aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md (renamed from README)0
-rwxr-xr-xcontrib/oe-stylize.py10
-rw-r--r--meta-filesystems/README.md (renamed from meta-filesystems/README)0
-rw-r--r--meta-filesystems/conf/include/ptest-packagelists-meta-filesystems.inc18
-rw-r--r--meta-filesystems/conf/layer.conf4
-rw-r--r--meta-filesystems/files/static-passwd-meta-filesystems3
-rw-r--r--meta-filesystems/recipes-filesystems/burnia/libburn_1.5.6.bb13
-rw-r--r--meta-filesystems/recipes-filesystems/burnia/libisoburn_1.5.6.bb27
-rw-r--r--meta-filesystems/recipes-filesystems/burnia/libisofs_1.5.6.bb15
-rw-r--r--meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.3.0.bb22
-rw-r--r--meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.4.0.bb21
-rw-r--r--meta-filesystems/recipes-filesystems/httpfs2-fuse/httpfs2_0.1.5.bb9
-rw-r--r--meta-filesystems/recipes-filesystems/images/meta-filesystems-image-all.bb3
-rw-r--r--meta-filesystems/recipes-filesystems/images/meta-filesystems-image-base.bb7
-rw-r--r--meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-all.bb25
-rw-r--r--meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-fast.bb5
-rw-r--r--meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest.bb40
-rw-r--r--meta-filesystems/recipes-filesystems/images/meta-filesystems-image.bb3
-rw-r--r--meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-Add-LDFLAGS-to-linker-cmdline.patch2
-rw-r--r--meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch2
-rw-r--r--meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2022.10.3.bb53
-rw-r--r--meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2022.5.17.bb53
-rw-r--r--meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch2
-rw-r--r--meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb7
-rw-r--r--meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch2
-rw-r--r--meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch2
-rw-r--r--meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse/03ee1f8aa0899268ec02b2f54849352df92a3a1d.patch34
-rw-r--r--meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse/a1d58ae1be99571a88b8439b027abe6349b74658.patch31
-rw-r--r--meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.3.bb9
-rw-r--r--meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-support-cross-compiling.patch35
-rw-r--r--meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb18
-rw-r--r--meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_3.4.bb19
-rw-r--r--meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-define-loff_t-if-not-already-defined.patch2
-rw-r--r--meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-yaffs_guts.h-define-YTIME_T-if-not-already-defined.patch34
-rw-r--r--meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb6
-rw-r--r--meta-filesystems/recipes-filesystems/zfs/zfs/0001-fs-tests-cmd-readmmap-Replace-uint_t-with-uint32_t.patch46
-rw-r--r--meta-filesystems/recipes-filesystems/zfs/zfs/aaf28a4630af60496c9d33db1d06a7d7d8983422.patch56
-rw-r--r--meta-filesystems/recipes-filesystems/zfs/zfs_2.1.5.bb61
-rw-r--r--meta-filesystems/recipes-filesystems/zfs/zfs_2.2.2.bb77
-rw-r--r--meta-filesystems/recipes-support/composefs/composefs_1.0.3.bb23
-rw-r--r--meta-filesystems/recipes-support/composefs/files/0001-musl-basename-use-portable-implementation-for-basena.patch75
-rw-r--r--meta-filesystems/recipes-support/fuse/files/fuse2-0007-util-ulockmgr_server.c-conditionally-define-closefro.patch2
-rw-r--r--meta-filesystems/recipes-support/fuse/fuse3_3.12.0.bb80
-rw-r--r--meta-filesystems/recipes-support/fuse/fuse3_3.16.2.bb84
-rw-r--r--meta-filesystems/recipes-support/python3-looseversion/python3-looseversion_1.3.0.bb14
-rw-r--r--meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Do-not-build-LFS-version-of-readdir.patch32
-rw-r--r--meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb3
-rw-r--r--meta-filesystems/recipes-utils/binfs/bindfs_1.17.6.bb15
-rw-r--r--meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb12
-rw-r--r--meta-filesystems/recipes-utils/e2tools/e2tools_git.bb75
-rw-r--r--meta-filesystems/recipes-utils/e2tools/files/run-ptest5
-rw-r--r--meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.3.0.bb24
-rw-r--r--meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.2.bb24
-rw-r--r--meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-f2fs_io-Define-_FILE_OFFSET_BITS-64.patch183
-rw-r--r--meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.14.0.bb19
-rw-r--r--meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.16.0.bb20
-rw-r--r--meta-filesystems/recipes-utils/fatcat/fatcat/0001-Replace-std-ptr_fun-for-c-17.patch48
-rw-r--r--meta-filesystems/recipes-utils/fatcat/fatcat/0001-Use-unistd.h-not-argp.h-for-all-POSIX-systems.patch2
-rw-r--r--meta-filesystems/recipes-utils/fatcat/fatcat/0002-Enable-64bit-off_t.patch71
-rw-r--r--meta-filesystems/recipes-utils/fatcat/fatcat_1.1.1.bb2
-rw-r--r--meta-filesystems/recipes-utils/fatresize/fatresize/0001-build-Do-not-build-.sgml-file.patch2
-rw-r--r--meta-filesystems/recipes-utils/fatresize/fatresize/0001-configure-Do-not-add-D_FILE_OFFSET_BITS-to-CFLAGS.patch34
-rw-r--r--meta-filesystems/recipes-utils/fatresize/fatresize_1.1.0.bb3
-rw-r--r--meta-filesystems/recipes-utils/overlayfs/overlayfs-progs/0001-Makefile-proper-location-of-LDFLAGS.patch30
-rw-r--r--meta-filesystems/recipes-utils/overlayfs/overlayfs-progs_git.bb32
-rw-r--r--meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0001-Fixed-includes-so-that-it-compiles-on-Ubuntu-20.04.patch41
-rw-r--r--meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0002-makefile-fix-linking-flags.patch31
-rw-r--r--meta-filesystems/recipes-utils/overlayfs/overlayfs-tools_git.bb12
-rw-r--r--meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch2
-rw-r--r--meta-filesystems/recipes-utils/udevil/files/0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch2
-rw-r--r--meta-filesystems/recipes-utils/ufs-utils/ufs-utils/0001-Use-asm-type.h-for-kernel-types.patch65
-rw-r--r--meta-filesystems/recipes-utils/ufs-utils/ufs-utils_1.9.bb32
-rw-r--r--meta-filesystems/recipes-utils/ufs-utils/ufs-utils_4.13.5.bb31
-rw-r--r--meta-filesystems/recipes-utils/xfsdump/files/0001-include-libgen.h-for-basename-API-prototype.patch45
-rw-r--r--meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.11.bb38
-rw-r--r--meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.12.bb40
-rw-r--r--meta-filesystems/recipes-utils/xfsprogs/files/0001-Check-for-MAP_SYNC-in-sys-mman.h.patch52
-rw-r--r--meta-filesystems/recipes-utils/xfsprogs/files/0004-configure-Use-AC_SYS_LARGERFILE-autoconf-macro.patch27
-rw-r--r--meta-filesystems/recipes-utils/xfsprogs/files/0005-Replace-off64_t-stat64-with-off_t-stat.patch724
-rw-r--r--meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch2
-rw-r--r--meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.13.0.bb73
-rw-r--r--meta-filesystems/recipes-utils/xfsprogs/xfsprogs_6.6.0.bb74
-rw-r--r--meta-filesystems/recipes-utils/xfstests/xfstests/0001-Add-a-return-type-to-aio_rw.patch28
-rw-r--r--meta-filesystems/recipes-utils/xfstests/xfstests/0001-add-missing-FTW_-macros-when-not-available-in-libc.patch41
-rw-r--r--meta-filesystems/recipes-utils/xfstests/xfstests/0001-include-libgen.h-for-basename-API-prototype.patch84
-rw-r--r--meta-filesystems/recipes-utils/xfstests/xfstests/0002-Add-missing-STATX_ATTR_-defines-from-musl-sys-stat.h.patch42
-rw-r--r--meta-filesystems/recipes-utils/xfstests/xfstests/0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch32
-rw-r--r--meta-filesystems/recipes-utils/xfstests/xfstests_2022.09.04.bb63
-rw-r--r--meta-filesystems/recipes-utils/xfstests/xfstests_2024.03.03.bb67
-rw-r--r--meta-filesystems/recipes-utils/xorriso/xorriso_1.5.5.bb29
-rw-r--r--meta-gnome/README.md (renamed from meta-gnome/README)0
-rw-r--r--meta-gnome/conf/layer.conf7
-rw-r--r--meta-gnome/dynamic-layers/meta-security/recipes-gnome/gnome-remote-desktop/gnome-remote-desktop_46.0.bb40
-rw-r--r--meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-boxes/gnome-boxes_46.0.bb41
-rw-r--r--meta-gnome/files/static-passwd-meta-gnome1
-rw-r--r--meta-gnome/recipes-connectivity/folks/folks_0.15.5.bb29
-rw-r--r--meta-gnome/recipes-connectivity/folks/folks_0.15.8.bb28
-rw-r--r--meta-gnome/recipes-connectivity/geary/geary/0001-Util.Cache.Lru-Workaround-missing-generic-type-argum.patch27
-rw-r--r--meta-gnome/recipes-connectivity/geary/geary/0001-meson-Use-PKG_CONFIG_SYSROOT_DIR-when-using-pkg-conf.patch51
-rw-r--r--meta-gnome/recipes-connectivity/geary/geary/0002-Fix-accessibility-issues-with-initializer-of-constan.patch42
-rw-r--r--meta-gnome/recipes-connectivity/geary/geary_40.0.bb61
-rw-r--r--meta-gnome/recipes-connectivity/geary/geary_44.1.bb61
-rw-r--r--meta-gnome/recipes-connectivity/gtk-vnc/gtk-vnc_1.3.1.bb30
-rw-r--r--meta-gnome/recipes-connectivity/libnma/libnma_1.10.6.bb33
-rw-r--r--meta-gnome/recipes-connectivity/libnma/libnma_1.8.38.bb29
-rw-r--r--meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch30
-rw-r--r--meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.26.0.bb29
-rw-r--r--meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.36.0.bb31
-rw-r--r--meta-gnome/recipes-extended/gparted/files/0001-Do-not-use-NULL-where-boolean-is-expected.patch33
-rw-r--r--meta-gnome/recipes-extended/gparted/files/0001-use-posix-basename.patch30
-rw-r--r--meta-gnome/recipes-extended/gparted/gparted_1.4.0.bb43
-rw-r--r--meta-gnome/recipes-extended/gparted/gparted_1.6.0.bb45
-rw-r--r--meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch80
-rw-r--r--meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch34
-rw-r--r--meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch138
-rw-r--r--meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch48
-rw-r--r--meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch29
-rw-r--r--meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/polkit-gnome-authentication-agent-1.desktop87
-rw-r--r--meta-gnome/recipes-extended/polkit-gnome/polkit-gnome_0.105.bb29
-rw-r--r--meta-gnome/recipes-gimp/babl/babl_0.1.108.bb17
-rw-r--r--meta-gnome/recipes-gimp/babl/babl_0.1.96.bb20
-rw-r--r--meta-gnome/recipes-gimp/gegl/gegl_0.4.38.bb59
-rw-r--r--meta-gnome/recipes-gimp/gegl/gegl_0.4.48.bb63
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/0001-configure-Keep-first-line-of-compiler-version-string.patch30
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/0001-libtool-Do-not-add-build-time-library-paths-to-LD_LI.patch34
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp_2.10.30.bb69
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp_2.10.36.bb72
-rw-r--r--meta-gnome/recipes-gnome/amtk/amtk_5.3.1.bb18
-rw-r--r--meta-gnome/recipes-gnome/dconf/dconf-editor/0001-editor-meson.build-fix-meson-0.61-errors.patch31
-rw-r--r--meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.3.bb17
-rw-r--r--meta-gnome/recipes-gnome/dconf/dconf-editor_45.0.1.bb22
-rw-r--r--meta-gnome/recipes-gnome/dconf/dconf_0.40.0.bb1
-rw-r--r--meta-gnome/recipes-gnome/devilspie/devilspie2_0.44.bb2
-rw-r--r--meta-gnome/recipes-gnome/eog/eog_45.3.bb30
-rw-r--r--meta-gnome/recipes-gnome/evince/evince_42.3.bb51
-rw-r--r--meta-gnome/recipes-gnome/evince/evince_46.0.bb58
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server-native.bb5
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb26
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc5
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-cmake-Do-not-export-CC-into-gir-compiler.patch4
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch1
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch2
-rw-r--r--meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb3
-rw-r--r--meta-gnome/recipes-gnome/file-roller/file-roller_3.42.0.bb28
-rw-r--r--meta-gnome/recipes-gnome/file-roller/file-roller_44.0.bb46
-rw-r--r--meta-gnome/recipes-gnome/gdm/gdm_42.0.bb58
-rw-r--r--meta-gnome/recipes-gnome/gdm/gdm_46.0.bb66
-rw-r--r--meta-gnome/recipes-gnome/gedit/gedit/0001-fix-for-clang-18.patch32
-rw-r--r--meta-gnome/recipes-gnome/gedit/gedit_42.2.bb46
-rw-r--r--meta-gnome/recipes-gnome/gedit/gedit_46.2.bb53
-rw-r--r--meta-gnome/recipes-gnome/gedit/libgedit-amtk_5.8.0.bb17
-rw-r--r--meta-gnome/recipes-gnome/gedit/libgedit-gtksourceview_299.1.0.bb24
-rw-r--r--meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.4.bb5
-rw-r--r--meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.0.bb28
-rw-r--r--meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.2.bb34
-rw-r--r--meta-gnome/recipes-gnome/gfbgraph/gfbgraph/0001-Update-rest-requirement-to-rest-1.0.patch58
-rw-r--r--meta-gnome/recipes-gnome/gfbgraph/gfbgraph_0.2.5.bb9
-rw-r--r--meta-gnome/recipes-gnome/ghex/ghex_3.18.4.bb17
-rw-r--r--meta-gnome/recipes-gnome/ghex/ghex_46.0.bb22
-rw-r--r--meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch12
-rw-r--r--meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch20
-rw-r--r--meta-gnome/recipes-gnome/gjs/gjs_1.72.2.bb40
-rw-r--r--meta-gnome/recipes-gnome/gjs/gjs_1.80.2.bb39
-rw-r--r--meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.3.bb21
-rw-r--r--meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.4.bb20
-rw-r--r--meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_42.0.bb16
-rw-r--r--meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_46.0.bb16
-rw-r--r--meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth3_3.34.5.bb1
-rw-r--r--meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_42.4.bb44
-rw-r--r--meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_46.0.bb43
-rw-r--r--meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_42.2.bb37
-rw-r--r--meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_46.0.bb38
-rw-r--r--meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_42.0.bb32
-rw-r--r--meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_46.0.bb37
-rw-r--r--meta-gnome/recipes-gnome/gnome-chess/gnome-chess_46.0.bb34
-rw-r--r--meta-gnome/recipes-gnome/gnome-chess/gnuchess/0001-Remove-register-storage-class-classifier.patch149
-rw-r--r--meta-gnome/recipes-gnome/gnome-chess/gnuchess_6.2.9.bb20
-rw-r--r--meta-gnome/recipes-gnome/gnome-commander/gnome-commander/0001-Build-fix-needed-with-taglib-2.0.patch37
-rw-r--r--meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.14.3.bb22
-rw-r--r--meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.16.1.bb31
-rw-r--r--meta-gnome/recipes-gnome/gnome-console/gnome-console_45.0.bb27
-rw-r--r--meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch47
-rw-r--r--meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_42.0.bb61
-rw-r--r--meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_46.0.1.bb75
-rw-r--r--meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson-Add-riscv32-to-seccomp-unsupported-list.patch29
-rw-r--r--meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch40
-rw-r--r--meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_42.0.bb47
-rw-r--r--meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_44.0.bb48
-rw-r--r--meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_42.0.bb38
-rw-r--r--meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_46.0.bb41
-rw-r--r--meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.44.0.bb38
-rw-r--r--meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.46.0.bb39
-rw-r--r--meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_43.0.bb25
-rw-r--r--meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_46.0.bb24
-rw-r--r--meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch10
-rw-r--r--meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_42.1.bb50
-rw-r--r--meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_46.1.bb51
-rw-r--r--meta-gnome/recipes-gnome/gnome-menus/gnome-menus_3.36.0.bb7
-rw-r--r--meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Update-to-rest-1.0.patch160
-rw-r--r--meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.44.0.bb34
-rw-r--r--meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.50.0.bb28
-rw-r--r--meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.44.0.bb24
-rw-r--r--meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.47.1.bb25
-rw-r--r--meta-gnome/recipes-gnome/gnome-photos/gnome-photos_42.0.bb46
-rw-r--r--meta-gnome/recipes-gnome/gnome-photos/gnome-photos_44.0.bb59
-rw-r--r--meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_41.0.bb2
-rw-r--r--meta-gnome/recipes-gnome/gnome-session/gnome-session_42.0.bb38
-rw-r--r--meta-gnome/recipes-gnome/gnome-session/gnome-session_46.0.bb34
-rw-r--r--meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_42.1.bb46
-rw-r--r--meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_46.0.bb50
-rw-r--r--meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_42.0.bb29
-rw-r--r--meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_46.0.bb23
-rw-r--r--meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch44
-rw-r--r--meta-gnome/recipes-gnome/gnome-shell/gnome-shell_42.0.bb71
-rw-r--r--meta-gnome/recipes-gnome/gnome-shell/gnome-shell_46.0.bb86
-rw-r--r--meta-gnome/recipes-gnome/gnome-software/gnome-software_46.0.bb43
-rw-r--r--meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_42.0.bb36
-rw-r--r--meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_46.0.bb38
-rw-r--r--meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-build-Fix-for-newer-meson.patch46
-rw-r--r--meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-meson-add-option-to-set-dbus_interfacedir.patch63
-rw-r--r--meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.42.2.bb40
-rw-r--r--meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.50.1.bb42
-rw-r--r--meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_42.2.bb27
-rw-r--r--meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_46.0.bb26
-rw-r--r--meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0002-meson-fix-invalid-positional-argument.patch2
-rw-r--r--meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_40.0.bb1
-rw-r--r--meta-gnome/recipes-gnome/gnome-user-share/gnome-user-share_43.0.bb24
-rw-r--r--meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch14
-rw-r--r--meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.15.bb22
-rw-r--r--meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.16.bb23
-rw-r--r--meta-gnome/recipes-gnome/grilo/grilo_0.3.14.bb28
-rw-r--r--meta-gnome/recipes-gnome/grilo/grilo_0.3.16.bb30
-rw-r--r--meta-gnome/recipes-gnome/gsound/gsound_1.0.3.bb3
-rw-r--r--meta-gnome/recipes-gnome/gspell/gspell_1.11.1.bb10
-rw-r--r--meta-gnome/recipes-gnome/gspell/gspell_1.12.2.bb11
-rw-r--r--meta-gnome/recipes-gnome/gthumb/gthumb_3.12.2.bb31
-rw-r--r--meta-gnome/recipes-gnome/gthumb/gthumb_3.12.4.bb30
-rw-r--r--meta-gnome/recipes-gnome/gtk4/gtk4_4.6.7.bb142
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/files/0001-remove-pointless-check.patch38
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb3
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.2.bb37
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.4.bb24
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.12.0.bb36
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.4.2.bb34
-rw-r--r--meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb88
-rw-r--r--meta-gnome/recipes-gnome/gvfs/gvfs_1.54.0.bb97
-rw-r--r--meta-gnome/recipes-gnome/libadwaita/libadwaita_1.2.0.bb25
-rw-r--r--meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb14
-rw-r--r--meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.21.bb14
-rw-r--r--meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb4
-rw-r--r--meta-gnome/recipes-gnome/libgsf/libgsf_1.14.50.bb22
-rw-r--r--meta-gnome/recipes-gnome/libgsf/libgsf_1.14.52.bb22
-rw-r--r--meta-gnome/recipes-gnome/libgtop/libgtop/0001-Pass-correct-parameter.patch29
-rw-r--r--meta-gnome/recipes-gnome/libgtop/libgtop/0001-fix-compile-error-for-cross-compile.patch37
-rw-r--r--meta-gnome/recipes-gnome/libgtop/libgtop/0001-netload-Include-libc-net-headers-unconditionally.patch46
-rw-r--r--meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb15
-rw-r--r--meta-gnome/recipes-gnome/libgtop/libgtop_2.41.3.bb12
-rw-r--r--meta-gnome/recipes-gnome/libgweather/libgweather4/0001-Allow-building-gir-in-cross-environments.patch21
-rw-r--r--meta-gnome/recipes-gnome/libgweather/libgweather4_4.0.0.bb28
-rw-r--r--meta-gnome/recipes-gnome/libgweather/libgweather4_4.4.2.bb30
-rw-r--r--meta-gnome/recipes-gnome/libgweather/libgweather_40.0.bb24
-rw-r--r--meta-gnome/recipes-gnome/libportal/libportal_0.6.bb19
-rw-r--r--meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb3
-rw-r--r--meta-gnome/recipes-gnome/libwnck/libwnck3_40.1.bb27
-rw-r--r--meta-gnome/recipes-gnome/libwnck/libwnck3_43.0.bb26
-rw-r--r--meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb3
-rw-r--r--meta-gnome/recipes-gnome/libxklavier/libxklavier/fix-do_installe-failure.patch2
-rw-r--r--meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb2
-rw-r--r--meta-gnome/recipes-gnome/metacity/metacity/0001-drop-zenity-detection.patch11
-rw-r--r--meta-gnome/recipes-gnome/metacity/metacity_3.44.0.bb39
-rw-r--r--meta-gnome/recipes-gnome/metacity/metacity_3.52.0.bb40
-rw-r--r--meta-gnome/recipes-gnome/msgraph/msgraph_0.2.1.bb18
-rw-r--r--meta-gnome/recipes-gnome/mutter/mutter_42.0.bb98
-rw-r--r--meta-gnome/recipes-gnome/mutter/mutter_46.0.bb109
-rw-r--r--meta-gnome/recipes-gnome/nautilus/nautilus/0001-Provide-parameter-prototype-for-functions-without-pa.patch94
-rw-r--r--meta-gnome/recipes-gnome/nautilus/nautilus_42.2.bb46
-rw-r--r--meta-gnome/recipes-gnome/nautilus/nautilus_45.1.bb54
-rw-r--r--meta-gnome/recipes-gnome/rest/files/0001-Use-GUri-instead-of-SoupURI.patch181
-rw-r--r--meta-gnome/recipes-gnome/rest/files/0002-Port-to-libsoup3.patch1696
-rw-r--r--meta-gnome/recipes-gnome/rest/librest_0.8.1.bb33
-rw-r--r--meta-gnome/recipes-gnome/rest/rest_0.8.1.bb33
-rw-r--r--meta-gnome/recipes-gnome/rest/rest_0.9.1.bb24
-rw-r--r--meta-gnome/recipes-gnome/sysprof/sysprof_3.44.0.bb1
-rw-r--r--meta-gnome/recipes-gnome/tecla/tecla_46.0.bb16
-rw-r--r--meta-gnome/recipes-gnome/tepl/tepl_6.00.0.bb26
-rw-r--r--meta-gnome/recipes-gnome/tepl/tepl_6.8.0.bb31
-rw-r--r--meta-gnome/recipes-gnome/tracker/tracker-miners/0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch18
-rw-r--r--meta-gnome/recipes-gnome/tracker/tracker-miners/0001-fix-reproducibility.patch118
-rw-r--r--meta-gnome/recipes-gnome/tracker/tracker-miners/0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch37
-rw-r--r--meta-gnome/recipes-gnome/tracker/tracker-miners_3.2.1.bb76
-rw-r--r--meta-gnome/recipes-gnome/tracker/tracker-miners_3.7.1.bb86
-rw-r--r--meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch77
-rw-r--r--meta-gnome/recipes-gnome/tracker/tracker_3.4.0.bb53
-rw-r--r--meta-gnome/recipes-gnome/tracker/tracker_3.7.1.bb59
-rw-r--r--meta-gnome/recipes-gnome/yelp/yelp-tools_42.0.bb23
-rw-r--r--meta-gnome/recipes-gnome/yelp/yelp-tools_42.1.bb21
-rw-r--r--meta-gnome/recipes-gnome/yelp/yelp-xsl_42.1.bb1
-rw-r--r--meta-gnome/recipes-gnome/yelp/yelp_42.1.bb39
-rw-r--r--meta-gnome/recipes-gnome/yelp/yelp_42.2.bb41
-rw-r--r--meta-gnome/recipes-gnome/zenity/zenity/0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch28
-rw-r--r--meta-gnome/recipes-gnome/zenity/zenity_3.43.0.bb25
-rw-r--r--meta-gnome/recipes-gnome/zenity/zenity_4.0.1.bb26
-rw-r--r--meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb1
-rw-r--r--meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch2
-rw-r--r--meta-gnome/recipes-support/appstream-glib/appstream-glib_0.7.18.bb39
-rw-r--r--meta-gnome/recipes-support/appstream-glib/appstream-glib_0.8.2.bb39
-rw-r--r--meta-gnome/recipes-support/ibus/ibus.bb6
-rw-r--r--meta-gnome/recipes-support/ibus/ibus.inc4
-rw-r--r--meta-gnome/recipes-support/ibus/ibus/0001-makefile-don-t-gzip-the-man-pages.patch164
-rw-r--r--meta-gnome/recipes-support/keybinder/keybinder_3.0.bb9
-rw-r--r--meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.6.bb11
-rw-r--r--meta-gnome/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch63
-rw-r--r--meta-gnome/recipes-support/libstemmer/libstemmer_git.bb38
-rw-r--r--meta-gnome/recipes-support/libuser/libuser/0003-python-Compilation-warnings-update.patch84
-rw-r--r--meta-gnome/recipes-support/libuser/libuser/gtkdoc.patch22
-rw-r--r--meta-gnome/recipes-support/libuser/libuser_0.63.bb46
-rw-r--r--meta-gnome/recipes-support/libuser/libuser_0.64.bb41
-rw-r--r--meta-gnome/recipes-support/libwacom/libwacom_2.4.0.bb24
-rw-r--r--meta-gnome/recipes-support/libwacom/libwacom_2.8.0.bb24
-rw-r--r--meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch67
-rw-r--r--meta-gnome/recipes-support/onboard/onboard_1.4.1.bb29
-rw-r--r--meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch1
-rw-r--r--meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.7.bb23
-rw-r--r--meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_46.0.bb31
-rw-r--r--meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gtk_1.15.1.bb30
-rw-r--r--meta-initramfs/README.md (renamed from meta-initramfs/README)0
-rw-r--r--meta-initramfs/conf/layer.conf2
-rw-r--r--meta-initramfs/recipes-bsp/kexecboot/files/0001-make-Add-compiler-includes-in-cflags.patch2
-rw-r--r--meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb4
-rw-r--r--meta-initramfs/recipes-core/images/initramfs-debug-image.bb2
-rw-r--r--meta-initramfs/recipes-core/images/initramfs-kexecboot-image.bb2
-rw-r--r--meta-initramfs/recipes-devtools/dracut/dracut/0001-install-Do-not-undef-_FILE_OFFSET_BITS.patch32
-rw-r--r--meta-initramfs/recipes-devtools/dracut/dracut/0001-util.h-include-sys-reg.h-when-libc-glibc.patch2
-rw-r--r--meta-initramfs/recipes-devtools/dracut/dracut_056.bb5
-rw-r--r--meta-initramfs/recipes-devtools/grubby/grubby/0001-Add-another-variable-LIBS-to-provides-libraries-from.patch24
-rw-r--r--meta-initramfs/recipes-devtools/grubby/grubby/0001-rename-grub2-editenv-to-grub-editenv.patch78
-rw-r--r--meta-initramfs/recipes-devtools/grubby/grubby/0002-Add-another-variable-LIBS-to-provides-libraries-from.patch38
-rw-r--r--meta-initramfs/recipes-devtools/grubby/grubby/0002-include-paths.h-for-_PATH_MOUNTED.patch25
-rw-r--r--meta-initramfs/recipes-devtools/grubby/grubby/0003-include-paths.h-for-_PATH_MOUNTED.patch27
-rw-r--r--meta-initramfs/recipes-devtools/grubby/grubby/0004-rpm-sort-include-string.h-for-strverscmp.patch33
-rw-r--r--meta-initramfs/recipes-devtools/grubby/grubby/grubby-rename-grub2-editenv-to-grub-editenv.patch76
-rw-r--r--meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb41
-rw-r--r--meta-initramfs/recipes-devtools/grubby/grubby_git.bb19
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-Define-in_-structs-for-non-glibc-system-libs.patch2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-always-use-bfd-linker.patch2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-arm-Do-not-set-a-fallback-march-and-mtune.patch2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-fcntl-Fix-build-failure-for-some-architectures-with-.patch34
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-include-linux-sysinfo.h-directly.patch2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch6
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-klibc-add-getrandom-syscall.patch2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-klibc_2.0.4-add-kexec_file_load-syscall.patch2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-mkfifo-Implement-mkfifo.patch2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/armv4-fix-v4bx.patch6
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/cross-clang.patch2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/klcc-consider-sysroot.patch2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/use-env-for-perl.patch2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.13.bb (renamed from meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.10.bb)0
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.13.bb (renamed from meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.10.bb)0
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.13.bb (renamed from meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.10.bb)0
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc.inc4
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc_2.0.13.bb (renamed from meta-initramfs/recipes-devtools/klibc/klibc_2.0.10.bb)0
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch2
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch2
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/140-mips_disable_devicetree_support.patch2
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/Fix-building-on-x86_64-with-binutils-2.41.patch95
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch2
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch2
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/include_next.patch2
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/klibc-reboot.patch2
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb7
-rw-r--r--meta-multimedia/README.md (renamed from meta-multimedia/README)0
-rw-r--r--meta-multimedia/conf/include/ptest-packagelists-meta-multimedia.inc17
-rw-r--r--meta-multimedia/conf/layer.conf2
-rw-r--r--meta-multimedia/files/static-group-meta-multimedia2
-rw-r--r--meta-multimedia/files/static-passwd-meta-multimedia2
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gssdp_1.4.0.1.bb29
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gssdp_1.6.3.bb32
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-av/0001-all-Drop-xmlRecoverMemory.patch44
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.bb12
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.1.bb14
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.2.0.bb13
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.6.0.bb12
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb15
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.12.1.bb19
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb22
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp_1.6.6.bb21
-rw-r--r--meta-multimedia/recipes-connectivity/libupnp/libupnp/0001-ithread-Use-pthread_mutexattr_gettype-pthread_mutexa.patch42
-rw-r--r--meta-multimedia/recipes-connectivity/libupnp/libupnp_1.14.18.bb23
-rw-r--r--meta-multimedia/recipes-connectivity/libupnp/libupnp_1.14.6.bb24
-rw-r--r--meta-multimedia/recipes-connectivity/rygel/rygel_0.40.4.bb93
-rw-r--r--meta-multimedia/recipes-connectivity/rygel/rygel_0.42.4.bb92
-rw-r--r--meta-multimedia/recipes-dvb/oscam/oscam_svn.bb7
-rw-r--r--meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch8
-rw-r--r--meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb7
-rw-r--r--meta-multimedia/recipes-mkv/libebml/libebml/ldflags.patch57
-rw-r--r--meta-multimedia/recipes-mkv/libebml/libebml/override-uname.patch42
-rw-r--r--meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb59
-rw-r--r--meta-multimedia/recipes-mkv/libebml/libebml_1.4.5.bb14
-rw-r--r--meta-multimedia/recipes-mkv/libmatroska/libmatroska/0001-Makefile-Use-LINKFLAGS-during-link-step.patch28
-rw-r--r--meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb37
-rw-r--r--meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.7.1.bb16
-rw-r--r--meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch83
-rw-r--r--meta-multimedia/recipes-multimedia/aom/aom_3.4.0.bb25
-rw-r--r--meta-multimedia/recipes-multimedia/aom/aom_3.7.0.bb27
-rw-r--r--meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch3
-rw-r--r--meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch5
-rw-r--r--meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch5
-rw-r--r--meta-multimedia/recipes-multimedia/dav1d/dav1d_1.4.1.bb17
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb6
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb3
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch1
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch5
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch4
-rw-r--r--meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb22
-rw-r--r--meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.2.bb22
-rw-r--r--meta-multimedia/recipes-multimedia/flite/flite_2.2.bb8
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth-native_git.bb10
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc12
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch49
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_2.3.4.bb39
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb23
-rw-r--r--meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-with-fmt-9.0.patch35
-rw-r--r--meta-multimedia/recipes-multimedia/gerbera/gerbera_1.11.0.bb31
-rw-r--r--meta-multimedia/recipes-multimedia/gerbera/gerbera_2.0.0.bb30
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.8.1.bb34
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb36
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch20
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb29
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image-all.bb3
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb7
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-all.bb25
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-fast.bb5
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest.bb40
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image.bb3
-rw-r--r--meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/juce/projucer.inc3
-rw-r--r--meta-multimedia/recipes-multimedia/juce/projucer/0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch21
-rw-r--r--meta-multimedia/recipes-multimedia/libavif/libavif_1.0.1.bb16
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera.bb74
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-ipu3-Use-posix-basename.patch71
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-media_device-Add-bool-return-type-to-unlock.patch59
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch43
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera/0002-options-Replace-use-of-VLAs-in-C.patch128
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera_0.2.0.bb78
-rwxr-xr-xmeta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.6.bb21
-rwxr-xr-xmeta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.7.bb20
-rw-r--r--meta-multimedia/recipes-multimedia/libde265/libde265_1.0.12.bb21
-rw-r--r--meta-multimedia/recipes-multimedia/libde265/libde265_1.0.5.bb19
-rw-r--r--meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb12
-rw-r--r--meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.3.bb11
-rw-r--r--meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb14
-rw-r--r--meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.6.2.bb81
-rw-r--r--meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.7.3.bb82
-rw-r--r--meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-makefile-Add-LIBDIR.patch36
-rw-r--r--meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/libuvc/libuvc.bb14
-rw-r--r--meta-multimedia/recipes-multimedia/libuvc/libuvc_0.0.7.bb14
-rw-r--r--meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpd/0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch26
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.14.bb102
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.9.bb101
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.46.bb39
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.49.bb37
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb6
-rw-r--r--meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch27
-rw-r--r--meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.1.14.0.bb17
-rw-r--r--meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch31
-rw-r--r--meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch29
-rw-r--r--meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb24
-rw-r--r--meta-multimedia/recipes-multimedia/openal/openal-soft_1.23.1.bb23
-rw-r--r--meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb13
-rw-r--r--meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.6.bb13
-rw-r--r--meta-multimedia/recipes-multimedia/openh264/openh264/0002-Makefile-add-possibility-to-disable-NEON-extension.patch103
-rw-r--r--meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb50
-rw-r--r--meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb55
-rw-r--r--meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb43
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb1
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb25
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.2.bb26
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.57.bb365
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.4.bb388
-rw-r--r--meta-multimedia/recipes-multimedia/schroedinger/schroedinger/0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch43
-rw-r--r--meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb3
-rw-r--r--meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch4
-rw-r--r--meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch56
-rw-r--r--meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch161
-rw-r--r--meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb50
-rw-r--r--meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb23
-rw-r--r--meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch46
-rw-r--r--meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-fixed-compilation-error-caused-by-strncpy.patch69
-rw-r--r--meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_2.0.0.bb22
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb13
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb12
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch43
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch8
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch44
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0001-taglib-Fix-build-on-x86-32-bit.patch50
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch10
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch2
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch8
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch40
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch46
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch26
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/taglib-2.patch67
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc_3.0.17-1.bb132
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc_3.0.20.bb135
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch95
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch33
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb21
-rw-r--r--meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.4.11.bb145
-rw-r--r--meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.0.bb145
-rw-r--r--meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb7
-rw-r--r--meta-multimedia/recipes-support/crossguid/crossguid/0001-include-missing-cstdint.patch31
-rw-r--r--meta-multimedia/recipes-support/crossguid/crossguid_0.2.2.bb6
-rw-r--r--meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb2
-rw-r--r--meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.5.bb23
-rw-r--r--meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.6.bb22
-rw-r--r--meta-multimedia/recipes-support/libsrtp/libsrtp_2.4.2.bb20
-rw-r--r--meta-multimedia/recipes-support/libsrtp/libsrtp_2.5.0.bb20
-rw-r--r--meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr/0001-screencast-Fix-build-with-older-mesa.patch53
-rw-r--r--meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr_0.7.0.bb31
-rw-r--r--meta-networking/MAINTAINERS4
-rw-r--r--meta-networking/README40
-rw-r--r--meta-networking/README.md39
-rw-r--r--meta-networking/classes/kernel_wireless_regdb.bbclass2
-rw-r--r--meta-networking/classes/waf-samba.bbclass4
-rw-r--r--meta-networking/conf/include/ptest-packagelists-meta-networking.inc37
-rw-r--r--meta-networking/conf/layer.conf8
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/0001-Make-alpha2-to-be-3-characters-long.patch31
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/0001-Makefile-respect-LDFLAGS-for-libreg.patch29
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/0001-reglib-Remove-unused-variables.patch59
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/crda-4.14-python-3.patch101
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch21
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/fix-gcc-6-unused-variables.patch11
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/fix-issues-when-USE_OPENSSL-1.patch58
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch57
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/make.patch25
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/use-target-word-size-instead-of-host-s.patch34
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda_3.18.bb40
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/firewalld_1.2.0.bb310
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/firewalld_1.3.2.bb312
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-printing/system-config-printer/system-config-printer_1.5.18.bb50
-rw-r--r--meta-networking/files/static-group-meta-networking15
-rw-r--r--meta-networking/files/static-passwd-meta-networking19
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-arm.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-armeb.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-i586.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-i686.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-mips.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-mips64.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-powerpc64le.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-riscv32.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt3
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt3
-rw-r--r--meta-networking/licenses/netperf43
-rw-r--r--meta-networking/recipes-connectivity/adcli/adcli_0.9.0.bb28
-rw-r--r--meta-networking/recipes-connectivity/adcli/adcli_0.9.2.bb25
-rw-r--r--meta-networking/recipes-connectivity/adcli/files/0001-configure-check-for-ns_get16-and-ns_get32-as-well.patch39
-rw-r--r--meta-networking/recipes-connectivity/adcli/files/Fixed-build-error-on-musl.patch26
-rw-r--r--meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb5
-rw-r--r--meta-networking/recipes-connectivity/bearssl/bearssl/0001-conf-Unix.mk-remove-fixed-command-definitions.patch57
-rw-r--r--meta-networking/recipes-connectivity/bearssl/bearssl/0001-make-Pass-LDFLAGS-when-building-shared-objects.patch32
-rw-r--r--meta-networking/recipes-connectivity/bearssl/bearssl/0002-test-test_x509.c-fix-potential-overflow-issue.patch2
-rw-r--r--meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb29
-rw-r--r--meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch19
-rw-r--r--meta-networking/recipes-connectivity/blueman/blueman_2.2.4.bb58
-rw-r--r--meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb88
-rw-r--r--meta-networking/recipes-connectivity/bluepy/bluepy_git.bb2
-rw-r--r--meta-networking/recipes-connectivity/bluez-tools/bluez-tools/fix-memory-leaks.patch768
-rw-r--r--meta-networking/recipes-connectivity/bluez-tools/bluez-tools/obex-file-fix-null-check.patch41
-rw-r--r--meta-networking/recipes-connectivity/bluez-tools/bluez-tools_git.bb24
-rw-r--r--meta-networking/recipes-connectivity/cannelloni/cannelloni/0001-include-bits-stdc-.h-only-when-using-libstdc.patch37
-rw-r--r--meta-networking/recipes-connectivity/cannelloni/cannelloni_1.0.0.bb15
-rw-r--r--meta-networking/recipes-connectivity/cannelloni/cannelloni_1.1.0.bb17
-rw-r--r--meta-networking/recipes-connectivity/civetweb/civetweb_1.16.bb48
-rw-r--r--meta-networking/recipes-connectivity/civetweb/civetweb_git.bb42
-rw-r--r--meta-networking/recipes-connectivity/daq/daq_2.0.7.bb7
-rw-r--r--meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch25
-rw-r--r--meta-networking/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch2
-rw-r--r--meta-networking/recipes-connectivity/daq/libdaq/0001-example-Use-lm-for-the-fst-module.patch32
-rw-r--r--meta-networking/recipes-connectivity/daq/libdaq_3.0.14.bb18
-rw-r--r--meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3.bb62
-rw-r--r--meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb72
-rw-r--r--meta-networking/recipes-connectivity/dibbler/dibbler/0001-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch125
-rw-r--r--meta-networking/recipes-connectivity/dibbler/dibbler/0001-port-linux-Re-order-header-includes.patch2
-rw-r--r--meta-networking/recipes-connectivity/dibbler/dibbler/0002-make-Do-not-enforce-c99.patch50
-rw-r--r--meta-networking/recipes-connectivity/dibbler/dibbler/dibbler_fix_getSize_crash.patch2
-rw-r--r--meta-networking/recipes-connectivity/dibbler/dibbler_git.bb4
-rw-r--r--meta-networking/recipes-connectivity/ez-ipupdate/files/Makefile.am.patch2
-rw-r--r--meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch2
-rw-r--r--meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch2
-rw-r--r--meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch2
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0001-Add-autogen.sh.patch46
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0001-raddb-certs-Makefile-fix-the-existed-certificate-err.patch55
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0001-raddb-certs-Makefile-fix-the-occasional-verification.patch135
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch28
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0001-version.c-don-t-print-build-flags.patch41
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0001-workaround-error-with-autoconf-2.7.patch42
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0002-Enable-and-change-user-and-group-of-freeradius-serve.patch32
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0003-configure.ac-allow-cross-compilation.patch39
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0004-Fix-libtool-detection.patch71
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0005-configure.ac-add-option-for-libcap.patch70
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0006-Avoid-searching-host-dirs.patch223
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch30
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0008-libtool-do-not-use-jlibtool.patch160
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0009-Fix-quoting-for-BUILD_WITH.patch58
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch61
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0011-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch28
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0012-raddb-certs-Makefile-fix-the-existed-certificate-err.patch55
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0013-raddb-certs-Makefile-fix-the-occasional-verification.patch136
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0014-Workaround-error-with-autoconf-2.7.patch42
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0015-bootstrap-check-commands-of-openssl-exist.patch44
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0016-version.c-don-t-print-build-flags.patch41
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0017-Add-acinclude.m4-to-include-required-macros.patch61
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/check-openssl-cmds-in-script-bootstrap.patch38
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/freeradius-avoid-searching-host-dirs.patch197
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-add-option-for-libcap.patch70
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch37
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/freeradius-enble-user-in-conf.patch28
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-error-for-expansion-of-macro.patch61
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-quoting-for-BUILT_WITH.patch55
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-detection.patch90
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-do-not-use-jlibtool.patch160
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/freeradius-rlm_python-add-PY_INC_DIR.patch33
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/radiusd.service3
-rw-r--r--meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb254
-rw-r--r--meta-networking/recipes-connectivity/freeradius/freeradius_3.2.3.bb298
-rw-r--r--meta-networking/recipes-connectivity/libdnet/libdnet_1.14.bb20
-rw-r--r--meta-networking/recipes-connectivity/libdnet/libdnet_1.18.0.bb22
-rw-r--r--meta-networking/recipes-connectivity/libiec61850/files/0001-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch2
-rw-r--r--meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.1.bb4
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls/run-ptest17
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.0.bb44
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.8.bb80
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls_3.6.0.bb82
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/files/2894.patch25
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/files/2895.patch27
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init20
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.15.bb90
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.18.bb92
-rw-r--r--meta-networking/recipes-connectivity/nanomsg/nanomsg_1.2.1.bb28
-rw-r--r--meta-networking/recipes-connectivity/nanomsg/nanomsg_1.2.bb28
-rw-r--r--meta-networking/recipes-connectivity/nanomsg/nng_12.bb (renamed from meta-networking/recipes-connectivity/nanomsg/nng_1.5.2.bb)0
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch306
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch34
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn_1.4.0.bb71
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager-openconnect_1.2.8.bb47
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch30
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.10.0.bb52
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.10.2.bb55
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch41
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager_1.40.0.bb305
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager_1.46.0.bb322
-rw-r--r--meta-networking/recipes-connectivity/openconnect/openconnect/0001-Shim-for-renaming-of-GNUTLS_NO_EXTENSIONS-in-GnuTLS-.patch43
-rw-r--r--meta-networking/recipes-connectivity/openconnect/openconnect_9.01.bb32
-rw-r--r--meta-networking/recipes-connectivity/openconnect/openconnect_9.12.bb33
-rw-r--r--meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.21.0.bb26
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch68
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch9
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-br-posix/default-cxx-std.patch35
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch43
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-br-posix/musl-fixes.patch26
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-br-posix/unused_var.patch10
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb14
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-daemon/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch68
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-daemon/mbedtls.patch43
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-daemon_git.bb10
-rw-r--r--meta-networking/recipes-connectivity/openthread/wpantund/basename.patch19
-rw-r--r--meta-networking/recipes-connectivity/openthread/wpantund_git.bb14
-rw-r--r--meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch2
-rw-r--r--meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch34
-rw-r--r--meta-networking/recipes-connectivity/relayd/relayd_git.bb10
-rw-r--r--meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb5
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch12
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0001-Fix-pyext_PATTERN-for-cross-compilation.patch63
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0001-smbtorture-skip-test-case-tfork_cmd_send.patch38
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0001-waf-Fix-errors-with-Werror-implicit-function-declara.patch32
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0002-do-not-import-target-module-while-cross-compile.patch12
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch36
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch15
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0005-Fix-pyext_PATTERN-for-cross-compilation.patch63
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0005-samba-build-dnsserver_common-code.patch30
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0006-smbtorture-skip-test-case-tfork_cmd_send.patch38
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch124
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/cmocka-uintptr_t.patch51
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/netdb_defines.patch19
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch24
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/samba-fix-musl-lib-without-innetgr.patch42
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/samba-pam.patch14
-rw-r--r--meta-networking/recipes-connectivity/samba/samba_4.14.14.bb351
-rw-r--r--meta-networking/recipes-connectivity/samba/samba_4.19.5.bb356
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch2
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/snort.default1
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/snort.service12
-rw-r--r--meta-networking/recipes-connectivity/snort/snort3/0001-cmake-Check-for-HP-libunwind.patch33
-rw-r--r--meta-networking/recipes-connectivity/snort/snort3/0001-cmake-Pass-noline-flag-to-flex.patch31
-rw-r--r--meta-networking/recipes-connectivity/snort/snort3_3.1.84.0.bb38
-rw-r--r--meta-networking/recipes-connectivity/snort/snort_2.9.20.bb20
-rw-r--r--meta-networking/recipes-connectivity/sshpass/sshpass_1.09.bb11
-rw-r--r--meta-networking/recipes-connectivity/sshpass/sshpass_1.10.bb11
-rw-r--r--meta-networking/recipes-connectivity/tayga/files/0001-include-sys-uio.patch18
-rw-r--r--meta-networking/recipes-connectivity/tayga/files/tayga.conf103
-rw-r--r--meta-networking/recipes-connectivity/tayga/files/tayga.service12
-rw-r--r--meta-networking/recipes-connectivity/tayga/tayga_0.9.2.bb21
-rw-r--r--meta-networking/recipes-connectivity/vlan/vlan-1.9/no-HOME-includes.patch2
-rw-r--r--meta-networking/recipes-connectivity/vlan/vlan_1.9.bb2
-rw-r--r--meta-networking/recipes-connectivity/vpnc/vpnc/0001-search-for-log-help-in-build-dir.patch2
-rw-r--r--meta-networking/recipes-connectivity/vpnc/vpnc/0002-Fix-vpnc-install-for-cross-compile.patch2
-rw-r--r--meta-networking/recipes-connectivity/vpnc/vpnc/0003-error.h-is-specific-to-glibc-on-linux.patch2
-rw-r--r--meta-networking/recipes-connectivity/vpnc/vpnc/0004-Use-pkgconfig-instead-of-libgcrypt-config.patch2
-rw-r--r--meta-networking/recipes-connectivity/vpnc/vpnc/0005-include-sys-ttydefaults.h-for-CEOT-definition.patch2
-rw-r--r--meta-networking/recipes-connectivity/vpnc/vpnc/0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch2
-rw-r--r--meta-networking/recipes-connectivity/vpnc/vpnc/0007-add-error-API-when-error.h-is-not-on-platform.patch2
-rw-r--r--meta-networking/recipes-connectivity/vpnc/vpnc/0008-include-sysdep.h-before-net-if_tun.h.patch2
-rw-r--r--meta-networking/recipes-connectivity/vpnc/vpnc/0009-reduce-lifetime-value.patch2
-rw-r--r--meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb1
-rw-r--r--meta-networking/recipes-connectivity/wolfssl/wolfssl_5.5.0.bb22
-rw-r--r--meta-networking/recipes-connectivity/wolfssl/wolfssl_5.7.0.bb22
-rw-r--r--meta-networking/recipes-core/images/meta-networking-image-all.bb3
-rw-r--r--meta-networking/recipes-core/images/meta-networking-image-base.bb7
-rw-r--r--meta-networking/recipes-core/images/meta-networking-image-ptest-all.bb25
-rw-r--r--meta-networking/recipes-core/images/meta-networking-image-ptest-fast.bb5
-rw-r--r--meta-networking/recipes-core/images/meta-networking-image-ptest.bb41
-rw-r--r--meta-networking/recipes-core/images/meta-networking-image.bb3
-rw-r--r--meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb24
-rw-r--r--meta-networking/recipes-daemons/atftp/atftp_0.7.5.bb56
-rw-r--r--meta-networking/recipes-daemons/atftp/atftp_0.8.0.bb56
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch2
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/0001-autofs-5.1.8-add-autofs_strerror_r-helper-for-musl.patch2
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/0001-include-libgen.h-for-basename.patch58
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch2
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch2
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/add-the-needed-stdarg.h.patch2
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/cross.patch2
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/fix-the-YACC-rule-to-fix-a-building-failure.patch2
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/force-STRIP-to-emtpy.patch2
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/no-bash.patch2
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb1
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool/0001-Respect-flags-from-env.patch2
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool/0001-Use-unsigned-int-type-for-1-bit-integer-bitfield.patch42
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool/0001-ippool-Port-to-ppp-2.5-APIs.patch60
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool/0001-read-returns-ssize_t.patch2
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool/0001-usl_timer-Check-for-return-value-of-write-API.patch2
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool/0002-Mark-first-element-of-a-string-as-null.patch2
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool/0002-link-with-libtirpc.patch2
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool/0003-cli-Mark-return-of-strtol-as-long-int.patch2
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch2
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool/ippool.service4
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool_1.3.bb4
-rw-r--r--meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Makefile-Do-not-set-Werror.patch10
-rw-r--r--meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-iscsiuio-Use-pthread_t-for-INVALID_THREAD.patch27
-rw-r--r--meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.7.bb119
-rw-r--r--meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.8.bb118
-rw-r--r--meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch58
-rw-r--r--meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb46
-rw-r--r--meta-networking/recipes-daemons/keepalived/keepalived_2.2.8.bb51
-rwxr-xr-xmeta-networking/recipes-daemons/lldpd/files/run-ptest16
-rw-r--r--meta-networking/recipes-daemons/lldpd/lldpd_1.0.14.bb63
-rw-r--r--meta-networking/recipes-daemons/lldpd/lldpd_1.0.18.bb81
-rw-r--r--meta-networking/recipes-daemons/ncftp/ncftp/ncftp-3.2.5-gcc10.patch83
-rw-r--r--meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb32
-rw-r--r--meta-networking/recipes-daemons/ncftp/ncftp_3.2.7.bb30
-rw-r--r--meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.1.bb32
-rw-r--r--meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.2.4.bb31
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch2
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch2
-rw-r--r--meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb1
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-Use-correct-printf-format-for-__fsblkcnt_t.patch9
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch2
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch2
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch2
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-include-cstdint-for-uintXX_t-types.patch43
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch2
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-Werror-enum-int-mismatch-with-gcc13.patch61
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf_5.22.01.bb2
-rw-r--r--meta-networking/recipes-daemons/postfix/files/0001-Fix-makedefs.patch2
-rw-r--r--meta-networking/recipes-daemons/postfix/files/0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch2
-rw-r--r--meta-networking/recipes-daemons/postfix/files/0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch2
-rw-r--r--meta-networking/recipes-daemons/postfix/files/0004-Fix-icu-config.patch2
-rw-r--r--meta-networking/recipes-daemons/postfix/postfix.inc222
-rw-r--r--meta-networking/recipes-daemons/postfix/postfix_3.6.5.bb17
-rw-r--r--meta-networking/recipes-daemons/postfix/postfix_3.8.6.bb240
-rw-r--r--meta-networking/recipes-daemons/proftpd/files/build_fixup.patch2
-rw-r--r--meta-networking/recipes-daemons/ptpd/ptpd/Fixed-100-CPU-using-issue-by-adding-minimum-POSIX-ti.patch3
-rw-r--r--meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch2
-rw-r--r--meta-networking/recipes-daemons/radvd/radvd_2.19.bb3
-rw-r--r--meta-networking/recipes-daemons/squid/files/0001-configure-Check-for-Wno-error-format-truncation-comp.patch118
-rw-r--r--meta-networking/recipes-daemons/squid/files/0002-squid-make-squid-conf-tests-run-on-target-device.patch70
-rw-r--r--meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch38
-rw-r--r--meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch12
-rw-r--r--meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch25
-rw-r--r--meta-networking/recipes-daemons/squid/files/run-ptest1
-rw-r--r--meta-networking/recipes-daemons/squid/files/set_sysroot_patch.patch41
-rw-r--r--meta-networking/recipes-daemons/squid/files/squid-don-t-do-squid-conf-tests-at-build-time.patch61
-rw-r--r--meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch2
-rw-r--r--meta-networking/recipes-daemons/squid/files/squid.nm7
-rw-r--r--meta-networking/recipes-daemons/squid/squid_5.7.bb124
-rw-r--r--meta-networking/recipes-daemons/squid/squid_6.8.bb143
-rw-r--r--meta-networking/recipes-daemons/tftp-hpa/files/0001-__progname-is-provided-by-libc.patch2
-rw-r--r--meta-networking/recipes-daemons/tftp-hpa/files/add-error-check-for-disk-filled-up.patch2
-rw-r--r--meta-networking/recipes-daemons/tftp-hpa/files/fix-writing-emtpy-file.patch2
-rw-r--r--meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch2
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch2
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.5.bb2
-rw-r--r--meta-networking/recipes-devtools/libcoap/libcoap/CVE-2024-0962.patch45
-rw-r--r--meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb56
-rw-r--r--meta-networking/recipes-devtools/libcoap/libcoap_4.3.4.bb63
-rw-r--r--meta-networking/recipes-devtools/python/python3-scapy/run-ptest2
-rw-r--r--meta-networking/recipes-devtools/python/python3-scapy_2.4.5.bb41
-rw-r--r--meta-networking/recipes-devtools/python/python3-scapy_2.5.0.bb44
-rw-r--r--meta-networking/recipes-extended/dlm/dlm/0001-Disable-annobin-plugin.patch31
-rw-r--r--meta-networking/recipes-extended/dlm/dlm/0001-Remove-fcf-protection-full.patch64
-rw-r--r--meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch35
-rw-r--r--meta-networking/recipes-extended/dlm/dlm/0001-dlm_controld-remove-unnecessary-header-include.patch35
-rw-r--r--meta-networking/recipes-extended/dlm/dlm/0004-include-string.h-for-memset-prototype.patch23
-rw-r--r--meta-networking/recipes-extended/dlm/dlm_4.1.1.bb60
-rw-r--r--meta-networking/recipes-extended/dlm/dlm_4.2.0.bb65
-rw-r--r--meta-networking/recipes-extended/kronosnet/kronosnet/0001-links.c-Fix-build-with-gcc-12.patch2
-rw-r--r--meta-networking/recipes-extended/tgt/files/0001-usr-Makefile-WARNING-fix.patch2
-rw-r--r--meta-networking/recipes-extended/tgt/files/musl-__wordsize.patch41
-rw-r--r--meta-networking/recipes-extended/tgt/files/usr-Makefile-apply-LDFLAGS-to-all-executables.patch2
-rw-r--r--meta-networking/recipes-extended/tgt/tgt_1.0.90.bb93
-rw-r--r--meta-networking/recipes-extended/tgt/tgt_git.bb94
-rw-r--r--meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.6.bb40
-rw-r--r--meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.8.bb60
-rw-r--r--meta-networking/recipes-filter/conntrack-tools/files/conntrackd.service11
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0010-Adjust-header-include-sequence.patch2
-rw-r--r--meta-networking/recipes-filter/ipset/ipset/0001-ipset-Define-portable-basename-function.patch50
-rw-r--r--meta-networking/recipes-filter/ipset/ipset_7.15.bb21
-rw-r--r--meta-networking/recipes-filter/ipset/ipset_7.21.bb22
-rw-r--r--meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch2
-rw-r--r--meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cthelper-visibility-hidden.patch382
-rw-r--r--meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cttimeout-visibility-hidden.patch264
-rw-r--r--meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb17
-rw-r--r--meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.1.bb17
-rw-r--r--meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb16
-rw-r--r--meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.1.bb16
-rw-r--r--meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb2
-rw-r--r--meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0001-build-resolve-automake-1.12-warnings.patch28
-rw-r--r--meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0002-src-get-source-code-license-header-in-sync-with-curr.patch49
-rw-r--r--meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0003-configure-uclinux-is-also-linux.patch27
-rw-r--r--meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch39
-rw-r--r--meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0005-include-Sync-with-kernel-headers.patch110
-rw-r--r--meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0006-src-Use-stdint-types-everywhere.patch403
-rw-r--r--meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb25
-rw-r--r--meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.2.bb22
-rw-r--r--meta-networking/recipes-filter/libnftnl/libnftnl/0001-configure.ac-Add-serial-tests.patch8
-rw-r--r--meta-networking/recipes-filter/libnftnl/libnftnl_1.2.3.bb39
-rw-r--r--meta-networking/recipes-filter/libnftnl/libnftnl_1.2.6.bb39
-rw-r--r--meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb8
-rw-r--r--meta-networking/recipes-filter/nftables/nftables/0001-nftables-python-Split-root-from-prefix.patch44
-rw-r--r--meta-networking/recipes-filter/nftables/nftables/0001-tests-shell-Fix-sets-reset_command_0-for-current-ker.patch53
-rw-r--r--meta-networking/recipes-filter/nftables/nftables/0001-tests-shell-skip-secmark-tests-if-kernel-does-not-su.patch46
-rw-r--r--meta-networking/recipes-filter/nftables/nftables/run-ptest18
-rw-r--r--meta-networking/recipes-filter/nftables/nftables_1.0.5.bb53
-rw-r--r--meta-networking/recipes-filter/nftables/nftables_1.0.9.bb106
-rw-r--r--meta-networking/recipes-filter/ulogd2/ulogd2_2.0.7.bb80
-rw-r--r--meta-networking/recipes-filter/ulogd2/ulogd2_2.0.8.bb80
-rw-r--r--meta-networking/recipes-irc/weechat/weechat_3.4.1.bb36
-rw-r--r--meta-networking/recipes-irc/weechat/weechat_4.0.4.bb36
-rw-r--r--meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210914.bb12
-rw-r--r--meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/0001-ftp-include-sys-types.h-for-u_long.patch30
-rw-r--r--meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/Add_ARG_MAX_define.patch28
-rw-r--r--meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb53
-rw-r--r--meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/0001-rpcgen-Fix-printf-formats.patch51
-rw-r--r--meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch39
-rw-r--r--meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb51
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/CVE-2019-7282-and-CVE-2019-7283.patch35
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fix-host-variable.patch27
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fixup_wait3_api_change.patch34
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch30
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch39
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.pam10
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit20
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.pam12
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit23
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch77
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.pam10
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit21
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb105
-rw-r--r--meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/0001-Link-with-libtirpc.patch120
-rw-r--r--meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/rpc.rusersd-Makefile-fix-parallel-build-issue.patch30
-rw-r--r--meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb72
-rw-r--r--meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0001-Add-missing-include-path-to-I-options.patch46
-rw-r--r--meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch72
-rwxr-xr-xmeta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod71
-rw-r--r--meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod.default2
-rw-r--r--meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb108
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch114
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-print-format-strings.patch66
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/0001-telnetd-utility.c-Fix-buffer-overflow-in-netoprintf.patch56
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/0001-utility-Include-time.h-form-time-and-strftime-protot.patch27
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/CVE-2020-10188.patch112
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/To-aviod-buffer-overflow-in-telnet.patch1217
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/Warning-fix-in-the-step-of-install.patch41
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/cross-compile.patch48
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/telnet-xinetd14
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb72
-rw-r--r--meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/0001-tftp-Include-missing-fcntl.h.patch27
-rw-r--r--meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/tftp.conf11
-rw-r--r--meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb59
-rw-r--r--meta-networking/recipes-protocols/babeld/babeld_1.12.1.bb29
-rw-r--r--meta-networking/recipes-protocols/babeld/babeld_1.13.1.bb31
-rw-r--r--meta-networking/recipes-protocols/dante/dante_1.4.3.bb1
-rw-r--r--meta-networking/recipes-protocols/freediameter/files/0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch97
-rw-r--r--meta-networking/recipes-protocols/freediameter/files/run-ptest6
-rw-r--r--meta-networking/recipes-protocols/freediameter/freediameter_1.4.0.bb141
-rw-r--r--meta-networking/recipes-protocols/freediameter/freediameter_1.5.0.bb141
-rw-r--r--meta-networking/recipes-protocols/frr/frr/0001-bgpd-avoid-notify-race-between-io-and-main-pthreads.patch151
-rw-r--r--meta-networking/recipes-protocols/frr/frr/0001-configure-Check-for-readline-function-instead-of-mai.patch32
-rw-r--r--meta-networking/recipes-protocols/frr/frr/0001-ospfd-Adding-SUPPORT_OSPF_API-define-in-ospf_spf.c.patch48
-rw-r--r--meta-networking/recipes-protocols/frr/frr/0001-zebra-Mimic-GNU-basename-API-for-non-glibc-library-e.patch34
-rw-r--r--meta-networking/recipes-protocols/frr/frr/frr.pam1
-rw-r--r--meta-networking/recipes-protocols/frr/frr_8.3.1.bb131
-rw-r--r--meta-networking/recipes-protocols/frr/frr_9.1.bb136
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0001-Create-subroutine-for-cleaning-recent-interfaces.patch59
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0001-dns-sd-Include-missing-headers.patch41
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0001-mdns-include-stddef.h-for-NULL.patch40
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0002-Create-subroutine-for-tearing-down-an-interface.patch58
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0002-mdns-cross-compilation-fixes-for-bitbake.patch145
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0003-Track-interface-socket-family.patch50
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0004-Use-list-for-changed-interfaces.patch177
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0006-Remove-unneeded-function.patch51
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0008-Mark-deleted-interfaces-as-being-changed.patch39
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch45
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0010-Handle-errors-from-socket-calls.patch62
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0011-Change-a-dynamic-allocation-to-file-scope-variable.patch53
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0001-Create-subroutine-for-cleaning-recent-interfaces.patch58
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0001-Fix-SIGSEGV-during-DumpStateLog.patch30
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0001-Handle-interface-without-ifa_addr.patch38
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0001-dns-sd-Include-missing-headers.patch27
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0002-Create-subroutine-for-tearing-down-an-interface.patch56
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0002-make-Set-libdns_sd.so-soname-correctly.patch24
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0003-Track-interface-socket-family.patch48
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0004-Indicate-loopback-interface-to-mDNS-core.patch55
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0004-make-Separate-TLS-targets-from-libraries.patch61
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0005-Use-list-for-changed-interfaces.patch166
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0005-mDNSCore-Fix-broken-debug-parameter.patch25
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0006-Handle-noisy-netlink-sockets.patch249
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0006-make-Add-top-level-Makefile.patch21
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0007-Mark-deleted-interfaces-as-being-changed.patch37
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0008-Handle-errors-from-socket-calls.patch60
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0009-remove-unneeded-headers.patch31
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0015-Add-missing-limits.h.patch23
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/mdns.service (renamed from meta-networking/recipes-protocols/mdns/files/mdns.service)0
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns_1310.140.1.bb115
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns_2200.100.94.0.2.bb135
-rw-r--r--[-rwxr-xr-x]meta-networking/recipes-protocols/net-snmp/files/init0
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Android-Fix-the-build.patch83
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-ac_add_search_path.m4-keep-consistent-between-32bit.patch38
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch35
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch27
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-net-snmp-add-knob-whether-nlist.h-are-checked.patch38
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch34
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0002-net-snmp-fix-libtool-finish.patch36
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0003-testing-add-the-output-format-for-ptest.patch37
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0004-config_os_headers-Error-Fix.patch37
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch28
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0005-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch37
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0006-get_pid_from_inode-Include-limit.h.patch29
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0007-configure-fix-incorrect-variable.patch30
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0008-net-snmp-fix-engineBoots-value-on-SIGHUP.patch46
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0009-net-snmp-fix-for-disable-des.patch32
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0010-net-snmp-Reproducibility-Don-t-check-build-host-for.patch34
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0011-ac_add_search_path.m4-keep-consistent-between-32bit-.patch40
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0012-Fix-configuration-of-NETSNMP_FD_MASK_TYPE.patch43
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch34
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch44
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch36
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch30
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch35
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch30
-rw-r--r--[-rwxr-xr-x]meta-networking/recipes-protocols/net-snmp/net-snmp/run-ptest0
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.3.bb292
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.4.bb296
-rw-r--r--meta-networking/recipes-protocols/opcua/open62541/0001-fix-build-do-not-install-git-files.patch24
-rw-r--r--meta-networking/recipes-protocols/opcua/open62541_1.3.8.bb53
-rw-r--r--meta-networking/recipes-protocols/openflow/openflow.inc64
-rw-r--r--meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch2
-rw-r--r--meta-networking/recipes-protocols/openflow/openflow/0001-Makefile.am-Specify-export-dynamic-directly-to-linke.patch30
-rw-r--r--meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch2
-rw-r--r--meta-networking/recipes-protocols/openflow/openflow_1.0.bb4
-rw-r--r--meta-networking/recipes-protocols/openflow/openflow_git.bb70
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp/0001-Use-1-instead-of-WAIT_ANY.patch2
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api-Included-needed-headers.patch2
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp/0001-test-pppd_dummy.c-Fix-return-value.patch2
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp/0002-cli-include-fcntl.h-for-O_CREAT-define.patch2
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch2
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp/0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch2
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-modify-CFLAGS-to-aviod-build-error.patch2
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tp-simplify-gcc-warning-hack.patch2
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-enable-tests.patch2
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-sysconfig.patch14
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix.patch16
-rw-r--r--meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch2
-rw-r--r--meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-include-path-to-generated-version.h.patch2
-rw-r--r--meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch12
-rw-r--r--meta-networking/recipes-protocols/openlldp/openlldp_1.1.0.bb32
-rw-r--r--meta-networking/recipes-protocols/openlldp/openlldp_1.1.1.bb32
-rw-r--r--meta-networking/recipes-protocols/quagga/files/0001-configure-Check-for-readline-instead-of-main-in-libr.patch32
-rw-r--r--meta-networking/recipes-protocols/quagga/files/bgpd.service15
-rw-r--r--meta-networking/recipes-protocols/quagga/files/isisd.service14
-rw-r--r--meta-networking/recipes-protocols/quagga/files/ospf6d.service15
-rw-r--r--meta-networking/recipes-protocols/quagga/files/ospfd.service15
-rw-r--r--meta-networking/recipes-protocols/quagga/files/quagga.default12
-rw-r--r--meta-networking/recipes-protocols/quagga/files/quagga.init200
-rw-r--r--meta-networking/recipes-protocols/quagga/files/quagga.pam13
-rw-r--r--meta-networking/recipes-protocols/quagga/files/ripd.service15
-rw-r--r--meta-networking/recipes-protocols/quagga/files/ripngd.service15
-rw-r--r--meta-networking/recipes-protocols/quagga/files/volatiles.03_quagga3
-rw-r--r--meta-networking/recipes-protocols/quagga/files/watchquagga.default12
-rw-r--r--meta-networking/recipes-protocols/quagga/files/watchquagga.init64
-rw-r--r--meta-networking/recipes-protocols/quagga/files/zebra.service16
-rw-r--r--meta-networking/recipes-protocols/quagga/quagga.inc243
-rw-r--r--meta-networking/recipes-protocols/quagga/quagga_1.2.4.bb10
-rw-r--r--meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/Modify-configure.in-and-etc-Makefile.am.patch2
-rw-r--r--meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb3
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/0001-ppoe-Dont-include-linux-if_ether.h.patch2
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/0002-Enable-support-for-the-kernel-module.patch2
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure.in-Error-fix.patch57
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure.patch2
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure_in_cross.patch48
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/discard-use-of-dnl-in-Makefile.am.patch2
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/dont-swallow-errors.patch26
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.13.bb78
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.15.bb77
-rw-r--r--meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb4
-rw-r--r--meta-networking/recipes-protocols/vsomeip/vsomeip/0001-Fix-pkgconfig-dir-for-multilib.patch28
-rw-r--r--meta-networking/recipes-protocols/vsomeip/vsomeip/0002-Install-example-configuration-files-to-etc-vsomeip.patch28
-rw-r--r--meta-networking/recipes-protocols/vsomeip/vsomeip/0003-Do-not-build-external-gtest.patch187
-rw-r--r--meta-networking/recipes-protocols/vsomeip/vsomeip/0004-Do-not-specify-PIE-flag-explicitly.patch47
-rw-r--r--meta-networking/recipes-protocols/vsomeip/vsomeip/0005-test-common-CMakeLists.txt-add-missing-link-with-dlt.patch41
-rw-r--r--meta-networking/recipes-protocols/vsomeip/vsomeip_3.4.10.bb75
-rw-r--r--meta-networking/recipes-protocols/zeroconf/zeroconf/0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch2
-rw-r--r--meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb4
-rw-r--r--meta-networking/recipes-support/aoetools/aoetools/reproducible-build.patch2
-rw-r--r--meta-networking/recipes-support/arptables/arptables/0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch2
-rw-r--r--meta-networking/recipes-support/arptables/arptables_git.bb2
-rw-r--r--meta-networking/recipes-support/celt051/celt051_git.bb2
-rw-r--r--meta-networking/recipes-support/chrony/chrony/0001-Fix-compilation-with-musl.patch2
-rw-r--r--meta-networking/recipes-support/chrony/chrony/arm_eabi.patch44
-rw-r--r--meta-networking/recipes-support/chrony/chrony_4.3.bb151
-rw-r--r--meta-networking/recipes-support/chrony/chrony_4.5.bb140
-rw-r--r--meta-networking/recipes-support/curlpp/curlpp/0001-curlpp-config.in-Remove-references-to-absolute-build.patch40
-rw-r--r--meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb3
-rw-r--r--meta-networking/recipes-support/dnsmasq/dnsmasq.inc87
-rw-r--r--meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch31
-rw-r--r--meta-networking/recipes-support/dnsmasq/dnsmasq_2.87.bb7
-rw-r--r--meta-networking/recipes-support/dnsmasq/dnsmasq_2.90.bb129
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot/0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch2
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot/0001-not-check-pandoc.patch2
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot_2.3.14.bb77
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot_2.3.21.bb74
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils/0001-configure.ac-Add-an-option-to-disable-host-udev-vers.patch55
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-utils-support-usrmerge.patch19
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils/0001-drbdmon-add-LDFLAGS-when-linking.patch12
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils_9.20.2.bb73
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils_9.27.0.bb76
-rw-r--r--meta-networking/recipes-support/drbd/drbd_9.0.24-1.bb24
-rw-r--r--meta-networking/recipes-support/drbd/drbd_9.2.1.bb24
-rwxr-xr-xmeta-networking/recipes-support/dropwatch/dropwatch/0001-fix-bug-build-with-sysroot-head-file-instead-of-loca.patch30
-rw-r--r--meta-networking/recipes-support/dropwatch/dropwatch_1.5.4.bb20
-rw-r--r--meta-networking/recipes-support/esmtp/esmtp/0001-Fix-libESMTP-dependency-check.patch2
-rw-r--r--meta-networking/recipes-support/ettercap/ettercap/0001-sslstrip-Enhance-the-libcurl-version-check-to-consid.patch38
-rw-r--r--meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb6
-rw-r--r--meta-networking/recipes-support/fetchmail/fetchmail_6.4.23.bb22
-rw-r--r--meta-networking/recipes-support/fetchmail/fetchmail_6.4.38.bb26
-rw-r--r--meta-networking/recipes-support/fping/fping/0001-fping-Initialize-msghdr-struct-in-a-portable-way.patch2
-rw-r--r--meta-networking/recipes-support/fwknop/fwknop/0001-Use-pkg-config-to-find-gpgme.patch27
-rw-r--r--meta-networking/recipes-support/fwknop/fwknop/0001-configure.ac-Fix-missing-comma-in-AS_IF.patch29
-rw-r--r--meta-networking/recipes-support/fwknop/fwknop_2.6.10.bb17
-rw-r--r--meta-networking/recipes-support/htpdate/htpdate_1.3.6.bb31
-rw-r--r--meta-networking/recipes-support/htpdate/htpdate_1.3.7.bb31
-rw-r--r--meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb1
-rw-r--r--meta-networking/recipes-support/ifenslave/ifenslave_2.13.bb22
-rw-r--r--meta-networking/recipes-support/ifenslave/ifenslave_2.14.bb22
-rw-r--r--meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.8_typo.patch2
-rw-r--r--meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_netlink-invalid-arg.patch2
-rw-r--r--meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_typo.patch2
-rw-r--r--meta-networking/recipes-support/ifmetric/ifmetric/nlrequest.c_packet-too-small_fix.patch2
-rw-r--r--meta-networking/recipes-support/ipcalc/ipcalc/0001-Makefile-pass-extra-linker-flags.patch29
-rw-r--r--meta-networking/recipes-support/ipcalc/ipcalc_0.2.3.bb21
-rw-r--r--meta-networking/recipes-support/ipcalc/ipcalc_1.0.3.bb14
-rw-r--r--meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Add-CCFLAGS-to-cflags.patch36
-rw-r--r--meta-networking/recipes-support/ipvsadm/ipvsadm/0001-libipvs-Include-missing-sys-types.h.patch28
-rw-r--r--meta-networking/recipes-support/ipvsadm/ipvsadm_1.31.bb8
-rw-r--r--meta-networking/recipes-support/libcpr/libcpr_1.10.5.bb24
-rw-r--r--meta-networking/recipes-support/libesmtp/libesmtp/0001-Add-build-option-for-NTLM-support.patch2
-rw-r--r--meta-networking/recipes-support/libexosip2/libexosip2_5.3.0.bb22
-rw-r--r--meta-networking/recipes-support/libldb/libldb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch59
-rw-r--r--meta-networking/recipes-support/libldb/libldb/0001-do-not-import-target-module-while-cross-compile.patch10
-rw-r--r--meta-networking/recipes-support/libldb/libldb/0002-ldb-Add-configure-options-for-packages.patch46
-rw-r--r--meta-networking/recipes-support/libldb/libldb/0003-Fix-pyext_PATTERN-for-cross-compilation.patch59
-rw-r--r--meta-networking/recipes-support/libldb/libldb/0003-avoid-openldap-unless-wanted.patch30
-rw-r--r--meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch31
-rw-r--r--meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-conflict-type-error.patch45
-rw-r--r--meta-networking/recipes-support/libldb/libldb/run-ptest17
-rw-r--r--meta-networking/recipes-support/libldb/libldb_2.3.4.bb81
-rw-r--r--meta-networking/recipes-support/libldb/libldb_2.8.0.bb87
-rw-r--r--meta-networking/recipes-support/libmemcached/files/0001-Fix-comparison-types.patch2
-rw-r--r--meta-networking/recipes-support/libmemcached/files/0001-configure.ac-Do-not-configure-build-aux.patch2
-rw-r--r--meta-networking/recipes-support/libmemcached/files/0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch2
-rw-r--r--meta-networking/recipes-support/libmemcached/files/crosscompile.patch2
-rw-r--r--meta-networking/recipes-support/libosip2/libosip2_5.3.1.bb15
-rw-r--r--meta-networking/recipes-support/libtalloc/libtalloc/0001-Fix-pyext_PATTERN-for-cross-compilation.patch57
-rw-r--r--meta-networking/recipes-support/libtalloc/libtalloc/0001-talloc-Add-configure-options-for-packages.patch195
-rw-r--r--meta-networking/recipes-support/libtalloc/libtalloc/0002-Fix-pyext_PATTERN-for-cross-compilation.patch57
-rw-r--r--meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch20
-rw-r--r--meta-networking/recipes-support/libtalloc/libtalloc/options-2.2.0.patch172
-rw-r--r--meta-networking/recipes-support/libtalloc/libtalloc/run-ptest17
-rw-r--r--meta-networking/recipes-support/libtalloc/libtalloc_2.3.3.bb54
-rw-r--r--meta-networking/recipes-support/libtalloc/libtalloc_2.4.2.bb61
-rw-r--r--meta-networking/recipes-support/libtdb/libtdb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch42
-rw-r--r--meta-networking/recipes-support/libtdb/libtdb/0001-tdb-Add-configure-options-for-packages.patch186
-rw-r--r--meta-networking/recipes-support/libtdb/libtdb/0002-Fix-pyext_PATTERN-for-cross-compilation.patch42
-rw-r--r--meta-networking/recipes-support/libtdb/libtdb/run-ptest17
-rw-r--r--meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch172
-rw-r--r--meta-networking/recipes-support/libtdb/libtdb_1.4.10.bb63
-rw-r--r--meta-networking/recipes-support/libtdb/libtdb_1.4.3.bb51
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent/0001-Add-configure-options-for-packages.patch190
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent/0001-Fix-pyext_PATTERN-for-cross-compilation.patch42
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent/0001-libtevent-fix-musl-libc-compile-error.patch32
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent/0002-Fix-pyext_PATTERN-for-cross-compilation.patch42
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent/avoid-attr-unless-wanted.patch13
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent/options-0.10.0.patch169
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent/run-ptest17
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent_0.10.2.bb53
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent_0.16.0.bb62
-rw-r--r--meta-networking/recipes-support/linux-atm/linux-atm/0001-fix-compile-error-with-linux-kernel-v4.8.patch2
-rw-r--r--meta-networking/recipes-support/linux-atm/linux-atm/install-from-buildir.patch2
-rw-r--r--meta-networking/recipes-support/linux-atm/linux-atm/link-with-ldflags.patch2
-rw-r--r--meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.19.bb2
-rw-r--r--meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Remove-newline-from-format-line.patch2
-rw-r--r--meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch2
-rw-r--r--meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-coordinator-Fix-strncpy-range-warning.patch2
-rw-r--r--meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-src-iz.c-Undef-dprintf-before-redefining.patch2
-rw-r--r--meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb2
-rw-r--r--meta-networking/recipes-support/macchanger/macchanger/0001-Fix-musl-build.patch2
-rw-r--r--meta-networking/recipes-support/mctp/mctp_1.1.bb42
-rw-r--r--meta-networking/recipes-support/mctp/mctp_git.bb41
-rw-r--r--meta-networking/recipes-support/mdio-tools/mdio-netlink_1.3.1.bb (renamed from meta-networking/recipes-support/mdio-tools/mdio-netlink_1.2.0.bb)0
-rw-r--r--meta-networking/recipes-support/mdio-tools/mdio-tools.inc2
-rw-r--r--meta-networking/recipes-support/mdio-tools/mdio-tools_1.2.0.bb9
-rw-r--r--meta-networking/recipes-support/mdio-tools/mdio-tools_1.3.1.bb9
-rw-r--r--meta-networking/recipes-support/nbdkit/nbdkit/0001-plugins-Avoid-absolute-buildpaths-in-binaries.patch38
-rw-r--r--meta-networking/recipes-support/nbdkit/nbdkit/0001-server-Fix-build-when-printf-is-a-macro.patch39
-rw-r--r--meta-networking/recipes-support/nbdkit/nbdkit_1.33.1.bb33
-rw-r--r--meta-networking/recipes-support/nbdkit/nbdkit_1.33.11.bb33
-rw-r--r--meta-networking/recipes-support/ncp/libowfat/0001-replace-__pure__-with-compiler-attribute-pure.patch2
-rw-r--r--meta-networking/recipes-support/ndisc6/ndisc6_1.0.6.bb72
-rw-r--r--meta-networking/recipes-support/ndisc6/ndisc6_1.0.8.bb72
-rw-r--r--meta-networking/recipes-support/netcat/netcat_0.7.1.bb1
-rw-r--r--meta-networking/recipes-support/netcf/netcf/0001-Adopt-to-new-gnulib-read_file-fread_file-signature.patch83
-rw-r--r--meta-networking/recipes-support/netcf/netcf_0.2.8.bb4
-rw-r--r--meta-networking/recipes-support/netperf/netperf_git.bb2
-rw-r--r--meta-networking/recipes-support/netsniff-ng/files/0001-Cmds-automatically-create-folder.patch2
-rw-r--r--meta-networking/recipes-support/netsniff-ng/netsniff-ng_0.6.8.bb2
-rw-r--r--meta-networking/recipes-support/ntimed/ntimed_git.bb2
-rw-r--r--meta-networking/recipes-support/ntopng/files/CVE-2021-36082.patch116
-rw-r--r--meta-networking/recipes-support/ntopng/ntopng_5.2.1.bb2
-rw-r--r--meta-networking/recipes-support/ntp/ntp/0001-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch23
-rw-r--r--meta-networking/recipes-support/ntp/ntp/0001-test-Fix-build-with-new-compiler-defaults-to-fno-com.patch16
-rw-r--r--meta-networking/recipes-support/ntp/ntp/ntp-4.2.4_p6-nano.patch2
-rw-r--r--meta-networking/recipes-support/ntp/ntp/ntpd.service5
-rwxr-xr-xmeta-networking/recipes-support/ntp/ntp/ntpdate59
-rw-r--r--meta-networking/recipes-support/ntp/ntp/ntpdate.default7
-rw-r--r--meta-networking/recipes-support/ntp/ntp/ntpdate.service11
-rw-r--r--meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch19
-rw-r--r--meta-networking/recipes-support/ntp/ntp_4.2.8p15.bb208
-rw-r--r--meta-networking/recipes-support/ntp/ntp_4.2.8p17.bb184
-rw-r--r--meta-networking/recipes-support/ntpsec/ntpsec/0001-Update-to-OpenSSL-3.0.0-alpha15.patch111
-rw-r--r--meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-clone3-for-glibc-2.34-in-se.patch31
-rw-r--r--meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-newfstatat-on-all-archs-for.patch42
-rw-r--r--meta-networking/recipes-support/ntpsec/ntpsec/0001-wscript-Add-BISONFLAGS-support.patch31
-rw-r--r--meta-networking/recipes-support/ntpsec/ntpsec/0001-wscript-Widen-the-search-for-tags.patch29
-rw-r--r--meta-networking/recipes-support/ntpsec/ntpsec/0002-ntpd-ntp_sandbox.c-match-riscv-to-aarch-in-seccomp-f.patch34
-rw-r--r--meta-networking/recipes-support/ntpsec/ntpsec_1.2.1.bb127
-rw-r--r--meta-networking/recipes-support/ntpsec/ntpsec_1.2.2a.bb129
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Add-resolv_compat.h-for-musl-builds.patch10
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch78
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch11
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-open-vm-tools-Correct-include-path-for-poll.h.patch36
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0002-Use-configure-test-for-struct-timespec.patch50
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch42
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0003-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch63
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0003-Use-configure-test-for-struct-timespec.patch45
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch58
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0004-Use-configure-to-test-for-feature-instead-of-platfor.patch144
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-sys-stat.h-include.patch30
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-to-test-for-feature-instead-of-platfor.patch141
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-subdir-objects-configure-error.patch38
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0006-Use-configure-test-for-sys-stat.h-include.patch25
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0007-Fix-subdir-objects-configure-error.patch34
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0007-include-poll.h-instead-of-sys-poll.h.patch31
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0008-Rename-poll.h-to-vm_poll.h.patch114
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0008-include-poll.h-instead-of-sys-poll.h.patch26
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch112
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0009-use-posix-strerror_r-unless-on-gnu-libc-system.patch44
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0010-Use-uintmax_t-for-handling-rlim_t.patch38
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch39
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0011-Use-off64_t-instead-of-__off64_t.patch35
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0011-Use-uintmax_t-for-handling-rlim_t.patch36
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0012-Use-off64_t-instead-of-__off64_t.patch32
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0012-hgfsServerLinux-Consider-64bit-time_t-possibility.patch44
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch27
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0013-open-vm-tools-Correct-include-path-for-poll.h.patch37
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0014-timeSync-Portable-way-to-print-64bit-time_t.patch55
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools_11.3.5.bb121
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.3.5.bb122
-rw-r--r--meta-networking/recipes-support/openipmi/files/0001-m4-ax_python_devel.m4-do-not-check-for-distutils.patch41
-rw-r--r--meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch9
-rw-r--r--meta-networking/recipes-support/openipmi/files/include_sys_types.patch5
-rw-r--r--meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch6
-rw-r--r--meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch3
-rw-r--r--meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch49
-rw-r--r--meta-networking/recipes-support/openipmi/openipmi_2.0.32.bb119
-rw-r--r--meta-networking/recipes-support/openipmi/openipmi_2.0.34.bb115
-rw-r--r--meta-networking/recipes-support/openvpn/openvpn_2.5.7.bb77
-rw-r--r--meta-networking/recipes-support/openvpn/openvpn_2.6.10.bb76
-rw-r--r--meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-when-build-this-file.patch32
-rw-r--r--meta-networking/recipes-support/pgpool2/pgpool2/define_SIGNAL_ARGS.patch25
-rw-r--r--meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service17
-rw-r--r--meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig7
-rw-r--r--meta-networking/recipes-support/pgpool2/pgpool2_4.5.1.bb50
-rw-r--r--meta-networking/recipes-support/phytool/phytool.bb2
-rw-r--r--meta-networking/recipes-support/pimd/pimd/0001-configure-Dont-use-uname-to-determine-target-OS.patch2
-rw-r--r--meta-networking/recipes-support/pimd/pimd_2.3.2.bb3
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core/0001-cmake-Allow-SYSTEMCTL_BIN-to-be-overridden-from-envi.patch31
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core/0001-examples-Include-alloca.h-for-strdupa.patch29
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core/0001-include-libgen.h-for-basename.patch58
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core_42.0.bb44
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core_50.0.bb46
-rw-r--r--meta-networking/recipes-support/ruli/ruli_0.36.bb2
-rw-r--r--meta-networking/recipes-support/smcroute/smcroute_2.5.5.bb13
-rw-r--r--meta-networking/recipes-support/smcroute/smcroute_2.5.6.bb13
-rw-r--r--meta-networking/recipes-support/sngrep/sngrep_1.8.0.bb37
-rw-r--r--meta-networking/recipes-support/spice/libcacard_2.8.1.bb17
-rw-r--r--meta-networking/recipes-support/spice/phodav_3.0.bb24
-rw-r--r--meta-networking/recipes-support/spice/spice-gtk_0.42.bb68
-rw-r--r--meta-networking/recipes-support/spice/spice-guest-vdagent_0.22.1.bb25
-rw-r--r--meta-networking/recipes-support/spice/spice-protocol_0.14.4.bb2
-rw-r--r--meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch59
-rw-r--r--meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch96
-rw-r--r--meta-networking/recipes-support/spice/spice/0001-configure.ac-explicitly-link-to-jpeg-lib.patch48
-rw-r--r--meta-networking/recipes-support/spice/spice_git.bb47
-rw-r--r--meta-networking/recipes-support/spice/usbredir_0.13.0.bb18
-rw-r--r--meta-networking/recipes-support/spice/usbredir_0.9.0.bb20
-rw-r--r--meta-networking/recipes-support/ssmping/files/0001-Makefile-tweak-install-dir.patch2
-rw-r--r--meta-networking/recipes-support/ssmtp/ssmtp/0001-include-libgen.h-for-basename.patch32
-rw-r--r--meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb1
-rw-r--r--meta-networking/recipes-support/strongswan/strongswan_5.9.14.bb194
-rw-r--r--meta-networking/recipes-support/strongswan/strongswan_5.9.7.bb189
-rw-r--r--meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch34
-rw-r--r--meta-networking/recipes-support/stunnel/stunnel_5.65.bb33
-rw-r--r--meta-networking/recipes-support/stunnel/stunnel_5.72.bb33
-rw-r--r--meta-networking/recipes-support/tcpdump/tcpdump_4.99.1.bb53
-rw-r--r--meta-networking/recipes-support/tcpdump/tcpdump_4.99.4.bb52
-rw-r--r--meta-networking/recipes-support/tcpdump/tcpslice_1.5.bb25
-rw-r--r--meta-networking/recipes-support/tcpdump/tcpslice_1.7.bb24
-rw-r--r--meta-networking/recipes-support/tcpreplay/tcpreplay/0001-configure.ac-do-not-run-conftest-in-case-of-cross-co.patch51
-rw-r--r--meta-networking/recipes-support/tcpreplay/tcpreplay/0001-configure.ac-unify-search-dirs-for-pcap-and-add-lib3.patch82
-rw-r--r--meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.2.bb26
-rw-r--r--meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.4.bb28
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2022-40468.patch33
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch2
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.1.bb1
-rw-r--r--meta-networking/recipes-support/tnftp/tnftp_20210827.bb39
-rw-r--r--meta-networking/recipes-support/tnftp/tnftp_20230507.bb38
-rw-r--r--meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb45
-rw-r--r--meta-networking/recipes-support/traceroute/traceroute_2.1.5.bb44
-rw-r--r--meta-networking/recipes-support/uftp/uftp_5.0.1.bb16
-rw-r--r--meta-networking/recipes-support/uftp/uftp_5.0.3.bb16
-rw-r--r--meta-networking/recipes-support/unbound/unbound/0001-contrib-add-yocto-compatible-init-script.patch78
-rw-r--r--meta-networking/recipes-support/unbound/unbound_1.16.3.bb43
-rw-r--r--meta-networking/recipes-support/unbound/unbound_1.19.3.bb46
-rw-r--r--meta-networking/recipes-support/wavemon/wavemon_0.9.5.bb28
-rw-r--r--meta-networking/recipes-support/wireshark/files/0001-UseLemon.cmake-do-not-use-lemon-data-from-the-host.patch32
-rw-r--r--meta-networking/recipes-support/wireshark/files/0001-wireshark-src-improve-reproducibility.patch28
-rw-r--r--meta-networking/recipes-support/wireshark/files/0002-flex-Remove-line-directives.patch14
-rw-r--r--meta-networking/recipes-support/wireshark/files/0003-bison-Remove-line-directives.patch59
-rw-r--r--meta-networking/recipes-support/wireshark/files/0004-lemon-Remove-line-directives.patch87
-rw-r--r--meta-networking/recipes-support/wireshark/files/CVE-2022-3190.patch145
-rw-r--r--meta-networking/recipes-support/wireshark/wireshark_3.4.12.bb89
-rw-r--r--meta-networking/recipes-support/wireshark/wireshark_4.2.4.bb99
-rw-r--r--meta-oe/README.md (renamed from meta-oe/README)0
-rw-r--r--meta-oe/classes/gitpkgv.bbclass14
-rw-r--r--meta-oe/classes/image_types_sparse.bbclass11
-rw-r--r--meta-oe/classes/signing.bbclass316
-rw-r--r--meta-oe/conf/include/ptest-packagelists-meta-oe.inc72
-rw-r--r--meta-oe/conf/layer.conf11
-rw-r--r--meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/7_6.diff2
-rw-r--r--meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/fix-menu-generation.patch2
-rw-r--r--meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/port-gnome-menus3.patch2
-rw-r--r--meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb1
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem/0001-include-missing-cstdint.patch32
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb28
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Makefile.am-do-not-clobber-PYTHONPATH-from-build-env.patch57
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Unbolt-ubuntu-hack.patch26
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/fix_build_errors.patch2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.1.bb114
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.2.bb115
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-Makefile-do-not-use-Werror.patch26
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-Makefile-fix-parallel-build-failure.patch44
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch10
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-meson.build-drop-unnecessary-build-dependencies.patch58
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-networkd.c-define-scope-specific-to-case-statement.patch47
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0002-meson.build-do-not-use-Werror.patch29
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_0.104.bb68
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_1.0.bb52
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.1.bb67
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.4.6.bb67
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-core/packagegroups/packagegroup-meta-oe.bbappend3
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-build-on-32bit.patch38
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-type-mismatch-on-32bit-arches.patch33
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-apply-msvc-workaround-for-clang-16.patch32
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-free_mon-Include-missing-cstdint.patch28
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-server-Adjust-the-cache-alignment-assumptions.patch2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-wiredtiger-Avoid-using-off64_t.patch30
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch3
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/PTHREAD_STACK_MIN.patch19
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch2
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb35
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb-generator_0.4.8.bb14
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb-runtime_0.4.8.bb17
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb.bb16
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb.inc13
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.6.4.bb29
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0001-Fix-compilation-with-GCC-10.x.patch39
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch33
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0002-Include-limits.h-for-PATH_MAX-definition.patch41
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0003-Fix-non-x86-platforms-on-musl.patch49
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb11
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-multimedia/kmsxx/kmsxx_git.bb35
-rw-r--r--meta-oe/dynamic-layers/perl-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend2
-rw-r--r--meta-oe/dynamic-layers/perl-layer/recipes-support/debsums/debsums_2.2.2.bb56
-rw-r--r--meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/files/0001-libtrace-Use-XSI-version-of-strerror_r-on-non-glibc-.patch35
-rw-r--r--meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/rasdaemon_0.6.8.bb51
-rw-r--r--meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/rasdaemon_0.8.0.bb51
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/10-adbd-configfs.conf4
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-cleanup24
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-setup35
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-start7
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs_1.0.bb35
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf/android-gadget-setup37
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf_1.0.bb18
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-Fixes-for-yocto-build.patch164
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch375
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0003-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch128
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0004-adb-Fix-build-on-big-endian-systems.patch50
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0005-adb-Allow-adbd-to-be-run-as-root.patch25
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/adbd.mk87
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/android-tools-adbd.service13
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Add-riscv64-support.patch653
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Added-missing-headers.patch46
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Nonnull.patch22
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Vector-cast.patch16
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/add-missing-headers.patch43
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/20150704-CVE-2015-3239_dwarf_i.h.patch15
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/legacy_built-in_sync_functions.patch28
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/user_pt_regs.patch26
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-attribute-issue-with-gcc.patch19
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-build-on-non-x86.patch26
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-gettid-exception-declaration.patch26
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-standard-namespace-errors.patch24
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/hard-code-build-number.patch46
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/libusb-header-path.patch18
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/move-log-file-to-proper-dir.patch20
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/simg_dump-python3.patch64
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stdatomic.patch66
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stub-out-fastdeploy.patch95
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Add-riscv64-support.patch653
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Added-missing-headers.patch46
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Nonnull.patch22
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Vector-cast.patch16
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/add-missing-headers.patch43
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-attribute-issue-with-gcc.patch19
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-build-on-non-x86.patch26
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-gettid-exception-declaration.patch26
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-standard-namespace-errors.patch24
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/hard-code-build-number.patch46
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/libusb-header-path.patch18
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/move-log-file-to-proper-dir.patch20
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/simg_dump-python3.patch64
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stdatomic.patch66
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stub-out-fastdeploy.patch95
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/throw-exception-on-unknown-os.patch18
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/throw-exception-on-unknown-os.patch18
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/remount2
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/rules_yocto.mk1
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_29.0.6.r14.bb194
-rw-r--r--meta-oe/files/static-group-meta-oe9
-rw-r--r--meta-oe/files/static-passwd-meta-oe11
-rw-r--r--meta-oe/lib/oeqa/selftest/cases/syzkaller.py124
-rw-r--r--meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch39
-rw-r--r--meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch183
-rw-r--r--meta-oe/recipes-benchmark/bonnie/bonnie++/makefile-use-link-for-helper.patch24
-rw-r--r--meta-oe/recipes-benchmark/bonnie/bonnie++_2.00a.bb33
-rw-r--r--meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb2
-rw-r--r--meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch2
-rw-r--r--meta-oe/recipes-benchmark/fio/fio_3.32.bb44
-rw-r--r--meta-oe/recipes-benchmark/fio/fio_3.36.bb45
-rw-r--r--meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch2
-rw-r--r--meta-oe/recipes-benchmark/glmark2/files/0001-libmatrix-Include-missing-utility-header.patch24
-rw-r--r--meta-oe/recipes-benchmark/glmark2/files/0002-run-dispmanx-fullscreen.patch12
-rw-r--r--meta-oe/recipes-benchmark/glmark2/files/0003-GLVisualConfig-By-default-don-t-care-about-the-stenc.patch103
-rw-r--r--meta-oe/recipes-benchmark/glmark2/glmark2_git.bb6
-rw-r--r--meta-oe/recipes-benchmark/iozone3/iozone3_492.bb121
-rw-r--r--meta-oe/recipes-benchmark/iozone3/iozone3_506.bb119
-rw-r--r--meta-oe/recipes-benchmark/iperf2/iperf2/0001-Detect-bool-definition-considering-stdbool.h-being-p.patch2
-rw-r--r--meta-oe/recipes-benchmark/iperf3/iperf3/0001-configure.ac-check-for-CPP-prog.patch11
-rw-r--r--meta-oe/recipes-benchmark/iperf3/iperf3/0002-Remove-pg-from-profile_CFLAGS.patch2
-rw-r--r--meta-oe/recipes-benchmark/iperf3/iperf3_3.11.bb34
-rw-r--r--meta-oe/recipes-benchmark/iperf3/iperf3_3.16.bb31
-rw-r--r--meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb2
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch2
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch2
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch2
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch2
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch2
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-lat_unix_connect-manual-page.patch2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-manual-pages.patch2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_fifo-Fix-cleanup-sequence.patch2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_http.c-Add-printf-format.patch2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-lmbench-Point-webpage-lm-to-target-directory.patch2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/fix-lmbench-memory-check-failure.patch2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/lmbench_result_html_report.patch2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb5
-rw-r--r--meta-oe/recipes-benchmark/mbw/mbw_2.0.bb16
-rw-r--r--meta-oe/recipes-benchmark/mbw/mbw_git.bb18
-rw-r--r--meta-oe/recipes-benchmark/memtester/files/Makefile.patch2
-rw-r--r--meta-oe/recipes-benchmark/memtester/memtester_4.5.1.bb25
-rw-r--r--meta-oe/recipes-benchmark/memtester/memtester_4.6.0.bb24
-rw-r--r--meta-oe/recipes-benchmark/phoronix-test-suite/files/CVE-2022-40704.patch46
-rw-r--r--meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_10.8.4.bb5
-rw-r--r--meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb1
-rw-r--r--meta-oe/recipes-benchmark/stressapptest/stressapptest/libcplusplus-compat.patch28
-rw-r--r--meta-oe/recipes-benchmark/stressapptest/stressapptest/read_sysfs_for_cachesize.patch72
-rw-r--r--meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.11.bb23
-rw-r--r--meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.9.bb21
-rw-r--r--meta-oe/recipes-benchmark/sysbench/sysbench/0001-Adding-volatile-modifier-to-tmp-variable-in-memory-t.patch40
-rw-r--r--meta-oe/recipes-benchmark/sysbench/sysbench_0.4.12.bb28
-rw-r--r--meta-oe/recipes-benchmark/sysbench/sysbench_1.0.20.bb30
-rw-r--r--meta-oe/recipes-benchmark/tinymembench/tinymembench/0001-asm-Delete-.func-.endfunc-directives.patch2
-rw-r--r--meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb2
-rw-r--r--meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb1
-rw-r--r--meta-oe/recipes-bsp/bolt/bolt_0.9.6.bb22
-rw-r--r--meta-oe/recipes-bsp/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch2
-rw-r--r--meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb1
-rw-r--r--meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb2
-rw-r--r--meta-oe/recipes-bsp/firmwared/firmwared_git.bb2
-rw-r--r--meta-oe/recipes-bsp/flashrom/flashrom/0001-typecast-enum-conversions-explicitly.patch45
-rw-r--r--meta-oe/recipes-bsp/flashrom/flashrom_1.2.1.bb20
-rw-r--r--meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb22
-rw-r--r--meta-oe/recipes-bsp/fwupd/fwupd/0001-meson-Avoid-absolute-buildtime-paths-in-generated-he.patch41
-rw-r--r--meta-oe/recipes-bsp/fwupd/fwupd/c54ae9c524998e449b822feb465a0c90317cd735.patch26
-rw-r--r--meta-oe/recipes-bsp/fwupd/fwupd_1.8.4.bb126
-rw-r--r--meta-oe/recipes-bsp/fwupd/fwupd_1.8.9.bb142
-rw-r--r--meta-oe/recipes-bsp/i2cdev/i2cdev/fix-lsi2c-makefile.patch28
-rw-r--r--meta-oe/recipes-bsp/i2cdev/i2cdev/fix-musl.patch110
-rw-r--r--meta-oe/recipes-bsp/i2cdev/i2cdev_git.bb26
-rw-r--r--meta-oe/recipes-bsp/ledmon/ledmon/0001-Don-t-build-with-Werror-to-fix-compile-error.patch30
-rw-r--r--meta-oe/recipes-bsp/ledmon/ledmon/0001-fix-build-with-clang.patch90
-rw-r--r--meta-oe/recipes-bsp/ledmon/ledmon_0.97.bb34
-rw-r--r--meta-oe/recipes-bsp/ledmon/ledmon_git.bb41
-rw-r--r--meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb5
-rw-r--r--meta-oe/recipes-bsp/lsscsi/lsscsi_0.32.bb13
-rw-r--r--meta-oe/recipes-bsp/lsscsi/lsscsi_030.bb13
-rw-r--r--meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.13.bb33
-rw-r--r--meta-oe/recipes-bsp/nvme-cli/nvme-cli_2.8.bb30
-rw-r--r--meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb4
-rw-r--r--meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb3
-rw-r--r--meta-oe/recipes-connectivity/ace/ace_6.5.12.bb42
-rw-r--r--meta-oe/recipes-connectivity/ace/ace_6.5.19.bb41
-rw-r--r--meta-oe/recipes-connectivity/ace/files/ace_config.patch2
-rw-r--r--meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch2
-rw-r--r--meta-oe/recipes-connectivity/gattlib/gattlib_git.bb18
-rw-r--r--meta-oe/recipes-connectivity/gensio/files/0001-configure-Check-for-request_init-API-when-probing-fo.patch31
-rw-r--r--meta-oe/recipes-connectivity/gensio/files/0001-tools-gensiot-Fix-build-with-musl.patch29
-rw-r--r--meta-oe/recipes-connectivity/gensio/gensio_2.5.2.bb27
-rw-r--r--meta-oe/recipes-connectivity/gensio/gensio_2.8.3.bb26
-rw-r--r--meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch2
-rw-r--r--meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb21
-rw-r--r--meta-oe/recipes-connectivity/irssi/irssi_1.4.5.bb21
-rw-r--r--meta-oe/recipes-connectivity/iwd/iwd_1.30.bb55
-rw-r--r--meta-oe/recipes-connectivity/iwd/iwd_2.16.bb55
-rw-r--r--meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch32
-rw-r--r--meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch121
-rw-r--r--meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch53
-rw-r--r--meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb199
-rw-r--r--meta-oe/recipes-connectivity/krb5/krb5_1.21.2.bb201
-rw-r--r--meta-oe/recipes-connectivity/libimobiledevice-glue/libimobiledevice-glue_git.bb4
-rw-r--r--meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice/0001-include-unistd.h-for-usleep.patch31
-rw-r--r--meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.3.0.bb17
-rw-r--r--meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb7
-rw-r--r--meta-oe/recipes-connectivity/libirecovery/libirecovery_git.bb6
-rw-r--r--meta-oe/recipes-connectivity/libmbim/libmbim_1.26.4.bb15
-rw-r--r--meta-oe/recipes-connectivity/libmbim/libmbim_1.30.0.bb22
-rw-r--r--meta-oe/recipes-connectivity/libmtp/libmtp_1.1.20.bb47
-rw-r--r--meta-oe/recipes-connectivity/libmtp/libmtp_1.1.21.bb47
-rw-r--r--meta-oe/recipes-connectivity/libnet/libnet/0001-Support-musl-libc-remove-support-for-glibc-2.1.patch58
-rw-r--r--meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb24
-rw-r--r--meta-oe/recipes-connectivity/libnet/libnet_1.3.bb20
-rw-r--r--meta-oe/recipes-connectivity/libnfs/libnfs/0001-CMakeLists.txt-respect-CMAKE_INSTALL_LIBDIR-for-mult.patch61
-rw-r--r--meta-oe/recipes-connectivity/libnfs/libnfs/0001-cmake-Test-for-sys-uio.h.patch44
-rw-r--r--meta-oe/recipes-connectivity/libnfs/libnfs_5.0.3.bb18
-rw-r--r--meta-oe/recipes-connectivity/libqmi/files/0001-build-use-python3-everywhere.patch33
-rw-r--r--meta-oe/recipes-connectivity/libqmi/libqmi_1.30.8.bb32
-rw-r--r--meta-oe/recipes-connectivity/libqmi/libqmi_1.34.0.bb28
-rw-r--r--meta-oe/recipes-connectivity/libqrtr-glib/libqrtr-glib_git.bb2
-rw-r--r--meta-oe/recipes-connectivity/libtorrent-rasterbar/libtorrent-rasterbar_2.0.10.bb31
-rw-r--r--meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch28
-rw-r--r--meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb23
-rw-r--r--meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.2.bb49
-rw-r--r--meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.3.bb65
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-include-string.h-for-strncpy.patch11
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/0002-linuxptp-Use-CC-in-incdefs.sh.patch48
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/Use-cross-cpp-in-incdefs.patch26
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch37
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/phc2sys@.service.in13
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/ptp4l@.service.in11
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp_3.1.1.bb32
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp_4.1.bb62
-rw-r--r--meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/04-use-pkg-config-for-gnutls.patch23
-rw-r--r--meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/glib-2.32.patch10
-rw-r--r--meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb21
-rw-r--r--meta-oe/recipes-connectivity/loudmouth/loudmouth_1.5.4.bb16
-rw-r--r--meta-oe/recipes-connectivity/modemmanager/files/0001-core-switch-bash-shell-scripts-to-use-bin-sh-for-use.patch70
-rw-r--r--meta-oe/recipes-connectivity/modemmanager/modemmanager_1.18.12.bb61
-rw-r--r--meta-oe/recipes-connectivity/modemmanager/modemmanager_1.22.0.bb55
-rw-r--r--meta-oe/recipes-connectivity/mosh/mosh/0001-Fix-building-with-libc.patch24
-rw-r--r--meta-oe/recipes-connectivity/mosh/mosh/0001-configure.ac-add-support-of-protobuf-4.22.x.patch63
-rw-r--r--meta-oe/recipes-connectivity/mosh/mosh_1.3.2.bb48
-rw-r--r--meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb50
-rw-r--r--meta-oe/recipes-connectivity/obex/obex-data-server/obex-data-server-0.4.6-build-fixes-1.patch3
-rw-r--r--meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb3
-rw-r--r--meta-oe/recipes-connectivity/obexftp/obexftp/0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch2
-rw-r--r--meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch2
-rw-r--r--meta-oe/recipes-connectivity/obexftp/obexftp/make_fuse_swig_optional.patch2
-rw-r--r--meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch25
-rw-r--r--meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.10.bb34
-rw-r--r--meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.13.bb33
-rw-r--r--meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch26
-rw-r--r--meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.2.0.bb25
-rw-r--r--meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.3.2.bb24
-rw-r--r--meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus_23.09.bb21
-rw-r--r--meta-oe/recipes-connectivity/rabbitmq-c/files/CVE-2023-35789.patch131
-rw-r--r--meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.11.0.bb19
-rw-r--r--meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.13.0.bb21
-rw-r--r--meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch2
-rw-r--r--meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch2
-rw-r--r--meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch104
-rw-r--r--meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb19
-rw-r--r--meta-oe/recipes-connectivity/ser2net/files/ser2net.service13
-rw-r--r--meta-oe/recipes-connectivity/ser2net/ser2net_4.3.8.bb18
-rw-r--r--meta-oe/recipes-connectivity/ser2net/ser2net_4.6.1.bb30
-rw-r--r--meta-oe/recipes-connectivity/smstools3/smstools3/scripts_no_bash.patch2
-rw-r--r--meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath.patch2
-rw-r--r--meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.1.bb2
-rw-r--r--meta-oe/recipes-connectivity/thrift/thrift/0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch4
-rw-r--r--meta-oe/recipes-connectivity/thrift/thrift_0.17.0.bb66
-rw-r--r--meta-oe/recipes-connectivity/thrift/thrift_0.20.0.bb71
-rw-r--r--meta-oe/recipes-connectivity/usbmuxd/usbmuxd_1.1.1.bb22
-rw-r--r--meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb4
-rw-r--r--meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Check-for-limits.h-during-configure.patch2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/0001-build-fix-parallel-make.patch2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/0004-wvcrash-Replace-use-of-basename-API.patch2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/0005-check-for-libexecinfo-during-configure.patch2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/argp.patch2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/gcc-6.patch2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch2
-rw-r--r--meta-oe/recipes-connectivity/zabbix/zabbix_6.2.3.bb78
-rw-r--r--meta-oe/recipes-connectivity/zabbix/zabbix_6.2.7.bb78
-rw-r--r--meta-oe/recipes-connectivity/zeromq/cppzmq_4.10.0.bb20
-rw-r--r--meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb21
-rw-r--r--meta-oe/recipes-connectivity/zeromq/czmq_4.2.1.bb9
-rw-r--r--meta-oe/recipes-connectivity/zeromq/zeromq_4.3.4.bb29
-rw-r--r--meta-oe/recipes-connectivity/zeromq/zeromq_4.3.5.bb28
-rw-r--r--meta-oe/recipes-core/basu/basu_0.2.1.bb21
-rw-r--r--meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.1.0.bb29
-rw-r--r--meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.5.1.bb25
-rw-r--r--meta-oe/recipes-core/dbus-cxx/files/0001-Include-typeinfo-for-typeid.patch29
-rw-r--r--meta-oe/recipes-core/dbus-cxx/files/0001-include-utility-header.patch32
-rw-r--r--meta-oe/recipes-core/dbus-cxx/files/fix_build_musl.patch12
-rw-r--r--meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch2
-rw-r--r--meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb3
-rw-r--r--meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-pipe.c-Use-a-string-instead-of-char.patch2
-rw-r--r--meta-oe/recipes-core/emlog/emlog.inc6
-rw-r--r--meta-oe/recipes-core/emlog/emlog/Drop-use-of-error-h.patch2
-rw-r--r--meta-oe/recipes-core/emlog/emlog_git.bb10
-rw-r--r--meta-oe/recipes-core/glfw/glfw_3.3.8.bb36
-rw-r--r--meta-oe/recipes-core/glfw/glfw_3.3.bb26
-rw-r--r--meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.72.1.bb29
-rw-r--r--meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.78.0.bb32
-rw-r--r--meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch40
-rw-r--r--meta-oe/recipes-core/glib-2.0/glibmm_2.66.2.bb17
-rw-r--r--meta-oe/recipes-core/images/meta-oe-image-all.bb5
-rw-r--r--meta-oe/recipes-core/images/meta-oe-image-base.bb7
-rw-r--r--meta-oe/recipes-core/images/meta-oe-image-ptest-all.bb25
-rw-r--r--meta-oe/recipes-core/images/meta-oe-image-ptest-fast.bb6
-rw-r--r--meta-oe/recipes-core/images/meta-oe-image-ptest.bb41
-rw-r--r--meta-oe/recipes-core/images/meta-oe-image.bb5
-rw-r--r--meta-oe/recipes-core/images/meta-oe-ptest-image.bb5
-rw-r--r--meta-oe/recipes-core/libnfc/libnfc_git.bb2
-rw-r--r--meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.7.bb19
-rw-r--r--meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.12.1.bb19
-rw-r--r--meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.2.0.bb19
-rw-r--r--meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.6.0.bb19
-rw-r--r--meta-oe/recipes-core/libxml/libxml++-5.0_5.0.1.bb13
-rw-r--r--meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch78
-rw-r--r--meta-oe/recipes-core/libxml/libxml++/run-ptest3
-rw-r--r--meta-oe/recipes-core/libxml/libxml++_2.42.1.bb35
-rw-r--r--meta-oe/recipes-core/mdbus2/mdbus2_git.bb4
-rw-r--r--meta-oe/recipes-core/meta/buildtools-imagemagick.bb10
-rw-r--r--meta-oe/recipes-core/meta/distro-feed-configs.bb1
-rw-r--r--meta-oe/recipes-core/mm-common/mm-common/0001-meson.build-do-not-ask-for-python-installation-versi.patch2
-rw-r--r--meta-oe/recipes-core/mm-common/mm-common_1.0.4.bb1
-rw-r--r--meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb2
-rw-r--r--meta-oe/recipes-core/ndctl/ndctl/0001-build-set-HAVE_STATEMENT_EXPR-var.patch60
-rw-r--r--meta-oe/recipes-core/ndctl/ndctl/0001-include-libgen.h-for-basename.patch32
-rw-r--r--meta-oe/recipes-core/ndctl/ndctl/0001-meson-Use-pkg-config-to-detect-iniparser.patch41
-rw-r--r--meta-oe/recipes-core/ndctl/ndctl/0001-util-Correct-path-to-iniparser.h.patch28
-rw-r--r--meta-oe/recipes-core/ndctl/ndctl_v73.bb36
-rw-r--r--meta-oe/recipes-core/ndctl/ndctl_v78.bb34
-rw-r--r--meta-oe/recipes-core/opencl/ocl-icd_2.3.1.bb18
-rw-r--r--meta-oe/recipes-core/opencl/ocl-icd_2.3.2.bb20
-rw-r--r--meta-oe/recipes-core/opencl/opencl-clhpp_git.bb2
-rw-r--r--meta-oe/recipes-core/opencl/opencl-headers_2023.12.14.bb19
-rw-r--r--meta-oe/recipes-core/opencl/opencl-headers_git.bb19
-rw-r--r--meta-oe/recipes-core/opencl/opencl-icd-loader_2023.12.14.bb54
-rw-r--r--meta-oe/recipes-core/opencl/opencl-icd-loader_git.bb53
-rw-r--r--meta-oe/recipes-core/packagegroups/packagegroup-basic.bb1
-rw-r--r--meta-oe/recipes-core/packagegroups/packagegroup-boot.bb1
-rw-r--r--meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb53
-rw-r--r--meta-oe/recipes-core/plymouth/files/0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch34
-rw-r--r--meta-oe/recipes-core/plymouth/files/0001-systemd-switch-to-KillMode-mixed.patch43
-rw-r--r--meta-oe/recipes-core/plymouth/plymouth/0001-Avoid-linking-to-plymouth_logo_file.patch28
-rw-r--r--meta-oe/recipes-core/plymouth/plymouth/0001-Drop-libdl-references.patch70
-rw-r--r--meta-oe/recipes-core/plymouth/plymouth/0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch63
-rw-r--r--meta-oe/recipes-core/plymouth/plymouth/0001-Make-themes-build-optional.patch120
-rw-r--r--meta-oe/recipes-core/plymouth/plymouth/0001-plymouth-Add-the-retain-splash-option.patch (renamed from meta-oe/recipes-core/plymouth/files/0001-plymouth-Add-the-retain-splash-option.patch)2
-rw-r--r--meta-oe/recipes-core/plymouth/plymouth/0001-plymouth-start-service-in-add-related-kernel-paramet.patch (renamed from meta-oe/recipes-core/plymouth/files/0001-plymouth-start-service-in-add-related-kernel-paramet.patch)0
-rw-r--r--meta-oe/recipes-core/plymouth/plymouth_0.9.5.bb73
-rw-r--r--meta-oe/recipes-core/plymouth/plymouth_24.004.60.bb102
-rw-r--r--meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb1
-rwxr-xr-xmeta-oe/recipes-core/sdbus-c++/sdbus-c++-1.2.0/run-ptest15
-rwxr-xr-xmeta-oe/recipes-core/sdbus-c++/sdbus-c++-1.5.0/run-ptest15
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-Adjust-for-musl-headers.patch453
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch74
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-missing_type.h-add-comparison_fn_t.patch61
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-pass-correct-parameters-to-getdents64.patch50
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-Add-sys-stat.h-for-S_IFDIR.patch29
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-add-fallback-parse_printf_format-implementation.patch434
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch79
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-don-t-use-glibc-specific-qsort_r.patch157
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch68
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-src-basic-missing.h-check-for-missing-strndupa.patch699
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-add-fallback-parse_printf_format-implementation.patch419
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch156
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-add-missing-FTW_-macros-for-musl.patch44
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch602
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0006-Use-uintmax_t-for-handling-rlim_t.patch106
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch147
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch99
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch34
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-add-missing-FTW_-macros-for-musl.patch64
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-implment-systemd-sysv-install-for-OE.patch43
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch41
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch43
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-Use-uintmax_t-for-handling-rlim_t.patch98
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch76
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch32
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch37
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-do-not-disable-buffer-in-writing-files.patch562
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch93
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch30
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Handle-__cpu_mask-usage.patch60
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch37
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Handle-missing-gshadow.patch173
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch56
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch49
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch33
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-pass-correct-parameters-to-getdents64.patch37
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-Adjust-for-musl-headers.patch572
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch28
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch30
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch52
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-Handle-missing-LOCK_EX.patch24
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch42
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch36
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch39
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-shared-Do-not-use-malloc_info-on-musl.patch57
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-test-json.c-define-M_PIl.patch29
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-avoid-missing-LOCK_EX-declaration.patch43
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-do-not-disable-buffer-in-writing-files.patch420
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0025-Handle-__cpu_mask-usage.patch58
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0026-Handle-missing-gshadow.patch165
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch32
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/static-libsystemd-pkgconfig.patch2
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.3.bb80
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_255.4.bb77
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.2.0.bb16
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.5.0.bb16
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.2.0.bb44
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.5.0.bb51
-rw-r--r--meta-oe/recipes-core/toybox/toybox-inittab_0.8.2.bb2
-rw-r--r--meta-oe/recipes-core/toybox/toybox/0001-portability-Fix-timer_settime_wrap-for-32bit-systems.patch37
-rw-r--r--meta-oe/recipes-core/toybox/toybox_0.8.10.bb113
-rw-r--r--meta-oe/recipes-core/toybox/toybox_0.8.8.bb115
-rw-r--r--meta-oe/recipes-core/usleep/usleep_1.2.bb (renamed from meta-oe/recipes-core/usleep/usleep_1.0.bb)0
-rw-r--r--meta-oe/recipes-core/uutils-coreutils/README.txt19
-rw-r--r--meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc562
-rw-r--r--meta-oe/recipes-core/uutils-coreutils/uutils-coreutils.inc57
-rw-r--r--meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.15.bb282
-rw-r--r--meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.25.bb73
-rw-r--r--meta-oe/recipes-crypto/botan/botan_2.19.2.bb52
-rw-r--r--meta-oe/recipes-crypto/botan/botan_3.2.0.bb52
-rw-r--r--meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.4.3.bb116
-rw-r--r--meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.7.1.bb117
-rw-r--r--meta-oe/recipes-crypto/fsverity-utils/fsverity-utils_1.5.bb2
-rw-r--r--meta-oe/recipes-crypto/libkcapi/libkcapi_1.4.0.bb32
-rw-r--r--meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb32
-rw-r--r--meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb4
-rw-r--r--meta-oe/recipes-crypto/libsodium/libsodium/0001-fix-aarch64-Move-target-pragma-after-arm_neon.h-incl.patch49
-rw-r--r--meta-oe/recipes-crypto/libsodium/libsodium_1.0.18.bb13
-rw-r--r--meta-oe/recipes-crypto/libsodium/libsodium_1.0.19.bb14
-rw-r--r--meta-oe/recipes-crypto/libtomcrypt/libtomcrypt/CVE-2019-17362.patch25
-rw-r--r--meta-oe/recipes-crypto/libtomcrypt/libtomcrypt_1.18.2.bb26
-rw-r--r--meta-oe/recipes-crypto/monocypher/monocypher_4.0.2.bb28
-rw-r--r--meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.29.0.bb30
-rw-r--r--meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.30.0.bb31
-rw-r--r--meta-oe/recipes-dbs/influxdb/influxdb/0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch2
-rw-r--r--meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb8
-rw-r--r--meta-oe/recipes-dbs/leveldb/leveldb/0001-CMakeLists.txt-fix-googletest-related-options.patch55
-rw-r--r--meta-oe/recipes-dbs/leveldb/leveldb/0001-Fix-printing-64-bit-integer-types.patch43
-rw-r--r--meta-oe/recipes-dbs/leveldb/leveldb_1.22.bb33
-rw-r--r--meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb35
-rw-r--r--meta-oe/recipes-dbs/libdbi/libdbi_0.9.0.bb1
-rw-r--r--meta-oe/recipes-dbs/lmdb/files/0001-Makefile-use-libprefix-instead-of-libdir.patch2
-rw-r--r--meta-oe/recipes-dbs/lmdb/files/0001-make-set-soname-on-liblmdb.patch2
-rw-r--r--meta-oe/recipes-dbs/lmdb/lmdb_0.9.29.bb39
-rw-r--r--meta-oe/recipes-dbs/lmdb/lmdb_0.9.31.bb39
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb-native_10.11.7.bb23
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb-native_10.8.3.bb20
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb.inc42
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch84
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch2
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-33439-Fix-build-with-libxml2-2.12.patch170
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-Remove-the-compile_time_assert-lines.patch43
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-aio_linux-Check-if-syscall-exists-before-using-it.patch2
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch69
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch34
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/lfs64.patch21
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/mm_malloc.patch2
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/ppc-remove-glibc-dep.patch2
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/run-ptest20
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch2
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb_10.11.7.bb63
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb_10.8.3.bb28
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch26
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch41
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/0001-config_info.c-not-expose-build-info.patch119
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/0001-configure.ac-bypass-autoconf-2.69-version-check.patch30
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/0002-Improve-reproducibility.patch41
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/0003-configure.ac-bypass-autoconf-2.69-version-check.patch32
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/0004-config_info.c-not-expose-build-info.patch119
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/0005-postgresql-fix-ptest-failure-of-sysviews.patch49
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/remove_duplicate.patch38
-rw-r--r--meta-oe/recipes-dbs/postgresql/postgresql.inc17
-rw-r--r--meta-oe/recipes-dbs/postgresql/postgresql_14.5.bb18
-rw-r--r--meta-oe/recipes-dbs/postgresql/postgresql_16.2.bb16
-rw-r--r--meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch2
-rw-r--r--meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch19
-rw-r--r--meta-oe/recipes-dbs/psqlodbc/psqlodbc_13.02.0000.bb62
-rw-r--r--meta-oe/recipes-dbs/psqlodbc/psqlodbc_16.00.0000.bb62
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch13
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Use-exported-target-for-bz2.patch29
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch9
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0002-cmake-Use-exported-target-for-bz2.patch34
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0003-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch33
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0004-Implement-support-for-musl-ppc64.patch42
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0005-Implement-timer-implementation-for-mips-platform.patch32
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0006-Implement-timer-for-arm-v6.patch40
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0007-Fix-declaration-scope-of-LE_LOAD32-in-crc32c.patch39
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/arm.patch26
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/mips.patch18
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/ppc64.patch28
-rw-r--r--meta-oe/recipes-dbs/rocksdb/rocksdb_7.5.3.bb55
-rw-r--r--meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb57
-rw-r--r--meta-oe/recipes-dbs/soci/soci/soci_libdir.patch28
-rw-r--r--meta-oe/recipes-dbs/soci/soci_4.0.3.bb4
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Remove-maes-option-from-cross-compilation.patch2
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Remove-neon-option-from-cross-compilation.patch2
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/abseil-ppc-fixes.patch10
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240116.1.bb53
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb34
-rw-r--r--meta-oe/recipes-devtools/aer-inject/aer-inject/0001-include-libgen.h-for-basename.patch32
-rw-r--r--meta-oe/recipes-devtools/aer-inject/aer-inject_1.0.bb30
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-start4
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch2
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch2
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch2
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch29
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch2
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch2
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch2
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0014-add-u3-ss-descriptor-support-for-adb.patch2
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0015-libsparse-Split-off-most-of-sparse_file_read_normal-.patch2
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/adb_libssl_11.diff4
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch2
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb2
-rw-r--r--meta-oe/recipes-devtools/apitrace/apitrace_11.1.bb2
-rw-r--r--meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13-native_2.13.bb2
-rw-r--r--meta-oe/recipes-devtools/boost-url/boost-url_git.bb20
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-Do-not-add-stack-pointer-to-clobber-list.patch61
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-Fixed-missing-include-for-std-find_if.patch31
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch15
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch2
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-exception_handler.cc-Match-the-types-for-SIGSTKSZ.patch34
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch2
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch22
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch12
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch13
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch10
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch16
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch2
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad_2023.06.01.bb127
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad_git.bb131
-rw-r--r--meta-oe/recipes-devtools/capnproto/capnproto_0.10.2.bb29
-rw-r--r--meta-oe/recipes-devtools/capnproto/capnproto_1.0.2.bb28
-rw-r--r--meta-oe/recipes-devtools/cgdb/cgdb/0001-cgdb-Do-not-search-for-cgdb.txt-in-build-dir.patch34
-rw-r--r--meta-oe/recipes-devtools/cgdb/cgdb_0.8.0.bb3
-rw-r--r--meta-oe/recipes-devtools/cjson/cjson/run-ptest8
-rw-r--r--meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb21
-rw-r--r--meta-oe/recipes-devtools/cjson/cjson_1.7.17.bb40
-rw-r--r--meta-oe/recipes-devtools/cloc/cloc_1.94.bb20
-rw-r--r--meta-oe/recipes-devtools/cloc/cloc_1.98.bb19
-rw-r--r--meta-oe/recipes-devtools/concurrencykit/concurrencykit/0001-build-Use-ilp32d-abi-on-riscv32-and-lp64d-on-rv64.patch32
-rw-r--r--meta-oe/recipes-devtools/concurrencykit/concurrencykit/0001-configure-Fix-compoiler-detection-logic-for-cross-co.patch84
-rw-r--r--meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch62
-rw-r--r--meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb12
-rw-r--r--meta-oe/recipes-devtools/cpuid/cpuid_20211129.bb23
-rw-r--r--meta-oe/recipes-devtools/cpuid/cpuid_20230614.bb25
-rw-r--r--meta-oe/recipes-devtools/cpuid/files/0001-Makefile-update-the-hardcode-path-to-bindir-mandir.patch36
-rw-r--r--meta-oe/recipes-devtools/ctags/ctags_5.9.20220925.0.bb34
-rw-r--r--meta-oe/recipes-devtools/ctags/ctags_6.1.20240310.0.bb36
-rw-r--r--meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.127.bb27
-rw-r--r--meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.132.bb27
-rw-r--r--meta-oe/recipes-devtools/dmalloc/dmalloc/0001-undefined-strdup-macro.patch2
-rw-r--r--meta-oe/recipes-devtools/dmalloc/dmalloc/02-Makefile.in.patch2
-rw-r--r--meta-oe/recipes-devtools/dmalloc/dmalloc/03-threads.patch2
-rw-r--r--meta-oe/recipes-devtools/dmalloc/dmalloc/100-use-xtools.patch2
-rw-r--r--meta-oe/recipes-devtools/dmalloc/dmalloc/13-fix-ldflags-in-makefile.patch2
-rw-r--r--meta-oe/recipes-devtools/dmalloc/dmalloc/130-mips.patch2
-rw-r--r--meta-oe/recipes-devtools/dmalloc/dmalloc/150-use_DESTDIR.patch2
-rw-r--r--meta-oe/recipes-devtools/dmalloc/dmalloc/configure-pagesize-HACK.patch2
-rw-r--r--meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_1.4.bb46
-rw-r--r--meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb47
-rw-r--r--meta-oe/recipes-devtools/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch2
-rw-r--r--meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch2
-rw-r--r--meta-oe/recipes-devtools/doxygen/doxygen_1.9.3.bb4
-rw-r--r--meta-oe/recipes-devtools/editorconfig/editorconfig-core-c_0.12.6.bb18
-rw-r--r--meta-oe/recipes-devtools/exprtk/exprtk_git.bb4
-rw-r--r--meta-oe/recipes-devtools/extract-cert/extract-cert_0.3.bb14
-rw-r--r--meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb4
-rw-r--r--meta-oe/recipes-devtools/flatbuffers/flatbuffers.inc4
-rw-r--r--meta-oe/recipes-devtools/flatbuffers/python3-flatbuffers.bb2
-rw-r--r--meta-oe/recipes-devtools/flatcc/flatcc/0001-Check-for-C-standard-version-23-for-__fallthrough__.patch31
-rw-r--r--meta-oe/recipes-devtools/flatcc/flatcc_git.bb30
-rw-r--r--meta-oe/recipes-devtools/glade/glade_3.22.2.bb10
-rw-r--r--meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch60
-rw-r--r--meta-oe/recipes-devtools/grpc/grpc/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch16
-rw-r--r--meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch93
-rw-r--r--meta-oe/recipes-devtools/grpc/grpc_1.45.2.bb68
-rw-r--r--meta-oe/recipes-devtools/grpc/grpc_1.60.1.bb67
-rw-r--r--meta-oe/recipes-devtools/gst-editing-services/gst-editing-services_1.20.3.bb26
-rw-r--r--meta-oe/recipes-devtools/gst-editing-services/gst-editing-services_1.22.7.bb28
-rw-r--r--meta-oe/recipes-devtools/guider/guider_3.9.8.bb3
-rw-r--r--meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb2
-rw-r--r--meta-oe/recipes-devtools/jemalloc/files/0001-test-Disable-optimization-with-clang-for-aligned_all.patch33
-rw-r--r--meta-oe/recipes-devtools/jemalloc/files/run-ptest29
-rw-r--r--meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb18
-rw-r--r--meta-oe/recipes-devtools/jq/jq/0001-configure-Pass-_XOPEN_SOURCE-when-checking-for-strpt.patch40
-rw-r--r--meta-oe/recipes-devtools/jq/jq/0002-builtin-Replace-_BSD_SOURCE-with-_DEFAULT_SOURCE.patch30
-rwxr-xr-x[-rw-r--r--]meta-oe/recipes-devtools/jq/jq/run-ptest28
-rw-r--r--meta-oe/recipes-devtools/jq/jq_1.7.1.bb46
-rw-r--r--meta-oe/recipes-devtools/jq/jq_git.bb40
-rw-r--r--meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0001-Set-Json_validator-Install-off-if-it-finds-it-via-li.patch29
-rw-r--r--meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0001-cmake-Use-GNUInstallDirs.patch46
-rw-r--r--meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0002-Fix-assumed-signed-char.patch71
-rw-r--r--meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0003-For-root-value-use-empty-pointer.patch41
-rw-r--r--meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0004-cmake-Use-GNUInstallDirs.patch43
-rw-r--r--meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.1.0.bb16
-rw-r--r--meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.2.0.bb19
-rw-r--r--meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-Fix-build-with-libmicrohttpd.patch52
-rw-r--r--meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.3.0.bb30
-rw-r--r--meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.4.1.bb28
-rw-r--r--meta-oe/recipes-devtools/jwt-cpp/jwt-cpp_0.7.0.bb20
-rw-r--r--meta-oe/recipes-devtools/kconfig-frontends/files/0001-Avoid-using-hard-coded-usr-include-paths.patch33
-rw-r--r--meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb3
-rwxr-xr-xmeta-oe/recipes-devtools/lapack/lapack/run-ptest3
-rw-r--r--meta-oe/recipes-devtools/lapack/lapack_3.10.1.bb27
-rw-r--r--meta-oe/recipes-devtools/lapack/lapack_3.12.0.bb59
-rw-r--r--meta-oe/recipes-devtools/lemon/files/lemon.163
-rw-r--r--meta-oe/recipes-devtools/lemon/lemon.inc25
-rw-r--r--meta-oe/recipes-devtools/lemon/lemon_3.44.2.bb24
-rw-r--r--meta-oe/recipes-devtools/lemon/lemon_3.7.3.bb7
-rw-r--r--meta-oe/recipes-devtools/libgee/libgee_0.20.6.bb2
-rw-r--r--meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb3
-rw-r--r--meta-oe/recipes-devtools/libubox/libubox/0001-version-libraries.patch2
-rw-r--r--meta-oe/recipes-devtools/libubox/libubox_git.bb2
-rw-r--r--meta-oe/recipes-devtools/lshw/files/0001-Fix-musl-build.patch125
-rw-r--r--meta-oe/recipes-devtools/lshw/files/0001-disable-docbook2man.patch30
-rw-r--r--meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb32
-rw-r--r--meta-oe/recipes-devtools/lshw/lshw_02.20.bb43
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-ARM-code-has-unreachable-code-after-switch-statement.patch2
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch86
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-Use-correct-enum-type.patch2
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-configure-Recognise-linux-musl-as-a-host-OS.patch2
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-plt.c-Delete-include-error.h.patch2
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-ppc-Remove-unused-host_powerpc64-function.patch2
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0002-Fix-const-qualifier-error.patch2
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/add_ppc64le.patch2
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace_git.bb5
-rw-r--r--meta-oe/recipes-devtools/luajit/luajit_git.bb13
-rw-r--r--meta-oe/recipes-devtools/luaposix/luaposix_35.1.bb27
-rw-r--r--meta-oe/recipes-devtools/luaposix/luaposix_36.2.1.bb27
-rw-r--r--meta-oe/recipes-devtools/makeself/makeself_2.4.5.bb28
-rw-r--r--meta-oe/recipes-devtools/makeself/makeself_2.5.0.bb28
-rw-r--r--meta-oe/recipes-devtools/mbpoll/mbpoll_1.5.2.bb16
-rw-r--r--meta-oe/recipes-devtools/mcpp/files/CVE-2019-14274.patch2
-rw-r--r--meta-oe/recipes-devtools/mcpp/files/ice-mcpp.patch2
-rw-r--r--meta-oe/recipes-devtools/memstat/memstat/0001-Include-limits.h-for-PATH_MAX-definition.patch2
-rw-r--r--meta-oe/recipes-devtools/mercurial/mercurial_6.1.bb37
-rw-r--r--meta-oe/recipes-devtools/mercurial/mercurial_6.5.bb36
-rw-r--r--meta-oe/recipes-devtools/microcom/microcom_2023.09.0.bb20
-rw-r--r--meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0001-Fix-initialization-in-test-1140.patch113
-rw-r--r--meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0002-Fix-gcc-build-problem.patch82
-rw-r--r--meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0003-Adapt-check_cxx_compiler_flag-to-cmake-3.0.2.patch53
-rw-r--r--meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/run-ptest4
-rw-r--r--meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl_4.0.0.bb45
-rw-r--r--meta-oe/recipes-devtools/mpich/mpich_4.0.2.bb58
-rw-r--r--meta-oe/recipes-devtools/mpich/mpich_4.2.0.bb67
-rw-r--r--meta-oe/recipes-devtools/msgpack/msgpack-c_4.0.0.bb20
-rw-r--r--meta-oe/recipes-devtools/msgpack/msgpack-c_6.0.0.bb20
-rw-r--r--meta-oe/recipes-devtools/msgpack/msgpack-cpp_4.1.1.bb21
-rw-r--r--meta-oe/recipes-devtools/msgpack/msgpack-cpp_6.1.0.bb21
-rw-r--r--meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb2
-rwxr-xr-xmeta-oe/recipes-devtools/nlohmann-json/files/run-ptest12
-rw-r--r--meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.2.bb30
-rw-r--r--meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.3.bb45
-rwxr-xr-xmeta-oe/recipes-devtools/nodejs/nodejs-oe-cache-20.11/oe-npm-cache (renamed from meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-16.14/oe-npm-cache)0
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_20.11.bb (renamed from meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_16.14.bb)0
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch32
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch94
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch55
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch63
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch42
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch34
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch2
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0002-Install-both-binaries-and-use-libdir.patch96
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch70
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0005-add-openssl-legacy-provider-option.patch151
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch18
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch32
-rwxr-xr-xmeta-oe/recipes-devtools/nodejs/nodejs/run-ptest8
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs_16.14.2.bb186
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs_20.11.1.bb182
-rw-r--r--meta-oe/recipes-devtools/octave/files/fix-blas-library-integer-size.patch2
-rw-r--r--meta-oe/recipes-devtools/openocd/openocd_git.bb12
-rw-r--r--meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb1
-rw-r--r--meta-oe/recipes-devtools/pahole/files/0001-CMakeList.txt-make-python-optional.patch44
-rw-r--r--meta-oe/recipes-devtools/pahole/files/0002-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch2
-rw-r--r--meta-oe/recipes-devtools/pahole/files/0003-CMakeList.txt-don-t-download-libbpf-source-when-syst.patch34
-rw-r--r--meta-oe/recipes-devtools/pahole/pahole_1.22.bb34
-rw-r--r--meta-oe/recipes-devtools/pahole/pahole_1.25.bb32
-rw-r--r--meta-oe/recipes-devtools/perfetto/files/0001-Add-missing-header-cstdint-for-uintXX_t-types.patch58
-rw-r--r--meta-oe/recipes-devtools/perfetto/files/0001-Remove-check_build_deps-build-steps.patch73
-rw-r--r--meta-oe/recipes-devtools/perfetto/files/0001-meson-add-pc-file-for-lib_perfetto.patch49
-rw-r--r--meta-oe/recipes-devtools/perfetto/libperfetto.bb14
-rw-r--r--meta-oe/recipes-devtools/perfetto/perfetto.bb156
-rw-r--r--meta-oe/recipes-devtools/perfetto/perfetto.inc10
-rw-r--r--meta-oe/recipes-devtools/perl/exiftool_12.72.bb22
-rw-r--r--meta-oe/recipes-devtools/perl/ipc-run_20220807.0.bb24
-rw-r--r--meta-oe/recipes-devtools/perl/ipc-run_20231003.0.bb24
-rw-r--r--meta-oe/recipes-devtools/perl/libconfig-general-perl_2.65.bb2
-rw-r--r--meta-oe/recipes-devtools/perl/libdev-checklib-perl/0001-CheckLib.pm-don-t-execute-the-binary.patch2
-rw-r--r--meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch45
-rw-r--r--meta-oe/recipes-devtools/perl/libio-pty-perl_1.16.bb18
-rw-r--r--meta-oe/recipes-devtools/perl/libio-pty-perl_1.20.bb26
-rw-r--r--meta-oe/recipes-devtools/perl/libpcsc-perl_1.4.14.bb22
-rw-r--r--meta-oe/recipes-devtools/php/php/0001-Change-whether-to-inline-XXH3_hashLong_withSecret-to.patch93
-rw-r--r--meta-oe/recipes-devtools/php/php/0005-pear-fix-Makefile.frag-for-Yocto.patch2
-rw-r--r--meta-oe/recipes-devtools/php/php/0009-php-don-t-use-broken-wrapper-for-mkdir.patch2
-rw-r--r--meta-oe/recipes-devtools/php/php/php-fpm.service57
-rw-r--r--meta-oe/recipes-devtools/php/php_8.1.10.bb286
-rw-r--r--meta-oe/recipes-devtools/php/php_8.2.16.bb299
-rw-r--r--meta-oe/recipes-devtools/ply/ply_git.bb6
-rw-r--r--meta-oe/recipes-devtools/pmtools/pmtools_git.bb2
-rw-r--r--meta-oe/recipes-devtools/poke/poke/0001-build-do-not-check-for-Tcl-Tk-if-disable-gui-is-spec.patch2
-rw-r--r--meta-oe/recipes-devtools/poke/poke/0002-jitter-jitter-config.in-avoit-host-poisoning-while-c.patch2
-rw-r--r--meta-oe/recipes-devtools/poke/poke/0003-configure.ac-HELP2MAN-replace-by-true-when-cross-com.patch2
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf-c/0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch106
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb36
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.0.bb38
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-linking-error-with-ld-gold.patch67
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch15
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf_3.21.5.bb105
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf_4.25.3.bb118
-rw-r--r--meta-oe/recipes-devtools/pugixml/pugixml_1.12.bb24
-rw-r--r--meta-oe/recipes-devtools/pugixml/pugixml_1.14.bb24
-rw-r--r--meta-oe/recipes-devtools/python/python3-apscheduler_3.10.4.bb13
-rw-r--r--meta-oe/recipes-devtools/python/python3-apt_2.3.0.bb17
-rw-r--r--meta-oe/recipes-devtools/python/python3-apt_2.5.3.bb17
-rw-r--r--meta-oe/recipes-devtools/python/python3-distutils-extra_2.39.bb2
-rw-r--r--meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb4
-rw-r--r--meta-oe/recipes-devtools/sip/sip3_4.19.23.bb40
-rw-r--r--meta-oe/recipes-devtools/sip/sip_6.8.3.bb24
-rw-r--r--meta-oe/recipes-devtools/smemstat/smemstat_0.02.13.bb22
-rw-r--r--meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.1.4.bb33
-rw-r--r--meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.2.0.bb32
-rw-r--r--meta-oe/recipes-devtools/ssd1306/ssd1306_git.bb24
-rw-r--r--meta-oe/recipes-devtools/suitesparse/suitesparse/0001-Preserve-CXXFLAGS-from-environment-in-Mongoose.patch2
-rw-r--r--meta-oe/recipes-devtools/suitesparse/suitesparse/0002-Preserve-links-when-installing-libmetis.patch2
-rw-r--r--meta-oe/recipes-devtools/suitesparse/suitesparse/0003-Add-version-information-to-libmetis.patch2
-rw-r--r--meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb14
-rw-r--r--meta-oe/recipes-devtools/systemd/nativesdk-systemd-systemctl.bb15
-rwxr-xr-xmeta-oe/recipes-devtools/systemd/systemd-systemctl/systemctl340
-rw-r--r--meta-oe/recipes-devtools/tcltk/tk/confsearch.diff2
-rw-r--r--meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff2
-rw-r--r--meta-oe/recipes-devtools/tcltk/tk/tkprivate.diff2
-rw-r--r--meta-oe/recipes-devtools/tcltk/tk_8.6.10.bb4
-rw-r--r--meta-oe/recipes-devtools/uftrace/uftrace/0001-include-libgen.h-for-basename.patch34
-rw-r--r--meta-oe/recipes-devtools/uftrace/uftrace_0.12.bb44
-rw-r--r--meta-oe/recipes-devtools/uftrace/uftrace_0.15.2.bb44
-rw-r--r--meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Fix-Wincompatible-function-pointer-types.patch178
-rw-r--r--meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Support-OpenSSL-1.1.patch2
-rw-r--r--meta-oe/recipes-devtools/uw-imap/uw-imap/quote_cctype.patch2
-rw-r--r--meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb9
-rw-r--r--meta-oe/recipes-devtools/valijson/valijson_0.7.bb38
-rw-r--r--meta-oe/recipes-devtools/valijson/valijson_1.0.2.bb22
-rw-r--r--meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.4.bb44
-rw-r--r--meta-oe/recipes-devtools/xerces-c/xerces-c_3.2.5.bb43
-rw-r--r--meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0003-src-Makefile-Fix-Makefile-macro-error.patch29
-rw-r--r--meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb47
-rw-r--r--meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.59.01.bb49
-rw-r--r--meta-oe/recipes-devtools/yajl/yajl/CVE-2017-16516.patch37
-rw-r--r--meta-oe/recipes-devtools/yajl/yajl/CVE-2022-24795.patch59
-rw-r--r--meta-oe/recipes-devtools/yajl/yajl/CVE-2023-33460.patch35
-rw-r--r--meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb6
-rw-r--r--meta-oe/recipes-devtools/yasm/yasm/0001-yasm-Set-build-date-to-SOURCE_DATE_EPOCH.patch37
-rw-r--r--meta-oe/recipes-devtools/yasm/yasm/0002-yasm-Use-BUILD_DATE-for-reproducibility.patch42
-rw-r--r--meta-oe/recipes-devtools/yasm/yasm/CVE-2023-31975.patch29
-rw-r--r--meta-oe/recipes-devtools/yasm/yasm/CVE-2023-37732.patch41
-rw-r--r--meta-oe/recipes-devtools/yasm/yasm_git.bb7
-rw-r--r--meta-oe/recipes-extended/beep/beep_1.4.12.bb19
-rw-r--r--meta-oe/recipes-extended/beep/beep_1.4.9.bb32
-rw-r--r--meta-oe/recipes-extended/beep/files/0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch63
-rw-r--r--meta-oe/recipes-extended/beep/files/0001-beep-library-Make-it-compatible-with-c99.patch78
-rw-r--r--meta-oe/recipes-extended/beep/files/linux-input.patch155
-rw-r--r--meta-oe/recipes-extended/bitwise/bitwise_0.43.bb24
-rw-r--r--meta-oe/recipes-extended/bitwise/bitwise_0.50.bb32
-rw-r--r--meta-oe/recipes-extended/bitwise/files/0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch2
-rw-r--r--meta-oe/recipes-extended/bitwise/files/ptest.out.expected13
-rwxr-xr-xmeta-oe/recipes-extended/bitwise/files/run-ptest11
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client/0001-Do-not-undefine-_FILE_OFFSET_BITS.patch59
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client/4563.patch36
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client/gtk-configure.patch28
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client_7.18.1.bb91
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client_7.20.5.bb82
-rw-r--r--meta-oe/recipes-extended/brotli/brotli/838.patch48
-rw-r--r--meta-oe/recipes-extended/brotli/brotli_1.0.9.bb23
-rw-r--r--meta-oe/recipes-extended/brotli/brotli_1.1.0.bb23
-rw-r--r--meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch37
-rw-r--r--meta-oe/recipes-extended/byacc/byacc_20220128.bb10
-rw-r--r--meta-oe/recipes-extended/byacc/byacc_20230219.bb10
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch16
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb41
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.21.0.bb40
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine/0001-Fixed-with-libxml2-no-case-in-configure.ac.patch89
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine_3.15.0.bb74
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine_3.21.0.bb76
-rw-r--r--meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb1
-rw-r--r--meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Add-PYTHON_ABI-suffix-to-the-python-library-name.patch22
-rw-r--r--meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Fix-error.patch10
-rw-r--r--meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Modify-cmakelist.patch41
-rw-r--r--meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-fix-the-build-error-when-python-3.0.patch31
-rw-r--r--meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-no-ruby-perl.patch14
-rw-r--r--meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-sblim-sigsegv.patch18
-rw-r--r--meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.9.5-python-lib-dir.patch17
-rw-r--r--meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb42
-rw-r--r--meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.4.bb34
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch2
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch2
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch2
-rw-r--r--meta-oe/recipes-extended/collectd/collectd_5.12.0.bb7
-rw-r--r--meta-oe/recipes-extended/ddrescue/ddrescue_1.26.bb44
-rw-r--r--meta-oe/recipes-extended/ddrescue/ddrescue_1.28.bb44
-rw-r--r--meta-oe/recipes-extended/dialog/dialog_1.3-20210509.bb31
-rw-r--r--meta-oe/recipes-extended/dialog/dialog_1.3-20240307.bb31
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch45
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-dlt-system-Fix-buffer-overflow-detection-on-32bit-ta.patch40
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch10
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/544.patch80
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/567.patch36
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.10.bb73
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.8.bb73
-rw-r--r--meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb8
-rw-r--r--meta-oe/recipes-extended/etcd/etcd-cpp-apiv3/0001-cmake-fix-when-cross-compiling.patch68
-rw-r--r--meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.15.3.bb23
-rw-r--r--meta-oe/recipes-extended/etcd/etcd/0001-test_lib.sh-remove-gobin-requirement-during-build.patch51
-rw-r--r--meta-oe/recipes-extended/etcd/etcd/0001-xxhash-bump-to-v2.1.2.patch205
-rw-r--r--meta-oe/recipes-extended/etcd/etcd/etcd-existing.conf37
-rw-r--r--meta-oe/recipes-extended/etcd/etcd/etcd-new.path9
-rw-r--r--meta-oe/recipes-extended/etcd/etcd/etcd-new.service15
-rw-r--r--meta-oe/recipes-extended/etcd/etcd/etcd.service15
-rw-r--r--meta-oe/recipes-extended/etcd/etcd_3.5.7.bb73
-rw-r--r--meta-oe/recipes-extended/figlet/figlet_git.bb2
-rw-r--r--meta-oe/recipes-extended/flatpak/flatpak-xdg-utils_1.0.5.bb14
-rw-r--r--meta-oe/recipes-extended/flatpak/flatpak/0001-flatpak-pc-add-pc_sysrootdir.patch28
-rw-r--r--meta-oe/recipes-extended/flatpak/flatpak/0001-meson.build-require-for-native-wayland-scanner.patch28
-rw-r--r--meta-oe/recipes-extended/flatpak/flatpak/0001-meson.build-require-native-gtkdoc.patch33
-rw-r--r--meta-oe/recipes-extended/flatpak/flatpak_1.15.6.bb78
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0001-CMakeLists.txt-Do-not-use-private-makefile-target.patch3
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0002-chunkio-Link-with-fts-library-with-musl.patch2
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch2
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0002-mbedtls-Remove-unused-variable.patch2
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Disable-documentation-warning-as-error-with-.patch2
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Do-not-overwrite-CFLAGS.patch3
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch2
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0004-build-Make-systemd-init-systemd-detection-contingent.patch3
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0005-stackdriver-Fix-return-type-mismatch.patch2
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0006-monkey-Fix-TLS-detection-testcase.patch2
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0007-cmake-Do-not-check-for-upstart-on-build-host.patch46
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit_1.9.7.bb8
-rw-r--r--meta-oe/recipes-extended/gnuplot/gnuplot/0003-Use-native-tools-to-build-docs.patch2
-rw-r--r--meta-oe/recipes-extended/haveged/haveged_1.9.18.bb1
-rw-r--r--meta-oe/recipes-extended/highway/highway_1.1.0.bb17
-rw-r--r--meta-oe/recipes-extended/hiredis/hiredis/run-ptest3
-rw-r--r--meta-oe/recipes-extended/hiredis/hiredis_1.0.2.bb13
-rw-r--r--meta-oe/recipes-extended/hiredis/hiredis_1.2.0.bb39
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0001-Drop-using-register-storage-classifier.patch309
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0001-Fix-installing-ipp-usb-quirk.patch40
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch20
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0003-pserror.c-Define-column-to-be-int-explcitly.patch2
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0004-Define-missing-prototype-for-functions.patch2
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0005-hp_ipp.c-Add-printf-format-to-snprintf-calls.patch2
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0006-Workaround-patch-for-missing-Python3-transition-of-t.patch2
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch2
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch2
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/600-fix.patch2
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/configure.patch4
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch76
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch2
-rw-r--r--meta-oe/recipes-extended/hplip/hplip_3.22.10.bb89
-rw-r--r--meta-oe/recipes-extended/hplip/hplip_3.22.6.bb94
-rw-r--r--meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb31
-rw-r--r--meta-oe/recipes-extended/hwloc/hwloc_2.9.3.bb28
-rw-r--r--meta-oe/recipes-extended/icewm/icewm_2.9.9.bb46
-rw-r--r--meta-oe/recipes-extended/icewm/icewm_3.4.5.bb46
-rw-r--r--meta-oe/recipes-extended/iotop/iotop_1.21.bb24
-rw-r--r--meta-oe/recipes-extended/iotop/iotop_1.26.bb25
-rw-r--r--meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb36
-rw-r--r--meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.4.bb36
-rw-r--r--meta-oe/recipes-extended/jansson/jansson/0001-Fix-overwriting-linker-flags.patch29
-rw-r--r--meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch63
-rw-r--r--meta-oe/recipes-extended/jansson/jansson_2.14.bb7
-rw-r--r--meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb4
-rw-r--r--meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch2
-rw-r--r--meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch2
-rw-r--r--meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb4
-rw-r--r--meta-oe/recipes-extended/lastlog2/files/0001-remove-lto-to-fix-link-error-of-clang.patch31
-rw-r--r--meta-oe/recipes-extended/lastlog2/lastlog2_1.2.0.bb36
-rw-r--r--meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb13
-rw-r--r--meta-oe/recipes-extended/libblockdev/files/0001-fix-pythondir-for-multilib-when-cross-compiling.patch32
-rw-r--r--meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb40
-rw-r--r--meta-oe/recipes-extended/libblockdev/libblockdev_3.1.1.bb39
-rwxr-xr-xmeta-oe/recipes-extended/libcbor/libcbor_0.11.0.bb14
-rw-r--r--meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch2
-rw-r--r--meta-oe/recipes-extended/libdeflate/libdeflate_1.20.bb15
-rw-r--r--meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb4
-rw-r--r--meta-oe/recipes-extended/libexecinfo/libexecinfo/0001-makefile-Fix-build-on-linux.patch2
-rw-r--r--meta-oe/recipes-extended/libexecinfo/libexecinfo/0002-execinfo-Fix-compiler-errors-found-with-newer-gcc-cl.patch2
-rw-r--r--meta-oe/recipes-extended/libgxim/libgxim/0001-Use-AM_CPPFLAGS-instead-of-INCLUDES.patch2
-rw-r--r--meta-oe/recipes-extended/libgxim/libgxim/0002-Update-autotools-macro.patch2
-rw-r--r--meta-oe/recipes-extended/libgxim/libgxim/0003-Add-format-string-qualifier-to-fix-potential-securit.patch2
-rw-r--r--meta-oe/recipes-extended/libgxim/libgxim/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch2
-rw-r--r--meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb4
-rw-r--r--meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch180
-rw-r--r--meta-oe/recipes-extended/libidn/libidn/0001-largefile.m4-Sync-with-latest-gnulib.patch390
-rw-r--r--meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch24
-rw-r--r--meta-oe/recipes-extended/libidn/libidn_1.36.bb40
-rw-r--r--meta-oe/recipes-extended/libidn/libidn_1.41.bb43
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb35
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb41
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/libplist_git.bb18
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/libusbmuxd_git.bb2
-rw-r--r--meta-oe/recipes-extended/libleak/libleak/0001-respect-environment-variables.patch15
-rw-r--r--meta-oe/recipes-extended/libleak/libleak_0.3.6.bb37
-rw-r--r--meta-oe/recipes-extended/libleak/libleak_git.bb38
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch6
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-fix-install-failure-on-host-without-ldco.patch63
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch10
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-redefine-LOCKPROG.patch34
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/configure.patch24
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch8
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb38
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile_1.17.bb36
-rw-r--r--meta-oe/recipes-extended/liblognorm/liblognorm.inc17
-rw-r--r--meta-oe/recipes-extended/liblognorm/liblognorm/0001-Add-asprintf-to-autoconf-function-check-macro.patch28
-rw-r--r--meta-oe/recipes-extended/liblognorm/liblognorm_1.0.1.bb5
-rw-r--r--meta-oe/recipes-extended/liblognorm/liblognorm_2.0.6.bb27
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus.inc16
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus/Fix-float-endianness-issue-on-big-endian-arch.patch314
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus_3.0.6.bb4
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus_3.1.10.bb17
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus_3.1.7.bb9
-rw-r--r--meta-oe/recipes-extended/libpwquality/files/0001-Use-setuptools-instead-of-distutils.patch78
-rw-r--r--meta-oe/recipes-extended/libpwquality/files/0001-fix-musl-build.patch72
-rw-r--r--meta-oe/recipes-extended/libpwquality/files/0002-Makefile.am-respect-PYTHONSITEDIR.patch26
-rw-r--r--meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch43
-rw-r--r--meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb42
-rw-r--r--meta-oe/recipes-extended/libpwquality/libpwquality_1.4.5.bb41
-rw-r--r--meta-oe/recipes-extended/libqb/libqb_2.0.6.bb26
-rw-r--r--meta-oe/recipes-extended/libqb/libqb_2.0.8.bb26
-rw-r--r--meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch18
-rw-r--r--meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch18
-rw-r--r--meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch16
-rw-r--r--meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch29
-rw-r--r--meta-oe/recipes-extended/libreport/libreport_2.10.0.bb49
-rw-r--r--meta-oe/recipes-extended/libreport/libreport_2.17.15.bb49
-rw-r--r--meta-oe/recipes-extended/libuio/libuio_0.2.1.bb2
-rw-r--r--meta-oe/recipes-extended/libwmf/libwmf/0001-configure-use-pkg-config-for-freetype.patch2
-rw-r--r--meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-intoverflow.patch2
-rw-r--r--meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-useafterfree.patch2
-rw-r--r--meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb1
-rw-r--r--meta-oe/recipes-extended/libx86-1/libx86-1.1/0001-Define-CARD32-as-uint-as-it-is-32-bit.patch42
-rw-r--r--meta-oe/recipes-extended/libx86-1/libx86-1.1/libx86-mmap-offset.patch2
-rw-r--r--meta-oe/recipes-extended/libx86-1/libx86-1_1.1.bb5
-rw-r--r--meta-oe/recipes-extended/libyang/libyang/0001-test_context-skip-test-case-test_searchdirs.patch29
-rw-r--r--meta-oe/recipes-extended/libyang/libyang/libyang-add-stdint-h.patch35
-rw-r--r--meta-oe/recipes-extended/libyang/libyang/run-ptest34
-rw-r--r--meta-oe/recipes-extended/libyang/libyang_2.0.194.bb37
-rw-r--r--meta-oe/recipes-extended/libyang/libyang_2.1.148.bb45
-rw-r--r--meta-oe/recipes-extended/libzip/libzip_1.10.1.bb26
-rw-r--r--meta-oe/recipes-extended/libzip/libzip_1.9.2.bb27
-rw-r--r--meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.19.bb2
-rw-r--r--meta-oe/recipes-extended/logwatch/logwatch_7.10.bb57
-rw-r--r--meta-oe/recipes-extended/logwatch/logwatch_7.7.bb57
-rw-r--r--meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch2
-rw-r--r--meta-oe/recipes-extended/md5deep/md5deep_git.bb3
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0001-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch39
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0001-CMakeLists.txt-use-curl-local-source-tarball.patch34
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0001-Do-not-use-bundled-packages.patch108
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-build-with-libc.patch36
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0001-civetweb-CMakeLists.txt-do-not-search-gcc-ar-and-gcc.patch34
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0001-civetweb-Disable-lto.patch33
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0001-cxxopts-Add-limits-header.patch34
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0002-Fix-osspuuid-build.patch78
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0002-cmake-LibreSSL.cmake-use-libressl-local-source-tarba.patch32
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0003-Fix-libsodium-build.patch39
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0003-cmake-BundledOSSPUUID.cmake-use-ossp-uuid-local-sour.patch34
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0004-Fix-spdlog-build.patch44
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0005-Pass-noline-flag-to-flex.patch31
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0006-OsUtils.h-add-missing-header-cstdint-for-int64_t.patch36
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0007-CMakeLists.txt-do-not-use-ccache.patch38
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/0008-libsodium-aarch64_crypto.patch38
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch34
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch43
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch60
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch36
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-cross-compile.patch37
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-musl-compile.patch25
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-rocksdb-cross-compile.patch12
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/minifi.service13
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/remove_const_due_to_std_lock_guard.patch38
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb201
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb153
-rw-r--r--meta-oe/recipes-extended/minio/minio/modules.txt208
-rw-r--r--meta-oe/recipes-extended/minio/minio_git.bb166
-rw-r--r--meta-oe/recipes-extended/minio/src_uri.inc509
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115/0001-Cargo.toml-do-not-abort-on-panic.patch32
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115/0001-add-arm-to-list-of-mozinline.patch32
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch44
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115/0001-rewrite-cargo-host-linker-in-python3.patch (renamed from meta-oe/recipes-extended/mozjs/mozjs-91/0001-rewrite-cargo-host-linker-in-python3.patch)10
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115/0001-util.configure-fix-one-occasionally-reproduced-confi.patch (renamed from meta-oe/recipes-extended/mozjs/mozjs-91/0001-util.configure-fix-one-occasionally-reproduced-confi.patch)10
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115/0002-moz.configure-do-not-look-for-llvm-objdump.patch44
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch (renamed from meta-oe/recipes-extended/mozjs/mozjs-91/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch)11
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115/0004-use-asm-sgidefs.h.patch (renamed from meta-oe/recipes-extended/mozjs/mozjs-91/0004-use-asm-sgidefs.h.patch)9
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115/armv5.patch19
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115/fix-musl-build.patch29
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115/musl-disable-stackwalk.patch27
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115/riscv32.patch60
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-115_115.8.0.bb98
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-91/0001-Cargo.toml-do-not-abort-on-panic.patch29
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-91/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch28
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-91/0002-moz.configure-do-not-look-for-llvm-objdump.patch43
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-91/0005-nojit-32bit-arch-fix.patch21
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-91/0006-Fix-build-on-powerpc.patch36
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-91/fix-musl-build.patch15
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-91/py-3.11.patch211
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-91/riscv32.patch45
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-91_91.13.0.bb80
-rw-r--r--meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch2
-rw-r--r--meta-oe/recipes-extended/mraa/mraa/0001-include-Declare-gVERSION-global-as-extern.patch31
-rw-r--r--meta-oe/recipes-extended/mraa/mraa/0001-mraa-Use-posix-basename.patch46
-rw-r--r--meta-oe/recipes-extended/mraa/mraa/0002-gpio-Include-limits.h-for-PATH_MAX.patch30
-rw-r--r--meta-oe/recipes-extended/mraa/mraa_git.bb19
-rw-r--r--meta-oe/recipes-extended/nana/nana/0001-Include-stdlib.h-for-exit-and-abort-prototypes.patch52
-rw-r--r--meta-oe/recipes-extended/nana/nana/0001-Makefile.am-fix-build-with-separate-build-dir.patch27
-rw-r--r--meta-oe/recipes-extended/nana/nana/0002-man-Makefile.am-we-seem-not-to-need-the-work-around-.patch56
-rw-r--r--meta-oe/recipes-extended/nana/nana/change-mandir-to-DESTDIR.patch40
-rw-r--r--meta-oe/recipes-extended/nana/nana/modify-acinclude.m4-and-configure.in.patch137
-rw-r--r--meta-oe/recipes-extended/nana/nana_2.5.bb35
-rw-r--r--meta-oe/recipes-extended/nana/nana_git.bb44
-rw-r--r--meta-oe/recipes-extended/networking/mstpd/bridge-stp18
-rw-r--r--meta-oe/recipes-extended/networking/mstpd/mstpd.service10
-rw-r--r--meta-oe/recipes-extended/networking/mstpd_git.bb33
-rw-r--r--meta-oe/recipes-extended/nicstat/nicstat/0001-nicstat.c-Do-not-define-uint64_t-and-uint32_t.patch2
-rw-r--r--meta-oe/recipes-extended/nicstat/nicstat_1.95.bb2
-rw-r--r--meta-oe/recipes-extended/openwsman/openwsman/0001-Link-with-libm-for-floor-function.patch71
-rw-r--r--meta-oe/recipes-extended/openwsman/openwsman/0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch2
-rw-r--r--meta-oe/recipes-extended/openwsman/openwsman/libssl-is-required-if-eventint-supported.patch2
-rw-r--r--meta-oe/recipes-extended/openwsman/openwsman_2.7.1.bb72
-rw-r--r--meta-oe/recipes-extended/openwsman/openwsman_2.7.2.bb73
-rw-r--r--meta-oe/recipes-extended/ostree/ostree/0001-Remove-unused-linux-fs.h-includes.patch42
-rw-r--r--meta-oe/recipes-extended/ostree/ostree/0001-libostree-Remove-including-sys-mount.h.patch29
-rw-r--r--meta-oe/recipes-extended/ostree/ostree/0001-s390x-se-luks-gencpio-There-is-no-bashism.patch25
-rw-r--r--meta-oe/recipes-extended/ostree/ostree_2022.5.bb213
-rw-r--r--meta-oe/recipes-extended/ostree/ostree_2024.5.bb214
-rw-r--r--meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch27
-rw-r--r--meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch227
-rw-r--r--meta-oe/recipes-extended/p7zip/p7zip_16.02.bb2
-rw-r--r--meta-oe/recipes-extended/p8platform/files/0001-Make-resulting-cmake-config-relocatable.patch64
-rw-r--r--meta-oe/recipes-extended/p8platform/p8platform_git.bb7
-rw-r--r--meta-oe/recipes-extended/plocate/plocate/0001-Include-linux-stat.h-only-when-sys-stat.h-is-not-inc.patch39
-rw-r--r--meta-oe/recipes-extended/plocate/plocate_1.1.22.bb15
-rw-r--r--meta-oe/recipes-extended/pmdk/pmdk/0001-use-daxctl-libdaxctl.h-instead-of-ndctl-libdaxctl.h.patch69
-rw-r--r--meta-oe/recipes-extended/pmdk/pmdk_1.11.1.bb49
-rw-r--r--meta-oe/recipes-extended/pmdk/pmdk_2.0.0.bb48
-rw-r--r--meta-oe/recipes-extended/polkit/polkit/0001-pkexec-local-privilege-escalation-CVE-2021-4034.patch84
-rw-r--r--meta-oe/recipes-extended/polkit/polkit/0002-CVE-2021-4115-GHSL-2021-077-fix.patch88
-rw-r--r--meta-oe/recipes-extended/polkit/polkit/0002-jsauthority-port-to-mozjs-91.patch38
-rw-r--r--meta-oe/recipes-extended/polkit/polkit/0003-Added-support-for-duktape-as-JS-engine.patch3459
-rw-r--r--meta-oe/recipes-extended/polkit/polkit/0003-jsauthority-ensure-to-call-JS_Init-and-JS_ShutDown-e.patch63
-rw-r--r--meta-oe/recipes-extended/polkit/polkit/0004-Make-netgroup-support-optional.patch253
-rw-r--r--meta-oe/recipes-extended/polkit/polkit/0005-Make-netgroup-support-optional-duktape.patch34
-rw-r--r--meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch35
-rw-r--r--meta-oe/recipes-extended/polkit/polkit_0.119.bb79
-rw-r--r--meta-oe/recipes-extended/polkit/polkit_124.bb59
-rw-r--r--meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb2
-rw-r--r--meta-oe/recipes-extended/qad/qad/0001-Fix-warnings-found-by-clang-compiler.patch53
-rw-r--r--meta-oe/recipes-extended/qad/qad_git.bb28
-rw-r--r--meta-oe/recipes-extended/qcbor/qcbor_git.bb32
-rw-r--r--meta-oe/recipes-extended/rarpd/rarpd/0001-rarpd.8-add-man-file.patch2
-rw-r--r--meta-oe/recipes-extended/rarpd/rarpd/0002-Makefile-modify-compile-parameters.patch2
-rw-r--r--meta-oe/recipes-extended/rarpd/rarpd/0003-rarpd.c-bug-fix.patch2
-rw-r--r--meta-oe/recipes-extended/rarpd/rarpd/0004-rarpd.init-add-new-init-file.patch2
-rw-r--r--meta-oe/recipes-extended/rarpd/rarpd/0005-ethernet.c-remove-it.patch2
-rw-r--r--meta-oe/recipes-extended/redis-plus-plus/files/0001-CMakeLists.txt-fix-substitution-for-static-libs.patch45
-rw-r--r--meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.11.bb26
-rw-r--r--meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.5.bb21
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.4/0001-src-Do-not-reset-FINAL_LIBS.patch (renamed from meta-oe/recipes-extended/redis/redis-7/0001-src-Do-not-reset-FINAL_LIBS.patch)6
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.4/0006-Define-correct-gregs-for-RISCV32.patch (renamed from meta-oe/recipes-extended/redis/redis-7/0006-Define-correct-gregs-for-RISCV32.patch)16
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.4/GNU_SOURCE-7.patch (renamed from meta-oe/recipes-extended/redis/redis-7/GNU_SOURCE-7.patch)0
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.4/hiredis-use-default-CC-if-it-is-set.patch (renamed from meta-oe/recipes-extended/redis/redis-7/hiredis-use-default-CC-if-it-is-set.patch)10
-rwxr-xr-xmeta-oe/recipes-extended/redis/redis-7.2.4/init-redis-server71
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.4/lua-update-Makefile-to-use-environment-build-setting.patch (renamed from meta-oe/recipes-extended/redis/redis-7/lua-update-Makefile-to-use-environment-build-setting.patch)7
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.4/oe-use-libc-malloc.patch (renamed from meta-oe/recipes-extended/redis/redis-7/oe-use-libc-malloc.patch)10
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.4/redis.conf (renamed from meta-oe/recipes-extended/redis/redis-7/redis.conf)0
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.2.4/redis.service (renamed from meta-oe/recipes-extended/redis/redis-7/redis.service)1
-rwxr-xr-xmeta-oe/recipes-extended/redis/redis-7/init-redis-server40
-rw-r--r--meta-oe/recipes-extended/redis/redis/0006-Define-correct-gregs-for-RISCV32.patch15
-rw-r--r--meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch2
-rwxr-xr-xmeta-oe/recipes-extended/redis/redis/init-redis-server31
-rw-r--r--meta-oe/recipes-extended/redis/redis/lua-update-Makefile-to-use-environment-build-setting.patch2
-rw-r--r--meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch2
-rw-r--r--meta-oe/recipes-extended/redis/redis/redis.service1
-rw-r--r--meta-oe/recipes-extended/redis/redis_6.2.14.bb66
-rw-r--r--meta-oe/recipes-extended/redis/redis_6.2.7.bb66
-rw-r--r--meta-oe/recipes-extended/redis/redis_7.0.4.bb72
-rw-r--r--meta-oe/recipes-extended/redis/redis_7.2.4.bb70
-rw-r--r--meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb6
-rw-r--r--meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb15
-rw-r--r--meta-oe/recipes-extended/rsyslog/libfastjson_1.2304.0.bb15
-rw-r--r--meta-oe/recipes-extended/rsyslog/librelp/0001-Fix-function-inline-errors-in-debug-optimization-Og.patch34
-rw-r--r--meta-oe/recipes-extended/rsyslog/librelp/0001-tcp-fix-some-compiler-warnings-with-enable-tls-opens.patch88
-rw-r--r--meta-oe/recipes-extended/rsyslog/librelp/0001-tests-Fix-callback-prototype.patch49
-rw-r--r--meta-oe/recipes-extended/rsyslog/librelp/0001-tests-Include-missing-sys-time.h.patch41
-rw-r--r--meta-oe/recipes-extended/rsyslog/librelp/run-ptest10
-rw-r--r--meta-oe/recipes-extended/rsyslog/librelp_1.10.0.bb18
-rw-r--r--meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb86
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog/0001-tests-disable-the-check-for-inotify.patch2
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog/disable-omfile-outchannel.patch23
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog_8.2208.0.bb204
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog_8.2402.0.bb207
-rw-r--r--meta-oe/recipes-extended/s-nail/files/0001-make.rc-set-VAL_MTA.patch2
-rw-r--r--meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-eh-no-give-up-share-detection.patch2
-rw-r--r--meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-gcc-only-GNU-specifics-after-Og.patch2
-rw-r--r--meta-oe/recipes-extended/sanlock/sanlock/0001-include-libgen.h-for-basename.patch32
-rw-r--r--meta-oe/recipes-extended/sanlock/sanlock/setuptools.patch18
-rw-r--r--meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb51
-rw-r--r--meta-oe/recipes-extended/sanlock/sanlock_3.9.1.bb49
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-stdint.h-system-header-for-UINT16_MAX.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.15-fix-provider-debugging.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-maxMsgLen.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-multilib-man-cfg.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.5-service.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-ftbfs.patch2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb5
-rw-r--r--meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-function-declararions.patch80
-rw-r--r--meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-implicit-function-declarations.patch80
-rw-r--r--meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb2
-rw-r--r--meta-oe/recipes-extended/scsirastools/scsirastools/mdadm.patch2
-rw-r--r--meta-oe/recipes-extended/scsirastools/scsirastools/print-format.patch2
-rw-r--r--meta-oe/recipes-extended/sedutil/files/0001-Fix-build-on-big-endian-architectures.patch2
-rw-r--r--meta-oe/recipes-extended/sedutil/files/0001-include-missing-cstdint.patch32
-rw-r--r--meta-oe/recipes-extended/sedutil/sedutil_git.bb2
-rw-r--r--meta-oe/recipes-extended/sgpio/sgpio/0001-makefile-Add-LDFLAGS-to-linking-rule.patch2
-rw-r--r--meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch2
-rw-r--r--meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb1
-rw-r--r--meta-oe/recipes-extended/sigrok/libsigrokdecode/0001-configure.ac-add-py-3.10-support.patch2
-rw-r--r--meta-oe/recipes-extended/smartmontools/files/0001-configure.ac-Define-SOURCE_DATE_EPOCH-in-CPPFLAGS.patch2
-rw-r--r--meta-oe/recipes-extended/smartmontools/smartmontools_7.3.bb52
-rw-r--r--meta-oe/recipes-extended/smartmontools/smartmontools_7.4.bb52
-rw-r--r--meta-oe/recipes-extended/snappy/snappy/0001-Add-inline-with-SNAPPY_ATTRIBUTE_ALWAYS_INLINE.patch71
-rw-r--r--meta-oe/recipes-extended/snappy/snappy/fix-build-on-32bit-arm.patch33
-rw-r--r--meta-oe/recipes-extended/snappy/snappy_1.1.10.bb28
-rw-r--r--meta-oe/recipes-extended/snappy/snappy_1.1.9.bb26
-rw-r--r--meta-oe/recipes-extended/socketcan/can-isotp_git.bb6
-rw-r--r--meta-oe/recipes-extended/socketcan/can-utils_2023.03.bb50
-rw-r--r--meta-oe/recipes-extended/socketcan/can-utils_git.bb52
-rw-r--r--meta-oe/recipes-extended/sysdig/sysdig/0001-Add-cstdint-for-uintXX_t-types.patch38
-rw-r--r--meta-oe/recipes-extended/sysdig/sysdig_0.28.0.bb3
-rw-r--r--meta-oe/recipes-extended/tipcutils/tipcutils/0001-include-sys-select.h-for-FD_-definitions.patch2
-rw-r--r--meta-oe/recipes-extended/tipcutils/tipcutils/0002-replace-non-standard-uint-with-unsigned-int.patch2
-rw-r--r--meta-oe/recipes-extended/tipcutils/tipcutils_git.bb2
-rw-r--r--meta-oe/recipes-extended/tmate/files/0001-fix-finding-msgpack.patch43
-rw-r--r--meta-oe/recipes-extended/tmate/tmate_2.4.0.bb2
-rw-r--r--meta-oe/recipes-extended/tmux/tmux_3.1c.bb25
-rw-r--r--meta-oe/recipes-extended/tmux/tmux_3.3a.bb25
-rw-r--r--meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb2
-rw-r--r--meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-cow.c-Replace-stat64-with-stat.patch34
-rw-r--r--meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-include-required-system-header-files-for-fd_set-and-.patch2
-rw-r--r--meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-makefiles-Append-to-CFLAGS-instead-of-re-assign.patch122
-rw-r--r--meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/fix-ldflags.patch2
-rw-r--r--meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/unstrip.patch2
-rw-r--r--meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb3
-rw-r--r--meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch2
-rw-r--r--meta-oe/recipes-extended/upm/upm/0001-include-missing-cstdint.patch43
-rw-r--r--meta-oe/recipes-extended/upm/upm_git.bb17
-rw-r--r--meta-oe/recipes-extended/vlock/vlock_2.2.3.bb2
-rw-r--r--meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb4
-rw-r--r--meta-oe/recipes-extended/wtmpdb/wtmpdb/0001-include-libgen.h-for-basename.patch32
-rw-r--r--meta-oe/recipes-extended/wtmpdb/wtmpdb_0.11.0.bb35
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-Set-HAVE_LARGEFILE_SUPPORT-to-1-explicitly.patch30
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-locale-Avoid-using-glibc-specific-defines-on-musl.patch26
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/create-links-with-relative-path.patch52
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/fix-libdir-for-multilib.patch100
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/musl-locale-l.patch34
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/not-append-system-name-to-lib-name.patch30
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/respect-DESTDIR-when-create-link.patch55
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/wx-config-fix-libdir-for-multilib.patch6
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb120
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb123
-rw-r--r--meta-oe/recipes-extended/zram/zram_0.2.bb1
-rw-r--r--meta-oe/recipes-extended/zsync/zsync-curl_git.bb2
-rw-r--r--meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.2.bb1
-rw-r--r--meta-oe/recipes-gnome/atk/atkmm_2.28.2.bb1
-rw-r--r--meta-oe/recipes-gnome/gcab/gcab_1.4.bb24
-rw-r--r--meta-oe/recipes-gnome/gcab/gcab_1.6.bb24
-rw-r--r--meta-oe/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch34
-rw-r--r--meta-oe/recipes-gnome/gcr/gcr3_3.41.2.bb61
-rw-r--r--meta-oe/recipes-gnome/gmime/gmime/nodolt.patch10
-rw-r--r--meta-oe/recipes-gnome/gmime/gmime_3.2.13.bb23
-rw-r--r--meta-oe/recipes-gnome/gmime/gmime_3.2.7.bb18
-rw-r--r--meta-oe/recipes-gnome/gnome-common/gnome-common_3.18.0.bb3
-rw-r--r--meta-oe/recipes-gnome/gnome-themes/adw-gtk3_5.2.bb16
-rw-r--r--meta-oe/recipes-gnome/gnome-themes/gnome-themes-extra_3.28.bb16
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.5.bb23
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.7.bb22
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtkmm4_4.14.0.bb21
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb1
-rw-r--r--meta-oe/recipes-gnome/libjcat/libjcat_0.1.12.bb34
-rw-r--r--meta-oe/recipes-gnome/libjcat/libjcat_0.2.1.bb34
-rw-r--r--meta-oe/recipes-gnome/libpeas/libpeas/0001-Remove-builddir-and-srcdir-paths-from-test-binaries.patch82
-rw-r--r--meta-oe/recipes-gnome/libpeas/libpeas_1.34.0.bb26
-rw-r--r--meta-oe/recipes-gnome/libpeas/libpeas_1.36.0.bb28
-rw-r--r--meta-oe/recipes-gnome/libxmlb/libxmlb/run-ptest3
-rw-r--r--meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.10.bb20
-rw-r--r--meta-oe/recipes-gnome/vte9/vte9.inc18
-rw-r--r--meta-oe/recipes-gnome/vte9/vte9/cve-2012-2738.patch136
-rw-r--r--meta-oe/recipes-gnome/vte9/vte9/obsolete_automake_macros.patch14
-rw-r--r--meta-oe/recipes-gnome/vte9/vte9_0.28.2.bb12
-rw-r--r--meta-oe/recipes-graphics/aml/aml_git.bb35
-rw-r--r--meta-oe/recipes-graphics/cairo/cairomm-1.16_1.16.2.bb18
-rw-r--r--meta-oe/recipes-graphics/cairo/cairomm-1.16_1.18.0.bb17
-rw-r--r--meta-oe/recipes-graphics/cairo/cairomm_1.14.3.bb1
-rw-r--r--meta-oe/recipes-graphics/cglm/cglm_0.8.5.bb25
-rw-r--r--meta-oe/recipes-graphics/cglm/cglm_0.9.2.bb25
-rw-r--r--meta-oe/recipes-graphics/dietsplash/dietsplash/0001-Mimic-GNU-basename-API-for-non-glibc-library-e.g.-mu.patch28
-rw-r--r--meta-oe/recipes-graphics/dietsplash/dietsplash/0001-configure.ac-Do-not-demand-linker-hash-style.patch2
-rw-r--r--meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb8
-rw-r--r--meta-oe/recipes-graphics/directfb/directfb.inc1
-rw-r--r--meta-oe/recipes-graphics/directfb/directfb/0001-include-libgen.h-for-basename.patch32
-rw-r--r--meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch2
-rw-r--r--meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch2
-rw-r--r--meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch2
-rw-r--r--meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.2.bb31
-rw-r--r--meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.6.bb31
-rw-r--r--meta-oe/recipes-graphics/fbida/fbida_2.14.bb80
-rw-r--r--meta-oe/recipes-graphics/fbida/fbida_git.bb41
-rw-r--r--meta-oe/recipes-graphics/fbida/files/0001-Avoid-using-host-path.patch34
-rw-r--r--meta-oe/recipes-graphics/fbida/files/0001-fbida-Include-missing-sys-types.h.patch31
-rw-r--r--meta-oe/recipes-graphics/fbida/files/0001-meson.build-install-fbgs-shell-script.patch28
-rw-r--r--meta-oe/recipes-graphics/fbida/files/0001-meson.build-make-fbpdf-build-optional.patch66
-rw-r--r--meta-oe/recipes-graphics/fbida/files/0002-meson.build-add-features-options-for-png-gif-tiff-we.patch124
-rw-r--r--meta-oe/recipes-graphics/fbida/files/0003-meson.build-do-not-require-xkbcommon.patch27
-rw-r--r--meta-oe/recipes-graphics/fbida/files/cairo-weak-detect.patch17
-rw-r--r--meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch2
-rw-r--r--meta-oe/recipes-graphics/fbida/files/support-jpeg-turbo.patch2
-rw-r--r--meta-oe/recipes-graphics/fbida/files/use-jpeg-turbo.patch13
-rw-r--r--meta-oe/recipes-graphics/feh/feh_3.10.2.bb30
-rw-r--r--meta-oe/recipes-graphics/feh/feh_3.9.1.bb31
-rw-r--r--meta-oe/recipes-graphics/fontforge/fontforge/0001-Fix-Translations-containing-invalid-directives-hs.patch385
-rw-r--r--meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch24
-rw-r--r--meta-oe/recipes-graphics/fontforge/fontforge_20220308.bb49
-rw-r--r--meta-oe/recipes-graphics/fontforge/fontforge_20230101.bb52
-rw-r--r--meta-oe/recipes-graphics/fontforge/libspiro_20200505.bb14
-rw-r--r--meta-oe/recipes-graphics/fontforge/libspiro_20221101.bb14
-rw-r--r--meta-oe/recipes-graphics/freeglut/freeglut_3.2.1.bb20
-rw-r--r--meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb30
-rw-r--r--meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch2
-rw-r--r--meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch2
-rw-r--r--meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb123
-rw-r--r--meta-oe/recipes-graphics/fvwm/fvwm_2.7.0.bb123
-rw-r--r--meta-oe/recipes-graphics/glm/glm/0001-Do-not-use-Werror-with-clang.patch32
-rw-r--r--meta-oe/recipes-graphics/glm/glm/0001-Silence-clang-warnings.patch20
-rw-r--r--meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb6
-rw-r--r--meta-oe/recipes-graphics/gphoto2/gphoto2/0001-Match-prototypes-of-callbacks-with-libgphoto.patch50
-rw-r--r--meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch2
-rw-r--r--meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb1
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure-Filter-out-buildpaths-from-CC.patch48
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch2
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.30.bb58
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.31.bb53
-rw-r--r--meta-oe/recipes-graphics/graphene/graphene_1.10.8.bb22
-rw-r--r--meta-oe/recipes-graphics/graphviz/graphviz/0001-Autotools-fix-do-not-put-prefix-based-paths-in-compi.patch58
-rw-r--r--meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch10
-rw-r--r--meta-oe/recipes-graphics/graphviz/graphviz/0001-Use-native-mkdefs.patch26
-rw-r--r--meta-oe/recipes-graphics/graphviz/graphviz/0001-plugin-pango-Include-freetype-headers-explicitly.patch33
-rw-r--r--meta-oe/recipes-graphics/graphviz/graphviz_2.50.0.bb123
-rw-r--r--meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb121
-rw-r--r--meta-oe/recipes-graphics/gtkperf/gtkperf/0001-Include-stdlib.h-for-exit-API.patch2
-rw-r--r--meta-oe/recipes-graphics/gtkperf/gtkperf/0002-timing.c-Fix-format-security-errors.patch2
-rw-r--r--meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.111.bb44
-rw-r--r--meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.117.bb44
-rw-r--r--meta-oe/recipes-graphics/imlib2/imlib2_git.bb5
-rw-r--r--meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb28
-rw-r--r--meta-oe/recipes-graphics/jasper/jasper_4.1.1.bb34
-rw-r--r--meta-oe/recipes-graphics/libdecor/libdecor_0.2.2.bb31
-rw-r--r--meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch2
-rw-r--r--meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch2
-rw-r--r--meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch2
-rw-r--r--meta-oe/recipes-graphics/libforms/libforms_1.2.4.bb26
-rw-r--r--meta-oe/recipes-graphics/libforms/libforms_1.2.5pre1.bb26
-rw-r--r--meta-oe/recipes-graphics/libglvnd/libglvnd_1.7.0.bb30
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-13616.patch2
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2022-34568.patch28
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-image/0001-png-img-Fix-prototypes-of-callbacks.patch52
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch2
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb2
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch2
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch2
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch2
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-ttf/use.pkg-config.for.freetype2.patch2
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl2-ttf/0001-freetype-Fix-function-signatures-to-match-without-ca.patch69
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch2
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.1.bb32
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.2.bb35
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb5
-rw-r--r--meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb52
-rw-r--r--meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.14.bb56
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-libyui-ncurses-Replace-off64_t-with-off_t-and-stat64.patch176
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui-ncurses_4.1.1.bb48
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui-ncurses_4.2.3.bb50
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui_4.1.1.bb36
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui_4.2.3.bb36
-rw-r--r--meta-oe/recipes-graphics/lvgl/dialog-lvgl_git.bb29
-rw-r--r--meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch63
-rw-r--r--meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch45
-rw-r--r--meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch52
-rw-r--r--meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch59
-rw-r--r--meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch69
-rw-r--r--meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch68
-rw-r--r--meta-oe/recipes-graphics/lvgl/files/0008-fix-fbdev-set-resolution-prior-to-buffer.patch29
-rw-r--r--meta-oe/recipes-graphics/lvgl/lv-conf.inc76
-rw-r--r--meta-oe/recipes-graphics/lvgl/lv-drivers_7.11.0.bb46
-rw-r--r--meta-oe/recipes-graphics/lvgl/lv-lib-png_8.0.2.bb29
-rw-r--r--meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.1.0.bb45
-rw-r--r--meta-oe/recipes-graphics/lvgl/lvgl_8.1.0.bb37
-rw-r--r--meta-oe/recipes-graphics/lvgl/lvgl_9.1.0.bb33
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch4
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0003-check-for-libexecinfo-providing-backtrace-APIs.patch2
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch4
-rw-r--r--meta-oe/recipes-graphics/neatvnc/neatvnc_0.8.0.bb38
-rw-r--r--meta-oe/recipes-graphics/openbox/obconf_git.bb3
-rw-r--r--meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb2
-rw-r--r--meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.0.bb2
-rw-r--r--meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb1
-rw-r--r--meta-oe/recipes-graphics/pango/pangomm-2.48_2.50.1.bb1
-rw-r--r--meta-oe/recipes-graphics/pango/pangomm_2.46.2.bb1
-rw-r--r--meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch2
-rw-r--r--meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb2
-rw-r--r--meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb8
-rw-r--r--meta-oe/recipes-graphics/renderdoc/renderdoc/0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch57
-rw-r--r--meta-oe/recipes-graphics/renderdoc/renderdoc_1.13.bb38
-rw-r--r--meta-oe/recipes-graphics/renderdoc/renderdoc_1.27.bb38
-rw-r--r--meta-oe/recipes-graphics/spir/files/0001-Add-install-PHONY-target-in-Makefile.patch31
-rw-r--r--meta-oe/recipes-graphics/spir/files/0001-Avoid-pessimizing-std-move-3124.patch50
-rw-r--r--meta-oe/recipes-graphics/spir/files/0001-Respect-CMAKE_INSTALL_LIBDIR-in-installed-CMake-file.patch35
-rw-r--r--meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb18
-rw-r--r--meta-oe/recipes-graphics/suckless/st_0.8.5.bb35
-rw-r--r--meta-oe/recipes-graphics/suckless/st_0.9.1.bb35
-rw-r--r--meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch2
-rw-r--r--meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch34
-rw-r--r--meta-oe/recipes-graphics/surf/surf_2.1.bb11
-rw-r--r--meta-oe/recipes-graphics/terminus-font/terminus-font/use-no-name-option-for-gzip.patch66
-rw-r--r--meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb5
-rw-r--r--meta-oe/recipes-graphics/tesseract/tesseract/0001-include-sys-time.h.patch34
-rw-r--r--meta-oe/recipes-graphics/tesseract/tesseract_4.1.3.bb24
-rw-r--r--meta-oe/recipes-graphics/tesseract/tesseract_5.3.4.bb21
-rw-r--r--meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch50
-rw-r--r--meta-oe/recipes-graphics/tslib/tslib_1.22.bb3
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb10
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.37.bb1
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb3
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb3
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-google-fira.bb61
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb1
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb1
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-lklug_0.6-14.20090803cvs.fc24.bb5
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb4
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb4
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb1
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.83.bb1
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb1
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb1
-rw-r--r--meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb1
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-Remove-dead-variable-984.patch34
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch20
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkan-cts-include-missing-cstdint.patch34
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts-Include-missing-cstdint.patch32
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts.patch40
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch2
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch2
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/gen-framework-path.patch20
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc20
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts/0001-use-library-sonames-for-linking.patch (renamed from meta-oe/recipes-graphics/vk-gl-cts/files/0001-use-library-sonames-for-linking.patch)0
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.8.0.bb36
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb40
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts/0001-use-library-sonames-for-linking.patch114
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.3.1.bb28
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb38
-rw-r--r--meta-oe/recipes-graphics/wayland/libei_1.2.1.bb25
-rw-r--r--meta-oe/recipes-graphics/wayland/waylandpp/0001-include-missing-cstdint.patch59
-rw-r--r--meta-oe/recipes-graphics/wayland/waylandpp_1.0.0.bb12
-rw-r--r--meta-oe/recipes-graphics/x11vnc/files/CVE-2020-29074.patch27
-rw-r--r--meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb4
-rw-r--r--meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb14
-rw-r--r--meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.8.bb13
-rw-r--r--meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb23
-rw-r--r--meta-oe/recipes-graphics/xdotool/xdotool_3.20211022.1.bb19
-rw-r--r--meta-oe/recipes-graphics/xorg-app/iceauth_1.0.10.bb16
-rw-r--r--meta-oe/recipes-graphics/xorg-app/iceauth_1.0.9.bb16
-rw-r--r--meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch2
-rw-r--r--meta-oe/recipes-graphics/xorg-app/sessreg_1.1.2.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-app/sessreg_1.1.3.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.3.bb19
-rw-r--r--meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.4.bb19
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xgamma_1.0.6.bb15
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xgamma_1.0.7.bb15
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb13
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.5.bb13
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.5.bb13
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.6.bb13
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.5.bb2
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.3.bb14
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.4.bb14
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.4.bb14
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.5.bb14
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xmessage_1.0.6.bb10
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xmessage_1.0.7.bb10
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xrdb_1.2.1.bb8
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xrdb_1.2.2.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.7.bb13
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xrefresh_1.1.0.bb13
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb15
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.2.bb14
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.3.bb13
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.4.bb16
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.5.bb16
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xterm/0001-Add-configure-time-check-for-setsid.patch26
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xterm_373.bb50
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xterm_388.bb50
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xwd_1.0.8.bb10
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xwd_1.0.9.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.2.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.3.bb7
-rw-r--r--meta-oe/recipes-graphics/xorg-data/xcursor-themes_1.0.7.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc6
-rw-r--r--meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc9
-rw-r--r--meta-oe/recipes-graphics/xorg-doc/xorg-docs_1.7.2.bb7
-rw-r--r--meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.12.bb5
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.1.bb8
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.2.bb7
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-amdgpu_23.0.0.bb23
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_22.0.0.bb33
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_git.bb41
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-mga/checkfile.patch68
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.0.bb21
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.1.bb19
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/0001-lbx_zlib-Mark-declration-with-extern.patch36
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch55
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb16
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.14.bb27
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.16.bb26
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb10
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.0.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.1.bb12
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.3.bb11
-rw-r--r--meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb2
-rw-r--r--meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch2
-rw-r--r--meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch2
-rw-r--r--meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch2
-rw-r--r--meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch2
-rw-r--r--meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch2
-rw-r--r--meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch2
-rw-r--r--meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch2
-rw-r--r--meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch2
-rw-r--r--meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch2
-rw-r--r--meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch2
-rw-r--r--meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch2
-rw-r--r--meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb1
-rw-r--r--meta-oe/recipes-graphics/yad/yad_6.0.bb1
-rw-r--r--meta-oe/recipes-graphics/ydotool/ydotool_git.bb20
-rw-r--r--meta-oe/recipes-kernel/bpftool/bpftool.bb10
-rw-r--r--meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_12.0.1.1105_p3.bb2
-rw-r--r--meta-oe/recipes-kernel/crash/crash-cross-canadian_8.0.4.bb52
-rw-r--r--meta-oe/recipes-kernel/crash/crash.inc91
-rw-r--r--meta-oe/recipes-kernel/crash/crash/0001-cross_add_configure_option.patch21
-rw-r--r--meta-oe/recipes-kernel/crash/crash/7001force_define_architecture.patch2
-rw-r--r--meta-oe/recipes-kernel/crash/crash/7003cross_ranlib.patch21
-rw-r--r--meta-oe/recipes-kernel/crash/crash/config-site.crash-7.0.91
-rw-r--r--meta-oe/recipes-kernel/crash/crash/donnot-extract-gdb-during-do-compile.patch32
-rw-r--r--meta-oe/recipes-kernel/crash/crash/gdb_build_jobs_and_not_write_crash_target.patch26
-rw-r--r--meta-oe/recipes-kernel/crash/crash_8.0.0.bb113
-rw-r--r--meta-oe/recipes-kernel/crash/crash_8.0.4.bb28
-rw-r--r--meta-oe/recipes-kernel/ipmitool/files/0001-csv-revision-Drop-the-git-revision-info.patch42
-rw-r--r--meta-oe/recipes-kernel/ipmitool/ipmitool/0001-configure-Remove-the-logic-to-download-IANA-PEN-data.patch41
-rw-r--r--meta-oe/recipes-kernel/ipmitool/ipmitool/0001-ipmi_fru.c-Provide-missing-function-declarations.patch34
-rw-r--r--meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.19.bb20
-rw-r--r--meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch25
-rw-r--r--meta-oe/recipes-kernel/ipmiutil/ipmiutil/fix_systemd_path.patch29
-rw-r--r--meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb48
-rw-r--r--meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.9.bb47
-rw-r--r--meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb45
-rwxr-xr-xmeta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest10
-rw-r--r--meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/userfaultfd.patch2
-rw-r--r--meta-oe/recipes-kernel/libbpf/libbpf_0.8.0.bb29
-rw-r--r--meta-oe/recipes-kernel/libbpf/libbpf_1.3.0.bb36
-rw-r--r--meta-oe/recipes-kernel/libpfm/libpfm4_4.12.0.bb33
-rw-r--r--meta-oe/recipes-kernel/libpfm/libpfm4_4.13.0.bb33
-rw-r--r--meta-oe/recipes-kernel/libtracefs/libtracefs/0001-makefile-Do-not-preserve-ownership-in-cp-command.patch31
-rw-r--r--meta-oe/recipes-kernel/libtracefs/libtracefs/0001-tracefs-perf-Add-missing-headers-for-syscall-and-SYS.patch31
-rw-r--r--meta-oe/recipes-kernel/libtracefs/libtracefs_1.7.0.bb23
-rw-r--r--meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch2
-rw-r--r--meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.1.bb61
-rw-r--r--meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.4.bb62
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/files/0001-corestripper-Fix-uninitialized-warning.patch53
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch128
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/files/0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch33
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/files/run-ptest12
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb48
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.7.bb49
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0001-Replace-std-bind2nd-with-generic-lambda.patch34
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb10
-rw-r--r--meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-parse-unfished-cpu-exec-line.patch2
-rw-r--r--meta-oe/recipes-kernel/spidev-test/spidev-test.bb2
-rw-r--r--meta-oe/recipes-kernel/trace-cmd/files/0001-Do-not-emit-useless-rpath.patch34
-rw-r--r--meta-oe/recipes-kernel/trace-cmd/files/0001-Replace-LFS64-interfaces-off64_t-and-lseek64.patch1136
-rw-r--r--meta-oe/recipes-kernel/trace-cmd/files/0001-trace-cmd-make-it-build-with-musl.patch132
-rw-r--r--meta-oe/recipes-kernel/trace-cmd/files/0002-Drop-using-_LARGEFILE64_SOURCE.patch145
-rw-r--r--meta-oe/recipes-kernel/trace-cmd/trace-cmd_2.9.1.bb19
-rw-r--r--meta-oe/recipes-kernel/trace-cmd/trace-cmd_3.1.5.bb32
-rw-r--r--meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb2
-rw-r--r--meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb22
-rw-r--r--meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb2
-rw-r--r--meta-oe/recipes-multimedia/audiofile/files/0001-fix-negative-shift-constants.patch2
-rw-r--r--meta-oe/recipes-multimedia/audiofile/files/0002-fix-build-on-gcc6.patch2
-rw-r--r--meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch2
-rw-r--r--meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Fix-fprintf-format-errors.patch2
-rw-r--r--meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch2
-rw-r--r--meta-oe/recipes-multimedia/faad2/faad2_2.10.0.bb17
-rw-r--r--meta-oe/recipes-multimedia/faad2/faad2_2.11.1.bb17
-rw-r--r--meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch2
-rw-r--r--meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb1
-rw-r--r--meta-oe/recipes-multimedia/jack/jack/0001-Conceal-imp-warnings-in-Python3.patch34
-rw-r--r--meta-oe/recipes-multimedia/jack/jack/0002-Fix-all-DeprecationWarning-invalid-escape-sequence.patch229
-rw-r--r--meta-oe/recipes-multimedia/jack/jack_1.19.21.bb53
-rw-r--r--meta-oe/recipes-multimedia/jack/jack_1.9.22.bb59
-rw-r--r--meta-oe/recipes-multimedia/libass/libass_0.16.0.bb27
-rw-r--r--meta-oe/recipes-multimedia/libass/libass_0.17.1.bb27
-rw-r--r--meta-oe/recipes-multimedia/libburn/libburn_1.5.4.bb11
-rw-r--r--meta-oe/recipes-multimedia/libcdio/libcdio/Drop-LIBCDIO_SOURCE_PATH-by-dropping-STRIP_FROM_PATH.patch43
-rw-r--r--meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb1
-rw-r--r--meta-oe/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb1
-rw-r--r--meta-oe/recipes-multimedia/libjxl/libjxl_0.10.2.bb39
-rw-r--r--meta-oe/recipes-multimedia/libmad/libmad/0001-configure-Respect-the-cflags-from-environment.patch47
-rw-r--r--meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch2
-rw-r--r--meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb9
-rw-r--r--meta-oe/recipes-multimedia/libmodplug/libmodplug/0001-fastmix-Drop-register-storage-class-keyword.patch38
-rw-r--r--meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.9.0.bb5
-rw-r--r--meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb55
-rw-r--r--meta-oe/recipes-multimedia/libopus/libopus_1.5.1.bb56
-rw-r--r--meta-oe/recipes-multimedia/mplayer/mpv_0.34.1.bb115
-rw-r--r--meta-oe/recipes-multimedia/mplayer/mpv_0.35.1.bb116
-rw-r--r--meta-oe/recipes-multimedia/pulseaudio/paprefs_1.2.bb19
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch44
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-keytable-meson-Restrict-the-installation-of-50-rc_ke.patch46
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch21
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-original-patch-export-mediactl-headers.patch24
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch49
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb56
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.26.1.bb85
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb1
-rw-r--r--meta-oe/recipes-multimedia/wavpack/files/extract-libtool-and-convert-to-soversion.patch35
-rw-r--r--meta-oe/recipes-multimedia/wavpack/files/set-soversion-and-version.patch26
-rw-r--r--meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb10
-rw-r--r--meta-oe/recipes-multimedia/wavpack/wavpack_5.6.0.bb18
-rw-r--r--meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch9
-rw-r--r--meta-oe/recipes-multimedia/webm/libvpx_1.12.0.bb50
-rw-r--r--meta-oe/recipes-multimedia/webm/libvpx_1.14.0.bb51
-rw-r--r--meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch2
-rw-r--r--meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch2
-rw-r--r--meta-oe/recipes-navigation/geoclue/geoclue/0001-libgeoclue-don-t-try-to-use-g-ir-scanner-when-intros.patch30
-rw-r--r--meta-oe/recipes-navigation/geoclue/geoclue_2.5.7.bb47
-rw-r--r--meta-oe/recipes-navigation/geoclue/geoclue_2.7.1.bb61
-rw-r--r--meta-oe/recipes-navigation/geos/geos.inc23
-rw-r--r--meta-oe/recipes-navigation/geos/geos_3.12.1.bb22
-rw-r--r--meta-oe/recipes-navigation/geos/geos_3.9.3.bb3
-rw-r--r--meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb1
-rw-r--r--meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_geos.patch2
-rw-r--r--meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_macros.patch2
-rw-r--r--meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_pkgconfig.patch2
-rw-r--r--meta-oe/recipes-navigation/orrery/orrery/0001-Append-cflags-instead-of-overriding-in-Makefile.am.patch28
-rw-r--r--meta-oe/recipes-navigation/orrery/orrery/0001-orrery-Fix-sprintf-format.patch2
-rw-r--r--meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch2
-rw-r--r--meta-oe/recipes-navigation/orrery/orrery_2.7.bb4
-rw-r--r--meta-oe/recipes-navigation/proj/proj_8.2.1.bb22
-rw-r--r--meta-oe/recipes-navigation/proj/proj_9.3.1.bb27
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-Fix-time.h-check.patch9
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/CVE-2019-19906.patch2
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch26
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch73
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff2
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb4
-rw-r--r--meta-oe/recipes-printing/cups/cups-filters.inc81
-rw-r--r--meta-oe/recipes-printing/cups/cups-filters/fix-make-race.patch33
-rw-r--r--meta-oe/recipes-printing/cups/cups-filters_1.28.11.bb3
-rw-r--r--meta-oe/recipes-printing/cups/cups-filters_2.0.0.bb30
-rw-r--r--meta-oe/recipes-printing/cups/cups-pk-helper/dont-localize-org.opensuse.CupsPkHelper.Mechanism.service.patch26
-rw-r--r--meta-oe/recipes-printing/cups/cups-pk-helper_0.2.7.bb23
-rw-r--r--meta-oe/recipes-printing/cups/libcupsfilters/0001-use-noexcept-false-instead-of-throw-from-c-17-onward.patch36
-rw-r--r--meta-oe/recipes-printing/cups/libcupsfilters_2.0.0.bb17
-rw-r--r--meta-oe/recipes-printing/cups/libppd_2.0.0.bb18
-rw-r--r--meta-oe/recipes-printing/cups/python3-pycups.bb11
-rw-r--r--meta-oe/recipes-printing/gutenprint/gutenprint-native_git.bb42
-rw-r--r--meta-oe/recipes-printing/gutenprint/gutenprint.inc22
-rw-r--r--meta-oe/recipes-printing/gutenprint/gutenprint_5.3.4.bb63
-rw-r--r--meta-oe/recipes-printing/gutenprint/gutenprint_git.bb46
-rw-r--r--meta-oe/recipes-printing/qpdf/qpdf_10.6.3.bb33
-rw-r--r--meta-oe/recipes-printing/qpdf/qpdf_11.8.0.bb31
-rw-r--r--meta-oe/recipes-security/audit/audit/0001-Add-substitue-functions-for-strndupa-rawmemchr.patch133
-rw-r--r--meta-oe/recipes-security/audit/audit/0001-Fixed-swig-host-contamination-issue.patch57
-rw-r--r--meta-oe/recipes-security/audit/audit/0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch31
-rw-r--r--meta-oe/recipes-security/audit/audit/0002-Fixed-swig-host-contamination-issue.patch57
-rw-r--r--meta-oe/recipes-security/audit/audit/0003-Header-definitions-need-to-be-external-when-building.patch30
-rw-r--r--meta-oe/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch50
-rw-r--r--meta-oe/recipes-security/audit/audit/auditd.service28
-rw-r--r--meta-oe/recipes-security/audit/audit_2.8.5.bb109
-rw-r--r--meta-oe/recipes-security/audit/audit_3.0.8.bb116
-rw-r--r--meta-oe/recipes-security/audit/audit_4.0.1.bb103
-rw-r--r--meta-oe/recipes-security/bubblewrap/bubblewrap_0.8.0.bb24
-rw-r--r--meta-oe/recipes-security/keyutils/files/0001-Adhere-to-the-SOURCE_DATE_EPOCH-standard.patch32
-rw-r--r--meta-oe/recipes-security/keyutils/files/0001-tests-builtin_trusted-Failure-command-is-failed.patch27
-rw-r--r--meta-oe/recipes-security/keyutils/files/0001-tests-toolbox.inc.sh-update-regex-for-getting-endian.patch35
-rw-r--r--meta-oe/recipes-security/keyutils/files/0002-tests-Use-head-n1-for-busybox-compatibility.patch64
-rw-r--r--meta-oe/recipes-security/keyutils/keyutils_1.6.1.bb56
-rw-r--r--meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb62
-rw-r--r--meta-oe/recipes-security/nmap/files/0001-Include-time.h-header-to-pass-clang-compilation.patch2
-rw-r--r--meta-oe/recipes-security/nmap/nmap_7.80.bb8
-rw-r--r--meta-oe/recipes-security/passwdqc/passwdqc/makefile-add-ldflags.patch13
-rw-r--r--meta-oe/recipes-security/passwdqc/passwdqc_2.0.2.bb65
-rw-r--r--meta-oe/recipes-security/passwdqc/passwdqc_2.0.3.bb65
-rw-r--r--meta-oe/recipes-security/softhsm/files/0001-avoid-unnecessary-check-for-sqlite3-binary.patch40
-rw-r--r--meta-oe/recipes-security/softhsm/softhsm_2.6.1.bb9
-rw-r--r--meta-oe/recipes-security/tomoyo-tools/tomoyo-tools_2.5.0.bb29
-rw-r--r--meta-oe/recipes-security/tomoyo-tools/tomoyo-tools_2.6.1.bb29
-rw-r--r--meta-oe/recipes-security/usbguard/usbguard/0001-include-missing-cstdint.patch45
-rw-r--r--meta-oe/recipes-security/usbguard/usbguard_1.1.1.bb68
-rw-r--r--meta-oe/recipes-security/usbguard/usbguard_1.1.2.bb70
-rw-r--r--meta-oe/recipes-shells/dash/dash_0.5.11.5.bb26
-rw-r--r--meta-oe/recipes-shells/dash/dash_0.5.12.bb26
-rw-r--r--meta-oe/recipes-shells/mksh/mksh_59.bb36
-rw-r--r--meta-oe/recipes-shells/mksh/mksh_59c.bb37
-rw-r--r--meta-oe/recipes-shells/tcsh/tcsh/0001-Enable-system-malloc-on-all-linux.patch12
-rw-r--r--meta-oe/recipes-shells/tcsh/tcsh/0002-Add-debian-csh-scripts.patch2
-rw-r--r--meta-oe/recipes-shells/tcsh/tcsh_6.22.04.bb46
-rw-r--r--meta-oe/recipes-shells/tcsh/tcsh_6.24.11.bb46
-rw-r--r--meta-oe/recipes-shells/zsh/zsh/CVE-2021-45444_1.patch60
-rw-r--r--meta-oe/recipes-shells/zsh/zsh/CVE-2021-45444_2.patch140
-rw-r--r--meta-oe/recipes-shells/zsh/zsh/CVE-2021-45444_3.patch77
-rw-r--r--meta-oe/recipes-shells/zsh/zsh_5.8.bb10
-rw-r--r--meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb2
-rw-r--r--meta-oe/recipes-support/anthy/anthy/2ch_t.patch2
-rw-r--r--meta-oe/recipes-support/anthy/anthy/native-helpers.patch2
-rw-r--r--meta-oe/recipes-support/anthy/anthy/not_build_elc.patch2
-rw-r--r--meta-oe/recipes-support/anthy/anthy/target-helpers.patch2
-rw-r--r--meta-oe/recipes-support/anthy/anthy_9100h.bb1
-rw-r--r--meta-oe/recipes-support/asio/asio_1.20.0.bb28
-rw-r--r--meta-oe/recipes-support/asio/asio_1.28.0.bb28
-rw-r--r--meta-oe/recipes-support/asio/files/0001-Add-the-pkgconfigdir-location.patch30
-rw-r--r--meta-oe/recipes-support/atop/atop_2.4.0.bb4
-rw-r--r--meta-oe/recipes-support/avro/avro-c++/0001-Remove-cpp-unittest-compilation.patch86
-rw-r--r--meta-oe/recipes-support/avro/avro-c++/0002-Add-package-configuration-files.patch84
-rw-r--r--meta-oe/recipes-support/avro/avro-c++/0003-Update-CXX-standard-to-CXX14.patch24
-rw-r--r--meta-oe/recipes-support/avro/avro-c++_1.11.3.bb22
-rw-r--r--meta-oe/recipes-support/avro/avro-c_1.11.1.bb17
-rw-r--r--meta-oe/recipes-support/avro/avro-c_1.11.3.bb17
-rw-r--r--meta-oe/recipes-support/bdwgc/bdwgc_8.2.2.bb37
-rw-r--r--meta-oe/recipes-support/bdwgc/bdwgc_8.2.6.bb37
-rw-r--r--meta-oe/recipes-support/boost-sml/boost-sml_1.1.11.bb25
-rw-r--r--meta-oe/recipes-support/boost-sml/boost-sml_git.bb28
-rw-r--r--meta-oe/recipes-support/btop/btop_1.3.2.bb23
-rw-r--r--meta-oe/recipes-support/c-ares/c-ares/run-ptest3
-rw-r--r--meta-oe/recipes-support/c-ares/c-ares_1.18.1.bb21
-rw-r--r--meta-oe/recipes-support/c-ares/c-ares_1.27.0.bb30
-rw-r--r--meta-oe/recipes-support/c-periphery/c-periphery_2.3.1.bb21
-rw-r--r--meta-oe/recipes-support/c-periphery/c-periphery_2.4.2.bb21
-rw-r--r--meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb4
-rw-r--r--meta-oe/recipes-support/canonical-multitouch/geis/0001-libgeis-Compare-the-first-character-of-string-to-nul.patch2
-rw-r--r--meta-oe/recipes-support/canonical-multitouch/geis/fix-indentation-for-gcc6.patch2
-rw-r--r--meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb12
-rw-r--r--meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb4
-rw-r--r--meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch12
-rw-r--r--meta-oe/recipes-support/ccid/ccid_1.5.0.bb19
-rw-r--r--meta-oe/recipes-support/ccid/ccid_1.5.5.bb18
-rw-r--r--meta-oe/recipes-support/ceres-solver/ceres-solver_2.1.0.bb42
-rw-r--r--meta-oe/recipes-support/ceres-solver/ceres-solver_2.2.0.bb41
-rw-r--r--meta-oe/recipes-support/cli11/cli11_2.2.0.bb25
-rw-r--r--meta-oe/recipes-support/cli11/cli11_2.3.2.bb26
-rw-r--r--meta-oe/recipes-support/cmark/cmark_0.30.2.bb15
-rw-r--r--meta-oe/recipes-support/cmark/cmark_0.31.0.bb15
-rw-r--r--meta-oe/recipes-support/colord/colord.inc4
-rw-r--r--meta-oe/recipes-support/consolation/consolation_0.0.8.bb29
-rw-r--r--meta-oe/recipes-support/consolation/consolation_0.0.9.bb29
-rw-r--r--meta-oe/recipes-support/cpp-netlib/cpp-netlib/a53f123040998744602f190944464af0e159ea19.patch30
-rw-r--r--meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb10
-rw-r--r--meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch2
-rw-r--r--meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch2
-rw-r--r--meta-oe/recipes-support/cpprest/cpprest_2.10.18.bb19
-rw-r--r--meta-oe/recipes-support/cpprest/cpprest_2.10.19.bb19
-rw-r--r--meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb5
-rw-r--r--meta-oe/recipes-support/crucible/crucible_2023.11.02.bb20
-rw-r--r--meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb5
-rw-r--r--meta-oe/recipes-support/cyaml/cyaml_1.4.1.bb27
-rw-r--r--meta-oe/recipes-support/daemontools/daemontools/0001-Fix-signature-of-main-function.patch2
-rw-r--r--meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-Fix-QA-Issue.patch2
-rw-r--r--meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff2
-rw-r--r--meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff2
-rw-r--r--meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch2
-rw-r--r--meta-oe/recipes-support/daemontools/daemontools/warnings.patch2
-rw-r--r--meta-oe/recipes-support/dc/double-conversion_3.3.0.bb41
-rw-r--r--meta-oe/recipes-support/dc/files/run-ptest23
-rw-r--r--meta-oe/recipes-support/dfu-util/dfu-util_0.11.bb1
-rw-r--r--meta-oe/recipes-support/dool/dool/0001-Fix-build-error-as-following.patch39
-rw-r--r--meta-oe/recipes-support/dool/dool_1.0.0.bb24
-rw-r--r--meta-oe/recipes-support/dool/dool_1.3.1.bb23
-rw-r--r--meta-oe/recipes-support/driverctl/driverctl_0.111.bb28
-rw-r--r--meta-oe/recipes-support/driverctl/driverctl_0.115.bb26
-rw-r--r--meta-oe/recipes-support/edid-decode/edid-decode_git.bb18
-rw-r--r--meta-oe/recipes-support/eject/eject/eject-timeout.patch2
-rw-r--r--meta-oe/recipes-support/eject/eject_2.1.5.bb1
-rw-r--r--meta-oe/recipes-support/emacs/emacs_28.2.bb277
-rw-r--r--meta-oe/recipes-support/emacs/emacs_29.1.bb311
-rw-r--r--meta-oe/recipes-support/emacs/files/avoid-running-host-binaries-for-sanity.patch38
-rw-r--r--meta-oe/recipes-support/emacs/files/use-emacs-native-tools-for-cross-compiling.patch106
-rw-r--r--meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch85
-rw-r--r--meta-oe/recipes-support/enca/enca/0001-Do-not-use-MKTEMP_PROG-in-cross-build.patch30
-rw-r--r--meta-oe/recipes-support/enca/enca/dont-run-tests.patch2
-rw-r--r--meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch2
-rw-r--r--meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch2
-rw-r--r--meta-oe/recipes-support/enca/enca_1.19.bb4
-rw-r--r--meta-oe/recipes-support/espeak/espeak_1.48.04.bb1
-rw-r--r--meta-oe/recipes-support/espeak/files/0001-Drop-using-register-keyword-for-storage-classifier.patch38
-rw-r--r--meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch2
-rw-r--r--meta-oe/recipes-support/evemu-tools/evemu-tools_git.bb2
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2/0001-Use-compiler-fcf-protection-only-if-compiler-arch-su.patch40
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29457.patch26
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29458.patch37
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29463.patch120
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29464.patch72
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29470.patch32
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29473.patch21
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2/CVE-2021-3482.patch54
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2_0.27.3.bb30
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2_0.28.0.bb19
-rw-r--r--meta-oe/recipes-support/farsight/libnice_0.1.18.bb43
-rw-r--r--meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch2
-rw-r--r--meta-oe/recipes-support/fbset/fbset-modes.bb1
-rw-r--r--meta-oe/recipes-support/fbset/fbset_2.1.bb1
-rw-r--r--meta-oe/recipes-support/fftw/fftw/install-bench.patch2
-rw-r--r--meta-oe/recipes-support/fftw/fftw/run-ptest15
-rw-r--r--meta-oe/recipes-support/fftw/fftw_3.3.10.bb3
-rw-r--r--meta-oe/recipes-support/fltk/fltk-native.bb5
-rw-r--r--meta-oe/recipes-support/fltk/fltk/0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch2
-rw-r--r--meta-oe/recipes-support/fltk/fltk/disable_test.patch2
-rw-r--r--meta-oe/recipes-support/fltk/fltk/fltk-native-link-libdl.patch44
-rw-r--r--meta-oe/recipes-support/fmt/fmt_10.2.1.bb16
-rw-r--r--meta-oe/recipes-support/fmt/fmt_9.1.0.bb17
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp/0001-Fix-const-qualifier-error.patch57
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp/0002-Do-not-install-tools-a-CMake-targets.patch45
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch2
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp3_3.4.0.bb61
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp_2.11.2.bb92
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp_2.8.0.bb85
-rw-r--r--meta-oe/recipes-support/function2/function2_4.2.1.bb21
-rw-r--r--meta-oe/recipes-support/function2/function2_4.2.4.bb21
-rw-r--r--meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb2
-rw-r--r--meta-oe/recipes-support/glog/glog/0001-Change-SleepForMilliseconds-parameter-from-unsigned-.patch33
-rw-r--r--meta-oe/recipes-support/glog/glog/libexecinfo.patch23
-rw-r--r--meta-oe/recipes-support/glog/glog_0.5.0.bb35
-rw-r--r--meta-oe/recipes-support/glog/glog_0.6.0.bb43
-rw-r--r--meta-oe/recipes-support/gnulib/gnulib_2018-03-07.03.bb37
-rw-r--r--meta-oe/recipes-support/gnulib/gnulib_202401.bb37
-rw-r--r--meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.7.0.bb20
-rw-r--r--meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.8.3.bb20
-rw-r--r--meta-oe/recipes-support/gosu/gosu_1.14.bb20
-rw-r--r--meta-oe/recipes-support/gosu/gosu_1.17.bb29
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch31
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch8
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch34
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/0001-src-mmap_hook.cc-Fix-build-for-32bit-machine.patch59
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch40
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/sgidef.patch23
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools_2.10.bb67
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools_2.15.bb65
-rw-r--r--meta-oe/recipes-support/gpm/gpm_git.bb1
-rw-r--r--meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch2
-rw-r--r--meta-oe/recipes-support/gsoap/gsoap/0001-Simplify-check-for-gethostbyname_r.patch96
-rw-r--r--meta-oe/recipes-support/gsoap/gsoap_2.8.106.bb42
-rw-r--r--meta-oe/recipes-support/gsoap/gsoap_2.8.126.bb42
-rw-r--r--meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch2
-rw-r--r--meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch2
-rw-r--r--meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff2
-rw-r--r--meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb1
-rw-r--r--meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch100
-rw-r--r--meta-oe/recipes-support/hdf5/files/0002-Remove-suffix-shared-from-shared-library-name.patch2
-rw-r--r--meta-oe/recipes-support/hdf5/hdf5_1.13.2.bb54
-rw-r--r--meta-oe/recipes-support/hdf5/hdf5_1.14.2.bb62
-rw-r--r--meta-oe/recipes-support/hidapi/hidapi_0.14.0.bb15
-rw-r--r--meta-oe/recipes-support/hidapi/hidapi_git.bb17
-rw-r--r--meta-oe/recipes-support/hstr/files/0001-Use-OE-specific-checks-for-ncurses.patch2
-rw-r--r--meta-oe/recipes-support/hstr/files/0001-configure.ac-Don-t-use-AC_CHECK_FILE.patch2
-rw-r--r--meta-oe/recipes-support/hstr/hstr_2.5.0.bb17
-rw-r--r--meta-oe/recipes-support/hstr/hstr_3.1.0.bb17
-rw-r--r--meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch11
-rw-r--r--meta-oe/recipes-support/htop/htop_3.2.1.bb36
-rw-r--r--meta-oe/recipes-support/htop/htop_3.3.0.bb36
-rw-r--r--meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb2
-rw-r--r--meta-oe/recipes-support/hunspell/hunspell_1.7.1.bb18
-rw-r--r--meta-oe/recipes-support/hunspell/hunspell_1.7.2.bb21
-rw-r--r--meta-oe/recipes-support/hwdata/hwdata_0.362.bb25
-rw-r--r--meta-oe/recipes-support/hwdata/hwdata_0.380.bb26
-rw-r--r--meta-oe/recipes-support/idevicerestore/idevicerestore_git.bb4
-rw-r--r--meta-oe/recipes-support/iksemel/iksemel_1.5.bb2
-rw-r--r--meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb92
-rw-r--r--meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb101
-rw-r--r--meta-oe/recipes-support/imapfilter/imapfilter_2.7.5.bb21
-rw-r--r--meta-oe/recipes-support/imapfilter/imapfilter_2.8.2.bb23
-rw-r--r--meta-oe/recipes-support/inih/files/0001-include-install-header-files-without-prefix-dir-inih.patch24
-rw-r--r--meta-oe/recipes-support/inih/libinih_58.bb14
-rw-r--r--meta-oe/recipes-support/inih/libinih_git.bb23
-rw-r--r--meta-oe/recipes-support/iniparser/iniparser/Add-CMake-support.patch2
-rw-r--r--meta-oe/recipes-support/iniparser/iniparser/CVE-2023-33461.patch48
-rw-r--r--meta-oe/recipes-support/iniparser/iniparser_4.1.bb8
-rw-r--r--meta-oe/recipes-support/inotify-tools/inotify-tools/0002-configure-Add-AC_SYS_LARGEFILE-autoconf-macro.patch28
-rw-r--r--meta-oe/recipes-support/inotify-tools/inotify-tools/0003-replace-stat64-lstat64-with-stat-lstat.patch119
-rw-r--r--meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb5
-rw-r--r--meta-oe/recipes-support/lcms/lcms_2.13.1.bb15
-rw-r--r--meta-oe/recipes-support/lcms/lcms_2.16.bb17
-rw-r--r--meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch898
-rw-r--r--meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch247
-rwxr-xr-xmeta-oe/recipes-support/lcov/lcov_1.14.bb65
-rwxr-xr-xmeta-oe/recipes-support/lcov/lcov_1.16.bb57
-rw-r--r--meta-oe/recipes-support/libb64/libb64/0001-example-Do-not-run-the-tests.patch2
-rw-r--r--meta-oe/recipes-support/libb64/libb64/0002-use-BUFSIZ-as-buffer-size.patch57
-rw-r--r--meta-oe/recipes-support/libb64/libb64_2.0.0.1.bb3
-rw-r--r--meta-oe/recipes-support/libbytesize/libbytesize_2.10.bb29
-rw-r--r--meta-oe/recipes-support/libbytesize/libbytesize_2.7.bb30
-rw-r--r--meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch2
-rw-r--r--meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch2
-rw-r--r--meta-oe/recipes-support/libcanberra/files/0001-remove-dropped-templates.patch65
-rw-r--r--meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb1
-rw-r--r--meta-oe/recipes-support/libcereal/files/0001-cmake-Use-idirafter-instead-of-isystem.patch52
-rw-r--r--meta-oe/recipes-support/libcereal/files/0001-doctest-Do-not-use-unnamed-class.patch38
-rw-r--r--meta-oe/recipes-support/libcereal/libcereal_1.3.2.bb7
-rw-r--r--meta-oe/recipes-support/libcppkafka/libcppkafka/0001-cmake-Use-CMAKE_INSTALL_LIBDIR.patch30
-rw-r--r--meta-oe/recipes-support/libcppkafka/libcppkafka_git.bb13
-rw-r--r--meta-oe/recipes-support/libcyusbserial/libcyusbserial/0001-CMakeLists.txt-don-t-fall-back-CMAKE_INSTALL_LIBDIR-.patch43
-rw-r--r--meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb6
-rw-r--r--meta-oe/recipes-support/libee/libee/libee-parallel-make.patch2
-rw-r--r--meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb3
-rw-r--r--meta-oe/recipes-support/libfann/libfann_git.bb2
-rw-r--r--meta-oe/recipes-support/libfido2/libfido2_1.14.0.bb25
-rw-r--r--meta-oe/recipes-support/libftdi/libftdi_1.5.bb7
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod-1.x/run-ptest (renamed from meta-oe/recipes-support/libgpiod/files/run-ptest)0
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod-2.x/run-ptest24
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod.inc60
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod_1.6.3.bb81
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod_1.6.4.bb45
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod_2.1.1.bb31
-rw-r--r--meta-oe/recipes-support/libgusb/libgusb_0.3.10.bb6
-rw-r--r--meta-oe/recipes-support/libharu/libharu/0001-Install-static-lib-into-var-libdir-rather-than-hardc.patch30
-rw-r--r--meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch52
-rw-r--r--meta-oe/recipes-support/libharu/libharu_2.3.0.bb24
-rw-r--r--meta-oe/recipes-support/libharu/libharu_2.4.4.bb16
-rw-r--r--meta-oe/recipes-support/libiio/libiio/0001-CMake-Move-include-CheckCSourceCompiles-before-its-m.patch38
-rw-r--r--meta-oe/recipes-support/libiio/libiio_0.25.bb81
-rw-r--r--meta-oe/recipes-support/libiio/libiio_git.bb82
-rw-r--r--meta-oe/recipes-support/libiodbc/libiodbc_3.52.15.bb30
-rw-r--r--meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.1.bb27
-rw-r--r--meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.5.bb27
-rw-r--r--meta-oe/recipes-support/libmanette/libmanette_0.2.6.bb16
-rw-r--r--meta-oe/recipes-support/libmanette/libmanette_0.2.7.bb16
-rw-r--r--meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch2
-rw-r--r--meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb3
-rw-r--r--meta-oe/recipes-support/libmxml/libmxml_3.3.1.bb8
-rw-r--r--meta-oe/recipes-support/libnice/libnice_0.1.22.bb30
-rw-r--r--meta-oe/recipes-support/libnvme/libnvme_1.8.bb22
-rw-r--r--meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch2
-rw-r--r--meta-oe/recipes-support/libol/libol/configure.patch14
-rw-r--r--meta-oe/recipes-support/libol/libol_0.3.18.bb20
-rw-r--r--meta-oe/recipes-support/liboop/liboop/tcl_dev.patch2
-rw-r--r--meta-oe/recipes-support/libosinfo/libosinfo/0001-meson.build-allow-crosscompiling-gir.patch28
-rw-r--r--meta-oe/recipes-support/libosinfo/libosinfo/0001-osinfo-Make-xmlError-struct-constant-in-propagate_li.patch32
-rw-r--r--meta-oe/recipes-support/libosinfo/libosinfo_1.11.0.bb35
-rw-r--r--meta-oe/recipes-support/libpaper/libpaper_2.1.2.bb9
-rw-r--r--meta-oe/recipes-support/libraw/libraw_0.20.2.bb11
-rw-r--r--meta-oe/recipes-support/libraw/libraw_0.21.2.bb11
-rw-r--r--meta-oe/recipes-support/librsync/librsync_2.3.2.bb18
-rw-r--r--meta-oe/recipes-support/librsync/librsync_2.3.4.bb17
-rw-r--r--meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb14
-rw-r--r--meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb8
-rw-r--r--meta-oe/recipes-support/libssh/libssh/0001-libgcrypt.c-Fix-prototype-of-des3_encrypt-des3_decry.patch44
-rw-r--r--meta-oe/recipes-support/libssh/libssh/0001-tests-CMakeLists.txt-do-not-search-ssh-sshd-commands.patch36
-rw-r--r--meta-oe/recipes-support/libssh/libssh/run-ptest17
-rw-r--r--meta-oe/recipes-support/libssh/libssh_0.10.6.bb48
-rw-r--r--meta-oe/recipes-support/libssh/libssh_0.8.9.bb37
-rw-r--r--meta-oe/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch57
-rw-r--r--meta-oe/recipes-support/libstemmer/libstemmer_2.2.0.bb37
-rw-r--r--meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch2
-rw-r--r--meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch2
-rw-r--r--meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch2
-rw-r--r--meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch2
-rw-r--r--meta-oe/recipes-support/libteam/libteam_1.31.bb8
-rw-r--r--meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb1
-rw-r--r--meta-oe/recipes-support/libtinyxml2/files/run-ptest10
-rw-r--r--meta-oe/recipes-support/libtinyxml2/libtinyxml2_10.0.0.bb30
-rw-r--r--meta-oe/recipes-support/libtinyxml2/libtinyxml2_9.0.0.bb17
-rw-r--r--meta-oe/recipes-support/libtommath/libtommath_1.3.0.bb23
-rw-r--r--meta-oe/recipes-support/liburing/liburing/0001-do-not-build-examples.patch30
-rw-r--r--meta-oe/recipes-support/liburing/liburing_2.2.bb29
-rw-r--r--meta-oe/recipes-support/liburing/liburing_2.5.bb29
-rw-r--r--meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch14
-rw-r--r--meta-oe/recipes-support/libusb/libusb-compat/0002-automake-make-example-programs-installable.patch24
-rw-r--r--meta-oe/recipes-support/libusb/libusb-compat/run-ptest14
-rw-r--r--meta-oe/recipes-support/libusb/libusb-compat_0.1.7.bb41
-rw-r--r--meta-oe/recipes-support/libusb/libusb-compat_0.1.8.bb47
-rw-r--r--meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch2
-rw-r--r--meta-oe/recipes-support/libusbgx/libusbgx/0001-fix-stack-buffer-overflow-in-usbg_f_foo_attr_val-pro.patch796
-rw-r--r--meta-oe/recipes-support/libusbgx/libusbgx/0001-libusbgx-Add-interface-name-for-NCM-Feature-Descript.patch52
-rwxr-xr-xmeta-oe/recipes-support/libusbgx/libusbgx/gadget-start4
-rwxr-xr-xmeta-oe/recipes-support/libusbgx/libusbgx/gadget-stop13
-rw-r--r--meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service6
-rw-r--r--meta-oe/recipes-support/libusbgx/libusbgx_git.bb17
-rw-r--r--meta-oe/recipes-support/libutempter/libutempter/0002-Proper-macro-path-generation.patch2
-rw-r--r--meta-oe/recipes-support/links/files/ac-prog-cxx.patch2
-rw-r--r--meta-oe/recipes-support/links/links_2.27.bb11
-rw-r--r--meta-oe/recipes-support/links/links_2.29.bb11
-rw-r--r--meta-oe/recipes-support/lio-utils/lio-utils/0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch2
-rw-r--r--meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb2
-rw-r--r--meta-oe/recipes-support/lockdev/lockdev/build.patch2
-rw-r--r--meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch2
-rw-r--r--meta-oe/recipes-support/log4c/log4c/0001-Use-the-API-properly-in-the-example-format-security-.patch2
-rw-r--r--meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch2
-rw-r--r--meta-oe/recipes-support/log4cpp/files/fix-pc.patch2
-rw-r--r--meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb21
-rw-r--r--meta-oe/recipes-support/log4cpp/log4cpp_1.1.4.bb22
-rw-r--r--meta-oe/recipes-support/lvm2/files/0001-configure.ac-check-egrep.patch33
-rw-r--r--meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch2
-rw-r--r--meta-oe/recipes-support/lvm2/files/0001-include-libgen.h-for-basename.patch32
-rw-r--r--meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch27
-rw-r--r--meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch10
-rw-r--r--meta-oe/recipes-support/lvm2/libdevmapper_2.03.22.bb (renamed from meta-oe/recipes-support/lvm2/libdevmapper_2.03.16.bb)0
-rw-r--r--meta-oe/recipes-support/lvm2/lvm2.inc5
-rw-r--r--meta-oe/recipes-support/lvm2/lvm2/0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch12
-rw-r--r--meta-oe/recipes-support/lvm2/lvm2/0001-lvmdbusd-create-dirs-for-lock-file.patch29
-rw-r--r--meta-oe/recipes-support/lvm2/lvm2/tweak-for-lvmdbusd.patch55
-rw-r--r--meta-oe/recipes-support/lvm2/lvm2_2.03.16.bb95
-rw-r--r--meta-oe/recipes-support/lvm2/lvm2_2.03.22.bb110
-rw-r--r--meta-oe/recipes-support/lzop/lzop/acinclude.m4390
-rw-r--r--meta-oe/recipes-support/lzop/lzop_1.04.bb27
-rw-r--r--meta-oe/recipes-support/mailcap/mailcap_2.1.53.bb31
-rw-r--r--meta-oe/recipes-support/mailcap/mailcap_2.1.54.bb30
-rw-r--r--meta-oe/recipes-support/mcelog/mce-inject_git.bb2
-rw-r--r--meta-oe/recipes-support/mcelog/mce-test_git.bb6
-rw-r--r--meta-oe/recipes-support/mcelog/mcelog/run-ptest8
-rw-r--r--meta-oe/recipes-support/mcelog/mcelog_189.bb37
-rw-r--r--meta-oe/recipes-support/mcelog/mcelog_198.bb44
-rw-r--r--meta-oe/recipes-support/md4c/md4c_0.5.2.bb17
-rw-r--r--meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch2
-rw-r--r--meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch2
-rw-r--r--meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch2
-rw-r--r--meta-oe/recipes-support/mg/mg_20220614.bb38
-rw-r--r--meta-oe/recipes-support/mg/mg_20230501.bb38
-rw-r--r--meta-oe/recipes-support/monit/monit_5.32.0.bb56
-rw-r--r--meta-oe/recipes-support/monit/monit_5.33.0.bb56
-rw-r--r--meta-oe/recipes-support/msktutil/msktutil/0001-configure.ac-Remove-native-include-path.patch31
-rw-r--r--meta-oe/recipes-support/msktutil/msktutil_1.2.1.bb16
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0001-RH-fixup-udev-rules-for-redhat.patch76
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0001-add-explicit-dependency-on-libraries.patch40
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0001-fix-boolean-value-with-json-c-0.14.patch42
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0001-fix-bug-of-do_compile-and-do_install.patch44
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0001-libmultipath-always-use-glibc-basename.patch42
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0001-libmultipath-uevent.c-fix-error-handling-for-udev_mo.patch39
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0002-RH-Remove-the-property-blacklist-exception-builtin.patch65
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0003-RH-don-t-start-without-a-config-file.patch117
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0004-RH-use-rpm-optflags-if-present.patch55
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch653
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch95
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0007-RH-warn-on-invalid-regex-instead-of-failing.patch105
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0008-RH-reset-default-find_mutipaths-value-to-off.patch34
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-modify-create-config.mk-for-cross-co.patch40
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0010-Subject-PATCH-Always-use-devmapper.patch72
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0011-fix-bug-of-do_compile-and-do_install.patch43
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0012-add-explicit-dependency-on-libraries.patch40
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch72
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch57
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch117
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch64
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch656
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch99
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch129
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch38
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch57
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch60
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch43
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0032-libdmmp-Makefile-replace-perl-with-sed-in-install-ta.patch40
-rw-r--r--meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.4.bb122
-rw-r--r--meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.8.bb125
-rw-r--r--meta-oe/recipes-support/nano/nano_6.4.bb22
-rw-r--r--meta-oe/recipes-support/nano/nano_7.2.bb22
-rw-r--r--meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch2
-rw-r--r--meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch2
-rw-r--r--meta-oe/recipes-support/ne10/ne10_1.2.1.bb10
-rw-r--r--meta-oe/recipes-support/neon/neon/0001-Disable-installing-documentation.patch2
-rw-r--r--meta-oe/recipes-support/neon/neon_0.32.4.bb63
-rw-r--r--meta-oe/recipes-support/neon/neon_0.33.0.bb63
-rw-r--r--meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch2
-rw-r--r--meta-oe/recipes-support/nspr/nspr/0001-Fix-Wincompatible-function-pointer-types.patch39
-rw-r--r--meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch17
-rw-r--r--meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch39
-rw-r--r--meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch19
-rw-r--r--meta-oe/recipes-support/nspr/nspr_4.29.bb200
-rw-r--r--meta-oe/recipes-support/nspr/nspr_4.35.bb199
-rw-r--r--meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch14
-rw-r--r--meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch19
-rw-r--r--meta-oe/recipes-support/nss/nss_3.74.bb284
-rw-r--r--meta-oe/recipes-support/nss/nss_3.98.bb289
-rw-r--r--meta-oe/recipes-support/onig/onig/0002-build-enable-serial-tests-automake-option-for-ptest.patch2
-rwxr-xr-xmeta-oe/recipes-support/onig/onig/run-ptest2
-rw-r--r--meta-oe/recipes-support/onig/onig_6.9.8.bb34
-rw-r--r--meta-oe/recipes-support/onig/onig_6.9.9.bb34
-rw-r--r--meta-oe/recipes-support/opencl/clinfo_3.0.21.02.21.bb20
-rw-r--r--meta-oe/recipes-support/opencl/clinfo_3.0.23.01.25.bb20
-rw-r--r--meta-oe/recipes-support/openct/openct/0001-m4-Just-emit-the-first-line-of-compiler-version.patch31
-rw-r--r--meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch2
-rw-r--r--meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch2
-rw-r--r--meta-oe/recipes-support/openct/openct_0.6.20.bb3
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch36
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch2
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch2
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0008-Do-not-embed-build-directory-in-binaries.patch138
-rw-r--r--meta-oe/recipes-support/opencv/opencv_4.6.0.bb241
-rw-r--r--meta-oe/recipes-support/opencv/opencv_4.9.0.bb210
-rw-r--r--meta-oe/recipes-support/openldap/openldap/0001-configure-Pass-pthread_t-to-pthread_detach.patch32
-rw-r--r--meta-oe/recipes-support/openldap/openldap/0001-ldif-filter-fix-parallel-build-failure.patch32
-rw-r--r--meta-oe/recipes-support/openldap/openldap/0001-libraries-Makefile.in-ignore-the-mkdir-errors.patch33
-rw-r--r--meta-oe/recipes-support/openldap/openldap/0001-librewrite-include-ldap_pvt_thread.h-before-redefini.patch54
-rw-r--r--meta-oe/recipes-support/openldap/openldap_2.5.12.bb241
-rw-r--r--meta-oe/recipes-support/openldap/openldap_2.6.7.bb231
-rw-r--r--meta-oe/recipes-support/opensc/opensc_0.22.0.bb49
-rw-r--r--meta-oe/recipes-support/opensc/opensc_0.25.0.bb50
-rw-r--r--meta-oe/recipes-support/p910nd/p910nd_0.97.bb20
-rw-r--r--meta-oe/recipes-support/pcp/pcp-native_5.3.6.bb53
-rw-r--r--meta-oe/recipes-support/pcp/pcp-native_6.0.5.bb48
-rw-r--r--meta-oe/recipes-support/pcp/pcp.inc28
-rw-r--r--meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch14
-rw-r--r--meta-oe/recipes-support/pcp/pcp/0001-configure-Limit-the-header-search-to-sysroot.patch49
-rw-r--r--meta-oe/recipes-support/pcp/pcp/0001-htop-Change-dependency-order-of-header-and-sourcefil.patch36
-rw-r--r--meta-oe/recipes-support/pcp/pcp/fix_parallel_make.patch2
-rw-r--r--meta-oe/recipes-support/pcp/pcp_5.3.6.bb228
-rw-r--r--meta-oe/recipes-support/pcp/pcp_6.0.5.bb236
-rw-r--r--meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.9.8.bb57
-rw-r--r--meta-oe/recipes-support/pcsc-lite/pcsc-lite_2.0.3.bb58
-rw-r--r--meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.6.0.bb16
-rw-r--r--meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.7.1.bb25
-rw-r--r--meta-oe/recipes-support/picocom/picocom/0001-Fix-building-with-musl.patch118
-rw-r--r--meta-oe/recipes-support/picocom/picocom_git.bb11
-rw-r--r--meta-oe/recipes-support/pidgin/icyque_git.bb2
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb2
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch2
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch2
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb6
-rw-r--r--meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb2
-rw-r--r--meta-oe/recipes-support/pkcs11-provider/pkcs11-provider_0.3.bb27
-rw-r--r--meta-oe/recipes-support/pngcheck/pngcheck/0001-make-Respect-variables-from-environement.patch2
-rw-r--r--meta-oe/recipes-support/pngcheck/pngcheck/0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch2
-rw-r--r--meta-oe/recipes-support/pngcheck/pngcheck/10-pngsplit-format-strings.patch2
-rw-r--r--meta-oe/recipes-support/poco/poco/0001-Use-std-atomic-int-instead-of-std-atomic-bool.patch60
-rw-r--r--meta-oe/recipes-support/poco/poco/0001-cppignore.lnx-Ignore-PKCS12-and-testLaunch-test.patch66
-rw-r--r--meta-oe/recipes-support/poco/poco/0002-fix-build-Install-cmake-files-with-resolved-ENABLE_J.patch32
-rw-r--r--meta-oe/recipes-support/poco/poco/run-ptest20
-rw-r--r--meta-oe/recipes-support/poco/poco_1.12.2.bb106
-rw-r--r--meta-oe/recipes-support/poco/poco_1.12.5p2.bb119
-rw-r--r--meta-oe/recipes-support/poppler/poppler-data_0.4.11.bb36
-rw-r--r--meta-oe/recipes-support/poppler/poppler-data_0.4.12.bb36
-rw-r--r--meta-oe/recipes-support/poppler/poppler/0001-cmake-Do-not-use-isystem.patch192
-rw-r--r--meta-oe/recipes-support/poppler/poppler/CVE-2023-34872.patch46
-rw-r--r--meta-oe/recipes-support/poppler/poppler/jpeg-stdio.patch41
-rw-r--r--meta-oe/recipes-support/poppler/poppler_22.09.0.bb55
-rw-r--r--meta-oe/recipes-support/poppler/poppler_23.04.0.bb58
-rw-r--r--meta-oe/recipes-support/portaudio/portaudio-v19/0001-Find-jack.patch32
-rw-r--r--meta-oe/recipes-support/portaudio/portaudio-v19/0001-cmake-Use-GNUInstallDirs.patch49
-rw-r--r--meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb16
-rw-r--r--meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch2
-rw-r--r--meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch2
-rw-r--r--meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch2
-rw-r--r--meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch2
-rw-r--r--meta-oe/recipes-support/psutils/psutils_2.10.bb24
-rw-r--r--meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch40
-rw-r--r--meta-oe/recipes-support/pv/pv_1.6.20.bb3
-rw-r--r--meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch2
-rw-r--r--meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch2
-rw-r--r--meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch2
-rw-r--r--meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch2
-rw-r--r--meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb1
-rw-r--r--meta-oe/recipes-support/raptor2/files/0001-Match-reutrn-type-from-RAPTOR_ASSERT_OBJECT_POINTER_.patch47
-rw-r--r--meta-oe/recipes-support/raptor2/files/0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch34
-rw-r--r--meta-oe/recipes-support/raptor2/raptor2/0001-Remove-the-access-to-entities-checked-private-symbol.patch34
-rw-r--r--meta-oe/recipes-support/raptor2/raptor2_2.0.15.bb26
-rw-r--r--meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb24
-rw-r--r--meta-oe/recipes-support/rdfind/rdfind/0001-configure-Fix-check-for-AC_CHECK_LIB.patch25
-rw-r--r--meta-oe/recipes-support/rdfind/rdfind_1.4.1.bb17
-rw-r--r--meta-oe/recipes-support/rdfind/rdfind_1.6.0.bb13
-rw-r--r--meta-oe/recipes-support/re2/re2/run-ptest3
-rw-r--r--meta-oe/recipes-support/re2/re2_2020.11.01.bb23
-rw-r--r--meta-oe/recipes-support/re2/re2_2024.03.01.bb44
-rw-r--r--meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb1
-rw-r--r--meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb17
-rw-r--r--meta-oe/recipes-support/remmina/remmina_1.4.24.bb46
-rw-r--r--meta-oe/recipes-support/remmina/remmina_1.4.34.bb50
-rw-r--r--meta-oe/recipes-support/reptyr/reptyr_0.10.0.bb29
-rw-r--r--meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb4
-rw-r--r--meta-oe/recipes-support/rtkit/rtkit_0.13.bb23
-rw-r--r--meta-oe/recipes-support/sass/libsass_git.bb4
-rw-r--r--meta-oe/recipes-support/satyr/files/0001-py_base_stacktrace.c-include-glib.h.patch29
-rw-r--r--meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch24
-rw-r--r--meta-oe/recipes-support/satyr/satyr_0.39.bb36
-rw-r--r--meta-oe/recipes-support/satyr/satyr_0.43.bb35
-rw-r--r--meta-oe/recipes-support/sdmon/sdmon_git.bb20
-rw-r--r--meta-oe/recipes-support/serial-utils/pty-forward-native.bb3
-rw-r--r--meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch2
-rw-r--r--meta-oe/recipes-support/serial-utils/serial-forward_git.bb3
-rw-r--r--meta-oe/recipes-support/serial/serial/Findcatkin.cmake5
-rw-r--r--meta-oe/recipes-support/serial/serial_1.2.1.bb28
-rw-r--r--meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb24
-rw-r--r--meta-oe/recipes-support/sg3-utils/sg3-utils_1.48.bb22
-rw-r--r--meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-clang.patch2
-rw-r--r--meta-oe/recipes-support/sharutils/sharutils/0001-Fix-building-with-GCC-10.patch2
-rw-r--r--meta-oe/recipes-support/sharutils/sharutils/0001-configure.ac-Check-and-define-intmax_t-type.patch32
-rw-r--r--meta-oe/recipes-support/sharutils/sharutils/0002-Do-not-include-lib-md5.c-into-src-shar.c.patch2
-rw-r--r--meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch2
-rw-r--r--meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb1
-rw-r--r--meta-oe/recipes-support/smarty/smarty_4.2.1.bb26
-rw-r--r--meta-oe/recipes-support/smarty/smarty_4.4.1.bb26
-rw-r--r--meta-oe/recipes-support/span-lite/span-lite_0.10.3.bb12
-rw-r--r--meta-oe/recipes-support/span-lite/span-lite_0.11.0.bb11
-rw-r--r--meta-oe/recipes-support/spdlog/spdlog_1.10.0.bb17
-rw-r--r--meta-oe/recipes-support/spdlog/spdlog_1.13.0.bb18
-rw-r--r--meta-oe/recipes-support/spitools/spitools_git.bb2
-rw-r--r--meta-oe/recipes-support/srecord/files/0001-Disable-doxygen.patch85
-rw-r--r--meta-oe/recipes-support/srecord/files/0001-cmake-Do-not-try-to-compute-library-dependencies-dur.patch45
-rw-r--r--meta-oe/recipes-support/srecord/files/0001-cmake-respect-explicit-install-prefix.patch31
-rw-r--r--meta-oe/recipes-support/srecord/files/0001-configure-Fix-AC_CHECK_LIB-test-for-gpg-error.patch29
-rw-r--r--meta-oe/recipes-support/srecord/files/add-option-to-remove-docs.patch57
-rw-r--r--meta-oe/recipes-support/srecord/files/libtool.patch67
-rw-r--r--meta-oe/recipes-support/srecord/srecord_1.64.bb34
-rw-r--r--meta-oe/recipes-support/srecord/srecord_1.65.0.bb20
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch2
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch2
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch2
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch2
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch2
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch2
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch2
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch2
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch2
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch2
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb2
-rw-r--r--meta-oe/recipes-support/switchtec-user/switchtec-user_4.2.bb21
-rw-r--r--meta-oe/recipes-support/synergy/synergy_git.bb2
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/0001-Fix-buildpaths-warning.patch55
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/0001-macros-guard-ipv6-code-with-SYSLOG_NG_ENABLE_IPV6.patch40
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/0001-plugin.c-workaround-powerpc64le-segfaults-error.patch46
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch2
-rw-r--r--meta-oe/recipes-support/syslog-ng/syslog-ng_3.38.1.bb140
-rw-r--r--meta-oe/recipes-support/syslog-ng/syslog-ng_4.6.0.bb149
-rw-r--r--meta-oe/recipes-support/tbb/tbb/0001-CMakeLists.txt-exclude-riscv64-riscv32.patch35
-rw-r--r--meta-oe/recipes-support/tbb/tbb/0001-Disable-LTO-on-clang-riscv32.patch29
-rw-r--r--meta-oe/recipes-support/tbb/tbb/0001-Disable-use-of-_tpause-instruction.patch29
-rw-r--r--meta-oe/recipes-support/tbb/tbb/0001-Musl-linux-can-not-use-RTLD_DEEPBIND.patch33
-rw-r--r--meta-oe/recipes-support/tbb/tbb/0001-hwloc_detection.cmake-remove-cross-compiation-check.patch33
-rw-r--r--meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch33
-rw-r--r--meta-oe/recipes-support/tbb/tbb_2021.11.0.bb62
-rw-r--r--meta-oe/recipes-support/tbb/tbb_2021.5.0.bb54
-rw-r--r--meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch33
-rw-r--r--meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch34
-rw-r--r--meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-crates.inc214
-rw-r--r--meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-git-crates.inc6
-rw-r--r--meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.9.0.bb21
-rw-r--r--meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.12.bb50
-rw-r--r--meta-oe/recipes-support/tio/tio_2.0.bb19
-rw-r--r--meta-oe/recipes-support/tio/tio_2.7.bb19
-rw-r--r--meta-oe/recipes-support/toscoterm/toscoterm_git.bb29
-rw-r--r--meta-oe/recipes-support/tree/tree_2.0.4.bb20
-rw-r--r--meta-oe/recipes-support/tree/tree_2.1.1.bb20
-rw-r--r--meta-oe/recipes-support/uchardet/uchardet_0.0.7.bb9
-rw-r--r--meta-oe/recipes-support/uchardet/uchardet_0.0.8.bb8
-rw-r--r--meta-oe/recipes-support/udisks/udisks2/0001-Makefile.am-Dont-include-buildpath.patch47
-rw-r--r--meta-oe/recipes-support/udisks/udisks2_2.10.1.bb63
-rw-r--r--meta-oe/recipes-support/udisks/udisks2_2.9.4.bb53
-rw-r--r--meta-oe/recipes-support/uhubctl/uhubctl_2.4.0.bb21
-rw-r--r--meta-oe/recipes-support/uhubctl/uhubctl_2.5.0.bb21
-rw-r--r--meta-oe/recipes-support/uim/uim/uim-module-manager.patch2
-rw-r--r--meta-oe/recipes-support/unicode-ucd/unicode-ucd_14.0.0.bb6
-rw-r--r--meta-oe/recipes-support/unixodbc/files/0001-exe-Makefile.am-add-CROSS_LAUNCHER-to-run-odbc_confi.patch54
-rw-r--r--meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb28
-rw-r--r--meta-oe/recipes-support/unixodbc/unixodbc_2.3.12.bb48
-rw-r--r--meta-oe/recipes-support/uriparser/uriparser_0.9.6.bb16
-rw-r--r--meta-oe/recipes-support/uriparser/uriparser_0.9.7.bb16
-rw-r--r--meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.0.bb27
-rw-r--r--meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.1.bb31
-rw-r--r--meta-oe/recipes-support/usbids/usbids_2023.01.16.bb18
-rw-r--r--meta-oe/recipes-support/utouch/utouch-evemu_git.bb2
-rw-r--r--meta-oe/recipes-support/utouch/utouch-frame/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch2
-rw-r--r--meta-oe/recipes-support/utouch/utouch-frame_git.bb2
-rw-r--r--meta-oe/recipes-support/utouch/utouch-mtview_git.bb2
-rw-r--r--meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.38.bb91
-rw-r--r--meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.14.bb91
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch29
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch35
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3/2922af379dc70b4b1a63b01d67179eb431f03ac4.patch36
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch65
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3/no-musttail-arm.patch30
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch30
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.0.bb189
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/1024.patch2
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch2
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/857.patch2
-rw-r--r--meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.5.bb19
-rw-r--r--meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-meson.build-add-a-hack-for-crosscompile.patch28
-rw-r--r--meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.18.1.bb49
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch10
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch13
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/ensure-search-path-non-host.patch17
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/fix-ltmain.sh.patch6
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/makefile-ptest.patch12
-rwxr-xr-xmeta-oe/recipes-support/xmlsec1/xmlsec1/run-ptest4
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/xmlsec1-examples-allow-build-in-separate-dir.patch12
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.34.bb67
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1_1.3.3.bb67
-rw-r--r--meta-oe/recipes-support/xmlstarlet/files/0001-Fix-hash_key_put-signature.patch33
-rw-r--r--meta-oe/recipes-support/xmlstarlet/files/0001-Make-xmlError-struct-constant.patch45
-rw-r--r--meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch2
-rw-r--r--meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb5
-rw-r--r--meta-oe/recipes-support/xrdp/xrdp/0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch2
-rw-r--r--meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch2
-rw-r--r--meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.7.0.bb17
-rw-r--r--meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.8.0.bb17
-rw-r--r--meta-oe/recipes-support/zbar/zbar/0001-qt-Create-subdir-in-Makefile.patch2
-rw-r--r--meta-oe/recipes-support/zbar/zbar/0002-zbarcam-Create-subdir-in-Makefile.patch2
-rw-r--r--meta-oe/recipes-support/zbar/zbar_git.bb2
-rw-r--r--meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb22
-rw-r--r--meta-oe/recipes-support/zchunk/zchunk_1.4.0.bb23
-rw-r--r--meta-oe/recipes-test/bats/bats_1.11.0.bb34
-rw-r--r--meta-oe/recipes-test/bats/bats_1.8.0.bb33
-rw-r--r--meta-oe/recipes-test/catch2/catch2_2.13.10.bb21
-rw-r--r--meta-oe/recipes-test/catch2/catch2_2.13.7.bb22
-rw-r--r--meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb43
-rw-r--r--meta-oe/recipes-test/cmocka/cmocka_1.1.7.bb43
-rw-r--r--meta-oe/recipes-test/cmocka/files/0001-include-Check-for-previous-declaration-of-uintptr_t.patch43
-rw-r--r--meta-oe/recipes-test/cpputest/cpputest_4.0.bb6
-rw-r--r--meta-oe/recipes-test/cukinia/cukinia_0.6.0.bb19
-rw-r--r--meta-oe/recipes-test/cukinia/cukinia_0.6.2.bb21
-rw-r--r--meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb2
-rw-r--r--meta-oe/recipes-test/evtest/evtest_1.35.bb1
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch2
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0001-Makefile.am-Add-missing-link-with-zlib.patch43
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0001-libfwtsiasl-Disable-parallel-builds-of-lex-bison-fil.patch68
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0003-Remove-Werror-from-build.patch8
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch2
-rw-r--r--meta-oe/recipes-test/fwts/fwts_22.01.00.bb34
-rw-r--r--meta-oe/recipes-test/fwts/fwts_22.11.00.bb36
-rw-r--r--meta-oe/recipes-test/googletest/googletest_1.14.0.bb37
-rw-r--r--meta-oe/recipes-test/googletest/googletest_git.bb30
-rw-r--r--meta-oe/recipes-test/libfaketime/libfaketime/0001-Makefile-Detect-compiler-in-makefile.patch45
-rw-r--r--meta-oe/recipes-test/libfaketime/libfaketime_0.9.10.bb28
-rw-r--r--meta-oe/recipes-test/linux-serial-test/linux-serial-test_git.bb13
-rw-r--r--meta-oe/recipes-test/shunit2/shunit2_2.1.8.bb13
-rw-r--r--meta-oe/recipes-test/syzkaller/syzkaller/0001-executor-Include-missing-linux-falloc.h.patch37
-rw-r--r--meta-oe/recipes-test/syzkaller/syzkaller/0001-sys-targets-targets.go-allow-users-to-override-hardc.patch62
-rw-r--r--meta-oe/recipes-test/syzkaller/syzkaller_git.bb82
-rw-r--r--meta-oe/recipes-test/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch2
-rw-r--r--meta-oe/recipes-test/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch2
-rw-r--r--meta-perl/README.md (renamed from meta-perl/README)0
-rw-r--r--meta-perl/conf/include/ptest-packagelists-meta-perl.inc52
-rw-r--r--meta-perl/conf/layer.conf2
-rw-r--r--meta-perl/files/static-group-meta-perl1
-rw-r--r--meta-perl/files/static-passwd-meta-perl1
-rw-r--r--meta-perl/recipes-core/images/meta-perl-image-all.bb5
-rw-r--r--meta-perl/recipes-core/images/meta-perl-image-ptest-all.bb25
-rw-r--r--meta-perl/recipes-core/images/meta-perl-image-ptest-fast.bb6
-rw-r--r--meta-perl/recipes-core/images/meta-perl-image-ptest.bb40
-rw-r--r--meta-perl/recipes-core/packagegroups/packagegroup-meta-perl.bb (renamed from meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb)11
-rw-r--r--meta-perl/recipes-extended/logcheck/logcheck_1.3.24.bb77
-rw-r--r--meta-perl/recipes-extended/logcheck/logcheck_1.4.3.bb77
-rw-r--r--meta-perl/recipes-perl/images/meta-perl-base.bb7
-rw-r--r--meta-perl/recipes-perl/images/meta-perl-image.bb5
-rw-r--r--meta-perl/recipes-perl/images/meta-perl-ptest-image.bb9
-rw-r--r--meta-perl/recipes-perl/libcgi/libcgi-perl_4.54.bb50
-rw-r--r--meta-perl/recipes-perl/libcgi/libcgi-perl_4.60.bb50
-rw-r--r--meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.13.bb28
-rw-r--r--meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.15.bb27
-rw-r--r--meta-perl/recipes-perl/libcompress/libcompress-raw-bzip2-perl_2.206.bb28
-rw-r--r--meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.206.bb32
-rw-r--r--meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.206.bb28
-rw-r--r--meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.28.bb20
-rw-r--r--meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.30.bb20
-rw-r--r--meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.319.bb2
-rw-r--r--meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.70.bb55
-rw-r--r--meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.74.bb55
-rw-r--r--meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb21
-rw-r--r--meta-perl/recipes-perl/libencode/libencode-perl_3.19.bb105
-rw-r--r--meta-perl/recipes-perl/liberror/liberror-perl_0.17029.bb48
-rw-r--r--meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.26.bb36
-rw-r--r--meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.27.bb36
-rw-r--r--meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.013.bb35
-rw-r--r--meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.014.bb35
-rw-r--r--meta-perl/recipes-perl/libio/compress-raw-bzip2-perl_2.096.bb32
-rw-r--r--meta-perl/recipes-perl/libio/compress-raw-lzma-perl_2.096.bb32
-rw-r--r--meta-perl/recipes-perl/libio/compress-raw-zlib-perl_2.096.bb31
-rw-r--r--meta-perl/recipes-perl/libio/files/run-ptest16
-rw-r--r--meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.096.bb24
-rw-r--r--meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.206.bb24
-rw-r--r--meta-perl/recipes-perl/libio/libio-compress-perl_2.096.bb24
-rw-r--r--meta-perl/recipes-perl/libio/libio-compress-perl_2.206.bb41
-rw-r--r--meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.075.bb46
-rw-r--r--meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.085.bb54
-rw-r--r--meta-perl/recipes-perl/libmime/libmime-types-perl_2.17.bb42
-rw-r--r--meta-perl/recipes-perl/libmime/libmime-types-perl_2.26.bb46
-rw-r--r--meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb54
-rw-r--r--meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.047.bb65
-rw-r--r--meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb2
-rw-r--r--meta-perl/recipes-perl/libmoo/libmoo-perl_2.005004.bb43
-rw-r--r--meta-perl/recipes-perl/libmoo/libmoo-perl_2.005005.bb43
-rw-r--r--meta-perl/recipes-perl/libmozilla/libmozilla-ca-perl_20221114.bb22
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-dns-perl_1.34.bb65
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-dns-perl_1.40.bb64
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-idn-encode/Net-IDN-Encode-2.500-use_uvchr_to_utf8_flags_instead_of_uvuni_to_utf8_flags.patch36
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-idn-encode_2.500.bb25
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.68.bb2
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch4
-rw-r--r--meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb1
-rw-r--r--meta-perl/recipes-perl/libtest/libtest-deep-perl_1.130.bb56
-rw-r--r--meta-perl/recipes-perl/libtest/libtest-deep-perl_1.204.bb55
-rw-r--r--meta-perl/recipes-perl/libtest/libtest-harness-perl_3.44.bb119
-rw-r--r--meta-perl/recipes-perl/libtest/libtest-harness-perl_3.48.bb119
-rw-r--r--meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.031.bb28
-rw-r--r--meta-perl/recipes-perl/libtext/libtext-diff-perl/run-ptest19
-rw-r--r--meta-perl/recipes-perl/libtext/libtext-diff-perl_1.41.bb11
-rw-r--r--meta-perl/recipes-perl/libxml/libxml-libxml-perl/0001-libxml-mm-Fix-function-prototypes-in-function-pointe.patch51
-rw-r--r--meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0134.bb1
-rw-r--r--meta-perl/recipes-perl/po4a/po4a_0.49.bb33
-rw-r--r--meta-python/README.md (renamed from meta-python/README)0
-rw-r--r--meta-python/classes/distutils3-base.bbclass8
-rw-r--r--meta-python/classes/distutils3.bbclass8
-rw-r--r--meta-python/conf/include/ptest-packagelists-meta-python.inc108
-rw-r--r--meta-python/conf/layer.conf2
-rw-r--r--meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb7
-rw-r--r--meta-python/recipes-connectivity/python-h2/python3-h2_4.1.0.bb2
-rw-r--r--meta-python/recipes-connectivity/python-hpack/python3-hpack_4.0.0.bb2
-rw-r--r--meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.82.bb6
-rw-r--r--meta-python/recipes-connectivity/python-thrift/python3-thrift_0.16.0.bb19
-rw-r--r--meta-python/recipes-connectivity/python-thrift/python3-thrift_0.20.0.bb20
-rw-r--r--meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb7
-rw-r--r--meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/remove_duplicate_install.patch10
-rw-r--r--meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/telepathy-python_fix_for_automake_1.12.patch2
-rw-r--r--meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb13
-rw-r--r--meta-python/recipes-core/images/meta-python-image-all.bb5
-rw-r--r--meta-python/recipes-core/images/meta-python-image-base.bb7
-rw-r--r--meta-python/recipes-core/images/meta-python-image-ptest-all.bb25
-rw-r--r--meta-python/recipes-core/images/meta-python-image-ptest-fast.bb6
-rw-r--r--meta-python/recipes-core/images/meta-python-image-ptest.bb44
-rw-r--r--meta-python/recipes-core/images/meta-python-image.bb5
-rw-r--r--meta-python/recipes-core/images/meta-python-ptest-image.bb5
-rw-r--r--meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb19
-rw-r--r--meta-python/recipes-devtools/gyp/gyp/0001-Fix-for-Python-3.10-compatibility.patch34
-rw-r--r--meta-python/recipes-devtools/gyp/gyp_git.bb5
-rw-r--r--meta-python/recipes-devtools/python-jsonref/files/migrate-to-pdm-backend.patch28
-rw-r--r--meta-python/recipes-devtools/python-jsonref/python3-jsonref_0.2.bb11
-rw-r--r--meta-python/recipes-devtools/python-jsonref/python3-jsonref_1.1.0.bb23
-rw-r--r--meta-python/recipes-devtools/python/files/0001-versioneer.py-do-not-use-SafeConfigParser.patch29
-rw-r--r--meta-python/recipes-devtools/python/pamela_1.0.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/pamela_1.1.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/pyrtm_0.4.2.bb9
-rw-r--r--meta-python/recipes-devtools/python/python-daemon/0001-Workaround-for-issue-2-1.patch31
-rw-r--r--meta-python/recipes-devtools/python/python-django-south.inc2
-rw-r--r--meta-python/recipes-devtools/python/python-django.inc31
-rw-r--r--meta-python/recipes-devtools/python/python-flask-bootstrap.inc6
-rw-r--r--meta-python/recipes-devtools/python/python-flask-script.inc12
-rw-r--r--meta-python/recipes-devtools/python/python-flask-sijax.inc6
-rw-r--r--meta-python/recipes-devtools/python/python-flask-xstatic.inc4
-rw-r--r--meta-python/recipes-devtools/python/python-flask-xstatic/remove-pip-requires.patch2
-rw-r--r--meta-python/recipes-devtools/python/python-idna-ssl.inc10
-rw-r--r--meta-python/recipes-devtools/python/python-imaging/0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch55
-rw-r--r--meta-python/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch65
-rw-r--r--meta-python/recipes-devtools/python/python-imaging/fix-freetype-includes.patch30
-rw-r--r--meta-python/recipes-devtools/python/python-imaging/python-imaging-CVE-2016-2533.patch38
-rw-r--r--meta-python/recipes-devtools/python/python-imaging/remove-host-libdir.patch25
-rw-r--r--meta-python/recipes-devtools/python/python-libusb1_3.1.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python-mccabe/0001-python-mccabe-remove-unnecessary-setup_requires-pyte.patch33
-rw-r--r--meta-python/recipes-devtools/python/python-numeric/0001-it-tries-to-define-this-function-differently-than-it.patch30
-rw-r--r--meta-python/recipes-devtools/python/python-pygpgme/0001-reflect-2.1-reporting-for-key-imports.patch90
-rw-r--r--meta-python/recipes-devtools/python/python-pygpgme/0002-passphrase_cb-is-deprecated.patch52
-rw-r--r--meta-python/recipes-devtools/python/python-pygpgme/0003-handle-generic-error-when-no-passphrase-callback-pre.patch30
-rw-r--r--meta-python/recipes-devtools/python/python-pygpgme/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch15
-rw-r--r--meta-python/recipes-devtools/python/python-systemd/0002-setup.py-switch-from-distutils-to-setuptools.patch30
-rw-r--r--meta-python/recipes-devtools/python/python-systemd/endian.patch14
-rw-r--r--meta-python/recipes-devtools/python/python3-a2wsgi/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-a2wsgi_1.10.4.bb33
-rw-r--r--meta-python/recipes-devtools/python/python3-absl_1.2.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-absl_2.1.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-aenum_3.1.11.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-aenum_3.1.15.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-aiodns_3.0.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-aiodns_3.1.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-aiofiles_22.1.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-aiofiles_23.2.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-aiohappyeyeballs_2.3.2.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.6.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-aiohttp_3.8.3.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-aiohue_4.5.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-aiohue_4.7.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-aioredis_2.0.1.bb16
-rwxr-xr-xmeta-python/recipes-devtools/python/python3-aioserial_1.3.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-aiosignal_1.2.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-aiosignal_1.3.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-alembic_1.13.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-alembic_1.8.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-aniso8601_9.0.1.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-annotated-types_0.6.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-ansi2html_1.8.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-ansi2html_1.9.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-ansicolors/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-ansicolors_1.1.8.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-antlr4-runtime_4.11.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-anyio_4.3.0.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-anyjson/0001-setup.py-Do-not-use-2to3.patch29
-rw-r--r--meta-python/recipes-devtools/python/python3-anyjson/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-apiflask_2.1.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-apispec_6.4.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-appdirs/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-appdirs_1.4.4.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-argcomplete_2.0.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-argcomplete_3.2.3.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-argh_0.26.2.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-argh_0.31.2.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-arpeggio_2.0.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-arpeggio_2.0.2.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-arrow/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-arrow_1.3.0.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-asgiref/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-asgiref_3.5.2.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-asgiref_3.8.1.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-aspectlib/0001-Remove-tornado-6-test-constraint.-Ref-15.patch45
-rw-r--r--meta-python/recipes-devtools/python/python3-aspectlib/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-aspectlib_1.5.2.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-aspectlib_2.0.0.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-astor_0.8.1.bb1
-rw-r--r--meta-python/recipes-devtools/python/python3-astroid_2.12.10.bb32
-rw-r--r--meta-python/recipes-devtools/python/python3-astroid_3.1.0.bb37
-rw-r--r--meta-python/recipes-devtools/python/python3-asttokens_2.0.8.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-asttokens_2.4.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-async-timeout_4.0.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-async-timeout_4.0.3.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-asyncinotify_2.0.5.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-asyncinotify_4.0.6.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-asyncio-throttle_1.0.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-autobahn_22.7.1.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-autobahn_23.6.2.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-autoflake_2.2.1.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-automat/0001-setup.py-remove-the-dependency-on-m2r.patch53
-rw-r--r--meta-python/recipes-devtools/python/python3-automat_20.2.0.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-automat_22.10.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-awesomeversion_22.9.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-awesomeversion_24.2.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.5.2.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb1
-rw-r--r--meta-python/recipes-devtools/python/python3-backports-functools-lru-cache/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-bandit_1.7.4.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-bandit_1.7.8.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-beautifulsoup4_4.11.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-beautifulsoup4_4.12.3.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-behave_1.2.6.bb6
-rw-r--r--meta-python/recipes-devtools/python/python3-betamax/0001-Drop-ptests-fixtures-and-recorde_modes.patch343
-rw-r--r--meta-python/recipes-devtools/python/python3-betamax/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-betamax_0.8.1.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-betamax_0.9.0.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-bidict_0.22.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-bidict_0.23.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-binwalk_2.3.4.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-bitarray_2.6.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-bitarray_2.9.2.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-bitstring_3.1.9.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-bitstring_4.1.4.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-bitstruct_8.15.1.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-bitstruct_8.19.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-bleak/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-bleak_0.21.1.bb33
-rw-r--r--meta-python/recipes-devtools/python/python3-blinker/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-blinker_1.5.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-blinker_1.7.0.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-brotli_1.1.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-cachecontrol_0.12.12.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-cachecontrol_0.14.0.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-cachetools/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-cachetools_5.2.0.bb32
-rw-r--r--meta-python/recipes-devtools/python/python3-cachetools_5.3.3.bb33
-rw-r--r--meta-python/recipes-devtools/python/python3-can_4.0.0.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-can_4.2.2.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-cantools_37.2.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-cantools_39.4.4.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-cassandra-driver_3.25.0.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.1.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-casttube_0.2.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-cbor2/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-cbor2_5.4.3.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-cbor2_5.6.2.bb33
-rw-r--r--meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-cerberus_1.3.4.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-cerberus_1.3.5.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-charset-normalizer_2.1.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-charset-normalizer_3.3.2.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-cheetah_3.2.6.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-cheetah_3.2.6.post1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-classes_0.4.1.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-click-repl_0.2.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-click-repl_0.3.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-click-spinner/0001-Update-Versioneer-to-0.22.patch2489
-rw-r--r--meta-python/recipes-devtools/python/python3-click-spinner_0.1.10.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-click/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-click_8.1.3.bb41
-rw-r--r--meta-python/recipes-devtools/python/python3-cloudpickle_3.0.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-cmake/CMakeLists.txt11
-rw-r--r--meta-python/recipes-devtools/python/python3-cmake/run-cmake-from-path.patch13
-rw-r--r--meta-python/recipes-devtools/python/python3-cmake_3.28.3.bb37
-rw-r--r--meta-python/recipes-devtools/python/python3-cmd2_2.4.2.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-cmd2_2.4.3.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-colorama_0.4.5.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-colorama_0.4.6.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-colorclass_2.2.2.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-colorlog_6.7.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-colorlog_6.8.2.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-colorzero_2.0.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-configargparse_1.5.3.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-configargparse_1.7.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-configobj/0001-Switch-from-using-distutils-to-setuptools.patch28
-rw-r--r--meta-python/recipes-devtools/python/python3-configobj_5.0.6.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-configobj_5.0.8.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-configshell-fb_1.1.30.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-constantly_23.10.4.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-covdefaults/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-covdefaults_2.3.0.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-coverage_6.4.4.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-coverage_7.4.1.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-cppy_1.2.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-crc32c_2.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-crcmod_1.7.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-croniter_1.3.7.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-croniter_2.0.3.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-custom-inherit_2.3.1.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-cvxopt_1.3.2.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-cycler_0.11.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-cycler_0.12.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-cytoolz_0.12.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-cytoolz_0.12.3.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-daemon_3.0.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-dateparser_1.1.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-dateparser_1.2.0.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-dbus-fast_2.21.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-dbus-next_0.2.3.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-dbussy_1.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-decorator_5.1.1.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-decouple_3.6.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-decouple_3.8.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-defusedxml_0.7.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-deprecated_1.2.13.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-deprecated_1.2.14.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-dill_0.3.5.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-dill_0.3.8.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-dirty-equals_0.7.1.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-diskcache_5.4.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-diskcache_5.6.3.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-distlib_0.3.8.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-distro_1.7.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-distro_1.9.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-django_4.0.2.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-django_4.1.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-django_4.2.11.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-django_5.0.3.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-djangorestframework_3.14.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-djangorestframework_3.15.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-dnspython/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-dnspython_2.2.1.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-dnspython_2.6.1.bb36
-rw-r--r--meta-python/recipes-devtools/python/python3-dominate/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-dominate_2.7.0.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-dominate_2.9.1.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-ecdsa/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-ecdsa_0.19.0.bb36
-rw-r--r--meta-python/recipes-devtools/python/python3-editor_1.0.4.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-elementpath_3.0.2.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-elementpath_4.4.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-email-validator_1.3.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-email-validator_2.1.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-engineio_4.3.4.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-engineio_4.9.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-et-xmlfile_1.1.0.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-abi_3.0.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-abi_5.0.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-account_0.11.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-account_0.7.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-hash_0.5.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-hash_0.6.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-keyfile/0001-setup-don-t-use-setuptools-markdown.patch36
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-keyfile_0.7.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-keys_0.4.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-keys_0.5.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-rlp_0.3.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-rlp_2.1.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-typing_3.2.0.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-typing_4.0.0.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch37
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-utils_2.0.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-utils_3.0.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-evdev_1.6.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-evdev_1.6.1.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-eventlet_0.33.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-eventlet_0.36.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-execnet/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-execnet_2.0.2.bb32
-rw-r--r--meta-python/recipes-devtools/python/python3-executing_2.0.1.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-expandvars_0.12.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-fasteners_0.18.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-fasteners_0.19.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-fastjsonschema_2.16.2.bb39
-rw-r--r--meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb41
-rw-r--r--meta-python/recipes-devtools/python/python3-fastnumbers_3.2.1.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-fastnumbers_5.1.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-file-magic_0.4.1.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-filelock_3.13.3.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-babel_2.0.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-babel_4.0.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-cors_4.0.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-httpauth_4.8.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-jsonpify_1.5.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-jwt-extended_4.6.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-jwt_0.3.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-login_0.6.2.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-login_0.6.3.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-mail_0.9.1.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-migrate_3.1.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-migrate_4.0.7.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-nav_0.6.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-restful_0.3.10.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-restful_0.3.9.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-restx_1.3.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-script_2.0.6.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-socketio_5.3.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-socketio_5.3.6.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.5.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-sqlalchemy_3.1.1.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-uploads_0.2.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-user_0.6.19.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-wtf_1.0.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-wtf_1.2.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-flask_2.2.2.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-flask_3.0.2.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-flexcache/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-flexcache_0.3.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-flexparser/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-flexparser_0.3.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-freezegun/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-freezegun_1.4.0.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-frozenlist_1.3.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-frozenlist_1.4.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-future_0.18.2.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-future_0.18.3.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-gast_0.5.3.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-gast_0.5.4.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-gcovr_5.2.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-gcovr_7.2.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-geojson/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-geojson_2.5.0.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-geojson_3.1.0.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-gevent/0001-_setuputils.py-Do-not-add-sys_inc_dir.patch38
-rw-r--r--meta-python/recipes-devtools/python/python3-gevent_21.12.0.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-gevent_24.2.1.bb37
-rw-r--r--meta-python/recipes-devtools/python/python3-git-pw_2.6.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-gmpy2/0001-src-fix-python-3.12-builds.patch263
-rw-r--r--meta-python/recipes-devtools/python/python3-gmpy2_2.1.2.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-gmqtt_0.6.11.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-gmqtt_0.6.14.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-gnupg_0.5.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-gnupg_0.5.2.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-google-api-core_2.10.1.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-google-api-core_2.18.0.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-google-api-python-client_2.124.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-google-api-python-client_2.62.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-google-auth-oauthlib/run-ptest4
-rw-r--r--meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-google-auth/run-ptest4
-rw-r--r--meta-python/recipes-devtools/python/python3-google-auth_2.11.1.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-google-auth_2.29.0.bb41
-rw-r--r--meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.56.4.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.63.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-gpiod/run-ptest15
-rw-r--r--meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb46
-rw-r--r--meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-graphviz_0.20.3.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-greenlet_1.1.3.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-greenlet_3.0.3.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-greenstalk_2.0.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-greenstalk_2.0.2.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio-tools/0001-protobuf-Disable-musttail-attribute-on-mips.patch12
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio-tools/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch25
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio-tools_1.49.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/0001-Include-missing-cstdint-header.patch30
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch79
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch24
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch53
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/boring_ssl.patch50
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/mips_bigendian.patch15
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/ppc-boringssl-support.patch17
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio_1.49.1.bb47
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio_1.62.1.bb45
-rw-r--r--meta-python/recipes-devtools/python/python3-gunicorn/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-gunicorn_20.1.0.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-gunicorn_21.2.0.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-h11_0.14.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch796
-rw-r--r--meta-python/recipes-devtools/python/python3-h5py/0001-fix-wrong-file-driver-version.patch53
-rw-r--r--meta-python/recipes-devtools/python/python3-h5py/0001-setup.py-Fix-numpy-version.patch28
-rw-r--r--meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb40
-rw-r--r--meta-python/recipes-devtools/python/python3-h5py_3.7.0.bb32
-rw-r--r--meta-python/recipes-devtools/python/python3-haversine_2.7.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-haversine_2.8.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-hexbytes_0.3.0.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-hexbytes_1.0.0.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-html2text/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-html2text_2020.1.16.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-html5lib_1.1.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-httpcore_1.0.3.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-httplib2_0.20.4.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-httplib2_0.22.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-httptools/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-httptools_0.6.1.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-httpx_0.27.0.bb48
-rw-r--r--meta-python/recipes-devtools/python/python3-huey_2.4.3.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-huey_2.5.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-humanfriendly_10.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-humanize_4.4.0.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-humanize_4.9.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-hyperlink_21.0.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-icecream_2.1.3.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-icu/0001-Fix-host-contamination-of-include-files.patch13
-rw-r--r--meta-python/recipes-devtools/python/python3-icu_2.12.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-icu_2.8.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-idna-ssl_1.1.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-ifaddr_0.2.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-imageio_2.22.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-imageio_2.34.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-imgtool_1.9.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-imgtool_2.0.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-incremental_21.3.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-incremental_22.10.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-inflate64_1.0.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-inflection/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-inflection_0.5.1.bb7
-rw-r--r--meta-python/recipes-devtools/python/python3-inotify/new-test-inotify.patch620
-rw-r--r--meta-python/recipes-devtools/python/python3-inotify/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-inotify_0.2.10.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-inotify_git.bb33
-rw-r--r--meta-python/recipes-devtools/python/python3-intervals/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-invoke_2.2.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-iperf_0.1.11.bb7
-rw-r--r--meta-python/recipes-devtools/python/python3-ipy/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-ipy_1.01.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-ipython-genutils_0.2.0.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-ipython_8.2.0.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-ipython_8.22.2.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-iso3166/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-iso3166_2.1.1.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-isodate_0.6.1.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-isort_5.10.1.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-isort_5.13.2.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-itsdangerous_2.1.2.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-janus_1.0.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-javaobj-py3_0.4.3.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-jdatetime_4.1.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-jdatetime_5.0.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-jdcal/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-jdcal_1.4.1.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-jedi_0.18.1.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-jedi_0.19.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-joblib_1.2.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-joblib_1.3.2.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-jsbeautifier_1.15.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-jsmin/7a75d76c2d6bfb917f30ced8f5c0a9a4157f7819.patch82
-rw-r--r--meta-python/recipes-devtools/python/python3-jsmin/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-jsmin_3.0.1.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-jsonpatch_1.32.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-jsonpatch_1.33.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-jsonpath-rw_1.4.0.bb7
-rw-r--r--meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.2.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.3.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-jstyleson_0.0.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-kconfiglib_14.1.0.bb6
-rw-r--r--meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-kivy/0001-add-support-for-glesv2.patch21
-rw-r--r--meta-python/recipes-devtools/python/python3-kivy_2.1.0..bb74
-rw-r--r--meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb72
-rw-r--r--meta-python/recipes-devtools/python/python3-kiwisolver_1.4.4.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-kiwisolver_1.4.5.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-langtable_0.0.60.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-langtable_0.0.65.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.10.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.7.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-lazy_1.6.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-libevdev_0.11.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-license-expression/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-license-expression_30.0.0.bb36
-rw-r--r--meta-python/recipes-devtools/python/python3-linux-procfs_0.7.3.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-lockfile_0.12.2.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-lorem/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-lorem_0.1.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb1
-rw-r--r--meta-python/recipes-devtools/python/python3-lru-dict_1.1.8.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-lru-dict_1.3.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-luma-core_2.3.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-luma-core_2.4.2.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-luma-oled_3.13.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-luma-oled_3.8.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-lz4/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-lz4_4.0.2.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-lz4_4.3.3.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch2
-rw-r--r--meta-python/recipes-devtools/python/python3-m2crypto/avoid-host-contamination.patch2
-rw-r--r--meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb47
-rw-r--r--meta-python/recipes-devtools/python/python3-m2crypto_0.40.1.bb51
-rw-r--r--meta-python/recipes-devtools/python/python3-marshmallow/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-marshmallow_3.18.0.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb38
-rw-r--r--meta-python/recipes-devtools/python/python3-matplotlib-inline_0.1.2.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-matplotlib-inline_0.1.6.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch34
-rw-r--r--meta-python/recipes-devtools/python/python3-matplotlib_3.5.3.bb66
-rw-r--r--meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb70
-rw-r--r--meta-python/recipes-devtools/python/python3-mccabe_0.7.0.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-meld3_2.0.1.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-mock_4.0.3.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-mock_5.1.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-monotonic_1.6.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-moteus/0001-lib-python-remove-self-import-from-setup.py.patch32
-rw-r--r--meta-python/recipes-devtools/python/python3-moteus_0.3.67.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-mpmath_1.2.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-mpmath_1.3.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-msgpack/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-msgpack_1.0.4.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-msgpack_1.0.7.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-msm_0.8.8.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-multidict/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-multidict_6.0.2.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-multidict_6.0.5.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-multivolumefile_0.2.3.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-mypy-extensions_0.4.3.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-mypy-extensions_1.0.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-mypy_0.971.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-mypy_1.9.0.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-natsort_8.2.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-natsort_8.4.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-netaddr/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-netaddr_0.8.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-netaddr_1.2.1.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-networkx_2.8.6.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-networkx_3.1.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-ninja-syntax_1.7.2.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-ninja/CMakeLists.txt9
-rw-r--r--meta-python/recipes-devtools/python/python3-ninja/no-scikit-build.patch31
-rw-r--r--meta-python/recipes-devtools/python/python3-ninja/run-ninja-from-path.patch44
-rw-r--r--meta-python/recipes-devtools/python/python3-ninja_1.11.1.1.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-nmap_1.5.4.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-nmap_1.6.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-nocasedict_1.0.4.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-nocasedict_2.0.1.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-nocaselist_1.0.6.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-nocaselist_2.0.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-oauthlib_3.2.1.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-oauthlib_3.2.2.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-obd_0.7.1.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-obd_0.7.2.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-objectpath_0.6.1.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-olefile_0.47.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-oletools_0.60.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-openpyxl_3.0.10.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-openpyxl_3.1.2.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-ordered-set/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-ordered-set_4.1.0.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-padaos_0.1.10.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-padatious_0.4.8.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb33
-rw-r--r--meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb37
-rw-r--r--meta-python/recipes-devtools/python/python3-pako_0.3.1.bb7
-rw-r--r--meta-python/recipes-devtools/python/python3-pandas_1.5.0.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb38
-rw-r--r--meta-python/recipes-devtools/python/python3-parallax_1.0.6.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-paramiko_2.11.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-paramiko_3.4.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-parse-type/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-parse-type_0.5.2.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-parse-type_0.6.2.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-parse/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-parse_1.19.0.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-parse_1.20.1.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-parso_0.8.3.bb7
-rw-r--r--meta-python/recipes-devtools/python/python3-passlib_1.7.4.bb6
-rw-r--r--meta-python/recipes-devtools/python/python3-pastedeploy_2.1.1.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-pastedeploy_3.1.0.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-path/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-path_16.10.0.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-path_16.5.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-pcodedmp_1.2.6.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-pdm-backend_2.1.8.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-pdm_2.13.2.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-pep8_1.7.1.bb6
-rw-r--r--meta-python/recipes-devtools/python/python3-periphery_2.3.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-periphery_2.4.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-petact_0.1.2.bb6
-rw-r--r--meta-python/recipes-devtools/python/python3-pexpect_4.8.0.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-pexpect_4.9.0.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-pickleshare_0.7.5.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-pid_3.0.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pika_1.3.0.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-pika_1.3.2.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch40
-rw-r--r--meta-python/recipes-devtools/python/python3-pillow/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pillow_10.3.0.bb72
-rw-r--r--meta-python/recipes-devtools/python/python3-pillow_9.2.0.bb42
-rw-r--r--meta-python/recipes-devtools/python/python3-pint_0.19.2.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-pint_0.23.bb41
-rw-r--r--meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-platformdirs/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-platformdirs_4.2.0.bb32
-rw-r--r--meta-python/recipes-devtools/python/python3-pocketsphinx/0001-cython-Use-cythyon3-in-cmake-check.patch29
-rw-r--r--meta-python/recipes-devtools/python/python3-pocketsphinx_0.1.15.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-pocketsphinx_5.0.3.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-polyline/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-polyline_1.4.0.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-polyline_2.0.2.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-portion_2.3.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-portion_2.4.2.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-posix-ipc_1.1.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb1
-rw-r--r--meta-python/recipes-devtools/python/python3-precise-runner/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-precise-runner_0.3.1.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-prettytable/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-prettytable_3.10.0.bb45
-rw-r--r--meta-python/recipes-devtools/python/python3-prettytable_3.4.1.bb44
-rw-r--r--meta-python/recipes-devtools/python/python3-process-tests_2.1.2.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-process-tests_3.0.0.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-progress_1.6.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.31.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.43.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-protobuf_4.21.6.bb39
-rw-r--r--meta-python/recipes-devtools/python/python3-protobuf_4.25.3.bb38
-rw-r--r--meta-python/recipes-devtools/python/python3-ptyprocess/run-ptest4
-rw-r--r--meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-pulsectl_22.3.2.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-pulsectl_23.5.2.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-pure-eval_0.2.2.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-py-cpuinfo/0001-test_cli.py-disable.patch32
-rw-r--r--meta-python/recipes-devtools/python/python3-py-cpuinfo/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-py-cpuinfo_8.0.0.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-py-cpuinfo_9.0.0.bb36
-rw-r--r--meta-python/recipes-devtools/python/python3-py-ubjson_0.16.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-py7zr_0.20.8.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-pyalsaaudio_0.10.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.2.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-pyasn1-modules/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.8.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-pyasn1-modules_0.4.0.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-pyatspi_2.38.2.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-pyatspi_2.46.1.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-pyaudio/0001-Remove-absolute-paths-into-build-machine-system-dirs.patch28
-rw-r--r--meta-python/recipes-devtools/python/python3-pyaudio_0.2.11.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pyaudio_0.2.14.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-pybcj_1.0.2.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-pybind11-json_0.2.11.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-pybind11-json_0.2.13.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch26
-rw-r--r--meta-python/recipes-devtools/python/python3-pybind11_2.10.0.bb39
-rw-r--r--meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-pybluez/0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch5
-rw-r--r--meta-python/recipes-devtools/python/python3-pybluez/py-3.11.patch454
-rw-r--r--meta-python/recipes-devtools/python/python3-pybluez_0.23.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-pycares_4.2.2.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-pycares_4.4.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-pychromecast/0001-Allow-newer-version-of-wheel-and-setuptools.patch22
-rw-r--r--meta-python/recipes-devtools/python/python3-pychromecast_12.1.4.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-pychromecast_14.0.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-pycocotools_2.0.5.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-pycocotools_2.0.7.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-pycodestyle_2.11.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-pycodestyle_2.9.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-pycurl_7.45.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-pycurl_7.45.2.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic-core-crates.inc170
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic-core/0001-Bumps-pyo3-https-github.com-pyo3-pyo3-from-0.20.2-to.patch126
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic-core/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb52
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic_1.10.2.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic_2.6.4.bb53
-rw-r--r--meta-python/recipes-devtools/python/python3-pydbus-manager_git.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pydbus/0001-Support-asynchronous-calls-58.patch93
-rw-r--r--meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch40
-rw-r--r--meta-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch206
-rw-r--r--meta-python/recipes-devtools/python/python3-pydbus/0002-Support-transformation-between-D-Bus-errors-and-exce.patch203
-rw-r--r--meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch495
-rw-r--r--meta-python/recipes-devtools/python/python3-pydbus/run-ptest15
-rw-r--r--meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-pydicti_1.1.6.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-pydicti_1.2.1.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-pyexpect_1.0.21.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-pyexpect_1.0.22.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch20
-rw-r--r--meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pyfanotify_0.2.2.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-pyfirmata_1.1.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyflakes_2.5.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-pyflakes_3.2.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.4.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pyhamcrest_2.1.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pyiface_git.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-pyjks_20.0.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-pyjwt_2.5.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pyjwt_2.8.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pykwalify_1.8.0.bb7
-rw-r--r--meta-python/recipes-devtools/python/python3-pylint/0001-Adjust-test-expectations-for-ptest.patch44
-rw-r--r--meta-python/recipes-devtools/python/python3-pylint/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pylint_2.14.5.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pylint_3.1.0.bb57
-rw-r--r--meta-python/recipes-devtools/python/python3-pylyrics_1.1.0.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-pymemcache_4.0.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-pymetno_0.10.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-pymisp_2.4.157.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-pymisp_2.4.188.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-pymodbus_2.5.3.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-pymodbus_3.6.6.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-pymongo_4.2.0.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-pymongo_4.6.1.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-pymysql_1.0.2.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-pymysql_1.1.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-pynetlinux/0002-Fixed-relative-imports.patch60
-rw-r--r--meta-python/recipes-devtools/python/python3-pynetlinux_1.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-pyperclip_1.8.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyperf_2.4.1.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-pyperf_2.6.3.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-pypng_0.20220715.0.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-pyppmd_1.1.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-pyproj_3.4.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-pyproj_3.6.1.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-pyproject-api_1.6.1.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-pyrad_2.4.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-pyroute2/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyroute2_0.5.19.bb36
-rw-r--r--meta-python/recipes-devtools/python/python3-pyroute2_0.7.10.bb41
-rw-r--r--meta-python/recipes-devtools/python/python3-pyruvate-crates.inc216
-rw-r--r--meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch4
-rw-r--r--meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-O_LARGEFILE-for-riscv32.patch21
-rw-r--r--meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_NONBLOCK-with-O_NONBLOCK.patch99
-rw-r--r--meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch92
-rw-r--r--meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Move-F_OFD_GETLK-F_OFD_SETLK-and-F_OFD_SETLKW-t.patch140
-rw-r--r--meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-riscv32-Define-F_SETLK-F_SETLKW-and-fix-F_GETLK.patch35
-rw-r--r--meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb133
-rw-r--r--meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb47
-rw-r--r--meta-python/recipes-devtools/python/python3-pyscaffold_4.3.1.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-pyscaffold_4.5.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-pyserial/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyserial_3.5.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-pysonos_0.0.54.bb6
-rw-r--r--meta-python/recipes-devtools/python/python3-pystemd_0.10.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-pystemd_0.13.2.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-asyncio_0.16.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.6.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-benchmark_3.4.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-benchmark_4.0.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-cov_5.0.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-forked_1.6.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.12.29.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-html/no-pip.patch24
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-html_4.1.1.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-json-report_1.5.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-lazy-fixture/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-lazy-fixture_0.6.3.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.7.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-localserver/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-localserver_0.8.1.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.2.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-mock/0001-test_pytest_mock-skip-args-introspection-tests.patch38
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-mock/403.patch92
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-mock/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-mock_3.12.0.bb33
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-tempdir_2019.10.12.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-timeout_2.1.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-timeout_2.3.1.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-xdist_2.5.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-xdist_3.5.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-python-vlc_3.0.16120.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-python-vlc_3.0.20123.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-pythonping_1.1.3.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-pythonping_1.1.4.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-pytoml/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-pytoml_0.1.21.bb7
-rw-r--r--meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pyu2f_0.1.5.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-pyudev_0.24.0.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-pyudev_0.24.1.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-pyunormalize_15.1.0.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-pyusb_1.2.1.bb4
-rwxr-xr-xmeta-python/recipes-devtools/python/python3-pyyaml-include/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pyyaml-include_1.3.2.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-pyzmq/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pyzmq_24.0.1.bb55
-rw-r--r--meta-python/recipes-devtools/python/python3-pyzmq_25.1.2.bb58
-rw-r--r--meta-python/recipes-devtools/python/python3-pyzstd_0.15.10.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-qrcode_7.3.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-qrcode_7.4.2.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-rapidjson/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-rapidjson_1.14.bb40
-rw-r--r--meta-python/recipes-devtools/python/python3-rarfile_4.1.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-raven_6.10.0.bb5
-rw-r--r--meta-python/recipes-devtools/python/python3-rdflib_6.1.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-redis_4.3.4.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-redis_5.0.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-regex_2022.9.13.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-regex_2023.12.25.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-file/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-file_1.5.1.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-futures_1.0.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-futures_1.0.1.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.1.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-oauthlib_2.0.0.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-toolbelt/090856f4159c40a2927fb88546419f2e1697ad5f.patch1492
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-toolbelt/720240501dca0b4eacc3295665d7ced8719e11d2.patch546
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-toolbelt/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-toolbelt_0.9.1.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb36
-rw-r--r--meta-python/recipes-devtools/python/python3-responses_0.25.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch35
-rw-r--r--meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-rlp_4.0.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.4.3.bb6
-rw-r--r--meta-python/recipes-devtools/python/python3-robotframework_5.0.1.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-robotframework_7.0.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-rsa_4.9.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-schedule_1.2.1.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-schedutils_0.6.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-scikit-build_0.17.6.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-screeninfo_0.8.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch16
-rw-r--r--meta-python/recipes-devtools/python/python3-scrypt/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-scrypt_0.8.24.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-sdbus_0.11.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-semver/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-semver_2.13.0.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-semver_3.0.2.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-sentry-sdk_1.44.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.12.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-serpent/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-serpent_1.41.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-service-identity/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-service-identity_21.1.0.bb32
-rw-r--r--meta-python/recipes-devtools/python/python3-setuptools-scm-git-archive_1.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-sh_1.14.3.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-sh_2.0.6.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-shellingham_1.5.4.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-simpleeval/no-build.patch24
-rw-r--r--meta-python/recipes-devtools/python/python3-simpleeval/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-simpleeval_0.9.13.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-simplejson_3.17.6.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-simplejson_3.19.2.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch2
-rw-r--r--meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-smbus2_0.4.2.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-smbus2_0.4.3.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-smpplib/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-smpplib_2.2.1.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-smpplib_2.2.3.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-snagboot_1.2.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-snappy_0.6.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-sniffio_1.3.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-socketio_5.11.2.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-socketio_5.7.1.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-socksio/0001-Unpin-flit-core-dependency.patch21
-rw-r--r--meta-python/recipes-devtools/python/python3-socksio_1.0.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-soupsieve/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-soupsieve_2.3.2.post1.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-soupsieve_2.5.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-spidev_3.5.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-spidev_3.6.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.41.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.29.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlparse/0001-sqlparse-change-shebang-to-python3.patch80
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlparse/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlparse_0.4.3.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlparse_0.4.4.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlsoup_0.9.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-stack-data_0.6.3.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-stevedore_4.0.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-stevedore_5.1.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-stopit/LICENSE21
-rw-r--r--meta-python/recipes-devtools/python/python3-stopit_1.1.2.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-strenum/0001-patch-versioneer-for-python-3.12-compatibility.patch37
-rw-r--r--meta-python/recipes-devtools/python/python3-strenum_0.4.15.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-supervisor_4.2.4.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-supervisor_4.2.5.bb33
-rw-r--r--meta-python/recipes-devtools/python/python3-sympy_1.11.1.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-sympy_1.12.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-systemd/0001-Provide-implementation-of-strndupa-for-musl.patch (renamed from meta-python/recipes-devtools/python/python-systemd/0001-Provide-implementation-of-strndupa-for-musl.patch)0
-rw-r--r--meta-python/recipes-devtools/python/python3-systemd_234.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-systemd_235.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-tabulate_0.8.10.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-tabulate_0.9.0.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-telnetlib3_2.0.4.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-term_2.4.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-term_2.5.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-termcolor_2.0.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-termcolor_2.4.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-texttable_1.6.4.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-texttable_1.7.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-tomli-w/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-tomli-w_1.0.0.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-tomlkit/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-tomlkit_0.12.3.bb32
-rw-r--r--meta-python/recipes-devtools/python/python3-toolz_0.12.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-toolz_0.12.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-tornado_6.2.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-tornado_6.4.bb41
-rw-r--r--meta-python/recipes-devtools/python/python3-tox_4.14.2.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-tqdm_4.64.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-tqdm_4.66.2.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-trafaret-config_2.0.2.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-trafaret_2.1.1.bb6
-rw-r--r--meta-python/recipes-devtools/python/python3-traitlets/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-traitlets_5.14.2.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-traitlets_5.4.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-trustme/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-trustme_1.1.0.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-twine_4.0.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-twine_5.0.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-twisted_22.10.0.bb201
-rw-r--r--meta-python/recipes-devtools/python/python3-twisted_22.8.0.bb310
-rw-r--r--meta-python/recipes-devtools/python/python3-twitter_4.10.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-twitter_4.14.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-txaio_22.2.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-txaio_23.1.1.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-txdbus_1.1.2.bb1
-rw-r--r--meta-python/recipes-devtools/python/python3-typed-ast_1.5.4.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-typeguard/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-typeguard_2.13.3.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-typeguard_4.2.1.bb39
-rw-r--r--meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240316.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-types-python-dateutil_2.9.0.20240316.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-types-setuptools_69.0.0.20240125.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-tzlocal_4.2.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-tzlocal_5.2.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-u-msgpack-python/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-u-msgpack-python_2.7.1.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-u-msgpack-python_2.8.0.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-uefi-firmware_1.11.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-uinput/0001-Deal-with-64bit-time_t-default-on-32bit-architecture.patch43
-rw-r--r--meta-python/recipes-devtools/python/python3-uinput/0001-setup-use-setuptools-instead-of-distutils.patch28
-rw-r--r--meta-python/recipes-devtools/python/python3-uinput_0.11.2.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-ujson/0001-setup.py-Do-not-strip-debugging-symbols.patch2
-rw-r--r--meta-python/recipes-devtools/python/python3-ujson/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-ujson_5.5.0.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-ujson_5.9.0.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-unidiff/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-unidiff_0.7.4.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-unidiff_0.7.5.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-unoconv_0.9.0.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-uritemplate/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-uswid_0.4.7.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-validators/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-validators_0.24.0.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-versioneer_0.29.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-virtualenv_20.25.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-waitress_2.1.2.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-waitress_3.0.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-wand_0.6.13.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-watchdog_2.1.9.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-watchdog_4.0.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-watchdogdev_1.0.0.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-web3_5.31.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-web3_6.16.0.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-webargs_8.4.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-webencodings_0.5.1.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-websocket-client_1.4.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-websocket-client_1.7.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-websockets_10.3.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-werkzeug_2.2.2.bb40
-rw-r--r--meta-python/recipes-devtools/python/python3-werkzeug_3.0.1.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-whitenoise_6.6.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-whoosh/0001-Mark-non-determinstic-test_minimize_dfa-test-as-XFAI.patch29
-rw-r--r--meta-python/recipes-devtools/python/python3-whoosh/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-wpa-supplicant_0.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-wrapt/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-wrapt_1.14.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-wrapt_1.16.0.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-wsproto/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-wsproto_1.2.0.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-wtforms_3.0.1.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-wtforms_3.1.2.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-xlrd/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.3.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.9.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-xmlschema_2.1.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-xmlschema_3.0.1.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-xmltodict/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-xmltodict_0.12.0.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-xmodem_0.4.6.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-xmodem_0.4.7.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-xstatic-font-awesome_4.7.0.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-xstatic-font-awesome_6.2.1.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-xstatic_1.0.2.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-xstatic_1.0.3.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-xxhash/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-xxhash_3.0.0.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-xxhash_3.4.1.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-yamlloader_1.3.2.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi/0001-Fix-imports-for-ptests.patch3905
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi/0001-test_functionality-convert-line-endings-to-Unix.patch3845
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi/0002-Fix-import-of-tests.utils-to-enable-pytest.patch101
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi_1.3.6.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi_1.6.0.bb37
-rw-r--r--meta-python/recipes-devtools/python/python3-yarl/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-yarl_1.8.1.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-yarl_1.9.4.bb33
-rw-r--r--meta-python/recipes-devtools/python/python3-zeroconf_0.132.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-zeroconf_0.39.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-zopeevent_5.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-zopeinterface_5.4.0.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-zopeinterface_6.2.bb23
-rw-r--r--meta-python/recipes-devtools/python/tftpy_0.8.2.bb13
-rw-r--r--meta-python/recipes-devtools/python3-attrdict3/python3-attrdict3_2.0.2.bb14
-rw-r--r--meta-python/recipes-devtools/python3-gspread/python3-gspread_6.1.0.bb14
-rw-r--r--meta-python/recipes-devtools/python3-piccata/python3-piccata_2.0.3.bb13
-rw-r--r--meta-python/recipes-devtools/python3-reedsolo/python3-reedsolo_2.0.13.bb10
-rw-r--r--meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch861
-rw-r--r--meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-sip-Conditionally-use-GetAssertStackTrace-under-USE_.patch32
-rw-r--r--meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/not-overwrite-cflags-cxxflags.patch28
-rw-r--r--meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/sip-fix-override-functions.patch35
-rw-r--r--meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb35
-rw-r--r--meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.2.1.bb38
-rw-r--r--meta-python/recipes-devtools/python3_oauth2client/python3-oauth2client_4.1.3.bb19
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch13
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch17
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0004-fix-new.roots-object-is-not-iterable.patch28
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch9
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch15
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch9
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch9
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch9
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch11
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet_3.4.3.bb37
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet_3.9.2.bb36
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Use-setuptools-instead-of-distutils-in-setup.py.patch30
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivetgui/0002-Use-symbolic-list-add-and-edit-icons.patch56
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivetgui_2.3.0.bb31
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivetgui_2.5.0.bb21
-rw-r--r--meta-python/recipes-extended/python-cson/python3-cson/0001-setup.py-Do-not-poke-at-git-describe-to-find-version.patch40
-rw-r--r--meta-python/recipes-extended/python-cson/python3-cson_git.bb13
-rw-r--r--meta-python/recipes-extended/python-meh/python3-meh/0001-setup.py-switch-from-distutils-to-setuptools.patch31
-rw-r--r--meta-python/recipes-extended/python-meh/python3-meh_0.50.1.bb17
-rw-r--r--meta-python/recipes-extended/python-meh/python3-meh_0.51.bb16
-rw-r--r--meta-python/recipes-extended/python-pyephem/python3-pyephem/0001-Don-t-set-tp_print-on-Python-3.patch44
-rw-r--r--meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.3.bb17
-rw-r--r--meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.5.bb16
-rw-r--r--meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch37
-rw-r--r--meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch19
-rw-r--r--meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch2
-rw-r--r--meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch20
-rw-r--r--meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.34.bb27
-rw-r--r--meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.48.bb25
-rw-r--r--meta-python/recipes-extended/python-pyparted/python3-pyparted_3.12.0.bb5
-rw-r--r--meta-python/recipes-extended/python-rich/python3-rich_13.7.0.bb15
-rw-r--r--meta-python/recipes-extended/python3-portalocker/python3-portalocker/run-ptest3
-rw-r--r--meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.5.1.bb16
-rw-r--r--meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.8.2.bb36
-rw-r--r--meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.bb11
-rw-r--r--meta-python/recipes-extended/python3-pydot/python3-pydot_2.0.0.bb11
-rw-r--r--meta-python/recipes-extended/pywbem/python3-pywbem_1.4.1.bb51
-rw-r--r--meta-python/recipes-extended/pywbem/python3-pywbem_1.6.3.bb51
-rw-r--r--meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.0.0.bb39
-rw-r--r--meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.1.bb32
-rw-r--r--meta-python/recipes-extended/send2trash/python3-send2trash_1.8.0.bb9
-rw-r--r--meta-python/recipes-extended/send2trash/python3-send2trash_1.8.2.bb14
-rw-r--r--meta-python/recipes-extended/tuna/tuna_0.19.bb24
-rw-r--r--meta-python/recipes-networking/python/python3-ldap_3.4.3.bb29
-rw-r--r--meta-python/recipes-networking/python/python3-ldap_3.4.4.bb30
-rw-r--r--meta-webserver/README66
-rw-r--r--meta-webserver/README.md66
-rw-r--r--meta-webserver/conf/layer.conf2
-rw-r--r--meta-webserver/files/static-group-meta-webserver1
-rw-r--r--meta-webserver/files/static-passwd-meta-webserver2
-rw-r--r--meta-webserver/recipes-core/images/meta-webserver-image-all.bb3
-rw-r--r--meta-webserver/recipes-core/images/meta-webserver-image-base.bb7
-rw-r--r--meta-webserver/recipes-core/images/meta-webserver-image.bb3
-rw-r--r--meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb2
-rw-r--r--meta-webserver/recipes-httpd/apache-mod/mod-dnssd_0.6.bb20
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2_2.4.54.bb237
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2_2.4.58.bb238
-rw-r--r--meta-webserver/recipes-httpd/apache2/files/apache2-volatile.conf2
-rw-r--r--meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch1
-rw-r--r--meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch1
-rw-r--r--meta-webserver/recipes-httpd/cherokee/cherokee_git.bb4
-rw-r--r--meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch29
-rw-r--r--meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb9
-rw-r--r--meta-webserver/recipes-httpd/nginx/files/0001-configure-libxslt-conf.patch39
-rw-r--r--meta-webserver/recipes-httpd/nginx/files/CVE-2021-3618.patch107
-rw-r--r--meta-webserver/recipes-httpd/nginx/files/CVE-2023-44487.patch78
-rw-r--r--meta-webserver/recipes-httpd/nginx/nginx.inc12
-rw-r--r--meta-webserver/recipes-httpd/nginx/nginx_1.20.1.bb9
-rw-r--r--meta-webserver/recipes-httpd/nginx/nginx_1.21.1.bb10
-rw-r--r--meta-webserver/recipes-httpd/nginx/nginx_1.24.0.bb8
-rw-r--r--meta-webserver/recipes-httpd/nginx/nginx_1.25.3.bb10
-rw-r--r--meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.2.0.bb40
-rw-r--r--meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.2.1.bb40
-rw-r--r--meta-webserver/recipes-php/xdebug/xdebug_3.1.1.bb34
-rw-r--r--meta-webserver/recipes-php/xdebug/xdebug_3.2.2.bb34
-rw-r--r--meta-webserver/recipes-support/fcgiwrap/fcgiwrap/0001-Fix-implicit-fallthrough-warning.patch2
-rw-r--r--meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi-1.6.4/fix_configure_ipv6_test.patch35
-rw-r--r--meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb16
-rw-r--r--meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.5.bb14
-rw-r--r--meta-webserver/recipes-webadmin/cockpit/cockpit_276.bb194
-rw-r--r--meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb207
-rw-r--r--meta-webserver/recipes-webadmin/cockpit/files/0001-Warn-not-error-if-xsltproc-is-not-found.patch12
-rw-r--r--meta-webserver/recipes-webadmin/cockpit/files/0001-remove-tests-dep-on-gobject-intro.patch58
-rw-r--r--meta-webserver/recipes-webadmin/cockpit/files/0002-fix-makefile-use-copy-rule-for-unmodified-files.patch45
-rw-r--r--meta-webserver/recipes-webadmin/netdata/netdata/netdata.service2
-rw-r--r--meta-webserver/recipes-webadmin/netdata/netdata_1.36.1.bb82
-rw-r--r--meta-webserver/recipes-webadmin/netdata/netdata_1.44.3.bb81
-rw-r--r--meta-webserver/recipes-webadmin/webmin/files/disable-version-check.patch2
-rw-r--r--meta-webserver/recipes-webadmin/webmin/files/init-exclude.patch16
-rw-r--r--meta-webserver/recipes-webadmin/webmin/files/media-tomb.patch4
-rw-r--r--meta-webserver/recipes-webadmin/webmin/files/mount-excludefs.patch2
-rw-r--r--meta-webserver/recipes-webadmin/webmin/files/mysql-config-fix.patch2
-rw-r--r--meta-webserver/recipes-webadmin/webmin/files/net-generic.patch10
-rw-r--r--meta-webserver/recipes-webadmin/webmin/files/proftpd-config-fix.patch2
-rw-r--r--meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch12
-rw-r--r--meta-webserver/recipes-webadmin/webmin/files/samba-config-fix.patch2
-rw-r--r--meta-xfce/README.md (renamed from meta-xfce/README)0
-rw-r--r--meta-xfce/conf/layer.conf2
-rw-r--r--meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb23
-rw-r--r--meta-xfce/recipes-apps/catfish/catfish_4.18.0.bb25
-rw-r--r--meta-xfce/recipes-apps/gigolo/gigolo_0.5.2.bb10
-rw-r--r--meta-xfce/recipes-apps/gigolo/gigolo_0.5.3.bb10
-rw-r--r--meta-xfce/recipes-apps/menulibre/menulibre_2.2.3.bb39
-rw-r--r--meta-xfce/recipes-apps/menulibre/menulibre_2.3.2.bb39
-rw-r--r--meta-xfce/recipes-apps/mousepad/mousepad_0.5.9.bb19
-rw-r--r--meta-xfce/recipes-apps/mousepad/mousepad_0.6.1.bb19
-rw-r--r--meta-xfce/recipes-apps/orage/orage_4.16.0.bb20
-rw-r--r--meta-xfce/recipes-apps/orage/orage_4.18.0.bb20
-rw-r--r--meta-xfce/recipes-apps/ristretto/ristretto_0.12.2.bb15
-rw-r--r--meta-xfce/recipes-apps/ristretto/ristretto_0.13.1.bb15
-rw-r--r--meta-xfce/recipes-apps/xarchiver/xarchiver_0.5.4.21.bb33
-rw-r--r--meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb33
-rw-r--r--meta-xfce/recipes-apps/xfce4-notifyd/files/xfce4-notifyd-get-var-abs-path.patch41
-rw-r--r--meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.6.3.bb33
-rw-r--r--meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb37
-rw-r--r--meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles/not-create-link-to-locale.patch22
-rw-r--r--meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.13.bb29
-rw-r--r--meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.14.bb27
-rw-r--r--meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver/fix-cross-compile.patch14
-rw-r--r--meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.16.0.bb24
-rw-r--r--meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.18.1.bb24
-rw-r--r--meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.10.4.bb21
-rw-r--r--meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.10.bb21
-rw-r--r--meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.2.bb9
-rw-r--r--meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.6.bb9
-rw-r--r--meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.0.bb15
-rw-r--r--meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.4.bb15
-rw-r--r--meta-xfce/recipes-extended/imsettings/imsettings_1.8.3.bb2
-rw-r--r--meta-xfce/recipes-multimedia/parole/parole_4.16.0.bb32
-rw-r--r--meta-xfce/recipes-multimedia/parole/parole_4.18.0.bb32
-rw-r--r--meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.2.bb18
-rw-r--r--meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.3.bb17
-rw-r--r--meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.0.bb16
-rw-r--r--meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.1.bb15
-rw-r--r--meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.4.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.5.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.7.1.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.7.2.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.7.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.8.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.6.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.8.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.1.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.3.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.2.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.3.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.1.1.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.2.0.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.3.0.bb13
-rw-r--r--meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.3.1.bb13
-rw-r--r--meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch1
-rw-r--r--meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.4.0.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.4.1.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.10.0.bb10
-rw-r--r--meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.9.0.bb10
-rw-r--r--meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.1.bb13
-rw-r--r--meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.3.bb12
-rw-r--r--meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.3.bb17
-rw-r--r--meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.8.bb16
-rw-r--r--meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.4.3.bb26
-rw-r--r--meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.4.4.bb28
-rw-r--r--meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin/convert-gulong.patch39
-rw-r--r--meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.3.1.bb12
-rw-r--r--meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.3.2.bb13
-rw-r--r--meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.2.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.3.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.1.bb10
-rw-r--r--meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.2.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.1.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.3.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.2.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.3.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.11.0.bb12
-rw-r--r--meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.11.1.bb12
-rw-r--r--meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.7.1.bb2
-rw-r--r--meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.4.0.bb12
-rw-r--r--meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.5.2.bb11
-rw-r--r--meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.3.0.bb11
-rw-r--r--meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.4.0.bb10
-rw-r--r--meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.1.bb13
-rw-r--r--meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.2.bb12
-rw-r--r--meta-xfce/recipes-xfce/exo/exo/configure.patch57
-rw-r--r--meta-xfce/recipes-xfce/exo/exo/exo-no-tests-0.8.patch9
-rw-r--r--meta-xfce/recipes-xfce/exo/exo/reduce-build-to-exo-csource-only.patch90
-rw-r--r--meta-xfce/recipes-xfce/exo/exo_4.16.4.bb26
-rw-r--r--meta-xfce/recipes-xfce/exo/exo_4.19.0.bb25
-rw-r--r--meta-xfce/recipes-xfce/garcon/garcon_4.16.1.bb22
-rw-r--r--meta-xfce/recipes-xfce/garcon/garcon_4.19.0.bb22
-rw-r--r--meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui/0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch10
-rw-r--r--meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.16.1.bb31
-rw-r--r--meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.19.3.bb31
-rw-r--r--meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.16.0.bb9
-rw-r--r--meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.19.2.bb9
-rw-r--r--meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb1
-rw-r--r--meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb7
-rw-r--r--meta-xfce/recipes-xfce/thunar-volman/thunar-volman_4.16.0.bb16
-rw-r--r--meta-xfce/recipes-xfce/thunar-volman/thunar-volman_4.18.0.bb16
-rw-r--r--meta-xfce/recipes-xfce/thunar/thunar_4.16.9.bb31
-rw-r--r--meta-xfce/recipes-xfce/thunar/thunar_4.19.0.bb35
-rw-r--r--meta-xfce/recipes-xfce/tumbler/tumbler_4.16.0.bb30
-rw-r--r--meta-xfce/recipes-xfce/tumbler/tumbler_4.18.0.bb31
-rw-r--r--meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.16.1.bb13
-rw-r--r--meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.19.1.bb13
-rw-r--r--meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.16.0.bb27
-rw-r--r--meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.18.0.bb27
-rw-r--r--meta-xfce/recipes-xfce/xfce4-panel/files/0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch17
-rw-r--r--meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch10
-rw-r--r--meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.16.3.bb44
-rw-r--r--meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.18.3.bb44
-rw-r--r--meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.16.0.bb42
-rw-r--r--meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.18.1.bb42
-rw-r--r--meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.16.0.bb37
-rw-r--r--meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.18.2.bb37
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch8
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.16.2.bb31
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.18.2.bb31
-rw-r--r--meta-xfce/recipes-xfce/xfconf/xfconf_4.16.0.bb19
-rw-r--r--meta-xfce/recipes-xfce/xfconf/xfconf_4.18.0.bb19
-rw-r--r--meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.16.0.bb16
-rw-r--r--meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.18.1.bb28
-rw-r--r--meta-xfce/recipes-xfce/xfwm4/xfwm4_4.16.1.bb37
-rw-r--r--meta-xfce/recipes-xfce/xfwm4/xfwm4_4.18.0.bb37
4929 files changed, 105904 insertions, 83426 deletions
diff --git a/README b/README.md
index 7318f09cdb..7318f09cdb 100644
--- a/README
+++ b/README.md
diff --git a/contrib/oe-stylize.py b/contrib/oe-stylize.py
index 30b460e12a..1fb0a5bcc0 100755
--- a/contrib/oe-stylize.py
+++ b/contrib/oe-stylize.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
"""\
Sanitize a bitbake file following the OpenEmbedded style guidelines,
@@ -436,8 +436,8 @@ if __name__ == "__main__":
# -- dump the sanitized .bb file --
addEmptyLine = False
# write comments that are not related to variables nor routines
- for l in commentBloc:
- olines.append(l)
+ for c in commentBloc:
+ olines.append(c)
# write variables and routines
previourVarPrefix = "unknown"
for k in OE_vars:
@@ -446,8 +446,8 @@ if __name__ == "__main__":
if seen_vars[k] != []:
if addEmptyLine and not k.startswith(previourVarPrefix):
olines.append("")
- for l in seen_vars[k]:
- olines.append(l)
+ for s in seen_vars[k]:
+ olines.append(s)
previourVarPrefix = k.split('_')[0] == '' and "unknown" or k.split('_')[0]
for line in olines:
print(line)
diff --git a/meta-filesystems/README b/meta-filesystems/README.md
index 78a4429ce2..78a4429ce2 100644
--- a/meta-filesystems/README
+++ b/meta-filesystems/README.md
diff --git a/meta-filesystems/conf/include/ptest-packagelists-meta-filesystems.inc b/meta-filesystems/conf/include/ptest-packagelists-meta-filesystems.inc
new file mode 100644
index 0000000000..f57bbab930
--- /dev/null
+++ b/meta-filesystems/conf/include/ptest-packagelists-meta-filesystems.inc
@@ -0,0 +1,18 @@
+#
+# Lists of the ptest in meta-filesystems, sorted into two sets by the time they take
+# Please keep these sorted in alphabetical order
+#
+# A first pass at getting all meta-filesystems recipes which inherit ptest
+# meta_filesystems_ptest_recipes=$(bitbake-layers show-recipes --recipes-only --layer meta-filesystems --inherits ptest --bare | sed -e '1,/=== Matching recipes: ===/d')
+# ptests which take less than ~30s each
+
+PTESTS_FAST_META_FILESYSTEMS = "\
+ e2tools \
+ fuse3 \
+"
+
+PTESTS_SLOW_META_FILESYSTEMS = "\
+"
+PTESTS_PROBLEMS_META_FILESYSTEMS = "\
+ sshfs-fuse \
+"
diff --git a/meta-filesystems/conf/layer.conf b/meta-filesystems/conf/layer.conf
index 205768e637..c2263c899b 100644
--- a/meta-filesystems/conf/layer.conf
+++ b/meta-filesystems/conf/layer.conf
@@ -13,6 +13,6 @@ BBFILE_PRIORITY_filesystems-layer = "5"
# cause compatibility issues with other layers
LAYERVERSION_filesystems-layer = "1"
-LAYERDEPENDS_filesystems-layer = "core openembedded-layer"
+LAYERDEPENDS_filesystems-layer = "core openembedded-layer networking-layer"
-LAYERSERIES_COMPAT_filesystems-layer = "kirkstone langdale"
+LAYERSERIES_COMPAT_filesystems-layer = "scarthgap"
diff --git a/meta-filesystems/files/static-passwd-meta-filesystems b/meta-filesystems/files/static-passwd-meta-filesystems
new file mode 100644
index 0000000000..157697f3e7
--- /dev/null
+++ b/meta-filesystems/files/static-passwd-meta-filesystems
@@ -0,0 +1,3 @@
+fsgqa:x:700:nogroup::/:/bin/nologin
+123456-fsgqa:x:701:nogroup::/:/bin/nologin
+fsgqa2:x:702:nogroup::/:/bin/nologin \ No newline at end of file
diff --git a/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.6.bb b/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.6.bb
new file mode 100644
index 0000000000..e0f6664ab3
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/burnia/libburn_1.5.6.bb
@@ -0,0 +1,13 @@
+SUMMARY = "library to write an ISO-9660 file system to physical media"
+HOMEPAGE = "https://libburnia-project.org/"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
+ file://COPYRIGHT;md5=a91b9b862895b64e68e5b321873c9111"
+
+SRC_URI = "http://files.libburnia-project.org/releases/${BP}.tar.gz"
+SRC_URI[sha256sum] = "7295491b4be5eeac5e7a3fb2067e236e2955ffdc6bbd45f546466edee321644b"
+
+inherit autotools pkgconfig lib_package
+
+BBCLASSEXTEND = "native"
diff --git a/meta-filesystems/recipes-filesystems/burnia/libisoburn_1.5.6.bb b/meta-filesystems/recipes-filesystems/burnia/libisoburn_1.5.6.bb
new file mode 100644
index 0000000000..3982eae63c
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/burnia/libisoburn_1.5.6.bb
@@ -0,0 +1,27 @@
+SUMMARY = "library and tool to create and burn ISO-9660 images"
+HOMEPAGE = "https://libburnia-project.org/"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
+ file://COPYRIGHT;md5=43cfe25a7e4a65f722d6253fa0649bb1"
+
+SRC_URI = "http://files.libburnia-project.org/releases/libisoburn-${PV}.tar.gz"
+SRC_URI[sha256sum] = "2b80a6f73dd633a5d243facbe97a15e5c9a07644a5e1a242c219b9375a45f71b"
+
+DEPENDS = "libisofs libburn"
+# This replaces the xorriso recipe
+PROVIDES += "xorriso"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-pkg-check-modules"
+
+do_install:append() {
+ # This is a proof-of-concept UI using Tk, don't ship it
+ rm -f ${D}${bindir}/xorriso-tcltk
+}
+
+PACKAGE_BEFORE_PN = "xorriso"
+FILES:xorriso = "${bindir}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-filesystems/recipes-filesystems/burnia/libisofs_1.5.6.bb b/meta-filesystems/recipes-filesystems/burnia/libisofs_1.5.6.bb
new file mode 100644
index 0000000000..0add3777f4
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/burnia/libisofs_1.5.6.bb
@@ -0,0 +1,15 @@
+SUMMARY = "library to create an ISO-9660 filesystem"
+HOMEPAGE = "https://libburnia-project.org/"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
+ file://COPYRIGHT;md5=1c1e5a960562d65f6449bb1d21e1dffc"
+
+SRC_URI = "http://files.libburnia-project.org/releases/${BP}.tar.gz"
+SRC_URI[sha256sum] = "0152d66a9d340b659fe9c880eb9190f3570fb477ac07cf52e8bcd134a1d30d70"
+
+DEPENDS = "acl zlib"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
diff --git a/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.3.0.bb b/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.3.0.bb
deleted file mode 100644
index ac18fe90fe..0000000000
--- a/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.3.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "read and write exFAT driver for FUSE"
-DESCRIPTION = "fuse-exfat is a read and write driver implementing the \
-extended file allocation table as a filesystem in userspace. A mounthelper \
-is provided under the name mount.exfat-fuse. \
-"
-HOMEPAGE = "https://github.com/relan/exfat"
-SECTION = "universe/otherosfs"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRC_URI = "https://github.com/relan/exfat/releases/download/v${PV}/${BP}.tar.gz"
-
-UPSTREAM_CHECK_URI = "https://github.com/relan/exfat/releases"
-
-DEPENDS = "fuse virtual/libc"
-RRECOMMENDS:${PN} = "util-linux-mount"
-
-inherit autotools pkgconfig
-
-SRC_URI[md5sum] = "846b8c36bfa4684719f9e08e9d3a6bff"
-SRC_URI[sha256sum] = "07652136064da5e4d32df5555f88c138ffa4835a23b88a5bae2015f21006e0d3"
-
-EXTRA_OECONF += "sbindir=${base_sbindir}"
diff --git a/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.4.0.bb b/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.4.0.bb
new file mode 100644
index 0000000000..48e3d7af5d
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.4.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "read and write exFAT driver for FUSE"
+DESCRIPTION = "fuse-exfat is a read and write driver implementing the \
+extended file allocation table as a filesystem in userspace. A mounthelper \
+is provided under the name mount.exfat-fuse. \
+"
+HOMEPAGE = "https://github.com/relan/exfat"
+SECTION = "universe/otherosfs"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+SRC_URI = "https://github.com/relan/exfat/releases/download/v${PV}/${BP}.tar.gz"
+
+UPSTREAM_CHECK_URI = "https://github.com/relan/exfat/releases"
+
+DEPENDS = "fuse virtual/libc"
+RRECOMMENDS:${PN} = "util-linux-mount"
+
+inherit autotools pkgconfig
+
+SRC_URI[sha256sum] = "a1cfedc55e0e7a12c184605aa0f0bf44b24a3fb272449b20b2c8bbe6edb3001e"
+
+EXTRA_OECONF += "sbindir=${base_sbindir}"
diff --git a/meta-filesystems/recipes-filesystems/httpfs2-fuse/httpfs2_0.1.5.bb b/meta-filesystems/recipes-filesystems/httpfs2-fuse/httpfs2_0.1.5.bb
index 0086551f62..5dc3ea6632 100644
--- a/meta-filesystems/recipes-filesystems/httpfs2-fuse/httpfs2_0.1.5.bb
+++ b/meta-filesystems/recipes-filesystems/httpfs2-fuse/httpfs2_0.1.5.bb
@@ -8,18 +8,15 @@ inherit pkgconfig
DEPENDS += "fuse"
RDEPENDS:${PN} += "fuse"
-SRC_URI += "https://astuteinternet.dl.sourceforge.net/project/httpfs/httpfs2/httpfs2-${PV}.tar.gz"
+SRC_URI += "${SOURCEFORGE_MIRROR}/project/httpfs/httpfs2/httpfs2-${PV}.tar.gz"
SRC_URI[sha256sum] = "01cb4bb38deb344f540da6f1464dc7edbdeb51213ad810b8c9c282c1e17e0fc1"
S = "${WORKDIR}/httpfs2-${PV}"
do_compile() {
- cd ${S}
- oe_runmake httpfs2
+ oe_runmake -C ${S} httpfs2
}
do_install() {
- cd ${S}
- install -d ${D}${bindir}
- install -m 0755 httpfs2 ${D}${bindir}
+ install -Dm 0755 ${S}/httpfs2 ${D}${bindir}/httpfs2
}
diff --git a/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-all.bb b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-all.bb
new file mode 100644
index 0000000000..80fb9f9137
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-all.bb
@@ -0,0 +1,3 @@
+require recipes-core/images/core-image-base.bb
+
+IMAGE_INSTALL += "packagegroup-meta-filesystems"
diff --git a/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-base.bb b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-base.bb
deleted file mode 100644
index c89b1e1362..0000000000
--- a/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-base.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-SUMMARY = "meta-filesystems build test image"
-
-IMAGE_INSTALL = "packagegroup-core-boot"
-
-LICENSE = "MIT"
-
-inherit core-image
diff --git a/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-all.bb b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-all.bb
new file mode 100644
index 0000000000..ffbfa1a3f6
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-all.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Recipe to trigger execution of all meta-filesystems ptest images."
+HOMEPAGE = "https://www.openembedded.org/"
+
+LICENSE = "MIT"
+
+inherit features_check nopackages
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-filesystems.inc
+
+# Include the full set of ptests
+PTESTS_META_FILESYSTEMS = "${PTESTS_FAST_META_FILESYSTEMS} ${PTESTS_SLOW_META_FILESYSTEMS} ${PTESTS_PROBLEMS_META_FILESYSTEMS}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-filesystems-image-ptest-'+x+':do_testimage' for x in d.getVar('PTESTS_META_FILESYSTEMS').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-filesystems-image-ptest-'+x+':do_build' for x in d.getVar('PTESTS_META_FILESYSTEMS').split()])}"
+
+# normally image.bbclass would do this
+EXCLUDE_FROM_WORLD = "1"
+
+python () {
+ if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
+ bb.build.addtask("do_testimage", "", "", d)
+}
diff --git a/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-fast.bb b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-fast.bb
new file mode 100644
index 0000000000..dfb0837aa6
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-fast.bb
@@ -0,0 +1,5 @@
+require meta-filesystems-image-ptest-all.bb
+
+DESCRIPTION = "Recipe to trigger execution of all fast meta-filesystems ptest images."
+
+PTESTS_META_FILESYSTEMS = "${PTESTS_FAST_META_FILESYSTEMS}"
diff --git a/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest.bb b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest.bb
new file mode 100644
index 0000000000..90d6a92c1b
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest.bb
@@ -0,0 +1,40 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require recipes-core/images/core-image-minimal.bb
+require conf/include/ptest-packagelists-meta-filesystems.inc
+
+SUMMARY = "meta-filesystems ptest test image"
+
+DESCRIPTION += "Also including the ${MCNAME} ptest package."
+HOMEPAGE = "https://www.openembedded.org/"
+
+PTESTS_META_FILESYSTEMS = "${PTESTS_SLOW_META_FILESYSTEMS} ${PTESTS_FAST_META_FILESYSTEMS} ${PTESTS_PROBLEMS_META_FILESYSTEMS}"
+
+IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
+
+BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_FILESYSTEMS').split()])}"
+
+# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
+# box) and explicitly add up to 1500MB.
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "324288"
+# If a particular ptest needs more space, it can be customized:
+#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
+
+# ptests need more memory than standard to avoid the OOM killer
+QB_MEM = "-m 1024"
+# If a particular ptest needs more memroy, it can be customized:
+#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
+
+TEST_SUITES = "ping ssh parselogs ptest"
+
+# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
+
+python () {
+ if not d.getVar("MCNAME"):
+ raise bb.parse.SkipRecipe("No class extension set")
+}
+
diff --git a/meta-filesystems/recipes-filesystems/images/meta-filesystems-image.bb b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image.bb
deleted file mode 100644
index ca21d2a0ed..0000000000
--- a/meta-filesystems/recipes-filesystems/images/meta-filesystems-image.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require meta-filesystems-image-base.bb
-
-IMAGE_INSTALL += "packagegroup-meta-filesystems"
diff --git a/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-Add-LDFLAGS-to-linker-cmdline.patch b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-Add-LDFLAGS-to-linker-cmdline.patch
index 30ad1b8ad6..8d790125e3 100644
--- a/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-Add-LDFLAGS-to-linker-cmdline.patch
+++ b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-Add-LDFLAGS-to-linker-cmdline.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] Add $(LDFLAGS) to linker cmdline
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch
index dbf7ae0163..73e42df7e4 100644
--- a/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch
+++ b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch
@@ -9,6 +9,8 @@ static function
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
btree.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2022.10.3.bb b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2022.10.3.bb
new file mode 100644
index 0000000000..37a8106bb0
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2022.10.3.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "The NTFS-3G driver is an open source, freely available NTFS driver for Linux with read and write support."
+HOMEPAGE = "http://www.ntfs-3g.org/"
+DEPENDS = "fuse libgcrypt"
+PROVIDES = "ntfsprogs ntfs-3g"
+LICENSE = "GPL-2.0-only & LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a"
+
+SRC_URI = "http://tuxera.com/opensource/ntfs-3g_ntfsprogs-${PV}.tgz \
+ file://0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch \
+"
+S = "${WORKDIR}/ntfs-3g_ntfsprogs-${PV}"
+SRC_URI[sha256sum] = "f20e36ee68074b845e3629e6bced4706ad053804cbaf062fbae60738f854170c"
+
+UPSTREAM_CHECK_URI = "https://www.tuxera.com/community/open-source-ntfs-3g/"
+UPSTREAM_CHECK_REGEX = "ntfs-3g_ntfsprogs-(?P<pver>\d+(\.\d+)+)\.tgz"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[uuid] = "--with-uuid,--without-uuid,util-linux"
+
+# required or it calls ldconfig at install step
+EXTRA_OEMAKE = "LDCONFIG=echo"
+
+PACKAGES =+ "ntfs-3g ntfsprogs libntfs-3g"
+
+FILES:ntfs-3g = "${base_sbindir}/*.ntfs-3g ${bindir}/ntfs-3g* ${base_sbindir}/mount.ntfs"
+RDEPENDS:ntfs-3g += "fuse"
+RRECOMMENDS:ntfs-3g = "util-linux-mount"
+
+FILES:ntfsprogs = "${base_sbindir}/* ${bindir}/* ${sbindir}/*"
+FILES:libntfs-3g = "${libdir}/*${SOLIBS}"
+
+do_install:append() {
+ # Standard mount will execute the program /sbin/mount.TYPE when called.
+ # Add a symbolic link to let mount find ntfs.
+ ln -sf mount.ntfs-3g ${D}${base_sbindir}/mount.ntfs
+ rmdir ${D}${libdir}/ntfs-3g
+
+ # Handle when usrmerge is in effect. Some files are installed to /sbin
+ # regardless of the value of ${base_sbindir}.
+ if [ "${base_sbindir}" != /sbin ] && [ -d ${D}/sbin ]; then
+ mkdir -p ${D}${base_sbindir}
+ mv ${D}/sbin/* ${D}${base_sbindir}
+ rmdir ${D}/sbin
+ fi
+}
+
+# Satisfy the -dev runtime dependency
+ALLOW_EMPTY:${PN} = "1"
+
+CVE_PRODUCT = "tuxera:ntfs-3g"
diff --git a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2022.5.17.bb b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2022.5.17.bb
deleted file mode 100644
index b29716ad49..0000000000
--- a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2022.5.17.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-DESCRIPTION = "The NTFS-3G driver is an open source, freely available NTFS driver for Linux with read and write support."
-HOMEPAGE = "http://www.ntfs-3g.org/"
-DEPENDS = "fuse libgcrypt"
-PROVIDES = "ntfsprogs ntfs-3g"
-LICENSE = "GPL-2.0-only & LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a"
-
-SRC_URI = "http://tuxera.com/opensource/ntfs-3g_ntfsprogs-${PV}.tgz \
- file://0001-libntfs-3g-Makefile.am-fix-install-failed-while-host.patch \
-"
-S = "${WORKDIR}/ntfs-3g_ntfsprogs-${PV}"
-SRC_URI[sha256sum] = "0489fbb6972581e1b417ab578d543f6ae522e7fa648c3c9b49c789510fd5eb93"
-
-UPSTREAM_CHECK_URI = "https://www.tuxera.com/community/open-source-ntfs-3g/"
-UPSTREAM_CHECK_REGEX = "ntfs-3g_ntfsprogs-(?P<pver>\d+(\.\d+)+)\.tgz"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[uuid] = "--with-uuid,--without-uuid,util-linux"
-
-# required or it calls ldconfig at install step
-EXTRA_OEMAKE = "LDCONFIG=echo"
-
-PACKAGES =+ "ntfs-3g ntfsprogs libntfs-3g"
-
-FILES:ntfs-3g = "${base_sbindir}/*.ntfs-3g ${bindir}/ntfs-3g* ${base_sbindir}/mount.ntfs"
-RDEPENDS:ntfs-3g += "fuse"
-RRECOMMENDS:ntfs-3g = "util-linux-mount"
-
-FILES:ntfsprogs = "${base_sbindir}/* ${bindir}/* ${sbindir}/*"
-FILES:libntfs-3g = "${libdir}/*${SOLIBS}"
-
-do_install:append() {
- # Standard mount will execute the program /sbin/mount.TYPE when called.
- # Add a symbolic link to let mount find ntfs.
- ln -sf mount.ntfs-3g ${D}${base_sbindir}/mount.ntfs
- rmdir ${D}${libdir}/ntfs-3g
-
- # Handle when usrmerge is in effect. Some files are installed to /sbin
- # regardless of the value of ${base_sbindir}.
- if [ "${base_sbindir}" != /sbin ] && [ -d ${D}/sbin ]; then
- mkdir -p ${D}${base_sbindir}
- mv ${D}/sbin/* ${D}${base_sbindir}
- rmdir ${D}/sbin
- fi
-}
-
-# Satisfy the -dev runtime dependency
-ALLOW_EMPTY:${PN} = "1"
-
-CVE_PRODUCT = "tuxera:ntfs-3g"
diff --git a/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch b/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch
index e4d52a802b..870d0ef056 100644
--- a/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch
+++ b/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch
@@ -8,6 +8,8 @@ Makefile.am: required file `./README' not found
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
Makefile.am | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb b/meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb
index 1954b5979c..40f851364d 100644
--- a/meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb
+++ b/meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb
@@ -7,17 +7,20 @@ PROVIDES = "${PACKAGES}"
PACKAGES = ' \
packagegroup-meta-filesystems \
packagegroup-meta-filesystems-support \
- packagegroup-meta-filesystems-utls \
+ packagegroup-meta-filesystems-utils \
'
RDEPENDS:packagegroup-meta-filesystems = "\
packagegroup-meta-filesystems \
packagegroup-meta-filesystems-support \
- packagegroup-meta-filesystems-utls \
+ packagegroup-meta-filesystems-utils \
"
RDEPENDS:packagegroup-meta-filesystems = "\
ifuse \
+ libisofs \
+ libburn \
+ libisoburn \
logfsprogs \
fuse-exfat \
owfs \
diff --git a/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch
index 6d60c9d229..fbdb6cbcd7 100644
--- a/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch
+++ b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/Using-PKG_CHECK_MODULES-to-found-headers-and-libraries.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] Using PKG_CHECK_MODULES to found headers and libraries of
Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
configure.in | 5 +++++
src/Makefile.am | 3 +++
2 files changed, 8 insertions(+)
diff --git a/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch
index 31892d230d..d5e9040b9a 100644
--- a/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch
+++ b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
diff --git a/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse/03ee1f8aa0899268ec02b2f54849352df92a3a1d.patch b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse/03ee1f8aa0899268ec02b2f54849352df92a3a1d.patch
new file mode 100644
index 0000000000..63cdc57b44
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse/03ee1f8aa0899268ec02b2f54849352df92a3a1d.patch
@@ -0,0 +1,34 @@
+From 03ee1f8aa0899268ec02b2f54849352df92a3a1d Mon Sep 17 00:00:00 2001
+From: Gabriel Staples <ercaguy@gmail.com>
+Date: Tue, 22 Dec 2020 23:33:55 -0800
+Subject: [PATCH] pytest.ini: fix test warning
+
+Warning:
+
+```
+test/util.py:99
+ sshfs/build/test/util.py:99: PytestUnknownMarkWarning: Unknown pytest.mark.uses_fuse - is this a typo?
+ You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html
+ return pytest.mark.uses_fuse()
+```
+
+References for the fix:
+
+1. https://stackoverflow.com/questions/60806473/pytestunknownmarkwarning-unknown-pytest-mark-xxx-is-this-a-typo/60813297#60813297
+1. https://docs.pytest.org/en/stable/mark.html
+
+Upstream-Status: Submitted [https://github.com/libfuse/sshfs/pull/238]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ test/pytest.ini | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/test/pytest.ini b/test/pytest.ini
+index 95161546..7a7efed4 100644
+--- a/test/pytest.ini
++++ b/test/pytest.ini
+@@ -1,2 +1,4 @@
+ [pytest]
+ addopts = --verbose --assert=rewrite --tb=native -x -r a
++markers =
++ uses_fuse
diff --git a/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse/a1d58ae1be99571a88b8439b027abe6349b74658.patch b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse/a1d58ae1be99571a88b8439b027abe6349b74658.patch
new file mode 100644
index 0000000000..e76dbd5059
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse/a1d58ae1be99571a88b8439b027abe6349b74658.patch
@@ -0,0 +1,31 @@
+From a1d58ae1be99571a88b8439b027abe6349b74658 Mon Sep 17 00:00:00 2001
+From: Gabriel Staples <ercaguy@gmail.com>
+Date: Tue, 22 Dec 2020 23:26:40 -0800
+Subject: [PATCH] Fix deprecated warning in conftest.py
+
+```
+test/conftest.py:66
+ sshfs/build/test/conftest.py:66: PytestDeprecationWarning: @pytest.yield_fixture is deprecated.
+ Use @pytest.fixture instead; they are the same.
+ @pytest.yield_fixture(autouse=True)
+```
+
+Upstream-Status: Submitted [https://github.com/libfuse/sshfs/pull/238]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ test/conftest.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/conftest.py b/test/conftest.py
+index 70cd0c62..d58d45b2 100644
+--- a/test/conftest.py
++++ b/test/conftest.py
+@@ -63,7 +63,7 @@ def register_output(self, pattern, count=1, flags=re.MULTILINE):
+ # relies on tests running sequential (i.e., don't dare to use e.g. the xdist
+ # plugin)
+ current_capfd = None
+-@pytest.yield_fixture(autouse=True)
++@pytest.fixture(autouse=True)
+ def save_cap_fixtures(request, capfd):
+ global current_capfd
+ capfd.false_positives = []
diff --git a/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.3.bb b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.3.bb
index f91e682d24..5a926dac0c 100644
--- a/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.3.bb
+++ b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.3.bb
@@ -1,12 +1,14 @@
SUMMARY = "This is a filesystem client based on the SSH File Transfer Protocol using FUSE"
-AUTHOR = "Miklos Szeredi <miklos@szeredi.hu>"
HOMEPAGE = "https://github.com/libfuse/sshfs"
SECTION = "console/network"
LICENSE = "GPL-2.0-only"
DEPENDS = "glib-2.0 fuse3"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRC_URI = "git://github.com/libfuse/sshfs;branch=master;protocol=https"
+SRC_URI = "git://github.com/libfuse/sshfs;branch=master;protocol=https \
+ file://03ee1f8aa0899268ec02b2f54849352df92a3a1d.patch \
+ file://a1d58ae1be99571a88b8439b027abe6349b74658.patch \
+"
SRCREV = "c91eb9a9a992f1a36c49a8e6f1146e45b5e1c8e7"
S = "${WORKDIR}/git"
@@ -17,8 +19,9 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
bash \
+ fuse \
"
do_install_ptest() {
diff --git a/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-support-cross-compiling.patch b/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-support-cross-compiling.patch
index bf363ca1b7..9b4d0f6cae 100644
--- a/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-support-cross-compiling.patch
+++ b/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-support-cross-compiling.patch
@@ -1,32 +1,31 @@
-From 449cec34c123b86b792627553c6ec7471d2ee7ed Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 30 Jun 2017 14:46:51 +0800
+From 6e794a36564a2639a07d8720260e33d7c9435aa4 Mon Sep 17 00:00:00 2001
+From: Alper Ak <alperyasinak1@gmail.com>
+Date: Fri, 10 Nov 2023 20:50:48 +0300
Subject: [PATCH] support cross compiling
Do not override OE CMAKE variables
-Upstream-Status: Pending
-
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
+
+Upstream-Status: Pending
---
- CMakeLists.txt | 4 ++--
+ src/CMakeLists.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -10,9 +10,9 @@ IF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
- ENDIF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index f549496..ab71fb2 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -4,9 +4,9 @@ set(UNIONFS_SRCS unionfs.c opts.c debug.c findbranch.c readdir.c
+ fuse_ops.c)
+ set(UNIONFSCTL_SRCS unionfsctl.c)
- # Select flags.
--SET(CMAKE_C_FLAGS "-pipe -W -Wall -DFORTIFY_SOURCE=2")
-+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -W -Wall -DFORTIFY_SOURCE=2")
+-SET(CMAKE_C_FLAGS "-pipe -W -Wall -D_FORTIFY_SOURCE=2")
++SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -W -Wall -D_FORTIFY_SOURCE=2")
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
-SET(CMAKE_C_FLAGS_RELEASE "-O2")
+SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2")
SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -DDEBUG")
- if (UNIX AND APPLE)
---
-2.8.1
-
+ add_executable(unionfs ${UNIONFS_SRCS} ${HASHTABLE_SRCS})
diff --git a/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb b/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb
deleted file mode 100644
index 03ae418a49..0000000000
--- a/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "A FUSE based implemention of unionfs"
-HOMEPAGE = "https://github.com/rpodgorny/unionfs-fuse"
-SECTION = "console/network"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://src/unionfs.c;beginline=3;endline=8;md5=30fa8de70fd8abab00b483a1b7943a32 \
- file://LICENSE;md5=7e5a37fce17307066eec6b23546da3b3 \
-"
-
-SRC_URI = "git://github.com/rpodgorny/${BPN}.git;branch=master;protocol=https \
- file://0001-support-cross-compiling.patch \
- "
-SRCREV = "b0e3805d3d84d44ddf3e4e5238ae0332145d8157"
-
-DEPENDS = "fuse"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
diff --git a/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_3.4.bb b/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_3.4.bb
new file mode 100644
index 0000000000..e8fda05365
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_3.4.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A FUSE based implemention of unionfs"
+HOMEPAGE = "https://github.com/rpodgorny/unionfs-fuse"
+SECTION = "console/network"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://src/unionfs.c;beginline=3;endline=8;md5=30fa8de70fd8abab00b483a1b7943a32 \
+ file://LICENSE;md5=7e5a37fce17307066eec6b23546da3b3 \
+"
+
+SRC_URI = "git://github.com/rpodgorny/${BPN}.git;branch=master;protocol=https \
+ file://0001-support-cross-compiling.patch \
+ "
+SRCREV = "773f1853b043eeb64b7459f903a2c65bd096f9d9"
+
+DEPENDS = "fuse3"
+RDEPENDS:${PN} = "bash"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
diff --git a/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-define-loff_t-if-not-already-defined.patch b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-define-loff_t-if-not-already-defined.patch
index df202c8555..6cedc3cb4e 100644
--- a/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-define-loff_t-if-not-already-defined.patch
+++ b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-define-loff_t-if-not-already-defined.patch
@@ -7,6 +7,8 @@ Helps to build with musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
yaffs_guts.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-yaffs_guts.h-define-YTIME_T-if-not-already-defined.patch b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-yaffs_guts.h-define-YTIME_T-if-not-already-defined.patch
new file mode 100644
index 0000000000..98c27d2654
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils/0001-yaffs_guts.h-define-YTIME_T-if-not-already-defined.patch
@@ -0,0 +1,34 @@
+From 05cc2b958090f96d6fa128da43aa69669625e529 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Tue, 5 Mar 2024 12:03:23 +0000
+Subject: [PATCH] yaffs_guts.h: define YTIME_T if not already defined
+
+Fixed:
+yaffs_guts.h:501:9: error: unknown type name 'YTIME_T'
+ 501 | YTIME_T yst_uid;
+
+Upstream-Status: Pending
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ yaffs_guts.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/yaffs_guts.h b/yaffs_guts.h
+index 74ded0b..598271b 100644
+--- a/yaffs_guts.h
++++ b/yaffs_guts.h
+@@ -487,6 +487,10 @@ struct yaffs_obj {
+
+ YCHAR short_name[YAFFS_SHORT_NAME_LENGTH + 1];
+
++#ifndef YTIME_T
++#define YTIME_T time_t
++#endif
++
+ #ifdef CONFIG_YAFFS_WINCE
+ //these are always 64 bits
+ u32 win_ctime[2];
+--
+2.35.5
+
diff --git a/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb
index 6bf321e237..ca5e3302b3 100644
--- a/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb
+++ b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb
@@ -9,7 +9,8 @@ LIC_FILES_CHKSUM = "file://utils/mkyaffs2image.c;beginline=11;endline=13;md5=5f5
file://utils/mkyaffsimage.c;beginline=10;endline=12;md5=5f5464f9b3e981ca574e65b00e438561 \
"
-PV = "0.0+git${SRCPV}"
+# The commit date of SRCREV
+PV = "20221209"
DEPENDS = "mtd-utils"
@@ -17,9 +18,10 @@ DEPENDS = "mtd-utils"
SRC_URI = "git://www.aleph1.co.uk/yaffs2;protocol=git;branch=master \
file://makefile-add-ldflags.patch \
file://0001-define-loff_t-if-not-already-defined.patch \
+ file://0001-yaffs_guts.h-define-YTIME_T-if-not-already-defined.patch \
"
-SRCREV = "9a6f486e56f927eeb8dc7e4e0d84f6bb95eeaa0f"
+SRCREV = "613a901a229e8a701c18f003dd0aee18453e0670"
UPSTREAM_CHECK_COMMITS = "1"
diff --git a/meta-filesystems/recipes-filesystems/zfs/zfs/0001-fs-tests-cmd-readmmap-Replace-uint_t-with-uint32_t.patch b/meta-filesystems/recipes-filesystems/zfs/zfs/0001-fs-tests-cmd-readmmap-Replace-uint_t-with-uint32_t.patch
new file mode 100644
index 0000000000..f1cfab4daf
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/zfs/zfs/0001-fs-tests-cmd-readmmap-Replace-uint_t-with-uint32_t.patch
@@ -0,0 +1,46 @@
+From 1f9a5cb860b3509791e59a8cae9d5f265e832ed0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 28 May 2023 16:33:15 -0700
+Subject: [PATCH] fs-tests/cmd/readmmap: Replace uint_t with uint32_t
+
+Makes it portable across glibc and musl
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/zfs-tests/cmd/readmmap.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/tests/zfs-tests/cmd/readmmap.c b/tests/zfs-tests/cmd/readmmap.c
+index 704ffd55c8..a2590e0e8d 100644
+--- a/tests/zfs-tests/cmd/readmmap.c
++++ b/tests/zfs-tests/cmd/readmmap.c
+@@ -38,6 +38,7 @@
+ * 0 : no errors
+ * --------------------------------------------------------------
+ */
++#include <stdint.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+@@ -55,7 +56,7 @@ main(int argc, char **argv)
+ char *buf = NULL;
+ char *map = NULL;
+ int fd = -1, bytes, retval = 0;
+- uint_t seed;
++ uint32_t seed;
+
+ if (argc < 2 || optind == argc) {
+ (void) fprintf(stderr,
+@@ -92,7 +93,7 @@ main(int argc, char **argv)
+ retval = 1;
+ goto end;
+ }
+- seed = (uint_t)time(NULL);
++ seed = (uint32_t)time(NULL);
+ srandom(seed);
+
+ idx = random() % size;
+--
+2.40.1
+
diff --git a/meta-filesystems/recipes-filesystems/zfs/zfs/aaf28a4630af60496c9d33db1d06a7d7d8983422.patch b/meta-filesystems/recipes-filesystems/zfs/zfs/aaf28a4630af60496c9d33db1d06a7d7d8983422.patch
new file mode 100644
index 0000000000..f5504b389d
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/zfs/zfs/aaf28a4630af60496c9d33db1d06a7d7d8983422.patch
@@ -0,0 +1,56 @@
+From aaf28a4630af60496c9d33db1d06a7d7d8983422 Mon Sep 17 00:00:00 2001
+From: Sebastian Gottschall <s.gottschall@dd-wrt.com>
+Date: Tue, 23 May 2023 13:50:24 +0600
+Subject: [PATCH] fixes broken aarch64 inline assembly for gcc 13.1
+
+fixes the following error
+
+/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neon_common.h:549:24: error: the register specified for 'w7' is not general enough to be used as a register variable
+ 549 | register unsigned char w7 asm("v7") __attribute__((vector_size(16)));
+ | ^~
+/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neonx2.c:193:9: note: in expansion of macro 'GEN_X_DEFINE_6_7'
+ 193 | GEN_X_DEFINE_6_7() \
+ | ^~~~~~~~~~~~~~~~
+/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_impl.h:1360:9: note: in expansion of macro 'REC_PQR_DEFINE'
+ 1360 | REC_PQR_DEFINE();
+ | ^~~~~~~~~~~~~~
+/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neon_common.h:551:24: error: the register specified for 'w8' is not general enough to be used as a register variable
+ 551 | register unsigned char w8 asm("v8") __attribute__((vector_size(16))); \
+ | ^~
+/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neonx2.c:194:9: note: in expansion of macro 'GEN_X_DEFINE_8_9'
+ 194 | GEN_X_DEFINE_8_9() \
+ | ^~~~~~~~~~~~~~~~
+/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_impl.h:1360:9: note: in expansion of macro 'REC_PQR_DEFINE'
+ 1360 | REC_PQR_DEFINE();
+ | ^~~~~~~~~~~~~~
+/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neon_common.h:552:24: error: the register specified for 'w9' is not general enough to be used as a register variable
+ 552 | register unsigned char w9 asm("v9") __attribute__((vector_size(16)));
+ | ^~
+/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_aarch64_neonx2.c:194:9: note: in expansion of macro 'GEN_X_DEFINE_8_9'
+ 194 | GEN_X_DEFINE_8_9() \
+ | ^~~~~~~~~~~~~~~~
+/mnt/b/yoe/master/build/tmp/work/imx8qm_var_som-yoe-linux/zfs/2.1.9-r0/build/../zfs-2.1.9/module/zfs/vdev_raidz_math_impl.h:1360:9: note: in expansion of macro 'REC_PQR_DEFINE'
+ 1360 | REC_PQR_DEFINE();
+
+Upstream-Status: Pending [https://github.com/BrainSlayer/zfs/commit/aaf28a4630af60496c9d33db1d06a7d7d8983422]
+Signed-off-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ module/Kbuild.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/module/Kbuild.in
++++ b/module/Kbuild.in
+@@ -57,9 +57,9 @@ asflags-y := $(ZFS_MODULE_CFLAGS) $(ZFS_
+ ccflags-y := $(ZFS_MODULE_CFLAGS) $(ZFS_MODULE_CPPFLAGS)
+
+ ifeq ($(CONFIG_ARM64),y)
+-CFLAGS_REMOVE_zcommon/zfs_fletcher_aarch64_neon.o += -mgeneral-regs-only
+-CFLAGS_REMOVE_zfs/vdev_raidz_math_aarch64_neon.o += -mgeneral-regs-only
+-CFLAGS_REMOVE_zfs/vdev_raidz_math_aarch64_neonx2.o += -mgeneral-regs-only
++CFLAGS_REMOVE_zcommon/zfs_fletcher_aarch64_neon.o = -mgeneral-regs-only
++CFLAGS_REMOVE_zfs/vdev_raidz_math_aarch64_neon.o = -mgeneral-regs-only
++CFLAGS_REMOVE_zfs/vdev_raidz_math_aarch64_neonx2.o = -mgeneral-regs-only
+ endif
+
+ # Suppress unused-value warnings in sparc64 architecture headers
diff --git a/meta-filesystems/recipes-filesystems/zfs/zfs_2.1.5.bb b/meta-filesystems/recipes-filesystems/zfs/zfs_2.1.5.bb
deleted file mode 100644
index 6aa674c790..0000000000
--- a/meta-filesystems/recipes-filesystems/zfs/zfs_2.1.5.bb
+++ /dev/null
@@ -1,61 +0,0 @@
-SUMMARY = "OpenZFS on Linux and FreeBSD"
-DESCRIPTION = "OpenZFS on Linux and FreeBSD"
-LICENSE = "CDDL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7087caaf1dc8a2856585619f4a787faa"
-HOMEPAGE ="https://github.com/openzfs/zfs"
-
-SRC_URI = "https://github.com/openzfs/zfs/releases/download/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
- file://0001-Define-strndupa-if-it-does-not-exist.patch \
-"
-SRC_URI[sha256sum] = "1913041e5c44ff07ca384346ad8145aeedf77e77cd1cea9ec5d533246691e10c"
-
-# Using both 'module' and 'autotools' classes seems a bit odd, they both
-# define a do_compile function.
-# That's why we opt for module-base, also this prevents module splitting.
-inherit module-base pkgconfig autotools
-
-DEPENDS = "virtual/kernel zlib util-linux libtirpc openssl curl"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd sysvinit', d)}"
-
-PACKAGECONFIG[pam] = "--enable-pam --with-pamconfigsdir=${datadir}/pam-configs --with-pammoduledir=${libdir}/security, --disable-pam"
-PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,"
-PACKAGECONFIG[sysvinit] = "--enable-sysvinit,--disable-sysvinit,"
-
-EXTRA_OECONF:append = " \
- --disable-pyzfs \
- --with-linux=${STAGING_KERNEL_DIR} --with-linux-obj=${STAGING_KERNEL_BUILDDIR} \
- --with-mounthelperdir=${base_sbin} \
- --with-udevdir=${base_libdir}/udev \
- --without-dracutdir \
- "
-
-EXTRA_OEMAKE:append = " \
- INSTALL_MOD_PATH=${D}${root_prefix} \
- "
-
-do_install:append() {
- # /usr/share/zfs contains the zfs-tests folder which we do not need:
- rm -rf ${D}${datadir}/zfs
-
- rm -rf ${D}${datadir}/initramfs-tools
-}
-
-FILES:${PN} += "\
- ${base_sbindir}/* \
- ${base_libdir}/* \
- ${sysconfdir}/* \
- ${sbindir}/* \
- ${bindir}/* \
- ${libexecdir}/${BPN}/* \
- ${libdir}/* \
- "
-
-FILES:${PN}-dev += "\
- ${prefix}/src/zfs-${PV}/* \
- ${prefix}/src/spl-${PV}/* \
- "
-# Not yet ported to rv32
-COMPATIBLE_HOST:riscv32 = "null"
-# conflicting definition of ABS macro from asm/asm.h from kernel
-COMPATIBLE_HOST:mips = "null"
diff --git a/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.2.bb b/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.2.bb
new file mode 100644
index 0000000000..d3ea6797e7
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.2.bb
@@ -0,0 +1,77 @@
+SUMMARY = "OpenZFS on Linux and FreeBSD"
+DESCRIPTION = "OpenZFS on Linux and FreeBSD"
+LICENSE = "CDDL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7087caaf1dc8a2856585619f4a787faa"
+HOMEPAGE ="https://github.com/openzfs/zfs"
+
+SRCREV = "494aaaed89cb9fe9f2da3b6c6f465a4bc9f6a7e1"
+SRC_URI = "git://github.com/openzfs/zfs;protocol=https;branch=zfs-2.2-release \
+ file://0001-Define-strndupa-if-it-does-not-exist.patch \
+ file://aaf28a4630af60496c9d33db1d06a7d7d8983422.patch \
+ file://0001-fs-tests-cmd-readmmap-Replace-uint_t-with-uint32_t.patch \
+"
+
+S = "${WORKDIR}/git"
+
+# Using both 'module' and 'autotools' classes seems a bit odd, they both
+# define a do_compile function.
+# That's why we opt for module-base, also this prevents module splitting.
+inherit module-base pkgconfig autotools bash-completion
+
+DEPENDS = "virtual/kernel zlib util-linux libtirpc openssl curl"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd sysvinit', d)}"
+
+PACKAGECONFIG[pam] = "--enable-pam --with-pamconfigsdir=${datadir}/pam-configs --with-pammoduledir=${libdir}/security, --disable-pam"
+PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,"
+PACKAGECONFIG[sysvinit] = "--enable-sysvinit,--disable-sysvinit,"
+
+EXTRA_OECONF:append = " \
+ --disable-pyzfs \
+ --with-linux=${STAGING_KERNEL_DIR} --with-linux-obj=${STAGING_KERNEL_BUILDDIR} \
+ --with-mounthelperdir=${base_sbin} \
+ --with-udevdir=${base_libdir}/udev \
+ --with-systemdunitdir=${systemd_system_unitdir} \
+ --with-systemdgeneratordir=${nonarch_base_libdir}/systemd/system-generators \
+ --with-systemdpresetdir=${nonarch_base_libdir}/systemd/system-preset \
+ --with-systemdmodulesloaddir=${sysconfdir}/module-load.d \
+ --without-dracutdir \
+"
+
+EXTRA_OEMAKE:append = " \
+ INSTALL_MOD_PATH=${D}${root_prefix} \
+"
+
+do_install:append() {
+ # /usr/share/zfs contains the zfs-tests folder which we do not need:
+ rm -rf ${D}${datadir}/zfs
+
+ rm -rf ${D}${datadir}/initramfs-tools
+}
+
+FILES:${PN} += "\
+ ${nonarch_base_libdir}/modules \
+ ${systemd_system_unitdir} \
+ ${nonarch_base_libdir}/systemd/system-generators \
+ ${nonarch_base_libdir}/systemd/system-preset \
+ ${sysconfdir}/modules-load.d/${BPN}.conf \
+ ${sysconfdir}/default/${BPN} \
+ ${sysconfdir}/sudoers.d/${BPN} \
+ ${sysconfdir}/${BPN} \
+ ${base_libdir}/udev \
+ ${sbindir} \
+ ${bindir} \
+ ${libexecdir}/${BPN} \
+ ${libdir} \
+"
+
+FILES:${PN}-dev += "\
+ ${prefix}/src/zfs-${PV} \
+ ${prefix}/src/spl-${PV} \
+"
+# Not yet ported to rv32
+COMPATIBLE_HOST:riscv32 = "null"
+# conflicting definition of ABS macro from asm/asm.h from kernel
+COMPATIBLE_HOST:mips = "null"
+# FTBFS on aarch64 with 6.2+ kernel see https://github.com/openzfs/zfs/issues/14555
+COMPATIBLE_HOST:aarch64 = "null"
diff --git a/meta-filesystems/recipes-support/composefs/composefs_1.0.3.bb b/meta-filesystems/recipes-support/composefs/composefs_1.0.3.bb
new file mode 100644
index 0000000000..7607b0a12c
--- /dev/null
+++ b/meta-filesystems/recipes-support/composefs/composefs_1.0.3.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Tools to handle creating and mounting composefs images"
+HOMEPAGE = "https://github.com/containers/composefs"
+LICENSE = "GPL-3.0-or-later & LGPL-2.0-or-later & Apache-2.0"
+LIC_FILES_CHKSUM = "\
+ file://BSD-2-Clause.txt;md5=121c8a0a8fa5961a26b7863034ebcce8 \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6 \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+ file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.Apache-2.0;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+"
+DEPENDS = "fuse3 openssl"
+SRCREV = "2d5cdcb9176cfe4ccf1761ef6d78e1c48de35649"
+PV = "1.0.3"
+
+SRC_URI = "\
+ git://github.com/containers/composefs.git;protocol=https;branch=main \
+ file://0001-musl-basename-use-portable-implementation-for-basena.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/meta-filesystems/recipes-support/composefs/files/0001-musl-basename-use-portable-implementation-for-basena.patch b/meta-filesystems/recipes-support/composefs/files/0001-musl-basename-use-portable-implementation-for-basena.patch
new file mode 100644
index 0000000000..49a0b21c6e
--- /dev/null
+++ b/meta-filesystems/recipes-support/composefs/files/0001-musl-basename-use-portable-implementation-for-basena.patch
@@ -0,0 +1,75 @@
+From b21a9d4f10a066cac76bb345d31fdd24afcf3e6f Mon Sep 17 00:00:00 2001
+From: Fathi Boudra <fathi.boudra@linaro.org>
+Date: Tue, 9 Apr 2024 08:47:37 +0200
+Subject: [PATCH] musl: basename: use portable implementation for basename API
+
+musl has removed the non-prototype declaration of basename from string.h which
+now results in build errors with newer clang compilers.
+
+Implement GNU basename behavior using strchr which is portable across libcs.
+
+Fixes:
+| ../../git/tools/mountcomposefs.c:43:20:
+| error: call to undeclared function 'basename'; ISO C99 and later do not
+| support implicit function declarations [-Wimplicit-function-declaration]
+| 43 | const char *bin = basename(argv0);
+| | ^
+| ../../git/tools/mountcomposefs.c:43:14:
+| error: incompatible integer to pointer conversion initializing 'const char *'
+| with an expression of type 'int' [-Wint-conversion]
+| 43 | const char *bin = basename(argv0);
+| | ^ ~~~~~~~~~~~~~~~
+
+For reference:
+https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Closes: https://github.com/containers/composefs/issues/272
+
+Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
+
+Upstream-Status: Submitted [https://github.com/containers/composefs/pull/273]
+---
+ libcomposefs/lcfs-utils.h | 6 ++++++
+ tools/mkcomposefs.c | 2 +-
+ tools/mountcomposefs.c | 3 ++-
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+--- a/tools/mountcomposefs.c
++++ b/tools/mountcomposefs.c
+@@ -37,10 +37,11 @@
+ #include <linux/fsverity.h>
+
+ #include "libcomposefs/lcfs-mount.h"
++#include "libcomposefs/lcfs-utils.h"
+
+ static void usage(const char *argv0)
+ {
+- const char *bin = basename(argv0);
++ const char *bin = gnu_basename(argv0);
+ fprintf(stderr,
+ "usage: %s [-t type] [-o opt[,opts..]] IMAGE MOUNTPOINT\n"
+ "Example:\n"
+--- a/libcomposefs/lcfs-utils.h
++++ b/libcomposefs/lcfs-utils.h
+@@ -161,4 +161,10 @@ static inline void *steal_pointer(void *
+ /* type safety */
+ #define steal_pointer(pp) (0 ? (*(pp)) : (steal_pointer)(pp))
+
++static inline const char *gnu_basename(const char *filename)
++{
++ const char *p = strrchr(filename, '/');
++ return p ? p+1 : filename;
++}
++
+ #endif
+--- a/tools/mkcomposefs.c
++++ b/tools/mkcomposefs.c
+@@ -315,7 +315,7 @@ static int fill_store(struct lcfs_node_s
+
+ static void usage(const char *argv0)
+ {
+- const char *bin = basename(argv0);
++ const char *bin = gnu_basename(argv0);
+ fprintf(stderr,
+ "Usage: %s [OPTIONS] SOURCE IMAGE\n"
+ "Options:\n"
diff --git a/meta-filesystems/recipes-support/fuse/files/fuse2-0007-util-ulockmgr_server.c-conditionally-define-closefro.patch b/meta-filesystems/recipes-support/fuse/files/fuse2-0007-util-ulockmgr_server.c-conditionally-define-closefro.patch
index 3607304e05..7b548b4cde 100644
--- a/meta-filesystems/recipes-support/fuse/files/fuse2-0007-util-ulockmgr_server.c-conditionally-define-closefro.patch
+++ b/meta-filesystems/recipes-support/fuse/files/fuse2-0007-util-ulockmgr_server.c-conditionally-define-closefro.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
From: Sam James <sam@gentoo.org>
Date: Sat, 24 Jul 2021 22:02:45 +0100
Subject: [PATCH] util/ulockmgr_server.c: conditionally define closefrom (fix
diff --git a/meta-filesystems/recipes-support/fuse/fuse3_3.12.0.bb b/meta-filesystems/recipes-support/fuse/fuse3_3.12.0.bb
deleted file mode 100644
index b886effc85..0000000000
--- a/meta-filesystems/recipes-support/fuse/fuse3_3.12.0.bb
+++ /dev/null
@@ -1,80 +0,0 @@
-SUMMARY = "Implementation of a fully functional filesystem in a userspace program"
-DESCRIPTION = "FUSE (Filesystem in Userspace) is a simple interface for userspace \
- programs to export a virtual filesystem to the Linux kernel. FUSE \
- also aims to provide a secure method for non privileged users to \
- create and mount their own filesystem implementations. \
- "
-HOMEPAGE = "https://github.com/libfuse/libfuse"
-SECTION = "libs"
-LICENSE = "GPL-2.0-only & LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://GPL2.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://LGPL2.txt;md5=4fbd65380cdd255951079008b364516c \
- file://LICENSE;md5=a55c12a2d7d742ecb41ca9ae0a6ddc66"
-
-SRC_URI = "https://github.com/libfuse/libfuse/releases/download/fuse-${PV}/fuse-${PV}.tar.xz \
-"
-SRC_URI[sha256sum] = "33b8a92d6f7a88e6a889f0009206933482f48f3eb85d88cf09ef551313ac7373"
-
-S = "${WORKDIR}/fuse-${PV}"
-
-UPSTREAM_CHECK_URI = "https://github.com/libfuse/libfuse/releases"
-UPSTREAM_CHECK_REGEX = "fuse\-(?P<pver>3(\.\d+)+).tar.xz"
-
-CVE_PRODUCT = "fuse_project:fuse"
-
-inherit meson pkgconfig ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- bash \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/test
- install -d ${D}${PTEST_PATH}/example
- install -d ${D}${PTEST_PATH}/util
- cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
-
- example_excutables=`find ${B}/example -type f -executable`
- util_excutables=`find ${B}/util -type f -executable`
- test_excutables=`find ${B}/test -type f -executable`
-
- for e in $example_excutables
- do
- cp -rf $e ${D}${PTEST_PATH}/example/
- done
-
- for e in $util_excutables
- do
- cp -rf $e ${D}${PTEST_PATH}/util/
- done
-
- for e in $test_excutables
- do
- cp -rf $e ${D}${PTEST_PATH}/test
- done
-}
-
-DEPENDS = "udev"
-
-PACKAGES =+ "fuse3-utils"
-
-RPROVIDES:${PN}-dbg += "fuse3-utils-dbg"
-
-RRECOMMENDS:${PN}:class-target = "kernel-module-fuse fuse3-utils"
-
-FILES:${PN} += "${libdir}/libfuse3.so.*"
-FILES:${PN}-dev += "${libdir}/libfuse3*.la"
-
-# Forbid auto-renaming to libfuse3-utils
-FILES:fuse3-utils = "${bindir} ${base_sbindir}"
-DEBIAN_NOAUTONAME:fuse3-utils = "1"
-DEBIAN_NOAUTONAME:${PN}-dbg = "1"
-
-do_install:append() {
- rm -rf ${D}${base_prefix}/dev
-}
diff --git a/meta-filesystems/recipes-support/fuse/fuse3_3.16.2.bb b/meta-filesystems/recipes-support/fuse/fuse3_3.16.2.bb
new file mode 100644
index 0000000000..2b0797a6f5
--- /dev/null
+++ b/meta-filesystems/recipes-support/fuse/fuse3_3.16.2.bb
@@ -0,0 +1,84 @@
+SUMMARY = "Implementation of a fully functional filesystem in a userspace program"
+DESCRIPTION = "FUSE (Filesystem in Userspace) is a simple interface for userspace \
+ programs to export a virtual filesystem to the Linux kernel. FUSE \
+ also aims to provide a secure method for non privileged users to \
+ create and mount their own filesystem implementations. \
+ "
+HOMEPAGE = "https://github.com/libfuse/libfuse"
+SECTION = "libs"
+LICENSE = "GPL-2.0-only & LGPL-2.0-only"
+LIC_FILES_CHKSUM = " \
+ file://GPL2.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LGPL2.txt;md5=4fbd65380cdd255951079008b364516c \
+ file://LICENSE;md5=a55c12a2d7d742ecb41ca9ae0a6ddc66 \
+"
+
+SRC_URI = "https://github.com/libfuse/libfuse/releases/download/fuse-${PV}/fuse-${PV}.tar.gz \
+"
+SRC_URI[sha256sum] = "f797055d9296b275e981f5f62d4e32e089614fc253d1ef2985851025b8a0ce87"
+
+S = "${WORKDIR}/fuse-${PV}"
+
+UPSTREAM_CHECK_URI = "https://github.com/libfuse/libfuse/releases"
+UPSTREAM_CHECK_REGEX = "fuse\-(?P<pver>3(\.\d+)+).tar.xz"
+
+CVE_PRODUCT = "fuse_project:fuse"
+
+inherit meson pkgconfig ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-looseversion \
+ bash \
+"
+RRECOMMENDS:${PN}-ptest += " kernel-module-cuse"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/test
+ install -d ${D}${PTEST_PATH}/example
+ install -d ${D}${PTEST_PATH}/util
+ cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
+
+ example_excutables=`find ${B}/example -type f -executable`
+ util_excutables=`find ${B}/util -type f -executable`
+ test_excutables=`find ${B}/test -type f -executable`
+
+ for e in $example_excutables
+ do
+ cp -rf $e ${D}${PTEST_PATH}/example/
+ done
+
+ for e in $util_excutables
+ do
+ cp -rf $e ${D}${PTEST_PATH}/util/
+ done
+
+ for e in $test_excutables
+ do
+ cp -rf $e ${D}${PTEST_PATH}/test
+ done
+}
+
+DEPENDS = "udev"
+
+PACKAGES =+ "fuse3-utils"
+
+RPROVIDES:${PN}-dbg += "fuse3-utils-dbg"
+
+RRECOMMENDS:${PN}:class-target = "kernel-module-fuse fuse3-utils"
+
+FILES:${PN} += "${libdir}/libfuse3.so.*"
+FILES:${PN}-dev += "${libdir}/libfuse3*.la"
+
+# Forbid auto-renaming to libfuse3-utils
+FILES:fuse3-utils = "${bindir} ${base_sbindir}"
+DEBIAN_NOAUTONAME:fuse3-utils = "1"
+DEBIAN_NOAUTONAME:${PN}-dbg = "1"
+
+do_install:append() {
+ rm -rf ${D}${base_prefix}/dev
+}
diff --git a/meta-filesystems/recipes-support/python3-looseversion/python3-looseversion_1.3.0.bb b/meta-filesystems/recipes-support/python3-looseversion/python3-looseversion_1.3.0.bb
new file mode 100644
index 0000000000..323ddb4157
--- /dev/null
+++ b/meta-filesystems/recipes-support/python3-looseversion/python3-looseversion_1.3.0.bb
@@ -0,0 +1,14 @@
+# Copyright (C) 2024 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Version numbering for anarchists and software realists"
+HOMEPAGE = "https://github.com/effigies/looseversion"
+LICENSE = "PSF-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d5605fc335ce1bab614032468d0a1e00"
+
+DEPENDS = "python3-hatchling-native"
+SRC_URI[sha256sum] = "ebde65f3f6bb9531a81016c6fef3eb95a61181adc47b7f949e9c0ea47911669e"
+
+inherit pypi python_hatchling
+
+PYPI_PACKAGE = "looseversion"
diff --git a/meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Do-not-build-LFS-version-of-readdir.patch b/meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Do-not-build-LFS-version-of-readdir.patch
new file mode 100644
index 0000000000..c983733dcb
--- /dev/null
+++ b/meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Do-not-build-LFS-version-of-readdir.patch
@@ -0,0 +1,32 @@
+From 12ba95281d0bbea3576350d635b4dee0f953b94a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 29 Nov 2022 18:38:07 -0800
+Subject: [PATCH] libau: Do not build LFS version of readdir
+
+rdu64 is providing largefile supported version of readdir and readdir_r
+however, we enable largefile support unconditionally in OE therefore its
+not needed since readdir() and readdir_r() are already LFS capable
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libau/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libau/Makefile b/libau/Makefile
+index 9ada831..1fd1ccc 100644
+--- a/libau/Makefile
++++ b/libau/Makefile
+@@ -30,7 +30,7 @@ STRIP ?= strip
+ all: ${LibSo}
+
+ ifeq (${Glibc},yes)
+-LibSoObj += rdu64.o
++#LibSoObj += rdu64.o
+
+ # this is unnecessary on 64bit system?
+ rdu64.c: rdu.c
+--
+2.38.1
+
diff --git a/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb b/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb
index f565be3f7e..ad846af470 100644
--- a/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb
+++ b/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb
@@ -12,13 +12,14 @@ SRC_URI = "git://git.code.sf.net/p/aufs/aufs-util;protocol=git;branch=aufs4.9 \
https://raw.githubusercontent.com/sfjro/aufs4-linux/aufs4.9/include/uapi/linux/aufs_type.h;name=aufs_type \
file://aufs-util-don-t-strip-executables.patch \
file://aufs-util-add-tool-concept-to-Makefile-for-cross-com.patch \
+ file://0001-libau-Do-not-build-LFS-version-of-readdir.patch \
"
SRC_URI[aufs_type.md5sum] = "b37129ef0703de72a852db7e48bdedc6"
SRC_URI[aufs_type.sha256sum] = "7ff6566adb9c7a3b6862cdc85a690ab546f1d0bc81ddd595fd663c0a69031683"
UPSTREAM_CHECK_COMMITS = "1"
-PV = "4.9+git${SRCPV}"
+PV = "4.9+git"
S = "${WORKDIR}/git"
diff --git a/meta-filesystems/recipes-utils/binfs/bindfs_1.17.6.bb b/meta-filesystems/recipes-utils/binfs/bindfs_1.17.6.bb
new file mode 100644
index 0000000000..673198e2dd
--- /dev/null
+++ b/meta-filesystems/recipes-utils/binfs/bindfs_1.17.6.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A FUSE filesystem for mounting a directory to another location"
+DESCRIPTION = "bindfs is a FUSE filesystem for mounting a directory to another location, similarly to mount --bind."
+HOMEPAGE = "https://bindfs.org/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "fuse"
+RDEPENDS:${PN} = "fuse"
+
+SRC_URI = "git://github.com/mpartel/bindfs;protocol=https;branch=master"
+SRCREV = "b982aee1161307cdd0e90f7f9597b11872440efc"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig gettext
diff --git a/meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb b/meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb
index a4573cf596..b4e5da6e20 100644
--- a/meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb
+++ b/meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb
@@ -9,8 +9,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
SECTION = "base"
-DEPENDS = "btrfs-tools"
-
SRC_URI = "git://github.com/kdave/${BPN};branch=master;protocol=https \
file://0001-change-sysconfig-path-to-etc-default.patch \
file://0002-add-WantedBy-directive-to-btrfsmaintenance-refresh.s.patch \
@@ -20,11 +18,9 @@ SRCREV = "be42cb6267055d125994abd6927cf3a26deab74c"
UPSTREAM_CHECK_URI = "https://github.com/kdave/${BPN}/tags"
UPSTREAM_CHECK_REGEX = "${BPN}/releases/tag/v(?P<pver>\d+(?:\.\d+)*)"
-RDEPENDS:${PN} = "bash"
-
-S="${WORKDIR}/git"
+RDEPENDS:${PN} = "bash btrfs-tools"
-inherit allarch
+S = "${WORKDIR}/git"
do_configure[noexec] = "1"
do_compile[noexec] = "1"
@@ -38,9 +34,9 @@ do_install() {
${D}${systemd_system_unitdir}
install -Dm0644 ${S}/btrfsmaintenance-functions \
- ${D}${datadir}/${PN}/btrfsmaintenance-functions
+ ${D}${datadir}/${BPN}/btrfsmaintenance-functions
install -Dm0755 ${S}/*.sh \
- ${D}${datadir}/${PN}
+ ${D}${datadir}/${BPN}
install -Dm0644 ${S}/sysconfig.btrfsmaintenance \
${D}${sysconfdir}/default/btrfsmaintenance
diff --git a/meta-filesystems/recipes-utils/e2tools/e2tools_git.bb b/meta-filesystems/recipes-utils/e2tools/e2tools_git.bb
new file mode 100644
index 0000000000..1fa5e01874
--- /dev/null
+++ b/meta-filesystems/recipes-utils/e2tools/e2tools_git.bb
@@ -0,0 +1,75 @@
+SUMMARY = "Set of GPL'ed utilities to ext2/ext3 filesystem."
+DESCRIPTION = "e2tools is a simple set of GPL'ed utilities to read, write, \
+and manipulate files in an ext2/ext3 filesystem. These utilities access a \
+filesystem directly using the ext2fs library. Can also be used on a Linux \
+machine to read/write to disk images or floppies without having to mount \
+them or have root access."
+HOMEPAGE = "https://github.com/e2tools/e2tools"
+SECTION = "base"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS += "coreutils e2fsprogs"
+
+PV = "0.1.0+git"
+
+SRC_URI = " \
+ git://github.com/e2tools/e2tools;protocol=https;branch=master \
+ file://run-ptest \
+"
+
+SRCREV = "fd092754a6b65c3a769f74f888668c066f09c36d"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig ptest
+
+do_configure:prepend() {
+ git -C "${WORKDIR}/git" reset --hard HEAD
+
+ # To install ptest for this package, special configuration needs to be
+ # done before do_configure(). So, do_configure_ptest() which is scheduled
+ # after do_configure() cannot be used.
+
+ # We only do special configuration if we are installing ptest for this
+ # package.
+ if [ "${@d.getVar('PTEST_ENABLED')}" -eq "1" ]; then
+ # Since we guarantee run-time dependency when installing the ptest for
+ # this package, we do not need the check macros under section "checks
+ # for programs" in "configure.ac". Plus, these check macros set the
+ # ouput variables to incorrect values as these checks are performed on
+ # the host environment. Still, we need these variables outputted from
+ # these check macros. So, we insert the following lines to manually
+ # set these output variables to the correct value in "configure.ac".
+
+ # Note that HAVE_DD_COMMAND and HAVE_MKE2FS_COMMAND are only ever used
+ # in tests/Makefile-files which determines whether to include the test
+ # cases. As for output variables CHMOD, DD, and MKE2FS, they only
+ # point to the programs which test cases need to run. Since these
+ # commands are guaranteed to be present due to RDEPENDS and are
+ # guaranteed to be accessible under PATH environment variable on the
+ # target, we only need to specify the name of these programs.
+
+ perl -i -0777 -pe 's/(^dnl\s*=+\s*^dnl\s*Checks for compiler flags\s*^dnl\s*=+)/
+AC_SUBST([CHMOD], 'chmod')
+AC_SUBST([DD], 'dd')
+AC_SUBST([MKE2FS], 'mke2fs')
+AM_CONDITIONAL([HAVE_DD_COMMAND], [true])
+AM_CONDITIONAL([HAVE_MKE2FS_COMMAND], [true])
+\1/ms' "${WORKDIR}/git/configure.ac"
+ fi
+}
+
+do_install_ptest() {
+ rm -rf "${D}${PTEST_PATH}/*"
+ cp -r ../build "${D}${PTEST_PATH}"
+ cp -r "${S}/build-aux" "${D}${PTEST_PATH}/build"
+ cp -r "${S}" "${D}${PTEST_PATH}"
+ rm -rf ${D}${PTEST_PATH}/build/config.log ${D}${PTEST_PATH}/build/autom4te.cache \
+ ${D}${PTEST_PATH}/git/.git ${D}${PTEST_PATH}/git/autom4te.cache
+ sed -i -e 's;${RECIPE_SYSROOT};;g' ${D}${PTEST_PATH}/build/config.status
+}
+
+RDEPENDS:${PN}-ptest += "bash coreutils e2fsprogs e2tools gawk make perl"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-filesystems/recipes-utils/e2tools/files/run-ptest b/meta-filesystems/recipes-utils/e2tools/files/run-ptest
new file mode 100644
index 0000000000..3d4dd9cf37
--- /dev/null
+++ b/meta-filesystems/recipes-utils/e2tools/files/run-ptest
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+set -e
+
+make -C build check
diff --git a/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.3.0.bb b/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.3.0.bb
deleted file mode 100644
index abb8fece3a..0000000000
--- a/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.3.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "utilities to create, check, label and dump exFAT filesystem"
-DESCRIPTION = "Utilities to manage extended file allocation table filesystem. \
-This package provides tools to create, check and label the filesystem. It \
-contains \
- - dumpexfat to dump properties of the filesystem \
- - exfatfsck / fsck.exfat to report errors found on a exFAT filesystem \
- - exfatlabel to label a exFAT filesystem \
- - mkexfatfs / mkfs.exfat to create a exFAT filesystem. \
-"
-HOMEPAGE = "https://github.com/relan/exfat"
-SECTION = "universe/otherosfs"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "https://github.com/relan/exfat/releases/download/v${PV}/${BP}.tar.gz"
-
-UPSTREAM_CHECK_URI = "https://github.com/relan/exfat/releases"
-
-DEPENDS = "virtual/libc"
-
-inherit pkgconfig autotools
-
-SRC_URI[md5sum] = "f8928571b152455e828ca0bd42af8b73"
-SRC_URI[sha256sum] = "dfebd07a7b907e2d603d3a9626e6440bd43ec6c4e8c07ccfc57ce9502b724835"
diff --git a/meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.2.bb b/meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.2.bb
new file mode 100644
index 0000000000..0dd5d8f5e7
--- /dev/null
+++ b/meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.2.bb
@@ -0,0 +1,24 @@
+SUMMARY = "exFAT filesystem userspace utilities"
+DESCRIPTION = "\
+As new exfat filesystem is merged into linux-5.7 kernel, exfatprogs is \
+created as an official userspace utilities that contain all of the standard \
+utilities for creating and fixing and debugging exfat filesystem in linux \
+system. The goal of exfatprogs is to provide high performance and quality \
+at the level of exfat utilities in windows. And this software is licensed \
+under the GNU General Public License Version 2."
+HOMEPAGE = "https://github.com/${BPN}/${BPN}"
+SECTION = "universe/otherosfs"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
+SRC_URI[sha256sum] = "61d517231f8ec177eeb5955fd6edb89748d3f88ba412c48bcb32741b430e359a"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+UPSTREAM_CHECK_REGEX = "${BPN}-(?P<pver>\d+(\.\d+)+)"
+
+inherit autotools
+
+RPROVIDES:${PN} = "exfat-utils"
+RCONFLICTS:${PN} = "exfat-utils"
+RREPLACES:${PN} = "exfat-utils"
diff --git a/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-f2fs_io-Define-_FILE_OFFSET_BITS-64.patch b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-f2fs_io-Define-_FILE_OFFSET_BITS-64.patch
new file mode 100644
index 0000000000..d4e3194e62
--- /dev/null
+++ b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-f2fs_io-Define-_FILE_OFFSET_BITS-64.patch
@@ -0,0 +1,183 @@
+From 3c0314e1820afc9a98e890cc5f7973c3c81877f8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 21 Dec 2022 18:23:03 -0800
+Subject: [PATCH] f2fs_io: Define _FILE_OFFSET_BITS=64
+
+Remove _LARGEFILE64_SOURCE, this is redundant when _FILE_OFFSET_BITS=64
+additionally it fixes build with musl because the detection logic for
+lseek64 fails because when using _LARGEFILE64_SOURCE musl also define's
+lseek64 as an alias to lseek
+
+Upstream-Status: Submitted [https://lore.kernel.org/linux-f2fs-devel/20221222022830.976309-2-raj.khem@gmail.com/T/#u]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/libf2fs_io.c | 4 +++-
+ tools/f2fs_io/f2fs_io.c | 4 ++--
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+--- a/lib/libf2fs_io.c
++++ b/lib/libf2fs_io.c
+@@ -11,7 +11,9 @@
+ *
+ * Dual licensed under the GPL or LGPL version 2 licenses.
+ */
+-#define _LARGEFILE64_SOURCE
++#ifndef _FILE_OFFSET_BITS
++#define _FILE_OFFSET_BITS 64
++#endif
+
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -67,22 +69,13 @@ static int __get_device_fd(__u64 *offset
+ return -1;
+ }
+
+-#ifndef HAVE_LSEEK64
+-typedef off_t off64_t;
+-
+-static inline off64_t lseek64(int fd, __u64 offset, int set)
+-{
+- return lseek(fd, offset, set);
+-}
+-#endif
+-
+ /* ---------- dev_cache, Least Used First (LUF) policy ------------------- */
+ /*
+ * Least used block will be the first victim to be replaced when max hash
+ * collision exceeds
+ */
+ static bool *dcache_valid; /* is the cached block valid? */
+-static off64_t *dcache_blk; /* which block it cached */
++static off_t *dcache_blk; /* which block it cached */
+ static uint64_t *dcache_lastused; /* last used ticks for cache entries */
+ static char *dcache_buf; /* cached block data */
+ static uint64_t dcache_usetick; /* current use tick */
+@@ -172,7 +165,7 @@ static int dcache_alloc_all(long n)
+ {
+ if (n <= 0)
+ return -1;
+- if ((dcache_blk = (off64_t *) malloc(sizeof(off64_t) * n)) == NULL
++ if ((dcache_blk = (off_t *) malloc(sizeof(off_t) * n)) == NULL
+ || (dcache_lastused = (uint64_t *)
+ malloc(sizeof(uint64_t) * n)) == NULL
+ || (dcache_buf = (char *) malloc (F2FS_BLKSIZE * n)) == NULL
+@@ -257,7 +250,7 @@ static inline long dcache_relocate(long
+ dcache_config.num_cache_entry;
+ }
+
+-static long dcache_find(off64_t blk)
++static long dcache_find(off_t blk)
+ {
+ register long n = dcache_config.num_cache_entry;
+ register unsigned m = dcache_config.max_hash_collision;
+@@ -278,10 +271,10 @@ static long dcache_find(off64_t blk)
+ }
+
+ /* Physical read into cache */
+-static int dcache_io_read(int fd, long entry, off64_t offset, off64_t blk)
++static int dcache_io_read(int fd, long entry, off_t offset, off_t blk)
+ {
+- if (lseek64(fd, offset, SEEK_SET) < 0) {
+- MSG(0, "\n lseek64 fail.\n");
++ if (lseek(fd, offset, SEEK_SET) < 0) {
++ MSG(0, "\n lseek fail.\n");
+ return -1;
+ }
+ if (read(fd, dcache_buf + entry * F2FS_BLKSIZE, F2FS_BLKSIZE) < 0) {
+@@ -308,12 +301,12 @@ static int dcache_io_read(int fd, long e
+ * 1: cache not available (uninitialized)
+ * -1: error
+ */
+-static int dcache_update_rw(int fd, void *buf, off64_t offset,
++static int dcache_update_rw(int fd, void *buf, off_t offset,
+ size_t byte_count, bool is_write)
+ {
+- off64_t blk;
++ off_t blk;
+ int addr_in_blk;
+- off64_t start;
++ off_t start;
+
+ if (!dcache_initialized)
+ dcache_init(); /* auto initialize */
+@@ -377,13 +370,13 @@ static int dcache_update_rw(int fd, void
+ * return value: 1: cache not available
+ * 0: success, -1: I/O error
+ */
+-int dcache_update_cache(int fd, void *buf, off64_t offset, size_t count)
++int dcache_update_cache(int fd, void *buf, off_t offset, size_t count)
+ {
+ return dcache_update_rw(fd, buf, offset, count, true);
+ }
+
+ /* handles read into cache + read into buffer */
+-int dcache_read(int fd, void *buf, off64_t offset, size_t count)
++int dcache_read(int fd, void *buf, off_t offset, size_t count)
+ {
+ return dcache_update_rw(fd, buf, offset, count, false);
+ }
+@@ -395,7 +388,7 @@ int dev_read_version(void *buf, __u64 of
+ {
+ if (c.sparse_mode)
+ return 0;
+- if (lseek64(c.kd, (off64_t)offset, SEEK_SET) < 0)
++ if (lseek(c.kd, (off_t)offset, SEEK_SET) < 0)
+ return -1;
+ if (read(c.kd, buf, len) < 0)
+ return -1;
+@@ -537,10 +530,10 @@ int dev_read(void *buf, __u64 offset, si
+
+ /* err = 1: cache not available, fall back to non-cache R/W */
+ /* err = 0: success, err=-1: I/O error */
+- err = dcache_read(fd, buf, (off64_t)offset, len);
++ err = dcache_read(fd, buf, (off_t)offset, len);
+ if (err <= 0)
+ return err;
+- if (lseek64(fd, (off64_t)offset, SEEK_SET) < 0)
++ if (lseek(fd, (off_t)offset, SEEK_SET) < 0)
+ return -1;
+ if (read(fd, buf, len) < 0)
+ return -1;
+@@ -586,9 +579,9 @@ int dev_write(void *buf, __u64 offset, s
+ * dcache_update_cache() just update cache, won't do I/O.
+ * Thus even no error, we need normal non-cache I/O for actual write
+ */
+- if (dcache_update_cache(fd, buf, (off64_t)offset, len) < 0)
++ if (dcache_update_cache(fd, buf, (off_t)offset, len) < 0)
+ return -1;
+- if (lseek64(fd, (off64_t)offset, SEEK_SET) < 0)
++ if (lseek(fd, (off_t)offset, SEEK_SET) < 0)
+ return -1;
+ if (write(fd, buf, len) < 0)
+ return -1;
+@@ -602,7 +595,7 @@ int dev_write_block(void *buf, __u64 blk
+
+ int dev_write_dump(void *buf, __u64 offset, size_t len)
+ {
+- if (lseek64(c.dump_fd, (off64_t)offset, SEEK_SET) < 0)
++ if (lseek(c.dump_fd, (off_t)offset, SEEK_SET) < 0)
+ return -1;
+ if (write(c.dump_fd, buf, len) < 0)
+ return -1;
+@@ -627,7 +620,7 @@ int dev_fill(void *buf, __u64 offset, si
+ /* Only allow fill to zero */
+ if (*((__u8*)buf))
+ return -1;
+- if (lseek64(fd, (off64_t)offset, SEEK_SET) < 0)
++ if (lseek(fd, (off_t)offset, SEEK_SET) < 0)
+ return -1;
+ if (write(fd, buf, len) < 0)
+ return -1;
+--- a/tools/f2fs_io/f2fs_io.c
++++ b/tools/f2fs_io/f2fs_io.c
+@@ -12,8 +12,8 @@
+ #ifndef _LARGEFILE_SOURCE
+ #define _LARGEFILE_SOURCE
+ #endif
+-#ifndef _LARGEFILE64_SOURCE
+-#define _LARGEFILE64_SOURCE
++#ifndef _FILE_OFFSET_BITS
++#define _FILE_OFFSET_BITS 64
+ #endif
+ #ifndef O_LARGEFILE
+ #define O_LARGEFILE 0
diff --git a/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.14.0.bb b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.14.0.bb
deleted file mode 100644
index fb71b18b60..0000000000
--- a/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.14.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Tools for Flash-Friendly File System (F2FS)"
-HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3"
-
-# to provide libuuid
-DEPENDS = "util-linux"
-
-SRCREV = "d41dcbdf46dc3841cd0a0507e6573e38cb6c55bb"
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git;branch=master \
- "
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-inherit pkgconfig autotools
-
-BBCLASSEXTEND = "native"
diff --git a/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.16.0.bb b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.16.0.bb
new file mode 100644
index 0000000000..997fa1240a
--- /dev/null
+++ b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.16.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Tools for Flash-Friendly File System (F2FS)"
+HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3"
+
+# to provide libuuid
+DEPENDS = "util-linux"
+
+SRCREV = "06c027abc6153c4a97cba5317844e8dcaaee3cf7"
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git;branch=master \
+ file://0002-f2fs_io-Define-_FILE_OFFSET_BITS-64.patch \
+ "
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig autotools
+
+BBCLASSEXTEND = "native"
diff --git a/meta-filesystems/recipes-utils/fatcat/fatcat/0001-Replace-std-ptr_fun-for-c-17.patch b/meta-filesystems/recipes-utils/fatcat/fatcat/0001-Replace-std-ptr_fun-for-c-17.patch
new file mode 100644
index 0000000000..277a368b67
--- /dev/null
+++ b/meta-filesystems/recipes-utils/fatcat/fatcat/0001-Replace-std-ptr_fun-for-c-17.patch
@@ -0,0 +1,48 @@
+From 455001cb0112f7324ab50f555aa5ed5eae1bb93b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 16 Jan 2023 19:23:18 -0800
+Subject: [PATCH] Replace std::ptr_fun for c++17
+
+std::ptr_fun was deprecated in C++11, and removed completely in C++17.
+Similarly, std::not1 is deprecated since C++17.
+
+Modern compilers like clang >= 16 have started to notice it
+
+src/FatUtils.h:41:46: error: use of undeclared identifier 'ptr_fun'
+| s.erase(find_if(s.rbegin(), s.rend(), not1(ptr_fun<int, int>(isspace))).base(), s.end());
+
+Therefore replace ptr_fun with lambda
+
+Also use 'unsigned char' parameter to std::isspace, for reason see [1]
+
+[1] https://en.cppreference.com/w/cpp/string/byte/isspace#Notes
+
+Upstream-Status: Submitted [https://github.com/Gregwar/fatcat/pull/36]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/FatUtils.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/FatUtils.h b/src/FatUtils.h
+index 5080f2a..a8d69ee 100644
+--- a/src/FatUtils.h
++++ b/src/FatUtils.h
+@@ -32,13 +32,13 @@ using namespace std;
+
+ // trim from start
+ static inline string ltrim(string s) {
+- s.erase(s.begin(), find_if(s.begin(), s.end(), not1(ptr_fun<int, int>(isspace))));
++ s.erase(s.begin(), find_if(s.begin(), s.end(), [](unsigned char c) {return !isspace(c);}));
+ return s;
+ }
+
+ // trim from end
+ static inline string rtrim(string s) {
+- s.erase(find_if(s.rbegin(), s.rend(), not1(ptr_fun<int, int>(isspace))).base(), s.end());
++ s.erase(find_if(s.rbegin(), s.rend(), [](unsigned char c) {return !isspace(c);}).base(), s.end());
+ return s;
+ }
+
+--
+2.39.0
+
diff --git a/meta-filesystems/recipes-utils/fatcat/fatcat/0001-Use-unistd.h-not-argp.h-for-all-POSIX-systems.patch b/meta-filesystems/recipes-utils/fatcat/fatcat/0001-Use-unistd.h-not-argp.h-for-all-POSIX-systems.patch
index fd8e22abca..c612dd8d5d 100644
--- a/meta-filesystems/recipes-utils/fatcat/fatcat/0001-Use-unistd.h-not-argp.h-for-all-POSIX-systems.patch
+++ b/meta-filesystems/recipes-utils/fatcat/fatcat/0001-Use-unistd.h-not-argp.h-for-all-POSIX-systems.patch
@@ -8,8 +8,8 @@ of any of the GNU specific argp extensions. Include unistd.h directly to
allow building with musl on linux, whilst retaining compatibility with
glibc and other unices.
+Upstream-Status: Submitted [https://github.com/Gregwar/fatcat/pull/34]
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-Upstream-status: Pending
---
src/fatcat.cpp | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/meta-filesystems/recipes-utils/fatcat/fatcat/0002-Enable-64bit-off_t.patch b/meta-filesystems/recipes-utils/fatcat/fatcat/0002-Enable-64bit-off_t.patch
new file mode 100644
index 0000000000..306e36d068
--- /dev/null
+++ b/meta-filesystems/recipes-utils/fatcat/fatcat/0002-Enable-64bit-off_t.patch
@@ -0,0 +1,71 @@
+From 0383fff94471278c92ef2ad5edc14abbb40a9acd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Dec 2022 18:54:55 -0800
+Subject: [PATCH] Enable 64bit off_t
+
+Ensure that off_t is always 64-bit by specifying -D_LARGEFILE_SOURCE
+-D_FILE_OFFSET_BITS=64 this will ensure that normal lseek() function is
+same as lseek64
+
+This helps compiling on latest musl where lseek64 and friends are not
+available
+
+Upstream-Status: Submitted [https://github.com/Gregwar/fatcat/pull/34]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 2 ++
+ src/core/FatSystem.cpp | 4 ++--
+ src/core/FatSystem.h | 2 --
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d6a2649..4cdd1fb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -34,6 +34,8 @@ IF(DEFINE_WIN)
+ add_definitions(-D__WIN__)
+ ENDIF(DEFINE_WIN)
+
++add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64)
++
+ include_directories("${CMAKE_SOURCE_DIR}/src")
+
+ add_executable(fatcat "src/fatcat.cpp" ${ALL_SOURCES})
+diff --git a/src/core/FatSystem.cpp b/src/core/FatSystem.cpp
+index 79cda8c..1f52e82 100644
+--- a/src/core/FatSystem.cpp
++++ b/src/core/FatSystem.cpp
+@@ -90,7 +90,7 @@ int FatSystem::readData(unsigned long long address, char *buffer, int size)
+ cerr << "! Trying to read outside the disk" << endl;
+ }
+
+- lseek64(fd, globalOffset+address, SEEK_SET);
++ lseek(fd, globalOffset+address, SEEK_SET);
+
+ int n;
+ int pos = 0;
+@@ -112,7 +112,7 @@ int FatSystem::writeData(unsigned long long address, const char *buffer, int siz
+ throw string("Trying to write data while write mode is disabled");
+ }
+
+- lseek64(fd, globalOffset+address, SEEK_SET);
++ lseek(fd, globalOffset+address, SEEK_SET);
+
+ int n;
+ int pos = 0;
+diff --git a/src/core/FatSystem.h b/src/core/FatSystem.h
+index cd3c914..f9f2ca3 100644
+--- a/src/core/FatSystem.h
++++ b/src/core/FatSystem.h
+@@ -11,11 +11,9 @@
+
+ #ifdef __APPLE__
+ #define O_LARGEFILE 0
+-#define lseek64 lseek
+ #endif
+ #ifdef __WIN__
+ #define O_LARGEFILE 0
+-#define lseek64 lseek
+ #endif
+ using namespace std;
+
diff --git a/meta-filesystems/recipes-utils/fatcat/fatcat_1.1.1.bb b/meta-filesystems/recipes-utils/fatcat/fatcat_1.1.1.bb
index e344eda154..214b3f914c 100644
--- a/meta-filesystems/recipes-utils/fatcat/fatcat_1.1.1.bb
+++ b/meta-filesystems/recipes-utils/fatcat/fatcat_1.1.1.bb
@@ -9,6 +9,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=57fbbfebd0dd1d6ff21b8cecb552a03f"
SRC_URI = "git://github.com/Gregwar/fatcat.git;branch=master;protocol=https \
file://0001-Use-unistd.h-not-argp.h-for-all-POSIX-systems.patch \
+ file://0002-Enable-64bit-off_t.patch \
+ file://0001-Replace-std-ptr_fun-for-c-17.patch \
"
SRCREV = "99cb99fc86eb1601ac7ae27f5bba23add04d2543"
diff --git a/meta-filesystems/recipes-utils/fatresize/fatresize/0001-build-Do-not-build-.sgml-file.patch b/meta-filesystems/recipes-utils/fatresize/fatresize/0001-build-Do-not-build-.sgml-file.patch
index c754f21d0d..ac16766f6f 100644
--- a/meta-filesystems/recipes-utils/fatresize/fatresize/0001-build-Do-not-build-.sgml-file.patch
+++ b/meta-filesystems/recipes-utils/fatresize/fatresize/0001-build-Do-not-build-.sgml-file.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] build: Do not build .sgml file
It needs docbook-to-man tool which we do not have recipe for
-Upstream-Status: OE-Specific [needs native docbook-to-man tool]
+Upstream-Status: Inappropriate [needs native docbook-to-man tool]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
diff --git a/meta-filesystems/recipes-utils/fatresize/fatresize/0001-configure-Do-not-add-D_FILE_OFFSET_BITS-to-CFLAGS.patch b/meta-filesystems/recipes-utils/fatresize/fatresize/0001-configure-Do-not-add-D_FILE_OFFSET_BITS-to-CFLAGS.patch
new file mode 100644
index 0000000000..d0ecdcba4e
--- /dev/null
+++ b/meta-filesystems/recipes-utils/fatresize/fatresize/0001-configure-Do-not-add-D_FILE_OFFSET_BITS-to-CFLAGS.patch
@@ -0,0 +1,34 @@
+From 69647e5d393a52ed3892eccc172ee750d6aaa45d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Dec 2022 21:08:25 -0800
+Subject: [PATCH] configure: Do not add -D_FILE_OFFSET_BITS to CFLAGS
+
+AC_SYS_LARGEFILE macro is in use and this will add a definition for
+_FILE_OFFSET_BITS in generated config.h which is already included as
+first include file in fatresize.c hence its not required to be added via
+CFLAGS, this also fixes a case when -D_FILE_OFFSET_BITS=64 is passed via
+CC from environment, where the autoconf macros set
+ac_cv_sys_file_offset_bits=no and that means we will have
+-D_FILE_OFFSET_BITS=no added to CFLAGS which messes up builds.
+
+Upstream-Status: Submitted [https://salsa.debian.org/parted-team/fatresize/-/merge_requests/3]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index d6e6cb2..4dcec28 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -29,7 +29,6 @@ AC_CHECK_FUNCS([memset strtoll])
+
+ # Check for LFS
+ AC_SYS_LARGEFILE
+-CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=${ac_cv_sys_file_offset_bits}"
+
+ dnl libparted
+ # hack
+--
+2.39.0
+
diff --git a/meta-filesystems/recipes-utils/fatresize/fatresize_1.1.0.bb b/meta-filesystems/recipes-utils/fatresize/fatresize_1.1.0.bb
index 1ca8bb3fe9..cf7ac62be8 100644
--- a/meta-filesystems/recipes-utils/fatresize/fatresize_1.1.0.bb
+++ b/meta-filesystems/recipes-utils/fatresize/fatresize_1.1.0.bb
@@ -5,11 +5,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "git://salsa.debian.org/parted-team/fatresize.git;protocol=https;branch=master \
file://0001-build-Do-not-build-.sgml-file.patch \
+ file://0001-configure-Do-not-add-D_FILE_OFFSET_BITS-to-CFLAGS.patch \
"
SRCREV = "12da22087de2ec43f0fe5af1237389e94619c483"
-PV = "1.1.0"
-
S = "${WORKDIR}/git"
DEPENDS = "parted"
diff --git a/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs/0001-Makefile-proper-location-of-LDFLAGS.patch b/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs/0001-Makefile-proper-location-of-LDFLAGS.patch
deleted file mode 100644
index d9f285d947..0000000000
--- a/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs/0001-Makefile-proper-location-of-LDFLAGS.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 8eeaee82dcfdf47f16ad880e416b722827f41bdb Mon Sep 17 00:00:00 2001
-From: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
-Date: Mon, 23 May 2022 19:37:32 +0200
-Subject: [PATCH] Makefile: proper location of LDFLAGS
-
-Signed-off-by: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
----
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index e3c5207..14b155e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,5 +1,5 @@
- CFLAGS = -Wall -g
--LFLAGS = -lm
-+LDFLAGS = -lm
- CC = gcc
-
- all: overlay
-@@ -7,7 +7,7 @@ all: overlay
- objects = fsck.o common.o lib.o check.o mount.o path.o overlayfs.o
-
- overlay: $(objects)
-- $(CC) $(LFLAGS) $(objects) -o fsck.overlay
-+ $(CC) $(objects) -o fsck.overlay $(LDFLAGS)
-
- .c.o:
- $(CC) $(CFLAGS) -c $<
diff --git a/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs_git.bb b/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs_git.bb
deleted file mode 100644
index 9d58b9a63f..0000000000
--- a/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs_git.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "File system check utility for OverlayFS"
-HOMEPAGE = "https://github.com/hisilicon/overlayfs-progs"
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/PD;md5=b3597d12946881e13cb3b548d1173851"
-
-SRC_URI = "\
- git://github.com/hisilicon/overlayfs-progs.git;protocol=https;branch=master \
- file://0001-Makefile-proper-location-of-LDFLAGS.patch \
-"
-
-PV = "1.0+git${SRCPV}"
-SRCREV = "e10ef686570d9c7eff42f52461593a5c15da56bd"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-# Required to have the fts.h header for musl
-DEPENDS:append:libc-musl = " fts"
-# Fix the missing fts libs when using musl
-EXTRA_OEMAKE:append:libc-musl = " LDFLAGS='-lfts'"
-
-EXTRA_OEMAKE += "'CC=${CC} -O2' "
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_compile () {
- oe_runmake
-}
-
-do_install () {
- install -d ${D}${bindir}
- install -m 0755 ${B}/fsck.overlay ${D}${bindir}
-}
diff --git a/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0001-Fixed-includes-so-that-it-compiles-on-Ubuntu-20.04.patch b/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0001-Fixed-includes-so-that-it-compiles-on-Ubuntu-20.04.patch
deleted file mode 100644
index f7490ebcec..0000000000
--- a/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0001-Fixed-includes-so-that-it-compiles-on-Ubuntu-20.04.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 81b4fbb5f52044cb348534c23f10b3884972b09b Mon Sep 17 00:00:00 2001
-From: Beat Schaer <beat.schaer@wabtec.com>
-Date: Fri, 19 Mar 2021 08:18:58 +0100
-Subject: [PATCH] Fixed includes so that it compiles on Ubuntu 20.04
-
----
- logic.c | 3 +--
- main.c | 3 ++-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/logic.c b/logic.c
-index 97767f5..47ebfaa 100644
---- a/logic.c
-+++ b/logic.c
-@@ -7,8 +7,7 @@
- #include <string.h>
- #include <errno.h>
- #include <unistd.h>
--#include <attr/xattr.h>
--#include <attr/attributes.h>
-+#include <sys/xattr.h>
- #include <fts.h>
- #include <libgen.h>
- #include "logic.h"
-diff --git a/main.c b/main.c
-index aa11239..f462b98 100644
---- a/main.c
-+++ b/main.c
-@@ -12,7 +12,8 @@
- #include <linux/limits.h>
- #include <stdbool.h>
- #include <sys/stat.h>
--#include <attr/xattr.h>
-+#include <sys/xattr.h>
-+#include <errno.h>
- #ifndef _SYS_STAT_H
- #include <linux/stat.h>
- #endif
---
-2.25.1
-
diff --git a/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0002-makefile-fix-linking-flags.patch b/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0002-makefile-fix-linking-flags.patch
deleted file mode 100644
index cf4de18a79..0000000000
--- a/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0002-makefile-fix-linking-flags.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From b4ff5886797e72d1c21da43261ca7648412f3186 Mon Sep 17 00:00:00 2001
-From: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
-Date: Mon, 23 May 2022 19:53:21 +0200
-Subject: [PATCH] makefile: fix linking flags
-
-LDLIBS should be placed at the end according to
-https://www.gnu.org/software/make/manual/html_node/Catalogue-of-Rules.html
-
-Signed-off-by: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
----
- makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/makefile b/makefile
-index fb1bed4..038c7ce 100644
---- a/makefile
-+++ b/makefile
-@@ -1,11 +1,11 @@
- CFLAGS = -Wall -std=c99
--LFLAGS = -lm
-+LDLIBS = -lm
- CC = gcc
-
- all: overlay
-
- overlay: main.o logic.o sh.o
-- $(CC) $(LFLAGS) main.o logic.o sh.o -o overlay
-+ $(CC) main.o logic.o sh.o -o overlay $(LDLIBS)
-
- main.o: main.c logic.h
- $(CC) $(CFLAGS) -c main.c
diff --git a/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools_git.bb b/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools_git.bb
index eb6e4963a5..47613207af 100644
--- a/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools_git.bb
+++ b/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools_git.bb
@@ -5,17 +5,14 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f312a7c4d02230e8f2b537295d375c69"
SRC_URI = "\
git://github.com/kmxz/overlayfs-tools.git;protocol=https;branch=master \
- file://0001-Fixed-includes-so-that-it-compiles-on-Ubuntu-20.04.patch \
- file://0002-makefile-fix-linking-flags.patch \
"
-PV = "1.0+git${SRCPV}"
-SRCREV = "291c7f4a3fb548d06c572700650c2e3bccb0cd27"
+PV = "1.0+git"
+SRCREV = "b5e5a829895ac98ccfe4629fbfbd8b819262bd00"
S = "${WORKDIR}/git"
B = "${S}"
-DEPENDS += "attr"
# Required to have the fts.h header for musl
DEPENDS:append:libc-musl = " fts"
@@ -24,11 +21,8 @@ EXTRA_OEMAKE += "'CC=${CC} -O2'"
EXTRA_OEMAKE:append:libc-musl = " LDLIBS=-lfts"
TARGET_CC_ARCH += "${LDFLAGS}"
-do_compile () {
- oe_runmake
-}
-
do_install () {
install -d ${D}${bindir}
install -m 0755 ${B}/overlay ${D}${bindir}
+ install -m 0755 ${B}/fsck.overlay ${D}${bindir}
}
diff --git a/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch b/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch
index 355e93a37b..6e3a6ecb1f 100644
--- a/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch
+++ b/meta-filesystems/recipes-utils/udevil/files/0001-udevil-0.4.3-fix-compile-with-gcc6.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Fix compilation with GCC6
--- a/src/device-info.c 2013-12-09 14:59:27.000000000 +0100
diff --git a/meta-filesystems/recipes-utils/udevil/files/0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch b/meta-filesystems/recipes-utils/udevil/files/0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch
index f014a0f537..a65c0218ce 100644
--- a/meta-filesystems/recipes-utils/udevil/files/0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch
+++ b/meta-filesystems/recipes-utils/udevil/files/0002-etc-Makefile.am-Use-systemd_unitdir-instead-of-libdi.patch
@@ -8,6 +8,8 @@ libdir.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
---
+Upstream-Status: Pending
+
etc/Makefile.am | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/meta-filesystems/recipes-utils/ufs-utils/ufs-utils/0001-Use-asm-type.h-for-kernel-types.patch b/meta-filesystems/recipes-utils/ufs-utils/ufs-utils/0001-Use-asm-type.h-for-kernel-types.patch
deleted file mode 100644
index 08cf870169..0000000000
--- a/meta-filesystems/recipes-utils/ufs-utils/ufs-utils/0001-Use-asm-type.h-for-kernel-types.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 517f841ccac59b0579e706dd768d6c7b1a7e7552 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 12 Mar 2021 10:37:21 -0800
-Subject: [PATCH] Use asm/type.h for kernel types
-
-This ensures that right headers for types is included otherwise it can
-conflict for some platforms e.g. ppc64 where it includes the underlying
-files conditionally
-
-asm/types.h is
-
-if !defined(__SANE_USERSPACE_TYPES__) && defined(__powerpc64__) && !defined(__KERNEL__)
- include <asm-generic/int-l64.h>
-else
- include <asm-generic/int-ll64.h>
-endif
-
-Upstream-Status: Submitted [https://github.com/westerndigitalcorporation/ufs-utils/pull/29]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ufs.h | 1 -
- ufs_cmds.h | 2 +-
- ufs_ffu.c | 1 -
- 3 files changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/ufs.h b/ufs.h
-index dc51367..0321c54 100644
---- a/ufs.h
-+++ b/ufs.h
-@@ -4,7 +4,6 @@
-
- #ifndef UFS_H_
- #define UFS_H_
--#include <asm-generic/int-ll64.h>
- #include "ioctl.h"
- #include "scsi_bsg_util.h"
-
-diff --git a/ufs_cmds.h b/ufs_cmds.h
-index 1e7e24d..5c5b045 100644
---- a/ufs_cmds.h
-+++ b/ufs_cmds.h
-@@ -5,7 +5,7 @@
- #define UFS_CMNDS_H_
-
- #include "options.h"
--#include <asm-generic/int-ll64.h>
-+#include <asm/types.h>
-
-
- enum field_width {
-diff --git a/ufs_ffu.c b/ufs_ffu.c
-index 2bcec44..99b479c 100644
---- a/ufs_ffu.c
-+++ b/ufs_ffu.c
-@@ -12,7 +12,6 @@
- #include <unistd.h>
- #include <stdint.h>
- #include <errno.h>
--#include <asm-generic/int-ll64.h>
-
- #include "ufs.h"
- #include "ufs_cmds.h"
---
-2.30.2
-
diff --git a/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_1.9.bb b/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_1.9.bb
deleted file mode 100644
index f6aa872fde..0000000000
--- a/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_1.9.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Tool to access UFS (Universal Flash Storage) devices"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-BRANCH ?= "dev"
-
-SRCREV = "517c0b01e47d4441cc45be351509fb4c96843d5a"
-
-SRC_URI = "git://github.com/westerndigitalcorporation/ufs-utils.git;protocol=https;branch=${BRANCH} \
- file://0001-Use-asm-type.h-for-kernel-types.patch \
-"
-
-UPSTREAM_CHECK_COMMITS = "1"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX} CC="${CC}" CFLAGS="${CFLAGS}""
-
-CFLAGS:append:mipsarchn64 = " -D__SANE_USERSPACE_TYPES__ -D_GNU_SOURCE"
-
-do_configure() {
- sed -i -e "s|-static$||g" ${S}/Makefile
-}
-
-do_install() {
- install -D -m 755 ${S}/ufs-utils ${D}${bindir}/ufs-utils
-}
-
-PROVIDES += "ufs-tool"
-
-RPROVIDES:${PN} += "ufs-tool"
-
diff --git a/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_4.13.5.bb b/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_4.13.5.bb
new file mode 100644
index 0000000000..7126684e61
--- /dev/null
+++ b/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_4.13.5.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Tool to access UFS (Universal Flash Storage) devices"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+BRANCH ?= "dev"
+
+SRCREV = "18c0a8454ca1cf8969170049f8c628d88627beec"
+
+SRC_URI = "git://github.com/westerndigitalcorporation/ufs-utils.git;protocol=https;branch=${BRANCH} \
+ "
+
+UPSTREAM_CHECK_COMMITS = "1"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX} CC="${CC}" CFLAGS="${CFLAGS}""
+
+CFLAGS:append:mipsarchn64 = " -D__SANE_USERSPACE_TYPES__ -D_GNU_SOURCE"
+
+do_configure() {
+ sed -i -e "s|-static$||g" ${S}/Makefile
+}
+
+do_install() {
+ install -D -m 755 ${S}/ufs-utils ${D}${bindir}/ufs-utils
+}
+
+PROVIDES += "ufs-tool"
+
+RPROVIDES:${PN} += "ufs-tool"
+
diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0001-include-libgen.h-for-basename-API-prototype.patch b/meta-filesystems/recipes-utils/xfsdump/files/0001-include-libgen.h-for-basename-API-prototype.patch
new file mode 100644
index 0000000000..a44d3b7f39
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfsdump/files/0001-include-libgen.h-for-basename-API-prototype.patch
@@ -0,0 +1,45 @@
+From 45a532ad73b1ba27fc951657a33f39e8fa915765 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 10:02:20 -0700
+Subject: [PATCH] include libgen.h for basename API prototype
+
+basename prototype has been removed from string.h from latest musl [1]
+compilers e.g. clang-18 flags the absense of prototype as error. therefore
+include libgen.h for providing it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [https://lore.kernel.org/linux-xfs/20240325170941.3279129-1-raj.khem@gmail.com/T/#u]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ common/main.c | 1 +
+ invutil/invidx.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/common/main.c b/common/main.c
+index 1db07d4..ca3b7d4 100644
+--- a/common/main.c
++++ b/common/main.c
+@@ -16,6 +16,7 @@
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
++#include <libgen.h>
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <stdlib.h>
+diff --git a/invutil/invidx.c b/invutil/invidx.c
+index 5874e8d..c4e2e21 100644
+--- a/invutil/invidx.c
++++ b/invutil/invidx.c
+@@ -19,6 +19,7 @@
+ #include <xfs/xfs.h>
+ #include <xfs/jdm.h>
+
++#include <libgen.h>
+ #include <stdio.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+--
+2.44.0
+
diff --git a/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.11.bb b/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.11.bb
deleted file mode 100644
index 2e5977cce7..0000000000
--- a/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.11.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "XFS Filesystem Dump Utility"
-DESCRIPTION = "The xfsdump package contains xfsdump, xfsrestore and a \
- number of other utilities for administering XFS filesystems.\
- xfsdump examines files in a filesystem, determines which \
- need to be backed up, and copies those files to a \
- specified disk, tape or other storage medium."
-HOMEPAGE = "http://oss.sgi.com/projects/xfs"
-SECTION = "base"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://doc/COPYING;md5=15c832894d10ddd00dfcf57bee490ecc"
-DEPENDS = "xfsprogs attr"
-
-SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsdump/${BP}.tar.xz \
- file://remove-install-as-user.patch \
- ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-xfsdump-support-usrmerge.patch','',d)} \
- "
-SRC_URI[sha256sum] = "5657a2ca26a55682dc9724fb0331c860fe362c778225cbfc8c710f1375f458a3"
-
-inherit autotools-brokensep
-
-PARALLEL_MAKE = ""
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gettext] = "--enable-gettext=yes,--enable-gettext=no,gettext"
-
-CFLAGS += "-D_FILE_OFFSET_BITS=64"
-
-do_configure () {
- export DEBUG="-DNDEBUG"
- install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
- install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
- oe_runconf
-}
-
-do_install () {
- export DIST_ROOT=${D}
- oe_runmake install
- oe_runmake install-dev
-}
diff --git a/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.12.bb b/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.12.bb
new file mode 100644
index 0000000000..9c0394918e
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.12.bb
@@ -0,0 +1,40 @@
+SUMMARY = "XFS Filesystem Dump Utility"
+DESCRIPTION = "The xfsdump package contains xfsdump, xfsrestore and a \
+ number of other utilities for administering XFS filesystems.\
+ xfsdump examines files in a filesystem, determines which \
+ need to be backed up, and copies those files to a \
+ specified disk, tape or other storage medium."
+HOMEPAGE = "http://oss.sgi.com/projects/xfs"
+SECTION = "base"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://doc/COPYING;md5=15c832894d10ddd00dfcf57bee490ecc"
+DEPENDS = "xfsprogs attr"
+
+SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsdump/${BP}.tar.xz \
+ file://remove-install-as-user.patch \
+ file://0001-include-libgen.h-for-basename-API-prototype.patch \
+ ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-xfsdump-support-usrmerge.patch','',d)} \
+ "
+SRC_URI[sha256sum] = "f39c4c1b306b2dd7ec979c0e94d60fe69083d2ecf9af051cac5ef3bed772c74a"
+
+inherit autotools-brokensep
+
+PARALLEL_MAKE = ""
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gettext] = "--enable-gettext=yes,--enable-gettext=no,gettext"
+
+CFLAGS += "-D_FILE_OFFSET_BITS=64"
+TARGET_CC_ARCH:append:libc-musl = " -D_LARGEFILE64_SOURCE"
+
+do_configure () {
+ export DEBUG="-DNDEBUG"
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
+ oe_runconf
+}
+
+do_install () {
+ export DIST_ROOT=${D}
+ oe_runmake install
+ oe_runmake install-dev
+}
diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/0001-Check-for-MAP_SYNC-in-sys-mman.h.patch b/meta-filesystems/recipes-utils/xfsprogs/files/0001-Check-for-MAP_SYNC-in-sys-mman.h.patch
deleted file mode 100644
index 75b227ac19..0000000000
--- a/meta-filesystems/recipes-utils/xfsprogs/files/0001-Check-for-MAP_SYNC-in-sys-mman.h.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From f41ef1f06d428c81fcdef73d896dfc7ceda1809c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 23 Aug 2018 04:59:39 +0000
-Subject: [PATCH] Check for MAP_SYNC in sys/mman.h
-
-Not all arches have wired MAP_SYNC e.g. mips
-which have conflicts with definition, so checking
-a generic file is going to mis-configure xfsprogs
-for such arches.
-
-libc now has added the relevant macros to
-sys/mman.h, and returns the right values for arches
-where its implemented and nothing for others
-unlike asm-generic/mman.h which only checks
-for kernel headers and ignored arches
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- include/linux.h | 3 +--
- m4/package_libcdev.m4 | 3 +--
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/include/linux.h b/include/linux.h
-index 1998941..7e5c9ab 100644
---- a/include/linux.h
-+++ b/include/linux.h
-@@ -331,8 +331,7 @@ fsmap_advance(
- #define MAP_SYNC 0
- #define MAP_SHARED_VALIDATE 0
- #else
--#include <asm-generic/mman.h>
--#include <asm-generic/mman-common.h>
-+#include <sys/mman.h>
- #endif /* HAVE_MAP_SYNC */
-
- #endif /* __XFS_LINUX_H__ */
-diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4
-index 0a6b514..2b47d2f 100644
---- a/m4/package_libcdev.m4
-+++ b/m4/package_libcdev.m4
-@@ -335,8 +335,7 @@ AC_DEFUN([AC_HAVE_STATFS_FLAGS],
- AC_DEFUN([AC_HAVE_MAP_SYNC],
- [ AC_MSG_CHECKING([for MAP_SYNC])
- AC_TRY_COMPILE([
--#include <asm-generic/mman.h>
--#include <asm-generic/mman-common.h>
-+#include <sys/mman.h>
- ], [
- int flags = MAP_SYNC | MAP_SHARED_VALIDATE;
- ], have_map_sync=yes
diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/0004-configure-Use-AC_SYS_LARGERFILE-autoconf-macro.patch b/meta-filesystems/recipes-utils/xfsprogs/files/0004-configure-Use-AC_SYS_LARGERFILE-autoconf-macro.patch
new file mode 100644
index 0000000000..60be8bfa34
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfsprogs/files/0004-configure-Use-AC_SYS_LARGERFILE-autoconf-macro.patch
@@ -0,0 +1,27 @@
+From f62d3e5cc1d4e416b97778059f0b3c20d777a4c2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 21 Dec 2022 17:40:11 -0800
+Subject: [PATCH] configure: Use AC_SYS_LARGERFILE autoconf macro
+
+Helps define largefile support on relevant platforms
+
+Upstream-Status: Submitted [https://lore.kernel.org/linux-xfs/20221222015327.939932-1-raj.khem@gmail.com/T/#t]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 5a6bf185..a6f556ec 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -10,6 +10,9 @@ AC_PROG_INSTALL
+ LT_INIT
+
+ AC_PROG_CC
++
++AC_SYS_LARGEFILE
++
+ AC_ARG_VAR(BUILD_CC, [C compiler for build tools])
+ if test "${BUILD_CC+set}" != "set"; then
+ if test $cross_compiling = no; then
diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/0005-Replace-off64_t-stat64-with-off_t-stat.patch b/meta-filesystems/recipes-utils/xfsprogs/files/0005-Replace-off64_t-stat64-with-off_t-stat.patch
new file mode 100644
index 0000000000..940d63c010
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfsprogs/files/0005-Replace-off64_t-stat64-with-off_t-stat.patch
@@ -0,0 +1,724 @@
+From f260099fc45f0653aa4758d1d581e07f5b9c6a54 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 21 Dec 2022 17:43:07 -0800
+Subject: [PATCH] Replace off64_t/stat64 with off_t/stat
+
+When using AC_SYS_LARGEFILE, it will automatically add
+-D_FILE_OFFSET_BITS=64 to enable 64bit off_t and all lfs64 support
+
+helps compile on musl where off_t was always 64bit and lfs64 were never
+needed
+
+Upstream-Status: Submitted [https://lore.kernel.org/linux-xfs/20221222015327.939932-1-raj.khem@gmail.com/T/#t]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ copy/xfs_copy.c | 2 +-
+ fsr/xfs_fsr.c | 2 +-
+ io/bmap.c | 6 +++---
+ io/copy_file_range.c | 4 ++--
+ io/cowextsize.c | 6 +++---
+ io/fadvise.c | 2 +-
+ io/fiemap.c | 6 +++---
+ io/fsmap.c | 6 +++---
+ io/io.h | 10 +++++-----
+ io/madvise.c | 2 +-
+ io/mincore.c | 2 +-
+ io/mmap.c | 12 ++++++------
+ io/pread.c | 22 +++++++++++-----------
+ io/pwrite.c | 20 ++++++++++----------
+ io/reflink.c | 4 ++--
+ io/seek.c | 6 +++---
+ io/sendfile.c | 6 +++---
+ io/stat.c | 2 +-
+ io/sync_file_range.c | 2 +-
+ io/truncate.c | 2 +-
+ libxfs/rdwr.c | 8 ++++----
+ mdrestore/xfs_mdrestore.c | 2 +-
+ repair/prefetch.c | 2 +-
+ scrub/spacemap.c | 6 +++---
+ spaceman/freesp.c | 4 ++--
+ spaceman/trim.c | 2 +-
+ 26 files changed, 74 insertions(+), 74 deletions(-)
+
+diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c
+index 0420649..98a578a 100644
+--- a/copy/xfs_copy.c
++++ b/copy/xfs_copy.c
+@@ -881,7 +881,7 @@ main(int argc, char **argv)
+ }
+ } else {
+ char *lb = memalign(wbuf_align, XFS_MAX_SECTORSIZE);
+- off64_t off;
++ off_t off;
+ ssize_t len;
+
+ /* ensure device files are sufficiently large */
+diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c
+index ba02506..12fffbd 100644
+--- a/fsr/xfs_fsr.c
++++ b/fsr/xfs_fsr.c
+@@ -1148,7 +1148,7 @@ packfile(char *fname, char *tname, int fd,
+ struct dioattr dio;
+ static xfs_swapext_t sx;
+ struct xfs_flock64 space;
+- off64_t cnt, pos;
++ off_t cnt, pos;
+ void *fbuf = NULL;
+ int ct, wc, wc_b4;
+ char ffname[SMBUFSZ];
+diff --git a/io/bmap.c b/io/bmap.c
+index 722a389..6182e1c 100644
+--- a/io/bmap.c
++++ b/io/bmap.c
+@@ -257,7 +257,7 @@ bmap_f(
+ #define FLG_BSW 0000010 /* Not on begin of stripe width */
+ #define FLG_ESW 0000001 /* Not on end of stripe width */
+ int agno;
+- off64_t agoff, bbperag;
++ off_t agoff, bbperag;
+ int foff_w, boff_w, aoff_w, tot_w, agno_w;
+ char rbuf[32], bbuf[32], abuf[32];
+ int sunit, swidth;
+@@ -267,8 +267,8 @@ bmap_f(
+ if (is_rt)
+ sunit = swidth = bbperag = 0;
+ else {
+- bbperag = (off64_t)fsgeo.agblocks *
+- (off64_t)fsgeo.blocksize / BBSIZE;
++ bbperag = (off_t)fsgeo.agblocks *
++ (off_t)fsgeo.blocksize / BBSIZE;
+ sunit = (fsgeo.sunit * fsgeo.blocksize) / BBSIZE;
+ swidth = (fsgeo.swidth * fsgeo.blocksize) / BBSIZE;
+ }
+diff --git a/io/copy_file_range.c b/io/copy_file_range.c
+index d154fa7..422e691 100644
+--- a/io/copy_file_range.c
++++ b/io/copy_file_range.c
+@@ -54,7 +54,7 @@ copy_file_range_cmd(int fd, long long *src_off, long long *dst_off, size_t len)
+ return 0;
+ }
+
+-static off64_t
++static off_t
+ copy_src_filesize(int fd)
+ {
+ struct stat st;
+@@ -154,7 +154,7 @@ copy_range_f(int argc, char **argv)
+ }
+
+ if (!len_specified) {
+- off64_t sz;
++ off_t sz;
+
+ sz = copy_src_filesize(fd);
+ if (sz < 0 || (unsigned long long)sz > SIZE_MAX) {
+diff --git a/io/cowextsize.c b/io/cowextsize.c
+index f6b134d..00e40c6 100644
+--- a/io/cowextsize.c
++++ b/io/cowextsize.c
+@@ -50,10 +50,10 @@ static int
+ set_cowextsize(const char *path, int fd, long extsz)
+ {
+ struct fsxattr fsx;
+- struct stat64 stat;
++ struct stat stat;
+
+- if (fstat64(fd, &stat) < 0) {
+- perror("fstat64");
++ if (fstat(fd, &stat) < 0) {
++ perror("fstat");
+ exitcode = 1;
+ return 0;
+ }
+diff --git a/io/fadvise.c b/io/fadvise.c
+index 60cc0f0..0966c41 100644
+--- a/io/fadvise.c
++++ b/io/fadvise.c
+@@ -39,7 +39,7 @@ fadvise_f(
+ int argc,
+ char **argv)
+ {
+- off64_t offset = 0, length = 0;
++ off_t offset = 0, length = 0;
+ int c, range = 0, advise = POSIX_FADV_NORMAL;
+
+ while ((c = getopt(argc, argv, "dnrsw")) != EOF) {
+diff --git a/io/fiemap.c b/io/fiemap.c
+index f0c74df..b41f71b 100644
+--- a/io/fiemap.c
++++ b/io/fiemap.c
+@@ -234,9 +234,9 @@ fiemap_f(
+ int tot_w = 5; /* 5 since its just one number */
+ int flg_w = 5;
+ __u64 last_logical = 0; /* last extent offset handled */
+- off64_t start_offset = 0; /* mapping start */
+- off64_t length = -1LL; /* mapping length */
+- off64_t range_end = -1LL; /* mapping end*/
++ off_t start_offset = 0; /* mapping start */
++ off_t length = -1LL; /* mapping length */
++ off_t range_end = -1LL; /* mapping end*/
+ size_t fsblocksize, fssectsize;
+ struct stat st;
+
+diff --git a/io/fsmap.c b/io/fsmap.c
+index 7db5184..bf11963 100644
+--- a/io/fsmap.c
++++ b/io/fsmap.c
+@@ -170,7 +170,7 @@ dump_map_verbose(
+ unsigned long long i;
+ struct fsmap *p;
+ int agno;
+- off64_t agoff, bperag;
++ off_t agoff, bperag;
+ int foff_w, boff_w, aoff_w, tot_w, agno_w, own_w;
+ int nr_w, dev_w;
+ char rbuf[40], bbuf[40], abuf[40], obuf[40];
+@@ -183,8 +183,8 @@ dump_map_verbose(
+ dev_w = 3;
+ nr_w = 4;
+ tot_w = MINTOT_WIDTH;
+- bperag = (off64_t)fsgeo->agblocks *
+- (off64_t)fsgeo->blocksize;
++ bperag = (off_t)fsgeo->agblocks *
++ (off_t)fsgeo->blocksize;
+ sunit = (fsgeo->sunit * fsgeo->blocksize);
+ swidth = (fsgeo->swidth * fsgeo->blocksize);
+
+diff --git a/io/io.h b/io/io.h
+index fe474fa..68e5e48 100644
+--- a/io/io.h
++++ b/io/io.h
+@@ -53,7 +53,7 @@ extern int stat_f(int argc, char **argv);
+ typedef struct mmap_region {
+ void *addr; /* address of start of mapping */
+ size_t length; /* length of mapping */
+- off64_t offset; /* start offset into backing file */
++ off_t offset; /* start offset into backing file */
+ int prot; /* protection mode of the mapping */
+ int flags; /* MAP_* flags passed to mmap() */
+ char *name; /* name of backing file */
+@@ -63,13 +63,13 @@ extern mmap_region_t *maptable; /* mmap'd region array */
+ extern int mapcount; /* #entries in the mapping table */
+ extern mmap_region_t *mapping; /* active mapping table entry */
+ extern int maplist_f(void);
+-extern void *check_mapping_range(mmap_region_t *, off64_t, size_t, int);
++extern void *check_mapping_range(mmap_region_t *, off_t, size_t, int);
+
+ /*
+ * Various xfs_io helper routines/globals
+ */
+
+-extern off64_t filesize(void);
++extern off_t filesize(void);
+ extern int openfile(char *, struct xfs_fsop_geom *, int, mode_t,
+ struct fs_path *);
+ extern int addfile(char *, int , struct xfs_fsop_geom *, int,
+@@ -84,9 +84,9 @@ extern size_t io_buffersize;
+ extern int vectors;
+ extern struct iovec *iov;
+ extern int alloc_buffer(size_t, int, unsigned int);
+-extern int read_buffer(int, off64_t, long long, long long *,
++extern int read_buffer(int, off_t, long long, long long *,
+ int, int);
+-extern void dump_buffer(off64_t, ssize_t);
++extern void dump_buffer(off_t, ssize_t);
+
+ extern void attr_init(void);
+ extern void bmap_init(void);
+diff --git a/io/madvise.c b/io/madvise.c
+index bde3153..6e9c5b1 100644
+--- a/io/madvise.c
++++ b/io/madvise.c
+@@ -39,7 +39,7 @@ madvise_f(
+ int argc,
+ char **argv)
+ {
+- off64_t offset, llength;
++ off_t offset, llength;
+ size_t length;
+ void *start;
+ int advise = MADV_NORMAL, c;
+diff --git a/io/mincore.c b/io/mincore.c
+index 67f1d6c..24147ac 100644
+--- a/io/mincore.c
++++ b/io/mincore.c
+@@ -17,7 +17,7 @@ mincore_f(
+ int argc,
+ char **argv)
+ {
+- off64_t offset, llength;
++ off_t offset, llength;
+ size_t length;
+ size_t blocksize, sectsize;
+ void *start;
+diff --git a/io/mmap.c b/io/mmap.c
+index 7114404..128a2c0 100644
+--- a/io/mmap.c
++++ b/io/mmap.c
+@@ -64,11 +64,11 @@ print_mapping(
+ void *
+ check_mapping_range(
+ mmap_region_t *map,
+- off64_t offset,
++ off_t offset,
+ size_t length,
+ int pagealign)
+ {
+- off64_t relative;
++ off_t relative;
+
+ if (offset < mapping->offset) {
+ printf(_("offset (%lld) is before start of mapping (%lld)\n"),
+@@ -156,7 +156,7 @@ mmap_f(
+ int argc,
+ char **argv)
+ {
+- off64_t offset;
++ off_t offset;
+ ssize_t length = 0, length2 = 0;
+ void *address = NULL;
+ char *filename;
+@@ -309,7 +309,7 @@ msync_f(
+ int argc,
+ char **argv)
+ {
+- off64_t offset;
++ off_t offset;
+ ssize_t length;
+ void *start;
+ int c, flags = 0;
+@@ -402,7 +402,7 @@ mread_f(
+ int argc,
+ char **argv)
+ {
+- off64_t offset, tmp, dumpoffset, printoffset;
++ off_t offset, tmp, dumpoffset, printoffset;
+ ssize_t length;
+ size_t dumplen, cnt = 0;
+ char *bp;
+@@ -567,7 +567,7 @@ mwrite_f(
+ int argc,
+ char **argv)
+ {
+- off64_t offset, tmp;
++ off_t offset, tmp;
+ ssize_t length;
+ void *start;
+ char *sp;
+diff --git a/io/pread.c b/io/pread.c
+index 0f1d8b9..79990c6 100644
+--- a/io/pread.c
++++ b/io/pread.c
+@@ -116,7 +116,7 @@ alloc_buffer(
+ static void
+ __dump_buffer(
+ void *buf,
+- off64_t offset,
++ off_t offset,
+ ssize_t len)
+ {
+ int i, j;
+@@ -141,7 +141,7 @@ __dump_buffer(
+
+ void
+ dump_buffer(
+- off64_t offset,
++ off_t offset,
+ ssize_t len)
+ {
+ int i, l;
+@@ -164,7 +164,7 @@ dump_buffer(
+ static ssize_t
+ do_preadv(
+ int fd,
+- off64_t offset,
++ off_t offset,
+ long long count)
+ {
+ int vecs = 0;
+@@ -199,7 +199,7 @@ do_preadv(
+ static ssize_t
+ do_pread(
+ int fd,
+- off64_t offset,
++ off_t offset,
+ long long count,
+ size_t buffer_size)
+ {
+@@ -212,13 +212,13 @@ do_pread(
+ static int
+ read_random(
+ int fd,
+- off64_t offset,
++ off_t offset,
+ long long count,
+ long long *total,
+ unsigned int seed,
+ int eof)
+ {
+- off64_t end, off, range;
++ off_t end, off, range;
+ ssize_t bytes;
+ int ops = 0;
+
+@@ -259,12 +259,12 @@ read_random(
+ static int
+ read_backward(
+ int fd,
+- off64_t *offset,
++ off_t *offset,
+ long long *count,
+ long long *total,
+ int eof)
+ {
+- off64_t end, off = *offset;
++ off_t end, off = *offset;
+ ssize_t bytes = 0, bytes_requested;
+ long long cnt = *count;
+ int ops = 0;
+@@ -319,7 +319,7 @@ read_backward(
+ static int
+ read_forward(
+ int fd,
+- off64_t offset,
++ off_t offset,
+ long long count,
+ long long *total,
+ int verbose,
+@@ -353,7 +353,7 @@ read_forward(
+ int
+ read_buffer(
+ int fd,
+- off64_t offset,
++ off_t offset,
+ long long count,
+ long long *total,
+ int verbose,
+@@ -368,7 +368,7 @@ pread_f(
+ char **argv)
+ {
+ size_t bsize;
+- off64_t offset;
++ off_t offset;
+ unsigned int zeed = 0;
+ long long count, total, tmp;
+ size_t fsblocksize, fssectsize;
+diff --git a/io/pwrite.c b/io/pwrite.c
+index 467bfa9..8d134c5 100644
+--- a/io/pwrite.c
++++ b/io/pwrite.c
+@@ -54,7 +54,7 @@ pwrite_help(void)
+ static ssize_t
+ do_pwritev(
+ int fd,
+- off64_t offset,
++ off_t offset,
+ long long count,
+ int pwritev2_flags)
+ {
+@@ -97,7 +97,7 @@ do_pwritev(
+ static ssize_t
+ do_pwrite(
+ int fd,
+- off64_t offset,
++ off_t offset,
+ long long count,
+ size_t buffer_size,
+ int pwritev2_flags)
+@@ -110,13 +110,13 @@ do_pwrite(
+
+ static int
+ write_random(
+- off64_t offset,
++ off_t offset,
+ long long count,
+ unsigned int seed,
+ long long *total,
+ int pwritev2_flags)
+ {
+- off64_t off, range;
++ off_t off, range;
+ ssize_t bytes;
+ int ops = 0;
+
+@@ -155,12 +155,12 @@ write_random(
+
+ static int
+ write_backward(
+- off64_t offset,
++ off_t offset,
+ long long *count,
+ long long *total,
+ int pwritev2_flags)
+ {
+- off64_t end, off = offset;
++ off_t end, off = offset;
+ ssize_t bytes = 0, bytes_requested;
+ long long cnt = *count;
+ int ops = 0;
+@@ -214,11 +214,11 @@ write_backward(
+
+ static int
+ write_buffer(
+- off64_t offset,
++ off_t offset,
+ long long count,
+ size_t bs,
+ int fd,
+- off64_t skip,
++ off_t skip,
+ long long *total,
+ int pwritev2_flags)
+ {
+@@ -253,7 +253,7 @@ write_buffer(
+
+ static int
+ write_once(
+- off64_t offset,
++ off_t offset,
+ long long count,
+ long long *total,
+ int pwritev2_flags)
+@@ -275,7 +275,7 @@ pwrite_f(
+ char **argv)
+ {
+ size_t bsize;
+- off64_t offset, skip = 0;
++ off_t offset, skip = 0;
+ long long count, total, tmp;
+ unsigned int zeed = 0, seed = 0xcdcdcdcd;
+ size_t fsblocksize, fssectsize;
+diff --git a/io/reflink.c b/io/reflink.c
+index 8e4f389..b6a3c05 100644
+--- a/io/reflink.c
++++ b/io/reflink.c
+@@ -98,7 +98,7 @@ dedupe_f(
+ int argc,
+ char **argv)
+ {
+- off64_t soffset, doffset;
++ off_t soffset, doffset;
+ long long count, total;
+ char *infile;
+ int condensed, quiet_flag;
+@@ -226,7 +226,7 @@ reflink_f(
+ int argc,
+ char **argv)
+ {
+- off64_t soffset, doffset;
++ off_t soffset, doffset;
+ long long count = 0, total;
+ char *infile = NULL;
+ int condensed, quiet_flag;
+diff --git a/io/seek.c b/io/seek.c
+index 6734ecb..ffe7439 100644
+--- a/io/seek.c
++++ b/io/seek.c
+@@ -63,8 +63,8 @@ static void
+ seek_output(
+ int startflag,
+ char *type,
+- off64_t start,
+- off64_t offset)
++ off_t start,
++ off_t offset)
+ {
+ if (offset == -1) {
+ if (errno == ENXIO) {
+@@ -92,7 +92,7 @@ seek_f(
+ int argc,
+ char **argv)
+ {
+- off64_t offset, start;
++ off_t offset, start;
+ size_t fsblocksize, fssectsize;
+ int c;
+ int current; /* specify data or hole */
+diff --git a/io/sendfile.c b/io/sendfile.c
+index a003bb5..2ce569c 100644
+--- a/io/sendfile.c
++++ b/io/sendfile.c
+@@ -34,12 +34,12 @@ sendfile_help(void)
+
+ static int
+ send_buffer(
+- off64_t offset,
++ off_t offset,
+ size_t count,
+ int fd,
+ long long *total)
+ {
+- off64_t off = offset;
++ off_t off = offset;
+ ssize_t bytes, bytes_remaining = count;
+ int ops = 0;
+
+@@ -66,7 +66,7 @@ sendfile_f(
+ int argc,
+ char **argv)
+ {
+- off64_t offset = 0;
++ off_t offset = 0;
+ long long count, total;
+ size_t blocksize, sectsize;
+ struct timeval t1, t2;
+diff --git a/io/stat.c b/io/stat.c
+index b57f9ee..e8f68dc 100644
+--- a/io/stat.c
++++ b/io/stat.c
+@@ -21,7 +21,7 @@ static cmdinfo_t stat_cmd;
+ static cmdinfo_t statfs_cmd;
+ static cmdinfo_t statx_cmd;
+
+-off64_t
++off_t
+ filesize(void)
+ {
+ struct stat st;
+diff --git a/io/sync_file_range.c b/io/sync_file_range.c
+index 94285c2..2375a06 100644
+--- a/io/sync_file_range.c
++++ b/io/sync_file_range.c
+@@ -30,7 +30,7 @@ sync_range_f(
+ int argc,
+ char **argv)
+ {
+- off64_t offset = 0, length = 0;
++ off_t offset = 0, length = 0;
+ int c, sync_mode = 0;
+ size_t blocksize, sectsize;
+
+diff --git a/io/truncate.c b/io/truncate.c
+index 1d04919..a74b613 100644
+--- a/io/truncate.c
++++ b/io/truncate.c
+@@ -16,7 +16,7 @@ truncate_f(
+ int argc,
+ char **argv)
+ {
+- off64_t offset;
++ off_t offset;
+ size_t blocksize, sectsize;
+
+ init_cvtnum(&blocksize, &sectsize);
+diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c
+index 0e33211..153007d 100644
+--- a/libxfs/rdwr.c
++++ b/libxfs/rdwr.c
+@@ -576,7 +576,7 @@ libxfs_balloc(
+
+
+ static int
+-__read_buf(int fd, void *buf, int len, off64_t offset, int flags)
++__read_buf(int fd, void *buf, int len, off_t offset, int flags)
+ {
+ int sts;
+
+@@ -638,7 +638,7 @@ libxfs_readbufr_map(struct xfs_buftarg *btp, struct xfs_buf *bp, int flags)
+
+ buf = bp->b_addr;
+ for (i = 0; i < bp->b_nmaps; i++) {
+- off64_t offset = LIBXFS_BBTOOFF64(bp->b_maps[i].bm_bn);
++ off_t offset = LIBXFS_BBTOOFF64(bp->b_maps[i].bm_bn);
+ int len = BBTOB(bp->b_maps[i].bm_len);
+
+ error = __read_buf(fd, buf, len, offset, flags);
+@@ -797,7 +797,7 @@ err:
+ }
+
+ static int
+-__write_buf(int fd, void *buf, int len, off64_t offset, int flags)
++__write_buf(int fd, void *buf, int len, off_t offset, int flags)
+ {
+ int sts;
+
+@@ -863,7 +863,7 @@ libxfs_bwrite(
+ void *buf = bp->b_addr;
+
+ for (i = 0; i < bp->b_nmaps; i++) {
+- off64_t offset = LIBXFS_BBTOOFF64(bp->b_maps[i].bm_bn);
++ off_t offset = LIBXFS_BBTOOFF64(bp->b_maps[i].bm_bn);
+ int len = BBTOB(bp->b_maps[i].bm_len);
+
+ bp->b_error = __write_buf(fd, buf, len, offset,
+diff --git a/mdrestore/xfs_mdrestore.c b/mdrestore/xfs_mdrestore.c
+index 8e3998d..334bdd2 100644
+--- a/mdrestore/xfs_mdrestore.c
++++ b/mdrestore/xfs_mdrestore.c
+@@ -160,7 +160,7 @@ verify_device_size(
+ } else {
+ /* ensure device is sufficiently large enough */
+ char lb[XFS_MAX_SECTORSIZE] = { 0 };
+- off64_t off;
++ off_t off;
+
+ off = nr_blocks * blocksize - sizeof(lb);
+ if (pwrite(dev_fd, lb, sizeof(lb), off) < 0)
+diff --git a/repair/prefetch.c b/repair/prefetch.c
+index 78c1e39..b0dd197 100644
+--- a/repair/prefetch.c
++++ b/repair/prefetch.c
+@@ -475,7 +475,7 @@ pf_batch_read(
+ {
+ struct xfs_buf *bplist[MAX_BUFS];
+ unsigned int num;
+- off64_t first_off, last_off, next_off;
++ off_t first_off, last_off, next_off;
+ int len, size;
+ int i;
+ int inode_bufs;
+diff --git a/scrub/spacemap.c b/scrub/spacemap.c
+index b6fd411..9cefe07 100644
+--- a/scrub/spacemap.c
++++ b/scrub/spacemap.c
+@@ -97,11 +97,11 @@ scan_ag_rmaps(
+ struct scrub_ctx *ctx = (struct scrub_ctx *)wq->wq_ctx;
+ struct scan_blocks *sbx = arg;
+ struct fsmap keys[2];
+- off64_t bperag;
++ off_t bperag;
+ int ret;
+
+- bperag = (off64_t)ctx->mnt.fsgeom.agblocks *
+- (off64_t)ctx->mnt.fsgeom.blocksize;
++ bperag = (off_t)ctx->mnt.fsgeom.agblocks *
++ (off_t)ctx->mnt.fsgeom.blocksize;
+
+ memset(keys, 0, sizeof(struct fsmap) * 2);
+ keys->fmr_device = ctx->fsinfo.fs_datadev;
+diff --git a/spaceman/freesp.c b/spaceman/freesp.c
+index 70dcdb5..f5177cb 100644
+--- a/spaceman/freesp.c
++++ b/spaceman/freesp.c
+@@ -62,7 +62,7 @@ static void
+ addtohist(
+ xfs_agnumber_t agno,
+ xfs_agblock_t agbno,
+- off64_t len)
++ off_t len)
+ {
+ long i;
+
+@@ -152,7 +152,7 @@ scan_ag(
+ struct fsmap *l, *h;
+ struct fsmap *p;
+ struct xfs_fd *xfd = &file->xfd;
+- off64_t aglen;
++ off_t aglen;
+ xfs_agblock_t agbno;
+ unsigned long long freeblks = 0;
+ unsigned long long freeexts = 0;
+diff --git a/spaceman/trim.c b/spaceman/trim.c
+index e9ed47e..727dd81 100644
+--- a/spaceman/trim.c
++++ b/spaceman/trim.c
+@@ -26,7 +26,7 @@ trim_f(
+ struct xfs_fd *xfd = &file->xfd;
+ struct xfs_fsop_geom *fsgeom = &xfd->fsgeom;
+ xfs_agnumber_t agno = 0;
+- off64_t offset = 0;
++ off_t offset = 0;
+ ssize_t length = 0;
+ ssize_t minlen = 0;
+ int aflag = 0;
diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch b/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch
index bd2d025635..5bab162c85 100644
--- a/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch
+++ b/meta-filesystems/recipes-utils/xfsprogs/files/remove_flags_from_build_flags.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: xfsprogs-4.14.0/include/builddefs.in
===================================================================
--- xfsprogs-4.14.0.orig/include/builddefs.in
diff --git a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.13.0.bb b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.13.0.bb
deleted file mode 100644
index fae7a93a1f..0000000000
--- a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_5.13.0.bb
+++ /dev/null
@@ -1,73 +0,0 @@
-SUMMARY = "XFS Filesystem Utilities"
-HOMEPAGE = "http://oss.sgi.com/projects/xfs"
-SECTION = "base"
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LICENSE:libhandle = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=e6a75371ba4d16749254a51215d13f97 \
- file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd"
-DEPENDS = "util-linux util-linux-native"
-SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \
- file://remove_flags_from_build_flags.patch \
- file://0001-Check-for-MAP_SYNC-in-sys-mman.h.patch \
- file://0002-include-include-xfs-linux.h-after-sys-mman.h.patch \
- file://0001-support-usrmerge.patch \
- "
-SRC_URI[sha256sum] = "4e142d4babe086adf9016d8c606c805829da08e46389a4433f40346204f90cdb"
-inherit autotools-brokensep pkgconfig
-
-PACKAGES =+ "${PN}-fsck ${PN}-mkfs ${PN}-repair libhandle"
-
-DEPENDS += "util-linux libinih"
-
-RDEPENDS:${PN} = "${PN}-fsck ${PN}-mkfs ${PN}-repair"
-
-FILES:${PN}-fsck = "${base_sbindir}/fsck.xfs"
-FILES:${PN}-mkfs = "${base_sbindir}/mkfs.xfs"
-FILES:${PN}-repair = "${base_sbindir}/xfs_repair"
-
-FILES:libhandle = "${base_libdir}/libhandle${SOLIBS}"
-
-EXTRA_OECONF = "--enable-gettext=no \
- --enable-scrub=no \
- INSTALL_USER=root \
- INSTALL_GROUP=root \
- ac_cv_header_aio_h=yes \
- ac_cv_lib_rt_lio_listio=yes \
- OPTIMIZER='${SELECTED_OPTIMIZATION}' \
-"
-
-DISABLE_STATIC = ""
-EXTRA_AUTORECONF += "-I ${S}/m4 --exclude=autoheader"
-
-PACKAGECONFIG ??= "blkid"
-
-PACKAGECONFIG[blkid] = "--enable-blkid=yes,--enable-blkid=no,util-linux"
-
-export DEBUG="-DNDEBUG"
-export BUILD_VERBOSE="1"
-export tagname="CC"
-
-EXTRA_OEMAKE = "DIST_ROOT='${D}'"
-
-do_configure () {
- export BUILD_CC="${BUILD_CC} ${BUILD_CFLAGS}"
- # Prevent Makefile from calling configure without arguments,
- # when do_configure gets called for a second time.
- rm -f ${B}/include/builddefs ${B}/include/platform_defs.h ${B}/configure
- # Recreate configure script.
- oe_runmake configure
- install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
- install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
- oe_runconf
-}
-
-do_install:append() {
- oe_runmake 'DESTDIR=${D}' install-dev
- rm ${D}${libdir}/*.la
- rmdir --ignore-fail-on-non-empty ${D}${libdir}
-
- if [ ${libdir} != ${base_libdir} ];then
- ln -sf -r ${D}${libdir}/libhandle.a ${D}${base_libdir}/libhandle.a
- ln -sf -r ${D}${base_libdir}/libhandle.so ${D}${libdir}/libhandle.so
- fi
-}
diff --git a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_6.6.0.bb b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_6.6.0.bb
new file mode 100644
index 0000000000..07c5e97dbb
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_6.6.0.bb
@@ -0,0 +1,74 @@
+SUMMARY = "XFS Filesystem Utilities"
+HOMEPAGE = "http://oss.sgi.com/projects/xfs"
+SECTION = "base"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LICENSE:libhandle = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=e6a75371ba4d16749254a51215d13f97 \
+ file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd"
+DEPENDS = "util-linux util-linux-native"
+SRC_URI = "https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/${BP}.tar.xz \
+ file://remove_flags_from_build_flags.patch \
+ file://0002-include-include-xfs-linux.h-after-sys-mman.h.patch \
+ file://0001-support-usrmerge.patch \
+ file://0004-configure-Use-AC_SYS_LARGERFILE-autoconf-macro.patch \
+ file://0005-Replace-off64_t-stat64-with-off_t-stat.patch \
+ "
+SRC_URI[sha256sum] = "50ca2f4676df8fab4cb4c3ef3dd512d5551e6844d40a65a31d5b8e03593d22df"
+inherit autotools-brokensep pkgconfig
+
+PACKAGES =+ "${PN}-fsck ${PN}-mkfs ${PN}-repair libhandle"
+
+DEPENDS += "util-linux libinih liburcu"
+
+RDEPENDS:${PN} = "${PN}-fsck ${PN}-mkfs ${PN}-repair"
+
+FILES:${PN}-fsck = "${base_sbindir}/fsck.xfs"
+FILES:${PN}-mkfs = "${base_sbindir}/mkfs.xfs"
+FILES:${PN}-repair = "${base_sbindir}/xfs_repair"
+
+FILES:libhandle = "${base_libdir}/libhandle${SOLIBS}"
+
+EXTRA_OECONF = "--enable-gettext=no \
+ --enable-scrub=no \
+ INSTALL_USER=root \
+ INSTALL_GROUP=root \
+ ac_cv_header_aio_h=yes \
+ ac_cv_lib_rt_lio_listio=yes \
+ OPTIMIZER='${SELECTED_OPTIMIZATION}' \
+"
+
+DISABLE_STATIC = ""
+EXTRA_AUTORECONF += "-I ${S}/m4 --exclude=autoheader"
+
+PACKAGECONFIG ??= "blkid"
+
+PACKAGECONFIG[blkid] = "--enable-blkid=yes,--enable-blkid=no,util-linux"
+
+export DEBUG="-DNDEBUG"
+export BUILD_VERBOSE="1"
+export tagname="CC"
+
+EXTRA_OEMAKE = "DIST_ROOT='${D}'"
+
+do_configure () {
+ export BUILD_CC="${BUILD_CC} ${BUILD_CFLAGS}"
+ # Prevent Makefile from calling configure without arguments,
+ # when do_configure gets called for a second time.
+ rm -f ${B}/include/builddefs ${B}/include/platform_defs.h ${B}/configure
+ # Recreate configure script.
+ oe_runmake configure
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
+ oe_runconf
+}
+
+do_install:append() {
+ oe_runmake 'DESTDIR=${D}' install-dev
+ rm ${D}${libdir}/*.la
+ rmdir --ignore-fail-on-non-empty ${D}${libdir}
+
+ if [ ${libdir} != ${base_libdir} ];then
+ ln -sf -r ${D}${libdir}/libhandle.a ${D}${base_libdir}/libhandle.a
+ ln -sf -r ${D}${base_libdir}/libhandle.so ${D}${libdir}/libhandle.so
+ fi
+}
diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests/0001-Add-a-return-type-to-aio_rw.patch b/meta-filesystems/recipes-utils/xfstests/xfstests/0001-Add-a-return-type-to-aio_rw.patch
deleted file mode 100644
index e0a04c9073..0000000000
--- a/meta-filesystems/recipes-utils/xfstests/xfstests/0001-Add-a-return-type-to-aio_rw.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From f172ea004d34b00aa7bd5baff9422b2ab80df6e7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 14 Aug 2022 13:32:10 -0700
-Subject: [PATCH 1/2] Add a return type to aio_rw
-
-Compilers complain about the function prototype otherwise
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ltp/fsx.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/ltp/fsx.c b/ltp/fsx.c
-index 12c2cc33..55b4e9b6 100644
---- a/ltp/fsx.c
-+++ b/ltp/fsx.c
-@@ -2429,6 +2429,7 @@ out_error:
- return -1;
- }
- #else
-+int
- aio_rw(int rw, int fd, char *buf, unsigned len, unsigned offset)
- {
- fprintf(stderr, "io_rw: need AIO support!\n");
---
-2.37.2
-
diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests/0001-add-missing-FTW_-macros-when-not-available-in-libc.patch b/meta-filesystems/recipes-utils/xfstests/xfstests/0001-add-missing-FTW_-macros-when-not-available-in-libc.patch
new file mode 100644
index 0000000000..5e230e2cfb
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfstests/xfstests/0001-add-missing-FTW_-macros-when-not-available-in-libc.patch
@@ -0,0 +1,41 @@
+From 5facddc332c5ff8330f93c0a7e1b7f6d7bbd24a3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 5 Nov 2023 08:31:21 -0800
+Subject: [PATCH] add missing FTW_ macros when not available in libc
+
+Fixes build with musl
+
+| xfsfind.c:176:13: error: use of undeclared identifier 'FTW_STOP'
+| 176 | retval = FTW_STOP;
+| | ^
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/global.h | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/global.h b/src/global.h
+index 49570ef1..1c247488 100644
+--- a/src/global.h
++++ b/src/global.h
+@@ -190,4 +190,16 @@ roundup_64(unsigned long long x, unsigned int y)
+ return rounddown_64(x + y - 1, y);
+ }
+
++#ifndef FTW_ACTIONRETVAL
++#define FTW_ACTIONRETVAL 16
++#endif
++
++#ifndef FTW_CONTINUE
++#define FTW_CONTINUE 0
++#endif
++
++#ifndef FTW_STOP
++#define FTW_STOP 1
++#endif
++
+ #endif /* GLOBAL_H */
+--
+2.42.1
+
diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests/0001-include-libgen.h-for-basename-API-prototype.patch b/meta-filesystems/recipes-utils/xfstests/xfstests/0001-include-libgen.h-for-basename-API-prototype.patch
new file mode 100644
index 0000000000..1570f3131f
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfstests/xfstests/0001-include-libgen.h-for-basename-API-prototype.patch
@@ -0,0 +1,84 @@
+From 37caab7a43da5ede0ff1eb700f0257a213ac4b18 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 10:46:50 -0700
+Subject: [PATCH 1/2] include libgen.h for basename API prototype
+
+basename prototype has been removed from string.h from latest musl [1]
+compilers e.g. clang-18 flags the absense of prototype as error. therefore
+include libgen.h for providing it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [https://lore.kernel.org/fstests/20240325175323.3450750-1-raj.khem@gmail.com/T/#t]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/splice-test.c | 1 +
+ src/stat_test.c | 1 +
+ src/t_ext4_dax_inline_corruption.c | 1 +
+ src/t_ext4_dax_journal_corruption.c | 1 +
+ src/t_mmap_collision.c | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/src/splice-test.c b/src/splice-test.c
+index eb863673..7b7094f5 100644
+--- a/src/splice-test.c
++++ b/src/splice-test.c
+@@ -11,6 +11,7 @@
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <err.h>
++#include <libgen.h>
+
+ #include <stdlib.h>
+ #include <stdio.h>
+diff --git a/src/stat_test.c b/src/stat_test.c
+index 95cfdc4f..77e1acdd 100644
+--- a/src/stat_test.c
++++ b/src/stat_test.c
+@@ -4,6 +4,7 @@
+ * Written by David Howells (dhowells@redhat.com)
+ */
+
++#include <libgen.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/src/t_ext4_dax_inline_corruption.c b/src/t_ext4_dax_inline_corruption.c
+index e1a39a6c..a40c5df5 100644
+--- a/src/t_ext4_dax_inline_corruption.c
++++ b/src/t_ext4_dax_inline_corruption.c
+@@ -2,6 +2,7 @@
+ /* Copyright (c) 2018 Intel Corporation. */
+ #include <errno.h>
+ #include <fcntl.h>
++#include <libgen.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff --git a/src/t_ext4_dax_journal_corruption.c b/src/t_ext4_dax_journal_corruption.c
+index ba7a96e4..53be10c2 100644
+--- a/src/t_ext4_dax_journal_corruption.c
++++ b/src/t_ext4_dax_journal_corruption.c
+@@ -2,6 +2,7 @@
+ /* Copyright (c) 2018 Intel Corporation. */
+ #include <errno.h>
+ #include <fcntl.h>
++#include <libgen.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff --git a/src/t_mmap_collision.c b/src/t_mmap_collision.c
+index c872f4e2..d9315fcf 100644
+--- a/src/t_mmap_collision.c
++++ b/src/t_mmap_collision.c
+@@ -15,6 +15,7 @@
+ */
+ #include <errno.h>
+ #include <fcntl.h>
++#include <libgen.h>
+ #include <pthread.h>
+ #include <stdbool.h>
+ #include <stdio.h>
+--
+2.44.0
+
diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Add-missing-STATX_ATTR_-defines-from-musl-sys-stat.h.patch b/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Add-missing-STATX_ATTR_-defines-from-musl-sys-stat.h.patch
new file mode 100644
index 0000000000..20095c86ab
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Add-missing-STATX_ATTR_-defines-from-musl-sys-stat.h.patch
@@ -0,0 +1,42 @@
+From 052818e91314b797d96d87672c60f6784160f935 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 10:50:59 -0700
+Subject: [PATCH 2/2] Add missing STATX_ATTR_* defines from musl sys/stat.h
+
+These defines are not provided by sys/stat.h on musl but are
+in glibc's sys/stat.h, therefore to compile the tests on musl
+based systems add the missing defines from linux/stat.h
+if they are not provided
+
+Upstream-Status: Submitted [https://lore.kernel.org/fstests/20240325175323.3450750-2-raj.khem@gmail.com/T/#u]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/statx.h | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/statx.h b/src/statx.h
+index 3f239d79..12599f5b 100644
+--- a/src/statx.h
++++ b/src/statx.h
+@@ -12,6 +12,18 @@
+ #define AT_STATX_DONT_SYNC 0x4000 /* - Don't sync attributes with the server */
+ #endif
+
++#ifndef STATX_ATTR_COMPRESSED
++#define STATX_ATTR_COMPRESSED 0x00000004 /* [I] File is compressed by the fs */
++#define STATX_ATTR_IMMUTABLE 0x00000010 /* [I] File is marked immutable */
++#define STATX_ATTR_APPEND 0x00000020 /* [I] File is append-only */
++#define STATX_ATTR_NODUMP 0x00000040 /* [I] File is not to be dumped */
++#define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */
++#define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */
++#define STATX_ATTR_MOUNT_ROOT 0x00002000 /* Root of a mount */
++#define STATX_ATTR_VERITY 0x00100000 /* [I] Verity protected file */
++#define STATX_ATTR_DAX 0x00200000 /* File is currently in DAX state */
++#endif
++
+ #ifndef AT_NO_AUTOMOUNT
+ #define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal */
+ #endif
+--
+2.44.0
+
diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch b/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch
index a594b73a12..e823297343 100644
--- a/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch
+++ b/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch
@@ -1,8 +1,8 @@
-From dd43cbc7f50266cdc6210f2b920d7f648a83bdd6 Mon Sep 17 00:00:00 2001
+From 79c4715a46b80653eb98b61731c094c85e969220 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 14 Aug 2022 13:33:05 -0700
-Subject: [PATCH 2/2] Drop detached_mounts_propagation and remove sys/mount.h
- from vfs/utils.c
+Subject: [PATCH] Drop detached_mounts_propagation and remove sys/mount.h from
+ vfs/utils.c
with glibc 2.36+ sys/mount.h conflicts with linux/mount.h and here
linux/mount.h is included via xfs/xfs.h header and we need sys/mount.h
@@ -13,35 +13,19 @@ Upstream-Status: Inappropriate [Libc specific Workaround]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- src/Makefile | 2 +-
- src/vfs/utils.c | 1 -
- 2 files changed, 1 insertion(+), 2 deletions(-)
+ src/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile b/src/Makefile
-index 665edcf9..7debcbbd 100644
+index e7442487..970f087a 100644
--- a/src/Makefile
+++ b/src/Makefile
-@@ -31,7 +31,7 @@ LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize preallo_rw_pattern_reader \
+@@ -33,7 +33,7 @@ LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize preallo_rw_pattern_reader \
dio-invalidate-cache stat_test t_encrypted_d_revalidate \
attr_replace_test swapon mkswap t_attr_corruption t_open_tmpfiles \
fscrypt-crypt-util bulkstat_null_ocount splice-test chprojid_fail \
- detached_mounts_propagation ext4_resize t_readdir_3 splice2pipe \
+ ext4_resize t_readdir_3 splice2pipe \
- uuid_ioctl
+ uuid_ioctl t_snapshot_deleted_subvolume
EXTRA_EXECS = dmerror fill2attr fill2fs fill2fs_check scaleread.sh \
-diff --git a/src/vfs/utils.c b/src/vfs/utils.c
-index 1388edda..aacd6c0a 100644
---- a/src/vfs/utils.c
-+++ b/src/vfs/utils.c
-@@ -10,7 +10,6 @@
- #include <stdlib.h>
- #include <sys/eventfd.h>
- #include <sys/fsuid.h>
--#include <sys/mount.h>
- #include <sys/prctl.h>
- #include <sys/socket.h>
- #include <sys/stat.h>
---
-2.37.2
-
diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests_2022.09.04.bb b/meta-filesystems/recipes-utils/xfstests/xfstests_2022.09.04.bb
deleted file mode 100644
index 90f49f76d4..0000000000
--- a/meta-filesystems/recipes-utils/xfstests/xfstests_2022.09.04.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-SUMMARY = "File system QA test suite"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=74274e8a218423e49eefdea80bc55038"
-
-SRCREV_FORMAT = "xfstests_unionmount"
-
-SRC_URI = "git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git;branch=master;name=xfstests \
- git://github.com/amir73il/unionmount-testsuite.git;branch=master;protocol=https;name=unionmount;destsuffix=unionmount-testsuite \
- file://0001-Add-a-return-type-to-aio_rw.patch \
- file://0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch \
- "
-
-SRCREV_xfstests = "890c50823b6430bf0929d9a57e76b9b4d6bbc25f"
-SRCREV_unionmount = "e3825b16b46f4c4574a1a69909944c059835f914"
-
-S = "${WORKDIR}/git"
-
-inherit autotools-brokensep useradd
-
-DEPENDS += "xfsprogs acl"
-RDEPENDS:${PN} += "\
- bash \
- bc \
- coreutils \
- e2fsprogs \
- e2fsprogs-tune2fs \
- e2fsprogs-resize2fs \
- libaio \
- libcap-bin \
- overlayfs-progs \
- perl \
- python3 \
- python3-core \
- xfsprogs \
- acl \
-"
-
-USERADD_PACKAGES = "${PN}"
-# these users are necessary to run the tests
-USERADD_PARAM:${PN} = "-U -m fsgqa; -N 123456-fsgqa; -N fsgqa2"
-
-EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root"
-
-# install-sh script in the project is outdated
-# we use the one from the latest libtool to solve installation issues
-# It looks like the upstream is not interested in having it fixed :(
-# https://www.spinics.net/lists/fstests/msg16981.html
-do_configure:prepend() {
- cp ${STAGING_DIR_NATIVE}${datadir}/libtool/build-aux/install-sh ${B}
-}
-
-do_install:append() {
- unionmount_target_dir=${D}/usr/xfstests/unionmount-testsuite
- install -d ${D}/usr/xfstests/unionmount-testsuite/tests
- install -D ${WORKDIR}/unionmount-testsuite/tests/* -t $unionmount_target_dir/tests
- install ${WORKDIR}/unionmount-testsuite/*.py -t $unionmount_target_dir
- install ${WORKDIR}/unionmount-testsuite/run -t $unionmount_target_dir
- install ${WORKDIR}/unionmount-testsuite/README -t $unionmount_target_dir
-}
-
-FILES:${PN} += "\
- /usr/xfstests \
-"
diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests_2024.03.03.bb b/meta-filesystems/recipes-utils/xfstests/xfstests_2024.03.03.bb
new file mode 100644
index 0000000000..c8a80523dd
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfstests/xfstests_2024.03.03.bb
@@ -0,0 +1,67 @@
+SUMMARY = "File system QA test suite"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=74274e8a218423e49eefdea80bc55038"
+
+SRCREV = "088e5bd4cb6d7295612430a56ae84ff5c8f54730"
+SRCREV_unionmount = "e3825b16b46f4c4574a1a69909944c059835f914"
+SRCREV_FORMAT = "default_unionmount"
+
+SRC_URI = "git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git;branch=master \
+ git://github.com/amir73il/unionmount-testsuite.git;branch=master;protocol=https;name=unionmount;destsuffix=unionmount-testsuite \
+ file://0001-add-missing-FTW_-macros-when-not-available-in-libc.patch \
+ file://0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch \
+ file://0001-include-libgen.h-for-basename-API-prototype.patch \
+ file://0002-Add-missing-STATX_ATTR_-defines-from-musl-sys-stat.h.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+# brokensep because m4/package_globals.m4 calls ". ./VERSION" (and that's not the only issue)
+inherit autotools-brokensep useradd
+
+DEPENDS += "xfsprogs acl"
+RDEPENDS:${PN} += "\
+ bash \
+ bc \
+ coreutils \
+ e2fsprogs \
+ e2fsprogs-tune2fs \
+ e2fsprogs-resize2fs \
+ libaio \
+ libcap-bin \
+ overlayfs-tools \
+ perl \
+ python3 \
+ python3-core \
+ xfsprogs \
+ acl \
+ gawk \
+"
+
+USERADD_PACKAGES = "${PN}"
+# these users are necessary to run the tests
+USERADD_PARAM:${PN} = "-U -m fsgqa; -N 123456-fsgqa; -N fsgqa2"
+
+EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root"
+
+TARGET_CC_ARCH:append:libc-musl = " -D_LARGEFILE64_SOURCE"
+
+do_configure:prepend() {
+ # this is done by Makefile configure target, but we don't call it in do_configure
+ cp -a ${S}/include/install-sh .
+}
+
+do_install() {
+ # otherwise install-sh duplicates DESTDIR prefix
+ export DIST_ROOT="/" DIST_MANIFEST="" DESTDIR="${D}"
+ oe_runmake install
+
+ unionmount_target_dir=${D}${prefix}/xfstests/unionmount-testsuite
+ install -d $unionmount_target_dir/tests
+ install ${WORKDIR}/unionmount-testsuite/tests/* -t $unionmount_target_dir/tests
+ install ${WORKDIR}/unionmount-testsuite/*.py -t $unionmount_target_dir
+ install ${WORKDIR}/unionmount-testsuite/run -t $unionmount_target_dir
+ install ${WORKDIR}/unionmount-testsuite/README -t $unionmount_target_dir
+}
+
+FILES:${PN} += "${prefix}/xfstests"
diff --git a/meta-filesystems/recipes-utils/xorriso/xorriso_1.5.5.bb b/meta-filesystems/recipes-utils/xorriso/xorriso_1.5.5.bb
deleted file mode 100644
index a83950db82..0000000000
--- a/meta-filesystems/recipes-utils/xorriso/xorriso_1.5.5.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-DESCRIPTION = "xorriso copies file objects from POSIX compliant filesystems \
-into Rock Ridge enhanced ISO 9660 filesystems and allows session-wise \
-manipulation of such filesystems"
-
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "http://www.gnu.org/software/${BPN}/${BPN}-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "a5e3dc4e0b92be6837f9ed6cbf7f9df5"
-SRC_URI[sha256sum] = "91663d61bee61ff790b3f6861fdf57c54af0e238ab14f297b55bae8ab5d17684"
-
-PACKAGECONFIG ??= "acl attr zlib bzip2 readline"
-PACKAGECONFIG[acl] = "--enable-libacl,--disable-libacl,acl,"
-PACKAGECONFIG[attr] = "--enable-xattr,--disable-xattr,attr,"
-PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib,"
-PACKAGECONFIG[bzip2] = "--enable-libbz2,--disable-libbz2,bzip2,"
-PACKAGECONFIG[readline] = "--enable-libreadline,--disable-libreadline,readline,"
-
-inherit autotools-brokensep pkgconfig features_check
-
-do_configure:prepend () {
- touch NEWS
-}
-
-RDEPENDS:${PN} = "tk"
-REQUIRED_DISTRO_FEATURES = "x11"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-gnome/README b/meta-gnome/README.md
index fbb0d72476..fbb0d72476 100644
--- a/meta-gnome/README
+++ b/meta-gnome/README.md
diff --git a/meta-gnome/conf/layer.conf b/meta-gnome/conf/layer.conf
index d4d167d0fe..75764e64c7 100644
--- a/meta-gnome/conf/layer.conf
+++ b/meta-gnome/conf/layer.conf
@@ -17,10 +17,15 @@ LAYERVERSION_gnome-layer = "1"
LAYERDEPENDS_gnome-layer = "core openembedded-layer networking-layer meta-python"
-LAYERSERIES_COMPAT_gnome-layer = "kirkstone langdale"
+LAYERSERIES_COMPAT_gnome-layer = "scarthgap"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "\
faenza-icon-theme->gdk-pixbuf \
faenza-icon-theme->gtk+3 \
"
+BBFILES_DYNAMIC += " \
+ virtualization-layer:${LAYERDIR}/dynamic-layers/meta-virtualization/*/*/*.bb \
+ virtualization-layer:${LAYERDIR}/dynamic-layers/meta-virtualization/*/*/*.bbappend \
+ security:${LAYERDIR}/dynamic-layers/meta-security/*/*/*.bb \
+"
diff --git a/meta-gnome/dynamic-layers/meta-security/recipes-gnome/gnome-remote-desktop/gnome-remote-desktop_46.0.bb b/meta-gnome/dynamic-layers/meta-security/recipes-gnome/gnome-remote-desktop/gnome-remote-desktop_46.0.bb
new file mode 100644
index 0000000000..b9ee0e60d5
--- /dev/null
+++ b/meta-gnome/dynamic-layers/meta-security/recipes-gnome/gnome-remote-desktop/gnome-remote-desktop_46.0.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Remote desktop daemon for GNOME using pipewire."
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gettext gsettings features_check
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+SRC_URI[archive.sha256sum] = "e75ce17c12a6d39254dc309c31514e5ef15763f136612d641c5f6f4445e00ac4"
+
+DEPENDS = " \
+ asciidoc-native \
+ libdrm \
+ libei \
+ libepoxy \
+ cairo \
+ glib-2.0 \
+ pipewire \
+ polkit \
+ libnotify \
+ libopus \
+ libsecret \
+ nv-codec-headers \
+ tpm2-tss \
+"
+
+PACKAGECONFIG ??= " \
+ rdp \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+"
+
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,pipewire-native wireplumber-native dbus-native"
+PACKAGECONFIG[vnc] = "-Dvnc=true,-Dvnc=false,libvncserver"
+PACKAGECONFIG[rdp] = "-Drdp=true,-Drdp=false,freerdp3 fuse3 libxkbcommon"
+PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
+
+PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
+FILES:${PN} += "${systemd_user_unitdir} ${systemd_system_unitdir} ${datadir} ${libdir}/sysusers.d ${libdir}/tmpfiles.d"
diff --git a/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-boxes/gnome-boxes_46.0.bb b/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-boxes/gnome-boxes_46.0.bb
new file mode 100644
index 0000000000..44fdd2dbea
--- /dev/null
+++ b/meta-gnome/dynamic-layers/meta-virtualization/recipes-gnome/gnome-boxes/gnome-boxes_46.0.bb
@@ -0,0 +1,41 @@
+SUMMARY = "A simple GNOME application to access virtual machines."
+SECTION = "network"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://copyright;md5=a65e9b0c9f78617732f09f68fc4ef79a"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
+
+DEPENDS = " \
+ glib-2.0 \
+ desktop-file-utils-native \
+ libarchive \
+ libgudev \
+ libhandy \
+ libosinfo \
+ libportal \
+ libsecret \
+ libsoup \
+ libvirt-glib \
+ mtools \
+ spice-gtk \
+ tracker \
+ webkitgtk3 \
+ appstream-glib-native \
+ spice-protocol \
+ yelp-tools \
+"
+
+RDEPENDS:${PN} = "glib-2.0-dev libvirt-virsh qemu-common qemu-system-x86-64 genisoimage"
+
+inherit gnomebase gsettings pkgconfig mime-xdg gtk-icon-cache gobject-introspection vala features_check
+
+SRC_URI[archive.sha256sum] = "67eeb5e989294958b25c397cfc5615ff65f44315c700010f0b9e336e6f3407cb"
+
+GIR_MESON_OPTION = ""
+VALA_MESON_OPTION = ""
+
+FILES:${PN} += "${datadir}"
+
+INSANE_SKIP:${PN} = "dev-deps"
diff --git a/meta-gnome/files/static-passwd-meta-gnome b/meta-gnome/files/static-passwd-meta-gnome
new file mode 100644
index 0000000000..4502d8bd10
--- /dev/null
+++ b/meta-gnome/files/static-passwd-meta-gnome
@@ -0,0 +1 @@
+gdm:x:680:nogroup::/:/bin/nologin \ No newline at end of file
diff --git a/meta-gnome/recipes-connectivity/folks/folks_0.15.5.bb b/meta-gnome/recipes-connectivity/folks/folks_0.15.5.bb
deleted file mode 100644
index ad61ee610c..0000000000
--- a/meta-gnome/recipes-connectivity/folks/folks_0.15.5.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Folks is a contact aggregation library."
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-DEPENDS = " \
- glib-2.0 \
- libgee \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-EXTRA_OEMESON += "-Dtests=false -Db_lto=false "
-
-CFLAGS:append:toolchain-clang = " -Wno-error=implicit-function-declaration"
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-GIR_MESON_OPTION = ""
-
-PACKAGECONFIG[eds] = "-Deds_backend=true,-Deds_backend=false,evolution-data-server"
-PACKAGECONFIG[bluez] = "-Dbluez_backend=true,-Dbluez_backend=false,evolution-data-server"
-PACKAGECONFIG[ofono] = "-Deds_backend=true -Dofono_backend=true,-Dofono_backend=false,evolution-data-server"
-PACKAGECONFIG[telepathy] = "-Dtelepathy_backend=true,-Dtelepathy_backend=false,telepathy-glib dbus-glib"
-PACKAGECONFIG[import_tool] = "-Dimport_tool=true,-Dimport_tool=false,libxml2"
-PACKAGECONFIG[inspect_tool] = "-Dinspect_tool=true,-Dinspect_tool=false"
-
-PACKAGECONFIG ??= ""
-
-inherit pkgconfig gnomebase gettext gobject-introspection vala features_check
-
-SRC_URI[archive.sha256sum] = "0fff8a896330cd82aee4598324f7e541c884d0337536212723b4beb38c759086"
diff --git a/meta-gnome/recipes-connectivity/folks/folks_0.15.8.bb b/meta-gnome/recipes-connectivity/folks/folks_0.15.8.bb
new file mode 100644
index 0000000000..4d26817107
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/folks/folks_0.15.8.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Folks is a contact aggregation library."
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = " \
+ glib-2.0 \
+ libgee \
+"
+
+EXTRA_OEMESON += "-Dtests=false -Db_lto=false "
+
+CFLAGS:append:toolchain-clang = " -Wno-error=implicit-function-declaration"
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+PACKAGECONFIG[eds] = "-Deds_backend=true,-Deds_backend=false,evolution-data-server"
+PACKAGECONFIG[bluez] = "-Dbluez_backend=true,-Dbluez_backend=false,evolution-data-server"
+PACKAGECONFIG[ofono] = "-Deds_backend=true -Dofono_backend=true,-Dofono_backend=false,evolution-data-server"
+PACKAGECONFIG[telepathy] = "-Dtelepathy_backend=true,-Dtelepathy_backend=false,telepathy-glib dbus-glib"
+PACKAGECONFIG[import_tool] = "-Dimport_tool=true,-Dimport_tool=false,libxml2"
+PACKAGECONFIG[inspect_tool] = "-Dinspect_tool=true,-Dinspect_tool=false"
+
+PACKAGECONFIG ??= ""
+
+inherit pkgconfig gnomebase gettext gobject-introspection vala features_check
+
+SRC_URI[archive.sha256sum] = "954a6afb3e378f01d310fd443790f235cb0eb71e2139cff4f05f09ab725e49c2"
diff --git a/meta-gnome/recipes-connectivity/geary/geary/0001-Util.Cache.Lru-Workaround-missing-generic-type-argum.patch b/meta-gnome/recipes-connectivity/geary/geary/0001-Util.Cache.Lru-Workaround-missing-generic-type-argum.patch
deleted file mode 100644
index 22af4f5bea..0000000000
--- a/meta-gnome/recipes-connectivity/geary/geary/0001-Util.Cache.Lru-Workaround-missing-generic-type-argum.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 166198735e9f4fbe91557df1351b3481bcf79e78 Mon Sep 17 00:00:00 2001
-From: Rico Tzschichholz <ricotz@ubuntu.com>
-Date: Sun, 30 Jan 2022 19:54:11 +0100
-Subject: [PATCH 1/2] Util.Cache.Lru: Workaround missing generic type argument
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/geary/-/commit/0f75e7a84a39492d0748cec2ba6028e08cae3644]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/client/util/util-cache.vala | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/client/util/util-cache.vala b/src/client/util/util-cache.vala
-index f054e32e..ecc275e8 100644
---- a/src/client/util/util-cache.vala
-+++ b/src/client/util/util-cache.vala
-@@ -12,7 +12,7 @@ public class Util.Cache.Lru<T> : Geary.BaseObject {
- private class CacheEntry<T> {
-
-
-- public static int lru_compare(CacheEntry<T> a, CacheEntry<T> b) {
-+ public static int lru_compare(CacheEntry a, CacheEntry b) {
- if (a.key == b.key) {
- return 0;
- }
---
-2.35.1
-
diff --git a/meta-gnome/recipes-connectivity/geary/geary/0001-meson-Use-PKG_CONFIG_SYSROOT_DIR-when-using-pkg-conf.patch b/meta-gnome/recipes-connectivity/geary/geary/0001-meson-Use-PKG_CONFIG_SYSROOT_DIR-when-using-pkg-conf.patch
new file mode 100644
index 0000000000..1e0640a666
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/geary/geary/0001-meson-Use-PKG_CONFIG_SYSROOT_DIR-when-using-pkg-conf.patch
@@ -0,0 +1,51 @@
+From a300be5877f35379bb569313eec901bda9c8d762 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 30 Apr 2023 22:08:39 -0700
+Subject: [PATCH] meson: Use PKG_CONFIG_SYSROOT_DIR when using pkg-config
+
+OE cross-builds and absolute paths found by pkg-config points to
+non-sysroot'ed locations which are not correct as they point into native
+sysroot from build machine which is incorrect.
+
+Upstream-Status: Inappropriate [OE-specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ meson.build | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index d563dd08..9b72aeb4 100644
+--- a/meson.build
++++ b/meson.build
+@@ -38,6 +38,9 @@ metadata_dir = meson.project_source_root() / 'bindings'/ 'metadata'
+ po_dir = meson.project_source_root() / 'po'
+ vapi_dir = meson.project_source_root() / 'bindings' / 'vapi'
+
++# pkg-config sysroot location
++pkgconf_sysroot = run_command('python3', '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip()
++
+ # Compiler configuration
+ add_project_arguments([
+ # Make sure Meson can find custom VAPIs
+@@ -120,7 +123,7 @@ icu_uc = declare_dependency(
+ if libunwind_dep.found()
+ # We need to add native lib to the search path for these so Flatpak
+ # builds can find it.
+- unwind_lib = libunwind_dep.get_variable(pkgconfig: 'libdir')
++ unwind_lib = pkgconf_sysroot + libunwind_dep.get_variable(pkgconfig: 'libdir')
+ libunwind = declare_dependency(
+ dependencies: [
+ valac.find_library('libunwind', dirs: [vapi_dir, unwind_lib]),
+@@ -207,8 +210,7 @@ vala_unit_proj = subproject(
+ vala_unit_dep = vala_unit_proj.get_variable('vala_unit_dep')
+
+ # Language detection
+-
+-iso_codes_dir = iso_codes.get_variable(pkgconfig: 'prefix')/'share'/'xml'/'iso-codes'
++iso_codes_dir = pkgconf_sysroot + iso_codes.get_variable(pkgconfig: 'prefix')/'share'/'xml'/'iso-codes'
+
+ iso_639_xml = get_option('iso_639_xml')
+ if iso_639_xml == ''
+--
+2.40.1
+
diff --git a/meta-gnome/recipes-connectivity/geary/geary/0002-Fix-accessibility-issues-with-initializer-of-constan.patch b/meta-gnome/recipes-connectivity/geary/geary/0002-Fix-accessibility-issues-with-initializer-of-constan.patch
deleted file mode 100644
index 76315f3a0e..0000000000
--- a/meta-gnome/recipes-connectivity/geary/geary/0002-Fix-accessibility-issues-with-initializer-of-constan.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 64b56e75a54a9fa3f37c7686be97a5c8818413a4 Mon Sep 17 00:00:00 2001
-From: Rico Tzschichholz <ricotz@ubuntu.com>
-Date: Tue, 30 Nov 2021 15:31:31 +0100
-Subject: [PATCH 2/2] Fix accessibility issues with initializer of constants
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/geary/-/commit/9bd4c82952a0a2c3308c5cc86c0b85650c1fb484]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/client/application/application-client.vala | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/src/client/application/application-client.vala b/src/client/application/application-client.vala
-index 6ce19ce2..e6ba8533 100644
---- a/src/client/application/application-client.vala
-+++ b/src/client/application/application-client.vala
-@@ -8,16 +8,16 @@
-
- // Defined by CMake build script.
- extern const string GETTEXT_PACKAGE;
--extern const string _APP_ID;
--extern const string _BUILD_ROOT_DIR;
--extern const string _GSETTINGS_DIR;
--extern const string _INSTALL_PREFIX;
--extern const string _NAME_SUFFIX;
-+public extern const string _APP_ID;
-+public extern const string _BUILD_ROOT_DIR;
-+public extern const string _GSETTINGS_DIR;
-+public extern const string _INSTALL_PREFIX;
-+public extern const string _NAME_SUFFIX;
- extern const string _PLUGINS_DIR;
- extern const string _PROFILE;
- extern const string _REVNO;
--extern const string _SOURCE_ROOT_DIR;
--extern const string _VERSION;
-+public extern const string _SOURCE_ROOT_DIR;
-+public extern const string _VERSION;
- extern const string _WEB_EXTENSIONS_DIR;
-
-
---
-2.35.1
-
diff --git a/meta-gnome/recipes-connectivity/geary/geary_40.0.bb b/meta-gnome/recipes-connectivity/geary/geary_40.0.bb
deleted file mode 100644
index 3ff0a412e2..0000000000
--- a/meta-gnome/recipes-connectivity/geary/geary_40.0.bb
+++ /dev/null
@@ -1,61 +0,0 @@
-SUMMARY = "Geary is an email application built around conversations, for the GNOME 3 desktop."
-SECTION = "network"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2a2244d5a13871ad950c55877546a6a2"
-
-DEPENDS = " \
- appstream-glib \
- cairo \
- enchant2 \
- evolution-data-server \
- folks \
- gcr \
- gmime \
- gnome-online-accounts \
- gsound \
- gspell \
- gtk+3 \
- icu \
- iso-codes \
- json-glib \
- libhandy \
- libical \
- libpeas \
- libsecret \
- libstemmer \
- libxml2 \
- sqlite3 \
- webkitgtk \
-"
-
-RDEPENDS:${PN} = "gnome-keyring"
-
-inherit meson pkgconfig mime-xdg gtk-icon-cache gobject-introspection vala features_check
-
-SRC_URI = " \
- git://github.com/GNOME/geary.git;nobranch=1;protocol=https \
- file://0001-Util.Cache.Lru-Workaround-missing-generic-type-argum.patch \
- file://0002-Fix-accessibility-issues-with-initializer-of-constan.patch \
-"
-
-S = "${WORKDIR}/git"
-SRCREV = "e561775c1580a9f60a726355b2b897bfc9cb3382"
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-
-GIR_MESON_OPTION = ""
-EXTRA_OEMESON = "-Dprofile=release"
-
-PACKAGECONFIG[libunwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
-PACKAGECONFIG[tnef] = "-Dtnef=enabled,-Dtnef=disabled,libytnef"
-PACKAGECONFIG[valadoc] = "-Dvaladoc=enabled,-Dvaladoc=disabled"
-
-PACKAGECONFIG ??= ""
-# rfc822/rfc822-message.c:2097:12: error: incompatible pointer to integer conversion returning 'void *' from a function with result type 'gboolean' (aka 'int') [-Wint-conversion]
-#| return NULL;
-#| ^~~~
-CFLAGS:append:toolchain-clang = " -Wno-error=int-conversion"
-
-FILES:${PN} += "${datadir}"
-
diff --git a/meta-gnome/recipes-connectivity/geary/geary_44.1.bb b/meta-gnome/recipes-connectivity/geary/geary_44.1.bb
new file mode 100644
index 0000000000..decae6b2c7
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/geary/geary_44.1.bb
@@ -0,0 +1,61 @@
+SUMMARY = "Geary is an email application built around conversations, for the GNOME 3 desktop."
+SECTION = "network"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2a2244d5a13871ad950c55877546a6a2"
+
+DEPENDS = " \
+ appstream-glib \
+ cairo \
+ desktop-file-utils-native \
+ enchant2 \
+ evolution-data-server \
+ folks \
+ gcr3 \
+ gmime \
+ gnome-online-accounts \
+ gsound \
+ gspell \
+ gtk+3 \
+ icu \
+ iso-codes \
+ json-glib \
+ libhandy \
+ libical \
+ libpeas \
+ libsecret \
+ libstemmer \
+ libxml2 \
+ sqlite3 \
+ webkitgtk3 \
+"
+
+RDEPENDS:${PN} = "gnome-keyring"
+
+inherit meson pkgconfig mime-xdg gtk-icon-cache gobject-introspection vala features_check
+
+SRC_URI = " \
+ git://github.com/GNOME/geary.git;nobranch=1;protocol=https \
+ file://0001-meson-Use-PKG_CONFIG_SYSROOT_DIR-when-using-pkg-conf.patch \
+"
+
+S = "${WORKDIR}/git"
+SRCREV = "37c378a563d5b1c269d57c34671edc940d1cd180"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data opengl"
+
+GIR_MESON_OPTION = ""
+EXTRA_OEMESON = "-Dprofile=release"
+
+PACKAGECONFIG[libunwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
+PACKAGECONFIG[tnef] = "-Dtnef=enabled,-Dtnef=disabled,libytnef"
+PACKAGECONFIG[valadoc] = "-Dvaladoc=enabled,-Dvaladoc=disabled"
+
+PACKAGECONFIG ??= ""
+# rfc822/rfc822-message.c:2097:12: error: incompatible pointer to integer conversion returning 'void *' from a function with result type 'gboolean' (aka 'int') [-Wint-conversion]
+#| return NULL;
+#| ^~~~
+CFLAGS:append:toolchain-clang = " -Wno-error=int-conversion"
+
+FILES:${PN} += "${datadir}"
+
diff --git a/meta-gnome/recipes-connectivity/gtk-vnc/gtk-vnc_1.3.1.bb b/meta-gnome/recipes-connectivity/gtk-vnc/gtk-vnc_1.3.1.bb
new file mode 100644
index 0000000000..8bd37f754c
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/gtk-vnc/gtk-vnc_1.3.1.bb
@@ -0,0 +1,30 @@
+SUMMARY = "A VNC client viewer widget for GTK"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4339efb5fd592e45b9e2641de9fe734f"
+
+DEPENDS = " \
+ gdk-pixbuf \
+ glib-2.0 \
+ gnutls \
+ gtk+3 \
+ libgcrypt \
+ libx11 \
+ zlib \
+"
+
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+VALA_MESON_OPTION = "with-vala"
+VALA_MESON_ENABLE_FLAG ?= 'enabled'
+VALA_MESON_DISABLE_FLAG ?= 'disabled'
+
+PACKAGECONFIG[pulseaudio] = "-Dpulseaudio=enabled,-Dpulseaudio=disabled,pulseaudio"
+PACKAGECONFIG[sasl] = "-Dsasl=enabled,-Dsasl=disabled,cyrus-sasl"
+
+PACKAGECONFIG ??= "pulseaudio sasl"
+
+inherit pkgconfig gnomebase gettext gobject-introspection vala features_check
+
+PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
+
+SRC_URI[archive.sha256sum] = "512763ac4e0559d0158b6682ca5dd1a3bd633f082f5e4349d7158e6b5f80f1ce"
diff --git a/meta-gnome/recipes-connectivity/libnma/libnma_1.10.6.bb b/meta-gnome/recipes-connectivity/libnma/libnma_1.10.6.bb
new file mode 100644
index 0000000000..9a4dad35d1
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/libnma/libnma_1.10.6.bb
@@ -0,0 +1,33 @@
+SUMMARY = "NetworkManager GUI library"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "glib-2.0 gtk+3 gtk4 networkmanager"
+
+inherit gnomebase gobject-introspection gtk-doc gettext vala features_check
+
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG','gcr','x11','',d)} opengl"
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI[archive.sha256sum] = "53a6fb2b190ad37c5986caed3e98bede7c3c602399ee4f93c8fc054303d76dab"
+
+PACKAGECONFIG ?= "gcr iso_codes mobile_broadband_provider_info"
+PACKAGECONFIG[gcr] = "-Dgcr=true,-Dgcr=false,gcr"
+PACKAGECONFIG[iso_codes] = "-Diso_codes=true,-Diso_codes=false,iso-codes,iso-codes"
+PACKAGECONFIG[mobile_broadband_provider_info] = "-Dmobile_broadband_provider_info=true,-Dmobile_broadband_provider_info=false,mobile-broadband-provider-info,mobile-broadband-provider-info"
+
+# for gnome-control-center >= 42
+EXTRA_OEMESON = "-Dlibnma_gtk4=true"
+
+# go introspection is not supported for mipsn32/riscv32, but vapi needs it
+#
+EXTRA_OEMESON:append:mipsarchn32 = " -Dvapi=false"
+EXTRA_OEMESON:append:riscv32 = " -Dvapi=false"
+EXTRA_OEMESON:append:powerpc64le = " -Dvapi=false"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+do_install:append() {
+ # conflicts with the file provided by network-manager-applet
+ rm -f ${D}${datadir}/glib-2.0/schemas/org.gnome.nm-applet.gschema.xml
+}
diff --git a/meta-gnome/recipes-connectivity/libnma/libnma_1.8.38.bb b/meta-gnome/recipes-connectivity/libnma/libnma_1.8.38.bb
deleted file mode 100644
index 75c704bc27..0000000000
--- a/meta-gnome/recipes-connectivity/libnma/libnma_1.8.38.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "NetworkManager GUI library"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "glib-2.0 gtk+3 gtk4 networkmanager"
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gobject-introspection gtk-doc gettext vala features_check
-
-REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG','gcr','x11','',d)}"
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[archive.sha256sum] = "5ed93eae18456ff5a8a4f408178c1ee198dc8d3a46c65f9075b101916e64e8b4"
-
-PACKAGECONFIG ?= "gcr iso_codes mobile_broadband_provider_info"
-PACKAGECONFIG[gcr] = "-Dgcr=true,-Dgcr=false,gcr"
-PACKAGECONFIG[iso_codes] = "-Diso_codes=true,-Diso_codes=false,iso-codes,iso-codes"
-PACKAGECONFIG[mobile_broadband_provider_info] = "-Dmobile_broadband_provider_info=true,-Dmobile_broadband_provider_info=false,mobile-broadband-provider-info,mobile-broadband-provider-info"
-
-# for gnome-control-center >= 42
-EXTRA_OEMESON = "-Dlibnma_gtk4=true"
-
-# go introspection is not supported for mipsn32/riscv32, but vapi needs it
-#
-EXTRA_OEMESON:append:mipsarchn32 = " -Dvapi=false"
-EXTRA_OEMESON:append:riscv32 = " -Dvapi=false"
-EXTRA_OEMESON:append:powerpc64le = " -Dvapi=false"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch b/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch
new file mode 100644
index 0000000000..eafd497ae2
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch
@@ -0,0 +1,30 @@
+From e09ba80e342b3b24bb2a46e11dae1c30cc61c75c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 3 Sep 2023 08:48:42 -0700
+Subject: [PATCH] linker-script: Do not export _IO_stdin_used
+
+This is glibc specific toolhain issue, it should have been handled in
+toolchain instead of exposing to applications. This was done to fix
+
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=835550
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ linker-script-binary.ver | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/linker-script-binary.ver b/linker-script-binary.ver
+index a2780c0..f030d35 100644
+--- a/linker-script-binary.ver
++++ b/linker-script-binary.ver
+@@ -1,6 +1,5 @@
+ {
+ global:
+- _IO_stdin_used;
+ local:
+ *;
+ };
+--
+2.42.0
+
diff --git a/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.26.0.bb b/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.26.0.bb
deleted file mode 100644
index 8046b139c0..0000000000
--- a/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.26.0.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "GTK+ applet for NetworkManager"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "gtk+3 libnma libnotify libsecret libgudev networkmanager iso-codes nss"
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit features_check gnomebase gsettings gtk-icon-cache gettext
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.sha256sum] = "69611b29064adbd57395fe3e51a9ebde1ea794615f776900453a2bbe3d8cddfd"
-
-# We don't not have ubuntu's appindicator (yet?)
-EXTRA_OEMESON = "-Dappindicator=no"
-# We currently don't build NetworkManager with libteamdctl support
-EXTRA_OEMESON += "-Dteam=false"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
-PACKAGECONFIG[modemmanager] = "-Dwwan=true, -Dwwan=false, modemmanager"
-PACKAGECONFIG[selinux] = "-Dselinux=true, -Dselinux=false, libselinux"
-
-RDEPENDS:${PN} =+ "networkmanager"
-
-FILES:${PN} += " \
- ${datadir}/nm-applet/ \
- ${datadir}/libnma/wifi.ui \
- ${datadir}/metainfo \
-"
diff --git a/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.36.0.bb b/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.36.0.bb
new file mode 100644
index 0000000000..10e514775a
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.36.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "GTK+ applet for NetworkManager"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "gtk+3 libnma libnotify libsecret libgudev networkmanager iso-codes nss"
+
+inherit features_check gnomebase gsettings gtk-icon-cache gettext pkgconfig
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+SRC_URI:append:libc-musl = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' file://0001-linker-scripts-Do-not-export-_IO_stdin_used.patch', '', d)}"
+
+SRC_URI[archive.sha256sum] = "a84704487ea3afe1485c47fb2ab598b8f779f540ae0dcbf0a1c5f85e64a7e253"
+
+# We don't not have ubuntu's appindicator (yet?)
+EXTRA_OEMESON = "-Dappindicator=no"
+# We currently don't build NetworkManager with libteamdctl support
+EXTRA_OEMESON += "-Dteam=false"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
+PACKAGECONFIG[modemmanager] = "-Dwwan=true, -Dwwan=false, modemmanager"
+PACKAGECONFIG[selinux] = "-Dselinux=true, -Dselinux=false, libselinux"
+
+RDEPENDS:${PN} =+ "networkmanager"
+
+FILES:${PN} += " \
+ ${datadir}/nm-applet/ \
+ ${datadir}/libnma/wifi.ui \
+ ${datadir}/metainfo \
+"
diff --git a/meta-gnome/recipes-extended/gparted/files/0001-Do-not-use-NULL-where-boolean-is-expected.patch b/meta-gnome/recipes-extended/gparted/files/0001-Do-not-use-NULL-where-boolean-is-expected.patch
deleted file mode 100644
index 1b0d24024b..0000000000
--- a/meta-gnome/recipes-extended/gparted/files/0001-Do-not-use-NULL-where-boolean-is-expected.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 9af84e1c08a2159c10baf13244e2c8a7d7e837e9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 27 Jan 2022 23:02:20 -0800
-Subject: [PATCH] Do not use NULL where boolean is expected
-
-Fixes
-src/GParted_Core.cc:73:57: error: static_cast from 'nullptr_t' to 'PedPartitionFlag' (aka '_PedPartitionFlag') is not allowed
-| for ( PedPartitionFlag flag = ped_partition_flag_next( static_cast<PedPartitionFlag>( NULL ) ) ;
-| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-| 1 error generated.
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/GParted_Core.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/GParted_Core.cc b/src/GParted_Core.cc
-index f7ac970..3290c66 100644
---- a/src/GParted_Core.cc
-+++ b/src/GParted_Core.cc
-@@ -70,7 +70,7 @@ GParted_Core::GParted_Core()
- ped_exception_set_handler( ped_exception_handler ) ;
-
- //get valid flags ...
-- for ( PedPartitionFlag flag = ped_partition_flag_next( static_cast<PedPartitionFlag>( NULL ) ) ;
-+ for ( PedPartitionFlag flag = ped_partition_flag_next( static_cast<PedPartitionFlag>( false ) ) ;
- flag ;
- flag = ped_partition_flag_next( flag ) )
- flags .push_back( flag ) ;
---
-2.35.0
-
diff --git a/meta-gnome/recipes-extended/gparted/files/0001-use-posix-basename.patch b/meta-gnome/recipes-extended/gparted/files/0001-use-posix-basename.patch
deleted file mode 100644
index aae200e27e..0000000000
--- a/meta-gnome/recipes-extended/gparted/files/0001-use-posix-basename.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Subject: [PATCH] BCache_Info.cc: use posix basename
-
-gnu 'basename' is undeclared for cplusplus if using musl. Use posix basename instead.
-
-fdebug-prefix-map=TOPDIR/build/tmp/work/cortexa57-yoe-linux-musl/gparted/1.4.0-r0/
-recipe-sysroot-native=-fvisibility-inlines-hidden -c -o Dialog_Disklabel.o ../../
-gparted-1.4.0/src/Dialog_Disklabel.cc ../../gparted-1.4.0/src/BCache_Info.cc:52:33:
-
-error: use of undeclared identifier 'basename'; did you mean 'g_basename'?
- return "/dev/" + Glib::ustring(basename(buf));
- ^~~~~~~~
- g_basename
-
-Signed-off-by: Markus Volk <f_l_k@t-online.de>
-
-Upstream-Status: Submitted
-
-https://gitlab.gnome.org/GNOME/gparted/-/merge_requests/99
-
---- a/src/BCache_Info.cc 2022-03-02 22:04:17.000000000 +0100
-+++ b/src/BCache_Info.cc 2022-04-09 15:02:56.932218665 +0200
-@@ -17,7 +17,7 @@
-
- #include "BCache_Info.h"
-
--#include <string.h> // GNU version of basename()
-+#include <libgen.h> // POSIX version of basename()
- #include <unistd.h>
- #include <glibmm/ustring.h>
- #include <glibmm/fileutils.h>
diff --git a/meta-gnome/recipes-extended/gparted/gparted_1.4.0.bb b/meta-gnome/recipes-extended/gparted/gparted_1.4.0.bb
deleted file mode 100644
index dde5a02abb..0000000000
--- a/meta-gnome/recipes-extended/gparted/gparted_1.4.0.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "A partition editor to graphically manage disk partitions "
-HOMEPAGE = "http://gparted.org/index.php"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit autotools pkgconfig python3native gnome-help gtk-icon-cache features_check
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI = " \
- ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
- file://0001-Install-polkit-action-unconditionally-executable-pke.patch \
- file://0001-Do-not-use-NULL-where-boolean-is-expected.patch \
- file://0001-use-posix-basename.patch \
-"
-SRC_URI[sha256sum] = "e5293a792e53fdbeba29c4a834113cd9603d0d639330da931a468bf3687887be"
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/gparted/files/gparted/"
-UPSTREAM_CHECK_REGEX = "gparted-(?P<pver>\d+\.(\d+)+(\.\d+)+)"
-
-DEPENDS += " \
- glib-2.0-native \
- yelp-tools-native \
- intltool-native \
- glib-2.0 \
- gtkmm3 \
- parted \
-"
-
-FILES:${PN} += " \
- ${datadir}/appdata \
- ${datadir}/icons \
-"
-
-PACKAGES += "${PN}-polkit"
-FILES:${PN}-polkit = "${datadir}/polkit-1"
-
-RDEPENDS:${PN} = " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', '${PN}-polkit', '', d)} \
- dosfstools \
- mtools \
- e2fsprogs \
-"
diff --git a/meta-gnome/recipes-extended/gparted/gparted_1.6.0.bb b/meta-gnome/recipes-extended/gparted/gparted_1.6.0.bb
new file mode 100644
index 0000000000..ab2890679a
--- /dev/null
+++ b/meta-gnome/recipes-extended/gparted/gparted_1.6.0.bb
@@ -0,0 +1,45 @@
+SUMMARY = "A partition editor to graphically manage disk partitions "
+HOMEPAGE = "http://gparted.org/index.php"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit autotools pkgconfig python3native gettext gnome-help gtk-icon-cache features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI = " \
+ ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'file://0001-Install-polkit-action-unconditionally-executable-pke.patch', '', d)} \
+"
+SRC_URI[sha256sum] = "9b9f51b3ce494ddcb59a55e1ae6679c09436604e331dbf5a536d60ded6c6ea5b"
+
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/gparted/files/gparted/"
+UPSTREAM_CHECK_REGEX = "gparted-(?P<pver>\d+\.(\d+)+(\.\d+)+)"
+
+DEPENDS += " \
+ glib-2.0-native \
+ yelp-tools-native \
+ intltool-native \
+ glib-2.0 \
+ gtkmm3 \
+ parted \
+"
+
+PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)}"
+PACKAGECONFIG[polkit] = ",,polkit"
+
+FILES:${PN} += " \
+ ${datadir}/appdata \
+ ${datadir}/icons \
+ ${datadir}/metainfo \
+"
+
+PACKAGES += "${PN}-polkit"
+FILES:${PN}-polkit = "${datadir}/polkit-1"
+
+RDEPENDS:${PN} = " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', '${PN}-polkit', '', d)} \
+ dosfstools \
+ mtools \
+ e2fsprogs \
+"
diff --git a/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch
new file mode 100644
index 0000000000..f8f7ec34f9
--- /dev/null
+++ b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0001-Select-the-current-user-to-authenticate-with-by-defa.patch
@@ -0,0 +1,80 @@
+From: Utopia Maintenance Team
+ <pkg-utopia-maintainers@lists.alioth.debian.org>
+Date: Mon, 30 Apr 2018 17:56:52 +0000
+Subject: Select the current user to authenticate with by default
+
+Bug: http://bugzilla.gnome.org/show_bug.cgi?id=596188
+Bug-Ubuntu: https://launchpad.net/bugs/435227
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/polkitgnomeauthenticationdialog.c | 23 ++++++++++++++---------
+ 1 file changed, 14 insertions(+), 9 deletions(-)
+
+diff --git a/src/polkitgnomeauthenticationdialog.c b/src/polkitgnomeauthenticationdialog.c
+index 743cc96..d307516 100644
+--- a/src/polkitgnomeauthenticationdialog.c
++++ b/src/polkitgnomeauthenticationdialog.c
+@@ -138,7 +138,7 @@ user_combobox_changed (GtkComboBox *widget,
+ static void
+ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog)
+ {
+- int n;
++ int n, i, selected_index = 0;
+ GtkComboBox *combo;
+ GtkTreeIter iter;
+ GtkCellRenderer *renderer;
+@@ -162,7 +162,7 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog)
+
+
+ /* For each user */
+- for (n = 0; dialog->priv->users[n] != NULL; n++)
++ for (i = 0, n = 0; dialog->priv->users[n] != NULL; n++)
+ {
+ gchar *gecos;
+ gchar *real_name;
+@@ -224,6 +224,14 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog)
+ USERNAME_COL, dialog->priv->users[n],
+ -1);
+
++ i++;
++ if (passwd->pw_uid == getuid ())
++ {
++ selected_index = i;
++ g_free (dialog->priv->selected_user);
++ dialog->priv->selected_user = g_strdup (dialog->priv->users[n]);
++ }
++
+ g_free (real_name);
+ g_object_unref (pixbuf);
+ }
+@@ -252,8 +260,8 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog)
+ user_combobox_set_sensitive,
+ NULL, NULL);
+
+- /* Initially select the "Select user..." ... */
+- gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
++ /* Select the default user */
++ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), selected_index);
+
+ /* Listen when a new user is selected */
+ g_signal_connect (GTK_WIDGET (combo),
+@@ -719,16 +727,13 @@ polkit_gnome_authentication_dialog_constructed (GObject *object)
+ gtk_widget_set_tooltip_markup (label, s);
+ g_free (s);
+
+- if (have_user_combobox)
++ /* Disable password entry and authenticate until have a user selected */
++ if (have_user_combobox && gtk_combo_box_get_active (GTK_COMBO_BOX (dialog->priv->user_combobox)) == 0)
+ {
+- /* ... and make the password entry and "Authenticate" button insensitive */
+ gtk_widget_set_sensitive (dialog->priv->prompt_label, FALSE);
+ gtk_widget_set_sensitive (dialog->priv->password_entry, FALSE);
+ gtk_widget_set_sensitive (dialog->priv->auth_button, FALSE);
+ }
+- else
+- {
+- }
+
+ gtk_widget_realize (GTK_WIDGET (dialog));
+
diff --git a/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch
new file mode 100644
index 0000000000..011fe6ef25
--- /dev/null
+++ b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch
@@ -0,0 +1,34 @@
+From: Lars Uebernickel <lars@uebernic.de>
+Date: Fri, 17 Oct 2014 15:35:25 +0200
+Subject: Auth dialog: Make the label wrap at 70 chars
+
+Because GtkWindow doesn't have a default width anymore.
+
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=738688
+Bug-Ubuntu: https://launchpad.net/bugs/1382566
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/polkitgnomeauthenticationdialog.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/polkitgnomeauthenticationdialog.c b/src/polkitgnomeauthenticationdialog.c
+index d307516..efd4185 100644
+--- a/src/polkitgnomeauthenticationdialog.c
++++ b/src/polkitgnomeauthenticationdialog.c
+@@ -574,6 +574,7 @@ polkit_gnome_authentication_dialog_constructed (GObject *object)
+ g_free (s);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+ gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
++ gtk_label_set_max_width_chars (GTK_LABEL (label), 70);
+ gtk_box_pack_start (GTK_BOX (main_vbox), label, FALSE, FALSE, 0);
+
+ /* secondary message */
+@@ -601,6 +602,7 @@ polkit_gnome_authentication_dialog_constructed (GObject *object)
+ }
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+ gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
++ gtk_label_set_max_width_chars (GTK_LABEL (label), 70);
+ gtk_box_pack_start (GTK_BOX (main_vbox), label, FALSE, FALSE, 0);
+
+ /* user combobox */
diff --git a/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch
new file mode 100644
index 0000000000..a3759c4dcf
--- /dev/null
+++ b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch
@@ -0,0 +1,138 @@
+From: Marc Deslauriers <marc.deslauriers@canonical.com>
+Date: Mon, 30 Apr 2018 18:03:22 +0000
+Subject: Get user icon from accountsservice instead of looking in ~/.face
+
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=669857
+Bug-Ubuntu: https://launchpad.net/bugs/928249
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/polkitgnomeauthenticationdialog.c | 107 ++++++++++++++++++++++++++++++----
+ 1 file changed, 97 insertions(+), 10 deletions(-)
+
+diff --git a/src/polkitgnomeauthenticationdialog.c b/src/polkitgnomeauthenticationdialog.c
+index efd4185..565da87 100644
+--- a/src/polkitgnomeauthenticationdialog.c
++++ b/src/polkitgnomeauthenticationdialog.c
+@@ -135,6 +135,102 @@ user_combobox_changed (GtkComboBox *widget,
+ }
+ }
+
++static GdkPixbuf *
++get_user_icon (char *username)
++{
++ GError *error;
++ GDBusConnection *connection;
++ GVariant *find_user_result;
++ GVariant *get_icon_result;
++ GVariant *icon_result_variant;
++ const gchar *user_path;
++ const gchar *icon_filename;
++ GdkPixbuf *pixbuf;
++
++ error = NULL;
++ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error);
++
++ if (connection == NULL)
++ {
++ g_warning ("Unable to connect to system bus: %s", error->message);
++ g_error_free (error);
++ return NULL;
++ }
++
++ find_user_result = g_dbus_connection_call_sync (connection,
++ "org.freedesktop.Accounts",
++ "/org/freedesktop/Accounts",
++ "org.freedesktop.Accounts",
++ "FindUserByName",
++ g_variant_new ("(s)",
++ username),
++ G_VARIANT_TYPE ("(o)"),
++ G_DBUS_CALL_FLAGS_NONE,
++ -1,
++ NULL,
++ &error);
++
++ if (find_user_result == NULL)
++ {
++ g_warning ("Accounts couldn't find user: %s", error->message);
++ g_error_free (error);
++ return NULL;
++ }
++
++ user_path = g_variant_get_string (g_variant_get_child_value (find_user_result, 0),
++ NULL);
++
++ get_icon_result = g_dbus_connection_call_sync (connection,
++ "org.freedesktop.Accounts",
++ user_path,
++ "org.freedesktop.DBus.Properties",
++ "Get",
++ g_variant_new ("(ss)",
++ "org.freedesktop.Accounts.User",
++ "IconFile"),
++ G_VARIANT_TYPE ("(v)"),
++ G_DBUS_CALL_FLAGS_NONE,
++ -1,
++ NULL,
++ &error);
++
++ g_variant_unref (find_user_result);
++
++ if (get_icon_result == NULL)
++ {
++ g_warning ("Accounts couldn't find user icon: %s", error->message);
++ g_error_free (error);
++ return NULL;
++ }
++
++ g_variant_get_child (get_icon_result, 0, "v", &icon_result_variant);
++ icon_filename = g_variant_get_string (icon_result_variant, NULL);
++
++ if (icon_filename == NULL)
++ {
++ g_warning ("Accounts didn't return a valid filename for user icon");
++ pixbuf = NULL;
++ }
++ else
++ {
++ /* TODO: we probably shouldn't hard-code the size to 16x16 */
++ pixbuf = gdk_pixbuf_new_from_file_at_size (icon_filename,
++ 16,
++ 16,
++ &error);
++ if (pixbuf == NULL)
++ {
++ g_warning ("Couldn't open user icon: %s", error->message);
++ g_error_free (error);
++ }
++ }
++
++ g_variant_unref (icon_result_variant);
++ g_variant_unref (get_icon_result);
++
++ return pixbuf;
++}
++
+ static void
+ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog)
+ {
+@@ -197,16 +293,7 @@ create_user_combobox (PolkitGnomeAuthenticationDialog *dialog)
+ g_free (gecos);
+
+ /* Load users face */
+- pixbuf = NULL;
+- if (passwd->pw_dir != NULL)
+- {
+- gchar *path;
+- path = g_strdup_printf ("%s/.face", passwd->pw_dir);
+- /* TODO: we probably shouldn't hard-code the size to 16x16 */
+- pixbuf = gdk_pixbuf_new_from_file_at_scale (path, 16, 16, TRUE, NULL);
+- g_free (path);
+- }
+-
++ pixbuf = get_user_icon (dialog->priv->users[n]);
+ /* fall back to avatar-default icon */
+ if (pixbuf == NULL)
+ {
diff --git a/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch
new file mode 100644
index 0000000000..2c9c5bb16b
--- /dev/null
+++ b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch
@@ -0,0 +1,48 @@
+From: Jeffrey Knockel <jeff250@gmail.com>
+Date: Mon, 30 Apr 2018 18:05:20 +0000
+Subject: Use fresh X11 timestamps when displaying authentication dialog
+
+This circumvents focus-stealing prevention.
+
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=676076
+Bug-Debian: https://bugs.debian.org/684300
+Bug-Ubuntu: https://launchpad.net/bugs/946171
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/polkitgnomeauthenticator.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/polkitgnomeauthenticator.c b/src/polkitgnomeauthenticator.c
+index 23163b4..e57d76e 100644
+--- a/src/polkitgnomeauthenticator.c
++++ b/src/polkitgnomeauthenticator.c
+@@ -26,6 +26,7 @@
+ #include <sys/types.h>
+ #include <pwd.h>
+ #include <glib/gi18n.h>
++#include <gdk/gdkx.h>
+
+ #include <polkit/polkit.h>
+ #include <polkitagent/polkitagent.h>
+@@ -306,7 +307,17 @@ session_request (PolkitAgentSession *session,
+ }
+
+ gtk_widget_show_all (GTK_WIDGET (authenticator->dialog));
+- gtk_window_present (GTK_WINDOW (authenticator->dialog));
++ GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (authenticator->dialog));
++
++ if (GDK_IS_X11_WINDOW (window))
++ {
++ gtk_window_present_with_time (GTK_WINDOW (authenticator->dialog), gdk_x11_get_server_time (window));
++ }
++ else
++ {
++ gtk_window_present (GTK_WINDOW (authenticator->dialog));
++ }
++
+ password = polkit_gnome_authentication_dialog_run_until_response_for_prompt (POLKIT_GNOME_AUTHENTICATION_DIALOG (authenticator->dialog),
+ modified_request,
+ echo_on,
+
diff --git a/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch
new file mode 100644
index 0000000000..7eee12a920
--- /dev/null
+++ b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch
@@ -0,0 +1,29 @@
+From 334abb04ff953dabec63a91094de43e3cf064d7d Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Fri, 24 Feb 2023 17:29:24 +0100
+Subject: [PATCH] configure.ac: disable gnome-tools that are not provided
+
+Upstream-Status: Inappropriate [OE-specific]
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 24eb724..02fccbd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -33,8 +33,8 @@ LT_INIT
+ # GNOME
+ # *****
+
+-GNOME_DEBUG_CHECK
+-GNOME_COMPILE_WARNINGS([maximum])
++#GNOME_DEBUG_CHECK
++#GNOME_COMPILE_WARNINGS([maximum])
+
+ #### gcc warning flags
+
+--
+2.34.1
+
diff --git a/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/polkit-gnome-authentication-agent-1.desktop b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/polkit-gnome-authentication-agent-1.desktop
new file mode 100644
index 0000000000..c45acfa543
--- /dev/null
+++ b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome/polkit-gnome-authentication-agent-1.desktop
@@ -0,0 +1,87 @@
+[Desktop Entry]
+Name=PolicyKit Authentication Agent
+Name[ar]=مدير الاستيثاق PolicyKit
+Name[be]=PolicyKit - аґент аўтэнтыфікацыі
+Name[bn_IN]=PolicyKit অনুমোদনের এজেন্ট
+Name[ca]=Agent d'autenticació del PolicyKit
+Name[cs]=Ověřovací agent PolicyKit
+Name[da]=Godkendelsesprogrammet PolicyKit
+Name[de]=Legitimationsdienst von PolicyKit
+Name[el]=Πράκτορας πιστοποίησης PolicyKit
+Name[en_GB]=PolicyKit Authentication Agent
+Name[es]=Agente de autenticación de PolicyKit
+Name[eu]=PolicyKit autentifikatzeko agentea
+Name[fi]=PolicytKit-tunnistautumisohjelma
+Name[fr]=Agent d'authentification de PolicyKit
+Name[gl]=Axente de autenticación PolicyKit
+Name[gu]=PolicyKit સત્તાધિકરણ એજન્ટ
+Name[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि
+Name[hu]=PolicyKit hitelesítési ügynök
+Name[it]=Agente di autenticazione per PolicyKit
+Name[ja]=PolicyKit 認証エージェント
+Name[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ
+Name[lt]=PolicyKit tapatybės nustatymo agentas
+Name[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന്‍ ഏജന്റ്
+Name[mr]=PolicyKit ऑथेंटीकेशन एजेंट
+Name[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ
+Name[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ
+Name[pl]=Agent uwierzytelniania PolicyKit
+Name[pt]=Agente de Autenticação PolicyKit
+Name[pt_BR]=Agente de autenticação PolicyKit
+Name[ro]=Agent de autentificare PolicyKit
+Name[sk]=Agent PolicyKit na overovanie totožnosti
+Name[sl]=PolicyKit program overjanja
+Name[sv]=Autentiseringsagent för PolicyKit
+Name[ta]=PolicyKit அங்கீகார முகவர்
+Name[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి
+Name[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit
+Name[uk]=Агент автентифікації PolicyKit
+Name[zh_CN]=PolicyKit 认证代理
+Name[zh_HK]=PolicyKit 驗證代理程式
+Name[zh_TW]=PolicyKit 驗證代理程式
+Comment=PolicyKit Authentication Agent
+Comment[ar]=مدير الاستيثاق PolicyKit
+Comment[be]=PolicyKit - аґент аўтэнтыфікацыі
+Comment[bn_IN]=PolicyKit অনুমোদনের এজেন্ট
+Comment[ca]=Agent d'autenticació del PolicyKit
+Comment[cs]=Ověřovací agent PolicyKit
+Comment[da]=Godkendelsesprogrammet PolicyKit
+Comment[de]=Legitimationsdienst von PolicyKit
+Comment[el]=Πράκτορας πιστοποίησης PolicyKit
+Comment[en_GB]=PolicyKit Authentication Agent
+Comment[es]=Agente de autenticación de PolicyKit
+Comment[eu]=PolicyKit autentifikatzeko agentea
+Comment[fi]=PolicytKit-tunnistautumisohjelma
+Comment[fr]=Agent d'authentification de PolicyKit
+Comment[gl]=Axente de autenticación PolicyKit
+Comment[gu]=PolicyKit સત્તાધિકરણ એજન્ટ
+Comment[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि
+Comment[hu]=PolicyKit hitelesítési ügynök
+Comment[it]=Agente di autenticazione per PolicyKit
+Comment[ja]=PolicyKit 認証エージェント
+Comment[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ
+Comment[lt]=PolicyKit tapatybės nustatymo agentas
+Comment[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന്‍ ഏജന്റ്
+Comment[mr]=PolicyKit ऑथेंटीकेशन एजेंट
+Comment[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ
+Comment[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ
+Comment[pl]=Agent uwierzytelniania PolicyKit
+Comment[pt]=Agente de Autenticação PolicyKit
+Comment[pt_BR]=Agente de autenticação PolicyKit
+Comment[ro]=Agent de autentificare PolicyKit
+Comment[sk]=Agent PolicyKit na overovanie totožnosti
+Comment[sl]=PolicyKit program overjanja
+Comment[sv]=Autentiseringsagent för PolicyKit
+Comment[ta]=PolicyKit அங்கீகார முகவர்
+Comment[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి
+Comment[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit
+Comment[uk]=Агент автентифікації PolicyKit
+Comment[zh_CN]=PolicyKit 认证代理
+Comment[zh_HK]=PolicyKit 驗證代理程式
+Comment[zh_TW]=PolicyKit 驗證代理程式
+Exec=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+Terminal=false
+Type=Application
+Categories=
+NoDisplay=true
+OnlyShowIn=GNOME;
diff --git a/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome_0.105.bb b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome_0.105.bb
new file mode 100644
index 0000000000..e0e4a59d24
--- /dev/null
+++ b/meta-gnome/recipes-extended/polkit-gnome/polkit-gnome_0.105.bb
@@ -0,0 +1,29 @@
+SUMMARY = "PolicyKit-gnome provides an Authentication Agent for PolicyKit"
+HOMEPAGE = "https://gitlab.gnome.org/Archive/policykit-gnome"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=74579fab173e4c5e12aac0cd83ee98ec"
+
+DEPENDS = "glib-2.0-native glib-2.0 gtk+3 polkit intltool-native"
+
+inherit autotools pkgconfig features_check
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+SRC_URI = " \
+ git://gitlab.gnome.org/Archive/policykit-gnome.git;protocol=https;branch=master \
+ file://0001-Select-the-current-user-to-authenticate-with-by-defa.patch \
+ file://0002-Auth-dialog-Make-the-label-wrap-at-70-chars.patch \
+ file://0003-Get-user-icon-from-accountsservice-instead-of-lookin.patch \
+ file://0004-Use-fresh-X11-timestamps-when-displaying-authenticat.patch \
+ file://0005-configure.ac-disable-gnome-tools-that-are-not-provid.patch \
+ file://polkit-gnome-authentication-agent-1.desktop \
+"
+SRCREV = "a0763a246a81188f60b0f9810143e49224dc752f"
+S = "${WORKDIR}/git"
+
+
+do_install:append() {
+ install -d ${D}${datadir}/applications
+ install -m644 ${WORKDIR}/polkit-gnome-authentication-agent-1.desktop \
+ ${D}${datadir}/applications
+}
diff --git a/meta-gnome/recipes-gimp/babl/babl_0.1.108.bb b/meta-gnome/recipes-gimp/babl/babl_0.1.108.bb
new file mode 100644
index 0000000000..e0685f781d
--- /dev/null
+++ b/meta-gnome/recipes-gimp/babl/babl_0.1.108.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Babl is a dynamic, any to any, pixel format conversion library"
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6"
+
+GIR_MESON_OPTION = "enable-gir"
+VALA_MESON_OPTION = "enable-vapi"
+
+inherit setuptools3 gnomebase gobject-introspection vala
+
+DEPENDS += "lcms"
+
+SRC_URI = "https://download.gimp.org/pub/${BPN}/0.1/${BP}.tar.xz"
+SRC_URI[sha256sum] = "26defe9deaab7ac4d0e076cab49c2a0d6ebd0df0c31fd209925a5f07edee1475"
+
+FILES:${PN} += "${libdir}/${BPN}-${@gnome_verdir("${PV}")}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-gnome/recipes-gimp/babl/babl_0.1.96.bb b/meta-gnome/recipes-gimp/babl/babl_0.1.96.bb
deleted file mode 100644
index 85cc7793cc..0000000000
--- a/meta-gnome/recipes-gimp/babl/babl_0.1.96.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Babl is a dynamic, any to any, pixel format conversion library"
-LICENSE = "LGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-GIR_MESON_OPTION = "enable-gir"
-
-inherit setuptools3 gnomebase gobject-introspection vala
-
-DEPENDS += "lcms"
-
-# https://bugs.llvm.org/show_bug.cgi?id=45555
-CFLAGS:append:toolchain-clang:mipsarch = " -ffp-exception-behavior=ignore "
-CFLAGS:append:toolchain-clang:riscv64 = " -ffp-exception-behavior=ignore "
-
-SRC_URI = "https://download.gimp.org/pub/${BPN}/0.1/${BP}.tar.xz"
-SRC_URI[sha256sum] = "33673fe459a983f411245a49f81fd7f1966af1ea8eca9b095a940c542b8545f6"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-gnome/recipes-gimp/gegl/gegl_0.4.38.bb b/meta-gnome/recipes-gimp/gegl/gegl_0.4.38.bb
deleted file mode 100644
index 5415658094..0000000000
--- a/meta-gnome/recipes-gimp/gegl/gegl_0.4.38.bb
+++ /dev/null
@@ -1,59 +0,0 @@
-SUMMARY = "GEGL (Generic Graphics Library) is a graph based image processing framework"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f1a8bfcbc85304df454b65d378b299c7"
-
-DEPENDS = " \
- intltool-native \
- babl \
- glib-2.0 \
- cairo \
- expat \
- zlib \
- \
- json-glib \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit features_check gnomebase vala gobject-introspection
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SHPV = "${@gnome_verdir("${PV}")}"
-
-SRC_URI = "https://download.gimp.org/pub/${BPN}/${SHPV}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "e4a33c8430a5042fba8439b595348e71870f0d95fbf885ff553f9020c1bed750"
-
-PACKAGECONFIG ??= "gexiv2 jpeg libpng libraw librsvg pango poppler sdl2"
-PACKAGECONFIG:class-native = "libpng librsvg"
-
-PACKAGECONFIG[jasper] = "-Djasper=enabled,-Djasper=disabled,jasper"
-PACKAGECONFIG[gexiv2] = "-Dgexiv2=enabled,-Dgexiv2=disabled,gexiv2"
-PACKAGECONFIG[graphviz] = "-Dgraphviz=enabled,-Dgraphviz=disabled,graphviz"
-PACKAGECONFIG[jpeg] = "-Dlibjpeg=enabled,-Dlibjpeg=disabled,jpeg"
-PACKAGECONFIG[lcms] = "-Dlcms=enabled,-Dlcms=disabled,lcms"
-PACKAGECONFIG[libav] = "-Dlibav=enabled,-Dlibav=disabled,libav"
-PACKAGECONFIG[libpng] = "-Dlibpng=enabled,-Dlibpng=disabled,libpng"
-PACKAGECONFIG[libraw] = "-Dlibraw=enabled,-Dlibraw=disabled,libraw"
-PACKAGECONFIG[librsvg] = "-Dlibrsvg=enabled,-Dlibrsvg=disabled,librsvg"
-PACKAGECONFIG[pango] = "-Dpango=enabled -Dpangocairo=enabled,-Dpango=disabled -Dpangocairo=disabled,pango"
-PACKAGECONFIG[poppler] = "-Dpoppler=enabled,-Dpoppler=disabled,poppler"
-PACKAGECONFIG[sdl] = "-Dsdl1=enabled,-Dsdl1=disabled,libsdl"
-PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,libsdl2"
-PACKAGECONFIG[tiff] = "-Dlibtiff=enabled,-Dlibtiff=disabled,tiff"
-PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,webp"
-
-# There are a couple of non-symlink .so files installed into libdir, which need to go into main package
-FILES:${PN} += " \
- ${libdir}/*.so \
- ${libdir}/gegl-${SHPV}/*.json \
- ${libdir}/gegl-${SHPV}/*.so \
-"
-FILES_SOLIBSDEV = "${libdir}/libgegl-${SHPV}${SOLIBSDEV}"
-
-# Fails to build with thumb-1 (qemuarm)
-# gegl-0.2.0/operations/common/matting-global.c: In function 'matting_process':
-# gegl-0.2.0/operations/common/matting-global.c:463:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275
-ARM_INSTRUCTION_SET = "arm"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-gnome/recipes-gimp/gegl/gegl_0.4.48.bb b/meta-gnome/recipes-gimp/gegl/gegl_0.4.48.bb
new file mode 100644
index 0000000000..34e001a5f7
--- /dev/null
+++ b/meta-gnome/recipes-gimp/gegl/gegl_0.4.48.bb
@@ -0,0 +1,63 @@
+SUMMARY = "GEGL (Generic Graphics Library) is a graph based image processing framework"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f1a8bfcbc85304df454b65d378b299c7"
+
+DEPENDS = " \
+ intltool-native \
+ babl \
+ glib-2.0 \
+ cairo \
+ expat \
+ zlib \
+ \
+ json-glib \
+"
+
+DEPENDS:append:toolchain-clang = " openmp"
+DEPENDS:remove:toolchain-clang:riscv32 = "openmp"
+DEPENDS:remove:toolchain-clang:powerpc = "openmp"
+
+VALA_MESON_OPTION = ""
+
+inherit features_check gnomebase gobject-introspection vala
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SHPV = "${@gnome_verdir("${PV}")}"
+
+SRC_URI = "https://download.gimp.org/pub/${BPN}/${SHPV}/${BP}.tar.xz"
+SRC_URI[sha256sum] = "418c26d94be8805d7d98f6de0c6825ca26bd74fcacb6c188da47533d9ee28247"
+
+PACKAGECONFIG ??= "gexiv2 jpeg libpng libraw librsvg pango poppler sdl2"
+PACKAGECONFIG:class-native = "libpng librsvg"
+
+PACKAGECONFIG[jasper] = "-Djasper=enabled,-Djasper=disabled,jasper"
+PACKAGECONFIG[gexiv2] = "-Dgexiv2=enabled,-Dgexiv2=disabled,gexiv2"
+PACKAGECONFIG[graphviz] = "-Dgraphviz=enabled,-Dgraphviz=disabled,graphviz"
+PACKAGECONFIG[jpeg] = "-Dlibjpeg=enabled,-Dlibjpeg=disabled,jpeg"
+PACKAGECONFIG[lcms] = "-Dlcms=enabled,-Dlcms=disabled,lcms"
+PACKAGECONFIG[libav] = "-Dlibav=enabled,-Dlibav=disabled,libav"
+PACKAGECONFIG[libpng] = "-Dlibpng=enabled,-Dlibpng=disabled,libpng"
+PACKAGECONFIG[libraw] = "-Dlibraw=enabled,-Dlibraw=disabled,libraw"
+PACKAGECONFIG[librsvg] = "-Dlibrsvg=enabled,-Dlibrsvg=disabled,librsvg"
+PACKAGECONFIG[pango] = "-Dpango=enabled -Dpangocairo=enabled,-Dpango=disabled -Dpangocairo=disabled,pango"
+PACKAGECONFIG[poppler] = "-Dpoppler=enabled,-Dpoppler=disabled,poppler"
+PACKAGECONFIG[sdl] = "-Dsdl1=enabled,-Dsdl1=disabled,libsdl"
+PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,libsdl2"
+PACKAGECONFIG[tiff] = "-Dlibtiff=enabled,-Dlibtiff=disabled,tiff"
+PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,webp"
+
+# There are a couple of non-symlink .so files installed into libdir, which need to go into main package
+FILES:${PN} += " \
+ ${libdir}/*.so \
+ ${libdir}/gegl-${SHPV}/*.json \
+ ${libdir}/gegl-${SHPV}/*.so \
+"
+FILES_SOLIBSDEV = "${libdir}/libgegl-${SHPV}${SOLIBSDEV}"
+
+# Fails to build with thumb-1 (qemuarm)
+# gegl-0.2.0/operations/common/matting-global.c: In function 'matting_process':
+# gegl-0.2.0/operations/common/matting-global.c:463:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275
+ARM_INSTRUCTION_SET = "arm"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/0001-configure-Keep-first-line-of-compiler-version-string.patch b/meta-gnome/recipes-gimp/gimp/gimp/0001-configure-Keep-first-line-of-compiler-version-string.patch
new file mode 100644
index 0000000000..618b4cc7a7
--- /dev/null
+++ b/meta-gnome/recipes-gimp/gimp/gimp/0001-configure-Keep-first-line-of-compiler-version-string.patch
@@ -0,0 +1,30 @@
+From 5711ccfab40e304ced7f5be39a4083e3fcecff91 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 24 May 2023 22:22:41 -0700
+Subject: [PATCH] configure: Keep first line of compiler version string
+
+Full output of cc -v may contain additional information which could
+contain build path information, which is unnessasary
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/926]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index c25415d..68707a0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -599,7 +599,7 @@ fi
+ for CC_VERSION_OPT in $CC_VERSION_OPTS; do
+ # We run $CC, and escape and format its output, in a single step,
+ # since some shells expand escape sequences in "echo" arguments.
+- CC_VERSION="`$CC $CC_VERSION_OPT 2>&1 | sed -e 's/\\\\/\\\\\\\\\\\\\\\\/g;s/^/\\\\t/;s/$/\\\\n/' | tr -d '\n'`"
++ CC_VERSION="`$CC $CC_VERSION_OPT 2>&1 | head -1 | sed -e 's/\\\\/\\\\\\\\\\\\\\\\/g;s/^/\\\\t/;s/$/\\\\n/' | tr -d '\n'`"
+ if test $? -eq 0; then
+ break
+ fi
+--
+2.40.1
+
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/0001-libtool-Do-not-add-build-time-library-paths-to-LD_LI.patch b/meta-gnome/recipes-gimp/gimp/gimp/0001-libtool-Do-not-add-build-time-library-paths-to-LD_LI.patch
new file mode 100644
index 0000000000..cec0055284
--- /dev/null
+++ b/meta-gnome/recipes-gimp/gimp/gimp/0001-libtool-Do-not-add-build-time-library-paths-to-LD_LI.patch
@@ -0,0 +1,34 @@
+From c720df90dfe3a3e92e34bfb36a04cc792064a501 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 24 May 2023 22:39:02 -0700
+Subject: [PATCH] libtool: Do not add build time library paths to
+ LD_LIBRARY_PATH
+
+This does not serve much purpose on cross builds as it will add build
+time paths which are only useful when trying to run these tools from
+build area but when they are cross built this is not possible to run
+them like this.
+
+Upstream-Status: Inappropriate [Cross-compile specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ltmain.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ltmain.sh b/ltmain.sh
+index 134902c..068d74a 100644
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -5748,7 +5748,7 @@ func_exec_program ()
+ if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $ECHO "\
+ # Add our own library path to $shlibpath_var
+- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
++ $shlibpath_var=\"$shlibpath_var\"
+
+ # Some systems cannot cope with colon-terminated $shlibpath_var
+ # The second colon is a workaround for a bug in BeOS R4 sed
+--
+2.40.1
+
diff --git a/meta-gnome/recipes-gimp/gimp/gimp_2.10.30.bb b/meta-gnome/recipes-gimp/gimp/gimp_2.10.30.bb
deleted file mode 100644
index a73de1e3ff..0000000000
--- a/meta-gnome/recipes-gimp/gimp/gimp_2.10.30.bb
+++ /dev/null
@@ -1,69 +0,0 @@
-SUMMARY = "The GIMP is the GNU Image Manipulation Program"
-HOMEPAGE = "http://www.gimp.org"
-SECTION = "x11/graphics"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e"
-
-DEPENDS = " \
- alsa-lib \
- atk \
- cairo \
- fontconfig \
- freetype \
- gdk-pixbuf-native \
- intltool-native \
- libxslt-native \
- gegl-native \
- dbus-glib \
- gtk+ \
- babl \
- gegl \
- libmypaint \
- mypaint-brushes-1.0 \
- gexiv2 \
- jpeg \
- libmng \
- libpng \
- libexif \
- tiff \
- lcms \
- poppler \
- poppler-data \
- jasper \
- bzip2 \
- libgudev \
- libmng \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)} \
-"
-DEPENDS:append:libc-musl = " libexecinfo"
-
-inherit features_check gnomebase gtk-icon-cache gtk-doc mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SHPV = "${@gnome_verdir("${PV}")}"
-
-SRC_URI = "https://download.gimp.org/pub/${BPN}/v${SHPV}/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "88815daa76ed7d4277eeb353358bafa116cd2fcd2c861d95b95135c1d52b67dc"
-
-EXTRA_OECONF = "--disable-python \
- --without-webkit \
- --disable-check-update \
- --without-wmf"
-
-EXTRA_OECONF += "${@oe.utils.conditional('SITEINFO_BITS', '32', ' --disable-vector-icons', '', d)}"
-
-do_configure:append() {
- find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g
- find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g
-}
-
-do_compile:prepend() {
- # Let native babl/gegl find their plugins
- export BABL_PATH=`find ${STAGING_LIBDIR_NATIVE} -maxdepth 1 -name 'babl-*'`
- export GEGL_PATH=`find ${STAGING_LIBDIR_NATIVE} -maxdepth 1 -name 'gegl-*'`
-}
-
-FILES:${PN} += "${datadir}/metainfo"
-
-RDEPENDS:${PN} += "mypaint-brushes-1.0"
diff --git a/meta-gnome/recipes-gimp/gimp/gimp_2.10.36.bb b/meta-gnome/recipes-gimp/gimp/gimp_2.10.36.bb
new file mode 100644
index 0000000000..4526839ad6
--- /dev/null
+++ b/meta-gnome/recipes-gimp/gimp/gimp_2.10.36.bb
@@ -0,0 +1,72 @@
+SUMMARY = "The GIMP is the GNU Image Manipulation Program"
+HOMEPAGE = "http://www.gimp.org"
+SECTION = "x11/graphics"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e"
+
+DEPENDS = " \
+ alsa-lib \
+ atk \
+ cairo \
+ fontconfig \
+ freetype \
+ gdk-pixbuf-native \
+ intltool-native \
+ libxslt-native \
+ gegl-native \
+ dbus-glib \
+ gtk+ \
+ babl \
+ gegl \
+ libmypaint \
+ mypaint-brushes-1.0 \
+ gexiv2 \
+ jpeg \
+ libmng \
+ libpng \
+ libexif \
+ tiff \
+ lcms \
+ poppler \
+ poppler-data \
+ jasper \
+ bzip2 \
+ libgudev \
+ libmng \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)} \
+"
+DEPENDS:append:libc-musl = " libexecinfo"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit features_check gnomebase gtk-icon-cache gtk-doc mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SHPV = "${@gnome_verdir("${PV}")}"
+
+SRC_URI = "https://download.gimp.org/pub/${BPN}/v${SHPV}/${BP}.tar.bz2 \
+ file://0001-configure-Keep-first-line-of-compiler-version-string.patch \
+ file://0001-libtool-Do-not-add-build-time-library-paths-to-LD_LI.patch"
+SRC_URI[sha256sum] = "3d3bc3c69a4bdb3aea9ba2d5385ed98ea03953f3857aafd1d6976011ed7cdbb2"
+
+EXTRA_OECONF = "--disable-python \
+ --without-webkit \
+ --disable-check-update \
+ --without-wmf"
+
+EXTRA_OECONF += "${@oe.utils.conditional('SITEINFO_BITS', '32', ' --disable-vector-icons', '', d)}"
+
+do_configure:append() {
+ find ${B} -name Makefile | xargs sed -i s:'-I$(includedir)':'-I.':g
+ find ${B} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g
+}
+
+do_compile:prepend() {
+ # Let native babl/gegl find their plugins
+ export BABL_PATH=`find ${STAGING_LIBDIR_NATIVE} -maxdepth 1 -name 'babl-*'`
+ export GEGL_PATH=`find ${STAGING_LIBDIR_NATIVE} -maxdepth 1 -name 'gegl-*'`
+}
+
+FILES:${PN} += "${datadir}/metainfo"
+
+RDEPENDS:${PN} += "mypaint-brushes-1.0"
diff --git a/meta-gnome/recipes-gnome/amtk/amtk_5.3.1.bb b/meta-gnome/recipes-gnome/amtk/amtk_5.3.1.bb
deleted file mode 100644
index f6d8739dae..0000000000
--- a/meta-gnome/recipes-gnome/amtk/amtk_5.3.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Actions, Menus and Toolbars Kit"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = " \
- glib-2.0-native \
- gtk+3 \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-GIR_MESON_OPTION = ""
-
-inherit gnomebase gettext features_check gobject-introspection
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[archive.sha256sum] = "d5aa236c5d71dc41aa4674f345560a67a27f21c0efc97c9b3da09cb582b4638b"
diff --git a/meta-gnome/recipes-gnome/dconf/dconf-editor/0001-editor-meson.build-fix-meson-0.61-errors.patch b/meta-gnome/recipes-gnome/dconf/dconf-editor/0001-editor-meson.build-fix-meson-0.61-errors.patch
deleted file mode 100644
index 850d8a9d47..0000000000
--- a/meta-gnome/recipes-gnome/dconf/dconf-editor/0001-editor-meson.build-fix-meson-0.61-errors.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 86379a220a4eb00c309f514d2ca57ed6c1c8b35c Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Fri, 21 Jan 2022 22:22:58 +0100
-Subject: [PATCH] editor/meson.build: fix meson 0.61 errors
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/dconf-editor/-/merge_requests/21]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- editor/meson.build | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/editor/meson.build b/editor/meson.build
-index 4c89ab99..0eb3bb1a 100644
---- a/editor/meson.build
-+++ b/editor/meson.build
-@@ -1,7 +1,6 @@
- desktop = dconf_editor_namespace + '.desktop'
-
- i18n.merge_file (
-- desktop,
- type: 'desktop',
- input: desktop + '.in',
- output: desktop,
-@@ -26,7 +25,6 @@ configure_file(
- appdata = dconf_editor_namespace + '.appdata.xml'
-
- i18n.merge_file(
-- appdata,
- input: appdata + '.in',
- output: appdata,
- po_dir: po_dir,
diff --git a/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.3.bb b/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.3.bb
deleted file mode 100644
index ef26caa144..0000000000
--- a/meta-gnome/recipes-gnome/dconf/dconf-editor_3.38.3.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Configuration editor for dconf"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-DEPENDS = "dconf gtk+3"
-
-inherit gnomebase vala gettext gsettings bash-completion
-
-SRC_URI += " file://0001-editor-meson.build-fix-meson-0.61-errors.patch"
-SRC_URI[archive.sha256sum] = "571af4c7dad4f049b53e6cd728b79addf08c27ddab6bc57b396d211866ee79e3"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/metainfo \
-"
diff --git a/meta-gnome/recipes-gnome/dconf/dconf-editor_45.0.1.bb b/meta-gnome/recipes-gnome/dconf/dconf-editor_45.0.1.bb
new file mode 100644
index 0000000000..32a69a0707
--- /dev/null
+++ b/meta-gnome/recipes-gnome/dconf/dconf-editor_45.0.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Configuration editor for dconf"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+
+DEPENDS = " \
+ dconf \
+ desktop-file-utils-native \
+ gtk+3 \
+ glib-2.0 \
+ libhandy\
+"
+
+inherit gnomebase vala gsettings bash-completion pkgconfig gtk-icon-cache
+
+SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/45/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive"
+SRC_URI[archive.sha256sum] = "1180297678eedae6217cc514a2638c187d2f1d1ef2720cb9079b740c429941dd"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+"
diff --git a/meta-gnome/recipes-gnome/dconf/dconf_0.40.0.bb b/meta-gnome/recipes-gnome/dconf/dconf_0.40.0.bb
index 6641be86ee..c5c45a0264 100644
--- a/meta-gnome/recipes-gnome/dconf/dconf_0.40.0.bb
+++ b/meta-gnome/recipes-gnome/dconf/dconf_0.40.0.bb
@@ -7,7 +7,6 @@ SRC_URI[archive.sha256sum] = "cf7f22a4c9200421d8d3325c5c1b8b93a36843650c9f95d645
DEPENDS = "dbus glib-2.0 intltool-native"
-GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase bash-completion vala
diff --git a/meta-gnome/recipes-gnome/devilspie/devilspie2_0.44.bb b/meta-gnome/recipes-gnome/devilspie/devilspie2_0.44.bb
index 01900cce39..90c12efadf 100644
--- a/meta-gnome/recipes-gnome/devilspie/devilspie2_0.44.bb
+++ b/meta-gnome/recipes-gnome/devilspie/devilspie2_0.44.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=00aefaa50aad75c21367df66102d542c \
DEPENDS = "gtk+ glib-2.0 libwnck libxinerama lua virtual/libx11"
-PV .= "+git${SRCPV}"
+PV .= "+git"
SRCREV = "b9d7ad9c09a5fb17a1562ee1d892798c646e9ec9"
diff --git a/meta-gnome/recipes-gnome/eog/eog_45.3.bb b/meta-gnome/recipes-gnome/eog/eog_45.3.bb
new file mode 100644
index 0000000000..00fe266698
--- /dev/null
+++ b/meta-gnome/recipes-gnome/eog/eog_45.3.bb
@@ -0,0 +1,30 @@
+SUMMARY = "This is the Eye of GNOME, an image viewer program."
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = " \
+ librsvg \
+ gnome-desktop \
+ gsettings-desktop-schemas \
+ gdk-pixbuf \
+ gtk+3 \
+ libhandy \
+ libpeas \
+ libportal \
+ libexif \
+ lcms \
+"
+
+
+inherit gnomebase pkgconfig gsettings gobject-introspection gettext mime-xdg features_check gtk-icon-cache
+
+# FIXME: whilst eog uses libpeas <2, g-i is needed. This can be removed when libpeas2 is used.
+REQUIRED_DISTRO_FEATURES = "opengl gobject-introspection-data"
+
+SRC_URI[archive.sha256sum] = "8650f662d4921d83a7904f6bb9ca245baf735f717b47fac5b37f0d90e5e891a8"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+EXTRA_OEMESON = "-Dxmp=false"
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-gnome/recipes-gnome/evince/evince_42.3.bb b/meta-gnome/recipes-gnome/evince/evince_42.3.bb
deleted file mode 100644
index 0c97f75e90..0000000000
--- a/meta-gnome/recipes-gnome/evince/evince_42.3.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "Evince is a document viewer for document formats like pdf, ps, djvu"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=96f2f8d5ee576a2163977938ea36fa7b"
-SECTION = "x11/office"
-DEPENDS = " \
- gnome-common-native \
- yelp-tools-native \
- appstream-glib \
- gtk+3 \
- gspell \
- libsecret \
- poppler \
- gstreamer1.0-plugins-base \
- orc \
- adwaita-icon-theme \
- libhandy \
- ${@bb.utils.contains('DISTRO_FEATURES','x11','gnome-desktop','dbus',d)} \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase itstool gnome-help pkgconfig gsettings gobject-introspection gettext mime-xdg gtk-doc
-
-def gnome_verdir(v):
- return oe.utils.trim_version(v, 1)
-
-SRC_URI[archive.sha256sum] = "49aecf845c946c96db17ba89d75c8002c5ae8963f504a9b0626d12675914645e"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-EXTRA_OEMESON = " \
- -Dsystemduserunitdir=no \
-"
-
-do_compile:prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/libdocument/.libs"
-}
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[nautilus] = "-Dnautilus=true,-Dnautilus=false,nautilus"
-
-RDEPENDS:${PN} += "glib-2.0-utils"
-RRECOMMENDS:${PN} = "adwaita-icon-theme"
-
-PACKAGES =+ "${PN}-nautilus-extension"
-
-FILES:${PN} += "${datadir}/dbus-1 \
- ${datadir}/metainfo \
- ${datadir}/thumbnailers \
-"
-FILES:${PN}-nautilus-extension = "${libdir}/nautilus/*/*so"
diff --git a/meta-gnome/recipes-gnome/evince/evince_46.0.bb b/meta-gnome/recipes-gnome/evince/evince_46.0.bb
new file mode 100644
index 0000000000..57eb994e13
--- /dev/null
+++ b/meta-gnome/recipes-gnome/evince/evince_46.0.bb
@@ -0,0 +1,58 @@
+SUMMARY = "Evince is a document viewer for document formats like pdf, ps, djvu"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=96f2f8d5ee576a2163977938ea36fa7b"
+SECTION = "x11/office"
+DEPENDS = " \
+ adwaita-icon-theme \
+ appstream-glib \
+ cairo \
+ desktop-file-utils-native \
+ dbus \
+ gdk-pixbuf \
+ glib-2.0 \
+ gnome-common-native \
+ gnome-desktop \
+ gsettings-desktop-schemas \
+ gspell \
+ gstreamer1.0-plugins-base \
+ gtk+3 \
+ libarchive \
+ libhandy \
+ libsecret \
+ libxml2 \
+ poppler \
+ yelp-tools-native \
+ zlib \
+"
+
+
+inherit gnomebase itstool gnome-help pkgconfig gsettings gobject-introspection gettext mime-xdg gi-docgen features_check gtk-icon-cache
+
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl', '', d)}"
+
+def gnome_verdir(v):
+ return oe.utils.trim_version(v, 1)
+
+SRC_URI[archive.sha256sum] = "aff6af69392c04956bfad976dec5d1583b41d5a334e937995f7c3ca0740de221"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[nautilus] = "-Dnautilus=true,-Dnautilus=false,nautilus"
+
+RDEPENDS:${PN} += "glib-2.0-utils"
+RRECOMMENDS:${PN} = "adwaita-icon-theme"
+
+PACKAGES =+ "${PN}-nautilus-extension"
+
+do_install:prepend() {
+ sed -i -e 's|${B}/../${PN}-${PV}|${TARGET_DBGSRC_DIR}|g' ${B}/libview/ev-view-type-builtins.c
+ sed -i -e 's|${B}/../${PN}-${PV}|${TARGET_DBGSRC_DIR}|g' ${B}/libdocument/ev-document-type-builtins.c
+}
+
+FILES:${PN} += "${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${datadir}/thumbnailers \
+ ${systemd_user_unitdir} \
+"
+FILES:${PN}-nautilus-extension = "${libdir}/nautilus/*/*so"
diff --git a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server-native.bb b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server-native.bb
index 681a61c33a..f2f41276a6 100644
--- a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server-native.bb
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server-native.bb
@@ -1,10 +1,12 @@
require ${BPN}.inc
-inherit native
+inherit_defer native
DEPENDS = "glib-2.0-native"
# build native helpers
+do_configure[noexec] = "1"
+
do_compile() {
cd ${S}/src/camel
sed -i 's:#include "evolution-data-server-config.h"::g' camel-gen-tables.c
@@ -21,3 +23,4 @@ do_install() {
install -d ${D}${bindir}
install -m 755 ${B}/* ${D}${bindir}
}
+
diff --git a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb
index 64774b0fe8..103bad1b68 100644
--- a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb
@@ -1,14 +1,15 @@
require ${BPN}.inc
DEPENDS = " \
- ${BPN}-native intltool-native gperf-native \
- glib-2.0 gtk+3 libgdata libxml2 icu \
- dbus db virtual/libiconv zlib libsoup-2.4 libical nss libsecret \
+ ${BPN}-native gperf-native \
+ glib-2.0 json-glib gtk4 libxml2 icu \
+ dbus db virtual/libiconv zlib libsoup-3.0 libical nss libsecret \
"
-inherit pkgconfig gsettings gobject-introspection features_check cmake gtk-doc gettext perlnative vala
+inherit pkgconfig gsettings gobject-introspection features_check gtk-doc gettext perlnative vala
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "opengl"
SRC_URI += " \
file://0001-cmake-Do-not-export-CC-into-gir-compiler.patch \
@@ -24,26 +25,31 @@ LKSTRFTIME:libc-musl = "HAVE_LKSTRFTIME=OFF"
EXTRA_OECMAKE = " \
-DSYSCONF_INSTALL_DIR=${sysconfdir} \
- -DWITH_KRB5=OFF \
- -DENABLE_GOA=OFF \
- -DENABLE_GOOGLE_AUTH=OFF \
- -DENABLE_WEATHER=OFF \
-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen \
${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON -DENABLE_VALA_BINDINGS=ON', '-DENABLE_INTROSPECTION=OFF', d)} \
-D${LKSTRFTIME} \
-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
+ -DENABLE_GTK=OFF \
+ -DENABLE_GTK4=ON \
+ -DENABLE_INSTALLED_TESTS=OFF \
+ -DENABLE_EXAMPLES=OFF \
+ -DENABLE_MAINTAINER_MODE=OFF \
"
EXTRA_OECMAKE:append:class-target = " -DG_IR_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper"
EXTRA_OECMAKE:append:class-target = " -DG_IR_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper"
+PACKAGECONFIG ?= "goa oauth"
+
PACKAGECONFIG[canberra] = "-DENABLE_CANBERRA=ON,-DENABLE_CANBERRA=OFF,libcanberra"
-PACKAGECONFIG[oauth] = "-DENABLE_OAUTH2=ON,-DENABLE_OAUTH2=OFF,webkitgtk json-glib"
+PACKAGECONFIG[oauth] = "-DENABLE_OAUTH2_WEBKITGTK4=ON -DENABLE_OAUTH2_WEBKITGTK=OFF,-DENABLE_OAUTH2_WEBKITGTK4=OFF -DENABLE_OAUTH2_WEBKITGTK=OFF,webkitgtk json-glib"
PACKAGECONFIG[goa] = "-DENABLE_GOA=ON,-DENABLE_GOA=OFF,gnome-online-accounts"
-
+PACKAGECONFIG[kerberos] = "-DWITH_KRB5=ON,-DWITH_KRB5=OFF,krb5"
# BROKEN: due missing pkg-config in openldap eds' cmake finds host-libs when
# searching for openldap-libs
PACKAGECONFIG[openldap] = "-DWITH_OPENLDAP=ON,-DWITH_OPENLDAP=OFF,openldap"
+PACKAGECONFIG[weather] = "-DENABLE_WEATHER=ON,-DENABLE_WEATHER=OFF,libgweather4"
+
# -ldb needs this on some platforms
LDFLAGS += "-lpthread -lgmodule-2.0 -lgthread-2.0"
diff --git a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
index 78efee0040..33190c461c 100644
--- a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
@@ -7,7 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6a6e689d19255cf0557f3fe7d7068212 \
file://src/camel/camel.h;endline=24;md5=342fc5e9357254bc30c24e43ae47d9a1 \
file://src/libedataserver/e-data-server-util.h;endline=20;md5=8f21a9c80ea82a4fb80b5f959f672543"
+GNOMEBASEBUILDCLASS = "cmake"
inherit gnomebase upstream-version-is-even
-SRC_URI[archive.sha256sum] = "2ed72afe4d6bb170f8728faea0907fee10212dfde7a9fab82fbcc83d0f22f028"
-PV = "3.44.2"
+SRC_URI[archive.sha256sum] = "91f4ffc38a1b8d2fe8939834449ac541c0bff4a39b444edc2a9529344a28e98a"
+PV = "3.50.1"
diff --git a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-cmake-Do-not-export-CC-into-gir-compiler.patch b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-cmake-Do-not-export-CC-into-gir-compiler.patch
index fda84acae7..118d93a72a 100644
--- a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-cmake-Do-not-export-CC-into-gir-compiler.patch
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-cmake-Do-not-export-CC-into-gir-compiler.patch
@@ -1,3 +1,7 @@
+Use G_IR_SCANNER without passing additional environment
+
+Upstream-Status: Inappropriate [OE-specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/cmake/modules/GObjectIntrospection.cmake
+++ b/cmake/modules/GObjectIntrospection.cmake
@@ -122,9 +122,7 @@ macro(gir_add_introspection gir)
diff --git a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch
index 23c3a96d43..51eaf7cfef 100644
--- a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch
@@ -9,6 +9,7 @@ Content-Transfer-Encoding: 8bit
* TRY_RUN: does not work for OE
* HAVE_LKSTRFTIME is set by recipe as configure option
+Upstream-Status: Inappropriate [Cross-compile specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
CMakeLists.txt | 23 -----------------------
diff --git a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch
index e320f6342d..82f6972501 100644
--- a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch
@@ -6,7 +6,7 @@ MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Upstream-Status: Inappropriate[oe-specific]
+Upstream-Status: Inappropriate [oe-specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
diff --git a/meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb b/meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb
index 5ed3375eb0..12d344bff5 100644
--- a/meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb
+++ b/meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb
@@ -8,8 +8,7 @@ inherit allarch gtk-icon-cache
S = "${WORKDIR}"
-SRC_URI = "http://faenza-icon-theme.googlecode.com/files/${BPN}_${PV}.zip"
-SRC_URI[md5sum] = "e9bd6106d13017ce06d24b586259ae9c"
+SRC_URI = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/${BPN}/${BPN}_${PV}.zip"
SRC_URI[sha256sum] = "d4486fda0413f8a81a87e0dd2329f50f2a8a7cb4147b48cf147f0160add8174a"
do_install() {
diff --git a/meta-gnome/recipes-gnome/file-roller/file-roller_3.42.0.bb b/meta-gnome/recipes-gnome/file-roller/file-roller_3.42.0.bb
deleted file mode 100644
index f77400564e..0000000000
--- a/meta-gnome/recipes-gnome/file-roller/file-roller_3.42.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "An archive manager utility for the GNOME Environment"
-LICENSE="GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-DEPENDS = " \
- glib-2.0-native \
- gtk+3 \
- libarchive \
- libnotify \
- libhandy \
-"
-
-inherit gnomebase gsettings itstool gnome-help gettext upstream-version-is-even mime-xdg
-
-SRC_URI[archive.sha256sum] = "1c438e6d53ec10ff4f2eb5b22d7bbf28a7c2a84957ab64a751c1cdf3c52302c7"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'packagekit', '', d)}"
-
-PACKAGECONFIG[nautilus] = "-Dnautilus-actions=enabled,-Dnautilus-actions=disabled,nautilus"
-PACKAGECONFIG[packagekit] = "-Dpackagekit=true,-Dpackagekit=false,"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/metainfo \
- ${libdir}/nautilus \
-"
diff --git a/meta-gnome/recipes-gnome/file-roller/file-roller_44.0.bb b/meta-gnome/recipes-gnome/file-roller/file-roller_44.0.bb
new file mode 100644
index 0000000000..3daa1b5706
--- /dev/null
+++ b/meta-gnome/recipes-gnome/file-roller/file-roller_44.0.bb
@@ -0,0 +1,46 @@
+SUMMARY = "An archive manager utility for the GNOME Environment"
+LICENSE="GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+
+DEPENDS = " \
+ desktop-file-utils-native \
+ glib-2.0-native \
+ glib-2.0 \
+ json-glib \
+ gtk4 \
+ libadwaita \
+ libarchive \
+ libhandy \
+ libportal \
+"
+
+inherit gnomebase gsettings itstool gobject-introspection gnome-help gettext upstream-version-is-even mime-xdg gtk-icon-cache features_check
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+EXTRA_OEMESON += "-Dintrospection=enabled"
+
+SRC_URI = "git://gitlab.gnome.org/GNOME/file-roller.git;protocol=https;branch=master"
+SRCREV = "f1c7714cf4c8989b9f3fa4c611887c29cf6df343"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= ""
+
+PACKAGECONFIG[nautilus] = "-Dnautilus-actions=enabled,-Dnautilus-actions=disabled,nautilus"
+PACKAGECONFIG[packagekit] = "-Dpackagekit=true,-Dpackagekit=false,,packagekit"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${libdir}/nautilus \
+"
+
+EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross"
+
+do_write_config:append() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+cpio = '${bindir}/cpio'
+EOF
+}
diff --git a/meta-gnome/recipes-gnome/gdm/gdm_42.0.bb b/meta-gnome/recipes-gnome/gdm/gdm_42.0.bb
deleted file mode 100644
index 00fb56b2b1..0000000000
--- a/meta-gnome/recipes-gnome/gdm/gdm_42.0.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-SUMMARY = "GNOME Display Manager"
-LICENSE="GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = " \
- dconf-native \
- gtk+3 \
- accountsservice \
- libcanberra \
- libpam \
- libgudev \
-"
-
-REQUIRED_DISTRO_FEATURES = "x11 systemd pam polkit gobject-introspection-data"
-GIR_MESON_OPTION = ""
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection gettext systemd useradd itstool gnome-help features_check
-
-SRC_URI[archive.sha256sum] = "a328ac976937bec179971ff07829a1246b98ce724181c128ae32a0ba47ad3855"
-
-EXTRA_OEMESON = " \
- -Dplymouth=disabled \
- -Ddefault-pam-config=openembedded \
- -Dpam-mod-dir=${base_libdir}/security \
-"
-
-do_install:append() {
- rm -rf ${D}/run ${D}${localstatedir}/run
-}
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --no-create-home --home ${localstatedir}/lib/gdm --user-group gdm"
-
-SYSTEMD_SERVICE:${PN} = "${BPN}.service"
-
-# Some gnome components - as gnome-panel and gnome-shell (!!) - require gdm
-# components. To allow gnome-images using different display-manager, split them
-# out into a seperate package.
-PACKAGE_BEFORE_PN = "${PN}-base"
-FILES:${PN}-base = " \
- ${datadir}/glib-2.0 \
- ${datadir}/gnome-session \
- ${libdir}/lib*${SOLIBS} \
- ${libdir}/girepository-1.0 \
-"
-
-CONFFILES:${PN} += "${sysconfdir}/gdm/custom.conf"
-FILES:${PN} += " \
- ${datadir}/dconf \
- ${base_libdir}/security/pam_gdm.so \
- ${localstatedir} \
- ${systemd_unitdir} ${systemd_user_unitdir} \
-"
-
-RDEPENDS:${PN} += "${PN}-base"
-
diff --git a/meta-gnome/recipes-gnome/gdm/gdm_46.0.bb b/meta-gnome/recipes-gnome/gdm/gdm_46.0.bb
new file mode 100644
index 0000000000..469281624c
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gdm/gdm_46.0.bb
@@ -0,0 +1,66 @@
+SUMMARY = "GNOME Display Manager"
+LICENSE="GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = " \
+ accountsservice \
+ audit \
+ dconf-native \
+ gtk+3 \
+ keyutils \
+ libcanberra \
+ libgudev \
+ libpam \
+ xserver-xorg \
+"
+
+REQUIRED_DISTRO_FEATURES = "x11 systemd pam polkit gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+
+inherit gnomebase gsettings pkgconfig gobject-introspection gettext systemd useradd itstool gnome-help features_check
+
+SRC_URI[archive.sha256sum] = "8d6cb52176eca48b6bbf1cfe2fdae08d9677b5a0f2bca600dee4604de0dd1efc"
+
+EXTRA_OEMESON = " \
+ -Dplymouth=disabled \
+ -Ddefault-pam-config=openembedded \
+ -Dpam-mod-dir=${base_libdir}/security \
+"
+
+do_install:prepend() {
+ sed -i -e 's|${B}/||g' ${B}/daemon/gdm-session-worker-enum-types.c
+ sed -i -e 's|${B}/||g' ${B}/daemon/gdm-session-worker-enum-types.h
+ sed -i -e 's|${B}/||g' ${B}/daemon/gdm-session-enum-types.c
+ sed -i -e 's|${B}/||g' ${B}/daemon/gdm-session-enum-types.h
+}
+
+do_install:append() {
+ rm -rf ${D}/run ${D}${localstatedir}/run
+}
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --home ${localstatedir}/lib/gdm --user-group gdm"
+
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+
+# Some gnome components - as gnome-panel and gnome-shell (!!) - require gdm
+# components. To allow gnome-images using different display-manager, split them
+# out into a seperate package.
+PACKAGE_BEFORE_PN = "${PN}-base"
+FILES:${PN}-base = " \
+ ${datadir}/glib-2.0 \
+ ${datadir}/gnome-session \
+ ${libdir}/lib*${SOLIBS} \
+ ${libdir}/girepository-1.0 \
+"
+
+CONFFILES:${PN} += "${sysconfdir}/gdm/custom.conf"
+FILES:${PN} += " \
+ ${datadir}/dconf \
+ ${base_libdir}/security/pam_gdm.so \
+ ${localstatedir} \
+ ${systemd_unitdir} ${systemd_user_unitdir} \
+"
+
+RDEPENDS:${PN} += "${PN}-base"
diff --git a/meta-gnome/recipes-gnome/gedit/gedit/0001-fix-for-clang-18.patch b/meta-gnome/recipes-gnome/gedit/gedit/0001-fix-for-clang-18.patch
new file mode 100644
index 0000000000..40fd93b984
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gedit/gedit/0001-fix-for-clang-18.patch
@@ -0,0 +1,32 @@
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+Upstream-Status: Inappropriate [https://gitlab.gnome.org/GNOME/gedit/-/issues/588]
+
+Temporary workaround to fix build:
+../plugins/quickhighlight/gedit-quick-highlight-plugin.c: In function ‘gedit_quick_highlight_plugin_load_style’:
+../plugins/quickhighlight/gedit-quick-highlight-plugin.c:96:47: error: implicit declaration of function ‘gtk_source_style_copy’; did you mean ‘gtk_source_style_apply’? [-Wimplicit-function-declaration]
+
+ 96 | plugin->priv->style = gtk_source_style_copy (style);
+ | ^~~~~~~~~~~~~~~~~~~~~
+ | gtk_source_style_apply
+../plugins/quickhighlight/gedit-quick-highlight-plugin.c:96:47: warning: nested extern declaration of ‘gtk_source_style_copy’ [-Wnested-externs]
+../plugins/quickhighlight/gedit-quick-highlight-plugin.c:96:45: error: assignment to ‘GtkSourceStyle *’ {aka ‘struct _GtkSourceStyle *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
+ 96 | plugin->priv->style = gtk_source_style_copy (style);
+ | ^
+
+--- a/plugins/quickhighlight/gedit-quick-highlight-plugin.c 2024-02-20 08:11:47.925749255 +0100
++++ b/plugins/quickhighlight/gedit-quick-highlight-plugin.c 2024-02-20 08:12:16.218594067 +0100
+@@ -90,11 +90,12 @@
+ if (style_scheme != NULL)
+ {
+ style = gtk_source_style_scheme_get_style (style_scheme, "quick-highlight-match");
+-
++#if 0
+ if (style != NULL)
+ {
+ plugin->priv->style = gtk_source_style_copy (style);
+ }
++#endif
+ }
+ }
+
+
diff --git a/meta-gnome/recipes-gnome/gedit/gedit_42.2.bb b/meta-gnome/recipes-gnome/gedit/gedit_42.2.bb
deleted file mode 100644
index 13d3e0af79..0000000000
--- a/meta-gnome/recipes-gnome/gedit/gedit_42.2.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "GNOME editor"
-SECTION = "x11/gnome"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-DEPENDS = " \
- gdk-pixbuf-native \
- gtk+3 \
- gsettings-desktop-schemas \
- libpeas \
- libsoup-2.4 \
- gspell \
- gtksourceview4 \
- tepl \
-"
-
-inherit gnomebase gsettings itstool gnome-help gobject-introspection gtk-doc vala gettext features_check mime-xdg python3targetconfig
-
-def gnome_verdir(v):
- return oe.utils.trim_version(v, 1)
-
-SRC_URI[archive.sha256sum] = "3c6229111f0ac066ae44964920791d1265f5bbb56b0bd949a69b7b1261fc8fca"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-GIR_MESON_OPTION = ""
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-PACKAGES += "${PN}-python"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/metainfo \
-"
-
-FILES:${PN}-python += " \
- ${PYTHON_SITEPACKAGES_DIR} \
-"
-
-RDEPENDS:${PN} += "gsettings-desktop-schemas"
-RRECOMMENDS:${PN} += "source-code-pro-fonts"
diff --git a/meta-gnome/recipes-gnome/gedit/gedit_46.2.bb b/meta-gnome/recipes-gnome/gedit/gedit_46.2.bb
new file mode 100644
index 0000000000..6cdc33c1cc
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gedit/gedit_46.2.bb
@@ -0,0 +1,53 @@
+SUMMARY = "GNOME editor"
+SECTION = "x11/gnome"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+
+
+DEPENDS = " \
+ appstream-glib-native \
+ desktop-file-utils-native \
+ libgedit-amtk \
+ libgedit-gtksourceview \
+ gdk-pixbuf-native \
+ gtk+3 \
+ gsettings-desktop-schemas \
+ libpeas \
+ libsoup \
+ gspell \
+ tepl \
+"
+
+inherit gnomebase gsettings itstool gnome-help gobject-introspection gtk-doc gettext features_check mime-xdg gtk-icon-cache python3targetconfig
+
+def gnome_verdir(v):
+ return oe.utils.trim_version(v, 1)
+
+SRC_URI += "file://0001-fix-for-clang-18.patch"
+SRC_URI[archive.sha256sum] = "c0866412bad147ebace2d282ffcbb5a0e9a304b20fd55640bee21c81e6d501ef"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+do_install:prepend() {
+ sed -i -e 's|${B}||g' ${B}/plugins/filebrowser/gedit-file-browser-enum-types.c
+}
+
+GIR_MESON_OPTION = ""
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+PACKAGES += "${PN}-python"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+"
+
+FILES:${PN}-python += " \
+ ${PYTHON_SITEPACKAGES_DIR} \
+"
+
+RDEPENDS:${PN} += "gsettings-desktop-schemas"
+RRECOMMENDS:${PN} += "source-code-pro-fonts"
diff --git a/meta-gnome/recipes-gnome/gedit/libgedit-amtk_5.8.0.bb b/meta-gnome/recipes-gnome/gedit/libgedit-amtk_5.8.0.bb
new file mode 100644
index 0000000000..11da836ff4
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gedit/libgedit-amtk_5.8.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "libgedit-amtk - Actions, Menus and Toolbars Kit for GTK applications"
+SECTION = "gnome"
+LICENSE = "LGPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSES/LGPL-3.0-or-later.txt;md5=c51d3eef3be114124d11349ca0d7e117"
+
+DEPENDS = "glib-2.0 gtk+3"
+
+inherit meson pkgconfig gobject-introspection features_check gtk-doc
+
+SRC_URI = "git://github.com/gedit-technology/libgedit-amtk.git;protocol=https;branch=main"
+S = "${WORKDIR}/git"
+SRCREV = "f6fbfd1c57de3d97cab2056a5c3088b0da49e8a4"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+GIR_MESON_OPTION = "gobject_introspection"
+GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-gnome/recipes-gnome/gedit/libgedit-gtksourceview_299.1.0.bb b/meta-gnome/recipes-gnome/gedit/libgedit-gtksourceview_299.1.0.bb
new file mode 100644
index 0000000000..0ebc22acbd
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gedit/libgedit-gtksourceview_299.1.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Gedit Technology - Source code editing widget"
+SECTION = "gnome"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS = "glib-2.0 gtk+3 libxml2"
+
+inherit meson pkgconfig gobject-introspection features_check gtk-doc
+
+SRC_URI = "git://github.com/gedit-technology/libgedit-gtksourceview.git;protocol=https;branch=main"
+S = "${WORKDIR}/git"
+SRCREV = "b271a625ca057cc3fa7d5ac83285c5d4e038202e"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+GIR_MESON_OPTION = "gobject_introspection"
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+do_install:prepend() {
+ sed -i -e 's|${B}||g' ${B}/gtksourceview/gtksource-enumtypes.c
+ sed -i -e 's|${B}||g' ${B}/gtksourceview/gtksource-enumtypes.h
+}
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.4.bb b/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.4.bb
index 2b1ecad97c..a1495d6153 100644
--- a/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.4.bb
+++ b/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.4.bb
@@ -3,7 +3,6 @@ SUMMARY = "A convenience library for the geocoding"
LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605"
-GNOMEBASEBUILDCLASS = "meson"
GIR_MESON_OPTION = "enable-introspection"
GTKDOC_MESON_OPTION = "enable-gtk-doc"
@@ -11,9 +10,9 @@ inherit gnomebase gobject-introspection gettext gtk-doc upstream-version-is-even
DEPENDS = " \
json-glib \
- libsoup-2.4 \
+ libsoup-3.0 \
"
SRC_URI[archive.sha256sum] = "2d9a6826d158470449a173871221596da0f83ebdcff98b90c7049089056a37aa"
-EXTRA_OEMESON = "-Denable-installed-tests=false"
+EXTRA_OEMESON = "-Denable-installed-tests=false -Dsoup2=false"
diff --git a/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.0.bb b/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.0.bb
deleted file mode 100644
index fed29da0fc..0000000000
--- a/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "A GObject-based Exiv2 wrapper"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=625f055f41728f84a8d7938acc35bdc2"
-
-DEPENDS = "exiv2 python3-pygobject-native"
-
-GNOMEBASEBUILDCLASS = "meson"
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-inherit gnomebase gobject-introspection gtk-doc python3native
-
-SRC_URI[archive.sha256sum] = "e58279a6ff20b6f64fa499615da5e9b57cf65ba7850b72fafdf17221a9d6d69e"
-
-EXTRA_OEMESON = " \
- -Dvapi=false \
- -Dpython3_girdir=${PYTHON_SITEPACKAGES_DIR}/gi/overrides \
-"
-
-PACKAGES =+ "${PN}-python3"
-FILES:${PN}-python3 = "${PYTHON_SITEPACKAGES_DIR}"
-RDEPENDS:${PN}-python3 = "${PN}"
-
-PACKAGE_PREPROCESS_FUNCS += "src_package_preprocess"
-src_package_preprocess () {
- # Trim build paths from comments in generated sources to ensure reproducibility
- sed -i -e "s,${B}/../${BPN}-${PV}/${BPN}/,,g" \
- ${B}/gexiv2/gexiv2-enums.cpp
-}
diff --git a/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.2.bb b/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.2.bb
new file mode 100644
index 0000000000..8fd6583104
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.2.bb
@@ -0,0 +1,34 @@
+SUMMARY = "A GObject-based Exiv2 wrapper"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=625f055f41728f84a8d7938acc35bdc2"
+
+DEPENDS = "exiv2 python3-pygobject-native"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+inherit gnomebase gobject-introspection gtk-doc python3native vala
+
+SRC_URI[archive.sha256sum] = "2a0c9cf48fbe8b3435008866ffd40b8eddb0667d2212b42396fdf688e93ce0be"
+
+EXTRA_OEMESON = " \
+ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)} \
+"
+
+PACKAGES =+ "${PN}-python3"
+FILES:${PN}-python3 = "${PYTHON_SITEPACKAGES_DIR}"
+RDEPENDS:${PN}-python3 = "${PN}"
+
+PACKAGE_PREPROCESS_FUNCS += "src_package_preprocess"
+src_package_preprocess () {
+ # Trim build paths from comments in generated sources to ensure reproducibility
+ sed -i -e "s,${B}/../${BPN}-${PV}/${BPN}/,,g" \
+ ${B}/gexiv2/gexiv2-enums.cpp
+}
+
+do_install:append() {
+ # gexiv2 harcodes usr/lib as install path, so this corrects it to actual libdir
+ if [ "${prefix}/lib" != "${libdir}" ]; then
+ mv ${D}/${prefix}/lib/* ${D}/${libdir}/
+ rm -rf ${D}/${prefix}/lib
+ fi
+}
diff --git a/meta-gnome/recipes-gnome/gfbgraph/gfbgraph/0001-Update-rest-requirement-to-rest-1.0.patch b/meta-gnome/recipes-gnome/gfbgraph/gfbgraph/0001-Update-rest-requirement-to-rest-1.0.patch
deleted file mode 100644
index 21c623ea5b..0000000000
--- a/meta-gnome/recipes-gnome/gfbgraph/gfbgraph/0001-Update-rest-requirement-to-rest-1.0.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From d058e6eb6c9ebf5f4fff89ec0ac93323fc64c1ba Mon Sep 17 00:00:00 2001
-From: Tim Orling <ticotimo@gmail.com>
-Date: Mon, 18 Oct 2021 08:42:35 -0700
-Subject: [PATCH] Update rest requirement to rest-1.0
-
-librest 0.8.1 declares rest-1.0 and was released four years ago.
-
-https://gitlab.gnome.org/GNOME/librest/-/commit/2971b3b92701f70fc368ad64bd25cefaea043f87
-
-Upstream-Status: Submitted
-[https://gitlab.gnome.org/GNOME/libgfbgraph/-/merge_requests/6]
-
-Signed-off-by: Tim Orling <ticotimo@gmail.com>
-
----
- configure.ac | 2 +-
- gfbgraph/Makefile.am | 2 +-
- libgfbgraph.pc.in | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index fd1231f..9b49f3f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -40,7 +40,7 @@ AM_CONDITIONAL([ENABLE_GTK_DOC], false)
-
- GOBJECT_INTROSPECTION_CHECK([1.30.0])
-
--PKG_CHECK_MODULES(LIBGFBGRAPH, [glib-2.0 gio-2.0 gobject-2.0 rest-0.7 json-glib-1.0])
-+PKG_CHECK_MODULES(LIBGFBGRAPH, [glib-2.0 gio-2.0 gobject-2.0 rest-1.0 json-glib-1.0])
-
- PKG_CHECK_MODULES(SOUP, [libsoup-2.4])
- SOUP_UNSTABLE_CPPFLAGS=-DLIBSOUP_USE_UNSTABLE_REQUEST_API
-diff --git a/gfbgraph/Makefile.am b/gfbgraph/Makefile.am
-index d07b90d..b993ab7 100644
---- a/gfbgraph/Makefile.am
-+++ b/gfbgraph/Makefile.am
-@@ -60,7 +60,7 @@ GFBGraph_@API_MAJOR@_@API_MINOR@_gir_INCLUDES = \
- GLib-2.0 \
- Gio-2.0 \
- GObject-2.0 \
-- Rest-0.7 \
-+ Rest-1.0 \
- Json-1.0 \
- Soup-2.4
-
-diff --git a/libgfbgraph.pc.in b/libgfbgraph.pc.in
-index f87073e..d4f4e3a 100644
---- a/libgfbgraph.pc.in
-+++ b/libgfbgraph.pc.in
-@@ -9,6 +9,6 @@ apiversion=@API_VERSION@
- Name: libgfbgraph
- Description: GObject library for Facebook Graph API
- Version: @VERSION@
--Requires: gio-2.0 glib-2.0 goa-1.0 json-glib-1.0 libsoup-2.4 rest-0.7
-+Requires: gio-2.0 glib-2.0 goa-1.0 json-glib-1.0 libsoup-2.4 rest-1.0
- Libs: -L${libdir} -lgfbgraph-${apiversion}
- Cflags: -I${includedir}/gfbgraph-@API_VERSION@
diff --git a/meta-gnome/recipes-gnome/gfbgraph/gfbgraph_0.2.5.bb b/meta-gnome/recipes-gnome/gfbgraph/gfbgraph_0.2.5.bb
index f3b54e7d05..9b1a02bb09 100644
--- a/meta-gnome/recipes-gnome/gfbgraph/gfbgraph_0.2.5.bb
+++ b/meta-gnome/recipes-gnome/gfbgraph/gfbgraph_0.2.5.bb
@@ -6,16 +6,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5804fe91d3294da4ac47c02b454bbc8a"
DEPENDS = " \
glib-2.0 \
json-glib \
- rest \
+ librest \
+ libsoup-2.4 \
gnome-online-accounts \
"
-
+GNOMEBASEBUILDCLASS = "autotools"
inherit gnomebase gtk-doc gobject-introspection pkgconfig features_check
# for gnome-online-accounts
-REQUIRED_DISTRO_FEATURES = "x11"
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
-SRC_URI += " file://0001-Update-rest-requirement-to-rest-1.0.patch"
+#SRC_URI += " file://0001-Update-rest-requirement-to-rest-1.0.patch"
SRC_URI[archive.sha256sum] = "9cb381b3f78ba1136df97af3f06e3b11dcc2ab339ac08f74eda0f8057d6603e3"
do_install:append() {
diff --git a/meta-gnome/recipes-gnome/ghex/ghex_3.18.4.bb b/meta-gnome/recipes-gnome/ghex/ghex_3.18.4.bb
deleted file mode 100644
index 08e50409eb..0000000000
--- a/meta-gnome/recipes-gnome/ghex/ghex_3.18.4.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "GHex - a hex editor for GNOME"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-DEPENDS = " \
- glib-2.0-native \
- gtk+3 \
-"
-
-inherit gnomebase gsettings gtk-icon-cache gnome-help gettext upstream-version-is-even
-
-SRC_URI[archive.md5sum] = "7e6ed808766bc18285bdc6999bdf0f15"
-SRC_URI[archive.sha256sum] = "c2d9c191ff5bce836618779865bee4059db81a3a0dff38bda3cc7a9e729637c0"
-
-FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-gnome/recipes-gnome/ghex/ghex_46.0.bb b/meta-gnome/recipes-gnome/ghex/ghex_46.0.bb
new file mode 100644
index 0000000000..41d8391636
--- /dev/null
+++ b/meta-gnome/recipes-gnome/ghex/ghex_46.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "GHex - a hex editor for GNOME"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+
+DEPENDS = " \
+ desktop-file-utils-native \
+ glib-2.0-native \
+ gtk4 \
+ libadwaita \
+"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
+inherit gnomebase gsettings gtk-icon-cache gnome-help gettext gobject-introspection vala gi-docgen
+
+SRC_URI[archive.sha256sum] = "a1c46f3020cb358b8323025db3a539c97d994a4c46f701f48edc6357f7fbcbd1"
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+FILES:${PN} += "${libdir} ${datadir}/metainfo"
diff --git a/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch b/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch
index 0c45e60957..12b4b08c7e 100644
--- a/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch
+++ b/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch
@@ -1,4 +1,4 @@
-From fa47185d9c8150a0dcb0ea12b92fcf139edbef35 Mon Sep 17 00:00:00 2001
+From 8a78a7996b01aba21377ceb7547da673fd30a391 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Wed, 27 Oct 2021 20:18:47 +0200
Subject: [PATCH] Support cross builds a bit better
@@ -9,7 +9,7 @@ Content-Transfer-Encoding: 8bit
* Do not build/run mozjs-linked program
* Do not try to run test applications
-Upstream-Status: Submitted[https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/690]
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/690]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
@@ -17,10 +17,10 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index 136e812..f5b91e0 100644
+index c9b26d6..3058e8c 100644
--- a/meson.build
+++ b/meson.build
-@@ -252,6 +252,7 @@ release builds of SpiderMonkey. Try configuring SpiderMonkey with
+@@ -262,6 +262,7 @@ release builds of SpiderMonkey. Try configuring SpiderMonkey with
--disable-debug.''')
endif
@@ -28,7 +28,7 @@ index 136e812..f5b91e0 100644
# Check if a minimal SpiderMonkey program compiles, links, and runs. If not,
# it's most likely the case that SpiderMonkey was configured incorrectly, for
# example by building mozglue as a shared library.
-@@ -282,6 +283,7 @@ elif minimal_program.returncode() != 0
+@@ -292,6 +293,7 @@ elif minimal_program.returncode() != 0
failed to execute. Most likely you should build it with a different
configuration.''' + recommended_configuration)
endif
@@ -36,7 +36,7 @@ index 136e812..f5b91e0 100644
have_printf_alternative_int = cc.compiles('''
#include <stdio.h>
-@@ -682,7 +684,7 @@ subdir('installed-tests')
+@@ -690,7 +692,7 @@ subdir('installed-tests')
# Note: The test program in test/ needs to be ported
# to Windows before we can build it on Windows.
diff --git a/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch b/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch
index 6e7b5504e8..e932f06d27 100644
--- a/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch
+++ b/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch
@@ -1,13 +1,17 @@
-From 2b8aa1ea4a4d1836164c934b1ab2556a32cb5af7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+From 29221ae42e424c6100b8c313d2b61801430c872d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller=20installed=5Ftests=20is=20false?=
+ <schnitzeltony@gmail.com>
Date: Wed, 27 Oct 2021 20:04:02 +0200
Subject: [PATCH] meson.build: Do not add dir installed-tests when
- installed_tests is false
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Upstream-Status: Submitted[https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/690]
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/690]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
@@ -15,12 +19,12 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index f5b91e0..3110530 100644
+index 3058e8c..06cf8da 100644
--- a/meson.build
+++ b/meson.build
-@@ -680,7 +680,9 @@ if not get_option('skip_gtk_tests')
- have_gtk4 = dependency('gtk4', required: false).found()
- endif
+@@ -688,7 +688,9 @@ endif
+
+ ### Tests and test setups ######################################################
-subdir('installed-tests')
+if get_option('installed_tests')
diff --git a/meta-gnome/recipes-gnome/gjs/gjs_1.72.2.bb b/meta-gnome/recipes-gnome/gjs/gjs_1.72.2.bb
deleted file mode 100644
index 3170341560..0000000000
--- a/meta-gnome/recipes-gnome/gjs/gjs_1.72.2.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Javascript bindings for GNOME"
-LICENSE = "MIT & LGPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8dcea832f6acf45d856abfeb2d51ec48"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-DEPENDS = "mozjs-91 cairo"
-
-inherit gnomebase gsettings gobject-introspection vala gettext features_check upstream-version-is-even pkgconfig
-
-SRC_URI[archive.sha256sum] = "ddee379bdc5a7d303a5d894be2b281beb8ac54508604e7d3f20781a869da3977"
-SRC_URI += " \
- file://0001-Support-cross-builds-a-bit-better.patch \
- file://0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch \
-"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-GIR_MESON_OPTION = ""
-
-EXTRA_OEMESON = " \
- -Dinstalled_tests=false \
- -Dskip_dbus_tests=true \
- -Dskip_gtk_tests=true \
-"
-
-LDFLAGS:append:mipsarch = " -latomic"
-LDFLAGS:append:powerpc = " -latomic"
-LDFLAGS:append:powerpc64 = " -latomic"
-LDFLAGS:append:riscv32 = " -latomic"
-
-FILES:${PN} += "${datadir}/gjs-1.0/lsan"
-
-PACKAGES =+ "${PN}-valgrind"
-FILES:${PN}-valgrind = "${datadir}/gjs-1.0/valgrind"
-RDEPENDS:${PN}-valgrind += "valgrind"
-
-# Valgrind not yet available on rv32/rv64
-RDEPENDS:${PN}-valgrind:remove:riscv32 = "valgrind"
-RDEPENDS:${PN}-valgrind:remove:riscv64 = "valgrind"
diff --git a/meta-gnome/recipes-gnome/gjs/gjs_1.80.2.bb b/meta-gnome/recipes-gnome/gjs/gjs_1.80.2.bb
new file mode 100644
index 0000000000..1d781d078c
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gjs/gjs_1.80.2.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Javascript bindings for GNOME"
+LICENSE = "MIT & LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8dcea832f6acf45d856abfeb2d51ec48"
+
+
+DEPENDS = "mozjs-115 cairo"
+
+inherit gnomebase gsettings gobject-introspection gettext features_check upstream-version-is-even pkgconfig
+
+SRC_URI[archive.sha256sum] = "135e39c5ac591096233e557cfe577d64093f5054411d47cb2e214bad7d4199bd"
+SRC_URI += " \
+ file://0001-Support-cross-builds-a-bit-better.patch \
+ file://0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch \
+"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+EXTRA_OEMESON = " \
+ -Dinstalled_tests=false \
+ -Dskip_dbus_tests=true \
+ -Dskip_gtk_tests=true \
+"
+
+LDFLAGS:append:mipsarch = " -latomic"
+LDFLAGS:append:powerpc = " -latomic"
+LDFLAGS:append:powerpc64 = " -latomic"
+LDFLAGS:append:riscv32 = " -latomic"
+
+FILES:${PN} += "${datadir}/gjs-1.0/lsan"
+
+PACKAGES =+ "${PN}-valgrind"
+FILES:${PN}-valgrind = "${datadir}/gjs-1.0/valgrind"
+RDEPENDS:${PN}-valgrind += "valgrind"
+
+# Valgrind not yet available on rv32/rv64
+RDEPENDS:${PN}-valgrind:remove:riscv32 = "valgrind"
+RDEPENDS:${PN}-valgrind:remove:riscv64 = "valgrind"
diff --git a/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.3.bb b/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.3.bb
deleted file mode 100644
index 017d67b5a6..0000000000
--- a/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.3.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "GNOME archive library"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = " \
- gtk+3 \
- libarchive \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-GIR_MESON_ENABLE_FLAG = 'enabled'
-GIR_MESON_DISABLE_FLAG = 'disabled'
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-inherit gnomebase gobject-introspection gtk-doc vala
-
-SRC_URI[archive.sha256sum] = "7bdf0789553496abddc3c963b0ce7363805c0c02c025feddebcaacc787249e88"
-
-do_compile:prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/gnome-autoar/.libs"
-}
diff --git a/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.4.bb b/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.4.bb
new file mode 100644
index 0000000000..8d602eee44
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.4.bb
@@ -0,0 +1,20 @@
+SUMMARY = "GNOME archive library"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = " \
+ gtk+3 \
+ libarchive \
+"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+inherit gnomebase gobject-introspection gtk-doc vala
+
+SRC_URI[archive.sha256sum] = "c0afbe333bcf3cb1441a1f574cc8ec7b1b8197779145d4edeee2896fdacfc3c2"
+
+do_compile:prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/gnome-autoar/.libs"
+}
diff --git a/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_42.0.bb b/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_42.0.bb
deleted file mode 100644
index d700c1bcb0..0000000000
--- a/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_42.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "GNOME wallpapers"
-LICENSE = "CC-BY-SA-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b52fb0a6df395efb7047cb6fc56bfd7e"
-
-SECTION = "x11/gnome"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gettext allarch
-
-SRC_URI[archive.sha256sum] = "4c7fe1a09f459c5f77189a5982524fce05d888944955d679910f234606c1295d"
-
-FILES:${PN} += " \
- ${datadir}/backgrounds \
- ${datadir}/gnome-background-properties \
-"
diff --git a/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_46.0.bb b/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_46.0.bb
new file mode 100644
index 0000000000..d938ae94cb
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_46.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "GNOME wallpapers"
+LICENSE = "CC-BY-SA-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b52fb0a6df395efb7047cb6fc56bfd7e"
+
+SECTION = "x11/gnome"
+
+inherit gnomebase gettext allarch
+
+SRC_URI[archive.sha256sum] = "4ddd3ac439a4a067876805921bb75f4d3c8b85a218d47c276dddde8928443c2e"
+
+FILES:${PN} += " \
+ ${datadir}/backgrounds \
+ ${datadir}/gnome-background-properties \
+"
+
+RDEPENDS:${PN} += "libjxl"
diff --git a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth3_3.34.5.bb b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth3_3.34.5.bb
index e2a885b1fb..2a97263125 100644
--- a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth3_3.34.5.bb
+++ b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth3_3.34.5.bb
@@ -11,7 +11,6 @@ DEPENDS = "udev gtk+3 libnotify libcanberra bluez5"
GNOMEBN = "gnome-bluetooth"
S = "${WORKDIR}/${GNOMEBN}-${PV}"
-GNOMEBASEBUILDCLASS = "meson"
GTKDOC_MESON_OPTION = "gtk_doc"
inherit features_check gnomebase gtk-icon-cache gtk-doc gobject-introspection upstream-version-is-even
diff --git a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_42.4.bb b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_42.4.bb
deleted file mode 100644
index 75e1244f8f..0000000000
--- a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_42.4.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "GNOME bluetooth manager"
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
- file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \
-"
-
-SECTION = "x11/gnome"
-
-DEPENDS = " \
- udev \
- libnotify \
- libcanberra \
- bluez5 \
- upower \
- gtk4 \
- gsound \
- libadwaita \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-GTKDOC_MESON_OPTION = "gtk_doc"
-GTKIC_VERSION = "4"
-
-inherit features_check gnomebase gtk-icon-cache gtk-doc gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.sha256sum] = "1d6fcf1cdb6cc9923ab334a2c0bc37a2c1bba9d18de153d484eedc04f3c0bcdc"
-
-BT_PULSE_PACKS = " \
- pulseaudio-lib-bluez5-util \
- pulseaudio-module-bluetooth-discover \
- pulseaudio-module-bluetooth-policy \
- pulseaudio-module-bluez5-device \
- pulseaudio-module-bluez5-discover \
-"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}"
-PACKAGECONFIG[pulseaudio] = ",,,${BT_PULSE_PACKS}"
-
-FILES:${PN} += "${datadir}/gnome-bluetooth-3.0"
-
-RDEPENDS:${PN} += "bluez5"
diff --git a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_46.0.bb b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_46.0.bb
new file mode 100644
index 0000000000..1b29e52c75
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_46.0.bb
@@ -0,0 +1,43 @@
+SUMMARY = "GNOME bluetooth manager"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
+ file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+"
+
+SECTION = "x11/gnome"
+
+DEPENDS = " \
+ udev \
+ libnotify \
+ libcanberra \
+ bluez5 \
+ upower \
+ gtk4 \
+ gsound \
+ libadwaita \
+"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+GTKIC_VERSION = "4"
+
+inherit features_check gnomebase gtk-icon-cache gtk-doc gobject-introspection
+
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
+
+SRC_URI[archive.sha256sum] = "13fe1e75f317acdbdf5e80c9029d2e0632d60a9ccf72a43ae36eb7545021fbef"
+
+BT_PULSE_PACKS = " \
+ pulseaudio-lib-bluez5-util \
+ pulseaudio-module-bluetooth-discover \
+ pulseaudio-module-bluetooth-policy \
+ pulseaudio-module-bluez5-device \
+ pulseaudio-module-bluez5-discover \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}"
+PACKAGECONFIG[pulseaudio] = ",,,${BT_PULSE_PACKS}"
+
+FILES:${PN} += "${datadir}/gnome-bluetooth-3.0"
+
+RDEPENDS:${PN} += "bluez5"
diff --git a/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_42.2.bb b/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_42.2.bb
deleted file mode 100644
index 31513a5f61..0000000000
--- a/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_42.2.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "GNOME calculator"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SECTION = "x11/gnome"
-
-DEPENDS = " \
- yelp-tools-native \
- gtk4 \
- libsoup-2.4 \
- libgee \
- libmpc \
- gtksourceview5 \
- libadwaita \
-"
-
-GIR_MESON_OPTION = 'disable-introspection'
-GIR_MESON_ENABLE_FLAG = 'false'
-GIR_MESON_DISABLE_FLAG = 'true'
-
-GNOMEBASEBUILDCLASS = "meson"
-GTKIC_VERSION = '4'
-
-inherit gnomebase gobject-introspection gnome-help vala gtk-icon-cache gettext features_check
-
-def gnome_verdir(v):
- return oe.utils.trim_version(v, 1)
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.sha256sum] = "33dab1bca43658d66520958b0f674cb0ad3185cfd30c12e459e7f69481c5c6a0"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/metainfo \
- ${datadir}/gnome-shell \
-"
diff --git a/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_46.0.bb b/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_46.0.bb
new file mode 100644
index 0000000000..5c7e27378c
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_46.0.bb
@@ -0,0 +1,38 @@
+SUMMARY = "GNOME calculator"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SECTION = "x11/gnome"
+
+DEPENDS = " \
+ yelp-tools-native \
+ gtk4 \
+ libsoup-3.0 \
+ libgee \
+ libxml2 \
+ libmpc \
+ gtksourceview5 \
+ libadwaita \
+"
+
+GIR_MESON_OPTION = 'disable-introspection'
+GIR_MESON_ENABLE_FLAG = 'false'
+GIR_MESON_DISABLE_FLAG = 'true'
+VALA_MESON_OPTION = ''
+
+GTKIC_VERSION = '4'
+
+inherit gnomebase gobject-introspection gnome-help vala gtk-icon-cache gettext features_check
+
+def gnome_verdir(v):
+ return oe.utils.trim_version(v, 1)
+
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
+
+SRC_URI[archive.sha256sum] = "44694fda6b6233923f5c10a48d02d2cf5724e011a8a85789074c953101f33bf1"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${datadir}/gnome-shell \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_42.0.bb b/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_42.0.bb
deleted file mode 100644
index 7b32be611d..0000000000
--- a/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_42.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "GNOME calendar"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
-
-SECTION = "x11/gnome"
-
-DEPENDS = " \
- gtk4 \
- libical \
- gsettings-desktop-schemas \
- evolution-data-server \
- libsoup-2.4 \
- libdazzle \
- libadwaita \
- libgweather4 \
- geoclue \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gtk-icon-cache gettext features_check upstream-version-is-even mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.sha256sum] = "b63f73f55032fc1390442f94cdf6b3cab9c91c774ddd2e5c61ecfec9d2c5e9aa"
-
-FILES:${PN} += " \
- ${datadir}/gnome-shell \
- ${datadir}/metainfo \
- ${datadir}/dbus-1 \
-"
-
diff --git a/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_46.0.bb b/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_46.0.bb
new file mode 100644
index 0000000000..707c4b583f
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_46.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "GNOME calendar"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
+
+SECTION = "x11/gnome"
+
+DEPENDS = " \
+ gtk4 \
+ libical \
+ gsettings-desktop-schemas \
+ evolution-data-server \
+ libsoup \
+ libdazzle \
+ libadwaita \
+ libgweather4 \
+ geoclue \
+ geocode-glib \
+"
+
+GTKIC_VERSION = '4'
+inherit gnomebase gsettings gtk-icon-cache gettext features_check upstream-version-is-even mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
+
+SRC_URI[archive.sha256sum] = "5e21960c174bd8606d9089bf79c70f31070ab4837919878b00db2f14af9fe718"
+
+do_install:prepend() {
+ sed -i -e 's|${S}/src|${TARGET_DBGSRC_DIR}/src|g' ${B}/src/gcal-enum-types.h
+ sed -i -e 's|${S}/src|${TARGET_DBGSRC_DIR}/src|g' ${B}/src/gcal-enum-types.c
+}
+
+FILES:${PN} += " \
+ ${datadir}/gnome-shell \
+ ${datadir}/metainfo \
+ ${datadir}/dbus-1 \
+"
+
diff --git a/meta-gnome/recipes-gnome/gnome-chess/gnome-chess_46.0.bb b/meta-gnome/recipes-gnome/gnome-chess/gnome-chess_46.0.bb
new file mode 100644
index 0000000000..bb53b58df7
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-chess/gnome-chess_46.0.bb
@@ -0,0 +1,34 @@
+SUMMARY = "GNOME Chess is a 2D chess game, where games can be played between a combination of human and computer players."
+HOMEPAGE = "https://wiki.gnome.org/Apps/Chess"
+LICENSE = "GPL-3.0-only"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data opengl"
+
+GTKIC_VERSION = "4"
+
+DEPENDS = " \
+ appstream-glib-native \
+ cairo \
+ desktop-file-utils-native \
+ glib-2.0 \
+ glib-2.0 \
+ gtk4 \
+ libadwaita \
+ librsvg \
+ pango \
+"
+
+RRECOMMENDS:${PN} = "gnuchess"
+
+SRC_URI = "git://github.com/GNOME/gnome-chess.git;protocol=https;branch=master"
+
+inherit meson pkgconfig gobject-introspection gtk-icon-cache vala features_check mime-xdg gsettings
+
+GIR_MESON_OPTION = ""
+
+S = "${WORKDIR}/git"
+SRCREV = "c3625ee59ab3acfd7566ef04300b15ddbadaaac3"
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-gnome/recipes-gnome/gnome-chess/gnuchess/0001-Remove-register-storage-class-classifier.patch b/meta-gnome/recipes-gnome/gnome-chess/gnuchess/0001-Remove-register-storage-class-classifier.patch
new file mode 100644
index 0000000000..69237fd57a
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-chess/gnuchess/0001-Remove-register-storage-class-classifier.patch
@@ -0,0 +1,149 @@
+From 321eb9b1ca1b230063259dc43be8a2ab2f3bfee9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 17 Jan 2023 22:16:36 -0800
+Subject: [PATCH] Remove 'register' storage class classifier
+
+This is gone with c++17
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/frontend/atak.cc | 4 ++--
+ src/frontend/lexpgn.cc | 34 +++++++++++++++++-----------------
+ src/frontend/util.cc | 2 +-
+ 3 files changed, 20 insertions(+), 20 deletions(-)
+
+diff --git a/src/frontend/atak.cc b/src/frontend/atak.cc
+index ef19d87..640e150 100644
+--- a/src/frontend/atak.cc
++++ b/src/frontend/atak.cc
+@@ -37,7 +37,7 @@ short SqAtakd (short sq, short side)
+ *
+ **************************************************************************/
+ {
+- register BitBoard *a, b, *c, d, blocker;
++ BitBoard *a, b, *c, d, blocker;
+ int t;
+
+ a = board.b[side];
+@@ -89,7 +89,7 @@ BitBoard AttackTo (int sq, int side)
+ *
+ ***************************************************************************/
+ {
+- register BitBoard *a, b, *c, e, blocker;
++ BitBoard *a, b, *c, e, blocker;
+ int t;
+
+ a = board.b[side];
+diff --git a/src/frontend/lexpgn.cc b/src/frontend/lexpgn.cc
+index 475899d..971aa13 100644
+--- a/src/frontend/lexpgn.cc
++++ b/src/frontend/lexpgn.cc
+@@ -2431,9 +2431,9 @@ extern int yylex (void);
+ */
+ YY_DECL
+ {
+- register yy_state_type yy_current_state;
+- register char *yy_cp, *yy_bp;
+- register int yy_act;
++ yy_state_type yy_current_state;
++ char *yy_cp, *yy_bp;
++ int yy_act;
+
+ #line 153 "lexpgn.ll"
+
+@@ -3118,9 +3118,9 @@ case YY_STATE_EOF(RAV):
+ */
+ static int yy_get_next_buffer (void)
+ {
+- register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+- register char *source = (yytext_ptr);
+- register int number_to_move, i;
++ char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
++ char *source = (yytext_ptr);
++ int number_to_move, i;
+ int ret_val;
+
+ if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+@@ -3252,8 +3252,8 @@ static int yy_get_next_buffer (void)
+
+ static yy_state_type yy_get_previous_state (void)
+ {
+- register yy_state_type yy_current_state;
+- register char *yy_cp;
++ yy_state_type yy_current_state;
++ char *yy_cp;
+
+ yy_current_state = (yy_start);
+ yy_current_state += YY_AT_BOL();
+@@ -3278,8 +3278,8 @@ static int yy_get_next_buffer (void)
+ */
+ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
+ {
+- register int yy_is_jam;
+- register char *yy_cp = (yy_c_buf_p);
++ int yy_is_jam;
++ char *yy_cp = (yy_c_buf_p);
+
+ yy_current_state = yy_nxt[yy_current_state][1];
+ yy_is_jam = (yy_current_state <= 0);
+@@ -3296,9 +3296,9 @@ static int yy_get_next_buffer (void)
+ return yy_is_jam ? 0 : yy_current_state;
+ }
+
+- static void yyunput (int c, register char * yy_bp )
++ static void yyunput (int c, char * yy_bp )
+ {
+- register char *yy_cp;
++ char *yy_cp;
+
+ yy_cp = (yy_c_buf_p);
+
+@@ -3308,10 +3308,10 @@ static int yy_get_next_buffer (void)
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+- register yy_size_t number_to_move = (yy_n_chars) + 2;
+- register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
++ yy_size_t number_to_move = (yy_n_chars) + 2;
++ char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+- register char *source =
++ char *source =
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+
+ while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+@@ -3925,7 +3925,7 @@ int yylex_destroy (void)
+ #ifndef yytext_ptr
+ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+ {
+- register int i;
++ int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+ }
+@@ -3934,7 +3934,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+ #ifdef YY_NEED_STRLEN
+ static int yy_flex_strlen (yyconst char * s )
+ {
+- register int n;
++ int n;
+ for ( n = 0; s[n]; ++n )
+ ;
+
+diff --git a/src/frontend/util.cc b/src/frontend/util.cc
+index 5d3efe2..f7f7f1d 100644
+--- a/src/frontend/util.cc
++++ b/src/frontend/util.cc
+@@ -75,7 +75,7 @@ void UpdateFriends (void)
+ *
+ ***************************************************************************/
+ {
+- register BitBoard *w, *b;
++ BitBoard *w, *b;
+
+ w = board.b[white];
+ b = board.b[black];
+--
+2.39.1
+
diff --git a/meta-gnome/recipes-gnome/gnome-chess/gnuchess_6.2.9.bb b/meta-gnome/recipes-gnome/gnome-chess/gnuchess_6.2.9.bb
new file mode 100644
index 0000000000..78606b8a2a
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-chess/gnuchess_6.2.9.bb
@@ -0,0 +1,20 @@
+SUMMARY = "GNU Chess is a chess-playing program."
+HOMEPAGE = "http://www.gnu.org/software/chess/"
+LICENSE = "GPL-3.0-only"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "https://git.savannah.gnu.org/cgit/chess.git/snapshot/chess-${PV}.tar.gz \
+ file://0001-Remove-register-storage-class-classifier.patch"
+SRC_URI[sha256sum] = "03f9e844ccdd48d20ee49314174404f8b643d83bb8ce9ec9d2e6a21f1b6fb9f5"
+
+S = "${WORKDIR}/chess-${PV}"
+
+inherit autotools gettext
+
+do_configure:prepend() {
+ touch ${S}/ABOUT-NLS
+ touch ${S}/man/gnuchess.1
+}
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-gnome/recipes-gnome/gnome-commander/gnome-commander/0001-Build-fix-needed-with-taglib-2.0.patch b/meta-gnome/recipes-gnome/gnome-commander/gnome-commander/0001-Build-fix-needed-with-taglib-2.0.patch
new file mode 100644
index 0000000000..8f6920c2cc
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-commander/gnome-commander/0001-Build-fix-needed-with-taglib-2.0.patch
@@ -0,0 +1,37 @@
+From dc3aa0ff5a41114b17816f1f36f6bb5631c6ab5c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 7 Mar 2024 17:17:29 -0800
+Subject: [PATCH] Build fix needed with taglib 2.0
+
+Fixes
+| ../gnome-commander-1.16.1/src/tags/gnome-cmd-tags-taglib.cc:153:29: error: no member named 'sampleWidth' in 'TagLib::FLAC::Properties'
+| 153 | if (flacProperties->sampleWidth())
+| | ~~~~~~~~~~~~~~ ^
+| ../gnome-commander-1.16.1/src/tags/gnome-cmd-tags-taglib.cc:154:67: error: no member named 'sampleWidth' in 'TagLib::FLAC::Properties'
+| 154 | cout << "Audio.FLAC.SampleWidth " << flacProperties->sampleWidth()<< endl;
+| | ~~~~~~~~~~~~~~ ^
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/tags/gnome-cmd-tags-taglib.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/tags/gnome-cmd-tags-taglib.cc b/src/tags/gnome-cmd-tags-taglib.cc
+index 9e65836..573f5eb 100644
+--- a/src/tags/gnome-cmd-tags-taglib.cc
++++ b/src/tags/gnome-cmd-tags-taglib.cc
+@@ -150,8 +150,8 @@ bool getAudioProperties(GnomeCmdFileMetadata &metadata, const TagLib::AudioPrope
+ if (flacProperties)
+ {
+ metadata.add(TAG_AUDIO_CODEC,"FLAC");
+- if (flacProperties->sampleWidth())
+- cout << "Audio.FLAC.SampleWidth " << flacProperties->sampleWidth()<< endl;
++ if (flacProperties->bitsPerSample())
++ cout << "Audio.FLAC.BitsPerSample " << flacProperties->bitsPerSample()<< endl;
+
+ return true;
+ }
+--
+2.44.0
+
diff --git a/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.14.3.bb b/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.14.3.bb
deleted file mode 100644
index b16400cf38..0000000000
--- a/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.14.3.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "A light and fast file manager"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-DEPENDS = " \
- glib-2.0-native \
- gtk+ \
-"
-
-inherit gnomebase itstool gettext gnome-help features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-
-SRC_URI[archive.sha256sum] = "78d8dce70fb922b2909cf767783053b0811213a4d6a49b3875510cf3a84efd7b"
-
-PACKAGECONFIG ??= "exiv2 taglib libgsf poppler"
-PACKAGECONFIG[exiv2] = "--with-exiv2,--without-exiv2,exiv2"
-PACKAGECONFIG[taglib] = "--with-taglib,--without-taglib,taglib"
-PACKAGECONFIG[libgsf] = "--with-libgsf,--without-libgsf,libgsf"
-PACKAGECONFIG[poppler] = "--with-poppler,--without-poppler,poppler"
-
-FILES:${PN} += "${datadir}/metainfo"
-FILES:${PN}-dev += "${libdir}/${BPN}/lib*${SOLIBSDEV}"
diff --git a/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.16.1.bb b/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.16.1.bb
new file mode 100644
index 0000000000..bb36d59e56
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.16.1.bb
@@ -0,0 +1,31 @@
+SUMMARY = "A light and fast file manager"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+DEPENDS += " \
+ desktop-file-utils-native \
+ glib-2.0-native \
+ gtk+ \
+"
+
+CXXFLAGS += "-D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR"
+
+inherit gnomebase itstool gettext gnome-help features_check meson gtk-icon-cache mime-xdg
+ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
+SRC_URI += "file://0001-Build-fix-needed-with-taglib-2.0.patch"
+SRC_URI[archive.sha256sum] = "3f1d00c4a650fe7902167648286b32c9ca4ef86e31a5d8ccca0139f12d10d0b3"
+
+PACKAGECONFIG ??= "exiv2 taglib libgsf poppler"
+PACKAGECONFIG[exiv2] = "-Dexiv2=enabled,-Dexiv2=disabled,exiv2"
+PACKAGECONFIG[taglib] = "-Dtaglib=enabled,-Dtaglib=disabled,taglib"
+PACKAGECONFIG[libgsf] = "-Dlibgsf=enabled,-Dlibgsf=disabled,libgsf"
+PACKAGECONFIG[poppler] = "-Dpoppler=enabled,-Dpoppler=disabled,poppler"
+PACKAGECONFIG[samba] = "-Dsamba=enabled,-Dsamba=disabled,samba"
+PACKAGECONFIG[tests] = "-Dtests=enabled,-Dtests=disabled,"
+
+FILES:${PN} += "${datadir}/metainfo"
+FILES:${PN}-dev += "${libdir}/${BPN}/lib*${SOLIBSDEV}"
diff --git a/meta-gnome/recipes-gnome/gnome-console/gnome-console_45.0.bb b/meta-gnome/recipes-gnome/gnome-console/gnome-console_45.0.bb
new file mode 100644
index 0000000000..d03b5fe04d
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-console/gnome-console_45.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "GNOME Console"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
+
+GTKIC_VERSION = "4"
+inherit gnomebase gsettings pkgconfig gtk-icon-cache
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+DEPENDS = " \
+ desktop-file-utils-native \
+ gtk4-native \
+ glib-2.0 \
+ gsettings-desktop-schemas \
+ hicolor-icon-theme \
+ libadwaita \
+ libgtop \
+ pcre2 \
+ vte \
+"
+
+SRC_URI[archive.sha256sum] = "e7462128d2df2324a1d748062c40429cd0504af09e407067b33f3a9d0c59c8e1"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
+PACKAGECONFIG[devel] = "-Ddevel=true,-Ddevel=false"
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch
index 768ba54390..4ae923f876 100644
--- a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch
+++ b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch
@@ -1,45 +1,52 @@
-From ba8aebe1259ae3f7f5a4827e5a47bb95c568b218 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Tue, 21 May 2019 16:07:46 +0200
+From 1a48df2a8da44410bbd767c2420d363f6180c79a Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 18 Mar 2024 05:50:21 +0100
Subject: [PATCH] Add meson option to pass sysroot
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-We need to pass this to meson to help it finding gdesktop-enums.h:
-
-| panels/background/meson.build:38:0: ERROR: File /usr/include/gsettings-desktop-schemas/gdesktop-enums.h does not exist.
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
meson_options.txt | 1 +
panels/background/meson.build | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
+ panels/system/meson.build | 2 +-
+ 3 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/meson_options.txt b/meson_options.txt
-index dbca723..af0f871 100644
+index e53d6e3f3..8fae4c824 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,3 +1,4 @@
+option('oe_sysroot', type: 'string', value: '', description: 'Directory for OE-sysroot')
+ option('deprecated-declarations', type: 'feature', value: 'disabled', description: 'build with deprecated declaration warnings')
option('documentation', type: 'boolean', value: false, description: 'build documentation')
option('ibus', type: 'boolean', value: true, description: 'build with IBus support')
- option('privileged_group', type: 'string', value: 'wheel', description: 'name of group that has elevated permissions')
diff --git a/panels/background/meson.build b/panels/background/meson.build
-index 3634c47..459ccfe 100644
+index 6ced050f9..df1f80896 100644
--- a/panels/background/meson.build
+++ b/panels/background/meson.build
-@@ -25,7 +25,7 @@ common_sources = []
+@@ -24,7 +24,7 @@ common_sources += gnome.mkenums_simple(
enums = 'gdesktop-enums-types'
enums_header = files(
-- gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
-+ get_option('oe_sysroot') + gsettings_desktop_dep.get_pkgconfig_variable('prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
- 'cc-background-item.h'
+- gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h'
++ get_option('oe_sysroot') + gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h'
+ )
+
+ common_sources += gnome.mkenums(
+diff --git a/panels/system/meson.build b/panels/system/meson.build
+index 4fee82210..979332a0e 100644
+--- a/panels/system/meson.build
++++ b/panels/system/meson.build
+@@ -73,7 +73,7 @@ sources += gnome.compile_resources(
+ )
+
+ enums_header = files(
+- gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
++ get_option('oe_sysroot') + gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
+ 'datetime/cc-datetime-page.h'
)
--
-2.34.1
+2.44.0
diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_42.0.bb b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_42.0.bb
deleted file mode 100644
index 6fe999a191..0000000000
--- a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_42.0.bb
+++ /dev/null
@@ -1,61 +0,0 @@
-SUMMARY = "GNOME Settings"
-DESCRIPTION = "GNOME Settings is GNOME's main interface for configuration of various aspects of your desktop"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gettext vala upstream-version-is-even bash-completion features_check
-
-DEPENDS = " \
- gdk-pixbuf-native \
- colord-gtk \
- udisks2 \
- upower \
- polkit \
- pulseaudio \
- accountsservice \
- samba \
- gsettings-desktop-schemas \
- gnome-settings-daemon \
- gnome-desktop \
- gnome-online-accounts \
- libnma \
- gnome-bluetooth \
- grilo \
- libgtop \
- gsound \
- libpwquality \
- libadwaita \
-"
-
-REQUIRED_DISTRO_FEATURES += "polkit pulseaudio systemd x11"
-
-SRC_URI[archive.sha256sum] = "0732efa7c4171ce0a0ed4106580b4ce35a57b10152c0ea36d239134913777eda"
-SRC_URI += "file://0001-Add-meson-option-to-pass-sysroot.patch"
-
-PACKAGECONFIG ??= "ibus ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}"
-PACKAGECONFIG[ibus] = "-Dibus=true, -Dibus=false, ibus"
-PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false, wayland"
-
-EXTRA_OEMESON = " \
- -Doe_sysroot=${STAGING_DIR_HOST} \
-"
-
-do_install:append() {
- # If polkit is setup fixup permissions and ownership
- if [ -d ${D}${datadir}/polkit-1/rules.d ]; then
- chmod 700 ${D}${datadir}/polkit-1/rules.d
- chown polkitd:root ${D}${datadir}/polkit-1/rules.d
- fi
-}
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/gnome-shell \
- ${datadir}/metainfo \
-"
-
-FILES:${PN}-dev += "${datadir}/gettext"
-
-RDEPENDS:${PN} += "gsettings-desktop-schemas"
diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_46.0.1.bb b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_46.0.1.bb
new file mode 100644
index 0000000000..de11239ed5
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_46.0.1.bb
@@ -0,0 +1,75 @@
+SUMMARY = "GNOME Settings"
+DESCRIPTION = "GNOME Settings is GNOME's main interface for configuration of various aspects of your desktop"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+
+GTKIC_VERSION = "4"
+
+DEPENDS = " \
+ accountsservice \
+ colord-gtk \
+ gcr \
+ gdk-pixbuf \
+ glib-2.0 \
+ gnome-bluetooth \
+ gnome-desktop \
+ gnome-online-accounts \
+ gnome-settings-daemon \
+ gsettings-desktop-schemas \
+ gtk4 \
+ libadwaita \
+ libepoxy \
+ libgtop \
+ libgudev \
+ libnma \
+ libpwquality \
+ libxml2 \
+ polkit \
+ pulseaudio \
+ samba \
+ setxkbmap-native \
+ tecla \
+ udisks2 \
+ upower \
+"
+
+inherit gtk-icon-cache pkgconfig gnomebase gsettings gettext upstream-version-is-even bash-completion features_check useradd
+
+REQUIRED_DISTRO_FEATURES += "opengl polkit pulseaudio systemd x11"
+
+SRC_URI = "gitsm://gitlab.gnome.org/GNOME/gnome-control-center.git;protocol=https;nobranch=1"
+SRC_URI += "file://0001-Add-meson-option-to-pass-sysroot.patch"
+
+S = "${WORKDIR}/git"
+SRCREV = "005f40dcfa464f113a1c95f97673bc5505fc15ad"
+
+PACKAGECONFIG ??= "ibus ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}"
+PACKAGECONFIG[cups] = ",,cups,cups"
+PACKAGECONFIG[ibus] = "-Dibus=true, -Dibus=false, ibus"
+PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false, wayland"
+
+EXTRA_OEMESON += "-Doe_sysroot=${STAGING_DIR_HOST}"
+
+export XDG_DATA_DIRS = "${STAGING_DATADIR}"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd"
+
+do_install:append() {
+ if [ -d ${D}${datadir}/polkit-1/rules.d ]; then
+ chmod 700 ${D}${datadir}/polkit-1/rules.d
+ chown polkitd:root ${D}${datadir}/polkit-1/rules.d
+ fi
+}
+
+PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/gnome-shell \
+ ${datadir}/metainfo \
+"
+
+FILES:${PN}-dev += "${datadir}/gettext"
+
+RDEPENDS:${PN} += "gsettings-desktop-schemas tecla system-config-printer cups-pk-helper ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'gnome-user-share', '' , d)}"
diff --git a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson-Add-riscv32-to-seccomp-unsupported-list.patch b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson-Add-riscv32-to-seccomp-unsupported-list.patch
new file mode 100644
index 0000000000..65e06dafcb
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson-Add-riscv32-to-seccomp-unsupported-list.patch
@@ -0,0 +1,29 @@
+From 6937685426aff8059b68b2941a0fe549eca21ce5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 3 Mar 2023 23:04:56 -0800
+Subject: [PATCH] meson: Add riscv32 to seccomp unsupported list
+
+rv32 needs to upstream the libseccomp support
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 6a888b8..a87c419 100644
+--- a/meson.build
++++ b/meson.build
+@@ -65,7 +65,7 @@ udev_dep = dependency('libudev', required: get_option('udev'))
+ host_os = host_machine.system()
+ host_cpu = host_machine.cpu()
+ supported_os = ['linux']
+-unsupported_cpus = ['alpha', 'ia64', 'm68k', 'sh4', 'sparc', 'sparc64']
++unsupported_cpus = ['alpha', 'ia64', 'm68k', 'riscv32', 'sh4', 'sparc', 'sparc64']
+ if supported_os.contains(host_os) and not unsupported_cpus.contains(host_cpu)
+ seccomp_dep = dependency('libseccomp')
+ else
+--
+2.39.2
+
diff --git a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch
deleted file mode 100644
index 8ae1d82b6a..0000000000
--- a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-meson.build-Disable-libseccomp-for-all-archs.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From de0d33b068a5d8e61cc0c82d88d15b9a8aa97977 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Sat, 6 Apr 2019 18:07:17 +0200
-Subject: [PATCH] meson.build: Disable libseccomp for all archs
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It does not seem mandatory and can cause unsatisfied dependency [1].
-
-[1] https://errors.yoctoproject.org/Errors/Details/235565/
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- meson.build | 7 +------
- 1 file changed, 1 insertion(+), 6 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 1dc8a73..87d72fe 100644
---- a/meson.build
-+++ b/meson.build
-@@ -65,12 +65,7 @@ udev_dep = dependency('libudev', required: get_option('udev'))
- host_os = host_machine.system()
- host_cpu = host_machine.cpu()
- supported_os = ['linux']
--unsupported_cpus = ['alpha', 'ia64', 'm68k', 'sh4', 'sparc', 'sparc64']
--if supported_os.contains(host_os) and not unsupported_cpus.contains(host_cpu)
-- seccomp_dep = dependency('libseccomp')
--else
-- seccomp_dep = dependency('', required: false)
--endif
-+seccomp_dep = dependency('', required: false)
-
- fontconfig_cache_path = fontconfig_dep.get_variable(pkgconfig: 'cachedir')
- xkb_base = xkb_config_dep.get_variable(pkgconfig: 'xkb_base')
---
-2.34.1
-
diff --git a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_42.0.bb b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_42.0.bb
deleted file mode 100644
index aae927a70b..0000000000
--- a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_42.0.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-SUMMARY = "GNOME library for reading .desktop files"
-SECTION = "x11/gnome"
-LICENSE = "GPL-2.0-only & LGPL-2.0-only"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase itstool pkgconfig upstream-version-is-even gobject-introspection features_check gtk-doc
-
-REQUIRED_DISTRO_FEATURES = "x11"
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
-
-GIR_MESON_OPTION = ""
-
-SRC_URI[archive.sha256sum] = "f3caa293a5e86f6ccad18f817273db1c67061e680d79d839aa8a7528e5bb26d6"
-SRC_URI += " \
- file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \
- file://0001-meson.build-Disable-libseccomp-for-all-archs.patch \
-"
-
-DEPENDS += " \
- gsettings-desktop-schemas \
- virtual/libx11 \
- gtk+3 \
- gtk4 \
- startup-notification \
- xkeyboard-config \
- iso-codes \
- udev \
-"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-EXTRA_OEMESON = "-Ddesktop_docs=false"
-
-PACKAGES =+ "libgnome-desktop"
-RDEPENDS:${PN} += "libgnome-desktop"
-FILES:libgnome-desktop = " \
- ${libdir}/lib*${SOLIBS} \
- ${datadir}/libgnome-desktop*/pnp.ids \
- ${datadir}/gnome/*xml \
-"
-
-RRECOMMENDS:libgnome-desktop += "gsettings-desktop-schemas"
diff --git a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_44.0.bb b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_44.0.bb
new file mode 100644
index 0000000000..19bae74ce2
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_44.0.bb
@@ -0,0 +1,48 @@
+SUMMARY = "GNOME library for reading .desktop files"
+SECTION = "x11/gnome"
+LICENSE = "GPL-2.0-only & LGPL-2.0-only"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+"
+
+
+inherit gnomebase itstool pkgconfig upstream-version-is-even gobject-introspection features_check gtk-doc
+
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
+
+GIR_MESON_OPTION = ""
+
+SRC_URI += "file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \
+ file://0001-meson-Add-riscv32-to-seccomp-unsupported-list.patch"
+SRC_URI[archive.sha256sum] = "42c773745d84ba14bc1cf1c4c6f4606148803a5cd337941c63964795f3c59d42"
+
+DEPENDS += " \
+ fontconfig \
+ gdk-pixbuf \
+ glib-2.0 \
+ gsettings-desktop-schemas \
+ gtk+3 \
+ gtk4 \
+ iso-codes \
+ xext \
+ libseccomp \
+ libxkbcommon \
+ xkeyboard-config \
+ xrandr \
+"
+
+DEPENDS:remove:riscv32 = "libseccomp"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+EXTRA_OEMESON = "-Ddesktop_docs=false"
+
+PACKAGES =+ "libgnome-desktop"
+RDEPENDS:${PN} += "libgnome-desktop"
+FILES:libgnome-desktop = " \
+ ${libdir}/lib*${SOLIBS} \
+ ${datadir}/libgnome-desktop*/pnp.ids \
+ ${datadir}/gnome/*xml \
+"
+
+RRECOMMENDS:libgnome-desktop += "gsettings-desktop-schemas"
diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_42.0.bb b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_42.0.bb
deleted file mode 100644
index c3789b0c1a..0000000000
--- a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_42.0.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "GNOME disk utility"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SECTION = "x11/gnome"
-
-DEPENDS = " \
- gtk+3 \
- libdvdread \
- libnotify \
- libsecret \
- libpwquality \
- udisks2 \
- libhandy \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gtk-icon-cache gettext features_check mime-xdg
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-REQUIRED_DISTRO_FEATURES = "polkit"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)}"
-
-# As soon as elogind is of interest this needs rework: meson option is combo
-PACKAGECONFIG[systemd] = "-Dlogind=libsystemd,-Dlogind=none,systemd"
-PACKAGECONFIG[x11] = ",,libcanberra"
-
-SRC_URI:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'file://0001-gnome-disk-utility-remove-libcanberra-dependency.patch', '', d)}"
-SRC_URI[archive.sha256sum] = "1b6564454d67426322cb3bfc5a5558653bfc7dfeea2ae0825b1d08629f01090b"
-
-EXTRA_OEMESON = "-Dman=false"
-
-FILES:${PN} += " \
- ${datadir}/metainfo \
- ${datadir}/dbus-1 \
-"
diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_46.0.bb b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_46.0.bb
new file mode 100644
index 0000000000..e4998f6276
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_46.0.bb
@@ -0,0 +1,41 @@
+SUMMARY = "GNOME disk utility"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SECTION = "x11/gnome"
+
+DEPENDS = " \
+ desktop-file-utils-native \
+ gtk+3 \
+ libdvdread \
+ libnotify \
+ libsecret \
+ libpwquality \
+ udisks2 \
+ libhandy \
+ xz \
+"
+
+
+inherit gnomebase gsettings gtk-icon-cache gettext features_check mime-xdg
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)}"
+
+# As soon as elogind is of interest this needs rework: meson option is combo
+PACKAGECONFIG[systemd] = "-Dlogind=libsystemd,-Dlogind=none,systemd"
+PACKAGECONFIG[x11] = ",,libcanberra"
+
+SRC_URI:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'file://0001-gnome-disk-utility-remove-libcanberra-dependency.patch', '', d)}"
+SRC_URI[archive.sha256sum] = "464649148c6d6771f1ac2ebfe43a4e519205b11c2d914a09f2a001821d06957d"
+
+EXTRA_OEMESON = "-Dman=false"
+
+PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
+
+FILES:${PN} += " \
+ ${datadir}/metainfo \
+ ${datadir}/dbus-1 \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.44.0.bb b/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.44.0.bb
deleted file mode 100644
index 1e357af875..0000000000
--- a/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.44.0.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "GNOME Flashback (GNOME 2) session"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-inherit gnomebase gsettings gtk-icon-cache gettext upstream-version-is-even features_check
-
-REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
-
-DEPENDS += " \
- upower \
- ibus \
- libxkbfile \
- polkit \
- metacity \
- gdm \
- gnome-desktop \
- gnome-bluetooth3 \
- gnome-panel \
-"
-
-SRC_URI[archive.sha256sum] = "1df0838127c6246eecd89d1c50ff88fc82abf6de3b3068e52dde495a42bd550a"
-
-do_install:append() {
- # no oe-layer has compiz -> remove dead session
- rm -f ${D}${datadir}/xsessions/gnome-flashback-compiz.desktop
-}
-
-FILES:${PN} += " \
- ${datadir}/desktop-directories \
- ${datadir}/gnome-control-center \
- ${datadir}/gnome-panel \
- ${datadir}/gnome-session \
- ${datadir}/xsessions \
- ${libdir}/gnome-panel \
- ${systemd_user_unitdir} \
-"
-
-RDEPENDS:${PN} += "metacity"
diff --git a/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.46.0.bb b/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.46.0.bb
new file mode 100644
index 0000000000..cf1122714f
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.46.0.bb
@@ -0,0 +1,39 @@
+SUMMARY = "GNOME Flashback (GNOME 2) session"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase gsettings gtk-icon-cache gettext upstream-version-is-even features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
+
+DEPENDS += " \
+ upower \
+ ibus \
+ libxkbfile \
+ polkit \
+ metacity \
+ gdm \
+ gnome-desktop \
+ gnome-bluetooth \
+ gnome-panel \
+"
+
+SRC_URI[archive.sha256sum] = "7a8d5c03310e4dfadd18a65e00a37741032afeea5418dd6804a975c4b0980045"
+
+do_install:append() {
+ # no oe-layer has compiz -> remove dead session
+ rm -f ${D}${datadir}/xsessions/gnome-flashback-compiz.desktop
+}
+
+FILES:${PN} += " \
+ ${datadir}/desktop-directories \
+ ${datadir}/gnome-control-center \
+ ${datadir}/gnome-panel \
+ ${datadir}/gnome-session \
+ ${datadir}/xsessions \
+ ${libdir}/gnome-panel \
+ ${systemd_user_unitdir} \
+"
+
+RDEPENDS:${PN} += "metacity"
diff --git a/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_43.0.bb b/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_43.0.bb
deleted file mode 100644
index 50fd034af5..0000000000
--- a/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_43.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "GNOME font viewer"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SECTION = "x11/gnome"
-
-DEPENDS = " \
- gtk4 \
- gnome-desktop \
- libadwaita \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gtk-icon-cache gettext features_check mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.sha256sum] = "81c6bffb06d5332346e00eaecaec1bdcfd617c51dfd95bcd058d6c76c76dd2b9"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/metainfo \
- ${datadir}/thumbnailers \
-"
diff --git a/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_46.0.bb b/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_46.0.bb
new file mode 100644
index 0000000000..dbce71d121
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_46.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "GNOME font viewer"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SECTION = "x11/gnome"
+
+DEPENDS = " \
+ gtk4 \
+ gnome-desktop \
+ libadwaita \
+"
+
+
+inherit gnomebase gtk-icon-cache gettext features_check mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
+
+SRC_URI[archive.sha256sum] = "592f401e485d02cc044d487bb5c8e04c961da6856216768a59f1ff98bd2d537c"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${datadir}/thumbnailers \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch
index 32eecf8fb7..c3c3050924 100644
--- a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch
+++ b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch
@@ -1,4 +1,4 @@
-From e6464e01bc1cdf5496be2942d1bac41aa609f47e Mon Sep 17 00:00:00 2001
+From 647f3d946ec3fe4800b2bec89371f85a1a4b15cf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Thu, 23 May 2019 23:44:06 +0200
Subject: [PATCH] Set paths to ssh-agent and ssh-add by configure options
@@ -11,15 +11,16 @@ We have no executables in our sysroot so configuration won't find them.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
---
configure.ac | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 4b83664..eda0c96 100644
+index f4f793c..5194e5d 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -351,8 +351,15 @@ if test "$enable_ssh_agent" = "no"; then
+@@ -356,8 +356,15 @@ if test "$enable_ssh_agent" = "no"; then
SSH_AGENT=false
SSH_ADD=false
else
@@ -37,6 +38,3 @@ index 4b83664..eda0c96 100644
if test "$SSH_AGENT" = "no" -o "$SSH_ADD" = "no"; then
AC_MSG_ERROR([the ssh-agent and ssh-add commands were not found])
else
---
-2.20.1
-
diff --git a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_42.1.bb b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_42.1.bb
deleted file mode 100644
index 5937e74423..0000000000
--- a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_42.1.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-SUMMARY = "Password and keyring managing daemon"
-HOMEPAGE = "http://www.gnome.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-SECTION = "x11/gnome"
-
-LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later & LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
-
-DEPENDS = " \
- glib-2.0-native \
- gtk+3 \
- gcr \
- libgcrypt \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \
-"
-
-inherit gnomebase gsettings features_check gettext
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[archive.sha256sum] = "c7f4d040cc76a6b7fe67e08ef9106911c3c80d40fc88cbfc8e2684a4c946e3e6"
-SRC_URI += " \
- file://0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch \
- file://musl.patch \
-"
-
-PACKAGECONFIG ??= "ssh-agent"
-PACKAGECONFIG[ssh-agent] = "--enable-ssh-agent --with-ssh-agent-path=${bindir}/ssh-agent --with-ssh-add-path=${bindir}/ssh-add,--disable-ssh-agent,,openssh-misc"
-
-EXTRA_OECONF = " \
- --disable-doc \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam --with-pam-dir=${base_libdir}/security', '--disable-pam', d)} \
-"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1/services \
- ${datadir}/p11-kit \
- ${datadir}/xdg-desktop-portal \
- ${base_libdir}/security/*${SOLIBSDEV} \
- ${libdir}/pkcs11/gnome-keyring-pkcs11.so \
- ${systemd_user_unitdir} \
-"
-# fix | gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
-pkg_postinst:${PN} () {
- setcap cap_ipc_lock+ep $D/${bindir}/gnome-keyring-daemon
-}
-PACKAGE_WRITE_DEPS += "libcap-native"
diff --git a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_46.1.bb b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_46.1.bb
new file mode 100644
index 0000000000..8df3710e6a
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_46.1.bb
@@ -0,0 +1,51 @@
+SUMMARY = "Password and keyring managing daemon"
+HOMEPAGE = "http://www.gnome.org/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+SECTION = "x11/gnome"
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+"
+
+DEPENDS = " \
+ glib-2.0-native \
+ gtk+3 \
+ gcr3 \
+ libgcrypt \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \
+"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase gsettings features_check gettext
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI[archive.sha256sum] = "b1d3ae9132ff2f8b3f25a190790892968e3d0acf952a487e40f644a8550ce3f6"
+SRC_URI += " \
+ file://0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch \
+ file://musl.patch \
+"
+
+PACKAGECONFIG ??= "ssh-agent"
+PACKAGECONFIG[ssh-agent] = "--enable-ssh-agent --with-ssh-agent-path=${bindir}/ssh-agent --with-ssh-add-path=${bindir}/ssh-add,--disable-ssh-agent,,openssh-misc"
+
+EXTRA_OECONF = " \
+ --disable-doc \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam --with-pam-dir=${base_libdir}/security', '--disable-pam', d)} \
+"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1/services \
+ ${datadir}/p11-kit \
+ ${datadir}/xdg-desktop-portal \
+ ${base_libdir}/security/*${SOLIBSDEV} \
+ ${libdir}/pkcs11/gnome-keyring-pkcs11.so \
+ ${systemd_user_unitdir} \
+"
+# fix | gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used
+pkg_postinst:${PN} () {
+ setcap cap_ipc_lock+ep $D/${bindir}/gnome-keyring-daemon
+}
+PACKAGE_WRITE_DEPS += "libcap-native"
diff --git a/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_3.36.0.bb b/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_3.36.0.bb
index dbc6e962eb..47b6733e48 100644
--- a/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_3.36.0.bb
+++ b/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_3.36.0.bb
@@ -4,11 +4,10 @@ LICENSE = "GPL-2.0-only & LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-DEPENDS = "python3 libxml2 popt gtk+3 gnome-common-native"
+DEPENDS = "glib-2.0"
-inherit features_check gnomebase gettext pkgconfig gobject-introspection upstream-version-is-even
-
-REQUIRED_DISTRO_FEATURES = "x11"
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase gettext pkgconfig gobject-introspection upstream-version-is-even
SRC_URI[archive.md5sum] = "a8fd71fcf31a87fc799d80396a526829"
SRC_URI[archive.sha256sum] = "d9348f38bde956fc32753b28c1cde19c175bfdbf1f4d5b06003b3aa09153bb1f"
diff --git a/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Update-to-rest-1.0.patch b/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Update-to-rest-1.0.patch
deleted file mode 100644
index 4a47fb2dbe..0000000000
--- a/meta-gnome/recipes-gnome/gnome-online-accounts/files/0001-Update-to-rest-1.0.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-From 3c4a6eda580c6e38aeedb63d73ae7b96cc7f9a07 Mon Sep 17 00:00:00 2001
-From: Carlos Garcia Campos <cgarcia@igalia.com>
-Date: Mon, 7 Jun 2021 16:31:18 +0200
-Subject: [PATCH] Update to rest 1.0
-
-Updates to use the rest 1.0 API
-
-Upstream-Status: Inappropriate [rest 1.0 is not released yet]
-
-Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
----
- configure.ac | 2 +-
- src/goabackend/goalastfmprovider.c | 26 +++++++++++++-------------
- src/goabackend/goaoauthprovider.c | 17 +++++++++++------
- src/goabackend/goarestproxy.h | 2 --
- 4 files changed, 25 insertions(+), 22 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 1f88bbd..e43303d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -129,7 +129,7 @@ if test "$enable_backend" != "no"; then
- AC_SUBST(JSON_GLIB_CFLAGS)
- AC_SUBST(JSON_GLIB_LIBS)
-
-- PKG_CHECK_MODULES(REST, [rest-0.7])
-+ PKG_CHECK_MODULES(REST, [rest-1.0])
- AC_SUBST(REST_CFLAGS)
- AC_SUBST(REST_LIBS)
-
-diff --git a/src/goabackend/goalastfmprovider.c b/src/goabackend/goalastfmprovider.c
-index cb9a6f2..a2db037 100644
---- a/src/goabackend/goalastfmprovider.c
-+++ b/src/goabackend/goalastfmprovider.c
-@@ -483,18 +483,18 @@ add_account_cb (GoaManager *manager, GAsyncResult *res, gpointer user_data)
-
- static void
- check_cb (RestProxyCall *call,
-- const GError *error,
-- GObject *weak_object,
-+ GAsyncResult *result,
- gpointer user_data)
- {
- AddAccountData *data = user_data;
- JsonNode *session;
-- JsonParser *parser;
-+ JsonParser *parser = NULL;
- JsonObject *json_obj;
- JsonObject *session_obj;
- const gchar *payload;
-
-- parser = NULL;
-+ if (!rest_proxy_call_invoke_finish (call, result, &data->error))
-+ goto out;
-
- parser = json_parser_new ();
- payload = rest_proxy_call_get_payload (call);
-@@ -562,12 +562,12 @@ on_rest_proxy_call_cancelled_cb (GCancellable *cancellable, RestProxyCall *call)
- }
-
- static void
--lastfm_login (GoaProvider *provider,
-- const gchar *username,
-- const gchar *password,
-- GCancellable *cancellable,
-- RestProxyCallAsyncCallback callback,
-- gpointer user_data)
-+lastfm_login (GoaProvider *provider,
-+ const gchar *username,
-+ const gchar *password,
-+ GCancellable *cancellable,
-+ GAsyncReadyCallback callback,
-+ gpointer user_data)
- {
- AddAccountData *data = user_data;
- RestProxyCall *call;
-@@ -598,7 +598,7 @@ lastfm_login (GoaProvider *provider,
- rest_proxy_call_add_param (call, "api_sig", sig_md5);
- rest_proxy_call_add_param (call, "format", "json");
-
-- rest_proxy_call_async (call, callback, NULL, data, &data->error);
-+ rest_proxy_call_invoke_async (call, NULL, callback, data);
-
- g_signal_connect (cancellable, "cancelled", G_CALLBACK (on_rest_proxy_call_cancelled_cb), call);
-
-@@ -665,7 +665,7 @@ add_account (GoaProvider *provider,
- username,
- password,
- data.cancellable,
-- (RestProxyCallAsyncCallback) check_cb,
-+ (GAsyncReadyCallback) check_cb,
- &data);
-
- gtk_widget_set_sensitive (data.connect_button, FALSE);
-@@ -819,7 +819,7 @@ refresh_account (GoaProvider *provider,
- username,
- password,
- data.cancellable,
-- (RestProxyCallAsyncCallback) check_cb,
-+ (GAsyncReadyCallback) check_cb,
- &data);
- gtk_widget_set_sensitive (data.connect_button, FALSE);
- gtk_widget_show (data.progress_grid);
-diff --git a/src/goabackend/goaoauthprovider.c b/src/goabackend/goaoauthprovider.c
-index 0bfab6b..6a69251 100644
---- a/src/goabackend/goaoauthprovider.c
-+++ b/src/goabackend/goaoauthprovider.c
-@@ -699,9 +699,15 @@ on_web_view_decide_policy (WebKitWebView *web_view,
- }
-
- static void
--rest_proxy_call_cb (RestProxyCall *call, const GError *error, GObject *weak_object, gpointer user_data)
-+rest_proxy_call_cb (GObject *source, GAsyncResult *result, gpointer user_data)
- {
-+ RestProxyCall *call = REST_PROXY_CALL (source);
- IdentifyData *data = user_data;
-+
-+ if (!rest_proxy_call_invoke_finish (call, result, &data->error))
-+ {
-+ g_prefix_error (&data->error, _("Error getting a Request Token: "));
-+ }
- g_main_loop_quit (data->loop);
- }
-
-@@ -768,11 +774,7 @@ get_tokens_and_identity (GoaOAuthProvider *provider,
- for (n = 0; request_params[n] != NULL; n += 2)
- rest_proxy_call_add_param (call, request_params[n], request_params[n+1]);
- }
-- if (!rest_proxy_call_async (call, rest_proxy_call_cb, NULL, &data, &data.error))
-- {
-- g_prefix_error (&data.error, _("Error getting a Request Token: "));
-- goto out;
-- }
-+ rest_proxy_call_invoke_async (call, NULL, rest_proxy_call_cb, &data);
-
- goa_utils_set_dialog_title (GOA_PROVIDER (provider), dialog, add_account);
-
-@@ -794,6 +796,9 @@ get_tokens_and_identity (GoaOAuthProvider *provider,
- g_main_loop_run (data.loop);
- gtk_container_remove (GTK_CONTAINER (grid), spinner);
-
-+ if (data.error)
-+ goto out;
-+
- if (rest_proxy_call_get_status_code (call) != 200)
- {
- gchar *msg;
-diff --git a/src/goabackend/goarestproxy.h b/src/goabackend/goarestproxy.h
-index 09fb076..4948cb7 100644
---- a/src/goabackend/goarestproxy.h
-+++ b/src/goabackend/goarestproxy.h
-@@ -27,8 +27,6 @@
-
- G_BEGIN_DECLS
-
--G_DEFINE_AUTOPTR_CLEANUP_FUNC (RestProxy, g_object_unref);
--
- #define GOA_TYPE_REST_PROXY (goa_rest_proxy_get_type ())
- G_DECLARE_FINAL_TYPE (GoaRestProxy, goa_rest_proxy, GOA, REST_PROXY, RestProxy);
-
diff --git a/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.44.0.bb b/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.44.0.bb
deleted file mode 100644
index 451670e64f..0000000000
--- a/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.44.0.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "GNOME Online Accounts - Single sign-on framework for GNOME"
-LICENSE = "LGPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=34c88b124db5fb2762c1676be7dadd36"
-
-GNOMEBASEBUILDCLASS = "autotools"
-
-inherit gnomebase gsettings gobject-introspection gsettings gtk-doc vala gettext features_check
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-DEPENDS = "glib-2.0"
-
-SRC_URI += "file://0001-Update-to-rest-1.0.patch"
-SRC_URI[archive.sha256sum] = "381d5d4106f435b6f87786aa049be784774e15996adcc02789807afc87ea7342"
-
-# backend is required for gnome-control-center
-PACKAGECONFIG = "backend other"
-
-PACKAGECONFIG[backend] = "--enable-backend,--disable-backend,gtk+3 webkitgtk libsoup-2.4 json-glib libsecret rest libxml2"
-PACKAGECONFIG[krb5] = "--enable-kerberos, --disable-kerberos , krb5 gcr"
-
-# no extra dependencies!
-PACKAGECONFIG[other] = " \
- --enable-facebook --enable-foursquare --enable-exchange --enable-flickr --enable-google --enable-imap-smtp --enable-owncloud --enable-windows-live,\
- --disable-facebook --disable-foursquare --disable-exchange --disable-flickr --disable-google --disable-imap-smtp --disable-owncloud --disable-windows-live, \
-"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${libdir}/goa-1.0/web-extensions/*.so \
-"
-
-# looked into pkg-config file: it is not a bug - they mean it
-FILES:${PN}-dev += "${libdir}/goa-1.0/include"
diff --git a/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.50.0.bb b/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.50.0.bb
new file mode 100644
index 0000000000..d28cc876d6
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.50.0.bb
@@ -0,0 +1,28 @@
+SUMMARY = "GNOME Online Accounts - Single sign-on framework for GNOME"
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=34c88b124db5fb2762c1676be7dadd36"
+
+GTKIC_VERSION = "4"
+inherit gnomebase gsettings gobject-introspection gtk-icon-cache mime-xdg vala features_check
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'goabackend', 'opengl', '', d)}"
+
+DEPENDS += "gdk-pixbuf dbus glib-2.0 gcr"
+
+SRC_URI[archive.sha256sum] = "b0f64f0dcfbb8885a3a759e1c9de7fb204adb3ce6bd32c30bcf52d5533c06d4e"
+
+PACKAGECONFIG ?= "goabackend kerberos owncloud google windows_live"
+
+PACKAGECONFIG[goabackend] = "-Dgoabackend=true,-Dgoabackend=false,gtk4 libadwaita json-glib libxml2 libsoup rest libsecret webkitgtk"
+PACKAGECONFIG[kerberos] = "-Dkerberos=true, -Dkerberos=false,krb5"
+PACKAGECONFIG[exchange] = "-Dexchange=true, -Dexchange=false"
+PACKAGECONFIG[google] = "-Dgoogle=true, -Dgoogle=false"
+PACKAGECONFIG[owncloud] = "-Downcloud=true, -Downcloud=false"
+PACKAGECONFIG[windows_live] = "-Dwindows_live=true, -Dwindows_live=false"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${libdir}/goa-1.0/web-extensions/*.so \
+"
+
+# looked into pkg-config file: it is not a bug - they mean it
+FILES:${PN}-dev += "${libdir}/goa-1.0/include"
diff --git a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.44.0.bb b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.44.0.bb
deleted file mode 100644
index 67bdf58f81..0000000000
--- a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.44.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "GNOME flashback panel"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit gnomebase gsettings itstool gnome-help gtk-icon-cache gtk-doc gettext upstream-version-is-even features_check
-
-REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
-
-DEPENDS += " \
- yelp-tools-native \
- libwnck3 \
- polkit \
- dconf \
- libgweather4 \
- gnome-menus \
- gnome-desktop \
- gdm \
-"
-
-SRC_URI[archive.sha256sum] = "99655f75d031876c130ed23c4da22c099e7bcc4048b0255a3c3a3bbc787b31aa"
-
-PACKAGECONFIG[eds] = "--enable-eds,--disable-eds,evolution-data-server"
-
-RDEPENDS:${PN} += "gdm-base"
diff --git a/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.47.1.bb b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.47.1.bb
new file mode 100644
index 0000000000..02a8b01b26
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.47.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "GNOME flashback panel"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase gsettings itstool gnome-help gtk-icon-cache gettext upstream-version-is-even features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
+
+DEPENDS += " \
+ yelp-tools-native \
+ libwnck3 \
+ polkit \
+ dconf \
+ libgweather4 \
+ gnome-menus \
+ gnome-desktop \
+ gdm \
+"
+
+SRC_URI[archive.sha256sum] = "d8f6e2c659668c77df82c3dd95ba04fcef8c40c228e2c22605f9a17a9161ec83"
+
+PACKAGECONFIG[eds] = "--enable-eds,--disable-eds,evolution-data-server"
+
+RDEPENDS:${PN} += "gdm-base"
diff --git a/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_42.0.bb b/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_42.0.bb
deleted file mode 100644
index 5af3088e3a..0000000000
--- a/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_42.0.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Access, organize and share your photos on GNOME"
-SECTION = "x11/gnome"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
-
-DEPENDS = " \
- glib-2.0-native \
- gdk-pixbuf-native \
- librsvg-native \
- gtk+3 \
- babl \
- gegl \
- geocode-glib \
- gnome-online-accounts \
- grilo \
- gsettings-desktop-schemas \
- libdazzle \
- libgdata \
- gfbgraph \
- tracker \
- libhandy \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gettext gnome-help features_check
-
-def gnome_verdir(v):
- return oe.utils.trim_version(v, 1)
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.sha256sum] = "25cb281425199dec7b045f13f32f8f96034cb0cb8b94d96f9dffaf4f5be68551"
-
-do_install:append() {
- # make gnome-photos available on all desktops
- sed -i 's:OnlyShowIn=:#OnlyShowIn=:g' ${D}${datadir}/applications/org.gnome.Photos.desktop
-}
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/metainfo \
- ${datadir}/gnome-shell \
-"
-
-RRECOMMENDS:${PN} = "grilo-plugins"
diff --git a/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_44.0.bb b/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_44.0.bb
new file mode 100644
index 0000000000..4b05e52ca0
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_44.0.bb
@@ -0,0 +1,59 @@
+SUMMARY = "Access, organize and share your photos on GNOME"
+SECTION = "x11/gnome"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+DEPENDS = " \
+ cairo \
+ glib-2.0-native \
+ gdk-pixbuf-native \
+ librsvg-native \
+ gtk+3 \
+ babl \
+ dbus \
+ gegl \
+ geocode-glib \
+ gexiv2 \
+ gnome-online-accounts \
+ gsettings-desktop-schemas \
+ libdazzle \
+ tracker \
+ libhandy \
+ libportal \
+"
+
+RDEPENDS:${PN} = "tracker-miners"
+
+
+inherit gnomebase gettext gnome-help features_check
+
+def gnome_verdir(v):
+ return oe.utils.trim_version(v, 1)
+
+REQUIRED_DISTRO_FEATURES = "x11 opengl gobject-introspection-data"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[doc] = "-Dmanuals=true,-Dmanuals=false,libxslt-native docbook-xsl-stylesheets-native"
+
+SRC_URI[archive.sha256sum] = "e78e210397d3c62809c6cd5521da6eccb4a11ddea5bf2af8632a47f4da5c829e"
+
+do_install:append() {
+ # make gnome-photos available on all desktops
+ sed -i 's:OnlyShowIn=:#OnlyShowIn=:g' ${D}${datadir}/applications/org.gnome.Photos.desktop
+}
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${datadir}/gnome-shell \
+"
+
+do_compile:append() {
+ # glib-mkenums is embedding full paths into this file. There's no
+ # option to it to use a sysroot style variable. So to avoid QA
+ # errors, we sed WORKDIR out and make its includes relative
+ sed -i "s|${B}||" src/photos-enums.h
+ sed -i "s|${B}||" src/photos-enums.c
+ sed -i "s|${B}||" src/photos-enums-gegl.c
+ sed -i "s|${B}||" src/photos-enums-gegl.h
+}
diff --git a/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_41.0.bb b/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_41.0.bb
index fa7e161e9e..4f82492e61 100644
--- a/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_41.0.bb
+++ b/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_41.0.bb
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
SECTION = "x11/gnome"
-GNOMEBASEBUILDCLASS = "meson"
-
inherit features_check gnomebase gettext upstream-version-is-even pkgconfig
SRC_URI += " file://0001-meson-remove-extraneous-positional-argument.patch"
diff --git a/meta-gnome/recipes-gnome/gnome-session/gnome-session_42.0.bb b/meta-gnome/recipes-gnome/gnome-session/gnome-session_42.0.bb
deleted file mode 100644
index 9407c25a55..0000000000
--- a/meta-gnome/recipes-gnome/gnome-session/gnome-session_42.0.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "GNOME session"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = " \
- glib-2.0-native \
- libxslt-native \
- xmlto-native \
- xtrans \
- libice \
- libsm \
- virtual/libx11 \
- gtk+3 \
- gnome-desktop \
- gsettings-desktop-schemas \
- json-glib \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gettext gsettings upstream-version-is-even features_check
-
-REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data"
-
-SRC_URI[archive.sha256sum] = "3cca06053ab682926920951a7da95f8cc6d72da74c682c46d0a0653332969caa"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit',d)}"
-
-PACKAGECONFIG[consolekit] = "-Dconsolekit=true, -Dconsolekit=false, consolekit"
-PACKAGECONFIG[systemd] = "-Dsystemd=true -Dsystemd_journal=true, -Dsystemd=false -Dsystemd_journal=false, systemd"
-
-FILES:${PN} += " \
- ${datadir}/xsessions \
- ${datadir}/wayland-sessions \
- ${systemd_user_unitdir} \
-"
-
-RDEPENDS:${PN} += "gnome-shell gnome-settings-daemon gsettings-desktop-schemas"
diff --git a/meta-gnome/recipes-gnome/gnome-session/gnome-session_46.0.bb b/meta-gnome/recipes-gnome/gnome-session/gnome-session_46.0.bb
new file mode 100644
index 0000000000..94e639456f
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-session/gnome-session_46.0.bb
@@ -0,0 +1,34 @@
+SUMMARY = "GNOME session"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = " \
+ glib-2.0-native \
+ xtrans \
+ libice \
+ libsm \
+ virtual/libx11 \
+ gtk+3 \
+ gnome-desktop \
+ json-glib \
+ systemd \
+"
+
+
+inherit gnomebase gettext gsettings upstream-version-is-even features_check
+
+REQUIRED_DISTRO_FEATURES = "polkit systemd pam gobject-introspection-data"
+
+SRC_URI[archive.sha256sum] = "c6e1624af6090bc4e1a191fe2268abfa7a8de07831ca7a57f217e679bf7b9a54"
+
+PACKAGECONFIG ??= ""
+
+PACKAGECONFIG[docbook] = "-Ddocbook=true, -Ddocbook=false"
+PACKAGECONFIG[man] = "-Dman=true, -Dman=false,xmlto-native libxslt-native"
+
+FILES:${PN} += " \
+ ${datadir}/xdg-desktop-portal \
+ ${datadir}/xsessions \
+ ${datadir}/wayland-sessions \
+ ${systemd_user_unitdir} \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_42.1.bb b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_42.1.bb
deleted file mode 100644
index 3d5913ac06..0000000000
--- a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_42.1.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Window navigation construction toolkit"
-LICENSE = "LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection gettext features_check upstream-version-is-even
-
-DEPENDS = " \
- colord \
- geocode-glib \
- gcr \
- gnome-desktop \
- libgweather4 \
- lcms \
- libcanberra \
- geoclue \
- libnotify \
- upower \
- libwacom \
- virtual/libx11 \
-"
-
-# all these are mandatory
-REQUIRED_DISTRO_FEATURES = "x11 polkit pulseaudio systemd gobject-introspection-data"
-GIR_MESON_OPTION = ""
-
-SRC_URI[archive.sha256sum] = "ed65851ae54adcd58a24c86837d624fc6a14bd84ab22e94df40a3a4cfd19ffdb"
-
-PACKAGECONFIG ??= " \
- cups nm \
- alsa gudev \
- smartcard \
- ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
-"
-PACKAGECONFIG[alsa] = "-Dalsa=true,-Dalsa=false,alsa-lib"
-PACKAGECONFIG[cups] = "-Dcups=true,-Dcups=false,cups"
-PACKAGECONFIG[gudev] = "-Dgudev=true,-Dgudev=false,libgudev"
-PACKAGECONFIG[nm] = "-Dnetwork_manager=true,-Dnetwork_manager=false,networkmanager"
-PACKAGECONFIG[smartcard] = "-Dsmartcard=true,-Dsmartcard=false,nss"
-PACKAGECONFIG[wayland] = "-Dwayland=true,-Dwayland=false,wayland"
-
-FILES:${PN} += " \
- ${systemd_user_unitdir} \
- ${libdir}/gnome-settings-daemon-42/libgsd.so \
-"
diff --git a/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_46.0.bb b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_46.0.bb
new file mode 100644
index 0000000000..d409e77eae
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_46.0.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Window navigation construction toolkit"
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+
+inherit gnomebase gsettings gobject-introspection gettext features_check upstream-version-is-even
+
+DEPENDS = " \
+ colord \
+ geocode-glib \
+ gcr \
+ gnome-desktop \
+ libgweather4 \
+ lcms \
+ libcanberra \
+ geoclue \
+ libnotify \
+ upower \
+ libwacom \
+ virtual/libx11 \
+"
+
+# all these are mandatory
+REQUIRED_DISTRO_FEATURES = "x11 polkit pulseaudio systemd gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+SRC_URI[archive.sha256sum] = "0b9a0f64fa18a8e7e09b4c95a3f754fa033c2cdbd2dc35701f0618572c1cb3d7"
+
+PACKAGECONFIG ??= " \
+ cups nm \
+ alsa gudev \
+ smartcard \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
+"
+PACKAGECONFIG[alsa] = "-Dalsa=true,-Dalsa=false,alsa-lib"
+PACKAGECONFIG[cups] = "-Dcups=true,-Dcups=false,cups"
+PACKAGECONFIG[gudev] = "-Dgudev=true,-Dgudev=false,libgudev"
+PACKAGECONFIG[nm] = "-Dnetwork_manager=true,-Dnetwork_manager=false,networkmanager"
+PACKAGECONFIG[smartcard] = "-Dsmartcard=true,-Dsmartcard=false,nss"
+PACKAGECONFIG[wayland] = "-Dwayland=true,-Dwayland=false,wayland"
+
+def gnome_verdir(v):
+ return oe.utils.trim_version(v, 1)
+
+PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
+
+FILES:${PN} += " \
+ ${systemd_user_unitdir} \
+ ${libdir}/gnome-settings-daemon-${@gnome_verdir("${PV}")}/libgsd.so \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_42.0.bb b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_42.0.bb
deleted file mode 100644
index e8c95d6fb2..0000000000
--- a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_42.0.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "GNOME Shell Extensions"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4cb3a392cbf81a9e685ec13b88c4c101"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gettext gsettings features_check
-
-REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data"
-
-SRC_URI[archive.sha256sum] = "3ee65b75b1afd8bcca0a2a03da9b2884787ed40e257a881d9aa6ef7c8727602f"
-
-DEPENDS += " \
- sassc-native \
-"
-
-EXTRA_OEMESON += " \
- -Dextension_set=all \
- -Dclassic_mode=true \
-"
-
-RDEPENDS:${PN} += "gnome-shell"
-
-FILES:${PN} += " \
- ${datadir}/gnome-shell \
- ${datadir}/gnome-session \
- ${datadir}/wayland-sessions \
- ${datadir}/xsessions \
-"
diff --git a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_46.0.bb b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_46.0.bb
new file mode 100644
index 0000000000..eff5fecffe
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_46.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "GNOME Shell Extensions"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4cb3a392cbf81a9e685ec13b88c4c101"
+
+inherit gnomebase gettext gsettings features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data"
+
+SRC_URI[archive.sha256sum] = "d8138f88cd92df9f932309149c236fbdd77c1bc095445036ab7eb0ecda53c01a"
+
+EXTRA_OEMESON += " \
+ -Dextension_set=all \
+ -Dclassic_mode=true \
+"
+
+RDEPENDS:${PN} += "gnome-shell"
+
+FILES:${PN} += " \
+ ${datadir}/gnome-shell \
+ ${datadir}/gnome-session \
+ ${datadir}/wayland-sessions \
+ ${datadir}/xsessions \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch
index 4a36625184..8ef0da16fe 100644
--- a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch
+++ b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch
@@ -1,4 +1,4 @@
-From 3bf597b16e23cd2ce0ee3b05c23b46add5e26cd4 Mon Sep 17 00:00:00 2001
+From e9835f650d70bf22ad0e5d8c2179aa01b2d18955 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Thu, 28 Oct 2021 18:57:24 +0200
Subject: [PATCH] Introduce options 'gjs_path' to optionally set path to gjs
@@ -6,6 +6,21 @@ MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
@@ -19,10 +34,10 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
6 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/js/dbusServices/meson.build b/js/dbusServices/meson.build
-index eb941ed..16efaeb 100644
+index 48b7f89..700b590 100644
--- a/js/dbusServices/meson.build
+++ b/js/dbusServices/meson.build
-@@ -27,7 +27,7 @@ foreach service, dir : dbus_services
+@@ -22,7 +22,7 @@ foreach service, dir : dbus_services
serviceconf = configuration_data()
serviceconf.set('service', service)
@@ -32,10 +47,10 @@ index eb941ed..16efaeb 100644
configure_file(
diff --git a/meson.build b/meson.build
-index 8d7478f..7c9cc6a 100644
+index a6d83b1..2c612a8 100644
--- a/meson.build
+++ b/meson.build
-@@ -138,7 +138,11 @@ endif
+@@ -134,7 +134,11 @@ endif
mutter_typelibdir = mutter_dep.get_variable('typelibdir')
python = find_program('python3')
@@ -49,12 +64,12 @@ index 8d7478f..7c9cc6a 100644
cc = meson.get_compiler('c')
diff --git a/meson_options.txt b/meson_options.txt
-index f0f2ecf..a45f2e4 100644
+index 6e83d92..1bf0ecb 100644
--- a/meson_options.txt
+++ b/meson_options.txt
-@@ -45,3 +45,9 @@ option('soup2',
+@@ -45,3 +45,9 @@ option('systemd',
value: true,
- description: 'Use Soup 2.4 instead of Soup 3. Must be in sync with libgweather'
+ description: 'Enable systemd integration'
)
+
+option('gjs_path',
@@ -63,7 +78,7 @@ index f0f2ecf..a45f2e4 100644
+ description: 'Instead of searching gjs executable, configure path'
+)
diff --git a/subprojects/extensions-app/js/meson.build b/subprojects/extensions-app/js/meson.build
-index ce2a776..8f7bba4 100644
+index c9a67f8..91ae887 100644
--- a/subprojects/extensions-app/js/meson.build
+++ b/subprojects/extensions-app/js/meson.build
@@ -9,7 +9,7 @@ endif
@@ -76,11 +91,11 @@ index ce2a776..8f7bba4 100644
configure_file(
input: prgname + '.in',
diff --git a/subprojects/extensions-app/meson.build b/subprojects/extensions-app/meson.build
-index c260d7a..c5b7554 100644
+index 45f391b..d581408 100644
--- a/subprojects/extensions-app/meson.build
+++ b/subprojects/extensions-app/meson.build
-@@ -44,7 +44,12 @@ localedir = join_paths(datadir, 'locale')
- metainfodir = join_paths(datadir, 'metainfo')
+@@ -47,7 +47,12 @@ metainfodir = join_paths(datadir, 'metainfo')
+ schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
servicedir = join_paths(datadir, 'dbus-1', 'services')
-gjs = find_program('gjs')
@@ -91,8 +106,8 @@ index c260d7a..c5b7554 100644
+endif
+
appstream_util = find_program('appstream-util', required: false)
+ appstreamcli = find_program('appstreamcli', required: false)
desktop_file_validate = find_program('desktop-file-validate', required: false)
-
diff --git a/subprojects/extensions-app/meson_options.txt b/subprojects/extensions-app/meson_options.txt
index ca2eb41..2787785 100644
--- a/subprojects/extensions-app/meson_options.txt
@@ -107,6 +122,3 @@ index ca2eb41..2787785 100644
+ value: '',
+ description: 'Instead of searching gjs executable, configure path'
+)
---
-2.34.1
-
diff --git a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_42.0.bb b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_42.0.bb
deleted file mode 100644
index f54d966c73..0000000000
--- a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_42.0.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "GNOME Shell is the graphical shell of the GNOME desktop environment"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-DEPENDS = " \
- libxml2-native \
- sassc-native \
- gtk4 \
- mutter \
- evolution-data-server \
- gcr \
- gjs \
- gnome-autoar \
- polkit \
- libcroco \
- startup-notification \
- ibus \
- gsettings-desktop-schemas \
-"
-
-inherit gnomebase gsettings gettext gobject-introspection gtk-icon-cache features_check bash-completion
-
-REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
-
-GTKIC_VERSION = "4"
-GTKDOC_MESON_OPTION = "gtk_doc"
-GIR_MESON_OPTION = ""
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
-
-SRC_URI[archive.sha256sum] = "33d404fb3c93b9de42984f0110a2969d6a4a7247c27fe7f5e24c67ecfec75094"
-SRC_URI += "file://0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch"
-
-PACKAGECONFIG ??= "bluetooth nm ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[bluetooth] = ",,gnome-bluetooth"
-PACKAGECONFIG[nm] = "-Dnetworkmanager=true, -Dnetworkmanager=false, networkmanager"
-PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
-
-EXTRA_OEMESON = " \
- -Dgjs_path=${bindir}/gjs \
- -Dextensions-app:gjs_path=${bindir}/gjs \
- -Dtests=false \
- -Dman=false \
-"
-
-do_install:append() {
- # fix shebangs
- for tool in `find ${D}${bindir} -name '*-tool'`; do
- sed -i 's:#!${PYTHON}:#!${bindir}/${PYTHON_PN}:' $tool
- done
-}
-
-GSETTINGS_PACKAGE = "${PN}-gsettings"
-
-FILES:${PN} += " \
- ${datadir}/metainfo \
- ${datadir}/dbus-1 \
- ${datadir}/gnome-control-center \
- ${datadir}/xdg-desktop-portal \
- ${systemd_user_unitdir} \
-"
-
-RDEPENDS:${PN} += "gnome-desktop gsettings-desktop-schemas gdm-base librsvg-gtk ${PN}-gsettings"
-
-PACKAGES =+ "${PN}-tools ${PN}-gsettings"
-FILES:${PN}-tools = "${bindir}/*-tool"
-RDEPENDS:${PN}-tools = "python3-core"
-
diff --git a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_46.0.bb b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_46.0.bb
new file mode 100644
index 0000000000..907cfdf678
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_46.0.bb
@@ -0,0 +1,86 @@
+SUMMARY = "GNOME Shell is the graphical shell of the GNOME desktop environment"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+
+DEPENDS = " \
+ libxml2-native \
+ gtk4 \
+ mutter \
+ evolution-data-server \
+ gcr \
+ geocode-glib \
+ gjs \
+ gnome-autoar \
+ gnome-desktop \
+ polkit \
+ pipewire \
+ libsoup-3.0 \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', 'startup-notification', d)} \
+ ibus \
+ gsettings-desktop-schemas \
+"
+
+inherit gnomebase gsettings gettext gobject-introspection gtk-icon-cache features_check bash-completion
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
+
+GTKIC_VERSION = "4"
+GTKDOC_MESON_OPTION = "gtk_doc"
+GIR_MESON_OPTION = ""
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
+
+SRC_URI[archive.sha256sum] = "6bc41340b6de05774e97cfe20feba86e2b3cc9c8139118f24bd84ac63e82b53e"
+SRC_URI += "file://0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch"
+
+PACKAGECONFIG ??= "bluetooth nm ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[bluetooth] = ",,gnome-bluetooth"
+PACKAGECONFIG[nm] = "-Dnetworkmanager=true, -Dnetworkmanager=false,networkmanager libsecret,networkmanager"
+PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
+
+EXTRA_OEMESON = " \
+ -Dgjs_path=${bindir}/gjs \
+ -Dextensions-app:gjs_path=${bindir}/gjs \
+ -Dtests=false \
+ -Dman=false \
+"
+
+do_install:append() {
+ # fix shebangs
+ for tool in `find ${D}${bindir} -name '*-tool'`; do
+ sed -i 's:#!${PYTHON}:#!${bindir}/python3:' $tool
+ done
+}
+
+GSETTINGS_PACKAGE = "${PN}-gsettings"
+
+FILES:${PN} += " \
+ ${datadir}/metainfo \
+ ${datadir}/dbus-1 \
+ ${datadir}/gnome-control-center \
+ ${datadir}/xdg-desktop-portal \
+ ${systemd_user_unitdir} \
+"
+
+RDEPENDS:${PN} += " \
+ accountsservice \
+ adwaita-icon-theme \
+ adwaita-icon-theme-cursors \
+ gdm-base \
+ gnome-control-center \
+ gnome-backgrounds \
+ gnome-bluetooth \
+ gnome-desktop \
+ gnome-session \
+ gnome-settings-daemon \
+ gnome-shell-gsettings \
+ gsettings-desktop-schemas \
+ librsvg-gtk \
+"
+
+PACKAGES =+ "${PN}-tools ${PN}-gsettings"
+FILES:${PN}-tools = "${bindir}/*-tool"
+RDEPENDS:${PN}-tools = "python3-core"
+
diff --git a/meta-gnome/recipes-gnome/gnome-software/gnome-software_46.0.bb b/meta-gnome/recipes-gnome/gnome-software/gnome-software_46.0.bb
new file mode 100644
index 0000000000..40a7141fca
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-software/gnome-software_46.0.bb
@@ -0,0 +1,43 @@
+SUMMARY = "GNOME Software allows users to easily find, discover and install apps."
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+GTKDOC_MESON_OPTION ?= "gtk_doc"
+
+inherit gnomebase gsettings itstool gnome-help gtk-icon-cache gtk-doc mime mime-xdg gettext upstream-version-is-even features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
+
+DEPENDS += " \
+ appstream \
+ gdk-pixbuf \
+ glib-2.0 \
+ glib-2.0-native \
+ gsettings-desktop-schemas \
+ gtk4 \
+ iso-codes \
+ json-glib \
+ libadwaita \
+ libgudev \
+ libsoup-3.0 \
+ libxmlb-native \
+ polkit \
+"
+
+RDEPENDS:${PN} = "iso-codes"
+
+EXTRA_OEMESON += "-Dtests=false -Dsoup2=false"
+
+SRC_URI[archive.sha256sum] = "11893002bbb54082896683707bc3991ae55a2f3040811a760e3a92c96544f86e"
+
+PACKAGECONFIG ?= "flatpak"
+PACKAGECONFIG[flatpak] = "-Dflatpak=true,-Dflatpak=false,flatpak ostree"
+PACKAGECONFIG[snap] = "-Dsnap=true,-Dsnap=false,snapd-glib"
+PACKAGECONFIG[gtk_doc] = "-Dgtk_doc=true,-Dgtk_doc=false,libxslt-native docbook-xsl-stylesheets"
+PACKAGECONFIG[man] = "-Dman=true,-Dman=false,libxslt-native docbook-xsl-stylesheets"
+PACKAGECONFIG[packagekit] = "-Dpackagekit=true,-Dpackagekit=false,gnome-packagekit,gnome-packagekit"
+PACKAGECONFIG[fwupd] = "-Dfwupd=true,-Dfwupd=false,fwupd,fwupd"
+PACKAGECONFIG[malcontent] = "-Dmalcontent=true,-Dmalcontent=false,malcontent"
+
+FILES:${PN} += "${datadir}"
+FILES:${PN}-dev += "${libdir}/gnome-software/libgnomesoftware.so"
diff --git a/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_42.0.bb b/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_42.0.bb
deleted file mode 100644
index 32ecc90eb7..0000000000
--- a/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_42.0.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Gnome system monitor"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = " \
- gnome-common-native \
- libxml2-native \
- glib-2.0-native \
- gtkmm3 \
- libgtop \
- librsvg \
- polkit \
- libhandy \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gnome-help itstool gtk-icon-cache features_check gettext
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-REQUIRED_DISTRO_FEATURES = "polkit"
-
-def gnome_verdir(v):
- return oe.utils.trim_version(v, 1)
-
-SRC_URI[archive.sha256sum] = "13239d22032201a22bd29833c575b684816700d2de168a1530223577c5c075dc"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
-
-RRECOMMENDS:${PN} = "adwaita-icon-theme"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/metainfo \
-"
diff --git a/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_46.0.bb b/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_46.0.bb
new file mode 100644
index 0000000000..eaeaa2cb0f
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_46.0.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Gnome system monitor"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = " \
+ gnome-common-native \
+ libxml2-native \
+ glib-2.0-native \
+ glibmm-2.68 \
+ gtkmm4 \
+ gtk4 \
+ libadwaita \
+ libgtop \
+ librsvg \
+ polkit \
+ libhandy \
+"
+
+
+inherit gnomebase gsettings gnome-help itstool gtk-icon-cache features_check gettext
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+def gnome_verdir(v):
+ return oe.utils.trim_version(v, 1)
+
+SRC_URI[archive.sha256sum] = "5376248158c686c308255472e8c2a9e4c17255642c149fc7198c6d034e547599"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
+
+RRECOMMENDS:${PN} = "adwaita-icon-theme"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-build-Fix-for-newer-meson.patch b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-build-Fix-for-newer-meson.patch
deleted file mode 100644
index 12520b177c..0000000000
--- a/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-build-Fix-for-newer-meson.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From f88447850e162c8d514be367db574c6fa2fec2a5 Mon Sep 17 00:00:00 2001
-From: Christian Persch <chpe@src.gnome.org>
-Date: Fri, 14 Jan 2022 11:33:32 +0100
-Subject: [PATCH] build: Fix for newer meson
-
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- data/meson.build | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/data/meson.build b/data/meson.build
-index 79d97e5..e0bcbb9 100644
---- a/data/meson.build
-+++ b/data/meson.build
-@@ -18,7 +18,6 @@
- metainfodir = gt_datadir / 'metainfo'
-
- i18n.merge_file(
-- gt_dns_name + '.metainfo.xml',
- input: gt_dns_name + '.metainfo.xml.in',
- output: '@BASENAME@',
- po_dir: po_dir,
-@@ -27,7 +26,6 @@ i18n.merge_file(
- )
-
- i18n.merge_file(
-- gt_dns_name + '.Nautilus.metainfo.xml',
- input: gt_dns_name + '.Nautilus.metainfo.xml.in',
- output: '@BASENAME@',
- po_dir: po_dir,
-@@ -40,7 +38,6 @@ i18n.merge_file(
- desktopdatadir = gt_datadir / 'applications'
-
- i18n.merge_file(
-- gt_dns_name + '.desktop',
- input: gt_dns_name + '.desktop.in',
- output: '@BASENAME@',
- type: 'desktop',
-@@ -57,4 +54,4 @@ meson.add_install_script(
-
- # Subdirs
-
--subdir('icons')
-\ No newline at end of file
-+subdir('icons')
diff --git a/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-meson-add-option-to-set-dbus_interfacedir.patch b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-meson-add-option-to-set-dbus_interfacedir.patch
new file mode 100644
index 0000000000..9f8475bdd2
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-meson-add-option-to-set-dbus_interfacedir.patch
@@ -0,0 +1,63 @@
+From 61668e1eb86a316d4ad9a6b9cacf8c8cc74a0c33 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Sun, 7 Jan 2024 10:40:31 +0100
+Subject: [PATCH] meson: add an option to set dbus_interface_dir
+
+Add an option that allows to set the dbus_interface_dir path manually.
+This will help to cross-compile gnome-terminal on host systems that
+don't have gnome-shell installed.
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gnome-terminal/-/issues/8046]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ meson_options.txt | 7 +++++++
+ src/meson.build | 7 ++++++-
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/meson_options.txt b/meson_options.txt
+index b555ab66..8fece058 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -13,6 +13,13 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this programme. If not, see <https://www.gnu.org/licenses/>.
+
++option(
++ 'dbus_interface_dir',
++ type: 'string',
++ value: '',
++ description: 'directory for D-Bus session interface files [$datadir/dbus-1/interfaces]',
++)
++
+ option(
+ 'dbg',
+ type: 'boolean',
+diff --git a/src/meson.build b/src/meson.build
+index 27ecd893..420ad45c 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -185,6 +185,11 @@ server_sources = app_sources + client_util_sources + debug_sources + dbus_source
+
+ if get_option('search_provider')
+
++ dbus_interface_dir = get_option('dbus_interface_dir')
++ if dbus_interface_dir == ''
++ dbus_interface_dir = gt_prefix / gt_dbusinterfacedir
++ endif
++
+ server_sources += files(
+ 'terminal-search-provider.cc',
+ 'terminal-search-provider.hh',
+@@ -192,7 +197,7 @@ if get_option('search_provider')
+
+ server_sources += gnome.gdbus_codegen(
+ 'terminal-search-provider-gdbus-generated',
+- gt_prefix / gt_dbusinterfacedir / 'org.gnome.ShellSearchProvider2.xml',
++ dbus_interface_dir / 'org.gnome.ShellSearchProvider2.xml',
+ autocleanup: 'none',
+ install_header: false,
+ interface_prefix: 'org.gnome.Shell',
+--
+2.43.0
+
diff --git a/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.42.2.bb b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.42.2.bb
deleted file mode 100644
index 061da27f60..0000000000
--- a/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.42.2.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "GNOME terminal"
-LICENSE = "GPL-3.0-only & GFDL-1.3"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
- file://COPYING.GFDL;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gnome-help gettext itstool upstream-version-is-even
-
-DEPENDS = " \
- glib-2.0-native \
- intltool-native \
- yelp-tools-native \
- docbook-xsl-stylesheets-native libxslt-native \
- desktop-file-utils-native \
- gtk+3 \
- gsettings-desktop-schemas \
- vte \
- dconf \
- libpcre2 \
-"
-
-SRC_URI[archive.sha256sum] = "8a9c8e5ef7a3a73b246a947e1190bb08ec98935af860cf0b3aa2fbf4606817a0"
-SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch"
-SRC_URI += " file://0001-build-Fix-for-newer-meson.patch"
-
-EXTRA_OEMESON += " \
- -Dsearch_provider=false \
- -Dnautilus_extension=false \
-"
-
-FILES:${PN} += " \
- ${datadir}/metainfo \
- ${datadir}/dbus-1 \
- ${systemd_user_unitdir} \
-"
-
-RRECOMMENDS:${PN} += "vte-prompt gsettings-desktop-schemas"
diff --git a/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.50.1.bb b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.50.1.bb
new file mode 100644
index 0000000000..3bbfe9ece0
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.50.1.bb
@@ -0,0 +1,42 @@
+SUMMARY = "GNOME terminal"
+LICENSE = "GPL-3.0-only & GFDL-1.3"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
+ file://COPYING.GFDL;md5=a22d0be1ce2284b67950a4d1673dd1b0 \
+"
+
+inherit gnomebase pkgconfig gsettings gnome-help gettext itstool upstream-version-is-even
+
+DEPENDS = " \
+ glib-2.0 \
+ docbook-xsl-stylesheets-native libxslt-native \
+ desktop-file-utils-native \
+ gtk+3 \
+ gsettings-desktop-schemas \
+ vte \
+ dconf \
+ libhandy \
+ libpcre2 \
+"
+
+SRC_URI = " \
+ git://gitlab.gnome.org/GNOME/gnome-terminal.git;protocol=https;nobranch=1 \
+ file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch \
+ file://0001-meson-add-option-to-set-dbus_interfacedir.patch \
+"
+SRCREV = "5ac3b8e4bd6fa02651b3c23cedb0a7e1cd769655"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[nautilus] = "-Dnautilus_extension=true,-Dnautilus_extension=false,nautilus,nautilus"
+PACKAGECONFIG[search_provider] = "-Dsearch_provider=true -Ddbus_interface_dir=${STAGING_DATADIR}/dbus-1/interfaces,-Dsearch_provider=false,gnome-shell"
+
+PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
+
+FILES:${PN} += " \
+ ${datadir} \
+ ${libdir}/nautilus/extensions-4 \
+ ${systemd_user_unitdir} \
+"
+
+RRECOMMENDS:${PN} += "vte-prompt gsettings-desktop-schemas"
diff --git a/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_42.2.bb b/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_42.2.bb
deleted file mode 100644
index 1446b151c5..0000000000
--- a/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_42.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "A simple text editor"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-DEPENDS = " \
- desktop-file-utils-native \
- libadwaita \
- gtk4 \
- gtksourceview5 \
- enchant2 \
-"
-
-GTKIC_VERSION = "4"
-
-inherit gnomebase gtk-icon-cache itstool gnome-help mime-xdg features_check
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-REQUIRED_DISTRO_FEATURES = "opengl"
-
-SRC_URI[archive.sha256sum] = "e56d4a8cdcbce8a8f1c0881b45de799f8b25205ec0cbf2269e532025761cc5da"
-
-FILES:${PN} += " \
- ${datadir}/metainfo \
- ${datadir}/dbus-1 \
-"
diff --git a/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_46.0.bb b/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_46.0.bb
new file mode 100644
index 0000000000..967182aeaa
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_46.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "A simple text editor"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a"
+
+
+DEPENDS = " \
+ desktop-file-utils-native \
+ libadwaita \
+ gtk4 \
+ gtksourceview5 \
+ editorconfig-core-c \
+ enchant2 \
+"
+
+GTKIC_VERSION = "4"
+
+inherit gnomebase gtk-icon-cache itstool gnome-help mime-xdg features_check
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+SRC_URI[archive.sha256sum] = "c018d0b3792c044c1558d1d0dd92b09fb0a96c9e2d25e1ae1f4cf91f7eab4614"
+
+FILES:${PN} += " \
+ ${datadir}/metainfo \
+ ${datadir}/dbus-1 \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0002-meson-fix-invalid-positional-argument.patch b/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0002-meson-fix-invalid-positional-argument.patch
index dfa4615a3d..d921ff3308 100644
--- a/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0002-meson-fix-invalid-positional-argument.patch
+++ b/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0002-meson-fix-invalid-positional-argument.patch
@@ -3,7 +3,7 @@ From: Mae Dartmann <hello@maedartmann.name>
Date: Wed, 16 Feb 2022 06:08:41 +0000
Subject: [PATCH] meson: fix invalid positional argument
-Upstream-Status: Accepted[https://gitlab.gnome.org/GNOME/gnome-tweaks/-/commit/dc9701e18775c01d0b69fabaa350147f70096da8]
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gnome-tweaks/-/commit/dc9701e18775c01d0b69fabaa350147f70096da8]
---
data/meson.build | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_40.0.bb b/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_40.0.bb
index ffdf2c9d38..a8d6a2ad69 100644
--- a/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_40.0.bb
+++ b/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_40.0.bb
@@ -7,7 +7,6 @@ LIC_FILES_CHKSUM = " \
DEPENDS = "libhandy"
-GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gtk-icon-cache gobject-introspection features_check
diff --git a/meta-gnome/recipes-gnome/gnome-user-share/gnome-user-share_43.0.bb b/meta-gnome/recipes-gnome/gnome-user-share/gnome-user-share_43.0.bb
new file mode 100644
index 0000000000..6fc78dd296
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-user-share/gnome-user-share_43.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "This is gnome-user-share 43.0, a system for easy sharing of user files."
+LICENSE="GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+
+DEPENDS = " \
+ glib-2.0-native \
+ glib-2.0 \
+ systemd \
+"
+
+inherit gnomebase gsettings features_check
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SRC_URI = "git://gitlab.gnome.org/GNOME/gnome-user-share.git;protocol=https;branch=master"
+SRCREV = "a0e790aa9494db9d1b1f48b4fc0d2f78e112044d"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= "modules"
+PACKAGECONFIG[httpd] = "-Dhttpd=${sbindir}/httpd,,,apache2 mod-dnssd"
+PACKAGECONFIG[modules] = "-Dmodules_path=${libexecdir}/apache2/modules"
+
+FILES:${PN} += "${systemd_user_unitdir}"
diff --git a/meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch b/meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch
index a07cd49fdf..6e565e60d5 100644
--- a/meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch
+++ b/meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch
@@ -1,4 +1,4 @@
-From 9deaed70221a12e26f968be26233b75fa5669476 Mon Sep 17 00:00:00 2001
+From a76c5c40f95b2961bed8f6427080f0fcf6ec00d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sat, 15 May 2021 23:25:09 +0200
Subject: [PATCH] Avoid running trackertestutils
@@ -12,23 +12,21 @@ It breaks configuration:
Upstream-Status: Inappropriate [OE-Specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index 6a03778..17ef1e1 100644
+index fca5f98..3c1aa06 100644
--- a/meson.build
+++ b/meson.build
-@@ -78,7 +78,7 @@ totem_plparser_dep = dependency('totem-plparser', version: '>= 3.4.1', required:
+@@ -98,7 +98,7 @@ totem_plparser_dep = dependency('totem-plparser', version: '>= 3.4.1', required:
totem_plparser_mini_dep = dependency('totem-plparser-mini', version: '>= 3.4.1', required: false)
tracker_sparql_dep = dependency('tracker-sparql-2.0', version: '>= 2.3.0', required: false)
tracker3_dep = dependency('tracker-sparql-3.0', required: false)
-tracker3_testutils_dep = dependency('tracker-testutils-3.0', required: false)
+tracker3_testutils_dep = dependency('tracker-testutils-3.0-avoid-find', required: false)
- lua_dep = dependency('lua', version: '>= 5.3.0', required: false)
- if not lua_dep.found()
---
-2.31.1
-
+ lua_pkg = [
+ 'lua',
diff --git a/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.15.bb b/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.15.bb
deleted file mode 100644
index b96194dec5..0000000000
--- a/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.15.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Grilo is a framework forsearching media content from various sources"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-DEPENDS = " \
- glib-2.0-native \
- gperf-native \
- itstool-native \
- grilo \
- tracker \
- lua \
- liboauth \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gnome-help vala
-
-SRC_URI += "file://0001-Avoid-running-trackertestutils.patch"
-SRC_URI[archive.sha256sum] = "8518c3d954f93095d955624a044ce16a7345532f811d299dbfa1e114cfebab33"
-
-FILES:${PN} += "${libdir}/grilo-0.3"
diff --git a/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.16.bb b/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.16.bb
new file mode 100644
index 0000000000..40603993f3
--- /dev/null
+++ b/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.16.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Grilo is a framework forsearching media content from various sources"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS = " \
+ glib-2.0-native \
+ gperf-native \
+ itstool-native \
+ grilo \
+ lua \
+ liboauth \
+"
+
+
+inherit gnomebase gnome-help vala
+
+SRC_URI += "file://0001-Avoid-running-trackertestutils.patch"
+SRC_URI[archive.sha256sum] = "fe6f4dbe586c6b8ba2406394e202f22d009d642a96eb3a54f32f6a21d084cdcb"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'gobject-introspection-data', 'tracker', '', d)}"
+PACKAGECONFIG[tracker] = "-Denable-tracker3=yes,-Denable-tracker3=no,tracker"
+
+FILES:${PN} += "${libdir}/grilo-0.3"
diff --git a/meta-gnome/recipes-gnome/grilo/grilo_0.3.14.bb b/meta-gnome/recipes-gnome/grilo/grilo_0.3.14.bb
deleted file mode 100644
index 7ceb26d7a2..0000000000
--- a/meta-gnome/recipes-gnome/grilo/grilo_0.3.14.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Grilo is a framework forsearching media content from various sources"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-DEPENDS = " \
- libxml2 \
- glib-2.0 \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gobject-introspection gtk-doc gettext vala
-
-SRC_URI[archive.sha256sum] = "0369d0b00bb0f59ba5f7aea8cfc665f38df14a5b4182d28c7c1e2cd15b518743"
-
-GIR_MESON_OPTION = "enable-introspection"
-GTKDOC_MESON_OPTION = "enable-gtk-doc"
-
-# Note: removing 'net' from PACKAGECONFIG causes
-# | bindings/vala/meson.build:15:0: ERROR: Unknown variable "grlnet_gir".
-PACKAGECONFIG ??= "net"
-
-PACKAGECONFIG[net] = "-Denable-grl-net=true, -Denable-grl-net=false, libsoup-2.4"
-PACKAGECONFIG[test-ui] = "-Denable-test-ui=true, -Denable-test-ui=false, gtk+3 liboauth"
-
-# Once we have a recipe for 'totem-plparser' this can turn into a PACKAGECONFIG
-EXTRA_OEMESON = "-Denable-grl-pls=false"
-
diff --git a/meta-gnome/recipes-gnome/grilo/grilo_0.3.16.bb b/meta-gnome/recipes-gnome/grilo/grilo_0.3.16.bb
new file mode 100644
index 0000000000..14e1ca9fe1
--- /dev/null
+++ b/meta-gnome/recipes-gnome/grilo/grilo_0.3.16.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Grilo is a framework forsearching media content from various sources"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS = " \
+ libxml2 \
+ glib-2.0 \
+"
+
+
+inherit gnomebase gobject-introspection gtk-doc gettext vala
+
+SRC_URI[archive.sha256sum] = "884580e8c5ece280df23aa63ff5234b7d48988a404df7d6bfccd1e77b473bd96"
+
+GIR_MESON_OPTION = "enable-introspection"
+GTKDOC_MESON_OPTION = "enable-gtk-doc"
+
+# Note: removing 'net' from PACKAGECONFIG causes
+# | bindings/vala/meson.build:15:0: ERROR: Unknown variable "grlnet_gir".
+PACKAGECONFIG ??= "net"
+
+PACKAGECONFIG[net] = "-Denable-grl-net=true, -Denable-grl-net=false, libsoup-3.0"
+PACKAGECONFIG[test-ui] = "-Denable-test-ui=true, -Denable-test-ui=false, gtk+3 liboauth"
+
+# Once we have a recipe for 'totem-plparser' this can turn into a PACKAGECONFIG
+EXTRA_OEMESON = "-Denable-grl-pls=false"
+
+do_compile:append() {
+ sed -i -e 's,${B}/../,,' ${B}/src/grl-type-builtins.h
+}
diff --git a/meta-gnome/recipes-gnome/gsound/gsound_1.0.3.bb b/meta-gnome/recipes-gnome/gsound/gsound_1.0.3.bb
index bdef603f0d..6a50c22c73 100644
--- a/meta-gnome/recipes-gnome/gsound/gsound_1.0.3.bb
+++ b/meta-gnome/recipes-gnome/gsound/gsound_1.0.3.bb
@@ -7,7 +7,8 @@ DEPENDS = " \
libcanberra \
"
-GNOMEBASEBUILDCLASS = "meson"
+
+VALA_MESON_OPTION = "enable_vala"
inherit gnomebase gettext gobject-introspection vala
diff --git a/meta-gnome/recipes-gnome/gspell/gspell_1.11.1.bb b/meta-gnome/recipes-gnome/gspell/gspell_1.11.1.bb
deleted file mode 100644
index c76a48f19a..0000000000
--- a/meta-gnome/recipes-gnome/gspell/gspell_1.11.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "gspell adds spell-checking to a GTK+ applications"
-HOMEPAGE = "https://wiki.gnome.org/Projects/gspell"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8c2e1ec1540fb3e0beb68361344cba7e"
-
-DEPENDS = "gtk+3 iso-codes enchant2"
-
-inherit gnomebase gettext gobject-introspection vala
-
-SRC_URI[archive.sha256sum] = "ef6aa4e3f711775158a7e241a5f809cf2426bc0e02c23a7d2b5c71fc3de00292"
diff --git a/meta-gnome/recipes-gnome/gspell/gspell_1.12.2.bb b/meta-gnome/recipes-gnome/gspell/gspell_1.12.2.bb
new file mode 100644
index 0000000000..2668fc009f
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gspell/gspell_1.12.2.bb
@@ -0,0 +1,11 @@
+SUMMARY = "gspell adds spell-checking to a GTK+ applications"
+HOMEPAGE = "https://wiki.gnome.org/Projects/gspell"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8c2e1ec1540fb3e0beb68361344cba7e"
+
+DEPENDS = "gtk+3 icu enchant2"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase gettext gobject-introspection vala gtk-doc
+
+SRC_URI[archive.sha256sum] = "b4e993bd827e4ceb6a770b1b5e8950fce3be9c8b2b0cbeb22fdf992808dd2139"
diff --git a/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.2.bb b/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.2.bb
deleted file mode 100644
index 0c5b71f5b6..0000000000
--- a/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.2.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Image viewer and browser"
-LICENSE="GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-REQUIRED_DISTRO_FEATURES = "polkit gobject-introspection-data"
-
-DEPENDS = " \
- glib-2.0-native \
- bison-native \
- yelp-tools-native \
- gtk+3 \
- gsettings-desktop-schemas \
- zlib \
- jpeg \
- exiv2 \
- colord \
- lcms \
- libraw \
- librsvg \
- libsoup-2.4 \
- json-glib \
- libsecret \
-"
-
-inherit features_check gnomebase gnome-help gsettings itstool mime-xdg
-
-SRC_URI[archive.sha256sum] = "97f8afe522535216541ebbf1e3b546d12a6beb38a8f0eb85f26e676934aad425"
-
-FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.4.bb b/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.4.bb
new file mode 100644
index 0000000000..79db8b7d75
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.4.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Image viewer and browser"
+LICENSE="GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+
+REQUIRED_DISTRO_FEATURES = "polkit gobject-introspection-data"
+
+DEPENDS = " \
+ glib-2.0-native \
+ bison-native \
+ yelp-tools-native \
+ gtk+3 \
+ gsettings-desktop-schemas \
+ zlib \
+ jpeg \
+ exiv2 \
+ colord \
+ lcms \
+ libraw \
+ librsvg \
+ libsoup \
+ json-glib \
+ libsecret \
+"
+
+inherit features_check gnomebase gnome-help gsettings itstool mime-xdg
+
+SRC_URI[archive.sha256sum] = "add693ac0aeb9a30d829ba03a06208289d3f6868dc3b02573549e88190c794e8"
+
+FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-gnome/recipes-gnome/gtk4/gtk4_4.6.7.bb b/meta-gnome/recipes-gnome/gtk4/gtk4_4.6.7.bb
deleted file mode 100644
index c71be23a7d..0000000000
--- a/meta-gnome/recipes-gnome/gtk4/gtk4_4.6.7.bb
+++ /dev/null
@@ -1,142 +0,0 @@
-SUMMARY = "Multi-platform toolkit for creating GUIs"
-DESCRIPTION = "GTK is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \
-set of widgets, GTK is suitable for projects ranging from small one-off projects to complete application suites."
-HOMEPAGE = "http://www.gtk.org"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-SECTION = "libs"
-
-DEPENDS = " \
- sassc-native \
- glib-2.0 \
- libepoxy \
- graphene \
- cairo \
- pango \
- atk \
- jpeg \
- libpng \
- librsvg \
- tiff \
- gdk-pixbuf-native gdk-pixbuf \
-"
-
-LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
- file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \
- file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \
- file://tests/testgtk.c;endline=25;md5=49d06770681b8322466b52ed19d29fb2 \
-"
-
-MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-UPSTREAM_CHECK_REGEX = "gtk-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)\.tar.xz"
-
-SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk/${MAJ_VER}/gtk-${PV}.tar.xz"
-SRC_URI[sha256sum] = "effd2e7c4b5e2a5c7fad43e0f24adea68baa4092abb0b752caff278e6bb010e8"
-
-S = "${WORKDIR}/gtk-${PV}"
-
-inherit meson gettext pkgconfig gtk-doc update-alternatives gsettings features_check gobject-introspection
-
-# TBD: nativesdk
-# gobject-introspection.bbclass pins introspection off for nativesk. As long as
-# we do not remove this wisdom or hack gtk4, it is not possible to build
-# nativesdk-gtk4
-BBCLASSEXTEND = "native"
-
-GSETTINGS_PACKAGE:class-native = ""
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-REQUIRED_DISTRO_FEATURES = "opengl"
-
-GIR_MESON_ENABLE_FLAG = 'enabled'
-GIR_MESON_DISABLE_FLAG = 'disabled'
-GTKDOC_MESON_OPTION = 'gtk_doc'
-
-EXTRA_OEMESON = " -Dbuild-tests=false"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
-PACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-
-PACKAGECONFIG[x11] = "-Dx11-backend=true,-Dx11-backend=false,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes xinerama"
-PACKAGECONFIG[wayland] = "-Dwayland-backend=true,-Dwayland-backend=false,wayland wayland-protocols libxkbcommon virtual/egl virtual/libgles2 wayland-native"
-PACKAGECONFIG[cups] = "-Dprint-cups=enabled,-Dprint-cups=disabled,cups"
-PACKAGECONFIG[colord] = "-Dcolord=enabled,-Dcolord=disabled,colord"
-# gtk4 wants gstreamer-player-1.0 -> gstreamer1.0-plugins-bad
-PACKAGECONFIG[gstreamer] = "-Dmedia-gstreamer=enabled,-Dmedia-gstreamer=disabled,gstreamer1.0-plugins-bad"
-PACKAGECONFIG[tracker] = "-Dtracker=enabled,-Dtracker=disabled,tracker"
-
-
-do_compile:prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs"
-}
-
-
-PACKAGES =+ "${PN}-demo"
-LIBV = "4.0.0"
-
-FILES:${PN}-demo = " \
- ${datadir}/applications/org.gtk.Demo4.desktop \
- ${datadir}/applications/org.gtk.IconBrowser4.desktop \
- ${datadir}/applications/org.gtk.WidgetFactory4.desktop \
- ${datadir}/icons/hicolor/*/apps/org.gtk.Demo4*.* \
- ${datadir}/icons/hicolor/*/apps/org.gtk.IconBrowser4*.* \
- ${datadir}/icons/hicolor/*/apps/org.gtk.WidgetFactory4*.* \
- ${bindir}/gtk4-demo \
- ${bindir}/gtk4-demo-application \
- ${bindir}/gtk4-icon-browser \
- ${bindir}/gtk4-widget-factory \
-"
-
-FILES:${PN}:append = " \
- ${datadir}/glib-2.0/schemas/ \
- ${datadir}/gtk-4.0/emoji/ \
- ${datadir}/metainfo/ \
- ${datadir}/icons/hicolor/*/apps/org.gtk.PrintEditor4*.* \
- ${libdir}/gtk-4.0/${LIBV}/printbackends \
- ${bindir}/gtk4-update-icon-cache \
- ${bindir}/gtk4-launch \
-"
-
-FILES:${PN}-dev += " \
- ${datadir}/gtk-4.0/gtk4builder.rng \
- ${datadir}/gtk-4.0/include \
- ${datadir}/gtk-4.0/valgrind \
- ${datadir}/gettext/its \
- ${bindir}/gtk4-builder-tool \
- ${bindir}/gtk4-encode-symbolic-svg \
- ${bindir}/gtk4-query-settings \
-"
-
-GTKBASE_RRECOMMENDS ?= " \
- liberation-fonts \
- gdk-pixbuf-loader-png \
- gdk-pixbuf-loader-jpeg \
- gdk-pixbuf-loader-gif \
- gdk-pixbuf-loader-xpm \
- shared-mime-info \
- adwaita-icon-theme-symbolic \
-"
-
-GTKBASE_RRECOMMENDS:class-native ?= ""
-
-GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1"
-
-RRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}"
-RRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}"
-RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}"
-
-PACKAGES_DYNAMIC += "^gtk4-printbackend-.*"
-python populate_packages:prepend () {
- import os.path
-
- gtk_libdir = d.expand('${libdir}/gtk-3.0/${LIBV}')
- printmodules_root = os.path.join(gtk_libdir, 'printbackends');
-
- do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk4-printbackend-%s', 'GTK printbackend module for %s')
-
- if (d.getVar('DEBIAN_NAMES')):
- d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-4.0')
-}
diff --git a/meta-gnome/recipes-gnome/gtksourceview/files/0001-remove-pointless-check.patch b/meta-gnome/recipes-gnome/gtksourceview/files/0001-remove-pointless-check.patch
new file mode 100644
index 0000000000..8230bbbd16
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gtksourceview/files/0001-remove-pointless-check.patch
@@ -0,0 +1,38 @@
+From 397751846130f79d5fbe8d617b788f3bcbb36816 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Tue, 9 Jan 2024 22:20:03 +0000
+Subject: [PATCH] meson: remove pointless gtk-doc check
+
+There's no point explicitly checking for gtk-doc, for two reasons:
+
+1) In cross-compiled environments this looks for a target gtk-doc, not a
+ native gtk-doc, so it should set native:true.
+
+2) The gnome.gtkdoc() function checks for gtk-doc itself.
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gtksourceview/-/merge_requests/351]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ meson.build | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index ba07da70..1109daea 100644
+--- a/meson.build
++++ b/meson.build
+@@ -107,12 +107,6 @@ else
+ vapigen_dep = []
+ endif
+
+-if build_gtk_doc
+- gtk_doc_dep = dependency('gtk-doc', version: gtk_doc_req)
+-else
+- gtk_doc_dep = []
+-endif
+-
+ # Look for the libxml2 library manually on Visual Studio if
+ # its pkg-config file could not be found, as the NMake
+ # Makefiles of libxml2 do not generate the pkg-config files
+--
+2.34.1
+
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb
index 1e5652d3bd..e504186b82 100644
--- a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb
+++ b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb
@@ -4,12 +4,13 @@ HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-DEPENDS = "gtk+3 libxml2 intltool-native gnome-common-native glib-2.0-native"
+DEPENDS = "gtk+3 libxml2 glib-2.0-native"
PNAME = "gtksourceview"
S = "${WORKDIR}/${PNAME}-${PV}"
+GNOMEBASEBUILDCLASS = "autotools"
inherit gnomebase lib_package gettext features_check gtk-doc gobject-introspection upstream-version-is-even
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.2.bb b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.2.bb
deleted file mode 100644
index 979da792f7..0000000000
--- a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.2.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Portable C library for multiline text editing"
-HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
-
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-DEPENDS = "gtk+3 libxml2 intltool-native gnome-common-native glib-2.0-native"
-
-PNAME = "gtksourceview"
-
-S = "${WORKDIR}/${PNAME}-${PV}"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase lib_package gettext features_check gtk-doc gobject-introspection vala
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI = "https://download.gnome.org/sources/gtksourceview/4.8/${PNAME}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "842de7e5cb52000fd810e4be39cd9fe29ffa87477f15da85c18f7b82d45637cc"
-
-GIR_MESON_OPTION = 'gir'
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-# Override the definition in meson.bbclass. The dependencies in mason.build are incomplete
-# and the recipe will not build with "-j 1". This fix is benign but should be reviewed when
-# updating versions.
-#
-meson_do_compile() {
- bbnote "========== generating gtksourceview-gresources.h ========"
- bbnote "PARALLEL_MAKE is ${PARALLEL_MAKE}"
- ninja ${PARALLEL_MAKE} gtksourceview/gtksourceview-gresources.h
- bbnote "========== compiling target all ========"
- ninja ${PARALLEL_MAKE}
-}
-
-FILES:${PN} += "${datadir}/gtksourceview-4"
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.4.bb b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.4.bb
new file mode 100644
index 0000000000..38ca4a39e6
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.4.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Portable C library for multiline text editing"
+HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS = "gtk+3 libxml2 glib-2.0-native"
+
+PNAME = "gtksourceview"
+
+S = "${WORKDIR}/${PNAME}-${PV}"
+
+inherit gnomebase lib_package gettext features_check gtk-doc gobject-introspection vala
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI = "https://download.gnome.org/sources/gtksourceview/4.8/${PNAME}-${PV}.tar.xz \
+ file://0001-remove-pointless-check.patch"
+SRC_URI[sha256sum] = "7ec9d18fb283d1f84a3a3eff3b7a72b09a10c9c006597b3fbabbb5958420a87d"
+
+GIR_MESON_OPTION = 'gir'
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+FILES:${PN} += "${datadir}/gtksourceview-4"
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.12.0.bb b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.12.0.bb
new file mode 100644
index 0000000000..f3267acbeb
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.12.0.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Portable C library for multiline text editing"
+HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+DEPENDS = " \
+ fribidi \
+ glib-2.0-native \
+ fontconfig \
+ gtk4 \
+ libxml2 \
+ libpcre2 \
+ pango \
+"
+
+PNAME = "gtksourceview"
+
+S = "${WORKDIR}/${PNAME}-${PV}"
+
+
+inherit gnomebase lib_package gettext features_check gi-docgen gtk-icon-cache gobject-introspection vala
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+SRC_URI = "https://download.gnome.org/sources/gtksourceview/5.12/${PNAME}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "daf32ff5d3150d6385917d3503a85b9e047ba158b2b03079314c9c00813fa01f"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GIDOCGEN_MESON_OPTION = "documentation"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'vulkan', d)}"
+PACKAGECONFIG[vulkan] = ",,vulkan-loader vulkan-headers"
+
+FILES:${PN} += "${datadir}/gtksourceview-5"
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.4.2.bb b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.4.2.bb
deleted file mode 100644
index 52c270e6a0..0000000000
--- a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.4.2.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Portable C library for multiline text editing"
-HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
-
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-DEPENDS = " \
- glib-2.0-native \
- gnome-common-native \
- intltool-native \
- gtk+3 \
- gtk4 \
- libxml2 \
- libpcre2 \
-"
-
-PNAME = "gtksourceview"
-
-S = "${WORKDIR}/${PNAME}-${PV}"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase lib_package gettext features_check gtk-doc gtk-icon-cache gobject-introspection vala
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI = "https://download.gnome.org/sources/gtksourceview/5.4/${PNAME}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "ad140e07eb841910de483c092bd4885abd29baadd6e95fa22d93ed2df0b79de7"
-
-GIR_MESON_ENABLE_FLAG = 'enabled'
-GIR_MESON_DISABLE_FLAG = 'disabled'
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-FILES:${PN} += "${datadir}/gtksourceview-5"
diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb b/meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb
deleted file mode 100644
index e8d9f16de1..0000000000
--- a/meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb
+++ /dev/null
@@ -1,88 +0,0 @@
-DESCRIPTION = "gvfs is a userspace virtual filesystem"
-LICENSE = "LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=05df38dd77c35ec8431f212410a3329e"
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gsettings bash-completion gettext upstream-version-is-even features_check useradd
-
-DEPENDS += "libsecret glib-2.0 glib-2.0-native libgudev shadow-native \
- gsettings-desktop-schemas dbus"
-
-RDEPENDS:${PN} += "gsettings-desktop-schemas"
-
-SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive"
-
-SRC_URI[archive.sha256sum] = "03d72b8c15ef438110f0cf457b5655266c8b515d0412b30f4d55cfa0da06ac5e"
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-EXTRA_OEMESON = " \
- -Dbluray=false \
- -Dgoa=false \
- -Dgoogle=false \
- -Dnfs=false \
-"
-
-PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash"
-
-FILES:${PN} += " \
- ${datadir}/glib-2.0 \
- ${datadir}/GConf \
- ${datadir}/dbus-1/services \
- ${libdir}/gio/modules/*.so \
- ${libdir}/tmpfiles.d \
- ${systemd_user_unitdir} \
-"
-
-FILES:${PN}-dbg += "${libdir}/gio/modules/.debug/*"
-FILES:${PN}-dev += "${libdir}/gio/modules/*.la"
-
-FILES:gvfsd-ftp = "${libexecdir}/gvfsd-ftp ${datadir}/gvfs/mounts/ftp.mount"
-FILES:gvfsd-sftp = "${libexecdir}/gvfsd-sftp ${datadir}/gvfs/mounts/sftp.mount"
-FILES:gvfsd-trash = "${libexecdir}/gvfsd-trash ${datadir}/gvfs/mounts/trash.mount"
-
-RRECOMMENDS:gvfsd-ftp += "openssh-sftp openssh-ssh"
-
-PACKAGECONFIG ?= "libgphoto2 \
- ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES','polkit','udisks2','',d)} \
- ${@bb.utils.contains('DISTRO_FEATURES','polkit','admin','',d)} \
- "
-
-PACKAGECONFIG[udisks2] = "-Dudisks2=true, -Dudisks2=false, udisks2, udisks2"
-PACKAGECONFIG[admin] = "-Dadmin=true, -Dadmin=false, libcap polkit"
-PACKAGECONFIG[afc] = "-Dafc=true, -Dafc=false, libimobiledevice libplist"
-PACKAGECONFIG[archive] = "-Darchive=true, -Darchive=false, libarchive"
-PACKAGECONFIG[dnssd] = "-Ddnssd=true, -Ddnssd=false, avahi"
-PACKAGECONFIG[gcr] = "-Dgcr=true, -Dgcr=false, gcr"
-PACKAGECONFIG[http] = "-Dhttp=true, -Dhttp=false, libsoup-2.4"
-PACKAGECONFIG[libmtp] = "-Dmtp=true, -Dmtp=false, libmtp"
-PACKAGECONFIG[logind] = "-Dlogind=true, -Dlogind=false, systemd"
-PACKAGECONFIG[libgphoto2] = "-Dgphoto2=true, -Dgphoto2=false, libgphoto2"
-PACKAGECONFIG[samba] = "-Dsmb=true, -Dsmb=false, samba"
-PACKAGECONFIG[systemd] = "-Dsystemduserunitdir=${systemd_user_unitdir} -Dtmpfilesdir=${libdir}/tmpfiles.d, -Dsystemduserunitdir=no -Dtmpfilesdir=no, systemd"
-
-# needs meta-filesystems
-PACKAGECONFIG[fuse] = "-Dfuse=true, -Dfuse=false, fuse3"
-
-# libcdio-paranoia recipe doesn't exist yet
-PACKAGECONFIG[cdda] = "-Dcdda=true, -Dcdda=false, libcdio-paranoia"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/${BPN}-1 polkitd"
-
-do_install:append() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'true', 'false', d)}; then
- # Fix up permissions on polkit rules.d to work with rpm4 constraints
- chmod 700 ${D}/${datadir}/polkit-1/rules.d
- chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
- fi
-
- # After rebuilds (not from scracth) it can happen that the executables in
- # libexec ar missing executable permission flag. Not sure but it came up
- # during transition to meson. Looked into build files and logs but could
- # not find suspicious
- for exe in `find ${D}/${libexecdir}`; do
- chmod +x $exe
- done
-}
diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs_1.54.0.bb b/meta-gnome/recipes-gnome/gvfs/gvfs_1.54.0.bb
new file mode 100644
index 0000000000..01cdb4eef5
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gvfs/gvfs_1.54.0.bb
@@ -0,0 +1,97 @@
+DESCRIPTION = "gvfs is a userspace virtual filesystem"
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=05df38dd77c35ec8431f212410a3329e"
+
+inherit gnomebase gsettings bash-completion gettext upstream-version-is-even features_check useradd
+
+DEPENDS += "\
+ dbus \
+ glib-2.0 \
+ glib-2.0-native \
+ gsettings-desktop-schemas \
+ libgudev \
+ libsecret \
+ libxml2 \
+ shadow-native \
+"
+
+RDEPENDS:${PN} += "gsettings-desktop-schemas"
+
+SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive"
+
+SRC_URI[archive.sha256sum] = "f53d81df86c2e86cdd25182c2d8a669a22371e83623ded1b9d5416dcfc6de366"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+EXTRA_OEMESON = " \
+ -Dbluray=false \
+"
+
+PACKAGES =+ "gvfsd-ftp gvfsd-sftp gvfsd-trash"
+
+FILES:${PN} += " \
+ ${datadir}/glib-2.0 \
+ ${datadir}/GConf \
+ ${datadir}/dbus-1/services \
+ ${libdir}/gio/modules/*.so \
+ ${libdir}/tmpfiles.d \
+ ${systemd_user_unitdir} \
+"
+
+FILES:${PN}-dbg += "${libdir}/gio/modules/.debug/*"
+FILES:${PN}-dev += "${libdir}/gio/modules/*.la"
+
+FILES:gvfsd-ftp = "${libexecdir}/gvfsd-ftp ${datadir}/gvfs/mounts/ftp.mount"
+FILES:gvfsd-sftp = "${libexecdir}/gvfsd-sftp ${datadir}/gvfs/mounts/sftp.mount"
+FILES:gvfsd-trash = "${libexecdir}/gvfsd-trash ${datadir}/gvfs/mounts/trash.mount"
+
+RRECOMMENDS:gvfsd-ftp += "openssh-sftp openssh-ssh"
+
+PACKAGECONFIG ?= "libgphoto2 \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES','polkit','udisks2','',d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES','polkit','admin','',d)} \
+ "
+
+PACKAGECONFIG[udisks2] = "-Dudisks2=true, -Dudisks2=false, udisks2, udisks2"
+PACKAGECONFIG[admin] = "-Dadmin=true, -Dadmin=false, libcap polkit"
+PACKAGECONFIG[afc] = "-Dafc=true, -Dafc=false, libimobiledevice libplist"
+PACKAGECONFIG[archive] = "-Darchive=true, -Darchive=false, libarchive"
+PACKAGECONFIG[dnssd] = "-Ddnssd=true, -Ddnssd=false, avahi"
+PACKAGECONFIG[gcr] = "-Dgcr=true, -Dgcr=false, gcr"
+PACKAGECONFIG[gcrypt] = "-Dgcrypt=true, -Dgcrypt=false, libgcrypt"
+PACKAGECONFIG[goa] = "-Dgoa=true, -Dgoa=false, gnome-online-accounts"
+PACKAGECONFIG[google] = "-Dgoogle=true, -Dgoogle=false, libgdata"
+PACKAGECONFIG[http] = "-Dhttp=true, -Dhttp=false, libsoup-3.0"
+PACKAGECONFIG[libmtp] = "-Dmtp=true, -Dmtp=false, libmtp"
+PACKAGECONFIG[logind] = "-Dlogind=true, -Dlogind=false, systemd"
+PACKAGECONFIG[libgphoto2] = "-Dgphoto2=true, -Dgphoto2=false, libgphoto2"
+PACKAGECONFIG[nfs] = "-Dnfs=true, -Dnfs=false,libnfs"
+PACKAGECONFIG[onedrive] = "-Donedrive=true, -Donedrive=false, msgraph"
+PACKAGECONFIG[samba] = "-Dsmb=true, -Dsmb=false, samba"
+PACKAGECONFIG[systemd] = "-Dsystemduserunitdir=${systemd_user_unitdir} -Dtmpfilesdir=${libdir}/tmpfiles.d, -Dsystemduserunitdir=no -Dtmpfilesdir=no, systemd"
+
+# needs meta-filesystems
+PACKAGECONFIG[fuse] = "-Dfuse=true, -Dfuse=false, fuse3"
+
+# libcdio-paranoia recipe doesn't exist yet
+PACKAGECONFIG[cdda] = "-Dcdda=true, -Dcdda=false, libcdio-paranoia"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd"
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'true', 'false', d)}; then
+ # Fix up permissions on polkit rules.d to work with rpm4 constraints
+ chmod 700 ${D}${datadir}/polkit-1/rules.d
+ chown polkitd:root ${D}${datadir}/polkit-1/rules.d
+ fi
+
+ # After rebuilds (not from scracth) it can happen that the executables in
+ # libexec ar missing executable permission flag. Not sure but it came up
+ # during transition to meson. Looked into build files and logs but could
+ # not find suspicious
+ for exe in `find ${D}/${libexecdir}`; do
+ chmod +x $exe
+ done
+}
diff --git a/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.2.0.bb b/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.2.0.bb
deleted file mode 100644
index 7a1f86a73d..0000000000
--- a/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.2.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Building blocks for modern GNOME applications"
-LICENSE="LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-DEPENDS = " \
- sassc-native \
- gtk4 \
-"
-
-inherit gnomebase gobject-introspection gtk-doc vala features_check
-
-SRC_URI[archive.sha256sum] = "322f3e1be39ba67981d9fe7228a85818eccaa2ed0aa42bcafe263af881c6460c"
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-REQUIRED_DISTRO_FEATURES = "opengl"
-
-GIR_MESON_ENABLE_FLAG = 'enabled'
-GIR_MESON_DISABLE_FLAG = 'disabled'
-GTKDOC_MESON_OPTION = 'gtk_doc'
-
-PACKAGECONFIG[examples] = "-Dexamples=true,-Dexamples=false"
-
-FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb b/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb
deleted file mode 100644
index 859eab9164..0000000000
--- a/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "libchamplain is a Gtk widget displaying zoomable and pannable maps"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-DEPENDS = "glib-2.0 gtk+3 gdk-pixbuf clutter-1.0 clutter-gtk-1.0 libsoup-2.4"
-
-inherit features_check gobject-introspection meson pkgconfig
-
-REQUIRED_DISTRO_FEATURES = "opengl"
-
-SRCREV = "145e417f32e507b63c21ad4e915b808a6174099e"
-SRC_URI = "git://github.com/gnome/libchamplain.git;branch=master;protocol=https"
-
-S = "${WORKDIR}/git"
-
diff --git a/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.21.bb b/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.21.bb
new file mode 100644
index 0000000000..a89ab8cc74
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.21.bb
@@ -0,0 +1,14 @@
+SUMMARY = "libchamplain is a Gtk widget displaying zoomable and pannable maps"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+DEPENDS = "glib-2.0 gtk+3 clutter-1.0 clutter-gtk-1.0 libsoup-3.0 cairo sqlite3"
+
+inherit features_check gobject-introspection meson pkgconfig vala
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+SRCREV = "941560af497148588783db991e8135f52a82574d"
+SRC_URI = "git://github.com/gnome/libchamplain.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
diff --git a/meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb b/meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb
index bd9180e8a1..a65fc61feb 100644
--- a/meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb
+++ b/meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb
@@ -7,14 +7,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \
file://gdata/gdata.h;endline=20;md5=079a554efcf65d46f96a515806e7e99a \
file://gdata/gdata-types.h;endline=20;md5=7399b111aac8718da13888fc634be6ef"
-DEPENDS = "libxml2 glib-2.0 libsoup-2.4 intltool-native liboauth gcr json-glib"
+DEPENDS = "libxml2 glib-2.0 libsoup-2.4 intltool-native liboauth gcr3 json-glib"
GTKDOC_MESON_OPTION = "gtk_doc"
-GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase pkgconfig gettext gtk-doc vala gobject-introspection manpages features_check
ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'goa', 'opengl', '', d)}"
do_compile:prepend() {
export GIR_EXTRA_LIBS_PATH="${B}/gdata/.libs"
diff --git a/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.50.bb b/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.50.bb
deleted file mode 100644
index d2486a0352..0000000000
--- a/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.50.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "GNOME Structured File Library"
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dc7371b50816c96e145fa0f8ade8e24d \
- file://COPYING.LIB;md5=61464cfe342798eeced82efe9ae55f63"
-
-SECTION = "libs"
-
-DEPENDS= "libxml2 bzip2 glib-2.0 zlib gnome-common-native"
-
-inherit gnomebase gobject-introspection gettext gtk-doc
-
-SRC_URI[archive.sha256sum] = "6e6c20d0778339069d583c0d63759d297e817ea10d0d897ebbe965f16e2e8e52"
-SRC_URI += "file://0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gdk-pixbuf] = "--with-gdk-pixbuf,--without-gdk-pixbuf,gdk-pixbuf"
-
-EXTRA_OECONF = "\
- --with-bz2 \
-"
-
-FILES:${PN} += "${datadir}/thumbnailers"
diff --git a/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.52.bb b/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.52.bb
new file mode 100644
index 0000000000..7e1842b1ac
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.52.bb
@@ -0,0 +1,22 @@
+SUMMARY = "GNOME Structured File Library"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=61464cfe342798eeced82efe9ae55f63"
+
+SECTION = "libs"
+
+DEPENDS= "libxml2 bzip2 glib-2.0 zlib"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase gobject-introspection gettext gtk-doc
+
+SRC_URI[archive.sha256sum] = "9181c914b9fac0e05d6bcaa34c7b552fe5fc0961d3c9f8c01ccc381fb084bcf0"
+SRC_URI += "file://0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gdk-pixbuf] = "--with-gdk-pixbuf,--without-gdk-pixbuf,gdk-pixbuf"
+
+EXTRA_OECONF = "\
+ --with-bz2 \
+"
+
+FILES:${PN} += "${datadir}/thumbnailers"
diff --git a/meta-gnome/recipes-gnome/libgtop/libgtop/0001-Pass-correct-parameter.patch b/meta-gnome/recipes-gnome/libgtop/libgtop/0001-Pass-correct-parameter.patch
deleted file mode 100644
index 5ea8eed516..0000000000
--- a/meta-gnome/recipes-gnome/libgtop/libgtop/0001-Pass-correct-parameter.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From e969ac59335d3fb1cd228f8e7c4f6c2dda4fa536 Mon Sep 17 00:00:00 2001
-From: Avinash Sonawane <rootkea@gmail.com>
-Date: Mon, 20 Dec 2021 13:33:42 +0530
-Subject: [PATCH] Pass correct parameter
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libgtop/-/merge_requests/35]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/daemon/main.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/daemon/main.c b/src/daemon/main.c
-index b51addf..eaee3b3 100644
---- a/src/daemon/main.c
-+++ b/src/daemon/main.c
-@@ -222,8 +222,9 @@ handle_parent_connection (int s)
- 0, NULL);
- break;
- case GLIBTOP_CMND_PROC_IO:
-+ memcpy (&pid, parameter, sizeof (pid_t));
- glibtop_get_proc_io_l
-- (server, &resp->u.data.proc_io, parameter);
-+ (server, &resp->u.data.proc_io, pid);
- do_output (s, resp, _offset_data (proc_io),
- 0, NULL);
- break;
---
-2.37.2
-
diff --git a/meta-gnome/recipes-gnome/libgtop/libgtop/0001-fix-compile-error-for-cross-compile.patch b/meta-gnome/recipes-gnome/libgtop/libgtop/0001-fix-compile-error-for-cross-compile.patch
deleted file mode 100644
index 1bd6e101b5..0000000000
--- a/meta-gnome/recipes-gnome/libgtop/libgtop/0001-fix-compile-error-for-cross-compile.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From e865a93000913b4597607289356114cd159f4e28 Mon Sep 17 00:00:00 2001
-From: Your Name <you@example.com>
-Date: Fri, 21 May 2021 03:02:29 +0000
-Subject: [PATCH] fix compile error for cross compile
-
-On some distros, such as fedora32, cross compile failed with following
-error since host library is used. undefined reference to
-`stat64@GLIBC_2.33'
-
-According doc of ld, set searchdir begins with "=", but not hardcoded
-locations.
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libgtop/-/merge_requests/26]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 472f44b..ed6a4d7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -270,8 +270,8 @@ AC_ARG_ENABLE(fatal-warnings,
- [Define to enable fatal warnings]))
-
- dnl These definitions are expanded in make.
--LIBGTOP_LIBS='-L$(libdir)'
--LIBGTOP_INCS='-I$(includedir)/libgtop-2.0'
-+LIBGTOP_LIBS='-L=$(libdir)'
-+LIBGTOP_INCS='-I=$(includedir)/libgtop-2.0'
-
- if test x$libgtop_have_sysinfo = xyes ; then
- LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO"
---
-2.26.2
-
diff --git a/meta-gnome/recipes-gnome/libgtop/libgtop/0001-netload-Include-libc-net-headers-unconditionally.patch b/meta-gnome/recipes-gnome/libgtop/libgtop/0001-netload-Include-libc-net-headers-unconditionally.patch
deleted file mode 100644
index c4f7da4bf6..0000000000
--- a/meta-gnome/recipes-gnome/libgtop/libgtop/0001-netload-Include-libc-net-headers-unconditionally.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 3c6f70e50cb586ac4add4dea627c316242691040 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 09:17:29 -0700
-Subject: [PATCH] netload: Include libc net headers unconditionally
-
-This fixes compile with musl, and this conditional
-is not needed now a days if we are still using glibc < 1.0
-we have other bigger problems
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- sysdeps/linux/netload.c | 11 -----------
- 1 file changed, 11 deletions(-)
-
-diff --git a/sysdeps/linux/netload.c b/sysdeps/linux/netload.c
-index c275db2..446bddd 100644
---- a/sysdeps/linux/netload.c
-+++ b/sysdeps/linux/netload.c
-@@ -34,8 +34,6 @@
- #include <sys/socket.h>
- #include <sys/ioctl.h>
-
--#if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1
--/* GNU LibC */
- #include <net/if.h>
- #include <netinet/ip_icmp.h>
- #include <netinet/in.h>
-@@ -43,15 +41,6 @@
- #include <netinet/tcp.h>
- #include <netinet/udp.h>
- #include <net/if.h>
--#else /* Libc 5 */
--#include <linux/if.h>
--#include <linux/in.h>
--#include <linux/ip.h>
--#include <linux/icmp.h>
--#include <linux/tcp.h>
--#include <linux/udp.h>
--#endif
--
-
- #ifdef HAVE_IFADDRS_H
- /* needed for IPV6 support */
---
-2.13.2
-
diff --git a/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb b/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb
deleted file mode 100644
index fa95e0bee0..0000000000
--- a/meta-gnome/recipes-gnome/libgtop/libgtop_2.40.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A library for collecting system monitoring data"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit gnomebase lib_package gtk-doc gobject-introspection gettext upstream-version-is-even features_check
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI += "file://0001-fix-compile-error-for-cross-compile.patch \
- file://0001-Pass-correct-parameter.patch \
- "
-
-SRC_URI[archive.sha256sum] = "78f3274c0c79c434c03655c1b35edf7b95ec0421430897fb1345a98a265ed2d4"
-
-DEPENDS = "glib-2.0 libxau"
diff --git a/meta-gnome/recipes-gnome/libgtop/libgtop_2.41.3.bb b/meta-gnome/recipes-gnome/libgtop/libgtop_2.41.3.bb
new file mode 100644
index 0000000000..5587baa0f7
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libgtop/libgtop_2.41.3.bb
@@ -0,0 +1,12 @@
+SUMMARY = "A library for collecting system monitoring data"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase lib_package gtk-doc gobject-introspection gettext upstream-version-is-even features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI[archive.sha256sum] = "775676df958e2ea2452f7568f28b2ea581063d312773dd5c0b7624c1b9b2da8c"
+
+DEPENDS = "glib-2.0 libxau"
diff --git a/meta-gnome/recipes-gnome/libgweather/libgweather4/0001-Allow-building-gir-in-cross-environments.patch b/meta-gnome/recipes-gnome/libgweather/libgweather4/0001-Allow-building-gir-in-cross-environments.patch
index 6c6a643edf..3a075de651 100644
--- a/meta-gnome/recipes-gnome/libgweather/libgweather4/0001-Allow-building-gir-in-cross-environments.patch
+++ b/meta-gnome/recipes-gnome/libgweather/libgweather4/0001-Allow-building-gir-in-cross-environments.patch
@@ -11,23 +11,16 @@ For us this works perfectly fine
Upstream-Status: Inappropriate [OE-specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- libgweather/meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
-diff --git a/libgweather/meson.build b/libgweather/meson.build
-index 08311af..ef554f2 100644
---- a/libgweather/meson.build
-+++ b/libgweather/meson.build
-@@ -208,7 +208,7 @@ lib_libgweather = library('gweather-4',
- )
+--- a/meson.build 2022-09-18 14:48:53.000000000 +0200
++++ b/meson.build 2022-11-26 14:05:13.302487232 +0100
+@@ -51,7 +51,7 @@
+ gen_locations_variant = find_program('build-aux/meson/gen_locations_variant.py')
g_ir_scanner = find_program('g-ir-scanner', required: get_option('introspection'))
-build_gir = get_option('introspection') and g_ir_scanner.found() and not meson.is_cross_build()
+build_gir = get_option('introspection') and g_ir_scanner.found()
+ build_docs = get_option('gtk_doc') and build_gir
- enable_vala = get_option('enable_vala')
- vapigen = find_program('vapigen', required: enable_vala == 'true')
---
-2.34.1
-
+ schemas_srcdir = meson.project_source_root() / 'schemas'
diff --git a/meta-gnome/recipes-gnome/libgweather/libgweather4_4.0.0.bb b/meta-gnome/recipes-gnome/libgweather/libgweather4_4.0.0.bb
deleted file mode 100644
index 708d27a61f..0000000000
--- a/meta-gnome/recipes-gnome/libgweather/libgweather4_4.0.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "A library to access weather information from online services"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-GNOMEBASEBUILDCLASS = "meson"
-GNOMEBN = "libgweather"
-S = "${WORKDIR}/${GNOMEBN}-${PV}"
-
-inherit gnomebase gsettings gobject-introspection gettext gtk-doc vala
-
-SRC_URI += "file://0001-Allow-building-gir-in-cross-environments.patch"
-SRC_URI[archive.sha256sum] = "440d44801b6f72b48c676e5e37f9109cfee1394fd74cc92725e1b1ba4fae834c"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-DEPENDS = " \
- geocode-glib \
- gtk+3 \
- json-glib \
- libsoup-2.4 \
- python3-pygobject-native \
-"
-
-FILES:${PN} += " \
- ${datadir}/libgweather-4 \
- ${libdir}/libgweather-4 \
-"
diff --git a/meta-gnome/recipes-gnome/libgweather/libgweather4_4.4.2.bb b/meta-gnome/recipes-gnome/libgweather/libgweather4_4.4.2.bb
new file mode 100644
index 0000000000..acf2885281
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libgweather/libgweather4_4.4.2.bb
@@ -0,0 +1,30 @@
+SUMMARY = "A library to access weather information from online services"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+GNOMEBN = "libgweather"
+S = "${WORKDIR}/${GNOMEBN}-${PV}"
+
+inherit gnomebase gsettings gobject-introspection gettext gi-docgen vala features_check
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+SRC_URI += "file://0001-Allow-building-gir-in-cross-environments.patch"
+SRC_URI[archive.sha256sum] = "a6e427b4770ada48945f3aa906af710fc833cff0d42df91f1828302740d794ec"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+VALA_MESON_OPTION = "enable_vala"
+
+DEPENDS = " \
+ geocode-glib \
+ gtk4 \
+ json-glib \
+ libsoup-3.0 \
+ python3-pygobject-native \
+"
+
+FILES:${PN} += " \
+ ${datadir}/libgweather-4 \
+ ${libdir}/libgweather-4 \
+"
diff --git a/meta-gnome/recipes-gnome/libgweather/libgweather_40.0.bb b/meta-gnome/recipes-gnome/libgweather/libgweather_40.0.bb
deleted file mode 100644
index 771fc62e1e..0000000000
--- a/meta-gnome/recipes-gnome/libgweather/libgweather_40.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "A library to access weather information from online services"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection gettext gtk-doc vala features_check upstream-version-is-even
-
-SRC_URI[archive.sha256sum] = "ca4e8f2a4baaa9fc6d75d8856adb57056ef1cd6e55c775ba878ae141b6276ee6"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-GIR_MESON_OPTION = ""
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-DEPENDS = " \
- geocode-glib \
- gtk+3 \
- json-glib \
- libsoup-2.4 \
- python3-pygobject-native \
-"
diff --git a/meta-gnome/recipes-gnome/libportal/libportal_0.6.bb b/meta-gnome/recipes-gnome/libportal/libportal_0.6.bb
deleted file mode 100644
index 9784f04818..0000000000
--- a/meta-gnome/recipes-gnome/libportal/libportal_0.6.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "libportal provides GIO-style async APIs for most Flatpak portals."
-DESCRIPTION = "It provides simple asynchronous wrappers for most Flatpak portals \
-with a familiar GObject API along side the D-Bus API"
-HOMEPAGE = "https://github.com/flatpak/libportal"
-BUGTRACKER = "https://github.com/flatpak/libportal/issues"
-LICENSE = "LGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3000208d539ec061b899bce1d9ce9404"
-
-SRC_URI = "git://github.com/flatpak/${BPN}.git;protocol=https;branch=main"
-SRCREV = "13df0b887a7eb7b0f9b14069561a41f62e813155"
-S = "${WORKDIR}/git"
-
-inherit meson gtk-doc gobject-introspection features_check
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-DEPENDS += "glib-2.0 glib-2.0-native gtk+3"
-
-EXTRA_OEMESON = "-Dbackends=gtk3 -Dvapi=false"
diff --git a/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb b/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
index d633b0621d..bafe7af040 100644
--- a/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
+++ b/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
@@ -4,8 +4,7 @@ SECTION = "devel/lib"
LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-SRC_URI = "http://archive.ubuntu.com/ubuntu/pool/main/libt/${BPN}/${BPN}_${PV}.tar.gz"
-SRC_URI[md5sum] = "f85a21994a397fb1ff2d3ec404bdd592"
+SRC_URI = "${DEBIAN_MIRROR}/main/libt/${BPN}/${BPN}_${PV}.orig.tar.gz;downloadfilename=${BP}.tar.gz"
SRC_URI[sha256sum] = "0d634cc2476d8f57d1ee1864bd4f442180ae4bf040a9ae4bf73b66bbd85d7195"
DEPENDS = "gtk+3 gdk-pixbuf libsoup-2.4 json-glib gnome-common-native"
diff --git a/meta-gnome/recipes-gnome/libwnck/libwnck3_40.1.bb b/meta-gnome/recipes-gnome/libwnck/libwnck3_40.1.bb
deleted file mode 100644
index a6c82b2cb7..0000000000
--- a/meta-gnome/recipes-gnome/libwnck/libwnck3_40.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Window navigation construction toolkit"
-LICENSE = "LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-BPN = "libwnck"
-
-SECTION = "x11/libs"
-DEPENDS = "intltool-native gnome-common-native gtk+3 gdk-pixbuf-native"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG[x11] = "-Dstartup_notification=enabled,-Dstartup_notification=disabled,startup-notification libxres"
-
-GNOMEBASEBUILDCLASS = "meson"
-GTKDOC_MESON_OPTION = "gtk_doc"
-GIR_MESON_ENABLE_FLAG = 'enabled'
-GIR_MESON_DISABLE_FLAG = 'disabled'
-
-inherit gnomebase gobject-introspection gtk-doc gettext features_check
-
-def gnome_verdir(v):
- return oe.utils.trim_version(v, 1)
-
-SRC_URI[archive.sha256sum] = "03134fa114ef3fbe34075aa83678f58aa2debe9fcef4ea23c0779e28601d6611"
-
-# gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
-# cairo would at least needed to be built with xlib.
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/meta-gnome/recipes-gnome/libwnck/libwnck3_43.0.bb b/meta-gnome/recipes-gnome/libwnck/libwnck3_43.0.bb
new file mode 100644
index 0000000000..c7f7989115
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libwnck/libwnck3_43.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Window navigation construction toolkit"
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+BPN = "libwnck"
+
+SECTION = "x11/libs"
+DEPENDS = "cairo glib-2.0 gtk+3"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG[x11] = "-Dstartup_notification=enabled,-Dstartup_notification=disabled,startup-notification libxres"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
+inherit gnomebase gobject-introspection gtk-doc gettext features_check
+
+def gnome_verdir(v):
+ return oe.utils.trim_version(v, 1)
+
+SRC_URI[archive.sha256sum] = "905bcdb85847d6b8f8861e56b30cd6dc61eae67ecef4cd994a9f925a26a2c1fe"
+
+# gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
+# cairo would at least needed to be built with xlib.
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb b/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb
index 3abba94990..d7f47002f8 100644
--- a/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb
+++ b/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb
@@ -8,7 +8,8 @@ DEPENDS = "intltool-native gnome-common-native gtk+ gdk-pixbuf-native libxres"
PACKAGECONFIG ??= "startup-notification"
PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
-inherit gnomebase gobject-introspection features_check
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase gobject-introspection features_check gtk-doc
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI[archive.md5sum] = "f03e1139296e2a3a92e3b65a3080cd32"
diff --git a/meta-gnome/recipes-gnome/libxklavier/libxklavier/fix-do_installe-failure.patch b/meta-gnome/recipes-gnome/libxklavier/libxklavier/fix-do_installe-failure.patch
index 29eeef3d50..6c32bfa14f 100644
--- a/meta-gnome/recipes-gnome/libxklavier/libxklavier/fix-do_installe-failure.patch
+++ b/meta-gnome/recipes-gnome/libxklavier/libxklavier/fix-do_installe-failure.patch
@@ -12,7 +12,7 @@ libxklavier.vapi': No such file or directory
| 21 make[3]: *** [install-vapiDATA] Error 1
| 22 make[3]: *** Waiting for unfinished jobs....
-Upstream-Stauts: Pending
+Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
diff --git a/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb b/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb
index 7955663f26..f52c210ed4 100644
--- a/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb
+++ b/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812"
DEPENDS = "xkbcomp gtk+ iso-codes libxi libxml2"
-inherit autotools pkgconfig gettext gobject-introspection features_check
+inherit autotools pkgconfig gettext gobject-introspection features_check gtk-doc
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-gnome/recipes-gnome/metacity/metacity/0001-drop-zenity-detection.patch b/meta-gnome/recipes-gnome/metacity/metacity/0001-drop-zenity-detection.patch
index 315d4e4366..cd46824c39 100644
--- a/meta-gnome/recipes-gnome/metacity/metacity/0001-drop-zenity-detection.patch
+++ b/meta-gnome/recipes-gnome/metacity/metacity/0001-drop-zenity-detection.patch
@@ -1,11 +1,11 @@
-From ec0e52b49c9b6869413c9544c2ed44710ab91141 Mon Sep 17 00:00:00 2001
+From d36e65f3e31c882f62d5cfeb7b0e1441d5fdc821 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Sat, 14 Apr 2018 16:15:59 +0800
Subject: [PATCH] drop zenity detection
OE does not support zenity
-Upstream-Status: inappropriate [OE specific]
+Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
@@ -13,10 +13,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
1 file changed, 5 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 528b7d2..8932ae6 100644
+index bbb4db8..2010d78 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -337,11 +337,6 @@ fi
+@@ -336,11 +336,6 @@ fi
AM_CONDITIONAL(HAVE_SM, test "$found_sm" = "yes")
@@ -28,6 +28,3 @@ index 528b7d2..8932ae6 100644
AC_SEARCH_LIBS([dlsym], [dl], [], [
AC_MSG_ERROR([unable to find the dlsym() function])
])
---
-2.31.1
-
diff --git a/meta-gnome/recipes-gnome/metacity/metacity_3.44.0.bb b/meta-gnome/recipes-gnome/metacity/metacity_3.44.0.bb
deleted file mode 100644
index b6708552ac..0000000000
--- a/meta-gnome/recipes-gnome/metacity/metacity_3.44.0.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SECTION = "x11/wm"
-SUMMARY = "Metacity is the boring window manager for the adult in you"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b4cce53560b8e619ffa7c830fb8761aa \
- file://src/include/main.h;endline=24;md5=72148ede07a6dadd01de6a882d20a9ad"
-
-PE = "1"
-
-DEPENDS = " \
- gdk-pixbuf-native \
- gtk+3 \
- gsettings-desktop-schemas \
- startup-notification \
- libcanberra \
- libgtop \
- libxres \
- libxpresent \
-"
-
-
-# depends on startup-notification which depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-inherit gnomebase gsettings gettext upstream-version-is-even features_check
-
-SRC_URI[archive.sha256sum] = "19c3c5d79d2171f45baa0f632cc8995f8607bf1231a16014439bac9ba165a7c0"
-SRC_URI += "file://0001-drop-zenity-detection.patch"
-
-PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama"
-# enable as neccessary until new warnings are dealt with
-PACKAGECONFIG[werror] = "--enable-Werror,--disable-Werror,,"
-
-FILES:${PN} += " \
- ${datadir}/themes \
- ${datadir}/gnome-control-center \
- ${datadir}/gnome\
-"
-
-RDEPENDS:${PN} += "gsettings-desktop-schemas"
diff --git a/meta-gnome/recipes-gnome/metacity/metacity_3.52.0.bb b/meta-gnome/recipes-gnome/metacity/metacity_3.52.0.bb
new file mode 100644
index 0000000000..32f0801706
--- /dev/null
+++ b/meta-gnome/recipes-gnome/metacity/metacity_3.52.0.bb
@@ -0,0 +1,40 @@
+SECTION = "x11/wm"
+SUMMARY = "Metacity is the boring window manager for the adult in you"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b4cce53560b8e619ffa7c830fb8761aa \
+ file://src/include/main.h;endline=24;md5=72148ede07a6dadd01de6a882d20a9ad"
+
+PE = "1"
+
+DEPENDS = " \
+ gdk-pixbuf-native \
+ gtk+3 \
+ gsettings-desktop-schemas \
+ startup-notification \
+ libcanberra \
+ libgtop \
+ libxres \
+ libxpresent \
+"
+
+
+# depends on startup-notification which depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase gsettings gettext upstream-version-is-even features_check
+
+SRC_URI[archive.sha256sum] = "a72438ace6d5903ae79338c6098b1b35ab91c8a97c4323701d3bef1f3eeb191c"
+SRC_URI += "file://0001-drop-zenity-detection.patch"
+
+PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama"
+# enable as neccessary until new warnings are dealt with
+PACKAGECONFIG[werror] = "--enable-Werror,--disable-Werror,,"
+
+FILES:${PN} += " \
+ ${datadir}/themes \
+ ${datadir}/gnome-control-center \
+ ${datadir}/gnome\
+"
+
+RDEPENDS:${PN} += "gsettings-desktop-schemas"
diff --git a/meta-gnome/recipes-gnome/msgraph/msgraph_0.2.1.bb b/meta-gnome/recipes-gnome/msgraph/msgraph_0.2.1.bb
new file mode 100644
index 0000000000..4c11a8d136
--- /dev/null
+++ b/meta-gnome/recipes-gnome/msgraph/msgraph_0.2.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "libmsgraph is a GLib-based library for accessing online serive APIs using MS Graph protocol."
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3000208d539ec061b899bce1d9ce9404"
+
+inherit gnomebase gobject-introspection gi-docgen
+
+SRC_URI[archive.sha256sum] = "e0e59eaa8ae3e0a48ec0a6c2fed0470856a709248e9212b6a1d037de5792ecbb"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+EXTRA_OEMESON = "-Dtests=false"
+
+DEPENDS = " \
+ glib-2.0\
+ json-glib \
+ rest \
+ gnome-online-accounts \
+"
diff --git a/meta-gnome/recipes-gnome/mutter/mutter_42.0.bb b/meta-gnome/recipes-gnome/mutter/mutter_42.0.bb
deleted file mode 100644
index 7855362800..0000000000
--- a/meta-gnome/recipes-gnome/mutter/mutter_42.0.bb
+++ /dev/null
@@ -1,98 +0,0 @@
-SUMMARY = "Window and compositing manager based on Clutter"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = " \
- xserver-xorg-cvt-native \
- wayland-native \
- virtual/libx11 \
- graphene \
- gtk+3 \
- gdk-pixbuf \
- cairo \
- pango \
- gsettings-desktop-schemas \
- json-glib \
- gnome-desktop \
- gnome-settings-daemon \
- libxtst \
- libxkbfile \
- xinerama \
- xwayland \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection gettext features_check
-
-SRC_URI[archive.sha256sum] = "d1e240446b7f8cd8a3ff9daae336c1c9016193ba7e0769c79a5e6c03849022e5"
-
-# x11 is still manadatory - see meson.build
-REQUIRED_DISTRO_FEATURES = "wayland x11 polkit"
-
-# systemd can be replaced by libelogind (not available atow - make systemd
-# mandatory distro feature)
-LOGIND ?= "systemd"
-REQUIRED_DISTRO_FEATURES += "systemd"
-
-# profiler requires sysprof 3.34 which is not willing to build atow
-PACKAGECONFIG ??= " \
- native-backend \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl glx', '', d)} \
- sm \
- startup-notification \
-"
-
-EXTRA_OEMESON += " \
- -Dtests=false \
- -Dnative_tests=false \
- -Dxwayland_path=${bindir}/Xwayland \
-"
-
-# combi-config - see meson_options.txt for more details
-PACKAGECONFIG[native-backend] = "-Dnative_backend=true -Dudev=true, -Dnative_backend=false -Dudev=false, libdrm virtual/libgbm libinput ${LOGIND} virtual/egl virtual/libgles2 udev"
-PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=true, virtual/libgl"
-PACKAGECONFIG[glx] = "-Dglx=true, -Dglx=false"
-PACKAGECONFIG[libwacom] = "-Dlibwacom=true, -Dlibwacom=false, libwacom"
-# Remove depending on pipewire-0.2 when mutter is upgraded to 3.36+
-PACKAGECONFIG[remote-desktop] = "-Dremote_desktop=true, -Dremote_desktop=false, pipewire"
-PACKAGECONFIG[sm] = "-Dsm=true, -Dsm=false, libsm"
-PACKAGECONFIG[profiler] = "-Dprofiler=true,-Dprofiler=false,sysprof"
-PACKAGECONFIG[startup-notification] = "-Dstartup_notification=true, -Dstartup_notification=false, startup-notification, startup-notification"
-
-MUTTER_API_NAME = "mutter-10"
-
-do_install:append() {
- # Add gir links in standard paths. That makes dependents life much easier
- # to find them
- install -d ${D}${datadir}/gir-1.0
- for gir_full in `find ${D}${libdir}/${MUTTER_API_NAME} -name '*.gir'`; do
- gir=`basename "$gir_full"`
- ln -sr "${D}${libdir}/${MUTTER_API_NAME}/$gir" "${D}${datadir}/gir-1.0/$gir"
- done
-}
-
-GSETTINGS_PACKAGE = "${PN}-gsettings"
-
-PACKAGES =+ "${PN}-tests ${PN}-gsettings"
-
-FILES:${PN} += " \
- ${datadir}/gnome-control-center \
- ${libdir}/${MUTTER_API_NAME}/lib*${SOLIBS} \
- ${libdir}/${MUTTER_API_NAME}/*.typelib \
- ${libdir}/${MUTTER_API_NAME}/plugins \
-"
-
-FILES:${PN}-tests += " \
- ${datadir}/installed-tests \
- ${datadir}/${MUTTER_API_NAME}/tests \
- ${libexecdir}/installed-tests/${MUTTER_API_NAME} \
-"
-
-FILES:${PN}-dev += " \
- ${libdir}/${MUTTER_API_NAME}/*.gir \
- ${libdir}/${MUTTER_API_NAME}/lib*.so \
-"
-
-RDEPENDS:${PN} += "zenity ${PN}-gsettings"
-
diff --git a/meta-gnome/recipes-gnome/mutter/mutter_46.0.bb b/meta-gnome/recipes-gnome/mutter/mutter_46.0.bb
new file mode 100644
index 0000000000..d14f161f14
--- /dev/null
+++ b/meta-gnome/recipes-gnome/mutter/mutter_46.0.bb
@@ -0,0 +1,109 @@
+SUMMARY = "Window and compositing manager based on Clutter"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = " \
+ xserver-xorg-cvt-native \
+ wayland-native \
+ virtual/libx11 \
+ colord \
+ graphene \
+ gtk4 \
+ gdk-pixbuf \
+ cairo \
+ pango \
+ gsettings-desktop-schemas \
+ json-glib \
+ libei \
+ libxtst \
+ libxkbfile \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xinerama', '', d)} \
+ xwayland \
+"
+
+
+inherit gnomebase gsettings gobject-introspection gettext features_check
+
+SRC_URI[archive.sha256sum] = "bb3f7d77aebdea9d317d3f5ef03868e4e7969da423ac495e33a16d61db2c9373"
+
+# x11 is still manadatory - see meson.build
+REQUIRED_DISTRO_FEATURES = "wayland x11 polkit"
+
+# systemd can be replaced by libelogind (not available atow - make systemd
+# mandatory distro feature)
+LOGIND ?= "systemd"
+REQUIRED_DISTRO_FEATURES += "systemd"
+
+# profiler requires sysprof 3.34 which is not willing to build atow
+PACKAGECONFIG ??= " \
+ native-backend \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl glx', '', d)} \
+ sm \
+ startup-notification \
+ gnome-desktop \
+"
+
+EXTRA_OEMESON += " \
+ -Dtests=false \
+ -Dnative_tests=false \
+ -Dxwayland_path=${bindir}/Xwayland \
+"
+
+# combi-config - see meson_options.txt for more details
+PACKAGECONFIG[native-backend] = "-Dnative_backend=true -Dudev=true, -Dnative_backend=false -Dudev=false, libdrm virtual/libgbm libinput ${LOGIND} virtual/egl virtual/libgles2 udev"
+PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=true, virtual/libgl"
+PACKAGECONFIG[glx] = "-Dglx=true, -Dglx=false"
+PACKAGECONFIG[libdisplay-info] = "-Dlibdisplay_info=true, -Dlibdisplay_info=false, libdisplay-info"
+PACKAGECONFIG[libwacom] = "-Dlibwacom=true, -Dlibwacom=false, libwacom"
+# Remove depending on pipewire-0.2 when mutter is upgraded to 3.36+
+PACKAGECONFIG[remote-desktop] = "-Dremote_desktop=true, -Dremote_desktop=false, pipewire"
+PACKAGECONFIG[gnome-desktop] = "-Dlibgnome_desktop=true, -Dlibgnome_desktop=false, gnome-desktop gnome-settings-daemon"
+PACKAGECONFIG[sm] = "-Dsm=true, -Dsm=false, libsm"
+PACKAGECONFIG[sound-player] = "-Dsound_player=true, -Dsound_player=false, libcanberra"
+PACKAGECONFIG[profiler] = "-Dprofiler=true,-Dprofiler=false,sysprof"
+PACKAGECONFIG[startup-notification] = "-Dstartup_notification=true, -Dstartup_notification=false, startup-notification, startup-notification"
+
+MUTTER_API_NAME = "mutter-14"
+
+do_install:prepend() {
+ sed -i -e 's|${B}/||g' ${B}/cogl/cogl/cogl-enum-types.c
+ sed -i -e 's|${B}/||g' ${B}/clutter/clutter/clutter-enum-types.c
+ sed -i -e 's|${B}/||g' ${B}/src/meta-private-enum-types.c
+ sed -i -e 's|${B}/||g' ${B}/src/meta/meta-enum-types.c
+}
+
+do_install:append() {
+ # Add gir links in standard paths. That makes dependents life much easier
+ # to find them
+ install -d ${D}${datadir}/gir-1.0
+ for gir_full in `find ${D}${libdir}/${MUTTER_API_NAME} -name '*.gir'`; do
+ gir=`basename "$gir_full"`
+ ln -sr "${D}${libdir}/${MUTTER_API_NAME}/$gir" "${D}${datadir}/gir-1.0/$gir"
+ done
+}
+
+GSETTINGS_PACKAGE = "${PN}-gsettings"
+
+PACKAGES =+ "${PN}-tests ${PN}-gsettings"
+
+FILES:${PN} += " \
+ ${datadir}/gnome-control-center \
+ ${datadir}/gir-1.0 \
+ ${libdir}/${MUTTER_API_NAME}/lib*${SOLIBS} \
+ ${libdir}/${MUTTER_API_NAME}/*.typelib \
+ ${libdir}/${MUTTER_API_NAME}/plugins \
+"
+
+FILES:${PN}-tests += " \
+ ${datadir}/installed-tests \
+ ${datadir}/${MUTTER_API_NAME}/tests \
+ ${libexecdir}/installed-tests/${MUTTER_API_NAME} \
+"
+
+FILES:${PN}-dev += " \
+ ${libdir}/${MUTTER_API_NAME}/*.gir \
+ ${libdir}/${MUTTER_API_NAME}/lib*.so \
+"
+
+RDEPENDS:${PN} += "${PN}-gsettings gsettings-desktop-schemas"
+
diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Provide-parameter-prototype-for-functions-without-pa.patch b/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Provide-parameter-prototype-for-functions-without-pa.patch
deleted file mode 100644
index 6c743d8ce7..0000000000
--- a/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Provide-parameter-prototype-for-functions-without-pa.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 76f1625bae95212ec6d4bc1bd1c8ff1232150c48 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 29 Aug 2022 13:14:09 -0700
-Subject: [PATCH] Provide parameter prototype for functions without parameter
-
-Fixes build with clang-15 with -Wstrict-prototypes
-
-src/nautilus-toolbar.c:1205:22: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
-nautilus_toolbar_new ()
- ^
- void
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/nautilus/-/commit/95d35aedf68f0398a6ee9e0b0af9ce80528fdc22]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/nautilus-file-undo-manager.c | 4 ++--
- src/nautilus-list-model.c | 2 +-
- src/nautilus-starred-directory.c | 2 +-
- src/nautilus-toolbar.c | 2 +-
- src/nautilus-view-model.c | 2 +-
- 5 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/src/nautilus-file-undo-manager.c b/src/nautilus-file-undo-manager.c
-index 2a886176f..f2d1eebcf 100644
---- a/src/nautilus-file-undo-manager.c
-+++ b/src/nautilus-file-undo-manager.c
-@@ -258,13 +258,13 @@ nautilus_file_undo_manager_get_state (void)
-
-
- gboolean
--nautilus_file_undo_manager_is_operating ()
-+nautilus_file_undo_manager_is_operating (void)
- {
- return undo_singleton->is_operating;
- }
-
- NautilusFileUndoManager *
--nautilus_file_undo_manager_get ()
-+nautilus_file_undo_manager_get (void)
- {
- return undo_singleton;
- }
-diff --git a/src/nautilus-list-model.c b/src/nautilus-list-model.c
-index 7e2aeeeee..741007105 100644
---- a/src/nautilus-list-model.c
-+++ b/src/nautilus-list-model.c
-@@ -1625,7 +1625,7 @@ nautilus_list_model_get_drag_view (NautilusListModel *model,
- }
-
- GtkTargetList *
--nautilus_list_model_get_drag_target_list ()
-+nautilus_list_model_get_drag_target_list (void)
- {
- GtkTargetList *target_list;
-
-diff --git a/src/nautilus-starred-directory.c b/src/nautilus-starred-directory.c
-index fd41418a4..07ed62693 100644
---- a/src/nautilus-starred-directory.c
-+++ b/src/nautilus-starred-directory.c
-@@ -556,7 +556,7 @@ nautilus_starred_directory_class_init (NautilusFavoriteDirectoryClass *klass)
- }
-
- NautilusFavoriteDirectory *
--nautilus_starred_directory_new ()
-+nautilus_starred_directory_new (void)
- {
- NautilusFavoriteDirectory *self;
-
-diff --git a/src/nautilus-toolbar.c b/src/nautilus-toolbar.c
-index 5fe4e63a4..15a696827 100644
---- a/src/nautilus-toolbar.c
-+++ b/src/nautilus-toolbar.c
-@@ -1202,7 +1202,7 @@ nautilus_toolbar_class_init (NautilusToolbarClass *klass)
- }
-
- GtkWidget *
--nautilus_toolbar_new ()
-+nautilus_toolbar_new (void)
- {
- return g_object_new (NAUTILUS_TYPE_TOOLBAR,
- NULL);
-diff --git a/src/nautilus-view-model.c b/src/nautilus-view-model.c
-index 84c40302d..2935809ae 100644
---- a/src/nautilus-view-model.c
-+++ b/src/nautilus-view-model.c
-@@ -190,7 +190,7 @@ compare_data_func (gconstpointer a,
- }
-
- NautilusViewModel *
--nautilus_view_model_new ()
-+nautilus_view_model_new (void)
- {
- return g_object_new (NAUTILUS_TYPE_VIEW_MODEL, NULL);
- }
diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus_42.2.bb b/meta-gnome/recipes-gnome/nautilus/nautilus_42.2.bb
deleted file mode 100644
index a0f928ce25..0000000000
--- a/meta-gnome/recipes-gnome/nautilus/nautilus_42.2.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "File manager for GNOME"
-SECTION = "x11/gnome"
-
-LICENSE="GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-DEPENDS = " \
- fontconfig \
- gtk+3 \
- gnome-desktop \
- gsettings-desktop-schemas \
- gnome-autoar \
- tracker \
- libhandy \
-"
-
-inherit gnomebase gsettings gobject-introspection gtk-doc gettext features_check mime-xdg
-
-def gnome_verdir(v):
- return oe.utils.trim_version(v, 1)
-
-SRC_URI += " file://0001-Provide-parameter-prototype-for-functions-without-pa.patch"
-SRC_URI[archive.sha256sum] = "99212d2eb75996f181728ad04a2e2d86f2577b064e68a34c8b81a7037df4ccb2"
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OEMESON += " \
- -Dtests=none \
-"
-
-PACKAGECONFIG = "extensions"
-PACKAGECONFIG[extensions] = "-Dextensions=true,-Dextensions=false, gexiv2 gstreamer1.0-plugins-base"
-PACKAGECONFIG[libportal] = "-Dlibportal=true,-Dlibportal=false, libportal"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/metainfo \
- ${datadir}/gnome-shell \
- ${datadir}/tracker3 \
-"
-
-# mandatory - not checked during configuration:
-# | (org.gnome.Nautilus:863): GLib-GIO-ERROR **: 21:03:52.326: Settings schema 'org.freedesktop.Tracker.Miner.Files' is not installed
-RDEPENDS:${PN} += "tracker-miners"
diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus_45.1.bb b/meta-gnome/recipes-gnome/nautilus/nautilus_45.1.bb
new file mode 100644
index 0000000000..9c0d154ec8
--- /dev/null
+++ b/meta-gnome/recipes-gnome/nautilus/nautilus_45.1.bb
@@ -0,0 +1,54 @@
+SUMMARY = "File manager for GNOME"
+SECTION = "x11/gnome"
+
+LICENSE="GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
+
+
+DEPENDS = " \
+ appstream-glib-native \
+ desktop-file-utils-native \
+ glib-2.0 \
+ gnome-autoar \
+ gnome-desktop \
+ gtk4 \
+ libadwaita \
+ libcloudproviders \
+ libhandy \
+ libportal \
+ libxml2 \
+ tracker \
+"
+
+inherit gnomebase gsettings gobject-introspection gi-docgen gettext features_check mime-xdg gtk-icon-cache
+
+SRC_URI[archive.sha256sum] = "23bdaa9a85466c5937a89daddd080ed03bcc2b49e8b64af607206353bde82fe3"
+
+REQUIRED_DISTRO_FEATURES = "x11 opengl gobject-introspection-data"
+
+GIDOCGEN_MESON_OPTION = "docs"
+GIDOCGEN_MESON_ENABLE_FLAG = 'true'
+GIDOCGEN_MESON_DISABLE_FLAG = 'false'
+
+EXTRA_OEMESON += " \
+ -Dtests=none \
+"
+
+PACKAGECONFIG = "extensions"
+PACKAGECONFIG[extensions] = "-Dextensions=true,-Dextensions=false, gexiv2 gstreamer1.0-plugins-base gdk-pixbuf"
+PACKAGECONFIG[packagekit] = "-Dpackagekit=true,-Dpackagekit=false,packagekit"
+
+do_install:prepend() {
+ sed -i -e 's|${B}/||g' ${B}/src/nautilus-enum-types.c
+}
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${datadir}/gnome-shell \
+ ${datadir}/tracker3 \
+"
+
+# mandatory - not checked during configuration:
+# | (org.gnome.Nautilus:863): GLib-GIO-ERROR **: 21:03:52.326: Settings schema 'org.freedesktop.Tracker.Miner.Files' is not installed
+RDEPENDS:${PN} += "tracker-miners bubblewrap"
diff --git a/meta-gnome/recipes-gnome/rest/files/0001-Use-GUri-instead-of-SoupURI.patch b/meta-gnome/recipes-gnome/rest/files/0001-Use-GUri-instead-of-SoupURI.patch
deleted file mode 100644
index 37ba0a0429..0000000000
--- a/meta-gnome/recipes-gnome/rest/files/0001-Use-GUri-instead-of-SoupURI.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-From d39fd6d5f4c0a63cc048b84b0f989cb83f31e5fe Mon Sep 17 00:00:00 2001
-From: Carlos Garcia Campos <cgarcia@igalia.com>
-Date: Tue, 8 Jun 2021 10:57:06 +0200
-Subject: [PATCH 1/2] Use GUri instead of SoupURI
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/librest/-/merge_requests/6]
----
- configure.ac | 2 +-
- rest-extras/flickr-proxy.c | 19 ++++++++++++++-----
- rest/oauth-proxy-call.c | 19 ++++++++++++++-----
- rest/oauth2-proxy.c | 22 +++++++++++-----------
- 4 files changed, 40 insertions(+), 22 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index d15e592..d586e69 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -40,7 +40,7 @@ AM_PROG_CC_C_O
- LT_PREREQ([2.2.6])
- LT_INIT([disable-static])
-
--PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.44)
-+PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.67.4)
- PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.42)
- PKG_CHECK_MODULES(XML, libxml-2.0)
- PKG_CHECK_MODULES(GTHREAD, gthread-2.0)
-diff --git a/rest-extras/flickr-proxy.c b/rest-extras/flickr-proxy.c
-index 3342a4d..7726359 100644
---- a/rest-extras/flickr-proxy.c
-+++ b/rest-extras/flickr-proxy.c
-@@ -304,13 +304,13 @@ flickr_proxy_build_login_url (FlickrProxy *proxy,
- const char *frob,
- const char *perms)
- {
-- SoupURI *uri;
-+ GUri *uri;
- GHashTable *params;
- char *sig, *s;
-+ char *query;
-
- g_return_val_if_fail (FLICKR_IS_PROXY (proxy), NULL);
-
-- uri = soup_uri_new ("http://flickr.com/services/auth/");
- params = g_hash_table_new (g_str_hash, g_str_equal);
-
- g_hash_table_insert (params, "api_key", proxy->priv->api_key);
-@@ -321,14 +321,23 @@ flickr_proxy_build_login_url (FlickrProxy *proxy,
-
- sig = flickr_proxy_sign (proxy, params);
- g_hash_table_insert (params, "api_sig", sig);
-+ query = soup_form_encode_hash (params);
-
-- soup_uri_set_query_from_form (uri, params);
-+ uri = g_uri_build (G_URI_FLAGS_ENCODED,
-+ "http",
-+ NULL,
-+ "flickr.com",
-+ -1,
-+ "services/auth/",
-+ query,
-+ NULL);
-
-- s = soup_uri_to_string (uri, FALSE);
-+ s = g_uri_to_string (uri);
-
-+ g_free (query);
- g_free (sig);
- g_hash_table_destroy (params);
-- soup_uri_free (uri);
-+ g_uri_unref (uri);
-
- return s;
- }
-diff --git a/rest/oauth-proxy-call.c b/rest/oauth-proxy-call.c
-index c90c69d..e238c3c 100644
---- a/rest/oauth-proxy-call.c
-+++ b/rest/oauth-proxy-call.c
-@@ -30,7 +30,7 @@
-
- G_DEFINE_TYPE (OAuthProxyCall, oauth_proxy_call, REST_TYPE_PROXY_CALL)
-
--#define OAUTH_ENCODE_STRING(x_) (x_ ? soup_uri_encode( (x_), "!$&'()*+,;=@") : g_strdup (""))
-+#define OAUTH_ENCODE_STRING(x_) (x_ ? g_uri_escape_string( (x_), NULL, TRUE) : g_strdup (""))
-
- static char *
- sign_plaintext (OAuthProxyPrivate *priv)
-@@ -136,15 +136,24 @@ sign_hmac (OAuthProxy *proxy, RestProxyCall *call, GHashTable *oauth_params)
- if (priv->oauth_echo) {
- g_string_append_uri_escaped (text, priv->service_url, NULL, FALSE);
- } else if (priv->signature_host != NULL) {
-- SoupURI *url = soup_uri_new (url_str);
-+ GUri *url = g_uri_parse (url_str, G_URI_FLAGS_ENCODED, NULL);
-+ GUri *new_url;
- gchar *signing_url;
-
-- soup_uri_set_host (url, priv->signature_host);
-- signing_url = soup_uri_to_string (url, FALSE);
-+ new_url = g_uri_build (g_uri_get_flags (url),
-+ g_uri_get_scheme (url),
-+ g_uri_get_userinfo (url),
-+ priv->signature_host,
-+ g_uri_get_port (url),
-+ g_uri_get_path (url),
-+ g_uri_get_query (url),
-+ g_uri_get_fragment (url));
-+ signing_url = g_uri_to_string (new_url);
-
- g_string_append_uri_escaped (text, signing_url, NULL, FALSE);
-
-- soup_uri_free (url);
-+ g_uri_unref (new_url);
-+ g_uri_unref (url);
- g_free (signing_url);
- } else {
- g_string_append_uri_escaped (text, url_str, NULL, FALSE);
-diff --git a/rest/oauth2-proxy.c b/rest/oauth2-proxy.c
-index 24e5da0..3382f8b 100644
---- a/rest/oauth2-proxy.c
-+++ b/rest/oauth2-proxy.c
-@@ -37,8 +37,6 @@ oauth2_proxy_error_quark (void)
- return g_quark_from_static_string ("rest-oauth2-proxy");
- }
-
--#define EXTRA_CHARS_ENCODE "!$&'()*+,;=@"
--
- enum {
- PROP_0,
- PROP_CLIENT_ID,
-@@ -242,8 +240,8 @@ append_query_param (gpointer key, gpointer value, gpointer user_data)
- char *encoded_val, *encoded_key;
- char *param;
-
-- encoded_val = soup_uri_encode (value, EXTRA_CHARS_ENCODE);
-- encoded_key = soup_uri_encode (key, EXTRA_CHARS_ENCODE);
-+ encoded_val = g_uri_escape_string (value, NULL, TRUE);
-+ encoded_key = g_uri_escape_string (key, NULL, TRUE);
-
- param = g_strdup_printf ("%s=%s", encoded_key, encoded_val);
- g_free (encoded_key);
-@@ -295,8 +293,8 @@ oauth2_proxy_build_login_url_full (OAuth2Proxy *proxy,
- g_hash_table_foreach (extra_params, append_query_param, params);
- }
-
-- encoded_uri = soup_uri_encode (redirect_uri, EXTRA_CHARS_ENCODE);
-- encoded_id = soup_uri_encode (proxy->priv->client_id, EXTRA_CHARS_ENCODE);
-+ encoded_uri = g_uri_escape_string (redirect_uri, NULL, TRUE);
-+ encoded_id = g_uri_escape_string (proxy->priv->client_id, NULL, TRUE);
-
- url = g_strdup_printf ("%s?client_id=%s&redirect_uri=%s&type=user_agent",
- proxy->priv->auth_endpoint, encoded_id,
-@@ -378,20 +376,22 @@ oauth2_proxy_extract_access_token (const char *url)
- {
- GHashTable *params;
- char *token = NULL;
-- SoupURI *soupuri = soup_uri_new (url);
-+ const char *fragment;
-+ GUri *uri = g_uri_parse (url, G_URI_FLAGS_ENCODED, NULL);
-
-- if (soupuri->fragment != NULL) {
-- params = soup_form_decode (soupuri->fragment);
-+ fragment = g_uri_get_fragment (uri);
-+ if (fragment != NULL) {
-+ params = soup_form_decode (fragment);
-
- if (params) {
- char *encoded = g_hash_table_lookup (params, "access_token");
- if (encoded)
-- token = soup_uri_decode (encoded);
-+ token = g_uri_unescape_string (encoded, NULL);
-
- g_hash_table_destroy (params);
- }
- }
-- soup_uri_free (soupuri);
-+ g_uri_unref (uri);
-
- return token;
- }
---
-2.33.1
-
diff --git a/meta-gnome/recipes-gnome/rest/files/0002-Port-to-libsoup3.patch b/meta-gnome/recipes-gnome/rest/files/0002-Port-to-libsoup3.patch
deleted file mode 100644
index eed522f776..0000000000
--- a/meta-gnome/recipes-gnome/rest/files/0002-Port-to-libsoup3.patch
+++ /dev/null
@@ -1,1696 +0,0 @@
-From 3dc630ae5b9dc6cda1ba318de2cd654aaba7b4a2 Mon Sep 17 00:00:00 2001
-From: Carlos Garcia Campos <cgarcia@igalia.com>
-Date: Tue, 8 Jun 2021 17:44:04 +0200
-Subject: [PATCH 2/2] Port to libsoup3
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/librest/-/merge_requests/6]
----
- configure.ac | 39 ++++-
- rest-extras.pc.in | 2 +-
- rest-extras/youtube-proxy.c | 110 +++++++++++---
- rest.pc.in | 2 +-
- rest/rest-private.h | 22 ++-
- rest/rest-proxy-auth.c | 16 ++
- rest/rest-proxy-call.c | 296 +++++++++++++++++++++++++++++-------
- rest/rest-proxy.c | 209 ++++++++++++++++++++++---
- tests/custom-serialize.c | 18 +++
- tests/proxy-continuous.c | 37 ++++-
- tests/proxy.c | 63 +++++++-
- tests/threaded.c | 17 +++
- 12 files changed, 719 insertions(+), 112 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index d586e69..75c02fe 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -20,12 +20,6 @@ AM_INIT_AUTOMAKE([1.11 foreign -Wno-portability no-define dist-xz])
-
- AM_SILENT_RULES([yes])
-
--API_MAJOR=1
--API_MINOR=0
--AC_SUBST([API_VERSION],[$API_MAJOR.$API_MINOR])
--AC_SUBST([API_VERSION_AM],[$API_MAJOR\_$API_MINOR])
--AC_DEFINE_UNQUOTED(API_VERSION, [$API_VERSION], [API version])
--
- AC_CANONICAL_HOST
-
- AC_PROG_CC
-@@ -41,7 +35,6 @@ LT_PREREQ([2.2.6])
- LT_INIT([disable-static])
-
- PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.67.4)
--PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.42)
- PKG_CHECK_MODULES(XML, libxml-2.0)
- PKG_CHECK_MODULES(GTHREAD, gthread-2.0)
-
-@@ -58,6 +51,37 @@ AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums])
- localedir=${datadir}/locale
- AC_SUBST(localedir)
-
-+AC_MSG_CHECKING([for libsoup version to use])
-+AC_ARG_WITH(soup,
-+ [AC_HELP_STRING([--soup=2|3],
-+ [version of libsoup library to use (default: 2)])],
-+ [case "$withval" in
-+ 2|3) ;;
-+ *) AC_MSG_ERROR([invalid argument "$withval" for --with-soup]) ;;
-+ esac],
-+ [with_soup=2])
-+AC_MSG_RESULT([$with_soup])
-+
-+API_MAJOR=1
-+
-+if test "$with_soup" = "2"; then
-+ PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.42)
-+ SOUP_API_VERSION=2.4
-+ API_MINOR=0
-+ AC_DEFINE([WITH_SOUP_2],[1],[Define if libsoup version used is 2])
-+else
-+ PKG_CHECK_MODULES(SOUP, libsoup-3.0 >= 2.99.8)
-+ SOUP_API_VERSION=3.0
-+ API_MINOR=1
-+fi
-+
-+AM_CONDITIONAL([WITH_SOUP_2],[test "$with_soup" = "2"])
-+AC_SUBST(SOUP_API_VERSION)
-+
-+AC_SUBST([API_VERSION],[$API_MAJOR.$API_MINOR])
-+AC_SUBST([API_VERSION_AM],[$API_MAJOR\_$API_MINOR])
-+AC_DEFINE_UNQUOTED(API_VERSION, [$API_VERSION], [API version])
-+
- dnl === Coverage report =======================================================
- AC_PATH_PROG([GCOV], [lcov], [enable_gcov=no])
-
-@@ -130,6 +154,7 @@ echo " LibRest $VERSION"
- echo " ================"
- echo ""
- echo " prefix: ${prefix}"
-+echo " libsoup version: ${with_soup}"
- echo ""
- echo " Documentation: ${enable_gtk_doc}"
- echo " Introspection data: ${enable_introspection}"
-diff --git a/rest-extras.pc.in b/rest-extras.pc.in
-index 39f21bf..3723d6d 100644
---- a/rest-extras.pc.in
-+++ b/rest-extras.pc.in
-@@ -9,4 +9,4 @@ Description: RESTful web api query library
- Version: @VERSION@
- Libs: -L${libdir} -lrest-extras-${apiversion}
- Cflags: -I${includedir}/rest-${apiversion}
--Requires: glib-2.0 libsoup-2.4 libxml-2.0
-+Requires: glib-2.0 libsoup-@SOUP_API_VERSION@ libxml-2.0
-diff --git a/rest-extras/youtube-proxy.c b/rest-extras/youtube-proxy.c
-index be0cf08..cd598f4 100644
---- a/rest-extras/youtube-proxy.c
-+++ b/rest-extras/youtube-proxy.c
-@@ -246,6 +246,9 @@ typedef struct {
- GObject *weak_object;
- gpointer user_data;
- gsize uploaded;
-+#ifndef WITH_SOUP_2
-+ GCancellable *cancellable;
-+#endif
- } YoutubeProxyUploadClosure;
-
- static void
-@@ -255,7 +258,11 @@ _upload_async_weak_notify_cb (gpointer *data,
- YoutubeProxyUploadClosure *closure =
- (YoutubeProxyUploadClosure *) data;
-
-+#ifdef WITH_SOUP_2
- _rest_proxy_cancel_message (REST_PROXY (closure->proxy), closure->message);
-+#else
-+ g_cancellable_cancel (closure->cancellable);
-+#endif
- }
-
- static void
-@@ -267,6 +274,9 @@ _upload_async_closure_free (YoutubeProxyUploadClosure *closure)
- closure);
-
- g_object_unref (closure->proxy);
-+#ifndef WITH_SOUP_2
-+ g_object_unref (closure->cancellable);
-+#endif
-
- g_slice_free (YoutubeProxyUploadClosure, closure);
- }
-@@ -286,6 +296,9 @@ _upload_async_closure_new (YoutubeProxy *self,
- closure->message = message;
- closure->weak_object = weak_object;
- closure->user_data = user_data;
-+#ifndef WITH_SOUP_2
-+ closure->cancellable = g_cancellable_new ();
-+#endif
-
- if (weak_object != NULL)
- g_object_weak_ref (weak_object,
-@@ -295,41 +308,67 @@ _upload_async_closure_new (YoutubeProxy *self,
- }
-
- static void
--_upload_completed_cb (SoupSession *session,
-- SoupMessage *message,
-+_upload_completed_cb (SoupMessage *message,
-+ GBytes *payload,
-+ GError *error,
- gpointer user_data)
- {
- YoutubeProxyUploadClosure *closure =
- (YoutubeProxyUploadClosure *) user_data;
-- GError *error = NULL;
-+ gsize length;
-+ gconstpointer data;
-+ guint status_code;
-+ const char *reason_phrase;
-
- if (closure->callback == NULL)
- return;
-
-- if (message->status_code < 200 || message->status_code >= 300)
-- error = g_error_new_literal (REST_PROXY_ERROR,
-- message->status_code,
-- message->reason_phrase);
--
-- closure->callback (closure->proxy, message->response_body->data,
-- message->request_body->length,
-- message->request_body->length,
-+#ifdef WITH_SOUP_2
-+ status_code = message->status_code;
-+ reason_phrase = message->reason_phrase;
-+#else
-+ status_code = soup_message_get_status (message);
-+ reason_phrase = soup_message_get_reason_phrase (message);
-+#endif
-+
-+ if (status_code < 200 || status_code >= 300)
-+ {
-+ g_clear_error (&error);
-+ error = g_error_new_literal (REST_PROXY_ERROR,
-+ status_code,
-+ reason_phrase);
-+ }
-+
-+ data = g_bytes_get_data (payload, &length);
-+ closure->callback (closure->proxy, data, length, length,
- error, closure->weak_object, closure->user_data);
-+ g_bytes_unref (payload);
-
- _upload_async_closure_free (closure);
- }
-
- static void
- _message_wrote_data_cb (SoupMessage *msg,
-+#ifdef WITH_SOUP_2
- SoupBuffer *chunk,
-+#else
-+ gsize chunk_size,
-+#endif
- YoutubeProxyUploadClosure *closure)
- {
-- closure->uploaded = closure->uploaded + chunk->length;
-+#ifdef WITH_SOUP_2
-+ gsize chunk_size = chunk->length;
-+ goffset content_length = msg->request_body->length;
-+#else
-+ goffset content_length = soup_message_headers_get_content_length (soup_message_get_request_headers (msg));
-+#endif
-+
-+ closure->uploaded = closure->uploaded + chunk_size;
-
-- if (closure->uploaded < msg->request_body->length)
-+ if (closure->uploaded < content_length)
- closure->callback (closure->proxy,
- NULL,
-- msg->request_body->length,
-+ content_length,
- closure->uploaded,
- NULL,
- closure->weak_object,
-@@ -364,7 +403,12 @@ youtube_proxy_upload_async (YoutubeProxy *self,
- SoupMultipart *mp;
- SoupMessage *message;
- SoupMessageHeaders *part_headers;
-+ SoupMessageHeaders *request_headers;
-+#ifdef WITH_SOUP_2
- SoupBuffer *sb;
-+#else
-+ GBytes *sb;
-+#endif
- gchar *content_type;
- gchar *atom_xml;
- GMappedFile *map;
-@@ -380,10 +424,17 @@ youtube_proxy_upload_async (YoutubeProxy *self,
-
- atom_xml = _construct_upload_atom_xml (fields, incomplete);
-
-+#ifdef WITH_SOUP_2
- sb = soup_buffer_new_with_owner (atom_xml,
- strlen(atom_xml),
- atom_xml,
- (GDestroyNotify) g_free);
-+#else
-+ sb = g_bytes_new_with_free_func (atom_xml,
-+ strlen (atom_xml),
-+ (GDestroyNotify) g_free,
-+ atom_xml);
-+#endif
-
- part_headers = soup_message_headers_new (SOUP_MESSAGE_HEADERS_MULTIPART);
-
-@@ -393,7 +444,11 @@ youtube_proxy_upload_async (YoutubeProxy *self,
-
- soup_multipart_append_part (mp, part_headers, sb);
-
-+#ifdef WITH_SOUP_2
- soup_buffer_free (sb);
-+#else
-+ g_bytes_unref (sb);
-+#endif
-
- content_type = g_content_type_guess (
- filename,
-@@ -401,24 +456,37 @@ youtube_proxy_upload_async (YoutubeProxy *self,
- g_mapped_file_get_length (map),
- NULL);
-
-+#ifdef WITH_SOUP_2
- sb = soup_buffer_new_with_owner (g_mapped_file_get_contents (map),
- g_mapped_file_get_length (map),
- map,
- (GDestroyNotify) g_mapped_file_unref);
-+#else
-+ sb = g_bytes_new_with_free_func (g_mapped_file_get_contents (map),
-+ g_mapped_file_get_length (map),
-+ (GDestroyNotify) g_mapped_file_unref,
-+ map);
-+#endif
-
- soup_message_headers_replace (part_headers, "Content-Type", content_type);
-
- soup_multipart_append_part (mp, part_headers, sb);
-
-+#ifdef WITH_SOUP_2
- soup_buffer_free (sb);
--
- soup_message_headers_free (part_headers);
--
- message = soup_form_request_new_from_multipart (UPLOAD_URL, mp);
-+ request_headers = message->request_headers;
-+#else
-+ g_bytes_unref (sb);
-+ soup_message_headers_unref (part_headers);
-+ message = soup_message_new_from_multipart (UPLOAD_URL, mp);
-+ request_headers = soup_message_get_request_headers (message);
-+#endif
-
- soup_multipart_free (mp);
-
-- _set_upload_headers (self, message->request_headers, filename);
-+ _set_upload_headers (self, request_headers, filename);
-
- closure = _upload_async_closure_new (self, callback, message, weak_object,
- user_data);
-@@ -429,7 +497,13 @@ youtube_proxy_upload_async (YoutubeProxy *self,
- closure);
-
-
-- _rest_proxy_queue_message (REST_PROXY (self), message, _upload_completed_cb,
-+ _rest_proxy_queue_message (REST_PROXY (self), message,
-+#ifdef WITH_SOUP_2
-+ NULL,
-+#else
-+ closure->cancellable,
-+#endif
-+ _upload_completed_cb,
- closure);
-
- return TRUE;
-diff --git a/rest.pc.in b/rest.pc.in
-index 94c384b..e6bae3e 100644
---- a/rest.pc.in
-+++ b/rest.pc.in
-@@ -9,4 +9,4 @@ Description: RESTful web api query library
- Version: @VERSION@
- Libs: -L${libdir} -lrest-${apiversion}
- Cflags: -I${includedir}/rest-${apiversion}
--Requires: glib-2.0 libsoup-2.4 libxml-2.0
-+Requires: glib-2.0 libsoup-@SOUP_API_VERSION@ libxml-2.0
-diff --git a/rest/rest-private.h b/rest/rest-private.h
-index 9e91fa0..6e71322 100644
---- a/rest/rest-private.h
-+++ b/rest/rest-private.h
-@@ -31,6 +31,11 @@
-
- G_BEGIN_DECLS
-
-+typedef void (*RestMessageFinishedCallback) (SoupMessage *msg,
-+ GBytes *body,
-+ GError *error,
-+ gpointer user_data);
-+
- typedef enum
- {
- REST_DEBUG_XML_PARSER = 1 << 0,
-@@ -53,12 +58,23 @@ gboolean _rest_proxy_get_binding_required (RestProxy *proxy);
- const gchar *_rest_proxy_get_bound_url (RestProxy *proxy);
- void _rest_proxy_queue_message (RestProxy *proxy,
- SoupMessage *message,
-- SoupSessionCallback callback,
-+ GCancellable *cancellable,
-+ RestMessageFinishedCallback callback,
- gpointer user_data);
- void _rest_proxy_cancel_message (RestProxy *proxy,
- SoupMessage *message);
--guint _rest_proxy_send_message (RestProxy *proxy,
-- SoupMessage *message);
-+GBytes *_rest_proxy_send_message (RestProxy *proxy,
-+ SoupMessage *message,
-+ GCancellable *cancellable,
-+ GError **error);
-+void _rest_proxy_send_message_async (RestProxy *proxy,
-+ SoupMessage *message,
-+ GCancellable *cancellable,
-+ GAsyncReadyCallback callback,
-+ gpointer user_data);
-+GInputStream *_rest_proxy_send_message_finish (RestProxy *proxy,
-+ GAsyncResult *result,
-+ GError **error);
-
- RestXmlNode *_rest_xml_node_new (void);
- void _rest_xml_node_reverse_children_siblings (RestXmlNode *node);
-diff --git a/rest/rest-proxy-auth.c b/rest/rest-proxy-auth.c
-index b96e443..0b2ec9f 100644
---- a/rest/rest-proxy-auth.c
-+++ b/rest/rest-proxy-auth.c
-@@ -29,7 +29,9 @@
- struct _RestProxyAuthPrivate {
- /* used to hold state during async authentication */
- RestProxy *proxy;
-+#ifdef WITH_SOUP_2
- SoupSession *session;
-+#endif
- SoupMessage *message;
- SoupAuth *auth;
- gboolean paused;
-@@ -43,7 +45,9 @@ rest_proxy_auth_dispose (GObject *object)
- RestProxyAuthPrivate *priv = ((RestProxyAuth*)object)->priv;
-
- g_clear_object (&priv->proxy);
-+#ifdef WITH_SOUP_2
- g_clear_object (&priv->session);
-+#endif
- g_clear_object (&priv->message);
- g_clear_object (&priv->auth);
-
-@@ -73,13 +77,17 @@ rest_proxy_auth_new (RestProxy *proxy,
- RestProxyAuth *rest_auth;
-
- g_return_val_if_fail (REST_IS_PROXY (proxy), NULL);
-+#ifdef WITH_SOUP_2
- g_return_val_if_fail (SOUP_IS_SESSION (session), NULL);
-+#endif
- g_return_val_if_fail (SOUP_IS_MESSAGE (message), NULL);
- g_return_val_if_fail (SOUP_IS_AUTH (soup_auth), NULL);
-
- rest_auth = REST_PROXY_AUTH (g_object_new (REST_TYPE_PROXY_AUTH, NULL));
- rest_auth->priv->proxy = g_object_ref(proxy);
-+#ifdef WITH_SOUP_2
- rest_auth->priv->session = g_object_ref(session);
-+#endif
- rest_auth->priv->message = g_object_ref(message);
- rest_auth->priv->auth = g_object_ref(soup_auth);
-
-@@ -104,7 +112,9 @@ rest_proxy_auth_pause (RestProxyAuth *auth)
- return;
-
- auth->priv->paused = TRUE;
-+#ifdef WITH_SOUP_2
- soup_session_pause_message (auth->priv->session, auth->priv->message);
-+#endif
- }
-
- /**
-@@ -128,7 +138,9 @@ rest_proxy_auth_unpause (RestProxyAuth *auth)
- soup_auth_authenticate (auth->priv->auth, username, password);
- g_free (username);
- g_free (password);
-+#ifdef WITH_SOUP_2
- soup_session_unpause_message (auth->priv->session, auth->priv->message);
-+#endif
- auth->priv->paused = FALSE;
- }
-
-@@ -146,7 +158,11 @@ rest_proxy_auth_cancel (RestProxyAuth *auth)
- {
- g_return_if_fail (REST_IS_PROXY_AUTH (auth));
-
-+#ifdef WITH_SOUP_2
- soup_session_cancel_message (auth->priv->session, auth->priv->message, SOUP_STATUS_CANCELLED);
-+#else
-+ soup_auth_cancel (auth->priv->auth);
-+#endif
- }
-
- G_GNUC_INTERNAL gboolean rest_proxy_auth_is_paused (RestProxyAuth *auth)
-diff --git a/rest/rest-proxy-call.c b/rest/rest-proxy-call.c
-index 2ab722f..62b00da 100644
---- a/rest/rest-proxy-call.c
-+++ b/rest/rest-proxy-call.c
-@@ -20,12 +20,14 @@
- *
- */
-
-+#include <config.h>
- #include <rest/rest-proxy.h>
- #include <rest/rest-proxy-call.h>
- #include <rest/rest-params.h>
- #include <libsoup/soup.h>
-
- #include "rest-private.h"
-+#include "rest-proxy-auth-private.h"
- #include "rest-proxy-call-private.h"
-
-
-@@ -38,12 +40,15 @@ struct _RestProxyCallAsyncClosure {
- };
- typedef struct _RestProxyCallAsyncClosure RestProxyCallAsyncClosure;
-
-+#define READ_BUFFER_SIZE 8192
-+
- struct _RestProxyCallContinuousClosure {
- RestProxyCall *call;
- RestProxyCallContinuousCallback callback;
- GObject *weak_object;
- gpointer userdata;
- SoupMessage *message;
-+ guchar buffer[READ_BUFFER_SIZE];
- };
- typedef struct _RestProxyCallContinuousClosure RestProxyCallContinuousClosure;
-
-@@ -70,8 +75,7 @@ struct _RestProxyCallPrivate {
- gchar *url;
-
- GHashTable *response_headers;
-- goffset length;
-- gchar *payload;
-+ GBytes *payload;
- guint status_code;
- gchar *status_message;
-
-@@ -160,7 +164,7 @@ rest_proxy_call_finalize (GObject *object)
- g_free (priv->method);
- g_free (priv->function);
-
-- g_free (priv->payload);
-+ g_clear_pointer (&priv->payload, g_bytes_unref);
- g_free (priv->status_message);
-
- g_free (priv->url);
-@@ -546,14 +550,23 @@ _populate_headers_hash_table (const gchar *name,
- g_hash_table_insert (headers, g_strdup (name), g_strdup (value));
- }
-
-+#ifdef WITH_SOUP_2
- /* I apologise for this macro, but it saves typing ;-) */
- #define error_helper(x) g_set_error_literal(error, REST_PROXY_ERROR, x, message->reason_phrase)
-+#endif
- static gboolean
- _handle_error_from_message (SoupMessage *message, GError **error)
- {
-- if (message->status_code < 100)
-+ guint status_code;
-+ const char *reason_phrase;
-+
-+#ifdef WITH_SOUP_2
-+ status_code = message->status_code;
-+
-+ if (status_code < 100)
- {
-- switch (message->status_code)
-+ g_clear_error (error);
-+ switch (status_code)
- {
- case SOUP_STATUS_CANCELLED:
- error_helper (REST_PROXY_ERROR_CANCELLED);
-@@ -580,61 +593,84 @@ _handle_error_from_message (SoupMessage *message, GError **error)
- }
- return FALSE;
- }
-+ reason_phrase = message->reason_phrase;
-+#else
-+ status_code = soup_message_get_status (message);
-+ reason_phrase = soup_message_get_reason_phrase (message);
-+#endif
-
-- if (message->status_code >= 200 && message->status_code < 300)
-+ if (status_code >= 200 && status_code < 300)
- {
- return TRUE;
- }
-
-+ if (*error != NULL)
-+ return FALSE;
-+
- /* If we are here we must be in some kind of HTTP error, lets try */
- g_set_error_literal (error,
- REST_PROXY_ERROR,
-- message->status_code,
-- message->reason_phrase);
-+ status_code,
-+ reason_phrase);
- return FALSE;
- }
-
- static gboolean
--finish_call (RestProxyCall *call, SoupMessage *message, GError **error)
-+finish_call (RestProxyCall *call, SoupMessage *message, GBytes *payload, GError **error)
- {
- RestProxyCallPrivate *priv = GET_PRIVATE (call);
-+ SoupMessageHeaders *response_headers;
-
- g_assert (call);
- g_assert (message);
-+ g_assert (payload);
-+
-+#ifdef WITH_SOUP_2
-+ response_headers = message->response_headers;
-+#else
-+ response_headers = soup_message_get_response_headers (message);
-+#endif
-
- /* Convert the soup headers in to hash */
- /* FIXME: Eeek..are you allowed duplicate headers? ... */
- g_hash_table_remove_all (priv->response_headers);
-- soup_message_headers_foreach (message->response_headers,
-+ soup_message_headers_foreach (response_headers,
- (SoupMessageHeadersForeachFunc)_populate_headers_hash_table,
- priv->response_headers);
-
-- priv->payload = g_memdup (message->response_body->data,
-- message->response_body->length + 1);
-- priv->length = message->response_body->length;
-+ priv->payload = payload;
-
-+#ifdef WITH_SOUP_2
- priv->status_code = message->status_code;
- priv->status_message = g_strdup (message->reason_phrase);
-+#else
-+ priv->status_code = soup_message_get_status (message);
-+ priv->status_message = g_strdup (soup_message_get_reason_phrase (message));
-+#endif
-
- return _handle_error_from_message (message, error);
- }
-
- static void
--_continuous_call_message_completed_cb (SoupSession *session,
-- SoupMessage *message,
-- gpointer userdata)
-+_continuous_call_message_completed (SoupMessage *message,
-+ GError *error,
-+ gpointer userdata)
- {
- RestProxyCallContinuousClosure *closure;
- RestProxyCall *call;
- RestProxyCallPrivate *priv;
-- GError *error = NULL;
-
- closure = (RestProxyCallContinuousClosure *)userdata;
- call = closure->call;
- priv = GET_PRIVATE (call);
-
-+#ifdef WITH_SOUP_2
- priv->status_code = message->status_code;
- priv->status_message = g_strdup (message->reason_phrase);
-+#else
-+ priv->status_code = soup_message_get_status (message);
-+ priv->status_message = g_strdup (soup_message_get_reason_phrase (message));
-+#endif
-
- _handle_error_from_message (message, &error);
-
-@@ -657,6 +693,7 @@ _continuous_call_message_completed_cb (SoupSession *session,
-
- priv->cur_call_closure = NULL;
- g_object_unref (closure->call);
-+ g_object_unref (message);
- g_slice_free (RestProxyCallContinuousClosure, closure);
- }
-
-@@ -715,6 +752,49 @@ set_url (RestProxyCall *call)
- return TRUE;
- }
-
-+#ifndef WITH_SOUP_2
-+static gboolean
-+authenticate (RestProxyCall *call,
-+ SoupAuth *soup_auth,
-+ gboolean retrying,
-+ SoupMessage *message)
-+{
-+ RestProxyCallPrivate *priv = GET_PRIVATE (call);
-+ RestProxyAuth *rest_auth;
-+ gboolean try_auth;
-+
-+ rest_auth = rest_proxy_auth_new (priv->proxy, NULL, message, soup_auth);
-+ g_signal_emit_by_name (priv->proxy, "authenticate", rest_auth, retrying, &try_auth);
-+ if (try_auth && !rest_proxy_auth_is_paused (rest_auth)) {
-+ char *username, *password;
-+
-+ g_object_get (priv->proxy, "username", &username, "password", &password, NULL);
-+ soup_auth_authenticate (soup_auth, username, password);
-+ g_free (username);
-+ g_free (password);
-+ }
-+ g_object_unref (rest_auth);
-+
-+ return try_auth;
-+}
-+
-+static gboolean
-+accept_certificate (RestProxyCall *call,
-+ GTlsCertificate *tls_certificate,
-+ GTlsCertificateFlags *tls_errors,
-+ SoupMessage *message)
-+{
-+ RestProxyCallPrivate *priv = GET_PRIVATE (call);
-+ gboolean ssl_strict;
-+
-+ if (tls_errors == 0)
-+ return TRUE;
-+
-+ g_object_get (priv->proxy, "ssl-strict", &ssl_strict, NULL);
-+ return !ssl_strict;
-+}
-+#endif
-+
- static SoupMessage *
- prepare_message (RestProxyCall *call, GError **error_out)
- {
-@@ -722,6 +802,7 @@ prepare_message (RestProxyCall *call, GError **error_out)
- RestProxyCallClass *call_class;
- const gchar *user_agent;
- SoupMessage *message;
-+ SoupMessageHeaders *request_headers;
- GError *error = NULL;
-
- call_class = REST_PROXY_CALL_GET_CLASS (call);
-@@ -748,6 +829,9 @@ prepare_message (RestProxyCall *call, GError **error_out)
- gchar *content;
- gchar *content_type;
- gsize content_len;
-+#ifndef WITH_SOUP_2
-+ GBytes *body;
-+#endif
-
- if (!call_class->serialize_params (call, &content_type,
- &content, &content_len, &error))
-@@ -780,8 +864,14 @@ prepare_message (RestProxyCall *call, GError **error_out)
- "Could not parse URI");
- return NULL;
- }
-+#ifdef WITH_SOUP_2
- soup_message_set_request (message, content_type,
- SOUP_MEMORY_TAKE, content, content_len);
-+#else
-+ body = g_bytes_new_take (content, content_len);
-+ soup_message_set_request_body_from_bytes (message, content_type, body);
-+ g_bytes_unref (body);
-+#endif
-
- g_free (content_type);
- } else if (rest_params_are_strings (priv->params)) {
-@@ -798,9 +888,15 @@ prepare_message (RestProxyCall *call, GError **error_out)
-
- hash = rest_params_as_string_hash_table (priv->params);
-
-+#ifdef WITH_SOUP_2
- message = soup_form_request_new_from_hash (priv->method,
- priv->url,
- hash);
-+#else
-+ message = soup_message_new_from_encoded_form (priv->method,
-+ priv->url,
-+ soup_form_encode_hash (hash));
-+#endif
-
- g_hash_table_unref (hash);
-
-@@ -827,19 +923,28 @@ prepare_message (RestProxyCall *call, GError **error_out)
- if (rest_param_is_string (param)) {
- soup_multipart_append_form_string (mp, name, rest_param_get_content (param));
- } else {
-- SoupBuffer *sb;
--
-- sb = soup_buffer_new_with_owner (rest_param_get_content (param),
-- rest_param_get_content_length (param),
-- rest_param_ref (param),
-- (GDestroyNotify)rest_param_unref);
-+#ifdef WITH_SOUP_2
-+ SoupBuffer *sb = soup_buffer_new_with_owner (rest_param_get_content (param),
-+ rest_param_get_content_length (param),
-+ rest_param_ref (param),
-+ (GDestroyNotify)rest_param_unref);
-+#else
-+ GBytes *sb = g_bytes_new_with_free_func (rest_param_get_content (param),
-+ rest_param_get_content_length (param),
-+ (GDestroyNotify)rest_param_unref,
-+ rest_param_ref (param));
-+#endif
-
- soup_multipart_append_form_file (mp, name,
- rest_param_get_file_name (param),
- rest_param_get_content_type (param),
- sb);
-
-+#ifdef WITH_SOUP_2
- soup_buffer_free (sb);
-+#else
-+ g_bytes_unref (sb);
-+#endif
- }
- }
-
-@@ -853,19 +958,36 @@ prepare_message (RestProxyCall *call, GError **error_out)
- return NULL;
- }
-
-+#ifdef WITH_SOUP_2
- message = soup_form_request_new_from_multipart (priv->url, mp);
-+#else
-+ message = soup_message_new_from_multipart (priv->url, mp);
-+#endif
-
- soup_multipart_free (mp);
- }
-
-+#ifdef WITH_SOUP_2
-+ request_headers = message->request_headers;
-+#else
-+ request_headers = soup_message_get_request_headers (message);
-+ g_signal_connect_swapped (message, "authenticate",
-+ G_CALLBACK (authenticate),
-+ call);
-+ g_signal_connect_swapped (message, "accept-certificate",
-+ G_CALLBACK (accept_certificate),
-+ call);
-+#endif
-+
-+
- /* Set the user agent, if one was set in the proxy */
- user_agent = rest_proxy_get_user_agent (priv->proxy);
- if (user_agent) {
-- soup_message_headers_append (message->request_headers, "User-Agent", user_agent);
-+ soup_message_headers_append (request_headers, "User-Agent", user_agent);
- }
-
- /* Set the headers */
-- g_hash_table_foreach (priv->headers, set_header, message->request_headers);
-+ g_hash_table_foreach (priv->headers, set_header, request_headers);
-
- return message;
- }
-@@ -878,17 +1000,17 @@ _call_message_call_cancelled_cb (GCancellable *cancellable,
- }
-
- static void
--_call_message_call_completed_cb (SoupSession *session,
-- SoupMessage *message,
-+_call_message_call_completed_cb (SoupMessage *message,
-+ GBytes *payload,
-+ GError *error,
- gpointer user_data)
- {
- GTask *task = user_data;
- RestProxyCall *call;
-- GError *error = NULL;
-
- call = REST_PROXY_CALL (g_task_get_source_object (task));
-
-- finish_call (call, message, &error);
-+ finish_call (call, message, payload, &error);
-
- if (error != NULL)
- g_task_return_error (task, error);
-@@ -938,6 +1060,7 @@ rest_proxy_call_invoke_async (RestProxyCall *call,
-
- _rest_proxy_queue_message (priv->proxy,
- message,
-+ priv->cancellable,
- _call_message_call_completed_cb,
- task);
- }
-@@ -962,16 +1085,55 @@ rest_proxy_call_invoke_finish (RestProxyCall *call,
- }
-
- static void
--_continuous_call_message_got_chunk_cb (SoupMessage *msg,
-- SoupBuffer *chunk,
-- RestProxyCallContinuousClosure *closure)
-+_continuous_call_read_cb (GObject *source,
-+ GAsyncResult *result,
-+ gpointer user_data)
- {
-+ GInputStream *stream = G_INPUT_STREAM (source);
-+ RestProxyCallContinuousClosure *closure = user_data;
-+ RestProxyCallPrivate *priv = GET_PRIVATE (closure->call);
-+ gssize bytes_read;
-+ GError *error = NULL;
-+
-+ bytes_read = g_input_stream_read_finish (stream, result, &error);
-+ if (bytes_read <= 0)
-+ {
-+ _continuous_call_message_completed (closure->message, error, user_data);
-+ return;
-+ }
-+
- closure->callback (closure->call,
-- chunk->data,
-- chunk->length,
-+ (gconstpointer)closure->buffer,
-+ bytes_read,
- NULL,
- closure->weak_object,
- closure->userdata);
-+
-+ g_input_stream_read_async (stream, closure->buffer, READ_BUFFER_SIZE, G_PRIORITY_DEFAULT,
-+ priv->cancellable, _continuous_call_read_cb, closure);
-+}
-+
-+static void
-+_continuous_call_message_sent_cb (GObject *source,
-+ GAsyncResult *result,
-+ gpointer user_data)
-+{
-+ RestProxy *proxy = REST_PROXY (source);
-+ RestProxyCallContinuousClosure *closure = user_data;
-+ RestProxyCallPrivate *priv = GET_PRIVATE (closure->call);
-+ GInputStream *stream;
-+ GError *error = NULL;
-+
-+ stream = _rest_proxy_send_message_finish (proxy, result, &error);
-+ if (!stream)
-+ {
-+ _continuous_call_message_completed (closure->message, error, user_data);
-+ return;
-+ }
-+
-+ g_input_stream_read_async (stream, closure->buffer, READ_BUFFER_SIZE, G_PRIORITY_DEFAULT,
-+ priv->cancellable, _continuous_call_read_cb, closure);
-+ g_object_unref (stream);
- }
-
-
-@@ -1021,9 +1183,6 @@ rest_proxy_call_continuous (RestProxyCall *call,
- if (message == NULL)
- return FALSE;
-
-- /* Must turn off accumulation */
-- soup_message_body_set_accumulate (message->response_body, FALSE);
--
- closure = g_slice_new0 (RestProxyCallContinuousClosure);
- closure->call = g_object_ref (call);
- closure->callback = callback;
-@@ -1041,33 +1200,29 @@ rest_proxy_call_continuous (RestProxyCall *call,
- closure);
- }
-
-- g_signal_connect (message,
-- "got-chunk",
-- (GCallback)_continuous_call_message_got_chunk_cb,
-- closure);
--
-- _rest_proxy_queue_message (priv->proxy,
-- message,
-- _continuous_call_message_completed_cb,
-- closure);
-+ _rest_proxy_send_message_async (priv->proxy,
-+ message,
-+ priv->cancellable,
-+ _continuous_call_message_sent_cb,
-+ closure);
- return TRUE;
- }
-
- static void
--_upload_call_message_completed_cb (SoupSession *session,
-- SoupMessage *message,
-+_upload_call_message_completed_cb (SoupMessage *message,
-+ GBytes *payload,
-+ GError *error,
- gpointer user_data)
- {
- RestProxyCall *call;
- RestProxyCallPrivate *priv;
-- GError *error = NULL;
- RestProxyCallUploadClosure *closure;
-
- closure = (RestProxyCallUploadClosure *) user_data;
- call = closure->call;
- priv = GET_PRIVATE (call);
-
-- finish_call (call, message, &error);
-+ finish_call (call, message, payload, &error);
-
- closure->callback (closure->call,
- closure->uploaded,
-@@ -1093,14 +1248,25 @@ _upload_call_message_completed_cb (SoupSession *session,
-
- static void
- _upload_call_message_wrote_data_cb (SoupMessage *msg,
-+#ifdef WITH_SOUP_2
- SoupBuffer *chunk,
-+#else
-+ gsize chunk_size,
-+#endif
- RestProxyCallUploadClosure *closure)
- {
-- closure->uploaded = closure->uploaded + chunk->length;
-+#ifdef WITH_SOUP_2
-+ gsize chunk_size = chunk->length;
-+ goffset content_length = msg->request_body->length;
-+#else
-+ goffset content_length = soup_message_headers_get_content_length (soup_message_get_request_headers (msg));
-+#endif
-
-- if (closure->uploaded < msg->request_body->length)
-+ closure->uploaded = closure->uploaded + chunk_size;
-+
-+ if (closure->uploaded < content_length)
- closure->callback (closure->call,
-- msg->request_body->length,
-+ content_length,
- closure->uploaded,
- NULL,
- closure->weak_object,
-@@ -1178,6 +1344,7 @@ rest_proxy_call_upload (RestProxyCall *call,
-
- _rest_proxy_queue_message (priv->proxy,
- message,
-+ priv->cancellable,
- _upload_call_message_completed_cb,
- closure);
- return TRUE;
-@@ -1206,6 +1373,10 @@ rest_proxy_call_cancel (RestProxyCall *call)
- if (priv->cancellable)
- {
- g_signal_handler_disconnect (priv->cancellable, priv->cancel_sig);
-+#ifndef WITH_SOUP_2
-+ if (!g_cancellable_is_cancelled (priv->cancellable))
-+ g_cancellable_cancel (priv->cancellable);
-+#endif
- g_clear_object (&priv->cancellable);
- }
-
-@@ -1240,6 +1411,7 @@ rest_proxy_call_sync (RestProxyCall *call,
- RestProxyCallPrivate *priv = GET_PRIVATE (call);
- SoupMessage *message;
- gboolean ret;
-+ GBytes *payload;
-
- g_return_val_if_fail (REST_IS_PROXY_CALL (call), FALSE);
-
-@@ -1247,9 +1419,9 @@ rest_proxy_call_sync (RestProxyCall *call,
- if (!message)
- return FALSE;
-
-- _rest_proxy_send_message (priv->proxy, message);
-+ payload = _rest_proxy_send_message (priv->proxy, message, priv->cancellable, error_out);
-
-- ret = finish_call (call, message, error_out);
-+ ret = finish_call (call, message, payload, error_out);
-
- g_object_unref (message);
-
-@@ -1314,9 +1486,16 @@ rest_proxy_call_get_response_headers (RestProxyCall *call)
- goffset
- rest_proxy_call_get_payload_length (RestProxyCall *call)
- {
-+ GBytes *payload;
-+
- g_return_val_if_fail (REST_IS_PROXY_CALL (call), 0);
-
-- return GET_PRIVATE (call)->length;
-+ payload = GET_PRIVATE (call)->payload;
-+#ifdef WITH_SOUP_2
-+ return payload ? g_bytes_get_size (payload) - 1 : 0;
-+#else
-+ return payload ? g_bytes_get_size (payload) : 0;
-+#endif
- }
-
- /**
-@@ -1331,9 +1510,12 @@ rest_proxy_call_get_payload_length (RestProxyCall *call)
- const gchar *
- rest_proxy_call_get_payload (RestProxyCall *call)
- {
-+ GBytes *payload;
-+
- g_return_val_if_fail (REST_IS_PROXY_CALL (call), NULL);
-
-- return GET_PRIVATE (call)->payload;
-+ payload = GET_PRIVATE (call)->payload;
-+ return payload ? g_bytes_get_data (payload, NULL) : NULL;
- }
-
- /**
-diff --git a/rest/rest-proxy.c b/rest/rest-proxy.c
-index 80972a3..171f6cb 100644
---- a/rest/rest-proxy.c
-+++ b/rest/rest-proxy.c
-@@ -45,6 +45,9 @@ struct _RestProxyPrivate {
- SoupSession *session;
- gboolean disable_cookies;
- char *ssl_ca_file;
-+#ifndef WITH_SOUP_2
-+ gboolean ssl_strict;
-+#endif
- };
-
-
-@@ -116,11 +119,15 @@ rest_proxy_get_property (GObject *object,
- g_value_set_string (value, priv->password);
- break;
- case PROP_SSL_STRICT: {
-+#ifdef WITH_SOUP_2
- gboolean ssl_strict;
- g_object_get (G_OBJECT(priv->session),
- "ssl-strict", &ssl_strict,
- NULL);
- g_value_set_boolean (value, ssl_strict);
-+#else
-+ g_value_set_boolean (value, priv->ssl_strict);
-+#endif
- break;
- }
- case PROP_SSL_CA_FILE:
-@@ -172,9 +179,13 @@ rest_proxy_set_property (GObject *object,
- priv->password = g_value_dup_string (value);
- break;
- case PROP_SSL_STRICT:
-+#ifdef WITH_SOUP_2
- g_object_set (G_OBJECT(priv->session),
- "ssl-strict", g_value_get_boolean (value),
- NULL);
-+#else
-+ priv->ssl_strict = g_value_get_boolean (value);
-+#endif
- break;
- case PROP_SSL_CA_FILE:
- g_free(priv->ssl_ca_file);
-@@ -207,6 +218,7 @@ default_authenticate_cb (RestProxy *self,
- return !retrying;
- }
-
-+#ifdef WITH_SOUP_2
- static void
- authenticate (RestProxy *self,
- SoupMessage *msg,
-@@ -224,6 +236,7 @@ authenticate (RestProxy *self,
- soup_auth_authenticate (soup_auth, priv->username, priv->password);
- g_object_unref (G_OBJECT (rest_auth));
- }
-+#endif
-
- static void
- rest_proxy_constructed (GObject *object)
-@@ -238,14 +251,20 @@ rest_proxy_constructed (GObject *object)
- }
-
- if (REST_DEBUG_ENABLED(PROXY)) {
-+#ifdef WITH_SOUP_2
- SoupSessionFeature *logger = (SoupSessionFeature*)soup_logger_new (SOUP_LOGGER_LOG_BODY, 0);
-+#else
-+ SoupSessionFeature *logger = (SoupSessionFeature*)soup_logger_new (SOUP_LOGGER_LOG_HEADERS);
-+#endif
- soup_session_add_feature (priv->session, logger);
- g_object_unref (logger);
- }
-
-+#ifdef WITH_SOUP_2
- /* session lifetime is same as self, no need to keep signalid */
- g_signal_connect_swapped (priv->session, "authenticate",
- G_CALLBACK(authenticate), object);
-+#endif
- }
-
- static void
-@@ -391,23 +410,62 @@ rest_proxy_class_init (RestProxyClass *klass)
- proxy_class->authenticate = default_authenticate_cb;
- }
-
-+static gboolean
-+transform_ssl_ca_file_to_tls_database (GBinding *binding,
-+ const GValue *from_value,
-+ GValue *to_value,
-+ gpointer user_data)
-+{
-+ g_value_take_object (to_value,
-+ g_tls_file_database_new (g_value_get_string (from_value), NULL));
-+ return TRUE;
-+}
-+
-+static gboolean
-+transform_tls_database_to_ssl_ca_file (GBinding *binding,
-+ const GValue *from_value,
-+ GValue *to_value,
-+ gpointer user_data)
-+{
-+ GTlsDatabase *tls_database;
-+ char *path = NULL;
-+
-+ tls_database = g_value_get_object (from_value);
-+ if (tls_database)
-+ g_object_get (tls_database, "anchors", &path, NULL);
-+ g_value_take_string (to_value, path);
-+ return TRUE;
-+}
-+
- static void
- rest_proxy_init (RestProxy *self)
- {
- RestProxyPrivate *priv = GET_PRIVATE (self);
-+ GTlsDatabase *tls_database;
-+
-+#ifndef WITH_SOUP_2
-+ priv->ssl_strict = TRUE;
-+#endif
-
- priv->session = soup_session_new ();
-
- #ifdef REST_SYSTEM_CA_FILE
- /* with ssl-strict (defaults TRUE) setting ssl-ca-file forces all
- * certificates to be trusted */
-- g_object_set (priv->session,
-- "ssl-ca-file", REST_SYSTEM_CA_FILE,
-- NULL);
-+ tls_database = g_tls_file_database_new (REST_SYSTEM_CA_FILE, NULL);
-+ if (tls_database) {
-+ g_object_set (priv->session,
-+ "tls-database", tls_database,
-+ NULL);
-+ g_object_unref (tls_database);
-+ }
- #endif
-- g_object_bind_property (self, "ssl-ca-file",
-- priv->session, "ssl-ca-file",
-- G_BINDING_BIDIRECTIONAL);
-+ g_object_bind_property_full (self, "ssl-ca-file",
-+ priv->session, "tls-database",
-+ G_BINDING_BIDIRECTIONAL,
-+ transform_ssl_ca_file_to_tls_database,
-+ transform_tls_database_to_ssl_ca_file,
-+ NULL, NULL);
- }
-
- /**
-@@ -689,27 +747,127 @@ rest_proxy_simple_run (RestProxy *proxy,
- return ret;
- }
-
-+typedef struct {
-+ RestMessageFinishedCallback callback;
-+ gpointer user_data;
-+} RestMessageQueueData;
-+
-+#ifdef WITH_SOUP_2
-+static void
-+message_finished_cb (SoupSession *session,
-+ SoupMessage *message,
-+ gpointer user_data)
-+{
-+ RestMessageQueueData *data = user_data;
-+ GBytes *body;
-+ GError *error = NULL;
-+
-+ body = g_bytes_new (message->response_body->data,
-+ message->response_body->length + 1);
-+ data->callback (message, body, error, data->user_data);
-+ g_free (data);
-+}
-+#else
-+static void
-+message_send_and_read_ready_cb (GObject *source,
-+ GAsyncResult *result,
-+ gpointer user_data)
-+{
-+ SoupSession *session = SOUP_SESSION (source);
-+ RestMessageQueueData *data = user_data;
-+ GBytes *body;
-+ GError *error = NULL;
-+
-+ body = soup_session_send_and_read_finish (session, result, &error);
-+ data->callback (soup_session_get_async_result_message (session, result), body, error, data->user_data);
-+ g_free (data);
-+}
-+#endif
-+
- void
--_rest_proxy_queue_message (RestProxy *proxy,
-- SoupMessage *message,
-- SoupSessionCallback callback,
-- gpointer user_data)
-+_rest_proxy_queue_message (RestProxy *proxy,
-+ SoupMessage *message,
-+ GCancellable *cancellable,
-+ RestMessageFinishedCallback callback,
-+ gpointer user_data)
- {
- RestProxyPrivate *priv = GET_PRIVATE (proxy);
-+ RestMessageQueueData *data;
-
- g_return_if_fail (REST_IS_PROXY (proxy));
- g_return_if_fail (SOUP_IS_MESSAGE (message));
-
-+ data = g_new0 (RestMessageQueueData, 1);
-+ data->callback = callback;
-+ data->user_data = user_data;
-+
-+#ifdef WITH_SOUP_2
- soup_session_queue_message (priv->session,
- message,
-- callback,
-- user_data);
-+ message_finished_cb,
-+ data);
-+#else
-+ soup_session_send_and_read_async (priv->session,
-+ message,
-+ G_PRIORITY_DEFAULT,
-+ cancellable,
-+ message_send_and_read_ready_cb,
-+ data);
-+#endif
-+}
-+
-+static void
-+message_send_ready_cb (GObject *source,
-+ GAsyncResult *result,
-+ gpointer user_data)
-+{
-+ SoupSession *session = SOUP_SESSION (source);
-+ GTask *task = user_data;
-+ GInputStream *stream;
-+ GError *error = NULL;
-+
-+ stream = soup_session_send_finish (session, result, &error);
-+ if (stream)
-+ g_task_return_pointer (task, stream, g_object_unref);
-+ else
-+ g_task_return_error (task, error);
-+ g_object_unref (task);
-+}
-+
-+void
-+_rest_proxy_send_message_async (RestProxy *proxy,
-+ SoupMessage *message,
-+ GCancellable *cancellable,
-+ GAsyncReadyCallback callback,
-+ gpointer user_data)
-+{
-+ RestProxyPrivate *priv = GET_PRIVATE (proxy);
-+ GTask *task;
-+
-+ task = g_task_new (proxy, cancellable, callback, user_data);
-+ soup_session_send_async (priv->session,
-+ message,
-+#ifndef WITH_SOUP_2
-+ G_PRIORITY_DEFAULT,
-+#endif
-+ cancellable,
-+ message_send_ready_cb,
-+ task);
-+}
-+
-+GInputStream *
-+_rest_proxy_send_message_finish (RestProxy *proxy,
-+ GAsyncResult *result,
-+ GError **error)
-+{
-+ return g_task_propagate_pointer (G_TASK (result), error);
- }
-
- void
- _rest_proxy_cancel_message (RestProxy *proxy,
- SoupMessage *message)
- {
-+#ifdef WITH_SOUP_2
- RestProxyPrivate *priv = GET_PRIVATE (proxy);
-
- g_return_if_fail (REST_IS_PROXY (proxy));
-@@ -718,16 +876,31 @@ _rest_proxy_cancel_message (RestProxy *proxy,
- soup_session_cancel_message (priv->session,
- message,
- SOUP_STATUS_CANCELLED);
-+#endif
- }
-
--guint
--_rest_proxy_send_message (RestProxy *proxy,
-- SoupMessage *message)
-+GBytes *
-+_rest_proxy_send_message (RestProxy *proxy,
-+ SoupMessage *message,
-+ GCancellable *cancellable,
-+ GError **error)
- {
- RestProxyPrivate *priv = GET_PRIVATE (proxy);
-+ GBytes *body;
-
-- g_return_val_if_fail (REST_IS_PROXY (proxy), 0);
-- g_return_val_if_fail (SOUP_IS_MESSAGE (message), 0);
-+ g_return_val_if_fail (REST_IS_PROXY (proxy), NULL);
-+ g_return_val_if_fail (SOUP_IS_MESSAGE (message), NULL);
-+
-+#ifdef WITH_SOUP_2
-+ soup_session_send_message (priv->session, message);
-+ body = g_bytes_new (message->response_body->data,
-+ message->response_body->length + 1);
-+#else
-+ body = soup_session_send_and_read (priv->session,
-+ message,
-+ cancellable,
-+ error);
-+#endif
-
-- return soup_session_send_message (priv->session, message);
-+ return body;
- }
-diff --git a/tests/custom-serialize.c b/tests/custom-serialize.c
-index c3fde93..01b3a56 100644
---- a/tests/custom-serialize.c
-+++ b/tests/custom-serialize.c
-@@ -88,22 +88,40 @@ custom_proxy_call_init (CustomProxyCall *self)
- }
-
- static void
-+#ifdef WITH_SOUP_2
- server_callback (SoupServer *server, SoupMessage *msg,
- const char *path, GHashTable *query,
- SoupClientContext *client, gpointer user_data)
-+#else
-+server_callback (SoupServer *server, SoupServerMessage *msg,
-+ const char *path, GHashTable *query, gpointer user_data)
-+#endif
- {
- if (g_str_equal (path, "/ping")) {
- const char *content_type = NULL;
-+#ifdef WITH_SOUP_2
- SoupMessageHeaders *headers = msg->request_headers;
- SoupMessageBody *body = msg->request_body;
-+#else
-+ SoupMessageHeaders *headers = soup_server_message_get_request_headers (msg);
-+ SoupMessageBody *body = soup_server_message_get_request_body (msg);
-+#endif
- content_type = soup_message_headers_get_content_type (headers, NULL);
- g_assert_cmpstr (content_type, ==, "application/json");
-
- g_assert_cmpstr (body->data, ==, "{}");
-
-+#ifdef WITH_SOUP_2
- soup_message_set_status (msg, SOUP_STATUS_OK);
-+#else
-+ soup_server_message_set_status (msg, SOUP_STATUS_OK, NULL);
-+#endif
- } else {
-+#ifdef WITH_SOUP_2
- soup_message_set_status (msg, SOUP_STATUS_NOT_IMPLEMENTED);
-+#else
-+ soup_server_message_set_status (msg, SOUP_STATUS_NOT_IMPLEMENTED, NULL);
-+#endif
- }
- }
-
-diff --git a/tests/proxy-continuous.c b/tests/proxy-continuous.c
-index 8f4b7a8..7967bbd 100644
---- a/tests/proxy-continuous.c
-+++ b/tests/proxy-continuous.c
-@@ -39,9 +39,15 @@ static SoupServer *server;
- static gboolean
- send_chunks (gpointer user_data)
- {
-- SoupMessage *msg = SOUP_MESSAGE (user_data);
- guint i;
- guint8 data[SIZE_CHUNK];
-+#ifdef WITH_SOUP_2
-+ SoupMessage *msg = SOUP_MESSAGE (user_data);
-+ SoupMessageBody *response_body = msg->response_body;
-+#else
-+ SoupServerMessage *msg = SOUP_SERVER_MESSAGE (user_data);
-+ SoupMessageBody *response_body = soup_server_message_get_response_body (msg);
-+#endif
-
- for (i = 0; i < SIZE_CHUNK; i++)
- {
-@@ -49,12 +55,12 @@ send_chunks (gpointer user_data)
- server_count++;
- }
-
-- soup_message_body_append (msg->response_body, SOUP_MEMORY_COPY, data, SIZE_CHUNK);
-+ soup_message_body_append (response_body, SOUP_MEMORY_COPY, data, SIZE_CHUNK);
- soup_server_unpause_message (server, msg);
-
- if (server_count == NUM_CHUNKS * SIZE_CHUNK)
- {
-- soup_message_body_complete (msg->response_body);
-+ soup_message_body_complete (response_body);
- return FALSE;
- } else {
- return TRUE;
-@@ -62,13 +68,28 @@ send_chunks (gpointer user_data)
- }
-
- static void
-+#ifdef WITH_SOUP_2
- server_callback (SoupServer *server, SoupMessage *msg,
- const char *path, GHashTable *query,
- SoupClientContext *client, gpointer user_data)
-+#else
-+server_callback (SoupServer *server, SoupServerMessage *msg,
-+ const char *path, GHashTable *query, gpointer user_data)
-+#endif
- {
-+#ifdef WITH_SOUP_2
-+ SoupMessageHeaders *response_headers = msg->response_headers;
-+#else
-+ SoupMessageHeaders *response_headers = soup_server_message_get_response_headers (msg);
-+#endif
-+
- g_assert_cmpstr (path, ==, "/stream");
-+#ifdef WITH_SOUP_2
- soup_message_set_status (msg, SOUP_STATUS_OK);
-- soup_message_headers_set_encoding (msg->response_headers,
-+#else
-+ soup_server_message_set_status (msg, SOUP_STATUS_OK, NULL);
-+#endif
-+ soup_message_headers_set_encoding (response_headers,
- SOUP_ENCODING_CHUNKED);
- soup_server_pause_message (server, msg);
-
-@@ -142,13 +163,21 @@ continuous ()
- uris = soup_server_get_uris (server);
- g_assert (g_slist_length (uris) > 0);
-
-+#ifdef WITH_SOUP_2
- url = soup_uri_to_string (uris->data, FALSE);
-+#else
-+ url = g_uri_to_string (uris->data);
-+#endif
-
- loop = g_main_loop_new (NULL, FALSE);
-
- proxy = rest_proxy_new (url, FALSE);
- stream_test (proxy);
-+#ifdef WITH_SOUP_2
- g_slist_free_full (uris, (GDestroyNotify)soup_uri_free);
-+#else
-+ g_slist_free_full (uris, (GDestroyNotify)g_uri_unref);
-+#endif
-
- g_main_loop_run (loop);
- g_free (url);
-diff --git a/tests/proxy.c b/tests/proxy.c
-index 89a9325..652c600 100644
---- a/tests/proxy.c
-+++ b/tests/proxy.c
-@@ -49,20 +49,35 @@ SoupServer *server;
- GMainLoop *server_loop;
-
- static void
-+#ifdef WITH_SOUP_2
- server_callback (SoupServer *server, SoupMessage *msg,
- const char *path, GHashTable *query,
- SoupClientContext *client, gpointer user_data)
-+#else
-+server_callback (SoupServer *server, SoupServerMessage *msg,
-+ const char *path, GHashTable *query, gpointer user_data)
-+#endif
- {
- if (g_str_equal (path, "/ping")) {
-+#ifdef WITH_SOUP_2
- soup_message_set_status (msg, SOUP_STATUS_OK);
-+#else
-+ soup_server_message_set_status (msg, SOUP_STATUS_OK, NULL);
-+#endif
- }
- else if (g_str_equal (path, "/echo")) {
- const char *value;
-
- value = g_hash_table_lookup (query, "value");
-+#ifdef WITH_SOUP_2
- soup_message_set_response (msg, "text/plain", SOUP_MEMORY_COPY,
- value, strlen (value));
- soup_message_set_status (msg, SOUP_STATUS_OK);
-+#else
-+ soup_server_message_set_response (msg, "text/plain", SOUP_MEMORY_COPY,
-+ value, strlen (value));
-+ soup_server_message_set_status (msg, SOUP_STATUS_OK, NULL);
-+#endif
- }
- else if (g_str_equal (path, "/reverse")) {
- char *value;
-@@ -70,9 +85,15 @@ server_callback (SoupServer *server, SoupMessage *msg,
- value = g_strdup (g_hash_table_lookup (query, "value"));
- g_strreverse (value);
-
-+#ifdef WITH_SOUP_2
- soup_message_set_response (msg, "text/plain", SOUP_MEMORY_TAKE,
- value, strlen (value));
- soup_message_set_status (msg, SOUP_STATUS_OK);
-+#else
-+ soup_server_message_set_response (msg, "text/plain", SOUP_MEMORY_TAKE,
-+ value, strlen (value));
-+ soup_server_message_set_status (msg, SOUP_STATUS_OK, NULL);
-+#endif
- }
- else if (g_str_equal (path, "/status")) {
- const char *value;
-@@ -81,25 +102,61 @@ server_callback (SoupServer *server, SoupMessage *msg,
- value = g_hash_table_lookup (query, "status");
- if (value) {
- status = atoi (value);
-+#ifdef WITH_SOUP_2
- soup_message_set_status (msg, status ?: SOUP_STATUS_INTERNAL_SERVER_ERROR);
-+#else
-+ soup_server_message_set_status (msg, status ?: SOUP_STATUS_INTERNAL_SERVER_ERROR, NULL);
-+#endif
- } else {
-+#ifdef WITH_SOUP_2
- soup_message_set_status (msg, SOUP_STATUS_INTERNAL_SERVER_ERROR);
-+#else
-+ soup_server_message_set_status (msg, SOUP_STATUS_INTERNAL_SERVER_ERROR, NULL);
-+#endif
- }
- }
- else if (g_str_equal (path, "/useragent/none")) {
-- if (soup_message_headers_get (msg->request_headers, "User-Agent") == NULL) {
-+#ifdef WITH_SOUP_2
-+ SoupMessageHeaders *request_headers = msg->request_headers;
-+#else
-+ SoupMessageHeaders *request_headers = soup_server_message_get_request_headers (msg);
-+#endif
-+
-+ if (soup_message_headers_get (request_headers, "User-Agent") == NULL) {
-+#ifdef WITH_SOUP_2
- soup_message_set_status (msg, SOUP_STATUS_OK);
-+#else
-+ soup_server_message_set_status (msg, SOUP_STATUS_OK, NULL);
-+#endif
- } else {
-+#ifdef WITH_SOUP_2
- soup_message_set_status (msg, SOUP_STATUS_EXPECTATION_FAILED);
-+#else
-+ soup_server_message_set_status (msg, SOUP_STATUS_EXPECTATION_FAILED, NULL);
-+#endif
- }
- }
- else if (g_str_equal (path, "/useragent/testsuite")) {
-+#ifdef WITH_SOUP_2
-+ SoupMessageHeaders *request_headers = msg->request_headers;
-+#else
-+ SoupMessageHeaders *request_headers = soup_server_message_get_request_headers (msg);
-+#endif
- const char *value;
-- value = soup_message_headers_get (msg->request_headers, "User-Agent");
-+ value = soup_message_headers_get (request_headers, "User-Agent");
- if (g_strcmp0 (value, "TestSuite-1.0") == 0) {
-+#ifdef WITH_SOUP_2
- soup_message_set_status (msg, SOUP_STATUS_OK);
-+#else
-+ soup_server_message_set_status (msg, SOUP_STATUS_OK, NULL);
-+#endif
- } else {
-+#ifdef WITH_SOUP_2
- soup_message_set_status (msg, SOUP_STATUS_EXPECTATION_FAILED);
-+#else
-+ soup_server_message_set_status (msg, SOUP_STATUS_EXPECTATION_FAILED, NULL);
-+#endif
-+
- }
- }
- }
-@@ -325,7 +382,7 @@ main (int argc, char **argv)
- char *url;
- RestProxy *proxy;
-
-- server = soup_server_new ("", NULL);
-+ server = soup_server_new (NULL);
- g_thread_new ("Server Thread", server_thread_func, NULL);
-
- url = g_strdup_printf ("http://127.0.0.1:%d/", PORT);
-diff --git a/tests/threaded.c b/tests/threaded.c
-index a251900..411361c 100644
---- a/tests/threaded.c
-+++ b/tests/threaded.c
-@@ -36,13 +36,22 @@ GMainLoop *main_loop;
- SoupServer *server;
-
- static void
-+#ifdef WITH_SOUP_2
- server_callback (SoupServer *server, SoupMessage *msg,
- const char *path, GHashTable *query,
- SoupClientContext *client, gpointer user_data)
-+#else
-+server_callback (SoupServer *server, SoupServerMessage *msg,
-+ const char *path, GHashTable *query, gpointer user_data)
-+#endif
- {
- g_assert_cmpstr (path, ==, "/ping");
-
-+#ifdef WITH_SOUP_2
- soup_message_set_status (msg, SOUP_STATUS_OK);
-+#else
-+ soup_server_message_set_status (msg, SOUP_STATUS_OK, NULL);
-+#endif
- g_atomic_int_add (&threads_done, 1);
-
- if (threads_done == N_THREADS) {
-@@ -96,7 +105,11 @@ static void ping ()
- uris = soup_server_get_uris (server);
- g_assert (g_slist_length (uris) > 0);
-
-+#ifdef WITH_SOUP_2
- url = soup_uri_to_string (uris->data, FALSE);
-+#else
-+ url = g_uri_to_string (uris->data);
-+#endif
-
- main_loop = g_main_loop_new (NULL, TRUE);
-
-@@ -109,7 +122,11 @@ static void ping ()
- g_main_loop_run (main_loop);
-
- g_free (url);
-+#ifdef WITH_SOUP_2
- g_slist_free_full (uris, (GDestroyNotify)soup_uri_free);
-+#else
-+ g_slist_free_full (uris, (GDestroyNotify)g_uri_unref);
-+#endif
- g_object_unref (server);
- g_main_loop_unref (main_loop);
- }
---
-2.33.1
-
diff --git a/meta-gnome/recipes-gnome/rest/librest_0.8.1.bb b/meta-gnome/recipes-gnome/rest/librest_0.8.1.bb
new file mode 100644
index 0000000000..63372afa5d
--- /dev/null
+++ b/meta-gnome/recipes-gnome/rest/librest_0.8.1.bb
@@ -0,0 +1,33 @@
+SUMMARY = "library to access web services that claim to be "RESTful""
+HOMEPAGE = "https://wiki.gnome.org/Projects/Librest"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = " \
+ glib-2.0 \
+ glib-2.0-native \
+ libsoup-2.4 \
+ libxml2 \
+"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase gobject-introspection vala pkgconfig gtk-doc
+
+GNOMEBN = "rest"
+
+SRC_URI[archive.sha256sum] = "0513aad38e5d3cedd4ae3c551634e3be1b9baaa79775e53b2dba9456f15b01c9"
+
+S = "${WORKDIR}/${GNOMEBN}-${PV}"
+# * gnome environment requires libsoup build with in gnome PACKAGECONFIG
+# * libsoup-gnome support was removed upstream three years ago [1]
+# [1] https://gitlab.gnome.org/GNOME/librest/commit/8f904a8e2bb38a7bf72245cdf2f1ecad17e9a720
+EXTRA_OECONF = "--without-gnome"
+
+do_configure:prepend() {
+ # rest expects introspection.m4 at custom location (see aclocal.m4).
+ cp -f ${STAGING_DIR_TARGET}/${datadir}/aclocal/introspection.m4 ${S}/build
+}
+
+do_compile:prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/rest/.libs"
+}
diff --git a/meta-gnome/recipes-gnome/rest/rest_0.8.1.bb b/meta-gnome/recipes-gnome/rest/rest_0.8.1.bb
deleted file mode 100644
index f1c9915c09..0000000000
--- a/meta-gnome/recipes-gnome/rest/rest_0.8.1.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "library to access web services that claim to be "RESTful""
-HOMEPAGE = "https://wiki.gnome.org/Projects/Librest"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-GNOMEBASEBUILDCLASS = "autotools"
-
-DEPENDS = " \
- libxml2-native \
- glib-2.0-native \
- glib-2.0 \
- libsoup-2.4 \
-"
-
-inherit gnomebase gobject-introspection gtk-doc vala
-
-PV .= "+git${SRCPV}"
-SRCREV = "7b46065dea860ef09861f4d70124728b8270c8b7"
-SRC_URI = "git://gitlab.gnome.org/GNOME/librest;protocol=https;branch=master \
- file://0001-Use-GUri-instead-of-SoupURI.patch \
- file://0002-Port-to-libsoup3.patch \
-"
-S = "${WORKDIR}/git"
-
-do_configure:prepend() {
- # rest expects introspection.m4 at custom location (see aclocal.m4).
- cp -f ${STAGING_DIR_TARGET}/${datadir}/aclocal/introspection.m4 ${S}/build
-}
-
-do_compile:prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/rest/.libs"
-}
-
diff --git a/meta-gnome/recipes-gnome/rest/rest_0.9.1.bb b/meta-gnome/recipes-gnome/rest/rest_0.9.1.bb
new file mode 100644
index 0000000000..3b22fdfea2
--- /dev/null
+++ b/meta-gnome/recipes-gnome/rest/rest_0.9.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "library to access web services that claim to be "RESTful""
+HOMEPAGE = "https://wiki.gnome.org/Projects/Librest"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+
+DEPENDS = " \
+ glib-2.0 \
+ glib-2.0-native \
+ gtksourceview5 \
+ json-glib \
+ libadwaita \
+ libsoup-3.0 \
+ libxml2-native \
+"
+
+inherit gnomebase gobject-introspection vala pkgconfig gi-docgen features_check
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[examples] = "-Dexamples=true,-Dexamples=false"
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
+
+SRC_URI[archive.sha256sum] = "9266a5c10ece383e193dfb7ffb07b509cc1f51521ab8dad76af96ed14212c2e3"
diff --git a/meta-gnome/recipes-gnome/sysprof/sysprof_3.44.0.bb b/meta-gnome/recipes-gnome/sysprof/sysprof_3.44.0.bb
index c9d32c3946..3523bad3e2 100644
--- a/meta-gnome/recipes-gnome/sysprof/sysprof_3.44.0.bb
+++ b/meta-gnome/recipes-gnome/sysprof/sysprof_3.44.0.bb
@@ -4,7 +4,6 @@ LICENSE = "GPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://src/sysprof/sysprof-application.c;endline=17;md5=a3de8df3b0f8876dd01e1388d2d4b607"
-GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gnome-help gettext systemd upstream-version-is-even gsettings mime mime-xdg
DEPENDS += " \
diff --git a/meta-gnome/recipes-gnome/tecla/tecla_46.0.bb b/meta-gnome/recipes-gnome/tecla/tecla_46.0.bb
new file mode 100644
index 0000000000..62b3aa3e3e
--- /dev/null
+++ b/meta-gnome/recipes-gnome/tecla/tecla_46.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Tecla is a keyboard layout viewer that uses GTK/Libadwaita for UI, and libxkbcommon to deal with keyboard maps."
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=75859989545e37968a99b631ef42722e"
+
+DEPENDS = " \
+ libxkbcommon \
+ libadwaita \
+ wayland \
+ gtk4 \
+"
+
+REQUIRED_DISTRO_FEATURES = "wayland"
+
+inherit gnomebase pkgconfig features_check
+
+SRC_URI[archive.sha256sum] = "4a081eab867a5a8b09758991cad7645920f323aabca954408290fb6f44591b0f"
diff --git a/meta-gnome/recipes-gnome/tepl/tepl_6.00.0.bb b/meta-gnome/recipes-gnome/tepl/tepl_6.00.0.bb
deleted file mode 100644
index 66de215cfa..0000000000
--- a/meta-gnome/recipes-gnome/tepl/tepl_6.00.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Tepl library eases the development of GtkSourceView-based projects"
-LICENSE = "LGPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSES/LGPL-3.0-or-later.txt;md5=c51d3eef3be114124d11349ca0d7e117"
-
-DEPENDS = " \
- glib-2.0-native \
- gtk+3 \
- gtksourceview4 \
- amtk \
- libxml2 \
- uchardet \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gobject-introspection gettext features_check
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[archive.sha256sum] = "a86397a895dca9c0de7a5ccb063bda8f7ef691cccb950ce2cfdee367903e7a63"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
-GIR_MESON_OPTION = ""
-
-GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-gnome/recipes-gnome/tepl/tepl_6.8.0.bb b/meta-gnome/recipes-gnome/tepl/tepl_6.8.0.bb
new file mode 100644
index 0000000000..6c9c36f3ed
--- /dev/null
+++ b/meta-gnome/recipes-gnome/tepl/tepl_6.8.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Tepl library eases the development of GtkSourceView-based projects"
+LICENSE = "LGPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSES/LGPL-3.0-or-later.txt;md5=c51d3eef3be114124d11349ca0d7e117"
+
+DEPENDS = " \
+ gsettings-desktop-schemas \
+ glib-2.0 \
+ gtk+3 \
+ libgedit-amtk \
+ libgedit-gtksourceview \
+ libxml2 \
+ uchardet \
+ gtk-doc-native \
+ libxslt-native \
+ docbook-xsl-stylesheets-native \
+ python3-pygments-native \
+"
+
+inherit meson gobject-introspection gettext features_check pkgconfig
+
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+SRC_URI = "git://gitlab.gnome.org/swilmet/tepl;protocol=https;branch=main"
+SRCREV = "16ab2567257a053bd957699f89080fafd0999035"
+S = "${WORKDIR}/git"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch b/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch
index 1332a95827..7a40ae338c 100644
--- a/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch
+++ b/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch
@@ -7,22 +7,8 @@ Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
---
- src/libtracker-miner/tracker-miner-enum-types.c.template | 2 +-
- .../tracker-miners-enum-types.c.template | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/libtracker-miner/tracker-miner-enum-types.c.template b/src/libtracker-miner/tracker-miner-enum-types.c.template
-index 7be7a01..46a4dc9 100644
---- a/src/libtracker-miner/tracker-miner-enum-types.c.template
-+++ b/src/libtracker-miner/tracker-miner-enum-types.c.template
-@@ -7,7 +7,7 @@
-
- /*** BEGIN file-production ***/
- /* enumerations from "@basename@" */
--#include "@filename@"
-+#include "tracker-miner-enums.h"
- /*** END file-production ***/
-
+ src/libtracker-miners-common/tracker-miner-enum-types.c.template | 1 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/libtracker-miners-common/tracker-miners-enum-types.c.template b/src/libtracker-miners-common/tracker-miners-enum-types.c.template
index c712dda..cb449e2 100644
diff --git a/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-fix-reproducibility.patch b/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-fix-reproducibility.patch
new file mode 100644
index 0000000000..98618e5d3e
--- /dev/null
+++ b/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-fix-reproducibility.patch
@@ -0,0 +1,118 @@
+From 2bbd07843e8ec34311cafab35f21b40c86e0dd7f Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Tue, 12 Sep 2023 17:00:41 +0200
+Subject: [PATCH] meson: fix reproducibility
+
+Tracker's design seems to be strictly for non-cross builds and leaks buildpaths into the
+binaries at various places. Avoid this to improve binary reproducibility.
+
+todo: Some of these paths may need to be adjusted to make the test environment work
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ meson.build | 20 ++++++++++----------
+ src/tracker-extract/meson.build | 2 +-
+ tests/tracker-miner-fs/meson.build | 2 +-
+ 3 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 935584185..aa6126081 100644
+--- a/meson.build
++++ b/meson.build
+@@ -380,7 +380,7 @@ conf.set('PACKAGE_VERSION', '"@0@"'.format(meson.project_version()))
+ conf.set('TRACKER_VERSION', '"@0@"'.format(meson.project_version()))
+
+ # Config that goes in some other generated files (.desktop, .pc, etc)
+-conf.set('abs_top_builddir', meson.current_build_dir())
++conf.set('abs_top_builddir', '')
+ conf.set('exec_prefix', get_option('prefix'))
+ conf.set('bindir', join_paths(get_option('prefix'), get_option('bindir')))
+ conf.set('datadir', datadir)
+@@ -409,7 +409,7 @@ tracker_c_args = [
+ configinc = include_directories('./')
+ srcinc = include_directories('src/')
+
+-build_root = meson.current_build_dir()
++build_root = ''
+
+ # We use tracker-miners-3.0 rather than tracker3-miners inside the lib64
+ # directory, following the existing convention in that directory.
+@@ -438,8 +438,8 @@ subdir('data')
+ subdir('docs')
+
+ test_c_args = tracker_c_args + [
+- '-DTOP_BUILDDIR="@0@/"'.format(meson.build_root()),
+- '-DTOP_SRCDIR="@0@/"'.format(meson.source_root()),
++ '-DTOP_BUILDDIR="@0@/"'.format(''),
++ '-DTOP_SRCDIR="@0@/"'.format('/usr/src/debug/tracker'),
+ ]
+
+ if get_option('tests_tap_protocol')
+diff --git a/src/tracker-extract/meson.build b/src/tracker-extract/meson.build
+index 4aaad5c41..d17cce221 100644
+--- a/src/tracker-extract/meson.build
++++ b/src/tracker-extract/meson.build
+@@ -159,7 +159,7 @@ endif
+ executable('tracker-extract-@0@'.format(tracker_api_major),
+ tracker_extract_sources,
+ # Manually add the root dir to work around https://github.com/mesonbuild/meson/issues/1387
+- c_args: tracker_c_args + ['-I' + meson.build_root()],
++ c_args: tracker_c_args,
+ export_dynamic: true,
+ dependencies: tracker_extract_dependencies,
+ install: true,
+diff --git a/tests/tracker-miner-fs/meson.build b/tests/tracker-miner-fs/meson.build
+index e131b85ad..59e509fa6 100644
+--- a/tests/tracker-miner-fs/meson.build
++++ b/tests/tracker-miner-fs/meson.build
+@@ -19,7 +19,7 @@ libtracker_miner_test_c_args = [
+ ]
+
+ libtracker_miner_test_environment = environment()
+-libtracker_miner_test_environment.set('GSETTINGS_SCHEMA_DIR', join_paths(meson.build_root(), 'data'))
++libtracker_miner_test_environment.set('GSETTINGS_SCHEMA_DIR', '/usr/src/debug/tracker-miners/data')
+
+ libtracker_miner_test_deps = [tracker_miners_common_dep, tracker_miner_dep, tracker_sparql]
+
+
+diff --git a/src/miners/fs/meson.build b/src/miners/fs/meson.build
+index 6e5883288..04750f82b 100644
+--- a/src/miners/fs/meson.build
++++ b/src/miners/fs/meson.build
+@@ -67,8 +67,8 @@ executable('tracker-miner-fs-@0@'.format(tracker_api_major),
+ dependencies: tracker_miner_fs_deps,
+ c_args: [
+ tracker_c_args,
+- '-DBUILDROOT="@0@"'.format(meson.global_build_root()),
+- '-DBUILD_EXTRACTDIR="@0@"'.format(meson.build_root() / 'src' / 'tracker-extract'),
++ '-DBUILDROOT="@0@"'.format(get_option('prefix') / 'src'),
++ '-DBUILD_EXTRACTDIR="@0@"'.format(get_option('prefix') / 'src' / 'tracker-extract'),
+ '-DLIBEXECDIR="@0@"'.format(get_option('prefix') / get_option('libexecdir')),
+ ],
+ install: true,
+diff --git a/src/libtracker-miners-common/tracker-landlock.c b/src/libtracker-miners-common/tracker-landlock.c
+index 27e7db65b..3021343eb 100644
+--- a/src/libtracker-miners-common/tracker-landlock.c
++++ b/src/libtracker-miners-common/tracker-landlock.c
+@@ -276,7 +276,7 @@
+ LANDLOCK_ACCESS_FS_READ_DIR);
+ }
+ }
+-
++#if 0
+ current_dir = g_get_current_dir ();
+
+ /* Detect running in-tree */
+@@ -296,7 +296,7 @@
+ in_tree_rules[i].flags);
+ }
+ }
+-
++#endif
+ /* Add user cache for readonly databases */
+ #ifdef MINER_FS_CACHE_LOCATION
+ add_rule (landlock_fd, MINER_FS_CACHE_LOCATION,
+--
+2.41.0
diff --git a/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch b/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch
deleted file mode 100644
index 53c5f2664e..0000000000
--- a/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 54ea2cabf85ad1bd5695cdbd1935115c9495e80c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Sun, 1 Dec 2019 17:06:59 +0100
-Subject: [PATCH] meson.build: Just warn if we build without libseccomp
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-libseccomp lives in meta-security currently and we cannot make it a mandatory
-dependency. Once somebody moves libseccomp to meta-oe and adjusts all the
-target specific knobs this patch can go. For discussion see [1].
-
-[1] http://lists.openembedded.org/pipermail/openembedded-devel/2019-November/203234.html
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 71a9df4..1eaa1a0 100644
---- a/meson.build
-+++ b/meson.build
-@@ 299,7 +299,7 @@ cpu_supports_seccomp = not unsupported_cpus.contains(host_cpu)
- seccomp_required = system_supports_seccomp and cpu_supports_seccomp and get_option('seccomp') and get_option('extract')
-
- if not libseccomp.found() and seccomp_required
-- error('Libseccomp is mandatory for sandboxed metadata extraction')
-+ warning('Building without Libseccomp might cause security issues!')
- endif
-
- ####################################################################
---
-2.21.0
-
diff --git a/meta-gnome/recipes-gnome/tracker/tracker-miners_3.2.1.bb b/meta-gnome/recipes-gnome/tracker/tracker-miners_3.2.1.bb
deleted file mode 100644
index 92039a2a68..0000000000
--- a/meta-gnome/recipes-gnome/tracker/tracker-miners_3.2.1.bb
+++ /dev/null
@@ -1,76 +0,0 @@
-SUMMARY = "Tracker miners and metadata extractors"
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = " \
- file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \
- file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
-"
-
-DEPENDS = " \
- intltool-native \
- tracker \
- zlib \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection vala bash-completion features_check
-
-SRC_URI += "file://0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch \
- file://0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch \
- "
-
-SRC_URI[archive.sha256sum] = "44369f53e2edef41437406dbeecd477a97f8a9afdd9134832ea45d1ba2aa2c47"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-GIR_MESON_OPTION = ""
-
-PACKAGECONFIG ??= " \
- ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "ffmpeg", "", d)} \
- gexiv2 \
- gstreamer \
- icu \
- libexif \
- libgsf \
- jpeg \
- pdf \
- png \
- tiff \
- xml \
- ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \
-"
-
-PACKAGECONFIG[battery] = "-Dbattery_detection=upower,-Dbattery_detection=none,upower"
-PACKAGECONFIG[ffmpeg] = ",,ffmpeg"
-PACKAGECONFIG[gexiv2] = ",,gexiv2"
-PACKAGECONFIG[gstreamer] = ",,gstreamer1.0 gstreamer1.0-plugins-base"
-PACKAGECONFIG[gupnp] = ",,gupnp-dlna"
-PACKAGECONFIG[gif] = "-Dgif=enabled,-Dgif=disabled,giflib"
-PACKAGECONFIG[icu] = ",,icu"
-PACKAGECONFIG[jpeg] = "-Djpeg=enabled,-Djpeg=disabled,jpeg"
-PACKAGECONFIG[libexif] = "-Dexif=enabled,-Dexif=disabled,libexif"
-PACKAGECONFIG[libgsf] = "-Dgsf=enabled,-Dgsf=disabled,libgsf"
-PACKAGECONFIG[pdf] = "-Dpdf=enabled,-Dpdf=disabled,poppler"
-PACKAGECONFIG[png] = "-Dpng=enabled,-Dpng=disabled,libpng"
-PACKAGECONFIG[tiff] = "-Dtiff=enabled,-Dtiff=disabled,tiff"
-PACKAGECONFIG[xml] = "-Dxml=enabled,-Dxml=disabled,libxml2"
-PACKAGECONFIG[networkmanager] = "-Dnetwork_manager=enabled,-Dnetwork_manager=disabled,networkmanger"
-
-# For security reasons it is strongly recommended to set add meta-security in
-# your layers and 'libseccomp' to PACKAGECONFIG".
-PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp"
-# not yet in meta-gnome
-PACKAGECONFIG[rss] = "-Dminer_rss=true,-Dminer_rss=false,libgrss"
-
-EXTRA_OEMESON += " \
- -Dman=false \
- -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \
- -Dsystemd_user_services_dir=${systemd_user_unitdir} \
-"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/tracker3-miners \
- ${libdir}/tracker-miners-3.0 \
- ${systemd_user_unitdir} \
-"
diff --git a/meta-gnome/recipes-gnome/tracker/tracker-miners_3.7.1.bb b/meta-gnome/recipes-gnome/tracker/tracker-miners_3.7.1.bb
new file mode 100644
index 0000000000..7bbee2a885
--- /dev/null
+++ b/meta-gnome/recipes-gnome/tracker/tracker-miners_3.7.1.bb
@@ -0,0 +1,86 @@
+SUMMARY = "Tracker miners and metadata extractors"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = " \
+ file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \
+ file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+"
+
+DEPENDS = " \
+ intltool-native \
+ tracker \
+ zlib \
+"
+
+
+inherit gnomebase gsettings gobject-introspection vala bash-completion features_check
+
+SRC_URI:append = " \
+ file://0001-fix-reproducibility.patch \
+ file://0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch \
+"
+SRC_URI[archive.sha256sum] = "50a3abe40cfb0b35ced43ec716dbf1368992e444ef7a0babf202c7ac6ab2f6f4"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+VALA_MESON_OPTION = ""
+
+PACKAGECONFIG ??= " \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "ffmpeg", "", d)} \
+ gexiv2 \
+ gstreamer \
+ icu \
+ libexif \
+ libgsf \
+ jpeg \
+ pdf \
+ png \
+ tiff \
+ raw \
+ xml \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \
+ battery \
+ networkmanager \
+"
+# Needs tgkill API which musl does not support
+# see https://www.openwall.com/lists/musl/2019/08/02/1
+PACKAGECONFIG:remove:libc-musl = "seccomp"
+
+PACKAGECONFIG[battery] = "-Dbattery_detection=upower,-Dbattery_detection=none,upower"
+PACKAGECONFIG[cue] = "-Dcue=enabled,-Dcue=disabled,libcue"
+PACKAGECONFIG[ffmpeg] = "-Dgeneric_media_extractor=libav,,ffmpeg"
+PACKAGECONFIG[gexiv2] = ",,gexiv2"
+PACKAGECONFIG[gstreamer] = "-Dgeneric_media_extractor=gstreamer,,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[gupnp] = "-Dgstreamer_backend=gupnp,,gupnp-dlna"
+PACKAGECONFIG[gif] = "-Dgif=enabled,-Dgif=disabled,giflib"
+PACKAGECONFIG[icu] = "-Dcharset_detection=icu,,icu"
+PACKAGECONFIG[iso] = "-Diso=enabled,-Diso=disabled,libosinfo"
+PACKAGECONFIG[jpeg] = "-Djpeg=enabled,-Djpeg=disabled,jpeg"
+PACKAGECONFIG[libexif] = "-Dexif=enabled,-Dexif=disabled,libexif"
+PACKAGECONFIG[libgsf] = "-Dgsf=enabled,-Dgsf=disabled,libgsf"
+PACKAGECONFIG[pdf] = "-Dpdf=enabled,-Dpdf=disabled,poppler"
+PACKAGECONFIG[png] = "-Dpng=enabled,-Dpng=disabled,libpng"
+PACKAGECONFIG[tiff] = "-Dtiff=enabled,-Dtiff=disabled,tiff"
+PACKAGECONFIG[raw] = "-Draw=enabled,-Draw=disabled,libraw"
+PACKAGECONFIG[xml] = "-Dxml=enabled,-Dxml=disabled,libxml2"
+PACKAGECONFIG[networkmanager] = "-Dnetwork_manager=enabled,-Dnetwork_manager=disabled,networkmanager"
+PACKAGECONFIG[landlock] = "-Dlandlock=enabled,-Dlandlock=disabled"
+
+# For security reasons it is strongly recommended to set add meta-security in
+# your layers and 'libseccomp' to PACKAGECONFIG".
+PACKAGECONFIG[seccomp] = "-Dseccomp=true,-Dseccomp=false,libseccomp"
+# not yet in meta-gnome
+PACKAGECONFIG[rss] = "-Dminer_rss=true,-Dminer_rss=false,libgrss"
+
+EXTRA_OEMESON += " \
+ -Dman=false \
+ -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \
+ -Dsystemd_user_services_dir=${systemd_user_unitdir} \
+"
+
+
+FILES:${PN} += " \
+ ${datadir} \
+ ${libdir}/tracker-miners-3.0 \
+ ${systemd_user_unitdir} \
+"
diff --git a/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch b/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch
new file mode 100644
index 0000000000..4527f9efa3
--- /dev/null
+++ b/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch
@@ -0,0 +1,77 @@
+From ae34fb111e1f2498f37b21c0c32ace6c9928ad66 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 18 Sep 2023 02:47:55 +0200
+Subject: [PATCH] tracker: fix reproducibility issue
+
+Tracker's design seems to be strictly for non-cross builds and leaks buildpaths into the
+binaries at various places. Avoid this to improve binary reproducibility.
+
+todo: Some of these paths may need to be adjusted to make the test environment work
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ meson.build | 6 +++---
+ src/libtracker-common/meson.build | 4 ++--
+ src/libtracker-sparql/meson.build | 4 ++--
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index bc9f93a..6c86e5a 100644
+--- a/meson.build
++++ b/meson.build
+@@ -357,7 +357,7 @@ have_rtld_noload = cc.has_header_symbol('dlfcn.h', 'RTLD_NOLOAD')
+ conf.set('HAVE_RTLD_NOLOAD', have_rtld_noload)
+
+ # Config that goes in some other generated files (.desktop, .service, etc)
+-conf.set('abs_top_builddir', meson.current_build_dir())
++conf.set('abs_top_builddir', '/usr/src/debug/tracker')
+ conf.set('libexecdir', join_paths(get_option('prefix'), get_option('libexecdir')))
+
+ configure_file(input: 'config.h.meson.in',
+@@ -396,8 +396,8 @@ subdir('docs')
+ subdir('utils')
+
+ test_c_args = tracker_c_args + [
+- '-DTOP_BUILDDIR="@0@"'.format(build_root),
+- '-DTOP_SRCDIR="@0@"'.format(source_root),
++ '-DTOP_BUILDDIR="@0@/"'.format('/usr/src/debug/tracker'),
++ '-DTOP_SRCDIR="@0@/"'.format('/usr/src/debug/tracker'),
+ ]
+
+ tracker_uninstalled_cli_dir = join_paths(meson.current_build_dir(), 'src', 'tracker')
+diff --git a/src/libtracker-common/meson.build b/src/libtracker-common/meson.build
+index 9355d1c..cdbc05f 100644
+--- a/src/libtracker-common/meson.build
++++ b/src/libtracker-common/meson.build
+@@ -51,10 +51,10 @@ libtracker_common = static_library('tracker-common',
+ dependencies: [tracker_common_dependencies, gmodule],
+ c_args: [
+ '-DPRIVATE_LIBDIR="@0@"'.format(tracker_internal_libs_dir),
+- '-DBUILD_LIBDIR="@0@"'.format(meson.current_build_dir()),
++ '-DBUILD_LIBDIR="@0@"'.format('/usr/src/debug/tracker'),
+ # Global build root is required to detect noinst situations (tests/introspection),
+ # event when built as a subproject
+- '-DBUILDROOT="@0@"'.format(meson.global_build_root()),
++ '-DBUILDROOT="@0@"'.format('/usr/src/debug/tracker'),
+ ] + tracker_c_args,
+ include_directories: [configinc, srcinc],
+ gnu_symbol_visibility: 'hidden',
+diff --git a/src/libtracker-sparql/meson.build b/src/libtracker-sparql/meson.build
+index 4143eac..b73f1c9 100644
+--- a/src/libtracker-sparql/meson.build
++++ b/src/libtracker-sparql/meson.build
+@@ -98,10 +98,10 @@ libtracker_sparql_private = static_library('tracker-sparql-private',
+ c_args: [
+ '-include', 'libtracker-sparql/tracker-private.h',
+ '-DPRIVATE_LIBDIR="@0@"'.format(tracker_internal_libs_dir),
+- '-DBUILD_LIBDIR="@0@"'.format(meson.current_build_dir()),
++ '-DBUILD_LIBDIR="@0@"'.format('/usr/src/debug/tracker'),
+ # Global build root is required to detect noinst situations (tests/introspection),
+ # event when built as a subproject
+- '-DBUILDROOT="@0@"'.format(meson.global_build_root()),
++ '-DBUILDROOT="@0@"'.format('/usr/src/debug/tracker'),
+ ] + tracker_c_args,
+
+ dependencies: [libtracker_sparql_dependencies, gvdb_dep],
diff --git a/meta-gnome/recipes-gnome/tracker/tracker_3.4.0.bb b/meta-gnome/recipes-gnome/tracker/tracker_3.4.0.bb
deleted file mode 100644
index ed0fbb6f01..0000000000
--- a/meta-gnome/recipes-gnome/tracker/tracker_3.4.0.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Tracker is a file search engine"
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = " \
- file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \
- file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
-"
-
-DEPENDS = " \
- dbus-native \
- python3-pygobject-native \
- glib-2.0 \
- sqlite3 \
- libarchive \
- dbus \
- icu \
- json-glib \
- libsoup-2.4 \
- libstemmer \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check python3native
-
-SRC_URI[archive.sha256sum] = "b3b380c9571d7c7423b5f401e4a2f2d78de47143b035eb2c1281e2423c59218b"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-GIR_MESON_OPTION = ""
-
-# text search is not an option anymore and requires sqlite3 build with
-# PACKAGECONFIG[fts5] set (default)
-
-# set required cross property sqlite3_has_fts5
-do_write_config[vardeps] += "PACKAGECONFIG"
-do_write_config:append() {
- echo "[properties]" > ${WORKDIR}/meson-tracker.cross
- echo "sqlite3_has_fts5 = 'true'" >> ${WORKDIR}/meson-tracker.cross
-}
-
-EXTRA_OEMESON = " \
- --cross-file ${WORKDIR}/meson-tracker.cross \
- -Dman=false \
- -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \
- -Dsystemd_user_services_dir=${systemd_user_unitdir} \
-"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/tracker3 \
- ${libdir}/tracker-3.0 \
- ${systemd_user_unitdir} \
-"
diff --git a/meta-gnome/recipes-gnome/tracker/tracker_3.7.1.bb b/meta-gnome/recipes-gnome/tracker/tracker_3.7.1.bb
new file mode 100644
index 0000000000..1d5c79ab4d
--- /dev/null
+++ b/meta-gnome/recipes-gnome/tracker/tracker_3.7.1.bb
@@ -0,0 +1,59 @@
+SUMMARY = "Tracker is a file search engine"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = " \
+ file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \
+ file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+"
+
+DEPENDS = " \
+ dbus-native \
+ python3-pygobject-native \
+ glib-2.0 \
+ sqlite3 \
+ libarchive \
+ dbus \
+ icu \
+ json-glib \
+ libsoup-3.0 \
+ libstemmer \
+"
+
+
+inherit gettext gnomebase gobject-introspection vala gtk-doc bash-completion python3native
+
+SRC_URI += "file://0001-fix-reproducibility.patch"
+SRC_URI[archive.sha256sum] = "cd91b885ee9839cde5387f8e05ed24a7108d1627629cb6b1b2aa51a9603e130a"
+
+# text search is not an option anymore and requires sqlite3 build with
+# PACKAGECONFIG[fts5] set (default)
+
+# set required cross property sqlite3_has_fts5
+do_write_config[vardeps] += "PACKAGECONFIG"
+do_write_config:append() {
+ echo "[properties]" > ${WORKDIR}/meson-tracker.cross
+ echo "sqlite3_has_fts5 = 'true'" >> ${WORKDIR}/meson-tracker.cross
+}
+
+EXTRA_OEMESON = " \
+ --cross-file ${WORKDIR}/meson-tracker.cross \
+ -Dman=false \
+ -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \
+ -Dsystemd_user_services_dir=${systemd_user_unitdir} \
+ -Dsoup=soup3 \
+ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=enabled', '-Dvapi=disabled', d)} \
+"
+
+do_install:prepend() {
+ sed -i -e 's|${B}/../${PN}-${PV}|${TARGET_DBGSRC_DIR}|g' ${B}/src/libtracker-sparql/tracker-sparql-enum-types.c
+ sed -i -e 's|${B}/../${PN}-${PV}|${TARGET_DBGSRC_DIR}|g' ${B}/src/libtracker-sparql/core/tracker-data-enum-types.c
+}
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/tracker3 \
+ ${libdir}/tracker-3.0 \
+ ${systemd_user_unitdir} \
+"
diff --git a/meta-gnome/recipes-gnome/yelp/yelp-tools_42.0.bb b/meta-gnome/recipes-gnome/yelp/yelp-tools_42.0.bb
deleted file mode 100644
index a5da8590ff..0000000000
--- a/meta-gnome/recipes-gnome/yelp/yelp-tools_42.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Collection of scripts and build utilities for documentation"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=d67c6f9f1515506abfea4f0d920c0774 \
- file://COPYING.GPL;md5=eb723b61539feef013de476e68b5c50a \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase itstool
-
-DEPENDS += " \
- libxslt-native \
- libxml2-native \
- python3-lxml-native \
- yelp-xsl \
-"
-
-SRC_URI[archive.sha256sum] = "2cd43063ffa7262df15dd8d379aa3ea3999d42661f07563f4802daa1149f7df4"
-
-RDEPENDS:${PN} += "python3-core yelp-xsl"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-gnome/recipes-gnome/yelp/yelp-tools_42.1.bb b/meta-gnome/recipes-gnome/yelp/yelp-tools_42.1.bb
new file mode 100644
index 0000000000..f3e1efeaa1
--- /dev/null
+++ b/meta-gnome/recipes-gnome/yelp/yelp-tools_42.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Collection of scripts and build utilities for documentation"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=d67c6f9f1515506abfea4f0d920c0774 \
+ file://COPYING.GPL;md5=eb723b61539feef013de476e68b5c50a \
+"
+
+inherit gnomebase itstool
+
+DEPENDS += " \
+ libxslt-native \
+ libxml2-native \
+ python3-lxml-native \
+ yelp-xsl \
+"
+
+SRC_URI[archive.sha256sum] = "3e496a4020d4145b99fd508a25fa09336a503a4e8900028421e72c6a4b11f905"
+
+RDEPENDS:${PN} += "python3-core yelp-xsl"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-gnome/recipes-gnome/yelp/yelp-xsl_42.1.bb b/meta-gnome/recipes-gnome/yelp/yelp-xsl_42.1.bb
index ba2536443f..5a8089e013 100644
--- a/meta-gnome/recipes-gnome/yelp/yelp-xsl_42.1.bb
+++ b/meta-gnome/recipes-gnome/yelp/yelp-xsl_42.1.bb
@@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = " \
file://COPYING.LGPL;md5=a6f89e2100d9b6cdffcea4f398e37343 \
"
+GNOMEBASEBUILDCLASS = "autotools"
inherit gnomebase gettext itstool
DEPENDS += "libxml2"
diff --git a/meta-gnome/recipes-gnome/yelp/yelp_42.1.bb b/meta-gnome/recipes-gnome/yelp/yelp_42.1.bb
deleted file mode 100644
index ab8b9c37ba..0000000000
--- a/meta-gnome/recipes-gnome/yelp/yelp_42.1.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Help browser for the GNOME desktop"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=6e1b9cb787e76d7e6946887a65caa754 \
-"
-
-inherit gnomebase itstool autotools-brokensep gsettings gettext gtk-doc features_check mime-xdg
-
-# for webkitgtk
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.sha256sum] = "25b1146ab8549888a5a8da067f63b470b0f0f800b6ae889cacd114d01d713b41"
-
-DEPENDS += " \
- libxml2-native \
- glib-2.0-native \
- gtk+3 \
- appstream-glib \
- libxslt \
- sqlite3 \
- libhandy \
- webkitgtk \
- yelp-xsl \
-"
-PACKAGECONFIG ?= ""
-
-# Enable if soup3 is enabled in webkit recipe
-PACKAGECONFIG[soup3] = ",--with-webkit2gtk-4-0,"
-
-do_configure:prepend() {
- export ITSTOOL=${STAGING_BINDIR_NATIVE}/itstool
-}
-
-FILES:${PN} += " \
- ${datadir}/metainfo \
- ${datadir}/yelp-xsl \
-"
-
-RDEPENDS:${PN} += "yelp-xsl"
diff --git a/meta-gnome/recipes-gnome/yelp/yelp_42.2.bb b/meta-gnome/recipes-gnome/yelp/yelp_42.2.bb
new file mode 100644
index 0000000000..1b3ded0211
--- /dev/null
+++ b/meta-gnome/recipes-gnome/yelp/yelp_42.2.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Help browser for the GNOME desktop"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=6e1b9cb787e76d7e6946887a65caa754 \
+"
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase itstool autotools-brokensep gsettings gettext gtk-doc features_check mime-xdg
+
+# for webkitgtk
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[archive.sha256sum] = "a2c5fd0787a9089c722cc66bd0f85cdf7088d870e7b6cc85799f8e5bff9eac4b"
+
+DEPENDS += " \
+ libxml2-native \
+ glib-2.0-native \
+ gtk+3 \
+ appstream-glib \
+ libxslt \
+ sqlite3 \
+ libhandy \
+ webkitgtk3 \
+ yelp-xsl \
+"
+PACKAGECONFIG_SOUP ?= "soup3"
+PACKAGECONFIG ??= "${PACKAGECONFIG_SOUP}"
+
+PACKAGECONFIG[soup2] = "--with-webkit2gtk-4-0,,"
+PACKAGECONFIG[soup3] = ",--with-webkit2gtk-4-0,"
+
+
+do_configure:prepend() {
+ export ITSTOOL=${STAGING_BINDIR_NATIVE}/itstool
+}
+
+FILES:${PN} += " \
+ ${datadir}/metainfo \
+ ${datadir}/yelp-xsl \
+"
+
+RDEPENDS:${PN} += "yelp-xsl"
diff --git a/meta-gnome/recipes-gnome/zenity/zenity/0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch b/meta-gnome/recipes-gnome/zenity/zenity/0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch
deleted file mode 100644
index e054ff7448..0000000000
--- a/meta-gnome/recipes-gnome/zenity/zenity/0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From c8be0d5e7d17930d819635df6570fa5331a5dedd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Mon, 10 Jan 2022 20:18:00 +0100
-Subject: [PATCH] Harcode shebang to avoid pointing to build system's perl
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- src/gdialog.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/gdialog.in b/src/gdialog.in
-index 2fc4633..f891861 100755
---- a/src/gdialog.in
-+++ b/src/gdialog.in
-@@ -1,4 +1,4 @@
--#!@PERL@
-+#!/usr/bin/env perl
-
- # gdialog -> zenity conversion wrapper
- #
---
-2.31.1
-
diff --git a/meta-gnome/recipes-gnome/zenity/zenity_3.43.0.bb b/meta-gnome/recipes-gnome/zenity/zenity_3.43.0.bb
deleted file mode 100644
index 195e139e5f..0000000000
--- a/meta-gnome/recipes-gnome/zenity/zenity_3.43.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Display dialog boxes from the command line and shell scripts"
-SECTION = "x11/gnome"
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase pkgconfig itstool gnome-help features_check gettext
-
-DEPENDS = " \
- yelp-tools-native \
- gtk+3 \
-"
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[archive.sha256sum] = "b0d7ca1e0c1868fa18f05c210260d8a7be1f08ee13b7f5cfdbab9b61fa16f833"
-SRC_URI += "file://0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch"
-
-PACKAGECONFIG[libnotify] = "-Dlibnotify=true,-Dlibnotify=false,libnotify"
-PACKAGECONFIG[webkitgtk] = "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk"
-
-PACKAGES =+ "${PN}-gdialog"
-FILES:${PN}-gdialog = "${bindir}/gdialog"
-RDEPENDS:${PN}-gdialog += "perl"
diff --git a/meta-gnome/recipes-gnome/zenity/zenity_4.0.1.bb b/meta-gnome/recipes-gnome/zenity/zenity_4.0.1.bb
new file mode 100644
index 0000000000..88b4b5c86c
--- /dev/null
+++ b/meta-gnome/recipes-gnome/zenity/zenity_4.0.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Display dialog boxes from the command line and shell scripts"
+SECTION = "x11/gnome"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+inherit gnomebase pkgconfig itstool gtk-icon-cache features_check gettext
+
+DEPENDS = " \
+ desktop-file-utils-native \
+ help2man-native \
+ hicolor-icon-theme \
+ gtk4 \
+ gtk4-native \
+ libadwaita \
+"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "opengl"
+GTKIC_VERSION = "4"
+
+SRC_URI[archive.sha256sum] = "0c2f537813b10f728470d9d05d6c95713db2512f9c95096e1e85b1a6739605e6"
+
+PACKAGECONFIG ?= "webkitgtk"
+PACKAGECONFIG[webkitgtk] = "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk"
+
+FILES:${PN}-doc = "${datadir}/man ${datadir}/help"
diff --git a/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb b/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
index d4df611639..a3c274240a 100644
--- a/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
+++ b/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
@@ -4,7 +4,6 @@
SUMMARY = "Clutter package groups"
-PR = "r6"
# clutter-1.0 gets debian renamed to libclutter-1.0-0
# clutter-gtk-1.0 gets debian renamed to libclutter-gtk-1.0-0
diff --git a/meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch b/meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch
index 99bd09a6c3..944d2f9165 100644
--- a/meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch
+++ b/meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch
@@ -3,6 +3,8 @@ From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sun, 8 Dec 2019 23:42:00 +0100
Subject: [PATCH] musl: Hack to fix configure
+Upstream-Status: Inappropriate [Musl Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meson.build | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.7.18.bb b/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.7.18.bb
deleted file mode 100644
index c56e9e3dd9..0000000000
--- a/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.7.18.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Objects and helper methods to help reading and writing AppStream metadata"
-HOMEPAGE = "https://people.freedesktop.org/~hughsient/appstream-glib/index.htm"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = " \
- gperf-native \
- glib-2.0 \
- gtk+3 \
- libyaml \
- libarchive \
- libsoup-2.4 \
- json-glib \
- gdk-pixbuf \
- freetype \
- fontconfig \
- libstemmer \
-"
-
-inherit meson gobject-introspection gettext bash-completion pkgconfig manpages
-
-SRC_URI = "https://people.freedesktop.org/~hughsient/${BPN}/releases/${BP}.tar.xz"
-SRC_URI[sha256sum] = "ca1ed22e3bde3912cb903aaa7de085d55771da454f1c0573fd9608e1de9c4002"
-
-EXTRA_OEMESON = " \
- -Drpm=false \
-"
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,docbook-xml-dtd4-native docbook-xsl-stylesheets-native libxslt-native"
-
-FILES:${PN} += "${libdir}/asb-plugins-5"
-
-FILES:${PN}-dev += " \
- ${datadir}/installed-tests \
- ${datadir}/gettext \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.8.2.bb b/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.8.2.bb
new file mode 100644
index 0000000000..efb85d77c5
--- /dev/null
+++ b/meta-gnome/recipes-support/appstream-glib/appstream-glib_0.8.2.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Objects and helper methods to help reading and writing AppStream metadata"
+HOMEPAGE = "https://people.freedesktop.org/~hughsient/appstream-glib/index.htm"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = " \
+ curl \
+ gperf-native \
+ glib-2.0 \
+ gtk+3 \
+ libyaml \
+ libarchive \
+ json-glib \
+ gdk-pixbuf \
+ freetype \
+ fontconfig \
+ libstemmer \
+"
+
+inherit meson gobject-introspection gettext bash-completion pkgconfig manpages
+
+SRC_URI = "https://people.freedesktop.org/~hughsient/${BPN}/releases/${BP}.tar.xz"
+SRC_URI[sha256sum] = "71256500add5048d6f08878904708b3d0c3875f402e0adcd358e91d47dcd8b96"
+
+EXTRA_OEMESON = " \
+ -Drpm=false \
+"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,docbook-xml-dtd4-native docbook-xsl-stylesheets-native libxslt-native"
+
+FILES:${PN} += "${libdir}/asb-plugins-5"
+
+FILES:${PN}-dev += " \
+ ${datadir}/installed-tests \
+ ${datadir}/gettext \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-gnome/recipes-support/ibus/ibus.bb b/meta-gnome/recipes-support/ibus/ibus.bb
index be43d0d500..141341e341 100644
--- a/meta-gnome/recipes-support/ibus/ibus.bb
+++ b/meta-gnome/recipes-support/ibus/ibus.bb
@@ -8,7 +8,7 @@ DEPENDS += " \
iso-codes \
"
-inherit gtk-icon-cache bash-completion
+inherit gtk-icon-cache bash-completion features_check
# for unicode-ucd
EXTRA_OECONF += "--with-ucd-dir=${STAGING_DATADIR}/unicode/ucd"
@@ -19,6 +19,8 @@ PACKAGECONFIG ??= " \
${@bb.utils.filter('DISTRO_FEATURES', 'systemd wayland x11', d)} \
"
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'gtk4', 'opengl', '', d)}"
+
do_configure:prepend() {
# run native unicode-parser
sed -i 's:$(builddir)/unicode-parser:unicode-parser:g' ${S}/src/Makefile.am
@@ -36,4 +38,4 @@ FILES:${PN} += " \
FILES:${PN}-dev += " \
${datadir}/gettext \
"
-
+RDEPENDS:${PN} += "python3-core"
diff --git a/meta-gnome/recipes-support/ibus/ibus.inc b/meta-gnome/recipes-support/ibus/ibus.inc
index bb662f2ec9..9d0600c794 100644
--- a/meta-gnome/recipes-support/ibus/ibus.inc
+++ b/meta-gnome/recipes-support/ibus/ibus.inc
@@ -12,6 +12,7 @@ DEPENDS = "unicode-ucd"
SRC_URI = " \
git://github.com/ibus/ibus.git;branch=main;protocol=https \
file://0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch \
+ file://0001-makefile-don-t-gzip-the-man-pages.patch \
"
SRCREV = "6a70ab0338206bd1c7d01a4e1874ea0ee5b3a9d3"
S = "${WORKDIR}/git"
@@ -31,6 +32,9 @@ EXTRA_OECONF = " \
--disable-emoji-dict \
--disable-python2 \
"
+EXTRA_OECONF:append:class-target = "\
+ --with-python=${bindir}/python3 \
+"
do_configure:prepend() {
touch ${S}/ChangeLog
diff --git a/meta-gnome/recipes-support/ibus/ibus/0001-makefile-don-t-gzip-the-man-pages.patch b/meta-gnome/recipes-support/ibus/ibus/0001-makefile-don-t-gzip-the-man-pages.patch
new file mode 100644
index 0000000000..105e34873a
--- /dev/null
+++ b/meta-gnome/recipes-support/ibus/ibus/0001-makefile-don-t-gzip-the-man-pages.patch
@@ -0,0 +1,164 @@
+From 5307c3b310fabeaa52fafe743c5efaca73ccce46 Mon Sep 17 00:00:00 2001
+From: Emil Velikov <emil.l.velikov@gmail.com>
+Date: Sun, 11 Jun 2023 16:16:35 +0900
+Subject: [PATCH] makefile: don't gzip the man pages
+
+Drop the gzip step from the manpages - distributions already do that as
+needed. In addition this resolves the final reproducibility issue with
+ibus.
+
+BUG=https://github.com/ibus/ibus/pull/2514
+
+Upstream-Status: Backport [https://github.com/ibus/ibus/commit/1a25975d9f55f18eab609e4d147dd32689e367f3]
+Note: This commit is included in version >= 1.5.29 and can be dropped
+after upgrading.
+Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
+---
+ bus/Makefile.am | 6 +-----
+ data/dconf/Makefile.am | 6 +-----
+ setup/Makefile.am | 6 +-----
+ tools/Makefile.am | 6 +-----
+ ui/gtk3/Makefile.am | 6 +-----
+ 5 files changed, 5 insertions(+), 25 deletions(-)
+
+diff --git a/bus/Makefile.am b/bus/Makefile.am
+index e173ee25..d0445d02 100644
+--- a/bus/Makefile.am
++++ b/bus/Makefile.am
+@@ -169,7 +169,6 @@ EXTRA_DIST = \
+
+ CLEANFILES = \
+ $(man_one_DATA) \
+- $(man_one_files) \
+ $(NULL)
+
+ $(libibus):
+@@ -181,14 +180,11 @@ test: ibus-daemon
+ $(builddir)/ibus-daemon -v
+
+ man_one_in_files = ibus-daemon.1.in
+-man_one_files = $(man_one_in_files:.1.in=.1)
+-man_one_DATA =$(man_one_files:.1=.1.gz)
++man_one_DATA = $(man_one_in_files:.1.in=.1)
+ man_onedir = $(mandir)/man1
+ %.1: %.1.in
+ $(AM_V_GEN) sed \
+ -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \
+ mv $@.tmp $@
+-%.1.gz: %.1
+- $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@
+
+ -include $(top_srcdir)/git.mk
+diff --git a/data/dconf/Makefile.am b/data/dconf/Makefile.am
+index 5360f033..2352f770 100644
+--- a/data/dconf/Makefile.am
++++ b/data/dconf/Makefile.am
+@@ -38,15 +38,12 @@ dconfdb_DATA = 00-upstream-settings
+ { rc=$$?; $(RM) -rf $@; exit $$rc; }
+
+ man_5_in_files = 00-upstream-settings.5.in ibus.5.in
+-man_5_files = $(man_5_in_files:.5.in=.5)
+-man_5_DATA =$(man_5_files:.5=.5.gz)
++man_5_DATA = $(man_5_in_files:.5.in=.5)
+ man_5dir = $(mandir)/man5
+ %.5: %.5.in
+ $(AM_V_GEN) sed \
+ -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \
+ mv $@.tmp $@
+-%.5.gz: %.5
+- $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@
+
+ install-data-hook:
+ if test -z "$(DESTDIR)"; then \
+@@ -63,7 +60,6 @@ EXTRA_DIST = \
+
+ CLEANFILES = \
+ $(man_5_DATA) \
+- $(man_5_files) \
+ $(NULL)
+
+ MAINTAINERCLEANFILES = \
+diff --git a/setup/Makefile.am b/setup/Makefile.am
+index 34c8f136..b34aa8fc 100644
+--- a/setup/Makefile.am
++++ b/setup/Makefile.am
+@@ -56,20 +56,16 @@ org.freedesktop.IBus.Setup.desktop: ibus-setup.desktop
+ $(AM_V_GEN) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@
+
+ man_one_in_files = ibus-setup.1.in
+-man_one_files = $(man_one_in_files:.1.in=.1)
+-man_one_DATA =$(man_one_files:.1=.1.gz)
++man_one_DATA = $(man_one_in_files:.1.in=.1)
+ man_onedir = $(mandir)/man1
+ %.1: %.1.in
+ $(AM_V_GEN) sed \
+ -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \
+ mv $@.tmp $@
+-%.1.gz: %.1
+- $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@
+
+ CLEANFILES = \
+ $(desktop_DATA) \
+ $(man_one_DATA) \
+- $(man_one_files) \
+ *.pyc \
+ ibus-setup \
+ $(NULL)
+diff --git a/tools/Makefile.am b/tools/Makefile.am
+index 5c18d3d6..1c716136 100644
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -79,15 +79,12 @@ bash_completion_DATA= \
+ bash_completiondir=@datadir@/bash-completion/completions
+
+ man_one_in_files = ibus.1.in
+-man_one_files = $(man_one_in_files:.1.in=.1)
+-man_one_DATA =$(man_one_files:.1=.1.gz)
++man_one_DATA = $(man_one_in_files:.1.in=.1)
+ man_onedir = $(mandir)/man1
+ %.1: %.1.in
+ $(AM_V_GEN) sed \
+ -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \
+ mv $@.tmp $@
+-%.1.gz: %.1
+- $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@
+
+ EXTRA_DIST = \
+ $(man_one_in_files) \
+@@ -96,7 +93,6 @@ EXTRA_DIST = \
+
+ CLEANFILES = \
+ $(man_one_DATA) \
+- $(man_one_files) \
+ $(NULL)
+
+ if ENABLE_EMOJI_DICT
+diff --git a/ui/gtk3/Makefile.am b/ui/gtk3/Makefile.am
+index ab379328..aff035da 100644
+--- a/ui/gtk3/Makefile.am
++++ b/ui/gtk3/Makefile.am
+@@ -242,15 +242,12 @@ panelbinding.o: $(srcdir)/panelbinding.c
+
+ MAINTAINERCLEANFILES += extension.c panelbinding.c
+
+-man_seven_files = $(man_seven_in_files:.7.in=.7)
+-man_seven_DATA =$(man_seven_files:.7=.7.gz)
++man_seven_DATA = $(man_seven_in_files:.7.in=.7)
+ man_sevendir = $(mandir)/man7
+ %.7: %.7.in
+ $(AM_V_GEN) sed \
+ -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \
+ mv $@.tmp $@
+-%.7.gz: %.7
+- $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@
+
+ desktop_in_files = \
+ ibus-ui-emojier.desktop.in \
+@@ -278,7 +275,6 @@ CLEANFILES += \
+ $(desktop_DATA) \
+ $(desktop_notrans_files) \
+ $(man_seven_DATA) \
+- $(man_seven_files) \
+ $(NULL)
+
+ endif
diff --git a/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb b/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb
index 971ad90f9c..7960009078 100644
--- a/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb
+++ b/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb
@@ -9,20 +9,21 @@ DEPENDS = "gtk+3 gobject-introspection-native \
LIC_FILES_CHKSUM = "file://COPYING;md5=1f18f9c6d8b4cfcc7d7804a243a4c0b4"
S = "${WORKDIR}/git"
-B = "${S}"
SRCREV = "736ccef40d39603b8111c8a3a0bca0319bbafdc0"
-PV = "3.0+git${SRCPV}"
+PV = "3.0+git"
SRC_URI = "git://github.com/engla/keybinder.git;branch=keybinder-3.0;protocol=https \
"
RDEPENDS:${PN} = "gtk+"
-inherit features_check autotools gtk-doc gobject-introspection
+inherit features_check autotools-brokensep gtk-doc gobject-introspection
REQUIRED_DISTRO_FEATURES = "x11"
do_configure:prepend() {
touch ${S}/ChangeLog
}
-SRC_DISTRIBUTE_LICENSES += "X11"
+# gtk-doc generation doesn't work, so disable it:
+# ../keybinder-docs.sgml:26: element include: XInclude error : could not load ../xml/tree_index.sgml, and no fallback was found
+GTKDOC_ENABLED = "False"
diff --git a/meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.6.bb b/meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.6.bb
new file mode 100644
index 0000000000..f5660b5267
--- /dev/null
+++ b/meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.6.bb
@@ -0,0 +1,11 @@
+SUMMARY = "libcloudproviders is a DBus API that allows cloud storage sync clients to expose their services."
+LICENSE="LGPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+VALA_MESON_OPTION ?= 'vapigen'
+
+DEPENDS = "glib-2.0"
+
+inherit gnomebase gobject-introspection vala
+
+SRC_URI[archive.sha256sum] = "3b75110b3a4fdef4c5c5a440e48701fe054d2ae061d156c89136bb5ba05e74b7"
diff --git a/meta-gnome/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch b/meta-gnome/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch
deleted file mode 100644
index 37c5c3dc02..0000000000
--- a/meta-gnome/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From eacc9e9c62a3857ce1e2e24b81fc22d8ae91f422 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 9 May 2019 22:06:48 +0200
-Subject: [PATCH] Build so-lib
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Stolen from [1]
-
-[1] https://aur.archlinux.org/cgit/aur.git/commit/dynamiclib.patch?h=snowball-git&id=a9cbf4f42f3661e4b8f791cd4374233821716ea1
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- GNUmakefile | 7 +++++--
- libstemmer/symbol.map | 6 ++++++
- 2 files changed, 11 insertions(+), 2 deletions(-)
- create mode 100644 libstemmer/symbol.map
-
-diff --git a/GNUmakefile b/GNUmakefile
-index cbd6ff7..a85230b 100644
---- a/GNUmakefile
-+++ b/GNUmakefile
-@@ -162,10 +162,10 @@ C_OTHER_OBJECTS = $(C_OTHER_SOURCES:.c=.o)
- JAVA_CLASSES = $(JAVA_SOURCES:.java=.class)
- JAVA_RUNTIME_CLASSES=$(JAVARUNTIME_SOURCES:.java=.class)
-
--CFLAGS=-O2 -W -Wall -Wmissing-prototypes -Wmissing-declarations
-+CFLAGS=-O2 -fPIC -W -Wall -Wmissing-prototypes -Wmissing-declarations
- CPPFLAGS=-Iinclude
-
--all: snowball libstemmer.o stemwords $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
-+all: snowball libstemmer.o libstemmer.so stemwords $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
-
- clean:
- rm -f $(COMPILER_OBJECTS) $(RUNTIME_OBJECTS) \
-@@ -212,6 +212,9 @@ libstemmer/libstemmer.o: libstemmer/modules.h $(C_LIB_HEADERS)
- libstemmer.o: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
- $(AR) -cru $@ $^
-
-+libstemmer.so: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
-+ $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname,libstemmer.so.0,-version-script,libstemmer/symbol.map -o $@.0.0.0 $^
-+
- stemwords: $(STEMWORDS_OBJECTS) libstemmer.o
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
-
-diff --git a/libstemmer/symbol.map b/libstemmer/symbol.map
-new file mode 100644
-index 0000000..7a3d423
---- /dev/null
-+++ b/libstemmer/symbol.map
-@@ -0,0 +1,6 @@
-+SB_STEMMER_0 {
-+ global:
-+ sb_stemmer_*;
-+ local:
-+ *;
-+};
---
-2.20.1
-
diff --git a/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb b/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb
deleted file mode 100644
index 7f0706e207..0000000000
--- a/meta-gnome/recipes-support/libstemmer/libstemmer_git.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "Snowball compiler and stemming algorithms"
-HOMEPAGE = "https://snowballstem.org/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=19139aaf3c8c8fa1ca6edd59c072fb9f"
-
-DEPENDS:class-target = "${BPN}-native"
-
-SRC_URI = "\
- git://github.com/snowballstem/snowball.git;branch=master;protocol=https \
- file://0001-Build-so-lib.patch \
-"
-SRCREV = "4764395431c8f2a0b4fe18b816ab1fc966a45837"
-S = "${WORKDIR}/git"
-PV = "2.1.0"
-LIBVER = "0.0.0"
-
-inherit lib_package
-
-BBCLASSEXTEND = "native"
-
-do_compile:prepend:class-target() {
- # use native tools
- sed -i 's:./snowball :snowball :g' ${S}/GNUmakefile
-}
-
-do_install() {
- install -d ${D}${bindir}
- install -m 755 ${S}/snowball ${D}${bindir}
- install -m 755 ${S}/stemwords ${D}${bindir}
-
- install -d ${D}${libdir}
- install -m 755 ${S}/libstemmer.so.${LIBVER} ${D}${libdir}/
- ln -s libstemmer.so.${LIBVER} ${D}${libdir}/libstemmer.so.0
- ln -s libstemmer.so.${LIBVER} ${D}${libdir}/libstemmer.so
-
- install -d ${D}${includedir}
- install -m 644 ${S}/include/*.h ${D}${includedir}
-}
diff --git a/meta-gnome/recipes-support/libuser/libuser/0003-python-Compilation-warnings-update.patch b/meta-gnome/recipes-support/libuser/libuser/0003-python-Compilation-warnings-update.patch
deleted file mode 100644
index 45d6952150..0000000000
--- a/meta-gnome/recipes-support/libuser/libuser/0003-python-Compilation-warnings-update.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From acd7b051993d501f4b5e3a593e0f18d1336ba2de Mon Sep 17 00:00:00 2001
-From: Tomas Halman <thalman@redhat.com>
-Date: Wed, 21 Jul 2021 15:36:59 +0200
-Subject: [PATCH] python: Compilation warnings update
-
-The compilation produces few warnings about discard const qualifier
-and pointer to int conversion. This patch fixes the const qualifiers
-and replaces the tp_print inicialization in PyTypeObject with 0 instead
-of NULL
-
-Upstream-Status: Backport [https://pagure.io/libuser/c/3cb7ea54e7b50da6ea313a0e7c7187c8aa5e6ee9?branch=master]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- python/admin.c | 2 +-
- python/ent.c | 8 ++++----
- python/misc.c | 2 +-
- 3 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/python/admin.c b/python/admin.c
-index 83595af..e92fca4 100644
---- a/python/admin.c
-+++ b/python/admin.c
-@@ -1512,7 +1512,7 @@ PyTypeObject AdminType = {
- sizeof(struct libuser_admin), /* tp_basicsize */
- 0, /* tp_itemsize */
- libuser_admin_destroy, /* tp_dealloc */
-- NULL, /* tp_print */
-+ 0, /* tp_print */
- NULL, /* tp_getattr */
- NULL, /* tp_setattr */
- NULL, /* tp_compare */
-diff --git a/python/ent.c b/python/ent.c
-index ee712d2..fc3d654 100644
---- a/python/ent.c
-+++ b/python/ent.c
-@@ -255,7 +255,7 @@ libuser_convert_to_value(PyObject *item, GValue *value)
- static int
- libuser_entity_setattro(PyObject *self, PyObject *attr_name, PyObject *value)
- {
-- char *name;
-+ const char *name;
- struct libuser_entity *me;
- PyObject *list;
- struct lu_ent *copy;
-@@ -616,7 +616,7 @@ static PyObject *
- libuser_entity_get_item(PyObject *self, PyObject *item)
- {
- struct libuser_entity *me;
-- char *attr;
-+ const char *attr;
-
- DEBUG_ENTRY;
- me = (struct libuser_entity *)self;
-@@ -664,7 +664,7 @@ static int
- libuser_entity_set_item(PyObject *self, PyObject *item, PyObject *args)
- {
- struct libuser_entity *me;
-- char *attr = NULL;
-+ const char *attr = NULL;
- Py_ssize_t i, size;
- int ret;
- GValue value;
-@@ -800,7 +800,7 @@ PyTypeObject EntityType = {
- sizeof(struct libuser_entity), /* tp_basicsize */
- 0, /* tp_itemsize */
- libuser_entity_destroy, /* tp_dealloc */
-- NULL, /* tp_print */
-+ 0, /* tp_print */
- NULL, /* tp_getattr */
- NULL, /* tp_setattr */
- NULL, /* tp_compare */
-diff --git a/python/misc.c b/python/misc.c
-index c4ce819..810a846 100644
---- a/python/misc.c
-+++ b/python/misc.c
-@@ -488,7 +488,7 @@ PyTypeObject PromptType = {
- sizeof(struct libuser_prompt), /* tp_basicsize */
- 0, /* tp_itemsize */
- libuser_prompt_destroy, /* tp_dealloc */
-- NULL, /* tp_print */
-+ 0, /* tp_print */
- NULL, /* tp_getattr */
- NULL, /* tp_setattr */
- NULL, /* tp_compare */
diff --git a/meta-gnome/recipes-support/libuser/libuser/gtkdoc.patch b/meta-gnome/recipes-support/libuser/libuser/gtkdoc.patch
new file mode 100644
index 0000000000..4d11b94e02
--- /dev/null
+++ b/meta-gnome/recipes-support/libuser/libuser/gtkdoc.patch
@@ -0,0 +1,22 @@
+Update the GTK_DOC_CHECK invocation to specify where the
+documentation will be built (as the default is ./docs).
+
+This is needed so that gtkdocize as run by autopoint knows where the
+documentation will be built.
+
+Upstream-Status: Submitted [https://pagure.io/libuser/pull-request/70]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/configure.ac b/configure.ac
+index 0bd4a67..51508b7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -169,7 +169,7 @@ if test "$GCC" = yes ; then
+ AC_MSG_RESULT([$enable_Werror])
+ fi
+
+-GTK_DOC_CHECK
++GTK_DOC_CHECK([1.14],[--flavour no-tmpl --docdir docs/reference])
+
+ AC_CONFIG_FILES([Makefile po/Makefile.in docs/Makefile docs/reference/Makefile
+ libuser.pc])
diff --git a/meta-gnome/recipes-support/libuser/libuser_0.63.bb b/meta-gnome/recipes-support/libuser/libuser_0.63.bb
deleted file mode 100644
index e191e115a3..0000000000
--- a/meta-gnome/recipes-support/libuser/libuser_0.63.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "user and group account administration library"
-DESCRIPTION = "The libuser library implements a standardized interface for manipulating and administering user \
-and group accounts"
-HOMEPAGE = "https://pagure.io/libuser"
-BUGTRACKER = "https://pagure.io/libuser/issues"
-
-LICENSE = "LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
- file://lib/user.h;endline=19;md5=76b301f63c39fa992062395efbdc9558 \
- file://samples/testuser.c;endline=19;md5=3b87fa660fa3f4a6bb31d624afe30ba1"
-
-SECTION = "base"
-
-SRC_URI = "https://releases.pagure.org/libuser/libuser-${PV}.tar.xz \
- file://0001-docs-Disable-building.patch \
- file://0002-remove-unused-execinfo.h.patch \
- file://0003-python-Compilation-warnings-update.patch \
- "
-
-SRC_URI[sha256sum] = "8dc377255452a68e82c4837ba22c3ee4ae3658971bf0f2ef67ed0b77fc497f91"
-
-DEPENDS = "bison-native popt libpam glib-2.0 python3"
-
-inherit autotools features_check gettext python3native python3-dir pkgconfig gtk-doc
-
-REQUIRED_DISTRO_FEATURES = "pam"
-
-EXTRA_OEMAKE = "PYTHON_CPPFLAGS=-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}"
-
-GTKDOC_DOCDIR = "${S}/docs/reference"
-
-# run autopoint since it needs ABOUT-NLS and admin/config.rpath from gettext
-#EXTRA_AUTORECONF:remove = "--exclude=autopoint"
-
-do_configure:prepend() {
- install -d ${S}/admin -d ${S}/m4
- touch ${S}/ABOUT-NLS ${S}/admin/config.rpath
- cd ${S}
- bison lib/getdate.y -o lib/getdate.c
- cd -
-}
-
-PACKAGES += "${PN}-python "
-
-FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
-
diff --git a/meta-gnome/recipes-support/libuser/libuser_0.64.bb b/meta-gnome/recipes-support/libuser/libuser_0.64.bb
new file mode 100644
index 0000000000..6d3bce8a1c
--- /dev/null
+++ b/meta-gnome/recipes-support/libuser/libuser_0.64.bb
@@ -0,0 +1,41 @@
+SUMMARY = "user and group account administration library"
+DESCRIPTION = "The libuser library implements a standardized interface for manipulating and administering user \
+and group accounts"
+HOMEPAGE = "https://pagure.io/libuser"
+BUGTRACKER = "https://pagure.io/libuser/issues"
+
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+ file://lib/user.h;endline=19;md5=76b301f63c39fa992062395efbdc9558 \
+ file://samples/testuser.c;endline=19;md5=3b87fa660fa3f4a6bb31d624afe30ba1"
+
+SECTION = "base"
+
+SRC_URI = "https://releases.pagure.org/libuser/libuser-${PV}.tar.gz \
+ file://0001-docs-Disable-building.patch \
+ file://0002-remove-unused-execinfo.h.patch \
+ file://gtkdoc.patch \
+ "
+
+SRC_URI[sha256sum] = "ea6094c72cb9e60a42fb53509dc98d124a340f1c9222783b503208adc16a0a8f"
+
+DEPENDS = "bison-native popt libpam glib-2.0 python3"
+
+inherit autotools features_check gettext python3native python3-dir pkgconfig gtk-doc
+
+REQUIRED_DISTRO_FEATURES = "pam"
+
+EXTRA_OEMAKE = "PYTHON_CPPFLAGS=-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}"
+
+do_configure:prepend() {
+ install -d ${S}/admin -d ${S}/m4
+ touch ${S}/ABOUT-NLS ${S}/admin/config.rpath
+ cd ${S}
+ bison lib/getdate.y -o lib/getdate.c
+ cd -
+}
+
+PACKAGES += "${PN}-python "
+
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+
diff --git a/meta-gnome/recipes-support/libwacom/libwacom_2.4.0.bb b/meta-gnome/recipes-support/libwacom/libwacom_2.4.0.bb
deleted file mode 100644
index d690df9229..0000000000
--- a/meta-gnome/recipes-support/libwacom/libwacom_2.4.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "A tablet description library"
-DESCRIPTION = "libwacom is a library to identify Wacom tablets and their model-specific features. \
- It provides easy access to information such as 'is this a built-in on-screen tablet\', \
- 'what is the size of this model', etc."
-HOMEPAGE = "https://github.com/linuxwacom/libwacom"
-BUGTRACKER = "https://github.com/linuxwacom/libwacom/issues"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=40a21fffb367c82f39fd91a3b137c36e"
-
-SRC_URI = "git://github.com/linuxwacom/libwacom.git;branch=master;protocol=https"
-SRCREV = "9fd28747534ef776ffecc245721a4faa43bdd89b"
-
-DEPENDS = " \
- libxml2-native \
- libgudev \
-"
-
-S = "${WORKDIR}/git"
-
-inherit meson pkgconfig
-
-EXTRA_OEMESON = " \
- -Dtests=disabled \
-"
diff --git a/meta-gnome/recipes-support/libwacom/libwacom_2.8.0.bb b/meta-gnome/recipes-support/libwacom/libwacom_2.8.0.bb
new file mode 100644
index 0000000000..8f45221ad3
--- /dev/null
+++ b/meta-gnome/recipes-support/libwacom/libwacom_2.8.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A tablet description library"
+DESCRIPTION = "libwacom is a library to identify Wacom tablets and their model-specific features. \
+ It provides easy access to information such as 'is this a built-in on-screen tablet\', \
+ 'what is the size of this model', etc."
+HOMEPAGE = "https://github.com/linuxwacom/libwacom"
+BUGTRACKER = "https://github.com/linuxwacom/libwacom/issues"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=40a21fffb367c82f39fd91a3b137c36e"
+
+SRC_URI = "git://github.com/linuxwacom/libwacom.git;branch=master;protocol=https"
+SRCREV = "f5b92814320d0a5745b50b7b36103843ad23e299"
+
+DEPENDS = " \
+ libxml2-native \
+ libgudev \
+"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON = " \
+ -Dtests=disabled \
+"
diff --git a/meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch b/meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch
deleted file mode 100644
index fda37895c9..0000000000
--- a/meta-gnome/recipes-support/onboard/onboard/0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 1c95f64aa342147387ce4b1b7269a5c8b34bd898 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 09:01:04 -0700
-Subject: [PATCH] pypredict/lm: Define error API if platform does not have it
-
-error() API is not implemented across all libcs on linux
-e.g. musl does not provide it.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Onboard/pypredict/lm/lm.cpp | 1 -
- Onboard/pypredict/lm/lm.h | 13 +++++++++++++
- Onboard/pypredict/lm/lm_dynamic.cpp | 2 --
- 3 files changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/Onboard/pypredict/lm/lm.cpp b/Onboard/pypredict/lm/lm.cpp
-index 2e64296..37ae241 100644
---- a/Onboard/pypredict/lm/lm.cpp
-+++ b/Onboard/pypredict/lm/lm.cpp
-@@ -19,7 +19,6 @@
-
- #include <stdlib.h>
- #include <stdio.h>
--#include <error.h>
- #include <algorithm>
- #include <cmath>
- #include <string>
-diff --git a/Onboard/pypredict/lm/lm.h b/Onboard/pypredict/lm/lm.h
-index ed4164a..b8b63ee 100644
---- a/Onboard/pypredict/lm/lm.h
-+++ b/Onboard/pypredict/lm/lm.h
-@@ -32,6 +32,19 @@
- #include <algorithm>
- #include <string>
-
-+#if defined(HAVE_ERROR_H)
-+#include <error.h>
-+#else
-+#include <err.h>
-+#define _onboard_error(S, E, F, ...) do { \
-+ if (E) \
-+ err(S, F ": %s", ##__VA_ARGS__, strerror(E)); \
-+ else \
-+ err(S, F, ##__VA_ARGS__); \
-+} while(0)
-+
-+#define error _onboard_error
-+#endif
-
- // break into debugger
- // step twice to come back out of the raise() call into known code
-diff --git a/Onboard/pypredict/lm/lm_dynamic.cpp b/Onboard/pypredict/lm/lm_dynamic.cpp
-index 7c62824..e7c7f40 100644
---- a/Onboard/pypredict/lm/lm_dynamic.cpp
-+++ b/Onboard/pypredict/lm/lm_dynamic.cpp
-@@ -17,8 +17,6 @@
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
--#include <error.h>
--
- #include "lm_dynamic.h"
-
- using namespace std;
---
-2.13.2
-
diff --git a/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb b/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb
deleted file mode 100644
index 9325ef9c25..0000000000
--- a/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "An onscreen keyboard"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING.GPL3;md5=8521fa4dd51909b407c5150498d34f4e"
-
-DEPENDS += "gtk+3 hunspell libcanberra libxkbfile dconf python3-distutils-extra-native intltool-native"
-
-SRC_URI = "https://launchpad.net/onboard/1.4/${PV}/+download/${BPN}-${PV}.tar.gz \
- file://0001-pypredict-lm-Define-error-API-if-platform-does-not-h.patch \
- "
-SRC_URI[md5sum] = "1a2fbe82e934f5b37841d17ff51e80e8"
-SRC_URI[sha256sum] = "01cae1ac5b1ef1ab985bd2d2d79ded6fc99ee04b1535cc1bb191e43a231a3865"
-
-inherit features_check setuptools3-base pkgconfig gtk-icon-cache gsettings mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/icons \
- ${datadir}/gnome-shell \
- ${datadir}/help \
-"
-
-RDEPENDS:${PN} += " \
- ncurses \
- python3-dbus \
- python3-pycairo \
- python3-pygobject \
-"
diff --git a/meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch b/meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch
index 8ea34cf239..7a052b23b9 100644
--- a/meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch
+++ b/meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch
@@ -3,6 +3,7 @@ From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 25 Jul 2017 18:28:15 -0700
Subject: [PATCH] Makefile.am: Link with libm for powl() API
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Makefile.am | 2 +-
diff --git a/meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.7.bb b/meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.7.bb
new file mode 100644
index 0000000000..73f22a3d95
--- /dev/null
+++ b/meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.7.bb
@@ -0,0 +1,23 @@
+SUMMARY = "WebP GDK Pixbuf Loader library"
+HOMEPAGE = "https://github.com/aruiz/webp-pixbuf-loader"
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE.LGPL-2;md5=0d90e6d44bcf69014bfae649c75aa6ca"
+
+DEPENDS = " \
+ gdk-pixbuf \
+ libwebp \
+"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON = "-Dupdate_cache=true"
+
+SRC_URI = "git://github.com/aruiz/webp-pixbuf-loader.git;protocol=https;branch=mainline"
+
+S = "${WORKDIR}/git"
+SRCREV = "52232e4ba282b2fed68e8fcb4b5d45ed0eaa4ed3"
+
+FILES:${PN} = " \
+ ${datadir}/thumbnailers/webp-pixbuf.thumbnailer \
+ ${libdir}/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-webp.so \
+"
diff --git a/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_46.0.bb b/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_46.0.bb
new file mode 100644
index 0000000000..c5040571cd
--- /dev/null
+++ b/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_46.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "A xdg-desktop-portal backend for gnome."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = " \
+ glib-2.0-native \
+ gtk4\
+ xdg-desktop-portal \
+ xdg-desktop-portal-gtk \
+ libadwaita \
+ fontconfig \
+ gsettings-desktop-schemas \
+ gnome-desktop \
+ dconf \
+"
+
+RDEPENDS:${PN} = "xdg-desktop-portal xdg-desktop-portal-gtk"
+
+inherit gnomebase pkgconfig gsettings features_check
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+SRC_URI[archive.sha256sum] = "5d2d533597d280b7370b8f74faa40097b292b0036dbd59166e1312230500bb8b"
+
+PACKAGECONFIG ?= "screenshot screencast ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)}"
+PACKAGECONFIG[wayland] = ",,wayland-native"
+PACKAGECONFIG[screenshot] = ",,,gnome-shell"
+PACKAGECONFIG[screencast] = ",,,mutter"
+
+FILES:${PN} += "${systemd_user_unitdir} ${datadir}"
diff --git a/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gtk_1.15.1.bb b/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gtk_1.15.1.bb
new file mode 100644
index 0000000000..0d2b0012c5
--- /dev/null
+++ b/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gtk_1.15.1.bb
@@ -0,0 +1,30 @@
+SUMMARY = "A backend implementation for xdg-desktop-portal that is using GTK and various pieces of GNOME infrastructure."
+HOMEPAGE = "https://github.com/flatpak/xdg-desktop-portal-gtk"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = " \
+ glib-2.0-native \
+ gtk+3\
+ xdg-desktop-portal \
+ libadwaita \
+ dconf \
+"
+
+inherit gettext meson pkgconfig gsettings features_check
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+SRC_URI = "git://github.com/flatpak/xdg-desktop-portal-gtk.git;protocol=https;branch=main"
+
+S = "${WORKDIR}/git"
+SRCREV = "54003825481c2b48fd0c42355b484469dea12020"
+
+PACKAGECONFIG ?= "wallpaper appchooser lockdown settings"
+
+PACKAGECONFIG[wallpaper] = "-Dwallpaper=enabled,-Dwallpaper=disabled,gnome-desktop"
+PACKAGECONFIG[settings] = "-Dsettings=enabled,-Dsettings=disabled,gsettings-desktop-schemas fontconfig"
+PACKAGECONFIG[appchooser] = "-Dappchooser=enabled,-Dappchooser=disabled"
+PACKAGECONFIG[lockdown] = "-Dlockdown=enabled,-Dlockdown=disabled"
+
+FILES:${PN} += "${systemd_user_unitdir} ${datadir}"
diff --git a/meta-initramfs/README b/meta-initramfs/README.md
index 119293a741..119293a741 100644
--- a/meta-initramfs/README
+++ b/meta-initramfs/README.md
diff --git a/meta-initramfs/conf/layer.conf b/meta-initramfs/conf/layer.conf
index 6aa64f1e18..25023cfc64 100644
--- a/meta-initramfs/conf/layer.conf
+++ b/meta-initramfs/conf/layer.conf
@@ -16,7 +16,7 @@ BBFILE_PATTERN_meta-initramfs := "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-initramfs = "5"
LAYERDEPENDS_meta-initramfs = "core"
-LAYERSERIES_COMPAT_meta-initramfs = "kirkstone langdale"
+LAYERSERIES_COMPAT_meta-initramfs = "scarthgap"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
dracut->virtual/kernel \
diff --git a/meta-initramfs/recipes-bsp/kexecboot/files/0001-make-Add-compiler-includes-in-cflags.patch b/meta-initramfs/recipes-bsp/kexecboot/files/0001-make-Add-compiler-includes-in-cflags.patch
index 931d0fa584..abfd8b77ee 100644
--- a/meta-initramfs/recipes-bsp/kexecboot/files/0001-make-Add-compiler-includes-in-cflags.patch
+++ b/meta-initramfs/recipes-bsp/kexecboot/files/0001-make-Add-compiler-includes-in-cflags.patch
@@ -11,6 +11,8 @@ Fixes
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb b/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb
index 9f7a214d8b..a92c0e8966 100644
--- a/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb
+++ b/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb
@@ -1,9 +1,9 @@
SUMMARY = "kexecboot linux-as-bootloader"
DESCRIPTION = "kexecboot is a graphical linux-as-bootloader implementation based on kexec."
-HOMEPAGE = "http://kexecboot.org"
+HOMEPAGE = "https://github.com/kexecboot/kexecboot/wiki"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-PV = "0.6+git${SRCPV}"
+PV = "0.6+git"
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/kexecboot/kexecboot.git;branch=master;protocol=https"
SRC_URI:append:libc-klibc = "\
diff --git a/meta-initramfs/recipes-core/images/initramfs-debug-image.bb b/meta-initramfs/recipes-core/images/initramfs-debug-image.bb
index 601056b7e5..fc9e81e5de 100644
--- a/meta-initramfs/recipes-core/images/initramfs-debug-image.bb
+++ b/meta-initramfs/recipes-core/images/initramfs-debug-image.bb
@@ -11,7 +11,7 @@ IMAGE_FEATURES = ""
export IMAGE_BASENAME = "initramfs-debug-image"
IMAGE_LINGUAS = ""
-# Some BSPs use IMAGE_FSTYPES_<machine override> which would override
+# Some BSPs use IMAGE_FSTYPES:<machine override> which would override
# an assignment to IMAGE_FSTYPES so we need anon python
python () {
d.setVar("IMAGE_FSTYPES", d.getVar("INITRAMFS_FSTYPES"))
diff --git a/meta-initramfs/recipes-core/images/initramfs-kexecboot-image.bb b/meta-initramfs/recipes-core/images/initramfs-kexecboot-image.bb
index dd082ba529..7e6e03d8e7 100644
--- a/meta-initramfs/recipes-core/images/initramfs-kexecboot-image.bb
+++ b/meta-initramfs/recipes-core/images/initramfs-kexecboot-image.bb
@@ -1,7 +1,7 @@
SUMMARY = "Initramfs image for kexecboot kernel"
DESCRIPTION = "This image provides kexecboot (linux as bootloader) and helpers."
-# Some BSPs use IMAGE_FSTYPES_<machine override> which would override
+# Some BSPs use IMAGE_FSTYPES:<machine override> which would override
# an assignment to IMAGE_FSTYPES so we need anon python
python () {
d.setVar("IMAGE_FSTYPES", d.getVar("INITRAMFS_FSTYPES"))
diff --git a/meta-initramfs/recipes-devtools/dracut/dracut/0001-install-Do-not-undef-_FILE_OFFSET_BITS.patch b/meta-initramfs/recipes-devtools/dracut/dracut/0001-install-Do-not-undef-_FILE_OFFSET_BITS.patch
new file mode 100644
index 0000000000..170df7119f
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/dracut/dracut/0001-install-Do-not-undef-_FILE_OFFSET_BITS.patch
@@ -0,0 +1,32 @@
+From 7f8ef553b7c433af153d48c6a16b2943780abf67 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 31 Dec 2022 14:41:52 -0800
+Subject: [PATCH] install: Do not undef _FILE_OFFSET_BITS
+
+_FILE_OFFSET_BITS is a feature test macro to determine largefile
+support. Usually its set to 64 on systems supporting LFS. Its also
+needed to be set to 64 for supporting 64bit time_t on glibc on 32bit
+systems. If its undefined explicitly, then 64bit time_t can not be
+enabled.
+
+Upstream-Status: Submitted [https://github.com/dracutdevs/dracut/pull/2157]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/install/dracut-install.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/install/dracut-install.c b/src/install/dracut-install.c
+index dda0caca..05a67a03 100644
+--- a/src/install/dracut-install.c
++++ b/src/install/dracut-install.c
+@@ -22,7 +22,6 @@
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE
+ #endif
+-#undef _FILE_OFFSET_BITS
+ #include <ctype.h>
+ #include <errno.h>
+ #include <fcntl.h>
+--
+2.39.0
+
diff --git a/meta-initramfs/recipes-devtools/dracut/dracut/0001-util.h-include-sys-reg.h-when-libc-glibc.patch b/meta-initramfs/recipes-devtools/dracut/dracut/0001-util.h-include-sys-reg.h-when-libc-glibc.patch
index aa2ea723b5..68ec2b8fdb 100644
--- a/meta-initramfs/recipes-devtools/dracut/dracut/0001-util.h-include-sys-reg.h-when-libc-glibc.patch
+++ b/meta-initramfs/recipes-devtools/dracut/dracut/0001-util.h-include-sys-reg.h-when-libc-glibc.patch
@@ -11,6 +11,8 @@ https://github.com/voidlinux/void-packages/blob/master/srcpkgs/dracut/patches/mu
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/install/util.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta-initramfs/recipes-devtools/dracut/dracut_056.bb b/meta-initramfs/recipes-devtools/dracut/dracut_056.bb
index 7b89006103..db08fffe9a 100644
--- a/meta-initramfs/recipes-devtools/dracut/dracut_056.bb
+++ b/meta-initramfs/recipes-devtools/dracut/dracut_056.bb
@@ -11,6 +11,7 @@ SRCREV = "631d5f72a223288aa1f48bb8e8d0313e75947400"
SRC_URI = "git://git.kernel.org/pub/scm/boot/dracut/dracut.git;protocol=http;branch=master \
file://0001-util.h-include-sys-reg.h-when-libc-glibc.patch \
file://0001-Guard-against-__GLIBC_PREREQ-for-musl-libc.patch \
+ file://0001-install-Do-not-undef-_FILE_OFFSET_BITS.patch \
"
DEPENDS += "kmod"
@@ -64,9 +65,7 @@ RDEPENDS:${PN} = "findutils cpio util-linux-blkid util-linux-getopt util-linux b
# This could be optimized a bit, but let's avoid non-booting systems :)
RRECOMMENDS:${PN} = " \
kernel-modules \
- busybox \
coreutils \
"
-# CVE-2010-4176 affects only Fedora
-CVE_CHECK_IGNORE += "CVE-2010-4176"
+CVE_STATUS[CVE-2010-4176] = "not-applicable-platform: Applies only to Fedora"
diff --git a/meta-initramfs/recipes-devtools/grubby/grubby/0001-Add-another-variable-LIBS-to-provides-libraries-from.patch b/meta-initramfs/recipes-devtools/grubby/grubby/0001-Add-another-variable-LIBS-to-provides-libraries-from.patch
deleted file mode 100644
index dfbe7ba6b4..0000000000
--- a/meta-initramfs/recipes-devtools/grubby/grubby/0001-Add-another-variable-LIBS-to-provides-libraries-from.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From b7b3caa9b5c8abcd3c371d0683001cd681e104b3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 15 Jul 2017 10:19:22 -0700
-Subject: [PATCH 1/2] Add another variable LIBS to provides libraries from env
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index cc7e823..ae30a07 100644
---- a/Makefile
-+++ b/Makefile
-@@ -31,7 +31,7 @@ ifneq ($(VERBOSE_TEST),)
- VERBOSE_TEST="--verbose"
- endif
-
--grubby_LIBS = -lblkid -lpopt
-+grubby_LIBS = -lblkid -lpopt ${LIBS}
-
- all: grubby
-
diff --git a/meta-initramfs/recipes-devtools/grubby/grubby/0001-rename-grub2-editenv-to-grub-editenv.patch b/meta-initramfs/recipes-devtools/grubby/grubby/0001-rename-grub2-editenv-to-grub-editenv.patch
new file mode 100644
index 0000000000..7e1615c5b5
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/grubby/grubby/0001-rename-grub2-editenv-to-grub-editenv.patch
@@ -0,0 +1,78 @@
+From 7a72139d2e3cc80f64090a823afe7bcea76e4792 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Tue, 4 Aug 2015 23:54:41 -0700
+Subject: [PATCH] rename grub2-editenv to grub-editenv
+
+We don't use the name grub2-editenv for grub2.
+
+Upstream-Status: Inactive-Upstream [lastcommit: 2022 lastrelease: 2016]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ grubby.c | 4 ++--
+ test.sh | 8 ++++----
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/grubby.c b/grubby.c
+index 98c1516..be832f6 100644
+--- a/grubby.c
++++ b/grubby.c
+@@ -301,7 +301,7 @@ static char *grub2GetEnv(struct configFileInfo *info, char *name)
+ char *ret = NULL;
+ char *envFile = info->envFile ? info->envFile : "/boot/grub2/grubenv";
+ int rc =
+- asprintf(&s, "grub2-editenv %s list | grep '^%s='", envFile, name);
++ asprintf(&s, "grub-editenv %s list | grep '^%s='", envFile, name);
+
+ if (rc < 0)
+ return NULL;
+@@ -373,7 +373,7 @@ static int grub2SetEnv(struct configFileInfo *info, char *name, char *value)
+ if (!value)
+ return -1;
+
+- rc = asprintf(&s, "grub2-editenv %s set '%s=%s'", envFile, name, value);
++ rc = asprintf(&s, "grub-editenv %s set '%s=%s'", envFile, name, value);
+ free(value);
+ if (rc < 0)
+ return -1;
+diff --git a/test.sh b/test.sh
+index 33d24cf..009479c 100755
+--- a/test.sh
++++ b/test.sh
+@@ -573,7 +573,7 @@ if [ "$testgrub2" == "y" ]; then
+ --remove-kernel=/boot/vmlinuz-2.6.38.2-9.fc15.x86_64 \
+ --boot-filesystem=/boot/
+ commandTest "saved_default output" \
+- "grub2-editenv test/grub2-support_files/env_temp list" \
++ "grub-editenv test/grub2-support_files/env_temp list" \
+ "saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64"
+
+ # copy a stanza and add arguments as well, while using --set-index=
+@@ -627,7 +627,7 @@ if [ "$testgrub2" == "y" ]; then
+ --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
+ --copy-default
+ commandTest "saved_default output" \
+- "grub2-editenv test/grub2-support_files/env_temp list" \
++ "grub-editenv test/grub2-support_files/env_temp list" \
+ "saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64"
+
+ testing="GRUB2 add kernel with default=saved_entry and a terrible title"
+@@ -640,13 +640,13 @@ if [ "$testgrub2" == "y" ]; then
+ testing="GRUB2 set default with default=saved_entry and a terrible name"
+ grub2Test grub2.9 add/g2-1.9 --env grubenv.1 --set-default-index=0
+ commandTest "saved_default output" \
+- "grub2-editenv test/grub2-support_files/env_temp list" \
++ "grub-editenv test/grub2-support_files/env_temp list" \
+ 'saved_entry=Fedora (3.10.3-300.fc19.x86_64) 19 (Schrödinger’s Cat)'
+
+ testing="GRUB2 set default with default=saved_entry"
+ grub2Test grub2.8 add/g2-1.8 --env grubenv.1 --set-default-index=0
+ commandTest "saved_default output" \
+- "grub2-editenv test/grub2-support_files/env_temp list" \
++ "grub-editenv test/grub2-support_files/env_temp list" \
+ "saved_entry=title"
+
+ testing="GRUB2 --default-index with default=saved_entry"
+--
+2.25.1
+
diff --git a/meta-initramfs/recipes-devtools/grubby/grubby/0002-Add-another-variable-LIBS-to-provides-libraries-from.patch b/meta-initramfs/recipes-devtools/grubby/grubby/0002-Add-another-variable-LIBS-to-provides-libraries-from.patch
new file mode 100644
index 0000000000..967a4c94fb
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/grubby/grubby/0002-Add-another-variable-LIBS-to-provides-libraries-from.patch
@@ -0,0 +1,38 @@
+From c02d1bf46174656cdb6f7c08fa3e8fa520edcd8e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 15 Jul 2017 10:19:22 -0700
+Subject: [PATCH] Add another variable LIBS to provides libraries from env
+
+Upstream-Status: Inactive-Upstream [lastcommit: 2022 lastrelease: 2016]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 968c276..75abe44 100644
+--- a/Makefile
++++ b/Makefile
+@@ -31,7 +31,8 @@ ifneq ($(VERBOSE_TEST),)
+ VERBOSE_TEST="--verbose"
+ endif
+
+-grubby_LIBS = -lblkid -lpopt
++grubby_LIBS = -lblkid -lpopt ${LIBS}
++rpm-sort_LIBS = ${LIBS}
+
+ all: grubby rpm-sort
+
+@@ -63,7 +64,7 @@ grubby:: $(OBJECTS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(grubby_LIBS)
+
+ rpm-sort::rpm-sort.o
+- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ -lrpmio
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ -lrpmio $(rpm-sort_LIBS)
+
+ clean:
+ rm -f *.o grubby rpm-sort *~
+--
+2.25.1
+
diff --git a/meta-initramfs/recipes-devtools/grubby/grubby/0002-include-paths.h-for-_PATH_MOUNTED.patch b/meta-initramfs/recipes-devtools/grubby/grubby/0002-include-paths.h-for-_PATH_MOUNTED.patch
deleted file mode 100644
index de8133a3a4..0000000000
--- a/meta-initramfs/recipes-devtools/grubby/grubby/0002-include-paths.h-for-_PATH_MOUNTED.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 8f844ac7f44b8dc428d06cd6958c5f32d383d01c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 15 Jul 2017 10:19:50 -0700
-Subject: [PATCH 2/2] include paths.h for _PATH_MOUNTED
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- grubby.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/grubby.c b/grubby.c
-index 47a1a15..59f74a9 100644
---- a/grubby.c
-+++ b/grubby.c
-@@ -34,6 +34,7 @@
- #include <libgen.h>
- #include <execinfo.h>
- #include <signal.h>
-+#include <paths.h>
- #include <blkid/blkid.h>
-
- #include "log.h"
---
-2.13.3
-
diff --git a/meta-initramfs/recipes-devtools/grubby/grubby/0003-include-paths.h-for-_PATH_MOUNTED.patch b/meta-initramfs/recipes-devtools/grubby/grubby/0003-include-paths.h-for-_PATH_MOUNTED.patch
new file mode 100644
index 0000000000..86ae01021f
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/grubby/grubby/0003-include-paths.h-for-_PATH_MOUNTED.patch
@@ -0,0 +1,27 @@
+From 7e68976eb6edd766471c11382f5bf57940ba9315 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 15 Jul 2017 10:19:50 -0700
+Subject: [PATCH] include paths.h for _PATH_MOUNTED
+
+Upstream-Status: Inactive-Upstream [lastcommit: 2022 lastrelease: 2016]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ grubby.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/grubby.c b/grubby.c
+index be832f6..4825797 100644
+--- a/grubby.c
++++ b/grubby.c
+@@ -34,6 +34,7 @@
+ #include <libgen.h>
+ #include <execinfo.h>
+ #include <signal.h>
++#include <paths.h>
+ #include <blkid/blkid.h>
+
+ #include "log.h"
+--
+2.25.1
+
diff --git a/meta-initramfs/recipes-devtools/grubby/grubby/0004-rpm-sort-include-string.h-for-strverscmp.patch b/meta-initramfs/recipes-devtools/grubby/grubby/0004-rpm-sort-include-string.h-for-strverscmp.patch
new file mode 100644
index 0000000000..c68b492ebe
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/grubby/grubby/0004-rpm-sort-include-string.h-for-strverscmp.patch
@@ -0,0 +1,33 @@
+From 45bc228090b3adfc0a5058b9cd019d91831e110a Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Tue, 3 Jan 2023 13:59:48 +0800
+Subject: [PATCH] rpm-sort: include string.h for strverscmp
+
+Include string.h to fix build error:
+rpm-sort.c: In function 'package_version_compare':
+rpm-sort.c:156:13: error: 'strverscmp' undeclared (first use in this function)
+ 156 | cmp = strverscmp;
+ | ^~~~~~~~~~
+
+Upstream-Status: Inactive-Upstream [lastcommit: 2022 lastrelease: 2016]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ rpm-sort.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/rpm-sort.c b/rpm-sort.c
+index f196356..2eb91ce 100644
+--- a/rpm-sort.c
++++ b/rpm-sort.c
+@@ -8,6 +8,7 @@
+ #include <argp.h>
+ #include <rpm/rpmlib.h>
+ #include <err.h>
++#include <string.h>
+
+ typedef enum {
+ RPMNVRCMP,
+--
+2.25.1
+
diff --git a/meta-initramfs/recipes-devtools/grubby/grubby/grubby-rename-grub2-editenv-to-grub-editenv.patch b/meta-initramfs/recipes-devtools/grubby/grubby/grubby-rename-grub2-editenv-to-grub-editenv.patch
deleted file mode 100644
index e693916e1d..0000000000
--- a/meta-initramfs/recipes-devtools/grubby/grubby/grubby-rename-grub2-editenv-to-grub-editenv.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 15f0572f2f456c2c1b700bc790d9ce7a5c13cc74 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Tue, 4 Aug 2015 23:54:41 -0700
-Subject: [PATCH] rename grub2-editenv to grub-editenv
-
-We don't use the name grub2-editenv for grub2.
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
----
- grubby.c | 4 ++--
- test.sh | 8 ++++----
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/grubby.c b/grubby.c
-index 396041a..3ceae69 100644
---- a/grubby.c
-+++ b/grubby.c
-@@ -301,7 +301,7 @@ static char *grub2GetEnv(struct configFileInfo *info, char *name)
- char *ret = NULL;
- char *envFile = info->envFile ? info->envFile : "/boot/grub2/grubenv";
- int rc =
-- asprintf(&s, "grub2-editenv %s list | grep '^%s='", envFile, name);
-+ asprintf(&s, "grub-editenv %s list | grep '^%s='", envFile, name);
-
- if (rc < 0)
- return NULL;
-@@ -373,7 +373,7 @@ static int grub2SetEnv(struct configFileInfo *info, char *name, char *value)
- if (!value)
- return -1;
-
-- rc = asprintf(&s, "grub2-editenv %s set '%s=%s'", envFile, name, value);
-+ rc = asprintf(&s, "grub-editenv %s set '%s=%s'", envFile, name, value);
- free(value);
- if (rc < 0)
- return -1;
-diff --git a/test.sh b/test.sh
-index 33d24cf..009479c 100755
---- a/test.sh
-+++ b/test.sh
-@@ -573,7 +573,7 @@ if [ "$testgrub2" == "y" ]; then
- --remove-kernel=/boot/vmlinuz-2.6.38.2-9.fc15.x86_64 \
- --boot-filesystem=/boot/
- commandTest "saved_default output" \
-- "grub2-editenv test/grub2-support_files/env_temp list" \
-+ "grub-editenv test/grub2-support_files/env_temp list" \
- "saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64"
-
- # copy a stanza and add arguments as well, while using --set-index=
-@@ -627,7 +627,7 @@ if [ "$testgrub2" == "y" ]; then
- --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
- --copy-default
- commandTest "saved_default output" \
-- "grub2-editenv test/grub2-support_files/env_temp list" \
-+ "grub-editenv test/grub2-support_files/env_temp list" \
- "saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64"
-
- testing="GRUB2 add kernel with default=saved_entry and a terrible title"
-@@ -640,13 +640,13 @@ if [ "$testgrub2" == "y" ]; then
- testing="GRUB2 set default with default=saved_entry and a terrible name"
- grub2Test grub2.9 add/g2-1.9 --env grubenv.1 --set-default-index=0
- commandTest "saved_default output" \
-- "grub2-editenv test/grub2-support_files/env_temp list" \
-+ "grub-editenv test/grub2-support_files/env_temp list" \
- 'saved_entry=Fedora (3.10.3-300.fc19.x86_64) 19 (Schrödinger’s Cat)'
-
- testing="GRUB2 set default with default=saved_entry"
- grub2Test grub2.8 add/g2-1.8 --env grubenv.1 --set-default-index=0
- commandTest "saved_default output" \
-- "grub2-editenv test/grub2-support_files/env_temp list" \
-+ "grub-editenv test/grub2-support_files/env_temp list" \
- "saved_entry=title"
-
- testing="GRUB2 --default-index with default=saved_entry"
diff --git a/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb b/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb
deleted file mode 100644
index 307c0e85d8..0000000000
--- a/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "A command line tool for updating and displaying info about boot loaders"
-DESCRIPTION = "grubby is a command line tool for updating and displaying information \
-about the configuration files for the grub, lilo, elilo (ia64), yaboot (powerpc) and \
-zipl (s390) boot loaders. It is primarily designed to be used from scripts which install \
-new kernels and need to find information about the current boot environment. \
-"
-HOMEPAGE = "https://github.com/rhboot/grubby"
-LICENSE = "GPL-2.0-or-later"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
-
-DEPENDS = "popt util-linux"
-DEPENDS:append:libc-musl = " libexecinfo"
-
-S = "${WORKDIR}/git"
-SRCREV = "79c5cfa02c567efdc5bb18cdd584789e2e35aa23"
-SRC_URI = "git://github.com/rhboot/grubby.git;protocol=https;;branch=master \
- file://grubby-rename-grub2-editenv-to-grub-editenv.patch \
- file://run-ptest \
- file://0001-Add-another-variable-LIBS-to-provides-libraries-from.patch \
- file://0002-include-paths.h-for-_PATH_MOUNTED.patch \
- "
-
-RDEPENDS:${PN} += "dracut"
-
-inherit autotools-brokensep ptest
-
-EXTRA_OEMAKE = "-e 'CC=${CC}' 'LDFLAGS=${LDFLAGS}' LIBS='${LIBS}'"
-
-LIBS:libc-musl = "-lexecinfo"
-LIBS ?= ""
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}
- cp -r ${S}/test ${S}/test.sh ${D}${PTEST_PATH}
- sed -i 's|./grubby|grubby|' ${D}${PTEST_PATH}/test.sh
-}
-
-RDEPENDS:${PN} += "bash"
-RDEPENDS:${PN}-ptest = "util-linux-getopt bash"
-
-COMPATIBLE_HOST = '(x86_64.*|i.86.*)-(linux|freebsd.*)'
diff --git a/meta-initramfs/recipes-devtools/grubby/grubby_git.bb b/meta-initramfs/recipes-devtools/grubby/grubby_git.bb
index bbfabf0209..ff673e21bb 100644
--- a/meta-initramfs/recipes-devtools/grubby/grubby_git.bb
+++ b/meta-initramfs/recipes-devtools/grubby/grubby_git.bb
@@ -9,25 +9,26 @@ LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
-DEPENDS = "popt util-linux"
-DEPENDS:append:libc-musl = " libexecinfo"
+DEPENDS = "popt util-linux rpm"
+DEPENDS:append:libc-musl = " libexecinfo argp-standalone"
S = "${WORKDIR}/git"
-SRCREV = "a1d2ae93408c3408e672d7eba4550fdf27fb0201"
-SRC_URI = "git://github.com/rhboot/grubby.git;protocol=https;;branch=master \
- file://grubby-rename-grub2-editenv-to-grub-editenv.patch \
+SRCREV = "c01b0d5bb182bde35b464d14996acf354a3ada2e"
+SRC_URI = "git://github.com/rhboot/grubby.git;protocol=https;;branch=main \
+ file://0001-rename-grub2-editenv-to-grub-editenv.patch \
+ file://0002-Add-another-variable-LIBS-to-provides-libraries-from.patch \
+ file://0003-include-paths.h-for-_PATH_MOUNTED.patch \
+ file://0004-rpm-sort-include-string.h-for-strverscmp.patch \
file://run-ptest \
- file://0001-Add-another-variable-LIBS-to-provides-libraries-from.patch \
- file://0002-include-paths.h-for-_PATH_MOUNTED.patch \
"
RDEPENDS:${PN} += "dracut"
inherit autotools-brokensep ptest
-EXTRA_OEMAKE = "-e 'CC=${CC}' 'LDFLAGS=${LDFLAGS}' LIBS='${LIBS}' 'PREFIX'=${@bb.utils.contains('DISTRO_FEATURES','usrmerge','/usr','',d)}"
+EXTRA_OEMAKE = "-e 'CC=${CC}' 'LDFLAGS=${LDFLAGS}' 'LIBS=${LIBS}'"
-LIBS:libc-musl = "-lexecinfo"
+LIBS:libc-musl = "-lexecinfo -largp"
LIBS ?= ""
do_install_ptest() {
install -d ${D}${PTEST_PATH}
diff --git a/meta-initramfs/recipes-devtools/klibc/files/0001-Define-in_-structs-for-non-glibc-system-libs.patch b/meta-initramfs/recipes-devtools/klibc/files/0001-Define-in_-structs-for-non-glibc-system-libs.patch
index 29873cf7b5..c782cf03c8 100644
--- a/meta-initramfs/recipes-devtools/klibc/files/0001-Define-in_-structs-for-non-glibc-system-libs.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-Define-in_-structs-for-non-glibc-system-libs.patch
@@ -12,6 +12,8 @@ to infer that these structs should be defined in linux/in.h
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
usr/include/net/if.h | 11 +++++++++++
usr/include/netinet/in.h | 36 ++++++++++++++++++++++++++++++++++++
2 files changed, 47 insertions(+)
diff --git a/meta-initramfs/recipes-devtools/klibc/files/0001-always-use-bfd-linker.patch b/meta-initramfs/recipes-devtools/klibc/files/0001-always-use-bfd-linker.patch
index de04d691fe..895254889c 100644
--- a/meta-initramfs/recipes-devtools/klibc/files/0001-always-use-bfd-linker.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-always-use-bfd-linker.patch
@@ -10,6 +10,8 @@ linking issues on such distros
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-initramfs/recipes-devtools/klibc/files/0001-arm-Do-not-set-a-fallback-march-and-mtune.patch b/meta-initramfs/recipes-devtools/klibc/files/0001-arm-Do-not-set-a-fallback-march-and-mtune.patch
index ea14c49f0d..5ac0d4596a 100644
--- a/meta-initramfs/recipes-devtools/klibc/files/0001-arm-Do-not-set-a-fallback-march-and-mtune.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-arm-Do-not-set-a-fallback-march-and-mtune.patch
@@ -11,6 +11,8 @@ which is a bit harder in OE
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
usr/klibc/arch/arm/MCONFIG | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-initramfs/recipes-devtools/klibc/files/0001-fcntl-Fix-build-failure-for-some-architectures-with-.patch b/meta-initramfs/recipes-devtools/klibc/files/0001-fcntl-Fix-build-failure-for-some-architectures-with-.patch
deleted file mode 100644
index 4fc4b45fb1..0000000000
--- a/meta-initramfs/recipes-devtools/klibc/files/0001-fcntl-Fix-build-failure-for-some-architectures-with-.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From a33c262f828f803fffdad8e1f44d524dc9c75856 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben@decadent.org.uk>
-Date: Wed, 3 Aug 2022 01:10:01 +0200
-Subject: [PATCH] fcntl: Fix build failure for some architectures with Linux
- 5.19
-
-Starting from Linux 5.19, the kernel UAPI headers now only define
-__ARCH_FLOCK64_PAD if the architecture actually needs padding in
-struct flock64. Wrap its use with #ifdef,
-
-Upstream-Status: Backport [https://git.kernel.org/pub/scm/libs/klibc/klibc.git/commit/?id=bb2fde5ddbc18a2e7795ca4d24759230c2aae9d0]
-Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- usr/include/fcntl.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/usr/include/fcntl.h b/usr/include/fcntl.h
-index ed703a6..cb2e4e5 100644
---- a/usr/include/fcntl.h
-+++ b/usr/include/fcntl.h
-@@ -33,7 +33,9 @@ struct flock {
- __kernel_loff_t l_start;
- __kernel_loff_t l_len;
- __kernel_pid_t l_pid;
-+#ifdef __ARCH_FLOCK64_PAD
- __ARCH_FLOCK64_PAD
-+#endif
- };
-
- #ifdef F_GETLK64
---
-2.37.2
-
diff --git a/meta-initramfs/recipes-devtools/klibc/files/0001-include-linux-sysinfo.h-directly.patch b/meta-initramfs/recipes-devtools/klibc/files/0001-include-linux-sysinfo.h-directly.patch
index d58229681d..d49dfc1924 100644
--- a/meta-initramfs/recipes-devtools/klibc/files/0001-include-linux-sysinfo.h-directly.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-include-linux-sysinfo.h-directly.patch
@@ -12,6 +12,8 @@ override to avoid this assumption
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
usr/include/sys/sysinfo.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-initramfs/recipes-devtools/klibc/files/0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch b/meta-initramfs/recipes-devtools/klibc/files/0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch
index 15b5144e44..e4ae3728a4 100644
--- a/meta-initramfs/recipes-devtools/klibc/files/0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch
@@ -14,8 +14,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/usr/klibc/Kbuild
+++ b/usr/klibc/Kbuild
-@@ -183,7 +183,8 @@ $(SOHASH): $(SOLIB) $(SOLIB).hash
- targets += interp.o
+@@ -190,7 +190,8 @@ $(SOHASH): $(SOLIB) $(SOLIB).hash
+ targets += shared-stub.o
quiet_cmd_interp = BUILD $@
- cmd_interp = $(KLIBCCC) $(klibccflags) -D__ASSEMBLY__ \
@@ -23,4 +23,4 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
+ -D__ASSEMBLY__ \
-DLIBDIR=\"$(SHLIBDIR)\" \
-DSOHASH=\"$(SOLIBHASH)\" \
- $(KLIBCSTACKFLAGS) \
+ -c -o $@ $<
diff --git a/meta-initramfs/recipes-devtools/klibc/files/0001-klibc-add-getrandom-syscall.patch b/meta-initramfs/recipes-devtools/klibc/files/0001-klibc-add-getrandom-syscall.patch
index f096486d0b..80e6c6b11c 100644
--- a/meta-initramfs/recipes-devtools/klibc/files/0001-klibc-add-getrandom-syscall.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-klibc-add-getrandom-syscall.patch
@@ -7,6 +7,8 @@ needed by latest kexec-tools for qemuarm64 (kashan)
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
---
+Upstream-Status: Pending
+
usr/klibc/SYSCALLS.def | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-initramfs/recipes-devtools/klibc/files/0001-klibc_2.0.4-add-kexec_file_load-syscall.patch b/meta-initramfs/recipes-devtools/klibc/files/0001-klibc_2.0.4-add-kexec_file_load-syscall.patch
index b03fb91265..16885488e4 100644
--- a/meta-initramfs/recipes-devtools/klibc/files/0001-klibc_2.0.4-add-kexec_file_load-syscall.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-klibc_2.0.4-add-kexec_file_load-syscall.patch
@@ -7,6 +7,8 @@ for supported archs only (matched in kexec-tools)
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
---
+Upstream-Status: Pending
+
usr/klibc/SYSCALLS.def | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-initramfs/recipes-devtools/klibc/files/0001-mkfifo-Implement-mkfifo.patch b/meta-initramfs/recipes-devtools/klibc/files/0001-mkfifo-Implement-mkfifo.patch
index 3bc081d4e9..4378ca5610 100644
--- a/meta-initramfs/recipes-devtools/klibc/files/0001-mkfifo-Implement-mkfifo.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-mkfifo-Implement-mkfifo.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] mkfifo: Implement mkfifo
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
usr/utils/mkfifo.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/meta-initramfs/recipes-devtools/klibc/files/armv4-fix-v4bx.patch b/meta-initramfs/recipes-devtools/klibc/files/armv4-fix-v4bx.patch
index 6c734dfd6e..7b29eaf200 100644
--- a/meta-initramfs/recipes-devtools/klibc/files/armv4-fix-v4bx.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/armv4-fix-v4bx.patch
@@ -9,13 +9,15 @@ which is "" in case of armv5 or thumbs.
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
---
+Upstream-Status: Pending
+
usr/klibc/arch/arm/MCONFIG | 1 +
1 file changed, 1 insertion(+)
--- a/usr/klibc/arch/arm/MCONFIG
+++ b/usr/klibc/arch/arm/MCONFIG
-@@ -27,6 +27,7 @@ else
- KLIBCSHAREDFLAGS = $(LD_IMAGE_BASE_OPT) 0x01800000
+@@ -23,6 +23,7 @@ else
+ # Extra linkflags when building the shared version of the library
ifeq ($(CONFIG_AEABI),y)
KLIBCREQFLAGS += -mabi=aapcs-linux -mno-thumb-interwork
+KLIBCLDFLAGS += $(FIX_ARMV4_EABI_BX)
diff --git a/meta-initramfs/recipes-devtools/klibc/files/cross-clang.patch b/meta-initramfs/recipes-devtools/klibc/files/cross-clang.patch
index 41936c9fe3..f39701a65e 100644
--- a/meta-initramfs/recipes-devtools/klibc/files/cross-clang.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/cross-clang.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/scripts/Kbuild.klibc
+++ b/scripts/Kbuild.klibc
@@ -113,10 +113,8 @@ KLIBCCPPFLAGS := -nostdinc -iwithpref
diff --git a/meta-initramfs/recipes-devtools/klibc/files/klcc-consider-sysroot.patch b/meta-initramfs/recipes-devtools/klibc/files/klcc-consider-sysroot.patch
index 5f47d3f20a..af76564901 100644
--- a/meta-initramfs/recipes-devtools/klibc/files/klcc-consider-sysroot.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/klcc-consider-sysroot.patch
@@ -3,6 +3,8 @@ From: Andrea Adami <andrea.adami@gmail.com>
Date: Fri, 19 Sep 2014 23:09:29 +0200
---
+Upstream-Status: Pending
+
klcc/klcc.in | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta-initramfs/recipes-devtools/klibc/files/use-env-for-perl.patch b/meta-initramfs/recipes-devtools/klibc/files/use-env-for-perl.patch
index 5973824885..d2a19909f0 100644
--- a/meta-initramfs/recipes-devtools/klibc/files/use-env-for-perl.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/use-env-for-perl.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Patch was imported from the OpenEmbedded git server
(git://git.openembedded.org/openembedded)
as of commit id 676cbb54d42c89a4832871064cfcb7ee2ad372ee
diff --git a/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.10.bb b/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.13.bb
index 4011aa231e..4011aa231e 100644
--- a/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.10.bb
+++ b/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.13.bb
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.10.bb b/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.13.bb
index 0de580781b..0de580781b 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.10.bb
+++ b/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.13.bb
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.10.bb b/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.13.bb
index 2f26093cbe..2f26093cbe 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.10.bb
+++ b/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.13.bb
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc.inc b/meta-initramfs/recipes-devtools/klibc/klibc.inc
index 5acf679983..6093e19b7c 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc.inc
+++ b/meta-initramfs/recipes-devtools/klibc/klibc.inc
@@ -20,7 +20,6 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/libs/klibc/2.0/klibc-${PV}.tar.xz \
file://0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch \
file://cross-clang.patch \
file://0001-workaround-for-overlapping-sections-in-binary.patch \
- file://0001-fcntl-Fix-build-failure-for-some-architectures-with-.patch \
"
ARMPATCHES ?= ""
@@ -28,11 +27,12 @@ ARMPATCHES ?= ""
ARMPATCHES:arm = " \
file://armv4-fix-v4bx.patch \
"
-SRC_URI[sha256sum] = "662753da8889e744dfc0db6eb4021c3377ee7ef8ed66d7d57765f8c9e25939cd"
+SRC_URI[sha256sum] = "d673a294f742d59368222ff5c38462d81098c55063799de6fb8a7ba3d4af0436"
S = "${WORKDIR}/klibc-${PV}"
OPTFLAGS = "${TUNE_CCARGS} -Os -fcommon"
+OPTFLAGS:append = " ${DEBUG_PREFIX_MAP}"
OPTFLAGS:append:toolchain-clang = " -fno-builtin-bcmp"
OPTFLAGS:append:toolchain-clang:mipsarch = " -no-integrated-as"
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc_2.0.10.bb b/meta-initramfs/recipes-devtools/klibc/klibc_2.0.13.bb
index 8dda9a8cdc..8dda9a8cdc 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc_2.0.10.bb
+++ b/meta-initramfs/recipes-devtools/klibc/klibc_2.0.13.bb
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch
index f4d0d5d942..eca01b956c 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch
@@ -22,6 +22,8 @@ to fix :
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
---
+Upstream-Status: Pending
+
kexec/Makefile | 2 +-
kexec/if_nameindex.c | 64 ++++++++++++++++++++++++++++++++++++++++++++
kexec/if_nameindex.h | 15 +++++++++++
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch
index 9b8107aedc..044a70d93b 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch
@@ -8,6 +8,8 @@ Subject: [PATCH] vmcore-dmesg: fix warning
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
---
+Upstream-Status: Pending
+
vmcore-dmesg/vmcore-dmesg.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/140-mips_disable_devicetree_support.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/140-mips_disable_devicetree_support.patch
index 6e347c048e..031efb6275 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/140-mips_disable_devicetree_support.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/140-mips_disable_devicetree_support.patch
@@ -16,6 +16,8 @@ Signed-off-by: Konstantin Kuzov <master.nosferatu@gmail.com>
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
---
+Upstream-Status: Pending
+
kexec/arch/mips/include/arch/options.h | 4 +-
kexec/arch/mips/kexec-elf-mips.c | 58 ++++++++++++++------------
kexec/arch/mips/kexec-mips.c | 4 ++
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/Fix-building-on-x86_64-with-binutils-2.41.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/Fix-building-on-x86_64-with-binutils-2.41.patch
new file mode 100644
index 0000000000..4894f044fc
--- /dev/null
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/Fix-building-on-x86_64-with-binutils-2.41.patch
@@ -0,0 +1,95 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Michel Lind <salimma@fedoraproject.org>
+Date: Tue, 30 Jan 2024 04:14:31 -0600
+Subject: [PATCH] Fix building on x86_64 with binutils 2.41
+
+Newer versions of the GNU assembler (observed with binutils 2.41) will
+complain about the ".arch i386" in files assembled with "as --64",
+with the message "Error: 64bit mode not supported on 'i386'".
+
+Fix by moving ".arch i386" below the relevant ".code32" directive, so
+that the assembler is no longer expecting 64-bit instructions to be used
+by the time that the ".arch i386" directive is encountered.
+
+Based on similar iPXE fix:
+https://github.com/ipxe/ipxe/commit/6ca597eee
+
+Signed-off-by: Michel Lind <michel@michel-slm.name>
+Signed-off-by: Simon Horman <horms@kernel.org>
+
+Upstream-Status: Backport [https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git/commit/?h=main&id=328de8e00e298f00d7ba6b25dc3950147e9642e6]
+Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
+---
+ purgatory/arch/i386/entry32-16-debug.S | 2 +-
+ purgatory/arch/i386/entry32-16.S | 2 +-
+ purgatory/arch/i386/entry32.S | 2 +-
+ purgatory/arch/i386/setup-x86.S | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/purgatory/arch/i386/entry32-16-debug.S b/purgatory/arch/i386/entry32-16-debug.S
+index 5167944..12e1164 100644
+--- a/purgatory/arch/i386/entry32-16-debug.S
++++ b/purgatory/arch/i386/entry32-16-debug.S
+@@ -25,10 +25,10 @@
+ .globl entry16_debug_pre32
+ .globl entry16_debug_first32
+ .globl entry16_debug_old_first32
+- .arch i386
+ .balign 16
+ entry16_debug:
+ .code32
++ .arch i386
+ /* Compute where I am running at (assumes esp valid) */
+ call 1f
+ 1: popl %ebx
+diff --git a/purgatory/arch/i386/entry32-16.S b/purgatory/arch/i386/entry32-16.S
+index c051aab..eace095 100644
+--- a/purgatory/arch/i386/entry32-16.S
++++ b/purgatory/arch/i386/entry32-16.S
+@@ -20,10 +20,10 @@
+ #undef i386
+ .text
+ .globl entry16, entry16_regs
+- .arch i386
+ .balign 16
+ entry16:
+ .code32
++ .arch i386
+ /* Compute where I am running at (assumes esp valid) */
+ call 1f
+ 1: popl %ebx
+diff --git a/purgatory/arch/i386/entry32.S b/purgatory/arch/i386/entry32.S
+index f7a494f..8ce9e31 100644
+--- a/purgatory/arch/i386/entry32.S
++++ b/purgatory/arch/i386/entry32.S
+@@ -20,10 +20,10 @@
+ #undef i386
+
+ .text
+- .arch i386
+ .globl entry32, entry32_regs
+ entry32:
+ .code32
++ .arch i386
+
+ /* Setup a gdt that should that is generally usefully */
+ lgdt %cs:gdt
+diff --git a/purgatory/arch/i386/setup-x86.S b/purgatory/arch/i386/setup-x86.S
+index 201bb2c..a212eed 100644
+--- a/purgatory/arch/i386/setup-x86.S
++++ b/purgatory/arch/i386/setup-x86.S
+@@ -21,10 +21,10 @@
+ #undef i386
+
+ .text
+- .arch i386
+ .globl purgatory_start
+ purgatory_start:
+ .code32
++ .arch i386
+
+ /* Load a gdt so I know what the segment registers are */
+ lgdt %cs:gdt
+--
+2.39.2
+
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch
index c2418d8fa0..a3b7789eba 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch
@@ -13,6 +13,8 @@ ng: "__bitwise" redefined
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
---
+Upstream-Status: Pending
+
kexec/arch/arm64/crashdump-arm64.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch
index 5323a81e6b..89a5d34c83 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] arm- backport from oe-core
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
---
+Upstream-Status: Pending
+
kexec/arch/arm/crashdump-arm.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/include_next.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/include_next.patch
index d4fbd1436f..29ea1d9f18 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/include_next.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/include_next.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/kexec/Makefile
+++ b/kexec/Makefile
@@ -110,7 +110,7 @@ $(KEXEC): $(KEXEC_OBJS) $(UTIL_LIB)
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/klibc-reboot.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/klibc-reboot.patch
index 6497fb4160..1c58e92b35 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/klibc-reboot.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/klibc-reboot.patch
@@ -3,6 +3,8 @@ From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 15 Mar 2019 00:22:40 -0700
---
+Upstream-Status: Pending
+
kexec/kexec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
index 88f32c8182..363cdb9adf 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
@@ -1,12 +1,11 @@
# the binaries are statically linked against klibc
SUMMARY = "Kexec tools, statically compiled against klibc"
-AUTHOR = "Eric Biederman"
HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/"
SECTION = "kernel/userland"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a \
file://kexec/kexec.c;beginline=1;endline=20;md5=af10f6ae4a8715965e648aa687ad3e09"
-PV = "2.0.18+git${SRCPV}"
+PV = "2.0.18+git"
DEPENDS = "zlib xz"
@@ -16,7 +15,9 @@ SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git;branc
SRCREV = "5750980cdbbc33ef75bfba6660295b932376ce15"
BUILD_PATCHES = "file://0001-force-static-build.patch \
- file://0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch"
+ file://0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch \
+ file://Fix-building-on-x86_64-with-binutils-2.41.patch \
+ "
KLIBC_PATCHES += " \
file://0003-kexec-elf-rel-use-our-elf.h.patch \
diff --git a/meta-multimedia/README b/meta-multimedia/README.md
index 235c34331b..235c34331b 100644
--- a/meta-multimedia/README
+++ b/meta-multimedia/README.md
diff --git a/meta-multimedia/conf/include/ptest-packagelists-meta-multimedia.inc b/meta-multimedia/conf/include/ptest-packagelists-meta-multimedia.inc
new file mode 100644
index 0000000000..e21ad5766b
--- /dev/null
+++ b/meta-multimedia/conf/include/ptest-packagelists-meta-multimedia.inc
@@ -0,0 +1,17 @@
+#
+# Lists of the ptest in meta-multimedia, sorted into two sets by the time they take
+# Please keep these sorted in alphabetical order
+#
+# A first pass at getting all meta-multimedia recipes which inherit ptest
+# meta_multimedia_ptest_recipes=$(bitbake-layers show-recipes --recipes-only --layer meta-multimedia --inherits ptest --bare | sed -e '1,/=== Matching recipes: ===/d')
+# ptests which take less than ~30s each
+
+PTESTS_FAST_META_MULTIMEDIA = "\
+"
+
+PTESTS_SLOW_META_MULTIMEDIA = "\
+"
+
+PTESTS_PROBLEMS_META_MULTIMEDIA = "\
+ libopenmpt \
+"
diff --git a/meta-multimedia/conf/layer.conf b/meta-multimedia/conf/layer.conf
index ee6694cdf8..82e6f3629f 100644
--- a/meta-multimedia/conf/layer.conf
+++ b/meta-multimedia/conf/layer.conf
@@ -31,4 +31,4 @@ LAYERVERSION_multimedia-layer = "1"
LAYERDEPENDS_multimedia-layer = "core openembedded-layer meta-python"
-LAYERSERIES_COMPAT_multimedia-layer = "kirkstone langdale"
+LAYERSERIES_COMPAT_multimedia-layer = "scarthgap"
diff --git a/meta-multimedia/files/static-group-meta-multimedia b/meta-multimedia/files/static-group-meta-multimedia
new file mode 100644
index 0000000000..c762331719
--- /dev/null
+++ b/meta-multimedia/files/static-group-meta-multimedia
@@ -0,0 +1,2 @@
+pipewire:x:660:
+mpd:x:665: \ No newline at end of file
diff --git a/meta-multimedia/files/static-passwd-meta-multimedia b/meta-multimedia/files/static-passwd-meta-multimedia
new file mode 100644
index 0000000000..94e1310ead
--- /dev/null
+++ b/meta-multimedia/files/static-passwd-meta-multimedia
@@ -0,0 +1,2 @@
+pipewire:x:660:660::/:/bin/nologin
+mpd:x:665:665::/:/bin/nologin \ No newline at end of file
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.4.0.1.bb b/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.4.0.1.bb
deleted file mode 100644
index 1d8cbb1aea..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.4.0.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Resource discovery and announcement over SSDP"
-DESCRIPTION = "GSSDP implements resource discovery and announcement over SSDP \
- (Simpe Service Discovery Protocol)."
-HOMEPAGE = "https://gitlab.gnome.org/GNOME/gssdp/"
-BUGTRACKER = "https://gitlab.gnome.org/GNOME/gssdp/-/issues"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/1.4/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "8676849d57fb822b8728856dbadebf3867f89ee47a0ec47a20045d011f431582"
-
-GTKDOC_MESON_OPTION = 'gtk_doc'
-
-DEPENDS = " \
- glib-2.0 \
- libsoup-2.4 \
-"
-
-inherit meson pkgconfig gobject-introspection vala gtk-doc
-
-SNIFFER = "${@bb.utils.contains("BBFILE_COLLECTIONS", "gnome-layer", "sniffer", "", d)}"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', "${SNIFFER}", "", d)}"
-
-PACKAGECONFIG[sniffer] = "-Dsniffer=true,-Dsniffer=false,gtk4,"
-
-PACKAGES =+ "gssdp-tools"
-
-FILES:gssdp-tools = "${bindir}/gssdp* ${datadir}/gssdp/*.glade"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.6.3.bb b/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.6.3.bb
new file mode 100644
index 0000000000..f2e27622cc
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.6.3.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Resource discovery and announcement over SSDP"
+DESCRIPTION = "GSSDP implements resource discovery and announcement over SSDP \
+ (Simpe Service Discovery Protocol)."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/gssdp/"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/gssdp/-/issues"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI[archive.sha256sum] = "2fedb5afdb22cf14d5498a39a773ca89788a250fcf70118783df821e1f3f3446"
+
+GTKDOC_MESON_OPTION = 'gtk_doc'
+
+DEPENDS = " \
+ glib-2.0 \
+ libsoup-3.0 \
+"
+
+inherit gnomebase pkgconfig gobject-introspection vala gi-docgen features_check
+
+# manpages require pandoc-native
+EXTRA_OEMESON += "-Dmanpages=false"
+
+SNIFFER = "${@bb.utils.contains("BBFILE_COLLECTIONS", "gnome-layer", "sniffer", "", d)}"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', "${SNIFFER}", "", d)}"
+PACKAGECONFIG[sniffer] = "-Dsniffer=true,-Dsniffer=false,gtk4,"
+
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'sniffer', 'opengl', '', d)}"
+
+PACKAGES =+ "gssdp-tools"
+
+FILES:gssdp-tools = "${bindir}/gssdp* ${datadir}/gssdp/*.glade"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av/0001-all-Drop-xmlRecoverMemory.patch b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av/0001-all-Drop-xmlRecoverMemory.patch
new file mode 100644
index 0000000000..92b52ad98a
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av/0001-all-Drop-xmlRecoverMemory.patch
@@ -0,0 +1,44 @@
+From d99f71a4a52da7582d5e26992a1ab303b280d28a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Jun 2023 03:23:12 -0700
+Subject: [PATCH] Drop xmlRecoverMemory
+
+newer libxml has deprecated xmlRecoverMemory therefore replace it with xmlReadMemory
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gupnp/-/commit/80e68995b745a5900eaaa1d0c424d3a9d354e42d]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gupnp-didl-lite-parser.c | 2 +-
+ gupnp-feature-list-parser.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gupnp-didl-lite-parser.c b/gupnp-didl-lite-parser.c
+index 3a5727f..840d718 100644
+--- a/libgupnp-av/gupnp-didl-lite-parser.c
++++ b/libgupnp-av/gupnp-didl-lite-parser.c
+@@ -230,7 +230,7 @@ gupnp_didl_lite_parser_parse_didl_recursive (GUPnPDIDLLiteParser *parser,
+ GUPnPAVXMLDoc *xml_doc = NULL;
+ gboolean result;
+
+- doc = xmlRecoverMemory (didl, strlen (didl));
++ doc = xmlReadMemory (didl, strlen (didl), NULL, NULL, XML_PARSE_NONET | XML_PARSE_RECOVER);
+ if (doc == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+diff --git a/gupnp-feature-list-parser.c b/gupnp-feature-list-parser.c
+index 16208b5..f804fe7 100644
+--- a/libgupnp-av/gupnp-feature-list-parser.c
++++ b/libgupnp-av/gupnp-feature-list-parser.c
+@@ -114,7 +114,7 @@ gupnp_feature_list_parser_parse_text
+ xmlNode *element;
+ GList *feature_list = NULL;
+
+- doc = xmlRecoverMemory (text, strlen (text));
++ doc = xmlReadMemory (text, strlen (text), NULL, NULL, XML_PARSE_NONET | XML_PARSE_RECOVER);
+ if (doc == NULL) {
+ g_set_error (error,
+ G_MARKUP_ERROR,
+--
+2.41.0
+
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.bb
deleted file mode 100644
index b253c54d92..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Helpers for AV applications using UPnP"
-DESCRIPTION = "GUPnP-AV is a collection of helpers for building AV (audio/video) applications using GUPnP."
-
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "gupnp"
-
-inherit meson pkgconfig gobject-introspection vala
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/0.14/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "20aed546fc882e78a3f186a0c8bce5c841cc3a44b7ea528298fbdc82596fb156"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.1.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.1.bb
new file mode 100644
index 0000000000..2a5c0808ee
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.1.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Helpers for AV applications using UPnP"
+DESCRIPTION = "GUPnP-AV is a collection of helpers for building AV (audio/video) applications using GUPnP."
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "gupnp"
+
+inherit meson pkgconfig gobject-introspection vala
+
+SRC_URI = "${GNOME_MIRROR}/${BPN}/0.14/${BPN}-${PV}.tar.xz \
+ file://0001-all-Drop-xmlRecoverMemory.patch \
+ "
+SRC_URI[sha256sum] = "b79ce0cc4b0c66d9c54bc22183a10e5709a0011d2af272025948efcab33a3e4f"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.2.0.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.2.0.bb
deleted file mode 100644
index 49cd8d8318..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.2.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Helpers for interacting with Internet Gateway Devices over UPnP"
-LICENSE = "LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
- file://libgupnp-igd/gupnp-simple-igd.c;beginline=1;endline=21;md5=aa292c0d9390463a6e1055dc5fc68e80"
-
-DEPENDS = "glib-2.0 gssdp gupnp sqlite3"
-
-SRC_URI = "http://download.gnome.org/sources/${BPN}/1.2/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "4b5120098aa13edd27818ba9ee4d7fe961bf540bf50d056ff703c61545e02be1"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-inherit meson pkgconfig gtk-doc gobject-introspection
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.6.0.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.6.0.bb
new file mode 100644
index 0000000000..d8dbc262cd
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.6.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Helpers for interacting with Internet Gateway Devices over UPnP"
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+ file://libgupnp-igd/gupnp-simple-igd.c;beginline=1;endline=21;md5=aa292c0d9390463a6e1055dc5fc68e80"
+
+DEPENDS = "glib-2.0 gssdp gupnp"
+
+inherit gnomebase pkgconfig gtk-doc gobject-introspection
+
+SRC_URI[archive.sha256sum] = "4099978339ab22126d4968f2a332b6d094fc44c78797860781f1fc2f11771b74"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb
deleted file mode 100644
index 20aced8329..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Tools for GUPnP"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
- file://src/network-light/main.c;beginline=1;endline=21;md5=2c39b3a000495dabd4932f231c7efed8"
-
-DEPENDS = "gupnp gupnp-av gtk+3 glib-2.0-native intltool-native"
-
-inherit features_check meson pkgconfig gettext gtk-icon-cache
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://download.gnome.org/sources/${BPN}/0.10/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "6de49ef4b375b8a164f74b766168b1184e0d28196b6b07a4f5341f08dfd85d6c"
-
-RRECOMMENDS:${PN} = "adwaita-icon-theme"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.12.1.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.12.1.bb
new file mode 100644
index 0000000000..4f6ff3fb97
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.12.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Tools for GUPnP"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "gupnp gssdp gtk+3 libsoup-3.0 libxml2 glib-2.0 "
+
+inherit gnomebase features_check pkgconfig gettext gtk-icon-cache
+
+ANY_OF_DISTRO_FEATURES = "x11 wayland"
+
+SRC_URI[archive.sha256sum] = "53cf93123f397e8f8f0b8e9e4364c86a7502a5334f4c0be2e054a824478bd5ba"
+
+PACKAGECONFIG ??= "av-tools"
+PACKAGECONFIG[av-tools] = "-Dav-tools=true,-Dav-tools=false,gupnp-av"
+PACKAGECONFIG[gtksourceview] = ",,gtksourceview4"
+
+CFLAGS += "-Wno-deprecated-declarations"
+
+RRECOMMENDS:${PN} = "adwaita-icon-theme"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb
deleted file mode 100644
index 708e3844ff..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "UPnP framework"
-DESCRIPTION = "GUPnP is an elegant, object-oriented open source framework for creating UPnP devices and control points, written in C using GObject and libsoup. The GUPnP API is intended to be easy to use, efficient and flexible. It provides the same set of features as libupnp, but shields the developer from most of UPnP's internals."
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "e2fsprogs gssdp libsoup-2.4 libxml2"
-
-inherit meson pkgconfig vala gobject-introspection
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/1.4/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "899196b5e66f03b8e25f046a7a658cd2a6851becb83f2d55345ab3281655dc0c"
-
-SYSROOT_PREPROCESS_FUNCS += "gupnp_sysroot_preprocess"
-
-gupnp_sysroot_preprocess () {
- install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
- install -m 755 ${D}${bindir}/gupnp-binding-tool* ${SYSROOT_DESTDIR}${bindir_crossscripts}/
-}
-
-FILES:${PN}-dev += "${bindir}/gupnp-binding-tool*"
-
-RDEPENDS:${PN}-dev = "python3 python3-xml"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.6.6.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.6.6.bb
new file mode 100644
index 0000000000..f1628d82ee
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.6.6.bb
@@ -0,0 +1,21 @@
+SUMMARY = "UPnP framework"
+DESCRIPTION = "GUPnP is an elegant, object-oriented open source framework for creating UPnP devices and control points, written in C using GObject and libsoup. The GUPnP API is intended to be easy to use, efficient and flexible. It provides the same set of features as libupnp, but shields the developer from most of UPnP's internals."
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "e2fsprogs gssdp libsoup-3.0 libxml2"
+
+inherit gnomebase pkgconfig vala gobject-introspection
+
+SRC_URI[archive.sha256sum] = "c9dc50e8c78b3792d1b0e6c5c5f52c93e9345d3dae2891e311a993a574f5a04f"
+
+SYSROOT_PREPROCESS_FUNCS += "gupnp_sysroot_preprocess"
+
+gupnp_sysroot_preprocess () {
+ install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ install -m 755 ${D}${bindir}/gupnp-binding-tool* ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+}
+
+FILES:${PN}-dev += "${bindir}/gupnp-binding-tool*"
+
+RDEPENDS:${PN}-dev += "python3-core python3-xml"
diff --git a/meta-multimedia/recipes-connectivity/libupnp/libupnp/0001-ithread-Use-pthread_mutexattr_gettype-pthread_mutexa.patch b/meta-multimedia/recipes-connectivity/libupnp/libupnp/0001-ithread-Use-pthread_mutexattr_gettype-pthread_mutexa.patch
deleted file mode 100644
index ee78196779..0000000000
--- a/meta-multimedia/recipes-connectivity/libupnp/libupnp/0001-ithread-Use-pthread_mutexattr_gettype-pthread_mutexa.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 343a3b724225d3c87af0b268da14d3acb7a5b9a1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 9 May 2021 15:38:43 -0700
-Subject: [PATCH] ithread: Use
- pthread_mutexattr_gettype/pthread_mutexattr_settype on linux
-
-_np variants are not recommended anymore, and glibc 2.34+ will have
-these removed
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- upnp/inc/ithread.h | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/upnp/inc/ithread.h b/upnp/inc/ithread.h
-index f6800ea9..1d0f9dba 100644
---- a/upnp/inc/ithread.h
-+++ b/upnp/inc/ithread.h
-@@ -304,7 +304,8 @@ static UPNP_INLINE int ithread_cleanup_thread(void)
- * Returns EINVAL if the kind is not supported.
- * See man page for pthread_mutexattr_setkind_np
- *****************************************************************************/
--#if defined(PTHREAD_MUTEX_RECURSIVE) || defined(__DragonFly__)
-+#if defined(PTHREAD_MUTEX_RECURSIVE) || defined(__DragonFly__) \
-+ || defined (__linux__)
- #define ithread_mutexattr_setkind_np pthread_mutexattr_settype
- #else
- #define ithread_mutexattr_setkind_np pthread_mutexattr_setkind_np
-@@ -329,7 +330,8 @@ static UPNP_INLINE int ithread_cleanup_thread(void)
- * Always returns 0.
- * See man page for pthread_mutexattr_getkind_np
- *****************************************************************************/
--#if defined(PTHREAD_MUTEX_RECURSIVE) || defined(__DragonFly__)
-+#if defined(PTHREAD_MUTEX_RECURSIVE) || defined(__DragonFly__) \
-+ || defined (__linux__)
- #define ithread_mutexattr_getkind_np pthread_mutexattr_gettype
- #else
- #define ithread_mutexattr_getkind_np pthread_mutexattr_getkind_np
---
-2.31.1
-
diff --git a/meta-multimedia/recipes-connectivity/libupnp/libupnp_1.14.18.bb b/meta-multimedia/recipes-connectivity/libupnp/libupnp_1.14.18.bb
new file mode 100644
index 0000000000..5b15d18096
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/libupnp/libupnp_1.14.18.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Portable SDK for UPnP* Devices"
+DESCRIPTION = "The Portable SDK for UPnP Devices is an SDK for development of \
+UPnP device and control point applications. It consists of the core UPnP \
+protocols along with a UPnP-specific eXtensible Markup Language (XML) parser \
+supporting the Document Object Model (DOM) Level 2 API and an optional, \
+integrated mini web server for serving UPnP related documents."
+HOMEPAGE = "http://pupnp.sourceforge.net/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=394a0f17b97f33426275571e15920434"
+
+SRCREV = "c540ce2431bdeac73359029d4592b45790e1d154"
+SRC_URI = "git://github.com/pupnp/pupnp.git;protocol=https;branch=branch-1.14.x \
+ "
+
+S="${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "--enable-reuseaddr"
+
+# Enable LFS support ( for samples )
+CFLAGS += "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE"
+CXXFLAGS += "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE"
diff --git a/meta-multimedia/recipes-connectivity/libupnp/libupnp_1.14.6.bb b/meta-multimedia/recipes-connectivity/libupnp/libupnp_1.14.6.bb
deleted file mode 100644
index 81b42da412..0000000000
--- a/meta-multimedia/recipes-connectivity/libupnp/libupnp_1.14.6.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Portable SDK for UPnP* Devices"
-DESCRIPTION = "The Portable SDK for UPnP Devices is an SDK for development of \
-UPnP device and control point applications. It consists of the core UPnP \
-protocols along with a UPnP-specific eXtensible Markup Language (XML) parser \
-supporting the Document Object Model (DOM) Level 2 API and an optional, \
-integrated mini web server for serving UPnP related documents."
-HOMEPAGE = "http://pupnp.sourceforge.net/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=394a0f17b97f33426275571e15920434"
-
-SRCREV = "cef2b23fb36baac091b0c7d41136b4c1d9549c6d"
-SRC_URI = "git://github.com/pupnp/pupnp.git;protocol=https;branch=branch-1.14.x \
- file://0001-ithread-Use-pthread_mutexattr_gettype-pthread_mutexa.patch \
- "
-
-S="${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "--enable-reuseaddr"
-
-# Enable LFS support ( for samples )
-CFLAGS += "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE"
-CXXFLAGS += "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE"
diff --git a/meta-multimedia/recipes-connectivity/rygel/rygel_0.40.4.bb b/meta-multimedia/recipes-connectivity/rygel/rygel_0.40.4.bb
deleted file mode 100644
index 8bc8767d8f..0000000000
--- a/meta-multimedia/recipes-connectivity/rygel/rygel_0.40.4.bb
+++ /dev/null
@@ -1,93 +0,0 @@
-SUMMARY = "A UPnP AV media server and renderer"
-DESCRIPTION = "Rygel is a home media solution (UPnP AV MediaServer) that \
-allow you to easily share audio, video and pictures to other devices. \
-Additionally, media player software may use Rygel to become a MediaRenderer \
-that may be controlled remotely by a UPnP or DLNA Controller."
-HOMEPAGE = "http://live.gnome.org/Rygel"
-
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "libxml2 glib-2.0 gssdp gupnp gupnp-av gupnp-dlna gstreamer1.0 \
- gstreamer1.0-plugins-base libgee libsoup-2.4 libmediaart-2.0 \
- libunistring sqlite3 intltool-native gst-editing-services"
-
-RDEPENDS:${PN} = "gstreamer1.0-plugins-base-playback shared-mime-info"
-RRECOMMENDS:${PN} = "rygel-plugin-media-export"
-
-inherit gnomebase features_check vala gobject-introspection gettext systemd meson
-
-# gobject-introspection is mandatory for libmediaart-2.0 and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-
-SRC_URI[archive.sha256sum] = "736d8adbe8615f6cbc8fcfff9845dc985fd10e16629da236b4b52dbedf0a348b"
-
-GNOMEBASEBUILDCLASS = "meson"
-GIR_MESON_ENABLE_FLAG = 'enabled'
-GIR_MESON_DISABLE_FLAG = 'disabled'
-
-EXTRA_OEMESON = "-Dengines=gstreamer -Dplugins=${@strip_comma('${RYGEL_PLUGINS}')}"
-PACKAGECONFIG:append = "${@bb.utils.contains("DISTRO_FEATURES", "x11", " gtk+3", "", d)}"
-
-PACKAGECONFIG ?= "external mpris ruih media-export gst-launch"
-
-PACKAGECONFIG[external] = ""
-PACKAGECONFIG[mpris] = ""
-PACKAGECONFIG[ruih] = ""
-PACKAGECONFIG[media-export] = ""
-PACKAGECONFIG[gst-launch] = ""
-PACKAGECONFIG[lms] = ""
-PACKAGECONFIG[tracker3] = ""
-PACKAGECONFIG[gtk+3] = ",-Dgtk=false,gtk+3"
-
-RYGEL_PLUGINS = ""
-RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'external', ',external', '', d)}"
-RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'mpris', ',mpris', '', d)}"
-RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'ruih', ',ruih', '', d)}"
-RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'gst-launch', ',gst-launch', '', d)}"
-RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'lms', ',lms', '', d)}"
-RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'media-export', ',media-export', '', d)}"
-RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'tracker3', ',tracker3', '', d)}"
-RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'playbin', ',playbin', '', d)}"
-
-LIBV = "2.6"
-
-CFLAGS:append:toolchain-clang = " -Wno-error=int-conversion"
-
-def strip_comma(s):
- return s.strip(',')
-
-do_install:append() {
- # Remove .la files for loadable modules
- rm -f ${D}/${libdir}/rygel-${LIBV}/engines/*.la
- rm -f ${D}/${libdir}/rygel-${LIBV}/plugins/*.la
- if [ -e ${D}${nonarch_libdir}/systemd/user/rygel.service ]; then
- mkdir -p ${D}${systemd_unitdir}/system
- mv ${D}${nonarch_libdir}/systemd/user/rygel.service ${D}${systemd_unitdir}/system
- rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}/systemd/user \
- ${D}${nonarch_libdir}/systemd \
- ${D}${nonarch_libdir}
- fi
-}
-
-FILES:${PN} += "${libdir}/rygel-${LIBV}/engines ${datadir}/dbus-1 ${datadir}/icons"
-FILES:${PN}-dbg += "${libdir}/rygel-${LIBV}/engines/.debug ${libdir}/rygel-${LIBV}/plugins/.debug"
-
-PACKAGES += "${PN}-meta"
-ALLOW_EMPTY:${PN}-meta = "1"
-
-PACKAGES_DYNAMIC = "${PN}-plugin-*"
-
-SYSTEMD_SERVICE:${PN} = "rygel.service"
-
-python populate_packages:prepend () {
- rygel_libdir = d.expand('${libdir}/rygel-${LIBV}')
- postinst = d.getVar('plugin_postinst')
- pkgs = []
-
- pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), r'librygel-(.*)\.so$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}'))
- pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), r'(.*)\.plugin$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}'))
-
- metapkg = d.getVar('PN') + '-meta'
- d.setVar('RDEPENDS:' + metapkg, ' '.join(pkgs))
-}
diff --git a/meta-multimedia/recipes-connectivity/rygel/rygel_0.42.4.bb b/meta-multimedia/recipes-connectivity/rygel/rygel_0.42.4.bb
new file mode 100644
index 0000000000..4fbdce0867
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/rygel/rygel_0.42.4.bb
@@ -0,0 +1,92 @@
+SUMMARY = "A UPnP AV media server and renderer"
+DESCRIPTION = "Rygel is a home media solution (UPnP AV MediaServer) that \
+allow you to easily share audio, video and pictures to other devices. \
+Additionally, media player software may use Rygel to become a MediaRenderer \
+that may be controlled remotely by a UPnP or DLNA Controller."
+HOMEPAGE = "http://live.gnome.org/Rygel"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "libxml2 glib-2.0 gssdp gupnp gupnp-av gupnp-dlna gstreamer1.0 \
+ gstreamer1.0-plugins-base libgee libsoup libmediaart-2.0 \
+ libunistring sqlite3 intltool-native gst-editing-services"
+
+RDEPENDS:${PN} = "gstreamer1.0-plugins-base-playback shared-mime-info"
+RRECOMMENDS:${PN} = "rygel-plugin-media-export"
+
+inherit gnomebase features_check vala gobject-introspection gettext systemd
+
+# gobject-introspection is mandatory for libmediaart-2.0 and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data x11"
+
+SRC_URI[archive.sha256sum] = "6310dfaa2d332b66119b9b020fad6a4bd27d9bc61faf780ca5ca0b62813303f7"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
+EXTRA_OEMESON = "-Dengines=gstreamer -Dplugins=${@strip_comma('${RYGEL_PLUGINS}')}"
+PACKAGECONFIG:append = "${@bb.utils.contains("DISTRO_FEATURES", "x11", " gtk+3", "", d)}"
+
+PACKAGECONFIG ?= "external mpris ruih gst-launch"
+
+PACKAGECONFIG[external] = ""
+PACKAGECONFIG[mpris] = ""
+PACKAGECONFIG[ruih] = ""
+PACKAGECONFIG[media-export] = ""
+PACKAGECONFIG[gst-launch] = ""
+PACKAGECONFIG[lms] = ""
+PACKAGECONFIG[tracker3] = ""
+PACKAGECONFIG[gtk+3] = ",-Dgtk=disabled,gtk+3"
+
+RYGEL_PLUGINS = ""
+RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'external', ',external', '', d)}"
+RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'mpris', ',mpris', '', d)}"
+RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'ruih', ',ruih', '', d)}"
+RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'gst-launch', ',gst-launch', '', d)}"
+RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'lms', ',lms', '', d)}"
+RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'media-export', ',media-export', '', d)}"
+RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'tracker3', ',tracker3', '', d)}"
+RYGEL_PLUGINS:append ="${@bb.utils.contains('PACKAGECONFIG', 'playbin', ',playbin', '', d)}"
+
+LIBV = "2.8"
+
+CFLAGS:append:toolchain-clang = " -Wno-error=int-conversion"
+
+def strip_comma(s):
+ return s.strip(',')
+
+do_install:append() {
+ # Remove .la files for loadable modules
+ rm -f ${D}/${libdir}/rygel-${LIBV}/engines/*.la
+ rm -f ${D}/${libdir}/rygel-${LIBV}/plugins/*.la
+ if [ -e ${D}${nonarch_libdir}/systemd/user/rygel.service ]; then
+ mkdir -p ${D}${systemd_unitdir}/system
+ mv ${D}${nonarch_libdir}/systemd/user/rygel.service ${D}${systemd_unitdir}/system
+ rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}/systemd/user \
+ ${D}${nonarch_libdir}/systemd \
+ ${D}${nonarch_libdir}
+ fi
+}
+
+FILES:${PN} += "${libdir}/rygel-${LIBV}/engines ${datadir}/dbus-1 ${datadir}/icons"
+FILES:${PN}-dbg += "${libdir}/rygel-${LIBV}/engines/.debug ${libdir}/rygel-${LIBV}/plugins/.debug"
+
+PACKAGES += "${PN}-meta"
+ALLOW_EMPTY:${PN}-meta = "1"
+
+PACKAGES_DYNAMIC = "${PN}-plugin-*"
+
+SYSTEMD_SERVICE:${PN} = "rygel.service"
+
+python populate_packages:prepend () {
+ rygel_libdir = d.expand('${libdir}/rygel-${LIBV}')
+ postinst = d.getVar('plugin_postinst')
+ pkgs = []
+
+ pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), r'librygel-(.*)\.so$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}'))
+ pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), r'(.*)\.plugin$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}'))
+
+ metapkg = d.getVar('PN') + '-meta'
+ d.setVar('RDEPENDS:' + metapkg, ' '.join(pkgs))
+}
diff --git a/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb b/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb
index 7c09e39d66..8fbf9ab2c8 100644
--- a/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb
+++ b/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb
@@ -8,8 +8,8 @@ DEPENDS = "libusb1 openssl pcsc-lite"
SRC_URI = "svn://www.streamboard.tv/svn/oscam;module=trunk;protocol=http \
"
-SRCREV = "11491"
-PV = "1.10+${SRCPV}"
+SRCREV = "11718"
+PV = "1.10+"
S = "${WORKDIR}/trunk"
@@ -17,3 +17,6 @@ inherit cmake
EXTRA_OECMAKE = "-DDEFAULT_CS_CONFDIR=${sysconfdir} -DCMAKE_BUILD_TYPE=Debug"
+do_configure:append() {
+ sed -i -e '1 s|${TOPDIR}|<TOPDIR>|g' ${B}/config.c
+}
diff --git a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch b/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch
index ff2e789e32..c6e20b75e8 100644
--- a/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch
+++ b/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch
@@ -33,12 +33,12 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
}
--- a/src/epggrab/module/psip.c
+++ b/src/epggrab/module/psip.c
-@@ -383,14 +383,14 @@ _psip_eit_callback_channel
+@@ -223,14 +223,14 @@ _psip_eit_callback_channel
- tvhtrace(LS_PSIP, " %03d: [%s] eventid 0x%04x at %"PRItime_t", duration %d, title: '%s' (%d bytes)",
+ tvhtrace(LS_PSIP, " %03d: [%s] eventid 0x%04x at %"PRItime_t", duration %d, etmlocation %x, title: '%s' (%d bytes)",
i, ch ? channel_get_name(ch, channel_blank_name) : "(null)",
-- eventid, start, length,
-+ eventid, (intmax_t)start, length,
+- eventid, start, length, etmlocation,
++ eventid, (intmax_t)start, length, etmlocation,
lang_str_get(title, NULL), titlelen);
save2 = changes2 = 0;
diff --git a/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb b/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
index b3d9d6bf7d..2d79777001 100644
--- a/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
+++ b/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
@@ -12,8 +12,8 @@ SRC_URI = "git://github.com/tvheadend/tvheadend.git;branch=master;protocol=https
file://0001-adjust-for-64bit-time_t.patch \
"
-SRCREV = "9a51cea492e4a5579ca3ddf9233fecfa419de078"
-PV = "4.3+git${SRCPV}"
+SRCREV = "cc602833684953fc3e6f1c89d4f08f6dfef179e3"
+PV = "4.3+git"
PKGV = "4.3+git${GITPKGV}"
S = "${WORKDIR}/git"
@@ -31,3 +31,6 @@ EXTRA_OECONF:append:libc-musl = " --disable-execinfo"
EXTRA_OEMAKE = "CFLAGS_NO_WERROR=yes"
CLEANBROKEN = "1"
+do_configure:append() {
+ sed -i -e "s|${WORKDIR}|<TOPDIR>|g" ${B}/build.linux/build.c
+}
diff --git a/meta-multimedia/recipes-mkv/libebml/libebml/ldflags.patch b/meta-multimedia/recipes-mkv/libebml/libebml/ldflags.patch
deleted file mode 100644
index a01c7544b6..0000000000
--- a/meta-multimedia/recipes-mkv/libebml/libebml/ldflags.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Use LD and obey LDFLAGS
-
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
-Upstream-Status: Pending
-
-diff --git a/make/linux/Makefile b/make/linux/Makefile
-index 391b6e3..a2ac13e 100644
---- a/make/linux/Makefile
-+++ b/make/linux/Makefile
-@@ -64,6 +64,7 @@ objects_so:=$(patsubst %$(EXTENSION),%.lo,$(sources))
- WARNINGFLAGS=-Wall -Wextra -Wno-unknown-pragmas -ansi -fno-gnu-keywords -Wshadow
- COMPILEFLAGS=$(WARNINGFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(DEBUGFLAGS) $(INCLUDE)
- DEPENDFLAGS = $(CXXFLAGS) $(INCLUDE)
-+LINKFLAGS=$(LDFLAGS)
-
- ifeq (Darwin,$(shell uname -s))
- all: staticlib
-@@ -91,7 +92,7 @@ $(LIBRARY): $(objects)
- $(RANLIB) $@
-
- $(LIBRARY_SO): $(objects_so)
-- $(CXX) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so)
-+ $(LD) $(LINKFLAGS) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so)
- rm -f $(LIBRARY_SO)
- ln -s $(LIBRARY_SO_VER) $(LIBRARY_SO)
-
-diff --git a/make/mingw32/Makefile b/make/mingw32/Makefile
-index e5986ef..6ca16aa 100644
---- a/make/mingw32/Makefile
-+++ b/make/mingw32/Makefile
-@@ -18,6 +18,7 @@ DEBUGFLAGS=-g -DDEBUG
- endif
- CROSS =
- CXX = $(CROSS)g++
-+LD = $(CXX)
- CC = $(CROSS)gcc
- WINDRES = $(CROSS)windres
- RANLIB = $(CROSS)ranlib
-@@ -33,6 +34,7 @@ LIBS = libebml.a
- endif
- INCS = -I"$(shell pwd)/../.."
- COMPILEFLAGS = $(DEBUGFLAGS) $(INCS) $(DLLFLAGS) $(CXXFLAGS)
-+LINKFLAGS = $(LDFLAGS)
-
- .PHONY: all all-before all-after clean clean-custom
-
-@@ -54,7 +56,7 @@ libebml.a: $(OBJ)
- $(RANLIB) $@
-
- libebml.dll: $(OBJ)
-- $(CXX) -shared -Wl,--export-all -Wl,--out-implib=$@.a -o $@ $(OBJ)
-+ $(LD) $(LINKFLAGS) -shared -Wl,--export-all -Wl,--out-implib=$@.a -o $@ $(OBJ)
-
- depend:
- @echo Calculating dependecies:
---
-2.8.0
diff --git a/meta-multimedia/recipes-mkv/libebml/libebml/override-uname.patch b/meta-multimedia/recipes-mkv/libebml/libebml/override-uname.patch
deleted file mode 100644
index 57eb3450d6..0000000000
--- a/meta-multimedia/recipes-mkv/libebml/libebml/override-uname.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Allow override of the 'uname -s' for cross-compilation
-
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
-Upstream-Status: Pending
-
-diff --git a/make/linux/Makefile b/make/linux/Makefile
-index a2ac13e..4188bee 100644
---- a/make/linux/Makefile
-+++ b/make/linux/Makefile
-@@ -9,9 +9,11 @@
- # 'make DEBUG=yes'.
- #
-
-+TARGET_OS ?= $(shell uname -s)
-+
- # Paths
- # BeOS wants the libs and headers in /boot/home/config
--ifeq (BeOS,$(shell uname -s))
-+ifeq (BeOS,$(TARGET_OS))
- prefix=/boot/home/config
- else
- prefix=/usr/local
-@@ -66,7 +68,7 @@ COMPILEFLAGS=$(WARNINGFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(DEBUGFLAGS) $(INCLUDE)
- DEPENDFLAGS = $(CXXFLAGS) $(INCLUDE)
- LINKFLAGS=$(LDFLAGS)
-
--ifeq (Darwin,$(shell uname -s))
-+ifeq (Darwin,$(TARGET_OS))
- all: staticlib
- else
- all: staticlib sharedlib
-@@ -116,7 +118,7 @@ depend:
- $(CXX) $(DEPENDFLAGS) -MM -MT $$o $$i >> .depend ; \
- done
-
--ifeq (Darwin,$(shell uname -s))
-+ifeq (Darwin,$(TARGET_OS))
- install: install_staticlib install_headers
- else
- install: install_staticlib install_sharedlib install_headers
---
-2.8.0
diff --git a/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb b/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb
deleted file mode 100644
index 744486fa2a..0000000000
--- a/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb
+++ /dev/null
@@ -1,59 +0,0 @@
-SUMMARY = "libebml is a C++ libary to parse EBML files"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=7fbc338309ac38fefcd64b04bb903e34"
-
-SRC_URI = "\
- http://dl.matroska.org/downloads/libebml/libebml-${PV}.tar.bz2 \
- file://ldflags.patch \
- file://override-uname.patch \
-"
-SRC_URI[md5sum] = "efec729bf5a51e649e1d9d1f61c0ae7a"
-SRC_URI[sha256sum] = "83b074d6b62715aa0080406ea84d33df2e44b5d874096640233a4db49b8096de"
-
-inherit dos2unix
-
-LIBEBML_OS = "Unknown"
-LIBEBML_OS_linux = "Linux"
-LIBEBML_OS:darwin = "Darwin"
-LIBEBML_OS:mingw32 = "Windows"
-
-EXTRA_OEMAKE = "\
- 'TARGET_OS=${LIBEBML_OS}' \
- \
- 'CXX=${CXX}' \
- 'LD=${CXX}' \
- 'AR=${AR}' \
- 'RANLIB=${RANLIB}' \
- \
- 'DEBUGFLAGS=' \
- 'CPPFLAGS=${CPPFLAGS}' \
- 'CXXFLAGS=${CXXFLAGS}' \
- 'LDFLAGS=${LDFLAGS}' \
- \
- 'prefix=${prefix}' \
- 'libdir=${libdir}' \
- 'includedir=${includedir}/ebml' \
-"
-
-do_compile () {
- oe_runmake -C make/linux
-}
-
-do_install() {
- cd ${S}/make/linux
-
- install -d ${D}${libdir}
- install -m 0644 libebml.a ${D}${libdir}
- install -m 0755 libebml.so.* ${D}${libdir}
- cp -R --no-dereference --preserve=mode,links -v libebml.so ${D}${libdir}
-
- install -d ${D}${includedir}/ebml
- for i in ../../ebml/*.h; do
- install -m 0644 $i ${D}${includedir}/ebml
- done
-
- install -d ${D}${includedir}/ebml/c
- for i in ../../ebml/c/*.h; do
- install -m 0644 $i ${D}${includedir}/ebml/c
- done
-}
diff --git a/meta-multimedia/recipes-mkv/libebml/libebml_1.4.5.bb b/meta-multimedia/recipes-mkv/libebml/libebml_1.4.5.bb
new file mode 100644
index 0000000000..6803806063
--- /dev/null
+++ b/meta-multimedia/recipes-mkv/libebml/libebml_1.4.5.bb
@@ -0,0 +1,14 @@
+SUMMARY = "C++ library to parse EBML files"
+HOMEPAGE = "https://github.com/Matroska-Org/libebml"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "git://github.com/Matroska-Org/libebml.git;branch=v1.x;protocol=https"
+SRCREV = "1878e784321673561039a6a37076b2736f4dc98f"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig cmake dos2unix
+
+EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON"
+
diff --git a/meta-multimedia/recipes-mkv/libmatroska/libmatroska/0001-Makefile-Use-LINKFLAGS-during-link-step.patch b/meta-multimedia/recipes-mkv/libmatroska/libmatroska/0001-Makefile-Use-LINKFLAGS-during-link-step.patch
deleted file mode 100644
index 90e997561a..0000000000
--- a/meta-multimedia/recipes-mkv/libmatroska/libmatroska/0001-Makefile-Use-LINKFLAGS-during-link-step.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From f0c879097c331d1dabe6ee92b583a8badb62ea6d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 18 Mar 2017 08:26:35 -0700
-Subject: [PATCH] Makefile: Use LINKFLAGS during link step
-
-Adds much needed GNU_HASH section into the .so
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- make/linux/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/make/linux/Makefile b/make/linux/Makefile
-index 3ca7b0f..b5c9645 100644
---- a/make/linux/Makefile
-+++ b/make/linux/Makefile
-@@ -104,7 +104,7 @@ $(LIBRARY): $(objects)
- $(RANLIB) $@
-
- $(LIBRARY_SO): $(objects_so)
-- $(CXX) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so) -lebml
-+ $(CXX) $(LINKFLAGS) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so) -lebml
- rm -f $(LIBRARY_SO)
- ln -s $(LIBRARY_SO_VER) $(LIBRARY_SO)
-
---
-2.12.0
-
diff --git a/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb b/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb
deleted file mode 100644
index 890be69269..0000000000
--- a/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "libmatroska is a C++ libary to parse Matroska files (.mkv and .mka)"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "libebml"
-
-SRC_URI = "http://dl.matroska.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2 \
- file://0001-Makefile-Use-LINKFLAGS-during-link-step.patch \
- "
-SRC_URI[md5sum] = "f61b2e5086f4bb9d24a43cc8af43a719"
-SRC_URI[sha256sum] = "086f21873e925679babdabf793c3bb85c353d0cd79423543a3355e08e8a4efb7"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS="
-
-do_compile() {
- cd ${S}/make/linux
- oe_runmake CROSS="${TARGET_PREFIX}"
-}
-
-do_install() {
- cd ${S}/make/linux
-
- install -d ${D}${libdir}
- install -m 0644 libmatroska.a ${D}${libdir}
- install -m 0755 libmatroska.so.* ${D}${libdir}
- cp -R --no-dereference --preserve=mode,links -v libmatroska.so ${D}${libdir}
-
- install -d ${D}${includedir}/matroska
- for i in ../../matroska/*.h; do
- install -m 0644 $i ${D}${includedir}/matroska
- done
-
- install -d ${D}${includedir}/matroska/c
- for i in ../../matroska/c/*.h; do
- install -m 0644 $i ${D}${includedir}/matroska/c
- done
-}
diff --git a/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.7.1.bb b/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.7.1.bb
new file mode 100644
index 0000000000..16862e690e
--- /dev/null
+++ b/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.7.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "C++ library to parse and create Matroska files(.mkv and .mka)"
+HOMEPAGE = "https://github.com/Matroska-Org/libmatroska"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "libebml"
+
+SRC_URI = "git://github.com/Matroska-Org/libmatroska.git;branch=v1.x;protocol=https"
+SRCREV = "f5315fddda2d434e47035c038549a808d8b8eac7"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig cmake
+
+#Static library enabled by default. It has been added in case you want to use it dynamically.
+#EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON"
diff --git a/meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch b/meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch
index 100507cdec..8a8350ec57 100644
--- a/meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch
+++ b/meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch
@@ -1,6 +1,6 @@
-From c33e07f78982acfb0574a84fb523f8591e55c50e Mon Sep 17 00:00:00 2001
+From 35c1ed84a158354c37e329bad0e236b156836ac7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 11 Sep 2022 19:46:28 -0700
+Date: Tue, 23 May 2023 14:59:26 -0700
Subject: [PATCH] subpel_variance_neon: Provide prototypes for missing
functions
@@ -11,18 +11,19 @@ larations [-Wimplicit-function-declaration]
| ^
Upstream-Status: Pending
+
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- aom_dsp/arm/subpel_variance_neon.c | 16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
+ aom_dsp/arm/subpel_variance_neon.c | 76 ++++++++++++++++++++++++++++++
+ 1 file changed, 76 insertions(+)
diff --git a/aom_dsp/arm/subpel_variance_neon.c b/aom_dsp/arm/subpel_variance_neon.c
-index 4ecf891cbeb..859168ea0c5 100644
+index a05886066c4..ea6bada224d 100644
--- a/aom_dsp/arm/subpel_variance_neon.c
+++ b/aom_dsp/arm/subpel_variance_neon.c
-@@ -20,6 +20,22 @@
- #include "aom_dsp/aom_filter.h"
+@@ -20,6 +20,82 @@
#include "aom_dsp/variance.h"
+ #include "aom_dsp/arm/mem_neon.h"
+extern unsigned int aom_variance8x8_neon(const uint8_t *a, int a_stride,
+ const uint8_t *b, int b_stride,
@@ -32,17 +33,77 @@ index 4ecf891cbeb..859168ea0c5 100644
+ const uint8_t *b, int b_stride,
+ unsigned int *sse);
+
++extern unsigned int aom_variance16x32_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance16x64_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance32x8_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance32x16_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
+extern unsigned int aom_variance32x32_neon(const uint8_t *a, int a_stride,
+ const uint8_t *b, int b_stride,
+ unsigned int *sse);
+
++extern unsigned int aom_variance32x64_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance32x128_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance64x8_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance64x16_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance64x32_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
+extern unsigned int aom_variance64x64_neon(const uint8_t *a, int a_stride,
+ const uint8_t *b, int b_stride,
+ unsigned int *sse);
+
- // Load 2 sets of 4 bytes when alignment is not guaranteed.
- static INLINE uint8x8_t load_unaligned_u8(const uint8_t *buf, int stride) {
- uint32_t a;
++extern unsigned int aom_variance64x128_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance128x8_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance128x16_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance128x32_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance128x64_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
++extern unsigned int aom_variance128x128_neon(const uint8_t *a, int a_stride,
++ const uint8_t *b, int b_stride,
++ unsigned int *sse);
++
+ static void var_filter_block2d_bil_w4(const uint8_t *src_ptr, uint8_t *dst_ptr,
+ int src_stride, int pixel_step,
+ int dst_height, int filter_offset) {
--
-2.37.3
+2.40.1
diff --git a/meta-multimedia/recipes-multimedia/aom/aom_3.4.0.bb b/meta-multimedia/recipes-multimedia/aom/aom_3.4.0.bb
deleted file mode 100644
index 9cd6f7a9e9..0000000000
--- a/meta-multimedia/recipes-multimedia/aom/aom_3.4.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Alliance for Open Media - AV1 Codec Library"
-DESCRIPTION = "Alliance for Open Media AV1 codec library"
-
-LICENSE = "BSD-2-Clause & AOM-Patent-License-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6ea91368c1bbdf877159435572b931f5 \
- file://PATENTS;md5=e69ad12202bd20da3c76a5d3648cfa83 \
- "
-
-SRC_URI = "git://aomedia.googlesource.com/aom;protocol=https;branch=main \
- file://0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch \
- "
-
-SRCREV = "fd0c9275d36930a6eea6d3c35972e7cf9c512944"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
-DEPENDS = " yasm-native"
-
-EXTRA_OECMAKE = " -DBUILD_SHARED_LIBS=1 -DENABLE_TESTS=0 \
- -DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl \
- "
-
-CFLAGS:append:libc-musl = " -D_GNU_SOURCE"
-EXTRA_OECMAKE:append:arm = " ${@bb.utils.contains("TUNE_FEATURES","neon","-DENABLE_NEON=ON","-DENABLE_NEON=OFF",d)}"
diff --git a/meta-multimedia/recipes-multimedia/aom/aom_3.7.0.bb b/meta-multimedia/recipes-multimedia/aom/aom_3.7.0.bb
new file mode 100644
index 0000000000..776dfa8783
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/aom/aom_3.7.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Alliance for Open Media - AV1 Codec Library"
+DESCRIPTION = "Alliance for Open Media AV1 codec library"
+
+LICENSE = "BSD-2-Clause & AOM-Patent-License-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6ea91368c1bbdf877159435572b931f5 \
+ file://PATENTS;md5=a111d47497d3bb49e04eef71377eb8ba \
+ "
+SRCREV = "6054fae218eda6e53e1e3b4f7ef0fff4877c7bf1"
+SRC_URI = "git://aomedia.googlesource.com/aom;protocol=https;branch=main \
+ file://0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+DEPENDS = " nasm-native"
+
+EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=1 -DENABLE_TESTS=0 \
+ -DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl \
+ "
+CMAKE_VERBOSE = "VERBOSE=1"
+CFLAGS:append:libc-musl = " -D_GNU_SOURCE"
+EXTRA_OECMAKE:append:arm = " -DENABLE_NEON=OFF"
+
+do_generate_toolchain_file:append() {
+ echo "set(AOM_AS_FLAGS --debug-prefix-map ${S}=${TARGET_DBGSRC_DIR})" >> ${WORKDIR}/toolchain.cmake
+}
diff --git a/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb b/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb
index ab0d8bca9f..5007c88fff 100644
--- a/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb
+++ b/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8449a4f133a93f6254b496d4fb476e83"
SRC_URI = "git://github.com/Arkq/bluez-alsa.git;protocol=https;branch=master"
SRCREV = "dd05a1baa261b94da9ba977b5e3392c8b4dc7a5e"
-PV = "4.0.0+git${SRCPV}"
+PV = "4.0.0+git"
S = "${WORKDIR}/git"
diff --git a/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch b/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch
index 1087b0e79c..528bd153dd 100644
--- a/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch
+++ b/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch
@@ -5,6 +5,7 @@ Subject: [PATCH] basic.h: Use c99 supported stdint types
include stdint.h for getting the definitions for int types
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
basics.h | 17 +++++++++--------
diff --git a/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch b/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch
index 3abd381891..6e34a8a984 100644
--- a/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch
+++ b/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch
@@ -1,7 +1,8 @@
Change the order of linker flags such that -shared is appearig after -pie/-fpie
this helps in building the package when secuiry flags are enabled
--Khem
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: caps-0.9.24/Makefile
===================================================================
diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch
index 682cf6e033..0451a453a3 100644
--- a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch
+++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch
@@ -8,6 +8,7 @@ Author: Monty <paranoia@xiph.org>
Patch from debian
http://sources.debian.net/src/cdparanoia/3.10.2%2Bdebian-11/debian/patches/04-endian.patch
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
interface/interface.c | 2 +-
diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch
index 7699017f77..b364a3b2a7 100644
--- a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch
+++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch
@@ -5,6 +5,7 @@ Subject: [PATCH] utils: Use c99 compiler independent types
Make it portable across different platforms
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
utils.h | 13 +++++++------
diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch
index 024479ca7d..ea30559384 100644
--- a/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch
+++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch
@@ -5,6 +5,7 @@ Subject: [PATCH 2/2] Fix printf format errors
error: format not a string literal and no format arguments
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
main.c | 4 ++--
diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch
index 9b268b7ed6..2738ba70e8 100644
--- a/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch
+++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch
@@ -1,3 +1,8 @@
+Fix build on aarch64
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
Index: cdparanoia-III-10.2/configure.in
===================================================================
--- cdparanoia-III-10.2.orig/configure.in
diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch
index 06ee82099d..96c5dda31c 100644
--- a/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch
+++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch
@@ -1,3 +1,8 @@
+Fix build out of tree builds
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
Index: cdparanoia-III-10.2/Makefile.in
===================================================================
--- cdparanoia-III-10.2.orig/Makefile.in
diff --git a/meta-multimedia/recipes-multimedia/dav1d/dav1d_1.4.1.bb b/meta-multimedia/recipes-multimedia/dav1d/dav1d_1.4.1.bb
new file mode 100644
index 0000000000..08607acd85
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dav1d/dav1d_1.4.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "dav1d AV1 decoder"
+DESCRIPTION = "Targeted to be small, portable and fast."
+HOMEPAGE = "https://code.videolan.org/videolan/dav1d"
+SECTION = "multimedia"
+LICENSE = "BSD-2-Clause"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=c8055cfe7548dfdaa3a6dc45d8793669"
+
+SRC_URI = "git://code.videolan.org/videolan/dav1d.git;protocol=https;branch=master"
+SRCREV = "872e470ebf3e65b0b956f3a70329e885a2df1c2a"
+
+S = "${WORKDIR}/git"
+
+DEPENDS:append:x86 = " nasm-native"
+DEPENDS:append:x86-64 = " nasm-native"
+
+inherit meson pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb
index 033854f19e..bed5af9bf3 100644
--- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb
+++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb
@@ -16,3 +16,5 @@ inherit autotools pkgconfig
FILES:${PN} += "${libdir}/dleyna-1.0/connectors/*.so"
FILES:${PN}-dev += "${libdir}/dleyna-1.0/connectors/*.la"
FILES:${PN}-dbg += "${libdir}/dleyna-1.0/connectors/.debug/*.so"
+
+SKIP_RECIPE[dleyna-connector-dbus] ?= "Upstream is dead moreover needs porting to work with latest gupnp >= 1.2"
diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb
index eafbb50db4..8aaab7893e 100644
--- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb
+++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb
@@ -11,10 +11,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
DEPENDS = "glib-2.0 gupnp"
-PV .= "+git${SRCPV}"
+PV .= "+git"
SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https"
SRCREV = "1c6853f5bc697dc0a8774fd70dbc915c4dbe7c5b"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
+
+SKIP_RECIPE[dleyna-core] ?= "Upstream is dead moreover needs porting to work with latest gupnp >= 1.2"
diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb
index 3e43c0d2a7..a385a50de7 100644
--- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb
+++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb
@@ -22,4 +22,6 @@ inherit autotools pkgconfig
CFLAGS += " -I${S}"
FILES:${PN} += "${datadir}/dbus-1"
-FILES:${PN}-dev += "${libdir}/${PN}/*.so"
+FILES:${PN}-dev += "${libdir}/${BPN}/*.so"
+
+SKIP_RECIPE[dleyna-renderer] ?= "Upstream is dead moreover needs porting to work with latest gupnp >= 1.2"
diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb
index b25e446c41..b0a347f252 100644
--- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb
+++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 libxml2 dleyna-core"
RDEPENDS:${PN} = "dleyna-connector-dbus"
-PV .= "+git${SRCPV}"
+PV .= "+git"
SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https"
SRCREV = "eb895ae82715e9889a948ffa810c0f828b4f4c76"
S = "${WORKDIR}/git"
@@ -19,4 +19,6 @@ S = "${WORKDIR}/git"
inherit autotools pkgconfig
FILES:${PN} += "${datadir}/dbus-1"
-FILES:${PN}-dev += "${libdir}/${PN}/*.so"
+FILES:${PN}-dev += "${libdir}/${BPN}/*.so"
+
+SKIP_RECIPE[dleyna-server] ?= "Upstream is dead moreover needs porting to work with latest gupnp >= 1.2"
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb b/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb
index 90a69e5e23..542ad3487b 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb
@@ -96,7 +96,4 @@ python populate_packages:prepend () {
do_split_packages(d, dvb_libdir, r'^lib(.*)\.so\.*', 'lib%s', 'DVB %s library', extra_depends='', allow_links=True)
}
-INSANE_SKIP:${PN} = "ldflags"
-INSANE_SKIP:${PN}-dev = "ldflags"
-
TARGET_CC_ARCH += "${LDFLAGS}"
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch
index 498607d97d..f3d14354b4 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch
@@ -5,6 +5,7 @@ symbols. However, when cross-compiling, the include path points
somewhere else. Allow the user to pass CROSS_ROOT to point to the
root of the cross-compilation environment.
+Upstream-Status: Inappropriate [Cross-compile specific]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
diff -rup dvb-apps-83c746462ccb.orig/util/av7110_loadkeys/generate-keynames.sh dvb-apps-83c746462ccb/util/av7110_loadkeys/generate-keynames.sh
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch
index e89f9a3cdc..8ff1e029b0 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch
@@ -6,6 +6,7 @@ Subject: [PATCH] dvbdate: Remove Obsoleted stime API calls
stime() has been deprecated in glibc 2.31+ its recommended to
replaced with clock_settime()
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
util/dvbdate/dvbdate.c | 5 ++++-
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch
index 4dc7c68ac2..ce51084c97 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch
@@ -6,6 +6,7 @@ Subject: [PATCH] Make.rules: Handle static/shared only build
Do not build .a library when enable_static is set to "no"
Do not build .so library when enable_shared is set to "no"
+Upstream-Status: Pending
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
---
Make.rules | 10 ++++++++--
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch
index 45bfad914c..6ec5b08ccc 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch
@@ -5,6 +5,7 @@ Subject: [PATCH] Makefile: remove test
Tests needs static libraries, remove them for shared only build.
+Upstream-Status: Inappropriate [Cross-compile specific]
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
---
Makefile | 1 -
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch
index f12d35bc7e..dbb848c72c 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch
@@ -1,3 +1,8 @@
+Use -O1 with gcc > 6
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
diff -r 3d43b280298c lib/libucsi/endianops.h
--- a/lib/libucsi/endianops.h Fri Mar 21 20:26:36 2014 +0100
+++ b/lib/libucsi/endianops.h Fri Jan 19 06:56:15 2018 +0000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch
index e100c659e7..59abd32a01 100644
--- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch
@@ -1,3 +1,7 @@
+Fix build with newer than 4.14 kernels
+
+Upstream-Status: Inappropriate [OE-specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: dvb-apps/util/dst-utils/dst_test.c
===================================================================
--- dvb-apps.orig/util/dst-utils/dst_test.c
diff --git a/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb
deleted file mode 100644
index c499119c6f..0000000000
--- a/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "FDK-AAC audio codec"
-
-DESCRIPTION = "The Fraunhofer FDK AAC Codec Library for Android \
-(\"FDK AAC Codec\") is software that implements the MPEG \
-Advanced Audio Coding (\"AAC\") encoding and decoding scheme \
-for digital audio."
-
-HOMEPAGE = "https://www.iis.fraunhofer.de/en/ff/amm/impl.html"
-
-LICENSE = "Fraunhofer_FDK_AAC_Codec_Library_for_Android"
-LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://NOTICE;md5=5985e1e12f4afa710d64ed7bfd291875"
-
-SRC_URI = "git://github.com/mstorsjo/fdk-aac.git;protocol=https;branch=master"
-SRCREV = "d387d3b6ed79ff9a82c60440bdd86e6e5e324bec"
-
-S = "${WORKDIR}/git"
-
-SRC_URI[md5sum] = "fef453b5d6ee28ff302c600b8cded3e7"
-SRC_URI[sha256sum] = "07c2a64b098eb48b2e9d729d5e778c08f7d22f28adc8da7c3f92c58da1cbbd8e"
-
-inherit autotools
diff --git a/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.2.bb b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.2.bb
new file mode 100644
index 0000000000..55475b40f1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.2.bb
@@ -0,0 +1,22 @@
+SUMMARY = "FDK-AAC audio codec"
+
+DESCRIPTION = "The Fraunhofer FDK AAC Codec Library for Android \
+(\"FDK AAC Codec\") is software that implements the MPEG \
+Advanced Audio Coding (\"AAC\") encoding and decoding scheme \
+for digital audio."
+
+HOMEPAGE = "https://www.iis.fraunhofer.de/en/ff/amm/impl.html"
+
+LICENSE = "Fraunhofer_FDK_AAC_Codec_Library_for_Android"
+LICENSE_FLAGS = "commercial"
+LIC_FILES_CHKSUM = "file://NOTICE;md5=5985e1e12f4afa710d64ed7bfd291875"
+
+SRC_URI = "git://github.com/mstorsjo/fdk-aac.git;protocol=https;branch=master"
+SRCREV = "801f67f671929311e0c9952c5f92d6e147c7b003"
+
+S = "${WORKDIR}/git"
+
+SRC_URI[md5sum] = "fef453b5d6ee28ff302c600b8cded3e7"
+SRC_URI[sha256sum] = "07c2a64b098eb48b2e9d729d5e778c08f7d22f28adc8da7c3f92c58da1cbbd8e"
+
+inherit autotools
diff --git a/meta-multimedia/recipes-multimedia/flite/flite_2.2.bb b/meta-multimedia/recipes-multimedia/flite/flite_2.2.bb
index 9ab9c0208d..0a7680a8c4 100644
--- a/meta-multimedia/recipes-multimedia/flite/flite_2.2.bb
+++ b/meta-multimedia/recipes-multimedia/flite/flite_2.2.bb
@@ -6,6 +6,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b3b732d1349633a53e69356607fd2d6c"
inherit autotools-brokensep
+DEPENDS += "alsa-lib chrpath-replacement-native"
+
SRC_URI = "git://github.com/festvox/flite.git;protocol=https;branch=master"
SRCREV = "e9e2e37c329dbe98bfeb27a1828ef9a71fa84f88"
@@ -14,6 +16,12 @@ S = "${WORKDIR}/git"
EXTRA_OECONF += "--enable-shared"
+do_configure:append() {
+ sed -i '/$(INSTALL) -m 755 $(BINDIR)\/flite_time $(DESTDIR)$(INSTALLBINDIR)/d' ${S}/main/Makefile
+}
+
do_install:append() {
chown -R root:root ${D}${libdir}/*
}
+# | make[1]: *** No rule to make target 'flite_voice_list.c', needed by 'all'. Stop.
+PARALLEL_MAKE = ""
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth-native_git.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth-native_git.bb
deleted file mode 100644
index a95c4c42a8..0000000000
--- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth-native_git.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require ${BPN}.inc
-
-inherit native
-
-OECMAKE_SOURCEPATH = "${S}/src/gentables"
-
-do_install() {
- install -d ${D}/${bindir}
- install -m 755 ${B}/make_tables.exe ${D}/${bindir}/
-}
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc
deleted file mode 100644
index 14d09e5f0b..0000000000
--- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Fluidsynth is a software synthesizer"
-HOMEPAGE = "http://www.fluidsynth.org/"
-SECTION = "libs/multimedia"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594"
-
-SRC_URI = "git://github.com/FluidSynth/fluidsynth.git;branch=2.2.x;protocol=https"
-SRCREV = "8b00644751578ba67b709a827cbe5133d849d339"
-S = "${WORKDIR}/git"
-PV = "2.2.6"
-
-inherit cmake pkgconfig lib_package
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch
deleted file mode 100644
index cc73bdb1d9..0000000000
--- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 81ea820b155e887b13ea5986c3407cf93b2737f6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Wed, 2 Jan 2019 18:42:46 +0100
-Subject: [PATCH] Do not build gentables helper - we have to use native variant
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- src/CMakeLists.txt | 23 +----------------------
- 1 file changed, 1 insertion(+), 22 deletions(-)
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 356bb734..58ff7635 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -399,25 +399,4 @@ else ( MACOSX_FRAMEWORK )
- install ( FILES ${public_main_HEADER} DESTINATION ${INCLUDE_INSTALL_DIR} )
- endif ( MACOSX_FRAMEWORK )
-
--# ******* Auto Generated Lookup Tables ******
--
--include(ExternalProject)
--
--set (GENTAB_SDIR ${CMAKE_CURRENT_SOURCE_DIR}/gentables)
--set (GENTAB_BDIR ${CMAKE_CURRENT_BINARY_DIR}/gentables)
--
--# Use external project to ensure that cmake uses the host compiler when building make_tables.exe
--# To fix cross-compiling fluidsynth from Win32 to ARM (using vcpkg), we need to pass the current generator
--# on to the external project, otherwise (for some unknown reason) the target compiler will be used rather
--# than the host compiler.
--ExternalProject_Add(gentables
-- DOWNLOAD_COMMAND ""
-- SOURCE_DIR ${GENTAB_SDIR}
-- BINARY_DIR ${GENTAB_BDIR}
-- CONFIGURE_COMMAND
-- "${CMAKE_COMMAND}" -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE} -G "${CMAKE_GENERATOR}" -B "${GENTAB_BDIR}" "${GENTAB_SDIR}"
-- BUILD_COMMAND
-- "${CMAKE_COMMAND}" --build "${GENTAB_BDIR}"
-- INSTALL_COMMAND ${GENTAB_BDIR}/make_tables.exe "${CMAKE_BINARY_DIR}/"
--)
--add_dependencies(libfluidsynth-OBJ gentables)
-+
---
-2.21.1
-
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_2.3.4.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_2.3.4.bb
new file mode 100644
index 0000000000..dc05832e80
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_2.3.4.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Fluidsynth is a software synthesizer"
+HOMEPAGE = "http://www.fluidsynth.org/"
+SECTION = "libs/multimedia"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594"
+
+DEPENDS = "glib-2.0"
+
+SRC_URI = " \
+ git://github.com/FluidSynth/fluidsynth.git;branch=master;protocol=https \
+ file://0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch \
+ file://0003-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch \
+"
+SRCREV = "5ecdc4568e45123216c6888892caad07918ef127"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig lib_package
+
+EXTRA_OECMAKE = "-Denable-floats=ON -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
+
+do_install:append() {
+ sed -i -e 's|${STAGING_LIBDIR}|${libdir}|g' ${D}${libdir}/pkgconfig/fluidsynth.pc
+ sed -i -e 's|${STAGING_LIBDIR}|${libdir}|g' ${D}${libdir}/cmake/fluidsynth/FluidSynthTargets.cmake
+}
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio pipewire systemd alsa dbus', d)}"
+PACKAGECONFIG[alsa] = "-Denable-alsa=ON,-Denable-alsa=OFF,alsa-lib"
+PACKAGECONFIG[dbus] = "-Denable-dbus=ON,-Denable-dbus=OFF,dbus"
+PACKAGECONFIG[jack] = "-Denable-jack=ON,-Denable-jack=OFF,jack"
+PACKAGECONFIG[oss] = "-Denable-oss=ON,-Denable-oss=OFF"
+PACKAGECONFIG[pipewire] = "-Denable-pipewire=ON,-Denable-pipewire=OFF,pipewire"
+PACKAGECONFIG[portaudio] = "-Denable-portaudio=ON,-Denable-portaudio=OFF,portaudio-v19"
+PACKAGECONFIG[profiling] = "-Denable-profiling=ON,-Denable-profiling=OFF"
+PACKAGECONFIG[pulseaudio] = "-Denable-pulseaudio=ON,-Denable-pulseaudio=OFF,pulseaudio"
+PACKAGECONFIG[readline] = "-Denable-readline=ON,-Denable-readline=OFF,readline"
+PACKAGECONFIG[sdl] = "-Denable-sdl2=ON,-Denable-sdl2=OFF,libsdl2"
+PACKAGECONFIG[sndfile] = "-Denable-libsndfile=ON,-Denable-libsndfile=OFF,libsndfile1"
+PACKAGECONFIG[systemd] = "-Denable-systemd=ON,-Denable-systemd=OFF,systemd"
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb
deleted file mode 100644
index 984f37b756..0000000000
--- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-require ${BPN}.inc
-
-DEPENDS = "${BPN}-native alsa-lib ncurses glib-2.0"
-
-SRC_URI += " \
- file://0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch \
- file://0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch \
- file://0003-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch \
-"
-
-EXTRA_OECMAKE = "-Denable-floats=ON -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
-
-do_configure:append() {
- make_tables.exe ${B}/
-}
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}"
-PACKAGECONFIG[sndfile] = "-Denable-libsndfile=ON,-Denable-libsndfile=OFF,libsndfile1"
-PACKAGECONFIG[jack] = "-Denable-jack=ON,-Denable-jack=OFF,jack"
-PACKAGECONFIG[pulseaudio] = "-Denable-pulseaudio=ON,-Denable-pulseaudio=OFF,pulseaudio"
-PACKAGECONFIG[portaudio] = "-Denable-portaudio=ON,-Denable-portaudio=OFF,portaudio-v19"
-PACKAGECONFIG[profiling] = "-Denable-profiling=ON,-Denable-profiling=OFF"
-PACKAGECONFIG[readline] = "-Denable-readline=ON,-Denable-readline=OFF,readline"
diff --git a/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-with-fmt-9.0.patch b/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-with-fmt-9.0.patch
deleted file mode 100644
index 9de0e4f28e..0000000000
--- a/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-with-fmt-9.0.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From d7b8fafbc94405c20753fed569abd8878cccde89 Mon Sep 17 00:00:00 2001
-From: Felix Yan <felixonmars@archlinux.org>
-Date: Fri, 19 Aug 2022 15:22:10 +0300
-Subject: [PATCH] Fix build with fmt 9.0
-
-Fixes #2681
----
- src/database/sql_format.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/database/sql_format.h b/src/database/sql_format.h
-index 32dc00ef..e4e1909a 100644
---- a/src/database/sql_format.h
-+++ b/src/database/sql_format.h
-@@ -42,7 +42,7 @@ struct SQLIdentifier {
- template <>
- struct fmt::formatter<SQLIdentifier> : formatter<std::string_view> {
- template <typename FormatContext>
-- auto format(const SQLIdentifier& tn, FormatContext& ctx) -> decltype(ctx.out())
-+ auto format(const SQLIdentifier& tn, FormatContext& ctx) const -> decltype(ctx.out())
- {
- return format_to(ctx.out(), "{}{}{}", tn.quote_begin, tn.name, tn.quote_end);
- }
-@@ -61,7 +61,7 @@ struct ColumnUpdate {
- template <>
- struct fmt::formatter<ColumnUpdate> : formatter<std::string_view> {
- template <typename FormatContext>
-- auto format(const ColumnUpdate& a, FormatContext& ctx) -> decltype(ctx.out())
-+ auto format(const ColumnUpdate& a, FormatContext& ctx) const -> decltype(ctx.out())
- {
- return format_to(ctx.out(), "{} = {}", a.column, a.value);
- }
---
-2.38.0.rc1.362.ged0d419d3c-goog
-
diff --git a/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.11.0.bb b/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.11.0.bb
deleted file mode 100644
index 9f2f1b093e..0000000000
--- a/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.11.0.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-Description = "Gerbera - An UPnP media server"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8"
-
-SRC_URI = "git://github.com/gerbera/gerbera.git;protocol=https;branch=master \
- file://0001-Fix-build-with-fmt-9.0.patch \
- "
-
-SRCREV = "d73d8c1346213d784753c02ea771970500e0df2a"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "expat fmt spdlog pugixml libebml libmatroska zlib curl libupnp e2fsprogs sqlite3 libnsl2"
-
-SYSTEMD_SERVICE:${PN} = "gerbera.service"
-
-inherit cmake pkgconfig systemd
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=TRUE,-DWITH_SYSTEMD=FALSE,systemd"
-PACKAGECONFIG[taglib] = "-DWITH_TAGLIB=TRUE,-DWITH_TAGLIB=FALSE,taglib"
-EXTRA_OECMAKE = "-DWITH_JS=FALSE -DWITH_MAGIC=FALSE -DWITH_EXIF=FALSE -DLIBUUID_INCLUDE_DIRS=${STAGING_INCDIR} -DLIBUUID_LIBRARIES=-luuid"
-
-do_install:append() {
- install -d ${D}/root/.config/
-}
-
-FILES:${PN} += "/root/.config/"
-
-SECURITY_CFLAGS:riscv64 = "${SECURITY_NOPIE_CFLAGS}"
diff --git a/meta-multimedia/recipes-multimedia/gerbera/gerbera_2.0.0.bb b/meta-multimedia/recipes-multimedia/gerbera/gerbera_2.0.0.bb
new file mode 100644
index 0000000000..fea14fd840
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/gerbera/gerbera_2.0.0.bb
@@ -0,0 +1,30 @@
+Description = "Gerbera is a UPnP media server which allows you to stream your digital media through your home network and consume it on a variety of UPnP compatible devices."
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8"
+
+SRC_URI = "git://github.com/gerbera/gerbera.git;protocol=https;branch=master"
+SRCREV = "2f26e656b16fb86132f27d1f8d47c6055041430d"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "pugixml sqlite3 zlib fmt spdlog util-linux-libuuid libupnp libnsl2"
+
+SYSTEMD_SERVICE:${PN} = "gerbera.service"
+
+inherit cmake pkgconfig systemd
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} curl taglib inotify exif matroska magic js"
+PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=TRUE,-DWITH_SYSTEMD=FALSE,systemd"
+PACKAGECONFIG[taglib] = "-DWITH_TAGLIB=TRUE,-DWITH_TAGLIB=FALSE,taglib"
+PACKAGECONFIG[curl] = "-DWITH_CURL=TRUE,-DWITH_CURL=FALSE,curl"
+PACKAGECONFIG[inotify] = "-DWITH_INOTIFY=TRUE,-DWITH_INOTIFY=FALSE,inotify-tools"
+PACKAGECONFIG[avcodec] = "-DWITH_AVCODEC=TRUE,-DWITH_AVCODEC=FALSE,ffmpeg"
+PACKAGECONFIG[wavpack] = "-DWITH_WAVPACK=TRUE,-DWITH_WAVPACK=FALSE,wavpack"
+PACKAGECONFIG[exif] = "-DWITH_EXIF=TRUE,-DWITH_EXIF=FALSE,libexif"
+PACKAGECONFIG[exiv2] = "-DWITH_EXIV2=TRUE,-DWITH_EXIV2=FALSE,exiv2"
+PACKAGECONFIG[matroska] = "-DWITH_MATROSKA=TRUE,-DWITH_MATROSKA=FALSE,libebml libmatroska"
+PACKAGECONFIG[magic] = "-DWITH_MAGIC=TRUE,-DWITH_MAGIC=FALSE,file"
+PACKAGECONFIG[js] = "-DWITH_JS=TRUE,-DWITH_JS=FALSE,duktape"
+
+SECURITY_CFLAGS:riscv64 = "${SECURITY_NOPIE_CFLAGS}"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.8.1.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.8.1.bb
new file mode 100644
index 0000000000..dc43bed63b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.8.1.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Gst-Shark Tracers"
+DESCRIPTION = "Benchmarks and profiling tools for GStreamer"
+HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=GstShark"
+SECTION = "multimedia"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e1caa368743492879002ad032445fa97"
+
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad "
+
+SRCBRANCH ?= "master"
+
+SRCREV = "09ba05865dacd2824b5b40ab75a4b9545fcc1366"
+SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0"
+SRCREV_FORMAT = "default_common"
+SRC_URI = " \
+ git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH} \
+ git://gitlab.freedesktop.org/gstreamer/common.git;protocol=https;branch=master;destsuffix=git/common;name=common \
+ file://0001-tracers-Fix-buffer-overflow.patch \
+"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += " \
+ --disable-graphviz \
+ --enable-gtk-doc=no \
+"
+
+FILES:${PN} += "\
+ ${libdir}/gstreamer-1.0/libgstsharktracers.so \
+ ${libdir}/gstreamer-1.0/libgstsharktracers.la \
+"
+
+inherit autotools gettext pkgconfig gtk-doc
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb
deleted file mode 100644
index 4e50897de6..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Gst-Shark Tracers"
-DESCRIPTION = "Benchmarks and profiling tools for GStreamer"
-HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=GstShark"
-SECTION = "multimedia"
-LICENSE = "GPL-2.0-or-later"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=e1caa368743492879002ad032445fa97"
-
-DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad "
-
-SRCBRANCH ?= "master"
-
-PV = "0.7.3.1"
-
-SRCREV_base = "5413ef5475e5b70476c2480a75ca3746d91d4caf"
-SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0"
-SRCREV_FORMAT = "base_common"
-SRC_URI = " \
- git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH};name=base \
- git://gitlab.freedesktop.org/gstreamer/common.git;protocol=https;destsuffix=git/common;name=common;;branch=master \
- file://0001-tracers-Fix-buffer-overflow.patch \
- "
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF += " \
- --disable-graphviz \
- --enable-gtk-doc=no \
-"
-
-FILES:${PN} += "\
- ${libdir}/gstreamer-1.0/libgstsharktracers.so \
- ${libdir}/gstreamer-1.0/libgstsharktracers.la \
-"
-
-inherit autotools gettext pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch
deleted file mode 100644
index c1c88999a5..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-From eaf51d6420c63713f62025583681007c3502d387 Mon Sep 17 00:00:00 2001
-From: Carlos <carlos.rodriguez@ridgerun.com>
-Date: Fri, 15 Dec 2017 10:14:05 -0600
-Subject: [PATCH] gstd:yocto compatibility
-
----
- gstd/Makefile.am | 2 +-
- 3 files changed, 9 insertions(+), 3 deletions(-)
-
---- a/gstd/Makefile.am
-+++ b/gstd/Makefile.am
-@@ -74,7 +74,7 @@ gstd_CFLAGS = $(GST_CFLAGS) \
- -DGSTD_LOG_STATE_DIR=\"$(gstdlogstatedir)\" \
- -DGSTD_RUN_STATE_DIR=\"$(gstdrunstatedir)\"
-
--gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GIO_UNIX_LIBS) $(GJSON_LIBS) $(LIBD_LIBS) -Wl,-rpath -Wl,$(libdir)
-+gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GIO_UNIX_LIBS) $(GJSON_LIBS) $(LIBD_LIBS)
- gstd_LDADD = libgstd-core.la
-
- gstdincludedir = $(includedir)/gstd
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
index 38fafe82e4..87792491ae 100644
--- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
+++ b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
@@ -2,34 +2,39 @@ DESCRIPTION = "Gstreamer Daemon"
SUMMARY = "GStreamer framework for controlling audio and video streaming using TCP connection messages"
HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=Gstd-1.0"
SECTION = "multimedia"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c71b653a0f608a58cdc5693ae57126bc"
-DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon jansson"
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon libsoup-2.4 jansson"
SRCBRANCH ?= "master"
-SRCREV = "a6621a5778b234651aa2adbbe304d906a3fa64d1"
-SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SRCBRANCH} \
- file://0001-gstd-yocto-compatibility.patch \
- "
+SRCREV = "a011affa67f240cbc7aaff5b00fdfd6124bdaece"
+SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SRCBRANCH}"
S = "${WORKDIR}/git"
# Remove the +really when upstream version is > 1.0
-PV = "1.0+really0.8.0"
+PV = "1.0+really0.15.0"
-inherit autotools pkgconfig gettext gtk-doc
+GTKDOC_MESON_OPTION = "enable-gtk-doc"
+
+inherit meson pkgconfig gettext gtk-doc python3native python3-dir python3targetconfig
do_install:append() {
- rmdir ${D}${localstatedir}/run/${BPN} ${D}${localstatedir}/run \
- ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/log
+ rmdir ${D}${exec_prefix}${localstatedir}/run/${BPN} ${D}${exec_prefix}${localstatedir}/run \
+ ${D}${exec_prefix}${localstatedir}/log/${BPN} ${D}${exec_prefix}${localstatedir}/log \
+ ${D}${exec_prefix}${localstatedir}
rm -f ${D}${bindir}/gst-client ${D}${bindir}/gstd-client
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${sysconfdir}/tmpfiles.d
echo "d /run/${BPN} - - - -" \
> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
- echo "d /${localstatedir}/log/${BPN} 0755 root root -" \
+ echo "d ${localstatedir}/log/${BPN} 0755 root root -" \
>> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
fi
ln -sf gst-client-1.0 ${D}${bindir}/gst-client
ln -sf gst-client-1.0 ${D}${bindir}/gstd-client
}
+PACKAGES =+ "${PN}-python"
+
+FILES:${PN} += "${systemd_user_unitdir}"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*"
diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-all.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-all.bb
new file mode 100644
index 0000000000..dc76265a9b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-all.bb
@@ -0,0 +1,3 @@
+require recipes-core/images/core-image-base.bb
+
+IMAGE_INSTALL += "packagegroup-meta-multimedia"
diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb
deleted file mode 100644
index 249f989a4b..0000000000
--- a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-SUMMARY = "meta-multimedia build test image"
-
-IMAGE_INSTALL = "packagegroup-core-boot"
-
-LICENSE = "MIT"
-
-inherit core-image
diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-all.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-all.bb
new file mode 100644
index 0000000000..8accba1bff
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-all.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Recipe to trigger execution of all meta-multimedia ptest images."
+HOMEPAGE = "https://www.openembedded.org/"
+
+LICENSE = "MIT"
+
+inherit features_check nopackages
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-multimedia.inc
+
+# Include the full set of ptests
+PTESTS_META_MULTIMEDIA = "${PTESTS_FAST_META_MULTIMEDIA} ${PTESTS_SLOW_META_MULTIMEDIA} ${PTESTS_PROBLEMS_META_MULTIMEDIA}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-multimedia-image-ptest-'+x+':do_testimage' for x in d.getVar('PTESTS_META_MULTIMEDIA').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-multimedia-image-ptest-'+x+':do_build' for x in d.getVar('PTESTS_META_MULTIMEDIA').split()])}"
+
+# normally image.bbclass would do this
+EXCLUDE_FROM_WORLD = "1"
+
+python () {
+ if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
+ bb.build.addtask("do_testimage", "", "", d)
+}
diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-fast.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-fast.bb
new file mode 100644
index 0000000000..6abd1a9ea3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-fast.bb
@@ -0,0 +1,5 @@
+require meta-multimedia-image-ptest-all.bb
+
+DESCRIPTION = "Recipe to trigger execution of all fast meta-multimedia ptest images."
+
+PTESTS_META_MULTIMEDIA = "${PTESTS_FAST_META_MULTIMEDIA}"
diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest.bb
new file mode 100644
index 0000000000..887396d4cc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest.bb
@@ -0,0 +1,40 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require recipes-core/images/core-image-minimal.bb
+require conf/include/ptest-packagelists-meta-multimedia.inc
+
+SUMMARY = "meta-multimedia ptest test image"
+
+DESCRIPTION += "Also including the ${MCNAME} ptest package."
+HOMEPAGE = "https://www.openembedded.org/"
+
+PTESTS_META_MULTIMEDIA = "${PTESTS_SLOW_META_MULTIMEDIA} ${PTESTS_FAST_META_MULTIMEDIA} ${PTESTS_PROBLEMS_META_MULTIMEDIA}"
+
+IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
+
+BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_MULTIMEDIA').split()])}"
+
+# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
+# box) and explicitly add up to 1500MB.
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "324288"
+# If a particular ptest needs more space, it can be customized:
+#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
+
+# ptests need more memory than standard to avoid the OOM killer
+QB_MEM = "-m 1024"
+# If a particular ptest needs more memroy, it can be customized:
+#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
+
+TEST_SUITES = "ping ssh parselogs ptest"
+
+# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
+
+python () {
+ if not d.getVar("MCNAME"):
+ raise bb.parse.SkipRecipe("No class extension set")
+}
+
diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image.bb
deleted file mode 100644
index 9f2fda9fef..0000000000
--- a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require meta-multimedia-image-base.bb
-
-IMAGE_INSTALL += "packagegroup-meta-multimedia"
diff --git a/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb b/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb
index bc1c52ad48..bc2e858b42 100644
--- a/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb
+++ b/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb
@@ -4,7 +4,7 @@
DESCRIPTION = "libcamera image"
LICENSE = "MIT"
-require meta-multimedia-image.bb
+require meta-multimedia-image-all.bb
IMAGE_INSTALL += " \
kernel-modules \
diff --git a/meta-multimedia/recipes-multimedia/juce/projucer.inc b/meta-multimedia/recipes-multimedia/juce/projucer.inc
index feb3564633..b60cba1dd6 100644
--- a/meta-multimedia/recipes-multimedia/juce/projucer.inc
+++ b/meta-multimedia/recipes-multimedia/juce/projucer.inc
@@ -18,7 +18,8 @@ DEPENDS:append:libc-musl = " libexecinfo"
SRCREV = "2f980209cc4091a4490bb1bafc5d530f16834e58"
BRANCH = "master"
SRC_URI = "git://github.com/WeAreROLI/JUCE.git;protocol=https;branch=${BRANCH} \
-"
+ file://0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch \
+ "
S = "${WORKDIR}/git"
PV = "6.1.6"
diff --git a/meta-multimedia/recipes-multimedia/juce/projucer/0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch b/meta-multimedia/recipes-multimedia/juce/projucer/0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch
new file mode 100644
index 0000000000..3efef247ae
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/juce/projucer/0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch
@@ -0,0 +1,21 @@
+From 85822fcb87dd531d5e8ed1c8230c67bddb56f66d Mon Sep 17 00:00:00 2001
+From: reuk <reuk@users.noreply.github.com>
+Date: Wed, 6 Apr 2022 15:43:09 +0100
+Subject: [PATCH] StandardHeader: Include <utility> for GCC 12 compatibility
+
+Upstream-Status: Backport [https://github.com/juce-framework/JUCE/commit/ce8aff22c31c4d932a8414bc6f6185381dc970db]
+Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
+---
+ modules/juce_core/system/juce_StandardHeader.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/modules/juce_core/system/juce_StandardHeader.h
++++ b/modules/juce_core/system/juce_StandardHeader.h
+@@ -64,6 +64,7 @@
+ #include <typeindex>
+ #include <unordered_map>
+ #include <unordered_set>
++#include <utility>
+ #include <vector>
+ #include <set>
+
diff --git a/meta-multimedia/recipes-multimedia/libavif/libavif_1.0.1.bb b/meta-multimedia/recipes-multimedia/libavif/libavif_1.0.1.bb
new file mode 100644
index 0000000000..885758b6a4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libavif/libavif_1.0.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "This library aims to be a friendly, portable C implementation of the AV1 Image File Format"
+HOMEPAGE = "https://github.com/AOMediaCodec/libavif"
+SECTION = "libs"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c528b75b07425b5c1d2e34de98c397b5"
+
+SRC_URI = "git://github.com/AOMediaCodec/libavif.git;protocol=https;branch=v1.0.x"
+
+S = "${WORKDIR}/git"
+SRCREV = "d1c26facaf5a8a97919ceee06814d05d10e25622"
+
+DEPENDS = "dav1d"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DAVIF_CODEC_DAV1D=ON"
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
deleted file mode 100644
index 0b9f3f7a5d..0000000000
--- a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb
+++ /dev/null
@@ -1,74 +0,0 @@
-SUMMARY = "Linux libcamera framework"
-SECTION = "libs"
-
-LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
-
-LIC_FILES_CHKSUM = "\
- file://LICENSES/GPL-2.0-or-later.txt;md5=fed54355545ffd980b814dab4a3b312c \
- file://LICENSES/LGPL-2.1-or-later.txt;md5=2a4f4fd2128ea2f65047ee63fbca9f68 \
-"
-
-SRC_URI = " \
- git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master \
-"
-
-SRCREV = "acf8d028edda0a59b10e15962c2606137a4940af"
-
-PV = "202105+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls boost chrpath-native libevent"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}"
-
-PACKAGES =+ "${PN}-gst"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base"
-
-EXTRA_OEMESON = " \
- -Dpipelines=uvcvideo,simple,vimc \
- -Dipas=vimc \
- -Dv4l2=true \
- -Dcam=enabled \
- -Dlc-compliance=disabled \
- -Dtest=false \
- -Ddocumentation=disabled \
-"
-
-RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}"
-
-inherit meson pkgconfig python3native
-
-do_configure:prepend() {
- sed -i -e 's|py_compile=True,||' ${S}/utils/ipc/mojo/public/tools/mojom/mojom/generate/template_expander.py
-}
-
-do_install:append() {
- chrpath -d ${D}${libdir}/libcamera.so.0.0.0
- chrpath -d ${D}${libdir}/libcamera-base.so.0.0.0
-}
-
-addtask do_recalculate_ipa_signatures_package after do_package before do_packagedata
-do_recalculate_ipa_signatures_package() {
- local modules
- for module in $(find ${PKGD}/usr/lib/libcamera -name "*.so.sign"); do
- module="${module%.sign}"
- if [ -f "${module}" ] ; then
- modules="${modules} ${module}"
- fi
- done
-
- ${S}/src/ipa/ipa-sign-install.sh ${B}/src/ipa-priv-key.pem "${modules}"
-}
-
-FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig"
-FILES:${PN}-dev += " ${libdir}/libcamera.so"
-FILES:${PN} += " ${libdir}/libcamera.so.0"
-FILES:${PN} += " ${libdir}/libcamera.so.0.0.0"
-FILES:${PN}-dev += " ${libdir}/libcamera-base.so"
-FILES:${PN} += " ${libdir}/libcamera-base.so.0"
-FILES:${PN} += " ${libdir}/libcamera-base.so.0.0.0"
-FILES:${PN} += " ${libdir}/v4l2-compat.so"
-FILES:${PN}-gst = "${libdir}/gstreamer-1.0/libgstlibcamera.so"
-FILES:${PN} += " ${bindir}/cam"
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-ipu3-Use-posix-basename.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-ipu3-Use-posix-basename.patch
new file mode 100644
index 0000000000..9e4adf3d8d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-ipu3-Use-posix-basename.patch
@@ -0,0 +1,71 @@
+From 35d2acc61b1b27c0810a80cd21de65f29dc79df7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 24 Mar 2024 11:27:21 -0700
+Subject: [PATCH] ipu3: Use posix basename
+
+musl does not implement GNU basename extention and with latest musl
+the prototype from string.h is also removed [1] which now results in
+compile errors e.g.
+
+../git/utils/ipu3/ipu3-pack.c:21:47: error: call to undeclared function 'basename'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+
+These utilities are using this function in usage() which is used just
+before program exit. Always use the basename APIs from libgen.h which is
+posix implementation
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-March/041180.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ utils/ipu3/ipu3-pack.c | 4 ++--
+ utils/ipu3/ipu3-unpack.c | 3 ++-
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/utils/ipu3/ipu3-pack.c b/utils/ipu3/ipu3-pack.c
+index decbfc6c..23d2db8b 100644
+--- a/utils/ipu3/ipu3-pack.c
++++ b/utils/ipu3/ipu3-pack.c
+@@ -8,6 +8,7 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
++#include <libgen.h>
+ #include <stdint.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -15,9 +16,8 @@
+ #include <sys/types.h>
+ #include <unistd.h>
+
+-static void usage(const char *argv0)
++static void usage(char *argv0)
+ {
+-
+ printf("Usage: %s input-file output-file\n", basename(argv0));
+ printf("Convert unpacked RAW10 Bayer data to the IPU3 packed Bayer formats\n");
+ printf("If the output-file '-', output data will be written to standard output\n");
+diff --git a/utils/ipu3/ipu3-unpack.c b/utils/ipu3/ipu3-unpack.c
+index 9d2c1200..1505a970 100644
+--- a/utils/ipu3/ipu3-unpack.c
++++ b/utils/ipu3/ipu3-unpack.c
+@@ -8,6 +8,7 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
++#include <libgen.h>
+ #include <stdint.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -15,7 +16,7 @@
+ #include <sys/types.h>
+ #include <unistd.h>
+
+-static void usage(const char *argv0)
++static void usage(char *argv0)
+ {
+ printf("Usage: %s input-file output-file\n", basename(argv0));
+ printf("Unpack the IPU3 raw Bayer format to 16-bit Bayer\n");
+--
+2.44.0
+
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-media_device-Add-bool-return-type-to-unlock.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-media_device-Add-bool-return-type-to-unlock.patch
new file mode 100644
index 0000000000..12f034effd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-media_device-Add-bool-return-type-to-unlock.patch
@@ -0,0 +1,59 @@
+From 6914c4fd3d53c0c6ea304123bf57429bb64ec16f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Jan 2024 21:01:27 -0800
+Subject: [PATCH 1/2] media_device: Add bool return type to unlock()
+
+unlock uses lockf which is marked with __attribute__
+((warn_unused_result)) and compilers warn about it and some treat
+-Wunused-result as error with -Werror turned on, It would be good to
+check if lockf failed or succeeded, however, that piece is not changed
+with this, this fixes build with clang++ 18
+
+ ../git/src/libcamera/media_device.cpp:167:2: error: ignoring return value of function declared with 'warn_unused_result' attribute [-Werror,-Wunused-result]
+ 167 | lockf(fd_.get(), F_ULOCK, 0);
+ | ^~~~~ ~~~~~~~~~~~~~~~~~~~~~
+ 1 error generated.
+
+Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-February/040380.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/libcamera/internal/media_device.h | 2 +-
+ src/libcamera/media_device.cpp | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/include/libcamera/internal/media_device.h b/include/libcamera/internal/media_device.h
+index eb8cfde4..b09dfd16 100644
+--- a/include/libcamera/internal/media_device.h
++++ b/include/libcamera/internal/media_device.h
+@@ -33,7 +33,7 @@ public:
+ bool busy() const { return acquired_; }
+
+ bool lock();
+- void unlock();
++ bool unlock();
+
+ int populate();
+ bool isValid() const { return valid_; }
+diff --git a/src/libcamera/media_device.cpp b/src/libcamera/media_device.cpp
+index 2949816b..eaa2fdb0 100644
+--- a/src/libcamera/media_device.cpp
++++ b/src/libcamera/media_device.cpp
+@@ -159,12 +159,12 @@ bool MediaDevice::lock()
+ *
+ * \sa lock()
+ */
+-void MediaDevice::unlock()
++bool MediaDevice::unlock()
+ {
+ if (!fd_.isValid())
+- return;
++ return false;
+
+- lockf(fd_.get(), F_ULOCK, 0);
++ return lockf(fd_.get(), F_ULOCK, 0) == 0;
+ }
+
+ /**
+--
+2.43.0
+
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch
new file mode 100644
index 0000000000..c336e92548
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch
@@ -0,0 +1,43 @@
+From 11cc6dbd45f0880beea64cdc514f57484b90bc39 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 20 Feb 2024 18:44:23 -0800
+Subject: [PATCH] rpi: Use malloc instead of variable length arrays
+
+Clang-18+ diagnoses this as error
+
+| ../git/src/ipa/rpi/controller/rpi/alsc.cpp:499:10: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension] | 499 | int xLo[X], xHi[X];
+| | ^
+
+Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-February/040529.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+s
+---
+ src/ipa/rpi/controller/rpi/alsc.cpp | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/ipa/rpi/controller/rpi/alsc.cpp b/src/ipa/rpi/controller/rpi/alsc.cpp
+index 8a205c60..a7d42614 100644
+--- a/src/ipa/rpi/controller/rpi/alsc.cpp
++++ b/src/ipa/rpi/controller/rpi/alsc.cpp
+@@ -496,8 +496,8 @@ void resampleCalTable(const Array2D<double> &calTableIn,
+ * Precalculate and cache the x sampling locations and phases to save
+ * recomputing them on every row.
+ */
+- int xLo[X], xHi[X];
+- double xf[X];
++ int *xLo = (int*)malloc(X), *xHi = (int*)malloc(X);
++ double *xf = (double*)malloc(X);
+ double scaleX = cameraMode.sensorWidth /
+ (cameraMode.width * cameraMode.scaleX);
+ double xOff = cameraMode.cropX / (double)cameraMode.sensorWidth;
+@@ -539,6 +539,9 @@ void resampleCalTable(const Array2D<double> &calTableIn,
+ *(out++) = above * (1 - yf) + below * yf;
+ }
+ }
++ free(xf);
++ free(xHi);
++ free(xLo);
+ }
+
+ /* Calculate chrominance statistics (R/G and B/G) for each region. */
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0002-options-Replace-use-of-VLAs-in-C.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0002-options-Replace-use-of-VLAs-in-C.patch
new file mode 100644
index 0000000000..473820653e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0002-options-Replace-use-of-VLAs-in-C.patch
@@ -0,0 +1,128 @@
+From 6e4736180fcaffdb06acf52fd3eb50ba5baa3d2a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Jan 2024 21:04:28 -0800
+Subject: [PATCH] options: Replace use of VLAs in C++
+
+Clang++ 18 is fussy about this with new warning checks.
+
+ ../git/src/apps/common/options.cpp:882:20: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension]
+ 882 | char shortOptions[optionsMap_.size() * 3 + 2];
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Therefore replace using VLAs with alloca and malloc/free
+
+Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-February/040381.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/apps/common/options.cpp | 12 ++++++++++--
+ src/libcamera/ipc_unixsocket.cpp | 13 +++++++++----
+ 2 files changed, 19 insertions(+), 6 deletions(-)
+
+diff --git a/src/apps/common/options.cpp b/src/apps/common/options.cpp
+index 4f7e8691..3656f3c1 100644
+--- a/src/apps/common/options.cpp
++++ b/src/apps/common/options.cpp
+@@ -879,8 +879,8 @@ OptionsParser::Options OptionsParser::parse(int argc, char **argv)
+ * Allocate short and long options arrays large enough to contain all
+ * options.
+ */
+- char shortOptions[optionsMap_.size() * 3 + 2];
+- struct option longOptions[optionsMap_.size() + 1];
++ char *shortOptions = (char*)malloc(optionsMap_.size() * 3 + 2);
++ struct option *longOptions = (struct option*)malloc(sizeof(struct option) * (optionsMap_.size() + 1));
+ unsigned int ids = 0;
+ unsigned int idl = 0;
+
+@@ -935,12 +935,16 @@ OptionsParser::Options OptionsParser::parse(int argc, char **argv)
+ std::cerr << argv[optind - 1] << std::endl;
+
+ usage();
++ free(shortOptions);
++ free(longOptions);
+ return options;
+ }
+
+ const Option &option = *optionsMap_[c];
+ if (!parseValue(option, optarg, &options)) {
+ usage();
++ free(shortOptions);
++ free(longOptions);
+ return options;
+ }
+ }
+@@ -949,10 +953,14 @@ OptionsParser::Options OptionsParser::parse(int argc, char **argv)
+ std::cerr << "Invalid non-option argument '" << argv[optind]
+ << "'" << std::endl;
+ usage();
++ free(shortOptions);
++ free(longOptions);
+ return options;
+ }
+
+ options.valid_ = true;
++ free(shortOptions);
++ free(longOptions);
+ return options;
+ }
+
+diff --git a/src/libcamera/ipc_unixsocket.cpp b/src/libcamera/ipc_unixsocket.cpp
+index 1980d374..3bd861cb 100644
+--- a/src/libcamera/ipc_unixsocket.cpp
++++ b/src/libcamera/ipc_unixsocket.cpp
+@@ -8,6 +8,7 @@
+ #include "libcamera/internal/ipc_unixsocket.h"
+
+ #include <array>
++#include <cstdint>
+ #include <poll.h>
+ #include <string.h>
+ #include <sys/socket.h>
+@@ -247,8 +248,8 @@ int IPCUnixSocket::sendData(const void *buffer, size_t length,
+ iov[0].iov_base = const_cast<void *>(buffer);
+ iov[0].iov_len = length;
+
+- char buf[CMSG_SPACE(num * sizeof(uint32_t))];
+- memset(buf, 0, sizeof(buf));
++ char *buf = (char*)malloc(CMSG_SPACE(num * sizeof(uint32_t)));
++ memset((void*)buf, 0, sizeof(buf));
+
+ struct cmsghdr *cmsg = (struct cmsghdr *)buf;
+ cmsg->cmsg_len = CMSG_LEN(num * sizeof(uint32_t));
+@@ -270,9 +271,11 @@ int IPCUnixSocket::sendData(const void *buffer, size_t length,
+ int ret = -errno;
+ LOG(IPCUnixSocket, Error)
+ << "Failed to sendmsg: " << strerror(-ret);
++ free(buf);
+ return ret;
+ }
+
++ free(buf);
+ return 0;
+ }
+
+@@ -283,8 +286,8 @@ int IPCUnixSocket::recvData(void *buffer, size_t length,
+ iov[0].iov_base = buffer;
+ iov[0].iov_len = length;
+
+- char buf[CMSG_SPACE(num * sizeof(uint32_t))];
+- memset(buf, 0, sizeof(buf));
++ char *buf = (char*)malloc(CMSG_SPACE(num * sizeof(uint32_t)));
++ memset((void*)buf, 0, sizeof(buf));
+
+ struct cmsghdr *cmsg = (struct cmsghdr *)buf;
+ cmsg->cmsg_len = CMSG_LEN(num * sizeof(uint32_t));
+@@ -305,12 +308,14 @@ int IPCUnixSocket::recvData(void *buffer, size_t length,
+ if (ret != -EAGAIN)
+ LOG(IPCUnixSocket, Error)
+ << "Failed to recvmsg: " << strerror(-ret);
++ free(buf);
+ return ret;
+ }
+
+ if (fds)
+ memcpy(fds, CMSG_DATA(cmsg), num * sizeof(uint32_t));
+
++ free(buf);
+ return 0;
+ }
+
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.2.0.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.2.0.bb
new file mode 100644
index 0000000000..45d6be31ec
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.2.0.bb
@@ -0,0 +1,78 @@
+SUMMARY = "Linux libcamera framework"
+SECTION = "libs"
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
+
+LIC_FILES_CHKSUM = "\
+ file://LICENSES/GPL-2.0-or-later.txt;md5=fed54355545ffd980b814dab4a3b312c \
+ file://LICENSES/LGPL-2.1-or-later.txt;md5=2a4f4fd2128ea2f65047ee63fbca9f68 \
+"
+
+SRC_URI = " \
+ git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master \
+ file://0001-media_device-Add-bool-return-type-to-unlock.patch \
+ file://0002-options-Replace-use-of-VLAs-in-C.patch \
+ file://0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch \
+ file://0001-ipu3-Use-posix-basename.patch \
+"
+
+SRCREV = "89227a428a82e724548399d35c98ea89566f9045"
+
+PE = "1"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls chrpath-native libevent libyaml"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}"
+
+PACKAGES =+ "${PN}-gst"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base"
+
+LIBCAMERA_PIPELINES ??= "auto"
+
+EXTRA_OEMESON = " \
+ -Dpipelines=${LIBCAMERA_PIPELINES} \
+ -Dv4l2=true \
+ -Dcam=enabled \
+ -Dlc-compliance=disabled \
+ -Dtest=false \
+ -Ddocumentation=disabled \
+"
+
+RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}"
+
+inherit meson pkgconfig python3native
+
+do_configure:prepend() {
+ sed -i -e 's|py_compile=True,||' ${S}/utils/ipc/mojo/public/tools/mojom/mojom/generate/template_expander.py
+}
+
+do_install:append() {
+ chrpath -d ${D}${libdir}/libcamera.so
+ chrpath -d ${D}${libexecdir}/libcamera/v4l2-compat.so
+}
+
+do_package:append() {
+ bb.build.exec_func("do_package_recalculate_ipa_signatures", d)
+}
+
+do_package_recalculate_ipa_signatures() {
+ local modules
+ for module in $(find ${PKGD}/usr/lib/libcamera -name "*.so.sign"); do
+ module="${module%.sign}"
+ if [ -f "${module}" ] ; then
+ modules="${modules} ${module}"
+ fi
+ done
+
+ ${S}/src/ipa/ipa-sign-install.sh ${B}/src/ipa-priv-key.pem "${modules}"
+}
+
+FILES:${PN} += " ${libexecdir}/libcamera/v4l2-compat.so"
+FILES:${PN}-gst = "${libdir}/gstreamer-1.0"
+
+# libcamera-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to
+# both 32 and 64 bit file APIs.
+GLIBC_64BIT_TIME_FLAGS = ""
diff --git a/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch b/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch
index df0c2355d0..51761eb8c9 100755
--- a/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch
+++ b/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch
@@ -1,3 +1,8 @@
+Install all examples
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
Index: libdc1394/examples/Makefile.am
===================================================================
--- libdc1394.orig/examples/Makefile.am
diff --git a/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.6.bb b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.6.bb
deleted file mode 100755
index 952ba603ba..0000000000
--- a/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.6.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Capture and control API for IIDC compliant cameras"
-HOMEPAGE = "http://sourceforge.net/projects/libdc1394/"
-SECTION = "libs"
-LICENSE = "LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c848e78d9a4a5cc69906178e4d6fbd64"
-
-# libsdl to provide sdl.m4 with AM_PATH_SDL
-DEPENDS += "libusb1 libraw1394 libsdl \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxv virtual/libx11', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/egl', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'libglu', '', d)} \
-"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
- file://install_examples.patch \
- "
-SRC_URI[md5sum] = "9fad67bbff08fe2818d5ec81802ec89f"
-SRC_URI[sha256sum] = "2b905fc9aa4eec6bdcf6a2ae5f5ba021232739f5be047dec8fe8dd6049c10fed"
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "--disable-doxygen-doc --disable-examples"
diff --git a/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.7.bb b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.7.bb
new file mode 100755
index 0000000000..8cac780d64
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.7.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Capture and control API for IIDC compliant cameras"
+HOMEPAGE = "http://sourceforge.net/projects/libdc1394/"
+SECTION = "libs"
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c848e78d9a4a5cc69906178e4d6fbd64"
+
+# libsdl to provide sdl.m4 with AM_PATH_SDL
+DEPENDS += "libusb1 libraw1394 libsdl \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxv virtual/libx11', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/egl', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'libglu', '', d)} \
+"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
+ file://install_examples.patch \
+ "
+SRC_URI[sha256sum] = "537ceb78dd3cef271a183f4a176191d1cecf85f025520e6bd3758b0e19e6609f"
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "--disable-doxygen-doc --disable-examples"
diff --git a/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.12.bb b/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.12.bb
new file mode 100644
index 0000000000..3c9f899491
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.12.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "libde265 is an open source implementation of the h.265 \
+video codec. It is written from scratch and has a plain C API to enable a \
+simple integration into other software."
+HOMEPAGE = "http://www.libde265.org/"
+SECTION = "libs/multimedia"
+
+LICENSE = "LGPL-3.0-only & MIT"
+LICENSE_FLAGS = "commercial"
+LIC_FILES_CHKSUM = "file://COPYING;md5=695b556799abb2435c97a113cdca512f"
+
+SRC_URI = "git://github.com/strukturag/libde265.git;branch=master;protocol=https"
+SRCREV = "a267c84707ab264928fa9b86de2ee749c48c318c"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF = "--disable-sherlock265 --disable-dec265"
+
+inherit autotools-brokensep pkgconfig
+
+PACKAGES =+ "${PN}-tools"
+FILES:${PN}-tools = "${bindir}/*"
diff --git a/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.5.bb b/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.5.bb
deleted file mode 100644
index d0ecd04f16..0000000000
--- a/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.5.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "libde265 is an open source implementation of the h.265 \
-video codec. It is written from scratch and has a plain C API to enable a \
-simple integration into other software."
-HOMEPAGE = "http://www.libde265.org/"
-SECTION = "libs/multimedia"
-
-LICENSE = "LGPL-3.0-only & MIT"
-LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://COPYING;md5=695b556799abb2435c97a113cdca512f"
-
-SRC_URI = "https://github.com/strukturag/libde265/releases/download/v${PV}/${BPN}-${PV}.tar.gz"
-SRC_URI[sha256sum] = "e3f277d8903408615a5cc34718b391b83c97c646faea4f41da93bac5ee08a87f"
-
-EXTRA_OECONF = "--disable-sherlock265 --disable-dec265"
-
-inherit autotools-brokensep pkgconfig
-
-PACKAGES =+ "${PN}-tools"
-FILES:${PN}-tools = "${bindir}/*"
diff --git a/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb b/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb
deleted file mode 100644
index 5ca146792c..0000000000
--- a/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "libdvbpsi is a simple library designed for decoding \
-and generation of MPEG TS and DVB PSI tables according to standards \
-ISO/IEC 13818 and ITU-T H.222.0."
-HOMEPAGE = "http://www.videolan.org/developers/libdvbpsi.html"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI = "http://download.videolan.org/pub/libdvbpsi/${PV}/libdvbpsi-${PV}.tar.bz2"
-SRC_URI[md5sum] = "2b217039a1299000c39423441f77e76a"
-SRC_URI[sha256sum] = "a2fed1d11980662f919bbd1f29e2462719e0f6227e1a531310bd5a706db0a1fe"
-
-inherit autotools
diff --git a/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.3.bb b/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.3.bb
new file mode 100644
index 0000000000..719fbf91e6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.3.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "libdvbpsi is a simple library designed for decoding \
+and generation of MPEG TS and DVB PSI tables according to standards \
+ISO/IEC 13818 and ITU-T H.222.0."
+HOMEPAGE = "http://www.videolan.org/developers/libdvbpsi.html"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "http://download.videolan.org/pub/libdvbpsi/${PV}/libdvbpsi-${PV}.tar.bz2"
+SRC_URI[sha256sum] = "02b5998bcf289cdfbd8757bedd5987e681309b0a25b3ffe6cebae599f7a00112"
+
+inherit autotools
diff --git a/meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb b/meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb
new file mode 100644
index 0000000000..7f531efc63
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Low Complexity Communication Codec (LC3)"
+HOMEPAGE = "https://github.com/google/liblc3"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "git://github.com/google/liblc3.git;protocol=https;branch=main"
+
+S = "${WORKDIR}/git"
+SRCREV = "1a5938ebaca4f13fe79ce074f5dee079783aa29f"
+
+inherit pkgconfig meson
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.6.2.bb b/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.6.2.bb
deleted file mode 100644
index 47173d71d5..0000000000
--- a/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.6.2.bb
+++ /dev/null
@@ -1,81 +0,0 @@
-SUMMARY = "C and C++ cross-platform library for decoding tracked music files (modules)"
-DESCRIPTION = "libopenmpt is a cross-platform C++ and C library to decode tracked \
-music files (modules) into a raw PCM audio stream. It also comes with openmpt123, a \
-cross-platform command-line or terminal based module file player. libopenmpt is based \
-on the player code of the OpenMPT project."
-HOMEPAGE = "https://lib.openmpt.org/libopenmpt/"
-SECTION = "libs"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ae09d6164bdecb499183479fd32b66fb"
-
-DEPENDS = "virtual/libiconv"
-
-SRC_URI = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${PV}+release.autotools.tar.gz \
- file://run-ptest \
- "
-SRC_URI[md5sum] = "d21fb799695cbe10a1e9aeaea23ed708"
-SRC_URI[sha256sum] = "50c0d62ff2d9afefa36cce9f29042cb1fb8d4f0b386b81a0fc7734f35e21e6b6"
-
-S = "${WORKDIR}/libopenmpt-${PV}+release.autotools"
-
-inherit autotools pkgconfig ptest
-
-PACKAGECONFIG ??= " \
- openmpt123 \
- ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
- flac mpg123 ogg sndfile vorbis vorbisfile zlib \
- ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
-"
-
-PACKAGECONFIG[openmpt123] = "--enable-openmpt123,--disable-openmpt123"
-PACKAGECONFIG[tests] = "--enable-tests,--disable-tests"
-
-# These packageconfigs affect openmpt123
-PACKAGECONFIG[flac] = "--with-flac,--without-flac,flac"
-PACKAGECONFIG[mpg123] = "--with-mpg123,--without-mpg123,mpg123"
-PACKAGECONFIG[ogg] = "--with-ogg,--without-ogg,libogg"
-PACKAGECONFIG[portaudio] = "--with-portaudio,--without-portaudio,portaudio-v19"
-PACKAGECONFIG[pulseaudio] = "--with-pulseaudio,--without-pulseaudio,pulseaudio"
-PACKAGECONFIG[sdl2] = "--with-sdl2,--without-sdl2,libsdl2"
-PACKAGECONFIG[sndfile] = "--with-sndfile,--without-sndfile,libsndfile1"
-PACKAGECONFIG[vorbis] = "--with-vorbis,--without-vorbis,libvorbis"
-PACKAGECONFIG[vorbisfile] = "--with-vorbisfile,--without-vorbisfile,libvorbis"
-PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
-
-EXTRA_OECONF += " \
- --disable-doxygen-doc \
- --disable-examples \
- --without-portaudiocpp \
-"
-
-do_compile_ptest() {
- oe_runmake ${PARALLEL_MAKE} libopenmpttest
-}
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/test
- install -m 0755 ${B}/libopenmpttest ${D}${PTEST_PATH}
- install -m 0644 ${S}/test/test.mptm ${D}${PTEST_PATH}/test
- install -m 0644 ${S}/test/test.s3m ${D}${PTEST_PATH}/test
- install -m 0644 ${S}/test/test.xm ${D}${PTEST_PATH}/test
-
- install -d ${D}${PTEST_PATH}/libopenmpt
- install -m 0644 ${S}/libopenmpt/libopenmpt_version.mk ${D}${PTEST_PATH}/libopenmpt
-}
-
-PACKAGES =+ "${PN}-openmpt123 ${PN}-openmpt123-doc"
-FILES:${PN}-openmpt123 = "${bindir}/openmpt123"
-FILES:${PN}-openmpt123-doc = "${mandir}/man1/openmpt123*"
-
-# Since version 0.3, libopenmpt uses SemVer 2.0.0 versioning.
-# The SemVer versioning scheme is incompatible with Debian/Ubuntu
-# package version names.
-DEBIAN_NOAUTONAME:${PN} = "1"
-
-RDEPENDS:${PN}:libc-glibc = " \
- glibc-gconv-cp1252 \
- glibc-gconv-ibm437 \
- glibc-gconv-iso8859-1 \
- glibc-gconv-iso8859-15 \
-"
diff --git a/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.7.3.bb b/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.7.3.bb
new file mode 100644
index 0000000000..8bb49b2f12
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.7.3.bb
@@ -0,0 +1,82 @@
+SUMMARY = "C and C++ cross-platform library for decoding tracked music files (modules)"
+DESCRIPTION = "libopenmpt is a cross-platform C++ and C library to decode tracked \
+music files (modules) into a raw PCM audio stream. It also comes with openmpt123, a \
+cross-platform command-line or terminal based module file player. libopenmpt is based \
+on the player code of the OpenMPT project."
+HOMEPAGE = "https://lib.openmpt.org/libopenmpt/"
+SECTION = "libs"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=59f6e21f42e49919617267ff13a0b232"
+
+DEPENDS = "virtual/libiconv"
+
+SRC_URI = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${PV}+release.autotools.tar.gz \
+ file://run-ptest \
+ "
+
+SRC_URI[sha256sum] = "2cf8369b7916b09264f3f14b9fb6cef35a6e9bee0328dec4f49d98211ccfd722"
+
+S = "${WORKDIR}/libopenmpt-${PV}+release.autotools"
+
+inherit autotools pkgconfig ptest
+
+PACKAGECONFIG ??= " \
+ openmpt123 \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
+ flac mpg123 ogg sndfile vorbis vorbisfile zlib \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
+"
+
+PACKAGECONFIG[openmpt123] = "--enable-openmpt123,--disable-openmpt123"
+PACKAGECONFIG[tests] = "--enable-tests,--disable-tests"
+
+# These packageconfigs affect openmpt123
+PACKAGECONFIG[flac] = "--with-flac,--without-flac,flac"
+PACKAGECONFIG[mpg123] = "--with-mpg123,--without-mpg123,mpg123"
+PACKAGECONFIG[ogg] = "--with-ogg,--without-ogg,libogg"
+PACKAGECONFIG[portaudio] = "--with-portaudio,--without-portaudio,portaudio-v19"
+PACKAGECONFIG[pulseaudio] = "--with-pulseaudio,--without-pulseaudio,pulseaudio"
+PACKAGECONFIG[sdl2] = "--with-sdl2,--without-sdl2,libsdl2"
+PACKAGECONFIG[sndfile] = "--with-sndfile,--without-sndfile,libsndfile1"
+PACKAGECONFIG[vorbis] = "--with-vorbis,--without-vorbis,libvorbis"
+PACKAGECONFIG[vorbisfile] = "--with-vorbisfile,--without-vorbisfile,libvorbis"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
+
+EXTRA_OECONF += " \
+ --disable-doxygen-doc \
+ --disable-examples \
+ --without-portaudiocpp \
+"
+
+do_compile_ptest() {
+ oe_runmake ${PARALLEL_MAKE} libopenmpttest
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/test
+ install -m 0755 ${B}/libopenmpttest ${D}${PTEST_PATH}
+ install -m 0644 ${S}/test/test.mptm ${D}${PTEST_PATH}/test
+ install -m 0644 ${S}/test/test.s3m ${D}${PTEST_PATH}/test
+ install -m 0644 ${S}/test/test.xm ${D}${PTEST_PATH}/test
+
+ install -d ${D}${PTEST_PATH}/libopenmpt
+ install -m 0644 ${S}/libopenmpt/libopenmpt_version.mk ${D}${PTEST_PATH}/libopenmpt
+}
+
+PACKAGES =+ "${PN}-openmpt123 ${PN}-openmpt123-doc"
+FILES:${PN}-openmpt123 = "${bindir}/openmpt123"
+FILES:${PN}-openmpt123-doc = "${mandir}/man1/openmpt123*"
+
+# Since version 0.3, libopenmpt uses SemVer 2.0.0 versioning.
+# The SemVer versioning scheme is incompatible with Debian/Ubuntu
+# package version names.
+DEBIAN_NOAUTONAME:${PN} = "1"
+
+RDEPENDS:${PN}:libc-glibc = " \
+ glibc-gconv \
+ glibc-gconv-cp1252 \
+ glibc-gconv-ibm437 \
+ glibc-gconv-iso8859-1 \
+ glibc-gconv-iso8859-15 \
+"
diff --git a/meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-makefile-Add-LIBDIR.patch b/meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-makefile-Add-LIBDIR.patch
deleted file mode 100644
index c6eb7ac576..0000000000
--- a/meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-makefile-Add-LIBDIR.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 4fd08c0446ca02917014b63f9080c4205958a130 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 20 Mar 2022 01:15:32 -0700
-Subject: [PATCH] makefile: Add LIBDIR
-
-Avoid hardcoding /lib
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 1c01f89..2b1df5b 100644
---- a/Makefile
-+++ b/Makefile
-@@ -11,12 +11,12 @@ all : $(LIB) squish.pc
-
- install : $(LIB) squish.pc
- install squish.h $(INSTALL_DIR)/include
-- install libsquish.a $(INSTALL_DIR)/lib
-- install squish.pc $(INSTALL_DIR)/lib/pkgconfig
-+ install libsquish.a $(INSTALL_DIR)/$(LIBDIR)
-+ install squish.pc $(INSTALL_DIR)/$(LIBDIR)/pkgconfig
-
- uninstall:
- $(RM) $(INSTALL_DIR)/include/squish.h
-- $(RM) $(INSTALL_DIR)/lib/libsquish.a
-+ $(RM) $(INSTALL_DIR)/$(LIBDIR)/libsquish.a
-
- $(LIB) : $(OBJ)
- $(AR) cr $@ $?
---
-2.35.1
-
diff --git a/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb b/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb
index fb74881c03..3d631ea0b6 100644
--- a/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb
+++ b/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb
@@ -3,7 +3,7 @@ SUMMARY = "The squish library (abbreviated to libsquish) is an open source DXT c
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://alpha.cpp;beginline=3;endline=22;md5=6665e479f71feb92d590ea9ae9b9f6d5"
-PV = "1.10+git${SRCPV}"
+PV = "1.10+git"
SRCREV = "52e7d93c5947f72380521116c05d97c528863ba8"
SRC_URI = "git://github.com/OpenELEC/libsquish.git;protocol=https;branch=master \
diff --git a/meta-multimedia/recipes-multimedia/libuvc/libuvc.bb b/meta-multimedia/recipes-multimedia/libuvc/libuvc.bb
deleted file mode 100644
index 464b1dc23e..0000000000
--- a/meta-multimedia/recipes-multimedia/libuvc/libuvc.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "library for USB video devices built atop libusb"
-HOMEPAGE = "https://github.com/libuvc/libuvc.git"
-SECTION = "libs"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2f1963e0bb88c93463af750daf9ba0c2"
-DEPENDS = "libusb jpeg"
-
-SRC_URI = "git://github.com/libuvc/libuvc.git;branch=master;protocol=https"
-SRCREV = "ad6c72a4e390367f0d2be81aac00cfc0b6680d74"
-PV = "v0.0.6+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/libuvc/libuvc_0.0.7.bb b/meta-multimedia/recipes-multimedia/libuvc/libuvc_0.0.7.bb
new file mode 100644
index 0000000000..b1572b32ac
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libuvc/libuvc_0.0.7.bb
@@ -0,0 +1,14 @@
+SUMMARY = "library for USB video devices built atop libusb"
+HOMEPAGE = "https://github.com/libuvc/libuvc.git"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2f1963e0bb88c93463af750daf9ba0c2"
+
+DEPENDS = "libusb jpeg"
+
+SRC_URI = "git://github.com/libuvc/libuvc.git;branch=master;protocol=https"
+SRCREV = "68d07a00e11d1944e27b7295ee69673239c00b4b"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
index 3b365444e2..2b373d31e5 100644
--- a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
+++ b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
@@ -5,9 +5,9 @@ LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fbc093901857fcd118f065f900982c24"
DEPENDS = "expat libxml2 libxml2-native neon neon-native libmusicbrainz-native"
-PV = "5.1.0+git${SRCPV}"
+PV = "5.1.0+git"
-SRCREV = "8be45b12a86bc0e46f2f836c8ac88e1e98d82aee"
+SRCREV = "4655b571a70d73d41467091f59c518517c956198"
SRC_URI = "git://github.com/metabrainz/libmusicbrainz.git;branch=master;protocol=https \
file://0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch \
"
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch b/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch
new file mode 100644
index 0000000000..b2dea331ef
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch
@@ -0,0 +1,26 @@
+From e62fd0eefe8b475e70d87a673a7216aac3bb622f Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 20 Nov 2023 17:49:59 +0100
+Subject: [PATCH] patch src_decoder_plugins_FfmpegIo.cxx
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+Upstream-Status: Pending [https://github.com/MusicPlayerDaemon/MPD/issues/1898]
+---
+ src/decoder/plugins/FfmpegIo.cxx | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/decoder/plugins/FfmpegIo.cxx b/src/decoder/plugins/FfmpegIo.cxx
+index 572f1a86a..3e2347fec 100644
+--- a/src/decoder/plugins/FfmpegIo.cxx
++++ b/src/decoder/plugins/FfmpegIo.cxx
+@@ -25,6 +25,7 @@
+ #include "input/InputStream.hxx"
+
+ extern "C" {
++#include <libavutil/error.h>
+ #include <libavutil/mem.h>
+ }
+
+--
+2.42.0
+
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.14.bb b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.14.bb
new file mode 100644
index 0000000000..a762fc8322
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.14.bb
@@ -0,0 +1,102 @@
+SUMMARY = "Music Player Daemon"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+HOMEPAGE ="http://www.musicpd.org"
+
+inherit meson useradd systemd pkgconfig
+
+DEPENDS += " \
+ curl \
+ sqlite3 \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
+ yajl \
+ boost \
+ icu \
+ dbus \
+ expat \
+ fmt \
+"
+
+SRC_URI = "git://github.com/MusicPlayerDaemon/MPD;branch=master;protocol=https \
+ file://0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch \
+ file://mpd.conf.in \
+ "
+SRCREV = "feac1a3f56591ccfb00870aba66c9ac3abac4773"
+S = "${WORKDIR}/git"
+
+EXTRA_OEMESON += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-Dsystemd=enabled -Dsystemd_system_unit_dir=${systemd_system_unitdir} -Dsystemd_user_unit_dir=${systemd_system_unitdir}', '-Dsystemd=disabled', d)}"
+
+PACKAGECONFIG ??= "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "aac", "", d)} \
+ alsa ao bzip2 daemon \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "ffmpeg aac", "", d)} \
+ fifo flac fluidsynth iso9660 \
+ jack libsamplerate httpd \
+ mms mpg123 modplug sndfile \
+ upnp openal opus oss recorder \
+ vorbis wavpack zlib"
+
+PACKAGECONFIG[aac] = "-Dfaad=enabled,-Dfaad=disabled,faad2"
+PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib"
+PACKAGECONFIG[ao] = "-Dao=enabled,-Dao=disabled,libao"
+PACKAGECONFIG[audiofile] = "-Daudiofile=enabled,-Daudiofile=disabled,audiofile"
+PACKAGECONFIG[bzip2] = "-Dbzip2=enabled,-Dbzip2=disabled,bzip2"
+PACKAGECONFIG[cdioparanoia] = "-Dcdio_paranoia=enabled,-Dcdio_paranoia=disabled,libcdio-paranoia"
+PACKAGECONFIG[daemon] = "-Ddaemon=true,-Ddaemon=false"
+PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg"
+PACKAGECONFIG[fifo] = "-Dfifo=true,-Dfifo=false"
+PACKAGECONFIG[flac] = "-Dflac=enabled,-Dflac=disabled,flac"
+PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth"
+PACKAGECONFIG[httpd] = "-Dhttpd=true,-Dhttpd=false"
+PACKAGECONFIG[id3tag] = "-Did3tag=enabled,-Did3tag=disabled,libid3tag"
+PACKAGECONFIG[iso9660] = "-Diso9660=enabled,-Diso9660=disabled,libcdio"
+PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack"
+PACKAGECONFIG[lame] = "-Dlame=enabled,-Dlame=disabled,lame"
+PACKAGECONFIG[libsamplerate] = "-Dlibsamplerate=enabled,-Dlibsamplerate=disabled,libsamplerate0"
+PACKAGECONFIG[mad] = "-Dmad=enabled,-Dmad=disabled,libmad"
+PACKAGECONFIG[mms] = "-Dmms=enabled,-Dmms=disabled,libmms"
+PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug"
+PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123"
+PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft"
+PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus libogg"
+PACKAGECONFIG[oss] = "-Doss=enabled,-Doss=disabled,"
+PACKAGECONFIG[recorder] = "-Drecorder=true,-Drecorder=false"
+PACKAGECONFIG[smb] = "-Dsmbclient=enabled,-Dsmbclient=disabled,samba"
+PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
+PACKAGECONFIG[upnp] = "-Dupnp=pupnp,-Dupnp=disabled,libupnp"
+PACKAGECONFIG[vorbis] = "-Dvorbis=enabled,-Dvorbis=disabled,libvorbis libogg"
+PACKAGECONFIG[wavpack] = "-Dwavpack=enabled,-Dwavpack=disabled,wavpack"
+PACKAGECONFIG[zlib] = "-Dzlib=enabled,-Dzlib=disabled,zlib"
+
+do_install:append() {
+ install -o mpd -d \
+ ${D}/${localstatedir}/lib/mpd \
+ ${D}/${localstatedir}/lib/mpd/playlists
+ install -m775 -o mpd -g mpd -d \
+ ${D}/${localstatedir}/lib/mpd/music
+
+ install -d ${D}/${sysconfdir}
+ install -m 644 ${WORKDIR}/mpd.conf.in ${D}/${sysconfdir}/mpd.conf
+ sed -i \
+ -e 's|%music_directory%|${localstatedir}/lib/mpd/music|' \
+ -e 's|%playlist_directory%|${localstatedir}/lib/mpd/playlists|' \
+ -e 's|%db_file%|${localstatedir}/lib/mpd/mpd.db|' \
+ -e 's|%log_file%|${localstatedir}/log/mpd.log|' \
+ -e 's|%state_file%|${localstatedir}/lib/mpd/state|' \
+ ${D}/${sysconfdir}/mpd.conf
+
+ # we don't need the icon
+ rm -rf ${D}${datadir}/icons
+}
+
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = "mpd.socket"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = " \
+ --system --no-create-home \
+ --home ${localstatedir}/lib/mpd \
+ --groups audio \
+ --user-group mpd"
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.9.bb b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.9.bb
deleted file mode 100644
index e63c1b5e19..0000000000
--- a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.9.bb
+++ /dev/null
@@ -1,101 +0,0 @@
-SUMMARY = "Music Player Daemon"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-HOMEPAGE ="http://www.musicpd.org"
-
-inherit meson useradd systemd pkgconfig
-
-DEPENDS += " \
- curl \
- sqlite3 \
- ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
- yajl \
- boost \
- icu \
- dbus \
- expat \
- fmt \
-"
-
-SRC_URI = "git://github.com/MusicPlayerDaemon/MPD;branch=v0.23.x;protocol=https \
- file://mpd.conf.in \
- "
-SRCREV = "12147f6d5822899cc4316799b494c093b4b47f91"
-S = "${WORKDIR}/git"
-
-EXTRA_OEMESON += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-Dsystemd=enabled -Dsystemd_system_unit_dir=${systemd_system_unitdir} -Dsystemd_user_unit_dir=${systemd_system_unitdir}', '-Dsystemd=disabled', d)}"
-
-PACKAGECONFIG ??= "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "aac", "", d)} \
- alsa ao bzip2 daemon \
- ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "ffmpeg aac", "", d)} \
- fifo flac fluidsynth iso9660 \
- jack libsamplerate httpd \
- mms mpg123 modplug sndfile \
- upnp openal opus oss recorder \
- vorbis wavpack zlib"
-
-PACKAGECONFIG[aac] = "-Dfaad=enabled,-Dfaad=disabled,faad2"
-PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib"
-PACKAGECONFIG[ao] = "-Dao=enabled,-Dao=disabled,libao"
-PACKAGECONFIG[audiofile] = "-Daudiofile=enabled,-Daudiofile=disabled,audiofile"
-PACKAGECONFIG[bzip2] = "-Dbzip2=enabled,-Dbzip2=disabled,bzip2"
-PACKAGECONFIG[cdioparanoia] = "-Dcdio_paranoia=enabled,-Dcdio_paranoia=disabled,libcdio-paranoia"
-PACKAGECONFIG[daemon] = "-Ddaemon=true,-Ddaemon=false"
-PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg"
-PACKAGECONFIG[fifo] = "-Dfifo=true,-Dfifo=false"
-PACKAGECONFIG[flac] = "-Dflac=enabled,-Dflac=disabled,flac"
-PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth"
-PACKAGECONFIG[httpd] = "-Dhttpd=true,-Dhttpd=false"
-PACKAGECONFIG[id3tag] = "-Did3tag=enabled,-Did3tag=disabled,libid3tag"
-PACKAGECONFIG[iso9660] = "-Diso9660=enabled,-Diso9660=disabled,libcdio"
-PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack"
-PACKAGECONFIG[lame] = "-Dlame=enabled,-Dlame=disabled,lame"
-PACKAGECONFIG[libsamplerate] = "-Dlibsamplerate=enabled,-Dlibsamplerate=disabled,libsamplerate0"
-PACKAGECONFIG[mad] = "-Dmad=enabled,-Dmad=disabled,libmad"
-PACKAGECONFIG[mms] = "-Dmms=enabled,-Dmms=disabled,libmms"
-PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug"
-PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123"
-PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft"
-PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus libogg"
-PACKAGECONFIG[oss] = "-Doss=enabled,-Doss=disabled,"
-PACKAGECONFIG[recorder] = "-Drecorder=true,-Drecorder=false"
-PACKAGECONFIG[smb] = "-Dsmbclient=enabled,-Dsmbclient=disabled,samba"
-PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
-PACKAGECONFIG[upnp] = "-Dupnp=pupnp,-Dupnp=disabled,libupnp"
-PACKAGECONFIG[vorbis] = "-Dvorbis=enabled,-Dvorbis=disabled,libvorbis libogg"
-PACKAGECONFIG[wavpack] = "-Dwavpack=enabled,-Dwavpack=disabled,wavpack"
-PACKAGECONFIG[zlib] = "-Dzlib=enabled,-Dzlib=disabled,zlib"
-
-do_install:append() {
- install -o mpd -d \
- ${D}/${localstatedir}/lib/mpd \
- ${D}/${localstatedir}/lib/mpd/playlists
- install -m775 -o mpd -g mpd -d \
- ${D}/${localstatedir}/lib/mpd/music
-
- install -d ${D}/${sysconfdir}
- install -m 644 ${WORKDIR}/mpd.conf.in ${D}/${sysconfdir}/mpd.conf
- sed -i \
- -e 's|%music_directory%|${localstatedir}/lib/mpd/music|' \
- -e 's|%playlist_directory%|${localstatedir}/lib/mpd/playlists|' \
- -e 's|%db_file%|${localstatedir}/lib/mpd/mpd.db|' \
- -e 's|%log_file%|${localstatedir}/log/mpd.log|' \
- -e 's|%state_file%|${localstatedir}/lib/mpd/state|' \
- ${D}/${sysconfdir}/mpd.conf
-
- # we don't need the icon
- rm -rf ${D}${datadir}/icons
-}
-
-RPROVIDES:${PN} += "${PN}-systemd"
-RREPLACES:${PN} += "${PN}-systemd"
-RCONFLICTS:${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE:${PN} = "mpd.socket"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = " \
- --system --no-create-home \
- --home ${localstatedir}/lib/mpd \
- --groups audio \
- --user-group mpd"
diff --git a/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.46.bb b/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.46.bb
deleted file mode 100644
index a77d4f9783..0000000000
--- a/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.46.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "A curses client for the Music Player Daemon"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-HOMEPAGE = "https://www.musicpd.org/clients/ncmpc/"
-
-inherit meson pkgconfig
-
-DEPENDS += " \
- ncurses \
- libpcre2 \
- libmpdclient \
-"
-
-RDEPENDS:${PN} += "python3-core"
-
-PACKAGECONFIG ??= "colors locale mouse nls regex help_screen library_screen search_screen song_screen key_screen lyrics_screen outputs_screen"
-
-PACKAGECONFIG[colors] = "-Dcolors=true,-Dcolors=false"
-PACKAGECONFIG[lirc] = "-Dlirc=enabled,-Dlirc=disabled,lirc"
-PACKAGECONFIG[locale] = "-Dlocale=enabled,-Dlocale=disabled"
-PACKAGECONFIG[mini] = "-Dmini=true,-Dmini=false"
-PACKAGECONFIG[mouse] = "-Dmouse=enabled,-Dmouse=disabled"
-PACKAGECONFIG[nls] = "-Dnls=enabled,-Dnls=disabled,gettext-native"
-PACKAGECONFIG[regex] = "-Dregex=enabled,-Dregex=disabled,pcre"
-
-PACKAGECONFIG[help_screen] = "-Dhelp_screen=true,-Dhelp_screen=false"
-PACKAGECONFIG[library_screen] = "-Dlibrary_screen=true,-Dlibrary_screen=false"
-PACKAGECONFIG[search_screen] = "-Dsearch_screen=true,-Dsearch_screen=false"
-PACKAGECONFIG[song_screen] = "-Dsong_screen=true,-Dsong_screen=false"
-PACKAGECONFIG[key_screen] = "-Dkey_screen=true,-Dkey_screen=false"
-PACKAGECONFIG[lyrics_screen] = "-Dlyrics_screen=true,-Dlyrics_screen=false"
-PACKAGECONFIG[outputs_screen] = "-Doutputs_screen=true,-Doutputs_screen=false"
-PACKAGECONFIG[chat_screen] = "-Dchat_screen=true,-Dchat_screen=false"
-
-SRC_URI = " \
- git://github.com/MusicPlayerDaemon/ncmpc;branch=master;protocol=https \
-"
-SRCREV = "b9b5e11e10d8f66cd672ffb51728aa447f78ecd4"
-S = "${WORKDIR}/git"
diff --git a/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.49.bb b/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.49.bb
new file mode 100644
index 0000000000..d93c054f45
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.49.bb
@@ -0,0 +1,37 @@
+SUMMARY = "A curses client for the Music Player Daemon"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+HOMEPAGE = "https://www.musicpd.org/clients/ncmpc/"
+
+inherit meson pkgconfig
+
+DEPENDS += " \
+ ncurses \
+ libpcre2 \
+ libmpdclient \
+"
+
+RDEPENDS:${PN} += "python3-core"
+
+PACKAGECONFIG ??= "colors locale mouse nls regex help_screen library_screen search_screen song_screen key_screen lyrics_screen outputs_screen"
+
+PACKAGECONFIG[colors] = "-Dcolors=true,-Dcolors=false"
+PACKAGECONFIG[lirc] = "-Dlirc=enabled,-Dlirc=disabled,lirc"
+PACKAGECONFIG[locale] = "-Dlocale=enabled,-Dlocale=disabled"
+PACKAGECONFIG[mini] = "-Dmini=true,-Dmini=false"
+PACKAGECONFIG[mouse] = "-Dmouse=enabled,-Dmouse=disabled"
+PACKAGECONFIG[nls] = "-Dnls=enabled,-Dnls=disabled,gettext-native"
+PACKAGECONFIG[regex] = "-Dregex=enabled,-Dregex=disabled,pcre"
+
+PACKAGECONFIG[help_screen] = "-Dhelp_screen=true,-Dhelp_screen=false"
+PACKAGECONFIG[library_screen] = "-Dlibrary_screen=true,-Dlibrary_screen=false"
+PACKAGECONFIG[search_screen] = "-Dsearch_screen=true,-Dsearch_screen=false"
+PACKAGECONFIG[song_screen] = "-Dsong_screen=true,-Dsong_screen=false"
+PACKAGECONFIG[key_screen] = "-Dkey_screen=true,-Dkey_screen=false"
+PACKAGECONFIG[lyrics_screen] = "-Dlyrics_screen=true,-Dlyrics_screen=false"
+PACKAGECONFIG[outputs_screen] = "-Doutputs_screen=true,-Doutputs_screen=false"
+PACKAGECONFIG[chat_screen] = "-Dchat_screen=true,-Dchat_screen=false"
+
+SRC_URI = "git://github.com/MusicPlayerDaemon/ncmpc;branch=master;protocol=https"
+SRCREV = "f81f875fc5785383d24f54fb9bd3cf06efd915a4"
+S = "${WORKDIR}/git"
diff --git a/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
index aab43ea297..444bc1cf39 100644
--- a/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
+++ b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
@@ -22,7 +22,7 @@ SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master;protocol=ht
S = "${WORKDIR}/git"
-inherit systemd
+inherit systemd features_check
# Mycroft installs itself on the host
# Just copy the setup files to the rootfs
@@ -61,7 +61,7 @@ RDEPENDS:${PN} += "python3-requests python3-pillow \
python3-xxhash python3-pako \
python3-six python3-cryptography \
python3-requests-futures \
- python3-xmlrunner python3-fasteners \
+ python3-fasteners \
python3-python-vlc \
python3-padatious python3-padaos \
python3-petact python3-precise-runner \
@@ -91,3 +91,5 @@ RDEPENDS:${PN} += "procps"
RDEPENDS:${PN} += "bash jq libnotify"
SYSTEMD_SERVICE:${PN} = "mycroft-setup.service mycroft.service"
+
+REQUIRED_DISTRO_FEATURES += "pulseaudio"
diff --git a/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch
new file mode 100644
index 0000000000..ac9e70a718
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch
@@ -0,0 +1,27 @@
+From 3b74181d626f7dedb47377450ca7c43457a66cda Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_L_K@t-online.de>
+Date: Sat, 1 Apr 2023 04:42:32 +0200
+Subject: [PATCH] Makefile: add clean target
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index a51c2c9..fbe2aec 100644
+--- a/Makefile
++++ b/Makefile
+@@ -19,5 +19,7 @@ install: all
+ uninstall:
+ rm -rf '$(DESTDIR)$(PREFIX)/include/ffnvcodec' '$(DESTDIR)$(PREFIX)/$(LIBDIR)/pkgconfig/ffnvcodec.pc'
+
+-.PHONY: all install uninstall
++clean: uninstall
++
++.PHONY: all clean install uninstall
+
+--
+2.34.1
+
diff --git a/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.1.14.0.bb b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.1.14.0.bb
new file mode 100644
index 0000000000..36885f29e2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.1.14.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "FFmpeg nvidia headers"
+HOMEPAGE = "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${S}/include/ffnvcodec/dynlink_cuda.h;beginline=1;endline=26;md5=bb54a418154445b0aa99e15f640eacf4"
+
+SRC_URI = " \
+ git://git.videolan.org/git/ffmpeg/nv-codec-headers.git;branch=master;protocol=https \
+ file://0001-Makefile-add-clean-target.patch \
+"
+SRCREV = "1889e62e2d35ff7aa9baca2bceb14f053785e6f1"
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "PREFIX=${prefix} DESTDIR=${D} LIBDIR=${baselib}"
+
+do_install() {
+ oe_runmake install
+}
diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch b/meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch
deleted file mode 100644
index 2bffd65c6e..0000000000
--- a/meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 29217932c34d7e3368764ab64879dc6f1edab1a6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 14 Jan 2019 11:19:44 -0800
-Subject: [PATCH] Use host compiler to compile native tools
-
-Helps in cross compiling
-
-Upstream-Status: Inappropriate [OE-Specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- CMakeLists.txt | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1085,11 +1085,10 @@ ELSE()
- SET(BIN2H_COMMAND "${NATIVE_BIN_DIR}/bin2h")
- SET(BSINCGEN_COMMAND "${NATIVE_BIN_DIR}/bsincgen")
- ADD_CUSTOM_COMMAND(OUTPUT "${BIN2H_COMMAND}" "${BSINCGEN_COMMAND}"
-- COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" "${NATIVE_SRC_DIR}"
- COMMAND ${CMAKE_COMMAND} -E remove "${BIN2H_COMMAND}" "${BSINCGEN_COMMAND}"
-- COMMAND ${CMAKE_COMMAND} --build . --config "Release"
-+ COMMAND gcc "${NATIVE_SRC_DIR}/bin2h.c" -o "${BIN2H_COMMAND}" -lm
-+ COMMAND gcc "${NATIVE_SRC_DIR}/bsincgen.c" -o "${BSINCGEN_COMMAND}" -lm
- WORKING_DIRECTORY "${NATIVE_BIN_DIR}"
-- DEPENDS "${NATIVE_SRC_DIR}/CMakeLists.txt"
- IMPLICIT_DEPENDS
- C "${NATIVE_SRC_DIR}/bin2h.c"
- C "${NATIVE_SRC_DIR}/bsincgen.c"
diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch b/meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch
deleted file mode 100644
index 607ddab8d6..0000000000
--- a/meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 07ef86e33ed6f7585f0dfaa1732ea17c816655a4 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 14 Jan 2019 11:45:42 -0800
-Subject: [PATCH] makehrtf: Disable Wstringop-truncation
-
-Upstream-Status: Inappropriate [Should be fixed in code]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- utils/makemhr/makemhr.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/utils/makemhr/makemhr.cpp
-+++ b/utils/makemhr/makemhr.cpp
-@@ -161,6 +161,7 @@ enum ChannelIndex : uint {
- * pattern string are replaced with the replacement string. The result is
- * truncated if necessary.
- */
-+#pragma GCC diagnostic ignored "-Wstringop-truncation"
- static int StrSubst(const char *in, const char *pat, const char *rep, const size_t maxLen, char *out)
- {
- size_t inLen, patLen, repLen;
-@@ -199,6 +200,7 @@ static int StrSubst(const char *in, cons
- return !truncated;
- }
-
-+#pragma GCC diagnostic pop
-
- /*********************
- *** Math routines ***
diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb
deleted file mode 100644
index ad70005721..0000000000
--- a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "OpenAL is a cross-platform 3D audio API"
-HOMEPAGE = "http://kcat.strangesoft.net/openal.html"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0f159f19f9377e1895fbb477d5a7953e"
-
-inherit cmake pkgconfig
-
-SRCREV = "f5e0eef34db3a3ab94b61a2f99f84f078ba947e7"
-SRC_URI = "git://github.com/kcat/openal-soft;branch=master;protocol=https \
- file://0001-Use-BUILD_CC-to-compile-native-tools.patch \
- file://0002-makehrtf-Disable-Wstringop-truncation.patch \
- "
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)}"
-PACKAGECONFIG[alsa] = "-DALSA=TRUE, -DALSA=FALSE, alsa-lib"
-PACKAGECONFIG[pulseaudio] = "-DPULSEAUDIO=TRUE, -DPULSEAUDIO=FALSE, pulseaudio"
-# currently doesn't work with libav-9
-# PKG_CHECK_MODULES(FFMPEG libavcodec>=53.61.100 libavformat>=53.32.100 libavutil>=51.35.100)
-# but alffmpeg.c:418:44: error: 'AV_CH_LAYOUT_MONO' undeclared (first use in this function)
-PACKAGECONFIG[examples] = "-DEXAMPLES=TRUE, -DEXAMPLES=FALSE, libav"
-
-FILES:${PN} += "${datadir}/openal"
diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.23.1.bb b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.23.1.bb
new file mode 100644
index 0000000000..83745703f5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.23.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "OpenAL is a cross-platform 3D audio API"
+HOMEPAGE = "http://kcat.strangesoft.net/openal.html"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0f159f19f9377e1895fbb477d5a7953e"
+
+inherit cmake pkgconfig
+
+DEPENDS = "zlib libsndfile1"
+
+SRCREV = "d3875f333fb6abe2f39d82caca329414871ae53b"
+SRC_URI = "git://github.com/kcat/openal-soft.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pipewire pulseaudio', d)}"
+PACKAGECONFIG[alsa] = "-DALSOFT_BACKEND_ALSA=ON,-DALSOFT_BACKEND_ALSA=OFF,alsa-lib"
+PACKAGECONFIG[oss] = "-DALSOFT_BACKEND_OSS=ON,-DALSOFT_BACKEND_OSS=OFF"
+PACKAGECONFIG[pulseaudio] = "-DALSOFT_BACKEND_PULSEAUDIO=ON,-DALSOFT_BACKEND_PULSEAUDIO=OFF,pulseaudio"
+PACKAGECONFIG[pipewire] = "-DALSOFT_BACKEND_PIPEWIRE=ON,-DALSOFT_BACKEND_PIPEWIRE=OFF,pipewire"
+PACKAGECONFIG[examples] = "-DALSOFT_EXAMPLES=ON,-DALSOFT_EXAMPLES=OFF"
+PACKAGECONFIG[sdl2] = "-DALSOFT_BACKEND_SDL2=ON,-DALSOFT_BACKEND_SDL2=OFF,libsdl2 ffmpeg"
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb b/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb
deleted file mode 100644
index ab5813ebe9..0000000000
--- a/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "OpenCORE Adaptive Multi Rate (AMR) speech codec library implementation"
-HOMEPAGE = "http://sourceforge.net/projects/opencore-amr/"
-SECTION = "libs"
-
-LICENSE = "Apache-2.0"
-LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dd2c2486aca02190153cf399e508c7e7"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz"
-SRC_URI[md5sum] = "09d2c5dfb43a9f6e9fec8b1ae678e725"
-SRC_URI[sha256sum] = "106bf811c1f36444d7671d8fd2589f8b2e0cca58a2c764da62ffc4a070595385"
-
-inherit autotools
diff --git a/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.6.bb b/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.6.bb
new file mode 100644
index 0000000000..be7977308b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.6.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "OpenCORE Adaptive Multi Rate (AMR) speech codec library implementation"
+HOMEPAGE = "http://sourceforge.net/projects/opencore-amr/"
+SECTION = "libs"
+
+LICENSE = "Apache-2.0"
+LICENSE_FLAGS = "commercial"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dd2c2486aca02190153cf399e508c7e7"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz"
+SRC_URI[md5sum] = "03de025060a4f16c4c44218f65e13e95"
+SRC_URI[sha256sum] = "483eb4061088e2b34b358e47540b5d495a96cd468e361050fae615b1809dc4a1"
+
+inherit autotools
diff --git a/meta-multimedia/recipes-multimedia/openh264/openh264/0002-Makefile-add-possibility-to-disable-NEON-extension.patch b/meta-multimedia/recipes-multimedia/openh264/openh264/0002-Makefile-add-possibility-to-disable-NEON-extension.patch
new file mode 100644
index 0000000000..298ac1c013
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/openh264/openh264/0002-Makefile-add-possibility-to-disable-NEON-extension.patch
@@ -0,0 +1,103 @@
+From bc3a3baeaccfe9c1286848b348baf92dfbd05346 Mon Sep 17 00:00:00 2001
+From: Benjamin Bara <benjamin.bara@skidata.com>
+Date: Thu, 31 Aug 2023 09:27:31 +0200
+Subject: [PATCH 2/2] Makefile: add possibility to disable NEON extension
+
+README states that the NEON extension is optional. However, currently it
+cannot be turned off, therefore add an option to disable it.
+
+Upstream-Status: Submitted [https://github.com/cisco/openh264/pull/3679]
+Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com>
+---
+ Makefile | 1 +
+ build/arch.mk | 4 ++++
+ build/msvc-common.mk | 10 ++++++++--
+ build/platform-mingw_nt.mk | 5 ++++-
+ 4 files changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index baed53a7..cc22c4aa 100644
+--- a/Makefile
++++ b/Makefile
+@@ -35,6 +35,7 @@ CCASFLAGS=$(CFLAGS)
+ STATIC_LDFLAGS=-lstdc++
+ STRIP ?= strip
+ USE_STACK_PROTECTOR = Yes
++USE_NEON=Yes
+
+ SHAREDLIB_MAJORVERSION=7
+ FULL_VERSION := 2.3.1
+diff --git a/build/arch.mk b/build/arch.mk
+index 4e1538c4..fd6a81e4 100644
+--- a/build/arch.mk
++++ b/build/arch.mk
+@@ -17,18 +17,22 @@ ifneq ($(filter-out arm64 arm64e, $(filter arm%, $(ARCH))),)
+ ifeq ($(USE_ASM), Yes)
+ ASM_ARCH = arm
+ ASMFLAGS += -I$(SRC_PATH)codec/common/arm/
++ifeq ($(USE_NEON), Yes)
+ CFLAGS += -DHAVE_NEON
+ endif
+ endif
++endif
+
+ #for arm64
+ ifneq ($(filter arm64 aarch64 arm64e, $(ARCH)),)
+ ifeq ($(USE_ASM), Yes)
+ ASM_ARCH = arm64
+ ASMFLAGS += -I$(SRC_PATH)codec/common/arm64/
++ifeq ($(USE_NEON), Yes)
+ CFLAGS += -DHAVE_NEON_AARCH64
+ endif
+ endif
++endif
+
+ #for mips
+ ifneq ($(filter mips mips64, $(ARCH)),)
+diff --git a/build/msvc-common.mk b/build/msvc-common.mk
+index 5891ea4e..5a1e2582 100644
+--- a/build/msvc-common.mk
++++ b/build/msvc-common.mk
+@@ -10,7 +10,10 @@ else
+ endif
+ ifeq ($(ASM_ARCH), arm)
+ CCAS = gas-preprocessor.pl -as-type armasm -force-thumb -- armasm
+-CCASFLAGS = -nologo -DHAVE_NEON -ignore 4509
++CCASFLAGS = -nologo -ignore 4509
++ifeq ($(USE_NEON), Yes)
++CCASFLAGS += -DHAVE_NEON
++endif
+ endif
+
+ CC=cl
+@@ -20,7 +23,10 @@ CXX_O=-Fo$@
+
+ ifeq ($(ASM_ARCH), arm64)
+ CCAS = clang-cl
+-CCASFLAGS = -nologo -DHAVE_NEON_AARCH64 --target=arm64-windows
++CCASFLAGS = -nologo --target=arm64-windows
++ifeq ($(USE_NEON), Yes)
++CCASFLAGS += -DHAVE_NEON_AARCH64
++endif
+ endif
+
+
+diff --git a/build/platform-mingw_nt.mk b/build/platform-mingw_nt.mk
+index b7a5495d..d73e362a 100644
+--- a/build/platform-mingw_nt.mk
++++ b/build/platform-mingw_nt.mk
+@@ -17,7 +17,10 @@ endif
+ endif
+ ifeq ($(ASM_ARCH), arm)
+ CCAS = gas-preprocessor.pl -as-type clang -force-thumb -- $(CC)
+-CCASFLAGS = -DHAVE_NEON -mimplicit-it=always
++CCASFLAGS = -mimplicit-it=always
++ifeq ($(USE_NEON), Yes)
++CCASFLAGS += -DHAVE_NEON
++endif
+ endif
+ EXEEXT = .exe
+
+--
+2.34.1
+
diff --git a/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb b/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb
deleted file mode 100644
index aababb6684..0000000000
--- a/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-DESCRIPTION = "OpenH264 is a codec library which supports H.264 encoding and \
-decoding. It is suitable for use in real time applications such as WebRTC."
-HOMEPAGE = "http://www.openh264.org/"
-SECTION = "libs/multimedia"
-
-DEPENDS:append:x86 = " nasm-native"
-DEPENDS:append:x86-64 = " nasm-native"
-
-LICENSE = "BSD-2-Clause"
-LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bb6d3771da6a07d33fd50d4d9aa73bcf"
-
-S = "${WORKDIR}/git"
-SRCREV = "50a1fcf70fafe962c526749991cb4646406933ba"
-BRANCH = "openh264v2.1.1"
-SRC_URI = "git://github.com/cisco/openh264.git;protocol=https;branch=${BRANCH} \
- file://0001-Makefile-Use-cp-options-to-preserve-file-mode.patch \
- "
-
-COMPATIBLE_MACHINE:armv7a = "(.*)"
-COMPATIBLE_MACHINE:aarch64 = "(.*)"
-COMPATIBLE_MACHINE:x86 = "(.*)"
-COMPATIBLE_MACHINE:x86-64 = "(.*)"
-COMPATIBLE_MACHINE:mips = "(.*)"
-COMPATIBLE_MACHINE:mips64 = "(.*)"
-COMPATIBLE_MACHINE:powerpc64le = "null"
-
-EXTRA_OEMAKE:armv7a = "ARCH=arm"
-EXTRA_OEMAKE:armv7ve = "ARCH=arm"
-EXTRA_OEMAKE:aarch64 = "ARCH=arm64"
-EXTRA_OEMAKE:x86 = "ARCH=i386"
-EXTRA_OEMAKE:x86-64 = "ARCH=x86_64"
-EXTRA_OEMAKE:mips = "ARCH=mips"
-EXTRA_OEMAKE:mips64 = "ARCH=mips64"
-EXTRA_OEMAKE:riscv64 = "ARCH=riscv64"
-
-EXTRA_OEMAKE:append = " ENABLEPIC=Yes"
-do_configure() {
- :
-}
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D} PREFIX=${prefix}
-}
-
-CLEANBROKEN = "1"
diff --git a/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb b/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb
new file mode 100644
index 0000000000..6dfd759355
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb
@@ -0,0 +1,55 @@
+SUMMARY = "Open Source H.264 Codec"
+DESCRIPTION = "OpenH264 is a codec library which supports H.264 encoding and \
+decoding. It is suitable for use in real time applications such as WebRTC."
+HOMEPAGE = "http://www.openh264.org/"
+SECTION = "libs/multimedia"
+
+DEPENDS:append:x86 = " nasm-native"
+DEPENDS:append:x86-64 = " nasm-native"
+
+LICENSE = "BSD-2-Clause"
+LICENSE_FLAGS = "commercial"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bb6d3771da6a07d33fd50d4d9aa73bcf"
+
+S = "${WORKDIR}/git"
+SRCREV = "0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e"
+BRANCH = "openh264v${PV}"
+SRC_URI = "git://github.com/cisco/openh264.git;protocol=https;branch=${BRANCH} \
+ file://0001-Makefile-Use-cp-options-to-preserve-file-mode.patch \
+ file://0002-Makefile-add-possibility-to-disable-NEON-extension.patch \
+ "
+
+COMPATIBLE_MACHINE:armv7a = "(.*)"
+COMPATIBLE_MACHINE:aarch64 = "(.*)"
+COMPATIBLE_MACHINE:x86 = "(.*)"
+COMPATIBLE_MACHINE:x86-64 = "(.*)"
+COMPATIBLE_MACHINE:mips = "(.*)"
+COMPATIBLE_MACHINE:mips64 = "(.*)"
+COMPATIBLE_MACHINE:powerpc64le = "null"
+
+EXTRA_OEMAKE:armv7a = "ARCH=arm"
+EXTRA_OEMAKE:armv7ve = "ARCH=arm"
+EXTRA_OEMAKE:aarch64 = "ARCH=arm64"
+EXTRA_OEMAKE:x86 = "ARCH=i386"
+EXTRA_OEMAKE:x86-64 = "ARCH=x86_64"
+EXTRA_OEMAKE:mips = "ARCH=mips"
+EXTRA_OEMAKE:mips64 = "ARCH=mips64"
+EXTRA_OEMAKE:riscv64 = "ARCH=riscv64"
+
+EXTRA_OEMAKE:append:armv7a = "${@bb.utils.contains("TUNE_FEATURES","neon",""," USE_NEON=No",d)}"
+EXTRA_OEMAKE:append:armv7ve = "${@bb.utils.contains("TUNE_FEATURES","neon",""," USE_NEON=No",d)}"
+
+EXTRA_OEMAKE:append = " ENABLEPIC=Yes"
+do_configure() {
+ :
+}
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} PREFIX=${prefix} LIBDIR_NAME=${baselib} SHAREDLIB_DIR=${libdir}
+}
+
+CLEANBROKEN = "1"
diff --git a/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb b/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
index 2b7a43b93d..672c8abc9a 100644
--- a/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
+++ b/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
@@ -25,86 +25,53 @@ RDEPENDS:packagegroup-meta-multimedia = "\
bluealsa \
caps \
cdparanoia \
- dcadec \
- dleyna-connector-dbus \
- dleyna-core \
- dleyna-renderer \
- dleyna-server \
dvb-apps \
- ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "faac fdk-aac mpd", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "faac mpd", "", d)} \
gerbera \
- libao \
libavc1394 \
- libdc1394 \
- libdvbpsi \
- libdvdnav \
libiec61883 \
- fluidsynth \
libmusicbrainz \
- libmpdclient \
mpc \
ncmpc \
- libmpd \
- ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "opencore-amr vo-aacenc vo-amrwbenc", "", d)} \
- gst-shark \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "opencore-amr", "", d)} \
gstd \
rtmpdump \
bigbuckbunny-1080p \
bigbuckbunny-480p \
bigbuckbunny-720p \
tearsofsteel-1080p \
- schroedinger \
pipewire \
- ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "projucer", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", bb.utils.contains("DISTRO_FEATURES", "x11", "projucer", "", d), "", d)} \
libcamera \
- ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "libde265 openh264", "", d)} \
vorbis-tools \
- libdvbcsa \
libopenmpt \
- libuvc \
mimic \
${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "minidlna", "", d)} \
- mycroft \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pulseaudio", "mycroft", "", d)} \
openal-soft \
opusfile \
opus-tools \
- libdvdcss \
${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", bb.utils.contains("DISTRO_FEATURES", "x11", "vlc", "", d), "", d)} \
${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "sox streamripper", "", d)} \
tinyalsa \
- tremor \
- webrtc-audio-processing \
${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 i686 x86-64", "x265", "", d), "", d)} \
"
RDEPENDS:packagegroup-meta-multimedia:remove:libc-musl = "projucer"
-RDEPENDS:packagegroup-meta-multimedia:remove:powerpc64le = "openh264"
RDEPENDS:packagegroup-meta-multimedia-connectivity = "\
- gssdp \
- gupnp-av \
gupnp-dlna \
- gupnp-igd \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "gupnp-tools", "", d)} \
- gupnp \
libupnp \
- ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "rygel", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "rygel", "", d), "", d)} \
"
RDEPENDS:packagegroup-meta-multimedia-dvb = "\
oscam \
tvheadend \
"
-RDEPENDS:packagegroup-meta-multimedia-mkv = "\
- libebml \
- libmatroska \
-"
-
RDEPENDS:packagegroup-meta-multimedia-support = "\
crossguid \
- ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "libmediaart-2.0", "", d)} \
gst-instruments \
- libsrtp \
- srt \
"
# devel headers/libraries only packages
# libsquish
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
index 52a672f042..9895e89761 100644
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
@@ -1,5 +1,4 @@
SUMMARY = "Multimedia processing server for Linux"
-AUTHOR = "Wim Taymans <wtaymans@redhat.com>"
HOMEPAGE = "https://pipewire.org"
SECTION = "multimedia"
LICENSE = "LGPL-2.1-only"
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb
deleted file mode 100644
index 9fdb60380b..0000000000
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "PipeWire Media Session is an example session manager for PipeWire"
-HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/media-session"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a"
-
-DEPENDS = " \
- pipewire \
- alsa-lib \
- dbus \
-"
-
-SRC_URI = "git://gitlab.freedesktop.org/pipewire/media-session.git;protocol=https;branch=master"
-
-S = "${WORKDIR}/git"
-SRCREV = "e5d5cf2404786af8bcc40bdb8a2962bef4ec18b6"
-
-inherit meson pkgconfig
-
-FILES:${PN} += " \
- ${systemd_user_unitdir}/pipewire-media-session.service \
- ${datadir}/pipewire/media-session.d/* \
-"
-
-RRECOMMENDS:${PN} += "pipewire"
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.2.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.2.bb
new file mode 100644
index 0000000000..8ae0624135
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "PipeWire Media Session is an example session manager for PipeWire"
+HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/media-session"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a"
+
+DEPENDS = " \
+ pipewire \
+ alsa-lib \
+ dbus \
+"
+
+SRC_URI = "git://gitlab.freedesktop.org/pipewire/media-session.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+SRCREV = "80dae7e24bec02b2befe09a72fbac6e2b38ccb5c"
+
+inherit meson pkgconfig
+# https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2952
+CFLAGS += "-DPW_ENABLE_DEPRECATED"
+FILES:${PN} += " \
+ ${systemd_user_unitdir}/pipewire-media-session.service \
+ ${datadir}/pipewire/media-session.d/* \
+"
+
+RRECOMMENDS:${PN} += "pipewire"
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.57.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.57.bb
deleted file mode 100644
index 0ca8fd0dc4..0000000000
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.57.bb
+++ /dev/null
@@ -1,365 +0,0 @@
-SUMMARY = "Multimedia processing server for Linux"
-DESCRIPTION = "Linux server for handling and routing audio and video streams between applications and multimedia I/O devices"
-HOMEPAGE = "https://pipewire.org/"
-BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/pipewire/issues"
-AUTHOR = "Wim Taymans <wtaymans@redhat.com>"
-SECTION = "multimedia"
-
-LICENSE = "MIT & LGPL-2.1-or-later & GPL-2.0-only"
-LIC_FILES_CHKSUM = " \
- file://LICENSE;md5=2158739e172e58dc9ab1bdd2d6ec9c72 \
- file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \
-"
-
-DEPENDS = "dbus ncurses"
-
-SRCREV = "49f1c2038fb7b5249affa56709b117a2a8603b52"
-SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
-
-S = "${WORKDIR}/git"
-
-inherit meson pkgconfig systemd gettext useradd
-
-USERADD_PACKAGES = "${PN}"
-
-GROUPADD_PARAM:${PN} = "--system pipewire"
-
-USERADD_PARAM:${PN} = "--system --home / --no-create-home \
- --comment 'PipeWire multimedia daemon' \
- --gid pipewire --groups audio,video \
- pipewire"
-
-SYSTEMD_PACKAGES = "${PN}"
-
-# For "EVL", look up https://evlproject.org/ . It involves
-# a specially prepared kernel, and is currently unavailable
-# in Yocto.
-#
-# Vulkan support is currently (as of version 0.3.44) not functional.
-#
-# manpage generation requires xmltoman, which is not available.
-#
-# The session-managers list specifies which session managers Meson
-# shall download (via git clone) and build as subprojects. In OE,
-# this is not how a session manager should be built. Instead, they
-# should be integrated as separate OE recipes. To prevent PipeWire
-# from using this Meson feature, set an empty list.
-# This does not disable support or the need for session managers,
-# it just prevents this subproject feature.
-#
-# AptX and LDAC are not available in OE. Currently, neither
-# are lv2 and ROC.
-#
-# The RTKit module is deprecated in favor of the newer RT module.
-# It still exists for legacy setups that still include it in
-# their PipeWire configuration files.
-EXTRA_OEMESON += " \
- -Devl=disabled \
- -Dtests=disabled \
- -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \
- -Dsystemd-system-unit-dir=${systemd_system_unitdir} \
- -Dsystemd-user-unit-dir=${systemd_user_unitdir} \
- -Dman=disabled \
- -Dsession-managers='[]' \
- -Dlv2=disabled \
- -Droc=disabled \
- -Dbluez5-codec-aptx=disabled \
- -Dbluez5-codec-ldac=disabled \
- -Dlegacy-rtkit=false \
-"
-
-# spa alsa plugin code uses typedef redefinition, which is officially a C11 feature.
-# Pipewire builds with 'c_std=gnu99' by default. Recent versions of gcc don't issue this warning in gnu99
-# mode but it looks like clang still does
-CFLAGS:append = " -Wno-typedef-redefinition"
-
-# According to wireplumber documentation only one session manager should be installed at a time
-# Possible options are media-session, which has fewer dependencies but is very simple,
-# or wireplumber, which is more powerful.
-PIPEWIRE_SESSION_MANAGER ??= "media-session"
-
-FFMPEG_AVAILABLE = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'ffmpeg', '', d)}"
-BLUETOOTH_AAC = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'bluez-aac', '', d)}"
-
-PACKAGECONFIG:class-target ??= " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez bluez-opus ${BLUETOOTH_AAC}', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'alsa vulkan pulseaudio', d)} \
- ${PIPEWIRE_SESSION_MANAGER} \
- ${FFMPEG_AVAILABLE} gstreamer jack libusb pw-cat raop sndfile v4l2 udev volume \
-"
-
-# "jack" and "pipewire-jack" packageconfigs cannot be both enabled,
-# since "jack" imports libjack, and "pipewire-jack" generates
-# libjack.so* files, thus colliding with the libpack package. This
-# is why these two are marked in their respective packageconfigs
-# as being in conflict.
-PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev,,pipewire-alsa pipewire-alsa-card-profile"
-PACKAGECONFIG[avahi] = "-Davahi=enabled,-Davahi=disabled,avahi"
-PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc"
-PACKAGECONFIG[bluez-aac] = "-Dbluez5-codec-aac=enabled,-Dbluez5-codec-aac=disabled,fdk-aac"
-PACKAGECONFIG[bluez-opus] = "-Dbluez5-codec-opus=enabled,-Dbluez5-codec-opus=disabled,libopus"
-PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native graphviz-native"
-PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg"
-PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base,,gstreamer1.0-pipewire"
-PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack"
-PACKAGECONFIG[libcamera] = "-Dlibcamera=enabled,-Dlibcamera=disabled,libcamera libdrm"
-PACKAGECONFIG[libcanberra] = "-Dlibcanberra=enabled,-Dlibcanberra=disabled,libcanberra"
-PACKAGECONFIG[libusb] = "-Dlibusb=enabled,-Dlibusb=disabled,libusb"
-PACKAGECONFIG[media-session] = ",,,pipewire-media-session,,wireplumber"
-PACKAGECONFIG[pulseaudio] = "-Dlibpulse=enabled,-Dlibpulse=disabled,pulseaudio,,pipewire-pulse"
-PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib"
-PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,pipewire-jack,jack"
-PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled"
-PACKAGECONFIG[raop] = "-Draop=enabled,-Draop=disabled,openssl"
-PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,libsdl2"
-PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
-PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
-PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=enabled,-Dsystemd-system-service=disabled,systemd"
-# "systemd-user-service" packageconfig will only install service
-# files to rootfs but not enable them as systemd.bbclass
-# currently lacks the feature of enabling user services.
-PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd"
-# pw-cat needs sndfile packageconfig to be enabled
-PACKAGECONFIG[udev] = "-Dudev=enabled,-Dudev=disabled,udev"
-PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev"
-PACKAGECONFIG[volume] = "-Dvolume=enabled,-Dvolume=disabled"
-PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-headers vulkan-loader"
-PACKAGECONFIG[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing"
-PACKAGECONFIG[wireplumber] = ",,,wireplumber,,media-session"
-
-PACKAGESPLITFUNCS:prepend = " split_dynamic_packages "
-PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends "
-
-SPA_SUBDIR = "spa-0.2"
-PW_MODULE_SUBDIR = "pipewire-0.3"
-
-remove_unused_installed_files() {
- # jack.conf is used by pipewire-jack (not the JACK SPA plugin).
- # Remove it if pipewire-jack is not built to avoid creating the
- # pipewire-jack package.
- if ${@bb.utils.contains('PACKAGECONFIG', 'pipewire-jack', 'false', 'true', d)}; then
- rm -f "${D}${datadir}/pipewire/jack.conf"
- fi
-
- # minimal.conf is an example of how to minimally configure the
- # daemon and is not meant to be used for production.
- rm -f "${D}${datadir}/pipewire/minimal.conf"
-}
-
-do_install[postfuncs] += "remove_unused_installed_files"
-
-python split_dynamic_packages () {
- # Create packages for each SPA plugin. These plugins are located
- # in individual subdirectories, so a recursive search is needed.
- spa_libdir = d.expand('${libdir}/${SPA_SUBDIR}')
- do_split_packages(d, spa_libdir, r'^libspa-(.*)\.so$', d.expand('${PN}-spa-plugins-%s'), 'PipeWire SPA plugin for %s', extra_depends='', recursive=True)
-
- # Create packages for each PipeWire module.
- pw_module_libdir = d.expand('${libdir}/${PW_MODULE_SUBDIR}')
- do_split_packages(d, pw_module_libdir, r'^libpipewire-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'PipeWire %s module', extra_depends='', recursive=False)
-}
-
-python set_dynamic_metapkg_rdepends () {
- import os
- import oe.utils
-
- # Go through all generated SPA plugin and PipeWire module packages
- # (excluding the main package and the -meta package itself) and
- # add them to the -meta package as RDEPENDS.
-
- base_pn = d.getVar('PN')
-
- spa_pn = base_pn + '-spa-plugins'
- spa_metapkg = spa_pn + '-meta'
-
- pw_module_pn = base_pn + '-modules'
- pw_module_metapkg = pw_module_pn + '-meta'
-
- d.setVar('ALLOW_EMPTY:' + spa_metapkg, "1")
- d.setVar('FILES:' + spa_metapkg, "")
-
- d.setVar('ALLOW_EMPTY:' + pw_module_metapkg, "1")
- d.setVar('FILES:' + pw_module_metapkg, "")
-
- blacklist = [ spa_pn, spa_metapkg, pw_module_pn, pw_module_metapkg ]
- spa_metapkg_rdepends = []
- pw_module_metapkg_rdepends = []
- pkgdest = d.getVar('PKGDEST')
-
- for pkg in oe.utils.packages_filter_out_system(d):
- if pkg in blacklist:
- continue
-
- is_spa_pkg = pkg.startswith(spa_pn)
- is_pw_module_pkg = pkg.startswith(pw_module_pn)
- if not is_spa_pkg and not is_pw_module_pkg:
- continue
-
- if pkg in spa_metapkg_rdepends or pkg in pw_module_metapkg_rdepends:
- continue
-
- # See if the package is empty by looking at the contents of its
- # PKGDEST subdirectory. If this subdirectory is empty, then then
- # package is empty as well. Empty packages do not get added to
- # the meta package's RDEPENDS.
- pkgdir = os.path.join(pkgdest, pkg)
- if os.path.exists(pkgdir):
- dir_contents = os.listdir(pkgdir) or []
- else:
- dir_contents = []
- is_empty = len(dir_contents) == 0
- if not is_empty:
- if is_spa_pkg:
- spa_metapkg_rdepends.append(pkg)
- if is_pw_module_pkg:
- pw_module_metapkg_rdepends.append(pkg)
-
- d.setVar('RDEPENDS:' + spa_metapkg, ' '.join(spa_metapkg_rdepends))
- d.setVar('DESCRIPTION:' + spa_metapkg, spa_pn + ' meta package')
-
- d.setVar('RDEPENDS:' + pw_module_metapkg, ' '.join(pw_module_metapkg_rdepends))
- d.setVar('DESCRIPTION:' + pw_module_metapkg, pw_module_pn + ' meta package')
-}
-
-PACKAGES =+ "\
- libpipewire \
- ${PN}-tools \
- ${PN}-pulse \
- ${PN}-alsa \
- ${PN}-jack \
- ${PN}-spa-plugins \
- ${PN}-spa-plugins-meta \
- ${PN}-spa-tools \
- ${PN}-modules \
- ${PN}-modules-meta \
- ${PN}-alsa-card-profile \
- ${PN}-v4l2 \
- gstreamer1.0-pipewire \
-"
-
-PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*"
-
-SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire.service', '', d)}"
-CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf"
-FILES:${PN} = " \
- ${datadir}/pipewire \
- ${systemd_system_unitdir}/pipewire* \
- ${systemd_user_unitdir} \
- ${bindir}/pipewire \
- ${bindir}/pipewire-avb \
-"
-
-RRECOMMENDS:${PN}:class-target += " \
- pipewire-modules-meta \
- pipewire-spa-plugins-meta \
-"
-
-FILES:${PN}-dev += " \
- ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so \
-"
-
-CONFFILES:libpipewire += "${datadir}/pipewire/client.conf"
-FILES:libpipewire = " \
- ${datadir}/pipewire/client.conf \
- ${libdir}/libpipewire-*.so.* \
-"
-# Add the bare minimum modules and plugins required to be able
-# to use libpipewire. Without these, it is essentially unusable.
-RDEPENDS:libpipewire += " \
- ${PN}-modules-client-node \
- ${PN}-modules-protocol-native \
- ${PN}-spa-plugins-support \
-"
-
-FILES:${PN}-tools = " \
- ${bindir}/pw-cat \
- ${bindir}/pw-cli \
- ${bindir}/pw-dot \
- ${bindir}/pw-dsdplay \
- ${bindir}/pw-dump \
- ${bindir}/pw-link \
- ${bindir}/pw-loopback \
- ${bindir}/pw-metadata \
- ${bindir}/pw-mididump \
- ${bindir}/pw-midiplay \
- ${bindir}/pw-midirecord \
- ${bindir}/pw-mon \
- ${bindir}/pw-play \
- ${bindir}/pw-profiler \
- ${bindir}/pw-record \
- ${bindir}/pw-reserve \
- ${bindir}/pw-top \
-"
-
-# This is a shim daemon that is intended to be used as a
-# drop-in PulseAudio replacement, providing a pulseaudio-compatible
-# socket that can be used by applications that use libpulse.
-CONFFILES:${PN}-pulse += "${datadir}/pipewire/pipewire-pulse.conf"
-FILES:${PN}-pulse = " \
- ${datadir}/pipewire/pipewire-pulse.conf \
- ${systemd_system_unitdir}/pipewire-pulse.* \
- ${systemd_user_unitdir}/pipewire-pulse.* \
- ${bindir}/pipewire-pulse \
-"
-RDEPENDS:${PN}-pulse += " \
- ${PN}-modules-protocol-pulse \
-"
-
-# ALSA plugin to redirect audio to pipewire.
-FILES:${PN}-alsa = "\
- ${libdir}/alsa-lib/* \
- ${datadir}/alsa/alsa.conf.d/* \
-"
-
-# JACK drop-in libraries to redirect audio to pipewire.
-CONFFILES:${PN}-jack = "${datadir}/pipewire/jack.conf"
-FILES:${PN}-jack = "\
- ${bindir}/pw-jack \
- ${datadir}/pipewire/jack.conf \
- ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \
-"
-
-# Dynamic SPA plugin packages (see set_dynamic_metapkg_rdepends).
-FILES:${PN}-spa-plugins = ""
-RRECOMMENDS:${PN}-spa-plugins += "${PN}-spa-plugins-meta"
-
-FILES:${PN}-spa-plugins-bluez5 += " \
- ${datadir}/${SPA_SUBDIR}/bluez5/* \
-"
-
-FILES:${PN}-spa-tools = " \
- ${bindir}/spa-* \
-"
-
-# Dynamic PipeWire module packages (see set_dynamic_metapkg_rdepends).
-FILES:${PN}-modules = ""
-RRECOMMENDS:${PN}-modules += "${PN}-modules-meta"
-
-CONFFILES:${PN}-modules-rt = "${datadir}/pipewire/client-rt.conf"
-FILES:${PN}-modules-rt += " \
- ${datadir}/pipewire/client-rt.conf \
- "
-
-CONFFILES:${PN}-modules-filter-chain = "${datadir}/pipewire/filter-chain/*"
-FILES:${PN}-modules-filter-chain += " \
- ${datadir}/pipewire/filter-chain/* \
-"
-
-FILES:${PN}-alsa-card-profile = " \
- ${datadir}/alsa-card-profile/* \
- ${nonarch_base_libdir}/udev/rules.d/90-pipewire-alsa.rules \
-"
-
-# V4L2 interface emulator for sending/receiving data between PipeWire and V4L2 applications.
-FILES:${PN}-v4l2 += " \
- ${bindir}/pw-v4l2 \
- ${libdir}/${PW_MODULE_SUBDIR}/v4l2/libpw-v4l2.so \
-"
-
-FILES:gstreamer1.0-pipewire = " \
- ${libdir}/gstreamer-1.0/* \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.4.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.4.bb
new file mode 100644
index 0000000000..e9c83dd236
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.4.bb
@@ -0,0 +1,388 @@
+SUMMARY = "Multimedia processing server for Linux"
+DESCRIPTION = "Linux server for handling and routing audio and video streams between applications and multimedia I/O devices"
+HOMEPAGE = "https://pipewire.org/"
+BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/pipewire/issues"
+SECTION = "multimedia"
+
+LICENSE = "MIT & LGPL-2.1-or-later & GPL-2.0-only"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=2158739e172e58dc9ab1bdd2d6ec9c72 \
+ file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \
+"
+
+DEPENDS = "dbus ncurses"
+
+SRCREV = "f2874ad1c2f7f0b9a1da05cc4f402b3ea3761ee6"
+SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=1.0;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig systemd gettext useradd
+
+USERADD_PACKAGES = "${PN}"
+
+GROUPADD_PARAM:${PN} = "--system pipewire"
+
+USERADD_PARAM:${PN} = "--system --home / --no-create-home \
+ --comment 'PipeWire multimedia daemon' \
+ --gid pipewire --groups audio,video \
+ pipewire"
+
+SYSTEMD_PACKAGES = "${PN}"
+
+# For "EVL", look up https://evlproject.org/ . It involves
+# a specially prepared kernel, and is currently unavailable
+# in Yocto.
+#
+#
+# manpage generation requires xmltoman, which is not available.
+#
+# The session-managers list specifies which session managers Meson
+# shall download (via git clone) and build as subprojects. In OE,
+# this is not how a session manager should be built. Instead, they
+# should be integrated as separate OE recipes. To prevent PipeWire
+# from using this Meson feature, set an empty list.
+# This does not disable support or the need for session managers,
+# it just prevents this subproject feature.
+#
+# AptX and LDAC are not available in OE. Currently, neither
+# are lv2, ROC, and libmysofa.
+#
+# The RTKit module is deprecated in favor of the newer RT module.
+# It still exists for legacy setups that still include it in
+# their PipeWire configuration files.
+EXTRA_OEMESON += " \
+ -Devl=disabled \
+ -Dtests=disabled \
+ -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \
+ -Dsystemd-system-unit-dir=${systemd_system_unitdir} \
+ -Dsystemd-user-unit-dir=${systemd_user_unitdir} \
+ -Dman=disabled \
+ -Dsession-managers='[]' \
+ -Dlv2=disabled \
+ -Droc=disabled \
+ -Dbluez5-codec-aptx=disabled \
+ -Dbluez5-codec-ldac=disabled \
+ -Dlegacy-rtkit=false \
+ -Dlibmysofa=disabled \
+"
+
+# spa alsa plugin code uses typedef redefinition, which is officially a C11 feature.
+# Pipewire builds with 'c_std=gnu99' by default. Recent versions of gcc don't issue this warning in gnu99
+# mode but it looks like clang still does
+CFLAGS:append = " -Wno-typedef-redefinition"
+
+# According to wireplumber documentation only one session manager should be installed at a time
+# Possible options are media-session, which has fewer dependencies but is very simple,
+# or wireplumber, which is more powerful.
+PIPEWIRE_SESSION_MANAGER ??= "wireplumber"
+
+FFMPEG_AVAILABLE = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'ffmpeg', '', d)}"
+BLUETOOTH_AAC = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'bluez-aac', '', d)}"
+
+PACKAGECONFIG:class-target ??= " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez bluez-opus ${BLUETOOTH_AAC}', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'alsa vulkan pulseaudio', d)} \
+ ${PIPEWIRE_SESSION_MANAGER} \
+ ${FFMPEG_AVAILABLE} avahi flatpak gstreamer gsettings jack libusb pw-cat raop sndfile v4l2 udev volume webrtc-echo-cancelling libcamera readline \
+"
+
+# "jack" and "pipewire-jack" packageconfigs cannot be both enabled,
+# since "jack" imports libjack, and "pipewire-jack" generates
+# libjack.so* files, thus colliding with the libpack package. This
+# is why these two are marked in their respective packageconfigs
+# as being in conflict.
+PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev,,pipewire-alsa pipewire-alsa-card-profile"
+PACKAGECONFIG[avahi] = "-Davahi=enabled,-Davahi=disabled,avahi"
+PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc"
+PACKAGECONFIG[bluez-aac] = "-Dbluez5-codec-aac=enabled,-Dbluez5-codec-aac=disabled,fdk-aac"
+PACKAGECONFIG[bluez-opus] = "-Dbluez5-codec-opus=enabled,-Dbluez5-codec-opus=disabled,libopus"
+PACKAGECONFIG[bluez-lc3] = "-Dbluez5-codec-lc3=enabled,-Dbluez5-codec-lc3=disabled,liblc3"
+# From the pipewire git log:
+# "Some Linux phones doesn't use oFono but ModemManager to control the modem."
+# This packageconfig enables modemmanager specific code in the BlueZ backend.
+PACKAGECONFIG[bluez-backend-native-mm] = "-Dbluez5-backend-native-mm=enabled,-Dbluez5-backend-native-mm=disabled,modemmanager"
+PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native graphviz-native"
+PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg"
+PACKAGECONFIG[flatpak] = "-Dflatpak=enabled,-Dflatpak=disabled,glib-2.0"
+PACKAGECONFIG[gsettings] = "-Dgsettings=enabled,-Dgsettings=disabled,glib-2.0"
+PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base,,gstreamer1.0-pipewire"
+PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack"
+PACKAGECONFIG[libcamera] = "-Dlibcamera=enabled,-Dlibcamera=disabled,libcamera libdrm"
+PACKAGECONFIG[libcanberra] = "-Dlibcanberra=enabled,-Dlibcanberra=disabled,libcanberra"
+PACKAGECONFIG[libusb] = "-Dlibusb=enabled,-Dlibusb=disabled,libusb"
+PACKAGECONFIG[media-session] = ",,,pipewire-media-session,,wireplumber"
+PACKAGECONFIG[pulseaudio] = "-Dlibpulse=enabled,-Dlibpulse=disabled,pulseaudio,,pipewire-pulse"
+PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib"
+PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,pipewire-jack,jack"
+PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled"
+PACKAGECONFIG[raop] = "-Draop=enabled,-Draop=disabled,openssl"
+# Starting with version 0.3.60, readline usage can be turned off in pw-cli.
+# If it is disabled, getline() is used as a fallback.
+PACKAGECONFIG[readline] = "-Dreadline=enabled,-Dreadline=disabled,readline"
+PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,libsdl2"
+PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
+PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
+PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=enabled,-Dsystemd-system-service=disabled,systemd"
+# "systemd-user-service" packageconfig will only install service
+# files to rootfs but not enable them as systemd.bbclass
+# currently lacks the feature of enabling user services.
+PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd"
+# pw-cat needs sndfile packageconfig to be enabled
+PACKAGECONFIG[udev] = "-Dudev=enabled,-Dudev=disabled,udev"
+PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev"
+PACKAGECONFIG[volume] = "-Dvolume=enabled,-Dvolume=disabled"
+PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-headers vulkan-loader"
+PACKAGECONFIG[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing-1"
+PACKAGECONFIG[wireplumber] = ",,,wireplumber,,media-session"
+
+PACKAGESPLITFUNCS:prepend = " split_dynamic_packages "
+PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends "
+
+SPA_SUBDIR = "spa-0.2"
+PW_MODULE_SUBDIR = "pipewire-0.3"
+
+remove_unused_installed_files() {
+ # jack.conf is used by pipewire-jack (not the JACK SPA plugin).
+ # Remove it if pipewire-jack is not built to avoid creating the
+ # pipewire-jack package.
+ if ${@bb.utils.contains('PACKAGECONFIG', 'pipewire-jack', 'false', 'true', d)}; then
+ rm -f "${D}${datadir}/pipewire/jack.conf"
+ fi
+
+ # minimal.conf is an example of how to minimally configure the
+ # daemon and is not meant to be used for production.
+ rm -f "${D}${datadir}/pipewire/minimal.conf"
+}
+
+do_install[postfuncs] += "remove_unused_installed_files"
+
+python split_dynamic_packages () {
+ # Create packages for each SPA plugin. These plugins are located
+ # in individual subdirectories, so a recursive search is needed.
+ spa_libdir = d.expand('${libdir}/${SPA_SUBDIR}')
+ do_split_packages(d, spa_libdir, r'^libspa-(.*)\.so$', d.expand('${PN}-spa-plugins-%s'), 'PipeWire SPA plugin for %s', extra_depends='', recursive=True)
+
+ # Create packages for each PipeWire module.
+ pw_module_libdir = d.expand('${libdir}/${PW_MODULE_SUBDIR}')
+ do_split_packages(d, pw_module_libdir, r'^libpipewire-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'PipeWire %s module', extra_depends='', recursive=False)
+}
+
+python set_dynamic_metapkg_rdepends () {
+ import os
+ import oe.utils
+
+ if bb.data.inherits_class('nativesdk', d) or bb.data.inherits_class('native', d):
+ return
+
+ # Go through all generated SPA plugin and PipeWire module packages
+ # (excluding the main package and the -meta package itself) and
+ # add them to the -meta package as RDEPENDS.
+
+ base_pn = d.getVar('PN')
+
+ spa_pn = base_pn + '-spa-plugins'
+ spa_metapkg = spa_pn + '-meta'
+
+ pw_module_pn = base_pn + '-modules'
+ pw_module_metapkg = pw_module_pn + '-meta'
+
+ d.setVar('ALLOW_EMPTY:' + spa_metapkg, "1")
+ d.setVar('FILES:' + spa_metapkg, "")
+
+ d.setVar('ALLOW_EMPTY:' + pw_module_metapkg, "1")
+ d.setVar('FILES:' + pw_module_metapkg, "")
+
+ blacklist = [ spa_pn, spa_metapkg, pw_module_pn, pw_module_metapkg ]
+ spa_metapkg_rdepends = []
+ pw_module_metapkg_rdepends = []
+ pkgdest = d.getVar('PKGDEST')
+
+ for pkg in oe.utils.packages_filter_out_system(d):
+ if pkg in blacklist:
+ continue
+
+ is_spa_pkg = pkg.startswith(spa_pn)
+ is_pw_module_pkg = pkg.startswith(pw_module_pn)
+ if not is_spa_pkg and not is_pw_module_pkg:
+ continue
+
+ if pkg in spa_metapkg_rdepends or pkg in pw_module_metapkg_rdepends:
+ continue
+
+ # See if the package is empty by looking at the contents of its
+ # PKGDEST subdirectory. If this subdirectory is empty, then then
+ # package is empty as well. Empty packages do not get added to
+ # the meta package's RDEPENDS.
+ pkgdir = os.path.join(pkgdest, pkg)
+ if os.path.exists(pkgdir):
+ dir_contents = os.listdir(pkgdir) or []
+ else:
+ dir_contents = []
+ is_empty = len(dir_contents) == 0
+ if not is_empty:
+ if is_spa_pkg:
+ spa_metapkg_rdepends.append(pkg)
+ if is_pw_module_pkg:
+ pw_module_metapkg_rdepends.append(pkg)
+
+ d.setVar('RDEPENDS:' + spa_metapkg, ' '.join(spa_metapkg_rdepends))
+ d.setVar('DESCRIPTION:' + spa_metapkg, spa_pn + ' meta package')
+
+ d.setVar('RDEPENDS:' + pw_module_metapkg, ' '.join(pw_module_metapkg_rdepends))
+ d.setVar('DESCRIPTION:' + pw_module_metapkg, pw_module_pn + ' meta package')
+}
+
+PACKAGES =+ "\
+ libpipewire \
+ ${PN}-tools \
+ ${PN}-pulse \
+ ${PN}-alsa \
+ ${PN}-jack \
+ ${PN}-spa-plugins \
+ ${PN}-spa-plugins-meta \
+ ${PN}-spa-tools \
+ ${PN}-modules \
+ ${PN}-modules-meta \
+ ${PN}-alsa-card-profile \
+ ${PN}-v4l2 \
+ ${PN}-aes67 \
+ gstreamer1.0-pipewire \
+"
+
+PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*"
+PACKAGES_DYNAMIC:class-native = ""
+
+SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire.service', '', d)}"
+CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf"
+FILES:${PN} = " \
+ ${datadir}/pipewire \
+ ${systemd_system_unitdir}/pipewire* \
+ ${systemd_user_unitdir} \
+ ${bindir}/pipewire \
+ ${bindir}/pipewire-avb \
+ ${bindir}/pipewire-vulkan \
+"
+
+RRECOMMENDS:${PN}:class-target += " \
+ pipewire-modules-meta \
+ pipewire-spa-plugins-meta \
+"
+
+FILES:${PN}-dev += " \
+ ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so \
+"
+
+CONFFILES:libpipewire += "${datadir}/pipewire/client.conf"
+FILES:libpipewire = " \
+ ${datadir}/pipewire/client.conf \
+ ${libdir}/libpipewire-*.so.* \
+"
+# Add the bare minimum modules and plugins required to be able
+# to use libpipewire. Without these, it is essentially unusable.
+RDEPENDS:libpipewire += " \
+ ${PN}-modules-client-node \
+ ${PN}-modules-protocol-native \
+ ${PN}-spa-plugins-support \
+"
+
+FILES:${PN}-tools = " \
+ ${bindir}/pw-cat \
+ ${bindir}/pw-cli \
+ ${bindir}/pw-config \
+ ${bindir}/pw-dot \
+ ${bindir}/pw-dsdplay \
+ ${bindir}/pw-dump \
+ ${bindir}/pw-encplay \
+ ${bindir}/pw-link \
+ ${bindir}/pw-loopback \
+ ${bindir}/pw-metadata \
+ ${bindir}/pw-mididump \
+ ${bindir}/pw-midiplay \
+ ${bindir}/pw-midirecord \
+ ${bindir}/pw-mon \
+ ${bindir}/pw-play \
+ ${bindir}/pw-profiler \
+ ${bindir}/pw-record \
+ ${bindir}/pw-reserve \
+ ${bindir}/pw-top \
+"
+
+# This is a shim daemon that is intended to be used as a
+# drop-in PulseAudio replacement, providing a pulseaudio-compatible
+# socket that can be used by applications that use libpulse.
+CONFFILES:${PN}-pulse += "${datadir}/pipewire/pipewire-pulse.conf"
+FILES:${PN}-pulse = " \
+ ${datadir}/pipewire/pipewire-pulse.conf \
+ ${systemd_system_unitdir}/pipewire-pulse.* \
+ ${systemd_user_unitdir}/pipewire-pulse.* \
+ ${bindir}/pipewire-pulse \
+"
+RDEPENDS:${PN}-pulse += " \
+ ${PN}-modules-protocol-pulse \
+"
+
+# ALSA plugin to redirect audio to pipewire.
+FILES:${PN}-alsa = "\
+ ${libdir}/alsa-lib/* \
+ ${datadir}/alsa/alsa.conf.d/* \
+"
+
+# JACK drop-in libraries to redirect audio to pipewire.
+CONFFILES:${PN}-jack = "${datadir}/pipewire/jack.conf"
+FILES:${PN}-jack = "\
+ ${bindir}/pw-jack \
+ ${datadir}/pipewire/jack.conf \
+ ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \
+"
+
+# Dynamic SPA plugin packages (see set_dynamic_metapkg_rdepends).
+FILES:${PN}-spa-plugins = ""
+RRECOMMENDS:${PN}-spa-plugins += "${PN}-spa-plugins-meta"
+
+FILES:${PN}-spa-plugins-bluez5 += " \
+ ${datadir}/${SPA_SUBDIR}/bluez5/* \
+"
+
+FILES:${PN}-spa-tools = " \
+ ${bindir}/spa-* \
+"
+
+# Dynamic PipeWire module packages (see set_dynamic_metapkg_rdepends).
+FILES:${PN}-modules = ""
+RRECOMMENDS:${PN}-modules += "${PN}-modules-meta"
+
+CONFFILES:${PN}-modules-rt = "${datadir}/pipewire/client-rt.conf"
+FILES:${PN}-modules-rt += " \
+ ${datadir}/pipewire/client-rt.conf \
+ ${sysconfdir}/security/limits.d/* \
+ "
+
+CONFFILES:${PN}-modules-filter-chain = "${datadir}/pipewire/filter-chain/*"
+FILES:${PN}-modules-filter-chain += " \
+ ${datadir}/pipewire/filter-chain/* \
+"
+
+FILES:${PN}-alsa-card-profile = " \
+ ${datadir}/alsa-card-profile/* \
+ ${nonarch_base_libdir}/udev/rules.d/90-pipewire-alsa.rules \
+"
+
+# V4L2 interface emulator for sending/receiving data between PipeWire and V4L2 applications.
+FILES:${PN}-v4l2 += " \
+ ${bindir}/pw-v4l2 \
+ ${libdir}/${PW_MODULE_SUBDIR}/v4l2/libpw-v4l2.so \
+"
+
+# AES67 is a standard for audio over IP, from the Audio Engineering Society (AES).
+FILES:${PN}-aes67 += " \
+ ${bindir}/pipewire-aes67 \
+"
+
+FILES:gstreamer1.0-pipewire = " \
+ ${libdir}/gstreamer-1.0/* \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch
new file mode 100644
index 0000000000..498630c638
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch
@@ -0,0 +1,43 @@
+From 7c998657c1787fcad8f0a502063adff71d78a140 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 12 Jun 2023 09:37:10 -0700
+Subject: [PATCH] testsuite: Add tmp-orc.c for missing
+ _orc_code_orc_deinterleave2_s16
+
+Fixes
+| aarch64-yoe-linux-ld.lld: error: undefined symbol: _orc_code_orc_deinterleave2_s16
+| >>> referenced by schroorc.h:1312 (../schroedinger/schroorc.h:1312)
+| >>> wavelet_max_gain.o:(iwt_ref)
+| >>> referenced by schroorc.h:1312 (../schroedinger/schroorc.h:1312)
+| >>> wavelet_max_gain.o:(iwt_ref)
+|
+| aarch64-yoe-linux-ld.lld: error: undefined symbol: _orc_code_orc_interleave2_s16
+| >>> referenced by wavelet_max_gain.c:281 (/usr/src/debug/schroedinger/1.0.11-r0/testsuite/wavelet_max_gain.c:281)
+| >>> wavelet_max_gain.o:(iiwt_ref)
+| >>> referenced by wavelet_max_gain.c:281 (/usr/src/debug/schroedinger/1.0.11-r0/testsuite/wavelet_max_gain.c:281)
+| >>> wavelet_max_gain.o:(iiwt_ref)
+| clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
+| make[3]: *** [Makefile:1147: wavelet_max_gain] Error 1
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ testsuite/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
+index 6ee1130..762ecf2 100644
+--- a/testsuite/Makefile.am
++++ b/testsuite/Makefile.am
+@@ -100,6 +100,7 @@ wavelet_2d_SOURCES = wavelet_2d.c
+ nodist_wavelet_2d_SOURCES = $(top_srcdir)/schroedinger/tmp-orc.c
+
+ wavelet_max_gain_SOURCES = wavelet_max_gain.c
++nodist_wavelet_max_gain_SOURCES = $(top_srcdir)/schroedinger/tmp-orc.c
+
+ wavelet_noise_2d_SOURCES = wavelet_noise_2d.c
+
+--
+2.41.0
+
diff --git a/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb
index c9d98a2da1..e8f6df6348 100644
--- a/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb
+++ b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb
@@ -11,6 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d91a46405fc074b88c963cc4f2a0aae9 \
DEPENDS = "orc-native orc"
SRC_URI = "https://download.videolan.org/contrib/${BPN}/${BP}.tar.gz \
+ file://0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch \
file://configure.ac.patch"
SRC_URI[md5sum] = "da6af08e564ca1157348fb8d92efc891"
@@ -18,5 +19,5 @@ SRC_URI[sha256sum] = "1e572a0735b92aca5746c4528f9bebd35aa0ccf8619b22fa2756137a8c
EXTRA_OECONF += "STAGING_DIR=${STAGING_DIR_NATIVE}"
-inherit autotools-brokensep pkgconfig
+inherit autotools-brokensep pkgconfig gtk-doc
diff --git a/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch b/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch
index 4f02a66fcc..3085bd495c 100644
--- a/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch
+++ b/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch
@@ -1,11 +1,11 @@
From d0313be5fb947df399a4db24a5f9244510d2ce87 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 12 Jul 2017 16:36:06 -0700
-Subject: [PATCH] remove the #error line and live without file-type detection
- with pipes
+Subject: [PATCH] remove the #error line and live without file-type detection with pipes
this fallback is executed with musl
+Upstream-Status: Inappropriate [musl specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/formats.c | 1 -
diff --git a/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb b/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb
index ace8743f3a..011cbc2a9d 100644
--- a/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb
+++ b/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb
@@ -4,7 +4,7 @@ and can apply different effects and filters to the audio data."
HOMEPAGE = "http://sox.sourceforge.net"
SECTION = "audio"
-DEPENDS = "libpng ffmpeg libsndfile1 libtool"
+DEPENDS = "libpng libsndfile1 libtool"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)} \
magic \
diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch b/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch
new file mode 100644
index 0000000000..af504be766
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch
@@ -0,0 +1,56 @@
+From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de>
+Date: Thu, 14 Mar 2024 09:41:57 +0100
+Subject: [PATCH 2/2] configure: Replace manual search for libxml by
+ AC_CHECK_LIB
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The manual search fails if the include directories (and build environment)
+are located somewhere else.
+
+Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de>
+Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74]
+---
+
+ERROR: spandsp-3.0.0+git-r0 do_configure: QA Issue: This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities.
+
+ configure.ac | 22 +++++-----------------
+ 1 file changed, 5 insertions(+), 17 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2140837..b5138d6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -185,23 +185,11 @@ then
+ fi
+
+ # Determine XML2 include path
+-AC_MSG_CHECKING(for libxml/xmlmemory.h)
+-
+-# Can we include headers using system include dirs?
+-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libxml/xmlmemory.h>]], [[int a = 1;]])],[XML2_INCLUDE=" "],[XML2_INCLUDE=])
+-
+-# Hunt through several possible directories to find the includes for libxml2
+-if test "x$XML2_INCLUDE" = "x"; then
+- old_CPPFLAGS="$CPPFLAGS"
+- for i in $xml2_include_dir /usr/include /usr/local/include /usr/include/libxml2 /usr/local/include/libxml2 ; do
+- CPPFLAGS="$old_CPPFLAGS -I$i"
+- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libxml/xmlmemory.h>]], [[int a = 1;]])],[XML2_INCLUDE="-I$i"],[XML2_INCLUDE=
+- ])
+- if test "x$XML2_INCLUDE" != "x"; then
+- break;
+- fi
+- done
+- CPPFLAGS="$old_CPPFLAGS $XML2_INCLUDE"
++AC_CHECK_LIB([xml2], [xmlParseFile], [libxml2_found=yes])
++if test "$libxml2_found" = "yes" ; then
++ AC_DEFINE(HAVE_LIBXML2,1,[defined when libxml2 is available])
++else
++ AC_MSG_WARN([libxml2 not found. Disabling cache.])
+ fi
+
+ AC_CHECK_HEADERS([libxml/xmlmemory.h])
+--
+2.34.1
+
diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch b/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch
new file mode 100644
index 0000000000..d3eb047fe5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch
@@ -0,0 +1,161 @@
+From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de>
+Date: Thu, 14 Mar 2024 08:08:13 +0100
+Subject: [PATCH 1/2] configure: Use AX_PROG_CC_FOR_BUILD for cross compiling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The macro AX_PROG_CC_FOR_BUILD [1] sets the variables CC_FOR_BUILD and
+..._FLAGS_FOR_BUILD they can be used [2] to build binaries used at compile
+time.
+
+[1]: https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html
+[2]: https://stackoverflow.com/questions/24201260/autotools-cross-compilation-and-generated-sources/24208587#24208587
+
+Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de>
+Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74]
+---
+ configure.ac | 49 +-------------------------------------------
+ src/Makefile.am | 54 +++++++++++++++++++++++++------------------------
+ 2 files changed, 29 insertions(+), 74 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 96fd022..2140837 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,54 +55,7 @@ AC_LANG([C])
+
+ AX_COMPILER_VENDOR
+
+-if test "${build}" != "${host}"
+-then
+- # If we are doing a Canadian Cross, in which the host and build systems
+- # are not the same, we set reasonable default values for the tools.
+-
+- CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
+- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)"
+- CC=${CC-${host_alias}-gcc}
+- CFLAGS=${CFLAGS-"-g -O2"}
+- CXX=${CXX-${host_alias}-c++}
+- CXXFLAGS=${CXXFLAGS-"-g -O2"}
+-else
+- # Set reasonable default values for some tools even if not Canadian.
+- # Of course, these are different reasonable default values, originally
+- # specified directly in the Makefile.
+- # We don't export, so that autoconf can do its job.
+- # Note that all these settings are above the fragment inclusion point
+- # in Makefile.in, so can still be overridden by fragments.
+- # This is all going to change when we autoconfiscate...
+- CC_FOR_BUILD="\$(CC)"
+- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)"
+- AC_PROG_CC
+-
+- # We must set the default linker to the linker used by gcc for the correct
+- # operation of libtool. If LD is not defined and we are using gcc, try to
+- # set the LD default to the ld used by gcc.
+- if test -z "$LD"
+- then
+- if test "$GCC" = yes
+- then
+- case $build in
+- *-*-mingw*)
+- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
+- *)
+- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
+- esac
+- case $gcc_prog_ld in
+- # Accept absolute paths.
+- [[\\/]* | [A-Za-z]:[\\/]*)]
+- LD="$gcc_prog_ld" ;;
+- esac
+- fi
+- fi
+-
+- CXX=${CXX-"c++"}
+- CFLAGS=${CFLAGS-"-g -O2"}
+- CXXFLAGS=${CXXFLAGS-"-g -O2"}
+-fi
++AX_PROG_CC_FOR_BUILD
+
+ AC_DEFUN([REMOVE_FROM_VAR],[
+ new_val=""
+diff --git a/src/Makefile.am b/src/Makefile.am
+index e05fad5..9b409a1 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -386,44 +386,46 @@ noinst_HEADERS = cielab_luts.h \
+ v34_tx_pre_emphasis_filters.h \
+ v34_tables.h
+
+-make_at_dictionary$(EXEEXT): $(top_srcdir)/src/make_at_dictionary.c
+- $(CC_FOR_BUILD) -o make_at_dictionary$(EXEEXT) $(top_srcdir)/src/make_at_dictionary.c -DHAVE_CONFIG_H -I$(top_builddir)/src
++LINK_FOR_BUILD.c = $(CC_FOR_BUILD) -DHAVE_CONFIG_H -I$(top_builddir)/src $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(TARGET_ARCH_FOR_BUILD)
+
+-make_cielab_luts$(EXEEXT): $(top_srcdir)/src/make_cielab_luts.c
+- $(CC_FOR_BUILD) -o make_cielab_luts$(EXEEXT) $(top_srcdir)/src/make_cielab_luts.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_at_dictionary$(BUILD_EXEEXT): $(top_srcdir)/src/make_at_dictionary.c
++ $(LINK_FOR_BUILD.c) -o $@ $^
+
+-make_math_fixed_tables$(EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c
+- $(CC_FOR_BUILD) -o make_math_fixed_tables$(EXEEXT) $(top_srcdir)/src/make_math_fixed_tables.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_cielab_luts$(BUILD_EXEEXT): $(top_srcdir)/src/make_cielab_luts.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_modem_filter$(EXEEXT): $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c
+- $(CC_FOR_BUILD) -o make_modem_filter$(EXEEXT) $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_math_fixed_tables$(BUILD_EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_modem_godard_coefficients$(EXEEXT): $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c
+- $(CC_FOR_BUILD) -o make_modem_godard_coefficients$(EXEEXT) $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_modem_filter$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_t43_gray_code_tables$(EXEEXT): $(top_srcdir)/src/make_t43_gray_code_tables.c
+- $(CC_FOR_BUILD) -o make_t43_gray_code_tables$(EXEEXT) $(top_srcdir)/src/make_t43_gray_code_tables.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_modem_godard_coefficients$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_v17_v32_constellation_map$(EXEEXT): $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
+- $(CC_FOR_BUILD) -o make_v17_v32_constellation_map$(EXEEXT) $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_t43_gray_code_tables$(BUILD_EXEEXT): $(top_srcdir)/src/make_t43_gray_code_tables.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_v17_v32_convolutional_encoder$(EXEEXT): $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
+- $(CC_FOR_BUILD) -o make_v17_v32_convolutional_encoder$(EXEEXT) $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_v17_v32_constellation_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_v29_constellation_map$(EXEEXT): $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
+- $(CC_FOR_BUILD) -o make_v29_constellation_map$(EXEEXT) $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_v17_v32_convolutional_encoder$(BUILD_EXEEXT): $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_v34_convolutional_coders$(EXEEXT): $(top_srcdir)/src/make_v34_convolutional_coders.c
+- $(CC_FOR_BUILD) -o make_v34_convolutional_coders$(EXEEXT) $(top_srcdir)/src/make_v34_convolutional_coders.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_v29_constellation_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_v34_probe_signals$(EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
+- $(CC_FOR_BUILD) -o make_v34_probe_signals$(EXEEXT) $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm
++make_v34_convolutional_coders$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_convolutional_coders.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm
+
+-make_v34_shell_map$(EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c
+- $(CC_FOR_BUILD) -o make_v34_shell_map$(EXEEXT) $(top_srcdir)/src/make_v34_shell_map.c -DHAVE_CONFIG_H -I$(top_builddir)/src
++make_v34_probe_signals$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/src -lm
+
+-make_v34_tx_pre_emphasis_filters$(EXEEXT): $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c
+- $(CC_FOR_BUILD) -o make_v34_tx_pre_emphasis_filters$(EXEEXT) $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c -DHAVE_CONFIG_H -I$(top_builddir)/src -I$(top_builddir)/tools -lm
++make_v34_shell_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c
++ $(LINK_FOR_BUILD.c) -o $@ $^
++
++make_v34_tx_pre_emphasis_filters$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c
++ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/tools -lm
+
+ # We need to run make_at_dictionary, so it generates the
+ # at_interpreter_dictionary.h file
+--
+2.34.1
+
diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb
new file mode 100644
index 0000000000..f115553fd1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb
@@ -0,0 +1,50 @@
+SUMMARY = "A DSP library for telephony"
+DESCRIPTION = "\
+ SpanDSP is a low-level signal processing library that modulates and \
+ demodulates signals commonly used in telephony, such as the \"noise\" \
+ generated by a fax modem or DTMF touchpad. \
+"
+HOMEPAGE = "https://www.soft-switch.org/"
+BUGTRACKER = "https://github.com/freeswitch/spandsp/issues"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8791c23ddf418deb5be264cffb5fa6bc"
+
+DEPENDS = "\
+ libxml2 \
+ tiff \
+ tiff-native \
+"
+
+PV = "3.0.0+git"
+
+SRC_URI = "\
+ git://github.com/freeswitch/spandsp.git;protocol=https;branch=master \
+ file://configure.patch \
+ file://makefile.patch \
+"
+# Fails to build with Clang since 5394b2cae6c482ccb835335b769469977e6802ae
+# https://github.com/freeswitch/spandsp/issues/67
+# https://lists.openembedded.org/g/openembedded-devel/message/109325
+SRCREV = "df1282eb9af538ab1aadb6d66146e258451d4fe4"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PACKAGECONFIG ?= ""
+
+PACKAGECONFIG[mmx] = "--enable-mmx,--disable-mmx"
+PACKAGECONFIG[sse] = "--enable-sse,--disable-sse"
+PACKAGECONFIG[sse2] = "--enable-sse2,--disable-sse2"
+PACKAGECONFIG[sse3] = "--enable-sse3,--disable-sse3"
+PACKAGECONFIG[ssse3] = "--enable-ssse3,--disable-ssse3"
+PACKAGECONFIG[sse4-1] = "--enable-sse4-1,--disable-sse4-1"
+PACKAGECONFIG[sse4-2] = "--enable-sse4-2,--disable-sse4-2"
+PACKAGECONFIG[avx] = "--enable-avx,--disable-avx"
+PACKAGECONFIG[avx2] = "--enable-avx2,--disable-avx2"
+PACKAGECONFIG[neon] = "--enable-neon,--disable-neon"
+PACKAGECONFIG[fixed-point] = "--enable-fixed-point,--disable-fixed-point"
+PACKAGECONFIG[v32bis] = "--enable-v32bis,--disable-v32bis"
+PACKAGECONFIG[v34] = "--enable-v34,--disable-v34"
+PACKAGECONFIG[sslfax] = "--enable-sslfax,--disable-sslfax"
diff --git a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb
deleted file mode 100644
index 68cf8795a6..0000000000
--- a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "TinyALSA is a small library to interface with ALSA in \
-the Linux kernel. It is a lightweight alternative to libasound."
-HOMEPAGE = "https://github.com/tinyalsa/tinyalsa"
-SECTION = "libs/multimedia"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://NOTICE;md5=dbdefe400d894b510a9de14813181d0b"
-
-SRCREV = "8449529c7e50f432091539ba7b438e79b04059b5"
-SRC_URI = "git://github.com/tinyalsa/tinyalsa;branch=master;protocol=https \
- file://0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch \
- "
-PV = "1.1.1+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-# tinyalsa is built as a static library. Enable PIC to avoid relocation
-# errors like these:
-#
-# unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stderr@@GLIBC_2.17'
-CFLAGS += " -fPIC -DPIC "
diff --git a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch
deleted file mode 100644
index 6f9c39996b..0000000000
--- a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From fe4f3c2a37a81201f463ff962364f014f50c9896 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 16 Dec 2019 22:58:41 -0800
-Subject: [PATCH] Use CMAKE_INSTALL_<path> instead of hardcoding bin/lib/
- install paths
-
-Helps fix build/packaging issues on machines where default libdir is not
-lib but say lib64
-
-Upstream-Status: Submitted [https://github.com/tinyalsa/tinyalsa/pull/143]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 14 +++++++++++---
- 1 file changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index cb31c58..1cc4a85 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -41,12 +41,20 @@ add_util("tinymix" "utils/tinymix.c")
- install(FILES ${HDRS}
- DESTINATION "include/tinyalsa")
-
-+if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
-+ set(CMAKE_INSTALL_LIBDIR lib)
-+endif()
-+
-+if(NOT DEFINED CMAKE_INSTALL_BINDIR)
-+ set(CMAKE_INSTALL_BINDIR bin)
-+endif()
-+
- install(TARGETS "tinyalsa"
- "tinyplay"
- "tinycap"
- "tinymix"
- "tinypcminfo"
-- RUNTIME DESTINATION "bin"
-- ARCHIVE DESTINATION "lib"
-- LIBRARY DESTINATION "lib")
-+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
-
---
-2.24.1
-
diff --git a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-fixed-compilation-error-caused-by-strncpy.patch b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-fixed-compilation-error-caused-by-strncpy.patch
new file mode 100644
index 0000000000..64ebdb19c9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-fixed-compilation-error-caused-by-strncpy.patch
@@ -0,0 +1,69 @@
+From 639650dd64e483074dd7c3c7ea6dc1b1bd542743 Mon Sep 17 00:00:00 2001
+From: alperak <alperyasinak1@gmail.com>
+Date: Sun, 12 Nov 2023 20:16:55 +0300
+Subject: [PATCH] fixed compilation error caused by strncpy
+
+Issue:
+ https://github.com/tinyalsa/tinyalsa/issues/219
+
+Fix:
+ https://github.com/tinyalsa/tinyalsa/pull/220
+ https://github.com/tinyalsa/tinyalsa/pull/221
+
+Upstream-Status: Submitted
+
+Signed-off-by: alperak <alperyasinak1@gmail.com>
+---
+ src/mixer_plugin.c | 8 +++++---
+ src/pcm_plugin.c | 9 ++++++---
+ 2 files changed, 11 insertions(+), 6 deletions(-)
+
+diff --git a/src/mixer_plugin.c b/src/mixer_plugin.c
+index 34117a9..f608563 100644
+--- a/src/mixer_plugin.c
++++ b/src/mixer_plugin.c
+@@ -82,7 +82,8 @@ static int mixer_plug_get_elem_id(struct mixer_plug_data *plug_data,
+ id->iface = ctl->iface;
+
+ strncpy((char *)id->name, (char *)ctl->name,
+- sizeof(id->name));
++ sizeof(id->name) - 1);
++ ((char *)id->name)[sizeof(id->name) - 1] = '\0';
+
+ return 0;
+ }
+@@ -100,8 +101,9 @@ static int mixer_plug_info_enum(struct snd_control *ctl,
+
+ strncpy(einfo->value.enumerated.name,
+ val->texts[einfo->value.enumerated.item],
+- sizeof(einfo->value.enumerated.name));
+-
++ sizeof(einfo->value.enumerated.name) - 1);
++ einfo->value.enumerated.name[sizeof(einfo->value.enumerated.name) - 1] = '\0';
++
+ return 0;
+ }
+
+diff --git a/src/pcm_plugin.c b/src/pcm_plugin.c
+index 15bfc80..47bf4a5 100644
+--- a/src/pcm_plugin.c
++++ b/src/pcm_plugin.c
+@@ -153,9 +153,12 @@ static int pcm_plug_info(struct pcm_plug_data *plug_data,
+ return ret;
+ }
+
+- strncpy((char *)info->id, name, sizeof(info->id));
+- strncpy((char *)info->name, name, sizeof(info->name));
+- strncpy((char *)info->subname, name, sizeof(info->subname));
++ strncpy((char *)info->id, name, sizeof(info->id) - 1);
++ ((char *)info->id)[sizeof(info->id) - 1] = '\0';
++ strncpy((char *)info->name, name, sizeof(info->name) - 1);
++ ((char *)info->name)[sizeof(info->name) - 1] = '\0';
++ strncpy((char *)info->subname, name, sizeof(info->subname) - 1);
++ ((char *)info->subname)[sizeof(info->subname) - 1] = '\0';
+
+ info->subdevices_count = 1;
+
+--
+2.25.1
+
diff --git a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_2.0.0.bb b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_2.0.0.bb
new file mode 100644
index 0000000000..e261611afd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_2.0.0.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "TinyALSA is a small library to interface with ALSA in \
+the Linux kernel. It is a lightweight alternative to libasound."
+HOMEPAGE = "https://github.com/tinyalsa/tinyalsa"
+SECTION = "libs/multimedia"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://NOTICE;md5=e04cd6fa58488e016f7fb648ebea1db4"
+
+SRCREV = "1c5fb68ced57d838f2b7ecd0c00bc1fefc9ab60d"
+SRC_URI = "git://github.com/tinyalsa/tinyalsa;branch=master;protocol=https \
+ file://0001-fixed-compilation-error-caused-by-strncpy.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+# tinyalsa is built as a static library. Enable PIC to avoid relocation
+# errors like these:
+#
+# unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stderr@@GLIBC_2.17'
+CFLAGS += " -fPIC -DPIC "
diff --git a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb
deleted file mode 100644
index 0b472b81d9..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "libdvdcss is a simple library for accessing DVDs like block devices"
-DESCRIPTION = "libdvdcss is a simple library designed for accessing DVDs like a block device without having to bother about the decryption."
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://download.videolan.org/pub/libdvdcss/${PV}/libdvdcss-${PV}.tar.bz2"
-
-inherit autotools
-
-EXTRA_OECONF = " --disable-doc "
-
-SRC_URI[md5sum] = "7b74f2e142b13c9de6dc8d807ab912d4"
-SRC_URI[sha256sum] = "78c2ed77ec9c0d8fbed7bf7d3abc82068b8864be494cfad165821377ff3f2575"
diff --git a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb
new file mode 100644
index 0000000000..42c771e0ff
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb
@@ -0,0 +1,12 @@
+SUMMARY = "libdvdcss is a simple library for accessing DVDs like block devices"
+DESCRIPTION = "libdvdcss is a simple library designed for accessing DVDs like a block device without having to bother about the decryption."
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "http://download.videolan.org/pub/libdvdcss/${PV}/libdvdcss-${PV}.tar.bz2"
+
+inherit autotools
+
+EXTRA_OECONF = " --disable-doc "
+
+SRC_URI[sha256sum] = "233cc92f5dc01c5d3a96f5b3582be7d5cee5a35a52d3a08158745d3d86070079"
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch
deleted file mode 100644
index e1383c826c..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 1068c7451855c3f9acde9af265b5a790073b1641 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 2 Mar 2021 14:28:27 -0800
-Subject: [PATCH] include <limits> header
-
-Fixes
-SegmentInformation.cpp:397:49: error: '::max' has not been declared; d
-id you mean 'std::max'?
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- modules/demux/adaptive/playlist/SegmentInformation.cpp | 1 +
- modules/demux/hls/playlist/Parser.cpp | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/modules/demux/adaptive/playlist/SegmentInformation.cpp b/modules/demux/adaptive/playlist/SegmentInformation.cpp
-index 344e155..8eeb054 100644
---- a/modules/demux/adaptive/playlist/SegmentInformation.cpp
-+++ b/modules/demux/adaptive/playlist/SegmentInformation.cpp
-@@ -34,6 +34,7 @@
-
- #include <algorithm>
- #include <cassert>
-+#include <limits>
-
- using namespace adaptive::playlist;
-
-diff --git a/modules/demux/hls/playlist/Parser.cpp b/modules/demux/hls/playlist/Parser.cpp
-index 67110e4..7439699 100644
---- a/modules/demux/hls/playlist/Parser.cpp
-+++ b/modules/demux/hls/playlist/Parser.cpp
-@@ -42,6 +42,7 @@
- #include <map>
- #include <cctype>
- #include <algorithm>
-+#include <limits>
-
- using namespace adaptive;
- using namespace adaptive::playlist;
---
-2.30.1
-
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch
index 950c09b8ae..d6ff0b2dba 100644
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch
@@ -5,11 +5,9 @@ Upstream-Status: Inappropriate [configuration]
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
-Index: vlc-2.1.4/configure.ac
-===================================================================
---- vlc-2.1.4.orig/configure.ac
-+++ vlc-2.1.4/configure.ac
-@@ -1693,7 +1693,16 @@ PKG_ENABLE_MODULES_VLC([BLURAY], [libblu
+--- a/configure.ac
++++ b/configure.ac
+@@ -1891,7 +1891,16 @@ PKG_ENABLE_MODULES_VLC([BLURAY], [libblu
dnl
dnl OpenCV wrapper and example filters
dnl
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch
new file mode 100644
index 0000000000..866ed03294
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch
@@ -0,0 +1,44 @@
+From fc4bd86bea0b81da0b6fa5be0a352aecc8fa690a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Sep 2023 20:13:55 -0700
+Subject: [PATCH] po: Fix invalid .oc translation format string
+
+gettext can validate format strings now [1] with 0.22 and newer release
+
+[1] https://savannah.gnu.org/bugs/index.php?64332#comment1
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ po/oc.po | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/po/oc.po b/po/oc.po
+index 667696cfe7..ddb1677d8a 100644
+--- a/po/oc.po
++++ b/po/oc.po
+@@ -5298,18 +5298,18 @@ msgstr "Comanda+"
+ #: src/misc/update.c:482
+ #, c-format
+ msgid "%.1f GiB"
+-msgstr "%.lf Gio"
++msgstr "%.1f Gio"
+
+ #: src/misc/update.c:484
+ #, c-format
+ msgid "%.1f MiB"
+-msgstr "%.lf Mio"
++msgstr "%.1f Mio"
+
+ #: src/misc/update.c:486 modules/gui/macosx/VLCPlaylistInfo.m:138
+ #: modules/gui/macosx/VLCPlaylistInfo.m:140
+ #, c-format
+ msgid "%.1f KiB"
+-msgstr "%.lf Kio"
++msgstr "%.1f Kio"
+
+ #: src/misc/update.c:488
+ #, c-format
+--
+2.42.0
+
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-taglib-Fix-build-on-x86-32-bit.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-taglib-Fix-build-on-x86-32-bit.patch
new file mode 100644
index 0000000000..2dff9b63ce
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-taglib-Fix-build-on-x86-32-bit.patch
@@ -0,0 +1,50 @@
+From 5b921009b0db2c5c15aef7ce241d3c81f9c272c9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Mar 2024 12:26:39 -0800
+Subject: [PATCH] taglib: Fix build on x86 32-bit
+
+While compiling with clang, there are errors seen such as
+on function override signature mismatches
+
+meta_engine/taglib.cpp:240:10: error: virtual function 'tell' has a different return type ('long') than the function it overrides (which has return type 'offset_t' (aka 'long long'))
+ 240 | long tell() const
+ | ~~~~ ^
+/mnt/b/yoe/master/build/tmp/work/core2-32-yoe-linux/vlc/3.0.20/recipe-sysroot/usr/include/taglib/tiostream.h:156:22: note: overridden virtual function is here
+ 156 | virtual offset_t tell() const = 0;
+ | ~~~~~~~~ ^
+meta_engine/taglib.cpp:245:10: error: virtual function 'length' has a different return type ('long') than the function it overrides (which has return type 'offset_t' (aka 'long long'))
+ 245 | long length()
+ | ~~~~ ^
+/mnt/b/yoe/master/build/tmp/work/core2-32-yoe-linux/vlc/3.0.20/recipe-sysroot/usr/include/taglib/tiostream.h:161:22: note: overridden virtual function is here
+ 161 | virtual offset_t length() = 0;
+ | ~~~~~~~~ ^
+
+Upstream-Status: Submitted [https://mailman.videolan.org/pipermail/vlc-devel/2024-March/143639.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ modules/meta_engine/taglib.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
+index f371485008..129fdf55f1 100644
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -237,12 +237,12 @@ public:
+ return;
+ }
+
+- long tell() const
++ offset_t tell() const
+ {
+- return m_previousPos;
++ return (offset_t)m_previousPos;
+ }
+
+- long length()
++ offset_t length()
+ {
+ uint64_t i_size;
+ if (vlc_stream_GetSize( m_stream, &i_size ) != VLC_SUCCESS)
+--
+2.44.0
+
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch
index d05cf02b71..f68da33607 100644
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch
@@ -1,14 +1,12 @@
* tremor provides libvorbisidec, use it instead of libvorbisdec
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
-Index: vlc-2.2.1/modules/codec/Makefile.am
-===================================================================
---- vlc-2.2.1.orig/modules/codec/Makefile.am
-+++ vlc-2.2.1/modules/codec/Makefile.am
-@@ -234,7 +234,7 @@ codec_LTLIBRARIES += $(LTLIBtheora)
+--- a/modules/codec/Makefile.am
++++ b/modules/codec/Makefile.am
+@@ -324,7 +324,7 @@ codec_LTLIBRARIES += $(LTLIBdaala)
libtremor_plugin_la_SOURCES = codec/vorbis.c
libtremor_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DMODULE_NAME_IS_tremor
libtremor_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)'
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch
index 96b5d2d246..e10002f78e 100644
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch
@@ -1,7 +1,7 @@
* luaL_checkint and luaL_optint were deprecated in lua 5.3
* replacement functions are luaL_checkinteger and luaL_optinteger
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch
index 424aaa2815..6659a44a0a 100644
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch
@@ -8,16 +8,15 @@ in different locations, therefore its best to rely on pkgconf to find
the libs and header locations instead of assuming /opt/vc which might
work on some distros ( like raspbian ) but not everywhere
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure.ac | 31 +++++++++++--------------------
1 file changed, 11 insertions(+), 20 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index d7cf692..f81b99d 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -3427,27 +3427,18 @@ AC_ARG_ENABLE(mmal,
+@@ -3460,27 +3460,18 @@ AC_ARG_ENABLE(mmal,
AS_HELP_STRING([--enable-mmal],
[Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
if test "${enable_mmal}" != "no"; then
@@ -56,6 +55,3 @@ index d7cf692..f81b99d 100644
dnl
dnl evas plugin
---
-2.26.1
-
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch
new file mode 100644
index 0000000000..89e7d585d7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch
@@ -0,0 +1,40 @@
+From a46cee56d05884b8020ace6f67ef8389ac1845da Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 5 Mar 2023 13:50:40 -0800
+Subject: [PATCH 1/3] ioctl does not have same signature between glibc and musl
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ modules/access/v4l2/lib.c | 4 ++++
+ modules/access/v4l2/v4l2.h | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+--- a/modules/access/v4l2/lib.c
++++ b/modules/access/v4l2/lib.c
+@@ -49,7 +49,11 @@ int (*v4l2_fd_open) (int, int) = fd_open
+ //int (*v4l2_open) (const char *, int, ...) = open;
+ //int (*v4l2_dup) (const char *, int, ...) = dup;
+ int (*v4l2_close) (int) = close;
++#ifdef __GLIBC__
+ int (*v4l2_ioctl) (int, unsigned long int, ...) = ioctl;
++#else
++int (*v4l2_ioctl) (int, int, ...) = ioctl;
++#endif
+ ssize_t (*v4l2_read) (int, void *, size_t) = read;
+ //ssize_t (*v4l2_write) (int, const void *, size_t) = write;
+ void * (*v4l2_mmap) (void *, size_t, int, int, int, int64_t) = mmap;
+--- a/modules/access/v4l2/v4l2.h
++++ b/modules/access/v4l2/v4l2.h
+@@ -28,7 +28,11 @@
+ /* libv4l2 functions */
+ extern int (*v4l2_fd_open) (int, int);
+ extern int (*v4l2_close) (int);
++#ifdef __GLIBC__
+ extern int (*v4l2_ioctl) (int, unsigned long int, ...);
++#else
++extern int (*v4l2_ioctl) (int, int, ...);
++#endif
+ extern ssize_t (*v4l2_read) (int, void *, size_t);
+ extern void * (*v4l2_mmap) (void *, size_t, int, int, int, int64_t);
+ extern int (*v4l2_munmap) (void *, size_t);
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch
deleted file mode 100644
index 405490dcfc..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From f7957c35654222e5bd1038341612bbb40a88e98b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 16 Nov 2020 12:08:43 -0800
-Subject: [PATCH] linux/thread: Use SYS_futex instead of __NR_futex
-
-SYS_futex it expected from system C library.
-in glibc (/usr/include/bits/syscall.h defines it in terms of of NR_futex)
-some newer 32bit architectures e.g. riscv32 are using 64bit time_t from
-get go unlike other 32bit architectures in glibc, therefore it wont have
-NR_futex defined but just NR_futex_time64 this aliases it to NR_futex so
-that SYS_futex is then defined for rv32
-
-Upstream-Status: Submitted [https://github.com/videolan/vlc/pull/117]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/linux/thread.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/src/linux/thread.c b/src/linux/thread.c
-index 20da296..30639a3 100644
---- a/src/linux/thread.c
-+++ b/src/linux/thread.c
-@@ -30,6 +30,11 @@
- #include <sys/syscall.h>
- #include <linux/futex.h>
-
-+/* 32bit architectures with 64bit time_t do not define __NR_futex syscall */
-+#if !defined(SYS_futex) && defined(SYS_futex_time64)
-+#define SYS_futex SYS_futex_time64
-+#endif
-+
- #ifndef FUTEX_PRIVATE_FLAG
- #define FUTEX_WAKE_PRIVATE FUTEX_WAKE
- #define FUTEX_WAIT_PRIVATE FUTEX_WAIT
-@@ -50,7 +55,7 @@ unsigned long vlc_thread_id(void)
- static int sys_futex(void *addr, int op, unsigned val,
- const struct timespec *to, void *addr2, int val3)
- {
-- return syscall(__NR_futex, addr, op, val, to, addr2, val3);
-+ return syscall(SYS_futex, addr, op, val, to, addr2, val3);
- }
-
- static int vlc_futex_wake(void *addr, int nr)
---
-2.29.2
-
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch
new file mode 100644
index 0000000000..b158328aa2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch
@@ -0,0 +1,26 @@
+From 048e4fdd08ac588feb27b03e3ec1824e24f77d62 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 5 Mar 2023 14:13:25 -0800
+Subject: [PATCH 3/3] configure: Disable incompatible-function-pointer-types
+ warning
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -98,6 +98,11 @@ AS_IF([test -n "${with_binary_version}"]
+ dnl Prevent clang from accepting unknown flags with a mere warning
+ AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CFLAGS])
+ AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CXXFLAGS])
++dnl disable clang from erroring on function pointer protype mismatch, vlc seems to rely on that
++dnl especially in modules/video_filter/deinterlace/algo_yadif.c how it interpolates 'filter` variable
++dnl between different functions yadif_filter_line_c_16bit() and yadif_filter_line_c()
++AX_APPEND_COMPILE_FLAGS([-Wno-error=incompatible-function-pointer-types -Wno-error=incompatible-function-pointer-types], [CFLAGS])
++AX_APPEND_COMPILE_FLAGS([-Wno-error=incompatible-function-pointer-types -Wno-error=incompatible-function-pointer-types], [CXXFLAGS])
+
+ dnl
+ dnl Check the operating system
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/taglib-2.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/taglib-2.patch
new file mode 100644
index 0000000000..f238ff4244
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/taglib-2.patch
@@ -0,0 +1,67 @@
+Fix build with taglib 2.0
+
+Source: https://gitlab.archlinux.org/archlinux/packaging/packages/vlc/-/blob/main/taglib-2.patch?ref_type=heads
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/modules/meta_engine/taglib.cpp
++++ b/modules/meta_engine/taglib.cpp
+@@ -185,7 +185,7 @@ public:
+ ByteVector res(length, 0);
+ ssize_t i_read = vlc_stream_Read( m_stream, res.data(), length);
+ if (i_read < 0)
+- return ByteVector::null;
++ return ByteVector();
+ else if ((size_t)i_read != length)
+ res.resize(i_read);
+ return res;
+@@ -465,7 +465,7 @@ static void ReadMetaFromASF( ASF::Tag* t
+ static void ReadMetaFromBasicTag(const Tag* tag, vlc_meta_t *dest)
+ {
+ #define SET( accessor, meta ) \
+- if( !tag->accessor().isNull() && !tag->accessor().isEmpty() ) \
++ if( !tag->accessor().isEmpty() ) \
+ vlc_meta_Set##meta( dest, tag->accessor().toCString(true) )
+ #define SETINT( accessor, meta ) \
+ if( tag->accessor() ) \
+@@ -806,15 +806,15 @@ static void ReadMetaFromMP4( MP4::Tag* t
+ {
+ MP4::Item list;
+ #define SET( keyName, metaName ) \
+- if( tag->itemListMap().contains(keyName) ) \
++ if( tag->itemMap().contains(keyName) ) \
+ { \
+- list = tag->itemListMap()[keyName]; \
++ list = tag->itemMap()[keyName]; \
+ vlc_meta_Set##metaName( p_meta, list.toStringList().front().toCString( true ) ); \
+ }
+ #define SET_EXTRA( keyName, metaName ) \
+- if( tag->itemListMap().contains(keyName) ) \
++ if( tag->itemMap().contains(keyName) ) \
+ { \
+- list = tag->itemListMap()[keyName]; \
++ list = tag->itemMap()[keyName]; \
+ vlc_meta_AddExtra( p_meta, metaName, list.toStringList().front().toCString( true ) ); \
+ }
+
+@@ -824,9 +824,9 @@ static void ReadMetaFromMP4( MP4::Tag* t
+ #undef SET
+ #undef SET_EXTRA
+
+- if( tag->itemListMap().contains("covr") )
++ if( tag->itemMap().contains("covr") )
+ {
+- MP4::CoverArtList list = tag->itemListMap()["covr"].toCoverArtList();
++ MP4::CoverArtList list = tag->itemMap()["covr"].toCoverArtList();
+ const char *psz_format = list[0].format() == MP4::CoverArt::PNG ? "image/png" : "image/jpeg";
+
+ msg_Dbg( p_demux_meta, "Found embedded art (%s) is %i bytes",
+@@ -1337,7 +1337,7 @@ static int WriteMeta( vlc_object_t *p_th
+ if( RIFF::AIFF::File* riff_aiff = dynamic_cast<RIFF::AIFF::File*>(f.file()) )
+ WriteMetaToId3v2( riff_aiff->tag(), p_item );
+ else if( RIFF::WAV::File* riff_wav = dynamic_cast<RIFF::WAV::File*>(f.file()) )
+- WriteMetaToId3v2( riff_wav->tag(), p_item );
++ WriteMetaToId3v2( riff_wav->ID3v2Tag(), p_item );
+ }
+ else if( TrueAudio::File* trueaudio = dynamic_cast<TrueAudio::File*>(f.file()) )
+ {
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.17-1.bb b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.17-1.bb
deleted file mode 100644
index 9b85cb5374..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.17-1.bb
+++ /dev/null
@@ -1,132 +0,0 @@
-DESCRIPTION = "Video player and streamer - davinci edition"
-HOMEPAGE = "http://www.videolan.org"
-SECTION = "multimedia"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native bison-native \
- dbus libxml2 gnutls \
- tremor faad2 ffmpeg flac alsa-lib \
- lua-native lua libidn \
- avahi jpeg xz libmodplug mpeg2dec \
- libmtp libopus orc libsamplerate0 libusb1 schroedinger taglib \
- tiff"
-
-LDFLAGS:append:riscv64 = " -latomic"
-LDFLAGS:append:riscv32 = " -latomic"
-
-SRC_URI = "git://github.com/videolan/vlc.git;protocol=https;branch=3.0.x \
- file://0001-make-opencv-configurable.patch \
- file://0002-use-vorbisidec.patch \
- file://0003-fix-luaL-checkint.patch \
- file://0004-Use-packageconfig-to-detect-mmal-support.patch \
- file://0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch \
-"
-SRCREV = "aa76328c572d93f1d99c867a94ecad1dc3259733"
-S = "${WORKDIR}/git"
-
-inherit autotools-brokensep features_check gettext pkgconfig mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-export BUILDCC = "${BUILD_CC}"
-EXTRA_OECONF = "\
- --enable-run-as-root \
- --enable-xvideo \
- --disable-screen --disable-caca \
- --enable-vlm \
- --enable-freetype \
- --enable-tremor \
- --enable-v4l2 --disable-aa --disable-faad \
- --enable-dbus \
- --without-contrib \
- --without-kde-solid \
- --enable-realrtsp \
- --disable-libtar \
- --enable-avcodec \
- ac_cv_path_MOC=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/moc \
- ac_cv_path_RCC=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/rcc \
- ac_cv_path_UIC=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/uic \
-"
-
-PACKAGECONFIG ?= " \
- live555 dc1394 dv1394 notify fontconfig fluidsynth freetype dvdread png \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
- x264 \
-"
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'qmake5_paths', '', d)}
-
-PACKAGECONFIG[mmal] = "--enable-omxil --enable-omxil-vout --enable-rpi-omxil --enable-mmal,,userland"
-PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264"
-PACKAGECONFIG[fluidsynth] = ",,fluidsynth"
-PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
-PACKAGECONFIG[a52] = "--enable-a52,--disable-a52,liba52"
-PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
-PACKAGECONFIG[live555] = "--enable-live555 LIVE555_PREFIX=${STAGING_DIR_HOST}${prefix},--disable-live555,live555"
-PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass"
-PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc,libpostproc"
-PACKAGECONFIG[libva] = "--enable-libva,--disable-libva,libva"
-PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv"
-PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex"
-PACKAGECONFIG[gstreamer] = "--enable-gst-decode,--disable-gst-decode,gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
-PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx, libvpx"
-PACKAGECONFIG[qt5] = "--enable-qt,--disable-qt, qtbase-native qtx11extras qtsvg"
-PACKAGECONFIG[freerdp] = "--enable-freerdp,--disable-freerdp, freerdp"
-PACKAGECONFIG[dvbpsi] = "--enable-dvbpsi,--disable-dvbpsi, libdvbpsi"
-PACKAGECONFIG[samba] = "--enable-smbclient,--disable-smbclient, samba"
-PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp"
-PACKAGECONFIG[dvdnav] = "--enable-dvdnav,--disable-dvdnav,libdvdnav libdvdcss"
-PACKAGECONFIG[sftp] = "--enable-sftp,--disable-sftp,libssh2"
-PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg"
-PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libvorbis libogg"
-PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394"
-PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libavc1394"
-PACKAGECONFIG[svg] = "--enable-svg,--disable-svg,librsvg"
-PACKAGECONFIG[svgdec] = "--enable-svgdec,--disable-svgdec,librsvg cairo"
-PACKAGECONFIG[notify] = "--enable-notify,--disable-notify, libnotify gtk+3"
-PACKAGECONFIG[fontconfig] = "--enable-fontconfig,--disable-fontconfig, fontconfig"
-PACKAGECONFIG[freetype] = "--enable-freetype,--disable-freetype, freetype"
-PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread, libdvdread libdvdcss"
-PACKAGECONFIG[vnc] = "--enable-vnc,--disable-vnc, libvncserver"
-PACKAGECONFIG[x11] = "--with-x --enable-xcb,--without-x --disable-xcb, xcb-util-keysyms libxpm libxinerama"
-PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
-PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
-PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native"
-
-do_configure:append() {
- # moc needs support: precreate build paths
- for qtpath in adapters components/epg components/playlist components/sout dialogs managers styles util/buttons; do
- mkdir -p "${B}/modules/gui/qt/$qtpath"
- done
-}
-
-# This recipe packages vlc as a library as well, so qt4 dependencies
-# can be avoided when only the library is installed.
-PACKAGES =+ "libvlc"
-
-LEAD_SONAME_libvlc = "libvlc.so.5"
-FILES:libvlc = "${libdir}/lib*.so.*"
-
-FILES:${PN} += "\
- ${bindir}/vlc \
- ${libdir}/vlc/vlc/libvlc_vdpau.so \
- ${datadir}/applications \
- ${datadir}/vlc/ \
- ${datadir}/icons \
- ${datadir}/metainfo/vlc.appdata.xml \
-"
-
-FILES:${PN}-dbg += "\
- ${libdir}/vlc/*/.debug \
- ${libdir}/vlc/plugins/*/.debug \
-"
-
-FILES:${PN}-staticdev += "\
- ${libdir}/vlc/plugins/*/*.a \
-"
-
-INSANE_SKIP:${PN} = "dev-so"
-
-EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}"
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.20.bb b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.20.bb
new file mode 100644
index 0000000000..d25a20ae01
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.20.bb
@@ -0,0 +1,135 @@
+DESCRIPTION = "Video player and streamer - davinci edition"
+HOMEPAGE = "http://www.videolan.org"
+SECTION = "multimedia"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native bison-native \
+ dbus libxml2 gnutls \
+ tremor faad2 ffmpeg flac alsa-lib \
+ lua-native lua libidn \
+ avahi jpeg xz libmodplug mpeg2dec \
+ libmtp libopus orc libsamplerate0 libusb1 schroedinger taglib \
+ tiff"
+
+LDFLAGS:append:riscv64 = " -latomic"
+LDFLAGS:append:riscv32 = " -latomic"
+
+SRC_URI = "https://get.videolan.org/${BPN}/${PV}/${BP}.tar.xz \
+ file://0001-make-opencv-configurable.patch \
+ file://0002-use-vorbisidec.patch \
+ file://0003-fix-luaL-checkint.patch \
+ file://0004-Use-packageconfig-to-detect-mmal-support.patch \
+ file://0005-ioctl-does-not-have-same-signature-between-glibc-and.patch \
+ file://0006-configure-Disable-incompatible-function-pointer-type.patch \
+ file://taglib-2.patch \
+ file://0001-taglib-Fix-build-on-x86-32-bit.patch \
+"
+SRC_URI[sha256sum] = "adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5"
+
+inherit autotools-brokensep features_check gettext pkgconfig mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+export BUILDCC = "${BUILD_CC}"
+EXTRA_OECONF = "\
+ --enable-run-as-root \
+ --enable-xvideo \
+ --disable-screen --disable-caca \
+ --enable-vlm \
+ --enable-freetype \
+ --enable-tremor \
+ --enable-v4l2 --disable-aa --disable-faad \
+ --enable-dbus \
+ --without-contrib \
+ --without-kde-solid \
+ --enable-realrtsp \
+ --disable-libtar \
+ --enable-avcodec \
+ ac_cv_path_MOC=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/moc \
+ ac_cv_path_RCC=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/rcc \
+ ac_cv_path_UIC=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/uic \
+"
+
+PACKAGECONFIG ?= " \
+ live555 dc1394 dv1394 notify fontconfig fluidsynth freetype dvdread png \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+ x264 \
+"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'qmake5_paths', '', d)}
+
+PACKAGECONFIG[mmal] = "--enable-omxil --enable-omxil-vout --enable-rpi-omxil --enable-mmal,,userland"
+PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264"
+PACKAGECONFIG[fluidsynth] = ",,fluidsynth"
+PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
+PACKAGECONFIG[a52] = "--enable-a52,--disable-a52,liba52"
+PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
+PACKAGECONFIG[live555] = "--enable-live555 LIVE555_PREFIX=${STAGING_DIR_HOST}${prefix},--disable-live555,live555"
+PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass"
+PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc,libpostproc"
+PACKAGECONFIG[libva] = "--enable-libva,--disable-libva,libva"
+PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv"
+PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex"
+PACKAGECONFIG[gstreamer] = "--enable-gst-decode,--disable-gst-decode,gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
+PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx, libvpx"
+PACKAGECONFIG[qt5] = "--enable-qt,--disable-qt, qtbase-native qtx11extras qtsvg"
+PACKAGECONFIG[freerdp] = "--enable-freerdp,--disable-freerdp, freerdp"
+PACKAGECONFIG[dvbpsi] = "--enable-dvbpsi,--disable-dvbpsi, libdvbpsi"
+PACKAGECONFIG[samba] = "--enable-smbclient,--disable-smbclient, samba"
+PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp"
+PACKAGECONFIG[dvdnav] = "--enable-dvdnav,--disable-dvdnav,libdvdnav libdvdcss"
+PACKAGECONFIG[sftp] = "--enable-sftp,--disable-sftp,libssh2"
+PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg"
+PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libvorbis libogg"
+PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394"
+PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libavc1394"
+PACKAGECONFIG[svg] = "--enable-svg,--disable-svg,librsvg"
+PACKAGECONFIG[svgdec] = "--enable-svgdec,--disable-svgdec,librsvg cairo"
+PACKAGECONFIG[notify] = "--enable-notify,--disable-notify, libnotify gtk+3"
+PACKAGECONFIG[fontconfig] = "--enable-fontconfig,--disable-fontconfig, fontconfig"
+PACKAGECONFIG[freetype] = "--enable-freetype,--disable-freetype, freetype"
+PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread, libdvdread libdvdcss"
+PACKAGECONFIG[vnc] = "--enable-vnc,--disable-vnc, libvncserver"
+PACKAGECONFIG[x11] = "--with-x --enable-xcb,--without-x --disable-xcb, xcb-util-keysyms libxpm libxinerama"
+PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
+PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
+PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native"
+
+do_configure:append() {
+ # moc needs support: precreate build paths
+ for qtpath in adapters components/epg components/playlist components/sout dialogs managers styles util/buttons; do
+ mkdir -p "${B}/modules/gui/qt/$qtpath"
+ done
+ sed -i -e 's|${WORKDIR}||g' ${B}/config.h
+}
+
+# This recipe packages vlc as a library as well, so qt4 dependencies
+# can be avoided when only the library is installed.
+PACKAGES =+ "libvlc"
+
+LEAD_SONAME_libvlc = "libvlc.so.5"
+FILES:libvlc = "${libdir}/lib*.so.*"
+
+FILES:${PN} += "\
+ ${bindir}/vlc \
+ ${libdir}/vlc/vlc/libvlc_vdpau.so \
+ ${datadir}/applications \
+ ${datadir}/vlc/ \
+ ${datadir}/icons \
+ ${datadir}/metainfo/vlc.appdata.xml \
+"
+
+FILES:${PN}-dbg += "\
+ ${libdir}/vlc/*/.debug \
+ ${libdir}/vlc/plugins/*/.debug \
+"
+
+FILES:${PN}-staticdev += "\
+ ${libdir}/vlc/plugins/*/*.a \
+"
+
+INSANE_SKIP:${PN} = "dev-so"
+
+EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}"
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch
new file mode 100644
index 0000000000..37b4db6894
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch
@@ -0,0 +1,95 @@
+From b6ad4b7086a6487b36d626248322f4c9d5bf420a Mon Sep 17 00:00:00 2001
+From: "thomas.georgec" <thomas.georgec@lge.com>
+Date: Sun, 12 Mar 2023 14:28:50 +0530
+Subject: [PATCH] Fix return-type errors
+
+Fix "control reaches end of non-void function" in code when -Werror=return-type
+is used.
+
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc: In function 'float webrtc::{anonymous}::GetLevel(const webrtc::VadLevelAnalyzer::Result&, LevelEstimatorType)':
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc:45:1: error: control reaches end of non-void function [-Werror=return-type]
+ 45 | }
+ | ^
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc: In function 'webrtc::GainControl::Mode webrtc::{anonymous}::Agc1ConfigModeToInterfaceMode(webrtc::AudioProcessing::Config::GainController1::Mode)':
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc:117:1: error: control reaches end of non-void function [-Werror=return-type]
+ 117 | }
+ | ^
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc: In lambda function:
+ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc:1853:13: error: control reaches end of non-void function -Werror=return-type]
+ 1853 | default:
+ | ^~~~~~~
+
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/merge_requests/28]
+
+ .../audio_processing/agc2/adaptive_mode_level_estimator.cc | 2 ++
+ webrtc/modules/audio_processing/audio_processing_impl.cc | 3 +++
+ webrtc/modules/audio_processing/include/audio_processing.cc | 6 ++++++
+ 3 files changed, 11 insertions(+)
+
+diff --git a/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc b/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
+index f09f63b..9cdf6ca 100644
+--- a/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
++++ b/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc
+@@ -42,6 +42,8 @@ float GetLevel(const VadLevelAnalyzer::Result& vad_level,
+ return vad_level.peak_dbfs;
+ break;
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ } // namespace
+diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc
+index 67208df..3b8262a 100644
+--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
++++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
+@@ -114,6 +114,8 @@ GainControl::Mode Agc1ConfigModeToInterfaceMode(
+ case Agc1Config::kFixedDigital:
+ return GainControl::kFixedDigital;
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ // Maximum lengths that frame of samples being passed from the render side to
+@@ -1852,6 +1854,7 @@ void AudioProcessingImpl::InitializeNoiseSuppressor() {
+ return NsConfig::SuppressionLevel::k21dB;
+ default:
+ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+ };
+
+diff --git a/webrtc/modules/audio_processing/include/audio_processing.cc b/webrtc/modules/audio_processing/include/audio_processing.cc
+index 8854415..cc8752b 100644
+--- a/webrtc/modules/audio_processing/include/audio_processing.cc
++++ b/webrtc/modules/audio_processing/include/audio_processing.cc
+@@ -28,6 +28,8 @@ std::string NoiseSuppressionLevelToString(
+ case AudioProcessing::Config::NoiseSuppression::Level::kVeryHigh:
+ return "VeryHigh";
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ std::string GainController1ModeToString(
+@@ -40,6 +42,8 @@ std::string GainController1ModeToString(
+ case AudioProcessing::Config::GainController1::Mode::kFixedDigital:
+ return "FixedDigital";
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ std::string GainController2LevelEstimatorToString(
+@@ -50,6 +54,8 @@ std::string GainController2LevelEstimatorToString(
+ case AudioProcessing::Config::GainController2::LevelEstimator::kPeak:
+ return "Peak";
+ }
++ RTC_NOTREACHED();
++ __builtin_unreachable ();
+ }
+
+ int GetDefaultMaxInternalRate() {
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch
new file mode 100644
index 0000000000..ef1d454663
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch
@@ -0,0 +1,33 @@
+From 141fb5cbdaa6a883a61b5bf390c849159fc77605 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Thu, 14 Sep 2023 16:12:32 +0200
+Subject: [PATCH] file_wrapper.h: add missing include for musl
+
+this fixes:
+| In file included from ../webrtc-audio-processing-1.3/webrtc/rtc_base/system/file_wrapper.cc:11:
+| ../webrtc-audio-processing-1.3/webrtc/rtc_base/system/file_wrapper.h:86:21: error: 'int64_t' has not been declared
+
+if built with musl libc
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/merge_requests/37]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ webrtc/rtc_base/system/file_wrapper.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/webrtc/rtc_base/system/file_wrapper.h b/webrtc/rtc_base/system/file_wrapper.h
+index 42c463c..c34d366 100644
+--- a/webrtc/rtc_base/system/file_wrapper.h
++++ b/webrtc/rtc_base/system/file_wrapper.h
+@@ -13,6 +13,7 @@
+
+ #include <stddef.h>
+ #include <stdio.h>
++#include <cstdint>
+
+ #include <string>
+
+--
+2.41.0
+
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb
new file mode 100644
index 0000000000..c56ca53f89
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Audio processing bits of the WebRTC reference implementation"
+HOMEPAGE = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/"
+SECTION = "audio"
+
+DEPENDS = "abseil-cpp"
+DEPENDS:append:libc-musl = " libexecinfo"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2"
+
+SRC_URI = " \
+ http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/webrtc-audio-processing-${PV}.tar.xz \
+ file://0001-add-missing-header-for-musl.patch \
+ file://0001-Fix-return-type-errors.patch \
+"
+SRC_URI[sha256sum] = "2365e93e778d7b61b5d6e02d21c47d97222e9c7deff9e1d0838ad6ec2e86f1b9"
+S = "${WORKDIR}/webrtc-audio-processing-${PV}"
+
+LDFLAGS:append:libc-musl = " -lexecinfo"
+
+inherit meson pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.4.11.bb b/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.4.11.bb
deleted file mode 100644
index e093734ed2..0000000000
--- a/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.4.11.bb
+++ /dev/null
@@ -1,145 +0,0 @@
-SUMMARY = "Session / policy manager implementation for PipeWire"
-HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/wireplumber"
-BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/wireplumber/issues"
-AUTHOR = "George Kiagiadakis <george.kiagiadakis@collabora.com>"
-SECTION = "multimedia"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=17d1fe479cdec331eecbc65d26bc7e77"
-
-DEPENDS = "glib-2.0 glib-2.0-native lua pipewire \
- ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "python3-native python3-lxml-native doxygen-native", "", d)} \
-"
-
-SRCREV = "80b3559963f0ad40a7bfa6c23b0098275c0b5ebe"
-SRC_URI = "git://gitlab.freedesktop.org/pipewire/wireplumber.git;branch=master;protocol=https \
- file://90-OE-disable-session-dbus-dependent-features.lua \
- "
-
-S = "${WORKDIR}/git"
-
-inherit meson pkgconfig gobject-introspection systemd
-
-GIR_MESON_ENABLE_FLAG = 'enabled'
-GIR_MESON_DISABLE_FLAG = 'disabled'
-
-# Enable system-lua to let wireplumber use OE's lua.
-# Documentation needs python-sphinx, which is not in oe-core or meta-python2 for now.
-# elogind is not (yet) available in OE, so disable support.
-EXTRA_OEMESON += " \
- -Ddoc=disabled \
- -Dsystem-lua=true \
- -Delogind=disabled \
- -Dsystemd-system-unit-dir=${systemd_system_unitdir} \
- -Dsystemd-user-unit-dir=${systemd_user_unitdir} \
- -Dtests=false \
-"
-
-PACKAGECONFIG ??= "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \
-"
-
-PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
-PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=true,-Dsystemd-system-service=false,systemd"
-# "systemd-user-service" packageconfig will only install service
-# files to rootfs but not enable them as systemd.bbclass
-# currently lacks the feature of enabling user services.
-PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=true,-Dsystemd-user-service=false,systemd"
-
-PACKAGESPLITFUNCS:prepend = " split_dynamic_packages "
-PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends "
-
-WP_MODULE_SUBDIR = "wireplumber-0.4"
-
-add_custom_lua_config_scripts() {
- install -m 0644 ${WORKDIR}/90-OE-disable-session-dbus-dependent-features.lua ${D}${datadir}/wireplumber/main.lua.d
-}
-
-do_install[postfuncs] += "add_custom_lua_config_scripts"
-
-python split_dynamic_packages () {
- # Create packages for each WirePlumber module.
- wp_module_libdir = d.expand('${libdir}/${WP_MODULE_SUBDIR}')
- do_split_packages(d, wp_module_libdir, r'^libwireplumber-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'WirePlumber %s module', extra_depends='', recursive=False)
-}
-
-python set_dynamic_metapkg_rdepends () {
- import os
- import oe.utils
-
- # Go through all generated WirePlumber module packages
- # (excluding the main package and the -meta package itself)
- # and add them to the -meta package as RDEPENDS.
-
- base_pn = d.getVar('PN')
-
- wp_module_pn = base_pn + '-modules'
- wp_module_metapkg = wp_module_pn + '-meta'
-
- d.setVar('ALLOW_EMPTY:' + wp_module_metapkg, "1")
- d.setVar('FILES:' + wp_module_metapkg, "")
-
- blacklist = [ wp_module_pn, wp_module_metapkg ]
- wp_module_metapkg_rdepends = []
- pkgdest = d.getVar('PKGDEST')
-
- for pkg in oe.utils.packages_filter_out_system(d):
- if pkg in blacklist:
- continue
-
- is_wp_module_pkg = pkg.startswith(wp_module_pn)
- if not is_wp_module_pkg:
- continue
-
- if pkg in wp_module_metapkg_rdepends:
- continue
-
- # See if the package is empty by looking at the contents of its
- # PKGDEST subdirectory. If this subdirectory is empty, then then
- # package is empty as well. Empty packages do not get added to
- # the meta package's RDEPENDS.
- pkgdir = os.path.join(pkgdest, pkg)
- if os.path.exists(pkgdir):
- dir_contents = os.listdir(pkgdir) or []
- else:
- dir_contents = []
- is_empty = len(dir_contents) == 0
- if not is_empty:
- if is_wp_module_pkg:
- wp_module_metapkg_rdepends.append(pkg)
-
- d.setVar('RDEPENDS:' + wp_module_metapkg, ' '.join(wp_module_metapkg_rdepends))
- d.setVar('DESCRIPTION:' + wp_module_metapkg, wp_module_pn + ' meta package')
-}
-
-PACKAGES =+ "\
- libwireplumber \
- ${PN}-default-config \
- ${PN}-scripts \
- ${PN}-modules \
- ${PN}-modules-meta \
-"
-
-PACKAGES_DYNAMIC = "^${PN}-modules.*"
-
-SYSTEMD_SERVICE:${PN} = "wireplumber.service"
-CONFFILES:${PN} += " \
- ${datadir}/wireplumber/wireplumber.conf \
- ${datadir}/wireplumber/*.lua.d/* \
-"
-# Add pipewire to RRECOMMENDS, since WirePlumber expects a PipeWire daemon to
-# be present. While in theory any application that uses libpipewire can configure
-# itself to become a daemon, in practice, the PipeWire daemon is used.
-RRECOMMENDS:${PN} += "pipewire ${PN}-scripts ${PN}-modules-meta"
-
-FILES:${PN} += "${systemd_user_unitdir}"
-
-FILES:libwireplumber = " \
- ${libdir}/libwireplumber-*.so.* \
-"
-
-FILES:${PN}-scripts += "${datadir}/wireplumber/scripts/*"
-
-# Dynamic packages (see set_dynamic_metapkg_rdepends).
-FILES:${PN}-modules = ""
-RRECOMMENDS:${PN}-modules += "${PN}-modules-meta"
diff --git a/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.0.bb b/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.0.bb
new file mode 100644
index 0000000000..8aa95a3e97
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.0.bb
@@ -0,0 +1,145 @@
+SUMMARY = "Session / policy manager implementation for PipeWire"
+HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/wireplumber"
+BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/wireplumber/issues"
+SECTION = "multimedia"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=17d1fe479cdec331eecbc65d26bc7e77"
+
+DEPENDS = "glib-2.0 glib-2.0-native lua pipewire \
+ ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "python3-native python3-lxml-native doxygen-native", "", d)} \
+"
+
+SRCREV = "59d190a2bd400f3b093f99b16fc0fb06f6cb2cfe"
+SRC_URI = " \
+ git://gitlab.freedesktop.org/pipewire/wireplumber.git;branch=master;protocol=https \
+ file://90-OE-disable-session-dbus-dependent-features.lua \
+"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig gobject-introspection systemd
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
+# Enable system-lua to let wireplumber use OE's lua.
+# Documentation needs python-sphinx, which is not in oe-core or meta-python2 for now.
+# elogind is not (yet) available in OE, so disable support.
+EXTRA_OEMESON += " \
+ -Ddoc=disabled \
+ -Dsystem-lua=true \
+ -Delogind=disabled \
+ -Dsystemd-system-unit-dir=${systemd_system_unitdir} \
+ -Dsystemd-user-unit-dir=${systemd_user_unitdir} \
+ -Dtests=false \
+"
+
+PACKAGECONFIG ??= " dbus \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \
+"
+
+PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
+PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=true,-Dsystemd-system-service=false,systemd"
+# "systemd-user-service" packageconfig will only install service
+# files to rootfs but not enable them as systemd.bbclass
+# currently lacks the feature of enabling user services.
+PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=true,-Dsystemd-user-service=false,systemd"
+PACKAGECONFIG[dbus] = ""
+
+PACKAGESPLITFUNCS:prepend = " split_dynamic_packages "
+PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends "
+
+WP_MODULE_SUBDIR = "wireplumber-0.5"
+
+do_install:append() {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'false', 'true', d)}; then
+ install -m 0644 ${WORKDIR}/90-OE-disable-session-dbus-dependent-features.lua ${D}${datadir}/wireplumber/main.lua.d
+ fi
+}
+
+python split_dynamic_packages () {
+ # Create packages for each WirePlumber module.
+ wp_module_libdir = d.expand('${libdir}/${WP_MODULE_SUBDIR}')
+ do_split_packages(d, wp_module_libdir, r'^libwireplumber-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'WirePlumber %s module', extra_depends='', recursive=False)
+}
+
+python set_dynamic_metapkg_rdepends () {
+ import os
+ import oe.utils
+
+ # Go through all generated WirePlumber module packages
+ # (excluding the main package and the -meta package itself)
+ # and add them to the -meta package as RDEPENDS.
+
+ base_pn = d.getVar('PN')
+
+ wp_module_pn = base_pn + '-modules'
+ wp_module_metapkg = wp_module_pn + '-meta'
+
+ d.setVar('ALLOW_EMPTY:' + wp_module_metapkg, "1")
+ d.setVar('FILES:' + wp_module_metapkg, "")
+
+ blacklist = [ wp_module_pn, wp_module_metapkg ]
+ wp_module_metapkg_rdepends = []
+ pkgdest = d.getVar('PKGDEST')
+
+ for pkg in oe.utils.packages_filter_out_system(d):
+ if pkg in blacklist:
+ continue
+
+ is_wp_module_pkg = pkg.startswith(wp_module_pn)
+ if not is_wp_module_pkg:
+ continue
+
+ if pkg in wp_module_metapkg_rdepends:
+ continue
+
+ # See if the package is empty by looking at the contents of its
+ # PKGDEST subdirectory. If this subdirectory is empty, then then
+ # package is empty as well. Empty packages do not get added to
+ # the meta package's RDEPENDS.
+ pkgdir = os.path.join(pkgdest, pkg)
+ if os.path.exists(pkgdir):
+ dir_contents = os.listdir(pkgdir) or []
+ else:
+ dir_contents = []
+ is_empty = len(dir_contents) == 0
+ if not is_empty:
+ if is_wp_module_pkg:
+ wp_module_metapkg_rdepends.append(pkg)
+
+ d.setVar('RDEPENDS:' + wp_module_metapkg, ' '.join(wp_module_metapkg_rdepends))
+ d.setVar('DESCRIPTION:' + wp_module_metapkg, wp_module_pn + ' meta package')
+}
+
+PACKAGES =+ "\
+ libwireplumber \
+ ${PN}-default-config \
+ ${PN}-scripts \
+ ${PN}-modules \
+ ${PN}-modules-meta \
+"
+
+PACKAGES_DYNAMIC = "^${PN}-modules.*"
+
+CONFFILES:${PN} += " \
+ ${datadir}/wireplumber/wireplumber.conf \
+ ${datadir}/wireplumber/*.lua.d/* \
+"
+# Add pipewire to RRECOMMENDS, since WirePlumber expects a PipeWire daemon to
+# be present. While in theory any application that uses libpipewire can configure
+# itself to become a daemon, in practice, the PipeWire daemon is used.
+RRECOMMENDS:${PN} += "pipewire ${PN}-scripts ${PN}-modules-meta"
+
+FILES:${PN} += "${systemd_user_unitdir} ${systemd_system_unitdir} ${datadir}/zsh"
+
+FILES:libwireplumber = " \
+ ${libdir}/libwireplumber-*.so.* \
+"
+
+FILES:${PN}-scripts += "${datadir}/wireplumber/scripts/*"
+
+# Dynamic packages (see set_dynamic_metapkg_rdepends).
+FILES:${PN}-modules = ""
+RRECOMMENDS:${PN}-modules += "${PN}-modules-meta"
diff --git a/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb b/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb
index c36619b819..2d4f389e34 100644
--- a/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb
+++ b/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb
@@ -17,8 +17,13 @@ SRC_URI[sha256sum] = "fb9badcf92364fd3567f8b5aa0e5e952aeea7a39a2b864387cec31e3b5
inherit lib_package pkgconfig cmake
+do_generate_toolchain_file:append() {
+ echo "set(CMAKE_ASM_NASM_FLAGS --debug-prefix-map ${S}=${TARGET_DBGSRC_DIR})" >> ${WORKDIR}/toolchain.cmake
+}
+
EXTRA_OECMAKE:append:x86 = " -DENABLE_ASSEMBLY=OFF"
+EXTRA_OECMAKE:append:aarch64 = " -DENABLE_PIC=ON"
AS[unexport] = "1"
-COMPATIBLE_HOST = '(x86_64|i.86).*-linux'
+COMPATIBLE_HOST = '(x86_64|i.86|aarch64).*-linux'
diff --git a/meta-multimedia/recipes-support/crossguid/crossguid/0001-include-missing-cstdint.patch b/meta-multimedia/recipes-support/crossguid/crossguid/0001-include-missing-cstdint.patch
new file mode 100644
index 0000000000..a12eba8ebf
--- /dev/null
+++ b/meta-multimedia/recipes-support/crossguid/crossguid/0001-include-missing-cstdint.patch
@@ -0,0 +1,31 @@
+From 1eb9bea38c320b2b588635cffceaaa2a8d434780 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 25 Jan 2023 22:09:26 -0800
+Subject: [PATCH] include missing <cstdint>
+
+gcc 13 moved some includes around and as a result <cstdint> is no longer transitively
+included [1]. Explicitly include it for uint{32,64}_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Upstream-Status: Submitted [https://github.com/graeme-hill/crossguid/pull/67]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/crossguid/guid.hpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/crossguid/guid.hpp b/include/crossguid/guid.hpp
+index 61e0f17..70966f2 100644
+--- a/include/crossguid/guid.hpp
++++ b/include/crossguid/guid.hpp
+@@ -29,6 +29,7 @@ THE SOFTWARE.
+ #include <jni.h>
+ #endif
+
++#include <cstdint>
+ #include <functional>
+ #include <iostream>
+ #include <array>
+--
+2.39.1
+
diff --git a/meta-multimedia/recipes-support/crossguid/crossguid_0.2.2.bb b/meta-multimedia/recipes-support/crossguid/crossguid_0.2.2.bb
index b496531ab1..5e680c4640 100644
--- a/meta-multimedia/recipes-support/crossguid/crossguid_0.2.2.bb
+++ b/meta-multimedia/recipes-support/crossguid/crossguid_0.2.2.bb
@@ -8,9 +8,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1373274bc8d8001edc54933919f36f68"
DEPENDS += "util-linux"
SRCREV = "ca1bf4b810e2d188d04cb6286f957008ee1b7681"
-SRC_URI = "git://github.com/graeme-hill/crossguid;protocol=https;branch=master"
+SRC_URI = "git://github.com/graeme-hill/crossguid;protocol=https;branch=master \
+ file://0001-include-missing-cstdint.patch"
S = "${WORKDIR}/git"
inherit cmake
+do_install:append() {
+ sed -i -e 's|${STAGING_DIR_HOST}||g' ${D}${datadir}/crossguid/cmake/crossguid-config.cmake
+}
diff --git a/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb b/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb
index 8f0ad65120..df688bbcda 100644
--- a/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb
+++ b/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb
@@ -6,7 +6,7 @@ LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e6a600fd5e1d9cbde2d983680233ad02"
DEPENDS = "gstreamer1.0"
SRCREV = "cb8977a6711657e32853159cd539d1d75fcbc772"
-PV = "0.3.1+git${SRCPV}"
+PV = "0.3.1+git"
SRC_URI = "git://github.com/kirushyk/gst-instruments.git;protocol=https;branch=master"
diff --git a/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.5.bb b/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.5.bb
deleted file mode 100644
index ad42e27278..0000000000
--- a/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.5.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Library tasked with managing, extracting and handling media art caches"
-
-LICENSE = "LGPL-2.0-or-later & GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \
- file://libmediaart/extract.c;endline=18;md5=dff2b6328ab067b5baadc135f9876c36 \
- file://tests/mediaarttest.c;endline=18;md5=067106eaa1f7a9d918759a096667f18e"
-
-DEPENDS = "glib-2.0 gdk-pixbuf"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gobject-introspection vala features_check
-
-SRC_URI = "${GNOME_MIRROR}/libmediaart/1.9/libmediaart-${PV}.tar.xz"
-SRC_URI[sha256sum] = "07def5a42c482ae71d3e1f77a4d0fdc337f74226059a65284d6d5a241f0e9cd6"
-
-S = "${WORKDIR}/libmediaart-${PV}"
-
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-GIR_MESON_OPTION = ""
-
-EXTRA_OEMESON = "-Dimage_library=gdk-pixbuf"
diff --git a/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.6.bb b/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.6.bb
new file mode 100644
index 0000000000..376dd15d17
--- /dev/null
+++ b/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.6.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Library tasked with managing, extracting and handling media art caches"
+
+LICENSE = "LGPL-2.0-or-later & GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \
+ file://libmediaart/extract.c;endline=18;md5=dff2b6328ab067b5baadc135f9876c36 \
+ file://tests/mediaarttest.c;endline=18;md5=067106eaa1f7a9d918759a096667f18e"
+
+DEPENDS = "glib-2.0 gdk-pixbuf"
+
+
+inherit gnomebase gobject-introspection vala features_check
+
+SRC_URI = "${GNOME_MIRROR}/libmediaart/1.9/libmediaart-${PV}.tar.xz"
+SRC_URI[sha256sum] = "c3bc5025d7db380587f9c8eb800c611f6b5a16d6b4b78fcff93f62876a677f17"
+
+S = "${WORKDIR}/libmediaart-${PV}"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+EXTRA_OEMESON = "-Dimage_library=gdk-pixbuf"
diff --git a/meta-multimedia/recipes-support/libsrtp/libsrtp_2.4.2.bb b/meta-multimedia/recipes-support/libsrtp/libsrtp_2.4.2.bb
deleted file mode 100644
index b17e4767b4..0000000000
--- a/meta-multimedia/recipes-support/libsrtp/libsrtp_2.4.2.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Library implementing Secure RTP (RFC 3711)"
-DESCRIPTION = "This package provides an implementation of the Secure Real-time Transport Protocol (SRTP), \
- the Universal Security Transform (UST), and a supporting cryptographic kernel. The SRTP API \
- is documented in include/srtp.h, and the library is in libsrtp2.a (after compilation)."
-HOMEPAGE = "https://github.com/cisco/libsrtp"
-BUGTRACKER = "https://github.com/cisco/libsrtp/issues"
-SECTION = "libs"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2909fcf6f09ffff8430463d91c08c4e1"
-
-SRC_URI = "git://github.com/cisco/libsrtp.git;branch=2_4_x_throttle;protocol=https"
-SRCREV = "90d05bf8980d16e4ac3f16c19b77e296c4bc207b"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[nss] = "-Dcrypto-library=nss,, nss,,, openssl"
-PACKAGECONFIG[openssl] = "-Dcrypto-library=openssl,, openssl,,, nss"
-
-inherit meson pkgconfig
diff --git a/meta-multimedia/recipes-support/libsrtp/libsrtp_2.5.0.bb b/meta-multimedia/recipes-support/libsrtp/libsrtp_2.5.0.bb
new file mode 100644
index 0000000000..d1cbe0f590
--- /dev/null
+++ b/meta-multimedia/recipes-support/libsrtp/libsrtp_2.5.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Library implementing Secure RTP (RFC 3711)"
+DESCRIPTION = "This package provides an implementation of the Secure Real-time Transport Protocol (SRTP), \
+ the Universal Security Transform (UST), and a supporting cryptographic kernel. The SRTP API \
+ is documented in include/srtp.h, and the library is in libsrtp2.a (after compilation)."
+HOMEPAGE = "https://github.com/cisco/libsrtp"
+BUGTRACKER = "https://github.com/cisco/libsrtp/issues"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2909fcf6f09ffff8430463d91c08c4e1"
+
+SRC_URI = "git://github.com/cisco/libsrtp.git;branch=main;protocol=https"
+SRCREV = "a566a9cfcd619e8327784aa7cff4a1276dc1e895"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[nss] = "-Dcrypto-library=nss,, nss,,, openssl"
+PACKAGECONFIG[openssl] = "-Dcrypto-library=openssl,, openssl,,, nss"
+
+inherit meson pkgconfig
diff --git a/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr/0001-screencast-Fix-build-with-older-mesa.patch b/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr/0001-screencast-Fix-build-with-older-mesa.patch
new file mode 100644
index 0000000000..ff4fcc292a
--- /dev/null
+++ b/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr/0001-screencast-Fix-build-with-older-mesa.patch
@@ -0,0 +1,53 @@
+From ef60a76e2a21b7649632dcf71d125039604a56b5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 18 Jun 2023 10:42:19 -0700
+Subject: [PATCH] screencast: Fix build with older mesa
+
+gbm_bo_create_with_modifiers2() is quite new and there are still distros
+that ship 21.2 and older. e.g. powerVR mesa implementation
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/screencast/pipewire_screencast.c | 8 ++++++--
+ src/screencast/screencast_common.c | 4 ++--
+ 2 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/src/screencast/pipewire_screencast.c b/src/screencast/pipewire_screencast.c
+index 0611fd5..7d66810 100644
+--- a/src/screencast/pipewire_screencast.c
++++ b/src/screencast/pipewire_screencast.c
+@@ -234,9 +234,13 @@ static void pwr_handle_stream_param_changed(void *data, uint32_t id,
+ uint32_t n_params;
+ struct spa_pod_builder *builder[2] = {&b[0].b, &b[1].b};
+
+- struct gbm_bo *bo = gbm_bo_create_with_modifiers2(cast->ctx->gbm,
++ struct gbm_bo *bo = gbm_bo_create_with_modifiers(cast->ctx->gbm,
+ cast->screencopy_frame_info[cast->buffer_type].width, cast->screencopy_frame_info[cast->buffer_type].height,
+- cast->screencopy_frame_info[cast->buffer_type].format, modifiers, n_modifiers, flags);
++ cast->screencopy_frame_info[cast->buffer_type].format, modifiers, n_modifiers);
++ if(!bo)
++ bo = gbm_bo_create(cast->ctx->gbm,
++ cast->screencopy_frame_info[cast->buffer_type].width, cast->screencopy_frame_info[cast->buffer_type].height,
++ cast->screencopy_frame_info[cast->buffer_type].format, GBM_BO_USE_RENDERING);
+ if (bo) {
+ modifier = gbm_bo_get_modifier(bo);
+ gbm_bo_destroy(bo);
+diff --git a/src/screencast/screencast_common.c b/src/screencast/screencast_common.c
+index d6d13db..2e4fc18 100644
+--- a/src/screencast/screencast_common.c
++++ b/src/screencast/screencast_common.c
+@@ -143,8 +143,8 @@ struct xdpw_buffer *xdpw_buffer_create(struct xdpw_screencast_instance *cast,
+ uint32_t flags = GBM_BO_USE_RENDERING;
+ if (cast->pwr_format.modifier != DRM_FORMAT_MOD_INVALID) {
+ uint64_t *modifiers = (uint64_t*)&cast->pwr_format.modifier;
+- buffer->bo = gbm_bo_create_with_modifiers2(cast->ctx->gbm, frame_info->width, frame_info->height,
+- frame_info->format, modifiers, 1, flags);
++ buffer->bo = gbm_bo_create_with_modifiers(cast->ctx->gbm, frame_info->width, frame_info->height,
++ frame_info->format, modifiers, 1);
+ } else {
+ if (cast->ctx->state->config->screencast_conf.force_mod_linear) {
+ flags |= GBM_BO_USE_LINEAR;
+--
+2.41.0
+
diff --git a/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr_0.7.0.bb b/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr_0.7.0.bb
new file mode 100644
index 0000000000..8ffe652b22
--- /dev/null
+++ b/meta-multimedia/recipes-support/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr_0.7.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "This provides screenshot/screencast xdg-desktop-portal backends for wlroots."
+HOMEPAGE = "https://github.com/emersion/xdg-desktop-portal-wlr"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e316e9609dd7672b87ff25b46b2cf3e1"
+
+DEPENDS = " \
+ wayland \
+ wayland-native \
+ wayland-protocols \
+ libdrm \
+ libinih \
+ pipewire \
+ virtual/libgbm \
+"
+
+inherit meson pkgconfig features_check
+REQUIRED_DISTRO_FEATURES = "opengl wayland"
+
+SRC_URI = "git://github.com/emersion/xdg-desktop-portal-wlr.git;protocol=https;branch=master \
+ file://0001-screencast-Fix-build-with-older-mesa.patch"
+
+S = "${WORKDIR}/git"
+SRCREV = "776113a4f014639c29d8de8fcb513493ef7b491f"
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'basu', d)}"
+
+PACKAGECONFIG[man-pages] = "-Dman-pages=enabled,-Dman-pages=disabled,scdoc-native"
+PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsd-bus-provider=libsystemd,-Dsystemd=disabled"
+PACKAGECONFIG[basu] = "-Dsd-bus-provider=basu,,basu"
+
+FILES:${PN} += "${systemd_user_unitdir} ${datadir}"
diff --git a/meta-networking/MAINTAINERS b/meta-networking/MAINTAINERS
index ce53ec471b..dc549d7582 100644
--- a/meta-networking/MAINTAINERS
+++ b/meta-networking/MAINTAINERS
@@ -34,10 +34,6 @@ S: Maintained
F: conf
F: recipes-*
-NETKIT
-M: Armin Kuster <akuster808@gmail.com>
-F: recipes-netkit
-
OPENTHREAD
M: Stefan Schmidt <stefan@datenfreihafen.org>
F: recipes-connectivity/openthread/
diff --git a/meta-networking/README b/meta-networking/README
deleted file mode 100644
index 34e11a96dd..0000000000
--- a/meta-networking/README
+++ /dev/null
@@ -1,40 +0,0 @@
-meta-networking
-===============
-
-This layer is intended to be a central point for networking-related
-packages and configuration. It should be useful directly on top of
-oe-core and compliments meta-openembedded. It should be primarily useful
-to the following groups:
-
- - Anyone building a small networking device (eg. a home router /
- bridge / switch).
-
- - Anyone wanting to add network services to their device (eg.
- anything that might benefit from a small ftp/tftp server)
-
-Dependencies
-------------
-
-This layer depends on:
-
-URI: git://git.openembedded.org/openembedded-core
-branch: master
-
-For some recipes, the meta-oe layer is required:
-
-URI: git://git.openembedded.org/meta-openembedded
-subdirectory: meta-oe
-branch: master
-
-URI: git://git.openembedded.org/meta-openembedded
-subdirectory: meta-python
-branch: master
-
-Maintenance
------------
-Layer maintainers: Khem Raj <raj.khem@gmail.com>
- Armin Kuster <akuster808@gmail.com> (recipes-netkit)
-
-
-Please see the MAINTAINERS file for information on contacting the
-maintainers of this layer, as well as instructions for submitting patches.
diff --git a/meta-networking/README.md b/meta-networking/README.md
new file mode 100644
index 0000000000..ab2640618f
--- /dev/null
+++ b/meta-networking/README.md
@@ -0,0 +1,39 @@
+meta-networking
+===============
+
+This layer is intended to be a central point for networking-related
+packages and configuration. It should be useful directly on top of
+oe-core and compliments meta-openembedded. It should be primarily useful
+to the following groups:
+
+ - Anyone building a small networking device (eg. a home router /
+ bridge / switch).
+
+ - Anyone wanting to add network services to their device (eg.
+ anything that might benefit from a small ftp/tftp server)
+
+Dependencies
+------------
+
+This layer depends on:
+
+URI: git://git.openembedded.org/openembedded-core
+branch: master
+
+For some recipes, the meta-oe layer is required:
+
+URI: git://git.openembedded.org/meta-openembedded
+subdirectory: meta-oe
+branch: master
+
+URI: git://git.openembedded.org/meta-openembedded
+subdirectory: meta-python
+branch: master
+
+Maintenance
+-----------
+Layer maintainers: Khem Raj <raj.khem@gmail.com>
+
+
+Please see the MAINTAINERS file for information on contacting the
+maintainers of this layer, as well as instructions for submitting patches.
diff --git a/meta-networking/classes/kernel_wireless_regdb.bbclass b/meta-networking/classes/kernel_wireless_regdb.bbclass
index 1238172bd4..9ad566c837 100644
--- a/meta-networking/classes/kernel_wireless_regdb.bbclass
+++ b/meta-networking/classes/kernel_wireless_regdb.bbclass
@@ -17,4 +17,4 @@ do_kernel_add_regdb() {
cp ${STAGING_LIBDIR_NATIVE}/crda/db.txt ${S}/net/wireless/db.txt
}
do_kernel_add_regdb[dirs] = "${S}"
-addtask kernel_add_regdb before do_build after do_configure
+addtask kernel_add_regdb before do_compile after do_configure
diff --git a/meta-networking/classes/waf-samba.bbclass b/meta-networking/classes/waf-samba.bbclass
index 9c32952f6a..79acacc989 100644
--- a/meta-networking/classes/waf-samba.bbclass
+++ b/meta-networking/classes/waf-samba.bbclass
@@ -15,7 +15,7 @@ CONFIGUREOPTS = " --prefix=${prefix} \
--localstatedir=${localstatedir} \
--libdir=${libdir} \
--includedir=${includedir} \
- --oldincludedir=${oldincludedir} \
+ --oldincludedir=${includedir} \
--infodir=${infodir} \
--mandir=${mandir} \
${PACKAGECONFIG_CONFARGS} \
@@ -95,6 +95,8 @@ do_configure() {
export STAGING_LIBDIR=${STAGING_LIBDIR}
export STAGING_INCDIR=${STAGING_INCDIR}
export PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
+ export PYTHONARCHDIR=${PYTHON_SITEPACKAGES_DIR}
+ export PYTHON_CONFIG=${STAGING_EXECPREFIXDIR}/python-target-config/python3-config
CONFIG_CMD="./configure ${CONFIGUREOPTS} ${EXTRA_OECONF} --cross-compile"
if [ "${CROSS_METHOD}" = "answer" ]; then
diff --git a/meta-networking/conf/include/ptest-packagelists-meta-networking.inc b/meta-networking/conf/include/ptest-packagelists-meta-networking.inc
new file mode 100644
index 0000000000..7ec6f9063d
--- /dev/null
+++ b/meta-networking/conf/include/ptest-packagelists-meta-networking.inc
@@ -0,0 +1,37 @@
+#
+# Lists of the ptest in meta-networking, sorted into two sets by the time they take
+# Please keep these sorted in alphabetical order
+#
+# A first pass at getting all meta-networking recipes which inherit ptest
+# meta_networking_ptest_recipes=$(bitbake-layers show-recipes --recipes-only --layer meta-networking --inherits ptest --bare | sed -e '1,/=== Matching recipes: ===/d')
+# ptests which take less than ~30s each
+
+PTESTS_FAST_META_NETWORKING = "\
+ freediameter \
+ geoip \
+ libcoap \
+ libldb \
+ libnftnl \
+ libtalloc \
+ libtdb \
+ lldpd \
+ mbedtls \
+ openhpi \
+ squid \
+ tcpdump \
+"
+
+# firewalld currently hangs forever so disable it for now
+# firewalld
+PTESTS_SLOW_META_NETWORKING = "\
+ net-snmp \
+"
+
+PTESTS_PROBLEMS_META_NETWORKING = "\
+ geoip-perl \
+ libtevent \
+ lksctp-tools \
+ nftables \
+ openl2tp \
+ python3-scapy \
+"
diff --git a/meta-networking/conf/layer.conf b/meta-networking/conf/layer.conf
index fd28f30033..ac5d15a0c0 100644
--- a/meta-networking/conf/layer.conf
+++ b/meta-networking/conf/layer.conf
@@ -13,16 +13,16 @@ BBFILE_PRIORITY_networking-layer = "5"
# cause compatibility issues with other layers
LAYERVERSION_networking-layer = "1"
-LAYERDEPENDS_networking-layer = "core"
-LAYERDEPENDS_networking-layer += "openembedded-layer"
+LAYERDEPENDS_networking-layer = "core meta-python openembedded-layer"
-LAYERSERIES_COMPAT_networking-layer = "kirkstone langdale"
+LAYERSERIES_COMPAT_networking-layer = "scarthgap"
LICENSE_PATH += "${LAYERDIR}/licenses"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
wireguard-tools->wireguard-module \
- wireless-regdb->crda \
+ mdio-tools->mdio-netlink \
+ ot-br-posix->ipset \
"
BBFILES_DYNAMIC += " \
meta-python:${LAYERDIR}/dynamic-layers/meta-python/recipes-*/*/*.bb \
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/0001-Make-alpha2-to-be-3-characters-long.patch b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/0001-Make-alpha2-to-be-3-characters-long.patch
deleted file mode 100644
index f1d2cbc5a3..0000000000
--- a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/0001-Make-alpha2-to-be-3-characters-long.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 078e962d345fd0536fe7ba797485ee1a4159c032 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 4 Feb 2022 09:18:30 -0800
-Subject: [PATCH] Make alpha2 to be 3 characters long
-
-Fixes buffer overflow
-reglib.c:969:9: error: 'sscanf' may overflow; destination buffer in argument 3 has size 2, but the corresponding specifier may require size 3 [-Werror,-Wfortify-source]
- alpha2,
- ^
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- reglib.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/reglib.c b/reglib.c
-index e00e9b8..8565a0b 100644
---- a/reglib.c
-+++ b/reglib.c
-@@ -958,7 +958,7 @@ reglib_parse_rules(FILE *fp, struct ieee80211_regdomain *trd)
- static int reglib_parse_country_dfs(char *line, struct ieee80211_regdomain *rd)
- {
- char dfs_region_alpha[9];
-- char alpha2[2];
-+ char alpha2[3];
- int hits;
-
- memset(rd, 0, sizeof(*rd));
---
-2.35.1
-
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/0001-Makefile-respect-LDFLAGS-for-libreg.patch b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/0001-Makefile-respect-LDFLAGS-for-libreg.patch
deleted file mode 100644
index 16800d5066..0000000000
--- a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/0001-Makefile-respect-LDFLAGS-for-libreg.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 1e1a78b7b4fa1662b4447aa19c15b1e839b7e9db Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Stefan=20M=C3=BCller-Klieser?= <s.mueller-klieser@phytec.de>
-Date: Wed, 24 Aug 2016 10:58:45 +0200
-Subject: [PATCH] Makefile: respect LDFLAGS for libreg
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 2879896..1650db8 100644
---- a/Makefile
-+++ b/Makefile
-@@ -116,7 +116,7 @@ keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
-
- $(LIBREG): regdb.h reglib.h reglib.c
- $(NQ) ' CC ' $@
-- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LIBREGLDLIBS)
-+ $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LDFLAGS) $(LIBREGLDLIBS)
-
- install-libreg-headers:
- $(NQ) ' INSTALL libreg-headers'
---
-1.9.1
-
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/0001-reglib-Remove-unused-variables.patch b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/0001-reglib-Remove-unused-variables.patch
deleted file mode 100644
index c6c3c53f19..0000000000
--- a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/0001-reglib-Remove-unused-variables.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 1bd6ff9d10c83afbc9954fc38b953e9167e6d4a9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 28 Aug 2022 14:01:55 -0700
-Subject: [PATCH] reglib: Remove unused variables
-
-These counters are not used anywhere therefore delete them
-Fixes
-reglib.c:1015:15: error: variable 'i' set but not used [-Werror,-Wunused-but-set-variable]
- unsigned int i = 0;
- ^
-reglib.c:1062:15: error: variable 'lines' set but not used [-Werror,-Wunused-but-set-variable]
- unsigned int lines = 0;
- ^
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- reglib.c | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/reglib.c b/reglib.c
-index 8565a0b..6c62c2c 100644
---- a/reglib.c
-+++ b/reglib.c
-@@ -1012,7 +1012,6 @@ static int reglib_find_next_country_stream(FILE *fp)
- {
- fpos_t prev_pos;
- int r;
-- unsigned int i = 0;
-
- while(1) {
- char line[1024];
-@@ -1030,7 +1029,6 @@ static int reglib_find_next_country_stream(FILE *fp)
- line_p = fgets(line, sizeof(line), fp);
- if (line_p == line) {
- if (strspn(line, "\n") == strlen(line)) {
-- i++;
- continue;
- }
- if (strncmp(line, "country", 7) != 0)
-@@ -1059,7 +1057,6 @@ struct ieee80211_regdomain *reglib_parse_country(FILE *fp)
-
- FILE *reglib_create_parse_stream(FILE *f)
- {
-- unsigned int lines = 0;
- FILE *fp;
-
- fp = tmpfile();
-@@ -1076,7 +1073,6 @@ FILE *reglib_create_parse_stream(FILE *f)
- if (line_p == line) {
- if (strchr(line, '#') == NULL) {
- fputs(line, fp);
-- lines++;
- }
- continue;
- } else
---
-2.37.2
-
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/crda-4.14-python-3.patch b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/crda-4.14-python-3.patch
deleted file mode 100644
index 9125d0ab97..0000000000
--- a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/crda-4.14-python-3.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-Imported from Gentoo
-https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c50acec16bc7c33d6dc122c007d713e7fbecf9c
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/utils/key2pub.py
-+++ b/utils/key2pub.py
-@@ -1,22 +1,22 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- import sys
- try:
- from M2Crypto import RSA
--except ImportError, e:
-+except ImportError as e:
- sys.stderr.write('ERROR: Failed to import the "M2Crypto" module: %s\n' % e.message)
- sys.stderr.write('Please install the "M2Crypto" Python module.\n')
- sys.stderr.write('On Debian GNU/Linux the package is called "python-m2crypto".\n')
- sys.exit(1)
-
- def print_ssl_64(output, name, val):
-- while val[0] == '\0':
-+ while val[0:1] == b'\0':
- val = val[1:]
- while len(val) % 8:
-- val = '\0' + val
-+ val = b'\0' + val
- vnew = []
- while len(val):
-- vnew.append((val[0], val[1], val[2], val[3], val[4], val[5], val[6], val[7]))
-+ vnew.append((val[0:1], val[1:2], val[2:3], val[3:4], val[4:5], val[5:6], val[6:7], val[7:8]))
- val = val[8:]
- vnew.reverse()
- output.write('static BN_ULONG %s[%d] = {\n' % (name, len(vnew)))
-@@ -34,13 +34,13 @@ def print_ssl_64(output, name, val):
- output.write('};\n\n')
-
- def print_ssl_32(output, name, val):
-- while val[0] == '\0':
-+ while val[0:1] == b'\0':
- val = val[1:]
- while len(val) % 4:
-- val = '\0' + val
-+ val = b'\0' + val
- vnew = []
- while len(val):
-- vnew.append((val[0], val[1], val[2], val[3], ))
-+ vnew.append((val[0:1], val[1:2], val[2:3], val[3:4]))
- val = val[4:]
- vnew.reverse()
- output.write('static BN_ULONG %s[%d] = {\n' % (name, len(vnew)))
-@@ -81,21 +81,21 @@ struct pubkey {
-
- static struct pubkey keys[] __attribute__((unused))= {
- ''')
-- for n in xrange(n + 1):
-+ for n in range(n + 1):
- output.write(' KEYS(e_%d, n_%d),\n' % (n, n))
- output.write('};\n')
- pass
-
- def print_gcrypt(output, name, val):
- output.write('#include <stdint.h>\n')
-- while val[0] == '\0':
-+ while val[0:1] == b'\0':
- val = val[1:]
- output.write('static const uint8_t %s[%d] = {\n' % (name, len(val)))
- idx = 0
- for v in val:
- if not idx:
- output.write('\t')
-- output.write('0x%.2x, ' % ord(v))
-+ output.write('0x%.2x, ' % (v if sys.version_info[0] >=3 else ord(v)))
- idx += 1
- if idx == 8:
- idx = 0
-@@ -118,7 +118,7 @@ struct key_params {
-
- static const struct key_params keys[] __attribute__((unused))= {
- ''')
-- for n in xrange(n + 1):
-+ for n in range(n + 1):
- output.write(' KEYS(e_%d, n_%d),\n' % (n, n))
- output.write('};\n')
-
-@@ -136,7 +136,7 @@ except IndexError:
- mode = None
-
- if not mode in modes:
-- print 'Usage: %s [%s] input-file... output-file' % (sys.argv[0], '|'.join(modes.keys()))
-+ print('Usage: %s [%s] input-file... output-file' % (sys.argv[0], '|'.join(modes.keys())))
- sys.exit(2)
-
- output = open(outfile, 'w')
-@@ -154,3 +154,5 @@ for f in files:
- idx += 1
-
- modes[mode][1](output, idx - 1)
-+
-+output.close()
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch
deleted file mode 100644
index 3ef35ee549..0000000000
--- a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Ben Hutchings <ben@decadent.org.uk>
-Date: Sat, 23 Aug 2014 12:27:34 -0700
-Subject: crda: Do not run ldconfig if DESTDIR is set
-
-Upstream-Status: Backport [http://www.spinics.net/lists/linux-wireless/msg126028.html]
-
-Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
-
---- a/Makefile
-+++ b/Makefile
-@@ -132,7 +132,9 @@ install-libreg:
- $(NQ) ' INSTALL libreg'
- $(Q)mkdir -p $(DESTDIR)/$(LIBDIR)
- $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/
-+ifndef DESTDIR
- $(Q)ldconfig
-+endif
-
- %.o: %.c regdb.h $(LIBREG)
- $(NQ) ' CC ' $@
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/fix-gcc-6-unused-variables.patch b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/fix-gcc-6-unused-variables.patch
deleted file mode 100644
index 747804d345..0000000000
--- a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/fix-gcc-6-unused-variables.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- crda-3.18/utils/key2pub.py.orig 2016-06-18 09:54:23.671326113 -0400
-+++ crda-3.18/utils/key2pub.py 2016-06-18 09:54:34.387326300 -0400
-@@ -115,7 +115,7 @@
- .n = _n, .len_n = sizeof(_n), \
- }
-
--static const struct key_params keys[] = {
-+static const struct key_params keys[] __attribute__((unused))= {
- ''')
- for n in xrange(n + 1):
- output.write(' KEYS(e_%d, n_%d),\n' % (n, n))
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/fix-issues-when-USE_OPENSSL-1.patch b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/fix-issues-when-USE_OPENSSL-1.patch
deleted file mode 100644
index 1bb5c638f0..0000000000
--- a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/fix-issues-when-USE_OPENSSL-1.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 8d2164a090f17286ea8291f30a123595cf447dc3 Mon Sep 17 00:00:00 2001
-From: Haiqing Bai <Haiqing.Bai@windriver.com>
-Date: Wed, 30 Nov 2016 10:27:36 +0800
-Subject: [PATCH] crda: fix issues when 'USE_OPENSSL=1'.
-
-Fxed the below issues if configured with 'USE_OPENSSL=1':
-a. keys-ssl.c uses BN_ULONG but doesn't include the openssl headers leading
- to build failures:
- keys-ssl.c:2:8: error: unknown type name 'BN_ULONG'
- static BN_ULONG e_0[1] = {
-
-b. The large unqualified constants also break building:
- keys-ssl.c:8:2: warning: overflow in implicit constant conversion [-Woverflow]
- 0x63a2705416a0d8e1, 0xdc9fca11c8ba757b,
-
-c. keys-ssl.c: error: 'keys' defined but not used [-Werror=unused-variable]
- static struct pubkey keys[] = {
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-Upstream-Status: Pending
-Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
----
- utils/key2pub.py | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/utils/key2pub.py b/utils/key2pub.py
-index 401d58a..3ae00b8 100755
---- a/utils/key2pub.py
-+++ b/utils/key2pub.py
-@@ -24,7 +24,7 @@ def print_ssl_64(output, name, val):
- for v1, v2, v3, v4, v5, v6, v7, v8 in vnew:
- if not idx:
- output.write('\t')
-- output.write('0x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x, ' % (ord(v1), ord(v2), ord(v3), ord(v4), ord(v5), ord(v6), ord(v7), ord(v8)))
-+ output.write('0x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2xULL, ' % (ord(v1), ord(v2), ord(v3), ord(v4), ord(v5), ord(v6), ord(v7), ord(v8)))
- idx += 1
- if idx == 2:
- idx = 0
-@@ -60,6 +60,7 @@ def print_ssl_32(output, name, val):
- def print_ssl(output, name, val):
- import os
- output.write('#include <stdint.h>\n')
-+ output.write('#include <openssl/bn.h>\n')
- if os.getenv('TARGET_BITS') == '64':
- return print_ssl_64(output, name, val)
- else:
-@@ -78,7 +79,7 @@ struct pubkey {
-
- #define KEYS(e,n) { KEY(e), KEY(n), }
-
--static struct pubkey keys[] = {
-+static struct pubkey keys[] __attribute__((unused))= {
- ''')
- for n in xrange(n + 1):
- output.write(' KEYS(e_%d, n_%d),\n' % (n, n))
---
-1.9.1
-
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch
deleted file mode 100644
index 812e983798..0000000000
--- a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 890f5bf2654b695a866262d72bfa9750af921a3b Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben@decadent.org.uk>
-Date: Sat, 23 Aug 2014 12:26:37 -0700
-Subject: [PATCH] Fix linking of libraries used by libreg
-
-The math and crypto libraries are called by and need to be linked to
-libreg.so, not to the executables.
-
-Upstream-Status: Backport [http://www.spinics.net/lists/linux-wireless/msg126027.html]
-
-Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
----
- Makefile | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index a3ead30..da2dcc3 100644
---- a/Makefile
-+++ b/Makefile
-@@ -30,7 +30,7 @@ CFLAGS += -std=gnu99 -Wall -Werror -pedantic
- CFLAGS += -Wall -g
- LDLIBREG += -lreg
- LDLIBS += $(LDLIBREG)
--LDLIBS += -lm
-+LIBREGLDLIBS += -lm
- LIBREG += libreg.so
- LDFLAGS += -L ./
-
-@@ -40,13 +40,13 @@ all_noverify: $(LIBREG) crda intersect regdbdump db2rd optimize
-
- ifeq ($(USE_OPENSSL),1)
- CFLAGS += -DUSE_OPENSSL -DPUBKEY_DIR=\"$(RUNTIME_PUBKEY_DIR)\" `pkg-config --cflags openssl`
--LDLIBS += `pkg-config --libs openssl`
-+LIBREGLDLIBS += `pkg-config --libs openssl`
-
- $(LIBREG): keys-ssl.c
-
- else
- CFLAGS += -DUSE_GCRYPT
--LDLIBS += -lgcrypt
-+LIBREGLDLIBS += -lgcrypt
-
- $(LIBREG): keys-gcrypt.c
-
-@@ -116,7 +116,7 @@ keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
-
- $(LIBREG): regdb.h reglib.h reglib.c
- $(NQ) ' CC ' $@
-- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^
-+ $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LIBREGLDLIBS)
-
- install-libreg-headers:
- $(NQ) ' INSTALL libreg-headers'
---
-2.7.4
-
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/make.patch b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/make.patch
deleted file mode 100644
index 0b737852c2..0000000000
--- a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/make.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-These headers are not related to any Make rule but they do appear in
-compiling of libreg.so, specifying .h files in compiler cmdline is flagged
-as error by clang
-
-| clang-4.0: error: cannot specify -o when generating multiple output files
-| make: *** [libreg.so] Error 1
-
-This is how we see headers in cmdline
--O2 -fpic -std=gnu
-99 -Wall -Werror -pedantic -Wall -g -DUSE_GCRYPT -DCONFIG_LIBNL30 `pkg-config --cflags libnl-3.0` -o libreg.so -shared -Wl,-soname,libreg.so
-regdb.h reglib.h reglib.c keys-gcrypt.c -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -L ./ -lm -lgcrypt
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/Makefile.kk 2016-11-15 04:54:53.338670000 +0000
-+++ a/Makefile 2016-11-15 04:55:07.718670000 +0000
-@@ -114,7 +114,7 @@ keys-%.c: utils/key2pub.py $(wildcard $(
- $(NQ) ' Trusted pubkeys:' $(wildcard $(PUBKEY_DIR)/*.pem)
- $(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@
-
--$(LIBREG): regdb.h reglib.h reglib.c
-+$(LIBREG): reglib.c
- $(NQ) ' CC ' $@
- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LDFLAGS) $(LIBREGLDLIBS)
-
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/use-target-word-size-instead-of-host-s.patch b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/use-target-word-size-instead-of-host-s.patch
deleted file mode 100644
index 100b765f2d..0000000000
--- a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda/use-target-word-size-instead-of-host-s.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From c1c42513edd27c97341f2033af77c13a4724eb8f Mon Sep 17 00:00:00 2001
-From: Haiqing Bai <Haiqing.Bai@windriver.com>
-Date: Fri, 25 Nov 2016 16:48:01 +0800
-Subject: [PATCH] crda: Use target word size instead of host's.
-
-In key2pub.py, the codes check the wordsize
-of the host machine but not the target's, this fix
-fetches the wordsize of target from the build system.
-
-Upstream-Status: Pending
-Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
----
- utils/key2pub.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/utils/key2pub.py b/utils/key2pub.py
-index 3e84cd2..401d58a 100755
---- a/utils/key2pub.py
-+++ b/utils/key2pub.py
-@@ -58,9 +58,9 @@ def print_ssl_32(output, name, val):
- output.write('};\n\n')
-
- def print_ssl(output, name, val):
-- import struct
-+ import os
- output.write('#include <stdint.h>\n')
-- if len(struct.pack('@L', 0)) == 8:
-+ if os.getenv('TARGET_BITS') == '64':
- return print_ssl_64(output, name, val)
- else:
- return print_ssl_32(output, name, val)
---
-1.9.1
-
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda_3.18.bb b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda_3.18.bb
deleted file mode 100644
index 2f4d4dac99..0000000000
--- a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/crda/crda_3.18.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Wireless Central Regulatory Domain Agent"
-HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA"
-SECTION = "net"
-LICENSE = "copyleft-next-0.3.0"
-LIC_FILES_CHKSUM = "file://copyleft-next-0.3.0;md5=8743a2c359037d4d329a31e79eabeffe"
-
-DEPENDS = "python3-m2crypto-native libnl libgcrypt"
-
-SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz \
- file://do-not-run-ldconfig-if-destdir-is-set.patch \
- file://fix-linking-of-libraries-used-by-reglib.patch \
- file://fix-gcc-6-unused-variables.patch \
- file://0001-Makefile-respect-LDFLAGS-for-libreg.patch \
- file://make.patch \
- file://use-target-word-size-instead-of-host-s.patch \
- file://fix-issues-when-USE_OPENSSL-1.patch \
- file://crda-4.14-python-3.patch \
- file://0001-Make-alpha2-to-be-3-characters-long.patch \
- file://0001-reglib-Remove-unused-variables.patch \
-"
-SRC_URI[md5sum] = "0431fef3067bf503dfb464069f06163a"
-SRC_URI[sha256sum] = "43fcb9679f8b75ed87ad10944a506292def13e4afb194afa7aa921b01e8ecdbf"
-
-inherit pkgconfig python3-dir python3native siteinfo
-
-# Recursive make problem
-EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg' \
- UDEV_RULE_DIR=${nonarch_base_libdir}/udev/rules.d/"
-TARGET_BITS = "${SITEINFO_BITS}"
-export TARGET_BITS
-
-do_compile() {
- oe_runmake all_noverify
-}
-
-do_install() {
- oe_runmake SBINDIR=${sbindir}/ install
-}
-
-RDEPENDS:${PN} = "udev wireless-regdb"
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/firewalld_1.2.0.bb b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/firewalld_1.2.0.bb
deleted file mode 100644
index 987cc640e1..0000000000
--- a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/firewalld_1.2.0.bb
+++ /dev/null
@@ -1,310 +0,0 @@
-SUMMARY = "Dynamic firewall daemon with a D-Bus interface"
-HOMEPAGE = "https://firewalld.org/"
-BUGTRACKER = "https://github.com/firewalld/firewalld/issues"
-UPSTREAM_CHECK_URI = "https://github.com/firewalld/firewalld/releases"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "\
- https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \
- file://firewalld.init \
- file://run-ptest \
-"
-SRC_URI[sha256sum] = "28fd90e88bda0dfd460f370f353474811b2e295d7eb27f0d7d18ffa3d786eeb7"
-
-# glib-2.0-native is needed for GSETTINGS_RULES autoconf macro from gsettings.m4
-DEPENDS = "intltool-native glib-2.0-native nftables"
-
-inherit gettext autotools-brokensep bash-completion pkgconfig python3native python3-dir gsettings systemd update-rc.d ptest
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd"
-PACKAGECONFIG[docs] = "--with-xml-catalog=${STAGING_ETCDIR_NATIVE}/xml/catalog,--disable-docs,libxslt-native docbook-xsl-stylesheets-native"
-PACKAGECONFIG[ipset] = "--with-ipset=${sbindir}/ipset,--without-ipset,,ipset"
-PACKAGECONFIG[ebtables] = "--with-ebtables=${base_sbindir}/ebtables --with-ebtables-restore=${sbindir}/ebtables-legacy-restore,--without-ebtables --without-ebtables-restore,,ebtables"
-
-# Default logging configuration: mixed syslog file console
-FIREWALLD_DEFAULT_LOG_TARGET ??= "syslog"
-
-# The UIs are not yet tested and the dependencies are probably not quite correct yet.
-# Splitting into separate packages is beneficial so that no dead code is transferred
-# to the target device.
-# Without enabling qt5, the firewalld-config package is not usable.
-# Without enabling qt5 and gtk, the firewalld-applet package is not usable.
-PACKAGECONFIG[qt5] = ""
-PACKAGECONFIG[gtk] = ""
-
-PACKAGES =+ "python3-firewall ${PN}-applet ${PN}-config ${PN}-offline-cmd ${PN}-zsh-completion ${PN}-log-rotate"
-
-# iptables, ip6tables, ebtables, and ipset *should* be unnecessary
-# when the nftables backend is available, because nftables supersedes all of them.
-# However we still need iptables and ip6tables to be available otherwise any
-# application relying on "direct passthrough" rules (such as docker) will break.
-# /etc/sysconfig/firewalld is a Red Hat-ism, only referenced by
-# the Red Hat-specific init script which we aren't using, so we disable that.
-EXTRA_OECONF = "\
- --with-iptables=${sbindir}/iptables \
- --with-iptables-restore=${sbindir}/iptables-restore \
- --with-ip6tables=${sbindir}/ip6tables \
- --with-ip6tables-restore=${sbindir}/ip6tables-restore \
- --disable-sysconfig \
-"
-
-INITSCRIPT_NAME = "firewalld"
-SYSTEMD_SERVICE:${PN} = "firewalld.service"
-
-# kernel modules loaded after ptest execution (linux-yocto 5.15)
-FIREWALLD_KERNEL_MODULES ?= "\
- xt_tcpudp \
- xt_TCPMSS \
- xt_set \
- xt_sctp \
- xt_REDIRECT \
- xt_pkttype \
- xt_NFLOG \
- xt_nat \
- xt_MASQUERADE \
- xt_mark \
- xt_mac \
- xt_LOG \
- xt_limit \
- xt_dccp \
- xt_CT \
- xt_conntrack \
- xt_CHECKSUM \
- nft_redir \
- nft_objref \
- nft_nat \
- nft_masq \
- nft_log \
- nfnetlink_log \
- nf_nat_tftp \
- nf_nat_sip \
- nf_nat_ftp \
- nf_log_syslog \
- nf_conntrack_tftp \
- nf_conntrack_sip \
- nf_conntrack_netbios_ns \
- nf_conntrack_ftp \
- nf_conntrack_broadcast \
- ipt_REJECT \
- ip6t_rpfilter \
- ip6t_REJECT \
- ip_set_hash_netport \
- ip_set_hash_netnet \
- ip_set_hash_netiface \
- ip_set_hash_net \
- ip_set_hash_mac \
- ip_set_hash_ipportnet \
- ip_set_hash_ipport \
- ip_set_hash_ipmark \
- ip_set_hash_ip \
- ebt_ip6 \
- nft_fib_inet \
- nft_fib_ipv4 \
- nft_fib_ipv6 \
- nft_fib \
- nft_reject_inet \
- nf_reject_ipv4 \
- nf_reject_ipv6 \
- nft_reject \
- nft_ct \
- nft_chain_nat \
- ebtable_nat \
- ebtable_broute \
- ip6table_nat \
- ip6table_mangle \
- ip6table_raw \
- ip6table_security \
- iptable_nat \
- nf_nat \
- nf_conntrack \
- nf_defrag_ipv6 \
- nf_defrag_ipv4 \
- iptable_mangle \
- iptable_raw \
- iptable_security \
- ip_set \
- ebtable_filter \
- ebtables \
- ip6table_filter \
- ip6_tables \
- iptable_filter \
- ip_tables \
- x_tables \
- sch_fq_codel \
-"
-
-do_configure:prepend() {
- export DEFAULT_LOG_TARGET=${FIREWALLD_DEFAULT_LOG_TARGET}
-}
-
-do_install:append() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'false', 'true', d)}; then
- # firewalld ships an init script but it contains Red Hat-isms, replace it with our own
- rm -rf ${D}${sysconfdir}/rc.d/
- install -d ${D}${sysconfdir}/init.d
- install -m0755 ${WORKDIR}/firewalld.init ${D}${sysconfdir}/init.d/firewalld
- fi
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'false', 'true', d)}; then
- # Delete polkit profiles if polkit is not available
- rm -rf ${D}${datadir}/polkit-1
- fi
-
- # We ran ./configure with PYTHON pointed at the binary inside $STAGING_BINDIR_NATIVE
- # so now we need to fix up any references to point at the proper path in the image.
- # This hack is also in distutils.bbclass, but firewalld doesn't use distutils/setuptools.
- if [ ${PN} != "${BPN}-native" ]; then
- sed -i -e s:${STAGING_BINDIR_NATIVE}/python3-native/python3:${bindir}/python3:g \
- ${D}${bindir}/* ${D}${sbindir}/* ${D}${sysconfdir}/firewalld/*.xml
- fi
- sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g \
- ${D}${bindir}/* ${D}${sbindir}/* ${D}${sysconfdir}/firewalld/*.xml
-
- # This file contains Red Hat-isms. Modules get loaded without it.
- rm -f ${D}${sysconfdir}/modprobe.d/firewalld-sysctls.conf
-}
-
-do_install_ptest:append() {
- # Add kernel modules to the ptest script
- if [ ${PTEST_ENABLED} = "1" ]; then
- sed -i -e 's:@@FIREWALLD_KERNEL_MODULES@@:${FIREWALLD_KERNEL_MODULES}:g' \
- ${D}${PTEST_PATH}/run-ptest
- fi
-}
-
-SUMMARY:python3-firewall = "${SUMMARY} (Python3 bindings)"
-FILES:python3-firewall = "\
- ${PYTHON_SITEPACKAGES_DIR}/firewall/__pycache__/*.py* \
- ${PYTHON_SITEPACKAGES_DIR}/firewall/*.py* \
- ${PYTHON_SITEPACKAGES_DIR}/firewall/config/*.py* \
- ${PYTHON_SITEPACKAGES_DIR}/firewall/config/__pycache__/*.py* \
- ${PYTHON_SITEPACKAGES_DIR}/firewall/core/*.py* \
- ${PYTHON_SITEPACKAGES_DIR}/firewall/core/__pycache__/*.py* \
- ${PYTHON_SITEPACKAGES_DIR}/firewall/core/io/*.py* \
- ${PYTHON_SITEPACKAGES_DIR}/firewall/core/io/__pycache__/*.py* \
- ${PYTHON_SITEPACKAGES_DIR}/firewall/server/*.py* \
- ${PYTHON_SITEPACKAGES_DIR}/firewall/server/__pycache__/*.py* \
-"
-RDEPENDS:python3-firewall = "\
- python3-dbus \
- nftables-python \
- python3-pygobject \
-"
-
-# Do not depend on QT5 layer and GTK deps if not explicitely required.
-FIREWALLD_QT5_RDEPENDS = "\
- ${PN}-config \
- hicolor-icon-theme \
- python3-pyqt5 \
- python3-pygobject \
- libnotify \
- networkmanager \
-"
-FIREWALLD_GTK_RDEPENDS = "\
- gtk3 \
-"
-
-# A QT5 based UI
-SUMMARY:${PN}-config = "${SUMMARY} (configuration application)"
-FILES:${PN}-config = "\
- ${bindir}/firewall-config \
- ${datadir}/firewalld/firewall-config.glade \
- ${datadir}/firewalld/gtk3_chooserbutton.py* \
- ${datadir}/firewalld/gtk3_niceexpander.py* \
- ${datadir}/applications/firewall-config.desktop \
- ${datadir}/metainfo/firewall-config.appdata.xml \
- ${datadir}/icons/hicolor/*/apps/firewall-config*.* \
-"
-RDEPENDS:${PN}-config += "\
- python3-core \
- python3-ctypes \
- ${@bb.utils.contains('PACKAGECONFIG', 'qt5', '${FIREWALLD_QT5_RDEPENDS}', '', d)} \
-"
-
-# A GTK3 applet depending on the QT5 firewall-config UI
-SUMMARY:${PN}-applet = "${SUMMARY} (panel applet)"
-FILES:${PN}-applet += "\
- ${bindir}/firewall-applet \
- ${sysconfdir}/xdg/autostart/firewall-applet.desktop \
- ${sysconfdir}/firewall/applet.conf \
- ${datadir}/icons/hicolor/*/apps/firewall-applet*.* \
-"
-RDEPENDS:${PN}-applet += "\
- python3-core \
- python3-ctypes \
- ${@bb.utils.contains('PACKAGECONFIG', 'qt5', '${FIREWALLD_QT5_RDEPENDS}', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'gtk', '${FIREWALLD_GTK_RDEPENDS}', '', d)} \
-"
-
-SUMMARY:${PN}-offline-cmd = "${SUMMARY} (offline configuration utility)"
-FILES:${PN}-offline-cmd += " \
- ${bindir}/firewall-offline-cmd \
-"
-RDEPENDS:${PN}-offline-cmd += "python3-core"
-
-SUMMARY:${PN}-log-rotate = "${SUMMARY} (log-rotate configuration)"
-FILES:${PN}-log-rotate += "${sysconfdir}/logrotate.d"
-
-# To get allmost all tests passing
-# - Enable PACKAGECONFIG ipset, ebtable
-# - Enough RAM QB_MEM = "-m 8192" (used für fancy ipset tests)
-FILES:${PN}-ptest += "\
- ${datadir}/firewalld/testsuite \
-"
-RDEPENDS:${PN}-ptest += "\
- python3-unittest \
- ${PN}-offline-cmd \
- procps-ps \
- iproute2 \
-"
-RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils glibc-localedata-en-us"
-
-FILES:${PN}-zsh-completion = "${datadir}/zsh/site-functions"
-
-FILES:${PN} += "\
- ${PYTHON_SITEPACKAGES_DIR}/firewall \
- ${nonarch_libdir}/firewalld \
- ${datadir}/dbus-1 \
- ${datadir}/polkit-1 \
- ${datadir}/metainfo \
- ${datadir}/glib-2.0/schemas/org.fedoraproject.FirewallConfig.gschema.xml \
-"
-RDEPENDS:${PN} += "\
- python3-firewall \
- iptables \
- python3-core \
- python3-io \
- python3-fcntl \
- python3-syslog \
- python3-xml \
- python3-json \
- python3-ctypes \
- python3-pprint \
-"
-# If firewalld writes a log file rotation is needed
-RRECOMMENDS:${PN} += "${@bb.utils.contains_any('FIREWALLD_DEFAULT_LOG_TARGET', [ 'mixed', 'file' ], '${PN}-log-rotate', '', d)}"
-
-# Add required kernel modules. With Yocto kernel 5.15 this currently means:
-# - features/nf_tables/nf_tables.scc
-# - features/netfilter/netfilter.scc
-# - cgl/features/audit/audit.scc
-# - cfg/net/ip6_nf.scc
-# - Plus:
-# - ebtables
-# - ipset
-# - CONFIG_IP6_NF_SECURITY=m
-# - CONFIG_IP6_NF_MATCH_RPFILTER=m
-# - CONFIG_IP6_NF_TARGET_REJECT=m
-# - CONFIG_NFT_OBJREF=m
-# - CONFIG_NFT_FIB=m
-# - CONFIG_NFT_FIB_INET=m
-# - CONFIG_NFT_FIB_IPV4=m
-# - CONFIG_NFT_FIB_IPV6=m
-# - CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-# - CONFIG_NETFILTER_XT_SET=m
-def get_kernel_deps(d):
- kmodules = (d.getVar('FIREWALLD_KERNEL_MODULES') or "").split()
- return ' '.join([ 'kernel-module-' + mod.replace('_', '-').lower() for mod in kmodules ])
-RRECOMMENDS:${PN} += "${@get_kernel_deps(d)}"
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/firewalld_1.3.2.bb b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/firewalld_1.3.2.bb
new file mode 100644
index 0000000000..52157cf9a8
--- /dev/null
+++ b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/firewalld_1.3.2.bb
@@ -0,0 +1,312 @@
+SUMMARY = "Dynamic firewall daemon with a D-Bus interface"
+HOMEPAGE = "https://firewalld.org/"
+BUGTRACKER = "https://github.com/firewalld/firewalld/issues"
+UPSTREAM_CHECK_URI = "https://github.com/firewalld/firewalld/releases"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "\
+ https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.bz2 \
+ file://firewalld.init \
+ file://run-ptest \
+"
+SRC_URI[sha256sum] = "aba0d8ce9617b906ea4866bf0bdfb2c2d5312f53b8e9e8e9e4d49bf330da5b5e"
+
+# glib-2.0-native is needed for GSETTINGS_RULES autoconf macro from gsettings.m4
+DEPENDS = "intltool-native glib-2.0-native nftables"
+
+inherit gettext autotools-brokensep bash-completion pkgconfig python3native python3-dir gsettings systemd update-rc.d ptest features_check
+
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd"
+PACKAGECONFIG[docs] = "--with-xml-catalog=${STAGING_ETCDIR_NATIVE}/xml/catalog,--disable-docs,libxslt-native docbook-xsl-stylesheets-native"
+PACKAGECONFIG[ipset] = "--with-ipset=${sbindir}/ipset,--without-ipset,,ipset"
+PACKAGECONFIG[ebtables] = "--with-ebtables=${base_sbindir}/ebtables --with-ebtables-restore=${sbindir}/ebtables-legacy-restore,--without-ebtables --without-ebtables-restore,,ebtables"
+
+# Default logging configuration: mixed syslog file console
+FIREWALLD_DEFAULT_LOG_TARGET ??= "syslog"
+
+# The UIs are not yet tested and the dependencies are probably not quite correct yet.
+# Splitting into separate packages is beneficial so that no dead code is transferred
+# to the target device.
+# Without enabling qt5, the firewalld-config package is not usable.
+# Without enabling qt5 and gtk, the firewalld-applet package is not usable.
+PACKAGECONFIG[qt5] = ""
+PACKAGECONFIG[gtk] = ""
+
+PACKAGES =+ "python3-firewall ${PN}-applet ${PN}-config ${PN}-offline-cmd ${PN}-zsh-completion ${PN}-log-rotate"
+
+# iptables, ip6tables, ebtables, and ipset *should* be unnecessary
+# when the nftables backend is available, because nftables supersedes all of them.
+# However we still need iptables and ip6tables to be available otherwise any
+# application relying on "direct passthrough" rules (such as docker) will break.
+# /etc/sysconfig/firewalld is a Red Hat-ism, only referenced by
+# the Red Hat-specific init script which we aren't using, so we disable that.
+EXTRA_OECONF = "\
+ --with-iptables=${sbindir}/iptables \
+ --with-iptables-restore=${sbindir}/iptables-restore \
+ --with-ip6tables=${sbindir}/ip6tables \
+ --with-ip6tables-restore=${sbindir}/ip6tables-restore \
+ --disable-sysconfig \
+"
+
+INITSCRIPT_NAME = "firewalld"
+SYSTEMD_SERVICE:${PN} = "firewalld.service"
+
+# kernel modules loaded after ptest execution (linux-yocto 5.15)
+FIREWALLD_KERNEL_MODULES ?= "\
+ xt_tcpudp \
+ xt_TCPMSS \
+ xt_set \
+ xt_sctp \
+ xt_REDIRECT \
+ xt_pkttype \
+ xt_NFLOG \
+ xt_nat \
+ xt_MASQUERADE \
+ xt_mark \
+ xt_mac \
+ xt_LOG \
+ xt_limit \
+ xt_dccp \
+ xt_CT \
+ xt_conntrack \
+ xt_CHECKSUM \
+ nft_redir \
+ nft_objref \
+ nft_nat \
+ nft_masq \
+ nft_log \
+ nfnetlink_log \
+ nf_nat_tftp \
+ nf_nat_sip \
+ nf_nat_ftp \
+ nf_log_syslog \
+ nf_conntrack_tftp \
+ nf_conntrack_sip \
+ nf_conntrack_netbios_ns \
+ nf_conntrack_ftp \
+ nf_conntrack_broadcast \
+ ipt_REJECT \
+ ip6t_rpfilter \
+ ip6t_REJECT \
+ ip_set_hash_netport \
+ ip_set_hash_netnet \
+ ip_set_hash_netiface \
+ ip_set_hash_net \
+ ip_set_hash_mac \
+ ip_set_hash_ipportnet \
+ ip_set_hash_ipport \
+ ip_set_hash_ipmark \
+ ip_set_hash_ip \
+ ebt_ip6 \
+ nft_fib_inet \
+ nft_fib_ipv4 \
+ nft_fib_ipv6 \
+ nft_fib \
+ nft_reject_inet \
+ nf_reject_ipv4 \
+ nf_reject_ipv6 \
+ nft_reject \
+ nft_ct \
+ nft_chain_nat \
+ ebtable_nat \
+ ebtable_broute \
+ ip6table_nat \
+ ip6table_mangle \
+ ip6table_raw \
+ ip6table_security \
+ iptable_nat \
+ nf_nat \
+ nf_conntrack \
+ nf_defrag_ipv6 \
+ nf_defrag_ipv4 \
+ iptable_mangle \
+ iptable_raw \
+ iptable_security \
+ ip_set \
+ ebtable_filter \
+ ebtables \
+ ip6table_filter \
+ ip6_tables \
+ iptable_filter \
+ ip_tables \
+ x_tables \
+ sch_fq_codel \
+"
+
+do_configure:prepend() {
+ export DEFAULT_LOG_TARGET=${FIREWALLD_DEFAULT_LOG_TARGET}
+}
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'false', 'true', d)}; then
+ # firewalld ships an init script but it contains Red Hat-isms, replace it with our own
+ rm -rf ${D}${sysconfdir}/rc.d/
+ install -d ${D}${sysconfdir}/init.d
+ install -m0755 ${WORKDIR}/firewalld.init ${D}${sysconfdir}/init.d/firewalld
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'false', 'true', d)}; then
+ # Delete polkit profiles if polkit is not available
+ rm -rf ${D}${datadir}/polkit-1
+ fi
+
+ # We ran ./configure with PYTHON pointed at the binary inside $STAGING_BINDIR_NATIVE
+ # so now we need to fix up any references to point at the proper path in the image.
+ # This hack is also in distutils.bbclass, but firewalld doesn't use distutils/setuptools.
+ if [ ${PN} != "${BPN}-native" ]; then
+ sed -i -e s:${STAGING_BINDIR_NATIVE}/python3-native/python3:${bindir}/python3:g \
+ ${D}${bindir}/* ${D}${sbindir}/* ${D}${sysconfdir}/firewalld/*.xml
+ fi
+ sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g \
+ ${D}${bindir}/* ${D}${sbindir}/* ${D}${sysconfdir}/firewalld/*.xml
+
+ # This file contains Red Hat-isms. Modules get loaded without it.
+ rm -f ${D}${sysconfdir}/modprobe.d/firewalld-sysctls.conf
+}
+
+do_install_ptest:append() {
+ # Add kernel modules to the ptest script
+ if [ ${PTEST_ENABLED} = "1" ]; then
+ sed -i -e 's:@@FIREWALLD_KERNEL_MODULES@@:${FIREWALLD_KERNEL_MODULES}:g' \
+ ${D}${PTEST_PATH}/run-ptest
+ fi
+}
+
+SUMMARY:python3-firewall = "${SUMMARY} (Python3 bindings)"
+FILES:python3-firewall = "\
+ ${PYTHON_SITEPACKAGES_DIR}/firewall/__pycache__/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/firewall/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/firewall/config/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/firewall/config/__pycache__/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/firewall/core/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/firewall/core/__pycache__/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/firewall/core/io/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/firewall/core/io/__pycache__/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/firewall/server/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/firewall/server/__pycache__/*.py* \
+"
+RDEPENDS:python3-firewall = "\
+ python3-dbus \
+ nftables-python \
+ python3-pygobject \
+"
+
+# Do not depend on QT5 layer and GTK deps if not explicitely required.
+FIREWALLD_QT5_RDEPENDS = "\
+ ${PN}-config \
+ hicolor-icon-theme \
+ python3-pyqt5 \
+ python3-pygobject \
+ libnotify \
+ networkmanager \
+"
+FIREWALLD_GTK_RDEPENDS = "\
+ gtk3 \
+"
+
+# A QT5 based UI
+SUMMARY:${PN}-config = "${SUMMARY} (configuration application)"
+FILES:${PN}-config = "\
+ ${bindir}/firewall-config \
+ ${datadir}/firewalld/firewall-config.glade \
+ ${datadir}/firewalld/gtk3_chooserbutton.py* \
+ ${datadir}/firewalld/gtk3_niceexpander.py* \
+ ${datadir}/applications/firewall-config.desktop \
+ ${datadir}/metainfo/firewall-config.appdata.xml \
+ ${datadir}/icons/hicolor/*/apps/firewall-config*.* \
+"
+RDEPENDS:${PN}-config += "\
+ python3-core \
+ python3-ctypes \
+ ${@bb.utils.contains('PACKAGECONFIG', 'qt5', '${FIREWALLD_QT5_RDEPENDS}', '', d)} \
+"
+
+# A GTK3 applet depending on the QT5 firewall-config UI
+SUMMARY:${PN}-applet = "${SUMMARY} (panel applet)"
+FILES:${PN}-applet += "\
+ ${bindir}/firewall-applet \
+ ${sysconfdir}/xdg/autostart/firewall-applet.desktop \
+ ${sysconfdir}/firewall/applet.conf \
+ ${datadir}/icons/hicolor/*/apps/firewall-applet*.* \
+"
+RDEPENDS:${PN}-applet += "\
+ python3-core \
+ python3-ctypes \
+ ${@bb.utils.contains('PACKAGECONFIG', 'qt5', '${FIREWALLD_QT5_RDEPENDS}', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'gtk', '${FIREWALLD_GTK_RDEPENDS}', '', d)} \
+"
+
+SUMMARY:${PN}-offline-cmd = "${SUMMARY} (offline configuration utility)"
+FILES:${PN}-offline-cmd += " \
+ ${bindir}/firewall-offline-cmd \
+"
+RDEPENDS:${PN}-offline-cmd += "python3-core"
+
+SUMMARY:${PN}-log-rotate = "${SUMMARY} (log-rotate configuration)"
+FILES:${PN}-log-rotate += "${sysconfdir}/logrotate.d"
+
+# To get allmost all tests passing
+# - Enable PACKAGECONFIG ipset, ebtable
+# - Enough RAM QB_MEM = "-m 8192" (used für fancy ipset tests)
+FILES:${PN}-ptest += "\
+ ${datadir}/firewalld/testsuite \
+"
+RDEPENDS:${PN}-ptest += "\
+ python3-unittest \
+ ${PN}-offline-cmd \
+ procps-ps \
+ iproute2 \
+"
+RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils glibc-localedata-en-us"
+
+FILES:${PN}-zsh-completion = "${datadir}/zsh/site-functions"
+
+FILES:${PN} += "\
+ ${PYTHON_SITEPACKAGES_DIR}/firewall \
+ ${nonarch_libdir}/firewalld \
+ ${datadir}/dbus-1 \
+ ${datadir}/polkit-1 \
+ ${datadir}/metainfo \
+ ${datadir}/glib-2.0/schemas/org.fedoraproject.FirewallConfig.gschema.xml \
+"
+RDEPENDS:${PN} += "\
+ python3-firewall \
+ iptables \
+ python3-core \
+ python3-io \
+ python3-fcntl \
+ python3-syslog \
+ python3-xml \
+ python3-json \
+ python3-ctypes \
+ python3-pprint \
+"
+# If firewalld writes a log file rotation is needed
+RRECOMMENDS:${PN} += "${@bb.utils.contains_any('FIREWALLD_DEFAULT_LOG_TARGET', [ 'mixed', 'file' ], '${PN}-log-rotate', '', d)}"
+
+# Add required kernel modules. With Yocto kernel 5.15 this currently means:
+# - features/nf_tables/nf_tables.scc
+# - features/netfilter/netfilter.scc
+# - cgl/features/audit/audit.scc
+# - cfg/net/ip6_nf.scc
+# - Plus:
+# - ebtables
+# - ipset
+# - CONFIG_IP6_NF_SECURITY=m
+# - CONFIG_IP6_NF_MATCH_RPFILTER=m
+# - CONFIG_IP6_NF_TARGET_REJECT=m
+# - CONFIG_NFT_OBJREF=m
+# - CONFIG_NFT_FIB=m
+# - CONFIG_NFT_FIB_INET=m
+# - CONFIG_NFT_FIB_IPV4=m
+# - CONFIG_NFT_FIB_IPV6=m
+# - CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+# - CONFIG_NETFILTER_XT_SET=m
+def get_kernel_deps(d):
+ kmodules = (d.getVar('FIREWALLD_KERNEL_MODULES') or "").split()
+ return ' '.join([ 'kernel-module-' + mod.replace('_', '-').lower() for mod in kmodules ])
+RRECOMMENDS:${PN} += "${@get_kernel_deps(d)}"
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-printing/system-config-printer/system-config-printer_1.5.18.bb b/meta-networking/dynamic-layers/meta-python/recipes-printing/system-config-printer/system-config-printer_1.5.18.bb
new file mode 100644
index 0000000000..bff16b4412
--- /dev/null
+++ b/meta-networking/dynamic-layers/meta-python/recipes-printing/system-config-printer/system-config-printer_1.5.18.bb
@@ -0,0 +1,50 @@
+DESCRIPTION = "a graphical user interface that allows the user to change print settings"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://github.com/OpenPrinting/system-config-printer.git;protocol=https;branch=master"
+
+SRCREV = "895d3dec50c93bfd4f142bac9bfcc13051bf84cb"
+S = "${WORKDIR}/git"
+
+inherit autotools gettext pkgconfig python3native features_check
+
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+
+DEPENDS = "cups glib-2.0 libusb xmlto-native desktop-file-utils-native autoconf-archive-native python3-setuptools-native"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd polkit', d)}"
+PACKAGECONFIG[systemd] = ",--without-systemdsystemunitdir,systemd"
+PACKAGECONFIG[polkit] = ",,,cups-pk-helper"
+
+do_configure:prepend() {
+ # This file is not provided if fetching from git but required for configure
+ touch ${S}/ChangeLog
+}
+
+do_install:append() {
+ cp -rf ${B}/cupshelpers.egg-info ${D}${PYTHON_SITEPACKAGES_DIR}
+ cp -rf ${B}/cupshelpers ${D}${PYTHON_SITEPACKAGES_DIR}
+ rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/*.egg
+ for f in __init__.cpython-311.pyc cupshelpers.cpython-311.pyc \
+ config.cpython-311.pyc ppds.cpython-311.pyc \
+ installdriver.cpython-311.pyc openprinting.cpython-311.pyc \
+ xmldriverprefs.cpython-311.pyc; do
+ rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/cupshelpers/__pycache__/$f
+ done
+}
+
+FILES:${PN} += "${libdir} ${datadir}"
+
+RDEPENDS:${PN} = " \
+ cups \
+ dbus-x11 \
+ gtk+3 \
+ libnotify \
+ python3-core \
+ python3-dbus \
+ python3-firewall \
+ python3-pycups \
+ python3-pycurl \
+ python3-pygobject \
+"
diff --git a/meta-networking/files/static-group-meta-networking b/meta-networking/files/static-group-meta-networking
new file mode 100644
index 0000000000..dbdc7a5b9b
--- /dev/null
+++ b/meta-networking/files/static-group-meta-networking
@@ -0,0 +1,15 @@
+ftp:x:630:
+dovecot:x:631:
+dovenull:x:632:
+postfix:x:633:
+postdrop:x:634:
+vmail:x:635:
+frr:x:637:
+frrvty:x:638:
+nogroup:x:65534:
+ftp:x:640:
+rwhod:x:641:
+lldpd:x:642:
+opensaf:x:643:
+radiusd:x:651:
+ntp:x:653:
diff --git a/meta-networking/files/static-passwd-meta-networking b/meta-networking/files/static-passwd-meta-networking
new file mode 100644
index 0000000000..bca257bb27
--- /dev/null
+++ b/meta-networking/files/static-passwd-meta-networking
@@ -0,0 +1,19 @@
+ftp:x:630:630::/:/bin/nologin
+dovecot:x:631:631::/:/bin/nologin
+dovenull:x:632:632::/:/bin/nologin
+postfix:x:633:633::/:/bin/nologin
+vmail:x:635:635::/:/bin/nologin
+radvd:x:636:nogroup::${localstatedir}/run/radvd/:/bin/nologin
+frr:x:637:637::/:/bin/nologin
+ftp:x:640:640::/:/bin/nologin
+rwhod:x:641:641::/:/bin/nologin
+lldpd:x:642:642::/:/bin/nologin
+opensaf:x:643:643::/:/bin/nologin
+tinyproxy:x:650:nogroup::/:/bin/nologin
+radiusd:x:651:radiusd::/:/bin/nologin
+nm-openconnect:x:652:nogroup::/:/bin/nologin
+ntp:x:653:ntp::/:/bin/nologin
+nm-fortisslvpn:x:654:nogroup::/:/bin/nologin
+nm-openvpn:x:655:nogroup::/:/bin/nologin
+squid:x:656:nogroup::/:/bin/nologin
+mosquitto:x:657:nogroup::/:/bin/nologin
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt b/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt
index e91df71ea2..ea561073ed 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt
@@ -42,5 +42,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt b/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt
index e91df71ea2..ea561073ed 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt
@@ -42,5 +42,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-arm.txt b/meta-networking/files/waf-cross-answers/cross-answers-arm.txt
index b670e4ac44..5655a65852 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-arm.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-arm.txt
@@ -43,5 +43,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt b/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt
index b670e4ac44..5655a65852 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt
@@ -43,5 +43,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-i586.txt b/meta-networking/files/waf-cross-answers/cross-answers-i586.txt
index b670e4ac44..5655a65852 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-i586.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-i586.txt
@@ -43,5 +43,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-i686.txt b/meta-networking/files/waf-cross-answers/cross-answers-i686.txt
index b670e4ac44..5655a65852 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-i686.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-i686.txt
@@ -43,5 +43,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-mips.txt b/meta-networking/files/waf-cross-answers/cross-answers-mips.txt
index ad52b4a9ab..84816e06f5 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-mips.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-mips.txt
@@ -43,5 +43,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt b/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt
index c799942d4b..cdf7169cb0 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt
@@ -42,5 +42,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt b/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt
index c799942d4b..cdf7169cb0 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt
@@ -42,5 +42,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt b/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt
index ad52b4a9ab..84816e06f5 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt
@@ -43,5 +43,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt b/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt
index ac857d46ed..c563a27967 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt
@@ -43,5 +43,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt b/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt
index dfc48754cb..31a27e2464 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt
@@ -43,5 +43,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-powerpc64le.txt b/meta-networking/files/waf-cross-answers/cross-answers-powerpc64le.txt
index dfc48754cb..31a27e2464 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-powerpc64le.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-powerpc64le.txt
@@ -43,5 +43,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-riscv32.txt b/meta-networking/files/waf-cross-answers/cross-answers-riscv32.txt
index b670e4ac44..5655a65852 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-riscv32.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-riscv32.txt
@@ -43,5 +43,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt b/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt
index e91df71ea2..ea561073ed 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt
@@ -42,5 +42,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt b/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt
index e91df71ea2..ea561073ed 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt
@@ -42,5 +42,6 @@ Checking errno of iconv for illegal multibyte sequence: NO
Checking value of GNUTLS_CIPHER_AES_128_CFB8: OK
Checking value of GNUTLS_MAC_AES_CMAC_128: OK
Checking whether fcntl supports flags to send direct I/O availability signals: NO
-Checking whether fcntl supports setting/geting hints: NO
+Checking whether fcntl supports setting/getting hints: NO
Checking for readlink breakage: NO
+Checking for gnutls fips mode support: NO
diff --git a/meta-networking/licenses/netperf b/meta-networking/licenses/netperf
deleted file mode 100644
index 3f3ceb2fc2..0000000000
--- a/meta-networking/licenses/netperf
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
- Copyright (C) 1993 Hewlett-Packard Company
- ALL RIGHTS RESERVED.
-
- The enclosed software and documentation includes copyrighted works
- of Hewlett-Packard Co. For as long as you comply with the following
- limitations, you are hereby authorized to (i) use, reproduce, and
- modify the software and documentation, and to (ii) distribute the
- software and documentation, including modifications, for
- non-commercial purposes only.
-
- 1. The enclosed software and documentation is made available at no
- charge in order to advance the general development of
- high-performance networking products.
-
- 2. You may not delete any copyright notices contained in the
- software or documentation. All hard copies, and copies in
- source code or object code form, of the software or
- documentation (including modifications) must contain at least
- one of the copyright notices.
-
- 3. The enclosed software and documentation has not been subjected
- to testing and quality control and is not a Hewlett-Packard Co.
- product. At a future time, Hewlett-Packard Co. may or may not
- offer a version of the software and documentation as a product.
-
- 4. THE SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS".
- HEWLETT-PACKARD COMPANY DOES NOT WARRANT THAT THE USE,
- REPRODUCTION, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR
- DOCUMENTATION WILL NOT INFRINGE A THIRD PARTY'S INTELLECTUAL
- PROPERTY RIGHTS. HP DOES NOT WARRANT THAT THE SOFTWARE OR
- DOCUMENTATION IS ERROR FREE. HP DISCLAIMS ALL WARRANTIES,
- EXPRESS AND IMPLIED, WITH REGARD TO THE SOFTWARE AND THE
- DOCUMENTATION. HP SPECIFICALLY DISCLAIMS ALL WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
- 5. HEWLETT-PACKARD COMPANY WILL NOT IN ANY EVENT BE LIABLE FOR ANY
- DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
- (INCLUDING LOST PROFITS) RELATED TO ANY USE, REPRODUCTION,
- MODIFICATION, OR DISTRIBUTION OF THE SOFTWARE OR DOCUMENTATION.
-
-
diff --git a/meta-networking/recipes-connectivity/adcli/adcli_0.9.0.bb b/meta-networking/recipes-connectivity/adcli/adcli_0.9.0.bb
deleted file mode 100644
index b9fefa8589..0000000000
--- a/meta-networking/recipes-connectivity/adcli/adcli_0.9.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Active Directory enrollment"
-DESCRIPTION = "A helper library and tools for Active Directory client operations."
-
-HOMEPAGE = "http://cgit.freedesktop.org/realmd/adcli"
-SECTION = "net"
-
-SRCREV = "1b1528038e084a9f81ea108cffca9c2707623b9c"
-
-SRC_URI = "git://gitlab.freedesktop.org/realmd/adcli;branch=master \
- file://Fixed-build-error-on-musl.patch \
- file://0001-configure-check-for-ns_get16-and-ns_get32-as-well.patch \
- "
-
-S = "${WORKDIR}/git"
-
-LICENSE = "LGPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6"
-
-inherit autotools xmlcatalog
-
-DEPENDS += "virtual/crypt krb5 openldap gettext libxslt xmlto libxml2-native \
- cyrus-sasl libxslt-native xmlto-native coreutils-native\
- "
-
-EXTRA_OECONF += "--disable-static \
- --disable-silent-rules \
- --disable-doc \
- "
diff --git a/meta-networking/recipes-connectivity/adcli/adcli_0.9.2.bb b/meta-networking/recipes-connectivity/adcli/adcli_0.9.2.bb
new file mode 100644
index 0000000000..c5dcccbac5
--- /dev/null
+++ b/meta-networking/recipes-connectivity/adcli/adcli_0.9.2.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Active Directory enrollment"
+DESCRIPTION = "A helper library and tools for Active Directory client operations."
+
+HOMEPAGE = "http://cgit.freedesktop.org/realmd/adcli"
+SECTION = "net"
+
+SRCREV = "8e88e3590a19006362ea8b8dfdc18bb88b3cb3b5"
+
+SRC_URI = "git://gitlab.freedesktop.org/realmd/adcli;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6"
+
+inherit autotools xmlcatalog
+
+DEPENDS += "virtual/crypt krb5 openldap gettext libxslt xmlto libxml2-native \
+ cyrus-sasl libxslt-native xmlto-native coreutils-native\
+ "
+
+EXTRA_OECONF += "--disable-static \
+ --disable-silent-rules \
+ --disable-doc \
+ "
diff --git a/meta-networking/recipes-connectivity/adcli/files/0001-configure-check-for-ns_get16-and-ns_get32-as-well.patch b/meta-networking/recipes-connectivity/adcli/files/0001-configure-check-for-ns_get16-and-ns_get32-as-well.patch
deleted file mode 100644
index 8cc859318c..0000000000
--- a/meta-networking/recipes-connectivity/adcli/files/0001-configure-check-for-ns_get16-and-ns_get32-as-well.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 98660f57a98f45dbf55414cfde46338019adcc33 Mon Sep 17 00:00:00 2001
-From: Sumit Bose <sbose@redhat.com>
-Date: Wed, 28 Jul 2021 12:55:16 +0200
-Subject: [PATCH] configure: check for ns_get16 and ns_get32 as well
-
-With newer versions of glibc res_query() might ba already available in
-glibc with ns_get16() and ns_get32() still requires libresolv.
-
-Upstream-Status: Backport [https://gitlab.freedesktop.org/realmd/adcli/-/commit/e841ba7513f3f8b6393183d2dea9adcbf7ba2e44]
-Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1984891
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ebc6cb4..e8775d0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -98,13 +98,15 @@ AC_SUBST(LDAP_CFLAGS)
- # -------------------------------------------------------------------
- # resolv
-
--AC_MSG_CHECKING(for which library has res_query)
-+AC_MSG_CHECKING([for which library has res_query, ns_get16 and ns_get32])
- for lib in "" "-lresolv"; do
- saved_LIBS="$LIBS"
- LIBS="$LIBS $lib"
- AC_LINK_IFELSE([
- AC_LANG_PROGRAM([#include <resolv.h>],
-- [res_query (0, 0, 0, 0, 0)])
-+ [res_query (0, 0, 0, 0, 0);
-+ ns_get32 (NULL);
-+ ns_get16 (NULL);])
- ],
- [ AC_MSG_RESULT(${lib:-libc}); have_res_query="yes"; break; ],
- [ LIBS="$saved_LIBS" ])
---
-2.32.0
diff --git a/meta-networking/recipes-connectivity/adcli/files/Fixed-build-error-on-musl.patch b/meta-networking/recipes-connectivity/adcli/files/Fixed-build-error-on-musl.patch
deleted file mode 100644
index 87bcdfebd7..0000000000
--- a/meta-networking/recipes-connectivity/adcli/files/Fixed-build-error-on-musl.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 0e64782a45cba9753d1210ee7d7c9dbd42f74ceb Mon Sep 17 00:00:00 2001
-From: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
-Date: Fri, 12 Jul 2019 12:46:54 +0800
-Subject: [PATCH] Fixed build error on musl.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
----
- library/adutil.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/library/adutil.c b/library/adutil.c
-index 9b0c47f..b673edd 100644
---- a/library/adutil.c
-+++ b/library/adutil.c
-@@ -30,6 +30,7 @@
- #include <assert.h>
- #include <ctype.h>
- #include <errno.h>
-+#include <endian.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
---
-2.20.1
-
diff --git a/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb b/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb
index 3dc304b23c..de7e2d3e01 100644
--- a/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb
+++ b/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb
@@ -2,9 +2,8 @@ DESCRIPTION = "autossh is a program to start a copy of ssh and monitor it, resta
HOMEPAGE = "https://www.harding.motd.ca/autossh/"
LICENSE = "BSD-1-Clause & BSD-4-Clause"
-LIC_FILES_CHKSUM = "file://autossh.spec;md5=80a6701134723fd3420e733b46a0eb97 \
- file://autossh.c;md5=76c37acd40ac45050a4ced145b1e2707;startline=7;endline=23 \
- file://daemon.h;md5=6bbeaac616b9bc8de7b40049004f4289;startline=7;endline=39"
+LIC_FILES_CHKSUM = "file://autossh.c;beginline=7;endline=22;md5=9ae0c9b04856148d77984ef58536732b \
+ file://daemon.h;beginline=7;endline=36;md5=839bb7bf781ff48da4a3fec2a62a1a47"
SRC_URI = "https://www.harding.motd.ca/autossh/${BP}.tgz"
SRC_URI[md5sum] = "2b804bc1bf6d2f2afaa526d02df7c0a2"
diff --git a/meta-networking/recipes-connectivity/bearssl/bearssl/0001-conf-Unix.mk-remove-fixed-command-definitions.patch b/meta-networking/recipes-connectivity/bearssl/bearssl/0001-conf-Unix.mk-remove-fixed-command-definitions.patch
deleted file mode 100644
index 00be224990..0000000000
--- a/meta-networking/recipes-connectivity/bearssl/bearssl/0001-conf-Unix.mk-remove-fixed-command-definitions.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 4ba61c59d3488c263d106d486b656854a57ad79f Mon Sep 17 00:00:00 2001
-From: Jens Rehsack <sno@netbsd.org>
-Date: Thu, 13 Aug 2020 15:26:30 +0200
-Subject: [PATCH 1/2] conf/Unix.mk: remove fixed command definitions
-
-For cross compiling in Yocto or with appropriate SDKs, commands like
-`$CC` are reasonably predefined.
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Jens Rehsack <sno@netbsd.org>
----
- conf/Unix.mk | 10 +++-------
- 1 file changed, 3 insertions(+), 7 deletions(-)
-
-diff --git a/conf/Unix.mk b/conf/Unix.mk
-index 02f2b2b..05979fc 100644
---- a/conf/Unix.mk
-+++ b/conf/Unix.mk
-@@ -37,23 +37,19 @@ RM = rm -f
- MKDIR = mkdir -p
-
- # C compiler and flags.
--CC = cc
--CFLAGS = -W -Wall -Os -fPIC
- CCOUT = -c -o
-
- # Static library building tool.
--AR = ar
- ARFLAGS = -rcs
- AROUT =
-
- # DLL building tool.
--LDDLL = cc
-+LDDLL = $(CCLD)
- LDDLLFLAGS = -shared
- LDDLLOUT = -o
-
- # Static linker.
--LD = cc
--LDFLAGS =
-+LD = $(CCLD)
- LDOUT = -o
-
- # C# compiler; we assume usage of Mono.
-@@ -63,7 +59,7 @@ RUNT0COMP = mono T0Comp.exe
- # Set the values to 'no' to disable building of the corresponding element
- # by default. Building can still be invoked with an explicit target call
- # (e.g. 'make dll' to force build the DLL).
--#STATICLIB = no
-+STATICLIB = no
- #DLL = no
- #TOOLS = no
- #TESTS = no
---
-2.17.1
-
diff --git a/meta-networking/recipes-connectivity/bearssl/bearssl/0001-make-Pass-LDFLAGS-when-building-shared-objects.patch b/meta-networking/recipes-connectivity/bearssl/bearssl/0001-make-Pass-LDFLAGS-when-building-shared-objects.patch
deleted file mode 100644
index 3b341e0355..0000000000
--- a/meta-networking/recipes-connectivity/bearssl/bearssl/0001-make-Pass-LDFLAGS-when-building-shared-objects.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 9515448761739d6186e7d07da5b47e368753528c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 1 Sep 2020 11:34:33 -0700
-Subject: [PATCH] make: Pass LDFLAGS when building shared objects
-
-OE passes flags like hash-style via LDFLAGS which alters the linker
-defaults, its important to have LDFLAGS in link step even if compiler
-driver is used to do linking
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- mk/Rules.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mk/Rules.mk b/mk/Rules.mk
-index b480bd6..db65125 100644
---- a/mk/Rules.mk
-+++ b/mk/Rules.mk
-@@ -344,7 +344,7 @@ $(BEARSSLLIB): $(OBJDIR) $(OBJ)
- $(AR) $(ARFLAGS) $(AROUT)$(BEARSSLLIB) $(OBJ)
-
- $(BEARSSLDLL): $(OBJDIR) $(OBJ)
-- $(LDDLL) $(LDDLLFLAGS) $(LDDLLOUT)$(BEARSSLDLL) $(OBJ)
-+ $(LDDLL) $(LDDLLFLAGS) $(LDFLAGS) $(LDDLLOUT)$(BEARSSLDLL) $(OBJ)
-
- $(BRSSL): $(BEARSSLLIB) $(OBJBRSSL)
- $(LD) $(LDFLAGS) $(LDOUT)$(BRSSL) $(OBJBRSSL) $(BEARSSLLIB)
---
-2.28.0
-
diff --git a/meta-networking/recipes-connectivity/bearssl/bearssl/0002-test-test_x509.c-fix-potential-overflow-issue.patch b/meta-networking/recipes-connectivity/bearssl/bearssl/0002-test-test_x509.c-fix-potential-overflow-issue.patch
index 94abd27faf..e0e5c13588 100644
--- a/meta-networking/recipes-connectivity/bearssl/bearssl/0002-test-test_x509.c-fix-potential-overflow-issue.patch
+++ b/meta-networking/recipes-connectivity/bearssl/bearssl/0002-test-test_x509.c-fix-potential-overflow-issue.patch
@@ -19,6 +19,8 @@ Fixes:
Signed-off-by: Jens Rehsack <sno@netbsd.org>
---
+Upstream-Status: Pending
+
test/test_x509.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb b/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
index 777ba2270b..39569e9d06 100644
--- a/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
+++ b/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
@@ -23,25 +23,30 @@ inherit lib_package
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1fc37e1037ae673975fbcb96a98f7191"
-PV .= "+git${SRCPV}"
-SRCREV = "79b1a9996c094ff593ae50bc4edc1f349f39dd6d"
+PV .= "+git"
+SRCREV = "79c060eea3eea1257797f15ea1608a9a9923aa6f"
SRC_URI = "git://www.bearssl.org/git/BearSSL;protocol=https;branch=master \
- file://0001-conf-Unix.mk-remove-fixed-command-definitions.patch \
- file://0002-test-test_x509.c-fix-potential-overflow-issue.patch \
- file://0001-make-Pass-LDFLAGS-when-building-shared-objects.patch \
- "
+ file://0002-test-test_x509.c-fix-potential-overflow-issue.patch \
+ "
+SONAME = "libbearssl.so.6"
# without compile errors like
# <..>/ld: build/obj/ghash_pclmul.o: warning: relocation against `br_ghash_pclmul' in read-only section `.text'
CFLAGS += "-fPIC"
+EXTRA_OEMAKE += 'CC="${CC}" CFLAGS="${CFLAGS}" LDDLL="${CCLD} ${LDFLAGS}" LD="${CCLD}" LDFLAGS="${LDFLAGS}" \
+ BEARSSLDLL=build/${SONAME} \
+ LDDLLFLAGS="-shared -Wl,-soname,${SONAME}" \
+ ${@ "STATICLIB=no" if d.getVar('DISABLE_STATIC') != "" else "" } \
+'
+
S = "${WORKDIR}/git"
-B = "${S}"
do_install() {
- mkdir -p ${D}/${bindir} ${D}/${libdir}
- install -m 0644 ${B}/build/brssl ${D}/${bindir}
- install -m 0644 ${B}/build/libbearssl.so ${D}/${libdir}/libbearssl.so.6.0.0
- ln -s libbearssl.so.6.0.0 ${D}/${libdir}/libbearssl.so.6
- ln -s libbearssl.so.6.0.0 ${D}/${libdir}/libbearssl.so
+ install -d ${D}/${bindir} ${D}/${libdir} ${D}/${includedir}
+ install -m 0755 ${B}/build/brssl ${D}/${bindir}
+ oe_libinstall -C ${B}/build libbearssl ${D}/${libdir}
+ for inc in ${S}/inc/*.h; do
+ install -m 0644 "${inc}" ${D}/${includedir}
+ done
}
diff --git a/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch b/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch
index a52821915e..cc448b4ffd 100644
--- a/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch
+++ b/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch
@@ -16,14 +16,14 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index bc990cd..a37aacd 100644
+index e12d0ce6..e84457a5 100644
--- a/meson.build
+++ b/meson.build
@@ -26,7 +26,12 @@ pkgdatadir = join_paths([prefix, get_option('datadir'), package_name])
bindir = join_paths([prefix, get_option('bindir')])
libexecdir = join_paths([prefix, get_option('libexecdir')])
- schemadir = join_paths([datadir, 'glib-2.0', 'schemas'])
--pythondir = join_paths([prefix, python.sysconfig_path('purelib')])
+ schemadir = join_paths(['share', 'glib-2.0', 'schemas'])
+-pythondir = pyinstall.get_install_dir()
+pythoninstalldir = get_option('pythoninstalldir')
+if pythoninstalldir != ''
+ pythondir = join_paths([prefix, pythoninstalldir])
@@ -34,16 +34,17 @@ index bc990cd..a37aacd 100644
if get_option('policykit')
have_polkit = 'True'
diff --git a/meson_options.txt b/meson_options.txt
-index b3e939f..96acbbc 100644
+index 177d9ab8..3e397d8e 100644
--- a/meson_options.txt
+++ b/meson_options.txt
-@@ -5,5 +5,6 @@ option('pulseaudio', type: 'boolean', value: true, description: 'Enable PulseAud
- option('appindicator', type: 'boolean', value: true, description: 'Enable Libappindicator support')
+@@ -2,6 +2,7 @@ option('runtime_deps_check', type: 'boolean', value: true, description: 'Disable
+ option('dhcp-config-path', type: 'string', value: '/etc/dhcp3/dhcpd.conf', description: 'Set dhcp3 server configuration path')
+ option('policykit', type: 'boolean', value: true, description: 'Enable policykit support')
+ option('pulseaudio', type: 'boolean', value: true, description: 'Enable PulseAudio support')
++option('pythoninstalldir', type: 'string', description: 'Path to python site-packages dir relative to ${prefix}')
option('systemdsystemunitdir', type: 'string', description: 'Path to systemd system unit dir relative to ${prefix}')
option('systemduserunitdir', type: 'string', description: 'Path to systemd user unit dir relative to ${prefix}')
-+option('pythoninstalldir', type: 'string', description: 'Path to python site-packages dir relative to ${prefix}')
option('sendto-plugins', type: 'array', choices: ['Caja', 'Nemo', 'Nautilus'], value: ['Caja', 'Nemo', 'Nautilus'], description: 'Install sendto plugins for various filemanagers')
- option('thunar-sendto', type: 'boolean', value: true, description: 'Install Thunar sendto plugin')
--
-2.33.0
+2.34.1
diff --git a/meta-networking/recipes-connectivity/blueman/blueman_2.2.4.bb b/meta-networking/recipes-connectivity/blueman/blueman_2.2.4.bb
deleted file mode 100644
index 119752086e..0000000000
--- a/meta-networking/recipes-connectivity/blueman/blueman_2.2.4.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-DESCRIPTION = "Blueman is a GTK+ Bluetooth Manager"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = "gtk+3 glib-2.0 bluez5 python3-pygobject python3-cython-native"
-
-inherit meson gettext systemd gsettings pkgconfig python3native gtk-icon-cache
-
-SRC_URI = " \
- https://github.com/blueman-project/blueman/releases/download/${PV}/blueman-${PV}.tar.xz \
- file://0001-Search-for-cython3.patch \
- file://0002-fix-fail-to-enable-bluetooth.patch \
- file://0001-meson-add-pythoninstalldir-option.patch \
-"
-SRC_URI[sha256sum] = "55d639feeda0b43b18a659e65985213a54b47dcb1348f3b4effb5238db242602"
-
-EXTRA_OEMESON = "-Druntime_deps_check=false -Dappindicator=false -Dpythoninstalldir=${@noprefix('PYTHON_SITEPACKAGES_DIR', d)}"
-
-SYSTEMD_SERVICE:${PN} = "${BPN}-mechanism.service"
-SYSTEMD_AUTO_ENABLE:${PN} = "disable"
-
-RRECOMMENDS:${PN} += "adwaita-icon-theme"
-RDEPENDS:${PN} += " \
- python3-core \
- python3-dbus \
- python3-pygobject \
- python3-terminal \
- packagegroup-tools-bluetooth \
-"
-
-PACKAGECONFIG ??= " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'polkit pulseaudio ', d)} \
- thunar \
-"
-PACKAGECONFIG[thunar] = "-Dthunar-sendto=true,-Dthunar-sendto=false"
-PACKAGECONFIG[pulseaudio] = "-Dpulseaudio=true,-Dpulseaudio=false"
-PACKAGECONFIG[polkit] = "-Dpolicykit=true,-Dpolicykit=false"
-
-FILES:${PN} += " \
- ${datadir} \
- ${systemd_user_unitdir} \
- ${PYTHON_SITEPACKAGES_DIR} \
-"
-
-# In code, path to python is a variable that is replaced with path to native version of it
-# during the configure stage, e.g ../recipe-sysroot-native/usr/bin/python3-native/python3.
-# Replace it with #!/usr/bin/env python3
-do_install:append() {
- sed -i "1s/.*/#!\/usr\/bin\/env python3/" ${D}${prefix}/libexec/blueman-rfcomm-watcher \
- ${D}${prefix}/libexec/blueman-mechanism \
- ${D}${bindir}/blueman-adapters \
- ${D}${bindir}/blueman-applet \
- ${D}${bindir}/blueman-manager \
- ${D}${bindir}/blueman-sendto \
- ${D}${bindir}/blueman-services \
- ${D}${bindir}/blueman-tray
-}
-
diff --git a/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb b/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb
new file mode 100644
index 0000000000..0374d23f0c
--- /dev/null
+++ b/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb
@@ -0,0 +1,88 @@
+DESCRIPTION = "Blueman is a GTK+ Bluetooth Manager"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "gtk+3 glib-2.0 bluez5 python3-pygobject python3-cython-native"
+
+inherit meson gettext systemd gsettings pkgconfig python3native gtk-icon-cache useradd features_check
+
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+
+SRC_URI = " \
+ git://github.com/blueman-project/blueman.git;protocol=https;branch=2-3-stable \
+ file://0001-Search-for-cython3.patch \
+ file://0002-fix-fail-to-enable-bluetooth.patch \
+ file://0001-meson-add-pythoninstalldir-option.patch \
+"
+S = "${WORKDIR}/git"
+SRCREV = "c85e7afb8d6547d4c35b7b639124de8e999c3650"
+
+EXTRA_OEMESON = "-Druntime_deps_check=false -Dpythoninstalldir=${@noprefix('PYTHON_SITEPACKAGES_DIR', d)}"
+
+SYSTEMD_SERVICE:${PN} = "${BPN}-mechanism.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
+
+RRECOMMENDS:${PN} += "adwaita-icon-theme"
+RDEPENDS:${PN} += " \
+ python3-core \
+ python3-ctypes \
+ python3-dbus \
+ python3-pygobject \
+ python3-terminal \
+ python3-fcntl \
+ packagegroup-tools-bluetooth \
+"
+
+PACKAGECONFIG ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'polkit pulseaudio ', d)} \
+ thunar \
+"
+PACKAGECONFIG[thunar] = "-Dthunar-sendto=true,-Dthunar-sendto=false"
+PACKAGECONFIG[pulseaudio] = "-Dpulseaudio=true,-Dpulseaudio=false"
+PACKAGECONFIG[polkit] = "-Dpolicykit=true,-Dpolicykit=false"
+
+FILES:${PN} += " \
+ ${datadir} \
+ ${systemd_user_unitdir} \
+ ${PYTHON_SITEPACKAGES_DIR} \
+"
+
+# In code, path to python is a variable that is replaced with path to native version of it
+# during the configure stage, e.g ../recipe-sysroot-native/usr/bin/python3-native/python3.
+# Replace it with #!/usr/bin/env python3
+do_install:append() {
+ sed -i "1s/.*/#!\/usr\/bin\/env python3/" ${D}${prefix}/libexec/blueman-rfcomm-watcher \
+ ${D}${prefix}/libexec/blueman-mechanism \
+ ${D}${bindir}/blueman-adapters \
+ ${D}${bindir}/blueman-applet \
+ ${D}${bindir}/blueman-manager \
+ ${D}${bindir}/blueman-sendto \
+ ${D}${bindir}/blueman-services \
+ ${D}${bindir}/blueman-tray
+}
+
+do_install:append() {
+ install -d ${D}${datadir}/polkit-1/rules.d
+ cat >${D}${datadir}/polkit-1/rules.d/51-blueman.rules <<EOF
+/* Allow users in wheel group to use blueman feature requiring root without authentication */
+polkit.addRule(function(action, subject) {
+ if ((action.id == "org.blueman.network.setup" ||
+ action.id == "org.blueman.dhcp.client" ||
+ action.id == "org.blueman.rfkill.setstate" ||
+ action.id == "org.blueman.pppd.pppconnect") &&
+ subject.isInGroup("wheel")) {
+
+ return polkit.Result.YES;
+ }
+});
+EOF
+}
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 --shell /bin/nologin polkitd"
+
+do_install:append() {
+ # Fix up permissions on polkit rules.d to work with rpm4 constraints
+ chmod 700 ${D}/${datadir}/polkit-1/rules.d
+ chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
+}
diff --git a/meta-networking/recipes-connectivity/bluepy/bluepy_git.bb b/meta-networking/recipes-connectivity/bluepy/bluepy_git.bb
index 8e164708ed..5b784d9a04 100644
--- a/meta-networking/recipes-connectivity/bluepy/bluepy_git.bb
+++ b/meta-networking/recipes-connectivity/bluepy/bluepy_git.bb
@@ -5,7 +5,7 @@ LICENSE = "GPL-2.0-only & PD"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=59e0d45ea684dda215889aa1b5acd001"
DEPENDS = "glib-2.0"
SRCREV = "7ad565231a97c304c0eff45f2649cd005e69db09"
-PV = "1.3.0+git${SRCPV}"
+PV = "1.3.0+git"
SRC_URI = "git://github.com/IanHarvey/bluepy.git;protocol=https;branch=master \
file://0001-bluepy-Fix-username-issue-with-tarballs.patch \
diff --git a/meta-networking/recipes-connectivity/bluez-tools/bluez-tools/fix-memory-leaks.patch b/meta-networking/recipes-connectivity/bluez-tools/bluez-tools/fix-memory-leaks.patch
new file mode 100644
index 0000000000..22e1fac855
--- /dev/null
+++ b/meta-networking/recipes-connectivity/bluez-tools/bluez-tools/fix-memory-leaks.patch
@@ -0,0 +1,768 @@
+Upstream-Status: Submitted [https://github.com/khvzak/bluez-tools/pull/48]
+
+From e5db2eec2591f0109f0eb7c2631055210b55f2f5 Mon Sep 17 00:00:00 2001
+Message-Id: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+From: thatlittlegit <personal@thatlittlegit.tk>
+Date: Sat, 7 Nov 2020 01:07:24 -0500
+Subject: [PATCH 1/9] Remove memory leaks and overall restructure
+ manager_find_adapter
+
+---
+ src/lib/manager.c | 61 +++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 43 insertions(+), 18 deletions(-)
+
+diff --git a/src/lib/manager.c b/src/lib/manager.c
+index 5286a3a..2263afc 100644
+--- a/src/lib/manager.c
++++ b/src/lib/manager.c
+@@ -136,43 +136,68 @@ const gchar *manager_find_adapter(Manager *self, const gchar *pattern, GError **
+ GVariant *ifaces_and_properties;
+ GVariantIter i;
+
++ gchar *pattern_lowercase = g_ascii_strdown(pattern, -1);
++
+ g_variant_iter_init(&i, objects);
+- while (g_variant_iter_next(&i, "{&o@a{sa{sv}}}", &object_path, &ifaces_and_properties))
++ gboolean still_looking = TRUE;
++ while (still_looking && g_variant_iter_next(&i, "{&o@a{sa{sv}}}", &object_path, &ifaces_and_properties))
+ {
+ const gchar *interface_name;
+- GVariant *properties;
+ GVariantIter ii;
++ GVariant* properties;
+ g_variant_iter_init(&ii, ifaces_and_properties);
+ while (g_variant_iter_next(&ii, "{&s@a{sv}}", &interface_name, &properties))
+ {
+- if (g_strstr_len(g_ascii_strdown(interface_name, -1), -1, "adapter"))
++ gchar *interface_name_lowercase = g_ascii_strdown(interface_name, -1);
++ if (strstr(interface_name_lowercase, "adapter"))
+ {
+- const gchar *object_base_name = g_path_get_basename(object_path);
+- if (g_strstr_len(g_ascii_strdown(object_base_name, -1), -1, g_ascii_strdown(pattern, -1)))
++ g_free(interface_name_lowercase);
++
++ gchar *object_base_name_original = g_path_get_basename(object_path);
++ gchar *object_base_name = g_ascii_strdown(interface_name, -1);
++ g_free(object_base_name_original);
++
++ if (strstr(object_base_name, pattern_lowercase))
+ {
+- const gchar *retVal = g_strdup(object_path);
+- g_variant_unref(properties);
+- g_variant_unref(ifaces_and_properties);
+- g_variant_unref(objects);
+- return retVal;
++ still_looking = FALSE;
++ g_free(object_base_name);
++ break;
+ }
+- const gchar *address = g_variant_get_string(g_variant_lookup_value(properties, "Address", NULL), NULL);
+- if (g_strstr_len(g_ascii_strdown(address, -1), -1, g_ascii_strdown(pattern, -1)))
++
++ g_free(object_base_name);
++
++ const gchar *address_original = g_variant_get_string(g_variant_lookup_value(properties, "Address", NULL), NULL);
++ gchar *address = g_ascii_strdown(address_original, -1);
++
++ if (strstr(address, pattern_lowercase))
+ {
+- gchar *retVal = g_strdup(object_path);
+- g_variant_unref(properties);
+- g_variant_unref(ifaces_and_properties);
+- g_variant_unref(objects);
+- return retVal;
++ still_looking = FALSE;
++ g_free(address);
++ break;
+ }
++ g_free(address);
+ }
++ else
++ {
++ g_free(interface_name_lowercase);
++ }
++
+ g_variant_unref(properties);
+ }
++
+ g_variant_unref(ifaces_and_properties);
+ }
+ g_variant_unref(objects);
++ g_free(pattern_lowercase);
+
+- return NULL;
++ if (still_looking)
++ {
++ return NULL;
++ }
++ else
++ {
++ return object_path;
++ }
+ }
+
+ GPtrArray *manager_get_adapters(Manager *self)
+--
+2.34.1
+
+
+From 163fcc94f1bc7c8f238e78adb03af914a566d979 Mon Sep 17 00:00:00 2001
+Message-Id: <163fcc94f1bc7c8f238e78adb03af914a566d979.1710791277.git.joerg.sommer@navimatix.de>
+In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+From: thatlittlegit <personal@thatlittlegit.tk>
+Date: Sat, 7 Nov 2020 22:12:21 -0500
+Subject: [PATCH 2/9] Replace manager_default_adapter with
+ manager_find_adapter(..., NULL, ...)
+
+---
+ src/lib/helpers.c | 57 ++++++++++++++++++-----------------------------
+ src/lib/manager.c | 51 +++++++++---------------------------------
+ src/lib/manager.h | 1 -
+ 3 files changed, 33 insertions(+), 76 deletions(-)
+
+diff --git a/src/lib/helpers.c b/src/lib/helpers.c
+index d7e95f9..99561b5 100644
+--- a/src/lib/helpers.c
++++ b/src/lib/helpers.c
+@@ -159,52 +159,39 @@ Adapter *find_adapter(const gchar *name, GError **error)
+
+ Manager *manager = g_object_new(MANAGER_TYPE, NULL);
+
+- // If name is null or empty - return default adapter
+- if (name == NULL || strlen(name) == 0)
++ // Try to find by id
++ adapter_path = (gchar *) manager_find_adapter(manager, name, error);
++
++ // Found
++ if (adapter_path)
+ {
+- adapter_path = (gchar *) manager_default_adapter(manager, error);
+- if (adapter_path)
+- {
+- // adapter = g_object_new(ADAPTER_TYPE, "DBusObjectPath", adapter_path, NULL);
+- adapter = adapter_new(adapter_path);
+- }
++ // adapter = g_object_new(ADAPTER_TYPE, "DBusObjectPath", adapter_path, NULL);
++ adapter = adapter_new(adapter_path);
+ }
+ else
+ {
+- // Try to find by id
+- adapter_path = (gchar *) manager_find_adapter(manager, name, error);
+-
+- // Found
+- if (adapter_path)
++ // Try to find by name
++ const GPtrArray *adapters_list = manager_get_adapters(manager);
++ g_assert(adapters_list != NULL);
++ for (int i = 0; i < adapters_list->len; i++)
+ {
++ adapter_path = g_ptr_array_index(adapters_list, i);
+ // adapter = g_object_new(ADAPTER_TYPE, "DBusObjectPath", adapter_path, NULL);
+ adapter = adapter_new(adapter_path);
+- }
+- else
+- {
+- // Try to find by name
+- const GPtrArray *adapters_list = manager_get_adapters(manager);
+- g_assert(adapters_list != NULL);
+- for (int i = 0; i < adapters_list->len; i++)
++ adapter_path = NULL;
++
++ if (g_strcmp0(name, adapter_get_name(adapter, error)) == 0)
+ {
+- adapter_path = g_ptr_array_index(adapters_list, i);
+- // adapter = g_object_new(ADAPTER_TYPE, "DBusObjectPath", adapter_path, NULL);
+- adapter = adapter_new(adapter_path);
+- adapter_path = NULL;
+-
+- if (g_strcmp0(name, adapter_get_name(adapter, error)) == 0)
++ if (*error)
+ {
+- if (error)
+- {
+- g_error_free(*error);
+- *error = NULL;
+- }
+- break;
++ g_error_free(*error);
++ *error = NULL;
+ }
+-
+- g_object_unref(adapter);
+- adapter = NULL;
++ break;
+ }
++
++ g_object_unref(adapter);
++ adapter = NULL;
+ }
+ }
+
+diff --git a/src/lib/manager.c b/src/lib/manager.c
+index 2263afc..891fc45 100644
+--- a/src/lib/manager.c
++++ b/src/lib/manager.c
+@@ -84,45 +84,6 @@ GVariant *manager_get_managed_objects(Manager *self, GError **error)
+ return retVal;
+ }
+
+-const gchar *manager_default_adapter(Manager *self, GError **error)
+-{
+- g_assert(MANAGER_IS(self));
+-
+- GVariant *objects = NULL;
+- objects = manager_get_managed_objects(self, error);
+- if (objects == NULL)
+- return NULL;
+-
+- const gchar *object_path;
+- GVariant *ifaces_and_properties;
+- GVariantIter i;
+-
+- g_variant_iter_init(&i, objects);
+- while (g_variant_iter_next(&i, "{&o@a{sa{sv}}}", &object_path, &ifaces_and_properties))
+- {
+- const gchar *interface_name;
+- GVariant *properties;
+- GVariantIter ii;
+- g_variant_iter_init(&ii, ifaces_and_properties);
+- while (g_variant_iter_next(&ii, "{&s@a{sv}}", &interface_name, &properties))
+- {
+- if (g_strstr_len(g_ascii_strdown(interface_name, -1), -1, "adapter"))
+- {
+- const gchar *retVal = g_strdup(object_path);
+- g_variant_unref(properties);
+- g_variant_unref(ifaces_and_properties);
+- g_variant_unref(objects);
+- return retVal;
+- }
+- g_variant_unref(properties);
+- }
+- g_variant_unref(ifaces_and_properties);
+- }
+- g_variant_unref(objects);
+-
+- return NULL;
+-}
+-
+ const gchar *manager_find_adapter(Manager *self, const gchar *pattern, GError **error)
+ {
+ g_assert(MANAGER_IS(self));
+@@ -136,7 +97,11 @@ const gchar *manager_find_adapter(Manager *self, const gchar *pattern, GError **
+ GVariant *ifaces_and_properties;
+ GVariantIter i;
+
+- gchar *pattern_lowercase = g_ascii_strdown(pattern, -1);
++ gchar *pattern_lowercase = NULL;
++ if (pattern != NULL)
++ {
++ pattern_lowercase = g_ascii_strdown(pattern, -1);
++ }
+
+ g_variant_iter_init(&i, objects);
+ gboolean still_looking = TRUE;
+@@ -153,6 +118,12 @@ const gchar *manager_find_adapter(Manager *self, const gchar *pattern, GError **
+ {
+ g_free(interface_name_lowercase);
+
++ if (!pattern_lowercase)
++ {
++ still_looking = FALSE;
++ break;
++ }
++
+ gchar *object_base_name_original = g_path_get_basename(object_path);
+ gchar *object_base_name = g_ascii_strdown(interface_name, -1);
+ g_free(object_base_name_original);
+diff --git a/src/lib/manager.h b/src/lib/manager.h
+index 0c9e052..b651812 100644
+--- a/src/lib/manager.h
++++ b/src/lib/manager.h
+@@ -54,7 +54,6 @@ extern "C" {
+ * Method definitions.
+ */
+ GVariant *manager_get_managed_objects(Manager *self, GError **error);
+- const gchar *manager_default_adapter(Manager *self, GError **error);
+ const gchar *manager_find_adapter(Manager *self, const gchar *pattern, GError **error);
+ GPtrArray *manager_get_adapters(Manager *self);
+ const gchar **manager_get_devices(Manager *self, const gchar *adapter_pattern);
+--
+2.34.1
+
+
+From b463d9cfc2390ca6352c16e6f6e113cf42d0f688 Mon Sep 17 00:00:00 2001
+Message-Id: <b463d9cfc2390ca6352c16e6f6e113cf42d0f688.1710791277.git.joerg.sommer@navimatix.de>
+In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+From: thatlittlegit <personal@thatlittlegit.tk>
+Date: Sat, 7 Nov 2020 23:38:42 -0500
+Subject: [PATCH 3/9] Fix remaining g_ascii_strdown leaks
+
+---
+ src/lib/helpers.c | 2 +-
+ src/lib/manager.c | 5 ++++-
+ src/lib/properties.c | 4 ++--
+ 3 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/src/lib/helpers.c b/src/lib/helpers.c
+index 99561b5..b61bc07 100644
+--- a/src/lib/helpers.c
++++ b/src/lib/helpers.c
+@@ -242,7 +242,7 @@ Device *find_device(Adapter *adapter, const gchar *name, GError **error)
+
+ if(g_variant_lookup(properties, "Address", "s", &address))
+ {
+- if(g_strcmp0(g_ascii_strdown(address, -1), g_ascii_strdown(name, -1)) == 0)
++ if(name && address && g_ascii_strcasecmp(address, name) == 0)
+ {
+ device = device_new(object_path);
+ }
+diff --git a/src/lib/manager.c b/src/lib/manager.c
+index 891fc45..d506ae6 100644
+--- a/src/lib/manager.c
++++ b/src/lib/manager.c
+@@ -200,8 +200,11 @@ GPtrArray *manager_get_adapters(Manager *self)
+ g_variant_iter_init(&ii, ifaces_and_properties);
+ while (g_variant_iter_next(&ii, "{&s@a{sv}}", &interface_name, &properties))
+ {
+- if (g_strstr_len(g_ascii_strdown(interface_name, -1), -1, "adapter"))
++ char* interface_name_lowercase = g_ascii_strdown(interface_name, -1);
++ if (strstr(interface_name_lowercase, "adapter"))
+ g_ptr_array_add(adapter_array, (gpointer) g_strdup(object_path));
++
++ g_free(interface_name_lowercase);
+ g_variant_unref(properties);
+ }
+ g_variant_unref(ifaces_and_properties);
+diff --git a/src/lib/properties.c b/src/lib/properties.c
+index 8b913d5..70a7640 100644
+--- a/src/lib/properties.c
++++ b/src/lib/properties.c
+@@ -205,12 +205,12 @@ static void _properties_create_gdbus_proxy(Properties *self, GError **error)
+ {
+ if(self->priv->dbus_type && self->priv->dbus_service_name && self->priv->dbus_object_path)
+ {
+- if(g_ascii_strcasecmp(g_ascii_strdown(self->priv->dbus_type, -1), "system") == 0)
++ if(g_ascii_strcasecmp(self->priv->dbus_type, "system") == 0)
+ {
+ g_assert(system_conn != NULL);
+ self->priv->proxy = g_dbus_proxy_new_sync(system_conn, G_DBUS_PROXY_FLAGS_NONE, NULL, self->priv->dbus_service_name, self->priv->dbus_object_path, PROPERTIES_DBUS_INTERFACE, NULL, error);
+ }
+- else if(g_ascii_strcasecmp(g_ascii_strdown(self->priv->dbus_type, -1), "session") == 0)
++ else if(g_ascii_strcasecmp(self->priv->dbus_type, "session") == 0)
+ {
+ g_assert(session_conn != NULL);
+ self->priv->proxy = g_dbus_proxy_new_sync(session_conn, G_DBUS_PROXY_FLAGS_NONE, NULL, self->priv->dbus_service_name, self->priv->dbus_object_path, PROPERTIES_DBUS_INTERFACE, NULL, error);
+--
+2.34.1
+
+
+From 7ca191164a3a3d8867b1a4af7cd349dc53569fa3 Mon Sep 17 00:00:00 2001
+Message-Id: <7ca191164a3a3d8867b1a4af7cd349dc53569fa3.1710791277.git.joerg.sommer@navimatix.de>
+In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+From: thatlittlegit <personal@thatlittlegit.tk>
+Date: Sun, 8 Nov 2020 14:04:36 -0500
+Subject: [PATCH 4/9] Don't leak g_variant_lookup_value results in bt-obex
+
+---
+ src/bt-obex.c | 23 ++++++++++++++++-------
+ 1 file changed, 16 insertions(+), 7 deletions(-)
+
+diff --git a/src/bt-obex.c b/src/bt-obex.c
+index 8aacb40..0f044a5 100644
+--- a/src/bt-obex.c
++++ b/src/bt-obex.c
+@@ -213,15 +213,24 @@ static void _obex_opp_client_object_manager_handler(GDBusConnection *connection,
+ g_hash_table_insert(_transfers, g_strdup(interface_object_path), t);
+
+ ObexTransferInfo *info = g_malloc0(sizeof(ObexTransferInfo));
+- info->filesize = g_variant_get_uint64(g_variant_lookup_value(properties, "Size", NULL));
+- info->filename = g_strdup(g_variant_get_string(g_variant_lookup_value(properties, "Name", NULL), NULL));
+- info->status = g_strdup(g_variant_get_string(g_variant_lookup_value(properties, "Status", NULL), NULL));
+- ObexSession *session = obex_session_new(g_variant_get_string(g_variant_lookup_value(properties, "Session", NULL), NULL));
+-
++
++ GVariant* size_variant = g_variant_lookup_value(properties, "Size", NULL);
++ GVariant* name_variant = g_variant_lookup_value(properties, "Name", NULL);
++ GVariant* status_variant = g_variant_lookup_value(properties, "Status", NULL);
++ GVariant* session_variant = g_variant_lookup_value(properties, "Session", NULL);
++
++ info->filesize = g_variant_get_uint64(size_variant);
++ info->filename = g_variant_dup_string(name_variant, NULL);
++ info->status = g_variant_dup_string(status_variant, NULL);
++ ObexSession *session = obex_session_new(g_variant_get_string(session_variant, NULL));
+ info->obex_root = g_strdup(obex_session_get_root(session, NULL));
+-
++
++ g_variant_unref(size_variant);
++ g_variant_unref(name_variant);
++ g_variant_unref(status_variant);
++ g_variant_unref(session_variant);
+ g_object_unref(session);
+-
++
+ g_hash_table_insert(_transfer_infos, g_strdup(interface_object_path), info);
+ if(g_strcmp0(info->status, "queued") == 0)
+ g_print("[Transfer#%s] Waiting...\n", info->filename);
+--
+2.34.1
+
+
+From 7100380b710b36f8e31748ac5bf0e6ffb7c4eed7 Mon Sep 17 00:00:00 2001
+Message-Id: <7100380b710b36f8e31748ac5bf0e6ffb7c4eed7.1710791277.git.joerg.sommer@navimatix.de>
+In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+From: thatlittlegit <personal@thatlittlegit.tk>
+Date: Thu, 12 Nov 2020 21:41:55 -0500
+Subject: [PATCH 5/9] Correctly free temporary values in bt-obex
+
+---
+ src/bt-obex.c | 35 +++++++++++++++++++++++++----------
+ src/lib/helpers.c | 3 ++-
+ 2 files changed, 27 insertions(+), 11 deletions(-)
+
+diff --git a/src/bt-obex.c b/src/bt-obex.c
+index 0f044a5..547186b 100644
+--- a/src/bt-obex.c
++++ b/src/bt-obex.c
+@@ -70,25 +70,32 @@ static void _obex_server_object_manager_handler(GDBusConnection *connection, con
+ const gchar *interface_object_path = g_variant_get_string(g_variant_get_child_value(parameters, 0), NULL);
+ GVariant *interfaces_and_properties = g_variant_get_child_value(parameters, 1);
+ GVariant *properties = NULL;
+-
++
+ if(g_variant_lookup(interfaces_and_properties, OBEX_TRANSFER_DBUS_INTERFACE, "@a{sv}", &properties))
+ {
+ g_print("[OBEX Server] Transfer started\n");
+ ObexTransfer *t = obex_transfer_new(interface_object_path);
+ g_hash_table_insert(_transfers, g_strdup(interface_object_path), t);
+-
++
++ GVariant* size_variant = g_variant_lookup_value(properties, "Size", NULL);
++ GVariant* status_variant = g_variant_lookup_value(properties, "Status", NULL);
++ GVariant* session_variant = g_variant_lookup_value(properties, "Session", NULL);
++
+ ObexTransferInfo *info = g_malloc0(sizeof(ObexTransferInfo));
+- info->filesize = g_variant_get_uint64(g_variant_lookup_value(properties, "Size", NULL));
+- info->status = g_strdup(g_variant_get_string(g_variant_lookup_value(properties, "Status", NULL), NULL));
+- ObexSession *session = obex_session_new(g_variant_get_string(g_variant_lookup_value(properties, "Session", NULL), NULL));
+-
++ info->filesize = g_variant_get_uint64(size_variant);
++ info->status = g_strdup(g_variant_get_string(status_variant, NULL));
++
++ ObexSession *session = obex_session_new(g_variant_get_string(session_variant, NULL));
+ info->obex_root = g_strdup(obex_session_get_root(session, NULL));
+-
+ g_object_unref(session);
++
++ g_variant_unref(size_variant);
++ g_variant_unref(status_variant);
++ g_variant_unref(session_variant);
+
+ g_hash_table_insert(_transfer_infos, g_strdup(interface_object_path), info);
+ }
+-
++
+ if(g_variant_lookup(interfaces_and_properties, OBEX_SESSION_DBUS_INTERFACE, "@a{sv}", &properties))
+ {
+ g_print("[OBEX Server] OBEX session opened\n");
+@@ -177,7 +184,12 @@ static void _obex_server_properties_handler(GDBusConnection *connection, const g
+ {
+ g_print("[OBEX Server] Transfer succeeded\n");
+ ObexTransferInfo *info = g_hash_table_lookup(_transfer_infos, object_path);
+- g_rename(g_build_filename(info->obex_root, info->filename, NULL), g_build_filename(_root_path, info->filename, NULL));
++
++ gchar* old_name = g_build_filename(info->obex_root, info->filename, NULL);
++ gchar* new_name = g_build_filename(_root_path, info->filename, NULL);
++ g_rename(old_name, new_name);
++ g_free(old_name);
++ g_free(new_name);
+ }
+ else if(g_strcmp0(status, "error") == 0)
+ {
+@@ -202,7 +214,8 @@ static void _obex_opp_client_object_manager_handler(GDBusConnection *connection,
+ {
+ if(g_strcmp0(signal_name, "InterfacesAdded") == 0)
+ {
+- const gchar *interface_object_path = g_variant_get_string(g_variant_get_child_value(parameters, 0), NULL);
++ GVariant* interface_value = g_variant_get_child_value(parameters, 0);
++ const gchar *interface_object_path = g_variant_get_string(interface_value, NULL);
+ GVariant *interfaces_and_properties = g_variant_get_child_value(parameters, 1);
+ GVariant *properties = NULL;
+
+@@ -242,6 +255,8 @@ static void _obex_opp_client_object_manager_handler(GDBusConnection *connection,
+ }
+
+ g_variant_unref(interfaces_and_properties);
++ g_variant_unref(interface_value);
++
+ if(properties)
+ g_variant_unref(properties);
+ }
+diff --git a/src/lib/helpers.c b/src/lib/helpers.c
+index b61bc07..d9e2257 100644
+--- a/src/lib/helpers.c
++++ b/src/lib/helpers.c
+@@ -171,7 +171,7 @@ Adapter *find_adapter(const gchar *name, GError **error)
+ else
+ {
+ // Try to find by name
+- const GPtrArray *adapters_list = manager_get_adapters(manager);
++ GPtrArray *adapters_list = manager_get_adapters(manager);
+ g_assert(adapters_list != NULL);
+ for (int i = 0; i < adapters_list->len; i++)
+ {
+@@ -193,6 +193,7 @@ Adapter *find_adapter(const gchar *name, GError **error)
+ g_object_unref(adapter);
+ adapter = NULL;
+ }
++ g_ptr_array_unref(adapters_list);
+ }
+
+ g_object_unref(manager);
+--
+2.34.1
+
+
+From 860fb6e19a7bc272722c36a980004044bc9906e5 Mon Sep 17 00:00:00 2001
+Message-Id: <860fb6e19a7bc272722c36a980004044bc9906e5.1710791277.git.joerg.sommer@navimatix.de>
+In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+From: thatlittlegit <personal@thatlittlegit.tk>
+Date: Thu, 12 Nov 2020 21:45:51 -0500
+Subject: [PATCH 6/9] Use g_hash_table_new_full() instead of manual freeing
+
+---
+ src/bt-obex.c | 56 +++++++++++++++++----------------------------------
+ 1 file changed, 18 insertions(+), 38 deletions(-)
+
+diff --git a/src/bt-obex.c b/src/bt-obex.c
+index 547186b..413c12d 100644
+--- a/src/bt-obex.c
++++ b/src/bt-obex.c
+@@ -55,6 +55,14 @@ struct _ObexTransferInfo {
+ gchar *status;
+ };
+
++static void obex_transfer_info_free(ObexTransferInfo* info)
++{
++ g_free(info->filename);
++ g_free(info->obex_root);
++ g_free(info->status);
++ g_free(info);
++}
++
+ static void sigterm_handler(int sig)
+ {
+ g_message("%s received", sig == SIGTERM ? "SIGTERM" : "SIGINT");
+@@ -117,10 +125,7 @@ static void _obex_server_object_manager_handler(GDBusConnection *connection, con
+ if(g_strcmp0(*inf, OBEX_TRANSFER_DBUS_INTERFACE) == 0)
+ {
+ g_print("[OBEX Server] OBEX transfer closed\n");
+- ObexTransfer *transfer = g_hash_table_lookup(_transfers, interface_object_path);
+ g_hash_table_remove(_transfers, interface_object_path);
+- g_object_unref(transfer);
+- g_free(g_hash_table_lookup(_transfer_infos, interface_object_path));
+ g_hash_table_remove(_transfer_infos, interface_object_path);
+ }
+
+@@ -272,10 +277,7 @@ static void _obex_opp_client_object_manager_handler(GDBusConnection *connection,
+ if(g_strcmp0(*inf, OBEX_TRANSFER_DBUS_INTERFACE) == 0)
+ {
+ // g_print("[OBEX Client] OBEX transfer closed\n");
+- ObexTransfer *transfer = g_hash_table_lookup(_transfers, interface_object_path);
+ g_hash_table_remove(_transfers, interface_object_path);
+- g_object_unref(transfer);
+- g_free(g_hash_table_lookup(_transfer_infos, interface_object_path));
+ g_hash_table_remove(_transfer_infos, interface_object_path);
+ if (g_main_loop_is_running(mainloop))
+ g_main_loop_quit(mainloop);
+@@ -514,8 +516,8 @@ int main(int argc, char *argv[])
+ exit_if_error(error);
+ }
+
+- _transfers = g_hash_table_new(g_str_hash, g_str_equal);
+- _transfer_infos = g_hash_table_new(g_str_hash, g_str_equal);
++ _transfers = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_object_unref);
++ _transfer_infos = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify)obex_transfer_info_free);
+
+ ObexAgentManager *manager = obex_agent_manager_new();
+
+@@ -552,21 +554,10 @@ int main(int argc, char *argv[])
+ g_hash_table_iter_init(&iter, _transfers);
+ while (g_hash_table_iter_next(&iter, &key, &value))
+ {
+- ObexTransfer *t = OBEX_TRANSFER(value);
+- obex_transfer_cancel(t, NULL); // skip errors
+- g_object_unref(t);
+- g_hash_table_iter_remove(&iter);
+- }
+- g_hash_table_unref(_transfers);
+-
+- // Remove transfer information
+- g_hash_table_iter_init(&iter, _transfer_infos);
+- while (g_hash_table_iter_next(&iter, &key, &value))
+- {
+- g_free(value);
+- g_hash_table_iter_remove(&iter);
++ obex_transfer_cancel(OBEX_TRANSFER(value), NULL);
+ }
+ g_hash_table_unref(_transfers);
++ g_hash_table_unref(_transfer_infos);
+
+ g_dbus_connection_signal_unsubscribe(session_conn, obex_server_object_id);
+ g_dbus_connection_signal_unsubscribe(session_conn, obex_server_properties_id);
+@@ -588,8 +579,8 @@ int main(int argc, char *argv[])
+ exit_if_error(error);
+ }
+
+- _transfers = g_hash_table_new(g_str_hash, g_str_equal);
+- _transfer_infos = g_hash_table_new(g_str_hash, g_str_equal);
++ _transfers = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_object_unref);
++ _transfer_infos = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
+
+ gchar * files_to_send[] = {NULL, NULL};
+ files_to_send[0] = g_path_is_absolute(opp_file_arg) ? g_strdup(opp_file_arg) : get_absolute_path(opp_file_arg);
+@@ -663,24 +654,13 @@ int main(int argc, char *argv[])
+ g_hash_table_iter_init(&iter, _transfers);
+ while (g_hash_table_iter_next(&iter, &key, &value))
+ {
+- ObexTransfer *t = OBEX_TRANSFER(value);
+- obex_transfer_cancel(t, NULL); // skip errors
+- g_object_unref(t);
+- g_hash_table_iter_remove(&iter);
++ obex_transfer_cancel(OBEX_TRANSFER(value), NULL);
+ }
+ g_hash_table_unref(_transfers);
+-
+- // Remove transfer information objects
+- g_hash_table_iter_init(&iter, _transfer_infos);
+- while (g_hash_table_iter_next(&iter, &key, &value))
+- {
+- g_free(value);
+- g_hash_table_iter_remove(&iter);
+- }
+- g_hash_table_unref(_transfers);
+-
+- g_object_unref(client);
+
++ g_hash_table_unref(_transfer_infos);
++ g_object_unref(client);
++ g_object_unref(session);
+ g_variant_unref(device_dict);
+
+ g_free(src_address);
+--
+2.34.1
+
+
+From 9804eb7e5996c52cc542eef59ba3b5f4d0b0b2f9 Mon Sep 17 00:00:00 2001
+Message-Id: <9804eb7e5996c52cc542eef59ba3b5f4d0b0b2f9.1710791277.git.joerg.sommer@navimatix.de>
+In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+From: thatlittlegit <personal@thatlittlegit.tk>
+Date: Thu, 12 Nov 2020 21:51:34 -0500
+Subject: [PATCH 7/9] Don't set filesize if we don't know the size
+
+I only meant to fix the g_variant_unref warning, but fixing all of them
+works too!
+---
+ src/bt-obex.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/src/bt-obex.c b/src/bt-obex.c
+index 413c12d..219d458 100644
+--- a/src/bt-obex.c
++++ b/src/bt-obex.c
+@@ -90,14 +90,22 @@ static void _obex_server_object_manager_handler(GDBusConnection *connection, con
+ GVariant* session_variant = g_variant_lookup_value(properties, "Session", NULL);
+
+ ObexTransferInfo *info = g_malloc0(sizeof(ObexTransferInfo));
+- info->filesize = g_variant_get_uint64(size_variant);
+ info->status = g_strdup(g_variant_get_string(status_variant, NULL));
+
+ ObexSession *session = obex_session_new(g_variant_get_string(session_variant, NULL));
+ info->obex_root = g_strdup(obex_session_get_root(session, NULL));
+ g_object_unref(session);
+
+- g_variant_unref(size_variant);
++ if (size_variant != NULL)
++ {
++ info->filesize = g_variant_get_uint64(size_variant);
++ g_variant_unref(size_variant);
++ }
++ else
++ {
++ info->filesize = 0;
++ }
++
+ g_variant_unref(status_variant);
+ g_variant_unref(session_variant);
+
+--
+2.34.1
+
+
+From 9566f84464d486983ec597945bc4d5d1594ed830 Mon Sep 17 00:00:00 2001
+Message-Id: <9566f84464d486983ec597945bc4d5d1594ed830.1710791277.git.joerg.sommer@navimatix.de>
+In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+From: thatlittlegit <personal@thatlittlegit.tk>
+Date: Sun, 15 Nov 2020 16:18:36 -0500
+Subject: [PATCH 8/9] Fix a use-after-free in bt-obex
+
+---
+ src/bt-obex.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/bt-obex.c b/src/bt-obex.c
+index 219d458..7dc5d6b 100644
+--- a/src/bt-obex.c
++++ b/src/bt-obex.c
+@@ -626,7 +626,7 @@ int main(int argc, char *argv[])
+ mainloop = g_main_loop_new(NULL, FALSE);
+
+ ObexClient *client = obex_client_new();
+- const gchar *session_path = obex_client_create_session(client, dst_address, device_dict, &error);
++ const gchar *session_path = obex_client_create_session(client, dst_address, g_variant_ref(device_dict), &error);
+ exit_if_error(error);
+ ObexSession *session = obex_session_new(session_path);
+ ObexObjectPush *oop = obex_object_push_new(obex_session_get_dbus_object_path(session));
+--
+2.34.1
+
+
+From 5271a4c6419b54a0b18070d39bfc69fae2819c00 Mon Sep 17 00:00:00 2001
+Message-Id: <5271a4c6419b54a0b18070d39bfc69fae2819c00.1710791277.git.joerg.sommer@navimatix.de>
+In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de>
+From: thatlittlegit <personal@thatlittlegit.tk>
+Date: Sat, 21 Nov 2020 13:09:46 -0500
+Subject: [PATCH 9/9] Fix running sdptool if it isn't in $PATH
+
+---
+ src/bt-device.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/bt-device.c b/src/bt-device.c
+index a739b98..948a10c 100644
+--- a/src/bt-device.c
++++ b/src/bt-device.c
+@@ -331,9 +331,9 @@ static GHashTable *_bt_device_sdp_browse(const gchar *device_path, const gchar *
+ }
+
+ if(pattern == NULL || strlen(pattern) == 0)
+- execl("/bin/sdptool", "/bin/sdptool", "browse", "--xml", device_path, (char *) 0);
++ execlp("sdptool", "sdptool", "browse", "--xml", device_path, (char *) 0);
+ else
+- execl("/bin/sdptool", "/bin/sdptool", "browse", "--xml", "--uuid", pattern, device_path, (char *) 0);
++ execlp("sdptool", "sdptool", "browse", "--xml", "--uuid", pattern, device_path, (char *) 0);
+
+ }
+ if(pid == -1)
+--
+2.34.1
+
diff --git a/meta-networking/recipes-connectivity/bluez-tools/bluez-tools/obex-file-fix-null-check.patch b/meta-networking/recipes-connectivity/bluez-tools/bluez-tools/obex-file-fix-null-check.patch
new file mode 100644
index 0000000000..231f3b0b71
--- /dev/null
+++ b/meta-networking/recipes-connectivity/bluez-tools/bluez-tools/obex-file-fix-null-check.patch
@@ -0,0 +1,41 @@
+Upstream-Status: Submitted [https://github.com/khvzak/bluez-tools/pull/47]
+
+From f9bc83d46f131037f7fa5195a506b65560199d0d Mon Sep 17 00:00:00 2001
+Message-Id: <f9bc83d46f131037f7fa5195a506b65560199d0d.1710791715.git.joerg.sommer@navimatix.de>
+From: George Talusan <george.talusan@gmail.com>
+Date: Mon, 26 Oct 2020 21:35:51 -0400
+Subject: [PATCH] fix null checks
+
+---
+ src/lib/bluez/obex/obex_file_transfer.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/lib/bluez/obex/obex_file_transfer.c b/src/lib/bluez/obex/obex_file_transfer.c
+index 2d3dafe..91c41d6 100644
+--- a/src/lib/bluez/obex/obex_file_transfer.c
++++ b/src/lib/bluez/obex/obex_file_transfer.c
+@@ -194,7 +194,7 @@ GVariant *obex_file_transfer_get_file(ObexFileTransfer *self, const gchar *targe
+ g_assert(OBEX_FILE_TRANSFER_IS(self));
+ GVariant *ret = NULL;
+ GVariant *proxy_ret = g_dbus_proxy_call_sync(self->priv->proxy, "GetFile", g_variant_new ("(ss)", targetfile, sourcefile), G_DBUS_CALL_FLAGS_NONE, -1, NULL, error);
+- if (proxy_ret != NULL)
++ if (proxy_ret == NULL)
+ return NULL;
+ ret = g_variant_ref_sink(proxy_ret);
+ g_variant_unref(proxy_ret);
+@@ -228,9 +228,9 @@ GVariant *obex_file_transfer_put_file(ObexFileTransfer *self, const gchar *sourc
+ g_assert(OBEX_FILE_TRANSFER_IS(self));
+ GVariant *ret = NULL;
+ GVariant *proxy_ret = g_dbus_proxy_call_sync(self->priv->proxy, "PutFile", g_variant_new ("(ss)", targetfile, sourcefile), G_DBUS_CALL_FLAGS_NONE, -1, NULL, error);
+- if (proxy_ret != NULL)
++ if (proxy_ret == NULL)
+ return NULL;
+ ret = g_variant_ref_sink(proxy_ret);
+ g_variant_unref(proxy_ret);
+ return ret;
+-}
+\ No newline at end of file
++}
+--
+2.34.1
+
diff --git a/meta-networking/recipes-connectivity/bluez-tools/bluez-tools_git.bb b/meta-networking/recipes-connectivity/bluez-tools/bluez-tools_git.bb
new file mode 100644
index 0000000000..22005632c2
--- /dev/null
+++ b/meta-networking/recipes-connectivity/bluez-tools/bluez-tools_git.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Bluez Tools"
+DESCRIPTION = "\
+ Additional tools for bluez5 to list, manage, and show inforations about \
+ adapters, agents, devices, network connections, and obex. \
+"
+HOMEPAGE = "https://github.com/khvzak/bluez-tools"
+BUGTRACKER = "https://github.com/khvzak/bluez-tools/issues"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
+
+DEPENDS = "dbus-glib glib-2.0 readline"
+
+SRC_URI = "\
+ git://github.com/khvzak/bluez-tools.git;protocol=https;branch=master \
+ file://fix-memory-leaks.patch \
+ file://obex-file-fix-null-check.patch \
+"
+SRCREV = "f65321736475429316f07ee94ec0deac8e46ec4a"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+RDEPENDS:${PN} = "bluez5"
diff --git a/meta-networking/recipes-connectivity/cannelloni/cannelloni/0001-include-bits-stdc-.h-only-when-using-libstdc.patch b/meta-networking/recipes-connectivity/cannelloni/cannelloni/0001-include-bits-stdc-.h-only-when-using-libstdc.patch
new file mode 100644
index 0000000000..71f447c94b
--- /dev/null
+++ b/meta-networking/recipes-connectivity/cannelloni/cannelloni/0001-include-bits-stdc-.h-only-when-using-libstdc.patch
@@ -0,0 +1,37 @@
+From 7aed36765ae44b41ede7e139da0a11b3696f2e06 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 13 Nov 2023 00:07:23 -0800
+Subject: [PATCH] include bits/stdc++.h only when using libstdc++
+
+We have other c++ runtime implementations e.g. llvm's libc++ which does
+not provide this header bits/stdc++.h, therefore make sure that this
+header is only included when using libstdc++
+
+Fixes
+| /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/cannelloni/1.1.0/git/tcpthread.cpp:27:10: fatal error: 'bits/stdc++.h' file not found
+| 27 | #include <bits/stdc++.h>
+| | ^~~~~~~~~~~~~~~
+
+Upstream-Status: Submitted [https://github.com/mguentner/cannelloni/pull/56]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tcpthread.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/tcpthread.cpp b/tcpthread.cpp
+index a1b3047..bb5a7b2 100644
+--- a/tcpthread.cpp
++++ b/tcpthread.cpp
+@@ -24,7 +24,9 @@
+ #include <cstdint>
+ #include <cstdio>
+
++#ifdef __GLIBCXX__
+ #include <bits/stdc++.h>
++#endif
+
+ #include <linux/can.h>
+ #include <string.h>
+--
+2.42.1
+
diff --git a/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.0.0.bb b/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.0.0.bb
deleted file mode 100644
index f34c73c173..0000000000
--- a/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.0.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "a SocketCAN over Ethernet tunnel"
-HOMEPAGE = "https://github.com/mguentner/cannelloni"
-LICENSE = "GPL-2.0-only"
-
-SRC_URI = "git://github.com/mguentner/cannelloni.git;protocol=https;branch=master"
-SRCREV = "0bd7e27db35bdef361226882ae04205504f7b2f4"
-
-LIC_FILES_CHKSUM = "file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit cmake
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= "lksctp-tools"
-PACKAGECONFIG[lksctp-tools] = "-DSCTP_SUPPORT=true, -DSCTP_SUPPORT=false, lksctp-tools"
diff --git a/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.1.0.bb b/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.1.0.bb
new file mode 100644
index 0000000000..dfa7437ba8
--- /dev/null
+++ b/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.1.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "a SocketCAN over Ethernet tunnel"
+HOMEPAGE = "https://github.com/mguentner/cannelloni"
+LICENSE = "GPL-2.0-only"
+
+SRC_URI = "git://github.com/mguentner/cannelloni.git;protocol=https;branch=master \
+ file://0001-include-bits-stdc-.h-only-when-using-libstdc.patch \
+ "
+SRCREV = "3d4fb8c8b07f6d7c62b2bdad7e5a94de61c9a29b"
+
+LIC_FILES_CHKSUM = "file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit cmake
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= "lksctp-tools"
+PACKAGECONFIG[lksctp-tools] = "-DSCTP_SUPPORT=true, -DSCTP_SUPPORT=false, lksctp-tools"
diff --git a/meta-networking/recipes-connectivity/civetweb/civetweb_1.16.bb b/meta-networking/recipes-connectivity/civetweb/civetweb_1.16.bb
new file mode 100644
index 0000000000..f5a699d5be
--- /dev/null
+++ b/meta-networking/recipes-connectivity/civetweb/civetweb_1.16.bb
@@ -0,0 +1,48 @@
+SUMMARY = "Civetweb embedded web server"
+HOMEPAGE = "https://github.com/civetweb/civetweb"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=ce6ce6eb1b2fd59ee6bab219470442a3"
+
+SRCREV = "d7ba35bbb649209c66e582d5a0244ba988a15159"
+
+SRC_URI = "git://github.com/civetweb/civetweb.git;branch=master;protocol=https \
+ file://0001-Unittest-Link-librt-and-libm-using-l-option.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+# civetweb supports building with make or cmake (although cmake lacks few features)
+inherit cmake
+
+# Disable Lua and Duktape because they do not compile from CMake (as of v1.8, v1.9 and v1.10).
+# Disable ASAN as it is included only in Debug build.
+EXTRA_OECMAKE = " \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCIVETWEB_ENABLE_DUKTAPE=OFF \
+ -DCIVETWEB_ENABLE_LUA=OFF \
+ -DCIVETWEB_ENABLE_ASAN=OFF \
+ -DCIVETWEB_BUILD_TESTING=OFF \
+ -DCIVETWEB_SSL_OPENSSL_API_3_0=ON \
+"
+
+# Building with ninja fails on missing third_party/lib/libcheck.a (which
+# should come from external CMake project)
+OECMAKE_GENERATOR = "Unix Makefiles"
+
+PACKAGECONFIG ??= "caching ipv6 server ssl websockets"
+PACKAGECONFIG[caching] = "-DCIVETWEB_DISABLE_CACHING=OFF,-DCIVETWEB_DISABLE_CACHING=ON,"
+PACKAGECONFIG[cgi] = "-DCIVETWEB_DISABLE_CGI=OFF,-DCIVETWEB_DISABLE_CGI=ON,"
+PACKAGECONFIG[cpp] = "-DCIVETWEB_ENABLE_CXX=ON,-DCIVETWEB_ENABLE_CXX=OFF,"
+PACKAGECONFIG[debug] = "-DCIVETWEB_ENABLE_MEMORY_DEBUGGING=ON,-DCIVETWEB_ENABLE_MEMORY_DEBUGGING=OFF,"
+PACKAGECONFIG[ipv6] = "-DCIVETWEB_ENABLE_IPV6=ON,-DCIVETWEB_ENABLE_IPV6=OFF,"
+PACKAGECONFIG[server] = "-DCIVETWEB_ENABLE_SERVER_EXECUTABLE=ON -DCIVETWEB_INSTALL_EXECUTABLE=ON,-DCIVETWEB_ENABLE_SERVER_EXECUTABLE=OFF -DCIVETWEB_INSTALL_EXECUTABLE=OFF,"
+PACKAGECONFIG[ssl] = "-DCIVETWEB_ENABLE_SSL=ON -DCIVETWEB_SSL_OPENSSL_API_1_1=OFF -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=OFF,-DCIVETWEB_ENABLE_SSL=OFF,openssl (=1.0.2%),"
+PACKAGECONFIG[websockets] = "-DCIVETWEB_ENABLE_WEBSOCKETS=ON,-DCIVETWEB_ENABLE_WEBSOCKETS=OFF,"
+
+do_install:append() {
+ sed -i -e 's|${RECIPE_SYSROOT_NATIVE}||g' \
+ -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/civetweb/civetweb-targets.cmake
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb b/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
deleted file mode 100644
index e9c2056180..0000000000
--- a/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Civetweb embedded web server"
-HOMEPAGE = "https://github.com/civetweb/civetweb"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=50bd1d7f135b50d7e218996ba28d0d88"
-
-SRCREV = "4b440a339979852d5a51fb11a822952712231c23"
-PV = "1.12+git${SRCPV}"
-SRC_URI = "git://github.com/civetweb/civetweb.git;branch=master;protocol=https \
- file://0001-Unittest-Link-librt-and-libm-using-l-option.patch \
- "
-
-S = "${WORKDIR}/git"
-
-# civetweb supports building with make or cmake (although cmake lacks few features)
-inherit cmake
-
-# Disable Lua and Duktape because they do not compile from CMake (as of v1.8, v1.9 and v1.10).
-# Disable ASAN as it is included only in Debug build.
-EXTRA_OECMAKE = " \
- -DBUILD_SHARED_LIBS=ON \
- -DCIVETWEB_ENABLE_DUKTAPE=OFF \
- -DCIVETWEB_ENABLE_LUA=OFF \
- -DCIVETWEB_ENABLE_ASAN=OFF \
- -DCIVETWEB_BUILD_TESTING=OFF \
-"
-
-# Building with ninja fails on missing third_party/lib/libcheck.a (which
-# should come from external CMake project)
-OECMAKE_GENERATOR = "Unix Makefiles"
-
-PACKAGECONFIG ??= "caching ipv6 server ssl websockets"
-PACKAGECONFIG[caching] = "-DCIVETWEB_DISABLE_CACHING=OFF,-DCIVETWEB_DISABLE_CACHING=ON,"
-PACKAGECONFIG[cgi] = "-DCIVETWEB_DISABLE_CGI=OFF,-DCIVETWEB_DISABLE_CGI=ON,"
-PACKAGECONFIG[cpp] = "-DCIVETWEB_ENABLE_CXX=ON,-DCIVETWEB_ENABLE_CXX=OFF,"
-PACKAGECONFIG[debug] = "-DCIVETWEB_ENABLE_MEMORY_DEBUGGING=ON,-DCIVETWEB_ENABLE_MEMORY_DEBUGGING=OFF,"
-PACKAGECONFIG[ipv6] = "-DCIVETWEB_ENABLE_IPV6=ON,-DCIVETWEB_ENABLE_IPV6=OFF,"
-PACKAGECONFIG[server] = "-DCIVETWEB_ENABLE_SERVER_EXECUTABLE=ON -DCIVETWEB_INSTALL_EXECUTABLE=ON,-DCIVETWEB_ENABLE_SERVER_EXECUTABLE=OFF -DCIVETWEB_INSTALL_EXECUTABLE=OFF,"
-PACKAGECONFIG[ssl] = "-DCIVETWEB_ENABLE_SSL=ON -DCIVETWEB_SSL_OPENSSL_API_1_1=OFF -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=OFF,-DCIVETWEB_ENABLE_SSL=OFF,openssl (=1.0.2%),"
-PACKAGECONFIG[websockets] = "-DCIVETWEB_ENABLE_WEBSOCKETS=ON,-DCIVETWEB_ENABLE_WEBSOCKETS=OFF,"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-connectivity/daq/daq_2.0.7.bb b/meta-networking/recipes-connectivity/daq/daq_2.0.7.bb
index 14d809f518..66ad83f711 100644
--- a/meta-networking/recipes-connectivity/daq/daq_2.0.7.bb
+++ b/meta-networking/recipes-connectivity/daq/daq_2.0.7.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=f9ce51a65dd738dc1ae631d8b21c40e0"
PARALLEL_MAKE = ""
-DEPENDS = "libpcap libpcre libdnet bison-native"
+DEPENDS = "libpcap libpcre libdnet bison-native libnetfilter-queue"
SRC_URI = "http://fossies.org/linux/misc/daq-${PV}.tar.gz \
file://disable-run-test-program-while-cross-compiling.patch \
@@ -19,13 +19,14 @@ SRC_URI[sha256sum] = "bdc4e5a24d1ea492c39ee213a63c55466a2e8114b6a9abed609927ae13
#
# never look to /usr/local lib while cross compiling
-EXTRA_OECONF = "--disable-nfq-module --disable-ipq-module --includedir=${includedir} \
+EXTRA_OECONF = "--enable-nfq-module --disable-ipq-module --includedir=${includedir} \
--with-libpcap-includes=${STAGING_INCDIR} --with-dnet-includes=${STAGING_LIBDIR}"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-inherit autotools
+inherit autotools multilib_script
+MULTILIB_SCRIPTS += "${PN}:${bindir}/daq-modules-config "
DISABLE_STATIC = ""
diff --git a/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch b/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch
index 4798a77f55..7587d44336 100644
--- a/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch
+++ b/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch
@@ -1,12 +1,15 @@
-From 10e7d4e4bfcb70344d18f0d4ce36068475747f25 Mon Sep 17 00:00:00 2001
+From b7d54de51553f6d09906c355bd0dd326890c8fe4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 29 Mar 2017 15:59:43 -0700
Subject: [PATCH] correct the location of unistd.h
+Upstream-Status: Pending
+
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
os-daq-modules/daq_ipfw.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ os-daq-modules/daq_nfq.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/os-daq-modules/daq_ipfw.c b/os-daq-modules/daq_ipfw.c
index 016beb0..c2a4175 100644
@@ -24,6 +27,22 @@ index 016beb0..c2a4175 100644
#include <netinet/in.h>
#include <sys/socket.h>
+diff --git a/os-daq-modules/daq_nfq.c b/os-daq-modules/daq_nfq.c
+index 33021c0..4de94b6 100644
+--- a/os-daq-modules/daq_nfq.c
++++ b/os-daq-modules/daq_nfq.c
+@@ -24,10 +24,10 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <unistd.h>
+
+ #include <sys/types.h>
+ #include <sys/time.h>
+-#include <sys/unistd.h>
+
+ #include <netinet/ip.h>
+
--
-2.12.1
+2.25.1
diff --git a/meta-networking/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch b/meta-networking/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch
index a100b7cb83..cb986b85da 100644
--- a/meta-networking/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch
+++ b/meta-networking/recipes-connectivity/daq/files/disable-run-test-program-while-cross-compiling.patch
@@ -1,4 +1,4 @@
-Upstream-Status:Inappropriate [embedded specific]
+Upstream-Status: Inappropriate [embedded specific]
fix the below error:
configure: error: cannot run test program while cross compiling
diff --git a/meta-networking/recipes-connectivity/daq/libdaq/0001-example-Use-lm-for-the-fst-module.patch b/meta-networking/recipes-connectivity/daq/libdaq/0001-example-Use-lm-for-the-fst-module.patch
new file mode 100644
index 0000000000..7147c042a1
--- /dev/null
+++ b/meta-networking/recipes-connectivity/daq/libdaq/0001-example-Use-lm-for-the-fst-module.patch
@@ -0,0 +1,32 @@
+From 9357da2a5a829f7a0620e6c19835a65b7b02a8fb Mon Sep 17 00:00:00 2001
+From: Khawaja Shaheryar <behzadshaheryar@gmail.com>
+Date: Tue, 20 Feb 2024 21:03:26 +0500
+Subject: [PATCH] example: Use -lm for the fst module
+
+If -lm is not passed in Makefile.am, the following is seen
+| arm-yoe-linux-gnueabi-ld.lld: error: undefined symbol: ceilf
+| >>> referenced by math.h:632 (/usr/include/c++/v1/math.h:632)
+| >>> libdaq_static_fst_la-daq_fst.o:(std::__1::pair<std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<FstKey, FstNode*>, void*>*>, bool> std::__1::__hash_table<std::__1::__hash_value_type<FstKey, FstNode*>, std::__1::__unordered_map_hasher<FstKey, std::__1::__hash_value_type<FstKey, FstNode*>, FstKeyHash, std::__1::equal_to<FstKey>, true>, std::__1::__unordered_map_equal<FstKey, std::__1::__hash_value_type<FstKey, FstNode*>, std::__1::equal_to<FstKey>, FstKeyHash, true>, std::__1::allocator<std::__1::__hash_value_type<FstKey, FstNode*>>>::__emplace_unique_key_args<FstKey, std::__1::pair<FstKey const, FstNode*>>(FstKey const&, std::__1::pair<FstKey const, FstNode*>&&)) in archive ../modules/fst/.libs/libdaq_static_fst.a
+
+Upstream-Status: Pending
+
+Signed-off-by: Khawaja Shaheryar <behzadshaheryar@gmail.com>
+---
+ example/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/example/Makefile.am b/example/Makefile.am
+index 0d5ca31..1eaa9e8 100644
+--- a/example/Makefile.am
++++ b/example/Makefile.am
+@@ -31,6 +31,7 @@ endif
+ if BUILD_FST_MODULE
+ daqtest_static_CFLAGS += -DBUILD_FST_MODULE
+ daqtest_static_LDADD += ${top_builddir}/modules/fst/libdaq_static_fst.la $(DAQ_FST_LIBS)
++daqtest_static_LDFLAGS += -lm
+ endif
+ if BUILD_NETMAP_MODULE
+ daqtest_static_CFLAGS += -DBUILD_NETMAP_MODULE
+--
+2.34.1
+
diff --git a/meta-networking/recipes-connectivity/daq/libdaq_3.0.14.bb b/meta-networking/recipes-connectivity/daq/libdaq_3.0.14.bb
new file mode 100644
index 0000000000..74964e0741
--- /dev/null
+++ b/meta-networking/recipes-connectivity/daq/libdaq_3.0.14.bb
@@ -0,0 +1,18 @@
+SUMMARY = "LibDAQ: The Data AcQuisition Library"
+DESCRIPTION = "LibDAQ is a pluggable abstraction layer for interacting with a data source (traditionally a network interface or network data plane)."
+HOMEPAGE = "http://www.snort.org"
+SECTION = "libs"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=79258250506422d064560a7b95b2d53e"
+
+DEPENDS = "libdnet libpcap"
+
+inherit autotools pkgconfig
+
+SRC_URI = "git://github.com/snort3/libdaq.git;protocol=https;branch=master \
+ file://0001-example-Use-lm-for-the-fst-module.patch"
+SRCREV = "4e68d7ba6940df9a1503599d7b177029112d6b6a"
+
+S = "${WORKDIR}/git"
+
+FILES:${PN} += "${libdir}/daq/*.so"
diff --git a/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3.bb b/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3.bb
deleted file mode 100644
index 92c648708e..0000000000
--- a/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3.bb
+++ /dev/null
@@ -1,62 +0,0 @@
-SECTION = "console/network"
-SUMMARY = "Internet Software Consortium DHCP Relay Agent"
-DESCRIPTION = "A DHCP relay agent passes DHCP requests from one \
-LAN to another, so that a DHCP server is not needed on every LAN."
-
-HOMEPAGE = "http://www.isc.org/"
-
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c463f4afde26d9eb60f14f50aeb85f8f"
-
-DEPENDS = "openssl libcap zlib"
-
-SRC_URI = "https://downloads.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \
- file://default-relay \
- file://init-relay \
- file://dhcrelay.service \
- file://0001-Makefile.am-only-build-dhcrelay.patch \
- file://0002-bind-Makefile.in-disable-backtrace.patch \
- file://0003-bind-Makefile.in-regenerate-configure.patch \
- "
-
-SRC_URI[sha256sum] = "0e3ec6b4c2a05ec0148874bcd999a66d05518378d77421f607fb0bc9d0135818"
-
-UPSTREAM_CHECK_URI = "http://ftp.isc.org/isc/dhcp/"
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+\.\d+\.(\d+?))/"
-
-S = "${WORKDIR}/dhcp-${PV}"
-
-inherit autotools-brokensep systemd pkgconfig
-
-SYSTEMD_SERVICE:${PN} = "dhcrelay.service"
-SYSTEMD_AUTO_ENABLE:${PN} = "disable"
-
-CFLAGS += "-D_GNU_SOURCE -fcommon"
-LDFLAGS:append = " -pthread"
-
-EXTRA_OECONF = "--enable-paranoia \
- --disable-static \
- --enable-libtool \
- --with-randomdev=/dev/random \
- "
-
-# Enable shared libs per dhcp README
-do_configure:prepend () {
- cp configure.ac+lt configure.ac
-}
-
-do_install:append () {
- install -Dm 0644 ${WORKDIR}/default-relay ${D}${sysconfdir}/default/dhcp-relay
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/dhcrelay.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/dhcrelay.service
- sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcrelay.service
- else
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/init-relay ${D}${sysconfdir}/init.d/dhcp-relay
- fi
-}
-
-PARALLEL_MAKE = ""
diff --git a/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb b/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb
new file mode 100644
index 0000000000..e5f7e0334f
--- /dev/null
+++ b/meta-networking/recipes-connectivity/dhcp/dhcp-relay_4.4.3p1.bb
@@ -0,0 +1,72 @@
+SECTION = "console/network"
+SUMMARY = "Internet Software Consortium DHCP Relay Agent"
+DESCRIPTION = "A DHCP relay agent passes DHCP requests from one \
+LAN to another, so that a DHCP server is not needed on every LAN."
+
+HOMEPAGE = "http://www.isc.org/"
+
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c463f4afde26d9eb60f14f50aeb85f8f"
+
+DEPENDS = "openssl libcap zlib"
+
+SRC_URI = "https://downloads.isc.org/isc/dhcp/4.4.3-P1/dhcp-4.4.3-P1.tar.gz \
+ file://default-relay \
+ file://init-relay \
+ file://dhcrelay.service \
+ file://0001-Makefile.am-only-build-dhcrelay.patch \
+ file://0002-bind-Makefile.in-disable-backtrace.patch \
+ file://0003-bind-Makefile.in-regenerate-configure.patch \
+ "
+
+SRC_URI[sha256sum] = "0ac416bb55997ca8632174fd10737fd61cdb8dba2752160a335775bc21dc73c7"
+
+UPSTREAM_CHECK_URI = "http://ftp.isc.org/isc/dhcp/"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+\.\d+\.(\d+?))/"
+
+S = "${WORKDIR}/dhcp-4.4.3-P1"
+
+inherit autotools-brokensep systemd pkgconfig
+
+SYSTEMD_SERVICE:${PN} = "dhcrelay.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
+
+CFLAGS += "-D_GNU_SOURCE -fcommon"
+LDFLAGS:append = " -pthread"
+
+BIND_EXTRA_CONFIG = "\
+ --build=${BUILD_SYS} \
+ --host=${HOST_SYS} \
+ --target=${TARGET_SYS} \
+"
+
+EXTRA_OECONF = "--with-bind-extra-config="${BIND_EXTRA_CONFIG}" \
+ --enable-paranoia \
+ --disable-static \
+ --enable-libtool \
+ --with-randomdev=/dev/random \
+ "
+
+# Enable shared libs per dhcp README
+do_configure:prepend () {
+ cp configure.ac+lt configure.ac
+}
+
+do_install:append () {
+ install -Dm 0644 ${WORKDIR}/default-relay ${D}${sysconfdir}/default/dhcp-relay
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/dhcrelay.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/dhcrelay.service
+ sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcrelay.service
+ else
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/init-relay ${D}${sysconfdir}/init.d/dhcp-relay
+ fi
+}
+
+PARALLEL_MAKE = ""
+
+# dhcp-relay contains a bundled "bind", thus their dev packages conflict each other
+RCONFLICTS:${PN}-dev = "bind-dev"
diff --git a/meta-networking/recipes-connectivity/dibbler/dibbler/0001-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch b/meta-networking/recipes-connectivity/dibbler/dibbler/0001-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch
new file mode 100644
index 0000000000..d48d7265d4
--- /dev/null
+++ b/meta-networking/recipes-connectivity/dibbler/dibbler/0001-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch
@@ -0,0 +1,125 @@
+From 9e9d94566d39eef3e4606f806aa418bf5534fab9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 15 Jan 2023 22:04:31 -0800
+Subject: [PATCH 1/2] Define alignof using _Alignof when using C11 or newer
+
+WG14 N2350 made very clear that it is an UB having type definitions
+within "offsetof" [1]. This patch enhances the implementation of macro
+alignof to use builtin "_Alignof" to avoid undefined behavior on
+when using std=c11 or newer
+
+clang 16+ has started to flag this [2]
+
+Fixes build when using -std >= gnu11 and using clang16+
+
+Older compilers gcc < 4.9 or clang < 8 has buggy _Alignof even though it
+may support C11, exclude those compilers too
+
+[1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2350.htm
+[2] https://reviews.llvm.org/D133574
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Misc/md5-coreutils.c | 12 +++++++++++-
+ Misc/sha1.c | 12 +++++++++++-
+ Misc/sha256.c | 12 +++++++++++-
+ Misc/sha512.c | 12 +++++++++++-
+ 4 files changed, 44 insertions(+), 4 deletions(-)
+
+diff --git a/Misc/md5-coreutils.c b/Misc/md5-coreutils.c
+index d6503e02..2ffb6050 100644
+--- a/Misc/md5-coreutils.c
++++ b/Misc/md5-coreutils.c
+@@ -154,7 +154,17 @@ md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx)
+ if (len >= 64)
+ {
+ #if !_STRING_ARCH_unaligned
+-# define alignof(type) offsetof (struct { char c; type x; }, x)
++/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023
++ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
++ clang versions < 8.0.0 have the same bug. */
++# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
++ || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
++ && !defined __clang__) \
++ || (defined __clang__ && __clang_major__ < 8))
++# define alignof(type) offsetof (struct { char c; type x; }, x)
++# else
++# define alignof(type) _Alignof(type)
++# endif
+ # define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0)
+ if (UNALIGNED_P (buffer))
+ while (len > 64)
+diff --git a/Misc/sha1.c b/Misc/sha1.c
+index 18ceb845..a170efe3 100644
+--- a/Misc/sha1.c
++++ b/Misc/sha1.c
+@@ -149,7 +149,17 @@ sha1_process_bytes (const void *buffer, size_t len, struct sha1_ctx *ctx)
+ if (len >= 64)
+ {
+ #if !_STRING_ARCH_unaligned
+-# define alignof(type) offsetof (struct { char c; type x; }, x)
++/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023
++ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
++ clang versions < 8.0.0 have the same bug. */
++# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
++ || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
++ && !defined __clang__) \
++ || (defined __clang__ && __clang_major__ < 8))
++# define alignof(type) offsetof (struct { char c; type x; }, x)
++# else
++# define alignof(type) _Alignof(type)
++# endif
+ # define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0)
+ if (UNALIGNED_P (buffer))
+ while (len > 64)
+diff --git a/Misc/sha256.c b/Misc/sha256.c
+index 68292326..da59e81d 100644
+--- a/Misc/sha256.c
++++ b/Misc/sha256.c
+@@ -372,7 +372,17 @@ sha256_process_bytes (const void *buffer, size_t len, struct sha256_ctx *ctx)
+ if (len >= 64)
+ {
+ #if !_STRING_ARCH_unaligned
+-# define alignof(type) offsetof (struct { char c; type x; }, x)
++/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023
++ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
++ clang versions < 8.0.0 have the same bug. */
++# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
++ || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
++ && !defined __clang__) \
++ || (defined __clang__ && __clang_major__ < 8))
++# define alignof(type) offsetof (struct { char c; type x; }, x)
++# else
++# define alignof(type) _Alignof(type)
++# endif
+ # define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0)
+ if (UNALIGNED_P (buffer))
+ while (len > 64)
+diff --git a/Misc/sha512.c b/Misc/sha512.c
+index db86c659..38e162fc 100644
+--- a/Misc/sha512.c
++++ b/Misc/sha512.c
+@@ -190,7 +190,17 @@ sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx)
+ if (len >= 128)
+ {
+ #if !_STRING_ARCH_unaligned
+-# define alignof(type) offsetof (struct { char c; type x; }, x)
++/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023
++ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.
++ clang versions < 8.0.0 have the same bug. */
++# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
++ || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \
++ && !defined __clang__) \
++ || (defined __clang__ && __clang_major__ < 8))
++# define alignof(type) offsetof (struct { char c; type x; }, x)
++# else
++# define alignof(type) _Alignof(type)
++# endif
+ # define UNALIGNED_P(p) (((size_t) p) % alignof (uint64_t) != 0)
+ if (UNALIGNED_P (buffer))
+ while (len > 128)
+--
+2.39.0
+
diff --git a/meta-networking/recipes-connectivity/dibbler/dibbler/0001-port-linux-Re-order-header-includes.patch b/meta-networking/recipes-connectivity/dibbler/dibbler/0001-port-linux-Re-order-header-includes.patch
index 27a562bf22..884be404b5 100644
--- a/meta-networking/recipes-connectivity/dibbler/dibbler/0001-port-linux-Re-order-header-includes.patch
+++ b/meta-networking/recipes-connectivity/dibbler/dibbler/0001-port-linux-Re-order-header-includes.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] port-linux: Re-order header includes
linux/if.h when included before net/if.h casues duplicate definitions
-Upstream-Status: Iappropriate [Upstream is Dead]
+Upstream-Status: Inappropriate [Upstream is Dead]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Port-linux/interface.c | 2 +-
diff --git a/meta-networking/recipes-connectivity/dibbler/dibbler/0002-make-Do-not-enforce-c99.patch b/meta-networking/recipes-connectivity/dibbler/dibbler/0002-make-Do-not-enforce-c99.patch
new file mode 100644
index 0000000000..8889130a3b
--- /dev/null
+++ b/meta-networking/recipes-connectivity/dibbler/dibbler/0002-make-Do-not-enforce-c99.patch
@@ -0,0 +1,50 @@
+From e826206c58bbaa1c256f55b103d5eb7b0182f152 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 15 Jan 2023 22:05:53 -0800
+Subject: [PATCH 2/2] make: Do not enforce c99
+
+Latest gcc/clang from OE defaults to c11 or newer and stickly to c99
+means we can not use _AlignOf
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Misc/Makefile.am | 4 +---
+ Port-linux/Makefile.am | 1 -
+ 2 files changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/Misc/Makefile.am b/Misc/Makefile.am
+index d881525a..8d71d2d4 100644
+--- a/Misc/Makefile.am
++++ b/Misc/Makefile.am
+@@ -6,8 +6,6 @@ endif
+
+ noinst_LIBRARIES = libMisc.a
+
+-libMisc_a_CFLAGS = -std=c99
+-
+ libMisc_a_CPPFLAGS = -I$(top_srcdir)
+
+ libMisc_a_SOURCES = addrpack.c
+@@ -27,4 +25,4 @@ libMisc_a_SOURCES += lowlevel-posix.c
+
+ libMisc_a_SOURCES += hmac-sha-md5.h hmac-sha-md5.c
+ libMisc_a_SOURCES += md5-coreutils.c md5.h
+-libMisc_a_SOURCES += sha1.c sha1.h sha256.c sha256.h sha512.c sha512.h
+\ No newline at end of file
++libMisc_a_SOURCES += sha1.c sha1.h sha256.c sha256.h sha512.c sha512.h
+diff --git a/Port-linux/Makefile.am b/Port-linux/Makefile.am
+index 72b0a5e3..635998ea 100644
+--- a/Port-linux/Makefile.am
++++ b/Port-linux/Makefile.am
+@@ -1,6 +1,5 @@
+ noinst_LIBRARIES = libLowLevel.a
+
+-libLowLevel_a_CFLAGS = -std=c99
+ libLowLevel_a_CPPFLAGS = -I$(top_srcdir)/Misc
+
+ libLowLevel_a_SOURCES = daemon.cpp daemon.h ethtool-kernel.h ethtool-local.h interface.c interface.h ip_common.h iproute.c libnetlink.c libnetlink.h ll_map.c ll_map.h ll_types.c lowlevel-linux.c lowlevel-linux-link-state.c lowlevel-options-linux.c rtm_map.h rt_names.h utils.c utils.h
+--
+2.39.0
+
diff --git a/meta-networking/recipes-connectivity/dibbler/dibbler/dibbler_fix_getSize_crash.patch b/meta-networking/recipes-connectivity/dibbler/dibbler/dibbler_fix_getSize_crash.patch
index 42d2627a1a..439ef1177d 100644
--- a/meta-networking/recipes-connectivity/dibbler/dibbler/dibbler_fix_getSize_crash.patch
+++ b/meta-networking/recipes-connectivity/dibbler/dibbler/dibbler_fix_getSize_crash.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: git/ClntMessages/ClntMsgRequest.cpp
===================================================================
--- git.orig/ClntMessages/ClntMsgRequest.cpp
diff --git a/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb b/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
index f57767e9b8..34f8a7e3e5 100644
--- a/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
+++ b/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
@@ -10,6 +10,8 @@ SRCREV = "a7c6cf58a88a510cb00841351e75030ce78d36bf"
SRC_URI = "git://github.com/tomaszmrugalski/dibbler;branch=master;protocol=https \
file://dibbler_fix_getSize_crash.patch \
file://0001-port-linux-Re-order-header-includes.patch \
+ file://0001-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch \
+ file://0002-make-Do-not-enforce-c99.patch \
"
PV = "1.0.1+1.0.2RC1+git${SRCREV}"
@@ -30,7 +32,7 @@ inherit autotools
DEPENDS += "flex-native"
-CFLAGS += "-D_GNU_SOURCE"
+CPPFLAGS += "-D_GNU_SOURCE -Dregister=''"
LDFLAGS += "-pthread"
PACKAGES =+ "${PN}-requestor ${PN}-client ${PN}-relay ${PN}-server"
diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/Makefile.am.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/Makefile.am.patch
index d80ed3e29d..dde233121a 100644
--- a/meta-networking/recipes-connectivity/ez-ipupdate/files/Makefile.am.patch
+++ b/meta-networking/recipes-connectivity/ez-ipupdate/files/Makefile.am.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Remove EXTRASRC and EXTRAOBJ from obj list
--- ez-ipupdate-3.0.11b7/Makefile.am.orig 2014-07-02 13:47:50.758034983 -0600
diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch
index de5eb3a6d1..0199cb1278 100644
--- a/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch
+++ b/meta-networking/recipes-connectivity/ez-ipupdate/files/cache_file.c.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Dont assume errno type
--- ez-ipupdate-3.0.11b7/cache_file.c.orig 2014-07-02 14:01:07.126029412 -0600
diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch
index 02218a39ea..6325c1873f 100644
--- a/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch
+++ b/meta-networking/recipes-connectivity/ez-ipupdate/files/conf_file.c.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Dont assume errno type
--- ez-ipupdate-3.0.11b7/conf_file.c.orig 2014-07-02 14:01:19.174029328 -0600
diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch
index 1de267f083..3b791559d5 100644
--- a/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch
+++ b/meta-networking/recipes-connectivity/ez-ipupdate/files/wformat.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: ez-ipupdate-3.0.11b7/ez-ipupdate.c
===================================================================
--- ez-ipupdate-3.0.11b7.orig/ez-ipupdate.c
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0001-Add-autogen.sh.patch b/meta-networking/recipes-connectivity/freeradius/files/0001-Add-autogen.sh.patch
new file mode 100644
index 0000000000..e1228c2ebe
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0001-Add-autogen.sh.patch
@@ -0,0 +1,46 @@
+From 3be3b9a1345942d1578ec73efa9b2e3c41bd67c5 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Fri, 21 Jan 2022 13:22:24 +0800
+Subject: [PATCH] Add autogen.sh
+
+The autogen.sh has been removed since 3.0.22[1]. But we still need it in
+do_configure. Add it back.
+
+[1] https://github.com/FreeRADIUS/freeradius-server/commit/2e9b6227efd19e2b0926541aa26874908e7b7314
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ autogen.sh | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+ create mode 100755 autogen.sh
+
+diff --git a/autogen.sh b/autogen.sh
+new file mode 100755
+index 0000000000..959182b39e
+--- /dev/null
++++ b/autogen.sh
+@@ -0,0 +1,19 @@
++#!/bin/sh -e
++
++parentdir=`dirname $0`
++
++cd $parentdir
++parentdir=`pwd`
++m4include="-I$parentdir -I$parentdir/m4 -Im4"
++
++autoreconf -Wcross --verbose --install --force
++
++mysubdirs="$mysubdirs `find src/modules/ -name configure -print | sed 's%/configure%%'`"
++mysubdirs=`echo $mysubdirs`
++
++for F in $mysubdirs
++do
++ echo "Configuring in $F..."
++ (cd $F && grep "^AC_CONFIG_HEADER" configure.ac > /dev/null || exit 0; autoheader $m4include)
++ (cd $F && autoconf $m4include)
++done
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0001-raddb-certs-Makefile-fix-the-existed-certificate-err.patch b/meta-networking/recipes-connectivity/freeradius/files/0001-raddb-certs-Makefile-fix-the-existed-certificate-err.patch
deleted file mode 100644
index 669f363e72..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/0001-raddb-certs-Makefile-fix-the-existed-certificate-err.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 084f5467672f2ae37003b77e8f8706772f3da3ec Mon Sep 17 00:00:00 2001
-From: Mingli Yu <mingli.yu@windriver.com>
-Date: Mon, 13 Jul 2020 07:01:45 +0000
-Subject: [PATCH] raddb/certs/Makefile: fix the existed certificate error
-
-Fixes:
- # ./bootstrap
- [snip]
-openssl ca -batch -keyfile ca.key -cert ca.pem -in client.csr -key 'whatever' -out client.crt -extensions xpclient_ext -extfile xpextensions -config ./client.cnf
-Using configuration from ./client.cnf
-Check that the request matches the signature
-Signature ok
-ERROR:There is already a certificate for /C=FR/ST=Radius/O=Example Inc./CN=user@example.org/emailAddress=user@example.org
-The matching entry has the following details
-Type :Valid
-Expires on :200908024833Z
-Serial Number :02
-File name :unknown
-Subject Name :/C=FR/ST=Radius/O=Example Inc./CN=user@example.org/emailAddress=user@example.org
-make: *** [Makefile:128: client.crt] Error 1
-
-Add the check to fix the above error and it does the same for server.crt.
-
-Upstream-Status: Pending
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- raddb/certs/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/raddb/certs/Makefile b/raddb/certs/Makefile
-index 5cbfd467ce..77eec9baa1 100644
---- a/raddb/certs/Makefile
-+++ b/raddb/certs/Makefile
-@@ -92,7 +92,7 @@ server.csr server.key: server.cnf
- chmod g+r server.key
-
- server.crt: server.csr ca.key ca.pem
-- $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in server.csr -key $(PASSWORD_CA) -out server.crt -extensions xpserver_ext -extfile xpextensions -config ./server.cnf
-+ @[ -f server.crt ] || $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in server.csr -key $(PASSWORD_CA) -out server.crt -extensions xpserver_ext -extfile xpextensions -config ./server.cnf
-
- server.p12: server.crt
- $(OPENSSL) pkcs12 -export -in server.crt -inkey server.key -out server.p12 -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
-@@ -117,7 +117,7 @@ client.csr client.key: client.cnf
- chmod g+r client.key
-
- client.crt: client.csr ca.pem ca.key
-- $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in client.csr -key $(PASSWORD_CA) -out client.crt -extensions xpclient_ext -extfile xpextensions -config ./client.cnf
-+ @[ -f client.crt ] || $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in client.csr -key $(PASSWORD_CA) -out client.crt -extensions xpclient_ext -extfile xpextensions -config ./client.cnf
-
- client.p12: client.crt
- $(OPENSSL) pkcs12 -export -in client.crt -inkey client.key -out client.p12 -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
---
-2.26.2
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0001-raddb-certs-Makefile-fix-the-occasional-verification.patch b/meta-networking/recipes-connectivity/freeradius/files/0001-raddb-certs-Makefile-fix-the-occasional-verification.patch
deleted file mode 100644
index dce0427e1a..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/0001-raddb-certs-Makefile-fix-the-occasional-verification.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 3eda5d35fbaf66ed6bdc86ada4320a0a18681b7e Mon Sep 17 00:00:00 2001
-From: Mingli Yu <mingli.yu@windriver.com>
-Date: Wed, 5 Aug 2020 07:23:11 +0000
-Subject: [PATCH] raddb/certs/Makefile: fix the occasional verification failure
-
-Fixes:
- # cd /etc/raddb/certs
- # ./bootstrap
-[snip]
-chmod g+r ca.key
-openssl pkcs12 -in server.p12 -out server.pem -passin pass:'whatever' -passout pass:'whatever'
-chmod g+r server.pem
-C = FR, ST = Radius, O = Example Inc., CN = Example Server Certificate, emailAddress = admin@example.org
-error 7 at 0 depth lookup: certificate signature failure
-140066667427072:error:04067084:rsa routines:rsa_ossl_public_decrypt:data too large for modulus:../openssl-1.1.1g/crypto/rsa/rsa_ossl.c:553:
-140066667427072:error:0D0C5006:asn1 encoding routines:ASN1_item_verify:EVP lib:../openssl-1.1.1g/crypto/asn1/a_verify.c:170:
-error server.pem: verification failed
-make: *** [Makefile:107: server.vrfy] Error 2
-
-It seems the ca.pem mismatchs server.pem which results in failing to
-execute "openssl verify -CAfile ca.pem server.pem", so add to check
-the file to avoid inconsistency.
-
-Upstream-Status: Pending
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- raddb/certs/Makefile | 30 +++++++++++++++---------------
- 1 file changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/raddb/certs/Makefile b/raddb/certs/Makefile
-index 77eec9baa1..3dcb63fe71 100644
---- a/raddb/certs/Makefile
-+++ b/raddb/certs/Makefile
-@@ -59,7 +59,7 @@ passwords.mk: server.cnf ca.cnf client.cnf inner-server.cnf
- #
- ######################################################################
- dh:
-- $(OPENSSL) dhparam -out dh -2 $(DH_KEY_SIZE)
-+ @[ -f dh ] || $(OPENSSL) dhparam -out dh -2 $(DH_KEY_SIZE)
-
- ######################################################################
- #
-@@ -69,17 +69,17 @@ dh:
- ca.key ca.pem: ca.cnf
- @[ -f index.txt ] || $(MAKE) index.txt
- @[ -f serial ] || $(MAKE) serial
-- $(OPENSSL) req -new -x509 -keyout ca.key -out ca.pem \
-+ @[ -f ca.pem ] || $(OPENSSL) req -new -x509 -keyout ca.key -out ca.pem \
- -days $(CA_DEFAULT_DAYS) -config ./ca.cnf \
- -passin pass:$(PASSWORD_CA) -passout pass:$(PASSWORD_CA)
- chmod g+r ca.key
-
- ca.der: ca.pem
-- $(OPENSSL) x509 -inform PEM -outform DER -in ca.pem -out ca.der
-+ @[ -f ca.der ] || $(OPENSSL) x509 -inform PEM -outform DER -in ca.pem -out ca.der
-
- ca.crl: ca.pem
-- $(OPENSSL) ca -gencrl -keyfile ca.key -cert ca.pem -config ./ca.cnf -out ca-crl.pem -key $(PASSWORD_CA)
-- $(OPENSSL) crl -in ca-crl.pem -outform der -out ca.crl
-+ @[ -f ca-crl.pem ] || $(OPENSSL) ca -gencrl -keyfile ca.key -cert ca.pem -config ./ca.cnf -out ca-crl.pem -key $(PASSWORD_CA)
-+ @[ -f ca.crl ] || $(OPENSSL) crl -in ca-crl.pem -outform der -out ca.crl
- rm ca-crl.pem
-
- ######################################################################
-@@ -88,18 +88,18 @@ ca.crl: ca.pem
- #
- ######################################################################
- server.csr server.key: server.cnf
-- $(OPENSSL) req -new -out server.csr -keyout server.key -config ./server.cnf
-+ @[ -f server.csr ] || $(OPENSSL) req -new -out server.csr -keyout server.key -config ./server.cnf
- chmod g+r server.key
-
- server.crt: server.csr ca.key ca.pem
- @[ -f server.crt ] || $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in server.csr -key $(PASSWORD_CA) -out server.crt -extensions xpserver_ext -extfile xpextensions -config ./server.cnf
-
- server.p12: server.crt
-- $(OPENSSL) pkcs12 -export -in server.crt -inkey server.key -out server.p12 -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
-+ @[ -f server.p12 ] || $(OPENSSL) pkcs12 -export -in server.crt -inkey server.key -out server.p12 -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
- chmod g+r server.p12
-
- server.pem: server.p12
-- $(OPENSSL) pkcs12 -in server.p12 -out server.pem -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
-+ @[ -f server.pem ] || $(OPENSSL) pkcs12 -in server.p12 -out server.pem -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
- chmod g+r server.pem
-
- .PHONY: server.vrfy
-@@ -113,18 +113,18 @@ server.vrfy: ca.pem
- #
- ######################################################################
- client.csr client.key: client.cnf
-- $(OPENSSL) req -new -out client.csr -keyout client.key -config ./client.cnf
-+ @[ -f client.csr ] || $(OPENSSL) req -new -out client.csr -keyout client.key -config ./client.cnf
- chmod g+r client.key
-
- client.crt: client.csr ca.pem ca.key
- @[ -f client.crt ] || $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in client.csr -key $(PASSWORD_CA) -out client.crt -extensions xpclient_ext -extfile xpextensions -config ./client.cnf
-
- client.p12: client.crt
-- $(OPENSSL) pkcs12 -export -in client.crt -inkey client.key -out client.p12 -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
-+ @[ -f client.p12 ] || $(OPENSSL) pkcs12 -export -in client.crt -inkey client.key -out client.p12 -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
- chmod g+r client.p12
-
- client.pem: client.p12
-- $(OPENSSL) pkcs12 -in client.p12 -out client.pem -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
-+ @[ -f client.pem ] || $(OPENSSL) pkcs12 -in client.p12 -out client.pem -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
- chmod g+r client.pem
- cp client.pem $(USER_NAME).pem
-
-@@ -139,18 +139,18 @@ client.vrfy: ca.pem client.pem
- #
- ######################################################################
- inner-server.csr inner-server.key: inner-server.cnf
-- $(OPENSSL) req -new -out inner-server.csr -keyout inner-server.key -config ./inner-server.cnf
-+ @[ -f inner-server.csr] || $(OPENSSL) req -new -out inner-server.csr -keyout inner-server.key -config ./inner-server.cnf
- chmod g+r inner-server.key
-
- inner-server.crt: inner-server.csr ca.key ca.pem
-- $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in inner-server.csr -key $(PASSWORD_CA) -out inner-server.crt -extensions xpserver_ext -extfile xpextensions -config ./inner-server.cnf
-+ @[ -f inner-server.crt ] || $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in inner-server.csr -key $(PASSWORD_CA) -out inner-server.crt -extensions xpserver_ext -extfile xpextensions -config ./inner-server.cnf
-
- inner-server.p12: inner-server.crt
-- $(OPENSSL) pkcs12 -export -in inner-server.crt -inkey inner-server.key -out inner-server.p12 -passin pass:$(PASSWORD_INNER) -passout pass:$(PASSWORD_INNER)
-+ @[ -f inner-server.p12 ] || $(OPENSSL) pkcs12 -export -in inner-server.crt -inkey inner-server.key -out inner-server.p12 -passin pass:$(PASSWORD_INNER) -passout pass:$(PASSWORD_INNER)
- chmod g+r inner-server.p12
-
- inner-server.pem: inner-server.p12
-- $(OPENSSL) pkcs12 -in inner-server.p12 -out inner-server.pem -passin pass:$(PASSWORD_INNER) -passout pass:$(PASSWORD_INNER)
-+ @[ -f inner-server.pem ] || $(OPENSSL) pkcs12 -in inner-server.p12 -out inner-server.pem -passin pass:$(PASSWORD_INNER) -passout pass:$(PASSWORD_INNER)
- chmod g+r inner-server.pem
-
- .PHONY: inner-server.vrfy
---
-2.26.2
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch b/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch
deleted file mode 100644
index db8caab12e..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 66e8bcdcca8971b5c43c31755d56d7f675d8b5ff Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Jun 2017 20:10:49 -0700
-Subject: [PATCH] rlm_mschap: Use includedir instead of hardcoding /usr/include
-
-OE QA flags it correctly as a voilation of cross compilation
-namespace
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/modules/rlm_mschap/configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: freeradius-server-3.0.14/src/modules/rlm_mschap/configure.ac
-===================================================================
---- freeradius-server-3.0.14.orig/src/modules/rlm_mschap/configure.ac
-+++ freeradius-server-3.0.14/src/modules/rlm_mschap/configure.ac
-@@ -72,7 +72,7 @@ if test x$with_[]modname != xno; then
- mod_ldflags="-framework DirectoryService"
- fi
-
-- smart_try_dir="$winbind_include_dir /usr/include/samba-4.0"
-+ smart_try_dir="$winbind_include_dir =/usr/include/samba-4.0"
- FR_SMART_CHECK_INCLUDE(wbclient.h, [#include <stdint.h>
- #include <stdbool.h>])
- if test "x$ac_cv_header_wbclient_h" != "xyes"; then
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0001-version.c-don-t-print-build-flags.patch b/meta-networking/recipes-connectivity/freeradius/files/0001-version.c-don-t-print-build-flags.patch
deleted file mode 100644
index 697205efe0..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/0001-version.c-don-t-print-build-flags.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From cbc64dcf6aa2a1be63f45ea6dd7d2c49b70a0bee Mon Sep 17 00:00:00 2001
-From: Mingli Yu <mingli.yu@windriver.com>
-Date: Wed, 3 Aug 2022 16:44:29 +0800
-Subject: [PATCH] version.c: don't print build flags
-
-Don't print the build flags to avoid collecting the build environment info.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- src/main/version.c | 13 -------------
- 1 file changed, 13 deletions(-)
-
-diff --git a/src/main/version.c b/src/main/version.c
-index 62972d9f53..cf81de72c9 100644
---- a/src/main/version.c
-+++ b/src/main/version.c
-@@ -589,19 +589,6 @@ void version_print(void)
- DEBUG2(" unknown");
- #endif
-
-- DEBUG2("Compilation flags:");
--#ifdef BUILT_WITH_CPPFLAGS
-- DEBUG2(" cppflags : " BUILT_WITH_CPPFLAGS);
--#endif
--#ifdef BUILT_WITH_CFLAGS
-- DEBUG2(" cflags : " BUILT_WITH_CFLAGS);
--#endif
--#ifdef BUILT_WITH_LDFLAGS
-- DEBUG2(" ldflags : " BUILT_WITH_LDFLAGS);
--#endif
--#ifdef BUILT_WITH_LIBS
-- DEBUG2(" libs : " BUILT_WITH_LIBS);
--#endif
- DEBUG2(" ");
- }
- INFO("FreeRADIUS Version " RADIUSD_VERSION_STRING);
---
-2.25.1
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0001-workaround-error-with-autoconf-2.7.patch b/meta-networking/recipes-connectivity/freeradius/files/0001-workaround-error-with-autoconf-2.7.patch
deleted file mode 100644
index 80c571df98..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/0001-workaround-error-with-autoconf-2.7.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 3b4ba29c7c5800df87eecd65214244619e01162b Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Sun, 7 Feb 2021 16:02:36 +0800
-Subject: [PATCH] workaround error with autoconf 2.7
-
-While using autoconf 2.7, the AM_MISSING_PROG caused unexpected error:
-...
-configure.ac: error: required file 'missing' not found
-...
-
-Since these tools were explicitly added by autotools bbclass,
-remove the testing to workaround the error with autoconf 2.7
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 8 --------
- 1 file changed, 8 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 609efb104b..2d761cf62c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -693,14 +693,6 @@ fi
-
- AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
-
--dnl #
--dnl # FIXME This is truly gross.
--dnl #
--missing_dir=`cd $ac_aux_dir && pwd`
--AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
--AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
--AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
--
- AC_PATH_PROG(LOCATE,locate)
- AC_PATH_PROG(DIRNAME,dirname)
- AC_PATH_PROG(GREP,grep)
---
-2.27.0
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0002-Enable-and-change-user-and-group-of-freeradius-serve.patch b/meta-networking/recipes-connectivity/freeradius/files/0002-Enable-and-change-user-and-group-of-freeradius-serve.patch
new file mode 100644
index 0000000000..c57ee93c33
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0002-Enable-and-change-user-and-group-of-freeradius-serve.patch
@@ -0,0 +1,32 @@
+From 2a74c10836c0d2d19248ca40d113936f4a56b039 Mon Sep 17 00:00:00 2001
+From: "Roy.Li" <rongqing.li@windriver.com>
+Date: Sun, 8 Jan 2023 22:47:11 +0800
+Subject: [PATCH] Enable and change user and group of freeradius server to
+ radiusd
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Roy.Li <rongqing.li@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ raddb/radiusd.conf.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/raddb/radiusd.conf.in b/raddb/radiusd.conf.in
+index 154b50d610..4594d6d2d2 100644
+--- a/raddb/radiusd.conf.in
++++ b/raddb/radiusd.conf.in
+@@ -557,8 +557,8 @@ security {
+ # member. This can allow for some finer-grained access
+ # controls.
+ #
+-# user = radius
+-# group = radius
++ user = radiusd
++ group = radiusd
+
+ # Core dumps are a bad thing. This should only be set to
+ # 'yes' if you're debugging a problem with the server.
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0003-configure.ac-allow-cross-compilation.patch b/meta-networking/recipes-connectivity/freeradius/files/0003-configure.ac-allow-cross-compilation.patch
new file mode 100644
index 0000000000..3635412d3b
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0003-configure.ac-allow-cross-compilation.patch
@@ -0,0 +1,39 @@
+From ba1390a80662ff2ab7bfda978cde7df9a871f6ae Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 15:03:39 +0800
+Subject: [PATCH] configure.ac: allow cross-compilation
+
+The checking OpenSSL library and header version consistency will
+always fail in cross compiling, skip the check and give a warning
+instead for cross compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+Update to new version 3.0.17 to fix patch warning
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Rebased for 3.2.3
+Signed-off-by: Randy MacLeod <randy.macleod@windriver.com>
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+
+---
+ src/modules/rlm_krb5/configure.ac | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/modules/rlm_krb5/configure.ac b/src/modules/rlm_krb5/configure.ac
+index 9ee6379ea4..1dad481da8 100644
+--- a/src/modules/rlm_krb5/configure.ac
++++ b/src/modules/rlm_krb5/configure.ac
+@@ -143,7 +143,8 @@ if test "$krb5threadsafe" != "no"; then
+ FR_SMART_CHECK_LIB(krb5, krb5_is_thread_safe)
+ if test "x$ac_cv_lib_krb5_krb5_is_thread_safe" = xyes; then
+ AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <krb5.h>]], [[return krb5_is_thread_safe() ? 0 : 1]])],
+- [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])])
++ [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])],
++ [AC_MSG_WARN(cross compiling: not checking)])
+ fi
+ else
+ krb5threadsafe=""
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0004-Fix-libtool-detection.patch b/meta-networking/recipes-connectivity/freeradius/files/0004-Fix-libtool-detection.patch
new file mode 100644
index 0000000000..479e1ba76f
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0004-Fix-libtool-detection.patch
@@ -0,0 +1,71 @@
+From 5ba3d140842268cbbdd983266efecb1fba5bdd59 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 22 Aug 2019 10:45:46 +0800
+Subject: [PATCH] Fix libtool detection
+
+Use LT_INIT instead of the deprecated AC_PROG_LIBTOOL to detect libtool, so it
+can work with our libtoolize and libtool.
+
+Simplify the detection of ltdl. It will find the ltdl from the sysroot; the
+switch --with-system-libltdl is no longer needed. The code is copied from
+pulseaudio configure.ac, together with the comment paragraph.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ configure.ac | 36 ++++++++++++++++++++++++++++++++++++
+ 1 file changed, 36 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index ad8bc8cdda..ef8fced680 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -321,6 +321,42 @@ dnl # See if we have Git.
+ dnl #
+ AC_CHECK_PROG(GIT, git, yes, no)
+
++#### libtool stuff ####
++
++dnl set this shit so it doesn't force CFLAGS...
++LTCFLAGS=" "
++
++LT_PREREQ(2.2)
++LT_INIT([dlopen disable-static])
++
++dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
++dnl exactly which version of libltdl is present in the system, so we
++dnl just assume that it's a working version as long as we have the
++dnl library and the header files.
++dnl
++dnl As an extra safety device, check for lt_dladvise_init() which is
++dnl only implemented in libtool 2.x, and refine as we go if we have
++dnl refined requirements.
++dnl
++dnl Check the header files first since the system may have a
++dnl libltdl.so for runtime, but no headers, and we want to bail out as
++dnl soon as possible.
++dnl
++dnl We don't need any special variable for this though, since the user
++dnl can give the proper place to find libltdl through the standard
++dnl variables like LDFLAGS and CPPFLAGS.
++
++AC_CHECK_HEADER([ltdl.h],
++ [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
++ [LIBLTDL=])
++
++AS_IF([test "x$LIBLTDL" = "x"],
++ [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
++AC_SUBST([LIBLTDL])
++LTDL_SUBDIRS=
++INCLTDL=-DWITH_SYSTEM_LTDL
++AC_SUBST(LTDL_SUBDIRS)
++
+ dnl Put this in later, when all distributed modules use autoconf.
+ dnl AC_ARG_WITH(disablemodulefoo,
+ dnl [ --without-rlm_foo Disables module compilation. Module list:]
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0005-configure.ac-add-option-for-libcap.patch b/meta-networking/recipes-connectivity/freeradius/files/0005-configure.ac-add-option-for-libcap.patch
new file mode 100644
index 0000000000..8ef3c4bdf9
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0005-configure.ac-add-option-for-libcap.patch
@@ -0,0 +1,70 @@
+From 9548dc5e1a6c835cd4f387ba384d8f3f14c3fc8b Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 22 Aug 2019 10:50:21 +0800
+Subject: [PATCH] configure.ac: add option for libcap
+
+Upstream-Status: Pending
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ configure.ac | 36 +++++++++++++++++++++++++++---------
+ 1 file changed, 27 insertions(+), 9 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index ef8fced680..263098f7fd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1161,6 +1161,22 @@ fi
+ dnl Set by FR_SMART_CHECKLIB
+ LIBS="${old_LIBS}"
+
++dnl #
++dnl # extra argument: --with-libcap
++dnl #
++WITH_LIBCAP=yes
++AC_ARG_WITH(libcap,
++[ --with-licap use licap for debugger checks. (default=yes)],
++[ case "$withval" in
++ no)
++ WITH_LIBCAP=no
++ ;;
++ *)
++ WITH_LIBCAP=yes
++ ;;
++ esac ]
++)
++
+ dnl Check for cap
+ dnl extra argument: --with-cap-lib-dir=DIR
+ cap_lib_dir=
+@@ -1194,15 +1210,17 @@ AC_ARG_WITH(cap-include-dir,
+ ;;
+ esac])
+
+-smart_try_dir="$cap_lib_dir"
+-FR_SMART_CHECK_LIB(cap, cap_get_proc)
+-if test "x$ac_cv_lib_cap_cap_get_proc" != "xyes"; then
+- AC_MSG_WARN([cap library not found, debugger checks will not be enabled. Use --with-cap-lib-dir=<path>.])
+-else
+- AC_DEFINE(HAVE_LIBCAP, 1,
+- [Define to 1 if you have the `cap' library (-lcap).]
+- )
+- HAVE_LIBCAP=1
++if test "x$WITH_LIBCAP" = xyes; then
++ smart_try_dir="$cap_lib_dir"
++ FR_SMART_CHECK_LIB(cap, cap_get_proc)
++ if test "x$ac_cv_lib_cap_cap_get_proc" != "xyes"; then
++ AC_MSG_WARN([cap library not found, debugger checks will not be enabled. Use --with-cap-lib-dir=<path>.])
++ else
++ AC_DEFINE(HAVE_LIBCAP, 1,
++ [Define to 1 if you have the `cap' library (-lcap).]
++ )
++ HAVE_LIBCAP=1
++ fi
+ fi
+
+ dnl #
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0006-Avoid-searching-host-dirs.patch b/meta-networking/recipes-connectivity/freeradius/files/0006-Avoid-searching-host-dirs.patch
new file mode 100644
index 0000000000..510136da1f
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0006-Avoid-searching-host-dirs.patch
@@ -0,0 +1,223 @@
+From 8fe25b30b6fbb3170705f4468eb4c92eef3a968f Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Mon, 4 Jan 2016 01:44:04 -0500
+Subject: [PATCH] Avoid searching host dirs
+
+Don't search the hardcoded host dirs to avoid
+host contamination.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+Rebased for 3.2.3
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ m4/fr_smart_check_include.m4 | 2 +-
+ m4/fr_smart_check_lib.m4 | 22 ----------------------
+ src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac | 4 ++--
+ src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac | 4 ++--
+ src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac | 4 ++--
+ src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac | 6 +++---
+ src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac | 2 +-
+ src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac | 4 ++--
+ src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac | 4 ++--
+ 9 files changed, 15 insertions(+), 37 deletions(-)
+
+diff --git a/m4/fr_smart_check_include.m4 b/m4/fr_smart_check_include.m4
+index e7d4443f9c..2b69704f98 100644
+--- a/m4/fr_smart_check_include.m4
++++ b/m4/fr_smart_check_include.m4
+@@ -9,7 +9,7 @@ ac_safe=`echo "$1" | sed 'y%./+-%__pm%'`
+ old_CPPFLAGS="$CPPFLAGS"
+ smart_include=
+ dnl # The default directories we search in (in addition to the compilers search path)
+-smart_include_dir="/usr/local/include /opt/include"
++smart_include_dir=""
+
+ dnl # Our local versions
+ _smart_try_dir=
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac
+index 0d94ee9bf6..6108e62054 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac
+@@ -58,14 +58,14 @@ AC_ARG_WITH(ibmdb2-dir,
+ esac])
+
+ dnl Check for SQLConnect in -ldb2
+-smart_try_dir="$ibmdb2_lib_dir /usr/local/db2/lib /usr/IBMdb2/V7.1/lib"
++smart_try_dir="$ibmdb2_lib_dir"
+ FR_SMART_CHECK_LIB(db2, SQLConnect)
+ if test "x$ac_cv_lib_db2_SQLConnect" != xyes; then
+ FR_MODULE_FAIL([libdb2])
+ fi
+
+ dnl Check for sqlcli.h
+-smart_try_dir="$ibmdb2_include_dir /usr/local/db2/include /usr/IBMdb2/V7.1/include"
++smart_try_dir="$ibmdb2_include_dir"
+ FR_SMART_CHECK_INCLUDE(sqlcli.h)
+ if test "x$ac_cv_header_sqlcli_h" != xyes; then
+ FR_MODULE_FAIL([sqlcli.h])
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac
+index 5aa7b4b6ee..2eda5b6cc5 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac
+@@ -58,14 +58,14 @@ AC_ARG_WITH(firebird-dir,
+ esac])
+
+ dnl Check for isc_attach_database in -lfbclient
+-smart_try_dir="$firebird_lib_dir /usr/lib/firebird2/lib /usr/local/firebird/lib"
++smart_try_dir="$firebird_lib_dir"
+ FR_SMART_CHECK_LIB(fbclient, isc_attach_database)
+ if test "x$ac_cv_lib_fbclient_isc_attach_database" != xyes; then
+ FR_MODULE_FAIL([libfbclient])
+ fi
+
+ dnl Check for ibase.h
+-smart_try_dir="$firebird_include_dir /usr/lib/firebird2/include /usr/local/firebird/include"
++smart_try_dir="$firebird_include_dir"
+ FR_SMART_CHECK_INCLUDE(ibase.h)
+ if test "x$ac_cv_header_ibase_h" != xyes; then
+ FR_MODULE_FAIL([ibase.h])
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac
+index d96216aca8..88cbc469f7 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac
+@@ -58,14 +58,14 @@ AC_ARG_WITH(iodbc-dir,
+ esac])
+
+ dnl Check for SQLConnect in -liodbc
+-smart_try_dir="$iodbc_lib_dir /usr/lib /usr/lib/iodbc /usr/local/lib/iodbc /usr/local/iodbc/lib/iodbc"
++smart_try_dir="$iodbc_lib_dir"
+ FR_SMART_CHECK_LIB(iodbc, SQLConnect)
+ if test "x$ac_cv_lib_iodbc_SQLConnect" != xyes; then
+ FR_MODULE_FAIL([libiodbc])
+ fi
+
+ dnl Check for isql.h
+-smart_try_dir="$iodbc_include_dir /usr/include /usr/include/iodbc /usr/local/iodbc/include"
++smart_try_dir="$iodbc_include_dir"
+ FR_SMART_CHECK_INCLUDE(isql.h)
+ if test "x$ac_cv_header_isql_h" != xyes; then
+ FR_MODULE_FAIL([isql.h])
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac
+index d36aecbda6..201a623d4e 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac
+@@ -138,7 +138,7 @@ fi
+
+ dnl # Check for libmysqlclient_r
+ if test "x$have_a_libmysqlclient" != "xyes"; then
+- smart_try_dir="$mysql_lib_dir /usr/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql/lib/mysql"
++ smart_try_dir="$mysql_lib_dir"
+ FR_SMART_CHECK_LIB(mysqlclient_r, mysql_init)
+ if test "x$ac_cv_lib_mysqlclient_r_mysql_init" = "xyes"; then
+ have_a_libmysqlclient='yes'
+@@ -147,7 +147,7 @@ fi
+
+ dnl # Check for libmysqlclient
+ if test "x$have_a_libmysqlclient" != "xyes"; then
+- smart_try_dir="$mysql_lib_dir /usr/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql/lib/mysql"
++ smart_try_dir="$mysql_lib_dir"
+ FR_SMART_CHECK_LIB(mysqlclient, mysql_init)
+ if test "x$ac_cv_lib_mysqlclient_mysql_init" = "xyes"; then
+ have_a_libmysqlclient='yes'
+@@ -242,7 +242,7 @@ if test "x$have_mysql_h" != "xyes"; then
+ fi
+
+ if test "x$have_mysql_h" != "xyes"; then
+- smart_try_dir="$mysql_include_dir /usr/local/include /usr/local/mysql/include"
++ smart_try_dir="$mysql_include_dir"
+ FR_SMART_CHECK_INCLUDE(mysql/mysql.h)
+ if test "x$ac_cv_header_mysql_mysql_h" = "xyes"; then
+ AC_DEFINE(HAVE_MYSQL_MYSQL_H, [], [Define if you have <mysql/mysql.h>])
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac
+index f31b7d2c5a..67bbf66df5 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac
+@@ -66,7 +66,7 @@ dnl ############################################################
+ dnl # Check for header files
+ dnl ############################################################
+
+-smart_try_dir="$oracle_include_dir /usr/local/instaclient/include"
++smart_try_dir="$oracle_include_dir"
+
+ if test "x$ORACLE_HOME" != "x"; then
+ smart_try_dir="${smart_try_dir} ${ORACLE_HOME}/include"
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac
+index 46587e4099..b41c51bda7 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac
+@@ -43,7 +43,7 @@ AC_ARG_WITH(rlm-sql-postgresql-include-dir,
+ ;;
+ esac])
+
+-smart_try_dir="$rlm_sql_postgresql_include_dir /usr/include/postgresql /usr/local/pgsql/include /usr/include/pgsql"
++smart_try_dir="$rlm_sql_postgresql_include_dir"
+ FR_SMART_CHECK_INCLUDE(libpq-fe.h)
+ if test "x$ac_cv_header_libpqmfe_h" != "xyes"; then
+ FR_MODULE_FAIL([libpq-fe.h])
+@@ -95,7 +95,7 @@ else
+ ])
+ fi
+
+-smart_try_dir="$rlm_sql_postgresql_lib_dir /usr/lib /usr/local/pgsql/lib"
++smart_try_dir="$rlm_sql_postgresql_lib_dir"
+ FR_SMART_CHECK_LIB(pq, PQconnectdb)
+ if test "x$ac_cv_lib_pq_PQconnectdb" != "xyes"; then
+ FR_MODULE_FAIL([libpq])
+diff --git a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac
+index 3bdfae6032..ce68c312c6 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac
+@@ -58,14 +58,14 @@ AC_ARG_WITH(unixodbc-dir,
+ esac])
+
+ dnl Check for SQLConnect in -lodbc
+-smart_try_dir="$unixodbc_lib_dir /usr/local/unixodbc/lib"
++smart_try_dir="$unixodbc_lib_dir"
+ FR_SMART_CHECK_LIB(odbc, SQLConnect)
+ if test "x$ac_cv_lib_odbc_SQLConnect" != xyes; then
+ FR_MODULE_FAIL([libodbc])
+ fi
+
+ dnl Check for sql.h
+-smart_try_dir="$unixodbc_include_dir /usr/local/unixodbc/include"
++smart_try_dir="$unixodbc_include_dir"
+ FR_SMART_CHECK_INCLUDE(sql.h)
+ if test "x$ac_cv_header_sql_h" != xyes; then
+ FR_MODULE_FAIL([sql.h])
+diff --git a/m4/fr_smart_check_lib.m4 b/m4/fr_smart_check_lib.m4
+index 16ac5b3c5e..0f5e9fc6d6 100644
+--- a/m4/fr_smart_check_lib.m4
++++ b/m4/fr_smart_check_lib.m4
+@@ -64,28 +64,6 @@ if test "x$smart_lib" = "x"; then
+ LIBS="$old_LIBS"
+ fi
+
+-dnl #
+-dnl # Try to guess possible locations.
+-dnl #
+-if test "x$smart_lib" = "x"; then
+- for try in /usr/local/lib /opt/lib; do
+- AC_MSG_CHECKING([for $2 in -l$1 in $try])
+- LIBS="-l$1 $old_LIBS"
+- CPPFLAGS="-L$try -Wl,-rpath,$try $old_CPPFLAGS"
+- AC_TRY_LINK([extern char $2();],
+- [$2()],
+- [
+- smart_lib="-l$1"
+- smart_ldflags="-L$try -Wl,-rpath,$try"
+- AC_MSG_RESULT(yes)
+- break
+- ],
+- [AC_MSG_RESULT(no)])
+- done
+- LIBS="$old_LIBS"
+- CPPFLAGS="$old_CPPFLAGS"
+-fi
+-
+ dnl #
+ dnl # Found it, set the appropriate variable.
+ dnl #
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch b/meta-networking/recipes-connectivity/freeradius/files/0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch
new file mode 100644
index 0000000000..78259d7d74
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch
@@ -0,0 +1,30 @@
+From e4ff7a2a9834e2589bc7bdda4b74f5bc962b15e6 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Wed, 27 Jan 2016 05:07:19 -0500
+Subject: [PATCH] rlm_python: add PY_INC_DIR in search dir
+
+configure option --with-rlm-python-include-dir is used to set
+PY_INC_DIR which is never used and it fails to find Python.h,
+so add it into search dir to fix it.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ src/modules/rlm_python/configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/modules/rlm_python/configure.ac b/src/modules/rlm_python/configure.ac
+index c79c327064..5f4d274990 100644
+--- a/src/modules/rlm_python/configure.ac
++++ b/src/modules/rlm_python/configure.ac
+@@ -103,7 +103,7 @@ FR_MODULE_TEST_PASS_DO([
+
+ old_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $PY_CFLAGS"
+- smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION"
++ smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION $PY_INC_DIR"
+ FR_SMART_CHECK_INCLUDE(Python.h)
+ CFLAGS=$old_CFLAGS
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0008-libtool-do-not-use-jlibtool.patch b/meta-networking/recipes-connectivity/freeradius/files/0008-libtool-do-not-use-jlibtool.patch
new file mode 100644
index 0000000000..559b857b63
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0008-libtool-do-not-use-jlibtool.patch
@@ -0,0 +1,160 @@
+From d0fa5b259c2dc942d0a43a9cf1bfc32f40c184f9 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 7 Jan 2016 22:37:30 -0800
+Subject: [PATCH] libtool: do not use jlibtool
+
+jlibtool is hardcoded to be used but we need to use
+our libtool, so fix the makfiles to make it compatible
+with our libtool.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ Make.inc.in | 4 ++--
+ scripts/boiler.mk | 2 ++
+ scripts/install.mk | 14 +++++++-------
+ scripts/libtool.mk | 22 ++++++++++++++++------
+ 4 files changed, 27 insertions(+), 15 deletions(-)
+
+diff --git a/Make.inc.in b/Make.inc.in
+index 05f82776ff..e78f3fe9dc 100644
+--- a/Make.inc.in
++++ b/Make.inc.in
+@@ -57,7 +57,7 @@ CPPFLAGS = @CPPFLAGS@
+ LIBPREFIX = @LIBPREFIX@
+ EXEEXT = @EXEEXT@
+
+-LIBTOOL = JLIBTOOL
++LIBTOOL = @LIBTOOL@
+ ACLOCAL = @ACLOCAL@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+@@ -168,7 +168,7 @@ ANALYZE.c := @clang_path@
+ #
+ ifeq "$(USE_SHARED_LIBS)" "yes"
+ TESTBINDIR = ./$(BUILD_DIR)/bin/local
+- TESTBIN = FR_LIBRARY_PATH=./build/lib/.libs $(JLIBTOOL) --quiet --mode=execute $(TESTBINDIR)
++ TESTBIN = FR_LIBRARY_PATH=./build/lib/.libs $(LIBTOOL) --quiet --mode=execute $(TESTBINDIR)
+ else
+ TESTBINDIR = ./$(BUILD_DIR)/bin
+ TESTBIN = ./$(BUILD_DIR)/bin
+diff --git a/scripts/boiler.mk b/scripts/boiler.mk
+index 2ce0c18f34..567cc0f22f 100644
+--- a/scripts/boiler.mk
++++ b/scripts/boiler.mk
+@@ -272,6 +272,7 @@ define COMPILE_C_CMDS
+ $(Q)$(ECHO) CC $<
+ $(Q)$(strip ${COMPILE.c} -o $@ -c -MD ${CPPFLAGS} ${CFLAGS} ${SRC_CFLAGS} ${INCDIRS} \
+ $(addprefix -I, ${SRC_INCDIRS}) ${SRC_DEFS} ${DEFS} $<)
++ ${Q}mv $(dir $@)/.libs/$(notdir $*.d) ${BUILD_DIR}/objs/$*.d
+ endef
+ else
+ #
+@@ -287,6 +288,7 @@ define COMPILE_C_CMDS
+ $(Q)cppcheck --enable=style -q ${CHECKFLAGS} $(filter -isystem%,${SRC_CFLAGS}) \
+ $(filter -I%,${SRC_CFLAGS}) $(filter -D%,${SRC_CFLAGS}) ${INCDIRS} \
+ $(addprefix -I,${SRC_INCDIRS}) ${SRC_DEFS} ${DEFS} --suppress=variableScope --suppress=invalidscanf $<
++ ${Q}mv $(dir $@)/.libs/$(notdir $*.d) ${BUILD_DIR}/objs/$*.d
+ endef
+ endif
+
+diff --git a/scripts/install.mk b/scripts/install.mk
+index 916411563b..e38c1ed697 100644
+--- a/scripts/install.mk
++++ b/scripts/install.mk
+@@ -46,7 +46,7 @@ define ADD_INSTALL_RULE.exe
+ install: $${${1}_INSTALLDIR}/$(notdir ${1})
+
+ # Install executable ${1}
+- $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
++ $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
+ @$(ECHO) INSTALL ${1}
+ $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/bin/${1} $${${1}_INSTALLDIR}/
+ $(Q)$${${1}_POSTINSTALL}
+@@ -65,7 +65,7 @@ define ADD_INSTALL_RULE.a
+ install: $${${1}_INSTALLDIR}/$(notdir ${1})
+
+ # Install static library ${1}
+- $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} ${1} | $${${1}_INSTALLDIR}
++ $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} ${1} | $${${1}_INSTALLDIR}
+ @$(ECHO) INSTALL ${1}
+ $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/
+ $(Q)$${${1}_POSTINSTALL}
+@@ -87,9 +87,9 @@ define ADD_INSTALL_RULE.la
+ install: $${${1}_INSTALLDIR}/$(notdir ${1})
+
+ # Install libtool library ${1}
+- $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
++ $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
+ @$(ECHO) INSTALL ${1}
+- $(Q)$${PROGRAM_INSTALL} -c -m 755 $${LOCAL_FLAGS_MIN} $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/
++ $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/
+ $(Q)$${${1}_POSTINSTALL}
+
+ endef
+@@ -107,7 +107,7 @@ define ADD_INSTALL_RULE.man
+ install: ${2}/$(notdir ${1})
+
+ # Install manual page ${1}
+- ${2}/$(notdir ${1}): ${JLIBTOOL} ${1} | ${2}
++ ${2}/$(notdir ${1}): ${LIBTOOL} ${1} | ${2}
+ @$(ECHO) INSTALL $(notdir ${1})
+ $(Q)$${PROGRAM_INSTALL} -c -m 644 ${1} ${2}/
+
+@@ -122,9 +122,9 @@ endef
+ define ADD_INSTALL_RULE.dir
+ # Install directory
+ .PHONY: ${1}
+- ${1}: ${JLIBTOOL}
++ ${1}: ${LIBTOOL}
+ @$(ECHO) INSTALL -d -m 755 ${1}
+- $(Q)$${PROGRAM_INSTALL} -d -m 755 ${1}
++ $(Q)$${INSTALL} -d -m 755 ${1}
+ endef
+
+
+diff --git a/scripts/libtool.mk b/scripts/libtool.mk
+index 381127ec2d..e83d7e6ad7 100644
+--- a/scripts/libtool.mk
++++ b/scripts/libtool.mk
+@@ -60,7 +60,9 @@ ifeq "${LIBTOOL}" "JLIBTOOL"
+ # Tell GNU Make to use this value, rather than anything specified
+ # on the command line.
+ override LIBTOOL := ${JLIBTOOL}
+-endif # else we're not using jlibtool
++else # else we're not using jlibtool
++ all install: ${LIBTOOL}
++endif
+
+ # When using libtool, it produces a '.libs' directory. Ensure that it
+ # is removed on "make clean", too.
+@@ -74,11 +76,19 @@ clean: .libs_clean
+ # Re-define compilers and linkers
+ #
+ OBJ_EXT = lo
+-COMPILE.c = ${LIBTOOL} --silent --mode=compile ${CC}
+-COMPILE.cxx = ${LIBTOOL} --mode=compile ${CXX}
+-LINK.c = ${LIBTOOL} --silent --mode=link ${CC}
+-LINK.cxx = ${LIBTOOL} --mode=link ${CXX}
+-PROGRAM_INSTALL = ${LIBTOOL} --silent --mode=install ${INSTALL}
++ifeq "${LIBTOOL}" "JLIBTOOL"
++ COMPILE.c = ${LIBTOOL} --silent --mode=compile ${CC}
++ COMPILE.cxx = ${LIBTOOL} --mode=compile ${CXX}
++ LINK.c = ${LIBTOOL} --silent --mode=link ${CC}
++ LINK.cxx = ${LIBTOOL} --mode=link ${CXX}
++ PROGRAM_INSTALL = ${LIBTOOL} --silent --mode=install ${INSTALL}
++else
++ COMPILE.c = ${LIBTOOL} --mode=compile --tag=CC ${CC}
++ COMPILE.cxx = ${LIBTOOL} --mode=compile --tag=CC ${CXX}
++ LINK.c = ${LIBTOOL} --mode=link --tag=CC ${CC} -module -export-dynamic
++ LINK.cxx = ${LIBTOOL} --mode=link --tag=CC ${CXX} -module -export-dynamic
++ PROGRAM_INSTALL = ${LIBTOOL} --mode=install ${INSTALL}
++endif
+
+
+ # LIBTOOL_ENDINGS - Given a library ending in ".a" or ".so", replace that
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0009-Fix-quoting-for-BUILD_WITH.patch b/meta-networking/recipes-connectivity/freeradius/files/0009-Fix-quoting-for-BUILD_WITH.patch
new file mode 100644
index 0000000000..9386675e46
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0009-Fix-quoting-for-BUILD_WITH.patch
@@ -0,0 +1,58 @@
+From 3e701d6274924adaed568e22af2362aa5af1f055 Mon Sep 17 00:00:00 2001
+From: Peter Seebach <peter.seebach@windriver.com>
+Date: Sun, 8 Jan 2023 23:01:28 +0800
+Subject: [PATCH] Fix quoting for BUILD_WITH
+
+The escaped quotes are to make the -D values produce strings which
+can be used to display these values. However, if the values are more
+than one word, with spaces, they also need shell quoting to make them
+into single words.
+
+Upstream-Status: Pending
+
+Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ src/main/libfreeradius-server.mk | 2 +-
+ src/main/unittest.mk | 2 +-
+ src/modules/rlm_eap/radeapclient.mk | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/main/libfreeradius-server.mk b/src/main/libfreeradius-server.mk
+index 4495f72481..07c28f1968 100644
+--- a/src/main/libfreeradius-server.mk
++++ b/src/main/libfreeradius-server.mk
+@@ -18,5 +18,5 @@ SOURCES := conffile.c \
+ TGT_LDLIBS := $(OPENSSL_LIBS)
+
+ ifneq ($(MAKECMDGOALS),scan)
+-SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\"
++SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILT_WITH_CFLAGS="\"$(CFLAGS)\"" -DBUILT_WITH_LDFLAGS="\"$(LDFLAGS)\"" -DBUILT_WITH_LIBS="\"$(LIBS)\""
+ endif
+diff --git a/src/main/unittest.mk b/src/main/unittest.mk
+index edd4f133a7..b5b44d5e11 100644
+--- a/src/main/unittest.mk
++++ b/src/main/unittest.mk
+@@ -21,5 +21,5 @@ TGT_PREREQS += libfreeradius-eap.a
+ endif
+
+ ifneq ($(MAKECMDGOALS),scan)
+-SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\"
++SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILT_WITH_CFLAGS="\"$(CFLAGS)\"" -DBUILT_WITH_LDFLAGS="\"$(LDFLAGS)\"" -DBUILT_WITH_LIBS="\"$(LIBS)\""
+ endif
+diff --git a/src/modules/rlm_eap/radeapclient.mk b/src/modules/rlm_eap/radeapclient.mk
+index 6068f54813..7d3c55625b 100644
+--- a/src/modules/rlm_eap/radeapclient.mk
++++ b/src/modules/rlm_eap/radeapclient.mk
+@@ -23,7 +23,7 @@ SRC_CFLAGS += -DWITH_EAPCLIENT
+ SRC_INCDIRS := ${top_srcdir}/src/modules/rlm_eap/libeap
+
+ ifneq ($(MAKECMDGOALS),scan)
+-SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\"
++SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILT_WITH_CFLAGS="\"$(CFLAGS)\"" -DBUILT_WITH_LDFLAGS="\"$(LDFLAGS)\"" -DBUILT_WITH_LIBS="\"$(LIBS)\""
+ endif
+
+ endif
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch b/meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch
new file mode 100644
index 0000000000..051b66af8f
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0010-fix-error-for-expansion-of-macro-in-thread.h.patch
@@ -0,0 +1,61 @@
+From 30ce5ccd62446349d432ff65d3fe8d46872423c8 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 18 Jan 2017 14:59:39 +0800
+Subject: [PATCH] fix error for expansion of macro in thread.h
+
+The parameter declaration is missing in expansion of macro
+which cause the build error:
+| In file included from src/freeradius-devel/libradius.h:80:0,
+| from src/lib/log.c:26:
+| src/lib/log.c: In function '__fr_thread_local_destroy_fr_strerror_buffer':
+| src/lib/log.c:37:31: error: 'fr_strerror_buffer' undeclared (first use in this function)
+| fr_thread_local_setup(char *, fr_strerror_buffer) /* macro */
+| ^
+
+Add the missing declaration in macro.
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ src/include/threads.h | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/include/threads.h b/src/include/threads.h
+index e36d81dac0..2bcb6aadcb 100644
+--- a/src/include/threads.h
++++ b/src/include/threads.h
+@@ -89,7 +89,7 @@ static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\
+ # define fr_thread_local_get(_n) _n
+ #elif defined(HAVE_PTHREAD_H)
+ # include <pthread.h>
+-# define fr_thread_local_setup(_t, _n) \
++# define fr_thread_local_setup(_t, _n) static __thread _t _n;\
+ static pthread_key_t __fr_thread_local_key_##_n;\
+ static pthread_once_t __fr_thread_local_once_##_n = PTHREAD_ONCE_INIT;\
+ static pthread_destructor_t __fr_thread_local_destructor_##_n = NULL;\
+@@ -100,17 +100,17 @@ static void __fr_thread_local_destroy_##_n(UNUSED void *unused)\
+ static void __fr_thread_local_key_init_##_n(void)\
+ {\
+ (void) pthread_key_create(&__fr_thread_local_key_##_n, __fr_thread_local_destroy_##_n);\
+- (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
+ }\
+ static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\
+ {\
+ __fr_thread_local_destructor_##_n = func;\
+ if (_n) return _n; \
+ (void) pthread_once(&__fr_thread_local_once_##_n, __fr_thread_local_key_init_##_n);\
++ (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
+ return _n;\
+ }
+-# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f)
+-# define fr_thread_local_set(_n, _v) __fr_thread_local_set_##_n(_v)
+-# define fr_thread_local_get(_n) __fr_thread_local_get_##_n()
++# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f)
++# define fr_thread_local_set(_n, _v) ((int)!((_n = _v) || 1))
++# define fr_thread_local_get(_n) _n
+ #endif
+ #endif
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0011-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch b/meta-networking/recipes-connectivity/freeradius/files/0011-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch
new file mode 100644
index 0000000000..efa5c53c9f
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0011-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch
@@ -0,0 +1,28 @@
+From f0e764826e3a85488047f7f4e94ebf91460d2c12 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 20:10:49 -0700
+Subject: [PATCH] rlm_mschap: Use includedir instead of hardcoding /usr/include
+
+OE QA flags it correctly as a voilation of cross compilation
+namespace
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/modules/rlm_mschap/configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/modules/rlm_mschap/configure.ac b/src/modules/rlm_mschap/configure.ac
+index 953336f475..77a18af55d 100644
+--- a/src/modules/rlm_mschap/configure.ac
++++ b/src/modules/rlm_mschap/configure.ac
+@@ -77,7 +77,7 @@ else
+ FR_MODULE_FEATURE([opendirectory], [without opendirectory support])
+ fi
+
+-smart_try_dir="$winbind_include_dir /usr/include/samba-4.0"
++smart_try_dir="$winbind_include_dir =/usr/include/samba-4.0"
+ FR_SMART_CHECK_INCLUDE(wbclient.h, [#include <stdint.h>
+ #include <stdbool.h>])
+ if test "x$ac_cv_header_wbclient_h" != "xyes"; then
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0012-raddb-certs-Makefile-fix-the-existed-certificate-err.patch b/meta-networking/recipes-connectivity/freeradius/files/0012-raddb-certs-Makefile-fix-the-existed-certificate-err.patch
new file mode 100644
index 0000000000..cbac989284
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0012-raddb-certs-Makefile-fix-the-existed-certificate-err.patch
@@ -0,0 +1,55 @@
+From 0f9f18fc330fe88080be13e43f300fbf7ba4a85a Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 13 Jul 2020 07:01:45 +0000
+Subject: [PATCH] raddb/certs/Makefile: fix the existed certificate error
+
+Fixes:
+ # ./bootstrap
+ [snip]
+openssl ca -batch -keyfile ca.key -cert ca.pem -in client.csr -key 'whatever' -out client.crt -extensions xpclient_ext -extfile xpextensions -config ./client.cnf
+Using configuration from ./client.cnf
+Check that the request matches the signature
+Signature ok
+ERROR:There is already a certificate for /C=FR/ST=Radius/O=Example Inc./CN=user@example.org/emailAddress=user@example.org
+The matching entry has the following details
+Type :Valid
+Expires on :200908024833Z
+Serial Number :02
+File name :unknown
+Subject Name :/C=FR/ST=Radius/O=Example Inc./CN=user@example.org/emailAddress=user@example.org
+make: *** [Makefile:128: client.crt] Error 1
+
+Add the check to fix the above error and it does the same for server.crt.
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ raddb/certs/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/raddb/certs/Makefile b/raddb/certs/Makefile
+index c9fbc9e864..d064fe252d 100644
+--- a/raddb/certs/Makefile
++++ b/raddb/certs/Makefile
+@@ -92,7 +92,7 @@ server.csr server.key: server.cnf
+ chmod g+r server.key
+
+ server.crt: ca.key ca.pem server.csr
+- $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in server.csr -key $(PASSWORD_CA) -out server.crt -extensions xpserver_ext -extfile xpextensions -config ./server.cnf
++ @[ -f server.crt ] || $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in server.csr -key $(PASSWORD_CA) -out server.crt -extensions xpserver_ext -extfile xpextensions -config ./server.cnf
+
+ server.p12: server.crt
+ $(OPENSSL) pkcs12 -export -in server.crt -inkey server.key -out server.p12 -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
+@@ -117,7 +117,7 @@ client.csr client.key: client.cnf
+ chmod g+r client.key
+
+ client.crt: ca.key ca.pem client.csr
+- $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in client.csr -key $(PASSWORD_CA) -out client.crt -extensions xpclient_ext -extfile xpextensions -config ./client.cnf
++ @[ -f client.crt ] || $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in client.csr -key $(PASSWORD_CA) -out client.crt -extensions xpclient_ext -extfile xpextensions -config ./client.cnf
+
+ client.p12: client.crt
+ $(OPENSSL) pkcs12 -export -in client.crt -inkey client.key -out client.p12 -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0013-raddb-certs-Makefile-fix-the-occasional-verification.patch b/meta-networking/recipes-connectivity/freeradius/files/0013-raddb-certs-Makefile-fix-the-occasional-verification.patch
new file mode 100644
index 0000000000..287e47adcc
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0013-raddb-certs-Makefile-fix-the-occasional-verification.patch
@@ -0,0 +1,136 @@
+From bb1cb2ffc7a31c0a2bb2de51ef82d304b0a107c3 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 5 Aug 2020 07:23:11 +0000
+Subject: [PATCH] raddb/certs/Makefile: fix the occasional verification failure
+
+Fixes:
+ # cd /etc/raddb/certs
+ # ./bootstrap
+[snip]
+chmod g+r ca.key
+openssl pkcs12 -in server.p12 -out server.pem -passin pass:'whatever' -passout pass:'whatever'
+chmod g+r server.pem
+C = FR, ST = Radius, O = Example Inc., CN = Example Server Certificate, emailAddress = admin@example.org
+error 7 at 0 depth lookup: certificate signature failure
+140066667427072:error:04067084:rsa routines:rsa_ossl_public_decrypt:data too large for modulus:../openssl-1.1.1g/crypto/rsa/rsa_ossl.c:553:
+140066667427072:error:0D0C5006:asn1 encoding routines:ASN1_item_verify:EVP lib:../openssl-1.1.1g/crypto/asn1/a_verify.c:170:
+error server.pem: verification failed
+make: *** [Makefile:107: server.vrfy] Error 2
+
+It seems the ca.pem mismatchs server.pem which results in failing to
+execute "openssl verify -CAfile ca.pem server.pem", so add to check
+the file to avoid inconsistency.
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ raddb/certs/Makefile | 30 +++++++++++++++---------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/raddb/certs/Makefile b/raddb/certs/Makefile
+index d064fe252d..86f4547804 100644
+--- a/raddb/certs/Makefile
++++ b/raddb/certs/Makefile
+@@ -59,7 +59,7 @@ passwords.mk: server.cnf ca.cnf client.cnf inner-server.cnf
+ #
+ ######################################################################
+ dh:
+- $(OPENSSL) dhparam -out dh -2 $(DH_KEY_SIZE)
++ @[ -f dh ] || $(OPENSSL) dhparam -out dh -2 $(DH_KEY_SIZE)
+
+ ######################################################################
+ #
+@@ -69,17 +69,17 @@ dh:
+ ca.key ca.pem: ca.cnf
+ @[ -f index.txt ] || $(MAKE) index.txt
+ @[ -f serial ] || $(MAKE) serial
+- $(OPENSSL) req -new -x509 -keyout ca.key -out ca.pem \
++ @[ -f ca.pem ] || $(OPENSSL) req -new -x509 -keyout ca.key -out ca.pem \
+ -days $(CA_DEFAULT_DAYS) -config ./ca.cnf \
+ -passin pass:$(PASSWORD_CA) -passout pass:$(PASSWORD_CA)
+ chmod g+r ca.key
+
+ ca.der: ca.pem
+- $(OPENSSL) x509 -inform PEM -outform DER -in ca.pem -out ca.der
++ @[ -f ca.der ] || $(OPENSSL) x509 -inform PEM -outform DER -in ca.pem -out ca.der
+
+ ca.crl: ca.pem
+- $(OPENSSL) ca -gencrl -keyfile ca.key -cert ca.pem -config ./ca.cnf -out ca-crl.pem -key $(PASSWORD_CA)
+- $(OPENSSL) crl -in ca-crl.pem -outform der -out ca.crl
++ @[ -f ca-crl.pem ] || $(OPENSSL) ca -gencrl -keyfile ca.key -cert ca.pem -config ./ca.cnf -out ca-crl.pem -key $(PASSWORD_CA)
++ @[ -f ca.crl ] || $(OPENSSL) crl -in ca-crl.pem -outform der -out ca.crl
+ rm ca-crl.pem
+
+ ######################################################################
+@@ -88,18 +88,18 @@ ca.crl: ca.pem
+ #
+ ######################################################################
+ server.csr server.key: server.cnf
+- $(OPENSSL) req -new -out server.csr -keyout server.key -config ./server.cnf
++ @[ -f server.csr ] || $(OPENSSL) req -new -out server.csr -keyout server.key -config ./server.cnf
+ chmod g+r server.key
+
+ server.crt: ca.key ca.pem server.csr
+ @[ -f server.crt ] || $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in server.csr -key $(PASSWORD_CA) -out server.crt -extensions xpserver_ext -extfile xpextensions -config ./server.cnf
+
+ server.p12: server.crt
+- $(OPENSSL) pkcs12 -export -in server.crt -inkey server.key -out server.p12 -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
++ @[ -f server.p12 ] || $(OPENSSL) pkcs12 -export -in server.crt -inkey server.key -out server.p12 -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
+ chmod g+r server.p12
+
+ server.pem: server.p12
+- $(OPENSSL) pkcs12 -in server.p12 -out server.pem -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
++ @[ -f server.pem ] || $(OPENSSL) pkcs12 -in server.p12 -out server.pem -passin pass:$(PASSWORD_SERVER) -passout pass:$(PASSWORD_SERVER)
+ chmod g+r server.pem
+
+ .PHONY: server.vrfy
+@@ -113,19 +113,19 @@ server.vrfy: ca.pem
+ #
+ ######################################################################
+ client.csr client.key: client.cnf
+- $(OPENSSL) req -new -out client.csr -keyout client.key -config ./client.cnf
++ @[ -f client.csr ] || $(OPENSSL) req -new -out client.csr -keyout client.key -config ./client.cnf
+ chmod g+r client.key
+
+ client.crt: ca.key ca.pem client.csr
+ @[ -f client.crt ] || $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in client.csr -key $(PASSWORD_CA) -out client.crt -extensions xpclient_ext -extfile xpextensions -config ./client.cnf
+
+ client.p12: client.crt
+- $(OPENSSL) pkcs12 -export -in client.crt -inkey client.key -out client.p12 -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
++ @[ -f client.p12 ] || $(OPENSSL) pkcs12 -export -in client.crt -inkey client.key -out client.p12 -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
+ chmod g+r client.p12
+ cp client.p12 $(USER_NAME).p12
+
+ client.pem: client.p12
+- $(OPENSSL) pkcs12 -in client.p12 -out client.pem -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
++ @[ -f client.pem ] || $(OPENSSL) pkcs12 -in client.p12 -out client.pem -passin pass:$(PASSWORD_CLIENT) -passout pass:$(PASSWORD_CLIENT)
+ chmod g+r client.pem
+ cp client.pem $(USER_NAME).pem
+
+@@ -140,18 +140,18 @@ client.vrfy: ca.pem client.pem
+ #
+ ######################################################################
+ inner-server.csr inner-server.key: inner-server.cnf
+- $(OPENSSL) req -new -out inner-server.csr -keyout inner-server.key -config ./inner-server.cnf
++ @[ -f inner-server.csr] || $(OPENSSL) req -new -out inner-server.csr -keyout inner-server.key -config ./inner-server.cnf
+ chmod g+r inner-server.key
+
+ inner-server.crt: ca.key ca.pem inner-server.csr
+- $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in inner-server.csr -key $(PASSWORD_CA) -out inner-server.crt -extensions xpserver_ext -extfile xpextensions -config ./inner-server.cnf
++ @[ -f inner-server.crt ] || $(OPENSSL) ca -batch -keyfile ca.key -cert ca.pem -in inner-server.csr -key $(PASSWORD_CA) -out inner-server.crt -extensions xpserver_ext -extfile xpextensions -config ./inner-server.cnf
+
+ inner-server.p12: inner-server.crt
+- $(OPENSSL) pkcs12 -export -in inner-server.crt -inkey inner-server.key -out inner-server.p12 -passin pass:$(PASSWORD_INNER) -passout pass:$(PASSWORD_INNER)
++ @[ -f inner-server.p12 ] || $(OPENSSL) pkcs12 -export -in inner-server.crt -inkey inner-server.key -out inner-server.p12 -passin pass:$(PASSWORD_INNER) -passout pass:$(PASSWORD_INNER)
+ chmod g+r inner-server.p12
+
+ inner-server.pem: inner-server.p12
+- $(OPENSSL) pkcs12 -in inner-server.p12 -out inner-server.pem -passin pass:$(PASSWORD_INNER) -passout pass:$(PASSWORD_INNER)
++ @[ -f inner-server.pem ] || $(OPENSSL) pkcs12 -in inner-server.p12 -out inner-server.pem -passin pass:$(PASSWORD_INNER) -passout pass:$(PASSWORD_INNER)
+ chmod g+r inner-server.pem
+
+ .PHONY: inner-server.vrfy
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0014-Workaround-error-with-autoconf-2.7.patch b/meta-networking/recipes-connectivity/freeradius/files/0014-Workaround-error-with-autoconf-2.7.patch
new file mode 100644
index 0000000000..17eadc7e59
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0014-Workaround-error-with-autoconf-2.7.patch
@@ -0,0 +1,42 @@
+From c591da4a361496eec93625cf8c4f89bddfedaca7 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Sun, 7 Feb 2021 16:02:36 +0800
+Subject: [PATCH] Workaround error with autoconf 2.7
+
+While using autoconf 2.7, the AM_MISSING_PROG caused unexpected error:
+...
+configure.ac: error: required file 'missing' not found
+...
+
+Since these tools were explicitly added by autotools bbclass,
+remove the testing to workaround the error with autoconf 2.7
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 263098f7fd..fc296832d8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -878,14 +878,6 @@ fi
+
+ AC_PATH_PROG(RUSERS, rusers, /usr/bin/rusers)
+
+-dnl #
+-dnl # FIXME This is truly gross.
+-dnl #
+-missing_dir=`cd $ac_aux_dir && pwd`
+-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
+-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
+-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
+-
+ AC_PATH_PROG(DIRNAME,dirname)
+ AC_PATH_PROG(GREP,grep)
+
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0015-bootstrap-check-commands-of-openssl-exist.patch b/meta-networking/recipes-connectivity/freeradius/files/0015-bootstrap-check-commands-of-openssl-exist.patch
new file mode 100644
index 0000000000..d1d0111607
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0015-bootstrap-check-commands-of-openssl-exist.patch
@@ -0,0 +1,44 @@
+From 78494ea005bd38324953b05176d6eb2c3f55af2c Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Sun, 8 Jan 2023 23:21:24 +0800
+Subject: [PATCH] bootstrap: check commands of openssl exist
+
+It calls openssl commands dhparam and pkcs12 in script bootstrap. These
+commands are configurable based on configure options 'no-dh' and
+'no-des', and may not be provided by openssl. So check existence of
+these commands. If not, abort running of script bootstrap.
+
+1. https://github.com/openssl/openssl/blob/master/apps/build.info#L37
+2. https://github.com/openssl/openssl/blob/master/apps/build.info#L22
+
+Upstream-Status: Denied [https://github.com/FreeRADIUS/freeradius-server/pull/4059]
+ The maintainer commented in the pull that the script could
+ be run on a host which provides these openssl commands.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ raddb/certs/bootstrap | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/raddb/certs/bootstrap b/raddb/certs/bootstrap
+index 57de8cf0d7..4641c71700 100755
+--- a/raddb/certs/bootstrap
++++ b/raddb/certs/bootstrap
+@@ -13,6 +13,14 @@
+ umask 027
+ cd `dirname $0`
+
++# check commands of openssl exist
++for cmd in dhparam pkcs12; do
++ if ! openssl ${cmd} -help >/dev/null 2>&1; then
++ echo "Error: command ${cmd} is not supported by openssl."
++ exit 1
++ fi
++done
++
+ make -h > /dev/null 2>&1
+
+ #
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0016-version.c-don-t-print-build-flags.patch b/meta-networking/recipes-connectivity/freeradius/files/0016-version.c-don-t-print-build-flags.patch
new file mode 100644
index 0000000000..2d67fdef05
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0016-version.c-don-t-print-build-flags.patch
@@ -0,0 +1,41 @@
+From cbbb62ddda5c189c225f96bf6b599b3b3e8c8252 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 3 Aug 2022 16:44:29 +0800
+Subject: [PATCH] version.c: don't print build flags
+
+Don't print the build flags to avoid collecting the build environment info.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ src/main/version.c | 13 -------------
+ 1 file changed, 13 deletions(-)
+
+diff --git a/src/main/version.c b/src/main/version.c
+index f1f1e87810..3ffcbb25a0 100644
+--- a/src/main/version.c
++++ b/src/main/version.c
+@@ -589,19 +589,6 @@ void version_print(void)
+ DEBUG2(" unknown");
+ #endif
+
+- DEBUG2("Compilation flags:");
+-#ifdef BUILT_WITH_CPPFLAGS
+- DEBUG2(" cppflags : " BUILT_WITH_CPPFLAGS);
+-#endif
+-#ifdef BUILT_WITH_CFLAGS
+- DEBUG2(" cflags : " BUILT_WITH_CFLAGS);
+-#endif
+-#ifdef BUILT_WITH_LDFLAGS
+- DEBUG2(" ldflags : " BUILT_WITH_LDFLAGS);
+-#endif
+-#ifdef BUILT_WITH_LIBS
+- DEBUG2(" libs : " BUILT_WITH_LIBS);
+-#endif
+ DEBUG2(" ");
+ }
+ INFO("FreeRADIUS Version " RADIUSD_VERSION_STRING);
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/0017-Add-acinclude.m4-to-include-required-macros.patch b/meta-networking/recipes-connectivity/freeradius/files/0017-Add-acinclude.m4-to-include-required-macros.patch
new file mode 100644
index 0000000000..f5c399e584
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0017-Add-acinclude.m4-to-include-required-macros.patch
@@ -0,0 +1,61 @@
+From 40abff4062d0521cf2b2a8a4660a3d2933f86f9d Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Mon, 1 Apr 2024 09:09:07 +0000
+Subject: [PATCH] Add acinclude.m4 to include required macros
+
+* These micro files are in the m4 directories, but the aclocal didn't
+ add them to aclocal.m4 automatically, so add them to acinclude.m4
+ manually.
+
+* The runlog.m4 is added for python.m4.
+
+Upstream-Status: Inappropriate [OE Specific]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ acinclude.m4 | 8 ++++++++
+ m4/runlog.m4 | 17 +++++++++++++++++
+ 2 files changed, 25 insertions(+)
+ create mode 100644 acinclude.m4
+ create mode 100644 m4/runlog.m4
+
+diff --git a/acinclude.m4 b/acinclude.m4
+new file mode 100644
+index 0000000000..118b7f0e5f
+--- /dev/null
++++ b/acinclude.m4
+@@ -0,0 +1,8 @@
++m4_include([m4/fr_init_module.m4])
++m4_include([m4/ax_with_prog.m4])
++m4_include([m4/runlog.m4])
++m4_include([m4/python.m4])
++m4_include([m4/ax_compare_version.m4])
++m4_include([m4/libcurl_check_config.m4])
++m4_include([m4/ax_ruby_devel.m4])
++m4_include([m4/ax_prog_ruby_version.m4])
+diff --git a/m4/runlog.m4 b/m4/runlog.m4
+new file mode 100644
+index 0000000000..690efc3258
+--- /dev/null
++++ b/m4/runlog.m4
+@@ -0,0 +1,17 @@
++## -*- Autoconf -*-
++# Copyright (C) 2001-2018 Free Software Foundation, Inc.
++#
++# This file is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
++
++# AM_RUN_LOG(COMMAND)
++# -------------------
++# Run COMMAND, save the exit status in ac_status, and log it.
++# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
++AC_DEFUN([AM_RUN_LOG],
++[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
++ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
++ (exit $ac_status); }])
+--
+2.35.5
+
diff --git a/meta-networking/recipes-connectivity/freeradius/files/check-openssl-cmds-in-script-bootstrap.patch b/meta-networking/recipes-connectivity/freeradius/files/check-openssl-cmds-in-script-bootstrap.patch
deleted file mode 100644
index fcadae93a0..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/check-openssl-cmds-in-script-bootstrap.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-bootstrap: check commands of openssl exist
-
-It calls openssl commands dhparam and pkcs12 in script bootstrap. These
-commands are configurable based on configure options 'no-dh' and
-'no-des', and may not be provided by openssl. So check existence of
-these commands. If not, abort running of script bootstrap.
-
-1. https://github.com/openssl/openssl/blob/master/apps/build.info#L37
-2. https://github.com/openssl/openssl/blob/master/apps/build.info#L22
-
-Upstream-Status: Denied [https://github.com/FreeRADIUS/freeradius-server/pull/4059]
- The maintainer commented in the pull that the script could
- be run on a host which provides these openssl commands.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
- raddb/certs/bootstrap | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/raddb/certs/bootstrap b/raddb/certs/bootstrap
-index 0f719aafd4..17feddbeeb 100755
---- a/raddb/certs/bootstrap
-+++ b/raddb/certs/bootstrap
-@@ -13,6 +13,14 @@
- umask 027
- cd `dirname $0`
-
-+# check commands of openssl exist
-+for cmd in dhparam pkcs12; do
-+ if ! openssl ${cmd} -help >/dev/null 2>&1; then
-+ echo "Error: command ${cmd} is not supported by openssl."
-+ exit 1
-+ fi
-+done
-+
- make -h > /dev/null 2>&1
-
- #
diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-avoid-searching-host-dirs.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-avoid-searching-host-dirs.patch
deleted file mode 100644
index 9c997661fc..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-avoid-searching-host-dirs.patch
+++ /dev/null
@@ -1,197 +0,0 @@
-From dc41591d5ceb18900ec85894f8f7b7bb44bb3bd9 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Mon, 4 Jan 2016 01:44:04 -0500
-Subject: [PATCH] avoid searching host dirs
-
-Don't search the hardcoded host dirs to avoid
-host contamination.
-
-Upstream-Status: Inappropriate [cross-compile specific]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- acinclude.m4 | 4 ++--
- src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac | 4 ++--
- src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac | 4 ++--
- src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac | 4 ++--
- src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac | 6 +++---
- src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac | 2 +-
- src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac | 4 ++--
- src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac | 4 ++--
- 8 files changed, 16 insertions(+), 16 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index da48acc..b513ae1 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -178,7 +178,7 @@ if test "x$smart_lib" = "x"; then
- FR_LOCATE_DIR(smart_lib_dir,[lib$1${libltdl_cv_shlibext}])
- FR_LOCATE_DIR(smart_lib_dir,[lib$1.a])
-
-- for try in $smart_lib_dir /usr/local/lib /opt/lib; do
-+ for try in $smart_lib_dir; do
- AC_MSG_CHECKING([for $2 in -l$1 in $try])
- LIBS="-l$1 $old_LIBS"
- CPPFLAGS="-L$try -Wl,-rpath,$try $old_CPPFLAGS"
-@@ -218,7 +218,7 @@ ac_safe=`echo "$1" | sed 'y%./+-%__pm%'`
- old_CPPFLAGS="$CPPFLAGS"
- smart_include=
- dnl # The default directories we search in (in addition to the compilers search path)
--smart_include_dir="/usr/local/include /opt/include"
-+smart_include_dir=
-
- dnl # Our local versions
- _smart_try_dir=
-diff --git a/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac
-index 75c851a..a262d71 100644
---- a/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac
-+++ b/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac
-@@ -57,14 +57,14 @@ if test x$with_[]modname != xno; then
- esac])
-
- dnl Check for SQLConnect in -ldb2
-- smart_try_dir="$ibmdb2_lib_dir /usr/local/db2/lib /usr/IBMdb2/V7.1/lib"
-+ smart_try_dir="$ibmdb2_lib_dir"
- FR_SMART_CHECK_LIB(db2, SQLConnect)
- if test "x$ac_cv_lib_db2_SQLConnect" != xyes; then
- fail="$fail libdb2"
- fi
-
- dnl Check for sqlcli.h
-- smart_try_dir="$ibmdb2_include_dir /usr/local/db2/include /usr/IBMdb2/V7.1/include"
-+ smart_try_dir="$ibmdb2_include_dir"
- FR_SMART_CHECK_INCLUDE(sqlcli.h)
- if test "x$ac_cv_header_sqlcli_h" != xyes; then
- fail="$fail sqlcli.h"
-diff --git a/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac
-index 4da57b3..752b043 100644
---- a/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac
-+++ b/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac
-@@ -56,14 +56,14 @@ if test x$with_[]modname != xno; then
- esac])
-
- dnl Check for isc_attach_database in -lfbclient
-- smart_try_dir="$firebird_lib_dir /usr/lib/firebird2/lib /usr/local/firebird/lib"
-+ smart_try_dir="$firebird_lib_dir"
- FR_SMART_CHECK_LIB(fbclient, isc_attach_database)
- if test "x$ac_cv_lib_fbclient_isc_attach_database" != xyes; then
- fail="$fail libfbclient"
- fi
-
- dnl Check for ibase.h
-- smart_try_dir="$firebird_include_dir /usr/lib/firebird2/include /usr/local/firebird/include"
-+ smart_try_dir="$firebird_include_dir"
- FR_SMART_CHECK_INCLUDE(ibase.h)
- if test "x$ac_cv_header_ibase_h" != xyes; then
- fail="$fail ibase.h"
-diff --git a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac
-index ba6304f..3393557 100644
---- a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac
-+++ b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac
-@@ -57,14 +57,14 @@ if test x$with_[]modname != xno; then
- esac])
-
- dnl Check for SQLConnect in -liodbc
-- smart_try_dir="$iodbc_lib_dir /usr/lib /usr/lib/iodbc /usr/local/lib/iodbc /usr/local/iodbc/lib/iodbc"
-+ smart_try_dir="$iodbc_lib_dir"
- FR_SMART_CHECK_LIB(iodbc, SQLConnect)
- if test "x$ac_cv_lib_iodbc_SQLConnect" != xyes; then
- fail="$fail libiodbc"
- fi
-
- dnl Check for isql.h
-- smart_try_dir="$iodbc_include_dir /usr/include /usr/include/iodbc /usr/local/iodbc/include"
-+ smart_try_dir="$iodbc_include_dir"
- FR_SMART_CHECK_INCLUDE(isql.h)
- if test "x$ac_cv_header_isql_h" != xyes; then
- fail="$fail isql.h"
-diff --git a/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac
-index 1401677..2e7db44 100644
---- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac
-+++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac
-@@ -136,7 +136,7 @@ if test x$with_[]modname != xno; then
-
- dnl # Check for libmysqlclient_r
- if test "x$have_a_libmysqlclient" != "xyes"; then
-- smart_try_dir="$mysql_lib_dir /usr/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql/lib/mysql"
-+ smart_try_dir="$mysql_lib_dir"
- FR_SMART_CHECK_LIB(mysqlclient_r, mysql_init)
- if test "x$ac_cv_lib_mysqlclient_r_mysql_init" = "xyes"; then
- have_a_libmysqlclient='yes'
-@@ -145,7 +145,7 @@ if test x$with_[]modname != xno; then
-
- dnl # Check for libmysqlclient
- if test "x$have_a_libmysqlclient" != "xyes"; then
-- smart_try_dir="$mysql_lib_dir /usr/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql/lib/mysql"
-+ smart_try_dir="$mysql_lib_dir"
- FR_SMART_CHECK_LIB(mysqlclient, mysql_init)
- if test "x$ac_cv_lib_mysqlclient_mysql_init" = "xyes"; then
- have_a_libmysqlclient='yes'
-@@ -189,7 +189,7 @@ if test x$with_[]modname != xno; then
- fi
-
- if test "x$have_mysql_h" != "xyes"; then
-- smart_try_dir="$mysql_include_dir /usr/local/include /usr/local/mysql/include"
-+ smart_try_dir="$mysql_include_dir"
- FR_SMART_CHECK_INCLUDE(mysql/mysql.h)
- if test "x$ac_cv_header_mysql_mysql_h" = "xyes"; then
- AC_DEFINE(HAVE_MYSQL_MYSQL_H, [], [Define if you have <mysql/mysql.h>])
-diff --git a/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac
-index 3178462..5cbc8c2 100644
---- a/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac
-+++ b/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac
-@@ -63,7 +63,7 @@ if test x$with_[]modname != xno; then
- dnl # Check for header files
- dnl ############################################################
-
-- smart_try_dir="$oracle_include_dir /usr/local/instaclient/include"
-+ smart_try_dir="$oracle_include_dir"
-
- if test "x$ORACLE_HOME" != "x"; then
- smart_try_dir="${smart_try_dir} ${ORACLE_HOME}/include"
-diff --git a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac
-index 4f9a890..e1cf811 100644
---- a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac
-+++ b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac
-@@ -41,7 +41,7 @@ if test x$with_[]modname != xno; then
- esac ]
- )
-
-- smart_try_dir="$rlm_sql_postgresql_include_dir /usr/include/postgresql /usr/local/pgsql/include /usr/include/pgsql"
-+ smart_try_dir="$rlm_sql_postgresql_include_dir"
- FR_SMART_CHECK_INCLUDE(libpq-fe.h)
- if test "x$ac_cv_header_libpqmfe_h" != "xyes"; then
- fail="$fail libpq-fe.h"
-@@ -76,7 +76,7 @@ if test x$with_[]modname != xno; then
- ])
- fi
-
-- smart_try_dir="$rlm_sql_postgresql_lib_dir /usr/lib /usr/local/pgsql/lib"
-+ smart_try_dir="$rlm_sql_postgresql_lib_dir"
- FR_SMART_CHECK_LIB(pq, PQconnectdb)
- if test "x$ac_cv_lib_pq_PQconnectdb" != "xyes"; then
- fail="$fail libpq"
-diff --git a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac
-index 3545387..c543ed4 100644
---- a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac
-+++ b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac
-@@ -57,14 +57,14 @@ if test x$with_[]modname != xno; then
- esac])
-
- dnl Check for SQLConnect in -lodbc
-- smart_try_dir="$unixodbc_lib_dir /usr/local/unixodbc/lib"
-+ smart_try_dir="$unixodbc_lib_dir"
- FR_SMART_CHECK_LIB(odbc, SQLConnect)
- if test "x$ac_cv_lib_odbc_SQLConnect" != xyes; then
- fail="$fail libodbc"
- fi
-
- dnl Check for sql.h
-- smart_try_dir="$unixodbc_include_dir /usr/local/unixodbc/include"
-+ smart_try_dir="$unixodbc_include_dir"
- FR_SMART_CHECK_INCLUDE(sql.h)
- if test "x$ac_cv_header_sql_h" != xyes; then
- fail="$fail sql.h"
---
-1.9.1
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-add-option-for-libcap.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-add-option-for-libcap.patch
deleted file mode 100644
index 4719358722..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-add-option-for-libcap.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 98a9eff357959d1113e33a615c2178751d5b2054 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Thu, 22 Aug 2019 10:50:21 +0800
-Subject: [PATCH 2/2] configure.ac: add option for libcap
-
-Upstream-Status: Pending
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- configure.ac | 36 +++++++++++++++++++++++++++---------
- 1 file changed, 27 insertions(+), 9 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 65db61e..6486aac 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -977,6 +977,22 @@ fi
- dnl Set by FR_SMART_CHECKLIB
- LIBS="${old_LIBS}"
-
-+dnl #
-+dnl # extra argument: --with-libcap
-+dnl #
-+WITH_LIBCAP=yes
-+AC_ARG_WITH(libcap,
-+[ --with-licap use licap for debugger checks. (default=yes)],
-+[ case "$withval" in
-+ no)
-+ WITH_LIBCAP=no
-+ ;;
-+ *)
-+ WITH_LIBCAP=yes
-+ ;;
-+ esac ]
-+)
-+
- dnl Check for cap
- dnl extra argument: --with-cap-lib-dir=DIR
- cap_lib_dir=
-@@ -1010,15 +1026,17 @@ AC_ARG_WITH(cap-include-dir,
- ;;
- esac])
-
--smart_try_dir="$cap_lib_dir"
--FR_SMART_CHECK_LIB(cap, cap_get_proc)
--if test "x$ac_cv_lib_cap_cap_get_proc" != "xyes"; then
-- AC_MSG_WARN([cap library not found, debugger checks will not be enabled. Use --with-cap-lib-dir=<path>.])
--else
-- AC_DEFINE(HAVE_LIBCAP, 1,
-- [Define to 1 if you have the `cap' library (-lcap).]
-- )
-- HAVE_LIBCAP=1
-+if test "x$WITH_LIBCAP" = xyes; then
-+ smart_try_dir="$cap_lib_dir"
-+ FR_SMART_CHECK_LIB(cap, cap_get_proc)
-+ if test "x$ac_cv_lib_cap_cap_get_proc" != "xyes"; then
-+ AC_MSG_WARN([cap library not found, debugger checks will not be enabled. Use --with-cap-lib-dir=<path>.])
-+ else
-+ AC_DEFINE(HAVE_LIBCAP, 1,
-+ [Define to 1 if you have the `cap' library (-lcap).]
-+ )
-+ HAVE_LIBCAP=1
-+ fi
- fi
-
- dnl #
---
-2.7.4
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch
deleted file mode 100644
index 38e7c36227..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 0780b7053fb0d33d721aa70ab2ecd75299e5ba31 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Tue, 24 Jul 2018 15:03:39 +0800
-Subject: [PATCH] configure.ac: allow cross-compilation
-
-The checking OpenSSL library and header version consistency will
-always fail in cross compiling, skip the check and give a warning
-instead for cross compiling.
-
-Upstream-Status: Inappropriate[embedded specific]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
-
-update to new version 3.0.17 to fix patch warning
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- src/modules/rlm_krb5/configure.ac | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/modules/rlm_krb5/configure.ac b/src/modules/rlm_krb5/configure.ac
-index efc9f29..98a97e4 100644
---- a/src/modules/rlm_krb5/configure.ac
-+++ b/src/modules/rlm_krb5/configure.ac
-@@ -137,7 +137,8 @@ if test x$with_[]modname != xno; then
- FR_SMART_CHECK_LIB(krb5, krb5_is_thread_safe)
- if test "x$ac_cv_lib_krb5_krb5_is_thread_safe" = xyes; then
- AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <krb5.h>]], [[return krb5_is_thread_safe() ? 0 : 1]])],
-- [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])])
-+ [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])],
-+ [AC_MSG_WARN(cross compiling: not checking)])
- fi
- else
- krb5threadsafe=""
---
-2.7.4
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-enble-user-in-conf.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-enble-user-in-conf.patch
deleted file mode 100644
index 4a62bf1fa2..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-enble-user-in-conf.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Enable and change user and group of freeradius server to radiusd
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Roy.Li <rongqing.li@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- raddb/radiusd.conf.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/raddb/radiusd.conf.in b/raddb/radiusd.conf.in
-index c62f4ff..0b4a84e 100644
---- a/raddb/radiusd.conf.in
-+++ b/raddb/radiusd.conf.in
-@@ -436,8 +436,8 @@ security {
- # member. This can allow for some finer-grained access
- # controls.
- #
--# user = radius
--# group = radius
-+ user = radiusd
-+ group = radiusd
-
- # Core dumps are a bad thing. This should only be set to
- # 'yes' if you're debugging a problem with the server.
---
-1.9.1
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-error-for-expansion-of-macro.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-error-for-expansion-of-macro.patch
deleted file mode 100644
index af1bff051f..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-error-for-expansion-of-macro.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 5b6d8b14f2696fcf1dca119212f9d0a0fa04defd Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Wed, 18 Jan 2017 14:59:39 +0800
-Subject: [PATCH] fix error for expansion of macro in thread.h
-
-The parameter declaration is missing in expansion of macro
-which cause the build error:
-| In file included from src/freeradius-devel/libradius.h:80:0,
-| from src/lib/log.c:26:
-| src/lib/log.c: In function '__fr_thread_local_destroy_fr_strerror_buffer':
-| src/lib/log.c:37:31: error: 'fr_strerror_buffer' undeclared (first use in this function)
-| fr_thread_local_setup(char *, fr_strerror_buffer) /* macro */
-| ^
-
-Add the missing declaration in macro.
-
-Upstream-Status: Pending
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- src/include/threads.h | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/include/threads.h b/src/include/threads.h
-index e36d81d..2bcb6aa 100644
---- a/src/include/threads.h
-+++ b/src/include/threads.h
-@@ -89,7 +89,7 @@ static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\
- # define fr_thread_local_get(_n) _n
- #elif defined(HAVE_PTHREAD_H)
- # include <pthread.h>
--# define fr_thread_local_setup(_t, _n) \
-+# define fr_thread_local_setup(_t, _n) static __thread _t _n;\
- static pthread_key_t __fr_thread_local_key_##_n;\
- static pthread_once_t __fr_thread_local_once_##_n = PTHREAD_ONCE_INIT;\
- static pthread_destructor_t __fr_thread_local_destructor_##_n = NULL;\
-@@ -100,17 +100,17 @@ static void __fr_thread_local_destroy_##_n(UNUSED void *unused)\
- static void __fr_thread_local_key_init_##_n(void)\
- {\
- (void) pthread_key_create(&__fr_thread_local_key_##_n, __fr_thread_local_destroy_##_n);\
-- (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
- }\
- static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\
- {\
- __fr_thread_local_destructor_##_n = func;\
- if (_n) return _n; \
- (void) pthread_once(&__fr_thread_local_once_##_n, __fr_thread_local_key_init_##_n);\
-+ (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
- return _n;\
- }
--# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f)
--# define fr_thread_local_set(_n, _v) __fr_thread_local_set_##_n(_v)
--# define fr_thread_local_get(_n) __fr_thread_local_get_##_n()
-+# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f)
-+# define fr_thread_local_set(_n, _v) ((int)!((_n = _v) || 1))
-+# define fr_thread_local_get(_n) _n
- #endif
- #endif
---
-2.10.2
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-quoting-for-BUILT_WITH.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-quoting-for-BUILT_WITH.patch
deleted file mode 100644
index b0929c4b07..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-quoting-for-BUILT_WITH.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-Fix quoting for BUILD_WITH
-
-The escaped quotes are to make the -D values produce strings which
-can be used to display these values. However, if the values are more
-than one word, with spaces, they also need shell quoting to make them
-into single words.
-
-Upstream-Status: Pending
-
-Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- src/main/libfreeradius-server.mk | 2 +-
- src/main/unittest.mk | 2 +-
- src/modules/rlm_eap/radeapclient.mk | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/main/libfreeradius-server.mk b/src/main/libfreeradius-server.mk
-index 4495f72..07c28f1 100644
---- a/src/main/libfreeradius-server.mk
-+++ b/src/main/libfreeradius-server.mk
-@@ -18,5 +18,5 @@ SOURCES := conffile.c \
- TGT_LDLIBS := $(OPENSSL_LIBS)
-
- ifneq ($(MAKECMDGOALS),scan)
--SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\"
-+SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILT_WITH_CFLAGS="\"$(CFLAGS)\"" -DBUILT_WITH_LDFLAGS="\"$(LDFLAGS)\"" -DBUILT_WITH_LIBS="\"$(LIBS)\""
- endif
-diff --git a/src/main/unittest.mk b/src/main/unittest.mk
-index 09f3938..ed33952 100644
---- a/src/main/unittest.mk
-+++ b/src/main/unittest.mk
-@@ -21,5 +21,5 @@ TGT_PREREQS += libfreeradius-eap.a
- endif
-
- ifneq ($(MAKECMDGOALS),scan)
--SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\"
-+SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILT_WITH_CFLAGS="\"$(CFLAGS)\"" -DBUILT_WITH_LDFLAGS="\"$(LDFLAGS)\"" -DBUILT_WITH_LIBS="\"$(LIBS)\""
- endif
-diff --git a/src/modules/rlm_eap/radeapclient.mk b/src/modules/rlm_eap/radeapclient.mk
-index 6068f54..7d3c556 100644
---- a/src/modules/rlm_eap/radeapclient.mk
-+++ b/src/modules/rlm_eap/radeapclient.mk
-@@ -23,7 +23,7 @@ SRC_CFLAGS += -DWITH_EAPCLIENT
- SRC_INCDIRS := ${top_srcdir}/src/modules/rlm_eap/libeap
-
- ifneq ($(MAKECMDGOALS),scan)
--SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\"
-+SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS="\"$(CPPFLAGS)\"" -DBUILT_WITH_CFLAGS="\"$(CFLAGS)\"" -DBUILT_WITH_LDFLAGS="\"$(LDFLAGS)\"" -DBUILT_WITH_LIBS="\"$(LIBS)\""
- endif
-
- endif
---
-2.10.2
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-detection.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-detection.patch
deleted file mode 100644
index 4265f9d0de..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-detection.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From bfe4d7ed72edc9d4ae1a0f0d2dd84367d6214886 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Thu, 22 Aug 2019 10:45:46 +0800
-Subject: [PATCH 1/2] Fix libtool detection
-
-Upstream-Status: pending
-
-Use LT_INIT instead of the deprecated AC_PROG_LIBTOOL to detect libtool, so it
-can work with our libtoolize and libtool.
-
-Simplify the detection of ltdl. It will find the ltdl from the sysroot; the
-switch --with-system-libltdl is no longer needed. The code is copied from
-pulseaudio configure.ac, together with the comment paragraph.
-
-Also patch autogen.sh so it uses autoreconf, which handles libtoolize better.
-
-Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- autogen.sh | 5 +----
- configure.ac | 36 ++++++++++++++++++++++++++++++++++++
- 2 files changed, 37 insertions(+), 4 deletions(-)
-
-diff --git a/autogen.sh b/autogen.sh
-index a1d08a6..959182b 100755
---- a/autogen.sh
-+++ b/autogen.sh
-@@ -6,10 +6,7 @@ cd $parentdir
- parentdir=`pwd`
- m4include="-I$parentdir -I$parentdir/m4 -Im4"
-
--libtoolize -f -c
--#aclocal
--autoheader
--autoconf
-+autoreconf -Wcross --verbose --install --force
-
- mysubdirs="$mysubdirs `find src/modules/ -name configure -print | sed 's%/configure%%'`"
- mysubdirs=`echo $mysubdirs`
-diff --git a/configure.ac b/configure.ac
-index a7abf00..65db61e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -220,6 +220,42 @@ dnl # See if we have Git.
- dnl #
- AC_CHECK_PROG(GIT, git, yes, no)
-
-+#### libtool stuff ####
-+
-+dnl set this shit so it doesn't force CFLAGS...
-+LTCFLAGS=" "
-+
-+LT_PREREQ(2.2)
-+LT_INIT([dlopen disable-static])
-+
-+dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
-+dnl exactly which version of libltdl is present in the system, so we
-+dnl just assume that it's a working version as long as we have the
-+dnl library and the header files.
-+dnl
-+dnl As an extra safety device, check for lt_dladvise_init() which is
-+dnl only implemented in libtool 2.x, and refine as we go if we have
-+dnl refined requirements.
-+dnl
-+dnl Check the header files first since the system may have a
-+dnl libltdl.so for runtime, but no headers, and we want to bail out as
-+dnl soon as possible.
-+dnl
-+dnl We don't need any special variable for this though, since the user
-+dnl can give the proper place to find libltdl through the standard
-+dnl variables like LDFLAGS and CPPFLAGS.
-+
-+AC_CHECK_HEADER([ltdl.h],
-+ [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
-+ [LIBLTDL=])
-+
-+AS_IF([test "x$LIBLTDL" = "x"],
-+ [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
-+AC_SUBST([LIBLTDL])
-+LTDL_SUBDIRS=
-+INCLTDL=-DWITH_SYSTEM_LTDL
-+AC_SUBST(LTDL_SUBDIRS)
-+
- dnl Put this in later, when all distributed modules use autoconf.
- dnl AC_ARG_WITH(disablemodulefoo,
- dnl [ --without-rlm_foo Disables module compilation. Module list:]
---
-2.7.4
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-do-not-use-jlibtool.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-do-not-use-jlibtool.patch
deleted file mode 100644
index 1954586b2b..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-do-not-use-jlibtool.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-From 16bf899447fc1524ffc3c79e1d35380e5285a552 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Thu, 7 Jan 2016 22:37:30 -0800
-Subject: [PATCH] libtool: do not use jlibtool
-
-jlibtool is hardcoded to be used but we need to use
-our libtool, so fix the makfiles to make it compatible
-with our libtool.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- Make.inc.in | 4 ++--
- scripts/boiler.mk | 2 ++
- scripts/install.mk | 14 +++++++-------
- scripts/libtool.mk | 22 ++++++++++++++++------
- 4 files changed, 27 insertions(+), 15 deletions(-)
-
-diff --git a/Make.inc.in b/Make.inc.in
-index 7a77625..fd8aa3e 100644
---- a/Make.inc.in
-+++ b/Make.inc.in
-@@ -57,7 +57,7 @@ CPPFLAGS = @CPPFLAGS@
- LIBPREFIX = @LIBPREFIX@
- EXEEXT = @EXEEXT@
-
--LIBTOOL = JLIBTOOL
-+LIBTOOL = @LIBTOOL@
- ACLOCAL = @ACLOCAL@
- AUTOCONF = @AUTOCONF@
- AUTOHEADER = @AUTOHEADER@
-@@ -163,7 +163,7 @@ ANALYZE.c := @clang_path@
- #
- ifeq "$(USE_SHARED_LIBS)" "yes"
- TESTBINDIR = ./$(BUILD_DIR)/bin/local
-- TESTBIN = FR_LIBRARY_PATH=./build/lib/.libs $(JLIBTOOL) --quiet --mode=execute $(TESTBINDIR)
-+ TESTBIN = FR_LIBRARY_PATH=./build/lib/.libs $(LIBTOOL) --quiet --mode=execute $(TESTBINDIR)
- else
- TESTBINDIR = ./$(BUILD_DIR)/bin
- TESTBIN = ./$(BUILD_DIR)/bin
-diff --git a/scripts/boiler.mk b/scripts/boiler.mk
-index bccec5e..926a13e 100644
---- a/scripts/boiler.mk
-+++ b/scripts/boiler.mk
-@@ -266,6 +266,7 @@ define COMPILE_C_CMDS
- $(Q)$(ECHO) CC $<
- $(Q)$(strip ${COMPILE.c} -o $@ -c -MD ${CPPFLAGS} ${CFLAGS} ${SRC_CFLAGS} ${INCDIRS} \
- $(addprefix -I, ${SRC_INCDIRS}) ${SRC_DEFS} ${DEFS} $<)
-+ ${Q}mv $(dir $@)/.libs/$(notdir $*.d) ${BUILD_DIR}/objs/$*.d
- endef
- else
- #
-@@ -281,6 +282,7 @@ define COMPILE_C_CMDS
- $(Q)cppcheck --enable=style -q ${CHECKFLAGS} $(filter -isystem%,${SRC_CFLAGS}) \
- $(filter -I%,${SRC_CFLAGS}) $(filter -D%,${SRC_CFLAGS}) ${INCDIRS} \
- $(addprefix -I,${SRC_INCDIRS}) ${SRC_DEFS} ${DEFS} --suppress=variableScope --suppress=invalidscanf $<
-+ ${Q}mv $(dir $@)/.libs/$(notdir $*.d) ${BUILD_DIR}/objs/$*.d
- endef
- endif
-
-diff --git a/scripts/install.mk b/scripts/install.mk
-index 9164115..e38c1ed 100644
---- a/scripts/install.mk
-+++ b/scripts/install.mk
-@@ -46,7 +46,7 @@ define ADD_INSTALL_RULE.exe
- install: $${${1}_INSTALLDIR}/$(notdir ${1})
-
- # Install executable ${1}
-- $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
-+ $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
- @$(ECHO) INSTALL ${1}
- $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/bin/${1} $${${1}_INSTALLDIR}/
- $(Q)$${${1}_POSTINSTALL}
-@@ -65,7 +65,7 @@ define ADD_INSTALL_RULE.a
- install: $${${1}_INSTALLDIR}/$(notdir ${1})
-
- # Install static library ${1}
-- $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} ${1} | $${${1}_INSTALLDIR}
-+ $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} ${1} | $${${1}_INSTALLDIR}
- @$(ECHO) INSTALL ${1}
- $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/
- $(Q)$${${1}_POSTINSTALL}
-@@ -87,9 +87,9 @@ define ADD_INSTALL_RULE.la
- install: $${${1}_INSTALLDIR}/$(notdir ${1})
-
- # Install libtool library ${1}
-- $${${1}_INSTALLDIR}/$(notdir ${1}): ${JLIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
-+ $${${1}_INSTALLDIR}/$(notdir ${1}): ${LIBTOOL} $${${1}_BUILD}/${1} | $${${1}_INSTALLDIR}
- @$(ECHO) INSTALL ${1}
-- $(Q)$${PROGRAM_INSTALL} -c -m 755 $${LOCAL_FLAGS_MIN} $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/
-+ $(Q)$${PROGRAM_INSTALL} -c -m 755 $${BUILD_DIR}/lib/${1} $${${1}_INSTALLDIR}/
- $(Q)$${${1}_POSTINSTALL}
-
- endef
-@@ -107,7 +107,7 @@ define ADD_INSTALL_RULE.man
- install: ${2}/$(notdir ${1})
-
- # Install manual page ${1}
-- ${2}/$(notdir ${1}): ${JLIBTOOL} ${1} | ${2}
-+ ${2}/$(notdir ${1}): ${LIBTOOL} ${1} | ${2}
- @$(ECHO) INSTALL $(notdir ${1})
- $(Q)$${PROGRAM_INSTALL} -c -m 644 ${1} ${2}/
-
-@@ -122,9 +122,9 @@ endef
- define ADD_INSTALL_RULE.dir
- # Install directory
- .PHONY: ${1}
-- ${1}: ${JLIBTOOL}
-+ ${1}: ${LIBTOOL}
- @$(ECHO) INSTALL -d -m 755 ${1}
-- $(Q)$${PROGRAM_INSTALL} -d -m 755 ${1}
-+ $(Q)$${INSTALL} -d -m 755 ${1}
- endef
-
-
-diff --git a/scripts/libtool.mk b/scripts/libtool.mk
-index 57915e1..2cb2f7d 100644
---- a/scripts/libtool.mk
-+++ b/scripts/libtool.mk
-@@ -55,7 +55,9 @@ ifeq "${LIBTOOL}" "JLIBTOOL"
- # Tell GNU Make to use this value, rather than anything specified
- # on the command line.
- override LIBTOOL := ${JLIBTOOL}
--endif # else we're not using jlibtool
-+else # else we're not using jlibtool
-+ all install: ${LIBTOOL}
-+endif
-
- # When using libtool, it produces a '.libs' directory. Ensure that it
- # is removed on "make clean", too.
-@@ -69,11 +71,19 @@ clean: .libs_clean
- # Re-define compilers and linkers
- #
- OBJ_EXT = lo
--COMPILE.c = ${LIBTOOL} --silent --mode=compile ${CC}
--COMPILE.cxx = ${LIBTOOL} --mode=compile ${CXX}
--LINK.c = ${LIBTOOL} --silent --mode=link ${CC}
--LINK.cxx = ${LIBTOOL} --mode=link ${CXX}
--PROGRAM_INSTALL = ${LIBTOOL} --silent --mode=install ${INSTALL}
-+ifeq "${LIBTOOL}" "JLIBTOOL"
-+ COMPILE.c = ${LIBTOOL} --silent --mode=compile ${CC}
-+ COMPILE.cxx = ${LIBTOOL} --mode=compile ${CXX}
-+ LINK.c = ${LIBTOOL} --silent --mode=link ${CC}
-+ LINK.cxx = ${LIBTOOL} --mode=link ${CXX}
-+ PROGRAM_INSTALL = ${LIBTOOL} --silent --mode=install ${INSTALL}
-+else
-+ COMPILE.c = ${LIBTOOL} --mode=compile --tag=CC ${CC}
-+ COMPILE.cxx = ${LIBTOOL} --mode=compile --tag=CC ${CXX}
-+ LINK.c = ${LIBTOOL} --mode=link --tag=CC ${CC} -module -export-dynamic
-+ LINK.cxx = ${LIBTOOL} --mode=link --tag=CC ${CXX} -module -export-dynamic
-+ PROGRAM_INSTALL = ${LIBTOOL} --mode=install ${INSTALL}
-+endif
-
-
- # LIBTOOL_ENDINGS - Given a library ending in ".a" or ".so", replace that
---
-2.10.2
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius-rlm_python-add-PY_INC_DIR.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-rlm_python-add-PY_INC_DIR.patch
deleted file mode 100644
index 675940dd6c..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-rlm_python-add-PY_INC_DIR.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a0bf65e04d2bbd3271cab94bd5ac93f8e877bfc5 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Wed, 27 Jan 2016 05:07:19 -0500
-Subject: [PATCH] rlm_python: add PY_INC_DIR in search dir
-
-Upstream-Status: Pending
-
-configure option --with-rlm-python-include-dir is used to set
-PY_INC_DIR which is never used and it fails to find Python.h,
-so add it into search dir to fix it.
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- src/modules/rlm_python/configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/modules/rlm_python/configure.ac b/src/modules/rlm_python/configure.ac
-index 831a33a..c3792d8 100644
---- a/src/modules/rlm_python/configure.ac
-+++ b/src/modules/rlm_python/configure.ac
-@@ -93,7 +93,7 @@ if test x$with_[]modname != xno; then
-
- old_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $PY_CFLAGS"
-- smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION"
-+ smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION $PY_INC_DIR"
- FR_SMART_CHECK_INCLUDE(Python.h)
- CFLAGS=$old_CFLAGS
-
---
-2.10.2
-
diff --git a/meta-networking/recipes-connectivity/freeradius/files/radiusd.service b/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
index 37a2eb3d7d..7969bfb690 100644
--- a/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
+++ b/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
@@ -4,10 +4,11 @@ After=syslog.target network.target
[Service]
Type=forking
+EnvironmentFile=-/etc/sysconfig/radiusd
PIDFile=/run/radiusd/radiusd.pid
ExecStartPre=-@BASE_BINDIR@/chown -R radiusd:radiusd /run/radiusd
ExecStartPre=@SBINDIR@/radiusd -C
-ExecStart=@SBINDIR@/radiusd -d @SYSCONFDIR@/raddb
+ExecStart=@SBINDIR@/radiusd -d @SYSCONFDIR@/${MLPREFIX}raddb
ExecReload=@SBINDIR@/radiusd -C
ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID
diff --git a/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb b/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb
deleted file mode 100644
index 1407b798b5..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb
+++ /dev/null
@@ -1,254 +0,0 @@
-DESCRIPTION = "FreeRADIUS is an Internet authentication daemon, which implements the RADIUS \
-protocol, as defined in RFC 2865 (and others). It allows Network Access \
-Servers (NAS boxes) to perform authentication for dial-up users. There are \
-also RADIUS clients available for Web servers, firewalls, Unix logins, and \
-more. Using RADIUS allows authentication and authorization for a network to \
-be centralized, and minimizes the amount of re-configuration which has to be \
-done when adding or deleting new users."
-
-SUMMARY = "High-performance and highly configurable RADIUS server"
-HOMEPAGE = "http://www.freeradius.org/"
-SECTION = "System/Servers"
-LICENSE = "GPL-2.0-only & LGPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a"
-DEPENDS = "openssl-native openssl libidn libtool libpcap libtalloc"
-
-SRC_URI = "git://github.com/FreeRADIUS/freeradius-server.git;branch=v3.0.x;lfs=0;;protocol=https \
- file://freeradius \
- file://volatiles.58_radiusd \
- file://freeradius-enble-user-in-conf.patch \
- file://freeradius-configure.ac-allow-cross-compilation.patch \
- file://freeradius-libtool-detection.patch \
- file://freeradius-configure.ac-add-option-for-libcap.patch \
- file://freeradius-avoid-searching-host-dirs.patch \
- file://freeradius-rlm_python-add-PY_INC_DIR.patch \
- file://freeradius-libtool-do-not-use-jlibtool.patch \
- file://freeradius-fix-quoting-for-BUILT_WITH.patch \
- file://freeradius-fix-error-for-expansion-of-macro.patch \
- file://0001-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch \
- file://0001-raddb-certs-Makefile-fix-the-existed-certificate-err.patch \
- file://0001-raddb-certs-Makefile-fix-the-occasional-verification.patch \
- file://0001-workaround-error-with-autoconf-2.7.patch \
- file://radiusd.service \
- file://radiusd-volatiles.conf \
- file://check-openssl-cmds-in-script-bootstrap.patch \
- file://0001-version.c-don-t-print-build-flags.patch \
-"
-
-raddbdir="${sysconfdir}/${MLPREFIX}raddb"
-
-SRCREV = "af428abda249b2279ba0582180985a9f6f4a144a"
-
-CVE_CHECK_IGNORE = "\
- CVE-2002-0318 \
- CVE-2011-4966 \
-"
-
-PARALLEL_MAKE = ""
-
-S = "${WORKDIR}/git"
-
-LDFLAGS:append:powerpc = " -latomic"
-LDFLAGS:append:mipsarch = " -latomic"
-LDFLAGS:append:armv5 = " -latomic"
-
-EXTRA_OECONF = " --enable-strict-dependencies \
- --with-docdir=${docdir}/freeradius-${PV} \
- --with-openssl-includes=${STAGING_INCDIR} \
- --with-openssl-libraries=${STAGING_LIBDIR} \
- --with-raddbdir=${raddbdir} \
- --without-rlm_ippool \
- --without-rlm_cache_memcached \
- --without-rlm_counter \
- --without-rlm_couchbase \
- --without-rlm_dbm \
- --without-rlm_eap_tnc \
- --without-rlm_eap_ikev2 \
- --without-rlm_opendirectory \
- --without-rlm_redis \
- --without-rlm_rediswho \
- --without-rlm_sql_db2 \
- --without-rlm_sql_firebird \
- --without-rlm_sql_freetds \
- --without-rlm_sql_iodbc \
- --without-rlm_sql_oracle \
- --without-rlm_sql_sybase \
- --without-rlm_sql_mongo \
- --without-rlm_sqlhpwippool \
- --without-rlm_securid \
- --without-rlm_unbound \
- --without-rlm_python \
- ac_cv_path_PERL=${bindir}/perl \
- ax_cv_cc_builtin_choose_expr=no \
- ax_cv_cc_builtin_types_compatible_p=no \
- ax_cv_cc_builtin_bswap64=no \
- ax_cv_cc_bounded_attribute=no \
-"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
- pcre libcap \
- openssl rlm-eap-fast rlm-eap-pwd \
-"
-
-PACKAGECONFIG[krb5] = "--with-rlm_krb5,--without-rlm_krb5,krb5"
-PACKAGECONFIG[pam] = "--with-rlm_pam,--without-rlm_pam,libpam"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-PACKAGECONFIG[ldap] = "--with-rlm_ldap,--without-rlm_ldap,openldap"
-PACKAGECONFIG[mysql] = "--with-rlm_sql_mysql,--without-rlm_sql_mysql,mysql5"
-PACKAGECONFIG[sqlite] = "--with-rlm_sql_sqlite,--without-rlm_sql_sqlite,sqlite3"
-PACKAGECONFIG[unixodbc] = "--with-rlm_sql_unixodbc,--without-rlm_sql_unixodbc,unixodbc"
-PACKAGECONFIG[postgresql] = "--with-rlm_sql_postgresql,--without-rlm_sql_postgresql,postgresql"
-PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,libpcre"
-PACKAGECONFIG[perl] = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl --with-rlm_perl,--without-rlm_perl,perl-native perl,perl"
-PACKAGECONFIG[python3] = "--with-rlm_python3 --with-rlm-python3-bin=${STAGING_BINDIR_NATIVE}/python3-native/python3 --with-rlm-python3-include-dir=${STAGING_INCDIR}/${PYTHON_DIR},--without-rlm_python3,python3-native python3"
-PACKAGECONFIG[rest] = "--with-rlm_rest,--without-rlm_rest,curl json-c"
-PACKAGECONFIG[ruby] = "--with-rlm_ruby,--without-rlm_ruby,ruby"
-PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl"
-PACKAGECONFIG[rlm-eap-fast] = "--with-rlm_eap_fast, --without-rlm_eap_fast"
-PACKAGECONFIG[rlm-eap-pwd] = "--with-rlm_eap_pwd, --without-rlm_eap_pwd"
-
-inherit useradd autotools-brokensep update-rc.d systemd multilib_script multilib_header
-
-MULTILIB_SCRIPTS = "${PN}:${sbindir}/checkrad"
-
-# This is not a cpan or python based package, but it needs some definitions
-# from cpan-base and python3-dir bbclasses for building rlm_perl and rlm_python
-# correctly.
-inherit cpan-base python3-dir
-
-# The modules subdirs also need to be processed by autoreconf. Use autogen.sh
-# in order to handle the subdirs correctly.
-do_configure () {
- ./autogen.sh
-
- # the configure of rlm_perl needs this to get correct
- # mod_cflags and mod_ldflags
- if ${@bb.utils.contains('PACKAGECONFIG', 'perl', 'true', 'false', d)}; then
- export PERL5LIB="${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}"
- fi
-
- oe_runconf
-
- # we don't need dhcpclient
- sed -i -e 's/dhcpclient.mk//' ${S}/src/modules/proto_dhcp/all.mk
-}
-
-INITSCRIPT_NAME = "radiusd"
-
-SYSTEMD_SERVICE:${PN} = "radiusd.service"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --no-create-home --shell /bin/false --user-group radiusd"
-
-do_install() {
- rm -rf ${D}
- mkdir -p ${D}/${sysconfdir}/logrotate.d
- mkdir -p ${D}/${sysconfdir}/pam.d
- mkdir -p ${D}/${sysconfdir}/init.d
- mkdir -p ${D}/${localstatedir}/lib/radiusd
- mkdir -p ${D}${sysconfdir}/default/volatiles
-
- export LD_LIBRARY_PATH=${D}/${libdir}
- oe_runmake install R=${D} INSTALLSTRIP=""
-
- # remove unsupported config files
- rm -f ${D}/${raddbdir}/experimental.conf
-
- # remove scripts that required Perl(DBI)
- rm -rf ${D}/${bindir}/radsqlrelay
-
- cp -f ${WORKDIR}/freeradius ${D}/etc/init.d/radiusd
- rm -f ${D}/${sbindir}/rc.radiusd
- chmod +x ${D}/${sysconfdir}/init.d/radiusd
- rm -rf ${D}/${localstatedir}/run/
- rm -rf ${D}/${localstatedir}/log/
- install -m 0644 ${WORKDIR}/volatiles.58_radiusd ${D}${sysconfdir}/default/volatiles/58_radiusd
-
- chown -R radiusd:radiusd ${D}/${raddbdir}
- chown -R radiusd:radiusd ${D}/${localstatedir}/lib/radiusd
-
- # For systemd
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/radiusd.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
- -e 's,@SBINDIR@,${sbindir},g' \
- -e 's,@STATEDIR@,${localstatedir},g' \
- -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- ${D}${systemd_unitdir}/system/radiusd.service
-
- install -d ${D}${sysconfdir}/tmpfiles.d/
- install -m 0644 ${WORKDIR}/radiusd-volatiles.conf ${D}${sysconfdir}/tmpfiles.d/radiusd.conf
- fi
- oe_multilib_header freeradius/autoconf.h
- oe_multilib_header freeradius/missing.h
- oe_multilib_header freeradius/radpaths.h
-}
-
-# This is only needed when we install/update on a running target.
-#
-pkg_postinst:${PN} () {
- if [ -z "$D" ]; then
- if command -v systemd-tmpfiles >/dev/null; then
- # create /var/log/radius, /var/run/radiusd
- systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/radiusd.conf
- elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
- ${sysconfdir}/init.d/populate-volatile.sh update
- fi
-
- # Fix ownership for /etc/raddb/*, /var/lib/radiusd
- chown -R radiusd:radiusd ${raddbdir}
- chown -R radiusd:radiusd ${localstatedir}/lib/radiusd
- fi
-}
-
-# We really need the symlink :(
-INSANE_SKIP:${PN} = "dev-so"
-INSANE_SKIP:${PN}-krb5 = "dev-so"
-INSANE_SKIP:${PN}-ldap = "dev-so"
-INSANE_SKIP:${PN}-mysql = "dev-so"
-INSANE_SKIP:${PN}-perl = "dev-so"
-INSANE_SKIP:${PN}-postgresql = "dev-so"
-INSANE_SKIP:${PN}-python = "dev-so"
-INSANE_SKIP:${PN}-unixodbc = "dev-so"
-
-PACKAGES =+ "${PN}-utils ${PN}-ldap ${PN}-krb5 ${PN}-perl \
- ${PN}-python ${PN}-mysql ${PN}-postgresql ${PN}-unixodbc"
-
-FILES:${PN}-utils = "${bindir}/*"
-
-FILES:${PN}-ldap = "${libdir}/rlm_ldap.so* \
- ${raddbdir}/mods-available/ldap \
-"
-
-FILES:${PN}-krb5 = "${libdir}/rlm_krb5.so* \
- ${raddbdir}/mods-available/krb5 \
-"
-
-FILES:${PN}-perl = "${libdir}/rlm_perl.so* \
- ${raddbdir}/mods-config/perl \
- ${raddbdir}/mods-available/perl \
-"
-
-FILES:${PN}-python = "${libdir}/rlm_python3.so* \
- ${raddbdir}/mods-config/python3 \
- ${raddbdir}/mods-available/python3 \
-"
-
-FILES:${PN}-mysql = "${libdir}/rlm_sql_mysql.so* \
- ${raddbdir}/mods-config/sql/*/mysql \
- ${raddbdir}/mods-available/sql \
-"
-
-FILES:${PN}-postgresql = "${libdir}/rlm_sql_postgresql.so* \
- ${raddbdir}/mods-config/sql/*/postgresql \
-"
-
-FILES:${PN}-unixodbc = "${libdir}/rlm_sql_unixodbc.so*"
-
-FILES:${PN} =+ "${libdir}/rlm_*.so* ${libdir}/proto_*so*"
-
-RDEPENDS:${PN} += "perl"
-RDEPENDS:${PN}-utils = "${PN} perl"
-
-CLEANBROKEN = "1"
diff --git a/meta-networking/recipes-connectivity/freeradius/freeradius_3.2.3.bb b/meta-networking/recipes-connectivity/freeradius/freeradius_3.2.3.bb
new file mode 100644
index 0000000000..7ea63a65d3
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/freeradius_3.2.3.bb
@@ -0,0 +1,298 @@
+DESCRIPTION = "FreeRADIUS is an Internet authentication daemon, which implements the RADIUS \
+protocol, as defined in RFC 2865 (and others). It allows Network Access \
+Servers (NAS boxes) to perform authentication for dial-up users. There are \
+also RADIUS clients available for Web servers, firewalls, Unix logins, and \
+more. Using RADIUS allows authentication and authorization for a network to \
+be centralized, and minimizes the amount of re-configuration which has to be \
+done when adding or deleting new users."
+
+SUMMARY = "High-performance and highly configurable RADIUS server"
+HOMEPAGE = "http://www.freeradius.org/"
+SECTION = "System/Servers"
+LICENSE = "GPL-2.0-only & LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a"
+DEPENDS = "openssl-native openssl libidn libtool libpcap libtalloc"
+
+SRC_URI = "git://github.com/FreeRADIUS/freeradius-server.git;branch=v3.2.x;lfs=0;;protocol=https \
+ file://freeradius \
+ file://volatiles.58_radiusd \
+ file://radiusd.service \
+ file://radiusd-volatiles.conf \
+ file://0001-Add-autogen.sh.patch \
+ file://0002-Enable-and-change-user-and-group-of-freeradius-serve.patch \
+ file://0003-configure.ac-allow-cross-compilation.patch \
+ file://0004-Fix-libtool-detection.patch \
+ file://0005-configure.ac-add-option-for-libcap.patch \
+ file://0006-Avoid-searching-host-dirs.patch \
+ file://0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch \
+ file://0008-libtool-do-not-use-jlibtool.patch \
+ file://0009-Fix-quoting-for-BUILD_WITH.patch \
+ file://0010-fix-error-for-expansion-of-macro-in-thread.h.patch \
+ file://0011-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch \
+ file://0012-raddb-certs-Makefile-fix-the-existed-certificate-err.patch \
+ file://0013-raddb-certs-Makefile-fix-the-occasional-verification.patch \
+ file://0014-Workaround-error-with-autoconf-2.7.patch \
+ file://0015-bootstrap-check-commands-of-openssl-exist.patch \
+ file://0016-version.c-don-t-print-build-flags.patch \
+ file://0017-Add-acinclude.m4-to-include-required-macros.patch \
+"
+
+raddbdir = "${sysconfdir}/${MLPREFIX}raddb"
+
+SRCREV = "db3d1924d9a2e8d37c43872932621f69cfdbb099"
+
+UPSTREAM_CHECK_GITTAGREGEX = "release_(?P<pver>\d+(\_\d+)+)"
+
+CVE_STATUS[CVE-2002-0318] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+CVE_STATUS[CVE-2011-4966] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+
+PARALLEL_MAKE = ""
+
+S = "${WORKDIR}/git"
+
+LDFLAGS:append:powerpc = " -latomic"
+LDFLAGS:append:mipsarch = " -latomic"
+LDFLAGS:append:armv5 = " -latomic"
+
+EXTRA_OECONF = " --enable-strict-dependencies \
+ --with-docdir=${docdir}/freeradius-${PV} \
+ --with-openssl-includes=${STAGING_INCDIR} \
+ --with-openssl-libraries=${STAGING_LIBDIR} \
+ --with-raddbdir=${raddbdir} \
+ --without-rlm_ippool \
+ --without-rlm_cache_memcached \
+ --without-rlm_counter \
+ --without-rlm_couchbase \
+ --without-rlm_dbm \
+ --without-rlm_eap_tnc \
+ --without-rlm_eap_ikev2 \
+ --without-rlm_opendirectory \
+ --without-rlm_redis \
+ --without-rlm_rediswho \
+ --without-rlm_cache_redis \
+ --without-rlm_sql_db2 \
+ --without-rlm_sql_firebird \
+ --without-rlm_sql_freetds \
+ --without-rlm_sql_iodbc \
+ --without-rlm_sql_oracle \
+ --without-rlm_sql_sybase \
+ --without-rlm_sql_mongo \
+ --without-rlm_sqlhpwippool \
+ --without-rlm_securid \
+ --without-rlm_unbound \
+ --without-rlm_python \
+ ac_cv_path_PERL=${bindir}/perl \
+ ax_cv_cc_builtin_choose_expr=no \
+ ax_cv_cc_builtin_types_compatible_p=no \
+ ax_cv_cc_builtin_bswap64=no \
+ ax_cv_cc_bounded_attribute=no \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
+ pcre libcap \
+ openssl rlm-eap-fast rlm-eap-pwd \
+"
+
+PACKAGECONFIG[krb5] = "--with-rlm_krb5,--without-rlm_krb5,krb5"
+PACKAGECONFIG[pam] = "--with-rlm_pam,--without-rlm_pam,libpam"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+PACKAGECONFIG[ldap] = "--with-rlm_ldap,--without-rlm_ldap,openldap"
+PACKAGECONFIG[mysql] = "--with-rlm_sql_mysql,--without-rlm_sql_mysql,mysql5"
+PACKAGECONFIG[sqlite] = "--with-rlm_sql_sqlite,--without-rlm_sql_sqlite,sqlite3"
+PACKAGECONFIG[unixodbc] = "--with-rlm_sql_unixodbc,--without-rlm_sql_unixodbc,unixodbc"
+PACKAGECONFIG[postgresql] = "--with-rlm_sql_postgresql,--without-rlm_sql_postgresql,postgresql"
+PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,libpcre"
+PACKAGECONFIG[perl] = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl --with-rlm_perl,--without-rlm_perl,perl-native perl,perl"
+PACKAGECONFIG[python3] = "--with-rlm_python3 --with-rlm-python3-bin=${STAGING_BINDIR_NATIVE}/python3-native/python3 --with-rlm-python3-include-dir=${STAGING_INCDIR}/${PYTHON_DIR},--without-rlm_python3,python3-native python3"
+PACKAGECONFIG[rest] = "--with-rlm_rest,--without-rlm_rest --without-rlm_json,curl json-c"
+PACKAGECONFIG[ruby] = "--with-rlm_ruby,--without-rlm_ruby,ruby"
+PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl"
+PACKAGECONFIG[rlm-eap-fast] = "--with-rlm_eap_fast, --without-rlm_eap_fast"
+PACKAGECONFIG[rlm-eap-pwd] = "--with-rlm_eap_pwd, --without-rlm_eap_pwd"
+
+inherit useradd autotools-brokensep update-rc.d systemd multilib_script multilib_header
+
+MULTILIB_SCRIPTS = "${PN}:${sbindir}/checkrad"
+
+# This is not a cpan or python based package, but it needs some definitions
+# from cpan-base and python3-dir bbclasses for building rlm_perl and rlm_python
+# correctly.
+inherit cpan-base python3-dir
+
+# The modules subdirs also need to be processed by autoreconf. Use autogen.sh
+# in order to handle the subdirs correctly.
+do_configure() {
+ ./autogen.sh
+
+ # the configure of rlm_perl needs this to get correct
+ # mod_cflags and mod_ldflags
+ if ${@bb.utils.contains('PACKAGECONFIG', 'perl', 'true', 'false', d)}; then
+ export PERL5LIB="${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}"
+ fi
+
+ oe_runconf
+
+ # we don't need dhcpclient
+ sed -i -e 's/dhcpclient.mk//' ${S}/src/modules/proto_dhcp/all.mk
+}
+
+INITSCRIPT_NAME = "radiusd"
+
+SYSTEMD_SERVICE:${PN} = "radiusd.service"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --shell /bin/false --user-group radiusd"
+
+do_install() {
+ rm -rf ${D}
+ install -d ${D}/${sysconfdir}/logrotate.d
+ install -d ${D}/${sysconfdir}/pam.d
+ install -d ${D}/${localstatedir}/lib/radiusd
+
+ export LD_LIBRARY_PATH=${D}/${libdir}
+ oe_runmake install R=${D} INSTALLSTRIP=""
+
+ # remove unsupported config files
+ rm -f ${D}/${raddbdir}/experimental.conf
+
+ # remove scripts that required Perl(DBI)
+ rm -rf ${D}/${bindir}/radsqlrelay
+
+ rm -f ${D}/${sbindir}/rc.radiusd
+ rm -rf ${D}/${localstatedir}/run/
+ rm -rf ${D}/${localstatedir}/log/
+
+ chown -R radiusd:radiusd ${D}/${raddbdir}
+ chown -R radiusd:radiusd ${D}/${localstatedir}/lib/radiusd
+
+ # For sysvinit
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/init.d
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0755 ${WORKDIR}/freeradius ${D}/etc/init.d/radiusd
+ install -m 0644 ${WORKDIR}/volatiles.58_radiusd ${D}${sysconfdir}/default/volatiles/58_radiusd
+ fi
+
+ # For systemd
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/radiusd.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ -e 's,@STATEDIR@,${localstatedir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ ${D}${systemd_unitdir}/system/radiusd.service
+
+ install -d ${D}${sysconfdir}/tmpfiles.d/
+ install -m 0644 ${WORKDIR}/radiusd-volatiles.conf ${D}${sysconfdir}/tmpfiles.d/radiusd.conf
+ fi
+
+ oe_multilib_header freeradius/autoconf.h
+ oe_multilib_header freeradius/missing.h
+ oe_multilib_header freeradius/radpaths.h
+}
+
+# This is only needed when we install/update on a running target.
+#
+pkg_postinst:${PN} () {
+ if [ -z "$D" ]; then
+ if command -v systemd-tmpfiles >/dev/null; then
+ # create /var/log/radius, /var/run/radiusd
+ systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/radiusd.conf
+ elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+ ${sysconfdir}/init.d/populate-volatile.sh update
+ fi
+
+ # Fix ownership for /etc/raddb/*, /var/lib/radiusd
+ chown -R radiusd:radiusd ${raddbdir}
+ chown -R radiusd:radiusd ${localstatedir}/lib/radiusd
+
+ # for radiusd.service with multilib
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${sysconfdir}/sysconfig
+ echo "MLPREFIX=${MLPREFIX}" > ${sysconfdir}/sysconfig/radiusd
+ fi
+ else
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d $D${sysconfdir}/sysconfig
+ echo "MLPREFIX=${MLPREFIX}" > $D${sysconfdir}/sysconfig/radiusd
+ fi
+ fi
+}
+
+pkg_postrm:${PN} () {
+ # only try to remove ${sysconfdir}/sysconfig/radiusd for systemd
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'false', 'true', d)}; then
+ exit 0
+ fi
+
+ if [ -d ${sysconfdir}/raddb ]; then
+ exit 0
+ fi
+ for variant in ${MULTILIB_GLOBAL_VARIANTS}; do
+ if [ -d ${sysconfdir}/${variant}-raddb ]; then
+ exit 0
+ fi
+ done
+
+ rm -f ${sysconfdir}/sysconfig/radiusd
+ rmdir --ignore-fail-on-non-empty ${sysconfdir}/sysconfig
+}
+
+# We really need the symlink :(
+INSANE_SKIP:${PN} = "dev-so"
+INSANE_SKIP:${PN}-krb5 = "dev-so"
+INSANE_SKIP:${PN}-ldap = "dev-so"
+INSANE_SKIP:${PN}-mysql = "dev-so"
+INSANE_SKIP:${PN}-perl = "dev-so"
+INSANE_SKIP:${PN}-postgresql = "dev-so"
+INSANE_SKIP:${PN}-python = "dev-so"
+INSANE_SKIP:${PN}-unixodbc = "dev-so"
+
+PACKAGES =+ "${PN}-utils ${PN}-ldap ${PN}-krb5 ${PN}-perl \
+ ${PN}-python ${PN}-mysql ${PN}-postgresql ${PN}-unixodbc"
+
+FILES:${PN}-utils = "${bindir}/*"
+
+FILES:${PN}-ldap = "${libdir}/rlm_ldap.so* \
+ ${raddbdir}/mods-available/ldap \
+"
+
+FILES:${PN}-krb5 = "${libdir}/rlm_krb5.so* \
+ ${raddbdir}/mods-available/krb5 \
+"
+
+FILES:${PN}-perl = "${libdir}/rlm_perl.so* \
+ ${raddbdir}/mods-config/perl \
+ ${raddbdir}/mods-available/perl \
+"
+
+FILES:${PN}-python = "${libdir}/rlm_python3.so* \
+ ${raddbdir}/mods-config/python3 \
+ ${raddbdir}/mods-available/python3 \
+"
+
+FILES:${PN}-mysql = "${libdir}/rlm_sql_mysql.so* \
+ ${raddbdir}/mods-config/sql/*/mysql \
+ ${raddbdir}/mods-available/sql \
+"
+
+FILES:${PN}-postgresql = "${libdir}/rlm_sql_postgresql.so* \
+ ${raddbdir}/mods-config/sql/*/postgresql \
+"
+
+FILES:${PN}-unixodbc = "${libdir}/rlm_sql_unixodbc.so*"
+
+FILES:${PN} =+ "${libdir}/rlm_*.so* ${libdir}/proto_*so*"
+
+RDEPENDS:${PN} += "perl"
+RDEPENDS:${PN}-utils = "${PN} perl"
+RDEPENDS:${PN}-krb5 = "${PN}"
+RDEPENDS:${PN}-ldap = "${PN}"
+RDEPENDS:${PN}-mysql = "${PN}"
+RDEPENDS:${PN}-perl = "${PN}"
+RDEPENDS:${PN}-postgresql = "${PN}"
+RDEPENDS:${PN}-python = "${PN}"
+RDEPENDS:${PN}-unixodbc = "${PN}"
+
+CLEANBROKEN = "1"
diff --git a/meta-networking/recipes-connectivity/libdnet/libdnet_1.14.bb b/meta-networking/recipes-connectivity/libdnet/libdnet_1.14.bb
deleted file mode 100644
index 9f2ff51576..0000000000
--- a/meta-networking/recipes-connectivity/libdnet/libdnet_1.14.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "dumb networking library"
-HOMEPAGE = "http://code.google.com/p/libdnet/"
-SECTION = "libs"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9"
-
-SRC_URI = "git://github.com/dugsong/libdnet.git;nobranch=1;protocol=https"
-SRCREV = "3e782472d2a58d5e1b94d04eda4a364c2d257600"
-
-UPSTREAM_CHECK_GITTAGREGEX = "libdnet-(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-inherit autotools multilib_script
-
-acpaths = "-I ./config/"
-
-BBCLASSEXTEND = "native"
-
-MULTILIB_SCRIPTS = "${PN}:${bindir}/dnet-config"
diff --git a/meta-networking/recipes-connectivity/libdnet/libdnet_1.18.0.bb b/meta-networking/recipes-connectivity/libdnet/libdnet_1.18.0.bb
new file mode 100644
index 0000000000..75aaf521c4
--- /dev/null
+++ b/meta-networking/recipes-connectivity/libdnet/libdnet_1.18.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "dumb networking library"
+HOMEPAGE = "https://github.com/ofalk/libdnet"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9"
+
+SRC_URI = "git://github.com/ofalk/libdnet.git;nobranch=1;protocol=https"
+
+SRCREV = "3dfbe889b1f65077efe579da34fc1d6819fcb7f3"
+
+UPSTREAM_CHECK_GITTAGREGEX = "libdnet-(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+inherit autotools multilib_script pkgconfig
+
+DEPENDS += "libcheck"
+
+EXTRA_AUTORECONF += "-I ./config"
+BBCLASSEXTEND = "native"
+
+MULTILIB_SCRIPTS = "${PN}:${bindir}/dnet-config"
diff --git a/meta-networking/recipes-connectivity/libiec61850/files/0001-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch b/meta-networking/recipes-connectivity/libiec61850/files/0001-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch
index 2168a0713c..3f0490cb80 100644
--- a/meta-networking/recipes-connectivity/libiec61850/files/0001-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch
+++ b/meta-networking/recipes-connectivity/libiec61850/files/0001-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch
@@ -8,6 +8,8 @@ https://stackoverflow.com/questions/1242904/finding-python-site-packages-directo
Signed-off-by: Romain Naour <romain.naour@smile.fr>
---
+Upstream-Status: Pending
+
pyiec61850/CMakeLists.txt | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.1.bb b/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.1.bb
index 3e5fc91dad..63476d3495 100644
--- a/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.1.bb
+++ b/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.1.bb
@@ -33,6 +33,6 @@ RDEPENDS:${PN}-python = " python3-core "
RDEPENDS:${PN} = " python3-core "
FILES:${PN} += " \
- ${libdir}/${PYTHON_DIR}/site-packages/iec61850.py \
- ${libdir}/${PYTHON_DIR}/site-packages/_iec61850.so \
+ ${PYTHON_SITEPACKAGES_DIR}/iec61850.py \
+ ${PYTHON_SITEPACKAGES_DIR}/_iec61850.so \
"
diff --git a/meta-networking/recipes-connectivity/mbedtls/mbedtls/run-ptest b/meta-networking/recipes-connectivity/mbedtls/mbedtls/run-ptest
new file mode 100644
index 0000000000..059ab4ecbb
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mbedtls/mbedtls/run-ptest
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+ptestdir=$(dirname "$(readlink -f "$0")")
+cd "$ptestdir"/tests || exit
+
+tests=$(find * -type f -name 'test_suite_*')
+
+for f in $tests
+do
+ if test -x ./"$f"; then
+ if ./"$f" > ./"$f".out 2> ./"$f".err; then
+ echo "PASS: $f"
+ else
+ echo "FAIL: $f"
+ fi
+ fi
+done
diff --git a/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.0.bb b/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.0.bb
deleted file mode 100644
index d4a9c7bf8d..0000000000
--- a/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.0.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Lightweight crypto and SSL/TLS library"
-DESCRIPTION = "mbedtls is a lean open source crypto library \
-for providing SSL and TLS support in your programs. It offers \
-an intuitive API and documented header files, so you can actually \
-understand what the code does. It features: \
- \
- - Symmetric algorithms, like AES, Blowfish, Triple-DES, DES, ARC4, \
- Camellia and XTEA \
- - Hash algorithms, like SHA-1, SHA-2, RIPEMD-160 and MD5 \
- - Entropy pool and random generators, like CTR-DRBG and HMAC-DRBG \
- - Public key algorithms, like RSA, Elliptic Curves, Diffie-Hellman, \
- ECDSA and ECDH \
- - SSL v3 and TLS 1.0, 1.1 and 1.2 \
- - Abstraction layers for ciphers, hashes, public key operations, \
- platform abstraction and threading \
-"
-
-HOMEPAGE = "https://tls.mbed.org/"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SECTION = "libs"
-
-S = "${WORKDIR}/git"
-SRCREV = "8b3f26a5ac38d4fdccbc5c5366229f3e01dafcc0"
-SRC_URI = "git://github.com/ARMmbed/mbedtls.git;protocol=https;branch=mbedtls-2.28"
-
-inherit cmake
-
-PACKAGECONFIG ??= "shared-libs programs"
-PACKAGECONFIG[shared-libs] = "-DUSE_SHARED_MBEDTLS_LIBRARY=ON,-DUSE_SHARED_MBEDTLS_LIBRARY=OFF"
-PACKAGECONFIG[programs] = "-DENABLE_PROGRAMS=ON,-DENABLE_PROGRAMS=OFF"
-PACKAGECONFIG[werror] = "-DMBEDTLS_FATAL_WARNINGS=ON,-DMBEDTLS_FATAL_WARNINGS=OFF"
-
-EXTRA_OECMAKE = "-DENABLE_TESTING=OFF -DLIB_INSTALL_DIR:STRING=${libdir}"
-
-PROVIDES += "polarssl"
-RPROVIDES:${PN} = "polarssl"
-
-PACKAGES =+ "${PN}-programs"
-FILES:${PN}-programs = "${bindir}/"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.8.bb b/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.8.bb
new file mode 100644
index 0000000000..301e655989
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.8.bb
@@ -0,0 +1,80 @@
+SUMMARY = "Lightweight crypto and SSL/TLS library"
+DESCRIPTION = "mbedtls is a lean open source crypto library \
+for providing SSL and TLS support in your programs. It offers \
+an intuitive API and documented header files, so you can actually \
+understand what the code does. It features: \
+ \
+ - Symmetric algorithms, like AES, Blowfish, Triple-DES, DES, ARC4, \
+ Camellia and XTEA \
+ - Hash algorithms, like SHA-1, SHA-2, RIPEMD-160 and MD5 \
+ - Entropy pool and random generators, like CTR-DRBG and HMAC-DRBG \
+ - Public key algorithms, like RSA, Elliptic Curves, Diffie-Hellman, \
+ ECDSA and ECDH \
+ - SSL v3 and TLS 1.0, 1.1 and 1.2 \
+ - Abstraction layers for ciphers, hashes, public key operations, \
+ platform abstraction and threading \
+"
+
+HOMEPAGE = "https://tls.mbed.org/"
+
+LICENSE = "Apache-2.0 | GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=379d5819937a6c2f1ef1630d341e026d"
+
+SECTION = "libs"
+
+S = "${WORKDIR}/git"
+SRCREV = "5a764e5555c64337ed17444410269ff21cb617b1"
+SRC_URI = "git://github.com/Mbed-TLS/mbedtls.git;protocol=https;branch=mbedtls-2.28 \
+ file://run-ptest \
+ "
+
+inherit cmake update-alternatives ptest
+
+PACKAGECONFIG ??= "shared-libs programs ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
+PACKAGECONFIG[shared-libs] = "-DUSE_SHARED_MBEDTLS_LIBRARY=ON,-DUSE_SHARED_MBEDTLS_LIBRARY=OFF"
+PACKAGECONFIG[programs] = "-DENABLE_PROGRAMS=ON,-DENABLE_PROGRAMS=OFF"
+PACKAGECONFIG[werror] = "-DMBEDTLS_FATAL_WARNINGS=ON,-DMBEDTLS_FATAL_WARNINGS=OFF"
+# Make X.509 and TLS calls use PSA
+# https://github.com/Mbed-TLS/mbedtls/blob/development/docs/use-psa-crypto.md
+PACKAGECONFIG[psa] = ""
+PACKAGECONFIG[tests] = "-DENABLE_TESTING=ON,-DENABLE_TESTING=OFF"
+
+EXTRA_OECMAKE = "-DLIB_INSTALL_DIR:STRING=${libdir}"
+
+# For now the only way to enable PSA is to explicitly pass a -D via CFLAGS
+CFLAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'psa', ' -DMBEDTLS_USE_PSA_CRYPTO', '', d)}"
+
+PROVIDES += "polarssl"
+RPROVIDES:${PN} = "polarssl"
+
+PACKAGES =+ "${PN}-programs"
+FILES:${PN}-programs = "${bindir}/"
+
+ALTERNATIVE:${PN}-programs = "hello"
+ALTERNATIVE_LINK_NAME[hello] = "${bindir}/hello"
+
+BBCLASSEXTEND = "native nativesdk"
+
+CVE_PRODUCT = "mbed_tls"
+
+CVE_STATUS[CVE-2021-43666] = "backported-patch: Fix merged upstream https://github.com/Mbed-TLS/mbedtls/pull/5310"
+CVE_STATUS[CVE-2021-45451] = "backported-patch: Fix merged upstream https://github.com/Mbed-TLS/mbedtls/commit/9a4a9c66a48edfe9ece03c7e4a53310adf73a86c"
+
+# Strip host paths from autogenerated test files
+do_compile:append() {
+ sed -i 's+${S}/++g' ${B}/tests/*.c 2>/dev/null || :
+ sed -i 's+${B}/++g' ${B}/tests/*.c 2>/dev/null || :
+}
+
+# Export source files/headers needed by Arm Trusted Firmware
+sysroot_stage_all:append() {
+ sysroot_stage_dir "${S}/library" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/library"
+ sysroot_stage_dir "${S}/include" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/include"
+}
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -f ${B}/tests/test_suite_* ${D}${PTEST_PATH}/tests/
+ find ${D}${PTEST_PATH}/tests/ -type f -name "*.c" -delete
+ cp -fR ${S}/tests/data_files ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.6.0.bb b/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.6.0.bb
new file mode 100644
index 0000000000..92a2de82a3
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.6.0.bb
@@ -0,0 +1,82 @@
+SUMMARY = "Lightweight crypto and SSL/TLS library"
+DESCRIPTION = "mbedtls is a lean open source crypto library \
+for providing SSL and TLS support in your programs. It offers \
+an intuitive API and documented header files, so you can actually \
+understand what the code does. It features: \
+ \
+ - Symmetric algorithms, like AES, Blowfish, Triple-DES, DES, ARC4, \
+ Camellia and XTEA \
+ - Hash algorithms, like SHA-1, SHA-2, RIPEMD-160 and MD5 \
+ - Entropy pool and random generators, like CTR-DRBG and HMAC-DRBG \
+ - Public key algorithms, like RSA, Elliptic Curves, Diffie-Hellman, \
+ ECDSA and ECDH \
+ - SSL v3 and TLS 1.0, 1.1 and 1.2 \
+ - Abstraction layers for ciphers, hashes, public key operations, \
+ platform abstraction and threading \
+"
+
+HOMEPAGE = "https://tls.mbed.org/"
+
+LICENSE = "Apache-2.0 | GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=379d5819937a6c2f1ef1630d341e026d"
+
+SECTION = "libs"
+
+S = "${WORKDIR}/git"
+SRC_URI = "git://github.com/Mbed-TLS/mbedtls.git;protocol=https;branch=master \
+ git://github.com/Mbed-TLS/mbedtls-framework.git;protocol=https;branch=main;destsuffix=git/framework;name=framework \
+ file://run-ptest"
+
+SRCREV = "2ca6c285a0dd3f33982dd57299012dacab1ff206"
+SRCREV_framework = "750634d3a51eb9d61b59fd5d801546927c946588"
+SRCREV_FORMAT .= "_framework"
+
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+inherit cmake update-alternatives ptest
+
+PACKAGECONFIG ??= "shared-libs programs ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
+PACKAGECONFIG[shared-libs] = "-DUSE_SHARED_MBEDTLS_LIBRARY=ON,-DUSE_SHARED_MBEDTLS_LIBRARY=OFF"
+PACKAGECONFIG[programs] = "-DENABLE_PROGRAMS=ON,-DENABLE_PROGRAMS=OFF"
+PACKAGECONFIG[werror] = "-DMBEDTLS_FATAL_WARNINGS=ON,-DMBEDTLS_FATAL_WARNINGS=OFF"
+# Make X.509 and TLS calls use PSA
+# https://github.com/Mbed-TLS/mbedtls/blob/development/docs/use-psa-crypto.md
+PACKAGECONFIG[psa] = ""
+PACKAGECONFIG[tests] = "-DENABLE_TESTING=ON,-DENABLE_TESTING=OFF"
+
+EXTRA_OECMAKE = "-DLIB_INSTALL_DIR:STRING=${libdir}"
+
+# For now the only way to enable PSA is to explicitly pass a -D via CFLAGS
+CFLAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'psa', ' -DMBEDTLS_USE_PSA_CRYPTO', '', d)}"
+
+PROVIDES += "polarssl"
+RPROVIDES:${PN} = "polarssl"
+
+PACKAGES =+ "${PN}-programs"
+FILES:${PN}-programs = "${bindir}/"
+
+ALTERNATIVE:${PN}-programs = "hello"
+ALTERNATIVE_LINK_NAME[hello] = "${bindir}/hello"
+
+BBCLASSEXTEND = "native nativesdk"
+
+CVE_PRODUCT = "mbed_tls"
+
+# Strip host paths from autogenerated test files
+do_compile:append() {
+ sed -i 's+${S}/++g' ${B}/tests/*.c 2>/dev/null || :
+ sed -i 's+${B}/++g' ${B}/tests/*.c 2>/dev/null || :
+}
+
+# Export source files/headers needed by Arm Trusted Firmware
+sysroot_stage_all:append() {
+ sysroot_stage_dir "${S}/library" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/library"
+ sysroot_stage_dir "${S}/include" "${SYSROOT_DESTDIR}/usr/share/mbedtls-source/include"
+}
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -f ${B}/tests/test_suite_* ${D}${PTEST_PATH}/tests/
+ find ${D}${PTEST_PATH}/tests/ -type f -name "*.c" -delete
+ cp -fR ${S}/tests/data_files ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-networking/recipes-connectivity/mosquitto/files/2894.patch b/meta-networking/recipes-connectivity/mosquitto/files/2894.patch
new file mode 100644
index 0000000000..7374cbd26f
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mosquitto/files/2894.patch
@@ -0,0 +1,25 @@
+From: Joachim Zobel <jz-2017@heute-morgen.de>
+Date: Wed, 13 Sep 2023 09:55:34 +0200
+Subject: [PATCH] Link correctly with shared websockets library if needed see:
+ https://github.com/eclipse/mosquitto/pull/2751
+
+Patch contributed by Joachim Zobel <jz-2017@heute-morgen.de> and Daniel Engberg <daniel.engberg.lists@pyret.net>
+---
+Upstream-Status: Pending
+
+ src/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 9380a04..dce8313 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -200,7 +200,7 @@ if (WITH_WEBSOCKETS)
+ link_directories(${mosquitto_SOURCE_DIR})
+ endif (WIN32)
+ else (STATIC_WEBSOCKETS)
+- set (MOSQ_LIBS ${MOSQ_LIBS} websockets)
++ set (MOSQ_LIBS ${MOSQ_LIBS} websockets_shared)
+ endif (STATIC_WEBSOCKETS)
+ endif (WITH_WEBSOCKETS)
+
diff --git a/meta-networking/recipes-connectivity/mosquitto/files/2895.patch b/meta-networking/recipes-connectivity/mosquitto/files/2895.patch
new file mode 100644
index 0000000000..853f881754
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mosquitto/files/2895.patch
@@ -0,0 +1,27 @@
+From: Joachim Zobel <jz-2017@heute-morgen.de>
+Date: Wed, 13 Sep 2023 10:05:43 +0200
+Subject: [PATCH] Mosquitto now waits for network-online when starting
+ (Closes: #1036450)
+
+See: https://github.com/eclipse/mosquitto/issues/2878
+---
+Upstream-Status: Pending
+
+ service/systemd/mosquitto.service.simple | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/service/systemd/mosquitto.service.simple b/service/systemd/mosquitto.service.simple
+index 15ee0d6..c2a330b 100644
+--- a/service/systemd/mosquitto.service.simple
++++ b/service/systemd/mosquitto.service.simple
+@@ -1,8 +1,8 @@
+ [Unit]
+ Description=Mosquitto MQTT Broker
+ Documentation=man:mosquitto.conf(5) man:mosquitto(8)
+-After=network.target
+-Wants=network.target
++After=network-online.target
++Wants=network-online.target
+
+ [Service]
+ ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
diff --git a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init
index 9d5963c418..d0da219d6d 100644
--- a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init
+++ b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init
@@ -1,18 +1,18 @@
-#! /bin/sh
+#!/bin/sh
# Based on the Debian initscript for mosquitto
### BEGIN INIT INFO
-# Provides: mosquitto
-# Required-Start: $remote_fs $syslog
-# Required-Stop: $remote_fs $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: mosquitto MQTT message broker
-# Description:
-# This is a message broker that supports version 3.1/3.1.1 of the MQ Telemetry
+# Provides: mosquitto
+# Required-Start: $remote_fs $syslog
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: mosquitto MQTT 3.1/3.1.1 message broker
+# Description:
+# This is a message broker that supports version 3.1 of the MQ Telemetry
# Transport (MQTT) protocol.
-#
+#
# MQTT provides a method of carrying out messaging using a publish/subscribe
# model. It is lightweight, both in terms of bandwidth usage and ease of
# implementation. This makes it particularly useful at the edge of the network
diff --git a/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.15.bb b/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.15.bb
deleted file mode 100644
index d06dd2d9ca..0000000000
--- a/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.15.bb
+++ /dev/null
@@ -1,90 +0,0 @@
-SUMMARY = "Open source MQTT implementation"
-DESCRIPTION = "Mosquitto is an open source (Eclipse licensed) message broker \
-that implements the MQ Telemetry Transport protocol version 3.1, 3.1.1 and \
-5, providing both an MQTT broker and several command-line clients. MQTT \
-provides a lightweight method of carrying out messaging using a \
-publish/subscribe model. "
-HOMEPAGE = "http://mosquitto.org/"
-SECTION = "console/network"
-LICENSE = "EPL-2.0 | EDL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ca9a8f366c6babf593e374d0d7d58749 \
- file://edl-v10;md5=9f6accb1afcb570f8be65039e2fcd49e \
- file://epl-v20;md5=2dd765ca47a05140be15ebafddbeadfe \
- file://NOTICE.md;md5=a7a91b4754c6f7995020d1b49bc829c6 \
-"
-DEPENDS = "uthash cjson"
-
-SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \
- file://mosquitto.init \
- file://1571.patch \
-"
-
-SRC_URI[sha256sum] = "4735b1d32e3f91c7a8896741d88a3022e89730a1ee897946decfa0df27039ac6"
-
-inherit systemd update-rc.d useradd cmake pkgconfig
-
-PACKAGECONFIG ??= "ssl dlt websockets \
- ${@bb.utils.filter('DISTRO_FEATURES','systemd', d)} \
- "
-
-PACKAGECONFIG[manpages] = "-DDOCUMENTATION=ON,-DDOCUMENTATION=OFF,libxslt-native docbook-xsl-stylesheets-native"
-PACKAGECONFIG[dns-srv] = "-DWITH_SRV=ON,-DWITH_SRV=OFF,c-ares"
-PACKAGECONFIG[ssl] = "-DWITH_TLS=ON -DWITH_TLS_PSK=ON -DWITH_EC=ON,-DWITH_TLS=OFF -DWITH_TLS_PSK=OFF -DWITH_EC=OFF,openssl"
-PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd"
-PACKAGECONFIG[websockets] = "-DWITH_WEBSOCKETS=ON,-DWITH_WEBSOCKETS=OFF,libwebsockets"
-PACKAGECONFIG[dlt] = "-DWITH_DLT=ON,-DWITH_DLT=OFF,dlt-daemon"
-
-EXTRA_OECMAKE = " \
- -DWITH_BUNDLED_DEPS=OFF \
- -DWITH_ADNS=ON \
-"
-
-do_install:append() {
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${S}/service/systemd/mosquitto.service.notify ${D}${systemd_unitdir}/system/mosquitto.service
-
- install -d ${D}${sysconfdir}/init.d/
- install -m 0755 ${WORKDIR}/mosquitto.init ${D}${sysconfdir}/init.d/mosquitto
- sed -i -e 's,@SBINDIR@,${sbindir},g' \
- -e 's,@BASE_SBINDIR@,${base_sbindir},g' \
- -e 's,@LOCALSTATEDIR@,${localstatedir},g' \
- -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- ${D}${sysconfdir}/init.d/mosquitto
-}
-
-PACKAGES += "libmosquitto1 libmosquittopp1 ${PN}-clients"
-
-PACKAGE_BEFORE_PN = "${PN}-examples"
-
-FILES:${PN} = "${sbindir}/mosquitto \
- ${bindir}/mosquitto_passwd \
- ${bindir}/mosquitto_ctrl \
- ${libdir}/mosquitto_dynamic_security.so \
- ${sysconfdir}/mosquitto \
- ${sysconfdir}/init.d \
- ${systemd_unitdir}/system/mosquitto.service \
-"
-
-CONFFILES:${PN} += "${sysconfdir}/mosquitto/mosquitto.conf"
-
-FILES:libmosquitto1 = "${libdir}/libmosquitto.so.*"
-
-FILES:libmosquittopp1 = "${libdir}/libmosquittopp.so.*"
-
-FILES:${PN}-clients = "${bindir}/mosquitto_pub \
- ${bindir}/mosquitto_sub \
- ${bindir}/mosquitto_rr \
-"
-
-FILES:${PN}-examples = "${sysconfdir}/mosquitto/*.example"
-
-SYSTEMD_SERVICE:${PN} = "mosquitto.service"
-
-INITSCRIPT_NAME = "mosquitto"
-INITSCRIPT_PARAMS = "defaults 30"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --no-create-home --shell /bin/false \
- --user-group mosquitto"
-
-BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.18.bb b/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.18.bb
new file mode 100644
index 0000000000..ea9eb4857b
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.18.bb
@@ -0,0 +1,92 @@
+SUMMARY = "Open source MQTT implementation"
+DESCRIPTION = "Mosquitto is an open source (Eclipse licensed) message broker \
+that implements the MQ Telemetry Transport protocol version 3.1, 3.1.1 and \
+5, providing both an MQTT broker and several command-line clients. MQTT \
+provides a lightweight method of carrying out messaging using a \
+publish/subscribe model. "
+HOMEPAGE = "http://mosquitto.org/"
+SECTION = "console/network"
+LICENSE = "EPL-2.0 | EDL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ca9a8f366c6babf593e374d0d7d58749 \
+ file://edl-v10;md5=9f6accb1afcb570f8be65039e2fcd49e \
+ file://epl-v20;md5=2dd765ca47a05140be15ebafddbeadfe \
+ file://NOTICE.md;md5=a7a91b4754c6f7995020d1b49bc829c6 \
+"
+DEPENDS = "uthash cjson"
+
+SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \
+ file://mosquitto.init \
+ file://1571.patch \
+ file://2894.patch \
+ file://2895.patch \
+"
+
+SRC_URI[sha256sum] = "d665fe7d0032881b1371a47f34169ee4edab67903b2cd2b4c083822823f4448a"
+
+inherit systemd update-rc.d useradd cmake pkgconfig
+
+PACKAGECONFIG ??= "ssl websockets \
+ ${@bb.utils.filter('DISTRO_FEATURES','systemd', d)} \
+ "
+
+PACKAGECONFIG[manpages] = "-DDOCUMENTATION=ON,-DDOCUMENTATION=OFF,libxslt-native docbook-xsl-stylesheets-native"
+PACKAGECONFIG[dns-srv] = "-DWITH_SRV=ON,-DWITH_SRV=OFF,c-ares"
+PACKAGECONFIG[ssl] = "-DWITH_TLS=ON -DWITH_TLS_PSK=ON -DWITH_EC=ON,-DWITH_TLS=OFF -DWITH_TLS_PSK=OFF -DWITH_EC=OFF,openssl"
+PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd"
+PACKAGECONFIG[websockets] = "-DWITH_WEBSOCKETS=ON,-DWITH_WEBSOCKETS=OFF,libwebsockets"
+PACKAGECONFIG[dlt] = "-DWITH_DLT=ON,-DWITH_DLT=OFF,dlt-daemon"
+
+EXTRA_OECMAKE = " \
+ -DWITH_BUNDLED_DEPS=OFF \
+ -DWITH_ADNS=ON \
+"
+
+do_install:append() {
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${S}/service/systemd/mosquitto.service.notify ${D}${systemd_unitdir}/system/mosquitto.service
+
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/mosquitto.init ${D}${sysconfdir}/init.d/mosquitto
+ sed -i -e 's,@SBINDIR@,${sbindir},g' \
+ -e 's,@BASE_SBINDIR@,${base_sbindir},g' \
+ -e 's,@LOCALSTATEDIR@,${localstatedir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ ${D}${sysconfdir}/init.d/mosquitto
+}
+
+PACKAGES += "libmosquitto1 libmosquittopp1 ${PN}-clients"
+
+PACKAGE_BEFORE_PN = "${PN}-examples"
+
+FILES:${PN} = "${sbindir}/mosquitto \
+ ${bindir}/mosquitto_passwd \
+ ${bindir}/mosquitto_ctrl \
+ ${libdir}/mosquitto_dynamic_security.so \
+ ${sysconfdir}/mosquitto \
+ ${sysconfdir}/init.d \
+ ${systemd_unitdir}/system/mosquitto.service \
+"
+
+CONFFILES:${PN} += "${sysconfdir}/mosquitto/mosquitto.conf"
+
+FILES:libmosquitto1 = "${libdir}/libmosquitto.so.*"
+
+FILES:libmosquittopp1 = "${libdir}/libmosquittopp.so.*"
+
+FILES:${PN}-clients = "${bindir}/mosquitto_pub \
+ ${bindir}/mosquitto_sub \
+ ${bindir}/mosquitto_rr \
+"
+
+FILES:${PN}-examples = "${sysconfdir}/mosquitto/*.example"
+
+SYSTEMD_SERVICE:${PN} = "mosquitto.service"
+
+INITSCRIPT_NAME = "mosquitto"
+INITSCRIPT_PARAMS = "defaults 30"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --shell /bin/false \
+ --user-group mosquitto"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.2.1.bb b/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.2.1.bb
new file mode 100644
index 0000000000..c250ea8779
--- /dev/null
+++ b/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.2.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "nanomsg socket library"
+DESCRIPTION = "nanomsg is a socket library that provides several common \
+communication patterns. It aims to make the networking layer fast, scalable, \
+and easy to use. Implemented in C, it works on a wide range of operating \
+systems with no further dependencies."
+HOMEPAGE = "https://nanomsg.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=587b3fd7fd291e418ff4d2b8f3904755"
+
+SECTION = "libs/networking"
+
+SRC_URI = "git://github.com/nanomsg/nanomsg.git;protocol=https;branch=master"
+SRCREV = "fc3f684a80151a3319446fc96083a9ff384ee4fe"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+# nanomsg documentation generation requires asciidoctor,
+# not asciidoc, and currently there's no asciidoctor-native
+# recipe anywhere in openembedded-core or meta-openembedded
+EXTRA_OECMAKE = " -DNN_ENABLE_DOC=OFF "
+
+# we don't want nanomsg-tools to be renamed to libnanomsg-tools
+DEBIAN_NOAUTONAME:${PN}-tools = "1"
+
+PACKAGES =+ "${PN}-tools"
+FILES:${PN}-tools = "${bindir}/*"
diff --git a/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.2.bb b/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.2.bb
deleted file mode 100644
index fdb781180a..0000000000
--- a/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.2.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "nanomsg socket library"
-DESCRIPTION = "nanomsg is a socket library that provides several common \
-communication patterns. It aims to make the networking layer fast, scalable, \
-and easy to use. Implemented in C, it works on a wide range of operating \
-systems with no further dependencies."
-HOMEPAGE = "https://nanomsg.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=587b3fd7fd291e418ff4d2b8f3904755"
-
-SECTION = "libs/networking"
-
-SRC_URI = "git://github.com/nanomsg/nanomsg.git;protocol=https;branch=master"
-SRCREV = "a081f1720f576d3e72ddce14e159ba90384e5b92"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
-
-# nanomsg documentation generation requires asciidoctor,
-# not asciidoc, and currently there's no asciidoctor-native
-# recipe anywhere in openembedded-core or meta-openembedded
-EXTRA_OECMAKE = " -DNN_ENABLE_DOC=OFF "
-
-# we don't want nanomsg-tools to be renamed to libnanomsg-tools
-DEBIAN_NOAUTONAME:${PN}-tools = "1"
-
-PACKAGES =+ "${PN}-tools"
-FILES:${PN}-tools = "${bindir}/*"
diff --git a/meta-networking/recipes-connectivity/nanomsg/nng_1.5.2.bb b/meta-networking/recipes-connectivity/nanomsg/nng_12.bb
index ab2907110d..ab2907110d 100644
--- a/meta-networking/recipes-connectivity/nanomsg/nng_1.5.2.bb
+++ b/meta-networking/recipes-connectivity/nanomsg/nng_12.bb
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch
new file mode 100644
index 0000000000..2e84a334f0
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0001-fix-ppp-2.5.0-build.patch
@@ -0,0 +1,306 @@
+From 084ef529c5fb816927ca54866f66b340265aa9f6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Eivind=20N=C3=A6ss?= <eivnaes@yahoo.com>
+Date: Sat, 4 Mar 2023 21:20:43 +0000
+Subject: [PATCH] Adding support for compiling against pppd-2.5.0 (or master
+ branch)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Backport
+Signed-off-by: Eivind Næss <eivnaes@yahoo.com>
+---
+ Makefile.am | 5 +-
+ configure.ac | 37 +++++++-
+ src/nm-fortisslvpn-pppd-compat.h | 93 +++++++++++++++++++
+ src/nm-fortisslvpn-pppd-plugin.c | 24 ++---
+ ...-status.h => nm-fortisslvpn-pppd-status.h} | 0
+ src/nm-fortisslvpn-service.c | 2 +-
+ 6 files changed, 145 insertions(+), 16 deletions(-)
+ create mode 100644 src/nm-fortisslvpn-pppd-compat.h
+ rename src/{nm-ppp-status.h => nm-fortisslvpn-pppd-status.h} (100%)
+
+diff --git a/Makefile.am b/Makefile.am
+index b2e5533..e1e5ec9 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -81,7 +81,7 @@ libexec_PROGRAMS += src/nm-fortisslvpn-service
+ src_nm_fortisslvpn_service_SOURCES = \
+ shared/nm-utils/nm-shared-utils.c \
+ shared/nm-utils/nm-shared-utils.h \
+- src/nm-ppp-status.h \
++ src/nm-fortisslvpn-pppd-status.h \
+ src/nm-fortisslvpn-service.h \
+ src/nm-fortisslvpn-service.c \
+ shared/nm-fortissl-properties.c \
+@@ -106,7 +106,8 @@ src_nm_fortisslvpn_pppd_plugin_la_SOURCES = \
+ shared/nm-utils/nm-shared-utils.c \
+ shared/nm-utils/nm-shared-utils.h \
+ src/nm-fortisslvpn-pppd-plugin.c \
+- src/nm-ppp-status.h
++ src/nm-fortisslvpn-pppd-compat.h \
++ src/nm-fortisslvpn-pppd-status.h
+ nodist_src_nm_fortisslvpn_pppd_plugin_la_SOURCES = \
+ src/nm-fortisslvpn-pppd-service-dbus.h
+ src_nm_fortisslvpn_pppd_plugin_la_CPPFLAGS = $(src_cppflags)
+diff --git a/configure.ac b/configure.ac
+index a998707..877493e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -19,7 +19,10 @@ AC_PROG_CC
+ AM_PROG_CC_C_O
+ AC_PROG_INSTALL
+ AC_PROG_LIBTOOL
++AC_PROG_CPP
++AC_PROG_EGREP
+ AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources)
++PKG_PROG_PKG_CONFIG()
+
+ AC_GNU_SOURCE
+
+@@ -37,20 +40,50 @@ dnl
+ dnl Required headers
+ dnl
+ AC_HEADER_STDC
+-AC_CHECK_HEADERS(fcntl.h paths.h sys/ioctl.h sys/time.h syslog.h unistd.h)
++AC_CHECK_HEADERS(fcntl.h paths.h stdarg.h stdbool.h sys/ioctl.h sys/time.h syslog.h unistd.h)
+
+ AC_CHECK_HEADERS(pppd/pppd.h,,
+ AC_MSG_ERROR(couldn't find pppd.h. pppd development headers are required.))
+
++dnl
++dnl Check the presense of other pppd/*.h files
++AC_CHECK_HEADERS([
++ pppd/chap.h
++ pppd/chap-new.h
++ pppd/chap_ms.h
++ ])
++
++dnl
++dnl Versions >= 2.5.0 will have pkg-config support
++PKG_CHECK_EXISTS([pppd],
++ [AS_VAR_SET([pppd_pkgconfig_support],[yes])])
++
++dnl
++dnl Get the version of pppd using pkg-config, assume 2.4.9 if not present
++PPPD_VERSION=2.4.5
++if test x"$pppd_pkgconfig_support" = xyes; then
++ PPPD_VERSION=`$PKG_CONFIG --modversion pppd`
++fi
++
++
+ AC_ARG_WITH([pppd-plugin-dir], AS_HELP_STRING([--with-pppd-plugin-dir=DIR], [path to the pppd plugins directory]))
+
+ if test -n "$with_pppd_plugin_dir" ; then
+ PPPD_PLUGIN_DIR="$with_pppd_plugin_dir"
+ else
+- PPPD_PLUGIN_DIR="${libdir}/pppd/2.4.5"
++ PPPD_PLUGIN_DIR="${libdir}/pppd/$PPPD_VERSION"
+ fi
+ AC_SUBST(PPPD_PLUGIN_DIR)
+
++dnl The version of pppd dictates what code can be included, i.e. enable use of
++dnl #if WITH_PPP_VERSION >= PPP_VERSION(2,5,0) in the code
++AC_DEFINE_UNQUOTED([PPP_VERSION(x,y,z)],
++ [((x & 0xFF) << 16 | (y & 0xFF) << 8 | (z & 0xFF) << 0)],
++ [Macro to help determine the particular version of pppd])
++PPP_VERSION=$(echo $PPPD_VERSION | sed -e "s/\./\,/g")
++AC_DEFINE_UNQUOTED(WITH_PPP_VERSION, PPP_VERSION($PPP_VERSION),
++ [The real version of pppd represented as an int])
++
+ dnl
+ dnl Checks for typedefs, structures, and compiler characteristics.
+ dnl
+diff --git a/src/nm-fortisslvpn-pppd-compat.h b/src/nm-fortisslvpn-pppd-compat.h
+new file mode 100644
+index 0000000..9a02908
+--- /dev/null
++++ b/src/nm-fortisslvpn-pppd-compat.h
+@@ -0,0 +1,93 @@
++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
++/* nm-sstp-service - sstp (and other pppd) integration with NetworkManager
++ *
++ * Copyright (C) Eivind Næss, eivnaes@yahoo.com
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ */
++
++#ifndef __NM_FORTISSLVPN_PPPD_COMPAT_H__
++#define __NM_FORTISSLVPN_PPPD_COMPAT_H__
++
++#define INET6 1
++
++// PPP < 2.5.0 defines and exports VERSION which overlaps with current package VERSION define.
++// this silly macro magic is to work around that.
++
++#undef VERSION
++#include <pppd/pppd.h>
++
++#ifndef PPPD_VERSION
++#define PPPD_VERSION VERSION
++#endif
++
++#include <pppd/fsm.h>
++#include <pppd/ccp.h>
++#include <pppd/eui64.h>
++#include <pppd/ipcp.h>
++#include <pppd/ipv6cp.h>
++#include <pppd/eap.h>
++#include <pppd/upap.h>
++
++#ifdef HAVE_PPPD_CHAP_H
++ #include <pppd/chap.h>
++#endif
++
++#ifdef HAVE_PPPD_CHAP_NEW_H
++ #include <pppd/chap-new.h>
++#endif
++
++#ifdef HAVE_PPPD_CHAP_MS_H
++ #include <pppd/chap_ms.h>
++#endif
++
++#ifndef PPP_PROTO_CHAP
++#define PPP_PROTO_CHAP 0xc223
++#endif
++
++#ifndef PPP_PROTO_EAP
++#define PPP_PROTO_EAP 0xc227
++#endif
++
++#if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
++
++static inline bool debug_on(void)
++{
++ return debug;
++}
++
++static inline const char *ppp_ipparam(void)
++{
++ return ipparam;
++}
++
++static inline int ppp_ifunit(void)
++{
++ return ifunit;
++}
++
++static inline const char *ppp_ifname(void)
++{
++ return ifname;
++}
++
++static inline int ppp_get_mtu(int idx)
++{
++ return netif_get_mtu(idx);
++}
++
++#endif // #if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
++#endif // #ifdef __NM_FORTISSLVPN_PPPD_COMPAT_H__
+diff --git a/src/nm-fortisslvpn-pppd-plugin.c b/src/nm-fortisslvpn-pppd-plugin.c
+index f2ad262..c2efb9a 100644
+--- a/src/nm-fortisslvpn-pppd-plugin.c
++++ b/src/nm-fortisslvpn-pppd-plugin.c
+@@ -23,12 +23,6 @@
+ #define ___CONFIG_H__
+ #include <config.h>
+
+-#include <pppd/pppd.h>
+-#include <pppd/fsm.h>
+-#include <pppd/ipcp.h>
+-
+-#include "nm-default.h"
+-
+ #include <sys/types.h>
+ #include <string.h>
+ #include <sys/socket.h>
+@@ -42,10 +36,12 @@
+ #include <grp.h>
+ #include <glib/gstdio.h>
+
++#include "nm-fortisslvpn-pppd-status.h"
++#include "nm-fortisslvpn-pppd-compat.h"
+ #include "nm-fortisslvpn-pppd-service-dbus.h"
+-#include "nm-fortisslvpn-service.h"
+-#include "nm-ppp-status.h"
+
++#include "nm-default.h"
++#include "nm-fortisslvpn-service.h"
+ #include "nm-utils/nm-shared-utils.h"
+ #include "nm-utils/nm-vpn-plugin-macros.h"
+
+@@ -80,7 +76,7 @@ static struct {
+
+ int plugin_init (void);
+
+-char pppd_version[] = VERSION;
++char pppd_version[] = PPPD_VERSION;
+
+ static void
+ chroot_sandbox (void)
+@@ -296,7 +292,7 @@ get_ip4_routes (in_addr_t ouraddr)
+ static void
+ nm_ip_up (void *data, int arg)
+ {
+- guint32 pppd_made_up_address = htonl (0x0a404040 + ifunit);
++ guint32 pppd_made_up_address = htonl (0x0a404040 + ppp_ifunit());
+ ipcp_options opts = ipcp_gotoptions[0];
+ ipcp_options peer_opts = ipcp_hisoptions[0];
+ GVariantBuilder builder;
+@@ -317,7 +313,7 @@ nm_ip_up (void *data, int arg)
+
+ g_variant_builder_add (&builder, "{sv}",
+ NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV,
+- g_variant_new_string (ifname));
++ g_variant_new_string (ppp_ifname()));
+
+ str = g_getenv ("VPN_GATEWAY");
+ if (str) {
+@@ -442,8 +438,14 @@ plugin_init (void)
+ return -1;
+ }
+
++#if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
+ add_notifier (&phasechange, nm_phasechange, NULL);
+ add_notifier (&ip_up_notifier, nm_ip_up, NULL);
+ add_notifier (&exitnotify, nm_exit_notify, NULL);
++#else
++ ppp_add_notify (NF_PHASE_CHANGE, nm_phasechange, NULL);
++ ppp_add_notify (NF_IP_UP, nm_ip_up, NULL);
++ ppp_add_notify (NF_EXIT, nm_exit_notify, NULL);
++#endif
+ return 0;
+ }
+diff --git a/src/nm-ppp-status.h b/src/nm-fortisslvpn-pppd-status.h
+similarity index 100%
+rename from src/nm-ppp-status.h
+rename to src/nm-fortisslvpn-pppd-status.h
+diff --git a/src/nm-fortisslvpn-service.c b/src/nm-fortisslvpn-service.c
+index 6c340d0..a8483c2 100644
+--- a/src/nm-fortisslvpn-service.c
++++ b/src/nm-fortisslvpn-service.c
+@@ -40,7 +40,7 @@
+ #include <glib/gstdio.h>
+
+ #include "nm-fortissl-properties.h"
+-#include "nm-ppp-status.h"
++#include "nm-fortisslvpn-pppd-status.h"
+ #include "nm-fortisslvpn-pppd-service-dbus.h"
+ #include "nm-utils/nm-shared-utils.h"
+ #include "nm-utils/nm-vpn-plugin-macros.h"
+--
+GitLab
+
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch
new file mode 100644
index 0000000000..6ac8f2b643
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn/0002-fix-ppp-2.5.0-build.patch
@@ -0,0 +1,34 @@
+From 8773f772d39f8eee6edc1fd2e5437c754ed41e1e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Eivind=20N=C3=A6ss?= <eivnaes@yahoo.com>
+Date: Sat, 4 Mar 2023 21:29:54 +0000
+Subject: [PATCH] Fixing configure.ac from previous change
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Backport
+Signed-off-by: Eivind Næss <eivnaes@yahoo.com>
+---
+ configure.ac | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 877493e..a5b4abb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -47,11 +47,7 @@ AC_CHECK_HEADERS(pppd/pppd.h,,
+
+ dnl
+ dnl Check the presense of other pppd/*.h files
+-AC_CHECK_HEADERS([
+- pppd/chap.h
+- pppd/chap-new.h
+- pppd/chap_ms.h
+- ])
++AC_CHECK_HEADERS(pppd/chap.h pppd/chap-new.h pppd/chap_ms.h)
+
+ dnl
+ dnl Versions >= 2.5.0 will have pkg-config support
+--
+GitLab
+
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn_1.4.0.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn_1.4.0.bb
new file mode 100644
index 0000000000..48f50abaf1
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn_1.4.0.bb
@@ -0,0 +1,71 @@
+SUMMARY = "Fortinet SSLVPN support for NetworkManager"
+SECTION = "net/misc"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+DEPENDS = "glib-2.0-native libxml2-native networkmanager ppp python3-packaging-native"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase gettext useradd python3native
+
+SRC_URI = " \
+ ${GNOME_MIRROR}/NetworkManager-fortisslvpn/${@gnome_verdir("${PV}")}/NetworkManager-fortisslvpn-${PV}.tar.xz \
+ file://0001-fix-ppp-2.5.0-build.patch \
+ file://0002-fix-ppp-2.5.0-build.patch \
+"
+SRC_URI[sha256sum] = "b055e26349b516b23585798ab3ef57b436b014800e92a8ac732cfc8e76c5dafa"
+
+S = "${WORKDIR}/NetworkManager-fortisslvpn-${PV}"
+
+# meta-gnome in layers is required using gnome:
+PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome,gtk+3 libnma libsecret,"
+PACKAGECONFIG[gtk4] = "--with-gtk4,--without-gtk4,gtk4,"
+
+EXTRA_OECONF = "--with-pppd-plugin-dir=${libdir}/pppd/${@get_ppp_version(d)}"
+
+def get_ppp_version(d):
+ import re
+
+ pppd_plugin = d.expand('${STAGING_LIBDIR}/pppd')
+ if not os.path.isdir(pppd_plugin):
+ return None
+
+ bb.debug(1, "pppd plugin dir %s" % pppd_plugin)
+ r = re.compile(r"\d*\.\d*\.\d*")
+ for f in os.listdir(pppd_plugin):
+ if os.path.isdir(os.path.join(pppd_plugin, f)):
+ ma = r.match(f)
+ if ma:
+ bb.debug(1, "pppd version dir %s" % f)
+ return f
+ else:
+ bb.debug(1, "under pppd plugin dir %s" % f)
+
+ return None
+
+# gdbus-codegen requires target directories to exist
+do_configure:append() {
+ mkdir -p ${B}/properties
+ mkdir -p ${B}/src
+}
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system nm-fortisslvpn"
+
+FILES:${PN} += " \
+ ${libdir}/NetworkManager/*.so \
+ ${libdir}/pppd/*/*.so \
+ ${nonarch_libdir}/NetworkManager/VPN/nm-fortisslvpn-service.name \
+"
+
+FILES:${PN}-staticdev += " \
+ ${libdir}/NetworkManager/*.a \
+ ${libdir}/pppd/*/*.a \
+"
+
+RDEPENDS:${PN} = " \
+ networkmanager \
+ openfortivpn \
+ ppp \
+"
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager-openconnect_1.2.8.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openconnect_1.2.8.bb
new file mode 100644
index 0000000000..ee19afbd11
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openconnect_1.2.8.bb
@@ -0,0 +1,47 @@
+SUMMARY = "OpenConnect VPN client for NetworkManager"
+SECTION = "net/misc"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=186e8b54342da4f753a62b7748c947db"
+
+DEPENDS = "glib-2.0-native intltool-native libxml2 networkmanager openconnect"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase useradd
+
+SRC_URI = "${GNOME_MIRROR}/NetworkManager-openconnect/${@gnome_verdir("${PV}")}/NetworkManager-openconnect-${PV}.tar.xz"
+
+SRC_URI[sha256sum] = "5dedaa785d82d8e239ddd082bfac5250c691e964464be1807b6827263633cdcc"
+
+S = "${WORKDIR}/NetworkManager-openconnect-${PV}"
+
+# meta-gnome in layers is required using gnome:
+PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome,gtk+3 gcr3 libnma libsecret,"
+PACKAGECONFIG[gtk4] = "--with-gtk4,--without-gtk4,gtk4,"
+
+do_configure:append() {
+ # network-manager-openconnect.metainfo.xml is created in source folder but
+ # compile expects it in build folder. As long as nobody comes up with a
+ # better solution just support build:
+ if [ -e ${S}/appdata/network-manager-openconnect.metainfo.xml ]; then
+ mkdir -p ${B}/appdata
+ cp -f ${S}/appdata/network-manager-openconnect.metainfo.xml ${B}/appdata/
+ fi
+}
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system nm-openconnect"
+
+FILES:${PN} += " \
+ ${libdir}/NetworkManager/*.so \
+ ${nonarch_libdir}/NetworkManager/VPN/nm-openconnect-service.name \
+"
+
+FILES:${PN}-staticdev += " \
+ ${libdir}/NetworkManager/*.a \
+"
+
+RDEPENDS:${PN} = " \
+ networkmanager \
+ openconnect \
+"
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch
new file mode 100644
index 0000000000..eafd497ae2
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch
@@ -0,0 +1,30 @@
+From e09ba80e342b3b24bb2a46e11dae1c30cc61c75c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 3 Sep 2023 08:48:42 -0700
+Subject: [PATCH] linker-script: Do not export _IO_stdin_used
+
+This is glibc specific toolhain issue, it should have been handled in
+toolchain instead of exposing to applications. This was done to fix
+
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=835550
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ linker-script-binary.ver | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/linker-script-binary.ver b/linker-script-binary.ver
+index a2780c0..f030d35 100644
+--- a/linker-script-binary.ver
++++ b/linker-script-binary.ver
+@@ -1,6 +1,5 @@
+ {
+ global:
+- _IO_stdin_used;
+ local:
+ *;
+ };
+--
+2.42.0
+
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.10.0.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.10.0.bb
deleted file mode 100644
index 1fcb435395..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.10.0.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "NetworkManager-openvpn-plugin"
-SECTION = "net/misc"
-
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=100d5a599bead70ddcd70dcd73f2e29c"
-
-DEPENDS = "dbus dbus-glib networkmanager openvpn intltool-native glib-2.0-native"
-
-inherit gnomebase useradd gettext systemd
-
-SRC_URI = "${GNOME_MIRROR}/NetworkManager-openvpn/${@gnome_verdir("${PV}")}/NetworkManager-openvpn-${PV}.tar.xz"
-
-SRC_URI[sha256sum] = "5745d4107f3398a97afbb93f69239b510c9e45eb7fb62d60d9ed0a7297f4d101"
-
-S = "${WORKDIR}/NetworkManager-openvpn-${PV}"
-
-# meta-gnome in layers is required using gnome:
-PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome,gtk+3 libnma libsecret"
-
-do_configure:append() {
- # network-manager-openvpn.metainfo.xml is created in source folder but
- # compile expects it in build folder. As long as nobody comes up with a
- # better solution just support build:
- if [ -e ${S}/appdata/network-manager-openvpn.metainfo.xml ]; then
- mkdir -p ${B}/appdata
- cp -f ${S}/appdata/network-manager-openvpn.metainfo.xml ${B}/appdata/
- fi
-}
-
-do_install:append () {
- rm -rf ${D}${libdir}/NetworkManager/*.la
-}
-
-# Create user and group nm-openvpn that are needed since version 1.0.6
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system nm-openvpn"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/metainfo \
- ${libdir}/NetworkManager/*.so \
- ${nonarch_libdir}/NetworkManager/VPN/nm-openvpn-service.name \
-"
-
-FILES:${PN}-staticdev += " \
- ${libdir}/NetworkManager/*.a \
-"
-
-RDEPENDS:${PN} = " \
- networkmanager \
- openvpn \
-"
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.10.2.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.10.2.bb
new file mode 100644
index 0000000000..cdef11c89c
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.10.2.bb
@@ -0,0 +1,55 @@
+SUMMARY = "NetworkManager-openvpn-plugin"
+SECTION = "net/misc"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=100d5a599bead70ddcd70dcd73f2e29c"
+
+DEPENDS = "dbus dbus-glib networkmanager openvpn intltool-native glib-2.0-native"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase useradd gettext systemd
+
+SRC_URI = "${GNOME_MIRROR}/NetworkManager-openvpn/${@gnome_verdir("${PV}")}/NetworkManager-openvpn-${PV}.tar.xz"
+
+SRC_URI:append:libc-musl = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' file://0001-linker-scripts-Do-not-export-_IO_stdin_used.patch', '', d)}"
+
+SRC_URI[sha256sum] = "62f0f2a8782221b923f212ac2a8ebbc1002efd6a90ee945dad4adfb56d076d21"
+
+S = "${WORKDIR}/NetworkManager-openvpn-${PV}"
+
+# meta-gnome in layers is required using gnome:
+PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome,gtk+3 libnma libsecret"
+
+do_configure:append() {
+ # network-manager-openvpn.metainfo.xml is created in source folder but
+ # compile expects it in build folder. As long as nobody comes up with a
+ # better solution just support build:
+ if [ -e ${S}/appdata/network-manager-openvpn.metainfo.xml ]; then
+ mkdir -p ${B}/appdata
+ cp -f ${S}/appdata/network-manager-openvpn.metainfo.xml ${B}/appdata/
+ fi
+}
+
+do_install:append () {
+ rm -rf ${D}${libdir}/NetworkManager/*.la
+}
+
+# Create user and group nm-openvpn that are needed since version 1.0.6
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system nm-openvpn"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${libdir}/NetworkManager/*.so \
+ ${nonarch_libdir}/NetworkManager/VPN/nm-openvpn-service.name \
+"
+
+FILES:${PN}-staticdev += " \
+ ${libdir}/NetworkManager/*.a \
+"
+
+RDEPENDS:${PN} = " \
+ networkmanager \
+ openvpn \
+"
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch
new file mode 100644
index 0000000000..71ad01f51c
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-linker-scripts-Do-not-export-_IO_stdin_used.patch
@@ -0,0 +1,41 @@
+From 3ee6967689b3da30cc4551885d8bcdd44a7a9b52 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 31 Aug 2023 21:16:55 -0700
+Subject: [PATCH] linker-scripts: Do not export _IO_stdin_used
+
+This is glibc specific and it is not needed with musl.
+See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=835550
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ linker-script-binary.ver | 1 -
+ tools/create-exports-NetworkManager.sh | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/linker-script-binary.ver b/linker-script-binary.ver
+index a2780c0..f030d35 100644
+--- a/linker-script-binary.ver
++++ b/linker-script-binary.ver
+@@ -1,6 +1,5 @@
+ {
+ global:
+- _IO_stdin_used;
+ local:
+ *;
+ };
+diff --git a/tools/create-exports-NetworkManager.sh b/tools/create-exports-NetworkManager.sh
+index ef4b381..60865ad 100755
+--- a/tools/create-exports-NetworkManager.sh
++++ b/tools/create-exports-NetworkManager.sh
+@@ -54,7 +54,6 @@ get_symbols_nm () {
+
+ get_symbols_explicit() {
+ cat <<EOF | _sort
+-_IO_stdin_used
+ EOF
+ }
+
+--
+2.42.0
+
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.40.0.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.40.0.bb
deleted file mode 100644
index 10241e12a6..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.40.0.bb
+++ /dev/null
@@ -1,305 +0,0 @@
-SUMMARY = "NetworkManager"
-HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager"
-SECTION = "net/misc"
-
-LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
-"
-
-DEPENDS = " \
- coreutils-native \
- intltool-native \
- libxslt-native \
- libnl \
- udev \
- util-linux \
- libndp \
- libnewt \
- curl \
- dbus \
-"
-DEPENDS:append:class-target = " bash-completion"
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gettext update-rc.d systemd gobject-introspection gtk-doc update-alternatives upstream-version-is-even
-
-SRC_URI = " \
- ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
- file://${BPN}.initd \
- file://enable-dhcpcd.conf \
- file://enable-iwd.conf \
-"
-SRC_URI[sha256sum] = "aee7e057bc2cca5dab84e41f15f1da8b795eb290747b04cbeee822bad9e9fc03"
-
-S = "${WORKDIR}/NetworkManager-${PV}"
-
-# ['auto', 'symlink', 'file', 'netconfig', 'resolvconf']
-NETWORKMANAGER_DNS_RC_MANAGER_DEFAULT ??= "auto"
-
-# ['dhcpcanon', 'dhclient', 'dhcpcd', 'internal', 'nettools']
-NETWORKMANAGER_DHCP_DEFAULT ??= "internal"
-
-# The default gets detected based on whether /usr/sbin/nft or /usr/sbin/iptables is installed, with nftables preferred.
-# ['', 'iptables', 'nftables']
-NETWORKMANAGER_FIREWALL_DEFAULT ??= "nftables"
-
-EXTRA_OEMESON = "\
- -Difcfg_rh=false \
- -Dtests=yes \
- -Dnmtui=true \
- -Dudev_dir=${nonarch_base_libdir}/udev \
- -Dlibpsl=false \
- -Dqt=false \
- -Dconfig_dns_rc_manager_default=${NETWORKMANAGER_DNS_RC_MANAGER_DEFAULT} \
- -Dconfig_dhcp_default=${NETWORKMANAGER_DHCP_DEFAULT} \
- -Ddhcpcanon=false \
- -Diptables=${sbindir}/iptables \
- -Dnft=${sbindir}/nft \
-"
-
-# stolen from https://github.com/void-linux/void-packages/blob/master/srcpkgs/NetworkManager/template
-# avoids:
-# | ../NetworkManager-1.16.0/libnm-core/nm-json.c:106:50: error: 'RTLD_DEEPBIND' undeclared (first use in this function); did you mean 'RTLD_DEFAULT'?
-CFLAGS:append:libc-musl = " \
- -DRTLD_DEEPBIND=0 \
-"
-
-do_compile:prepend() {
- export GI_TYPELIB_PATH="${B}}/src/libnm-client-impl${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}"
-}
-
-PACKAGECONFIG ??= "readline nss ifupdown dnsmasq nmcli vala \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit', '', d)} \
-"
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'vala', 'vala', '', d)}
-
-PACKAGECONFIG[systemd] = "\
- -Dsystemdsystemunitdir=${systemd_unitdir}/system -Dsession_tracking=systemd,\
- -Dsystemdsystemunitdir=no -Dsystemd_journal=false -Dsession_tracking=no\
-"
-PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false,polkit"
-PACKAGECONFIG[bluez5] = "-Dbluez5_dun=true,-Dbluez5_dun=false,bluez5"
-# consolekit is not picked by shlibs, so add it to RDEPENDS too
-PACKAGECONFIG[consolekit] = "-Dsession_tracking_consolekit=true,-Dsession_tracking_consolekit=false,consolekit,consolekit"
-PACKAGECONFIG[modemmanager] = "-Dmodem_manager=true,-Dmodem_manager=false,modemmanager mobile-broadband-provider-info"
-PACKAGECONFIG[ppp] = "-Dppp=true -Dpppd=${sbindir}/pppd,-Dppp=false,ppp"
-PACKAGECONFIG[dnsmasq] = "-Ddnsmasq=${bindir}/dnsmasq"
-PACKAGECONFIG[nss] = "-Dcrypto=nss,,nss"
-PACKAGECONFIG[resolvconf] = "-Dresolvconf=${base_sbindir}/resolvconf,-Dresolvconf=no,,resolvconf"
-PACKAGECONFIG[gnutls] = "-Dcrypto=gnutls,,gnutls"
-PACKAGECONFIG[crypto-null] = "-Dcrypto=null"
-PACKAGECONFIG[wifi] = "-Dwext=true -Dwifi=true,-Dwext=false -Dwifi=false"
-PACKAGECONFIG[iwd] = "-Diwd=true,-Diwd=false"
-PACKAGECONFIG[ifupdown] = "-Difupdown=true,-Difupdown=false"
-PACKAGECONFIG[cloud-setup] = "-Dnm_cloud_setup=true,-Dnm_cloud_setup=false"
-PACKAGECONFIG[nmcli] = "-Dnmcli=true,-Dnmcli=false"
-PACKAGECONFIG[readline] = "-Dreadline=libreadline,,readline"
-PACKAGECONFIG[libedit] = "-Dreadline=libedit,,libedit"
-PACKAGECONFIG[ovs] = "-Dovs=true,-Dovs=false,jansson"
-PACKAGECONFIG[audit] = "-Dlibaudit=yes,-Dlibaudit=no"
-PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux"
-PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false"
-PACKAGECONFIG[dhcpcd] = "-Ddhcpcd=yes,-Ddhcpcd=no,,dhcpcd"
-PACKAGECONFIG[dhclient] = "-Ddhclient=yes,-Ddhclient=no,,dhcp"
-PACKAGECONFIG[concheck] = "-Dconcheck=true,-Dconcheck=false"
-
-
-PACKAGES =+ " \
- libnm \
- ${PN}-adsl \
- ${PN}-bluetooth \
- ${PN}-cloud-setup \
- ${PN}-nmcli \
- ${PN}-nmcli-bash-completion \
- ${PN}-nmtui \
- ${PN}-wifi \
- ${PN}-wwan \
- ${PN}-ovs \
- ${PN}-ppp \
- ${PN}-daemon \
-"
-
-SYSTEMD_PACKAGES = "${PN}-daemon ${PN}-cloud-setup"
-INITSCRIPT_PACKAGES = "${PN}-daemon"
-
-NETWORKMANAGER_PLUGINDIR = "${libdir}/NetworkManager/${PV}"
-NETWORKMANAGER_DISPATCHERDIR = "${nonarch_libdir}/NetworkManager/dispatcher.d"
-
-
-SUMMARY:libnm = "Libraries for adding NetworkManager support to applications"
-FILES:libnm = "\
- ${libdir}/libnm.so.* \
- ${libdir}/girepository-1.0/NM-1.0.typelib \
-"
-
-SUMMARY:${PN}-adsl = "ADSL device plugin for NetworkManager"
-FILES:${PN}-adsl = "${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-adsl.so"
-RDEPENDS:${PN}-adsl += "${PN}-daemon"
-
-SUMMARY:${PN}-bluetooth = "Bluetooth device plugin for NetworkManager"
-FILES:${PN}-bluetooth = "${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-bluetooth.so"
-RDEPENDS:${PN}-bluetooth += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG', 'bluez5', '${PN}-wwan bluez5', '', d)}"
-
-SUMMARY:${PN}-cloud-setup = "Automatically configure NetworkManager in cloud"
-FILES:${PN}-cloud-setup = " \
- ${libexecdir}/nm-cloud-setup \
- ${systemd_system_unitdir}/nm-cloud-setup.service \
- ${systemd_system_unitdir}/nm-cloud-setup.timer \
- ${libdir}/NetworkManager/dispatcher.d/90-nm-cloud-setup.sh \
- ${libdir}/NetworkManager/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh \
-"
-RDEPENDS:${PN}-cloud-setup += "${PN}-daemon"
-ALLOW_EMPTY:${PN}-cloud-setup = "1"
-SYSTEMD_SERVICE:${PN}-cloud-setup = "${@bb.utils.contains('PACKAGECONFIG', 'cloud-setup', 'nm-cloud-setup.service nm-cloud-setup.timer', '', d)}"
-
-SUMMARY:${PN}-nmcli = "NetworkManager command line client"
-FILES:${PN}-nmcli = " \
- ${bindir}/nmcli \
-"
-RDEPENDS:${PN}-nmcli += "${PN}-daemon"
-
-SUMMARY:${PN}-nmcli-bash-completion = "NetworkManager command line client bash completion"
-FILES:${PN}-nmcli-bash-completion = "${datadir}/bash-completion/completions/nmcli"
-RDEPENDS:${PN}-nmcli-bash-completion = "bash-completion"
-
-SUMMARY:${PN}-nmtui = "NetworkManager curses-based UI"
-FILES:${PN}-nmtui = " \
- ${bindir}/nmtui \
- ${bindir}/nmtui-edit \
- ${bindir}/nmtui-connect \
- ${bindir}/nmtui-hostname \
-"
-RDEPENDS:${PN}-nmtui += "${PN}-daemon"
-
-SUMMARY:${PN}-wifi = "Wifi plugin for NetworkManager"
-FILES:${PN}-wifi = "\
- ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-wifi.so \
- ${libdir}/NetworkManager/conf.d/enable-iwd.conf \
-"
-def get_wifi_deps(d):
- packageconfig = (d.getVar('PACKAGECONFIG') or "").split()
- if 'wifi' in packageconfig:
- if 'iwd' in packageconfig:
- return 'iwd'
- else:
- return 'wpa-supplicant'
- else:
- return ''
-RDEPENDS:${PN}-wifi += "${PN}-daemon ${@get_wifi_deps(d)}"
-
-SUMMARY:${PN}-wwan = "Mobile broadband device plugin for NetworkManager"
-FILES:${PN}-wwan = "\
- ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-wwan.so \
- ${NETWORKMANAGER_PLUGINDIR}/libnm-wwan.so \
-"
-RDEPENDS:${PN}-wwan += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG','modemmanager','modemmanager','',d)}"
-
-SUMMARY:${PN}-ovs = "Open vSwitch device plugin for NetworkManager"
-FILES:${PN}-ovs = "\
- ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-ovs.so \
- ${systemd_system_unitdir}/NetworkManager.service.d/NetworkManager-ovs.conf \
-"
-RDEPENDS:${PN}-ovs += "${PN}-daemon"
-
-SUMMARY:${PN}-ppp = "PPP plugin for NetworkManager"
-FILES:${PN}-ppp = "\
- ${NETWORKMANAGER_PLUGINDIR}/libnm-ppp-plugin.so \
- ${libdir}/pppd/*/nm-pppd-plugin.so \
-"
-RDEPENDS:${PN}-ppp += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG','ppp','ppp','',d)}"
-
-FILES:${PN}-dev += " \
- ${libdir}/pppd/*/*.la \
- ${libdir}/NetworkManager/*.la \
- ${NETWORKMANAGER_PLUGINDIR}/*.la \
- ${datadir}/dbus-1/interfaces/*.xml \
-"
-
-SUMMARY:${PN}-daemon += "The NetworkManager daemon"
-FILES:${PN}-daemon += " \
- ${bindir}/nm-online \
- ${datadir}/dbus-1 \
- ${datadir}/polkit-1 \
- ${libdir}/NetworkManager \
- ${libexecdir} \
- ${localstatedir}/lib/NetworkManager \
- ${NETWORKMANAGER_DISPATCHERDIR} \
- ${nonarch_base_libdir}/udev/* \
- ${nonarch_libdir}/firewalld \
- ${nonarch_libdir}/NetworkManager/conf.d \
- ${nonarch_libdir}/NetworkManager/dispatcher.d/no-wait.d \
- ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-down.d \
- ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-up.d \
- ${nonarch_libdir}/NetworkManager/system-connections \
- ${nonarch_libdir}/NetworkManager/VPN \
- ${sbindir}/NetworkManager \
- ${sysconfdir}/init.d/network-manager \
- ${sysconfdir}/NetworkManager \
- ${sysconfdir}/resolv-conf.NetworkManager \
- ${sysconfdir}/sysconfig/network-scripts \
- ${systemd_system_unitdir} \
-"
-RDEPENDS:${PN}-daemon += "\
- ${@bb.utils.contains('PACKAGECONFIG', 'ifupdown', 'bash', '', d)} \
-"
-RRECOMMENDS:${PN}-daemon += "\
- ${NETWORKMANAGER_FIREWALL_DEFAULT} \
- ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
-"
-INITSCRIPT_NAME:${PN}-daemon = "network-manager"
-SYSTEMD_SERVICE:${PN}-daemon = "\
- NetworkManager.service \
- NetworkManager-dispatcher.service \
-"
-RCONFLICTS:${PN}-daemon += "connman"
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE:${PN}-daemon = "${@bb.utils.contains('DISTRO_FEATURES','systemd','resolv-conf','',d)}"
-ALTERNATIVE_TARGET[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${sysconfdir}/resolv-conf.NetworkManager','',d)}"
-ALTERNATIVE_LINK_NAME[resolv-conf] = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${sysconfdir}/resolv.conf','',d)}"
-
-
-# The networkmanager package is an empty meta package which weakly depends on all the compiled features.
-# Install this package to get all plugins and related dependencies installed. Alternatively just install
-# plugins and related dependencies e.g. by installing networkmanager-wifi or networkmanager-wwan
-# packages to the firmware.
-ALLOW_EMPTY:${PN} = "1"
-RRECOMMENDS:${PN} += "\
- ${@bb.utils.contains('PACKAGECONFIG','adsl','${PN}-adsl','',d)} \
- ${@bb.utils.contains('PACKAGECONFIG','bluez5','${PN}-bluetooth','',d)} \
- ${@bb.utils.contains('PACKAGECONFIG','cloud-setup','${PN}-cloud-setup','',d)} \
- ${@bb.utils.contains('PACKAGECONFIG','nmcli','${PN}-nmcli','',d)} \
- ${@bb.utils.contains('PACKAGECONFIG','nmtui','${PN}-nmtui','',d)} \
- ${@bb.utils.contains('PACKAGECONFIG','wifi','${PN}-wifi','',d)} \
- ${@bb.utils.contains('PACKAGECONFIG','wwan','${PN}-wwan','',d)} \
- ${@bb.utils.contains('PACKAGECONFIG','ovs','${PN}-ovs','',d)} \
- ${@bb.utils.contains('PACKAGECONFIG','ppp','${PN}-ppp','',d)} \
-"
-
-do_install:append() {
- install -Dm 0755 ${WORKDIR}/${BPN}.initd ${D}${sysconfdir}/init.d/network-manager
-
- rm -rf ${D}/run ${D}${localstatedir}/run
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- # For read-only filesystem, do not create links during bootup
- ln -sf ../run/NetworkManager/resolv.conf ${D}${sysconfdir}/resolv-conf.NetworkManager
-
- # systemd v210 and newer do not need this rule file
- rm ${D}/${nonarch_base_libdir}/udev/rules.d/84-nm-drivers.rules
- fi
-
- # Enable iwd if compiled
- if ${@bb.utils.contains('PACKAGECONFIG','iwd','true','false',d)}; then
- install -Dm 0644 ${WORKDIR}/enable-iwd.conf ${D}${libdir}/NetworkManager/conf.d/enable-iwd.conf
- fi
-
- # Enable dhcpd if compiled
- if ${@bb.utils.contains('PACKAGECONFIG','dhcpcd','true','false',d)}; then
- install -Dm 0644 ${WORKDIR}/enable-dhcpcd.conf ${D}${libdir}/NetworkManager/conf.d/enable-dhcpcd.conf
- fi
-}
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.46.0.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.46.0.bb
new file mode 100644
index 0000000000..be30154a36
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.46.0.bb
@@ -0,0 +1,322 @@
+SUMMARY = "NetworkManager is a program for providing detection and \
+configuration for systems to automatically connect to networks."
+
+DESCRIPTION = "NetworkManager is a program for providing detection and \
+configuration for systems to automatically connect to networks. \
+NetworkManager's functionality can be useful for both wireless and wired \
+networks. For wireless networks, NetworkManager prefers known wireless \
+networks and has the ability to switch to the most reliable network. \
+NetworkManager-aware applications can switch from online and offline mode. \
+NetworkManager also prefers wired connections over wireless ones, has support \
+for modem connections and certain types of VPN."
+
+HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager"
+SECTION = "net/misc"
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
+"
+
+DEPENDS = " \
+ python3-pygobject-native \
+ coreutils-native \
+ intltool-native \
+ libxslt-native \
+ libnl \
+ udev \
+ util-linux \
+ libndp \
+ curl \
+ dbus \
+"
+DEPENDS:append:class-target = " bash-completion"
+
+inherit gnomebase gettext update-rc.d systemd gobject-introspection gtk-doc update-alternatives upstream-version-is-even
+
+SRC_URI = " \
+ ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
+ file://${BPN}.initd \
+ file://enable-dhcpcd.conf \
+ file://enable-iwd.conf \
+"
+SRC_URI:append:libc-musl = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' file://0001-linker-scripts-Do-not-export-_IO_stdin_used.patch', '', d)}"
+
+SRC_URI[sha256sum] = "722649e25362693b334371473802a729b0ec9ee283375096905f868808e74068"
+
+S = "${WORKDIR}/NetworkManager-${PV}"
+
+# ['auto', 'symlink', 'file', 'netconfig', 'resolvconf']
+NETWORKMANAGER_DNS_RC_MANAGER_DEFAULT ??= "auto"
+
+# ['dhcpcanon', 'dhclient', 'dhcpcd', 'internal', 'nettools']
+NETWORKMANAGER_DHCP_DEFAULT ??= "internal"
+
+# The default gets detected based on whether /usr/sbin/nft or /usr/sbin/iptables is installed, with nftables preferred.
+# ['', 'iptables', 'nftables']
+NETWORKMANAGER_FIREWALL_DEFAULT ??= "nftables"
+
+EXTRA_OEMESON = "\
+ -Difcfg_rh=false \
+ -Dtests=yes \
+ -Dnmtui=true \
+ -Dudev_dir=${nonarch_base_libdir}/udev \
+ -Dlibpsl=false \
+ -Dqt=false \
+ -Dconfig_dns_rc_manager_default=${NETWORKMANAGER_DNS_RC_MANAGER_DEFAULT} \
+ -Dconfig_dhcp_default=${NETWORKMANAGER_DHCP_DEFAULT} \
+ -Ddhcpcanon=false \
+ -Diptables=${sbindir}/iptables \
+ -Dnft=${sbindir}/nft \
+"
+
+# stolen from https://github.com/void-linux/void-packages/blob/master/srcpkgs/NetworkManager/template
+# avoids:
+# | ../NetworkManager-1.16.0/libnm-core/nm-json.c:106:50: error: 'RTLD_DEEPBIND' undeclared (first use in this function); did you mean 'RTLD_DEFAULT'?
+CFLAGS:append:libc-musl = " \
+ -DRTLD_DEEPBIND=0 \
+"
+
+do_compile:prepend() {
+ export GI_TYPELIB_PATH="${B}}/src/libnm-client-impl${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}"
+}
+
+PACKAGECONFIG ??= "readline nss ifupdown dnsmasq nmcli vala \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'wifi polkit ppp', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux audit', '', d)} \
+"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'vala', 'vala', '', d)}
+
+PACKAGECONFIG[systemd] = "\
+ -Dsystemdsystemunitdir=${systemd_unitdir}/system -Dsession_tracking=systemd,\
+ -Dsystemdsystemunitdir=no -Dsystemd_journal=false -Dsession_tracking=no\
+"
+PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false,polkit"
+PACKAGECONFIG[bluez5] = "-Dbluez5_dun=true,-Dbluez5_dun=false,bluez5"
+# consolekit is not picked by shlibs, so add it to RDEPENDS too
+PACKAGECONFIG[consolekit] = "-Dsession_tracking_consolekit=true,-Dsession_tracking_consolekit=false,consolekit,consolekit"
+PACKAGECONFIG[modemmanager] = "-Dmodem_manager=true,-Dmodem_manager=false,modemmanager mobile-broadband-provider-info,modemmanager mobile-broadband-provider-info"
+PACKAGECONFIG[ppp] = "-Dppp=true -Dpppd=${sbindir}/pppd,-Dppp=false,ppp"
+PACKAGECONFIG[dnsmasq] = "-Ddnsmasq=${bindir}/dnsmasq"
+PACKAGECONFIG[nss] = "-Dcrypto=nss,,nss"
+PACKAGECONFIG[resolvconf] = "-Dresolvconf=${base_sbindir}/resolvconf,-Dresolvconf=no,,resolvconf"
+PACKAGECONFIG[gnutls] = "-Dcrypto=gnutls,,gnutls"
+PACKAGECONFIG[crypto-null] = "-Dcrypto=null"
+PACKAGECONFIG[wifi] = "-Dwext=true -Dwifi=true,-Dwext=false -Dwifi=false"
+PACKAGECONFIG[iwd] = "-Diwd=true,-Diwd=false"
+PACKAGECONFIG[ifupdown] = "-Difupdown=true,-Difupdown=false"
+PACKAGECONFIG[cloud-setup] = "-Dnm_cloud_setup=true,-Dnm_cloud_setup=false"
+PACKAGECONFIG[nmcli] = "-Dnmcli=true,-Dnmcli=false"
+PACKAGECONFIG[nmtui] = "-Dnmtui=true,-Dnmtui=false,libnewt"
+PACKAGECONFIG[readline] = "-Dreadline=libreadline,,readline"
+PACKAGECONFIG[libedit] = "-Dreadline=libedit,,libedit"
+PACKAGECONFIG[ovs] = "-Dovs=true,-Dovs=false,jansson"
+PACKAGECONFIG[audit] = "-Dlibaudit=yes,-Dlibaudit=no"
+PACKAGECONFIG[selinux] = "-Dselinux=true,-Dselinux=false,libselinux"
+PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false"
+PACKAGECONFIG[dhcpcd] = "-Ddhcpcd=${base_sbindir}/dhcpcd,-Ddhcpcd=no,,dhcpcd"
+PACKAGECONFIG[dhclient] = "-Ddhclient=yes,-Ddhclient=no,,dhcp"
+PACKAGECONFIG[concheck] = "-Dconcheck=true,-Dconcheck=false"
+PACKAGECONFIG[adsl] = ",,"
+PACKAGECONFIG[wwan] = ",,"
+# The following PACKAGECONFIG is used to determine whether NM is managing /etc/resolv.conf itself or not
+PACKAGECONFIG[man-resolv-conf] = ",,"
+
+
+PACKAGES =+ " \
+ libnm \
+ ${PN}-adsl \
+ ${PN}-bluetooth \
+ ${PN}-cloud-setup \
+ ${PN}-nmcli \
+ ${PN}-nmcli-bash-completion \
+ ${PN}-nmtui \
+ ${PN}-wifi \
+ ${PN}-wwan \
+ ${PN}-ovs \
+ ${PN}-ppp \
+ ${PN}-daemon \
+"
+
+SYSTEMD_PACKAGES = "${PN}-daemon ${PN}-cloud-setup"
+INITSCRIPT_PACKAGES = "${PN}-daemon"
+
+NETWORKMANAGER_PLUGINDIR = "${libdir}/NetworkManager/${PV}"
+NETWORKMANAGER_DISPATCHERDIR = "${nonarch_libdir}/NetworkManager/dispatcher.d"
+
+
+SUMMARY:libnm = "Libraries for adding NetworkManager support to applications"
+FILES:libnm = "\
+ ${libdir}/libnm.so.* \
+ ${libdir}/girepository-1.0/NM-1.0.typelib \
+"
+
+SUMMARY:${PN}-adsl = "ADSL device plugin for NetworkManager"
+FILES:${PN}-adsl = "${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-adsl.so"
+RDEPENDS:${PN}-adsl += "${PN}-daemon"
+
+SUMMARY:${PN}-bluetooth = "Bluetooth device plugin for NetworkManager"
+FILES:${PN}-bluetooth = "${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-bluetooth.so"
+RDEPENDS:${PN}-bluetooth += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG', 'bluez5', '${PN}-wwan bluez5', '', d)}"
+
+SUMMARY:${PN}-cloud-setup = "Automatically configure NetworkManager in cloud"
+FILES:${PN}-cloud-setup = " \
+ ${libexecdir}/nm-cloud-setup \
+ ${systemd_system_unitdir}/nm-cloud-setup.service \
+ ${systemd_system_unitdir}/nm-cloud-setup.timer \
+ ${libdir}/NetworkManager/dispatcher.d/90-nm-cloud-setup.sh \
+ ${libdir}/NetworkManager/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh \
+"
+RDEPENDS:${PN}-cloud-setup += "${PN}-daemon"
+ALLOW_EMPTY:${PN}-cloud-setup = "1"
+SYSTEMD_SERVICE:${PN}-cloud-setup = "${@bb.utils.contains('PACKAGECONFIG', 'cloud-setup', 'nm-cloud-setup.service nm-cloud-setup.timer', '', d)}"
+
+SUMMARY:${PN}-nmcli = "NetworkManager command line client"
+FILES:${PN}-nmcli = " \
+ ${bindir}/nmcli \
+"
+RDEPENDS:${PN}-nmcli += "${PN}-daemon"
+
+SUMMARY:${PN}-nmcli-bash-completion = "NetworkManager command line client bash completion"
+FILES:${PN}-nmcli-bash-completion = "${datadir}/bash-completion/completions/nmcli"
+RDEPENDS:${PN}-nmcli-bash-completion = "bash-completion"
+
+SUMMARY:${PN}-nmtui = "NetworkManager curses-based UI"
+FILES:${PN}-nmtui = " \
+ ${bindir}/nmtui \
+ ${bindir}/nmtui-edit \
+ ${bindir}/nmtui-connect \
+ ${bindir}/nmtui-hostname \
+"
+RDEPENDS:${PN}-nmtui += "${PN}-daemon"
+
+SUMMARY:${PN}-wifi = "Wifi plugin for NetworkManager"
+FILES:${PN}-wifi = "\
+ ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-wifi.so \
+ ${libdir}/NetworkManager/conf.d/enable-iwd.conf \
+"
+def get_wifi_deps(d):
+ packageconfig = (d.getVar('PACKAGECONFIG') or "").split()
+ if 'wifi' in packageconfig:
+ if 'iwd' in packageconfig:
+ return 'iwd'
+ else:
+ return 'wpa-supplicant'
+ else:
+ return ''
+RDEPENDS:${PN}-wifi += "${PN}-daemon ${@get_wifi_deps(d)}"
+
+SUMMARY:${PN}-wwan = "Mobile broadband device plugin for NetworkManager"
+FILES:${PN}-wwan = "\
+ ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-wwan.so \
+ ${NETWORKMANAGER_PLUGINDIR}/libnm-wwan.so \
+"
+RDEPENDS:${PN}-wwan += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG','modemmanager','modemmanager','',d)}"
+
+SUMMARY:${PN}-ovs = "Open vSwitch device plugin for NetworkManager"
+FILES:${PN}-ovs = "\
+ ${NETWORKMANAGER_PLUGINDIR}/libnm-device-plugin-ovs.so \
+ ${systemd_system_unitdir}/NetworkManager.service.d/NetworkManager-ovs.conf \
+"
+RDEPENDS:${PN}-ovs += "${PN}-daemon"
+
+SUMMARY:${PN}-ppp = "PPP plugin for NetworkManager"
+FILES:${PN}-ppp = "\
+ ${NETWORKMANAGER_PLUGINDIR}/libnm-ppp-plugin.so \
+ ${libdir}/pppd/*/nm-pppd-plugin.so \
+"
+RDEPENDS:${PN}-ppp += "${PN}-daemon ${@bb.utils.contains('PACKAGECONFIG','ppp','ppp','',d)}"
+
+FILES:${PN}-dev += " \
+ ${libdir}/pppd/*/*.la \
+ ${libdir}/NetworkManager/*.la \
+ ${NETWORKMANAGER_PLUGINDIR}/*.la \
+ ${datadir}/dbus-1/interfaces/*.xml \
+"
+
+SUMMARY:${PN}-daemon += "The NetworkManager daemon"
+FILES:${PN}-daemon += " \
+ ${bindir}/nm-online \
+ ${datadir}/dbus-1 \
+ ${datadir}/polkit-1 \
+ ${libdir}/NetworkManager \
+ ${libexecdir} \
+ ${localstatedir}/lib/NetworkManager \
+ ${NETWORKMANAGER_DISPATCHERDIR} \
+ ${nonarch_base_libdir}/udev/* \
+ ${nonarch_libdir}/firewalld \
+ ${nonarch_libdir}/NetworkManager/conf.d \
+ ${nonarch_libdir}/NetworkManager/dispatcher.d/no-wait.d \
+ ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-down.d \
+ ${nonarch_libdir}/NetworkManager/dispatcher.d/pre-up.d \
+ ${nonarch_libdir}/NetworkManager/system-connections \
+ ${nonarch_libdir}/NetworkManager/VPN \
+ ${sbindir}/NetworkManager \
+ ${sysconfdir}/init.d/network-manager \
+ ${sysconfdir}/NetworkManager \
+ ${sysconfdir}/resolv-conf.NetworkManager \
+ ${sysconfdir}/sysconfig/network-scripts \
+ ${systemd_system_unitdir} \
+"
+RDEPENDS:${PN}-daemon += "\
+ ${@bb.utils.contains('PACKAGECONFIG', 'ifupdown', 'bash', '', d)} \
+"
+RRECOMMENDS:${PN}-daemon += "\
+ ${NETWORKMANAGER_FIREWALL_DEFAULT} \
+ ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
+"
+INITSCRIPT_NAME:${PN}-daemon = "network-manager"
+SYSTEMD_SERVICE:${PN}-daemon = "\
+ NetworkManager.service \
+ NetworkManager-dispatcher.service \
+"
+RCONFLICTS:${PN}-daemon += "connman"
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE:${PN}-daemon = "${@bb.utils.contains('PACKAGECONFIG','man-resolv-conf','resolv-conf','',d)}"
+ALTERNATIVE_TARGET[resolv-conf] = "${@bb.utils.contains('PACKAGECONFIG','man-resolv-conf','${sysconfdir}/resolv-conf.NetworkManager','',d)}"
+ALTERNATIVE_LINK_NAME[resolv-conf] = "${@bb.utils.contains('PACKAGECONFIG','man-resolv-conf','${sysconfdir}/resolv.conf','',d)}"
+
+
+# The networkmanager package is an empty meta package which weakly depends on all the compiled features.
+# Install this package to get all plugins and related dependencies installed. Alternatively just install
+# plugins and related dependencies e.g. by installing networkmanager-wifi or networkmanager-wwan
+# packages to the firmware.
+ALLOW_EMPTY:${PN} = "1"
+RRECOMMENDS:${PN} += "\
+ ${@bb.utils.contains('PACKAGECONFIG','adsl','${PN}-adsl','',d)} \
+ ${@bb.utils.contains('PACKAGECONFIG','bluez5','${PN}-bluetooth','',d)} \
+ ${@bb.utils.contains('PACKAGECONFIG','cloud-setup','${PN}-cloud-setup','',d)} \
+ ${@bb.utils.contains('PACKAGECONFIG','nmcli','${PN}-nmcli','',d)} \
+ ${@bb.utils.contains('PACKAGECONFIG','nmtui','${PN}-nmtui','',d)} \
+ ${@bb.utils.contains('PACKAGECONFIG','wifi','${PN}-wifi','',d)} \
+ ${@bb.utils.contains('PACKAGECONFIG','wwan','${PN}-wwan','',d)} \
+ ${@bb.utils.contains('PACKAGECONFIG','ovs','${PN}-ovs','',d)} \
+ ${@bb.utils.contains('PACKAGECONFIG','ppp','${PN}-ppp','',d)} \
+"
+
+do_install:append() {
+ install -Dm 0755 ${WORKDIR}/${BPN}.initd ${D}${sysconfdir}/init.d/network-manager
+
+ rm -rf ${D}/run ${D}${localstatedir}/run
+
+ if ${@bb.utils.contains('PACKAGECONFIG','man-resolv-conf','true','false',d)}; then
+ # For read-only filesystem, do not create links during bootup
+ ln -sf ../run/NetworkManager/resolv.conf ${D}${sysconfdir}/resolv-conf.NetworkManager
+
+ # systemd v210 and newer do not need this rule file
+ rm ${D}/${nonarch_base_libdir}/udev/rules.d/84-nm-drivers.rules
+ fi
+
+ # Enable iwd if compiled
+ if ${@bb.utils.contains('PACKAGECONFIG','iwd','true','false',d)}; then
+ install -Dm 0644 ${WORKDIR}/enable-iwd.conf ${D}${nonarch_libdir}/NetworkManager/conf.d/enable-iwd.conf
+ fi
+
+ # Enable dhcpd if compiled
+ if ${@bb.utils.contains('PACKAGECONFIG','dhcpcd','true','false',d)}; then
+ install -Dm 0644 ${WORKDIR}/enable-dhcpcd.conf ${D}${nonarch_libdir}/NetworkManager/conf.d/enable-dhcpcd.conf
+ fi
+}
diff --git a/meta-networking/recipes-connectivity/openconnect/openconnect/0001-Shim-for-renaming-of-GNUTLS_NO_EXTENSIONS-in-GnuTLS-.patch b/meta-networking/recipes-connectivity/openconnect/openconnect/0001-Shim-for-renaming-of-GNUTLS_NO_EXTENSIONS-in-GnuTLS-.patch
new file mode 100644
index 0000000000..9dd3da75ad
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openconnect/openconnect/0001-Shim-for-renaming-of-GNUTLS_NO_EXTENSIONS-in-GnuTLS-.patch
@@ -0,0 +1,43 @@
+From e4ea64134cfe3763332c16dcac52dd894b935880 Mon Sep 17 00:00:00 2001
+From: Daniel Lenski <dlenski@gmail.com>
+Date: Tue, 22 Aug 2023 12:02:19 -0700
+Subject: [PATCH] Shim for renaming of GNUTLS_NO_EXTENSIONS in GnuTLS v3.8.1
+
+The constant `GNUTLS_NO_EXTENSIONS` was renamed in
+https://gitlab.com/gnutls/gnutls/-/commit/a7c4a04e (released in v3.8.1), and
+then a backwards-compatibility shim was belatedly added in
+https://gitlab.com/gnutls/gnutls/-/commit/abfa8634, which has not yet been
+released.
+
+We need to re-add the constant ourselves in order to build correctly with
+GnuTLS v3.8.1. This should fix
+https://gitlab.com/openconnect/openconnect/-/issues/650.
+
+Upstream-Status: Backport [https://git.infradead.org/users/dwmw2/openconnect.git/commit/7512698217c4104aade7a2df669a20de68f3bb8c]
+Signed-off-by: Daniel Lenski <dlenski@gmail.com>
+---
+ gnutls-dtls.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/gnutls-dtls.c b/gnutls-dtls.c
+index 3fd78e95..50a4bb4e 100644
+--- a/gnutls-dtls.c
++++ b/gnutls-dtls.c
+@@ -39,6 +39,14 @@
+ # define GNUTLS_CIPHER_CHACHA20_POLY1305 23
+ #endif
+
++#if GNUTLS_VERSION_NUMBER >= 0x030801 && !defined(GNUTLS_NO_EXTENSIONS)
++/* XX: GNUTLS_NO_EXTENSIONS was renamed in GnuTLS v3.8.1. A
++ * backwards-compatibility shim was added in a subsequent commit, but
++ * not yet released.
++ */
++# define GNUTLS_NO_EXTENSIONS GNUTLS_NO_DEFAULT_EXTENSIONS
++#endif
++
+ /* sets the DTLS MTU and returns the actual tunnel MTU */
+ unsigned dtls_set_mtu(struct openconnect_info *vpninfo, unsigned mtu)
+ {
+--
+2.42.0
+
diff --git a/meta-networking/recipes-connectivity/openconnect/openconnect_9.01.bb b/meta-networking/recipes-connectivity/openconnect/openconnect_9.01.bb
deleted file mode 100644
index afdbdca4e3..0000000000
--- a/meta-networking/recipes-connectivity/openconnect/openconnect_9.01.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Open client for Cisco AnyConnect VPN"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=8c2e1ec1540fb3e0beb68361344cba7e"
-
-SRC_URI = " \
- git://git.infradead.org/users/dwmw2/openconnect.git;branch=master \
-"
-SRCREV = "5695cd6b0c7d42ca293ce0f00abcbe3d1ec4e609"
-
-DEPENDS = "vpnc libxml2 krb5 gettext-native"
-RDEPENDS:${PN} = "bash python3-core vpnc-script"
-
-PACKAGECONFIG ??= "gnutls lz4 libproxy"
-
-# config defaults
-PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls,"
-PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4,"
-PACKAGECONFIG[libproxy] = "--with-libproxy,--without-libproxy,libproxy,"
-
-# not config defaults
-PACKAGECONFIG[pcsc-lite] = "--with-libpcsclite,--without-libpcsclite,pcsc-lite,"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig bash-completion
-
-EXTRA_OECONF += "--with-vpnc-script=${sysconfdir}/vpnc/vpnc-script \
- --disable-static"
-
-do_install:append() {
- rm ${D}/usr/libexec/openconnect/hipreport-android.sh
-}
diff --git a/meta-networking/recipes-connectivity/openconnect/openconnect_9.12.bb b/meta-networking/recipes-connectivity/openconnect/openconnect_9.12.bb
new file mode 100644
index 0000000000..7d0e5f2052
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openconnect/openconnect_9.12.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Open client for Cisco AnyConnect VPN"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = " \
+ git://git.infradead.org/users/dwmw2/openconnect.git;branch=master \
+ file://0001-Shim-for-renaming-of-GNUTLS_NO_EXTENSIONS-in-GnuTLS-.patch \
+"
+SRCREV = "59f2e59eb3e436364ef82e630e5a2f88f32acd58"
+
+DEPENDS = "vpnc libxml2 krb5 gettext-native"
+RDEPENDS:${PN} = "bash python3-core vpnc-script"
+
+PACKAGECONFIG ??= "gnutls lz4 libproxy"
+
+# config defaults
+PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls,"
+PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4,"
+PACKAGECONFIG[libproxy] = "--with-libproxy,--without-libproxy,libproxy,"
+
+# not config defaults
+PACKAGECONFIG[pcsc-lite] = "--with-libpcsclite,--without-libpcsclite,pcsc-lite,"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig bash-completion
+
+EXTRA_OECONF += "--with-vpnc-script=${sysconfdir}/vpnc/vpnc-script \
+ --disable-static"
+
+do_install:append() {
+ rm ${D}/usr/libexec/openconnect/hipreport-android.sh
+}
diff --git a/meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.21.0.bb b/meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.21.0.bb
new file mode 100644
index 0000000000..e6c9a69ee5
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.21.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Client for PPP+SSL VPN tunnel services"
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3d575262a651a6f1a17210ce41bf907d"
+
+SRC_URI = "git://github.com/adrienverge/openfortivpn.git;protocol=https;branch=master"
+SRCREV = "26a1fe68cc7a61c58f4f2a98862f6fcf30f9f2dc"
+
+DEPENDS = "openssl"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+PACKAGECONFIG[resolvconf] = "--with-resolvconf=${base_sbindir}/resolvconf --enable-resolvconf,--with-resolvconf=DISABLED,,"
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir},--without-systemdsystemunitdir,,"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig systemd
+
+EXTRA_OECONF = " \
+ --with-pppd=${sbindir}/pppd \
+ --disable-proc \
+"
+
+SYSTEMD_SERVICE:${PN} = "openfortivpn@.service"
+
+RDEPENDS:${PN} = "ppp"
diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch b/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch
deleted file mode 100644
index 8122e725e7..0000000000
--- a/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From c0546e351f6d7ab50eb1de8cef1d0d167760fccc Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <peter@korsgaard.com>
-Date: Mon, 27 Aug 2018 22:50:57 +0200
-Subject: [PATCH] bn_mul.h: fix x86 PIC inline ASM compilation with GCC < 5
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes #1910
-
-With ebx added to the MULADDC_STOP clobber list to fix #1550, the inline
-assembly fails to build with GCC < 5 in PIC mode with the following error:
-
-include/mbedtls/bn_mul.h:46:13: error: PIC register clobbered by ‘ebx’ in ‘asm’
-
-This is because older GCC versions treated the x86 ebx register (which is
-used for the GOT) as a fixed reserved register when building as PIC.
-
-This is fixed by an improved register allocator in GCC 5+. From the release
-notes:
-
-Register allocation improvements: Reuse of the PIC hard register, instead of
-using a fixed register, was implemented on x86/x86-64 targets. This
-improves generated PIC code performance as more hard registers can be used.
-
-https://www.gnu.org/software/gcc/gcc-5/changes.html
-
-As a workaround, detect this situation and disable the inline assembly,
-similar to the MULADDC_CANNOT_USE_R7 logic.
-
-Upstream-Status: Backport [https://github.com/Mbed-TLS/mbedtls/commit/c0546e351f6d7ab50eb1de8cef1d0d167760fccc]
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- library/bn_mul.h | 18 +++++++++++++++++-
- 1 file changed, 17 insertions(+), 1 deletion(-)
-
---- a/third_party/openthread/repo/third_party/mbedtls/repo/include/mbedtls/bn_mul.h
-+++ b/third_party/openthread/repo/third_party/mbedtls/repo/include/mbedtls/bn_mul.h
-@@ -55,12 +55,28 @@
- ( !defined(__ARMCC_VERSION) || __ARMCC_VERSION >= 6000000 )
-
- /*
-+ * GCC < 5.0 treated the x86 ebx (which is used for the GOT) as a
-+ * fixed reserved register when building as PIC, leading to errors
-+ * like: bn_mul.h:46:13: error: PIC register clobbered by 'ebx' in 'asm'
-+ *
-+ * This is fixed by an improved register allocator in GCC 5+. From the
-+ * release notes:
-+ * Register allocation improvements: Reuse of the PIC hard register,
-+ * instead of using a fixed register, was implemented on x86/x86-64
-+ * targets. This improves generated PIC code performance as more hard
-+ * registers can be used.
-+ */
-+#if defined(__GNUC__) && __GNUC__ < 5 && defined(__PIC__)
-+#define MULADDC_CANNOT_USE_EBX
-+#endif
-+
-+/*
- * Disable use of the i386 assembly code below if option -O0, to disable all
- * compiler optimisations, is passed, detected with __OPTIMIZE__
- * This is done as the number of registers used in the assembly code doesn't
- * work with the -O0 option.
- */
--#if defined(__i386__) && defined(__OPTIMIZE__)
-+#if defined(__i386__) && defined(__OPTIMIZE__) && !defined(MULADDC_CANNOT_USE_EBX)
-
- #define MULADDC_INIT \
- asm( \
diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch b/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch
index f0bb392a9f..7c32166797 100644
--- a/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch
+++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch
@@ -20,13 +20,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
CMakeLists.txt | 4 ++++
1 file changed, 4 insertions(+)
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 59a567e729..3134740ff6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -57,6 +57,10 @@ endif()
-
+@@ -59,6 +59,10 @@ endif()
set(CMAKE_CXX_EXTENSIONS OFF)
+ set(CMAKE_EXE_LINKER_FLAGS "-rdynamic ${CMAKE_EXE_LINKER_FLAGS}")
+if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+ add_compile_options(-Wno-error=nonnull-compare)
@@ -35,6 +33,3 @@ index 59a567e729..3134740ff6 100644
if (OTBR_COVERAGE AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
message(STATUS "Coverage: ON")
target_compile_options(otbr-config INTERFACE -g -O0 --coverage)
---
-2.36.0
-
diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix/default-cxx-std.patch b/meta-networking/recipes-connectivity/openthread/ot-br-posix/default-cxx-std.patch
new file mode 100644
index 0000000000..4118887cb9
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix/default-cxx-std.patch
@@ -0,0 +1,35 @@
+Do not hardcode C std to C99 or C++ std to C++11 if not set
+OE compilers are using newer than these standards and absl needs C++14 minimum
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,16 +46,6 @@ set_property(CACHE OTBR_MDNS PROPERTY ST
+
+ include("${PROJECT_SOURCE_DIR}/etc/cmake/options.cmake")
+
+-if(NOT CMAKE_C_STANDARD)
+- set(CMAKE_C_STANDARD 99)
+- set(CMAKE_C_STANDARD_REQUIRED ON)
+-endif()
+-
+-if(NOT CMAKE_CXX_STANDARD)
+- set(CMAKE_CXX_STANDARD 11)
+- set(CMAKE_CXX_STANDARD_REQUIRED ON)
+-endif()
+-
+ set(CMAKE_CXX_EXTENSIONS OFF)
+ set(CMAKE_EXE_LINKER_FLAGS "-rdynamic ${CMAKE_EXE_LINKER_FLAGS}")
+
+@@ -63,6 +53,10 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+ add_compile_options(-Wno-error=nonnull-compare)
+ endif()
+
++if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 18.1)
++ add_compile_options(-Wno-error=vla-cxx-extension)
++endif()
++
+ if (OTBR_COVERAGE AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
+ message(STATUS "Coverage: ON")
+ target_compile_options(otbr-config INTERFACE -g -O0 --coverage)
diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch b/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch
deleted file mode 100644
index 91b3046484..0000000000
--- a/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-mbedtls: Disable documentation warning as error with clang
-
-There are shortcomings with doxygen info which clang-15+ flags, dont
-treat them as errors
-
-Remove unused variable
-
-Fixes
-library/bignum.c:1395:29: error: variable 't' set but not used [-Werror,-Wunused-but-set-variable]
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/third_party/openthread/repo/third_party/mbedtls/repo/library/bignum.c
-+++ b/third_party/openthread/repo/third_party/mbedtls/repo/library/bignum.c
-@@ -1544,7 +1544,7 @@ __attribute__ ((noinline))
- #endif
- void mpi_mul_hlp( size_t i, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d, mbedtls_mpi_uint b )
- {
-- mbedtls_mpi_uint c = 0, t = 0;
-+ mbedtls_mpi_uint c = 0;
-
- #if defined(MULADDC_HUIT)
- for( ; i >= 8; i -= 8 )
-@@ -1595,8 +1595,6 @@ void mpi_mul_hlp( size_t i, mbedtls_mpi_
- }
- #endif /* MULADDC_HUIT */
-
-- t++;
--
- do {
- *d += c; c = ( *d < c ); d++;
- }
---- a/third_party/openthread/repo/third_party/mbedtls/repo/CMakeLists.txt
-+++ b/third_party/openthread/repo/third_party/mbedtls/repo/CMakeLists.txt
-@@ -192,7 +192,7 @@ if(CMAKE_COMPILER_IS_GNU)
- endif(CMAKE_COMPILER_IS_GNU)
-
- if(CMAKE_COMPILER_IS_CLANG)
-- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla")
-+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wno-error=documentation")
- set(CMAKE_C_FLAGS_RELEASE "-O2")
- set(CMAKE_C_FLAGS_DEBUG "-O0 -g3")
- set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage")
diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix/musl-fixes.patch b/meta-networking/recipes-connectivity/openthread/ot-br-posix/musl-fixes.patch
new file mode 100644
index 0000000000..279a60741f
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix/musl-fixes.patch
@@ -0,0 +1,26 @@
+Musl fixes, which should be applied upstream too
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/src/dbus/common/types.hpp
++++ b/src/dbus/common/types.hpp
+@@ -715,7 +715,7 @@ struct TrelInfo
+ };
+
+ bool mEnabled; ///< Whether TREL is enabled.
+- u_int16_t mNumTrelPeers; ///< The number of TREL peers.
++ uint16_t mNumTrelPeers; ///< The number of TREL peers.
+ TrelPacketCounters mTrelCounters; ///< The TREL counters.
+ };
+
+--- a/third_party/openthread/repo/src/posix/platform/CMakeLists.txt
++++ b/third_party/openthread/repo/src/posix/platform/CMakeLists.txt
+@@ -172,7 +172,7 @@ target_link_libraries(openthread-posix
+ )
+
+ option(OT_TARGET_OPENWRT "enable openthread posix for OpenWRT" OFF)
+-if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND NOT OT_TARGET_OPENWRT)
++if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND NOT OT_TARGET_OPENWRT AND NOT OT_TARGET_MUSL)
+ target_compile_definitions(ot-posix-config
+ INTERFACE "OPENTHREAD_POSIX_CONFIG_NAT64_AIL_PREFIX_ENABLE=1"
+ )
diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix/unused_var.patch b/meta-networking/recipes-connectivity/openthread/ot-br-posix/unused_var.patch
deleted file mode 100644
index 9727cbafd8..0000000000
--- a/meta-networking/recipes-connectivity/openthread/ot-br-posix/unused_var.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/third_party/openthread/repo/src/cli/cli.cpp
-+++ b/third_party/openthread/repo/src/cli/cli.cpp
-@@ -1785,6 +1785,7 @@ template <> otError Interpreter::Process
-
- for (uint8_t i = 0;; i++)
- {
-+ OT_UNUSED_VARIABLE(i);
- SuccessOrExit(otThreadGetNextCacheEntry(GetInstancePtr(), &entry, &iterator));
- OutputEidCacheEntry(entry);
- }
diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb b/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb
index 720228dc14..d7be1cd71d 100644
--- a/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb
+++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb
@@ -5,21 +5,20 @@ SUMMARY = "OpenThread Border Router"
SECTION = "net"
LICENSE = "BSD-3-Clause & MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=87109e44b2fda96a8991f27684a7349c \
- file://third_party/Simple-web-server/repo/LICENSE;md5=852b3f7f320b19f6431487b8b2fb1d74 \
+ file://third_party/Simple-web-server/repo/LICENSE;md5=091ac9fd29d87ad1ae5bf765d95278b0 \
file://third_party/cJSON/repo/LICENSE;md5=218947f77e8cb8e2fa02918dc41c50d0 \
file://third_party/http-parser/repo/LICENSE-MIT;md5=9bfa835d048c194ab30487af8d7b3778 \
file://third_party/openthread/repo/LICENSE;md5=543b6fe90ec5901a683320a36390c65f \
"
-DEPENDS = "autoconf-archive dbus readline avahi jsoncpp boost libnetfilter-queue"
-SRCREV = "ad6822257ffddbac295db97186e4ab449a2ed32a"
-PV = "0.3.0+git${SRCPV}"
+DEPENDS = "autoconf-archive dbus readline avahi jsoncpp boost libnetfilter-queue protobuf protobuf-native"
+SRCREV = "a35cc682305bb2201c314472adf06a4960536750"
+PV = "0.3.0+git"
SRC_URI = "gitsm://github.com/openthread/ot-br-posix.git;protocol=https;branch=main \
file://0001-otbr-agent.service.in-remove-pre-exec-hook-for-mdns-.patch \
file://0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch \
- file://0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch \
- file://mbedtls.patch \
- file://unused_var.patch \
+ file://default-cxx-std.patch \
+ file://musl-fixes.patch \
"
S = "${WORKDIR}/git"
@@ -56,6 +55,7 @@ EXTRA_OECMAKE = "-DBUILD_TESTING=OFF \
-DOT_DHCP6_CLIENT=ON \
-DOT_DHCP6_SERVER=ON \
"
+EXTRA_OECMAKE:append:libc-musl = " -DOT_TARGET_MUSL=ON"
RDEPENDS:${PN} = "iproute2 ipset avahi-daemon"
diff --git a/meta-networking/recipes-connectivity/openthread/ot-daemon/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch b/meta-networking/recipes-connectivity/openthread/ot-daemon/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch
deleted file mode 100644
index c9edb0098b..0000000000
--- a/meta-networking/recipes-connectivity/openthread/ot-daemon/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From c0546e351f6d7ab50eb1de8cef1d0d167760fccc Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <peter@korsgaard.com>
-Date: Mon, 27 Aug 2018 22:50:57 +0200
-Subject: [PATCH] bn_mul.h: fix x86 PIC inline ASM compilation with GCC < 5
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes #1910
-
-With ebx added to the MULADDC_STOP clobber list to fix #1550, the inline
-assembly fails to build with GCC < 5 in PIC mode with the following error:
-
-include/mbedtls/bn_mul.h:46:13: error: PIC register clobbered by ‘ebx’ in ‘asm’
-
-This is because older GCC versions treated the x86 ebx register (which is
-used for the GOT) as a fixed reserved register when building as PIC.
-
-This is fixed by an improved register allocator in GCC 5+. From the release
-notes:
-
-Register allocation improvements: Reuse of the PIC hard register, instead of
-using a fixed register, was implemented on x86/x86-64 targets. This
-improves generated PIC code performance as more hard registers can be used.
-
-https://www.gnu.org/software/gcc/gcc-5/changes.html
-
-As a workaround, detect this situation and disable the inline assembly,
-similar to the MULADDC_CANNOT_USE_R7 logic.
-
-Upstream-Status: Backport [https://github.com/Mbed-TLS/mbedtls/commit/c0546e351f6d7ab50eb1de8cef1d0d167760fccc]
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- library/bn_mul.h | 18 +++++++++++++++++-
- 1 file changed, 17 insertions(+), 1 deletion(-)
-
---- a/third_party/mbedtls/repo/include/mbedtls/bn_mul.h
-+++ b/third_party/mbedtls/repo/include/mbedtls/bn_mul.h
-@@ -55,12 +55,28 @@
- ( !defined(__ARMCC_VERSION) || __ARMCC_VERSION >= 6000000 )
-
- /*
-+ * GCC < 5.0 treated the x86 ebx (which is used for the GOT) as a
-+ * fixed reserved register when building as PIC, leading to errors
-+ * like: bn_mul.h:46:13: error: PIC register clobbered by 'ebx' in 'asm'
-+ *
-+ * This is fixed by an improved register allocator in GCC 5+. From the
-+ * release notes:
-+ * Register allocation improvements: Reuse of the PIC hard register,
-+ * instead of using a fixed register, was implemented on x86/x86-64
-+ * targets. This improves generated PIC code performance as more hard
-+ * registers can be used.
-+ */
-+#if defined(__GNUC__) && __GNUC__ < 5 && defined(__PIC__)
-+#define MULADDC_CANNOT_USE_EBX
-+#endif
-+
-+/*
- * Disable use of the i386 assembly code below if option -O0, to disable all
- * compiler optimisations, is passed, detected with __OPTIMIZE__
- * This is done as the number of registers used in the assembly code doesn't
- * work with the -O0 option.
- */
--#if defined(__i386__) && defined(__OPTIMIZE__)
-+#if defined(__i386__) && defined(__OPTIMIZE__) && !defined(MULADDC_CANNOT_USE_EBX)
-
- #define MULADDC_INIT \
- asm( \
diff --git a/meta-networking/recipes-connectivity/openthread/ot-daemon/mbedtls.patch b/meta-networking/recipes-connectivity/openthread/ot-daemon/mbedtls.patch
deleted file mode 100644
index be26a20dad..0000000000
--- a/meta-networking/recipes-connectivity/openthread/ot-daemon/mbedtls.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-mbedtls: Disable documentation warning as error with clang
-
-There are shortcomings with doxygen info which clang-15+ flags, dont
-treat them as errors
-
-Remove unused variable
-
-Fixes
-library/bignum.c:1395:29: error: variable 't' set but not used [-Werror,-Wunused-but-set-variable]
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/third_party/mbedtls/repo/library/bignum.c
-+++ b/third_party/mbedtls/repo/library/bignum.c
-@@ -1544,7 +1544,7 @@ __attribute__ ((noinline))
- #endif
- void mpi_mul_hlp( size_t i, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d, mbedtls_mpi_uint b )
- {
-- mbedtls_mpi_uint c = 0, t = 0;
-+ mbedtls_mpi_uint c = 0;
-
- #if defined(MULADDC_HUIT)
- for( ; i >= 8; i -= 8 )
-@@ -1595,8 +1595,6 @@ void mpi_mul_hlp( size_t i, mbedtls_mpi_
- }
- #endif /* MULADDC_HUIT */
-
-- t++;
--
- do {
- *d += c; c = ( *d < c ); d++;
- }
---- a/third_party/mbedtls/repo/CMakeLists.txt
-+++ b/third_party/mbedtls/repo/CMakeLists.txt
-@@ -192,7 +192,7 @@ if(CMAKE_COMPILER_IS_GNU)
- endif(CMAKE_COMPILER_IS_GNU)
-
- if(CMAKE_COMPILER_IS_CLANG)
-- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla")
-+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wno-error=documentation")
- set(CMAKE_C_FLAGS_RELEASE "-O2")
- set(CMAKE_C_FLAGS_DEBUG "-O0 -g3")
- set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage")
diff --git a/meta-networking/recipes-connectivity/openthread/ot-daemon_git.bb b/meta-networking/recipes-connectivity/openthread/ot-daemon_git.bb
index 18703d6c4d..4456835410 100644
--- a/meta-networking/recipes-connectivity/openthread/ot-daemon_git.bb
+++ b/meta-networking/recipes-connectivity/openthread/ot-daemon_git.bb
@@ -5,15 +5,13 @@ SUMMARY = "OpenThread Daemon is an OpenThread POSIX build mode that runs OpenThr
SECTION = "net"
LICENSE = "BSD-3-Clause & Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=543b6fe90ec5901a683320a36390c65f \
- file://third_party/mbedtls/repo/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://third_party/mbedtls/repo/LICENSE;md5=379d5819937a6c2f1ef1630d341e026d \
"
DEPENDS = "readline"
-SRCREV = "7dfde1f12923f03c9680be4d838b94b7a2320324"
-PV = "0.1+git${SRCPV}"
+SRCREV = "90adc86d34e21a9e8f86d093c2190030042c4a59"
+PV = "0.1+git"
SRC_URI = "git://github.com/openthread/openthread.git;protocol=https;branch=main \
- file://0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch \
- file://mbedtls.patch \
"
S = "${WORKDIR}/git"
@@ -27,3 +25,5 @@ EXTRA_OECMAKE = "-DOT_DAEMON=ON \
-DOT_PLATFORM=posix \
-DCMAKE_BUILD_TYPE=Release \
"
+
+EXTRA_OECMAKE:append:libc-musl = " -DOT_TARGET_OPENWRT=ON"
diff --git a/meta-networking/recipes-connectivity/openthread/wpantund/basename.patch b/meta-networking/recipes-connectivity/openthread/wpantund/basename.patch
new file mode 100644
index 0000000000..30bd9e59cf
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/wpantund/basename.patch
@@ -0,0 +1,19 @@
+include libgen.h for getting prototype for basename()
+Newer musl has remove prototype from string.h [1]
+which renders a compile error with newer compilers like
+clang 18+ about missing prototype.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/third_party/openthread/tools/spi-hdlc-adapter/spi-hdlc-adapter.c
++++ b/third_party/openthread/tools/spi-hdlc-adapter/spi-hdlc-adapter.c
+@@ -32,6 +32,7 @@
+ #endif
+
+ #include <assert.h>
++#include <libgen.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdint.h>
diff --git a/meta-networking/recipes-connectivity/openthread/wpantund_git.bb b/meta-networking/recipes-connectivity/openthread/wpantund_git.bb
index a7fcc202a4..6a84897426 100644
--- a/meta-networking/recipes-connectivity/openthread/wpantund_git.bb
+++ b/meta-networking/recipes-connectivity/openthread/wpantund_git.bb
@@ -12,21 +12,19 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e7820bc7f7d1638a6b54fc2e8d7fb103 \
file://third_party/pt/LICENSE;md5=dcd598b69cad786beea33da7b1ae14b7 \
"
DEPENDS = "autoconf-archive dbus readline boost"
-SRCREV = "0fb1f57e4224e2df3e630e146702bfcf63fbf07a"
-PV = "0.07.01+git${SRCPV}"
+SRCREV = "8b5ce64c2f5bbf106cabfd015bcb3bdb2e0248d3"
+PV = "0.07.01+git"
SRC_URI = "gitsm://github.com/openthread/wpantund.git;protocol=https;branch=master \
+ file://basename.patch \
"
S = "${WORKDIR}/git"
inherit pkgconfig perlnative autotools
-# CVE-2020-8916 has been fixed in commit
-# 3f108441e23e033b936e85be5b6877dd0a1fbf1c which is included in the SRCREV
-# CVE-2021-33889 has been fixed in commit
-# a8f3f761f6753b567d1e5ad22cbe6b0ceb6f2649 which is included in the SRCREV
# There has not been a wpantund release as of yet that includes these fixes.
# That means cve-check can not match them. Once a new release comes we can
-# remove the ignore statement.
-CVE_CHECK_IGNORE = "CVE-2020-8916 CVE-2021-33889"
+# remove the statement.
+CVE_STATUS[CVE-2020-8916] = "backported-patch: fixed via 3f108441e23e033b936e85be5b6877dd0a1fbf1c"
+CVE_STATUS[CVE-2021-33889] = "backported-patch: fixed via 3f108441e23e033b936e85be5b6877dd0a1fbf1c"
diff --git a/meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch b/meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch
index 08ba2c31e9..5fc21808f9 100644
--- a/meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch
+++ b/meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] rdate: define logwtmp on libc != glibc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/rdate.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch b/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch
deleted file mode 100644
index eaaf30460f..0000000000
--- a/meta-networking/recipes-connectivity/relayd/relayd/0001-rtnl_flush-Error-on-failed-write.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 2fa326b26dc479942367dc4283e2f87372403988 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 17 Jun 2017 09:32:04 -0700
-Subject: [PATCH] rtnl_flush: Error on failed write()
-
-Fixes
-route.c:45:2: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result]
-| write(fd, "-1", 2);
-| ^~~~~~~~~~~~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- route.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/route.c b/route.c
-index c552d1f..fc5c31e 100644
---- a/route.c
-+++ b/route.c
-@@ -42,7 +42,8 @@ static void rtnl_flush(void)
- if (fd < 0)
- return;
-
-- write(fd, "-1", 2);
-+ if (write(fd, "-1", 2) < 0 )
-+ perror("write");
- close(fd);
- }
-
---
-2.13.1
-
diff --git a/meta-networking/recipes-connectivity/relayd/relayd_git.bb b/meta-networking/recipes-connectivity/relayd/relayd_git.bb
index 1da18d7ca0..871df69909 100644
--- a/meta-networking/recipes-connectivity/relayd/relayd_git.bb
+++ b/meta-networking/recipes-connectivity/relayd/relayd_git.bb
@@ -5,15 +5,15 @@ LIC_FILES_CHKSUM = "file://main.c;endline=17;md5=86aad799085683e0a2e1c2684a20bab
DEPENDS = "libubox"
-SRC_URI = "git://git.openwrt.org/project/relayd.git;branch=master \
- file://0001-rtnl_flush-Error-on-failed-write.patch \
-"
+SRC_URI = "git://git.openwrt.org/project/relayd.git;branch=master"
-SRCREV = "f4d759be54ceb37714e9a6ca320d5b50c95e9ce9"
-PV = "0.0.1+git${SRCPV}"
+SRCREV = "f646ba40489371e69f624f2dee2fc4e19ceec00e"
+PV = "0.0.1+git"
UPSTREAM_CHECK_COMMITS = "1"
S = "${WORKDIR}/git"
inherit cmake
+
+CFLAGS:append:toolchain-clang = " -Wno-error=gnu-variable-sized-type-not-at-end"
diff --git a/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb b/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb
index e715135dc3..9239bd81c2 100644
--- a/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb
+++ b/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb
@@ -2,18 +2,17 @@ SUMMARY = "Header-only C++14 library that gives you an embedded HTTP server"
DESCRIPTION = "Cross-platform, efficient, customizable, and robust \
asynchronous HTTP/WebSocket server C++14 library with the \
right balance between performance and ease of use"
-AUTHOR = "Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>"
HOMEPAGE = "https://stiffstream.com/en/products/restinio.html"
SECTION = "libs"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://../LICENSE;md5=f399b62ce0a152525d1589a5a40c0ff6"
DEPENDS = "asio fmt http-parser"
-SRC_URI = "https://github.com/Stiffstream/restinio/releases/download/v.${PV}/restinio-${PV}.tar.bz2"
+SRC_URI = "https://github.com/Stiffstream/restinio/releases/download/v.${PV}/${BP}.tar.bz2"
SRC_URI[md5sum] = "37a4310e98912030a74bdd4ed789f33c"
SRC_URI[sha256sum] = "b35d696e6fafd4563ca708fcecf9d0cf6705c846d417b5000f5252e0188848e7"
-S = "${WORKDIR}/${PN}-${PV}/dev"
+S = "${WORKDIR}/${BP}/dev"
inherit cmake
diff --git a/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch b/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch
index f4668dc6fd..a498348c20 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch
@@ -1,4 +1,4 @@
-From 3bc1ebc3d2758af4067b3aace7ddd0ea0cb0b57b Mon Sep 17 00:00:00 2001
+From 5c5418038e392cc00d3293e00ea0cd20b5e19c9a Mon Sep 17 00:00:00 2001
From: Bian Naimeng <biannm@cn.fujitsu.com>
Date: Mon, 18 Apr 2016 17:00:53 -0400
Subject: [PATCH] Don't check xsltproc manpages
@@ -16,10 +16,10 @@ Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/ldb/wscript b/lib/ldb/wscript
-index bf6129b..c515deb 100644
+index ed5d45f..de3c648 100644
--- a/lib/ldb/wscript
+++ b/lib/ldb/wscript
-@@ -143,7 +143,7 @@ def configure(conf):
+@@ -144,7 +144,7 @@ def configure(conf):
conf.DEFINE('EXPECTED_SYSTEM_LDB_VERSION_RELEASE', int(v[2]))
if conf.env.standalone_ldb:
@@ -29,7 +29,7 @@ index bf6129b..c515deb 100644
# we need this for the ldap backend
if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'):
diff --git a/lib/talloc/wscript b/lib/talloc/wscript
-index a767477..f754819 100644
+index 075f1ec..9bd9f73 100644
--- a/lib/talloc/wscript
+++ b/lib/talloc/wscript
@@ -48,7 +48,7 @@ def configure(conf):
@@ -42,7 +42,7 @@ index a767477..f754819 100644
conf.CHECK_HEADERS('sys/auxv.h')
conf.CHECK_FUNCS('getauxval')
diff --git a/lib/tdb/wscript b/lib/tdb/wscript
-index e56ddd0..467dd65 100644
+index 5e6a928..f13cf2a 100644
--- a/lib/tdb/wscript
+++ b/lib/tdb/wscript
@@ -95,7 +95,7 @@ def configure(conf):
@@ -55,5 +55,5 @@ index e56ddd0..467dd65 100644
conf.SAMBA_CHECK_PYTHON()
conf.SAMBA_CHECK_PYTHON_HEADERS()
--
-2.17.1
+2.25.1
diff --git a/meta-networking/recipes-connectivity/samba/samba/0001-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-networking/recipes-connectivity/samba/samba/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
deleted file mode 100644
index d497dd32ca..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From a0547cacaddcb2fbef1fb9991c5ad522226e6817 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Wed, 24 Nov 2021 13:33:35 +0800
-Subject: [PATCH] Fix pyext_PATTERN for cross compilation
-
-The pyext_PATTERN will add native arch as suffix when cross compiling.
-For example, on qemuarm64, it is expanded to:
-pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
-which will result in the incorrect library name.
-
-root@qemuarm64:~# find /usr/lib -name \*cpython\*
-/usr/lib/pkgconfig/samba-policy.cpython-310-x86_64-linux-gnu.pc
-/usr/lib/libsamba-policy.cpython-310-x86-64-linux-gnu.so
-/usr/lib/samba/libsamba-python.cpython-310-x86-64-linux-gnu-samba4.so
-/usr/lib/samba/libsamba-net.cpython-310-x86-64-linux-gnu-samba4.so
-/usr/lib/libsamba-policy.cpython-310-x86-64-linux-gnu.so.0
-/usr/lib/libsamba-policy.cpython-310-x86-64-linux-gnu.so.0.0.1
-/usr/lib/python3.10/site-packages/samba/dsdb_dns.cpython-310-x86_64-linux-gnu.so
-/usr/lib/python3.10/site-packages/samba/dsdb.cpython-310-x86_64-linux-gnu.so
-/usr/lib/python3.10/site-packages/samba/xattr_tdb.cpython-310-x86_64-linux-gnu.so
-/usr/lib/python3.10/site-packages/samba/_ldb.cpython-310-x86_64-linux-gnu.so
-/usr/lib/python3.10/site-packages/samba/gensec.cpython-310-x86_64-linux-gnu.so
-[snip]
-
-Set pyext_PATTERN to '%s.so' to remove the suffix.
-After the patch:
-root@qemuarm64:~# find /usr/lib/
-/usr/lib/pkgconfig/samba-policy.pc
-/usr/lib/libsamba-policy.so
-/usr/lib/samba/libsamba-python-samba4.so
-/usr/lib/samba/libsamba-net-samba4.so
-/usr/lib/libsamba-policy.so.0
-/usr/lib/libsamba-policy.so.0.0.1
-/usr/lib/python3.10/site-packages/samba/dsdb_dns.so
-/usr/lib/python3.10/site-packages/samba/dsdb.so
-/usr/lib/python3.10/site-packages/samba/xattr_tdb.so
-/usr/lib/python3.10/site-packages/samba/_ldb.so
-/usr/lib/python3.10/site-packages/samba/gensec.so
-[snip]
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- third_party/waf/waflib/Tools/python.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
-index b1c8dd0..24faa31 100644
---- a/third_party/waf/waflib/Tools/python.py
-+++ b/third_party/waf/waflib/Tools/python.py
-@@ -328,7 +328,7 @@ def check_python_headers(conf, features='pyembed pyext'):
- x = 'MACOSX_DEPLOYMENT_TARGET'
- if dct[x]:
- env[x] = conf.environ[x] = dct[x]
-- env.pyext_PATTERN = '%s' + dct['SO'] # not a mistake
-+ env.pyext_PATTERN = '%s.so'
-
-
- # Try to get pythonX.Y-config
---
-2.17.1
-
diff --git a/meta-networking/recipes-connectivity/samba/samba/0001-smbtorture-skip-test-case-tfork_cmd_send.patch b/meta-networking/recipes-connectivity/samba/samba/0001-smbtorture-skip-test-case-tfork_cmd_send.patch
deleted file mode 100644
index 90ee317860..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/0001-smbtorture-skip-test-case-tfork_cmd_send.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 059b517f9ef6cbdc696e0983ce255b1728042827 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Thu, 25 Aug 2022 16:46:04 +0800
-Subject: [PATCH] smbtorture: skip test case tfork_cmd_send
-
-The test case tfork_cmd_send fails on target as it requires a script
-located in the source directory:
-
-$ smbtorture ncalrpc:localhost local.tfork.tfork_cmd_send
-test: tfork_cmd_send
-/buildarea/build/tmp/work/core2-64-poky-linux/samba/4.14.14-r0/samba-4.14.14/testprogs/blackbox/tfork.sh:
-Failed to exec child - No such file or directory
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- lib/util/tests/tfork.c | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/lib/util/tests/tfork.c b/lib/util/tests/tfork.c
-index 70ae975..4826ce6 100644
---- a/lib/util/tests/tfork.c
-+++ b/lib/util/tests/tfork.c
-@@ -839,10 +839,6 @@ struct torture_suite *torture_local_tfork(TALLOC_CTX *mem_ctx)
- "tfork_threads",
- test_tfork_threads);
-
-- torture_suite_add_simple_test(suite,
-- "tfork_cmd_send",
-- test_tfork_cmd_send);
--
- torture_suite_add_simple_test(suite,
- "tfork_event_file_handle",
- test_tfork_event_file_handle);
---
-2.25.1
-
diff --git a/meta-networking/recipes-connectivity/samba/samba/0001-waf-Fix-errors-with-Werror-implicit-function-declara.patch b/meta-networking/recipes-connectivity/samba/samba/0001-waf-Fix-errors-with-Werror-implicit-function-declara.patch
deleted file mode 100644
index 4a89f76782..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/0001-waf-Fix-errors-with-Werror-implicit-function-declara.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 28ec4c9323e67cd114a0465015c9f3c2e64e6829 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 27 Aug 2022 13:05:26 -0700
-Subject: [PATCH] waf: Fix errors with Werror=implicit-function-declaration
- turned on
-
-Clang-15 turns this option into errors by default, and it results in
-rpath check failures
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- buildtools/wafsamba/samba_waf18.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/buildtools/wafsamba/samba_waf18.py b/buildtools/wafsamba/samba_waf18.py
-index 7a0a08e..c0d2c3e 100644
---- a/buildtools/wafsamba/samba_waf18.py
-+++ b/buildtools/wafsamba/samba_waf18.py
-@@ -209,7 +209,7 @@ def CHECK_LIBRARY_SUPPORT(conf, rpath=False, version_script=False, msg=None):
- lib_node.parent.mkdir()
- lib_node.write('int lib_func(void) { return 42; }\n', 'w')
- main_node = bld.srcnode.make_node('main.c')
-- main_node.write('int main(void) {return !(lib_func() == 42);}', 'w')
-+ main_node.write('int lib_func(void); int main(void) {return !(lib_func() == 42);}', 'w')
- linkflags = []
- if version_script:
- script = bld.srcnode.make_node('ldscript')
---
-2.37.2
-
diff --git a/meta-networking/recipes-connectivity/samba/samba/0002-do-not-import-target-module-while-cross-compile.patch b/meta-networking/recipes-connectivity/samba/samba/0002-do-not-import-target-module-while-cross-compile.patch
index 292e614ebf..b0ad5c4142 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0002-do-not-import-target-module-while-cross-compile.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0002-do-not-import-target-module-while-cross-compile.patch
@@ -1,4 +1,4 @@
-From 9ebea97a52e4f70e831dd6402b865c77753ce1cc Mon Sep 17 00:00:00 2001
+From ba492aead265edfd1da2a6c45dd7661c248309cb Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Tue, 25 Jun 2019 14:25:08 +0800
Subject: [PATCH] do not import target module while cross compile
@@ -6,6 +6,8 @@ Subject: [PATCH] do not import target module while cross compile
Some modules such as dynamic library maybe cann't be imported
while cross compile, we just check whether does the module exist.
+Upstream-Status: Pending
+
Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
update to version 4.10.5, and switch to python3
@@ -15,7 +17,7 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com>
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/buildtools/wafsamba/samba_bundled.py b/buildtools/wafsamba/samba_bundled.py
-index 5f080dd..cdc115e 100644
+index 2300565..26d9e8c 100644
--- a/buildtools/wafsamba/samba_bundled.py
+++ b/buildtools/wafsamba/samba_bundled.py
@@ -4,6 +4,7 @@ import sys
@@ -24,9 +26,9 @@ index 5f080dd..cdc115e 100644
from wafsamba import samba_utils
+import importlib.util, os
- def PRIVATE_NAME(bld, name, private_extension, private_library):
+ def PRIVATE_NAME(bld, name):
'''possibly rename a library to include a bundled extension'''
-@@ -249,17 +250,27 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
+@@ -245,17 +246,27 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
# versions
minversion = minimum_library_version(conf, libname, minversion)
@@ -63,5 +65,5 @@ index 5f080dd..cdc115e 100644
Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion))
sys.exit(1)
--
-2.17.1
+2.25.1
diff --git a/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch b/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch
index 93ca005d68..2c9d29c9fe 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch
@@ -1,4 +1,4 @@
-From 6455448eb060d03a534539f1a424e2d3e44319e1 Mon Sep 17 00:00:00 2001
+From cceee20e91af751469872b71155b23f0dec290a7 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Thu, 20 Jun 2019 14:11:16 +0800
Subject: [PATCH] Add config option without-valgrind
@@ -9,42 +9,48 @@ Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Update patch to version 4.10.5
Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Rebase to 4.19.3
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
lib/replace/wscript | 5 +++--
- wscript | 4 ++++
- 2 files changed, 7 insertions(+), 2 deletions(-)
+ wscript | 7 +++++++
+ 2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 2c856b6..bc726f7 100644
+index 37d7759..9dd9b48 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
-@@ -121,8 +121,9 @@ def configure(conf):
+@@ -113,8 +113,9 @@ def configure(conf):
conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
-- conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
-+ if not Options.options.disable_valgrind:
+- conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h valgrind/callgrind.h')
++ if Options.options.enable_valgrind:
+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
-+ conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
++ conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h valgrind/callgrind.h')
conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
diff --git a/wscript b/wscript
-index 83d9421..969b07a 100644
+index 95ddd9e..6d9577a 100644
--- a/wscript
+++ b/wscript
-@@ -123,6 +123,10 @@ def options(opt):
- help=("Disable RELRO builds"),
- action="store_false", dest='enable_relro')
+@@ -123,6 +123,13 @@ def options(opt):
+ help=('Disable kernely keyring support for credential storage'),
+ action='store_false', dest='enable_keyring')
++ opt.add_option('--with-valgrind',
++ help=("Enable use of valgrind"),
++ action="store_true", dest='enable_valgrind')
+ opt.add_option('--without-valgrind',
-+ help=("Disable use of the valgrind headers"),
-+ action="store_true", dest='disable_valgrind', default=False)
++ help=("Disable use of valgrind"),
++ action="store_false", dest='enable_valgrind', default=False)
+
gr = opt.option_group('developer options')
opt.load('python') # options for disabling pyc or pyo compilation
--
-2.17.1
+2.25.1
diff --git a/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch b/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch
index 5fd32f3851..c72bd133ee 100644
--- a/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch
@@ -1,9 +1,10 @@
-From 5abf3c2efa1cd4e16878b6b26068ff153973ebd3 Mon Sep 17 00:00:00 2001
+From d302d9a4ac6eb2bbafd248064a878ba287d636b8 Mon Sep 17 00:00:00 2001
From: Peter Kjellerstedt <pkj@axis.com>
Date: Tue, 28 Apr 2020 02:05:33 +0200
Subject: [PATCH] Add options to configure the use of libbsd
Upstream-Status: Inappropriate [oe deterministic build specific]
+
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Rebase to 4.14.4
@@ -15,10 +16,10 @@ Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
3 files changed, 29 insertions(+), 15 deletions(-)
diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript
-index 1aadb95..e7b47c0 100644
+index 30cb366..d167551 100644
--- a/buildtools/wafsamba/wscript
+++ b/buildtools/wafsamba/wscript
-@@ -88,6 +88,13 @@ def options(opt):
+@@ -145,6 +145,13 @@ Currently the only tested value is 'smbtorture,smbd/smbd' for Samba'''),
help=("Disable use of gettext"),
action="store_true", dest='disable_gettext', default=False)
@@ -33,10 +34,10 @@ index 1aadb95..e7b47c0 100644
gr.add_option('-C',
diff --git a/lib/replace/wscript b/lib/replace/wscript
-index bc726f7..44ad0d6 100644
+index 9dd9b48..a22ae59 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
-@@ -419,20 +419,21 @@ def configure(conf):
+@@ -444,20 +444,21 @@ def configure(conf):
strlcpy_in_bsd = False
@@ -73,7 +74,7 @@ index bc726f7..44ad0d6 100644
conf.CHECK_CODE('''
struct ucred cred;
diff --git a/lib/texpect/wscript b/lib/texpect/wscript
-index 82f6b25..33eea64 100644
+index 44f92a8..79e8d09 100644
--- a/lib/texpect/wscript
+++ b/lib/texpect/wscript
@@ -1,7 +1,13 @@
@@ -92,5 +93,5 @@ index 82f6b25..33eea64 100644
def build(bld):
bld.SAMBA_BINARY('texpect',
--
-2.17.1
+2.25.1
diff --git a/meta-networking/recipes-connectivity/samba/samba/0005-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-networking/recipes-connectivity/samba/samba/0005-Fix-pyext_PATTERN-for-cross-compilation.patch
new file mode 100644
index 0000000000..53ef21948a
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba/0005-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,63 @@
+From d2a2d0f82a37d0bf21123671774b0b03ffa976cf Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 24 Nov 2021 13:33:35 +0800
+Subject: [PATCH] Fix pyext_PATTERN for cross compilation
+
+The pyext_PATTERN will add native arch as suffix when cross compiling.
+For example, on qemuarm64, it is expanded to:
+pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
+which will result in the incorrect library name.
+
+root@qemuarm64:~# find /usr/lib -name \*cpython\*
+/usr/lib/pkgconfig/samba-policy.cpython-310-x86_64-linux-gnu.pc
+/usr/lib/libsamba-policy.cpython-310-x86-64-linux-gnu.so
+/usr/lib/samba/libsamba-python.cpython-310-x86-64-linux-gnu-samba4.so
+/usr/lib/samba/libsamba-net.cpython-310-x86-64-linux-gnu-samba4.so
+/usr/lib/libsamba-policy.cpython-310-x86-64-linux-gnu.so.0
+/usr/lib/libsamba-policy.cpython-310-x86-64-linux-gnu.so.0.0.1
+/usr/lib/python3.10/site-packages/samba/dsdb_dns.cpython-310-x86_64-linux-gnu.so
+/usr/lib/python3.10/site-packages/samba/dsdb.cpython-310-x86_64-linux-gnu.so
+/usr/lib/python3.10/site-packages/samba/xattr_tdb.cpython-310-x86_64-linux-gnu.so
+/usr/lib/python3.10/site-packages/samba/_ldb.cpython-310-x86_64-linux-gnu.so
+/usr/lib/python3.10/site-packages/samba/gensec.cpython-310-x86_64-linux-gnu.so
+[snip]
+
+Set pyext_PATTERN to '%s.so' to remove the suffix.
+After the patch:
+root@qemuarm64:~# find /usr/lib/
+/usr/lib/pkgconfig/samba-policy.pc
+/usr/lib/libsamba-policy.so
+/usr/lib/samba/libsamba-python-samba4.so
+/usr/lib/samba/libsamba-net-samba4.so
+/usr/lib/libsamba-policy.so.0
+/usr/lib/libsamba-policy.so.0.0.1
+/usr/lib/python3.10/site-packages/samba/dsdb_dns.so
+/usr/lib/python3.10/site-packages/samba/dsdb.so
+/usr/lib/python3.10/site-packages/samba/xattr_tdb.so
+/usr/lib/python3.10/site-packages/samba/_ldb.so
+/usr/lib/python3.10/site-packages/samba/gensec.so
+[snip]
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ third_party/waf/waflib/Tools/python.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
+index b2dd1a9..2bd3545 100644
+--- a/third_party/waf/waflib/Tools/python.py
++++ b/third_party/waf/waflib/Tools/python.py
+@@ -339,7 +339,7 @@ def check_python_headers(conf, features='pyembed pyext'):
+ x = 'MACOSX_DEPLOYMENT_TARGET'
+ if dct[x]:
+ env[x] = conf.environ[x] = str(dct[x])
+- env.pyext_PATTERN = '%s' + (dct['EXT_SUFFIX'] or dct['SO']) # SO is deprecated in 3.5 and removed in 3.11
++ env.pyext_PATTERN = '%s.so'
+
+
+ # Try to get pythonX.Y-config
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/samba/samba/0005-samba-build-dnsserver_common-code.patch b/meta-networking/recipes-connectivity/samba/samba/0005-samba-build-dnsserver_common-code.patch
deleted file mode 100644
index 2abbe563ae..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/0005-samba-build-dnsserver_common-code.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 10d7abc8f1aa99ae45209aeb704978d206f329c0 Mon Sep 17 00:00:00 2001
-From: Joe Slater <joe.slater@windriver.com>
-Date: Tue, 1 Jun 2021 11:09:19 +0800
-Subject: [PATCH] samba: build dnsserver_common code
-
-Just 'install' does not seem to do it.
-
-Upstream-Status: Pending
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
----
- source4/dns_server/wscript_build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/source4/dns_server/wscript_build b/source4/dns_server/wscript_build
-index e97c85d..a49fbb9 100644
---- a/source4/dns_server/wscript_build
-+++ b/source4/dns_server/wscript_build
-@@ -4,7 +4,7 @@ bld.SAMBA_LIBRARY('dnsserver_common',
- source='dnsserver_common.c',
- deps='samba-util samba-errors ldbsamba clidns',
- private_library=True,
-- install=bld.AD_DC_BUILD_IS_ENABLED()
-+ enabled=bld.AD_DC_BUILD_IS_ENABLED()
- )
-
- bld.SAMBA_MODULE('service_dns',
---
-2.17.1
-
diff --git a/meta-networking/recipes-connectivity/samba/samba/0006-smbtorture-skip-test-case-tfork_cmd_send.patch b/meta-networking/recipes-connectivity/samba/samba/0006-smbtorture-skip-test-case-tfork_cmd_send.patch
new file mode 100644
index 0000000000..13fbd35950
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba/0006-smbtorture-skip-test-case-tfork_cmd_send.patch
@@ -0,0 +1,38 @@
+From 4fd04fc7c94d6981f3409d088ab8d32c48460010 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Thu, 25 Aug 2022 16:46:04 +0800
+Subject: [PATCH] smbtorture: skip test case tfork_cmd_send
+
+The test case tfork_cmd_send fails on target as it requires a script
+located in the source directory:
+
+$ smbtorture ncalrpc:localhost local.tfork.tfork_cmd_send
+test: tfork_cmd_send
+/buildarea/build/tmp/work/core2-64-poky-linux/samba/4.14.14-r0/samba-4.14.14/testprogs/blackbox/tfork.sh:
+Failed to exec child - No such file or directory
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ lib/util/tests/tfork.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/lib/util/tests/tfork.c b/lib/util/tests/tfork.c
+index 70ae975..4826ce6 100644
+--- a/lib/util/tests/tfork.c
++++ b/lib/util/tests/tfork.c
+@@ -839,10 +839,6 @@ struct torture_suite *torture_local_tfork(TALLOC_CTX *mem_ctx)
+ "tfork_threads",
+ test_tfork_threads);
+
+- torture_suite_add_simple_test(suite,
+- "tfork_cmd_send",
+- test_tfork_cmd_send);
+-
+ torture_suite_add_simple_test(suite,
+ "tfork_event_file_handle",
+ test_tfork_event_file_handle);
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/samba/samba/0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch b/meta-networking/recipes-connectivity/samba/samba/0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch
new file mode 100644
index 0000000000..e3506adfb7
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba/0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch
@@ -0,0 +1,124 @@
+From bf5552f937c745940081e29ef32d52ae26bfd8c1 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@fujitsu.com>
+Date: Sun, 30 Oct 2022 11:59:31 +0900
+Subject: [PATCH] Deleted settiong of python to fix the install conflict error
+ when enable multilib.
+
+ file /usr/bin/samba-tool conflicts between attempted installs of samba-4.14.14-r0.core2_64 and lib32-samba-4.14.14-r0.i686
+ file /usr/sbin/samba-gpupdate conflicts between attempted installs of samba-4.14.14-r0.core2_64 and lib32-samba-4.14.14-r0.i686
+ file /usr/sbin/samba_dnsupdate conflicts between attempted installs of samba-4.14.14-r0.core2_64 and lib32-samba-4.14.14-r0.i686
+ file /usr/sbin/samba_downgrade_db conflicts between attempted installs of samba-4.14.14-r0.core2_64 and lib32-samba-4.14.14-r0.i686
+ file /usr/sbin/samba_kcc conflicts between attempted installs of samba-4.14.14-r0.core2_64 and lib32-samba-4.14.14-r0.i686
+ file /usr/sbin/samba_spnupdate conflicts between attempted installs of samba-4.14.14-r0.core2_64 and lib32-samba-4.14.14-r0.i686
+ file /usr/sbin/samba_upgradedns conflicts between attempted installs of samba-4.14.14-r0.core2_64 and lib32-samba-4.14.14-r0.i686
+
+The conflict is because there is a difference between of lib32-samba-* and samba-* as the following:
+64bit:
+sys.path.insert(0, "/usr/lib64/python3.10/site-packages")
+
+32bit:
+sys.path.insert(0, "/usr/lib/python3.10/site-packages")
+
+But this setting is for environment when running from source tree. There
+is no necessary on target.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
+---
+ source4/scripting/bin/samba-gpupdate | 1 -
+ source4/scripting/bin/samba-tool | 1 -
+ source4/scripting/bin/samba_dnsupdate | 1 -
+ source4/scripting/bin/samba_downgrade_db | 1 -
+ source4/scripting/bin/samba_kcc | 1 -
+ source4/scripting/bin/samba_spnupdate | 1 -
+ source4/scripting/bin/samba_upgradedns | 1 -
+ 7 files changed, 7 deletions(-)
+
+diff --git a/source4/scripting/bin/samba-gpupdate b/source4/scripting/bin/samba-gpupdate
+index 4b3f057..08fec2d 100755
+--- a/source4/scripting/bin/samba-gpupdate
++++ b/source4/scripting/bin/samba-gpupdate
+@@ -25,7 +25,6 @@ applied, have changed, or is in the right container'''
+ import os
+ import sys
+
+-sys.path.insert(0, "bin/python")
+
+ import optparse
+ from samba import getopt as options
+diff --git a/source4/scripting/bin/samba-tool b/source4/scripting/bin/samba-tool
+index b02ad4d..f69ae10 100755
+--- a/source4/scripting/bin/samba-tool
++++ b/source4/scripting/bin/samba-tool
+@@ -22,7 +22,6 @@
+ import sys
+
+ # Find right direction when running from source tree
+-sys.path.insert(0, "bin/python")
+
+ # make sure the script dies immediately when hitting control-C,
+ # rather than raising KeyboardInterrupt. As we do all database
+diff --git a/source4/scripting/bin/samba_dnsupdate b/source4/scripting/bin/samba_dnsupdate
+index 69821e2..4037870 100755
+--- a/source4/scripting/bin/samba_dnsupdate
++++ b/source4/scripting/bin/samba_dnsupdate
+@@ -36,7 +36,6 @@ os.environ['PYTHONUNBUFFERED'] = '1'
+ os.environ["TZ"] = "GMT"
+
+ # Find right directory when running from source tree
+-sys.path.insert(0, "bin/python")
+
+ import samba
+ import optparse
+diff --git a/source4/scripting/bin/samba_downgrade_db b/source4/scripting/bin/samba_downgrade_db
+index b9a0909..80f581e 100755
+--- a/source4/scripting/bin/samba_downgrade_db
++++ b/source4/scripting/bin/samba_downgrade_db
+@@ -23,7 +23,6 @@ import optparse
+ import sys
+
+ # Find right directory when running from source tree
+-sys.path.insert(0, "bin/python")
+
+
+ import samba
+diff --git a/source4/scripting/bin/samba_kcc b/source4/scripting/bin/samba_kcc
+index 67d801e..2fc0d6a 100755
+--- a/source4/scripting/bin/samba_kcc
++++ b/source4/scripting/bin/samba_kcc
+@@ -36,7 +36,6 @@ os.environ['PYTHONUNBUFFERED'] = '1'
+ os.environ["TZ"] = "GMT"
+
+ # Find right directory when running from source tree
+-sys.path.insert(0, "bin/python")
+
+ import optparse
+ import time
+diff --git a/source4/scripting/bin/samba_spnupdate b/source4/scripting/bin/samba_spnupdate
+index b421886..5e18ad9 100755
+--- a/source4/scripting/bin/samba_spnupdate
++++ b/source4/scripting/bin/samba_spnupdate
+@@ -32,7 +32,6 @@ os.environ['PYTHONUNBUFFERED'] = '1'
+ os.environ["TZ"] = "GMT"
+
+ # Find right directory when running from source tree
+-sys.path.insert(0, "bin/python")
+
+ import samba, ldb
+ import optparse
+diff --git a/source4/scripting/bin/samba_upgradedns b/source4/scripting/bin/samba_upgradedns
+index afc5807..727a3cc 100755
+--- a/source4/scripting/bin/samba_upgradedns
++++ b/source4/scripting/bin/samba_upgradedns
+@@ -27,7 +27,6 @@ import grp
+ from base64 import b64encode
+ import shlex
+
+-sys.path.insert(0, "bin/python")
+
+ import ldb
+ import samba
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/samba/samba/cmocka-uintptr_t.patch b/meta-networking/recipes-connectivity/samba/samba/cmocka-uintptr_t.patch
deleted file mode 100644
index 5c299d617b..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/cmocka-uintptr_t.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 5bd7b5d04435bd593349825973ce32290f5f604d Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Wed, 25 Jul 2018 09:55:25 +0800
-Subject: [PATCH] samba: cmocka.h: fix musl libc conflicting types error
-
-Fix build on qemumips64(el)
-
-taken from:
-[PATCH] libldb: fix musl libc conflicting types error
-
-/third_party/cmocka/cmocka.h:126:28: error: conflicting types for 'uintptr_t'
- typedef unsigned int uintptr_t;
- ^~~~~~~~~
-use __DEFINED_uintptr_t in alltypes.h to check if uintptr already defined
-
-Upstream-Status: Pending
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
----
- third_party/cmocka/cmocka.h | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/third_party/cmocka/cmocka.h b/third_party/cmocka/cmocka.h
-index 4fd82a9..5443a08 100644
---- a/third_party/cmocka/cmocka.h
-+++ b/third_party/cmocka/cmocka.h
-@@ -110,7 +110,7 @@ typedef uintmax_t LargestIntegralType;
- ((LargestIntegralType)(value))
-
- /* Smallest integral type capable of holding a pointer. */
--#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED)
-+#if !defined(__DEFINED_uintptr_t)
- # if defined(_WIN32)
- /* WIN32 is an ILP32 platform */
- typedef unsigned int uintptr_t;
-@@ -134,9 +134,8 @@ typedef uintmax_t LargestIntegralType;
- # endif /* __WORDSIZE */
- # endif /* _WIN32 */
-
--# define _UINTPTR_T
--# define _UINTPTR_T_DEFINED
--#endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */
-+# define __DEFINED_uintptr_t
-+#endif /* !defined(__DEFINED_uintptr_t) */
-
- /* Perform an unsigned cast to uintptr_t. */
- #define cast_to_pointer_integral_type(value) \
---
-2.7.4
-
diff --git a/meta-networking/recipes-connectivity/samba/samba/netdb_defines.patch b/meta-networking/recipes-connectivity/samba/samba/netdb_defines.patch
deleted file mode 100644
index eb06866f46..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/netdb_defines.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Index: samba-4.6.2/nsswitch/wins.c
-===================================================================
---- samba-4.6.2.orig/nsswitch/wins.c
-+++ samba-4.6.2/nsswitch/wins.c
-@@ -39,6 +39,14 @@ static pthread_mutex_t wins_nss_mutex =
- #define INADDRSZ 4
- #endif
-
-+#ifndef NETDB_INTERNAL
-+#define NETDB_INTERNAL (-1)
-+#endif
-+
-+#ifndef NETDB_SUCCESS
-+#define NETDB_SUCCESS 0
-+#endif
-+
- NSS_STATUS _nss_wins_gethostbyname_r(const char *hostname,
- struct hostent *he,
- char *buffer,
diff --git a/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch b/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch
index a75ac2bbae..0c967be62f 100644
--- a/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/samba-4.3.9-remove-getpwent_r.patch
@@ -1,4 +1,4 @@
-From 02e0b14d8fa025a5db410d60a7c0dfebd536aaeb Mon Sep 17 00:00:00 2001
+From e5d9527e6b3b386229747f799c725fcd68bc5228 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 6 Nov 2016 23:40:54 -0800
Subject: [PATCH] Musl does not have _r versions of getent() and getpwent()
@@ -7,14 +7,15 @@ Subject: [PATCH] Musl does not have _r versions of getent() and getpwent()
Taken from gentoo
http://data.gpo.zugaina.org/musl/net-fs/samba/files/samba-4.3.9-remove-getpwent_r.patch
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
source4/torture/local/nss_tests.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/source4/torture/local/nss_tests.c b/source4/torture/local/nss_tests.c
-index 2cd6122..04f13c6 100644
+index e911aa2..2b39b74 100644
--- a/source4/torture/local/nss_tests.c
+++ b/source4/torture/local/nss_tests.c
@@ -247,7 +247,6 @@ static bool test_getgrnam_r(struct torture_context *tctx,
@@ -33,7 +34,7 @@ index 2cd6122..04f13c6 100644
static bool test_enum_r_passwd(struct torture_context *tctx,
struct passwd **pwd_array_p,
size_t *num_pwd_p)
-@@ -381,6 +381,7 @@ static bool test_enum_r_passwd(struct torture_context *tctx,
+@@ -383,6 +383,7 @@ static bool test_enum_r_passwd(struct torture_context *tctx,
return true;
}
@@ -41,7 +42,7 @@ index 2cd6122..04f13c6 100644
static bool torture_assert_passwd_equal(struct torture_context *tctx,
const struct passwd *p1,
-@@ -432,7 +433,7 @@ static bool test_passwd_r(struct torture_context *tctx)
+@@ -434,7 +435,7 @@ static bool test_passwd_r(struct torture_context *tctx)
struct passwd *pwd, pwd1, pwd2;
size_t num_pwd;
@@ -50,7 +51,7 @@ index 2cd6122..04f13c6 100644
"failed to enumerate passwd");
for (i=0; i < num_pwd; i++) {
-@@ -460,7 +461,7 @@ static bool test_passwd_r_cross(struct torture_context *tctx)
+@@ -462,7 +463,7 @@ static bool test_passwd_r_cross(struct torture_context *tctx)
struct passwd *pwd, pwd1, pwd2, pwd3, pwd4;
size_t num_pwd;
@@ -59,7 +60,7 @@ index 2cd6122..04f13c6 100644
"failed to enumerate passwd");
for (i=0; i < num_pwd; i++) {
-@@ -531,6 +532,7 @@ static bool test_enum_group(struct torture_context *tctx,
+@@ -533,6 +534,7 @@ static bool test_enum_group(struct torture_context *tctx,
return true;
}
@@ -67,7 +68,7 @@ index 2cd6122..04f13c6 100644
static bool test_enum_r_group(struct torture_context *tctx,
struct group **grp_array_p,
size_t *num_grp_p)
-@@ -579,6 +581,7 @@ static bool test_enum_r_group(struct torture_context *tctx,
+@@ -583,6 +585,7 @@ static bool test_enum_r_group(struct torture_context *tctx,
return true;
}
@@ -75,7 +76,7 @@ index 2cd6122..04f13c6 100644
static bool torture_assert_group_equal(struct torture_context *tctx,
const struct group *g1,
-@@ -635,7 +638,7 @@ static bool test_group_r(struct torture_context *tctx)
+@@ -639,7 +642,7 @@ static bool test_group_r(struct torture_context *tctx)
struct group *grp, grp1, grp2;
size_t num_grp;
@@ -84,7 +85,7 @@ index 2cd6122..04f13c6 100644
"failed to enumerate group");
for (i=0; i < num_grp; i++) {
-@@ -663,7 +666,7 @@ static bool test_group_r_cross(struct torture_context *tctx)
+@@ -667,7 +670,7 @@ static bool test_group_r_cross(struct torture_context *tctx)
struct group *grp, grp1, grp2, grp3, grp4;
size_t num_grp;
@@ -93,3 +94,6 @@ index 2cd6122..04f13c6 100644
"failed to enumerate group");
for (i=0; i < num_grp; i++) {
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/samba/samba/samba-fix-musl-lib-without-innetgr.patch b/meta-networking/recipes-connectivity/samba/samba/samba-fix-musl-lib-without-innetgr.patch
deleted file mode 100644
index fb12a10e26..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/samba-fix-musl-lib-without-innetgr.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From fcb8ecd530b2d151e373974741601483326f7528 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Thu, 27 Jun 2019 11:09:47 +0800
-Subject: [PATCH] samba: fix musl lib without innetgr
-
-Upstream-Status: Pending
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- lib/util/access.c | 2 +-
- source3/auth/user_util.c | 2 +-
- 2 file changed, 2 insertion(+), 2 deletion(-)
-
-diff --git a/lib/util/access.c b/lib/util/access.c
-index 7da0573..b94949e 100644
---- a/lib/util/access.c
-+++ b/lib/util/access.c
-@@ -112,7 +112,7 @@ static bool string_match(const char *tok,const char *s)
- return true;
- }
- } else if (tok[0] == '@') { /* netgroup: look it up */
--#ifdef HAVE_NETGROUP
-+#if defined(HAVE_NETGROUP) && defined(HAVE_INNETGR)
- DATA_BLOB tmp;
- char *mydomain = NULL;
- char *hostname = NULL;
-diff --git a/source3/auth/user_util.c b/source3/auth/user_util.c
-index a76b5d4..30f523d 100644
---- a/source3/auth/user_util.c
-+++ b/source3/auth/user_util.c
-@@ -148,7 +148,7 @@ static void store_map_in_gencache(TALLOC_CTX *ctx, const char *from, const char
-
- bool user_in_netgroup(TALLOC_CTX *ctx, const char *user, const char *ngname)
- {
--#ifdef HAVE_NETGROUP
-+#if defined(HAVE_NETGROUP) && defined(HAVE_INNETGR)
- static char *my_yp_domain = NULL;
- char *lowercase_user = NULL;
-
---
-2.7.4
-
diff --git a/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch b/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch
index 27b40f2152..4fcbb47572 100644
--- a/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch
@@ -1,21 +1,22 @@
-From 54a5279cb33abd23ef7c094d51f16078ece2da0c Mon Sep 17 00:00:00 2001
+From c533bdced677e2104565fc06602e7e63d9c79ac0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 6 Nov 2016 23:40:54 -0800
Subject: [PATCH] Lifted from gentoo and ported to 4.4.5
http://data.gpo.zugaina.org/musl/net-fs/samba/files/samba-4.2.7-pam.patch
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
source3/wscript | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/source3/wscript b/source3/wscript
-index 5436db2..864f614 100644
+index b7f96f3..ed12b1e 100644
--- a/source3/wscript
+++ b/source3/wscript
-@@ -879,7 +879,7 @@ msg.msg_accrightslen = sizeof(fd);
+@@ -863,7 +863,7 @@ msg.msg_accrightslen = sizeof(fd);
if conf.env.with_iconv:
conf.DEFINE('HAVE_ICONV', 1)
@@ -24,7 +25,7 @@ index 5436db2..864f614 100644
use_pam=True
conf.CHECK_HEADERS('security/pam_appl.h pam/pam_appl.h')
if not conf.CONFIG_SET('HAVE_SECURITY_PAM_APPL_H') and not conf.CONFIG_SET('HAVE_PAM_PAM_APPL_H'):
-@@ -956,6 +956,17 @@ int i; i = PAM_RADIO_TYPE;
+@@ -940,6 +940,17 @@ int i; i = PAM_RADIO_TYPE;
"or headers not found. Use --without-pam to disable "
"PAM support.");
@@ -42,3 +43,6 @@ index 5436db2..864f614 100644
seteuid = False
#
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/samba/samba_4.14.14.bb b/meta-networking/recipes-connectivity/samba/samba_4.14.14.bb
deleted file mode 100644
index f88dee6175..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba_4.14.14.bb
+++ /dev/null
@@ -1,351 +0,0 @@
-HOMEPAGE = "https://www.samba.org/"
-SECTION = "console/network"
-
-LICENSE = "GPL-3.0-or-later & LGPL-3.0-or-later & GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://${COREBASE}/meta/files/common-licenses/LGPL-3.0-or-later;md5=c51d3eef3be114124d11349ca0d7e117 \
- file://${COREBASE}/meta/files/common-licenses/GPL-2.0-or-later;md5=fed54355545ffd980b814dab4a3b312c"
-
-SAMBA_MIRROR = "http://samba.org/samba/ftp"
-MIRRORS += "\
-${SAMBA_MIRROR} http://mirror.internode.on.net/pub/samba \n \
-${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \
-"
-
-SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
- file://smb.conf \
- file://volatiles.03_samba \
- file://0001-Don-t-check-xsltproc-manpages.patch \
- file://0002-do-not-import-target-module-while-cross-compile.patch \
- file://0003-Add-config-option-without-valgrind.patch \
- file://0004-Add-options-to-configure-the-use-of-libbsd.patch \
- file://0005-samba-build-dnsserver_common-code.patch \
- file://0001-Fix-pyext_PATTERN-for-cross-compilation.patch \
- file://0001-smbtorture-skip-test-case-tfork_cmd_send.patch \
- file://0001-waf-Fix-errors-with-Werror-implicit-function-declara.patch \
- "
-
-SRC_URI:append:libc-musl = " \
- file://netdb_defines.patch \
- file://samba-pam.patch \
- file://samba-4.3.9-remove-getpwent_r.patch \
- file://cmocka-uintptr_t.patch \
- file://samba-fix-musl-lib-without-innetgr.patch \
- "
-
-SRC_URI[sha256sum] = "abd5e9e6aa45e55114b188ba189ebdfc8fd3d7718d43f749e477ce7f791e5519"
-
-UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.14(\.\d+)+).tar.gz"
-
-inherit systemd waf-samba cpan-base perlnative update-rc.d perl-version pkgconfig
-
-# CVE-2011-2411 is valnerble only on HP NonStop Servers.
-CVE_CHECK_IGNORE += "CVE-2011-2411"
-
-# remove default added RDEPENDS on perl
-RDEPENDS:${PN}:remove = "perl"
-
-DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libaio libpam libtasn1 jansson libparse-yapp-perl-native gnutls"
-
-inherit features_check
-REQUIRED_DISTRO_FEATURES = "pam"
-
-DEPENDS:append:libc-musl = " libtirpc"
-CFLAGS:append:libc-musl = " -I${STAGING_INCDIR}/tirpc"
-LDFLAGS:append:libc-musl = " -ltirpc"
-
-COMPATIBLE_HOST:riscv32 = "null"
-
-INITSCRIPT_NAME = "samba"
-INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ."
-
-SYSTEMD_PACKAGES = "${PN}-base ${PN}-ad-dc winbind"
-SYSTEMD_SERVICE:${PN}-base = "nmb.service smb.service"
-SYSTEMD_SERVICE:${PN}-ad-dc = "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'samba.service', '', d)}"
-SYSTEMD_SERVICE:winbind = "winbind.service"
-
-# There are prerequisite settings to enable ad-dc, so disable the service by default.
-# Reference:
-# https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
-SYSTEMD_AUTO_ENABLE:${PN}-ad-dc = "disable"
-
-#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
-#to cross Popen
-export WAF_NO_PREFORK="yes"
-
-# Use krb5. Build active domain controller.
-#
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd zeroconf', d)} \
- acl cups ad-dc ldap mitkrb5 \
-"
-
-RDEPENDS:${PN}-ctdb-tests += "bash util-linux-getopt"
-
-PACKAGECONFIG[acl] = "--with-acl-support,--without-acl-support,acl"
-PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin"
-PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups"
-PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
-PACKAGECONFIG[sasl] = ",,cyrus-sasl"
-PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd"
-PACKAGECONFIG[dmapi] = "--with-dmapi,--without-dmapi,dmapi"
-PACKAGECONFIG[zeroconf] = "--enable-avahi,--disable-avahi,avahi"
-PACKAGECONFIG[valgrind] = ",--without-valgrind,valgrind,"
-PACKAGECONFIG[lttng] = "--with-lttng, --without-lttng,lttng-ust"
-PACKAGECONFIG[archive] = "--with-libarchive, --without-libarchive, libarchive"
-PACKAGECONFIG[libunwind] = ", , libunwind"
-PACKAGECONFIG[gpgme] = ",--without-gpgme,,"
-PACKAGECONFIG[lmdb] = ",--without-ldb-lmdb,lmdb,"
-PACKAGECONFIG[libbsd] = "--with-libbsd, --without-libbsd, libbsd"
-PACKAGECONFIG[ad-dc] = "--with-experimental-mit-ad-dc,--without-ad-dc,python3-markdown python3-dnspython,"
-PACKAGECONFIG[mitkrb5] = "--with-system-mitkrb5 --with-system-mitkdc=/usr/sbin/krb5kdc,,krb5,"
-
-SAMBA4_IDMAP_MODULES="idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2"
-SAMBA4_PDB_MODULES="pdb_tdbsam,${@bb.utils.contains('PACKAGECONFIG', 'ldap', 'pdb_ldap,', '', d)}pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4"
-SAMBA4_AUTH_MODULES="auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4"
-SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODULES}"
-
-# These libraries are supposed to replace others supplied by packages, but decorate the names of
-# .so files so there will not be a conflict. This is not done consistantly, so be very careful
-# when adding to this list.
-#
-SAMBA4_LIBS="heimdal,cmocka,NONE"
-
-EXTRA_OECONF += "--enable-fhs \
- --with-piddir=/run \
- --with-sockets-dir=/run/samba \
- --with-modulesdir=${libdir}/samba \
- --with-privatelibdir=${libdir}/samba \
- --with-lockdir=${localstatedir}/lib/samba \
- --with-cachedir=${localstatedir}/lib/samba \
- --disable-rpath-install \
- --disable-rpath \
- --with-shared-modules=${SAMBA4_MODULES} \
- --bundled-libraries=${SAMBA4_LIBS} \
- ${@oe.utils.conditional('TARGET_ARCH', 'x86_64', '', '--disable-glusterfs', d)} \
- --with-cluster-support \
- --with-profiling-data \
- --with-libiconv=${STAGING_DIR_HOST}${prefix} \
- --with-pam --with-pammodulesdir=${base_libdir}/security \
- "
-
-LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-
-do_configure:append () {
- cd ${S}/pidl/
- perl Makefile.PL PREFIX=${prefix}
- sed -e 's,VENDORPREFIX)/lib/perl,VENDORPREFIX)/${baselib}/perl,g' \
- -e 's,PERLPREFIX)/lib/perl,PERLPREFIX)/${baselib}/perl,g' -i Makefile
-
-}
-
-do_compile:append () {
- oe_runmake -C ${S}/pidl
-}
-
-do_install:append() {
- for section in 1 5 7; do
- install -d ${D}${mandir}/man$section
- install -m 0644 ctdb/doc/*.$section ${D}${mandir}/man$section
- done
- for section in 1 5 7 8; do
- install -d ${D}${mandir}/man$section
- install -m 0644 docs/manpages/*.$section ${D}${mandir}/man$section
- done
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${S}/bin/default/packaging/systemd/*.service ${D}${systemd_system_unitdir}/
- sed -e 's,\(ExecReload=\).*\(/kill\),\1${base_bindir}\2,' \
- -e 's,/etc/sysconfig/samba,${sysconfdir}/default/samba,' \
- -i ${D}${systemd_system_unitdir}/*.service
-
- if [ "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'yes', 'no', d)}" = "no" ]; then
- rm -f ${D}${systemd_system_unitdir}/samba.service
- fi
-
- install -d ${D}${sysconfdir}/tmpfiles.d
- install -m644 packaging/systemd/samba.conf.tmp ${D}${sysconfdir}/tmpfiles.d/samba.conf
- echo "d ${localstatedir}/log/samba 0755 root root -" \
- >> ${D}${sysconfdir}/tmpfiles.d/samba.conf
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 packaging/sysv/samba.init ${D}${sysconfdir}/init.d/samba
- sed -e 's,/opt/samba/bin,${sbindir},g' \
- -e 's,/opt/samba/smb.conf,${sysconfdir}/samba/smb.conf,g' \
- -e 's,/opt/samba/log,${localstatedir}/log/samba,g' \
- -e 's,/etc/init.d/samba.server,${sysconfdir}/init.d/samba,g' \
- -e 's,/usr/bin,${base_bindir},g' \
- -i ${D}${sysconfdir}/init.d/samba
-
- install -d ${D}${sysconfdir}/samba
- echo "127.0.0.1 localhost" > ${D}${sysconfdir}/samba/lmhosts
- install -m644 ${WORKDIR}/smb.conf ${D}${sysconfdir}/samba/smb.conf
- install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/03_samba
-
- install -d ${D}${sysconfdir}/default
- install -m644 packaging/systemd/samba.sysconfig ${D}${sysconfdir}/default/samba
-
- # the items are from ctdb/tests/run_tests.sh
- for d in cunit eventd eventscripts onnode shellcheck takeover takeover_helper tool; do
- testdir=${D}${datadir}/ctdb-tests/UNIT/$d
- install -d $testdir
- cp ${S}/ctdb/tests/UNIT/$d/*.sh $testdir
- cp -r ${S}/ctdb/tests/UNIT/$d/scripts ${S}/ctdb/tests/UNIT/$d/stubs $testdir || true
- done
-
- # fix file-rdeps qa warning
- if [ -f ${D}${bindir}/onnode ]; then
- sed -i 's:\(#!/bin/\)bash:\1sh:' ${D}${bindir}/onnode
- fi
-
- chmod 0750 ${D}${sysconfdir}/sudoers.d || true
- rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log
-
- for f in samba-gpupdate samba_upgradedns samba_spnupdate samba_kcc samba_dnsupdate samba_downgrade_db; do
- if [ -f "${D}${sbindir}/$f" ]; then
- sed -i -e 's,${PYTHON},/usr/bin/env python3,g' ${D}${sbindir}/$f
- fi
- done
- if [ -f "${D}${bindir}/samba-tool" ]; then
- sed -i -e 's,${PYTHON},/usr/bin/env python3,g' ${D}${bindir}/samba-tool
- fi
-
- oe_runmake -C ${S}/pidl DESTDIR=${D} install_vendor
- find ${D}${libdir}/ -type f -name "perllocal.pod" | xargs rm -f
- rm -rf ${D}${libdir}/perl5/vendor_perl/${PERLVERSION}/${BUILD_SYS}/auto/Parse/Pidl/.packlist
- sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${bindir}/pidl
-}
-
-PACKAGES =+ "${PN}-python3 ${PN}-pidl \
- ${PN}-dsdb-modules ${PN}-testsuite registry-tools \
- winbind \
- ${PN}-common ${PN}-base ${PN}-ad-dc ${PN}-ctdb-tests \
- smbclient ${PN}-client ${PN}-server ${PN}-test"
-
-python samba_populate_packages() {
- def module_hook(file, pkg, pattern, format, basename):
- pn = d.getVar('PN')
- d.appendVar('RRECOMMENDS:%s-base' % pn, ' %s' % pkg)
-
- mlprefix = d.getVar('MLPREFIX') or ''
- pam_libdir = d.expand('${base_libdir}/security')
- pam_pkgname = mlprefix + 'pam-plugin%s'
- do_split_packages(d, pam_libdir, r'^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True)
-
- libdir = d.getVar('libdir')
- do_split_packages(d, libdir, r'^lib(.*)\.so\..*$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True, allow_links=True)
- pkglibdir = '%s/samba' % libdir
- do_split_packages(d, pkglibdir, r'^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True)
- moduledir = '%s/samba/auth' % libdir
- do_split_packages(d, moduledir, r'^(.*)\.so$', 'samba-auth-%s', 'Samba %s authentication backend', hook=module_hook, extra_depends='', prepend=True)
- moduledir = '%s/samba/pdb' % libdir
- do_split_packages(d, moduledir, r'^(.*)\.so$', 'samba-pdb-%s', 'Samba %s password backend', hook=module_hook, extra_depends='', prepend=True)
-}
-
-PACKAGESPLITFUNCS:prepend = "samba_populate_packages "
-PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*"
-
-RDEPENDS:${PN} += "${PN}-base ${PN}-python3 ${PN}-dsdb-modules python3"
-RDEPENDS:${PN}-python3 += "pytalloc python3-tdb pyldb"
-
-FILES:${PN}-base = "${sbindir}/nmbd \
- ${sbindir}/smbd \
- ${sysconfdir}/init.d \
- ${systemd_system_unitdir}/nmb.service \
- ${systemd_system_unitdir}/smb.service"
-
-FILES:${PN}-ad-dc = "${sbindir}/samba \
- ${systemd_system_unitdir}/samba.service \
- ${libdir}/krb5/plugins/kdb/samba.so \
-"
-RDEPENDS:${PN}-ad-dc = "krb5-kdc"
-
-FILES:${PN}-ctdb-tests = "${bindir}/ctdb_run_tests \
- ${bindir}/ctdb_run_cluster_tests \
- ${sysconfdir}/ctdb/nodes \
- ${datadir}/ctdb-tests \
- ${datadir}/ctdb/tests \
- ${localstatedir}/lib/ctdb \
- "
-
-FILES:${BPN}-common = "${sysconfdir}/default \
- ${sysconfdir}/samba \
- ${sysconfdir}/tmpfiles.d \
- ${localstatedir}/lib/samba \
- ${localstatedir}/spool/samba \
-"
-
-FILES:${PN} += "${libdir}/vfs/*.so \
- ${libdir}/charset/*.so \
- ${libdir}/*.dat \
- ${libdir}/auth/*.so \
- ${datadir}/ctdb/events/* \
-"
-
-FILES:${PN}-dsdb-modules = "${libdir}/samba/ldb"
-
-FILES:${PN}-testsuite = "${bindir}/gentest \
- ${bindir}/locktest \
- ${bindir}/masktest \
- ${bindir}/ndrdump \
- ${bindir}/smbtorture"
-
-FILES:registry-tools = "${bindir}/regdiff \
- ${bindir}/regpatch \
- ${bindir}/regshell \
- ${bindir}/regtree"
-
-FILES:winbind = "${sbindir}/winbindd \
- ${bindir}/wbinfo \
- ${bindir}/ntlm_auth \
- ${libdir}/samba/idmap \
- ${libdir}/samba/nss_info \
- ${libdir}/winbind_krb5_locator.so \
- ${libdir}/winbind-krb5-localauth.so \
- ${sysconfdir}/init.d/winbind \
- ${systemd_system_unitdir}/winbind.service"
-
-FILES:${PN}-python3 = "${PYTHON_SITEPACKAGES_DIR}"
-
-FILES:smbclient = "${bindir}/cifsdd \
- ${bindir}/rpcclient \
- ${bindir}/smbcacls \
- ${bindir}/smbclient \
- ${bindir}/smbcquotas \
- ${bindir}/smbget \
- ${bindir}/smbspool \
- ${bindir}/smbtar \
- ${bindir}/smbtree \
- ${libdir}/samba/smbspool_krb5_wrapper"
-
-RDEPENDS:${PN}-pidl:append = " perl libparse-yapp-perl"
-FILES:${PN}-pidl = "${bindir}/pidl \
- ${libdir}/perl5 \
- "
-
-RDEPENDS:${PN}-client = "\
- smbclient \
- winbind \
- registry-tools \
- ${PN}-pidl \
- "
-
-ALLOW_EMPTY:${PN}-client = "1"
-
-RDEPENDS:${PN}-server = "\
- ${PN} \
- winbind \
- registry-tools \
- "
-
-ALLOW_EMPTY:${PN}-server = "1"
-
-RDEPENDS:${PN}-test = "\
- ${PN}-ctdb-tests \
- ${PN}-testsuite \
- "
-
-ALLOW_EMPTY:${PN}-test = "1"
-
-# Patch for CVE-2018-1050 is applied in version 4.5.15, 4.6.13, 4.7.5.
-# Patch for CVE-2018-1057 is applied in version 4.3.13, 4.4.16.
-CVE_CHECK_IGNORE += "CVE-2018-1050"
-CVE_CHECK_IGNORE += "CVE-2018-1057"
diff --git a/meta-networking/recipes-connectivity/samba/samba_4.19.5.bb b/meta-networking/recipes-connectivity/samba/samba_4.19.5.bb
new file mode 100644
index 0000000000..f5ef86dd4b
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba_4.19.5.bb
@@ -0,0 +1,356 @@
+HOMEPAGE = "https://www.samba.org/"
+SECTION = "console/network"
+
+LICENSE = "GPL-3.0-or-later & LGPL-3.0-or-later & GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://${COREBASE}/meta/files/common-licenses/LGPL-3.0-or-later;md5=c51d3eef3be114124d11349ca0d7e117 \
+ file://${COREBASE}/meta/files/common-licenses/GPL-2.0-or-later;md5=fed54355545ffd980b814dab4a3b312c"
+
+SAMBA_MIRROR = "http://samba.org/samba/ftp"
+MIRRORS += "\
+${SAMBA_MIRROR} http://mirror.internode.on.net/pub/samba \n \
+${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \
+"
+
+export PYTHONHASHSEED="1"
+
+SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
+ file://smb.conf \
+ file://volatiles.03_samba \
+ file://0001-Don-t-check-xsltproc-manpages.patch \
+ file://0002-do-not-import-target-module-while-cross-compile.patch \
+ file://0003-Add-config-option-without-valgrind.patch \
+ file://0004-Add-options-to-configure-the-use-of-libbsd.patch \
+ file://0005-Fix-pyext_PATTERN-for-cross-compilation.patch \
+ file://0006-smbtorture-skip-test-case-tfork_cmd_send.patch \
+ file://0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch \
+ "
+
+SRC_URI:append:libc-musl = " \
+ file://samba-pam.patch \
+ file://samba-4.3.9-remove-getpwent_r.patch \
+ "
+
+SRC_URI[sha256sum] = "0e2405b4cec29d0459621f4340a1a74af771ec7cffedff43250cad7f1f87605e"
+
+UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.19(\.\d+)+).tar.gz"
+
+inherit systemd waf-samba cpan-base perlnative update-rc.d perl-version pkgconfig
+
+CVE_STATUS[CVE-2011-2411] = "not-applicable-platform: vulnerable only on HP NonStop Servers"
+
+# remove default added RDEPENDS on perl
+RDEPENDS:${PN}:remove = "perl"
+
+DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libaio libpam libtasn1 libtasn1-native jansson libparse-yapp-perl-native gnutls cmocka"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+DEPENDS:append:libc-musl = " libtirpc"
+CFLAGS:append:libc-musl = " -I${STAGING_INCDIR}/tirpc"
+LDFLAGS:append:libc-musl = " -ltirpc"
+
+COMPATIBLE_HOST:riscv32 = "null"
+
+INITSCRIPT_NAME = "samba"
+INITSCRIPT_PARAMS = "start 20 3 5 . stop 20 0 1 6 ."
+
+SYSTEMD_PACKAGES = "${PN}-base ${PN}-ad-dc winbind ctdb"
+SYSTEMD_SERVICE:${PN}-base = "nmb.service smb.service"
+SYSTEMD_SERVICE:${PN}-ad-dc = "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'samba.service', '', d)}"
+SYSTEMD_SERVICE:winbind = "winbind.service"
+SYSTEMD_SERVICE:ctdb = "ctdb.service"
+
+# There are prerequisite settings to enable ad-dc, so disable the service by default.
+# Reference:
+# https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
+SYSTEMD_AUTO_ENABLE:${PN}-ad-dc = "disable"
+
+#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
+#to cross Popen
+export WAF_NO_PREFORK="yes"
+
+# Use krb5. Build active domain controller.
+#
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd zeroconf', d)} \
+ acl cups ldap mitkrb5 \
+"
+
+PACKAGECONFIG[acl] = "--with-acl-support,--without-acl-support,acl"
+PACKAGECONFIG[fam] = "--with-fam,--without-fam,gamin"
+PACKAGECONFIG[cups] = "--enable-cups,--disable-cups,cups"
+PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
+PACKAGECONFIG[sasl] = ",,cyrus-sasl"
+PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd"
+PACKAGECONFIG[dmapi] = "--with-dmapi,--without-dmapi,dmapi"
+PACKAGECONFIG[zeroconf] = "--enable-avahi,--disable-avahi,avahi"
+PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
+PACKAGECONFIG[lttng] = "--with-lttng,--without-lttng,lttng-ust"
+PACKAGECONFIG[archive] = "--with-libarchive,--without-libarchive,libarchive"
+PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind"
+PACKAGECONFIG[gpgme] = "--with-gpgme,--without-gpgme,gpgme"
+PACKAGECONFIG[lmdb] = ",--without-ldb-lmdb,lmdb"
+PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
+PACKAGECONFIG[ad-dc] = "--with-experimental-mit-ad-dc,--without-ad-dc,python3-markdown python3-dnspython,"
+PACKAGECONFIG[mitkrb5] = "--with-system-mitkrb5 --with-system-mitkdc=/usr/sbin/krb5kdc,,krb5,"
+
+SAMBA4_IDMAP_MODULES="idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2"
+SAMBA4_PDB_MODULES="pdb_tdbsam,${@bb.utils.contains('PACKAGECONFIG', 'ldap', 'pdb_ldap,', '', d)}pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4"
+SAMBA4_AUTH_MODULES="auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4"
+SAMBA4_MODULES="${SAMBA4_IDMAP_MODULES},${SAMBA4_PDB_MODULES},${SAMBA4_AUTH_MODULES}"
+
+# These libraries are supposed to replace others supplied by packages, but decorate the names of
+# .so files so there will not be a conflict. This is not done consistantly, so be very careful
+# when adding to this list.
+#
+SAMBA4_LIBS="heimdal,NONE"
+
+EXTRA_OECONF += "--enable-fhs \
+ --with-piddir=/run \
+ --with-sockets-dir=/run/samba \
+ --with-modulesdir=${libdir}/samba \
+ --with-privatelibdir=${libdir}/samba \
+ --with-lockdir=${localstatedir}/lib/samba \
+ --with-cachedir=${localstatedir}/lib/samba \
+ --disable-rpath-install \
+ --disable-rpath \
+ --with-shared-modules=${SAMBA4_MODULES} \
+ --bundled-libraries=${SAMBA4_LIBS} \
+ ${@oe.utils.conditional('TARGET_ARCH', 'x86_64', '', '--disable-glusterfs', d)} \
+ --with-cluster-support \
+ --with-profiling-data \
+ --with-libiconv=${STAGING_DIR_HOST}${prefix} \
+ --with-pam --with-pammodulesdir=${base_libdir}/security \
+ --pythondir=${PYTHON_SITEPACKAGES_DIR} \
+ "
+
+LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
+do_configure:append() {
+ cd ${S}/pidl/
+ perl Makefile.PL PREFIX=${prefix}
+ sed -e 's,VENDORPREFIX)/lib/perl,VENDORPREFIX)/${baselib}/perl,g' \
+ -e 's,PERLPREFIX)/lib/perl,PERLPREFIX)/${baselib}/perl,g' -i Makefile
+}
+
+do_compile:append() {
+ oe_runmake -C ${S}/pidl
+}
+
+do_install:append() {
+ for section in 1 5 7; do
+ install -d ${D}${mandir}/man$section
+ install -m 0644 ctdb/doc/*.$section ${D}${mandir}/man$section
+ done
+ for section in 1 5 7 8; do
+ install -d ${D}${mandir}/man$section
+ install -m 0644 docs/manpages/*.$section ${D}${mandir}/man$section
+ done
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${S}/bin/default/packaging/systemd/*.service ${D}${systemd_system_unitdir}/
+ sed -e 's,\(ExecReload=\).*\(/kill\),\1${base_bindir}\2,' \
+ -e 's,/etc/sysconfig/samba,${sysconfdir}/default/samba,' \
+ -i ${D}${systemd_system_unitdir}/*.service
+
+ if [ "${@bb.utils.contains('PACKAGECONFIG', 'ad-dc', 'yes', 'no', d)}" = "no" ]; then
+ rm -f ${D}${systemd_system_unitdir}/samba.service
+ fi
+
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ install -m644 packaging/systemd/samba.conf.tmp ${D}${sysconfdir}/tmpfiles.d/samba.conf
+ echo "d ${localstatedir}/log/samba 0755 root root -" \
+ >> ${D}${sysconfdir}/tmpfiles.d/samba.conf
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 packaging/sysv/samba.init ${D}${sysconfdir}/init.d/samba
+ sed -e 's,/opt/samba/bin,${sbindir},g' \
+ -e 's,/opt/samba/smb.conf,${sysconfdir}/samba/smb.conf,g' \
+ -e 's,/opt/samba/log,${localstatedir}/log/samba,g' \
+ -e 's,/etc/init.d/samba.server,${sysconfdir}/init.d/samba,g' \
+ -e 's,/usr/bin,${base_bindir},g' \
+ -i ${D}${sysconfdir}/init.d/samba
+
+ install -d ${D}${sysconfdir}/samba
+ echo "127.0.0.1 localhost" > ${D}${sysconfdir}/samba/lmhosts
+ install -m644 ${WORKDIR}/smb.conf ${D}${sysconfdir}/samba/smb.conf
+ install -D -m 644 ${WORKDIR}/volatiles.03_samba ${D}${sysconfdir}/default/volatiles/03_samba
+
+ install -d ${D}${sysconfdir}/default
+ install -m644 packaging/systemd/samba.sysconfig ${D}${sysconfdir}/default/samba
+
+ # the items are from ctdb/tests/run_tests.sh
+ for d in cunit eventd eventscripts onnode shellcheck takeover takeover_helper tool; do
+ testdir=${D}${datadir}/ctdb-tests/UNIT/$d
+ install -d $testdir
+ cp ${S}/ctdb/tests/UNIT/$d/*.sh $testdir
+ cp -r ${S}/ctdb/tests/UNIT/$d/scripts ${S}/ctdb/tests/UNIT/$d/stubs $testdir || true
+ done
+
+ # fix file-rdeps qa warning
+ if [ -f ${D}${bindir}/onnode ]; then
+ sed -i 's:\(#!/bin/\)bash:\1sh:' ${D}${bindir}/onnode
+ fi
+
+ chmod 0750 ${D}${sysconfdir}/sudoers.d || true
+ rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log
+
+ for f in samba-gpupdate samba_upgradedns samba_spnupdate samba_kcc samba_dnsupdate samba_downgrade_db; do
+ if [ -f "${D}${sbindir}/$f" ]; then
+ sed -i -e 's,${PYTHON},/usr/bin/env python3,g' ${D}${sbindir}/$f
+ fi
+ done
+ if [ -f "${D}${bindir}/samba-tool" ]; then
+ sed -i -e 's,${PYTHON},/usr/bin/env python3,g' ${D}${bindir}/samba-tool
+ fi
+
+ oe_runmake -C ${S}/pidl DESTDIR=${D} install_vendor
+ find ${D}${libdir}/perl5/ -type f -name "perllocal.pod" -delete
+ find ${D}${libdir}/perl5/ -type f -name ".packlist" -delete
+ sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${bindir}/pidl
+}
+
+PACKAGES =+ "${PN}-python3 ${PN}-pidl \
+ ${PN}-dsdb-modules ${PN}-testsuite registry-tools \
+ winbind ctdb ctdb-tests \
+ ${PN}-common ${PN}-base ${PN}-ad-dc \
+ smbclient ${PN}-client ${PN}-server ${PN}-test"
+
+python samba_populate_packages() {
+ def module_hook(file, pkg, pattern, format, basename):
+ pn = d.getVar('PN')
+ d.appendVar('RRECOMMENDS:%s-base' % pn, ' %s' % pkg)
+
+ mlprefix = d.getVar('MLPREFIX') or ''
+ pam_libdir = d.expand('${base_libdir}/security')
+ pam_pkgname = mlprefix + 'pam-plugin%s'
+ do_split_packages(d, pam_libdir, r'^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True)
+
+ libdir = d.getVar('libdir')
+ do_split_packages(d, libdir, r'^lib(.*)\.so\..*$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True, allow_links=True)
+ pkglibdir = '%s/samba' % libdir
+ do_split_packages(d, pkglibdir, r'^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True)
+ moduledir = '%s/samba/auth' % libdir
+ do_split_packages(d, moduledir, r'^(.*)\.so$', 'samba-auth-%s', 'Samba %s authentication backend', hook=module_hook, extra_depends='', prepend=True)
+ moduledir = '%s/samba/pdb' % libdir
+ do_split_packages(d, moduledir, r'^(.*)\.so$', 'samba-pdb-%s', 'Samba %s password backend', hook=module_hook, extra_depends='', prepend=True)
+}
+
+PACKAGESPLITFUNCS:prepend = "samba_populate_packages "
+PACKAGES_DYNAMIC = "samba-auth-.* samba-pdb-.*"
+
+RDEPENDS:${PN} += "${PN}-base ${PN}-python3 ${PN}-dsdb-modules python3"
+RDEPENDS:${PN}-python3 += "pytalloc python3-tdb pyldb"
+
+FILES:${PN}-base = "${sbindir}/nmbd \
+ ${sbindir}/smbd \
+ ${sysconfdir}/init.d \
+ ${systemd_system_unitdir}/nmb.service \
+ ${systemd_system_unitdir}/smb.service"
+
+FILES:${PN}-ad-dc = "${sbindir}/samba \
+ ${systemd_system_unitdir}/samba.service \
+ ${libdir}/krb5/plugins/kdb/samba.so \
+"
+
+RDEPENDS:${PN}-ad-dc = "krb5-kdc"
+
+FILES:ctdb = "${bindir}/ctdb \
+ ${bindir}/ctdb_diagnostics \
+ ${bindir}/ltdbtool \
+ ${bindir}/onnode \
+ ${bindir}/ping_pong \
+ ${sbindir}/ctdbd \
+ ${datadir}/ctdb \
+ ${libexecdir}/ctdb \
+ ${localstatedir}/lib/ctdb \
+ ${sysconfdir}/ctdb \
+ ${sysconfdir}/sudoers.d/ctdb \
+ ${systemd_system_unitdir}/ctdb.service \
+"
+
+FILES:ctdb-tests = "${bindir}/ctdb_run_tests \
+ ${bindir}/ctdb_run_cluster_tests \
+ ${datadir}/ctdb-tests \
+ ${datadir}/ctdb/tests \
+"
+
+RDEPENDS:ctdb-tests += "bash util-linux-getopt ctdb"
+
+FILES:${BPN}-common = "${sysconfdir}/default \
+ ${sysconfdir}/samba \
+ ${sysconfdir}/tmpfiles.d \
+ ${localstatedir}/lib/samba \
+ ${localstatedir}/spool/samba \
+"
+
+FILES:${PN} += "${libdir}/vfs/*.so \
+ ${libdir}/charset/*.so \
+ ${libdir}/*.dat \
+ ${libdir}/auth/*.so \
+"
+
+FILES:${PN}-dsdb-modules = "${libdir}/samba/ldb"
+
+FILES:${PN}-testsuite = "${bindir}/gentest \
+ ${bindir}/locktest \
+ ${bindir}/masktest \
+ ${bindir}/ndrdump \
+ ${bindir}/smbtorture"
+
+FILES:registry-tools = "${bindir}/regdiff \
+ ${bindir}/regpatch \
+ ${bindir}/regshell \
+ ${bindir}/regtree"
+
+FILES:winbind = "${sbindir}/winbindd \
+ ${bindir}/wbinfo \
+ ${bindir}/ntlm_auth \
+ ${libdir}/samba/idmap \
+ ${libdir}/samba/nss_info \
+ ${libdir}/winbind_krb5_locator.so \
+ ${libdir}/winbind-krb5-localauth.so \
+ ${sysconfdir}/init.d/winbind \
+ ${systemd_system_unitdir}/winbind.service"
+
+FILES:${PN}-python3 = "${PYTHON_SITEPACKAGES_DIR}"
+
+FILES:smbclient = "${bindir}/cifsdd \
+ ${bindir}/rpcclient \
+ ${bindir}/smbcacls \
+ ${bindir}/smbclient \
+ ${bindir}/smbcquotas \
+ ${bindir}/smbget \
+ ${bindir}/smbspool \
+ ${bindir}/smbtar \
+ ${bindir}/smbtree \
+ ${libexecdir}/samba/smbspool_krb5_wrapper"
+
+FILES:${PN}-pidl = "${bindir}/pidl \
+ ${libdir}/perl5 \
+ "
+RDEPENDS:${PN}-pidl += "perl perl-modules libparse-yapp-perl"
+
+RDEPENDS:${PN}-client = "\
+ smbclient \
+ winbind \
+ registry-tools \
+ ${PN}-pidl \
+ "
+
+ALLOW_EMPTY:${PN}-client = "1"
+
+RDEPENDS:${PN}-server = "\
+ ${PN} \
+ winbind \
+ registry-tools \
+ "
+
+ALLOW_EMPTY:${PN}-server = "1"
+
+RDEPENDS:${PN}-test = "\
+ ctdb-tests \
+ ${PN}-testsuite \
+ "
+
+ALLOW_EMPTY:${PN}-test = "1"
diff --git a/meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch b/meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch
index 30ec174395..98c20b6ecf 100644
--- a/meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch
+++ b/meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Disable run test program while cross compiling
fix configure error:
configure: error: cannot run test program while cross compiling
-Upstream-Status:Inappropriate [embedded specific]
+Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
diff --git a/meta-networking/recipes-connectivity/snort/snort/snort.default b/meta-networking/recipes-connectivity/snort/snort/snort.default
new file mode 100644
index 0000000000..f1f67c55c0
--- /dev/null
+++ b/meta-networking/recipes-connectivity/snort/snort/snort.default
@@ -0,0 +1 @@
+INTERFACES="eth0"
diff --git a/meta-networking/recipes-connectivity/snort/snort/snort.service b/meta-networking/recipes-connectivity/snort/snort/snort.service
new file mode 100644
index 0000000000..487328c1b0
--- /dev/null
+++ b/meta-networking/recipes-connectivity/snort/snort/snort.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Snort NIDS Daemon
+After=syslog.target network.target
+
+[Service]
+Type=simple
+EnvironmentFile=/etc/default/snort
+ExecStartPre=/bin/mkdir -p /var/log/snort
+ExecStart=/usr/bin/snort -q -c /etc/snort/snort.conf -l /var/log/snort -i $INTERFACES
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-networking/recipes-connectivity/snort/snort3/0001-cmake-Check-for-HP-libunwind.patch b/meta-networking/recipes-connectivity/snort/snort3/0001-cmake-Check-for-HP-libunwind.patch
new file mode 100644
index 0000000000..7b7a0d098f
--- /dev/null
+++ b/meta-networking/recipes-connectivity/snort/snort3/0001-cmake-Check-for-HP-libunwind.patch
@@ -0,0 +1,33 @@
+From 433a412fad2ab0383ac3c625d183a71684f2b97b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 20 Feb 2024 15:35:14 -0800
+Subject: [PATCH] cmake: Check for HP libunwind
+
+This is to ensure that cmake does not detect LLVM unwinder, which
+can provide the support for some HP unwinder functionality but not all
+e.g. unw_strerror goes missing. By checking for libunwind-common.h in
+tests we ensure that this test passes only with HP libunwind.
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cmake/FindLibunwind.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/FindLibunwind.cmake b/cmake/FindLibunwind.cmake
+index f66800a18..1ad66fc83 100644
+--- a/cmake/FindLibunwind.cmake
++++ b/cmake/FindLibunwind.cmake
+@@ -22,7 +22,7 @@ find_package(PkgConfig QUIET)
+ pkg_check_modules(PC_LIBUNWIND libunwind)
+
+ find_path(LIBUNWIND_INCLUDE_DIRS
+- NAMES libunwind.h
++ NAMES libunwind-common.h
+ HINTS ${PC_LIBUNWIND_INCLUDE_DIRS}
+ )
+
+--
+2.43.2
+
diff --git a/meta-networking/recipes-connectivity/snort/snort3/0001-cmake-Pass-noline-flag-to-flex.patch b/meta-networking/recipes-connectivity/snort/snort3/0001-cmake-Pass-noline-flag-to-flex.patch
new file mode 100644
index 0000000000..ec7b90cfb4
--- /dev/null
+++ b/meta-networking/recipes-connectivity/snort/snort3/0001-cmake-Pass-noline-flag-to-flex.patch
@@ -0,0 +1,31 @@
+From 417ed0045b3d04f539a8eb18b07a208c75f6c7e1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 20 Feb 2024 16:08:20 -0800
+Subject: [PATCH] cmake: Pass --noline flag to flex
+
+This ensures that line directive is not emitted into lexer output which
+could be absolute build paths, since these files end up in dbg packages
+this can be flagged as a build/packaging warning.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cmake/configure_options.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/configure_options.cmake b/cmake/configure_options.cmake
+index f3673f399..fbd0bd2c3 100644
+--- a/cmake/configure_options.cmake
++++ b/cmake/configure_options.cmake
+@@ -28,7 +28,7 @@ if ( ENABLE_LARGE_PCAP )
+ endif ( ENABLE_LARGE_PCAP )
+
+ # Flex Lexer
+-set ( FLEX_FLAGS "-Ca" )
++set ( FLEX_FLAGS "-Ca --noline" )
+
+ # documentation
+
+--
+2.43.2
+
diff --git a/meta-networking/recipes-connectivity/snort/snort3_3.1.84.0.bb b/meta-networking/recipes-connectivity/snort/snort3_3.1.84.0.bb
new file mode 100644
index 0000000000..ee84aa17e7
--- /dev/null
+++ b/meta-networking/recipes-connectivity/snort/snort3_3.1.84.0.bb
@@ -0,0 +1,38 @@
+SUMMARY = "snort3"
+DESCRIPTION = "snort3 - a free lightweight network intrusion detection system for UNIX and Windows."
+HOMEPAGE = "http://www.snort.org/"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5"
+
+DEPENDS = "flex-native hwloc libdaq libdnet libpcap libpcre libtirpc libunwind luajit zlib"
+
+SRC_URI = "git://github.com/snort3/snort3.git;protocol=https;branch=master \
+ file://0001-cmake-Check-for-HP-libunwind.patch \
+ file://0001-cmake-Pass-noline-flag-to-flex.patch"
+SRCREV = "e7312efd840d66a52a2019abe1db7cc89ca0f39a"
+
+S = "${WORKDIR}/git"
+
+PACKAGES =+ "${PN}-scripts"
+
+inherit cmake pkgconfig
+
+do_install:append() {
+ sed -i "s#${RECIPE_SYSROOT_NATIVE}##g; s#${RECIPE_SYSROOT}##g" ${D}${libdir}/pkgconfig/snort.pc
+}
+
+FILES:${PN} += "${libdir}/snort/daq/*.so"
+
+FILES:${PN}-scripts = "${bindir}/appid_detector_builder.sh"
+
+RDEPENDS:${PN}-scripts += "bash"
+
+# mips64/ppc/ppc64/riscv64/riscv32 is not supported in this release
+COMPATIBLE_HOST:mipsarchn32 = "null"
+COMPATIBLE_HOST:mipsarchn64 = "null"
+COMPATIBLE_HOST:powerpc = "null"
+COMPATIBLE_HOST:powerpc64 = "null"
+COMPATIBLE_HOST:powerpc64le = "null"
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
diff --git a/meta-networking/recipes-connectivity/snort/snort_2.9.20.bb b/meta-networking/recipes-connectivity/snort/snort_2.9.20.bb
index c15c20443d..8b9092b418 100644
--- a/meta-networking/recipes-connectivity/snort/snort_2.9.20.bb
+++ b/meta-networking/recipes-connectivity/snort/snort_2.9.20.bb
@@ -8,6 +8,8 @@ DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native libtirpc bison-n
SRC_URI = "https://www.snort.org/downloads/archive/snort/${BP}.tar.gz \
file://snort.init \
+ file://snort.service \
+ file://snort.default \
file://volatiles.99_snort \
file://0001-libpcap-search-sysroot-for-headers.patch \
file://fix-host-contamination-when-enable-static-daq.patch \
@@ -19,11 +21,15 @@ SRC_URI[sha256sum] = "29400e13f53b1831e0b8b10ec1224a1cbaa6dc1533a5322a20dd80bb84
UPSTREAM_CHECK_URI = "https://www.snort.org/downloads"
UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar"
-inherit autotools gettext update-rc.d pkgconfig
+inherit autotools gettext update-rc.d pkgconfig systemd
INITSCRIPT_NAME = "snort"
INITSCRIPT_PARAMS = "defaults"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "snort.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
EXTRA_OECONF = " \
--enable-gre \
--enable-linux-smp-stats \
@@ -69,8 +75,17 @@ do_install:append() {
${D}${sysconfdir}/snort/snort.conf
cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/
- install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -m 755 ${WORKDIR}/snort.init ${D}${sysconfdir}/init.d/snort
+ fi
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}/${systemd_system_unitdir}
+ install -m 644 ${WORKDIR}/snort.service ${D}/${systemd_system_unitdir}
+ # Install default environment file
+ install -d ${D}/${sysconfdir}/default
+ install -m 0644 ${WORKDIR}/snort.default ${D}${sysconfdir}/default/snort
+ fi
install -d ${D}${sysconfdir}/default/volatiles
install -m 0644 ${WORKDIR}/volatiles.99_snort ${D}${sysconfdir}/default/volatiles/99_snort
@@ -87,6 +102,7 @@ FILES:${PN} += " \
${libdir}/snort_dynamicengine/*.so.* \
${libdir}/snort_dynamicpreprocessor/*.so.* \
${libdir}/snort_dynamicrules/*.so.* \
+ ${systemd_system_unitdir}/snort.service \
"
FILES:${PN}-dbg += " \
${libdir}/snort_dynamicengine/.debug \
diff --git a/meta-networking/recipes-connectivity/sshpass/sshpass_1.09.bb b/meta-networking/recipes-connectivity/sshpass/sshpass_1.09.bb
deleted file mode 100644
index 5c52437af8..0000000000
--- a/meta-networking/recipes-connectivity/sshpass/sshpass_1.09.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Non-interactive ssh password auth"
-HOMEPAGE = "http://sshpass.sourceforge.net/"
-SECTION = "console/network"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
-
-SRC_URI[sha256sum] = "71746e5e057ffe9b00b44ac40453bf47091930cba96bbea8dc48717dedc49fb7"
-
-inherit autotools
diff --git a/meta-networking/recipes-connectivity/sshpass/sshpass_1.10.bb b/meta-networking/recipes-connectivity/sshpass/sshpass_1.10.bb
new file mode 100644
index 0000000000..81c5e48008
--- /dev/null
+++ b/meta-networking/recipes-connectivity/sshpass/sshpass_1.10.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "Non-interactive ssh password auth"
+HOMEPAGE = "http://sshpass.sourceforge.net/"
+SECTION = "console/network"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
+
+SRC_URI[sha256sum] = "ad1106c203cbb56185ca3bad8c6ccafca3b4064696194da879f81c8d7bdfeeda"
+
+inherit autotools
diff --git a/meta-networking/recipes-connectivity/tayga/files/0001-include-sys-uio.patch b/meta-networking/recipes-connectivity/tayga/files/0001-include-sys-uio.patch
new file mode 100644
index 0000000000..0c6f1609af
--- /dev/null
+++ b/meta-networking/recipes-connectivity/tayga/files/0001-include-sys-uio.patch
@@ -0,0 +1,18 @@
+
+This patch addresses the following clang failure: tayga-0.9.2/nat64.c:119:6:
+error: call to undeclared function 'writev'; ISO C99 and later do not support
+implicit function declarations [-Wimplicit-function-declaration]
+
+Upstream-Status: Pending
+Signed-off-by: Pawel Langowski <pawel.langowski@3mdeb.com>
+
+--- tayga.h 2023-09-29 14:38:05.005837695 +0200
++++ tayga-2.h 2023-09-29 14:37:45.560837257 +0200
+@@ -20,6 +20,7 @@
+ #include <sys/stat.h>
+ #include <sys/ioctl.h>
+ #include <sys/socket.h>
++#include <sys/uio.h>
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <unistd.h>
diff --git a/meta-networking/recipes-connectivity/tayga/files/tayga.conf b/meta-networking/recipes-connectivity/tayga/files/tayga.conf
new file mode 100644
index 0000000000..c1b6163a45
--- /dev/null
+++ b/meta-networking/recipes-connectivity/tayga/files/tayga.conf
@@ -0,0 +1,103 @@
+#
+# Sample configuration file for TAYGA 0.9.2
+#
+# Modify this to use your own addresses!!
+#
+
+#
+# TUN device that TAYGA will use to exchange IPv4 and IPv6 packets with the
+# kernel. You may use any name you like, but `nat64' is recommended.
+#
+# This device may be created before starting the tayga daemon by running
+# `tayga --mktun`. This allows routing and firewall rules to be set up prior
+# to commencement of packet translation.
+#
+# Mandatory.
+#
+tun-device nat64
+
+#
+# TAYGA's IPv4 address. This is NOT your router's IPv4 address! TAYGA
+# requires its own address because it acts as an IPv4 and IPv6 router, and
+# needs to be able to send ICMP messages. TAYGA will also respond to ICMP
+# echo requests (ping) at this address.
+#
+# This address can safely be located inside the dynamic-pool prefix.
+#
+# Mandatory.
+#
+ipv4-addr 192.168.254.1
+
+#
+# TAYGA's IPv6 address. This is NOT your router's IPv6 address! TAYGA
+# requires its own address because it acts as an IPv4 and IPv6 router, and
+# needs to be able to send ICMP messages. TAYGA will also respond to ICMP
+# echo requests (ping6) at this address.
+#
+# You can leave ipv6-addr unspecified and TAYGA will construct its IPv6
+# address using ipv4-addr and the NAT64 prefix.
+#
+# Optional if the NAT64 prefix is specified, otherwise mandatory. It is also
+# mandatory if the NAT64 prefix is 64:ff9b::/96 and ipv4-addr is a private
+# (RFC1918) address.
+#
+#ipv6-addr 2001:db8:1::2
+ipv6-addr fdaa:bb:1::1
+
+#
+# The NAT64 prefix. The IPv4 address space is mapped into the IPv6 address
+# space by prepending this prefix to the IPv4 address. Using a /96 prefix is
+# recommended in most situations, but all lengths specified in RFC 6052 are
+# supported.
+#
+# This must be a prefix selected from your organization's IPv6 address space
+# or the Well-Known Prefix 64:ff9b::/96. Note that using the Well-Known
+# Prefix will prohibit IPv6 hosts from contacting IPv4 hosts that have private
+# (RFC1918) addresses, per RFC 6052.
+#
+# The NAT64 prefix need not be specified if all required address mappings are
+# listed in `map' directives. (See below.)
+#
+# Optional.
+#
+##prefix 2001:db8:1:ffff::/96
+prefix 64:ff9b::/96
+
+#
+# Dynamic pool prefix. IPv6 hosts which send traffic through TAYGA (and do
+# not correspond to a static map or an IPv4-translatable address in the NAT64
+# prefix) will be assigned an IPv4 address from the dynamic pool. Dynamic
+# maps are valid for 124 minutes after the last matching packet is seen.
+#
+# If no unassigned addresses remain in the dynamic pool (or no dynamic pool is
+# configured), packets from unknown IPv6 hosts will be rejected with an ICMP
+# unreachable error.
+#
+# Optional.
+#
+dynamic-pool 192.168.254.0/24
+
+#
+# Persistent data storage directory. The dynamic.map file, which saves the
+# dynamic maps that are created from dynamic-pool, is stored in this
+# directory. Omit if you do not need these maps to be persistent between
+# instances of TAYGA.
+#
+# Optional.
+#
+data-dir /var/spool/tayga
+
+#
+# Establishes a single-host map. If an IPv6 host should be consistently
+# reachable at a specific IPv4 address, the mapping can be specified in a
+# `map' directive. (IPv6 hosts numbered with an IPv4-translatable address do
+# not need map directives.)
+#
+# IPv4 addresses specified in the `map' directive can safely be located inside
+# the dynamic-pool prefix.
+#
+# Optional.
+#
+#map 192.168.5.42 2001:db8:1:4444::1
+#map 192.168.5.43 2001:db8:1:4444::2
+#map 192.168.255.2 2001:db8:1:569::143
diff --git a/meta-networking/recipes-connectivity/tayga/files/tayga.service b/meta-networking/recipes-connectivity/tayga/files/tayga.service
new file mode 100644
index 0000000000..0bffeb92a5
--- /dev/null
+++ b/meta-networking/recipes-connectivity/tayga/files/tayga.service
@@ -0,0 +1,12 @@
+[Unit]
+SourcePath=/usr/sbin/tayga
+Description=LSB: userspace NAT64
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/tayga -d --config /etc/tayga.conf
+RemainAfterExit=yes
+TimeoutStopSec=infinity
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-networking/recipes-connectivity/tayga/tayga_0.9.2.bb b/meta-networking/recipes-connectivity/tayga/tayga_0.9.2.bb
new file mode 100644
index 0000000000..36d35e6dee
--- /dev/null
+++ b/meta-networking/recipes-connectivity/tayga/tayga_0.9.2.bb
@@ -0,0 +1,21 @@
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = " \
+ http://www.litech.org/tayga/tayga-${PV}.tar.bz2 \
+ file://tayga.conf \
+ file://tayga.service \
+ file://0001-include-sys-uio.patch;striplevel=0 \
+ "
+SRC_URI[sha256sum] = "2b1f7927a9d2dcff9095aff3c271924b052ccfd2faca9588b277431a44f0009c"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "tayga.service"
+
+do_install:append() {
+ install -m 0644 ${WORKDIR}/tayga.conf ${D}${sysconfdir}/tayga.conf
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/tayga.service ${D}${systemd_unitdir}/system/
+}
+
+inherit autotools systemd
diff --git a/meta-networking/recipes-connectivity/vlan/vlan-1.9/no-HOME-includes.patch b/meta-networking/recipes-connectivity/vlan/vlan-1.9/no-HOME-includes.patch
index b7ab7d97c8..fd7a14adc9 100644
--- a/meta-networking/recipes-connectivity/vlan/vlan-1.9/no-HOME-includes.patch
+++ b/meta-networking/recipes-connectivity/vlan/vlan-1.9/no-HOME-includes.patch
@@ -5,7 +5,7 @@ Subject: vlan: do not include ${HOME}/linux/include dir
in front of sanitized kernel headers in OE chroot. Drop this include
option.
-Upstream-Status: not-applicable
+Upstream-Status: Inappropriate [embedded specific]
Index: vlan/MakeInclude
===================================================================
diff --git a/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb b/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb
index 035d4946f1..b478692e39 100644
--- a/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb
+++ b/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb
@@ -28,7 +28,7 @@ do_configure:append () {
# ignore strip to avoid yocto errors in stripping
do_compile () {
- oe_runmake PLATFORM=ARM 'STRIP=echo' all
+ oe_runmake PLATFORM=ARM 'STRIP=echo' CCFLAGS="${CFLAGS}" all
}
do_install () {
diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0001-search-for-log-help-in-build-dir.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0001-search-for-log-help-in-build-dir.patch
index 184c7943b5..735edb582e 100644
--- a/meta-networking/recipes-connectivity/vpnc/vpnc/0001-search-for-log-help-in-build-dir.patch
+++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0001-search-for-log-help-in-build-dir.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 1/8] search for log-help in build dir
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
makeman.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0002-Fix-vpnc-install-for-cross-compile.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0002-Fix-vpnc-install-for-cross-compile.patch
index 6f00d3b894..6380804368 100644
--- a/meta-networking/recipes-connectivity/vpnc/vpnc/0002-Fix-vpnc-install-for-cross-compile.patch
+++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0002-Fix-vpnc-install-for-cross-compile.patch
@@ -4,6 +4,8 @@ Date: Sun, 2 Dec 2012 02:16:54 +0100
Subject: [PATCH 2/8] Fix vpnc install for cross compile
---
+Upstream-Status: Pending
+
Makefile | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0003-error.h-is-specific-to-glibc-on-linux.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0003-error.h-is-specific-to-glibc-on-linux.patch
index bb7730647b..60c28cef31 100644
--- a/meta-networking/recipes-connectivity/vpnc/vpnc/0003-error.h-is-specific-to-glibc-on-linux.patch
+++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0003-error.h-is-specific-to-glibc-on-linux.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 3/8] error.h is specific to glibc on linux
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
sysdep.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0004-Use-pkgconfig-instead-of-libgcrypt-config.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0004-Use-pkgconfig-instead-of-libgcrypt-config.patch
index f70a13898f..305e9aabb1 100644
--- a/meta-networking/recipes-connectivity/vpnc/vpnc/0004-Use-pkgconfig-instead-of-libgcrypt-config.patch
+++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0004-Use-pkgconfig-instead-of-libgcrypt-config.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 4/8] Use pkgconfig instead of libgcrypt-config
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0005-include-sys-ttydefaults.h-for-CEOT-definition.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0005-include-sys-ttydefaults.h-for-CEOT-definition.patch
index 01783f45b7..af63433c0f 100644
--- a/meta-networking/recipes-connectivity/vpnc/vpnc/0005-include-sys-ttydefaults.h-for-CEOT-definition.patch
+++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0005-include-sys-ttydefaults.h-for-CEOT-definition.patch
@@ -10,6 +10,8 @@ config.c:146:25: error: use of undeclared identifier 'CEOT'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
config.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch
index fa89df2796..664c73a713 100644
--- a/meta-networking/recipes-connectivity/vpnc/vpnc/0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch
+++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0006-sysdep-Add-header-include-sequence-to-adjust-for-mus.patch
@@ -4,6 +4,8 @@ Date: Wed, 29 Mar 2017 23:09:47 -0700
Subject: [PATCH 6/8] sysdep: Add header include sequence to adjust for musl
---
+Upstream-Status: Pending
+
sysdep.h | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0007-add-error-API-when-error.h-is-not-on-platform.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0007-add-error-API-when-error.h-is-not-on-platform.patch
index de67b47a43..f7d7b0aec3 100644
--- a/meta-networking/recipes-connectivity/vpnc/vpnc/0007-add-error-API-when-error.h-is-not-on-platform.patch
+++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0007-add-error-API-when-error.h-is-not-on-platform.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 7/8] add error() API when error.h is not on platform
sign-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
sysdep.c | 24 ++++++++++++++++++++++++
sysdep.h | 2 ++
2 files changed, 26 insertions(+)
diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0008-include-sysdep.h-before-net-if_tun.h.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0008-include-sysdep.h-before-net-if_tun.h.patch
index 62ffdb7c9f..6c63011997 100644
--- a/meta-networking/recipes-connectivity/vpnc/vpnc/0008-include-sysdep.h-before-net-if_tun.h.patch
+++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0008-include-sysdep.h-before-net-if_tun.h.patch
@@ -7,6 +7,8 @@ Fixes duplicate defines in header errors
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
sysdep.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc/0009-reduce-lifetime-value.patch b/meta-networking/recipes-connectivity/vpnc/vpnc/0009-reduce-lifetime-value.patch
index 2bed550415..3da2efe479 100644
--- a/meta-networking/recipes-connectivity/vpnc/vpnc/0009-reduce-lifetime-value.patch
+++ b/meta-networking/recipes-connectivity/vpnc/vpnc/0009-reduce-lifetime-value.patch
@@ -12,6 +12,8 @@ don't.
Reducing the lifetime from its current value to 28800 (exactly 8 hours)
causes it to start working with fortigate devices.
---
+Upstream-Status: Pending
+
vpnc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb b/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
index adc2a72eeb..fe9c038f5c 100644
--- a/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
+++ b/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
@@ -1,6 +1,5 @@
SUMMARY = "A client for the Cisco3000 VPN Concentrator"
HOMEPAGE = "http://www.unix-ag.uni-kl.de/~massar/vpnc/"
-AUTHOR = "Maurice Massar vpnc@unix-ag.uni-kl.de"
SECTION = "net"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=173b74cb8ac640a9992c03f3bce22a33"
diff --git a/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.5.0.bb b/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.5.0.bb
deleted file mode 100644
index 3aa4f407af..0000000000
--- a/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.5.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "wolfSSL Lightweight Embedded SSL/TLS Library"
-DESCRIPTION = "wolfSSL, formerly CyaSSL, is a lightweight SSL library written \
- in C and optimized for embedded and RTOS environments. It can \
- be up to 20 times smaller than OpenSSL while still supporting \
- a full TLS client and server, up to TLS 1.3"
-HOMEPAGE = "https://www.wolfssl.com/products/wolfssl"
-BUGTRACKER = "https://github.com/wolfssl/wolfssl/issues"
-SECTION = "libs"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-PROVIDES += "cyassl"
-RPROVIDES:${PN} = "cyassl"
-
-SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https;branch=master"
-SRCREV = "44f81f8bc082319cebf0e37df8470aa5748c1355"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.7.0.bb b/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.7.0.bb
new file mode 100644
index 0000000000..47c14dd1a1
--- /dev/null
+++ b/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.7.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "wolfSSL Lightweight Embedded SSL/TLS Library"
+DESCRIPTION = "wolfSSL, formerly CyaSSL, is a lightweight SSL library written \
+ in C and optimized for embedded and RTOS environments. It can \
+ be up to 20 times smaller than OpenSSL while still supporting \
+ a full TLS client and server, up to TLS 1.3"
+HOMEPAGE = "https://www.wolfssl.com/products/wolfssl"
+BUGTRACKER = "https://github.com/wolfssl/wolfssl/issues"
+SECTION = "libs"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+PROVIDES += "cyassl"
+RPROVIDES:${PN} = "cyassl"
+
+SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https;branch=master"
+SRCREV = "8970ff4c34034dbb3594943d11f8c9d4c5512bd5"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-networking/recipes-core/images/meta-networking-image-all.bb b/meta-networking/recipes-core/images/meta-networking-image-all.bb
new file mode 100644
index 0000000000..20d3271c94
--- /dev/null
+++ b/meta-networking/recipes-core/images/meta-networking-image-all.bb
@@ -0,0 +1,3 @@
+require recipes-core/images/core-image-base.bb
+
+IMAGE_INSTALL += "packagegroup-meta-networking"
diff --git a/meta-networking/recipes-core/images/meta-networking-image-base.bb b/meta-networking/recipes-core/images/meta-networking-image-base.bb
deleted file mode 100644
index eaf1409537..0000000000
--- a/meta-networking/recipes-core/images/meta-networking-image-base.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-SUMMARY = "meta-networking build test image"
-
-IMAGE_INSTALL = "packagegroup-core-boot"
-
-LICENSE = "MIT"
-
-inherit core-image
diff --git a/meta-networking/recipes-core/images/meta-networking-image-ptest-all.bb b/meta-networking/recipes-core/images/meta-networking-image-ptest-all.bb
new file mode 100644
index 0000000000..6d96d4a876
--- /dev/null
+++ b/meta-networking/recipes-core/images/meta-networking-image-ptest-all.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Recipe to trigger execution of all meta-networking ptest images."
+HOMEPAGE = "https://www.openembedded.org/"
+
+LICENSE = "MIT"
+
+inherit features_check nopackages
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-networking.inc
+
+# Include the full set of ptests
+PTESTS_META_NETWORKING = "${PTESTS_FAST_META_NETWORKING} ${PTESTS_SLOW_META_NETWORKING} ${PTESTS_PROBLEMS_META_NETWORKING}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-networking-image-ptest-'+x+':do_testimage' for x in d.getVar('PTESTS_META_NETWORKING').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-networking-image-ptest-'+x+':do_build' for x in d.getVar('PTESTS_META_NETWORKING').split()])}"
+
+# normally image.bbclass would do this
+EXCLUDE_FROM_WORLD = "1"
+
+python () {
+ if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
+ bb.build.addtask("do_testimage", "", "", d)
+}
diff --git a/meta-networking/recipes-core/images/meta-networking-image-ptest-fast.bb b/meta-networking/recipes-core/images/meta-networking-image-ptest-fast.bb
new file mode 100644
index 0000000000..9f46ac8c1d
--- /dev/null
+++ b/meta-networking/recipes-core/images/meta-networking-image-ptest-fast.bb
@@ -0,0 +1,5 @@
+require meta-networking-image-ptest-all.bb
+
+DESCRIPTION = "Recipe to trigger execution of all fast meta-networking ptest images."
+
+PTESTS_META_NETWORKING = "${PTESTS_FAST_META_NETWORKING}"
diff --git a/meta-networking/recipes-core/images/meta-networking-image-ptest.bb b/meta-networking/recipes-core/images/meta-networking-image-ptest.bb
new file mode 100644
index 0000000000..295da982ec
--- /dev/null
+++ b/meta-networking/recipes-core/images/meta-networking-image-ptest.bb
@@ -0,0 +1,41 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require recipes-core/images/core-image-minimal.bb
+require conf/include/ptest-packagelists-meta-networking.inc
+
+SUMMARY = "meta-networking ptest test image"
+
+DESCRIPTION += "Also including the ${MCNAME} ptest package."
+HOMEPAGE = "https://www.openembedded.org/"
+
+PTESTS_META_NETWORKING = "${PTESTS_SLOW_META_NETWORKING} ${PTESTS_FAST_META_NETWORKING} ${PTESTS_PROBLEMS_META_NETWORKING}"
+
+IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
+
+BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_NETWORKING').split()])}"
+
+# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
+# box) and explicitly add up to 1500MB.
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "324288"
+# If a particular ptest needs more space, it can be customized:
+#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
+
+# ptests need more memory than standard to avoid the OOM killer
+QB_MEM = "-m 1024"
+# If a particular ptest needs more memroy, it can be customized:
+#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
+QB_MEM:virtclass-mcextend-nftables = "-m 2048"
+
+TEST_SUITES = "ping ssh parselogs ptest"
+
+# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
+
+python () {
+ if not d.getVar("MCNAME"):
+ raise bb.parse.SkipRecipe("No class extension set")
+}
+
diff --git a/meta-networking/recipes-core/images/meta-networking-image.bb b/meta-networking/recipes-core/images/meta-networking-image.bb
deleted file mode 100644
index f4c7401b35..0000000000
--- a/meta-networking/recipes-core/images/meta-networking-image.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require meta-networking-image-base.bb
-
-IMAGE_INSTALL += "packagegroup-meta-networking"
diff --git a/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb b/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
index 11437e2238..2e3aa54411 100644
--- a/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
+++ b/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
@@ -1,5 +1,6 @@
SUMMARY = "Meta-networking packagegroups"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
PROVIDES = "${PACKAGES}"
@@ -12,7 +13,6 @@ PACKAGES = ' \
packagegroup-meta-networking-filter \
packagegroup-meta-networking-irc \
packagegroup-meta-networking-kernel \
- packagegroup-meta-networking-netkit \
packagegroup-meta-networking-protocols \
packagegroup-meta-networking-support \
'
@@ -25,7 +25,6 @@ RDEPENDS:packagegroup-meta-networking = "\
packagegroup-meta-networking-filter \
packagegroup-meta-networking-irc \
packagegroup-meta-networking-kernel \
- packagegroup-meta-networking-netkit \
packagegroup-meta-networking-protocols \
packagegroup-meta-networking-support \
"
@@ -133,32 +132,17 @@ RDEPENDS:packagegroup-meta-networking-kernel = "\
wireguard-tools \
"
-RDEPENDS:packagegroup-meta-networking-netkit = "\
- netkit-rwho-client \
- netkit-rwho-server \
- netkit-rsh-client \
- netkit-rsh-server \
- netkit-telnet \
- netkit-tftp-client \
- netkit-tftp-server \
- netkit-ftp \
- netkit-rpc \
- "
-
-RDEPENDS:packagegroup-meta-networking-netkit:remove:libc-musl = " \
- netkit-rsh-client netkit-rsh-server netkit-telnet"
-
RDEPENDS:packagegroup-meta-networking-protocols = "\
babeld \
${@bb.utils.contains("DISTRO_FEATURES", "pam", "dante", "", d)} \
freediameter \
+ frr \
net-snmp \
openflow \
openflow \
openl2tp \
mdns \
nopoll \
- quagga \
radiusclient-ng \
tsocks \
openlldp \
@@ -214,7 +198,7 @@ RDEPENDS:packagegroup-meta-networking-support = "\
yp-tools \
mtr \
netsniff-ng \
- ntp ntpdate sntp ntpdc ntpq ntp-tickadj ntp-utils \
+ ntp sntp ntpdc ntpq ntp-tickadj ntp-utils \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "ntpsec", "", d)} \
nbd-client \
nbd-server \
@@ -257,8 +241,10 @@ RDEPENDS:packagegroup-meta-networking-support = "\
vnstat \
wpan-tools \
ettercap \
+ libcpr \
"
RDEPENDS:packagegroup-meta-networking-support:remove:mipsarch = "memcached"
+RDEPENDS:packagegroup-meta-networking-support:remove:riscv64 = "memcached"
RDEPENDS:packagegroup-meta-networking-support:remove:libc-musl = "ypbind-mt"
EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-networking/recipes-daemons/atftp/atftp_0.7.5.bb b/meta-networking/recipes-daemons/atftp/atftp_0.7.5.bb
deleted file mode 100644
index f893a4d6dc..0000000000
--- a/meta-networking/recipes-daemons/atftp/atftp_0.7.5.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "Advanced TFTP server and client"
-SECTION = "net"
-HOMEPAGE = "http://packages.debian.org/atftp"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f65159f73e603f89d6867d43191900e5"
-
-SRCREV = "00921e75728e3681b051c2e48c59e36c6cfa2e97"
-
-SRC_URI = "git://git.code.sf.net/p/atftp/code;branch=master \
- file://atftpd.init \
- file://atftpd.service \
-"
-
-S = "${WORKDIR}/git"
-
-inherit autotools update-rc.d systemd
-
-PACKAGECONFIG ??= "tcp-wrappers"
-PACKAGECONFIG[pcre] = "--enable-libpcre,--disable-libpcre,libpcre"
-PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
-PACKAGECONFIG[readline] = "--enable-libreadline,--disable-libreadline,readline"
-
-INITSCRIPT_PACKAGES = "${PN}d"
-INITSCRIPT_NAME:${PN}d = "atftpd"
-INITSCRIPT_PARAMS:${PN}d = "defaults 80"
-
-
-EXTRA_OEMAKE = "CFLAGS='${CFLAGS} -std=gnu89'"
-
-do_install:append() {
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/atftpd.init ${D}${sysconfdir}/init.d/atftpd
-
- install -d ${D}/srv/tftp
-
- rm ${D}${sbindir}/in.tftpd
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/atftpd.service ${D}${systemd_unitdir}/system
-}
-
-PACKAGES =+ "${PN}d"
-
-FILES:${PN} = "${bindir}/*"
-
-FILES:${PN}d = "${sbindir}/* \
- ${sysconfdir} \
- /srv/tftp \
- ${systemd_unitdir}/system/atftpd.service \
-"
-
-SYSTEMD_PACKAGES = "${PN}d"
-SYSTEMD_SERVICE:${PN}d = "atftpd.service"
-RPROVIDES:${PN}d += "${PN}d-systemd"
-RREPLACES:${PN}d += "${PN}d-systemd"
-RCONFLICTS:${PN}d += "${PN}d-systemd"
diff --git a/meta-networking/recipes-daemons/atftp/atftp_0.8.0.bb b/meta-networking/recipes-daemons/atftp/atftp_0.8.0.bb
new file mode 100644
index 0000000000..507621795f
--- /dev/null
+++ b/meta-networking/recipes-daemons/atftp/atftp_0.8.0.bb
@@ -0,0 +1,56 @@
+SUMMARY = "Advanced TFTP server and client"
+SECTION = "net"
+HOMEPAGE = "http://packages.debian.org/atftp"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f65159f73e603f89d6867d43191900e5"
+
+SRCREV = "d5c27eb7a9695d83569767e27ef69674173db39a"
+
+SRC_URI = "git://git.code.sf.net/p/atftp/code;branch=master;protocol=https \
+ file://atftpd.init \
+ file://atftpd.service \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools update-rc.d systemd
+
+PACKAGECONFIG ??= "tcp-wrappers"
+PACKAGECONFIG[pcre] = "--enable-libpcre,--disable-libpcre,libpcre"
+PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
+PACKAGECONFIG[readline] = "--enable-libreadline,--disable-libreadline,readline"
+
+INITSCRIPT_PACKAGES = "${PN}d"
+INITSCRIPT_NAME:${PN}d = "atftpd"
+INITSCRIPT_PARAMS:${PN}d = "defaults 80"
+
+
+EXTRA_OEMAKE = "CFLAGS='${CFLAGS} -std=gnu89'"
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/atftpd.init ${D}${sysconfdir}/init.d/atftpd
+
+ install -d ${D}/srv/tftp
+
+ rm ${D}${sbindir}/in.tftpd
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/atftpd.service ${D}${systemd_unitdir}/system
+}
+
+PACKAGES =+ "${PN}d"
+
+FILES:${PN} = "${bindir}/*"
+
+FILES:${PN}d = "${sbindir}/* \
+ ${sysconfdir} \
+ /srv/tftp \
+ ${systemd_unitdir}/system/atftpd.service \
+"
+
+SYSTEMD_PACKAGES = "${PN}d"
+SYSTEMD_SERVICE:${PN}d = "atftpd.service"
+RPROVIDES:${PN}d += "${PN}d-systemd"
+RREPLACES:${PN}d += "${PN}d-systemd"
+RCONFLICTS:${PN}d += "${PN}d-systemd"
diff --git a/meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch b/meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch
index 87159718b2..6128f3d0ed 100644
--- a/meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch
+++ b/meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch
@@ -9,6 +9,8 @@ them here
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
include/automount.h | 8 ++++++++
include/nsswitch.h | 3 +++
2 files changed, 11 insertions(+)
diff --git a/meta-networking/recipes-daemons/autofs/autofs/0001-autofs-5.1.8-add-autofs_strerror_r-helper-for-musl.patch b/meta-networking/recipes-daemons/autofs/autofs/0001-autofs-5.1.8-add-autofs_strerror_r-helper-for-musl.patch
index 5fd9a8d129..caf0105118 100644
--- a/meta-networking/recipes-daemons/autofs/autofs/0001-autofs-5.1.8-add-autofs_strerror_r-helper-for-musl.patch
+++ b/meta-networking/recipes-daemons/autofs/autofs/0001-autofs-5.1.8-add-autofs_strerror_r-helper-for-musl.patch
@@ -11,6 +11,8 @@ Signed-off-by: Fabian Groffen <grobian@gentoo.org>
Signed-off-by: Ian Kent <raven@themaw.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
include/automount.h | 5 +++++
lib/log.c | 10 ++++++++++
2 files changed, 15 insertions(+)
diff --git a/meta-networking/recipes-daemons/autofs/autofs/0001-include-libgen.h-for-basename.patch b/meta-networking/recipes-daemons/autofs/autofs/0001-include-libgen.h-for-basename.patch
new file mode 100644
index 0000000000..4c8b4ef779
--- /dev/null
+++ b/meta-networking/recipes-daemons/autofs/autofs/0001-include-libgen.h-for-basename.patch
@@ -0,0 +1,58 @@
+From 1651e7a35be8b3e2fa90ca57b073f6944664fa62 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 12:04:03 -0700
+Subject: [PATCH] include libgen.h for basename
+
+basename prototype has been removed from string.h from latest musl [1]
+compilers e.g. clang-18 flags the absense of prototype as error. therefore
+include libgen.h for providing it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ daemon/automount.c | 1 +
+ daemon/master.c | 1 +
+ modules/lookup_file.c | 1 +
+ 3 files changed, 3 insertions(+)
+
+diff --git a/daemon/automount.c b/daemon/automount.c
+index 3d9461d..61b3478 100644
+--- a/daemon/automount.c
++++ b/daemon/automount.c
+@@ -21,6 +21,7 @@
+
+ #include <dirent.h>
+ #include <getopt.h>
++#include <libgen.h>
+ #include <signal.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/daemon/master.c b/daemon/master.c
+index f99359c..3f56499 100644
+--- a/daemon/master.c
++++ b/daemon/master.c
+@@ -21,6 +21,7 @@
+ #include <string.h>
+ #include <memory.h>
+ #include <limits.h>
++#include <libgen.h>
+ #include <signal.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+diff --git a/modules/lookup_file.c b/modules/lookup_file.c
+index 6afc558..82b1f28 100644
+--- a/modules/lookup_file.c
++++ b/modules/lookup_file.c
+@@ -15,6 +15,7 @@
+
+ #include <stdio.h>
+ #include <malloc.h>
++#include <libgen.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <time.h>
+--
+2.44.0
+
diff --git a/meta-networking/recipes-daemons/autofs/autofs/0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch b/meta-networking/recipes-daemons/autofs/autofs/0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch
index 32293dd09f..8eec3014a0 100644
--- a/meta-networking/recipes-daemons/autofs/autofs/0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch
+++ b/meta-networking/recipes-daemons/autofs/autofs/0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch
@@ -9,6 +9,8 @@ all libc e.g. musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
modules/lookup_multi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch b/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch
index 1a2eb4fc21..d67f6300c8 100644
--- a/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch
+++ b/meta-networking/recipes-daemons/autofs/autofs/0002-Replace-__S_IEXEC-with-S_IEXEC.patch
@@ -12,6 +12,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
update patch to version 5.1.5
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
+Upstream-Status: Pending
+
daemon/lookup.c | 6 +++---
modules/lookup_multi.c | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/meta-networking/recipes-daemons/autofs/autofs/add-the-needed-stdarg.h.patch b/meta-networking/recipes-daemons/autofs/autofs/add-the-needed-stdarg.h.patch
index 816a409cdd..4cfd8edf9f 100644
--- a/meta-networking/recipes-daemons/autofs/autofs/add-the-needed-stdarg.h.patch
+++ b/meta-networking/recipes-daemons/autofs/autofs/add-the-needed-stdarg.h.patch
@@ -3,7 +3,7 @@ From: Roy Li <rongqing.li@windriver.com>
Date: Tue, 19 Aug 2014 11:31:35 +0800
Subject: [PATCH] [PATCH] add the needed stdarg.h
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Roy Li <rongqing.li@windriver.com>
diff --git a/meta-networking/recipes-daemons/autofs/autofs/cross.patch b/meta-networking/recipes-daemons/autofs/autofs/cross.patch
index b25c43f747..2a4f4fd0dd 100644
--- a/meta-networking/recipes-daemons/autofs/autofs/cross.patch
+++ b/meta-networking/recipes-daemons/autofs/autofs/cross.patch
@@ -3,6 +3,8 @@ From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 5 Jan 2013 19:53:10 -0800
---
+Upstream-Status: Pending
+
aclocal.m4 | 2 ++
configure.in | 8 ++++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/meta-networking/recipes-daemons/autofs/autofs/fix-the-YACC-rule-to-fix-a-building-failure.patch b/meta-networking/recipes-daemons/autofs/autofs/fix-the-YACC-rule-to-fix-a-building-failure.patch
index 8ad3b22de5..fd736296a5 100644
--- a/meta-networking/recipes-daemons/autofs/autofs/fix-the-YACC-rule-to-fix-a-building-failure.patch
+++ b/meta-networking/recipes-daemons/autofs/autofs/fix-the-YACC-rule-to-fix-a-building-failure.patch
@@ -19,6 +19,8 @@ This lead to a race when compile amd_tok.o, the header file maybe rewritten.
Signed-off-by: Roy Li <rongqing.li@windriver.com>
---
+Upstream-Status: Pending
+
lib/Makefile | 6 ++++--
modules/Makefile | 3 ++-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/meta-networking/recipes-daemons/autofs/autofs/force-STRIP-to-emtpy.patch b/meta-networking/recipes-daemons/autofs/autofs/force-STRIP-to-emtpy.patch
index 21396dd6f6..1fc500319e 100644
--- a/meta-networking/recipes-daemons/autofs/autofs/force-STRIP-to-emtpy.patch
+++ b/meta-networking/recipes-daemons/autofs/autofs/force-STRIP-to-emtpy.patch
@@ -8,6 +8,8 @@ otherwise the generate file will be stripped
Signed-off-by: Roy Li <rongqing.li@windriver.com>
---
+Upstream-Status: Pending
+
Makefile.rules | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-daemons/autofs/autofs/no-bash.patch b/meta-networking/recipes-daemons/autofs/autofs/no-bash.patch
index c46c0e5ad2..f91c307d34 100644
--- a/meta-networking/recipes-daemons/autofs/autofs/no-bash.patch
+++ b/meta-networking/recipes-daemons/autofs/autofs/no-bash.patch
@@ -3,6 +3,8 @@ From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 5 Jan 2013 19:53:10 -0800
---
+Upstream-Status: Pending
+
samples/auto.net | 2 +-
samples/auto.smb | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb b/meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb
index ca11f1a170..e3f9777380 100644
--- a/meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb
+++ b/meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb
@@ -29,6 +29,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \
file://mount_conflict.patch \
file://0001-autofs-5.1.8-add-autofs_strerror_r-helper-for-musl.patch \
file://0002-autofs-5.1.8-handle-innetgr-not-present-in-musl.patch \
+ file://0001-include-libgen.h-for-basename.patch \
"
SRC_URI[sha256sum] = "0bd401c56f0eb1ca6251344c3a3d70bface3eccf9c67117cd184422c4cace30c"
diff --git a/meta-networking/recipes-daemons/ippool/ippool/0001-Respect-flags-from-env.patch b/meta-networking/recipes-daemons/ippool/ippool/0001-Respect-flags-from-env.patch
index e967621259..5555d464c1 100644
--- a/meta-networking/recipes-daemons/ippool/ippool/0001-Respect-flags-from-env.patch
+++ b/meta-networking/recipes-daemons/ippool/ippool/0001-Respect-flags-from-env.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 1/3] Respect flags from env
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 4 ++--
cli/Makefile | 2 +-
pppd/Makefile | 2 +-
diff --git a/meta-networking/recipes-daemons/ippool/ippool/0001-Use-unsigned-int-type-for-1-bit-integer-bitfield.patch b/meta-networking/recipes-daemons/ippool/ippool/0001-Use-unsigned-int-type-for-1-bit-integer-bitfield.patch
new file mode 100644
index 0000000000..0533616722
--- /dev/null
+++ b/meta-networking/recipes-daemons/ippool/ippool/0001-Use-unsigned-int-type-for-1-bit-integer-bitfield.patch
@@ -0,0 +1,42 @@
+From 4788ce6ec602f6441970e1095572c4ff0e90c7c5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 17 Jan 2023 22:33:52 -0800
+Subject: [PATCH] Use unsigned int type for 1-bit integer bitfield
+
+In C++, signed integers are represented in two's complement. This also applies to signed bitfields.
+A signed bitfield composed of one bit can therefore store a value in the range -1 to 0.
+Assigning a value of 1 to such a bitfield should produce a warning since it is out of range of representable values.
+Therefore fix this case by using unsigned int instead of signed int
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ usl/usl_signal.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/usl/usl_signal.c b/usl/usl_signal.c
+index 45ddd94..8c1d4d0 100644
+--- a/usl/usl_signal.c
++++ b/usl/usl_signal.c
+@@ -39,12 +39,12 @@ struct usl_notifier {
+ };
+
+ typedef struct {
+- volatile int sighup:1;
+- volatile int sigterm:1;
+- volatile int sigchld:1;
+- volatile int sigusr1:1;
+- volatile int sigusr2:1;
+- volatile int running:1;
++ volatile unsigned int sighup:1;
++ volatile unsigned int sigterm:1;
++ volatile unsigned int sigchld:1;
++ volatile unsigned int sigusr1:1;
++ volatile unsigned int sigusr2:1;
++ volatile unsigned int running:1;
+ sig_atomic_t waiting;
+ sigjmp_buf sigjmp;
+ } usl_signal_data_t;
+--
+2.39.1
+
diff --git a/meta-networking/recipes-daemons/ippool/ippool/0001-ippool-Port-to-ppp-2.5-APIs.patch b/meta-networking/recipes-daemons/ippool/ippool/0001-ippool-Port-to-ppp-2.5-APIs.patch
new file mode 100644
index 0000000000..59d7b1e847
--- /dev/null
+++ b/meta-networking/recipes-daemons/ippool/ippool/0001-ippool-Port-to-ppp-2.5-APIs.patch
@@ -0,0 +1,60 @@
+From e1b93db6a13d955c6bab6358a7fa27fecb59479f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 11 May 2023 17:24:46 -0700
+Subject: [PATCH] ippool: Port to ppp 2.5 APIs
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ pppd/ippool.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/pppd/ippool.c b/pppd/ippool.c
+index 88cb901..d4b5c97 100644
+--- a/pppd/ippool.c
++++ b/pppd/ippool.c
+@@ -6,7 +6,7 @@
+ #include <stdlib.h>
+ #include <errno.h>
+ #include "pppd.h"
+-#include "pathnames.h"
++#include "options.h"
+ #include "fsm.h" /* Needed for lcp.h to include cleanly */
+ #include "lcp.h"
+ #include "ccp.h"
+@@ -23,7 +23,7 @@
+
+ #include "ippool_rpc.h"
+
+-const char pppd_version[] = VERSION;
++const char pppd_version[] = PPPD_VERSION;
+
+ static char *ippool_pool_name = NULL;
+ static char *ippool_pool_name2 = NULL;
+@@ -205,13 +205,13 @@ void plugin_init(void)
+ {
+ #if defined(__linux__)
+ extern int new_style_driver; /* From sys-linux.c */
+- if (!ppp_available() && !new_style_driver)
++ if (!ppp_check_kernel_support() && !new_style_driver)
+ fatal("Kernel doesn't support ppp_generic - "
+ "needed for Ippool");
+ #else
+ fatal("No IP pool support on this OS");
+ #endif
+- add_options(ippool_options);
++ ppp_add_options(ippool_options);
+
+ memset(&ippool_addr, 0, sizeof(ippool_addr));
+
+@@ -219,6 +219,6 @@ void plugin_init(void)
+ ip_down_hook = ippool_release_ip;
+
+ /* brute force, just in case ip_down_hook doesn't get called */
+- add_notifier(&exitnotify, ippool_cleanup, 0);
++ ppp_add_notify(NF_EXIT, ippool_cleanup, 0);
+ }
+
+--
+2.40.1
+
diff --git a/meta-networking/recipes-daemons/ippool/ippool/0001-read-returns-ssize_t.patch b/meta-networking/recipes-daemons/ippool/ippool/0001-read-returns-ssize_t.patch
index 7d3f9acb65..1b8de349cf 100644
--- a/meta-networking/recipes-daemons/ippool/ippool/0001-read-returns-ssize_t.patch
+++ b/meta-networking/recipes-daemons/ippool/ippool/0001-read-returns-ssize_t.patch
@@ -10,6 +10,8 @@ usl_fd.c:284:10: error: comparison of unsigned expression < 0 is always false [-
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
usl/usl_fd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-daemons/ippool/ippool/0001-usl_timer-Check-for-return-value-of-write-API.patch b/meta-networking/recipes-daemons/ippool/ippool/0001-usl_timer-Check-for-return-value-of-write-API.patch
index 6fb7cc5c46..2c612e42fe 100644
--- a/meta-networking/recipes-daemons/ippool/ippool/0001-usl_timer-Check-for-return-value-of-write-API.patch
+++ b/meta-networking/recipes-daemons/ippool/ippool/0001-usl_timer-Check-for-return-value-of-write-API.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] usl_timer: Check for return value of write() API
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
usl/usl_timer.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/meta-networking/recipes-daemons/ippool/ippool/0002-Mark-first-element-of-a-string-as-null.patch b/meta-networking/recipes-daemons/ippool/ippool/0002-Mark-first-element-of-a-string-as-null.patch
index 6e2bd523da..f21c68f0d1 100644
--- a/meta-networking/recipes-daemons/ippool/ippool/0002-Mark-first-element-of-a-string-as-null.patch
+++ b/meta-networking/recipes-daemons/ippool/ippool/0002-Mark-first-element-of-a-string-as-null.patch
@@ -10,6 +10,8 @@ cli_lib.c:427:20: error: expression which evaluates to zero treated as a null po
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
cli/cli_lib.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-daemons/ippool/ippool/0002-link-with-libtirpc.patch b/meta-networking/recipes-daemons/ippool/ippool/0002-link-with-libtirpc.patch
index d80f7b4362..75bb825302 100644
--- a/meta-networking/recipes-daemons/ippool/ippool/0002-link-with-libtirpc.patch
+++ b/meta-networking/recipes-daemons/ippool/ippool/0002-link-with-libtirpc.patch
@@ -7,6 +7,8 @@ musl needs it
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-networking/recipes-daemons/ippool/ippool/0003-cli-Mark-return-of-strtol-as-long-int.patch b/meta-networking/recipes-daemons/ippool/ippool/0003-cli-Mark-return-of-strtol-as-long-int.patch
index 3854b1133c..f6a8d62b98 100644
--- a/meta-networking/recipes-daemons/ippool/ippool/0003-cli-Mark-return-of-strtol-as-long-int.patch
+++ b/meta-networking/recipes-daemons/ippool/ippool/0003-cli-Mark-return-of-strtol-as-long-int.patch
@@ -10,6 +10,8 @@ error: taking the absolute value of unsigned type 'unsigned long' has no effect
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
cli/cli_lib.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch b/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch
index 952e4f0d04..8c42ebe30b 100644
--- a/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch
+++ b/meta-networking/recipes-daemons/ippool/ippool/0003-musl-fixes.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 3/3] musl fixes
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
cli/cli_readline.c | 7 +-
ippool_api.c | 9 ++-
net/ppp_defs.h | 194 +++++++++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/meta-networking/recipes-daemons/ippool/ippool/ippool.service b/meta-networking/recipes-daemons/ippool/ippool/ippool.service
index 281ae5fd19..f168e4ccb6 100644
--- a/meta-networking/recipes-daemons/ippool/ippool/ippool.service
+++ b/meta-networking/recipes-daemons/ippool/ippool/ippool.service
@@ -5,8 +5,8 @@ After=rpcbind.service
[Service]
Type=simple
-# Start ippoold in the foreground!
-ExecStart=@SBINDIR@/ippoold -f
+# Start ippoold in the foreground! and enable RPC
+ExecStart=@SBINDIR@/ippoold -R -f
# Normal output will go to syslog, so suppress stdout.
StandardOutput=null
# ExecStop is not needed. systemd will send SIGTERM
diff --git a/meta-networking/recipes-daemons/ippool/ippool_1.3.bb b/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
index 984acac76e..36ea289945 100644
--- a/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
+++ b/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
@@ -29,6 +29,8 @@ SRC_URI = "https://sourceforge.net/projects/openl2tp/files/${BPN}/${PV}/${BPN}-$
file://strncpy-truncation.patch \
file://0001-pppd-ippool.c-Fix-type-casting-issues-between-in_add.patch \
file://0002-ippool_rpc_server.c-Add-missing-prototype-for-ippool.patch \
+ file://0001-Use-unsigned-int-type-for-1-bit-integer-bitfield.patch \
+ file://0001-ippool-Port-to-ppp-2.5-APIs.patch \
"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4c59283b82fc2b166455e0fc23c71c6f"
@@ -48,8 +50,6 @@ EXTRA_OEMAKE += "IPPOOL_TEST=y"
CPPFLAGS += "${SELECTED_OPTIMIZATION} -I${STAGING_INCDIR}/tirpc"
SYSTEMD_SERVICE:${PN} = "ippool.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
do_compile:prepend() {
# fix the CFLAGS= and CPPFLAGS= in main Makefile, to have the extra CFLAGS in env
diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Makefile-Do-not-set-Werror.patch b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Makefile-Do-not-set-Werror.patch
index ab6ff6e131..d720a1adb0 100644
--- a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Makefile-Do-not-set-Werror.patch
+++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Makefile-Do-not-set-Werror.patch
@@ -9,13 +9,12 @@ warning as errors
Upstream-Status: Inappropriate [OE-Specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---
usr/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/usr/Makefile b/usr/Makefile
-index 3fc2248..2b5a234 100644
+index 84f33bc..9e7b839 100644
--- a/usr/Makefile
+++ b/usr/Makefile
@@ -44,7 +44,7 @@ HOMEDIR ?= $(etcdir)/iscsi
@@ -25,5 +24,8 @@ index 3fc2248..2b5a234 100644
-WARNFLAGS ?= -Wall -Wextra -Werror -Wstrict-prototypes -fno-common
+WARNFLAGS ?= -Wall -Wextra -Wstrict-prototypes -fno-common
CFLAGS += $(WARNFLAGS) -I../include -I. -D_GNU_SOURCE \
- -I$(TOPDIR)/libopeniscsiusr
- CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
+ -I$(TOPDIR)/libopeniscsiusr \
+ -DISCSI_VERSION_STR=\"$(ISCSI_VERSION_STR)\"
+--
+2.34.1
+
diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-iscsiuio-Use-pthread_t-for-INVALID_THREAD.patch b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-iscsiuio-Use-pthread_t-for-INVALID_THREAD.patch
deleted file mode 100644
index 02669e9c80..0000000000
--- a/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0002-iscsiuio-Use-pthread_t-for-INVALID_THREAD.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From ef54a6f4a81da8ab653d352bfbd3b2521ce9eb7c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 29 Aug 2022 15:55:32 -0700
-Subject: [PATCH] iscsiuio: Use pthread_t for INVALID_THREAD
-
-pthread_t is opaque, therefore avoid compiler errors on musl when
-compiling since pthread_t is not a plain old data type, like glibc
-
-Upstream-Status: Submitted [https://github.com/open-iscsi/open-iscsi/pull/363]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- iscsiuio/src/unix/options.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/iscsiuio/src/unix/options.h b/iscsiuio/src/unix/options.h
-index 63b8635..873a98a 100644
---- a/iscsiuio/src/unix/options.h
-+++ b/iscsiuio/src/unix/options.h
-@@ -86,7 +86,7 @@
- #define DEBUG_ON 0x2
-
- #define INVALID_FD -1
--#define INVALID_THREAD -1
-+#define INVALID_THREAD (pthread_t)-1
- #define INVALID_HOST_NO -1
-
- struct options {
diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.7.bb b/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.7.bb
deleted file mode 100644
index 3ed55d65a0..0000000000
--- a/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.7.bb
+++ /dev/null
@@ -1,119 +0,0 @@
-SUMMARY = "iSCSI daemon and utility programs"
-DESCRIPTION = "Open-iSCSI project is a high performance, transport \
-independent, multi-platform implementation of RFC3720. The iscsi package \
-provides the server daemon for the iSCSI protocol, as well as the utility \
-programs used to manage it. iSCSI is a protocol for distributed \
-disk access using SCSI commands sent over Internet Protocol networks."
-HOMEPAGE = "http://www.open-iscsi.com/"
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-SECTION = "net"
-DEPENDS = "openssl flex-native bison-native open-isns util-linux kmod"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRCREV = "7b53fcc502da8617110fd64d675b476772c28a6f"
-
-SRC_URI = "git://github.com/open-iscsi/open-iscsi;branch=master;protocol=https \
- file://0001-Makefile-Do-not-set-Werror.patch \
- file://initd.debian \
- file://99_iscsi-initiator-utils \
- file://iscsi-initiator \
- file://iscsi-initiator.service \
- file://iscsi-initiator-targets.service \
- file://set_initiatorname \
- file://0002-iscsiuio-Use-pthread_t-for-INVALID_THREAD.patch \
- "
-S = "${WORKDIR}/git"
-
-inherit update-rc.d systemd autotools pkgconfig
-
-EXTRA_OECONF = " \
- --target=${TARGET_SYS} \
- --host=${BUILD_SYS} \
-"
-
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', '--without-systemd NO_SYSTEMD=1', d)}"
-
-EXTRA_OEMAKE = ' \
- OS="${TARGET_SYS}" \
- TARGET="${TARGET_OS}" \
- BASE="${prefix}" \
- MANDIR="${mandir}" \
- OPTFLAGS="-DNO_SYSTEMD ${CFLAGS}" \
- PKG_CONFIG="${STAGING_BINDIR_NATIVE}/pkg-config" \
- SED=sed \
-'
-
-
-do_configure () {
- cd ${S}/iscsiuio ; autoreconf --install; ./configure ${EXTRA_OECONF}
-}
-
-do_compile () {
- # Make sure we DO NOT regenerate prom_lex.c.
- if [ -f ${S}/utils/fwparam_ibft/prom_lex.l ]; then
- mv ${S}/utils/fwparam_ibft/prom_lex.l ${S}/utils/fwparam_ibft/prom_lex.l.unused
- fi
- oe_runmake -C ${S} ${EXTRA_OEMAKE} user
-}
-
-do_install () {
- #install necessary directories
- install -d ${D}${sbindir} \
- ${D}${sysconfdir}/init.d \
- ${D}${sysconfdir}/iscsi \
- ${D}${localstatedir}/lib/iscsi/nodes \
- ${D}${localstatedir}/lib/iscsi/send_targets \
- ${D}${localstatedir}/lib/iscsi/static \
- ${D}${localstatedir}/lib/iscsi/isns \
- ${D}${localstatedir}/lib/iscsi/slp \
- ${D}${localstatedir}/lib/iscsi/ifaces \
- ${D}${libdir} \
- ${D}${mandir}/man8
-
- install -p -m 755 ${S}/usr/iscsid ${S}/usr/iscsiadm \
- ${S}/utils/iscsi-iname \
- ${S}/usr/iscsistart ${D}/${sbindir}
-
- cp -dR ${S}/libopeniscsiusr/libopeniscsiusr.so* ${D}${libdir}
- install -p -m 644 ${S}/doc/iscsiadm.8 ${S}/doc/iscsid.8 ${D}/${mandir}/man8
- install -p -m 644 ${S}/etc/iscsid.conf ${D}${sysconfdir}/iscsi
- install -p -m 755 ${WORKDIR}/initd.debian ${D}${sysconfdir}/init.d/iscsid
-
- sed -i -e "s:= /sbin/iscsid:= ${sbindir}/iscsid:" ${D}${sysconfdir}/iscsi/iscsid.conf
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /run/${BPN}/lock - - - -" \
- > ${D}${sysconfdir}/tmpfiles.d/iscsi.conf
- install -d ${D}/etc/default/
- install -p -m 755 ${WORKDIR}/iscsi-initiator ${D}${sysconfdir}/default/
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/iscsi-initiator.service \
- ${WORKDIR}/iscsi-initiator-targets.service \
- ${D}${systemd_unitdir}/system/
- install -d ${D}${nonarch_libdir}/iscsi
- install -m 0755 ${WORKDIR}/set_initiatorname ${D}${nonarch_libdir}/iscsi
- else
- install -d ${D}/etc/default/volatiles
- install -m 0644 ${WORKDIR}/99_iscsi-initiator-utils ${D}/etc/default/volatiles
- fi
-}
-
-pkg_postinst:${PN}() {
- if [ "x$D" = "x" ]; then
- if [ -e /etc/init.d/populate-volatile.sh ]; then
- /etc/init.d/populate-volatile.sh update
- elif command -v systemd-tmpfiles >/dev/null; then
- systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/iscsi.conf
- fi
- fi
-}
-
-SYSTEMD_SERVICE = " iscsi-initiator.service iscsi-initiator-targets.service "
-INITSCRIPT_NAME = "iscsid"
-INITSCRIPT_PARAMS = "start 30 1 2 3 4 5 . stop 70 0 1 2 3 4 5 6 ."
-
-FILES:${PN} += "${nonarch_libdir}/iscsi"
diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.8.bb b/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.8.bb
new file mode 100644
index 0000000000..2caddbb54a
--- /dev/null
+++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.1.8.bb
@@ -0,0 +1,118 @@
+SUMMARY = "iSCSI daemon and utility programs"
+DESCRIPTION = "Open-iSCSI project is a high performance, transport \
+independent, multi-platform implementation of RFC3720. The iscsi package \
+provides the server daemon for the iSCSI protocol, as well as the utility \
+programs used to manage it. iSCSI is a protocol for distributed \
+disk access using SCSI commands sent over Internet Protocol networks."
+HOMEPAGE = "http://www.open-iscsi.com/"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+SECTION = "net"
+DEPENDS = "openssl flex-native bison-native open-isns util-linux kmod"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRCREV = "543ba0f15d340b97f30782308cec424a6738fec3"
+
+SRC_URI = "git://github.com/open-iscsi/open-iscsi;branch=master;protocol=https \
+ file://0001-Makefile-Do-not-set-Werror.patch \
+ file://initd.debian \
+ file://99_iscsi-initiator-utils \
+ file://iscsi-initiator \
+ file://iscsi-initiator.service \
+ file://iscsi-initiator-targets.service \
+ file://set_initiatorname \
+ "
+S = "${WORKDIR}/git"
+
+inherit update-rc.d systemd autotools pkgconfig
+
+EXTRA_OECONF = " \
+ --target=${TARGET_SYS} \
+ --host=${BUILD_SYS} \
+"
+
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', '--without-systemd NO_SYSTEMD=1', d)}"
+
+EXTRA_OEMAKE = ' \
+ OS="${TARGET_SYS}" \
+ TARGET="${TARGET_OS}" \
+ BASE="${prefix}" \
+ MANDIR="${mandir}" \
+ OPTFLAGS="-DNO_SYSTEMD ${CFLAGS}" \
+ PKG_CONFIG="${STAGING_BINDIR_NATIVE}/pkg-config" \
+ SED=sed \
+'
+
+
+do_configure () {
+ cd ${S}/iscsiuio ; autoreconf --install; ./configure ${EXTRA_OECONF}
+}
+
+do_compile () {
+ # Make sure we DO NOT regenerate prom_lex.c.
+ if [ -f ${S}/utils/fwparam_ibft/prom_lex.l ]; then
+ mv ${S}/utils/fwparam_ibft/prom_lex.l ${S}/utils/fwparam_ibft/prom_lex.l.unused
+ fi
+ oe_runmake -C ${S} ${EXTRA_OEMAKE} user
+}
+
+do_install () {
+ #install necessary directories
+ install -d ${D}${sbindir} \
+ ${D}${sysconfdir}/init.d \
+ ${D}${sysconfdir}/iscsi \
+ ${D}${localstatedir}/lib/iscsi/nodes \
+ ${D}${localstatedir}/lib/iscsi/send_targets \
+ ${D}${localstatedir}/lib/iscsi/static \
+ ${D}${localstatedir}/lib/iscsi/isns \
+ ${D}${localstatedir}/lib/iscsi/slp \
+ ${D}${localstatedir}/lib/iscsi/ifaces \
+ ${D}${libdir} \
+ ${D}${mandir}/man8
+
+ install -p -m 755 ${S}/usr/iscsid ${S}/usr/iscsiadm \
+ ${S}/utils/iscsi-iname \
+ ${S}/usr/iscsistart ${D}/${sbindir}
+
+ cp -dR ${S}/libopeniscsiusr/libopeniscsiusr.so* ${D}${libdir}
+ install -p -m 644 ${S}/doc/iscsiadm.8 ${S}/doc/iscsid.8 ${D}/${mandir}/man8
+ install -p -m 644 ${S}/etc/iscsid.conf ${D}${sysconfdir}/iscsi
+ install -p -m 755 ${WORKDIR}/initd.debian ${D}${sysconfdir}/init.d/iscsid
+
+ sed -i -e "s:= /sbin/iscsid:= ${sbindir}/iscsid:" ${D}${sysconfdir}/iscsi/iscsid.conf
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /run/${BPN}/lock - - - -" \
+ > ${D}${sysconfdir}/tmpfiles.d/iscsi.conf
+ install -d ${D}/etc/default/
+ install -p -m 755 ${WORKDIR}/iscsi-initiator ${D}${sysconfdir}/default/
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/iscsi-initiator.service \
+ ${WORKDIR}/iscsi-initiator-targets.service \
+ ${D}${systemd_unitdir}/system/
+ install -d ${D}${nonarch_libdir}/iscsi
+ install -m 0755 ${WORKDIR}/set_initiatorname ${D}${nonarch_libdir}/iscsi
+ else
+ install -d ${D}/etc/default/volatiles
+ install -m 0644 ${WORKDIR}/99_iscsi-initiator-utils ${D}/etc/default/volatiles
+ fi
+}
+
+pkg_postinst:${PN}() {
+ if [ "x$D" = "x" ]; then
+ if [ -e /etc/init.d/populate-volatile.sh ]; then
+ /etc/init.d/populate-volatile.sh update
+ elif command -v systemd-tmpfiles >/dev/null; then
+ systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/iscsi.conf
+ fi
+ fi
+}
+
+SYSTEMD_SERVICE = " iscsi-initiator.service iscsi-initiator-targets.service "
+INITSCRIPT_NAME = "iscsid"
+INITSCRIPT_PARAMS = "start 30 1 2 3 4 5 . stop 70 0 1 2 3 4 5 6 ."
+
+FILES:${PN} += "${nonarch_libdir}/iscsi"
diff --git a/meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch b/meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch
deleted file mode 100644
index f9cadbc26d..0000000000
--- a/meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From a85ca79143a87286f793957e803ee3daf03c2b57 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Jul 2021 14:06:44 -0700
-Subject: [PATCH] layer4: Change order of include files
-
-curent order to include standard headers first is causing an isue with
-glibc 2.34 + kernel-headers 5.13+ where order of including netinet/in.h
-and linux/in.h matters and it does not define __UAPI_DEF_IN_IPPROTO
-before including linux/in.h and then later includes netinet/in.h which
-then means lot of definitions will be defined twice and compile would
-fail. Re-ordering the local headers to appear first solves the issue
-amicably, and I think this is right order too
-
-Upsteam-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- keepalived/core/layer4.c | 21 ++++++++++-----------
- 1 file changed, 10 insertions(+), 11 deletions(-)
-
-diff --git a/keepalived/core/layer4.c b/keepalived/core/layer4.c
-index 90cdc84..c122c29 100644
---- a/keepalived/core/layer4.c
-+++ b/keepalived/core/layer4.c
-@@ -23,6 +23,16 @@
-
- #include "config.h"
-
-+#include "layer4.h"
-+#include "logger.h"
-+#include "scheduler.h"
-+#ifdef _WITH_LVS_
-+#include "check_api.h"
-+#endif
-+#include "bitops.h"
-+#include "utils.h"
-+#include "align.h"
-+
- #include <stdio.h>
- #include <errno.h>
- #include <unistd.h>
-@@ -33,17 +43,6 @@
- #include <sys/time.h>
- #endif
- #include <linux/errqueue.h>
--#include <netinet/in.h>
--
--#include "layer4.h"
--#include "logger.h"
--#include "scheduler.h"
--#ifdef _WITH_LVS_
--#include "check_api.h"
--#endif
--#include "bitops.h"
--#include "utils.h"
--#include "align.h"
-
- // #define ICMP_DEBUG 1
-
diff --git a/meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb b/meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb
deleted file mode 100644
index 204d2fd116..0000000000
--- a/meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "High Availability monitor built upon LVS, VRRP and service pollers"
-DESCRIPTION = "Keepalived is a routing software written in C. The main goal \
-of this project is to provide simple and robust facilities for loadbalancing \
-and high-availability to Linux system and Linux based infrastructures. \
-Loadbalancing framework relies on well-known and widely used Linux Virtual \
-Server (IPVS) kernel module providing Layer4 loadbalancing \
-"
-HOMEPAGE = "http://www.keepalived.org/"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://www.keepalived.org/software/${BP}.tar.gz \
- file://0001-layer4-Change-order-of-include-files.patch \
- "
-SRC_URI[sha256sum] = "103692bd5345a4ed9f4581632ea636214fdf53e45682e200aab122c4fa674ece"
-UPSTREAM_CHECK_URI = "https://github.com/acassen/keepalived/releases"
-
-DEPENDS = "libnfnetlink openssl"
-
-inherit autotools pkgconfig systemd
-
-PACKAGECONFIG ??= "libnl snmp \
- ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
-"
-PACKAGECONFIG[libnl] = "--enable-libnl,--disable-libnl,libnl"
-PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
-PACKAGECONFIG[systemd] = "--with-init=systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--with-init=SYSV,systemd"
-
-EXTRA_OEMAKE = "initdir=${sysconfdir}/init.d"
-
-do_install:append() {
- if [ -f ${D}${sysconfdir}/init.d/${BPN} ]; then
- chmod 0755 ${D}${sysconfdir}/init.d/${BPN}
- sed -i 's#rc.d/##' ${D}${sysconfdir}/init.d/${BPN}
- fi
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -D -m 0644 ${B}/${BPN}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
- fi
-}
-
-FILES:${PN} += "${datadir}/snmp/mibs/KEEPALIVED-MIB.txt"
-
-SYSTEMD_SERVICE:${PN} = "keepalived.service"
-SYSTEMD_AUTO_ENABLE ?= "disable"
diff --git a/meta-networking/recipes-daemons/keepalived/keepalived_2.2.8.bb b/meta-networking/recipes-daemons/keepalived/keepalived_2.2.8.bb
new file mode 100644
index 0000000000..85f4a6aa59
--- /dev/null
+++ b/meta-networking/recipes-daemons/keepalived/keepalived_2.2.8.bb
@@ -0,0 +1,51 @@
+SUMMARY = "High Availability monitor built upon LVS, VRRP and service pollers"
+DESCRIPTION = "Keepalived is a routing software written in C. The main goal \
+of this project is to provide simple and robust facilities for loadbalancing \
+and high-availability to Linux system and Linux based infrastructures. \
+Loadbalancing framework relies on well-known and widely used Linux Virtual \
+Server (IPVS) kernel module providing Layer4 loadbalancing \
+"
+HOMEPAGE = "http://www.keepalived.org/"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "http://www.keepalived.org/software/${BP}.tar.gz \
+ "
+SRC_URI[sha256sum] = "85882eb62974f395d4c631be990a41a839594a7e62fbfebcb5649a937a7a1bb6"
+UPSTREAM_CHECK_URI = "https://github.com/acassen/keepalived/releases"
+
+DEPENDS = "libnfnetlink openssl"
+
+inherit autotools pkgconfig systemd
+
+PACKAGECONFIG ??= "libnl snmp \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+"
+PACKAGECONFIG[libnl] = "--enable-libnl,--disable-libnl,libnl"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
+PACKAGECONFIG[systemd] = "--with-init=systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--with-init=SYSV,systemd"
+
+EXTRA_OEMAKE = "initdir=${sysconfdir}/init.d"
+
+export EXTRA_CFLAGS = "${CFLAGS}"
+
+do_install:append() {
+ if [ -f ${D}${sysconfdir}/init.d/${BPN} ]; then
+ chmod 0755 ${D}${sysconfdir}/init.d/${BPN}
+ sed -i 's#rc.d/##' ${D}${sysconfdir}/init.d/${BPN}
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -D -m 0644 ${B}/${BPN}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
+ fi
+}
+
+PACKAGE_BEFORE_PN = "${PN}-samples"
+
+FILES:${PN} += "${datadir}/snmp/mibs/KEEPALIVED-MIB.txt"
+
+FILES:${PN}-samples = "${sysconfdir}/keepalived/samples ${sysconfdir}/keepalived/keepalived.conf.sample"
+
+SYSTEMD_SERVICE:${PN} = "keepalived.service"
+SYSTEMD_AUTO_ENABLE ?= "disable"
diff --git a/meta-networking/recipes-daemons/lldpd/files/run-ptest b/meta-networking/recipes-daemons/lldpd/files/run-ptest
new file mode 100755
index 0000000000..da686eb465
--- /dev/null
+++ b/meta-networking/recipes-daemons/lldpd/files/run-ptest
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+num_fail=0
+
+for test in tests/check*
+do
+ ./"$test" \
+ && echo "PASS: $test" \
+ || {
+ echo "FAIL: $test"
+ num_fail=$(( ${num_fail} + 1))
+ }
+
+done
+
+exit $num_fail
diff --git a/meta-networking/recipes-daemons/lldpd/lldpd_1.0.14.bb b/meta-networking/recipes-daemons/lldpd/lldpd_1.0.14.bb
deleted file mode 100644
index eda0129feb..0000000000
--- a/meta-networking/recipes-daemons/lldpd/lldpd_1.0.14.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-SUMMARY = "A 802.1ab implementation (LLDP) to help you locate neighbors of all your equipments"
-SECTION = "net/misc"
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d"
-
-DEPENDS = "libbsd libevent"
-
-SRC_URI = "\
- http://media.luffy.cx/files/${BPN}/${BPN}-${PV}.tar.gz \
- file://lldpd.init.d \
- file://lldpd.default \
- "
-
-SRC_URI[sha256sum] = "a74819214f116a5dbc407a3d490caa01ba401a249517ac826a374059c12d12e8"
-
-inherit autotools update-rc.d useradd systemd pkgconfig bash-completion
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system -g lldpd --shell /bin/false lldpd"
-GROUPADD_PARAM:${PN} = "--system lldpd"
-
-EXTRA_OECONF += "--without-embedded-libevent \
- --disable-oldies \
- --with-privsep-user=lldpd \
- --with-privsep-group=lldpd \
- --with-systemdsystemunitdir=${systemd_system_unitdir} \
- --without-sysusersdir \
-"
-
-PACKAGECONFIG ??= "cdp fdp edp sonmp lldpmed dot1 dot3"
-PACKAGECONFIG[xml] = "--with-xml,--without-xml,libxm2"
-PACKAGECONFIG[snmp] = "--with-snmp,--without-snmp,net-snmp"
-PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
-PACKAGECONFIG[seccomp] = "--with-seccomp,--without-seccomp,libseccomp"
-PACKAGECONFIG[cdp] = "--enable-cdp,--disable-cdp"
-PACKAGECONFIG[fdp] = "--enable-fdp,--disable-fdp"
-PACKAGECONFIG[edp] = "--enable-edp,--disable-edp"
-PACKAGECONFIG[sonmp] = "--enable-sonmp,--disable-sonmp"
-PACKAGECONFIG[lldpmed] = "--enable-lldpmed,--disable-lldpmed"
-PACKAGECONFIG[dot1] = "--enable-dot1,--disable-dot1"
-PACKAGECONFIG[dot3] = "--enable-dot3,--disable-dot3"
-PACKAGECONFIG[custom] = "--enable-custom,--disable-custom"
-
-INITSCRIPT_NAME = "lldpd"
-INITSCRIPT_PARAMS = "defaults"
-
-SYSTEMD_SERVICE:${PN} = "lldpd.service"
-
-do_install:append() {
- install -Dm 0755 ${WORKDIR}/lldpd.init.d ${D}${sysconfdir}/init.d/lldpd
- install -Dm 0644 ${WORKDIR}/lldpd.default ${D}${sysconfdir}/default/lldpd
- # Make an empty configuration file
- touch ${D}${sysconfdir}/lldpd.conf
-}
-
-PACKAGES =+ "${PN}-zsh-completion"
-
-FILES:${PN} += "${libdir}/sysusers.d"
-RDEPENDS:${PN} += "os-release"
-
-FILES:${PN}-zsh-completion += "${datadir}/zsh/"
-# FIXME: zsh is broken in meta-oe so this cannot be enabled for now
-#RDEPENDS:${PN}-zsh-completion += "zsh"
diff --git a/meta-networking/recipes-daemons/lldpd/lldpd_1.0.18.bb b/meta-networking/recipes-daemons/lldpd/lldpd_1.0.18.bb
new file mode 100644
index 0000000000..370465e141
--- /dev/null
+++ b/meta-networking/recipes-daemons/lldpd/lldpd_1.0.18.bb
@@ -0,0 +1,81 @@
+SUMMARY = "A 802.1ab implementation (LLDP) to help you locate neighbors of all your equipments"
+SECTION = "net/misc"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/ISC;md5=f3b90e78ea0cffb20bf5cca7947a896d"
+
+DEPENDS = "libbsd libevent"
+
+SRC_URI = "\
+ http://media.luffy.cx/files/${BPN}/${BP}.tar.gz \
+ file://lldpd.init.d \
+ file://lldpd.default \
+ file://run-ptest \
+ "
+
+SRC_URI[sha256sum] = "4b320675d608901a4a0d4feff8f96bb846d4913d914b0cf75b7d0ae80490f2f7"
+
+inherit autotools update-rc.d useradd systemd pkgconfig bash-completion github-releases ptest
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system -g lldpd --shell /bin/false lldpd"
+GROUPADD_PARAM:${PN} = "--system lldpd"
+
+EXTRA_OECONF += "--without-embedded-libevent \
+ --disable-oldies \
+ --with-privsep-user=lldpd \
+ --with-privsep-group=lldpd \
+ --with-systemdsystemunitdir=${systemd_system_unitdir} \
+ --without-sysusersdir \
+"
+
+PACKAGECONFIG ??= "cdp fdp edp sonmp lldpmed dot1 dot3"
+PACKAGECONFIG[xml] = "--with-xml,--without-xml,libxm2"
+PACKAGECONFIG[snmp] = "--with-snmp,--without-snmp,net-snmp"
+PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
+PACKAGECONFIG[seccomp] = "--with-seccomp,--without-seccomp,libseccomp"
+PACKAGECONFIG[cdp] = "--enable-cdp,--disable-cdp"
+PACKAGECONFIG[fdp] = "--enable-fdp,--disable-fdp"
+PACKAGECONFIG[edp] = "--enable-edp,--disable-edp"
+PACKAGECONFIG[sonmp] = "--enable-sonmp,--disable-sonmp"
+PACKAGECONFIG[lldpmed] = "--enable-lldpmed,--disable-lldpmed"
+PACKAGECONFIG[dot1] = "--enable-dot1,--disable-dot1"
+PACKAGECONFIG[dot3] = "--enable-dot3,--disable-dot3"
+PACKAGECONFIG[custom] = "--enable-custom,--disable-custom"
+
+INITSCRIPT_NAME = "lldpd"
+INITSCRIPT_PARAMS = "defaults"
+
+SYSTEMD_SERVICE:${PN} = "lldpd.service"
+
+do_install:append() {
+ install -Dm 0755 ${WORKDIR}/lldpd.init.d ${D}${sysconfdir}/init.d/lldpd
+ install -Dm 0644 ${WORKDIR}/lldpd.default ${D}${sysconfdir}/default/lldpd
+ # Make an empty configuration file
+ touch ${D}${sysconfdir}/lldpd.conf
+}
+
+PACKAGES =+ "${PN}-zsh-completion"
+
+FILES:${PN} += "${libdir}/sysusers.d"
+RDEPENDS:${PN} += "os-release"
+
+FILES:${PN}-zsh-completion += "${datadir}/zsh/"
+# FIXME: zsh is broken in meta-oe so this cannot be enabled for now
+#RDEPENDS:${PN}-zsh-completion += "zsh"
+
+RDEPENDS:${PN}-ptest = "libcheck"
+DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'libcheck', '', d)}"
+
+TESTDIR = "tests"
+do_compile_ptest () {
+ # hack to remove the call to `make check-TESTS`
+ sed -i 's/$(MAKE) $(AM_MAKEFLAGS) check-TESTS//g' ${TESTDIR}/Makefile
+ oe_runmake check
+}
+
+do_install_ptest () {
+ # install the tests
+ cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH}
+ # remove the object files
+ rm ${D}${PTEST_PATH}/${TESTDIR}/*.o
+}
diff --git a/meta-networking/recipes-daemons/ncftp/ncftp/ncftp-3.2.5-gcc10.patch b/meta-networking/recipes-daemons/ncftp/ncftp/ncftp-3.2.5-gcc10.patch
deleted file mode 100644
index 5dee824d7a..0000000000
--- a/meta-networking/recipes-daemons/ncftp/ncftp/ncftp-3.2.5-gcc10.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-Fix build with -fno-common
-
-Patch from https://src.fedoraproject.org/rpms/ncftp/raw/master/f/ncftp-3.2.5-gcc10.patch
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/ncftp/bookmark.h
-+++ b/ncftp/bookmark.h
-@@ -29,6 +29,8 @@ typedef struct Bookmark {
- int reserved;
- } Bookmark;
-
-+extern Bookmark gBm;
-+
- #define kBookmarkVersion 8
- #define kBookmarkMinVersion 3
- #if (defined(WIN32) || defined(_WINDOWS)) && !defined(__CYGWIN__)
---- a/ncftp/cmds.c
-+++ b/ncftp/cmds.c
-@@ -98,7 +98,7 @@ extern char gPager[], gHome[], gShell[];
- extern char gOS[];
- extern int gAutoResume;
- extern int gAutoSaveChangesToExistingBookmarks;
--extern Bookmark gBm;
-+//extern Bookmark gBm;
- extern int gLoadedBm, gConfirmClose, gSavePasswords, gScreenColumns;
- extern char gLocalCWD[512], gPrevLocalCWD[512];
- extern int gMayCancelJmp;
---- a/ncftp/main.c
-+++ b/ncftp/main.c
-@@ -38,7 +38,7 @@ extern int gUnprocessedJobs;
- char gLocalCWD[512], gPrevLocalCWD[512];
-
- extern char gRemoteCWD[512], gPrevRemoteCWD[512];
--extern Bookmark gBm;
-+//extern Bookmark gBm;
- extern int gLoadedBm;
- extern int gFirewallType;
- extern char gAutoAscii[];
---- a/sh_util/gpshare.c
-+++ b/sh_util/gpshare.c
-@@ -28,7 +28,7 @@
-
- static int gIsAtty1 = 1, gIsAtty2 = 1;
- extern int gLoadedBm, gBookmarkMatchMode;
--Bookmark gBm;
-+//Bookmark gBm;
-
- double
- FileSize(double size, const char **uStr0, double *uMult0)
---- a/sh_util/ncftpget.c
-+++ b/sh_util/ncftpget.c
-@@ -40,7 +40,7 @@ extern unsigned int gFirewallPort;
- extern char gFirewallExceptionList[256];
- extern int gFwDataPortMode;
- extern const char gOS[], gVersion[];
--extern Bookmark gBm;
-+//extern Bookmark gBm;
-
- static void
- #if (defined(__GNUC__)) && (__GNUC__ >= 2)
---- a/sh_util/ncftpls.c
-+++ b/sh_util/ncftpls.c
-@@ -39,7 +39,7 @@ extern unsigned int gFirewallPort;
- extern char gFirewallExceptionList[256];
- extern int gFwDataPortMode;
- extern const char gOS[], gVersion[];
--extern Bookmark gBm;
-+//extern Bookmark gBm;
-
- static int FTPRemoteRecursiveMList(FTPCIPtr cip, const char *const rdir, /* FTPFileInfoListPtr files, */ FTPLineListPtr lines);
-
---- a/sh_util/ncftpput.c
-+++ b/sh_util/ncftpput.c
-@@ -41,7 +41,6 @@ extern unsigned int gFirewallPort;
- extern char gFirewallExceptionList[256];
- extern int gFwDataPortMode;
- extern const char gOS[], gVersion[];
--extern Bookmark gBm;
- extern int gSendfileInProgress;
-
- static void
diff --git a/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb b/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb
deleted file mode 100644
index e66325c838..0000000000
--- a/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-DESCRIPTION = "A sophisticated console ftp client"
-HOMEPAGE = "http://ncftp.com/"
-SECTION = "net"
-LICENSE = "ClArtistic"
-LIC_FILES_CHKSUM = "file://ncftp/cmds.c;beginline=3;endline=4;md5=9c2390809f71465aa7ff76e03dc14d91"
-DEPENDS = "ncurses"
-
-SRC_URI = "ftp://ftp.ncftp.com/${BPN}/${BP}-src.tar.xz \
- file://ncftp-configure-use-BUILD_CC-for-ccdv.patch \
- file://unistd.patch \
- file://ncftp-3.2.5-gcc10.patch \
- file://0001-Forward-port-defining-PREFIX_BINDIR-to-use-new-autoc.patch \
- "
-SRC_URI[md5sum] = "42d0f896d69a4d603ec097546444245f"
-SRC_URI[sha256sum] = "5f200687c05d0807690d9fb770327b226f02dd86155b49e750853fce4e31098d"
-
-inherit autotools-brokensep pkgconfig
-
-CFLAGS += "-DNO_SSLv2 -D_FILE_OFFSET_BITS=64 -Wall"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[ccdv] = "--enable-ccdv,--disable-ccdv,,"
-
-EXTRA_OECONF = "--disable-precomp --disable-universal ac_cv_path_TAR=tar"
-ACLOCALEXTRAPATH:append = " -I ${S}/autoconf_local"
-
-do_install () {
- install -d ${D}${bindir} ${D}${sysconfdir} ${D}${mandir}
- oe_runmake 'prefix=${D}${prefix}' 'BINDIR=${D}${bindir}' \
- 'SYSCONFDIR=${D}${sysconfdir}' 'mandir=${D}${mandir}' \
- install
-}
diff --git a/meta-networking/recipes-daemons/ncftp/ncftp_3.2.7.bb b/meta-networking/recipes-daemons/ncftp/ncftp_3.2.7.bb
new file mode 100644
index 0000000000..15bb00a3af
--- /dev/null
+++ b/meta-networking/recipes-daemons/ncftp/ncftp_3.2.7.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "A sophisticated console ftp client"
+HOMEPAGE = "http://ncftp.com/"
+SECTION = "net"
+LICENSE = "ClArtistic"
+LIC_FILES_CHKSUM = "file://ncftp/cmds.c;beginline=3;endline=4;md5=9c2390809f71465aa7ff76e03dc14d91"
+DEPENDS = "ncurses"
+
+SRC_URI = "https://www.ncftp.com/public_ftp/ncftp/${BP}-src.tar.xz \
+ file://ncftp-configure-use-BUILD_CC-for-ccdv.patch \
+ file://unistd.patch \
+ file://0001-Forward-port-defining-PREFIX_BINDIR-to-use-new-autoc.patch \
+ "
+SRC_URI[sha256sum] = "d41c5c4d6614a8eae2ed4e4d7ada6b6d3afcc9fb65a4ed9b8711344bef24f7e8"
+
+inherit autotools-brokensep pkgconfig
+
+CFLAGS += "-DNO_SSLv2 -D_FILE_OFFSET_BITS=64 -Wall"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[ccdv] = "--enable-ccdv,--disable-ccdv,,"
+
+EXTRA_OECONF = "--disable-precomp --disable-universal ac_cv_path_TAR=tar"
+ACLOCALEXTRAPATH:append = " -I ${S}/autoconf_local"
+
+do_install () {
+ install -d ${D}${bindir} ${D}${sysconfdir} ${D}${mandir}
+ oe_runmake 'prefix=${D}${prefix}' 'BINDIR=${D}${bindir}' \
+ 'SYSCONFDIR=${D}${sysconfdir}' 'mandir=${D}${mandir}' \
+ install
+}
diff --git a/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.1.bb b/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.1.bb
deleted file mode 100644
index e929534c3f..0000000000
--- a/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.1.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Dispatcher service for systemd-networkd connection status changes"
-DESCRIPTION = "This daemon is similar to NetworkManager-dispatcher, but is much \
-more limited in the types of events it supports due to the limited nature of \
-systemd-networkd(8)."
-AUTHOR = "Clayton Craft and others"
-
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
-
-inherit features_check systemd
-
-RDEPENDS:${PN} = "python3-pygobject python3-dbus"
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-SRCREV = "30e278e50749a60a930ceaa0971207c6436b8a0c"
-SRC_URI = "git://gitlab.com/craftyguy/networkd-dispatcher;protocol=https;nobranch=1"
-
-S = "${WORKDIR}/git"
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE:${PN} = "networkd-dispatcher.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-# Nothing to build, just a python script to install
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
-do_install() {
- install -D -m 0755 ${S}/networkd-dispatcher ${D}${bindir}/networkd-dispatcher
- install -D -m 0644 ${S}/networkd-dispatcher.service ${D}/${systemd_system_unitdir}/networkd-dispatcher.service
- install -D -m 0644 ${S}/networkd-dispatcher.conf ${D}/${sysconfdir}/conf.d/networkd-dispatcher.conf
-}
diff --git a/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.2.4.bb b/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.2.4.bb
new file mode 100644
index 0000000000..f0f7eb5df6
--- /dev/null
+++ b/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.2.4.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Dispatcher service for systemd-networkd connection status changes"
+DESCRIPTION = "This daemon is similar to NetworkManager-dispatcher, but is much \
+more limited in the types of events it supports due to the limited nature of \
+systemd-networkd(8)."
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
+
+inherit features_check systemd
+
+RDEPENDS:${PN} = "python3-pygobject python3-dbus"
+REQUIRED_DISTRO_FEATURES = "systemd gobject-introspection-data"
+
+SRCREV = "dfd26d72793914eb3da910ef8c71de6d7c8942a2"
+SRC_URI = "git://gitlab.com/craftyguy/networkd-dispatcher;protocol=https;nobranch=1"
+
+S = "${WORKDIR}/git"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "networkd-dispatcher.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+# Nothing to build, just a python script to install
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ install -D -m 0755 ${S}/networkd-dispatcher ${D}${bindir}/networkd-dispatcher
+ install -D -m 0644 ${S}/networkd-dispatcher.service ${D}/${systemd_system_unitdir}/networkd-dispatcher.service
+ install -D -m 0644 ${S}/networkd-dispatcher.conf ${D}/${sysconfdir}/conf.d/networkd-dispatcher.conf
+}
diff --git a/meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch b/meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch
index 4c545708fc..eabffa7d9c 100644
--- a/meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch
+++ b/meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Fix
sensor_factors_000.cpp:66:5: error: non-constant-expression cannot be narrowed from type 'int' to 'unsigned char' in initializer list [-Wc++11-narrowing]
diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch
index ca522bcc67..68f972fc51 100644
--- a/meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch
+++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch
@@ -6,7 +6,7 @@ Taken from Fedora
https://src.fedoraproject.org/rpms/openhpi/c/be77f5484b0206f8946a85b29424ea10bf863063
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Unknown
+Upstream-Status: Pending [Unknown]
diff -up openhpi-3.6.1/ssl/Makefile.am.than openhpi-3.6.1/ssl/Makefile.am
--- openhpi-3.6.1/ssl/Makefile.am.than 2017-02-21 12:21:12.114814698 -0500
diff --git a/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb b/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
index bacf984e74..32c4783cf7 100644
--- a/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
+++ b/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
@@ -59,6 +59,7 @@ FILES:${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so"
INSANE_SKIP:${PN}-libs = "dev-so"
RDEPENDS:${PN} += "${PN}-libs"
+RDEPENDS:${PN}-ptest += "packagegroup-core-buildessential"
PACKAGECONFIG ??= "libgcrypt non32bit snmp-bc"
PACKAGECONFIG[sysfs] = "--enable-sysfs,--disable-sysfs,sysfsutils,"
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-Use-correct-printf-format-for-__fsblkcnt_t.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-Use-correct-printf-format-for-__fsblkcnt_t.patch
index 0e113f533f..7e88c498ee 100644
--- a/meta-networking/recipes-daemons/opensaf/opensaf/0001-Use-correct-printf-format-for-__fsblkcnt_t.patch
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-Use-correct-printf-format-for-__fsblkcnt_t.patch
@@ -15,15 +15,13 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
src/base/os_defs.c | 4 ++++
1 file changed, 4 insertions(+)
-diff --git a/src/base/os_defs.c b/src/base/os_defs.c
-index 83458c2..655c190 100644
--- a/src/base/os_defs.c
+++ b/src/base/os_defs.c
-@@ -917,7 +917,11 @@ uint32_t ncs_os_posix_shm(NCS_OS_POSIX_SHM_REQ_INFO *req)
+@@ -917,7 +917,11 @@ uint32_t ncs_os_posix_shm(NCS_OS_POSIX_S
((statsvfs.f_bfree - 1) * statsvfs.f_frsize)) {
syslog(
LOG_ERR,
-+#if __TIMESIZE == 64 && __WORDSIZE == 32
++#if (_FILE_OFFSET_BITS == 64 || __TIMESIZE == 64) && __WORDSIZE == 32
+ "Insufficient shared memory (%lld) to write the data of size: %" PRId64
+#else
"Insufficient shared memory (%ld) to write the data of size: %" PRId64
@@ -31,6 +29,3 @@ index 83458c2..655c190 100644
"\n",
(statsvfs.f_bfree * statsvfs.f_frsize),
req->info.write.i_write_size);
---
-2.29.2
-
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch
index be0a587679..c5264e5e7a 100644
--- a/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] configure: Disable format-overflow if supported by gcc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile.am | 6 +--
configure.ac | 2 +
m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch
index e4bbb4c3cd..daf06d38fb 100644
--- a/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch
@@ -9,6 +9,8 @@ and we can use non-gcc compilers
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch
index e40d2b3198..99fab3b034 100644
--- a/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch
@@ -9,6 +9,8 @@ redirecting incorrect #include <wait.h> to <sys/wait.h>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/imm/common/immpbe_dump.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-include-cstdint-for-uintXX_t-types.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-include-cstdint-for-uintXX_t-types.patch
new file mode 100644
index 0000000000..e36d4e0cdc
--- /dev/null
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-include-cstdint-for-uintXX_t-types.patch
@@ -0,0 +1,43 @@
+From 225891675b80beaa9d74ce56809e52c4451df72c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 25 Jan 2023 21:46:22 -0800
+Subject: [PATCH 1/2] include cstdint for uintXX_t types
+
+GCC-13 needs it [1]
+
+[1] https://www.gnu.org/software/gcc/gcc-13/porting_to.html
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/imm/immnd/ImmModel.h | 1 +
+ src/osaf/consensus/consensus_env.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/imm/immnd/ImmModel.h b/src/imm/immnd/ImmModel.h
+index 44da470..0660431 100644
+--- a/src/imm/immnd/ImmModel.h
++++ b/src/imm/immnd/ImmModel.h
+@@ -22,6 +22,7 @@
+ #include <saImmOm.h>
+ #include <cstdarg>
+ #include <sys/types.h>
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ #include <map>
+diff --git a/src/osaf/consensus/consensus_env.h b/src/osaf/consensus/consensus_env.h
+index df4f93a..89ccf46 100644
+--- a/src/osaf/consensus/consensus_env.h
++++ b/src/osaf/consensus/consensus_env.h
+@@ -15,6 +15,7 @@
+ #ifndef OSAF_CONSENSUS_CONSENSUS_ENV_H_
+ #define OSAF_CONSENSUS_CONSENSUS_ENV_H_
+
++#include <cstdint>
+ #include <string>
+ #include "base/mutex.h"
+
+--
+2.39.1
+
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch
index e4a3975da6..2521839c73 100644
--- a/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch
@@ -9,6 +9,8 @@ Do not use the deprecated headers under include/sys
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/base/os_defs.h | 5 +++--
src/mds/mds_dt_tcp.c | 1 -
src/mds/mds_dt_tcp_disc.h | 2 +-
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-Werror-enum-int-mismatch-with-gcc13.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-Werror-enum-int-mismatch-with-gcc13.patch
new file mode 100644
index 0000000000..a6aa2c3d07
--- /dev/null
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-Werror-enum-int-mismatch-with-gcc13.patch
@@ -0,0 +1,61 @@
+From 5e5686de677c884d5d785254412ced3c9d2d1b08 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 25 Jan 2023 21:47:45 -0800
+Subject: [PATCH 2/2] Fix -Werror=enum-int-mismatch with gcc13
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/evt/agent/eda_hdl.h | 5 +++--
+ src/evt/evtd/eds_mds.h | 3 +--
+ src/smf/smfnd/smfnd.h | 8 ++++----
+ 3 files changed, 8 insertions(+), 8 deletions(-)
+
+--- a/src/evt/agent/eda_hdl.h
++++ b/src/evt/agent/eda_hdl.h
+@@ -31,6 +31,7 @@
+ #define EVT_AGENT_EDA_HDL_H_
+
+ #include "evt/agent/eda.h"
++#include "ais/include/saAis.h"
+
+ uint32_t eda_hdl_cbk_dispatch(EDA_CB *, EDA_CLIENT_HDL_REC *, SaDispatchFlagsT);
+
+@@ -68,11 +69,11 @@ EDA_CHANNEL_HDL_REC *eda_find_chan_hdl_r
+
+ void eda_msg_destroy(EDSV_MSG *msg);
+
+-uint32_t eda_extract_pattern_from_event(
++SaAisErrorT eda_extract_pattern_from_event(
+ SaEvtEventPatternArrayT *from_pattern_array,
+ SaEvtEventPatternArrayT **to_pattern_array);
+
+-uint32_t eda_allocate_and_extract_pattern_from_event(
++SaAisErrorT eda_allocate_and_extract_pattern_from_event(
+ SaEvtEventPatternArrayT *from_pattern_array,
+ SaEvtEventPatternArrayT **to_pattern_array);
+
+--- a/src/evt/evtd/eds_mds.h
++++ b/src/evt/evtd/eds_mds.h
+@@ -49,8 +49,7 @@ uint32_t eds_mds_msg_send(EDS_CB *cb, ED
+ MDS_SEND_PRIORITY_TYPE prio);
+
+ uint32_t eds_mds_ack_send(EDS_CB *cb, EDSV_MSG *msg, MDS_DEST dest,
+- SaTimeT timeout, MDS_SEND_PRIORITY_TYPE prio);
+-
++ SaTimeT timeout, uint32_t prio);
+ uint32_t eds_dec_subscribe_msg(NCS_UBAID *uba, long msg_hdl, uint8_t ckpt_flag);
+
+ uint32_t eds_dec_publish_msg(NCS_UBAID *uba, long msg_hdl, uint8_t ckpt_flag);
+--- a/src/smf/smfnd/smfnd.h
++++ b/src/smf/smfnd/smfnd.h
+@@ -76,7 +76,7 @@ extern "C" {
+ #endif
+
+ /* smfnd_amf.c */
+-extern uint32_t smfnd_amf_init(smfnd_cb_t *cb);
++extern SaAisErrorT smfnd_amf_init(smfnd_cb_t *cb);
+
+ /* smfnd_mds.c */
+ extern uint32_t smfnd_mds_init(smfnd_cb_t *cb);
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf_5.22.01.bb b/meta-networking/recipes-daemons/opensaf/opensaf_5.22.01.bb
index 930755d624..3dd950c720 100644
--- a/meta-networking/recipes-daemons/opensaf/opensaf_5.22.01.bb
+++ b/meta-networking/recipes-daemons/opensaf/opensaf_5.22.01.bb
@@ -30,6 +30,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \
file://0001-Use-correct-printf-format-for-__fsblkcnt_t.patch \
file://0001-include-missing-array-header.patch \
file://0002-configure-Disable-selected-warnings.patch \
+ file://0001-include-cstdint-for-uintXX_t-types.patch \
+ file://0002-Fix-Werror-enum-int-mismatch-with-gcc13.patch \
"
SRC_URI[sha256sum] = "f008d53c83087ce2014c6089bc4ef08e14c1b4091298b943f4ceade1aa6bf61e"
diff --git a/meta-networking/recipes-daemons/postfix/files/0001-Fix-makedefs.patch b/meta-networking/recipes-daemons/postfix/files/0001-Fix-makedefs.patch
index e83085d20d..8c9c13b1c4 100644
--- a/meta-networking/recipes-daemons/postfix/files/0001-Fix-makedefs.patch
+++ b/meta-networking/recipes-daemons/postfix/files/0001-Fix-makedefs.patch
@@ -11,7 +11,7 @@ for Linux2 and Linux3 systems.
native build, search host library path for nsl and resolv library
which comes from libc
-Upstreamstatus: Inappropriate [embedded specific]
+Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
---
diff --git a/meta-networking/recipes-daemons/postfix/files/0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch b/meta-networking/recipes-daemons/postfix/files/0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch
index 347b9de0a3..28199ccdd2 100644
--- a/meta-networking/recipes-daemons/postfix/files/0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch
+++ b/meta-networking/recipes-daemons/postfix/files/0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch
@@ -3,7 +3,7 @@ From: Li xin <lixin.fnst@cn.fujitsu.com>
Date: Fri, 19 Jun 2015 17:14:58 +0900
Subject: [PATCH] Change fixed postconf to a variable for cross-compiling
-Upstreamstatus: Inappropriate [embedded specific]
+Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
---
diff --git a/meta-networking/recipes-daemons/postfix/files/0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch b/meta-networking/recipes-daemons/postfix/files/0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch
index 0fc938e13d..1545f21637 100644
--- a/meta-networking/recipes-daemons/postfix/files/0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch
+++ b/meta-networking/recipes-daemons/postfix/files/0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch
@@ -7,6 +7,8 @@ Its a binary used during build
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
makedefs | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/meta-networking/recipes-daemons/postfix/files/0004-Fix-icu-config.patch b/meta-networking/recipes-daemons/postfix/files/0004-Fix-icu-config.patch
index 6b4a5f7a0c..a38e783309 100644
--- a/meta-networking/recipes-daemons/postfix/files/0004-Fix-icu-config.patch
+++ b/meta-networking/recipes-daemons/postfix/files/0004-Fix-icu-config.patch
@@ -12,6 +12,8 @@ entertained.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
makedefs | 1 -
1 file changed, 1 deletion(-)
diff --git a/meta-networking/recipes-daemons/postfix/postfix.inc b/meta-networking/recipes-daemons/postfix/postfix.inc
deleted file mode 100644
index 8a4428c504..0000000000
--- a/meta-networking/recipes-daemons/postfix/postfix.inc
+++ /dev/null
@@ -1,222 +0,0 @@
-SUMMARY = "Postfix Mail Transport Agent"
-DESCRIPTION = "Postfix is Wietse Venema's mail server that started life at \
-IBM research as an alternative to the widely-used Sendmail program. \
-Postfix attempts to be fast, easy to administer, and secure. The outsidei \
-has a definite Sendmail-ish flavor, but the inside is completely different."
-
-HOMEPAGE= "http://www.postfix.org"
-SECTION = "mail"
-DEPENDS = "db icu libpcre libnsl2 m4-native openssl postfix-native \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', 'openldap', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'sasl', 'cyrus-sasl', '', d)} \
-"
-
-LICENSE = "IPL-1.0 | EPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b181651ad99a7dc4cc8c4ce2f491ed1a"
-
-S = "${WORKDIR}/postfix-${PV}"
-
-CLEANBROKEN = "1"
-
-BBCLASSEXTEND = "native"
-
-inherit pkgconfig update-rc.d useradd update-alternatives systemd lib_package
-
-INITSCRIPT_NAME = "postfix"
-INITSCRIPT_PARAMS = "start 58 3 4 5 . stop 13 0 1 6 ."
-USERADD_PACKAGES = "${PN}-bin"
-USERADD_PARAM:${PN}-bin = \
-"-d /var/spool/postfix -r -g postfix --shell /bin/false postfix; \
- -d /var/spool/vmail -r -g vmail --shell /bin/false vmail \
-"
-GROUPADD_PARAM:${PN}-bin = "--system postfix;--system postdrop;--system vmail"
-
-export SYSLIBS = "${LDFLAGS}"
-
-# CCARGS specifies includes, defines
-# AUXLIBS specifies libraries
-# Linux2/Linux3 has HAS_DB defined
-# makedefs will make CC to be CC+CCARGS
-
-# ldap support
-export CCARGS-ldap = "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', '-DHAS_LDAP', '', d)}"
-export AUXLIBS-ldap = "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', '-lldap -llber', '', d)}"
-
-# no native openldap
-export CCARGS-ldap:class-native = ""
-export AUXLIBS-ldap:class-native = ""
-
-export CCARGS-nonis:libc-musl = "-DNO_NIS"
-export CCARGS-nonis = ""
-
-# SASL support -DUSE_LDAP_SASL -DUSE_SASL_AUTH
-# current openldap didn't enable SASL
-export CCARGS-sasl = "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'sasl', '-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${STAGING_INCDIR}/sasl', '', d)}"
-export AUXLIBS-sasl = "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'sasl', '-lsasl2', '', d)}"
-export CCARGS-sasl:class-native = ""
-export AUXLIBS-sasl:class-native = ""
-
-# PCRE, TLS support default
-export CCARGS = "${CFLAGS} -DHAS_PCRE -DUSE_TLS -I${STAGING_INCDIR}/openssl ${CCARGS-ldap} ${CCARGS-sasl} ${CCARGS-nonis}"
-export AUXLIBS = "-lpcre -lssl -lcrypto ${AUXLIBS-sasl} ${AUXLIBS-ldap}"
-export POSTCONF = "${STAGING_DIR_NATIVE}${sbindir_native}/postconf"
-
-# OPT,DEBUG is aready in CFLAGS
-# ignore the OPTS="CC=$CC" in Makefile it will not use the CC=$CC $CCARGS
-EXTRA_OEMAKE += "OPT= DEBUG= OPTS= "
-
-do_compile () {
- unset CFLAGS CPPFLAGS CXXFLAGS
- local native_build
-
- native_build="${@['0', '1'][bb.data.inherits_class('native', d) or bb.data.inherits_class('nativesdk', d)]}"
-
- # if not native build, then pass SYSTEM and RELEASE to makedefs
- if [ "${native_build}" != "1" ]; then
- # uname -s for target
- SYSTEM="Linux"
-
- # uname -r, use 2.6 as bottomline, even target kernel ver > 2.6
- RELEASE="2.6.34"
- sed -i -e \
- "s:\$(SHELL) makedefs):\$(SHELL) makedefs $SYSTEM $RELEASE):" \
- ${S}/Makefile.in
- export BUILD_SYSROOT="${STAGING_DIR_HOST}"
- else
- # native build
- export BUILD_SYSROOT="${STAGING_DIR_NATIVE}"
- fi
-
- oe_runmake makefiles
- oe_runmake
-}
-
-do_install:prepend:class-native() {
- export POSTCONF="bin/postconf"
-}
-
-SYSTEMD_SERVICE:${PN} = "postfix.service"
-
-do_install () {
- sh ./postfix-install 'install_root=${D}' \
- 'config_directory=${sysconfdir}/postfix' \
- 'daemon_directory=${libexecdir}/postfix' \
- 'command_directory=${sbindir}' \
- 'queue_directory=${localstatedir}/spool/postfix' \
- 'sendmail_path=${sbindir}/sendmail.postfix' \
- 'newaliases_path=${bindir}/newaliases' \
- 'mailq_path=${bindir}/mailq' \
- 'manpage_directory=${mandir}' \
- 'readme_directory=${datadir}/doc/postfix' \
- 'data_directory=${localstatedir}/lib/postfix' \
- -non-interactive
- rm -rf ${D}${localstatedir}/spool/postfix
- mv ${D}${sysconfdir}/postfix/main.cf ${D}${sysconfdir}/postfix/sample-main.cf
- install -m 755 ${S}/bin/smtp-sink ${D}/${sbindir}/
- install -d ${D}${sysconfdir}/init.d
- install -m 644 ${WORKDIR}/main.cf ${D}${sysconfdir}/postfix/main.cf
- sed -i 's#@LIBEXECDIR@#${libexecdir}#' ${D}${sysconfdir}/postfix/main.cf
-
- install -m 755 ${WORKDIR}/check_hostname.sh ${D}${sbindir}/
-
- install -m 755 ${WORKDIR}/postfix ${D}${sysconfdir}/init.d/postfix
- install -m 644 ${WORKDIR}/internal_recipient ${D}${sysconfdir}/postfix/internal_recipient
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/postfix.service ${D}${systemd_unitdir}/system
- sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}${systemd_unitdir}/system/postfix.service
- sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/postfix.service
- sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/postfix.service
-
- install -m 0755 ${WORKDIR}/aliasesdb ${D}${libexecdir}/postfix
-
- install -m 770 -d ${D}${localstatedir}/spool/postfix
- chown postfix:postfix ${D}${localstatedir}/spool/postfix
-
- install -m 0755 -d ${D}${localstatedir}/lib/postfix
- chown postfix:nogroup ${D}${localstatedir}/lib/postfix
- install -m 0755 -d ${D}${localstatedir}/spool/postfix
- chown root:postfix ${D}${localstatedir}/spool/postfix
- install -m 0700 -d ${D}${localstatedir}/spool/postfix/active
- chown postfix:root ${D}${localstatedir}/spool/postfix/active
- install -m 0700 -d ${D}${localstatedir}/spool/postfix/bounce
- chown postfix:root ${D}${localstatedir}/spool/postfix/bounce
- install -m 0700 -d ${D}${localstatedir}/spool/postfix/corrupt
- chown postfix:root ${D}${localstatedir}/spool/postfix/corrupt
- install -m 0700 -d ${D}${localstatedir}/spool/postfix/defer
- chown postfix:root ${D}${localstatedir}/spool/postfix/defer
- install -m 0700 -d ${D}${localstatedir}/spool/postfix/deferred
- chown postfix:root ${D}${localstatedir}/spool/postfix/deferred
- install -m 0700 -d ${D}${localstatedir}/spool/postfix/flush
- chown postfix:root ${D}${localstatedir}/spool/postfix/flush
- install -m 0700 -d ${D}${localstatedir}/spool/postfix/hold
- chown postfix:root ${D}${localstatedir}/spool/postfix/hold
- install -m 0700 -d ${D}${localstatedir}/spool/postfix/incoming
- chown postfix:root ${D}${localstatedir}/spool/postfix/incoming
- install -m 0700 -d ${D}${localstatedir}/spool/postfix/saved
- chown postfix:root ${D}${localstatedir}/spool/postfix/saved
- install -m 0700 -d ${D}${localstatedir}/spool/postfix/trace
- chown postfix:root ${D}${localstatedir}/spool/postfix/trace
- install -m 0730 -d ${D}${localstatedir}/spool/postfix/maildrop
- chown postfix:postdrop ${D}${localstatedir}/spool/postfix/maildrop
- install -m 0755 -d ${D}${localstatedir}/spool/postfix/pid
- chown root:root ${D}${localstatedir}/spool/postfix/pid
- install -m 0700 -d ${D}${localstatedir}/spool/postfix/private
- chown postfix:root ${D}${localstatedir}/spool/postfix/private
- install -m 0710 -d ${D}${localstatedir}/spool/postfix/public
- chown postfix:postdrop ${D}${localstatedir}/spool/postfix/public
- install -m 0755 -d ${D}${localstatedir}/spool/vmail
- chown vmail:vmail ${D}${localstatedir}/spool/vmail
-
- chown :postdrop ${D}${sbindir}/postqueue
- chown :postdrop ${D}${sbindir}/postdrop
- chmod g+s ${D}${sbindir}/postqueue
- chmod g+s ${D}${sbindir}/postdrop
-
- rm -rf ${D}/etc/postfix/makedefs.out
-}
-
-do_install:append:class-native() {
- ln -sf ../sbin/sendmail.postfix ${D}${bindir}/newaliases
- ln -sf ../sbin/sendmail.postfix ${D}${bindir}/mailq
-}
-
-ALTERNATIVE:${PN}-bin = "sendmail mailq newaliases"
-# /usr/lib/sendmial is required by LSB core test
-ALTERNATIVE:${PN}-bin:linuxstdbase = "sendmail mailq newaliases usr-lib-sendmail"
-ALTERNATIVE_TARGET[mailq] = "${bindir}/mailq"
-ALTERNATIVE_TARGET[newaliases] = "${bindir}/newaliases"
-ALTERNATIVE_TARGET[sendmail] = "${sbindir}/sendmail.postfix"
-ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
-ALTERNATIVE_TARGET[usr-lib-sendmail] = "${sbindir}/sendmail.postfix"
-ALTERNATIVE_LINK_NAME[usr-lib-sendmail] = "/usr/lib/sendmail"
-
-ALTERNATIVE_PRIORITY = "120"
-
-ALTERNATIVE:${PN}-doc += "mailq.1 newaliases.1 sendmail.1"
-ALTERNATIVE_LINK_NAME[mailq.1] = "${mandir}/man1/mailq.1"
-ALTERNATIVE_LINK_NAME[newaliases.1] = "${mandir}/man1/newaliases.1"
-ALTERNATIVE_LINK_NAME[sendmail.1] = "${mandir}/man1/sendmail.1"
-
-pkg_postinst_ontarget:${PN}-cfg () {
- touch /etc/aliases
- newaliases
-
- # generate virtual_alias, default is hash
- touch /etc/postfix/virtual_alias
- postmap /etc/postfix/virtual_alias
-}
-
-PACKAGES =+ "${PN}-cfg"
-RDEPENDS:${PN}-cfg:class-target += "${PN}-bin"
-RDEPENDS:${PN}:class-target += "${PN}-cfg"
-# Exclude .debug directories from the main package
-FILES:${PN}-bin += "${localstatedir} ${bindir}/* ${sbindir}/* \
- ${libexecdir}/* ${systemd_unitdir}/*"
-FILES:${PN}-cfg = "${sysconfdir}"
-FILES:${PN}-dbg += "${libexecdir}/postfix/.debug"
-ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-networking/recipes-daemons/postfix/postfix_3.6.5.bb b/meta-networking/recipes-daemons/postfix/postfix_3.6.5.bb
deleted file mode 100644
index 343a8b2df0..0000000000
--- a/meta-networking/recipes-daemons/postfix/postfix_3.6.5.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-require postfix.inc
-
-SRC_URI += "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \
- file://main.cf \
- file://postfix \
- file://internal_recipient \
- file://postfix.service \
- file://aliasesdb \
- file://check_hostname.sh \
- file://0001-Fix-makedefs.patch \
- file://0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch \
- file://0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch \
- file://0004-Fix-icu-config.patch \
- file://0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch \
- "
-SRC_URI[sha256sum] = "300fa8811cea20d01d25c619d359bffab82656e704daa719e0c9afc4ecff4808"
-UPSTREAM_CHECK_REGEX = "postfix\-(?P<pver>3\.6(\.\d+)+).tar.gz"
diff --git a/meta-networking/recipes-daemons/postfix/postfix_3.8.6.bb b/meta-networking/recipes-daemons/postfix/postfix_3.8.6.bb
new file mode 100644
index 0000000000..3ec7f22ad3
--- /dev/null
+++ b/meta-networking/recipes-daemons/postfix/postfix_3.8.6.bb
@@ -0,0 +1,240 @@
+SUMMARY = "Postfix Mail Transport Agent"
+DESCRIPTION = "Postfix is Wietse Venema's mail server that started life at \
+IBM research as an alternative to the widely-used Sendmail program. \
+Postfix attempts to be fast, easy to administer, and secure. The outsidei \
+has a definite Sendmail-ish flavor, but the inside is completely different."
+
+HOMEPAGE= "http://www.postfix.org"
+SECTION = "mail"
+DEPENDS = "db icu libpcre libnsl2 m4-native openssl postfix-native \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', 'openldap', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'sasl', 'cyrus-sasl', '', d)} \
+"
+
+LICENSE = "IPL-1.0 | EPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b181651ad99a7dc4cc8c4ce2f491ed1a"
+
+SRC_URI = "http://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \
+ file://main.cf \
+ file://postfix \
+ file://internal_recipient \
+ file://postfix.service \
+ file://aliasesdb \
+ file://check_hostname.sh \
+ file://0001-Fix-makedefs.patch \
+ file://0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch \
+ file://0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch \
+ file://0004-Fix-icu-config.patch \
+ file://0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch \
+ "
+
+SRC_URI[sha256sum] = "4b6e17c826cc438cc3016a9c0a55ea7e77c6cbafba7dd57241d81b690b0e9774"
+
+UPSTREAM_CHECK_REGEX = "postfix\-(?P<pver>3\.8(\.\d+)+).tar.gz"
+
+S = "${WORKDIR}/postfix-${PV}"
+
+CLEANBROKEN = "1"
+
+BBCLASSEXTEND = "native"
+
+inherit pkgconfig update-rc.d useradd update-alternatives systemd lib_package
+
+INITSCRIPT_NAME = "postfix"
+INITSCRIPT_PARAMS = "start 58 3 4 5 . stop 13 0 1 6 ."
+USERADD_PACKAGES = "${PN}-bin"
+USERADD_PARAM:${PN}-bin = \
+"-d /var/spool/postfix -r -g postfix --shell /bin/false postfix; \
+ -d /var/spool/vmail -r -g vmail --shell /bin/false vmail \
+"
+GROUPADD_PARAM:${PN}-bin = "--system postfix;--system postdrop;--system vmail"
+
+export SYSLIBS = "${LDFLAGS}"
+
+# CCARGS specifies includes, defines
+# AUXLIBS specifies libraries
+# Linux2/Linux3 has HAS_DB defined
+# makedefs will make CC to be CC+CCARGS
+
+# ldap support
+export CCARGS-ldap = "\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', '-DHAS_LDAP', '', d)}"
+export AUXLIBS-ldap = "\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ldap', '-lldap -llber', '', d)}"
+
+# no native openldap
+export CCARGS-ldap:class-native = ""
+export AUXLIBS-ldap:class-native = ""
+
+export CCARGS-nonis:libc-musl = "-DNO_NIS"
+export CCARGS-nonis = ""
+
+# SASL support -DUSE_LDAP_SASL -DUSE_SASL_AUTH
+# current openldap didn't enable SASL
+export CCARGS-sasl = "\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'sasl', '-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${STAGING_INCDIR}/sasl', '', d)}"
+export AUXLIBS-sasl = "\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'sasl', '-lsasl2', '', d)}"
+export CCARGS-sasl:class-native = ""
+export AUXLIBS-sasl:class-native = ""
+
+# PCRE, TLS support default
+export CCARGS = "${CFLAGS} -DHAS_PCRE -DUSE_TLS -I${STAGING_INCDIR}/openssl ${CCARGS-ldap} ${CCARGS-sasl} ${CCARGS-nonis}"
+export AUXLIBS = "-lpcre -lssl -lcrypto ${AUXLIBS-sasl} ${AUXLIBS-ldap}"
+export POSTCONF = "${STAGING_DIR_NATIVE}${sbindir_native}/postconf"
+
+# OPT,DEBUG is aready in CFLAGS
+# ignore the OPTS="CC=$CC" in Makefile it will not use the CC=$CC $CCARGS
+EXTRA_OEMAKE += "OPT= DEBUG= OPTS= "
+
+do_compile () {
+ unset CFLAGS CPPFLAGS CXXFLAGS
+ local native_build
+
+ native_build="${@['0', '1'][bb.data.inherits_class('native', d) or bb.data.inherits_class('nativesdk', d)]}"
+
+ # if not native build, then pass SYSTEM and RELEASE to makedefs
+ if [ "${native_build}" != "1" ]; then
+ # uname -s for target
+ SYSTEM="Linux"
+
+ # uname -r, use 2.6 as bottomline, even target kernel ver > 2.6
+ RELEASE="2.6.34"
+ sed -i -e \
+ "s:\$(SHELL) makedefs):\$(SHELL) makedefs $SYSTEM $RELEASE):" \
+ ${S}/Makefile.in
+ export BUILD_SYSROOT="${STAGING_DIR_HOST}"
+ else
+ # native build
+ export BUILD_SYSROOT="${STAGING_DIR_NATIVE}"
+ fi
+
+ oe_runmake makefiles
+ oe_runmake
+}
+
+do_install:prepend:class-native() {
+ export POSTCONF="bin/postconf"
+}
+
+SYSTEMD_SERVICE:${PN} = "postfix.service"
+
+do_install () {
+ sh ./postfix-install 'install_root=${D}' \
+ 'config_directory=${sysconfdir}/postfix' \
+ 'daemon_directory=${libexecdir}/postfix' \
+ 'command_directory=${sbindir}' \
+ 'queue_directory=${localstatedir}/spool/postfix' \
+ 'sendmail_path=${sbindir}/sendmail.postfix' \
+ 'newaliases_path=${bindir}/newaliases' \
+ 'mailq_path=${bindir}/mailq' \
+ 'manpage_directory=${mandir}' \
+ 'readme_directory=${datadir}/doc/postfix' \
+ 'data_directory=${localstatedir}/lib/postfix' \
+ -non-interactive
+ rm -rf ${D}${localstatedir}/spool/postfix
+ mv ${D}${sysconfdir}/postfix/main.cf ${D}${sysconfdir}/postfix/${MLPREFIX}sample-main.cf
+ install -m 755 ${S}/bin/smtp-sink ${D}/${sbindir}/
+ install -d ${D}${sysconfdir}/init.d
+ install -m 644 ${WORKDIR}/main.cf ${D}${sysconfdir}/postfix/main.cf
+ sed -i 's#@LIBEXECDIR@#${libexecdir}#' ${D}${sysconfdir}/postfix/main.cf
+
+ install -m 755 ${WORKDIR}/check_hostname.sh ${D}${sbindir}/
+
+ install -m 755 ${WORKDIR}/postfix ${D}${sysconfdir}/init.d/postfix
+ install -m 644 ${WORKDIR}/internal_recipient ${D}${sysconfdir}/postfix/internal_recipient
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/postfix.service ${D}${systemd_unitdir}/system
+ sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}${systemd_unitdir}/system/postfix.service
+ sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/postfix.service
+ sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/postfix.service
+
+ install -m 0755 ${WORKDIR}/aliasesdb ${D}${libexecdir}/postfix
+
+ install -m 770 -d ${D}${localstatedir}/spool/postfix
+ chown postfix:postfix ${D}${localstatedir}/spool/postfix
+
+ install -m 0755 -d ${D}${localstatedir}/lib/postfix
+ chown postfix:nogroup ${D}${localstatedir}/lib/postfix
+ install -m 0755 -d ${D}${localstatedir}/spool/postfix
+ chown root:postfix ${D}${localstatedir}/spool/postfix
+ install -m 0700 -d ${D}${localstatedir}/spool/postfix/active
+ chown postfix:root ${D}${localstatedir}/spool/postfix/active
+ install -m 0700 -d ${D}${localstatedir}/spool/postfix/bounce
+ chown postfix:root ${D}${localstatedir}/spool/postfix/bounce
+ install -m 0700 -d ${D}${localstatedir}/spool/postfix/corrupt
+ chown postfix:root ${D}${localstatedir}/spool/postfix/corrupt
+ install -m 0700 -d ${D}${localstatedir}/spool/postfix/defer
+ chown postfix:root ${D}${localstatedir}/spool/postfix/defer
+ install -m 0700 -d ${D}${localstatedir}/spool/postfix/deferred
+ chown postfix:root ${D}${localstatedir}/spool/postfix/deferred
+ install -m 0700 -d ${D}${localstatedir}/spool/postfix/flush
+ chown postfix:root ${D}${localstatedir}/spool/postfix/flush
+ install -m 0700 -d ${D}${localstatedir}/spool/postfix/hold
+ chown postfix:root ${D}${localstatedir}/spool/postfix/hold
+ install -m 0700 -d ${D}${localstatedir}/spool/postfix/incoming
+ chown postfix:root ${D}${localstatedir}/spool/postfix/incoming
+ install -m 0700 -d ${D}${localstatedir}/spool/postfix/saved
+ chown postfix:root ${D}${localstatedir}/spool/postfix/saved
+ install -m 0700 -d ${D}${localstatedir}/spool/postfix/trace
+ chown postfix:root ${D}${localstatedir}/spool/postfix/trace
+ install -m 0730 -d ${D}${localstatedir}/spool/postfix/maildrop
+ chown postfix:postdrop ${D}${localstatedir}/spool/postfix/maildrop
+ install -m 0755 -d ${D}${localstatedir}/spool/postfix/pid
+ chown root:root ${D}${localstatedir}/spool/postfix/pid
+ install -m 0700 -d ${D}${localstatedir}/spool/postfix/private
+ chown postfix:root ${D}${localstatedir}/spool/postfix/private
+ install -m 0710 -d ${D}${localstatedir}/spool/postfix/public
+ chown postfix:postdrop ${D}${localstatedir}/spool/postfix/public
+ install -m 0755 -d ${D}${localstatedir}/spool/vmail
+ chown vmail:vmail ${D}${localstatedir}/spool/vmail
+
+ chown :postdrop ${D}${sbindir}/postqueue
+ chown :postdrop ${D}${sbindir}/postdrop
+ chmod g+s ${D}${sbindir}/postqueue
+ chmod g+s ${D}${sbindir}/postdrop
+
+ rm -rf ${D}/etc/postfix/makedefs.out
+}
+
+do_install:append:class-native() {
+ ln -sf ../sbin/sendmail.postfix ${D}${bindir}/newaliases
+ ln -sf ../sbin/sendmail.postfix ${D}${bindir}/mailq
+}
+
+ALTERNATIVE:${PN}-bin = "sendmail mailq newaliases"
+# /usr/lib/sendmial is required by LSB core test
+ALTERNATIVE:${PN}-bin:linuxstdbase = "sendmail mailq newaliases usr-lib-sendmail"
+ALTERNATIVE_TARGET[mailq] = "${bindir}/mailq"
+ALTERNATIVE_TARGET[newaliases] = "${bindir}/newaliases"
+ALTERNATIVE_TARGET[sendmail] = "${sbindir}/sendmail.postfix"
+ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
+ALTERNATIVE_TARGET[usr-lib-sendmail] = "${sbindir}/sendmail.postfix"
+ALTERNATIVE_LINK_NAME[usr-lib-sendmail] = "/usr/lib/sendmail"
+
+ALTERNATIVE_PRIORITY = "120"
+
+ALTERNATIVE:${PN}-doc += "mailq.1 newaliases.1 sendmail.1"
+ALTERNATIVE_LINK_NAME[mailq.1] = "${mandir}/man1/mailq.1"
+ALTERNATIVE_LINK_NAME[newaliases.1] = "${mandir}/man1/newaliases.1"
+ALTERNATIVE_LINK_NAME[sendmail.1] = "${mandir}/man1/sendmail.1"
+
+pkg_postinst_ontarget:${PN}-cfg () {
+ touch /etc/aliases
+ newaliases
+
+ # generate virtual_alias, default is hash
+ touch /etc/postfix/virtual_alias
+ postmap /etc/postfix/virtual_alias
+}
+
+PACKAGES =+ "${PN}-cfg"
+RDEPENDS:${PN}-cfg:class-target += "${PN}-bin"
+RDEPENDS:${PN}:class-target += "${PN}-cfg"
+# Exclude .debug directories from the main package
+FILES:${PN}-bin += "${localstatedir} ${bindir}/* ${sbindir}/* \
+ ${libexecdir}/* ${systemd_unitdir}/*"
+FILES:${PN}-cfg = "${sysconfdir}"
+FILES:${PN}-dbg += "${libexecdir}/postfix/.debug"
+ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch b/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch
index d888dd8263..8126b3619a 100644
--- a/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch
+++ b/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch
@@ -6,7 +6,7 @@ make, move-pidfile-to-var-run, move-runfile-to-var-run
move pidfile to /var/run
redefine PR_RUN_DIR as ${localstatedir}/run
-Signed-off-By: Armin Kuster <akuster808@gmail.com>
+Signed-off-by: Armin Kuster <akuster808@gmail.com>
diff --git a/Make.rules.in b/Make.rules.in
diff --git a/meta-networking/recipes-daemons/ptpd/ptpd/Fixed-100-CPU-using-issue-by-adding-minimum-POSIX-ti.patch b/meta-networking/recipes-daemons/ptpd/ptpd/Fixed-100-CPU-using-issue-by-adding-minimum-POSIX-ti.patch
index 1d2a5368c1..91028d82bc 100644
--- a/meta-networking/recipes-daemons/ptpd/ptpd/Fixed-100-CPU-using-issue-by-adding-minimum-POSIX-ti.patch
+++ b/meta-networking/recipes-daemons/ptpd/ptpd/Fixed-100-CPU-using-issue-by-adding-minimum-POSIX-ti.patch
@@ -8,8 +8,7 @@ Added minimum POSIX timer interval to prevent from timers firing
to quickly for the process to handle, resulting in 100% CPU and
endless signal queue.
-Upstream-status: Backport
-[From commit 1f0baae98a7b23e85f2bfd8f5de64795421c270e:
+Upstream-Status: Backport [From commit 1f0baae98a7b23e85f2bfd8f5de64795421c270e:
- critical: added minimum POSIX timer interval to prevent from
timers firing to quickly for the process to handle,
resulting in 100% CPU and endless signal queue]
diff --git a/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch b/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch
index e4578dda74..cb8c81385b 100644
--- a/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch
+++ b/meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] ptpd: use pkgconfig
Yocto uses pkg-config for libpcap, rather than pcap-config, so use that
instead as the source for libs and cflags.
-Upstream-status: Inappropriate [ embedded specific ]
+Upstream-Status: Inappropriate [ embedded specific ]
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
---
diff --git a/meta-networking/recipes-daemons/radvd/radvd_2.19.bb b/meta-networking/recipes-daemons/radvd/radvd_2.19.bb
index f9f810abdd..a9b5f79424 100644
--- a/meta-networking/recipes-daemons/radvd/radvd_2.19.bb
+++ b/meta-networking/recipes-daemons/radvd/radvd_2.19.bb
@@ -61,7 +61,8 @@ do_install:append () {
}
USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --home ${localstatedir}/run/radvd/ -M -g nogroup radvd"
+GROUPADD_PARAM:${PN} = "--system nogroup"
+USERADD_PARAM:${PN} = "--system --home ${localstatedir}/run/radvd/ -M -g nogroup --shell /sbin/nologin radvd"
pkg_postinst:${PN} () {
if [ -z "$D" -a -x /etc/init.d/populate-volatile.sh ]; then
diff --git a/meta-networking/recipes-daemons/squid/files/0001-configure-Check-for-Wno-error-format-truncation-comp.patch b/meta-networking/recipes-daemons/squid/files/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
deleted file mode 100644
index 302136a03c..0000000000
--- a/meta-networking/recipes-daemons/squid/files/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From c21adbb0b230ffba97cf5d059e2bd024e13a37df Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 22 Apr 2017 11:54:57 -0700
-Subject: [PATCH] configure: Check for -Wno-error=format-truncation compiler
- option
-
-If this option is supported by compiler then disable it ( gcc7+)
-Fixes
-client.c:834:23: error: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 1010 [-Werror=format-truncation=]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- acinclude/ax_check_compile_flag.m4 | 74 ++++++++++++++++++++++++++++++++++++++
- configure.ac | 2 ++
- 2 files changed, 76 insertions(+)
- create mode 100644 acinclude/ax_check_compile_flag.m4
-
-diff --git a/acinclude/ax_check_compile_flag.m4 b/acinclude/ax_check_compile_flag.m4
-new file mode 100644
-index 0000000..dcabb92
---- /dev/null
-+++ b/acinclude/ax_check_compile_flag.m4
-@@ -0,0 +1,74 @@
-+# ===========================================================================
-+# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
-+# ===========================================================================
-+#
-+# SYNOPSIS
-+#
-+# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
-+#
-+# DESCRIPTION
-+#
-+# Check whether the given FLAG works with the current language's compiler
-+# or gives an error. (Warnings, however, are ignored)
-+#
-+# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
-+# success/failure.
-+#
-+# If EXTRA-FLAGS is defined, it is added to the current language's default
-+# flags (e.g. CFLAGS) when the check is done. The check is thus made with
-+# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
-+# force the compiler to issue an error when a bad flag is given.
-+#
-+# INPUT gives an alternative input source to AC_COMPILE_IFELSE.
-+#
-+# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
-+# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
-+#
-+# LICENSE
-+#
-+# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
-+# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
-+#
-+# This program is free software: you can redistribute it and/or modify it
-+# under the terms of the GNU General Public License as published by the
-+# Free Software Foundation, either version 3 of the License, or (at your
-+# option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful, but
-+# WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-+# Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License along
-+# with this program. If not, see <https://www.gnu.org/licenses/>.
-+#
-+# As a special exception, the respective Autoconf Macro's copyright owner
-+# gives unlimited permission to copy, distribute and modify the configure
-+# scripts that are the output of Autoconf when processing the Macro. You
-+# need not follow the terms of the GNU General Public License when using
-+# or distributing such scripts, even though portions of the text of the
-+# Macro appear in them. The GNU General Public License (GPL) does govern
-+# all other use of the material that constitutes the Autoconf Macro.
-+#
-+# This special exception to the GPL applies to versions of the Autoconf
-+# Macro released by the Autoconf Archive. When you make and distribute a
-+# modified version of the Autoconf Macro, you may extend this special
-+# exception to the GPL to apply to your modified version as well.
-+
-+#serial 5
-+
-+AC_DEFUN([AX_CHECK_COMPILE_FLAG],
-+[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
-+AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
-+AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
-+ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
-+ _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
-+ AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
-+ [AS_VAR_SET(CACHEVAR,[yes])],
-+ [AS_VAR_SET(CACHEVAR,[no])])
-+ _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
-+AS_VAR_IF(CACHEVAR,yes,
-+ [m4_default([$2], :)],
-+ [m4_default([$3], :)])
-+AS_VAR_POPDEF([CACHEVAR])dnl
-+])dnl AX_CHECK_COMPILE_FLAGS
-diff --git a/configure.ac b/configure.ac
-index ff4688c..9382fdf 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -26,6 +26,7 @@ m4_include([acinclude/pkg.m4])
- m4_include([acinclude/lib-checks.m4])
- m4_include([acinclude/ax_cxx_compile_stdcxx_11.m4])
- m4_include([acinclude/ax_cxx_0x_types.m4])
-+m4_include([acinclude/ax_check_compile_flag.m4])
-
- HOSTCXX="$BUILD_CXX"
- PRESET_CFLAGS="$CFLAGS"
-@@ -44,6 +45,7 @@ AC_PROG_CXX
- AC_LANG([C++])
- AC_CANONICAL_HOST
-
-+AX_CHECK_COMPILE_FLAG([-Werror=format-truncation],[CFLAGS="$CFLAGS -Wno-error=format-truncation" CXXFLAGS="$CXXFLAGS -Wno-error=format-truncation"])
- # Clang 3.2 on some CPUs requires -march-native to detect correctly.
- # GCC 4.3+ can also produce faster executables when its used.
- # But building inside a virtual machine environment has been found to
diff --git a/meta-networking/recipes-daemons/squid/files/0002-squid-make-squid-conf-tests-run-on-target-device.patch b/meta-networking/recipes-daemons/squid/files/0002-squid-make-squid-conf-tests-run-on-target-device.patch
new file mode 100644
index 0000000000..ca1c16b83e
--- /dev/null
+++ b/meta-networking/recipes-daemons/squid/files/0002-squid-make-squid-conf-tests-run-on-target-device.patch
@@ -0,0 +1,70 @@
+From cd8bf8a4bf881f84c23a5fc1f48bb716efa51512 Mon Sep 17 00:00:00 2001
+From: Patrick Wicki <patrick.wicki@siemens.com>
+Date: Wed, 22 Nov 2023 15:35:44 +0100
+Subject: [PATCH] squid: make squid-conf-tests run on target device
+
+* Fix paths to allow tests to run outside the original builddir
+* Allow the tests to run on read-only root
+ * Don't overwrite tests with true on success
+ * Change logfile path to /var/log
+
+Upstream-Status: Inappropriate [cross compile specific]
+
+Signed-off-by: Patrick Wicki <patrick.wicki@siemens.com>
+
+---
+ test-suite/Makefile.am | 16 ++++++++--------
+ test-suite/test-squid-conf.sh | 2 +-
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+--- a/test-suite/Makefile.am
++++ b/test-suite/Makefile.am
+@@ -21,7 +21,7 @@ LDADD = \
+ EXTRA_PROGRAMS = mem_node_test splay
+
+ EXTRA_DIST = \
+- $(srcdir)/squidconf/* \
++ squidconf/* \
+ test-functionality.sh \
+ test-sources.sh \
+ test-squid-conf.sh \
+@@ -134,21 +134,21 @@ VirtualDeleteOperator_SOURCES = \
+
+ installcheck-local: squid-conf-tests
+
+-squid-conf-tests: $(srcdir)/test-squid-conf.sh $(top_builddir)/src/squid.conf.default $(srcdir)/squidconf/*
+- @failed=0; cfglist="$(top_builddir)/src/squid.conf.default $(srcdir)/squidconf/*.conf"; rm -f $@ || $(TRUE); \
++squid-conf-tests: test-squid-conf.sh $(top_builddir)/src/squid.conf.default squidconf/*
++ @failed=0; cfglist="$(top_builddir)/src/squid.conf.default squidconf/*.conf"; rm -f $@ || $(TRUE); \
+ for cfg in $$cfglist ; do \
+- $(srcdir)/test-squid-conf.sh $(top_builddir) $(sbindir) $$cfg || \
++ ./test-squid-conf.sh $(top_builddir) $(sbindir) $$cfg || \
+ { echo "FAIL: squid.conf test: $$cfg" | \
+ sed s%$(top_builddir)/src/%% | \
+- sed s%$(srcdir)/squidconf/%% ; \
++ sed s%squidconf/%% ; \
+ failed=1; break; \
+ }; \
+ if test "$$failed" -eq 0; then \
+ echo "PASS: squid.conf test: $$cfg" | \
+ sed s%$(top_builddir)/src/%% | \
+- sed s%$(srcdir)/squidconf/%% ; \
++ sed s%squidconf/%% ; \
+ else break; fi; \
+ done; \
+- if test "$$failed" -eq 0; then cp $(TRUE) $@ ; else exit 1; fi
++ exit "$$failed"
+
+-CLEANFILES += squid-conf-tests squid-stderr.log
++CLEANFILES += squid-conf-tests /var/log/squid-stderr.log
+--- a/test-suite/test-squid-conf.sh
++++ b/test-suite/test-squid-conf.sh
+@@ -111,7 +111,7 @@ then
+ done < $instructionsFile
+ fi
+
+-errorLog="squid-stderr.log"
++errorLog="/var/log/squid-stderr.log"
+
+ $sbindir/squid -k parse -f $configFile 2> $errorLog
+ result=$?
diff --git a/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch b/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch
deleted file mode 100644
index a429b7b2db..0000000000
--- a/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From b73b802282bf95d214c86ba943c5765ba6930bc1 Mon Sep 17 00:00:00 2001
-From: Jim Somerville <Jim.Somerville@windriver.com>
-Date: Mon, 21 Oct 2013 12:50:44 -0400
-Subject: [PATCH] Fix flawed dynamic -ldb link test in configure
-
-The test uses dbopen, but just ignores the fact
-that this function may not exist in the db version
-used. This leads to the dynamic link test failing
-and the configure script just making assumptions
-about why and setting the need for -ldb incorrectly.
-
-Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
-
----
- configure.ac | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index d2f7feb..c7ae568 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -3268,6 +3268,16 @@ case "$host" in
- ;;
- esac
-
-+if test "x$ac_cv_have_decl_dbopen" = "xyes"; then
-+ dnl 1.85
-+ SQUID_CHECK_DBOPEN_NEEDS_LIBDB
-+else
-+ # dbopen isn't there. So instead of running a compile/link test that
-+ # uses it and is thus guaranteed to fail, we just assume that we will
-+ # need to link in the db library, rather than fabricate some other
-+ # dynamic compile/link test.
-+ ac_cv_dbopen_libdb="yes"
-+fi
- dnl System-specific library modifications
- dnl
- case "$host" in
diff --git a/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch b/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch
index 3852f7c255..18bc78e6be 100644
--- a/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch
+++ b/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch
@@ -1,4 +1,4 @@
-From 995aaf30799fa972441354b6feb45f0621968929 Mon Sep 17 00:00:00 2001
+From c0be3192f608037682464bcb728e97f9d9b543aa Mon Sep 17 00:00:00 2001
From: Jim Somerville <Jim.Somerville@windriver.com>
Date: Wed, 16 Oct 2013 16:41:03 -0400
Subject: [PATCH] Set up for cross compilation
@@ -11,16 +11,16 @@ proper cross compilation can occur.
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
---
+Upstream-Status: Pending
+
configure.ac | 1 +
1 file changed, 1 insertion(+)
-diff --git a/configure.ac b/configure.ac
-index fe80ee0..57cd1ac 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -27,6 +27,7 @@ m4_include([acinclude/lib-checks.m4])
- m4_include([acinclude/ax_cxx_compile_stdcxx_11.m4])
- m4_include([acinclude/ax_cxx_0x_types.m4])
+@@ -29,6 +29,7 @@ m4_include([acinclude/tdb.m4])
+ m4_include([acinclude/lib-checks.m4])
+ m4_include([acinclude/ax_cxx_compile_stdcxx.m4])
+HOSTCXX="$BUILD_CXX"
PRESET_CFLAGS="$CFLAGS"
diff --git a/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch b/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch
index 10853333e2..e0d002c68c 100644
--- a/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch
+++ b/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch
@@ -1,4 +1,4 @@
-From e4778299a3e49a634d2c7fe4fd9ac77777e829e3 Mon Sep 17 00:00:00 2001
+From 050f8ab275a7a5f3d94045da6b15a2b63dfbeb3f Mon Sep 17 00:00:00 2001
From: Jim Somerville <Jim.Somerville@windriver.com>
Date: Tue, 14 Oct 2014 02:56:08 -0400
Subject: [PATCH] Skip AC_RUN_IFELSE tests
@@ -16,11 +16,9 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
acinclude/lib-checks.m4 | 8 ++++++--
2 files changed, 15 insertions(+), 3 deletions(-)
-diff --git a/acinclude/krb5.m4 b/acinclude/krb5.m4
-index ad0ba60..4477446 100644
--- a/acinclude/krb5.m4
+++ b/acinclude/krb5.m4
-@@ -61,7 +61,15 @@ main(void)
+@@ -57,7 +57,15 @@ main(void)
return 0;
}
@@ -35,13 +33,11 @@ index ad0ba60..4477446 100644
+ dnl Can't test in cross compiled env - so assume good
+ squid_cv_broken_heimdal_krb5_h=no
])
+ SQUID_STATE_ROLLBACK(squid_krb5_heimdal_test)
])
- ]) dnl SQUID_CHECK_KRB5_HEIMDAL_BROKEN_KRB5_H
-diff --git a/acinclude/lib-checks.m4 b/acinclude/lib-checks.m4
-index 1e9333527c..2d42787029 100644
--- a/acinclude/lib-checks.m4
+++ b/acinclude/lib-checks.m4
-@@ -227,7 +227,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_CONST_SSL_METHOD],[
+@@ -205,7 +205,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_CONST_SSL_
[
AC_MSG_RESULT([no])
],
@@ -52,15 +48,14 @@ index 1e9333527c..2d42787029 100644
SQUID_STATE_ROLLBACK(check_const_SSL_METHOD)
])
-@@ -386,8 +386,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_TXTDB],[
- [
- AC_MSG_RESULT([yes])
- AC_DEFINE(SQUID_USE_SSLLHASH_HACK, 1)
-- ],
--[])
+@@ -347,7 +349,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_TXTDB],[
+ ],[
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(SQUID_USE_SSLLHASH_HACK, 1)
+- ],[])
+ ],[
+ AC_MSG_RESULT([skipped - can't test in cross-compiled env])
+ ])
- SQUID_STATE_ROLLBACK(check_TXTDB)
+ SQUID_STATE_ROLLBACK(check_TXTDB)
])
diff --git a/meta-networking/recipes-daemons/squid/files/run-ptest b/meta-networking/recipes-daemons/squid/files/run-ptest
index de79a293c5..8f8e28f92b 100644
--- a/meta-networking/recipes-daemons/squid/files/run-ptest
+++ b/meta-networking/recipes-daemons/squid/files/run-ptest
@@ -1,3 +1,4 @@
#!/bin/sh
#
+make -C test-suite -k squid-conf-tests
make -C test-suite -k runtest-TESTS
diff --git a/meta-networking/recipes-daemons/squid/files/set_sysroot_patch.patch b/meta-networking/recipes-daemons/squid/files/set_sysroot_patch.patch
deleted file mode 100644
index 124e04490f..0000000000
--- a/meta-networking/recipes-daemons/squid/files/set_sysroot_patch.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 702bd881b66dc034e711c0ff47805f2da40b6e0d Mon Sep 17 00:00:00 2001
-From: Yue Tao <yue.tao@windriver.com>
-Date: Mon, 8 Aug 2016 16:04:33 +0800
-Subject: [PATCH] Set the SYSROOT for libxml2 header file to avoid host
- contamination.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yue Tao <yue.tao@windriver.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
-
----
- configure.ac | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 504a844..ff4688c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -931,15 +931,15 @@ if test "x$squid_opt_use_esi" = "xyes" -a "x$with_libxml2" != "xno" ; then
- dnl Find the main header and include path...
- AC_CACHE_CHECK([location of libxml2 include files], [ac_cv_libxml2_include], [
- AC_CHECK_HEADERS([libxml/parser.h], [], [
-- AC_MSG_NOTICE([Testing in /usr/include/libxml2])
-+ AC_MSG_NOTICE([Testing in $SYSROOT/usr/include/libxml2])
- SAVED_CPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="-I/usr/include/libxml2 $CPPFLAGS"
-+ CPPFLAGS="-I$SYSROOT/usr/include/libxml2 $CPPFLAGS"
- unset ac_cv_header_libxml_parser_h
-- AC_CHECK_HEADERS([libxml/parser.h], [LIBXML2_CFLAGS="$LIBXML2_CFLAGS -I/usr/include/libxml2"], [
-- AC_MSG_NOTICE([Testing in /usr/local/include/libxml2])
-- CPPFLAGS="-I/usr/local/include/libxml2 $SAVED_CPPFLAGS"
-+ AC_CHECK_HEADERS([libxml/parser.h], [LIBXML2_CFLAGS="$LIBXML2_CFLAGS -I$SYSROOT/usr/include/libxml2"], [
-+ AC_MSG_NOTICE([Testing in $SYSROOT/usr/local/include/libxml2])
-+ CPPFLAGS="-I$SYSROOT/usr/local/include/libxml2 $SAVED_CPPFLAGS"
- unset ac_cv_header_libxml_parser_h
-- AC_CHECK_HEADERS([libxml/parser.h], [LIBXML2_CFLAGS="$LIBXML2_CFLAGS -I/usr/local/include/libxml2"], [
-+ AC_CHECK_HEADERS([libxml/parser.h], [LIBXML2_CFLAGS="$LIBXML2_CFLAGS -I$SYSROOT/usr/local/include/libxml2"], [
- AC_MSG_NOTICE([Failed to find libxml2 header file libxml/parser.h])
- ])
- ])
diff --git a/meta-networking/recipes-daemons/squid/files/squid-don-t-do-squid-conf-tests-at-build-time.patch b/meta-networking/recipes-daemons/squid/files/squid-don-t-do-squid-conf-tests-at-build-time.patch
deleted file mode 100644
index ea27285e09..0000000000
--- a/meta-networking/recipes-daemons/squid/files/squid-don-t-do-squid-conf-tests-at-build-time.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 8786b91488dae3f6dfeadd686e80d2ffc5c29320 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Thu, 25 Aug 2016 15:22:57 +0800
-Subject: [PATCH] squid: don't do squid-conf-tests at build time
-
-* squid-conf-tests is a test to run "squid -k parse -f"
- to perse the config files, which should not be run
- at build time since we are cross compiling, so remove
- it but it will be added back for the runtime ptest.
-
-* Fix the directories of the conf files for squid-conf-tests
- so that it can run on the target board.
-
-Upstream-Status: Inappropriate [cross compile specific]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
----
- test-suite/Makefile.am | 15 +++++++--------
- 1 file changed, 7 insertions(+), 8 deletions(-)
-
-diff --git a/test-suite/Makefile.am b/test-suite/Makefile.am
-index 0233c0e..e0021b6 100644
---- a/test-suite/Makefile.am
-+++ b/test-suite/Makefile.am
-@@ -40,8 +40,7 @@ TESTS += debug \
- splay\
- mem_node_test\
- mem_hdr_test\
-- $(ESI_TESTS) \
-- squid-conf-tests
-+ $(ESI_TESTS)
-
- ## Sort by alpha - any build failures are significant.
- check_PROGRAMS += debug \
-@@ -159,19 +158,19 @@ VirtualDeleteOperator_SOURCES = \
- ##$(TARGLIB): $(LIBOBJS)
- ## $(AR_R) $(TARGLIB) $(LIBOBJS)
-
--squid-conf-tests: $(top_builddir)/src/squid.conf.default $(srcdir)/squidconf/*
-+squid-conf-tests: $(sysconfdir)/squid.conf.default squidconf/*
- @failed=0; cfglist="$?"; rm -f $@ || $(TRUE); \
- for cfg in $$cfglist ; do \
-- $(top_builddir)/src/squid -k parse -f $$cfg || \
-+ squid -k parse -f $$cfg || \
- { echo "FAIL: squid.conf test: $$cfg" | \
-- sed s%$(top_builddir)/src/%% | \
-- sed s%$(srcdir)/squidconf/%% ; \
-+ sed s%$(sysconfdir)/%% | \
-+ sed s%squidconf/%% ; \
- failed=1; break; \
- }; \
- if test "$$failed" -eq 0; then \
- echo "PASS: squid.conf test: $$cfg" | \
-- sed s%$(top_builddir)/src/%% | \
-- sed s%$(srcdir)/squidconf/%% ; \
-+ sed s%$(sysconfdir)/%% | \
-+ sed s%squidconf/%% ; \
- else break; fi; \
- done; \
- if test "$$failed" -eq 0; then cp $(TRUE) $@ ; fi
diff --git a/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch b/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch
index 732cf17f7b..5df006038b 100644
--- a/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch
+++ b/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch
@@ -14,8 +14,6 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/configure.ac b/configure.ac
-index c7ae568..5e1454e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,7 +10,7 @@ AC_PREREQ(2.61)
diff --git a/meta-networking/recipes-daemons/squid/files/squid.nm b/meta-networking/recipes-daemons/squid/files/squid.nm
new file mode 100644
index 0000000000..b58ee11bdc
--- /dev/null
+++ b/meta-networking/recipes-daemons/squid/files/squid.nm
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+case "$2" in
+ up|down|vpn-up|vpn-down)
+ systemctl -q reload squid.service || :
+ ;;
+esac
diff --git a/meta-networking/recipes-daemons/squid/squid_5.7.bb b/meta-networking/recipes-daemons/squid/squid_5.7.bb
deleted file mode 100644
index a208a2a88f..0000000000
--- a/meta-networking/recipes-daemons/squid/squid_5.7.bb
+++ /dev/null
@@ -1,124 +0,0 @@
-SUMMARY = "A fully-featured http proxy and web-cache daemon for Linux"
-DESCRIPTION = "A fully-featured http proxy and web-cache daemon for Linux. \
-Squid offers a rich access control, authorization and logging environment to \
-develop web proxy and content serving applications. \
-Squid offers a rich set of traffic optimization options, most of which are \
-enabled by default for simpler installation and high performance. \
-"
-HOMEPAGE = "http://www.squid-cache.org"
-SECTION = "web"
-LICENSE = "GPL-2.0-or-later"
-
-MAJ_VER = "${@oe.utils.trim_version("${PV}", 1)}"
-MIN_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${BPN}-${PV}.tar.bz2 \
- file://Set-up-for-cross-compilation.patch \
- file://Skip-AC_RUN_IFELSE-tests.patch \
- file://Fix-flawed-dynamic-ldb-link-test-in-configure.patch \
- file://squid-use-serial-tests-config-needed-by-ptest.patch \
- file://run-ptest \
- file://volatiles.03_squid \
- file://set_sysroot_patch.patch \
- file://squid-don-t-do-squid-conf-tests-at-build-time.patch \
- file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \
- "
-
-SRC_URI:remove:toolchain-clang = "file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch"
-
-SRC_URI[sha256sum] = "4c17e1eb324c4b7aa3c6889eba66eeca7ed98625d44076f7db7b027b2b093bd5"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://errors/COPYRIGHT;md5=0a7deb73d8fb7a9849af7145987829a4 \
- "
-DEPENDS = "libtool krb5 openldap db cyrus-sasl"
-
-inherit autotools pkgconfig useradd ptest perlnative
-
-LDFLAGS:append:mipsarch = " -latomic"
-LDFLAGS:append:powerpc = " -latomic"
-LDFLAGS:append:riscv64 = " -latomic"
-LDFLAGS:append:riscv32 = " -latomic"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --no-create-home --home-dir /var/run/squid --shell /bin/false --user-group squid"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
- "
-PACKAGECONFIG[libnetfilter-conntrack] = "--with-netfilter-conntrack=${includedir}, --without-netfilter-conntrack, libnetfilter-conntrack"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-PACKAGECONFIG[werror] = "--enable-strict-error-checking,--disable-strict-error-checking,"
-PACKAGECONFIG[esi] = "--enable-esi,--disable-esi,expat libxml2"
-PACKAGECONFIG[ssl] = "--with-openssl=yes,--with-openssl=no,openssl"
-
-BASIC_AUTH = "DB SASL LDAP"
-
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-BASIC_AUTH += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'PAM', '', d)}"
-
-EXTRA_OECONF += "--with-default-user=squid --enable-auth-basic='${BASIC_AUTH}' \
- --sysconfdir=${sysconfdir}/${BPN} \
- --with-logdir=${localstatedir}/log/${BPN} \
- 'PERL=${USRBINPATH}/env perl'"
-
-export BUILDCXXFLAGS="${BUILD_CXXFLAGS}"
-
-TESTDIR = "test-suite"
-
-do_configure:prepend() {
- export SYSROOT=$PKG_CONFIG_SYSROOT_DIR
-}
-
-do_compile_ptest() {
- oe_runmake -C ${TESTDIR} buildtest-TESTS
-}
-
-do_install_ptest() {
- cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH}
- cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}
-
- # Needed to generate file squid.conf.default
- oe_runmake DESTDIR=${D}${PTEST_PATH} -C src install-data-local
- install -d ${D}${sysconfdir}/squid
- install -m 0644 ${D}${PTEST_PATH}/${sysconfdir}/squid/squid.conf.default ${D}${sysconfdir}/squid
-
- # Don't need these directories
- rm -rf ${D}${PTEST_PATH}/${sysconfdir}
- rm -rf ${D}${PTEST_PATH}/usr
- rm -rf ${D}${PTEST_PATH}/var
-
- # do NOT need to rebuild Makefile itself
- sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-
- # Add squid-conf-tests for runtime tests
- sed -e 's/^\(runtest-TESTS:\)/\1 squid-conf-tests/' \
- -i ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-
- # Ensure the path for command true is correct
- sed -i 's:^TRUE = .*$:TRUE = /bin/true:' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-}
-
-do_install:append() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d ${localstatedir}/run/${BPN} 0755 squid squid -" >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
- echo "d ${localstatedir}/log/${BPN} 0750 squid squid -" >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
- fi
-
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 0644 ${WORKDIR}/volatiles.03_squid ${D}${sysconfdir}/default/volatiles/03_squid
-
- rmdir "${D}${localstatedir}/run/${BPN}"
- rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/run"
-
- rmdir "${D}${localstatedir}/log/${BPN}"
- rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/log"
-}
-
-FILES:${PN} += "${libdir} ${datadir}/errors ${datadir}/icons"
-FILES:${PN}-dbg += "/usr/src/debug"
-FILES:${PN}-doc += "${datadir}/*.txt"
-FILES:${PN}-ptest += "${sysconfdir}/squid/squid.conf.default"
-
-RDEPENDS:${PN} += "perl"
-RDEPENDS:${PN}-ptest += "perl make"
diff --git a/meta-networking/recipes-daemons/squid/squid_6.8.bb b/meta-networking/recipes-daemons/squid/squid_6.8.bb
new file mode 100644
index 0000000000..c8370eaba7
--- /dev/null
+++ b/meta-networking/recipes-daemons/squid/squid_6.8.bb
@@ -0,0 +1,143 @@
+SUMMARY = "A fully-featured http proxy and web-cache daemon for Linux"
+DESCRIPTION = "A fully-featured http proxy and web-cache daemon for Linux. \
+Squid offers a rich access control, authorization and logging environment to \
+develop web proxy and content serving applications. \
+Squid offers a rich set of traffic optimization options, most of which are \
+enabled by default for simpler installation and high performance. \
+"
+HOMEPAGE = "http://www.squid-cache.org"
+SECTION = "web"
+LICENSE = "GPL-2.0-or-later"
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 1)}"
+MIN_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${BPN}-${PV}.tar.xz \
+ file://Set-up-for-cross-compilation.patch \
+ file://Skip-AC_RUN_IFELSE-tests.patch \
+ file://squid-use-serial-tests-config-needed-by-ptest.patch \
+ file://run-ptest \
+ file://volatiles.03_squid \
+ file://0002-squid-make-squid-conf-tests-run-on-target-device.patch \
+ file://squid.nm \
+ "
+
+SRC_URI[sha256sum] = "11cc5650b51809d99483ccfae24744a2e51cd16199f5ff0c917e84fce695870f"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://errors/COPYRIGHT;md5=d324bc1f9447d1d1588d75b22a678dc4 \
+ "
+DEPENDS = "libtool"
+
+inherit autotools pkgconfig useradd ptest perlnative systemd
+
+LDFLAGS:append:mipsarch = " -latomic"
+LDFLAGS:append:powerpc = " -latomic"
+LDFLAGS:append:riscv64 = " -latomic"
+LDFLAGS:append:riscv32 = " -latomic"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --home-dir /var/run/squid --shell /bin/false --user-group squid"
+
+PACKAGECONFIG ??= "auth url-rewrite-helpers \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+"
+
+PACKAGECONFIG[libnetfilter-conntrack] = "--with-netfilter-conntrack=${includedir}, --without-netfilter-conntrack, libnetfilter-conntrack"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[werror] = "--enable-strict-error-checking,--disable-strict-error-checking,"
+PACKAGECONFIG[esi] = "--enable-esi,--disable-esi,expat libxml2"
+PACKAGECONFIG[ssl] = "--with-openssl=yes,--with-openssl=no,openssl"
+PACKAGECONFIG[auth] = "--enable-auth-basic='${BASIC_AUTH}',--disable-auth --disable-auth-basic,krb5 openldap db cyrus-sasl"
+PACKAGECONFIG[url-rewrite-helpers] = "--enable-url-rewrite-helpers,--disable-url-rewrite-helpers,"
+PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd"
+
+PACKAGES =+ " \
+ ${PN}-conf \
+ ${PN}-networkmanager \
+"
+
+BASIC_AUTH = "DB SASL LDAP"
+
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+BASIC_AUTH += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'PAM', '', d)}"
+
+EXTRA_OECONF += "--with-default-user=squid \
+ --sysconfdir=${sysconfdir}/${BPN} \
+ --with-logdir=${localstatedir}/log/${BPN} \
+ 'PERL=${USRBINPATH}/env perl'"
+
+export BUILDCXXFLAGS="${BUILD_CXXFLAGS}"
+
+TESTDIR = "test-suite"
+
+do_configure:prepend() {
+ export SYSROOT=$PKG_CONFIG_SYSROOT_DIR
+}
+
+do_configure:append() {
+ sed -i -e 's|${WORKDIR}||g' ${B}/include/autoconf.h
+}
+
+do_compile_ptest() {
+ oe_runmake -C ${TESTDIR} buildtest-TESTS
+}
+
+do_install_ptest() {
+ cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH}
+ cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}
+
+ # Install default config
+ install -d ${D}${PTEST_PATH}/src
+ install -m 0644 ${B}/src/squid.conf.default ${D}${PTEST_PATH}/src
+
+ # autoconf.h is needed during squid-conf-tests
+ install -d ${D}${PTEST_PATH}/include
+ install -m 0644 ${B}/include/autoconf.h ${D}${PTEST_PATH}/include
+
+ # do NOT need to rebuild Makefile itself
+ sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+
+ # Ensure the path for command true is correct
+ sed -i 's:^TRUE = .*$:TRUE = /bin/true:' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+}
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ # Install service unit file
+ install -d ${D}/${systemd_unitdir}/system
+ install ${S}/tools/systemd/squid.service ${D}/${systemd_unitdir}/system
+ sed -i 's:/var/run/:/run/:g' ${D}/${systemd_unitdir}/system/squid.service
+
+ # Configure tmpfiles.d
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d ${localstatedir}/run/${BPN} 0755 squid squid -" >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
+ echo "d ${localstatedir}/log/${BPN} 0750 squid squid -" >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
+ fi
+
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/volatiles.03_squid ${D}${sysconfdir}/default/volatiles/03_squid
+
+ rmdir "${D}${localstatedir}/run/${BPN}"
+ rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/run"
+
+ rmdir "${D}${localstatedir}/log/${BPN}"
+ rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/log"
+
+ # Install NetworkManager dispatcher reload hooks
+ install -d ${D}${libdir}/NetworkManager/dispatcher.d
+ install -m 0755 ${WORKDIR}/squid.nm ${D}${libdir}/NetworkManager/dispatcher.d/20-squid
+}
+
+SYSTEMD_AUTO_ENABLE = "disable"
+SYSTEMD_SERVICE:${PN} = "squid.service"
+
+FILES:${PN} += "${libdir} ${datadir}/errors ${datadir}/icons"
+FILES:${PN}-dbg += "/usr/src/debug"
+FILES:${PN}-doc += "${datadir}/*.txt"
+FILES:${PN}-conf += "${sysconfdir}/squid"
+FILES:${PN}-networkmanager = "${libdir}/NetworkManager/dispatcher.d"
+
+RDEPENDS:${PN} += "perl ${PN}-conf"
+RDEPENDS:${PN}-ptest += "perl make bash"
diff --git a/meta-networking/recipes-daemons/tftp-hpa/files/0001-__progname-is-provided-by-libc.patch b/meta-networking/recipes-daemons/tftp-hpa/files/0001-__progname-is-provided-by-libc.patch
index cead977e28..66c15b5f8b 100644
--- a/meta-networking/recipes-daemons/tftp-hpa/files/0001-__progname-is-provided-by-libc.patch
+++ b/meta-networking/recipes-daemons/tftp-hpa/files/0001-__progname-is-provided-by-libc.patch
@@ -12,6 +12,8 @@ global symbols and work around Debian bug #519006 (Closes: #564052).
Signed-off-by: Ron Lee <ron@debian.org>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
---
+Upstream-Status: Pending
+
tftpd/tftpd.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/meta-networking/recipes-daemons/tftp-hpa/files/add-error-check-for-disk-filled-up.patch b/meta-networking/recipes-daemons/tftp-hpa/files/add-error-check-for-disk-filled-up.patch
index d01c20d385..e4acd099ab 100644
--- a/meta-networking/recipes-daemons/tftp-hpa/files/add-error-check-for-disk-filled-up.patch
+++ b/meta-networking/recipes-daemons/tftp-hpa/files/add-error-check-for-disk-filled-up.patch
@@ -3,7 +3,7 @@ From: "Roy.Li" <rongqing.li@windriver.com>
Date: Thu, 22 Aug 2013 08:56:09 +0800
Subject: [PATCH] tftp-hpa: add error check for disk filled up
-Upstream-status: Pending [Sent to http://www.syslinux.org/archives/2013-August/020765.html]
+Upstream-Status: Pending [Sent to http://www.syslinux.org/archives/2013-August/020765.html]
Add error check when the write-buffer is finally flushed to the file,
the caller can detect if the disk filled up (or had an i/o error) and
diff --git a/meta-networking/recipes-daemons/tftp-hpa/files/fix-writing-emtpy-file.patch b/meta-networking/recipes-daemons/tftp-hpa/files/fix-writing-emtpy-file.patch
index 452aa05f81..4f3dcd7767 100644
--- a/meta-networking/recipes-daemons/tftp-hpa/files/fix-writing-emtpy-file.patch
+++ b/meta-networking/recipes-daemons/tftp-hpa/files/fix-writing-emtpy-file.patch
@@ -1,6 +1,6 @@
[PATCH] fix the empty file writting
-Upstream-Status: pending
+Upstream-Status: Pending
With the feature that checking the disk filled up, the return
value of function write_behind was checked and used to detect
diff --git a/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch b/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch
index 3e220ec385..e994f28402 100644
--- a/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch
+++ b/meta-networking/recipes-daemons/tftp-hpa/files/tftp-hpa-bug-fix-on-separated-CR-and-LF.patch
@@ -7,7 +7,7 @@ In ascii mode, if the CR and LF was separated into different transfer
blocks, LF will be just dropped instead of replacing the previous CR.
Add a checking on the first character to fix it.
-Upstream-Status: pending
+Upstream-Status: Pending
Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com>
---
diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch
index d81c94a4aa..6c68989d3b 100644
--- a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch
+++ b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] sysdeputil.c: Fix with musl which does not have utmpx
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
sysdeputil.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.5.bb b/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.5.bb
index cce3e66adc..0ae52c8ddc 100644
--- a/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.5.bb
+++ b/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.5.bb
@@ -45,7 +45,7 @@ inherit update-rc.d useradd systemd
CONFFILES:${PN} = "${sysconfdir}/vsftpd.conf"
LDFLAGS:append =" -lcrypt -lcap"
-CFLAGS:append:libc-musl = " -D_GNU_SOURCE -include fcntl.h"
+CFLAGS:append:libc-musl = " -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -include fcntl.h"
EXTRA_OEMAKE = "-e MAKEFLAGS="
do_configure() {
diff --git a/meta-networking/recipes-devtools/libcoap/libcoap/CVE-2024-0962.patch b/meta-networking/recipes-devtools/libcoap/libcoap/CVE-2024-0962.patch
new file mode 100644
index 0000000000..add52483b7
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap/CVE-2024-0962.patch
@@ -0,0 +1,45 @@
+From bf6a303883bde40cf96b960c8574cddd89e71701 Mon Sep 17 00:00:00 2001
+From: Jon Shallow <supjps-libcoap@jpshallow.com>
+Date: Thu, 25 Jan 2024 18:03:17 +0000
+Subject: [PATCH] coap_oscore.c: Fix parsing OSCORE configuration information
+
+A vulnerability was found in obgm libcoap 4.3.4. It has been rated as critical.
+Affected by this issue is the function get_split_entry of the file src/coap_oscore.c of the component Configuration File Handler.
+The manipulation leads to stack-based buffer overflow.
+
+CVE: CVE-2024-0962
+
+Upstream-Status: Backport [https://github.com/obgm/libcoap/pull/1311]
+
+Signed-off-by: alperak <alperyasinak1@gmail.com>
+---
+ src/coap_oscore.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/coap_oscore.c b/src/coap_oscore.c
+index 83f785c92..e0fb22947 100644
+--- a/src/coap_oscore.c
++++ b/src/coap_oscore.c
+@@ -1678,11 +1678,12 @@ get_split_entry(const char **start,
+ oscore_value_t *value) {
+ const char *begin = *start;
+ const char *end;
++ const char *kend;
+ const char *split;
+ size_t i;
+
+ retry:
+- end = memchr(begin, '\n', size);
++ kend = end = memchr(begin, '\n', size);
+ if (end == NULL)
+ return 0;
+
+@@ -1693,7 +1694,7 @@ get_split_entry(const char **start,
+
+ if (begin[0] == '#' || (end - begin) == 0) {
+ /* Skip comment / blank line */
+- size -= end - begin + 1;
++ size -= kend - begin + 1;
+ begin = *start;
+ goto retry;
+ }
diff --git a/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb b/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb
deleted file mode 100644
index 0fc342560a..0000000000
--- a/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "A C implementation of the Constrained Application Protocol"
-DESCRIPTION = "libcoap implements a lightweight application-protocol for \
-devices that are constrained their resources such as computing power, \
-RF range, memory, bandwith, or network packet sizes."
-HOMEPAGE ="https://libcoap.net/"
-
-LICENSE = "BSD-2-Clause & BSD-1-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0fbe4435d52b2d27a16f980ffc8ffc80"
-
-SRC_URI = "git://github.com/obgm/libcoap.git;branch=main;protocol=https \
- file://run-ptest \
- "
-SRCREV = "02b76470ab9168947152c78ad50835bf043d7c84"
-
-S = "${WORKDIR}/git"
-
-inherit autotools manpages pkgconfig ptest
-
-PACKAGECONFIG ?= "\
- async openssl tcp \
- ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
-"
-PACKAGECONFIG[async] = "--enable-async,--disable-async"
-PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls,,,openssl mbedtls"
-PACKAGECONFIG[manpages] = "--enable-documentation --enable-doxygen --enable-manpages,--disable-documentation,asciidoc-native doxygen-native graphviz-native"
-PACKAGECONFIG[mbedtls] = "--with-mbedtls,--without-mbedtls,mbedtls,,,gnutls openssl"
-PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,,,gnutls mbedtls"
-PACKAGECONFIG[small-stack] = "--enable-small-stack,--disable-small-stack"
-PACKAGECONFIG[tcp] = "--enable-tcp,--disable-tcp"
-PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,cunit"
-
-EXTRA_OECONF = "\
- --with-epoll --enable-add-default-names \
- --without-tinydtls --without-submodule-tinydtls \
- ${@bb.utils.contains_any('PACKAGECONFIG', 'gnutls openssl mbedtls', '--enable-dtls', '--disable-dtls', d)} \
-"
-
-python () {
- if d.getVar('PTEST_ENABLED') == "1":
- d.setVar('DISABLE_STATIC', '')
-}
-
-export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/catalog"
-
-do_install_ptest () {
- install -d ${D}${PTEST_PATH}
- install -m 0755 ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest
- install -m 0755 ${B}/tests/testdriver ${D}${PTEST_PATH}/testdriver
-}
-
-PACKAGE_BEFORE_PN += "\
- ${PN}-bin \
-"
-
-FILES:${PN}-bin = "${bindir}"
-FILES:${PN}-dev += "${datadir}/${BPN}/examples"
diff --git a/meta-networking/recipes-devtools/libcoap/libcoap_4.3.4.bb b/meta-networking/recipes-devtools/libcoap/libcoap_4.3.4.bb
new file mode 100644
index 0000000000..98f0f02fb8
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap_4.3.4.bb
@@ -0,0 +1,63 @@
+SUMMARY = "A C implementation of the Constrained Application Protocol"
+DESCRIPTION = "libcoap implements a lightweight application-protocol for \
+devices that are constrained their resources such as computing power, \
+RF range, memory, bandwith, or network packet sizes."
+HOMEPAGE ="https://libcoap.net/"
+
+LICENSE = "BSD-2-Clause & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1978dbc41673ab1c20e64b287c8317bc"
+
+SRC_URI = "git://github.com/obgm/libcoap.git;branch=main;protocol=https \
+ file://run-ptest \
+ file://CVE-2024-0962.patch \
+ "
+SRCREV = "5fd2f89ef068214130e5d60b7087ef48711fa615"
+
+S = "${WORKDIR}/git"
+
+inherit autotools manpages pkgconfig ptest
+
+DEPENDS += "ctags-native"
+
+PACKAGECONFIG ?= "\
+ async openssl tcp \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
+"
+PACKAGECONFIG[async] = "--enable-async,--disable-async"
+PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls,,,openssl mbedtls"
+PACKAGECONFIG[manpages] = "--enable-documentation --enable-doxygen --enable-manpages,--disable-documentation,asciidoc-native doxygen-native graphviz-native"
+PACKAGECONFIG[mbedtls] = "--with-mbedtls,--without-mbedtls,mbedtls,,,gnutls openssl"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,,,gnutls mbedtls"
+PACKAGECONFIG[small-stack] = "--enable-small-stack,--disable-small-stack"
+PACKAGECONFIG[tcp] = "--enable-tcp,--disable-tcp"
+PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,cunit"
+
+EXTRA_OECONF = "\
+ --with-epoll --enable-add-default-names \
+ --without-tinydtls --without-submodule-tinydtls \
+ ${@bb.utils.contains_any('PACKAGECONFIG', 'gnutls openssl mbedtls', '--enable-dtls', '--disable-dtls', d)} \
+"
+
+python () {
+ if d.getVar('PTEST_ENABLED') == "1":
+ d.setVar('DISABLE_STATIC', '')
+}
+
+export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/catalog"
+
+do_compile:prepend() {
+ oe_runmake update-map-file
+}
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}
+ install -m 0755 ${WORKDIR}/run-ptest ${D}${PTEST_PATH}/run-ptest
+ install -m 0755 ${B}/tests/testdriver ${D}${PTEST_PATH}/testdriver
+}
+
+PACKAGE_BEFORE_PN += "\
+ ${PN}-bin \
+"
+
+FILES:${PN}-bin = "${bindir}"
+FILES:${PN}-dev += "${datadir}/${BPN}/examples"
diff --git a/meta-networking/recipes-devtools/python/python3-scapy/run-ptest b/meta-networking/recipes-devtools/python/python3-scapy/run-ptest
index 797d8ecf78..417e21053c 100644
--- a/meta-networking/recipes-devtools/python/python3-scapy/run-ptest
+++ b/meta-networking/recipes-devtools/python/python3-scapy/run-ptest
@@ -1,4 +1,4 @@
#!/bin/sh
-UTscapy3 -t regression.uts -f text -l -C \
+python3 UTscapy.py -t regression.uts -f text -l -C \
-o @PTEST_PATH@/scapy_ptest_$(date +%Y%m%d-%H%M%S).log \
2>&1 | sed -e 's/^passed None/PASS:/' -e 's/^failed None/FAIL:/'
diff --git a/meta-networking/recipes-devtools/python/python3-scapy_2.4.5.bb b/meta-networking/recipes-devtools/python/python3-scapy_2.4.5.bb
deleted file mode 100644
index 0f66dfd784..0000000000
--- a/meta-networking/recipes-devtools/python/python3-scapy_2.4.5.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Network scanning and manipulation tool"
-DESCRIPTION = "Scapy is a powerful interactive packet manipulation program. \
-It is able to forge or decode packets of a wide number of protocols, send \
-them on the wire, capture them, match requests and replies, and much more. \
-It can easily handle most classical tasks like scanning, tracerouting, probing, \
-unit tests, attacks or network discovery (it can replace hping, 85% of nmap, \
-arpspoof, arp-sk, arping, tcpdump, tethereal, p0f, etc.). It also performs very \
-well at a lot of other specific tasks that most other tools can't handle, like \
-sending invalid frames, injecting your own 802.11 frames, combining technics \
-(VLAN hopping+ARP cache poisoning, VOIP decoding on WEP encrypted channel, ...), etc."
-SECTION = "security"
-LICENSE = "GPL-2.0-only"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-# If you want ptest support, use the git repo
-# UTscapy does not exist in the pypi pkg
-#
-SRCREV = "32cd7eb0f620d9adf171c48d55514e8326a538d7"
-SRC_URI = "git://github.com/secdev/scapy.git;branch=master;protocol=https \
- file://run-ptest"
-
-S = "${WORKDIR}/git"
-
-UPSTREAM_CHECK_COMMITS = "1"
-
-inherit setuptools3 ptest
-
-do_install:append() {
- mv ${D}${bindir}/scapy ${D}${bindir}/scapy3
- mv ${D}${bindir}/UTscapy ${D}${bindir}/UTscapy3
-}
-
-do_install_ptest() {
- install -m 0644 ${S}/test/regression.uts ${D}${PTEST_PATH}
- sed -i 's,@PTEST_PATH@,${PTEST_PATH},' ${D}${PTEST_PATH}/run-ptest
-}
-
-RDEPENDS:${PN} = "tcpdump ${PYTHON_PN}-compression ${PYTHON_PN}-cryptography ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-netserver ${PYTHON_PN}-pydoc ${PYTHON_PN}-pkgutil ${PYTHON_PN}-shell \
- ${PYTHON_PN}-threading ${PYTHON_PN}-numbers"
diff --git a/meta-networking/recipes-devtools/python/python3-scapy_2.5.0.bb b/meta-networking/recipes-devtools/python/python3-scapy_2.5.0.bb
new file mode 100644
index 0000000000..d57cb977e4
--- /dev/null
+++ b/meta-networking/recipes-devtools/python/python3-scapy_2.5.0.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Network scanning and manipulation tool"
+DESCRIPTION = "Scapy is a powerful interactive packet manipulation program. \
+It is able to forge or decode packets of a wide number of protocols, send \
+them on the wire, capture them, match requests and replies, and much more. \
+It can easily handle most classical tasks like scanning, tracerouting, probing, \
+unit tests, attacks or network discovery (it can replace hping, 85% of nmap, \
+arpspoof, arp-sk, arping, tcpdump, tethereal, p0f, etc.). It also performs very \
+well at a lot of other specific tasks that most other tools can't handle, like \
+sending invalid frames, injecting your own 802.11 frames, combining technics \
+(VLAN hopping+ARP cache poisoning, VOIP decoding on WEP encrypted channel, ...), etc."
+SECTION = "security"
+LICENSE = "GPL-2.0-only"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+# If you want ptest support, use the git repo
+# UTscapy does not exist in the pypi pkg
+#
+SRCREV = "0474c37bf1d147c969173d52ab3ac76d2404d981"
+SRC_URI = "git://github.com/secdev/scapy.git;branch=master;protocol=https \
+ file://run-ptest"
+
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_COMMITS = "1"
+
+inherit setuptools3 ptest
+
+do_install:append() {
+ mv ${D}${bindir}/scapy ${D}${bindir}/scapy3
+}
+
+do_install_ptest() {
+ install -m 0644 ${S}/scapy/tools/UTscapy.py ${D}${PTEST_PATH}
+ install -m 0644 ${S}/test/regression.uts ${D}${PTEST_PATH}
+ sed -i 's,@PTEST_PATH@,${PTEST_PATH},' ${D}${PTEST_PATH}/run-ptest
+}
+
+RDEPENDS:${PN} = "tcpdump python3-compression python3-cryptography python3-netclient \
+ python3-netserver python3-pydoc python3-pkgutil python3-shell \
+ python3-threading python3-numbers python3-fcntl python3-logging \
+ python3-difflib"
+RDEPENDS:${PN}-ptest += "python3-json python3-mock python3-multiprocessing \
+ iproute2 tshark"
diff --git a/meta-networking/recipes-extended/dlm/dlm/0001-Disable-annobin-plugin.patch b/meta-networking/recipes-extended/dlm/dlm/0001-Disable-annobin-plugin.patch
new file mode 100644
index 0000000000..6302829267
--- /dev/null
+++ b/meta-networking/recipes-extended/dlm/dlm/0001-Disable-annobin-plugin.patch
@@ -0,0 +1,31 @@
+From 5a0799d0bacc0cf93e15febdac7d8c50b21e7234 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 15 Jul 2023 13:13:12 -0700
+Subject: [PATCH] Disable annobin plugin
+
+OE gcc does not build this plugin, moreover there are non gcc compilers
+which can be used with OE as well e.g. clang which might not have it
+either
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ dlm_controld/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dlm_controld/Makefile b/dlm_controld/Makefile
+index 8802d88..0380ec9 100644
+--- a/dlm_controld/Makefile
++++ b/dlm_controld/Makefile
+@@ -47,7 +47,7 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
+
+ BIN_CFLAGS += $(CFLAGS) -fPIE -DPIE
+ BIN_CFLAGS += -I../include -I../libdlm
+-LIB_CFLAGS += $(CFLAGS) -fPIC -fplugin=annobin
++LIB_CFLAGS += $(CFLAGS) -fPIC
+
+ BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,relro -Wl,-z,now -pie
+ BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum -luuid
+--
+2.41.0
+
diff --git a/meta-networking/recipes-extended/dlm/dlm/0001-Remove-fcf-protection-full.patch b/meta-networking/recipes-extended/dlm/dlm/0001-Remove-fcf-protection-full.patch
new file mode 100644
index 0000000000..6290aa4c7a
--- /dev/null
+++ b/meta-networking/recipes-extended/dlm/dlm/0001-Remove-fcf-protection-full.patch
@@ -0,0 +1,64 @@
+From e4ae70ae71f88d48cf1ab63810c9f7b4177af3a5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 15 Jul 2023 19:05:54 -0700
+Subject: [PATCH] Remove -fcf-protection=full
+
+This option is not available on all architectures e.g. RISC-V
+Fixes
+| cc1: error: '-fcf-protection=full' is not supported for this target
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ dlm_controld/Makefile | 1 -
+ dlm_tool/Makefile | 1 -
+ fence/Makefile | 1 -
+ libdlm/Makefile | 4 ++--
+ 4 files changed, 2 insertions(+), 5 deletions(-)
+
+--- a/dlm_controld/Makefile
++++ b/dlm_controld/Makefile
+@@ -43,7 +43,7 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
+ -Wno-sign-compare -Wno-unused-parameter -Wp,-D_FORTIFY_SOURCE=2 \
+ -fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option \
+ -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong \
+- -fstack-clash-protection -fcf-protection=full
++ -fstack-clash-protection
+
+ BIN_CFLAGS += $(CFLAGS) -fPIE -DPIE
+ BIN_CFLAGS += -I../include -I../libdlm
+--- a/dlm_tool/Makefile
++++ b/dlm_tool/Makefile
+@@ -15,7 +15,7 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
+ -Wno-sign-compare -Wno-unused-parameter -Wp,-D_FORTIFY_SOURCE=2 \
+ -fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option \
+ -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong \
+- -fstack-clash-protection -fcf-protection=full
++ -fstack-clash-protection
+
+ CFLAGS += -fPIE -DPIE
+ CFLAGS += -I../include -I../libdlm -I../dlm_controld
+--- a/fence/Makefile
++++ b/fence/Makefile
+@@ -15,7 +15,7 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
+ -Wno-sign-compare -Wno-unused-parameter -Wp,-D_FORTIFY_SOURCE=2 \
+ -fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option \
+ -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong \
+- -fstack-clash-protection -fcf-protection=full
++ -fstack-clash-protection
+
+ CFLAGS += -fPIE -DPIE
+ CFLAGS += -I../include
+--- a/libdlm/Makefile
++++ b/libdlm/Makefile
+@@ -80,8 +80,8 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
+ -fdiagnostics-show-option \
+ -fPIC
+
+-LIB_CFLAGS += $(CFLAGS) -D_REENTRANT -fcf-protection=full
+-LLT_CFLAGS += $(CFLAGS) -fcf-protection=full
++LIB_CFLAGS += $(CFLAGS) -D_REENTRANT
++LLT_CFLAGS += $(CFLAGS)
+
+ LIB_LDFLAGS += $(LDFLAGS) -lpthread -Wl,-z,now
+ LLT_LDFLAGS += $(LDFLAGS) -Wl,-z,now
diff --git a/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch b/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch
deleted file mode 100644
index 3d1551574e..0000000000
--- a/meta-networking/recipes-extended/dlm/dlm/0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From da08f5ec5e553bd43f92a0b0f7476179b0b74502 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Wed, 26 Jun 2019 11:49:33 +0800
-Subject: [PATCH] dlm: fix compile error since xml2-config should not be used
-
-xml2-config is disabled, so change Makefile to use pkgconfig
-to find libxml2.
-
-Upstream-Status: Inappropriate [oe-specific]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-
----
- fence/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/fence/Makefile b/fence/Makefile
-index 2b080468..ff2eda3f 100644
---- a/fence/Makefile
-+++ b/fence/Makefile
-@@ -18,12 +18,12 @@ CFLAGS += -D_GNU_SOURCE -O2 -ggdb \
- -fstack-clash-protection -Wl,-z,now
-
- CFLAGS += -fPIE -DPIE
--CFLAGS += `xml2-config --cflags`
-+CFLAGS += `pkg-config libxml-2.0 --cflags`
- CFLAGS += -I../include
- CFLAGS += $(shell pkg-config --cflags pacemaker-fencing)
-
- LDFLAGS += -Wl,-z,relro -Wl,-z,defs -pie
--LDFLAGS += `xml2-config --libs`
-+LDFLAGS += `pkg-config libxml-2.0 --libs`
- LDFLAGS += -ldl
-
- all: $(BIN_TARGET)
diff --git a/meta-networking/recipes-extended/dlm/dlm/0001-dlm_controld-remove-unnecessary-header-include.patch b/meta-networking/recipes-extended/dlm/dlm/0001-dlm_controld-remove-unnecessary-header-include.patch
new file mode 100644
index 0000000000..55efcea184
--- /dev/null
+++ b/meta-networking/recipes-extended/dlm/dlm/0001-dlm_controld-remove-unnecessary-header-include.patch
@@ -0,0 +1,35 @@
+From 4c40289eb9e47cfd272a8cc402fd2ddb29e2a3dc Mon Sep 17 00:00:00 2001
+From: Alexander Aring <aahringo@redhat.com>
+Date: Wed, 24 May 2023 13:50:59 +0000
+Subject: [PATCH] dlm_controld: remove unnecessary header include
+
+The timewarn netlink functionality got dropped and will be removed by
+kernel v6.4. The user space part was already dropped by commit 34ea31e7
+("controld: remove timewarn handling"). This is just a left over of this
+commit. Recent builds fails now because the UAPI header in the Linux
+kernel was removed. This means older dlm sources cannot be build with
+newer kernel-headers, however it is not recommended to use older dlm
+sources and all existing users should upgrade anyway.
+
+Upstream-Status: Backport [https://pagure.io/dlm/c/ddbba6608896f81bfce8f8edf3d0f507714cfc43?branch=main]
+Reported-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ dlm_controld/main.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/dlm_controld/main.c b/dlm_controld/main.c
+index 7cf6348..e70e96a 100644
+--- a/dlm_controld/main.c
++++ b/dlm_controld/main.c
+@@ -12,7 +12,6 @@
+ #include <pthread.h>
+ #include <linux/netlink.h>
+ #include <linux/genetlink.h>
+-#include <linux/dlm_netlink.h>
+ #include <uuid/uuid.h>
+
+ #ifdef USE_SD_NOTIFY
+--
+2.41.0
+
diff --git a/meta-networking/recipes-extended/dlm/dlm/0004-include-string.h-for-memset-prototype.patch b/meta-networking/recipes-extended/dlm/dlm/0004-include-string.h-for-memset-prototype.patch
deleted file mode 100644
index 257c5d02ff..0000000000
--- a/meta-networking/recipes-extended/dlm/dlm/0004-include-string.h-for-memset-prototype.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 9652e6b3c43b4c051f2ff0e000d7ebf5fbab418e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 29 Aug 2022 10:54:51 -0700
-Subject: [PATCH] include string.h for memset prototype
-
-Upstream-Status: Submitted [https://pagure.io/dlm/pull-request/3]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- dlm_controld/lib.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/dlm_controld/lib.c b/dlm_controld/lib.c
-index 8cbdd27f..a7502fcd 100644
---- a/dlm_controld/lib.c
-+++ b/dlm_controld/lib.c
-@@ -10,6 +10,7 @@
- #include <stdlib.h>
- #include <unistd.h>
- #include <stdint.h>
-+#include <string.h>
- #include <errno.h>
- #include <time.h>
- #include <sys/types.h>
diff --git a/meta-networking/recipes-extended/dlm/dlm_4.1.1.bb b/meta-networking/recipes-extended/dlm/dlm_4.1.1.bb
deleted file mode 100644
index bb33890ec9..0000000000
--- a/meta-networking/recipes-extended/dlm/dlm_4.1.1.bb
+++ /dev/null
@@ -1,60 +0,0 @@
-DESCRIPTION = "dlm control daemon and tool"
-
-SECTION = "utils"
-HOMEPAGE = "https://fedorahosted.org/cluster/wiki/HomePage"
-
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-SRC_URI = "https://pagure.io/dlm/archive/dlm-${PV}/dlm-dlm-${PV}.tar.gz \
- file://0001-dlm-fix-compile-error-since-xml2-config-should-not-b.patch \
- file://0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch \
- file://0001-make-Replace-cp-a-with-mode-preserving-options.patch \
- file://0004-include-string.h-for-memset-prototype.patch \
- "
-
-SRC_URI[sha256sum] = "f12c0056b9196dfcecbec2fa8930feb87c605a86ef0f3d7bd6fb0b77cd7f45ca"
-
-UPSTREAM_CHECK_URI = "https://pagure.io/dlm/releases"
-UPSTREAM_CHECK_REGEX = "dlm-(?P<pver>\d+(\.\d+)+)"
-
-LICENSE = "LGPL-2.0-or-later & GPL-2.0-only & GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://README.license;md5=8f0bbcdd678df1bce9863492b6c8832d"
-
-S = "${WORKDIR}/dlm-dlm-${PV}"
-
-DEPENDS += "corosync"
-
-inherit pkgconfig systemd features_check
-
-PACKAGECONFIG ??= ""
-
-PACKAGECONFIG[pacemaker] = ",,pacemaker"
-
-SYSTEMD_SERVICE:${PN} = "dlm.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-
-export EXTRA_OEMAKE = ""
-
-DONTBUILD = "${@bb.utils.contains('PACKAGECONFIG', 'pacemaker', '', 'fence', d)}"
-
-do_compile:prepend:toolchain-clang() {
- sed -i -e "s/-fstack-clash-protection//g" ${S}/*/Makefile
-}
-
-do_compile() {
- sed -i "s/libsystemd-daemon/libsystemd/g" ${S}/dlm_controld/Makefile
- sed -i -e "s/ ${DONTBUILD}//g" ${S}/Makefile
- oe_runmake 'CC=${CC}'
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D} LIBDIR=${libdir}
- install -Dm 0644 ${S}/init/dlm.sysconfig ${D}${sysconfdir}/sysconfig/dlm
- install -Dm 0644 ${S}/init/dlm.init ${D}${sysconfdir}/init.d/dlm
-
- # install systemd unit files
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -Dm 0644 ${S}/init/dlm.service ${D}${systemd_unitdir}/system/dlm.service
- fi
-}
-
diff --git a/meta-networking/recipes-extended/dlm/dlm_4.2.0.bb b/meta-networking/recipes-extended/dlm/dlm_4.2.0.bb
new file mode 100644
index 0000000000..ee006efe28
--- /dev/null
+++ b/meta-networking/recipes-extended/dlm/dlm_4.2.0.bb
@@ -0,0 +1,65 @@
+DESCRIPTION = "dlm control daemon and tool"
+
+SECTION = "utils"
+HOMEPAGE = "https://fedorahosted.org/cluster/wiki/HomePage"
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SRC_URI = "https://pagure.io/dlm/archive/dlm-${PV}/dlm-dlm-${PV}.tar.gz \
+ file://0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch \
+ file://0001-make-Replace-cp-a-with-mode-preserving-options.patch \
+ file://0001-dlm_controld-remove-unnecessary-header-include.patch \
+ file://0001-Disable-annobin-plugin.patch \
+ file://0001-Remove-fcf-protection-full.patch \
+ "
+
+SRC_URI[sha256sum] = "90237e18af7422ac15fc756899b3bb6932597b13342296de8e0e120e6d8729ab"
+
+UPSTREAM_CHECK_URI = "https://pagure.io/dlm/releases"
+UPSTREAM_CHECK_REGEX = "dlm-(?P<pver>\d+(\.\d+)+)"
+
+LICENSE = "LGPL-2.0-or-later & GPL-2.0-only & GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://README.license;md5=8f0bbcdd678df1bce9863492b6c8832d"
+
+S = "${WORKDIR}/dlm-dlm-${PV}"
+
+DEPENDS += "corosync"
+
+inherit pkgconfig systemd features_check
+
+PACKAGECONFIG ??= ""
+
+PACKAGECONFIG[pacemaker] = ",,pacemaker"
+
+SYSTEMD_SERVICE:${PN} = "dlm.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+export EXTRA_OEMAKE = ""
+
+CFPROTECTION ?= "-fcf-protection=full"
+CFPROTECTION:riscv64 = ""
+CFPROTECTION:arm = ""
+CFPROTECTION:aarch64 = ""
+
+CFLAGS += "${CFPROTECTION}"
+
+PARALLEL_MAKE = ""
+
+DONTBUILD = "${@bb.utils.contains('PACKAGECONFIG', 'pacemaker', '', 'fence', d)}"
+
+do_compile() {
+ sed -i "s/libsystemd-daemon/libsystemd/g" ${S}/dlm_controld/Makefile
+ sed -i -e "s/ ${DONTBUILD}//g" ${S}/Makefile
+ oe_runmake 'CC=${CC}'
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} LIBDIR=${libdir}
+ install -Dm 0644 ${S}/init/dlm.sysconfig ${D}${sysconfdir}/sysconfig/dlm
+ install -Dm 0644 ${S}/init/dlm.init ${D}${sysconfdir}/init.d/dlm
+
+ # install systemd unit files
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -Dm 0644 ${S}/init/dlm.service ${D}${systemd_unitdir}/system/dlm.service
+ fi
+}
diff --git a/meta-networking/recipes-extended/kronosnet/kronosnet/0001-links.c-Fix-build-with-gcc-12.patch b/meta-networking/recipes-extended/kronosnet/kronosnet/0001-links.c-Fix-build-with-gcc-12.patch
index e59501cc49..d57d0e61b5 100644
--- a/meta-networking/recipes-extended/kronosnet/kronosnet/0001-links.c-Fix-build-with-gcc-12.patch
+++ b/meta-networking/recipes-extended/kronosnet/kronosnet/0001-links.c-Fix-build-with-gcc-12.patch
@@ -15,7 +15,7 @@ Fixes:
| | ^~~~
| cc1: all warnings being treated as errors
-Upstream-Status: Submitted[https://github.com/kronosnet/kronosnet/pull/382]
+Upstream-Status: Submitted [https://github.com/kronosnet/kronosnet/pull/382]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
diff --git a/meta-networking/recipes-extended/tgt/files/0001-usr-Makefile-WARNING-fix.patch b/meta-networking/recipes-extended/tgt/files/0001-usr-Makefile-WARNING-fix.patch
index 078ba9ef50..a3ea604086 100644
--- a/meta-networking/recipes-extended/tgt/files/0001-usr-Makefile-WARNING-fix.patch
+++ b/meta-networking/recipes-extended/tgt/files/0001-usr-Makefile-WARNING-fix.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] usr/Makefile: WARNING fix WARNING: QA Issue: tgt:
packages-split/tgt/usr/sbin/tgtd contains probably-redundant RPATH /usr/lib
[useless-rpaths]
-Upstream-Status: pending
+Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
diff --git a/meta-networking/recipes-extended/tgt/files/musl-__wordsize.patch b/meta-networking/recipes-extended/tgt/files/musl-__wordsize.patch
new file mode 100644
index 0000000000..ac758cc39d
--- /dev/null
+++ b/meta-networking/recipes-extended/tgt/files/musl-__wordsize.patch
@@ -0,0 +1,41 @@
+The definition of __WORDSIZE is found in <sys/reg.h>
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/usr/iscsi/iscsid.h
++++ b/usr/iscsi/iscsid.h
+@@ -22,6 +22,9 @@
+ #include <stdint.h>
+ #include <inttypes.h>
+ #include <netdb.h>
++#if !defined(__GLIBC__)
++#include <sys/reg.h>
++#endif
+
+ #include "transport.h"
+ #include "list.h"
+--- a/usr/tgtd.h
++++ b/usr/tgtd.h
+@@ -1,6 +1,9 @@
+ #ifndef __TARGET_DAEMON_H
+ #define __TARGET_DAEMON_H
+
++#if !defined(__GLIBC__)
++#include <sys/reg.h>
++#endif
+ #include "log.h"
+ #include "scsi_cmnd.h"
+ #include "tgtadm_error.h"
+--- a/usr/util.h
++++ b/usr/util.h
+@@ -19,6 +19,9 @@
+ #include <linux/fs.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#if !defined(__GLIBC__)
++#include <sys/reg.h>
++#endif
+
+ #include "be_byteshift.h"
+
diff --git a/meta-networking/recipes-extended/tgt/files/usr-Makefile-apply-LDFLAGS-to-all-executables.patch b/meta-networking/recipes-extended/tgt/files/usr-Makefile-apply-LDFLAGS-to-all-executables.patch
index d480ef786e..b6c674bd9d 100644
--- a/meta-networking/recipes-extended/tgt/files/usr-Makefile-apply-LDFLAGS-to-all-executables.patch
+++ b/meta-networking/recipes-extended/tgt/files/usr-Makefile-apply-LDFLAGS-to-all-executables.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] usr/Makefile: apply LDFLAGS to all executables
Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---
+Upstream-Status: Pending
+
usr/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-networking/recipes-extended/tgt/tgt_1.0.90.bb b/meta-networking/recipes-extended/tgt/tgt_1.0.90.bb
new file mode 100644
index 0000000000..35995f7876
--- /dev/null
+++ b/meta-networking/recipes-extended/tgt/tgt_1.0.90.bb
@@ -0,0 +1,93 @@
+DESCRIPTION = "Linux SCSI target framework (tgt)"
+HOMEPAGE = "http://stgt.sourceforge.net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://scripts/tgtd.spec;beginline=7;endline=7;md5=21c19ea7dad04648b9c2f791b6e29b4c"
+DEPENDS = "sg3-utils libaio"
+
+SRCREV = "df991fa788e22cd8b8e3013cfae306988c19c3d0"
+
+SRC_URI = "git://github.com/fujita/tgt.git;branch=master;protocol=https \
+ file://0001-Correct-the-path-of-header-files-check-in-Yocto-buil.patch \
+ file://0001-usr-Makefile-WARNING-fix.patch \
+ file://usr-Makefile-apply-LDFLAGS-to-all-executables.patch \
+ file://musl-__wordsize.patch \
+"
+SRC_URI += "file://tgtd.init \
+ file://tgtd.service \
+ file://tgtd \
+"
+
+S = "${WORKDIR}/git"
+
+CONFFILES:${PN} += "${sysconfdir}/tgt/targets.conf"
+
+inherit update-rc.d systemd
+
+SYSTEMD_SERVICE:${PN} = "tgtd.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
+
+CFLAGS += ' -I. -DUSE_SIGNALFD -DUSE_TIMERFD -D_GNU_SOURCE -DTGT_VERSION=\\"1.0.63\\" -DBSDIR=\\"${libdir}/backing-store\\"'
+
+CFLAGS:append:libc-musl = " -D_LARGEFILE64_SOURCE"
+#do_compile() {
+# oe_runmake SYSROOT="${STAGING_DIR_TARGET}" -e programs conf scripts
+#}
+EXTRA_OEMAKE = "-e programs conf scripts"
+
+do_install() {
+ oe_runmake -e DESTDIR="${D}" install-programs install-conf install-scripts
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/tgtd.init ${D}${sysconfdir}/init.d/tgtd
+ elif ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/tgtd.service ${D}${systemd_unitdir}/system/tgtd.service
+ install -d ${D}${sysconfdir}/sysconfig
+ install -m 0644 ${WORKDIR}/tgtd ${D}${sysconfdir}/sysconfig/tgtd
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/tgtd.service
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/tgtd.service
+ sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/tgtd.service
+ fi
+}
+
+FILES:${PN} += "${systemd_unitdir}/system/tgtd.service \
+ ${sysconfdir}/sysconfig/tgtd \
+"
+
+RDEPENDS:${PN} = " \
+ bash \
+ libaio \
+ libconfig-general-perl \
+ perl \
+ perl-module-english \
+ perl-module-tie-hash-namedcapture \
+ perl-module-xsloader \
+ perl-module-carp \
+ perl-module-exporter \
+ perl-module-errno \
+ perl-module-exporter-heavy \
+ perl-module-symbol \
+ perl-module-selectsaver \
+ perl-module-dynaloader \
+ perl-module-carp-heavy \
+ perl-module-filehandle \
+ perl-module-feature \
+ perl-module-overload \
+ perl-module-fcntl \
+ perl-module-io \
+ perl-module-io-file \
+ perl-module-io-handle \
+ perl-module-io-seekable \
+ perl-module-file-glob \
+ perl-module-base \
+ perl-module-encoding-warnings \
+ perl-module-file-spec-unix \
+ perl-module-file-spec \
+ perl-module-file-spec-functions \
+ perl-module-getopt-long \
+ perl-module-constant \
+ "
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "tgtd"
+
diff --git a/meta-networking/recipes-extended/tgt/tgt_git.bb b/meta-networking/recipes-extended/tgt/tgt_git.bb
deleted file mode 100644
index c74ebb2a6d..0000000000
--- a/meta-networking/recipes-extended/tgt/tgt_git.bb
+++ /dev/null
@@ -1,94 +0,0 @@
-DESCRIPTION = "Linux SCSI target framework (tgt)"
-HOMEPAGE = "http://stgt.sourceforge.net"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://scripts/tgtd.spec;beginline=7;endline=7;md5=21c19ea7dad04648b9c2f791b6e29b4c"
-DEPENDS = "sg3-utils libaio"
-
-SRCREV = "a6bd1f0578bf85788a1563cbfb42a75e500d5318"
-PV = "1.0.83"
-
-SRC_URI = "git://github.com/fujita/tgt.git;branch=master;protocol=https \
- file://0001-Correct-the-path-of-header-files-check-in-Yocto-buil.patch \
- file://0001-usr-Makefile-WARNING-fix.patch \
- file://usr-Makefile-apply-LDFLAGS-to-all-executables.patch \
-"
-SRC_URI += "file://tgtd.init \
- file://tgtd.service \
- file://tgtd \
-"
-
-S = "${WORKDIR}/git"
-
-COMPATIBLE_HOST:libc-musl = "null"
-
-CONFFILES:${PN} += "${sysconfdir}/tgt/targets.conf"
-
-inherit update-rc.d systemd
-
-SYSTEMD_SERVICE:${PN} = "tgtd.service"
-SYSTEMD_AUTO_ENABLE:${PN} = "disable"
-
-CFLAGS += ' -I. -DUSE_SIGNALFD -DUSE_TIMERFD -D_GNU_SOURCE -DTGT_VERSION=\\"1.0.63\\" -DBSDIR=\\"${libdir}/backing-store\\"'
-
-#do_compile() {
-# oe_runmake SYSROOT="${STAGING_DIR_TARGET}" -e programs conf scripts
-#}
-EXTRA_OEMAKE = "-e programs conf scripts"
-
-do_install() {
- oe_runmake -e DESTDIR="${D}" install-programs install-conf install-scripts
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/tgtd.init ${D}${sysconfdir}/init.d/tgtd
- elif ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/tgtd.service ${D}${systemd_unitdir}/system/tgtd.service
- install -d ${D}${sysconfdir}/sysconfig
- install -m 0644 ${WORKDIR}/tgtd ${D}${sysconfdir}/sysconfig/tgtd
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/tgtd.service
- sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/tgtd.service
- sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/tgtd.service
- fi
-}
-
-FILES:${PN} += "${systemd_unitdir}/system/tgtd.service \
- ${sysconfdir}/sysconfig/tgtd \
-"
-
-RDEPENDS:${PN} = " \
- bash \
- libaio \
- libconfig-general-perl \
- perl \
- perl-module-english \
- perl-module-tie-hash-namedcapture \
- perl-module-xsloader \
- perl-module-carp \
- perl-module-exporter \
- perl-module-errno \
- perl-module-exporter-heavy \
- perl-module-symbol \
- perl-module-selectsaver \
- perl-module-dynaloader \
- perl-module-carp-heavy \
- perl-module-filehandle \
- perl-module-feature \
- perl-module-overload \
- perl-module-fcntl \
- perl-module-io \
- perl-module-io-file \
- perl-module-io-handle \
- perl-module-io-seekable \
- perl-module-file-glob \
- perl-module-base \
- perl-module-encoding-warnings \
- perl-module-file-spec-unix \
- perl-module-file-spec \
- perl-module-file-spec-functions \
- perl-module-getopt-long \
- perl-module-constant \
- "
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME:${PN} = "tgtd"
-
diff --git a/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.6.bb b/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.6.bb
deleted file mode 100644
index 8f57e823b8..0000000000
--- a/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.6.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Connection tracking userspace tools for Linux"
-SECTION = "net"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-
-DEPENDS = "libnfnetlink libnetfilter-conntrack libnetfilter-cttimeout \
- libnetfilter-cthelper libnetfilter-queue bison-native libtirpc"
-
-EXTRA_OECONF += "LIBS=-ltirpc CPPFLAGS=-I${STAGING_INCDIR}/tirpc"
-
-SRC_URI = "http://www.netfilter.org/projects/conntrack-tools/files/conntrack-tools-${PV}.tar.bz2;name=tar \
- file://conntrack-failover \
- file://init \
-"
-SRC_URI[tar.md5sum] = "a9dc7567921213007def78ad72313109"
-SRC_URI[tar.sha256sum] = "590859cc848245dbfd9c6487761dd303b3a1771e007f4f42213063ca56205d5f"
-
-inherit autotools update-rc.d pkgconfig
-
-INITSCRIPT_NAME = "conntrackd"
-
-do_install:append() {
- install -d ${D}/${sysconfdir}/conntrackd
- install -d ${D}/${sysconfdir}/init.d
- install -m 0644 ${S}/doc/sync/ftfw/conntrackd.conf ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample
- install -m 0755 ${WORKDIR}/conntrack-failover ${D}/${sysconfdir}/init.d/conntrack-failover
- install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/conntrackd
-
- # Fix hardcoded paths in scripts
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd
- sed -i 's!/etc/!${sysconfdir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd
- sed -i 's!/var/!${localstatedir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample
- sed -i 's!^export PATH=.*!export PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}/${sysconfdir}/init.d/conntrackd
-}
-
-# fix error message: Do not forget that you need *root* or CAP_NET_ADMIN capabilities ;-)
-pkg_postinst:${PN} () {
- setcap cap_net_admin+ep "$D/${sbindir}/conntrack"
-}
-PACKAGE_WRITE_DEPS += "libcap-native"
diff --git a/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.8.bb b/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.8.bb
new file mode 100644
index 0000000000..07e01845d7
--- /dev/null
+++ b/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.8.bb
@@ -0,0 +1,60 @@
+SUMMARY = "Connection tracking userspace tools for Linux"
+SECTION = "net"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+DEPENDS = "libnfnetlink libnetfilter-conntrack libnetfilter-cttimeout \
+ libnetfilter-cthelper libnetfilter-queue bison-native libtirpc"
+
+EXTRA_OECONF += "LIBS=-ltirpc CPPFLAGS=-I${STAGING_INCDIR}/tirpc"
+
+SRC_URI = "http://www.netfilter.org/projects/conntrack-tools/files/conntrack-tools-${PV}.tar.xz \
+ file://conntrack-failover \
+ file://init \
+ file://conntrackd.service \
+"
+SRC_URI[sha256sum] = "067677f4c5f6564819e78ed3a9d4a8980935ea9273f3abb22a420ea30ab5ded6"
+
+inherit autotools update-rc.d pkgconfig systemd
+
+PACKAGECONFIG ?= "cthelper cttimeout \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+PACKAGECONFIG[cthelper] = "--enable-cthelper,--disable-cthelper"
+PACKAGECONFIG[cttimeout] = "--enable-cttimeout,--disable-cttimeout"
+PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
+
+INITSCRIPT_NAME = "conntrackd"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "conntrackd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+do_install:append() {
+ install -d ${D}/${sysconfdir}/conntrackd
+ install -d ${D}/${sysconfdir}/init.d
+ install -m 0644 ${S}/doc/sync/ftfw/conntrackd.conf ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample
+ install -m 0755 ${WORKDIR}/conntrack-failover ${D}/${sysconfdir}/init.d/conntrack-failover
+ install -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/conntrackd
+
+ # Fix hardcoded paths in scripts
+ sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd
+ sed -i 's!/etc/!${sysconfdir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd
+ sed -i 's!/var/!${localstatedir}/!g' ${D}/${sysconfdir}/init.d/conntrack-failover ${D}/${sysconfdir}/init.d/conntrackd ${D}/${sysconfdir}/conntrackd/conntrackd.conf.sample
+ sed -i 's!^export PATH=.*!export PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}/${sysconfdir}/init.d/conntrackd
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}/${systemd_system_unitdir}
+ install -m 644 ${WORKDIR}/conntrackd.service ${D}/${systemd_system_unitdir}
+ fi
+}
+
+# fix error message: Do not forget that you need *root* or CAP_NET_ADMIN capabilities ;-)
+pkg_postinst:${PN} () {
+ setcap cap_net_admin+ep "$D/${sbindir}/conntrack"
+}
+PACKAGE_WRITE_DEPS += "libcap-native"
+
+RRECOMMENDS:${PN} = "kernel-module-nf-conntrack kernel-module-nfnetlink \
+ kernel-module-nf-conntrack-netlink \
+ "
diff --git a/meta-networking/recipes-filter/conntrack-tools/files/conntrackd.service b/meta-networking/recipes-filter/conntrack-tools/files/conntrackd.service
new file mode 100644
index 0000000000..b3b0f1d216
--- /dev/null
+++ b/meta-networking/recipes-filter/conntrack-tools/files/conntrackd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Conntrack Daemon
+Documentation=man:conntrackd(8) man:conntrackd.conf(5)
+
+[Service]
+Type=notify
+ExecStartPre=-/bin/rm -f /var/lock/conntrackd.lock
+ExecStart=/usr/sbin/conntrackd -C /etc/conntrackd/conntrackd.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0010-Adjust-header-include-sequence.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0010-Adjust-header-include-sequence.patch
index 1f3fcfe370..dd8ad969c0 100644
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0010-Adjust-header-include-sequence.patch
+++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0010-Adjust-header-include-sequence.patch
@@ -8,6 +8,8 @@ This fixes the build with musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
extensions/ebt_among.c | 2 +-
extensions/ebt_arpreply.c | 2 +-
extensions/ebt_nat.c | 2 +-
diff --git a/meta-networking/recipes-filter/ipset/ipset/0001-ipset-Define-portable-basename-function.patch b/meta-networking/recipes-filter/ipset/ipset/0001-ipset-Define-portable-basename-function.patch
new file mode 100644
index 0000000000..a06bcac362
--- /dev/null
+++ b/meta-networking/recipes-filter/ipset/ipset/0001-ipset-Define-portable-basename-function.patch
@@ -0,0 +1,50 @@
+From 8c5c0a7a48af7652c50bc27a4efdd9cb4f7d95bd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 24 Mar 2024 21:58:50 -0700
+Subject: [PATCH] ipset: Define portable basename function
+
+Newer version of musl have removed prototype for basename in string.h [1]
+which now makes it fail to compile with newer clang 18+ compiler therefore
+define own basename utility function and not depend on platform for it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/ipset.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/src/ipset.c b/src/ipset.c
+index 162f477..7b5d580 100644
+--- a/src/ipset.c
++++ b/src/ipset.c
+@@ -16,6 +16,16 @@
+ #include <libipset/ipset.h> /* ipset library */
+ #include <libipset/xlate.h> /* translate to nftables */
+
++/* basename is implemented differently across different C libraries. This
++ * implementation matches the one provided by the GNU libc, and does not
++ * modify its input parameter.
++ */
++static const char *ipset_basename(const char *path)
++{
++ const char *base = strrchr(path, '/');
++ return base ? base + 1 : path;
++}
++
+ int
+ main(int argc, char *argv[])
+ {
+@@ -32,7 +42,7 @@ main(int argc, char *argv[])
+ exit(1);
+ }
+
+- if (!strcmp(basename(argv[0]), "ipset-translate")) {
++ if (!strcmp(ipset_basename(argv[0]), "ipset-translate")) {
+ ret = ipset_xlate_argv(ipset, argc, argv);
+ } else {
+ ret = ipset_parse_argv(ipset, argc, argv);
+--
+2.44.0
+
diff --git a/meta-networking/recipes-filter/ipset/ipset_7.15.bb b/meta-networking/recipes-filter/ipset/ipset_7.15.bb
deleted file mode 100644
index 0e928a30f8..0000000000
--- a/meta-networking/recipes-filter/ipset/ipset_7.15.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (C) 2017 Aaron Brice <aaron.brice@datasoft.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-DESCRIPTION = "Administration tool for IP sets"
-HOMEPAGE = "http://ipset.netfilter.org"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-SECTION = "base"
-
-DEPENDS = "libtool libmnl"
-
-SRC_URI = "http://ftp.netfilter.org/pub/ipset/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "0a5545aaadb640142c1f888d366a78ddf8724799967fa20686a70053bd621751"
-
-inherit autotools pkgconfig module-base
-
-EXTRA_OECONF += "-with-kbuild=${KBUILD_OUTPUT} --with-ksource=${STAGING_KERNEL_DIR}"
-
-RRECOMMENDS:${PN} = "\
- kernel-module-ip-set \
-"
diff --git a/meta-networking/recipes-filter/ipset/ipset_7.21.bb b/meta-networking/recipes-filter/ipset/ipset_7.21.bb
new file mode 100644
index 0000000000..c7ebdc1c66
--- /dev/null
+++ b/meta-networking/recipes-filter/ipset/ipset_7.21.bb
@@ -0,0 +1,22 @@
+# Copyright (C) 2017 Aaron Brice <aaron.brice@datasoft.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "Administration tool for IP sets"
+HOMEPAGE = "http://ipset.netfilter.org"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+SECTION = "base"
+
+DEPENDS = "libtool libmnl"
+
+SRC_URI = "http://ftp.netfilter.org/pub/ipset/${BP}.tar.bz2 \
+ file://0001-ipset-Define-portable-basename-function.patch"
+SRC_URI[sha256sum] = "e2c6ce4fcf3acb3893ca5d35c86935f80ad76fc5ccae601185842df760e0bc69"
+
+inherit autotools pkgconfig module-base
+
+EXTRA_OECONF += "-with-kbuild=${KBUILD_OUTPUT} --with-ksource=${STAGING_KERNEL_DIR}"
+
+RRECOMMENDS:${PN} = "\
+ kernel-module-ip-set \
+"
diff --git a/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch b/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch
index 9e0b420e0a..92e178efb7 100644
--- a/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch
+++ b/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-acct-Declare-the-define-visivility-attribute-together.patch
@@ -10,6 +10,8 @@ fail to link due to these missing symbols
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
doxygen.cfg.in | 2 +-
src/internal.h | 5 ++---
src/libnetfilter_acct.c | 41 ++++++++++++++---------------------------
diff --git a/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cthelper-visibility-hidden.patch b/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cthelper-visibility-hidden.patch
deleted file mode 100644
index e717d5b0e3..0000000000
--- a/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cthelper-visibility-hidden.patch
+++ /dev/null
@@ -1,382 +0,0 @@
-From f58c5b09fb59baf07c942d373fc4d522b27e73c6 Mon Sep 17 00:00:00 2001
-From: Kevin Cernekee <cernekee@chromium.org>
-Date: Wed, 4 Jan 2017 14:30:26 -0800
-Subject: Use __EXPORTED rather than EXPORT_SYMBOL
-
-clang is sensitive to the ordering of
-__attribute__((visibility("default"))) relative to the function
-body. gcc is not. So if we try to re-declare an existing function
-with default visibility, clang prints a warning and generates
-a broken .so file in which nfct_helper_* are not exported to library
-callers.
-
-Move the attribute up into the function definition to make clang happy.
-
-Signed-off-by: Kevin Cernekee <cernekee@chromium.org>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- doxygen.cfg.in | 2 +-
- src/internal.h | 5 ++-
- src/libnetfilter_cthelper.c | 83 ++++++++++++++++++---------------------------
- 3 files changed, 36 insertions(+), 54 deletions(-)
-
-Index: libnetfilter_cthelper-1.0.0/doxygen.cfg.in
-===================================================================
---- libnetfilter_cthelper-1.0.0.orig/doxygen.cfg.in
-+++ libnetfilter_cthelper-1.0.0/doxygen.cfg.in
-@@ -72,7 +72,7 @@ RECURSIVE = YES
- EXCLUDE =
- EXCLUDE_SYMLINKS = NO
- EXCLUDE_PATTERNS = */.git/* .*.d
--EXCLUDE_SYMBOLS = EXPORT_SYMBOL
-+EXCLUDE_SYMBOLS =
- EXAMPLE_PATH =
- EXAMPLE_PATTERNS =
- EXAMPLE_RECURSIVE = NO
-Index: libnetfilter_cthelper-1.0.0/src/internal.h
-===================================================================
---- libnetfilter_cthelper-1.0.0.orig/src/internal.h
-+++ libnetfilter_cthelper-1.0.0/src/internal.h
-@@ -3,10 +3,9 @@
-
- #include "config.h"
- #ifdef HAVE_VISIBILITY_HIDDEN
--# define __visible __attribute__((visibility("default")))
--# define EXPORT_SYMBOL(x) typeof(x) (x) __visible
-+# define __EXPORTED __attribute__((visibility("default")))
- #else
--# define EXPORT_SYMBOL
-+# define __EXPORTED
- #endif
-
- #endif
-Index: libnetfilter_cthelper-1.0.0/src/libnetfilter_cthelper.c
-===================================================================
---- libnetfilter_cthelper-1.0.0.orig/src/libnetfilter_cthelper.c
-+++ libnetfilter_cthelper-1.0.0/src/libnetfilter_cthelper.c
-@@ -99,17 +99,16 @@ struct nfct_helper {
- * In case of success, this function returns a valid pointer, otherwise NULL
- * s returned and errno is appropriately set.
- */
--struct nfct_helper *nfct_helper_alloc(void)
-+struct nfct_helper __EXPORTED *nfct_helper_alloc(void)
- {
- return calloc(1, sizeof(struct nfct_helper));
- }
--EXPORT_SYMBOL(nfct_helper_alloc);
-
- /**
- * nfct_helper_free - release one helper object
- * \param nfct_helper pointer to the helper object
- */
--void nfct_helper_free(struct nfct_helper *h)
-+void __EXPORTED nfct_helper_free(struct nfct_helper *h)
- {
- int i;
-
-@@ -119,7 +118,6 @@ void nfct_helper_free(struct nfct_helper
- free(h->expect_policy[i]);
- }
- }
--EXPORT_SYMBOL(nfct_helper_free);
-
- /**
- * nfct_helper_policy_alloc - allocate a new helper policy object
-@@ -127,21 +125,19 @@ EXPORT_SYMBOL(nfct_helper_free);
- * In case of success, this function returns a valid pointer, otherwise NULL
- * s returned and errno is appropriately set.
- */
--struct nfct_helper_policy *nfct_helper_policy_alloc(void)
-+struct nfct_helper_policy __EXPORTED *nfct_helper_policy_alloc(void)
- {
- return calloc(1, sizeof(struct nfct_helper_policy));
- }
--EXPORT_SYMBOL(nfct_helper_policy_alloc);
-
- /**
- * nfct_helper_free - release one helper policy object
- * \param nfct_helper pointer to the helper object
- */
--void nfct_helper_policy_free(struct nfct_helper_policy *p)
-+void __EXPORTED nfct_helper_policy_free(struct nfct_helper_policy *p)
- {
- free(p);
- }
--EXPORT_SYMBOL(nfct_helper_policy_free);
-
- /**
- * nfct_helper_policy_attr_set - set one attribute of the helper object
-@@ -149,7 +145,7 @@ EXPORT_SYMBOL(nfct_helper_policy_free);
- * \param type attribute type you want to set
- * \param data pointer to data that will be used to set this attribute
- */
--void
-+void __EXPORTED
- nfct_helper_policy_attr_set(struct nfct_helper_policy *p,
- enum nfct_helper_policy_attr_type type,
- const void *data)
-@@ -170,7 +166,6 @@ nfct_helper_policy_attr_set(struct nfct_
- break;
- }
- }
--EXPORT_SYMBOL(nfct_helper_policy_attr_set);
-
- /**
- * nfct_helper_attr_set_str - set one attribute the helper object
-@@ -178,23 +173,21 @@ EXPORT_SYMBOL(nfct_helper_policy_attr_se
- * \param type attribute type you want to set
- * \param name string that will be used to set this attribute
- */
--void
-+void __EXPORTED
- nfct_helper_policy_attr_set_str(struct nfct_helper_policy *p,
- enum nfct_helper_policy_attr_type type,
- const char *name)
- {
- nfct_helper_policy_attr_set(p, type, name);
- }
--EXPORT_SYMBOL(nfct_helper_policy_attr_set_str);
-
--void
-+void __EXPORTED
- nfct_helper_policy_attr_set_u32(struct nfct_helper_policy *p,
- enum nfct_helper_policy_attr_type type,
- uint32_t value)
- {
- nfct_helper_policy_attr_set(p, type, &value);
- }
--EXPORT_SYMBOL(nfct_helper_policy_attr_set_u32);
-
- /**
- * nfct_helper_attr_set - set one attribute of the helper object
-@@ -202,7 +195,7 @@ EXPORT_SYMBOL(nfct_helper_policy_attr_se
- * \param type attribute type you want to set
- * \param data pointer to data that will be used to set this attribute
- */
--void
-+void __EXPORTED
- nfct_helper_attr_set(struct nfct_helper *h,
- enum nfct_helper_attr_type type, const void *data)
- {
-@@ -250,7 +243,6 @@ nfct_helper_attr_set(struct nfct_helper
- break;
- }
- }
--EXPORT_SYMBOL(nfct_helper_attr_set);
-
- /**
- * nfct_helper_attr_set_str - set one attribute the helper object
-@@ -258,44 +250,40 @@ EXPORT_SYMBOL(nfct_helper_attr_set);
- * \param type attribute type you want to set
- * \param name string that will be used to set this attribute
- */
--void
-+void __EXPORTED
- nfct_helper_attr_set_str(struct nfct_helper *nfct_helper, enum nfct_helper_attr_type type,
- const char *name)
- {
- nfct_helper_attr_set(nfct_helper, type, name);
- }
--EXPORT_SYMBOL(nfct_helper_attr_set_str);
-
--void
-+void __EXPORTED
- nfct_helper_attr_set_u8(struct nfct_helper *nfct_helper,
- enum nfct_helper_attr_type type, uint8_t value)
- {
- nfct_helper_attr_set(nfct_helper, type, &value);
- }
--EXPORT_SYMBOL(nfct_helper_attr_set_u8);
-
--void
-+void __EXPORTED
- nfct_helper_attr_set_u16(struct nfct_helper *nfct_helper,
- enum nfct_helper_attr_type type, uint16_t value)
- {
- nfct_helper_attr_set(nfct_helper, type, &value);
- }
--EXPORT_SYMBOL(nfct_helper_attr_set_u16);
-
--void
-+void __EXPORTED
- nfct_helper_attr_set_u32(struct nfct_helper *nfct_helper,
- enum nfct_helper_attr_type type, uint32_t value)
- {
- nfct_helper_attr_set(nfct_helper, type, &value);
- }
--EXPORT_SYMBOL(nfct_helper_attr_set_u32);
-
- /**
- * nfct_helper_attr_unset - unset one attribute the helper object
- * \param nfct_helper pointer to the helper object
- * \param type attribute type you want to set
- */
--void
-+void __EXPORTED
- nfct_helper_attr_unset(struct nfct_helper *nfct_helper, enum nfct_helper_attr_type type)
- {
- switch(type) {
-@@ -307,7 +295,6 @@ nfct_helper_attr_unset(struct nfct_helpe
- break;
- }
- }
--EXPORT_SYMBOL(nfct_helper_attr_unset);
-
- /**
- * nfct_helper_attr_get - get one attribute the helper object
-@@ -317,8 +304,9 @@ EXPORT_SYMBOL(nfct_helper_attr_unset);
- * This function returns a valid pointer to the attribute data. If a
- * unsupported attribute is used, this returns NULL.
- */
--const void *nfct_helper_attr_get(struct nfct_helper *helper,
-- enum nfct_helper_attr_type type)
-+const void __EXPORTED *
-+nfct_helper_attr_get(struct nfct_helper *helper,
-+ enum nfct_helper_attr_type type)
- {
- const void *ret = NULL;
-
-@@ -358,7 +346,6 @@ const void *nfct_helper_attr_get(struct
- }
- return ret;
- }
--EXPORT_SYMBOL(nfct_helper_attr_get);
-
- /**
- * nfct_helper_attr_get_str - get one attribute the helper object
-@@ -368,13 +355,12 @@ EXPORT_SYMBOL(nfct_helper_attr_get);
- * This function returns a valid pointer to the beginning of the string.
- * If the attribute is unsupported, this returns NULL.
- */
--const char *
-+const char __EXPORTED *
- nfct_helper_attr_get_str(struct nfct_helper *nfct_helper,
- enum nfct_helper_attr_type type)
- {
- return (const char *)nfct_helper_attr_get(nfct_helper, type);
- }
--EXPORT_SYMBOL(nfct_helper_attr_get_str);
-
- /**
- * nfct_helper_attr_get_u8 - get one attribute the helper object
-@@ -384,12 +370,12 @@ EXPORT_SYMBOL(nfct_helper_attr_get_str);
- * This function returns a unsigned 8-bits integer. If the attribute is
- * unsupported, this returns NULL.
- */
--uint8_t nfct_helper_attr_get_u8(struct nfct_helper *nfct_helper,
-- enum nfct_helper_attr_type type)
-+uint8_t __EXPORTED
-+nfct_helper_attr_get_u8(struct nfct_helper *nfct_helper,
-+ enum nfct_helper_attr_type type)
- {
- return *((uint8_t *)nfct_helper_attr_get(nfct_helper, type));
- }
--EXPORT_SYMBOL(nfct_helper_attr_get_u8);
-
- /**
- * nfct_helper_attr_get_u16 - get one attribute the helper object
-@@ -399,12 +385,12 @@ EXPORT_SYMBOL(nfct_helper_attr_get_u8);
- * This function returns a unsigned 16-bits integer. If the attribute is
- * unsupported, this returns NULL.
- */
--uint16_t nfct_helper_attr_get_u16(struct nfct_helper *nfct_helper,
-- enum nfct_helper_attr_type type)
-+uint16_t __EXPORTED
-+nfct_helper_attr_get_u16(struct nfct_helper *nfct_helper,
-+ enum nfct_helper_attr_type type)
- {
- return *((uint16_t *)nfct_helper_attr_get(nfct_helper, type));
- }
--EXPORT_SYMBOL(nfct_helper_attr_get_u16);
-
- /**
- * nfct_helper_attr_get_u32 - get one attribute the helper object
-@@ -414,12 +400,12 @@ EXPORT_SYMBOL(nfct_helper_attr_get_u16);
- * This function returns a unsigned 32-bits integer. If the attribute is
- * unsupported, this returns NULL.
- */
--uint32_t nfct_helper_attr_get_u32(struct nfct_helper *nfct_helper,
-- enum nfct_helper_attr_type type)
-+uint32_t __EXPORTED
-+nfct_helper_attr_get_u32(struct nfct_helper *nfct_helper,
-+ enum nfct_helper_attr_type type)
- {
- return *((uint32_t *)nfct_helper_attr_get(nfct_helper, type));
- }
--EXPORT_SYMBOL(nfct_helper_attr_get_u32);
-
- /**
- * nfct_helper_snprintf - print helper object into one buffer
-@@ -431,9 +417,10 @@ EXPORT_SYMBOL(nfct_helper_attr_get_u32);
- * This function returns -1 in case that some mandatory attributes are
- * missing. On sucess, it returns 0.
- */
--int nfct_helper_snprintf(char *buf, size_t size,
-- struct nfct_helper *helper,
-- unsigned int type, unsigned int flags)
-+int __EXPORTED
-+nfct_helper_snprintf(char *buf, size_t size,
-+ struct nfct_helper *helper,
-+ unsigned int type, unsigned int flags)
- {
- int ret;
-
-@@ -454,7 +441,6 @@ int nfct_helper_snprintf(char *buf, size
-
- return ret;
- }
--EXPORT_SYMBOL(nfct_helper_snprintf);
-
- /**
- * @}
-@@ -490,7 +476,7 @@ EXPORT_SYMBOL(nfct_helper_snprintf);
- * - Command NFNL_MSG_ACCT_DEL, to delete one specific nfct_helper object (if
- * unused, otherwise you hit EBUSY).
- */
--struct nlmsghdr *
-+struct nlmsghdr __EXPORTED *
- nfct_helper_nlmsg_build_hdr(char *buf, uint8_t cmd,
- uint16_t flags, uint32_t seq)
- {
-@@ -509,7 +495,6 @@ nfct_helper_nlmsg_build_hdr(char *buf, u
-
- return nlh;
- }
--EXPORT_SYMBOL(nfct_helper_nlmsg_build_hdr);
-
- static void
- nfct_helper_nlmsg_build_policy(struct nlmsghdr *nlh,
-@@ -530,7 +515,7 @@ nfct_helper_nlmsg_build_policy(struct nl
- * \param nlh: netlink message that you want to use to add the payload.
- * \param nfct_helper: pointer to a helper object
- */
--void
-+void __EXPORTED
- nfct_helper_nlmsg_build_payload(struct nlmsghdr *nlh, struct nfct_helper *h)
- {
- struct nlattr *nest;
-@@ -593,7 +578,6 @@ nfct_helper_nlmsg_build_payload(struct n
- if (h->bitset & (1 << NFCTH_ATTR_STATUS))
- mnl_attr_put_u32(nlh, NFCTH_STATUS, ntohl(h->status));
- }
--EXPORT_SYMBOL(nfct_helper_nlmsg_build_payload);
-
- static int
- nfct_helper_nlmsg_parse_tuple_cb(const struct nlattr *attr, void *data)
-@@ -795,7 +779,7 @@ nfct_helper_nlmsg_parse_attr_cb(const st
- * This function returns -1 in case that some mandatory attributes are
- * missing. On sucess, it returns 0.
- */
--int
-+int __EXPORTED
- nfct_helper_nlmsg_parse_payload(const struct nlmsghdr *nlh,
- struct nfct_helper *h)
- {
-@@ -832,7 +816,6 @@ nfct_helper_nlmsg_parse_payload(const st
- }
- return 0;
- }
--EXPORT_SYMBOL(nfct_helper_nlmsg_parse_payload);
-
- /**
- * @}
diff --git a/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cttimeout-visibility-hidden.patch b/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cttimeout-visibility-hidden.patch
deleted file mode 100644
index 2c606c832d..0000000000
--- a/meta-networking/recipes-filter/libnetfilter/files/libnetfilter-cttimeout-visibility-hidden.patch
+++ /dev/null
@@ -1,264 +0,0 @@
-From d0c4e39d12f903e06db262656cff2e24d267bed7 Mon Sep 17 00:00:00 2001
-From: Kevin Cernekee <cernekee@chromium.org>
-Date: Wed, 4 Jan 2017 14:30:25 -0800
-Subject: Use __EXPORTED rather than EXPORT_SYMBOL
-
-clang is sensitive to the ordering of
-__attribute__((visibility("default"))) relative to the function
-body. gcc is not. So if we try to re-declare an existing function
-with default visibility, clang prints a warning and generates
-a broken .so file in which nfct_timeout_* are not exported to library
-callers.
-
-Move the attribute up into the function definition to make clang happy.
-
-Signed-off-by: Kevin Cernekee <cernekee@chromium.org>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- doxygen.cfg.in | 2 +-
- src/internal.h | 5 ++---
- src/libnetfilter_cttimeout.c | 44 +++++++++++++++++---------------------------
- 3 files changed, 20 insertions(+), 31 deletions(-)
-
-diff --git a/doxygen.cfg.in b/doxygen.cfg.in
-index 8e5d449..09c3ce0 100644
---- a/doxygen.cfg.in
-+++ b/doxygen.cfg.in
-@@ -72,7 +72,7 @@ RECURSIVE = YES
- EXCLUDE =
- EXCLUDE_SYMLINKS = NO
- EXCLUDE_PATTERNS = */.git/* .*.d
--EXCLUDE_SYMBOLS = EXPORT_SYMBOL nfct_timeout _container_policy_cb
-+EXCLUDE_SYMBOLS = nfct_timeout _container_policy_cb
- EXAMPLE_PATH =
- EXAMPLE_PATTERNS =
- EXAMPLE_RECURSIVE = NO
-diff --git a/src/internal.h b/src/internal.h
-index 3a88d1a..5d78171 100644
---- a/src/internal.h
-+++ b/src/internal.h
-@@ -3,10 +3,9 @@
-
- #include "config.h"
- #ifdef HAVE_VISIBILITY_HIDDEN
--# define __visible __attribute__((visibility("default")))
--# define EXPORT_SYMBOL(x) typeof(x) (x) __visible
-+# define __EXPORTED __attribute__((visibility("default")))
- #else
--# define EXPORT_SYMBOL
-+# define __EXPORTED
- #endif
-
- #endif
-diff --git a/src/libnetfilter_cttimeout.c b/src/libnetfilter_cttimeout.c
-index 7844a1f..a0a7185 100644
---- a/src/libnetfilter_cttimeout.c
-+++ b/src/libnetfilter_cttimeout.c
-@@ -187,7 +187,7 @@ struct nfct_timeout {
- * In case of success, this function returns a valid pointer, otherwise NULL
- * s returned and errno is appropriately set.
- */
--struct nfct_timeout *nfct_timeout_alloc(void)
-+struct nfct_timeout __EXPORTED *nfct_timeout_alloc(void)
- {
- struct nfct_timeout *t;
-
-@@ -197,19 +197,17 @@ struct nfct_timeout *nfct_timeout_alloc(void)
-
- return t;
- }
--EXPORT_SYMBOL(nfct_timeout_alloc);
-
- /**
- * nfct_timeout_free - release one conntrack timeout object
- * \param t pointer to the conntrack timeout object
- */
--void nfct_timeout_free(struct nfct_timeout *t)
-+void __EXPORTED nfct_timeout_free(struct nfct_timeout *t)
- {
- if (t->timeout)
- free(t->timeout);
- free(t);
- }
--EXPORT_SYMBOL(nfct_timeout_free);
-
- /**
- * nfct_timeout_attr_set - set one attribute of the conntrack timeout object
-@@ -217,7 +215,7 @@ EXPORT_SYMBOL(nfct_timeout_free);
- * \param type attribute type you want to set
- * \param data pointer to data that will be used to set this attribute
- */
--int
-+int __EXPORTED
- nfct_timeout_attr_set(struct nfct_timeout *t, uint32_t type, const void *data)
- {
- switch(type) {
-@@ -236,7 +234,6 @@ nfct_timeout_attr_set(struct nfct_timeout *t, uint32_t type, const void *data)
- t->attrset |= (1 << type);
- return 0;
- }
--EXPORT_SYMBOL(nfct_timeout_attr_set);
-
- /**
- * nfct_timeout_attr_set_u8 - set one attribute of the conntrack timeout object
-@@ -244,12 +241,11 @@ EXPORT_SYMBOL(nfct_timeout_attr_set);
- * \param type attribute type you want to set
- * \param data pointer to data that will be used to set this attribute
- */
--int
-+int __EXPORTED
- nfct_timeout_attr_set_u8(struct nfct_timeout *t, uint32_t type, uint8_t data)
- {
- return nfct_timeout_attr_set(t, type, &data);
- }
--EXPORT_SYMBOL(nfct_timeout_attr_set_u8);
-
- /**
- * nfct_timeout_attr_set_u16 - set one attribute of the conntrack timeout object
-@@ -257,23 +253,21 @@ EXPORT_SYMBOL(nfct_timeout_attr_set_u8);
- * \param type attribute type you want to set
- * \param data pointer to data that will be used to set this attribute
- */
--int
-+int __EXPORTED
- nfct_timeout_attr_set_u16(struct nfct_timeout *t, uint32_t type, uint16_t data)
- {
- return nfct_timeout_attr_set(t, type, &data);
- }
--EXPORT_SYMBOL(nfct_timeout_attr_set_u16);
-
- /**
- * nfct_timeout_attr_unset - unset one attribute of the conntrack timeout object
- * \param t pointer to the conntrack timeout object
- * \param type attribute type you want to set
- */
--void nfct_timeout_attr_unset(struct nfct_timeout *t, uint32_t type)
-+void __EXPORTED nfct_timeout_attr_unset(struct nfct_timeout *t, uint32_t type)
- {
- t->attrset &= ~(1 << type);
- }
--EXPORT_SYMBOL(nfct_timeout_attr_unset);
-
- /**
- * nfct_timeout_policy_attr_set_u32 - set one attribute of the policy
-@@ -281,7 +275,7 @@ EXPORT_SYMBOL(nfct_timeout_attr_unset);
- * \param type attribute type you want to set
- * \param data data that will be used to set this attribute
- */
--int
-+int __EXPORTED
- nfct_timeout_policy_attr_set_u32(struct nfct_timeout *t,
- uint32_t type, uint32_t data)
- {
-@@ -319,18 +313,17 @@ nfct_timeout_policy_attr_set_u32(struct nfct_timeout *t,
-
- return 0;
- }
--EXPORT_SYMBOL(nfct_timeout_policy_attr_set_u32);
-
- /**
- * nfct_timeout_policy_attr_unset - unset one attribute of the policy
- * \param t pointer to the conntrack timeout object
- * \param type attribute type you want to set
- */
--void nfct_timeout_policy_attr_unset(struct nfct_timeout *t, uint32_t type)
-+void __EXPORTED
-+nfct_timeout_policy_attr_unset(struct nfct_timeout *t, uint32_t type)
- {
- t->attrset &= ~(1 << type);
- }
--EXPORT_SYMBOL(nfct_timeout_policy_attr_unset);
-
- /**
- * nfct_timeout_policy_attr_to_name - get state name from protocol state number
-@@ -340,7 +333,8 @@ EXPORT_SYMBOL(nfct_timeout_policy_attr_unset);
- * This function returns NULL if unsupported protocol or state number is passed.
- * Otherwise, a pointer to valid string is returned.
- */
--const char *nfct_timeout_policy_attr_to_name(uint8_t l4proto, uint32_t state)
-+const char __EXPORTED *
-+nfct_timeout_policy_attr_to_name(uint8_t l4proto, uint32_t state)
- {
- if (timeout_protocol[l4proto].state_to_name == NULL) {
- printf("no array state name\n");
-@@ -354,7 +348,6 @@ const char *nfct_timeout_policy_attr_to_name(uint8_t l4proto, uint32_t state)
-
- return timeout_protocol[l4proto].state_to_name[state];
- }
--EXPORT_SYMBOL(nfct_timeout_policy_attr_to_name);
-
- /**
- * @}
-@@ -438,8 +431,9 @@ nfct_timeout_snprintf_default(char *buf, size_t size,
- * This function returns -1 in case that some mandatory attributes are
- * missing. On sucess, it returns 0.
- */
--int nfct_timeout_snprintf(char *buf, size_t size, const struct nfct_timeout *t,
-- unsigned int type, unsigned int flags)
-+int __EXPORTED
-+nfct_timeout_snprintf(char *buf, size_t size, const struct nfct_timeout *t,
-+ unsigned int type, unsigned int flags)
- {
- int ret = 0;
-
-@@ -454,7 +448,6 @@ int nfct_timeout_snprintf(char *buf, size_t size, const struct nfct_timeout *t,
-
- return ret;
- }
--EXPORT_SYMBOL(nfct_timeout_snprintf);
-
- /**
- * @}
-@@ -477,7 +470,7 @@ EXPORT_SYMBOL(nfct_timeout_snprintf);
- * - CTNL_MSG_TIMEOUT_GET: get conntrack timeout object.
- * - CTNL_MSG_TIMEOUT_DEL: delete conntrack timeout object.
- */
--struct nlmsghdr *
-+struct nlmsghdr __EXPORTED *
- nfct_timeout_nlmsg_build_hdr(char *buf, uint8_t cmd,
- uint16_t flags, uint32_t seq)
- {
-@@ -496,14 +489,13 @@ nfct_timeout_nlmsg_build_hdr(char *buf, uint8_t cmd,
-
- return nlh;
- }
--EXPORT_SYMBOL(nfct_timeout_nlmsg_build_hdr);
-
- /**
- * nfct_timeout_nlmsg_build_payload - build payload from ct timeout object
- * \param nlh: netlink message that you want to use to add the payload.
- * \param t: pointer to a conntrack timeout object
- */
--void
-+void __EXPORTED
- nfct_timeout_nlmsg_build_payload(struct nlmsghdr *nlh,
- const struct nfct_timeout *t)
- {
-@@ -532,7 +524,6 @@ nfct_timeout_nlmsg_build_payload(struct nlmsghdr *nlh,
- }
-
- }
--EXPORT_SYMBOL(nfct_timeout_nlmsg_build_payload);
-
- static int
- timeout_nlmsg_parse_attr_cb(const struct nlattr *attr, void *data)
-@@ -629,7 +620,7 @@ timeout_parse_attr_data(struct nfct_timeout *t, const struct nlattr *nest)
- * This function returns -1 in case that some mandatory attributes are
- * missing. On sucess, it returns 0.
- */
--int
-+int __EXPORTED
- nfct_timeout_nlmsg_parse_payload(const struct nlmsghdr *nlh,
- struct nfct_timeout *t)
- {
-@@ -654,7 +645,6 @@ nfct_timeout_nlmsg_parse_payload(const struct nlmsghdr *nlh,
- }
- return 0;
- }
--EXPORT_SYMBOL(nfct_timeout_nlmsg_parse_payload);
-
- /**
- * @}
---
-cgit v1.1
-
diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb
deleted file mode 100644
index fea520d439..0000000000
--- a/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Netfilter connection tracking helper library"
-DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter user-space helper infrastructure"
-HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_cthelper/index.html"
-SECTION = "libs"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-DEPENDS = "libmnl"
-
-SRC_URI = "http://www.netfilter.org/projects/libnetfilter_cthelper/files/libnetfilter_cthelper-${PV}.tar.bz2;name=tar \
- file://libnetfilter-cthelper-visibility-hidden.patch \
-"
-SRC_URI[tar.md5sum] = "b2efab1a3a198a5add448960ba011acd"
-SRC_URI[tar.sha256sum] = "07618e71c4d9a6b6b3dc1986540486ee310a9838ba754926c7d14a17d8fccf3d"
-
-S = "${WORKDIR}/libnetfilter_cthelper-${PV}"
-
-inherit autotools pkgconfig
diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.1.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.1.bb
new file mode 100644
index 0000000000..ebb0eb2329
--- /dev/null
+++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-cthelper_1.0.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Netfilter connection tracking helper library"
+DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter user-space helper infrastructure"
+HOMEPAGE = "https://www.netfilter.org/projects/libnetfilter_cthelper/index.html"
+SECTION = "libs"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+DEPENDS = "libmnl"
+
+SRC_URI = "https://www.netfilter.org/projects/libnetfilter_cthelper/files/libnetfilter_cthelper-${PV}.tar.bz2 \
+ "
+
+SRC_URI[md5sum] = "e59279645fe65d40dd7dfc82a797ca5b"
+SRC_URI[sha256sum] = "14073d5487233897355d3ff04ddc1c8d03cc5ba8d2356236aa88161a9f2dc912"
+
+S = "${WORKDIR}/libnetfilter_cthelper-${PV}"
+
+inherit autotools pkgconfig
diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb
deleted file mode 100644
index dc87d9b123..0000000000
--- a/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Netfilter connection tracking timeout library"
-DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter fine-grain connection tracking timeout infrastructure"
-SECTION = "libs"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-DEPENDS = "libmnl"
-
-SRC_URI = "http://www.netfilter.org/projects/libnetfilter_cttimeout/files/libnetfilter_cttimeout-${PV}.tar.bz2;name=tar \
- file://libnetfilter-cttimeout-visibility-hidden.patch \
-"
-SRC_URI[tar.md5sum] = "7697437fc9ebb6f6b83df56a633db7f9"
-SRC_URI[tar.sha256sum] = "aeab12754f557cba3ce2950a2029963d817490df7edb49880008b34d7ff8feba"
-
-S = "${WORKDIR}/libnetfilter_cttimeout-${PV}"
-
-inherit autotools pkgconfig
diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.1.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.1.bb
new file mode 100644
index 0000000000..5349e6e4b8
--- /dev/null
+++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-cttimeout_1.0.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Netfilter connection tracking timeout library"
+DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter fine-grain connection tracking timeout infrastructure"
+SECTION = "libs"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+DEPENDS = "libmnl"
+
+SRC_URI = "https://www.netfilter.org/projects/libnetfilter_cttimeout/files/libnetfilter_cttimeout-${PV}.tar.bz2 \
+ "
+
+SRC_URI[md5sum] = "ac64b55952b79cb9910db95ce8883940"
+SRC_URI[sha256sum] = "0b59da2f3204e1c80cb85d1f6d72285fc07b01a2f5678abf5dccfbbefd650325"
+
+S = "${WORKDIR}/libnetfilter_cttimeout-${PV}"
+
+inherit autotools pkgconfig
diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb
index 580c29e1ae..301dd86cf3 100644
--- a/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb
+++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb
@@ -14,3 +14,5 @@ SRC_URI = "git://git.netfilter.org/libnetfilter_queue;branch=master \
S = "${WORKDIR}/git"
inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0001-build-resolve-automake-1.12-warnings.patch b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0001-build-resolve-automake-1.12-warnings.patch
deleted file mode 100644
index 00d95cd79e..0000000000
--- a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0001-build-resolve-automake-1.12-warnings.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 2e5f2b81fb8cbe0d1cd33e58caa19ac308e1f847 Mon Sep 17 00:00:00 2001
-From: Jan Engelhardt <jengelh@inai.de>
-Date: Tue, 9 Oct 2012 15:59:48 +0200
-Subject: [PATCH 1/6] build: resolve automake-1.12 warnings
-
-am/ltlibrary.am: warning: 'libnfnetlink.la': linking libtool libraries
-using a non-POSIX archiver requires 'AM_PROG_AR' in 'configure.ac'
-
-Signed-off-by: Jan Engelhardt <jengelh@inai.de>
----
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/configure.ac b/configure.ac
-index ed549df..0926a1c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -7,6 +7,7 @@ AC_CANONICAL_HOST
-
- AM_INIT_AUTOMAKE([-Wall foreign subdir-objects
- tar-pax no-dist-gzip dist-bzip2 1.6])
-+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
-
- dnl kernel style compile messages
- m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0002-src-get-source-code-license-header-in-sync-with-curr.patch b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0002-src-get-source-code-license-header-in-sync-with-curr.patch
deleted file mode 100644
index c2fb5e05a7..0000000000
--- a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0002-src-get-source-code-license-header-in-sync-with-curr.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 5e6b6e23a8b04475c5a9de7eddb4c18103932fe5 Mon Sep 17 00:00:00 2001
-From: Pablo Neira Ayuso <pablo@netfilter.org>
-Date: Wed, 7 Aug 2013 20:53:57 +0200
-Subject: [PATCH 2/6] src: get source code license header in sync with current
- licensing terms
-
-Since (3956761 license: upgrade to GPLv2+), we upgraded to GPLv2+,
-propagate that changes to src/iftable.c and src/rtnl.c
-
-Reported-by: Thomas Woerner <twoerner@redhat.com>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- src/iftable.c | 2 +-
- src/rtnl.c | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/iftable.c b/src/iftable.c
-index 0325335..5976ed8 100644
---- a/src/iftable.c
-+++ b/src/iftable.c
-@@ -3,7 +3,7 @@
- * (C) 2004 by Astaro AG, written by Harald Welte <hwelte@astaro.com>
- * (C) 2008 by Pablo Neira Ayuso <pablo@netfilter.org>
- *
-- * This software is Free Software and licensed under GNU GPLv2.
-+ * This software is Free Software and licensed under GNU GPLv2+.
- */
-
- /* IFINDEX handling */
-diff --git a/src/rtnl.c b/src/rtnl.c
-index 5ccb272..7b4ac7d 100644
---- a/src/rtnl.c
-+++ b/src/rtnl.c
-@@ -1,10 +1,10 @@
- /* rtnl - rtnetlink utility functions
- *
- * (C) 2004 by Astaro AG, written by Harald Welte <hwelte@astaro.com>
-- *
-+ *
- * Adapted to nfnetlink by Eric Leblond <eric@inl.fr>
- *
-- * This software is free software and licensed under GNU GPLv2.
-+ * This software is free software and licensed under GNU GPLv2+.
- *
- */
-
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0003-configure-uclinux-is-also-linux.patch b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0003-configure-uclinux-is-also-linux.patch
deleted file mode 100644
index 6cb7ed6fa9..0000000000
--- a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0003-configure-uclinux-is-also-linux.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From b259fe13826414c1bd5328a25c8d6d60e20e65f2 Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Tue, 10 Sep 2013 16:23:29 -0300
-Subject: [PATCH 3/6] configure: uclinux is also linux
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 0926a1c..b979772 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -18,7 +18,7 @@ AC_DISABLE_STATIC
- AM_PROG_LIBTOOL
-
- case "$host" in
--*-*-linux*) ;;
-+*-*-linux* | *-*-uclinux*) ;;
- *) AC_MSG_ERROR([Linux only, dude!]);;
- esac
-
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch
deleted file mode 100644
index cf3a841356..0000000000
--- a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From b142da8d2c9e2e2dfbe4e89e680dd124f6064ac8 Mon Sep 17 00:00:00 2001
-From: Pablo Neira Ayuso <pablo@netfilter.org>
-Date: Mon, 3 Feb 2014 12:09:29 +0100
-Subject: [PATCH 4/6] libnfnetlink: initialize attribute padding to resolve
- valgrind warnings
-
-==12195== Syscall param socketcall.sendto(msg) points to uninitialised byte(s)
-==12195== at 0x51209C3: __sendto_nocancel (syscall-template.S:81)
-==12195== by 0x53E4D12: nfnl_send (libnfnetlink.c:391)
-==12195== by 0x53E6952: nfnl_query (libnfnetlink.c:1569)
-==12195== by 0x4E344AF: __build_send_cfg_msg.isra.1 (libnetfilter_log.c:143)
-==12195== by 0x4E34710: nflog_bind_group (libnetfilter_log.c:413)
-==12195== by 0x400CB1: main (nfulnl_test.c:77)
-==12195== Address 0x7fefff3e9 is on thread 1's stack
-
-This patch sets to zero the padding that is included to align the
-attribute payload.
-
-Reported-by: Ivan Homoliak <xhomol11@gmail.com>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- src/libnfnetlink.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/libnfnetlink.c b/src/libnfnetlink.c
-index 4b2bcd0..398b7d7 100644
---- a/src/libnfnetlink.c
-+++ b/src/libnfnetlink.c
-@@ -809,6 +809,7 @@ int nfnl_addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data,
- nfa->nfa_type = type;
- nfa->nfa_len = len;
- memcpy(NFA_DATA(nfa), data, alen);
-+ memset((uint8_t *)nfa + nfa->nfa_len, 0, NFA_ALIGN(alen) - alen);
- n->nlmsg_len = (NLMSG_ALIGN(n->nlmsg_len) + NFA_ALIGN(len));
- return 0;
- }
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0005-include-Sync-with-kernel-headers.patch b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0005-include-Sync-with-kernel-headers.patch
deleted file mode 100644
index 383f0e8b3d..0000000000
--- a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0005-include-Sync-with-kernel-headers.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From b10c90a61a5fc46f2be5aeecb9c96e84178f7717 Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Sat, 16 May 2015 14:49:07 +0200
-Subject: [PATCH 5/6] include: Sync with kernel headers
-
-Signed-off-by: Felix Janda <felix.janda@posteo.de>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- include/libnfnetlink/linux_nfnetlink.h | 44 ++++-----------------------
- include/libnfnetlink/linux_nfnetlink_compat.h | 12 ++++----
- 2 files changed, 12 insertions(+), 44 deletions(-)
-
-diff --git a/include/libnfnetlink/linux_nfnetlink.h b/include/libnfnetlink/linux_nfnetlink.h
-index 76a8550..44a38d6 100644
---- a/include/libnfnetlink/linux_nfnetlink.h
-+++ b/include/libnfnetlink/linux_nfnetlink.h
-@@ -25,9 +25,9 @@ enum nfnetlink_groups {
- /* General form of address family dependent message.
- */
- struct nfgenmsg {
-- u_int8_t nfgen_family; /* AF_xxx */
-- u_int8_t version; /* nfnetlink version */
-- u_int16_t res_id; /* resource id */
-+ __u8 nfgen_family; /* AF_xxx */
-+ __u8 version; /* nfnetlink version */
-+ __be16 res_id; /* resource id */
- };
-
- #define NFNETLINK_V0 0
-@@ -46,40 +46,8 @@ struct nfgenmsg {
- #define NFNL_SUBSYS_CTNETLINK_EXP 2
- #define NFNL_SUBSYS_QUEUE 3
- #define NFNL_SUBSYS_ULOG 4
--#define NFNL_SUBSYS_COUNT 5
-+#define NFNL_SUBSYS_OSF 5
-+#define NFNL_SUBSYS_IPSET 6
-+#define NFNL_SUBSYS_COUNT 7
-
--#ifdef __KERNEL__
--
--#include <linux/netlink.h>
--#include <linux/capability.h>
--#include <net/netlink.h>
--
--struct nfnl_callback
--{
-- int (*call)(struct sock *nl, struct sk_buff *skb,
-- struct nlmsghdr *nlh, struct nlattr *cda[]);
-- const struct nla_policy *policy; /* netlink attribute policy */
-- const u_int16_t attr_count; /* number of nlattr's */
--};
--
--struct nfnetlink_subsystem
--{
-- const char *name;
-- __u8 subsys_id; /* nfnetlink subsystem ID */
-- __u8 cb_count; /* number of callbacks */
-- const struct nfnl_callback *cb; /* callback for individual types */
--};
--
--extern int nfnetlink_subsys_register(const struct nfnetlink_subsystem *n);
--extern int nfnetlink_subsys_unregister(const struct nfnetlink_subsystem *n);
--
--extern int nfnetlink_has_listeners(unsigned int group);
--extern int nfnetlink_send(struct sk_buff *skb, u32 pid, unsigned group,
-- int echo);
--extern int nfnetlink_unicast(struct sk_buff *skb, u_int32_t pid, int flags);
--
--#define MODULE_ALIAS_NFNL_SUBSYS(subsys) \
-- MODULE_ALIAS("nfnetlink-subsys-" __stringify(subsys))
--
--#endif /* __KERNEL__ */
- #endif /* _NFNETLINK_H */
-diff --git a/include/libnfnetlink/linux_nfnetlink_compat.h b/include/libnfnetlink/linux_nfnetlink_compat.h
-index e145176..74b9e55 100644
---- a/include/libnfnetlink/linux_nfnetlink_compat.h
-+++ b/include/libnfnetlink/linux_nfnetlink_compat.h
-@@ -1,6 +1,8 @@
- #ifndef _NFNETLINK_COMPAT_H
- #define _NFNETLINK_COMPAT_H
--#ifndef __KERNEL__
-+
-+#include <linux/types.h>
-+
- /* Old nfnetlink macros for userspace */
-
- /* nfnetlink groups: Up to 32 maximum */
-@@ -18,10 +20,9 @@
- * ! nfnetlink use the same attributes methods. - J. Schulist.
- */
-
--struct nfattr
--{
-- u_int16_t nfa_len;
-- u_int16_t nfa_type; /* we use 15 bits for the type, and the highest
-+struct nfattr {
-+ __u16 nfa_len;
-+ __u16 nfa_type; /* we use 15 bits for the type, and the highest
- * bit to indicate whether the payload is nested */
- };
-
-@@ -57,5 +58,4 @@ struct nfattr
- + NLMSG_ALIGN(sizeof(struct nfgenmsg))))
- #define NFM_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct nfgenmsg))
-
--#endif /* ! __KERNEL__ */
- #endif /* _NFNETLINK_COMPAT_H */
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0006-src-Use-stdint-types-everywhere.patch b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0006-src-Use-stdint-types-everywhere.patch
deleted file mode 100644
index 72c9987d1e..0000000000
--- a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink/0006-src-Use-stdint-types-everywhere.patch
+++ /dev/null
@@ -1,403 +0,0 @@
-From 5cb589e246c91331ee6b3926b15f5e6cfc8ad95e Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Sat, 16 May 2015 14:59:57 +0200
-Subject: [PATCH 6/6] src: Use stdint types everywhere
-
-Signed-off-by: Felix Janda <felix.janda@posteo.de>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- include/libnfnetlink/libnfnetlink.h | 25 ++++++-------
- src/iftable.c | 8 ++---
- src/iftable.h | 4 +--
- src/libnfnetlink.c | 72 ++++++++++++++++++-------------------
- src/rtnl.c | 4 +--
- src/rtnl.h | 2 +-
- 6 files changed, 58 insertions(+), 57 deletions(-)
-
-diff --git a/include/libnfnetlink/libnfnetlink.h b/include/libnfnetlink/libnfnetlink.h
-index 1d8c49d..cd0be3d 100644
---- a/include/libnfnetlink/libnfnetlink.h
-+++ b/include/libnfnetlink/libnfnetlink.h
-@@ -15,6 +15,7 @@
- #define aligned_u64 unsigned long long __attribute__((aligned(8)))
- #endif
-
-+#include <stdint.h>
- #include <sys/socket.h> /* for sa_family_t */
- #include <linux/netlink.h>
- #include <libnfnetlink/linux_nfnetlink.h>
-@@ -55,7 +56,7 @@ struct nfnlhdr {
- struct nfnl_callback {
- int (*call)(struct nlmsghdr *nlh, struct nfattr *nfa[], void *data);
- void *data;
-- u_int16_t attr_count;
-+ uint16_t attr_count;
- };
-
- struct nfnl_handle;
-@@ -69,7 +70,7 @@ extern struct nfnl_handle *nfnl_open(void);
- extern int nfnl_close(struct nfnl_handle *);
-
- extern struct nfnl_subsys_handle *nfnl_subsys_open(struct nfnl_handle *,
-- u_int8_t, u_int8_t,
-+ uint8_t, uint8_t,
- unsigned int);
- extern void nfnl_subsys_close(struct nfnl_subsys_handle *);
-
-@@ -88,8 +89,8 @@ extern int nfnl_sendiov(const struct nfnl_handle *nfnlh,
- const struct iovec *iov, unsigned int num,
- unsigned int flags);
- extern void nfnl_fill_hdr(struct nfnl_subsys_handle *, struct nlmsghdr *,
-- unsigned int, u_int8_t, u_int16_t, u_int16_t,
-- u_int16_t);
-+ unsigned int, uint8_t, uint16_t, uint16_t,
-+ uint16_t);
- extern __attribute__((deprecated)) int
- nfnl_talk(struct nfnl_handle *, struct nlmsghdr *, pid_t,
- unsigned, struct nlmsghdr *,
-@@ -103,8 +104,8 @@ nfnl_listen(struct nfnl_handle *,
- /* receiving */
- extern ssize_t nfnl_recv(const struct nfnl_handle *h, unsigned char *buf, size_t len);
- extern int nfnl_callback_register(struct nfnl_subsys_handle *,
-- u_int8_t type, struct nfnl_callback *cb);
--extern int nfnl_callback_unregister(struct nfnl_subsys_handle *, u_int8_t type);
-+ uint8_t type, struct nfnl_callback *cb);
-+extern int nfnl_callback_unregister(struct nfnl_subsys_handle *, uint8_t type);
- extern int nfnl_handle_packet(struct nfnl_handle *, char *buf, int len);
-
- /* parsing */
-@@ -180,12 +181,12 @@ extern int nfnl_query(struct nfnl_handle *h, struct nlmsghdr *nlh);
-
- /* nfnl attribute handling functions */
- extern int nfnl_addattr_l(struct nlmsghdr *, int, int, const void *, int);
--extern int nfnl_addattr8(struct nlmsghdr *, int, int, u_int8_t);
--extern int nfnl_addattr16(struct nlmsghdr *, int, int, u_int16_t);
--extern int nfnl_addattr32(struct nlmsghdr *, int, int, u_int32_t);
-+extern int nfnl_addattr8(struct nlmsghdr *, int, int, uint8_t);
-+extern int nfnl_addattr16(struct nlmsghdr *, int, int, uint16_t);
-+extern int nfnl_addattr32(struct nlmsghdr *, int, int, uint32_t);
- extern int nfnl_nfa_addattr_l(struct nfattr *, int, int, const void *, int);
--extern int nfnl_nfa_addattr16(struct nfattr *, int, int, u_int16_t);
--extern int nfnl_nfa_addattr32(struct nfattr *, int, int, u_int32_t);
-+extern int nfnl_nfa_addattr16(struct nfattr *, int, int, uint16_t);
-+extern int nfnl_nfa_addattr32(struct nfattr *, int, int, uint32_t);
- extern int nfnl_parse_attr(struct nfattr **, int, struct nfattr *, int);
- #define nfnl_parse_nested(tb, max, nfa) \
- nfnl_parse_attr((tb), (max), NFA_DATA((nfa)), NFA_PAYLOAD((nfa)))
-@@ -197,7 +198,7 @@ extern int nfnl_parse_attr(struct nfattr **, int, struct nfattr *, int);
- ({ (tail)->nfa_len = (void *) NLMSG_TAIL(nlh) - (void *) tail; })
-
- extern void nfnl_build_nfa_iovec(struct iovec *iov, struct nfattr *nfa,
-- u_int16_t type, u_int32_t len,
-+ uint16_t type, uint32_t len,
- unsigned char *val);
- extern unsigned int nfnl_rcvbufsiz(const struct nfnl_handle *h,
- unsigned int size);
-diff --git a/src/iftable.c b/src/iftable.c
-index 5976ed8..157f97b 100644
---- a/src/iftable.c
-+++ b/src/iftable.c
-@@ -27,10 +27,10 @@
- struct ifindex_node {
- struct list_head head;
-
-- u_int32_t index;
-- u_int32_t type;
-- u_int32_t alen;
-- u_int32_t flags;
-+ uint32_t index;
-+ uint32_t type;
-+ uint32_t alen;
-+ uint32_t flags;
- char addr[8];
- char name[16];
- };
-diff --git a/src/iftable.h b/src/iftable.h
-index 8df7f24..655df6b 100644
---- a/src/iftable.h
-+++ b/src/iftable.h
-@@ -1,8 +1,8 @@
- #ifndef _IFTABLE_H
- #define _IFTABLE_H
-
--int iftable_delete(u_int32_t dst, u_int32_t mask, u_int32_t gw, u_int32_t oif);
--int iftable_insert(u_int32_t dst, u_int32_t mask, u_int32_t gw, u_int32_t oif);
-+int iftable_delete(uint32_t dst, uint32_t mask, uint32_t gw, uint32_t oif);
-+int iftable_insert(uint32_t dst, uint32_t mask, uint32_t gw, uint32_t oif);
-
- int iftable_init(void);
- void iftable_fini(void);
-diff --git a/src/libnfnetlink.c b/src/libnfnetlink.c
-index 398b7d7..df57533 100644
---- a/src/libnfnetlink.c
-+++ b/src/libnfnetlink.c
-@@ -72,9 +72,9 @@
-
- struct nfnl_subsys_handle {
- struct nfnl_handle *nfnlh;
-- u_int32_t subscriptions;
-- u_int8_t subsys_id;
-- u_int8_t cb_count;
-+ uint32_t subscriptions;
-+ uint8_t subsys_id;
-+ uint8_t cb_count;
- struct nfnl_callback *cb; /* array of callbacks */
- };
-
-@@ -86,11 +86,11 @@ struct nfnl_handle {
- int fd;
- struct sockaddr_nl local;
- struct sockaddr_nl peer;
-- u_int32_t subscriptions;
-- u_int32_t seq;
-- u_int32_t dump;
-- u_int32_t rcv_buffer_size; /* for nfnl_catch */
-- u_int32_t flags;
-+ uint32_t subscriptions;
-+ uint32_t seq;
-+ uint32_t dump;
-+ uint32_t rcv_buffer_size; /* for nfnl_catch */
-+ uint32_t flags;
- struct nlmsghdr *last_nlhdr;
- struct nfnl_subsys_handle subsys[NFNL_MAX_SUBSYS+1];
- };
-@@ -145,7 +145,7 @@ unsigned int nfnl_portid(const struct nfnl_handle *h)
- static int recalc_rebind_subscriptions(struct nfnl_handle *nfnlh)
- {
- int i, err;
-- u_int32_t new_subscriptions = nfnlh->subscriptions;
-+ uint32_t new_subscriptions = nfnlh->subscriptions;
-
- for (i = 0; i < NFNL_MAX_SUBSYS; i++)
- new_subscriptions |= nfnlh->subsys[i].subscriptions;
-@@ -273,8 +273,8 @@ void nfnl_set_rcv_buffer_size(struct nfnl_handle *h, unsigned int size)
- * a valid address that points to a nfnl_subsys_handle structure is returned.
- */
- struct nfnl_subsys_handle *
--nfnl_subsys_open(struct nfnl_handle *nfnlh, u_int8_t subsys_id,
-- u_int8_t cb_count, u_int32_t subscriptions)
-+nfnl_subsys_open(struct nfnl_handle *nfnlh, uint8_t subsys_id,
-+ uint8_t cb_count, uint32_t subscriptions)
- {
- struct nfnl_subsys_handle *ssh;
-
-@@ -435,10 +435,10 @@ int nfnl_sendiov(const struct nfnl_handle *nfnlh, const struct iovec *iov,
- */
- void nfnl_fill_hdr(struct nfnl_subsys_handle *ssh,
- struct nlmsghdr *nlh, unsigned int len,
-- u_int8_t family,
-- u_int16_t res_id,
-- u_int16_t msg_type,
-- u_int16_t msg_flags)
-+ uint8_t family,
-+ uint16_t res_id,
-+ uint16_t msg_type,
-+ uint16_t msg_flags)
- {
- assert(ssh);
- assert(nlh);
-@@ -815,7 +815,7 @@ int nfnl_addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data,
- }
-
- /**
-- * nfnl_nfa_addattr_l - Add variable length attribute to struct nfattr
-+ * nfnl_nfa_addattr_l - Add variable length attribute to struct nfattr
- *
- * @nfa: struct nfattr
- * @maxlen: maximal length of nfattr buffer
-@@ -849,14 +849,14 @@ int nfnl_nfa_addattr_l(struct nfattr *nfa, int maxlen, int type,
- }
-
- /**
-- * nfnl_addattr8 - Add u_int8_t attribute to nlmsghdr
-+ * nfnl_addattr8 - Add uint8_t attribute to nlmsghdr
- *
- * @n: netlink message header to which attribute is to be added
- * @maxlen: maximum length of netlink message header
- * @type: type of new attribute
- * @data: content of new attribute
- */
--int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, u_int8_t data)
-+int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, uint8_t data)
- {
- assert(n);
- assert(maxlen > 0);
-@@ -866,7 +866,7 @@ int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, u_int8_t data)
- }
-
- /**
-- * nfnl_nfa_addattr16 - Add u_int16_t attribute to struct nfattr
-+ * nfnl_nfa_addattr16 - Add uint16_t attribute to struct nfattr
- *
- * @nfa: struct nfattr
- * @maxlen: maximal length of nfattr buffer
-@@ -875,7 +875,7 @@ int nfnl_addattr8(struct nlmsghdr *n, int maxlen, int type, u_int8_t data)
- *
- */
- int nfnl_nfa_addattr16(struct nfattr *nfa, int maxlen, int type,
-- u_int16_t data)
-+ uint16_t data)
- {
- assert(nfa);
- assert(maxlen > 0);
-@@ -885,7 +885,7 @@ int nfnl_nfa_addattr16(struct nfattr *nfa, int maxlen, int type,
- }
-
- /**
-- * nfnl_addattr16 - Add u_int16_t attribute to nlmsghdr
-+ * nfnl_addattr16 - Add uint16_t attribute to nlmsghdr
- *
- * @n: netlink message header to which attribute is to be added
- * @maxlen: maximum length of netlink message header
-@@ -894,7 +894,7 @@ int nfnl_nfa_addattr16(struct nfattr *nfa, int maxlen, int type,
- *
- */
- int nfnl_addattr16(struct nlmsghdr *n, int maxlen, int type,
-- u_int16_t data)
-+ uint16_t data)
- {
- assert(n);
- assert(maxlen > 0);
-@@ -904,7 +904,7 @@ int nfnl_addattr16(struct nlmsghdr *n, int maxlen, int type,
- }
-
- /**
-- * nfnl_nfa_addattr32 - Add u_int32_t attribute to struct nfattr
-+ * nfnl_nfa_addattr32 - Add uint32_t attribute to struct nfattr
- *
- * @nfa: struct nfattr
- * @maxlen: maximal length of nfattr buffer
-@@ -913,7 +913,7 @@ int nfnl_addattr16(struct nlmsghdr *n, int maxlen, int type,
- *
- */
- int nfnl_nfa_addattr32(struct nfattr *nfa, int maxlen, int type,
-- u_int32_t data)
-+ uint32_t data)
- {
- assert(nfa);
- assert(maxlen > 0);
-@@ -923,7 +923,7 @@ int nfnl_nfa_addattr32(struct nfattr *nfa, int maxlen, int type,
- }
-
- /**
-- * nfnl_addattr32 - Add u_int32_t attribute to nlmsghdr
-+ * nfnl_addattr32 - Add uint32_t attribute to nlmsghdr
- *
- * @n: netlink message header to which attribute is to be added
- * @maxlen: maximum length of netlink message header
-@@ -932,7 +932,7 @@ int nfnl_nfa_addattr32(struct nfattr *nfa, int maxlen, int type,
- *
- */
- int nfnl_addattr32(struct nlmsghdr *n, int maxlen, int type,
-- u_int32_t data)
-+ uint32_t data)
- {
- assert(n);
- assert(maxlen > 0);
-@@ -980,7 +980,7 @@ int nfnl_parse_attr(struct nfattr *tb[], int max, struct nfattr *nfa, int len)
- *
- */
- void nfnl_build_nfa_iovec(struct iovec *iov, struct nfattr *nfa,
-- u_int16_t type, u_int32_t len, unsigned char *val)
-+ uint16_t type, uint32_t len, unsigned char *val)
- {
- assert(iov);
- assert(nfa);
-@@ -1115,7 +1115,7 @@ struct nlmsghdr *nfnl_get_msg_next(struct nfnl_handle *h,
- * appropiately.
- */
- int nfnl_callback_register(struct nfnl_subsys_handle *ssh,
-- u_int8_t type, struct nfnl_callback *cb)
-+ uint8_t type, struct nfnl_callback *cb)
- {
- assert(ssh);
- assert(cb);
-@@ -1138,7 +1138,7 @@ int nfnl_callback_register(struct nfnl_subsys_handle *ssh,
- * On sucess, 0 is returned. On error, -1 is returned and errno is
- * set appropiately.
- */
--int nfnl_callback_unregister(struct nfnl_subsys_handle *ssh, u_int8_t type)
-+int nfnl_callback_unregister(struct nfnl_subsys_handle *ssh, uint8_t type)
- {
- assert(ssh);
-
-@@ -1161,8 +1161,8 @@ int nfnl_check_attributes(const struct nfnl_handle *h,
- assert(nfa);
-
- int min_len;
-- u_int8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
-- u_int8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type);
-+ uint8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
-+ uint8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type);
- const struct nfnl_subsys_handle *ssh;
- struct nfnl_callback *cb;
-
-@@ -1212,8 +1212,8 @@ static int __nfnl_handle_msg(struct nfnl_handle *h, struct nlmsghdr *nlh,
- int len)
- {
- struct nfnl_subsys_handle *ssh;
-- u_int8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
-- u_int8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type);
-+ uint8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
-+ uint8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type);
- int err = 0;
-
- if (subsys_id > NFNL_MAX_SUBSYS)
-@@ -1243,7 +1243,7 @@ int nfnl_handle_packet(struct nfnl_handle *h, char *buf, int len)
- {
-
- while (len >= NLMSG_SPACE(0)) {
-- u_int32_t rlen;
-+ uint32_t rlen;
- struct nlmsghdr *nlh = (struct nlmsghdr *)buf;
-
- if (nlh->nlmsg_len < sizeof(struct nlmsghdr)
-@@ -1285,8 +1285,8 @@ static int nfnl_is_error(struct nfnl_handle *h, struct nlmsghdr *nlh)
- static int nfnl_step(struct nfnl_handle *h, struct nlmsghdr *nlh)
- {
- struct nfnl_subsys_handle *ssh;
-- u_int8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
-- u_int8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type);
-+ uint8_t type = NFNL_MSG_TYPE(nlh->nlmsg_type);
-+ uint8_t subsys_id = NFNL_SUBSYS_ID(nlh->nlmsg_type);
-
- /* Is this an error message? */
- if (nfnl_is_error(h, nlh)) {
-diff --git a/src/rtnl.c b/src/rtnl.c
-index 7b4ac7d..284eecd 100644
---- a/src/rtnl.c
-+++ b/src/rtnl.c
-@@ -30,7 +30,7 @@
- #define rtnl_log(x, ...)
-
- static inline struct rtnl_handler *
--find_handler(struct rtnl_handle *rtnl_handle, u_int16_t type)
-+find_handler(struct rtnl_handle *rtnl_handle, uint16_t type)
- {
- struct rtnl_handler *h;
- for (h = rtnl_handle->handlers; h; h = h->next) {
-@@ -41,7 +41,7 @@ find_handler(struct rtnl_handle *rtnl_handle, u_int16_t type)
- }
-
- static int call_handler(struct rtnl_handle *rtnl_handle,
-- u_int16_t type,
-+ uint16_t type,
- struct nlmsghdr *hdr)
- {
- struct rtnl_handler *h = find_handler(rtnl_handle, type);
-diff --git a/src/rtnl.h b/src/rtnl.h
-index 0c403dc..2cb22a8 100644
---- a/src/rtnl.h
-+++ b/src/rtnl.h
-@@ -7,7 +7,7 @@
- struct rtnl_handler {
- struct rtnl_handler *next;
-
-- u_int16_t nlmsg_type;
-+ uint16_t nlmsg_type;
- int (*handlefn)(struct nlmsghdr *h, void *arg);
- void *arg;
- };
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb
deleted file mode 100644
index 64271c74d3..0000000000
--- a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.1.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Low-level library for netfilter related kernel/userspace communication"
-DESCRIPTION = "libnfnetlink is the low-level library for netfilter related \
-kernel/userspace communication. It provides a generic messaging \
-infrastructure for in-kernel netfilter subsystems (such as nfnetlink_log, \
-nfnetlink_queue, nfnetlink_conntrack) and their respective users and/or \
-management tools in userspace."
-HOMEPAGE = "http://www.netfilter.org/projects/libnfnetlink/index.html"
-SECTION = "libs"
-LICENSE = "GPL-2.0-or-later"
-
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-
-SRC_URI = "http://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-${PV}.tar.bz2;name=tar \
- file://0001-build-resolve-automake-1.12-warnings.patch \
- file://0002-src-get-source-code-license-header-in-sync-with-curr.patch \
- file://0003-configure-uclinux-is-also-linux.patch \
- file://0004-libnfnetlink-initialize-attribute-padding-to-resolve.patch \
- file://0005-include-Sync-with-kernel-headers.patch \
- file://0006-src-Use-stdint-types-everywhere.patch \
- "
-SRC_URI[tar.md5sum] = "98927583d2016a9fb1936fed992e2c5e"
-SRC_URI[tar.sha256sum] = "f270e19de9127642d2a11589ef2ec97ef90a649a74f56cf9a96306b04817b51a"
-
-inherit autotools pkgconfig
diff --git a/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.2.bb b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.2.bb
new file mode 100644
index 0000000000..2778185618
--- /dev/null
+++ b/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.2.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Low-level library for netfilter related kernel/userspace communication"
+DESCRIPTION = "libnfnetlink is the low-level library for netfilter related \
+kernel/userspace communication. It provides a generic messaging \
+infrastructure for in-kernel netfilter subsystems (such as nfnetlink_log, \
+nfnetlink_queue, nfnetlink_conntrack) and their respective users and/or \
+management tools in userspace."
+HOMEPAGE = "https://www.netfilter.org/projects/libnfnetlink/index.html"
+SECTION = "libs"
+LICENSE = "GPL-2.0-or-later"
+
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+SRC_URI = "https://www.netfilter.org/projects/libnfnetlink/files/${BPN}-${PV}.tar.bz2 \
+ "
+
+SRC_URI[md5sum] = "39d65185e2990562c64de05a08de8771"
+SRC_URI[sha256sum] = "b064c7c3d426efb4786e60a8e6859b82ee2f2c5e49ffeea640cfe4fe33cbc376"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl/0001-configure.ac-Add-serial-tests.patch b/meta-networking/recipes-filter/libnftnl/libnftnl/0001-configure.ac-Add-serial-tests.patch
index 049ad2d39a..abeca6579c 100644
--- a/meta-networking/recipes-filter/libnftnl/libnftnl/0001-configure.ac-Add-serial-tests.patch
+++ b/meta-networking/recipes-filter/libnftnl/libnftnl/0001-configure.ac-Add-serial-tests.patch
@@ -1,4 +1,4 @@
-From 1cb59c1fed33607e4fb2bee9144ce45276e9cc96 Mon Sep 17 00:00:00 2001
+From 801a4dd42449fb5f09fb9cb99714ed137278ca24 Mon Sep 17 00:00:00 2001
From: Trevor Gamblin <trevor.gamblin@windriver.com>
Date: Tue, 14 Dec 2021 12:31:12 -0500
Subject: [PATCH] configure.ac: Add serial-tests
@@ -14,13 +14,13 @@ Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index 8e68035..2704214 100644
+index d5c6bd0..d90048e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8,7 +8,9 @@ AC_CONFIG_HEADERS([config.h])
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
- AM_INIT_AUTOMAKE([-Wall foreign tar-pax no-dist-gzip dist-bzip2
+ AM_INIT_AUTOMAKE([-Wall foreign tar-pax no-dist-gzip dist-xz
- 1.6 subdir-objects])
+ 1.6 subdir-objects serial-tests])
+
@@ -29,5 +29,5 @@ index 8e68035..2704214 100644
dnl kernel style compile messages
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
--
-2.33.1
+2.25.1
diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.3.bb b/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.3.bb
deleted file mode 100644
index ab55767fee..0000000000
--- a/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.3.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Library for low-level interaction with nftables Netlink's API over libmnl"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26"
-SECTION = "libs"
-
-SRC_URI = "git://git.netfilter.org/libnftnl;branch=master \
- file://0001-configure.ac-Add-serial-tests.patch \
- file://run-ptest \
- "
-SRCREV = "817c8b66f1ea8c223b7513d4cd7bff525d8a0a9f"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig ptest
-
-DEPENDS = "libmnl"
-RDEPENDS:${PN}-ptest += " bash python3-core make"
-
-TESTDIR = "tests"
-
-do_compile_ptest() {
- cp -rf ${S}/build-aux .
- oe_runmake buildtest-TESTS
-}
-
-do_install_ptest() {
- cp -rf ${B}/build-aux ${D}${PTEST_PATH}
- install -d ${D}${PTEST_PATH}/${TESTDIR}
- cp -rf ${B}/${TESTDIR}/Makefile ${D}${PTEST_PATH}/${TESTDIR}
-
- # the binaries compiled in ${TESTDIR} will look for a compiler to
- # use, which will cause failures. Substitute the binaries in
- # ${TESTDIR}/.libs instead
- cp -rf ${B}/${TESTDIR}/.libs/* ${D}${PTEST_PATH}/${TESTDIR}
-
- # Alter the Makefile so that it does not try and rebuild anything in
- # other nonexistent paths before running the actual tests
- sed -i 's/^Makefile/_Makefile/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-}
diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.6.bb b/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.6.bb
new file mode 100644
index 0000000000..841a7267b8
--- /dev/null
+++ b/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.6.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Library for low-level interaction with nftables Netlink's API over libmnl"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26"
+SECTION = "libs"
+
+SRC_URI = "git://git.netfilter.org/libnftnl;branch=master \
+ file://0001-configure.ac-Add-serial-tests.patch \
+ file://run-ptest \
+ "
+SRCREV = "83dd4dc316b4189d16ead54cd30bfc89e5160cfd"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig ptest
+
+DEPENDS = "libmnl"
+RDEPENDS:${PN}-ptest += " bash python3-core make"
+
+TESTDIR = "tests"
+
+do_compile_ptest() {
+ cp -rf ${S}/build-aux .
+ oe_runmake buildtest-TESTS
+}
+
+do_install_ptest() {
+ cp -rf ${B}/build-aux ${D}${PTEST_PATH}
+ install -d ${D}${PTEST_PATH}/${TESTDIR}
+ cp -rf ${B}/${TESTDIR}/Makefile ${D}${PTEST_PATH}/${TESTDIR}
+
+ # the binaries compiled in ${TESTDIR} will look for a compiler to
+ # use, which will cause failures. Substitute the binaries in
+ # ${TESTDIR}/.libs instead
+ cp -rf ${B}/${TESTDIR}/.libs/* ${D}${PTEST_PATH}/${TESTDIR}
+
+ # Alter the Makefile so that it does not try and rebuild anything in
+ # other nonexistent paths before running the actual tests
+ sed -i 's/^Makefile/_Makefile/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+}
diff --git a/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb b/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb
index 20a84121ee..9b938beae3 100644
--- a/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb
+++ b/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb
@@ -3,12 +3,10 @@ HOMEPAGE = "http://netfilter.org/projects/nfacct/"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-UPSTREAM_CHECK_URI = "ftp://ftp.netfilter.org/pub/nfacct/"
-
-SRC_URI = "ftp://ftp.netfilter.org/pub/${BPN}/${BP}.tar.bz2"
-
-SRC_URI[md5sum] = "94faafdaaed85ca9220c5692be8a408e"
+UPSTREAM_CHECK_URI = "https://www.netfilter.org/pub/nfacct"
+SRC_URI = "https://www.netfilter.org/pub/${BPN}/${BP}.tar.bz2"
SRC_URI[sha256sum] = "ecff2218754be318bce3c3a5d1775bab93bf4168b2c4aac465785de5655fbd69"
+
DEPENDS = "libnfnetlink libmnl libnetfilter-acct"
EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"'
diff --git a/meta-networking/recipes-filter/nftables/nftables/0001-nftables-python-Split-root-from-prefix.patch b/meta-networking/recipes-filter/nftables/nftables/0001-nftables-python-Split-root-from-prefix.patch
deleted file mode 100644
index 377b29fff8..0000000000
--- a/meta-networking/recipes-filter/nftables/nftables/0001-nftables-python-Split-root-from-prefix.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From c7513195a72b2e5be5c9c439cc606eb5dcc3fb7a Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alex.kiernan@gmail.com>
-Date: Tue, 12 Jul 2022 17:44:34 +0100
-Subject: [PATCH] nftables: python: Split root from prefix
-
-The buildpaths QA check fails when python is enabled:
-
- WARNING: nftables-1.0.4-r0 do_package_qa: QA Issue: File /usr/lib/python3.10/site-packages/nftables/__pycache__/nftables.cpython-310.pyc in package nftables-python contains reference to TMPDIR
- File /usr/lib/python3.10/site-packages/nftables/__pycache__/__init__.cpython-310.pyc in package nftables-python contains reference to TMPDIR [buildpaths]
-
-Upstream-Status: Pending
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
----
- py/Makefile.am | 2 +-
- py/setup.py | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/py/Makefile.am b/py/Makefile.am
-index 215ecd9e4751..a827cca10135 100644
---- a/py/Makefile.am
-+++ b/py/Makefile.am
-@@ -7,7 +7,7 @@ all-local:
- install-exec-local:
- cd $(srcdir) && \
- $(PYTHON_BIN) setup.py build --build-base $(abs_builddir) \
-- install --prefix $(DESTDIR)$(prefix)
-+ install --root $(DESTDIR) --prefix $(prefix)
-
- uninstall-local:
- rm -rf $(DESTDIR)$(prefix)/lib*/python*/site-packages/nftables
-diff --git a/py/setup.py b/py/setup.py
-index 72fc8fd98b26..976aec583b71 100755
---- a/py/setup.py
-+++ b/py/setup.py
-@@ -1,5 +1,5 @@
- #!/usr/bin/env python
--from distutils.core import setup
-+from setuptools._distutils.core import setup
- from nftables import NFTABLES_VERSION
-
- setup(name='nftables',
---
-2.35.1
-
diff --git a/meta-networking/recipes-filter/nftables/nftables/0001-tests-shell-Fix-sets-reset_command_0-for-current-ker.patch b/meta-networking/recipes-filter/nftables/nftables/0001-tests-shell-Fix-sets-reset_command_0-for-current-ker.patch
new file mode 100644
index 0000000000..164182bb1e
--- /dev/null
+++ b/meta-networking/recipes-filter/nftables/nftables/0001-tests-shell-Fix-sets-reset_command_0-for-current-ker.patch
@@ -0,0 +1,53 @@
+From 7a6089a400a573b9a4fd92f29c00a6be7b8ef269 Mon Sep 17 00:00:00 2001
+From: Phil Sutter <phil@nwl.cc>
+Date: Thu, 2 Nov 2023 16:02:14 +0100
+Subject: [PATCH] tests: shell: Fix sets/reset_command_0 for current kernels
+
+Since kernel commit 4c90bba60c26 ("netfilter: nf_tables: do not refresh
+timeout when resetting element"), element reset won't touch expiry
+anymore. Invert the one check to make sure it remains unaltered, drop
+the other testing behaviour for per-element timeouts.
+
+Signed-off-by: Phil Sutter <phil@nwl.cc>
+
+Upstream-Status: Backport
+[https://git.netfilter.org/nftables/commit/?id=7a6089a400a573b9a4fd92f29c00a6be7b8ef269]
+
+Signed-off-by: William Lyu <William.Lyu@windriver.com>
+---
+ tests/shell/testcases/sets/reset_command_0 | 10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/tests/shell/testcases/sets/reset_command_0 b/tests/shell/testcases/sets/reset_command_0
+index e663dac8..d38ddb3f 100755
+--- a/tests/shell/testcases/sets/reset_command_0
++++ b/tests/shell/testcases/sets/reset_command_0
+@@ -44,10 +44,10 @@ elem='element t s { 1.0.0.1 . udp . 53 }'
+ grep 'elements = ' | drop_seconds | uniq | wc -l) == 1 ]]
+ echo OK
+
+-echo -n "counters and expiry are reset: "
++echo -n "counters are reset, expiry left alone: "
+ NEW=$($NFT "get $elem")
+ grep -q 'counter packets 0 bytes 0' <<< "$NEW"
+-[[ $(expires_minutes <<< "$NEW") -gt 20 ]]
++[[ $(expires_minutes <<< "$NEW") -lt 20 ]]
+ echo OK
+
+ echo -n "get map elem matches reset map elem: "
+@@ -80,12 +80,6 @@ OUT=$($NFT reset map t m)
+ $DIFF -u <(echo "$EXP") <(echo "$OUT")
+ echo OK
+
+-echo -n "reset command respects per-element timeout: "
+-VAL=$($NFT get element t s '{ 2.0.0.2 . tcp . 22 }' | expires_minutes)
+-[[ $VAL -lt 15 ]] # custom timeout applies
+-[[ $VAL -gt 10 ]] # expires was reset
+-echo OK
+-
+ echo -n "remaining elements are reset: "
+ OUT=$($NFT list ruleset)
+ grep -q '2.0.0.2 . tcp . 22 counter packets 0 bytes 0' <<< "$OUT"
+--
+2.43.0
+
diff --git a/meta-networking/recipes-filter/nftables/nftables/0001-tests-shell-skip-secmark-tests-if-kernel-does-not-su.patch b/meta-networking/recipes-filter/nftables/nftables/0001-tests-shell-skip-secmark-tests-if-kernel-does-not-su.patch
new file mode 100644
index 0000000000..2a966ab443
--- /dev/null
+++ b/meta-networking/recipes-filter/nftables/nftables/0001-tests-shell-skip-secmark-tests-if-kernel-does-not-su.patch
@@ -0,0 +1,46 @@
+From fff913c1eefbc84eb2d9c52038ef29fe881e9ee9 Mon Sep 17 00:00:00 2001
+From: Pablo Neira Ayuso <pablo@netfilter.org>
+Date: Tue, 21 Nov 2023 21:16:38 +0100
+Subject: [PATCH] tests: shell: skip secmark tests if kernel does not support
+ it
+
+Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+
+Upstream-Status: Backport
+[https://git.netfilter.org/nftables/commit/?id=fff913c1eefbc84eb2d9c52038ef29fe881e9ee9]
+
+Signed-off-by: William Lyu <William.Lyu@windriver.com>
+---
+ tests/shell/features/secmark.nft | 7 +++++++
+ tests/shell/testcases/json/0005secmark_objref_0 | 1 +
+ 2 files changed, 8 insertions(+)
+ create mode 100644 tests/shell/features/secmark.nft
+
+diff --git a/tests/shell/features/secmark.nft b/tests/shell/features/secmark.nft
+new file mode 100644
+index 00000000..ccbb572f
+--- /dev/null
++++ b/tests/shell/features/secmark.nft
+@@ -0,0 +1,7 @@
++# fb961945457f ("netfilter: nf_tables: add SECMARK support")
++# v4.20-rc1~14^2~125^2~5
++table inet x {
++ secmark ssh_server {
++ "system_u:object_r:ssh_server_packet_t:s0"
++ }
++}
+diff --git a/tests/shell/testcases/json/0005secmark_objref_0 b/tests/shell/testcases/json/0005secmark_objref_0
+index 992d1b00..5c44f093 100755
+--- a/tests/shell/testcases/json/0005secmark_objref_0
++++ b/tests/shell/testcases/json/0005secmark_objref_0
+@@ -1,6 +1,7 @@
+ #!/bin/bash
+
+ # NFT_TEST_REQUIRES(NFT_TEST_HAVE_json)
++# NFT_TEST_REQUIRES(NFT_TEST_HAVE_secmark)
+
+ set -e
+
+--
+2.43.0
+
diff --git a/meta-networking/recipes-filter/nftables/nftables/run-ptest b/meta-networking/recipes-filter/nftables/nftables/run-ptest
index 611b844853..32ddf9f455 100644
--- a/meta-networking/recipes-filter/nftables/nftables/run-ptest
+++ b/meta-networking/recipes-filter/nftables/nftables/run-ptest
@@ -1,2 +1,18 @@
#!/bin/sh
-tests/shell/run-tests.sh -v
+
+NFTABLESLIB=@libdir@/nftables
+cd ${NFTABLESLIB}/ptest || exit 1
+
+LOG="${NFTABLESLIB}/ptest/nftables_ptest_$(date +%Y%m%d-%H%M%S).log"
+NFT=nft
+tests/shell/run-tests.sh -v | sed -E '/I: \[OK\]/ s/^/PASS: / ; /W: \[(CHK DUMP|VALGRIND|TAINTED|DUMP FAIL|FAILED)\]/ s/^/FAIL: /' | sed "s,\x1B\[[0-9;]*[a-zA-Z],,g" | tee -a "${LOG}"
+
+passed=$(grep -c PASS: "${LOG}")
+failed=$(grep -c FAIL: "${LOG}")
+all=$((passed + failed))
+
+( echo "=== Test Summary ==="
+ echo "TOTAL: ${all}"
+ echo "PASSED: ${passed}"
+ echo "FAILED: ${failed}"
+) | tee -a "${LOG}"
diff --git a/meta-networking/recipes-filter/nftables/nftables_1.0.5.bb b/meta-networking/recipes-filter/nftables/nftables_1.0.5.bb
deleted file mode 100644
index 1708786f49..0000000000
--- a/meta-networking/recipes-filter/nftables/nftables_1.0.5.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Netfilter Tables userspace utillites"
-SECTION = "net"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79"
-
-DEPENDS = "libmnl libnftnl bison-native \
- ${@bb.utils.contains('PACKAGECONFIG', 'mini-gmp', '', 'gmp', d)}"
-
-SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \
- file://0001-nftables-python-Split-root-from-prefix.patch \
- file://run-ptest \
- "
-
-SRC_URI[sha256sum] = "8d1b4b18393af43698d10baa25d2b9b6397969beecac7816c35dd0714e4de50a"
-
-inherit autotools manpages pkgconfig ptest
-
-PACKAGECONFIG ?= "python readline json"
-PACKAGECONFIG[editline] = "--with-cli=editline, , libedit, , , linenoise readline"
-PACKAGECONFIG[json] = "--with-json, --without-json, jansson"
-PACKAGECONFIG[linenoise] = "--with-cli=linenoise, , linenoise, , , editline readline"
-PACKAGECONFIG[manpages] = "--enable-man-doc, --disable-man-doc, asciidoc-native"
-PACKAGECONFIG[mini-gmp] = "--with-mini-gmp, --without-mini-gmp"
-PACKAGECONFIG[python] = "--enable-python --with-python-bin=${PYTHON}, --disable-python, python3-setuptools-native"
-PACKAGECONFIG[readline] = "--with-cli=readline, , readline, , , editline linenoise"
-PACKAGECONFIG[xtables] = "--with-xtables, --without-xtables, iptables"
-
-EXTRA_OECONF = "${@bb.utils.contains_any('PACKAGECONFIG', 'editline linenoise readline', '', '--without-cli', d)}"
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
-
-RRECOMMENDS:${PN} += "kernel-module-nf-tables"
-
-PACKAGES =+ "${PN}-python"
-FILES:${PN}-python = "${nonarch_libdir}/${PYTHON_DIR}"
-RDEPENDS:${PN}-python = "python3-core python3-json ${PN}"
-
-RDEPENDS:${PN}-ptest += " ${PN}-python make bash python3-core python3-ctypes python3-json python3-misc util-linux"
-
-TESTDIR = "tests"
-
-PRIVATE_LIBS:${PN}-ptest:append = "libnftables.so.1"
-
-do_install_ptest() {
- cp -rf ${S}/build-aux ${D}${PTEST_PATH}
- cp -rf ${S}/src ${D}${PTEST_PATH}
- mkdir -p ${D}${PTEST_PATH}/src/.libs
- cp -rf ${B}/src/.libs/* ${D}${PTEST_PATH}/src/.libs
- cp -rf ${B}/src/.libs/nft ${D}${PTEST_PATH}/src/
- cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}/${TESTDIR}
- sed -i 's#/usr/bin/python#/usr/bin/python3#' ${D}${PTEST_PATH}/${TESTDIR}/json_echo/run-test.py
- sed -i 's#/usr/bin/env python#/usr/bin/env python3#' ${D}${PTEST_PATH}/${TESTDIR}/py/nft-test.py
-}
diff --git a/meta-networking/recipes-filter/nftables/nftables_1.0.9.bb b/meta-networking/recipes-filter/nftables/nftables_1.0.9.bb
new file mode 100644
index 0000000000..7718922742
--- /dev/null
+++ b/meta-networking/recipes-filter/nftables/nftables_1.0.9.bb
@@ -0,0 +1,106 @@
+SUMMARY = "Netfilter Tables userspace utillites"
+DESCRIPTION = "nftables replaces the popular {ip,ip6,arp,eb}tables. \
+ This software provides an in-kernel packet classification framework \
+ that is based on a network-specific Virtual Machine (VM), \
+ nft, a userspace command line tool and libnftables, a high-level userspace library."
+HOMEPAGE = "https://netfilter.org/projects/nftables"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=81ec33bb3e47b460fc993ac768c74b62"
+
+DEPENDS = "libmnl libnftnl bison-native \
+ ${@bb.utils.contains('PACKAGECONFIG', 'mini-gmp', '', 'gmp', d)}"
+
+SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.xz \
+ file://0001-tests-shell-Fix-sets-reset_command_0-for-current-ker.patch \
+ file://0001-tests-shell-skip-secmark-tests-if-kernel-does-not-su.patch \
+ file://run-ptest \
+ "
+SRC_URI[sha256sum] = "a3c304cd9ba061239ee0474f9afb938a9bb99d89b960246f66f0c3a0a85e14cd"
+
+inherit autotools manpages pkgconfig ptest
+
+PACKAGECONFIG ?= "python readline json"
+PACKAGECONFIG[editline] = "--with-cli=editline, , libedit, , , linenoise readline"
+PACKAGECONFIG[json] = "--with-json, --without-json, jansson"
+PACKAGECONFIG[linenoise] = "--with-cli=linenoise, , linenoise, , , editline readline"
+PACKAGECONFIG[manpages] = "--enable-man-doc, --disable-man-doc, asciidoc-native"
+PACKAGECONFIG[mini-gmp] = "--with-mini-gmp, --without-mini-gmp"
+PACKAGECONFIG[python] = ",, python3-setuptools-native"
+PACKAGECONFIG[readline] = "--with-cli=readline, , readline, , , editline linenoise"
+PACKAGECONFIG[xtables] = "--with-xtables, --without-xtables, iptables"
+
+EXTRA_OECONF = " \
+ ${@bb.utils.contains_any('PACKAGECONFIG', 'editline linenoise readline', '', '--without-cli', d)}"
+
+SETUPTOOLS_SETUP_PATH = "${S}/py"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'setuptools3', '', d)}
+
+PACKAGES =+ "${PN}-python"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+RDEPENDS:${PN}-python = "python3-core python3-json ${PN}"
+
+# Explicitly define do_configure, do_compile and do_install because both autotools and setuptools3
+# have EXPORT_FUNCTIONS do_configure do_compile do_install
+do_configure() {
+ autotools_do_configure
+ if ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then
+ setuptools3_do_configure
+ fi
+}
+
+do_compile() {
+ autotools_do_compile
+ if ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then
+ setuptools3_do_compile
+ fi
+}
+
+do_install() {
+ autotools_do_install
+ if ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then
+ setuptools3_do_install
+ fi
+}
+
+RDEPENDS:${PN}-ptest += " ${PN}-python bash coreutils make iproute2 iputils-ping procps python3-core python3-ctypes python3-json python3-misc sed util-linux"
+
+RRECOMMENDS:${PN}-ptest += "\
+kernel-module-nft-chain-nat kernel-module-nft-queue \
+kernel-module-nft-compat kernel-module-nft-quota \
+kernel-module-nft-connlimit kernel-module-nft-redir \
+kernel-module-nft-ct kernel-module-nft-reject \
+kernel-module-nft-flow-offload kernel-module-nft-reject-inet \
+kernel-module-nft-hash kernel-module-nft-reject-ipv4 \
+kernel-module-nft-limit kernel-module-nft-reject-ipv6 \
+kernel-module-nft-log kernel-module-nft-socket \
+kernel-module-nft-masq kernel-module-nft-synproxy \
+kernel-module-nft-nat kernel-module-nft-tunnel \
+kernel-module-nft-numgen kernel-module-nft-xfrm \
+kernel-module-nft-osf \
+kernel-module-nf-flow-table \
+kernel-module-nf-flow-table-inet \
+kernel-module-nf-nat \
+kernel-module-nf-log-syslog \
+kernel-module-nf-nat-ftp \
+kernel-module-nf-nat-sip \
+kernel-module-8021q \
+kernel-module-dummy"
+
+TESTDIR = "tests"
+
+PRIVATE_LIBS:${PN}-ptest:append = " libnftables.so.1"
+
+do_install_ptest() {
+ cp -rf ${S}/build-aux ${D}${PTEST_PATH}
+ cp -rf ${S}/src ${D}${PTEST_PATH}
+ mkdir -p ${D}${PTEST_PATH}/src/.libs
+ cp -rf ${B}/src/.libs/* ${D}${PTEST_PATH}/src/.libs
+ cp -rf ${B}/src/.libs/nft ${D}${PTEST_PATH}/src/
+ cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}/${TESTDIR}
+ sed -i 's#/usr/bin/python#/usr/bin/python3#' ${D}${PTEST_PATH}/${TESTDIR}/json_echo/run-test.py
+ sed -i 's#/usr/bin/env python#/usr/bin/env python3#' ${D}${PTEST_PATH}/${TESTDIR}/py/nft-test.py
+ # handle multilib
+ sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
+}
diff --git a/meta-networking/recipes-filter/ulogd2/ulogd2_2.0.7.bb b/meta-networking/recipes-filter/ulogd2/ulogd2_2.0.7.bb
deleted file mode 100644
index 7a307dc292..0000000000
--- a/meta-networking/recipes-filter/ulogd2/ulogd2_2.0.7.bb
+++ /dev/null
@@ -1,80 +0,0 @@
-SUMMARY = "Userspace logging daemon for netfilter/iptables"
-DESCRIPTION = "ulogd-2.x provides a flexible, almost universal logging daemon for \
-netfilter logging. This encompasses both packet-based logging (logging of \
-policy violations) and flow-based logging, e.g. for accounting purpose."
-HOMEPAGE = "https://www.netfilter.org/projects/ulogd/index.html"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-
-DEPENDS = "libnfnetlink"
-PROVIDES = "ulogd"
-
-PV .= "+git${SRCPV}"
-
-SRC_URI = "git://git.netfilter.org/ulogd2;branch=master \
- file://ulogd.init \
- file://ulogd.service \
-"
-SRCREV = "5f9628c9273815b6e560603427fe86118e7cb5bb"
-
-S = "${WORKDIR}/git"
-
-inherit autotools manpages pkgconfig systemd update-rc.d
-
-PACKAGECONFIG ?= "dbi json nfacct nfct nflog pcap sqlite3 ulog"
-PACKAGECONFIG[dbi] = "--enable-dbi,--disable-dbi,libdbi"
-PACKAGECONFIG[json] = "--enable-json,--disable-json,jansson"
-PACKAGECONFIG[manpages] = ""
-PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5"
-PACKAGECONFIG[nfacct] = "--enable-nfacct,--disable-nfacct,libnetfilter-acct"
-PACKAGECONFIG[nfct] = "--enable-nfct,--disable-nfct,libnetfilter-conntrack"
-PACKAGECONFIG[nflog] = "--enable-nflog,--disable-nflog,libnetfilter-log"
-PACKAGECONFIG[pcap] = "--enable-pcap,--disable-pcap,libpcap"
-PACKAGECONFIG[pgsql] = "--enable-pgsql,--disable-pgsql,postgresql"
-PACKAGECONFIG[sqlite3] = "--enable-sqlite3,--disable-sqlite3,sqlite3"
-PACKAGECONFIG[ulog] = "--enable-ulog,--disable-ulog"
-
-do_install:append () {
- install -d ${D}${sysconfdir}
- install -m 0644 ${B}/ulogd.conf ${D}${sysconfdir}/ulogd.conf
-
- install -d ${D}${mandir}/man8
- install -m 0644 ${S}/ulogd.8 ${D}${mandir}/man8/ulogd.8
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/ulogd.service ${D}${systemd_system_unitdir}
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/ulogd.service
-
- install -d ${D}${sysconfdir}/init.d
- install -m 755 ${WORKDIR}/ulogd.init ${D}${sysconfdir}/init.d/ulogd
-}
-
-PACKAGES += "${PN}-plugins"
-ALLOW_EMPTY:${PN}-plugins = "1"
-
-PACKAGES_DYNAMIC += "^${PN}-plugin-.*$"
-NOAUTOPACKAGEDEBUG = "1"
-
-CONFFILES:${PN} = "${sysconfdir}/ulogd.conf"
-RRECOMMENDS:${PN} += "${PN}-plugins"
-
-FILES:${PN}-dbg += "${sbindir}/.debug"
-
-python split_ulogd_libs () {
- libdir = d.expand('${libdir}/ulogd')
- dbglibdir = os.path.join(libdir, '.debug')
-
- split_packages = do_split_packages(d, libdir, r'^ulogd_.*\_([A-Z0-9]*).so', '${PN}-plugin-%s', 'ulogd2 %s plugin', prepend=True)
- split_dbg_packages = do_split_packages(d, dbglibdir, r'^ulogd_.*\_([A-Z0-9]*).so', '${PN}-plugin-%s-dbg', 'ulogd2 %s plugin - Debugging files', prepend=True, extra_depends='${PN}-dbg')
-
- if split_packages:
- pn = d.getVar('PN')
- d.setVar('RRECOMMENDS:' + pn + '-plugins', ' '.join(split_packages))
- d.appendVar('RRECOMMENDS:' + pn + '-dbg', ' ' + ' '.join(split_dbg_packages))
-}
-PACKAGESPLITFUNCS:prepend = "split_ulogd_libs "
-
-SYSTEMD_SERVICE:${PN} = "ulogd.service"
-
-INITSCRIPT_NAME = "ulogd"
-INITSCRIPT_PARAMS = "defaults"
diff --git a/meta-networking/recipes-filter/ulogd2/ulogd2_2.0.8.bb b/meta-networking/recipes-filter/ulogd2/ulogd2_2.0.8.bb
new file mode 100644
index 0000000000..d075ec4788
--- /dev/null
+++ b/meta-networking/recipes-filter/ulogd2/ulogd2_2.0.8.bb
@@ -0,0 +1,80 @@
+SUMMARY = "Userspace logging daemon for netfilter/iptables"
+DESCRIPTION = "ulogd-2.x provides a flexible, almost universal logging daemon for \
+netfilter logging. This encompasses both packet-based logging (logging of \
+policy violations) and flow-based logging, e.g. for accounting purpose."
+HOMEPAGE = "https://www.netfilter.org/projects/ulogd/index.html"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
+
+DEPENDS = "libnfnetlink"
+PROVIDES = "ulogd"
+
+PV .= "+git"
+
+SRC_URI = "git://git.netfilter.org/ulogd2;branch=master \
+ file://ulogd.init \
+ file://ulogd.service \
+"
+SRCREV = "79aa980f2df9dda0c097e8f883a62f414b9e5138"
+
+S = "${WORKDIR}/git"
+
+inherit autotools manpages pkgconfig systemd update-rc.d
+
+PACKAGECONFIG ?= "dbi json nfacct nfct nflog pcap sqlite3 ulog"
+PACKAGECONFIG[dbi] = "--enable-dbi,--disable-dbi,libdbi"
+PACKAGECONFIG[json] = "--enable-json,--disable-json,jansson"
+PACKAGECONFIG[manpages] = ""
+PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5"
+PACKAGECONFIG[nfacct] = "--enable-nfacct,--disable-nfacct,libnetfilter-acct"
+PACKAGECONFIG[nfct] = "--enable-nfct,--disable-nfct,libnetfilter-conntrack"
+PACKAGECONFIG[nflog] = "--enable-nflog,--disable-nflog,libnetfilter-log"
+PACKAGECONFIG[pcap] = "--enable-pcap,--disable-pcap,libpcap"
+PACKAGECONFIG[pgsql] = "--enable-pgsql,--disable-pgsql,postgresql"
+PACKAGECONFIG[sqlite3] = "--enable-sqlite3,--disable-sqlite3,sqlite3"
+PACKAGECONFIG[ulog] = "--enable-ulog,--disable-ulog"
+
+do_install:append () {
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${B}/ulogd.conf ${D}${sysconfdir}/ulogd.conf
+
+ install -d ${D}${mandir}/man8
+ install -m 0644 ${S}/ulogd.8 ${D}${mandir}/man8/ulogd.8
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/ulogd.service ${D}${systemd_system_unitdir}
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/ulogd.service
+
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/ulogd.init ${D}${sysconfdir}/init.d/ulogd
+}
+
+PACKAGES += "${PN}-plugins"
+ALLOW_EMPTY:${PN}-plugins = "1"
+
+PACKAGES_DYNAMIC += "^${PN}-plugin-.*$"
+NOAUTOPACKAGEDEBUG = "1"
+
+CONFFILES:${PN} = "${sysconfdir}/ulogd.conf"
+RRECOMMENDS:${PN} += "${PN}-plugins"
+
+FILES:${PN}-dbg += "${sbindir}/.debug"
+
+python split_ulogd_libs () {
+ libdir = d.expand('${libdir}/ulogd')
+ dbglibdir = os.path.join(libdir, '.debug')
+
+ split_packages = do_split_packages(d, libdir, r'^ulogd_.*\_([A-Z0-9]*).so', '${PN}-plugin-%s', 'ulogd2 %s plugin', prepend=True)
+ split_dbg_packages = do_split_packages(d, dbglibdir, r'^ulogd_.*\_([A-Z0-9]*).so', '${PN}-plugin-%s-dbg', 'ulogd2 %s plugin - Debugging files', prepend=True, extra_depends='${PN}-dbg')
+
+ if split_packages:
+ pn = d.getVar('PN')
+ d.setVar('RRECOMMENDS:' + pn + '-plugins', ' '.join(split_packages))
+ d.appendVar('RRECOMMENDS:' + pn + '-dbg', ' ' + ' '.join(split_dbg_packages))
+}
+PACKAGESPLITFUNCS:prepend = "split_ulogd_libs "
+
+SYSTEMD_SERVICE:${PN} = "ulogd.service"
+
+INITSCRIPT_NAME = "ulogd"
+INITSCRIPT_PARAMS = "defaults"
diff --git a/meta-networking/recipes-irc/weechat/weechat_3.4.1.bb b/meta-networking/recipes-irc/weechat/weechat_3.4.1.bb
deleted file mode 100644
index 64cd1079bd..0000000000
--- a/meta-networking/recipes-irc/weechat/weechat_3.4.1.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Full-featured IRC plugin: multi-servers, proxy support, IPv6, SASL authentication, nicklist, DCC, and many other features"
-HOMEPAE = "https://weechat.org/"
-SECTION = "net"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
-
-DEPENDS = "openssl zlib icu libgcrypt gnutls curl aspell"
-
-SRC_URI = "https://weechat.org/files/src/weechat-${PV}.tar.xz \
- file://0001-use-pkg-config-for-gcrypt-instead.patch \
- "
-
-SRC_URI[sha256sum] = "7e088109ad5dfbcb08a9a6b1dd70ea8236093fed8a13ee9d9c98881d7b1aeae7"
-
-inherit cmake pkgconfig
-
-PACKAGECONFIG ??= " ncurses python"
-PACKAGECONFIG[ncurses] = "-DENABLE_NCURSES=ON,-DENABLE_NCURSES=OFF,ncurses"
-PACKAGECONFIG[python] = "-DENABLE_PYTHON=ON,-DENABLE_PYTHON=OFF,python3,python3"
-
-EXTRA_OECMAKE:append = " -DENABLE_PHP=OFF -DENABLE_TCL=OFF -DENABLE_LUA=OFF \
- -DENABLE_JAVASCRIPT=OFF -DENABLE_RUBY=OFF \
- -DENABLE_GUILE=OFF -DENABLE_PERL=OFF -DENABLE_ASPELL=ON \
- -DLIBDIR=${libdir}"
-
-do_configure:prepend(){
- # Make sure we get dependencies from recipe-sysroot
- sed -i -e 's# /usr/bin# ${RECIPE_SYSROOT}/${bindir}/#g' ${S}/cmake/FindPerl.cmake
- sed -i -e 's# /usr/local/bin##g' ${S}/cmake/FindPerl.cmake
- sed -i -e 's# /usr/pkg/bin##g' ${S}/cmake/FindPerl.cmake
-}
-
-do_install:append(){
- rm -rf ${D}/${datadir}
-}
-
diff --git a/meta-networking/recipes-irc/weechat/weechat_4.0.4.bb b/meta-networking/recipes-irc/weechat/weechat_4.0.4.bb
new file mode 100644
index 0000000000..d13764e4c7
--- /dev/null
+++ b/meta-networking/recipes-irc/weechat/weechat_4.0.4.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Full-featured IRC plugin: multi-servers, proxy support, IPv6, SASL authentication, nicklist, DCC, and many other features"
+HOMEPAE = "https://weechat.org/"
+SECTION = "net"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+DEPENDS = "openssl zlib icu libgcrypt gnutls curl aspell zstd"
+
+SRC_URI = "https://weechat.org/files/src/weechat-${PV}.tar.xz \
+ file://0001-use-pkg-config-for-gcrypt-instead.patch \
+ "
+
+SRC_URI[sha256sum] = "ae5f4979b5ada0339b84e741d5f7e481ee91e3fecd40a09907b64751829eb6f6"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG ??= " ncurses python"
+PACKAGECONFIG[ncurses] = "-DENABLE_NCURSES=ON,-DENABLE_NCURSES=OFF,ncurses"
+PACKAGECONFIG[python] = "-DENABLE_PYTHON=ON,-DENABLE_PYTHON=OFF,python3,python3"
+
+EXTRA_OECMAKE:append = " -DENABLE_PHP=OFF -DENABLE_TCL=OFF -DENABLE_LUA=OFF \
+ -DENABLE_JAVASCRIPT=OFF -DENABLE_RUBY=OFF \
+ -DENABLE_GUILE=OFF -DENABLE_PERL=OFF -DENABLE_ASPELL=ON \
+ -DLIBDIR=${libdir}"
+
+do_configure:prepend(){
+ # Make sure we get dependencies from recipe-sysroot
+ sed -i -e 's# /usr/bin# ${RECIPE_SYSROOT}/${bindir}/#g' ${S}/cmake/FindPerl.cmake
+ sed -i -e 's# /usr/local/bin##g' ${S}/cmake/FindPerl.cmake
+ sed -i -e 's# /usr/pkg/bin##g' ${S}/cmake/FindPerl.cmake
+}
+
+do_install:append(){
+ rm -rf ${D}/${datadir}
+}
+
diff --git a/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210914.bb b/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210914.bb
index 20435338c3..8def54ece6 100644
--- a/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210914.bb
+++ b/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210914.bb
@@ -11,24 +11,22 @@ do_install () {
oe_runmake DESTDIR="${D}" PREFIX="${prefix}" SYSCONFDIR="${sysconfdir}" \
SYSTEMDUNITDIR="${systemd_system_unitdir}" \
WITH_SYSTEMDUNITS=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'yes', '', d)} \
- WITH_BASHCOMPLETION=yes \
- WITH_WGQUICK=yes \
+ ${PACKAGECONFIG_CONFARGS} \
install
}
-PACKAGES += "${PN}-wg-quick"
+PACKAGECONFIG ??= "bash-completion wg-quick"
+
+PACKAGECONFIG[bash-completion] = "WITH_BASHCOMPLETION=yes,WITH_BASHCOMPLETION=no,,bash,,"
+PACKAGECONFIG[wg-quick] = "WITH_WGQUICK=yes,WITH_WGQUICK=no,,bash,,"
FILES:${PN} = " \
${bindir}/wg \
${sysconfdir} \
-"
-FILES:${PN}-wg-quick = " \
${bindir}/wg-quick \
${systemd_system_unitdir} \
"
-RDEPENDS:${PN}-wg-quick = "${PN} bash"
RRECOMMENDS:${PN} = " \
kernel-module-wireguard \
- ${PN}-wg-quick \
"
diff --git a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/0001-ftp-include-sys-types.h-for-u_long.patch b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/0001-ftp-include-sys-types.h-for-u_long.patch
deleted file mode 100644
index 8376603ead..0000000000
--- a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/0001-ftp-include-sys-types.h-for-u_long.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 2ee0c51d81a0a08d64b64ab624074e5f7cd9615a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 15 Jul 2017 00:07:32 -0700
-Subject: [PATCH] ftp: include sys/types.h for u_long
-
-fixes
-ftp.c:1091:2: error: unknown type name 'u_long'; did you mean 'long'?
- u_long a1,a2,a3,a4,p1,p2;
- ^~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ftp/ftp.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/ftp/ftp.c b/ftp/ftp.c
-index 7a56af6..5dcb513 100644
---- a/ftp/ftp.c
-+++ b/ftp/ftp.c
-@@ -43,6 +43,7 @@ char ftp_rcsid[] =
- #include <sys/socket.h>
- #include <sys/time.h>
- #include <sys/file.h>
-+#include <sys/types.h>
-
- #include <netinet/in.h>
- #include <netinet/ip.h>
---
-2.13.3
-
diff --git a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/Add_ARG_MAX_define.patch b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/Add_ARG_MAX_define.patch
deleted file mode 100644
index 5a47fd9175..0000000000
--- a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/Add_ARG_MAX_define.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-This adds ARG_MAX define to be _SC_ARG_MAX
-
-Upstream-Status: Inappropriate.
-Most distros have their own verion for this fix.
-
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
-Index: netkit-ftp-0.17/ftp/glob.c
-===================================================================
---- netkit-ftp-0.17.orig/ftp/glob.c
-+++ netkit-ftp-0.17/ftp/glob.c
-@@ -50,6 +50,7 @@ char glob_rcsid[] =
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <unistd.h>
-
- #include "ftp_var.h" /* for protos only */
- #include "glob.h"
-@@ -57,6 +58,9 @@ char glob_rcsid[] =
- #define QUOTE 0200
- #define TRIM 0177
- #define eq(a,b) (strcmp(a, b)==0)
-+#ifndef ARG_MAX
-+#define ARG_MAX (sysconf(_SC_ARG_MAX))
-+#endif
- #define GAVSIZ (ARG_MAX/6)
- #define isdir(d) ((d.st_mode & S_IFMT) == S_IFDIR)
diff --git a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb
deleted file mode 100644
index 1ba0dd46a7..0000000000
--- a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-DESCRIPTION = "netkit-ft includes the ftp client."
-SECTION = "net"
-HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
-LICENSE = "BSD-4-Clause"
-
-LIC_FILES_CHKSUM = "file://ftp/ftp.c;beginline=2;endline=3;md5=2d40a75a50d83b8f6317b3f53db72bfa"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}.orig.tar.gz;name=archive \
- ${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}-31.debian.tar.xz;name=patch31 \
- file://Add_ARG_MAX_define.patch \
- file://0001-ftp-include-sys-types.h-for-u_long.patch \
- "
-
-SRC_URI[archive.md5sum] = "94441610c9b86ef45c4c6ec609444060"
-SRC_URI[archive.sha256sum] = "61c913299b81a4671ff089aac821329f7db9bc111aa812993dd585798b700349"
-SRC_URI[patch31.md5sum] = "93d71e28ce70df69e080c7f90da63cac"
-SRC_URI[patch31.sha256sum] = "4edd46a32d70daa7ba00f0ebf0118dc5d17dff23d6e46aa21a2722be2e22d1c1"
-
-inherit autotools-brokensep update-alternatives
-
-CLEANBROKEN = "1"
-
-do_configure () {
- ./configure --prefix=${prefix}
- echo "LDFLAGS=${LDFLAGS}" >> MCONFIG
-}
-
-BINMODE = "0755"
-MANMODE = "0644"
-
-do_install () {
- install -d ${D}${bindir}
- install -d ${D}${mandir}/man1
- install -d ${D}${mandir}/man5
-
- install -m${BINMODE} ${S}/ftp/ftp ${D}${bindir}
- ln -sf ftp ${D}${bindir}/pftp
- install -m${MANMODE} ${S}/ftp/ftp.1 ${D}${mandir}/man1
- ln -sf ftp.1 ${D}${mandir}/man1/pftp.1
- install -m${MANMODE} ${S}/ftp/netrc.5 ${D}${mandir}/man5
-}
-
-PACKAGES = "${PN} ${PN}-doc ${BPN}-dbg"
-FILES:${PN} = "${bindir}/*"
-FILES:${PN}-doc = "${mandir}"
-FILES:${PN}-dbg = "${prefix}/src/debug \
- ${bindir}/.debug"
-
-RDEPENDS:${PN} = "readline"
-
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE:${PN} = "ftp"
-ALTERNATIVE_LINK_NAME[ftp] = "${bindir}/ftp"
diff --git a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/0001-rpcgen-Fix-printf-formats.patch b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/0001-rpcgen-Fix-printf-formats.patch
deleted file mode 100644
index 8bd77d2e47..0000000000
--- a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/0001-rpcgen-Fix-printf-formats.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 439e3e35f7fcbff1abb782de4b19b31e43ae3449 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 09:59:19 -0700
-Subject: [PATCH] rpcgen: Fix printf formats
-
-Fixes build with hardening flags
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- rpcgen/rpc_hout.c | 2 +-
- rpcgen/rpc_tblout.c | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/rpcgen/rpc_hout.c b/rpcgen/rpc_hout.c
-index 0ef52df..09a7b57 100644
---- a/rpcgen/rpc_hout.c
-+++ b/rpcgen/rpc_hout.c
-@@ -474,7 +474,7 @@ pdeclaration(const char *name, declaration *dec, int tab,
- break;
- }
- }
-- f_print(fout, separator );
-+ f_print(fout, "%s", separator );
- }
-
- static int
-diff --git a/rpcgen/rpc_tblout.c b/rpcgen/rpc_tblout.c
-index d64bfde..fd62a52 100644
---- a/rpcgen/rpc_tblout.c
-+++ b/rpcgen/rpc_tblout.c
-@@ -99,7 +99,7 @@ write_table(const definition *def)
- }
- else {
- expected = 1;
-- f_print(fout, null_entry);
-+ f_print(fout, "%s", null_entry);
- }
- for (proc = vp->procs; proc != NULL; proc = proc->next) {
- current = atoi(proc->proc_num);
-@@ -139,7 +139,7 @@ write_table(const definition *def)
- }
-
- /* print the table trailer */
-- f_print(fout, tbl_end);
-+ f_print(fout, "%s", tbl_end);
- f_print(fout, tbl_nproc, progvers, progvers, progvers);
- }
- }
---
-2.13.2
-
diff --git a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch
deleted file mode 100644
index d54cea9fdc..0000000000
--- a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-This fixes an issue when building with gcc 4.x
-
-https://github.com/openembedded/openembedded/tree/master/recipes/netkit-rpc/netkit-rpc
-
-Upstream-status: Backported
-
-Signed-off-By: Armin Kuster <akuster808@gmail.com>
-
---- netkit-rpc-0.17/rpcgen/rpc_cout.c~gcc4
-+++ netkit-rpc-0.17/rpcgen/rpc_cout.c
-@@ -101,8 +101,6 @@
- case DEF_TYPEDEF:
- emit_typedef(def);
- break;
-- default:
-- /* can't happen */
- }
- print_trailer();
- }
-@@ -664,9 +662,6 @@
- decl->name,decl->array_max);
- emit_single_in_line(decl,flag,REL_VECTOR);
- f_print(fout,"\t\t }\n\t\t };\n");
--
-- default:
-- /* ?... do nothing I guess */
- }
- }
-
---- netkit-rpc-0.17/rpcgen/rpc_hout.c~gcc4
-+++ netkit-rpc-0.17/rpcgen/rpc_hout.c
-@@ -106,8 +106,6 @@
- f_print(fout, "\n");
- pprogramdef(def);
- break;
-- default:
-- /* ?... shouldn't happen I guess */
- }
- }
diff --git a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb
deleted file mode 100644
index cb05645ee8..0000000000
--- a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-DESCRIPTION = "netkit-rpc includes rpcinfo and rpcgen."
-HOMEPAGE = "http://ftp.linux.org.uk/pub/linux/Networking/netkit"
-SECTION = "net"
-LICENSE = "SPL-1.0"
-LIC_FILES_CHKSUM = "file://rpcinfo/rpcinfo.c;beginline=2;endline=3;md5=3e6339e3ce266e1122c5ba293e04bc89"
-
-DEPENDS += "libtirpc"
-SRC_URI = "http://sources.openembedded.org/${BPN}-${PV}.tar.gz \
- file://gcc4.patch \
- file://0001-rpcgen-Fix-printf-formats.patch \
- "
-SRC_URI[md5sum] = "67212720482ea1aea9182a98653a9642"
-SRC_URI[sha256sum] = "421d63b414162237a72867061f1bd3e3752a0d962cd5d30b5e933ddad8a14d3b"
-
-inherit update-alternatives
-
-CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-LIBS += "-ltirpc"
-
-do_configure () {
- ./configure --prefix=${prefix}
- echo "LDFLAGS=${LDFLAGS}" > MCONFIG
- echo "CC=${CC}" >> MCONFIG
- echo "LD=${LD}" >> MCONFIG
- echo "CFLAGS=${CFLAGS}" >> MCONFIG
- echo "LDFLAGS=${LDFLAGS}" >> MCONFIG
- echo "LIBS=${LIBS}" >> MCONFIG
-}
-
-do_compile () {
- oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}'
-}
-
-do_install () {
- install -d ${D}${bindir}
- install -d ${D}${mandir}/man1
- install -d ${D}${mandir}/man8
-
- # remove strip flag
- sed -i 's/install -s/install/' rpcinfo/Makefile
- sed -i 's/install -s/install/' rpcgen/Makefile
-
- oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \
- 'DAEMONMODE=0755' 'MANMODE=0644' \
- 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \
- 'MANDIR=${mandir}' install
-}
-ALTERNATIVE_PRIORITY = "100"
-
-ALTERNATIVE:${PN} = "rpcinfo"
-ALTERNATIVE_LINK_NAME[rpcinfo] = "${bindir}/rpcinfo"
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/CVE-2019-7282-and-CVE-2019-7283.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/CVE-2019-7282-and-CVE-2019-7283.patch
deleted file mode 100644
index 285667b869..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/CVE-2019-7282-and-CVE-2019-7283.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From a7831a16c3e0e1463d5eb08a58af152cb75ca976 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Mon, 15 Apr 2019 06:05:58 +0000
-Subject: [PATCH] Fix CVE-2019-7282 and CVE-2019-7283
-
-Description: Fix CVE-2018-20685 and CVE-2019-6111
-Bug-Debian: https://bugs.debian.org/920486
-Origin: https://github.com/openssh/openssh-portable/commit/6010c0303a422a9c5fa8860c061bf7105eb7f8b2#diff-9f340c228413d5a9a9206ea2ed2bc624R1114
-
-Upstream-Status: Backport [Debian]
-[https://sources.debian.org/src/netkit-rsh/0.17-20/debian/patches/fix-CVE-2018-20685-and-CVE-2019-6111.patch]
-
-CVE: CVE-2019-7282 CVE-2019-7283
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- rcp/rcp.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/rcp/rcp.c b/rcp/rcp.c
-index ca61c18..77d8ff8 100644
---- a/rcp/rcp.c
-+++ b/rcp/rcp.c
-@@ -740,6 +740,11 @@ sink(int argc, char *argv[])
- size = size * 10 + (*cp++ - '0');
- if (*cp++ != ' ')
- SCREWUP("size not delimited");
-+ if (*cp == '\0' || strchr(cp, '/') != NULL ||
-+ strcmp(cp, ".") == 0 || strcmp(cp, "..") == 0) {
-+ error("error: unexpected filename: %s", cp);
-+ exit(1);
-+ }
- if (targisdir) {
- static char *namebuf;
- static int cursize;
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fix-host-variable.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fix-host-variable.patch
deleted file mode 100644
index 1d3631d47d..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fix-host-variable.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-fix host variable when rsh is renamed to other.
-
-Upstream-Status: Pending
-
-If rsh is renamed to other, like rsh.netkit, host variable is assigned to
-rsh.netkit, which is wrong.
-
-Signed-off-by: Roy.Li <rongqing.li@windriver.com>
----
- rsh/rsh.c | 1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/rsh/rsh.c b/rsh/rsh.c
-index ac594f9..11f533e 100644
---- a/rsh/rsh.c
-+++ b/rsh/rsh.c
-@@ -100,7 +100,6 @@ main(int argc, char *argv[])
- #else
- if (!strcmp(p, "rsh")) asrsh = 1;
- #endif
-- else host = p;
-
- /* handle "rsh host flags" */
- if (!host && argc > 2 && argv[1][0] != '-') {
---
-1.7.5.4
-
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fixup_wait3_api_change.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fixup_wait3_api_change.patch
deleted file mode 100644
index cd6df62fb3..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fixup_wait3_api_change.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Fix build issue do to Deprecate union wait and remove support from wait functions [BZ #19613]
-
-| rlogin.c: In function 'catch_child':
-| rlogin.c:463:13: error: storage size of 'status' isn't known
-| union wait status;
-
-https://sourceware.org/ml/libc-alpha/2016-02/msg00342.html
-
-Upstream-Status: Inappropriate [ no upstream maintaner ]
-
-Signed-off-by Armin Kuster <akuster@mvista.com>
-
-Index: netkit-rsh-0.17/rlogin/rlogin.c
-===================================================================
---- netkit-rsh-0.17.orig/rlogin/rlogin.c
-+++ netkit-rsh-0.17/rlogin/rlogin.c
-@@ -460,7 +460,7 @@ writeroob(int ignore)
- void
- catch_child(int ignore)
- {
-- union wait status;
-+ int status;
- int pid;
-
- (void)ignore;
-@@ -471,7 +471,7 @@ catch_child(int ignore)
- return;
- /* if the child (reader) dies, just quit */
- if (pid < 0 || (pid == childpid && !WIFSTOPPED(status)))
-- done((int)(status.w_termsig | status.w_retcode));
-+ done((int)(WTERMSIG(status) | WEXITSTATUS(status)));
- }
- /* NOTREACHED */
- }
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch
deleted file mode 100644
index efd060f365..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-make rexec support ipv6
-
-Upstream-status: Pending
-
-rexec equals rexec_af(... ,AF_INET) which only support ipv4,
-use rexec_af(..., AF_UNSPEC) to support both ipv6 and ipv4.
-
-Signed-off-by: Roy.Li <rongqing.li@windriver.com>
----
- rexec/rexec.c | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/rexec/rexec.c b/rexec/rexec.c
-index 0913c02..9c8f769 100644
---- a/rexec/rexec.c
-+++ b/rexec/rexec.c
-@@ -214,8 +214,8 @@ int main(int argc, char *argv[])
- passwd = getpass("Password: ");
- }
-
-- if ( (sock = rexec(&host, port_exec, user_name, passwd, command,
-- p_to_aux_sock)) < 0 )
-+ if ( (sock = rexec_af(&host, port_exec, user_name, passwd, command,
-+ p_to_aux_sock, AF_UNSPEC)) < 0 )
- {
- fprintf(stderr,"%s: Error in rexec system call: ",argv[0]);
- perror(NULL);
---
-1.7.4.1
-
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch
deleted file mode 100644
index fdd535be1b..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-netkit-rsh:
-Allow to build with no PAM enabled.
-
-Upstream-Status: Inappropriate [ no upstream maintaner ]
-
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
-Index: netkit-rsh-0.17/rshd/rshd.c
-===================================================================
---- netkit-rsh-0.17.orig/rshd/rshd.c
-+++ netkit-rsh-0.17/rshd/rshd.c
-@@ -110,9 +110,11 @@ extern char **environ;
- static void error(const char *fmt, ...);
- static void doit(struct sockaddr *fromp, socklen_t fromlen);
- static char *getstr(char *, size_t, const char *);
-+#ifdef USE_PAM
- static int err_conv(
- int, const struct pam_message **, struct pam_response **, void *
- );
-+#endif /* USE_PAM */
-
- extern int _check_rhosts_file;
-
-@@ -256,6 +258,7 @@ static void stderr_parent(int sock, int
- }
-
-
-+#ifdef USE_PAM
- static int err_conv(
- int num_msg, const struct pam_message **msg,
- struct pam_response **resp, void *appdata_ptr
-@@ -266,6 +269,7 @@ static int err_conv(
- (void) appdata_ptr;
- return PAM_CONV_ERR;
- }
-+#endif
-
- static struct passwd *doauth(const char *remuser,
- const char *hostname,
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.pam b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.pam
deleted file mode 100644
index 94e5dda50b..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.pam
+++ /dev/null
@@ -1,10 +0,0 @@
-#%PAM-1.0
-# For root login to succeed here with pam_securetty, "rexec" must be
-# listed in /etc/securetty.
-auth required pam_nologin.so
-auth required pam_env.so
-auth include common-auth
-account include common-account
-session optional pam_keyinit.so force revoke
-session include common-session
-session required pam_loginuid.so
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit
deleted file mode 100644
index 7354360ae7..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit
+++ /dev/null
@@ -1,20 +0,0 @@
-# default: off
-# description:
-# Rexecd is the server for the rexec program. The server provides remote
-# execution facilities with authentication based on user names and
-# passwords.
-#
-service exec
-{
- socket_type = stream
- protocol = tcp
- flags = NAMEINARGS
- wait = no
- user = root
- group = root
- log_on_success += USERID
- log_on_failure += USERID
- server = /usr/sbin/tcpd
- server_args = /usr/sbin/in.rexecd
- disable = yes
-}
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.pam b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.pam
deleted file mode 100644
index b30f139cb7..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.pam
+++ /dev/null
@@ -1,12 +0,0 @@
-#%PAM-1.0
-# For root login to succeed here with pam_securetty, "rlogin" must be
-# listed in /etc/securetty.
-auth required pam_nologin.so
-auth required pam_securetty.so
-auth required pam_env.so
-auth include common-auth
-account include common-account
-password include common-password
-session optional pam_keyinit.so force revoke
-session include common-session
-session required pam_loginuid.so
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit
deleted file mode 100644
index 70493e603b..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit
+++ /dev/null
@@ -1,23 +0,0 @@
-# default: off
-# description:
-# Rlogind is a server for the rlogin program. The server provides remote
-# execution with authentication based on privileged port numbers from trusted
-# host
-#
-service login
-{
- socket_type = stream
- protocol = tcp
- flags = NAMEINARGS
- wait = no
- user = root
- group = root
- log_on_success += USERID
- log_on_failure += USERID
- server = /usr/sbin/tcpd
- server_args = /usr/sbin/in.rlogind -a
- disable = yes
-}
-
-
-
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch
deleted file mode 100644
index c12ee9b465..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-This fixes a build issue caused by linking order.
-
-Upstream-Status: Inappropriate
-Most distos have there own verison of this fix. This was derived by
-* Fix link order to list libraries after the objects that require them
-(LP: #771080).
-
--- Colin Watson <cjwatson@ubuntu.com> Tue, 13 Sep 2011 10:07:08 +0100
-
-
-signed-off-by: Armin Kuster <akuster808@gmail.com>
-
-Index: netkit-rsh-0.17/rsh/Makefile
-===================================================================
---- netkit-rsh-0.17.orig/rsh/Makefile
-+++ netkit-rsh-0.17/rsh/Makefile
-@@ -6,7 +6,7 @@ include ../MRULES
- OBJS = rsh.o
-
- rsh: $(OBJS)
-- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@
-+ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS)
-
- install: rsh
- install -o root -m$(SUIDMODE) rsh $(INSTALLROOT)$(BINDIR)
-Index: netkit-rsh-0.17/rshd/Makefile
-===================================================================
---- netkit-rsh-0.17.orig/rshd/Makefile
-+++ netkit-rsh-0.17/rshd/Makefile
-@@ -11,7 +11,7 @@ LIBS += -ldl -lpam
- endif
-
- rshd: $(OBJS)
-- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@
-+ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS)
-
- install: rshd
- install -m$(DAEMONMODE) rshd $(INSTALLROOT)$(SBINDIR)/in.rshd
-Index: netkit-rsh-0.17/rlogin/Makefile
-===================================================================
---- netkit-rsh-0.17.orig/rlogin/Makefile
-+++ netkit-rsh-0.17/rlogin/Makefile
-@@ -7,7 +7,7 @@ PROG=rlogin
- OBJS=rlogin.o
-
- $(PROG): $(OBJS)
-- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@
-+ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS)
-
- install: $(PROG)
- install -o root -m$(SUIDMODE) $(PROG) $(INSTALLROOT)$(BINDIR)
-Index: netkit-rsh-0.17/rlogind/Makefile
-===================================================================
---- netkit-rsh-0.17.orig/rlogind/Makefile
-+++ netkit-rsh-0.17/rlogind/Makefile
-@@ -13,7 +13,7 @@ LIBS += -ldl -lpam -lpam_misc
- endif
-
- rlogind: $(OBJS)
-- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@
-+ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS)
-
- rlogind.o: pathnames.h logwtmp.h rlogind.h ../version.h
- logwtmp.o: logwtmp.h
-Index: netkit-rsh-0.17/rexecd/Makefile
-===================================================================
---- netkit-rsh-0.17.orig/rexecd/Makefile
-+++ netkit-rsh-0.17/rexecd/Makefile
-@@ -24,7 +24,7 @@ endif
- CFLAGS += -DRESTRICT_FTP=1
-
- rexecd: rexecd.o
-- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@
-+ $(CC) $^ -o $@ $(LDFLAGS) $(LIBS)
-
- install: rexecd
- install -m$(DAEMONMODE) rexecd $(INSTALLROOT)$(SBINDIR)/in.rexecd
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.pam b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.pam
deleted file mode 100644
index 072327a76e..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.pam
+++ /dev/null
@@ -1,10 +0,0 @@
-#%PAM-1.0
-# For root login to succeed here with pam_securetty, "rsh" must be
-# listed in /etc/securetty.
-auth required pam_nologin.so
-auth required pam_securetty.so
-auth required pam_env.so
-account include common-account
-session optional pam_keyinit.so force revoke
-session include common-session
-session required pam_loginuid.so
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit
deleted file mode 100644
index a842eb974f..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit
+++ /dev/null
@@ -1,21 +0,0 @@
-# default: off
-# description:
-# The rshd server is a server for the rcmd(3) routine and,
-# consequently, for the rsh(1) program. The server provides
-# remote execution facilities with authentication based on
-# privileged port numbers from trusted hosts.
-#
-service shell
-{
- socket_type = stream
- protocol = tcp
- flags = NAMEINARGS
- wait = no
- user = root
- group = root
- log_on_success += USERID
- log_on_failure += USERID
- server = /usr/sbin/tcpd
- server_args = /usr/sbin/in.rshd -aL
- disable = yes
-}
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
deleted file mode 100644
index 5ea553e871..0000000000
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
+++ /dev/null
@@ -1,105 +0,0 @@
-DESCRIPTION = "netkit-rsh includes the rsh daemon and client."
-SECTION = "net"
-HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
-LICENSE = "BSD-4-Clause"
-DEPENDS = "xinetd libgcrypt virtual/crypt"
-
-LIC_FILES_CHKSUM = "file://rsh/rsh.c;endline=32;md5=487b3c637bdc181d32b2a8543d41b606"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}.orig.tar.gz;name=archive \
- ${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}-15.diff.gz;name=patch15 \
- file://rsh-redone_link_order_file.patch \
- file://no_pam_build_fix.patch \
- file://rexec.xinetd.netkit \
- file://rlogin.xinetd.netkit \
- file://rsh.xinetd.netkit \
- file://netkit-rsh-0.17-rexec-ipv6.patch \
- file://fix-host-variable.patch \
- file://fixup_wait3_api_change.patch \
- file://CVE-2019-7282-and-CVE-2019-7283.patch \
-"
-
-SRC_URI[archive.md5sum] = "65f5f28e2fe22d9ad8b17bb9a10df096"
-SRC_URI[archive.sha256sum] = "edcac7fa18015f0bc04e573f3f54ae3b638d71335df1ad7dae692779914ad669"
-SRC_URI[patch15.md5sum] = "655efc0d541b03ca5de0ae506c805ea3"
-SRC_URI[patch15.sha256sum] = "2bc071c438e8b0ed42a0bd2db2d8b681b27a1e9b1798694d9874733293bc2aa9"
-
-# Other support files
-PAM_SRC_URI = "file://rexec.pam \
- file://rlogin.pam \
- file://rsh.pam \
-"
-SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}"
-
-inherit pkgconfig update-alternatives
-
-CFLAGS += " -D_GNU_SOURCE -Wno-deprecated-declarations"
-LDFLAGS += " -L${STAGING_LIBDIR} -lutil -lcrypt"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG:append = " ${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
-PACKAGECONFIG[pam] = " , --without-pam, libpam, libpam"
-
-COMPATIBLE_HOST:libc-musl = 'null'
-
-do_configure () {
- ./configure --prefix=${prefix} --exec-prefix=${exec_prefix}
- echo "INSTALLROOT=${D}" > MCONFIG
-
- if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then
- echo "USE_PAM=1" >> MCONFIG
- fi
-
- # didn't want to patch these next changes
- sed -i 's/netkit-//' ${S}/rsh/pathnames.h
- sed -i 's/netkit-//' ${S}/rcp/pathnames.h
-}
-
-do_install () {
- install -d ${D}${bindir}
- install -d ${D}${sbindir}
- install -d ${D}${mandir}/man1
- install -d ${D}${mandir}/man8
- install -d ${D}${sysconfdir}/xinetd.d
-
- oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \
- 'DAEMONMODE=0755' 'MANMODE=0644' \
- 'SUIDMODE=4755' \
- 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \
- 'MANDIR=${mandir}' install
-
- if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then
- install -d ${D}${sysconfdir}/pam.d
- install -m 0644 debian/hosts.equiv ${D}/${sysconfdir}
- install -m 0644 ${WORKDIR}/rexec.pam ${D}/${sysconfdir}/pam.d/rexec
- install -m 0644 ${WORKDIR}/rlogin.pam ${D}/${sysconfdir}/pam.d/rlogin
- install -m 0644 ${WORKDIR}/rsh.pam ${D}/${sysconfdir}/pam.d/rsh
- fi
- cp ${WORKDIR}/rexec.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rexec
- cp ${WORKDIR}/rlogin.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rlogin
- cp ${WORKDIR}/rsh.xinetd.netkit ${D}/${sysconfdir}/xinetd.d/rsh
-}
-
-PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg"
-
-FILES:${PN}-client = "${bindir}/*"
-FILES:${PN}-server = "${sbindir}/* ${sysconfdir}"
-FILES:${PN}-doc = "${mandir}"
-FILES:${PN}-dbg = "${prefix}/src/debug \
- ${sbindir}/.debug ${bindir}/.debug"
-
-ALTERNATIVE_PRIORITY = "80"
-ALTERNATIVE:${PN}-client = "rcp rexec rlogin rsh"
-ALTERNATIVE:${PN}-server = "rshd rexecd rlogind"
-ALTERNATIVE_LINK_NAME[server] = "${bindir}/rshd"
-ALTERNATIVE_TARGET[rshd] = "${sbindir}/in.rshd"
-ALTERNATIVE_LINK_NAME[rexecd] = "${bindir}/rexecd"
-ALTERNATIVE_TARGET[rexecd] = "${sbindir}/in.rexecd"
-ALTERNATIVE_LINK_NAME[rlogind] = "${bindir}/rlogind"
-ALTERNATIVE_TARGET[rlogind] = "${sbindir}/in.rlogind"
-
-RCONFLICTS:${PN}-server += "inetutils-rshd"
-RPROVIDES:${PN}-server = "rshd"
-
-RDEPENDS:${PN}-server = "xinetd"
-RDEPENDS:${PN}-server += "tcp-wrappers"
diff --git a/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/0001-Link-with-libtirpc.patch b/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/0001-Link-with-libtirpc.patch
deleted file mode 100644
index 3655a57162..0000000000
--- a/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/0001-Link-with-libtirpc.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From 5746b68ba9dda87586b3ac88fe84031cbc0015f7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 11 May 2018 12:20:03 -0700
-Subject: [PATCH] Link with libtirpc
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- configure | 2 +-
- rpc.rusersd/rusers_proc.c | 7 +------
- rpc.rusersd/rusersd.c | 6 +-----
- rup/rup.c | 2 +-
- 4 files changed, 4 insertions(+), 13 deletions(-)
-
---- a/configure
-+++ b/configure
-@@ -92,7 +92,6 @@ else
- echo -n 'Checking if C compiler works... '
- if (
- $CC __conftest.c -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo 'yes'
- else
-@@ -146,8 +145,7 @@ else
-
- fi
-
--LDFLAGS=
--LIBS=
-+LIBS="$LIBS -ltirpc"
-
- rm -f __conftest*
-
-@@ -172,13 +170,11 @@ int main() {
- EOF
- if (
- $CC $CFLAGS __conftest.c -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo 'yes'
- else
- if (
- $CC $CFLAGS -D__USE_BSD_SIGNAL __conftest.c -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo '-D__USE_BSD_SIGNAL'
- CFLAGS="$CFLAGS -D__USE_BSD_SIGNAL"
-@@ -231,7 +227,6 @@ if (
- else
- if (
- $CC $CFLAGS -D_GNU_SOURCE __conftest.c -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo '-D_GNU_SOURCE'
- CFLAGS="$CFLAGS -D_GNU_SOURCE"
-@@ -262,20 +257,17 @@ int main() {
- EOF
- if (
- $CC $CFLAGS __conftest.c $LIBBSD -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo 'ok'
- else
- if (
- $CC $CFLAGS __conftest.c -lsnprintf $LIBBSD -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo '-lsnprintf'
- LIBS="$LIBS -lsnprintf"
- else
- if (
- $CC $CFLAGS __conftest.c -ldb $LIBBSD -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo '-ldb'
- LIBS="$LIBS -ldb"
---- a/rpc.rusersd/rusers_proc.c
-+++ b/rpc.rusersd/rusers_proc.c
-@@ -57,12 +57,7 @@ char rp_rcsid[] =
- #define RUT_TIME ut_time
- #endif
-
--/* Glibc strikes again */
--#ifdef __GLIBC__
-- #include <rpcsvc/rusers.h>
--#else
-- #include "rusers.h"
--#endif
-+#include "rusers.h"
-
- void rusers_service(struct svc_req *rqstp, SVCXPRT *transp);
-
---- a/rpc.rusersd/rusersd.c
-+++ b/rpc.rusersd/rusersd.c
-@@ -38,11 +38,7 @@ char rusersd_rcsid[] =
- #include <rpc/pmap_clnt.h>
- #include <unistd.h>
- #include <grp.h>
--#ifdef __GLIBC__
-- #include <rpcsvc/rusers.h>
--#else
-- #include "rusers.h"
--#endif
-+#include "rusers.h"
-
- #include "../version.h"
-
---- a/rup/rup.c
-+++ b/rup/rup.c
-@@ -48,7 +48,7 @@ char rcsid[] = "$Id: rup.c,v 1.8 2000/07
-
- #undef FSHIFT /* Use protocol's shift and scale values */
- #undef FSCALE
--#include <rpcsvc/rstat.h>
-+#include "rstat.h"
-
- #include "../version.h"
-
diff --git a/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/rpc.rusersd-Makefile-fix-parallel-build-issue.patch b/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/rpc.rusersd-Makefile-fix-parallel-build-issue.patch
deleted file mode 100644
index d85178d714..0000000000
--- a/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/rpc.rusersd-Makefile-fix-parallel-build-issue.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From c23cc112a480f90950de5cf1de09b1a7e732bf21 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Mon, 15 Dec 2014 18:31:13 -0800
-Subject: [PATCH] rpc.rusersd/Makefile: fix parallel build issue
-
-Fixed:
-rusers.x: No such file or directory
-Makefile:44: recipe for target 'rusers_xdr.c' failed
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- rpc.rusersd/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/rpc.rusersd/Makefile b/rpc.rusersd/Makefile
-index 792f528..65a424a 100644
---- a/rpc.rusersd/Makefile
-+++ b/rpc.rusersd/Makefile
-@@ -40,5 +40,5 @@ rusers.x:
- rusers.h: $(RUSERSX) rusers.x
- $(RPCGEN) -h -o rusers.h rusers.x
-
--rusers_xdr.c: $(RUSERSX)
-+rusers_xdr.c: $(RUSERSX) rusers.x
- $(RPCGEN) -c -C -o rusers_xdr.c rusers.x
---
-1.7.9.5
-
diff --git a/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb b/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb
deleted file mode 100644
index c45cbcd925..0000000000
--- a/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb
+++ /dev/null
@@ -1,72 +0,0 @@
-DESCRIPTION = "netkit-rusers includes rusers - Displays who is logged in to machines on local network \
- rusersd - Logged in users server"
-HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
-SECTION = "net"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://rusers/rusers.c;beginline=2;endline=3;md5=f4fc634a4ce8c569911196b72b10770e"
-DEPENDS = " tcp-wrappers libtirpc rpcbind rpcsvc-proto rpcsvc-proto-native"
-
-SRC_URI = "http://http.debian.net/debian/pool/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \
- http://http.debian.net/debian/pool/main/n/${BPN}/${BPN}_${PV}-8.diff.gz;name=patch8 \
- file://rpc.rusersd-Makefile-fix-parallel-build-issue.patch \
- file://0001-Link-with-libtirpc.patch \
-"
-
-SRC_URI[archive.md5sum] = "dc99a80b9fde2ab427c874f88f1c1602"
-SRC_URI[archive.sha256sum] = "f00138651865ad2dcfec5dedda0cda403cb80c4ab68efcc3bbccafe198c24b6d"
-SRC_URI[patch8.md5sum] = "1ff498113e0f920d92088092e5570bdc"
-SRC_URI[patch8.sha256sum] = "14882dbdda4e37baa84d55b54b46c7e063a20fc9e04d1be1a2807643cd0f3067"
-
-CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-
-EXTRA_OEMAKE = "RUSERSX=${STAGING_INCDIR}/rpcsvc/rusers.x"
-
-do_configure () {
- ./configure --prefix=${prefix} --installroot=${D} --with-c-compiler="${CC}"
-}
-
-do_install () {
- install -d ${D}${bindir}
- install -d ${D}${sbindir}
- install -d ${D}${mandir}/man1
- install -d ${D}${mandir}/man8
- install -d ${D}${sysconfdir}/xinetd.d
-
- sed -i 's/install -s/install/' rusers/Makefile
- sed -i 's/install -s/install/' rup/Makefile
- sed -i 's/install -s/install/' rpc.rusersd/Makefile
-
- oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \
- 'DAEMONMODE=0755' 'MANMODE=0644' \
- 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \
- 'MANDIR=${mandir}' install
-
- # create the xinetd config file
- cat >rusersd.conf <<EOF
- service rusersd
- {
- disable = yes
- type = RPC
- rpc_version = 1-2
- socket_type = dgram
- protocol = udp
- wait = yes
- user = root
- server = ${sbindir}/rpc.rusersd
- }
-EOF
- install rusersd.conf ${D}/${sysconfdir}/xinetd.d/rusersd
-}
-
-PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg"
-FILES:${PN}-client = "${bindir}/*"
-FILES:${PN}-server = "${sbindir}/* ${sysconfdir}"
-FILES:${PN}-doc = "${mandir}"
-FILES:${PN}-dbg = "${prefix}/src/debug \
- ${bindir}/.debug ${sbindir}/.debug"
-
-RDEPENDS:${PN}-server += "tcp-wrappers xinetd rpcbind"
-
-# http://errors.yoctoproject.org/Errors/Details/186962/
-COMPATIBLE_HOST:libc-musl = 'null'
-SKIP_RECIPE[netkit-rusers] ?= "Fails to build rup.c:51:10: fatal error: rstat.h: No such file or directory"
diff --git a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0001-Add-missing-include-path-to-I-options.patch b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0001-Add-missing-include-path-to-I-options.patch
deleted file mode 100644
index b1325b3173..0000000000
--- a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0001-Add-missing-include-path-to-I-options.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 55ab6f1389261edff5f4c942bc3b0d8e695856d7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 30 Aug 2017 18:11:33 -0700
-Subject: [PATCH 1/2] Add missing include path to -I options
-
-Fixes errors like
-| rwho.c:52:10: fatal error: 'protocols/rwhod.h' file not found
-| #include <protocols/rwhod.h>
-| ^~~~~~~~~~~~~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- rwho/Makefile | 1 +
- rwhod/Makefile | 2 ++
- 2 files changed, 3 insertions(+)
-
-diff --git a/rwho/Makefile b/rwho/Makefile
-index 6f86388..67b28d4 100644
---- a/rwho/Makefile
-+++ b/rwho/Makefile
-@@ -6,6 +6,7 @@ include ../MRULES
- rwho: rwho.o
- $(CC) $(LDFLAGS) $^ $(LIBS) -o $@
-
-+CFLAGS += -I../include
- rwho.o: ../version.h
-
- install: rwho
-diff --git a/rwhod/Makefile b/rwhod/Makefile
-index 772b641..9034218 100644
---- a/rwhod/Makefile
-+++ b/rwhod/Makefile
-@@ -7,6 +7,8 @@ ifneq ($(USE_GLIBC),1)
- CFLAGS += -D_GNU_SOURCE
- endif
-
-+CFLAGS += -I../include
-+
- OBJS = rwhod.o
-
- rwhod: $(OBJS)
---
-2.14.1
-
diff --git a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch
deleted file mode 100644
index 349a1351fe..0000000000
--- a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 2108213242638fa355f662382f55495d91301858 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 30 Aug 2017 18:13:17 -0700
-Subject: [PATCH 2/2] Fix build issues found with musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- ruptime/ruptime.c | 1 +
- rwho/rwho.c | 1 +
- rwhod/rwhod.c | 5 +++--
- 3 files changed, 5 insertions(+), 2 deletions(-)
-
---- a/ruptime/ruptime.c
-+++ b/ruptime/ruptime.c
-@@ -53,6 +53,7 @@ char ruptime_rcsid[] =
- #include <string.h>
- #include <errno.h>
- #include <time.h>
-+#include <fcntl.h>
-
- struct hs {
- char hs_hostname[MAXHOSTNAMELEN];
---- a/rwho/rwho.c
-+++ b/rwho/rwho.c
-@@ -49,6 +49,7 @@ char rcsid[] = "$Id: rwho.c,v 1.7 1999/0
- #include <assert.h>
- #include <stdio.h>
- #include <time.h>
-+#include <fcntl.h>
- #include <protocols/rwhod.h>
-
- #include "../version.h"
---- a/rwhod/rwhod.c
-+++ b/rwhod/rwhod.c
-@@ -76,6 +76,7 @@ char rcsid[] =
- #include <grp.h>
- #include <time.h>
- #include <stdint.h>
-+#include <fcntl.h>
-
- #include "../version.h"
-
-@@ -102,7 +103,7 @@ struct nlist nl[] = {
- static void broadcaster(void);
- static int configure(int s);
- static int verify(const char *name);
--#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)
-+#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2))
- static int getloadavg(double ptr[3], int n);
- #endif
-
-@@ -549,7 +550,7 @@ sendpacket(struct whod *wd)
- }
- }
-
--#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)
-+#if defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2))
- /*
- * Taken from:
- *
---- a/include/protocols/rwhod.h
-+++ b/include/protocols/rwhod.h
-@@ -37,6 +37,7 @@
- #ifndef _RWHOD_H_
- #define _RWHOD_H_
-
-+#include <stdint.h>
- /*
- * rwho protocol packet format.
- */
diff --git a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod
deleted file mode 100755
index f6419032e8..0000000000
--- a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-
-### BEGIN INIT INFO
-# Provides: rwhod
-# Required-Start: $network $remote_fs $syslog
-# Required-Stop: $network $remote_fs $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Server for rwho and ruptime services
-### END INIT INFO
-
-PATH=/sbin:/bin:/usr/bin:/usr/sbin
-
-DAEMON=/usr/sbin/rwhod
-PIDFILE=/var/run/rwhod.pid
-CONF_FILE="/etc/default/rwhod"
-DESC="Who daemon "
-# default options. Change them in /etc/default/rwhod
-RWHOD_OPTIONS="-b"
-
-# rwhod init.d script for ntpdc from ntp.isc.org
-test -f $DAEMON || exit 0
-
-# Source function library.
-. /etc/init.d/functions
-
-[ -r $CONF_FILE ] && . $CONF_FILE
-
-startdaemon(){
- echo -n "Starting $DESC" " rwhod "
- start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON -- $RWHOD_OPTIONS
- echo "done"
-}
-stopdaemon(){
- echo -n "Stopping $DESC" " rwhod "
- start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
- echo "done"
-}
-
-case "$1" in
- start)
- startdaemon
- ;;
- stop)
- stopdaemon
- ;;
- force-reload)
- stopdaemon
- startdaemon
- ;;
- restart)
- stopdaemon
- sleep 1
- startdaemon
- ;;
- reload)
- stopdaemon
- sleep 1
- startdaemon
- ;;
- status)
- status /usr/sbin/rwhod;
- exit $?
- ;;
- *)
- echo "Usage: rwhod { start | stop | status | restart | reload }" >&2
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod.default b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod.default
deleted file mode 100644
index 62d3a942d0..0000000000
--- a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/rwhod.default
+++ /dev/null
@@ -1,2 +0,0 @@
-#Options for the rwhod daemon.
-RWHOD_OPTIONS="-b"
diff --git a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb
deleted file mode 100644
index 51168f958e..0000000000
--- a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb
+++ /dev/null
@@ -1,108 +0,0 @@
-DESCRIPTION = "netkit-rwho includes, ruptime rwho and rwhod (Daemon to maintain data for rwho/ruptime)"
-HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
-SECTION = "net"
-LICENSE = "BSD-4-Clause"
-LIC_FILES_CHKSUM = "file://rwho/rwho.c;beginline=2;endline=3;md5=5a85f13c0142d72fc378e00f15da5b9e"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}.orig.tar.gz;name=archive \
- ${DEBIAN_MIRROR}/main/n/netkit-rwho/netkit-rwho_${PV}-13.debian.tar.gz;subdir=${BP};name=patch13 \
- file://rwhod \
- file://rwhod.default \
- file://0001-Add-missing-include-path-to-I-options.patch \
- file://0002-Fix-build-issues-found-with-musl.patch \
- "
-SRC_URI[archive.md5sum] = "0f71620d45d472f89134ba0d74242e75"
-SRC_URI[archive.sha256sum] = "0409e2ce4bfdb2dacb2c193d0fedfc49bb975cb057c5c6b0ffcca603a1188da7"
-SRC_URI[patch13.md5sum] = "82ed5a3c6b0bbf00b36508b9787963b9"
-SRC_URI[patch13.sha256sum] = "53aefa27d98b565bf756db57120c03bd224a238e45699d92076420272a6eba8e"
-
-inherit autotools-brokensep useradd update-rc.d update-alternatives
-
-CFLAGS += " -D_GNU_SOURCE"
-
-# Unlike other Debian packages, net-tools *.diff.gz contains another series of
-# patches maintained by quilt. So manually apply them before applying other local
-# patches. Also remove all temp files before leaving, because do_patch() will pop
-# up all previously applied patches in the start
-do_patch[depends] += "quilt-native:do_populate_sysroot"
-netkit_do_patch() {
- cd ${S}
- # it's important that we only pop the existing patches when they've
- # been applied, otherwise quilt will climb the directory tree
- # and reverse out some completely different set of patches
- if [ -d ${S}/patches ]; then
- # whilst this is the default directory, doing it like this
- # defeats the directory climbing that quilt will otherwise
- # do; note the directory must exist to defeat this, hence
- # the test inside which we operate
- QUILT_PATCHES=${S}/patches quilt pop -a
- fi
- if [ -d ${S}/.pc-${BPN} ]; then
- rm -rf ${S}/.pc
- mv ${S}/.pc-${BPN} ${S}/.pc
- QUILT_PATCHES=${S}/debian/patches quilt pop -a
- rm -rf ${S}/.pc ${S}/debian
- fi
- QUILT_PATCHES=${S}/debian/patches quilt push -a
- mv ${S}/.pc ${S}/.pc-${BPN}
-}
-
-do_unpack[cleandirs] += "${S}"
-
-python do_patch() {
- bb.build.exec_func('netkit_do_patch', d)
- bb.build.exec_func('patch_do_patch', d)
-}
-
-do_configure () {
- ./configure --prefix=${prefix}
- echo "LDFLAGS=${LDFLAGS}" >> MCONFIG
-}
-
-do_install () {
- # rwho & ruptime
- install -d ${D}${bindir}
- install -d ${D}${mandir}/man1
- #rwhod
- install -d ${D}${sbindir}
- install -d ${D}${mandir}/man8
- install -d ${D}${sysconfdir}/init.d
- install -d ${D}${sysconfdir}/default
- sed -i 's/install -s/install/' rwho/Makefile
- sed -i 's/install -s/install/' ruptime/Makefile
- sed -i 's/install -s/install/' rwhod/Makefile
- oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \
- 'DAEMONMODE=0755' 'MANMODE=0644' \
- 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \
- 'MANDIR=${mandir}' install
-
- install -m 0644 ${WORKDIR}/rwhod.default ${D}${sysconfdir}/default/rwhod
- install -m 755 ${WORKDIR}/rwhod ${D}${sysconfdir}/init.d
-
- mkdir -p -m 755 ${D}${localstatedir}/spool/rwho
- chown -R rwhod ${D}${localstatedir}/spool/rwho
-}
-pkg_postinst_ontarget:${PN}-server() {
- ${sysconfdir}/init.d/rwhod start
-}
-
-pkg_postrm:${PN}-server() {
- ${sysconfdir}/init.d/rwhod stop
-}
-
-INITSCRIPT_NAME = "rwhod"
-INITSCRIPT_PARAM = "defaults 85 15"
-
-USERADD_PACKAGES = "${PN}-server"
-GROUPADD_PARAM:${PN}-server = "--system rwhod"
-USERADD_PARAM:${PN}-server = "--system -g rwhod --home-dir ${localstatedir}/spool/rwho \
- --no-create-home --shell /bin/false rwhod"
-
-INSANE_SKIP:${PN} = "already-stripped"
-
-PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg"
-FILES:${PN}-client = "${bindir}/*"
-FILES:${PN}-server = "${sbindir}/* ${localstatedir} ${sysconfdir}/default/* ${sysconfdir}/init.d/*"
-FILES:${PN}-doc = "${mandir}"
-FILES:${PN}-dbg = "${prefix}/src/debug \
- ${bindir}/.debug ${sbindir}/.debug"
diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch b/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch
deleted file mode 100644
index 945785d3ce..0000000000
--- a/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 06ed6a6bf25a22902846097d6b6c97e070c2c326 Mon Sep 17 00:00:00 2001
-From: Seiichi Ishitsuka <ishitsuka.sc@ncos.nec.co.jp>
-Date: Fri, 1 Jun 2018 14:27:35 +0900
-Subject: [PATCH] telnetd: Fix deadlock on cleanup
-
-The cleanup function in telnetd is called both directly and on SIGCHLD
-signals. This, unfortunately, triggered a deadlock in eglibc 2.9 while
-running on a 2.6.31.11 kernel.
-
-What we were seeing is hangs like these:
-
- (gdb) bt
- #0 0xb7702424 in __kernel_vsyscall ()
- #1 0xb7658e61 in __lll_lock_wait_private () from ./lib/libc.so.6
- #2 0xb767e7b5 in _L_lock_15 () from ./lib/libc.so.6
- #3 0xb767e6e0 in utmpname () from ./lib/libc.so.6
- #4 0xb76bcde7 in logout () from ./lib/libutil.so.1
- #5 0x0804c827 in cleanup ()
- #6 <signal handler called>
- #7 0xb7702424 in __kernel_vsyscall ()
- #8 0xb7641003 in __fcntl_nocancel () from ./lib/libc.so.6
- #9 0xb767e0c3 in getutline_r_file () from ./lib/libc.so.6
- #10 0xb767d675 in getutline_r () from ./lib/libc.so.6
- #11 0xb76bce42 in logout () from ./lib/libutil.so.1
- #12 0x0804c827 in cleanup ()
- #13 0x0804a0b5 in telnet ()
- #14 0x0804a9c3 in main ()
-
-and what has happened here is that the user closes the telnet session
-via the escape character. This causes telnetd to call cleanup in frame
-the SIGCHLD signal is delivered while telnetd is executing cleanup.
-
-Telnetd then calls the signal handler for SIGCHLD, which is cleanup().
-Ouch. The actual deadlock is in libc. getutline_r in frame #10 gets the
-__libc_utmp_lock lock, and utmpname above does the same thing in frame
-
-The fix registers the SIGCHLD handler as cleanup_sighandler, and makes
-cleanup disable the SIGCHLD signal before calling cleanup_sighandler.
-
-Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
-
-The patch was imported from the Ubuntu netkit-telnet package.
-(https://bugs.launchpad.net/ubuntu/+source/netkit-telnet/+bug/507455)
-
-A previous patch declaring attributes of functions, but it is not used
-in upstream.
-
-Signed-off-by: Seiichi Ishitsuka <ishitsuka.sc@ncos.nec.co.jp>
----
- telnetd/ext.h | 1 +
- telnetd/sys_term.c | 17 ++++++++++++++++-
- telnetd/telnetd.c | 2 +-
- 3 files changed, 18 insertions(+), 2 deletions(-)
-
-diff --git a/telnetd/ext.h b/telnetd/ext.h
-index b98d6ec..08f9d07 100644
---- a/telnetd/ext.h
-+++ b/telnetd/ext.h
-@@ -97,6 +97,7 @@ void add_slc(int, int, int);
- void check_slc(void);
- void change_slc(int, int, int);
- void cleanup(int);
-+void cleanup_sighandler(int);
- void clientstat(int, int, int);
- void copy_termbuf(char *, int);
- void deferslc(void);
-diff --git a/telnetd/sys_term.c b/telnetd/sys_term.c
-index 5b4aa84..c4fb0f7 100644
---- a/telnetd/sys_term.c
-+++ b/telnetd/sys_term.c
-@@ -719,7 +719,7 @@ static void addarg(struct argv_stuff *avs, const char *val) {
- * This is the routine to call when we are all through, to
- * clean up anything that needs to be cleaned up.
- */
--void cleanup(int sig) {
-+void cleanup_sighandler(int sig) {
- char *p;
- (void)sig;
-
-@@ -742,3 +742,18 @@ void cleanup(int sig) {
- shutdown(net, 2);
- exit(0);
- }
-+
-+void cleanup(int sig) {
-+ sigset_t mask, oldmask;
-+
-+ /* Set up the mask of signals to temporarily block. */
-+ sigemptyset (&mask);
-+ sigaddset (&mask, SIGCHLD);
-+
-+ /* Block SIGCHLD while running cleanup */
-+ sigprocmask (SIG_BLOCK, &mask, &oldmask);
-+
-+ cleanup_sighandler(sig);
-+ /* Technically not needed since cleanup_sighandler exits */
-+ sigprocmask (SIG_UNBLOCK, &mask, NULL);
-+}
-diff --git a/telnetd/telnetd.c b/telnetd/telnetd.c
-index 9ace838..788919c 100644
---- a/telnetd/telnetd.c
-+++ b/telnetd/telnetd.c
-@@ -833,7 +833,7 @@ void telnet(int f, int p)
- signal(SIGTTOU, SIG_IGN);
- #endif
-
-- signal(SIGCHLD, cleanup);
-+ signal(SIGCHLD, cleanup_sighandler);
-
- #ifdef TIOCNOTTY
- {
---
-2.7.4
-
diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-print-format-strings.patch b/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-print-format-strings.patch
deleted file mode 100644
index f2f1b12e28..0000000000
--- a/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-print-format-strings.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 7a3095d1e9b7c73f9dca56250f433bcfc7cb660e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 10:15:34 -0700
-Subject: [PATCH] telnet/telnetd: Fix print format strings
-
-Fixes build with hardening flags
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- telnet/utilities.cc | 6 +++---
- telnetd/utility.c | 6 +++---
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/telnet/utilities.cc b/telnet/utilities.cc
-index 66839ab..36f0731 100644
---- a/telnet/utilities.cc
-+++ b/telnet/utilities.cc
-@@ -583,17 +583,17 @@ void printsub(int direction, unsigned char *pointer, int length) {
- case ENV_VAR:
- if (pointer[1] == TELQUAL_SEND)
- goto def_case;
-- fprintf(NetTrace, "\" VAR " + noquote);
-+ fprintf(NetTrace, "%s", "\" VAR " + noquote);
- noquote = 2;
- break;
-
- case ENV_VALUE:
-- fprintf(NetTrace, "\" VALUE " + noquote);
-+ fprintf(NetTrace, "%s", "\" VALUE " + noquote);
- noquote = 2;
- break;
-
- case ENV_ESC:
-- fprintf(NetTrace, "\" ESC " + noquote);
-+ fprintf(NetTrace, "%s", "\" ESC " + noquote);
- noquote = 2;
- break;
-
-diff --git a/telnetd/utility.c b/telnetd/utility.c
-index 29b7da1..75314cb 100644
---- a/telnetd/utility.c
-+++ b/telnetd/utility.c
-@@ -909,17 +909,17 @@ printsub(char direction, unsigned char *pointer, int length)
- case ENV_VAR:
- if (pointer[1] == TELQUAL_SEND)
- goto def_case;
-- netoprintf("\" VAR " + noquote);
-+ netoprintf("%s", "\" VAR " + noquote);
- noquote = 2;
- break;
-
- case ENV_VALUE:
-- netoprintf("\" VALUE " + noquote);
-+ netoprintf("%s", "\" VALUE " + noquote);
- noquote = 2;
- break;
-
- case ENV_ESC:
-- netoprintf("\" ESC " + noquote);
-+ netoprintf("%s", "\" ESC " + noquote);
- noquote = 2;
- break;
-
---
-2.13.2
-
diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnetd-utility.c-Fix-buffer-overflow-in-netoprintf.patch b/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnetd-utility.c-Fix-buffer-overflow-in-netoprintf.patch
deleted file mode 100644
index 8f983e40ab..0000000000
--- a/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnetd-utility.c-Fix-buffer-overflow-in-netoprintf.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 9c81c8e5bc7782e8ae12c078615abc3c896059f2 Mon Sep 17 00:00:00 2001
-From: Julius Hemanth Pitti <jpitti@cisco.com>
-Date: Tue, 14 Jul 2020 22:34:19 -0700
-Subject: [PATCH] telnetd/utility.c: Fix buffer overflow in netoprintf
-
-As per man page of vsnprintf, when formated
-string size is greater than "size"(2nd argument),
-then vsnprintf returns size of formated string,
-not "size"(2nd argument).
-
-netoprintf() was not handling a case where
-return value of vsnprintf is greater than
-"size"(2nd argument), results in buffer overflow
-while adjusting "nfrontp" pointer to point
-beyond "netobuf" buffer.
-
-Here is one such case where "nfrontp"
-crossed boundaries of "netobuf", and
-pointing to another global variable.
-
-(gdb) p &netobuf[8255]
-$5 = 0x55c93afe8b1f <netobuf+8255> ""
-(gdb) p nfrontp
-$6 = 0x55c93afe8c20 <terminaltype> "\377"
-(gdb) p &terminaltype
-$7 = (char **) 0x55c93afe8c20 <terminaltype>
-(gdb)
-
-This resulted in crash of telnetd service
-with segmentation fault.
-
-Though this is DoS security bug, I couldn't
-find any CVE ID for this.
-
-Upstream-Status: Pending
-
-Signed-off-by: Julius Hemanth Pitti <jpitti@cisco.com>
----
- telnetd/utility.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/telnetd/utility.c b/telnetd/utility.c
-index b9a46a6..4811f14 100644
---- a/telnetd/utility.c
-+++ b/telnetd/utility.c
-@@ -66,7 +66,7 @@ netoprintf(const char *fmt, ...)
- len = vsnprintf(nfrontp, maxsize, fmt, ap);
- va_end(ap);
-
-- if (len<0 || len==maxsize) {
-+ if (len<0 || len>=maxsize) {
- /* didn't fit */
- netflush();
- }
---
-2.19.1
diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/0001-utility-Include-time.h-form-time-and-strftime-protot.patch b/meta-networking/recipes-netkit/netkit-telnet/files/0001-utility-Include-time.h-form-time-and-strftime-protot.patch
deleted file mode 100644
index a5e634caab..0000000000
--- a/meta-networking/recipes-netkit/netkit-telnet/files/0001-utility-Include-time.h-form-time-and-strftime-protot.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 23b068e695881be0e8205ecccadf775fc3d5889d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Sep 2022 21:25:50 -0700
-Subject: [PATCH] utility: Include time.h form time() and strftime() prototypes
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- telnetd/utility.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/telnetd/utility.c b/telnetd/utility.c
-index 4811f14..b539777 100644
---- a/telnetd/utility.c
-+++ b/telnetd/utility.c
-@@ -40,6 +40,7 @@ char util_rcsid[] =
- #define PRINTOPTIONS
-
- #include <stdarg.h>
-+#include <time.h> /* for time() anf strftime() */
- #include <sys/utsname.h>
-
- #ifdef AUTHENTICATE
---
-2.37.3
-
diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/CVE-2020-10188.patch b/meta-networking/recipes-netkit/netkit-telnet/files/CVE-2020-10188.patch
deleted file mode 100644
index d21c602746..0000000000
--- a/meta-networking/recipes-netkit/netkit-telnet/files/CVE-2020-10188.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 6ab007dbb1958371abff2eaaad2b26da89b3c74e Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Fri, 24 Apr 2020 09:43:44 +0800
-Subject: [PATCH] telnetd/utility.c: fix CVE-2020-10188
-
-Upstream-Status: Backport
-[Fedora: https://src.fedoraproject.org/rpms/telnet/raw/master/f/telnet-0.17-overflow-exploit.patch]
-
-CVE: CVE-2020-10188
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- telnetd/utility.c | 32 +++++++++++++++++++++-----------
- 1 file changed, 21 insertions(+), 11 deletions(-)
-
-diff --git a/telnetd/utility.c b/telnetd/utility.c
-index 75314cb..b9a46a6 100644
---- a/telnetd/utility.c
-+++ b/telnetd/utility.c
-@@ -169,31 +169,38 @@ void ptyflush(void)
- */
- static
- char *
--nextitem(char *current)
-+nextitem(char *current, const char *endp)
- {
-+ if (current >= endp) {
-+ return NULL;
-+ }
- if ((*current&0xff) != IAC) {
- return current+1;
- }
-+ if (current+1 >= endp) {
-+ return NULL;
-+ }
- switch (*(current+1)&0xff) {
- case DO:
- case DONT:
- case WILL:
- case WONT:
-- return current+3;
-+ return current+3 <= endp ? current+3 : NULL;
- case SB: /* loop forever looking for the SE */
- {
- register char *look = current+2;
-
-- for (;;) {
-+ while (look < endp) {
- if ((*look++&0xff) == IAC) {
-- if ((*look++&0xff) == SE) {
-+ if (look < endp && (*look++&0xff) == SE) {
- return look;
- }
- }
- }
-+ return NULL;
- }
- default:
-- return current+2;
-+ return current+2 <= endp ? current+2 : NULL;
- }
- } /* end of nextitem */
-
-@@ -219,7 +226,7 @@ void netclear(void)
- register char *thisitem, *next;
- char *good;
- #define wewant(p) ((nfrontp > p) && ((*p&0xff) == IAC) && \
-- ((*(p+1)&0xff) != EC) && ((*(p+1)&0xff) != EL))
-+ (nfrontp > p+1 && (((*(p+1)&0xff) != EC) && ((*(p+1)&0xff) != EL))))
-
- #if defined(ENCRYPT)
- thisitem = nclearto > netobuf ? nclearto : netobuf;
-@@ -227,7 +234,7 @@ void netclear(void)
- thisitem = netobuf;
- #endif
-
-- while ((next = nextitem(thisitem)) <= nbackp) {
-+ while ((next = nextitem(thisitem, nbackp)) != NULL && next <= nbackp) {
- thisitem = next;
- }
-
-@@ -239,20 +246,23 @@ void netclear(void)
- good = netobuf; /* where the good bytes go */
- #endif
-
-- while (nfrontp > thisitem) {
-+ while (thisitem != NULL && nfrontp > thisitem) {
- if (wewant(thisitem)) {
- int length;
-
- next = thisitem;
- do {
-- next = nextitem(next);
-- } while (wewant(next) && (nfrontp > next));
-+ next = nextitem(next, nfrontp);
-+ } while (next != NULL && wewant(next) && (nfrontp > next));
-+ if (next == NULL) {
-+ next = nfrontp;
-+ }
- length = next-thisitem;
- bcopy(thisitem, good, length);
- good += length;
- thisitem = next;
- } else {
-- thisitem = nextitem(thisitem);
-+ thisitem = nextitem(thisitem, nfrontp);
- }
- }
-
---
-2.7.4
-
diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/To-aviod-buffer-overflow-in-telnet.patch b/meta-networking/recipes-netkit/netkit-telnet/files/To-aviod-buffer-overflow-in-telnet.patch
deleted file mode 100644
index 7fff8cffc4..0000000000
--- a/meta-networking/recipes-netkit/netkit-telnet/files/To-aviod-buffer-overflow-in-telnet.patch
+++ /dev/null
@@ -1,1217 +0,0 @@
-From f09a6460a62aacb87bb8683d16aa3ce55848bf7e Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Fri, 28 Nov 2014 07:06:24 +0900
-Subject: [PATCH 1/2] To aviod buffer overflow in telnet
-
-This patch is from Fedora.
-
-Upstream-Status: pending
-
-Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
----
- telnet/Makefile | 4 +-
- telnet/commands.cc | 270 +++++++++++++++++++++++++++++++++++-----------------
- telnet/defines.h | 2 +
- telnet/externs.h | 7 +-
- telnet/main.cc | 65 ++++++++++---
- telnet/netlink.cc | 78 +++++++++------
- telnet/netlink.h | 7 +-
- telnet/network.cc | 1 +
- telnet/proto.h | 2 +-
- telnet/ring.cc | 2 +-
- telnet/ring.h | 2 +-
- telnet/sys_bsd.cc | 11 +++
- telnet/telnet.1 | 37 +++++--
- telnet/telnet.cc | 45 +++++----
- telnet/terminal.cc | 17 +++-
- telnet/utilities.cc | 2 +
- 16 files changed, 380 insertions(+), 172 deletions(-)
-
-diff --git a/telnet/Makefile b/telnet/Makefile
-index cef866f..39249e1 100644
---- a/telnet/Makefile
-+++ b/telnet/Makefile
-@@ -7,7 +7,7 @@ include ../MRULES
-
- # -DAUTHENTICATE
- CXXFLAGS += -DUSE_TERMIO -DKLUDGELINEMODE
--LIBS += $(LIBTERMCAP)
-+LIBS = $(LIBTERMCAP)
-
- SRCS = commands.cc main.cc network.cc ring.cc sys_bsd.cc telnet.cc \
- terminal.cc tn3270.cc utilities.cc genget.cc environ.cc netlink.cc
-@@ -22,7 +22,7 @@ depend:
- $(CXX) $(CXXFLAGS) -MM $(SRCS) >depend.mk
-
- install: telnet
-- install -s -m$(BINMODE) telnet $(INSTALLROOT)$(BINDIR)
-+ install -m$(BINMODE) telnet $(INSTALLROOT)$(BINDIR)
- install -m$(MANMODE) telnet.1 $(INSTALLROOT)$(MANDIR)/man1
-
- clean:
-diff --git a/telnet/commands.cc b/telnet/commands.cc
-index d92bccd..02c593e 100644
---- a/telnet/commands.cc
-+++ b/telnet/commands.cc
-@@ -86,10 +86,6 @@ char cmd_rcsid[] =
-
- #define HELPINDENT ((int) sizeof ("connect"))
-
--#ifndef MAXHOSTNAMELEN
--#define MAXHOSTNAMELEN 64
--#endif MAXHOSTNAMELEN
--
- #if defined(HAS_IPPROTO_IP) && defined(IP_TOS)
- int tos = -1;
- #endif /* defined(HAS_IPPROTO_IP) && defined(IP_TOS) */
-@@ -98,7 +94,7 @@ static unsigned long sourceroute(char *arg, char **cpp, int *lenp);
-
-
- char *hostname;
--static char _hostname[MAXHOSTNAMELEN];
-+static char *_hostname;
-
- //typedef int (*intrtn_t)(int argc, const char *argv[]);
-
-@@ -161,7 +157,7 @@ class command_entry {
- assert(argc>=1);
- if (nargs>=0 && argc!=nargs+1) {
- fprintf(stderr, "Wrong number of arguments for command.\n");
-- fprintf(stderr, "Try %s ? for help\n", argv[0]);
-+ fprintf(stderr, "Try ? %s for help\n", argv[0]);
- return 0; /* is this right? */
- }
- if (nargs==-2) {
-@@ -480,6 +476,7 @@ static int send_wontcmd(const char *name, const char *) {
- int send_tncmd(int (*func)(int, int), const char *cmd, const char *name) {
- char **cpp;
- extern char *telopts[];
-+ long opt;
-
- if (isprefix(name, "help") || isprefix(name, "?")) {
- register int col, len;
-@@ -506,16 +503,23 @@ int send_tncmd(int (*func)(int, int), const char *cmd, const char *name) {
- name, cmd);
- return 0;
- }
-+
-+ opt = cpp - telopts;
- if (cpp == 0) {
-- fprintf(stderr, "'%s': unknown argument ('send %s ?' for help).\n",
-+ char *end;
-+
-+ opt = strtol(name, &end, 10);
-+ if (*end || opt < 0 || opt > 255) {
-+ fprintf(stderr, "'%s': unknown argument ('send %s ?' for help).\n",
- name, cmd);
-- return 0;
-+ return 0;
-+ }
- }
- if (!connected) {
- printf("?Need to be connected first.\n");
- return 0;
- }
-- (*func)(cpp - telopts, 1);
-+ (*func)(opt, 1);
- return 1;
- }
-
-@@ -689,9 +693,9 @@ static struct togglelist Togglelist[] = {
- "print encryption debugging information" },
- #endif
-
-- { "skiprc", "don't read ~/.telnetrc file",
-+ { "skiprc", "don't read the telnetrc files",
- NULL, &skiprc,
-- "read ~/.telnetrc file" },
-+ "read the telnetrc files" },
- { "binary",
- "sending and receiving of binary data",
- togbinary, NULL,
-@@ -1615,15 +1619,20 @@ void ayt_status(int) {
- #endif
-
- int tn(int argc, const char *argv[]) {
-- register struct hostent *host = 0;
- struct sockaddr_in sn;
-- struct servent *sp = 0;
- char *srp = NULL;
- int srlen;
--
-- const char *cmd, *volatile user = 0;
-+ int family = 0;
-+ const char *cmd, *volatile user = 0, *srchostp = 0;
- const char *portp = NULL;
- char *hostp = NULL;
-+ char *resolv_hostp;
-+ struct addrinfo hints;
-+ struct addrinfo *hostaddr = 0;
-+ int res;
-+ char name[NI_MAXHOST];
-+ char service[NI_MAXSERV];
-+ struct addrinfo *tmpaddr;
-
- /* clear the socket address prior to use */
- memset(&sn, 0, sizeof(sn));
-@@ -1632,6 +1641,10 @@ int tn(int argc, const char *argv[]) {
- printf("?Already connected to %s\n", hostname);
- return 0;
- }
-+ if (_hostname) {
-+ delete[] _hostname;
-+ _hostname = 0;
-+ }
- if (argc < 2) {
- (void) strcpy(line, "open ");
- printf("(to) ");
-@@ -1657,11 +1670,33 @@ int tn(int argc, const char *argv[]) {
- --argc;
- continue;
- }
-+ if (strcmp(*argv, "-b") == 0) {
-+ --argc; ++argv;
-+ if (argc == 0)
-+ goto usage;
-+ srchostp = *argv++;
-+ --argc;
-+ continue;
-+ }
- if (strcmp(*argv, "-a") == 0) {
- --argc; ++argv;
- autologin = 1;
- continue;
- }
-+ if (strcmp(*argv, "-6") == 0) {
-+ --argc; ++argv;
-+#ifdef AF_INET6
-+ family = AF_INET6;
-+#else
-+ puts("IPv6 unsupported");
-+#endif
-+ continue;
-+ }
-+ if (strcmp(*argv, "-4") == 0) {
-+ --argc; ++argv;
-+ family = AF_INET;
-+ continue;
-+ }
- if (hostp == 0) {
- /* this leaks memory - FIXME */
- hostp = strdup(*argv++);
-@@ -1680,6 +1715,8 @@ int tn(int argc, const char *argv[]) {
- if (hostp == 0)
- goto usage;
-
-+ resolv_hostp = hostp;
-+
- #if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP)
- if (hostp[0] == '@' || hostp[0] == '!') {
- if ((hostname = strrchr(hostp, ':')) == NULL)
-@@ -1696,78 +1733,122 @@ int tn(int argc, const char *argv[]) {
- } else {
- sn.sin_addr.s_addr = temp;
- sn.sin_family = AF_INET;
-+ /*
-+ * For source route we just make sure to get the IP given
-+ * on the command line when looking up the port.
-+ */
-+ resolv_hostp = inet_ntoa(sn.sin_addr);
- }
- }
-- else {
--#endif
-- if (inet_aton(hostp, &sn.sin_addr)) {
-- sn.sin_family = AF_INET;
-- strcpy(_hostname, hostp);
-- hostname = _hostname;
-- }
-- else {
-- host = gethostbyname(hostp);
-- if (host) {
-- sn.sin_family = host->h_addrtype;
-- if (host->h_length > (int)sizeof(sn.sin_addr)) {
-- host->h_length = sizeof(sn.sin_addr);
-- }
--#if defined(h_addr) /* In 4.3, this is a #define */
-- memcpy((caddr_t)&sn.sin_addr,
-- host->h_addr_list[0], host->h_length);
--#else /* defined(h_addr) */
-- memcpy((caddr_t)&sn.sin_addr, host->h_addr, host->h_length);
--#endif /* defined(h_addr) */
-- strncpy(_hostname, host->h_name, sizeof(_hostname));
-- _hostname[sizeof(_hostname)-1] = '\0';
-- hostname = _hostname;
-- } else {
-- herror(hostp);
-- return 0;
-- }
-- }
--#if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP)
-- }
- #endif
-+
-+ /* User port or the default name of telnet. */
- if (portp) {
- if (*portp == '-') {
- portp++;
- telnetport = 1;
-- } else
-+ } else {
- telnetport = 0;
-- sn.sin_port = atoi(portp);
-- if (sn.sin_port == 0) {
-- sp = getservbyname(portp, "tcp");
-- if (sp)
-- sn.sin_port = sp->s_port;
-- else {
-- printf("%s: bad port number\n", portp);
-- return 0;
-+ if (*portp >='0' && *portp<='9') {
-+ char *end;
-+ long int p;
-+
-+ p=strtol(portp, &end, 10);
-+ if (ERANGE==errno && (LONG_MIN==p || LONG_MAX==p)) {
-+ fprintf(stderr, "telnet: port %s overflows\n", portp);
-+ return 0;
-+ } else if (p<=0 || p>=65536) {
-+ fprintf(stderr, "telnet: port %s out of range\n", portp);
-+ return 0;
-+ }
- }
-- }
-- else {
-- sn.sin_port = htons(sn.sin_port);
- }
-- }
-+ }
- else {
-- if (sp == 0) {
-- sp = getservbyname("telnet", "tcp");
-- if (sp == 0) {
-- fprintf(stderr, "telnet: tcp/telnet: unknown service\n");
-- return 0;
-- }
-- sn.sin_port = sp->s_port;
-- }
-+ portp = "telnet";
- telnetport = 1;
- }
-- printf("Trying %s...\n", inet_ntoa(sn.sin_addr));
-+
-+ /* We only understand SOCK_STREAM sockets. */
-+ memset(&hints, 0, sizeof(hints));
-+ hints.ai_socktype = SOCK_STREAM;
-+ hints.ai_flags = AI_NUMERICHOST;
-+ hints.ai_family = family;
-+
-+ if (srchostp) {
-+ res = getaddrinfo(srchostp, "0", &hints, &hostaddr);
-+ if (res) {
-+ fprintf(stderr, "telnet: could not resolve %s: %s\n", srchostp,
-+ gai_strerror(res));
-+ return 0;
-+ }
-+ hints.ai_family = hostaddr->ai_family;
-+ res = nlink.bind(hostaddr);
-+ freeaddrinfo(hostaddr);
-+ if (res < 0)
-+ return 0;
-+ }
-+
-+ /* Resolve both the host and service simultaneously. */
-+ res = getaddrinfo(resolv_hostp, portp, &hints, &hostaddr);
-+ if (res == EAI_NONAME) {
-+ hints.ai_flags = AI_CANONNAME;
-+ res = getaddrinfo(resolv_hostp, portp, &hints, &hostaddr);
-+ } else if (hostaddr) {
-+ hostaddr->ai_canonname = 0;
-+ }
-+ if (res || !hostaddr) {
-+ fprintf(stderr, "telnet: could not resolve %s/%s: %s\n", resolv_hostp, portp, gai_strerror(res));
-+ return 0;
-+ }
-+
-+ /* Try to connect to every listed round robin IP. */
-+ tmpaddr = hostaddr;
-+ errno = 0;
- do {
-- int x = nlink.connect(debug, host, &sn, srp, srlen, tos);
-- if (!x) return 0;
-- else if (x==1) continue;
-+ int x;
-+
-+ if (!tmpaddr) {
-+ if (errno)
-+ perror("telnet: Unable to connect to remote host");
-+ else
-+ fputs("telnet: Unable to connect to remote host: "
-+ "Bad port number\n", stderr);
-+err:
-+ freeaddrinfo(hostaddr);
-+ return 0;
-+ }
-+
-+ if (tmpaddr->ai_family == AF_UNIX) {
-+nextaddr:
-+ tmpaddr = tmpaddr->ai_next;
-+ continue;
-+ }
-+
-+ getnameinfo(tmpaddr->ai_addr, tmpaddr->ai_addrlen,
-+ name, sizeof(name), service, sizeof(service),
-+ NI_NUMERICHOST | NI_NUMERICSERV);
-+
-+ printf("Trying %s...\n", name);
-+ x = nlink.connect(debug, tmpaddr, srp, srlen, tos);
-+ if (!x)
-+ goto err;
-+ else if (x==1)
-+ goto nextaddr;
-+
- connected++;
- } while (connected == 0);
-- cmdrc(hostp, hostname);
-+ if (tmpaddr->ai_canonname == 0) {
-+ hostname = new char[strlen(hostp)+1];
-+ strcpy(hostname, hostp);
-+ }
-+ else {
-+ hostname = new char[strlen(tmpaddr->ai_canonname)+1];
-+ strcpy(hostname, tmpaddr->ai_canonname);
-+ }
-+
-+ cmdrc(hostp, hostname, portp);
-+ freeaddrinfo(hostaddr);
- if (autologin && user == NULL) {
- struct passwd *pw;
-
-@@ -2013,30 +2094,21 @@ static int help(command_table *tab, int argc, const char *argv[]) {
- return 0;
- }
-
--static char *rcname = 0;
--static char rcbuf[128];
--
--void cmdrc(const char *m1, const char *m2) {
-+static void readrc(const char *m1, const char *m2, const char *port,
-+ const char *rcname)
-+{
- FILE *rcfile;
- int gotmachine = 0;
- int l1 = strlen(m1);
- int l2 = strlen(m2);
-- char m1save[64];
--
-- if (skiprc) return;
-+ int lport = strlen(port);
-+ char m1save[l1 + 1];
-+ char portsave[lport + 1];
-
- strcpy(m1save, m1);
- m1 = m1save;
--
-- if (rcname == 0) {
-- rcname = getenv("HOME");
-- if (rcname)
-- strcpy(rcbuf, rcname);
-- else
-- rcbuf[0] = '\0';
-- strcat(rcbuf, "/.telnetrc");
-- rcname = rcbuf;
-- }
-+ strcpy(portsave, port);
-+ port = portsave;
-
- rcfile = fopen(rcname, "r");
- if (!rcfile) return;
-@@ -2061,6 +2133,13 @@ void cmdrc(const char *m1, const char *m2) {
- strncpy(line, &line[7], sizeof(line) - 7);
- else
- continue;
-+
-+ if (line[0] == ':') {
-+ if (!strncasecmp(&line[1], port, lport))
-+ continue;
-+ strncpy(line, &line[lport + 1], sizeof(line) - lport - 1);
-+ }
-+
- if (line[0] != ' ' && line[0] != '\t' && line[0] != '\n')
- continue;
- gotmachine = 1;
-@@ -2073,6 +2152,21 @@ void cmdrc(const char *m1, const char *m2) {
- fclose(rcfile);
- }
-
-+void cmdrc(const char *m1, const char *m2, const char *port) {
-+ char *rcname = NULL;
-+
-+ if (skiprc) return;
-+
-+ readrc(m1, m2, port, "/etc/telnetrc");
-+ if (asprintf (&rcname, "%s/.telnetrc", getenv ("HOME")) == -1)
-+ {
-+ perror ("asprintf");
-+ return;
-+ }
-+ readrc(m1, m2, port, rcname);
-+ free (rcname);
-+}
-+
- #if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP)
-
- /*
-diff --git a/telnet/defines.h b/telnet/defines.h
-index 2784400..d5edc46 100644
---- a/telnet/defines.h
-+++ b/telnet/defines.h
-@@ -50,3 +50,5 @@
- #define MODE_COMMAND_LINE(m) ((m)==-1)
-
- #define CONTROL(x) ((x)&0x1f) /* CTRL(x) is not portable */
-+
-+#define MODE_OUT8 0x8000 /* binary mode sans -opost */
-diff --git a/telnet/externs.h b/telnet/externs.h
-index 955df79..0730e8a 100644
---- a/telnet/externs.h
-+++ b/telnet/externs.h
-@@ -48,9 +48,7 @@
- typedef unsigned char cc_t;
- #endif
-
--#ifdef __linux__
- #include <unistd.h> /* get _POSIX_VDISABLE */
--#endif
-
- #ifndef _POSIX_VDISABLE
- #error "Please fix externs.h to define _POSIX_VDISABLE"
-@@ -60,7 +58,8 @@ typedef unsigned char cc_t;
-
- extern int autologin; /* Autologin enabled */
- extern int skiprc; /* Don't process the ~/.telnetrc file */
--extern int eight; /* use eight bit mode (binary in and/or out */
-+extern int eight; /* use eight bit mode (binary in and/or out) */
-+extern int binary; /* use binary option (in and/or out) */
- extern int flushout; /* flush output */
- extern int connected; /* Are we connected to the other side? */
- extern int globalmode; /* Mode tty should be in */
-@@ -225,6 +224,8 @@ cc_t *tcval(int);
-
- //#if 0
- extern struct termios new_tc;
-+extern struct termios old_tc;
-+
-
- #define termEofChar new_tc.c_cc[VEOF]
- #define termEraseChar new_tc.c_cc[VERASE]
-diff --git a/telnet/main.cc b/telnet/main.cc
-index b67f2ce..b626e54 100644
---- a/telnet/main.cc
-+++ b/telnet/main.cc
-@@ -45,7 +45,10 @@ char main_rcsid[] =
-
- #include <sys/types.h>
- #include <getopt.h>
-+#include <stdlib.h>
- #include <string.h>
-+#include <netdb.h>
-+#include <errno.h>
-
- #include "ring.h"
- #include "externs.h"
-@@ -80,12 +83,13 @@ tninit(void)
- void usage(void) {
- fprintf(stderr, "Usage: %s %s%s%s%s\n",
- prompt,
-- " [-8] [-E] [-L] [-a] [-d] [-e char] [-l user] [-n tracefile]",
-- "\n\t",
-+ "[-4] [-6] [-8] [-E] [-L] [-a] [-d] [-e char] [-l user]",
-+ "\n\t[-n tracefile] [ -b addr ]",
- #ifdef TN3270
-+ "\n\t"
- "[-noasynch] [-noasynctty] [-noasyncnet] [-r] [-t transcom]\n\t",
- #else
-- "[-r] ",
-+ " [-r] ",
- #endif
- "[host-name [port]]"
- );
-@@ -102,7 +106,8 @@ main(int argc, char *argv[])
- extern char *optarg;
- extern int optind;
- int ch;
-- char *user;
-+ char *user, *srcaddr;
-+ int family;
-
- tninit(); /* Clear out things */
- #if defined(CRAY) && !defined(__STDC__)
-@@ -110,21 +115,38 @@ main(int argc, char *argv[])
- #endif
-
- TerminalSaveState();
-+ if ((old_tc.c_cflag & (CSIZE|PARENB)) != CS8)
-+ eight = 0;
-
- if ((prompt = strrchr(argv[0], '/'))!=NULL)
- ++prompt;
- else
- prompt = argv[0];
-
-- user = NULL;
-+ user = srcaddr = NULL;
-+ family = 0;
-
- rlogin = (strncmp(prompt, "rlog", 4) == 0) ? '~' : _POSIX_VDISABLE;
- autologin = -1;
-
-- while ((ch = getopt(argc, argv, "8EKLS:X:ade:k:l:n:rt:x")) != EOF) {
-+ while ((ch = getopt(argc, argv,
-+ "4678EKLS:X:ab:de:k:l:n:rt:x")) != EOF) {
- switch(ch) {
-+ case '4':
-+ family = AF_INET;
-+ break;
-+ case '6':
-+#ifdef AF_INET6
-+ family = AF_INET6;
-+#else
-+ fputs("IPv6 unsupported\n", stderr);
-+#endif
-+ break;
-+ case '7':
-+ eight = 0; /* 7-bit ouput and input */
-+ break;
- case '8':
-- eight = 3; /* binary output and input */
-+ binary = 3; /* binary output and input */
- break;
- case 'E':
- rlogin = escapechar = _POSIX_VDISABLE;
-@@ -133,23 +155,26 @@ main(int argc, char *argv[])
- //autologin = 0;
- break;
- case 'L':
-- eight |= 2; /* binary output only */
-+ binary |= 2; /* binary output only */
- break;
- case 'S':
- {
--#ifdef HAS_GETTOS
- extern int tos;
-+ int num;
-
-- if ((tos = parsetos(optarg, "tcp")) < 0)
-+#ifdef HAS_GETTOS
-+ if ((num = parsetos(optarg, "tcp")) < 0) {
-+#else
-+ errno = 0;
-+ num = strtol(optarg, 0, 0);
-+ if (errno) {
-+#endif
- fprintf(stderr, "%s%s%s%s\n",
- prompt, ": Bad TOS argument '",
- optarg,
- "; will try to use default TOS");
--#else
-- fprintf(stderr,
-- "%s: Warning: -S ignored, no parsetos() support.\n",
-- prompt);
--#endif
-+ } else
-+ tos = num;
- }
- break;
- case 'X':
-@@ -210,6 +235,9 @@ main(int argc, char *argv[])
- "%s: -x ignored, no encryption support.\n",
- prompt);
- break;
-+ case 'b':
-+ srcaddr = optarg;
-+ break;
- case '?':
- default:
- usage();
-@@ -233,6 +261,13 @@ main(int argc, char *argv[])
- *argp++ = "-l";
- *argp++ = user;
- }
-+ if (srcaddr) {
-+ *argp++ = "-b";
-+ *argp++ = srcaddr;
-+ }
-+ if (family) {
-+ *argp++ = family == AF_INET ? "-4" : "-6";
-+ }
- *argp++ = argv[0]; /* host */
- if (argc > 1)
- *argp++ = argv[1]; /* port */
-diff --git a/telnet/netlink.cc b/telnet/netlink.cc
-index f439cff..f839747 100644
---- a/telnet/netlink.cc
-+++ b/telnet/netlink.cc
-@@ -79,22 +79,61 @@ void netlink::close(int doshutdown) {
- shutdown(net, 2);
- }
- ::close(net);
-+ net = -1;
- }
-
--int netlink::connect(int debug, struct hostent *host,
-- struct sockaddr_in *sn,
-- char *srcroute, int srlen, int tos)
-+int netlink::bind(struct addrinfo *addr)
- {
-- int on=1;
-+ int res;
-+
-+ res = socket(addr->ai_family);
-+ if (res < 2) {
-+ if (res == 1)
-+ perror("telnet: socket");
-+ return -1;
-+ }
-+
-+ if (::bind(net, addr->ai_addr, addr->ai_addrlen) < 0) {
-+ perror("telnet: bind");
-+ return -1;
-+ }
-+
-+ return 0;
-+}
-+
-+int netlink::socket(int family)
-+{
-+ if (this->family != family)
-+ close(0);
-
-- net = socket(AF_INET, SOCK_STREAM, 0);
- if (net < 0) {
-- perror("telnet: socket");
-- return 0;
-+ this->family = family;
-+ net = ::socket(family, SOCK_STREAM, 0);
-+ if (net < 0) {
-+ if (errno == EAFNOSUPPORT)
-+ return 1;
-+ perror("telnet: socket");
-+ return 0;
-+ }
- }
-
-+ return 2;
-+}
-+
-+int netlink::connect(int debug, struct addrinfo *addr,
-+ char *srcroute, int srlen, int tos)
-+{
-+ int on=1;
-+ int res;
-+
-+ res = socket(addr->ai_family);
-+ if (res < 2)
-+ return res;
-+
- #if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP)
- if (srcroute) {
-+ if (addr->ai_family != AF_INET)
-+ fputs("Source route is only supported for IPv4\n", stderr);
- if (setsockopt(net, IPPROTO_IP, IP_OPTIONS, srcroute, srlen) < 0)
- perror("setsockopt (IP_OPTIONS)");
- }
-@@ -108,7 +147,7 @@ int netlink::connect(int debug, struct hostent *host,
- #endif
- if (tos < 0) tos = 020; /* Low Delay bit */
- if (tos && (setsockopt(net, IPPROTO_IP, IP_TOS, &tos, sizeof(int)) < 0)
-- && (errno != ENOPROTOOPT))
-+ && (errno != ENOPROTOOPT) && (errno != EOPNOTSUPP))
- perror("telnet: setsockopt (IP_TOS) (ignored)");
- #endif /* defined(IPPROTO_IP) && defined(IP_TOS) */
-
-@@ -116,27 +155,8 @@ int netlink::connect(int debug, struct hostent *host,
- perror("setsockopt (SO_DEBUG)");
- }
-
-- if (::connect(net, (struct sockaddr *)sn, sizeof(*sn)) < 0) {
--#if defined(h_addr) /* In 4.3, this is a #define */
-- if (host && host->h_addr_list[1]) {
-- int oerrno = errno;
--
-- fprintf(stderr, "telnet: connect to address %s: ",
-- inet_ntoa(sn->sin_addr));
-- errno = oerrno;
-- perror(NULL);
-- host->h_addr_list++;
-- if (host->h_length > (int)sizeof(sn->sin_addr)) {
-- host->h_length = sizeof(sn->sin_addr);
-- }
-- memcpy(&sn->sin_addr, host->h_addr_list[0], host->h_length);
-- close(net);
-- return 1;
-- }
--#endif /* defined(h_addr) */
--
-- perror("telnet: Unable to connect to remote host");
-- return 0;
-+ if (::connect(net, addr->ai_addr, addr->ai_addrlen) < 0) {
-+ return 1;
- }
- return 2;
- }
-diff --git a/telnet/netlink.h b/telnet/netlink.h
-index 9852b30..0ac8a08 100644
---- a/telnet/netlink.h
-+++ b/telnet/netlink.h
-@@ -1,13 +1,16 @@
-
- class netlink {
-+ private:
-+ int family;
- protected:
- int net;
- public:
- netlink();
- ~netlink();
-
-- int connect(int debug, struct hostent *host,
-- struct sockaddr_in *sin,
-+ int bind(struct addrinfo *hostaddr);
-+ int socket(int family);
-+ int connect(int debug, struct addrinfo *hostaddr,
- char *srcroute, int srlen,
- int tos);
- void close(int doshutdown);
-diff --git a/telnet/network.cc b/telnet/network.cc
-index 6a2c374..0dcf3e2 100644
---- a/telnet/network.cc
-+++ b/telnet/network.cc
-@@ -40,6 +40,7 @@ char net_rcsid[] =
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/time.h>
-+#include <stdlib.h>
- #include <errno.h>
- #include <arpa/telnet.h>
-
-diff --git a/telnet/proto.h b/telnet/proto.h
-index 8be4a39..92f2419 100644
---- a/telnet/proto.h
-+++ b/telnet/proto.h
-@@ -13,7 +13,7 @@ int TerminalWindowSize(long *rows, long *cols);
- void auth_encrypt_user(char *);
- void auth_name(unsigned char *, int);
- void auth_printsub(unsigned char *, int, unsigned char *, int);
--void cmdrc(const char *m1, const char *m2);
-+void cmdrc(const char *, const char *, const char *);
- void env_init(void);
- int getconnmode(void);
- void init_network(void);
-diff --git a/telnet/ring.cc b/telnet/ring.cc
-index be57396..772c6c5 100644
---- a/telnet/ring.cc
-+++ b/telnet/ring.cc
-@@ -165,7 +165,7 @@ int ringbuf::flush() {
-
- /////////////////////////////////////////////////// supply //////////////
-
--void ringbuf::printf(const char *format, ...) {
-+void ringbuf::xprintf(const char *format, ...) {
- char xbuf[256];
- va_list ap;
- va_start(ap, format);
-diff --git a/telnet/ring.h b/telnet/ring.h
-index 15d3f3f..049377e 100644
---- a/telnet/ring.h
-+++ b/telnet/ring.h
-@@ -83,7 +83,7 @@ class ringbuf {
- // manual supply
- void putch(char c) { write(&c, 1); }
- void write(const char *buffer, int ct);
-- void printf(const char *format, ...);
-+ void xprintf(const char *format, ...);
- int empty_count() { return size - count; }
-
- // automatic supply
-diff --git a/telnet/sys_bsd.cc b/telnet/sys_bsd.cc
-index 93fba7e..a8c9aab 100644
---- a/telnet/sys_bsd.cc
-+++ b/telnet/sys_bsd.cc
-@@ -189,18 +189,25 @@ void NetSetPgrp(int fd) {
- * Various signal handling routines.
- */
-
-+#if 0
- static void deadpeer(int /*sig*/) {
- setcommandmode();
- siglongjmp(peerdied, -1);
- }
-+#endif
-
- static void intr(int /*sig*/) {
- if (localchars) {
- intp();
- }
- else {
-+#if 0
- setcommandmode();
- siglongjmp(toplevel, -1);
-+#else
-+ signal(SIGINT, SIG_DFL);
-+ raise(SIGINT);
-+#endif
- }
- }
-
-@@ -214,6 +221,8 @@ static void intr2(int /*sig*/) {
- sendabort();
- return;
- }
-+ signal(SIGQUIT, SIG_DFL);
-+ raise(SIGQUIT);
- }
-
- #ifdef SIGWINCH
-@@ -238,7 +247,9 @@ void ayt(int sig) {
- void sys_telnet_init(void) {
- signal(SIGINT, intr);
- signal(SIGQUIT, intr2);
-+#if 0
- signal(SIGPIPE, deadpeer);
-+#endif
- #ifdef SIGWINCH
- signal(SIGWINCH, sendwin);
- #endif
-diff --git a/telnet/telnet.1 b/telnet/telnet.1
-index 54a47fb..8365e42 100644
---- a/telnet/telnet.1
-+++ b/telnet/telnet.1
-@@ -42,8 +42,9 @@
- protocol
- .Sh SYNOPSIS
- .Nm telnet
--.Op Fl 8ELadr
-+.Op Fl 468ELadr
- .Op Fl S Ar tos
-+.Op Fl b Ar address
- .Op Fl e Ar escapechar
- .Op Fl l Ar user
- .Op Fl n Ar tracefile
-@@ -68,6 +69,10 @@ command implicitly; see the description below.
- .Pp
- Options:
- .Bl -tag -width indent
-+.It Fl 4
-+Force IPv4 address resolution.
-+.It Fl 6
-+Force IPv6 address resolution.
- .It Fl 8
- Request 8-bit operation. This causes an attempt to negotiate the
- .Dv TELNET BINARY
-@@ -89,6 +94,8 @@ of the
- option if supported by the remote system. The username is retrieved
- via
- .Xr getlogin 3 .
-+.It Fl b Ar address
-+Use bind(2) on the local socket to bind it to a specific local address.
- .It Fl d
- Sets the initial value of the
- .Ic debug
-@@ -474,17 +481,29 @@ protocol without making a mess. Protocol negotiation can be forced by
- placing a dash before the port number.
- .Pp
- After establishing a connection, any commands associated with the
--remote host in the user's
-+remote host in
-+.Pa /etc/telnetrc
-+and the user's
- .Pa .telnetrc
--file are executed.
-+file are executed, in that order.
- .Pp
--The format of the .telnetrc file is as follows: Lines beginning with a
-+The format of the telnetrc files is as follows: Lines beginning with a
- #, and blank lines, are ignored. The rest of the file should consist
- of hostnames and sequences of
- .Nm telnet
- commands to use with that host. Commands should be one per line,
- indented by whitespace; lines beginning without whitespace are
--interpreted as hostnames. Upon connecting to a particular host, the
-+interpreted as hostnames. Lines beginning with the special hostname
-+.Ql DEFAULT
-+will apply to all hosts. Hostnames including
-+.Ql DEFAULT
-+may be followed immediately by a colon and a port number or string.
-+If a port is specified it must match exactly with what is specified
-+on the command line. If no port was specified on the command line,
-+then the value
-+.Ql telnet
-+is used.
-+Upon connecting to a particular host, the
- commands associated with that host are executed.
- .It Ic quit
- Close any open session and exit
-@@ -1184,9 +1203,7 @@ escape sequences are preceded by a '*' to aid in locating them.
- When the skiprc toggle is
- .Dv TRUE ,
- .Tn telnet
--does not read the
--.Pa \&.telnetrc
--file. The initial value for this toggle is
-+does not read the telnetrc files. The initial value for this toggle is
- .Dv FALSE.
- .It Ic termdata
- Toggles the display of all terminal data (in hexadecimal format).
-@@ -1239,7 +1256,9 @@ to the other side via the
- .Dv TELNET ENVIRON
- option.
- .Sh FILES
--.Bl -tag -width ~/.telnetrc -compact
-+.Bl -tag -width /etc/telnetrc -compact
-+.It Pa /etc/telnetrc
-+global telnet startup values
- .It Pa ~/.telnetrc
- user customized telnet startup values
- .El
-diff --git a/telnet/telnet.cc b/telnet/telnet.cc
-index 4fc3b1f..7eca811 100644
---- a/telnet/telnet.cc
-+++ b/telnet/telnet.cc
-@@ -88,7 +88,8 @@ char do_dont_resp[256];
- char will_wont_resp[256];
-
- int
--eight = 0,
-+ eight = 3,
-+ binary = 0,
- autologin = 0, /* Autologin anyone? */
- skiprc = 0,
- connected,
-@@ -639,14 +640,14 @@ static const char *gettermname(void) {
- if (resettermname) {
- resettermname = 0;
- tname = env_getvalue("TERM", 0);
-- if (!tname || my_setupterm(tname, 1, &err)) {
-+ if (!tname /* || my_setupterm(tname, 1, &err) */) {
- termbuf[0] = 0;
- tname = "UNKNOWN";
- }
- mklist(termbuf, tname, termtypes);
- next = 0;
- }
-- if (next==termtypes.num()) next = 0;
-+ if (next==termtypes.num()-1) next = 0;
- return termtypes[next++];
- }
- /*
-@@ -681,7 +682,7 @@ static void suboption(void) {
- }
- #endif /* TN3270 */
- name = gettermname();
-- netoring.printf("%c%c%c%c%s%c%c", IAC, SB, TELOPT_TTYPE,
-+ netoring.xprintf("%c%c%c%c%s%c%c", IAC, SB, TELOPT_TTYPE,
- TELQUAL_IS, name, IAC, SE);
- }
- break;
-@@ -693,7 +694,7 @@ static void suboption(void) {
- if (SB_GET() == TELQUAL_SEND) {
- long oospeed, iispeed;
- TerminalSpeeds(&iispeed, &oospeed);
-- netoring.printf("%c%c%c%c%ld,%ld%c%c", IAC, SB, TELOPT_TSPEED,
-+ netoring.xprintf("%c%c%c%c%ld,%ld%c%c", IAC, SB, TELOPT_TSPEED,
- TELQUAL_IS, oospeed, iispeed, IAC, SE);
- }
- break;
-@@ -780,7 +781,7 @@ static void suboption(void) {
- send_wont(TELOPT_XDISPLOC, 1);
- break;
- }
-- netoring.printf("%c%c%c%c%s%c%c", IAC, SB, TELOPT_XDISPLOC,
-+ netoring.xprintf("%c%c%c%c%s%c%c", IAC, SB, TELOPT_XDISPLOC,
- TELQUAL_IS, dp, IAC, SE);
- }
- break;
-@@ -798,7 +799,7 @@ void lm_will(unsigned char *cmd, int len) {
- return;
- }
-
-- netoring.printf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE,
-+ netoring.xprintf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE,
- DONT, cmd[0], IAC, SE);
- }
-
-@@ -815,7 +816,7 @@ void lm_do(unsigned char *cmd, int len) {
- /*@*/ printf("lm_do: no command!!!\n"); /* Should not happen... */
- return;
- }
-- netoring.printf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE,
-+ netoring.xprintf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE,
- WONT, cmd[0], IAC, SE);
- }
-
-@@ -838,7 +839,7 @@ void lm_mode(unsigned char *cmd, int len, int init) {
- k |= MODE_ACK;
- }
-
-- netoring.printf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, LM_MODE,
-+ netoring.xprintf("%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE, LM_MODE,
- k, IAC, SE);
-
- setconnmode(0); /* set changed mode */
-@@ -933,11 +934,11 @@ void slc_mode_import(int def) {
-
- void slc_import(int def) {
- if (def) {
-- netoring.printf("%c%c%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE,
-+ netoring.xprintf("%c%c%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE,
- LM_SLC, 0, SLC_DEFAULT, 0, IAC, SE);
- }
- else {
-- netoring.printf("%c%c%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE,
-+ netoring.xprintf("%c%c%c%c%c%c%c%c%c", IAC, SB, TELOPT_LINEMODE,
- LM_SLC, 0, SLC_VARIABLE, 0, IAC, SE);
- }
- }
-@@ -1050,6 +1051,7 @@ void slc_check(void) {
-
-
- unsigned char slc_reply[128];
-+unsigned char const * const slc_reply_eom = &slc_reply[sizeof(slc_reply)];
- unsigned char *slc_replyp;
-
- void slc_start_reply(void) {
-@@ -1061,6 +1063,14 @@ void slc_start_reply(void) {
- }
-
- void slc_add_reply(int func, int flags, int value) {
-+ /* A sequence of up to 6 bytes my be written for this member of the SLC
-+ * suboption list by this function. The end of negotiation command,
-+ * which is written by slc_end_reply(), will require 2 additional
-+ * bytes. Do not proceed unless there is sufficient space for these
-+ * items.
-+ */
-+ if (&slc_replyp[6+2] > slc_reply_eom)
-+ return;
- if ((*slc_replyp++ = func) == IAC)
- *slc_replyp++ = IAC;
- if ((*slc_replyp++ = flags) == IAC)
-@@ -1142,6 +1152,7 @@ void env_opt(unsigned char *buf, int len) {
- }
- }
-
-+/* OPT_REPLY_SIZE must be a multiple of 2. */
- #define OPT_REPLY_SIZE 256
- unsigned char *opt_reply;
- unsigned char *opt_replyp;
-@@ -1173,6 +1184,7 @@ void env_opt_start_info(void) {
-
- void env_opt_add(const char *ep) {
- const char *vp;
-+ const unsigned char *tp;
- unsigned char c;
-
- if (opt_reply == NULL) /*XXX*/
-@@ -1185,11 +1197,12 @@ void env_opt_add(const char *ep) {
- return;
- }
- vp = env_getvalue(ep, 1);
-- if (opt_replyp + (vp ? strlen(vp) : 0) + strlen(ep) + 6 > opt_replyend)
-+ tp = opt_replyp + (vp ? strlen(vp) * 2 : 0) + strlen(ep) * 2 + 6;
-+ if (tp > opt_replyend)
- {
- register int len;
-- opt_replyend += OPT_REPLY_SIZE;
-- len = opt_replyend - opt_reply;
-+ len = ((tp - opt_reply) + OPT_REPLY_SIZE - 1) & ~(OPT_REPLY_SIZE - 1);
-+ opt_replyend = opt_reply + len;
- opt_reply = (unsigned char *)realloc(opt_reply, len);
- if (opt_reply == NULL) {
- /*@*/ printf("env_opt_add: realloc() failed!!!\n");
-@@ -1740,8 +1753,8 @@ void telnet(const char * /*user*/) {
- send_do(TELOPT_STATUS, 1);
- if (env_getvalue("DISPLAY", 0))
- send_will(TELOPT_XDISPLOC, 1);
-- if (eight)
-- tel_enter_binary(eight);
-+ if (binary)
-+ tel_enter_binary(binary);
- }
- #endif /* !defined(TN3270) */
-
-diff --git a/telnet/terminal.cc b/telnet/terminal.cc
-index 9eb47ae..764f18f 100644
---- a/telnet/terminal.cc
-+++ b/telnet/terminal.cc
-@@ -45,6 +45,8 @@ char terminal_rcsid[] =
- #include <signal.h>
- #include <errno.h>
- #include <stdio.h>
-+#include <string.h>
-+#include <stdlib.h>
-
- #include "ring.h"
- #include "defines.h"
-@@ -155,9 +157,11 @@ int getconnmode(void) {
- if (localflow)
- mode |= MODE_FLOW;
-
-- if (my_want_state_is_will(TELOPT_BINARY))
-+ if ((eight & 1) || my_want_state_is_will(TELOPT_BINARY))
- mode |= MODE_INBIN;
-
-+ if (eight & 2)
-+ mode |= MODE_OUT8;
- if (his_want_state_is_will(TELOPT_BINARY))
- mode |= MODE_OUTBIN;
-
-@@ -449,10 +453,13 @@ void TerminalNewMode(int f)
- // breaks SunOS.
- tmp_tc.c_iflag |= ISTRIP;
- }
-- if (f & MODE_OUTBIN) {
-+ if (f & (MODE_OUTBIN|MODE_OUT8)) {
- tmp_tc.c_cflag &= ~(CSIZE|PARENB);
- tmp_tc.c_cflag |= CS8;
-- tmp_tc.c_oflag &= ~OPOST;
-+ if (f & MODE_OUTBIN)
-+ tmp_tc.c_oflag &= ~OPOST;
-+ else
-+ tmp_tc.c_oflag |= OPOST;
- } else {
- tmp_tc.c_cflag &= ~(CSIZE|PARENB);
- tmp_tc.c_cflag |= old_tc.c_cflag & (CSIZE|PARENB);
-@@ -468,7 +475,7 @@ void TerminalNewMode(int f)
-
- #ifdef SIGINFO
- signal(SIGINFO, ayt);
--#endif SIGINFO
-+#endif /* SIGINFO */
-
- #if defined(NOKERNINFO)
- tmp_tc.c_lflag |= NOKERNINFO;
-@@ -504,7 +511,7 @@ void TerminalNewMode(int f)
-
- #ifdef SIGINFO
- signal(SIGINFO, ayt_status);
--#endif SIGINFO
-+#endif /* SIGINFO */
-
- #ifdef SIGTSTP
- signal(SIGTSTP, SIG_DFL);
-diff --git a/telnet/utilities.cc b/telnet/utilities.cc
-index 0448f0a..66839ab 100644
---- a/telnet/utilities.cc
-+++ b/telnet/utilities.cc
-@@ -47,6 +47,8 @@ char util_rcsid[] =
- #include <sys/socket.h>
- #include <unistd.h>
- #include <ctype.h>
-+#include <string.h>
-+#include <stdlib.h>
-
- #include "ring.h"
- #include "defines.h"
---
-1.8.4.2
-
diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/Warning-fix-in-the-step-of-install.patch b/meta-networking/recipes-netkit/netkit-telnet/files/Warning-fix-in-the-step-of-install.patch
deleted file mode 100644
index b9a98f1d6f..0000000000
--- a/meta-networking/recipes-netkit/netkit-telnet/files/Warning-fix-in-the-step-of-install.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 31362e4c0d02b4a2b952ad0dd32acfb573c442f3 Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Fri, 28 Nov 2014 07:17:40 +0900
-Subject: [PATCH 2/2] WARNING Fix and modify "CFLAGS"
-
-WARNING: QA Issue: File '/usr/sbin/in.telnetd' from netkit-telnet was
-already stripped, this will prevent future debugging! [already-stripped]
-
-Upstream-Status: pending
-
-Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
----
- telnetd/Makefile | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/telnetd/Makefile b/telnetd/Makefile
-index 72650b4..a4cf9fa 100644
---- a/telnetd/Makefile
-+++ b/telnetd/Makefile
-@@ -9,7 +9,8 @@ include ../MRULES
- # take out -DPARANOID_TTYS.
-
- CFLAGS += '-DISSUE_FILE="/etc/issue.net"' -DPARANOID_TTYS \
-- -DNO_REVOKE -DKLUDGELINEMODE -DDIAGNOSTICS
-+ -DNO_REVOKE -DKLUDGELINEMODE -DDIAGNOSTICS \
-+ -DLOGIN_WRAPPER=\"/${libdir}/telnetlogin\"
- # LIBS += $(LIBTERMCAP)
-
- OBJS = telnetd.o state.o termstat.o slc.o sys_term.o utility.o \
-@@ -27,7 +28,7 @@ $(OBJS): defs.h ext.h pathnames.h telnetd.h logwtmp.h logout.h setproctitle.h
- telnetd.o: ../version.h
-
- install: telnetd
-- install -s -m$(DAEMONMODE) telnetd $(INSTALLROOT)$(SBINDIR)/in.telnetd
-+ install -m$(DAEMONMODE) telnetd $(INSTALLROOT)$(SBINDIR)/in.telnetd
- install -m$(MANMODE) issue.net.5 $(INSTALLROOT)$(MANDIR)/man5/
- install -m$(MANMODE) telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/in.telnetd.8
- ln -sf in.telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/telnetd.8
---
-1.8.4.2
-
diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/cross-compile.patch b/meta-networking/recipes-netkit/netkit-telnet/files/cross-compile.patch
deleted file mode 100644
index b3fe36b7bb..0000000000
--- a/meta-networking/recipes-netkit/netkit-telnet/files/cross-compile.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-To support the cross-compile
-
-Upstream-Status: Pending
-
-make the configure to support the cross-compile, by only to compile the
-target, and not to run it
-
-Roy Li <rongqing.li@windriver.com>
-Index: netkit-telnet-0.17/configure
-===================================================================
---- netkit-telnet-0.17.orig/configure 2008-11-23 22:01:26.000000000 +0100
-+++ netkit-telnet-0.17/configure 2008-11-23 22:05:00.000000000 +0100
-@@ -94,7 +94,7 @@
- echo -n 'Checking if C compiler works... '
- if (
- $CC __conftest.c -o __conftest || exit 1
-- ./__conftest || exit 1
-+ # Idiots belong shot! ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo 'yes'
- else
-@@ -141,7 +141,7 @@
- echo -n 'Checking if C++ compiler works... '
- if (
- $CXX __conftest.cc -o __conftest || exit 1
-- ./__conftest || exit 1
-+ # Iditios belong shot! ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo 'yes'
- else
-@@ -284,7 +284,7 @@
- else
- if (
- $CXX $CXXFLAGS -D__USE_BSD_SIGNAL __conftest.cc -o __conftest || exit 1
-- ./__conftest || exit 1
-+ # running still does not work./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo '-D__USE_BSD_SIGNAL'
- CFLAGS="$CFLAGS -D__USE_BSD_SIGNAL"
-@@ -501,7 +501,7 @@
- EOF
- if (
- $CXX $CXXFLAGS __conftest.cc $LIBBSD -o __conftest || exit 1
-- ./__conftest || exit 1
-+ # argh! morons!./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo 'ok'
- else
diff --git a/meta-networking/recipes-netkit/netkit-telnet/files/telnet-xinetd b/meta-networking/recipes-netkit/netkit-telnet/files/telnet-xinetd
deleted file mode 100644
index 12204c71b2..0000000000
--- a/meta-networking/recipes-netkit/netkit-telnet/files/telnet-xinetd
+++ /dev/null
@@ -1,14 +0,0 @@
-# default: on
-# description: The telnet server serves telnet sessions; it uses \
-# unencrypted username/password pairs for authentication.
-service telnet
-{
- flags = REUSE
- socket_type = stream
- wait = no
- user = root
- server = /usr/sbin/in.telnetd
- log_on_failure += USERID
- disable = yes
-}
-
diff --git a/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb b/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
deleted file mode 100644
index 6d60c6fbbe..0000000000
--- a/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
+++ /dev/null
@@ -1,72 +0,0 @@
-DESCRIPTION = "netkit-telnet includes the telnet daemon and client."
-HOMEPAGE = "http://www.hcs.harvard.edu/~dholland/computers/netkit.html"
-SECTION = "net"
-DEPENDS = "ncurses"
-LICENSE = "BSD-4-Clause"
-LIC_FILES_CHKSUM = "file://telnet/telnet.cc;beginline=2;endline=3;md5=780868e7b566313e70cb701560ca95ef"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-telnet/netkit-telnet_${PV}.orig.tar.gz \
- file://To-aviod-buffer-overflow-in-telnet.patch \
- file://Warning-fix-in-the-step-of-install.patch \
- file://telnet-xinetd \
- file://cross-compile.patch \
- file://0001-telnet-telnetd-Fix-print-format-strings.patch \
- file://0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch \
- file://CVE-2020-10188.patch \
- file://0001-telnetd-utility.c-Fix-buffer-overflow-in-netoprintf.patch \
- file://0001-utility-Include-time.h-form-time-and-strftime-protot.patch \
- "
-
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netkit-telnet/"
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.orig\.tar"
-
-EXTRA_OEMAKE = "INSTALLROOT=${D} SBINDIR=${sbindir} DAEMONMODE=755 \
- MANMODE=644 MANDIR=${mandir}"
-
-do_configure () {
- ./configure --prefix=${prefix}
- sed -e 's#^CFLAGS=\(.*\)$#CFLAGS= -D_GNU_SOURCE \1#' \
- -e 's#^CXXFLAGS=\(.*\)$#CXXFLAGS= -D_GNU_SOURCE \1#' \
- -e 's#^LDFLAGS=.*$#LDFLAGS= ${LDFLAGS}#' \
- -i MCONFIG
-}
-
-do_compile () {
- oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' SUB=telnet
- oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' LIBS=-lutil SUB=telnetd
- oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' SUB=telnetlogin
-}
-
-do_install () {
- install -d ${D}${bindir}
- install -m 0755 telnet/telnet ${D}${bindir}/telnet.${PN}
- install -d ${D}${sbindir}
- install -d ${D}${mandir}/man1
- install -d ${D}${mandir}/man5
- install -d ${D}${mandir}/man8
- oe_runmake SUB=telnetd install
- rm -rf ${D}${mandir}/man1
- install -D -m 4750 ${B}/telnetlogin/telnetlogin ${D}/${libdir}/telnetlogin
- # fix up hardcoded paths
- sed -i -e 's,/usr/sbin/,${sbindir}/,' ${WORKDIR}/telnet-xinetd
- install -d ${D}/etc/xinetd.d/
- install -p -m644 ${WORKDIR}/telnet-xinetd ${D}/etc/xinetd.d/telnet
-}
-
-inherit update-alternatives
-
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE:${PN} = "telnet"
-ALTERNATIVE_LINK_NAME[telnet] = "${bindir}/telnet"
-ALTERNATIVE_TARGET[telnet] = "${bindir}/telnet.${PN}"
-
-ALTERNATIVE:${PN}-doc = "telnetd.8"
-ALTERNATIVE_LINK_NAME[telnetd.8] = "${mandir}/man8/telnetd.8"
-
-SRC_URI[md5sum] = "d6beabaaf53fe6e382c42ce3faa05a36"
-SRC_URI[sha256sum] = "9c80d5c7838361a328fb6b60016d503def9ce53ad3c589f3b08ff71a2bb88e00"
-FILES:${PN} += "${sbindir}/in.* ${libdir}/* ${sysconfdir}/xinetd.d/*"
-
-# http://errors.yoctoproject.org/Errors/Details/186954/
-COMPATIBLE_HOST:libc-musl = 'null'
-RCONFLICTS:${PN} = "inetutils-telnetd"
diff --git a/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/0001-tftp-Include-missing-fcntl.h.patch b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/0001-tftp-Include-missing-fcntl.h.patch
deleted file mode 100644
index 78936907f6..0000000000
--- a/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/0001-tftp-Include-missing-fcntl.h.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From fa57e161fc953264a75d50a787cb83983e60acc7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 30 Aug 2017 18:30:02 -0700
-Subject: [PATCH] tftp: Include missing fcntl.h
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- tftp/main.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tftp/main.c b/tftp/main.c
-index 8c54843..5c9b698 100644
---- a/tftp/main.c
-+++ b/tftp/main.c
-@@ -63,6 +63,7 @@ char main_rcsid[] =
- #include <ctype.h>
- #include <netdb.h>
- #include <unistd.h>
-+#include <fcntl.h>
-
- #include "tftpsubs.h" /* for mysignal() */
-
---
-2.14.1
-
diff --git a/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/tftp.conf b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/tftp.conf
deleted file mode 100644
index 7bc6ca96b6..0000000000
--- a/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp/tftp.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-service tftp
-{
- disable = no
- socket_type = dgram
- port = 69
- protocol = udp
- wait = yes
- user = nobody
- server = /usr/sbin/in.tftpd
- server_args = /tftpboot
-}
diff --git a/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb
deleted file mode 100644
index 8de3e4a34c..0000000000
--- a/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb
+++ /dev/null
@@ -1,59 +0,0 @@
-SUMMARY = "tftp - Trivial file transfer protocol client"
-SECTION = "net"
-LICENSE = "BSD-4-Clause"
-DEPENDS = "tcp-wrappers"
-
-LIC_FILES_CHKSUM = "file://tftp/tftp.c;beginline=2;endline=3;md5=84d2cfe1e60863a7d82648734ba4d30c"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.orig.tar.gz;name=archive \
- ${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}-18.diff.gz;name=patch18 \
- file://tftp.conf \
- file://0001-tftp-Include-missing-fcntl.h.patch \
- "
-
-SRC_URI[archive.md5sum] = "b7262c798e2ff50e29c2ff50dfd8d6a8"
-SRC_URI[archive.sha256sum] = "3a43c0010d4e61f412563fd83769d4667d8b8e82903526d21cb9205fe55ad14d"
-SRC_URI[patch18.md5sum] = "cb29e7a33dd85105ba6e6ec4f971e42c"
-SRC_URI[patch18.sha256sum] = "092437d27b4fa88c044ef6290372fee5ce06d223607f0e22a6e527065c8930e7"
-
-inherit autotools-brokensep update-alternatives
-
-do_configure () {
- ./configure --prefix=${prefix}
- echo "CFLAGS=${CFLAGS}" > MCONFIG
-}
-
-do_compile () {
- oe_runmake 'CC=${CC}' 'LD=${LD}' 'LDFLAGS=${LDFLAGS}' 'CFLAGS=${CFLAGS}'
-}
-
-do_install () {
- install -d ${D}${bindir}
- install -d ${D}${sbindir}
- install -d ${D}${mandir}/man1
- install -d ${D}${mandir}/man8
- install -d ${D}${sysconfdir}/xinetd.d
-
- sed -i 's/install -s/install/' tftp/Makefile
- sed -i 's/install -s/install/' tftpd/Makefile
-
- oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \
- 'DAEMONMODE=0755' 'MANMODE=0644' \
- 'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \
- 'MANDIR=${mandir}' install
-
- install ${WORKDIR}/tftp.conf ${D}/${sysconfdir}/xinetd.d/tftp
-}
-
-PACKAGES = "${PN}-client ${PN}-server ${PN}-doc ${BPN}-dbg"
-FILES:${PN}-client = "${bindir}/*"
-FILES:${PN}-server = "${sbindir}/* ${sysconfdir}/xinetd.d/*"
-FILES:${PN}-doc = "${mandir}"
-FILES:${PN}-dbg = "${prefix}/src/debug \
- ${bindir}/.debug ${sbindir}/.debug"
-
-RDEPENDS:${PN}-server = "tcp-wrappers xinetd"
-
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE:${PN}-client = "tftp"
-ALTERNATIVE_LINK_NAME[tftp] = "${bindir}/tftp"
diff --git a/meta-networking/recipes-protocols/babeld/babeld_1.12.1.bb b/meta-networking/recipes-protocols/babeld/babeld_1.12.1.bb
deleted file mode 100644
index 71bd93785c..0000000000
--- a/meta-networking/recipes-protocols/babeld/babeld_1.12.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Babel is a loop-avoiding distance-vector routing protocol"
-DESCRIPTION = "\
-Babel is a loop-avoiding distance-vector routing protocol for IPv6 and \
-IPv4 with fast convergence properties. It is based on the ideas in DSDV, AODV \
-and Cisco's EIGRP, but is designed to work well not only in wired networks \
-but also in wireless mesh networks, and has been extended with support \
-for overlay networks. Babel is in the process of becoming an IETF Standard. \
-"
-HOMEPAGE = "https://www.irif.fr/~jch/software/babel/"
-SECTION = "net"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=411a48ac3c2e9e0911b8dd9aed26f754"
-
-SRC_URI = "gitsm://github.com/jech/babeld.git;protocol=https;branch=master"
-SRCREV = "916d3d9aa65683ddf8b96f7f0b466b24cb9d7087"
-
-UPSTREAM_CHECK_GITTAGREGEX = "babeld-(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-do_compile () {
- oe_runmake babeld
-}
-
-do_install () {
- oe_runmake install.minimal TARGET=${D} PREFIX=${root_prefix}
-}
-
diff --git a/meta-networking/recipes-protocols/babeld/babeld_1.13.1.bb b/meta-networking/recipes-protocols/babeld/babeld_1.13.1.bb
new file mode 100644
index 0000000000..a799ad197e
--- /dev/null
+++ b/meta-networking/recipes-protocols/babeld/babeld_1.13.1.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Babel is a loop-avoiding distance-vector routing protocol"
+DESCRIPTION = "\
+Babel is a loop-avoiding distance-vector routing protocol for IPv6 and \
+IPv4 with fast convergence properties. It is based on the ideas in DSDV, AODV \
+and Cisco's EIGRP, but is designed to work well not only in wired networks \
+but also in wireless mesh networks, and has been extended with support \
+for overlay networks. Babel is in the process of becoming an IETF Standard. \
+"
+HOMEPAGE = "https://www.irif.fr/~jch/software/babel/"
+SECTION = "net"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=411a48ac3c2e9e0911b8dd9aed26f754"
+
+SRC_URI = "gitsm://github.com/jech/babeld.git;protocol=https;branch=master"
+SRCREV = "3d61ea1e843e2c5f9706c74d1adad4e1d24d44b9"
+
+UPSTREAM_CHECK_GITTAGREGEX = "babeld-(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE += "CFLAGS='${CFLAGS}'"
+
+do_compile () {
+ oe_runmake babeld
+}
+
+do_install () {
+ oe_runmake install.minimal TARGET=${D} PREFIX=${root_prefix}
+}
+
diff --git a/meta-networking/recipes-protocols/dante/dante_1.4.3.bb b/meta-networking/recipes-protocols/dante/dante_1.4.3.bb
index 746c08be6e..4badff8bbd 100644
--- a/meta-networking/recipes-protocols/dante/dante_1.4.3.bb
+++ b/meta-networking/recipes-protocols/dante/dante_1.4.3.bb
@@ -25,6 +25,7 @@ EXTRA_OECONF += "--without-gssapi --sbindir=${bindir}"
DEPENDS += "flex-native bison-native libpam libtirpc"
inherit autotools-brokensep features_check
+CPPFLAGS += "-P"
CFLAGS += "-I${STAGING_INCDIR}/tirpc"
LIBS += "-ltirpc"
diff --git a/meta-networking/recipes-protocols/freediameter/files/0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch b/meta-networking/recipes-protocols/freediameter/files/0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch
deleted file mode 100644
index d5e242ac21..0000000000
--- a/meta-networking/recipes-protocols/freediameter/files/0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From d527a0b7b63e43263384540b5525714484bb089f Mon Sep 17 00:00:00 2001
-From: Mingli Yu <Mingli.Yu@windriver.com>
-Date: Mon, 3 Sep 2018 14:40:56 +0800
-Subject: [PATCH] libfdcore/sctp.c: update the old sctp api check
-
-The initial sctp api check for freediameter as below:
- ===
- commit d3c5e991cb532ea09684d69fb4d0d58e9bc39a0c
- Author: Sebastien Decugis <sdecugis@freediameter.net>
- Date: Mon Jun 3 12:05:37 2013 +0800
-
- Add some compliancy to RFC6458. Not tested however as Ubuntu does not support this yet
-
- [snip]
- +/* Use old draft-ietf-tsvwg-sctpsocket-17 API ? If not defined, RFC6458 API will be used */
- +/* #define OLD_SCTP_SOCKET_API */
- +
- +/* Automatically fallback to old API if some of the new symbols are not defined */
- +#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_RECVRCVINFO)) || (!defined(SCTP_SNDINFO)))
- +# define OLD_SCTP_SOCKET_API
- +#endif
- ===
-
-SCTP_RECVRCVINFO is defined in <linux/sctp.h>,
-but <linux/sctp.h> is't included in the source code
-previouly. So defined(SCTP_RECVRCVINFO) can be 0
-and it make old sctp socket api definiton in effect
-as below:
- # define OLD_SCTP_SOCKET_API
-
-After lksctp-tools upgrade to 1.0.18, there is below
-commit introduced:
-===
-commit 3c8bd0d26b64611c690f33f5802c734b0642c1d8
-Author: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
-Date: Tue Apr 17 20:17:14 2018 -0300
-
- sctp.h: make use kernel UAPI header
-
- and with that, remove tons of duplicated declarations. These were
- lagging behind the kernel header, which is always the most updated one,
- and as the library is intended to be run only on Linux, there is no
- reason that we cannot re-use what is in there.
-
- That said, this patch drops all duplicated declarations and includes
- linux/sctp.h to bring them into lksctp-tools.
-
- Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
-
- [snip]
- #include <stdint.h>
- #include <linux/types.h>
- #include <sys/socket.h>
-+#include <linux/sctp.h>
- [snip]
-===
-
-And above logic make defined(SCTP_RECVRCVINFO) to
-be 1 and the old sctp socket api macro as below
-won't be defined.
- # define OLD_SCTP_SOCKET_API
-
-And it encouters below build error:
-| /build/freediameter/1.2.1-r0/freeDiameter-1.2.1/libfdcore/sctp.c:1262:9: error: 'SCTP_SEND_FAILED_EVENT' undeclared (first use in this function); did you mean 'SCTP_SEND_FAILED'?
- case SCTP_SEND_FAILED_EVENT:
- ^~~~~~~~~~~~~~~~~~~~~~
- SCTP_SEND_FAILED
-| /build/freediameter/1.2.1-r0/freeDiameter-1.2.1/libfdcore/sctp.c:1262:9: note: each undeclared identifier is reported only once for each function it appears in
-| /build/freediameter/1.2.1-r0/freeDiameter-1.2.1/libfdcore/sctp.c:1274:9: error: 'SCTP_NOTIFICATIONS_STOPPED_EVENT' undeclared (first use in this function); did you mean 'SCTP_AUTHENTICATION_EVENT'?
- case SCTP_NOTIFICATIONS_STOPPED_EVENT:
-
-Update the old sctp socket api check to fix
-the above build error.
-
-Upstream-Status: Pending
-
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
----
- libfdcore/sctp.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libfdcore/sctp.c b/libfdcore/sctp.c
-index c80a497..83440c7 100644
---- a/libfdcore/sctp.c
-+++ b/libfdcore/sctp.c
-@@ -48,7 +48,7 @@
- /* #define OLD_SCTP_SOCKET_API */
-
- /* Automatically fallback to old API if some of the new symbols are not defined */
--#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_RECVRCVINFO)) || (!defined(SCTP_SNDINFO)))
-+#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_NOTIFICATIONS_STOPPED_EVENT)) || (!defined(SCTP_SNDINFO)))
- # define OLD_SCTP_SOCKET_API
- #endif
-
---
-2.7.4
-
diff --git a/meta-networking/recipes-protocols/freediameter/files/run-ptest b/meta-networking/recipes-protocols/freediameter/files/run-ptest
index 3c841644b7..7d0648935c 100644
--- a/meta-networking/recipes-protocols/freediameter/files/run-ptest
+++ b/meta-networking/recipes-protocols/freediameter/files/run-ptest
@@ -7,4 +7,8 @@ if ! lsmod | grep -q sctp && ! modprobe sctp 2>/dev/null; then
fi
cmake -E cmake_echo_color --cyan "Running tests..."
-ctest --force-new-ctest-process
+if ctest --force-new-ctest-process ; then
+ echo "PASS: freediameter"
+else
+ echo "FAIL: freediameter"
+fi
diff --git a/meta-networking/recipes-protocols/freediameter/freediameter_1.4.0.bb b/meta-networking/recipes-protocols/freediameter/freediameter_1.4.0.bb
deleted file mode 100644
index 93a607d3ce..0000000000
--- a/meta-networking/recipes-protocols/freediameter/freediameter_1.4.0.bb
+++ /dev/null
@@ -1,141 +0,0 @@
-SUMMARY = "An open source implementation of the diameter protocol"
-DESCRIPTION = "\
-freeDiameter is an open source Diameter protocol implementation \
-(RFC3588). It provides an extensible platform for deploying a \
-Diameter network for your Authentication, Authorization and \
-Accounting needs."
-
-HOMEPAGE = "http://www.freediameter.net"
-
-DEPENDS = "flex bison cmake-native libgcrypt gnutls libidn lksctp-tools virtual/kernel bison-native"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-fd_pkgname = "freeDiameter"
-
-SRC_URI = "\
- http://www.freediameter.net/hg/${fd_pkgname}/archive/${PV}.tar.gz;downloadfilename=${fd_pkgname}-${PV}.tar.gz \
- file://Replace-murmurhash-algorithm-with-Robert-Jenkin-s-ha.patch \
- file://freediameter.service \
- file://freediameter.init \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://install_test.patch file://run-ptest file://0001-tests-use-EXTENSIONS_DIR.patch', '', d)} \
- file://freeDiameter.conf \
- file://0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch \
- "
-
-SRC_URI[sha256sum] = "7a537401bd110c606594b7c6be71b993f0ccc73ae151ad68040979286ba4e50e"
-
-S = "${WORKDIR}/${fd_pkgname}-${PV}"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=69bdc1d97648a2d35914563fcbbb361a"
-
-PTEST_PATH = "${libdir}/${fd_pkgname}/ptest"
-
-inherit cmake pkgconfig update-rc.d ptest systemd
-
-EXTRA_OECMAKE = " \
- -DDEFAULT_CONF_PATH:PATH=${sysconfdir}/${fd_pkgname} \
- -DBUILD_DBG_MONITOR:BOOL=ON \
- -DBUILD_TEST_APP:BOOL=ON \
- -DBUILD_TESTING:BOOL=ON \
- -DBUILD_APP_RADGW:BOOL=ON \
- -DBUILD_APP_REDIRECT:BOOL=ON \
- -DBUILD_TEST_ACCT:BOOL=ON \
- -DBUILD_TEST_NETEMUL:BOOL=ON \
- -DBUILD_TEST_RT_ANY:BOOL=ON \
- -DINSTALL_LIBRARY_SUFFIX:PATH=${baselib} \
- -DINSTALL_EXTENSIONS_SUFFIX:PATH=${baselib}/${fd_pkgname} \
- -DEXTENSIONS_DIR:PATH=${libdir}/${fd_pkgname} \
- -DINSTALL_TEST_SUFFIX:PATH=${PTEST_PATH}-tests \
- -DCMAKE_SKIP_RPATH:BOOL=ON \
-"
-# INSTALL_LIBRARY_SUFFIX is relative to CMAKE_INSTALL_PREFIX
-# specify it on cmd line will fix the SET bug in CMakeList.txt
-
-# -DBUILD_APP_ACCT:BOOL=ON This needs POSTGRESQL support
-
-# -DBUILD_APP_DIAMEAP:BOOL=ON -DBUILD_APP_SIP:BOOL=ON -DBUILD_TEST_SIP:BOOL=ON
-# These need MySQL support
-
-# -DBUILD_DBG_INTERACTIVE:BOOL=ON This needs SWIG support
-
-# -DALL_EXTENSIONS=ON will enable all
-
-FD_KEY ?="${BPN}.key"
-FD_PEM ?= "${BPN}.pem"
-FD_CA ?= "${BPN}.pem"
-FD_DH_PEM ?= "${BPN}-dh.pem"
-FD_HOSTNAME ?= "${MACHINE}"
-FD_REALM ?= "openembedded.org"
-
-do_install:append() {
- # install the sample configuration files
- install -d -m 0755 ${D}${sysconfdir}/${fd_pkgname}
- for i in ${S}/doc/*.conf.sample; do
- install -m 0644 $i ${D}${sysconfdir}/${fd_pkgname}/
- done
- mv ${D}${sysconfdir}/${fd_pkgname}/freediameter.conf.sample \
- ${D}${sysconfdir}/${fd_pkgname}/freeDiameter.conf.sample
- install -d ${D}${sysconfdir}/freeDiameter
- install ${WORKDIR}/freeDiameter.conf ${D}${sysconfdir}/${fd_pkgname}/freeDiameter.conf
-
- # install daemon init related files
- install -d -m 0755 ${D}${sysconfdir}/default
- install -d -m 0755 ${D}${sysconfdir}/init.d
- install -m 0644 ${S}/contrib/debian/freediameter-daemon.default \
- ${D}${sysconfdir}/default/${BPN}
- install -m 0755 ${WORKDIR}/freediameter.init ${D}${sysconfdir}/init.d/${BPN}
-
- # install for systemd
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/freediameter.service ${D}${systemd_system_unitdir}
- sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_system_unitdir}/*.service
-
- cat >> ${D}${sysconfdir}/freeDiameter/freeDiameter.conf <<EOF
-## OE specific ##
-#Identity="${FD_HOSTNAME}";
-Identity = "${FD_HOSTNAME}.${FD_REALM}";
-Realm = "${FD_REALM}";
-Port = 30868;
-SecPort = 30869;
-TLS_Cred = "/etc/freeDiameter/${FD_PEM}" , "/etc/freeDiameter/${FD_KEY}";
-TLS_CA = "/etc/freeDiameter/${FD_CA}";
-TLS_DH_File = "/etc/freeDiameter/${FD_DH_PEM}";
-EOF
-
- # create self cert
- openssl req -x509 -config ${STAGING_DIR_NATIVE}/etc/ssl/openssl.cnf -newkey rsa:4096 -sha256 -nodes -out ${D}${sysconfdir}/freeDiameter/${FD_PEM} -keyout ${D}${sysconfdir}/freeDiameter/${FD_KEY} -days 3650 -subj '/CN=${FD_HOSTNAME}.${FD_REALM}'
- openssl dhparam -out ${D}${sysconfdir}/freeDiameter/${FD_DH_PEM} 1024
-
- find ${B} \( -name "*.c" -o -name "*.h" \) -exec sed -i -e 's#${WORKDIR}##g' {} \;
-}
-
-do_install_ptest() {
- mv ${D}${PTEST_PATH}-tests/* ${D}${PTEST_PATH}/
- rmdir ${D}${PTEST_PATH}-tests
- install -m 0644 ${B}/tests/CTestTestfile.cmake ${D}${PTEST_PATH}/
- sed -i -e 's#${WORKDIR}##g' ${D}${PTEST_PATH}/CTestTestfile.cmake
- sed -i "/^set_tests_properties/d" ${D}${PTEST_PATH}/CTestTestfile.cmake
-}
-
-FILES:${PN}-dbg += "${libdir}/${fd_pkgname}/.debug/*"
-
-# include the extensions in main package
-FILES:${PN} += "${libdir}/${fd_pkgname}/*"
-
-RDEPENDS:${PN} = "glib-2.0 gnutls libidn"
-RDEPENDS:${PN} += "openssl openssl-conf openssl-engines"
-RRECOMMENDS:${PN} += "kernel-module-tipc kernel-module-sctp"
-RRECOMMENDS:${PN} += "kernel-module-udp-tunnel kernel-module-ipip"
-RDEPENDS:${PN}-ptest = "cmake"
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME:${PN} = "${BPN}"
-INITSCRIPT_PARAMS$_${PN} = "start 30 . stop 70 0 1 2 3 4 5 6 ."
-
-SYSTEMD_SERVICE:${PN} = "freediameter.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-CONFFILES:${PN} = "${sysconfdir}/freediameter.conf"
-
diff --git a/meta-networking/recipes-protocols/freediameter/freediameter_1.5.0.bb b/meta-networking/recipes-protocols/freediameter/freediameter_1.5.0.bb
new file mode 100644
index 0000000000..36854c75bc
--- /dev/null
+++ b/meta-networking/recipes-protocols/freediameter/freediameter_1.5.0.bb
@@ -0,0 +1,141 @@
+SUMMARY = "An open source implementation of the diameter protocol"
+DESCRIPTION = "\
+freeDiameter is an open source Diameter protocol implementation \
+(RFC3588). It provides an extensible platform for deploying a \
+Diameter network for your Authentication, Authorization and \
+Accounting needs."
+
+HOMEPAGE = "http://www.freediameter.net"
+
+DEPENDS = "flex bison cmake-native libgcrypt gnutls libidn lksctp-tools virtual/kernel bison-native"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+fd_pkgname = "freeDiameter"
+
+PV .= "+git"
+SRCREV = "f9f1e464e6c675d222b3be4cab9c13408d544c83"
+SRC_URI = "git://github.com/freeDiameter/freeDiameter;protocol=https;branch=master \
+ file://Replace-murmurhash-algorithm-with-Robert-Jenkin-s-ha.patch \
+ file://run-ptest \
+ file://freediameter.service \
+ file://freediameter.init \
+ file://freeDiameter.conf \
+ file://install_test.patch \
+ file://0001-tests-use-EXTENSIONS_DIR.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=868c059b6147748b1d621e500feeac4f"
+
+PTEST_PATH = "${libdir}/${fd_pkgname}/ptest"
+
+inherit cmake pkgconfig update-rc.d ptest systemd
+
+EXTRA_OECMAKE = " \
+ -DDEFAULT_CONF_PATH:PATH=${sysconfdir}/${fd_pkgname} \
+ -DBUILD_DBG_MONITOR:BOOL=ON \
+ -DBUILD_TEST_APP:BOOL=ON \
+ -DBUILD_TESTING:BOOL=ON \
+ -DBUILD_APP_RADGW:BOOL=ON \
+ -DBUILD_APP_REDIRECT:BOOL=ON \
+ -DBUILD_TEST_ACCT:BOOL=ON \
+ -DBUILD_TEST_NETEMUL:BOOL=ON \
+ -DBUILD_TEST_RT_ANY:BOOL=ON \
+ -DINSTALL_LIBRARY_SUFFIX:PATH=${baselib} \
+ -DINSTALL_EXTENSIONS_SUFFIX:PATH=${baselib}/${fd_pkgname} \
+ -DEXTENSIONS_DIR:PATH=${libdir}/${fd_pkgname} \
+ -DINSTALL_TEST_SUFFIX:PATH=${PTEST_PATH}-tests \
+ -DCMAKE_SKIP_RPATH:BOOL=ON \
+"
+# INSTALL_LIBRARY_SUFFIX is relative to CMAKE_INSTALL_PREFIX
+# specify it on cmd line will fix the SET bug in CMakeList.txt
+
+# -DBUILD_APP_ACCT:BOOL=ON This needs POSTGRESQL support
+
+# -DBUILD_APP_DIAMEAP:BOOL=ON -DBUILD_APP_SIP:BOOL=ON -DBUILD_TEST_SIP:BOOL=ON
+# These need MySQL support
+
+# -DBUILD_DBG_INTERACTIVE:BOOL=ON This needs SWIG support
+
+# -DALL_EXTENSIONS=ON will enable all
+
+FD_KEY ?="${BPN}.key"
+FD_PEM ?= "${BPN}.pem"
+FD_CA ?= "${BPN}.pem"
+FD_DH_PEM ?= "${BPN}-dh.pem"
+FD_HOSTNAME ?= "${MACHINE}"
+FD_REALM ?= "openembedded.org"
+
+do_install:append() {
+ # install the sample configuration files
+ install -d -m 0755 ${D}${sysconfdir}/${fd_pkgname}
+ for i in ${S}/doc/*.conf.sample; do
+ install -m 0644 $i ${D}${sysconfdir}/${fd_pkgname}/
+ done
+ mv ${D}${sysconfdir}/${fd_pkgname}/freediameter.conf.sample \
+ ${D}${sysconfdir}/${fd_pkgname}/freeDiameter.conf.sample
+ install -d ${D}${sysconfdir}/freeDiameter
+ install ${WORKDIR}/freeDiameter.conf ${D}${sysconfdir}/${fd_pkgname}/freeDiameter.conf
+
+ # install daemon init related files
+ install -d -m 0755 ${D}${sysconfdir}/default
+ install -d -m 0755 ${D}${sysconfdir}/init.d
+ install -m 0644 ${S}/contrib/debian/freediameter-daemon.default \
+ ${D}${sysconfdir}/default/${BPN}
+ install -m 0755 ${WORKDIR}/freediameter.init ${D}${sysconfdir}/init.d/${BPN}
+
+ # install for systemd
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/freediameter.service ${D}${systemd_system_unitdir}
+ sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_system_unitdir}/*.service
+
+ cat >> ${D}${sysconfdir}/freeDiameter/freeDiameter.conf <<EOF
+## OE specific ##
+#Identity="${FD_HOSTNAME}";
+Identity = "${FD_HOSTNAME}.${FD_REALM}";
+Realm = "${FD_REALM}";
+Port = 30868;
+SecPort = 30869;
+TLS_Cred = "/etc/freeDiameter/${FD_PEM}" , "/etc/freeDiameter/${FD_KEY}";
+TLS_CA = "/etc/freeDiameter/${FD_CA}";
+TLS_DH_File = "/etc/freeDiameter/${FD_DH_PEM}";
+EOF
+
+ # create self cert
+ openssl req -x509 -config ${STAGING_DIR_NATIVE}/etc/ssl/openssl.cnf -newkey rsa:4096 -sha256 -nodes -out ${D}${sysconfdir}/freeDiameter/${FD_PEM} -keyout ${D}${sysconfdir}/freeDiameter/${FD_KEY} -days 3650 -subj '/CN=${FD_HOSTNAME}.${FD_REALM}'
+ openssl dhparam -out ${D}${sysconfdir}/freeDiameter/${FD_DH_PEM} 1024
+
+ find ${B} \( -name "*.c" -o -name "*.h" \) -exec sed -i -e 's#${WORKDIR}##g' {} \;
+}
+
+do_install_ptest() {
+ mv ${D}${PTEST_PATH}-tests/* ${D}${PTEST_PATH}/
+ rmdir ${D}${PTEST_PATH}-tests
+ install -m 0644 ${B}/tests/CTestTestfile.cmake ${D}${PTEST_PATH}/
+ sed -i -e 's#${WORKDIR}##g' ${D}${PTEST_PATH}/CTestTestfile.cmake
+ sed -i "/^set_tests_properties/d" ${D}${PTEST_PATH}/CTestTestfile.cmake
+}
+
+FILES:${PN}-dbg += "${libdir}/${fd_pkgname}/.debug/*"
+
+# include the extensions in main package
+FILES:${PN} += "${libdir}/${fd_pkgname}/*"
+
+RDEPENDS:${PN} = "glib-2.0 gnutls libidn"
+RDEPENDS:${PN} += "openssl openssl-conf openssl-engines"
+RRECOMMENDS:${PN} += "kernel-module-tipc kernel-module-sctp"
+RRECOMMENDS:${PN} += "kernel-module-udp-tunnel kernel-module-ipip"
+RDEPENDS:${PN}-ptest = "cmake"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "${BPN}"
+INITSCRIPT_PARAMS:${PN} = "start 30 . stop 70 0 1 2 3 4 5 6 ."
+
+SYSTEMD_SERVICE:${PN} = "freediameter.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+CONFFILES:${PN} = "${sysconfdir}/freediameter.conf"
+
diff --git a/meta-networking/recipes-protocols/frr/frr/0001-bgpd-avoid-notify-race-between-io-and-main-pthreads.patch b/meta-networking/recipes-protocols/frr/frr/0001-bgpd-avoid-notify-race-between-io-and-main-pthreads.patch
deleted file mode 100644
index 40284d6f4f..0000000000
--- a/meta-networking/recipes-protocols/frr/frr/0001-bgpd-avoid-notify-race-between-io-and-main-pthreads.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From 71ca5b09bc71e8cbe38177cf41e83fe164e52eee Mon Sep 17 00:00:00 2001
-From: Mark Stapp <mstapp@nvidia.com>
-Date: Thu, 8 Sep 2022 16:14:36 -0400
-Subject: [PATCH] bgpd: avoid notify race between io and main pthreads
-
-The "bgp_notify_" apis in bgp_packet.c generate a notification
-to a peer, usually during error handling. The io pthread wants
-to send notifications in a couple of cases during early
-received-packet validation - but the existing api interacts
-with the peer struct itself, and that's not safe.
-
-Add a new api for use by the io pthread, and adjust the main
-notify api so that it can avoid touching the peer struct.
-
-Signed-off-by: Mark Stapp <mstapp@nvidia.com>
-
-CVE: CVE-2022-37035
-
-Upstream-Status: Backport
-[https://github.com/FRRouting/frr/commit/71ca5b09bc71e8cbe38177cf41e83fe164e52eee]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- bgpd/bgp_io.c | 17 ++++++++---------
- bgpd/bgp_packet.c | 32 ++++++++++++++++++++++++++++----
- bgpd/bgp_packet.h | 2 ++
- 3 files changed, 38 insertions(+), 13 deletions(-)
-
-diff --git a/bgpd/bgp_io.c b/bgpd/bgp_io.c
-index 7af1fae28..f9bb8d518 100644
---- a/bgpd/bgp_io.c
-+++ b/bgpd/bgp_io.c
-@@ -37,7 +37,7 @@
- #include "bgpd/bgp_debug.h" // for bgp_debug_neighbor_events, bgp_type_str
- #include "bgpd/bgp_errors.h" // for expanded error reference information
- #include "bgpd/bgp_fsm.h" // for BGP_EVENT_ADD, bgp_event
--#include "bgpd/bgp_packet.h" // for bgp_notify_send_with_data, bgp_notify...
-+#include "bgpd/bgp_packet.h" // for bgp_notify_io_invalid...
- #include "bgpd/bgp_trace.h" // for frrtraces
- #include "bgpd/bgpd.h" // for peer, BGP_MARKER_SIZE, bgp_master, bm
- /* clang-format on */
-@@ -526,8 +526,8 @@ static bool validate_header(struct peer *peer)
- return false;
-
- if (memcmp(m_correct, m_rx, BGP_MARKER_SIZE) != 0) {
-- bgp_notify_send(peer, BGP_NOTIFY_HEADER_ERR,
-- BGP_NOTIFY_HEADER_NOT_SYNC);
-+ bgp_notify_io_invalid(peer, BGP_NOTIFY_HEADER_ERR,
-+ BGP_NOTIFY_HEADER_NOT_SYNC, NULL, 0);
- return false;
- }
-
-@@ -547,9 +547,8 @@ static bool validate_header(struct peer *peer)
- zlog_debug("%s unknown message type 0x%02x", peer->host,
- type);
-
-- bgp_notify_send_with_data(peer, BGP_NOTIFY_HEADER_ERR,
-- BGP_NOTIFY_HEADER_BAD_MESTYPE, &type,
-- 1);
-+ bgp_notify_io_invalid(peer, BGP_NOTIFY_HEADER_ERR,
-+ BGP_NOTIFY_HEADER_BAD_MESTYPE, &type, 1);
- return false;
- }
-
-@@ -574,9 +573,9 @@ static bool validate_header(struct peer *peer)
-
- uint16_t nsize = htons(size);
-
-- bgp_notify_send_with_data(peer, BGP_NOTIFY_HEADER_ERR,
-- BGP_NOTIFY_HEADER_BAD_MESLEN,
-- (unsigned char *)&nsize, 2);
-+ bgp_notify_io_invalid(peer, BGP_NOTIFY_HEADER_ERR,
-+ BGP_NOTIFY_HEADER_BAD_MESLEN,
-+ (unsigned char *)&nsize, 2);
- return false;
- }
-
-diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c
-index 7daac4494..90695219a 100644
---- a/bgpd/bgp_packet.c
-+++ b/bgpd/bgp_packet.c
-@@ -871,8 +871,9 @@ bool bgp_notify_received_hard_reset(struct peer *peer, uint8_t code,
- * @param data Data portion
- * @param datalen length of data portion
- */
--void bgp_notify_send_with_data(struct peer *peer, uint8_t code,
-- uint8_t sub_code, uint8_t *data, size_t datalen)
-+static void bgp_notify_send_internal(struct peer *peer, uint8_t code,
-+ uint8_t sub_code, uint8_t *data,
-+ size_t datalen, bool use_curr)
- {
- struct stream *s;
- bool hard_reset = bgp_notify_send_hard_reset(peer, code, sub_code);
-@@ -917,8 +918,11 @@ void bgp_notify_send_with_data(struct peer *peer, uint8_t code,
- * If possible, store last packet for debugging purposes. This check is
- * in place because we are sometimes called with a doppelganger peer,
- * who tends to have a plethora of fields nulled out.
-+ *
-+ * Some callers should not attempt this - the io pthread for example
-+ * should not touch internals of the peer struct.
- */
-- if (peer->curr) {
-+ if (use_curr && peer->curr) {
- size_t packetsize = stream_get_endp(peer->curr);
- assert(packetsize <= peer->max_packet_size);
- memcpy(peer->last_reset_cause, peer->curr->data, packetsize);
-@@ -1001,7 +1005,27 @@ void bgp_notify_send_with_data(struct peer *peer, uint8_t code,
- */
- void bgp_notify_send(struct peer *peer, uint8_t code, uint8_t sub_code)
- {
-- bgp_notify_send_with_data(peer, code, sub_code, NULL, 0);
-+ bgp_notify_send_internal(peer, code, sub_code, NULL, 0, true);
-+}
-+
-+/*
-+ * Enqueue notification; called from the main pthread, peer object access is ok.
-+ */
-+void bgp_notify_send_with_data(struct peer *peer, uint8_t code,
-+ uint8_t sub_code, uint8_t *data, size_t datalen)
-+{
-+ bgp_notify_send_internal(peer, code, sub_code, data, datalen, true);
-+}
-+
-+/*
-+ * For use by the io pthread, queueing a notification but avoiding access to
-+ * the peer object.
-+ */
-+void bgp_notify_io_invalid(struct peer *peer, uint8_t code, uint8_t sub_code,
-+ uint8_t *data, size_t datalen)
-+{
-+ /* Avoid touching the peer object */
-+ bgp_notify_send_internal(peer, code, sub_code, data, datalen, false);
- }
-
- /*
-diff --git a/bgpd/bgp_packet.h b/bgpd/bgp_packet.h
-index a0eb579db..9f6d772bc 100644
---- a/bgpd/bgp_packet.h
-+++ b/bgpd/bgp_packet.h
-@@ -62,6 +62,8 @@ extern void bgp_open_send(struct peer *);
- extern void bgp_notify_send(struct peer *, uint8_t, uint8_t);
- extern void bgp_notify_send_with_data(struct peer *, uint8_t, uint8_t,
- uint8_t *, size_t);
-+void bgp_notify_io_invalid(struct peer *peer, uint8_t code, uint8_t sub_code,
-+ uint8_t *data, size_t datalen);
- extern void bgp_route_refresh_send(struct peer *peer, afi_t afi, safi_t safi,
- uint8_t orf_type, uint8_t when_to_refresh,
- int remove, uint8_t subtype);
---
-2.25.1
-
diff --git a/meta-networking/recipes-protocols/frr/frr/0001-configure-Check-for-readline-function-instead-of-mai.patch b/meta-networking/recipes-protocols/frr/frr/0001-configure-Check-for-readline-function-instead-of-mai.patch
deleted file mode 100644
index 20e8472233..0000000000
--- a/meta-networking/recipes-protocols/frr/frr/0001-configure-Check-for-readline-function-instead-of-mai.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 9399d58c13257849179d3c2b3698a2b43bc1b2a0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 1 Sep 2022 10:39:23 -0700
-Subject: [PATCH] configure: Check for readline() function instead of main
-
-main is not a function found in libreadline, its better to check for a
-function thats provided by it.
-
-Upstream-Status: Backport
-[https://github.com/FRRouting/frr/commit/9399d58c13257849179d3c2b3698a2b43bc1b2a0]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index b7e17d356..8c1fab0ea 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1372,7 +1372,7 @@ case "${enable_vtysh}" in
- AC_DEFINE([VTYSH], [1], [VTY shell])
-
- prev_libs="$LIBS"
-- AC_CHECK_LIB([readline], [main], [
-+ AC_CHECK_LIB([readline], [readline], [
- LIBREADLINE="-lreadline"
- ], [
- dnl readline failed - it might be incorrectly linked and missing its
---
-2.37.3
-
diff --git a/meta-networking/recipes-protocols/frr/frr/0001-ospfd-Adding-SUPPORT_OSPF_API-define-in-ospf_spf.c.patch b/meta-networking/recipes-protocols/frr/frr/0001-ospfd-Adding-SUPPORT_OSPF_API-define-in-ospf_spf.c.patch
deleted file mode 100644
index 09988946b6..0000000000
--- a/meta-networking/recipes-protocols/frr/frr/0001-ospfd-Adding-SUPPORT_OSPF_API-define-in-ospf_spf.c.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From ec3bb054c331f9d928ac21a1747e0f921b51dfbc Mon Sep 17 00:00:00 2001
-From: Michal Ruprich <michalruprich@gmail.com>
-Date: Tue, 6 Sep 2022 12:25:01 +0200
-Subject: [PATCH] ospfd: Adding SUPPORT_OSPF_API define in ospf_spf.c
-
-It is not possible to build ospf_spf.c file with --disable-ospfapi because
-ospf_apiserver.c has SUPPORT_OSPF_API around all function definitions and
-that results in an undefined reference to the ospf_apiserver_notify_reachable
-function error while building.
-
-Signed-off-by: Michal Ruprich <mruprich@redhat.com>
-
-Upstream-Status: Backport
-[https://github.com/FRRouting/frr/commit/ec3bb054c331f9d928ac21a1747e0f921b51dfbc]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- ospfd/ospf_spf.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/ospfd/ospf_spf.c b/ospfd/ospf_spf.c
-index 46492ff6b..4edc1de81 100644
---- a/ospfd/ospf_spf.c
-+++ b/ospfd/ospf_spf.c
-@@ -48,7 +48,10 @@
- #include "ospfd/ospf_sr.h"
- #include "ospfd/ospf_ti_lfa.h"
- #include "ospfd/ospf_errors.h"
-+
-+#ifdef SUPPORT_OSPF_API
- #include "ospfd/ospf_apiserver.h"
-+#endif
-
- /* Variables to ensure a SPF scheduled log message is printed only once */
-
-@@ -1895,7 +1898,9 @@ static void ospf_spf_calculate_schedule_worker(struct thread *thread)
- /* Update all routers routing table */
- ospf->oall_rtrs = ospf->all_rtrs;
- ospf->all_rtrs = all_rtrs;
-+#ifdef SUPPORT_OSPF_API
- ospf_apiserver_notify_reachable(ospf->oall_rtrs, ospf->all_rtrs);
-+#endif
-
- /* Free old ABR/ASBR routing table */
- if (ospf->old_rtrs)
---
-2.25.1
-
diff --git a/meta-networking/recipes-protocols/frr/frr/0001-zebra-Mimic-GNU-basename-API-for-non-glibc-library-e.patch b/meta-networking/recipes-protocols/frr/frr/0001-zebra-Mimic-GNU-basename-API-for-non-glibc-library-e.patch
new file mode 100644
index 0000000000..8c83d5c8eb
--- /dev/null
+++ b/meta-networking/recipes-protocols/frr/frr/0001-zebra-Mimic-GNU-basename-API-for-non-glibc-library-e.patch
@@ -0,0 +1,34 @@
+From 49aeccbec4bf620bb594999bbd4a9de669a3984c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Mar 2024 14:34:06 -0700
+Subject: [PATCH] zebra: Mimic GNU basename() API for non-glibc library e.g.
+ musl musl only provides POSIX version of basename and it has also removed
+ providing it via string.h header [1] which now results in compile errors with
+ newer compilers e.g. clang-18
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [https://github.com/FRRouting/frr/pull/15561/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ zebra/zebra_netns_notify.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/zebra/zebra_netns_notify.c b/zebra/zebra_netns_notify.c
+index 1bb1292e34..d55df2f62d 100644
+--- a/zebra/zebra_netns_notify.c
++++ b/zebra/zebra_netns_notify.c
+@@ -41,6 +41,10 @@
+ #define ZEBRA_NS_POLLING_INTERVAL_MSEC 1000
+ #define ZEBRA_NS_POLLING_MAX_RETRIES 200
+
++#if !defined(__GLIBC__)
++#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src)
++#endif
++
+ DEFINE_MTYPE_STATIC(ZEBRA, NETNS_MISC, "ZebraNetNSInfo");
+ static struct event *zebra_netns_notify_current;
+
+--
+2.44.0
+
diff --git a/meta-networking/recipes-protocols/frr/frr/frr.pam b/meta-networking/recipes-protocols/frr/frr/frr.pam
index 83c403c2ba..a9ec35dd69 100644
--- a/meta-networking/recipes-protocols/frr/frr/frr.pam
+++ b/meta-networking/recipes-protocols/frr/frr/frr.pam
@@ -5,6 +5,7 @@
# This allows root to change user infomation without being
# prompted for a password
auth sufficient pam_rootok.so
+account sufficient pam_rootok.so
# The standard Unix authentication modules, used with
# NIS (man nsswitch) as well as normal /etc/passwd and
diff --git a/meta-networking/recipes-protocols/frr/frr_8.3.1.bb b/meta-networking/recipes-protocols/frr/frr_8.3.1.bb
deleted file mode 100644
index c69720e6f0..0000000000
--- a/meta-networking/recipes-protocols/frr/frr_8.3.1.bb
+++ /dev/null
@@ -1,131 +0,0 @@
-SUMMARY = "BGP/OSPF/RIP routing daemon"
-DESCRIPTION = "FRRouting is a free and open source Internet routing protocol suite for Linux \
-and Unix platforms. It implements BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD, Babel, PBR, OpenFabric \
-and VRRP, with alpha support for EIGRP and NHRP."
-HOMEPAGE = "https://frrouting.org/"
-SECTION = "net"
-
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING-LGPLv2.1;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI = "git://github.com/FRRouting/frr.git;protocol=https;branch=stable/8.3 \
- file://0001-configure-Check-for-readline-function-instead-of-mai.patch \
- file://0001-ospfd-Adding-SUPPORT_OSPF_API-define-in-ospf_spf.c.patch \
- file://0001-bgpd-avoid-notify-race-between-io-and-main-pthreads.patch \
- file://frr.pam \
- "
-
-SRCREV = "a74f7a9ad9623e6f9654fe4a7177e5da0b194828"
-
-S = "${WORKDIR}/git"
-
-# Due to libyang not supported on these arches:
-COMPATIBLE_HOST:riscv32 = "null"
-COMPATIBLE_HOST:riscv64 = "null"
-COMPATIBLE_HOST:armv5 = "null"
-
-# Fail to build on mips64 with error:
-# Error: PC-relative reference to a different section
-COMPATIBLE_HOST:mips64 = "null"
-
-inherit autotools-brokensep python3native pkgconfig useradd systemd
-
-DEPENDS:class-native = "bison-native elfutils-native"
-DEPENDS:class-target = "bison-native json-c readline c-ares libyang frr-native"
-
-RDEPENDS:${PN}:class-target = "iproute2 python3-core bash"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
-PACKAGECONFIG:class-native = ""
-
-PACKAGECONFIG[fpm] = "--enable-fpm,--disable-fpm"
-PACKAGECONFIG[pam] = "--with-libpam,--without-libpam,libpam"
-PACKAGECONFIG[grpc] = "--enable-grpc,--disable-grpc,grpc-native grpc"
-PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
-PACKAGECONFIG[zeromq] = "--enable-zeromq,--disable-zeromq,zeromq"
-PACKAGECONFIG[protobuf] = "--enable-protobuf,--disable-protobuf,protobuf-c-native protobuf-c"
-PACKAGECONFIG[capabilities] = "--enable-capabilities,--disable-capabilities,libcap"
-PACKAGECONFIG[cumulus] = "--enable-cumulus,--disable-cumulus"
-PACKAGECONFIG[datacenter] = "--enable-datacenter,--disable-datacenter"
-PACKAGECONFIG[ospfclient] = "--enable-ospfapi --enable-ospfclient,--disable-ospfapi --disable-ospfclient"
-
-EXTRA_OECONF:class-native = "--enable-clippy-only"
-
-EXTRA_OECONF:class-target = "--sbindir=${libdir}/frr \
- --sysconfdir=${sysconfdir}/frr \
- --localstatedir=${localstatedir}/run/frr \
- --enable-vtysh \
- --enable-multipath=64 \
- --enable-user=frr \
- --enable-group=frr \
- --enable-vty-group=frrvty \
- --enable-configfile-mask=0640 \
- --enable-logfile-mask=0640 \
- --disable-doc \
- --with-clippy=${RECIPE_SYSROOT_NATIVE}/usr/lib/clippy \
- "
-
-CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'"
-
-LDFLAGS:append:mips = " -latomic"
-LDFLAGS:append:mipsel = " -latomic"
-LDFLAGS:append:powerpc = " -latomic"
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE:${PN} = "frr.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-do_compile:prepend () {
- sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' \
- -e 's#${RECIPE_SYSROOT}##g' ${S}/lib/version.h
-}
-
-do_compile:class-native () {
- oe_runmake clippy-only
-}
-
-do_install:class-native () {
- install -d ${D}${libdir}
- install -m 755 ${S}/lib/clippy ${D}${libdir}/clippy
-}
-
-do_install:append:class-target () {
- install -m 0755 -d ${D}${sysconfdir}/frr
- install -m 0640 ${S}/tools/etc/frr/* ${D}${sysconfdir}/frr/
- chown frr:frrvty ${D}${sysconfdir}/frr
- chown frr:frr ${D}${sysconfdir}/frr/*
- chown frr:frrvty ${D}${sysconfdir}/frr/vtysh.conf
- chmod 640 ${D}${sysconfdir}/frr/*
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
- install -d ${D}/${sysconfdir}/pam.d
- install -m 644 ${WORKDIR}/frr.pam ${D}/${sysconfdir}/pam.d/frr
- fi
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${B}/tools/frrinit.sh ${D}${sysconfdir}/init.d/frr
-
- install -d ${D}${sysconfdir}/default/volatiles
- echo "d frr frr 0755 ${localstatedir}/run/frr none" \
- > ${D}${sysconfdir}/default/volatiles/99_frr
- fi
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${B}/tools/frr*.service ${D}${systemd_system_unitdir}
-
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /run/frr 0755 frr frr -" \
- > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
- fi
-}
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM:${PN} = "--system frr ; --system frrvty"
-USERADD_PARAM:${PN} = "--system --home ${localstatedir}/run/frr/ -M -g frr -G frrvty --shell /bin/false frr"
-
-FILES:${PN} += "${datadir}/yang"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-protocols/frr/frr_9.1.bb b/meta-networking/recipes-protocols/frr/frr_9.1.bb
new file mode 100644
index 0000000000..eea6d62f5f
--- /dev/null
+++ b/meta-networking/recipes-protocols/frr/frr_9.1.bb
@@ -0,0 +1,136 @@
+SUMMARY = "BGP/OSPF/RIP routing daemon"
+DESCRIPTION = "FRRouting is a free and open source Internet routing protocol suite for Linux \
+and Unix platforms. It implements BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD, Babel, PBR, OpenFabric \
+and VRRP, with alpha support for EIGRP and NHRP."
+HOMEPAGE = "https://frrouting.org/"
+SECTION = "net"
+
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://doc/licenses/GPL-2.0;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://doc/licenses/LGPL-2.1;md5=4fbd65380cdd255951079008b364516c"
+
+
+SRC_URI = "git://github.com/FRRouting/frr.git;protocol=https;branch=stable/9.1 \
+ file://frr.pam \
+ file://0001-zebra-Mimic-GNU-basename-API-for-non-glibc-library-e.patch \
+ "
+
+SRCREV = "ca2d6f0f1e000951224a18973cc1827f7f5215b5"
+
+UPSTREAM_CHECK_GITTAGREGEX = "frr-(?P<pver>\d+(\.\d+)+)$"
+
+CVE_PRODUCT = "frrouting"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep python3native pkgconfig useradd systemd
+
+DEPENDS:class-native = "bison-native elfutils-native"
+DEPENDS:class-target = "bison-native json-c readline c-ares libyang frr-native protobuf-c-native protobuf-c"
+
+RDEPENDS:${PN}:class-target = "iproute2 python3-core bash"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
+PACKAGECONFIG:class-native = ""
+
+PACKAGECONFIG[fpm] = "--enable-fpm,--disable-fpm"
+PACKAGECONFIG[pam] = "--with-libpam,--without-libpam,libpam"
+PACKAGECONFIG[grpc] = "--enable-grpc,--disable-grpc,grpc-native grpc"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
+PACKAGECONFIG[zeromq] = "--enable-zeromq,--disable-zeromq,zeromq"
+PACKAGECONFIG[protobuf] = "--enable-protobuf,--disable-protobuf,protobuf-c-native protobuf-c"
+PACKAGECONFIG[capabilities] = "--enable-capabilities,--disable-capabilities,libcap"
+PACKAGECONFIG[cumulus] = "--enable-cumulus,--disable-cumulus"
+PACKAGECONFIG[datacenter] = "--enable-datacenter,--disable-datacenter"
+PACKAGECONFIG[ospfclient] = "--enable-ospfapi --enable-ospfclient,--disable-ospfapi --disable-ospfclient"
+
+EXTRA_OECONF:class-native = "--enable-clippy-only"
+
+EXTRA_OECONF:class-target = "--sbindir=${libexecdir}/frr \
+ --sysconfdir=${sysconfdir}/frr \
+ --localstatedir=${localstatedir}/run/frr \
+ --enable-vtysh \
+ --enable-multipath=64 \
+ --enable-user=frr \
+ --enable-group=frr \
+ --enable-vty-group=frrvty \
+ --enable-configfile-mask=0640 \
+ --enable-logfile-mask=0640 \
+ --disable-doc \
+ --with-clippy=${RECIPE_SYSROOT_NATIVE}/usr/lib/clippy \
+ "
+
+CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'"
+
+# https://github.com/FRRouting/frr/issues/14469
+DEBUG_PREFIX_MAP:remove = "-fcanon-prefix-map"
+
+LDFLAGS:append:mips = " -latomic"
+LDFLAGS:append:mipsel = " -latomic"
+LDFLAGS:append:powerpc = " -latomic"
+LDFLAGS:append:riscv32 = " -latomic"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "frr.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+inherit update-alternatives multilib_script multilib_header
+
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE:${PN} = " ietf-interfaces "
+ALTERNATIVE_LINK_NAME[ietf-interfaces] = "${datadir}/yang/ietf-interfaces.yang"
+do_compile:prepend () {
+ sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' \
+ -e 's#${RECIPE_SYSROOT}##g' ${S}/lib/version.h
+}
+
+do_compile:class-native () {
+ oe_runmake clippy-only
+}
+
+do_install:class-native () {
+ install -d ${D}${libdir}
+ install -m 755 ${S}/lib/clippy ${D}${libdir}/clippy
+}
+
+do_install:append:class-target () {
+ install -m 0755 -d ${D}${sysconfdir}/frr
+ install -m 0755 -d ${D}${libexecdir}/frr
+ install -m 0640 ${S}/tools/etc/frr/* ${D}${sysconfdir}/frr/
+ chown frr:frrvty ${D}${sysconfdir}/frr
+ chown frr:frr ${D}${sysconfdir}/frr/*
+ chown frr:frrvty ${D}${sysconfdir}/frr/vtysh.conf
+ chmod 640 ${D}${sysconfdir}/frr/*
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
+ install -d ${D}/${sysconfdir}/pam.d
+ install -m 644 ${WORKDIR}/frr.pam ${D}/${sysconfdir}/pam.d/frr
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${B}/tools/frrinit.sh ${D}${sysconfdir}/init.d/frr
+
+ install -d ${D}${sysconfdir}/default/volatiles
+ echo "d frr frr 0755 ${localstatedir}/run/frr none" \
+ > ${D}${sysconfdir}/default/volatiles/99_frr
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${B}/tools/frr*.service ${D}${systemd_system_unitdir}
+
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /run/frr 0755 frr frr -" \
+ > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
+ fi
+ oe_multilib_header frr/version.h
+}
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "--system frr ; --system frrvty"
+USERADD_PARAM:${PN} = "--system --home ${localstatedir}/run/frr/ -M -g frr -G frrvty --shell /bin/false frr"
+
+FILES:${PN} += "${datadir}/yang"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-protocols/mdns/files/0001-Create-subroutine-for-cleaning-recent-interfaces.patch b/meta-networking/recipes-protocols/mdns/files/0001-Create-subroutine-for-cleaning-recent-interfaces.patch
deleted file mode 100644
index f8efc10448..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0001-Create-subroutine-for-cleaning-recent-interfaces.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 6d90f9fdaf008f5c3b8fd8d91594fa1461437888 Mon Sep 17 00:00:00 2001
-From: Nate Karstens <nate.karstens@garmin.com>
-Date: Wed, 28 Jun 2017 17:30:00 -0500
-Subject: [PATCH] Create subroutine for cleaning recent interfaces
-
-Moves functionality for cleaning the list of recent
-interfaces into its own subroutine.
-
-Upstream-Status: Submitted [dts@apple.com]
-
-Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
----
- mDNSPosix/mDNSPosix.c | 23 ++++++++++++++---------
- 1 file changed, 14 insertions(+), 9 deletions(-)
-
-diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index a63cd19..7aeee7b 100755
---- a/mDNSPosix/mDNSPosix.c
-+++ b/mDNSPosix/mDNSPosix.c
-@@ -1199,6 +1199,19 @@ mDNSlocal int SetupSocket(struct sockaddr *intfAddr, mDNSIPPort port, int interf
- return err;
- }
-
-+// Clean up any interfaces that have been hanging around on the RecentInterfaces list for more than a minute
-+mDNSlocal void CleanRecentInterfaces(void)
-+{
-+ PosixNetworkInterface **ri = &gRecentInterfaces;
-+ const mDNSs32 utc = mDNSPlatformUTC();
-+ while (*ri)
-+ {
-+ PosixNetworkInterface *pi = *ri;
-+ if (utc - pi->LastSeen < 60) ri = (PosixNetworkInterface **)&pi->coreIntf.next;
-+ else { *ri = (PosixNetworkInterface *)pi->coreIntf.next; free(pi); }
-+ }
-+}
-+
- // Creates a PosixNetworkInterface for the interface whose IP address is
- // intfAddr and whose name is intfName and registers it with mDNS core.
- mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct sockaddr *intfMask, const char *intfName, int intfIndex)
-@@ -1388,15 +1401,7 @@ mDNSlocal int SetupInterfaceList(mDNS *const m)
- // Clean up.
- if (intfList != NULL) freeifaddrs(intfList);
-
-- // Clean up any interfaces that have been hanging around on the RecentInterfaces list for more than a minute
-- PosixNetworkInterface **ri = &gRecentInterfaces;
-- const mDNSs32 utc = mDNSPlatformUTC();
-- while (*ri)
-- {
-- PosixNetworkInterface *pi = *ri;
-- if (utc - pi->LastSeen < 60) ri = (PosixNetworkInterface **)&pi->coreIntf.next;
-- else { *ri = (PosixNetworkInterface *)pi->coreIntf.next; free(pi); }
-- }
-+ CleanRecentInterfaces();
-
- return err;
- }
---
-2.20.1
-
diff --git a/meta-networking/recipes-protocols/mdns/files/0001-dns-sd-Include-missing-headers.patch b/meta-networking/recipes-protocols/mdns/files/0001-dns-sd-Include-missing-headers.patch
deleted file mode 100644
index c743b3eddb..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0001-dns-sd-Include-missing-headers.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ea442b57f7a9bcd41d5b5bd1cafde4dbe5685d41 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 4 Nov 2021 07:31:32 -0700
-Subject: [PATCH] dns-sd: Include missing headers
-
-Fixes build on Musl
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Clients/dns-sd.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/Clients/dns-sd.c
-+++ b/Clients/dns-sd.c
-@@ -58,11 +58,13 @@
- //#define TEST_NEW_CLIENTSTUB 1
-
- #include <ctype.h>
-+#include <stdarg.h> // For va_args
- #include <stdio.h> // For stdout, stderr
- #include <stdlib.h> // For exit()
- #include <string.h> // For strlen(), strcpy()
- #include <errno.h> // For errno, EINTR
- #include <time.h>
-+#include <sys/param.h> // For MIN
- #include <sys/types.h> // For u_char
- #ifdef APPLE_OSX_mDNSResponder
- #include <inttypes.h> // For PRId64
---- a/mDNSPosix/nss_mdns.c
-+++ b/mDNSPosix/nss_mdns.c
-@@ -89,6 +89,9 @@
-
- #include <dns_sd.h>
-
-+#if !defined(NETDB_INTERNAL)
-+# define NETDB_INTERNAL (-1)
-+#endif
-
- //----------
- // Public functions
diff --git a/meta-networking/recipes-protocols/mdns/files/0001-mdns-include-stddef.h-for-NULL.patch b/meta-networking/recipes-protocols/mdns/files/0001-mdns-include-stddef.h-for-NULL.patch
deleted file mode 100644
index c57ce8fa53..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0001-mdns-include-stddef.h-for-NULL.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From d744609c56f9872e5aa71707f1f71feec9867f51 Mon Sep 17 00:00:00 2001
-From: Mikko Rapeli <mikko.rapeli@bmw.de>
-Date: Tue, 14 Jul 2020 16:36:29 +0000
-Subject: [PATCH 1/2] mdns: include <stddef.h> for NULL
-
-Fixes build error with version 1096.40.7:
-
-../mDNSCore/mDNS.c:11385:26: error: 'NULL' undeclared (first use in this function)
-11385 | const char *reason = NULL;
- | ^~~~
-../mDNSCore/mDNS.c:56:1: note: 'NULL' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
- 55 | #include "dns_sd_internal.h"
- +++ |+#include <stddef.h>
- 56 |
-../mDNSCore/mDNS.c:11385:26: note: each undeclared identifier is reported only once for each function it appears in
-11385 | const char *reason = NULL;
- | ^~~~
-
-Upstream-Status: Pending
-
-Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
----
- mDNSCore/mDNS.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/mDNSCore/mDNS.c b/mDNSCore/mDNS.c
-index 2fbea04..d4b9af5 100755
---- a/mDNSCore/mDNS.c
-+++ b/mDNSCore/mDNS.c
-@@ -23,6 +23,7 @@
- * routines, or types (which may or may not be present on any given platform).
- */
-
-+#include <stddef.h> /* for NULL */
- #include "DNSCommon.h" // Defines general DNS utility routines
- #include "uDNS.h" // Defines entry points into unicast-specific routines
-
---
-2.20.1
-
diff --git a/meta-networking/recipes-protocols/mdns/files/0002-Create-subroutine-for-tearing-down-an-interface.patch b/meta-networking/recipes-protocols/mdns/files/0002-Create-subroutine-for-tearing-down-an-interface.patch
deleted file mode 100644
index 21ba318499..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0002-Create-subroutine-for-tearing-down-an-interface.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From a2148df99ddcd122247f95c4cbcce5c4118581a1 Mon Sep 17 00:00:00 2001
-From: Nate Karstens <nate.karstens@garmin.com>
-Date: Wed, 28 Jun 2017 17:30:00 -0500
-Subject: [PATCH 02/11] Create subroutine for tearing down an interface
-
-Creates a subroutine for tearing down an interface.
-
-Upstream-Status: Submitted [dts@apple.com]
-
-Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
----
- mDNSPosix/mDNSPosix.c | 22 ++++++++++++++++------
- 1 file changed, 16 insertions(+), 6 deletions(-)
-
-diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index ffc9696..5e5b2cd 100644
---- a/mDNSPosix/mDNSPosix.c
-+++ b/mDNSPosix/mDNSPosix.c
-@@ -591,6 +591,19 @@ mDNSlocal void FreePosixNetworkInterface(PosixNetworkInterface *intf)
- gRecentInterfaces = intf;
- }
-
-+mDNSlocal void TearDownInterface(mDNS *const m, PosixNetworkInterface *intf)
-+{
-+ mDNS_DeregisterInterface(m, &intf->coreIntf, NormalActivation);
-+ if (gMDNSPlatformPosixVerboseLevel > 0) fprintf(stderr, "Deregistered interface %s\n", intf->intfName);
-+ FreePosixNetworkInterface(intf);
-+
-+ num_registered_interfaces--;
-+ if (num_registered_interfaces == 0) {
-+ num_pkts_accepted = 0;
-+ num_pkts_rejected = 0;
-+ }
-+}
-+
- // Grab the first interface, deregister it, free it, and repeat until done.
- mDNSlocal void ClearInterfaceList(mDNS *const m)
- {
-@@ -599,13 +612,10 @@ mDNSlocal void ClearInterfaceList(mDNS *const m)
- while (m->HostInterfaces)
- {
- PosixNetworkInterface *intf = (PosixNetworkInterface*)(m->HostInterfaces);
-- mDNS_DeregisterInterface(m, &intf->coreIntf, NormalActivation);
-- if (gMDNSPlatformPosixVerboseLevel > 0) fprintf(stderr, "Deregistered interface %s\n", intf->intfName);
-- FreePosixNetworkInterface(intf);
-+ TearDownInterface(m, intf);
- }
-- num_registered_interfaces = 0;
-- num_pkts_accepted = 0;
-- num_pkts_rejected = 0;
-+
-+ assert(num_registered_interfaces == 0);
- }
-
- // Sets up a send/receive socket.
---
-2.17.1
-
diff --git a/meta-networking/recipes-protocols/mdns/files/0002-mdns-cross-compilation-fixes-for-bitbake.patch b/meta-networking/recipes-protocols/mdns/files/0002-mdns-cross-compilation-fixes-for-bitbake.patch
deleted file mode 100644
index 33590ffc57..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0002-mdns-cross-compilation-fixes-for-bitbake.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-From 72405143f9d16514e70b88bc4843c9634b88036a Mon Sep 17 00:00:00 2001
-From: Brendan Le Foll <brendan.le.foll@intel.com>
-Date: Tue, 3 Mar 2015 11:42:57 +0000
-Subject: [PATCH 2/2] mdns: cross compilation fixes for bitbake
-
-Fixes several build errors when incorrect compiler or
-compiler flags are used.
-
-Upstream-Status: Inappropriate [OE-specific]
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
----
- mDNSPosix/Makefile | 44 ++++++++++++++++++++------------------------
- 1 file changed, 20 insertions(+), 24 deletions(-)
-
-diff --git a/mDNSPosix/Makefile b/mDNSPosix/Makefile
-index 78222e0..18a3af5 100755
---- a/mDNSPosix/Makefile
-+++ b/mDNSPosix/Makefile
-@@ -50,6 +50,7 @@
-
- LIBVERS = 1
-
-+POSIXDIR = ../mDNSPosix
- COREDIR = ../mDNSCore
- SHAREDDIR ?= ../mDNSShared
- DSODIR ?= ../DSO
-@@ -62,16 +63,16 @@ else ifeq ($(SYSTEM), Linux)
- os=linux
- endif
-
--CC = cc
--BISON = bison
--FLEX = flex
--ST = strip
--LD = ld
-+CC ?= cc
-+BISON ?= bison
-+FLEX ?= flex
-+ST ?= strip
-+LD ?= ld
- SOOPTS = -shared
- CP = cp
- RM = rm
- LN = ln -s -f
--CFLAGS_COMMON = -I$(COREDIR) -I$(SHAREDDIR) -I$(DSODIR) -I$(PROXYDIR) -I$(OBJDIR) -fwrapv -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\"
-+CFLAGS_COMMON = -I$(POSIXDIR) -I$(COREDIR) -I$(SHAREDDIR) -I$(DSODIR) -I$(PROXYDIR) -I$(OBJDIR) -fwrapv -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\"
- CFLAGS_PTHREAD =
- LINKOPTS =
- LINKOPTS_PTHREAD = -lpthread
-@@ -85,6 +86,7 @@ CFLAGS_OPEN_SOURCE=
- endif
-
- # Set up diverging paths for debug vs. prod builds
-+DEBUG ?= 1
- ifeq "$(DEBUG)" "1"
- CFLAGS_DEBUGGING = -g -DMDNS_DEBUGMSGS=2
- OBJDIR = objects/debug
-@@ -101,8 +103,8 @@ else
- # 1. We want to make small binaries, suitable for putting into hardware devices
- # 2. Some of the code analysis warnings only work when some form of optimization is enabled
- CFLAGS_DEBUGGING = -g -DMDNS_DEBUGMSGS=0
--OBJDIR ?= objects/prod
--BUILDDIR ?= build/prod
-+OBJDIR = objects/prod
-+BUILDDIR = build/prod
- STRIP = $(ST) -S
- endif
- endif
-@@ -125,7 +127,7 @@ else
- # any target that contains the string "linux"
- ifeq ($(findstring linux,$(os)),linux)
- CFLAGS_OS = -D_GNU_SOURCE -DHAVE_IPV6 -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX -DTARGET_OS_LINUX -ftabstop=4
--LD = $(CC)
-+LD ?= $(CC)
- SOOPTS = -shared
- FLEXFLAGS_OS = -l
- JAVACFLAGS_OS += -I$(JDK)/include/linux
-@@ -276,8 +278,7 @@ Daemon: setup $(BUILDDIR)/mdnsd
- @echo "Responder daemon done"
-
- $(BUILDDIR)/mdnsd: $(DAEMONOBJS)
-- $(CC) -o $@ $+ $(LINKOPTS)
-- $(STRIP) $@
-+ $(LD) -o $@ $+
-
- # libdns_sd target builds the client library
- libdns_sd: setup $(BUILDDIR)/libdns_sd.$(LDSUFFIX)
-@@ -286,13 +287,9 @@ libdns_sd: setup $(BUILDDIR)/libdns_sd.$(LDSUFFIX)
- CLIENTLIBOBJS = $(OBJDIR)/dnssd_clientlib.c.so.o $(OBJDIR)/dnssd_clientstub.c.so.o $(OBJDIR)/dnssd_ipc.c.so.o
-
- $(BUILDDIR)/libdns_sd.$(LDSUFFIX): $(CLIENTLIBOBJS)
-- $(LD) $(SOOPTS) $(LINKOPTS) -o $@ $+
-- $(STRIP) $@
--
--Clients: setup libdns_sd ../Clients/build/dns-sd
-- @echo "Clients done"
-+ $(LD) -shared $(LINKOPTS) -Wl,-soname,libdns_sd.$(LDSUFFIX).1 -o $@ $+
-
--../Clients/build/dns-sd: ../Clients/dns-sd.c
-+Clients: setup libdns_sd
- $(MAKE) -C ../Clients DEBUG=$(DEBUG) SUPMAKE_CFLAGS="$(MDNSCFLAGS)"
-
- # nss_mdns target builds the Name Service Switch module
-@@ -300,8 +297,7 @@ nss_mdns: setup $(BUILDDIR)/$(NSSLIBFILE)
- @echo "Name Service Switch module done"
-
- $(BUILDDIR)/$(NSSLIBFILE): $(CLIENTLIBOBJS) $(OBJDIR)/nss_mdns.c.so.o
-- $(LD) $(SOOPTS) $(LINKOPTS) -o $@ $+
-- $(STRIP) $@
-+ $(LD) -shared $(LINKOPTS) -o $@ $+
-
- #############################################################################
-
-@@ -494,21 +490,21 @@ dnsextd: setup $(BUILDDIR)/dnsextd
- @echo "dnsextd done"
-
- $(BUILDDIR)/mDNSClientPosix: $(APPOBJ) $(OBJDIR)/Client.c.o
-- $(CC) $+ -o $@ $(LINKOPTS)
-+ $(CC) $+ -o $@
-
- $(BUILDDIR)/mDNSResponderPosix: $(COMMONOBJ) $(OBJDIR)/Responder.c.o
-- $(CC) $+ -o $@ $(LINKOPTS)
-+ $(CC) $+ -o $@
-
- $(BUILDDIR)/mDNSProxyResponderPosix: $(COMMONOBJ) $(OBJDIR)/ProxyResponder.c.o
-- $(CC) $+ -o $@ $(LINKOPTS)
-+ $(CC) $+ -o $@
-
- $(BUILDDIR)/mDNSNetMonitor: $(SPECIALOBJ) $(OBJDIR)/NetMonitor.c.o
-- $(CC) $+ -o $@ $(LINKOPTS)
-+ $(CC) $+ -o $@
-
- $(OBJDIR)/NetMonitor.c.o: $(COREDIR)/mDNS.c # Note: NetMonitor.c textually imports mDNS.c
-
- $(BUILDDIR)/dnsextd: $(DNSEXTDOBJ) $(OBJDIR)/dnsextd.c.threadsafe.o
-- $(CC) $+ -o $@ $(LINKOPTS) $(LINKOPTS_PTHREAD)
-+ $(CC) $+ -o $@ $(LINKOPTS_PTHREAD)
-
- #############################################################################
-
---
-2.20.1
-
diff --git a/meta-networking/recipes-protocols/mdns/files/0003-Track-interface-socket-family.patch b/meta-networking/recipes-protocols/mdns/files/0003-Track-interface-socket-family.patch
deleted file mode 100644
index 8c0e6bf397..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0003-Track-interface-socket-family.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 71a7c728ae0d8143b66aa40decca74ebaa9aa2ce Mon Sep 17 00:00:00 2001
-From: Nate Karstens <nate.karstens@garmin.com>
-Date: Wed, 28 Jun 2017 17:30:00 -0500
-Subject: [PATCH 03/11] Track interface socket family
-
-Tracks the socket family associated with the interface.
-
-Upstream-Status: Submitted [dts@apple.com]
-
-Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
----
- mDNSPosix/mDNSPosix.c | 1 +
- mDNSPosix/mDNSPosix.h | 2 ++
- 2 files changed, 3 insertions(+)
-
-diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index 5e5b2cd..8fe22be 100644
---- a/mDNSPosix/mDNSPosix.c
-+++ b/mDNSPosix/mDNSPosix.c
-@@ -918,6 +918,7 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct
- // Set up the extra fields in PosixNetworkInterface.
- assert(intf->intfName != NULL); // intf->intfName already set up above
- intf->index = intfIndex;
-+ intf->sa_family = intfAddr->sa_family;
- intf->multicastSocket4 = -1;
- #if HAVE_IPV6
- intf->multicastSocket6 = -1;
-diff --git a/mDNSPosix/mDNSPosix.h b/mDNSPosix/mDNSPosix.h
-index ca60d80..f77c185 100644
---- a/mDNSPosix/mDNSPosix.h
-+++ b/mDNSPosix/mDNSPosix.h
-@@ -19,6 +19,7 @@
- #define __mDNSPlatformPosix_h
-
- #include <signal.h>
-+#include <sys/socket.h>
- #include <sys/time.h>
-
- #ifdef __cplusplus
-@@ -40,6 +41,7 @@ struct PosixNetworkInterface
- const char * intfName;
- PosixNetworkInterface * aliasIntf;
- int index;
-+ sa_family_t sa_family;
- int multicastSocket4;
- #if HAVE_IPV6
- int multicastSocket6;
---
-2.17.1
-
diff --git a/meta-networking/recipes-protocols/mdns/files/0004-Use-list-for-changed-interfaces.patch b/meta-networking/recipes-protocols/mdns/files/0004-Use-list-for-changed-interfaces.patch
deleted file mode 100644
index db3a63ea48..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0004-Use-list-for-changed-interfaces.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-From 798bfb5e984845a27874d1a244686db6e384d7b8 Mon Sep 17 00:00:00 2001
-From: Nate Karstens <nate.karstens@garmin.com>
-Date: Thu, 13 Jul 2017 09:00:00 -0500
-Subject: [PATCH 04/11] Use list for changed interfaces
-
-Uses a linked list to store the index of changed network interfaces
-instead of a bitfield. This allows for network interfaces with an
-index greater than 31 (an index of 36 was seen on Android).
-
-Upstream-Status: Submitted [dts@apple.com]
-
-Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
----
- mDNSPosix/mDNSPosix.c | 67 +++++++++++++++++++++++++++++++++----------
- 1 file changed, 52 insertions(+), 15 deletions(-)
-
-diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index 195d04b..bb883c1 100755
---- a/mDNSPosix/mDNSPosix.c
-+++ b/mDNSPosix/mDNSPosix.c
-@@ -67,6 +67,14 @@ struct IfChangeRec
- };
- typedef struct IfChangeRec IfChangeRec;
-
-+// Used to build a list of network interface indices
-+struct NetworkInterfaceIndex
-+{
-+ int if_index;
-+ struct NetworkInterfaceIndex *Next;
-+};
-+typedef struct NetworkInterfaceIndex NetworkInterfaceIndex;
-+
- // Note that static data is initialized to zero in (modern) C.
- static PosixEventSource *gEventSources; // linked list of PosixEventSource's
- static sigset_t gEventSignalSet; // Signals which event loop listens for
-@@ -1458,6 +1466,32 @@ mDNSlocal mStatus OpenIfNotifySocket(int *pFD)
- return err;
- }
-
-+mDNSlocal mDNSBool ListContainsInterfaceIndex(GenLinkedList *list, int if_index)
-+{
-+ NetworkInterfaceIndex *item;
-+
-+ for (item = (NetworkInterfaceIndex*)list->Head; item != NULL; item = item->Next)
-+ {
-+ if (if_index == item->if_index) return mDNStrue;
-+ }
-+
-+ return mDNSfalse;
-+}
-+
-+mDNSlocal void AddInterfaceIndexToList(GenLinkedList *list, int if_index)
-+{
-+ NetworkInterfaceIndex *item;
-+
-+ if (ListContainsInterfaceIndex(list, if_index)) return;
-+
-+ item = malloc(sizeof *item);
-+ if (item == NULL) return;
-+
-+ item->if_index = if_index;
-+ item->Next = NULL;
-+ AddToTail(list, item);
-+}
-+
- #if MDNS_DEBUGMSGS
- mDNSlocal void PrintNetLinkMsg(const struct nlmsghdr *pNLMsg)
- {
-@@ -1485,14 +1519,13 @@ mDNSlocal void PrintNetLinkMsg(const struct nlmsghdr *pNLMsg)
- }
- #endif
-
--mDNSlocal mDNSu32 ProcessRoutingNotification(int sd)
-+mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *changedInterfaces)
- // Read through the messages on sd and if any indicate that any interface records should
- // be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0.
- {
- ssize_t readCount;
- char buff[4096];
- struct nlmsghdr *pNLMsg = (struct nlmsghdr*) buff;
-- mDNSu32 result = 0;
-
- // The structure here is more complex than it really ought to be because,
- // unfortunately, there's no good way to size a buffer in advance large
-@@ -1528,9 +1561,9 @@ mDNSlocal mDNSu32 ProcessRoutingNotification(int sd)
-
- // Process the NetLink message
- if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_NEWLINK)
-- result |= 1 << ((struct ifinfomsg*) NLMSG_DATA(pNLMsg))->ifi_index;
-+ AddInterfaceIndexToList(changedInterfaces, ((struct ifinfomsg*) NLMSG_DATA(pNLMsg))->ifi_index);
- else if (pNLMsg->nlmsg_type == RTM_DELADDR || pNLMsg->nlmsg_type == RTM_NEWADDR)
-- result |= 1 << ((struct ifaddrmsg*) NLMSG_DATA(pNLMsg))->ifa_index;
-+ AddInterfaceIndexToList(changedInterfaces, ((struct ifaddrmsg*) NLMSG_DATA(pNLMsg))->ifa_index);
-
- // Advance pNLMsg to the next message in the buffer
- if ((pNLMsg->nlmsg_flags & NLM_F_MULTI) != 0 && pNLMsg->nlmsg_type != NLMSG_DONE)
-@@ -1541,8 +1574,6 @@ mDNSlocal mDNSu32 ProcessRoutingNotification(int sd)
- else
- break; // all done!
- }
--
-- return result;
- }
-
- #else // USES_NETLINK
-@@ -1574,14 +1605,13 @@ mDNSlocal void PrintRoutingSocketMsg(const struct ifa_msghdr *pRSMsg)
- }
- #endif
-
--mDNSlocal mDNSu32 ProcessRoutingNotification(int sd)
-+mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *changedInterfaces)
- // Read through the messages on sd and if any indicate that any interface records should
- // be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0.
- {
- ssize_t readCount;
- char buff[4096];
- struct ifa_msghdr *pRSMsg = (struct ifa_msghdr*) buff;
-- mDNSu32 result = 0;
-
- readCount = read(sd, buff, sizeof buff);
- if (readCount < (ssize_t) sizeof(struct ifa_msghdr))
-@@ -1596,12 +1626,10 @@ mDNSlocal mDNSu32 ProcessRoutingNotification(int sd)
- pRSMsg->ifam_type == RTM_IFINFO)
- {
- if (pRSMsg->ifam_type == RTM_IFINFO)
-- result |= 1 << ((struct if_msghdr*) pRSMsg)->ifm_index;
-+ AddInterfaceIndexToList(changedInterfaces, ((struct if_msghdr*) pRSMsg)->ifm_index);
- else
-- result |= 1 << pRSMsg->ifam_index;
-+ AddInterfaceIndexToList(changedInterfaces, pRSMsg->ifam_index);
- }
--
-- return result;
- }
-
- #endif // USES_NETLINK
-@@ -1611,7 +1639,8 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
- {
- IfChangeRec *pChgRec = (IfChangeRec*) context;
- fd_set readFDs;
-- mDNSu32 changedInterfaces = 0;
-+ GenLinkedList changedInterfaces;
-+ NetworkInterfaceIndex *changedInterface;
- struct timeval zeroTimeout = { 0, 0 };
-
- (void)fd; // Unused
-@@ -1619,17 +1648,25 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
- FD_ZERO(&readFDs);
- FD_SET(pChgRec->NotifySD, &readFDs);
-
-+ InitLinkedList(&changedInterfaces, offsetof(NetworkInterfaceIndex, Next));
-+
- do
- {
-- changedInterfaces |= ProcessRoutingNotification(pChgRec->NotifySD);
-+ ProcessRoutingNotification(pChgRec->NotifySD, &changedInterfaces);
- }
- while (0 < select(pChgRec->NotifySD + 1, &readFDs, (fd_set*) NULL, (fd_set*) NULL, &zeroTimeout));
-
- // Currently we rebuild the entire interface list whenever any interface change is
- // detected. If this ever proves to be a performance issue in a multi-homed
- // configuration, more care should be paid to changedInterfaces.
-- if (changedInterfaces)
-+ if (changedInterfaces.Head != NULL)
- mDNSPlatformPosixRefreshInterfaceList(pChgRec->mDNS);
-+
-+ while ((changedInterface = (NetworkInterfaceIndex*)changedInterfaces.Head) != NULL)
-+ {
-+ RemoveFromList(&changedInterfaces, changedInterface);
-+ free(changedInterface);
-+ }
- }
-
- // Register with either a Routing Socket or RtNetLink to listen for interface changes.
---
-2.20.1
-
diff --git a/meta-networking/recipes-protocols/mdns/files/0006-Remove-unneeded-function.patch b/meta-networking/recipes-protocols/mdns/files/0006-Remove-unneeded-function.patch
deleted file mode 100644
index b461a60df7..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0006-Remove-unneeded-function.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 157d67f152777754c059ced7511352102f23ffae Mon Sep 17 00:00:00 2001
-From: Nate Karstens <nate.karstens@garmin.com>
-Date: Mon, 24 Jul 2017 09:39:18 -0500
-Subject: [PATCH 06/11] Remove unneeded function
-
-Removes a function we no longer need by integrating it into the only
-function that calls it. This was originally separated so that we could
-only process network interfaces that netlink indicated had been changed,
-this has since been extended to test for all network intefaces.
-
-Upstream-Status: Submitted [dts@apple.com]
-
-Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
----
- mDNSPosix/mDNSPosix.c | 13 ++-----------
- 1 file changed, 2 insertions(+), 11 deletions(-)
-
-diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index 59a8b8c..3fc5451 100644
---- a/mDNSPosix/mDNSPosix.c
-+++ b/mDNSPosix/mDNSPosix.c
-@@ -1079,24 +1079,15 @@ mDNSlocal mStatus OpenIfNotifySocket(int *pFD)
- return err;
- }
-
--mDNSlocal mDNSBool ListContainsInterfaceIndex(GenLinkedList *list, int if_index)
-+mDNSlocal void AddInterfaceIndexToList(GenLinkedList *list, int if_index)
- {
- NetworkInterfaceIndex *item;
-
- for (item = (NetworkInterfaceIndex*)list->Head; item != NULL; item = item->Next)
- {
-- if (if_index == item->if_index) return mDNStrue;
-+ if (if_index == item->if_index) return;
- }
-
-- return mDNSfalse;
--}
--
--mDNSlocal void AddInterfaceIndexToList(GenLinkedList *list, int if_index)
--{
-- NetworkInterfaceIndex *item;
--
-- if (ListContainsInterfaceIndex(list, if_index)) return;
--
- item = malloc(sizeof *item);
- if (item == NULL) return;
-
---
-2.17.1
-
diff --git a/meta-networking/recipes-protocols/mdns/files/0008-Mark-deleted-interfaces-as-being-changed.patch b/meta-networking/recipes-protocols/mdns/files/0008-Mark-deleted-interfaces-as-being-changed.patch
deleted file mode 100644
index fdc5105cb9..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0008-Mark-deleted-interfaces-as-being-changed.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 0fcc0f210f3a9310a1963de640b384ce866410fd Mon Sep 17 00:00:00 2001
-From: Nate Karstens <nate.karstens@garmin.com>
-Date: Wed, 9 Aug 2017 09:16:58 -0500
-Subject: [PATCH 08/11] Mark deleted interfaces as being changed
-
-Netlink notification handling ignores messages for deleted links,
-RTM_DELLINK. It does handle RTM_GETLINK. According to libnl docu-
-mentation (http://www.infradead.org/~tgr/libnl/doc/route.html)
-RTM_DELLINK can be sent by the kernel, but RTM_GETLINK cannot.
-There was likely a mixup in the original implementation, so this
-change replaces handling for RTM_GETLINK with RTM_DELLINK.
-
-Testing and Verification Instructions:
- 1. Use ip-link to add and remove a VLAN interface and verify
- that mDNSResponder handles the deleted link.
-
-Upstream-Status: Submitted [dts@apple.com]
-
-Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
----
- mDNSPosix/mDNSPosix.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index 798ab10..a8a57df 100644
---- a/mDNSPosix/mDNSPosix.c
-+++ b/mDNSPosix/mDNSPosix.c
-@@ -1163,7 +1163,7 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change
- #endif
-
- // Process the NetLink message
-- if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_NEWLINK)
-+ if (pNLMsg->nlmsg_type == RTM_DELLINK || pNLMsg->nlmsg_type == RTM_NEWLINK)
- AddInterfaceIndexToList(changedInterfaces, ((struct ifinfomsg*) NLMSG_DATA(pNLMsg))->ifi_index);
- else if (pNLMsg->nlmsg_type == RTM_DELADDR || pNLMsg->nlmsg_type == RTM_NEWADDR)
- AddInterfaceIndexToList(changedInterfaces, ((struct ifaddrmsg*) NLMSG_DATA(pNLMsg))->ifa_index);
---
-2.17.1
-
diff --git a/meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch b/meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch
deleted file mode 100644
index 362d69768e..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0009-Fix-possible-NULL-dereference.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 38cff19781f81586926b02f0fd1cb36c040395e0 Mon Sep 17 00:00:00 2001
-From: Nate Karstens <nate.karstens@garmin.com>
-Date: Thu, 10 Aug 2017 08:21:53 -0500
-Subject: [PATCH 09/11] Fix possible NULL dereference
-
-Fixes a possible NULL dereference if memory for
-the PosixNetworkInterface could not be allocated.
-Other logic seems to prevent dereferencing this
-variable if NULL, but this instance seems to have
-been overlooked.
-
-Upstream-Status: Submitted [dts@apple.com]
-
-Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
----
- mDNSPosix/mDNSPosix.c | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index a8a57df..3243ed4 100644
---- a/mDNSPosix/mDNSPosix.c
-+++ b/mDNSPosix/mDNSPosix.c
-@@ -951,12 +951,15 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct ifi_info *const ifi)
-
- // If interface is a direct link, address record will be marked as kDNSRecordTypeKnownUnique
- // and skip the probe phase of the probe/announce packet sequence.
-- intf->coreIntf.DirectLink = mDNSfalse;
-+ if (err == 0)
-+ {
-+ intf->coreIntf.DirectLink = mDNSfalse;
- #ifdef DIRECTLINK_INTERFACE_NAME
-- if (strcmp(intfName, STRINGIFY(DIRECTLINK_INTERFACE_NAME)) == 0)
-- intf->coreIntf.DirectLink = mDNStrue;
-+ if (strcmp(intfName, STRINGIFY(DIRECTLINK_INTERFACE_NAME)) == 0)
-+ intf->coreIntf.DirectLink = mDNStrue;
- #endif
-- intf->coreIntf.SupportsUnicastMDNSResponse = mDNStrue;
-+ intf->coreIntf.SupportsUnicastMDNSResponse = mDNStrue;
-+ }
-
- // The interface is all ready to go, let's register it with the mDNS core.
- if (err == 0)
---
-2.17.1
-
diff --git a/meta-networking/recipes-protocols/mdns/files/0010-Handle-errors-from-socket-calls.patch b/meta-networking/recipes-protocols/mdns/files/0010-Handle-errors-from-socket-calls.patch
deleted file mode 100644
index b9b0157276..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0010-Handle-errors-from-socket-calls.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 382b3b924e43abd1bdc5792918161d0922666691 Mon Sep 17 00:00:00 2001
-From: Nate Karstens <nate.karstens@garmin.com>
-Date: Thu, 10 Aug 2017 08:27:32 -0500
-Subject: [PATCH 10/11] Handle errors from socket calls
-
-Adds handling for socket() or read() returning a
-negative value (indicating an error has occurred).
-
-Upstream-Status: Submitted [dts@apple.com]
-
-Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
----
- mDNSPosix/mDNSPosix.c | 12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index 3243ed4..84af26b 100644
---- a/mDNSPosix/mDNSPosix.c
-+++ b/mDNSPosix/mDNSPosix.c
-@@ -1129,7 +1129,7 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change
- // Read through the messages on sd and if any indicate that any interface records should
- // be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0.
- {
-- ssize_t readCount;
-+ ssize_t readVal, readCount;
- char buff[4096];
- struct nlmsghdr *pNLMsg = (struct nlmsghdr*) buff;
-
-@@ -1138,7 +1138,10 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change
- // enough to hold all pending data and so avoid message fragmentation.
- // (Note that FIONREAD is not supported on AF_NETLINK.)
-
-- readCount = read(sd, buff, sizeof buff);
-+ readVal = read(sd, buff, sizeof buff);
-+ if (readVal < 0) return;
-+ readCount = readVal;
-+
- while (1)
- {
- // Make sure we've got an entire nlmsghdr in the buffer, and payload, too.
-@@ -1154,7 +1157,9 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change
- pNLMsg = (struct nlmsghdr*) buff;
-
- // read more data
-- readCount += read(sd, buff + readCount, sizeof buff - readCount);
-+ readVal = read(sd, buff + readCount, sizeof buff - readCount);
-+ if (readVal < 0) return;
-+ readCount += readVal;
- continue; // spin around and revalidate with new readCount
- }
- else
-@@ -1429,6 +1434,7 @@ mDNSlocal mDNSBool mDNSPlatformInit_CanReceiveUnicast(void)
- int err;
- int s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
- struct sockaddr_in s5353;
-+ if (s < 0) return mDNSfalse;
- s5353.sin_family = AF_INET;
- s5353.sin_port = MulticastDNSPort.NotAnInteger;
- s5353.sin_addr.s_addr = 0;
---
-2.17.1
-
diff --git a/meta-networking/recipes-protocols/mdns/files/0011-Change-a-dynamic-allocation-to-file-scope-variable.patch b/meta-networking/recipes-protocols/mdns/files/0011-Change-a-dynamic-allocation-to-file-scope-variable.patch
deleted file mode 100644
index d9adde04c2..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0011-Change-a-dynamic-allocation-to-file-scope-variable.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 9ff06108cd44e84ba6c68bfa6737e793f117e303 Mon Sep 17 00:00:00 2001
-From: Nate Karstens <nate.karstens@garmin.com>
-Date: Thu, 10 Aug 2017 08:46:03 -0500
-Subject: [PATCH] Change a dynamic allocation to file-scope variable
-
-Changes a variable from being dynamically-allocated to being
-statically-allocated at the file scope. Addresses a Coverity
-issue where it appeared that the memory was being leaked.
-
-Upstream-Status: Submitted [dts@apple.com]
-
-Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
----
- mDNSPosix/mDNSPosix.c | 14 ++++----------
- 1 file changed, 4 insertions(+), 10 deletions(-)
-
-diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
-index 7aeee7b..2d25016 100755
---- a/mDNSPosix/mDNSPosix.c
-+++ b/mDNSPosix/mDNSPosix.c
-@@ -81,6 +81,7 @@ static sigset_t gEventSignalSet; // Signals which event loop list
- static sigset_t gEventSignals; // Signals which were received while inside loop
-
- static PosixNetworkInterface *gRecentInterfaces;
-+static IfChangeRec gChgRec;
-
- // ***************************************************************************
- // Globals (for debugging)
-@@ -1641,18 +1642,11 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
- mDNSlocal mStatus WatchForInterfaceChange(mDNS *const m)
- {
- mStatus err;
-- IfChangeRec *pChgRec;
-
-- pChgRec = (IfChangeRec*) mDNSPlatformMemAllocateClear(sizeof *pChgRec);
-- if (pChgRec == NULL)
-- return mStatus_NoMemoryErr;
--
-- pChgRec->mDNS = m;
-- err = OpenIfNotifySocket(&pChgRec->NotifySD);
-+ gChgRec.mDNS = m;
-+ err = OpenIfNotifySocket(&gChgRec.NotifySD);
- if (err == 0)
-- err = mDNSPosixAddFDToEventLoop(pChgRec->NotifySD, InterfaceChangeCallback, pChgRec);
-- if (err)
-- mDNSPlatformMemFree(pChgRec);
-+ err = mDNSPosixAddFDToEventLoop(gChgRec.NotifySD, InterfaceChangeCallback, &gChgRec);
-
- return err;
- }
---
-2.20.1
-
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0001-Create-subroutine-for-cleaning-recent-interfaces.patch b/meta-networking/recipes-protocols/mdns/mdns/0001-Create-subroutine-for-cleaning-recent-interfaces.patch
new file mode 100644
index 0000000000..f5d424d58f
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0001-Create-subroutine-for-cleaning-recent-interfaces.patch
@@ -0,0 +1,58 @@
+From c1f3e19d3cb0aa948248616eb1684a1e80aa39b4 Mon Sep 17 00:00:00 2001
+From: Nate Karstens <nate.karstens@garmin.com>
+Date: Wed, 28 Jun 2017 17:30:00 -0500
+Subject: [PATCH 1/8] Create subroutine for cleaning recent interfaces
+
+Moves functionality for cleaning the list of recent
+interfaces into its own subroutine.
+
+Upstream-Status: Submitted [dts@apple.com]
+
+Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSPosix/mDNSPosix.c | 24 ++++++++++++++----------
+ 1 file changed, 14 insertions(+), 10 deletions(-)
+
+Index: mDNSResponder/mDNSPosix/mDNSPosix.c
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c
++++ mDNSResponder/mDNSPosix/mDNSPosix.c
+@@ -1322,6 +1322,19 @@ mDNSlocal int SetupSocket(struct sockadd
+ return err;
+ }
+
++// Clean up any interfaces that have been hanging around on the RecentInterfaces list for more than a minute
++mDNSlocal void CleanRecentInterfaces(void)
++{
++ PosixNetworkInterface **ri = &gRecentInterfaces;
++ const mDNSs32 utc = mDNSPlatformUTC();
++ while (*ri)
++ {
++ PosixNetworkInterface *pi = *ri;
++ if (utc - pi->LastSeen < 60) ri = (PosixNetworkInterface **)&pi->coreIntf.next;
++ else { *ri = (PosixNetworkInterface *)pi->coreIntf.next; mdns_free(pi); }
++ }
++}
++
+ // Creates a PosixNetworkInterface for the interface whose IP address is
+ // intfAddr and whose name is intfName and registers it with mDNS core.
+ mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct sockaddr *intfMask,
+@@ -1559,16 +1572,7 @@ mDNSlocal int SetupInterfaceList(mDNS *c
+
+ // Clean up.
+ if (intfList != NULL) freeifaddrs(intfList);
+-
+- // Clean up any interfaces that have been hanging around on the RecentInterfaces list for more than a minute
+- PosixNetworkInterface **ri = &gRecentInterfaces;
+- const mDNSs32 utc = mDNSPlatformUTC();
+- while (*ri)
+- {
+- PosixNetworkInterface *pi = *ri;
+- if (utc - pi->LastSeen < 60) ri = (PosixNetworkInterface **)&pi->coreIntf.next;
+- else { *ri = (PosixNetworkInterface *)pi->coreIntf.next; mdns_free(pi); }
+- }
++ CleanRecentInterfaces();
+
+ return err;
+ }
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0001-Fix-SIGSEGV-during-DumpStateLog.patch b/meta-networking/recipes-protocols/mdns/mdns/0001-Fix-SIGSEGV-during-DumpStateLog.patch
new file mode 100644
index 0000000000..4b0227f1dc
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0001-Fix-SIGSEGV-during-DumpStateLog.patch
@@ -0,0 +1,30 @@
+From 14cc53bb09a3d8adf301f3842c765598467e63e1 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Thu, 1 Feb 2024 14:07:03 +0000
+Subject: [PATCH] Fix SIGSEGV during DumpStateLog()
+
+DumpStateLog() calls LogMsgWithLevelv() with category == NULL, avoid
+crashing in this case.
+
+Upstream-Status: Inactive-Upstream [Upstream does not take patches]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSShared/mDNSDebug.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mDNSShared/mDNSDebug.c b/mDNSShared/mDNSDebug.c
+index 7a4ca19eff6d..d449dde320f6 100644
+--- a/mDNSShared/mDNSDebug.c
++++ b/mDNSShared/mDNSDebug.c
+@@ -71,7 +71,7 @@ mDNSlocal void LogMsgWithLevelv(os_log_t category, os_log_type_t level, const ch
+ mDNSlocal void LogMsgWithLevelv(const char *category, mDNSLogLevel_t level, const char *format, va_list args)
+ {
+ // Do not print the logs if the log category is MDNS_LOG_CATEGORY_DISABLED.
+- if (strcmp(category, MDNS_LOG_CATEGORY_DISABLED) == 0)
++ if (category && strcmp(category, MDNS_LOG_CATEGORY_DISABLED) == 0)
+ {
+ return;
+ }
+--
+2.39.0
+
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0001-Handle-interface-without-ifa_addr.patch b/meta-networking/recipes-protocols/mdns/mdns/0001-Handle-interface-without-ifa_addr.patch
new file mode 100644
index 0000000000..7e76f07c0e
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0001-Handle-interface-without-ifa_addr.patch
@@ -0,0 +1,38 @@
+From 1cc54320306e07c1fc0eed98e7fbcbb07a2f3b28 Mon Sep 17 00:00:00 2001
+From: Stefan Agner <stefan@agner.ch>
+Date: Fri, 23 Jun 2023 10:10:00 +0200
+Subject: [PATCH] Handle interface without `ifa_addr`
+
+It seems that certain interface types may have `ifa_addr` set to null.
+Handle this case gracefully.
+
+Upstream-Status: Submitted [https://github.com/apple-oss-distributions/mDNSResponder/pull/2/commits/11b410d4d683c90e693c40315997bb3e8ec90e9a]
+
+Signed-off-by: Stefan Agner <stefan@agner.ch>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSPosix/mDNSPosix.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+Index: mDNSResponder/mDNSPosix/mDNSPosix.c
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c
++++ mDNSResponder/mDNSPosix/mDNSPosix.c
+@@ -1895,6 +1895,7 @@ mDNSlocal void InterfaceChangeCallback(i
+ continue;
+
+ if ((ifa_loop4 == NULL) &&
++ ((*ifi)->ifa_addr != NULL) &&
+ ((*ifi)->ifa_addr->sa_family == AF_INET) &&
+ ((*ifi)->ifa_flags & IFF_UP) &&
+ ((*ifi)->ifa_flags & IFF_LOOPBACK))
+@@ -1903,7 +1904,8 @@ mDNSlocal void InterfaceChangeCallback(i
+ continue;
+ }
+
+- if ( (((*ifi)->ifa_addr->sa_family == AF_INET)
++ if ( ((*ifi)->ifa_addr != NULL) &&
++ (((*ifi)->ifa_addr->sa_family == AF_INET)
+ #if HAVE_IPV6
+ || ((*ifi)->ifa_addr->sa_family == AF_INET6)
+ #endif
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0001-dns-sd-Include-missing-headers.patch b/meta-networking/recipes-protocols/mdns/mdns/0001-dns-sd-Include-missing-headers.patch
new file mode 100644
index 0000000000..82825b294d
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0001-dns-sd-Include-missing-headers.patch
@@ -0,0 +1,27 @@
+From cea342c10731cb1c8c8b52f03d55f9d15fc3b091 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 4 Nov 2021 07:31:32 -0700
+Subject: [PATCH 1/6] dns-sd: Include missing headers
+
+Fixes build on Musl
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mDNSPosix/nss_mdns.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: mDNSResponder/mDNSPosix/nss_mdns.c
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/nss_mdns.c
++++ mDNSResponder/mDNSPosix/nss_mdns.c
+@@ -89,6 +89,9 @@
+
+ #include <dns_sd.h>
+
++#if !defined(NETDB_INTERNAL)
++# define NETDB_INTERNAL (-1)
++#endif
+
+ //----------
+ // Public functions
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0002-Create-subroutine-for-tearing-down-an-interface.patch b/meta-networking/recipes-protocols/mdns/mdns/0002-Create-subroutine-for-tearing-down-an-interface.patch
new file mode 100644
index 0000000000..867db88a50
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0002-Create-subroutine-for-tearing-down-an-interface.patch
@@ -0,0 +1,56 @@
+From 40ef0241afbb49f84e76afd65eb3ee17466bb582 Mon Sep 17 00:00:00 2001
+From: Nate Karstens <nate.karstens@garmin.com>
+Date: Wed, 28 Jun 2017 17:30:00 -0500
+Subject: [PATCH 2/8] Create subroutine for tearing down an interface
+
+Creates a subroutine for tearing down an interface.
+
+Upstream-Status: Submitted [dts@apple.com]
+
+Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSPosix/mDNSPosix.c | 22 ++++++++++++++++------
+ 1 file changed, 16 insertions(+), 6 deletions(-)
+
+Index: mDNSResponder/mDNSPosix/mDNSPosix.c
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c
++++ mDNSResponder/mDNSPosix/mDNSPosix.c
+@@ -1043,6 +1043,19 @@ mDNSlocal void FreePosixNetworkInterface
+ gRecentInterfaces = intf;
+ }
+
++mDNSlocal void TearDownInterface(mDNS *const m, PosixNetworkInterface *intf)
++{
++ mDNS_DeregisterInterface(m, &intf->coreIntf, NormalActivation);
++ if (gMDNSPlatformPosixVerboseLevel > 0) fprintf(stderr, "Deregistered interface %s\n", intf->intfName);
++ FreePosixNetworkInterface(intf);
++
++ num_registered_interfaces--;
++ if (num_registered_interfaces == 0) {
++ num_pkts_accepted = 0;
++ num_pkts_rejected = 0;
++ }
++}
++
+ // Grab the first interface, deregister it, free it, and repeat until done.
+ mDNSlocal void ClearInterfaceList(mDNS *const m)
+ {
+@@ -1051,13 +1064,10 @@ mDNSlocal void ClearInterfaceList(mDNS *
+ while (m->HostInterfaces)
+ {
+ PosixNetworkInterface *intf = (PosixNetworkInterface*)(m->HostInterfaces);
+- mDNS_DeregisterInterface(m, &intf->coreIntf, NormalActivation);
+- if (gMDNSPlatformPosixVerboseLevel > 0) fprintf(stderr, "Deregistered interface %s\n", intf->intfName);
+- FreePosixNetworkInterface(intf);
++ TearDownInterface(m, intf);
+ }
+- num_registered_interfaces = 0;
+- num_pkts_accepted = 0;
+- num_pkts_rejected = 0;
++
++ assert(num_registered_interfaces == 0);
+ }
+
+ mDNSlocal int SetupIPv6Socket(int fd)
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0002-make-Set-libdns_sd.so-soname-correctly.patch b/meta-networking/recipes-protocols/mdns/mdns/0002-make-Set-libdns_sd.so-soname-correctly.patch
new file mode 100644
index 0000000000..03fb1bc0d7
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0002-make-Set-libdns_sd.so-soname-correctly.patch
@@ -0,0 +1,24 @@
+From a198bcd457abd04f2e22812ff3a37246aa564614 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Mon, 5 Dec 2022 15:14:12 +0000
+Subject: [PATCH 2/6] make: Set libdns_sd.so soname correctly
+
+Upstream-Status: Pending
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSPosix/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: mDNSResponder/mDNSPosix/Makefile
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/Makefile
++++ mDNSResponder/mDNSPosix/Makefile
+@@ -276,7 +276,7 @@ libdns_sd: setup $(BUILDDIR)/libdns_sd.$
+ CLIENTLIBOBJS = $(OBJDIR)/dnssd_clientlib.c.so.o $(OBJDIR)/dnssd_clientstub.c.so.o $(OBJDIR)/dnssd_ipc.c.so.o $(OBJDIR)/dnssd_errstring.c.so.o
+
+ $(BUILDDIR)/libdns_sd.$(LDSUFFIX): $(CLIENTLIBOBJS)
+- $(LD) $(SOOPTS) $(LINKOPTS) -o $@ $+
++ $(LD) $(SOOPTS) $(LINKOPTS) -Wl,-soname,libdns_sd.$(LDSUFFIX).1 -o $@ $+
+ $(STRIP) $@
+
+ Clients: setup libdns_sd ../Clients/build/dns-sd
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0003-Track-interface-socket-family.patch b/meta-networking/recipes-protocols/mdns/mdns/0003-Track-interface-socket-family.patch
new file mode 100644
index 0000000000..f1cda2b895
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0003-Track-interface-socket-family.patch
@@ -0,0 +1,48 @@
+From deb3a2c51f32e0d2741be11a492e727129f770e2 Mon Sep 17 00:00:00 2001
+From: Nate Karstens <nate.karstens@garmin.com>
+Date: Wed, 28 Jun 2017 17:30:00 -0500
+Subject: [PATCH 3/8] Track interface socket family
+
+Tracks the socket family associated with the interface.
+
+Upstream-Status: Submitted [dts@apple.com]
+
+Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSPosix/mDNSPosix.c | 1 +
+ mDNSPosix/mDNSPosix.h | 2 ++
+ 2 files changed, 3 insertions(+)
+
+Index: mDNSResponder/mDNSPosix/mDNSPosix.c
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c
++++ mDNSResponder/mDNSPosix/mDNSPosix.c
+@@ -1415,6 +1415,7 @@ mDNSlocal int SetupOneInterface(mDNS *co
+ // Set up the extra fields in PosixNetworkInterface.
+ assert(intf->intfName != NULL); // intf->intfName already set up above
+ intf->index = intfIndex;
++ intf->sa_family = intfAddr->sa_family;
+ intf->multicastSocket4 = -1;
+ #if HAVE_IPV6
+ intf->multicastSocket6 = -1;
+Index: mDNSResponder/mDNSPosix/mDNSPosix.h
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/mDNSPosix.h
++++ mDNSResponder/mDNSPosix/mDNSPosix.h
+@@ -19,6 +19,7 @@
+ #define __mDNSPlatformPosix_h
+
+ #include <signal.h>
++#include <sys/socket.h>
+ #include <sys/time.h>
+
+ #ifdef __cplusplus
+@@ -40,6 +41,7 @@ struct PosixNetworkInterface
+ char * intfName;
+ PosixNetworkInterface * aliasIntf;
+ int index;
++ sa_family_t sa_family;
+ int multicastSocket4;
+ #if HAVE_IPV6
+ int multicastSocket6;
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0004-Indicate-loopback-interface-to-mDNS-core.patch b/meta-networking/recipes-protocols/mdns/mdns/0004-Indicate-loopback-interface-to-mDNS-core.patch
new file mode 100644
index 0000000000..6bc36456f6
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0004-Indicate-loopback-interface-to-mDNS-core.patch
@@ -0,0 +1,55 @@
+From beab76b5708862f44d9acbe7a92db45e2f99259f Mon Sep 17 00:00:00 2001
+From: Nate Karstens <nate.karstens@garmin.com>
+Date: Tue, 1 Aug 2017 17:06:01 -0500
+Subject: [PATCH 4/8] Indicate loopback interface to mDNS core
+
+Tells the mDNS core if an interface is a loopback interface,
+similar to AddInterfaceToList() in the MacOS implementation.
+
+Upstream-Status: Submitted [dts@apple.com]
+
+Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSPosix/mDNSPosix.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+Index: mDNSResponder/mDNSPosix/mDNSPosix.c
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c
++++ mDNSResponder/mDNSPosix/mDNSPosix.c
+@@ -1348,7 +1348,7 @@ mDNSlocal void CleanRecentInterfaces(voi
+ // Creates a PosixNetworkInterface for the interface whose IP address is
+ // intfAddr and whose name is intfName and registers it with mDNS core.
+ mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct sockaddr *intfMask,
+- const mDNSu8 *intfHaddr, mDNSu16 intfHlen, const char *intfName, int intfIndex)
++ const mDNSu8 *intfHaddr, mDNSu16 intfHlen, const char *intfName, int intfIndex, int intfFlags)
+ {
+ int err = 0;
+ PosixNetworkInterface *intf;
+@@ -1411,6 +1411,7 @@ mDNSlocal int SetupOneInterface(mDNS *co
+
+ intf->coreIntf.Advertise = m->AdvertiseLocalAddresses;
+ intf->coreIntf.McastTxRx = mDNStrue;
++ intf->coreIntf.Loopback = ((intfFlags & IFF_LOOPBACK) != 0) ? mDNStrue : mDNSfalse;
+
+ // Set up the extra fields in PosixNetworkInterface.
+ assert(intf->intfName != NULL); // intf->intfName already set up above
+@@ -1561,7 +1562,7 @@ mDNSlocal int SetupInterfaceList(mDNS *c
+ }
+ #endif
+ if (SetupOneInterface(m, i->ifa_addr, i->ifa_netmask,
+- hwaddr, hwaddr_len, i->ifa_name, ifIndex) == 0)
++ hwaddr, hwaddr_len, i->ifa_name, ifIndex, i->ifa_flags) == 0)
+ {
+ if (i->ifa_addr->sa_family == AF_INET)
+ foundav4 = mDNStrue;
+@@ -1578,7 +1579,7 @@ mDNSlocal int SetupInterfaceList(mDNS *c
+ // if ((m->HostInterfaces == NULL) && (firstLoopback != NULL))
+ if (!foundav4 && firstLoopback)
+ (void) SetupOneInterface(m, firstLoopback->ifa_addr, firstLoopback->ifa_netmask,
+- NULL, 0, firstLoopback->ifa_name, firstLoopbackIndex);
++ NULL, 0, firstLoopback->ifa_name, firstLoopbackIndex, firstLoopback->ifa_flags);
+ }
+
+ // Clean up.
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0004-make-Separate-TLS-targets-from-libraries.patch b/meta-networking/recipes-protocols/mdns/mdns/0004-make-Separate-TLS-targets-from-libraries.patch
new file mode 100644
index 0000000000..837580ac36
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0004-make-Separate-TLS-targets-from-libraries.patch
@@ -0,0 +1,61 @@
+From 22316f200803225f2d375ae5c36ffead59e2f6b8 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Mon, 5 Dec 2022 15:14:26 +0000
+Subject: [PATCH 4/6] make: Separate TLS targets from libraries
+
+There are dependencies on TLSOBJS, which fails when `-lmbedtls` is
+listed as a dependency, so separate it out.
+
+Upstream-Status: Pending
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSPosix/Makefile | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+Index: mDNSResponder/mDNSPosix/Makefile
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/Makefile
++++ mDNSResponder/mDNSPosix/Makefile
+@@ -112,9 +112,11 @@ ifeq ($(findstring linux,$(os)),linux)
+ ifeq ($(tls), no)
+ CFLAGS_OS = -D_GNU_SOURCE -DHAVE_IPV6 -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX -DTARGET_OS_LINUX -ftabstop=4 -Wno-expansion-to-defined
+ TLSOBJS =
++TLSLIBS =
+ else
+ CFLAGS_OS = -D_GNU_SOURCE -DHAVE_IPV6 -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX -DTARGET_OS_LINUX -DPOSIX_HAS_TLS -ftabstop=4 -Wno-expansion-to-defined
+-TLSOBJS = $(OBJDIR)/mbedtls.c.o -lmbedtls -lmbedcrypto
++TLSOBJS = $(OBJDIR)/mbedtls.c.o
++TLSLIBS = -lmbedtls -lmbedcrypto
+ endif
+ LD = $(CC)
+ SOOPTS = -shared
+@@ -266,7 +268,7 @@ Daemon: setup $(BUILDDIR)/mdnsd
+ @echo "Responder daemon done"
+
+ $(BUILDDIR)/mdnsd: $(DAEMONOBJS)
+- $(CC) -o $@ $+ $(LINKOPTS)
++ $(CC) -o $@ $+ $(LINKOPTS) $(TLSLIBS)
+ $(STRIP) $@
+
+ # libdns_sd target builds the client library
+@@ -485,16 +487,16 @@ dnsextd: setup $(BUILDDIR)/dnsextd
+ @echo "dnsextd done"
+
+ $(BUILDDIR)/mDNSClientPosix: $(APPOBJ) $(TLSOBJS) $(OBJDIR)/Client.c.o
+- $(CC) $+ -o $@ $(LINKOPTS)
++ $(CC) $+ -o $@ $(LINKOPTS) $(TLSLIBS)
+
+ $(BUILDDIR)/mDNSResponderPosix: $(COMMONOBJ) $(TLSOBJS) $(OBJDIR)/Responder.c.o
+- $(CC) $+ -o $@ $(LINKOPTS)
++ $(CC) $+ -o $@ $(LINKOPTS) $(TLSLIBS)
+
+ $(BUILDDIR)/mDNSProxyResponderPosix: $(COMMONOBJ) $(TLSOBJS) $(OBJDIR)/ProxyResponder.c.o
+- $(CC) $+ -o $@ $(LINKOPTS)
++ $(CC) $+ -o $@ $(LINKOPTS) $(TLSLIBS)
+
+ $(BUILDDIR)/mDNSNetMonitor: $(SPECIALOBJ) $(TLSOBJS) $(OBJDIR)/NetMonitor.c.o
+- $(CC) $+ -o $@ $(LINKOPTS)
++ $(CC) $+ -o $@ $(LINKOPTS) $(TLSLIBS)
+
+ $(OBJDIR)/NetMonitor.c.o: $(COREDIR)/mDNS.c # Note: NetMonitor.c textually imports mDNS.c
+
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0005-Use-list-for-changed-interfaces.patch b/meta-networking/recipes-protocols/mdns/mdns/0005-Use-list-for-changed-interfaces.patch
new file mode 100644
index 0000000000..f00116c617
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0005-Use-list-for-changed-interfaces.patch
@@ -0,0 +1,166 @@
+From e79f81f5cd626ad77ec64de4325f6645cf253c5e Mon Sep 17 00:00:00 2001
+From: Nate Karstens <nate.karstens@garmin.com>
+Date: Thu, 13 Jul 2017 09:00:00 -0500
+Subject: [PATCH 5/8] Use list for changed interfaces
+
+Uses a linked list to store the index of changed network interfaces
+instead of a bitfield. This allows for network interfaces with an
+index greater than 31 (an index of 36 was seen on Android).
+
+Upstream-Status: Submitted [dts@apple.com]
+
+Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSPosix/mDNSPosix.c | 58 ++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 43 insertions(+), 15 deletions(-)
+
+Index: mDNSResponder/mDNSPosix/mDNSPosix.c
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c
++++ mDNSResponder/mDNSPosix/mDNSPosix.c
+@@ -74,6 +74,14 @@ struct IfChangeRec
+ };
+ typedef struct IfChangeRec IfChangeRec;
+
++// Used to build a list of network interface indices
++struct NetworkInterfaceIndex
++{
++ int if_index;
++ struct NetworkInterfaceIndex *Next;
++};
++typedef struct NetworkInterfaceIndex NetworkInterfaceIndex;
++
+ // Note that static data is initialized to zero in (modern) C.
+ static PosixEventSource *gEventSources; // linked list of PosixEventSource's
+ static sigset_t gEventSignalSet; // Signals which event loop listens for
+@@ -1621,6 +1629,23 @@ mDNSlocal mStatus OpenIfNotifySocket(int
+ return err;
+ }
+
++mDNSlocal void AddInterfaceIndexToList(GenLinkedList *list, int if_index)
++{
++ NetworkInterfaceIndex *item;
++
++ for (item = (NetworkInterfaceIndex*)list->Head; item != NULL; item = item->Next)
++ {
++ if (if_index == item->if_index) return;
++ }
++
++ item = mdns_malloc(sizeof *item);
++ if (item == NULL) return;
++
++ item->if_index = if_index;
++ item->Next = NULL;
++ AddToTail(list, item);
++}
++
+ #if MDNS_DEBUGMSGS
+ mDNSlocal void PrintNetLinkMsg(const struct nlmsghdr *pNLMsg)
+ {
+@@ -1648,14 +1673,13 @@ mDNSlocal void PrintNetLinkMsg(cons
+ }
+ #endif
+
+-mDNSlocal mDNSu32 ProcessRoutingNotification(int sd)
++mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *changedInterfaces)
+ // Read through the messages on sd and if any indicate that any interface records should
+ // be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0.
+ {
+ ssize_t readCount;
+ char buff[4096];
+ struct nlmsghdr *pNLMsg = (struct nlmsghdr*) buff;
+- mDNSu32 result = 0;
+
+ // The structure here is more complex than it really ought to be because,
+ // unfortunately, there's no good way to size a buffer in advance large
+@@ -1691,9 +1715,9 @@ mDNSlocal mDNSu32 ProcessRoutingNo
+
+ // Process the NetLink message
+ if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_NEWLINK)
+- result |= 1 << ((struct ifinfomsg*) NLMSG_DATA(pNLMsg))->ifi_index;
++ AddInterfaceIndexToList(changedInterfaces, ((struct ifinfomsg*) NLMSG_DATA(pNLMsg))->ifi_index);
+ else if (pNLMsg->nlmsg_type == RTM_DELADDR || pNLMsg->nlmsg_type == RTM_NEWADDR)
+- result |= 1 << ((struct ifaddrmsg*) NLMSG_DATA(pNLMsg))->ifa_index;
++ AddInterfaceIndexToList(changedInterfaces, ((struct ifaddrmsg*) NLMSG_DATA(pNLMsg))->ifa_index);
+
+ // Advance pNLMsg to the next message in the buffer
+ if ((pNLMsg->nlmsg_flags & NLM_F_MULTI) != 0 && pNLMsg->nlmsg_type != NLMSG_DONE)
+@@ -1704,8 +1728,6 @@ mDNSlocal mDNSu32 ProcessRoutingNo
+ else
+ break; // all done!
+ }
+-
+- return result;
+ }
+
+ #else // USES_NETLINK
+@@ -1737,14 +1759,13 @@ mDNSlocal void PrintRoutingSocketMs
+ }
+ #endif
+
+-mDNSlocal mDNSu32 ProcessRoutingNotification(int sd)
++mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *changedInterfaces)
+ // Read through the messages on sd and if any indicate that any interface records should
+ // be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0.
+ {
+ ssize_t readCount;
+ char buff[4096];
+ struct ifa_msghdr *pRSMsg = (struct ifa_msghdr*) buff;
+- mDNSu32 result = 0;
+
+ readCount = read(sd, buff, sizeof buff);
+ if (readCount < (ssize_t) sizeof(struct ifa_msghdr))
+@@ -1759,12 +1780,10 @@ mDNSlocal mDNSu32 ProcessRoutingNo
+ pRSMsg->ifam_type == RTM_IFINFO)
+ {
+ if (pRSMsg->ifam_type == RTM_IFINFO)
+- result |= 1 << ((struct if_msghdr*) pRSMsg)->ifm_index;
++ AddInterfaceIndexToList(changedInterfaces, ((struct if_msghdr*) pRSMsg)->ifm_index);
+ else
+- result |= 1 << pRSMsg->ifam_index;
++ AddInterfaceIndexToList(changedInterfaces, pRSMsg->ifam_index);
+ }
+-
+- return result;
+ }
+
+ #endif // USES_NETLINK
+@@ -1774,7 +1793,8 @@ mDNSlocal void InterfaceChangeCallback(i
+ {
+ IfChangeRec *pChgRec = (IfChangeRec*) context;
+ fd_set readFDs;
+- mDNSu32 changedInterfaces = 0;
++ GenLinkedList changedInterfaces;
++ NetworkInterfaceIndex *changedInterface;
+ struct timeval zeroTimeout = { 0, 0 };
+
+ (void)fd; // Unused
+@@ -1782,17 +1802,25 @@ mDNSlocal void InterfaceChangeCallback(i
+ FD_ZERO(&readFDs);
+ FD_SET(pChgRec->NotifySD, &readFDs);
+
++ InitLinkedList(&changedInterfaces, offsetof(NetworkInterfaceIndex, Next));
++
+ do
+ {
+- changedInterfaces |= ProcessRoutingNotification(pChgRec->NotifySD);
++ ProcessRoutingNotification(pChgRec->NotifySD, &changedInterfaces);
+ }
+ while (0 < select(pChgRec->NotifySD + 1, &readFDs, (fd_set*) NULL, (fd_set*) NULL, &zeroTimeout));
+
+ // Currently we rebuild the entire interface list whenever any interface change is
+ // detected. If this ever proves to be a performance issue in a multi-homed
+ // configuration, more care should be paid to changedInterfaces.
+- if (changedInterfaces)
++ if (changedInterfaces.Head != NULL)
+ mDNSPlatformPosixRefreshInterfaceList(pChgRec->mDNS);
++
++ while ((changedInterface = (NetworkInterfaceIndex*)changedInterfaces.Head) != NULL)
++ {
++ RemoveFromList(&changedInterfaces, changedInterface);
++ mdns_free(changedInterface);
++ }
+ }
+
+ // Register with either a Routing Socket or RtNetLink to listen for interface changes.
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0005-mDNSCore-Fix-broken-debug-parameter.patch b/meta-networking/recipes-protocols/mdns/mdns/0005-mDNSCore-Fix-broken-debug-parameter.patch
new file mode 100644
index 0000000000..fd2f2f1178
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0005-mDNSCore-Fix-broken-debug-parameter.patch
@@ -0,0 +1,25 @@
+From 764b6202402e9e5687ff873330e5ad6be6f69df7 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Mon, 5 Dec 2022 22:49:49 +0000
+Subject: [PATCH] mDNSCore: Fix broken debug parameter
+
+Upstream-Status: Pending
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+
+---
+ mDNSCore/mDNS.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: mDNSResponder/mDNSCore/mDNS.c
+===================================================================
+--- mDNSResponder.orig/mDNSCore/mDNS.c
++++ mDNSResponder/mDNSCore/mDNS.c
+@@ -10231,7 +10231,7 @@ mDNSlocal void mDNSCoreReceiveNoUnicastA
+ #else
+ const DNSServRef dnsserv = qptr->qDNSServer;
+ #endif
+- debugf("mDNSCoreReceiveNoUnicastAnswers making negative cache entry TTL %d for %##s (%s)", negttl, currentQName, DNSTypeName(q.qtype));
++ debugf("mDNSCoreReceiveNoUnicastAnswers making negative cache entry TTL %d for %##s (%s)", negttl, currentQName->c, DNSTypeName(q.qtype));
+ // Create a negative record for the current name in the CNAME chain.
+ MakeNegativeCacheRecord(m, &m->rec.r, currentQName, currentQNameHash, q.qtype, q.qclass, negttl, mDNSInterface_Any,
+ dnsserv, response->h.flags);
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0006-Handle-noisy-netlink-sockets.patch b/meta-networking/recipes-protocols/mdns/mdns/0006-Handle-noisy-netlink-sockets.patch
new file mode 100644
index 0000000000..80cdbca500
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0006-Handle-noisy-netlink-sockets.patch
@@ -0,0 +1,249 @@
+From bfa1d68bed863e22c40a6d9a19ffbcc8694bbff6 Mon Sep 17 00:00:00 2001
+From: Nate Karstens <nate.karstens@garmin.com>
+Date: Mon, 24 Jul 2017 09:38:55 -0500
+Subject: [PATCH 6/8] Handle noisy netlink sockets
+
+The POSIX implementation currently clears all network interfaces
+when netlink indicates that there has been a change. This causes
+the following problems:
+
+ 1) Applications are informed that all of the services they are
+ tracking have been removed.
+ 2) Increases network load because the client must re-query for
+ all records it is interested in.
+
+This changes netlink notification handling by:
+
+ 1) Always comparing with the latest interface list returned
+ by the OS.
+ 2) Confirming that the interface has been changed in a way
+ that we care about.
+
+Upstream-Status: Submitted [dts@apple.com]
+
+Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSPosix/mDNSPosix.c | 182 +++++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 172 insertions(+), 10 deletions(-)
+
+Index: mDNSResponder/mDNSPosix/mDNSPosix.c
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c
++++ mDNSResponder/mDNSPosix/mDNSPosix.c
+@@ -1788,14 +1788,43 @@ mDNSlocal void ProcessRoutingNo
+
+ #endif // USES_NETLINK
+
++// Test whether the given PosixNetworkInterface matches the given struct ifaddrs
++mDNSlocal mDNSBool InterfacesMatch(PosixNetworkInterface *intf, struct ifaddrs *ifi)
++{
++ mDNSBool match = mDNSfalse;
++ mDNSAddr ip, mask;
++ unsigned int if_index;
++
++ if_index = if_nametoindex(ifi->ifa_name);
++ if (if_index == 0)
++ return mDNSfalse;
++
++ if((intf->index == if_index) &&
++ (intf->sa_family == ifi->ifa_addr->sa_family) &&
++ (strcmp(intf->coreIntf.ifname, ifi->ifa_name) == 0))
++ {
++ SockAddrTomDNSAddr(ifi->ifa_addr, &ip, NULL);
++ SockAddrTomDNSAddr(ifi->ifa_netmask, &mask, NULL);
++
++ match = mDNSSameAddress(&intf->coreIntf.ip, &ip) &&
++ mDNSSameAddress(&intf->coreIntf.mask, &mask);
++ }
++
++ return match;
++}
++
+ // Called when data appears on interface change notification socket
+ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
+ {
+ IfChangeRec *pChgRec = (IfChangeRec*) context;
++ mDNS *m = pChgRec->mDNS;
+ fd_set readFDs;
+ GenLinkedList changedInterfaces;
+ NetworkInterfaceIndex *changedInterface;
+ struct timeval zeroTimeout = { 0, 0 };
++ struct ifaddrs *ifa_list, **ifi, *ifa_loop4 = NULL;
++ PosixNetworkInterface *intf, *intfNext;
++ mDNSBool found, foundav4;
+
+ (void)fd; // Unused
+
+@@ -1810,12 +1839,149 @@ mDNSlocal void InterfaceChangeCallback(i
+ }
+ while (0 < select(pChgRec->NotifySD + 1, &readFDs, (fd_set*) NULL, (fd_set*) NULL, &zeroTimeout));
+
+- // Currently we rebuild the entire interface list whenever any interface change is
+- // detected. If this ever proves to be a performance issue in a multi-homed
+- // configuration, more care should be paid to changedInterfaces.
+- if (changedInterfaces.Head != NULL)
+- mDNSPlatformPosixRefreshInterfaceList(pChgRec->mDNS);
++ CleanRecentInterfaces();
++
++ if (changedInterfaces.Head == NULL) goto cleanup;
++
++ if (getifaddrs(&ifa_list) < 0) goto cleanup;
++
++ for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = intfNext)
++ {
++ intfNext = (PosixNetworkInterface*)(intf->coreIntf.next);
++
++ // Loopback interface(s) are handled later
++ if (intf->coreIntf.Loopback) continue;
++
++ found = mDNSfalse;
++ for (ifi = &ifa_list; *ifi != NULL; ifi = &(*ifi)->ifa_next)
++ {
++ if (InterfacesMatch(intf, *ifi))
++ {
++ found = mDNStrue;
++ break;
++ }
++ }
++
++ // Removes changed and old interfaces from m->HostInterfaces
++ if (!found) TearDownInterface(m, intf);
++ }
++
++ // Add new and changed interfaces in ifa_list
++ // Save off loopback interface in case it is needed later
++ for (ifi = &ifa_list; *ifi != NULL; ifi = &(*ifi)->ifa_next)
++ {
++ found = mDNSfalse;
++ for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = intfNext)
++ {
++ intfNext = (PosixNetworkInterface*)(intf->coreIntf.next);
++
++ // Loopback interface(s) are handled later
++ if (intf->coreIntf.Loopback) continue;
++
++ if (InterfacesMatch(intf, *ifi))
++ {
++ found = mDNStrue;
++ break;
++ }
++
++ // Removes changed and old interfaces from m->HostInterfaces
++ }
++ if (found)
++ continue;
++
++ if ((ifa_loop4 == NULL) &&
++ ((*ifi)->ifa_addr->sa_family == AF_INET) &&
++ ((*ifi)->ifa_flags & IFF_UP) &&
++ ((*ifi)->ifa_flags & IFF_LOOPBACK))
++ {
++ ifa_loop4 = *ifi;
++ continue;
++ }
++
++ if ( (((*ifi)->ifa_addr->sa_family == AF_INET)
++#if HAVE_IPV6
++ || ((*ifi)->ifa_addr->sa_family == AF_INET6)
++#endif
++ ) && ((*ifi)->ifa_flags & IFF_UP)
++ && !((*ifi)->ifa_flags & IFF_POINTOPOINT)
++ && !((*ifi)->ifa_flags & IFF_LOOPBACK))
++ {
++ struct ifaddrs *i = *ifi;
++
++#define ethernet_addr_len 6
++ uint8_t hwaddr[ethernet_addr_len];
++ int hwaddr_len = 0;
++
++#if defined(TARGET_OS_LINUX) && TARGET_OS_LINUX
++ struct ifreq ifr;
++ int sockfd = socket(AF_INET6, SOCK_DGRAM, 0);
++ if (sockfd >= 0)
++ {
++ /* Add hardware address */
++ memcpy(ifr.ifr_name, i->ifa_name, IFNAMSIZ);
++ if (ioctl(sockfd, SIOCGIFHWADDR, &ifr) != -1)
++ {
++ if (ifr.ifr_hwaddr.sa_family == ARPHRD_ETHER)
++ {
++ memcpy(hwaddr, ifr.ifr_hwaddr.sa_data, ethernet_addr_len);
++ hwaddr_len = ethernet_addr_len;
++ }
++ }
++ close(sockfd);
++ }
++ else
++ {
++ memset(hwaddr, 0, sizeof(hwaddr));
++ }
++#endif // TARGET_OS_LINUX
++ SetupOneInterface(m, i->ifa_addr, i->ifa_netmask,
++ hwaddr, hwaddr_len, i->ifa_name, if_nametoindex(i->ifa_name), i->ifa_flags);
++ }
++ }
++
++ // Determine if there is at least one non-loopback IPv4 interface. This is to work around issues
++ // with multicast loopback on IPv6 interfaces -- see corresponding logic in SetupInterfaceList().
++ foundav4 = mDNSfalse;
++ for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = (PosixNetworkInterface*)(intf->coreIntf.next))
++ {
++ if (intf->sa_family == AF_INET && !intf->coreIntf.Loopback)
++ {
++ foundav4 = mDNStrue;
++ break;
++ }
++ }
++
++ if (foundav4)
++ {
++ for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = intfNext)
++ {
++ intfNext = (PosixNetworkInterface*)(intf->coreIntf.next);
++ if (intf->coreIntf.Loopback) TearDownInterface(m, intf);
++ }
++ }
++ else
++ {
++ found = mDNSfalse;
++
++ for (intf = (PosixNetworkInterface*)(m->HostInterfaces); intf != NULL; intf = (PosixNetworkInterface*)(intf->coreIntf.next))
++ {
++ if (intf->coreIntf.Loopback)
++ {
++ found = mDNStrue;
++ break;
++ }
++ }
++
++ if (!found && (ifa_loop4 != NULL))
++ {
++ SetupOneInterface(m, ifa_loop4->ifa_addr, ifa_loop4->ifa_netmask,
++ NULL, 0, ifa_loop4->ifa_name, if_nametoindex(ifa_loop4->ifa_name), ifa_loop4->ifa_flags);
++ }
++ }
++
++ if (ifa_list != NULL) freeifaddrs(ifa_list);
+
++cleanup:
+ while ((changedInterface = (NetworkInterfaceIndex*)changedInterfaces.Head) != NULL)
+ {
+ RemoveFromList(&changedInterfaces, changedInterface);
+@@ -1947,15 +2113,11 @@ mDNSexport void mDNSPlatformClose(mDNS *
+ #endif
+ }
+
+-// This is used internally by InterfaceChangeCallback.
+-// It's also exported so that the Standalone Responder (mDNSResponderPosix)
++// This is exported so that the Standalone Responder (mDNSResponderPosix)
+ // can call it in response to a SIGHUP (mainly for debugging purposes).
+ mDNSexport mStatus mDNSPlatformPosixRefreshInterfaceList(mDNS *const m)
+ {
+ int err;
+- // This is a pretty heavyweight way to process interface changes --
+- // destroying the entire interface list and then making fresh one from scratch.
+- // We should make it like the OS X version, which leaves unchanged interfaces alone.
+ ClearInterfaceList(m);
+ err = SetupInterfaceList(m);
+ return PosixErrorToStatus(err);
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0006-make-Add-top-level-Makefile.patch b/meta-networking/recipes-protocols/mdns/mdns/0006-make-Add-top-level-Makefile.patch
new file mode 100644
index 0000000000..c12a02fcdd
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0006-make-Add-top-level-Makefile.patch
@@ -0,0 +1,21 @@
+From fa9ef50ab4c4225cf3ade4bafc38ddf93e6fe127 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Tue, 6 Dec 2022 13:28:31 +0000
+Subject: [PATCH 6/6] make: Add top-level Makefile
+
+Simple top level Makefile that just delegates to mDNSPosix.
+
+Upstream-Status: Inappropriate [oe-specific]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ Makefile | 2 ++
+ 1 file changed, 2 insertions(+)
+ create mode 100644 Makefile
+
+Index: mDNSResponder/Makefile
+===================================================================
+--- /dev/null
++++ mDNSResponder/Makefile
+@@ -0,0 +1,2 @@
++all clean:
++ cd mDNSPosix && $(MAKE) $@
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0007-Mark-deleted-interfaces-as-being-changed.patch b/meta-networking/recipes-protocols/mdns/mdns/0007-Mark-deleted-interfaces-as-being-changed.patch
new file mode 100644
index 0000000000..dae1ac7ea0
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0007-Mark-deleted-interfaces-as-being-changed.patch
@@ -0,0 +1,37 @@
+From a8accffb95267490b50401c8b65ec18db57b5ef5 Mon Sep 17 00:00:00 2001
+From: Nate Karstens <nate.karstens@garmin.com>
+Date: Wed, 9 Aug 2017 09:16:58 -0500
+Subject: [PATCH 7/8] Mark deleted interfaces as being changed
+
+Netlink notification handling ignores messages for deleted links,
+RTM_DELLINK. It does handle RTM_GETLINK. According to libnl docu-
+mentation (http://www.infradead.org/~tgr/libnl/doc/route.html)
+RTM_DELLINK can be sent by the kernel, but RTM_GETLINK cannot.
+There was likely a mixup in the original implementation, so this
+change replaces handling for RTM_GETLINK with RTM_DELLINK.
+
+Testing and Verification Instructions:
+ 1. Use ip-link to add and remove a VLAN interface and verify
+ that mDNSResponder handles the deleted link.
+
+Upstream-Status: Submitted [dts@apple.com]
+
+Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSPosix/mDNSPosix.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: mDNSResponder/mDNSPosix/mDNSPosix.c
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c
++++ mDNSResponder/mDNSPosix/mDNSPosix.c
+@@ -1714,7 +1714,7 @@ mDNSlocal void ProcessRoutingNo
+ #endif
+
+ // Process the NetLink message
+- if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_NEWLINK)
++ if (pNLMsg->nlmsg_type == RTM_DELLINK || pNLMsg->nlmsg_type == RTM_NEWLINK)
+ AddInterfaceIndexToList(changedInterfaces, ((struct ifinfomsg*) NLMSG_DATA(pNLMsg))->ifi_index);
+ else if (pNLMsg->nlmsg_type == RTM_DELADDR || pNLMsg->nlmsg_type == RTM_NEWADDR)
+ AddInterfaceIndexToList(changedInterfaces, ((struct ifaddrmsg*) NLMSG_DATA(pNLMsg))->ifa_index);
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0008-Handle-errors-from-socket-calls.patch b/meta-networking/recipes-protocols/mdns/mdns/0008-Handle-errors-from-socket-calls.patch
new file mode 100644
index 0000000000..1789001e14
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0008-Handle-errors-from-socket-calls.patch
@@ -0,0 +1,60 @@
+From ed58146d3aeecdb9920fdc017f85c18b5b10f2db Mon Sep 17 00:00:00 2001
+From: Nate Karstens <nate.karstens@garmin.com>
+Date: Thu, 10 Aug 2017 08:27:32 -0500
+Subject: [PATCH 8/8] Handle errors from socket calls
+
+Adds handling for socket() or read() returning a
+negative value (indicating an error has occurred).
+
+Upstream-Status: Submitted [dts@apple.com]
+
+Signed-off-by: Nate Karstens <nate.karstens@garmin.com>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSPosix/mDNSPosix.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+Index: mDNSResponder/mDNSPosix/mDNSPosix.c
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c
++++ mDNSResponder/mDNSPosix/mDNSPosix.c
+@@ -1677,7 +1677,7 @@ mDNSlocal void ProcessRoutingNo
+ // Read through the messages on sd and if any indicate that any interface records should
+ // be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0.
+ {
+- ssize_t readCount;
++ ssize_t readVal, readCount;
+ char buff[4096];
+ struct nlmsghdr *pNLMsg = (struct nlmsghdr*) buff;
+
+@@ -1686,7 +1686,10 @@ mDNSlocal void ProcessRoutingNo
+ // enough to hold all pending data and so avoid message fragmentation.
+ // (Note that FIONREAD is not supported on AF_NETLINK.)
+
+- readCount = read(sd, buff, sizeof buff);
++ readVal = read(sd, buff, sizeof buff);
++ if (readVal < 0) return;
++ readCount = readVal;
++
+ while (1)
+ {
+ // Make sure we've got an entire nlmsghdr in the buffer, and payload, too.
+@@ -1702,7 +1705,9 @@ mDNSlocal void ProcessRoutingNo
+ pNLMsg = (struct nlmsghdr*) buff;
+
+ // read more data
+- readCount += read(sd, buff + readCount, sizeof buff - readCount);
++ readVal = read(sd, buff + readCount, sizeof buff - readCount);
++ if (readVal < 0) return;
++ readCount += readVal;
+ continue; // spin around and revalidate with new readCount
+ }
+ else
+@@ -2017,6 +2022,7 @@ mDNSlocal mDNSBool mDNSPlatformInit_CanR
+ int err;
+ int s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+ struct sockaddr_in s5353;
++ if (s < 0) return mDNSfalse;
+ s5353.sin_family = AF_INET;
+ s5353.sin_port = MulticastDNSPort.NotAnInteger;
+ s5353.sin_addr.s_addr = 0;
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0009-remove-unneeded-headers.patch b/meta-networking/recipes-protocols/mdns/mdns/0009-remove-unneeded-headers.patch
new file mode 100644
index 0000000000..d443bc97b2
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0009-remove-unneeded-headers.patch
@@ -0,0 +1,31 @@
+From 1d7e71e72c597ffcc19c04373a477d1fbd3ad955 Mon Sep 17 00:00:00 2001
+From: Beniamin Sandu <beniaminsandu@gmail.com>
+Date: Thu, 15 Jun 2023 17:02:58 +0000
+Subject: [PATCH] remove unneeded headers
+
+From a quick look, these seem to not be needed and having them
+breaks the build with mbedtls 3.x. Without them it builds fine
+on both 2.x and 3.x versions.
+
+Upstream-Status: Pending
+
+Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
+---
+ mDNSPosix/mbedtls.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+Index: mDNSResponder/mDNSPosix/mbedtls.c
+===================================================================
+--- mDNSResponder.orig/mDNSPosix/mbedtls.c
++++ mDNSResponder/mDNSPosix/mbedtls.c
+@@ -38,10 +38,8 @@
+ #include <mbedtls/sha256.h>
+ #include <mbedtls/base64.h>
+
+-#include <mbedtls/certs.h>
+ #include <mbedtls/x509.h>
+ #include <mbedtls/ssl.h>
+-#include <mbedtls/config.h>
+
+ // Posix TLS server context
+ struct TLSContext_struct {
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0015-Add-missing-limits.h.patch b/meta-networking/recipes-protocols/mdns/mdns/0015-Add-missing-limits.h.patch
new file mode 100644
index 0000000000..511a6fdc18
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0015-Add-missing-limits.h.patch
@@ -0,0 +1,23 @@
+From 9fc45a2cf3b78573a568abf538a6e6f4bd30b2d7 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Wed, 27 Sep 2023 11:45:26 +0100
+Subject: [PATCH] Add missing limits.h
+
+Upstream-Status: Pending
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSShared/PlatformCommon.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: mDNSResponder/mDNSShared/PlatformCommon.c
+===================================================================
+--- mDNSResponder.orig/mDNSShared/PlatformCommon.c
++++ mDNSResponder/mDNSShared/PlatformCommon.c
+@@ -32,6 +32,7 @@
+ #include <time.h>
+ #include <sys/time.h> // Needed for #include <sys/time.h>().
+ #include <assert.h>
++#include <limits.h>
+
+
+ #include "mDNSEmbeddedAPI.h" // Defines the interface provided to the client layer above
diff --git a/meta-networking/recipes-protocols/mdns/files/mdns.service b/meta-networking/recipes-protocols/mdns/mdns/mdns.service
index 531d142dcd..531d142dcd 100644
--- a/meta-networking/recipes-protocols/mdns/files/mdns.service
+++ b/meta-networking/recipes-protocols/mdns/mdns/mdns.service
diff --git a/meta-networking/recipes-protocols/mdns/mdns_1310.140.1.bb b/meta-networking/recipes-protocols/mdns/mdns_1310.140.1.bb
deleted file mode 100644
index 205dc929be..0000000000
--- a/meta-networking/recipes-protocols/mdns/mdns_1310.140.1.bb
+++ /dev/null
@@ -1,115 +0,0 @@
-SUMMARY = "Publishes & browses available services on a link according to the Zeroconf / Bonjour protocol"
-DESCRIPTION = "Bonjour, also known as zero-configuration networking, enables automatic discovery of computers, devices, and services on IP networks."
-HOMEPAGE = "http://developer.apple.com/networking/bonjour/"
-LICENSE = "Apache-2.0 & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=31c50371921e0fb731003bbc665f29bf"
-
-DEPENDS:append:libc-musl = " musl-nscd"
-
-RPROVIDES:${PN} += "libdns_sd.so"
-
-SRC_URI = "https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-${PV}.tar.gz \
- file://mdns.service \
- file://0001-mdns-include-stddef.h-for-NULL.patch;patchdir=.. \
- file://0002-mdns-cross-compilation-fixes-for-bitbake.patch;patchdir=.. \
- file://0001-Create-subroutine-for-cleaning-recent-interfaces.patch;patchdir=.. \
- file://0002-Create-subroutine-for-tearing-down-an-interface.patch;patchdir=.. \
- file://0003-Track-interface-socket-family.patch;patchdir=.. \
- file://0004-Use-list-for-changed-interfaces.patch;patchdir=.. \
- file://0006-Remove-unneeded-function.patch;patchdir=.. \
- file://0008-Mark-deleted-interfaces-as-being-changed.patch;patchdir=.. \
- file://0009-Fix-possible-NULL-dereference.patch;patchdir=.. \
- file://0010-Handle-errors-from-socket-calls.patch;patchdir=.. \
- file://0011-Change-a-dynamic-allocation-to-file-scope-variable.patch;patchdir=.. \
- file://0001-dns-sd-Include-missing-headers.patch;patchdir=.. \
- "
-SRC_URI[sha256sum] = "040f6495c18b9f0557bcf9e00cbcfc82b03405f5ba6963dc147730ca0ca90d6f"
-
-CVE_PRODUCT = "apple:mdnsresponder"
-
-# CVE-2007-0613 is not applicable as it only affects Apple products
-# i.e. ichat,mdnsresponder, instant message framework and MacOS.
-# Also, https://www.exploit-db.com/exploits/3230 shows the part of code
-# affected by CVE-2007-0613 which is not preset in upstream source code.
-# Hence, CVE-2007-0613 does not affect other Yocto implementations and
-# is not reported for other distros can be marked whitelisted.
-# Links:
-# https://vulmon.com/vulnerabilitydetails?qid=CVE-2007-0613
-# https://www.incibe-cert.es/en/early-warning/vulnerabilities/cve-2007-0613
-# https://security-tracker.debian.org/tracker/CVE-2007-0613
-# https://vulmon.com/vulnerabilitydetails?qid=CVE-2007-0613
-CVE_CHECK_IGNORE += "CVE-2007-0613"
-
-PARALLEL_MAKE = ""
-
-S = "${WORKDIR}/mDNSResponder-${PV}/mDNSPosix"
-
-EXTRA_OEMAKE += "os=linux DEBUG=0 'CC=${CC}' 'LD=${CCLD} ${LDFLAGS}'"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install () {
- install -d ${D}${sbindir}
- install -m 0755 build/prod/mdnsd ${D}${sbindir}
-
- install -d ${D}${libdir}
- cp build/prod/libdns_sd.so ${D}${libdir}/libdns_sd.so.1
- chmod 0644 ${D}${libdir}/libdns_sd.so.1
- ln -s libdns_sd.so.1 ${D}${libdir}/libdns_sd.so
-
- install -d ${D}${includedir}
- install -m 0644 ../mDNSShared/dns_sd.h ${D}${includedir}
-
- install -d ${D}${mandir}/man8
- install -m 0644 ../mDNSShared/mDNSResponder.8 ${D}${mandir}/man8/mdnsd.8
-
- install -d ${D}${bindir}
- install -m 0755 ../Clients/build/dns-sd ${D}${bindir}
-
- install -d ${D}${libdir}
- oe_libinstall -C build/prod -so libnss_mdns-0.2 ${D}${libdir}
- ln -s libnss_mdns-0.2.so ${D}${libdir}/libnss_mdns.so.2
-
- install -d ${D}${sysconfdir}
- install -m 0644 nss_mdns.conf ${D}${sysconfdir}
-
- install -d ${D}${mandir}/man5
- install -m 0644 nss_mdns.conf.5 ${D}${mandir}/man5
-
- install -d ${D}${mandir}/man8
- install -m 0644 libnss_mdns.8 ${D}${mandir}/man8
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/mdns.service ${D}${systemd_unitdir}/system/
-}
-
-pkg_postinst:${PN} () {
- sed -e '/^hosts:/s/\s*\<mdns\>//' \
- -e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 mdns\3\4\5/' \
- -i $D/etc/nsswitch.conf
-}
-
-pkg_prerm:${PN} () {
- sed -e '/^hosts:/s/\s*\<mdns\>//' \
- -e '/^hosts:/s/\s*mdns//' \
- -i $D/etc/nsswitch.conf
-}
-
-inherit systemd
-
-SYSTEMD_SERVICE:${PN} = "mdns.service"
-
-FILES:${PN} += "${systemd_unitdir}/system/mdns.service"
-FILES:${PN} += "${libdir}/libdns_sd.so.1 \
- ${bindir}/dns-sd \
- ${libdir}/libnss_mdns-0.2.so \
- ${sysconfdir}/nss_mdns.conf"
-
-FILES:${PN}-dev += "${libdir}/libdns_sd.so \
- ${includedir}/dns_sd.h "
-
-FILES:${PN}-man += "${mandir}/man8/mdnsd.8 \
- ${mandir}/man5/nss_mdns.conf.5 \
- ${mandir}/man8/libnss_mdns.8"
-
-PACKAGES = "${PN} ${PN}-dev ${PN}-man ${PN}-dbg"
diff --git a/meta-networking/recipes-protocols/mdns/mdns_2200.100.94.0.2.bb b/meta-networking/recipes-protocols/mdns/mdns_2200.100.94.0.2.bb
new file mode 100644
index 0000000000..183f05ebc3
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns_2200.100.94.0.2.bb
@@ -0,0 +1,135 @@
+SUMMARY = "Publishes & browses available services on a link according to the Zeroconf / Bonjour protocol"
+DESCRIPTION = "Bonjour, also known as zero-configuration networking, enables automatic discovery of computers, devices, and services on IP networks."
+HOMEPAGE = "https://developer.apple.com/bonjour/"
+LICENSE = "Apache-2.0 & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=31c50371921e0fb731003bbc665f29bf"
+
+DEPENDS:append:libc-musl = " musl-nscd"
+
+SRC_URI = "git://github.com/apple-oss-distributions/mDNSResponder;protocol=https;branch=rel/mDNSResponder-2200 \
+ file://0001-dns-sd-Include-missing-headers.patch \
+ file://0002-make-Set-libdns_sd.so-soname-correctly.patch \
+ file://0004-make-Separate-TLS-targets-from-libraries.patch \
+ file://0005-mDNSCore-Fix-broken-debug-parameter.patch \
+ file://0006-make-Add-top-level-Makefile.patch \
+ file://0001-Create-subroutine-for-cleaning-recent-interfaces.patch \
+ file://0002-Create-subroutine-for-tearing-down-an-interface.patch \
+ file://0003-Track-interface-socket-family.patch \
+ file://0004-Indicate-loopback-interface-to-mDNS-core.patch \
+ file://0005-Use-list-for-changed-interfaces.patch \
+ file://0006-Handle-noisy-netlink-sockets.patch \
+ file://0007-Mark-deleted-interfaces-as-being-changed.patch \
+ file://0008-Handle-errors-from-socket-calls.patch \
+ file://0009-remove-unneeded-headers.patch \
+ file://mdns.service \
+ file://0015-Add-missing-limits.h.patch \
+ file://0001-Handle-interface-without-ifa_addr.patch \
+ file://0001-Fix-SIGSEGV-during-DumpStateLog.patch \
+ "
+SRCREV = "8f70f98fc1d0cf439ca3a6470be6ad8ac2bcc019"
+
+# We install a stub Makefile in the top directory so that the various checks
+# in base.bbclass pass their tests for a Makefile, this ensures (that amongst
+# other things) the sstate checks will clean the build directory when the
+# task hashes changes.
+#
+# We can't use the approach of setting ${S} to mDNSPosix as we need
+# DEBUG_PREFIX_MAP to cover files which come from the Clients directory too.
+S = "${WORKDIR}/git"
+
+inherit github-releases manpages systemd update-rc.d
+
+PACKAGECONFIG ?= "tls \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[debug] = "DEBUG=1,DEBUG=0"
+PACKAGECONFIG[ipv6] = "HAVE_IPV6=1,HAVE_IPV6=0"
+PACKAGECONFIG[manpages] = ""
+PACKAGECONFIG[tls] = ",tls=no,mbedtls"
+
+CVE_PRODUCT = "apple:mdnsresponder"
+
+CVE_STATUS[CVE-2007-0613] = "not-applicable-platform: Issue affects Apple products \
+i.e. ichat,mdnsresponder, instant message framework and MacOS. Also, \
+https://www.exploit-db.com/exploits/3230 shows the part of code \
+affected by CVE-2007-0613 which is not preset in upstream source code. \
+Hence, CVE-2007-0613 does not affect other Yocto implementations and \
+is not reported for other distros can be marked whitelisted. \
+Links: https://vulmon.com/vulnerabilitydetails?qid=CVE-2007-0613 \
+https://www.incibe-cert.es/en/early-warning/vulnerabilities/cve-2007-0613 \
+https://security-tracker.debian.org/tracker/CVE-2007-0613 \
+https://vulmon.com/vulnerabilitydetails?qid=CVE-2007-0613"
+
+PARALLEL_MAKE = ""
+
+EXTRA_OEMAKE = "os=linux 'CC=${CCLD}' 'LD=${CCLD}' 'LINKOPTS=${LDFLAGS}' STRIP=: ${PACKAGECONFIG_CONFARGS}"
+
+# MDNS_VERSIONSTR_NODTS disables __DATE__ and __TIME__ in the version string,
+# which are fixed anyway for build reproducibility.
+TARGET_CPPFLAGS += "-DMDNS_VERSIONSTR_NODTS"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+MDNS_BUILDDIR = "build/${@bb.utils.contains('PACKAGECONFIG','debug','debug','prod', d)}"
+
+do_install () {
+ cd mDNSPosix
+
+ install -d ${D}${sbindir}
+ install ${MDNS_BUILDDIR}/mdnsd ${D}${sbindir}
+
+ install -d ${D}${libdir}
+ install -m 0644 ${MDNS_BUILDDIR}/libdns_sd.so ${D}${libdir}/libdns_sd.so.1
+ ln -s libdns_sd.so.1 ${D}${libdir}/libdns_sd.so
+
+ install -d ${D}${includedir}
+ install -m 0644 ../mDNSShared/dns_sd.h ${D}${includedir}
+
+ install -d ${D}${mandir}/man8
+ install -m 0644 ../mDNSShared/mDNSResponder.8 ${D}${mandir}/man8/mdnsd.8
+
+ install -d ${D}${bindir}
+ install -m 0755 ../Clients/build/dns-sd ${D}${bindir}
+
+ install -d ${D}${libdir}
+ oe_libinstall -C ${MDNS_BUILDDIR} -so libnss_mdns-0.2 ${D}${libdir}
+ ln -s libnss_mdns-0.2.so ${D}${libdir}/libnss_mdns.so.2
+
+ install -d ${D}${sysconfdir}
+ install -m 0644 nss_mdns.conf ${D}${sysconfdir}
+
+ install -d ${D}${mandir}/man5
+ install -m 0644 nss_mdns.conf.5 ${D}${mandir}/man5
+
+ install -d ${D}${mandir}/man8
+ install -m 0644 libnss_mdns.8 ${D}${mandir}/man8
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/mdns.service ${D}${systemd_system_unitdir}
+
+ install -d ${D}${INIT_D_DIR}
+ install mdnsd.sh ${D}${INIT_D_DIR}/mdns
+}
+
+pkg_postinst:${PN} () {
+ if [ -r $D${sysconfdir}/nsswitch.conf ]; then
+ sed -e '/^hosts:/s/\s*\<mdns\>//' \
+ -e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 mdns\3\4\5/' \
+ -i $D${sysconfdir}/nsswitch.conf
+ fi
+}
+
+pkg_prerm:${PN} () {
+ if [ -r $D${sysconfdir}/nsswitch.conf ]; then
+ sed -e '/^hosts:/s/\s*\<mdns\>//' \
+ -e '/^hosts:/s/\s*mdns//' \
+ -i $D${sysconfdir}/nsswitch.conf
+ fi
+}
+
+SYSTEMD_SERVICE:${PN} = "mdns.service"
+INITSCRIPT_NAME = "mdns"
+
+FILES_SOLIBSDEV = "${libdir}/libdns_sd.so"
+FILES:${PN} += "${libdir}/libnss_mdns-0.2.so"
+
+RPROVIDES:${PN} += "libdns_sd.so"
diff --git a/meta-networking/recipes-protocols/net-snmp/files/init b/meta-networking/recipes-protocols/net-snmp/files/init
index 47995466fb..47995466fb 100755..100644
--- a/meta-networking/recipes-protocols/net-snmp/files/init
+++ b/meta-networking/recipes-protocols/net-snmp/files/init
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Android-Fix-the-build.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Android-Fix-the-build.patch
new file mode 100644
index 0000000000..097d9f83cd
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Android-Fix-the-build.patch
@@ -0,0 +1,83 @@
+From b4598662a39ff6974119c900ea56a4d020eac366 Mon Sep 17 00:00:00 2001
+From: Bart Van Assche <bvanassche@acm.org>
+Date: Wed, 20 Dec 2023 13:08:06 -0800
+Subject: [PATCH] Android: Fix the build
+
+Include <sys/select.h> for the fd_set type. In the configure script,
+check whether 'unsigned long' is the underlying type of fd_set. Use
+u_long instead of ulong.
+
+Upstream-Status: Backport [https://github.com/net-snmp/net-snmp/commit/b4598662a39ff6974119c900ea56a4d020eac366]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ agent/mibgroup/ip-mib/data_access/ipaddress_linux.c | 4 ++--
+ configure | 2 +-
+ configure.d/config_project_types | 2 +-
+ include/net-snmp/types.h | 3 +++
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/agent/mibgroup/ip-mib/data_access/ipaddress_linux.c b/agent/mibgroup/ip-mib/data_access/ipaddress_linux.c
+index b38beb57dd..232202d0f9 100644
+--- a/agent/mibgroup/ip-mib/data_access/ipaddress_linux.c
++++ b/agent/mibgroup/ip-mib/data_access/ipaddress_linux.c
+@@ -50,7 +50,7 @@ int _load_v6(netsnmp_container *container, int idx_offset);
+ int
+ netsnmp_access_ipaddress_extra_prefix_info(int index,
+ u_long *preferedlt,
+- ulong *validlt,
++ u_long *validlt,
+ char *addr);
+ #endif
+
+@@ -523,7 +523,7 @@ out:
+
+ int
+ netsnmp_access_ipaddress_extra_prefix_info(int index, u_long *preferedlt,
+- ulong *validlt, char *addr)
++ u_long *validlt, char *addr)
+ {
+
+ struct {
+diff --git a/configure b/configure
+index e7bf859bba..48abcbab11 100755
+--- a/configure
++++ b/configure
+@@ -31577,7 +31577,7 @@ CFLAGS="$CFLAGS -Werror"
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the type of fd_set::fds_bits" >&5
+ printf %s "checking for the type of fd_set::fds_bits... " >&6; }
+-for type in __fd_mask __int32_t long\ int unknown; do
++for type in __fd_mask __int32_t long 'unsigned long' unknown; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+diff --git a/configure.d/config_project_types b/configure.d/config_project_types
+index a78e8ebb06..ac958d6712 100644
+--- a/configure.d/config_project_types
++++ b/configure.d/config_project_types
+@@ -66,7 +66,7 @@ netsnmp_save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -Werror"
+
+ AC_MSG_CHECKING([for the type of fd_set::fds_bits])
+-for type in __fd_mask __int32_t long\ int unknown; do
++for type in __fd_mask __int32_t long 'unsigned long' unknown; do
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+ #include <sys/select.h>
+ #include <stddef.h>
+diff --git a/include/net-snmp/types.h b/include/net-snmp/types.h
+index b78f53ffd7..6228170e5f 100644
+--- a/include/net-snmp/types.h
++++ b/include/net-snmp/types.h
+@@ -23,6 +23,9 @@
+ #endif
+
+ #include <sys/types.h>
++#ifdef __ANDROID__
++#include <sys/select.h>
++#endif
+
+ #if defined(WIN32) && !defined(cygwin)
+ typedef HANDLE netsnmp_pid_t;
+--
+2.44.0
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-ac_add_search_path.m4-keep-consistent-between-32bit.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-ac_add_search_path.m4-keep-consistent-between-32bit.patch
deleted file mode 100644
index 0eeddf752c..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-ac_add_search_path.m4-keep-consistent-between-32bit.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 98c62e24fdd05d7e8bd8149840bad8eb0feb3fb1 Mon Sep 17 00:00:00 2001
-From: Mingli Yu <mingli.yu@windriver.com>
-Date: Fri, 29 Jan 2021 08:49:15 +0000
-Subject: [PATCH] ac_add_search_path.m4: keep consistent between 32bit and
- 64bit
-
-With configure option "--with-openssl=${STAGING_EXECPREFIXDIR}", it behaves
-differently between 32bit and 64bit system as the openssl lib resides under
-/build/tmp/work/corei7-64-wrs-linux/net-snmp/5.9-r0/recipe-sysroot/usr/lib64
-for 64bit system, but resides under [1] for 32bit system.
-
-So add the patch to fix the gap between 32bit and 64bit system.
-
-[1] /build/tmp/work/corei7-64-wrs-linux/net-snmp/5.9-r0/recipe-sysroot/usr/lib
-
-Upstream-Status: Inappropriate [configuration specific]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
-
----
- m4/ac_add_search_path.m4 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/m4/ac_add_search_path.m4 b/m4/ac_add_search_path.m4
-index 8e0a819..e9585bc 100644
---- a/m4/ac_add_search_path.m4
-+++ b/m4/ac_add_search_path.m4
-@@ -3,8 +3,8 @@ dnl Add a search path to the LIBS and CPPFLAGS variables
- dnl
- AC_DEFUN([AC_ADD_SEARCH_PATH],[
- if test "x$1" != x -a -d $1; then
-- if test -d $1/lib; then
-- LDFLAGS="-L$1/lib $LDFLAGS"
-+ if test -d $1/${libdir:5}; then
-+ LDFLAGS="-L$1/${libdir:5} $LDFLAGS"
- fi
- if test -d $1/include; then
- CPPFLAGS="-I$1/include $CPPFLAGS"
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch
deleted file mode 100644
index f8a52a63f5..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_headers-Error-Fix.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From e86d5fd52f19b85da0b7cce660c6e65ec4c0f9bb Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Fri, 21 Aug 2015 18:23:13 +0900
-Subject: [PATCH] config_os_headers: Error Fix
-
-ERROR: This autoconf log indicates errors, it looked at host include
-and/or library paths while determining system capabilities.
-cc1: warning: include location "/usr/local/include" is unsafe for cross-compilation [-Wpoison-system-directories]
-conftest.c:168:17: fatal error: pkg.h: No such file or directory
- #include <pkg.h>
- ^
-
-Upstream-Status: pending
-
-Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
-
----
- configure.d/config_os_headers | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.d/config_os_headers b/configure.d/config_os_headers
-index 01c3376..6edd85f 100644
---- a/configure.d/config_os_headers
-+++ b/configure.d/config_os_headers
-@@ -395,8 +395,8 @@ then
- unset ac_cv_header_pkg_h
- netsnmp_save_CPPFLAGS="$CPPFLAGS"
- netsnmp_save_LDFLAGS="$LDFLAGS"
-- CPPFLAGS="$CPPFLAGS -I/usr/local/include"
-- LDFLAGS="$LDFLAGS -L/usr/local/lib"
-+ CPPFLAGS="$CPPFLAGS"
-+ LDFLAGS="$LDFLAGS"
- AC_CHECK_HEADERS(pkg.h,
- NETSNMP_SEARCH_LIBS(pkg_init, pkg,
- AC_DEFINE(HAVE_LIBPKG, 1, [define if you have BSD pkg-ng])))
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch
deleted file mode 100644
index a7881a8713..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 8097734b27fd146f358a4edd0d1a0d28309bd9a4 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 22 Jul 2016 18:34:39 +0000
-Subject: [PATCH] get_pid_from_inode: Include limit.h
-
-PATH_MAX and NAME_MAX are required by this file
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- agent/mibgroup/util_funcs/get_pid_from_inode.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/agent/mibgroup/util_funcs/get_pid_from_inode.c b/agent/mibgroup/util_funcs/get_pid_from_inode.c
-index 5788e1d..ea380a6 100644
---- a/agent/mibgroup/util_funcs/get_pid_from_inode.c
-+++ b/agent/mibgroup/util_funcs/get_pid_from_inode.c
-@@ -6,6 +6,7 @@
- #include <net-snmp/output_api.h>
-
- #include <ctype.h>
-+#include <limits.h>
- #include <stdio.h>
- #ifdef HAVE_STDLIB_H
- #include <stdlib.h>
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-net-snmp-add-knob-whether-nlist.h-are-checked.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-net-snmp-add-knob-whether-nlist.h-are-checked.patch
new file mode 100644
index 0000000000..ea9dccac28
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-net-snmp-add-knob-whether-nlist.h-are-checked.patch
@@ -0,0 +1,38 @@
+From 787269b337e70f073e194c3b361eaf4d5f2291ce Mon Sep 17 00:00:00 2001
+From: Chong Lu <Chong.Lu@windriver.com>
+Date: Thu, 28 May 2020 09:46:34 -0500
+Subject: [PATCH] net-snmp: add knob whether nlist.h are checked
+
+Previously, it still was checked when there was no nlish.h in sysroots directory.
+Add knob to decide whether nlist.h are checked or not.
+
+Upstream-Status: Pending
+
+Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
+---
+ configure.d/config_os_headers | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configure.d/config_os_headers b/configure.d/config_os_headers
+index 584064e..c0688f8 100644
+--- a/configure.d/config_os_headers
++++ b/configure.d/config_os_headers
+@@ -37,6 +37,7 @@ AC_CHECK_HEADERS([getopt.h pthread.h regex.h ] dnl
+ [sys/timeb.h ])
+
+ # Library and Agent:
++if test "x$with_elf" != "xno"; then
+ AC_CHECK_HEADERS([nlist.h],,,[
+ AC_INCLUDES_DEFAULT
+ [
+@@ -44,6 +45,7 @@ AC_INCLUDES_DEFAULT
+ #define LIBBSD_DISABLE_DEPRECATED 1
+ #endif
+ ]])
++fi
+
+ # Library:
+ AC_CHECK_HEADERS([crt_externs.h ] dnl
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch
deleted file mode 100644
index af6334f726..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From f4e1acd4f509dd26cf88da872bd5adcf884f4a5f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 18 Sep 2015 00:28:45 -0400
-Subject: [PATCH] snmplib/keytools.c: Don't check for return from
-
- EVP_MD_CTX_init()
-
-EVP_MD_CTX_init() API returns void, it fixes errors with new compilers
-
-snmplib/keytools.c: In function 'generate_Ku': error: invalid use of void expression
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
-
----
- snmplib/keytools.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/snmplib/keytools.c b/snmplib/keytools.c
-index 14a452a..fb1694b 100644
---- a/snmplib/keytools.c
-+++ b/snmplib/keytools.c
-@@ -183,10 +183,7 @@ generate_Ku(const oid * hashtype, u_int hashtype_len,
- ctx = EVP_MD_CTX_create();
- #else
- ctx = malloc(sizeof(*ctx));
-- if (!EVP_MD_CTX_init(ctx)) {
-- rval = SNMPERR_GENERR;
-- goto generate_Ku_quit;
-- }
-+ EVP_MD_CTX_init(ctx);
- #endif
- if (!EVP_DigestInit(ctx, hashfn)) {
- rval = SNMPERR_GENERR;
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-net-snmp-fix-libtool-finish.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-net-snmp-fix-libtool-finish.patch
new file mode 100644
index 0000000000..e951537b04
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-net-snmp-fix-libtool-finish.patch
@@ -0,0 +1,36 @@
+From 5f002c3cc46ecf4d4a29571309f2cc0d3d34330f Mon Sep 17 00:00:00 2001
+From: "Roy.Li" <rongqing.li@windriver.com>
+Date: Fri, 16 Jan 2015 14:14:01 +0800
+Subject: [PATCH] net-snmp: fix "libtool --finish"
+
+LIB_LDCONFIG_CMD failed since it is using a host dir $(libdir)
+which is /usr/lib64 does not exist on host when compile 64bit
+image.
+
+In fact, configuring dynamic linker run-time bindings is meaningless
+at this step, If it is needed, Poky would write ldconfig scripts to
+rpm-postinst for each recipe while do_package, in package.bbclass.
+
+Upstream-Status: Inappropriate [cross compile specific]
+
+Signed-off-by: Roy.Li <rongqing.li@windriver.com>
+---
+ Makefile.top | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.top b/Makefile.top
+index d1b3923..53e0392 100644
+--- a/Makefile.top
++++ b/Makefile.top
+@@ -89,7 +89,7 @@ LIBREVISION = 1
+ LIB_LD_CMD = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) @LD_NO_UNDEFINED@ -o
+ LIB_EXTENSION = la
+ LIB_VERSION =
+-LIB_LDCONFIG_CMD = $(LIBTOOL) --mode=finish $(INSTALL_PREFIX)$(libdir)
++LIB_LDCONFIG_CMD = echo "do not ldconfig\n"
+ LINK = $(LIBTOOL) --mode=link $(LINKCC)
+ # RANLIB = @RANLIB@
+ RANLIB = :
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-testing-add-the-output-format-for-ptest.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-testing-add-the-output-format-for-ptest.patch
new file mode 100644
index 0000000000..ab54492934
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-testing-add-the-output-format-for-ptest.patch
@@ -0,0 +1,37 @@
+From 2a1a2b58af09c6c03026474f1fd0db7d36e977c7 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Wed, 14 Jan 2015 15:10:06 +0800
+Subject: [PATCH] testing: add the output format for ptest
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ testing/RUNTESTS | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/testing/RUNTESTS b/testing/RUNTESTS
+index 6715831..a2b6fb8 100755
+--- a/testing/RUNTESTS
++++ b/testing/RUNTESTS
+@@ -17,13 +17,17 @@ failed_count=0
+ rm -f failed_tests
+ for i in "${srcdir}"/testing/fulltests/default/T*$1*; do
+ echo "RUNNING $i"
++ test_name=`basename $i`
+ ${srcdir}/testing/fulltests/support/simple_run $i
+ if [ $? = 0 ]; then
++ echo "PASS: $test_name"
+ success_count=`expr $success_count + 1`
+ else
++ echo "FAIL: $test_name"
+ failed_count=`expr $failed_count + 1`
+ echo "$i" >> failed_tests
+ fi
++ echo
+ done
+
+ if [ -f failed_tests ]; then
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-config_os_headers-Error-Fix.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-config_os_headers-Error-Fix.patch
new file mode 100644
index 0000000000..e2269bc3e8
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-config_os_headers-Error-Fix.patch
@@ -0,0 +1,37 @@
+From b1c941c20577578aa5ff3450d9d8d7a23c55d14a Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Fri, 21 Aug 2015 18:23:13 +0900
+Subject: [PATCH] config_os_headers: Error Fix
+
+ERROR: This autoconf log indicates errors, it looked at host include
+and/or library paths while determining system capabilities.
+cc1: warning: include location "/usr/local/include" is unsafe for cross-compilation [-Wpoison-system-directories]
+conftest.c:168:17: fatal error: pkg.h: No such file or directory
+ #include <pkg.h>
+ ^
+
+Upstream-Status: Pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+---
+ configure.d/config_os_headers | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.d/config_os_headers b/configure.d/config_os_headers
+index c0688f8..f68713c 100644
+--- a/configure.d/config_os_headers
++++ b/configure.d/config_os_headers
+@@ -395,8 +395,8 @@ then
+ unset ac_cv_header_pkg_h
+ netsnmp_save_CPPFLAGS="$CPPFLAGS"
+ netsnmp_save_LDFLAGS="$LDFLAGS"
+- CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+- LDFLAGS="$LDFLAGS -L/usr/local/lib"
++ CPPFLAGS="$CPPFLAGS"
++ LDFLAGS="$LDFLAGS"
+ AC_CHECK_HEADERS(pkg.h,
+ NETSNMP_SEARCH_LIBS(pkg_init, pkg,
+ AC_DEFINE(HAVE_LIBPKG, 1, [define if you have BSD pkg-ng])))
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch
deleted file mode 100644
index 6e224188a4..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 6d655ba677563ac9d62d4d8eee59fdb39d486c02 Mon Sep 17 00:00:00 2001
-From: Wenlin Kang <wenlin.kang@windriver.com>
-Date: Wed, 24 May 2017 17:10:20 +0800
-Subject: [PATCH] configure: fix incorrect variable
-
-For cross compile platform, this variable will not be correct, so fix it.
-
-Upstream-Status: Inappropriate [cross compile specific]
-
-Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
-
----
- Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index f1cbbf5..1545be3 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -173,7 +173,7 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt
- #
- # override LD_RUN_PATH to avoid dependencies on the build directory
- perlmodules: perlmakefiles subdirs
-- @(cd perl ; $(MAKE) LD_RUN_PATH="$(libdir):`$(PERL) -e 'use Config; print qq($$Config{archlibexp}/CORE);'`") ; \
-+ @(cd perl ; $(MAKE) LD_RUN_PATH="$(libdir):`$(PERL) -e 'use Config; print qq($$Config{installprivlib}/CORE);'`") ; \
- if test $$? != 0 ; then \
- exit 1 ; \
- fi
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0005-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0005-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch
new file mode 100644
index 0000000000..7a6b35460e
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0005-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch
@@ -0,0 +1,37 @@
+From c790411f9aa82064fea9bbf23b499fb6b7f22c4f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 18 Sep 2015 00:28:45 -0400
+Subject: [PATCH] snmplib/keytools.c: Don't check for return from
+ EVP_MD_CTX_init()
+
+EVP_MD_CTX_init() API returns void, it fixes errors with new compilers
+
+snmplib/keytools.c: In function 'generate_Ku': error: invalid use of void expression
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ snmplib/keytools.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/snmplib/keytools.c b/snmplib/keytools.c
+index 388e655..5a66898 100644
+--- a/snmplib/keytools.c
++++ b/snmplib/keytools.c
+@@ -183,10 +183,7 @@ generate_Ku(const oid * hashtype, u_int hashtype_len,
+ ctx = EVP_MD_CTX_create();
+ #else
+ ctx = malloc(sizeof(*ctx));
+- if (!EVP_MD_CTX_init(ctx)) {
+- rval = SNMPERR_GENERR;
+- goto generate_Ku_quit;
+- }
++ EVP_MD_CTX_init(ctx);
+ #endif
+ if (!EVP_DigestInit(ctx, hashfn)) {
+ rval = SNMPERR_GENERR;
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0006-get_pid_from_inode-Include-limit.h.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0006-get_pid_from_inode-Include-limit.h.patch
new file mode 100644
index 0000000000..6a0161ae27
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0006-get_pid_from_inode-Include-limit.h.patch
@@ -0,0 +1,29 @@
+From 95868615a04b4a6f0dd5997c9726422828426116 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 22 Jul 2016 18:34:39 +0000
+Subject: [PATCH] get_pid_from_inode: Include limit.h
+
+PATH_MAX and NAME_MAX are required by this file
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ agent/mibgroup/util_funcs/get_pid_from_inode.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/agent/mibgroup/util_funcs/get_pid_from_inode.c b/agent/mibgroup/util_funcs/get_pid_from_inode.c
+index 5788e1d..ea380a6 100644
+--- a/agent/mibgroup/util_funcs/get_pid_from_inode.c
++++ b/agent/mibgroup/util_funcs/get_pid_from_inode.c
+@@ -6,6 +6,7 @@
+ #include <net-snmp/output_api.h>
+
+ #include <ctype.h>
++#include <limits.h>
+ #include <stdio.h>
+ #ifdef HAVE_STDLIB_H
+ #include <stdlib.h>
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0007-configure-fix-incorrect-variable.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0007-configure-fix-incorrect-variable.patch
new file mode 100644
index 0000000000..5d394eec14
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0007-configure-fix-incorrect-variable.patch
@@ -0,0 +1,30 @@
+From 385fa343cf178ccfe2c9a9fd7795d0db3c959fdd Mon Sep 17 00:00:00 2001
+From: Wenlin Kang <wenlin.kang@windriver.com>
+Date: Wed, 24 May 2017 17:10:20 +0800
+Subject: [PATCH] configure: fix incorrect variable
+
+For cross compile platform, this variable will not be correct, so fix it.
+
+Upstream-Status: Inappropriate [cross compile specific]
+
+Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 1c1182e..f947b8c 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -173,7 +173,7 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt
+ #
+ # override LD_RUN_PATH to avoid dependencies on the build directory
+ perlmodules: perlmakefiles subdirs
+- @(cd perl ; $(MAKE) LD_RUN_PATH="$(libdir):`$(PERL) -e 'use Config; print qq($$Config{archlibexp}/CORE);'`") ; \
++ @(cd perl ; $(MAKE) LD_RUN_PATH="$(libdir):`$(PERL) -e 'use Config; print qq($$Config{installprivlib}/CORE);'`") ; \
+ if test $$? != 0 ; then \
+ exit 1 ; \
+ fi
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0008-net-snmp-fix-engineBoots-value-on-SIGHUP.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0008-net-snmp-fix-engineBoots-value-on-SIGHUP.patch
new file mode 100644
index 0000000000..a57c4c8f14
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0008-net-snmp-fix-engineBoots-value-on-SIGHUP.patch
@@ -0,0 +1,46 @@
+From b5cbe0953a7e7a3c77c7ec69dfe81254475f08c0 Mon Sep 17 00:00:00 2001
+From: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
+Date: Wed, 9 Jun 2021 15:47:30 +0900
+Subject: [PATCH] net snmp: fix engineBoots value on SIGHUP
+
+Upstream-Status: Pending
+
+Signed-off-by: Marian Florea <marian.florea@windriver.com>
+Signed-off-by: Li Zhou <li.zhou@windriver.com>
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ agent/snmpd.c | 1 +
+ snmplib/snmpv3.c | 4 ++--
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/agent/snmpd.c b/agent/snmpd.c
+index fe31c87..d9f68dd 100644
+--- a/agent/snmpd.c
++++ b/agent/snmpd.c
+@@ -1169,6 +1169,7 @@ snmpd_reconfig(void)
+ snmp_log(LOG_INFO, "NET-SNMP version %s restarted\n",
+ netsnmp_get_version());
+ update_config();
++ snmp_store(app_name);
+ send_easy_trap(SNMP_TRAP_ENTERPRISESPECIFIC, 3);
+ #ifdef HAVE_SIGPROCMASK
+ ret = sigprocmask(SIG_UNBLOCK, &set, NULL);
+diff --git a/snmplib/snmpv3.c b/snmplib/snmpv3.c
+index be9256f..d17d2e3 100644
+--- a/snmplib/snmpv3.c
++++ b/snmplib/snmpv3.c
+@@ -1071,9 +1071,9 @@ init_snmpv3_post_config(int majorid, int minorid, void *serverarg,
+ /*
+ * if our engineID has changed at all, the boots record must be set to 1
+ */
+- if (engineIDLen != oldEngineIDLength ||
++ if (oldEngineIDLength != (size_t)0 && (engineIDLen != oldEngineIDLength ||
+ oldEngineID == NULL || c_engineID == NULL ||
+- memcmp(oldEngineID, c_engineID, engineIDLen) != 0) {
++ memcmp(oldEngineID, c_engineID, engineIDLen) != 0)) {
+ engineBoots = 1;
+ }
+
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0009-net-snmp-fix-for-disable-des.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0009-net-snmp-fix-for-disable-des.patch
new file mode 100644
index 0000000000..36a676fb02
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0009-net-snmp-fix-for-disable-des.patch
@@ -0,0 +1,32 @@
+From aa1f157c675da248ed186e020d17cb2528d0be12 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 22 Jun 2017 10:25:08 +0800
+Subject: [PATCH] net-snmp: fix for --disable-des
+
+Include des.h only if it's found in openssl so that
+the --disable-des works correctly.
+
+Upstream-Status: Submitted [net-snmp-coders@lists.sourceforge.net]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ snmplib/scapi.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/snmplib/scapi.c b/snmplib/scapi.c
+index ac77004..7545bfa 100644
+--- a/snmplib/scapi.c
++++ b/snmplib/scapi.c
+@@ -86,7 +86,9 @@ netsnmp_feature_child_of(usm_scapi, usm_support);
+ #include <openssl/hmac.h>
+ #include <openssl/evp.h>
+ #include <openssl/rand.h>
++#ifdef HAVE_OPENSSL_DES_H
+ #include <openssl/des.h>
++#endif
+ #ifdef HAVE_AES
+ #include <openssl/aes.h>
+ #endif
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0010-net-snmp-Reproducibility-Don-t-check-build-host-for.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0010-net-snmp-Reproducibility-Don-t-check-build-host-for.patch
new file mode 100644
index 0000000000..246ce2b8d9
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0010-net-snmp-Reproducibility-Don-t-check-build-host-for.patch
@@ -0,0 +1,34 @@
+From a96140995d10660046146d9fa75faa5f7faabab0 Mon Sep 17 00:00:00 2001
+From: "douglas.royds" <douglas.royds@taitradio.com>
+Date: Wed, 21 Nov 2018 13:52:18 +1300
+Subject: [PATCH] net-snmp: Reproducibility: Don't check build host for
+
+Reproducible build: Don't check for /etc/printcap on the build machine when
+cross-compiling. Use AC_CHECK_FILE to set the cached variable
+ac_cv_file__etc_printcap instead. When cross-compiling, this variable should be
+set in the environment to "yes" or "no" as appropriate for the target platform.
+
+Upstream-Status: Pending
+---
+ configure.d/config_os_misc4 | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.d/config_os_misc4 b/configure.d/config_os_misc4
+index 4c445d6..099257f 100644
+--- a/configure.d/config_os_misc4
++++ b/configure.d/config_os_misc4
+@@ -99,9 +99,9 @@ if test x$LPSTAT_PATH != x; then
+ [Path to the lpstat command])
+ AC_DEFINE(HAVE_LPSTAT, 1, [Set if the lpstat command is available])
+ fi
+-if test -r /etc/printcap; then
++AC_CHECK_FILE([/etc/printcap],
+ AC_DEFINE(HAVE_PRINTCAP, 1, [Set if /etc/printcap exists])
+-fi
++)
+
+
+ # Check ps args
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0011-ac_add_search_path.m4-keep-consistent-between-32bit-.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0011-ac_add_search_path.m4-keep-consistent-between-32bit-.patch
new file mode 100644
index 0000000000..1e845c4e63
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0011-ac_add_search_path.m4-keep-consistent-between-32bit-.patch
@@ -0,0 +1,40 @@
+From 85a6c5017a2cd18a5a66afcb3f6a02276c101ad0 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 29 Jan 2021 08:49:15 +0000
+Subject: [PATCH] ac_add_search_path.m4: keep consistent between 32bit and
+ 64bit
+
+With configure option "--with-openssl=${STAGING_EXECPREFIXDIR}", it behaves
+differently between 32bit and 64bit system as the openssl lib resides under
+/build/tmp/work/corei7-64-wrs-linux/net-snmp/5.9-r0/recipe-sysroot/usr/lib64
+for 64bit system, but resides under [1] for 32bit system.
+
+So add the patch to fix the gap between 32bit and 64bit system.
+
+[1] /build/tmp/work/corei7-64-wrs-linux/net-snmp/5.9-r0/recipe-sysroot/usr/lib
+
+Upstream-Status: Inappropriate [configuration specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ m4/ac_add_search_path.m4 | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/m4/ac_add_search_path.m4 b/m4/ac_add_search_path.m4
+index 8e0a819..e9585bc 100644
+--- a/m4/ac_add_search_path.m4
++++ b/m4/ac_add_search_path.m4
+@@ -3,8 +3,8 @@ dnl Add a search path to the LIBS and CPPFLAGS variables
+ dnl
+ AC_DEFUN([AC_ADD_SEARCH_PATH],[
+ if test "x$1" != x -a -d $1; then
+- if test -d $1/lib; then
+- LDFLAGS="-L$1/lib $LDFLAGS"
++ if test -d $1/${libdir:5}; then
++ LDFLAGS="-L$1/${libdir:5} $LDFLAGS"
+ fi
+ if test -d $1/include; then
+ CPPFLAGS="-I$1/include $CPPFLAGS"
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0012-Fix-configuration-of-NETSNMP_FD_MASK_TYPE.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0012-Fix-configuration-of-NETSNMP_FD_MASK_TYPE.patch
new file mode 100644
index 0000000000..9d4b769930
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0012-Fix-configuration-of-NETSNMP_FD_MASK_TYPE.patch
@@ -0,0 +1,43 @@
+From 21ea0b9ce5cc9445f7ffd7a9020b816681e16284 Mon Sep 17 00:00:00 2001
+From: Adam Gajda <adgajda@users.noreply.github.com>
+Date: Mon, 2 Oct 2023 16:40:31 +0200
+Subject: [PATCH] Fix configuration of NETSNMP_FD_MASK_TYPE
+
+Upstream-Status: Backport
+[https://github.com/net-snmp/net-snmp/commit/af1b7f77975bbb2fcbdb3f005f8cb010d1d33cd3]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ configure | 2 +-
+ configure.d/config_project_types | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index 907d441..f4468c6 100755
+--- a/configure
++++ b/configure
+@@ -31638,7 +31638,7 @@ CFLAGS="$CFLAGS -Werror"
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the type of fd_set::fds_bits" >&5
+ printf %s "checking for the type of fd_set::fds_bits... " >&6; }
+-for type in __fd_mask __int32_t unknown; do
++for type in __fd_mask __int32_t long\ int unknown; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+diff --git a/configure.d/config_project_types b/configure.d/config_project_types
+index 1b4c66b..a78e8eb 100644
+--- a/configure.d/config_project_types
++++ b/configure.d/config_project_types
+@@ -66,7 +66,7 @@ netsnmp_save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -Werror"
+
+ AC_MSG_CHECKING([for the type of fd_set::fds_bits])
+-for type in __fd_mask __int32_t unknown; do
++for type in __fd_mask __int32_t long\ int unknown; do
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
+ #include <sys/select.h>
+ #include <stddef.h>
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch
deleted file mode 100644
index 409c1e03c8..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From ab1d77c52e84746e75506a2870783806bc77f396 Mon Sep 17 00:00:00 2001
-From: "Roy.Li" <rongqing.li@windriver.com>
-Date: Fri, 16 Jan 2015 14:14:01 +0800
-Subject: [PATCH] net-snmp: fix "libtool --finish"
-
-LIB_LDCONFIG_CMD failed since it is using a host dir $(libdir)
-which is /usr/lib64 does not exist on host when compile 64bit
-image.
-
-In fact, configuring dynamic linker run-time bindings is meaningless
-at this step, If it is needed, Poky would write ldconfig scripts to
-rpm-postinst for each recipe while do_package, in package.bbclass.
-
-Upstream-Status: Inappropriate [cross compile specific]
-
-Signed-off-by: Roy.Li <rongqing.li@windriver.com>
-
----
- Makefile.top | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.top b/Makefile.top
-index a962c54..1ba5607 100644
---- a/Makefile.top
-+++ b/Makefile.top
-@@ -89,7 +89,7 @@ LIBREVISION = 0
- LIB_LD_CMD = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) @LD_NO_UNDEFINED@ -o
- LIB_EXTENSION = la
- LIB_VERSION =
--LIB_LDCONFIG_CMD = $(LIBTOOL) --mode=finish $(INSTALL_PREFIX)$(libdir)
-+LIB_LDCONFIG_CMD = echo "do not ldconfig\n"
- LINK = $(LIBTOOL) --mode=link $(LINKCC)
- # RANLIB = @RANLIB@
- RANLIB = :
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch
deleted file mode 100644
index 35e93d636e..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 5ad4eab43c1ea63ff343bba64d576440e8783e75 Mon Sep 17 00:00:00 2001
-From: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
-Date: Wed, 9 Jun 2021 15:47:30 +0900
-Subject: [PATCH] net snmp: fix engineBoots value on SIGHUP
-
-Upstream-Status: Pending
-
-Signed-off-by: Marian Florea <marian.florea@windriver.com>
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
-Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
-
----
- agent/snmpd.c | 1 +
- snmplib/snmpv3.c | 4 ++--
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/agent/snmpd.c b/agent/snmpd.c
-index 90de12d..1ccc4db 100644
---- a/agent/snmpd.c
-+++ b/agent/snmpd.c
-@@ -1169,6 +1169,7 @@ snmpd_reconfig(void)
- snmp_log(LOG_INFO, "NET-SNMP version %s restarted\n",
- netsnmp_get_version());
- update_config();
-+ snmp_store(app_name);
- send_easy_trap(SNMP_TRAP_ENTERPRISESPECIFIC, 3);
- #ifdef HAVE_SIGPROCMASK
- ret = sigprocmask(SIG_UNBLOCK, &set, NULL);
-diff --git a/snmplib/snmpv3.c b/snmplib/snmpv3.c
-index 7b1746b..4a17e0d 100644
---- a/snmplib/snmpv3.c
-+++ b/snmplib/snmpv3.c
-@@ -1059,9 +1059,9 @@ init_snmpv3_post_config(int majorid, int minorid, void *serverarg,
- /*
- * if our engineID has changed at all, the boots record must be set to 1
- */
-- if (engineIDLen != oldEngineIDLength ||
-+ if (oldEngineIDLength != (size_t)0 && (engineIDLen != oldEngineIDLength ||
- oldEngineID == NULL || c_engineID == NULL ||
-- memcmp(oldEngineID, c_engineID, engineIDLen) != 0) {
-+ memcmp(oldEngineID, c_engineID, engineIDLen) != 0)) {
- engineBoots = 1;
- }
-
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch
deleted file mode 100644
index c5a453abe2..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From ad65b106d3cb3c6e595381be1c45a73c1ef6eb5e Mon Sep 17 00:00:00 2001
-From: Chong Lu <Chong.Lu@windriver.com>
-Date: Thu, 28 May 2020 09:46:34 -0500
-Subject: [PATCH] net-snmp: add knob whether nlist.h are checked
-
-Previously, it still was checked when there was no nlish.h in sysroots directory.
-Add knob to decide whether nlist.h are checked or not.
-
-Upstream-status: Pending
-
-Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
-
----
- configure.d/config_os_headers | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/configure.d/config_os_headers b/configure.d/config_os_headers
-index b9c8c31..01c3376 100644
---- a/configure.d/config_os_headers
-+++ b/configure.d/config_os_headers
-@@ -37,6 +37,7 @@ AC_CHECK_HEADERS([getopt.h pthread.h regex.h ] dnl
- [sys/timeb.h ])
-
- # Library and Agent:
-+if test "x$with_elf" != "xno"; then
- AC_CHECK_HEADERS([nlist.h],,,[
- AC_INCLUDES_DEFAULT
- [
-@@ -44,6 +45,7 @@ AC_INCLUDES_DEFAULT
- #define LIBBSD_DISABLE_DEPRECATED 1
- #endif
- ]])
-+fi
-
- # Library:
- AC_CHECK_HEADERS([crt_externs.h ] dnl
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch
deleted file mode 100644
index c382c02d89..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From b1b9980853b1083f0c8b9f628f8b4c3a484d4f91 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Thu, 22 Jun 2017 10:25:08 +0800
-Subject: [PATCH] net-snmp: fix for --disable-des
-
-Include des.h only if it's found in openssl so that
-the --disable-des works correctly.
-
-Upstream-Status: Submitted [net-snmp-coders@lists.sourceforge.net]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
----
- snmplib/scapi.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/snmplib/scapi.c b/snmplib/scapi.c
-index 54fdd5c..0f7e931 100644
---- a/snmplib/scapi.c
-+++ b/snmplib/scapi.c
-@@ -85,7 +85,9 @@ netsnmp_feature_child_of(usm_scapi, usm_support);
- #include <openssl/hmac.h>
- #include <openssl/evp.h>
- #include <openssl/rand.h>
-+#ifdef HAVE_OPENSSL_DES_H
- #include <openssl/des.h>
-+#endif
- #ifdef HAVE_AES
- #include <openssl/aes.h>
- #endif
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch
deleted file mode 100644
index 09ca532a7f..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 36a5656db7ea75dd15f35a6c1728937c6e2b901c Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Wed, 14 Jan 2015 15:10:06 +0800
-Subject: [PATCH] testing: add the output format for ptest
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
----
- testing/RUNTESTS | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/testing/RUNTESTS b/testing/RUNTESTS
-index 6715831..a2b6fb8 100755
---- a/testing/RUNTESTS
-+++ b/testing/RUNTESTS
-@@ -17,13 +17,17 @@ failed_count=0
- rm -f failed_tests
- for i in "${srcdir}"/testing/fulltests/default/T*$1*; do
- echo "RUNNING $i"
-+ test_name=`basename $i`
- ${srcdir}/testing/fulltests/support/simple_run $i
- if [ $? = 0 ]; then
-+ echo "PASS: $test_name"
- success_count=`expr $success_count + 1`
- else
-+ echo "FAIL: $test_name"
- failed_count=`expr $failed_count + 1`
- echo "$i" >> failed_tests
- fi
-+ echo
- done
-
- if [ -f failed_tests ]; then
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch
deleted file mode 100644
index c0b51c51e3..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From b923cd38e2503b86aedf66b767fd7f51c9f25645 Mon Sep 17 00:00:00 2001
-From: "douglas.royds" <douglas.royds@taitradio.com>
-Date: Wed, 21 Nov 2018 13:52:18 +1300
-Subject: [PATCH] net-snmp: Reproducibility: Don't check build host for
-
-Reproducible build: Don't check for /etc/printcap on the build machine when
-cross-compiling. Use AC_CHECK_FILE to set the cached variable
-ac_cv_file__etc_printcap instead. When cross-compiling, this variable should be
-set in the environment to "yes" or "no" as appropriate for the target platform.
-
----
- configure.d/config_os_misc4 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.d/config_os_misc4 b/configure.d/config_os_misc4
-index b6864d9..07ca922 100644
---- a/configure.d/config_os_misc4
-+++ b/configure.d/config_os_misc4
-@@ -99,9 +99,9 @@ if test x$LPSTAT_PATH != x; then
- [Path to the lpstat command])
- AC_DEFINE(HAVE_LPSTAT, 1, [Set if the lpstat command is available])
- fi
--if test -r /etc/printcap; then
-+AC_CHECK_FILE([/etc/printcap],
- AC_DEFINE(HAVE_PRINTCAP, 1, [Set if /etc/printcap exists])
--fi
-+)
-
-
- # Check ps args
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/run-ptest b/meta-networking/recipes-protocols/net-snmp/net-snmp/run-ptest
index 76514c202e..76514c202e 100755..100644
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/run-ptest
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/run-ptest
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.3.bb b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.3.bb
deleted file mode 100644
index 7af5147566..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.3.bb
+++ /dev/null
@@ -1,292 +0,0 @@
-SUMMARY = "Various tools relating to the Simple Network Management Protocol"
-HOMEPAGE = "http://www.net-snmp.org/"
-SECTION = "net"
-LICENSE = "BSD-3-Clause & MIT"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=9d100a395a38584f2ec18a8275261687"
-
-DEPENDS = "openssl"
-DEPENDS:append:class-target = " pciutils"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.tar.gz \
- file://init \
- file://snmpd.conf \
- file://snmptrapd.conf \
- file://snmpd.service \
- file://snmptrapd.service \
- file://net-snmp-add-knob-whether-nlist.h-are-checked.patch \
- file://fix-libtool-finish.patch \
- file://net-snmp-testing-add-the-output-format-for-ptest.patch \
- file://run-ptest \
- file://0001-config_os_headers-Error-Fix.patch \
- file://0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch \
- file://0001-get_pid_from_inode-Include-limit.h.patch \
- file://0004-configure-fix-incorrect-variable.patch \
- file://net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch \
- file://net-snmp-fix-for-disable-des.patch \
- file://reproducibility-have-printcap.patch \
- file://0001-ac_add_search_path.m4-keep-consistent-between-32bit.patch \
- "
-SRC_URI[sha256sum] = "2097f29b7e1bf3f1300b4bae52fa2308d0bb8d5d3998dbe02f9462a413a2ef0a"
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/net-snmp/files/net-snmp/"
-UPSTREAM_CHECK_REGEX = "/net-snmp/(?P<pver>\d+(\.\d+)+)/"
-
-inherit autotools-brokensep update-rc.d siteinfo systemd pkgconfig perlnative ptest multilib_script multilib_header
-
-EXTRA_OEMAKE = "INSTALL_PREFIX=${D} OTHERLDFLAGS='${LDFLAGS}' HOST_CPPFLAGS='${BUILD_CPPFLAGS}'"
-
-PARALLEL_MAKE = ""
-CCACHE = ""
-CLEANBROKEN = "1"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} des smux"
-PACKAGECONFIG[des] = "--enable-des, --disable-des"
-PACKAGECONFIG[elfutils] = "--with-elf, --without-elf, elfutils"
-PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6"
-PACKAGECONFIG[libnl] = "--with-nl, --without-nl, libnl"
-PACKAGECONFIG[perl] = "--enable-embedded-perl --with-perl-modules=yes, --disable-embedded-perl --with-perl-modules=no, perl"
-PACKAGECONFIG[smux] = ""
-PACKAGECONFIG[systemd] = "--with-systemd, --without-systemd"
-
-EXTRA_OECONF = " \
- --enable-shared \
- --disable-manuals \
- --with-defaults \
- --with-install-prefix=${D} \
- --with-persistent-directory=${localstatedir}/lib/net-snmp \
- --with-endianness=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
- --with-mib-modules='${MIB_MODULES}' \
-"
-
-MIB_MODULES = ""
-MIB_MODULES:append = " ${@bb.utils.filter('PACKAGECONFIG', 'smux', d)}"
-
-CACHED_CONFIGUREVARS = " \
- ac_cv_header_valgrind_valgrind_h=no \
- ac_cv_header_valgrind_memcheck_h=no \
- ac_cv_ETC_MNTTAB=/etc/mtab \
- lt_cv_shlibpath_overrides_runpath=yes \
- ac_cv_path_UNAMEPROG=${base_bindir}/uname \
- ac_cv_path_PSPROG=${base_bindir}/ps \
- ac_cv_file__etc_printcap=no \
- NETSNMP_CONFIGURE_OPTIONS= \
-"
-PERLPROG = "${bindir}/env perl"
-PERLPROG:class-native = "${bindir_native}/env perl"
-PERLPROG:append = "${@bb.utils.contains('PACKAGECONFIG', 'perl', ' -I${WORKDIR}', '', d)}"
-export PERLPROG
-
-HAS_PERL = "${@bb.utils.contains('PACKAGECONFIG', 'perl', '1', '0', d)}"
-
-PTEST_BUILD_HOST_FILES += "net-snmp-config gen-variables"
-
-do_configure:prepend() {
- sed -i -e "s|I/usr/include|I${STAGING_INCDIR}|g" \
- "${S}"/configure \
- "${S}"/configure.d/config_os_libs2
-
- if [ "${HAS_PERL}" = "1" ]; then
- # this may need to be changed when package perl has any change.
- cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl?/*/Config.pm ${WORKDIR}/
- cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl?/*/*/Config_heavy.pl ${WORKDIR}/
- sed -e "s@libpth => '/usr/lib.*@libpth => '${STAGING_DIR_TARGET}/${libdir} ${STAGING_DIR_TARGET}/${base_libdir}',@g" \
- -e "s@privlibexp => '/usr@privlibexp => '${STAGING_DIR_TARGET}/usr@g" \
- -e "s@scriptdir => '/usr@scriptdir => '${STAGING_DIR_TARGET}/usr@g" \
- -e "s@sitearchexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \
- -e "s@sitelibexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \
- -e "s@vendorarchexp => '/usr@vendorarchexp => '${STAGING_DIR_TARGET}/usr@g" \
- -e "s@vendorlibexp => '/usr@vendorlibexp => '${STAGING_DIR_TARGET}/usr@g" \
- -i ${WORKDIR}/Config.pm
- fi
-
-}
-
-do_configure:append() {
- sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=${STAGING_DIR_TARGET}\$\{includedir\}@g" \
- -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L${STAGING_DIR_TARGET}\$\{libdir\}@g" \
- -e "s@^NSC_LDFLAGS=\"-L.* @NSC_LDFLAGS=\"-L${STAGING_DIR_TARGET}\$\{libdir\} @g" \
- -i ${B}/net-snmp-config
-}
-
-do_install:append() {
- install -d ${D}${sysconfdir}/snmp
- install -d ${D}${sysconfdir}/init.d
- install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/snmpd
- install -m 644 ${WORKDIR}/snmpd.conf ${D}${sysconfdir}/snmp/
- install -m 644 ${WORKDIR}/snmptrapd.conf ${D}${sysconfdir}/snmp/
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/snmpd.service ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/snmptrapd.service ${D}${systemd_unitdir}/system
- sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \
- -i ${D}${bindir}/net-snmp-create-v3-user
- sed -e 's@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g' \
- -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \
- -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
- -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
- -e 's@[^ ]*--sysroot=[^ "]*@@g' \
- -e 's@[^ ]*--with-libtool-sysroot=[^ "]*@@g' \
- -e 's@[^ ]*--with-install-prefix=[^ "]*@@g' \
- -e 's@[^ ]*PKG_CONFIG_PATH=[^ "]*@@g' \
- -e 's@[^ ]*PKG_CONFIG_LIBDIR=[^ "]*@@g' \
- -i ${D}${bindir}/net-snmp-config
-
- sed -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \
- -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
- -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
- -i ${D}${libdir}/pkgconfig/netsnmp*.pc
-
- # ${STAGING_DIR_HOST} is empty for native builds, and the sed command below
- # will result in errors if run for native.
- if [ "${STAGING_DIR_HOST}" ]; then
- sed -e 's@${STAGING_DIR_HOST}@@g' \
- -i ${D}${bindir}/net-snmp-config ${D}${libdir}/pkgconfig/netsnmp*.pc
- fi
-
- sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=\$\{includedir\}@g" \
- -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L\$\{libdir\}@g" \
- -e "s@^NSC_LDFLAGS=\"-L.* @NSC_LDFLAGS=\"-L\$\{libdir\} @g" \
- -i ${D}${bindir}/net-snmp-config
-
- oe_multilib_header net-snmp/net-snmp-config.h
-
- if [ "${HAS_PERL}" = "1" ]; then
- find ${D}${libdir}/ -type f -name "perllocal.pod" | xargs rm -f
- fi
-}
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}
- for i in ${S}/dist ${S}/include ${B}/include ${S}/mibs ${S}/configure \
- ${B}/net-snmp-config ${S}/testing; do
- if [ -e "$i" ]; then
- cp -R --no-dereference --preserve=mode,links -v "$i" ${D}${PTEST_PATH}
- fi
- done
- echo `autoconf -V|awk '/autoconf/{print $NF}'` > ${D}${PTEST_PATH}/dist/autoconf-version
-
- rmdlist="${D}${PTEST_PATH}/dist/net-snmp-solaris-build"
- for i in $rmdlist; do
- if [ -d "$i" ]; then
- rm -rf "$i"
- fi
- done
-}
-
-SYSROOT_PREPROCESS_FUNCS += "net_snmp_sysroot_preprocess"
-SNMP_DBGDIR = "/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
-
-net_snmp_sysroot_preprocess () {
- if [ -e ${D}${bindir}/net-snmp-config ]; then
- install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
- install -m 755 ${D}${bindir}/net-snmp-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
- sed -e "s@-I/usr/include@-I${STAGING_INCDIR}@g" \
- -e "s@^prefix=.*@prefix=${STAGING_DIR_HOST}${prefix}@g" \
- -e "s@^exec_prefix=.*@exec_prefix=${STAGING_EXECPREFIXDIR}@g" \
- -e "s@^includedir=.*@includedir=${STAGING_INCDIR}@g" \
- -e "s@^libdir=.*@libdir=${STAGING_LIBDIR}@g" \
- -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=${S}@g" \
- -e "s@-ffile-prefix-map=${SNMP_DBGDIR}@-ffile-prefix-map=${WORKDIR}=${SNMP_DBGDIR}@g" \
- -e "s@-fdebug-prefix-map=${SNMP_DBGDIR}@-fdebug-prefix-map=${WORKDIR}=${SNMP_DBGDIR}@g" \
- -e "s@-fdebug-prefix-map= -fdebug-prefix-map=@-fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
- -fdebug-prefix-map=${STAGING_DIR_HOST}=@g" \
- -e "s@--sysroot=@--sysroot=${STAGING_DIR_HOST}@g" \
- -e "s@--with-libtool-sysroot=@--with-libtool-sysroot=${STAGING_DIR_HOST}@g" \
- -e "s@--with-install-prefix=@--with-install-prefix=${D}@g" \
- -i ${SYSROOT_DESTDIR}${bindir_crossscripts}/net-snmp-config
- fi
-}
-
-PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client \
- ${PN}-server-snmpd ${PN}-server-snmptrapd \
- ${PN}-lib-netsnmp ${PN}-lib-agent ${PN}-lib-helpers \
- ${PN}-lib-mibs ${PN}-lib-trapd"
-
-# perl module
-PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'perl', '${PN}-perl-modules', '', d)}"
-
-ALLOW_EMPTY:${PN} = "1"
-ALLOW_EMPTY:${PN}-server = "1"
-ALLOW_EMPTY:${PN}-libs = "1"
-
-FILES:${PN}-perl-modules = "${libdir}/perl?/*"
-RDEPENDS:${PN}-perl-modules = "perl"
-
-FILES:${PN}-libs = ""
-FILES:${PN}-mibs = "${datadir}/snmp/mibs"
-FILES:${PN}-server-snmpd = "${sbindir}/snmpd \
- ${sysconfdir}/snmp/snmpd.conf \
- ${sysconfdir}/init.d \
- ${systemd_unitdir}/system/snmpd.service \
-"
-
-FILES:${PN}-server-snmptrapd = "${sbindir}/snmptrapd \
- ${sysconfdir}/snmp/snmptrapd.conf \
- ${systemd_unitdir}/system/snmptrapd.service \
-"
-
-FILES:${PN}-lib-netsnmp = "${libdir}/libnetsnmp${SOLIBS}"
-FILES:${PN}-lib-agent = "${libdir}/libnetsnmpagent${SOLIBS}"
-FILES:${PN}-lib-helpers = "${libdir}/libnetsnmphelpers${SOLIBS}"
-FILES:${PN}-lib-mibs = "${libdir}/libnetsnmpmibs${SOLIBS}"
-FILES:${PN}-lib-trapd = "${libdir}/libnetsnmptrapd${SOLIBS}"
-
-FILES:${PN} = ""
-FILES:${PN}-client = "${bindir}/* ${datadir}/snmp/"
-FILES:${PN}-dbg += "${libdir}/.debug/ ${sbindir}/.debug/ ${bindir}/.debug/"
-FILES:${PN}-dev += "${bindir}/mib2c \
- ${bindir}/mib2c-update \
- ${bindir}/net-snmp-config \
- ${bindir}/net-snmp-create-v3-user \
-"
-
-CONFFILES:${PN}-server-snmpd = "${sysconfdir}/snmp/snmpd.conf"
-CONFFILES:${PN}-server-snmptrapd = "${sysconfdir}/snmp/snmptrapd.conf"
-
-INITSCRIPT_PACKAGES = "${PN}-server-snmpd"
-INITSCRIPT_NAME:${PN}-server-snmpd = "snmpd"
-INITSCRIPT_PARAMS:${PN}-server-snmpd = "start 90 2 3 4 5 . stop 60 0 1 6 ."
-
-SYSTEMD_PACKAGES = "${PN}-server-snmpd \
- ${PN}-server-snmptrapd"
-
-SYSTEMD_SERVICE:${PN}-server-snmpd = "snmpd.service"
-SYSTEMD_SERVICE:${PN}-server-snmptrapd = "snmptrapd.service"
-
-RDEPENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'net-snmp-perl-modules', '', d)}"
-RDEPENDS:${PN} += "net-snmp-client"
-RDEPENDS:${PN}-server-snmpd += "net-snmp-mibs"
-RDEPENDS:${PN}-server-snmptrapd += "net-snmp-server-snmpd ${PN}-lib-trapd"
-RDEPENDS:${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd"
-RDEPENDS:${PN}-client += "net-snmp-mibs net-snmp-libs"
-RDEPENDS:${PN}-libs += "libpci \
- ${PN}-lib-netsnmp \
- ${PN}-lib-agent \
- ${PN}-lib-helpers \
- ${PN}-lib-mibs \
-"
-RDEPENDS:${PN}-ptest += "perl \
- perl-module-test \
- perl-module-file-basename \
- perl-module-getopt-long \
- perl-module-file-temp \
- perl-module-data-dumper \
-"
-RDEPENDS:${PN}-dev = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})"
-RRECOMMENDS:${PN}-dbg = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})"
-
-RPROVIDES:${PN}-server-snmpd += "${PN}-server-snmpd-systemd"
-RREPLACES:${PN}-server-snmpd += "${PN}-server-snmpd-systemd"
-RCONFLICTS:${PN}-server-snmpd += "${PN}-server-snmpd-systemd"
-
-RPROVIDES:${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd"
-RREPLACES:${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd"
-RCONFLICTS:${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd"
-
-LEAD_SONAME = "libnetsnmp.so"
-
-MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/net-snmp-config"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.4.bb b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.4.bb
new file mode 100644
index 0000000000..395b02df00
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.4.bb
@@ -0,0 +1,296 @@
+SUMMARY = "Various tools relating to the Simple Network Management Protocol"
+HOMEPAGE = "http://www.net-snmp.org/"
+SECTION = "net"
+LICENSE = "BSD-3-Clause & MIT"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=9d100a395a38584f2ec18a8275261687"
+
+DEPENDS = "openssl"
+DEPENDS:append:class-target = " pciutils"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.tar.gz \
+ file://init \
+ file://snmpd.conf \
+ file://snmptrapd.conf \
+ file://snmpd.service \
+ file://snmptrapd.service \
+ file://run-ptest \
+ file://0001-net-snmp-add-knob-whether-nlist.h-are-checked.patch \
+ file://0002-net-snmp-fix-libtool-finish.patch \
+ file://0003-testing-add-the-output-format-for-ptest.patch \
+ file://0004-config_os_headers-Error-Fix.patch \
+ file://0005-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch \
+ file://0006-get_pid_from_inode-Include-limit.h.patch \
+ file://0007-configure-fix-incorrect-variable.patch \
+ file://0008-net-snmp-fix-engineBoots-value-on-SIGHUP.patch \
+ file://0009-net-snmp-fix-for-disable-des.patch \
+ file://0010-net-snmp-Reproducibility-Don-t-check-build-host-for.patch \
+ file://0011-ac_add_search_path.m4-keep-consistent-between-32bit-.patch \
+ file://0012-Fix-configuration-of-NETSNMP_FD_MASK_TYPE.patch \
+ file://0001-Android-Fix-the-build.patch \
+ "
+SRC_URI[sha256sum] = "8b4de01391e74e3c7014beb43961a2d6d6fa03acc34280b9585f4930745b0544"
+
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/net-snmp/files/net-snmp/"
+UPSTREAM_CHECK_REGEX = "/net-snmp/(?P<pver>\d+(\.\d+)+)/"
+
+inherit autotools-brokensep update-rc.d siteinfo systemd pkgconfig perlnative ptest multilib_script multilib_header
+
+EXTRA_OEMAKE = "INSTALL_PREFIX=${D} OTHERLDFLAGS='${LDFLAGS}' HOST_CPPFLAGS='${BUILD_CPPFLAGS}'"
+
+PARALLEL_MAKE = ""
+CCACHE = ""
+CLEANBROKEN = "1"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} des smux"
+PACKAGECONFIG[des] = "--enable-des, --disable-des"
+PACKAGECONFIG[elfutils] = "--with-elf, --without-elf, elfutils"
+PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6"
+PACKAGECONFIG[libnl] = "--with-nl, --without-nl, libnl"
+PACKAGECONFIG[perl] = "--enable-embedded-perl --with-perl-modules=yes, --disable-embedded-perl --with-perl-modules=no, perl"
+PACKAGECONFIG[smux] = ""
+PACKAGECONFIG[systemd] = "--with-systemd, --without-systemd"
+
+EXTRA_OECONF = " \
+ --enable-shared \
+ --disable-manuals \
+ --with-defaults \
+ --with-install-prefix=${D} \
+ --with-persistent-directory=${localstatedir}/lib/net-snmp \
+ --with-endianness=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
+ --with-mib-modules='${MIB_MODULES}' \
+"
+
+MIB_MODULES = ""
+MIB_MODULES:append = " ${@bb.utils.filter('PACKAGECONFIG', 'smux', d)}"
+
+CACHED_CONFIGUREVARS = " \
+ ac_cv_header_valgrind_valgrind_h=no \
+ ac_cv_header_valgrind_memcheck_h=no \
+ ac_cv_ETC_MNTTAB=/etc/mtab \
+ lt_cv_shlibpath_overrides_runpath=yes \
+ ac_cv_path_UNAMEPROG=${base_bindir}/uname \
+ ac_cv_path_PSPROG=${base_bindir}/ps \
+ ac_cv_file__etc_printcap=no \
+ NETSNMP_CONFIGURE_OPTIONS= \
+"
+PERLPROG = "${bindir}/env perl"
+PERLPROG:class-native = "${bindir_native}/env perl"
+PERLPROG:append = "${@bb.utils.contains('PACKAGECONFIG', 'perl', ' -I${WORKDIR}', '', d)}"
+export PERLPROG
+
+HAS_PERL = "${@bb.utils.contains('PACKAGECONFIG', 'perl', '1', '0', d)}"
+
+PTEST_BUILD_HOST_FILES += "net-snmp-config gen-variables"
+
+do_configure:prepend() {
+ sed -i -e "s|I/usr/include|I${STAGING_INCDIR}|g" \
+ "${S}"/configure \
+ "${S}"/configure.d/config_os_libs2
+
+ if [ "${HAS_PERL}" = "1" ]; then
+ # this may need to be changed when package perl has any change.
+ cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl?/*/Config.pm ${WORKDIR}/
+ cp -f ${STAGING_DIR_TARGET}/usr/lib*/perl?/*/*/Config_heavy.pl ${WORKDIR}/
+ sed -e "s@libpth => '/usr/lib.*@libpth => '${STAGING_DIR_TARGET}/${libdir} ${STAGING_DIR_TARGET}/${base_libdir}',@g" \
+ -e "s@privlibexp => '/usr@privlibexp => '${STAGING_DIR_TARGET}/usr@g" \
+ -e "s@scriptdir => '/usr@scriptdir => '${STAGING_DIR_TARGET}/usr@g" \
+ -e "s@sitearchexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \
+ -e "s@sitelibexp => '/usr@sitearchexp => '${STAGING_DIR_TARGET}/usr@g" \
+ -e "s@vendorarchexp => '/usr@vendorarchexp => '${STAGING_DIR_TARGET}/usr@g" \
+ -e "s@vendorlibexp => '/usr@vendorlibexp => '${STAGING_DIR_TARGET}/usr@g" \
+ -i ${WORKDIR}/Config.pm
+ fi
+
+}
+
+do_configure:append() {
+ sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=${STAGING_DIR_TARGET}\$\{includedir\}@g" \
+ -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L${STAGING_DIR_TARGET}\$\{libdir\}@g" \
+ -e "s@^NSC_LDFLAGS=\"-L.* @NSC_LDFLAGS=\"-L${STAGING_DIR_TARGET}\$\{libdir\} @g" \
+ -i ${B}/net-snmp-config
+}
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/snmp
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/snmpd
+ install -m 644 ${WORKDIR}/snmpd.conf ${D}${sysconfdir}/snmp/
+ install -m 644 ${WORKDIR}/snmptrapd.conf ${D}${sysconfdir}/snmp/
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/snmpd.service ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/snmptrapd.service ${D}${systemd_unitdir}/system
+ sed -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g" \
+ -i ${D}${bindir}/net-snmp-create-v3-user
+ sed -e 's@^NSC_SRCDIR=.*@NSC_SRCDIR=.@g' \
+ -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*--sysroot=[^ "]*@@g' \
+ -e 's@[^ ]*--with-libtool-sysroot=[^ "]*@@g' \
+ -e 's@[^ ]*--with-install-prefix=[^ "]*@@g' \
+ -e 's@[^ ]*PKG_CONFIG_PATH=[^ "]*@@g' \
+ -e 's@[^ ]*PKG_CONFIG_LIBDIR=[^ "]*@@g' \
+ -i ${D}${bindir}/net-snmp-config
+
+ sed -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
+ -i ${D}${libdir}/pkgconfig/netsnmp*.pc
+
+ # ${STAGING_DIR_HOST} is empty for native builds, and the sed command below
+ # will result in errors if run for native.
+ if [ "${STAGING_DIR_HOST}" ]; then
+ sed -e 's@${STAGING_DIR_HOST}@@g' \
+ -i ${D}${bindir}/net-snmp-config ${D}${libdir}/pkgconfig/netsnmp*.pc
+ fi
+
+ sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=\$\{includedir\}@g" \
+ -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L\$\{libdir\}@g" \
+ -e "s@^NSC_LDFLAGS=\"-L.* @NSC_LDFLAGS=\"-L\$\{libdir\} @g" \
+ -i ${D}${bindir}/net-snmp-config
+
+ sed -i -e 's:${HOSTTOOLS_DIR}/::g' ${D}${bindir}/net-snmp-create-v3-user
+
+ oe_multilib_header net-snmp/net-snmp-config.h
+
+ if [ "${HAS_PERL}" = "1" ]; then
+ find ${D}${libdir}/ -type f -name "perllocal.pod" | xargs rm -f
+ fi
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}
+ for i in ${S}/dist ${S}/include ${B}/include ${S}/mibs ${S}/configure \
+ ${B}/net-snmp-config ${S}/testing; do
+ if [ -e "$i" ]; then
+ cp -R --no-dereference --preserve=mode,links -v "$i" ${D}${PTEST_PATH}
+ fi
+ done
+ echo `autoconf -V|awk '/autoconf/{print $NF}'` > ${D}${PTEST_PATH}/dist/autoconf-version
+
+ rmdlist="${D}${PTEST_PATH}/dist/net-snmp-solaris-build"
+ for i in $rmdlist; do
+ if [ -d "$i" ]; then
+ rm -rf "$i"
+ fi
+ done
+}
+
+SYSROOT_PREPROCESS_FUNCS += "net_snmp_sysroot_preprocess"
+SNMP_DBGDIR = "${TARGET_DBGSRC_DIR}"
+
+net_snmp_sysroot_preprocess () {
+ if [ -e ${D}${bindir}/net-snmp-config ]; then
+ install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ install -m 755 ${D}${bindir}/net-snmp-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ sed -e "s@-I/usr/include@-I${STAGING_INCDIR}@g" \
+ -e "s@^prefix=.*@prefix=${STAGING_DIR_HOST}${prefix}@g" \
+ -e "s@^exec_prefix=.*@exec_prefix=${STAGING_EXECPREFIXDIR}@g" \
+ -e "s@^includedir=.*@includedir=${STAGING_INCDIR}@g" \
+ -e "s@^libdir=.*@libdir=${STAGING_LIBDIR}@g" \
+ -e "s@^NSC_SRCDIR=.*@NSC_SRCDIR=${S}@g" \
+ -e "s@-ffile-prefix-map=${SNMP_DBGDIR}@-ffile-prefix-map=${WORKDIR}=${SNMP_DBGDIR}@g" \
+ -e "s@-fdebug-prefix-map=${SNMP_DBGDIR}@-fdebug-prefix-map=${WORKDIR}=${SNMP_DBGDIR}@g" \
+ -e "s@-fdebug-prefix-map= -fdebug-prefix-map=@-fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
+ -fdebug-prefix-map=${STAGING_DIR_HOST}=@g" \
+ -e "s@--sysroot=@--sysroot=${STAGING_DIR_HOST}@g" \
+ -e "s@--with-libtool-sysroot=@--with-libtool-sysroot=${STAGING_DIR_HOST}@g" \
+ -e "s@--with-install-prefix=@--with-install-prefix=${D}@g" \
+ -i ${SYSROOT_DESTDIR}${bindir_crossscripts}/net-snmp-config
+ fi
+}
+
+PACKAGES += "${PN}-libs ${PN}-mibs ${PN}-server ${PN}-client \
+ ${PN}-server-snmpd ${PN}-server-snmptrapd \
+ ${PN}-lib-netsnmp ${PN}-lib-agent ${PN}-lib-helpers \
+ ${PN}-lib-mibs ${PN}-lib-trapd"
+
+# perl module
+PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'perl', '${PN}-perl-modules', '', d)}"
+
+ALLOW_EMPTY:${PN} = "1"
+ALLOW_EMPTY:${PN}-server = "1"
+ALLOW_EMPTY:${PN}-libs = "1"
+
+FILES:${PN}-perl-modules = "${libdir}/perl?/*"
+RDEPENDS:${PN}-perl-modules = "perl"
+
+FILES:${PN}-libs = ""
+FILES:${PN}-mibs = "${datadir}/snmp/mibs"
+FILES:${PN}-server-snmpd = "${sbindir}/snmpd \
+ ${sysconfdir}/snmp/snmpd.conf \
+ ${sysconfdir}/init.d \
+ ${systemd_unitdir}/system/snmpd.service \
+"
+
+FILES:${PN}-server-snmptrapd = "${sbindir}/snmptrapd \
+ ${sysconfdir}/snmp/snmptrapd.conf \
+ ${systemd_unitdir}/system/snmptrapd.service \
+"
+
+FILES:${PN}-lib-netsnmp = "${libdir}/libnetsnmp${SOLIBS}"
+FILES:${PN}-lib-agent = "${libdir}/libnetsnmpagent${SOLIBS}"
+FILES:${PN}-lib-helpers = "${libdir}/libnetsnmphelpers${SOLIBS}"
+FILES:${PN}-lib-mibs = "${libdir}/libnetsnmpmibs${SOLIBS}"
+FILES:${PN}-lib-trapd = "${libdir}/libnetsnmptrapd${SOLIBS}"
+
+FILES:${PN} = ""
+FILES:${PN}-client = "${bindir}/* ${datadir}/snmp/"
+FILES:${PN}-dbg += "${libdir}/.debug/ ${sbindir}/.debug/ ${bindir}/.debug/"
+FILES:${PN}-dev += "${bindir}/mib2c \
+ ${bindir}/mib2c-update \
+ ${bindir}/net-snmp-config \
+ ${bindir}/net-snmp-create-v3-user \
+"
+
+CONFFILES:${PN}-server-snmpd = "${sysconfdir}/snmp/snmpd.conf"
+CONFFILES:${PN}-server-snmptrapd = "${sysconfdir}/snmp/snmptrapd.conf"
+
+INITSCRIPT_PACKAGES = "${PN}-server-snmpd"
+INITSCRIPT_NAME:${PN}-server-snmpd = "snmpd"
+INITSCRIPT_PARAMS:${PN}-server-snmpd = "start 90 2 3 4 5 . stop 60 0 1 6 ."
+
+SYSTEMD_PACKAGES = "${PN}-server-snmpd \
+ ${PN}-server-snmptrapd"
+
+SYSTEMD_SERVICE:${PN}-server-snmpd = "snmpd.service"
+SYSTEMD_SERVICE:${PN}-server-snmptrapd = "snmptrapd.service"
+
+RDEPENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'net-snmp-perl-modules', '', d)}"
+RDEPENDS:${PN} += "net-snmp-client"
+RDEPENDS:${PN}-server-snmpd += "net-snmp-mibs"
+RDEPENDS:${PN}-server-snmptrapd += "net-snmp-server-snmpd ${PN}-lib-trapd"
+RDEPENDS:${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd"
+RDEPENDS:${PN}-client += "net-snmp-mibs net-snmp-libs"
+RDEPENDS:${PN}-libs += "libpci \
+ ${PN}-lib-netsnmp \
+ ${PN}-lib-agent \
+ ${PN}-lib-helpers \
+ ${PN}-lib-mibs \
+"
+RDEPENDS:${PN}-ptest += "perl \
+ perl-module-test \
+ perl-module-file-basename \
+ perl-module-getopt-long \
+ perl-module-file-temp \
+ perl-module-data-dumper \
+"
+RDEPENDS:${PN}-dev = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})"
+RRECOMMENDS:${PN}-dbg = "net-snmp-client (= ${EXTENDPKGV}) net-snmp-server (= ${EXTENDPKGV})"
+
+RPROVIDES:${PN}-server-snmpd += "${PN}-server-snmpd-systemd"
+RREPLACES:${PN}-server-snmpd += "${PN}-server-snmpd-systemd"
+RCONFLICTS:${PN}-server-snmpd += "${PN}-server-snmpd-systemd"
+
+RPROVIDES:${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd"
+RREPLACES:${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd"
+RCONFLICTS:${PN}-server-snmptrapd += "${PN}-server-snmptrapd-systemd"
+
+LEAD_SONAME = "libnetsnmp.so"
+
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/net-snmp-config"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-protocols/opcua/open62541/0001-fix-build-do-not-install-git-files.patch b/meta-networking/recipes-protocols/opcua/open62541/0001-fix-build-do-not-install-git-files.patch
new file mode 100644
index 0000000000..b93e311054
--- /dev/null
+++ b/meta-networking/recipes-protocols/opcua/open62541/0001-fix-build-do-not-install-git-files.patch
@@ -0,0 +1,24 @@
+From a490e82dca5a669b0af27a13d74759d8f77e2333 Mon Sep 17 00:00:00 2001
+From: Vyacheslav Yurkov <v.yurkov@precitec.de>
+Date: Mon, 3 Oct 2022 18:25:15 +0200
+Subject: [PATCH] fix(build): do not install git files
+
+Signed-off-by: Vyacheslav Yurkov <v.yurkov@precitec.de>
+---
+Upstream-Status: Backport [https://github.com/open62541/open62541/commit/a0328d4cb527f9778a262fc4a6b42bfbdffc38e9]
+
+ CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1934374e..bc5c8bad 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1703,6 +1703,7 @@ install(DIRECTORY ${UA_install_tools_dirs}
+ FILES_MATCHING
+ PATTERN "*"
+ PATTERN "*.pyc" EXCLUDE
++ PATTERN ".git*" EXCLUDE
+ )
+
+ install(FILES ${UA_install_tools_files} DESTINATION ${open62541_install_tools_dir})
diff --git a/meta-networking/recipes-protocols/opcua/open62541_1.3.8.bb b/meta-networking/recipes-protocols/opcua/open62541_1.3.8.bb
new file mode 100644
index 0000000000..19a50aee3a
--- /dev/null
+++ b/meta-networking/recipes-protocols/opcua/open62541_1.3.8.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "open62541 is an implementation of OPC UA (OPC Unified Architecture)"
+HOMEPAGE = "https://github.com/open62541/open62541.git"
+LICENSE = "MPL-2.0 & BSD-3-Clause & MIT"
+LIC_FILES_CHKSUM = "\
+ file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad \
+ file://deps/mdnsd/LICENSE;md5=3bb4047dc4095cd7336de3e2a9be94f0 \
+ file://deps/mqtt-c/LICENSE;md5=9226377baf0b79174c89a1ab55592456 \
+"
+
+SRCREV_FORMAT = "opcua_mdnsd_ua-nodeset_mqtt-c"
+SRCREV_opcua = "086b1557d6f49e8a82c999054a7da77d080cd54e"
+SRCREV_mdnsd = "3151afe5899dba5125dffa9f4cf3ae1fe2edc0f0"
+SRCREV_ua-nodeset = "f71b3f411d5cb16097c3ae0c744f67ad45535ffb"
+SRCREV_mqtt-c = "f69ce1e7fd54f3b1834c9c9137ce0ec5d703cb4d"
+
+SRC_URI = " \
+ git://github.com/open62541/open62541.git;name=opcua;branch=1.3;protocol=https \
+ git://github.com/Pro/mdnsd.git;name=mdnsd;protocol=https;branch=master;destsuffix=git/deps/mdnsd \
+ git://github.com/OPCFoundation/UA-Nodeset;name=ua-nodeset;protocol=https;branch=v1.04;destsuffix=git/deps/ua-nodeset \
+ git://github.com/LiamBindle/MQTT-C.git;name=mqtt-c;protocol=https;branch=master;destsuffix=git/deps/mqtt-c \
+ file://0001-fix-build-do-not-install-git-files.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit cmake python3native
+
+EXTRA_OECMAKE += "\
+ -DBUILD_SHARED_LIBS=ON \
+ -DUA_NAMESPACE_ZERO=FULL \
+ -DUA_LOGLEVEL=600 \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+"
+
+PACKAGECONFIG ?= "encryption-mbedtls pubsub pubsub-eth subscriptions subscriptions-events"
+PACKAGECONFIG[amalgamation] = "-DUA_ENABLE_AMALGAMATION=ON, -DUA_ENABLE_AMALGAMATION=OFF"
+PACKAGECONFIG[encryption-mbedtls] = "-DUA_ENABLE_ENCRYPTION=MBEDTLS, , mbedtls, , , encryption-openssl"
+PACKAGECONFIG[encryption-openssl] = "-DUA_ENABLE_ENCRYPTION=OPENSSL, , openssl, , , encryption-mbedtls"
+PACKAGECONFIG[multithreading] = "-DUA_MULTITHREADING=100, -DUA_MULTITHREADING=0"
+PACKAGECONFIG[pubsub] = "-DUA_ENABLE_PUBSUB=ON, -DUA_ENABLE_PUBSUB=OFF"
+PACKAGECONFIG[pubsub-eth] = "-DUA_ENABLE_PUBSUB_ETH_UADP=ON, -DUA_ENABLE_PUBSUB_ETH_UADP=OFF"
+PACKAGECONFIG[subscriptions] = "-DUA_ENABLE_SUBSCRIPTIONS=ON, -DUA_ENABLE_SUBSCRIPTIONS=OFF"
+PACKAGECONFIG[subscriptions-events] = "-DUA_ENABLE_SUBSCRIPTIONS_EVENTS=ON, -DUA_ENABLE_SUBSCRIPTIONS_EVENTS=OFF"
+PACKAGECONFIG[werror] = "-DUA_FORCE_WERROR=ON, -DUA_FORCE_WERROR=OFF"
+
+do_configure:prepend:toolchain-clang:riscv64() {
+ sed -i -e 's/set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)/set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF)/' ${S}/CMakeLists.txt
+}
+
+do_configure:prepend:toolchain-clang:riscv32() {
+ sed -i -e 's/set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)/set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF)/' ${S}/CMakeLists.txt
+}
+
diff --git a/meta-networking/recipes-protocols/openflow/openflow.inc b/meta-networking/recipes-protocols/openflow/openflow.inc
deleted file mode 100644
index aaad0e00e1..0000000000
--- a/meta-networking/recipes-protocols/openflow/openflow.inc
+++ /dev/null
@@ -1,64 +0,0 @@
-SUMMARY = "OpenFlow communications protocol"
-DESCRIPTION = "\
-Open standard that enables researchers to run experimental protocols in \
-contained networks. OpenFlow is a communications interface between \
-control and forwarding planes of a software-defined networking architecture.\
-"
-HOMEPAGE = "http://www.openflow.org"
-
-SECTION = "net"
-LICENSE = "GPL-2.0-only"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=e870c934e2c3d6ccf085fd7cf0a1e2e2"
-
-SRC_URI = "git://gitosis.stanford.edu/openflow.git;protocol=git;branch=master"
-
-CVE_CHECK_IGNORE = "\
- CVE-2015-1611 \
- CVE-2015-1612 \
-"
-
-DEPENDS = "virtual/libc"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[openssl] = "--enable-ssl,--disable-ssl, openssl openssl-native, libssl"
-
-EXTRA_OECONF += " \
- KARCH=${TARGET_ARCH} \
- ${@bb.utils.contains('PACKAGECONFIG', 'openssl', 'SSL_LIBS="-lssl -lcrypto"', '', d)} \
- "
-
-S = "${WORKDIR}/git"
-
-inherit autotools-brokensep pkgconfig
-
-do_configure:prepend() {
- ./boot.sh
-}
-
-do_install:append() {
- # Remove /var/run as it is created on startup
- rm -rf ${D}${localstatedir}/run
-
- # /var/log/openflow needs to be created in runtime. Use rmdir to catch if
- # upstream stops creating /var/log/openflow, or adds something else in
- # /var/log.
- rmdir ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/log
- rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
-
- # Create /var/log/openflow in runtime.
- if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
- install -d ${D}${nonarch_libdir}/tmpfiles.d
- echo "d ${localstatedir}/log/${BPN} - - - -" > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
- fi
- if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then
- install -d ${D}${sysconfdir}/default/volatiles
- echo "d root root 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
- fi
-}
-
-FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
-
-# This CVE is not for this product but cve-check assumes it is
-# because two CPE collides when checking the NVD database
-CVE_CHECK_IGNORE = "CVE-2018-1078"
diff --git a/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch b/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch
index 952274bb97..2175a20b90 100644
--- a/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch
+++ b/meta-networking/recipes-protocols/openflow/openflow/0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch
@@ -9,6 +9,8 @@ failures.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 2 +-
lib/util.c | 2 ++
lib/util.h | 1 +
diff --git a/meta-networking/recipes-protocols/openflow/openflow/0001-Makefile.am-Specify-export-dynamic-directly-to-linke.patch b/meta-networking/recipes-protocols/openflow/openflow/0001-Makefile.am-Specify-export-dynamic-directly-to-linke.patch
new file mode 100644
index 0000000000..27fc05f09d
--- /dev/null
+++ b/meta-networking/recipes-protocols/openflow/openflow/0001-Makefile.am-Specify-export-dynamic-directly-to-linke.patch
@@ -0,0 +1,30 @@
+From 12bba388719c425d9b5cd970d4fabf01edf56aa4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 7 Feb 2024 22:33:12 -0800
+Subject: [PATCH] Makefile.am: Specify export-dynamic directly to linker
+
+Fixes build with clang-18+
+| riscv64-yoe-linux-clang: error: unknown argument: '-export-dynamic'
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 97ac1f0..e557fe7 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -23,7 +23,7 @@ if NDEBUG
+ AM_CPPFLAGS += -DNDEBUG
+ AM_CFLAGS += -fomit-frame-pointer
+ else
+-AM_LDFLAGS = -export-dynamic
++AM_LDFLAGS = -Wl,--export-dynamic
+ endif
+
+ CLEANFILES =
+--
+2.43.0
+
diff --git a/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch b/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch
index 75180fe32f..9a49f4ef39 100644
--- a/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch
+++ b/meta-networking/recipes-protocols/openflow/openflow/0002-lib-netdev-Adjust-header-include-sequence.patch
@@ -10,6 +10,8 @@ about double definition in libc headers
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lib/netdev.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/meta-networking/recipes-protocols/openflow/openflow_1.0.bb b/meta-networking/recipes-protocols/openflow/openflow_1.0.bb
deleted file mode 100644
index a7e254dd85..0000000000
--- a/meta-networking/recipes-protocols/openflow/openflow_1.0.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-include ${BPN}.inc
-
-SRCREV = "5ccca75a69f99791659bcfbcf35353ab1921320a"
-PV = "1.0"
diff --git a/meta-networking/recipes-protocols/openflow/openflow_git.bb b/meta-networking/recipes-protocols/openflow/openflow_git.bb
index 1ac5dd4105..41bedcd0cf 100644
--- a/meta-networking/recipes-protocols/openflow/openflow_git.bb
+++ b/meta-networking/recipes-protocols/openflow/openflow_git.bb
@@ -1,10 +1,70 @@
-include ${BPN}.inc
+SUMMARY = "OpenFlow communications protocol"
+DESCRIPTION = "\
+Open standard that enables researchers to run experimental protocols in \
+contained networks. OpenFlow is a communications interface between \
+control and forwarding planes of a software-defined networking architecture.\
+"
+HOMEPAGE = "http://www.openflow.org"
-SRCREV = "c84f33f09d5dbcfc9b489f64cb30475bf36f653a"
-PV = "1.0+git${SRCPV}"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
-SRC_URI += "file://0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch \
+LIC_FILES_CHKSUM = "file://COPYING;md5=e870c934e2c3d6ccf085fd7cf0a1e2e2"
+
+SRCREV = "82ad07d997b0b2ee70e1b2c7e82fcc6d0ccf23ea"
+
+PV = "1.0+git"
+
+SRC_URI = "git://github.com/mininet/openflow;protocol=https;branch=master \
+ file://0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch \
file://0002-lib-netdev-Adjust-header-include-sequence.patch \
file://0001-generate-not-static-get_dh-functions.patch \
file://0001-socket-util-Include-sys-stat.h-for-fchmod.patch \
- "
+ file://0001-Makefile.am-Specify-export-dynamic-directly-to-linke.patch \
+"
+CVE_STATUS[CVE-2015-1611] = "not-applicable-config: Not referred to our implementation of openflow"
+CVE_STATUS[CVE-2015-1612] = "not-applicable-config: Not referred to our implementation of openflow"
+CVE_STATUS[CVE-2018-1078] = "cpe-incorrect: This CVE is not for this product but cve-check assumes it is \
+because two CPE collides when checking the NVD database"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[openssl] = "--enable-ssl,--disable-ssl, openssl openssl-native, libssl"
+
+EXTRA_OECONF += " \
+ KARCH=${TARGET_ARCH} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'openssl', 'SSL_LIBS="-lssl -lcrypto"', '', d)} \
+ "
+
+DEPENDS:append:libc-musl = " libexecinfo"
+LDFLAGS:append:libc-musl = " -lexecinfo"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep pkgconfig
+
+do_configure:prepend() {
+ ./boot.sh
+}
+
+do_install:append() {
+ # Remove /var/run as it is created on startup
+ rm -rf ${D}${localstatedir}/run
+
+ # /var/log/openflow needs to be created in runtime. Use rmdir to catch if
+ # upstream stops creating /var/log/openflow, or adds something else in
+ # /var/log.
+ rmdir ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/log
+ rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
+
+ # Create /var/log/openflow in runtime.
+ if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
+ install -d ${D}${nonarch_libdir}/tmpfiles.d
+ echo "d ${localstatedir}/log/${BPN} - - - -" > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
+ fi
+ if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then
+ install -d ${D}${sysconfdir}/default/volatiles
+ echo "d root root 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
+ fi
+}
+
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-Use-1-instead-of-WAIT_ANY.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-Use-1-instead-of-WAIT_ANY.patch
index d1ee3c5916..8314b5d964 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-Use-1-instead-of-WAIT_ANY.patch
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-Use-1-instead-of-WAIT_ANY.patch
@@ -8,6 +8,8 @@ e.g. musl do not define this.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
usl/usl_pid.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api-Included-needed-headers.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api-Included-needed-headers.patch
index c50f68e65d..4bdbf458cd 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api-Included-needed-headers.patch
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_api-Included-needed-headers.patch
@@ -7,6 +7,8 @@ These are flagged by musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
l2tp_api.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-test-pppd_dummy.c-Fix-return-value.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-test-pppd_dummy.c-Fix-return-value.patch
index 1f576fa710..42d6f58007 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-test-pppd_dummy.c-Fix-return-value.patch
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-test-pppd_dummy.c-Fix-return-value.patch
@@ -9,6 +9,8 @@ declaration
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
test/pppd_dummy.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-cli-include-fcntl.h-for-O_CREAT-define.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-cli-include-fcntl.h-for-O_CREAT-define.patch
index 9df32658a0..bad1007e04 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-cli-include-fcntl.h-for-O_CREAT-define.patch
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-cli-include-fcntl.h-for-O_CREAT-define.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 2/4] cli: include fcntl.h for O_CREAT define
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
cli/cli_readline.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch
index bd9bcb8f27..6574ba22f0 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0002-user-ipv6-structures.patch
@@ -8,6 +8,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Update for ipv6 address compare
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
+Upstream-Status: Pending
+
l2tp_api.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch
index e05be1bbb4..5d0c29cb42 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp/0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0003-cli-Define-_GNU_SOURCE-for-getting-sighandler_t.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 3/4] cli: Define _GNU_SOURCE for getting sighandler_t
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
cli/cli_readline.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-modify-CFLAGS-to-aviod-build-error.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-modify-CFLAGS-to-aviod-build-error.patch
index 96dbc7551d..8e9bd1e9ee 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-modify-CFLAGS-to-aviod-build-error.patch
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/Makefile-modify-CFLAGS-to-aviod-build-error.patch
@@ -3,7 +3,7 @@ From: Li xin <lixin.fnst@cn.fujitsu.com>
Date: Mon, 1 Dec 2014 01:53:41 +0900
Subject: [PATCH] Makefile:modify CFLAGS to aviod build error.
-Upstream-Status: pending
+Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tp-simplify-gcc-warning-hack.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tp-simplify-gcc-warning-hack.patch
index c11a127b81..2a7435963e 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tp-simplify-gcc-warning-hack.patch
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tp-simplify-gcc-warning-hack.patch
@@ -10,7 +10,7 @@ it in place but remove the #if guard since it is only there to ensure that
the l2tp_private.h file is updated if the rpc source file is changed and
the two get out of sync.
-Upstream-status: pending
+Upstream-Status: Pending
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
---
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-enable-tests.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-enable-tests.patch
index 0bece2f4d7..ad60083d1c 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-enable-tests.patch
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-enable-tests.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
commit 3e96a6c41bdd26417265a45ed685138d8eed564e
Author: Aws Ismail <aws.ismail@windriver.com>
Date: Fri Sep 14 02:32:53 2012 -0400
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-sysconfig.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-sysconfig.patch
index 3119425e69..c094e3859b 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-sysconfig.patch
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix-sysconfig.patch
@@ -2,17 +2,17 @@ commit 6ea3125e2bec15004f312814022335d94cdf7e94
Author: Aws Ismail <aws.ismail@windriver.com>
Date: Wed Sep 19 11:34:48 2012 -0400
- Fix openl2tp config script location
+Fix openl2tp config script location
- Correct the location of the sysconfig
- script. Use /etc/default/ instead of
- /etc/sysconfig/
+Correct the location of the sysconfig
+script. Use /etc/default/ instead of
+/etc/sysconfig/
- Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
- Upstream-Status: Inappropriate [configuration]
+Upstream-Status: Inappropriate [configuration]
- Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
diff --git a/etc/rc.d/init.d/openl2tpd b/etc/rc.d/init.d/openl2tpd
index 7f27bb7..4194f63 100755
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix.patch
index 9ecd4b072f..51bddb8942 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix.patch
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd-initscript-fix.patch
@@ -2,16 +2,16 @@ commit 7c58a1e244ea83a9e7bbd51a6d354cee25cdbd33
Author: Aws Ismail <aws.ismail@windriver.com>
Date: Wed Sep 12 23:35:40 2012 -0400
- Fix openl2tpd initscript
-
- - Correct the location of the retval statement.
- - use start-stop-daemon instead of daemon.
-
- Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Fix openl2tpd initscript
- Upstream-Status: Inappropriate [OE specific]
+- Correct the location of the retval statement.
+- use start-stop-daemon instead of daemon.
- Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
diff --git a/etc/rc.d/init.d/openl2tpd b/etc/rc.d/init.d/openl2tpd
index ce21b50..7f27bb7 100755
diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch
index 40b082e77a..04ceb6b572 100644
--- a/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch
+++ b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch
@@ -9,6 +9,8 @@ to compile when using musl libc.
Signed-off-by: Jonathan Richardson <jonathan.richardson@broadcom.com>
---
+Upstream-Status: Pending
+
include/clif.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-include-path-to-generated-version.h.patch b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-include-path-to-generated-version.h.patch
index b58fc104d2..f1a3ac3ad2 100644
--- a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-include-path-to-generated-version.h.patch
+++ b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-include-path-to-generated-version.h.patch
@@ -10,6 +10,8 @@ dir. Include the path to it in AM_CPPFLAGS.
Signed-off-by: Jonathan Richardson <jonathan.richardson@broadcom.com>
---
+Upstream-Status: Pending
+
Makefile.am | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch
index a26a5299ab..b1d746f8bc 100644
--- a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch
+++ b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch
@@ -1,4 +1,4 @@
-From dc3f2250908587710f109c80ddf8a94f0bc40b82 Mon Sep 17 00:00:00 2001
+From 7147add9fedfb28909639ae419f995041d086266 Mon Sep 17 00:00:00 2001
From: Jonathan Richardson <jonathan.richardson@broadcom.com>
Date: Fri, 6 Apr 2018 10:49:04 -0700
Subject: [PATCH] autotools: Add option to disable installation of systemd conf
@@ -16,15 +16,17 @@ to a hard coded path that couldn't be changed.
Signed-off-by: Jonathan Richardson <jonathan.richardson@broadcom.com>
---
+Upstream-Status: Pending
+
Makefile.am | 3 ++-
configure.ac | 9 +++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
-index 292c0fd..0fb9bb0 100644
+index 86174e9..e90e966 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -138,8 +138,9 @@ install-data-hook: installdirs-local
+@@ -141,8 +141,9 @@ install-data-hook: installdirs-local
pkgconfigdir = ${libdir}/pkgconfig
pkgconfig_DATA = lldpad.pc liblldp_clif.pc
@@ -36,10 +38,10 @@ index 292c0fd..0fb9bb0 100644
bashcompletiondir = $(sysconfdir)/bash_completion.d
dist_bashcompletion_DATA = contrib/bash_completion/lldpad contrib/bash_completion/lldptool
diff --git a/configure.ac b/configure.ac
-index 0667446..f75f433 100644
+index fa2f3a0..1a038cd 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -95,6 +95,15 @@ AC_TYPE_UINT16_T
+@@ -132,6 +132,15 @@ AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
AC_TYPE_UINT8_T
diff --git a/meta-networking/recipes-protocols/openlldp/openlldp_1.1.0.bb b/meta-networking/recipes-protocols/openlldp/openlldp_1.1.0.bb
deleted file mode 100644
index 812f4fbcf0..0000000000
--- a/meta-networking/recipes-protocols/openlldp/openlldp_1.1.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Open-LLDP"
-DESCRIPTION = "Link Layer Discovery Protocol for Linux that includes support for DCBX"
-HOMEPAGE = "http://open-lldp.org/start"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8c2bc283e65df398ced5f5b747e78162"
-
-S = "${WORKDIR}/git"
-
-inherit pkgconfig autotools
-inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}
-
-DEPENDS = "libnl libconfig readline"
-
-SRCREV = "85e55837a81d710e5baa7da47f7ed0d205c8ede5"
-PV .= "+git${SRCPV}"
-SRC_URI = "git://github.com/intel/openlldp.git;protocol=https;branch=branch-1.1 \
- file://0001-Fix-musl-libc-build-issue.patch \
- file://0001-autotools-Add-include-path-to-generated-version.h.patch \
- file://0001-autotools-Add-option-to-disable-installation-of-syst.patch \
- file://0004-clif-Include-string.h-for-mem-function-prototypes.patch \
- "
-
-# Enable install of systemd conf files.
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_system_unitdir}', '', d)}"
-
-SYSTEMD_SERVICE:${PN} = "lldpad.service lldpad.socket"
-
-# To enable service at boot set to enable in local.conf.
-SYSTEMD_AUTO_ENABLE ?= "disable"
-
-RRECOMMENDS:${PN} = "iproute2-tc"
diff --git a/meta-networking/recipes-protocols/openlldp/openlldp_1.1.1.bb b/meta-networking/recipes-protocols/openlldp/openlldp_1.1.1.bb
new file mode 100644
index 0000000000..010cd5af84
--- /dev/null
+++ b/meta-networking/recipes-protocols/openlldp/openlldp_1.1.1.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Open-LLDP"
+DESCRIPTION = "Link Layer Discovery Protocol for Linux that includes support for DCBX"
+HOMEPAGE = "http://open-lldp.org/start"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8c2bc283e65df398ced5f5b747e78162"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig autotools
+inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}
+
+DEPENDS = "libnl libconfig readline"
+
+SRCREV = "f1dd9eb961fab06723d2bedb2f7e2b81e45ee9ab"
+PV .= "+git"
+SRC_URI = "git://github.com/intel/openlldp.git;protocol=https;branch=branch-1.1 \
+ file://0001-Fix-musl-libc-build-issue.patch \
+ file://0001-autotools-Add-include-path-to-generated-version.h.patch \
+ file://0001-autotools-Add-option-to-disable-installation-of-syst.patch \
+ file://0004-clif-Include-string.h-for-mem-function-prototypes.patch \
+ "
+
+# Enable install of systemd conf files.
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_system_unitdir}', '', d)}"
+
+SYSTEMD_SERVICE:${PN} = "lldpad.service lldpad.socket"
+
+# To enable service at boot set to enable in local.conf.
+SYSTEMD_AUTO_ENABLE ?= "disable"
+
+RRECOMMENDS:${PN} = "iproute2-tc"
diff --git a/meta-networking/recipes-protocols/quagga/files/0001-configure-Check-for-readline-instead-of-main-in-libr.patch b/meta-networking/recipes-protocols/quagga/files/0001-configure-Check-for-readline-instead-of-main-in-libr.patch
deleted file mode 100644
index 776c0958fa..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/0001-configure-Check-for-readline-instead-of-main-in-libr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 675b35b7ed416c837267e493b157167319e8f5fa Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 1 Sep 2022 11:01:53 -0700
-Subject: [PATCH] configure: Check for readline() instead of main() in
- libreadline
-
-while checking for presense of libreadline, poke for a function which is
-provided by libreadline, main is not provided by it, so modern compiler
-toolchains may complain about it.
-
-Upstream-Status: Submitted [https://github.com/Quagga/quagga/pull/9]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index ed279f48..d444ab4a 100755
---- a/configure.ac
-+++ b/configure.ac
-@@ -754,7 +754,7 @@ dnl [TODO] on Linux, and in [TODO] on Solaris.
- )]
- )]
- )
-- AC_CHECK_LIB(readline, main, LIBREADLINE="-lreadline $LIBREADLINE",,
-+ AC_CHECK_LIB(readline, readline, LIBREADLINE="-lreadline $LIBREADLINE",,
- "$LIBREADLINE")
- if test $ac_cv_lib_readline_main = no; then
- AC_MSG_ERROR([vtysh needs libreadline but was not found and usable on your system.])
---
-2.37.3
-
diff --git a/meta-networking/recipes-protocols/quagga/files/bgpd.service b/meta-networking/recipes-protocols/quagga/files/bgpd.service
deleted file mode 100644
index 818b59cb27..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/bgpd.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=BGP routing daemon
-BindTo=zebra.service
-After=zebra.service
-ConditionPathExists=@SYSCONFDIR@/quagga/bgpd.conf
-
-[Service]
-Type=forking
-EnvironmentFile=-@SYSCONFDIR@/default/quagga
-ExecStart=@SBINDIR@/bgpd -d $bgpd_options -f @SYSCONFDIR@/quagga/bgpd.conf
-ExecStopPost=@base_bindir@/rm -rf /run/quagga/bgpd.pid
-Restart=on-abort
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-protocols/quagga/files/isisd.service b/meta-networking/recipes-protocols/quagga/files/isisd.service
deleted file mode 100644
index 9bfe7b65ef..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/isisd.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=IS-IS routing daemon
-BindTo=zebra.service
-After=zebra.service
-ConditionPathExists=@SYSCONFDIR@/quagga/isisd.conf
-
-[Service]
-Type=forking
-EnvironmentFile=-@SYSCONFDIR@/default/quagga
-ExecStart=@SBINDIR@/isisd -d $isisd_options -f /etc/quagga/isisd.conf
-Restart=on-abort
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-protocols/quagga/files/ospf6d.service b/meta-networking/recipes-protocols/quagga/files/ospf6d.service
deleted file mode 100644
index 50645fe2a9..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/ospf6d.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=OSPF routing daemon for IPv6
-BindTo=zebra.service
-After=zebra.service
-ConditionPathExists=@SYSCONFDIR@/quagga/ospf6d.conf
-
-[Service]
-Type=forking
-EnvironmentFile=-@SYSCONFDIR@/default/quagga
-ExecStart=@SBINDIR@/ospf6d -d $ospf6d_options -f @SYSCONFDIR@/quagga/ospf6d.conf
-ExecStopPost=@base_bindir@/rm -rf /run/quagga/ospf6d.pid
-Restart=on-abort
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-protocols/quagga/files/ospfd.service b/meta-networking/recipes-protocols/quagga/files/ospfd.service
deleted file mode 100644
index 2cab1cd147..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/ospfd.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=OSPF routing daemon
-BindTo=zebra.service
-After=zebra.service
-ConditionPathExists=@SYSCONFDIR@/quagga/ospfd.conf
-
-[Service]
-Type=forking
-EnvironmentFile=-@SYSCONFDIR@/default/quagga
-ExecStart=@SBINDIR@/ospfd -d $ospfd_options -f @SYSCONFDIR@/quagga/ospfd.conf
-ExecStopPost=@base_bindir@/rm -rf /run/quagga/ospfd.pid
-Restart=on-abort
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-protocols/quagga/files/quagga.default b/meta-networking/recipes-protocols/quagga/files/quagga.default
deleted file mode 100644
index 4c4bc23071..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/quagga.default
+++ /dev/null
@@ -1,12 +0,0 @@
-# If this option is set the /etc/init.d/quagga script automatically loads
-# the config via "vtysh -b" when the servers are started.
-vtysh_enable=yes
-
-# Bind all daemons to loopback only by default
-zebra_options=" --daemon -A 127.0.0.1"
-bgpd_options=" --daemon -A 127.0.0.1"
-ospfd_options=" --daemon -A 127.0.0.1"
-ospf6d_options="--daemon -A ::1"
-ripd_options=" --daemon -A 127.0.0.1"
-ripngd_options="--daemon -A ::1"
-isisd_options=" --daemon -A 127.0.0.1"
diff --git a/meta-networking/recipes-protocols/quagga/files/quagga.init b/meta-networking/recipes-protocols/quagga/files/quagga.init
deleted file mode 100644
index df1beb7123..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/quagga.init
+++ /dev/null
@@ -1,200 +0,0 @@
-#!/bin/sh
-#
-# /etc/init.d/quagga -- start/stop the Quagga routing daemons
-#
-# Based on debian version by Endre Hirling <endre@mail.elte.hu> and
-# Christian Hammers <ch@debian.org>.
-#
-
-### BEGIN INIT INFO
-# Provides: quagga
-# Required-Start: $local_fs $network $remote_fs $syslog
-# Required-Stop: $local_fs $network $remote_fs $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: start and stop the Quagga routing suite
-# Description: Quagga is a routing suite for IP routing protocols like
-# BGP, OSPF, RIP and others. This script contols the main
-# daemon "quagga" as well as the individual protocol daemons.
-### END INIT INFO
-
-# NOTE: sbin must be before bin so we get the iproute2 ip and not the
-# busybox ip command. The busybox one flushes all routes instead of just
-# the dynamic routes
-PATH=/sbin:/usr/sbin:/bin:/usr/bin:/sbin
-D_PATH=/usr/sbin
-C_PATH=/etc/quagga
-
-# Keep zebra first and do not list watchquagga!
-DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd"
-
-# Print the name of the pidfile.
-pidfile()
-{
- echo "/var/run/quagga/$1.pid"
-}
-
-# Check if daemon is started by using the pidfile.
-started()
-{
- [ -e `pidfile $1` ] && kill -0 `cat \`pidfile $1\`` 2> /dev/null && return 0
- return 1
-}
-
-# Loads the config via vtysh -b if configured to do so.
-vtysh_b ()
-{
- # Rember, that all variables have been incremented by 1 in convert_daemon_prios()
- if [ "$vtysh_enable" = 2 -a -f $C_PATH/Quagga.conf ]; then
- /usr/bin/vtysh -b
- fi
-}
-
-# Check if the daemon is activated and if its executable and config files
-# are in place.
-# params: daemon name
-# returns: 0=ok, 1=error
-check_daemon()
-{
- # If the integrated config file is used the others are not checked.
- if [ -r "$C_PATH/Quagga.conf" ]; then
- return 0
- fi
-
- # check for config file
- if [ ! -r "$C_PATH/$1.conf" ]; then
- return 1
- fi
- return 0
-}
-
-# Starts the server if it's not alrady running according to the pid file.
-# The Quagga daemons creates the pidfile when starting.
-start()
-{
- if ! check_daemon $1; then echo -n " (!$1)"; return; fi
- echo -n " $1"
- start-stop-daemon \
- --start \
- --pidfile=`pidfile $1` \
- --exec "$D_PATH/$1" \
- -- \
- `eval echo "$""$1""_options"`
-
-}
-
-# Stop the daemon given in the parameter, printing its name to the terminal.
-stop()
-{
- if ! started "$1" ; then
- echo -n " (!$1)"
- return 0
- else
- PIDFILE=`pidfile $1`
- PID=`cat $PIDFILE 2>/dev/null`
- start-stop-daemon --stop --quiet --exec "$D_PATH/$1"
- #
- # Now we have to wait until $DAEMON has _really_ stopped.
- #
- if test -n "$PID" && kill -0 $PID 2>/dev/null; then
- echo -n " (waiting) ."
- cnt=0
- while kill -0 $PID 2>/dev/null; do
- cnt=`expr $cnt + 1`
- if [ $cnt -gt 60 ]; then
- # Waited 120 secs now, fail.
- echo -n "Failed.. "
- break
- fi
- sleep 2
- echo -n "."
- done
- fi
- echo -n " $1"
- rm -f `pidfile $1`
- fi
-}
-
-stop_all()
-{
- local daemon_list
- daemon_list=${1:-$DAEMONS}
-
- echo -n "Stopping Quagga daemons:"
- for daemon_name in $daemon_list; do
- stop "$daemon_name"
- done
- echo "."
-}
-
-start_all()
-{
- local daemon_list
- daemon_list=${1:-$DAEMONS}
-
- echo -n "Starting Quagga daemons:"
- for daemon_name in $daemon_list; do
- start "$daemon_name"
- done
- echo "."
-}
-
-status_all()
-{
- local daemon_list
- daemon_list=${1:-$DAEMONS}
- res=1
-
- echo -n "quagga: "
- for daemon_name in $daemon_list; do
- if started "$daemon_name" ; then
- id=`cat \`pidfile $daemon_name\``
- echo -n "$daemon_name (pid $id) "
- res=0
- fi
- done
- if [ $res -eq 0 ]; then
- echo "is running..."
- else
- echo "is stopped..."
- fi
- exit $res
-}
-
-#########################################################
-# Main program #
-#########################################################
-
-# Load configuration
-test -f /etc/default/quagga && . /etc/default/quagga
-
-case "$1" in
- start)
- cd $C_PATH/
- start_all $2
- vtysh_b
- ;;
-
- stop)
- stop_all $2
- echo "Removing all routes made by zebra."
- ip route flush proto zebra
- ;;
-
- status)
- status_all $2
- ;;
-
- restart|force-reload)
- $0 stop $2
- sleep 1
- $0 start $2
- ;;
-
- *)
- echo "Usage: /etc/init.d/quagga {start|stop|restart|status|force-reload} [daemon]"
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/meta-networking/recipes-protocols/quagga/files/quagga.pam b/meta-networking/recipes-protocols/quagga/files/quagga.pam
deleted file mode 100644
index 3541a975ae..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/quagga.pam
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# The PAM configuration file for the quagga `vtysh' service
-#
-
-# This allows root to change user infomation without being
-# prompted for a password
-auth sufficient pam_rootok.so
-
-# The standard Unix authentication modules, used with
-# NIS (man nsswitch) as well as normal /etc/passwd and
-# /etc/shadow entries.
-auth include common-auth
-
diff --git a/meta-networking/recipes-protocols/quagga/files/ripd.service b/meta-networking/recipes-protocols/quagga/files/ripd.service
deleted file mode 100644
index 2c824318a1..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/ripd.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=RIP routing daemon
-BindTo=zebra.service
-After=zebra.service
-ConditionPathExists=@SYSCONFDIR@/quagga/ripd.conf
-
-[Service]
-Type=forking
-EnvironmentFile=-@SYSCONFDIR@/default/quagga
-ExecStart=@SBINDIR@/ripd -d $ripd_options -f @SYSCONFDIR@/quagga/ripd.conf
-ExecStopPost=@base_bindir@/rm -rf /run/quagga/ripd.pid
-Restart=on-abort
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-protocols/quagga/files/ripngd.service b/meta-networking/recipes-protocols/quagga/files/ripngd.service
deleted file mode 100644
index c3555b345b..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/ripngd.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=RIP routing daemon for IPv6
-BindTo=zebra.service
-After=zebra.service
-ConditionPathExists=@SYSCONFDIR@/quagga/ripngd.conf
-
-[Service]
-Type=forking
-EnvironmentFile=-@SYSCONFDIR@/default/quagga
-ExecStart=@SBINDIR@/ripngd -d $ripngd_options -f @SYSCONFDIR@/quagga/ripngd.conf
-ExecStopPost=@base_bindir@/rm -rf /run/quagga/ripngd.pid
-Restart=on-abort
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-protocols/quagga/files/volatiles.03_quagga b/meta-networking/recipes-protocols/quagga/files/volatiles.03_quagga
deleted file mode 100644
index 1f28c0b24d..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/volatiles.03_quagga
+++ /dev/null
@@ -1,3 +0,0 @@
-# <type> <owner> <group> <mode> <path> <linksource>
-d quagga quagga 0755 /var/run/quagga none
-d quagga quagga 0755 /var/log/quagga none
diff --git a/meta-networking/recipes-protocols/quagga/files/watchquagga.default b/meta-networking/recipes-protocols/quagga/files/watchquagga.default
deleted file mode 100644
index 2d601ec97d..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/watchquagga.default
+++ /dev/null
@@ -1,12 +0,0 @@
-# Watchquagga configuration
-#watch_daemons="zebra bgpd ospfd ospf6d ripd ripngd"
-watch_daemons="zebra"
-
-# To enable restarts when multiple daemons are being used, uncomment this line (but first be sure to edit
-# the WATCH_DAEMONS line to reflect the daemons you are actually using):
-#watch_options="-Az -b_ -r/etc/init.d/quagga_restart_%s -s/etc/init.d/quagga_start_%s -k/etc/init.d/quagga_stop_%s"
-
-# Since we are using one quagga daemon for now, use the following line. If using
-# multiple daemons, comment the line below and uncoment the line mentioned
-# above.
-watch_options="-z -b_ -r/etc/init.d/quagga_restart_%s"
diff --git a/meta-networking/recipes-protocols/quagga/files/watchquagga.init b/meta-networking/recipes-protocols/quagga/files/watchquagga.init
deleted file mode 100644
index 5ddd94a3d6..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/watchquagga.init
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/sh
-#
-### BEGIN INIT INFO
-# Provides: watchquagga
-# Required-Start: $local_fs $network $remote_fs $syslog
-# Required-Stop: $local_fs $network $remote_fs $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: start and stop the Quagga watchdog
-### END INIT INFO
-
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-
-# Load configuration
-test -f /etc/default/watchquagga && . /etc/default/watchquagga
-
-# Check that there are daemons to be monitored.
-[ -z "$watch_daemons" ] && exit 0
-
-pidfile="/var/run/quagga/watchquagga.pid"
-
-case "$1" in
- start)
- echo -n "Starting quagga watchdog daemon: watchquagga"
- start-stop-daemon --start \
- --pidfile $pidfile \
- --exec /usr/sbin/watchquagga \
- -- -d $watch_options $watch_daemons
- echo "."
- ;;
-
- stop)
- echo -n "Stopping quagga watchdog daemon: watchquagga"
- start-stop-daemon --stop --quiet \
- --pidfile $pidfile
- echo "."
- ;;
-
- status)
- echo -n "watchquagga "
- res=1
- [ -e $pidfile ] && kill -0 `cat $pidfile` 2> /dev/null
- if [ $? -eq 0 ]; then
- echo "(pid `cat $pidfile`) is running..."
- res=0
- else
- echo "is stopped..."
- fi
- exit $res
- ;;
-
- restart|force-reload)
- $0 stop $2
- sleep 1
- $0 start $2
- ;;
-
- *)
- echo "Usage: /etc/init.d/watchquagga {start|stop|restart|force-reload}"
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/meta-networking/recipes-protocols/quagga/files/zebra.service b/meta-networking/recipes-protocols/quagga/files/zebra.service
deleted file mode 100644
index 9186041ae6..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/zebra.service
+++ /dev/null
@@ -1,16 +0,0 @@
-[Unit]
-Description=GNU Zebra routing manager
-Wants=network.target
-Before=network.target
-ConditionPathExists=@SYSCONFDIR@/quagga/zebra.conf
-
-[Service]
-Type=forking
-EnvironmentFile=-@SYSCONFDIR@/default/quagga
-ExecStartPre=@BASE_SBINDIR@/ip route flush proto zebra
-ExecStart=@SBINDIR@/zebra -d $zebra_options -f @SYSCONFDIR@/quagga/zebra.conf
-ExecStopPost=@base_bindir@/rm -rf /run/quagga/zebra.pid
-Restart=on-abort
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-networking/recipes-protocols/quagga/quagga.inc
deleted file mode 100644
index d368311d13..0000000000
--- a/meta-networking/recipes-protocols/quagga/quagga.inc
+++ /dev/null
@@ -1,243 +0,0 @@
-SUMMARY = "BGP/OSPF/RIP routing daemon"
-DESCRIPTION = "Quagga is a routing software suite, providing \
-implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPv3 and BGPv4 for \
-Unix platforms, particularly FreeBSD, Linux, Solaris and NetBSD. \
-Quagga is a fork of GNU Zebra which was developed by Kunihiro \
-Ishiguro. The Quagga tree aims to build a more involved community \
-around Quagga than the current centralised model of GNU Zebra."
-HOMEPAGE = "http://www.nongnu.org/quagga/"
-SECTION = "net"
-
-
-LICENSE = "GPL-2.0-only & LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=81bcece21748c91ba9992349a91ec11d \
- file://COPYING.LIB;md5=01ef24401ded36cd8e5d18bfe947240c"
-
-DEPENDS = "readline ncurses perl-native c-ares"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'snmp', 'net-snmp', '', d)}"
-SNMP_CONF="${@bb.utils.contains('DISTRO_FEATURES', 'snmp', '--enable-snmp', '', d)}"
-
-# the "ip" command from busybox is not sufficient (flush by protocol flushes all routes)
-RDEPENDS:${PN} += "iproute2"
-
-SRC_URI = "https://github.com/Quagga/quagga/releases/download/quagga-${PV}/quagga-${PV}.tar.gz \
- file://quagga.init \
- file://quagga.default \
- file://watchquagga.init \
- file://watchquagga.default \
- file://volatiles.03_quagga \
- file://quagga.pam \
- file://bgpd.service \
- file://isisd.service \
- file://ospf6d.service \
- file://ospfd.service \
- file://ripd.service \
- file://ripngd.service \
- file://zebra.service \
- "
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
-PACKAGECONFIG[cap] = "--enable-capabilities,--disable-capabilities,libcap"
-PACKAGECONFIG[pam] = "--with-libpam, --without-libpam, libpam"
-
-inherit autotools update-rc.d useradd systemd pkgconfig multilib_header update-alternatives
-
-CFLAGS += "-fcommon"
-
-SYSTEMD_PACKAGES = "${PN} ${PN}-bgpd ${PN}-isisd ${PN}-ospf6d ${PN}-ospfd ${PN}-ripd ${PN}-ripngd"
-SYSTEMD_SERVICE:${PN}-bgpd = "bgpd.service"
-SYSTEMD_SERVICE:${PN}-isisd = "isisd.service"
-SYSTEMD_SERVICE:${PN}-ospf6d = "ospf6d.service"
-SYSTEMD_SERVICE:${PN}-ospfd = "ospfd.service"
-SYSTEMD_SERVICE:${PN}-ripd = "ripd.service"
-SYSTEMD_SERVICE:${PN}-ripngd = "ripngd.service"
-SYSTEMD_SERVICE:${PN} = "zebra.service"
-
-EXTRA_OECONF = "--sysconfdir=${sysconfdir}/quagga \
- --localstatedir=${localstatedir}/run/quagga \
- --enable-exampledir=${docdir}/quagga/examples/ \
- --enable-vtysh \
- --enable-isisd \
- ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '--enable-watchquagga', '--disable-watchquagga', d)} \
- --enable-ospfclient=yes \
- --enable-multipath=64 \
- --enable-user=quagga \
- --enable-group=quagga \
- --enable-vty-group=quaggavty \
- --enable-configfile-mask=0640 \
- --enable-logfile-mask=0640 \
- --enable-rtadv \
- --enable-linux24-tcp-md5 \
- ap_cv_cc_pie=no \
- ${SNMP_CONF}"
-
-CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'"
-
-do_install () {
- # Install init script and default settings
- install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d \
- ${D}${sysconfdir}/quagga ${D}${sysconfdir}/default/volatiles
- install -m 0644 ${WORKDIR}/quagga.default ${D}${sysconfdir}/default/quagga
- install -m 0644 ${WORKDIR}/watchquagga.default ${D}${sysconfdir}/default/watchquagga
- install -m 0755 ${WORKDIR}/quagga.init ${D}${sysconfdir}/init.d/quagga
- install -m 0755 ${WORKDIR}/watchquagga.init ${D}${sysconfdir}/init.d/watchquagga
- install -m 0644 ${WORKDIR}/volatiles.03_quagga ${D}${sysconfdir}/default/volatiles/03_quagga
-
- # Install sample configurations for the daemons
- for f in bgpd vtysh isisd ospfd ripngd zebra ripd ospf6d; do
- install -m 0640 ${S}/$f/$f.conf.sample ${D}${sysconfdir}/quagga/$f.conf.sample
- done
-
- for f in bgpd vtysh isisd ospfd ripngd zebra ripd ospf6d; do
- touch ${D}${sysconfdir}/quagga/$f.conf
- done
- chown quagga:quaggavty ${D}${sysconfdir}/quagga
- chown quagga:quagga ${D}${sysconfdir}/quagga/*.conf
- chmod 750 ${D}${sysconfdir}/quagga
- chmod 640 ${D}${sysconfdir}/quagga/*.conf
-
- # Install quagga
- oe_runmake install DESTDIR=${D} prefix=${prefix} \
- sbindir=${sbindir} \
- sysconfdir=${sysconfdir}/quagga \
- localstatedir=${localstatedir}/run/quagga
-
- # Fix hardcoded paths
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/*
- sed -i 's!/usr/bin/!${bindir}/!g' ${D}${sysconfdir}/init.d/quagga
- sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/* ${D}${sysconfdir}/default/watchquagga
- sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/* ${D}${sysconfdir}/default/volatiles/03_quagga
- sed -i 's!^PATH=.*!PATH=${base_sbindir}:${sbindir}:${base_bindir}:${bindir}!' ${D}${sysconfdir}/init.d/*
- sed -i 's!--with-libtool-sysroot=[^ "]*!!' ${D}${includedir}/quagga/version.h
-
- oe_multilib_header quagga/version.h
-
- # For PAM
- for feature in ${DISTRO_FEATURES}; do
- if [ "$feature" = "pam" ]; then
- install -D -m 644 ${WORKDIR}/quagga.pam ${D}/${sysconfdir}/pam.d/quagga
- break
- fi
- done
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${nonarch_libdir}/tmpfiles.d
- echo "d /run/quagga 0755 quagga quagga -" \
- > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
- fi
-
- # Remove sysinit script if sysvinit is not in DISTRO_FEATURES
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'false', 'true', d)}; then
- rm -rf ${D}${sysconfdir}/init.d/
- rm -f ${D}${sysconfdir}/default/watchquagga
- fi
-
- install -d ${D}${systemd_unitdir}/system
- for i in bgpd isisd ospf6d ospfd ripd ripngd zebra; do
- install -m 0644 ${WORKDIR}/$i.service ${D}${systemd_unitdir}/system
- done
- sed -e 's,@BASE_SBINDIR@,${base_sbindir},g' \
- -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- -e 's,@SBINDIR@,${sbindir},g' \
- -e 's,@base_bindir@,${base_bindir},g' \
- -e 's,@localstatedir@,${localstatedir},g' \
- -i ${D}${systemd_unitdir}/system/*.service
-}
-
-DEPENDS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-systemctl-native', '', d)}"
-pkg_postinst:${PN} () {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd sysvinit', 'true', 'false', d)}; then
- if [ -n "$D" ]; then
- OPTS="--root=$D"
- fi
- systemctl $OPTS mask quagga.service
- fi
-}
-
-# Split into a main package and separate per-protocol packages
-PACKAGE_BEFORE_PN = "${PN}-ospfd ${PN}-ospf6d ${PN}-bgpd \
- ${PN}-ripd ${PN}-ripngd ${PN}-isisd \
- ${PN}-ospfclient ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '${PN}-watchquagga', '', d)}"
-
-RDEPENDS:${PN} += "${PN}-bgpd ${PN}-isisd ${PN}-ospf6d ${PN}-ospfd ${PN}-ripd ${PN}-ripngd"
-
-FILES:${PN}-ospfd = "${sbindir}/ospfd ${libdir}/libospf.so.*"
-FILES:${PN}-ospf6d = "${sbindir}/ospf6d"
-FILES:${PN}-bgpd = "${sbindir}/bgpd"
-FILES:${PN}-ripd = "${sbindir}/ripd"
-FILES:${PN}-ripngd = "${sbindir}/ripngd"
-FILES:${PN}-isisd = "${sbindir}/isisd"
-FILES:${PN}-ospfclient = "${sbindir}/ospfclient ${libdir}/libospfapiclient.so.*"
-FILES:${PN}-watchquagga = "${sbindir}/watchquagga ${sysconfdir}/default/watchquagga \
- ${sysconfdir}/init.d/watchquagga"
-
-FILES:${PN} += "${nonarch_libdir}/tmpfiles.d/*.conf"
-
-# Indicate that the default files are configuration files
-CONFFILES:${PN} = "${sysconfdir}/default/quagga \
- ${sysconfdir}/quagga/bgpd.conf \
- ${sysconfdir}/quagga/vtysh.conf \
- ${sysconfdir}/quagga/isisd.conf \
- ${sysconfdir}/quagga/ospfd.conf \
- ${sysconfdir}/quagga/ripngd.conf \
- ${sysconfdir}/quagga/zebra.conf \
- ${sysconfdir}/quagga/ripd.conf \
- ${sysconfdir}/quagga/ospf6d.conf \
- "
-CONFFILES:${PN}-watchquagga = "${sysconfdir}/default/watchquagga"
-
-# Stop the names being rewritten due to the internal shared libraries
-DEBIAN_NOAUTONAME:${PN}-ospfd = "1"
-DEBIAN_NOAUTONAME:${PN}-ospfclient = "1"
-
-# Main init script starts all deamons
-# Seperate init script for watchquagga
-INITSCRIPT_PACKAGES = "${PN} ${PN}-watchquagga"
-INITSCRIPT_NAME:${PN} = "quagga"
-INITSCRIPT_PARAMS:${PN} = "defaults 15 85"
-INITSCRIPT_NAME:${PN}-watchquagga = "watchquagga"
-INITSCRIPT_PARAMS:${PN}-watchquagga = "defaults 90 10"
-
-# Add quagga's user and group
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM:${PN} = "--system quagga ; --system quaggavty"
-USERADD_PARAM:${PN} = "--system --home ${localstatedir}/run/quagga/ -M -g quagga -G quaggavty --shell /bin/false quagga"
-
-pkg_postinst:${PN} () {
- if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
- ${sysconfdir}/init.d/populate-volatile.sh update
- fi
-}
-
-# Stop apps before uninstall
-pkg_prerm:${PN} () {
- ${sysconfdir}/init.d/quagga stop
-}
-
-pkg_prerm:${PN}-ospfd () {
- ${sysconfdir}/init.d/quagga stop ospfd
-}
-
-pkg_prerm:${PN}-ospf6d () {
- ${sysconfdir}/init.d/quagga stop ospf6d
-}
-
-pkg_prerm:${PN}-bgpd () {
- ${sysconfdir}/init.d/quagga stop bgpd
-}
-
-pkg_prerm:${PN}-ripd () {
- ${sysconfdir}/init.d/quagga stop ripd
-}
-
-pkg_prerm:${PN}-ripngd () {
- ${sysconfdir}/init.d/quagga stop ripngd
-}
-
-pkg_prerm:${PN}-isisd () {
- ${sysconfdir}/init.d/quagga stop isisd
-}
-
-ALTERNATIVE:${PN} = "pimd"
-ALTERNATIVE_LINK_NAME[pimd] = "${sbindir}/pimd"
-
diff --git a/meta-networking/recipes-protocols/quagga/quagga_1.2.4.bb b/meta-networking/recipes-protocols/quagga/quagga_1.2.4.bb
deleted file mode 100644
index 37cfc131c2..0000000000
--- a/meta-networking/recipes-protocols/quagga/quagga_1.2.4.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require quagga.inc
-
-SRC_URI += "file://0001-configure-Check-for-readline-instead-of-main-in-libr.patch"
-
-SRC_URI[md5sum] = "eced21b054d71c9e1b7c6ac43286a166"
-SRC_URI[sha256sum] = "e364c082c3309910e1eb7b068bf39ee298e2f2f3f31a6431a5c115193bd653d3"
-
-CVE_CHECK_IGNORE += "\
- CVE-2016-4049 \
-"
diff --git a/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/Modify-configure.in-and-etc-Makefile.am.patch b/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/Modify-configure.in-and-etc-Makefile.am.patch
index ecc2d74e74..fd9961b9e8 100644
--- a/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/Modify-configure.in-and-etc-Makefile.am.patch
+++ b/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng/Modify-configure.in-and-etc-Makefile.am.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Modify configure.in and etc/Makefile.am
this patch is from Fedora to fix error:
"conftest.c:26:9: error: unknown type name 'not'"
-Upstream-Status: pending
+Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
diff --git a/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb b/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb
index 4696c3baeb..6baa83e83e 100644
--- a/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb
+++ b/meta-networking/recipes-protocols/radiusclient-ng/radiusclient-ng_0.5.6.bb
@@ -5,11 +5,10 @@ protocol (RFCs 2128 and 2139)."
HOMEPAGE = "http://sourceforge.net/projects/radiusclient-ng.berlios/"
SECTION = "net"
-SRC_URI = "${DEBIAN_MIRROR}/main/r/${BPN}/${BPN}_${PV}.orig.tar.gz \
+SRC_URI = "http://archive.ubuntu.com/ubuntu/pool/universe/r/${BPN}/${BPN}_${PV}.orig.tar.gz \
file://Modify-configure.in-and-etc-Makefile.am.patch \
file://config-site.radiusclient-ng-${PV}"
-SRC_URI[md5sum] = "6fb7d4d0aefafaee7385831ac46a8e9c"
SRC_URI[sha256sum] = "282a9f1355f190efbb06c0d7c4e062eaa652caf342ed3ad361ac595f72f09f14"
LICENSE = "BSD-3-Clause & BSD-2-Clause & HPND"
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/0001-ppoe-Dont-include-linux-if_ether.h.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/0001-ppoe-Dont-include-linux-if_ether.h.patch
index 7601f0d325..572886a26c 100644
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/0001-ppoe-Dont-include-linux-if_ether.h.patch
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/0001-ppoe-Dont-include-linux-if_ether.h.patch
@@ -8,6 +8,8 @@ Fixes build with musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/pppoe.h | 4 ----
1 file changed, 4 deletions(-)
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/0002-Enable-support-for-the-kernel-module.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/0002-Enable-support-for-the-kernel-module.patch
index 2103b38888..cd9e40d5eb 100644
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/0002-Enable-support-for-the-kernel-module.patch
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/0002-Enable-support-for-the-kernel-module.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] Enable support for the kernel module
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/configure.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure.in-Error-fix.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure.in-Error-fix.patch
deleted file mode 100644
index bbd516fde9..0000000000
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure.in-Error-fix.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From bdd20b7a584a20504dfabb409a41ee2b9ae41657 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Wed, 19 Aug 2015 13:52:57 +0900
-Subject: [PATCH] configure.in: Error fix.
-
-the error is: conftest.c:9:28: fatal error: ac_nonexistent.h:
-No such file or directory #include <ac_nonexistent.h>
-
-Upstream-Status: pending
-
-Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
-
----
- src/configure.in | 30 ------------------------------
- 1 file changed, 30 deletions(-)
-
-diff --git a/src/configure.in b/src/configure.in
-index 1714e69..cae0976 100644
---- a/src/configure.in
-+++ b/src/configure.in
-@@ -195,36 +195,6 @@ if test "$GCC" = yes; then
- CFLAGS="$CFLAGS -fno-strict-aliasing -Wall -Wstrict-prototypes"
- fi
-
--dnl Figure out packing order of structures
--AC_CACHE_CHECK([packing order of bit fields],rpppoe_cv_pack_bitfields,[
--if test "${rpppoe_cv_pack_bitfields+set}" != set ; then
--AC_TRY_RUN([
--union foo {
-- struct bar {
-- unsigned int ver:4;
-- unsigned int type:4;
-- } bb;
-- unsigned char baz;
--};
--
--int
--main(void)
--{
-- union foo x;
-- x.bb.ver = 1;
-- x.bb.type = 2;
-- if (x.baz == 0x21) {
-- return 1;
-- } else if (x.baz == 0x12) {
-- return 0;
-- } else {
-- return 2;
-- }
--}], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev,
--$ECHO "no defaults for cross-compiling"; exit 1)
--fi
--])
--
- if test "$rpppoe_cv_pack_bitfields" = "rev" ; then
- AC_MSG_RESULT(reversed)
- AC_DEFINE([PACK_BITFIELDS_REVERSED], [], [Reversed bitfields])
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure.patch
index be892803e6..c486716b97 100644
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure.patch
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure.patch
@@ -3,6 +3,8 @@ From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Fri, 18 Jul 2014 08:25:16 +0000
---
+Upstream-Status: Pending
+
configure.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure_in_cross.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure_in_cross.patch
index 3b945934f6..6e859a354c 100644
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure_in_cross.patch
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure_in_cross.patch
@@ -8,13 +8,12 @@ a few target paths, reworks a few tests to be more friendly for cross
and drops other tests.
Upstream-Status: Inappropriate [build system specific changes]
-
---
- src/configure.in | 66 ++++++++++++++------------------------------------------
- 1 file changed, 16 insertions(+), 50 deletions(-)
+ src/configure.in | 62 ++++++++++--------------------------------------
+ 1 file changed, 12 insertions(+), 50 deletions(-)
diff --git a/src/configure.in b/src/configure.in
-index 90a07df..1d30243 100644
+index 4add50c..9dff457 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -5,6 +5,13 @@ AC_INIT(pppoe.c)
@@ -67,13 +66,15 @@ index 90a07df..1d30243 100644
fi
AC_SUBST(LINUX_KERNELMODE_PLUGIN)
-@@ -142,15 +149,8 @@ AC_CHECK_SIZEOF(unsigned short)
+@@ -142,17 +149,8 @@ AC_CHECK_SIZEOF(unsigned short)
AC_CHECK_SIZEOF(unsigned int)
AC_CHECK_SIZEOF(unsigned long)
+-dnl Check for location of ip
+-AC_PATH_PROG(IP, ip, NOTFOUND, $PATH:/bin:/sbin:/usr/bin:/usr/sbin)
+-
-dnl Check for location of pppd
-AC_PATH_PROG(PPPD, pppd, NOTFOUND, $PATH:/sbin:/usr/sbin:/usr/local/sbin)
--AC_PATH_PROG(ECHO, echo, echo)
-
-dnl Check for setsid (probably Linux-specific)
-AC_PATH_PROG(SETSID, setsid, "", $PATH:/sbin:/usr/sbin:/usr/local/sbin)
@@ -84,7 +85,7 @@ index 90a07df..1d30243 100644
dnl Check for Linux-specific kernel support for PPPoE
AC_MSG_CHECKING(for Linux 2.4.X kernel-mode PPPoE support)
-@@ -195,44 +195,8 @@ if test "$GCC" = yes; then
+@@ -195,42 +193,6 @@ if test "$GCC" = yes; then
CFLAGS="$CFLAGS -fno-strict-aliasing -Wall -Wstrict-prototypes"
fi
@@ -124,30 +125,9 @@ index 90a07df..1d30243 100644
- ;;
-esac
-
- dnl Figure out packing order of structures
--AC_MSG_CHECKING([packing order of bit fields])
-+AC_CACHE_CHECK([packing order of bit fields],rpppoe_cv_pack_bitfields,[
- if test "${rpppoe_cv_pack_bitfields+set}" != set ; then
- AC_TRY_RUN([
- union foo {
-@@ -259,10 +223,11 @@ main(void)
- }], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev,
- $ECHO "no defaults for cross-compiling"; exit 0)
- fi
-+])
-
- if test "$rpppoe_cv_pack_bitfields" = "rev" ; then
- AC_MSG_RESULT(reversed)
-- AC_DEFINE(PACK_BITFIELDS_REVERSED)
-+ AC_DEFINE([PACK_BITFIELDS_REVERSED], [], [Reversed bitfields])
- else
- AC_MSG_RESULT(normal)
- fi
-@@ -326,6 +291,7 @@ AC_SUBST(PPPOE_SERVER_DEPS)
- AC_SUBST(RDYNAMIC)
- AC_SUBST(LIBEVENT)
- AC_SUBST(ECHO)
-+AC_SUBST(HAVE_STRUCT_SOCKADDR_LL)
- AC_SUBST(LDFLAGS)
-
- datadir_evaluated=`eval echo $datadir`
+ # Sigh... got to fix this up for tcl
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix.
+--
+2.34.1
+
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/discard-use-of-dnl-in-Makefile.am.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/discard-use-of-dnl-in-Makefile.am.patch
index 9801f6e277..57301f430d 100644
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/discard-use-of-dnl-in-Makefile.am.patch
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/discard-use-of-dnl-in-Makefile.am.patch
@@ -9,6 +9,8 @@ not introduce a comment.
Signed-off-by: Ting Liu <b28495@freescale.com>
---
+Upstream-Status: Pending
+
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/dont-swallow-errors.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/dont-swallow-errors.patch
deleted file mode 100644
index 8a857888b3..0000000000
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/dont-swallow-errors.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a9a7322273c51882af58c35ba288a0fae00ba841 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Wed, 19 Aug 2015 12:33:41 +0900
-Subject: [PATCH] don't swallow errors
-
-Further fixup to the configure scripts to not swallow errors
-
-Upstream-Status: Pending
-
----
- src/configure.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/configure.in b/src/configure.in
-index 1d30243..1714e69 100644
---- a/src/configure.in
-+++ b/src/configure.in
-@@ -221,7 +221,7 @@ main(void)
- return 2;
- }
- }], rpppoe_cv_pack_bitfields=normal, rpppoe_cv_pack_bitfields=rev,
--$ECHO "no defaults for cross-compiling"; exit 0)
-+$ECHO "no defaults for cross-compiling"; exit 1)
- fi
- ])
-
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.13.bb b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.13.bb
deleted file mode 100644
index 846abca032..0000000000
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.13.bb
+++ /dev/null
@@ -1,78 +0,0 @@
-SUMMARY = "A user-mode PPPoE client and server suite for Linux"
-HOMEPAGE = "http://www.roaringpenguin.com/products/pppoe"
-SECTION = "net"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=a194eaefae2be54ee3221339b10d0581"
-
-PR = "r10"
-
-SRC_URI = "https://dianne.skoll.ca/projects/rp-pppoe/download/rp-pppoe-${PV}.tar.gz \
- file://top-autoconf.patch \
- file://configure_in_cross.patch \
- file://update-config.patch \
- file://dont-swallow-errors.patch \
- file://discard-use-of-dnl-in-Makefile.am.patch \
- file://configure.patch \
- file://pppoe-server.default \
- file://pppoe-server.init \
- file://configure.in-Error-fix.patch \
- file://pppoe-server.service \
- file://0001-ppoe-Dont-include-linux-if_ether.h.patch \
- file://0002-Enable-support-for-the-kernel-module.patch \
- "
-
-SRC_URI[md5sum] = "ec9dccd9a367a1f71f2dc81069796dd8"
-SRC_URI[sha256sum] = "8cd6bc71ba46bd5f6eb4daf60220ccdcd991a8525111dee466501b1b9717e676"
-
-inherit autotools-brokensep update-rc.d systemd
-
-CACHED_CONFIGUREVARS += "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', 'rpppoe_cv_pack_bitfields=normal', 'rpppoe_cv_pack_bitfields=rev', d)}"
-
-do_install:append() {
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/pppoe-server.service ${D}${systemd_unitdir}/system
- sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/pppoe-server.service
- sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/pppoe-server.service
- install -d ${D}${datadir}/doc/${PN}
- if [ -f ${D}${datadir}/doc/README ]; then
- mv ${D}${datadir}/doc/README ${D}${datadir}/doc/${PN}/
- fi
-}
-
-do_install() {
- # Install init script and default settings
- install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d
- install -m 0644 ${WORKDIR}/pppoe-server.default ${D}${sysconfdir}/default/pppoe-server
- install -m 0755 ${WORKDIR}/pppoe-server.init ${D}${sysconfdir}/init.d/pppoe-server
- # Install
- oe_runmake -C ${S} DESTDIR=${D} docdir=${docdir} install
- chmod 4755 ${D}${sbindir}/pppoe
-}
-
-SYSTEMD_PACKAGES = "${PN}-server"
-SYSTEMD_SERVICE:${PN}-server = "pppoe-server.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-# Insert server package before main package
-PACKAGES = "${PN}-dbg ${PN}-server ${PN}-relay ${PN}-sniff ${PN} ${PN}-doc"
-
-FILES:${PN}-server = "${sysconfdir}/default/pppoe-server \
- ${sysconfdir}/init.d/pppoe-server \
- ${sbindir}/pppoe-server \
- ${sysconfdir}/ppp/pppoe-server-options"
-FILES:${PN}-relay = "${sbindir}/pppoe-relay"
-FILES:${PN}-sniff = "${sbindir}/pppoe-sniff"
-
-CONFFILES:${PN} = "${sysconfdir}/ppp/pppoe.conf \
- ${sysconfdir}/ppp/firewall-standalone \
- ${sysconfdir}/ppp/firewall-masq"
-CONFFILES:${PN}-server = "${sysconfdir}/ppp/pppoe-server-options \
- ${sysconfdir}/default/pppoe-server"
-
-INITSCRIPT_PACKAGES = "${PN}-server"
-INITSCRIPT_NAME:${PN}-server = "pppoe-server"
-INITSCRIPT_PARAMS:${PN}-server = "defaults 92 8"
-
-RDEPENDS:${PN} = "ppp"
-RDEPENDS:${PN}-server = "${PN}"
-RRECOMMENDS:${PN} = "ppp-oe"
-
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.15.bb b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.15.bb
new file mode 100644
index 0000000000..4dfdb8fc21
--- /dev/null
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.15.bb
@@ -0,0 +1,77 @@
+SUMMARY = "A user-mode PPPoE client and server suite for Linux"
+HOMEPAGE = "http://www.roaringpenguin.com/products/pppoe"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=a194eaefae2be54ee3221339b10d0581"
+
+
+SRC_URI = "https://dianne.skoll.ca/projects/rp-pppoe/download/OLD/rp-pppoe-${PV}.tar.gz \
+ file://top-autoconf.patch \
+ file://configure_in_cross.patch \
+ file://update-config.patch \
+ file://discard-use-of-dnl-in-Makefile.am.patch \
+ file://configure.patch \
+ file://pppoe-server.default \
+ file://pppoe-server.init \
+ file://pppoe-server.service \
+ file://0001-ppoe-Dont-include-linux-if_ether.h.patch \
+ file://0002-Enable-support-for-the-kernel-module.patch \
+ "
+
+SRC_URI[sha256sum] = "b1f318bc7e4e5b0fd8a8e23e8803f5e6e43165245a5a10a7162a92a6cf17829a"
+
+inherit autotools-brokensep update-rc.d systemd
+
+CACHED_CONFIGUREVARS += "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'be', 'rpppoe_cv_pack_bitfields=normal', 'rpppoe_cv_pack_bitfields=rev', d)}"
+
+# Needed for strlcpy()
+CFLAGS += "-D_GNU_SOURCE"
+
+do_install:append() {
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/pppoe-server.service ${D}${systemd_unitdir}/system
+ sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/pppoe-server.service
+ sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/pppoe-server.service
+ install -d ${D}${datadir}/doc/${PN}
+ if [ -f ${D}${datadir}/doc/README ]; then
+ mv ${D}${datadir}/doc/README ${D}${datadir}/doc/${PN}/
+ fi
+}
+
+do_install() {
+ # Install init script and default settings
+ install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d
+ install -m 0644 ${WORKDIR}/pppoe-server.default ${D}${sysconfdir}/default/pppoe-server
+ install -m 0755 ${WORKDIR}/pppoe-server.init ${D}${sysconfdir}/init.d/pppoe-server
+ # Install
+ oe_runmake -C ${S} DESTDIR=${D} docdir=${docdir} install
+ chmod 4755 ${D}${sbindir}/pppoe
+}
+
+SYSTEMD_PACKAGES = "${PN}-server"
+SYSTEMD_SERVICE:${PN}-server = "pppoe-server.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+# Insert server package before main package
+PACKAGES = "${PN}-dbg ${PN}-server ${PN}-relay ${PN}-sniff ${PN} ${PN}-doc"
+
+FILES:${PN}-server = "${sysconfdir}/default/pppoe-server \
+ ${sysconfdir}/init.d/pppoe-server \
+ ${sbindir}/pppoe-server \
+ ${sysconfdir}/ppp/pppoe-server-options"
+FILES:${PN}-relay = "${sbindir}/pppoe-relay"
+FILES:${PN}-sniff = "${sbindir}/pppoe-sniff"
+
+CONFFILES:${PN} = "${sysconfdir}/ppp/pppoe.conf \
+ ${sysconfdir}/ppp/firewall-standalone \
+ ${sysconfdir}/ppp/firewall-masq"
+CONFFILES:${PN}-server = "${sysconfdir}/ppp/pppoe-server-options \
+ ${sysconfdir}/default/pppoe-server"
+
+INITSCRIPT_PACKAGES = "${PN}-server"
+INITSCRIPT_NAME:${PN}-server = "pppoe-server"
+INITSCRIPT_PARAMS:${PN}-server = "defaults 92 8"
+
+RDEPENDS:${PN} = "ppp"
+RDEPENDS:${PN}-server = "${PN}"
+RRECOMMENDS:${PN} = "ppp-oe"
+
diff --git a/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb b/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb
index dcfa7406d2..4c18c6aff9 100644
--- a/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb
+++ b/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "This is a userland SCTP stack supporting FreeBSD, Linux, Mac OS X
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=ffcf846341f3856d79a483eafa18e2a5"
-SRCREV = "a10cd498d964508c0e6ec6bd2be9dd4afcbb4d86"
+SRCREV = "848eca82f92273af9a79687a90343a2ebcf3481d"
SRC_URI = "git://github.com/sctplab/usrsctp;protocol=https;branch=master \
"
@@ -24,4 +24,4 @@ PACKAGECONFIG[inet6] = "--enable-inet6,--disable-inet6,"
EXTRA_OECONF += "--disable-debug"
-CVE_VERSION = "0.9.3.0"
+CVE_VERSION = "0.9.5.0"
diff --git a/meta-networking/recipes-protocols/vsomeip/vsomeip/0001-Fix-pkgconfig-dir-for-multilib.patch b/meta-networking/recipes-protocols/vsomeip/vsomeip/0001-Fix-pkgconfig-dir-for-multilib.patch
new file mode 100644
index 0000000000..0ddcb642bc
--- /dev/null
+++ b/meta-networking/recipes-protocols/vsomeip/vsomeip/0001-Fix-pkgconfig-dir-for-multilib.patch
@@ -0,0 +1,28 @@
+From 2f931baf290477b586309189445bf87e3bc5d5ba Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 2 Mar 2022 14:51:13 +0800
+Subject: [PATCH] Fix pkgconfig dir for multilib
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ab399a69..beae6eaf 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -637,7 +637,7 @@ endif()
+ # create pkg-config file
+ if(NOT WIN32)
+ configure_file(${VSOMEIP_NAME}.pc.in ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc @ONLY)
+- install(FILES ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc DESTINATION lib/pkgconfig)
++ install(FILES ${PROJECT_BINARY_DIR}/${VSOMEIP_NAME}.pc DESTINATION ${INSTALL_LIB_DIR}/pkgconfig)
+ endif()
+
+ ##############################################################################
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/vsomeip/vsomeip/0002-Install-example-configuration-files-to-etc-vsomeip.patch b/meta-networking/recipes-protocols/vsomeip/vsomeip/0002-Install-example-configuration-files-to-etc-vsomeip.patch
new file mode 100644
index 0000000000..bdaf343606
--- /dev/null
+++ b/meta-networking/recipes-protocols/vsomeip/vsomeip/0002-Install-example-configuration-files-to-etc-vsomeip.patch
@@ -0,0 +1,28 @@
+From ebaa3206ee125741314272cddafa04fa71bd2d1e Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 9 Mar 2022 11:48:44 +0800
+Subject: [PATCH] Install example configuration files to /etc/vsomeip
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index beae6eaf..d791c12e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -536,7 +536,7 @@ install(FILES ${PROJECT_BINARY_DIR}/vsomeip.pc DESTINATION lib/pkgconfig)
+ endif ()
+
+ install (
+- FILES ${EXAMPLE_CONFIG_FILES} DESTINATION etc/vsomeip COMPONENT config
++ FILES ${EXAMPLE_CONFIG_FILES} DESTINATION ${DEFAULT_CONFIGURATION_FOLDER} COMPONENT config
+ )
+
+ # Add all targets to the build-tree export set
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/vsomeip/vsomeip/0003-Do-not-build-external-gtest.patch b/meta-networking/recipes-protocols/vsomeip/vsomeip/0003-Do-not-build-external-gtest.patch
new file mode 100644
index 0000000000..09dab9a8b0
--- /dev/null
+++ b/meta-networking/recipes-protocols/vsomeip/vsomeip/0003-Do-not-build-external-gtest.patch
@@ -0,0 +1,187 @@
+From b1bf398015bc090020459954e5cd1ec3b51b8ac3 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Tue, 11 Jul 2023 16:53:46 +0800
+Subject: [PATCH] Do not build external gtest
+
+We don't need to build external gtest since we already depend on
+googletest.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ CMakeLists.txt | 11 ----
+ test/CMakeLists.txt | 22 +------
+ test/network_tests/CMakeLists.txt | 99 -------------------------------
+ 3 files changed, 3 insertions(+), 129 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d791c12e..f1bcba27 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,17 +18,6 @@ set (VSOMEIP_VERSION ${VSOMEIP_MAJOR_VERSION}.${VSOMEIP_MINOR_VERSION}.${VSOMEIP
+ set (PACKAGE_VERSION ${VSOMEIP_VERSION}) # Used in documentation/doxygen.in
+ set (CMAKE_VERBOSE_MAKEFILE off)
+
+-if (NOT GTEST_ROOT)
+- if (DEFINED ENV{GTEST_ROOT})
+- set(GTEST_ROOT $ENV{GTEST_ROOT})
+- else()
+- include(FetchContent)
+- FetchContent_Declare(googletest GIT_REPOSITORY https://github.com/google/googletest.git GIT_TAG v1.14.0)
+- FetchContent_Populate(googletest)
+- set(GTEST_ROOT ${googletest_SOURCE_DIR})
+- endif()
+-endif()
+-
+ ###################################################################################################
+ # see http://www.cmake.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file
+ ###################################################################################################
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index f66ac5d3..6f09bf40 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -17,27 +17,11 @@ find_package(benchmark)
+ # remove export symbols from the cxx flags
+ string(REPLACE "${EXPORTSYMBOLS}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+
+-# check for set environment variable
+-if(${GTEST_ROOT} STREQUAL "n/a")
+- message(STATUS "GTEST_ROOT is not defined. For building the tests the variable
+- GTEST_ROOT has to be defined. Tests can not be built.")
+- # early exit
+- return() # test can not be build -> make commands build_tests and check are not available
+-else()
+- message(STATUS "GTEST_ROOT is set. gtest root path set to ${GTEST_ROOT}")
++find_package(GTest)
++if (NOT GTest_FOUND)
++ message(WARNING "GTest is not found. Tests can not be built.")
+ endif()
+
+-# build google test as static library (always) -> therefore deactivate BUILD_SHARED_LIBS in case it is active
+-set(BUILD_SHARED_LIBS_AUTOMATIC_OFF 0)
+-if ("${BUILD_SHARED_LIBS}" STREQUAL "ON")
+- set(BUILD_SHARED_LIBS OFF)
+- set(BUILD_SHARED_LIBS_AUTOMATIC_OFF 1)
+-endif()
+-add_subdirectory(${GTEST_ROOT} ${CMAKE_CURRENT_BINARY_DIR}/gtest EXCLUDE_FROM_ALL)
+-if ("${BUILD_SHARED_LIBS_AUTOMATIC_OFF}" STREQUAL "1")
+- set(BUILD_SHARED_LIBS ON)
+- set(BUILD_SHARED_LIBS_AUTOMATIC_OFF 0)
+-endif()
+
+ ##############################################################################
+ # build tests
+diff --git a/test/network_tests/CMakeLists.txt b/test/network_tests/CMakeLists.txt
+index 883cc5cf..9a2a4f5e 100644
+--- a/test/network_tests/CMakeLists.txt
++++ b/test/network_tests/CMakeLists.txt
+@@ -4116,105 +4116,6 @@ if(NOT ${TESTS_BAT})
+
+ endif()
+
+-##############################################################################
+-# Add for every test a dependency to gtest
+-##############################################################################
+-
+-if(NOT ${TESTS_BAT})
+- add_dependencies(${TEST_CONFIGURATION} gtest)
+- add_dependencies(${TEST_APPLICATION} gtest)
+- add_dependencies(${TEST_APPLICATION_SINGLE_PROCESS_NAME} gtest)
+- add_dependencies(${TEST_APPLICATION_AVAILABILITY_NAME} gtest)
+- add_dependencies(${TEST_MAGIC_COOKIES_CLIENT} gtest)
+- add_dependencies(${TEST_MAGIC_COOKIES_SERVICE} gtest)
+- add_dependencies(${TEST_HEADER_FACTORY} gtest)
+- add_dependencies(${TEST_HEADER_FACTORY_CLIENT} gtest)
+- add_dependencies(${TEST_HEADER_FACTORY_SERVICE} gtest)
+- add_dependencies(${TEST_LOCAL_ROUTING_SERVICE} gtest)
+- add_dependencies(${TEST_LOCAL_ROUTING_CLIENT} gtest)
+- add_dependencies(${TEST_EXTERNAL_LOCAL_ROUTING_SERVICE} gtest)
+- add_dependencies(${TEST_PAYLOAD_SERVICE} gtest)
+- add_dependencies(${TEST_PAYLOAD_CLIENT} gtest)
+- add_dependencies(${TEST_BIG_PAYLOAD_SERVICE} gtest)
+- add_dependencies(${TEST_BIG_PAYLOAD_CLIENT} gtest)
+- add_dependencies(${TEST_CLIENT_ID_SERVICE} gtest)
+- add_dependencies(${TEST_CLIENT_ID_UTILITY} gtest)
+- add_dependencies(${TEST_DEBOUNCE_CLIENT} gtest)
+- add_dependencies(${TEST_DEBOUNCE_SERVICE} gtest)
+- add_dependencies(${TEST_DEBOUNCE_FILTER_CLIENT} gtest)
+- add_dependencies(${TEST_DEBOUNCE_FILTER_SERVICE} gtest)
+- add_dependencies(${TEST_DEBOUNCE_CALLBACK_CLIENT} gtest)
+- add_dependencies(${TEST_DEBOUNCE_CALLBACK_SERVICE} gtest)
+- add_dependencies(${TEST_DEBOUNCE_FREQUENCY_CLIENT} gtest)
+- add_dependencies(${TEST_DEBOUNCE_FREQUENCY_SERVICE} gtest)
+- add_dependencies(${TEST_SUBSCRIBE_NOTIFY_SERVICE} gtest)
+- add_dependencies(${TEST_SUBSCRIBE_NOTIFY_ONE_EVENT_TWO_EVENTGROUPS_SERVICE} gtest)
+- add_dependencies(${TEST_SUBSCRIBE_NOTIFY_ONE_EVENT_TWO_EVENTGROUPS_CLIENT} gtest)
+- add_dependencies(${TEST_SUBSCRIBE_NOTIFY_ONE_SERVICE} gtest)
+- add_dependencies(${TEST_CPU_LOAD_SERVICE} gtest)
+- add_dependencies(${TEST_CPU_LOAD_CLIENT} gtest)
+- add_dependencies(${TEST_INITIAL_EVENT_SERVICE} gtest)
+- add_dependencies(${TEST_INITIAL_EVENT_CLIENT} gtest)
+- add_dependencies(${TEST_INITIAL_EVENT_AVAILABILITY_CHECKER} gtest)
+- add_dependencies(${TEST_INITIAL_EVENT_STOP_SERVICE} gtest)
+- add_dependencies(${TEST_OFFER_SERVICE} gtest)
+- add_dependencies(${TEST_OFFER_CLIENT} gtest)
+- add_dependencies(${TEST_OFFER_SERVICE_EXTERNAL} gtest)
+- add_dependencies(${TEST_OFFER_EXTERNAL_SD_MESSAGE_SENDER} gtest)
+- add_dependencies(${TEST_OFFERED_SERVICES_INFO_CLIENT} gtest)
+- add_dependencies(${TEST_OFFERED_SERVICES_INFO_SERVICE} gtest)
+- add_dependencies(${TEST_PENDING_SUBSCRIPTION_SERVICE} gtest)
+- add_dependencies(${TEST_PENDING_SUBSCRIPTION_CLIENT} gtest)
+- add_dependencies(${TEST_MALICIOUS_DATA_SERVICE} gtest)
+- add_dependencies(${TEST_MALICIOUS_DATA_CLIENT} gtest)
+- if (${TEST_SECURITY})
+- add_dependencies(${TEST_SECURITY_SERVICE} gtest)
+- add_dependencies(${TEST_SECURITY_CLIENT} gtest)
+- endif()
+- add_dependencies(${TEST_E2E_SERVICE} gtest)
+- add_dependencies(${TEST_E2E_CLIENT} gtest)
+- if (${TEST_E2E_PROFILE_04})
+- add_dependencies(${TEST_E2E_PROFILE_04_SERVICE} gtest)
+- add_dependencies(${TEST_E2E_PROFILE_04_CLIENT} gtest)
+- endif()
+- if (${TEST_E2E_PROFILE_07})
+- add_dependencies(${TEST_E2E_PROFILE_07_SERVICE} gtest)
+- add_dependencies(${TEST_E2E_PROFILE_07_CLIENT} gtest)
+- endif()
+- add_dependencies(${TEST_EVENT_SERVICE} gtest)
+- add_dependencies(${TEST_EVENT_CLIENT} gtest)
+- if (NOT ${CMAKE_SYSTEM_NAME} MATCHES "QNX")
+- add_dependencies(${TEST_NPDU_SERVICE_ONE} gtest)
+- add_dependencies(${TEST_NPDU_SERVICE_TWO} gtest)
+- add_dependencies(${TEST_NPDU_SERVICE_THREE} gtest)
+- add_dependencies(${TEST_NPDU_SERVICE_FOUR} gtest)
+- add_dependencies(${TEST_NPDU_CLIENT_ONE} gtest)
+- add_dependencies(${TEST_NPDU_CLIENT_TWO} gtest)
+- add_dependencies(${TEST_NPDU_CLIENT_THREE} gtest)
+- add_dependencies(${TEST_NPDU_CLIENT_FOUR} gtest)
+- add_dependencies(${TEST_NPDU_DAEMON_CLIENT} gtest)
+- add_dependencies(${TEST_NPDU_DAEMON_SERVICE} gtest)
+- endif()
+- add_dependencies(${TEST_SOMEIPTP_CLIENT} gtest)
+- add_dependencies(${TEST_SOMEIPTP_SERVICE} gtest)
+- if(${TEST_SECOND_ADDRESS})
+- add_dependencies(${TEST_SECOND_ADDRESS_CLIENT} gtest)
+- add_dependencies(${TEST_SECOND_ADDRESS_SERVICE} gtest)
+- endif()
+- add_dependencies(${TEST_SUSPEND_RESUME_CLIENT} gtest)
+- add_dependencies(${TEST_SUSPEND_RESUME_SERVICE} gtest)
+-else()
+- add_dependencies(${TEST_APPLICATION} gtest)
+- add_dependencies(${TEST_HEADER_FACTORY} gtest)
+- add_dependencies(${TEST_HEADER_FACTORY_CLIENT} gtest)
+- add_dependencies(${TEST_HEADER_FACTORY_SERVICE} gtest)
+- add_dependencies(${TEST_PAYLOAD_SERVICE} gtest)
+- add_dependencies(${TEST_PAYLOAD_CLIENT} gtest)
+- add_dependencies(${TEST_BIG_PAYLOAD_SERVICE} gtest)
+- add_dependencies(${TEST_BIG_PAYLOAD_CLIENT} gtest)
+- add_dependencies(${TEST_LOCAL_ROUTING_SERVICE} gtest)
+- add_dependencies(${TEST_LOCAL_ROUTING_CLIENT} gtest)
+-endif()
+
+ ##############################################################################
+ # Add tests to the target build_network_tests
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/vsomeip/vsomeip/0004-Do-not-specify-PIE-flag-explicitly.patch b/meta-networking/recipes-protocols/vsomeip/vsomeip/0004-Do-not-specify-PIE-flag-explicitly.patch
new file mode 100644
index 0000000000..4bb2318555
--- /dev/null
+++ b/meta-networking/recipes-protocols/vsomeip/vsomeip/0004-Do-not-specify-PIE-flag-explicitly.patch
@@ -0,0 +1,47 @@
+From ec2d36466c9050ee282ea1c3bb1b5f1f61c96ecb Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Mon, 17 Jul 2023 14:33:32 +0800
+Subject: [PATCH] Do not specify PIE flag explicitly
+
+For nodistro distro, packages are built without PIE because
+security_flags.inc is not included by default. But in vsomeip, the PIE
+flag is explicitly specified in CMAKE_CXX_FLAGS, which will cause
+building with PIE even in nodistro, causing an error when linking the
+googletest static library:
+
+TOPDIR/tmp-glibc/work/cortexa53-oe-linux/vsomeip/3.1.20.3-r0/recipe-sysroot-native/usr/bin/aarch64-oe-linux/../../libexec/aarch64-oe-linux/gcc/aarch64-oe-linux/12.2.0/ld:
+TOPDIR/tmp-glibc/work/cortexa53-oe-linux/vsomeip/3.1.20.3-r0/recipe-sysroot/usr/lib/libgtest.a(gtest-all.cc.o)(.text+0x4a90):
+unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `_ZSt4cerr@@GLIBCXX_3.4'
+
+Remove PIE flag from CMAKE_CXX_FLAGS and only enable PIE flag by
+including security_flags.inc.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f1bcba27..2653a4df 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -60,12 +60,12 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ # This is only relevant for GCC and causes warnings on Clang
+ set(EXPORTSYMBOLS "-Wl,-export-dynamic -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exportmap.gcc")
+- set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -pie -Wno-tsan -Wl,-z,relro,-z,now")
++ set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -Wno-tsan -Wl,-z,relro,-z,now")
+ endif()
+
+ set(NO_DEPRECATED "")
+ set(OPTIMIZE "")
+- set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -D_GLIBCXX_USE_NANOSLEEP -pthread -O -Wall -Wextra -Wformat -Wformat-security -Wconversion -fexceptions -fstrict-aliasing -fstack-protector-strong -fasynchronous-unwind-tables -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Wpedantic -Werror -fPIE")
++ set(OS_CXX_FLAGS "${OS_CXX_FLAGS} -D_GLIBCXX_USE_NANOSLEEP -pthread -O -Wall -Wextra -Wformat -Wformat-security -Wconversion -fexceptions -fstrict-aliasing -fstack-protector-strong -fasynchronous-unwind-tables -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Wpedantic")
+
+ # force all use of std::mutex and std::recursive_mutex to use runtime init
+ # instead of static initialization so mutexes can be hooked to enable PI as needed
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/vsomeip/vsomeip/0005-test-common-CMakeLists.txt-add-missing-link-with-dlt.patch b/meta-networking/recipes-protocols/vsomeip/vsomeip/0005-test-common-CMakeLists.txt-add-missing-link-with-dlt.patch
new file mode 100644
index 0000000000..25d66514f8
--- /dev/null
+++ b/meta-networking/recipes-protocols/vsomeip/vsomeip/0005-test-common-CMakeLists.txt-add-missing-link-with-dlt.patch
@@ -0,0 +1,41 @@
+From 8676ef287bb25b49668be4336387bdf83a0cae5c Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Mon, 1 Jan 2024 17:02:41 +0800
+Subject: [PATCH] test/common/CMakeLists.txt: add missing link with dlt
+
+The libvsomeip_utilities library uses functions e.g.
+dlt_check_library_version/dlt_register_app/dlt_unregister_app which are
+provided by dlt therefore add it to linker flags.
+
+Fixes:
+x86_64-poky-linux-ld.lld: error: undefined reference due to --no-allow-shlib-undefined: dlt_check_library_version
+>>> referenced by test/common/libvsomeip_utilities.so
+
+x86_64-poky-linux-ld.lld: error: undefined reference due to --no-allow-shlib-undefined: dlt_register_app
+>>> referenced by test/common/libvsomeip_utilities.so
+
+x86_64-poky-linux-ld.lld: error: undefined reference due to --no-allow-shlib-undefined: dlt_unregister_app
+>>> referenced by test/common/libvsomeip_utilities.so
+
+Upstream-Status: Submitted [https://github.com/COVESA/vsomeip/pull/602]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ test/common/CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/test/common/CMakeLists.txt b/test/common/CMakeLists.txt
+index d4d14534..afc8c2d6 100644
+--- a/test/common/CMakeLists.txt
++++ b/test/common/CMakeLists.txt
+@@ -27,6 +27,7 @@ TARGET_LINK_LIBRARIES (
+ ${Boost_LIBRARIES}
+ ${DL_LIBRARY}
+ ${TEST_LINK_LIBRARIES}
++ ${DLT_LIBRARIES}
+ )
+
+ # ----------------------------------------------------------------------------
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/vsomeip/vsomeip_3.4.10.bb b/meta-networking/recipes-protocols/vsomeip/vsomeip_3.4.10.bb
new file mode 100644
index 0000000000..4c38970205
--- /dev/null
+++ b/meta-networking/recipes-protocols/vsomeip/vsomeip_3.4.10.bb
@@ -0,0 +1,75 @@
+SUMMARY = "The implementation of SOME/IP"
+DESCRIPTION = "The vsomeip stack implements the http://some-ip.com/ \
+(Scalable service-Oriented MiddlewarE over IP (SOME/IP)) protocol."
+HOMEPAGE = "https://github.com/COVESA/vsomeip"
+SECTION = "net"
+
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3"
+
+SRC_URI = "git://github.com/GENIVI/${BPN}.git;branch=master;protocol=https;name=vsomeip \
+ file://0001-Fix-pkgconfig-dir-for-multilib.patch \
+ file://0002-Install-example-configuration-files-to-etc-vsomeip.patch \
+ file://0003-Do-not-build-external-gtest.patch \
+ file://0004-Do-not-specify-PIE-flag-explicitly.patch \
+ file://0005-test-common-CMakeLists.txt-add-missing-link-with-dlt.patch \
+ "
+
+SRCREV = "02c199dff8aba814beebe3ca417fd991058fe90c"
+
+COMPATIBLE_HOST:mips = "null"
+COMPATIBLE_HOST:mips64 = "null"
+COMPATIBLE_HOST:powerpc = "null"
+COMPATIBLE_HOST:libc-musl = 'null'
+
+DEPENDS = "boost dlt-daemon googletest"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE = "-DINSTALL_LIB_DIR:PATH=${baselib} \
+ -DINSTALL_CMAKE_DIR:PATH=${baselib}/cmake/vsomeip3 \
+ "
+
+# For vsomeip-test
+EXTRA_OECMAKE += "-DTEST_IP_MASTER=10.0.3.1 \
+ -DTEST_IP_SLAVE=10.0.3.2 \
+ -DTEST_IP_SLAVE_SECOND=10.0.3.3 \
+ -DTEST_UID=1000 -DTEST_GID=1000 \
+ "
+
+RDEPENDS:${PN}-test = "bash lsof"
+
+do_compile:append() {
+ cmake_runcmake_build --target examples
+ cmake_runcmake_build --target build_tests
+}
+
+do_install:append() {
+ install -d ${D}/opt/${PN}-test/examples
+ install -m 0755 ${B}/examples/*-sample ${D}/opt/${PN}-test/examples
+ install -d ${D}/opt/${PN}-test/examples/routingmanagerd
+ install -m 0755 ${B}/examples/routingmanagerd/routingmanagerd \
+ ${D}/opt/${PN}-test/examples/routingmanagerd
+
+ install -d ${D}/opt/${PN}-test/test/test/common
+ cp -rf ${S}/test/common/examples_policies \
+ ${D}/opt/${PN}-test/test/test/common/
+ install -m 0755 ${B}/test/common/libvsomeip_utilities.so \
+ ${D}/opt/${PN}-test/test/test/common/
+
+ for d in unit_tests network_tests; do
+ install -d ${D}/opt/${PN}-test/test/$d
+ cp -f ${B}/test/$d/*test* ${D}/opt/${PN}-test/test/$d
+ done
+}
+
+PACKAGES += "${PN}-test"
+
+FILES:${PN}-dbg += " \
+ /opt/${PN}-test/.debug/* \
+ "
+FILES:${PN}-test = " \
+ /opt/${PN}-test \
+ "
diff --git a/meta-networking/recipes-protocols/zeroconf/zeroconf/0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch b/meta-networking/recipes-protocols/zeroconf/zeroconf/0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch
index b4d6d94b06..92b581416f 100644
--- a/meta-networking/recipes-protocols/zeroconf/zeroconf/0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch
+++ b/meta-networking/recipes-protocols/zeroconf/zeroconf/0001-zeroconf-Rename-arp_op-to-avoid-namespace-conflicts-.patch
@@ -12,6 +12,8 @@ and causes the conflict
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
zeroconf.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb b/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb
index 4f8d4f6c6e..61f6b79dd7 100644
--- a/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb
+++ b/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb
@@ -7,14 +7,12 @@ These addresses are allocated from the 169.254.0.0/16 address range and \
are normally attached to each Ethernet device in your computer. \
Addresses are assigned randomly by each host and, in case of collision, \
both hosts (are supposed to) renumber."
-AUTHOR = "Anand Kumria <wildfire@progsoc.uts.edu.au>"
HOMEPAGE = "http://www.progsoc.org/~wildfire/zeroconf/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4 \
file://zeroconf.c;beginline=1;endline=13;md5=a5bada96e1e34b08eb7446b28e2630b2"
SECTION = "net"
-PR = "r1"
SRC_URI = "http://www.progsoc.org/~wildfire/zeroconf/download/${BPN}-${PV}.tar.gz \
file://compilefix.patch \
@@ -27,6 +25,8 @@ SRC_URI = "http://www.progsoc.org/~wildfire/zeroconf/download/${BPN}-${PV}.tar.g
SRC_URI[md5sum] = "bdafb16b008ebb5633e4e581f77821d2"
SRC_URI[sha256sum] = "a8c74df127753e2310fa1e072f3c9ca44a404bb0bbce9cfec7a84c6dff8bec7b"
+EXTRA_OEMAKE += "CPPFLAGS='${CFLAGS}'"
+
do_install () {
install -d ${D}${sbindir}
install -d ${D}${sysconfdir}/network/if-up.d
diff --git a/meta-networking/recipes-support/aoetools/aoetools/reproducible-build.patch b/meta-networking/recipes-support/aoetools/aoetools/reproducible-build.patch
index 4939ab25c1..34d59b1aa6 100644
--- a/meta-networking/recipes-support/aoetools/aoetools/reproducible-build.patch
+++ b/meta-networking/recipes-support/aoetools/aoetools/reproducible-build.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/Makefile
+++ b/Makefile
@@ -40,7 +40,8 @@ NPERSHELF=16
diff --git a/meta-networking/recipes-support/arptables/arptables/0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch b/meta-networking/recipes-support/arptables/arptables/0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch
index eb58389c38..c58ef1a9ef 100644
--- a/meta-networking/recipes-support/arptables/arptables/0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch
+++ b/meta-networking/recipes-support/arptables/arptables/0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch
@@ -8,6 +8,8 @@ which OE uses to pass tweaks
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 10 ++++------
extensions/Makefile | 4 ++++
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/meta-networking/recipes-support/arptables/arptables_git.bb b/meta-networking/recipes-support/arptables/arptables_git.bb
index 898b69682d..949794bf30 100644
--- a/meta-networking/recipes-support/arptables/arptables_git.bb
+++ b/meta-networking/recipes-support/arptables/arptables_git.bb
@@ -3,7 +3,7 @@ SECTION = "net"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
SRCREV = "efae8949e31f8b2eb6290f377a28384cecaf105a"
-PV = "0.0.5+git${SRCPV}"
+PV = "0.0.5+git"
SRC_URI = " \
git://git.netfilter.org/arptables;branch=master \
diff --git a/meta-networking/recipes-support/celt051/celt051_git.bb b/meta-networking/recipes-support/celt051/celt051_git.bb
index 62682cfce3..4842a0fbdf 100644
--- a/meta-networking/recipes-support/celt051/celt051_git.bb
+++ b/meta-networking/recipes-support/celt051/celt051_git.bb
@@ -12,7 +12,7 @@ like Speex, GSM, or G.729."
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=375f60ab360d17f0172737036ff155b2"
-PV = "0.5.1.3+git${SRCPV}"
+PV = "0.5.1.3+git"
SRCREV = "5555aae843f57241d005e330b9cb65602d56db0f"
diff --git a/meta-networking/recipes-support/chrony/chrony/0001-Fix-compilation-with-musl.patch b/meta-networking/recipes-support/chrony/chrony/0001-Fix-compilation-with-musl.patch
index 17b6353527..5e2bc64af3 100644
--- a/meta-networking/recipes-support/chrony/chrony/0001-Fix-compilation-with-musl.patch
+++ b/meta-networking/recipes-support/chrony/chrony/0001-Fix-compilation-with-musl.patch
@@ -8,6 +8,8 @@ Fixes:
Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
---
+Upstream-Status: Pending
+
hash_intmd5.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch b/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch
index 5ba2081262..b9bb374e53 100644
--- a/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch
+++ b/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch
@@ -1,37 +1,37 @@
-From 28b9f115e36e2133301b02fa02ad71a8efbed9b9 Mon Sep 17 00:00:00 2001
+From 71c44c214c0ab8dc8e9675e5e862f2e342fcb271 Mon Sep 17 00:00:00 2001
From: Joe Slater <jslater@windriver.com>
Date: Thu, 9 Mar 2017 10:58:06 -0800
Subject: [PATCH] chrony: fix build failure for arma9
- Eliminate references to syscalls not available
- for ARM_EABI. Also add a dependency on libseccomp
- which is needed for scfilter to work.
+Eliminate references to syscalls not available
+for ARM_EABI. Also add a dependency on libseccomp
+which is needed for scfilter to work.
- Set PACKAGECONFIG to not enable scfilter, since
- kernel CONFIG_SECCOMP is unlikely to be set. This
- aligns the usage of libseccomp with that of other packages.
+Set PACKAGECONFIG to not enable scfilter, since
+kernel CONFIG_SECCOMP is unlikely to be set. This
+aligns the usage of libseccomp with that of other packages.
- Upstream-Status: Pending
+Upstream-Status: Pending
- Signed-off-by: Joe Slater <jslater@windriver.com>
+Signed-off-by: Joe Slater <jslater@windriver.com>
- Refresh patch for new upstream version.
+Refresh patch for new upstream version.
- Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
+Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
- Refreshed for 4.0
+Refreshed for 4.0
- Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
sys_linux.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/sys_linux.c b/sys_linux.c
-index f2baab1..14a9241 100644
+index 6849637..10f9a57 100644
--- a/sys_linux.c
+++ b/sys_linux.c
-@@ -484,7 +484,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
+@@ -485,7 +485,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
#endif
SCMP_SYS(gettimeofday),
SCMP_SYS(settimeofday),
@@ -39,15 +39,15 @@ index f2baab1..14a9241 100644
/* Process */
SCMP_SYS(clone),
-@@ -494,7 +493,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
+@@ -495,7 +494,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
SCMP_SYS(exit),
SCMP_SYS(exit_group),
SCMP_SYS(getpid),
- SCMP_SYS(getrlimit),
SCMP_SYS(getuid),
SCMP_SYS(getuid32),
- #ifdef __NR_rseq
-@@ -511,7 +509,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
+ #ifdef __NR_membarrier
+@@ -515,7 +513,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
/* Memory */
SCMP_SYS(brk),
SCMP_SYS(madvise),
@@ -55,7 +55,7 @@ index f2baab1..14a9241 100644
SCMP_SYS(mmap2),
SCMP_SYS(mprotect),
SCMP_SYS(mremap),
-@@ -571,8 +568,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
+@@ -575,8 +572,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
SCMP_SYS(sendmsg),
SCMP_SYS(sendto),
SCMP_SYS(shutdown),
@@ -64,15 +64,15 @@ index f2baab1..14a9241 100644
/* General I/O */
SCMP_SYS(_newselect),
-@@ -596,7 +591,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
+@@ -600,7 +595,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
#ifdef __NR_futex_time64
SCMP_SYS(futex_time64),
#endif
- SCMP_SYS(select),
SCMP_SYS(set_robust_list),
SCMP_SYS(write),
-
-@@ -604,6 +598,15 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
+ SCMP_SYS(writev),
+@@ -609,6 +603,15 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
SCMP_SYS(getrandom),
SCMP_SYS(sysinfo),
SCMP_SYS(uname),
diff --git a/meta-networking/recipes-support/chrony/chrony_4.3.bb b/meta-networking/recipes-support/chrony/chrony_4.3.bb
deleted file mode 100644
index 083d2cbc00..0000000000
--- a/meta-networking/recipes-support/chrony/chrony_4.3.bb
+++ /dev/null
@@ -1,151 +0,0 @@
-SUMMARY = "Versatile implementation of the Network Time Protocol"
-DESCRIPTION = "Chrony can synchronize the system clock with NTP \
-servers, reference clocks (e.g. GPS receiver), and manual input using \
-wristwatch and keyboard. It can also operate as an NTPv4 (RFC 5905) \
-server and peer to provide a time service to other computers in the \
-network. \
-\
-It is designed to perform well in a wide range of conditions, \
-including intermittent network connections, heavily congested \
-networks, changing temperatures (ordinary computer clocks are \
-sensitive to temperature), and systems that do not run continuously, or \
-run on a virtual machine. \
-\
-Typical accuracy between two machines on a LAN is in tens, or a few \
-hundreds, of microseconds; over the Internet, accuracy is typically \
-within a few milliseconds. With a good hardware reference clock \
-sub-microsecond accuracy is possible. \
-\
-Two programs are included in chrony: chronyd is a daemon that can be \
-started at boot time and chronyc is a command-line interface program \
-which can be used to monitor chronyd's performance and to change \
-various operating parameters whilst it is running. \
-\
-This recipe produces two binary packages: 'chrony' which contains chronyd, \
-the configuration file and the init script, and 'chronyc' which contains \
-the client program only."
-
-HOMEPAGE = "https://chrony.tuxfamily.org/"
-SECTION = "net"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI = "https://download.tuxfamily.org/chrony/chrony-${PV}.tar.gz \
- file://chrony.conf \
- file://chronyd \
- file://arm_eabi.patch \
-"
-
-SRC_URI:append:libc-musl = " \
- file://0001-Fix-compilation-with-musl.patch \
-"
-SRC_URI[sha256sum] = "9d0da889a865f089a5a21610ffb6713e3c9438ce303a63b49c2fb6eaff5b8804"
-
-DEPENDS = "pps-tools"
-
-# Note: Despite being built via './configure; make; make install',
-# chrony does not use GNU Autotools.
-inherit update-rc.d systemd
-
-# Add chronyd user if privdrop packageconfig is selected
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'privdrop', 'useradd', '', d)}
-USERADD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'privdrop', '${PN}', '', d)}"
-USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'privdrop', '--system -d / -M --shell /bin/nologin chronyd;', '', d)}"
-
-# Configuration options:
-# - For command line editing support in chronyc, you may specify either
-# 'editline' or 'readline' but not both. editline is smaller, but
-# many systems already have readline for other purposes so you might want
-# to choose that instead. However, beware license incompatibility
-# since chrony is GPLv2 and readline versions after 6.0 are GPLv3+.
-# You can of course choose neither, but if you're that tight on space
-# consider dropping chronyc entirely (you can use it remotely with
-# appropriate chrony.conf options).
-# - Security-related:
-# - 'sechash' is omitted by default because it pulls in nss which is huge.
-# - 'privdrop' allows chronyd to run as non-root; would need changes to
-# chrony.conf and init script.
-# - 'scfilter' enables support for system call filtering, but requires the
-# kernel to have CONFIG_SECCOMP enabled.
-PACKAGECONFIG ??= "editline \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
-"
-PACKAGECONFIG[readline] = "--without-editline,--without-readline,readline"
-PACKAGECONFIG[editline] = ",--without-editline,libedit"
-PACKAGECONFIG[sechash] = "--without-tomcrypt,--disable-sechash,nss"
-PACKAGECONFIG[privdrop] = "--with-libcap,--disable-privdrop --without-libcap,libcap"
-PACKAGECONFIG[scfilter] = "--enable-scfilter,--without-seccomp,libseccomp"
-PACKAGECONFIG[ipv6] = ",--disable-ipv6,"
-PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-
-# --disable-static isn't supported by chrony's configure script.
-DISABLE_STATIC = ""
-
-do_configure() {
- ./configure --sysconfdir=${sysconfdir} --bindir=${bindir} --sbindir=${sbindir} \
- --localstatedir=${localstatedir} --datarootdir=${datadir} \
- --with-ntp-era=$(shell date -d '1970-01-01 00:00:00+00:00' +'%s') \
- --with-pidfile=/run/chrony/chronyd.pid \
- --chronyrundir=/run/chrony \
- --host-system=Linux \
- ${PACKAGECONFIG_CONFARGS}
-}
-
-do_install() {
- # Binaries
- install -d ${D}${bindir}
- install -m 0755 ${S}/chronyc ${D}${bindir}
- install -d ${D}${sbindir}
- install -m 0755 ${S}/chronyd ${D}${sbindir}
-
- # Config file
- install -d ${D}${sysconfdir}
- install -m 644 ${WORKDIR}/chrony.conf ${D}${sysconfdir}
- if ${@bb.utils.contains('PACKAGECONFIG', 'privdrop', 'true', 'false', d)}; then
- echo "# Define user to drop to after dropping root privileges" >> ${D}${sysconfdir}/chrony.conf
- echo "user chronyd" >> ${D}${sysconfdir}/chrony.conf
- fi
-
- # System V init script
- install -d ${D}${sysconfdir}/init.d
- install -m 755 ${WORKDIR}/chronyd ${D}${sysconfdir}/init.d
-
- # systemd unit configuration file
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${S}/examples/chronyd.service ${D}${systemd_unitdir}/system/
-
- # Variable data (for drift and/or rtc file)
- install -d ${D}${localstatedir}/lib/chrony
-
- # Fix hard-coded paths in config files and init scripts
- sed -i -e 's!/var/!${localstatedir}/!g' -e 's!/etc/!${sysconfdir}/!g' \
- -e 's!/usr/sbin/!${sbindir}/!g' -e 's!/usr/bin/!${bindir}/!g' \
- ${D}${sysconfdir}/chrony.conf \
- ${D}${sysconfdir}/init.d/chronyd \
- ${D}${systemd_unitdir}/system/chronyd.service
- sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/chronyd
- sed -i 's!^EnvironmentFile=.*!EnvironmentFile=-${sysconfdir}/default/chronyd!' ${D}${systemd_unitdir}/system/chronyd.service
-
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /var/lib/chrony 0755 root root -" > ${D}${sysconfdir}/tmpfiles.d/chronyd.conf
-
-}
-
-FILES:${PN} = "${sbindir}/chronyd ${sysconfdir} ${localstatedir}/lib/chrony ${localstatedir}"
-CONFFILES:${PN} = "${sysconfdir}/chrony.conf"
-INITSCRIPT_NAME = "chronyd"
-INITSCRIPT_PARAMS = "defaults"
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE:${PN} = "chronyd.service"
-
-# It's probably a bad idea to run chrony and another time daemon on
-# the same system. systemd includes the SNTP client 'timesyncd', which
-# will be disabled by chronyd.service, however it will remain on the rootfs
-# wasting 150 kB unless you put 'PACKAGECONFIG:remove:pn-systemd = "timesyncd"'
-# in a conf file or bbappend somewhere.
-RCONFLICTS:${PN} = "ntp ntimed"
-
-# Separate the client program into its own package
-PACKAGES =+ "chronyc"
-FILES:chronyc = "${bindir}/chronyc"
diff --git a/meta-networking/recipes-support/chrony/chrony_4.5.bb b/meta-networking/recipes-support/chrony/chrony_4.5.bb
new file mode 100644
index 0000000000..ed26e59879
--- /dev/null
+++ b/meta-networking/recipes-support/chrony/chrony_4.5.bb
@@ -0,0 +1,140 @@
+SUMMARY = "Versatile implementation of the Network Time Protocol"
+DESCRIPTION = "Chrony can synchronize the system clock with NTP \
+servers, reference clocks (e.g. GPS receiver), and manual input using \
+wristwatch and keyboard. It can also operate as an NTPv4 (RFC 5905) \
+server and peer to provide a time service to other computers in the \
+network. \
+\
+It is designed to perform well in a wide range of conditions, \
+including intermittent network connections, heavily congested \
+networks, changing temperatures (ordinary computer clocks are \
+sensitive to temperature), and systems that do not run continuously, or \
+run on a virtual machine. \
+\
+Typical accuracy between two machines on a LAN is in tens, or a few \
+hundreds, of microseconds; over the Internet, accuracy is typically \
+within a few milliseconds. With a good hardware reference clock \
+sub-microsecond accuracy is possible. \
+\
+Two programs are included in chrony: chronyd is a daemon that can be \
+started at boot time and chronyc is a command-line interface program \
+which can be used to monitor chronyd's performance and to change \
+various operating parameters whilst it is running. \
+\
+This recipe produces two binary packages: 'chrony' which contains chronyd, \
+the configuration file and the init script, and 'chronyc' which contains \
+the client program only."
+
+HOMEPAGE = "https://chrony.tuxfamily.org/"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "https://download.tuxfamily.org/chrony/chrony-${PV}.tar.gz \
+ file://chrony.conf \
+ file://chronyd \
+ file://arm_eabi.patch \
+"
+
+SRC_URI:append:libc-musl = " \
+ file://0001-Fix-compilation-with-musl.patch \
+"
+SRC_URI[sha256sum] = "19fe1d9f4664d445a69a96c71e8fdb60bcd8df24c73d1386e02287f7366ad422"
+
+DEPENDS = "pps-tools"
+
+# Note: Despite being built via './configure; make; make install',
+# chrony does not use GNU Autotools.
+inherit update-rc.d systemd pkgconfig
+
+# Add chronyd user if privdrop packageconfig is selected
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'privdrop', 'useradd', '', d)}
+USERADD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'privdrop', '${PN}', '', d)}"
+USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'privdrop', '--system -d / -M --shell /bin/nologin chronyd;', '', d)}"
+
+# Configuration options:
+# - Security-related:
+# - 'sechash' is omitted by default because it pulls in nss which is huge.
+# - 'privdrop' allows chronyd to run as non-root; would need changes to
+# chrony.conf and init script.
+# - 'scfilter' enables support for system call filtering, but requires the
+# kernel to have CONFIG_SECCOMP enabled.
+PACKAGECONFIG ??= "editline \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+"
+PACKAGECONFIG[editline] = ",--without-editline,libedit"
+PACKAGECONFIG[sechash] = "--without-tomcrypt,--disable-sechash,nss"
+PACKAGECONFIG[privdrop] = ",--disable-privdrop,libcap"
+PACKAGECONFIG[scfilter] = "--enable-scfilter,--without-seccomp,libseccomp"
+PACKAGECONFIG[ipv6] = ",--disable-ipv6,"
+
+# --disable-static isn't supported by chrony's configure script.
+DISABLE_STATIC = ""
+
+do_configure() {
+ ./configure --sysconfdir=${sysconfdir} --bindir=${bindir} --sbindir=${sbindir} \
+ --localstatedir=${localstatedir} --datarootdir=${datadir} \
+ --with-ntp-era=$(shell date -d '1970-01-01 00:00:00+00:00' +'%s') \
+ --with-pidfile=/run/chrony/chronyd.pid \
+ --chronyrundir=/run/chrony \
+ --host-system=Linux \
+ ${PACKAGECONFIG_CONFARGS}
+}
+
+do_install() {
+ # Binaries
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/chronyc ${D}${bindir}
+ install -d ${D}${sbindir}
+ install -m 0755 ${S}/chronyd ${D}${sbindir}
+
+ # Config file
+ install -d ${D}${sysconfdir}
+ install -m 644 ${WORKDIR}/chrony.conf ${D}${sysconfdir}
+ if ${@bb.utils.contains('PACKAGECONFIG', 'privdrop', 'true', 'false', d)}; then
+ echo "# Define user to drop to after dropping root privileges" >> ${D}${sysconfdir}/chrony.conf
+ echo "user chronyd" >> ${D}${sysconfdir}/chrony.conf
+ fi
+
+ # System V init script
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/chronyd ${D}${sysconfdir}/init.d
+
+ # systemd unit configuration file
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${S}/examples/chronyd.service ${D}${systemd_unitdir}/system/
+
+ # Variable data (for drift and/or rtc file)
+ install -d ${D}${localstatedir}/lib/chrony
+
+ # Fix hard-coded paths in config files and init scripts
+ sed -i -e 's!/var/!${localstatedir}/!g' -e 's!/etc/!${sysconfdir}/!g' \
+ -e 's!/usr/sbin/!${sbindir}/!g' -e 's!/usr/bin/!${bindir}/!g' \
+ ${D}${sysconfdir}/chrony.conf \
+ ${D}${sysconfdir}/init.d/chronyd \
+ ${D}${systemd_unitdir}/system/chronyd.service
+ sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/chronyd
+ sed -i 's!^EnvironmentFile=.*!EnvironmentFile=-${sysconfdir}/default/chronyd!' ${D}${systemd_unitdir}/system/chronyd.service
+
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /var/lib/chrony 0755 root root -" > ${D}${sysconfdir}/tmpfiles.d/chronyd.conf
+
+}
+
+FILES:${PN} = "${sbindir}/chronyd ${sysconfdir} ${localstatedir}/lib/chrony ${localstatedir}"
+CONFFILES:${PN} = "${sysconfdir}/chrony.conf"
+INITSCRIPT_NAME = "chronyd"
+INITSCRIPT_PARAMS = "defaults"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "chronyd.service"
+
+# It's probably a bad idea to run chrony and another time daemon on
+# the same system. systemd includes the SNTP client 'timesyncd', which
+# will be disabled by chronyd.service, however it will remain on the rootfs
+# wasting 150 kB unless you put 'PACKAGECONFIG:remove:pn-systemd = "timesyncd"'
+# in a conf file or bbappend somewhere.
+RCONFLICTS:${PN} = "ntp ntimed"
+
+# Separate the client program into its own package
+PACKAGES =+ "chronyc"
+FILES:chronyc = "${bindir}/chronyc"
diff --git a/meta-networking/recipes-support/curlpp/curlpp/0001-curlpp-config.in-Remove-references-to-absolute-build.patch b/meta-networking/recipes-support/curlpp/curlpp/0001-curlpp-config.in-Remove-references-to-absolute-build.patch
new file mode 100644
index 0000000000..539e9cefb6
--- /dev/null
+++ b/meta-networking/recipes-support/curlpp/curlpp/0001-curlpp-config.in-Remove-references-to-absolute-build.patch
@@ -0,0 +1,40 @@
+From d6eee2d52f31e034f9d84d38a749d86a63d5b769 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 22 May 2023 20:37:47 -0700
+Subject: [PATCH] curlpp-config.in: Remove references to absolute buildpaths
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ extras/curlpp-config.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/extras/curlpp-config.in b/extras/curlpp-config.in
+index b0bd964..1416b94 100644
+--- a/extras/curlpp-config.in
++++ b/extras/curlpp-config.in
+@@ -43,7 +43,7 @@ while test $# -gt 0; do
+
+ case "$1" in
+ --cc)
+- echo @CC@
++ curl-config --cc
+ ;;
+
+ --prefix)
+@@ -73,10 +73,10 @@ while test $# -gt 0; do
+ ;;
+
+ --libs)
+- echo -L@libdir@ @LDFLAGS@ @LIBS@ `curl-config --libs` -lcurlpp
++ echo `curl-config --libs` -lcurlpp
+ ;;
+ --static-libs)
+- echo @libdir_static@/libcurlpp.@libext@ @LDFLAGS@ @LIBS@ `curl-config --static-libs`
++ echo $prefix/@libdir_static@/libcurlpp.@libext@ `curl-config --static-libs`
+ ;;
+
+ *)
+--
+2.40.1
+
diff --git a/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb b/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb
index e36a86fd09..131f1873a2 100644
--- a/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb
+++ b/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb
@@ -7,7 +7,8 @@ LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=fd0c9adf285a69aa3b4faf34384e1029"
DEPENDS = "curl"
DEPENDS:class-native = "curl-native"
-SRC_URI = "git://github.com/jpbarrette/curlpp.git;branch=master;protocol=https"
+SRC_URI = "git://github.com/jpbarrette/curlpp.git;branch=master;protocol=https \
+ file://0001-curlpp-config.in-Remove-references-to-absolute-build.patch"
SRCREV = "592552a165cc569dac7674cb7fc9de3dc829906f"
diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq.inc b/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
deleted file mode 100644
index a8ff21a125..0000000000
--- a/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
+++ /dev/null
@@ -1,87 +0,0 @@
-SUMMARY = "Lightweight, easy to configure DNS forwarder and DHCP server"
-HOMEPAGE = "http://www.thekelleys.org.uk/dnsmasq/doc.html"
-SECTION = "net"
-# GPLv3 was added in version 2.41 as license option
-LICENSE = "GPL-2.0-only | GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING-v3;md5=d32239bcb673463ab874e80d47fae504 \
- "
-
-#at least versions 2.69 and prior are moved to the archive folder on the server
-SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getVar('PV').split('.')[1]) > 69]}dnsmasq-${PV}.tar.gz;name=dnsmasq-${PV} \
- file://init \
- file://dnsmasq.conf \
- file://dnsmasq-resolvconf.service \
- file://dnsmasq-noresolvconf.service \
- file://dnsmasq-resolved.conf \
-"
-
-inherit pkgconfig update-rc.d systemd
-
-INITSCRIPT_NAME = "dnsmasq"
-INITSCRIPT_PARAMS = "defaults"
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[dbus] = ",,dbus"
-PACKAGECONFIG[idn] = ",,libidn"
-PACKAGECONFIG[conntrack] = ",,libnetfilter-conntrack"
-PACKAGECONFIG[lua] = ",,lua"
-PACKAGECONFIG[resolvconf] = ",,,resolvconf"
-EXTRA_OEMAKE = "\
- 'COPTS=${@bb.utils.contains('PACKAGECONFIG', 'dbus', '-DHAVE_DBUS', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'idn', '-DHAVE_IDN', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'conntrack', '-DHAVE_CONNTRACK', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'lua', '-DHAVE_LUASCRIPT', '', d)}' \
- 'CFLAGS=${CFLAGS}' \
- 'LDFLAGS=${LDFLAGS}' \
-"
-
-SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'resolvconf', 'file://dnsmasq.resolvconf file://99_dnsmasq file://dnsmasq-resolvconf-helper', '', d)}"
-
-do_compile:append() {
- # build dhcp_release
- cd ${S}/contrib/lease-tools
- oe_runmake
-}
-
-do_install () {
- oe_runmake "PREFIX=${D}${prefix}" \
- "BINDIR=${D}${bindir}" \
- "MANDIR=${D}${mandir}" \
- install
- install -d ${D}${sysconfdir}/ ${D}${sysconfdir}/init.d ${D}${sysconfdir}/dnsmasq.d
- install -m 644 ${WORKDIR}/dnsmasq.conf ${D}${sysconfdir}/
- install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/dnsmasq
-
- install -d ${D}${systemd_unitdir}/system
-
- if [ "${@bb.utils.filter('PACKAGECONFIG', 'resolvconf', d)}" ]; then
- install -m 0644 ${WORKDIR}/dnsmasq-resolvconf.service ${D}${systemd_unitdir}/system/dnsmasq.service
- else
- install -m 0644 ${WORKDIR}/dnsmasq-noresolvconf.service ${D}${systemd_unitdir}/system/dnsmasq.service
- fi
- install -d ${D}${sysconfdir}/systemd/resolved.conf.d/
- install -m 0644 ${WORKDIR}/dnsmasq-resolved.conf ${D}${sysconfdir}/systemd/resolved.conf.d/
-
- install -m 0755 ${S}/contrib/lease-tools/dhcp_release ${D}${bindir}
-
- if [ "${@bb.utils.filter('PACKAGECONFIG', 'dbus', d)}" ]; then
- install -d ${D}${sysconfdir}/dbus-1/system.d
- install -m 644 dbus/dnsmasq.conf ${D}${sysconfdir}/dbus-1/system.d/
- fi
- if [ "${@bb.utils.filter('PACKAGECONFIG', 'resolvconf', d)}" ]; then
- install -d ${D}${sysconfdir}/resolvconf/update.d/
- install -m 0755 ${WORKDIR}/dnsmasq.resolvconf ${D}${sysconfdir}/resolvconf/update.d/dnsmasq
-
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 0644 ${WORKDIR}/99_dnsmasq ${D}${sysconfdir}/default/volatiles
- install -m 0755 ${WORKDIR}/dnsmasq-resolvconf-helper ${D}${bindir}
- fi
-}
-
-CONFFILES:${PN} = "${sysconfdir}/dnsmasq.conf"
-
-RPROVIDES:${PN} += "${PN}-systemd"
-RREPLACES:${PN} += "${PN}-systemd"
-RCONFLICTS:${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE:${PN} = "dnsmasq.service"
diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch b/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch
deleted file mode 100644
index be2bb42fc2..0000000000
--- a/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From be1b3d2d0f1608cba5efee73d6aac5ad0709041b Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe_macdonald@mentor.com>
-Date: Tue, 9 Sep 2014 10:24:58 -0400
-Subject: [PATCH] Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
----
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 73ea23e..ed3eeb9 100644
---- a/Makefile
-+++ b/Makefile
-@@ -60,8 +60,8 @@ idn2_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LIBIDN2 $(PKG_CONFI
- idn2_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LIBIDN2 $(PKG_CONFIG) --libs libidn2`
- ct_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_CONNTRACK $(PKG_CONFIG) --cflags libnetfilter_conntrack`
- ct_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_CONNTRACK $(PKG_CONFIG) --libs libnetfilter_conntrack`
--lua_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --cflags lua5.2`
--lua_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --libs lua5.2`
-+lua_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --cflags lua`
-+lua_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --libs lua`
- nettle_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --cflags 'nettle hogweed' \
- HAVE_CRYPTOHASH $(PKG_CONFIG) --cflags nettle \
- HAVE_NETTLEHASH $(PKG_CONFIG) --cflags nettle`
-
---
-2.9.5
-
diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.87.bb b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.87.bb
deleted file mode 100644
index 793b61d712..0000000000
--- a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.87.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require dnsmasq.inc
-
-SRC_URI[dnsmasq-2.87.sha256sum] = "ae39bffde9c37e4d64849b528afeb060be6bad6d1044a3bd94a49fce41357284"
-SRC_URI += "\
- file://lua.patch \
-"
-
diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.90.bb b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.90.bb
new file mode 100644
index 0000000000..38fa271dc3
--- /dev/null
+++ b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.90.bb
@@ -0,0 +1,129 @@
+SUMMARY = "Lightweight, easy to configure DNS forwarder and DHCP server"
+HOMEPAGE = "http://www.thekelleys.org.uk/dnsmasq/doc.html"
+SECTION = "net"
+# GPLv3 was added in version 2.41 as license option
+LICENSE = "GPL-2.0-only | GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING-v3;md5=d32239bcb673463ab874e80d47fae504 \
+ "
+
+DEPENDS += "gettext-native"
+
+#at least versions 2.69 and prior are moved to the archive folder on the server
+SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getVar('PV').split('.')[1]) > 69]}dnsmasq-${PV}.tar.gz \
+ file://init \
+ file://dnsmasq.conf \
+ file://dnsmasq-resolvconf.service \
+ file://dnsmasq-noresolvconf.service \
+ file://dnsmasq-resolved.conf \
+"
+SRC_URI[sha256sum] = "8f6666b542403b5ee7ccce66ea73a4a51cf19dd49392aaccd37231a2c51b303b"
+
+inherit pkgconfig update-rc.d systemd
+
+INITSCRIPT_NAME = "dnsmasq"
+INITSCRIPT_PARAMS = "defaults"
+
+# dnsmasq defaults
+PACKAGECONFIG ?= "auth dhcp dhcp6 dumpfile inotify ipset loop script tftp"
+
+PACKAGECONFIG[auth] = "-DHAVE_AUTH,-DNO_AUTH"
+PACKAGECONFIG[broken-rtc] = "-DHAVE_BROKEN_RTC,"
+PACKAGECONFIG[conntrack] = "-DHAVE_CONNTRACK,,libnetfilter-conntrack"
+PACKAGECONFIG[dbus] = "-DHAVE_DBUS,,dbus"
+PACKAGECONFIG[dhcp] = "-DHAVE_DHCP,-DNO_DHCP"
+PACKAGECONFIG[dhcp6] = "-DHAVE_DHCP6,-DNO_DHCP6"
+PACKAGECONFIG[dnssec] = "-DHAVE_DNSSEC,,nettle"
+PACKAGECONFIG[dumpfile] = "-DHAVE_DUMPFILE,-DNO_DUMPFILE"
+PACKAGECONFIG[idn] = "-DHAVE_LIBIDN,,libidn,,,idn2"
+PACKAGECONFIG[idn2] = "-DHAVE_LIBIDN2,,libidn2,,,idn"
+PACKAGECONFIG[inotify] = "-DHAVE_INOTIFY,-DNO_INOTIFY"
+PACKAGECONFIG[ipset] = "-DHAVE_IPSET,-DNO_IPSET"
+PACKAGECONFIG[loop] = "-DHAVE_LOOP,-DNO_LOOP"
+PACKAGECONFIG[lua] = "-DHAVE_LUASCRIPT -DHAVE_SCRIPT,,lua"
+PACKAGECONFIG[nftset] = "-DHAVE_NFTSET,,nftables"
+PACKAGECONFIG[no-gmp] = "-DNO_GMP,"
+PACKAGECONFIG[no-id] = "-DNO_ID,"
+PACKAGECONFIG[resolvconf] = ",,,resolvconf"
+PACKAGECONFIG[script] = "-DHAVE_SCRIPT,-DNO_SCRIPT"
+PACKAGECONFIG[tftp] = "-DHAVE_TFTP,-DNO_TFTP"
+PACKAGECONFIG[ubus] = "-DHAVE_UBUS,,ubus"
+
+DNSMASQ_LEASEFILE ?= "${localstatedir}/lib/misc/dnsmasq.leases"
+DNSMASQ_CONFFILE ?= "${sysconfdir}/dnsmasq.conf"
+DNSMASQ_RESOLVFILE ?= "${sysconfdir}/resolv.conf"
+
+COPTS = "${PACKAGECONFIG_CONFARGS} \
+ -DLEASEFILE=\"${DNSMASQ_LEASEFILE}\" \
+ -DCONFFILE=\"${DNSMASQ_CONFFILE}\" \
+ -DRESOLVFILE=\"${DNSMASQ_RESOLVFILE}\" \
+ -DLOCALEDIR=\"${localedir}\""
+
+EXTRA_OEMAKE = "\
+ 'COPTS=${COPTS}' \
+ 'CFLAGS=${CFLAGS}' \
+ 'LDFLAGS=${LDFLAGS}' \
+"
+
+SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'resolvconf', 'file://dnsmasq.resolvconf file://99_dnsmasq file://dnsmasq-resolvconf-helper', '', d)}"
+
+do_compile () {
+ oe_runmake all-i18n
+ if ${@bb.utils.contains_any('PACKAGECONFIG', ['dhcp', 'dhcp6'], 'true', 'false', d)}; then
+ # build dhcp_release
+ oe_runmake -C ${S}/contrib/lease-tools
+ fi
+}
+
+do_install () {
+ oe_runmake "PREFIX=${D}${prefix}" \
+ "BINDIR=${D}${bindir}" \
+ "MANDIR=${D}${mandir}" \
+ install-i18n
+ install -d ${D}${sysconfdir}/ ${D}${sysconfdir}/init.d ${D}${sysconfdir}/dnsmasq.d
+ install -m 644 ${WORKDIR}/dnsmasq.conf ${D}${sysconfdir}/
+ install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/dnsmasq
+
+ install -d ${D}${systemd_unitdir}/system
+
+ if [ "${@bb.utils.filter('PACKAGECONFIG', 'resolvconf', d)}" ]; then
+ install -m 0644 ${WORKDIR}/dnsmasq-resolvconf.service ${D}${systemd_unitdir}/system/dnsmasq.service
+ else
+ install -m 0644 ${WORKDIR}/dnsmasq-noresolvconf.service ${D}${systemd_unitdir}/system/dnsmasq.service
+ fi
+
+ if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
+ install -d ${D}${sysconfdir}/systemd/resolved.conf.d/
+ install -m 0644 ${WORKDIR}/dnsmasq-resolved.conf ${D}${sysconfdir}/systemd/resolved.conf.d/
+ fi
+
+ if [ "${@bb.utils.filter('PACKAGECONFIG', 'dhcp', d)}" ]; then
+ install -m 0755 ${S}/contrib/lease-tools/dhcp_release ${D}${bindir}
+ install -m 0755 ${S}/contrib/lease-tools/dhcp_lease_time ${D}${bindir}
+ fi
+
+ if [ "${@bb.utils.filter('PACKAGECONFIG', 'dhcp6', d)}" ]; then
+ install -m 0755 ${S}/contrib/lease-tools/dhcp_release6 ${D}${bindir}
+ fi
+
+ if [ "${@bb.utils.filter('PACKAGECONFIG', 'dbus', d)}" ]; then
+ install -d ${D}${sysconfdir}/dbus-1/system.d
+ install -m 644 dbus/dnsmasq.conf ${D}${sysconfdir}/dbus-1/system.d/
+ fi
+
+ if [ "${@bb.utils.filter('PACKAGECONFIG', 'resolvconf', d)}" ]; then
+ install -d ${D}${sysconfdir}/resolvconf/update.d/
+ install -m 0755 ${WORKDIR}/dnsmasq.resolvconf ${D}${sysconfdir}/resolvconf/update.d/dnsmasq
+
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/99_dnsmasq ${D}${sysconfdir}/default/volatiles
+ install -m 0755 ${WORKDIR}/dnsmasq-resolvconf-helper ${D}${bindir}
+ fi
+}
+
+CONFFILES:${PN} = "${sysconfdir}/dnsmasq.conf"
+
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = "dnsmasq.service"
diff --git a/meta-networking/recipes-support/dovecot/dovecot/0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch b/meta-networking/recipes-support/dovecot/dovecot/0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch
index f16f687f24..4fcfa48b99 100644
--- a/meta-networking/recipes-support/dovecot/dovecot/0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch
+++ b/meta-networking/recipes-support/dovecot/dovecot/0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] configure.ac: convert AC_TRY_RUN to AC_TRY_LINK statements
This is not completely safe, but it's the least invasive fix.
-Upstream-Status: pending
+Upstream-Status: Pending
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
diff --git a/meta-networking/recipes-support/dovecot/dovecot/0001-not-check-pandoc.patch b/meta-networking/recipes-support/dovecot/dovecot/0001-not-check-pandoc.patch
index 20ba73a824..af69c82f0f 100644
--- a/meta-networking/recipes-support/dovecot/dovecot/0001-not-check-pandoc.patch
+++ b/meta-networking/recipes-support/dovecot/dovecot/0001-not-check-pandoc.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] not check pandoc
Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
m4/dovecot.m4 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-support/dovecot/dovecot_2.3.14.bb b/meta-networking/recipes-support/dovecot/dovecot_2.3.14.bb
deleted file mode 100644
index d8c483191f..0000000000
--- a/meta-networking/recipes-support/dovecot/dovecot_2.3.14.bb
+++ /dev/null
@@ -1,77 +0,0 @@
-SUMMARY = "Dovecot is an open source IMAP and POP3 email server"
-HOMEPAGE = "https://www.dovecot.org/"
-DESCRIPTION = "Dovecot is an open source IMAP and POP3 email server for Linux/UNIX-like systems, written with security primarily in mind. Dovecot is an excellent choice for both small and large installations. It's fast, simple to set up, requires no special administration and it uses very little memory."
-SECTION = "mail"
-LICENSE = "LGPL-2.1-only & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2956560272e5b31d9d64f03111732048"
-
-SRC_URI = "http://dovecot.org/releases/2.3/dovecot-${PV}.tar.gz \
- file://0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch \
- file://dovecot.service \
- file://dovecot.socket \
- file://0001-not-check-pandoc.patch \
- file://0001-m4-Check-for-libunwind-instead-of-libunwind-generic.patch \
- "
-
-SRC_URI[md5sum] = "2f03532cec3280ae45a101a7a55ccef5"
-SRC_URI[sha256sum] = "c8b3d7f3af1e558a3ff0f970309d4013a4d3ce136f8c02a53a3b05f345b9a34a"
-
-DEPENDS = "openssl xz zlib bzip2 libcap icu libtirpc bison-native"
-CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-LDFLAGS += "-ltirpc"
-
-inherit autotools pkgconfig systemd useradd gettext
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ldap pam', d)}"
-
-PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
-PACKAGECONFIG[ldap] = "--with-ldap=plugin,--without-ldap,openldap,"
-PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4,"
-
-# From native build in armv7a-hf/eglibc
-CACHED_CONFIGUREVARS += "i_cv_signed_size_t=no \
- i_cv_gmtime_max_time_t=32 \
- i_cv_signed_time_t=yes \
- i_cv_mmap_plays_with_write=yes \
- i_cv_fd_passing=yes \
- i_cv_c99_vsnprintf=yes \
- lib_cv___va_copy=yes \
- lib_cv_va_copy=yes \
- lib_cv_va_val_copy=yes \
- "
-
-# hardcode epoll() to avoid running unsafe tests
-# BSD needs kqueue and uclibc poll()
-EXTRA_OECONF = " --with-ioloop=epoll \
- --with-systemdsystemunitdir=${systemd_unitdir}/system"
-
-# Uses hidden symbols
-# libssl_iostream_openssl.so: undefined reference to `ssl_iostream_handshake'
-LTO = ""
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE:${PN} = "dovecot.service dovecot.socket"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-do_install:append () {
- install -d 755 ${D}/etc/dovecot
- touch 644 ${D}/etc/dovecot/dovecot.conf
- install -m 0644 ${WORKDIR}/dovecot.service ${D}${systemd_unitdir}/system
- sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/dovecot.service
- sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/dovecot.service
-}
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "-r -d ${libexecdir} -M -s ${base_sbindir}/nologin -g dovecot dovecot; \
- -r -d ${libexecdir} -M -s ${base_sbindir}/nologin -g dovenull dovenull"
-GROUPADD_PARAM:${PN} = "-f -r dovecot;-f -r dovenull"
-
-FILES:${PN} += "${libdir}/dovecot/*plugin.so \
- ${libdir}/dovecot/libfs_compress.so \
- ${libdir}/dovecot/libssl_iostream_openssl.so"
-FILES:${PN}-staticdev += "${libdir}/dovecot/*/*.a"
-FILES:${PN}-dev += "${libdir}/dovecot/libdovecot*.so"
-FILES:${PN}-dbg += "${libdir}/dovecot/*/.debug"
-
-# CVE-2016-4983 affects only postinstall script on specific distribution
-CVE_CHECK_IGNORE += "CVE-2016-4983"
diff --git a/meta-networking/recipes-support/dovecot/dovecot_2.3.21.bb b/meta-networking/recipes-support/dovecot/dovecot_2.3.21.bb
new file mode 100644
index 0000000000..17fbd789b6
--- /dev/null
+++ b/meta-networking/recipes-support/dovecot/dovecot_2.3.21.bb
@@ -0,0 +1,74 @@
+SUMMARY = "Dovecot is an open source IMAP and POP3 email server"
+HOMEPAGE = "https://www.dovecot.org/"
+DESCRIPTION = "Dovecot is an open source IMAP and POP3 email server for Linux/UNIX-like systems, written with security primarily in mind. Dovecot is an excellent choice for both small and large installations. It's fast, simple to set up, requires no special administration and it uses very little memory."
+SECTION = "mail"
+LICENSE = "LGPL-2.1-only & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2956560272e5b31d9d64f03111732048"
+
+SRC_URI = "http://dovecot.org/releases/2.3/dovecot-${PV}.tar.gz \
+ file://0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch \
+ file://dovecot.service \
+ file://dovecot.socket \
+ file://0001-not-check-pandoc.patch \
+ file://0001-m4-Check-for-libunwind-instead-of-libunwind-generic.patch \
+ "
+SRC_URI[sha256sum] = "05b11093a71c237c2ef309ad587510721cc93bbee6828251549fc1586c36502d"
+
+DEPENDS = "openssl xz zlib bzip2 libcap icu libtirpc bison-native"
+CFLAGS += "-I${STAGING_INCDIR}/tirpc"
+LDFLAGS += "-ltirpc"
+
+inherit autotools pkgconfig systemd useradd gettext multilib_header
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ldap pam systemd', d)}"
+
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
+PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd,"
+PACKAGECONFIG[ldap] = "--with-ldap=plugin,--without-ldap,openldap,"
+PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4,"
+
+# From native build in armv7a-hf/eglibc
+CACHED_CONFIGUREVARS += "i_cv_signed_size_t=no \
+ i_cv_gmtime_max_time_t=32 \
+ i_cv_signed_time_t=yes \
+ i_cv_mmap_plays_with_write=yes \
+ i_cv_fd_passing=yes \
+ i_cv_c99_vsnprintf=yes \
+ lib_cv___va_copy=yes \
+ lib_cv_va_copy=yes \
+ lib_cv_va_val_copy=yes \
+ "
+
+# hardcode epoll() to avoid running unsafe tests
+# BSD needs kqueue and uclibc poll()
+EXTRA_OECONF = " --with-ioloop=epoll"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "dovecot.service dovecot.socket"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+do_install:append () {
+ rm -rf ${D}${libdir}/dovecot/dovecot-config
+ install -d 755 ${D}/etc/dovecot
+ touch 644 ${D}/etc/dovecot/dovecot.conf
+ if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
+ install -m 0644 ${WORKDIR}/dovecot.service ${D}${systemd_unitdir}/system
+ sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/dovecot.service
+ sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/dovecot.service
+ fi
+ oe_multilib_header dovecot/config.h
+}
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "-r -d ${libexecdir} -M -s ${base_sbindir}/nologin -g dovecot dovecot; \
+ -r -d ${libexecdir} -M -s ${base_sbindir}/nologin -g dovenull dovenull"
+GROUPADD_PARAM:${PN} = "-f -r dovecot;-f -r dovenull"
+
+FILES:${PN} += "${libdir}/dovecot/*plugin.so \
+ ${libdir}/dovecot/libfs_compress.so \
+ ${libdir}/dovecot/libssl_iostream_openssl.so"
+FILES:${PN}-staticdev += "${libdir}/dovecot/*/*.a"
+FILES:${PN}-dev += "${libdir}/dovecot/libdovecot*.so"
+FILES:${PN}-dbg += "${libdir}/dovecot/*/.debug"
+
+CVE_STATUS[CVE-2016-4983] = "not-applicable-platform: Affects only postinstall script on specific distribution."
diff --git a/meta-networking/recipes-support/drbd/drbd-utils/0001-configure.ac-Add-an-option-to-disable-host-udev-vers.patch b/meta-networking/recipes-support/drbd/drbd-utils/0001-configure.ac-Add-an-option-to-disable-host-udev-vers.patch
new file mode 100644
index 0000000000..b98e1e70c7
--- /dev/null
+++ b/meta-networking/recipes-support/drbd/drbd-utils/0001-configure.ac-Add-an-option-to-disable-host-udev-vers.patch
@@ -0,0 +1,55 @@
+From 61991db099f66348dddbc3408e7ee8c05bda85cb Mon Sep 17 00:00:00 2001
+From: Yoann Congal <yoann.congal@smile.fr>
+Date: Sat, 2 Mar 2024 16:23:07 +0100
+Subject: [PATCH] configure.ac: Add an option to disable host udev version
+ checks
+
+In cross-compilation environment, the build host might have an outdated
+udev or no udev at all. But the user may still want to build with the
+enabled udev rule (for its udev-enabled target).
+
+This patch adds a "--disable-udevchecks" option the disable build host
+udev version check at configure-time and unconditionally install the
+enabled udev rule. Without this new option, the behavior stays the same
+(checks enabled).
+
+Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
+Upstream-Status: Backport [https://github.com/LINBIT/drbd-utils/commit/f2b5a7335ae52109dfb95a9d99ae20519c43d59a]
+---
+ configure.ac | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f1d69ea3..4c56d33b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -71,6 +71,11 @@ AC_ARG_WITH([udev],
+ [AS_HELP_STRING([--with-udev],
+ [Enable udev integration])],
+ [WITH_UDEV=$withval])
++AC_ARG_ENABLE([udevchecks],
++ [AS_HELP_STRING([--disable-udevchecks],
++ [Disable host udev version checks])],
++ [],
++ [enable_udevchecks=yes])
+ AC_ARG_WITH([xen],
+ [AS_HELP_STRING([--with-xen],
+ [Enable Xen integration])],
+@@ -315,7 +320,7 @@ if test -z $GIT; then
+ AC_MSG_WARN(Cannot update buildtag without git. You may safely ignore this warning when building from a tarball.)
+ fi
+
+-if test $UDEVADM = false && test $UDEVINFO = false; then
++if test "x$enable_udevchecks" != "xno" && test $UDEVADM = false && test $UDEVINFO = false; then
+ if test "$WITH_UDEV" = "yes"; then
+ AC_MSG_WARN([udev support enabled, but neither udevadm nor udevinfo found on this system.])
+ fi
+@@ -423,7 +428,7 @@ else
+ test -z $INITDIR && INITDIR="$sysconfdir/init.d"
+
+ dnl Our udev rules file is known to work only with udev >= 85
+- if test "$WITH_UDEV" = "yes"; then
++ if test "x$enable_udevchecks" != "xno" && test "$WITH_UDEV" = "yes"; then
+ udev_version=$( set -- $($UDEVADM version); echo $1 )
+ if test -z "$udev_version"; then
+ udev_version=$( set -- $($UDEVINFO -V); echo $3 )
diff --git a/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-utils-support-usrmerge.patch b/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-utils-support-usrmerge.patch
index 84e3ad0968..27f0a9b54a 100644
--- a/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-utils-support-usrmerge.patch
+++ b/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-utils-support-usrmerge.patch
@@ -1,9 +1,9 @@
-From 69011c7227ad1aaf08d5ab28e46f85dac951c597 Mon Sep 17 00:00:00 2001
+From 264ae7b062ac52a5545a8a562b51001f7ce7369d Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Thu, 21 Apr 2022 17:22:35 +0800
Subject: [PATCH] drbd-utils: support usermerge
-Upstream-Status: Inappropriate[oe-specific]
+Upstream-Status: Inappropriate [oe-specific]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
@@ -21,10 +21,10 @@ Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
10 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/configure.ac b/configure.ac
-index ae575586..3d7deeae 100644
+index f1d69ea3..3289ac7d 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -180,7 +180,7 @@ AC_ARG_WITH(tmpfilesdir,
+@@ -183,7 +183,7 @@ AC_ARG_WITH(tmpfilesdir,
AC_SUBST(tmpfilesdir)
# set default early
@@ -34,12 +34,12 @@ index ae575586..3d7deeae 100644
test x"$with_udev" = xyes ; then
if test x"$PKG_CONFIG" != x; then
diff --git a/scripts/Makefile.in b/scripts/Makefile.in
-index fcd298e9..bab441a5 100644
+index aca15a22..a1cd2ffe 100644
--- a/scripts/Makefile.in
+++ b/scripts/Makefile.in
-@@ -88,11 +88,11 @@ ifeq ($(subst both,systemd,$(initscripttype)),systemd)
+@@ -91,11 +91,11 @@ ifeq ($(subst both,systemd,$(initscripttype)),systemd)
install -d $(DESTDIR)$(systemdunitdir)
- install -m 644 drbd.service $(DESTDIR)$(systemdunitdir)/
+ install -m 644 $(SYSTEMD_UNITS) $(DESTDIR)$(systemdunitdir)/
install -m 644 $(SYSTEMD_TEMPLATES) $(DESTDIR)$(systemdunitdir)/
- install -d $(DESTDIR)/lib/drbd/scripts
- install -m 755 drbd $(DESTDIR)/lib/drbd/scripts
@@ -110,7 +110,7 @@ index 96c599e7..c81e95a6 100644
[Install]
WantedBy=multi-user.target
diff --git a/scripts/drbd@.service b/scripts/drbd@.service
-index 76514c5b..e2e500ba 100644
+index 0fad10be..556f3857 100644
--- a/scripts/drbd@.service
+++ b/scripts/drbd@.service
@@ -35,8 +35,8 @@ RemainAfterExit=yes
@@ -199,6 +199,3 @@ index 0fcefc5f..81f7d5ec 100644
spell:
for f in drbdadm_adjust.c drbdadm_main.c drbdadm_parser.c drbdadm_usage_cnt.c drbdsetup.c drbdtool_common.c; do \
---
-2.25.1
-
diff --git a/meta-networking/recipes-support/drbd/drbd-utils/0001-drbdmon-add-LDFLAGS-when-linking.patch b/meta-networking/recipes-support/drbd/drbd-utils/0001-drbdmon-add-LDFLAGS-when-linking.patch
index 354be0ff18..c7766067a1 100644
--- a/meta-networking/recipes-support/drbd/drbd-utils/0001-drbdmon-add-LDFLAGS-when-linking.patch
+++ b/meta-networking/recipes-support/drbd/drbd-utils/0001-drbdmon-add-LDFLAGS-when-linking.patch
@@ -1,13 +1,17 @@
-From a61b9ff2d2cb7387a5cd347b2201535ee45a46ee Mon Sep 17 00:00:00 2001
+From bb044160faf4ae7615ddfdb17641dd88c33cde57 Mon Sep 17 00:00:00 2001
From: Sakib Sajal <sakib.sajal@windriver.com>
Date: Thu, 31 Mar 2022 15:09:58 -0400
Subject: [PATCH] drbdmon: add LDFLAGS when linking
+Upstream-Status: Pending
+
Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
---
- user/drbdmon/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ user/drbdmon/Makefile.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+diff --git a/user/drbdmon/Makefile.in b/user/drbdmon/Makefile.in
+index 7bd8987e..115a81b8 100644
--- a/user/drbdmon/Makefile.in
+++ b/user/drbdmon/Makefile.in
@@ -1,6 +1,6 @@
@@ -18,7 +22,7 @@ Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
CXX = @CXX@
LIBS = @LIBS@
-@@ -51,7 +51,7 @@ $(dsaext-obj): $(basename $(dsaext-obj))
+@@ -72,7 +72,7 @@ $(dsaext-obj): $(basename $(dsaext-obj)).cpp $(basename $(dsaext-obj)).h
$(integerparse-obj): $(basename $(integerparse-obj)).cpp $(basename $(integerparse-obj)).h
drbdmon: $(ls-obj)
diff --git a/meta-networking/recipes-support/drbd/drbd-utils_9.20.2.bb b/meta-networking/recipes-support/drbd/drbd-utils_9.20.2.bb
deleted file mode 100644
index deaab641e2..0000000000
--- a/meta-networking/recipes-support/drbd/drbd-utils_9.20.2.bb
+++ /dev/null
@@ -1,73 +0,0 @@
-SUMMARY = "Distributed block device driver for Linux"
-DESCRIPTION = "DRBD mirrors a block device over the network to another machine.\
-DRBD mirrors a block device over the network to another machine.\
-Think of it as networked raid 1. It is a building block for\
-setting up high availability (HA) clusters."
-HOMEPAGE = "http://www.drbd.org/"
-SECTION = "admin"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
-
-SRC_URI = "git://github.com/LINBIT/drbd-utils;name=drbd-utils;branch=${PV};protocol=https \
- git://github.com/LINBIT/drbd-headers;name=drbd-headers;destsuffix=git/drbd-headers;branch=master;protocol=https \
- file://0001-drbdmon-add-LDFLAGS-when-linking.patch \
- ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-drbd-utils-support-usrmerge.patch','',d)} \
- "
-
-SRCREV_drbd-utils = "087ee6b4961ca154d76e4211223b03149373bed8"
-SRCREV_drbd-headers = "f1529aa84e9d2f66c96ad283a1bbb708aabf03f7"
-
-SRCREV_FORMAT = "drbd-utils_drbd-headers"
-
-S = "${WORKDIR}/git"
-
-UPSTREAM_CHECK_URI = "https://github.com/LINBIT/drbd-utils/releases"
-
-SYSTEMD_SERVICE:${PN} = "drbd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-DEPENDS = "flex-native"
-
-inherit autotools-brokensep systemd
-
-EXTRA_OECONF = " \
- --with-initdir=/etc/init.d \
- --without-pacemaker \
- --without-rgmanager \
- --without-bashcompletion \
- --with-distro debian \
- --with-initscripttype=both \
- --with-systemdunitdir=${systemd_unitdir}/system \
- --without-manual \
- "
-
-# If we have inherited reproducible_build, we want to use it.
-export WANT_DRBD_REPRODUCIBLE_BUILD = "yes"
-
-do_install:append() {
- # don't install empty /var/lock and /var/run to avoid conflict with base-files
- rm -rf ${D}${localstatedir}/lock
- rm -rf ${D}${localstatedir}/run
-
- sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd-demote-or-escalate@.service
- sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd-promote@.service
- sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd-wait-promotable@.service
- sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd.service
- sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd@.service
- sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/ocf.ra@.service
-}
-
-RDEPENDS:${PN} += "bash perl-module-getopt-long perl-module-exporter perl-module-constant perl-module-overloading perl-module-exporter-heavy"
-
-# The drbd items are explicitly put under /lib when installed.
-#
-FILES:${PN} += "/run"
-FILES:${PN} += "${nonarch_base_libdir}/drbd \
- ${nonarch_libdir}/drbd \
- ${nonarch_libdir}/tmpfiles.d \
- ${nonarch_libdir}/drbdscripts/* \
- ${systemd_unitdir}/system/* \
-"
-FILES:${PN}-dbg += "${nonarch_base_libdir}/drbd/.debug"
-
-CLEANBROKEN = "1"
diff --git a/meta-networking/recipes-support/drbd/drbd-utils_9.27.0.bb b/meta-networking/recipes-support/drbd/drbd-utils_9.27.0.bb
new file mode 100644
index 0000000000..63f0fd18c1
--- /dev/null
+++ b/meta-networking/recipes-support/drbd/drbd-utils_9.27.0.bb
@@ -0,0 +1,76 @@
+SUMMARY = "Distributed block device driver for Linux"
+DESCRIPTION = "DRBD mirrors a block device over the network to another machine.\
+Think of it as networked raid 1. It is a building block for\
+setting up high availability (HA) clusters."
+HOMEPAGE = "http://www.drbd.org/"
+SECTION = "admin"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
+
+SRC_URI = "git://github.com/LINBIT/drbd-utils;name=drbd-utils;branch=master;protocol=https \
+ git://github.com/LINBIT/drbd-headers;name=drbd-headers;destsuffix=git/drbd-headers;branch=master;protocol=https \
+ file://0001-drbdmon-add-LDFLAGS-when-linking.patch \
+ ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-drbd-utils-support-usrmerge.patch','',d)} \
+ file://0001-configure.ac-Add-an-option-to-disable-host-udev-vers.patch \
+ "
+SRCREV_drbd-utils = "fdd9a4d603a9dc99d110d8bd0e288d7c0b6f586e"
+SRCREV_drbd-headers = "0349f00825b4198d4ec3248f43884114a187676a"
+
+SRCREV_FORMAT = "drbd-utils_drbd-headers"
+
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_URI = "https://github.com/LINBIT/drbd-utils/releases"
+
+SYSTEMD_SERVICE:${PN} = "drbd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+DEPENDS = "flex-native keyutils"
+
+inherit autotools-brokensep systemd
+
+# -Wunused-but-set-variable -Wunused-const-variable -Winconsistent-missing-override
+CPPFLAGS:append = " -Wno-error"
+
+EXTRA_OECONF = " \
+ --with-initdir=/etc/init.d \
+ --without-pacemaker \
+ --without-rgmanager \
+ --without-bashcompletion \
+ --with-distro debian \
+ --with-initscripttype=both \
+ --with-systemdunitdir=${systemd_unitdir}/system \
+ --without-manual \
+ --disable-udevchecks \
+ "
+
+# If we have inherited reproducible_build, we want to use it.
+export WANT_DRBD_REPRODUCIBLE_BUILD = "yes"
+
+do_install:append() {
+ # don't install empty /var/lock and /var/run to avoid conflict with base-files
+ rm -rf ${D}${localstatedir}/lock
+ rm -rf ${D}${localstatedir}/run
+
+ sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd-demote-or-escalate@.service
+ sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd-promote@.service
+ sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd-wait-promotable@.service
+ sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd.service
+ sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/drbd@.service
+ sed -i -e 's#@nonarch_libdir@#${nonarch_libdir}#g' ${D}${systemd_unitdir}/system/ocf.ra@.service
+}
+
+RDEPENDS:${PN} += "bash perl-module-getopt-long perl-module-exporter perl-module-constant perl-module-overloading perl-module-exporter-heavy"
+
+# The drbd items are explicitly put under /lib when installed.
+#
+FILES:${PN} += "/run"
+FILES:${PN} += "${nonarch_base_libdir}/drbd \
+ ${nonarch_libdir}/drbd \
+ ${nonarch_libdir}/tmpfiles.d \
+ ${nonarch_libdir}/drbdscripts/* \
+ ${systemd_unitdir}/system/* \
+"
+FILES:${PN}-dbg += "${nonarch_base_libdir}/drbd/.debug"
+
+CLEANBROKEN = "1"
diff --git a/meta-networking/recipes-support/drbd/drbd_9.0.24-1.bb b/meta-networking/recipes-support/drbd/drbd_9.0.24-1.bb
deleted file mode 100644
index 0766f7f4bd..0000000000
--- a/meta-networking/recipes-support/drbd/drbd_9.0.24-1.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Distributed block device driver for Linux"
-DESCRIPTION = "DRBD is a block device which is designed to build high \
- availability clusters. This is done by mirroring a whole \
- block device via (a dedicated) network. You could see \
- it as a network raid-1."
-HOMEPAGE = "http://oss.linbit.com/drbd/"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
-DEPENDS = "virtual/kernel"
-
-SRC_URI = "http://www.linbit.com/downloads/drbd/9.0/drbd-${PV}.tar.gz \
- file://check_existence_of_modules_before_installing.patch \
- "
-SRC_URI[sha256sum] = "14970459f55bc465503b88b24d1a266b2ace0d69fe3cb387005b8477cd6475ed"
-
-inherit module
-
-EXTRA_OEMAKE += "KDIR='${STAGING_KERNEL_DIR}' SPAAS=true"
-
-do_install () {
- oe_runmake install DESTDIR="${D}"
-}
-
-SKIP_RECIPE[drbd] ?= "Needs coccinelle to build with SPAAS"
diff --git a/meta-networking/recipes-support/drbd/drbd_9.2.1.bb b/meta-networking/recipes-support/drbd/drbd_9.2.1.bb
new file mode 100644
index 0000000000..48ce2abf09
--- /dev/null
+++ b/meta-networking/recipes-support/drbd/drbd_9.2.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Distributed block device driver for Linux"
+DESCRIPTION = "DRBD is a block device which is designed to build high \
+ availability clusters. This is done by mirroring a whole \
+ block device via (a dedicated) network. You could see \
+ it as a network raid-1."
+HOMEPAGE = "http://oss.linbit.com/drbd/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
+DEPENDS = "virtual/kernel"
+
+SRC_URI = "https://pkg.linbit.com//downloads/drbd/9/${BP}.tar.gz \
+ file://check_existence_of_modules_before_installing.patch \
+ "
+SRC_URI[sha256sum] = "f59ee795188f21d4a62c5319c371ebad65ab3fb9b55e5212c3f1dd558978a843"
+
+inherit module
+
+EXTRA_OEMAKE += "KDIR='${STAGING_KERNEL_DIR}' SPAAS=true"
+
+do_install () {
+ oe_runmake install DESTDIR="${D}"
+}
+
+SKIP_RECIPE[drbd] ?= "Needs coccinelle to build with SPAAS"
diff --git a/meta-networking/recipes-support/dropwatch/dropwatch/0001-fix-bug-build-with-sysroot-head-file-instead-of-loca.patch b/meta-networking/recipes-support/dropwatch/dropwatch/0001-fix-bug-build-with-sysroot-head-file-instead-of-loca.patch
new file mode 100755
index 0000000000..d0baceb15b
--- /dev/null
+++ b/meta-networking/recipes-support/dropwatch/dropwatch/0001-fix-bug-build-with-sysroot-head-file-instead-of-loca.patch
@@ -0,0 +1,30 @@
+From 4872c52f55f9cb089e6681c3f1926663145b52ae Mon Sep 17 00:00:00 2001
+From: chenheyun <chen_heyun@163.com>
+Date: Sun, 18 Feb 2024 05:08:25 -0800
+Subject: [PATCH] fix bug: build with sysroot head file instead of local head
+ file:net_dropmon.h
+
+Signed-off-by: chenheyun <chen_heyun@163.com>
+
+Upstream-Status: Pending
+---
+ src/main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/main.c b/src/main.c
+index e4746d9..81dc4da 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -26,8 +26,8 @@
+ #include <netlink/netlink.h>
+ #include <netlink/genl/genl.h>
+ #include <netlink/genl/ctrl.h>
++#include <net_dropmon.h>
+
+-#include "net_dropmon.h"
+ #include "lookup.h"
+
+ /*
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/dropwatch/dropwatch_1.5.4.bb b/meta-networking/recipes-support/dropwatch/dropwatch_1.5.4.bb
new file mode 100644
index 0000000000..baa9398a18
--- /dev/null
+++ b/meta-networking/recipes-support/dropwatch/dropwatch_1.5.4.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Dropwatch is a utility to diagnose where packets are getting dropped"
+DESCRIPTION = "\
+Dropwatch is a utility to help developers and system administrators to \
+diagnose problems in the Linux Networking stack, specifically their \
+ability to diagnose where packets are getting dropped."
+HOMEPAGE = "https://github.com/nhorman/${BPN}"
+SECTION = "net/misc"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
+
+SRC_URI = "git://github.com/nhorman/dropwatch.git;protocol=https;nobranch=1 \
+ file://0001-fix-bug-build-with-sysroot-head-file-instead-of-loca.patch \
+"
+SRCREV = "1e7e487a019a7c02f1f429c4d3a4647fa3787a13"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "binutils libnl libpcap readline"
+
+inherit pkgconfig autotools
diff --git a/meta-networking/recipes-support/esmtp/esmtp/0001-Fix-libESMTP-dependency-check.patch b/meta-networking/recipes-support/esmtp/esmtp/0001-Fix-libESMTP-dependency-check.patch
index 92ac4b12ba..18bffe55b2 100644
--- a/meta-networking/recipes-support/esmtp/esmtp/0001-Fix-libESMTP-dependency-check.patch
+++ b/meta-networking/recipes-support/esmtp/esmtp/0001-Fix-libESMTP-dependency-check.patch
@@ -8,6 +8,8 @@ check for existence instead.
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
---
+Upstream-Status: Pending
+
configure.ac | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/meta-networking/recipes-support/ettercap/ettercap/0001-sslstrip-Enhance-the-libcurl-version-check-to-consid.patch b/meta-networking/recipes-support/ettercap/ettercap/0001-sslstrip-Enhance-the-libcurl-version-check-to-consid.patch
new file mode 100644
index 0000000000..592ea52f2e
--- /dev/null
+++ b/meta-networking/recipes-support/ettercap/ettercap/0001-sslstrip-Enhance-the-libcurl-version-check-to-consid.patch
@@ -0,0 +1,38 @@
+From 40534662043b7d831d1f6c70448afa9d374a9b63 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 23 Mar 2023 10:23:14 -0700
+Subject: [PATCH] sslstrip: Enhance the libcurl version check to consider
+ version 8+
+
+Lately curl has released version 8 and hence LIBCURL_VERSION_MAJOR is
+reset to 0, current check assumes major version to be 7 at max and hence
+on systems with libcurl 8+ this check breaks and build fails
+
+Fixes
+
+TOPDIR/build/tmp/work/cortexa15t2hf-neon-yoe-linux-gnueabi/ettercap/0.8.3.1-r0/git/plug-ins/sslstrip/sslstrip.c:57:2: error: libcurl 7.26.0 or up is needed
+ ^
+1 error generated.
+
+Upstream-Status: Backport [https://github.com/Ettercap/ettercap/commit/40534662043b7d831d1f6c70448afa9d374a9b63]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ plug-ins/sslstrip/sslstrip.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plug-ins/sslstrip/sslstrip.c b/plug-ins/sslstrip/sslstrip.c
+index 327bf58a..d9b67c8b 100644
+--- a/plug-ins/sslstrip/sslstrip.c
++++ b/plug-ins/sslstrip/sslstrip.c
+@@ -51,7 +51,7 @@
+
+ #include <curl/curl.h>
+
+-#if (LIBCURL_VERSION_MAJOR < 7) || (LIBCURL_VERSION_MINOR < 26)
++#if (LIBCURL_VERSION_MAJOR < 7) || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR < 26)
+ #error libcurl 7.26.0 or up is needed
+ #endif
+
+--
+2.40.0
+
diff --git a/meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb b/meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb
index 7d37f41096..723d7c8f78 100644
--- a/meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb
+++ b/meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb
@@ -10,6 +10,7 @@ DEPENDS += "ethtool \
librepo \
libnet \
libpcap \
+ libpcre \
ncurses \
openssl \
zlib \
@@ -19,7 +20,8 @@ DEPENDS += "ethtool \
RDEPENDS:${PN} += "bash ethtool libgcc"
-SRC_URI = "gitsm://github.com/Ettercap/ettercap;branch=master;protocol=https"
+SRC_URI = "gitsm://github.com/Ettercap/ettercap;branch=master;protocol=https \
+ file://0001-sslstrip-Enhance-the-libcurl-version-check-to-consid.patch"
SRCREV = "7281fbddb7da7478beb1d21e3cb105fff3778b31"
@@ -30,6 +32,8 @@ EXTRA_OECMAKE = " \
-DBUNDLED_LIBS=ON \
-DENABLE_IPV6=ON \
-DENABLE_GTK=OFF \
+ -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \
+ -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines' \
"
CFLAGS += "-D_GNU_SOURCE"
diff --git a/meta-networking/recipes-support/fetchmail/fetchmail_6.4.23.bb b/meta-networking/recipes-support/fetchmail/fetchmail_6.4.23.bb
deleted file mode 100644
index e4ad0a39e1..0000000000
--- a/meta-networking/recipes-support/fetchmail/fetchmail_6.4.23.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Fetchmail retrieves mail from remote mail servers and forwards it via SMTP"
-HOMEPAGE = "http://www.fetchmail.info/"
-DESCRIPTION = "Fetchmail is a full-featured, robust, well-documented remote-mail retrieval \
-and forwarding utility intended to be used over on-demand TCP/IP links (such as SLIP or PPP \
-connections). It supports every remote-mail protocol now in use on the Internet: POP2, POP3, \
-RPOP, APOP, KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 and IPSEC."
-SECTION = "mail"
-LICENSE = "GPL-2.0-only & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c3a05d9b9d3784c824c9b92a648e1353"
-
-DEPENDS = "openssl"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz \
- "
-SRC_URI[sha256sum] = "5f7a5e13731431134a2ca535bbced7adc666d3aeb93169a0830945d91f492300"
-
-inherit autotools gettext pkgconfig python3-dir python3native
-
-EXTRA_OECONF = "--with-ssl=${STAGING_DIR_HOST}${prefix}"
-
-PACKAGES =+ "fetchmail-python"
-FILES:fetchmail-python = "${libdir}/${PYTHON_DIR}/*"
diff --git a/meta-networking/recipes-support/fetchmail/fetchmail_6.4.38.bb b/meta-networking/recipes-support/fetchmail/fetchmail_6.4.38.bb
new file mode 100644
index 0000000000..587a479497
--- /dev/null
+++ b/meta-networking/recipes-support/fetchmail/fetchmail_6.4.38.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Fetchmail retrieves mail from remote mail servers and forwards it via SMTP"
+HOMEPAGE = "http://www.fetchmail.info/"
+DESCRIPTION = "Fetchmail is a full-featured, robust, well-documented remote-mail retrieval \
+and forwarding utility intended to be used over on-demand TCP/IP links (such as SLIP or PPP \
+connections). It supports every remote-mail protocol now in use on the Internet: POP2, POP3, \
+RPOP, APOP, KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 and IPSEC."
+SECTION = "mail"
+LICENSE = "GPL-2.0-only & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ee6b9f41d9324434dd11bd8a38f1b044"
+
+DEPENDS = "openssl"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz \
+ "
+SRC_URI[sha256sum] = "a6cb4ea863ac61d242ffb2db564a39123761578d3e40d71ce7b6f2905be609d9"
+
+inherit autotools gettext pkgconfig python3-dir python3native
+
+EXTRA_OECONF = "--with-ssl=${STAGING_DIR_HOST}${prefix}"
+
+do_install:append() {
+ sed -i 's,${RECIPE_SYSROOT_NATIVE},,g' ${D}${bindir}/fetchmailconf
+}
+
+PACKAGES =+ "fetchmail-python"
+FILES:fetchmail-python = "${libdir}/${PYTHON_DIR}/*"
diff --git a/meta-networking/recipes-support/fping/fping/0001-fping-Initialize-msghdr-struct-in-a-portable-way.patch b/meta-networking/recipes-support/fping/fping/0001-fping-Initialize-msghdr-struct-in-a-portable-way.patch
index 2a5b3e6193..9965d2ec57 100644
--- a/meta-networking/recipes-support/fping/fping/0001-fping-Initialize-msghdr-struct-in-a-portable-way.patch
+++ b/meta-networking/recipes-support/fping/fping/0001-fping-Initialize-msghdr-struct-in-a-portable-way.patch
@@ -7,7 +7,7 @@ Initializing the structure assuming glibc layout results in
compile errors on musl, therefore do partial intialization and then
assigning the members individually.
-Upstream-status: Submitted [https://github.com/schweikert/fping/pull/263]
+Upstream-Status: Submitted [https://github.com/schweikert/fping/pull/263]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/fping.c | 16 +++++++---------
diff --git a/meta-networking/recipes-support/fwknop/fwknop/0001-Use-pkg-config-to-find-gpgme.patch b/meta-networking/recipes-support/fwknop/fwknop/0001-Use-pkg-config-to-find-gpgme.patch
new file mode 100644
index 0000000000..146501c775
--- /dev/null
+++ b/meta-networking/recipes-support/fwknop/fwknop/0001-Use-pkg-config-to-find-gpgme.patch
@@ -0,0 +1,27 @@
+From f8f4e1a617c4610ea7dc40a60f1c696ebc37850c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 2 Apr 2023 09:27:42 -0700
+Subject: [PATCH] Use pkg-config to find gpgme
+
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ m4/gpgme.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4/gpgme.m4 b/m4/gpgme.m4
+index 44bf43c..c9a8ae6 100644
+--- a/m4/gpgme.m4
++++ b/m4/gpgme.m4
+@@ -18,7 +18,7 @@ AC_DEFUN([_AM_PATH_GPGME_CONFIG],
+ if test "x$gpgme_config_prefix" != x ; then
+ GPGME_CONFIG="$gpgme_config_prefix/bin/gpgme-config"
+ fi
+- AC_PATH_PROG(GPGME_CONFIG, gpgme-config, no)
++ GPGME_CONFIG="pkg-config gpgme"
+
+ if test "$GPGME_CONFIG" != "no" ; then
+ gpgme_version=`$GPGME_CONFIG --version`
+--
+2.40.0
+
diff --git a/meta-networking/recipes-support/fwknop/fwknop/0001-configure.ac-Fix-missing-comma-in-AS_IF.patch b/meta-networking/recipes-support/fwknop/fwknop/0001-configure.ac-Fix-missing-comma-in-AS_IF.patch
new file mode 100644
index 0000000000..f3e1707408
--- /dev/null
+++ b/meta-networking/recipes-support/fwknop/fwknop/0001-configure.ac-Fix-missing-comma-in-AS_IF.patch
@@ -0,0 +1,29 @@
+From fee4cb0ae2d1fcd012cb7f501c3db0d8ec910798 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 2 Apr 2023 10:01:51 -0700
+Subject: [PATCH] configure.ac: Fix missing comma in AS_IF
+
+this is flagged with autconf 2.72
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 47a069e..9cdfd3f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -744,7 +744,7 @@ dnl
+ IPFW_EXE=""
+ IPTABLES_EXE=""
+ FIREWALLD_EXE=""
+- ]
++ ],
+ ]
+ ]
+ ]
+--
+2.40.0
+
diff --git a/meta-networking/recipes-support/fwknop/fwknop_2.6.10.bb b/meta-networking/recipes-support/fwknop/fwknop_2.6.10.bb
index a35ec06795..a1f56cdf16 100644
--- a/meta-networking/recipes-support/fwknop/fwknop_2.6.10.bb
+++ b/meta-networking/recipes-support/fwknop/fwknop_2.6.10.bb
@@ -3,29 +3,22 @@ HOMEPAGE = "http://www.cipherdyne.org/fwknop/"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
"
-inherit autotools-brokensep
+inherit autotools-brokensep pkgconfig
SRC_URI = "http://www.cipherdyne.org/${BPN}/download/${BPN}-${PV}.tar.bz2 \
file://0001-Fix-compilation-with-GCC-s-fno-common-flag-fixes-305.patch \
+ file://0001-Use-pkg-config-to-find-gpgme.patch \
+ file://0001-configure.ac-Fix-missing-comma-in-AS_IF.patch \
"
-SRC_URI[md5sum] = "47a9c7c214c40dceb5dc2aa8832e4f32"
SRC_URI[sha256sum] = "f6c09bec97ed8e474a98ae14f9f53e1bcdda33393f20667b6af3fb6bb894ca77"
DEPENDS = "libpcap gpgme"
-EXTRA_OECONF = " --with-iptables=/usr/sbin/iptables \
- "
+EXTRA_OECONF = " --with-iptables=${sbindir}/iptables"
-do_configure () {
+do_configure:prepend () {
install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/config
install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/config
-
- aclocal
- libtoolize --automake --copy --force
- autoconf
- autoheader
- automake -a
- oe_runconf
}
PACKAGES =+ "${PN}-client ${PN}-daemon"
diff --git a/meta-networking/recipes-support/htpdate/htpdate_1.3.6.bb b/meta-networking/recipes-support/htpdate/htpdate_1.3.6.bb
deleted file mode 100644
index a4389ce7e8..0000000000
--- a/meta-networking/recipes-support/htpdate/htpdate_1.3.6.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "HTTP based time synchronization tool"
-DESCRIPTION = "The HTTP Time Protocol (HTP) is used to synchronize a computer's time with\
- web servers as reference time source. This program can be used instead\
- ntpdate or similar, in networks that has a firewall blocking the NTP port.\
- Htpdate will synchronize the computer time to Greenwich Mean Time (GMT),\
- using the timestamps from HTTP headers found in web servers response (the\
- HEAD method will be used to get the information).\
- Htpdate works through proxy servers. Accuracy of htpdate will be usually\
- within 0.5 seconds (better with multiple servers).\
-"
-HOMEPAGE = "https://github.com/twekkel/htpdate"
-BUGTRACKER = "https://github.com/twekkel/htpdate/issues"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://htpdate.c;beginline=26;endline=30;md5=2b6cdb94bd5349646d7e33f9f501eef7"
-
-SRC_URI = "http://www.vervest.org/htp/archive/c/htpdate-${PV}.tar.gz"
-SRC_URI[sha256sum] = "3cdc558ec8e53ef374a42490b2f28c0b23981fa8754a6d7182044707828ad1e9"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_configure () {
- :
-}
-
-do_compile () {
- oe_runmake
-}
-
-do_install () {
- oe_runmake install 'INSTALL=install' 'STRIP=echo' 'DESTDIR=${D}'
-}
diff --git a/meta-networking/recipes-support/htpdate/htpdate_1.3.7.bb b/meta-networking/recipes-support/htpdate/htpdate_1.3.7.bb
new file mode 100644
index 0000000000..b6dfab0856
--- /dev/null
+++ b/meta-networking/recipes-support/htpdate/htpdate_1.3.7.bb
@@ -0,0 +1,31 @@
+SUMMARY = "HTTP based time synchronization tool"
+DESCRIPTION = "The HTTP Time Protocol (HTP) is used to synchronize a computer's time with\
+ web servers as reference time source. This program can be used instead\
+ ntpdate or similar, in networks that has a firewall blocking the NTP port.\
+ Htpdate will synchronize the computer time to Greenwich Mean Time (GMT),\
+ using the timestamps from HTTP headers found in web servers response (the\
+ HEAD method will be used to get the information).\
+ Htpdate works through proxy servers. Accuracy of htpdate will be usually\
+ within 0.5 seconds (better with multiple servers).\
+"
+HOMEPAGE = "https://github.com/twekkel/htpdate"
+BUGTRACKER = "https://github.com/twekkel/htpdate/issues"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://htpdate.c;beginline=26;endline=30;md5=2b6cdb94bd5349646d7e33f9f501eef7"
+
+SRC_URI = "http://www.vervest.org/htp/archive/c/htpdate-${PV}.tar.gz"
+SRC_URI[sha256sum] = "88c52fe475308ee95f560fd7cf68c75bc6e9a6abf56be7fed203a7f762fe7ab2"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_configure () {
+ :
+}
+
+do_compile () {
+ oe_runmake
+}
+
+do_install () {
+ oe_runmake install 'INSTALL=install' 'STRIP=echo' 'DESTDIR=${D}'
+}
diff --git a/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb b/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb
index d4f76850d3..528289b7fd 100644
--- a/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb
+++ b/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb
@@ -6,7 +6,6 @@ DESCRIPTION = "This is a parser for HTTP messages written in C. It parses \
interrupted at anytime. Depending on your architecture, it \
only requires about 40 bytes of data per message stream (in a \
web server that is per connection)."
-AUTHOR = "Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>"
HOMEPAGE = "https://github.com/nodejs/http-parser"
SECTION = "libs"
LICENSE = "MIT"
diff --git a/meta-networking/recipes-support/ifenslave/ifenslave_2.13.bb b/meta-networking/recipes-support/ifenslave/ifenslave_2.13.bb
deleted file mode 100644
index 663685a3aa..0000000000
--- a/meta-networking/recipes-support/ifenslave/ifenslave_2.13.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Configure network interfaces for parallel routing"
-HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding"
-SECTION = "net"
-
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=acc89812938cf9ad6b1debc37cea0253"
-
-inherit manpages
-MAN_PKG = "${PN}"
-
-SRCREV = "1bdfb472f2f8212056ed418d48387e8b36e61b34"
-SRC_URI = "git://salsa.debian.org/debian/ifenslave.git;protocol=https;branch=main"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- install -m 0755 -D ${S}/debian/ifenslave.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/ifenslave
- install -m 0755 -D ${S}/debian/ifenslave.if-post-down ${D}${sysconfdir}/network/if-post-down.d/ifenslave
- install -m 0755 -D ${S}/debian/ifenslave.if-up ${D}${sysconfdir}/network/if-up.d/ifenslave
-}
-
-FILES:${PN}-doc:remove = "${mandir}"
diff --git a/meta-networking/recipes-support/ifenslave/ifenslave_2.14.bb b/meta-networking/recipes-support/ifenslave/ifenslave_2.14.bb
new file mode 100644
index 0000000000..02a5520a97
--- /dev/null
+++ b/meta-networking/recipes-support/ifenslave/ifenslave_2.14.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Configure network interfaces for parallel routing"
+HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding"
+SECTION = "net"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=acc89812938cf9ad6b1debc37cea0253"
+
+inherit manpages
+MAN_PKG = "${PN}"
+
+SRCREV = "62e60904afbe58fda0c7104fdad1c4f618266ba6"
+SRC_URI = "git://salsa.debian.org/debian/ifenslave.git;protocol=https;branch=main"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -m 0755 -D ${S}/debian/ifenslave.if-pre-up ${D}${sysconfdir}/network/if-pre-up.d/ifenslave
+ install -m 0755 -D ${S}/debian/ifenslave.if-post-down ${D}${sysconfdir}/network/if-post-down.d/ifenslave
+ install -m 0755 -D ${S}/debian/ifenslave.if-up ${D}${sysconfdir}/network/if-up.d/ifenslave
+}
+
+FILES:${PN}-doc:remove = "${mandir}"
diff --git a/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.8_typo.patch b/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.8_typo.patch
index 246910036e..3bd87ff457 100644
--- a/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.8_typo.patch
+++ b/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.8_typo.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Correct typo: s/ommited/omitted/
Author: Michael Shuler <michael@pbandjelly.org>
Index: ifmetric/man/ifmetric.8
diff --git a/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_netlink-invalid-arg.patch b/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_netlink-invalid-arg.patch
index 374135d4f6..a6d1828d22 100644
--- a/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_netlink-invalid-arg.patch
+++ b/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_netlink-invalid-arg.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Fix "NETLINK: Error: Invalid argument" for links that are down, in kernel 4.4+
Author: Jim Paris <jim@jtan.com>
Bug-Debian: http://bugs.debian.org/864889
diff --git a/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_typo.patch b/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_typo.patch
index 992f7d2fbb..19290a59dd 100644
--- a/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_typo.patch
+++ b/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_typo.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Correct spelling-error-in-binary s/Recieved/Received/
Author: Michael Shuler <michael@pbandjelly.org>
Index: ifmetric/src/ifmetric.c
diff --git a/meta-networking/recipes-support/ifmetric/ifmetric/nlrequest.c_packet-too-small_fix.patch b/meta-networking/recipes-support/ifmetric/ifmetric/nlrequest.c_packet-too-small_fix.patch
index 15b3103334..89851517bf 100644
--- a/meta-networking/recipes-support/ifmetric/ifmetric/nlrequest.c_packet-too-small_fix.patch
+++ b/meta-networking/recipes-support/ifmetric/ifmetric/nlrequest.c_packet-too-small_fix.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Fix "NETLINK: Packet too small or truncated!" error.
Author: Benedek László <benedekl@gmail.com>
Bug-Debian: http://bugs.debian.org/514197
diff --git a/meta-networking/recipes-support/ipcalc/ipcalc/0001-Makefile-pass-extra-linker-flags.patch b/meta-networking/recipes-support/ipcalc/ipcalc/0001-Makefile-pass-extra-linker-flags.patch
deleted file mode 100644
index e95b6f993f..0000000000
--- a/meta-networking/recipes-support/ipcalc/ipcalc/0001-Makefile-pass-extra-linker-flags.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 7fd0e0b88df692dfc67335f235a1bb74854a0498 Mon Sep 17 00:00:00 2001
-From: Mariia Movchan <mmovchan@cisco.com>
-Date: Tue, 6 Mar 2018 16:03:39 +0200
-Subject: [PATCH] Makefile: pass extra linker flags
-
-Fixes
-ERROR: QA Issue: No GNU_HASH in the elf binary
-
-Upstream-Status: Pending
-
-Signed-off-by: Mariia Movchan <mmovchan@cisco.com>
-
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 54569c1..798988f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -8,7 +8,7 @@ LIBS?=
- VERSION=0.2.3
- CC?=gcc
- CFLAGS?=-O2 -g -Wall
--LDFLAGS=$(LIBS)
-+LDFLAGS+=$(LIBS)
-
- ifeq ($(USE_GEOIP),yes)
- ifeq ($(USE_DYN_GEOIP),yes)
diff --git a/meta-networking/recipes-support/ipcalc/ipcalc_0.2.3.bb b/meta-networking/recipes-support/ipcalc/ipcalc_0.2.3.bb
deleted file mode 100644
index efac3c86eb..0000000000
--- a/meta-networking/recipes-support/ipcalc/ipcalc_0.2.3.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Tool to assist in network address calculations for IPv4 and IPv6."
-HOMEPAGE = "https://github.com/nmav/ipcalc"
-
-SECTION = "net"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-S = "${WORKDIR}/git"
-SRCREV = "c3ee70c878b9c5833a77a1f339f1ca4dc6f225c5"
-SRC_URI = "\
- git://github.com/nmav/ipcalc.git;protocol=https;;branch=master \
- file://0001-Makefile-pass-extra-linker-flags.patch \
-"
-
-export USE_GEOIP = "no"
-
-do_install() {
- install -d ${D}/${bindir}
- install -m 0755 ${S}/ipcalc ${D}/${bindir}
-}
diff --git a/meta-networking/recipes-support/ipcalc/ipcalc_1.0.3.bb b/meta-networking/recipes-support/ipcalc/ipcalc_1.0.3.bb
new file mode 100644
index 0000000000..055c6e1432
--- /dev/null
+++ b/meta-networking/recipes-support/ipcalc/ipcalc_1.0.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Tool to assist in network address calculations for IPv4 and IPv6."
+HOMEPAGE = "https://gitlab.com/ipcalc/ipcalc"
+
+SECTION = "net"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://gitlab.com/ipcalc/ipcalc.git;protocol=https;branch=master"
+SRCREV = "c341e55be386649c0a5347eefeae410753c4e753"
+
+S = "${WORKDIR}/git"
+
+inherit meson
diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Add-CCFLAGS-to-cflags.patch b/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Add-CCFLAGS-to-cflags.patch
new file mode 100644
index 0000000000..a2923088e8
--- /dev/null
+++ b/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Add-CCFLAGS-to-cflags.patch
@@ -0,0 +1,36 @@
+From 1bc180ec333d90e1a11deff46b5639ab5d40408d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 26 May 2023 09:29:23 -0700
+Subject: [PATCH] Add CCFLAGS to cflags
+
+This is to append the flags from build environment.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 1 +
+ libipvs/Makefile | 3 +++
+ 2 files changed, 4 insertions(+)
+
+--- a/Makefile
++++ b/Makefile
+@@ -50,6 +50,7 @@ else
+ CFLAGS = -Wall -Wunused -Wstrict-prototypes -g
+ endif
+
++CFLAGS += $(CCFLAGS)
+
+ #####################################
+ # No servicable parts below this line
+--- a/libipvs/Makefile
++++ b/libipvs/Makefile
+@@ -1,6 +1,9 @@
+ # Makefile for libipvs
+
+ CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -fPIC
++
++CFLAGS += $(CCFLAGS)
++
+ ifneq (0,$(HAVE_NL))
+ CFLAGS += -DLIBIPVS_USE_NL
+ CFLAGS += $(shell \
diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-libipvs-Include-missing-sys-types.h.patch b/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-libipvs-Include-missing-sys-types.h.patch
new file mode 100644
index 0000000000..8b08482be7
--- /dev/null
+++ b/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-libipvs-Include-missing-sys-types.h.patch
@@ -0,0 +1,28 @@
+From 4fc59f5733d187941e9a7ce5e9ea33714d85285c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 26 May 2023 09:30:59 -0700
+Subject: [PATCH] libipvs: Include missing sys/types.h
+
+Its needed for u_intXX_t types
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libipvs/ip_vs.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libipvs/ip_vs.h b/libipvs/ip_vs.h
+index 2670c23..625b6cd 100644
+--- a/libipvs/ip_vs.h
++++ b/libipvs/ip_vs.h
+@@ -8,6 +8,7 @@
+
+ #include <netinet/in.h>
+ #include <sys/socket.h>
++#include <sys/types.h>
+ #include <arpa/inet.h>
+ #include <linux/types.h> /* For __beXX types in userland */
+
+--
+2.40.1
+
diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm_1.31.bb b/meta-networking/recipes-support/ipvsadm/ipvsadm_1.31.bb
index 01bde4a68d..442e231ad4 100644
--- a/meta-networking/recipes-support/ipvsadm/ipvsadm_1.31.bb
+++ b/meta-networking/recipes-support/ipvsadm/ipvsadm_1.31.bb
@@ -20,6 +20,8 @@ SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/utils/kernel/ipvsadm/${BP}.
file://0001-Modify-the-Makefile-for-cross-compile.patch \
file://0003-ipvsadm-remove-dependency-on-bash.patch \
file://makefile-add-ldflags.patch \
+ file://0001-Add-CCFLAGS-to-cflags.patch \
+ file://0001-libipvs-Include-missing-sys-types.h.patch \
"
SRC_URI[md5sum] = "f6d1707c5baf684b58fd33682d67871f"
@@ -27,10 +29,10 @@ SRC_URI[sha256sum] = "1a0a5e25b5a1226435d2fb76341656f83a710183aebb0d204db39c0ec3
UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/ipvsadm"
+EXTRA_OEMAKE += "CCFLAGS='${CFLAGS}'"
+
do_compile() {
- oe_runmake \
- CC="${CC} -I${STAGING_INCDIR} -I${STAGING_INCDIR}/libnl3 -L${STAGING_LIBDIR}" \
- all
+ oe_runmake all
}
do_install() {
diff --git a/meta-networking/recipes-support/libcpr/libcpr_1.10.5.bb b/meta-networking/recipes-support/libcpr/libcpr_1.10.5.bb
new file mode 100644
index 0000000000..93fdb78eba
--- /dev/null
+++ b/meta-networking/recipes-support/libcpr/libcpr_1.10.5.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Curl for People - C++ Requests"
+DESCRIPTION = "Curl for People C++ Requests is a simple wrapper around \
+ libcurl inspired by the excellent Python Requests project."
+HOMEPAGE = "https://docs.libcpr.org/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=08beaae5deae1c43c065592da8f38095"
+
+DEPENDS = "curl openssl"
+
+SRC_URI = "git://github.com/libcpr/cpr.git;protocol=https;branch=1.10.x"
+SRCREV = "3b15fa82ea74739b574d705fea44959b58142eb8"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+# building tests is currently using FetchContent for mongoose
+EXTRA_OECMAKE += "\
+ -DCPR_USE_SYSTEM_CURL=ON \
+ -DCPR_BUILD_TESTS=OFF \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-networking/recipes-support/libesmtp/libesmtp/0001-Add-build-option-for-NTLM-support.patch b/meta-networking/recipes-support/libesmtp/libesmtp/0001-Add-build-option-for-NTLM-support.patch
index 64938a4820..dbdd644830 100644
--- a/meta-networking/recipes-support/libesmtp/libesmtp/0001-Add-build-option-for-NTLM-support.patch
+++ b/meta-networking/recipes-support/libesmtp/libesmtp/0001-Add-build-option-for-NTLM-support.patch
@@ -11,7 +11,7 @@ disabled by default.
Like 1.0.6, it will check openssl MD4 algorithm support as MD4 is
insecure and modern systems may drop MD4 support.
-Upstream-Status: Accepted [https://github.com/libesmtp/libESMTP/commit/1c304e7886a08fb56485e41614ff3f8685afb59d]
+Upstream-Status: Backport [https://github.com/libesmtp/libESMTP/commit/1c304e7886a08fb56485e41614ff3f8685afb59d]
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>
---
meson.build | 13 ++++++++++---
diff --git a/meta-networking/recipes-support/libexosip2/libexosip2_5.3.0.bb b/meta-networking/recipes-support/libexosip2/libexosip2_5.3.0.bb
new file mode 100644
index 0000000000..541b2edce1
--- /dev/null
+++ b/meta-networking/recipes-support/libexosip2/libexosip2_5.3.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Extend the capability of the oSIP library"
+DESCRIPTION = "eXosip is a GPL library that extend the capability of \
+the oSIP library. It aims to implement a simple high \
+layer API to control SIP (rfc3261) for sessions establishements \
+and common extensions."
+HOMEPAGE = "http://savannah.gnu.org/projects/exosip"
+SECTION = "libs"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://src/eXosip.c;beginline=1;endline=32;md5=db3c08b79afd8f4d5e5dc8f0a5dc687e"
+DEPENDS = "libosip2"
+
+SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/exosip/${BPN}-${PV}.tar.gz"
+SRC_URI[sha256sum] = "5b7823986431ea5cedc9f095d6964ace966f093b2ae7d0b08404788bfcebc9c2"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG = "c-ares openssl"
+PACKAGECONFIG[c-ares] = ",,c-ares"
+PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
+
+PACKAGES =+ "${PN}-tools"
+FILES:${PN}-tools += "${bindir}"
diff --git a/meta-networking/recipes-support/libldb/libldb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-networking/recipes-support/libldb/libldb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
deleted file mode 100644
index 382a19ced6..0000000000
--- a/meta-networking/recipes-support/libldb/libldb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From c67c7cee024150fcbdca18764a026aed8724d7ae Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Wed, 24 Nov 2021 13:33:35 +0800
-Subject: [PATCH] Fix pyext_PATTERN for cross compilation
-
-The pyext_PATTERN will add native arch as suffix when cross compiling.
-For example, on qemuarm64, it is expanded to:
-pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
-which will result in the incorrect library name.
-
-root@qemuarm64:~# find /usr/lib/ -name \*ldb\*
-/usr/lib/pkgconfig/pyldb-util.cpython-310-x86_64-linux-gnu.pc
-/usr/lib/pkgconfig/ldb.pc
-/usr/lib/libpyldb-util.cpython-310-x86-64-linux-gnu.so.2.3.2
-/usr/lib/libldb.so.2.3.2
-/usr/lib/libpyldb-util.cpython-310-x86-64-linux-gnu.so.2
-/usr/lib/libldb.so
-/usr/lib/libldb.so.2
-/usr/lib/python3.10/site-packages/_ldb_text.py
-/usr/lib/python3.10/site-packages/ldb.cpython-310-x86_64-linux-gnu.so
-/usr/lib/libpyldb-util.cpython-310-x86-64-linux-gnu.so
-
-Set pyext_PATTERN to '%s.so' to remove the suffix.
-After the patch:
-root@qemuarm64:~# find /usr/lib/ -name \*ldb\*
-/usr/lib/pkgconfig/pyldb-util.pc
-/usr/lib/pkgconfig/ldb.pc
-/usr/lib/libpyldb-util.so.2.3.2
-/usr/lib/libldb.so.2.3.2
-/usr/lib/libpyldb-util.so.2
-/usr/lib/libldb.so
-/usr/lib/libldb.so.2
-/usr/lib/python3.10/site-packages/_ldb_text.py
-/usr/lib/python3.10/site-packages/ldb.so
-/usr/lib/libpyldb-util.so
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- third_party/waf/waflib/Tools/python.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
-index b1c8dd0..24faa31 100644
---- a/third_party/waf/waflib/Tools/python.py
-+++ b/third_party/waf/waflib/Tools/python.py
-@@ -328,7 +328,7 @@ def check_python_headers(conf, features='pyembed pyext'):
- x = 'MACOSX_DEPLOYMENT_TARGET'
- if dct[x]:
- env[x] = conf.environ[x] = dct[x]
-- env.pyext_PATTERN = '%s' + dct['SO'] # not a mistake
-+ env.pyext_PATTERN = '%s.so'
-
-
- # Try to get pythonX.Y-config
---
-2.17.1
-
diff --git a/meta-networking/recipes-support/libldb/libldb/0001-do-not-import-target-module-while-cross-compile.patch b/meta-networking/recipes-support/libldb/libldb/0001-do-not-import-target-module-while-cross-compile.patch
index 74f8d8ad0b..09c84b4405 100644
--- a/meta-networking/recipes-support/libldb/libldb/0001-do-not-import-target-module-while-cross-compile.patch
+++ b/meta-networking/recipes-support/libldb/libldb/0001-do-not-import-target-module-while-cross-compile.patch
@@ -1,4 +1,4 @@
-From 00500909ebb0f51dd3b4e90c665f07158e7fe255 Mon Sep 17 00:00:00 2001
+From 6a2f229e74804f70f4419b2a1e6843aab059e098 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Tue, 25 Jun 2019 14:25:08 +0800
Subject: [PATCH] do not import target module while cross compile
@@ -19,7 +19,7 @@ Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/buildtools/wafsamba/samba_bundled.py b/buildtools/wafsamba/samba_bundled.py
-index 5f080dd..cdc115e 100644
+index 2300565..26d9e8c 100644
--- a/buildtools/wafsamba/samba_bundled.py
+++ b/buildtools/wafsamba/samba_bundled.py
@@ -4,6 +4,7 @@ import sys
@@ -28,9 +28,9 @@ index 5f080dd..cdc115e 100644
from wafsamba import samba_utils
+import importlib.util, os
- def PRIVATE_NAME(bld, name, private_extension, private_library):
+ def PRIVATE_NAME(bld, name):
'''possibly rename a library to include a bundled extension'''
-@@ -249,17 +250,27 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
+@@ -245,17 +246,27 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
# versions
minversion = minimum_library_version(conf, libname, minversion)
@@ -67,5 +67,5 @@ index 5f080dd..cdc115e 100644
Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion))
sys.exit(1)
--
-2.17.1
+2.25.1
diff --git a/meta-networking/recipes-support/libldb/libldb/0002-ldb-Add-configure-options-for-packages.patch b/meta-networking/recipes-support/libldb/libldb/0002-ldb-Add-configure-options-for-packages.patch
index a55d46bf75..15e093fd68 100644
--- a/meta-networking/recipes-support/libldb/libldb/0002-ldb-Add-configure-options-for-packages.patch
+++ b/meta-networking/recipes-support/libldb/libldb/0002-ldb-Add-configure-options-for-packages.patch
@@ -1,4 +1,4 @@
-From 100d16aaa6fe9a28a5ba77b2de2bde81a3fa3dac Mon Sep 17 00:00:00 2001
+From e949da7cb100c571631cd9bc7532e528c1f74820 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Mon, 1 Jul 2019 16:14:16 +0800
Subject: [PATCH] ldb: Add configure options for packages
@@ -6,7 +6,6 @@ Subject: [PATCH] ldb: Add configure options for packages
Add configure options for the following packages:
- acl
- attr
- - libaio
- libbsd
- libcap
- valgrind
@@ -19,17 +18,20 @@ upgrade to version 1.5.4
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Rebase to 2.3.0
+
+Rebase to 2.8.0
+Remove libaio option
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
- lib/replace/wscript | 90 +++++++++++++++++++++++++++++++++++----------
- wscript | 8 ++++
- 2 files changed, 78 insertions(+), 20 deletions(-)
+ lib/replace/wscript | 80 +++++++++++++++++++++++++++++++++------------
+ wscript | 8 +++++
+ 2 files changed, 68 insertions(+), 20 deletions(-)
diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 2c856b6..36b696d 100644
+index 37d7759..d0d6bb0 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
-@@ -25,6 +25,41 @@ def options(opt):
+@@ -25,6 +25,34 @@ def options(opt):
opt.PRIVATE_EXTENSION_DEFAULT('')
opt.RECURSE('buildtools/wafsamba')
@@ -47,13 +49,6 @@ index 2c856b6..36b696d 100644
+ help=("Disable use of attr"),
+ action="store_false", dest='enable_attr', default=False)
+
-+ opt.add_option('--with-libaio',
-+ help=("Enable use of libaio"),
-+ action="store_true", dest='enable_libaio')
-+ opt.add_option('--without-libaio',
-+ help=("Disable use of libaio"),
-+ action="store_false", dest='enable_libaio', default=False)
-+
+ opt.add_option('--with-libbsd',
+ help=("Enable use of libbsd"),
+ action="store_true", dest='enable_libbsd')
@@ -71,7 +66,7 @@ index 2c856b6..36b696d 100644
@Utils.run_once
def configure(conf):
conf.RECURSE('buildtools/wafsamba')
-@@ -35,12 +70,25 @@ def configure(conf):
+@@ -38,12 +66,22 @@ def configure(conf):
conf.DEFINE('HAVE_LIBREPLACE', 1)
conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
@@ -92,28 +87,25 @@ index 2c856b6..36b696d 100644
+ if Options.options.enable_attr:
+ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
+
-+ if Options.options.enable_libaio:
-+ conf.CHECK_HEADERS('libaio.h')
-+
+ if Options.options.enable_libcap:
+ conf.CHECK_HEADERS('sys/capability.h')
+
- conf.CHECK_HEADERS('port.h')
conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h')
conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
-@@ -121,8 +169,9 @@ def configure(conf):
+ conf.CHECK_HEADERS('sys/resource.h sys/security.h sys/shm.h sys/statfs.h sys/statvfs.h sys/termio.h')
+@@ -113,8 +151,9 @@ def configure(conf):
conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
-- conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
+- conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h valgrind/callgrind.h')
+ if Options.options.enable_valgrind:
+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
-+ conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
++ conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h valgrind/callgrind.h')
conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
-@@ -418,20 +467,21 @@ def configure(conf):
+@@ -443,20 +482,21 @@ def configure(conf):
strlcpy_in_bsd = False
@@ -131,7 +123,7 @@ index 2c856b6..36b696d 100644
-
- if not conf.CHECK_FUNCS('closefrom'):
- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-+ if Options.options.enable_libbsd:
++ if Options.options.enable_libbsd:
+ # libbsd on some platforms provides strlcpy and strlcat
+ if not conf.CHECK_FUNCS('strlcpy strlcat'):
+ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
@@ -150,10 +142,10 @@ index 2c856b6..36b696d 100644
conf.CHECK_CODE('''
struct ucred cred;
diff --git a/wscript b/wscript
-index bf6129b..722fdf6 100644
+index ed5d45f..6bb0b37 100644
--- a/wscript
+++ b/wscript
-@@ -39,6 +39,14 @@ def options(opt):
+@@ -40,6 +40,14 @@ def options(opt):
help='disable new LMDB backend for LDB',
action='store_true', dest='without_ldb_lmdb', default=False)
@@ -169,5 +161,5 @@ index bf6129b..722fdf6 100644
def configure(conf):
conf.RECURSE('lib/tdb')
--
-2.17.1
+2.25.1
diff --git a/meta-networking/recipes-support/libldb/libldb/0003-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-networking/recipes-support/libldb/libldb/0003-Fix-pyext_PATTERN-for-cross-compilation.patch
new file mode 100644
index 0000000000..71934795b1
--- /dev/null
+++ b/meta-networking/recipes-support/libldb/libldb/0003-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,59 @@
+From 989addc0ca7be8233b413d42704c5dc900e85d81 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 24 Nov 2021 13:33:35 +0800
+Subject: [PATCH] Fix pyext_PATTERN for cross compilation
+
+The pyext_PATTERN will add native arch as suffix when cross compiling.
+For example, on qemuarm64, it is expanded to:
+pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
+which will result in the incorrect library name.
+
+root@qemuarm64:~# find /usr/lib/ -name \*ldb\*
+/usr/lib/pkgconfig/pyldb-util.cpython-310-x86_64-linux-gnu.pc
+/usr/lib/pkgconfig/ldb.pc
+/usr/lib/libpyldb-util.cpython-310-x86-64-linux-gnu.so.2.3.2
+/usr/lib/libldb.so.2.3.2
+/usr/lib/libpyldb-util.cpython-310-x86-64-linux-gnu.so.2
+/usr/lib/libldb.so
+/usr/lib/libldb.so.2
+/usr/lib/python3.10/site-packages/_ldb_text.py
+/usr/lib/python3.10/site-packages/ldb.cpython-310-x86_64-linux-gnu.so
+/usr/lib/libpyldb-util.cpython-310-x86-64-linux-gnu.so
+
+Set pyext_PATTERN to '%s.so' to remove the suffix.
+After the patch:
+root@qemuarm64:~# find /usr/lib/ -name \*ldb\*
+/usr/lib/pkgconfig/pyldb-util.pc
+/usr/lib/pkgconfig/ldb.pc
+/usr/lib/libpyldb-util.so.2.3.2
+/usr/lib/libldb.so.2.3.2
+/usr/lib/libpyldb-util.so.2
+/usr/lib/libldb.so
+/usr/lib/libldb.so.2
+/usr/lib/python3.10/site-packages/_ldb_text.py
+/usr/lib/python3.10/site-packages/ldb.so
+/usr/lib/libpyldb-util.so
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ third_party/waf/waflib/Tools/python.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
+index b2dd1a9..2bd3545 100644
+--- a/third_party/waf/waflib/Tools/python.py
++++ b/third_party/waf/waflib/Tools/python.py
+@@ -339,7 +339,7 @@ def check_python_headers(conf, features='pyembed pyext'):
+ x = 'MACOSX_DEPLOYMENT_TARGET'
+ if dct[x]:
+ env[x] = conf.environ[x] = str(dct[x])
+- env.pyext_PATTERN = '%s' + (dct['EXT_SUFFIX'] or dct['SO']) # SO is deprecated in 3.5 and removed in 3.11
++ env.pyext_PATTERN = '%s.so'
+
+
+ # Try to get pythonX.Y-config
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/libldb/libldb/0003-avoid-openldap-unless-wanted.patch b/meta-networking/recipes-support/libldb/libldb/0003-avoid-openldap-unless-wanted.patch
deleted file mode 100644
index dd1246538c..0000000000
--- a/meta-networking/recipes-support/libldb/libldb/0003-avoid-openldap-unless-wanted.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 1f24231095a59debcf25d0e3309dc5d1056a7fad Mon Sep 17 00:00:00 2001
-From: Jens Rehsack <rehsack@gmail.com>
-Date: Thu, 19 Nov 2015 20:45:56 +0100
-Subject: [PATCH] avoid openldap unless wanted
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- wscript | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/wscript b/wscript
-index 722fdf6..22700d5 100644
---- a/wscript
-+++ b/wscript
-@@ -153,9 +153,7 @@ def configure(conf):
- if conf.env.standalone_ldb:
- conf.CHECK_XSLTPROC_MANPAGES()
-
-- # we need this for the ldap backend
-- if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'):
-- conf.env.ENABLE_LDAP_BACKEND = True
-+ conf.env.ENABLE_LDAP_BACKEND = False
-
- # we don't want any libraries or modules to rely on runtime
- # resolution of symbols
---
-2.17.1
-
diff --git a/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch b/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch
new file mode 100644
index 0000000000..7e60b53051
--- /dev/null
+++ b/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch
@@ -0,0 +1,31 @@
+From 226b75a0e9654fb3c0435256af5fed0178dc0d69 Mon Sep 17 00:00:00 2001
+From: Jens Rehsack <rehsack@gmail.com>
+Date: Thu, 19 Nov 2015 20:45:56 +0100
+Subject: [PATCH] avoid openldap unless wanted
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Jens Rehsack <rehsack@gmail.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ wscript | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/wscript b/wscript
+index 6bb0b37..8ee25b1 100644
+--- a/wscript
++++ b/wscript
+@@ -154,9 +154,7 @@ def configure(conf):
+ if conf.env.standalone_ldb:
+ conf.CHECK_XSLTPROC_MANPAGES()
+
+- # we need this for the ldap backend
+- if conf.CHECK_FUNCS_IN('ber_flush ldap_open ldap_initialize', 'lber ldap', headers='lber.h ldap.h'):
+- conf.env.ENABLE_LDAP_BACKEND = True
++ conf.env.ENABLE_LDAP_BACKEND = False
+
+ # we don't want any libraries or modules to rely on runtime
+ # resolution of symbols
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-conflict-type-error.patch b/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-conflict-type-error.patch
deleted file mode 100644
index 444fa3ff12..0000000000
--- a/meta-networking/recipes-support/libldb/libldb/libldb-fix-musl-libc-conflict-type-error.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 5bd7b5d04435bd593349825973ce32290f5f604d Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Wed, 25 Jul 2018 09:55:25 +0800
-Subject: [PATCH] libldb: fix musl libc conflicting types error
-
-/third_party/cmocka/cmocka.h:126:28: error: conflicting types for 'uintptr_t'
- typedef unsigned int uintptr_t;
- ^~~~~~~~~
-use __DEFINED_uintptr_t in alltypes.h to check if uintptr already defined
-
-Upstream-Status: Pending
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- third_party/cmocka/cmocka.h | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/third_party/cmocka/cmocka.h b/third_party/cmocka/cmocka.h
-index 4fd82a9..5443a08 100644
---- a/third_party/cmocka/cmocka.h
-+++ b/third_party/cmocka/cmocka.h
-@@ -110,7 +110,7 @@ typedef uintmax_t LargestIntegralType;
- ((LargestIntegralType)(value))
-
- /* Smallest integral type capable of holding a pointer. */
--#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED)
-+#if !defined(__DEFINED_uintptr_t)
- # if defined(_WIN32)
- /* WIN32 is an ILP32 platform */
- typedef unsigned int uintptr_t;
-@@ -134,9 +134,8 @@ typedef uintmax_t LargestIntegralType;
- # endif /* __WORDSIZE */
- # endif /* _WIN32 */
-
--# define _UINTPTR_T
--# define _UINTPTR_T_DEFINED
--#endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */
-+# define __DEFINED_uintptr_t
-+#endif /* !defined(__DEFINED_uintptr_t)
-
- /* Perform an unsigned cast to uintptr_t. */
- #define cast_to_pointer_integral_type(value) \
---
-2.7.4
-
diff --git a/meta-networking/recipes-support/libldb/libldb/run-ptest b/meta-networking/recipes-support/libldb/libldb/run-ptest
new file mode 100644
index 0000000000..f0de0578c4
--- /dev/null
+++ b/meta-networking/recipes-support/libldb/libldb/run-ptest
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+ptestdir=$(dirname "$(readlink -f "$0")")
+cd "$ptestdir"/tests || exit
+
+tests="test_ldb_dn test_ldb_qsort"
+
+for f in $tests
+do
+ if test -x ./"$f"; then
+ if ./"$f" > ./"$f".out 2> ./"$f".err; then
+ echo "PASS: $f"
+ else
+ echo "FAIL: $f"
+ fi
+ fi
+done
diff --git a/meta-networking/recipes-support/libldb/libldb_2.3.4.bb b/meta-networking/recipes-support/libldb/libldb_2.3.4.bb
deleted file mode 100644
index af5f0427d4..0000000000
--- a/meta-networking/recipes-support/libldb/libldb_2.3.4.bb
+++ /dev/null
@@ -1,81 +0,0 @@
-SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
-HOMEPAGE = "http://ldb.samba.org"
-SECTION = "libs"
-LICENSE = "LGPL-3.0-or-later & LGPL-2.1-or-later & GPL-3.0-or-later"
-
-DEPENDS += "libtdb libtalloc libtevent popt"
-RDEPENDS:pyldb += "python3"
-
-SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \
- file://0001-do-not-import-target-module-while-cross-compile.patch \
- file://0002-ldb-Add-configure-options-for-packages.patch \
- file://0001-Fix-pyext_PATTERN-for-cross-compilation.patch \
- file://libldb-fix-musl-libc-conflict-type-error.patch \
- "
-
-PACKAGECONFIG ??= "\
- ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
-"
-PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
-PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
-PACKAGECONFIG[ldap] = ",,openldap"
-PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
-PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
-PACKAGECONFIG[lmdb] = ",--without-ldb-lmdb,lmdb,"
-
-SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'ldap', '', 'file://0003-avoid-openldap-unless-wanted.patch', d)}"
-
-LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9adade \
- file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \
- file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42"
-
-SRC_URI[md5sum] = "b01d6913a06901c22c5bc6caedc548ac"
-SRC_URI[sha256sum] = "f2e88dcab7b6007d92724b62f8a16e7c6e77275885c60eb4f87097e4aa4082c1"
-
-inherit pkgconfig waf-samba
-
-S = "${WORKDIR}/ldb-${PV}"
-
-#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
-#to cross Popen
-export WAF_NO_PREFORK="yes"
-
-EXTRA_OECONF += "--disable-rpath \
- --disable-rpath-install \
- --bundled-libraries=cmocka \
- --builtin-libraries=replace \
- --with-modulesdir=${libdir}/ldb/modules \
- --with-privatelibdir=${libdir}/ldb \
- --with-libiconv=${STAGING_DIR_HOST}${prefix}\
- "
-
-PACKAGES =+ "pyldb pyldb-dbg pyldb-dev"
-
-NOAUTOPACKAGEDEBUG = "1"
-
-FILES:${PN} += "${libdir}/ldb/*"
-FILES:${PN}-dbg += "${bindir}/.debug/* \
- ${libdir}/.debug/* \
- ${libdir}/ldb/.debug/* \
- ${libdir}/ldb/modules/ldb/.debug/*"
-
-FILES:pyldb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \
- ${libdir}/libpyldb-util.*.so.* \
- "
-FILES:pyldb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \
- ${libdir}/.debug/libpyldb-util.*.so.*"
-FILES:pyldb-dev = "${libdir}/libpyldb-util.*.so"
-
-# Prevent third_party/waf/waflib/Configure.py checking host's path which is
-# incorrect for cross building.
-export PREFIX = "/"
-export LIBDIR = "${libdir}"
-export BINDIR = "${bindir}"
-
-do_configure:prepend() {
- # For a clean rebuild
- rm -fr bin/
-}
diff --git a/meta-networking/recipes-support/libldb/libldb_2.8.0.bb b/meta-networking/recipes-support/libldb/libldb_2.8.0.bb
new file mode 100644
index 0000000000..bdd87993d7
--- /dev/null
+++ b/meta-networking/recipes-support/libldb/libldb_2.8.0.bb
@@ -0,0 +1,87 @@
+SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
+HOMEPAGE = "https://ldb.samba.org"
+SECTION = "libs"
+LICENSE = "LGPL-3.0-or-later & LGPL-2.1-or-later & GPL-3.0-or-later"
+
+DEPENDS += "libtdb libtalloc libtevent popt cmocka"
+RDEPENDS:pyldb += "python3"
+
+export PYTHONHASHSEED="1"
+export PYTHONARCHDIR = "${PYTHON_SITEPACKAGES_DIR}"
+
+SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \
+ file://0001-do-not-import-target-module-while-cross-compile.patch \
+ file://0002-ldb-Add-configure-options-for-packages.patch \
+ file://0003-Fix-pyext_PATTERN-for-cross-compilation.patch \
+ file://run-ptest \
+ "
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
+"
+PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
+PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
+PACKAGECONFIG[ldap] = ",,openldap"
+PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
+PACKAGECONFIG[lmdb] = ",--without-ldb-lmdb,lmdb,"
+
+SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'ldap', '', 'file://avoid-openldap-unless-wanted.patch', d)}"
+
+LIC_FILES_CHKSUM = "file://pyldb.h;endline=24;md5=dfbd238cecad76957f7f860fbe9adade \
+ file://man/ldb.3.xml;beginline=261;endline=262;md5=137f9fd61040c1505d1aa1019663fd08 \
+ file://tools/ldbdump.c;endline=19;md5=a7d4fc5d1f75676b49df491575a86a42"
+
+SRC_URI[sha256sum] = "358dca10fcd27207ac857a0d7f435a46dbc6cd1f7c10dbb840c1931bf1965f08"
+
+inherit pkgconfig waf-samba ptest
+
+S = "${WORKDIR}/ldb-${PV}"
+
+# Cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
+# to cross Popen
+export WAF_NO_PREFORK="yes"
+
+EXTRA_OECONF += "--disable-rpath \
+ --disable-rpath-install \
+ --bundled-libraries=NONE \
+ --builtin-libraries=replace \
+ --with-modulesdir=${libdir}/ldb/modules \
+ --with-privatelibdir=${libdir}/ldb \
+ --with-libiconv=${STAGING_DIR_HOST}${prefix}\
+ "
+
+PACKAGES =+ "pyldb pyldb-dbg pyldb-dev"
+
+NOAUTOPACKAGEDEBUG = "1"
+
+FILES:${PN} += "${libdir}/ldb/*"
+FILES:${PN}-dbg += "${bindir}/.debug/* \
+ ${libdir}/.debug/* \
+ ${libdir}/ldb/.debug/* \
+ ${libdir}/ldb/modules/ldb/.debug/*"
+
+FILES:pyldb = "${PYTHON_SITEPACKAGES_DIR}/* \
+ ${libdir}/libpyldb-util.*.so.* \
+ "
+FILES:pyldb-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug \
+ ${libdir}/.debug/libpyldb-util.*.so.*"
+FILES:pyldb-dev = "${libdir}/libpyldb-util.*.so"
+
+# Prevent third_party/waf/waflib/Configure.py checking host's path which is
+# incorrect for cross building.
+export PREFIX = "/"
+export LIBDIR = "${libdir}"
+export BINDIR = "${bindir}"
+
+do_configure:prepend() {
+ # For a clean rebuild
+ rm -fr bin/
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ install -m 0755 ${B}/bin/test_ldb_* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-networking/recipes-support/libmemcached/files/0001-Fix-comparison-types.patch b/meta-networking/recipes-support/libmemcached/files/0001-Fix-comparison-types.patch
index 26b5e250cb..9e5121fed7 100644
--- a/meta-networking/recipes-support/libmemcached/files/0001-Fix-comparison-types.patch
+++ b/meta-networking/recipes-support/libmemcached/files/0001-Fix-comparison-types.patch
@@ -8,6 +8,8 @@ error: comparison between pointer and integer ('char *' and 'int')
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
clients/memflush.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-networking/recipes-support/libmemcached/files/0001-configure.ac-Do-not-configure-build-aux.patch b/meta-networking/recipes-support/libmemcached/files/0001-configure.ac-Do-not-configure-build-aux.patch
index 06febc5b13..1c1d814b50 100644
--- a/meta-networking/recipes-support/libmemcached/files/0001-configure.ac-Do-not-configure-build-aux.patch
+++ b/meta-networking/recipes-support/libmemcached/files/0001-configure.ac-Do-not-configure-build-aux.patch
@@ -8,6 +8,8 @@ configure: error: cannot find install-sh, install.sh, or shtool
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 1 -
1 file changed, 1 deletion(-)
diff --git a/meta-networking/recipes-support/libmemcached/files/0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch b/meta-networking/recipes-support/libmemcached/files/0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch
index e1e1be8c68..4d38fe452e 100644
--- a/meta-networking/recipes-support/libmemcached/files/0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch
+++ b/meta-networking/recipes-support/libmemcached/files/0002-POSIX_SPAWN_USEVFORK-is-not-linux-specific-but-glibc.patch
@@ -9,6 +9,8 @@ cmdline.cc:206:12: error: use of undeclared identifier 'POSIX_SPAWN_USEVFORK'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
libtest/cmdline.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-support/libmemcached/files/crosscompile.patch b/meta-networking/recipes-support/libmemcached/files/crosscompile.patch
index 63511bff5f..441b8d4177 100644
--- a/meta-networking/recipes-support/libmemcached/files/crosscompile.patch
+++ b/meta-networking/recipes-support/libmemcached/files/crosscompile.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
libmemcached/backtrace.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta-networking/recipes-support/libosip2/libosip2_5.3.1.bb b/meta-networking/recipes-support/libosip2/libosip2_5.3.1.bb
new file mode 100644
index 0000000000..fa99d33e1c
--- /dev/null
+++ b/meta-networking/recipes-support/libosip2/libosip2_5.3.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "The GNU oSIP library is an implementation of SIP - rfc3261"
+DESCRIPTION = "SIP stands for the Session Initiation Protocol and is described \
+by the rfc3261 (wich deprecates rfc2543). This library aims to provide multimedia \
+and telecom software developers an easy and powerful interface to initiate and \
+control SIP based sessions in their applications. SIP is a open standard \
+replacement from IETF for H323."
+HOMEPAGE = "http://www.gnu.org/software/osip/osip.html"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://src/osip2/osip.c;beginline=1;endline=19;md5=22ca0da0e41276c50c81b733953c208d"
+
+SRC_URI = "${GNU_MIRROR}/osip/${BPN}-${PV}.tar.gz"
+SRC_URI[sha256sum] = "fe82fe841608266ac15a5c1118216da00c554d5006e2875a8ac3752b1e6adc79"
+
+inherit autotools
diff --git a/meta-networking/recipes-support/libtalloc/libtalloc/0001-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-networking/recipes-support/libtalloc/libtalloc/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
deleted file mode 100644
index 47ee4bb24e..0000000000
--- a/meta-networking/recipes-support/libtalloc/libtalloc/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From b5eaeb7ed4e75012d2715f995e15a13850064f61 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Wed, 24 Nov 2021 13:33:35 +0800
-Subject: [PATCH] Fix pyext_PATTERN for cross compilation
-
-The pyext_PATTERN will add native arch as suffix when cross compiling.
-For example, on qemuarm64, it is expanded to:
-pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
-which will result in the incorrect library name.
-
-root@qemuarm64:~# find /usr/lib -name \*talloc\*
-/usr/lib/pkgconfig/talloc.pc
-/usr/lib/pkgconfig/pytalloc-util.cpython-310-x86_64-linux-gnu.pc
-/usr/lib/libpytalloc-util.cpython-310-x86-64-linux-gnu.so.2.3.3
-/usr/lib/libtalloc.so.2
-/usr/lib/libpytalloc-util.cpython-310-x86-64-linux-gnu.so.2
-/usr/lib/libpytalloc-util.cpython-310-x86-64-linux-gnu.so
-/usr/lib/libtalloc.so
-/usr/lib/libtalloc.so.2.3.3
-/usr/lib/python3.10/site-packages/talloc.cpython-310-x86_64-linux-gnu.so
-
-Set pyext_PATTERN to '%s.so' to remove the suffix.
-After the patch:
-root@qemuarm64:~# find /usr/lib -name \*talloc\*
-/usr/lib/pkgconfig/talloc.pc
-/usr/lib/pkgconfig/pytalloc-util.pc
-/usr/lib/libpytalloc-util.so.2.3.3
-/usr/lib/libtalloc.so.2
-/usr/lib/libpytalloc-util.so.2
-/usr/lib/libpytalloc-util.so
-/usr/lib/libtalloc.so
-/usr/lib/libtalloc.so.2.3.3
-/usr/lib/python3.10/site-packages/talloc.so
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- third_party/waf/waflib/Tools/python.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
-index b1c8dd0..24faa31 100644
---- a/third_party/waf/waflib/Tools/python.py
-+++ b/third_party/waf/waflib/Tools/python.py
-@@ -328,7 +328,7 @@ def check_python_headers(conf, features='pyembed pyext'):
- x = 'MACOSX_DEPLOYMENT_TARGET'
- if dct[x]:
- env[x] = conf.environ[x] = dct[x]
-- env.pyext_PATTERN = '%s' + dct['SO'] # not a mistake
-+ env.pyext_PATTERN = '%s.so'
-
-
- # Try to get pythonX.Y-config
---
-2.17.1
-
diff --git a/meta-networking/recipes-support/libtalloc/libtalloc/0001-talloc-Add-configure-options-for-packages.patch b/meta-networking/recipes-support/libtalloc/libtalloc/0001-talloc-Add-configure-options-for-packages.patch
new file mode 100644
index 0000000000..6c92beb30b
--- /dev/null
+++ b/meta-networking/recipes-support/libtalloc/libtalloc/0001-talloc-Add-configure-options-for-packages.patch
@@ -0,0 +1,195 @@
+From 18e3d62f5c8f957acc45695cb99c24510d23b457 Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Fri, 25 Dec 2020 14:14:08 +0900
+Subject: [PATCH] talloc: Add configure options for packages
+
+Add configure options for the following packages:
+ - acl
+ - attr
+ - libbsd
+ - libcap
+ - valgrind
+
+Upstream-Status: Inappropriate [oe deterministic build specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
+Modified to apply to version 2.1.10.
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Modified tp apply to version 2.2.0
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Rebase to 2.4.1
+Remove libaio option
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+Rebase to 2.4.2
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ lib/replace/wscript | 100 ++++++++++++++++++++++++++++++--------------
+ wscript | 7 +++-
+ 2 files changed, 75 insertions(+), 32 deletions(-)
+
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index 77e655b..2fd7dfb 100644
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -25,6 +25,34 @@ def options(opt):
+ opt.PRIVATE_EXTENSION_DEFAULT('')
+ opt.RECURSE('buildtools/wafsamba')
+
++ opt.add_option('--with-acl',
++ help=("Enable use of acl"),
++ action="store_true", dest='enable_acl')
++ opt.add_option('--without-acl',
++ help=("Disable use of acl"),
++ action="store_false", dest='enable_acl', default=False)
++
++ opt.add_option('--with-attr',
++ help=("Enable use of attr"),
++ action="store_true", dest='enable_attr')
++ opt.add_option('--without-attr',
++ help=("Disable use of attr"),
++ action="store_false", dest='enable_attr', default=False)
++
++ opt.add_option('--with-libbsd',
++ help=("Enable use of libbsd"),
++ action="store_true", dest='enable_libbsd')
++ opt.add_option('--without-libbsd',
++ help=("Disable use of libbsd"),
++ action="store_false", dest='enable_libbsd', default=False)
++
++ opt.add_option('--with-libcap',
++ help=("Enable use of libcap"),
++ action="store_true", dest='enable_libcap')
++ opt.add_option('--without-libcap',
++ help=("Disable use of libcap"),
++ action="store_false", dest='enable_libcap', default=False)
++
+ @Utils.run_once
+ def configure(conf):
+ conf.RECURSE('buildtools/wafsamba')
+@@ -38,18 +66,27 @@ def configure(conf):
+ conf.DEFINE('HAVE_LIBREPLACE', 1)
+ conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
+
+- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h')
+- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h')
++ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
++ conf.CHECK_HEADERS('compat.h ctype.h dustat.h')
+ conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
+ conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
+- conf.CHECK_HEADERS('shadow.h sys/acl.h')
+- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
++ conf.CHECK_HEADERS('shadow.h')
++ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
+ conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h')
+ conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
+ conf.CHECK_HEADERS('sys/resource.h sys/security.h sys/shm.h sys/statfs.h sys/statvfs.h sys/termio.h')
+ conf.CHECK_HEADERS('sys/vfs.h sys/xattr.h termio.h termios.h sys/file.h')
+ conf.CHECK_HEADERS('sys/ucontext.h sys/wait.h sys/stat.h')
+
++ if Options.options.enable_acl:
++ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
++
++ if Options.options.enable_attr:
++ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
++
++ if Options.options.enable_libcap:
++ conf.CHECK_HEADERS('sys/capability.h')
++
+ if not conf.CHECK_DECLS('malloc', headers='stdlib.h'):
+ conf.CHECK_HEADERS('malloc.h')
+
+@@ -113,8 +150,9 @@ def configure(conf):
+ conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
+ conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
+
+- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
+- conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h valgrind/callgrind.h')
++ if Options.options.enable_valgrind:
++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
++ conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h valgrind/callgrind.h')
+ conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
+ conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
+ conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
+@@ -443,31 +481,31 @@ def configure(conf):
+
+ strlcpy_in_bsd = False
+
+- # libbsd on some platforms provides strlcpy and strlcat
+- if not conf.CHECK_FUNCS('strlcpy strlcat'):
+- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
+- checklibc=True):
+- strlcpy_in_bsd = True
+- elif conf.env.enable_fuzzing:
+- # Just to complicate it more, some versions of Honggfuzz have
+- # got strlcpy and strlcat in libc, but not in <string.h>
+- # (unless it is there coincidentally, on a BSD). Therefore we
+- # can't use CHECK_FUNCS alone to decide whether to add the
+- # headers to replace.h.
+- #
+- # As this is only known to happen on a fuzzing compiler, we'll
+- # skip the check when not in fuzzing mode.
+- conf.CHECK_HEADERS('bsd/string.h')
+-
+- if not conf.CHECK_FUNCS('getpeereid'):
+- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
+- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS('setproctitle_init'):
+- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
+-
+- if not conf.CHECK_FUNCS('closefrom'):
+- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
++ if Options.options.enable_libbsd:
++ # libbsd on some platforms provides strlcpy and strlcat
++ if not conf.CHECK_FUNCS('strlcpy strlcat'):
++ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
++ checklibc=True):
++ strlcpy_in_bsd = True
++ elif conf.env.enable_fuzzing:
++ # Just to complicate it more, some versions of Honggfuzz have
++ # got strlcpy and strlcat in libc, but not in <string.h>
++ # (unless it is there coincidentally, on a BSD). Therefore we
++ # can't use CHECK_FUNCS alone to decide whether to add the
++ # headers to replace.h.
++ #
++ # As this is only known to happen on a fuzzing compiler, we'll
++ # skip the check when not in fuzzing mode.
++ conf.CHECK_HEADERS('bsd/string.h')
++
++ if not conf.CHECK_FUNCS('getpeereid'):
++ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
++ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS('setproctitle_init'):
++ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS('closefrom'):
++ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
+
+ conf.CHECK_CODE('''
+ struct ucred cred;
+diff --git a/wscript b/wscript
+index 8b5e02d..b6e2614 100644
+--- a/wscript
++++ b/wscript
+@@ -31,7 +31,12 @@ def options(opt):
+ opt.add_option('--enable-talloc-compat1',
+ help=("Build talloc 1.x.x compat library [False]"),
+ action="store_true", dest='TALLOC_COMPAT1', default=False)
+-
++ opt.add_option('--with-valgrind',
++ help=("enable use of valgrind"),
++ action="store_true", dest='enable_valgrind')
++ opt.add_option('--without-valgrind',
++ help=("disable use of valgrind"),
++ action="store_false", dest='enable_valgrind', default=False)
+
+ def configure(conf):
+ conf.RECURSE('lib/replace')
+--
+2.34.1
+
diff --git a/meta-networking/recipes-support/libtalloc/libtalloc/0002-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-networking/recipes-support/libtalloc/libtalloc/0002-Fix-pyext_PATTERN-for-cross-compilation.patch
new file mode 100644
index 0000000000..59461412a6
--- /dev/null
+++ b/meta-networking/recipes-support/libtalloc/libtalloc/0002-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,57 @@
+From 843d1dc810efc61275b1121d6b35649d00570851 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 24 Nov 2021 13:33:35 +0800
+Subject: [PATCH] Fix pyext_PATTERN for cross compilation
+
+The pyext_PATTERN will add native arch as suffix when cross compiling.
+For example, on qemuarm64, it is expanded to:
+pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
+which will result in the incorrect library name.
+
+root@qemuarm64:~# find /usr/lib -name \*talloc\*
+/usr/lib/pkgconfig/talloc.pc
+/usr/lib/pkgconfig/pytalloc-util.cpython-310-x86_64-linux-gnu.pc
+/usr/lib/libpytalloc-util.cpython-310-x86-64-linux-gnu.so.2.3.3
+/usr/lib/libtalloc.so.2
+/usr/lib/libpytalloc-util.cpython-310-x86-64-linux-gnu.so.2
+/usr/lib/libpytalloc-util.cpython-310-x86-64-linux-gnu.so
+/usr/lib/libtalloc.so
+/usr/lib/libtalloc.so.2.3.3
+/usr/lib/python3.10/site-packages/talloc.cpython-310-x86_64-linux-gnu.so
+
+Set pyext_PATTERN to '%s.so' to remove the suffix.
+After the patch:
+root@qemuarm64:~# find /usr/lib -name \*talloc\*
+/usr/lib/pkgconfig/talloc.pc
+/usr/lib/pkgconfig/pytalloc-util.pc
+/usr/lib/libpytalloc-util.so.2.3.3
+/usr/lib/libtalloc.so.2
+/usr/lib/libpytalloc-util.so.2
+/usr/lib/libpytalloc-util.so
+/usr/lib/libtalloc.so
+/usr/lib/libtalloc.so.2.3.3
+/usr/lib/python3.10/site-packages/talloc.so
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ third_party/waf/waflib/Tools/python.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
+index b2dd1a9..2bd3545 100644
+--- a/third_party/waf/waflib/Tools/python.py
++++ b/third_party/waf/waflib/Tools/python.py
+@@ -339,7 +339,7 @@ def check_python_headers(conf, features='pyembed pyext'):
+ x = 'MACOSX_DEPLOYMENT_TARGET'
+ if dct[x]:
+ env[x] = conf.environ[x] = str(dct[x])
+- env.pyext_PATTERN = '%s' + (dct['EXT_SUFFIX'] or dct['SO']) # SO is deprecated in 3.5 and removed in 3.11
++ env.pyext_PATTERN = '%s.so'
+
+
+ # Try to get pythonX.Y-config
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch b/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch
index 5b7f69ec07..93c8a1e846 100644
--- a/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch
+++ b/meta-networking/recipes-support/libtalloc/libtalloc/avoid-attr-unless-wanted.patch
@@ -1,6 +1,18 @@
+From 9130d340c37861a59e812e334e2b13577e705a6c Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Fri, 25 Dec 2020 15:10:58 +0900
+Subject: [PATCH] avoid attr unless wanted
+
+Upstream-Status: Inappropriate [embedded specific]
+---
+ lib/replace/wscript | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index 3593eaf..504a1cb 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
-@@ -947,8 +947,6 @@ def build(bld):
+@@ -968,8 +968,6 @@ def build(bld):
if not bld.CONFIG_SET('HAVE_INET_ATON'): REPLACE_SOURCE += ' inet_aton.c'
if not bld.CONFIG_SET('HAVE_INET_NTOP'): REPLACE_SOURCE += ' inet_ntop.c'
if not bld.CONFIG_SET('HAVE_INET_PTON'): REPLACE_SOURCE += ' inet_pton.c'
@@ -9,13 +21,15 @@
if not bld.CONFIG_SET('HAVE_CLOSEFROM'):
REPLACE_SOURCE += ' closefrom.c'
-@@ -962,7 +960,7 @@ def build(bld):
- # at the moment:
+@@ -984,7 +982,7 @@ def build(bld):
# hide_symbols=bld.BUILTIN_LIBRARY('replace'),
private_library=True,
+ provide_builtin_linking=True,
- deps='dl attr' + extra_libs)
+ deps='dl' + extra_libs)
replace_test_cflags = ''
if bld.CONFIG_SET('HAVE_WNO_FORMAT_TRUNCATION'):
+--
+2.25.1
diff --git a/meta-networking/recipes-support/libtalloc/libtalloc/options-2.2.0.patch b/meta-networking/recipes-support/libtalloc/libtalloc/options-2.2.0.patch
deleted file mode 100644
index 46fef1096b..0000000000
--- a/meta-networking/recipes-support/libtalloc/libtalloc/options-2.2.0.patch
+++ /dev/null
@@ -1,172 +0,0 @@
-From 8a82056ba2f70137714f225d82993aa4b11042da Mon Sep 17 00:00:00 2001
-From: Wang Mingyu <wangmy@cn.fujitsu.com>
-Date: Fri, 25 Dec 2020 14:14:08 +0900
-Subject: [PATCH] talloc: Add configure options for packages
-
-Add configure options for the following packages:
- - acl
- - attr
- - libaio
- - libbsd
- - libcap
- - valgrind
-
-Upstream-Status: Inappropriate [oe deterministic build specific]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
-Modified to apply to version 2.1.10.
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Modified tp apply to version 2.2.0
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- lib/replace/wscript | 89 +++++++++++++++++++++++++++++++++++----------
- wscript | 7 +++-
- 2 files changed, 75 insertions(+), 21 deletions(-)
-
-diff --git a/lib/replace/wscript b/lib/replace/wscript
-index a2bc604..2e2e7bf 100644
---- a/lib/replace/wscript
-+++ b/lib/replace/wscript
-@@ -25,6 +25,41 @@ def options(opt):
- opt.PRIVATE_EXTENSION_DEFAULT('')
- opt.RECURSE('buildtools/wafsamba')
-
-+ opt.add_option('--with-acl',
-+ help=("Enable use of acl"),
-+ action="store_true", dest='enable_acl')
-+ opt.add_option('--without-acl',
-+ help=("Disable use of acl"),
-+ action="store_false", dest='enable_acl', default=False)
-+
-+ opt.add_option('--with-attr',
-+ help=("Enable use of attr"),
-+ action="store_true", dest='enable_attr')
-+ opt.add_option('--without-attr',
-+ help=("Disable use of attr"),
-+ action="store_false", dest='enable_attr', default=False)
-+
-+ opt.add_option('--with-libaio',
-+ help=("Enable use of libaio"),
-+ action="store_true", dest='enable_libaio')
-+ opt.add_option('--without-libaio',
-+ help=("Disable use of libaio"),
-+ action="store_false", dest='enable_libaio', default=False)
-+
-+ opt.add_option('--with-libbsd',
-+ help=("Enable use of libbsd"),
-+ action="store_true", dest='enable_libbsd')
-+ opt.add_option('--without-libbsd',
-+ help=("Disable use of libbsd"),
-+ action="store_false", dest='enable_libbsd', default=False)
-+
-+ opt.add_option('--with-libcap',
-+ help=("Enable use of libcap"),
-+ action="store_true", dest='enable_libcap')
-+ opt.add_option('--without-libcap',
-+ help=("Disable use of libcap"),
-+ action="store_false", dest='enable_libcap', default=False)
-+
- @Utils.run_once
- def configure(conf):
- conf.RECURSE('buildtools/wafsamba')
-@@ -34,12 +69,25 @@ def configure(conf):
- conf.DEFINE('HAVE_LIBREPLACE', 1)
- conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
-
-- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h')
-- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h')
-+ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
-+ conf.CHECK_HEADERS('attr/xattr.h compat.h ctype.h dustat.h')
- conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
- conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
-- conf.CHECK_HEADERS('shadow.h sys/acl.h')
-- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
-+ conf.CHECK_HEADERS('shadow.h')
-+ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
-+
-+ if Options.options.enable_acl:
-+ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
-+
-+ if Options.options.enable_attr:
-+ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
-+
-+ if Options.options.enable_libaio:
-+ conf.CHECK_HEADERS('libaio.h')
-+
-+ if Options.options.enable_libcap:
-+ conf.CHECK_HEADERS('sys/capability.h')
-+
- conf.CHECK_HEADERS('port.h')
- conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h')
- conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
-@@ -121,8 +169,9 @@ def configure(conf):
- conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
- conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
-
-- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
-- conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
-+ if Options.options.enable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
-+ conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
- conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
- conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
- conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
-@@ -418,20 +467,20 @@ def configure(conf):
-
- strlcpy_in_bsd = False
-
-- # libbsd on some platforms provides strlcpy and strlcat
-- if not conf.CHECK_FUNCS('strlcpy strlcat'):
-- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-- checklibc=True):
-- strlcpy_in_bsd = True
-- if not conf.CHECK_FUNCS('getpeereid'):
-- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
-- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
-- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
-- if not conf.CHECK_FUNCS('setproctitle_init'):
-- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
--
-- if not conf.CHECK_FUNCS('closefrom'):
-- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-+ if Options.options.enable_libbsd:
-+ # libbsd on some platforms provides strlcpy and strlcat
-+ if not conf.CHECK_FUNCS('strlcpy strlcat'):
-+ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-+ checklibc=True):
-+ strlcpy_in_bsd = True
-+ if not conf.CHECK_FUNCS('getpeereid'):
-+ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
-+ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
-+ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
-+ if not conf.CHECK_FUNCS('setproctitle_init'):
-+ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
-+ if not conf.CHECK_FUNCS('closefrom'):
-+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-
- conf.CHECK_CODE('''
- struct ucred cred;
-diff --git a/wscript b/wscript
-index b955d21..4ac6e1e 100644
---- a/wscript
-+++ b/wscript
-@@ -31,7 +31,12 @@ def options(opt):
- opt.add_option('--enable-talloc-compat1',
- help=("Build talloc 1.x.x compat library [False]"),
- action="store_true", dest='TALLOC_COMPAT1', default=False)
--
-+ opt.add_option('--with-valgrind',
-+ help=("enable use of valgrind"),
-+ action="store_true", dest='enable_valgrind')
-+ opt.add_option('--without-valgrind',
-+ help=("disable use of valgrind"),
-+ action="store_false", dest='enable_valgrind', default=False)
-
- def configure(conf):
- conf.RECURSE('lib/replace')
---
-2.25.1
-
diff --git a/meta-networking/recipes-support/libtalloc/libtalloc/run-ptest b/meta-networking/recipes-support/libtalloc/libtalloc/run-ptest
new file mode 100644
index 0000000000..84e5381501
--- /dev/null
+++ b/meta-networking/recipes-support/libtalloc/libtalloc/run-ptest
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+ptestdir=$(dirname "$(readlink -f "$0")")
+cd "$ptestdir"/tests || exit
+
+tests="replace_testsuite talloc_testsuite"
+
+for f in $tests
+do
+ if test -x ./"$f"; then
+ if ./"$f" > ./"$f".out 2> ./"$f".err; then
+ echo "PASS: $f"
+ else
+ echo "FAIL: $f"
+ fi
+ fi
+done
diff --git a/meta-networking/recipes-support/libtalloc/libtalloc_2.3.3.bb b/meta-networking/recipes-support/libtalloc/libtalloc_2.3.3.bb
deleted file mode 100644
index b3f8b2ce25..0000000000
--- a/meta-networking/recipes-support/libtalloc/libtalloc_2.3.3.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
-HOMEPAGE = "http://talloc.samba.org"
-SECTION = "libs"
-LICENSE = "LGPL-3.0-or-later & GPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://talloc.h;beginline=3;endline=27;md5=a301712782cad6dd6d5228bfa7825249 \
- file://pytalloc.h;beginline=1;endline=18;md5=21ab13bd853679d7d47a1739cb3b7db6 \
- "
-
-
-SRC_URI = "https://www.samba.org/ftp/talloc/talloc-${PV}.tar.gz \
- file://options-2.2.0.patch \
- file://0001-Fix-pyext_PATTERN-for-cross-compilation.patch \
-"
-SRC_URI[sha256sum] = "6be95b2368bd0af1c4cd7a88146eb6ceea18e46c3ffc9330bf6262b40d1d8aaa"
-
-inherit waf-samba
-
-PACKAGECONFIG ??= "\
- ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
-"
-PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
-PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
-PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
-PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
-
-SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'attr', '', 'file://avoid-attr-unless-wanted.patch', d)}"
-
-S = "${WORKDIR}/talloc-${PV}"
-
-#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
-#to cross Popen
-export WAF_NO_PREFORK="yes"
-
-EXTRA_OECONF += "--disable-rpath \
- --disable-rpath-install \
- --bundled-libraries=NONE \
- --builtin-libraries=replace \
- --disable-silent-rules \
- --with-libiconv=${STAGING_DIR_HOST}${prefix}\
- "
-
-PACKAGES += "pytalloc pytalloc-dev"
-
-RPROVIDES:${PN}-dbg += "pytalloc-dbg"
-
-FILES:pytalloc = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \
- ${libdir}/libpytalloc-util.so.2 \
- ${libdir}/libpytalloc-util.so.2.1.1 \
- "
-FILES:pytalloc-dev = "${libdir}/libpytalloc-util.so"
-RDEPENDS:pytalloc = "python3"
diff --git a/meta-networking/recipes-support/libtalloc/libtalloc_2.4.2.bb b/meta-networking/recipes-support/libtalloc/libtalloc_2.4.2.bb
new file mode 100644
index 0000000000..b617f097cf
--- /dev/null
+++ b/meta-networking/recipes-support/libtalloc/libtalloc_2.4.2.bb
@@ -0,0 +1,61 @@
+SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
+HOMEPAGE = "https://talloc.samba.org"
+SECTION = "libs"
+LICENSE = "LGPL-3.0-or-later & GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://talloc.h;beginline=3;endline=27;md5=a301712782cad6dd6d5228bfa7825249 \
+ file://pytalloc.h;beginline=1;endline=18;md5=21ab13bd853679d7d47a1739cb3b7db6 \
+ "
+
+export PYTHONHASHSEED="1"
+export PYTHONARCHDIR = "${PYTHON_SITEPACKAGES_DIR}"
+
+SRC_URI = "https://www.samba.org/ftp/talloc/talloc-${PV}.tar.gz \
+ file://0001-talloc-Add-configure-options-for-packages.patch \
+ file://0002-Fix-pyext_PATTERN-for-cross-compilation.patch \
+ file://run-ptest \
+"
+SRC_URI[sha256sum] = "85ecf9e465e20f98f9950a52e9a411e14320bc555fa257d87697b7e7a9b1d8a6"
+
+inherit waf-samba pkgconfig ptest
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
+"
+PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
+PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
+PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
+
+SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'attr', '', 'file://avoid-attr-unless-wanted.patch', d)}"
+
+S = "${WORKDIR}/talloc-${PV}"
+
+# Cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
+# to cross Popen
+export WAF_NO_PREFORK="yes"
+
+EXTRA_OECONF += "--disable-rpath \
+ --disable-rpath-install \
+ --bundled-libraries=NONE \
+ --builtin-libraries=replace \
+ --disable-silent-rules \
+ --with-libiconv=${STAGING_DIR_HOST}${prefix}\
+ "
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ install -m 0755 ${B}/bin/*_testsuite ${D}${PTEST_PATH}/tests/
+}
+
+PACKAGES += "pytalloc pytalloc-dev"
+
+RPROVIDES:${PN}-dbg += "pytalloc-dbg"
+
+FILES:pytalloc = "${PYTHON_SITEPACKAGES_DIR}/* \
+ ${libdir}/libpytalloc-util.so.2 \
+ ${libdir}/libpytalloc-util.so.2.1.1 \
+ "
+FILES:pytalloc-dev = "${libdir}/libpytalloc-util.so"
+RDEPENDS:pytalloc = "python3"
diff --git a/meta-networking/recipes-support/libtdb/libtdb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-networking/recipes-support/libtdb/libtdb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
deleted file mode 100644
index 6f221989fa..0000000000
--- a/meta-networking/recipes-support/libtdb/libtdb/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 00bd6680ad38c20c95a35c963d7077269f3a3aa2 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Wed, 24 Nov 2021 13:33:35 +0800
-Subject: [PATCH] Fix pyext_PATTERN for cross compilation
-
-The pyext_PATTERN will add native arch as suffix when cross compiling.
-For example, on qemuarm64, it is expanded to:
-pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
-which will result in the incorrect library name.
-
-root@qemuarm64:~# find /usr/lib/python3.10/ -name tdb\*
-/usr/lib/python3.10/site-packages/tdb.so
-/usr/lib/python3.10/site-packages/tdb.cpython-310-x86_64-linux-gnu.so
-
-Set pyext_PATTERN to '%s.so' to remove the suffix.
-After the patch:
-root@qemuarm64:~# find /usr/lib/python3.10/ -name tdb\*
-/usr/lib/python3.10/site-packages/tdb.so
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- third_party/waf/waflib/Tools/python.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
-index 7c45a76..c9a90f7 100644
---- a/third_party/waf/waflib/Tools/python.py
-+++ b/third_party/waf/waflib/Tools/python.py
-@@ -328,7 +328,7 @@ def check_python_headers(conf, features='pyembed pyext'):
- x = 'MACOSX_DEPLOYMENT_TARGET'
- if dct[x]:
- env[x] = conf.environ[x] = dct[x]
-- env.pyext_PATTERN = '%s' + dct['SO'] # not a mistake
-+ env.pyext_PATTERN = '%s.so'
-
-
- # Try to get pythonX.Y-config
---
-2.17.1
-
diff --git a/meta-networking/recipes-support/libtdb/libtdb/0001-tdb-Add-configure-options-for-packages.patch b/meta-networking/recipes-support/libtdb/libtdb/0001-tdb-Add-configure-options-for-packages.patch
new file mode 100644
index 0000000000..5c811c4686
--- /dev/null
+++ b/meta-networking/recipes-support/libtdb/libtdb/0001-tdb-Add-configure-options-for-packages.patch
@@ -0,0 +1,186 @@
+From 613cfb43622f0138edfcf3ad7a8fecc568e17db4 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Wed, 19 Jun 2019 17:53:34 +0800
+Subject: [PATCH] tdb: Add configure options for packages
+
+Add configure options for the following packages:
+ - acl
+ - attr
+ - libbsd
+ - libcap
+ - valgrind
+
+Upstream-Status: Inappropriate [oe deterministic build specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
+Update to 1.4.0
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Rebase to 1.4.9
+Remove libaio option
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+Rebase to 1.4.10
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ lib/replace/wscript | 101 ++++++++++++++++++++++++++++++--------------
+ wscript | 6 +++
+ 2 files changed, 76 insertions(+), 31 deletions(-)
+
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index 77e655b..e6d50b3 100644
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -25,6 +25,34 @@ def options(opt):
+ opt.PRIVATE_EXTENSION_DEFAULT('')
+ opt.RECURSE('buildtools/wafsamba')
+
++ opt.add_option('--with-acl',
++ help=("Enable use of acl"),
++ action="store_true", dest='enable_acl')
++ opt.add_option('--without-acl',
++ help=("Disable use of acl"),
++ action="store_false", dest='enable_acl', default=False)
++
++ opt.add_option('--with-attr',
++ help=("Enable use of attr"),
++ action="store_true", dest='enable_attr')
++ opt.add_option('--without-attr',
++ help=("Disable use of attr"),
++ action="store_false", dest='enable_attr', default=False)
++
++ opt.add_option('--with-libbsd',
++ help=("Enable use of libbsd"),
++ action="store_true", dest='enable_libbsd')
++ opt.add_option('--without-libbsd',
++ help=("Disable use of libbsd"),
++ action="store_false", dest='enable_libbsd', default=False)
++
++ opt.add_option('--with-libcap',
++ help=("Enable use of libcap"),
++ action="store_true", dest='enable_libcap')
++ opt.add_option('--without-libcap',
++ help=("Disable use of libcap"),
++ action="store_false", dest='enable_libcap', default=False)
++
+ @Utils.run_once
+ def configure(conf):
+ conf.RECURSE('buildtools/wafsamba')
+@@ -38,12 +66,21 @@ def configure(conf):
+ conf.DEFINE('HAVE_LIBREPLACE', 1)
+ conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
+
+- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h')
+- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h')
++ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
++ conf.CHECK_HEADERS('compat.h ctype.h dustat.h')
+ conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
+ conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
+- conf.CHECK_HEADERS('shadow.h sys/acl.h')
+- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
++ conf.CHECK_HEADERS('shadow.h')
++ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
++ if Options.options.enable_acl:
++ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
++
++ if Options.options.enable_attr:
++ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
++
++ if Options.options.enable_libcap:
++ conf.CHECK_HEADERS('sys/capability.h')
++
+ conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h')
+ conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
+ conf.CHECK_HEADERS('sys/resource.h sys/security.h sys/shm.h sys/statfs.h sys/statvfs.h sys/termio.h')
+@@ -113,8 +150,9 @@ def configure(conf):
+ conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
+ conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
+
+- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
+- conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h valgrind/callgrind.h')
++ if Options.options.enable_valgrind:
++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
++ conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h valgrind/callgrind.h')
+ conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
+ conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
+ conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
+@@ -443,31 +481,32 @@ def configure(conf):
+
+ strlcpy_in_bsd = False
+
+- # libbsd on some platforms provides strlcpy and strlcat
+- if not conf.CHECK_FUNCS('strlcpy strlcat'):
+- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
+- checklibc=True):
+- strlcpy_in_bsd = True
+- elif conf.env.enable_fuzzing:
+- # Just to complicate it more, some versions of Honggfuzz have
+- # got strlcpy and strlcat in libc, but not in <string.h>
+- # (unless it is there coincidentally, on a BSD). Therefore we
+- # can't use CHECK_FUNCS alone to decide whether to add the
+- # headers to replace.h.
+- #
+- # As this is only known to happen on a fuzzing compiler, we'll
+- # skip the check when not in fuzzing mode.
+- conf.CHECK_HEADERS('bsd/string.h')
+-
+- if not conf.CHECK_FUNCS('getpeereid'):
+- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
+- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS('setproctitle_init'):
+- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
+-
+- if not conf.CHECK_FUNCS('closefrom'):
+- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
++ if Options.options.enable_libbsd:
++ # libbsd on some platforms provides strlcpy and strlcat
++ if not conf.CHECK_FUNCS('strlcpy strlcat'):
++ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
++ checklibc=True):
++ strlcpy_in_bsd = True
++ elif conf.env.enable_fuzzing:
++ # Just to complicate it more, some versions of Honggfuzz have
++ # got strlcpy and strlcat in libc, but not in <string.h>
++ # (unless it is there coincidentally, on a BSD). Therefore we
++ # can't use CHECK_FUNCS alone to decide whether to add the
++ # headers to replace.h.
++ #
++ # As this is only known to happen on a fuzzing compiler, we'll
++ # skip the check when not in fuzzing mode.
++ conf.CHECK_HEADERS('bsd/string.h')
++
++ if not conf.CHECK_FUNCS('getpeereid'):
++ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
++ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS('setproctitle_init'):
++ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
++
++ if not conf.CHECK_FUNCS('closefrom'):
++ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
+
+ conf.CHECK_CODE('''
+ struct ucred cred;
+diff --git a/wscript b/wscript
+index 2c587fb..b2164b2 100644
+--- a/wscript
++++ b/wscript
+@@ -69,6 +69,12 @@ def options(opt):
+ action="store_true", dest='disable_tdb_mutex_locking',
+ default=False)
+
++ opt.add_option('--with-valgrind',
++ help=("enable use of valgrind"),
++ action="store_true", dest='enable_valgrind')
++ opt.add_option('--without-valgrind',
++ help=("disable use of valgrind"),
++ action="store_false", dest='enable_valgrind', default=False)
+
+ def configure(conf):
+ conf.env.disable_tdb_mutex_locking = getattr(Options.options,
+--
+2.34.1
+
diff --git a/meta-networking/recipes-support/libtdb/libtdb/0002-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-networking/recipes-support/libtdb/libtdb/0002-Fix-pyext_PATTERN-for-cross-compilation.patch
new file mode 100644
index 0000000000..00ec8a4775
--- /dev/null
+++ b/meta-networking/recipes-support/libtdb/libtdb/0002-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,42 @@
+From de39c696a62894fd9c6626d3e2931e42e3407be5 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 24 Nov 2021 13:33:35 +0800
+Subject: [PATCH] Fix pyext_PATTERN for cross compilation
+
+The pyext_PATTERN will add native arch as suffix when cross compiling.
+For example, on qemuarm64, it is expanded to:
+pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
+which will result in the incorrect library name.
+
+root@qemuarm64:~# find /usr/lib/python3.10/ -name tdb\*
+/usr/lib/python3.10/site-packages/tdb.so
+/usr/lib/python3.10/site-packages/tdb.cpython-310-x86_64-linux-gnu.so
+
+Set pyext_PATTERN to '%s.so' to remove the suffix.
+After the patch:
+root@qemuarm64:~# find /usr/lib/python3.10/ -name tdb\*
+/usr/lib/python3.10/site-packages/tdb.so
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ third_party/waf/waflib/Tools/python.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
+index b2dd1a9..2bd3545 100644
+--- a/third_party/waf/waflib/Tools/python.py
++++ b/third_party/waf/waflib/Tools/python.py
+@@ -339,7 +339,7 @@ def check_python_headers(conf, features='pyembed pyext'):
+ x = 'MACOSX_DEPLOYMENT_TARGET'
+ if dct[x]:
+ env[x] = conf.environ[x] = str(dct[x])
+- env.pyext_PATTERN = '%s' + (dct['EXT_SUFFIX'] or dct['SO']) # SO is deprecated in 3.5 and removed in 3.11
++ env.pyext_PATTERN = '%s.so'
+
+
+ # Try to get pythonX.Y-config
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/libtdb/libtdb/run-ptest b/meta-networking/recipes-support/libtdb/libtdb/run-ptest
new file mode 100644
index 0000000000..7bc56f77c0
--- /dev/null
+++ b/meta-networking/recipes-support/libtdb/libtdb/run-ptest
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+ptestdir=$(dirname "$(readlink -f "$0")")
+cd "$ptestdir"/tests || exit
+
+tests=$(find * -type f -name 'tdb1-*')
+
+for f in replace_testsuite $tests
+do
+ if test -x ./"$f"; then
+ if ./"$f" > ./"$f".out 2> ./"$f".err; then
+ echo "PASS: $f"
+ else
+ echo "FAIL: $f"
+ fi
+ fi
+done
diff --git a/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch b/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch
deleted file mode 100644
index c35cab7c2f..0000000000
--- a/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch
+++ /dev/null
@@ -1,172 +0,0 @@
-From 71a10c176c34da898c0169371b3c1b032d2f88b1 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Wed, 19 Jun 2019 17:53:34 +0800
-Subject: [PATCH] tdb: Add configure options for packages
-
-Add configure options for the following packages:
- - acl
- - attr
- - libaio
- - libbsd
- - libcap
- - valgrind
-
-Upstream-Status: Inappropriate [oe deterministic build specific]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
-Update to 1.4.0
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- lib/replace/wscript | 94 ++++++++++++++++++++++++++++++++++++++++-------------
- wscript | 6 ++++
- 2 files changed, 78 insertions(+), 22 deletions(-)
-
-diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 1d01e1e..2336dc3 100644
---- a/lib/replace/wscript
-+++ b/lib/replace/wscript
-@@ -25,6 +25,41 @@ def options(opt):
- opt.PRIVATE_EXTENSION_DEFAULT('')
- opt.RECURSE('buildtools/wafsamba')
-
-+ opt.add_option('--with-acl',
-+ help=("Enable use of acl"),
-+ action="store_true", dest='enable_acl')
-+ opt.add_option('--without-acl',
-+ help=("Disable use of acl"),
-+ action="store_false", dest='enable_acl', default=False)
-+
-+ opt.add_option('--with-attr',
-+ help=("Enable use of attr"),
-+ action="store_true", dest='enable_attr')
-+ opt.add_option('--without-attr',
-+ help=("Disable use of attr"),
-+ action="store_false", dest='enable_attr', default=False)
-+
-+ opt.add_option('--with-libaio',
-+ help=("Enable use of libaio"),
-+ action="store_true", dest='enable_libaio')
-+ opt.add_option('--without-libaio',
-+ help=("Disable use of libaio"),
-+ action="store_false", dest='enable_libaio', default=False)
-+
-+ opt.add_option('--with-libbsd',
-+ help=("Enable use of libbsd"),
-+ action="store_true", dest='enable_libbsd')
-+ opt.add_option('--without-libbsd',
-+ help=("Disable use of libbsd"),
-+ action="store_false", dest='enable_libbsd', default=False)
-+
-+ opt.add_option('--with-libcap',
-+ help=("Enable use of libcap"),
-+ action="store_true", dest='enable_libcap')
-+ opt.add_option('--without-libcap',
-+ help=("Disable use of libcap"),
-+ action="store_false", dest='enable_libcap', default=False)
-+
- @Utils.run_once
- def configure(conf):
- conf.RECURSE('buildtools/wafsamba')
-@@ -34,12 +69,25 @@ def configure(conf):
- conf.DEFINE('HAVE_LIBREPLACE', 1)
- conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
-
-- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h')
-- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h')
-+ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
-+ conf.CHECK_HEADERS('attr/xattr.h compat.h ctype.h dustat.h')
- conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
-- conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
-- conf.CHECK_HEADERS('shadow.h sys/acl.h')
-- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
-+ conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
-+ conf.CHECK_HEADERS('shadow.h')
-+ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
-+
-+ if Options.options.enable_acl:
-+ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
-+
-+ if Options.options.enable_attr:
-+ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
-+
-+ if Options.options.enable_libaio:
-+ conf.CHECK_HEADERS('libaio.h')
-+
-+ if Options.options.enable_libcap:
-+ conf.CHECK_HEADERS('sys/capability.h')
-+
- conf.CHECK_HEADERS('port.h')
- conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h')
- conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
-@@ -110,9 +158,10 @@ def configure(conf):
- conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
- conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
-
-- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
-- conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
-- conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
-+ if Options.options.enable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
-+ conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
-+
- conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
- conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
- conf.CHECK_HEADERS('syscall.h sys/syscall.h inttypes.h')
-@@ -380,20 +429,21 @@ def configure(conf):
-
- strlcpy_in_bsd = False
-
-- # libbsd on some platforms provides strlcpy and strlcat
-- if not conf.CHECK_FUNCS('strlcpy strlcat'):
-- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-- checklibc=True):
-- strlcpy_in_bsd = True
-- if not conf.CHECK_FUNCS('getpeereid'):
-- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
-- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
-- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
-- if not conf.CHECK_FUNCS('setproctitle_init'):
-- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
--
-- if not conf.CHECK_FUNCS('closefrom'):
-- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-+ if Options.options.enable_libbsd:
-+ # libbsd on some platforms provides strlcpy and strlcat
-+ if not conf.CHECK_FUNCS('strlcpy strlcat'):
-+ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-+ checklibc=True):
-+ strlcpy_in_bsd = True
-+ if not conf.CHECK_FUNCS('getpeereid'):
-+ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
-+ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
-+ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
-+ if not conf.CHECK_FUNCS('setproctitle_init'):
-+ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
-+
-+ if not conf.CHECK_FUNCS('closefrom'):
-+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-
- conf.CHECK_CODE('''
- struct ucred cred;
-diff --git a/wscript b/wscript
-index 5598d02..8d47244 100644
---- a/wscript
-+++ b/wscript
-@@ -69,6 +69,12 @@ def options(opt):
- action="store_true", dest='disable_tdb_mutex_locking',
- default=False)
-
-+ opt.add_option('--with-valgrind',
-+ help=("enable use of valgrind"),
-+ action="store_true", dest='enable_valgrind')
-+ opt.add_option('--without-valgrind',
-+ help=("disable use of valgrind"),
-+ action="store_false", dest='enable_valgrind', default=False)
-
- def configure(conf):
- conf.env.disable_tdb_mutex_locking = getattr(Options.options,
---
-2.7.4
-
diff --git a/meta-networking/recipes-support/libtdb/libtdb_1.4.10.bb b/meta-networking/recipes-support/libtdb/libtdb_1.4.10.bb
new file mode 100644
index 0000000000..bd3f9f63a9
--- /dev/null
+++ b/meta-networking/recipes-support/libtdb/libtdb_1.4.10.bb
@@ -0,0 +1,63 @@
+SUMMARY = "The tdb library"
+HOMEPAGE = "https://tdb.samba.org/"
+SECTION = "libs"
+LICENSE = "LGPL-3.0-or-later & GPL-3.0-or-later"
+
+LIC_FILES_CHKSUM = "file://tools/tdbdump.c;endline=18;md5=b59cd45aa8624578126a8c98f48018c4 \
+ file://include/tdb.h;endline=27;md5=f5bb544641d3081821bcc1dd58310be6"
+
+export PYTHONHASHSEED="1"
+export PYTHONARCHDIR = "${PYTHON_SITEPACKAGES_DIR}"
+
+SRC_URI = "https://samba.org/ftp/tdb/tdb-${PV}.tar.gz \
+ file://0001-tdb-Add-configure-options-for-packages.patch \
+ file://0002-Fix-pyext_PATTERN-for-cross-compilation.patch \
+ file://run-ptest \
+"
+
+SRC_URI[sha256sum] = "02338e33c16c21c9e29571cef523e76b2b708636254f6f30c6cf195d48c62daf"
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
+"
+
+PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
+PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
+PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
+
+S = "${WORKDIR}/tdb-${PV}"
+
+inherit waf-samba pkgconfig ptest
+
+# Cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
+# to cross Popen
+export WAF_NO_PREFORK="yes"
+
+EXTRA_OECONF += "--disable-rpath \
+ --disable-rpath-install \
+ --bundled-libraries=NONE \
+ --builtin-libraries=replace \
+ --with-libiconv=${STAGING_DIR_HOST}${prefix}\
+ "
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ install -m 0755 ${B}/bin/tdb1-* ${D}${PTEST_PATH}/tests/
+ install -m 0755 ${B}/bin/replace_testsuite ${D}${PTEST_PATH}/tests/
+ install -d ${D}${PTEST_PATH}/tests/test
+ install -m 0644 ${B}/test/*.tdb ${D}${PTEST_PATH}/tests/test/
+ install -m 0644 ${B}/test/*.corrupt ${D}${PTEST_PATH}/tests/test/
+}
+
+PACKAGES += "tdb-tools python3-tdb"
+
+RPROVIDES:${PN}-dbg += "python3-tdb-dbg"
+
+FILES:${PN} = "${libdir}/*.so.*"
+FILES:tdb-tools = "${bindir}/*"
+FILES:python3-tdb = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS:python3-tdb = "python3"
+INSANE_SKIP:${MLPREFIX}python3-tdb = "dev-so"
diff --git a/meta-networking/recipes-support/libtdb/libtdb_1.4.3.bb b/meta-networking/recipes-support/libtdb/libtdb_1.4.3.bb
deleted file mode 100644
index 2affcf754e..0000000000
--- a/meta-networking/recipes-support/libtdb/libtdb_1.4.3.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "The tdb library"
-HOMEPAGE = "http://tdb.samba.org/"
-SECTION = "libs"
-LICENSE = "LGPL-3.0-or-later & GPL-3.0-or-later"
-
-LIC_FILES_CHKSUM = "file://tools/tdbdump.c;endline=18;md5=b59cd45aa8624578126a8c98f48018c4 \
- file://include/tdb.h;endline=27;md5=f5bb544641d3081821bcc1dd58310be6"
-
-SRC_URI = "https://samba.org/ftp/tdb/tdb-${PV}.tar.gz \
- file://tdb-Add-configure-options-for-packages.patch \
- file://0001-Fix-pyext_PATTERN-for-cross-compilation.patch \
-"
-
-SRC_URI[md5sum] = "e638e8890f743624a754304b3f994f4d"
-SRC_URI[sha256sum] = "c8058393dfa15f47e11ebd2f1d132693f0b3b3b8bf22d0201bfb305026f88a1b"
-
-PACKAGECONFIG ??= "\
- ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
-"
-
-PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
-PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
-PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
-PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
-
-S = "${WORKDIR}/tdb-${PV}"
-
-inherit waf-samba
-
-#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
-#to cross Popen
-export WAF_NO_PREFORK="yes"
-
-EXTRA_OECONF += "--disable-rpath \
- --bundled-libraries=NONE \
- --builtin-libraries=replace \
- --with-libiconv=${STAGING_DIR_HOST}${prefix}\
- "
-
-PACKAGES += "tdb-tools python3-tdb"
-
-RPROVIDES:${PN}-dbg += "python3-tdb-dbg"
-
-FILES:${PN} = "${libdir}/*.so.*"
-FILES:tdb-tools = "${bindir}/*"
-FILES:python3-tdb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
-RDEPENDS:python3-tdb = "python3"
-INSANE_SKIP:${MLPREFIX}python3-tdb = "dev-so"
diff --git a/meta-networking/recipes-support/libtevent/libtevent/0001-Add-configure-options-for-packages.patch b/meta-networking/recipes-support/libtevent/libtevent/0001-Add-configure-options-for-packages.patch
new file mode 100644
index 0000000000..7fdeec61f4
--- /dev/null
+++ b/meta-networking/recipes-support/libtevent/libtevent/0001-Add-configure-options-for-packages.patch
@@ -0,0 +1,190 @@
+From c2241d7a1371ece3b89dfdad4861dcf0a152d5d4 Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Fri, 25 Dec 2020 15:03:17 +0900
+Subject: [PATCH] Add configure options for packages
+
+Add configure options for the following packages:
+ - acl
+ - attr
+ - libbsd
+ - libcap
+ - valgrind
+
+Upstream-Status: Inappropriate [oe deterministic build specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
+Modified to apply to version 0.9.33.
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+Update patch to version 0.10.0
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Update patch to version 0.14.1
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+
+Rebase to 0.16.0
+Remove libaio option
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ lib/replace/wscript | 100 +++++++++++++++++++++++++++++++-------------
+ wscript | 6 +++
+ 2 files changed, 77 insertions(+), 29 deletions(-)
+
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index 77e655b..452c741 100644
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -25,6 +25,34 @@ def options(opt):
+ opt.PRIVATE_EXTENSION_DEFAULT('')
+ opt.RECURSE('buildtools/wafsamba')
+
++ opt.add_option('--with-acl',
++ help=("Enable use of acl"),
++ action="store_true", dest='enable_acl')
++ opt.add_option('--without-acl',
++ help=("Disable use of acl"),
++ action="store_false", dest='enable_acl', default=False)
++
++ opt.add_option('--with-attr',
++ help=("Enable use of attr"),
++ action="store_true", dest='enable_attr')
++ opt.add_option('--without-attr',
++ help=("Disable use of attr"),
++ action="store_false", dest='enable_attr', default=False)
++
++ opt.add_option('--with-libbsd',
++ help=("Enable use of libbsd"),
++ action="store_true", dest='enable_libbsd')
++ opt.add_option('--without-libbsd',
++ help=("Disable use of libbsd"),
++ action="store_false", dest='enable_libbsd', default=False)
++
++ opt.add_option('--with-libcap',
++ help=("Enable use of libcap"),
++ action="store_true", dest='enable_libcap')
++ opt.add_option('--without-libcap',
++ help=("Disable use of libcap"),
++ action="store_false", dest='enable_libcap', default=False)
++
+ @Utils.run_once
+ def configure(conf):
+ conf.RECURSE('buildtools/wafsamba')
+@@ -38,12 +66,24 @@ def configure(conf):
+ conf.DEFINE('HAVE_LIBREPLACE', 1)
+ conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
+
+- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h')
+- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h')
++ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
++ conf.CHECK_HEADERS('compat.h ctype.h dustat.h')
+ conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
+ conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
+ conf.CHECK_HEADERS('shadow.h sys/acl.h')
+ conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
++ conf.CHECK_HEADERS('shadow.h')
++ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
++
++ if Options.options.enable_acl:
++ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
++
++ if Options.options.enable_attr:
++ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
++
++ if Options.options.enable_libcap:
++ conf.CHECK_HEADERS('sys/capability.h')
++
+ conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h')
+ conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
+ conf.CHECK_HEADERS('sys/resource.h sys/security.h sys/shm.h sys/statfs.h sys/statvfs.h sys/termio.h')
+@@ -113,8 +153,9 @@ def configure(conf):
+ conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
+ conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
+
+- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
+- conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h valgrind/callgrind.h')
++ if Options.options.enable_valgrind:
++ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
++ conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h valgrind/callgrind.h')
+ conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
+ conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
+ conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
+@@ -443,31 +484,32 @@ def configure(conf):
+
+ strlcpy_in_bsd = False
+
+- # libbsd on some platforms provides strlcpy and strlcat
+- if not conf.CHECK_FUNCS('strlcpy strlcat'):
+- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
+- checklibc=True):
+- strlcpy_in_bsd = True
+- elif conf.env.enable_fuzzing:
+- # Just to complicate it more, some versions of Honggfuzz have
+- # got strlcpy and strlcat in libc, but not in <string.h>
+- # (unless it is there coincidentally, on a BSD). Therefore we
+- # can't use CHECK_FUNCS alone to decide whether to add the
+- # headers to replace.h.
+- #
+- # As this is only known to happen on a fuzzing compiler, we'll
+- # skip the check when not in fuzzing mode.
+- conf.CHECK_HEADERS('bsd/string.h')
+-
+- if not conf.CHECK_FUNCS('getpeereid'):
+- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
+- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
+- if not conf.CHECK_FUNCS('setproctitle_init'):
+- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
+-
+- if not conf.CHECK_FUNCS('closefrom'):
+- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
++ if Options.options.enable_libbsd:
++ # libbsd on some platforms provides strlcpy and strlcat
++ if not conf.CHECK_FUNCS('strlcpy strlcat'):
++ if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
++ checklibc=True):
++ strlcpy_in_bsd = True
++ elif conf.env.enable_fuzzing:
++ # Just to complicate it more, some versions of Honggfuzz have
++ # got strlcpy and strlcat in libc, but not in <string.h>
++ # (unless it is there coincidentally, on a BSD). Therefore we
++ # can't use CHECK_FUNCS alone to decide whether to add the
++ # headers to replace.h.
++ #
++ # As this is only known to happen on a fuzzing compiler, we'll
++ # skip the check when not in fuzzing mode.
++ conf.CHECK_HEADERS('bsd/string.h')
++
++ if not conf.CHECK_FUNCS('getpeereid'):
++ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
++ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
++ if not conf.CHECK_FUNCS('setproctitle_init'):
++ conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
++
++ if not conf.CHECK_FUNCS('closefrom'):
++ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
+
+ conf.CHECK_CODE('''
+ struct ucred cred;
+diff --git a/wscript b/wscript
+index d912a8a..484a6fa 100644
+--- a/wscript
++++ b/wscript
+@@ -28,6 +28,12 @@ def options(opt):
+ opt.RECURSE('lib/replace')
+ opt.RECURSE('lib/talloc')
+
++ opt.add_option('--with-valgrind',
++ help=("enable use of valgrind"),
++ action="store_true", dest='enable_valgrind')
++ opt.add_option('--without-valgrind',
++ help=("disable use of valgrind"),
++ action="store_false", dest='enable_valgrind', default=False)
+
+ def configure(conf):
+ conf.RECURSE('lib/replace')
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/libtevent/libtevent/0001-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-networking/recipes-support/libtevent/libtevent/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
deleted file mode 100644
index 81abac83a4..0000000000
--- a/meta-networking/recipes-support/libtevent/libtevent/0001-Fix-pyext_PATTERN-for-cross-compilation.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 96ddbe6653f87670e4a0bbff229276bbe0aa822a Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Wed, 24 Nov 2021 13:33:35 +0800
-Subject: [PATCH] Fix pyext_PATTERN for cross compilation
-
-The pyext_PATTERN will add native arch as suffix when cross compiling.
-For example, on qemuarm64, it is expanded to:
-pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
-which will result in the incorrect library name.
-
-root@qemuarm64:~# find /usr/lib/python3.10/ -name \*tevent\*.so
-/usr/lib/python3.10/site-packages/_tevent.cpython-310-x86_64-linux-gnu.so
-/usr/lib/python3.10/site-packages/_tevent.so
-
-Set pyext_PATTERN to '%s.so' to remove the suffix.
-After the patch:
-root@qemuarm64:~# find /usr/lib/python3.10/ -name \*tevent\*.so
-/usr/lib/python3.10/site-packages/_tevent.so
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- third_party/waf/waflib/Tools/python.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
-index 7c45a76..c9a90f7 100644
---- a/third_party/waf/waflib/Tools/python.py
-+++ b/third_party/waf/waflib/Tools/python.py
-@@ -328,7 +328,7 @@ def check_python_headers(conf, features='pyembed pyext'):
- x = 'MACOSX_DEPLOYMENT_TARGET'
- if dct[x]:
- env[x] = conf.environ[x] = dct[x]
-- env.pyext_PATTERN = '%s' + dct['SO'] # not a mistake
-+ env.pyext_PATTERN = '%s.so'
-
-
- # Try to get pythonX.Y-config
---
-2.17.1
-
diff --git a/meta-networking/recipes-support/libtevent/libtevent/0001-libtevent-fix-musl-libc-compile-error.patch b/meta-networking/recipes-support/libtevent/libtevent/0001-libtevent-fix-musl-libc-compile-error.patch
deleted file mode 100644
index e3aeda9c33..0000000000
--- a/meta-networking/recipes-support/libtevent/libtevent/0001-libtevent-fix-musl-libc-compile-error.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 7ba1de909c587b6773a39ba9f6f9890987f35b24 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Tue, 24 Jul 2018 11:30:53 +0800
-Subject: [PATCH] libtevent: fix musl libc compile error
-
-libldb depend on libtevent, build libldb with musl libc,
-will report error:
-tevent.h:1440:8: error: unknown type name 'pid_t'; did you mean 'div_t'?
-
-add missing headers to fix it.
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- tevent.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/tevent.h b/tevent.h
-index aa6fe0d..2572696 100644
---- a/tevent.h
-+++ b/tevent.h
-@@ -32,6 +32,8 @@
- #include <talloc.h>
- #include <sys/time.h>
- #include <stdbool.h>
-+#include <sys/stat.h>
-+#include <sys/types.h>
-
- struct tevent_context;
- struct tevent_ops;
---
-2.7.4
-
diff --git a/meta-networking/recipes-support/libtevent/libtevent/0002-Fix-pyext_PATTERN-for-cross-compilation.patch b/meta-networking/recipes-support/libtevent/libtevent/0002-Fix-pyext_PATTERN-for-cross-compilation.patch
new file mode 100644
index 0000000000..f1b8f8e9b1
--- /dev/null
+++ b/meta-networking/recipes-support/libtevent/libtevent/0002-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,42 @@
+From 2bb7bf2d945d4ea0dafe3858adc6b8faae18b1e8 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 24 Nov 2021 13:33:35 +0800
+Subject: [PATCH] Fix pyext_PATTERN for cross compilation
+
+The pyext_PATTERN will add native arch as suffix when cross compiling.
+For example, on qemuarm64, it is expanded to:
+pyext_PATTERN ='%s.cpython-310-x86_64-linux-gnu.so'
+which will result in the incorrect library name.
+
+root@qemuarm64:~# find /usr/lib/python3.10/ -name \*tevent\*.so
+/usr/lib/python3.10/site-packages/_tevent.cpython-310-x86_64-linux-gnu.so
+/usr/lib/python3.10/site-packages/_tevent.so
+
+Set pyext_PATTERN to '%s.so' to remove the suffix.
+After the patch:
+root@qemuarm64:~# find /usr/lib/python3.10/ -name \*tevent\*.so
+/usr/lib/python3.10/site-packages/_tevent.so
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ third_party/waf/waflib/Tools/python.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/waf/waflib/Tools/python.py b/third_party/waf/waflib/Tools/python.py
+index b2dd1a9..2bd3545 100644
+--- a/third_party/waf/waflib/Tools/python.py
++++ b/third_party/waf/waflib/Tools/python.py
+@@ -339,7 +339,7 @@ def check_python_headers(conf, features='pyembed pyext'):
+ x = 'MACOSX_DEPLOYMENT_TARGET'
+ if dct[x]:
+ env[x] = conf.environ[x] = str(dct[x])
+- env.pyext_PATTERN = '%s' + (dct['EXT_SUFFIX'] or dct['SO']) # SO is deprecated in 3.5 and removed in 3.11
++ env.pyext_PATTERN = '%s.so'
+
+
+ # Try to get pythonX.Y-config
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/libtevent/libtevent/avoid-attr-unless-wanted.patch b/meta-networking/recipes-support/libtevent/libtevent/avoid-attr-unless-wanted.patch
index b71192b7d2..a8cddcd045 100644
--- a/meta-networking/recipes-support/libtevent/libtevent/avoid-attr-unless-wanted.patch
+++ b/meta-networking/recipes-support/libtevent/libtevent/avoid-attr-unless-wanted.patch
@@ -1,17 +1,18 @@
-From 6c4a634cdf70147f773bb1806692c78bbb95c6f2 Mon Sep 17 00:00:00 2001
+From ace8fed037ec3d03f65f861b4da217faff94015b Mon Sep 17 00:00:00 2001
From: Wang Mingyu <wangmy@cn.fujitsu.com>
Date: Fri, 25 Dec 2020 15:10:58 +0900
-Subject: [PATCH] test
+Subject: [PATCH] avoid attr unless wanted
+Upstream-Status: Inappropriate [embedded specific]
---
lib/replace/wscript | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/lib/replace/wscript b/lib/replace/wscript
-index e4642e8..163e94d 100644
+index 452c741..61fcde0 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
-@@ -945,8 +945,6 @@ def build(bld):
+@@ -983,8 +983,6 @@ def build(bld):
if not bld.CONFIG_SET('HAVE_INET_ATON'): REPLACE_SOURCE += ' inet_aton.c'
if not bld.CONFIG_SET('HAVE_INET_NTOP'): REPLACE_SOURCE += ' inet_ntop.c'
if not bld.CONFIG_SET('HAVE_INET_PTON'): REPLACE_SOURCE += ' inet_pton.c'
@@ -20,10 +21,10 @@ index e4642e8..163e94d 100644
if not bld.CONFIG_SET('HAVE_CLOSEFROM'):
REPLACE_SOURCE += ' closefrom.c'
-@@ -960,7 +958,7 @@ def build(bld):
- # at the moment:
+@@ -999,7 +997,7 @@ def build(bld):
# hide_symbols=bld.BUILTIN_LIBRARY('replace'),
private_library=True,
+ provide_builtin_linking=True,
- deps='dl attr' + extra_libs)
+ deps='dl' + extra_libs)
diff --git a/meta-networking/recipes-support/libtevent/libtevent/options-0.10.0.patch b/meta-networking/recipes-support/libtevent/libtevent/options-0.10.0.patch
deleted file mode 100644
index 42da2468f2..0000000000
--- a/meta-networking/recipes-support/libtevent/libtevent/options-0.10.0.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-From c012aa03613e6e74a0598185b222c7b531df1e2d Mon Sep 17 00:00:00 2001
-From: Wang Mingyu <wangmy@cn.fujitsu.com>
-Date: Fri, 25 Dec 2020 15:03:17 +0900
-Subject: [PATCH] Add configure options for packages
-
-Add configure options for the following packages:
- - acl
- - attr
- - libaio
- - libbsd
- - libcap
- - valgrind
-
-Upstream-Status: Inappropriate [oe deterministic build specific]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
-Modified to apply to version 0.9.33.
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Update patch to version 0.10.0
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- lib/replace/wscript | 87 ++++++++++++++++++++++++++++++++++-----------
- wscript | 6 ++++
- 2 files changed, 73 insertions(+), 20 deletions(-)
-
-diff --git a/lib/replace/wscript b/lib/replace/wscript
-index a2bc604..e4642e8 100644
---- a/lib/replace/wscript
-+++ b/lib/replace/wscript
-@@ -25,6 +25,41 @@ def options(opt):
- opt.PRIVATE_EXTENSION_DEFAULT('')
- opt.RECURSE('buildtools/wafsamba')
-
-+ opt.add_option('--with-acl',
-+ help=("Enable use of acl"),
-+ action="store_true", dest='enable_acl')
-+ opt.add_option('--without-acl',
-+ help=("Disable use of acl"),
-+ action="store_false", dest='enable_acl', default=False)
-+
-+ opt.add_option('--with-attr',
-+ help=("Enable use of attr"),
-+ action="store_true", dest='enable_attr')
-+ opt.add_option('--without-attr',
-+ help=("Disable use of attr"),
-+ action="store_false", dest='enable_attr', default=False)
-+
-+ opt.add_option('--with-libaio',
-+ help=("Enable use of libaio"),
-+ action="store_true", dest='enable_libaio')
-+ opt.add_option('--without-libaio',
-+ help=("Disable use of libaio"),
-+ action="store_false", dest='enable_libaio', default=False)
-+
-+ opt.add_option('--with-libbsd',
-+ help=("Enable use of libbsd"),
-+ action="store_true", dest='enable_libbsd')
-+ opt.add_option('--without-libbsd',
-+ help=("Disable use of libbsd"),
-+ action="store_false", dest='enable_libbsd', default=False)
-+
-+ opt.add_option('--with-libcap',
-+ help=("Enable use of libcap"),
-+ action="store_true", dest='enable_libcap')
-+ opt.add_option('--without-libcap',
-+ help=("Disable use of libcap"),
-+ action="store_false", dest='enable_libcap', default=False)
-+
- @Utils.run_once
- def configure(conf):
- conf.RECURSE('buildtools/wafsamba')
-@@ -34,12 +69,25 @@ def configure(conf):
- conf.DEFINE('HAVE_LIBREPLACE', 1)
- conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1)
-
-- conf.CHECK_HEADERS('linux/types.h crypt.h locale.h acl/libacl.h compat.h')
-- conf.CHECK_HEADERS('acl/libacl.h attr/xattr.h compat.h ctype.h dustat.h')
-+ conf.CHECK_HEADERS('linux/types.h crypt.h locale.h compat.h')
-+ conf.CHECK_HEADERS('compat.h ctype.h dustat.h')
- conf.CHECK_HEADERS('fcntl.h fnmatch.h glob.h history.h krb5.h langinfo.h')
- conf.CHECK_HEADERS('locale.h ndir.h pwd.h')
-- conf.CHECK_HEADERS('shadow.h sys/acl.h')
-- conf.CHECK_HEADERS('sys/attributes.h attr/attributes.h sys/capability.h sys/dir.h sys/epoll.h')
-+ conf.CHECK_HEADERS('shadow.h')
-+ conf.CHECK_HEADERS('sys/attributes.h sys/dir.h sys/epoll.h')
-+
-+ if Options.options.enable_acl:
-+ conf.CHECK_HEADERS('acl/libacl.h sys/acl.h')
-+
-+ if Options.options.enable_attr:
-+ conf.CHECK_HEADERS('attr/attributes.h attr/xattr.h')
-+
-+ if Options.options.enable_libaio:
-+ conf.CHECK_HEADERS('libaio.h')
-+
-+ if Options.options.enable_libcap:
-+ conf.CHECK_HEADERS('sys/capability.h')
-+
- conf.CHECK_HEADERS('port.h')
- conf.CHECK_HEADERS('sys/fcntl.h sys/filio.h sys/filsys.h sys/fs/s5param.h')
- conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h sys/ndir.h sys/priv.h')
-@@ -121,8 +169,9 @@ def configure(conf):
- conf.CHECK_HEADERS('sys/fileio.h sys/filesys.h sys/dustat.h sys/sysmacros.h')
- conf.CHECK_HEADERS('xfs/libxfs.h netgroup.h')
-
-- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
-- conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
-+ if Options.options.enable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h')
-+ conf.CHECK_HEADERS('valgrind/memcheck.h valgrind/helgrind.h')
- conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
- conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
- conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
-@@ -418,20 +467,18 @@ def configure(conf):
-
- strlcpy_in_bsd = False
-
-- # libbsd on some platforms provides strlcpy and strlcat
-- if not conf.CHECK_FUNCS('strlcpy strlcat'):
-- if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-- checklibc=True):
-- strlcpy_in_bsd = True
-- if not conf.CHECK_FUNCS('getpeereid'):
-- conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
-- if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
-- conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
-- if not conf.CHECK_FUNCS('setproctitle_init'):
-- conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
--
-- if not conf.CHECK_FUNCS('closefrom'):
-- conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-+ if Options.options.enable_libbsd:
-+ # libbsd on some platforms provides strlcpy and strlcat
-+ if not conf.CHECK_FUNCS('strlcpy strlcat'):
-+ conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-+ checklibc=True)
-+ if not conf.CHECK_FUNCS('getpeereid'):
-+ conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
-+ if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
-+ conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
-+
-+ if not conf.CHECK_FUNCS('closefrom'):
-+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-
- conf.CHECK_CODE('''
- struct ucred cred;
-diff --git a/wscript b/wscript
-index 93af416..a0898b1 100644
---- a/wscript
-+++ b/wscript
-@@ -25,6 +25,12 @@ def options(opt):
- opt.RECURSE('lib/replace')
- opt.RECURSE('lib/talloc')
-
-+ opt.add_option('--with-valgrind',
-+ help=("enable use of valgrind"),
-+ action="store_true", dest='enable_valgrind')
-+ opt.add_option('--without-valgrind',
-+ help=("disable use of valgrind"),
-+ action="store_false", dest='enable_valgrind', default=False)
-
- def configure(conf):
- conf.RECURSE('lib/replace')
---
-2.25.1
-
diff --git a/meta-networking/recipes-support/libtevent/libtevent/run-ptest b/meta-networking/recipes-support/libtevent/libtevent/run-ptest
new file mode 100644
index 0000000000..19f7a4a3a6
--- /dev/null
+++ b/meta-networking/recipes-support/libtevent/libtevent/run-ptest
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+ptestdir=$(dirname "$(readlink -f "$0")")
+cd "$ptestdir"/tests || exit
+
+tests="replace_testsuite test_tevent_tag test_tevent_trace"
+
+for f in $tests
+do
+ if test -x ./"$f"; then
+ if ./"$f" > ./"$f".out 2> ./"$f".err; then
+ echo "PASS: $f"
+ else
+ echo "FAIL: $f"
+ fi
+ fi
+done
diff --git a/meta-networking/recipes-support/libtevent/libtevent_0.10.2.bb b/meta-networking/recipes-support/libtevent/libtevent_0.10.2.bb
deleted file mode 100644
index 732880e96c..0000000000
--- a/meta-networking/recipes-support/libtevent/libtevent_0.10.2.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
-HOMEPAGE = "http://tevent.samba.org"
-SECTION = "libs"
-LICENSE = "LGPL-3.0-or-later"
-
-DEPENDS += "libtalloc libtirpc"
-RDEPENDS:python3-tevent = "python3"
-
-SRC_URI = "https://samba.org/ftp/tevent/tevent-${PV}.tar.gz \
- file://options-0.10.0.patch \
- file://0001-libtevent-fix-musl-libc-compile-error.patch \
- file://0001-Fix-pyext_PATTERN-for-cross-compilation.patch \
-"
-LIC_FILES_CHKSUM = "file://tevent.h;endline=26;md5=4e458d658cb25e21efc16f720e78b85a"
-
-SRC_URI[md5sum] = "105c7a4dbb96f1751eb27dfd05e7fa84"
-SRC_URI[sha256sum] = "f8427822e5b2878fb8b28d6f50d96848734f3f3130612fb574fdd2d2148a6696"
-
-inherit pkgconfig waf-samba
-
-PACKAGECONFIG ??= "\
- ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
-"
-PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
-PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
-PACKAGECONFIG[libaio] = "--with-libaio,--without-libaio,libaio"
-PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
-PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
-PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
-
-SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'attr', '', 'file://avoid-attr-unless-wanted.patch', d)}"
-
-S = "${WORKDIR}/tevent-${PV}"
-
-#cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
-#to cross Popen
-export WAF_NO_PREFORK="yes"
-
-EXTRA_OECONF += "--disable-rpath \
- --bundled-libraries=NONE \
- --builtin-libraries=replace \
- --with-libiconv=${STAGING_DIR_HOST}${prefix}\
- --without-gettext \
- "
-
-PACKAGES += "python3-tevent"
-
-RPROVIDES:${PN}-dbg += "python3-tevent-dbg"
-
-FILES:python3-tevent = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
-
-INSANE_SKIP:${MLPREFIX}python3-tevent = "dev-so"
diff --git a/meta-networking/recipes-support/libtevent/libtevent_0.16.0.bb b/meta-networking/recipes-support/libtevent/libtevent_0.16.0.bb
new file mode 100644
index 0000000000..ac80f3733a
--- /dev/null
+++ b/meta-networking/recipes-support/libtevent/libtevent_0.16.0.bb
@@ -0,0 +1,62 @@
+SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
+HOMEPAGE = "https://tevent.samba.org"
+SECTION = "libs"
+LICENSE = "LGPL-3.0-or-later"
+
+DEPENDS += "libtalloc libtirpc cmocka"
+RDEPENDS:python3-tevent = "python3"
+
+export PYTHONHASHSEED="1"
+export PYTHONARCHDIR = "${PYTHON_SITEPACKAGES_DIR}"
+
+SRC_URI = "https://samba.org/ftp/tevent/tevent-${PV}.tar.gz \
+ file://0001-Add-configure-options-for-packages.patch \
+ file://0002-Fix-pyext_PATTERN-for-cross-compilation.patch \
+ file://run-ptest \
+ "
+
+LIC_FILES_CHKSUM = "file://tevent.h;endline=26;md5=47386b7c539bf2706b7ce52dc9341681"
+
+SRC_URI[sha256sum] = "1aa58f21017ed8c2f606ae84aa7e795b5439edd4dd5f68f1a388a7d6fb40f682"
+
+inherit pkgconfig ptest waf-samba
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} \
+"
+PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
+PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
+PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
+PACKAGECONFIG[libcap] = "--with-libcap,--without-libcap,libcap"
+PACKAGECONFIG[valgrind] = "--with-valgrind,--without-valgrind,valgrind"
+
+SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'attr', '', 'file://avoid-attr-unless-wanted.patch', d)}"
+
+S = "${WORKDIR}/tevent-${PV}"
+
+# Cross_compile cannot use preforked process, since fork process earlier than point subproces.popen
+# to cross Popen
+export WAF_NO_PREFORK="yes"
+
+EXTRA_OECONF += "--disable-rpath \
+ --disable-rpath-install \
+ --bundled-libraries=NONE \
+ --builtin-libraries=replace \
+ --with-libiconv=${STAGING_DIR_HOST}${prefix}\
+ --without-gettext \
+ "
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ install -m 0755 ${B}/bin/test_tevent_* ${D}${PTEST_PATH}/tests/
+ install -m 0755 ${B}/bin/replace_testsuite ${D}${PTEST_PATH}/tests/
+}
+
+PACKAGES += "python3-tevent"
+
+RPROVIDES:${PN}-dbg += "python3-tevent-dbg"
+
+FILES:python3-tevent = "${PYTHON_SITEPACKAGES_DIR}/*"
+
+INSANE_SKIP:${MLPREFIX}python3-tevent = "dev-so"
diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/0001-fix-compile-error-with-linux-kernel-v4.8.patch b/meta-networking/recipes-support/linux-atm/linux-atm/0001-fix-compile-error-with-linux-kernel-v4.8.patch
index 583a6ca60b..403146e603 100644
--- a/meta-networking/recipes-support/linux-atm/linux-atm/0001-fix-compile-error-with-linux-kernel-v4.8.patch
+++ b/meta-networking/recipes-support/linux-atm/linux-atm/0001-fix-compile-error-with-linux-kernel-v4.8.patch
@@ -13,7 +13,7 @@ We should exclude the linux time.h by disable linux/atm_zatm.h and
move some useful definition in linux/atm_zatm.h to zntune.c to resolve
it.
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/install-from-buildir.patch b/meta-networking/recipes-support/linux-atm/linux-atm/install-from-buildir.patch
index d1380eb2aa..08cb817f77 100644
--- a/meta-networking/recipes-support/linux-atm/linux-atm/install-from-buildir.patch
+++ b/meta-networking/recipes-support/linux-atm/linux-atm/install-from-buildir.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
install binaries from builddir not srcdir.
Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/link-with-ldflags.patch b/meta-networking/recipes-support/linux-atm/linux-atm/link-with-ldflags.patch
index 62fad2a54a..8324040da9 100644
--- a/meta-networking/recipes-support/linux-atm/linux-atm/link-with-ldflags.patch
+++ b/meta-networking/recipes-support/linux-atm/linux-atm/link-with-ldflags.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
LDFLAGS_FOR_BUILD should be required when doing link for qgen.
Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
diff --git a/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.19.bb b/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.19.bb
index 4a9d2f54d9..3f945eeeee 100644
--- a/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.19.bb
+++ b/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.19.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = " \
SRCREV = "05b50d379ff0037de4957bb2a1befcce88b70225"
-PV .= "+git${SRCPV}"
+PV .= "+git"
LK_REL = "1.0.19"
SRC_URI = " \
diff --git a/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Remove-newline-from-format-line.patch b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Remove-newline-from-format-line.patch
index 1453b75d56..b8fe66f346 100644
--- a/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Remove-newline-from-format-line.patch
+++ b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-Remove-newline-from-format-line.patch
@@ -11,6 +11,8 @@ error: '__builtin___snprintf_chk' output truncated before the last format charac
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
addrdb/addrdb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch
index 0a81a22526..81a3f52d90 100644
--- a/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch
+++ b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch
@@ -21,6 +21,8 @@ Yacc.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
addrdb/coord-config-parse.y | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-coordinator-Fix-strncpy-range-warning.patch b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-coordinator-Fix-strncpy-range-warning.patch
index 493832bb84..aadfae238d 100644
--- a/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-coordinator-Fix-strncpy-range-warning.patch
+++ b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-coordinator-Fix-strncpy-range-warning.patch
@@ -8,6 +8,8 @@ error: 'strncpy' specified bound 4096 equals destination size [-Werror=stringop-
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/coordinator.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-src-iz.c-Undef-dprintf-before-redefining.patch b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-src-iz.c-Undef-dprintf-before-redefining.patch
index 68393067d0..fec9b5736d 100644
--- a/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-src-iz.c-Undef-dprintf-before-redefining.patch
+++ b/meta-networking/recipes-support/lowpan-tools/lowpan-tools/0001-src-iz.c-Undef-dprintf-before-redefining.patch
@@ -7,6 +7,8 @@ Clang is picky and warns about macros redefinition
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/iz.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb b/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
index baaff1f219..f0b7e9184e 100644
--- a/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
+++ b/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
DEPENDS = "flex-native bison-native libnl python"
-PV = "0.3.1+git${SRCPV}"
+PV = "0.3.1+git"
SRC_URI = "git://github.com/linux-wpan/lowpan-tools;branch=master;protocol=https \
file://no-help2man.patch \
file://0001-Fix-build-errors-with-clang.patch \
diff --git a/meta-networking/recipes-support/macchanger/macchanger/0001-Fix-musl-build.patch b/meta-networking/recipes-support/macchanger/macchanger/0001-Fix-musl-build.patch
index d36087d550..5231015701 100644
--- a/meta-networking/recipes-support/macchanger/macchanger/0001-Fix-musl-build.patch
+++ b/meta-networking/recipes-support/macchanger/macchanger/0001-Fix-musl-build.patch
@@ -11,6 +11,8 @@ Missing data type is defined in <sys/types.h>.
Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
---
+Upstream-Status: Pending
+
src/netinfo.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-networking/recipes-support/mctp/mctp_1.1.bb b/meta-networking/recipes-support/mctp/mctp_1.1.bb
new file mode 100644
index 0000000000..bf3961be42
--- /dev/null
+++ b/meta-networking/recipes-support/mctp/mctp_1.1.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Management Component Control Protocol utilities"
+HOMEPAGE = "http://www.github.com/CodeConstruct/mctp"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4cc91856b08b094b4f406a29dc61db21"
+
+SRCREV = "a591ad885aa28f113cb45870b2fd5bce48378d6f"
+
+SRC_URI = "git://github.com/CodeConstruct/mctp;branch=main;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig systemd
+
+PACKAGECONFIG ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+"
+
+# mctpd will only be built if pkg-config detects libsystemd; in which case
+# we'll want to declare the dep and install the service.
+PACKAGECONFIG[systemd] = ",,systemd,libsystemd"
+SYSTEMD_SERVICE:${PN} = "mctpd.service mctp.target mctp-local.target"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
+
+do_install:append () {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${S}/conf/mctpd.service \
+ ${D}${systemd_system_unitdir}/mctpd.service
+ install -m 0644 ${S}/conf/*.target \
+ ${D}${systemd_system_unitdir}/
+ install -d ${D}${datadir}/dbus-1/system.d
+ install -m 0644 ${S}/conf/mctpd-dbus.conf \
+ ${D}${datadir}/dbus-1/system.d/mctpd.conf
+ fi
+}
+
+FILES:${PN} += " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', \
+ '${datadir}/dbus-1/system.d/mctpd.conf', '', d)} \
+"
diff --git a/meta-networking/recipes-support/mctp/mctp_git.bb b/meta-networking/recipes-support/mctp/mctp_git.bb
deleted file mode 100644
index 516f3e2d9e..0000000000
--- a/meta-networking/recipes-support/mctp/mctp_git.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Management Component Control Protocol utilities"
-HOMEPAGE = "http://www.github.com/CodeConstruct/mctp"
-SECTION = "net"
-LICENSE = "GPL-2.0-only"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4cc91856b08b094b4f406a29dc61db21"
-
-PV = "1.0+git${SRCPV}"
-
-SRCREV = "ae3a9162d6c5df0fa50abc34fc951dfd0e3d23c5"
-
-SRC_URI = "git://github.com/CodeConstruct/mctp;branch=main;protocol=https"
-
-S = "${WORKDIR}/git"
-
-inherit meson pkgconfig systemd
-
-PACKAGECONFIG ??= " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
-"
-
-# mctpd will only be built if pkg-config detects libsystemd; in which case
-# we'll want to declare the dep and install the service.
-PACKAGECONFIG[systemd] = ",,systemd,libsystemd"
-SYSTEMD_SERVICE:${PN} = "mctpd.service"
-
-do_install:append () {
- if ${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${S}/conf/mctpd.service \
- ${D}${systemd_system_unitdir}/mctpd.service
- install -d ${D}${datadir}/dbus-1/system.d
- install -m 0644 ${S}/conf/mctpd-dbus.conf \
- ${D}${datadir}/dbus-1/system.d/mctpd.conf
- fi
-}
-
-FILES:${PN} += " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', \
- '${datadir}/dbus-1/system.d/mctpd.conf', '', d)} \
-"
diff --git a/meta-networking/recipes-support/mdio-tools/mdio-netlink_1.2.0.bb b/meta-networking/recipes-support/mdio-tools/mdio-netlink_1.3.1.bb
index b50d33f908..b50d33f908 100644
--- a/meta-networking/recipes-support/mdio-tools/mdio-netlink_1.2.0.bb
+++ b/meta-networking/recipes-support/mdio-tools/mdio-netlink_1.3.1.bb
diff --git a/meta-networking/recipes-support/mdio-tools/mdio-tools.inc b/meta-networking/recipes-support/mdio-tools/mdio-tools.inc
index 7afe1c56bd..b99ce82810 100644
--- a/meta-networking/recipes-support/mdio-tools/mdio-tools.inc
+++ b/meta-networking/recipes-support/mdio-tools/mdio-tools.inc
@@ -5,4 +5,4 @@ LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://${WORKDIR}/git/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/wkz/mdio-tools.git;protocol=https;branch=master"
-SRCREV = "ee47c32d958ae0dcb9900b3b06654a8c08001331"
+SRCREV = "f74eaf38dbda441df4fcaeb21ca4465957953a2f"
diff --git a/meta-networking/recipes-support/mdio-tools/mdio-tools_1.2.0.bb b/meta-networking/recipes-support/mdio-tools/mdio-tools_1.2.0.bb
deleted file mode 100644
index cd4df3da05..0000000000
--- a/meta-networking/recipes-support/mdio-tools/mdio-tools_1.2.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require mdio-tools.inc
-
-DEPENDS += "libmnl"
-
-S = "${WORKDIR}/git"
-
-inherit pkgconfig autotools
-
-RDEPENDS:${PN} = "kernel-module-mdio-netlink"
diff --git a/meta-networking/recipes-support/mdio-tools/mdio-tools_1.3.1.bb b/meta-networking/recipes-support/mdio-tools/mdio-tools_1.3.1.bb
new file mode 100644
index 0000000000..0c64889bc3
--- /dev/null
+++ b/meta-networking/recipes-support/mdio-tools/mdio-tools_1.3.1.bb
@@ -0,0 +1,9 @@
+require mdio-tools.inc
+
+DEPENDS += "virtual/kernel libmnl"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig autotools
+
+RDEPENDS:${PN} = "kernel-module-mdio-netlink"
diff --git a/meta-networking/recipes-support/nbdkit/nbdkit/0001-plugins-Avoid-absolute-buildpaths-in-binaries.patch b/meta-networking/recipes-support/nbdkit/nbdkit/0001-plugins-Avoid-absolute-buildpaths-in-binaries.patch
new file mode 100644
index 0000000000..75377dfb80
--- /dev/null
+++ b/meta-networking/recipes-support/nbdkit/nbdkit/0001-plugins-Avoid-absolute-buildpaths-in-binaries.patch
@@ -0,0 +1,38 @@
+From 1ccbd8fdbd2e367a702e48c8703b2f010d067b23 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 22 May 2023 18:16:24 -0700
+Subject: [PATCH] plugins: Avoid absolute buildpaths in binaries
+
+plugins seems to add CC to the plugins shared objects via compiler
+cmdline which ends up in real code. Therefore scrub buildpaths from CC
+and CFLAGS before passing them to plugin's build.
+
+Upstream-Status: Submitted [https://gitlab.com/nbdkit/nbdkit/-/merge_requests/30]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ plugins/cc/Makefile.am | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/cc/Makefile.am b/plugins/cc/Makefile.am
+index df8b5d15..80586a17 100644
+--- a/plugins/cc/Makefile.am
++++ b/plugins/cc/Makefile.am
+@@ -44,9 +44,12 @@ nbdkit_cc_plugin_la_SOURCES = \
+ $(top_srcdir)/include/nbdkit-plugin.h \
+ $(NULL)
+
++workdir := $(shell dirname $(abs_top_builddir))
++cc_no_sysroot := $(shell echo \"$(CC)\"|sed -e 's#$(workdir)#<WORKDIR>#g')
++cflags_no_sysroot := $(shell echo \"$(CFLAGS)\"|sed -e 's#$(workdir)#<WORKDIR>#g')
+ nbdkit_cc_plugin_la_CPPFLAGS = \
+- -DCC="\"$(CC)\"" \
+- -DCFLAGS="\"$(CFLAGS)\"" \
++ -DCC=\"$(cc_no_sysroot)\" \
++ -DCFLAGS=\"$(cflags_no_sysroot)\" \
+ -I$(top_srcdir)/include \
+ -I$(top_builddir)/include \
+ -I$(top_srcdir)/common/include \
+--
+2.40.1
+
diff --git a/meta-networking/recipes-support/nbdkit/nbdkit/0001-server-Fix-build-when-printf-is-a-macro.patch b/meta-networking/recipes-support/nbdkit/nbdkit/0001-server-Fix-build-when-printf-is-a-macro.patch
deleted file mode 100644
index c7ec41eb9a..0000000000
--- a/meta-networking/recipes-support/nbdkit/nbdkit/0001-server-Fix-build-when-printf-is-a-macro.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 28f07715ab4d670ce81e12776bbece043305bd83 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 11 Apr 2020 15:08:39 -0700
-Subject: [PATCH] server: Fix build when printf is a macro
-
-clang complains on x86 when building
-
-main.c:116:2: error: embedding a #include directive within macro arguments is not supported
- ^
-
-convert nesting include into a string assignment, to same effect but
-making it compatible with clang as well
-
-Upstream-Status: Submitted [https://github.com/libguestfs/nbdkit/pull/3]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- server/main.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/server/main.c b/server/main.c
-index 748122f..c0ac874 100644
---- a/server/main.c
-+++ b/server/main.c
-@@ -112,9 +112,10 @@ static void
- usage (void)
- {
- /* --{short,long}-options remain undocumented */
-- printf (
-+ char const *opt_list =
- #include "synopsis.c"
-- );
-+ ;
-+ printf ("%s\n", opt_list);
- printf ("\n"
- "Please read the nbdkit(1) manual page for full usage.\n");
- }
---
-2.26.0
-
diff --git a/meta-networking/recipes-support/nbdkit/nbdkit_1.33.1.bb b/meta-networking/recipes-support/nbdkit/nbdkit_1.33.1.bb
deleted file mode 100644
index 322f89c22b..0000000000
--- a/meta-networking/recipes-support/nbdkit/nbdkit_1.33.1.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "nbdkit is a toolkit for creating NBD servers."
-DESCRIPTION = "NBD — Network Block Device — is a protocol \
-for accessing Block Devices (hard disks and disk-like things) \
-over a Network. \
-\
-nbdkit is a toolkit for creating NBD servers."
-
-HOMEPAGE = "https://github.com/libguestfs/nbdkit"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f9dcc2d8acdde215fa4bd6ac12bb14f0"
-
-SRC_URI = "git://github.com/libguestfs/nbdkit.git;protocol=https;branch=master \
-"
-SRCREV = "9ebc70dae82220f962167b1668fd2af6de886b16"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "curl xz e2fsprogs zlib"
-
-# autotools-brokensep is needed as nbdkit does not support build in external directory
-inherit pkgconfig python3native perlnative bash-completion autotools-brokensep
-
-# Those are required to build standalone
-EXTRA_OECONF = " --without-libvirt --without-libguestfs --disable-perl"
-
-# Disable some extended support (not desired for small embedded systems)
-#EXTRA_OECONF += " --disable-python"
-#EXTRA_OECONF += " --disable-ocaml"
-#EXTRA_OECONF += " --disable-rust"
-#EXTRA_OECONF += " --disable-ruby"
-#EXTRA_OECONF += " --disable-tcl"
-#EXTRA_OECONF += " --disable-lua"
-#EXTRA_OECONF += " --disable-vddk"
diff --git a/meta-networking/recipes-support/nbdkit/nbdkit_1.33.11.bb b/meta-networking/recipes-support/nbdkit/nbdkit_1.33.11.bb
new file mode 100644
index 0000000000..cdf2677f13
--- /dev/null
+++ b/meta-networking/recipes-support/nbdkit/nbdkit_1.33.11.bb
@@ -0,0 +1,33 @@
+SUMMARY = "nbdkit is a toolkit for creating NBD servers."
+DESCRIPTION = "NBD — Network Block Device — is a protocol \
+for accessing Block Devices (hard disks and disk-like things) \
+over a Network. \
+\
+nbdkit is a toolkit for creating NBD servers."
+
+HOMEPAGE = "https://github.com/libguestfs/nbdkit"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=26250adec854bc317493f6fb98efe049"
+
+SRC_URI = "git://github.com/libguestfs/nbdkit.git;protocol=https;branch=master \
+ file://0001-plugins-Avoid-absolute-buildpaths-in-binaries.patch"
+SRCREV = "6c02c6a469d62a047f230b0ccf03f72328312d2b"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "curl xz e2fsprogs zlib"
+
+# autotools-brokensep is needed as nbdkit does not support build in external directory
+inherit pkgconfig python3native perlnative bash-completion autotools-brokensep
+
+# Those are required to build standalone
+EXTRA_OECONF = " --without-libvirt --without-libguestfs --disable-perl"
+
+# Disable some extended support (not desired for small embedded systems)
+#EXTRA_OECONF += " --disable-python"
+#EXTRA_OECONF += " --disable-ocaml"
+#EXTRA_OECONF += " --disable-rust"
+#EXTRA_OECONF += " --disable-ruby"
+#EXTRA_OECONF += " --disable-tcl"
+#EXTRA_OECONF += " --disable-lua"
+#EXTRA_OECONF += " --disable-vddk"
diff --git a/meta-networking/recipes-support/ncp/libowfat/0001-replace-__pure__-with-compiler-attribute-pure.patch b/meta-networking/recipes-support/ncp/libowfat/0001-replace-__pure__-with-compiler-attribute-pure.patch
index 3ad3b4aa8d..880d80b106 100644
--- a/meta-networking/recipes-support/ncp/libowfat/0001-replace-__pure__-with-compiler-attribute-pure.patch
+++ b/meta-networking/recipes-support/ncp/libowfat/0001-replace-__pure__-with-compiler-attribute-pure.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] replace __pure__ with compiler attribute 'pure'
Remove defining __deprecated__
-Upstream-Status: OE-Specific [Untested with dietlibc]
+Upstream-Status: Inappropriate [Untested with dietlibc]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
byte.h | 22 ++++++----
diff --git a/meta-networking/recipes-support/ndisc6/ndisc6_1.0.6.bb b/meta-networking/recipes-support/ndisc6/ndisc6_1.0.6.bb
deleted file mode 100644
index 6861314a0a..0000000000
--- a/meta-networking/recipes-support/ndisc6/ndisc6_1.0.6.bb
+++ /dev/null
@@ -1,72 +0,0 @@
-DESCRIPTION = "This package includes some useful diagnostics tools for \
-IPv6 networks, including ndisc6, rdisc6, tcptraceroute6 and traceroute6."
-SECTION = "net"
-HOMEPAGE = "http://www.remlab.net/ndisc6/"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRCREV = "7e314b23329f9c24c4c097b8513673fed7e7158a"
-SRC_URI = "git://git.remlab.net/git/ndisc6.git;protocol=http;branch=master \
- file://0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch \
- "
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "coreutils-native"
-
-inherit autotools gettext
-
-EXTRA_OECONF += "PERL=${USRBINPATH}/perl"
-
-USE_NLS = "yes"
-
-EXTRA_OECONF += "--disable-rpath"
-
-do_configure:prepend() {
- cp ${STAGING_DATADIR_NATIVE}/gettext/gettext.h ${S}/include
- ${S}/autogen.sh
-}
-
-do_install:append () {
- rm -rf ${D}${localstatedir}
- # Enable SUID bit for applications that need it
- chmod 4555 ${D}${bindir}/rltraceroute6
- chmod 4555 ${D}${bindir}/ndisc6
- chmod 4555 ${D}${bindir}/rdisc6
-}
-ALLOW_EMPTY:${PN} = "1"
-
-# Split into seperate packages since we normal don't want them all
-# The main package is left empty and therefore not created.
-PACKAGES += "${PN}-ndisc6 ${PN}-tcpspray6 ${PN}-rdisc6 \
- ${PN}-tcptraceroute6 ${PN}-rltraceroute6 \
- ${PN}-tracert6 ${PN}-rdnssd ${PN}-misc"
-FILES:${PN} = ""
-FILES:${PN}-ndisc6 = "${bindir}/ndisc6"
-FILES:${PN}-tcpspray6 = "${bindir}/tcpspray6"
-FILES:${PN}-rdisc6 = "${bindir}/rdisc6"
-FILES:${PN}-tcptraceroute6 = "${bindir}/tcptraceroute6"
-FILES:${PN}-rltraceroute6 = "${bindir}/rltraceroute6"
-FILES:${PN}-tracert6 = "${bindir}/tracert6"
-FILES:${PN}-rdnssd = "${sbindir}/rdnssd ${sysconfdir}/rdnssd"
-FILES:${PN}-misc = "${bindir}/dnssort ${bindir}/name2addr ${bindir}/tcpspray ${bindir}/addr2name"
-
-DESCRIPTION:${PN}-ndisc6 = "ICMPv6 Neighbor Discovery tool. \
-Performs IPv6 neighbor discovery in userland. Replaces arping from the \
-IPv4 world."
-DESCRIPTION:${PN}-rdisc6 = "ICMPv6 Router Discovery tool. \
-Queries IPv6 routers on the network for advertised prefixes. Can be used \
-to detect rogue IPv6 routers, monitor legitimate IPv6 routers."
-DESCRIPTION:${PN}-tcpspray6 = "Performs bandwidth measurements of TCP \
-sessions between the local system and a remote echo server in either IPv6 \
-or IPv4."
-
-DESCRIPTION:${PN}-rdnssd = "Daemon to autoconfigure the list of DNS \
-servers through slateless IPv6 autoconfiguration."
-
-# The tcptraceroute6 and tracert6 commands depend on rltraceroute6 to
-# perform the actual trace operation.
-RDEPENDS:${PN}-tcptraceroute6 = "${PN}-rltraceroute6"
-RDEPENDS:${PN}-tracert6 = "${PN}-rltraceroute6"
-RDEPENDS:${PN}-misc += "perl"
-
diff --git a/meta-networking/recipes-support/ndisc6/ndisc6_1.0.8.bb b/meta-networking/recipes-support/ndisc6/ndisc6_1.0.8.bb
new file mode 100644
index 0000000000..a827e7f42a
--- /dev/null
+++ b/meta-networking/recipes-support/ndisc6/ndisc6_1.0.8.bb
@@ -0,0 +1,72 @@
+DESCRIPTION = "This package includes some useful diagnostics tools for \
+IPv6 networks, including ndisc6, rdisc6, tcptraceroute6 and traceroute6."
+SECTION = "net"
+HOMEPAGE = "http://www.remlab.net/ndisc6/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRCREV = "92e5d1cf6547fe40316b2a6ca2f7b8195ae0cbe5"
+SRC_URI = "git://git.remlab.net/git/ndisc6.git;protocol=http;branch=master \
+ file://0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "coreutils-native"
+
+inherit autotools gettext
+
+EXTRA_OECONF += "PERL=${USRBINPATH}/perl"
+
+USE_NLS = "yes"
+
+EXTRA_OECONF += "--disable-rpath"
+
+do_configure:prepend() {
+ cp ${STAGING_DATADIR_NATIVE}/gettext/gettext.h ${S}/include
+ ${S}/autogen.sh
+}
+
+do_install:append () {
+ rm -rf ${D}${localstatedir}
+ # Enable SUID bit for applications that need it
+ chmod 4555 ${D}${bindir}/rltraceroute6
+ chmod 4555 ${D}${bindir}/ndisc6
+ chmod 4555 ${D}${bindir}/rdisc6
+}
+ALLOW_EMPTY:${PN} = "1"
+
+# Split into seperate packages since we normal don't want them all
+# The main package is left empty and therefore not created.
+PACKAGES += "${PN}-ndisc6 ${PN}-tcpspray6 ${PN}-rdisc6 \
+ ${PN}-tcptraceroute6 ${PN}-rltraceroute6 \
+ ${PN}-tracert6 ${PN}-rdnssd ${PN}-misc"
+FILES:${PN} = ""
+FILES:${PN}-ndisc6 = "${bindir}/ndisc6"
+FILES:${PN}-tcpspray6 = "${bindir}/tcpspray6"
+FILES:${PN}-rdisc6 = "${bindir}/rdisc6"
+FILES:${PN}-tcptraceroute6 = "${bindir}/tcptraceroute6"
+FILES:${PN}-rltraceroute6 = "${bindir}/rltraceroute6"
+FILES:${PN}-tracert6 = "${bindir}/tracert6"
+FILES:${PN}-rdnssd = "${sbindir}/rdnssd ${sysconfdir}/rdnssd"
+FILES:${PN}-misc = "${bindir}/dnssort ${bindir}/name2addr ${bindir}/tcpspray ${bindir}/addr2name"
+
+DESCRIPTION:${PN}-ndisc6 = "ICMPv6 Neighbor Discovery tool. \
+Performs IPv6 neighbor discovery in userland. Replaces arping from the \
+IPv4 world."
+DESCRIPTION:${PN}-rdisc6 = "ICMPv6 Router Discovery tool. \
+Queries IPv6 routers on the network for advertised prefixes. Can be used \
+to detect rogue IPv6 routers, monitor legitimate IPv6 routers."
+DESCRIPTION:${PN}-tcpspray6 = "Performs bandwidth measurements of TCP \
+sessions between the local system and a remote echo server in either IPv6 \
+or IPv4."
+
+DESCRIPTION:${PN}-rdnssd = "Daemon to autoconfigure the list of DNS \
+servers through slateless IPv6 autoconfiguration."
+
+# The tcptraceroute6 and tracert6 commands depend on rltraceroute6 to
+# perform the actual trace operation.
+RDEPENDS:${PN}-tcptraceroute6 = "${PN}-rltraceroute6"
+RDEPENDS:${PN}-tracert6 = "${PN}-rltraceroute6"
+RDEPENDS:${PN}-misc += "perl"
+
diff --git a/meta-networking/recipes-support/netcat/netcat_0.7.1.bb b/meta-networking/recipes-support/netcat/netcat_0.7.1.bb
index 54a4ea0b33..fd36aadd7e 100644
--- a/meta-networking/recipes-support/netcat/netcat_0.7.1.bb
+++ b/meta-networking/recipes-support/netcat/netcat_0.7.1.bb
@@ -2,7 +2,6 @@ require netcat.inc
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-PR = "r3"
SRC_URI = "${SOURCEFORGE_MIRROR}/netcat/netcat-${PV}.tar.bz2 \
file://obsolete_autoconf_macros.patch \
diff --git a/meta-networking/recipes-support/netcf/netcf/0001-Adopt-to-new-gnulib-read_file-fread_file-signature.patch b/meta-networking/recipes-support/netcf/netcf/0001-Adopt-to-new-gnulib-read_file-fread_file-signature.patch
new file mode 100644
index 0000000000..b188248fff
--- /dev/null
+++ b/meta-networking/recipes-support/netcf/netcf/0001-Adopt-to-new-gnulib-read_file-fread_file-signature.patch
@@ -0,0 +1,83 @@
+From af256680926e166ac21bc0f11172ea6c077a9b55 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Mar 2024 10:40:48 -0800
+Subject: [PATCH] Adopt to new gnulib read_file/fread_file signature
+
+It now expects a flag parameter in latest gnulib
+see [1]
+
+[1] https://public-inbox.org/bug-gnulib/87tv01c1z2.fsf-ueno@gnu.org/
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/dutil_linux.c | 4 ++--
+ src/dutil_posix.c | 2 +-
+ src/ncftool.c | 2 +-
+ src/ncftransform.c | 2 +-
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/dutil_linux.c b/src/dutil_linux.c
+index 742153a..eb72eb2 100644
+--- a/src/dutil_linux.c
++++ b/src/dutil_linux.c
+@@ -1113,7 +1113,7 @@ static void add_link_info(struct netcf *ncf,
+
+ xasprintf(&path, "/sys/class/net/%s/operstate", ifname);
+ ERR_NOMEM(!path, ncf);
+- state = read_file(path, &length);
++ state = read_file(path, 0, &length);
+ if (!state) {
+ /* missing operstate is *not* an error. It could be due to an
+ * alias interface, which has no entry in /sys/class/net at
+@@ -1132,7 +1132,7 @@ static void add_link_info(struct netcf *ncf,
+ FREE(path);
+ xasprintf(&path, "/sys/class/net/%s/speed", ifname);
+ ERR_NOMEM(path == NULL, ncf);
+- speed = read_file(path, &length);
++ speed = read_file(path, 0, &length);
+ if (!speed && errno == EINVAL) {
+ /* attempts to read $ifname/speed result in EINVAL if the
+ * interface is ifconfiged down (which isn't exactly the
+diff --git a/src/dutil_posix.c b/src/dutil_posix.c
+index 1313514..b9884f0 100644
+--- a/src/dutil_posix.c
++++ b/src/dutil_posix.c
+@@ -211,7 +211,7 @@ int run_program(struct netcf *ncf, const char *const *argv, char **output)
+ "Failed to create file stream for output while executing '%s': %s",
+ argv_str, errbuf);
+
+- *output = fread_file(outfile, &outlen);
++ *output = fread_file(outfile, 0, &outlen);
+ ERR_THROW_STRERROR(*output == NULL, ncf, EEXEC,
+ "Error while reading output from execution of '%s': %s",
+ argv_str, errbuf);
+diff --git a/src/ncftool.c b/src/ncftool.c
+index f1b5642..c878cb0 100644
+--- a/src/ncftool.c
++++ b/src/ncftool.c
+@@ -351,7 +351,7 @@ static int cmd_define(const struct command *cmd) {
+ struct netcf_if *nif = NULL;
+ int result = CMD_RES_ERR;
+
+- xml = read_file(fname, &length);
++ xml = read_file(fname, 0, &length);
+ if (xml == NULL) {
+ fprintf(stderr, "Failed to read %s\n", fname);
+ goto done;
+diff --git a/src/ncftransform.c b/src/ncftransform.c
+index fbabfc3..4c9a56d 100644
+--- a/src/ncftransform.c
++++ b/src/ncftransform.c
+@@ -54,7 +54,7 @@ int main(int argc, char **argv) {
+ if (argc != 3 || (STRNEQ(argv[1], "get") && STRNEQ(argv[1], "put")))
+ die("Usage: ncftransform (put|get) FILE\n");
+
+- in_xml = read_file(argv[2], &length);
++ in_xml = read_file(argv[2], 0, &length);
+ if (in_xml == NULL)
+ die("Failed to read %s\n", argv[2]);
+
+--
+2.44.0
+
diff --git a/meta-networking/recipes-support/netcf/netcf_0.2.8.bb b/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
index f60bb9f104..c68974f9f0 100644
--- a/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
+++ b/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
@@ -7,10 +7,10 @@ LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=fb919cc88dbe06ec0b0bd50e001ccf1f"
SRCREV = "2c5d4255857531bc09d91dcd02e86545f29004d4"
-PV .= "+git${SRCPV}"
+PV .= "+git"
SRC_URI = "git://pagure.io/netcf.git;protocol=https;branch=master \
-"
+ file://0001-Adopt-to-new-gnulib-read_file-fread_file-signature.patch"
UPSTREAM_CHECK_GITTAGREGEX = "release-(?P<pver>(\d+(\.\d+)+))"
diff --git a/meta-networking/recipes-support/netperf/netperf_git.bb b/meta-networking/recipes-support/netperf/netperf_git.bb
index 4074f0cd07..6e459eeeb4 100644
--- a/meta-networking/recipes-support/netperf/netperf_git.bb
+++ b/meta-networking/recipes-support/netperf/netperf_git.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "http://www.netperf.org/"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=e661ab33a2a71ad6652c178dedf8aaa2"
-PV = "2.7.0+git${SRCPV}"
+PV = "2.7.0+git"
SRC_URI = "git://github.com/HewlettPackard/netperf.git;branch=master;protocol=https \
file://cpu_set.patch \
diff --git a/meta-networking/recipes-support/netsniff-ng/files/0001-Cmds-automatically-create-folder.patch b/meta-networking/recipes-support/netsniff-ng/files/0001-Cmds-automatically-create-folder.patch
index e535aedf51..490990d29d 100644
--- a/meta-networking/recipes-support/netsniff-ng/files/0001-Cmds-automatically-create-folder.patch
+++ b/meta-networking/recipes-support/netsniff-ng/files/0001-Cmds-automatically-create-folder.patch
@@ -4,6 +4,8 @@ Date: Mon, 14 Feb 2022 18:37:22 +0100
Subject: [PATCH] Cmds: automatically create folder
---
+Upstream-Status: Pending
+
Cmds | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta-networking/recipes-support/netsniff-ng/netsniff-ng_0.6.8.bb b/meta-networking/recipes-support/netsniff-ng/netsniff-ng_0.6.8.bb
index 004330e1b4..341eab015c 100644
--- a/meta-networking/recipes-support/netsniff-ng/netsniff-ng_0.6.8.bb
+++ b/meta-networking/recipes-support/netsniff-ng/netsniff-ng_0.6.8.bb
@@ -33,4 +33,4 @@ do_install() {
oe_runmake DESTDIR=${D} netsniff-ng_install
}
-BBCLASSEXTEND = "native nativesdk"
+BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-support/ntimed/ntimed_git.bb b/meta-networking/recipes-support/ntimed/ntimed_git.bb
index 9badfd75d1..955c03f42d 100644
--- a/meta-networking/recipes-support/ntimed/ntimed_git.bb
+++ b/meta-networking/recipes-support/ntimed/ntimed_git.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://main.c;beginline=2;endline=24;md5=89db8e76f2951f3fad1
SRC_URI = "git://github.com/bsdphk/Ntimed;branch=master;protocol=https \
file://use-ldflags.patch"
-PV = "0.0+git${SRCPV}"
+PV = "0.0+git"
SRCREV = "db0abbb4c80f2ecef6bc5d9639bca5bea28532a2"
S = "${WORKDIR}/git"
diff --git a/meta-networking/recipes-support/ntopng/files/CVE-2021-36082.patch b/meta-networking/recipes-support/ntopng/files/CVE-2021-36082.patch
deleted file mode 100644
index 8fdd62d186..0000000000
--- a/meta-networking/recipes-support/ntopng/files/CVE-2021-36082.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 1ec621c85b9411cc611652fd57a892cfef478af3 Mon Sep 17 00:00:00 2001
-From: Luca Deri <deri@ntop.org>
-Date: Sat, 15 May 2021 19:53:46 +0200
-Subject: [PATCH] Added further checks
-
-Upstream-Status: Backport [https://github.com/ntop/nDPI/commit/1ec621c85b9411cc611652fd57a892cfef478af3]
-CVE: CVE-2021-36082
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-
----
- src/lib/protocols/netbios.c | 2 +-
- src/lib/protocols/tls.c | 32 +++++++++++++++++---------------
- 2 files changed, 18 insertions(+), 16 deletions(-)
-
-diff --git a/src/lib/protocols/netbios.c b/src/lib/protocols/netbios.c
-index 1f3850cb..0d3b705f 100644
---- a/src/lib/protocols/netbios.c
-+++ b/src/lib/protocols/netbios.c
-@@ -42,7 +42,7 @@ int ndpi_netbios_name_interpret(char *in, size_t inlen, char *out, u_int out_len
- int ret = 0, len, idx = inlen;
- char *b;
-
-- len = (*in++)/2;
-+ len = (*in++)/2, inlen--;
- b = out;
- *out = 0;
-
-diff --git a/src/lib/protocols/tls.c b/src/lib/protocols/tls.c
-index 5b572cae..c115ac08 100644
---- a/src/lib/protocols/tls.c
-+++ b/src/lib/protocols/tls.c
-@@ -994,21 +994,23 @@ int processClientServerHello(struct ndpi_detection_module_struct *ndpi_struct,
- i += 4 + extension_len, offset += 4 + extension_len;
- }
-
-- ja3_str_len = snprintf(ja3_str, sizeof(ja3_str), "%u,", ja3.tls_handshake_version);
-+ ja3_str_len = snprintf(ja3_str, JA3_STR_LEN, "%u,", ja3.tls_handshake_version);
-
-- for(i=0; i<ja3.num_cipher; i++) {
-- rc = snprintf(&ja3_str[ja3_str_len], sizeof(ja3_str)-ja3_str_len, "%s%u", (i > 0) ? "-" : "", ja3.cipher[i]);
-+ for(i=0; (i<ja3.num_cipher) && (JA3_STR_LEN > ja3_str_len); i++) {
-+ rc = snprintf(&ja3_str[ja3_str_len], JA3_STR_LEN-ja3_str_len, "%s%u", (i > 0) ? "-" : "", ja3.cipher[i]);
-
- if(rc <= 0) break; else ja3_str_len += rc;
- }
-
-- rc = snprintf(&ja3_str[ja3_str_len], sizeof(ja3_str)-ja3_str_len, ",");
-- if(rc > 0 && ja3_str_len + rc < JA3_STR_LEN) ja3_str_len += rc;
-+ if(JA3_STR_LEN > ja3_str_len) {
-+ rc = snprintf(&ja3_str[ja3_str_len], JA3_STR_LEN-ja3_str_len, ",");
-+ if(rc > 0 && ja3_str_len + rc < JA3_STR_LEN) ja3_str_len += rc;
-+ }
-
- /* ********** */
-
-- for(i=0; i<ja3.num_tls_extension; i++) {
-- int rc = snprintf(&ja3_str[ja3_str_len], sizeof(ja3_str)-ja3_str_len, "%s%u", (i > 0) ? "-" : "", ja3.tls_extension[i]);
-+ for(i=0; (i<ja3.num_tls_extension) && (JA3_STR_LEN-ja3_str_len); i++) {
-+ int rc = snprintf(&ja3_str[ja3_str_len], JA3_STR_LEN-ja3_str_len, "%s%u", (i > 0) ? "-" : "", ja3.tls_extension[i]);
-
- if(rc <= 0) break; else ja3_str_len += rc;
- }
-@@ -1443,41 +1445,41 @@ int processClientServerHello(struct ndpi_detection_module_struct *ndpi_struct,
- int rc;
-
- compute_ja3c:
-- ja3_str_len = snprintf(ja3_str, sizeof(ja3_str), "%u,", ja3.tls_handshake_version);
-+ ja3_str_len = snprintf(ja3_str, JA3_STR_LEN, "%u,", ja3.tls_handshake_version);
-
- for(i=0; i<ja3.num_cipher; i++) {
-- rc = snprintf(&ja3_str[ja3_str_len], sizeof(ja3_str)-ja3_str_len, "%s%u",
-+ rc = snprintf(&ja3_str[ja3_str_len], JA3_STR_LEN-ja3_str_len, "%s%u",
- (i > 0) ? "-" : "", ja3.cipher[i]);
- if(rc > 0 && ja3_str_len + rc < JA3_STR_LEN) ja3_str_len += rc; else break;
- }
-
-- rc = snprintf(&ja3_str[ja3_str_len], sizeof(ja3_str)-ja3_str_len, ",");
-+ rc = snprintf(&ja3_str[ja3_str_len], JA3_STR_LEN-ja3_str_len, ",");
- if(rc > 0 && ja3_str_len + rc < JA3_STR_LEN) ja3_str_len += rc;
-
- /* ********** */
-
- for(i=0; i<ja3.num_tls_extension; i++) {
-- rc = snprintf(&ja3_str[ja3_str_len], sizeof(ja3_str)-ja3_str_len, "%s%u",
-+ rc = snprintf(&ja3_str[ja3_str_len], JA3_STR_LEN-ja3_str_len, "%s%u",
- (i > 0) ? "-" : "", ja3.tls_extension[i]);
- if(rc > 0 && ja3_str_len + rc < JA3_STR_LEN) ja3_str_len += rc; else break;
- }
-
-- rc = snprintf(&ja3_str[ja3_str_len], sizeof(ja3_str)-ja3_str_len, ",");
-+ rc = snprintf(&ja3_str[ja3_str_len], JA3_STR_LEN-ja3_str_len, ",");
- if(rc > 0 && ja3_str_len + rc < JA3_STR_LEN) ja3_str_len += rc;
-
- /* ********** */
-
- for(i=0; i<ja3.num_elliptic_curve; i++) {
-- rc = snprintf(&ja3_str[ja3_str_len], sizeof(ja3_str)-ja3_str_len, "%s%u",
-+ rc = snprintf(&ja3_str[ja3_str_len], JA3_STR_LEN-ja3_str_len, "%s%u",
- (i > 0) ? "-" : "", ja3.elliptic_curve[i]);
- if(rc > 0 && ja3_str_len + rc < JA3_STR_LEN) ja3_str_len += rc; else break;
- }
-
-- rc = snprintf(&ja3_str[ja3_str_len], sizeof(ja3_str)-ja3_str_len, ",");
-+ rc = snprintf(&ja3_str[ja3_str_len], JA3_STR_LEN-ja3_str_len, ",");
- if(rc > 0 && ja3_str_len + rc < JA3_STR_LEN) ja3_str_len += rc;
-
- for(i=0; i<ja3.num_elliptic_curve_point_format; i++) {
-- rc = snprintf(&ja3_str[ja3_str_len], sizeof(ja3_str)-ja3_str_len, "%s%u",
-+ rc = snprintf(&ja3_str[ja3_str_len], JA3_STR_LEN-ja3_str_len, "%s%u",
- (i > 0) ? "-" : "", ja3.elliptic_curve_point_format[i]);
- if(rc > 0 && ja3_str_len + rc < JA3_STR_LEN) ja3_str_len += rc; else break;
- }
---
-2.17.1
-
diff --git a/meta-networking/recipes-support/ntopng/ntopng_5.2.1.bb b/meta-networking/recipes-support/ntopng/ntopng_5.2.1.bb
index dca929b574..110ca36866 100644
--- a/meta-networking/recipes-support/ntopng/ntopng_5.2.1.bb
+++ b/meta-networking/recipes-support/ntopng/ntopng_5.2.1.bb
@@ -6,7 +6,7 @@ usability, and features."
SECTION = "console/network"
-DEPENDS = "curl libmaxminddb libpcap lua mariadb ndpi json-c rrdtool zeromq"
+DEPENDS = "curl hiredis libmaxminddb libpcap lua mariadb ndpi json-c rrdtool zeromq"
RDEPENDS:${PN} = "bash redis"
LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
diff --git a/meta-networking/recipes-support/ntp/ntp/0001-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch b/meta-networking/recipes-support/ntp/ntp/0001-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch
index 372938c6d6..d61a6e70b8 100644
--- a/meta-networking/recipes-support/ntp/ntp/0001-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch
+++ b/meta-networking/recipes-support/ntp/ntp/0001-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch
@@ -10,23 +10,24 @@ or 64Kb set by ntp should be good in glibc these days.
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
libntp/work_thread.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libntp/work_thread.c b/libntp/work_thread.c
-index 03a5647..3ddd751 100644
+index c1fe5c2..21db4a0 100644
--- a/libntp/work_thread.c
+++ b/libntp/work_thread.c
-@@ -41,7 +41,7 @@
- #ifndef THREAD_MINSTACKSIZE
- # define THREAD_MINSTACKSIZE (64U * 1024)
- #endif
--#ifndef __sun
-+#if !defined(__sun) && !defined(__GLIBC__)
- #if defined(PTHREAD_STACK_MIN) && THREAD_MINSTACKSIZE < PTHREAD_STACK_MIN
- # undef THREAD_MINSTACKSIZE
- # define THREAD_MINSTACKSIZE PTHREAD_STACK_MIN
+@@ -598,7 +598,7 @@ start_blocking_thread_internal(
+ /* now clamp on lower stack limit. */
+ if (nstacksize < THREAD_MINSTACKSIZE)
+ nstacksize = THREAD_MINSTACKSIZE;
+-# ifdef PTHREAD_STACK_MIN
++# ifdef PTHREAD_STACK_MIN && !defined(__GLIBC__)
+ if (nstacksize < PTHREAD_STACK_MIN)
+ nstacksize = PTHREAD_STACK_MIN;
+ # endif
--
-2.32.0
+2.34.1
diff --git a/meta-networking/recipes-support/ntp/ntp/0001-test-Fix-build-with-new-compiler-defaults-to-fno-com.patch b/meta-networking/recipes-support/ntp/ntp/0001-test-Fix-build-with-new-compiler-defaults-to-fno-com.patch
index 42e1efd8be..24019e974b 100644
--- a/meta-networking/recipes-support/ntp/ntp/0001-test-Fix-build-with-new-compiler-defaults-to-fno-com.patch
+++ b/meta-networking/recipes-support/ntp/ntp/0001-test-Fix-build-with-new-compiler-defaults-to-fno-com.patch
@@ -5,12 +5,12 @@ Subject: [PATCH] test: Fix build with new compiler defaults to -fno-common
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
sntp/tests/run-packetHandling.c | 2 +-
sntp/tests/run-t-log.c | 2 +-
sntp/tests/run-utilities.c | 2 +-
- tests/libntp/test-libntp.h | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
+ 3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/sntp/tests/run-packetHandling.c b/sntp/tests/run-packetHandling.c
index 7790b20..c58380c 100644
@@ -51,16 +51,6 @@ index f717882..98d9bf1 100644
//=======MAIN=====
-diff --git a/tests/libntp/test-libntp.h b/tests/libntp/test-libntp.h
-index 93050b3..60461d8 100644
---- a/tests/libntp/test-libntp.h
-+++ b/tests/libntp/test-libntp.h
-@@ -5,4 +5,4 @@
-
- time_t timefunc(time_t *ptr);
- void settime(int y, int m, int d, int H, int M, int S);
--time_t nowtime;
-+extern time_t nowtime;
--
-2.32.0
+2.34.1
diff --git a/meta-networking/recipes-support/ntp/ntp/ntp-4.2.4_p6-nano.patch b/meta-networking/recipes-support/ntp/ntp/ntp-4.2.4_p6-nano.patch
index d45b7e38b7..d8e0ad3309 100644
--- a/meta-networking/recipes-support/ntp/ntp/ntp-4.2.4_p6-nano.patch
+++ b/meta-networking/recipes-support/ntp/ntp/ntp-4.2.4_p6-nano.patch
@@ -3,6 +3,8 @@ From: Koen Kooi <koen@dominion.thruhere.net>
Date: Wed, 12 Jan 2011 21:38:46 +0100
---
+Upstream-Status: Pending
+
include/ntp_syscall.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/meta-networking/recipes-support/ntp/ntp/ntpd.service b/meta-networking/recipes-support/ntp/ntp/ntpd.service
index 0e3d7cd37b..d793db4a78 100644
--- a/meta-networking/recipes-support/ntp/ntp/ntpd.service
+++ b/meta-networking/recipes-support/ntp/ntp/ntpd.service
@@ -3,9 +3,8 @@ Description=Network Time Service
After=network.target
[Service]
-Type=forking
-PIDFile=/run/ntpd.pid
-ExecStart=/usr/sbin/ntpd -u ntp:ntp -p /run/ntpd.pid -g
+Type=simple
+ExecStart=/usr/sbin/ntpd -u ntp:ntp -n -g
[Install]
WantedBy=multi-user.target
diff --git a/meta-networking/recipes-support/ntp/ntp/ntpdate b/meta-networking/recipes-support/ntp/ntp/ntpdate
deleted file mode 100755
index be3bacfcd1..0000000000
--- a/meta-networking/recipes-support/ntp/ntp/ntpdate
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/sh
-
-PATH=/sbin:/bin:/usr/bin:/usr/sbin
-
-test -x /usr/sbin/ntpdate || exit 0
-
-if test -f /etc/default/ntpdate ; then
-. /etc/default/ntpdate
-fi
-
-if [ "$NTPSERVERS" = "" ] ; then
- if [ "$METHOD" = "" -a "$1" != "silent" ] ; then
- echo "Please set NTPSERVERS in /etc/default/ntpdate"
- exit 1
- else
- exit 0
- fi
-fi
-
-# This is a heuristic: The idea is that if a static interface is brought
-# up, that is a major event, and we can put in some extra effort to fix
-# the system time. Feel free to change this, especially if you regularly
-# bring up new network interfaces.
-if [ "$METHOD" = static ]; then
- OPTS="-b"
-fi
-
-if [ "$METHOD" = loopback ]; then
- exit 0
-fi
-
-(
-
-LOCKFILE=/var/lock/ntpdate
-
-# Avoid running more than one at a time
-if [ -x /usr/bin/lockfile-create ]; then
- lockfile-create $LOCKFILE
- lockfile-touch $LOCKFILE &
- LOCKTOUCHPID="$!"
-fi
-
-if /usr/sbin/ntpdate -s $OPTS $NTPSERVERS 2>/dev/null; then
- if [ "$UPDATE_HWCLOCK" = "yes" ]; then
- hwclock --systohc || :
- fi
-fi
-
-if [ -x /usr/bin/lockfile-create ] ; then
- kill $LOCKTOUCHPID
- lockfile-remove $LOCKFILE
-fi
-
-) &
-
-# wait for all subprocesses to finish
-# this is required when using systemd service as ntpd will start before ntpdate finishes
-# and results in a bind error (port 123)
-wait
diff --git a/meta-networking/recipes-support/ntp/ntp/ntpdate.default b/meta-networking/recipes-support/ntp/ntp/ntpdate.default
deleted file mode 100644
index 486b6e07d3..0000000000
--- a/meta-networking/recipes-support/ntp/ntp/ntpdate.default
+++ /dev/null
@@ -1,7 +0,0 @@
-# Configuration script used by ntpdate-sync script
-
-NTPSERVERS=""
-
-# Set to "yes" to write time to hardware clock on success
-UPDATE_HWCLOCK="no"
-
diff --git a/meta-networking/recipes-support/ntp/ntp/ntpdate.service b/meta-networking/recipes-support/ntp/ntp/ntpdate.service
deleted file mode 100644
index 10cbd70f99..0000000000
--- a/meta-networking/recipes-support/ntp/ntp/ntpdate.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Network Time Service (one-shot ntpdate mode)
-Before=ntpd.service
-
-[Service]
-Type=oneshot
-ExecStart=/usr/bin/ntpdate-sync silent
-RemainAfterExit=yes
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch b/meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch
index 571db75f7c..036c61a78f 100644
--- a/meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch
+++ b/meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch
@@ -1,9 +1,19 @@
---- ntp-4.2.8p12.original/sntp/libopts/m4/libopts.m4 2018-11-12 17:54:57.747220846 +1300
-+++ ntp-4.2.8p12/sntp/libopts/m4/libopts.m4 2018-11-12 18:00:50.626211641 +1300
-@@ -114,12 +114,6 @@
+reproducibility fixed path to posixshell
+---
+Upstream-Status: Pending
+
+ sntp/libopts/m4/libopts.m4 | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/sntp/libopts/m4/libopts.m4 b/sntp/libopts/m4/libopts.m4
+index 23738ca..4e18187 100644
+--- a/sntp/libopts/m4/libopts.m4
++++ b/sntp/libopts/m4/libopts.m4
+@@ -107,13 +107,6 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
AC_PROG_SED
[while :
do
+- test -x "$POSIX_SHELL" && break
- POSIX_SHELL=`which bash`
- test -x "$POSIX_SHELL" && break
- POSIX_SHELL=`which dash`
@@ -13,3 +23,6 @@
POSIX_SHELL=`/bin/sh -c '
exec 2>/dev/null
if ! true ; then exit 1 ; fi
+--
+2.34.1
+
diff --git a/meta-networking/recipes-support/ntp/ntp_4.2.8p15.bb b/meta-networking/recipes-support/ntp/ntp_4.2.8p15.bb
deleted file mode 100644
index 2ae53dc640..0000000000
--- a/meta-networking/recipes-support/ntp/ntp_4.2.8p15.bb
+++ /dev/null
@@ -1,208 +0,0 @@
-SUMMARY = "Network Time Protocol daemon and utilities"
-DESCRIPTION = "The Network Time Protocol (NTP) is used to \
-synchronize the time of a computer client or server to \
-another server or reference time source, such as a radio \
-or satellite receiver or modem."
-HOMEPAGE = "http://support.ntp.org"
-SECTION = "net"
-LICENSE = "NTP"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=4190b39435611e92a4da74e682623f19"
-
-DEPENDS = "libevent"
-
-SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.gz \
- file://ntp-4.2.4_p6-nano.patch \
- file://reproducibility-fixed-path-to-posix-shell.patch \
- file://0001-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch \
- file://0001-test-Fix-build-with-new-compiler-defaults-to-fno-com.patch \
- file://0001-sntp-Fix-types-in-check-for-pthread_detach.patch \
- file://ntpd \
- file://ntp.conf \
- file://ntpdate \
- file://ntpdate.default \
- file://ntpdate.service \
- file://ntpd.service \
- file://sntp.service \
- file://sntp \
- file://ntpd.list \
-"
-
-SRC_URI[sha256sum] = "f65840deab68614d5d7ceb2d0bb9304ff70dcdedd09abb79754a87536b849c19"
-
-# CVE-2016-9312 is only for windows.
-# The other CVEs are not correctly identified because cve-check
-# is not able to check the version correctly (it only checks for 4.2.8 omitting p15 that makes the difference)
-CVE_CHECK_IGNORE += "\
- CVE-2016-9312 \
- CVE-2015-5146 \
- CVE-2015-5300 \
- CVE-2015-7975 \
- CVE-2015-7976 \
- CVE-2015-7977 \
- CVE-2015-7978 \
- CVE-2015-7979 \
- CVE-2015-8138 \
- CVE-2015-8139 \
- CVE-2015-8140 \
- CVE-2015-8158 \
- CVE-2016-1547 \
- CVE-2016-2516 \
- CVE-2016-2517 \
- CVE-2016-2519 \
- CVE-2016-7429 \
- CVE-2016-7433 \
- CVE-2016-9310 \
- CVE-2016-9311 \
-"
-
-
-inherit autotools update-rc.d useradd systemd pkgconfig
-
-# The ac_cv_header_readline_history is to stop ntpdc depending on either
-# readline or curses
-EXTRA_OECONF += "--with-net-snmp-config=no \
- --without-ntpsnmpd \
- ac_cv_header_readline_history_h=no \
- --with-yielding_select=yes \
- --with-locfile=redhat \
- --without-rpath \
- "
-CFLAGS:append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED"
-
-USERADD_PACKAGES = "${PN}"
-NTP_USER_HOME ?= "/var/lib/ntp"
-USERADD_PARAM:${PN} = "--system --home-dir ${NTP_USER_HOME} \
- --no-create-home \
- --shell /bin/false --user-group ntp"
-
-# NB: debug is default-enabled by NTP; keep it default-enabled here.
-PACKAGECONFIG ??= "cap debug refclocks openssl \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
-"
-PACKAGECONFIG[openssl] = "--with-openssl-libdir=${STAGING_LIBDIR} \
- --with-openssl-incdir=${STAGING_INCDIR} \
- --with-crypto, \
- --without-openssl --without-crypto, \
- openssl"
-PACKAGECONFIG[cap] = "--enable-linuxcaps,--disable-linuxcaps,libcap"
-PACKAGECONFIG[readline] = "--with-lineeditlibs,--without-lineeditlibs,readline"
-PACKAGECONFIG[refclocks] = "--enable-all-clocks,--disable-all-clocks,pps-tools"
-PACKAGECONFIG[debug] = "--enable-debugging,--disable-debugging"
-PACKAGECONFIG[mdns] = "ac_cv_header_dns_sd_h=yes,ac_cv_header_dns_sd_h=no,mdns"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
-do_install:append() {
- install -d ${D}${sysconfdir}/init.d
- install -m 644 ${WORKDIR}/ntp.conf ${D}${sysconfdir}
- install -m 755 ${WORKDIR}/ntpd ${D}${sysconfdir}/init.d
- install -d ${D}${bindir}
- install -m 755 ${WORKDIR}/ntpdate ${D}${bindir}/ntpdate-sync
-
- install -m 755 -d ${D}${NTP_USER_HOME}
- chown ntp:ntp ${D}${NTP_USER_HOME}
-
- # Fix hardcoded paths in scripts
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync
- sed -i 's!/usr/bin/!${bindir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync
- sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync
- sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/ntpd ${D}${bindir}/ntpdate-sync
- sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${bindir}/ntpdate-sync
- sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/ntptrace
- sed -i '/use/i use warnings;' ${D}${sbindir}/ntptrace
- sed -i '1s,#!.*perl,#! ${bindir}/env perl,' ${D}${sbindir}/ntp-wait
- sed -i '/use/i use warnings;' ${D}${sbindir}/ntp-wait
- sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/calc_tickadj
- sed -i '/use/i use warnings;' ${D}${sbindir}/calc_tickadj
-
- install -d ${D}/${sysconfdir}/default
- install -m 644 ${WORKDIR}/ntpdate.default ${D}${sysconfdir}/default/ntpdate
- install -m 0644 ${WORKDIR}/sntp ${D}${sysconfdir}/default/
-
- install -d ${D}/${sysconfdir}/network/if-up.d
- ln -s ${bindir}/ntpdate-sync ${D}/${sysconfdir}/network/if-up.d
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/ntpdate.service ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/ntpd.service ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/sntp.service ${D}${systemd_unitdir}/system/
-
- install -d ${D}${systemd_unitdir}/ntp-units.d
- install -m 0644 ${WORKDIR}/ntpd.list ${D}${systemd_unitdir}/ntp-units.d/60-ntpd.list
-
- # Remove an empty libexecdir.
- rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
-}
-
-PACKAGES += "ntpdate sntp ntpdc ntpq ${PN}-tickadj ${PN}-utils"
-# NOTE: you don't need ntpdate, use "ntpd -q -g -x"
-
-# ntp originally includes tickadj. It's split off for inclusion in small firmware images on platforms
-# with wonky clocks (e.g. OpenSlug)
-RDEPENDS:${PN} = "${PN}-tickadj"
-# ntpd & sntp require libgcc for execution due to phtread_cancel/pthread_exit calls
-RDEPENDS:${PN} += "libgcc"
-RDEPENDS:sntp += "libgcc"
-# Handle move from bin to utils package
-RPROVIDES:${PN}-utils = "${PN}-bin"
-RREPLACES:${PN}-utils = "${PN}-bin"
-RCONFLICTS:${PN}-utils = "${PN}-bin"
-# ntpdc and ntpq were split out of ntp-utils
-RDEPENDS:${PN}-utils = "ntpdc ntpq"
-
-SYSTEMD_PACKAGES = "${PN} ntpdate sntp"
-SYSTEMD_SERVICE:${PN} = "ntpd.service"
-SYSTEMD_SERVICE:ntpdate = "ntpdate.service"
-SYSTEMD_SERVICE:sntp = "sntp.service"
-SYSTEMD_AUTO_ENABLE:sntp = "disable"
-
-RPROVIDES:${PN} += "${PN}-systemd"
-RREPLACES:${PN} += "${PN}-systemd"
-RCONFLICTS:${PN} += "${PN}-systemd"
-
-RPROVIDES:ntpdate += "ntpdate-systemd"
-RREPLACES:ntpdate += "ntpdate-systemd"
-RCONFLICTS:ntpdate += "ntpdate-systemd"
-
-RSUGGESTS:${PN} = "iana-etc"
-
-FILES:${PN} = "${sbindir}/ntpd.ntp ${sysconfdir}/ntp.conf ${sysconfdir}/init.d/ntpd \
- ${NTP_USER_HOME} \
- ${systemd_unitdir}/ntp-units.d/60-ntpd.list \
-"
-FILES:${PN}-tickadj = "${sbindir}/tickadj"
-FILES:${PN}-utils = "${sbindir} ${datadir}/ntp/lib"
-RDEPENDS:${PN}-utils += "perl"
-FILES:ntpdate = "${sbindir}/ntpdate \
- ${sysconfdir}/network/if-up.d/ntpdate-sync \
- ${bindir}/ntpdate-sync \
- ${sysconfdir}/default/ntpdate \
- ${systemd_unitdir}/system/ntpdate.service \
-"
-FILES:sntp = "${sbindir}/sntp \
- ${sysconfdir}/default/sntp \
- ${systemd_unitdir}/system/sntp.service \
- "
-FILES:ntpdc = "${sbindir}/ntpdc"
-FILES:ntpq = "${sbindir}/ntpq"
-
-CONFFILES:${PN} = "${sysconfdir}/ntp.conf"
-CONFFILES:ntpdate = "${sysconfdir}/default/ntpdate"
-
-INITSCRIPT_NAME = "ntpd"
-# No dependencies, so just go in at the standard level (20)
-INITSCRIPT_PARAMS = "defaults"
-
-pkg_postinst:ntpdate() {
- if ! grep -q -s ntpdate $D/var/spool/cron/root; then
- echo "adding crontab"
- test -d $D/var/spool/cron || mkdir -p $D/var/spool/cron
- echo "30 * * * * ${bindir}/ntpdate-sync silent" >> $D/var/spool/cron/root
- fi
-}
-
-inherit update-alternatives
-
-ALTERNATIVE_PRIORITY = "100"
-
-ALTERNATIVE:${PN} = "ntpd"
-ALTERNATIVE_LINK_NAME[ntpd] = "${sbindir}/ntpd"
diff --git a/meta-networking/recipes-support/ntp/ntp_4.2.8p17.bb b/meta-networking/recipes-support/ntp/ntp_4.2.8p17.bb
new file mode 100644
index 0000000000..4ed58cd6a4
--- /dev/null
+++ b/meta-networking/recipes-support/ntp/ntp_4.2.8p17.bb
@@ -0,0 +1,184 @@
+SUMMARY = "Network Time Protocol daemon and utilities"
+DESCRIPTION = "The Network Time Protocol (NTP) is used to \
+synchronize the time of a computer client or server to \
+another server or reference time source, such as a radio \
+or satellite receiver or modem."
+HOMEPAGE = "http://support.ntp.org"
+SECTION = "net"
+LICENSE = "NTP"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3a8ffebbcad335abf2c39fec38671eec"
+
+DEPENDS = "libevent"
+
+SRC_URI = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-${PV}.tar.gz \
+ file://ntp-4.2.4_p6-nano.patch \
+ file://reproducibility-fixed-path-to-posix-shell.patch \
+ file://0001-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch \
+ file://0001-test-Fix-build-with-new-compiler-defaults-to-fno-com.patch \
+ file://0001-sntp-Fix-types-in-check-for-pthread_detach.patch \
+ file://ntpd \
+ file://ntp.conf \
+ file://ntpd.service \
+ file://sntp.service \
+ file://sntp \
+ file://ntpd.list \
+"
+
+SRC_URI[sha256sum] = "103dd272e6a66c5b8df07dce5e9a02555fcd6f1397bdfb782237328e89d3a866"
+
+CVE_STATUS[CVE-2016-9312] = "not-applicable-platform: Issue only applies on Windows"
+CVE_STATUS[CVE-2019-11331] = "upstream-wontfix: inherent to RFC 5905 and cannot be fixed without breaking compatibility"
+CVE_STATUS_GROUPS += "CVE_STATUS_NTP"
+CVE_STATUS_NTP[status] = "fixed-version: Yocto CVE check can not handle 'p' in ntp version"
+CVE_STATUS_NTP = " \
+ CVE-2015-5146 \
+ CVE-2015-5300 \
+ CVE-2015-7975 \
+ CVE-2015-7976 \
+ CVE-2015-7977 \
+ CVE-2015-7978 \
+ CVE-2015-7979 \
+ CVE-2015-8138 \
+ CVE-2015-8139 \
+ CVE-2015-8140 \
+ CVE-2015-8158 \
+ CVE-2016-1547 \
+ CVE-2016-2516 \
+ CVE-2016-2517 \
+ CVE-2016-2519 \
+ CVE-2016-7429 \
+ CVE-2016-7433 \
+ CVE-2016-9310 \
+ CVE-2016-9311 \
+"
+
+
+inherit autotools update-rc.d useradd systemd pkgconfig
+
+# The ac_cv_header_readline_history is to stop ntpdc depending on either
+# readline or curses
+EXTRA_OECONF += "--with-net-snmp-config=no \
+ --without-ntpsnmpd \
+ ac_cv_header_readline_history_h=no \
+ --with-yielding_select=yes \
+ --with-locfile=redhat \
+ --without-rpath \
+ "
+CFLAGS:append = " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED"
+
+USERADD_PACKAGES = "${PN}"
+NTP_USER_HOME ?= "/var/lib/ntp"
+USERADD_PARAM:${PN} = "--system --home-dir ${NTP_USER_HOME} \
+ --no-create-home \
+ --shell /bin/false --user-group ntp"
+
+# NB: debug is default-enabled by NTP; keep it default-enabled here.
+PACKAGECONFIG ??= "cap debug refclocks openssl \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+"
+PACKAGECONFIG[openssl] = "--with-openssl-libdir=${STAGING_LIBDIR} \
+ --with-openssl-incdir=${STAGING_INCDIR} \
+ --with-crypto, \
+ --without-openssl --without-crypto, \
+ openssl"
+PACKAGECONFIG[cap] = "--enable-linuxcaps,--disable-linuxcaps,libcap"
+PACKAGECONFIG[readline] = "--with-lineeditlibs,--without-lineeditlibs,readline"
+PACKAGECONFIG[refclocks] = "--enable-all-clocks,--disable-all-clocks,pps-tools"
+PACKAGECONFIG[debug] = "--enable-debugging,--disable-debugging"
+PACKAGECONFIG[mdns] = "ac_cv_header_dns_sd_h=yes,ac_cv_header_dns_sd_h=no,mdns"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 644 ${WORKDIR}/ntp.conf ${D}${sysconfdir}
+ install -m 755 ${WORKDIR}/ntpd ${D}${sysconfdir}/init.d
+
+ install -m 755 -d ${D}${NTP_USER_HOME}
+ chown ntp:ntp ${D}${NTP_USER_HOME}
+
+ # Fix hardcoded paths in scripts
+ sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/ntpd
+ sed -i 's!/usr/bin/!${bindir}/!g' ${D}${sysconfdir}/init.d/ntpd
+ sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/ntpd
+ sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/ntpd
+ sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/ntptrace
+ sed -i '/use/i use warnings;' ${D}${sbindir}/ntptrace
+ sed -i '1s,#!.*perl,#! ${bindir}/env perl,' ${D}${sbindir}/ntp-wait
+ sed -i '/use/i use warnings;' ${D}${sbindir}/ntp-wait
+ sed -i '1s,#!.*perl -w,#! ${bindir}/env perl,' ${D}${sbindir}/calc_tickadj
+ sed -i '/use/i use warnings;' ${D}${sbindir}/calc_tickadj
+
+ install -d ${D}/${sysconfdir}/default
+ install -m 0644 ${WORKDIR}/sntp ${D}${sysconfdir}/default/
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/ntpd.service ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/sntp.service ${D}${systemd_unitdir}/system/
+
+ install -d ${D}${systemd_unitdir}/ntp-units.d
+ install -m 0644 ${WORKDIR}/ntpd.list ${D}${systemd_unitdir}/ntp-units.d/60-ntpd.list
+
+ # Remove the empty libexecdir and bindir.
+ rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
+ rmdir --ignore-fail-on-non-empty ${D}${bindir}
+}
+
+PACKAGES += "sntp ntpdc ntpq ${PN}-tickadj ${PN}-utils"
+
+# ntp originally includes tickadj. It's split off for inclusion in small firmware images on platforms
+# with wonky clocks (e.g. OpenSlug)
+RDEPENDS:${PN} = "${PN}-tickadj"
+# ntpd & sntp require libgcc for execution due to phtread_cancel/pthread_exit calls
+RDEPENDS:${PN} += "libgcc"
+RDEPENDS:sntp += "libgcc"
+# Handle move from bin to utils package
+RPROVIDES:${PN}-utils = "${PN}-bin"
+RREPLACES:${PN}-utils = "${PN}-bin"
+RCONFLICTS:${PN}-utils = "${PN}-bin"
+# ntpdc and ntpq were split out of ntp-utils
+RDEPENDS:${PN}-utils = "ntpdc ntpq \
+ perl-module-lib \
+ perl-module-exporter \
+ perl-module-carp \
+ perl-module-version \
+ perl-module-socket \
+ perl-module-getopt-long \
+ "
+
+SYSTEMD_PACKAGES = "${PN} sntp"
+SYSTEMD_SERVICE:${PN} = "ntpd.service"
+SYSTEMD_SERVICE:sntp = "sntp.service"
+SYSTEMD_AUTO_ENABLE:sntp = "disable"
+
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+
+RSUGGESTS:${PN} = "iana-etc"
+
+FILES:${PN} = "${sbindir}/ntpd.ntp ${sysconfdir}/ntp.conf ${sysconfdir}/init.d/ntpd \
+ ${NTP_USER_HOME} \
+ ${systemd_unitdir}/ntp-units.d/60-ntpd.list \
+"
+FILES:${PN}-tickadj = "${sbindir}/tickadj"
+FILES:${PN}-utils = "${sbindir} ${datadir}/ntp/lib"
+RDEPENDS:${PN}-utils += "perl"
+FILES:sntp = "${sbindir}/sntp \
+ ${sysconfdir}/default/sntp \
+ ${systemd_unitdir}/system/sntp.service \
+ "
+FILES:ntpdc = "${sbindir}/ntpdc"
+FILES:ntpq = "${sbindir}/ntpq"
+
+CONFFILES:${PN} = "${sysconfdir}/ntp.conf"
+
+INITSCRIPT_NAME = "ntpd"
+# No dependencies, so just go in at the standard level (20)
+INITSCRIPT_PARAMS = "defaults"
+
+inherit update-alternatives
+
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE:${PN} = "ntpd"
+ALTERNATIVE_LINK_NAME[ntpd] = "${sbindir}/ntpd"
diff --git a/meta-networking/recipes-support/ntpsec/ntpsec/0001-Update-to-OpenSSL-3.0.0-alpha15.patch b/meta-networking/recipes-support/ntpsec/ntpsec/0001-Update-to-OpenSSL-3.0.0-alpha15.patch
deleted file mode 100644
index 825f6c93c3..0000000000
--- a/meta-networking/recipes-support/ntpsec/ntpsec/0001-Update-to-OpenSSL-3.0.0-alpha15.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From ba368822d0a197cb84c46c911d40d0c52cf9c391 Mon Sep 17 00:00:00 2001
-From: Hal Murray <hmurray@megapathdsl.net>
-Date: Sun, 2 May 2021 22:24:26 -0700
-Subject: [PATCH] Update to OpenSSL 3.0.0-alpha15
-
-Upstream-Status: Backport [https://gitlab.com/NTPsec/ntpsec/-/commit/ba368822d0a197cb84c46c911d40d0c52cf9c391]
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-Signed-off-by: Alex Kiernan <alexk@zuma.ai>
----
- attic/cmac-timing.c | 37 ++++++++++++++-----------------------
- 1 file changed, 14 insertions(+), 23 deletions(-)
-
-diff --git a/attic/cmac-timing.c b/attic/cmac-timing.c
-index c2088db63a4c..464daa76b9e6 100644
---- a/attic/cmac-timing.c
-+++ b/attic/cmac-timing.c
-@@ -225,28 +225,14 @@ static void DoPKEY(
- #if OPENSSL_VERSION_NUMBER > 0x20000000L
- static size_t One_EVP_MAC(
- EVP_MAC_CTX *ctx, /* context */
-- char *cipher,
- uint8_t *key, /* key pointer */
- int keylength, /* key length */
- uint8_t *pkt, /* packet pointer */
- int pktlength /* packet length */
- ) {
-- OSSL_PARAM params[3];
- size_t len = EVP_MAX_MD_SIZE;
-
-- params[0] =
-- OSSL_PARAM_construct_utf8_string("cipher", cipher, 0);
-- params[1] =
-- OSSL_PARAM_construct_octet_string("key", key, keylength);
-- params[2] = OSSL_PARAM_construct_end();
-- if (0 == EVP_MAC_CTX_set_params(ctx, params)) {
-- unsigned long err = ERR_get_error();
-- char * str = ERR_error_string(err, NULL);
-- printf("## Oops, EVP_MAC_CTX_set_params() failed: %s.\n", str);
-- return 0;
-- }
--
-- if (0 == EVP_MAC_init(ctx)) {
-+ if (0 == EVP_MAC_init(ctx, key, keylength, NULL)) {
- unsigned long err = ERR_get_error();
- char * str = ERR_error_string(err, NULL);
- printf("## Oops, EVP_MAC_init() failed: %s.\n", str);
-@@ -255,13 +241,13 @@ static size_t One_EVP_MAC(
- if (0 == EVP_MAC_update(ctx, pkt, pktlength)) {
- unsigned long err = ERR_get_error();
- char * str = ERR_error_string(err, NULL);
-- printf("## Oops, EVP_MAC_init() failed: %s.\n", str);
-+ printf("## Oops, EVP_MAC_update() failed: %s.\n", str);
- return 0;
- }
- if (0 == EVP_MAC_final(ctx, answer, &len, sizeof(answer))) {
- unsigned long err = ERR_get_error();
- char * str = ERR_error_string(err, NULL);
-- printf("## Oops, EVP_MAC_init() failed: %s.\n", str);
-+ printf("## Oops, EVP_MAC_final() failed: %s.\n", str);
- return 0;
- }
- return len;
-@@ -290,7 +276,7 @@ static void Do_EVP_MAC(
-
- clock_gettime(CLOCK_MONOTONIC, &start);
- for (int i = 0; i < SAMPLESIZE; i++) {
-- digestlength = One_EVP_MAC(evp, cbc, key, keylength, pkt, pktlength);
-+ digestlength = One_EVP_MAC(evp, key, keylength, pkt, pktlength);
- if (0 == digestlength) break;
- }
- clock_gettime(CLOCK_MONOTONIC, &stop);
-@@ -305,26 +291,31 @@ static size_t One_EVP_MAC2(
- uint8_t *pkt, /* packet pointer */
- int pktlength /* packet length */
- ) {
-+ EVP_MAC_CTX *dup;
- size_t len = EVP_MAX_MD_SIZE;
-
-- if (0 == EVP_MAC_init(ctx)) {
-+ // dup = ctx;
-+ dup = EVP_MAC_CTX_dup(ctx);
-+
-+ if (0 == EVP_MAC_init(dup, NULL, 0, NULL)) {
- unsigned long err = ERR_get_error();
- char * str = ERR_error_string(err, NULL);
- printf("## Oops, EVP_MAC_init() failed: %s.\n", str);
- return 0;
- }
-- if (0 == EVP_MAC_update(ctx, pkt, pktlength)) {
-+ if (0 == EVP_MAC_update(dup, pkt, pktlength)) {
- unsigned long err = ERR_get_error();
- char * str = ERR_error_string(err, NULL);
-- printf("## Oops, EVP_MAC_init() failed: %s.\n", str);
-+ printf("## Oops, EVP_MAC_update() failed: %s.\n", str);
- return 0;
- }
-- if (0 == EVP_MAC_final(ctx, answer, &len, sizeof(answer))) {
-+ if (0 == EVP_MAC_final(dup, answer, &len, sizeof(answer))) {
- unsigned long err = ERR_get_error();
- char * str = ERR_error_string(err, NULL);
-- printf("## Oops, EVP_MAC_init() failed: %s.\n", str);
-+ printf("## Oops, EVP_MAC_final() failed: %s.\n", str);
- return 0;
- }
-+ EVP_MAC_CTX_free(dup);
- return len;
- }
-
---
-2.33.0
-
diff --git a/meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-clone3-for-glibc-2.34-in-se.patch b/meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-clone3-for-glibc-2.34-in-se.patch
deleted file mode 100644
index 112aaa2a07..0000000000
--- a/meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-clone3-for-glibc-2.34-in-se.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From d474682bb30b93d04b7b01c2dd09832e483265ed Mon Sep 17 00:00:00 2001
-From: Sam James <sam@gentoo.org>
-Date: Sun, 14 Nov 2021 08:54:58 +0000
-Subject: [PATCH] ntpd/ntp_sandbox.c: allow clone3 for glibc-2.34 in seccomp
- filter
-
-Bug: https://bugs.gentoo.org/823692
-Fixes: https://gitlab.com/NTPsec/ntpsec/-/issues/713
-Signed-off-by: Sam James <sam@gentoo.org>
-Upstream-Status: Backport [https://gitlab.com/NTPsec/ntpsec/-/commit/d474682bb30b93d04b7b01c2dd09832e483265ed]
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-Signed-off-by: Alex Kiernan <alexk@zuma.ai>
----
- ntpd/ntp_sandbox.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/ntpd/ntp_sandbox.c b/ntpd/ntp_sandbox.c
-index e66faaa8cbb0..3d6bccdfcf77 100644
---- a/ntpd/ntp_sandbox.c
-+++ b/ntpd/ntp_sandbox.c
-@@ -401,6 +401,7 @@ int scmp_sc[] = {
- * rather than generate a trap.
- */
- SCMP_SYS(clone), /* threads */
-+ SCMP_SYS(clone3),
- SCMP_SYS(kill), /* generate signal */
- SCMP_SYS(madvise),
- SCMP_SYS(mprotect),
---
-2.34.1
-
diff --git a/meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-newfstatat-on-all-archs-for.patch b/meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-newfstatat-on-all-archs-for.patch
deleted file mode 100644
index 3bec2cea77..0000000000
--- a/meta-networking/recipes-support/ntpsec/ntpsec/0001-ntpd-ntp_sandbox.c-allow-newfstatat-on-all-archs-for.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From a6c0847582305aaab122d54b635954829812922f Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alexk@zuma.ai>
-Date: Thu, 30 Dec 2021 09:32:26 +0000
-Subject: [PATCH 1/2] ntpd/ntp_sandbox.c: allow newfstatat on all archs for
- glibc-2.34 in seccomp filter
-
-On Yocto Poky, newfstatat is used on (at least) arm64, x86_64 and
-riscv64:
-
- 2021-12-30T09:32:04 ntpd[341]: ERR: SIGSYS: got a trap.
- 2021-12-30T09:32:04 ntpd[341]: ERR: SIGSYS/seccomp bad syscall 262/0xc000003e
-
-Upstream-Status: Backport [https://gitlab.com/NTPsec/ntpsec/-/commit/a6c0847582305aaab122d54b635954829812922f]
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-Signed-off-by: Alex Kiernan <alexk@zuma.ai>
----
- ntpd/ntp_sandbox.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ntpd/ntp_sandbox.c b/ntpd/ntp_sandbox.c
-index 3d6bccdfcf77..1ae82a671344 100644
---- a/ntpd/ntp_sandbox.c
-+++ b/ntpd/ntp_sandbox.c
-@@ -349,6 +349,7 @@ int scmp_sc[] = {
- SCMP_SYS(lseek),
- SCMP_SYS(membarrier), /* Needed on Alpine 3.11.3 */
- SCMP_SYS(munmap),
-+ SCMP_SYS(newfstatat),
- SCMP_SYS(open),
- #ifdef __NR_openat
- SCMP_SYS(openat), /* SUSE */
-@@ -452,7 +453,6 @@ int scmp_sc[] = {
- #endif
- #if defined(__aarch64__)
- SCMP_SYS(faccessat),
-- SCMP_SYS(newfstatat),
- SCMP_SYS(renameat),
- SCMP_SYS(linkat),
- SCMP_SYS(unlinkat),
---
-2.34.1
-
diff --git a/meta-networking/recipes-support/ntpsec/ntpsec/0001-wscript-Add-BISONFLAGS-support.patch b/meta-networking/recipes-support/ntpsec/ntpsec/0001-wscript-Add-BISONFLAGS-support.patch
new file mode 100644
index 0000000000..fb29fdc47e
--- /dev/null
+++ b/meta-networking/recipes-support/ntpsec/ntpsec/0001-wscript-Add-BISONFLAGS-support.patch
@@ -0,0 +1,31 @@
+From 792cb4f9d13450251c6344eed2b35f382c98df0d Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alexk@zuma.ai>
+Date: Thu, 19 Jan 2023 13:00:45 +0000
+Subject: [PATCH] wscript: Add BISONFLAGS support
+
+---
+Upstream-Status: Pending
+
+ wscript | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/wscript b/wscript
+index 7329d6e46889..de51f1e9cdd9 100644
+--- a/wscript
++++ b/wscript
+@@ -140,6 +140,7 @@ def configure(ctx):
+ # Ensure m4 is present, or bison will fail with SIGPIPE
+ ctx.find_program('m4')
+ ctx.load('bison')
++ ctx.add_os_flags('BISONFLAGS')
+
+ for opt in opt_map:
+ ctx.env[opt] = opt_map[opt]
+@@ -911,6 +912,7 @@ int main(int argc, char **argv) {
+ msg_setting("CFLAGS", " ".join(ctx.env.CFLAGS))
+ msg_setting("LDFLAGS", " ".join(ctx.env.LDFLAGS))
+ msg_setting("LINKFLAGS_NTPD", " ".join(ctx.env.LINKFLAGS_NTPD))
++ msg_setting("BISONFLAGS", ctx.env.BISONFLAGS)
+ msg_setting("PREFIX", ctx.env.PREFIX)
+ msg_setting("LIBDIR", ctx.env.LIBDIR)
+ msg_setting("Droproot Support", droproot_type)
diff --git a/meta-networking/recipes-support/ntpsec/ntpsec/0001-wscript-Widen-the-search-for-tags.patch b/meta-networking/recipes-support/ntpsec/ntpsec/0001-wscript-Widen-the-search-for-tags.patch
deleted file mode 100644
index 98c62eed49..0000000000
--- a/meta-networking/recipes-support/ntpsec/ntpsec/0001-wscript-Widen-the-search-for-tags.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 9a7dead72f41e79979625c9bdef2fb638427d3d6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 22 Aug 2022 20:54:17 -0700
-Subject: [PATCH] wscript: Widen the search for tags
-
-Default is to look for annotated tags, howveer when using devtool we
-create our own git tree from release tarballs which will have tags but
-they are not annotated, therefore broaden the search to include all tags
-
-Upstream-Status: Inappropriate [OE-specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- wscript | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/wscript b/wscript
-index 879ded1..dff835d 100644
---- a/wscript
-+++ b/wscript
-@@ -177,7 +177,7 @@ def configure(ctx):
- if build_desc:
- build_desc = ' ' + build_desc
- if ctx.env.BIN_GIT:
-- cmd = ctx.env.BIN_GIT + shlex.split("describe --dirty")
-+ cmd = ctx.env.BIN_GIT + shlex.split("describe --tags --dirty")
- git_short_hash = ctx.cmd_and_log(cmd).strip()
- git_short_hash = '-'.join(git_short_hash.split('-')[1:])
-
diff --git a/meta-networking/recipes-support/ntpsec/ntpsec/0002-ntpd-ntp_sandbox.c-match-riscv-to-aarch-in-seccomp-f.patch b/meta-networking/recipes-support/ntpsec/ntpsec/0002-ntpd-ntp_sandbox.c-match-riscv-to-aarch-in-seccomp-f.patch
deleted file mode 100644
index 705a87bdfa..0000000000
--- a/meta-networking/recipes-support/ntpsec/ntpsec/0002-ntpd-ntp_sandbox.c-match-riscv-to-aarch-in-seccomp-f.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 0f94870b84e68448f16b1304058bde4628dafde5 Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alexk@zuma.ai>
-Date: Thu, 30 Dec 2021 10:41:20 +0000
-Subject: [PATCH 2/2] ntpd/ntp_sandbox.c: match riscv to aarch in seccomp
- filter
-
-On Yocto Poky, faccessat (et al) are also used on riscv64:
-
- 2018-03-09T12:35:32 ntpd[341]: ERR: SIGSYS: got a trap.
- 2018-03-09T12:35:32 ntpd[341]: ERR: SIGSYS/seccomp bad syscall 48/0xc00000f3
-
-Upstream-Status: Backport [https://gitlab.com/NTPsec/ntpsec/-/commit/0f94870b84e68448f16b1304058bde4628dafde5]
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-Signed-off-by: Alex Kiernan <alexk@zuma.ai>
----
- ntpd/ntp_sandbox.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ntpd/ntp_sandbox.c b/ntpd/ntp_sandbox.c
-index 1ae82a671344..4a14ae224dc6 100644
---- a/ntpd/ntp_sandbox.c
-+++ b/ntpd/ntp_sandbox.c
-@@ -451,7 +451,7 @@ int scmp_sc[] = {
- /* gentoo 64-bit and 32-bit, Intel and Arm use mmap */
- SCMP_SYS(mmap),
- #endif
--#if defined(__aarch64__)
-+#if defined(__aarch64__) || defined(__riscv)
- SCMP_SYS(faccessat),
- SCMP_SYS(renameat),
- SCMP_SYS(linkat),
---
-2.34.1
-
diff --git a/meta-networking/recipes-support/ntpsec/ntpsec_1.2.1.bb b/meta-networking/recipes-support/ntpsec/ntpsec_1.2.1.bb
deleted file mode 100644
index e975f903f9..0000000000
--- a/meta-networking/recipes-support/ntpsec/ntpsec_1.2.1.bb
+++ /dev/null
@@ -1,127 +0,0 @@
-SUMMARY = "The Network Time Protocol suite, refactored"
-HOMEPAGE = "https://www.ntpsec.org/"
-
-LICENSE = "CC-BY-4.0 & BSD-2-Clause & NTP & BSD-3-Clause & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=0520591566b6ed3a9ced8b15b4d4abf9 \
- file://libjsmn/LICENSE;md5=38118982429881235de8adf478a8e75d \
- file://docs/copyright.adoc;md5=9a1e3fce4b630078cb67ba2b619d2b13 \
- file://libaes_siv/COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-DEPENDS += "bison-native \
- openssl \
- python3"
-
-SRC_URI = "https://ftp.ntpsec.org/pub/releases/ntpsec-${PV}.tar.gz \
- file://0001-Update-to-OpenSSL-3.0.0-alpha15.patch \
- file://0001-ntpd-ntp_sandbox.c-allow-clone3-for-glibc-2.34-in-se.patch \
- file://0001-ntpd-ntp_sandbox.c-allow-newfstatat-on-all-archs-for.patch \
- file://0002-ntpd-ntp_sandbox.c-match-riscv-to-aarch-in-seccomp-f.patch \
- file://volatiles.ntpsec \
- file://0001-wscript-Widen-the-search-for-tags.patch \
- "
-
-SRC_URI[sha256sum] = "f2684835116c80b8f21782a5959a805ba3c44e3a681dd6c17c7cb00cc242c27a"
-
-UPSTREAM_CHECK_URI = "ftp://ftp.ntpsec.org/pub/releases/"
-
-inherit pkgconfig python3-dir python3targetconfig systemd update-alternatives update-rc.d useradd waf features_check
-
-# RDEPENDS on gnuplot with this restriction
-REQUIRED_DISTRO_FEATURES = "x11"
-
-PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'seccomp systemd', d)} \
- cap \
- leap-smear \
- mdns \
- mssntp \
- nts \
- refclocks"
-
-PACKAGECONFIG:remove:riscv32 = "seccomp"
-
-PACKAGECONFIG[cap] = ",,libcap"
-PACKAGECONFIG[docs] = "--enable-doc --enable-manpage,--disable-doc --disable-manpage,"
-PACKAGECONFIG[leap-smear] = "--enable-leap-smear"
-PACKAGECONFIG[mdns] = ",,mdns"
-PACKAGECONFIG[mssntp] = "--enable-mssntp"
-PACKAGECONFIG[nts] = ",--disable-nts"
-PACKAGECONFIG[refclocks] = "--refclock=all,,pps-tools"
-PACKAGECONFIG[seccomp] = "--enable-seccomp,,libseccomp"
-PACKAGECONFIG[systemd] = ",,systemd"
-
-CC[unexport] = "1"
-CFLAGS[unexport] = "1"
-LDFLAGS[unexport] = "1"
-
-export PYTHON_VERSION = "${PYTHON_BASEVERSION}"
-export PYTAG = "cpython${@ d.getVar('PYTHON_BASEVERSION').replace('.', '')}"
-export pyext_PATTERN = "%s.so"
-export PYTHON_LDFLAGS = "-lpthread -ldl"
-
-CFLAGS:append = " -I${PYTHON_INCLUDE_DIR} -D_GNU_SOURCE"
-
-EXTRA_OECONF = "--cross-compiler='${CC}' \
- --cross-cflags='${CFLAGS}' \
- --cross-ldflags='${LDFLAGS}' \
- --pyshebang=${bindir}/python3 \
- --pythondir=${PYTHON_SITEPACKAGES_DIR} \
- --pythonarchdir=${PYTHON_SITEPACKAGES_DIR} \
- --enable-debug \
- --enable-debug-gdb \
- --enable-early-droproot"
-
-EXTRA_OEWAF_BUILD ?= "-v"
-
-NTP_USER_HOME ?= "/var/lib/ntp"
-
-do_install:append() {
- install -d ${D}${sysconfdir}/init.d
- install -m 755 ${S}/etc/rc/ntpd ${D}${sysconfdir}/init.d
- cp -r ${S}/etc/ntp.d ${D}${sysconfdir}
-
- sed -e 's:@NTP_USER_HOME@:${NTP_USER_HOME}:g' ${WORKDIR}/volatiles.ntpsec >${T}/volatiles.ntpsec
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- cp ${B}/main/etc/* ${D}${systemd_system_unitdir}
- awk '{print $1, $5, $4, $2, $3, "-"}' ${T}/volatiles.ntpsec >${T}/tmpfiles.ntpsec
- install -D -m 0644 ${T}/tmpfiles.ntpsec ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
- else
- install -D -m 0644 ${T}/volatiles.ntpsec ${D}${sysconfdir}/default/volatiles/99_${BPN}
- fi
-}
-
-PACKAGE_BEFORE_PN = "${PN}-python ${PN}-utils ${PN}-viz"
-
-FILES:${PN} += "${nonarch_libdir}/tmpfiles.d/ntpsec.conf"
-FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR} \
- ${libdir}/libntpc.so.*"
-FILES:${PN}-utils = "${bindir}/ntpdig \
- ${bindir}/ntpkeygen \
- ${bindir}/ntpleapfetch \
- ${bindir}/ntpmon \
- ${bindir}/ntpq \
- ${bindir}/ntpsnmpd \
- ${bindir}/ntpsweep \
- ${bindir}/ntptrace \
- ${bindir}/ntpwait"
-FILES:${PN}-viz = "${bindir}/ntplogtemp \
- ${bindir}/ntpviz"
-
-RDEPENDS:${PN} += "libgcc"
-RDEPENDS:${PN}-utils += "${PN}-python python3-core"
-RDEPENDS:${PN}-viz += "gnuplot ${PN}-python python3-core python3-compression python3-ctypes python3-logging python3-shell"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --home-dir ${NTP_USER_HOME} \
- --no-create-home \
- --shell /bin/false --user-group ntp"
-
-INITSCRIPT_NAME = "ntpd"
-
-SYSTEMD_PACKAGES = "${PN} ${PN}-viz"
-SYSTEMD_SERVICE:${PN} = "ntpd.service ntp-wait.service"
-SYSTEMD_SERVICE:${PN}-viz = "ntplogtemp.service ntpviz-weekly.timer ntpviz-weekly.service ntpviz-daily.timer ntpviz-daily.service ntplogtemp.timer"
-
-ALTERNATIVE_PRIORITY = "80"
-
-ALTERNATIVE:${PN} = "ntpd"
-ALTERNATIVE_LINK_NAME[ntpd] = "${sbindir}/ntpd"
diff --git a/meta-networking/recipes-support/ntpsec/ntpsec_1.2.2a.bb b/meta-networking/recipes-support/ntpsec/ntpsec_1.2.2a.bb
new file mode 100644
index 0000000000..9ad97e7689
--- /dev/null
+++ b/meta-networking/recipes-support/ntpsec/ntpsec_1.2.2a.bb
@@ -0,0 +1,129 @@
+SUMMARY = "The Network Time Protocol suite, refactored"
+HOMEPAGE = "https://www.ntpsec.org/"
+
+LICENSE = "CC-BY-4.0 & BSD-2-Clause & NTP & BSD-3-Clause & MIT"
+LIC_FILES_CHKSUM = "file://LICENSES/BSD-2;md5=653830da7b770a32f6f50f6107e0b186 \
+ file://LICENSES/BSD-3;md5=55e9dcf6a625a2dcfcda4ef6a647fbfd \
+ file://LICENSES/CC-BY-4.0;md5=2ab724713fdaf49e4523c4503bfd068d \
+ file://LICENSES/MIT;md5=5a9dfc801af3eb49df2055c9b07918b2 \
+ file://LICENSES/NTP;md5=cb56b7747f86157c78ca81f224806694"
+
+DEPENDS += "bison-native \
+ openssl \
+ python3"
+
+SRC_URI = "https://ftp.ntpsec.org/pub/releases/ntpsec-${PV}.tar.gz \
+ file://volatiles.ntpsec \
+ file://0001-wscript-Add-BISONFLAGS-support.patch \
+ "
+
+SRC_URI[sha256sum] = "e0ce93af222a0a9860e6f5a51aadba9bb5ca601d80b2aea118a62f0a3226950e"
+
+UPSTREAM_CHECK_URI = "ftp://ftp.ntpsec.org/pub/releases/"
+
+inherit pkgconfig python3-dir python3targetconfig systemd update-alternatives update-rc.d useradd waf features_check
+
+# RDEPENDS on gnuplot with this restriction
+REQUIRED_DISTRO_FEATURES = "x11"
+
+PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'seccomp systemd', d)} \
+ cap \
+ leap-smear \
+ mdns \
+ mssntp \
+ nts \
+ refclocks"
+
+PACKAGECONFIG:remove:riscv32 = "seccomp"
+
+PACKAGECONFIG[cap] = ",,libcap"
+PACKAGECONFIG[docs] = "--enable-doc --enable-manpage,--disable-doc --disable-manpage,"
+PACKAGECONFIG[leap-smear] = "--enable-leap-smear"
+PACKAGECONFIG[mdns] = ",,mdns"
+PACKAGECONFIG[mssntp] = "--enable-mssntp"
+PACKAGECONFIG[nts] = ",--disable-nts"
+PACKAGECONFIG[refclocks] = "--refclock=all,,pps-tools"
+PACKAGECONFIG[seccomp] = "--enable-seccomp,,libseccomp"
+PACKAGECONFIG[systemd] = ",,systemd"
+
+CC[unexport] = "1"
+CFLAGS[unexport] = "1"
+LDFLAGS[unexport] = "1"
+
+export PYTHON_VERSION = "${PYTHON_BASEVERSION}"
+export PYTAG = "cpython${@ d.getVar('PYTHON_BASEVERSION').replace('.', '')}"
+export pyext_PATTERN = "%s.so"
+export PYTHON_LDFLAGS = "-lpthread -ldl"
+
+CFLAGS:append = " -I${PYTHON_INCLUDE_DIR} -D_GNU_SOURCE"
+
+EXTRA_OECONF = "--cross-compiler='${CC}' \
+ --cross-cflags='${CFLAGS}' \
+ --cross-ldflags='${LDFLAGS}' \
+ --pyshebang=${bindir}/python3 \
+ --pythondir=${PYTHON_SITEPACKAGES_DIR} \
+ --pythonarchdir=${PYTHON_SITEPACKAGES_DIR} \
+ --enable-debug-gdb \
+ --enable-early-droproot"
+
+EXTRA_OEWAF_BUILD ?= "-v"
+
+NTP_USER_HOME ?= "/var/lib/ntp"
+
+BISONFLAGS = "--file-prefix-map=${WORKDIR}=${TARGET_DBGSRC_DIR}"
+
+do_configure:prepend() {
+ export BISONFLAGS="${BISONFLAGS}"
+}
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${S}/etc/rc/ntpd ${D}${sysconfdir}/init.d
+ cp -r ${S}/etc/ntp.d ${D}${sysconfdir}
+
+ sed -e 's:@NTP_USER_HOME@:${NTP_USER_HOME}:g' ${WORKDIR}/volatiles.ntpsec >${T}/volatiles.ntpsec
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ cp ${B}/main/etc/* ${D}${systemd_system_unitdir}
+ awk '{print $1, $5, $4, $2, $3, "-"}' ${T}/volatiles.ntpsec >${T}/tmpfiles.ntpsec
+ install -D -m 0644 ${T}/tmpfiles.ntpsec ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
+ else
+ install -D -m 0644 ${T}/volatiles.ntpsec ${D}${sysconfdir}/default/volatiles/99_${BPN}
+ fi
+}
+
+PACKAGE_BEFORE_PN = "${PN}-python ${PN}-utils ${PN}-viz"
+
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d/ntpsec.conf"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR} \
+ ${libdir}/libntpc.so.*"
+FILES:${PN}-utils = "${bindir}/ntpdig \
+ ${bindir}/ntpkeygen \
+ ${bindir}/ntpleapfetch \
+ ${bindir}/ntpmon \
+ ${bindir}/ntpq \
+ ${bindir}/ntpsnmpd \
+ ${bindir}/ntpsweep \
+ ${bindir}/ntptrace \
+ ${bindir}/ntpwait"
+FILES:${PN}-viz = "${bindir}/ntplogtemp \
+ ${bindir}/ntpviz"
+
+RDEPENDS:${PN} += "libgcc"
+RDEPENDS:${PN}-utils += "${PN}-python python3-core"
+RDEPENDS:${PN}-viz += "gnuplot ${PN}-python python3-core python3-compression python3-ctypes python3-logging python3-shell"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --home-dir ${NTP_USER_HOME} \
+ --no-create-home \
+ --shell /bin/false --user-group ntp"
+
+INITSCRIPT_NAME = "ntpd"
+
+SYSTEMD_PACKAGES = "${PN} ${PN}-viz"
+SYSTEMD_SERVICE:${PN} = "ntpd.service ntp-wait.service"
+SYSTEMD_SERVICE:${PN}-viz = "ntplogtemp.service ntpviz-weekly.timer ntpviz-weekly.service ntpviz-daily.timer ntpviz-daily.service ntplogtemp.timer"
+
+ALTERNATIVE_PRIORITY = "80"
+
+ALTERNATIVE:${PN} = "ntpd"
+ALTERNATIVE_LINK_NAME[ntpd] = "${sbindir}/ntpd"
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Add-resolv_compat.h-for-musl-builds.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Add-resolv_compat.h-for-musl-builds.patch
index c09bc12520..96270f860b 100644
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Add-resolv_compat.h-for-musl-builds.patch
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Add-resolv_compat.h-for-musl-builds.patch
@@ -1,4 +1,4 @@
-From f93b680ec1a816ffe90d5f1bce609f8bf68a456e Mon Sep 17 00:00:00 2001
+From 148aadcc1b61da6f6b9ee4bcd35c38b7fbaeb8a8 Mon Sep 17 00:00:00 2001
From: Trevor Gamblin <trevor.gamblin@windriver.com>
Date: Wed, 14 Apr 2021 10:24:52 -0400
Subject: [PATCH] Add resolv_compat.h for musl builds
@@ -10,7 +10,6 @@ https://gitweb.gentoo.org/proj/musl.git/tree/dev-qt/qtwebengine/files/qtwebengin
Upstream-Status: Pending
Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-
---
open-vm-tools/lib/nicInfo/nicInfoPosix.c | 4 +++
open-vm-tools/lib/nicInfo/resolv_compat.h | 30 +++++++++++++++++++++++
@@ -18,7 +17,7 @@ Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
create mode 100644 open-vm-tools/lib/nicInfo/resolv_compat.h
diff --git a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
-index c56b73cf..8ae3b2f7 100644
+index 6f20547b2..f5064a9c0 100644
--- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
@@ -70,6 +70,10 @@
@@ -34,7 +33,7 @@ index c56b73cf..8ae3b2f7 100644
*
diff --git a/open-vm-tools/lib/nicInfo/resolv_compat.h b/open-vm-tools/lib/nicInfo/resolv_compat.h
new file mode 100644
-index 00000000..d768464b
+index 000000000..d768464b9
--- /dev/null
+++ b/open-vm-tools/lib/nicInfo/resolv_compat.h
@@ -0,0 +1,30 @@
@@ -68,3 +67,6 @@ index 00000000..d768464b
+}
+#endif
+
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch
deleted file mode 100644
index 61a681f17f..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From caf80e220b055dbce259078be96e899dc78ec1d2 Mon Sep 17 00:00:00 2001
-From: Bartosz Brachaczek <b.brachaczek@gmail.com>
-Date: Tue, 12 Nov 2019 14:31:08 +0100
-Subject: [PATCH] Make HgfsConvertFromNtTimeNsec aware of 64-bit time_t on i386
-
-I verified that this function behaves as expected on x86_64, i386 with
-32-bit time_t, and i386 with 64-bit time_t for the following values of
-ntTtime:
-
-UNIX_EPOCH-1, UNIX_EPOCH, UNIX_EPOCH+1, UNIX_S32_MAX-1, UNIX_S32_MAX,
-UNIX_S32_MAX+1, UNIX_S32_MAX*2+1
-
-I did not verify whether the use of Div643264 is optimal, performance
-wise.
-
-Upstream-Status: Submitted [https://github.com/vmware/open-vm-tools/pull/387]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/hgfs/hgfsUtil.c | 34 +++++++++++++++++--------------
- 1 file changed, 19 insertions(+), 15 deletions(-)
-
-diff --git a/open-vm-tools/lib/hgfs/hgfsUtil.c b/open-vm-tools/lib/hgfs/hgfsUtil.c
-index cc580ab8..49b10040 100644
---- a/open-vm-tools/lib/hgfs/hgfsUtil.c
-+++ b/open-vm-tools/lib/hgfs/hgfsUtil.c
-@@ -110,23 +110,21 @@ HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format
- uint64 ntTime) // IN: Time in Windows NT format
- {
- #ifdef __i386__
-- uint32 sec;
-- uint32 nsec;
-+ uint64 sec64;
-+ uint32 sec32, nsec;
-+#endif
-
- ASSERT(unixTime);
-- /* We assume that time_t is 32bit */
-- ASSERT_ON_COMPILE(sizeof (unixTime->tv_sec) == 4);
-
-- /* Cap NT time values that are outside of Unix time's range */
-+ if (sizeof (unixTime->tv_sec) == 4) {
-+ /* Cap NT time values that are outside of Unix time's range */
-
-- if (ntTime >= UNIX_S32_MAX) {
-- unixTime->tv_sec = 0x7FFFFFFF;
-- unixTime->tv_nsec = 0;
-- return 1;
-+ if (ntTime >= UNIX_S32_MAX) {
-+ unixTime->tv_sec = 0x7FFFFFFF;
-+ unixTime->tv_nsec = 0;
-+ return 1;
-+ }
- }
--#else
-- ASSERT(unixTime);
--#endif
-
- if (ntTime < UNIX_EPOCH) {
- unixTime->tv_sec = 0;
-@@ -135,9 +133,15 @@ HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format
- }
-
- #ifdef __i386__
-- Div643232(ntTime - UNIX_EPOCH, 10000000, &sec, &nsec);
-- unixTime->tv_sec = sec;
-- unixTime->tv_nsec = nsec * 100;
-+ if (sizeof (unixTime->tv_sec) == 4) {
-+ Div643232(ntTime - UNIX_EPOCH, 10000000, &sec32, &nsec);
-+ unixTime->tv_sec = sec32;
-+ unixTime->tv_nsec = nsec * 100;
-+ } else {
-+ Div643264(ntTime - UNIX_EPOCH, 10000000, &sec64, &nsec);
-+ unixTime->tv_sec = sec64;
-+ unixTime->tv_nsec = nsec * 100;
-+ }
- #else
- unixTime->tv_sec = (ntTime - UNIX_EPOCH) / 10000000;
- unixTime->tv_nsec = ((ntTime - UNIX_EPOCH) % 10000000) * 100;
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
index a711f5e5d2..69c8253117 100644
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
@@ -1,4 +1,4 @@
-From fc9bf1ce9f1a21150b10736a1c968d4ca6d4eaa3 Mon Sep 17 00:00:00 2001
+From 547d05ca417c6b75ad06bf3119e1df8869742a70 Mon Sep 17 00:00:00 2001
From: Martin Kelly <mkelly@xevo.com>
Date: Fri, 7 Apr 2017 15:20:30 -0700
Subject: [PATCH] configure.ac: don't use dnet-config
@@ -14,9 +14,11 @@ Signed-off-by: Martin Kelly <mkelly@xevo.com>
open-vm-tools/configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
+diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
+index 26bfdb682..9e2a1d6e3 100644
--- a/open-vm-tools/configure.ac
+++ b/open-vm-tools/configure.ac
-@@ -937,7 +937,7 @@ if test "$with_dnet" = "yes"; then
+@@ -1227,7 +1227,7 @@ if test "$with_dnet" = "yes"; then
AC_VMW_CHECK_LIB([dnet],
[DNET],
[],
@@ -25,7 +27,7 @@ Signed-off-by: Martin Kelly <mkelly@xevo.com>
[],
[dnet.h],
[intf_open],
-@@ -947,7 +947,7 @@ if test "$with_dnet" = "yes"; then
+@@ -1237,7 +1237,7 @@ if test "$with_dnet" = "yes"; then
if test $have_dnet = "no"; then
AC_MSG_ERROR(
@@ -34,3 +36,6 @@ Signed-off-by: Martin Kelly <mkelly@xevo.com>
fi
fi
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-open-vm-tools-Correct-include-path-for-poll.h.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-open-vm-tools-Correct-include-path-for-poll.h.patch
deleted file mode 100644
index d9823bdd5f..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-open-vm-tools-Correct-include-path-for-poll.h.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 2cefed441753b012c385e2d3ea5374b4d67e5696 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 7 Feb 2022 13:32:32 -0800
-Subject: [PATCH] open-vm-tools: Correct include path for poll.h
-
-sys/poll.h is deprecated and musl calls it out explicitly.
-
-Fixes
-| In file included from ../../../../git/open-vm-tools/services/plugins/gdp/gdpPlugin.c:35:
-| /mnt/b/yoe/master/build/tmp/work/core2-32-yoe-linux-musl/open-vm-tools/11.3.5-r0/recipe-sysroot/usr/include/sys/poll.h:1:2: error: redirecting incorrect #include <sys/poll.h> to <poll.h> [-Werror,-W#warnings]
-| #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
-| ^
-| 1 error generated.
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/services/plugins/gdp/gdpPlugin.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/open-vm-tools/services/plugins/gdp/gdpPlugin.c b/open-vm-tools/services/plugins/gdp/gdpPlugin.c
-index 2bba2937e..025339595 100644
---- a/open-vm-tools/services/plugins/gdp/gdpPlugin.c
-+++ b/open-vm-tools/services/plugins/gdp/gdpPlugin.c
-@@ -32,7 +32,7 @@
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/eventfd.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <unistd.h>
- #endif
-
---
-2.35.1
-
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0002-Use-configure-test-for-struct-timespec.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0002-Use-configure-test-for-struct-timespec.patch
new file mode 100644
index 0000000000..1029252c76
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0002-Use-configure-test-for-struct-timespec.patch
@@ -0,0 +1,50 @@
+From 74ab6b05fcba32031255624a31676e2aa0db133f Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 09:03:00 +0000
+Subject: [PATCH] Use configure test for struct timespec
+
+Use the configure script to test for struct time spec instead of trying
+to keep track of what platforms has it.
+
+Upstream-Status: Pending
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/configure.ac | 1 +
+ open-vm-tools/lib/include/hgfsUtil.h | 8 +-------
+ 2 files changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
+index 9e2a1d6e3..2f34f6eda 100644
+--- a/open-vm-tools/configure.ac
++++ b/open-vm-tools/configure.ac
+@@ -1441,6 +1441,7 @@ AC_TYPE_OFF_T
+ AC_TYPE_PID_T
+ AC_TYPE_SIZE_T
+ AC_CHECK_MEMBERS([struct stat.st_rdev])
++AC_CHECK_MEMBERS([struct timespec.tv_sec],[],[],[[#include <time.h>]])
+ AC_HEADER_TIME
+ AC_STRUCT_TM
+ AC_C_VOLATILE
+diff --git a/open-vm-tools/lib/include/hgfsUtil.h b/open-vm-tools/lib/include/hgfsUtil.h
+index 609f4c000..a3a022d42 100644
+--- a/open-vm-tools/lib/include/hgfsUtil.h
++++ b/open-vm-tools/lib/include/hgfsUtil.h
+@@ -53,13 +53,7 @@
+ # include <time.h>
+ # endif
+ # include "vm_basic_types.h"
+-# if !defined _STRUCT_TIMESPEC && \
+- !defined _TIMESPEC_DECLARED && \
+- !defined __timespec_defined && \
+- !defined sun && \
+- !defined __FreeBSD__ && \
+- !__APPLE__ && \
+- !defined _WIN32
++# if !defined HAVE_STRUCT_TIMESPEC_TV_SEC
+ struct timespec {
+ time_t tv_sec;
+ long tv_nsec;
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch
deleted file mode 100644
index 97a4136ca4..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From c6836386549fb8f017761ce17a237fa42901434c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 24 Mar 2021 17:36:26 -0400
-Subject: [PATCH] hgfsServerLinux: Consider 64bit time_t possibility
-
-Upstream-Status: Pending
-
-Refit for open-vm-tools-11.2.5.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-
----
- open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 14 --------------
- 1 file changed, 14 deletions(-)
-
-diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-index f5cc80b7..5a79d645 100644
---- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-+++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-@@ -2566,20 +2566,6 @@ HgfsStatToFileAttr(struct stat *stats, // IN: stat information
- LOG(4, "%s: done, permissions %o%o%o%o, size %"FMT64"u\n", __FUNCTION__,
- attr->specialPerms, attr->ownerPerms, attr->groupPerms,
- attr->otherPerms, attr->size);
--#ifdef __FreeBSD__
--# if !defined(VM_X86_64) && !defined(VM_ARM_64) && __FreeBSD_version >= 500043
--# define FMTTIMET ""
--# else
--# define FMTTIMET "l"
--# endif
--#else
--# define FMTTIMET "l"
--#endif
-- LOG(4, "access: %"FMTTIMET"d/%"FMT64"u \nwrite: %"FMTTIMET"d/%"FMT64"u \n"
-- "attr: %"FMTTIMET"d/%"FMT64"u\n",
-- stats->st_atime, attr->accessTime, stats->st_mtime, attr->writeTime,
-- stats->st_ctime, attr->attrChangeTime);
--#undef FMTTIMET
-
- attr->userId = stats->st_uid;
- attr->groupId = stats->st_gid;
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0003-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0003-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
new file mode 100644
index 0000000000..b4bd646d61
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0003-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
@@ -0,0 +1,63 @@
+From ef466581b53a1e64f53d4839bdacfab1d65cc6b9 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 09:10:14 +0000
+Subject: [PATCH] Fix definition of ALLPERMS and ACCESSPERMS
+
+The ALLPERMS and ACCESSPERMS defines are not specified in POSIX so
+assume it is not there instead of testing for specific implementations.
+
+This is needed for musl libc.
+
+Upstream-Status: Pending
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 8 +++++---
+ open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c | 3 +--
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+index 4a0bc9378..6ed49e2b7 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+@@ -105,11 +105,13 @@ typedef struct DirectoryEntry {
+ #endif
+
+ /*
+- * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not defined in the
+- * Solaris version of <sys/stat.h>.
++ * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not specified in
++ * POSIX.
+ */
+-#ifdef sun
++#ifndef ACCESSPERMS
+ # define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
++#endif
++#ifndef ALLPERMS
+ # define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
+ #endif
+
+diff --git a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
+index 219065f74..b5b7e6203 100644
+--- a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
++++ b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
+@@ -53,7 +53,7 @@
+
+ #define DND_ROOTDIR_PERMS (S_IRWXU | S_IRWXG | S_IRWXO)
+ #define DND_STAGINGDIR_PERMS (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
+-#ifdef sun
++#ifndef ACCESSPERMS
+ #define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
+ #endif
+ #ifdef __ANDROID__
+@@ -62,7 +62,6 @@
+ */
+ #define NO_SETMNTENT
+ #define NO_ENDMNTENT
+-#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
+ #endif
+
+
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0003-Use-configure-test-for-struct-timespec.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0003-Use-configure-test-for-struct-timespec.patch
deleted file mode 100644
index 6d2e498141..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0003-Use-configure-test-for-struct-timespec.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From bf9292ff9bd25467a014d6c2070805d163daa4c9 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 18 Nov 2015 09:03:00 +0000
-Subject: [PATCH] Use configure test for struct timespec
-
-Use the configure script to test for struct time spec instead of trying
-to keep track of what platforms has it.
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- open-vm-tools/configure.ac | 1 +
- open-vm-tools/lib/include/hgfsUtil.h | 8 +-------
- 2 files changed, 2 insertions(+), 7 deletions(-)
-
-diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
-index 713ea683..48ff1ef3 100644
---- a/open-vm-tools/configure.ac
-+++ b/open-vm-tools/configure.ac
-@@ -1208,6 +1208,7 @@ AC_TYPE_OFF_T
- AC_TYPE_PID_T
- AC_TYPE_SIZE_T
- AC_CHECK_MEMBERS([struct stat.st_rdev])
-+AC_CHECK_MEMBERS([struct timespec.tv_sec],[],[],[[#include <time.h>]])
- AC_HEADER_TIME
- AC_STRUCT_TM
- AC_C_VOLATILE
-diff --git a/open-vm-tools/lib/include/hgfsUtil.h b/open-vm-tools/lib/include/hgfsUtil.h
-index 609f4c00..a3a022d4 100644
---- a/open-vm-tools/lib/include/hgfsUtil.h
-+++ b/open-vm-tools/lib/include/hgfsUtil.h
-@@ -53,13 +53,7 @@
- # include <time.h>
- # endif
- # include "vm_basic_types.h"
--# if !defined _STRUCT_TIMESPEC && \
-- !defined _TIMESPEC_DECLARED && \
-- !defined __timespec_defined && \
-- !defined sun && \
-- !defined __FreeBSD__ && \
-- !__APPLE__ && \
-- !defined _WIN32
-+# if !defined HAVE_STRUCT_TIMESPEC_TV_SEC
- struct timespec {
- time_t tv_sec;
- long tv_nsec;
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
deleted file mode 100644
index e107ecf235..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5a795b234c617150915a607776c76377948870a6 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 18 Nov 2015 09:10:14 +0000
-Subject: [PATCH] Fix definition of ALLPERMS and ACCESSPERMS
-
-The ALLPERMS and ACCESSPERMS defines are not specified in POSIX so
-assume it is not there instead of testing for specific implementations.
-
-This is needed for musl libc.
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 8 +++++---
- open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c | 3 +--
- 2 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-index f2b7ce67..0e6351a9 100644
---- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-+++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-@@ -105,11 +105,13 @@ typedef struct DirectoryEntry {
- #endif
-
- /*
-- * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not defined in the
-- * Solaris version of <sys/stat.h>.
-+ * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not specified in
-+ * POSIX.
- */
--#ifdef sun
-+#ifndef ACCESSPERMS
- # define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
-+#endif
-+#ifndef ALLPERMS
- # define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
- #endif
-
-diff --git a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
-index 89133652..7e9c3a91 100644
---- a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
-+++ b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
-@@ -52,7 +52,7 @@
-
- #define DND_ROOTDIR_PERMS (S_IRWXU | S_IRWXG | S_IRWXO)
- #define DND_STAGINGDIR_PERMS (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
--#ifdef sun
-+#ifndef ACCESSPERMS
- #define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
- #endif
- #ifdef __ANDROID__
-@@ -61,7 +61,6 @@
- */
- #define NO_SETMNTENT
- #define NO_ENDMNTENT
--#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
- #endif
-
-
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0004-Use-configure-to-test-for-feature-instead-of-platfor.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0004-Use-configure-to-test-for-feature-instead-of-platfor.patch
new file mode 100644
index 0000000000..f23235e902
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0004-Use-configure-to-test-for-feature-instead-of-platfor.patch
@@ -0,0 +1,144 @@
+From 4462efefdd61bff1e39e946b917b01433898be88 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 10:05:07 +0000
+Subject: [PATCH] Use configure to test for feature instead of platform
+
+Test for various functions instead of trying to keep track of what
+platform and what version of the given platform has support for what.
+
+This should make it easier to port to currently unknown platforms and
+will solve the issue if a platform add support for a missing feature in
+the future.
+
+The features we test for are:
+- getifaddrs
+- getauxval
+- issetugid
+- __secure_getenv
+
+This is needed for musl libc.
+
+Upstream-Status: Pending
+
+Refit patch of open-vm-tools/lib/nicInfo/nicInfoPosix.c
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+Signed-off-by: Randy MacLeod <randy.macleod@windriver.com>
+---
+ open-vm-tools/configure.ac | 4 ++++
+ open-vm-tools/lib/misc/idLinux.c | 30 +++++++++++-------------
+ open-vm-tools/lib/nicInfo/nicInfoPosix.c | 6 ++++-
+ 3 files changed, 23 insertions(+), 17 deletions(-)
+
+diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
+index 2f34f6eda..daa0939c3 100644
+--- a/open-vm-tools/configure.ac
++++ b/open-vm-tools/configure.ac
+@@ -1169,6 +1169,7 @@ AC_CHECK_FUNCS(
+
+ AC_CHECK_FUNCS([ecvt])
+ AC_CHECK_FUNCS([fcvt])
++AC_CHECK_FUNCS([getifaddrs getauxval issetugid __secure_getenv])
+
+ AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes])
+
+@@ -1378,10 +1379,13 @@ fi
+ ###
+
+ AC_CHECK_HEADERS([crypt.h])
++AC_CHECK_HEADERS([ifaddrs.h])
+ AC_CHECK_HEADERS([inttypes.h])
+ AC_CHECK_HEADERS([stdint.h])
+ AC_CHECK_HEADERS([stdlib.h])
+ AC_CHECK_HEADERS([wchar.h])
++AC_CHECK_HEADERS([net/if.h])
++AC_CHECK_HEADERS([sys/auxv.h])
+ AC_CHECK_HEADERS([sys/inttypes.h])
+ AC_CHECK_HEADERS([sys/io.h])
+ AC_CHECK_HEADERS([sys/param.h]) # Required to make the sys/user.h check work correctly on FreeBSD
+diff --git a/open-vm-tools/lib/misc/idLinux.c b/open-vm-tools/lib/misc/idLinux.c
+index 3d7d1e303..0e12ac5bd 100644
+--- a/open-vm-tools/lib/misc/idLinux.c
++++ b/open-vm-tools/lib/misc/idLinux.c
+@@ -27,12 +27,9 @@
+ #include <sys/syscall.h>
+ #include <string.h>
+ #include <unistd.h>
+-#ifdef __linux__
+-#if defined(__GLIBC__) && \
+- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
++#ifdef HAVE_SYS_AUXV_H
+ #include <sys/auxv.h>
+ #endif
+-#endif
+ #ifdef __APPLE__
+ #include <sys/socket.h>
+ #include <TargetConditionals.h>
+@@ -1025,24 +1022,23 @@ Id_EndSuperUser(uid_t uid) // IN:
+ static Bool
+ IdIsSetUGid(void)
+ {
+-#if defined(__ANDROID__)
+- /* Android does not have a secure_getenv, so be conservative. */
+- return TRUE;
+-#else
+ /*
+ * We use __secure_getenv, which returns NULL if the binary is
+- * setuid or setgid. Alternatives include,
++ * setuid or setgid, when issetugid or getauxval(AT_SECURE) is not
++ * available. Alternatives include,
+ *
+- * a) getauxval(AT_SECURE); not available until glibc 2.16.
+- * b) __libc_enable_secure; may not be exported.
++ * a) issetugid(); not (yet?) available in glibc.
++ * b) getauxval(AT_SECURE); not available until glibc 2.16.
++ * c) __libc_enable_secure; may not be exported.
+ *
+- * Use (a) when we are based on glibc 2.16, or newer.
++ * Use (b) when we are based on glibc 2.16, or newer.
+ */
+
+-#if defined(__GLIBC__) && \
+- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
++#if HAVE_ISSETUGID
++ return issetugid();
++#elif HAVE_GETAUXVAL
+ return getauxval(AT_SECURE) != 0;
+-#else
++#elif HAVE___SECURE_GETENV
+ static const char envName[] = "VMW_SETUGID_TEST";
+
+ /*
+@@ -1062,7 +1058,9 @@ IdIsSetUGid(void)
+ return secure_getenv(envName) == NULL;
+ }
+ return TRUE;
+-#endif
++#else
++ /* Android does not have a secure_getenv, so be conservative. */
++ return TRUE;
+ #endif
+ }
+ #endif
+diff --git a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+index 0135e6a09..6f20547b2 100644
+--- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
++++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+@@ -35,9 +35,13 @@
+ #include <sys/stat.h>
+ #include <errno.h>
+ #include <limits.h>
+-#if defined(__FreeBSD__) || defined(__APPLE__)
++#if HAVE_SYS_SYSCTL_H
+ # include <sys/sysctl.h>
++#endif
++#if HAVE_IFADDRS_H
+ # include <ifaddrs.h>
++#endif
++#if HAVE_NET_IF_H
+ # include <net/if.h>
+ #endif
+ #ifndef NO_DNET
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-sys-stat.h-include.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-sys-stat.h-include.patch
new file mode 100644
index 0000000000..fda4c37e59
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-sys-stat.h-include.patch
@@ -0,0 +1,30 @@
+From 79675399124b61f4e3da1f64f4b265f83dd26cdc Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 18 Nov 2015 10:41:01 +0000
+Subject: [PATCH] Use configure test for sys/stat.h include
+
+This is needed for musl libc.
+
+Upstream-Status: Pending
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ open-vm-tools/services/plugins/vix/vixTools.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c
+index 75d24a29e..d11c42178 100644
+--- a/open-vm-tools/services/plugins/vix/vixTools.c
++++ b/open-vm-tools/services/plugins/vix/vixTools.c
+@@ -66,7 +66,7 @@
+ #include <unistd.h>
+ #endif
+
+-#if defined(sun) || defined(__FreeBSD__) || defined(__APPLE__)
++#ifdef HAVE_SYS_STAT_H
+ #include <sys/stat.h>
+ #endif
+
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-to-test-for-feature-instead-of-platfor.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-to-test-for-feature-instead-of-platfor.patch
deleted file mode 100644
index 34d4ce4a90..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-to-test-for-feature-instead-of-platfor.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-From b653a81da70c44af002dcbc7489ad9f4588ed11d Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 18 Nov 2015 10:05:07 +0000
-Subject: [PATCH] Use configure to test for feature instead of platform
-
-Test for various functions instead of trying to keep track of what
-platform and what version of the given platform has support for what.
-
-This should make it easier to port to currently unknown platforms and
-will solve the issue if a platform add support for a missing feature in
-the future.
-
-The features we test for are:
-- getifaddrs
-- getauxval
-- issetugid
-- __secure_getenv
-
-This is needed for musl libc.
-
-Refit patch of open-vm-tools/lib/nicInfo/nicInfoPosix.c
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
-Signed-off-by: Randy MacLeod <randy.macleod@windriver.com>
----
- open-vm-tools/configure.ac | 4 ++++
- open-vm-tools/lib/misc/idLinux.c | 30 +++++++++++-------------
- open-vm-tools/lib/nicInfo/nicInfoPosix.c | 6 ++++-
- 3 files changed, 23 insertions(+), 17 deletions(-)
-
-diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
-index 27f3717f..6baab9e3 100644
---- a/open-vm-tools/configure.ac
-+++ b/open-vm-tools/configure.ac
-@@ -923,6 +923,7 @@ AC_CHECK_FUNCS(
-
- AC_CHECK_FUNCS([ecvt])
- AC_CHECK_FUNCS([fcvt])
-+AC_CHECK_FUNCS([getifaddrs getauxval issetugid __secure_getenv])
-
- AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes])
-
-@@ -1132,10 +1133,13 @@ fi
- ###
-
- AC_CHECK_HEADERS([crypt.h])
-+AC_CHECK_HEADERS([ifaddrs.h])
- AC_CHECK_HEADERS([inttypes.h])
- AC_CHECK_HEADERS([stdint.h])
- AC_CHECK_HEADERS([stdlib.h])
- AC_CHECK_HEADERS([wchar.h])
-+AC_CHECK_HEADERS([net/if.h])
-+AC_CHECK_HEADERS([sys/auxv.h])
- AC_CHECK_HEADERS([sys/inttypes.h])
- AC_CHECK_HEADERS([sys/io.h])
- AC_CHECK_HEADERS([sys/param.h]) # Required to make the sys/user.h check work correctly on FreeBSD
-diff --git a/open-vm-tools/lib/misc/idLinux.c b/open-vm-tools/lib/misc/idLinux.c
-index 1bb86f48..41c670cf 100644
---- a/open-vm-tools/lib/misc/idLinux.c
-+++ b/open-vm-tools/lib/misc/idLinux.c
-@@ -27,12 +27,9 @@
- #include <sys/syscall.h>
- #include <string.h>
- #include <unistd.h>
--#ifdef __linux__
--#if defined(__GLIBC__) && \
-- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
-+#ifdef HAVE_SYS_AUXV_H
- #include <sys/auxv.h>
- #endif
--#endif
- #ifdef __APPLE__
- #include <sys/socket.h>
- #include <TargetConditionals.h>
-@@ -1025,31 +1022,32 @@ Id_EndSuperUser(uid_t uid) // IN:
- static Bool
- IdIsSetUGid(void)
- {
--#if defined(__ANDROID__)
-- /* Android does not have a secure_getenv, so be conservative. */
-- return TRUE;
--#else
- /*
- * We use __secure_getenv, which returns NULL if the binary is
-- * setuid or setgid. Alternatives include,
-+ * setuid or setgid, when issetugid or getauxval(AT_SECURE) is not
-+ * available. Alternatives include,
- *
-- * a) getauxval(AT_SECURE); not available until glibc 2.16.
-- * b) __libc_enable_secure; may not be exported.
-+ * a) issetugid(); not (yet?) available in glibc.
-+ * b) getauxval(AT_SECURE); not available until glibc 2.16.
-+ * c) __libc_enable_secure; may not be exported.
- *
-- * Use (a) when we are based on glibc 2.16, or newer.
-+ * Use (b) when we are based on glibc 2.16, or newer.
- */
-
--#if defined(__GLIBC__) && \
-- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
-+#if HAVE_ISSETUGID
-+ return issetugid();
-+#elif HAVE_GETAUXVAL
- return getauxval(AT_SECURE) != 0;
--#else
-+#elif HAVE___SECURE_GETENV
- static const char envName[] = "VMW_SETUGID_TEST";
-
- if (setenv(envName, "1", TRUE) == -1) {
- return TRUE; /* Conservative */
- }
- return __secure_getenv(envName) == NULL;
--#endif
-+#else
-+ /* Android does not have a secure_getenv, so be conservative. */
-+ return TRUE;
- #endif
- }
- #endif
-diff --git a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
-index cc5fa281..8710c542 100644
---- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
-+++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
-@@ -35,9 +35,13 @@
- #include <sys/stat.h>
- #include <errno.h>
- #include <limits.h>
--#if defined(__FreeBSD__) || defined(__APPLE__)
-+#if HAVE_SYS_SYSCTL_H
- # include <sys/sysctl.h>
-+#endif
-+#if HAVE_IFADDRS_H
- # include <ifaddrs.h>
-+#endif
-+#if HAVE_NET_IF_H
- # include <net/if.h>
- #endif
- #ifndef NO_DNET
---
-2.27.0
-
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-subdir-objects-configure-error.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-subdir-objects-configure-error.patch
new file mode 100644
index 0000000000..4c6f6ce022
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-subdir-objects-configure-error.patch
@@ -0,0 +1,38 @@
+From 37ad9845b5b8ab7170a2aaba31a505b2a36ba0f8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 23:48:04 -0700
+Subject: [PATCH] Fix subdir objects configure error
+
+Fix build on musl while here
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/configure.ac | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
+index daa0939c3..497e9459a 100644
+--- a/open-vm-tools/configure.ac
++++ b/open-vm-tools/configure.ac
+@@ -326,7 +326,6 @@ AC_ARG_ENABLE(
+ [],
+ [enable_resolutionkms="auto"])
+
+-
+ AC_ARG_ENABLE(
+ vmwgfxctrl,
+ AS_HELP_STRING(
+@@ -335,7 +334,7 @@ AC_ARG_ENABLE(
+ [],
+ [enable_vmwgfxctrl="auto"])
+
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([subdir-objects])
+
+ ###
+ ### Constants
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0006-Use-configure-test-for-sys-stat.h-include.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0006-Use-configure-test-for-sys-stat.h-include.patch
deleted file mode 100644
index 9a227f9ec7..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0006-Use-configure-test-for-sys-stat.h-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 11adcf43a1e7aa39ee4d82fa567f37e5b0c6ca81 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 18 Nov 2015 10:41:01 +0000
-Subject: [PATCH] Use configure test for sys/stat.h include
-
-This is needed for musl libc.
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- open-vm-tools/services/plugins/vix/vixTools.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c
-index e5273786..cabc4137 100644
---- a/open-vm-tools/services/plugins/vix/vixTools.c
-+++ b/open-vm-tools/services/plugins/vix/vixTools.c
-@@ -66,7 +66,7 @@
- #include <unistd.h>
- #endif
-
--#if defined(sun) || defined(__FreeBSD__) || defined(__APPLE__)
-+#ifdef HAVE_SYS_STAT_H
- #include <sys/stat.h>
- #endif
-
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0007-Fix-subdir-objects-configure-error.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0007-Fix-subdir-objects-configure-error.patch
deleted file mode 100644
index fd7ebce050..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0007-Fix-subdir-objects-configure-error.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 294a3f14b74f2020a5cf3ccc2b6adabbcfce4151 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 13 Jun 2018 23:48:04 -0700
-Subject: [PATCH] Fix subdir objects configure error
-
-Fix build on musl while here
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- open-vm-tools/configure.ac | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
-index 005814ef..edf1f21a 100644
---- a/open-vm-tools/configure.ac
-+++ b/open-vm-tools/configure.ac
-@@ -326,7 +326,6 @@ AC_ARG_ENABLE(
- [],
- [enable_resolutionkms="auto"])
-
--
- AC_ARG_ENABLE(
- vmwgfxctrl,
- AS_HELP_STRING(
-@@ -335,7 +334,7 @@ AC_ARG_ENABLE(
- [],
- [enable_vmwgfxctrl="auto"])
-
--AM_INIT_AUTOMAKE
-+AM_INIT_AUTOMAKE([subdir-objects])
-
- ###
- ### Constants
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0007-include-poll.h-instead-of-sys-poll.h.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0007-include-poll.h-instead-of-sys-poll.h.patch
new file mode 100644
index 0000000000..fc0ce961c2
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0007-include-poll.h-instead-of-sys-poll.h.patch
@@ -0,0 +1,31 @@
+From d138b808a8b47a02a370b411149ef8ce7883ca6f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 23:02:50 -0700
+Subject: [PATCH] include poll.h instead of sys/poll.h
+
+including sys/poll.h is deprecated
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c
+index 26aee553a..4f413db73 100644
+--- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
++++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c
+@@ -70,8 +70,8 @@
+ #else
+ #include <stddef.h>
+ #include <ctype.h>
++#include <poll.h>
+ #include <sys/types.h>
+-#include <sys/poll.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
+ #include <netdb.h>
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0008-Rename-poll.h-to-vm_poll.h.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0008-Rename-poll.h-to-vm_poll.h.patch
new file mode 100644
index 0000000000..2654767099
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0008-Rename-poll.h-to-vm_poll.h.patch
@@ -0,0 +1,114 @@
+From e86d7b309bdf5b7c6c38faeded157e220d4ccc78 Mon Sep 17 00:00:00 2001
+From: Randy MacLeod <Randy.MacLeod@windriver.com>
+Date: Wed, 24 Mar 2021 16:21:35 -0400
+Subject: [PATCH] Rename poll.h to vm_poll.h
+
+Rename poll.h to vm_poll.h and switch from:
+ #include <sys/poll.h>
+to
+ #include <poll.h>
+
+musl libc's system headers pulls in open-vm-tools' poll.h. To avoid this
+we rename poll.h to vm_poll.h.
+
+Update for open-vm-tools-11.2.5.
+
+Upstream-Status: Pending
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+---
+ open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
+ open-vm-tools/lib/hgfsServer/hgfsServer.c | 2 +-
+ open-vm-tools/lib/include/asyncsocket.h | 2 +-
+ open-vm-tools/lib/include/pollImpl.h | 2 +-
+ open-vm-tools/lib/include/{poll.h => vm_poll.h} | 2 +-
+ open-vm-tools/lib/rpcIn/rpcin.c | 2 +-
+ 6 files changed, 6 insertions(+), 6 deletions(-)
+ rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (99%)
+
+diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c
+index 4f413db73..684008d34 100644
+--- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
++++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c
+@@ -87,7 +87,7 @@
+ #include "random.h"
+ #include "asyncsocket.h"
+ #include "asyncSocketBase.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "log.h"
+ #include "err.h"
+ #include "hostinfo.h"
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c
+index c7b4cdd0f..d6e0cdc0e 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServer.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c
+@@ -51,7 +51,7 @@
+ #include "hgfsDirNotify.h"
+ #include "hgfsThreadpool.h"
+ #include "userlock.h"
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "mutexRankLib.h"
+ #include "vm_basic_asm.h"
+ #include "unicodeOperations.h"
+diff --git a/open-vm-tools/lib/include/asyncsocket.h b/open-vm-tools/lib/include/asyncsocket.h
+index 09947002e..3800f5971 100644
+--- a/open-vm-tools/lib/include/asyncsocket.h
++++ b/open-vm-tools/lib/include/asyncsocket.h
+@@ -177,7 +177,7 @@ typedef struct AsyncSocket AsyncSocket;
+ * Or the client can specify its favorite poll class and locking behavior.
+ * Use of IVmdbPoll is only supported for regular sockets and for Attach.
+ */
+-#include "poll.h"
++#include "vm_poll.h"
+ struct IVmdbPoll;
+ typedef struct AsyncSocketPollParams {
+ int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */
+diff --git a/open-vm-tools/lib/include/pollImpl.h b/open-vm-tools/lib/include/pollImpl.h
+index 46442e556..8bc669970 100644
+--- a/open-vm-tools/lib/include/pollImpl.h
++++ b/open-vm-tools/lib/include/pollImpl.h
+@@ -44,7 +44,7 @@
+ #define INCLUDE_ALLOW_USERLEVEL
+ #include "includeCheck.h"
+
+-#include "poll.h"
++#include "vm_poll.h"
+ #include "vm_basic_asm.h"
+
+ #if defined(__cplusplus)
+diff --git a/open-vm-tools/lib/include/poll.h b/open-vm-tools/lib/include/vm_poll.h
+similarity index 99%
+rename from open-vm-tools/lib/include/poll.h
+rename to open-vm-tools/lib/include/vm_poll.h
+index ade356b9f..8759fb960 100644
+--- a/open-vm-tools/lib/include/poll.h
++++ b/open-vm-tools/lib/include/vm_poll.h
+@@ -60,7 +60,7 @@ extern "C" {
+ #if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
+ #include <sys/kernel.h>
+ #endif
+-#include <sys/poll.h>
++#include <poll.h>
+ #define HZ 100
+ #endif
+ #ifdef __ANDROID__
+diff --git a/open-vm-tools/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c
+index f1709fe03..c1a5dfdba 100644
+--- a/open-vm-tools/lib/rpcIn/rpcin.c
++++ b/open-vm-tools/lib/rpcIn/rpcin.c
+@@ -57,7 +57,7 @@
+
+ #if defined(VMTOOLS_USE_VSOCKET)
+ # include <glib.h>
+-# include "poll.h"
++# include "vm_poll.h"
+ # include "asyncsocket.h"
+ # include "vmci_defs.h"
+ #include "dataMap.h"
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0008-include-poll.h-instead-of-sys-poll.h.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0008-include-poll.h-instead-of-sys-poll.h.patch
deleted file mode 100644
index 814b9e3b25..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0008-include-poll.h-instead-of-sys-poll.h.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From e4f0b99d90e26b15106f634caad1c3dea9e09cb8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 13 Jun 2018 23:02:50 -0700
-Subject: [PATCH] include poll.h instead of sys/poll.h
-
-including sys/poll.h is deprecated
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c
-index 65b07109..b41aa29d 100644
---- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
-+++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c
-@@ -69,8 +69,8 @@
- #else
- #include <stddef.h>
- #include <ctype.h>
-+#include <poll.h>
- #include <sys/types.h>
--#include <sys/poll.h>
- #include <sys/socket.h>
- #include <sys/un.h>
- #include <netdb.h>
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch
deleted file mode 100644
index 214dac4717..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0009-Rename-poll.h-to-vm_poll.h.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 7a5db1cf47e70e72d78a42468912c276e57f865e Mon Sep 17 00:00:00 2001
-From: Randy MacLeod <Randy.MacLeod@windriver.com>
-Date: Wed, 24 Mar 2021 16:21:35 -0400
-Subject: [PATCH] Rename poll.h to vm_poll.h
-
-Rename poll.h to vm_poll.h and switch from:
- #include <sys/poll.h>
-to
- #include <poll.h>
-
-musl libc's system headers pulls in open-vm-tools' poll.h. To avoid this
-we rename poll.h to vm_poll.h.
-
-Update for open-vm-tools-11.2.5.
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
----
- open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +-
- open-vm-tools/lib/hgfsServer/hgfsServer.c | 2 +-
- open-vm-tools/lib/include/asyncsocket.h | 2 +-
- open-vm-tools/lib/include/pollImpl.h | 2 +-
- open-vm-tools/lib/include/{poll.h => vm_poll.h} | 2 +-
- open-vm-tools/lib/rpcIn/rpcin.c | 2 +-
- 6 files changed, 6 insertions(+), 6 deletions(-)
- rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (99%)
-
-diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c
-index 9914ffc5..89679f7a 100644
---- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
-+++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c
-@@ -87,7 +87,7 @@
- #include "random.h"
- #include "asyncsocket.h"
- #include "asyncSocketBase.h"
--#include "poll.h"
-+#include "vm_poll.h"
- #include "log.h"
- #include "err.h"
- #include "hostinfo.h"
-diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c
-index 3a18a7e1..acdda54d 100644
---- a/open-vm-tools/lib/hgfsServer/hgfsServer.c
-+++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c
-@@ -51,7 +51,7 @@
- #include "hgfsDirNotify.h"
- #include "hgfsThreadpool.h"
- #include "userlock.h"
--#include "poll.h"
-+#include "vm_poll.h"
- #include "mutexRankLib.h"
- #include "vm_basic_asm.h"
- #include "unicodeOperations.h"
-diff --git a/open-vm-tools/lib/include/asyncsocket.h b/open-vm-tools/lib/include/asyncsocket.h
-index 746dd78b..82c22f46 100644
---- a/open-vm-tools/lib/include/asyncsocket.h
-+++ b/open-vm-tools/lib/include/asyncsocket.h
-@@ -171,7 +171,7 @@ typedef struct AsyncSocket AsyncSocket;
- * Or the client can specify its favorite poll class and locking behavior.
- * Use of IVmdbPoll is only supported for regular sockets and for Attach.
- */
--#include "poll.h"
-+#include "vm_poll.h"
- struct IVmdbPoll;
- typedef struct AsyncSocketPollParams {
- int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */
-diff --git a/open-vm-tools/lib/include/pollImpl.h b/open-vm-tools/lib/include/pollImpl.h
-index 46442e55..8bc66997 100644
---- a/open-vm-tools/lib/include/pollImpl.h
-+++ b/open-vm-tools/lib/include/pollImpl.h
-@@ -44,7 +44,7 @@
- #define INCLUDE_ALLOW_USERLEVEL
- #include "includeCheck.h"
-
--#include "poll.h"
-+#include "vm_poll.h"
- #include "vm_basic_asm.h"
-
- #if defined(__cplusplus)
-diff --git a/open-vm-tools/lib/include/poll.h b/open-vm-tools/lib/include/vm_poll.h
-similarity index 99%
-rename from open-vm-tools/lib/include/poll.h
-rename to open-vm-tools/lib/include/vm_poll.h
-index c90f5dcd..73a56204 100644
---- a/open-vm-tools/lib/include/poll.h
-+++ b/open-vm-tools/lib/include/vm_poll.h
-@@ -60,7 +60,7 @@ extern "C" {
- #if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0
- #include <sys/kernel.h>
- #endif
--#include <sys/poll.h>
-+#include <poll.h>
- #define HZ 100
- #endif
- #ifdef __ANDROID__
-diff --git a/open-vm-tools/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c
-index 8b1fe759..f22fcd40 100644
---- a/open-vm-tools/lib/rpcIn/rpcin.c
-+++ b/open-vm-tools/lib/rpcIn/rpcin.c
-@@ -57,7 +57,7 @@
-
- #if defined(VMTOOLS_USE_VSOCKET)
- # include <glib.h>
--# include "poll.h"
-+# include "vm_poll.h"
- # include "asyncsocket.h"
- # include "vmci_defs.h"
- #include "dataMap.h"
---
-2.27.0
-
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0009-use-posix-strerror_r-unless-on-gnu-libc-system.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0009-use-posix-strerror_r-unless-on-gnu-libc-system.patch
new file mode 100644
index 0000000000..a6638adb9a
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0009-use-posix-strerror_r-unless-on-gnu-libc-system.patch
@@ -0,0 +1,44 @@
+From 666a043be7d6fe07a36599260f7214cbd29a79e7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Jun 2018 23:16:53 -0700
+Subject: [PATCH] use posix strerror_r unless on gnu libc system
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/err/errPosix.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/open-vm-tools/lib/err/errPosix.c b/open-vm-tools/lib/err/errPosix.c
+index c81b4c13f..7a4036402 100644
+--- a/open-vm-tools/lib/err/errPosix.c
++++ b/open-vm-tools/lib/err/errPosix.c
+@@ -31,6 +31,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <locale.h>
++#include <stdio.h>
+
+ #include "vmware.h"
+ #include "errInt.h"
+@@ -63,11 +64,13 @@ ErrErrno2String(Err_Number errorNumber, // IN
+ {
+ char *p;
+
+-#if defined(__linux__) && !defined(__ANDROID__)
++#if defined(__GLIBC__) && !defined(__ANDROID__)
+ p = strerror_r(errorNumber, buf, bufSize);
+ #else
+- p = strerror(errorNumber);
+-#endif
++ if (strerror_r(errorNumber, buf, bufSize) != 0)
++ snprintf(buf, bufSize, "unknown error %i", errorNumber);
++ p = buf;
++#endif /* defined __GLIBC__ */
+ ASSERT(p != NULL);
+ return p;
+ }
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0010-Use-uintmax_t-for-handling-rlim_t.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0010-Use-uintmax_t-for-handling-rlim_t.patch
new file mode 100644
index 0000000000..6d0f8a3ae0
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0010-Use-uintmax_t-for-handling-rlim_t.patch
@@ -0,0 +1,38 @@
+From b294005f3748c6caee002fd7588964f7bf9b1d09 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 24 Mar 2021 17:26:53 -0400
+Subject: [PATCH] Use uintmax_t for handling rlim_t
+
+rlimit types are not representable with long or long long
+formats, therefore use uintmax_t to typecast rlim_t types
+and use %j to print it
+
+Upstream-Status: Pending
+
+Refit patch for open-vm-tools-11.2.5.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
+---
+ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+index 6ed49e2b7..0cc7c4094 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+@@ -5294,8 +5294,8 @@ HgfsWriteCheckIORange(off_t offset, // IN:
+ goto exit;
+ }
+
+- LOG(6, "%s: File Size limits: 0x%"FMT64"x 0x%"FMT64"x\n",
+- __FUNCTION__, fileSize.rlim_cur, fileSize.rlim_max);
++ //LOG(6, ("%s: File Size limits: 0x%jx 0x%jx\n",
++ // __FUNCTION__, (uintmax_t)fileSize.rlim_cur, (uintmax_t)fileSize.rlim_max));
+
+ /*
+ * Check the offset is within the file size range.
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch
deleted file mode 100644
index 784b4fc6c5..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From e86a259e1ce19c70ecfdece69ab53a07c63a34e1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 13 Jun 2018 23:16:53 -0700
-Subject: [PATCH] use posix strerror_r unless on gnu libc system
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/err/errPosix.c | 9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/open-vm-tools/lib/err/errPosix.c b/open-vm-tools/lib/err/errPosix.c
-index c81b4c13..7a403640 100644
---- a/open-vm-tools/lib/err/errPosix.c
-+++ b/open-vm-tools/lib/err/errPosix.c
-@@ -31,6 +31,7 @@
- #include <errno.h>
- #include <string.h>
- #include <locale.h>
-+#include <stdio.h>
-
- #include "vmware.h"
- #include "errInt.h"
-@@ -63,11 +64,13 @@ ErrErrno2String(Err_Number errorNumber, // IN
- {
- char *p;
-
--#if defined(__linux__) && !defined(__ANDROID__)
-+#if defined(__GLIBC__) && !defined(__ANDROID__)
- p = strerror_r(errorNumber, buf, bufSize);
- #else
-- p = strerror(errorNumber);
--#endif
-+ if (strerror_r(errorNumber, buf, bufSize) != 0)
-+ snprintf(buf, bufSize, "unknown error %i", errorNumber);
-+ p = buf;
-+#endif /* defined __GLIBC__ */
- ASSERT(p != NULL);
- return p;
- }
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0011-Use-off64_t-instead-of-__off64_t.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0011-Use-off64_t-instead-of-__off64_t.patch
new file mode 100644
index 0000000000..c6ab4d44d6
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0011-Use-off64_t-instead-of-__off64_t.patch
@@ -0,0 +1,35 @@
+From a8ef33b0623ba3494594a040ff5c77771168fdd6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 27 Aug 2018 23:22:21 -0700
+Subject: [PATCH] Use off64_t instead of __off64_t
+
+Fixes
+unknown type name '__off64_t'
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/lib/file/fileIOPosix.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/open-vm-tools/lib/file/fileIOPosix.c b/open-vm-tools/lib/file/fileIOPosix.c
+index 492a4bf4a..a80a884cd 100644
+--- a/open-vm-tools/lib/file/fileIOPosix.c
++++ b/open-vm-tools/lib/file/fileIOPosix.c
+@@ -211,10 +211,10 @@ static AlignedPool alignedPool;
+ * the symbols (and anyone building XOPEN<700 gets nothing).
+ */
+ extern ssize_t preadv64(int fd, const struct iovec *iov, int iovcnt,
+- __off64_t offset) __attribute__ ((weak));
++ off64_t offset) __attribute__ ((weak));
+
+ extern ssize_t pwritev64(int fd, const struct iovec *iov, int iovcnt,
+- __off64_t offset) __attribute__ ((weak));
++ off64_t offset) __attribute__ ((weak));
+ #else
+ #error "Large file support is unavailable."
+ #endif
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0011-Use-uintmax_t-for-handling-rlim_t.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0011-Use-uintmax_t-for-handling-rlim_t.patch
deleted file mode 100644
index 144b5837cb..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0011-Use-uintmax_t-for-handling-rlim_t.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 4b69d8fd78bf6edbc8b4ace58e621d46071fd8dc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 24 Mar 2021 17:26:53 -0400
-Subject: [PATCH 2/2] Use uintmax_t for handling rlim_t
-
-rlimit types are not representable with long or long long
-formats, therefore use uintmax_t to typecast rlim_t types
-and use %j to print it
-
-Refit patch for open-vm-tools-11.2.5.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
----
- open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-index ba2e5624..889f730a 100644
---- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-+++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-@@ -5292,8 +5292,8 @@ HgfsWriteCheckIORange(off_t offset, // IN:
- goto exit;
- }
-
-- LOG(6, "%s: File Size limits: 0x%"FMT64"x 0x%"FMT64"x\n",
-- __FUNCTION__, fileSize.rlim_cur, fileSize.rlim_max);
-+ //LOG(6, ("%s: File Size limits: 0x%jx 0x%jx\n",
-+ // __FUNCTION__, (uintmax_t)fileSize.rlim_cur, (uintmax_t)fileSize.rlim_max));
-
- /*
- * Check the offset is within the file size range.
---
-2.30.2
-
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0012-Use-off64_t-instead-of-__off64_t.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0012-Use-off64_t-instead-of-__off64_t.patch
deleted file mode 100644
index 5e37d7617b..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0012-Use-off64_t-instead-of-__off64_t.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 80b1c4236549b0194d1f0d6e9be887e3a5850843 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 27 Aug 2018 23:22:21 -0700
-Subject: [PATCH] Use off64_t instead of __off64_t
-
-Fixes
-unknown type name '__off64_t'
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- open-vm-tools/lib/file/fileIOPosix.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/open-vm-tools/lib/file/fileIOPosix.c b/open-vm-tools/lib/file/fileIOPosix.c
-index 82c0aa18..e9154541 100644
---- a/open-vm-tools/lib/file/fileIOPosix.c
-+++ b/open-vm-tools/lib/file/fileIOPosix.c
-@@ -206,10 +206,10 @@ static AlignedPool alignedPool;
- * the symbols (and anyone building XOPEN<700 gets nothing).
- */
- extern ssize_t preadv64(int fd, const struct iovec *iov, int iovcnt,
-- __off64_t offset) __attribute__ ((weak));
-+ off64_t offset) __attribute__ ((weak));
-
- extern ssize_t pwritev64(int fd, const struct iovec *iov, int iovcnt,
-- __off64_t offset) __attribute__ ((weak));
-+ off64_t offset) __attribute__ ((weak));
- #else
- #error "Large file support is unavailable."
- #endif
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0012-hgfsServerLinux-Consider-64bit-time_t-possibility.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0012-hgfsServerLinux-Consider-64bit-time_t-possibility.patch
new file mode 100644
index 0000000000..388857fc10
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0012-hgfsServerLinux-Consider-64bit-time_t-possibility.patch
@@ -0,0 +1,44 @@
+From 2904454f3408a3abe3f2b0681504a66ea5ce713c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 24 Mar 2021 17:36:26 -0400
+Subject: [PATCH] hgfsServerLinux: Consider 64bit time_t possibility
+
+Upstream-Status: Pending
+
+Refit for open-vm-tools-11.2.5.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
+---
+ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 14 --------------
+ 1 file changed, 14 deletions(-)
+
+diff --git a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+index 0cc7c4094..445a53881 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+@@ -2559,20 +2559,6 @@ HgfsStatToFileAttr(struct stat *stats, // IN: stat information
+ LOG(4, "%s: done, permissions %o%o%o%o, size %"FMT64"u\n", __FUNCTION__,
+ attr->specialPerms, attr->ownerPerms, attr->groupPerms,
+ attr->otherPerms, attr->size);
+-#ifdef __FreeBSD__
+-# if !defined(VM_X86_64) && !defined(VM_ARM_64)
+-# define FMTTIMET ""
+-# else
+-# define FMTTIMET "l"
+-# endif
+-#else
+-# define FMTTIMET "l"
+-#endif
+- LOG(4, "access: %"FMTTIMET"d/%"FMT64"u \nwrite: %"FMTTIMET"d/%"FMT64"u \n"
+- "attr: %"FMTTIMET"d/%"FMT64"u\n",
+- stats->st_atime, attr->accessTime, stats->st_mtime, attr->writeTime,
+- stats->st_ctime, attr->attrChangeTime);
+-#undef FMTTIMET
+
+ attr->userId = stats->st_uid;
+ attr->groupId = stats->st_gid;
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch
deleted file mode 100644
index 3e4753b2a6..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0013-misc-Do-not-print-NULL-string-into-logs.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From cfc6839362bd96bf2f42954160f16a60bf1de377 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 22 Dec 2018 19:59:02 -0800
-Subject: [PATCH] misc: Do not print NULL string into logs
-
-string format %s is getting a NULL pointer for 'expand'
-parameter always since the check for chunks[i] == NULL will ensure that
-its always null when the Log() API is called
-
-Upstream-Status: Submitted [https://github.com/vmware/open-vm-tools/pull/312]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/misc/util_misc.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/open-vm-tools/lib/misc/util_misc.c
-+++ b/open-vm-tools/lib/misc/util_misc.c
-@@ -719,7 +719,7 @@ Util_ExpandString(const char *fileName)
- ASSERT(!freeChunk[i]);
- chunks[i] = expand;
- if (chunks[i] == NULL) {
-- Log("%s: Cannot allocate memory to expand $ in \"%s\".\n",
-+ Log("%s: Cannot allocate memory to expand in \"%s\".\n",
- __FUNCTION__, fileName);
- goto out;
- }
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0013-open-vm-tools-Correct-include-path-for-poll.h.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0013-open-vm-tools-Correct-include-path-for-poll.h.patch
new file mode 100644
index 0000000000..f2f6893db0
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0013-open-vm-tools-Correct-include-path-for-poll.h.patch
@@ -0,0 +1,37 @@
+From eae0a65a9d6c9df20d05b4208aee23656915480b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 7 Feb 2022 13:32:32 -0800
+Subject: [PATCH] open-vm-tools: Correct include path for poll.h
+
+sys/poll.h is deprecated and musl calls it out explicitly.
+
+Fixes
+| In file included from ../../../../git/open-vm-tools/services/plugins/gdp/gdpPlugin.c:35:
+| /mnt/b/yoe/master/build/tmp/work/core2-32-yoe-linux-musl/open-vm-tools/11.3.5-r0/recipe-sysroot/usr/include/sys/poll.h:1:2: error: redirecting incorrect #include <sys/poll.h> to <poll.h> [-Werror,-W#warnings]
+| #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
+| ^
+| 1 error generated.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/services/plugins/gdp/gdpPlugin.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/open-vm-tools/services/plugins/gdp/gdpPlugin.c b/open-vm-tools/services/plugins/gdp/gdpPlugin.c
+index 96e6d717b..0b8a583b8 100644
+--- a/open-vm-tools/services/plugins/gdp/gdpPlugin.c
++++ b/open-vm-tools/services/plugins/gdp/gdpPlugin.c
+@@ -32,7 +32,7 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/eventfd.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <unistd.h>
+ #endif
+
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0014-timeSync-Portable-way-to-print-64bit-time_t.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0014-timeSync-Portable-way-to-print-64bit-time_t.patch
new file mode 100644
index 0000000000..39eea767a0
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0014-timeSync-Portable-way-to-print-64bit-time_t.patch
@@ -0,0 +1,55 @@
+From 09cc01b2fa15e319afafa13d7365b399a60f443c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 3 Jan 2023 13:36:01 -0800
+Subject: [PATCH] timeSync: Portable way to print 64bit time_t
+
+This ensures when 64bit time_t is used on 32bit architectures (
+-D_TIME_BITS=64 ) then it can print it correctly as well.
+
+Fixes
+pllLinux.c:43:20: error: format specifies type 'long' but the argument has type 'long long' [-Werror,-Wformat]
+| prefix, tx->offset, tx->freq, tx->maxerror, tx->esterror,
+| ^~~~~~~~~~
+
+Upstream-Status: Submitted [https://github.com/vmware/open-vm-tools/pull/631]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ open-vm-tools/services/plugins/timeSync/pllLinux.c | 8 ++++----
+ open-vm-tools/services/plugins/timeSync/slewLinux.c | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/open-vm-tools/services/plugins/timeSync/pllLinux.c b/open-vm-tools/services/plugins/timeSync/pllLinux.c
+index e9c8e61de..90ba8c63f 100644
+--- a/open-vm-tools/services/plugins/timeSync/pllLinux.c
++++ b/open-vm-tools/services/plugins/timeSync/pllLinux.c
+@@ -38,10 +38,10 @@
+ static void
+ TimeSyncLogPLLState(const char *prefix, struct timex *tx)
+ {
+- g_debug("%s : off %ld freq %ld maxerr %ld esterr %ld status %d "
+- "const %ld precision %ld tolerance %ld tick %ld\n",
+- prefix, tx->offset, tx->freq, tx->maxerror, tx->esterror,
+- tx->status, tx->constant, tx->precision, tx->tolerance, tx->tick);
++ g_debug("%s : off %jd freq %jd maxerr %jd esterr %jd status %d "
++ "const %jd precision %jd tolerance %jd tick %jd\n",
++ prefix, (intmax_t)tx->offset, (intmax_t)tx->freq, (intmax_t)tx->maxerror, (intmax_t)tx->esterror,
++ tx->status, (intmax_t)tx->constant, (intmax_t)tx->precision, (intmax_t)tx->tolerance, (intmax_t)tx->tick);
+ }
+
+ /*
+diff --git a/open-vm-tools/services/plugins/timeSync/slewLinux.c b/open-vm-tools/services/plugins/timeSync/slewLinux.c
+index 1ab6e3584..0c304b5d7 100644
+--- a/open-vm-tools/services/plugins/timeSync/slewLinux.c
++++ b/open-vm-tools/services/plugins/timeSync/slewLinux.c
+@@ -156,6 +156,6 @@ TimeSync_Slew(int64 delta,
+ g_debug("adjtimex failed: %s\n", strerror(errno));
+ return FALSE;
+ }
+- g_debug("time slew start: %ld\n", tx.tick);
++ g_debug("time slew start: %jd\n", (intmax_t)tx.tick);
+ return TRUE;
+ }
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools_11.3.5.bb b/meta-networking/recipes-support/open-vm-tools/open-vm-tools_11.3.5.bb
deleted file mode 100644
index 1c3545f960..0000000000
--- a/meta-networking/recipes-support/open-vm-tools/open-vm-tools_11.3.5.bb
+++ /dev/null
@@ -1,121 +0,0 @@
-# This recipe is modified from the recipe originally found in the Open-Switch
-# repository:
-#
-# https://github.com/open-switch/ops-build
-# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb
-# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9
-#
-# The recipe packaging has been relicensed under the MIT license for inclusion
-# in meta-openembedded by agreement of the author (Diego Dompe).
-#
-
-SUMMARY = "Tools to enhance VMWare guest integration and performance"
-HOMEPAGE = "https://github.com/vmware/open-vm-tools"
-DESCRIPTION = "\
-open-vm-tools is a set of services and modules that enable several features in VMware products \
-for better management of and seamless user interactions with guests.\
-"
-SECTION = "vmware-tools"
-
-LICENSE = "LGPL-2.0-only & GPL-2.0-only & BSD-2-Clause & CDDL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=559317809c5444fb39ceaf6ac45c43ac"
-LICENSE:modules/freebsd/vmblock = "BSD-2-Clause"
-LICENSE:modules/freebsd/vmmemctl = "GPL-2.0-only"
-LICENSE:modules/freebsd/vmxnet = "GPL-2.0-only"
-LICENSE:modules/linux = "GPL-2.0-only"
-LICENSE:modules/solaris = "CDDL-1.0"
-
-SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https;branch=master \
- file://tools.conf \
- file://vmtoolsd.service \
- file://vmtoolsd.init \
- file://0001-configure.ac-don-t-use-dnet-config.patch;patchdir=.. \
- file://0003-Use-configure-test-for-struct-timespec.patch;patchdir=.. \
- file://0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch;patchdir=.. \
- file://0005-Use-configure-to-test-for-feature-instead-of-platfor.patch;patchdir=.. \
- file://0006-Use-configure-test-for-sys-stat.h-include.patch;patchdir=.. \
- file://0007-Fix-subdir-objects-configure-error.patch;patchdir=.. \
- file://0008-include-poll.h-instead-of-sys-poll.h.patch;patchdir=.. \
- file://0009-Rename-poll.h-to-vm_poll.h.patch;patchdir=.. \
- file://0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch;patchdir=.. \
- file://0011-Use-uintmax_t-for-handling-rlim_t.patch;patchdir=.. \
- file://0012-Use-off64_t-instead-of-__off64_t.patch;patchdir=.. \
- file://0013-misc-Do-not-print-NULL-string-into-logs.patch;patchdir=.. \
- file://0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch;patchdir=.. \
- file://0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch;patchdir=.. \
- file://0001-open-vm-tools-Correct-include-path-for-poll.h.patch;patchdir=.. \
- "
-
-UPSTREAM_CHECK_GITTAGREGEX = "stable-(?P<pver>\d+(\.\d+)+)"
-
-SRC_URI:append:libc-musl = " file://0001-Add-resolv_compat.h-for-musl-builds.patch;patchdir=.. \
-"
-
-SRCREV = "87abba1ce2356fc860eb9d0777d8e9de47427358"
-
-S = "${WORKDIR}/git/open-vm-tools"
-
-DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps libtirpc"
-
-# open-vm-tools is supported only on x86.
-COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
-
-inherit autotools pkgconfig systemd update-rc.d
-
-SYSTEMD_SERVICE:${PN} = "vmtoolsd.service"
-
-EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
- --disable-tests --without-gtkmm --without-xerces --without-pam \
- --disable-vgauth --disable-deploypkg \
- --without-root-privileges --without-kernel-modules --with-tirpc \
- --with-udev-rules-dir=${nonarch_base_libdir}/udev/rules.d"
-
-NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
-X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
-PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
-
-# fuse gets implicitly detected; there is no --without-fuse option.
-PACKAGECONFIG[fuse] = ",,fuse"
-
-CFLAGS:append:toolchain-clang = " -Wno-address-of-packed-member"
-FILES:${PN} += "\
- ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
- ${libdir}/open-vm-tools/plugins/common/lib*.so \
- ${sysconfdir}/vmware-tools/tools.conf \
-"
-FILES:${PN}-locale += "${datadir}/open-vm-tools/messages"
-FILES:${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
-
-CONFFILES:${PN} += "${sysconfdir}/vmware-tools/tools.conf"
-
-RDEPENDS:${PN} = "util-linux libdnet fuse"
-
-do_install:append() {
- if ! ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
- install -d ${D}/sbin
- ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
- fi
- install -d ${D}${sysconfdir}/vmware-tools
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
- else
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd
- fi
- install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
-}
-
-do_configure:prepend() {
- export CUSTOM_DNET_NAME=dnet
- export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
-}
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME:${PN} = "vmtoolsd"
-INITSCRIPT_PARAMS:${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ."
-
-python() {
- if 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
- raise bb.parse.SkipRecipe('Requires meta-filesystems to be present to provide fuse.')
-}
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.3.5.bb b/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.3.5.bb
new file mode 100644
index 0000000000..6696e552c7
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.3.5.bb
@@ -0,0 +1,122 @@
+# This recipe is modified from the recipe originally found in the Open-Switch
+# repository:
+#
+# https://github.com/open-switch/ops-build
+# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb
+# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9
+#
+# The recipe packaging has been relicensed under the MIT license for inclusion
+# in meta-openembedded by agreement of the author (Diego Dompe).
+#
+
+SUMMARY = "Tools to enhance VMWare guest integration and performance"
+HOMEPAGE = "https://github.com/vmware/open-vm-tools"
+DESCRIPTION = "\
+open-vm-tools is a set of services and modules that enable several features in VMware products \
+for better management of and seamless user interactions with guests.\
+"
+SECTION = "vmware-tools"
+
+LICENSE = "LGPL-2.0-only & GPL-2.0-only & BSD-2-Clause & CDDL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=559317809c5444fb39ceaf6ac45c43ac"
+LICENSE:modules/freebsd/vmblock = "BSD-2-Clause"
+LICENSE:modules/freebsd/vmmemctl = "GPL-2.0-only"
+LICENSE:modules/freebsd/vmxnet = "GPL-2.0-only"
+LICENSE:modules/linux = "GPL-2.0-only"
+LICENSE:modules/solaris = "CDDL-1.0"
+
+SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https;branch=stable-12.3.x \
+ file://tools.conf \
+ file://vmtoolsd.service \
+ file://vmtoolsd.init \
+ file://0001-configure.ac-don-t-use-dnet-config.patch;patchdir=.. \
+ file://0002-Use-configure-test-for-struct-timespec.patch;patchdir=.. \
+ file://0003-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch;patchdir=.. \
+ file://0004-Use-configure-to-test-for-feature-instead-of-platfor.patch;patchdir=.. \
+ file://0005-Use-configure-test-for-sys-stat.h-include.patch;patchdir=.. \
+ file://0006-Fix-subdir-objects-configure-error.patch;patchdir=.. \
+ file://0007-include-poll.h-instead-of-sys-poll.h.patch;patchdir=.. \
+ file://0008-Rename-poll.h-to-vm_poll.h.patch;patchdir=.. \
+ file://0009-use-posix-strerror_r-unless-on-gnu-libc-system.patch;patchdir=.. \
+ file://0010-Use-uintmax_t-for-handling-rlim_t.patch;patchdir=.. \
+ file://0011-Use-off64_t-instead-of-__off64_t.patch;patchdir=.. \
+ file://0012-hgfsServerLinux-Consider-64bit-time_t-possibility.patch;patchdir=.. \
+ file://0013-open-vm-tools-Correct-include-path-for-poll.h.patch;patchdir=.. \
+ file://0014-timeSync-Portable-way-to-print-64bit-time_t.patch;patchdir=.. \
+ "
+
+UPSTREAM_CHECK_GITTAGREGEX = "stable-(?P<pver>\d+(\.\d+)+)"
+
+SRC_URI:append:libc-musl = " file://0001-Add-resolv_compat.h-for-musl-builds.patch;patchdir=.. \
+"
+
+SRCREV = "1b362b9eb449fb5de3809aaea4a636ece30ee5b7"
+
+S = "${WORKDIR}/git/open-vm-tools"
+
+DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps libtirpc"
+
+# open-vm-tools is supported only on x86.
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
+
+inherit autotools pkgconfig systemd update-rc.d
+
+SYSTEMD_SERVICE:${PN} = "vmtoolsd.service"
+
+EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
+ --disable-tests --without-gtkmm --without-xerces --without-pam \
+ --disable-vgauth --disable-deploypkg --disable-containerinfo \
+ --without-root-privileges --without-kernel-modules --with-tirpc \
+ --with-udev-rules-dir=${nonarch_base_libdir}/udev/rules.d"
+
+NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
+X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
+PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
+
+# fuse gets implicitly detected; there is no --without-fuse option.
+PACKAGECONFIG[fuse] = ",,fuse"
+
+CFLAGS:append:toolchain-clang = " -Wno-address-of-packed-member -Wno-error=unused-function"
+FILES:${PN} += "\
+ ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
+ ${libdir}/open-vm-tools/plugins/common/lib*.so \
+ ${sysconfdir}/vmware-tools/tools.conf \
+"
+FILES:${PN}-locale += "${datadir}/open-vm-tools/messages"
+FILES:${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
+
+CONFFILES:${PN} += "${sysconfdir}/vmware-tools/tools.conf"
+
+RDEPENDS:${PN} = "util-linux libdnet fuse"
+
+do_install:append() {
+ if ! ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
+ install -d ${D}/sbin
+ ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
+ fi
+ install -d ${D}${sysconfdir}/vmware-tools
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
+ else
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd
+ fi
+ install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
+}
+
+do_configure:prepend() {
+ export CUSTOM_DNET_NAME=dnet
+ export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
+}
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "vmtoolsd"
+INITSCRIPT_PARAMS:${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ."
+
+python() {
+ if 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-filesystems to be present to provide fuse.')
+}
+
+CVE_PRODUCT = "open-vm-tools vmware:tools"
diff --git a/meta-networking/recipes-support/openipmi/files/0001-m4-ax_python_devel.m4-do-not-check-for-distutils.patch b/meta-networking/recipes-support/openipmi/files/0001-m4-ax_python_devel.m4-do-not-check-for-distutils.patch
deleted file mode 100644
index 00956fb117..0000000000
--- a/meta-networking/recipes-support/openipmi/files/0001-m4-ax_python_devel.m4-do-not-check-for-distutils.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 3a35611687864cf3599712d0d2ff54532b0118ac Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Sun, 3 Oct 2021 21:42:32 +0200
-Subject: [PATCH] m4/ax_python_devel.m4: do not check for distutils
-
-With py 3.10 this prints a deprecation warning which is
-taken as an error. Upstream should rework the code to not
-use distuils.
-
-Upstream-Status: Inappropriate [needs a proper fix upstream]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- m4/ax_python_devel.m4 | 15 ---------------
- 1 file changed, 15 deletions(-)
-
-diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4
-index e0804c5..cfc0b24 100644
---- a/m4/ax_python_devel.m4
-+++ b/m4/ax_python_devel.m4
-@@ -138,21 +138,6 @@ variable to configure. See ``configure --help'' for reference.
- fi
- fi
-
-- #
-- # Check if you have distutils, else fail
-- #
-- AC_MSG_CHECKING([for the distutils Python package])
-- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
-- if test -z "$ac_distutils_result"; then
-- AC_MSG_RESULT([yes])
-- else
-- AC_MSG_RESULT([no])
-- AC_MSG_ERROR([cannot import Python module "distutils".
--Please check your Python installation. The error was:
--$ac_distutils_result])
-- PYTHON_VERSION=""
-- fi
--
- #
- # Check for Python include path
- #
diff --git a/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch b/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch
index 2434884248..5bbccdcbf6 100644
--- a/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch
+++ b/meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch
@@ -1,4 +1,4 @@
-From 7854c60c92243adb14ea89e16fc226d2e47dd4f9 Mon Sep 17 00:00:00 2001
+From 0ccfefe624e25f937b27b2caf3671e80c2c29391 Mon Sep 17 00:00:00 2001
From: Aws Ismail <aws.ismail@windriver.com>
Date: Thu, 7 Jun 2012 16:00:13 -0400
Subject: [PATCH] Fix symlink install error in cmdlang
@@ -9,17 +9,18 @@ creating a symbolic link for opeipmish in openipmi/cmdlang
Upstream-Status: Pending
Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+
---
cmdlang/Makefile.am | 1 +
1 file changed, 1 insertion(+)
diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am
-index 0ca3827..d9a941f 100644
+index 7235446..4a81ae3 100644
--- a/cmdlang/Makefile.am
+++ b/cmdlang/Makefile.am
-@@ -35,6 +35,7 @@ openipmish_LDADD = libOpenIPMIcmdlang.la \
+@@ -41,6 +41,7 @@ openipmish_CFLAGS = -Wall -Wsign-compare -I$(top_builddir)/include \
# compatability.
- install-data-local:
+ install-exec-hook:
rm -f $(DESTDIR)$(bindir)/ipmish
+ mkdir -p $(DESTDIR)$(bindir)/
$(LN_S) openipmish $(DESTDIR)$(bindir)/ipmish
diff --git a/meta-networking/recipes-support/openipmi/files/include_sys_types.patch b/meta-networking/recipes-support/openipmi/files/include_sys_types.patch
index 61b39995a6..18129e6fcb 100644
--- a/meta-networking/recipes-support/openipmi/files/include_sys_types.patch
+++ b/meta-networking/recipes-support/openipmi/files/include_sys_types.patch
@@ -1,4 +1,4 @@
-From 4f41e090e33a00117a27f0c77b6338fb8b495f37 Mon Sep 17 00:00:00 2001
+From d667aedc37aeabdb9f8574ee0b9cf85b844ca2d2 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 2 Jun 2017 21:58:32 -0700
Subject: [PATCH] openipmi: Fix build with musl
@@ -12,12 +12,13 @@ ui.c:340:5: error: unknown type name 'u_int32_t'; did you mean 'uint32_t'?
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
ui/ui.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/ui/ui.c b/ui/ui.c
-index 529ff22..066d118 100644
+index 9c6a51f..34f7e34 100644
--- a/ui/ui.c
+++ b/ui/ui.c
@@ -42,6 +42,7 @@
diff --git a/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch b/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch
index c4559c97b7..d9ee5cc28f 100644
--- a/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch
+++ b/meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch
@@ -1,4 +1,4 @@
-From 6542ebe7a0d37dee8e9afb856feb8f6c3d334632 Mon Sep 17 00:00:00 2001
+From 7d9f6526dbcd46130d279c363d38781969807f74 Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Mon, 29 Dec 2014 18:16:04 +0800
Subject: [PATCH] ipmi-init: fix the arguments
@@ -10,12 +10,13 @@ not a string.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
---
ipmi.init | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/ipmi.init b/ipmi.init
-index ea10b11..aac9f83 100644
+index bd80f0d..53305bb 100644
--- a/ipmi.init
+++ b/ipmi.init
@@ -45,17 +45,17 @@ elif [ -r /etc/init.d/functions ]; then
@@ -39,4 +40,3 @@ index ea10b11..aac9f83 100644
echo
;;
*)
-
diff --git a/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch b/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch
index 858adc50a8..f14626a38d 100644
--- a/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch
+++ b/meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch
@@ -1,4 +1,4 @@
-From a6ffa3939a3ab2ad6a8d277cd8292b7dad6469c6 Mon Sep 17 00:00:00 2001
+From c76e727433ed895c605f9e7a3612bbc16ff558de Mon Sep 17 00:00:00 2001
From: Aws Ismail <aws.ismail@windriver.com>
Date: Thu, 7 Jun 2012 12:28:34 -0400
Subject: [PATCH] Do not build openipmigui man page
@@ -11,6 +11,7 @@ Upstream-Status: Pending
Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
---
man/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch b/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch
deleted file mode 100644
index 1aea32eaec..0000000000
--- a/meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 5a4abf223d79d4e1a58bbad1e4f2f406c7cab748 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Mon, 29 Dec 2014 18:16:04 +0800
-Subject: [PATCH] remove host path from la_LDFLAGS
-
-Upstream-Status: Inappropriate [ cross compile specific ]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- cmdlang/Makefile.am | 2 +-
- unix/Makefile.am | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/cmdlang/Makefile.am b/cmdlang/Makefile.am
-index 9cf180d..da46ceb 100644
---- a/cmdlang/Makefile.am
-+++ b/cmdlang/Makefile.am
-@@ -18,7 +18,7 @@ libOpenIPMIcmdlang_la_LIBADD = -lm \
- $(top_builddir)/utils/libOpenIPMIutils.la \
- $(top_builddir)/lib/libOpenIPMI.la
- libOpenIPMIcmdlang_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
-- -L$(libdir) -no-undefined
-+ -no-undefined
-
- bin_PROGRAMS = openipmish
-
-diff --git a/unix/Makefile.am b/unix/Makefile.am
-index baf0815..80c3d5d 100644
---- a/unix/Makefile.am
-+++ b/unix/Makefile.am
-@@ -11,13 +11,13 @@ libOpenIPMIpthread_la_SOURCES = posix_thread_os_hnd.c selector.c
- libOpenIPMIpthread_la_LIBADD = -lpthread $(GDBM_LIB) \
- $(top_builddir)/utils/libOpenIPMIutils.la $(RT_LIB)
- libOpenIPMIpthread_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
-- -L$(libdir) -no-undefined
-+ -no-undefined
-
- libOpenIPMIposix_la_SOURCES = posix_os_hnd.c selector.c
- libOpenIPMIposix_la_LIBADD = $(top_builddir)/utils/libOpenIPMIutils.la \
- $(GDBM_LIB) $(RT_LIB)
- libOpenIPMIposix_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
-- -L$(libdir) -no-undefined
-+ -no-undefined
-
- noinst_HEADERS = heap.h
-
---
-2.17.1
-
diff --git a/meta-networking/recipes-support/openipmi/openipmi_2.0.32.bb b/meta-networking/recipes-support/openipmi/openipmi_2.0.32.bb
deleted file mode 100644
index 18f4deca16..0000000000
--- a/meta-networking/recipes-support/openipmi/openipmi_2.0.32.bb
+++ /dev/null
@@ -1,119 +0,0 @@
-SUMMARY = "IPMI (Intelligent Platform Management Interface) library and tools"
-DESCRIPTION = "OpenIPMI is an effort to create a full-function IPMI system, \
-to allow full access to all IPMI information on a server \
-and to abstract it to a level that will make it easy to use"
-
-HOMEPAGE = "http://openipmi.sourceforge.net"
-
-DEPENDS = " \
- glib-2.0 \
- ncurses \
- net-snmp \
- openssl \
- popt \
- python3 \
- swig-native \
- readline \
- "
-
-LICENSE = "GPL-2.0-only & LGPL-2.1-only & BSD-3-Clause"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
- file://COPYING.BSD;md5=4b318d4160eb69c8ee53452feb1b4cdf \
- "
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \
- file://fix-symlink-install-error-in-cmdlang.patch \
- file://openipmi-no-openipmigui-man.patch \
- file://openipmi-remove-host-path-from-la_LDFLAGS.patch \
- file://ipmi-init-fix-the-arguments.patch \
- file://include_sys_types.patch \
- file://openipmi-helper \
- file://ipmi.service \
- file://0001-m4-ax_python_devel.m4-do-not-check-for-distutils.patch \
- "
-
-S = "${WORKDIR}/OpenIPMI-${PV}"
-
-SRC_URI[md5sum] = "532404c9df7d0e8bde975b95b9e6775b"
-SRC_URI[sha256sum] = "f6d0fd4c0a74b05f80907229d0b270f54ca23294bcc11979f8b8d12766786945"
-
-inherit autotools-brokensep pkgconfig python3native perlnative update-rc.d systemd cpan-base python3targetconfig
-
-CFLAGS += "-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
-
-EXTRA_OECONF = "--disable-static \
- --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \
- --with-python='${STAGING_BINDIR_NATIVE}/python3-native/python3' \
- --with-pythoninstall='${PYTHON_SITEPACKAGES_DIR}' \
- --with-glibver=2.0"
-
-PACKAGECONFIG ??= "gdbm"
-PACKAGECONFIG[gdbm] = "ac_cv_header_gdbm_h=yes,ac_cv_header_gdbm_h=no,gdbm,"
-
-PACKAGES += "${PN}-perl ${PN}-python"
-PRIVATE_LIBS:${PN}-perl = "libOpenIPMI.so.0"
-
-FILES:${PN}-perl = " \
- ${libdir}/perl/vendor_perl/*/OpenIPMI.pm \
- ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/OpenIPMI.so \
- "
-
-FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
-
-FILES:${PN}-dbg += " \
- ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/.debug \
- ${PYTHON_SITEPACKAGES_DIR}/.debug \
- "
-
-do_configure () {
-
- # Let's perform regular configuration first then handle perl issues.
- autotools_do_configure
-
- perl_ver=`perl -V:version | cut -d\' -f 2`
-
- # Force openipmi perl bindings to be compiled using perl-native instead of
- # the host's perl. Set the proper install directory for the resulting
- # openipmi.pm and openipmi.so
- for i in ${S}/swig/Makefile ${S}/swig/perl/Makefile; do
- echo "SAL: i = $i"
- echo "SAL: STAGING_INCDIR_NATIVE = $STAGING_INCDIR_NATIVE"
- echo "SAL: libdir = $libdir"
- sed -i -e "/^PERL_CFLAGS/s:-I/usr/local/include:-I${STAGING_INCDIR_NATIVE}:g" $i
- sed -i -e "/^PERL_CFLAGS/s:-I .* :-I ${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}/CORE :g" $i
- sed -i -e "/^PERL_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i
- done
-}
-
-do_compile:append () {
- sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' ${S}/swig/perl/OpenIPMI_wrap.c
-}
-
-do_install:append () {
- echo "SAL: D = $D"
- echo "SAL: libdir = $libdir"
- install -m 0755 -d ${D}${sysconfdir}/sysconfig ${D}${sysconfdir}/init.d
- install -m 0755 ${S}/ipmi.init ${D}${sysconfdir}/init.d/ipmi
- install -m 0644 ${S}/ipmi.sysconf ${D}${sysconfdir}/sysconfig/ipmi
- # SAL: mv: cannot stat `/localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/openipmi-2.0.19-r4/image/usr/lib64/perl5': No such file or directory
- # SAL: real path to perl is /localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/perl-5.14.2-r8.3/package/usr/lib64/perl5 and it is a symlink to perl so no need to mv.
- if [ -d ${D}${libdir}/perl5 ]
- then
- mv ${D}${libdir}/perl5 ${D}${libdir}/perl
- fi
-
- # for systemd
- install -d ${D}${systemd_unitdir}/system
- install -m 0664 ${WORKDIR}/ipmi.service ${D}${systemd_unitdir}/system
- sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/ipmi.service
- install -d ${D}${libexecdir}
- install -m 0755 ${WORKDIR}/openipmi-helper ${D}${libexecdir}
-}
-
-INITSCRIPT_NAME = "ipmi"
-INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
-
-SYSTEMD_SERVICE:${PN} = "ipmi.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-networking/recipes-support/openipmi/openipmi_2.0.34.bb b/meta-networking/recipes-support/openipmi/openipmi_2.0.34.bb
new file mode 100644
index 0000000000..eacbe5ce96
--- /dev/null
+++ b/meta-networking/recipes-support/openipmi/openipmi_2.0.34.bb
@@ -0,0 +1,115 @@
+SUMMARY = "IPMI (Intelligent Platform Management Interface) library and tools"
+DESCRIPTION = "OpenIPMI is an effort to create a full-function IPMI system, \
+to allow full access to all IPMI information on a server \
+and to abstract it to a level that will make it easy to use"
+
+HOMEPAGE = "http://openipmi.sourceforge.net"
+
+DEPENDS = " \
+ glib-2.0 \
+ ncurses \
+ net-snmp \
+ openssl \
+ popt \
+ python3 \
+ swig-native \
+ readline \
+ "
+
+LICENSE = "GPL-2.0-only & LGPL-2.1-only & BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+ file://COPYING.BSD;md5=4b318d4160eb69c8ee53452feb1b4cdf \
+ "
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/openipmi/OpenIPMI-${PV}.tar.gz \
+ file://fix-symlink-install-error-in-cmdlang.patch \
+ file://openipmi-no-openipmigui-man.patch \
+ file://ipmi-init-fix-the-arguments.patch \
+ file://include_sys_types.patch \
+ file://openipmi-helper \
+ file://ipmi.service \
+ "
+
+S = "${WORKDIR}/OpenIPMI-${PV}"
+
+SRC_URI[sha256sum] = "93227e43c72b5c3bd5949323e0669aa5527d1a971473a3a365af03fb8284a95f"
+
+inherit autotools-brokensep pkgconfig perlnative update-rc.d systemd cpan-base python3targetconfig
+
+CFLAGS += "-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
+
+EXTRA_OECONF = "--disable-static \
+ --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \
+ --with-glibver=2.0 \
+ --with-pythoncflags='-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}' \
+ "
+
+PACKAGECONFIG ??= "gdbm"
+PACKAGECONFIG[gdbm] = "ac_cv_header_gdbm_h=yes,ac_cv_header_gdbm_h=no,gdbm,"
+
+PACKAGES += "${PN}-perl ${PN}-python"
+PRIVATE_LIBS:${PN}-perl = "libOpenIPMI.so.0"
+
+FILES:${PN}-perl = " \
+ ${libdir}/perl/vendor_perl/*/OpenIPMI.pm \
+ ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/OpenIPMI.so \
+ "
+
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+
+FILES:${PN}-dbg += " \
+ ${libdir}/perl/vendor_perl/*/auto/OpenIPMI/.debug \
+ ${PYTHON_SITEPACKAGES_DIR}/.debug \
+ "
+
+do_configure () {
+ # Let's perform regular configuration first then handle perl issues.
+ autotools_do_configure
+
+ perl_ver=`perl -V:version | cut -d\' -f 2`
+
+ # Force openipmi perl bindings to be compiled using perl-native instead of
+ # the host's perl. Set the proper install directory for the resulting
+ # openipmi.pm and openipmi.so
+ for i in ${S}/swig/Makefile ${S}/swig/perl/Makefile; do
+ echo "SAL: i = $i"
+ echo "SAL: STAGING_INCDIR_NATIVE = $STAGING_INCDIR_NATIVE"
+ echo "SAL: libdir = $libdir"
+ sed -i -e "/^PERL_CFLAGS/s:-I/usr/local/include:-I${STAGING_INCDIR_NATIVE}:g" $i
+ sed -i -e "/^PERL_CFLAGS/s:-I .* :-I ${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}/CORE :g" $i
+ sed -i -e "/^PERL_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i
+ done
+}
+
+do_compile:append () {
+ sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' ${S}/swig/perl/OpenIPMI_wrap.c
+}
+
+do_install:append () {
+ echo "SAL: D = $D"
+ echo "SAL: libdir = $libdir"
+ install -m 0755 -d ${D}${sysconfdir}/sysconfig ${D}${sysconfdir}/init.d
+ install -m 0755 ${S}/ipmi.init ${D}${sysconfdir}/init.d/ipmi
+ install -m 0644 ${S}/ipmi.sysconf ${D}${sysconfdir}/sysconfig/ipmi
+ # SAL: mv: cannot stat `/localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/openipmi-2.0.19-r4/image/usr/lib64/perl5': No such file or directory
+ # SAL: real path to perl is /localdisk/loadbuild/slittle1/workspace/cgts_test_build/bitbake_build/tmp/work/x86_64-wrs-linux/perl-5.14.2-r8.3/package/usr/lib64/perl5 and it is a symlink to perl so no need to mv.
+ if [ -d ${D}${libdir}/perl5 ]
+ then
+ mv ${D}${libdir}/perl5 ${D}${libdir}/perl
+ fi
+
+ # for systemd
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0664 ${WORKDIR}/ipmi.service ${D}${systemd_unitdir}/system
+ sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/ipmi.service
+ install -d ${D}${libexecdir}
+ install -m 0755 ${WORKDIR}/openipmi-helper ${D}${libexecdir}
+}
+
+INITSCRIPT_NAME = "ipmi"
+INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
+
+SYSTEMD_SERVICE:${PN} = "ipmi.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-networking/recipes-support/openvpn/openvpn_2.5.7.bb b/meta-networking/recipes-support/openvpn/openvpn_2.5.7.bb
deleted file mode 100644
index a28c73ab5a..0000000000
--- a/meta-networking/recipes-support/openvpn/openvpn_2.5.7.bb
+++ /dev/null
@@ -1,77 +0,0 @@
-SUMMARY = "A full-featured SSL VPN solution via tun device."
-HOMEPAGE = "https://openvpn.net/"
-SECTION = "net"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b76abd82c14ee01cc34c4ff5e3627b89"
-DEPENDS = "lzo openssl iproute2 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-
-inherit autotools systemd update-rc.d pkgconfig
-
-SRC_URI = "http://swupdate.openvpn.org/community/releases/${BP}.tar.gz \
- file://0001-configure.ac-eliminate-build-path-from-openvpn-versi.patch \
- file://openvpn \
- "
-
-UPSTREAM_CHECK_URI = "https://openvpn.net/community-downloads"
-
-SRC_URI[sha256sum] = "08340a389905c84196b6cd750add1bc0fa2d46a1afebfd589c24120946c13e68"
-
-# CVE-2020-7224 and CVE-2020-27569 are for Aviatrix OpenVPN client, not for openvpn.
-CVE_CHECK_IGNORE += "CVE-2020-7224 CVE-2020-27569"
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME:${PN} = "openvpn"
-INITSCRIPT_PARAMS:${PN} = "start 10 2 3 4 5 . stop 70 0 1 6 ."
-
-CFLAGS += "-fno-inline"
-
-# I want openvpn to be able to read password from file (hrw)
-EXTRA_OECONF += "--enable-iproute2"
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '--disable-plugin-auth-pam', d)}"
-
-# Explicitly specify IPROUTE to bypass the configure-time check for /sbin/ip on the host.
-EXTRA_OECONF += "IPROUTE=${base_sbindir}/ip"
-
-EXTRA_OECONF += "SYSTEMD_UNIT_DIR=${systemd_system_unitdir} \
- TMPFILES_DIR=${nonarch_libdir}/tmpfiles.d \
- "
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
- "
-
-PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
-PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
-
-do_install:append() {
- install -d ${D}/${sysconfdir}/init.d
- install -m 755 ${WORKDIR}/openvpn ${D}/${sysconfdir}/init.d
-
- install -d ${D}/${sysconfdir}/openvpn
- install -d ${D}/${sysconfdir}/openvpn/server
- install -d ${D}/${sysconfdir}/openvpn/client
-
- install -d ${D}/${sysconfdir}/openvpn/sample
- install -m 644 ${S}/sample/sample-config-files/loopback-server ${D}${sysconfdir}/openvpn/sample/loopback-server.conf
- install -m 644 ${S}/sample/sample-config-files/loopback-client ${D}${sysconfdir}/openvpn/sample/loopback-client.conf
- install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-config-files
- install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-keys
- install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-scripts
- install -m 644 ${S}/sample/sample-config-files/* ${D}${sysconfdir}/openvpn/sample/sample-config-files
- install -m 644 ${S}/sample/sample-keys/* ${D}${sysconfdir}/openvpn/sample/sample-keys
- install -m 644 ${S}/sample/sample-scripts/* ${D}${sysconfdir}/openvpn/sample/sample-scripts
-
- install -d -m 710 ${D}/${localstatedir}/lib/openvpn
-}
-
-PACKAGES =+ " ${PN}-sample "
-
-RRECOMMENDS:${PN} = "kernel-module-tun"
-
-FILES:${PN}-dbg += "${libdir}/openvpn/plugins/.debug"
-FILES:${PN} += "${systemd_system_unitdir}/openvpn-server@.service \
- ${systemd_system_unitdir}/openvpn-client@.service \
- ${nonarch_libdir}/tmpfiles.d \
- "
-FILES:${PN}-sample = "${sysconfdir}/openvpn/sample/ \
- "
diff --git a/meta-networking/recipes-support/openvpn/openvpn_2.6.10.bb b/meta-networking/recipes-support/openvpn/openvpn_2.6.10.bb
new file mode 100644
index 0000000000..f8de78ff74
--- /dev/null
+++ b/meta-networking/recipes-support/openvpn/openvpn_2.6.10.bb
@@ -0,0 +1,76 @@
+SUMMARY = "A full-featured SSL VPN solution via tun device."
+HOMEPAGE = "https://openvpn.net/"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=89196bacc47ed37a5b242a535661a049"
+DEPENDS = "lzo lz4 openssl iproute2 libcap-ng ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+
+inherit autotools systemd update-rc.d pkgconfig
+
+SRC_URI = "http://swupdate.openvpn.org/community/releases/${BP}.tar.gz \
+ file://0001-configure.ac-eliminate-build-path-from-openvpn-versi.patch \
+ file://openvpn \
+ "
+
+UPSTREAM_CHECK_URI = "https://openvpn.net/community-downloads"
+
+SRC_URI[sha256sum] = "1993bbb7b9edb430626eaa24573f881fd3df642f427fcb824b1aed1fca1bcc9b"
+
+CVE_STATUS[CVE-2020-27569] = "not-applicable-config: Applies only Aviatrix OpenVPN client, not openvpn"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "openvpn"
+INITSCRIPT_PARAMS:${PN} = "start 10 2 3 4 5 . stop 70 0 1 6 ."
+
+CFLAGS += "-fno-inline"
+
+# I want openvpn to be able to read password from file (hrw)
+EXTRA_OECONF += "--enable-iproute2"
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '--disable-plugin-auth-pam', d)}"
+
+# Explicitly specify IPROUTE to bypass the configure-time check for /sbin/ip on the host.
+EXTRA_OECONF += "IPROUTE=${base_sbindir}/ip"
+
+EXTRA_OECONF += "SYSTEMD_UNIT_DIR=${systemd_system_unitdir} \
+ TMPFILES_DIR=${nonarch_libdir}/tmpfiles.d \
+ "
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
+ "
+
+PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
+
+do_install:append() {
+ install -d ${D}/${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/openvpn ${D}/${sysconfdir}/init.d
+
+ install -d ${D}/${sysconfdir}/openvpn
+ install -d ${D}/${sysconfdir}/openvpn/server
+ install -d ${D}/${sysconfdir}/openvpn/client
+
+ install -d ${D}/${sysconfdir}/openvpn/sample
+ install -m 644 ${S}/sample/sample-config-files/loopback-server ${D}${sysconfdir}/openvpn/sample/loopback-server.conf
+ install -m 644 ${S}/sample/sample-config-files/loopback-client ${D}${sysconfdir}/openvpn/sample/loopback-client.conf
+ install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-config-files
+ install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-keys
+ install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-scripts
+ install -m 644 ${S}/sample/sample-config-files/* ${D}${sysconfdir}/openvpn/sample/sample-config-files
+ install -m 644 ${S}/sample/sample-keys/* ${D}${sysconfdir}/openvpn/sample/sample-keys
+ install -m 644 ${S}/sample/sample-scripts/* ${D}${sysconfdir}/openvpn/sample/sample-scripts
+
+ install -d -m 710 ${D}/${localstatedir}/lib/openvpn
+}
+
+PACKAGES =+ " ${PN}-sample "
+
+RRECOMMENDS:${PN} = "kernel-module-tun"
+
+FILES:${PN}-dbg += "${libdir}/openvpn/plugins/.debug"
+FILES:${PN} += "${systemd_system_unitdir}/openvpn-server@.service \
+ ${systemd_system_unitdir}/openvpn-client@.service \
+ ${nonarch_libdir}/tmpfiles.d \
+ "
+FILES:${PN}-sample = "${sysconfdir}/openvpn/sample/ \
+ "
diff --git a/meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-when-build-this-file.patch b/meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-when-build-this-file.patch
new file mode 100644
index 0000000000..52bcc3b7e3
--- /dev/null
+++ b/meta-networking/recipes-support/pgpool2/pgpool2/0001-Fix-build-error-when-build-this-file.patch
@@ -0,0 +1,32 @@
+From f8ab74a76049f69adeebe92c62593547e05a075d Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@fujitsu.com>
+Date: Wed, 11 Jan 2023 17:22:41 +0900
+Subject: [PATCH] Fix build error when build this file.
+
+| snprintf.c:770:64: error: 'PG_STRERROR_R_BUFLEN' undeclared (first use in this function)
+| 770 | char errbuf[PG_STRERROR_R_BUFLEN];
+| | ^~~~~~~~~~~~~~~~~~~~
+
+PG_STRERROR_R_BUFLEN is defined in postgresql, but pgpool doesn't
+include the header of postgresql.
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
+---
+ src/parser/snprintf.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/parser/snprintf.c b/src/parser/snprintf.c
+index 84ebdb2..3387897 100644
+--- a/src/parser/snprintf.c
++++ b/src/parser/snprintf.c
+@@ -46,6 +46,7 @@
+ #include "pool_parser.h"
+ #include "stringinfo.h"
+ #include "utils/palloc.h"
++#include "postgresql/server/port.h"
+
+ /*
+ * We used to use the platform's NL_ARGMAX here, but that's a bad idea,
+--
+2.25.1
diff --git a/meta-networking/recipes-support/pgpool2/pgpool2/define_SIGNAL_ARGS.patch b/meta-networking/recipes-support/pgpool2/pgpool2/define_SIGNAL_ARGS.patch
new file mode 100644
index 0000000000..3ae9b1bd9a
--- /dev/null
+++ b/meta-networking/recipes-support/pgpool2/pgpool2/define_SIGNAL_ARGS.patch
@@ -0,0 +1,25 @@
+Define SIGNAL_ARGS if its not defined, this is flagged with
+newer C compilers e.g. clang18, where if it is not defined
+then it ends up with compiler errors
+
+/usr/include/postgresql/server/port.h:488:28: error: a parameter l
+ist without types is only allowed in a function definition
+| 488 | typedef void (*pqsigfunc) (SIGNAL_ARGS);
+| | ^
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/src/include/pool_type.h
++++ b/src/include/pool_type.h
+@@ -125,7 +125,9 @@ extern void ExceptionalCondition(const c
+ #define LONGALIGN(LEN) TYPEALIGN(ALIGNOF_LONG, (LEN))
+ #define DOUBLEALIGN(LEN) TYPEALIGN(ALIGNOF_DOUBLE, (LEN))
+ #define MAXALIGN(LEN) TYPEALIGN(MAXIMUM_ALIGNOF, (LEN))
+-
++#ifndef SIGNAL_ARGS
++#define SIGNAL_ARGS int postgres_signal_arg
++#endif
+ /*
+ * It seems that sockaddr_storage is now commonly used in place of sockaddr.
+ * So, define it if it is not define yet, and create new SockAddr structure
diff --git a/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service
new file mode 100644
index 0000000000..bf2d323639
--- /dev/null
+++ b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Pgpool-II
+After=syslog.target network.target
+
+[Service]
+
+User=postgres
+Group=postgres
+
+EnvironmentFile=-/etc/sysconfig/pgpool
+
+ExecStart=/usr/bin/pgpool -f /etc/pgpool-II/pgpool.conf $OPTS
+ExecStop=/usr/bin/pgpool -f /etc/pgpool-II/pgpool.conf $STOP_OPTS stop
+ExecReload=/usr/bin/pgpool -f /etc/pgpool-II/pgpool.conf reload
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig
new file mode 100644
index 0000000000..ea13089b7b
--- /dev/null
+++ b/meta-networking/recipes-support/pgpool2/pgpool2/pgpool.sysconfig
@@ -0,0 +1,7 @@
+# Options for pgpool
+
+# -n: don't run in daemon mode. does not detach control tty
+# -d: debug mode. lots of debug information will be printed
+
+#OPTS=" -d -n"
+OPTS=" -n"
diff --git a/meta-networking/recipes-support/pgpool2/pgpool2_4.5.1.bb b/meta-networking/recipes-support/pgpool2/pgpool2_4.5.1.bb
new file mode 100644
index 0000000000..ffb879952c
--- /dev/null
+++ b/meta-networking/recipes-support/pgpool2/pgpool2_4.5.1.bb
@@ -0,0 +1,50 @@
+SUMMARY = "A language independent connection pool server for PostgreSQL."
+
+DESCRIPTION = "Pgpool-II is a middleware that works between PostgreSQL \
+ servers and a PostgreSQL database client. It is distributed \
+ under a license similar to BSD and MIT. It provides the \
+ following features."
+
+HOMEPAGE = "http://pgpool.net"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e4b38de086d73e0521de0bbdbaa4a1a9"
+
+SRC_URI = "http://www.pgpool.net/mediawiki/images/pgpool-II-${PV}.tar.gz \
+ file://0001-Fix-build-error-when-build-this-file.patch \
+ file://define_SIGNAL_ARGS.patch \
+ file://pgpool.sysconfig \
+ file://pgpool.service \
+ "
+SRC_URI[sha256sum] = "8e14b0558a15dae8767c8e1acee3f2f6c7c08ebfffda66a359367eaaa56c3936"
+
+S = "${WORKDIR}/pgpool-II-${PV}"
+
+inherit autotools-brokensep systemd
+
+SYSTEMD_SERVICE:${PN} = "pgpool.service"
+
+PACKAGECONFIG ??= " openssl libmemcached postgresql \
+"
+PACKAGECONFIG[pam] = "--with-pam,,libpam"
+PACKAGECONFIG[openssl] = "--with-openssl,,openssl"
+PACKAGECONFIG[libmemcached] = "--with-memcached=${STAGING_INCDIR}/libmemcachedutil-1.0,,libmemcached"
+PACKAGECONFIG[postgresql] = "--with-pgsql-includedir=${STAGING_INCDIR}/postgresql,, postgresql"
+
+EXTRA_OECONF += "--disable-static \
+ --disable-rpath \
+ "
+FILES:${PN} += "${datadir}/pgpool-II/ "
+
+do_configure:append() {
+ echo "#define HAVE_STRCHRNUL 1" >> ${S}/src/include/config.h
+ sed -i "s,#define USE_REPL_SNPRINTF 1,/* #undef USE_REPL_SNPRINTF*/,g" ${S}/src/include/config.h
+}
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/pgpool-II
+ install -D -m 0644 ${WORKDIR}/pgpool.sysconfig ${D}${sysconfdir}/pgpool-II/pgpool.conf
+ install -D -m 0644 ${S}/src/sample/pcp.conf.sample ${D}${sysconfdir}/pgpool-II/pcp.conf
+ install -D -m 0644 ${S}/src/sample/pool_hba.conf.sample ${D}${sysconfdir}/pgpool-II/pool_hba.conf
+ install -Dm 0644 ${WORKDIR}/pgpool.service ${D}${systemd_system_unitdir}/pgpool.service
+}
diff --git a/meta-networking/recipes-support/phytool/phytool.bb b/meta-networking/recipes-support/phytool/phytool.bb
index c2c4335910..b918e50c68 100644
--- a/meta-networking/recipes-support/phytool/phytool.bb
+++ b/meta-networking/recipes-support/phytool/phytool.bb
@@ -2,7 +2,7 @@ SUMMARY = "PHY interface tool for Linux"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=39bba7d2cf0ba1036f2a6e2be52fe3f0"
-PV = "2+git${SRCPV}"
+PV = "2+git"
SRCREV = "8882328c08ba2efb13c049812098f1d0cb8adf0c"
SRC_URI = "git://github.com/wkz/phytool.git;branch=master;protocol=https"
diff --git a/meta-networking/recipes-support/pimd/pimd/0001-configure-Dont-use-uname-to-determine-target-OS.patch b/meta-networking/recipes-support/pimd/pimd/0001-configure-Dont-use-uname-to-determine-target-OS.patch
index eb549ded9d..cacb84a1ca 100644
--- a/meta-networking/recipes-support/pimd/pimd/0001-configure-Dont-use-uname-to-determine-target-OS.patch
+++ b/meta-networking/recipes-support/pimd/pimd/0001-configure-Dont-use-uname-to-determine-target-OS.patch
@@ -7,6 +7,8 @@ Helps with cross-compiling
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-networking/recipes-support/pimd/pimd_2.3.2.bb b/meta-networking/recipes-support/pimd/pimd_2.3.2.bb
index 2b622ae6d0..647f9df515 100644
--- a/meta-networking/recipes-support/pimd/pimd_2.3.2.bb
+++ b/meta-networking/recipes-support/pimd/pimd_2.3.2.bb
@@ -4,10 +4,9 @@ SECTION = "net"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=94f108f91fab720d62425770b70dd790"
-SRC_URI = "ftp://ftp.troglobit.com/pimd/${BP}.tar.gz \
+SRC_URI = "https://ftp.troglobit.com/pimd/${BP}.tar.gz \
file://0001-configure-Dont-use-uname-to-determine-target-OS.patch \
"
-SRC_URI[md5sum] = "a3c03e40540980b2c06e265a17988e60"
SRC_URI[sha256sum] = "c77a9812751f114490a28a6839b16aac8b020c8d9fd6aa22bf3880c054e19f1d"
EXTRA_OECONF:append:libc-musl = " --embedded-libc"
diff --git a/meta-networking/recipes-support/rdma-core/rdma-core/0001-cmake-Allow-SYSTEMCTL_BIN-to-be-overridden-from-envi.patch b/meta-networking/recipes-support/rdma-core/rdma-core/0001-cmake-Allow-SYSTEMCTL_BIN-to-be-overridden-from-envi.patch
new file mode 100644
index 0000000000..e181ee2872
--- /dev/null
+++ b/meta-networking/recipes-support/rdma-core/rdma-core/0001-cmake-Allow-SYSTEMCTL_BIN-to-be-overridden-from-envi.patch
@@ -0,0 +1,31 @@
+From 209f346d55eeaf74e21c541d70ec43d39b6c8c3c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 27 May 2023 17:22:10 -0700
+Subject: [PATCH] cmake: Allow SYSTEMCTL_BIN to be overridden from environment
+
+This allows to encode correct paths which are inside the target rootfs
+for systemctl
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ CMakeLists.txt | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 98985e7ee..001efb800 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -237,7 +237,10 @@ else()
+ endif()
+ endif()
+
+-find_program(SYSTEMCTL_BIN systemctl HINTS "/usr/bin" "/bin")
++if (NOT SYSTEMCTL_BIN)
++ find_program(SYSTEMCTL_BIN systemctl HINTS "/usr/bin" "/bin")
++endif()
++
+ if (NOT SYSTEMCTL_BIN)
+ set (SYSTEMCTL_BIN "/bin/systemctl")
+ endif()
diff --git a/meta-networking/recipes-support/rdma-core/rdma-core/0001-examples-Include-alloca.h-for-strdupa.patch b/meta-networking/recipes-support/rdma-core/rdma-core/0001-examples-Include-alloca.h-for-strdupa.patch
deleted file mode 100644
index cb472d9db9..0000000000
--- a/meta-networking/recipes-support/rdma-core/rdma-core/0001-examples-Include-alloca.h-for-strdupa.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From a6c547e46bbadd2c08be9944a85308f6625263cb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 29 Aug 2022 23:15:44 -0700
-Subject: [PATCH] examples: Include alloca.h for strdupa
-
-musl defines strdupa via a macro which uses alloca() therefore include
-the header to get the prototype
-
-Upstream-Status: Submitted [https://github.com/linux-rdma/rdma-core/pull/1212]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libibverbs/examples/asyncwatch.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libibverbs/examples/asyncwatch.c b/libibverbs/examples/asyncwatch.c
-index 724796e58..842b94180 100644
---- a/libibverbs/examples/asyncwatch.c
-+++ b/libibverbs/examples/asyncwatch.c
-@@ -36,6 +36,7 @@
- #include <endian.h>
- #include <getopt.h>
- #include <string.h>
-+#include <alloca.h>
-
- #include <util/compiler.h>
- #include <infiniband/verbs.h>
---
-2.37.2
-
diff --git a/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-libgen.h-for-basename.patch b/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-libgen.h-for-basename.patch
new file mode 100644
index 0000000000..a093e47048
--- /dev/null
+++ b/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-libgen.h-for-basename.patch
@@ -0,0 +1,58 @@
+From ae6adc4c748e67919fdf8ae1d44c619ee104c271 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 11:37:41 -0700
+Subject: [PATCH] include libgen.h for basename
+
+basename prototype has been removed from string.h from latest musl [1]
+compilers e.g. clang-18 flags the absense of prototype as error. therefore
+include libgen.h for providing it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [https://github.com/linux-rdma/rdma-core/pull/1443]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ kernel-boot/rdma_rename.c | 1 +
+ librdmacm/examples/rping.c | 1 +
+ providers/mlx5/mlx5_vfio.c | 1 +
+ 3 files changed, 3 insertions(+)
+
+diff --git a/kernel-boot/rdma_rename.c b/kernel-boot/rdma_rename.c
+index 4af9e4a39..5193ac411 100644
+--- a/kernel-boot/rdma_rename.c
++++ b/kernel-boot/rdma_rename.c
+@@ -2,6 +2,7 @@
+ /* Copyright (c) 2019, Mellanox Technologies. All rights reserved. See COPYING file */
+
+ #define _GNU_SOURCE
++#include <libgen.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff --git a/librdmacm/examples/rping.c b/librdmacm/examples/rping.c
+index cc16ad910..0f1321458 100644
+--- a/librdmacm/examples/rping.c
++++ b/librdmacm/examples/rping.c
+@@ -33,6 +33,7 @@
+ #define _GNU_SOURCE
+ #include <endian.h>
+ #include <getopt.h>
++#include <libgen.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <stdio.h>
+diff --git a/providers/mlx5/mlx5_vfio.c b/providers/mlx5/mlx5_vfio.c
+index cd0c41462..4d064b1fc 100644
+--- a/providers/mlx5/mlx5_vfio.c
++++ b/providers/mlx5/mlx5_vfio.c
+@@ -6,6 +6,7 @@
+ #define _GNU_SOURCE
+ #include <config.h>
+
++#include <libgen.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+--
+2.44.0
+
diff --git a/meta-networking/recipes-support/rdma-core/rdma-core_42.0.bb b/meta-networking/recipes-support/rdma-core/rdma-core_42.0.bb
deleted file mode 100644
index 86243a52c5..0000000000
--- a/meta-networking/recipes-support/rdma-core/rdma-core_42.0.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Userspace support for InfiniBand/RDMA verbs"
-DESCRIPTION = "This is the userspace components for the Linux Kernel's drivers Infiniband/RDMA subsystem."
-SECTION = "libs"
-
-DEPENDS = "libnl"
-RDEPENDS:${PN} = "bash perl"
-
-SRC_URI = "git://github.com/linux-rdma/rdma-core.git;branch=master;protocol=https \
- file://0001-examples-Include-alloca.h-for-strdupa.patch \
- "
-SRCREV = "196bad56ed060612e22674b668b5ec3d8659ade3"
-S = "${WORKDIR}/git"
-
-#Default Dual License https://github.com/linux-rdma/rdma-core/blob/master/COPYING.md
-LICENSE = "BSD-2-Clause | GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING.BSD_FB;md5=0ec18bae1a9df92c8d6ae01f94a289ae \
- file://COPYING.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-EXTRA_OECMAKE = " \
- -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=${systemd_system_unitdir} \
- -DCMAKE_INSTALL_PERLDIR=${libdir}/perl5/${@get_perl_version(d)} \
- -DNO_MAN_PAGES=1 \
-"
-
-LTO = ""
-
-FILES_SOLIBSDEV = ""
-FILES:${PN} += "${libdir}/*"
-INSANE_SKIP:${PN} += "dev-so"
-
-inherit cmake cpan-base pkgconfig python3native systemd
-
-SYSTEMD_SERVICE:${PN} = " \
- srp_daemon.service \
- iwpmd.service \
- ibacm.socket \
- rdma-load-modules@.service \
- srp_daemon_port@.service \
- rdma-hw.target \
- ibacm.service \
-"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
diff --git a/meta-networking/recipes-support/rdma-core/rdma-core_50.0.bb b/meta-networking/recipes-support/rdma-core/rdma-core_50.0.bb
new file mode 100644
index 0000000000..ab4de22a51
--- /dev/null
+++ b/meta-networking/recipes-support/rdma-core/rdma-core_50.0.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Userspace support for InfiniBand/RDMA verbs"
+DESCRIPTION = "This is the userspace components for the Linux Kernel's drivers Infiniband/RDMA subsystem."
+SECTION = "libs"
+
+DEPENDS = "libnl"
+RDEPENDS:${PN} = "bash perl"
+
+SRC_URI = "git://github.com/linux-rdma/rdma-core.git;branch=master;protocol=https \
+ file://0001-cmake-Allow-SYSTEMCTL_BIN-to-be-overridden-from-envi.patch \
+ file://0001-include-libgen.h-for-basename.patch \
+"
+SRCREV = "bc6b4bc134532e952fe7f8efc251e1f89b912098"
+S = "${WORKDIR}/git"
+
+#Default Dual License https://github.com/linux-rdma/rdma-core/blob/master/COPYING.md
+LICENSE = "BSD-2-Clause | GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING.BSD_FB;md5=0ec18bae1a9df92c8d6ae01f94a289ae \
+ file://COPYING.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+EXTRA_OECMAKE = " \
+ -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=${systemd_system_unitdir} \
+ -DSYSTEMCTL_BIN=${base_bindir}/systemctl \
+ -DCMAKE_INSTALL_PERLDIR=${libdir}/perl5/${@get_perl_version(d)} \
+ -DNO_MAN_PAGES=1 \
+"
+
+LTO = ""
+
+FILES_SOLIBSDEV = ""
+FILES:${PN} += "${libdir}/*"
+INSANE_SKIP:${PN} += "dev-so"
+
+inherit cmake cpan-base pkgconfig python3native python3targetconfig systemd
+
+SYSTEMD_SERVICE:${PN} = " \
+ srp_daemon.service \
+ iwpmd.service \
+ ibacm.socket \
+ rdma-load-modules@.service \
+ srp_daemon_port@.service \
+ rdma-hw.target \
+ ibacm.service \
+"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
diff --git a/meta-networking/recipes-support/ruli/ruli_0.36.bb b/meta-networking/recipes-support/ruli/ruli_0.36.bb
index 9de4cc699a..178906b7b5 100644
--- a/meta-networking/recipes-support/ruli/ruli_0.36.bb
+++ b/meta-networking/recipes-support/ruli/ruli_0.36.bb
@@ -18,7 +18,7 @@ SRC_URI = "http://download.savannah.gnu.org/releases/ruli/ruli_${PV}.orig.tar.gz
SRC_URI[md5sum] = "e73fbfdeadddb68a703a70cea5271468"
SRC_URI[sha256sum] = "11d32def5b514748fbd9ea8c88049ae99e1bb358efc74eb91a4d268a3999dbfa"
-EXTRA_OEMAKE = 'CC="${CC}" OOP_BASE_DIR="${STAGING_EXECPREFIXDIR}" \
+EXTRA_OEMAKE = 'CC="${CC}" CPPFLAGS="${CFLAGS}" OOP_BASE_DIR="${STAGING_EXECPREFIXDIR}" \
INSTALL_BASE_DIR="${D}${exec_prefix}" \
OOP_LIB_DIR=${STAGING_EXECPREFIXDIR}/${baselib} \
INSTALL_LIB_DIR=${D}${libdir}'
diff --git a/meta-networking/recipes-support/smcroute/smcroute_2.5.5.bb b/meta-networking/recipes-support/smcroute/smcroute_2.5.5.bb
deleted file mode 100644
index b0b96bed8f..0000000000
--- a/meta-networking/recipes-support/smcroute/smcroute_2.5.5.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Static Multicast Routing Daemon"
-DESCRIPTION = "SMCRoute is a daemon and command line tool to manipulate the multicast routing table in the UNIX kernel."
-HOMEPAGE = "http://troglobit.github.io/smcroute.html"
-SECTION = "net"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRCREV = "9ca7441add4427a91fe90c34ae4a178ed9a50553"
-SRC_URI = "git://github.com/troglobit/smcroute.git;branch=master;protocol=https"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
diff --git a/meta-networking/recipes-support/smcroute/smcroute_2.5.6.bb b/meta-networking/recipes-support/smcroute/smcroute_2.5.6.bb
new file mode 100644
index 0000000000..09752825c2
--- /dev/null
+++ b/meta-networking/recipes-support/smcroute/smcroute_2.5.6.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Static Multicast Routing Daemon"
+DESCRIPTION = "SMCRoute is a daemon and command line tool to manipulate the multicast routing table in the UNIX kernel."
+HOMEPAGE = "http://troglobit.github.io/smcroute.html"
+SECTION = "net"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRCREV = "999bdd724a1f963ac8bfd0598ffdd2a3d651646e"
+SRC_URI = "git://github.com/troglobit/smcroute.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/meta-networking/recipes-support/sngrep/sngrep_1.8.0.bb b/meta-networking/recipes-support/sngrep/sngrep_1.8.0.bb
new file mode 100644
index 0000000000..2824dde883
--- /dev/null
+++ b/meta-networking/recipes-support/sngrep/sngrep_1.8.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Ncurses SIP Messages flow viewer"
+DESCRIPTION = "Tool for displaying SIP calls message flows from terminal"
+HOMEPAGE = "https://github.com/irontec/sngrep"
+BUGTRACKER = "https://github.com/irontec/sngrep/issues"
+SECTION = "console/network"
+LICENSE = "GPL-3.0-or-later & OpenSSL"
+LIC_FILES_CHKSUM = "\
+ file://LICENSE;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE.OpenSSL;md5=e39170c41c6f83de36426dbf49a03632 \
+ file://README;beginline=100;endline=124;md5=758a88cf2b27572df05996a3810066b3 \
+"
+
+DEPENDS = "\
+ libpcap \
+ ncurses \
+"
+
+SRC_URI = "git://github.com/irontec/sngrep.git;protocol=https;branch=master"
+SRCREV = "f7b36df3b79617892958b67cb4ad9313c6ce72d2"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG ?= "\
+ openssl \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+ unicode \
+"
+
+PACKAGECONFIG[openssl] = "-DWITH_OPENSSL=ON,-DWITH_OPENSSL=OFF,openssl"
+PACKAGECONFIG[gnutls] = "-DWITH_GNUTLS=ON,-DWITH_GNUTLS=OFF,gnutls libgcrypt"
+PACKAGECONFIG[pcre] = "-DWITH_PCRE=OFF,-DWITH_PCRE=OFF,libpcre"
+PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib"
+PACKAGECONFIG[unicode] = "-DWITH_UNICODE=ON,-DWITH_UNICODE=OFF"
+PACKAGECONFIG[ipv6] = "-DUSE_IPV6=ON,-DUSE_IPV6=OFF"
+PACKAGECONFIG[eep] = "-DUSE_EEP=ON,-DUSE_EEP=OFF"
diff --git a/meta-networking/recipes-support/spice/libcacard_2.8.1.bb b/meta-networking/recipes-support/spice/libcacard_2.8.1.bb
new file mode 100644
index 0000000000..65f2f80ace
--- /dev/null
+++ b/meta-networking/recipes-support/spice/libcacard_2.8.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "This library provides emulation of smart cards to a virtual card reader running in a guest virtual machine."
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=79ffa0ec772fa86740948cb7327a0cc7"
+
+DEPENDS = "glib-2.0 pcsc-lite nss"
+
+SRCREV = "7b07684ea6698d4885ff2062350ad8798a04de42"
+
+SRC_URI = "git://gitlab.freedesktop.org/spice/libcacard.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+do_configure:prepend() {
+ echo ${PV} > ${S}/.tarball-version
+}
diff --git a/meta-networking/recipes-support/spice/phodav_3.0.bb b/meta-networking/recipes-support/spice/phodav_3.0.bb
new file mode 100644
index 0000000000..08c65eb259
--- /dev/null
+++ b/meta-networking/recipes-support/spice/phodav_3.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "phodav is a WebDav server implementation using libsoup (RFC 4918)."
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = " \
+ glib-2.0 \
+ libsoup \
+"
+
+GTKDOC_MESON_OPTION = 'gtk_doc'
+GTKDOC_MESON_ENABLE_FLAG = 'enabled'
+GTKDOC_MESON_DISABLE_FLAG = 'disabled'
+
+PACKAGECONFIG ??= "avahi"
+PACKAGECONFIG[avahi] = "-Davahi=enabled,-Davahi=disabled,avahi"
+
+inherit pkgconfig gnomebase gettext gtk-doc
+
+EXTRA_OEMESON += "-Dsystemdsystemunitdir=${systemd_system_unitdir}"
+
+SRC_URI = "https://download.gnome.org/sources/phodav/3.0/phodav-${PV}.tar.xz;name=archive"
+SRC_URI[archive.sha256sum] = "392ec2d06d50300dcff1ef269a2a985304e29bce3520002fca29f2edc1d138d1"
+
+FILES:${PN} += "${libdir} ${systemd_system_unitdir}"
diff --git a/meta-networking/recipes-support/spice/spice-gtk_0.42.bb b/meta-networking/recipes-support/spice/spice-gtk_0.42.bb
new file mode 100644
index 0000000000..82ce7067d9
--- /dev/null
+++ b/meta-networking/recipes-support/spice/spice-gtk_0.42.bb
@@ -0,0 +1,68 @@
+SUMMARY = "A Gtk client and libraries for SPICE remote desktop servers."
+HOMEPAGE = "https://spice-space.org"
+LICENSE = "LGPL-2.1-only & BSD-3-Clause & GPL-2.0-only"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://subprojects/spice-common/COPYING;md5=4b54a1fd55a448865a0b32d41598759d \
+ file://subprojects/keycodemapdb/LICENSE.BSD;md5=5ae30ba4123bc4f2fa49aa0b0dce887b \
+ file://subprojects/keycodemapdb/LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
+"
+
+SRCREV = "f04479c16f0969fb394ebe74b6eff74e560a42f0"
+
+SRC_URI = "gitsm://gitlab.freedesktop.org/spice/spice-gtk.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland wayland-native wayland-protocols', '', d)} \
+ acl \
+ cyrus-sasl \
+ gstreamer1.0 \
+ gstreamer1.0-plugins-base \
+ gstreamer1.0-vaapi \
+ gtk+3 \
+ jpeg \
+ json-glib \
+ libcap-ng \
+ libepoxy \
+ libopus \
+ libusb1 \
+ lz4 \
+ pixman \
+ python3-pyparsing-native \
+ python3-six-native \
+ spice-protocol \
+ usbredir \
+ usbutils \
+ zlib \
+"
+DEPENDS:append:libc-musl = " libucontext"
+
+RDEPENDS:${PN} = "python3-pyparsing python3-six usbids"
+
+inherit meson pkgconfig vala gobject-introspection features_check gtk-doc
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_OPTION = 'gtk_doc'
+GTKDOC_MESON_ENABLE_FLAG = 'enabled'
+GTKDOC_MESON_DISABLE_FLAG = 'disabled'
+
+do_configure:prepend() {
+ echo ${PV} > ${S}/.tarball-version
+}
+
+PACKAGECONFIG ??= "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vapi', '', d)} smartcard"
+PACKAGECONFIG[vapi] = "-Dvapi=enabled,-Dvapi=disabled"
+PACKAGECONFIG[smartcard] = "-Dsmartcard=enabled,-Dsmartcard=disabled,libcacard"
+
+EXTRA_OEMESON = "-Dpie=true -Dusb-ids-path=${datadir}/usb.ids "
+EXTRA_OEMESON:append:libc-musl = " -Dcoroutine=libucontext"
+
+LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -Wl,--undefined-version', '', d)}"
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-networking/recipes-support/spice/spice-guest-vdagent_0.22.1.bb b/meta-networking/recipes-support/spice/spice-guest-vdagent_0.22.1.bb
new file mode 100644
index 0000000000..3af973eed1
--- /dev/null
+++ b/meta-networking/recipes-support/spice/spice-guest-vdagent_0.22.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Spice agent for Linux"
+HOMEPAGE = "https://spice-space.org"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRCREV = "aa08162f036840d3e33502dc0a836b03b9cec97c"
+
+SRC_URI = "git://gitlab.freedesktop.org/spice/linux/vd_agent.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "opengl x11"
+
+inherit autotools pkgconfig features_check
+
+DEPENDS = "glib-2.0 alsa-lib gtk4 dbus libdrm spice-protocol libxfixes xrandr xinerama libx11"
+
+EXTRA_OECONF = " \
+ --with-gtk4 \
+ --enable-pie \
+"
+
+FILES:${PN} += "${datadir}"
+
diff --git a/meta-networking/recipes-support/spice/spice-protocol_0.14.4.bb b/meta-networking/recipes-support/spice/spice-protocol_0.14.4.bb
index 9ce019ed86..3c8458baac 100644
--- a/meta-networking/recipes-support/spice/spice-protocol_0.14.4.bb
+++ b/meta-networking/recipes-support/spice/spice-protocol_0.14.4.bb
@@ -16,4 +16,6 @@ S = "${WORKDIR}/git"
inherit meson pkgconfig
+ALLOW_EMPTY:${PN} = "1"
+
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch b/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch
deleted file mode 100644
index e63cbe3b72..0000000000
--- a/meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 0726ce6d6f52e135e28f15ca8392568c84909b1d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 16 Jun 2018 16:21:39 -0700
-Subject: [PATCH] Convert pthread_t to be numeric
-
-typecast pthread_t to unsigned long
-pthread_t is implemented as a struct point in musl and its as per standard
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- server/red-channel.c | 5 +++--
- server/red-client.c | 6 +++---
- 2 files changed, 6 insertions(+), 5 deletions(-)
-
---- a/server/red-channel.c
-+++ b/server/red-channel.c
-@@ -204,7 +204,7 @@ red_channel_constructed(GObject *object)
- {
- RedChannel *self = RED_CHANNEL(object);
-
-- red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", self->priv->thread_id);
-+ red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", (unsigned long)self->priv->thread_id);
-
- RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self);
-
-@@ -479,7 +479,8 @@ void red_channel_remove_client(RedChanne
- "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
- "If one of the threads is != io-thread && != vcpu-thread, "
- "this might be a BUG",
-- channel->priv->thread_id, pthread_self());
-+ (unsigned long)channel->priv->thread_id,
-+ (unsigned long)pthread_self());
- }
- spice_return_if_fail(channel);
- link = g_list_find(channel->priv->clients, rcc);
---- a/server/red-client.c
-+++ b/server/red-client.c
-@@ -180,7 +180,7 @@ void red_client_migrate(RedClient *clien
- "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
- "If one of the threads is != io-thread && != vcpu-thread,"
- " this might be a BUG",
-- client->thread_id, pthread_self());
-+ (unsigned long)client->thread_id, (unsigned long)pthread_self());
- }
- FOREACH_CHANNEL_CLIENT(client, rcc) {
- if (red_channel_client_is_connected(rcc)) {
-@@ -199,8 +199,8 @@ void red_client_destroy(RedClient *clien
- "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
- "If one of the threads is != io-thread && != vcpu-thread,"
- " this might be a BUG",
-- client->thread_id,
-- pthread_self());
-+ (unsigned long)client->thread_id,
-+ (unsigned long)pthread_self());
- }
- red_client_set_disconnecting(client);
- FOREACH_CHANNEL_CLIENT(client, rcc) {
diff --git a/meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch b/meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch
deleted file mode 100644
index d04bee95fa..0000000000
--- a/meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From a2af005b5d4a62839e56f42a43df793356e78f58 Mon Sep 17 00:00:00 2001
-From: "Hongzhi.Song" <hongzhi.song@windriver.com>
-Date: Tue, 4 Jun 2019 03:58:17 -0400
-Subject: [PATCH] Fix compile errors on Linux 32bit system
-
-There are folowing compile errors on Linux 32bit system:
-
-red-channel.c:207:73: error: format '%x' expects argument of type
-'unsigned int', but argument 7 has type 'long unsigned int' [-Werror=format=]
-|207| red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x",
- ~~~~~~~~~~~~~~~~~~~~~^
- self->priv->thread_id);
- ~~~~~~~~~~~~~~~~~~~~~^
-
-On 32bit system, #define G_GSIZE_MODIFIER "". But the type of
-'self->priv->thread_id' is 'unsigned long int' which should match '%lx'
-not '%x'.
-
-So we should recovery the <0x%" G_GSIZE_MODIFIER "x"> to <0x%lx">.
-And others files modification are similar to G_GSIZE_MODIFIER.
-
-Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
----
-Upstream-Status: Submitted [https://lists.freedesktop.org/archives/spice-devel/2019-June/049285.html]
-
- server/red-channel.c | 6 +++---
- server/red-client.c | 8 ++++----
- server/red-replay-qxl.c | 2 +-
- 3 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/server/red-channel.c b/server/red-channel.c
-index f81142d..6a03ec2 100644
---- a/server/red-channel.c
-+++ b/server/red-channel.c
-@@ -202,7 +202,7 @@ red_channel_constructed(GObject *object)
- {
- RedChannel *self = RED_CHANNEL(object);
-
-- red_channel_debug(self, "thread_id 0x%" G_GSIZE_MODIFIER "x", (unsigned long)self->priv->thread_id);
-+ red_channel_debug(self, "thread_id 0x%lx", (unsigned long)self->priv->thread_id);
-
- RedChannelClass *klass = RED_CHANNEL_GET_CLASS(self);
-
-@@ -473,8 +473,8 @@ void red_channel_remove_client(RedChannel *channel, RedChannelClient *rcc)
-
- if (!pthread_equal(pthread_self(), channel->priv->thread_id)) {
- red_channel_warning(channel,
-- "channel->thread_id (0x%" G_GSIZE_MODIFIER "x) != "
-- "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
-+ "channel->thread_id (0x%lx) != "
-+ "pthread_self (0x%lx)."
- "If one of the threads is != io-thread && != vcpu-thread, "
- "this might be a BUG",
- (unsigned long)channel->priv->thread_id,
-diff --git a/server/red-client.c b/server/red-client.c
-index 2b859cb..ff4da2a 100644
---- a/server/red-client.c
-+++ b/server/red-client.c
-@@ -174,8 +174,8 @@ void red_client_migrate(RedClient *client)
- RedChannel *channel;
-
- if (!pthread_equal(pthread_self(), client->thread_id)) {
-- spice_warning("client->thread_id (0x%" G_GSIZE_MODIFIER "x) != "
-- "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
-+ spice_warning("client->thread_id (0x%lx) != "
-+ "pthread_self (0x%lx)."
- "If one of the threads is != io-thread && != vcpu-thread,"
- " this might be a BUG",
- (unsigned long)client->thread_id, (unsigned long)pthread_self());
-@@ -193,8 +193,8 @@ void red_client_destroy(RedClient *client)
- RedChannelClient *rcc;
-
- if (!pthread_equal(pthread_self(), client->thread_id)) {
-- spice_warning("client->thread_id (0x%" G_GSIZE_MODIFIER "x) != "
-- "pthread_self (0x%" G_GSIZE_MODIFIER "x)."
-+ spice_warning("client->thread_id (0x%lx) != "
-+ "pthread_self (0x%lx)."
- "If one of the threads is != io-thread && != vcpu-thread,"
- " this might be a BUG",
- (unsigned long)client->thread_id,
-diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c
-index 6d34818..0deb406 100644
---- a/server/red-replay-qxl.c
-+++ b/server/red-replay-qxl.c
-@@ -264,7 +264,7 @@ static replay_t read_binary(SpiceReplay *replay, const char *prefix, size_t *siz
- exit(1);
- }
- if ((ret = inflate(&strm, Z_NO_FLUSH)) != Z_STREAM_END) {
-- spice_error("inflate error %d (disc: %" G_GSSIZE_FORMAT ")",
-+ spice_error("inflate error %d (disc: %li)",
- ret, *size - strm.total_out);
- if (ret == Z_DATA_ERROR) {
- /* last operation may be wrong. since we do the recording
---
-2.8.1
-
diff --git a/meta-networking/recipes-support/spice/spice/0001-configure.ac-explicitly-link-to-jpeg-lib.patch b/meta-networking/recipes-support/spice/spice/0001-configure.ac-explicitly-link-to-jpeg-lib.patch
deleted file mode 100644
index 2d05143dbf..0000000000
--- a/meta-networking/recipes-support/spice/spice/0001-configure.ac-explicitly-link-to-jpeg-lib.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 6ffd9db8e02e411bda2f421abf7951dab6cf0e38 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 5 Feb 2021 01:43:44 -0800
-Subject: [PATCH] configure.ac: explicitly link to jpeg lib
-
-Since oe has added lib jpeg to the depends, explicitly link to jpeg lib
-to workaround build failure with autoconf 2.7
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 14 +-------------
- 1 file changed, 1 insertion(+), 13 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 1ce81f91..8bbb50de 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -191,24 +191,12 @@ AC_SUBST(SSL_CFLAGS)
- AC_SUBST(SSL_LIBS)
- AS_VAR_APPEND([SPICE_REQUIRES], [" openssl"])
-
--AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
-- AC_MSG_CHECKING([for jpeglib.h])
-- AC_TRY_CPP(
--[#include <stdio.h>
--#undef PACKAGE
--#undef VERSION
--#undef HAVE_STDLIB_H
--#include <jpeglib.h>],
-- JPEG_LIBS='-ljpeg'
-- AC_MSG_RESULT($jpeg_ok),
-- AC_MSG_ERROR([jpeglib.h not found])),
-- AC_MSG_ERROR([libjpeg not found]))
-+JPEG_LIBS='-ljpeg'
- AC_SUBST(JPEG_LIBS)
-
- AC_CHECK_LIB(z, deflate, Z_LIBS='-lz', AC_MSG_ERROR([zlib not found]))
- AC_SUBST(Z_LIBS)
-
--
- AC_ARG_ENABLE([manual],
- AS_HELP_STRING([--enable-manual=@<:@auto/yes/no@:>@],
- [Build SPICE manual]),
---
-2.29.2
-
diff --git a/meta-networking/recipes-support/spice/spice_git.bb b/meta-networking/recipes-support/spice/spice_git.bb
index 1887a5582f..419316a26e 100644
--- a/meta-networking/recipes-support/spice/spice_git.bb
+++ b/meta-networking/recipes-support/spice/spice_git.bb
@@ -13,53 +13,36 @@ architectures."
LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-PV = "0.14.2+git${SRCPV}"
+PV = "0.15.2"
-SRCREV_spice = "7cbd70b931db76c69c89c2d9d5d704f67381a81b"
-SRCREV_spice-common = "4fc4c2db36c7f07b906e9a326a9d3dc0ae6a2671"
+SRCREV = "0c2c1413a8b387ea597a95b6c867470a7c56c8ab"
-SRCREV_FORMAT = "spice_spice-common"
-
-SRC_URI = " \
- git://anongit.freedesktop.org/spice/spice;name=spice;branch=master \
- git://anongit.freedesktop.org/spice/spice-common;destsuffix=git/subprojects/spice-common;name=spice-common;branch=master \
- file://0001-Convert-pthread_t-to-be-numeric.patch \
- file://0001-Fix-compile-errors-on-Linux-32bit-system.patch \
- file://0001-configure.ac-explicitly-link-to-jpeg-lib.patch \
-"
+SRC_URI = "gitsm://gitlab.freedesktop.org/spice/spice;branch=master;protocol=https"
S = "${WORKDIR}/git"
-CVE_CHECK_IGNORE += "\
- CVE-2016-0749 \
- CVE-2016-2150 \
- CVE-2018-10893 \
-"
+CVE_STATUS[CVE-2018-10893] = "fixed-version: patched already, caused by inaccurate CPE in the NVD database."
-inherit autotools gettext python3native python3-dir pkgconfig
+inherit meson gettext python3native python3-dir pkgconfig
-DEPENDS += "spice-protocol jpeg pixman alsa-lib glib-2.0 python3-pyparsing-native python3-six-native glib-2.0-native"
+DEPENDS = "spice-protocol jpeg pixman alsa-lib glib-2.0 gdk-pixbuf lz4 orc python3-pyparsing-native python3-six-native glib-2.0-native zlib"
DEPENDS:append:class-nativesdk = " nativesdk-openssl"
export PYTHON="${STAGING_BINDIR_NATIVE}/python3-native/python3"
-CFLAGS:append = " -Wno-error"
+do_configure:prepend() {
+ echo ${PV} > ${S}/.tarball-version
+}
PACKAGECONFIG:class-native = ""
PACKAGECONFIG:class-nativesdk = ""
-PACKAGECONFIG ?= "sasl"
+PACKAGECONFIG ?= "sasl opus smartcard gstreamer"
-PACKAGECONFIG[celt051] = "--enable-celt051,--disable-celt051,celt051"
-PACKAGECONFIG[smartcard] = "--enable-smartcard,--disable-smartcard,libcacard,"
-PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl,"
-PACKAGECONFIG[client] = "--enable-client,--disable-client,,"
-PACKAGECONFIG[gui] = "--enable-gui,--disable-gui,,"
-PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus,"
-PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,,"
-PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama,"
+PACKAGECONFIG[gstreamer] = "-Dgstreamer=1.0,-Dgstreamer=no,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[smartcard] = "-Dsmartcard=enabled,-Dsmartcard=disabled,libcacard,libcacard"
+PACKAGECONFIG[sasl] = "-Dsasl=true,-Dsasl=false,cyrus-sasl,"
+PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus,"
-COMPATIBLE_HOST = '(x86_64|i.86).*-linux'
+COMPATIBLE_HOST = '(x86_64|i.86|aarch64).*-linux'
BBCLASSEXTEND = "native nativesdk"
-
-EXTRA_OECONF:append:toolchain-clang = " --disable-werror"
diff --git a/meta-networking/recipes-support/spice/usbredir_0.13.0.bb b/meta-networking/recipes-support/spice/usbredir_0.13.0.bb
new file mode 100644
index 0000000000..3a73f9b189
--- /dev/null
+++ b/meta-networking/recipes-support/spice/usbredir_0.13.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "usbredir libraries and utilities"
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4b54a1fd55a448865a0b32d41598759d \
+"
+
+DEPENDS = "libusb1 glib-2.0"
+
+SRCREV = "5fc0e1c43194d948545941d408f4c10d084eb6ed"
+
+SRC_URI = "git://gitlab.freedesktop.org/spice/usbredir;branch=main;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-networking/recipes-support/spice/usbredir_0.9.0.bb b/meta-networking/recipes-support/spice/usbredir_0.9.0.bb
deleted file mode 100644
index 452491023e..0000000000
--- a/meta-networking/recipes-support/spice/usbredir_0.9.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "usbredir libraries and utilities"
-
-LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4b54a1fd55a448865a0b32d41598759d \
-"
-
-DEPENDS = "libusb1"
-
-SRCREV = "bca484fc6f206ab9da2f73e8a0118fad45374d4e"
-
-SRC_URI = " \
- git://anongit.freedesktop.org/spice/usbredir;branch=master \
-"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-networking/recipes-support/ssmping/files/0001-Makefile-tweak-install-dir.patch b/meta-networking/recipes-support/ssmping/files/0001-Makefile-tweak-install-dir.patch
index 0cb981cf7a..4e1498a366 100644
--- a/meta-networking/recipes-support/ssmping/files/0001-Makefile-tweak-install-dir.patch
+++ b/meta-networking/recipes-support/ssmping/files/0001-Makefile-tweak-install-dir.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Makefile: tweak install dir
For oe-core, the man doc should be installed to /usr/share/man
rather than /usr/locale/man.
-Upstream-Status: inappropriate (oe specific)
+Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
diff --git a/meta-networking/recipes-support/ssmtp/ssmtp/0001-include-libgen.h-for-basename.patch b/meta-networking/recipes-support/ssmtp/ssmtp/0001-include-libgen.h-for-basename.patch
new file mode 100644
index 0000000000..094ba5afa2
--- /dev/null
+++ b/meta-networking/recipes-support/ssmtp/ssmtp/0001-include-libgen.h-for-basename.patch
@@ -0,0 +1,32 @@
+From b48840952ec9a68363bed960e98dd6c7aaa3acec Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 11:55:59 -0700
+Subject: [PATCH] include libgen.h for basename
+
+basename prototype has been removed from string.h from latest musl [1]
+compilers e.g. clang-18 flags the absense of prototype as error. therefore
+include libgen.h for providing it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ssmtp.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ssmtp.c b/ssmtp.c
+index 0a719ac..4dedaf8 100644
+--- a/ssmtp.c
++++ b/ssmtp.c
+@@ -23,6 +23,7 @@
+ #include <signal.h>
+ #include <setjmp.h>
+ #include <string.h>
++#include <libgen.h>
+ #include <ctype.h>
+ #include <netdb.h>
+ #ifdef HAVE_SSL
+--
+2.44.0
+
diff --git a/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb b/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb
index 05d2bb18ff..499a79d1ed 100644
--- a/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb
+++ b/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb
@@ -8,6 +8,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/s/${BPN}/${BPN}_${PV}.orig.tar.bz2 \
file://build-ouside_srcdir.patch \
file://use-DESTDIR.patch \
file://0001-ssmtp-Correct-the-null-pointer-assignment-to-char-po.patch \
+ file://0001-include-libgen.h-for-basename.patch \
"
SRC_URI[md5sum] = "65b4e0df4934a6cd08c506cabcbe584f"
diff --git a/meta-networking/recipes-support/strongswan/strongswan_5.9.14.bb b/meta-networking/recipes-support/strongswan/strongswan_5.9.14.bb
new file mode 100644
index 0000000000..2e2da8274b
--- /dev/null
+++ b/meta-networking/recipes-support/strongswan/strongswan_5.9.14.bb
@@ -0,0 +1,194 @@
+DESCRIPTION = "strongSwan is an OpenSource IPsec implementation for the \
+Linux operating system."
+SUMMARY = "strongSwan is an OpenSource IPsec implementation"
+HOMEPAGE = "http://www.strongswan.org"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "flex-native flex bison-native"
+DEPENDS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'tpm2', ' tpm2-tss', '', d)}"
+
+SRC_URI = "https://download.strongswan.org/strongswan-${PV}.tar.bz2 \
+ "
+
+SRC_URI[sha256sum] = "728027ddda4cb34c67c4cec97d3ddb8c274edfbabdaeecf7e74693b54fc33678"
+
+UPSTREAM_CHECK_REGEX = "strongswan-(?P<pver>\d+(\.\d+)+)\.tar"
+
+EXTRA_OECONF = " \
+ --without-lib-prefix \
+ --with-dev-headers=${includedir}/strongswan \
+"
+
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}"
+
+PACKAGECONFIG ?= "curl gmp openssl sqlite3 swanctl curve25519\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-charon', 'charon', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'tpm2', 'tpm2', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ima', 'tnc-imc imc-hcd imc-os imc-scanner imc-attestation', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ima', 'tnc-imv imv-hcd imv-os imv-scanner imv-attestation', '', d)} \
+"
+
+PACKAGECONFIG[aesni] = "--enable-aesni,--disable-aesni,,${PN}-plugin-aesni"
+PACKAGECONFIG[bfd] = "--enable-bfd-backtraces,--disable-bfd-backtraces,binutils"
+PACKAGECONFIG[charon] = "--enable-charon,--disable-charon,"
+PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,${PN}-plugin-curl"
+PACKAGECONFIG[eap-identity] = "--enable-eap-identity,--disable-eap-identity,,${PN}-plugin-eap-identity"
+PACKAGECONFIG[eap-mschapv2] = "--enable-eap-mschapv2,--disable-eap-mschapv2,,${PN}-plugin-eap-mschapv2"
+PACKAGECONFIG[gmp] = "--enable-gmp,--disable-gmp,gmp,${PN}-plugin-gmp"
+PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap,${PN}-plugin-ldap"
+PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,${PN}-plugin-mysql"
+PACKAGECONFIG[nm] = "--enable-nm,--disable-nm,networkmanager,${PN}-nm"
+PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl,${PN}-plugin-openssl"
+PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4,${PN}-plugin-soup"
+PACKAGECONFIG[sqlite3] = "--enable-sqlite,--disable-sqlite,sqlite3,${PN}-plugin-sqlite"
+PACKAGECONFIG[stroke] = "--enable-stroke,--disable-stroke,,${PN}-plugin-stroke"
+PACKAGECONFIG[swanctl] = "--enable-swanctl,--disable-swanctl,,libgcc"
+PACKAGECONFIG[curve25519] = "--enable-curve25519,--disable-curve25519,, ${PN}-plugin-curve25519"
+
+# requires swanctl
+PACKAGECONFIG[systemd-charon] = "--enable-systemd,--disable-systemd,systemd,"
+
+# tpm needs meta-tpm layer
+PACKAGECONFIG[tpm2] = "--enable-tpm,--disable-tpm,,${PN}-plugin-tpm"
+
+
+# integraty configuration needs meta-integraty
+#imc
+PACKAGECONFIG[tnc-imc] = "--enable-tnc-imc,--disable-tnc-imc,, ${PN}-plugin-tnc-imc ${PN}-plugin-tnc-tnccs"
+PACKAGECONFIG[imc-test] = "--enable-imc-test,--disable-imc-test,,"
+PACKAGECONFIG[imc-scanner] = "--enable-imc-scanner,--disable-imc-scanner,,"
+PACKAGECONFIG[imc-os] = "--enable-imc-os,--disable-imc-os,,"
+PACKAGECONFIG[imc-attestation] = "--enable-imc-attestation,--disable-imc-attestation,,"
+PACKAGECONFIG[imc-swima] = "--enable-imc-swima, --disable-imc-swima, json-c,"
+PACKAGECONFIG[imc-hcd] = "--enable-imc-hcd, --disable-imc-hcd,,"
+
+#imv set
+PACKAGECONFIG[tnc-imv] = "--enable-tnc-imv,--disable-tnc-imv,, ${PN}-plugin-tnc-imv ${PN}-plugin-tnc-tnccs"
+PACKAGECONFIG[imv-test] = "--enable-imv-test,--disable-imv-test,,"
+PACKAGECONFIG[imv-scanner] = "--enable-imv-scanner,--disable-imv-scanner,,"
+PACKAGECONFIG[imv-os] = "--enable-imv-os,--disable-imv-os,,"
+PACKAGECONFIG[imv-attestation] = "--enable-imv-attestation,--disable-imv-attestation,,"
+PACKAGECONFIG[imv-swima] = "--enable-imv-swima, --disable-imv-swima, json-c,"
+PACKAGECONFIG[imv-hcd] = "--enable-imv-hcd, --disable-imv-hcd,,"
+
+PACKAGECONFIG[tnc-ifmap] = "--enable-tnc-ifmap,--disable-tnc-ifmap, libxml2, ${PN}-plugin-tnc-ifmap"
+PACKAGECONFIG[tnc-pdp] = "--enable-tnc-pdp,--disable-tnc-pdp,, ${PN}-plugin-tnc-pdp"
+
+PACKAGECONFIG[tnccs-11] = "--enable-tnccs-11,--disable-tnccs-11,libxml2, ${PN}-plugin-tnccs-11"
+PACKAGECONFIG[tnccs-20] = "--enable-tnccs-20,--disable-tnccs-20,, ${PN}-plugin-tnccs-20"
+PACKAGECONFIG[tnccs-dynamic] = "--enable-tnccs-dynamic,--disable-tnccs-dynamic,,${PN}-plugin-tnccs-dynamic"
+
+inherit autotools systemd pkgconfig
+
+RRECOMMENDS:${PN} = "kernel-module-ah4 \
+ kernel-module-esp4 \
+ kernel-module-xfrm-user \
+ "
+
+FILES:${PN} += "${libdir}/ipsec/lib*${SOLIBS}"
+FILES:${PN}-dbg += "${bindir}/.debug ${sbindir}/.debug ${libdir}/ipsec/.debug ${libexecdir}/ipsec/.debug"
+FILES:${PN}-dev += "${libdir}/ipsec/lib*${SOLIBSDEV} ${libdir}/ipsec/*.la ${libdir}/ipsec/include/config.h"
+FILES:${PN}-staticdev += "${libdir}/ipsec/*.a"
+
+CONFFILES:${PN} = "${sysconfdir}/*.conf ${sysconfdir}/ipsec.d/*.conf ${sysconfdir}/strongswan.d/*.conf"
+
+PACKAGES += "${PN}-plugins"
+ALLOW_EMPTY:${PN}-plugins = "1"
+
+PACKAGE_BEFORE_PN = "${PN}-imcvs ${PN}-imcvs-dbg"
+ALLOW_EMPTY:${PN}-imcvs = "1"
+
+FILES:${PN}-imcvs = "${libdir}/ipsec/imcvs/*.so"
+FILES:${PN}-imcvs-dbg += "${libdir}/ipsec/imcvs/.debug"
+
+PACKAGES =+ "${PN}-nm ${PN}-nm-dbg"
+FILES:${PN}-nm = "${libexecdir}/ipsec/charon-nm ${datadir}/dbus-1/system.d/nm-strongswan-service.conf"
+FILES:${PN}-nm-dbg = "${libexecdir}/ipsec/.debug/charon-nm"
+
+PACKAGES_DYNAMIC += "^${PN}-plugin-.*$"
+NOAUTOPACKAGEDEBUG = "1"
+
+python split_strongswan_plugins () {
+ sysconfdir = d.expand('${sysconfdir}/strongswan.d/charon')
+ libdir = d.expand('${libdir}/ipsec/plugins')
+ dbglibdir = os.path.join(libdir, '.debug')
+
+ def add_plugin_conf(f, pkg, file_regex, output_pattern, modulename):
+ dvar = d.getVar('PKGD')
+ oldfiles = d.getVar('CONFFILES:' + pkg)
+ newfile = '/' + os.path.relpath(f, dvar)
+
+ if not oldfiles:
+ d.setVar('CONFFILES:' + pkg, newfile)
+ else:
+ d.setVar('CONFFILES:' + pkg, oldfiles + " " + newfile)
+
+ split_packages = do_split_packages(d, libdir, r'libstrongswan-(.*)\.so', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True)
+ do_split_packages(d, sysconfdir, r'(.*)\.conf', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True, hook=add_plugin_conf)
+
+ split_dbg_packages = do_split_packages(d, dbglibdir, r'libstrongswan-(.*)\.so', '${PN}-plugin-%s-dbg', 'strongSwan %s plugin - Debugging files', prepend=True, extra_depends='${PN}-dbg')
+ split_dev_packages = do_split_packages(d, libdir, r'libstrongswan-(.*)\.la', '${PN}-plugin-%s-dev', 'strongSwan %s plugin - Development files', prepend=True, extra_depends='${PN}-dev')
+ split_staticdev_packages = do_split_packages(d, libdir, r'libstrongswan-(.*)\.a', '${PN}-plugin-%s-staticdev', 'strongSwan %s plugin - Development files (Static Libraries)', prepend=True, extra_depends='${PN}-staticdev')
+
+ if split_packages:
+ pn = d.getVar('PN')
+ d.setVar('RRECOMMENDS:' + pn + '-plugins', ' '.join(split_packages))
+ d.appendVar('RRECOMMENDS:' + pn + '-dbg', ' ' + ' '.join(split_dbg_packages))
+ d.appendVar('RRECOMMENDS:' + pn + '-dev', ' ' + ' '.join(split_dev_packages))
+ d.appendVar('RRECOMMENDS:' + pn + '-staticdev', ' ' + ' '.join(split_staticdev_packages))
+}
+
+PACKAGESPLITFUNCS:prepend = "split_strongswan_plugins "
+
+# Install some default plugins based on default strongSwan ./configure options
+# See https://wiki.strongswan.org/projects/strongswan/wiki/Pluginlist
+RDEPENDS:${PN} += "\
+ ${PN}-plugin-aes \
+ ${PN}-plugin-attr \
+ ${PN}-plugin-cmac \
+ ${PN}-plugin-constraints \
+ ${PN}-plugin-des \
+ ${PN}-plugin-dnskey \
+ ${PN}-plugin-drbg \
+ ${PN}-plugin-fips-prf \
+ ${PN}-plugin-gcm \
+ ${PN}-plugin-hmac \
+ ${PN}-plugin-kdf \
+ ${PN}-plugin-kernel-netlink \
+ ${PN}-plugin-md5 \
+ ${PN}-plugin-mgf1 \
+ ${PN}-plugin-nonce \
+ ${PN}-plugin-pem \
+ ${PN}-plugin-pgp \
+ ${PN}-plugin-pkcs1 \
+ ${PN}-plugin-pkcs7 \
+ ${PN}-plugin-pkcs8 \
+ ${PN}-plugin-pkcs12 \
+ ${PN}-plugin-pubkey \
+ ${PN}-plugin-random \
+ ${PN}-plugin-rc2 \
+ ${PN}-plugin-resolve \
+ ${PN}-plugin-revocation \
+ ${PN}-plugin-sha1 \
+ ${PN}-plugin-sha2 \
+ ${PN}-plugin-socket-default \
+ ${PN}-plugin-sshkey \
+ ${PN}-plugin-updown \
+ ${PN}-plugin-vici \
+ ${PN}-plugin-x509 \
+ ${PN}-plugin-xauth-generic \
+ ${PN}-plugin-xcbc \
+ "
+
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+
+# The deprecated legacy 'strongswan-starter' service should only be used when charon and
+# stroke are enabled. When swanctl is in use, 'strongswan.service' is needed.
+# See: https://wiki.strongswan.org/projects/strongswan/wiki/Charon-systemd
+SYSTEMD_SERVICE:${PN} = " \
+ ${@bb.utils.contains('PACKAGECONFIG', 'swanctl', '${BPN}.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'charon', '${BPN}-starter.service', '', d)} \
+"
diff --git a/meta-networking/recipes-support/strongswan/strongswan_5.9.7.bb b/meta-networking/recipes-support/strongswan/strongswan_5.9.7.bb
deleted file mode 100644
index 71ffb7ba44..0000000000
--- a/meta-networking/recipes-support/strongswan/strongswan_5.9.7.bb
+++ /dev/null
@@ -1,189 +0,0 @@
-DESCRIPTION = "strongSwan is an OpenSource IPsec implementation for the \
-Linux operating system."
-SUMMARY = "strongSwan is an OpenSource IPsec implementation"
-HOMEPAGE = "http://www.strongswan.org"
-SECTION = "net"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "flex-native flex bison-native"
-DEPENDS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'tpm2', ' tpm2-tss', '', d)}"
-
-SRC_URI = "http://download.strongswan.org/strongswan-${PV}.tar.bz2 \
- "
-
-SRC_URI[sha256sum] = "9e64a2ba62efeac81abff1d962522404ebc6ed6c0d352a23ab7c0b2c639e3fcf"
-
-UPSTREAM_CHECK_REGEX = "strongswan-(?P<pver>\d+(\.\d+)+)\.tar"
-
-EXTRA_OECONF = " \
- --without-lib-prefix \
- --with-dev-headers=${includedir}/strongswan \
-"
-
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}"
-
-PACKAGECONFIG ?= "curl gmp openssl sqlite3 swanctl curve25519\
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-charon', 'charon', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'tpm2', 'tpm2', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ima', 'tnc-imc imc-hcd imc-os imc-scanner imc-attestation', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ima', 'tnc-imv imv-hcd imv-os imv-scanner imv-attestation', '', d)} \
-"
-
-PACKAGECONFIG[aesni] = "--enable-aesni,--disable-aesni,,${PN}-plugin-aesni"
-PACKAGECONFIG[bfd] = "--enable-bfd-backtraces,--disable-bfd-backtraces,binutils"
-PACKAGECONFIG[charon] = "--enable-charon,--disable-charon,"
-PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,${PN}-plugin-curl"
-PACKAGECONFIG[eap-identity] = "--enable-eap-identity,--disable-eap-identity,,${PN}-plugin-eap-identity"
-PACKAGECONFIG[eap-mschapv2] = "--enable-eap-mschapv2,--disable-eap-mschapv2,,${PN}-plugin-eap-mschapv2"
-PACKAGECONFIG[gmp] = "--enable-gmp,--disable-gmp,gmp,${PN}-plugin-gmp"
-PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,openldap,${PN}-plugin-ldap"
-PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,${PN}-plugin-mysql"
-PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl,${PN}-plugin-openssl"
-PACKAGECONFIG[scep] = "--enable-scepclient,--disable-scepclient,"
-PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4,${PN}-plugin-soup"
-PACKAGECONFIG[sqlite3] = "--enable-sqlite,--disable-sqlite,sqlite3,${PN}-plugin-sqlite"
-PACKAGECONFIG[stroke] = "--enable-stroke,--disable-stroke,,${PN}-plugin-stroke"
-PACKAGECONFIG[swanctl] = "--enable-swanctl,--disable-swanctl,,libgcc"
-PACKAGECONFIG[curve25519] = "--enable-curve25519,--disable-curve25519,, ${PN}-plugin-curve25519"
-
-# requires swanctl
-PACKAGECONFIG[systemd-charon] = "--enable-systemd,--disable-systemd,systemd,"
-
-# tpm needs meta-tpm layer
-PACKAGECONFIG[tpm2] = "--enable-tpm,--disable-tpm,,${PN}-plugin-tpm"
-
-
-# integraty configuration needs meta-integraty
-#imc
-PACKAGECONFIG[tnc-imc] = "--enable-tnc-imc,--disable-tnc-imc,, ${PN}-plugin-tnc-imc ${PN}-plugin-tnc-tnccs"
-PACKAGECONFIG[imc-test] = "--enable-imc-test,--disable-imc-test,,"
-PACKAGECONFIG[imc-scanner] = "--enable-imc-scanner,--disable-imc-scanner,,"
-PACKAGECONFIG[imc-os] = "--enable-imc-os,--disable-imc-os,,"
-PACKAGECONFIG[imc-attestation] = "--enable-imc-attestation,--disable-imc-attestation,,"
-PACKAGECONFIG[imc-swima] = "--enable-imc-swima, --disable-imc-swima, json-c,"
-PACKAGECONFIG[imc-hcd] = "--enable-imc-hcd, --disable-imc-hcd,,"
-
-#imv set
-PACKAGECONFIG[tnc-imv] = "--enable-tnc-imv,--disable-tnc-imv,, ${PN}-plugin-tnc-imv ${PN}-plugin-tnc-tnccs"
-PACKAGECONFIG[imv-test] = "--enable-imv-test,--disable-imv-test,,"
-PACKAGECONFIG[imv-scanner] = "--enable-imv-scanner,--disable-imv-scanner,,"
-PACKAGECONFIG[imv-os] = "--enable-imv-os,--disable-imv-os,,"
-PACKAGECONFIG[imv-attestation] = "--enable-imv-attestation,--disable-imv-attestation,,"
-PACKAGECONFIG[imv-swima] = "--enable-imv-swima, --disable-imv-swima, json-c,"
-PACKAGECONFIG[imv-hcd] = "--enable-imv-hcd, --disable-imv-hcd,,"
-
-PACKAGECONFIG[tnc-ifmap] = "--enable-tnc-ifmap,--disable-tnc-ifmap, libxml2, ${PN}-plugin-tnc-ifmap"
-PACKAGECONFIG[tnc-pdp] = "--enable-tnc-pdp,--disable-tnc-pdp,, ${PN}-plugin-tnc-pdp"
-
-PACKAGECONFIG[tnccs-11] = "--enable-tnccs-11,--disable-tnccs-11,libxml2, ${PN}-plugin-tnccs-11"
-PACKAGECONFIG[tnccs-20] = "--enable-tnccs-20,--disable-tnccs-20,, ${PN}-plugin-tnccs-20"
-PACKAGECONFIG[tnccs-dynamic] = "--enable-tnccs-dynamic,--disable-tnccs-dynamic,,${PN}-plugin-tnccs-dynamic"
-
-inherit autotools systemd pkgconfig
-
-RRECOMMENDS:${PN} = "kernel-module-ah4 \
- kernel-module-esp4 \
- kernel-module-xfrm-user \
- "
-
-FILES:${PN} += "${libdir}/ipsec/lib*${SOLIBS}"
-FILES:${PN}-dbg += "${bindir}/.debug ${sbindir}/.debug ${libdir}/ipsec/.debug ${libexecdir}/ipsec/.debug"
-FILES:${PN}-dev += "${libdir}/ipsec/lib*${SOLIBSDEV} ${libdir}/ipsec/*.la ${libdir}/ipsec/include/config.h"
-FILES:${PN}-staticdev += "${libdir}/ipsec/*.a"
-
-CONFFILES:${PN} = "${sysconfdir}/*.conf ${sysconfdir}/ipsec.d/*.conf ${sysconfdir}/strongswan.d/*.conf"
-
-PACKAGES += "${PN}-plugins"
-ALLOW_EMPTY:${PN}-plugins = "1"
-
-PACKAGE_BEFORE_PN = "${PN}-imcvs ${PN}-imcvs-dbg"
-ALLOW_EMPTY:${PN}-imcvs = "1"
-
-FILES:${PN}-imcvs = "${libdir}/ipsec/imcvs/*.so"
-FILES:${PN}-imcvs-dbg += "${libdir}/ipsec/imcvs/.debug"
-
-PACKAGES_DYNAMIC += "^${PN}-plugin-.*$"
-NOAUTOPACKAGEDEBUG = "1"
-
-python split_strongswan_plugins () {
- sysconfdir = d.expand('${sysconfdir}/strongswan.d/charon')
- libdir = d.expand('${libdir}/ipsec/plugins')
- dbglibdir = os.path.join(libdir, '.debug')
-
- def add_plugin_conf(f, pkg, file_regex, output_pattern, modulename):
- dvar = d.getVar('PKGD')
- oldfiles = d.getVar('CONFFILES:' + pkg)
- newfile = '/' + os.path.relpath(f, dvar)
-
- if not oldfiles:
- d.setVar('CONFFILES:' + pkg, newfile)
- else:
- d.setVar('CONFFILES:' + pkg, oldfiles + " " + newfile)
-
- split_packages = do_split_packages(d, libdir, r'libstrongswan-(.*)\.so', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True)
- do_split_packages(d, sysconfdir, r'(.*)\.conf', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True, hook=add_plugin_conf)
-
- split_dbg_packages = do_split_packages(d, dbglibdir, r'libstrongswan-(.*)\.so', '${PN}-plugin-%s-dbg', 'strongSwan %s plugin - Debugging files', prepend=True, extra_depends='${PN}-dbg')
- split_dev_packages = do_split_packages(d, libdir, r'libstrongswan-(.*)\.la', '${PN}-plugin-%s-dev', 'strongSwan %s plugin - Development files', prepend=True, extra_depends='${PN}-dev')
- split_staticdev_packages = do_split_packages(d, libdir, r'libstrongswan-(.*)\.a', '${PN}-plugin-%s-staticdev', 'strongSwan %s plugin - Development files (Static Libraries)', prepend=True, extra_depends='${PN}-staticdev')
-
- if split_packages:
- pn = d.getVar('PN')
- d.setVar('RRECOMMENDS:' + pn + '-plugins', ' '.join(split_packages))
- d.appendVar('RRECOMMENDS:' + pn + '-dbg', ' ' + ' '.join(split_dbg_packages))
- d.appendVar('RRECOMMENDS:' + pn + '-dev', ' ' + ' '.join(split_dev_packages))
- d.appendVar('RRECOMMENDS:' + pn + '-staticdev', ' ' + ' '.join(split_staticdev_packages))
-}
-
-PACKAGESPLITFUNCS:prepend = "split_strongswan_plugins "
-
-# Install some default plugins based on default strongSwan ./configure options
-# See https://wiki.strongswan.org/projects/strongswan/wiki/Pluginlist
-RDEPENDS:${PN} += "\
- ${PN}-plugin-aes \
- ${PN}-plugin-attr \
- ${PN}-plugin-cmac \
- ${PN}-plugin-constraints \
- ${PN}-plugin-des \
- ${PN}-plugin-dnskey \
- ${PN}-plugin-drbg \
- ${PN}-plugin-fips-prf \
- ${PN}-plugin-hmac \
- ${PN}-plugin-kdf \
- ${PN}-plugin-kernel-netlink \
- ${PN}-plugin-md5 \
- ${PN}-plugin-mgf1 \
- ${PN}-plugin-nonce \
- ${PN}-plugin-pem \
- ${PN}-plugin-pgp \
- ${PN}-plugin-pkcs1 \
- ${PN}-plugin-pkcs7 \
- ${PN}-plugin-pkcs8 \
- ${PN}-plugin-pkcs12 \
- ${PN}-plugin-pubkey \
- ${PN}-plugin-random \
- ${PN}-plugin-rc2 \
- ${PN}-plugin-resolve \
- ${PN}-plugin-revocation \
- ${PN}-plugin-sha1 \
- ${PN}-plugin-sha2 \
- ${PN}-plugin-socket-default \
- ${PN}-plugin-sshkey \
- ${PN}-plugin-updown \
- ${PN}-plugin-vici \
- ${PN}-plugin-x509 \
- ${PN}-plugin-xauth-generic \
- ${PN}-plugin-xcbc \
- "
-
-RPROVIDES:${PN} += "${PN}-systemd"
-RREPLACES:${PN} += "${PN}-systemd"
-RCONFLICTS:${PN} += "${PN}-systemd"
-
-# The deprecated legacy 'strongswan-starter' service should only be used when charon and
-# stroke are enabled. When swanctl is in use, 'strongswan.service' is needed.
-# See: https://wiki.strongswan.org/projects/strongswan/wiki/Charon-systemd
-SYSTEMD_SERVICE:${PN} = " \
- ${@bb.utils.contains('PACKAGECONFIG', 'swanctl', '${BPN}.service', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'charon', '${BPN}-starter.service', '', d)} \
-"
diff --git a/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch b/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
index 0840cbbd8b..82d3551019 100644
--- a/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
+++ b/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
@@ -11,17 +11,16 @@ failed. Fix it by checking macro OPENSSL_NO_DES to use openssl des related
library conditionaly.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
---
src/common.h | 2 ++
src/protocol.c | 6 +++---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/common.h b/src/common.h
-index bc37eb5..03ee3e5 100644
+index 2b4869f..180d31a 100644
--- a/src/common.h
+++ b/src/common.h
-@@ -486,7 +486,9 @@ extern char *sys_errlist[];
+@@ -492,7 +492,9 @@ extern char *sys_errlist[];
#ifndef OPENSSL_NO_MD4
#include <openssl/md4.h>
#endif /* !defined(OPENSSL_NO_MD4) */
@@ -32,29 +31,29 @@ index bc37eb5..03ee3e5 100644
#include <openssl/dh.h>
#if OPENSSL_VERSION_NUMBER<0x10100000L
diff --git a/src/protocol.c b/src/protocol.c
-index 804f115..d9b2b50 100644
+index cfe6d3b..3936aea 100644
--- a/src/protocol.c
+++ b/src/protocol.c
-@@ -66,7 +66,7 @@ NOEXPORT char *nntp_client(CLI *, SERVICE_OPTIONS *, const PHASE);
- NOEXPORT char *ldap_client(CLI *, SERVICE_OPTIONS *, const PHASE);
- NOEXPORT char *connect_server(CLI *, SERVICE_OPTIONS *, const PHASE);
- NOEXPORT char *connect_client(CLI *, SERVICE_OPTIONS *, const PHASE);
+@@ -81,7 +81,7 @@ NOEXPORT void ldap_client_middle(CLI *);
+
+ NOEXPORT void connect_server_early(CLI *);
+ NOEXPORT void connect_client_middle(CLI *);
-#ifndef OPENSSL_NO_MD4
+#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES)
- NOEXPORT void ntlm(CLI *, SERVICE_OPTIONS *);
+ NOEXPORT void ntlm(CLI *);
NOEXPORT char *ntlm1(void);
NOEXPORT char *ntlm3(char *, char *, char *, char *);
-@@ -1351,7 +1351,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
- fd_printf(c, c->remote_fd.fd, "Host: %s", opt->protocol_host);
- if(opt->protocol_username && opt->protocol_password) {
- if(!strcasecmp(opt->protocol_authentication, "ntlm")) {
+@@ -1331,7 +1331,7 @@ NOEXPORT void connect_client_middle(CLI *c) {
+ fd_printf(c, c->remote_fd.fd, "Host: %s", c->opt->protocol_host);
+ if(c->opt->protocol_username && c->opt->protocol_password) {
+ if(!strcasecmp(c->opt->protocol_authentication, "ntlm")) {
-#ifndef OPENSSL_NO_MD4
+#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES)
- ntlm(c, opt);
+ ntlm(c);
#else
s_log(LOG_ERR, "NTLM authentication is not available");
-@@ -1395,7 +1395,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
- return NULL;
+@@ -1374,7 +1374,7 @@ NOEXPORT void connect_client_middle(CLI *c) {
+ str_free(line);
}
-#ifndef OPENSSL_NO_MD4
@@ -62,3 +61,6 @@ index 804f115..d9b2b50 100644
/*
* NTLM code is based on the following documentation:
+--
+2.34.1
+
diff --git a/meta-networking/recipes-support/stunnel/stunnel_5.65.bb b/meta-networking/recipes-support/stunnel/stunnel_5.65.bb
deleted file mode 100644
index ab7ff43223..0000000000
--- a/meta-networking/recipes-support/stunnel/stunnel_5.65.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Program for providing universal TLS/SSL tunneling service"
-DESCRIPTION = "SSL encryption wrapper between remote client and local (inetd-startable) or remote server."
-HOMEPAGE = "https://www.stunnel.org/"
-SECTION = "net"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING.md;md5=d8a2866ad5ebf3a2d2ce27279472875a"
-
-DEPENDS = "autoconf-archive libnsl2 openssl"
-
-SRC_URI = "https://stunnel.org/archive/5.x/${BP}.tar.gz \
- file://fix-openssl-no-des.patch \
-"
-
-SRC_URI[sha256sum] = "60c500063bd1feff2877f5726e38278c086f96c178f03f09d264a2012d6bf7fc"
-
-inherit autotools bash-completion pkgconfig
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} libwrap"
-
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-PACKAGECONFIG[libwrap] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
-PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
-
-EXTRA_OECONF += "--with-ssl='${STAGING_EXECPREFIXDIR}' --disable-fips"
-
-# When cross compiling, configure defaults to nobody, but provides no option to change it.
-EXTRA_OEMAKE += "DEFAULT_GROUP='nogroup'"
-
-# stunnel3 is a Perl wrapper to allow use of the legacy stunnel 3.x commandline
-# syntax with stunnel >= 4.05
-PACKAGES =+ "stunnel3"
-FILES:stunnel3 = "${bindir}/stunnel3"
-RDEPENDS:stunnel3 += "${PN} perl"
diff --git a/meta-networking/recipes-support/stunnel/stunnel_5.72.bb b/meta-networking/recipes-support/stunnel/stunnel_5.72.bb
new file mode 100644
index 0000000000..6d21027a16
--- /dev/null
+++ b/meta-networking/recipes-support/stunnel/stunnel_5.72.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Program for providing universal TLS/SSL tunneling service"
+DESCRIPTION = "SSL encryption wrapper between remote client and local (inetd-startable) or remote server."
+HOMEPAGE = "https://www.stunnel.org/"
+SECTION = "net"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING.md;md5=906ac034adaee9d093318e51b53453ca"
+
+DEPENDS = "autoconf-archive libnsl2 openssl"
+
+SRC_URI = "https://stunnel.org/archive/5.x/${BP}.tar.gz \
+ file://fix-openssl-no-des.patch \
+"
+
+SRC_URI[sha256sum] = "3d532941281ae353319735144e4adb9ae489a10b7e309c58a48157f08f42e949"
+
+inherit autotools bash-completion pkgconfig
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} libwrap"
+
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[libwrap] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
+PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
+
+EXTRA_OECONF += "--with-ssl='${STAGING_EXECPREFIXDIR}' --disable-fips"
+
+# When cross compiling, configure defaults to nobody, but provides no option to change it.
+EXTRA_OEMAKE += "DEFAULT_GROUP='nogroup'"
+
+# stunnel3 is a Perl wrapper to allow use of the legacy stunnel 3.x commandline
+# syntax with stunnel >= 4.05
+PACKAGES =+ "stunnel3"
+FILES:stunnel3 = "${bindir}/stunnel3"
+RDEPENDS:stunnel3 += "${PN} perl"
diff --git a/meta-networking/recipes-support/tcpdump/tcpdump_4.99.1.bb b/meta-networking/recipes-support/tcpdump/tcpdump_4.99.1.bb
deleted file mode 100644
index 322a826f07..0000000000
--- a/meta-networking/recipes-support/tcpdump/tcpdump_4.99.1.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "A sophisticated network protocol analyzer"
-HOMEPAGE = "http://www.tcpdump.org/"
-SECTION = "net"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5eb289217c160e2920d2e35bddc36453"
-
-DEPENDS = "libpcap"
-
-RDEPENDS:${PN}-ptest += " make perl \
- perl-module-file-basename \
- perl-module-file-spec \
- perl-module-file-spec-unix \
- perl-module-file-path \
- perl-module-file-glob \
- perl-module-data-dumper \
- perl-module-bytes \
- perl-module-posix \
- perl-module-carp \
- perl-module-cwd \
- perl-module-constant \
-"
-
-SRC_URI = " \
- http://www.tcpdump.org/release/${BP}.tar.gz \
- file://add-ptest.patch \
- file://run-ptest \
-"
-
-SRC_URI[md5sum] = "929a255c71a9933608bd7c31927760f7"
-SRC_URI[sha256sum] = "79b36985fb2703146618d87c4acde3e068b91c553fb93f021a337f175fd10ebe"
-
-UPSTREAM_CHECK_REGEX = "tcpdump-(?P<pver>\d+(\.\d+)+)\.tar"
-
-inherit autotools-brokensep pkgconfig ptest
-
-PACKAGECONFIG ?= "openssl"
-
-PACKAGECONFIG[libcap-ng] = "--with-cap-ng,--without-cap-ng,libcap-ng"
-PACKAGECONFIG[openssl] = "--with-crypto,--without-crypto,openssl"
-PACKAGECONFIG[smi] = "--with-smi,--without-smi,libsmi"
-# Note: CVE-2018-10103 (SMB - partially fixed, but SMB printing disabled)
-PACKAGECONFIG[smb] = "--enable-smb,--disable-smb"
-
-EXTRA_AUTORECONF += "--exclude=aclocal"
-
-do_install:append() {
- # make install installs an unneeded extra copy of the tcpdump binary
- rm ${D}${bindir}/tcpdump.${PV}
-}
-
-do_compile_ptest() {
- oe_runmake buildtest-TESTS
-}
diff --git a/meta-networking/recipes-support/tcpdump/tcpdump_4.99.4.bb b/meta-networking/recipes-support/tcpdump/tcpdump_4.99.4.bb
new file mode 100644
index 0000000000..803a9bb5f5
--- /dev/null
+++ b/meta-networking/recipes-support/tcpdump/tcpdump_4.99.4.bb
@@ -0,0 +1,52 @@
+SUMMARY = "A sophisticated network protocol analyzer"
+HOMEPAGE = "http://www.tcpdump.org/"
+SECTION = "net"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5eb289217c160e2920d2e35bddc36453"
+
+DEPENDS = "libpcap"
+
+RDEPENDS:${PN}-ptest += " make perl \
+ perl-module-file-basename \
+ perl-module-file-spec \
+ perl-module-file-spec-unix \
+ perl-module-file-path \
+ perl-module-file-glob \
+ perl-module-data-dumper \
+ perl-module-bytes \
+ perl-module-posix \
+ perl-module-carp \
+ perl-module-cwd \
+ perl-module-constant \
+"
+
+SRC_URI = " \
+ http://www.tcpdump.org/release/${BP}.tar.gz \
+ file://add-ptest.patch \
+ file://run-ptest \
+"
+
+SRC_URI[sha256sum] = "0232231bb2f29d6bf2426e70a08a7e0c63a0d59a9b44863b7f5e2357a6e49fea"
+
+UPSTREAM_CHECK_REGEX = "tcpdump-(?P<pver>\d+(\.\d+)+)\.tar"
+
+inherit autotools-brokensep pkgconfig ptest
+
+PACKAGECONFIG ?= "openssl"
+
+PACKAGECONFIG[libcap-ng] = "--with-cap-ng,--without-cap-ng,libcap-ng"
+PACKAGECONFIG[openssl] = "--with-crypto,--without-crypto,openssl"
+PACKAGECONFIG[smi] = "--with-smi,--without-smi,libsmi"
+# Note: CVE-2018-10103 (SMB - partially fixed, but SMB printing disabled)
+PACKAGECONFIG[smb] = "--enable-smb,--disable-smb"
+
+EXTRA_AUTORECONF += "--exclude=aclocal"
+
+do_install:append() {
+ # make install installs an unneeded extra copy of the tcpdump binary
+ rm ${D}${bindir}/tcpdump.${PV}
+}
+
+do_compile_ptest() {
+ oe_runmake buildtest-TESTS
+}
diff --git a/meta-networking/recipes-support/tcpdump/tcpslice_1.5.bb b/meta-networking/recipes-support/tcpdump/tcpslice_1.5.bb
deleted file mode 100644
index 4909acdee9..0000000000
--- a/meta-networking/recipes-support/tcpdump/tcpslice_1.5.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "tcpslice"
-DESCRIPTION = "A tool for extracting parts of a tcpdump packet trace."
-HOMEPAGE = "http://www.tcpdump.org/related.html"
-SECTION = "net"
-
-LICENSE = "BSD-4-Clause"
-LIC_FILES_CHKSUM = "file://tcpslice.c;endline=20;md5=99519e2e5234d1662a4ce16baa62c64e"
-
-SRC_URI = "http://www.tcpdump.org/release/${BP}.tar.gz \
- "
-SRC_URI[md5sum] = "8907e60376e629f6e6ce2255988aaf47"
-SRC_URI[sha256sum] = "f6935e3e7ca00ef50c515d062fddd410868467ec5b6d8f2eca12066f8d91dda2"
-
-UPSTREAM_CHECK_REGEX = "tcpslice-(?P<pver>\d+(\.\d+)+)\.tar"
-
-inherit autotools-brokensep pkgconfig
-
-DEPENDS = "libpcap"
-
-EXTRA_AUTORECONF += "--exclude=aclocal"
-
-do_install () {
- install -d ${D}${sbindir}
- install -m 0755 tcpslice ${D}${sbindir}
-}
diff --git a/meta-networking/recipes-support/tcpdump/tcpslice_1.7.bb b/meta-networking/recipes-support/tcpdump/tcpslice_1.7.bb
new file mode 100644
index 0000000000..93197dc3bc
--- /dev/null
+++ b/meta-networking/recipes-support/tcpdump/tcpslice_1.7.bb
@@ -0,0 +1,24 @@
+SUMMARY = "tcpslice"
+DESCRIPTION = "A tool for extracting parts of a tcpdump packet trace."
+HOMEPAGE = "http://www.tcpdump.org/related.html"
+SECTION = "net"
+
+LICENSE = "BSD-4-Clause"
+LIC_FILES_CHKSUM = "file://tcpslice.c;endline=20;md5=99519e2e5234d1662a4ce16baa62c64e"
+
+SRC_URI = "http://www.tcpdump.org/release/${BP}.tar.gz \
+ "
+SRC_URI[sha256sum] = "e513f0710c4ab45ec627e5df6f7b80d12e488146e1bd500c92247e20ca608903"
+
+UPSTREAM_CHECK_REGEX = "tcpslice-(?P<pver>\d+(\.\d+)+)\.tar"
+
+inherit autotools-brokensep pkgconfig
+
+DEPENDS = "libpcap"
+
+EXTRA_AUTORECONF += "--exclude=aclocal"
+
+do_install () {
+ install -d ${D}${sbindir}
+ install -m 0755 tcpslice ${D}${sbindir}
+}
diff --git a/meta-networking/recipes-support/tcpreplay/tcpreplay/0001-configure.ac-do-not-run-conftest-in-case-of-cross-co.patch b/meta-networking/recipes-support/tcpreplay/tcpreplay/0001-configure.ac-do-not-run-conftest-in-case-of-cross-co.patch
new file mode 100644
index 0000000000..08cb3b88fa
--- /dev/null
+++ b/meta-networking/recipes-support/tcpreplay/tcpreplay/0001-configure.ac-do-not-run-conftest-in-case-of-cross-co.patch
@@ -0,0 +1,51 @@
+From 42f7bbc1ce4913fe2c0bc76293c5445d31690f5d Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Thu, 7 Mar 2024 21:02:07 -0800
+Subject: [PATCH] configure.ac: do not run conftest in case of cross
+ compilation
+
+It'll give us nothing but error like below:
+
+ ./conftest: cannot execute binary file: Exec format error
+ ...
+ ./configure: line 23950: test: -eq: unary operator expected
+
+The version check only has effect on Apple systems. We'd better
+avoid error like above when cross compilation.
+
+Also, in case of cross compilation, instead of having the above
+Exec format error and resulting in unaligned_cv_fail to yes, set
+it directly to yes.
+
+Upstream-Status: Submitted [https://github.com/appneta/tcpreplay/pull/849]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 387219de..15201601 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -928,7 +928,7 @@ cat >conftest.c <<EOF
+ EOF
+ ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LPCAPLIB \
+ conftest.c $LIBS >/dev/null 2>&1
+-if test -x conftest ; then
++if test -x conftest -a "$cross_compiling" != "yes"; then
+ full_libpcap_version=$(LD_LIBRARY_PATH="$LPCAP_LD_LIBRARY_PATH" ./conftest)
+ libpcap_version=$(echo "$full_libpcap_version" | ${CUT} -d' ' -f3)
+ pcap_version_ok=yes
+@@ -1709,7 +1709,7 @@ case "$host_os" in
+ EOF
+ ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \
+ conftest.c $LIBS >/dev/null 2>&1
+- if test ! -x conftest ; then
++ if test ! -x conftest -o "$cross_compiling" = "yes" ; then
+ dnl failed to compile for some reason
+ unaligned_cv_fail=yes
+ else
+--
+2.42.0
+
diff --git a/meta-networking/recipes-support/tcpreplay/tcpreplay/0001-configure.ac-unify-search-dirs-for-pcap-and-add-lib3.patch b/meta-networking/recipes-support/tcpreplay/tcpreplay/0001-configure.ac-unify-search-dirs-for-pcap-and-add-lib3.patch
new file mode 100644
index 0000000000..709d2cccbc
--- /dev/null
+++ b/meta-networking/recipes-support/tcpreplay/tcpreplay/0001-configure.ac-unify-search-dirs-for-pcap-and-add-lib3.patch
@@ -0,0 +1,82 @@
+From 5f8c78362b3b1e06f5adff2d4b140509c4799894 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 3 Sep 2023 12:31:59 +0200
+Subject: [PATCH] configure.ac: unify search dirs for pcap and add lib32
+
+* add lib32 because when building lib32-tcpreplay it's
+ impossible to set --with-libpcap so that it would find
+ both include files as well as the library in lib32 directory
+
+* maybe it would be beneficial to split --with-libpcap
+ into --with-libpcap-includedir --with-libpcap-libdir as this
+ already searches in the --with-libpcap value with and
+ without any "lib" prefix, but include files always expect
+ "include" dir there
+
+* most of this code was added in:
+ https://github.com/appneta/tcpreplay/commit/202b8e82f9fd3c84ce5804577caeb36a33baabe7#diff-49473dca262eeab3b4a43002adb08b4db31020d190caaad1594b47f1d5daa810R570
+
+* then search for
+ ${host_cpu} lib/${host_cpu} (without -${host_os} suffix)
+ and ${build_arch}-${host_os} lib/${build_arch}-${host_os}
+ was added, but only for search of dynamic library in:
+ https://github.com/appneta/tcpreplay/commit/c3d5236563985a99f8bb02c3f1bd6950e3929047
+
+* ${build_arch}-${host_os} lib/${build_arch}-${host_os}
+ was later replaced with:
+ lib/${MULTIARCH} ${MULTIARCH}
+ and it was added to static library search as well
+
+ but for dynamic library it was searching in reversed order:
+ ${MULTIARCH} lib/${MULTIARCH}
+ https://github.com/appneta/tcpreplay/commit/ed9e3a818bde04813144014561e62f018c9eb85f
+
+ I don't think this reversed order was intentional, just unify all 4 cases
+ to use the same directories in the same order
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Submitted [https://github.com/appneta/tcpreplay/pull/819]
+---
+ configure.ac | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 387219de..26ba31a5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -671,7 +671,7 @@ AC_ARG_WITH(libpcap,
+ LPCAPINCDIR=${testdir}
+ if test $dynamic_link = yes; then
+ for ext in .dylib .so .tbd ; do
+- for dir in . lib lib64 lib/${host_cpu}-${host_os} ${host_cpu}-${host_os} lib/${MULTIARCH} ${MULTIARCH}; do
++ for dir in . lib lib64 lib32 lib/${host_cpu}-${host_os} ${host_cpu}-${host_os} lib/${MULTIARCH} ${MULTIARCH}; do
+ sharefile=$(ls ${testdir}/$dir/libpcap${ext}* 2> /dev/null | sort | head -n1)
+ if test -n "${sharefile}"; then
+ LPCAP_LD_LIBRARY_PATH="$(dirname ${sharefile})"
+@@ -690,7 +690,7 @@ AC_ARG_WITH(libpcap,
+ dnl If dynamic library not found, try static
+ dnl
+ for ext in ${libext} .a .A.tbd ; do
+- for dir in . lib lib64 lib/${host_cpu}-${host_os} ${host_cpu}-${host_os} lib/${MULTIARCH} ${MULTIARCH}; do
++ for dir in . lib lib64 lib32 lib/${host_cpu}-${host_os} ${host_cpu}-${host_os} lib/${MULTIARCH} ${MULTIARCH}; do
+ staticfile=$(ls ${testdir}/$dir/libpcap${ext} 2> /dev/null | sort | head -n1)
+ if test -n "${staticfile}"; then
+ LPCAPLIB="${staticfile}"
+@@ -771,7 +771,7 @@ AC_ARG_WITH(libpcap,
+ LPCAPINCDIR="${testdir}/include"
+ if test $dynamic_link = yes; then
+ for ext in .dylib .so .tbd; do
+- for dir in . lib lib64 ${host_cpu} lib/${host_cpu} ${host_cpu}-${host_os} lib/${host_cpu}-${host_os} ${MULTIARCH} lib/${MULTIARCH}; do
++ for dir in . lib lib64 lib32 lib/${host_cpu}-${host_os} ${host_cpu}-${host_os} lib/${MULTIARCH} ${MULTIARCH}; do
+ sharefile=$(ls "${testdir}/$dir/libpcap${ext}" 2> /dev/null | sort | head -n1)
+ if test -n "${sharefile}"; then
+ LPCAPLIB="-L$(dirname ${sharefile}) -lpcap"
+@@ -790,7 +790,7 @@ AC_ARG_WITH(libpcap,
+ dnl If dynamic library not found, try static
+ dnl
+ for ext in ${libext} .a .A.tbd ; do
+- for dir in . lib lib64 lib/${host_cpu}-${host_os} ${host_cpu}-${host_os} lib/${MULTIARCH} ${MULTIARCH}; do
++ for dir in . lib lib64 lib32 lib/${host_cpu}-${host_os} ${host_cpu}-${host_os} lib/${MULTIARCH} ${MULTIARCH}; do
+ staticfile=$(ls "${testdir}/$dir/libpcap${ext}" 2> /dev/null | sort | head -n1)
+ if test -n "${staticfile}"; then
+ LPCAPLIB="${staticfile}"
diff --git a/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.2.bb b/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.2.bb
deleted file mode 100644
index 7d2a6a14d2..0000000000
--- a/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.2.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Use previously captured traffic to test network devices"
-
-HOMEPAGE = "https://tcpreplay.appneta.com/"
-
-SECTION = "net"
-
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=10f0474a2f0e5dccfca20f69d6598ad8"
-
-SRC_URI = "https://github.com/appneta/tcpreplay/releases/download/v${PV}/tcpreplay-${PV}.tar.gz \
- file://0001-libopts.m4-set-POSIX_SHELL-to-bin-sh.patch \
- "
-
-SRC_URI[sha256sum] = "5b272cd83b67d6288a234ea15f89ecd93b4fadda65eddc44e7b5fcb2f395b615"
-
-UPSTREAM_CHECK_URI = "https://github.com/appneta/tcpreplay/releases"
-
-DEPENDS = "libpcap"
-
-EXTRA_OECONF += "--with-libpcap=${STAGING_DIR_HOST}/usr"
-
-inherit siteinfo autotools-brokensep
-
-do_install:append() {
- sed -i -e 's:${RECIPE_SYSROOT}::g' ${S}/src/defines.h
-}
diff --git a/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.4.bb b/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.4.bb
new file mode 100644
index 0000000000..26de40a65a
--- /dev/null
+++ b/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.4.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Use previously captured traffic to test network devices"
+
+HOMEPAGE = "https://tcpreplay.appneta.com/"
+
+SECTION = "net"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=10f0474a2f0e5dccfca20f69d6598ad8"
+
+SRC_URI = "https://github.com/appneta/${BPN}/releases/download/v${PV}/${BP}.tar.gz \
+ file://0001-libopts.m4-set-POSIX_SHELL-to-bin-sh.patch \
+ file://0001-configure.ac-unify-search-dirs-for-pcap-and-add-lib3.patch \
+ file://0001-configure.ac-do-not-run-conftest-in-case-of-cross-co.patch \
+"
+
+SRC_URI[sha256sum] = "44f18fb6d3470ecaf77a51b901a119dae16da5be4d4140ffbb2785e37ad6d4bf"
+
+UPSTREAM_CHECK_URI = "https://github.com/appneta/tcpreplay/releases"
+
+DEPENDS = "libpcap"
+
+EXTRA_OECONF += "--with-libpcap=${STAGING_DIR_HOST}${prefix}"
+
+inherit siteinfo autotools-brokensep
+
+do_install:append() {
+ sed -i -e 's:${RECIPE_SYSROOT}::g' ${S}/src/defines.h
+}
diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2022-40468.patch b/meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2022-40468.patch
new file mode 100644
index 0000000000..4e2157ca75
--- /dev/null
+++ b/meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2022-40468.patch
@@ -0,0 +1,33 @@
+From 3764b8551463b900b5b4e3ec0cd9bb9182191cb7 Mon Sep 17 00:00:00 2001
+From: rofl0r <rofl0r@users.noreply.github.com>
+Date: Thu, 8 Sep 2022 15:18:04 +0000
+Subject: [PATCH] prevent junk from showing up in error page in invalid
+ requests
+
+fixes #457
+
+https://github.com/tinyproxy/tinyproxy/commit/3764b8551463b900b5b4e3ec0cd9bb9182191cb7
+Upstream-Status: Backport
+CVE: CVE-2022-40468
+Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
+---
+ src/reqs.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/reqs.c b/src/reqs.c
+index bce69819..45db118d 100644
+--- a/src/reqs.c
++++ b/src/reqs.c
+@@ -343,8 +343,12 @@ static struct request_s *process_request (struct conn_s *connptr,
+ goto fail;
+ }
+
++ /* zero-terminate the strings so they don't contain junk in error page */
++ request->method[0] = url[0] = request->protocol[0] = 0;
++
+ ret = sscanf (connptr->request_line, "%[^ ] %[^ ] %[^ ]",
+ request->method, url, request->protocol);
++
+ if (ret == 2 && !strcasecmp (request->method, "GET")) {
+ request->protocol[0] = 0;
+
diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch b/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch
index 364baaa000..faefd1d4ea 100644
--- a/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch
+++ b/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch
@@ -3,6 +3,8 @@ From: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Date: Thu, 20 Apr 2017 14:25:18 +0200
---
+Upstream-Status: Pending
+
Makefile.am | 1 -
configure.ac | 17 -----------------
2 files changed, 18 deletions(-)
diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.1.bb b/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.1.bb
index 86f57d88ff..999deff4de 100644
--- a/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.1.bb
+++ b/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.1.bb
@@ -7,6 +7,7 @@ SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.gz
file://disable-documentation.patch \
file://tinyproxy.service \
file://tinyproxy.conf \
+ file://CVE-2022-40468.patch \
"
SRC_URI[sha256sum] = "1574acf7ba83c703a89e98bb2758a4ed9fda456f092624b33cfcf0ce2d3b2047"
diff --git a/meta-networking/recipes-support/tnftp/tnftp_20210827.bb b/meta-networking/recipes-support/tnftp/tnftp_20210827.bb
deleted file mode 100644
index 8c5892668d..0000000000
--- a/meta-networking/recipes-support/tnftp/tnftp_20210827.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Enhanced NetBSD ftp client"
-DESCRIPTION = "tnftp (formerly known as lukemftp) is a port of the NetBSD FTP client \
-to other systems. It offers many enhancements over the traditional \
-BSD FTP client, including command-line editing, command-line fetches \
-of FTP and HTTP URLs (including via proxies), command-line uploads of \
-FTP URLs, context-sensitive word completion, dynamic progress bar, \
-IPv6 support, modification time preservation, paging of local and \
-remote files, passive mode support (with fallback to active mode), \
-SOCKS support, TIS FWTK gate-ftp server support, and transfer rate \
-throttling."
-
-SECTION = "net"
-LICENSE = "BSD-4-Clause"
-
-DEPENDS = "ncurses"
-
-SRC_URI = "ftp://ftp.netbsd.org/pub/NetBSD/misc/tnftp/${BPN}-${PV}.tar.gz \
- file://0001-libedit-Include-missing-header-stdc-predef.h.patch \
-"
-
-inherit autotools update-alternatives pkgconfig
-
-ALTERNATIVE_PRIORITY = "100"
-
-ALTERNATIVE:${PN} = "ftp"
-ALTERNATIVE_LINK_NAME_${PN} = "${bindir}/ftp"
-ALTERNATIVE_TARGET_${PN} = "${bindir}/tnftp"
-
-FILES:${PN} = "${bindir}/tnftp"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b4248c6fb8ecff27f256ba97b25f1a21"
-SRC_URI[md5sum] = "fdb6dd1b53dca79148c395b77c6dba5a"
-SRC_URI[sha256sum] = "101901e90b656c223ec8106370dd0d783fb63d26aa6f0b2a75f40e86a9f06ea2"
-
-PACKAGECONFIG ?= "openssl \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
-"
-PACKAGECONFIG[openssl] = "--enable-ssl, --disable-ssl --with-ssl=no, openssl"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-networking/recipes-support/tnftp/tnftp_20230507.bb b/meta-networking/recipes-support/tnftp/tnftp_20230507.bb
new file mode 100644
index 0000000000..bdd9759f26
--- /dev/null
+++ b/meta-networking/recipes-support/tnftp/tnftp_20230507.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Enhanced NetBSD ftp client"
+DESCRIPTION = "tnftp (formerly known as lukemftp) is a port of the NetBSD FTP client \
+to other systems. It offers many enhancements over the traditional \
+BSD FTP client, including command-line editing, command-line fetches \
+of FTP and HTTP URLs (including via proxies), command-line uploads of \
+FTP URLs, context-sensitive word completion, dynamic progress bar, \
+IPv6 support, modification time preservation, paging of local and \
+remote files, passive mode support (with fallback to active mode), \
+SOCKS support, TIS FWTK gate-ftp server support, and transfer rate \
+throttling."
+
+SECTION = "net"
+LICENSE = "BSD-2-Clause"
+
+DEPENDS = "ncurses"
+
+SRC_URI = "https://ftp.netbsd.org/pub/NetBSD/misc/tnftp/${BPN}-${PV}.tar.gz \
+ file://0001-libedit-Include-missing-header-stdc-predef.h.patch \
+"
+
+inherit autotools update-alternatives pkgconfig
+
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE:${PN} = "ftp"
+ALTERNATIVE_LINK_NAME[ftp] = "${bindir}/ftp"
+ALTERNATIVE_TARGET[ftp] = "${bindir}/tnftp"
+
+FILES:${PN} = "${bindir}/tnftp"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbbb944979c7466ed5509b4bbc6c328b"
+SRC_URI[sha256sum] = "be0134394bd7d418a3b34892b0709eeb848557e86474e1786f0d1a887d3a6580"
+
+PACKAGECONFIG ?= "openssl \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+"
+PACKAGECONFIG[openssl] = "--enable-ssl, --disable-ssl --with-ssl=no, openssl"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb b/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb
deleted file mode 100644
index 9cac204998..0000000000
--- a/meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "A new modern implementation of traceroute(8) utility for Linux systems"
-DESCRIPTION = "The traceroute utility displays the route used by IP packets on \
-their way to a specified network (or Internet) host. Traceroute displays \
-the IP number and host name (if possible) of the machines along the \
-route taken by the packets. Traceroute is used as a network debugging \
-tool. If you're having network connectivity problems, traceroute will \
-show you where the trouble is coming from along the route."
-SECTION = "net"
-HOMEPAGE = "http://traceroute.sourceforge.net/"
-LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
-
-inherit update-alternatives
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/traceroute/files/traceroute/"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/traceroute/traceroute/${BP}/${BP}.tar.gz \
-"
-SRC_URI[md5sum] = "84d329d67abc3fb83fc8cb12aeaddaba"
-SRC_URI[sha256sum] = "3669d22a34d3f38ed50caba18cd525ba55c5c00d5465f2d20d7472e5d81603b6"
-
-EXTRA_OEMAKE = "VPATH=${STAGING_LIBDIR}"
-LTOEXTRA += "-flto-partition=none"
-
-do_compile() {
- oe_runmake "env=yes"
-}
-
-do_install() {
- install -d ${D}${bindir}
- install -m755 ${BPN}/${BPN} ${D}${bindir}
-
- install -m755 wrappers/tcptraceroute ${D}${bindir}
-
- install -d ${D}${mandir}/man8
- install -p -m644 ${BPN}/${BPN}.8 ${D}${mandir}/man8
- ln -s ${BPN}.8 ${D}${mandir}/man8/${BPN}6.8
- ln -s ${BPN}.8 ${D}${mandir}/man8/tcptraceroute.8
-
-}
-
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE:${PN} = "traceroute"
-ALTERNATIVE_LINK_NAME[traceroute] = "${bindir}/traceroute"
diff --git a/meta-networking/recipes-support/traceroute/traceroute_2.1.5.bb b/meta-networking/recipes-support/traceroute/traceroute_2.1.5.bb
new file mode 100644
index 0000000000..862cba91e9
--- /dev/null
+++ b/meta-networking/recipes-support/traceroute/traceroute_2.1.5.bb
@@ -0,0 +1,44 @@
+SUMMARY = "A new modern implementation of traceroute(8) utility for Linux systems"
+DESCRIPTION = "The traceroute utility displays the route used by IP packets on \
+their way to a specified network (or Internet) host. Traceroute displays \
+the IP number and host name (if possible) of the machines along the \
+route taken by the packets. Traceroute is used as a network debugging \
+tool. If you're having network connectivity problems, traceroute will \
+show you where the trouble is coming from along the route."
+SECTION = "net"
+HOMEPAGE = "http://traceroute.sourceforge.net/"
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
+
+inherit update-alternatives
+
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/traceroute/files/traceroute/"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/traceroute/traceroute/${BP}/${BP}.tar.gz \
+"
+SRC_URI[sha256sum] = "9c6c260d96eaab51e3ce461b0a84fe87123ebc6dd6c9a59fab803f95b35a859e"
+
+EXTRA_OEMAKE = "VPATH=${STAGING_LIBDIR}"
+LTOEXTRA += "-flto-partition=none"
+
+do_compile() {
+ oe_runmake "env=yes"
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m755 ${BPN}/${BPN} ${D}${bindir}
+
+ install -m755 wrappers/tcptraceroute ${D}${bindir}
+
+ install -d ${D}${mandir}/man8
+ install -p -m644 ${BPN}/${BPN}.8 ${D}${mandir}/man8
+ ln -s ${BPN}.8 ${D}${mandir}/man8/${BPN}6.8
+ ln -s ${BPN}.8 ${D}${mandir}/man8/tcptraceroute.8
+
+}
+
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE:${PN} = "traceroute"
+ALTERNATIVE_LINK_NAME[traceroute] = "${bindir}/traceroute"
diff --git a/meta-networking/recipes-support/uftp/uftp_5.0.1.bb b/meta-networking/recipes-support/uftp/uftp_5.0.1.bb
deleted file mode 100644
index 6d5cf4b628..0000000000
--- a/meta-networking/recipes-support/uftp/uftp_5.0.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Encrypted UDP based FTP with multicast"
-HOMEPAGE = "https://sourceforge.net/projects/uftp-multicast"
-SECTION = "libs/network"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504"
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/uftp-multicast/files/source-tar/"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/uftp-multicast/source-tar/uftp-${PV}.tar.gz"
-SRC_URI[sha256sum] = "f0435fbc8e9ffa125e05600cb6c7fc933d7d587f5bae41b257267be4f2ce0e61"
-
-DEPENDS = "openssl"
-
-do_install () {
- oe_runmake install DESTDIR=${D}
-}
diff --git a/meta-networking/recipes-support/uftp/uftp_5.0.3.bb b/meta-networking/recipes-support/uftp/uftp_5.0.3.bb
new file mode 100644
index 0000000000..6f0858cc95
--- /dev/null
+++ b/meta-networking/recipes-support/uftp/uftp_5.0.3.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Encrypted UDP based FTP with multicast"
+HOMEPAGE = "https://sourceforge.net/projects/uftp-multicast"
+SECTION = "libs/network"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504"
+
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/uftp-multicast/files/source-tar/"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/uftp-multicast/source-tar/uftp-${PV}.tar.gz"
+SRC_URI[sha256sum] = "cb8668c19b1f10bc63a16ffa893e205dc3ec86361037d477d8003260ebc40080"
+
+DEPENDS = "openssl"
+
+do_install () {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/meta-networking/recipes-support/unbound/unbound/0001-contrib-add-yocto-compatible-init-script.patch b/meta-networking/recipes-support/unbound/unbound/0001-contrib-add-yocto-compatible-init-script.patch
deleted file mode 100644
index 7168a352f7..0000000000
--- a/meta-networking/recipes-support/unbound/unbound/0001-contrib-add-yocto-compatible-init-script.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 26614b6578056ec30b95013592e308bf24d924c2 Mon Sep 17 00:00:00 2001
-From: Beniamin Sandu <beniaminsandu@gmail.com>
-Date: Fri, 20 Nov 2020 23:00:20 +0200
-Subject: [PATCH] contrib: add yocto compatible init script
-
-Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
----
- contrib/unbound.init | 20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/contrib/unbound.init b/contrib/unbound.init
-index c5bb52bb..4eba752b 100644
---- a/contrib/unbound.init
-+++ b/contrib/unbound.init
-@@ -19,11 +19,11 @@
- ### END INIT INFO
-
- # Source function library.
--. /etc/rc.d/init.d/functions
-+. /etc/init.d/functions
-
- exec="/usr/sbin/unbound"
- prog="unbound"
--config="/var/unbound/unbound.conf"
-+config="/etc/unbound/unbound.conf"
- pidfile="/var/unbound/unbound.pid"
- rootdir="/var/unbound"
-
-@@ -54,14 +54,14 @@ start() {
- [ -e ${rootdir}/dev/log ] || touch ${rootdir}/dev/log
- mount --bind -n /dev/log ${rootdir}/dev/log >/dev/null 2>&1;
- fi;
-- if ! egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/urandom' /proc/mounts; then
-+ if ! egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/random' /proc/mounts; then
- [ -d ${rootdir}/dev ] || mkdir -p ${rootdir}/dev ;
-- [ -e ${rootdir}/dev/urandom ] || touch ${rootdir}/dev/urandom
-- mount --bind -n /dev/urandom ${rootdir}/dev/urandom >/dev/null 2>&1;
-+ [ -e ${rootdir}/dev/random ] || touch ${rootdir}/dev/random
-+ mount --bind -n /dev/random ${rootdir}/dev/random >/dev/null 2>&1;
- fi;
-
- # if not running, start it up here
-- daemon $exec
-+ daemonize $exec
- retval=$?
- echo
- [ $retval -eq 0 ] && touch $lockfile
-@@ -71,15 +71,15 @@ start() {
- stop() {
- echo -n $"Stopping $prog: "
- # stop it here, often "killproc $prog"
-- killproc -p $pidfile $prog
-+ killproc $prog
- retval=$?
- echo
- [ $retval -eq 0 ] && rm -f $lockfile
- if egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/log' /proc/mounts; then
- umount ${rootdir}/dev/log >/dev/null 2>&1
- fi;
-- if egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/urandom' /proc/mounts; then
-- umount ${rootdir}/dev/urandom >/dev/null 2>&1
-+ if egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/random' /proc/mounts; then
-+ umount ${rootdir}/dev/random >/dev/null 2>&1
- fi;
- return $retval
- }
-@@ -99,7 +99,7 @@ force_reload() {
-
- rh_status() {
- # run checks to determine if the service is running or use generic status
-- status -p $pidfile $prog
-+ status $prog
- }
-
- rh_status_q() {
---
-2.25.1
-
diff --git a/meta-networking/recipes-support/unbound/unbound_1.16.3.bb b/meta-networking/recipes-support/unbound/unbound_1.16.3.bb
deleted file mode 100644
index 5e40d8c30c..0000000000
--- a/meta-networking/recipes-support/unbound/unbound_1.16.3.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Unbound is a validating, recursive, and caching DNS resolver"
-DESCRIPTION = "Unbound's design is a set of modular components which incorporate \
- features including enhanced security (DNSSEC) validation, Internet Protocol \
- Version 6 (IPv6), and a client resolver library API as an integral part of the \
- architecture"
-
-HOMEPAGE = "https://www.unbound.net/"
-SECTION = "net"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5308494bc0590c0cb036afd781d78f06"
-
-SRC_URI = "git://github.com/NLnetLabs/unbound.git;protocol=http;branch=master;protocol=https \
- file://0001-contrib-add-yocto-compatible-init-script.patch \
-"
-SRCREV = "137719522a8ea5b380fbb6206d2466f402f5b554"
-
-inherit autotools pkgconfig systemd update-rc.d
-
-DEPENDS = "openssl libevent libtool-native bison-native expat"
-RDEPENDS:${PN} = "bash openssl-bin daemonize"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF = "--with-libexpat=${STAGING_EXECPREFIXDIR} \
- --with-ssl=${STAGING_EXECPREFIXDIR} \
- --enable-largefile"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[dnscrypt] = "--enable-dnscrypt, --disable-dnscrypt, libsodium"
-PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
-
-do_install:append() {
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${B}/contrib/unbound.service ${D}${systemd_unitdir}/system
-
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${S}/contrib/unbound.init ${D}${sysconfdir}/init.d/unbound
-}
-
-SYSTEMD_SERVICE:${PN} = "${BPN}.service"
-
-INITSCRIPT_NAME = "unbound"
-INITSCRIPT_PARAMS = "defaults"
diff --git a/meta-networking/recipes-support/unbound/unbound_1.19.3.bb b/meta-networking/recipes-support/unbound/unbound_1.19.3.bb
new file mode 100644
index 0000000000..ffdc78e9d6
--- /dev/null
+++ b/meta-networking/recipes-support/unbound/unbound_1.19.3.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Unbound is a validating, recursive, and caching DNS resolver"
+DESCRIPTION = "Unbound's design is a set of modular components which incorporate \
+ features including enhanced security (DNSSEC) validation, Internet Protocol \
+ Version 6 (IPv6), and a client resolver library API as an integral part of the \
+ architecture"
+
+HOMEPAGE = "https://www.unbound.net/"
+SECTION = "net"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5308494bc0590c0cb036afd781d78f06"
+
+SRC_URI = "git://github.com/NLnetLabs/unbound.git;protocol=https;branch=branch-1.19.3"
+SRCREV = "48b6c60a24e9a5d6d369a7a37c9fe2a767f26abd"
+
+inherit autotools pkgconfig systemd update-rc.d
+
+DEPENDS = "openssl libtool-native bison-native expat"
+RDEPENDS:${PN} = "bash openssl-bin daemonize"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF = "--with-libexpat=${STAGING_EXECPREFIXDIR} \
+ --with-ssl=${STAGING_EXECPREFIXDIR} \
+ --enable-largefile"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[dnscrypt] = "--enable-dnscrypt, --disable-dnscrypt, libsodium"
+PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
+PACKAGECONFIG[libevent] = "--with-libevent=${STAGING_EXECPREFIXDIR},,libevent"
+
+do_configure:append() {
+ sed -i -e 's#${RECIPE_SYSROOT}##g' ${B}/config.h
+}
+
+do_install:append() {
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${B}/contrib/unbound.service ${D}${systemd_unitdir}/system
+
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${S}/contrib/unbound.init_yocto ${D}${sysconfdir}/init.d/unbound
+}
+
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+
+INITSCRIPT_NAME = "unbound"
+INITSCRIPT_PARAMS = "defaults"
diff --git a/meta-networking/recipes-support/wavemon/wavemon_0.9.5.bb b/meta-networking/recipes-support/wavemon/wavemon_0.9.5.bb
new file mode 100644
index 0000000000..9da43cf9f4
--- /dev/null
+++ b/meta-networking/recipes-support/wavemon/wavemon_0.9.5.bb
@@ -0,0 +1,28 @@
+SUMMARY = "wavemon is a wireless device monitoring application"
+HOMEPAGE = "https://github.com/uoaerg/wavemon"
+DESCRIPTION = "wavemon is a wireless device monitoring application that \
+ allows you to watch signal and noise levels, packet \
+ statistics, device configuration and network parameters of \
+ your wireless network hardware."
+
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+PACKAGECONFIG ??= "cap"
+PACKAGECONFIG[cap] = "--with-libcap,--without-libcap,libcap"
+
+DEPENDS = "libnl ncurses"
+
+SRC_URI = "git://github.com/uoaerg/wavemon;branch=master;protocol=https"
+SRCREV = "a7c2f190e010db508ead31fa952478e2a1c13d64"
+
+# Needs some help to find libnl3 headers.
+# Reorder -pthread flag on the command line.
+EXTRA_OEMAKE = "\
+ CC='${CC}' CFLAGS='${CFLAGS} -pthread -I${STAGING_INCDIR}/libnl3' \
+"
+
+S = "${WORKDIR}/git"
+
+# wavemon does not support using out-of-tree builds
+inherit autotools-brokensep pkgconfig
diff --git a/meta-networking/recipes-support/wireshark/files/0001-UseLemon.cmake-do-not-use-lemon-data-from-the-host.patch b/meta-networking/recipes-support/wireshark/files/0001-UseLemon.cmake-do-not-use-lemon-data-from-the-host.patch
new file mode 100644
index 0000000000..1903f38f5d
--- /dev/null
+++ b/meta-networking/recipes-support/wireshark/files/0001-UseLemon.cmake-do-not-use-lemon-data-from-the-host.patch
@@ -0,0 +1,32 @@
+From 802d3cafa888b36aa72007d48232a010dbb0231d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 27 Dec 2023 16:57:28 +0100
+Subject: [PATCH] UseLemon.cmake: do not use lemon data from the host
+
+We use native lemon, and not the host one, so
+the data should be taken from the source tree as well.
+
+Upstream-Status: Inappropriate [cross-specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ cmake/modules/UseLemon.cmake | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/cmake/modules/UseLemon.cmake b/cmake/modules/UseLemon.cmake
+index fa4034e..83a7ca3 100644
+--- a/cmake/modules/UseLemon.cmake
++++ b/cmake/modules/UseLemon.cmake
+@@ -13,11 +13,12 @@ if(LEMON_EXECUTABLE)
+ ${_out}.out
+ COMMAND ${LEMON_EXECUTABLE}
+ -l
+- -T/usr/share/lemon/lempar.c
++ -T${CMAKE_SOURCE_DIR}/tools/lemon/lempar.c
+ -d.
+ ${_in}
+ DEPENDS
+ ${_in}
++ ${CMAKE_SOURCE_DIR}/tools/lemon/lempar.c
+ )
+ endmacro()
+ add_custom_target(lemon)
diff --git a/meta-networking/recipes-support/wireshark/files/0001-wireshark-src-improve-reproducibility.patch b/meta-networking/recipes-support/wireshark/files/0001-wireshark-src-improve-reproducibility.patch
index 0b83ca4ae4..202de62606 100644
--- a/meta-networking/recipes-support/wireshark/files/0001-wireshark-src-improve-reproducibility.patch
+++ b/meta-networking/recipes-support/wireshark/files/0001-wireshark-src-improve-reproducibility.patch
@@ -1,4 +1,4 @@
-From 0a9ab056ce7582033a21d6bc541ece520bf2b0b6 Mon Sep 17 00:00:00 2001
+From d9c4cdad0c48becab491ea4e80e5cd81f7d1dc97 Mon Sep 17 00:00:00 2001
From: Oleksiy Obitotskyy <oobitots@cisco.com>
Date: Thu, 26 Nov 2020 05:38:31 -0800
Subject: [PATCH] wireshark-src: improve reproducibility
@@ -8,29 +8,16 @@ comments.
Upstream-Status: Pending
Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
+
---
- tools/make-plugin-reg.py | 2 +-
- tools/ncp2222.py | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
+ tools/ncp2222.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/tools/make-plugin-reg.py b/tools/make-plugin-reg.py
-index 66b4656..c52b3fc 100755
---- a/tools/make-plugin-reg.py
-+++ b/tools/make-plugin-reg.py
-@@ -28,7 +28,7 @@ preamble = """\
- *
- * Generated automatically from %s.
- */
--""" % (sys.argv[0])
-+""" % (os.path.basename(sys.argv[0]))
-
- # Create the proper list of filenames
- filenames = []
diff --git a/tools/ncp2222.py b/tools/ncp2222.py
-index 1dea4ec..dc376e3 100755
+index f14d0c5..05073b9 100755
--- a/tools/ncp2222.py
+++ b/tools/ncp2222.py
-@@ -5858,7 +5858,7 @@ def produce_code():
+@@ -5891,7 +5891,7 @@ def produce_code():
print("/*")
print(" * Do not modify this file. Changes will be overwritten.")
@@ -39,6 +26,3 @@ index 1dea4ec..dc376e3 100755
print(" */\n")
print("""
---
-2.26.2.Cisco
-
diff --git a/meta-networking/recipes-support/wireshark/files/0002-flex-Remove-line-directives.patch b/meta-networking/recipes-support/wireshark/files/0002-flex-Remove-line-directives.patch
index 069b5793d9..0e6249c939 100644
--- a/meta-networking/recipes-support/wireshark/files/0002-flex-Remove-line-directives.patch
+++ b/meta-networking/recipes-support/wireshark/files/0002-flex-Remove-line-directives.patch
@@ -1,4 +1,4 @@
-From 3e571e24c730f747d18ed02ba7451e9e00480fc7 Mon Sep 17 00:00:00 2001
+From e4e88c2f55286cf24af230b265d0e059363baa6c Mon Sep 17 00:00:00 2001
From: Oleksiy Obitotskyy <oobitots@cisco.com>
Date: Thu, 26 Nov 2020 12:00:43 -0800
Subject: [PATCH] flex: Remove #line directives
@@ -8,12 +8,13 @@ generate #line directives with absolute file patch.
Upstream-Status: Pending
Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
+
---
cmake/modules/FindLEX.cmake | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/cmake/modules/FindLEX.cmake b/cmake/modules/FindLEX.cmake
-index 0008bc4..ec68f84 100644
+index 20caa09..174f452 100644
--- a/cmake/modules/FindLEX.cmake
+++ b/cmake/modules/FindLEX.cmake
@@ -32,11 +32,19 @@ MACRO(ADD_LEX_FILES _source _generated)
@@ -22,25 +23,22 @@ index 0008bc4..ec68f84 100644
- ADD_CUSTOM_COMMAND(
- OUTPUT ${_outc} ${_outh}
-- COMMAND ${LEX_EXECUTABLE} -o${_outc} --header-file=${_outh} ${_in}
+- COMMAND ${LEX_EXECUTABLE} $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:--debug> -o${_outc} --header-file=${_outh} ${_in}
- DEPENDS ${_in}
- )
+ IF (DEFINED ENV{SOURCE_DATE_EPOCH})
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_outc} ${_outh}
-+ COMMAND ${LEX_EXECUTABLE} --noline -o${_outc} --header-file=${_outh} ${_in}
++ COMMAND ${LEX_EXECUTABLE} $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:--debug> --noline -o${_outc} --header-file=${_outh} ${_in}
+ DEPENDS ${_in}
+ )
+ ELSE ()
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_outc} ${_outh}
-+ COMMAND ${LEX_EXECUTABLE} -o${_outc} --header-file=${_outh} ${_in}
++ COMMAND ${LEX_EXECUTABLE} $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:--debug> -o${_outc} --header-file=${_outh} ${_in}
+ DEPENDS ${_in}
+ )
+ ENDIF ()
LIST(APPEND ${_source} ${_in})
LIST(APPEND ${_generated} ${_outc})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
---
-2.26.2.Cisco
-
diff --git a/meta-networking/recipes-support/wireshark/files/0003-bison-Remove-line-directives.patch b/meta-networking/recipes-support/wireshark/files/0003-bison-Remove-line-directives.patch
deleted file mode 100644
index 824761a3dc..0000000000
--- a/meta-networking/recipes-support/wireshark/files/0003-bison-Remove-line-directives.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 42abf1d299fed8e00a189f6f9c55fb344e5bb775 Mon Sep 17 00:00:00 2001
-From: Oleksiy Obitotskyy <oobitots@cisco.com>
-Date: Wed, 27 Jan 2021 04:01:34 -0800
-Subject: [PATCH] bison: Remove #line directives
-
-Append --no-lines option to bison to not
-generate #line directives with absolute file path.
-
-Upstream-Status: Pending
-Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
----
- cmake/modules/FindYACC.cmake | 31 ++++++++++++++++++++++---------
- 1 file changed, 22 insertions(+), 9 deletions(-)
-
-diff --git a/cmake/modules/FindYACC.cmake b/cmake/modules/FindYACC.cmake
-index c96f87b..54a73cb 100644
---- a/cmake/modules/FindYACC.cmake
-+++ b/cmake/modules/FindYACC.cmake
-@@ -29,15 +29,28 @@ MACRO(ADD_YACC_FILES _source _generated)
-
- SET(_out ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.c)
-
-- ADD_CUSTOM_COMMAND(
-- OUTPUT ${_out}
-- COMMAND ${YACC_EXECUTABLE}
-- -d
-- -p ${_basename}
-- -o${_out}
-- ${_in}
-- DEPENDS ${_in}
-- )
-+ IF (DEFINED ENV{SOURCE_DATE_EPOCH})
-+ ADD_CUSTOM_COMMAND(
-+ OUTPUT ${_out}
-+ COMMAND ${YACC_EXECUTABLE}
-+ --no-lines
-+ -d
-+ -p ${_basename}
-+ -o${_out}
-+ ${_in}
-+ DEPENDS ${_in}
-+ )
-+ ELSE ()
-+ ADD_CUSTOM_COMMAND(
-+ OUTPUT ${_out}
-+ COMMAND ${YACC_EXECUTABLE}
-+ -d
-+ -p ${_basename}
-+ -o${_out}
-+ ${_in}
-+ DEPENDS ${_in}
-+ )
-+ ENDIF ()
- LIST(APPEND ${_source} ${_in})
- LIST(APPEND ${_generated} ${_out})
- ENDFOREACH (_current_FILE)
---
-2.26.2.Cisco
-
diff --git a/meta-networking/recipes-support/wireshark/files/0004-lemon-Remove-line-directives.patch b/meta-networking/recipes-support/wireshark/files/0004-lemon-Remove-line-directives.patch
index 134633f668..1a6fe8d39e 100644
--- a/meta-networking/recipes-support/wireshark/files/0004-lemon-Remove-line-directives.patch
+++ b/meta-networking/recipes-support/wireshark/files/0004-lemon-Remove-line-directives.patch
@@ -1,4 +1,4 @@
-From 17f05a8d02c589e4867906f70381e63e46a67870 Mon Sep 17 00:00:00 2001
+From 94b951c0cccf67b66749cc87c473e63fa5207e83 Mon Sep 17 00:00:00 2001
From: Oleksiy Obitotskyy <oobitots@cisco.com>
Date: Wed, 27 Jan 2021 06:47:13 -0800
Subject: [PATCH] lemon: Remove #line directives
@@ -8,67 +8,28 @@ directives with extra option '-l'.
Upstream-Status: Pending
Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
+
---
- cmake/modules/UseLemon.cmake | 49 +++++++++++++++++++++++++-----------
- 1 file changed, 34 insertions(+), 15 deletions(-)
+ cmake/modules/UseLemon.cmake | 2 ++
+ 1 file changed, 2 insertions(+)
-Index: wireshark-3.4.11/cmake/modules/UseLemon.cmake
-===================================================================
---- wireshark-3.4.11.orig/cmake/modules/UseLemon.cmake
-+++ wireshark-3.4.11/cmake/modules/UseLemon.cmake
-@@ -7,21 +7,40 @@ MACRO(ADD_LEMON_FILES _source _generated
-
- SET(_out ${CMAKE_CURRENT_BINARY_DIR}/${_basename})
-
-- ADD_CUSTOM_COMMAND(
-- OUTPUT
-- ${_out}.c
-- # These files are generated as side-effect
-- ${_out}.h
-- ${_out}.out
-- COMMAND $<TARGET_FILE:lemon>
-- -T${_lemonpardir}/lempar.c
-- -d.
-- ${_in}
-- DEPENDS
-- ${_in}
-- lemon
-- ${_lemonpardir}/lempar.c
-- )
-+ IF (DEFINED ENV{SOURCE_DATE_EPOCH})
-+ ADD_CUSTOM_COMMAND(
-+ OUTPUT
-+ ${_out}.c
-+ # These files are generated as side-effect
-+ ${_out}.h
-+ ${_out}.out
-+ COMMAND lemon
-+ -l
-+ -T${_lemonpardir}/lempar.c
-+ -d.
-+ ${_in}
-+ DEPENDS
-+ ${_in}
-+ lemon
-+ ${_lemonpardir}/lempar.c
-+ )
-+ ELSE ()
-+ ADD_CUSTOM_COMMAND(
-+ OUTPUT
-+ ${_out}.c
-+ # These files are generated as side-effect
-+ ${_out}.h
-+ ${_out}.out
-+ COMMAND lemon
-+ -T${_lemonpardir}/lempar.c
-+ -d.
-+ ${_in}
-+ DEPENDS
-+ ${_in}
-+ lemon
-+ ${_lemonpardir}/lempar.c
-+ )
-+ ENDIF ()
-
- LIST(APPEND ${_source} ${_in})
- LIST(APPEND ${_generated} ${_out}.c)
+diff --git a/cmake/modules/UseLemon.cmake b/cmake/modules/UseLemon.cmake
+index e419de1..fa4034e 100644
+--- a/cmake/modules/UseLemon.cmake
++++ b/cmake/modules/UseLemon.cmake
+@@ -12,6 +12,7 @@ if(LEMON_EXECUTABLE)
+ ${_out}.h
+ ${_out}.out
+ COMMAND ${LEMON_EXECUTABLE}
++ -l
+ -T/usr/share/lemon/lempar.c
+ -d.
+ ${_in}
+@@ -30,6 +31,7 @@ else()
+ ${_out}.h
+ ${_out}.out
+ COMMAND $<TARGET_FILE:lemon>
++ -l
+ -T${CMAKE_SOURCE_DIR}/tools/lemon/lempar.c
+ -d.
+ ${_in}
diff --git a/meta-networking/recipes-support/wireshark/files/CVE-2022-3190.patch b/meta-networking/recipes-support/wireshark/files/CVE-2022-3190.patch
deleted file mode 100644
index 0b987700f5..0000000000
--- a/meta-networking/recipes-support/wireshark/files/CVE-2022-3190.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-From 4585d515b962f3b3a5e81caa64e13e8d9ed2e431 Mon Sep 17 00:00:00 2001
-From: Hitendra Prajapati <hprajapati@mvista.com>
-Date: Mon, 26 Sep 2022 12:47:00 +0530
-Subject: [PATCH] CVE-2022-3190
-
-Upstream-Status: Backport [https://gitlab.com/wireshark/wireshark/-/commit/67326401a595fffbc67eeed48eb6c55d66a55f67]
-CVE : CVE-2022-3190
-Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
----
- epan/dissectors/packet-f5ethtrailer.c | 108 +++++++++++++-------------
- 1 file changed, 56 insertions(+), 52 deletions(-)
-
-diff --git a/epan/dissectors/packet-f5ethtrailer.c b/epan/dissectors/packet-f5ethtrailer.c
-index ed77dfd..b15b0d4 100644
---- a/epan/dissectors/packet-f5ethtrailer.c
-+++ b/epan/dissectors/packet-f5ethtrailer.c
-@@ -2741,69 +2741,73 @@ dissect_dpt_trailer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
- static gint
- dissect_old_trailer(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
- {
-- proto_tree *type_tree = NULL;
-- proto_item *ti = NULL;
- guint offset = 0;
-- guint processed = 0;
-- f5eth_tap_data_t *tdata = (f5eth_tap_data_t *)data;
-- guint8 type;
-- guint8 len;
-- guint8 ver;
-
- /* While we still have data in the trailer. For old format trailers, this needs
- * type, length, version (3 bytes) and for new format trailers, the magic header (4 bytes).
- * All old format trailers are at least 4 bytes long, so just check for length of magic.
- */
-- while (tvb_reported_length_remaining(tvb, offset)) {
-- type = tvb_get_guint8(tvb, offset);
-- len = tvb_get_guint8(tvb, offset + F5_OFF_LENGTH) + F5_OFF_VERSION;
-- ver = tvb_get_guint8(tvb, offset + F5_OFF_VERSION);
--
-- if (len <= tvb_reported_length_remaining(tvb, offset) && type >= F5TYPE_LOW
-- && type <= F5TYPE_HIGH && len >= F5_MIN_SANE && len <= F5_MAX_SANE
-- && ver <= F5TRAILER_VER_MAX) {
-- /* Parse out the specified trailer. */
-- switch (type) {
-- case F5TYPE_LOW:
-- ti = proto_tree_add_item(tree, hf_low_id, tvb, offset, len, ENC_NA);
-- type_tree = proto_item_add_subtree(ti, ett_f5ethtrailer_low);
--
-- processed = dissect_low_trailer(tvb, pinfo, type_tree, offset, len, ver, tdata);
-- if (processed > 0) {
-- tdata->trailer_len += processed;
-- tdata->noise_low = 1;
-- }
-- break;
-- case F5TYPE_MED:
-- ti = proto_tree_add_item(tree, hf_med_id, tvb, offset, len, ENC_NA);
-- type_tree = proto_item_add_subtree(ti, ett_f5ethtrailer_med);
--
-- processed = dissect_med_trailer(tvb, pinfo, type_tree, offset, len, ver, tdata);
-- if (processed > 0) {
-- tdata->trailer_len += processed;
-- tdata->noise_med = 1;
-- }
-- break;
-- case F5TYPE_HIGH:
-- ti = proto_tree_add_item(tree, hf_high_id, tvb, offset, len, ENC_NA);
-- type_tree = proto_item_add_subtree(ti, ett_f5ethtrailer_high);
--
-- processed =
-- dissect_high_trailer(tvb, pinfo, type_tree, offset, len, ver, tdata);
-- if (processed > 0) {
-- tdata->trailer_len += processed;
-- tdata->noise_high = 1;
-- }
-- break;
-+ while (tvb_reported_length_remaining(tvb, offset) >= F5_MIN_SANE) {
-+ /* length field does not include the type and length bytes. Add them back in */
-+ guint8 len = tvb_get_guint8(tvb, offset + F5_OFF_LENGTH) + F5_OFF_VERSION;
-+ if (len > tvb_reported_length_remaining(tvb, offset)
-+ || len < F5_MIN_SANE || len > F5_MAX_SANE) {
-+ /* Invalid length - either a malformed trailer, corrupt packet, or not f5ethtrailer */
-+ return offset;
-+ }
-+ guint8 type = tvb_get_guint8(tvb, offset);
-+ guint8 ver = tvb_get_guint8(tvb, offset + F5_OFF_VERSION);
-+
-+ /* Parse out the specified trailer. */
-+ proto_tree *type_tree = NULL;
-+ proto_item *ti = NULL;
-+ f5eth_tap_data_t *tdata = (f5eth_tap_data_t *)data;
-+ guint processed = 0;
-+
-+ switch (type) {
-+ case F5TYPE_LOW:
-+ ti = proto_tree_add_item(tree, hf_low_id, tvb, offset, len, ENC_NA);
-+ type_tree = proto_item_add_subtree(ti, ett_f5ethtrailer_low);
-+
-+ processed = dissect_low_trailer(tvb, pinfo, type_tree, offset, len, ver, tdata);
-+ if (processed > 0) {
-+ tdata->trailer_len += processed;
-+ tdata->noise_low = 1;
- }
-- if (processed == 0) {
-- proto_item_set_len(ti, 1);
-- return offset;
-+ break;
-+ case F5TYPE_MED:
-+ ti = proto_tree_add_item(tree, hf_med_id, tvb, offset, len, ENC_NA);
-+ type_tree = proto_item_add_subtree(ti, ett_f5ethtrailer_med);
-+
-+ processed = dissect_med_trailer(tvb, pinfo, type_tree, offset, len, ver, tdata);
-+ if (processed > 0) {
-+ tdata->trailer_len += processed;
-+ tdata->noise_med = 1;
-+ }
-+ break;
-+ case F5TYPE_HIGH:
-+ ti = proto_tree_add_item(tree, hf_high_id, tvb, offset, len, ENC_NA);
-+ type_tree = proto_item_add_subtree(ti, ett_f5ethtrailer_high);
-+
-+ processed =
-+ dissect_high_trailer(tvb, pinfo, type_tree, offset, len, ver, tdata);
-+ if (processed > 0) {
-+ tdata->trailer_len += processed;
-+ tdata->noise_high = 1;
- }
-+ break;
-+ default:
-+ /* Unknown type - malformed trailer, corrupt packet, or not f5ethtrailer - bali out*/
-+ return offset;
-+ }
-+ if (processed == 0) {
-+ /* couldn't process trailer - bali out */
-+ proto_item_set_len(ti, 1);
-+ return offset;
- }
- offset += processed;
- }
--return offset;
-+ return offset;
- } /* dissect_old_trailer() */
-
- /*---------------------------------------------------------------------------*/
---
-2.25.1
-
diff --git a/meta-networking/recipes-support/wireshark/wireshark_3.4.12.bb b/meta-networking/recipes-support/wireshark/wireshark_3.4.12.bb
deleted file mode 100644
index 1a4aedc139..0000000000
--- a/meta-networking/recipes-support/wireshark/wireshark_3.4.12.bb
+++ /dev/null
@@ -1,89 +0,0 @@
-DESCRIPTION = "wireshark - a popular network protocol analyzer"
-HOMEPAGE = "http://www.wireshark.org"
-SECTION = "net"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6e271234ba1a13c6e512e76b94ac2f77"
-
-DEPENDS = "pcre expat glib-2.0 glib-2.0-native libgcrypt libgpg-error libxml2 bison-native c-ares"
-
-DEPENDS:append:class-target = " wireshark-native chrpath-replacement-native "
-
-SRC_URI = "https://1.eu.dl.wireshark.org/src/all-versions/wireshark-${PV}.tar.xz"
-
-SRC_URI += " \
- file://0001-wireshark-src-improve-reproducibility.patch \
- file://0002-flex-Remove-line-directives.patch \
- file://0003-bison-Remove-line-directives.patch \
- file://0004-lemon-Remove-line-directives.patch \
- file://CVE-2022-3190.patch \
-"
-
-UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
-
-SRC_URI[sha256sum] = "881a13303e263b7dc7fe337534c8a541d4914552287879bed30bbe76c5bf68ca"
-
-PE = "1"
-
-inherit cmake pkgconfig python3native perlnative upstream-version-is-even mime mime-xdg
-
-PACKAGECONFIG ?= "libpcap gnutls libnl libcap sbc"
-
-PACKAGECONFIG:class-native = "libpcap gnutls ssl libssh"
-
-PACKAGECONFIG[libcap] = "-DENABLE_CAP=ON,-DENABLE_CAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON, libcap"
-PACKAGECONFIG[libpcap] = "-DENABLE_PCAP=ON,-DENABLE_PCAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON , libpcap"
-PACKAGECONFIG[libsmi] = "-DENABLE_SMI=ON,-DENABLE_SMI=OFF,libsmi"
-PACKAGECONFIG[libnl] = ",,libnl"
-PACKAGECONFIG[portaudio] = "-DENABLE_PORTAUDIO=ON,-DENABLE_PORTAUDIO=OFF, portaudio-v19"
-PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON,-DENABLE_GNUTLS=OFF, gnutls"
-PACKAGECONFIG[ssl] = ",,openssl"
-PACKAGECONFIG[krb5] = "-DENABLE_KRB5=ON,-DENABLE_KRB5=OFF, krb5"
-PACKAGECONFIG[lua] = "-DENABLE_LUA=ON,-DENABLE_LUA=OFF, lua"
-PACKAGECONFIG[zlib] = "-DENABLE_ZLIB=ON,-DENABLE_ZLIB=OFF, zlib"
-PACKAGECONFIG[geoip] = ",, geoip"
-PACKAGECONFIG[plugins] = "-DENABLE_PLUGINS=ON,-DENABLE_PLUGINS=OFF"
-PACKAGECONFIG[sbc] = "-DENABLE_SBC=ON,-DENABLE_SBC=OFF, sbc"
-PACKAGECONFIG[libssh] = ",,libssh2"
-PACKAGECONFIG[lz4] = "-DENABLE_LZ4=ON,-DENABLE_LZ4=OFF, lz4"
-PACKAGECONFIG[zstd] = "-DENABLE_STTD=ON,-DENABLE_ZSTD=OFF, zstd"
-
-# these next two options require addional layers
-PACKAGECONFIG[c-ares] = "-DENABLE_CARES=ON,-DENABLE_CARES=OFF, c-ares"
-PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON -DBUILD_wireshark=ON, -DENABLE_QT5=OFF -DBUILD_wireshark=OFF, qttools-native qtmultimedia qtsvg"
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
-
-EXTRA_OECMAKE += "-DENABLE_NETLINK=ON \
- -DBUILD_mmdbresolve=OFF \
- -DBUILD_randpktdump=OFF \
- -DBUILD_androiddump=OFF \
- -DBUILD_dcerpcidl2wrs=OFF \
- -DM_INCLUDE_DIR=${includedir} \
- -DM_LIBRARY=${libdir} \
- "
-CFLAGS:append = " -lm"
-
-do_install:append:class-native() {
- install -d ${D}${bindir}
- for f in lemon
- do
- install -m 0755 ${B}/run/$f ${D}${bindir}
- done
-}
-
-do_install:append:class-target() {
- for f in `find ${D}${libdir} ${D}${bindir} -type f -executable`
- do
- chrpath --delete $f
- done
-}
-
-PACKAGE_BEFORE_PN += "tshark"
-
-FILES:tshark = "${bindir}/tshark ${mandir}/man1/tshark.*"
-
-FILES:${PN} += "${datadir}*"
-
-RDEPENDS:tshark = "wireshark"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-support/wireshark/wireshark_4.2.4.bb b/meta-networking/recipes-support/wireshark/wireshark_4.2.4.bb
new file mode 100644
index 0000000000..95db2efc4c
--- /dev/null
+++ b/meta-networking/recipes-support/wireshark/wireshark_4.2.4.bb
@@ -0,0 +1,99 @@
+DESCRIPTION = "wireshark - a popular network protocol analyzer"
+HOMEPAGE = "http://www.wireshark.org"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "pcre2 expat glib-2.0 glib-2.0-native libgcrypt libgpg-error libxml2 bison-native c-ares speexdsp"
+
+DEPENDS:append:class-target = " wireshark-native chrpath-replacement-native "
+
+SRC_URI = "https://1.eu.dl.wireshark.org/src/wireshark-${PV}.tar.xz \
+ file://0001-wireshark-src-improve-reproducibility.patch \
+ file://0002-flex-Remove-line-directives.patch \
+ file://0004-lemon-Remove-line-directives.patch \
+ file://0001-UseLemon.cmake-do-not-use-lemon-data-from-the-host.patch \
+ "
+
+UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
+
+SRC_URI[sha256sum] = "46bd0f4474337144b30816fb2d8f14e72a26d0391f24fe0b7b619acdcdad8c0c"
+
+PE = "1"
+
+inherit cmake pkgconfig python3native python3targetconfig perlnative upstream-version-is-even mime mime-xdg
+
+PACKAGECONFIG ?= "libpcap gnutls libnl libcap sbc"
+
+PACKAGECONFIG:class-native = "libpcap gnutls ssl libssh"
+
+PACKAGECONFIG[libcap] = "-DENABLE_CAP=ON,-DENABLE_CAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON, libcap"
+PACKAGECONFIG[libpcap] = "-DENABLE_PCAP=ON,-DENABLE_PCAP=OFF -DENABLE_PCAP_NG_DEFAULT=ON , libpcap"
+PACKAGECONFIG[libsmi] = "-DENABLE_SMI=ON,-DENABLE_SMI=OFF,libsmi"
+PACKAGECONFIG[libnl] = ",,libnl"
+PACKAGECONFIG[portaudio] = "-DENABLE_PORTAUDIO=ON,-DENABLE_PORTAUDIO=OFF, portaudio-v19"
+PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON,-DENABLE_GNUTLS=OFF, gnutls"
+PACKAGECONFIG[ssl] = ",,openssl"
+PACKAGECONFIG[krb5] = "-DENABLE_KRB5=ON,-DENABLE_KRB5=OFF, krb5"
+PACKAGECONFIG[lua] = "-DENABLE_LUA=ON,-DENABLE_LUA=OFF, lua"
+PACKAGECONFIG[zlib] = "-DENABLE_ZLIB=ON,-DENABLE_ZLIB=OFF, zlib"
+PACKAGECONFIG[geoip] = ",, geoip"
+PACKAGECONFIG[plugins] = "-DENABLE_PLUGINS=ON,-DENABLE_PLUGINS=OFF"
+PACKAGECONFIG[sbc] = "-DENABLE_SBC=ON,-DENABLE_SBC=OFF, sbc"
+PACKAGECONFIG[libssh] = "-DENABLE_LIBSSH=ON,-DENABLE_LIBSSH=OFF, libssh2"
+PACKAGECONFIG[lz4] = "-DENABLE_LZ4=ON,-DENABLE_LZ4=OFF, lz4"
+PACKAGECONFIG[zstd] = "-DENABLE_STTD=ON,-DENABLE_ZSTD=OFF, zstd"
+PACKAGECONFIG[nghttp2] = "-DENABLE_NGHTTP2=ON,-DENABLE_NGHTTP2=OFF, nghttp2"
+
+# these next two options require addional layers
+PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON -DBUILD_wireshark=ON, -DENABLE_QT5=OFF -DBUILD_wireshark=OFF, qttools-native qtmultimedia qtsvg"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
+
+EXTRA_OECMAKE += "-DENABLE_NETLINK=ON \
+ -DBUILD_mmdbresolve=OFF \
+ -DBUILD_randpktdump=OFF \
+ -DBUILD_androiddump=OFF \
+ -DBUILD_dcerpcidl2wrs=OFF \
+ -DM_INCLUDE_DIR=${includedir} \
+ -DM_LIBRARY=${libdir} \
+ "
+CFLAGS:append = " -lm"
+
+do_compile:append:class-target() {
+ # Fix TMPDIR, these are in the comments section
+ sed -i -e "s:** source file.*::g" ${B}/wiretap/ascend_parser.c
+ sed -i -e "s:** source file.*::g" ${B}/wiretap/candump_parser.c
+ sed -i -e "s:** source file.*::g" ${B}/wiretap/busmaster_parser.c
+ sed -i -e "s:** source file.*::g" ${B}/epan/protobuf_lang_parser.c
+ sed -i -e "s:** source file.*::g" ${B}/epan/dtd_grammar.c
+ sed -i -e "s:** source file.*::g" ${B}/epan/dfilter/grammar.c
+}
+
+do_install:append:class-native() {
+ install -d ${D}${bindir}
+ for f in lemon
+ do
+ install -m 0755 ${B}/run/$f ${D}${bindir}
+ done
+}
+
+do_install:append:class-target() {
+ for f in `find ${D}${libdir} ${D}${bindir} -type f -executable`
+ do
+ chrpath --delete $f
+ done
+
+ # We don't need the cmake files installed
+ rm -fr ${D}${usrlib}/${BPN}/cmake
+}
+
+PACKAGE_BEFORE_PN += "tshark"
+
+FILES:tshark = "${bindir}/tshark ${mandir}/man1/tshark.*"
+
+FILES:${PN} += "${datadir}*"
+
+RDEPENDS:tshark = "wireshark"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/README b/meta-oe/README.md
index 676a2c8925..676a2c8925 100644
--- a/meta-oe/README
+++ b/meta-oe/README.md
diff --git a/meta-oe/classes/gitpkgv.bbclass b/meta-oe/classes/gitpkgv.bbclass
index 180421ed35..5ab507969c 100644
--- a/meta-oe/classes/gitpkgv.bbclass
+++ b/meta-oe/classes/gitpkgv.bbclass
@@ -25,17 +25,17 @@
#
# inherit gitpkgv
#
-# PV = "1.0+gitr${SRCPV}" # expands to something like 1.0+gitr3+4c1c21d7dbbf93b0df336994524313dfe0d4963b
-# PKGV = "1.0+gitr${GITPKGV}" # expands also to something like 1.0+gitr31337+4c1c21d7d
+# PV = "1.0+git" # expands to 1.0+git
+# PKGV = "1.0+git${GITPKGV}" # expands also to something like 1.0+git31337+4c1c21d7d
#
# or
#
# inherit gitpkgv
#
-# PV = "1.0+gitr${SRCPV}" # expands to something like 1.0+gitr3+4c1c21d7dbbf93b0df336994524313dfe0d4963b
-# PKGV = "${GITPKGVTAG}" # expands to something like 1.0-31337+g4c1c21d
-# if there is tag v1.0 before this revision or
-# ver1.0-31337+g4c1c21d if there is tag ver1.0
+# PV = "1.0+git" # expands to 1.0+git
+# PKGV = "${GITPKGVTAG}" # expands to something like 1.0-31337+g4c1c21d
+# if there is tag v1.0 before this revision or
+# ver1.0-31337+g4c1c21d if there is tag ver1.0
GITPKGV = "${@get_git_pkgv(d, False)}"
GITPKGVTAG = "${@get_git_pkgv(d, True)}"
@@ -56,7 +56,7 @@ def gitpkgv_drop_tag_prefix(d, version):
def get_git_pkgv(d, use_tags):
import os
import bb
- from pipes import quote
+ from shlex import quote
src_uri = d.getVar('SRC_URI').split()
fetcher = bb.fetch2.Fetch(src_uri, d)
diff --git a/meta-oe/classes/image_types_sparse.bbclass b/meta-oe/classes/image_types_sparse.bbclass
index 69e24cbb79..d6ea68968e 100644
--- a/meta-oe/classes/image_types_sparse.bbclass
+++ b/meta-oe/classes/image_types_sparse.bbclass
@@ -8,9 +8,10 @@ inherit image_types
SPARSE_BLOCK_SIZE ??= "4096"
CONVERSIONTYPES += "sparse"
-CONVERSION_CMD:sparse() {
- INPUT="${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
- truncate --no-create --size=%${SPARSE_BLOCK_SIZE} "$INPUT"
- img2simg -s "$INPUT" "$INPUT.sparse" ${SPARSE_BLOCK_SIZE}
-}
+
+CONVERSION_CMD:sparse = " \
+ truncate --no-create --size=%${SPARSE_BLOCK_SIZE} "${IMAGE_NAME}.${type}"; \
+ img2simg -s "${IMAGE_NAME}.${type}" "${IMAGE_NAME}.${type}.sparse" ${SPARSE_BLOCK_SIZE}; \
+ "
+
CONVERSION_DEPENDS_sparse = "android-tools-native"
diff --git a/meta-oe/classes/signing.bbclass b/meta-oe/classes/signing.bbclass
new file mode 100644
index 0000000000..f52d861b76
--- /dev/null
+++ b/meta-oe/classes/signing.bbclass
@@ -0,0 +1,316 @@
+#
+# Copyright Jan Luebbe <jlu@pengutronix.de>
+#
+# SPDX-License-Identifier: MIT
+#
+
+# This class provides a common workflow to use asymmetric (i.e. RSA) keys to
+# sign artifacts. Usually, the keys are either stored as simple files in the
+# file system or on an HSM (Hardware Security Module). While files are easy to
+# use, it's hard to verify that no copies of the private key have been made
+# and only authorized persons are able to use the key. Use of an HSM addresses
+# these risks by only allowing use of the key via an API (often PKCS #11). The
+# standard way of referring to a specific key in an HSM are PKCS #11 URIs (RFC
+# 7512).
+#
+# Many software projects support signing using PKCS #11 keys, but configuring
+# this is very project specific. Furthermore, as physical HSMs are not very
+# widespread, testing code signing in CI is not simple. To solve this at the
+# build system level, this class takes the approach of always using PKCS #11 at
+# the recipe level. For cases where the keys are available as files (i.e. test
+# keys in CI), they are imported into SoftHSM (a HSM emulation library).
+#
+# Recipes access the available keys via a specific role. So, depending on
+# whether we're building during development or for release, a given role can
+# refer to different keys.
+# Each key recipe PROVIDES a virtual package corresponding to the role, allowing
+# the user to select one of multiple keys for a role when needed.
+#
+# For use with a real HSM, a PKCS #11 URI can be set (i.e. in local.conf) to
+# override the SoftHSM key with the real one:
+#
+# SIGNING_PKCS11_URI[fit] = "pkcs11:serial=DENK0200554;object=ptx-dev-rauc&pin-value=123456"
+# SIGNING_PKCS11_MODULE[fit] = "/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so"
+#
+# Examples for defining roles and importing keys:
+#
+# meta-code-signing/recipes-security/signing-keys/dummy-rsa-key-native.bb
+# meta-code-signing-demo/recipes-security/ptx-dev-keys/ptx-dev-keys-native_git.bb
+#
+# Examples for using keys for signing:
+#
+# meta-code-signing-demo/recipes-security/fit-image/linux-fit-image.bb
+# meta-code-signing-demo/recipes-core/bundles/update-bundle.bb
+#
+# Examples for using keys for authentication:
+#
+# meta-code-signing-demo/recipes-security/fit-image/barebox_%.bbappend
+# meta-code-signing-demo/recipes-core/rauc/rauc_%.bbappend
+#
+# Examples for using keys for both signing and authentication:
+#
+# meta-code-signing-demo/recipes-kernel/linux/linux-yocto_6.1.bbappend
+
+SIGNING_PKCS11_URI ?= ""
+SIGNING_PKCS11_MODULE ?= ""
+
+DEPENDS += "softhsm-native libp11-native opensc-native openssl-native"
+
+def signing_class_prepare(d):
+ import os.path
+
+ def export(role, k, v):
+ k = k % (role, )
+ d.setVar(k, v)
+ d.setVarFlag(k, "export", "1")
+
+ roles = set()
+ roles |= (d.getVarFlags("SIGNING_PKCS11_URI") or {}).keys()
+ roles |= (d.getVarFlags("SIGNING_PKCS11_MODULE") or {}).keys()
+ for role in roles:
+ if not set(role).issubset("abcdefghijklmnopqrstuvwxyz0123456789_"):
+ bb.fatal("key role name '%s' must consist of only [a-z0-9_]" % (role,))
+
+ pkcs11_uri = d.getVarFlag("SIGNING_PKCS11_URI", role) or d.getVar("SIGNING_PKCS11_URI")
+ if not pkcs11_uri.startswith("pkcs11:"):
+ bb.fatal("URI for key role '%s' must start with 'pkcs11:'" % (role,))
+
+ pkcs11_module = d.getVarFlag("SIGNING_PKCS11_MODULE", role) or d.getVar("SIGNING_PKCS11_MODULE")
+ if not os.path.isfile(pkcs11_module):
+ bb.fatal("module path for key role '%s' must be an existing file" % (role,))
+
+ if pkcs11_uri and not pkcs11_module:
+ bb.warn("SIGNING_PKCS11_URI[%s] is set without SIGNING_PKCS11_MODULE[%s]" % (role, role))
+ if pkcs11_module and not pkcs11_uri:
+ bb.warn("SIGNING_PKCS11_MODULE[%s] is set without SIGNING_PKCS11_URI[%s]" % (role, role))
+
+ export(role, "SIGNING_PKCS11_URI_%s_", pkcs11_uri)
+ export(role, "SIGNING_PKCS11_MODULE_%s_", pkcs11_module)
+
+signing_pkcs11_tool() {
+ pkcs11-tool --module "${STAGING_LIBDIR_NATIVE}/softhsm/libsofthsm2.so" --login --pin 1111 $*
+}
+
+signing_import_prepare() {
+ export _SIGNING_ENV_FILE_="${B}/meta-signing.env"
+ rm -f "$_SIGNING_ENV_FILE_"
+
+ export SOFTHSM2_CONF="${B}/softhsm2.conf"
+ export SOFTHSM2_DIR="${B}/softhsm2.tokens"
+ export SOFTHSM2_MOD="${STAGING_LIBDIR_NATIVE}/softhsm/libsofthsm2.so"
+
+ echo "directories.tokendir = $SOFTHSM2_DIR" > "$SOFTHSM2_CONF"
+ echo "objectstore.backend = db" >> "$SOFTHSM2_CONF"
+ rm -rf "$SOFTHSM2_DIR"
+ mkdir -p "$SOFTHSM2_DIR"
+
+ softhsm2-util --module $SOFTHSM2_MOD --init-token --free --label ${PN} --pin 1111 --so-pin 222222
+}
+
+signing_import_define_role() {
+ local role="${1}"
+ case "${1}" in
+ (*[!a-z0-9_]*) false;;
+ (*) true;;
+ esac || bbfatal "invalid role name '${1}', must consist of [a-z0-9_]"
+
+ echo "_SIGNING_PKCS11_URI_${role}_=\"pkcs11:token=${PN};object=$role;pin-value=1111\"" >> $_SIGNING_ENV_FILE_
+ echo "_SIGNING_PKCS11_MODULE_${role}_=\"softhsm\"" >> $_SIGNING_ENV_FILE_
+}
+
+# signing_import_cert_from_der <role> <der>
+#
+# Import a certificate from DER file to a role. To be used
+# with SoftHSM.
+signing_import_cert_from_der() {
+ local role="${1}"
+ local der="${2}"
+
+ signing_pkcs11_tool --type cert --write-object "${der}" --label "${role}"
+}
+
+# signing_import_cert_from_pem <role> <pem>
+#
+# Import a certificate from PEM file to a role. To be used
+# with SoftHSM.
+signing_import_cert_from_pem() {
+ local role="${1}"
+ local pem="${2}"
+
+ openssl x509 \
+ -in "${pem}" -inform pem -outform der |
+ signing_pkcs11_tool --type cert --write-object /proc/self/fd/0 --label "${role}"
+}
+
+# signing_import_pubkey_from_der <role> <der>
+#
+# Import a public key from DER file to a role. To be used with SoftHSM.
+signing_import_pubkey_from_der() {
+ local role="${1}"
+ local der="${2}"
+
+ signing_pkcs11_tool --type pubkey --write-object "${der}" --label "${role}"
+}
+
+# signing_import_pubkey_from_pem <role> <pem>
+#
+# Import a public key from PEM file to a role. To be used with SoftHSM.
+signing_import_pubkey_from_pem() {
+ local openssl_keyopt
+ local role="${1}"
+ local pem="${2}"
+
+ if [ -n "${IMPORT_PASS_FILE}" ]; then
+ openssl pkey \
+ -passin "file:${IMPORT_PASS_FILE}" \
+ -in "${pem}" -inform pem -pubout -outform der
+ else
+ openssl pkey \
+ -in "${pem}" -inform pem -pubout -outform der
+ fi |
+ signing_pkcs11_tool --type pubkey --write-object /proc/self/fd/0 --label "${role}"
+}
+
+# signing_import_privkey_from_der <role> <der>
+#
+# Import a private key from DER file to a role. To be used with SoftHSM.
+signing_import_privkey_from_der() {
+ local role="${1}"
+ local der="${2}"
+ signing_pkcs11_tool --type privkey --write-object "${der}" --label "${role}"
+}
+
+# signing_import_privkey_from_pem <role> <pem>
+#
+# Import a private key from PEM file to a role. To be used with SoftHSM.
+signing_import_privkey_from_pem() {
+ local openssl_keyopt
+ local role="${1}"
+ local pem="${2}"
+
+ if [ -n "${IMPORT_PASS_FILE}" ]; then
+ openssl pkey \
+ -passin "file:${IMPORT_PASS_FILE}" \
+ -in "${pem}" -inform pem -outform der
+ else
+ openssl pkey \
+ -in "${pem}" -inform pem -outform der
+ fi |
+ signing_pkcs11_tool --type privkey --write-object /proc/self/fd/0 --label "${role}"
+}
+
+# signing_import_key_from_pem <role> <pem>
+#
+# Import a private and public key from PEM file to a role. To be used
+# with SoftHSM.
+signing_import_key_from_pem() {
+ local role="${1}"
+ local pem="${2}"
+
+ signing_import_pubkey_from_pem "${role}" "${pem}"
+ signing_import_privkey_from_pem "${role}" "${pem}"
+}
+
+signing_import_finish() {
+ echo "loaded objects:"
+ signing_pkcs11_tool --list-objects
+}
+
+signing_import_install() {
+ install -d ${D}${localstatedir}/lib/softhsm/tokens/${PN}
+ install -m 600 -t ${D}${localstatedir}/lib/softhsm/tokens/${PN} ${B}/softhsm2.tokens/*/*
+ install -d ${D}${localstatedir}/lib/meta-signing.env.d
+ install -m 644 "${B}/meta-signing.env" ${D}${localstatedir}/lib/meta-signing.env.d/${PN}
+}
+
+signing_prepare() {
+ export OPENSSL_MODULES="${STAGING_LIBDIR_NATIVE}/ossl-modules"
+ export OPENSSL_ENGINES="${STAGING_LIBDIR_NATIVE}/engines-3"
+ export OPENSSL_CONF="${STAGING_LIBDIR_NATIVE}/ssl-3/openssl.cnf"
+ export SSL_CERT_DIR="${STAGING_LIBDIR_NATIVE}/ssl-3/certs"
+ export SSL_CERT_FILE="${STAGING_LIBDIR_NATIVE}/ssl-3/cert.pem"
+
+ if [ -f ${OPENSSL_CONF} ]; then
+ echo "Using '${OPENSSL_CONF}' for OpenSSL configuration"
+ else
+ echo "Missing 'openssl.cnf' at '${STAGING_ETCDIR_NATIVE}/ssl'"
+ return 1
+ fi
+ if [ -d ${OPENSSL_MODULES} ]; then
+ echo "Using '${OPENSSL_MODULES}' for OpenSSL run-time modules"
+ else
+ echo "Missing OpenSSL module directory at '${OPENSSL_MODULES}'"
+ return 1
+ fi
+ if [ -d ${OPENSSL_ENGINES} ]; then
+ echo "Using '${OPENSSL_ENGINES}' for OpenSSL run-time PKCS#11 modules"
+ else
+ echo "Missing OpenSSL PKCS11 engine directory at '${OPENSSL_ENGINES}'"
+ return 1
+ fi
+
+ export SOFTHSM2_CONF="${WORKDIR}/softhsm2.conf"
+ export SOFTHSM2_DIR="${STAGING_DIR_NATIVE}/var/lib/softhsm/tokens"
+
+ echo "directories.tokendir = $SOFTHSM2_DIR" > "$SOFTHSM2_CONF"
+ echo "objectstore.backend = db" >> "$SOFTHSM2_CONF"
+
+ for env in $(ls "${STAGING_DIR_NATIVE}/var/lib/meta-signing.env.d"); do
+ . "${STAGING_DIR_NATIVE}/var/lib/meta-signing.env.d/$env"
+ done
+}
+# make sure these functions are exported
+signing_prepare[vardeps] += "signing_get_uri signing_get_module"
+
+signing_use_role() {
+ local role="${1}"
+
+ export PKCS11_MODULE_PATH="$(signing_get_module $role)"
+ export PKCS11_URI="$(signing_get_uri $role)"
+
+ if [ -z "$PKCS11_MODULE_PATH" ]; then
+ echo "No PKCS11_MODULE_PATH found for role '${role}'"
+ exit 1
+ fi
+ if [ -z "$PKCS11_URI" ]; then
+ echo "No PKCS11_URI found for role '${role}'"
+ exit 1
+ fi
+}
+
+signing_get_uri() {
+ local role="${1}"
+
+ # prefer local configuration
+ eval local uri="\$SIGNING_PKCS11_URI_${role}_"
+ if [ -n "$uri" ]; then
+ echo "$uri"
+ return
+ fi
+
+ # fall back to softhsm
+ eval echo "\$_SIGNING_PKCS11_URI_${role}_"
+}
+
+signing_get_module() {
+ local role="${1}"
+
+ # prefer local configuration
+ eval local module="\$SIGNING_PKCS11_MODULE_${role}_"
+ if [ -n "$module" ]; then
+ echo "$module"
+ return
+ fi
+
+ # fall back to softhsm
+ eval local module="\$_SIGNING_PKCS11_MODULE_${role}_"
+ if [ "$module" = "softhsm" ]; then
+ echo "${STAGING_LIBDIR_NATIVE}/softhsm/libsofthsm2.so"
+ else
+ echo "$module"
+ fi
+}
+
+python () {
+ signing_class_prepare(d)
+}
diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
new file mode 100644
index 0000000000..a29408a822
--- /dev/null
+++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -0,0 +1,72 @@
+#
+# Lists of the ptest in meta-oe, sorted into two sets by the time they take
+# Please keep these sorted in alphabetical order
+#
+# A first pass at getting all meta-oe recipes which inherit ptest
+# meta_oe_ptest_recipes=$(bitbake-layers show-recipes --recipes-only --layer meta-oe --inherits ptest --bare | tr '\n' ' ' | pcregrep -o1 '^NOTE:.+===(.+)$')
+#
+# ptests which take less than ~30s each
+PTESTS_FAST_META_OE = "\
+ cmocka \
+ cunit \
+ duktape \
+ function2 \
+ fwupd \
+ gcab \
+ jemalloc \
+ jq \
+ leveldb \
+ libcereal \
+ libee \
+ libgpiod \
+ libio-pty-perl \
+ libmanette \
+ librelp \
+ libssh \
+ libtinyxml2 \
+ libxml++-5.0 \
+ libyang \
+ lmdb \
+ microsoft-gsl \
+ minicoredumper \
+ neon \
+ nlohmann-json \
+ nodejs \
+ onig \
+ oprofile \
+ protobuf \
+ pv \
+ sdbus-c++ \
+ uthash \
+ xmlsec1 \
+ zeromq \
+ cjson \
+"
+PTESTS_FAST_META_OE:append:x86 = " mcelog"
+PTESTS_FAST_META_OE:append:x86-64 = " mcelog"
+
+PTESTS_FAST_META_OE:remove:libc-musl = "minicoredumper"
+PTESTS_FAST_META_OE:remove:riscv64 = "nodejs oprofile"
+PTESTS_FAST_META_OE:remove:riscv32 = "nodejs oprofile"
+
+PTESTS_SLOW_META_OE = "\
+ c-ares \
+ fftw \
+ libusb-compat \
+ rsyslog \
+ mariadb \
+ poco \
+ re2 \
+"
+PTESTS_SLOW_META_OE:append:x86 = " kernel-selftest"
+PTESTS_SLOW_META_OE:append:x86-64 = " kernel-selftest"
+PTESTS_SLOW_META_OE:remove:libc-musl = "kernel-selftest"
+
+PTESTS_PROBLEMS_META_OE ="\
+ keyutils \
+ libdbi-perl \
+ libjcat \
+ libteam \
+ ostree \
+ psqlodbc \
+"
diff --git a/meta-oe/conf/layer.conf b/meta-oe/conf/layer.conf
index 6a0f05d930..4d9acb8cc8 100644
--- a/meta-oe/conf/layer.conf
+++ b/meta-oe/conf/layer.conf
@@ -34,6 +34,8 @@ BBFILES_DYNAMIC += " \
gnome-layer:${LAYERDIR}/dynamic-layers/gnome-layer/recipes-*/*/*.bbappend \
perl-layer:${LAYERDIR}/dynamic-layers/perl-layer/recipes-*/*/*.bb \
perl-layer:${LAYERDIR}/dynamic-layers/perl-layer/recipes-*/*/*.bbappend \
+ selinux:${LAYERDIR}/dynamic-layers/selinux/recipes-*/*/*.bb \
+ selinux:${LAYERDIR}/dynamic-layers/selinux/recipes-*/*/*.bbappend \
"
# This should only be incremented on significant changes that will
@@ -42,14 +44,18 @@ LAYERVERSION_openembedded-layer = "1"
LAYERDEPENDS_openembedded-layer = "core"
-LAYERSERIES_COMPAT_openembedded-layer = "kirkstone langdale"
+LAYERSERIES_COMPAT_openembedded-layer = "scarthgap"
LICENSE_PATH += "${LAYERDIR}/licenses"
PREFERRED_RPROVIDER_libdevmapper = "lvm2"
+PREFERRED_RPROVIDER_libdevmapper-native = "lvm2-native"
+PREFERRED_RPROVIDER_nativesdk-libdevmapper = "nativesdk-lvm2"
PREFERRED_PROVIDER_android-tools-conf ?= "android-tools-conf"
# Configures whether coreutils or uutils-coreutils is used.
PREFERRED_PROVIDER_coreutils = "coreutils"
+PREFERRED_PROVIDER_virtual/opencl-icd ?= "opencl-icd-loader"
+PREFERRED_RPROVIDER_virtual-opencl-icd ?= "opencl-icd-loader"
SIGGEN_EXCLUDERECIPES_ABISAFE += " \
fbset-modes \
@@ -81,6 +87,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
ttf-dejavu->fontconfig \
ttf-droid->fontconfig \
ttf-gentium->fontconfig \
+ ttf-google-fira->fontconfig \
ttf-hunkyfonts->fontconfig \
ttf-inconsolata->fontconfig \
ttf-ipa->fontconfig \
@@ -107,4 +114,4 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
DEFAULT_TEST_SUITES:pn-meta-oe-ptest-image = " ${PTESTTESTSUITE}"
-NON_MULTILIB_RECIPES:append = " crash"
+NON_MULTILIB_RECIPES:append = " crash pahole libbpf"
diff --git a/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/7_6.diff b/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/7_6.diff
index 8ab5386dc1..cdb29f24dc 100644
--- a/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/7_6.diff
+++ b/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/7_6.diff
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
=== modified file 'openbox-xdgmenu.c'
--- openbox-xdgmenu.c 2011-09-03 20:13:39 +0000
+++ openbox-xdgmenu.c 2013-12-28 17:41:04 +0000
diff --git a/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/fix-menu-generation.patch b/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/fix-menu-generation.patch
index 03b357263f..3def090eb1 100644
--- a/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/fix-menu-generation.patch
+++ b/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/fix-menu-generation.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: openbox-xdgmenu-0.3/openbox-xdgmenu.c
===================================================================
--- openbox-xdgmenu-0.3.orig/openbox-xdgmenu.c
diff --git a/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/port-gnome-menus3.patch b/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/port-gnome-menus3.patch
index 3fcc319164..6d123482e8 100644
--- a/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/port-gnome-menus3.patch
+++ b/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/port-gnome-menus3.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: openbox-xdgmenu-0.3/openbox-xdgmenu.c
===================================================================
--- openbox-xdgmenu-0.3.orig/openbox-xdgmenu.c
diff --git a/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb b/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb
index 90d6880905..ac197a631e 100644
--- a/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb
+++ b/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb
@@ -1,5 +1,4 @@
SUMMARY = "Openbox configuration tool"
-AUTHOR = "Siegfried Gevatter"
HOMEPAGE = "https://launchpad.net/openbox-xdgmenu/"
SECTION = "x11/wm"
LICENSE = "GPL-3.0-or-later"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem/0001-include-missing-cstdint.patch b/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem/0001-include-missing-cstdint.patch
new file mode 100644
index 0000000000..0560daa4c2
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem/0001-include-missing-cstdint.patch
@@ -0,0 +1,32 @@
+From 84e884f99e581515b49d8973538bb17e1e6c0dc0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 26 Jan 2023 20:45:57 -0800
+Subject: [PATCH] include missing <cstdint>
+
+gcc 13 moved some includes around and as a result <cstdint> is no
+longer transitively included [1]. Explicitly include it for
+uint{32,64}_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Upstream-Status: Submitted [https://github.com/tomba/rwmem/pull/7]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ librwmem/helpers.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/librwmem/helpers.h b/librwmem/helpers.h
+index a0a738b..8d02c9c 100644
+--- a/librwmem/helpers.h
++++ b/librwmem/helpers.h
+@@ -1,6 +1,7 @@
+ #pragma once
+
+ #include <cerrno>
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ #include <string.h>
+--
+2.39.1
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb b/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb
index 7bca24cc0a..90c9a7147c 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb
+++ b/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb
@@ -11,25 +11,25 @@ In i2c mode rwmem accesses an i2c peripheral by sending i2c messages to it."
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS += "python3 python3-pybind11"
+DEPENDS += "fmt libinih"
-PV .= "+git${SRCPV}"
+PV .= "+git"
-SRCREV_rwmem = "3ec3e421211b58e766651c2e3a3a21acf14a1906"
-SRCREV_inih = "4b10c654051a86556dfdb634c891b6c3224c4109"
+SRCREV = "8416326777b2aada0706539b8f9f6acefa476b16"
-SRCREV_FORMAT = "rwmem_inih"
-
-SRC_URI = " \
- git://github.com/tomba/rwmem.git;protocol=https;name=rwmem;branch=master \
- git://github.com/benhoyt/inih.git;protocol=https;name=inih;nobranch=1;destsuffix=git/ext/inih \
-"
+SRC_URI = "git://github.com/tomba/rwmem.git;protocol=https;name=rwmem;branch=master \
+ file://0001-include-missing-cstdint.patch"
S = "${WORKDIR}/git"
-inherit cmake pkgconfig
+inherit meson pkgconfig python3native
+
+PACKAGECONFIG ?= "python static"
+PACKAGECONFIG[python] = "-Dpyrwmem=enabled,-Dpyrwmem=disabled,cmake-native python3 python3-pybind11"
+PACKAGECONFIG[static] = "-Dstatic-libc=true,-Dstatic-libc=false,"
-do_install() {
- install -D -m 0755 ${B}/bin/rwmem ${D}${bindir}/rwmem
- install -D -m 0644 ${B}/lib/librwmem.a ${D}${libdir}/librwmem.a
+do_install:append() {
+ install -D -m 0644 ${B}/librwmem/librwmem.a ${D}${libdir}/librwmem.a
}
+
+FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/pyrwmem"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
index 0e38f7d8ec..d4c8a3d7fc 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
@@ -10,6 +10,8 @@ input.h [1]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
plugins/devinput.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Makefile.am-do-not-clobber-PYTHONPATH-from-build-env.patch b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Makefile.am-do-not-clobber-PYTHONPATH-from-build-env.patch
new file mode 100644
index 0000000000..11f6485b27
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Makefile.am-do-not-clobber-PYTHONPATH-from-build-env.patch
@@ -0,0 +1,57 @@
+From 5e3b74927b4fef03d91518d235e9e3ba8cd7ab2e Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 9 Nov 2022 20:49:41 +0100
+Subject: [PATCH] Makefile.am: do not clobber PYTHONPATH from build environment
+
+This environment variable has special significance for python,
+and so lirc's variable has to be named something else.
+
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+Upstream-Status: Pending
+
+ Makefile.am | 2 +-
+ pylint.mak | 2 +-
+ tools/Makefile.am | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 6718af1..fae423e 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -128,7 +128,7 @@ endif
+
+ pylint: .phony
+ $(MAKE) -C tools pylint
+- -PYTHONPATH=$(PYTHONPATH) $(PYLINT) --rcfile=pylint.conf \
++ -PYTHONPATH=$(LIRCPYTHONPATH) $(PYLINT) --rcfile=pylint.conf \
+ --msg-template='$(pylint_template)' $(py_PYTHON)
+
+ pep8: $(py_PYTHON)
+diff --git a/pylint.mak b/pylint.mak
+index bf427ab..2692951 100644
+--- a/pylint.mak
++++ b/pylint.mak
+@@ -1,5 +1,5 @@
+ PYTHONPATH1 = $(abs_top_srcdir)/python-pkg/lirc:
+ PYTHONPATH2 = $(abs_top_srcdir)/python-pkg/lirc/lib/.libs
+-PYTHONPATH = $(PYTHONPATH1):$(PYTHONPATH2)
++LIRCPYTHONPATH = $(PYTHONPATH1):$(PYTHONPATH2)
+ PYLINT = python3-pylint
+ pylint_template = {path}:{line}: [{msg_id}({symbol}), {obj}] {msg}
+diff --git a/tools/Makefile.am b/tools/Makefile.am
+index 85d1fd0..96b17f8 100644
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -142,7 +142,7 @@ force-pylint: .phony
+
+ pylint: .pylint-stamp
+ .pylint-stamp: $(py_sources)
+- -PYTHONPATH=$(PYTHONPATH) $(PYLINT) --rcfile=../pylint.conf \
++ -PYTHONPATH=$(LIRCPYTHONPATH) $(PYLINT) --rcfile=../pylint.conf \
+ --msg-template='$(pylint_template)' $? && touch $@
+
+ .phony:
+--
+2.30.2
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Unbolt-ubuntu-hack.patch b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Unbolt-ubuntu-hack.patch
new file mode 100644
index 0000000000..73bacc9139
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Unbolt-ubuntu-hack.patch
@@ -0,0 +1,26 @@
+From ca126a2832aaff0deef3ba7eaf411dd0dc43b068 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 16 Mar 2023 11:31:14 -0700
+Subject: [PATCH] Unbolt ubuntu hack
+
+This bites during cross compiling where the target is different than
+build host and build host might be ubuntu but that does not matter in
+cross compilation case. This fails builds when usrmerge feature is used
+
+Upstream-Status: Inappropriate [ Cross-compile specific ]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -429,7 +429,7 @@ AC_CHECK_LIB([udev], [udev_device_new_fr
+ ])
+
+ dnl Ubuntu's systemd pkg-config seems broken beyond repair. So:
+-kernelversion=`cat /proc/version || echo "non-linux"`
++kernelversion="cross-compiled"
+ AS_CASE([$kernelversion],
+ [*Ubuntu*],[
+ AC_MSG_NOTICE([Hardwiring Ubuntu systemd setup])
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/fix_build_errors.patch b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/fix_build_errors.patch
index 41353dbbdc..ed840cd098 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/fix_build_errors.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/fix_build_errors.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff --git a/configure.ac b/configure.ac
index 58347d8..8c7fca2 100644
--- a/configure.ac
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.1.bb b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.1.bb
deleted file mode 100644
index 467e10b658..0000000000
--- a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.1.bb
+++ /dev/null
@@ -1,114 +0,0 @@
-DESCRIPTION = "LIRC is a package that allows you to decode and send infra-red signals of many commonly used remote controls."
-DESCRIPTION:append:lirc = " This package contains the lirc daemon, libraries and tools."
-DESCRIPTION:append:lirc-exec = " This package contains a daemon that runs programs on IR signals."
-DESCRIPTION:append:lirc-remotes = " This package contains some config files for remotes."
-DESCRIPTION:append:lirc-nslu2example = " This package contains a working config for RC5 remotes and a modified NSLU2."
-HOMEPAGE = "http://www.lirc.org"
-SECTION = "console/network"
-LICENSE = "GPL-2.0-only"
-DEPENDS = "libxslt-native alsa-lib libftdi libusb1 libusb-compat jack portaudio-v19 python3-pyyaml python3-setuptools-native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://prdownloads.sourceforge.net/lirc/lirc-${PV}.tar.bz2 \
- file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
- file://fix_build_errors.patch \
- file://0001-mplay-Fix-build-with-musl.patch \
- file://lircd.service \
- file://lircd.init \
- file://lircexec.init \
- file://lircd.conf \
- file://lirc_options.conf \
- file://lirc.tmpfiles \
-"
-SRC_URI[md5sum] = "86c3f8e4efaba10571addb8313d1e040"
-SRC_URI[sha256sum] = "8b753c60df2a7f5dcda2db72c38e448ca300c3b4f6000c1501fcb0bd5df414f2"
-
-SYSTEMD_PACKAGES = "lirc lirc-exec"
-SYSTEMD_SERVICE:${PN} = "lircd.service lircmd.service lircd-setup.service lircd-uinput.service"
-SYSTEMD_SERVICE:${PN}-exec = "irexec.service"
-SYSTEMD_AUTO_ENABLE:lirc = "enable"
-SYSTEMD_AUTO_ENABLE:lirc-exec = "enable"
-
-inherit autotools pkgconfig systemd python3native setuptools3-base
-
-PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd"
-PACKAGECONFIG[x11] = "--with-x,--with-x=no,libx11,"
-
-PACKAGECONFIG ?= " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' x11', '', d)} \
-"
-CACHED_CONFIGUREVARS = "HAVE_WORKING_POLL=yes"
-
-#EXTRA_OEMAKE = 'SUBDIRS="lib daemons tools"'
-
-# Ensure python-pkg/VERSION exists
-do_configure:append() {
- cp ${S}/VERSION ${S}/python-pkg/
-}
-
-# Create PYTHON_TARBALL which LIRC needs for install-nodist_pkgdataDATA
-do_install:prepend() {
- rm -rf ${WORKDIR}/${PN}-${PV}/python-pkg/dist/
- mkdir ${WORKDIR}/${PN}-${PV}/python-pkg/dist/
- tar --exclude='${WORKDIR}/${PN}-${PV}/python-pkg/*' -czf ${WORKDIR}/${PN}-${PV}/python-pkg/dist/${PN}-${PV}.tar.gz ${S}
-}
-
-# In code, path to python is a variable that is replaced with path to native version of it
-# during the configure stage, e.g ../recipe-sysroot-native/usr/bin/python3-native/python3.
-# Replace it with #!/usr/bin/env python3
-do_install:append() {
- sed -i '1c#!/usr/bin/env python3' ${D}${bindir}/lirc-setup \
- ${D}${PYTHON_SITEPACKAGES_DIR}/lirc-setup/lirc-setup \
- ${D}${bindir}/irtext2udp \
- ${D}${bindir}/lirc-init-db \
- ${D}${bindir}/irdb-get \
- ${D}${bindir}/pronto2lirc \
- ${D}${sbindir}/lircd-setup
-
- install -m 0755 -d ${D}${sysconfdir}
- install -m 0755 -d ${D}${sysconfdir}/lirc
- install -m 0644 ${WORKDIR}/lircd.conf ${D}${sysconfdir}/lirc/
- install -m 0644 ${WORKDIR}/lirc_options.conf ${D}${sysconfdir}/lirc/
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -m 0755 -d ${D}${systemd_unitdir}/system ${D}${libdir}/tmpfiles.d
- install -m 0644 ${WORKDIR}/lircd.service ${D}${systemd_unitdir}/system/
- install -m 0755 ${WORKDIR}/lircexec.init ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/lirc.tmpfiles ${D}${libdir}/tmpfiles.d/lirc.conf
- else
- rm -rf ${D}/lib
- fi
- rm -rf ${D}${libdir}/lirc/plugins/*.la
- rmdir ${D}/var/run/lirc ${D}/var/run
- chown -R root:root ${D}${datadir}/lirc/contrib
-}
-
-PACKAGES =+ "${PN}-contrib ${PN}-exec ${PN}-plugins ${PN}-python"
-
-RDEPENDS:${PN} = "bash python3"
-RDEPENDS:${PN}-exec = "${PN}"
-RDEPENDS:${PN}-python = "python3-shell python3-pyyaml python3-datetime python3-netclient python3-stringold"
-
-RRECOMMENDS:${PN} = "${PN}-exec ${PN}-plugins"
-
-FILES:${PN}-plugins = "${libdir}/lirc/plugins/*.so ${datadir}/lirc/configs"
-FILES:${PN}-contrib = "${datadir}/lirc/contrib"
-FILES:${PN}-exec = "${bindir}/irexec ${sysconfdir}/lircexec ${systemd_unitdir}/system/irexec.service"
-FILES:${PN} += "${systemd_unitdir}/system/lircexec.init"
-FILES:${PN} += "${systemd_unitdir}/system/lircd.service"
-FILES:${PN} += "${systemd_unitdir}/system/lircd.socket"
-FILES:${PN} += "${libdir}/tmpfiles.d/lirc.conf"
-FILES:${PN}-dbg += "${libdir}/lirc/plugins/.debug"
-FILES:${PN}-python += "${bindir}/irdb-get ${bindir}/irtext2udp ${bindir}/lircd-setup ${bindir}/pronto2lirc ${libdir}/python*/site-packages"
-
-INITSCRIPT_PACKAGES = "lirc lirc-exec"
-INITSCRIPT_NAME:lirc-exec = "lircexec"
-INITSCRIPT_PARAMS:lirc-exec = "defaults 21"
-
-# this is for distributions that don't use udev
-pkg_postinst:${PN}:append() {
- if [ ! -c $D/dev/lirc -a ! -f /sbin/udevd ]; then mknod $D/dev/lirc c 61 0; fi
-}
-
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.2.bb b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.2.bb
new file mode 100644
index 0000000000..d348ef8be9
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc_0.10.2.bb
@@ -0,0 +1,115 @@
+DESCRIPTION = "LIRC is a package that allows you to decode and send infra-red signals of many commonly used remote controls."
+DESCRIPTION:append:lirc = " This package contains the lirc daemon, libraries and tools."
+DESCRIPTION:append:lirc-exec = " This package contains a daemon that runs programs on IR signals."
+DESCRIPTION:append:lirc-remotes = " This package contains some config files for remotes."
+DESCRIPTION:append:lirc-nslu2example = " This package contains a working config for RC5 remotes and a modified NSLU2."
+HOMEPAGE = "http://www.lirc.org"
+SECTION = "console/network"
+LICENSE = "GPL-2.0-only"
+DEPENDS = "libxslt-native alsa-lib libftdi libusb1 libusb-compat jack portaudio-v19 python3-pyyaml python3-setuptools-native"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "http://prdownloads.sourceforge.net/lirc/lirc-${PV}.tar.bz2 \
+ file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
+ file://fix_build_errors.patch \
+ file://0001-mplay-Fix-build-with-musl.patch \
+ file://lircd.service \
+ file://lircd.init \
+ file://lircexec.init \
+ file://lircd.conf \
+ file://lirc_options.conf \
+ file://lirc.tmpfiles \
+ file://0001-Makefile.am-do-not-clobber-PYTHONPATH-from-build-env.patch \
+ file://0001-Unbolt-ubuntu-hack.patch \
+ "
+SRC_URI[sha256sum] = "3d44ec8274881cf262f160805641f0827ffcc20ade0d85e7e6f3b90e0d3d222a"
+
+SYSTEMD_PACKAGES = "lirc lirc-exec"
+SYSTEMD_SERVICE:${PN} = "lircd.service lircmd.service lircd-setup.service lircd-uinput.service"
+SYSTEMD_SERVICE:${PN}-exec = "irexec.service"
+SYSTEMD_AUTO_ENABLE:lirc = "enable"
+SYSTEMD_AUTO_ENABLE:lirc-exec = "enable"
+
+inherit autotools pkgconfig systemd python3native setuptools3-base
+
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd"
+PACKAGECONFIG[x11] = "--with-x,--with-x=no,libx11,"
+
+PACKAGECONFIG ?= " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' x11', '', d)} \
+"
+CACHED_CONFIGUREVARS = "HAVE_WORKING_POLL=yes SH_PATH=/bin/sh"
+
+#EXTRA_OEMAKE = 'SUBDIRS="lib daemons tools"'
+
+# Ensure python-pkg/VERSION exists
+do_configure:append() {
+ cp ${S}/VERSION ${S}/python-pkg/
+}
+
+# Create PYTHON_TARBALL which LIRC needs for install-nodist_pkgdataDATA
+do_install:prepend() {
+ rm -rf ${S}/python-pkg/dist/
+ mkdir ${S}/python-pkg/dist/
+ tar --exclude='${S}/python-pkg/*' -czf ${S}/python-pkg/dist/${BP}.tar.gz ${S}
+}
+
+# In code, path to python is a variable that is replaced with path to native version of it
+# during the configure stage, e.g ../recipe-sysroot-native/usr/bin/python3-native/python3.
+# Replace it with #!/usr/bin/env python3
+do_install:append() {
+ sed -i '1c#!/usr/bin/env python3' ${D}${bindir}/lirc-setup \
+ ${D}${PYTHON_SITEPACKAGES_DIR}/lirc-setup/lirc-setup \
+ ${D}${bindir}/irtext2udp \
+ ${D}${bindir}/lirc-init-db \
+ ${D}${bindir}/irdb-get \
+ ${D}${bindir}/pronto2lirc \
+ ${D}${sbindir}/lircd-setup
+
+ install -m 0755 -d ${D}${sysconfdir}
+ install -m 0755 -d ${D}${sysconfdir}/lirc
+ install -m 0644 ${WORKDIR}/lircd.conf ${D}${sysconfdir}/lirc/
+ install -m 0644 ${WORKDIR}/lirc_options.conf ${D}${sysconfdir}/lirc/
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -m 0755 -d ${D}${systemd_unitdir}/system ${D}${libdir}/tmpfiles.d
+ install -m 0644 ${WORKDIR}/lircd.service ${D}${systemd_unitdir}/system/
+ install -m 0755 ${WORKDIR}/lircexec.init ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/lirc.tmpfiles ${D}${libdir}/tmpfiles.d/lirc.conf
+ else
+ rm -rf ${D}/lib
+ fi
+ rm -rf ${D}${libdir}/lirc/plugins/*.la
+ rmdir ${D}/var/run/lirc ${D}/var/run
+ chown -R root:root ${D}${datadir}/lirc/contrib
+}
+
+PACKAGES =+ "${PN}-contrib ${PN}-exec ${PN}-plugins ${PN}-python"
+
+RDEPENDS:${PN} = "bash python3"
+RDEPENDS:${PN}-exec = "${PN}"
+RDEPENDS:${PN}-python = "python3-shell python3-pyyaml python3-datetime python3-netclient python3-stringold"
+
+RRECOMMENDS:${PN} = "${PN}-exec ${PN}-plugins"
+
+FILES:${PN}-plugins = "${libdir}/lirc/plugins/*.so ${datadir}/lirc/configs"
+FILES:${PN}-contrib = "${datadir}/lirc/contrib"
+FILES:${PN}-exec = "${bindir}/irexec ${sysconfdir}/lircexec ${systemd_unitdir}/system/irexec.service"
+FILES:${PN} += "${systemd_unitdir}/system/lircexec.init"
+FILES:${PN} += "${systemd_unitdir}/system/lircd.service"
+FILES:${PN} += "${systemd_unitdir}/system/lircd.socket"
+FILES:${PN} += "${libdir}/tmpfiles.d/lirc.conf"
+FILES:${PN}-dbg += "${libdir}/lirc/plugins/.debug"
+FILES:${PN}-python += "${bindir}/irdb-get ${bindir}/irtext2udp ${bindir}/lircd-setup ${bindir}/pronto2lirc ${PYTHON_SITEPACKAGES_DIR}"
+
+INITSCRIPT_PACKAGES = "lirc lirc-exec"
+INITSCRIPT_NAME:lirc-exec = "lircexec"
+INITSCRIPT_PARAMS:lirc-exec = "defaults 21"
+
+# this is for distributions that don't use udev
+pkg_postinst:${PN}:append() {
+ if [ ! -c $D/dev/lirc -a ! -f /sbin/udevd ]; then mknod $D/dev/lirc c 61 0; fi
+}
+
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-Makefile-do-not-use-Werror.patch b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-Makefile-do-not-use-Werror.patch
deleted file mode 100644
index 613858f6fd..0000000000
--- a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-Makefile-do-not-use-Werror.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a06c77557ed951249d5b344441ad6ec57410e63f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Sun, 3 Oct 2021 21:52:16 +0200
-Subject: [PATCH] Makefile: do not use -Werror
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- Makefile | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 0368e41..53d6a9d 100644
---- a/Makefile
-+++ b/Makefile
-@@ -8,7 +8,6 @@ BUILDFLAGS = \
- -DSBINDIR=\"$(SBINDIR)\" \
- -I${CURDIR}/include \
- -Wall \
-- -Werror \
- $(NULL)
-
- SRCS = \
---
-2.25.1
-
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-Makefile-fix-parallel-build-failure.patch b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-Makefile-fix-parallel-build-failure.patch
deleted file mode 100644
index 2149ee30cd..0000000000
--- a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-Makefile-fix-parallel-build-failure.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 2e84550b47b475d830622f41576992a1d45d6af0 Mon Sep 17 00:00:00 2001
-From: Zhao Yi <38274519+yizhao1@users.noreply.github.com>
-Date: Tue, 15 Mar 2022 19:28:26 +0800
-Subject: [PATCH] Makefile: fix parallel build failure (#267)
-
-* Makefile: fix parallel build failure
-
-Add src/_features.h as dependency for dbus.o to fix the parallel build
-failure:
-src/dbus.c:17:10: fatal error: _features.h: No such file or directory
-
-Upstream-Status: Backport
-[https://github.com/canonical/netplan/commit/2e84550b47b475d830622f41576992a1d45d6af0]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 0368e41..8ac7432 100644
---- a/Makefile
-+++ b/Makefile
-@@ -52,7 +52,7 @@ NOSETESTS3 ?= $(shell command -v nosetests-3 || command -v nosetests3 || echo tr
-
- default: netplan/_features.py generate netplan-dbus dbus/io.netplan.Netplan.service doc/netplan.html doc/netplan.5 doc/netplan-generate.8 doc/netplan-apply.8 doc/netplan-try.8 doc/netplan-dbus.8 doc/netplan-get.8 doc/netplan-set.8
-
--%.o: src/%.c
-+%.o: src/%.c src/_features.h
- $(CC) $(BUILDFLAGS) $(CFLAGS) $(LDFLAGS) -c $^ `pkg-config --cflags --libs glib-2.0 gio-2.0 yaml-0.1 uuid`
-
- libnetplan.so.$(NETPLAN_SOVER): $(SRCS) abicompat.lds
-@@ -62,7 +62,7 @@ libnetplan.so.$(NETPLAN_SOVER): $(SRCS) abicompat.lds
- generate: libnetplan.so.$(NETPLAN_SOVER) generate.o
- $(CC) $(BUILDFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(filter-out $<,$^) -L. -lnetplan `pkg-config --cflags --libs glib-2.0 gio-2.0 yaml-0.1 uuid`
-
--netplan-dbus: libnetplan.so.$(NETPLAN_SOVER) src/_features.h dbus.o
-+netplan-dbus: libnetplan.so.$(NETPLAN_SOVER) dbus.o
- $(CC) $(BUILDFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(filter-out $<,$(patsubst %.h,,$^)) -L. -lnetplan `pkg-config --cflags --libs libsystemd glib-2.0 gio-2.0 yaml-0.1 uuid`
-
- src/_features.h: src/[^_]*.[hc]
---
-2.25.1
-
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch
index 8779c251a5..cabceae84d 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch
@@ -1,18 +1,20 @@
-From e0df1f07d1707d5daf0358cc60b30f06121f7e60 Mon Sep 17 00:00:00 2001
+From 0ea11f520a8b4453e60eaf0679b9feb757024422 Mon Sep 17 00:00:00 2001
From: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Date: Fri, 25 Dec 2020 11:41:43 +0900
Subject: [PATCH] don't fail if GLOB_BRACE is not defined
+Upstream-Status: Pending
+
Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
---
src/util.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/util.c b/src/util.c
-index 841ec12..59595da 100644
+index 36eb896a..ee13ec44 100644
--- a/src/util.c
+++ b/src/util.c
-@@ -32,6 +32,12 @@
+@@ -35,6 +35,12 @@
#include "names.h"
#include "yaml-helpers.h"
@@ -22,7 +24,7 @@ index 841ec12..59595da 100644
+#define GLOB_BRACE 0
+#endif
+
- NETPLAN_ABI GHashTable*
+ GHashTable*
wifi_frequency_24;
--
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-meson.build-drop-unnecessary-build-dependencies.patch b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-meson.build-drop-unnecessary-build-dependencies.patch
new file mode 100644
index 0000000000..4f385e917a
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-meson.build-drop-unnecessary-build-dependencies.patch
@@ -0,0 +1,58 @@
+From d3aa30f5cd7ba375e006a755752acbcfcd619452 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 6 Mar 2024 19:27:15 +0800
+Subject: [PATCH] meson.build: drop unnecessary build dependencies
+
+The pytest and pycoverage are required by meson test but not for
+building. Mark them as 'required: false' to get rid of unnecessary
+build dependencies.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ meson.build | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 9556836a..30f33fe2 100644
+--- a/meson.build
++++ b/meson.build
+@@ -25,8 +25,8 @@ bash_completions_dir = completions.get_variable(pkgconfig: 'completionsdir', def
+ # Order: Fedora/Mageia/openSUSE || Debian/Ubuntu
+ pyflakes = find_program('pyflakes-3', 'pyflakes3', required: false)
+ pycodestyle = find_program('pycodestyle-3', 'pycodestyle', 'pep8', required: false)
+-pytest = find_program('pytest-3', 'pytest3') # also requires the pytest-cov plugin
+-pycoverage = find_program('coverage-3', 'python3-coverage')
++pytest = find_program('pytest-3', 'pytest3', required: false) # also requires the pytest-cov plugin
++pycoverage = find_program('coverage-3', 'python3-coverage', required: false)
+ pandoc = find_program('pandoc', required: false)
+ find = find_program('find')
+
+@@ -75,6 +75,7 @@ if get_option('unit_testing')
+ endif
+
+ #FIXME: exclude doc/env/
++if pyflakes.found() and pycodestyle.found()
+ test('linting',
+ pyflakes,
+ timeout: 100,
+@@ -91,7 +92,9 @@ test('legacy-tests',
+ find_program('tests/cli_legacy.py'),
+ timeout: 600,
+ env: test_env)
++endif
+ #TODO: split out dbus tests into own test() instance, to run in parallel
++if pycoverage.found()
+ test('unit-tests',
+ pycoverage,
+ args: ['run', '-a', '-m', 'pytest', '-s', '-v', '--cov-append', meson.current_source_dir()],
+@@ -143,4 +146,5 @@ if get_option('b_coverage')
+ priority: -99, # run last
+ is_parallel: false)
+ endif
++endif
+
+--
+2.25.1
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-networkd.c-define-scope-specific-to-case-statement.patch b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-networkd.c-define-scope-specific-to-case-statement.patch
new file mode 100644
index 0000000000..9f01108a20
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-networkd.c-define-scope-specific-to-case-statement.patch
@@ -0,0 +1,47 @@
+From 6e3dd61bf90a7ca8c36c5b95943cbff7c1ad3c2d Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 6 Mar 2024 16:12:31 +0800
+Subject: [PATCH] networkd.c: define scope specific to case statement
+
+Per [1], define a scope specific to case statement to fix build with
+clang.
+
+Fixes:
+../git/src/networkd.c:544:13: error: expected expression
+ 544 | gchar* first = g_strcmp0(def->id, def->veth_peer_link->id) < 0 ? def->id : def->veth_peer_link->id;
+ | ^
+../git/src/networkd.c:545:17: error: use of undeclared identifier 'first'
+ 545 | if (first != def->id) {
+ | ^
+
+[1] https://stackoverflow.com/questions/92396/why-cant-variables-be-declared-in-a-switch-statement
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ src/networkd.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/networkd.c b/src/networkd.c
+index 25121c48..5eb9c0fe 100644
+--- a/src/networkd.c
++++ b/src/networkd.c
+@@ -541,12 +541,14 @@ write_netdev_file(const NetplanNetDefinition* def, const char* rootdir, const ch
+ * and, if the selected name is the name of the netdef being written, we generate
+ * the .netdev file. Otherwise we skip the netdef.
+ */
++ {
+ gchar* first = g_strcmp0(def->id, def->veth_peer_link->id) < 0 ? def->id : def->veth_peer_link->id;
+ if (first != def->id) {
+ g_string_free(s, TRUE);
+ return;
+ }
+ g_string_append_printf(s, "Kind=veth\n\n[Peer]\nName=%s\n", def->veth_peer_link->id);
++ }
+ break;
+
+ case NETPLAN_DEF_TYPE_TUNNEL:
+--
+2.25.1
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0002-meson.build-do-not-use-Werror.patch b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0002-meson.build-do-not-use-Werror.patch
new file mode 100644
index 0000000000..663a80ecde
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0002-meson.build-do-not-use-Werror.patch
@@ -0,0 +1,29 @@
+From 668ee79f39614ad758edd44c42b8b0eff57877cf Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Sun, 3 Oct 2021 21:52:16 +0200
+Subject: [PATCH] meson.build: do not use -Werror
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 30f33fe2..0b214795 100644
+--- a/meson.build
++++ b/meson.build
+@@ -4,7 +4,7 @@ project('netplan', 'c',
+ default_options: [
+ 'c_std=c99',
+ 'warning_level=2',
+- 'werror=true',
++ 'werror=false',
+ ],
+ meson_version: '>= 0.61.0',
+ )
+--
+2.25.1
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_0.104.bb b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_0.104.bb
deleted file mode 100644
index ea944fa9db..0000000000
--- a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_0.104.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-SUMMARY = "The network configuration abstraction renderer"
-DESCRIPTION = "Netplan is a utility for easily configuring networking on a \
-linux system. You simply create a YAML description of the required network \
-interfaces and what each should be configured to do. From this description \
-Netplan will generate all the necessary configuration for your chosen renderer \
-tool."
-HOMEPAGE = "https://netplan.io"
-SECTION = "net/misc"
-
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-S = "${WORKDIR}/git"
-SRCREV = "3e522b7255310bdecca6c781137741dfc4abc021"
-PV = "0.104"
-
-SRC_URI = "git://github.com/CanonicalLtd/netplan.git;branch=main;protocol=https \
- file://0001-Makefile-do-not-use-Werror.patch \
- file://0001-Makefile-fix-parallel-build-failure.patch \
- "
-
-SRC_URI:append:libc-musl = " file://0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch"
-
-DEPENDS = "glib-2.0 libyaml ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-PACKAGECONFIG ?= ""
-
-PACKAGECONFIG[tests] = ",,,python3-nose python3-coverage python3-netifaces python3-pycodestyle python3-pyflakes python3-pyyaml"
-
-RDEPENDS:${PN} = "python3 python3-core python3-netifaces python3-pyyaml util-linux-libuuid libnetplan"
-
-inherit pkgconfig systemd
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-EXTRA_OEMAKE = "generate netplan/_features.py"
-EXTRA_OEMAKE =+ "${@bb.utils.contains('DISTRO_FEATURES','systemd','netplan-dbus dbus/io.netplan.Netplan.service','',d)}"
-
-do_install() {
- install -d ${D}${sbindir} ${D}${libdir} ${D}${base_libdir}/netplan ${D}${datadir}/netplan/netplan/cli/commands ${D}${sysconfdir}/netplan
- install -m 755 ${S}/generate ${D}${base_libdir}/netplan/
- install -m 644 ${S}/netplan/*.py ${D}${datadir}/netplan/netplan
- install -m 644 ${S}/netplan/cli/*.py ${D}${datadir}/netplan/netplan/cli
- install -m 644 ${S}/netplan/cli/commands/*.py ${D}${datadir}/netplan/netplan/cli/commands
- install -m 755 ${S}/src/netplan.script ${D}${datadir}/netplan/
- ln -srf ${D}${datadir}/netplan/netplan.script ${D}${sbindir}/netplan
- sed -i -e "s#/lib/netplan/generate#${base_libdir}/netplan/generate#" ${D}${datadir}/netplan/netplan/cli/utils.py
-
- install -d ${D}/${systemd_unitdir}/system ${D}${systemd_unitdir}/system-generators
- ln -srf ${D}/${base_libdir}/netplan/generate ${D}${systemd_unitdir}/system-generators
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${datadir}/dbus-1/system.d ${D}${datadir}/dbus-1/system-services
- install -m 755 ${S}/netplan-dbus ${D}${base_libdir}/netplan
- install -m 644 ${S}/dbus/io.netplan.Netplan.conf ${D}${datadir}/dbus-1/system.d
- install -m 644 ${S}/dbus/io.netplan.Netplan.service ${D}${datadir}/dbus-1/system-services
- sed -i -e "s#^Exec=/lib/#Exec=${base_libdir}/#" ${D}${datadir}/dbus-1/system-services/io.netplan.Netplan.service
- fi
-
- install -m 755 ${S}/libnetplan.so.0.0 ${D}${libdir}
- ln -rfs ${D}${libdir}/libnetplan.so.0.0 ${D}${libdir}/libnetplan.so
-}
-
-PACKAGES += "${PN}-dbus libnetplan"
-
-FILES:libnetplan = "${libdir}/libnetplan.so.0.0"
-FILES:${PN} = "${sbindir} ${base_libdir}/netplan/generate ${datadir}/netplan ${sysconfdir}/netplan ${systemd_unitdir}"
-FILES:${PN}-dbus = "${base_libdir}/netplan/netplan-dbus ${datadir}/dbus-1"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_1.0.bb b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_1.0.bb
new file mode 100644
index 0000000000..229414718c
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_1.0.bb
@@ -0,0 +1,52 @@
+SUMMARY = "The network configuration abstraction renderer"
+DESCRIPTION = "Netplan is a utility for easily configuring networking on a \
+linux system. You simply create a YAML description of the required network \
+interfaces and what each should be configured to do. From this description \
+Netplan will generate all the necessary configuration for your chosen renderer \
+tool."
+HOMEPAGE = "https://netplan.io"
+SECTION = "net/misc"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+inherit meson pkgconfig systemd python3targetconfig features_check
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SRC_URI = "git://github.com/CanonicalLtd/netplan.git;branch=main;protocol=https \
+ file://0001-meson.build-drop-unnecessary-build-dependencies.patch \
+ file://0002-meson.build-do-not-use-Werror.patch \
+ "
+
+SRC_URI:append:libc-musl = " file://0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch"
+SRC_URI:append:toolchain-clang = " file://0001-networkd.c-define-scope-specific-to-case-statement.patch"
+
+SRCREV = "45f7cd1569896d9e316c130bf5c60b7ccfc8211d"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "glib-2.0 libyaml util-linux-libuuid \
+ systemd python3-cffi-native \
+ "
+
+EXTRA_OEMESON = "-Dunit_testing=false"
+
+RDEPENDS:${PN} = "python3-core python3-netifaces python3-pyyaml \
+ python3-dbus python3-rich python3-cffi \
+ util-linux-libuuid libnetplan \
+ "
+
+do_install:append() {
+ install -d -m 755 ${D}${sysconfdir}/netplan
+}
+
+PACKAGES += "${PN}-dbus libnetplan"
+
+FILES:libnetplan = "${libdir}/libnetplan.so.*"
+FILES:${PN} = "${sbindir} ${libexecdir}/netplan/generate \
+ ${datadir}/netplan ${datadir}/bash-completion \
+ ${systemd_unitdir} ${PYTHON_SITEPACKAGES_DIR} \
+ ${sysconfdir}/netplan \
+ "
+FILES:${PN}-dbus = "${libexecdir}/netplan/netplan-dbus ${datadir}/dbus-1"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.1.bb b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.1.bb
deleted file mode 100644
index ec2830d37c..0000000000
--- a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.1.bb
+++ /dev/null
@@ -1,67 +0,0 @@
-SUMMARY = "Open-source IoT platform for data collection, processing, visualization, and device management"
-DESCRIPTION = "\
-The Thingsboard IoT Gateway is an open-source solution that allows you \
-to integrate devices connected to legacy and third-party systems with Thingsboard."
-HOMEPAGE = "https://thingsboard.io/"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI[sha256sum] = "1a563e062ba734d1cc6e6cbaf8016af5cfb8c2921cb06e1e7af98153af1d121c"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "thingsboard-gateway"
-
-RDEPENDS:${PN} += " python3-jsonpath-rw \
- python3-regex \
- python3-paho-mqtt \
- python3-pyyaml \
- python3-simplejson \
- python3-requests \
- python3-pip \
- python3-pyrsistent \
-"
-
-SRC_URI += "file://bacnet.json \
- file://ble.json \
- file://can.json \
- file://custom_serial.json \
- file://modbus.json \
- file://modbus_serial.json \
- file://mqtt.json \
- file://opcua.json \
- file://odbc.json \
- file://request.json \
- file://rest.json \
- file://snmp.json \
- file://tb_gateway.yaml \
- file://logs.conf \
- file://thingsboard-gateway.service \
- "
-
-
-inherit systemd
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE:${PN} = "thingsboard-gateway.service"
-
-FILES:${PN} += "/etc \
- /lib \
- /usr \
-"
-
-do_install:append(){
-
- install -d ${D}${sysconfdir}/thingsboard-gateway/config
-
- for file in $(find ${WORKDIR} -maxdepth 1 -type f -name *.json); do
- install -m 0644 "$file" ${D}${sysconfdir}/thingsboard-gateway/config
- done
-
- install -m 0644 ${WORKDIR}/tb_gateway.yaml ${D}${sysconfdir}/thingsboard-gateway/config
- install -m 0644 ${WORKDIR}/logs.conf ${D}${sysconfdir}/thingsboard-gateway/config
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/thingsboard-gateway.service ${D}${systemd_system_unitdir}/thingsboard-gateway.service
-}
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.4.6.bb b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.4.6.bb
new file mode 100644
index 0000000000..0d0f6fea48
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.4.6.bb
@@ -0,0 +1,67 @@
+SUMMARY = "Open-source IoT platform for data collection, processing, visualization, and device management"
+DESCRIPTION = "\
+The Thingsboard IoT Gateway is an open-source solution that allows you \
+to integrate devices connected to legacy and third-party systems with Thingsboard."
+HOMEPAGE = "https://thingsboard.io/"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+SRC_URI[sha256sum] = "fc24bb674308f05d963a1dbed8d0b38ead77424ad7cf032a2652732af48f1336"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "thingsboard-gateway"
+
+RDEPENDS:${PN} += " python3-jsonpath-rw \
+ python3-regex \
+ python3-paho-mqtt \
+ python3-pyyaml \
+ python3-simplejson \
+ python3-requests \
+ python3-pip \
+ python3-pyrsistent \
+"
+
+SRC_URI += "file://bacnet.json \
+ file://ble.json \
+ file://can.json \
+ file://custom_serial.json \
+ file://modbus.json \
+ file://modbus_serial.json \
+ file://mqtt.json \
+ file://opcua.json \
+ file://odbc.json \
+ file://request.json \
+ file://rest.json \
+ file://snmp.json \
+ file://tb_gateway.yaml \
+ file://logs.conf \
+ file://thingsboard-gateway.service \
+ "
+
+
+inherit systemd
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "thingsboard-gateway.service"
+
+FILES:${PN} += "/etc \
+ /lib \
+ /usr \
+"
+
+do_install:append(){
+
+ install -d ${D}${sysconfdir}/thingsboard-gateway/config
+
+ for file in $(find ${WORKDIR} -maxdepth 1 -type f -name *.json); do
+ install -m 0644 "$file" ${D}${sysconfdir}/thingsboard-gateway/config
+ done
+
+ install -m 0644 ${WORKDIR}/tb_gateway.yaml ${D}${sysconfdir}/thingsboard-gateway/config
+ install -m 0644 ${WORKDIR}/logs.conf ${D}${sysconfdir}/thingsboard-gateway/config
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/thingsboard-gateway.service ${D}${systemd_system_unitdir}/thingsboard-gateway.service
+}
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-core/packagegroups/packagegroup-meta-oe.bbappend b/meta-oe/dynamic-layers/meta-python/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
index ae4d38085a..7fff849ecd 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
+++ b/meta-oe/dynamic-layers/meta-python/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
@@ -1,8 +1,6 @@
RDEPENDS:packagegroup-meta-oe-devtools += "\
python3-distutils-extra \
rwmem \
- speedtest-cli \
- mongodb \
"
RDEPENDS:packagegroup-meta-oe-connectivity += "\
@@ -11,7 +9,6 @@ RDEPENDS:packagegroup-meta-oe-connectivity += "\
RDEPENDS:packagegroup-meta-oe-extended += "\
lcdproc \
- mozjs \
"
RDEPENDS:packagegroup-meta-oe-support += "\
nvmetcli \
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-build-on-32bit.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-build-on-32bit.patch
new file mode 100644
index 0000000000..4abc044151
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-build-on-32bit.patch
@@ -0,0 +1,38 @@
+From b172ebe7e709b10338c1b260310dacc15c557cff Mon Sep 17 00:00:00 2001
+From: Martin Jansa <martin.jansa@gmail.com>
+Date: Fri, 22 Sep 2023 15:37:29 +0200
+Subject: [PATCH] Fix build on 32bit
+
+* fixes:
+ src/mongo/util/net/http_client_curl.cpp: In function 'size_t mongo::{anonymous}::ReadMemoryCallback(char*, size_t, size_t, void*)':
+ src/mongo/util/net/http_client_curl.cpp:172:21: error: no matching function for call to 'min(size_t, long unsigned int)'
+ 172 | std::min(size * nitems, static_cast<unsigned long>(bufReader->remaining()));
+ | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* reported in:
+ https://jira.mongodb.org/browse/SERVER-73007
+ but will probably get closed like:
+ mongodb/0001-Fix-type-mismatch-on-32bit-arches.patch
+ submitted in:
+ https://jira.mongodb.org/browse/SERVER-74633
+ as they don't support 32bit builds
+
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+Upstream-Status: Pending
+---
+ src/mongo/util/net/http_client_curl.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/mongo/util/net/http_client_curl.cpp b/src/mongo/util/net/http_client_curl.cpp
+index 57290d0f8ed..f251fe2a550 100644
+--- a/src/mongo/util/net/http_client_curl.cpp
++++ b/src/mongo/util/net/http_client_curl.cpp
+@@ -169,7 +169,7 @@ size_t ReadMemoryCallback(char* buffer, size_t size, size_t nitems, void* instre
+
+ if (bufReader->remaining() > 0) {
+ size_t readSize =
+- std::min(size * nitems, static_cast<unsigned long>(bufReader->remaining()));
++ std::min(size * nitems, static_cast<size_t>(bufReader->remaining()));
+ auto buf = bufReader->readBytes(readSize);
+ memcpy(buffer, buf.rawData(), readSize);
+ ret = readSize;
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-type-mismatch-on-32bit-arches.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-type-mismatch-on-32bit-arches.patch
new file mode 100644
index 0000000000..def17995dc
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-type-mismatch-on-32bit-arches.patch
@@ -0,0 +1,33 @@
+From 81eabea4e4da55cddfe8bcfcbc3759fa90948254 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 3 Mar 2023 14:13:29 -0800
+Subject: [PATCH] Fix type mismatch on 32bit arches
+
+std::set::size returns an unsigned integral type.
+std::max call therefore gets (unsigned int, unsigned long) here.
+Type of both arguments is not same, so its ambigous
+and there is no matching std::max implementation for mismatching
+arguments. std::max expects both input variables to be of
+same type, max(int,int) etc..
+
+Fixes
+src/mongo/util/processinfo_linux.cpp:424:16: error: no matching function for call to 'max'
+ return std::max(socketIds.size(), 1ul);
+
+Upstream-Status: Submitted [https://jira.mongodb.org/browse/SERVER-74633]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/util/processinfo_linux.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/src/mongo/util/processinfo_linux.cpp
++++ b/src/mongo/util/processinfo_linux.cpp
+@@ -421,7 +421,7 @@ public:
+
+ // On ARM64, the "physical id" field is unpopulated, causing there to be 0 sockets found. In
+ // this case, we default to 1.
+- return std::max(socketIds.size(), 1ul);
++ return std::max(static_cast<unsigned long>(socketIds.size()), 1ul);
+ }
+
+ /**
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
index e636adc556..500e76bc2f 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
@@ -13,6 +13,8 @@ typedef int wchar_t;
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
index b8a325295d..4d84d3d15b 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
@@ -6,6 +6,8 @@ Subject: [PATCH 01/10] Tell scons to use build settings from environment
Signed-off-by: Sven Ebenfeld <sven.ebenfeld@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
SConstruct | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
index 8d82be1b57..cfbcbd9aa2 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 03/10] Use __GLIBC__ to control use of gnu_get_libc_version
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
src/mongo/util/processinfo_linux.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
index 958e09c3dc..310301d57b 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
@@ -9,6 +9,8 @@ since this function expects long long as parameter and not int64_t
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
src/mongo/util/procparser.cpp | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-apply-msvc-workaround-for-clang-16.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-apply-msvc-workaround-for-clang-16.patch
new file mode 100644
index 0000000000..096269308d
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-apply-msvc-workaround-for-clang-16.patch
@@ -0,0 +1,32 @@
+From 03047c81b2601362bcf79cae67e06d1fba0a6101 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 2 Mar 2023 20:17:57 -0800
+Subject: [PATCH] apply msvc workaround for clang >= 16
+
+This avoids a new Werror found with clang16
+
+boost-1.70.0/boost/mpl/aux_/integral_wrapper.hpp:73:31: error: integer value -1 is outside the valid range of values [0, 3] for this enumeration type [-Wenum-constexpr-conversion]
+ typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior;
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../boost-1.70.0/boost/mpl/aux_/integral_wrapper.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/third_party/boost-1.70.0/boost/mpl/aux_/integral_wrapper.hpp b/src/third_party/boost-1.70.0/boost/mpl/aux_/integral_wrapper.hpp
+index 6bc05f7e96e..6bb8d24c9ce 100644
+--- a/src/third_party/boost-1.70.0/boost/mpl/aux_/integral_wrapper.hpp
++++ b/src/third_party/boost-1.70.0/boost/mpl/aux_/integral_wrapper.hpp
+@@ -56,7 +56,7 @@ struct AUX_WRAPPER_NAME
+ // have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC),
+ // while some other don't like 'value + 1' (Borland), and some don't like
+ // either
+-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
++#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) || __clang_major__ > 15
+ private:
+ BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)));
+ BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)));
+--
+2.39.2
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch
index e726933f56..ad944e4666 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 10/10] asio: Dont use experimental with clang
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
src/third_party/asio-master/asio/include/asio/detail/string_view.hpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-free_mon-Include-missing-cstdint.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-free_mon-Include-missing-cstdint.patch
new file mode 100644
index 0000000000..8cee14889f
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-free_mon-Include-missing-cstdint.patch
@@ -0,0 +1,28 @@
+From 5d8218b8a1b5bc71e2a0cf543a000e194daba599 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 29 Jan 2023 17:15:30 -0800
+Subject: [PATCH] free_mon: Include missing <cstdint>
+
+gcc 13 moved some includes around and as a result <cstdint> is no
+longer transitively included [1]. Explicitly include it
+for uintXX_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ src/mongo/db/free_mon/free_mon_options.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/src/mongo/db/free_mon/free_mon_options.h
++++ b/src/mongo/db/free_mon/free_mon_options.h
+@@ -29,6 +29,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-server-Adjust-the-cache-alignment-assumptions.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-server-Adjust-the-cache-alignment-assumptions.patch
index bf083c85f4..52c9df9b1b 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-server-Adjust-the-cache-alignment-assumptions.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-server-Adjust-the-cache-alignment-assumptions.patch
@@ -15,7 +15,7 @@ src/mongo/db/stats/counters.h:185:47: error: static assertion failed: cache line
The structure need to ensure true sharing for both the elements
so align it to hardware_constructive_interference_size instead
-Upstream-Status: Reported [https://jira.mongodb.org/browse/SERVER-65664]
+Upstream-Status: Inappropriate [https://jira.mongodb.org/browse/SERVER-65664]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-wiredtiger-Avoid-using-off64_t.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-wiredtiger-Avoid-using-off64_t.patch
new file mode 100644
index 0000000000..abe6898554
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-wiredtiger-Avoid-using-off64_t.patch
@@ -0,0 +1,30 @@
+From 0508c1518c2e7c586a231d344e9f93b08507885b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 31 Dec 2022 14:23:40 -0800
+Subject: [PATCH] wiredtiger: Avoid using off64_t
+
+off64_t is not available on musl since off_t is already 64bit by
+default. Therefore replace using off64_t with off_t
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/third_party/wiredtiger/src/os_posix/os_fs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/third_party/wiredtiger/src/os_posix/os_fs.c b/src/third_party/wiredtiger/src/os_posix/os_fs.c
+index 3898eb74343..9ce2d5edb38 100644
+--- a/src/third_party/wiredtiger/src/os_posix/os_fs.c
++++ b/src/third_party/wiredtiger/src/os_posix/os_fs.c
+@@ -533,7 +533,7 @@ __posix_file_sync_nowait(WT_FILE_HANDLE *file_handle, WT_SESSION *wt_session)
+ pfh = (WT_FILE_HANDLE_POSIX *)file_handle;
+
+ /* See comment in __posix_sync(): sync cannot be retried or fail. */
+- WT_SYSCALL(sync_file_range(pfh->fd, (off64_t)0, (off64_t)0, SYNC_FILE_RANGE_WRITE), ret);
++ WT_SYSCALL(sync_file_range(pfh->fd, 0, 0, SYNC_FILE_RANGE_WRITE), ret);
+ if (ret == 0)
+ return (0);
+
+--
+2.39.0
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
index 57f4168f5a..d1e662f291 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
@@ -7,6 +7,8 @@ It depends on the native arch's word size.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
src/mongo/util/stacktrace_posix.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
index 910ef0b5f4..d2ba6eb805 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: git/SConstruct
===================================================================
--- git.orig/SConstruct
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
index 2cea9bc31f..45051e103d 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch
@@ -4,6 +4,8 @@ Date: Sat, 2 Sep 2017 13:13:15 -0700
Subject: [PATCH 09/10] wiredtiger: Disable strtouq on musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
---
src/third_party/wiredtiger/build_linux/wiredtiger_config.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch
index e4ae30776b..9259f96be8 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch
@@ -1,4 +1,3 @@
-Upstream-Status: submitted https://github.com/mongodb/mongo/pull/1296
From 362be06fc16a5ad0f9e9aa90cc763c5242e8e35c Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Sat, 9 Feb 2019 12:41:45 +0100
@@ -14,6 +13,8 @@ src/mongo/util/net/ssl_manager.cpp: In static member function 'static mongo::Sta
src/mongo/util/net/ssl_manager.cpp:575:79: error: invalid conversion from 'size_t* {aka unsigned int*}' to 'long unsigned int*' [-fpermissive]
if (mongoUnsignedAddOverflow64(tagAndLengthByteCount, derLength, outLength) ||
+Upstream-Status: Submitted [https://github.com/mongodb/mongo/pull/1296]
+
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
---
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/PTHREAD_STACK_MIN.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/PTHREAD_STACK_MIN.patch
deleted file mode 100644
index f08177d7b4..0000000000
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/PTHREAD_STACK_MIN.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-PTHREAD_STACK_MIN is no longer a compile time define in glibc 2.34+ and since
-we only care for glibc and musl where PTHREAD_STACK_MIN is always defined there
-is no need to check for constant called PTHREAD_STACK_MIN since its already defined
-this fix may not work for wider audience but for OE needs its sufficient
-
-Upstream-Status: Inappropriate [OE-only fix]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/src/third_party/boost-1.70.0/boost/thread/pthread/thread_data.hpp
-+++ b/src/third_party/boost-1.70.0/boost/thread/pthread/thread_data.hpp
-@@ -57,9 +57,7 @@ namespace boost
- #else
- std::size_t page_size = ::sysconf( _SC_PAGESIZE);
- #endif
--#if PTHREAD_STACK_MIN > 0
- if (size<PTHREAD_STACK_MIN) size=PTHREAD_STACK_MIN;
--#endif
- size = ((size+page_size-1)/page_size)*page_size;
- int res = pthread_attr_setstacksize(&val_, size);
- BOOST_VERIFY(!res && "pthread_attr_setstacksize failed");
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch
index 1a7bf0fc52..24b0ad58b6 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 05/10] Add alises for arm64 which is same as aarch64
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+Upstream-Status: Pending
---
SConstruct | 1 +
src/third_party/IntelRDFPMathLib20U1/SConscript | 2 +-
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
index d040ab160b..ee5c77a85d 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
@@ -11,9 +11,9 @@ DEPENDS = "openssl libpcap zlib boost curl python3 \
inherit scons dos2unix siteinfo python3native systemd useradd
-PV = "4.4.13"
-#v4.4.13
-SRCREV = "df25c71b8674a78e17468f48bcda5285decb9246"
+PV = "4.4.24"
+#v4.4.24
+SRCREV = "0b86b9b7b42ad9970c5f818c527dd86c0634243a"
SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.4;protocol=https \
file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \
file://0001-Use-long-long-instead-of-int64_t.patch \
@@ -29,15 +29,19 @@ SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.4;protocol=https \
file://0001-include-needed-c-header.patch \
file://disable_runtime_check.patch \
file://ppc64_ARCH_BITS.patch \
- file://PTHREAD_STACK_MIN.patch \
file://0001-add-explict-static_cast-size_t-to-maxMemoryUsageByte.patch \
file://0001-server-Adjust-the-cache-alignment-assumptions.patch \
file://0001-The-std-lib-unary-binary_function-base-classes-are-d.patch \
+ file://0001-free_mon-Include-missing-cstdint.patch \
+ file://0001-apply-msvc-workaround-for-clang-16.patch \
+ file://0001-Fix-type-mismatch-on-32bit-arches.patch \
+ file://0001-Fix-build-on-32bit.patch \
"
SRC_URI:append:libc-musl ="\
file://0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch \
file://0002-Fix-default-stack-size-to-256K.patch \
file://0004-wiredtiger-Disable-strtouq-on-musl.patch \
+ file://0001-wiredtiger-Avoid-using-off64_t.patch \
"
SRC_URI:append:toolchain-clang = "\
@@ -46,11 +50,8 @@ SRC_URI:append:toolchain-clang = "\
S = "${WORKDIR}/git"
-CVE_CHECK_IGNORE += "\
- CVE-2014-8180 \
- CVE-2017-18381 \
- CVE-2017-2665 \
-"
+CVE_STATUS[CVE-2014-8180] = "not-applicable-config: Not affecting our configuration so it can be safely ignored."
+CVE_STATUS[CVE-2017-2665] = "not-applicable-config: Not affecting our configuration so it can be safely ignored."
COMPATIBLE_HOST ?= '(x86_64|i.86|powerpc64|arm|aarch64).*-linux'
@@ -72,8 +73,13 @@ WIREDTIGER ?= "off"
WIREDTIGER:x86-64 = "on"
WIREDTIGER:aarch64 = "on"
+# ld.gold: fatal error: build/59f4f0dd/mongo/mongod: Structure needs cleaning
+LDFLAGS:append:x86:libc-musl = " -fuse-ld=bfd"
+LDFLAGS:remove:toolchain-clang = "-fuse-ld=bfd"
+
EXTRA_OESCONS = "PREFIX=${prefix} \
DESTDIR=${D} \
+ MAXLINELENGTH='2097152' \
LIBPATH=${STAGING_LIBDIR} \
LINKFLAGS='${LDFLAGS}' \
CXXFLAGS='${CXXFLAGS}' \
@@ -85,6 +91,7 @@ EXTRA_OESCONS = "PREFIX=${prefix} \
--use-system-zlib \
--nostrip \
--endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
+ --use-hardware-crc32=${@bb.utils.contains('TUNE_FEATURES', 'crc', 'on', 'off', d)} \
--wiredtiger='${WIREDTIGER}' \
--separate-debug \
${PACKAGECONFIG_CONFARGS}"
@@ -101,8 +108,8 @@ scons_do_install() {
# install binaries
install -d ${D}${bindir}
for i in mongod mongos mongo; do
- if [ -f ${B}/build/opt/mongo/$i ]; then
- install -m 0755 ${B}/build/opt/mongo/$i ${D}${bindir}
+ if [ -f ${B}/build/*/mongo/$i ]; then
+ install -m 0755 ${B}/build/*/mongo/$i ${D}${bindir}
else
bbnote "$i does not exist"
fi
@@ -118,7 +125,7 @@ scons_do_install() {
# install mongo data folder
install -m 755 -d ${D}${localstatedir}/lib/${BPN}
- chown ${PN}:${PN} ${D}${localstatedir}/lib/${BPN}
+ chown ${BPN}:${BPN} ${D}${localstatedir}/lib/${BPN}
# Create /var/log/mongodb in runtime.
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
@@ -136,3 +143,7 @@ CONFFILES:${PN} = "${sysconfdir}/mongod.conf"
SYSTEMD_SERVICE:${PN} = "mongod.service"
FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
+
+RDEPENDS:${PN} += "tzdata-core"
+
+SKIP_RECIPE[mongodb] ?= "Needs porting to python 3.12"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb-generator_0.4.8.bb b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb-generator_0.4.8.bb
new file mode 100644
index 0000000000..c86750f8b6
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb-generator_0.4.8.bb
@@ -0,0 +1,14 @@
+require nanopb.inc
+
+inherit python3-dir
+
+DEPENDS = "protobuf-native"
+RDEPENDS:${PN} += "python3-protobuf"
+
+EXTRA_OECMAKE += " \
+ -Dnanopb_PYTHON_INSTDIR_OVERRIDE=${PYTHON_SITEPACKAGES_DIR} \
+ -Dnanopb_BUILD_RUNTIME=OFF \
+ -Dnanopb_BUILD_GENERATOR=ON \
+ "
+
+FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb-runtime_0.4.8.bb b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb-runtime_0.4.8.bb
new file mode 100644
index 0000000000..e43931a4ec
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb-runtime_0.4.8.bb
@@ -0,0 +1,17 @@
+require nanopb.inc
+
+EXTRA_OECMAKE += " \
+ -Dnanopb_PROTOC_PATH=/bin/false \
+ -DBUILD_SHARED_LIBS=ON \
+ -Dnanopb_BUILD_RUNTIME=ON \
+ -Dnanopb_BUILD_GENERATOR=OFF \
+ "
+
+# Maintain compatability with old header locations for packages
+# which haven't yet migrated to `nanopb/pb*.h`
+do_install:append() {
+ for hdr in ${D}${includedir}/nanopb/*; do
+ ln -sv nanopb/$(basename "$hdr") ${D}${includedir}/
+ done
+}
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb.bb b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb.bb
new file mode 100644
index 0000000000..d4ab31a9b1
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Combined nanopb package"
+PV = "1.0"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit packagegroup
+
+DEPENDS = " \
+ nanopb-generator \
+ nanopb-runtime \
+"
+
+RDEPENDS:${PN} = " \
+ nanopb-generator \
+ nanopb-runtime \
+"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb.inc b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb.inc
new file mode 100644
index 0000000000..87dbc73e63
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb.inc
@@ -0,0 +1,13 @@
+DESCRIPTION="Protocol Buffers with small code size"
+LICENSE="Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9db4b73a55a3994384112efcdb37c01f"
+
+SRC_URI = "git://github.com/nanopb/nanopb.git;branch=master;protocol=https"
+SRCREV = "6cfe48d6f1593f8fa5c0f90437f5e6522587745e"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.6.4.bb b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.6.4.bb
deleted file mode 100644
index 691bbce9ac..0000000000
--- a/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.6.4.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-DESCRIPTION="Protocol Buffers with small code size"
-LICENSE="Zlib"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9db4b73a55a3994384112efcdb37c01f"
-
-DEPENDS = "protobuf-native"
-
-SRC_URI = "git://github.com/nanopb/nanopb.git;branch=master;protocol=https"
-SRCREV = "afc499f9a410fc9bbf6c9c48cdd8d8b199d49eb4"
-
-S = "${WORKDIR}/git"
-
-inherit cmake python3native
-
-do_install:append() {
- install -Dm 0755 ${S}/generator/nanopb_generator.py ${D}${bindir}/nanopb_generator.py
- install -Dm 0755 ${S}/generator/protoc-gen-nanopb ${D}${bindir}/protoc-gen-nanopb
- install -Dm 0755 ${S}/generator/proto/__init__.py ${D}${PYTHON_SITEPACKAGES_DIR}/proto/__init__.py
-}
-
-FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}"
-FILES:${PN}-dev += "${libdir}/cmake/${BPN}"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-protobuf \
- protobuf-compiler \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0001-Fix-compilation-with-GCC-10.x.patch b/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0001-Fix-compilation-with-GCC-10.x.patch
deleted file mode 100644
index cd8a69c3fb..0000000000
--- a/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0001-Fix-compilation-with-GCC-10.x.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 9b07f6a472c24f5e1b65746756764391be0d55e4 Mon Sep 17 00:00:00 2001
-From: Harald Geyer <harald@ccbib.org>
-Date: Mon, 10 Feb 2020 13:15:10 +0100
-Subject: [PATCH] Fix compilation with GCC >= 10.x
-
-Starting with GCC >= 10.x, -fno-common is used as default
-instead of -fcommon. This patch fixes the compilation.
-
-Closes: #148
-
-Upstream-Status: Backport
-Suggested-by: Conrad Kostecki <conrad@kostecki.com>
-Signed-off-by: Harald Geyer <harald@ccbib.org>
----
- clients/lcdproc/iface.c | 1 +
- clients/lcdproc/iface.h | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
---- a/clients/lcdproc/iface.c
-+++ b/clients/lcdproc/iface.c
-@@ -32,6 +32,7 @@
- #define UNSET_INT -1
- #define UNSET_STR "\01"
-
-+IfaceInfo iface[MAX_INTERFACES];
-
- static int iface_count = 0; /* number of interfaces */
- static char unit_label[10] = "B"; /* default unit label is Bytes */
---- a/clients/lcdproc/iface.h
-+++ b/clients/lcdproc/iface.h
-@@ -18,7 +18,7 @@
- /** max number of interfaces in multi-interface mode */
- #define MAX_INTERFACES 3
-
--IfaceInfo iface[MAX_INTERFACES]; /* interface info */
-+extern IfaceInfo iface[MAX_INTERFACES]; /* interface info */
-
- /** Update screen content */
- int iface_screen(int rep, int display, int *flags_ptr);
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch b/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch
deleted file mode 100644
index f6a7956db2..0000000000
--- a/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a20feee4963bc38975fbaf44bbe85a31825f59db Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 6 Apr 2019 17:28:28 -0700
-Subject: [PATCH 1/3] Fix parallel build (fix port-internal make dependencies)
- on many cores
-
-Upstream-Status: Submitted [https://github.com/lcdproc/lcdproc/pull/142]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- server/drivers/Makefile.am | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/server/drivers/Makefile.am b/server/drivers/Makefile.am
-index e08f2b2d..4fd2e3f1 100644
---- a/server/drivers/Makefile.am
-+++ b/server/drivers/Makefile.am
-@@ -47,11 +47,11 @@ CwLnx_LDADD = libLCD.a libbignum.a
- futaba_LDADD = @LIBUSB_LIBS@ @LIBUSB_1_0_LIBS@ libLCD.a
- g15_LDADD = @LIBG15@
- glcd_LDADD = libLCD.a @GLCD_DRIVERS@ @FT2_LIBS@ @LIBPNG_LIBS@ @LIBSERDISP@ @LIBUSB_LIBS@ @LIBX11_LIBS@
--glcd_DEPENDENCIES = @GLCD_DRIVERS@ glcd-glcd-render.o
-+glcd_DEPENDENCIES = @GLCD_DRIVERS@ glcd-glcd-render.o libLCD.a
- glcdlib_LDADD = @LIBGLCD@
- glk_LDADD = libbignum.a
- hd44780_LDADD = libLCD.a @HD44780_DRIVERS@ @HD44780_I2C@ @LIBUSB_LIBS@ @LIBFTDI_LIBS@ @LIBUGPIO@ libbignum.a
--hd44780_DEPENDENCIES = @HD44780_DRIVERS@ @HD44780_I2C@
-+hd44780_DEPENDENCIES = @HD44780_DRIVERS@ @HD44780_I2C@ libLCD.a libbignum.a
- i2500vfd_LDADD = @LIBFTDI_LIBS@
- imon_LDADD = libLCD.a libbignum.a
- imonlcd_LDADD = libLCD.a
---
-2.24.1
-
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0002-Include-limits.h-for-PATH_MAX-definition.patch b/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0002-Include-limits.h-for-PATH_MAX-definition.patch
deleted file mode 100644
index eb866bf10a..0000000000
--- a/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0002-Include-limits.h-for-PATH_MAX-definition.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From d447a05ee560ba5894d2ed4cd93d0475c2f3c08e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 17 Dec 2019 17:39:32 -0800
-Subject: [PATCH 2/3] Include <limits.h> for PATH_MAX definition
-
-musl libc exposes the missing include
-
-Upstream-Status: Submitted [https://github.com/lcdproc/lcdproc/pull/142]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- server/drivers/hidraw_lib.c | 1 +
- server/drivers/linux_input.c | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/server/drivers/hidraw_lib.c b/server/drivers/hidraw_lib.c
-index 49b03f20..3b51f279 100644
---- a/server/drivers/hidraw_lib.c
-+++ b/server/drivers/hidraw_lib.c
-@@ -8,6 +8,7 @@
- #include <dirent.h>
- #include <errno.h>
- #include <fcntl.h>
-+#include <limits.h>
- #include <stdlib.h>
- #include <string.h>
- #include <sys/ioctl.h>
-diff --git a/server/drivers/linux_input.c b/server/drivers/linux_input.c
-index 5b914d4c..6fcfc591 100644
---- a/server/drivers/linux_input.c
-+++ b/server/drivers/linux_input.c
-@@ -5,6 +5,7 @@
-
- #include <dirent.h>
- #include <errno.h>
-+#include <limits.h>
- #include <stdint.h>
- #include <stdio.h>
- #include <stdlib.h>
---
-2.24.1
-
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0003-Fix-non-x86-platforms-on-musl.patch b/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0003-Fix-non-x86-platforms-on-musl.patch
deleted file mode 100644
index eed9ceee5e..0000000000
--- a/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc/0003-Fix-non-x86-platforms-on-musl.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 7fd144f101fa5c9316d3468ed26f55629afe1305 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 17 Dec 2019 17:55:54 -0800
-Subject: [PATCH 3/3] Fix non x86 platforms on musl
-
-Musl only specifies in/outb for x86/x86. Use the fallback path in case
-musl is used.
-
-This should fail compilation during the linking stage but for some reason
-does not. Will do if -Werror=implicit-function-declaration is specified.
-
-Original here: https://github.com/openwrt/packages/blob/master/utils/lcdproc/patches/110-in-outb.patch
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- server/drivers/port.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/server/drivers/port.h
-+++ b/server/drivers/port.h
-@@ -94,7 +94,7 @@ static inline int port_deny_multiple(uns
- /* ---------------------------- Linux ------------------------------------ */
- /* Use ioperm, inb and outb in <sys/io.h> (Linux) */
- /* And iopl for higher addresses of PCI LPT cards */
--#if defined HAVE_IOPERM
-+#if HAVE_INB
-
- /* Glibc2 and Glibc1 */
- # ifdef HAVE_SYS_IO_H
-@@ -333,7 +333,7 @@ static inline int port_deny_multiple (un
- return i386_set_ioperm(port, count, 0);
- }
-
--#else
-+#elif defined(__x86__) && defined(__x86_64__)
-
- /* ------------------------- Everything else ----------------------------- */
- /* Last chance! Use /dev/io and i386 ASM code (BSD4.3 ?) */
---- a/configure.ac
-+++ b/configure.ac
-@@ -144,6 +144,7 @@ AC_CHECK_LIB(i386, i386_get_ioperm,
- [])]
- )
-
-+AC_CHECK_FUNCS(inb)
- AC_CHECK_FUNCS(iopl)
- AC_CHECK_FUNCS(ioperm)
- AC_CHECK_HEADERS(sys/io.h)
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb b/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb
index 76a931666d..c29c51a2ae 100644
--- a/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb
+++ b/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb
@@ -9,14 +9,9 @@ DEPENDS = "ncurses lirc"
LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760 \
file://README.md;beginline=107;md5=5db392f043253a2d64b1737068ce6b58"
-PV = "0.5.9+git${SRCPV}"
-SRCREV = "3a3d622d9bb74c44fa67bc20573751a207514134"
-SRC_URI = "git://github.com/lcdproc/lcdproc;branch=master;protocol=https \
- file://0001-Fix-parallel-build-fix-port-internal-make-dependenci.patch \
- file://0002-Include-limits.h-for-PATH_MAX-definition.patch \
- file://0003-Fix-non-x86-platforms-on-musl.patch \
- file://0001-Fix-compilation-with-GCC-10.x.patch \
- "
+PV = "0.5.9+git"
+SRCREV = "0e2ce9b9c46c47363436f9ee730f7c71bf455f0f"
+SRC_URI = "git://github.com/lcdproc/lcdproc;branch=master;protocol=https"
S = "${WORKDIR}/git"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-multimedia/kmsxx/kmsxx_git.bb b/meta-oe/dynamic-layers/meta-python/recipes-multimedia/kmsxx/kmsxx_git.bb
new file mode 100644
index 0000000000..cdba1a24d1
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-multimedia/kmsxx/kmsxx_git.bb
@@ -0,0 +1,35 @@
+# SPDX-License-Identifier: MIT
+#
+# Copyright Leica Geosystems AG
+#
+
+SUMMARY = "C++ library for kernel mode setting"
+HOMEPAGE = "https://github.com/tomba/kmsxx"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad"
+
+BRANCH = "master"
+SRC_URI = "git://github.com/tomba/kmsxx.git;protocol=https;branch=${BRANCH}"
+SRCREV = "412935a47b762c33e54a464243f2d789b065bbb6"
+PACKAGES =+ "${PN}-python"
+
+PACKAGECONFIG ?= "utils python "
+PACKAGECONFIG[omap] += "-Domap=enabled, -Domap=disabled"
+PACKAGECONFIG[python] += "-Dpykms=enabled, -Dpykms=disabled, python3 python3-pybind11"
+PACKAGECONFIG[utils] += "-Dutils=true, -Dutils=false"
+
+DEPENDS += "libdrm libevdev fmt"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+do_install:append() {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'utils', 'true', 'false', d)}; then
+ # kmstest already provided by libdrm-tests
+ mv ${D}${bindir}/kmstest ${D}${bindir}/kmsxxtest
+ fi
+}
+
+FILES:${PN} ="${bindir} ${libdir}"
+FILES:${PN}-python += "${PYTHON_SITEPACKAGES_DIR}/*"
diff --git a/meta-oe/dynamic-layers/perl-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend b/meta-oe/dynamic-layers/perl-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
index 8cb8d22a2d..5c48fd5c03 100644
--- a/meta-oe/dynamic-layers/perl-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
+++ b/meta-oe/dynamic-layers/perl-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
@@ -1 +1 @@
-RDEPENDS:packagegroup-meta-oe-support += "debsums rasdaemon"
+RDEPENDS:packagegroup-meta-oe-support += "rasdaemon"
diff --git a/meta-oe/dynamic-layers/perl-layer/recipes-support/debsums/debsums_2.2.2.bb b/meta-oe/dynamic-layers/perl-layer/recipes-support/debsums/debsums_2.2.2.bb
deleted file mode 100644
index 252db1994e..0000000000
--- a/meta-oe/dynamic-layers/perl-layer/recipes-support/debsums/debsums_2.2.2.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "Miscellaneous utilities specific to Debian"
-SUMMARY:${PN}-cron = "Cron scripts to control automatic debsum checking"
-DESCRIPTION = "A tool for verification of installed package files against \
-MD5 checksums debsums can verify the integrity of installed package files \
-against MD5 checksums installed by the package, or generated from a .deb \
-archive."
-DESCRIPTION:${PN}-cron = "Cron scripts to control automatic system integrity \
-checking via debsums."
-SECTION = "base"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=770d751553e6559e9eaefd2e11ccf7e9"
-
-SRC_URI = "http://snapshot.debian.org/archive/debian/20170530T212108Z/pool/main/d/debsums/debsums_2.2.2.tar.xz"
-SRC_URI[md5sum] = "82b0710855a7e5212d4358163a269e79"
-SRC_URI[sha256sum] = "aa61896f93a6bbfe0161c21dcd67529ae8e1ec8c3ccf244523c52c4ad8253d97"
-
-# the package is taken from snapshots.debian.org; that source is static and goes stale
-# so we check the latest upstream from a directory that does get updated
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/"
-
-inherit perlnative gettext
-
-DEPENDS += "po4a-native"
-
-do_install() {
- install -d ${D}/${sysconfdir}/cron.daily ${D}/${sysconfdir}/cron.weekly
- install -d ${D}/${sysconfdir}/cron.monthly ${D}${sbindir} ${D}${bindir}
- install -d ${D}${mandir}/man1 ${D}${mandir}/man8
- install -m 0755 debsums ${D}${bindir}/
- install -m 0755 rdebsums ${D}${bindir}/
- install -m 0755 debsums_init ${D}${sbindir}
- install -m 0644 man/debsums.1 ${D}${mandir}/man1/
- install -m 0644 man/rdebsums.1 ${D}${mandir}/man1/
- install -m 0644 man/debsums_init.8 ${D}${mandir}/man8/
- install -m 0644 debian/cron.daily \
- ${D}/${sysconfdir}/cron.daily/debsums
- install -m 0644 debian/cron.weekly \
- ${D}/${sysconfdir}/cron.weekly/debsums
- install -m 0644 debian/cron.monthly \
- ${D}/${sysconfdir}/cron.monthly/debsums
- # Must exist, defaults to empty.
- touch ${D}/${sysconfdir}/debsums-ignore
-}
-
-PACKAGES =+ "${PN}-cron"
-
-RDEPENDS:${PN} = "dpkg dpkg-perl libfile-fnmatch-perl perl \
- perl-module-constant perl-module-digest-md5 \
- perl-module-errno perl-module-fcntl \
- perl-module-file-basename perl-module-file-copy \
- perl-module-file-find perl-module-file-glob \
- perl-module-file-path perl-module-file-spec \
- perl-module-file-temp perl-module-getopt-long \
- perl-module-posix"
-
-FILES:${PN}-cron = "${sysconfdir}/cron.*"
diff --git a/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/files/0001-libtrace-Use-XSI-version-of-strerror_r-on-non-glibc-.patch b/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/files/0001-libtrace-Use-XSI-version-of-strerror_r-on-non-glibc-.patch
deleted file mode 100644
index fef71afde5..0000000000
--- a/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/files/0001-libtrace-Use-XSI-version-of-strerror_r-on-non-glibc-.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From e415152b51eacab8705b6b3274cc0d1a274772e0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 30 Aug 2022 19:54:35 -0700
-Subject: [PATCH] libtrace: Use XSI version of strerror_r on non glibc systems
-
-The version used is glibc specific therefore make it so
-and provide a fallback for non-glibc systems
-
-Upstream-Status: Submitted [https://github.com/mchehab/rasdaemon/pull/70]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libtrace/event-parse.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/libtrace/event-parse.c b/libtrace/event-parse.c
-index 6c705c3..6b651d5 100644
---- a/libtrace/event-parse.c
-+++ b/libtrace/event-parse.c
-@@ -5071,7 +5071,13 @@ int pevent_strerror(struct pevent *pevent, enum pevent_errno errnum,
- const char *msg;
-
- if (errnum >= 0) {
-+#if defined(__GLIBC__)
- msg = strerror_r(errnum, buf, buflen);
-+#else
-+ if (strerror_r(errnum, buf, buflen) != 0)
-+ snprintf(buf, buflen, "unknown error %i", errnum);
-+ msg = buf;
-+#endif
- if (msg != buf) {
- size_t len = strlen(msg);
- memcpy(buf, msg, min(buflen - 1, len));
---
-2.37.3
-
diff --git a/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/rasdaemon_0.6.8.bb b/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/rasdaemon_0.6.8.bb
deleted file mode 100644
index 3a525e8a15..0000000000
--- a/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/rasdaemon_0.6.8.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-DESCRIPTION = "Tools to provide a way to get Platform Reliability, Availability and Serviceability (RAS) reports made via the Kernel tracing events"
-HOMEPAGE = "http://git.infradead.org/users/mchehab/rasdaemon.git"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d3070efe0afa3dc41608bd82c00bb0dc"
-
-SRC_URI = "git://github.com/mchehab/rasdaemon.git;branch=master;protocol=https \
- file://0001-libtrace-Use-XSI-version-of-strerror_r-on-non-glibc-.patch \
- file://rasdaemon.service \
- file://init"
-
-SRCREV = "c2255178a49f62c53009a456bc37dd5e37332f09"
-
-S = "${WORKDIR}/git"
-
-RDEPENDS:${BPN} = "perl perl-module-file-basename perl-module-file-find perl-module-file-spec perl-module-getopt-long \
- perl-module-posix perl-module-file-glob libdbi-perl libdbd-sqlite-perl"
-
-inherit autotools pkgconfig update-rc.d systemd
-
-PACKAGECONFIG ??= "sqlite3 mce aer extlog devlink diskerror"
-PACKAGECONFIG[sqlite3] = "--enable-sqlite3,--disable-sqlite3,sqlite3"
-PACKAGECONFIG[mce] = "--enable-mce,--disable-mce"
-PACKAGECONFIG[aer] = "--enable-aer,--disable-aer"
-PACKAGECONFIG[extlog] = "--enable-extlog,--disable-extlog"
-PACKAGECONFIG[devlink] = "--enable-devlink,--disable-devlink"
-PACKAGECONFIG[diskerror] = "--enable-diskerror,--disable-diskerror"
-PACKAGECONFIG[arm] = "--enable-arm,--disable-arm"
-PACKAGECONFIG[hisi-ns-decode] = "--enable-hisi-ns-decode,--disable-hisi-ns-decode"
-PACKAGECONFIG[non-standard] = "--enable-non-standard,--disable-non-standard"
-PACKAGECONFIG[abrt-report] = "--enable-abrt-report,--disable-abrt-report"
-
-DEPENDS:append:libc-musl = " argp-standalone"
-LDFLAGS:append:libc-musl = " -largp"
-
-do_install:append() {
- install -d ${D}${sysconfdir}/init.d
- install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rasdaemon
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/rasdaemon.service ${D}${systemd_unitdir}/system
-}
-
-FILES:${PN} += "${sbindir}/rasdaemon \
- ${sysconfdir}/init.d \
- ${systemd_unitdir}/system/rasdaemon.service"
-
-SYSTEMD_SERVICE:${PN} = "rasdaemon.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME:${PN} = "rasdaemon"
-INITSCRIPT_PARAMS:${PN} = "defaults 89"
diff --git a/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/rasdaemon_0.8.0.bb b/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/rasdaemon_0.8.0.bb
new file mode 100644
index 0000000000..c083a3a37a
--- /dev/null
+++ b/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/rasdaemon_0.8.0.bb
@@ -0,0 +1,51 @@
+DESCRIPTION = "Tools to provide a way to get Platform Reliability, Availability and Serviceability (RAS) reports made via the Kernel tracing events"
+HOMEPAGE = "http://git.infradead.org/users/mchehab/rasdaemon.git"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d3070efe0afa3dc41608bd82c00bb0dc"
+
+SRC_URI = "git://github.com/mchehab/rasdaemon.git;branch=master;protocol=https \
+ file://rasdaemon.service \
+ file://init"
+
+SRCREV = "4e83b848e7961af25028f3a2cecf37a63279a2bf"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "libtraceevent"
+RDEPENDS:${BPN} = "perl perl-module-file-basename perl-module-file-find perl-module-file-spec perl-module-getopt-long \
+ perl-module-posix perl-module-file-glob libdbi-perl libdbd-sqlite-perl"
+
+inherit autotools pkgconfig update-rc.d systemd
+
+PACKAGECONFIG ??= "sqlite3 mce aer extlog devlink diskerror"
+PACKAGECONFIG[sqlite3] = "--enable-sqlite3,--disable-sqlite3,sqlite3"
+PACKAGECONFIG[mce] = "--enable-mce,--disable-mce"
+PACKAGECONFIG[aer] = "--enable-aer,--disable-aer"
+PACKAGECONFIG[extlog] = "--enable-extlog,--disable-extlog"
+PACKAGECONFIG[devlink] = "--enable-devlink,--disable-devlink"
+PACKAGECONFIG[diskerror] = "--enable-diskerror,--disable-diskerror"
+PACKAGECONFIG[arm] = "--enable-arm,--disable-arm"
+PACKAGECONFIG[hisi-ns-decode] = "--enable-hisi-ns-decode,--disable-hisi-ns-decode"
+PACKAGECONFIG[non-standard] = "--enable-non-standard,--disable-non-standard"
+PACKAGECONFIG[abrt-report] = "--enable-abrt-report,--disable-abrt-report"
+
+DEPENDS:append:libc-musl = " argp-standalone"
+LDFLAGS:append:libc-musl = " -largp"
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rasdaemon
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/rasdaemon.service ${D}${systemd_unitdir}/system
+}
+
+FILES:${PN} += "${sbindir}/rasdaemon \
+ ${sysconfdir}/init.d \
+ ${systemd_unitdir}/system/rasdaemon.service"
+
+SYSTEMD_SERVICE:${PN} = "rasdaemon.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "rasdaemon"
+INITSCRIPT_PARAMS:${PN} = "defaults 89"
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/10-adbd-configfs.conf b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/10-adbd-configfs.conf
new file mode 100644
index 0000000000..ddf155a907
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/10-adbd-configfs.conf
@@ -0,0 +1,4 @@
+[Service]
+ExecStartPre=/usr/bin/android-gadget-setup
+ExecStartPost=/usr/bin/android-gadget-start
+ExecStopPost=/usr/bin/android-gadget-cleanup
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-cleanup b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-cleanup
new file mode 100644
index 0000000000..517227d4a6
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-cleanup
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+[ -d /sys/kernel/config/usb_gadget ] || exit 0
+
+cd /sys/kernel/config/usb_gadget
+
+cd adb
+
+echo "" > UDC || true
+
+killall adbd || true
+
+umount /dev/usb-ffs/adb
+
+rm configs/c.1/ffs.usb0
+
+rmdir configs/c.1/strings/0x409
+rmdir configs/c.1
+
+rmdir functions/ffs.usb0
+rmdir strings/0x409
+
+cd ..
+rmdir adb
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-setup b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-setup
new file mode 100644
index 0000000000..e44d1bacbe
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-setup
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+set -e
+
+manufacturer=RPB
+model="Android device"
+serial=0123456789ABCDEF
+
+if [ -r /etc/android-gadget-setup.machine ] ; then
+ . /etc/android-gadget-setup.machine
+fi
+
+[ -d /sys/kernel/config/usb_gadget ] || modprobe libcomposite
+
+cd /sys/kernel/config/usb_gadget
+
+[ -d adb ] && /usr/bin/android-gadget-cleanup || true
+
+mkdir adb
+cd adb
+
+mkdir configs/c.1
+mkdir functions/ffs.usb0
+mkdir strings/0x409
+mkdir configs/c.1/strings/0x409
+echo 0x18d1 > idVendor
+echo 0xd002 > idProduct
+echo "$serial" > strings/0x409/serialnumber
+echo "$manufacturer" > strings/0x409/manufacturer
+echo "$model" > strings/0x409/product
+echo "Conf 1" > configs/c.1/strings/0x409/configuration
+ln -s functions/ffs.usb0 configs/c.1
+
+mkdir -p /dev/usb-ffs/adb
+mount -t functionfs usb0 /dev/usb-ffs/adb
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-start b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-start
new file mode 100644
index 0000000000..ca6c3df275
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs/android-gadget-start
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+set -e
+
+sleep 3
+
+ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/adb/UDC
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs_1.0.bb b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs_1.0.bb
new file mode 100644
index 0000000000..1c26c7207b
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf-configfs_1.0.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Various utilities from Android - corresponding configuration files for using ConfigFS"
+SECTION = "console/utils"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+SRC_URI = " \
+ file://android-gadget-setup \
+ file://android-gadget-start \
+ file://android-gadget-cleanup \
+ file://10-adbd-configfs.conf \
+"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/android-gadget-setup ${D}${bindir}
+ install -m 0755 ${WORKDIR}/android-gadget-start ${D}${bindir}
+ install -m 0755 ${WORKDIR}/android-gadget-cleanup ${D}${bindir}
+
+ if [ -r ${WORKDIR}/android-gadget-setup.machine ] ; then
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/android-gadget-setup.machine ${D}${sysconfdir}
+ fi
+
+ install -d ${D}${systemd_unitdir}/system/android-tools-adbd.service.d
+ install -m 0644 ${WORKDIR}/10-adbd-configfs.conf ${D}${systemd_unitdir}/system/android-tools-adbd.service.d
+}
+
+FILES:${PN} += " \
+ ${systemd_unitdir}/system/ \
+"
+
+PROVIDES += "android-tools-conf"
+RPROVIDES:${PN} = "android-tools-conf"
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf/android-gadget-setup b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf/android-gadget-setup
new file mode 100644
index 0000000000..26cf30eddd
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf/android-gadget-setup
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+[ ! -e /dev/pts ] && mkdir -p /dev/pts
+[ ! -e /dev/pts/0 ] && mount devpts /dev/pts -t devpts
+
+# TODO enable the lines below once we have support for getprop
+# retrieve the product info from Android
+# manufacturer=$(getprop ro.product.manufacturer Android)
+# model=$(getprop ro.product.model Android)
+# serial=$(getprop ro.serialno 0123456789ABCDEF)
+
+#below are now needed in order to use FunctionFS for ADB, tested to work with 3.4+ kernels
+if grep -q functionfs /proc/filesystems; then
+ mkdir -p /dev/usb-ffs/adb
+ mount -t functionfs adb /dev/usb-ffs/adb
+ #android-gadget-setup doesn't provide below 2 and without them it won't work, so we provide them here.
+ echo adb > /sys/class/android_usb/android0/f_ffs/aliases
+ echo ffs > /sys/class/android_usb/android0/functions
+fi
+
+manufacturer="$(cat /system/build.prop | grep -o 'ro.product.manufacturer=.*' | cut -d'=' -f 2)"
+model="$(cat /system/build.prop | grep -o 'ro.product.model=.*' | cut -d'=' -f 2)"
+# get the device serial number from /proc/cmdline directly(since we have no getprop on
+# GNU/Linux)
+serial="$(cat /proc/cmdline | sed 's/.*androidboot.serialno=//' | sed 's/ .*//')"
+
+echo $serial > /sys/class/android_usb/android0/iSerial
+echo $manufacturer > /sys/class/android_usb/android0/iManufacturer
+echo $model > /sys/class/android_usb/android0/iProduct
+
+echo "0" > /sys/class/android_usb/android0/enable
+echo "18d1" > /sys/class/android_usb/android0/idVendor
+echo "D002" > /sys/class/android_usb/android0/idProduct
+echo "adb" > /sys/class/android_usb/android0/functions
+echo "1" > /sys/class/android_usb/android0/enable
+
+sleep 4
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf_1.0.bb b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf_1.0.bb
new file mode 100644
index 0000000000..b63ccbb080
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools-conf_1.0.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Different utilities from Android - corresponding configuration files"
+SECTION = "console/utils"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+SRC_URI = "file://android-gadget-setup"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/android-gadget-setup ${D}${bindir}
+}
+
+python () {
+ pn = d.getVar('PN')
+ profprov = d.getVar("PREFERRED_PROVIDER_" + pn)
+ if profprov and pn != profprov:
+ raise bb.parse.SkipRecipe("PREFERRED_PROVIDER_%s set to %s, not %s" % (pn, profprov, pn))
+}
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-Fixes-for-yocto-build.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-Fixes-for-yocto-build.patch
new file mode 100644
index 0000000000..1d18d47ec3
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-Fixes-for-yocto-build.patch
@@ -0,0 +1,164 @@
+From 5de85f8273c7284aa93e35c40f025d4d43d42df9 Mon Sep 17 00:00:00 2001
+From: Etienne Cordonnier <ecordonnier@snap.com>
+Date: Thu, 16 Mar 2023 18:59:35 +0100
+Subject: [PATCH] Fixes for yocto build
+
+Signed-off-by: JJ Robertson <jrobertson@snapchat.com>
+[rebased on version 29]
+Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
+
+---
+Upstream-Status: Pending
+
+ system/core/adb/daemon/file_sync_service.cpp | 4 ++--
+ system/core/adb/daemon/framebuffer_service.h | 2 --
+ system/core/adb/daemon/main.cpp | 5 +++--
+ system/core/adb/daemon/restart_service.h | 2 --
+ system/core/adb/daemon/services.cpp | 6 ++----
+ system/core/adb/daemon/shell_service.cpp | 5 ++++-
+ system/core/adb/types.h | 1 +
+ 7 files changed, 12 insertions(+), 13 deletions(-)
+
+diff --git a/system/core/adb/daemon/file_sync_service.cpp b/system/core/adb/daemon/file_sync_service.cpp
+index d6af7087..92e7087a 100644
+--- a/system/core/adb/daemon/file_sync_service.cpp
++++ b/system/core/adb/daemon/file_sync_service.cpp
+@@ -111,7 +111,7 @@ static bool secure_mkdirs(const std::string& path) {
+ partial_path += path_component;
+
+ if (should_use_fs_config(partial_path)) {
+- fs_config(partial_path.c_str(), 1, nullptr, &uid, &gid, &mode, &capabilities);
++ // fs_config(partial_path.c_str(), 1, nullptr, &uid, &gid, &mode, &capabilities);
+ }
+ if (adb_mkdir(partial_path.c_str(), mode) == -1) {
+ if (errno != EEXIST) {
+@@ -469,7 +469,7 @@ static bool do_send(int s, const std::string& spec, std::vector<char>& buffer) {
+ uint64_t capabilities = 0;
+ if (should_use_fs_config(path)) {
+ unsigned int broken_api_hack = mode;
+- fs_config(path.c_str(), 0, nullptr, &uid, &gid, &broken_api_hack, &capabilities);
++ // fs_config(path.c_str(), 0, nullptr, &uid, &gid, &broken_api_hack, &capabilities);
+ mode = broken_api_hack;
+ }
+
+diff --git a/system/core/adb/daemon/framebuffer_service.h b/system/core/adb/daemon/framebuffer_service.h
+index bab44be3..264da597 100644
+--- a/system/core/adb/daemon/framebuffer_service.h
++++ b/system/core/adb/daemon/framebuffer_service.h
+@@ -18,6 +18,4 @@
+
+ #include "adb_unique_fd.h"
+
+-#if defined(__ANDROID__)
+ void framebuffer_service(unique_fd fd);
+-#endif
+diff --git a/system/core/adb/daemon/main.cpp b/system/core/adb/daemon/main.cpp
+index 3322574c..e807d13d 100644
+--- a/system/core/adb/daemon/main.cpp
++++ b/system/core/adb/daemon/main.cpp
+@@ -208,6 +208,9 @@ int adbd_main(int server_port) {
+ umask(0);
+
+ signal(SIGPIPE, SIG_IGN);
++ signal(SIGINT, SIG_DFL);
++ signal(SIGQUIT, SIG_DFL);
++
+
+ #if defined(__BIONIC__)
+ auto fdsan_level = android_fdsan_get_error_level();
+@@ -254,13 +257,11 @@ int adbd_main(int server_port) {
+
+ bool is_usb = false;
+
+-#if defined(__ANDROID__)
+ if (access(USB_FFS_ADB_EP0, F_OK) == 0) {
+ // Listen on USB.
+ usb_init();
+ is_usb = true;
+ }
+-#endif
+
+ // If one of these properties is set, also listen on that port.
+ // If one of the properties isn't set and we couldn't listen on usb, listen
+diff --git a/system/core/adb/daemon/restart_service.h b/system/core/adb/daemon/restart_service.h
+index 19840bd5..7a97614b 100644
+--- a/system/core/adb/daemon/restart_service.h
++++ b/system/core/adb/daemon/restart_service.h
+@@ -18,9 +18,7 @@
+
+ #include "adb_unique_fd.h"
+
+-#if defined(__ANDROID__)
+ void restart_root_service(unique_fd fd);
+ void restart_unroot_service(unique_fd fd);
+ void restart_tcp_service(unique_fd fd, int port);
+ void restart_usb_service(unique_fd fd);
+-#endif
+diff --git a/system/core/adb/daemon/services.cpp b/system/core/adb/daemon/services.cpp
+index 4ec90d27..d8541c23 100644
+--- a/system/core/adb/daemon/services.cpp
++++ b/system/core/adb/daemon/services.cpp
+@@ -156,7 +156,7 @@ static void spin_service(unique_fd fd) {
+ }
+ #endif
+ // Fall through
+- std::string cmd = "/system/bin/reboot ";
++ std::string cmd = "/sbin/reboot ";
+ cmd += name;
+ return StartSubprocess(cmd, nullptr, SubprocessType::kRaw, SubprocessProtocol::kNone);
+ }
+@@ -265,11 +265,10 @@ unique_fd daemon_service_to_fd(std::string_view name, atransport* transport) {
+ }
+ #endif
+
+-#if defined(__ANDROID__)
+ if (name.starts_with("framebuffer:")) {
+ return create_service_thread("fb", framebuffer_service);
+ } else if (android::base::ConsumePrefix(&name, "remount:")) {
+- std::string cmd = "/system/bin/remount ";
++ std::string cmd = "/sbin/remount ";
+ cmd += name;
+ return StartSubprocess(cmd, nullptr, SubprocessType::kRaw, SubprocessProtocol::kNone);
+ } else if (android::base::ConsumePrefix(&name, "reboot:")) {
+@@ -303,7 +302,6 @@ unique_fd daemon_service_to_fd(std::string_view name, atransport* transport) {
+ } else if (name.starts_with("usb:")) {
+ return create_service_thread("usb", restart_usb_service);
+ }
+-#endif
+
+ if (android::base::ConsumePrefix(&name, "dev:")) {
+ return unique_fd{unix_open(name, O_RDWR | O_CLOEXEC)};
+diff --git a/system/core/adb/daemon/shell_service.cpp b/system/core/adb/daemon/shell_service.cpp
+index f62032d0..ebcfe18d 100644
+--- a/system/core/adb/daemon/shell_service.cpp
++++ b/system/core/adb/daemon/shell_service.cpp
+@@ -273,13 +273,16 @@ bool Subprocess::ForkAndExec(std::string* error) {
+ env["HOSTNAME"] = GetHostName();
+ env["LOGNAME"] = pw->pw_name;
+ env["SHELL"] = pw->pw_shell;
+- env["TMPDIR"] = "/data/local/tmp";
+ env["USER"] = pw->pw_name;
+ }
+
+ if (!terminal_type_.empty()) {
+ env["TERM"] = terminal_type_;
+ }
++ if (env.find("PS1") == env.end()) {
++ env["PS1"] = "\\h:\\w\\$ ";
++ }
++
+
+ std::vector<std::string> joined_env;
+ for (const auto& it : env) {
+diff --git a/system/core/adb/types.h b/system/core/adb/types.h
+index c619fffc..f8e0f521 100644
+--- a/system/core/adb/types.h
++++ b/system/core/adb/types.h
+@@ -22,6 +22,7 @@
+ #include <memory>
+ #include <utility>
+ #include <vector>
++#include <string.h>
+
+ #include <android-base/logging.h>
+
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch
new file mode 100644
index 0000000000..b719acec4c
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch
@@ -0,0 +1,375 @@
+From fe211cbc305a9316c1d4da2f086d6a50f1c92188 Mon Sep 17 00:00:00 2001
+From: Etienne Cordonnier <ecordonnier@snap.com>
+Date: Fri, 17 Mar 2023 10:33:11 +0100
+Subject: [PATCH] android-tools: modifications to make it build in yocto
+
+- Fix relocation errors on aarch64, e.g.:
+"relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_ZTV19SparseFileBufSource' which may bind externally can not be used when making a shared object; recompile with -fPIC"
+
+- use ln -f to avoid error "File exists" on incremental builds
+
+- fix missing headers
+
+Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
+
+---
+Upstream-Status: Pending
+
+ debian/external/boringssl/libcrypto.mk | 1 +
+ debian/system/core/append2simg.mk | 2 +-
+ debian/system/core/fastboot.mk | 2 +-
+ debian/system/core/img2simg.mk | 2 +-
+ debian/system/core/libbacktrace.mk | 8 ++++----
+ debian/system/core/libbase.mk | 5 +++--
+ debian/system/core/libcutils.mk | 5 +++--
+ debian/system/core/liblog.mk | 3 ++-
+ debian/system/core/libsparse.mk | 5 +++--
+ debian/system/core/libutils.mk | 2 +-
+ debian/system/core/libziparchive.mk | 5 +++--
+ debian/system/core/simg2img.mk | 2 +-
+ debian/system/core/simg2simg.mk | 2 +-
+ frameworks/native/libs/adbd_auth/adbd_auth.cpp | 2 ++
+ system/core/adb/adb_listeners.cpp | 12 ++++++------
+ system/core/adb/transport_local.cpp | 2 +-
+ 16 files changed, 34 insertions(+), 26 deletions(-)
+
+diff --git a/debian/external/boringssl/libcrypto.mk b/debian/external/boringssl/libcrypto.mk
+index c0ea54f4..b3a77bfd 100644
+--- a/debian/external/boringssl/libcrypto.mk
++++ b/debian/external/boringssl/libcrypto.mk
+@@ -27,6 +27,7 @@ CPPFLAGS += \
+ -DBORINGSSL_IMPLEMENTATION \
+ -DBORINGSSL_SHARED_LIBRARY \
+ -DOPENSSL_SMALL \
++ -DOPENSSL_NO_ASM \
+ -Iexternal/boringssl/src/crypto \
+ -Iexternal/boringssl/src/include \
+
+diff --git a/debian/system/core/append2simg.mk b/debian/system/core/append2simg.mk
+index 1599bdb8..598c751d 100644
+--- a/debian/system/core/append2simg.mk
++++ b/debian/system/core/append2simg.mk
+@@ -11,7 +11,7 @@ CPPFLAGS += \
+
+ LDFLAGS += \
+ -Ldebian/out/system/core \
+- -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \
++ -Wl,-rpath='$$ORIGIN/../lib/android' \
+ -lbase \
+ -llog \
+ -lpthread \
+diff --git a/debian/system/core/fastboot.mk b/debian/system/core/fastboot.mk
+index d5c9a285..a59ba1a4 100644
+--- a/debian/system/core/fastboot.mk
++++ b/debian/system/core/fastboot.mk
+@@ -49,7 +49,7 @@ CPPFLAGS += \
+
+ LDFLAGS += \
+ -Ldebian/out/system/core \
+- -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \
++ -Wl,-rpath='$$ORIGIN/../lib/android' \
+ -fuse-ld=gold \
+ -lbase \
+ -lcutils \
+diff --git a/debian/system/core/img2simg.mk b/debian/system/core/img2simg.mk
+index 11adf014..8baf5ba5 100644
+--- a/debian/system/core/img2simg.mk
++++ b/debian/system/core/img2simg.mk
+@@ -11,7 +11,7 @@ CPPFLAGS += \
+
+ LDFLAGS += \
+ -Ldebian/out/system/core \
+- -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \
++ -Wl,-rpath='$$ORIGIN/../lib/android' \
+ -lbase \
+ -llog \
+ -lpthread \
+diff --git a/debian/system/core/libbacktrace.mk b/debian/system/core/libbacktrace.mk
+index e3411d76..86e69874 100644
+--- a/debian/system/core/libbacktrace.mk
++++ b/debian/system/core/libbacktrace.mk
+@@ -1,4 +1,4 @@
+-include /usr/share/dpkg/architecture.mk
++include rules_yocto.mk
+
+ NAME = libbacktrace
+
+@@ -83,10 +84,9 @@ CPPFLAGS += \
+ LDFLAGS += \
+ -L/usr/lib/p7zip \
+ -Ldebian/out/system/core \
+- -Wl,-rpath=/usr/lib/p7zip \
+- -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \
++ -Wl,-rpath='$$ORIGIN' \
+ -Wl,-soname,$(NAME).so.0 \
+- -l:7z.so \
++ -l7z \
+ -lbase \
+ -llog \
+ -lpthread \
+@@ -101,7 +101,7 @@ endif
+ build: $(OBJECTS_CXX) $(OBJECTS_ASSEMBLY) debian/out/external/libunwind/libunwind.a
+ mkdir -p debian/out/system/core
+ $(CXX) $^ -o debian/out/system/core/$(NAME).so.0 $(LDFLAGS)
+- cd debian/out/system/core && ln -s $(NAME).so.0 $(NAME).so
++ cd debian/out/system/core && ln -sf $(NAME).so.0 $(NAME).so
+
+ $(OBJECTS_CXX): %.o: %.cpp
+ $(CXX) -c -o $@ $< $(CXXFLAGS) $(CPPFLAGS)
+diff --git a/debian/system/core/libbase.mk b/debian/system/core/libbase.mk
+index d2b074ba..8a90d6de 100644
+--- a/debian/system/core/libbase.mk
++++ b/debian/system/core/libbase.mk
+@@ -1,3 +1,4 @@
++include rules_yocto.mk
+ NAME = libbase
+
+ SOURCES = \
+@@ -30,7 +31,7 @@ CPPFLAGS += \
+
+ LDFLAGS += \
+ -Ldebian/out/system/core \
+- -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \
++ -Wl,-rpath='$$ORIGIN' \
+ -Wl,-soname,$(NAME).so.0 \
+ -llog \
+ -lpthread \
+@@ -44,7 +45,7 @@ endif
+
+ build: $(OBJECTS)
+ $(CXX) $^ -o debian/out/system/core/$(NAME).so.0 $(LDFLAGS)
+- cd debian/out/system/core && ln -s $(NAME).so.0 $(NAME).so
++ cd debian/out/system/core && ln -sf $(NAME).so.0 $(NAME).so
+
+ $(OBJECTS): %.o: %.cpp
+ $(CXX) -c -o $@ $< $(CXXFLAGS) $(CPPFLAGS)
+diff --git a/debian/system/core/libcutils.mk b/debian/system/core/libcutils.mk
+index 9d928b56..c22b0965 100644
+--- a/debian/system/core/libcutils.mk
++++ b/debian/system/core/libcutils.mk
+@@ -1,3 +1,4 @@
++include rules_yocto.mk
+ NAME = libcutils
+
+ libcutils_nonwindows_sources = \
+@@ -47,7 +48,7 @@ CPPFLAGS += \
+
+ LDFLAGS += \
+ -Ldebian/out/system/core \
+- -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \
++ -Wl,-rpath='$$ORIGIN' \
+ -Wl,-soname,$(NAME).so.0 \
+ -lbase \
+ -llog \
+@@ -56,7 +57,7 @@ LDFLAGS += \
+
+ build: $(OBJECTS_C) $(OBJECTS_CXX)
+ $(CXX) $^ -o debian/out/system/core/$(NAME).so.0 $(LDFLAGS)
+- cd debian/out/system/core && ln -s $(NAME).so.0 $(NAME).so
++ cd debian/out/system/core && ln -sf $(NAME).so.0 $(NAME).so
+
+ $(OBJECTS_C): %.o: %.c
+ $(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS)
+diff --git a/debian/system/core/liblog.mk b/debian/system/core/liblog.mk
+index f8c3d7fe..34a07341 100644
+--- a/debian/system/core/liblog.mk
++++ b/debian/system/core/liblog.mk
+@@ -1,3 +1,4 @@
++include rules_yocto.mk
+ NAME = liblog
+
+ liblog_sources = \
+@@ -35,7 +36,7 @@ LDFLAGS += \
+ build: $(OBJECTS)
+ mkdir -p debian/out/system/core
+ $(CXX) $^ -o debian/out/system/core/$(NAME).so.0 $(LDFLAGS)
+- cd debian/out/system/core && ln -s $(NAME).so.0 $(NAME).so
++ cd debian/out/system/core && ln -sf $(NAME).so.0 $(NAME).so
+
+ $(OBJECTS): %.o: %.cpp
+ $(CXX) -c -o $@ $< $(CXXFLAGS) $(CPPFLAGS)
+diff --git a/debian/system/core/libsparse.mk b/debian/system/core/libsparse.mk
+index c2b2694c..2da12b8e 100644
+--- a/debian/system/core/libsparse.mk
++++ b/debian/system/core/libsparse.mk
+@@ -1,3 +1,4 @@
++include rules_yocto.mk
+ NAME = libsparse
+
+ SOURCES = \
+@@ -19,7 +20,7 @@ CPPFLAGS += \
+
+ LDFLAGS += \
+ -Ldebian/out/system/core \
+- -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \
++ -Wl,-rpath='$$ORIGIN' \
+ -Wl,-soname,$(NAME).so.0 \
+ -lbase \
+ -lz \
+@@ -27,7 +28,7 @@ LDFLAGS += \
+
+ build: $(OBJECTS)
+ $(CXX) $^ -o debian/out/system/core/$(NAME).so.0 $(LDFLAGS)
+- cd debian/out/system/core && ln -s $(NAME).so.0 $(NAME).so
++ cd debian/out/system/core && ln -sf $(NAME).so.0 $(NAME).so
+
+ $(OBJECTS): %.o: %.cpp
+ $(CXX) -c -o $@ $< $(CXXFLAGS) $(CPPFLAGS)
+diff --git a/debian/system/core/libutils.mk b/debian/system/core/libutils.mk
+index c37b1d2d..332492c1 100644
+--- a/debian/system/core/libutils.mk
++++ b/debian/system/core/libutils.mk
+@@ -1,4 +1,4 @@
+-include /usr/share/dpkg/architecture.mk
++include rules_yocto.mk
+
+ NAME = libutils
+
+@@ -41,7 +41,7 @@ CPPFLAGS += \
+
+ LDFLAGS += \
+ -Ldebian/out/system/core \
+- -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \
++ -Wl,-rpath='$$ORIGIN' \
+ -Wl,-soname,$(NAME).so.0 \
+ -lbacktrace \
+ -lcutils \
+diff --git a/debian/system/core/libziparchive.mk b/debian/system/core/libziparchive.mk
+index 1b286b4e..1b7499be 100644
+--- a/debian/system/core/libziparchive.mk
++++ b/debian/system/core/libziparchive.mk
+@@ -1,3 +1,4 @@
++include rules_yocto.mk
+ NAME = libziparchive
+
+ SOURCES = \
+@@ -19,7 +20,7 @@ CPPFLAGS += \
+
+ LDFLAGS += \
+ -Ldebian/out/system/core \
+- -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \
++ -Wl,-rpath='$$ORIGIN' \
+ -Wl,-soname,$(NAME).so.0 \
+ -lbase \
+ -llog \
+@@ -29,7 +30,7 @@ LDFLAGS += \
+
+ build: $(OBJECTS)
+ $(CXX) $^ -o debian/out/system/core/$(NAME).so.0 $(LDFLAGS)
+- cd debian/out/system/core && ln -s $(NAME).so.0 $(NAME).so
++ cd debian/out/system/core && ln -sf $(NAME).so.0 $(NAME).so
+
+ $(OBJECTS): %.o: %.cc
+ $(CXX) -c -o $@ $< $(CXXFLAGS) $(CPPFLAGS)
+diff --git a/debian/system/core/simg2img.mk b/debian/system/core/simg2img.mk
+index f6e3f59d..df4f44f3 100644
+--- a/debian/system/core/simg2img.mk
++++ b/debian/system/core/simg2img.mk
+@@ -13,7 +13,7 @@ CPPFLAGS += \
+
+ LDFLAGS += \
+ -Ldebian/out/system/core \
+- -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \
++ -Wl,-rpath='$$ORIGIN/../lib/android' \
+ -lbase \
+ -llog \
+ -lpthread \
+diff --git a/debian/system/core/simg2simg.mk b/debian/system/core/simg2simg.mk
+index ed53b04c..646ab030 100644
+--- a/debian/system/core/simg2simg.mk
++++ b/debian/system/core/simg2simg.mk
+@@ -13,7 +13,7 @@ CPPFLAGS += \
+
+ LDFLAGS += \
+ -Ldebian/out/system/core \
+- -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \
++ -Wl,-rpath='$$ORIGIN/../lib/android' \
+ -lbase \
+ -llog \
+ -lpthread \
+diff --git a/frameworks/native/libs/adbd_auth/adbd_auth.cpp b/frameworks/native/libs/adbd_auth/adbd_auth.cpp
+index a9c23110..6ca334ba 100644
+--- a/frameworks/native/libs/adbd_auth/adbd_auth.cpp
++++ b/frameworks/native/libs/adbd_auth/adbd_auth.cpp
+@@ -23,8 +23,10 @@
+ #include <sys/eventfd.h>
+ #include <sys/uio.h>
+
++#include <atomic>
+ #include <chrono>
+ #include <deque>
++#include <optional>
+ #include <string>
+ #include <string_view>
+ #include <tuple>
+diff --git a/system/core/adb/adb_listeners.cpp b/system/core/adb/adb_listeners.cpp
+index 29909a55..440cdbd4 100644
+--- a/system/core/adb/adb_listeners.cpp
++++ b/system/core/adb/adb_listeners.cpp
+@@ -109,7 +109,7 @@ static void listener_event_func(int _fd, unsigned ev, void* _l)
+ }
+
+ // Called as a transport disconnect function. |arg| is the raw alistener*.
+-static void listener_disconnect(void* arg, atransport*) EXCLUDES(listener_list_mutex) {
++static void listener_disconnect(void* arg, atransport*) {
+ std::lock_guard<std::mutex> lock(listener_list_mutex);
+ for (auto iter = listener_list.begin(); iter != listener_list.end(); ++iter) {
+ if (iter->get() == arg) {
+@@ -121,7 +121,7 @@ static void listener_disconnect(void* arg, atransport*) EXCLUDES(listener_list_m
+ }
+
+ // Write the list of current listeners (network redirections) into a string.
+-std::string format_listeners() EXCLUDES(listener_list_mutex) {
++std::string format_listeners() {
+ std::lock_guard<std::mutex> lock(listener_list_mutex);
+ std::string result;
+ for (auto& l : listener_list) {
+@@ -140,7 +140,7 @@ std::string format_listeners() EXCLUDES(listener_list_mutex) {
+ }
+
+ InstallStatus remove_listener(const char* local_name, atransport* transport)
+- EXCLUDES(listener_list_mutex) {
++{
+ std::lock_guard<std::mutex> lock(listener_list_mutex);
+ for (auto iter = listener_list.begin(); iter != listener_list.end(); ++iter) {
+ if (local_name == (*iter)->local_name) {
+@@ -151,7 +151,7 @@ InstallStatus remove_listener(const char* local_name, atransport* transport)
+ return INSTALL_STATUS_LISTENER_NOT_FOUND;
+ }
+
+-void remove_all_listeners() EXCLUDES(listener_list_mutex) {
++void remove_all_listeners() {
+ std::lock_guard<std::mutex> lock(listener_list_mutex);
+ auto iter = listener_list.begin();
+ while (iter != listener_list.end()) {
+@@ -164,7 +164,7 @@ void remove_all_listeners() EXCLUDES(listener_list_mutex) {
+ }
+ }
+
+-void close_smartsockets() EXCLUDES(listener_list_mutex) {
++void close_smartsockets() {
+ std::lock_guard<std::mutex> lock(listener_list_mutex);
+ auto pred = [](const std::unique_ptr<alistener>& listener) {
+ return listener->local_name == "*smartsocket*";
+@@ -174,7 +174,7 @@ void close_smartsockets() EXCLUDES(listener_list_mutex) {
+
+ InstallStatus install_listener(const std::string& local_name, const char* connect_to,
+ atransport* transport, int no_rebind, int* resolved_tcp_port,
+- std::string* error) EXCLUDES(listener_list_mutex) {
++ std::string* error) {
+ std::lock_guard<std::mutex> lock(listener_list_mutex);
+ for (auto& l : listener_list) {
+ if (local_name == l->local_name) {
+diff --git a/system/core/adb/transport_local.cpp b/system/core/adb/transport_local.cpp
+index c7261860..5988ec4d 100644
+--- a/system/core/adb/transport_local.cpp
++++ b/system/core/adb/transport_local.cpp
+@@ -333,7 +333,7 @@ struct EmulatorConnection : public FdConnection {
+
+ /* Only call this function if you already hold local_transports_lock. */
+ static atransport* find_emulator_transport_by_adb_port_locked(int adb_port)
+- REQUIRES(local_transports_lock) {
++{
+ auto it = local_transports.find(adb_port);
+ if (it == local_transports.end()) {
+ return nullptr;
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0003-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0003-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch
new file mode 100644
index 0000000000..ea934f44d8
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0003-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch
@@ -0,0 +1,128 @@
+From 02b6b6977d80af4b9b806054fadb5a06cedf011d Mon Sep 17 00:00:00 2001
+From: Etienne Cordonnier <ecordonnier@snap.com>
+Date: Tue, 14 Mar 2023 11:33:50 +0100
+Subject: [PATCH] Update usage of usbdevfs_urb to match new kernel UAPI
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Linux kernel API has been changed by commit 94dfc73e7cf4 ("treewide: uapi: Replace zero-length arrays with flexible-array members")
+where zero-length array iso_frame_desc in struct usbdevfs_urb was replaced with a proper flexible-array member.
+
+Current USB API usage causes a compilation error at Linux 6.0:
+
+In file included from /home/mae/.cache/kiss/proc/121205/build/android-tools/vendor/adb/client/usb_linux.cpp:28:
+/usr/include/linux/usbdevice_fs.h:134:41: error: flexible array member ‘usbdevfs_urb::iso_frame_desc’ not at end of ‘struct usb_handle’
+ 134 | struct usbdevfs_iso_packet_desc iso_frame_desc[];
+ | ^~~~~~~~~~~~~~
+/home/mae/.cache/kiss/proc/121205/build/android-tools/vendor/adb/client/usb_linux.cpp:76:18: note: next member ‘usbdevfs_urb usb_handle::urb_out’ declared here
+ 76 | usbdevfs_urb urb_out;
+ | ^~~~~~~
+/home/mae/.cache/kiss/proc/121205/build/android-tools/vendor/adb/client/usb_linux.cpp:61:8: note: in the definition of ‘struct usb_handle’
+ 61 | struct usb_handle {
+ | ^~~~~~~~~~
+
+Fix it by using pointers to a struct with flexible-array members.
+Current fix works both with the old and the new API.
+
+See https://github.com/nmeum/android-tools/issues/74 for more context.
+
+Tested: built on Linux against kernel 5.19 and 6.0; 'adb shell' over USB
+cable
+Acked-by: Gustavo A. R. Silva gustavoars@kernel.org
+Change-Id: I7f0f7b35d9a3ab980d3520b541b60c7857a6b101
+Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
+
+[Backported on version 10]
+Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
+
+---
+Upstream-Status: Pending
+
+ system/core/adb/client/usb_linux.cpp | 24 ++++++++++++++----------
+ 1 file changed, 14 insertions(+), 10 deletions(-)
+
+diff --git a/system/core/adb/client/usb_linux.cpp b/system/core/adb/client/usb_linux.cpp
+index 343e7b59..6a4479f3 100644
+--- a/system/core/adb/client/usb_linux.cpp
++++ b/system/core/adb/client/usb_linux.cpp
+@@ -71,8 +71,8 @@ struct usb_handle : public ::usb_handle {
+ unsigned zero_mask;
+ unsigned writeable = 1;
+
+- usbdevfs_urb urb_in;
+- usbdevfs_urb urb_out;
++ usbdevfs_urb *urb_in;
++ usbdevfs_urb *urb_out;
+
+ bool urb_in_busy = false;
+ bool urb_out_busy = false;
+@@ -305,7 +305,7 @@ static int usb_bulk_write(usb_handle* h, const void* data, int len) {
+ std::unique_lock<std::mutex> lock(h->mutex);
+ D("++ usb_bulk_write ++");
+
+- usbdevfs_urb* urb = &h->urb_out;
++ usbdevfs_urb* urb = h->urb_out;
+ memset(urb, 0, sizeof(*urb));
+ urb->type = USBDEVFS_URB_TYPE_BULK;
+ urb->endpoint = h->ep_out;
+@@ -344,7 +344,7 @@ static int usb_bulk_read(usb_handle* h, void* data, int len) {
+ std::unique_lock<std::mutex> lock(h->mutex);
+ D("++ usb_bulk_read ++");
+
+- usbdevfs_urb* urb = &h->urb_in;
++ usbdevfs_urb* urb = h->urb_in;
+ memset(urb, 0, sizeof(*urb));
+ urb->type = USBDEVFS_URB_TYPE_BULK;
+ urb->endpoint = h->ep_in;
+@@ -389,7 +389,7 @@ static int usb_bulk_read(usb_handle* h, void* data, int len) {
+ }
+ D("[ urb @%p status = %d, actual = %d ]", out, out->status, out->actual_length);
+
+- if (out == &h->urb_in) {
++ if (out == h->urb_in) {
+ D("[ reap urb - IN complete ]");
+ h->urb_in_busy = false;
+ if (urb->status != 0) {
+@@ -398,7 +398,7 @@ static int usb_bulk_read(usb_handle* h, void* data, int len) {
+ }
+ return urb->actual_length;
+ }
+- if (out == &h->urb_out) {
++ if (out == h->urb_out) {
+ D("[ reap urb - OUT compelete ]");
+ h->urb_out_busy = false;
+ h->cv.notify_all();
+@@ -502,10 +502,10 @@ void usb_kick(usb_handle* h) {
+ ** but this ensures that a reader blocked on REAPURB
+ ** will get unblocked
+ */
+- ioctl(h->fd, USBDEVFS_DISCARDURB, &h->urb_in);
+- ioctl(h->fd, USBDEVFS_DISCARDURB, &h->urb_out);
+- h->urb_in.status = -ENODEV;
+- h->urb_out.status = -ENODEV;
++ ioctl(h->fd, USBDEVFS_DISCARDURB, h->urb_in);
++ ioctl(h->fd, USBDEVFS_DISCARDURB, h->urb_out);
++ h->urb_in->status = -ENODEV;
++ h->urb_out->status = -ENODEV;
+ h->urb_in_busy = false;
+ h->urb_out_busy = false;
+ h->cv.notify_all();
+@@ -521,6 +521,8 @@ int usb_close(usb_handle* h) {
+
+ D("-- usb close %p (fd = %d) --", h, h->fd);
+
++ delete h->urb_in;
++ delete h->urb_out;
+ delete h;
+
+ return 0;
+@@ -556,6 +558,8 @@ static void register_device(const char* dev_name, const char* dev_path, unsigned
+ usb->ep_out = ep_out;
+ usb->zero_mask = zero_mask;
+ usb->max_packet_size = max_packet_size;
++ usb->urb_in = new usbdevfs_urb;
++ usb->urb_out = new usbdevfs_urb;
+
+ // Initialize mark so we don't get garbage collected after the device scan.
+ usb->mark = true;
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0004-adb-Fix-build-on-big-endian-systems.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0004-adb-Fix-build-on-big-endian-systems.patch
new file mode 100644
index 0000000000..c82423908f
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0004-adb-Fix-build-on-big-endian-systems.patch
@@ -0,0 +1,50 @@
+From e4a29888cb52c1eafd3ab57a6e220b38147ecfbe Mon Sep 17 00:00:00 2001
+From: Etienne Cordonnier <ecordonnier@snap.com>
+Date: Tue, 14 Mar 2023 13:39:23 +0100
+Subject: [PATCH] adb: Fix build on big endian systems
+
+The usb_linux_client.c file defines cpu_to_le16/32 by using the C
+library htole16/32 function calls. However, cpu_to_le16/32 are used
+when initializing structures, i.e in a context where a function call
+is not allowed.
+
+It works fine on little endian systems because htole16/32 are defined
+by the C library as no-ops. But on big-endian systems, they are
+actually doing something, which might involve calling a function,
+causing build failures.
+
+To solve this, we simply open-code cpu_to_le16/32 in a way that allows
+them to be used when initializing structures.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+[Forward-ported to version 29]
+Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
+
+---
+Upstream-Status: Pending
+
+ system/core/adb/daemon/usb_ffs.cpp | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/system/core/adb/daemon/usb_ffs.cpp b/system/core/adb/daemon/usb_ffs.cpp
+index b19fa5d5..ef2291ca 100644
+--- a/system/core/adb/daemon/usb_ffs.cpp
++++ b/system/core/adb/daemon/usb_ffs.cpp
+@@ -39,8 +39,15 @@
+
+ #define USB_EXT_PROP_UNICODE 1
+
+-#define cpu_to_le16(x) htole16(x)
+-#define cpu_to_le32(x) htole32(x)
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++# define cpu_to_le16(x) (x)
++# define cpu_to_le32(x) (x)
++#else
++# define cpu_to_le16(x) ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
++# define cpu_to_le32(x) \
++ ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \
++ (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
++#endif
+
+ // clang-format off
+ struct func_desc {
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0005-adb-Allow-adbd-to-be-run-as-root.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0005-adb-Allow-adbd-to-be-run-as-root.patch
new file mode 100644
index 0000000000..dfbdc2af66
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0005-adb-Allow-adbd-to-be-run-as-root.patch
@@ -0,0 +1,25 @@
+From 4ef35041ba5c02df48c31f2382e7c3c4316ad936 Mon Sep 17 00:00:00 2001
+From: Etienne Cordonnier <ecordonnier@snap.com>
+Date: Tue, 14 Mar 2023 13:53:51 +0100
+Subject: [PATCH] adb: Allow adbd to be run as root
+
+Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
+
+---
+Upstream-Status: Pending
+
+ system/core/adb/daemon/main.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/system/core/adb/daemon/main.cpp b/system/core/adb/daemon/main.cpp
+index e807d13d..309663a2 100644
+--- a/system/core/adb/daemon/main.cpp
++++ b/system/core/adb/daemon/main.cpp
+@@ -75,6 +75,7 @@ static bool should_drop_capabilities_bounding_set() {
+ }
+
+ static bool should_drop_privileges() {
++ return true;
+ // "adb root" not allowed, always drop privileges.
+ if (!ALLOW_ADBD_ROOT && !is_device_unlocked()) return true;
+
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/adbd.mk b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/adbd.mk
new file mode 100644
index 0000000000..3282216b8e
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/adbd.mk
@@ -0,0 +1,87 @@
+include rules_yocto.mk
+NAME = adbd
+
+SOURCES = \
+ adb/adbconnection/adbconnection_server.cpp \
+ adb/daemon/auth.cpp \
+ adb/daemon/file_sync_service.cpp \
+ adb/daemon/file_sync_service.h \
+ adb/daemon/framebuffer_service.cpp \
+ adb/daemon/framebuffer_service.h \
+ adb/daemon/jdwp_service.cpp \
+ adb/daemon/main.cpp \
+ adb/daemon/restart_service.cpp \
+ adb/daemon/restart_service.h \
+ adb/daemon/services.cpp \
+ adb/daemon/shell_service.cpp \
+ adb/daemon/shell_service.h \
+ adb/daemon/usb_ffs.cpp \
+ adb/daemon/usb_legacy.cpp \
+ adb/daemon/usb.cpp \
+ adb/shell_service_protocol.cpp \
+ adb/adb.cpp \
+ adb/adb_io.cpp \
+ adb/adb_listeners.cpp \
+ adb/adb_trace.cpp \
+ adb/adb_unique_fd.cpp \
+ adb/adb_utils.cpp \
+ adb/fdevent/fdevent.cpp \
+ adb/fdevent/fdevent_epoll.cpp \
+ adb/services.cpp \
+ adb/sockets.cpp \
+ adb/socket_spec.cpp \
+ adb/sysdeps/errno.cpp \
+ adb/sysdeps/posix/network.cpp \
+ adb/sysdeps_unix.cpp \
+ adb/transport.cpp \
+ adb/transport_fd.cpp \
+ adb/transport_local.cpp \
+ adb/transport_usb.cpp \
+ adb/types.cpp \
+ diagnose_usb/diagnose_usb.cpp \
+ libasyncio/AsyncIO.cpp \
+
+SOURCES := $(foreach source, $(SOURCES), system/core/$(source))
+
+SOURCES += \
+ frameworks/native/libs/adbd_auth/adbd_auth.cpp
+
+CXXFLAGS += -std=gnu++20
+CPPFLAGS += -Isystem/coreinclude -Isystem/core/adb -Isystem/core/base/include -Idebian/out/system/core -Isystem/tools/mkbootimg/include/bootimg -Isystem/core/fs_mgr/include \
+ -Isystem/core/fs_mgr/include_fstab \
+ -DADB_VERSION='"$(DEB_VERSION)"' -D_GNU_SOURCE
+LDFLAGS += -Wl,-rpath='$$ORIGIN/../lib/android' -Wl,-rpath-link='$$ORIGIN/../lib/android' \
+ -lpthread -Ldebian/out/system/core -Ldebian/out/external/boringssl -lbase -lcrypto_utils -l:libcrypto.a -lcutils -llog -lresolv
+
+PAGE_SIZE ?= 4096
+
+CXXFLAGS += -UADB_HOST
+CXXFLAGS += -DADB_HOST=0
+CXXFLAGS += -DALLOW_ADBD_DISABLE_VERITY
+CXXFLAGS += -DALLOW_ADBD_NO_AUTH
+CXXFLAGS += -DPLATFORM_TOOLS_VERSION='"28.0.2"'
+CXXFLAGS += -Isystem/core/diagnose_usb/include
+CXXFLAGS += -Isystem/core/adb/daemon/include
+CXXFLAGS += -Isystem/core/adb/adbconnection/include
+CXXFLAGS += -Isystem/core/libasyncio/include
+CXXFLAGS += -Isystem/core/libcutils/include
+CXXFLAGS += -Isystem/core/libcrypto_utils/include
+CXXFLAGS += -Isystem/core/liblog/include/
+CXXFLAGS += -Isystem/core/libutils/include
+CXXFLAGS += -Iframeworks/native/libs/adbd_auth/include
+CXXFLAGS += -Wno-c++11-narrowing
+CXXFLAGS += -DPAGE_SIZE=$(PAGE_SIZE)
+
+
+# -latomic should be the last library specified
+# https://github.com/android/ndk/issues/589
+ifneq ($(filter armel mipsel,$(DEB_HOST_ARCH)),)
+ LDFLAGS += -latomic
+endif
+
+build: $(SOURCES)
+ mkdir --parents debian/out/system/core
+ $(CXX) $^ -o debian/out/system/core/adbd $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
+
+clean:
+ $(RM) debian/out/system/core/adbd
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/android-tools-adbd.service b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/android-tools-adbd.service
new file mode 100644
index 0000000000..ddf8d7f74e
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/android-tools-adbd.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Android Debug Bridge
+ConditionPathExists=/var/usb-debugging-enabled
+Before=android-system.service
+
+[Service]
+Type=simple
+Restart=on-failure
+ExecStartPre=-/usr/bin/android-gadget-setup adb
+ExecStart=/usr/bin/adbd
+
+[Install]
+WantedBy=basic.target
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Add-riscv64-support.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Add-riscv64-support.patch
new file mode 100644
index 0000000000..9fd0fa792c
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Add-riscv64-support.patch
@@ -0,0 +1,653 @@
+From: Guo Ren <guoren@linux.alibaba.com>
+Date: Wed, 29 Jun 2022 16:46:46 +0800
+Subject: Add riscv64 support
+
+This patch contains the dwarf unwind support for 64bit risc-v.
+
+ * DwarfCfa.cpp (cfa_def_cfa_register): setup register if CFA_REG is
+ not setup for riscv64
+ * Elf.cpp (GetRelPc): convert offset to virtual address for riscv64.
+ * ElfInterface.cpp (GetVirtAddrFromOffset): New for riscv64.
+ * RegsRiscv64.cpp (StepIfSignalHandler): Fix signal frame check.
+ libunwindstack/include/unwindstack/
+ * ElfInterface.h (GetVirtAddrFromOffset): New for riscv64.
+ libunwindstack/tests/
+ * DwarfCfaTest.cpp (cfa_def_cfa_register): ok for riscv64.
+ * RegsStepIfSignalHandlerTest.cpp (riscv64_step_if_signal_handler): Fix
+ testcase for riscv64
+
+Test: Builds.
+Test: All unit tests pass.
+
+Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
+Signed-off-by: Lifang Xia <lifang_xia@linux.alibaba.com>
+Signed-off-by: Mao Han <han_mao@linux.alibaba.com>
+Change-Id: Ib21ddf23cc83f332af202df7bffcaceec16063e0
+---
+Upstream-Status: Pending
+
+ system/core/libunwindstack/Android.bp | 1 +
+ system/core/libunwindstack/Elf.cpp | 2 +
+ system/core/libunwindstack/Regs.cpp | 10 ++
+ system/core/libunwindstack/RegsRiscv64.cpp | 156 +++++++++++++++++++++
+ .../core/libunwindstack/include/unwindstack/Elf.h | 5 +
+ .../include/unwindstack/MachineRiscv64.h | 59 ++++++++
+ .../include/unwindstack/RegsGetLocal.h | 43 ++++++
+ .../include/unwindstack/RegsRiscv64.h | 59 ++++++++
+ .../include/unwindstack/UcontextRiscv64.h | 80 +++++++++++
+ .../include/unwindstack/UserRiscv64.h | 37 +++++
+ system/core/libunwindstack/tools/unwind.cpp | 3 +
+ .../core/libunwindstack/tools/unwind_symbols.cpp | 3 +
+ 12 files changed, 458 insertions(+)
+ create mode 100644 system/core/libunwindstack/RegsRiscv64.cpp
+ create mode 100644 system/core/libunwindstack/include/unwindstack/MachineRiscv64.h
+ create mode 100644 system/core/libunwindstack/include/unwindstack/RegsRiscv64.h
+ create mode 100644 system/core/libunwindstack/include/unwindstack/UcontextRiscv64.h
+ create mode 100644 system/core/libunwindstack/include/unwindstack/UserRiscv64.h
+
+diff --git a/system/core/libunwindstack/Android.bp b/system/core/libunwindstack/Android.bp
+index 3695f72..f1f9c68 100644
+--- a/system/core/libunwindstack/Android.bp
++++ b/system/core/libunwindstack/Android.bp
+@@ -70,6 +70,7 @@ cc_library {
+ "RegsArm64.cpp",
+ "RegsX86.cpp",
+ "RegsX86_64.cpp",
++ "RegsRiscv64.cpp",
+ "RegsMips.cpp",
+ "RegsMips64.cpp",
+ "Unwinder.cpp",
+diff --git a/system/core/libunwindstack/Elf.cpp b/system/core/libunwindstack/Elf.cpp
+index f01b092..3c2088b 100644
+--- a/system/core/libunwindstack/Elf.cpp
++++ b/system/core/libunwindstack/Elf.cpp
+@@ -290,6 +290,8 @@ ElfInterface* Elf::CreateInterfaceFromMemory(Memory* memory) {
+ arch_ = ARCH_X86_64;
+ } else if (e_machine == EM_MIPS) {
+ arch_ = ARCH_MIPS64;
++ } else if (e_machine == EM_RISCV) {
++ arch_ = ARCH_RISCV64;
+ } else {
+ // Unsupported.
+ ALOGI("64 bit elf that is neither aarch64 nor x86_64 nor mips64: e_machine = %d\n",
+diff --git a/system/core/libunwindstack/Regs.cpp b/system/core/libunwindstack/Regs.cpp
+index c7dec52..447a554 100644
+--- a/system/core/libunwindstack/Regs.cpp
++++ b/system/core/libunwindstack/Regs.cpp
+@@ -27,12 +27,14 @@
+ #include <unwindstack/RegsArm64.h>
+ #include <unwindstack/RegsMips.h>
+ #include <unwindstack/RegsMips64.h>
++#include <unwindstack/RegsRiscv64.h>
+ #include <unwindstack/RegsX86.h>
+ #include <unwindstack/RegsX86_64.h>
+ #include <unwindstack/UserArm.h>
+ #include <unwindstack/UserArm64.h>
+ #include <unwindstack/UserMips.h>
+ #include <unwindstack/UserMips64.h>
++#include <unwindstack/UserRiscv64.h>
+ #include <unwindstack/UserX86.h>
+ #include <unwindstack/UserX86_64.h>
+
+@@ -67,6 +69,8 @@ Regs* Regs::RemoteGet(pid_t pid) {
+ return RegsMips::Read(buffer.data());
+ case sizeof(mips64_user_regs):
+ return RegsMips64::Read(buffer.data());
++ case sizeof(riscv64_user_regs):
++ return RegsRiscv64::Read(buffer.data());
+ }
+ return nullptr;
+ }
+@@ -85,6 +89,8 @@ Regs* Regs::CreateFromUcontext(ArchEnum arch, void* ucontext) {
+ return RegsMips::CreateFromUcontext(ucontext);
+ case ARCH_MIPS64:
+ return RegsMips64::CreateFromUcontext(ucontext);
++ case ARCH_RISCV64:
++ return RegsRiscv64::CreateFromUcontext(ucontext);
+ case ARCH_UNKNOWN:
+ default:
+ return nullptr;
+@@ -104,6 +110,8 @@ ArchEnum Regs::CurrentArch() {
+ return ARCH_MIPS;
+ #elif defined(__mips__) && defined(__LP64__)
+ return ARCH_MIPS64;
++#elif defined(__riscv)
++ return ARCH_RISCV64;
+ #else
+ abort();
+ #endif
+@@ -123,6 +131,8 @@ Regs* Regs::CreateFromLocal() {
+ regs = new RegsMips();
+ #elif defined(__mips__) && defined(__LP64__)
+ regs = new RegsMips64();
++#elif defined(__riscv)
++ regs = new RegsRiscv64();
+ #else
+ abort();
+ #endif
+diff --git a/system/core/libunwindstack/RegsRiscv64.cpp b/system/core/libunwindstack/RegsRiscv64.cpp
+new file mode 100644
+index 0000000..887762a
+--- /dev/null
++++ b/system/core/libunwindstack/RegsRiscv64.cpp
+@@ -0,0 +1,156 @@
++/*
++ * Copyright (C) 2022 The Android Open Source Project
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++#include <stdint.h>
++#include <string.h>
++
++#include <functional>
++
++#include <unwindstack/Elf.h>
++#include <unwindstack/MachineRiscv64.h>
++#include <unwindstack/MapInfo.h>
++#include <unwindstack/Memory.h>
++#include <unwindstack/RegsRiscv64.h>
++#include <unwindstack/UcontextRiscv64.h>
++#include <unwindstack/UserRiscv64.h>
++
++namespace unwindstack {
++
++RegsRiscv64::RegsRiscv64()
++ : RegsImpl<uint64_t>(RISCV64_REG_MAX, Location(LOCATION_REGISTER, RISCV64_REG_RA)) {}
++
++ArchEnum RegsRiscv64::Arch() {
++ return ARCH_RISCV64;
++}
++
++uint64_t RegsRiscv64::pc() {
++ return regs_[RISCV64_REG_PC];
++}
++
++uint64_t RegsRiscv64::sp() {
++ return regs_[RISCV64_REG_SP];
++}
++
++void RegsRiscv64::set_pc(uint64_t pc) {
++ regs_[RISCV64_REG_PC] = pc;
++}
++
++void RegsRiscv64::set_sp(uint64_t sp) {
++ regs_[RISCV64_REG_SP] = sp;
++}
++
++uint64_t RegsRiscv64::GetPcAdjustment(uint64_t rel_pc, Elf*) {
++ if (rel_pc < 8) {
++ return 0;
++ }
++ // For now, just assume no compact branches
++ return 8;
++}
++
++bool RegsRiscv64::SetPcFromReturnAddress(Memory*) {
++ uint64_t ra = regs_[RISCV64_REG_RA];
++ if (regs_[RISCV64_REG_PC] == ra) {
++ return false;
++ }
++
++ regs_[RISCV64_REG_PC] = ra;
++ return true;
++}
++
++void RegsRiscv64::IterateRegisters(std::function<void(const char*, uint64_t)> fn) {
++ fn("pc", regs_[RISCV64_REG_PC]);
++ fn("ra", regs_[RISCV64_REG_RA]);
++ fn("sp", regs_[RISCV64_REG_SP]);
++ fn("gp", regs_[RISCV64_REG_GP]);
++ fn("tp", regs_[RISCV64_REG_TP]);
++ fn("t0", regs_[RISCV64_REG_T0]);
++ fn("t1", regs_[RISCV64_REG_T1]);
++ fn("t2", regs_[RISCV64_REG_T2]);
++ fn("t3", regs_[RISCV64_REG_T3]);
++ fn("t4", regs_[RISCV64_REG_T4]);
++ fn("t5", regs_[RISCV64_REG_T5]);
++ fn("t6", regs_[RISCV64_REG_T6]);
++ fn("s0", regs_[RISCV64_REG_S0]);
++ fn("s1", regs_[RISCV64_REG_S1]);
++ fn("s2", regs_[RISCV64_REG_S2]);
++ fn("s3", regs_[RISCV64_REG_S3]);
++ fn("s4", regs_[RISCV64_REG_S4]);
++ fn("s5", regs_[RISCV64_REG_S5]);
++ fn("s6", regs_[RISCV64_REG_S6]);
++ fn("s7", regs_[RISCV64_REG_S7]);
++ fn("s8", regs_[RISCV64_REG_S8]);
++ fn("s9", regs_[RISCV64_REG_S9]);
++ fn("s10", regs_[RISCV64_REG_S10]);
++ fn("s11", regs_[RISCV64_REG_S11]);
++ fn("a0", regs_[RISCV64_REG_A0]);
++ fn("a1", regs_[RISCV64_REG_A1]);
++ fn("a2", regs_[RISCV64_REG_A2]);
++ fn("a3", regs_[RISCV64_REG_A3]);
++ fn("a4", regs_[RISCV64_REG_A4]);
++ fn("a5", regs_[RISCV64_REG_A5]);
++ fn("a6", regs_[RISCV64_REG_A6]);
++ fn("a7", regs_[RISCV64_REG_A7]);
++}
++
++Regs* RegsRiscv64::Read(void* remote_data) {
++ riscv64_user_regs* user = reinterpret_cast<riscv64_user_regs*>(remote_data);
++
++ RegsRiscv64* regs = new RegsRiscv64();
++ memcpy(regs->RawData(), &user->regs[0], RISCV64_REG_MAX * sizeof(uint64_t));
++ // uint64_t* reg_data = reinterpret_cast<uint64_t*>(regs->RawData());
++ return regs;
++}
++
++Regs* RegsRiscv64::CreateFromUcontext(void* ucontext) {
++ riscv64_ucontext_t* riscv64_ucontext = reinterpret_cast<riscv64_ucontext_t*>(ucontext);
++
++ RegsRiscv64* regs = new RegsRiscv64();
++ memcpy(regs->RawData(), &riscv64_ucontext->uc_mcontext.__gregs[0],
++ RISCV64_REG_MAX * sizeof(uint64_t));
++ return regs;
++}
++
++bool RegsRiscv64::StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) {
++ uint64_t data;
++ Memory* elf_memory = elf->memory();
++ // Read from elf memory since it is usually more expensive to read from
++ // process memory.
++ if (!elf_memory->ReadFully(elf_offset, &data, sizeof(data))) {
++ return false;
++ }
++ // Look for the kernel sigreturn function.
++ // __kernel_rt_sigreturn:
++ // li a7, __NR_rt_sigreturn
++ // scall
++
++ const uint8_t li_scall[] = {0x93, 0x08, 0xb0, 0x08, 0x73, 0x00, 0x00, 0x00};
++ if (memcmp(&data, &li_scall, 8) != 0) {
++ return false;
++ }
++
++ // SP + sizeof(siginfo_t) + uc_mcontext offset + PC offset.
++ if (!process_memory->ReadFully(regs_[RISCV64_REG_SP] + 0x80 + 0xb0 + 0x00, regs_.data(),
++ sizeof(uint64_t) * (RISCV64_REG_MAX))) {
++ return false;
++ }
++ return true;
++}
++
++Regs* RegsRiscv64::Clone() {
++ return new RegsRiscv64(*this);
++}
++
++} // namespace unwindstack
+diff --git a/system/core/libunwindstack/include/unwindstack/Elf.h b/system/core/libunwindstack/include/unwindstack/Elf.h
+index 472ed92..88fa0ff 100644
+--- a/system/core/libunwindstack/include/unwindstack/Elf.h
++++ b/system/core/libunwindstack/include/unwindstack/Elf.h
+@@ -32,6 +32,10 @@
+ #define EM_AARCH64 183
+ #endif
+
++#if !defined(EM_RISCV)
++#define EM_RISCV 243
++#endif
++
+ namespace unwindstack {
+
+ // Forward declaration.
+@@ -46,6 +50,7 @@ enum ArchEnum : uint8_t {
+ ARCH_X86_64,
+ ARCH_MIPS,
+ ARCH_MIPS64,
++ ARCH_RISCV64,
+ };
+
+ class Elf {
+diff --git a/system/core/libunwindstack/include/unwindstack/MachineRiscv64.h b/system/core/libunwindstack/include/unwindstack/MachineRiscv64.h
+new file mode 100644
+index 0000000..397e680
+--- /dev/null
++++ b/system/core/libunwindstack/include/unwindstack/MachineRiscv64.h
+@@ -0,0 +1,59 @@
++/*
++ * Copyright (C) 2022 The Android Open Source Project
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++#pragma once
++
++#include <stdint.h>
++
++namespace unwindstack {
++
++enum Riscv64Reg : uint16_t {
++ RISCV64_REG_PC,
++ RISCV64_REG_RA,
++ RISCV64_REG_SP,
++ RISCV64_REG_GP,
++ RISCV64_REG_TP,
++ RISCV64_REG_T0,
++ RISCV64_REG_T1,
++ RISCV64_REG_T2,
++ RISCV64_REG_S0,
++ RISCV64_REG_S1,
++ RISCV64_REG_A0,
++ RISCV64_REG_A1,
++ RISCV64_REG_A2,
++ RISCV64_REG_A3,
++ RISCV64_REG_A4,
++ RISCV64_REG_A5,
++ RISCV64_REG_A6,
++ RISCV64_REG_A7,
++ RISCV64_REG_S2,
++ RISCV64_REG_S3,
++ RISCV64_REG_S4,
++ RISCV64_REG_S5,
++ RISCV64_REG_S6,
++ RISCV64_REG_S7,
++ RISCV64_REG_S8,
++ RISCV64_REG_S9,
++ RISCV64_REG_S10,
++ RISCV64_REG_S11,
++ RISCV64_REG_T3,
++ RISCV64_REG_T4,
++ RISCV64_REG_T5,
++ RISCV64_REG_T6,
++ RISCV64_REG_MAX,
++};
++
++} // namespace unwindstack
+diff --git a/system/core/libunwindstack/include/unwindstack/RegsGetLocal.h b/system/core/libunwindstack/include/unwindstack/RegsGetLocal.h
+index f0b5e3a..698eba2 100644
+--- a/system/core/libunwindstack/include/unwindstack/RegsGetLocal.h
++++ b/system/core/libunwindstack/include/unwindstack/RegsGetLocal.h
+@@ -81,6 +81,49 @@ inline __attribute__((__always_inline__)) void AsmGetRegs(void* reg_data) {
+ : "x12", "x13", "memory");
+ }
+
++#elif defined(__riscv)
++
++inline __attribute__((__always_inline__)) void AsmGetRegs(void* reg_data) {
++ asm volatile(
++ "1:\n"
++ "sd ra, 8(%[base])\n"
++ "sd sp, 16(%[base])\n"
++ "sd gp, 24(%[base])\n"
++ "sd tp, 32(%[base])\n"
++ "sd t0, 40(%[base])\n"
++ "sd t1, 48(%[base])\n"
++ "sd t2, 56(%[base])\n"
++ "sd s0, 64(%[base])\n"
++ "sd s1, 72(%[base])\n"
++ "sd a0, 80(%[base])\n"
++ "sd a1, 88(%[base])\n"
++ "sd a2, 96(%[base])\n"
++ "sd a3, 104(%[base])\n"
++ "sd a4, 112(%[base])\n"
++ "sd a5, 120(%[base])\n"
++ "sd a6, 128(%[base])\n"
++ "sd a7, 136(%[base])\n"
++ "sd s2, 144(%[base])\n"
++ "sd s3, 152(%[base])\n"
++ "sd s4, 160(%[base])\n"
++ "sd s5, 168(%[base])\n"
++ "sd s6, 176(%[base])\n"
++ "sd s7, 184(%[base])\n"
++ "sd s8, 192(%[base])\n"
++ "sd s9, 200(%[base])\n"
++ "sd s10, 208(%[base])\n"
++ "sd s11, 216(%[base])\n"
++ "sd t3, 224(%[base])\n"
++ "sd t4, 232(%[base])\n"
++ "sd t5, 240(%[base])\n"
++ "sd t6, 248(%[base])\n"
++ "la t1, 1b\n"
++ "sd t1, 0(%[base])\n"
++ : [base] "+r"(reg_data)
++ :
++ : "t1", "memory");
++}
++
+ #elif defined(__i386__) || defined(__x86_64__) || defined(__mips__)
+
+ extern "C" void AsmGetRegs(void* regs);
+diff --git a/system/core/libunwindstack/include/unwindstack/RegsRiscv64.h b/system/core/libunwindstack/include/unwindstack/RegsRiscv64.h
+new file mode 100644
+index 0000000..eb09397
+--- /dev/null
++++ b/system/core/libunwindstack/include/unwindstack/RegsRiscv64.h
+@@ -0,0 +1,59 @@
++/*
++ * Copyright (C) 2022 The Android Open Source Project
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++#pragma once
++
++#include <stdint.h>
++
++#include <functional>
++
++#include <unwindstack/Elf.h>
++#include <unwindstack/Regs.h>
++
++namespace unwindstack {
++
++// Forward declarations.
++class Memory;
++
++class RegsRiscv64 : public RegsImpl<uint64_t> {
++ public:
++ RegsRiscv64();
++ virtual ~RegsRiscv64() = default;
++
++ ArchEnum Arch() override final;
++
++ uint64_t GetPcAdjustment(uint64_t rel_pc, Elf* elf) override;
++
++ bool SetPcFromReturnAddress(Memory* process_memory) override;
++
++ bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
++
++ void IterateRegisters(std::function<void(const char*, uint64_t)>) override final;
++
++ uint64_t pc() override;
++ uint64_t sp() override;
++
++ void set_pc(uint64_t pc) override;
++ void set_sp(uint64_t sp) override;
++
++ Regs* Clone() override final;
++
++ static Regs* Read(void* data);
++
++ static Regs* CreateFromUcontext(void* ucontext);
++};
++
++} // namespace unwindstack
+diff --git a/system/core/libunwindstack/include/unwindstack/UcontextRiscv64.h b/system/core/libunwindstack/include/unwindstack/UcontextRiscv64.h
+new file mode 100644
+index 0000000..c6c82b1
+--- /dev/null
++++ b/system/core/libunwindstack/include/unwindstack/UcontextRiscv64.h
+@@ -0,0 +1,80 @@
++/*
++ * Copyright (C) 2014 The Android Open Source Project
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in
++ * the documentation and/or other materials provided with the
++ * distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
++ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
++ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
++ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ */
++
++#pragma once
++
++#include <sys/cdefs.h>
++
++typedef uint64_t __riscv_mc_gp_state[32]; // unsigned long
++
++struct __riscv_mc_f_ext_state {
++ uint32_t __f[32];
++ uint32_t __fcsr;
++};
++
++struct __riscv_mc_d_ext_state {
++ uint64_t __f[32];
++ uint32_t __fcsr;
++};
++
++struct __riscv_mc_q_ext_state {
++ uint64_t __f[64] __attribute__((__aligned__(16)));
++ uint32_t __fcsr;
++ uint32_t __reserved[3];
++};
++
++union __riscv_mc_fp_state {
++ struct __riscv_mc_f_ext_state __f;
++ struct __riscv_mc_d_ext_state __d;
++ struct __riscv_mc_q_ext_state __q;
++};
++
++struct __riscv_stack_t {
++ uint64_t ss_sp;
++ int32_t ss_flags;
++ uint64_t ss_size;
++};
++
++struct riscv64_sigset_t {
++ uint64_t sig; // unsigned long
++};
++
++struct riscv64_mcontext_t {
++ __riscv_mc_gp_state __gregs;
++ union __riscv_mc_fp_state __fpregs;
++};
++
++struct riscv64_ucontext_t {
++ uint64_t uc_flags; // unsigned long
++ struct riscv64_ucontext_t* uc_link;
++ __riscv_stack_t uc_stack;
++ riscv64_sigset_t uc_sigmask;
++ /* The kernel adds extra padding here to allow sigset_t to grow. */
++ int8_t __padding[128 - sizeof(riscv64_sigset_t)]; // char
++ riscv64_mcontext_t uc_mcontext;
++};
+diff --git a/system/core/libunwindstack/include/unwindstack/UserRiscv64.h b/system/core/libunwindstack/include/unwindstack/UserRiscv64.h
+new file mode 100644
+index 0000000..1e91228
+--- /dev/null
++++ b/system/core/libunwindstack/include/unwindstack/UserRiscv64.h
+@@ -0,0 +1,37 @@
++/*
++ * Copyright (C) 2016 The Android Open Source Project
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in
++ * the documentation and/or other materials provided with the
++ * distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
++ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
++ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
++ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ */
++
++#pragma once
++
++namespace unwindstack {
++
++struct riscv64_user_regs {
++ uint64_t regs[32];
++};
++
++} // namespace unwindstack
+diff --git a/system/core/libunwindstack/tools/unwind.cpp b/system/core/libunwindstack/tools/unwind.cpp
+index 1812e50..ae20891 100644
+--- a/system/core/libunwindstack/tools/unwind.cpp
++++ b/system/core/libunwindstack/tools/unwind.cpp
+@@ -83,6 +83,9 @@ void DoUnwind(pid_t pid) {
+ case unwindstack::ARCH_MIPS64:
+ printf("mips64");
+ break;
++ case unwindstack::ARCH_RISCV64:
++ printf("riscv64");
++ break;
+ default:
+ printf("unknown\n");
+ return;
+diff --git a/system/core/libunwindstack/tools/unwind_symbols.cpp b/system/core/libunwindstack/tools/unwind_symbols.cpp
+index 8df2284..976db56 100644
+--- a/system/core/libunwindstack/tools/unwind_symbols.cpp
++++ b/system/core/libunwindstack/tools/unwind_symbols.cpp
+@@ -77,6 +77,9 @@ int main(int argc, char** argv) {
+ case EM_AARCH64:
+ printf("ABI: arm64\n");
+ break;
++ case EM_RISCV:
++ printf("ABI: riscv64\n");
++ break;
+ case EM_386:
+ printf("ABI: x86\n");
+ break;
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Added-missing-headers.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Added-missing-headers.patch
new file mode 100644
index 0000000000..d827d7d3c2
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Added-missing-headers.patch
@@ -0,0 +1,46 @@
+Upstream-Status: Pending
+
+Description: Added missing headers causing compile errors
+Author: Umang Parmar <umangjparmar@gmail.com>
+Forwarded: not-needed
+
+--- a/system/core/adb/sysdeps/posix/network.cpp
++++ b/system/core/adb/sysdeps/posix/network.cpp
+@@ -22,6 +22,7 @@
+ #include <sys/socket.h>
+
+ #include <string>
++#include <cstring>
+
+ #include <android-base/logging.h>
+ #include <android-base/stringprintf.h>
+--- a/system/core/base/file.cpp
++++ b/system/core/base/file.cpp
+@@ -26,6 +26,7 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
++#include <cstring>
+
+ #include <memory>
+ #include <mutex>
+--- a/system/core/libbacktrace/BacktraceMap.cpp
++++ b/system/core/libbacktrace/BacktraceMap.cpp
+@@ -21,6 +21,7 @@
+ #include <stdint.h>
+ #include <sys/types.h>
+ #include <unistd.h>
++#include <algorithm>
+
+ #include <log/log.h>
+
+--- a/system/core/libbacktrace/UnwindStackMap.cpp
++++ b/system/core/libbacktrace/UnwindStackMap.cpp
+@@ -20,6 +20,7 @@
+
+ #include <string>
+ #include <vector>
++#include <algorithm>
+
+ #include <backtrace/BacktraceMap.h>
+ #include <unwindstack/Elf.h>
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Nonnull.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Nonnull.patch
new file mode 100644
index 0000000000..54bd52c61a
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Nonnull.patch
@@ -0,0 +1,22 @@
+Upstream-Status: Pending
+
+Description: Bring Clang's _Nonnull keyword to GCC
+Author: Kai-Chung Yan
+Forwarded: not-needed
+--- a/system/core/adb/sysdeps.h
++++ b/system/core/adb/sysdeps.h
+@@ -40,11 +40,12 @@
+ #include "sysdeps/network.h"
+ #include "sysdeps/stat.h"
+
++#define _Nonnull
++#define _Nullable
++
+ #ifdef _WIN32
+
+ // Clang-only nullability specifiers
+-#define _Nonnull
+-#define _Nullable
+
+ #include <ctype.h>
+ #include <direct.h>
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Vector-cast.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Vector-cast.patch
new file mode 100644
index 0000000000..b2881e0213
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Vector-cast.patch
@@ -0,0 +1,16 @@
+Upstream-Status: Pending
+
+Description: Fix the weird error by GCC7 that fails to match the correct parent method.
+Author: Kai-Chung Yan
+Forwarded: not-needed
+--- a/system/core/libutils/include/utils/Vector.h
++++ b/system/core/libutils/include/utils/Vector.h
+@@ -256,7 +256,7 @@
+
+ template<class TYPE> inline
+ const Vector<TYPE>& Vector<TYPE>::operator = (const Vector<TYPE>& rhs) const {
+- VectorImpl::operator = (static_cast<const VectorImpl&>(rhs));
++ VectorImpl::operator = (rhs);
+ return *this;
+ }
+
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/add-missing-headers.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/add-missing-headers.patch
new file mode 100644
index 0000000000..681d2c6553
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/add-missing-headers.patch
@@ -0,0 +1,43 @@
+Upstream-Status: Pending
+
+Forwarded: not-needed
+--- a/system/core/fs_mgr/liblp/reader.cpp
++++ b/system/core/fs_mgr/liblp/reader.cpp
+@@ -22,6 +22,7 @@
+ #include <unistd.h>
+
+ #include <functional>
++#include <cstring>
+
+ #include <android-base/file.h>
+ #include <android-base/unique_fd.h>
+--- a/system/core/fs_mgr/liblp/writer.cpp
++++ b/system/core/fs_mgr/liblp/writer.cpp
+@@ -21,6 +21,7 @@
+ #include <unistd.h>
+
+ #include <string>
++#include <cstring>
+
+ #include <android-base/file.h>
+ #include <android-base/unique_fd.h>
+--- a/system/core/liblog/logger_write.cpp
++++ b/system/core/liblog/logger_write.cpp
+@@ -27,6 +27,7 @@
+ #include <android/set_abort_message.h>
+ #endif
+
++#include <mutex>
+ #include <shared_mutex>
+
+ #include <android-base/errno_restorer.h>
+--- a/system/core/libziparchive/zip_archive_stream_entry.cc
++++ b/system/core/libziparchive/zip_archive_stream_entry.cc
+@@ -23,6 +23,7 @@
+ #include <sys/types.h>
+ #include <unistd.h>
+
++#include <limits>
+ #include <memory>
+ #include <vector>
+
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/20150704-CVE-2015-3239_dwarf_i.h.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/20150704-CVE-2015-3239_dwarf_i.h.patch
new file mode 100644
index 0000000000..e8e216161e
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/20150704-CVE-2015-3239_dwarf_i.h.patch
@@ -0,0 +1,15 @@
+Upstream-Status: Pending
+
+Description: Off-by-one error in the dwarf_to_unw_regnum function in include/dwarf_i.h in
+libunwind 1.1 allows local users to have unspecified impact via invalid dwarf opcodes.
+--- a/external/libunwind/include/dwarf_i.h
++++ b/external/libunwind/include/dwarf_i.h
+@@ -20,7 +20,7 @@
+ extern const uint8_t dwarf_to_unw_regnum_map[DWARF_REGNUM_MAP_LENGTH];
+ /* REG is evaluated multiple times; it better be side-effects free! */
+ # define dwarf_to_unw_regnum(reg) \
+- (((reg) <= DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0)
++ (((reg) < DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0)
+ #endif
+
+ #ifdef UNW_LOCAL_ONLY
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/legacy_built-in_sync_functions.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/legacy_built-in_sync_functions.patch
new file mode 100644
index 0000000000..a04a887c68
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/legacy_built-in_sync_functions.patch
@@ -0,0 +1,28 @@
+Upstream-Status: Pending
+
+Description: Replace the legacy __sync built-in functions with __atomic ones
+ libunwind uses the built-in __sync_* functions which are deprecated by GCC and
+ should be replaced by __atomic_* ones. See the official manuals [1].
+ .
+ The legacy __sync functions do not require to specify the memory order but
+ __atomic ones do, so we choose the strongest one: __ATOMIC_SEQ_CST.
+ .
+ We do this because __sync_fetch_and_add() is not supported on armel.
+ .
+ [1]: https://gcc.gnu.org/onlinedocs/gcc/_005f_005fsync-Builtins.html
+Author: Kai-Chung Yan ()
+Last-Update: 2016-10-04
+Forwarded: not-needed
+--- a/external/libunwind/include/libunwind_i.h
++++ b/external/libunwind/include/libunwind_i.h
+@@ -155,8 +155,8 @@ cmpxchg_ptr (void *addr, void *old, void
+ u.vp = addr;
+ return __sync_bool_compare_and_swap(u.vlp, (long) old, (long) new);
+ }
+-# define fetch_and_add1(_ptr) __sync_fetch_and_add(_ptr, 1)
+-# define fetch_and_add(_ptr, value) __sync_fetch_and_add(_ptr, value)
++# define fetch_and_add1(_ptr) __atomic_fetch_add(_ptr, 1, __ATOMIC_SEQ_CST)
++# define fetch_and_add(_ptr, value) __atomic_fetch_add(_ptr, value, __ATOMIC_SEQ_CST)
+ # define HAVE_CMPXCHG
+ # define HAVE_FETCH_AND_ADD
+ #endif
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/user_pt_regs.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/user_pt_regs.patch
new file mode 100644
index 0000000000..35df944d1c
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/user_pt_regs.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Pending
+
+Author: Kai-Chung Yan <seamlikok@gmail.com>
+Last-Update: 2016-08-24
+Description: Manual definition of struct user_pt_regs
+ On ARM64, libunwind uses struct user_pt_regs which is not defined in
+ anywhere, which causes FTBFS.
+Forwarded: not-needed
+--- a/external/libunwind/src/ptrace/_UPT_access_reg.c
++++ b/external/libunwind/src/ptrace/_UPT_access_reg.c
+@@ -26,6 +26,15 @@ WITH THE SOFTWARE OR THE USE OR OTHER DE
+
+ #include "_UPT_internal.h"
+
++#if defined(__aarch64__)
++ struct user_pt_regs {
++ __u64 regs[31];
++ __u64 sp;
++ __u64 pc;
++ __u64 pstate;
++ };
++#endif
++
+ #if UNW_TARGET_IA64
+ # include <elf.h>
+ # ifdef HAVE_ASM_PTRACE_OFFSETS_H
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-attribute-issue-with-gcc.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-attribute-issue-with-gcc.patch
new file mode 100644
index 0000000000..441031f536
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-attribute-issue-with-gcc.patch
@@ -0,0 +1,19 @@
+Upstream-Status: Pending
+
+Description: remove clang-ism
+Forwarded: not-needed
+
+--- a/system/core/base/include/android-base/logging.h
++++ b/system/core/base/include/android-base/logging.h
+@@ -451,10 +451,7 @@
+ // -Wno-user-defined-warnings to CPPFLAGS.
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wgcc-compat"
+-#define OSTREAM_STRING_POINTER_USAGE_WARNING \
+- __attribute__((diagnose_if(true, "Unexpected logging of string pointer", "warning")))
+-inline OSTREAM_STRING_POINTER_USAGE_WARNING
+-std::ostream& operator<<(std::ostream& stream, const std::string* string_pointer) {
++inline std::ostream& operator<<(std::ostream& stream, const std::string* string_pointer) {
+ return stream << static_cast<const void*>(string_pointer);
+ }
+ #pragma clang diagnostic pop
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-build-on-non-x86.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-build-on-non-x86.patch
new file mode 100644
index 0000000000..b1caa60c4a
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-build-on-non-x86.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Pending
+
+Description: non-x86 arches do not have PAGE_SIZE
+Forwarded: not-needed
+--- a/system/core/base/cmsg.cpp
++++ b/system/core/base/cmsg.cpp
+@@ -33,7 +33,8 @@
+ const std::vector<int>& fds) {
+ size_t cmsg_space = CMSG_SPACE(sizeof(int) * fds.size());
+ size_t cmsg_len = CMSG_LEN(sizeof(int) * fds.size());
+- if (cmsg_space >= PAGE_SIZE) {
++ size_t pagesize = static_cast<size_t>(sysconf(_SC_PAGE_SIZE));
++ if (cmsg_space >= pagesize) {
+ errno = ENOMEM;
+ return -1;
+ }
+@@ -75,7 +76,8 @@
+ fds->clear();
+
+ size_t cmsg_space = CMSG_SPACE(sizeof(int) * max_fds);
+- if (cmsg_space >= PAGE_SIZE) {
++ size_t pagesize = static_cast<size_t>(sysconf(_SC_PAGE_SIZE));
++ if (cmsg_space >= pagesize) {
+ errno = ENOMEM;
+ return -1;
+ }
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-gettid-exception-declaration.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-gettid-exception-declaration.patch
new file mode 100644
index 0000000000..5f24d0b4a0
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-gettid-exception-declaration.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Pending
+
+Description: get libcutils building
+Forwarded: not-needed
+--- a/system/core/libcutils/include/cutils/threads.h
++++ b/system/core/libcutils/include/cutils/threads.h
+@@ -33,7 +33,7 @@
+ // Deprecated: use android::base::GetThreadId instead, which doesn't truncate on Mac/Windows.
+ //
+
+-extern pid_t gettid();
++extern pid_t gettid(void) __THROW;
+
+ //
+ // Deprecated: use `_Thread_local` in C or `thread_local` in C++.
+--- a/system/core/libcutils/threads.cpp
++++ b/system/core/libcutils/threads.cpp
+@@ -33,7 +33,7 @@
+
+ // No definition needed for Android because we'll just pick up bionic's copy.
+ #ifndef __ANDROID__
+-pid_t gettid() {
++pid_t gettid(void) __THROW {
+ #if defined(__APPLE__)
+ uint64_t tid;
+ pthread_threadid_np(NULL, &tid);
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-standard-namespace-errors.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-standard-namespace-errors.patch
new file mode 100644
index 0000000000..4380308f13
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-standard-namespace-errors.patch
@@ -0,0 +1,24 @@
+Upstream-Status: Pending
+
+Description: Add missing 'std::' scope identifiers.
+Forwarded: not-needed
+--- a/system/core/libunwindstack/include/unwindstack/DwarfMemory.h
++++ b/system/core/libunwindstack/include/unwindstack/DwarfMemory.h
+@@ -29,7 +29,7 @@
+ DwarfMemory(Memory* memory) : memory_(memory) {}
+ virtual ~DwarfMemory() = default;
+
+- bool ReadBytes(void* dst, size_t num_bytes);
++ bool ReadBytes(void* dst, std::size_t num_bytes);
+
+ template <typename SignedType>
+ bool ReadSigned(uint64_t* value);
+@@ -39,7 +39,7 @@
+ bool ReadSLEB128(int64_t* value);
+
+ template <typename AddressType>
+- size_t GetEncodedSize(uint8_t encoding);
++ std::size_t GetEncodedSize(uint8_t encoding);
+
+ bool AdjustEncodedValue(uint8_t encoding, uint64_t* value);
+
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/hard-code-build-number.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/hard-code-build-number.patch
new file mode 100644
index 0000000000..4d7323bd2f
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/hard-code-build-number.patch
@@ -0,0 +1,46 @@
+Upstream-Status: Pending
+
+Description: just hard code rather than deal with circular deps
+Forwarded: not-needed
+--- a/system/core/adb/adb.cpp
++++ b/system/core/adb/adb.cpp
+@@ -44,8 +44,6 @@
+ #include <android-base/parsenetaddress.h>
+ #include <android-base/stringprintf.h>
+ #include <android-base/strings.h>
+-#include <build/version.h>
+-#include <platform_tools_version.h>
+
+ #include "adb_auth.h"
+ #include "adb_io.h"
+@@ -69,7 +67,7 @@
+ "Version %s-%s\n"
+ "Installed as %s\n",
+ ADB_VERSION_MAJOR, ADB_VERSION_MINOR, ADB_SERVER_VERSION,
+- PLATFORM_TOOLS_VERSION, android::build::GetBuildNumber().c_str(),
++ PLATFORM_TOOLS_VERSION, "debian",
+ android::base::GetExecutablePath().c_str());
+ }
+
+--- a/system/core/fastboot/fastboot.cpp
++++ b/system/core/fastboot/fastboot.cpp
+@@ -59,10 +59,8 @@
+ #include <android-base/stringprintf.h>
+ #include <android-base/strings.h>
+ #include <android-base/unique_fd.h>
+-#include <build/version.h>
+ #include <libavb/libavb.h>
+ #include <liblp/liblp.h>
+-#include <platform_tools_version.h>
+ #include <sparse/sparse.h>
+ #include <ziparchive/zip_archive.h>
+
+@@ -1680,7 +1678,7 @@
+ setvbuf(stdout, nullptr, _IONBF, 0);
+ setvbuf(stderr, nullptr, _IONBF, 0);
+ } else if (name == "version") {
+- fprintf(stdout, "fastboot version %s-%s\n", PLATFORM_TOOLS_VERSION, android::build::GetBuildNumber().c_str());
++ fprintf(stdout, "fastboot version %s-%s\n", PLATFORM_TOOLS_VERSION, "debian");
+ fprintf(stdout, "Installed as %s\n", android::base::GetExecutablePath().c_str());
+ return 0;
+ #if !defined(_WIN32)
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/libusb-header-path.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/libusb-header-path.patch
new file mode 100644
index 0000000000..122bd70e7d
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/libusb-header-path.patch
@@ -0,0 +1,18 @@
+Upstream-Status: Pending
+
+Description: libusb.h comes from different location
+Author: Umang Parmar <umangjparmar@gmail.com>
+Forwarded: not-needed
+Last-Update: 2018-05-26
+
+--- a/system/core/adb/client/usb_libusb.cpp
++++ b/system/core/adb/client/usb_libusb.cpp
+@@ -30,7 +30,7 @@
+ #include <thread>
+ #include <unordered_map>
+
+-#include <libusb/libusb.h>
++#include <libusb-1.0/libusb.h>
+
+ #include <android-base/file.h>
+ #include <android-base/logging.h>
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/move-log-file-to-proper-dir.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/move-log-file-to-proper-dir.patch
new file mode 100644
index 0000000000..e8494ab433
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/move-log-file-to-proper-dir.patch
@@ -0,0 +1,20 @@
+Upstream-Status: Pending
+
+Description: Update log file directory.
+Author: Umang Parmar <umangjparmar@gmail.com>
+Last Updated: 2018-05-17
+
+--- a/system/core/adb/adb_utils.cpp
++++ b/system/core/adb/adb_utils.cpp
+@@ -339,6 +339,11 @@
+
+ return temp_path_utf8 + log_name;
+ #else
++ std::string log_dir = android::base::StringPrintf("/run/user/%u/adb.log", getuid());
++ struct stat st = {0};
++ if (stat(log_dir.c_str(), &st) == 0) {
++ return log_dir;
++ }
+ const char* tmp_dir = getenv("TMPDIR");
+ if (tmp_dir == nullptr) tmp_dir = "/tmp";
+ return android::base::StringPrintf("%s/adb.%u.log", tmp_dir, getuid());
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/simg_dump-python3.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/simg_dump-python3.patch
new file mode 100644
index 0000000000..6664dc2aa5
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/simg_dump-python3.patch
@@ -0,0 +1,64 @@
+Description: Port simg_dump to Python 3.
+Author: Antonio Russo <antonio.e.russo@gmail.com>
+Forwarded: not-needed
+Last-Update: 2019-01-05
+Origin: https://bugs.debian.org/945646
+
+---
+Upstream-Status: Pending
+
+Index: android-platform-tools/system/core/libsparse/simg_dump.py
+===================================================================
+--- android-platform-tools.orig/system/core/libsparse/simg_dump.py
++++ android-platform-tools/system/core/libsparse/simg_dump.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+
+ # Copyright (C) 2012 The Android Open Source Project
+ #
+@@ -14,7 +14,7 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+
+-from __future__ import print_function
++
+ import csv
+ import getopt
+ import hashlib
+@@ -47,7 +47,7 @@ def main():
+ opts, args = getopt.getopt(sys.argv[1:],
+ "vsc:",
+ ["verbose", "showhash", "csvfile"])
+- except getopt.GetoptError, e:
++ except getopt.GetoptError as e:
+ print(e)
+ usage(me)
+ for o, a in opts:
+@@ -66,7 +66,7 @@ def main():
+ usage(me)
+
+ if csvfilename:
+- csvfile = open(csvfilename, "wb")
++ csvfile = open(csvfilename, "w", newline='')
+ csvwriter = csv.writer(csvfile)
+
+ output = verbose or csvfilename or showhash
+@@ -121,7 +121,7 @@ def main():
+ "output offset", "output blocks", "type", "hash"])
+
+ offset = 0
+- for i in xrange(1, total_chunks + 1):
++ for i in range(1, total_chunks + 1):
+ header_bin = FH.read(12)
+ header = struct.unpack("<2H2I", header_bin)
+ chunk_type = header[0]
+@@ -160,7 +160,7 @@ def main():
+ if showhash:
+ h = hashlib.sha1()
+ data = fill_bin * (blk_sz / 4);
+- for block in xrange(chunk_sz):
++ for block in range(chunk_sz):
+ h.update(data)
+ curhash = h.hexdigest()
+ elif chunk_type == 0xCAC3:
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stdatomic.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stdatomic.patch
new file mode 100644
index 0000000000..e11f3cc783
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stdatomic.patch
@@ -0,0 +1,66 @@
+Upstream-Status: Pending
+
+Description: Fix incompatibility between <stdatomic.h> and <atomic>
+ This 2 headers combined will cause errors for both GCC and Clang. This patch
+ makes sure only one of them is present at any time.
+Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932
+Bug: https://reviews.llvm.org/D45470
+--- a/system/core/libcutils/include/cutils/trace.h
++++ b/system/core/libcutils/include/cutils/trace.h
+@@ -18,7 +18,14 @@
+ #define _LIBS_CUTILS_TRACE_H
+
+ #include <inttypes.h>
++#ifdef __cplusplus
++#include <atomic>
++using std::atomic_bool;
++using std::atomic_load_explicit;
++using std::memory_order_acquire;
++#else
+ #include <stdatomic.h>
++#endif
+ #include <stdbool.h>
+ #include <stdint.h>
+ #include <stdio.h>
+--- a/system/core/libcutils/include/cutils/atomic.h
++++ b/system/core/libcutils/include/cutils/atomic.h
+@@ -19,7 +19,23 @@
+
+ #include <stdint.h>
+ #include <sys/types.h>
++#ifdef __cplusplus
++#include <atomic>
++using std::atomic_compare_exchange_strong_explicit;
++using std::atomic_fetch_add_explicit;
++using std::atomic_fetch_or_explicit;
++using std::atomic_fetch_sub_explicit;
++using std::atomic_int_least32_t;
++using std::atomic_load_explicit;
++using std::atomic_store_explicit;
++using std::atomic_thread_fence;
++using std::memory_order::memory_order_acquire;
++using std::memory_order::memory_order_relaxed;
++using std::memory_order::memory_order_release;
++using std::memory_order::memory_order_seq_cst;
++#else
+ #include <stdatomic.h>
++#endif
+
+ #ifndef ANDROID_ATOMIC_INLINE
+ #define ANDROID_ATOMIC_INLINE static inline
+--- a/system/core/liblog/logger.h
++++ b/system/core/liblog/logger.h
+@@ -16,7 +16,13 @@
+
+ #pragma once
+
++#ifdef __cplusplus
++#include <atomic>
++using std::atomic_int;
++using std::atomic_uintptr_t;
++#else
+ #include <stdatomic.h>
++#endif
+ #include <sys/cdefs.h>
+
+ #include <log/log.h>
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stub-out-fastdeploy.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stub-out-fastdeploy.patch
new file mode 100644
index 0000000000..d86ef230f7
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stub-out-fastdeploy.patch
@@ -0,0 +1,95 @@
+Upstream-Status: Pending
+
+Description: Defer packaging fastdeploy with adb for 29.x.x tags.
+Forwarded: not-needed
+--- a/system/core/adb/client/commandline.cpp
++++ b/system/core/adb/client/commandline.cpp
+@@ -59,7 +59,6 @@
+ #include "bugreport.h"
+ #include "client/file_sync_client.h"
+ #include "commandline.h"
+-#include "fastdeploy.h"
+ #include "services.h"
+ #include "shell_protocol.h"
+ #include "sysdeps/chrono.h"
+--- a/system/core/adb/client/adb_install.cpp
++++ b/system/core/adb/client/adb_install.cpp
+@@ -35,7 +35,6 @@
+ #include "adb_utils.h"
+ #include "client/file_sync_client.h"
+ #include "commandline.h"
+-#include "fastdeploy.h"
+
+ static constexpr int kFastDeployMinApi = 24;
+
+@@ -167,14 +166,6 @@
+ }
+
+ if (use_fastdeploy) {
+- auto metadata = extract_metadata(file);
+- if (metadata.has_value()) {
+- // pass all but 1st (command) and last (apk path) parameters through to pm for
+- // session creation
+- std::vector<const char*> pm_args{argv + 1, argv + argc - 1};
+- auto patchFd = install_patch(pm_args.size(), pm_args.data());
+- return stream_patch(file, std::move(metadata.value()), std::move(patchFd));
+- }
+ }
+
+ struct stat sb;
+@@ -267,16 +258,6 @@
+ argv[last_apk] = apk_dest.c_str(); /* destination name, not source location */
+
+ if (use_fastdeploy) {
+- auto metadata = extract_metadata(apk_file[0]);
+- if (metadata.has_value()) {
+- auto patchFd = apply_patch_on_device(apk_dest.c_str());
+- int status = stream_patch(apk_file[0], std::move(metadata.value()), std::move(patchFd));
+-
+- result = pm_command(argc, argv);
+- delete_device_file(apk_dest);
+-
+- return status;
+- }
+ }
+
+ if (do_sync_push(apk_file, apk_dest.c_str(), false)) {
+@@ -292,7 +273,6 @@
+ InstallMode installMode = INSTALL_DEFAULT;
+ bool use_fastdeploy = false;
+ bool is_reinstall = false;
+- FastDeploy_AgentUpdateStrategy agent_update_strategy = FastDeploy_AgentUpdateDifferentVersion;
+
+ for (int i = 1; i < argc; i++) {
+ if (!strcmp(argv[i], "--streaming")) {
+@@ -313,13 +293,10 @@
+ use_fastdeploy = false;
+ } else if (!strcmp(argv[i], "--force-agent")) {
+ processedArgIndicies.push_back(i);
+- agent_update_strategy = FastDeploy_AgentUpdateAlways;
+ } else if (!strcmp(argv[i], "--date-check-agent")) {
+ processedArgIndicies.push_back(i);
+- agent_update_strategy = FastDeploy_AgentUpdateNewerTimeStamp;
+ } else if (!strcmp(argv[i], "--version-check-agent")) {
+ processedArgIndicies.push_back(i);
+- agent_update_strategy = FastDeploy_AgentUpdateDifferentVersion;
+ }
+ }
+
+@@ -331,13 +308,11 @@
+ error_exit("Attempting to use streaming install on unsupported device");
+ }
+
+- if (use_fastdeploy && get_device_api_level() < kFastDeployMinApi) {
+- printf("Fast Deploy is only compatible with devices of API version %d or higher, "
+- "ignoring.\n",
+- kFastDeployMinApi);
++ if (use_fastdeploy) {
++ printf("Fast Deploy is unavailable in this build of adb, "
++ "ignoring.\n");
+ use_fastdeploy = false;
+ }
+- fastdeploy_set_agent_update_strategy(agent_update_strategy);
+
+ std::vector<const char*> passthrough_argv;
+ for (int i = 0; i < argc; i++) {
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Add-riscv64-support.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Add-riscv64-support.patch
new file mode 100644
index 0000000000..9fd0fa792c
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Add-riscv64-support.patch
@@ -0,0 +1,653 @@
+From: Guo Ren <guoren@linux.alibaba.com>
+Date: Wed, 29 Jun 2022 16:46:46 +0800
+Subject: Add riscv64 support
+
+This patch contains the dwarf unwind support for 64bit risc-v.
+
+ * DwarfCfa.cpp (cfa_def_cfa_register): setup register if CFA_REG is
+ not setup for riscv64
+ * Elf.cpp (GetRelPc): convert offset to virtual address for riscv64.
+ * ElfInterface.cpp (GetVirtAddrFromOffset): New for riscv64.
+ * RegsRiscv64.cpp (StepIfSignalHandler): Fix signal frame check.
+ libunwindstack/include/unwindstack/
+ * ElfInterface.h (GetVirtAddrFromOffset): New for riscv64.
+ libunwindstack/tests/
+ * DwarfCfaTest.cpp (cfa_def_cfa_register): ok for riscv64.
+ * RegsStepIfSignalHandlerTest.cpp (riscv64_step_if_signal_handler): Fix
+ testcase for riscv64
+
+Test: Builds.
+Test: All unit tests pass.
+
+Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
+Signed-off-by: Lifang Xia <lifang_xia@linux.alibaba.com>
+Signed-off-by: Mao Han <han_mao@linux.alibaba.com>
+Change-Id: Ib21ddf23cc83f332af202df7bffcaceec16063e0
+---
+Upstream-Status: Pending
+
+ system/core/libunwindstack/Android.bp | 1 +
+ system/core/libunwindstack/Elf.cpp | 2 +
+ system/core/libunwindstack/Regs.cpp | 10 ++
+ system/core/libunwindstack/RegsRiscv64.cpp | 156 +++++++++++++++++++++
+ .../core/libunwindstack/include/unwindstack/Elf.h | 5 +
+ .../include/unwindstack/MachineRiscv64.h | 59 ++++++++
+ .../include/unwindstack/RegsGetLocal.h | 43 ++++++
+ .../include/unwindstack/RegsRiscv64.h | 59 ++++++++
+ .../include/unwindstack/UcontextRiscv64.h | 80 +++++++++++
+ .../include/unwindstack/UserRiscv64.h | 37 +++++
+ system/core/libunwindstack/tools/unwind.cpp | 3 +
+ .../core/libunwindstack/tools/unwind_symbols.cpp | 3 +
+ 12 files changed, 458 insertions(+)
+ create mode 100644 system/core/libunwindstack/RegsRiscv64.cpp
+ create mode 100644 system/core/libunwindstack/include/unwindstack/MachineRiscv64.h
+ create mode 100644 system/core/libunwindstack/include/unwindstack/RegsRiscv64.h
+ create mode 100644 system/core/libunwindstack/include/unwindstack/UcontextRiscv64.h
+ create mode 100644 system/core/libunwindstack/include/unwindstack/UserRiscv64.h
+
+diff --git a/system/core/libunwindstack/Android.bp b/system/core/libunwindstack/Android.bp
+index 3695f72..f1f9c68 100644
+--- a/system/core/libunwindstack/Android.bp
++++ b/system/core/libunwindstack/Android.bp
+@@ -70,6 +70,7 @@ cc_library {
+ "RegsArm64.cpp",
+ "RegsX86.cpp",
+ "RegsX86_64.cpp",
++ "RegsRiscv64.cpp",
+ "RegsMips.cpp",
+ "RegsMips64.cpp",
+ "Unwinder.cpp",
+diff --git a/system/core/libunwindstack/Elf.cpp b/system/core/libunwindstack/Elf.cpp
+index f01b092..3c2088b 100644
+--- a/system/core/libunwindstack/Elf.cpp
++++ b/system/core/libunwindstack/Elf.cpp
+@@ -290,6 +290,8 @@ ElfInterface* Elf::CreateInterfaceFromMemory(Memory* memory) {
+ arch_ = ARCH_X86_64;
+ } else if (e_machine == EM_MIPS) {
+ arch_ = ARCH_MIPS64;
++ } else if (e_machine == EM_RISCV) {
++ arch_ = ARCH_RISCV64;
+ } else {
+ // Unsupported.
+ ALOGI("64 bit elf that is neither aarch64 nor x86_64 nor mips64: e_machine = %d\n",
+diff --git a/system/core/libunwindstack/Regs.cpp b/system/core/libunwindstack/Regs.cpp
+index c7dec52..447a554 100644
+--- a/system/core/libunwindstack/Regs.cpp
++++ b/system/core/libunwindstack/Regs.cpp
+@@ -27,12 +27,14 @@
+ #include <unwindstack/RegsArm64.h>
+ #include <unwindstack/RegsMips.h>
+ #include <unwindstack/RegsMips64.h>
++#include <unwindstack/RegsRiscv64.h>
+ #include <unwindstack/RegsX86.h>
+ #include <unwindstack/RegsX86_64.h>
+ #include <unwindstack/UserArm.h>
+ #include <unwindstack/UserArm64.h>
+ #include <unwindstack/UserMips.h>
+ #include <unwindstack/UserMips64.h>
++#include <unwindstack/UserRiscv64.h>
+ #include <unwindstack/UserX86.h>
+ #include <unwindstack/UserX86_64.h>
+
+@@ -67,6 +69,8 @@ Regs* Regs::RemoteGet(pid_t pid) {
+ return RegsMips::Read(buffer.data());
+ case sizeof(mips64_user_regs):
+ return RegsMips64::Read(buffer.data());
++ case sizeof(riscv64_user_regs):
++ return RegsRiscv64::Read(buffer.data());
+ }
+ return nullptr;
+ }
+@@ -85,6 +89,8 @@ Regs* Regs::CreateFromUcontext(ArchEnum arch, void* ucontext) {
+ return RegsMips::CreateFromUcontext(ucontext);
+ case ARCH_MIPS64:
+ return RegsMips64::CreateFromUcontext(ucontext);
++ case ARCH_RISCV64:
++ return RegsRiscv64::CreateFromUcontext(ucontext);
+ case ARCH_UNKNOWN:
+ default:
+ return nullptr;
+@@ -104,6 +110,8 @@ ArchEnum Regs::CurrentArch() {
+ return ARCH_MIPS;
+ #elif defined(__mips__) && defined(__LP64__)
+ return ARCH_MIPS64;
++#elif defined(__riscv)
++ return ARCH_RISCV64;
+ #else
+ abort();
+ #endif
+@@ -123,6 +131,8 @@ Regs* Regs::CreateFromLocal() {
+ regs = new RegsMips();
+ #elif defined(__mips__) && defined(__LP64__)
+ regs = new RegsMips64();
++#elif defined(__riscv)
++ regs = new RegsRiscv64();
+ #else
+ abort();
+ #endif
+diff --git a/system/core/libunwindstack/RegsRiscv64.cpp b/system/core/libunwindstack/RegsRiscv64.cpp
+new file mode 100644
+index 0000000..887762a
+--- /dev/null
++++ b/system/core/libunwindstack/RegsRiscv64.cpp
+@@ -0,0 +1,156 @@
++/*
++ * Copyright (C) 2022 The Android Open Source Project
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++#include <stdint.h>
++#include <string.h>
++
++#include <functional>
++
++#include <unwindstack/Elf.h>
++#include <unwindstack/MachineRiscv64.h>
++#include <unwindstack/MapInfo.h>
++#include <unwindstack/Memory.h>
++#include <unwindstack/RegsRiscv64.h>
++#include <unwindstack/UcontextRiscv64.h>
++#include <unwindstack/UserRiscv64.h>
++
++namespace unwindstack {
++
++RegsRiscv64::RegsRiscv64()
++ : RegsImpl<uint64_t>(RISCV64_REG_MAX, Location(LOCATION_REGISTER, RISCV64_REG_RA)) {}
++
++ArchEnum RegsRiscv64::Arch() {
++ return ARCH_RISCV64;
++}
++
++uint64_t RegsRiscv64::pc() {
++ return regs_[RISCV64_REG_PC];
++}
++
++uint64_t RegsRiscv64::sp() {
++ return regs_[RISCV64_REG_SP];
++}
++
++void RegsRiscv64::set_pc(uint64_t pc) {
++ regs_[RISCV64_REG_PC] = pc;
++}
++
++void RegsRiscv64::set_sp(uint64_t sp) {
++ regs_[RISCV64_REG_SP] = sp;
++}
++
++uint64_t RegsRiscv64::GetPcAdjustment(uint64_t rel_pc, Elf*) {
++ if (rel_pc < 8) {
++ return 0;
++ }
++ // For now, just assume no compact branches
++ return 8;
++}
++
++bool RegsRiscv64::SetPcFromReturnAddress(Memory*) {
++ uint64_t ra = regs_[RISCV64_REG_RA];
++ if (regs_[RISCV64_REG_PC] == ra) {
++ return false;
++ }
++
++ regs_[RISCV64_REG_PC] = ra;
++ return true;
++}
++
++void RegsRiscv64::IterateRegisters(std::function<void(const char*, uint64_t)> fn) {
++ fn("pc", regs_[RISCV64_REG_PC]);
++ fn("ra", regs_[RISCV64_REG_RA]);
++ fn("sp", regs_[RISCV64_REG_SP]);
++ fn("gp", regs_[RISCV64_REG_GP]);
++ fn("tp", regs_[RISCV64_REG_TP]);
++ fn("t0", regs_[RISCV64_REG_T0]);
++ fn("t1", regs_[RISCV64_REG_T1]);
++ fn("t2", regs_[RISCV64_REG_T2]);
++ fn("t3", regs_[RISCV64_REG_T3]);
++ fn("t4", regs_[RISCV64_REG_T4]);
++ fn("t5", regs_[RISCV64_REG_T5]);
++ fn("t6", regs_[RISCV64_REG_T6]);
++ fn("s0", regs_[RISCV64_REG_S0]);
++ fn("s1", regs_[RISCV64_REG_S1]);
++ fn("s2", regs_[RISCV64_REG_S2]);
++ fn("s3", regs_[RISCV64_REG_S3]);
++ fn("s4", regs_[RISCV64_REG_S4]);
++ fn("s5", regs_[RISCV64_REG_S5]);
++ fn("s6", regs_[RISCV64_REG_S6]);
++ fn("s7", regs_[RISCV64_REG_S7]);
++ fn("s8", regs_[RISCV64_REG_S8]);
++ fn("s9", regs_[RISCV64_REG_S9]);
++ fn("s10", regs_[RISCV64_REG_S10]);
++ fn("s11", regs_[RISCV64_REG_S11]);
++ fn("a0", regs_[RISCV64_REG_A0]);
++ fn("a1", regs_[RISCV64_REG_A1]);
++ fn("a2", regs_[RISCV64_REG_A2]);
++ fn("a3", regs_[RISCV64_REG_A3]);
++ fn("a4", regs_[RISCV64_REG_A4]);
++ fn("a5", regs_[RISCV64_REG_A5]);
++ fn("a6", regs_[RISCV64_REG_A6]);
++ fn("a7", regs_[RISCV64_REG_A7]);
++}
++
++Regs* RegsRiscv64::Read(void* remote_data) {
++ riscv64_user_regs* user = reinterpret_cast<riscv64_user_regs*>(remote_data);
++
++ RegsRiscv64* regs = new RegsRiscv64();
++ memcpy(regs->RawData(), &user->regs[0], RISCV64_REG_MAX * sizeof(uint64_t));
++ // uint64_t* reg_data = reinterpret_cast<uint64_t*>(regs->RawData());
++ return regs;
++}
++
++Regs* RegsRiscv64::CreateFromUcontext(void* ucontext) {
++ riscv64_ucontext_t* riscv64_ucontext = reinterpret_cast<riscv64_ucontext_t*>(ucontext);
++
++ RegsRiscv64* regs = new RegsRiscv64();
++ memcpy(regs->RawData(), &riscv64_ucontext->uc_mcontext.__gregs[0],
++ RISCV64_REG_MAX * sizeof(uint64_t));
++ return regs;
++}
++
++bool RegsRiscv64::StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) {
++ uint64_t data;
++ Memory* elf_memory = elf->memory();
++ // Read from elf memory since it is usually more expensive to read from
++ // process memory.
++ if (!elf_memory->ReadFully(elf_offset, &data, sizeof(data))) {
++ return false;
++ }
++ // Look for the kernel sigreturn function.
++ // __kernel_rt_sigreturn:
++ // li a7, __NR_rt_sigreturn
++ // scall
++
++ const uint8_t li_scall[] = {0x93, 0x08, 0xb0, 0x08, 0x73, 0x00, 0x00, 0x00};
++ if (memcmp(&data, &li_scall, 8) != 0) {
++ return false;
++ }
++
++ // SP + sizeof(siginfo_t) + uc_mcontext offset + PC offset.
++ if (!process_memory->ReadFully(regs_[RISCV64_REG_SP] + 0x80 + 0xb0 + 0x00, regs_.data(),
++ sizeof(uint64_t) * (RISCV64_REG_MAX))) {
++ return false;
++ }
++ return true;
++}
++
++Regs* RegsRiscv64::Clone() {
++ return new RegsRiscv64(*this);
++}
++
++} // namespace unwindstack
+diff --git a/system/core/libunwindstack/include/unwindstack/Elf.h b/system/core/libunwindstack/include/unwindstack/Elf.h
+index 472ed92..88fa0ff 100644
+--- a/system/core/libunwindstack/include/unwindstack/Elf.h
++++ b/system/core/libunwindstack/include/unwindstack/Elf.h
+@@ -32,6 +32,10 @@
+ #define EM_AARCH64 183
+ #endif
+
++#if !defined(EM_RISCV)
++#define EM_RISCV 243
++#endif
++
+ namespace unwindstack {
+
+ // Forward declaration.
+@@ -46,6 +50,7 @@ enum ArchEnum : uint8_t {
+ ARCH_X86_64,
+ ARCH_MIPS,
+ ARCH_MIPS64,
++ ARCH_RISCV64,
+ };
+
+ class Elf {
+diff --git a/system/core/libunwindstack/include/unwindstack/MachineRiscv64.h b/system/core/libunwindstack/include/unwindstack/MachineRiscv64.h
+new file mode 100644
+index 0000000..397e680
+--- /dev/null
++++ b/system/core/libunwindstack/include/unwindstack/MachineRiscv64.h
+@@ -0,0 +1,59 @@
++/*
++ * Copyright (C) 2022 The Android Open Source Project
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++#pragma once
++
++#include <stdint.h>
++
++namespace unwindstack {
++
++enum Riscv64Reg : uint16_t {
++ RISCV64_REG_PC,
++ RISCV64_REG_RA,
++ RISCV64_REG_SP,
++ RISCV64_REG_GP,
++ RISCV64_REG_TP,
++ RISCV64_REG_T0,
++ RISCV64_REG_T1,
++ RISCV64_REG_T2,
++ RISCV64_REG_S0,
++ RISCV64_REG_S1,
++ RISCV64_REG_A0,
++ RISCV64_REG_A1,
++ RISCV64_REG_A2,
++ RISCV64_REG_A3,
++ RISCV64_REG_A4,
++ RISCV64_REG_A5,
++ RISCV64_REG_A6,
++ RISCV64_REG_A7,
++ RISCV64_REG_S2,
++ RISCV64_REG_S3,
++ RISCV64_REG_S4,
++ RISCV64_REG_S5,
++ RISCV64_REG_S6,
++ RISCV64_REG_S7,
++ RISCV64_REG_S8,
++ RISCV64_REG_S9,
++ RISCV64_REG_S10,
++ RISCV64_REG_S11,
++ RISCV64_REG_T3,
++ RISCV64_REG_T4,
++ RISCV64_REG_T5,
++ RISCV64_REG_T6,
++ RISCV64_REG_MAX,
++};
++
++} // namespace unwindstack
+diff --git a/system/core/libunwindstack/include/unwindstack/RegsGetLocal.h b/system/core/libunwindstack/include/unwindstack/RegsGetLocal.h
+index f0b5e3a..698eba2 100644
+--- a/system/core/libunwindstack/include/unwindstack/RegsGetLocal.h
++++ b/system/core/libunwindstack/include/unwindstack/RegsGetLocal.h
+@@ -81,6 +81,49 @@ inline __attribute__((__always_inline__)) void AsmGetRegs(void* reg_data) {
+ : "x12", "x13", "memory");
+ }
+
++#elif defined(__riscv)
++
++inline __attribute__((__always_inline__)) void AsmGetRegs(void* reg_data) {
++ asm volatile(
++ "1:\n"
++ "sd ra, 8(%[base])\n"
++ "sd sp, 16(%[base])\n"
++ "sd gp, 24(%[base])\n"
++ "sd tp, 32(%[base])\n"
++ "sd t0, 40(%[base])\n"
++ "sd t1, 48(%[base])\n"
++ "sd t2, 56(%[base])\n"
++ "sd s0, 64(%[base])\n"
++ "sd s1, 72(%[base])\n"
++ "sd a0, 80(%[base])\n"
++ "sd a1, 88(%[base])\n"
++ "sd a2, 96(%[base])\n"
++ "sd a3, 104(%[base])\n"
++ "sd a4, 112(%[base])\n"
++ "sd a5, 120(%[base])\n"
++ "sd a6, 128(%[base])\n"
++ "sd a7, 136(%[base])\n"
++ "sd s2, 144(%[base])\n"
++ "sd s3, 152(%[base])\n"
++ "sd s4, 160(%[base])\n"
++ "sd s5, 168(%[base])\n"
++ "sd s6, 176(%[base])\n"
++ "sd s7, 184(%[base])\n"
++ "sd s8, 192(%[base])\n"
++ "sd s9, 200(%[base])\n"
++ "sd s10, 208(%[base])\n"
++ "sd s11, 216(%[base])\n"
++ "sd t3, 224(%[base])\n"
++ "sd t4, 232(%[base])\n"
++ "sd t5, 240(%[base])\n"
++ "sd t6, 248(%[base])\n"
++ "la t1, 1b\n"
++ "sd t1, 0(%[base])\n"
++ : [base] "+r"(reg_data)
++ :
++ : "t1", "memory");
++}
++
+ #elif defined(__i386__) || defined(__x86_64__) || defined(__mips__)
+
+ extern "C" void AsmGetRegs(void* regs);
+diff --git a/system/core/libunwindstack/include/unwindstack/RegsRiscv64.h b/system/core/libunwindstack/include/unwindstack/RegsRiscv64.h
+new file mode 100644
+index 0000000..eb09397
+--- /dev/null
++++ b/system/core/libunwindstack/include/unwindstack/RegsRiscv64.h
+@@ -0,0 +1,59 @@
++/*
++ * Copyright (C) 2022 The Android Open Source Project
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++#pragma once
++
++#include <stdint.h>
++
++#include <functional>
++
++#include <unwindstack/Elf.h>
++#include <unwindstack/Regs.h>
++
++namespace unwindstack {
++
++// Forward declarations.
++class Memory;
++
++class RegsRiscv64 : public RegsImpl<uint64_t> {
++ public:
++ RegsRiscv64();
++ virtual ~RegsRiscv64() = default;
++
++ ArchEnum Arch() override final;
++
++ uint64_t GetPcAdjustment(uint64_t rel_pc, Elf* elf) override;
++
++ bool SetPcFromReturnAddress(Memory* process_memory) override;
++
++ bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override;
++
++ void IterateRegisters(std::function<void(const char*, uint64_t)>) override final;
++
++ uint64_t pc() override;
++ uint64_t sp() override;
++
++ void set_pc(uint64_t pc) override;
++ void set_sp(uint64_t sp) override;
++
++ Regs* Clone() override final;
++
++ static Regs* Read(void* data);
++
++ static Regs* CreateFromUcontext(void* ucontext);
++};
++
++} // namespace unwindstack
+diff --git a/system/core/libunwindstack/include/unwindstack/UcontextRiscv64.h b/system/core/libunwindstack/include/unwindstack/UcontextRiscv64.h
+new file mode 100644
+index 0000000..c6c82b1
+--- /dev/null
++++ b/system/core/libunwindstack/include/unwindstack/UcontextRiscv64.h
+@@ -0,0 +1,80 @@
++/*
++ * Copyright (C) 2014 The Android Open Source Project
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in
++ * the documentation and/or other materials provided with the
++ * distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
++ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
++ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
++ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ */
++
++#pragma once
++
++#include <sys/cdefs.h>
++
++typedef uint64_t __riscv_mc_gp_state[32]; // unsigned long
++
++struct __riscv_mc_f_ext_state {
++ uint32_t __f[32];
++ uint32_t __fcsr;
++};
++
++struct __riscv_mc_d_ext_state {
++ uint64_t __f[32];
++ uint32_t __fcsr;
++};
++
++struct __riscv_mc_q_ext_state {
++ uint64_t __f[64] __attribute__((__aligned__(16)));
++ uint32_t __fcsr;
++ uint32_t __reserved[3];
++};
++
++union __riscv_mc_fp_state {
++ struct __riscv_mc_f_ext_state __f;
++ struct __riscv_mc_d_ext_state __d;
++ struct __riscv_mc_q_ext_state __q;
++};
++
++struct __riscv_stack_t {
++ uint64_t ss_sp;
++ int32_t ss_flags;
++ uint64_t ss_size;
++};
++
++struct riscv64_sigset_t {
++ uint64_t sig; // unsigned long
++};
++
++struct riscv64_mcontext_t {
++ __riscv_mc_gp_state __gregs;
++ union __riscv_mc_fp_state __fpregs;
++};
++
++struct riscv64_ucontext_t {
++ uint64_t uc_flags; // unsigned long
++ struct riscv64_ucontext_t* uc_link;
++ __riscv_stack_t uc_stack;
++ riscv64_sigset_t uc_sigmask;
++ /* The kernel adds extra padding here to allow sigset_t to grow. */
++ int8_t __padding[128 - sizeof(riscv64_sigset_t)]; // char
++ riscv64_mcontext_t uc_mcontext;
++};
+diff --git a/system/core/libunwindstack/include/unwindstack/UserRiscv64.h b/system/core/libunwindstack/include/unwindstack/UserRiscv64.h
+new file mode 100644
+index 0000000..1e91228
+--- /dev/null
++++ b/system/core/libunwindstack/include/unwindstack/UserRiscv64.h
+@@ -0,0 +1,37 @@
++/*
++ * Copyright (C) 2016 The Android Open Source Project
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in
++ * the documentation and/or other materials provided with the
++ * distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
++ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
++ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
++ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ */
++
++#pragma once
++
++namespace unwindstack {
++
++struct riscv64_user_regs {
++ uint64_t regs[32];
++};
++
++} // namespace unwindstack
+diff --git a/system/core/libunwindstack/tools/unwind.cpp b/system/core/libunwindstack/tools/unwind.cpp
+index 1812e50..ae20891 100644
+--- a/system/core/libunwindstack/tools/unwind.cpp
++++ b/system/core/libunwindstack/tools/unwind.cpp
+@@ -83,6 +83,9 @@ void DoUnwind(pid_t pid) {
+ case unwindstack::ARCH_MIPS64:
+ printf("mips64");
+ break;
++ case unwindstack::ARCH_RISCV64:
++ printf("riscv64");
++ break;
+ default:
+ printf("unknown\n");
+ return;
+diff --git a/system/core/libunwindstack/tools/unwind_symbols.cpp b/system/core/libunwindstack/tools/unwind_symbols.cpp
+index 8df2284..976db56 100644
+--- a/system/core/libunwindstack/tools/unwind_symbols.cpp
++++ b/system/core/libunwindstack/tools/unwind_symbols.cpp
+@@ -77,6 +77,9 @@ int main(int argc, char** argv) {
+ case EM_AARCH64:
+ printf("ABI: arm64\n");
+ break;
++ case EM_RISCV:
++ printf("ABI: riscv64\n");
++ break;
+ case EM_386:
+ printf("ABI: x86\n");
+ break;
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Added-missing-headers.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Added-missing-headers.patch
new file mode 100644
index 0000000000..d827d7d3c2
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Added-missing-headers.patch
@@ -0,0 +1,46 @@
+Upstream-Status: Pending
+
+Description: Added missing headers causing compile errors
+Author: Umang Parmar <umangjparmar@gmail.com>
+Forwarded: not-needed
+
+--- a/system/core/adb/sysdeps/posix/network.cpp
++++ b/system/core/adb/sysdeps/posix/network.cpp
+@@ -22,6 +22,7 @@
+ #include <sys/socket.h>
+
+ #include <string>
++#include <cstring>
+
+ #include <android-base/logging.h>
+ #include <android-base/stringprintf.h>
+--- a/system/core/base/file.cpp
++++ b/system/core/base/file.cpp
+@@ -26,6 +26,7 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
++#include <cstring>
+
+ #include <memory>
+ #include <mutex>
+--- a/system/core/libbacktrace/BacktraceMap.cpp
++++ b/system/core/libbacktrace/BacktraceMap.cpp
+@@ -21,6 +21,7 @@
+ #include <stdint.h>
+ #include <sys/types.h>
+ #include <unistd.h>
++#include <algorithm>
+
+ #include <log/log.h>
+
+--- a/system/core/libbacktrace/UnwindStackMap.cpp
++++ b/system/core/libbacktrace/UnwindStackMap.cpp
+@@ -20,6 +20,7 @@
+
+ #include <string>
+ #include <vector>
++#include <algorithm>
+
+ #include <backtrace/BacktraceMap.h>
+ #include <unwindstack/Elf.h>
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Nonnull.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Nonnull.patch
new file mode 100644
index 0000000000..54bd52c61a
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Nonnull.patch
@@ -0,0 +1,22 @@
+Upstream-Status: Pending
+
+Description: Bring Clang's _Nonnull keyword to GCC
+Author: Kai-Chung Yan
+Forwarded: not-needed
+--- a/system/core/adb/sysdeps.h
++++ b/system/core/adb/sysdeps.h
+@@ -40,11 +40,12 @@
+ #include "sysdeps/network.h"
+ #include "sysdeps/stat.h"
+
++#define _Nonnull
++#define _Nullable
++
+ #ifdef _WIN32
+
+ // Clang-only nullability specifiers
+-#define _Nonnull
+-#define _Nullable
+
+ #include <ctype.h>
+ #include <direct.h>
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Vector-cast.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Vector-cast.patch
new file mode 100644
index 0000000000..b2881e0213
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Vector-cast.patch
@@ -0,0 +1,16 @@
+Upstream-Status: Pending
+
+Description: Fix the weird error by GCC7 that fails to match the correct parent method.
+Author: Kai-Chung Yan
+Forwarded: not-needed
+--- a/system/core/libutils/include/utils/Vector.h
++++ b/system/core/libutils/include/utils/Vector.h
+@@ -256,7 +256,7 @@
+
+ template<class TYPE> inline
+ const Vector<TYPE>& Vector<TYPE>::operator = (const Vector<TYPE>& rhs) const {
+- VectorImpl::operator = (static_cast<const VectorImpl&>(rhs));
++ VectorImpl::operator = (rhs);
+ return *this;
+ }
+
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/add-missing-headers.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/add-missing-headers.patch
new file mode 100644
index 0000000000..681d2c6553
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/add-missing-headers.patch
@@ -0,0 +1,43 @@
+Upstream-Status: Pending
+
+Forwarded: not-needed
+--- a/system/core/fs_mgr/liblp/reader.cpp
++++ b/system/core/fs_mgr/liblp/reader.cpp
+@@ -22,6 +22,7 @@
+ #include <unistd.h>
+
+ #include <functional>
++#include <cstring>
+
+ #include <android-base/file.h>
+ #include <android-base/unique_fd.h>
+--- a/system/core/fs_mgr/liblp/writer.cpp
++++ b/system/core/fs_mgr/liblp/writer.cpp
+@@ -21,6 +21,7 @@
+ #include <unistd.h>
+
+ #include <string>
++#include <cstring>
+
+ #include <android-base/file.h>
+ #include <android-base/unique_fd.h>
+--- a/system/core/liblog/logger_write.cpp
++++ b/system/core/liblog/logger_write.cpp
+@@ -27,6 +27,7 @@
+ #include <android/set_abort_message.h>
+ #endif
+
++#include <mutex>
+ #include <shared_mutex>
+
+ #include <android-base/errno_restorer.h>
+--- a/system/core/libziparchive/zip_archive_stream_entry.cc
++++ b/system/core/libziparchive/zip_archive_stream_entry.cc
+@@ -23,6 +23,7 @@
+ #include <sys/types.h>
+ #include <unistd.h>
+
++#include <limits>
+ #include <memory>
+ #include <vector>
+
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-attribute-issue-with-gcc.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-attribute-issue-with-gcc.patch
new file mode 100644
index 0000000000..441031f536
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-attribute-issue-with-gcc.patch
@@ -0,0 +1,19 @@
+Upstream-Status: Pending
+
+Description: remove clang-ism
+Forwarded: not-needed
+
+--- a/system/core/base/include/android-base/logging.h
++++ b/system/core/base/include/android-base/logging.h
+@@ -451,10 +451,7 @@
+ // -Wno-user-defined-warnings to CPPFLAGS.
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wgcc-compat"
+-#define OSTREAM_STRING_POINTER_USAGE_WARNING \
+- __attribute__((diagnose_if(true, "Unexpected logging of string pointer", "warning")))
+-inline OSTREAM_STRING_POINTER_USAGE_WARNING
+-std::ostream& operator<<(std::ostream& stream, const std::string* string_pointer) {
++inline std::ostream& operator<<(std::ostream& stream, const std::string* string_pointer) {
+ return stream << static_cast<const void*>(string_pointer);
+ }
+ #pragma clang diagnostic pop
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-build-on-non-x86.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-build-on-non-x86.patch
new file mode 100644
index 0000000000..b1caa60c4a
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-build-on-non-x86.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Pending
+
+Description: non-x86 arches do not have PAGE_SIZE
+Forwarded: not-needed
+--- a/system/core/base/cmsg.cpp
++++ b/system/core/base/cmsg.cpp
+@@ -33,7 +33,8 @@
+ const std::vector<int>& fds) {
+ size_t cmsg_space = CMSG_SPACE(sizeof(int) * fds.size());
+ size_t cmsg_len = CMSG_LEN(sizeof(int) * fds.size());
+- if (cmsg_space >= PAGE_SIZE) {
++ size_t pagesize = static_cast<size_t>(sysconf(_SC_PAGE_SIZE));
++ if (cmsg_space >= pagesize) {
+ errno = ENOMEM;
+ return -1;
+ }
+@@ -75,7 +76,8 @@
+ fds->clear();
+
+ size_t cmsg_space = CMSG_SPACE(sizeof(int) * max_fds);
+- if (cmsg_space >= PAGE_SIZE) {
++ size_t pagesize = static_cast<size_t>(sysconf(_SC_PAGE_SIZE));
++ if (cmsg_space >= pagesize) {
+ errno = ENOMEM;
+ return -1;
+ }
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-gettid-exception-declaration.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-gettid-exception-declaration.patch
new file mode 100644
index 0000000000..5f24d0b4a0
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-gettid-exception-declaration.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Pending
+
+Description: get libcutils building
+Forwarded: not-needed
+--- a/system/core/libcutils/include/cutils/threads.h
++++ b/system/core/libcutils/include/cutils/threads.h
+@@ -33,7 +33,7 @@
+ // Deprecated: use android::base::GetThreadId instead, which doesn't truncate on Mac/Windows.
+ //
+
+-extern pid_t gettid();
++extern pid_t gettid(void) __THROW;
+
+ //
+ // Deprecated: use `_Thread_local` in C or `thread_local` in C++.
+--- a/system/core/libcutils/threads.cpp
++++ b/system/core/libcutils/threads.cpp
+@@ -33,7 +33,7 @@
+
+ // No definition needed for Android because we'll just pick up bionic's copy.
+ #ifndef __ANDROID__
+-pid_t gettid() {
++pid_t gettid(void) __THROW {
+ #if defined(__APPLE__)
+ uint64_t tid;
+ pthread_threadid_np(NULL, &tid);
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-standard-namespace-errors.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-standard-namespace-errors.patch
new file mode 100644
index 0000000000..4380308f13
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-standard-namespace-errors.patch
@@ -0,0 +1,24 @@
+Upstream-Status: Pending
+
+Description: Add missing 'std::' scope identifiers.
+Forwarded: not-needed
+--- a/system/core/libunwindstack/include/unwindstack/DwarfMemory.h
++++ b/system/core/libunwindstack/include/unwindstack/DwarfMemory.h
+@@ -29,7 +29,7 @@
+ DwarfMemory(Memory* memory) : memory_(memory) {}
+ virtual ~DwarfMemory() = default;
+
+- bool ReadBytes(void* dst, size_t num_bytes);
++ bool ReadBytes(void* dst, std::size_t num_bytes);
+
+ template <typename SignedType>
+ bool ReadSigned(uint64_t* value);
+@@ -39,7 +39,7 @@
+ bool ReadSLEB128(int64_t* value);
+
+ template <typename AddressType>
+- size_t GetEncodedSize(uint8_t encoding);
++ std::size_t GetEncodedSize(uint8_t encoding);
+
+ bool AdjustEncodedValue(uint8_t encoding, uint64_t* value);
+
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/hard-code-build-number.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/hard-code-build-number.patch
new file mode 100644
index 0000000000..4d7323bd2f
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/hard-code-build-number.patch
@@ -0,0 +1,46 @@
+Upstream-Status: Pending
+
+Description: just hard code rather than deal with circular deps
+Forwarded: not-needed
+--- a/system/core/adb/adb.cpp
++++ b/system/core/adb/adb.cpp
+@@ -44,8 +44,6 @@
+ #include <android-base/parsenetaddress.h>
+ #include <android-base/stringprintf.h>
+ #include <android-base/strings.h>
+-#include <build/version.h>
+-#include <platform_tools_version.h>
+
+ #include "adb_auth.h"
+ #include "adb_io.h"
+@@ -69,7 +67,7 @@
+ "Version %s-%s\n"
+ "Installed as %s\n",
+ ADB_VERSION_MAJOR, ADB_VERSION_MINOR, ADB_SERVER_VERSION,
+- PLATFORM_TOOLS_VERSION, android::build::GetBuildNumber().c_str(),
++ PLATFORM_TOOLS_VERSION, "debian",
+ android::base::GetExecutablePath().c_str());
+ }
+
+--- a/system/core/fastboot/fastboot.cpp
++++ b/system/core/fastboot/fastboot.cpp
+@@ -59,10 +59,8 @@
+ #include <android-base/stringprintf.h>
+ #include <android-base/strings.h>
+ #include <android-base/unique_fd.h>
+-#include <build/version.h>
+ #include <libavb/libavb.h>
+ #include <liblp/liblp.h>
+-#include <platform_tools_version.h>
+ #include <sparse/sparse.h>
+ #include <ziparchive/zip_archive.h>
+
+@@ -1680,7 +1678,7 @@
+ setvbuf(stdout, nullptr, _IONBF, 0);
+ setvbuf(stderr, nullptr, _IONBF, 0);
+ } else if (name == "version") {
+- fprintf(stdout, "fastboot version %s-%s\n", PLATFORM_TOOLS_VERSION, android::build::GetBuildNumber().c_str());
++ fprintf(stdout, "fastboot version %s-%s\n", PLATFORM_TOOLS_VERSION, "debian");
+ fprintf(stdout, "Installed as %s\n", android::base::GetExecutablePath().c_str());
+ return 0;
+ #if !defined(_WIN32)
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/libusb-header-path.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/libusb-header-path.patch
new file mode 100644
index 0000000000..122bd70e7d
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/libusb-header-path.patch
@@ -0,0 +1,18 @@
+Upstream-Status: Pending
+
+Description: libusb.h comes from different location
+Author: Umang Parmar <umangjparmar@gmail.com>
+Forwarded: not-needed
+Last-Update: 2018-05-26
+
+--- a/system/core/adb/client/usb_libusb.cpp
++++ b/system/core/adb/client/usb_libusb.cpp
+@@ -30,7 +30,7 @@
+ #include <thread>
+ #include <unordered_map>
+
+-#include <libusb/libusb.h>
++#include <libusb-1.0/libusb.h>
+
+ #include <android-base/file.h>
+ #include <android-base/logging.h>
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/move-log-file-to-proper-dir.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/move-log-file-to-proper-dir.patch
new file mode 100644
index 0000000000..e8494ab433
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/move-log-file-to-proper-dir.patch
@@ -0,0 +1,20 @@
+Upstream-Status: Pending
+
+Description: Update log file directory.
+Author: Umang Parmar <umangjparmar@gmail.com>
+Last Updated: 2018-05-17
+
+--- a/system/core/adb/adb_utils.cpp
++++ b/system/core/adb/adb_utils.cpp
+@@ -339,6 +339,11 @@
+
+ return temp_path_utf8 + log_name;
+ #else
++ std::string log_dir = android::base::StringPrintf("/run/user/%u/adb.log", getuid());
++ struct stat st = {0};
++ if (stat(log_dir.c_str(), &st) == 0) {
++ return log_dir;
++ }
+ const char* tmp_dir = getenv("TMPDIR");
+ if (tmp_dir == nullptr) tmp_dir = "/tmp";
+ return android::base::StringPrintf("%s/adb.%u.log", tmp_dir, getuid());
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/simg_dump-python3.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/simg_dump-python3.patch
new file mode 100644
index 0000000000..6664dc2aa5
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/simg_dump-python3.patch
@@ -0,0 +1,64 @@
+Description: Port simg_dump to Python 3.
+Author: Antonio Russo <antonio.e.russo@gmail.com>
+Forwarded: not-needed
+Last-Update: 2019-01-05
+Origin: https://bugs.debian.org/945646
+
+---
+Upstream-Status: Pending
+
+Index: android-platform-tools/system/core/libsparse/simg_dump.py
+===================================================================
+--- android-platform-tools.orig/system/core/libsparse/simg_dump.py
++++ android-platform-tools/system/core/libsparse/simg_dump.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+
+ # Copyright (C) 2012 The Android Open Source Project
+ #
+@@ -14,7 +14,7 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+
+-from __future__ import print_function
++
+ import csv
+ import getopt
+ import hashlib
+@@ -47,7 +47,7 @@ def main():
+ opts, args = getopt.getopt(sys.argv[1:],
+ "vsc:",
+ ["verbose", "showhash", "csvfile"])
+- except getopt.GetoptError, e:
++ except getopt.GetoptError as e:
+ print(e)
+ usage(me)
+ for o, a in opts:
+@@ -66,7 +66,7 @@ def main():
+ usage(me)
+
+ if csvfilename:
+- csvfile = open(csvfilename, "wb")
++ csvfile = open(csvfilename, "w", newline='')
+ csvwriter = csv.writer(csvfile)
+
+ output = verbose or csvfilename or showhash
+@@ -121,7 +121,7 @@ def main():
+ "output offset", "output blocks", "type", "hash"])
+
+ offset = 0
+- for i in xrange(1, total_chunks + 1):
++ for i in range(1, total_chunks + 1):
+ header_bin = FH.read(12)
+ header = struct.unpack("<2H2I", header_bin)
+ chunk_type = header[0]
+@@ -160,7 +160,7 @@ def main():
+ if showhash:
+ h = hashlib.sha1()
+ data = fill_bin * (blk_sz / 4);
+- for block in xrange(chunk_sz):
++ for block in range(chunk_sz):
+ h.update(data)
+ curhash = h.hexdigest()
+ elif chunk_type == 0xCAC3:
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stdatomic.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stdatomic.patch
new file mode 100644
index 0000000000..e11f3cc783
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stdatomic.patch
@@ -0,0 +1,66 @@
+Upstream-Status: Pending
+
+Description: Fix incompatibility between <stdatomic.h> and <atomic>
+ This 2 headers combined will cause errors for both GCC and Clang. This patch
+ makes sure only one of them is present at any time.
+Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932
+Bug: https://reviews.llvm.org/D45470
+--- a/system/core/libcutils/include/cutils/trace.h
++++ b/system/core/libcutils/include/cutils/trace.h
+@@ -18,7 +18,14 @@
+ #define _LIBS_CUTILS_TRACE_H
+
+ #include <inttypes.h>
++#ifdef __cplusplus
++#include <atomic>
++using std::atomic_bool;
++using std::atomic_load_explicit;
++using std::memory_order_acquire;
++#else
+ #include <stdatomic.h>
++#endif
+ #include <stdbool.h>
+ #include <stdint.h>
+ #include <stdio.h>
+--- a/system/core/libcutils/include/cutils/atomic.h
++++ b/system/core/libcutils/include/cutils/atomic.h
+@@ -19,7 +19,23 @@
+
+ #include <stdint.h>
+ #include <sys/types.h>
++#ifdef __cplusplus
++#include <atomic>
++using std::atomic_compare_exchange_strong_explicit;
++using std::atomic_fetch_add_explicit;
++using std::atomic_fetch_or_explicit;
++using std::atomic_fetch_sub_explicit;
++using std::atomic_int_least32_t;
++using std::atomic_load_explicit;
++using std::atomic_store_explicit;
++using std::atomic_thread_fence;
++using std::memory_order::memory_order_acquire;
++using std::memory_order::memory_order_relaxed;
++using std::memory_order::memory_order_release;
++using std::memory_order::memory_order_seq_cst;
++#else
+ #include <stdatomic.h>
++#endif
+
+ #ifndef ANDROID_ATOMIC_INLINE
+ #define ANDROID_ATOMIC_INLINE static inline
+--- a/system/core/liblog/logger.h
++++ b/system/core/liblog/logger.h
+@@ -16,7 +16,13 @@
+
+ #pragma once
+
++#ifdef __cplusplus
++#include <atomic>
++using std::atomic_int;
++using std::atomic_uintptr_t;
++#else
+ #include <stdatomic.h>
++#endif
+ #include <sys/cdefs.h>
+
+ #include <log/log.h>
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stub-out-fastdeploy.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stub-out-fastdeploy.patch
new file mode 100644
index 0000000000..d86ef230f7
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stub-out-fastdeploy.patch
@@ -0,0 +1,95 @@
+Upstream-Status: Pending
+
+Description: Defer packaging fastdeploy with adb for 29.x.x tags.
+Forwarded: not-needed
+--- a/system/core/adb/client/commandline.cpp
++++ b/system/core/adb/client/commandline.cpp
+@@ -59,7 +59,6 @@
+ #include "bugreport.h"
+ #include "client/file_sync_client.h"
+ #include "commandline.h"
+-#include "fastdeploy.h"
+ #include "services.h"
+ #include "shell_protocol.h"
+ #include "sysdeps/chrono.h"
+--- a/system/core/adb/client/adb_install.cpp
++++ b/system/core/adb/client/adb_install.cpp
+@@ -35,7 +35,6 @@
+ #include "adb_utils.h"
+ #include "client/file_sync_client.h"
+ #include "commandline.h"
+-#include "fastdeploy.h"
+
+ static constexpr int kFastDeployMinApi = 24;
+
+@@ -167,14 +166,6 @@
+ }
+
+ if (use_fastdeploy) {
+- auto metadata = extract_metadata(file);
+- if (metadata.has_value()) {
+- // pass all but 1st (command) and last (apk path) parameters through to pm for
+- // session creation
+- std::vector<const char*> pm_args{argv + 1, argv + argc - 1};
+- auto patchFd = install_patch(pm_args.size(), pm_args.data());
+- return stream_patch(file, std::move(metadata.value()), std::move(patchFd));
+- }
+ }
+
+ struct stat sb;
+@@ -267,16 +258,6 @@
+ argv[last_apk] = apk_dest.c_str(); /* destination name, not source location */
+
+ if (use_fastdeploy) {
+- auto metadata = extract_metadata(apk_file[0]);
+- if (metadata.has_value()) {
+- auto patchFd = apply_patch_on_device(apk_dest.c_str());
+- int status = stream_patch(apk_file[0], std::move(metadata.value()), std::move(patchFd));
+-
+- result = pm_command(argc, argv);
+- delete_device_file(apk_dest);
+-
+- return status;
+- }
+ }
+
+ if (do_sync_push(apk_file, apk_dest.c_str(), false)) {
+@@ -292,7 +273,6 @@
+ InstallMode installMode = INSTALL_DEFAULT;
+ bool use_fastdeploy = false;
+ bool is_reinstall = false;
+- FastDeploy_AgentUpdateStrategy agent_update_strategy = FastDeploy_AgentUpdateDifferentVersion;
+
+ for (int i = 1; i < argc; i++) {
+ if (!strcmp(argv[i], "--streaming")) {
+@@ -313,13 +293,10 @@
+ use_fastdeploy = false;
+ } else if (!strcmp(argv[i], "--force-agent")) {
+ processedArgIndicies.push_back(i);
+- agent_update_strategy = FastDeploy_AgentUpdateAlways;
+ } else if (!strcmp(argv[i], "--date-check-agent")) {
+ processedArgIndicies.push_back(i);
+- agent_update_strategy = FastDeploy_AgentUpdateNewerTimeStamp;
+ } else if (!strcmp(argv[i], "--version-check-agent")) {
+ processedArgIndicies.push_back(i);
+- agent_update_strategy = FastDeploy_AgentUpdateDifferentVersion;
+ }
+ }
+
+@@ -331,13 +308,11 @@
+ error_exit("Attempting to use streaming install on unsupported device");
+ }
+
+- if (use_fastdeploy && get_device_api_level() < kFastDeployMinApi) {
+- printf("Fast Deploy is only compatible with devices of API version %d or higher, "
+- "ignoring.\n",
+- kFastDeployMinApi);
++ if (use_fastdeploy) {
++ printf("Fast Deploy is unavailable in this build of adb, "
++ "ignoring.\n");
+ use_fastdeploy = false;
+ }
+- fastdeploy_set_agent_update_strategy(agent_update_strategy);
+
+ std::vector<const char*> passthrough_argv;
+ for (int i = 0; i < argc; i++) {
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/throw-exception-on-unknown-os.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/throw-exception-on-unknown-os.patch
new file mode 100644
index 0000000000..70e732131f
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/throw-exception-on-unknown-os.patch
@@ -0,0 +1,18 @@
+Upstream-Status: Pending
+
+Description: Turn #error into exceptions
+ So the library can be built on non-Linux platforms too, although can't
+ guarauntee its functionality regarding that piece of code.
+Forwarded: not-needed
+--- a/system/core/base/file.cpp
++++ b/system/core/base/file.cpp
+@@ -422,7 +422,8 @@
+ path[PATH_MAX - 1] = 0;
+ return path;
+ #else
+-#error unknown OS
++#include <stdexcept>
++ throw std::runtime_error(std::string("Unknown OS!"));
+ #endif
+ }
+
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/throw-exception-on-unknown-os.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/throw-exception-on-unknown-os.patch
new file mode 100644
index 0000000000..70e732131f
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/throw-exception-on-unknown-os.patch
@@ -0,0 +1,18 @@
+Upstream-Status: Pending
+
+Description: Turn #error into exceptions
+ So the library can be built on non-Linux platforms too, although can't
+ guarauntee its functionality regarding that piece of code.
+Forwarded: not-needed
+--- a/system/core/base/file.cpp
++++ b/system/core/base/file.cpp
+@@ -422,7 +422,8 @@
+ path[PATH_MAX - 1] = 0;
+ return path;
+ #else
+-#error unknown OS
++#include <stdexcept>
++ throw std::runtime_error(std::string("Unknown OS!"));
+ #endif
+ }
+
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/remount b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/remount
new file mode 100644
index 0000000000..751c3501ef
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/remount
@@ -0,0 +1,2 @@
+#!/bin/sh
+mount -o remount,rw /
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/rules_yocto.mk b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/rules_yocto.mk
new file mode 100644
index 0000000000..2c808d3c1e
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/rules_yocto.mk
@@ -0,0 +1 @@
+CPPFLAGS += -fPIC
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_29.0.6.r14.bb b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_29.0.6.r14.bb
new file mode 100644
index 0000000000..fbad5e1368
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_29.0.6.r14.bb
@@ -0,0 +1,194 @@
+DESCRIPTION = "Various utilities from Android"
+SECTION = "console/utils"
+LICENSE = "Apache-2.0 & GPL-2.0-only & BSD-2-Clause & BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10 \
+ file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6 \
+ file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=cb641bc04cda31daea161b1bc15da69f \
+ file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9 \
+"
+DEPENDS = "libbsd libpcre zlib libcap libusb squashfs-tools p7zip libselinux googletest"
+
+SRCREV_core = "abfd66fafcbb691d7860df059f1df1c9b1ef29da"
+
+SRC_URI = " \
+ git://salsa.debian.org/android-tools-team/android-platform-tools;name=core;protocol=https;branch=master \
+"
+
+# Patches copied from android-platform-tools/debian/patches
+# and applied in the order defined by the file debian/patches/series
+SRC_URI += " \
+ file://debian/external/libunwind/user_pt_regs.patch \
+ file://debian/external/libunwind/legacy_built-in_sync_functions.patch \
+ file://debian/external/libunwind/20150704-CVE-2015-3239_dwarf_i.h.patch \
+ \
+ file://debian/system/core/move-log-file-to-proper-dir.patch \
+ file://debian/system/core/Added-missing-headers.patch \
+ file://debian/system/core/libusb-header-path.patch \
+ file://debian/system/core/stdatomic.patch \
+ file://debian/system/core/Nonnull.patch \
+ file://debian/system/core/Vector-cast.patch \
+ file://debian/system/core/throw-exception-on-unknown-os.patch \
+ file://debian/system/core/simg_dump-python3.patch \
+ file://debian/system/core/fix-attribute-issue-with-gcc.patch \
+ file://debian/system/core/fix-gettid-exception-declaration.patch \
+ file://debian/system/core/fix-build-on-non-x86.patch \
+ file://debian/system/core/add-missing-headers.patch \
+ file://debian/system/core/hard-code-build-number.patch \
+ file://debian/system/core/stub-out-fastdeploy.patch \
+ file://debian/system/core/fix-standard-namespace-errors.patch \
+ file://debian/system/core/Add-riscv64-support.patch \
+ \
+"
+
+# patches which don't come from debian
+SRC_URI += " \
+ file://rules_yocto.mk;subdir=git \
+ file://android-tools-adbd.service \
+ file://adbd.mk;subdir=git/debian/system/core \
+ file://remount \
+ file://0001-Fixes-for-yocto-build.patch \
+ file://0002-android-tools-modifications-to-make-it-build-in-yoct.patch \
+ file://0003-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch \
+ file://0004-adb-Fix-build-on-big-endian-systems.patch \
+ file://0005-adb-Allow-adbd-to-be-run-as-root.patch \
+"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/${BPN}"
+
+# http://errors.yoctoproject.org/Errors/Details/1debian881/
+ARM_INSTRUCTION_SET:armv4 = "arm"
+ARM_INSTRUCTION_SET:armv5 = "arm"
+
+COMPATIBLE_HOST:powerpc = "(null)"
+COMPATIBLE_HOST:powerpc64 = "(null)"
+COMPATIBLE_HOST:powerpc64le = "(null)"
+
+inherit systemd
+
+SYSTEMD_SERVICE:${PN}-adbd = "android-tools-adbd.service"
+
+# Find libbsd headers during native builds
+CC:append:class-native = " -I${STAGING_INCDIR}"
+CC:append:class-nativesdk = " -I${STAGING_INCDIR}"
+
+PREREQUISITE_core = "liblog libbase libsparse liblog libcutils"
+TOOLS_TO_BUILD = "libcrypto_utils libadb libziparchive fastboot adb img2simg simg2img libbacktrace"
+TOOLS_TO_BUILD:append:class-target = " adbd"
+
+do_compile() {
+
+ case "${HOST_ARCH}" in
+ arm)
+ export android_arch=linux-arm
+ cpu=arm
+ deb_host_arch=arm
+ ;;
+ aarch64)
+ export android_arch=linux-arm64
+ cpu=arm64
+ deb_host_arch=arm64
+ ;;
+ riscv64)
+ export android_arch=linux-riscv64
+ ;;
+ mips|mipsel)
+ export android_arch=linux-mips
+ cpu=mips
+ deb_host_arch=mips
+ ;;
+ mips64|mips64el)
+ export android_arch=linux-mips64
+ cpu=mips64
+ deb_host_arch=mips64
+ ;;
+ powerpc|powerpc64)
+ export android_arch=linux-ppc
+ ;;
+ i586|i686|x86_64)
+ export android_arch=linux-x86
+ cpu=x86_64
+ deb_host_arch=amd64
+ ;;
+ esac
+
+ export SRCDIR=${S}
+
+ oe_runmake -f ${S}/debian/external/boringssl/libcrypto.mk -C ${S}
+ oe_runmake -f ${S}/debian/external/libunwind/libunwind.mk -C ${S} CPU=${cpu}
+
+ for tool in ${PREREQUISITE_core}; do
+ oe_runmake -f ${S}/debian/system/core/${tool}.mk -C ${S}
+ done
+
+ for i in `find ${S}/debian/system/extras/ -name "*.mk"`; do
+ oe_runmake -f $i -C ${S}
+ done
+
+ for tool in ${TOOLS_TO_BUILD}; do
+ if [ "$tool" = "libbacktrace" ]; then
+ oe_runmake -f ${S}/debian/system/core/${tool}.mk -C ${S} DEB_HOST_ARCH=${deb_host_arch}
+ else
+ oe_runmake -f ${S}/debian/system/core/${tool}.mk -C ${S}
+ fi
+ done
+
+}
+
+do_install() {
+ install -d ${D}${base_sbindir}
+ install -m 0755 ${S}/../remount -D ${D}${base_sbindir}/remount
+
+ for tool in img2simg simg2img fastboot adbd; do
+ if echo ${TOOLS_TO_BUILD} | grep -q "$tool" ; then
+ install -D -p -m0755 ${S}/debian/out/system/core/$tool ${D}${bindir}/$tool
+ fi
+ done
+
+ # grep adb also matches adbd, so handle adb separately from other tools
+ if echo ${TOOLS_TO_BUILD} | grep -q "adb " ; then
+ install -d ${D}${bindir}
+ install -m0755 ${S}/debian/out/system/core/adb ${D}${bindir}
+ fi
+
+ # Outside the if statement to avoid errors during do_package
+ install -D -p -m0644 ${WORKDIR}/android-tools-adbd.service \
+ ${D}${systemd_unitdir}/system/android-tools-adbd.service
+
+ install -d ${D}${libdir}/android/
+ install -m0755 ${S}/debian/out/system/core/*.so.* ${D}${libdir}/android/
+ if echo ${TOOLS_TO_BUILD} | grep -q "mkbootimg" ; then
+ install -d ${D}${bindir}
+ install -m0755 ${B}/mkbootimg/mkbootimg ${D}${bindir}
+ fi
+}
+
+PACKAGES =+ "${PN}-fstools ${PN}-adbd"
+
+RDEPENDS:${BPN} = "${BPN}-conf p7zip"
+
+FILES:${PN}-adbd = "\
+ ${bindir}/adbd \
+ ${systemd_unitdir}/system/android-tools-adbd.service \
+"
+
+FILES:${PN}-fstools = "\
+ ${bindir}/ext2simg \
+ ${bindir}/ext4fixup \
+ ${bindir}/img2simg \
+ ${bindir}/make_ext4fs \
+ ${bindir}/simg2img \
+ ${bindir}/simg2simg \
+ ${bindir}/simg_dump \
+ ${bindir}/mkuserimg \
+"
+FILES:${PN} += "${libdir}/android ${libdir}/android/*"
+
+BBCLASSEXTEND = "native"
+
+android_tools_enable_devmode() {
+ touch ${IMAGE_ROOTFS}/var/usb-debugging-enabled
+}
+
+ROOTFS_POSTPROCESS_COMMAND_${PN}-adbd += "${@bb.utils.contains("USB_DEBUGGING_ENABLED", "1", "android_tools_enable_devmode;", "", d)}"
diff --git a/meta-oe/files/static-group-meta-oe b/meta-oe/files/static-group-meta-oe
new file mode 100644
index 0000000000..543c893c00
--- /dev/null
+++ b/meta-oe/files/static-group-meta-oe
@@ -0,0 +1,9 @@
+redis:x:600:
+xrdp:x:601:
+sanlock:x:602:
+mysql:x:603:
+postgres:x:28:
+zabbix:x:605:
+mail:x:606:
+influxdb:x:622:
+nogroup:x:65534:
diff --git a/meta-oe/files/static-passwd-meta-oe b/meta-oe/files/static-passwd-meta-oe
new file mode 100644
index 0000000000..daf686b930
--- /dev/null
+++ b/meta-oe/files/static-passwd-meta-oe
@@ -0,0 +1,11 @@
+redis:x:600:600::/:/bin/nologin
+xrdp:x:601:601::/:/bin/nologin
+sanlock:x:602:602::/:/bin/nologin
+mysql:x:603:603::/:/bin/nologin
+postgres:x:28:28::/:/bin/nologin
+zabbix:x:605:605::/:/bin/nologin
+cyrus:x:606:nogroup::/:/bin/nologin
+pcp:x:620:nogroup::/:/bin/nologin
+pcpqa:x:621:nogroup::/:/bin/nologin
+influxdb:x:622:influxdb::/var/lib/influxdb:/bin/nologin
+mongodb:x:623:nogroup::/:/bin/nologin
diff --git a/meta-oe/lib/oeqa/selftest/cases/syzkaller.py b/meta-oe/lib/oeqa/selftest/cases/syzkaller.py
new file mode 100644
index 0000000000..64fc864bf8
--- /dev/null
+++ b/meta-oe/lib/oeqa/selftest/cases/syzkaller.py
@@ -0,0 +1,124 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
+from oeqa.utils.network import get_free_port
+
+class TestSyzkaller(OESelftestTestCase):
+ def setUpSyzkallerConfig(self, os_arch, qemu_postfix):
+ syz_target_sysroot = get_bb_var('PKGD', 'syzkaller')
+ syz_target = os.path.join(syz_target_sysroot, 'usr')
+
+ qemu_native_bin = os.path.join(self.syz_native_sysroot, 'usr/bin/qemu-system-' + qemu_postfix)
+ kernel_cmdline = "ip=dhcp rootfs=/dev/sda dummy_hcd.num=%s" % (self.dummy_hcd_num)
+ kernel_objdir = self.deploy_dir_image
+ port = get_free_port()
+
+ if not os.path.exists(self.syz_workdir):
+ os.mkdir(self.syz_workdir)
+
+ with open(self.syz_cfg, 'w') as f:
+ f.write(
+"""
+{
+ "target": "%s",
+ "http": "127.0.0.1:%s",
+ "workdir": "%s",
+ "kernel_obj": "%s",
+ "kernel_src": "%s",
+ "image": "%s",
+ "syzkaller": "%s",
+ "type": "qemu",
+ "reproduce" : false,
+ "sandbox": "none",
+ "vm": {
+ "count": %s,
+ "kernel": "%s",
+ "cmdline": "%s",
+ "cpu": %s,
+ "mem": %s,
+ "qemu": "%s",
+ "qemu_args": "-device virtio-scsi-pci,id=scsi -device scsi-hd,drive=rootfs -enable-kvm -cpu host,migratable=off",
+ "image_device": "drive index=0,id=rootfs,if=none,media=disk,file="
+ }
+}
+"""
+% (os_arch, port, self.syz_workdir, kernel_objdir, self.kernel_src,
+ self.rootfs, syz_target, self.syz_qemu_vms, self.kernel, kernel_cmdline,
+ self.syz_qemu_cpus, self.syz_qemu_mem, qemu_native_bin))
+
+ def test_syzkallerFuzzingQemux86_64(self):
+ self.image = 'core-image-minimal'
+ self.machine = 'qemux86-64'
+ self.fstype = "ext4"
+
+ self.write_config(
+"""
+MACHINE = "%s"
+IMAGE_FSTYPES = "%s"
+KERNEL_IMAGETYPES += "vmlinux"
+EXTRA_IMAGE_FEATURES += " ssh-server-openssh"
+IMAGE_ROOTFS_EXTRA_SPACE = "512000"
+KERNEL_EXTRA_FEATURES += " \
+ cfg/debug/syzkaller/debug-syzkaller.scc \
+"
+IMAGE_INSTALL:append = " syzkaller"
+"""
+% (self.machine, self.fstype))
+
+ build_vars = ['TOPDIR', 'DEPLOY_DIR_IMAGE', 'STAGING_KERNEL_DIR']
+ syz_fuzz_vars = ['SYZ_WORKDIR', 'SYZ_FUZZTIME', 'SYZ_QEMU_MEM', 'SYZ_QEMU_CPUS', 'SYZ_QEMU_VM_COUNT']
+ syz_aux_vars = ['SYZ_DUMMY_HCD_NUM']
+
+ needed_vars = build_vars + syz_fuzz_vars + syz_aux_vars
+ bb_vars = get_bb_vars(needed_vars)
+
+ for var in syz_fuzz_vars:
+ if not bb_vars[var]:
+ self.skipTest(
+"""
+%s variable not set.
+Please configure %s fuzzing parameters to run this test.
+
+Example local.conf config:
+SYZ_WORKDIR="<path>" # syzkaller workdir location (must be persistent across os-selftest runs)
+SYZ_FUZZTIME="30" # fuzzing time in minutes
+SYZ_QEMU_VM_COUNT="1" # number of qemu VMs to be used for fuzzing
+SYZ_QEMU_MEM="2048"' # memory used by each qemu VM
+SYZ_QEMU_CPUS="2"' # number of cpus used by each qemu VM
+"""
+% (var, ', '.join(syz_fuzz_vars)))
+
+ self.topdir = bb_vars['TOPDIR']
+ self.deploy_dir_image = bb_vars['DEPLOY_DIR_IMAGE']
+ self.kernel_src = bb_vars['STAGING_KERNEL_DIR']
+
+ """
+ SYZ_WORKDIR must be set to an absolute path where syzkaller will store
+ the corpus database, config, runtime and crash data generated during
+ fuzzing. It must be persistent between oe-selftest runs, so the fuzzer
+ does not start over again on each run.
+ """
+ self.syz_workdir = bb_vars['SYZ_WORKDIR']
+ self.syz_fuzztime = int(bb_vars['SYZ_FUZZTIME']) * 60
+ self.syz_qemu_mem = int(bb_vars['SYZ_QEMU_MEM'])
+ self.syz_qemu_cpus = int(bb_vars['SYZ_QEMU_CPUS'])
+ self.syz_qemu_vms = int(bb_vars['SYZ_QEMU_VM_COUNT'])
+ self.dummy_hcd_num = int(bb_vars['SYZ_DUMMY_HCD_NUM'] or 8)
+
+ self.syz_cfg = os.path.join(self.syz_workdir, 'syzkaller.cfg')
+ self.kernel = os.path.join(self.deploy_dir_image, 'bzImage')
+ self.rootfs = os.path.join(self.deploy_dir_image, '%s-%s.%s' % (self.image, self.machine, self.fstype))
+
+ self.syz_native_sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'syzkaller-native')
+
+ self.setUpSyzkallerConfig("linux/amd64", "x86_64")
+
+ bitbake(self.image)
+ bitbake('syzkaller')
+ bitbake('syzkaller-native -c addto_recipe_sysroot')
+
+ cmd = "syz-manager -config %s" % self.syz_cfg
+ runCmd(cmd, native_sysroot = self.syz_native_sysroot, timeout=self.syz_fuzztime, output_log=self.logger, ignore_status=True, shell=True)
diff --git a/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch
new file mode 100644
index 0000000000..af20acdcd0
--- /dev/null
+++ b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-configure-lfs.patch
@@ -0,0 +1,39 @@
+Upstream-Status: Submitted [https://salsa.debian.org/etbe/bonnie/-/merge_requests/3/diffs?commit_id=4ffece51791ba75ddca2e664cdce726cc40c92d3]
+
+diff --git i/configure.in w/configure.in
+index 080e40c..f2a2bbe 100644
+--- i/configure.in
++++ w/configure.in
+@@ -82,8 +82,15 @@ void * thread_func(void * param) { return NULL; }
+ , thread_ldflags="-lpthread"
+ , thread_ldflags="-pthread")
+
+-AC_SUBST(large_file)
+-AC_TRY_RUN([#ifndef _LARGEFILE64_SOURCE
++AC_ARG_ENABLE(lfs,
++ [ --disable-lfs disable large file support],
++ LFS_CHOICE=$enableval, LFS_CHOICE=check)
++
++if test "$LFS_CHOICE" = yes; then
++ bonniepp_cv_large_file=yes
++elif test "$LFS_CHOICE" = check; then
++ AC_CACHE_CHECK([whether to enable -D_LARGEFILE64_SOURCE], bonniepp_cv_large_file,
++ AC_TRY_RUN([#ifndef _LARGEFILE64_SOURCE
+ #define _LARGEFILE64_SOURCE
+ #endif
+ #include <stdio.h>
+@@ -118,8 +125,12 @@ int main () {
+ }
+ close(fd);
+ return 0;
+-}], large_file="yes")
+-if [[ -n "$large_file" ]]; then
++}], bonniepp_cv_large_file="yes"))
++fi
++
++AC_SUBST(large_file)
++
++if [[ -n "$bonniepp_cv_large_file" ]]; then
+ large_file="#define _LARGEFILE64_SOURCE"
+ fi
+
diff --git a/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch
new file mode 100644
index 0000000000..4b37b8d654
--- /dev/null
+++ b/meta-oe/recipes-benchmark/bonnie/bonnie++/fix-csv2html-data.patch
@@ -0,0 +1,183 @@
+commit 7e9433a56f22426b11cbc9bd80e0debca67c893b
+Author: Jörg Sommer <joerg.sommer@navimatix.de>
+Date: Mon Jun 26 12:38:30 2023 +0200
+
+ csv2html: Explicitly reference data in top level
+
+ With g++ 11 *data* became ambiguous with [std::data][1]. Therefore it's
+ needed to explicitly address the variable from the top level scope.
+
+ [1] https://en.cppreference.com/w/cpp/iterator/data
+
+Upstream-Status: Submitted [https://salsa.debian.org/etbe/bonnie/-/merge_requests/3/diffs?commit_id=fb13a71d56dab8aaa39233fcaaedfb0ba4ad647d]
+
+diff --git a/bon_csv2html.cpp b/bon_csv2html.cpp
+index e9d9c50..652e330 100644
+--- a/bon_csv2html.cpp
++++ b/bon_csv2html.cpp
+@@ -87,8 +87,8 @@ int main(int argc, char **argv)
+ read_in(buf);
+ }
+
+- props = new PPCCHAR[data.size()];
+- for(i = 0; i < data.size(); i++)
++ props = new PPCCHAR[::data.size()];
++ for(i = 0; i < ::data.size(); i++)
+ {
+ props[i] = new PCCHAR[MAX_ITEMS];
+ props[i][0] = NULL;
+@@ -109,7 +109,7 @@ int main(int argc, char **argv)
+ }
+ calc_vals();
+ int mid_width = header();
+- for(i = 0; i < data.size(); i++)
++ for(i = 0; i < ::data.size(); i++)
+ {
+ // First print the average speed line
+ printf("<tr>");
+@@ -171,23 +171,23 @@ int compar(const void *a, const void *b)
+
+ void calc_vals()
+ {
+- ITEM *arr = new ITEM[data.size()];
++ ITEM *arr = new ITEM[::data.size()];
+ for(unsigned int column_ind = 0; column_ind < MAX_ITEMS; column_ind++)
+ {
+ switch(vals[column_ind])
+ {
+ case eNoCols:
+ {
+- for(unsigned int row_ind = 0; row_ind < data.size(); row_ind++)
++ for(unsigned int row_ind = 0; row_ind < ::data.size(); row_ind++)
+ {
+ if(column_ind == COL_CONCURRENCY)
+ {
+- if(data[row_ind][column_ind] && strcmp("1", data[row_ind][column_ind]))
++ if(::data[row_ind][column_ind] && strcmp("1", ::data[row_ind][column_ind]))
+ col_used[column_ind] = true;
+ }
+ else
+ {
+- if(data[row_ind][column_ind] && strlen(data[row_ind][column_ind]))
++ if(::data[row_ind][column_ind] && strlen(::data[row_ind][column_ind]))
+ col_used[column_ind] = true;
+ }
+ }
+@@ -195,22 +195,22 @@ void calc_vals()
+ break;
+ case eCPU:
+ {
+- for(unsigned int row_ind = 0; row_ind < data.size(); row_ind++)
++ for(unsigned int row_ind = 0; row_ind < ::data.size(); row_ind++)
+ {
+ double work, cpu;
+ arr[row_ind].val = 0.0;
+- if(data[row_ind].size() > column_ind
+- && sscanf(data[row_ind][column_ind - 1], "%lf", &work) == 1
+- && sscanf(data[row_ind][column_ind], "%lf", &cpu) == 1)
++ if(::data[row_ind].size() > column_ind
++ && sscanf(::data[row_ind][column_ind - 1], "%lf", &work) == 1
++ && sscanf(::data[row_ind][column_ind], "%lf", &cpu) == 1)
+ {
+ arr[row_ind].val = cpu / work;
+ }
+ arr[row_ind].pos = row_ind;
+ }
+- qsort(arr, data.size(), sizeof(ITEM), compar);
++ qsort(arr, ::data.size(), sizeof(ITEM), compar);
+ int col_count = -1;
+ double min_col = -1.0, max_col = -1.0;
+- for(unsigned int sort_ind = 0; sort_ind < data.size(); sort_ind++)
++ for(unsigned int sort_ind = 0; sort_ind < ::data.size(); sort_ind++)
+ {
+ // if item is different from previous or if the first row
+ // (sort_ind == 0) then increment col count
+@@ -239,7 +239,7 @@ void calc_vals()
+ min_col /= mult;
+ }
+ double range_col = max_col - min_col;
+- for(unsigned int sort_ind = 0; sort_ind < data.size(); sort_ind++)
++ for(unsigned int sort_ind = 0; sort_ind < ::data.size(); sort_ind++)
+ {
+ if(arr[sort_ind].col_ind > -1)
+ {
+@@ -250,7 +250,7 @@ void calc_vals()
+ }
+ else
+ {
+- for(unsigned int sort_ind = 0; sort_ind < data.size(); sort_ind++)
++ for(unsigned int sort_ind = 0; sort_ind < ::data.size(); sort_ind++)
+ {
+ if(vals[column_ind] == eLatency)
+ {
+@@ -263,25 +263,25 @@ void calc_vals()
+ case eSpeed:
+ case eLatency:
+ {
+- for(unsigned int row_ind = 0; row_ind < data.size(); row_ind++)
++ for(unsigned int row_ind = 0; row_ind < ::data.size(); row_ind++)
+ {
+ arr[row_ind].val = 0.0;
+- if(data[row_ind].size() <= column_ind
+- || sscanf(data[row_ind][column_ind], "%lf", &arr[row_ind].val) == 0)
++ if(::data[row_ind].size() <= column_ind
++ || sscanf(::data[row_ind][column_ind], "%lf", &arr[row_ind].val) == 0)
+ arr[row_ind].val = 0.0;
+ if(vals[column_ind] == eLatency && arr[row_ind].val != 0.0)
+ {
+- if(strstr(data[row_ind][column_ind], "ms"))
++ if(strstr(::data[row_ind][column_ind], "ms"))
+ arr[row_ind].val *= 1000.0;
+- else if(!strstr(data[row_ind][column_ind], "us"))
++ else if(!strstr(::data[row_ind][column_ind], "us"))
+ arr[row_ind].val *= 1000000.0; // is !us && !ms then secs!
+ }
+ arr[row_ind].pos = row_ind;
+ }
+- qsort(arr, data.size(), sizeof(ITEM), compar);
++ qsort(arr, ::data.size(), sizeof(ITEM), compar);
+ int col_count = -1;
+ double min_col = -1.0, max_col = -1.0;
+- for(unsigned int sort_ind = 0; sort_ind < data.size(); sort_ind++)
++ for(unsigned int sort_ind = 0; sort_ind < ::data.size(); sort_ind++)
+ {
+ // if item is different from previous or if the first row
+ // (sort_ind == 0) then increment col count
+@@ -310,7 +310,7 @@ void calc_vals()
+ min_col /= mult;
+ }
+ double range_col = max_col - min_col;
+- for(unsigned int sort_ind = 0; sort_ind < data.size(); sort_ind++)
++ for(unsigned int sort_ind = 0; sort_ind < ::data.size(); sort_ind++)
+ {
+ if(arr[sort_ind].col_ind > -1)
+ {
+@@ -332,7 +332,7 @@ void calc_vals()
+ }
+ else
+ {
+- for(unsigned int sort_ind = 0; sort_ind < data.size(); sort_ind++)
++ for(unsigned int sort_ind = 0; sort_ind < ::data.size(); sort_ind++)
+ {
+ if(vals[column_ind] == eLatency)
+ {
+@@ -481,16 +481,16 @@ void read_in(CPCCHAR buf)
+ free((void *)arr[0]);
+ return;
+ }
+- data.push_back(arr);
++ ::data.push_back(arr);
+ }
+
+ void print_item(int num, int item, CPCCHAR extra)
+ {
+ PCCHAR line_data;
+ char buf[1024];
+- if(int(data[num].size()) > item)
++ if(int(::data[num].size()) > item)
+ {
+- line_data = data[num][item];
++ line_data = ::data[num][item];
+ switch(item)
+ {
+ case COL_PUT_BLOCK:
diff --git a/meta-oe/recipes-benchmark/bonnie/bonnie++/makefile-use-link-for-helper.patch b/meta-oe/recipes-benchmark/bonnie/bonnie++/makefile-use-link-for-helper.patch
new file mode 100644
index 0000000000..21565977a2
--- /dev/null
+++ b/meta-oe/recipes-benchmark/bonnie/bonnie++/makefile-use-link-for-helper.patch
@@ -0,0 +1,24 @@
+Upstream-Status: Submitted [https://salsa.debian.org/etbe/bonnie/-/merge_requests/3/diffs?commit_id=f6ce71d9f97316697c55d0fb3c756becdee04c5c]
+
+diff --git i/Makefile.in w/Makefile.in
+index 6dfdb75..87a5fb1 100644
+--- i/Makefile.in
++++ w/Makefile.in
+@@ -10,7 +10,7 @@ eprefix=@exec_prefix@
+ WFLAGS=-Wall -W -Wshadow -Wpointer-arith -Wwrite-strings -pedantic -ffor-scope -Wcast-align -Wsign-compare -Wpointer-arith -Wwrite-strings -Wformat-security -Wswitch-enum -Winit-self $(MORE_WARNINGS)
+ CFLAGS=-O2 @debug@ -DNDEBUG $(WFLAGS) $(MORECFLAGS)
+ CXX=@CXX@ $(CFLAGS)
+-LINK=@CXX@
++LINK=$(LINK.cc)
+ THREAD_LFLAGS=@thread_ldflags@
+
+ INSTALL=@INSTALL@
+@@ -43,7 +43,7 @@ getc_putc: $(GETCOBJS) getc_putc_helper
+ $(LINK) -o getc_putc $(GETCOBJS) $(THREAD_LFLAGS)
+
+ getc_putc_helper: $(GETCHOBJS)
+- $(CXX) -o getc_putc_helper $(GETCHOBJS)
++ $(LINK) -o getc_putc_helper $(GETCHOBJS)
+
+ bon_csv2html: bon_csv2html.o
+ $(LINK) bon_csv2html.o -o bon_csv2html
diff --git a/meta-oe/recipes-benchmark/bonnie/bonnie++_2.00a.bb b/meta-oe/recipes-benchmark/bonnie/bonnie++_2.00a.bb
new file mode 100644
index 0000000000..29590bfe84
--- /dev/null
+++ b/meta-oe/recipes-benchmark/bonnie/bonnie++_2.00a.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Tests large file IO and creation/deletion of small files"
+HOMEPAGE = "https://doc.coker.com.au/projects/bonnie/"
+SECTION = "benchmark/tests"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://copyright.txt;md5=cd4dde95a6b9d122f0a9150ae9cc3ee0"
+
+SRC_URI = "\
+ http://www.coker.com.au/bonnie++/${BPN}-${PV}.tgz \
+ file://fix-configure-lfs.patch \
+ file://fix-csv2html-data.patch \
+ file://makefile-use-link-for-helper.patch \
+"
+SRC_URI[sha256sum] = "a8d33bbd81bc7eb559ce5bf6e584b9b53faea39ccfb4ae92e58f27257e468f0e"
+
+# force lfs to skip configure's check, because we are cross-building
+PACKAGECONFIG ?= "lfs"
+PACKAGECONFIG[lfs] = "--enable-lfs,--disable-lfs"
+
+inherit autotools
+
+EXTRA_OECONF += "--disable-stripping"
+EXTRA_OEMAKE += "-I ${S} VPATH=${S}"
+CXXFLAGS += "-I ${S}"
+
+do_install() {
+ oe_runmake eprefix='${D}${exec_prefix}' install-bin
+}
+
+PACKAGE_BEFORE_PN += "${PN}-scripts"
+
+FILES:${PN}-scripts = "${bindir}/bon_csv2*"
+
+RDEPENDS:${PN}-scripts += "perl"
diff --git a/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb b/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb
index 7969af6c37..c58524aa64 100644
--- a/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb
+++ b/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb
@@ -7,7 +7,7 @@ PROVIDES += "cpuburn-neon"
SRCREV = "ad7e646700d14b81413297bda02fb7fe96613c3f"
-PV = "1.0+git${SRCPV}"
+PV = "1.0+git"
SRC_URI = "git://github.com/ssvb/cpuburn-arm.git;branch=master;protocol=https \
file://0001-cpuburn-a8.S-Remove-.func-.endfunc.patch \
diff --git a/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch b/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch
index 6a5350c37c..63e743f64b 100644
--- a/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch
+++ b/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch
@@ -13,7 +13,7 @@ dhrystone sources:
Additionally, this patch adds a simple Makefile.
-Upstream-status: Pending
+Upstream-Status: Pending
Sign-off-by: Kimmo Surakka <kimmo.surakka@ge.com>
Signed-off-by: Jose Alarcon <jose.alarcon@ge.com>
diff --git a/meta-oe/recipes-benchmark/fio/fio_3.32.bb b/meta-oe/recipes-benchmark/fio/fio_3.32.bb
deleted file mode 100644
index 90e28340c6..0000000000
--- a/meta-oe/recipes-benchmark/fio/fio_3.32.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Filesystem and hardware benchmark and stress tool"
-DESCRIPTION = "fio is an I/O tool meant to be used both for benchmark and \
-stress/hardware verification. It has support for a number of I/O engines, \
-I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, \
-and much more. It can work on block devices as well as files. fio accepts \
-job descriptions in a simple-to-understand text format. Several example job \
-files are included. fio displays all sorts of I/O performance information."
-HOMEPAGE = "http://freecode.com/projects/fio"
-SECTION = "console/tests"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "libaio zlib coreutils-native"
-DEPENDS += "${@bb.utils.contains('MACHINE_FEATURES', 'pmem', 'pmdk', '', d)}"
-RDEPENDS:${PN} = "python3-core bash"
-
-PACKAGECONFIG_NUMA = "numa"
-# ARM does not currently support NUMA
-PACKAGECONFIG_NUMA:arm = ""
-PACKAGECONFIG_NUMA:armeb = ""
-
-PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}"
-PACKAGECONFIG[numa] = ",--disable-numa,numactl"
-
-SRCREV = "db7fc8d864dc4fb607a0379333a0db60431bd649"
-SRC_URI = "git://git.kernel.dk/fio.git;branch=master"
-
-S = "${WORKDIR}/git"
-
-# avoids build breaks when using no-static-libs.inc
-DISABLE_STATIC = ""
-
-EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'"
-EXTRA_OECONF = "${@bb.utils.contains('MACHINE_FEATURES', 'x86', '--disable-optimizations', '', d)}"
-
-do_configure() {
- ./configure ${EXTRA_OECONF}
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D} prefix=${prefix} mandir=${mandir}
- install -d ${D}/${docdir}/${PN}
- cp -R --no-dereference --preserve=mode,links -v ${S}/examples ${D}/${docdir}/${PN}/
-}
diff --git a/meta-oe/recipes-benchmark/fio/fio_3.36.bb b/meta-oe/recipes-benchmark/fio/fio_3.36.bb
new file mode 100644
index 0000000000..a871ed8fe5
--- /dev/null
+++ b/meta-oe/recipes-benchmark/fio/fio_3.36.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Filesystem and hardware benchmark and stress tool"
+DESCRIPTION = "fio is an I/O tool meant to be used both for benchmark and \
+stress/hardware verification. It has support for a number of I/O engines, \
+I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, \
+and much more. It can work on block devices as well as files. fio accepts \
+job descriptions in a simple-to-understand text format. Several example job \
+files are included. fio displays all sorts of I/O performance information."
+HOMEPAGE = "http://freecode.com/projects/fio"
+SECTION = "console/tests"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "libaio zlib coreutils-native"
+DEPENDS += "${@bb.utils.contains('MACHINE_FEATURES', 'pmem', 'pmdk', '', d)}"
+RDEPENDS:${PN} = "python3-core bash"
+
+PACKAGECONFIG_NUMA = "numa"
+# ARM does not currently support NUMA
+PACKAGECONFIG_NUMA:arm = ""
+PACKAGECONFIG_NUMA:armeb = ""
+
+PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}"
+PACKAGECONFIG[numa] = ",--disable-numa,numactl"
+
+PV .= "+git"
+SRCREV = "b2403d413ee734e8835539319d8bc3429a0777ac"
+SRC_URI = "git://git.kernel.dk/fio.git;branch=master"
+
+S = "${WORKDIR}/git"
+
+# avoids build breaks when using no-static-libs.inc
+DISABLE_STATIC = ""
+
+EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'"
+EXTRA_OECONF = "${@bb.utils.contains('MACHINE_FEATURES', 'x86', '--disable-optimizations', '', d)}"
+
+do_configure() {
+ ./configure ${EXTRA_OECONF}
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} prefix=${prefix} mandir=${mandir}
+ install -d ${D}/${docdir}/${PN}
+ cp -R --no-dereference --preserve=mode,links -v ${S}/examples ${D}/${docdir}/${PN}/
+}
diff --git a/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch b/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch
index e9b880c260..9d652e10ad 100644
--- a/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch
+++ b/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch
@@ -16,7 +16,7 @@ See:
My contribution is to tweak the wscript to link all the required libraries.
-Upstream-status: submitted [https://github.com/glmark2/glmark2/pull/135]
+Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/135]
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
src/native-state-dispmanx.cpp | 22 +++++++++++++++++-----
diff --git a/meta-oe/recipes-benchmark/glmark2/files/0001-libmatrix-Include-missing-utility-header.patch b/meta-oe/recipes-benchmark/glmark2/files/0001-libmatrix-Include-missing-utility-header.patch
deleted file mode 100644
index 959a18e5eb..0000000000
--- a/meta-oe/recipes-benchmark/glmark2/files/0001-libmatrix-Include-missing-utility-header.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 45cb02332b38b2059e7e44369c3d8684492a7def Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 12 Apr 2022 11:41:41 -0700
-Subject: [PATCH] libmatrix: Include missing <utility> header
-
-Fixes build with gcc12
-| ../git/src/libmatrix/program.h:43:21: error: 'exchange' is not a member of 'std' | 43 | ready_(std::exchange(shader.ready_, false)), | | ^~~~~~~~
-
-Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/174]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/libmatrix/program.h | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/src/libmatrix/program.h
-+++ b/src/libmatrix/program.h
-@@ -13,6 +13,7 @@
- #define PROGRAM_H_
-
- #include <string>
-+#include <utility>
- #include <vector>
- #include <map>
- #include "mat.h"
diff --git a/meta-oe/recipes-benchmark/glmark2/files/0002-run-dispmanx-fullscreen.patch b/meta-oe/recipes-benchmark/glmark2/files/0002-run-dispmanx-fullscreen.patch
index 27bd62edb9..05a074cf55 100644
--- a/meta-oe/recipes-benchmark/glmark2/files/0002-run-dispmanx-fullscreen.patch
+++ b/meta-oe/recipes-benchmark/glmark2/files/0002-run-dispmanx-fullscreen.patch
@@ -6,17 +6,17 @@ Subject: [PATCH] run dispmanx fullscreen
The dispmanx flavour can only run fullscreen, therefore set the size to
fullscreen when glmark2-es2-dispmanx is run.
-Upstream-status: submitted [https://github.com/glmark2/glmark2/pull/135]
+Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/135]
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
src/main.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/main.cpp b/src/main.cpp
-index 677962e..273a217 100644
+index d1077fe..d717cd4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
-@@ -164,6 +164,11 @@ main(int argc, char *argv[])
+@@ -202,6 +202,11 @@ main(int argc, char *argv[])
Options::size = std::pair<int,int>(800, 600);
}
@@ -26,5 +26,7 @@ index 677962e..273a217 100644
+#endif
+
// Create the canvas
- #if GLMARK2_USE_X11
- NativeStateX11 native_state;
+ #if GLMARK2_USE_EGL
+ GLStateEGL gl_state;
+--
+2.25.1
diff --git a/meta-oe/recipes-benchmark/glmark2/files/0003-GLVisualConfig-By-default-don-t-care-about-the-stenc.patch b/meta-oe/recipes-benchmark/glmark2/files/0003-GLVisualConfig-By-default-don-t-care-about-the-stenc.patch
new file mode 100644
index 0000000000..dc47af83e7
--- /dev/null
+++ b/meta-oe/recipes-benchmark/glmark2/files/0003-GLVisualConfig-By-default-don-t-care-about-the-stenc.patch
@@ -0,0 +1,103 @@
+From b59ec731c8c7e084b289e4ea92938faaebcc389d Mon Sep 17 00:00:00 2001
+From: Alexandros Frantzis <alexandros.frantzis@collabora.com>
+Date: Wed, 1 Nov 2023 13:43:00 +0200
+Subject: [PATCH] GLVisualConfig: By default don't care about the stencil
+ config component
+
+Our benchmarks don't use a stencil buffer, but its presence doesn't hurt
+either, so don't mark configs that have one as unacceptable. Our scoring
+still favors configs without one, unless the user explicitly specifies
+otherwise with --visual-config.
+
+Upstream-Status: Backport [https://github.com/glmark2/glmark2/commit/5f23d540342ba69e12afeb6a1ac4f6fd36747975]
+---
+ doc/glmark2.1.in | 2 +-
+ src/gl-visual-config.cpp | 9 ++++++---
+ src/gl-visual-config.h | 2 +-
+ src/options.cpp | 6 +++---
+ 4 files changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/doc/glmark2.1.in b/doc/glmark2.1.in
+index 015ba20..1f4a047 100644
+--- a/doc/glmark2.1.in
++++ b/doc/glmark2.1.in
+@@ -38,7 +38,7 @@ Render to an off-screen surface
+ The visual configuration to use for the rendering target:
+ \'id=ID:red=R:green=G:blue=B:alpha=A:buffer=BUF:stencil=STENCIL:samples=SAMPLES'.
+ The parameters may be defined in any order, and any omitted parameters assume a
+-default value of '0' (id, stencil, samples) or '1' (red, green, blue, alpha, buffer).
++default value of '0' (id, samples), -1 (stencil) or '1' (red, green, blue, alpha, buffer).
+ If 'id' is set to a non-zero value, all other parameters are ignored
+ .TP
+ \fB\-\-reuse\-context\fR
+diff --git a/src/gl-visual-config.cpp b/src/gl-visual-config.cpp
+index de92f93..665f53a 100644
+--- a/src/gl-visual-config.cpp
++++ b/src/gl-visual-config.cpp
+@@ -26,7 +26,7 @@
+ #include <vector>
+
+ GLVisualConfig::GLVisualConfig(const std::string &s) :
+- id(0), red(1), green(1), blue(1), alpha(1), depth(1), stencil(0), buffer(1), samples(0)
++ GLVisualConfig()
+ {
+ std::vector<std::string> elems;
+
+@@ -85,7 +85,7 @@ GLVisualConfig::match_score(const GLVisualConfig &target) const
+ score += score_component(blue, target.blue, 4);
+ score += score_component(alpha, target.alpha, 4);
+ score += score_component(depth, target.depth, 1);
+- score += score_component(stencil, target.stencil, 0);
++ score += score_component(stencil, target.stencil, 1);
+ score += score_component(buffer, target.buffer, 1);
+ score += score_component(samples, target.samples, -1);
+
+@@ -135,11 +135,14 @@ GLVisualConfig::score_component(int component, int target, int scale) const
+ * score for all components ranges from [0,MAXIMUM_COMPONENT_SCORE).
+ * If scale > 0, we reward the largest positive difference from target,
+ * otherwise the smallest positive difference from target.
++ * We also reward the smallest positive difference from the target,
++ * if the target < 0, i.e., we don't care about this value.
+ */
+ int diff = std::abs(scale) * (component - target);
+ if (diff > 0)
+ {
+- score = scale < 0 ? MAXIMUM_COMPONENT_SCORE - diff : diff;
++ score = (scale < 0 || target < 0) ?
++ MAXIMUM_COMPONENT_SCORE - diff : diff;
+ score = std::min(MAXIMUM_COMPONENT_SCORE, score);
+ score = std::max(0, score);
+ }
+diff --git a/src/gl-visual-config.h b/src/gl-visual-config.h
+index b28473f..013ce14 100644
+--- a/src/gl-visual-config.h
++++ b/src/gl-visual-config.h
+@@ -31,7 +31,7 @@ class GLVisualConfig
+ {
+ public:
+ GLVisualConfig():
+- id(0), red(1), green(1), blue(1), alpha(1), depth(1), stencil(0), buffer(1), samples(0) {}
++ id(0), red(1), green(1), blue(1), alpha(1), depth(1), stencil(-1), buffer(1), samples(0) {}
+ GLVisualConfig(const std::string &s);
+
+ /**
+diff --git a/src/options.cpp b/src/options.cpp
+index 8d1ec16..3a31d3d 100644
+--- a/src/options.cpp
++++ b/src/options.cpp
+@@ -213,9 +213,9 @@ Options::print_help()
+ " target: 'id=ID:red=R:green=G:blue=B:alpha=A:buffer=BUF:\n"
+ " stencil=STENCIL:samples=SAMPLES'. The parameters may be\n"
+ " defined in any order, and any omitted parameters assume a\n"
+- " default value of '0' (id, stencil, samples) or '1' (red,\n"
+- " green, blue, alpha, buffer). If 'id' is set to a non-zero\n"
+- " value, all other parameters are ignored\n"
++ " default value of '0' (id, samples), '-1' (stencil) or\n"
++ " '1' (red, green, blue, alpha, buffer). If 'id' is set to\n"
++ " a non-zero value, all other parameters are ignored\n"
+ " --reuse-context Use a single context for all scenes\n"
+ " (by default, each scene gets its own context)\n"
+ " -s, --size WxH Size of the output window (default: 800x600)\n"
+--
+2.44.0
+
diff --git a/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
index 2a3e74f025..0b61d6ed62 100644
--- a/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
+++ b/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -11,15 +11,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
DEPENDS = "libpng jpeg udev"
DEPENDS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland-native wayland-protocols', '', d)}"
-PV = "2021.12"
+PV = "2023.01"
SRC_URI = " \
git://github.com/glmark2/glmark2.git;protocol=https;branch=master \
file://0001-fix-dispmanx-build.patch \
file://0002-run-dispmanx-fullscreen.patch \
- file://0001-libmatrix-Include-missing-utility-header.patch \
+ file://0003-GLVisualConfig-By-default-don-t-care-about-the-stenc.patch \
"
-SRCREV = "0858b450cd88c84a15b99dda9698d44e7f7e8c70"
+SRCREV = "42e3d8fe3aa88743ef90348138f643f7b04a9237"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-benchmark/iozone3/iozone3_492.bb b/meta-oe/recipes-benchmark/iozone3/iozone3_492.bb
deleted file mode 100644
index ba3eaec619..0000000000
--- a/meta-oe/recipes-benchmark/iozone3/iozone3_492.bb
+++ /dev/null
@@ -1,121 +0,0 @@
-SUMMARY = "Filesystem and Disk Benchmarking Tool"
-HOMEPAGE = "http://www.iozone.org/"
-AUTHOR = "Don Capps <don.capps2@verizon.net>, William D. Norcott <wnorcott@us.oracle.com>"
-SECTION = "console/tests"
-LICENSE = "iozone3"
-LIC_FILES_CHKSUM = "file://iozone.c;beginline=37;endline=48;md5=7331260091868dcad0f9edea735b5f4b \
- file://iozone.c;beginline=276;endline=282;md5=77f9ee51e45b57a7e7519c4fa0b4f00b \
-"
-SRC_URI = "http://www.iozone.org/src/current/${BPN}_${PV}.tar \
- file://parallelism.patch \
- file://0001-let-system-headers-provide-pread64.patch \
- file://copyright.txt \
-"
-SRC_URI[md5sum] = "228f54482c01d1c04c571a9414cd20e5"
-SRC_URI[sha256sum] = "322981e168f32bd39f54772b82b2906d598d958c37e954e75742e71baf58bb9b"
-
-UPSTREAM_CHECK_REGEX = "iozone3_(?P<pver>\d+).tar"
-
-S = "${WORKDIR}/${BPN}_${PV}/src/current"
-
-#
-# All other arches can use the default OEMAKE except those
-# explicitly listed below. Another, the iozone3 Makefile
-# needs to be told about the cross-compiler explicitly here.
-#
-EXTRA_OEMAKE:powerpc = "linux-powerpc CC='${CC}' GCC='${CC}'"
-EXTRA_OEMAKE:powerpc64 = "linux-powerpc64 CC='${CC}' GCC='${CC}'"
-EXTRA_OEMAKE:powerpc64le = "linux-powerpc64 CC='${CC}' GCC='${CC}'"
-EXTRA_OEMAKE:x86-64 = "linux-AMD64 CC='${CC}' GCC='${CC}'"
-EXTRA_OEMAKE:arm = "linux-arm CC='${CC}' GCC='${CC}'"
-EXTRA_OEMAKE = "linux CC='${CC}' GCC='${CC}'"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install() {
- install -d ${D}${bindir} \
- ${D}${mandir}/man1 \
- ${D}${datadir}/doc/${BPN}/examples
-
- install -m 0755 ${S}/iozone ${D}${bindir}
- install -m 0755 ${S}/fileop ${D}${bindir}
- install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/iozone.1 ${D}${mandir}/man1/
- install -m 0644 ${WORKDIR}/copyright.txt ${D}${datadir}/doc/${BPN}/
-
- install -m 0644 ${S}/*.dem ${D}${datadir}/doc/${BPN}/examples
- install -m 0644 ${S}/client_list ${D}${datadir}/doc/${BPN}/examples
- install -m 0644 ${S}/Gnuplot.txt ${D}${datadir}/doc/${BPN}/examples
-
- install -m 0755 ${S}/Generate_Graphs ${D}${datadir}/doc/${BPN}/examples
- install -m 0755 ${S}/gengnuplot.sh ${D}${datadir}/doc/${BPN}/examples
- install -m 0755 ${S}/report.pl ${D}${datadir}/doc/${BPN}/examples
-
- install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Iozone_ps.gz ${D}${datadir}/doc/${BPN}/
- install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/IOzone_msword_98.pdf ${D}${datadir}/doc/${BPN}/
- install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Run_rules.doc ${D}${datadir}/doc/${BPN}/
-}
-
-FILES:${PN} += "${datadir}/doc/${PN}/copyright.txt"
-
-# LICENSE:
-#
-# Copyright 1991, 1992, 1994, 1998, 1999, 2002 William D. Norcott
-#
-# License to freely use and distribute this software is hereby granted
-# by the author, subject to the condition that this copyright notice
-# remains intact. The author retains the exclusive right to publish
-# derivative works based on this work, including, but not limited to
-# revised versions of this work.
-#
-
-#
-# Below is author reply to question about distributing iozone3 in
-# OpenEmbedded:
-#
-# ========================================================================
-#
-# Marcin,
-#
-# Re-distribution is permitted as long as the copyright is
-# maintained and the source code is not changed. I do not
-# see a problem with your mods to enable fileop for Linux-arm,
-# as these mods have been returned to the Iozone folks,
-# and they have been accepted for inclusion in the next
-# release :-)
-#
-# Thank you for your contribution,
-# Don Capps
-#
-# ----- Original Message -----
-# From: "Marcin Juszkiewicz" <firma@hrw.one.pl>
-# To: "Don Capps" <don.capps2@verizon.net>; "William D. Norcott"
-# <wnorcott@us.oracle.com>
-# Sent: Sunday, October 29, 2006 4:55 PM
-# Subject: iozone3 263 patch for arm and License question
-#
-#
-# > Morning
-# >
-# > I want to include iozone3 in OpenEmbedded [1] metadata to give it for
-# > other developers. Currently OE is used to build few distributions for
-# > misc platforms: ARM, SH3, SH4, x86, PowerPC and different types of
-# > machines (PDA, settopbox, devboards, desktops, thin clients, routers).
-# >
-# > According to your distribution of derivations is forbidden. Packaging
-# > iozone3 in OpenEmbedded will not involve any source code changes. But
-# > when I was building it for ARM I discovered that fileop binary was not
-# > built - so I created patch for it (attached). Not yet tested it on target
-# > device.
-# >
-# > Thus, I seek your written permission via e-mail to distribute a package of
-# > the unmodified source code and also a package of the pre-compiled binary.
-# > Your copyright statement will be included in the package.
-# >
-# >
-# > 1. http://www.openembedded.org/
-# >
-# > Regards
-# > --
-# > JID: hrw-jabber.org
-# > OpenEmbedded developer/consultant
-
diff --git a/meta-oe/recipes-benchmark/iozone3/iozone3_506.bb b/meta-oe/recipes-benchmark/iozone3/iozone3_506.bb
new file mode 100644
index 0000000000..5a1306b6fe
--- /dev/null
+++ b/meta-oe/recipes-benchmark/iozone3/iozone3_506.bb
@@ -0,0 +1,119 @@
+SUMMARY = "Filesystem and Disk Benchmarking Tool"
+HOMEPAGE = "http://www.iozone.org/"
+SECTION = "console/tests"
+LICENSE = "iozone3"
+LIC_FILES_CHKSUM = "file://iozone.c;beginline=37;endline=48;md5=7331260091868dcad0f9edea735b5f4b \
+ file://iozone.c;beginline=276;endline=282;md5=77f9ee51e45b57a7e7519c4fa0b4f00b \
+"
+SRC_URI = "http://www.iozone.org/src/current/${BPN}_${PV}.tar \
+ file://parallelism.patch \
+ file://0001-let-system-headers-provide-pread64.patch \
+ file://copyright.txt \
+"
+SRC_URI[sha256sum] = "114ce5c071873b9a2c7ba6e73d05d5ef7e66564392acbfcdc0b3261db10fcbe7"
+
+UPSTREAM_CHECK_REGEX = "iozone3_(?P<pver>\d+).tar"
+
+S = "${WORKDIR}/${BPN}_${PV}/src/current"
+
+#
+# All other arches can use the default OEMAKE except those
+# explicitly listed below. Another, the iozone3 Makefile
+# needs to be told about the cross-compiler explicitly here.
+#
+EXTRA_OEMAKE:powerpc = "linux-powerpc CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE:powerpc64 = "linux-powerpc64 CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE:powerpc64le = "linux-powerpc64 CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE:x86-64 = "linux-AMD64 CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE:arm = "linux-arm CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE = "linux CC='${CC}' GCC='${CC}'"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install() {
+ install -d ${D}${bindir} \
+ ${D}${mandir}/man1 \
+ ${D}${datadir}/doc/${BPN}/examples
+
+ install -m 0755 ${S}/iozone ${D}${bindir}
+ install -m 0755 ${S}/fileop ${D}${bindir}
+ install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/iozone.1 ${D}${mandir}/man1/
+ install -m 0644 ${WORKDIR}/copyright.txt ${D}${datadir}/doc/${BPN}/
+
+ install -m 0644 ${S}/*.dem ${D}${datadir}/doc/${BPN}/examples
+ install -m 0644 ${S}/client_list ${D}${datadir}/doc/${BPN}/examples
+ install -m 0644 ${S}/Gnuplot.txt ${D}${datadir}/doc/${BPN}/examples
+
+ install -m 0755 ${S}/Generate_Graphs ${D}${datadir}/doc/${BPN}/examples
+ install -m 0755 ${S}/gengnuplot.sh ${D}${datadir}/doc/${BPN}/examples
+ install -m 0755 ${S}/report.pl ${D}${datadir}/doc/${BPN}/examples
+
+ install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Iozone_ps.gz ${D}${datadir}/doc/${BPN}/
+ install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/IOzone_msword_98.pdf ${D}${datadir}/doc/${BPN}/
+ install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Run_rules.doc ${D}${datadir}/doc/${BPN}/
+}
+
+FILES:${PN} += "${datadir}/doc/${PN}/copyright.txt"
+
+# LICENSE:
+#
+# Copyright 1991, 1992, 1994, 1998, 1999, 2002 William D. Norcott
+#
+# License to freely use and distribute this software is hereby granted
+# by the author, subject to the condition that this copyright notice
+# remains intact. The author retains the exclusive right to publish
+# derivative works based on this work, including, but not limited to
+# revised versions of this work.
+#
+
+#
+# Below is author reply to question about distributing iozone3 in
+# OpenEmbedded:
+#
+# ========================================================================
+#
+# Marcin,
+#
+# Re-distribution is permitted as long as the copyright is
+# maintained and the source code is not changed. I do not
+# see a problem with your mods to enable fileop for Linux-arm,
+# as these mods have been returned to the Iozone folks,
+# and they have been accepted for inclusion in the next
+# release :-)
+#
+# Thank you for your contribution,
+# Don Capps
+#
+# ----- Original Message -----
+# From: "Marcin Juszkiewicz" <firma@hrw.one.pl>
+# To: "Don Capps" <don.capps2@verizon.net>; "William D. Norcott"
+# <wnorcott@us.oracle.com>
+# Sent: Sunday, October 29, 2006 4:55 PM
+# Subject: iozone3 263 patch for arm and License question
+#
+#
+# > Morning
+# >
+# > I want to include iozone3 in OpenEmbedded [1] metadata to give it for
+# > other developers. Currently OE is used to build few distributions for
+# > misc platforms: ARM, SH3, SH4, x86, PowerPC and different types of
+# > machines (PDA, settopbox, devboards, desktops, thin clients, routers).
+# >
+# > According to your distribution of derivations is forbidden. Packaging
+# > iozone3 in OpenEmbedded will not involve any source code changes. But
+# > when I was building it for ARM I discovered that fileop binary was not
+# > built - so I created patch for it (attached). Not yet tested it on target
+# > device.
+# >
+# > Thus, I seek your written permission via e-mail to distribute a package of
+# > the unmodified source code and also a package of the pre-compiled binary.
+# > Your copyright statement will be included in the package.
+# >
+# >
+# > 1. http://www.openembedded.org/
+# >
+# > Regards
+# > --
+# > JID: hrw-jabber.org
+# > OpenEmbedded developer/consultant
+
diff --git a/meta-oe/recipes-benchmark/iperf2/iperf2/0001-Detect-bool-definition-considering-stdbool.h-being-p.patch b/meta-oe/recipes-benchmark/iperf2/iperf2/0001-Detect-bool-definition-considering-stdbool.h-being-p.patch
index 45c69ca067..dc3b85f8ef 100644
--- a/meta-oe/recipes-benchmark/iperf2/iperf2/0001-Detect-bool-definition-considering-stdbool.h-being-p.patch
+++ b/meta-oe/recipes-benchmark/iperf2/iperf2/0001-Detect-bool-definition-considering-stdbool.h-being-p.patch
@@ -13,6 +13,8 @@ template <> struct __libcpp_is_integral<int> : public tr
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
m4/dast.m4 | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3/0001-configure.ac-check-for-CPP-prog.patch b/meta-oe/recipes-benchmark/iperf3/iperf3/0001-configure.ac-check-for-CPP-prog.patch
index 09e3d9ca9c..a67be4d4f6 100644
--- a/meta-oe/recipes-benchmark/iperf3/iperf3/0001-configure.ac-check-for-CPP-prog.patch
+++ b/meta-oe/recipes-benchmark/iperf3/iperf3/0001-configure.ac-check-for-CPP-prog.patch
@@ -1,4 +1,4 @@
-From 4801363fbff12bf1019aaf90142981702cecff92 Mon Sep 17 00:00:00 2001
+From 80d208e47a525c915e3961efa61ccf91120ffafa Mon Sep 17 00:00:00 2001
From: Andrey Zhizhikin <andrey.z@gmail.com>
Date: Wed, 3 Feb 2021 20:44:34 +0000
Subject: [PATCH] configure.ac: check for CPP prog
@@ -10,20 +10,19 @@ Absence of check for CPP_PROG causes following build errors:
Upstream-Status: Pending
Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
-
---
configure.ac | 1 +
1 file changed, 1 insertion(+)
diff --git a/configure.ac b/configure.ac
-index 53a4db4..3462b3e 100644
+index 2594b39..559b160 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -48,6 +48,7 @@ AC_CANONICAL_HOST
+@@ -49,6 +49,7 @@ AC_CANONICAL_HOST
# Checks for tools: c compiler, ranlib (used for creating static libraries),
# symlinks and libtool
AC_PROG_CC
+AC_PROG_CPP
- AC_PROG_RANLIB
AC_PROG_LN_S
- LT_INIT
+
+ # Add -Wall if we are using GCC.
diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3/0002-Remove-pg-from-profile_CFLAGS.patch b/meta-oe/recipes-benchmark/iperf3/iperf3/0002-Remove-pg-from-profile_CFLAGS.patch
index 7870261ee6..ff1ea05bcb 100644
--- a/meta-oe/recipes-benchmark/iperf3/iperf3/0002-Remove-pg-from-profile_CFLAGS.patch
+++ b/meta-oe/recipes-benchmark/iperf3/iperf3/0002-Remove-pg-from-profile_CFLAGS.patch
@@ -9,6 +9,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
+Upstream-Status: Pending
+
src/Makefile.am | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3_3.11.bb b/meta-oe/recipes-benchmark/iperf3/iperf3_3.11.bb
deleted file mode 100644
index 2142a8ef1d..0000000000
--- a/meta-oe/recipes-benchmark/iperf3/iperf3_3.11.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Network benchmark tool"
-DESCRIPTION = "\
-iperf is a tool for active measurements of the maximum achievable bandwidth \
-on IP networks. It supports tuning of various parameters related to timing, \
-protocols, and buffers. For each test it reports the bandwidth, loss, and \
-other parameters."
-
-HOMEPAGE = "http://software.es.net/iperf/"
-SECTION = "console/network"
-BUGTRACKER = "https://github.com/esnet/iperf/issues"
-AUTHOR = "ESNET <info@es.net>, Lawrence Berkeley National Laboratory <websupport@lbl.gov>"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=68ae8cfc577a2c8c51bb51e9628e80b7"
-
-SRC_URI = "git://github.com/esnet/iperf.git;branch=master;protocol=https \
- file://0002-Remove-pg-from-profile_CFLAGS.patch \
- file://0001-configure.ac-check-for-CPP-prog.patch \
- "
-
-SRCREV = "76bd67f6e90e239a7686202d2b1b595159826d24"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-PACKAGECONFIG ?= "openssl"
-
-PACKAGECONFIG[lksctp] = "ac_cv_header_netinet_sctp_h=yes,ac_cv_header_netinet_sctp_h=no,lksctp-tools"
-PACKAGECONFIG[openssl] = "--with-openssl=${RECIPE_SYSROOT}${prefix},--without-openssl,openssl"
-
-CFLAGS += "-D_GNU_SOURCE"
-
-CVE_PRODUCT = "iperf_project:iperf"
diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3_3.16.bb b/meta-oe/recipes-benchmark/iperf3/iperf3_3.16.bb
new file mode 100644
index 0000000000..5cec4c6874
--- /dev/null
+++ b/meta-oe/recipes-benchmark/iperf3/iperf3_3.16.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Network benchmark tool"
+DESCRIPTION = "\
+iperf is a tool for active measurements of the maximum achievable bandwidth \
+on IP networks. It supports tuning of various parameters related to timing, \
+protocols, and buffers. For each test it reports the bandwidth, loss, and \
+other parameters."
+
+HOMEPAGE = "http://software.es.net/iperf/"
+SECTION = "console/network"
+BUGTRACKER = "https://github.com/esnet/iperf/issues"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dc6301c8256ceb8f71c9e3c2ae9096b9"
+
+SRC_URI = "git://github.com/esnet/iperf.git;branch=master;protocol=https \
+ file://0002-Remove-pg-from-profile_CFLAGS.patch \
+ file://0001-configure.ac-check-for-CPP-prog.patch \
+ "
+
+SRCREV = "f9481e1cd35159929458513692e4a8f9fdd1bd6f"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PACKAGECONFIG ?= "openssl"
+
+PACKAGECONFIG[lksctp] = "ac_cv_header_netinet_sctp_h=yes,ac_cv_header_netinet_sctp_h=no,lksctp-tools"
+PACKAGECONFIG[openssl] = "--with-openssl=${RECIPE_SYSROOT}${prefix},--without-openssl,openssl"
+
+CFLAGS += "-D_GNU_SOURCE"
diff --git a/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb b/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb
index 17bbb9b6ce..4ace4515ad 100644
--- a/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb
+++ b/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb
@@ -7,7 +7,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=9a825c63897c53f487ef900598c31527"
SRCREV = "b6b2ce5f9f87a09b14499cb00c600c601f022634"
-PV = "20110206+git${SRCPV}"
+PV = "20110206+git"
SRC_URI = "git://git.musl-libc.org/libc-bench;branch=master \
file://0001-build-Do-not-override-ldflags-from-environment.patch \
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch
index a84414c024..914b0514f8 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] include stddef.h for ptrdiff_t
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
morecore.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch
index 8cb184a651..7ad6c43eb1 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] Mark glibc specific code so
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
morecore.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch
index aca7e803d0..858a8e511a 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch
@@ -8,6 +8,8 @@ musl does not have it
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
alloc.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch
index 58776e8710..c3f7b3e479 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] shm.c: Mark glibc specific changes so
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
shm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch
index e736cbc791..8bd1633392 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch
@@ -11,6 +11,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Update for 2.22.
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
tests/hugetests.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch
index 2ead21fb46..e4f8030961 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch
@@ -10,6 +10,8 @@ error: 'PATH_MAX' undeclared
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
hugeadm.c | 1 +
tests/gethugepagesizes.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch
index b964bef1f0..ff926548b6 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch
@@ -3,7 +3,7 @@ From: Roy Li <rongqing.li@windriver.com>
Date: Thu, 5 May 2016 09:52:01 +0800
Subject: [PATCH] [PATCH] avoid gcc optimize-away the loops
-Upstream-Status: pending
+Upstream-Status: Pending
Change expression used in do_integer_mul and do_uint64_mul
benchmarks so GCC doesn't optimize-away the loops, other
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-lat_unix_connect-manual-page.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-lat_unix_connect-manual-page.patch
index d49dac5b20..9014f80ab6 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-lat_unix_connect-manual-page.patch
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-lat_unix_connect-manual-page.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 1/2] doc: Fix typos in lat_unix_connect manual page
Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
---
+Upstream-Status: Pending
+
doc/lat_unix_connect.8 | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-manual-pages.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-manual-pages.patch
index b27e6c9fe0..b960a7d19f 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-manual-pages.patch
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-manual-pages.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] doc: Fix typos in manual pages
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
+Upstream-Status: Pending
+
doc/bw_mem.8 | 2 +-
doc/lat_fcntl.8 | 2 +-
doc/lat_fifo.8 | 2 +-
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_fifo-Fix-cleanup-sequence.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_fifo-Fix-cleanup-sequence.patch
index 42b14cecee..b46c5fae76 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_fifo-Fix-cleanup-sequence.patch
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_fifo-Fix-cleanup-sequence.patch
@@ -7,6 +7,8 @@ Files should be unlinked after all users exit.
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
+Upstream-Status: Pending
+
src/lat_fifo.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_http.c-Add-printf-format.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_http.c-Add-printf-format.patch
index 943b3ec889..eaa4ad0814 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_http.c-Add-printf-format.patch
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_http.c-Add-printf-format.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] lat_http.c: Add printf format
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/lat_http.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lmbench-Point-webpage-lm-to-target-directory.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lmbench-Point-webpage-lm-to-target-directory.patch
index 4a26b8ea7a..7b713a3243 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lmbench-Point-webpage-lm-to-target-directory.patch
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lmbench-Point-webpage-lm-to-target-directory.patch
@@ -8,6 +8,8 @@ Plus improve 'hello' copying in lmbench script.
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
+Upstream-Status: Pending
+
scripts/lmbench | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch
index 1d5d9c12ab..096726cc23 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch
@@ -9,6 +9,8 @@ to link in librirpc, make room for those changes to take effect
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
scripts/build | 2 +-
src/Makefile | 14 +++++++-------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench/fix-lmbench-memory-check-failure.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/fix-lmbench-memory-check-failure.patch
index cbab5c424e..0274bc32af 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench/fix-lmbench-memory-check-failure.patch
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/fix-lmbench-memory-check-failure.patch
@@ -24,7 +24,7 @@ Signed-off-by: Fupan Li <fupan.li@windriver.com>
Add and reword above comments
-Upstream-status: inappropriate [ configuration ]
+Upstream-Status: Inappropriate [ configuration ]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench_result_html_report.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench_result_html_report.patch
index 30708c81db..ae2443476a 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench_result_html_report.patch
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench_result_html_report.patch
@@ -13,7 +13,7 @@ Signed-off-by: Fupan Li <fupan.li@windriver.com>
Reworded patch description.
-Upstream-status: inappropriate [ configuration ]
+Upstream-Status: Inappropriate [ configuration ]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb b/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
index d74c28f3f6..57f73eedc7 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
@@ -10,7 +10,6 @@ inherit autotools-brokensep update-alternatives
DEPENDS += "libtirpc"
CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-PR = "r2"
SRC_URI = "${SOURCEFORGE_MIRROR}/lmbench/lmbench-${PV}.tgz \
file://lmbench-run \
@@ -99,6 +98,6 @@ pkg_postinst:${PN} () {
RDEPENDS:${PN} = "perl"
FILES:${PN} += "${datadir}/lmbench"
-ALTERNATIVE:${PN} = "stream"
+ALTERNATIVE:${PN} = "stream hello"
ALTERNATIVE_LINK_NAME[stream] = "${bindir}/stream"
-
+ALTERNATIVE_LINK_NAME[hello] = "${bindir}/hello"
diff --git a/meta-oe/recipes-benchmark/mbw/mbw_2.0.bb b/meta-oe/recipes-benchmark/mbw/mbw_2.0.bb
new file mode 100644
index 0000000000..bb8c4625d5
--- /dev/null
+++ b/meta-oe/recipes-benchmark/mbw/mbw_2.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "MBW determines the copy memory bandwidth available to userspace programs"
+HOMEPAGE = "http://github.com/raas/mbw"
+SECTION = "console/tests"
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://mbw.spec;beginline=1;endline=10;md5=9ead6bd5826678fcfe229a3cf7257c56"
+
+SRC_URI = "git://github.com/raas/${BPN}.git;branch=master;protocol=https"
+
+SRCREV = "c3155b544a5065e8235508059c6512af6c46bd4d"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/mbw ${D}${bindir}
+}
diff --git a/meta-oe/recipes-benchmark/mbw/mbw_git.bb b/meta-oe/recipes-benchmark/mbw/mbw_git.bb
deleted file mode 100644
index cfdcfeb9b6..0000000000
--- a/meta-oe/recipes-benchmark/mbw/mbw_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "MBW determines the copy memory bandwidth available to userspace programs"
-HOMEPAGE = "http://github.com/raas/mbw"
-SECTION = "console/tests"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://mbw.spec;beginline=1;endline=10;md5=34d71e08e6337a8411d82d7dd0c54fe2"
-
-SRC_URI = "git://github.com/raas/${BPN}.git;branch=master;protocol=https"
-
-SRCREV = "d2cd3d36c353fee578f752c4e65a8c1efcee002c"
-
-PV = "1.5"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 ${B}/mbw ${D}${bindir}
-}
diff --git a/meta-oe/recipes-benchmark/memtester/files/Makefile.patch b/meta-oe/recipes-benchmark/memtester/files/Makefile.patch
index 971e52ac7f..c6da3b7059 100644
--- a/meta-oe/recipes-benchmark/memtester/files/Makefile.patch
+++ b/meta-oe/recipes-benchmark/memtester/files/Makefile.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] memtester: Added patch to Makefile to change no-longer-supporte
Signed-off-by: Joel A Fernandes <joelagnel@ti.com>
---
+Upstream-Status: Pending
+
Makefile | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-benchmark/memtester/memtester_4.5.1.bb b/meta-oe/recipes-benchmark/memtester/memtester_4.5.1.bb
deleted file mode 100644
index 9df450cbaa..0000000000
--- a/meta-oe/recipes-benchmark/memtester/memtester_4.5.1.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Utility to test for faulty memory subsystem"
-HOMEPAGE = "http://pyropus.ca/software/memtester/"
-SECTION = "console/utils"
-LICENSE = "GPL-2.0-only"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-SRC_URI = "http://pyropus.ca/software/memtester/old-versions/${BP}.tar.gz \
- file://Makefile.patch \
- "
-SRC_URI[md5sum] = "1bc22c01e987d6a67fac39dc5656a4d3"
-SRC_URI[sha256sum] = "1c5fc2382576c084b314cfd334d127a66c20bd63892cac9f445bc1d8b4ca5a47"
-
-do_compile () {
- echo '${CC} ${CFLAGS} -DPOSIX -c' > conf-cc
- echo '${CC} ${LDFLAGS}' > conf-ld
- oe_runmake
-}
-
-do_install () {
- install -d ${D}${bindir}
- install -d ${D}${mandir}/man8
- install -m 0755 memtester ${D}${bindir}/
- install -m 0755 memtester.8 ${D}${mandir}/man8/
-}
diff --git a/meta-oe/recipes-benchmark/memtester/memtester_4.6.0.bb b/meta-oe/recipes-benchmark/memtester/memtester_4.6.0.bb
new file mode 100644
index 0000000000..42cee1108d
--- /dev/null
+++ b/meta-oe/recipes-benchmark/memtester/memtester_4.6.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Utility to test for faulty memory subsystem"
+HOMEPAGE = "http://pyropus.ca/software/memtester/"
+SECTION = "console/utils"
+LICENSE = "GPL-2.0-only"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "http://pyropus.ca/software/memtester/old-versions/${BP}.tar.gz \
+ file://Makefile.patch \
+ "
+SRC_URI[sha256sum] = "c9fe4eb7e80c8cef5202f9065c4c0682f5616647c0455e916a5700f98e3dbb2e"
+
+do_compile () {
+ echo '${CC} ${CFLAGS} -DPOSIX -c' > conf-cc
+ echo '${CC} ${LDFLAGS}' > conf-ld
+ oe_runmake
+}
+
+do_install () {
+ install -d ${D}${bindir}
+ install -d ${D}${mandir}/man8
+ install -m 0755 memtester ${D}${bindir}/
+ install -m 0755 memtester.8 ${D}${mandir}/man8/
+}
diff --git a/meta-oe/recipes-benchmark/phoronix-test-suite/files/CVE-2022-40704.patch b/meta-oe/recipes-benchmark/phoronix-test-suite/files/CVE-2022-40704.patch
new file mode 100644
index 0000000000..8b6405b4ad
--- /dev/null
+++ b/meta-oe/recipes-benchmark/phoronix-test-suite/files/CVE-2022-40704.patch
@@ -0,0 +1,46 @@
+From d3880d9d3ba795138444da83f1153c3c3ac27640 Mon Sep 17 00:00:00 2001
+From: Michael Larabel <michael@phoronix.com>
+Date: Sat, 23 Jul 2022 07:32:43 -0500
+Subject: [PATCH] phoromatic: Explicitly check both $_GET abd $_POST in
+ phoromatic_quit_if_invalid_input_found()
+
+Fixes: https://github.com/phoronix-test-suite/phoronix-test-suite/issues/650#issuecomment-1193116678
+
+Upstream-Status: Backport
+CVE: CVE-2022-40704
+
+Reference to upstream patch:
+https://github.com/phoronix-test-suite/phoronix-test-suite/commit/d3880d9d3ba795138444da83f1153c3c3ac27640
+
+Signed-off-by: Li Wang <li.wang@windriver.com>
+---
+ pts-core/phoromatic/phoromatic_functions.php | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/pts-core/phoromatic/phoromatic_functions.php b/pts-core/phoromatic/phoromatic_functions.php
+index 74ccc5444c..c2313dcdea 100644
+--- a/pts-core/phoromatic/phoromatic_functions.php
++++ b/pts-core/phoromatic/phoromatic_functions.php
+@@ -37,9 +37,20 @@ function phoromatic_quit_if_invalid_input_found($input_keys = null)
+ {
+ foreach($input_keys as $key)
+ {
+- if(isset($_REQUEST[$key]) && !empty($_REQUEST[$key]))
++ if(isset($_GET[$key]) && !empty($_GET[$key]))
+ {
+- foreach(pts_arrays::to_array($_REQUEST[$key]) as $val_to_check)
++ foreach(pts_arrays::to_array($_GET[$key]) as $val_to_check)
++ {
++ if(stripos($val_to_check, $invalid_string) !== false)
++ {
++ echo '<strong>Exited due to invalid input ( ' . $invalid_string . ') attempted:</strong> ' . htmlspecialchars($val_to_check);
++ exit;
++ }
++ }
++ }
++ if(isset($_POST[$key]) && !empty($_POST[$key]))
++ {
++ foreach(pts_arrays::to_array($_POST[$key]) as $val_to_check)
+ {
+ if(stripos($val_to_check, $invalid_string) !== false)
+ {
diff --git a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_10.8.4.bb b/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_10.8.4.bb
index be9756d9a7..8de3314b3c 100644
--- a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_10.8.4.bb
+++ b/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_10.8.4.bb
@@ -5,7 +5,10 @@ LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SECTION = "console/tests"
-SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz"
+SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz \
+ file://CVE-2022-40704.patch \
+ "
+
SRC_URI[sha256sum] = "1f2092d536c0a3193efc53e4a50f3cee65c0ef1a78d31e5404f1c663fff7b7f4"
S = "${WORKDIR}/phoronix-test-suite"
diff --git a/meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb b/meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb
index 9722323478..b32f37153e 100644
--- a/meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb
+++ b/meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb
@@ -1,7 +1,6 @@
SUMMARY = "Measure socket and RDMA performance"
DESCRIPTION = "qperf measures bandwidth and latency between two nodes."
HOMEPAGE = "https://github.com/linux-rdma/qperf"
-AUTHOR = "Johann George"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
diff --git a/meta-oe/recipes-benchmark/stressapptest/stressapptest/libcplusplus-compat.patch b/meta-oe/recipes-benchmark/stressapptest/stressapptest/libcplusplus-compat.patch
deleted file mode 100644
index f5e7da359d..0000000000
--- a/meta-oe/recipes-benchmark/stressapptest/stressapptest/libcplusplus-compat.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Fix compile on sytems using libc++ instead of libstdc++
-
-libc++ does not really implement __gnu_cxx namespace and it
-compiles fine without this namespace, therefore detect libc++
-and if it is used them exclude this namespace
-
-See https://github.com/stressapptest/stressapptest/issues/47
-
-Fixes
-
-./sattypes.h:33:17: error: expected namespace name
-using namespace __gnu_cxx; //NOLINT
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- stressapptest-1.0.9.orig/src/sattypes.h
-+++ stressapptest-1.0.9/src/sattypes.h
-@@ -30,7 +30,9 @@
- #include "stressapptest_config_android.h" // NOLINT
- #else
- #include "stressapptest_config.h" // NOLINT
-+#ifndef _LIBCPP_VERSION
- using namespace __gnu_cxx; //NOLINT
-+#endif // _LIBCPP_VERSION
- #endif // __ANDROID__
- using namespace std;
-
diff --git a/meta-oe/recipes-benchmark/stressapptest/stressapptest/read_sysfs_for_cachesize.patch b/meta-oe/recipes-benchmark/stressapptest/stressapptest/read_sysfs_for_cachesize.patch
deleted file mode 100644
index 8c251aeb97..0000000000
--- a/meta-oe/recipes-benchmark/stressapptest/stressapptest/read_sysfs_for_cachesize.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-sysconf params like _SC_LEVEL1_DCACHE_LINESIZE are not universally
-implemented, therefore check for them being available, if not there
-then read the sysfs directly to get the value
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/src/sat.cc
-+++ b/src/sat.cc
-@@ -1482,15 +1482,47 @@ int Sat::CpuCount() {
- return sysconf(_SC_NPROCESSORS_CONF);
- }
-
-+int Sat::ReadInt(const char *filename, int *value) {
-+ char line[64];
-+ int fd = open(filename, O_RDONLY), err = -1;
-+
-+ if (fd < 0)
-+ return -1;
-+ if (read(fd, line, sizeof(line)) > 0) {
-+ *value = atoi(line);
-+ err = 0;
-+ }
-+
-+ close(fd);
-+ return err;
-+}
-+
- // Return the worst case (largest) cache line size of the various levels of
- // cache actually prsent in the machine.
- int Sat::CacheLineSize() {
-- int max_linesize = sysconf(_SC_LEVEL1_DCACHE_LINESIZE);
-- int linesize = sysconf(_SC_LEVEL2_CACHE_LINESIZE);
-+ int max_linesize, linesize;
-+#ifdef _SC_LEVEL1_DCACHE_LINESIZE
-+ max_linesize = sysconf(_SC_LEVEL1_DCACHE_LINESIZE);
-+#else
-+ ReadInt("/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size", &max_linesize);
-+#endif
-+#ifdef _SC_LEVEL2_DCACHE_LINESIZE
-+ linesize = sysconf(_SC_LEVEL2_DCACHE_LINESIZE);
-+#else
-+ ReadInt("/sys/devices/system/cpu/cpu0/cache/index1/coherency_line_size", &linesize);
-+#endif
- if (linesize > max_linesize) max_linesize = linesize;
-- linesize = sysconf(_SC_LEVEL3_CACHE_LINESIZE);
-+#ifdef _SC_LEVEL3_DCACHE_LINESIZE
-+ linesize = sysconf(_SC_LEVEL3_DCACHE_LINESIZE);
-+#else
-+ ReadInt("/sys/devices/system/cpu/cpu0/cache/index2/coherency_line_size", &linesize);
-+#endif
- if (linesize > max_linesize) max_linesize = linesize;
-- linesize = sysconf(_SC_LEVEL4_CACHE_LINESIZE);
-+#ifdef _SC_LEVEL4_DCACHE_LINESIZE
-+ linesize = sysconf(_SC_LEVEL4_DCACHE_LINESIZE);
-+#else
-+ ReadInt("/sys/devices/system/cpu/cpu0/cache/index3/coherency_line_size", &linesize);
-+#endif
- if (linesize > max_linesize) max_linesize = linesize;
- return max_linesize;
- }
---- a/src/sat.h
-+++ b/src/sat.h
-@@ -136,7 +136,8 @@ class Sat {
- int CpuCount();
- // Return the worst-case (largest) cache line size of the system.
- int CacheLineSize();
--
-+ // Read int values from kernel file system e.g. sysfs
-+ int ReadInt(const char *filename, int *value);
- // Collect error counts from threads.
- int64 GetTotalErrorCount();
-
diff --git a/meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.11.bb b/meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.11.bb
new file mode 100644
index 0000000000..ba61ff971e
--- /dev/null
+++ b/meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.11.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Stressful Application Test"
+DESCRIPTION = "Stressful Application Test (or stressapptest, its unix name) \
+ is a memory interface test. It tries to maximize randomized traffic to memory \
+ from processor and I/O, with the intent of creating a realistic high load \
+ situation in order to test the existing hardware devices in a computer. \
+"
+HOMEPAGE = "https://github.com/stressapptest/stressapptest"
+SECTION = "benchmark"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=55ea9d559f985fb4834317d8ed6b9e58"
+
+SRCREV = "25e31a2c1fcc66f3a43e91998f0819b016322a70"
+
+EXTRA_AUTOCONF:append:armv7a = " --with-cpu=armv7a"
+EXTRA_AUTOCONF:append:armv7ve = " --with-cpu=armv7a"
+
+GI_DATA_ENABLED:libc-musl:armv7a = "False"
+GI_DATA_ENABLED:libc-musl:armv7ve = "False"
+SRC_URI = "git://github.com/stressapptest/stressapptest;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
diff --git a/meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.9.bb b/meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.9.bb
deleted file mode 100644
index d30ea5a01b..0000000000
--- a/meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.9.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Stressful Application Test"
-DESCRIPTION = "Stressful Application Test (or stressapptest, its unix name) \
- is a memory interface test. It tries to maximize randomized traffic to memory \
- from processor and I/O, with the intent of creating a realistic high load \
- situation in order to test the existing hardware devices in a computer. \
-"
-HOMEPAGE = "https://github.com/stressapptest/stressapptest"
-SECTION = "benchmark"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=55ea9d559f985fb4834317d8ed6b9e58"
-
-SRCREV = "fb72e5e5f0879231f38e0e826a98a6ca2d1ca38e"
-
-SRC_URI = "git://github.com/stressapptest/stressapptest;branch=master;protocol=https \
- file://libcplusplus-compat.patch \
- file://read_sysfs_for_cachesize.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit autotools
diff --git a/meta-oe/recipes-benchmark/sysbench/sysbench/0001-Adding-volatile-modifier-to-tmp-variable-in-memory-t.patch b/meta-oe/recipes-benchmark/sysbench/sysbench/0001-Adding-volatile-modifier-to-tmp-variable-in-memory-t.patch
deleted file mode 100644
index d628e81b56..0000000000
--- a/meta-oe/recipes-benchmark/sysbench/sysbench/0001-Adding-volatile-modifier-to-tmp-variable-in-memory-t.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From c1ebf893e32a0a77e820484d48a903523fef7c1b Mon Sep 17 00:00:00 2001
-From: Vasily Tarasov <tarasov@vasily.name>
-Date: Fri, 10 Jun 2016 14:33:48 -0400
-Subject: [PATCH] Adding volatile modifier to tmp variable in memory test
-
-Issue explanation:
-
-./sysbench/sysbench --test=memory --num-threads=16 \
- --memory-block-size=268435456 \
- --memory-total-size=137438953472 \
- --memory-oper=read \
- --memory-access-mode=seq \
- --memory-scope=local run
-
-Without this commit the time to run the above command is 0.0004 seconds.
-With this commit the time is greater than 3 seconds. Essentially,
-without the volatile modifier, the compiler optimizes read access so
-that no real access happens.
-
-Upstream-Status: Backport [part of v1.0.0 https://github.com/akopytov/sysbench/commit/8753cb93be4c0b81a20b704ced91e7a422da52b1]
-
-(cherry picked from commit 8753cb93be4c0b81a20b704ced91e7a422da52b1)
-Signed-off-by: massimo toscanelli <massimo.toscanelli@leica-geosystems.com>
----
- sysbench/tests/memory/sb_memory.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sysbench/tests/memory/sb_memory.c b/sysbench/tests/memory/sb_memory.c
-index 2e8998f..7d22bb9 100644
---- a/sysbench/tests/memory/sb_memory.c
-+++ b/sysbench/tests/memory/sb_memory.c
-@@ -244,7 +244,7 @@ sb_request_t memory_get_request(int tid)
- int memory_execute_request(sb_request_t *sb_req, int thread_id)
- {
- sb_mem_request_t *mem_req = &sb_req->u.mem_request;
-- int tmp = 0;
-+ volatile int tmp = 0;
- int idx;
- int *buf, *end;
- log_msg_t msg;
diff --git a/meta-oe/recipes-benchmark/sysbench/sysbench_0.4.12.bb b/meta-oe/recipes-benchmark/sysbench/sysbench_0.4.12.bb
deleted file mode 100644
index 4ac78fb8fd..0000000000
--- a/meta-oe/recipes-benchmark/sysbench/sysbench_0.4.12.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "System performance benchmark"
-HOMEPAGE = "http://github.com/akopytov/sysbench"
-SECTION = "console/tests"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit autotools
-
-# The project has moved from Sourceforge to Launchpad, to Github. Use the source tarball from
-# Launchpad until the next release is available from Github.
-SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+files/${BPN}_${PV}.orig.tar.gz \
- file://0001-Adding-volatile-modifier-to-tmp-variable-in-memory-t.patch \
- "
-
-SRC_URI[md5sum] = "3a6d54fdd3fe002328e4458206392b9d"
-SRC_URI[sha256sum] = "83fa7464193e012c91254e595a89894d8e35b4a38324b52a5974777e3823ea9e"
-
-EXTRA_OECONF += "--enable-largefile"
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[aio] = "--enable-aio,--disable-aio,libaio,"
-PACKAGECONFIG[mysql] = "--with-mysql \
- --with-mysql-includes=${STAGING_INCDIR}/mysql \
- --with-mysql-libs=${STAGING_LIBDIR}, \
- --without-mysql,mysql5"
-
-do_configure:prepend() {
- touch ${S}/NEWS ${S}/AUTHORS
-}
diff --git a/meta-oe/recipes-benchmark/sysbench/sysbench_1.0.20.bb b/meta-oe/recipes-benchmark/sysbench/sysbench_1.0.20.bb
new file mode 100644
index 0000000000..11e33fec55
--- /dev/null
+++ b/meta-oe/recipes-benchmark/sysbench/sysbench_1.0.20.bb
@@ -0,0 +1,30 @@
+SUMMARY = "System performance benchmark"
+HOMEPAGE = "http://github.com/akopytov/sysbench"
+SECTION = "console/tests"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "libtool luajit concurrencykit"
+
+inherit autotools-brokensep pkgconfig
+
+# The project has moved from Sourceforge to Launchpad, to Github. Use the source tarball from
+# Launchpad until the next release is available from Github.
+SRC_URI = "git://github.com/akopytov/sysbench.git;protocol=https;branch=master"
+SRCREV = "ebf1c90da05dea94648165e4f149abc20c979557"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST = "(arm|aarch64|i.86|x86_64).*-linux*"
+
+EXTRA_OECONF += "--enable-largefile --with-system-luajit --with-system-ck --without-gcc-arch --with-lib-prefix=no"
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[aio] = "--enable-aio,--disable-aio,libaio,"
+PACKAGECONFIG[mysql] = "--with-mysql \
+ --with-mysql-includes=${STAGING_INCDIR}/mysql \
+ --with-mysql-libs=${STAGING_LIBDIR}, \
+ --without-mysql,mysql5"
+
+do_configure:prepend() {
+ touch ${S}/NEWS ${S}/AUTHORS
+}
diff --git a/meta-oe/recipes-benchmark/tinymembench/tinymembench/0001-asm-Delete-.func-.endfunc-directives.patch b/meta-oe/recipes-benchmark/tinymembench/tinymembench/0001-asm-Delete-.func-.endfunc-directives.patch
index c090700763..d69c52bee9 100644
--- a/meta-oe/recipes-benchmark/tinymembench/tinymembench/0001-asm-Delete-.func-.endfunc-directives.patch
+++ b/meta-oe/recipes-benchmark/tinymembench/tinymembench/0001-asm-Delete-.func-.endfunc-directives.patch
@@ -9,6 +9,8 @@ and rightly so.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
aarch64-asm.S | 14 +-------------
arm-neon.S | 24 ------------------------
mips-32.S | 5 ++---
diff --git a/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb b/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
index 025aacf251..200a0de849 100644
--- a/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
+++ b/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "https://github.com/ssvb/tinymembench/wiki"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://main.c;endline=22;md5=879b9bbb60851454885b5fa47eb6b345"
-PV = "0.4.9+git${SRCPV}"
+PV = "0.4.9+git"
SRCREV = "a2cf6d7e382e3aea1eb39173174d9fa28cad15f3"
SRC_URI = "git://github.com/ssvb/tinymembench.git;branch=master;protocol=https \
diff --git a/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb b/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb
index 5efddfcc93..0769715f45 100644
--- a/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb
+++ b/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb
@@ -3,7 +3,6 @@ HOMEPAGE = "http://sourceforge.net/projects/tiobench/"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-PR = "r1"
SRC_URI = "\
http://sourceforge.net/projects/tiobench/files/tiobench/${PV}/${BP}.tar.gz \
diff --git a/meta-oe/recipes-bsp/bolt/bolt_0.9.6.bb b/meta-oe/recipes-bsp/bolt/bolt_0.9.6.bb
new file mode 100644
index 0000000000..4688ae860b
--- /dev/null
+++ b/meta-oe/recipes-bsp/bolt/bolt_0.9.6.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Thunderbolt user-space management tool"
+DESCRIPTION = "Userspace system daemon to enable security levels for Thunderbolt on GNU/Linux"
+HOMEPAGE = "https://gitlab.freedesktop.org/bolt/bolt"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "udev polkit dbus"
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+SRC_URI = "git://gitlab.freedesktop.org/bolt/bolt.git;protocol=https;branch=master"
+SRCREV = "f03c50b22ae3fda26711ddabd91e2c5dd8103478"
+
+S = "${WORKDIR}/git"
+
+CVE_PRODUCT = "freedesktop:bolt"
+
+inherit cmake pkgconfig meson features_check
+
+FILES:${PN} += "${datadir}/dbus-1/* \
+ ${datadir}/polkit-1/* \
+ ${libdir}/systemd/* \
+ "
diff --git a/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch b/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch
index fb2f07f073..72f4801000 100644
--- a/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch
+++ b/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- git.old/Makefile 2012-04-17 13:29:46.280435340 +0200
+++ git/Makefile 2012-04-17 13:31:13.664433470 +0200
@@ -77,17 +77,7 @@ INSTALL_PROGRAM = ${INSTALL}
diff --git a/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb b/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb
index 1304ba9e03..cb62ee46af 100644
--- a/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb
+++ b/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb
@@ -16,7 +16,6 @@ SRC_URI = "git://github.com/emagii/cpufrequtils.git;branch=master;protocol=https
EXTRA_OEMAKE:append = " ${@['', 'NLS=false']['${USE_NLS}' == 'no']} "
-PR = "r5"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb b/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
index 455859ec86..03076cbc60 100644
--- a/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
+++ b/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = " sysfsutils"
SRCREV = "1c57818ecee186aa47af0342149577df5302c022"
-PV = "0.18+git${SRCPV}"
+PV = "0.18+git"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-bsp/firmwared/firmwared_git.bb b/meta-oe/recipes-bsp/firmwared/firmwared_git.bb
index e8b491a435..0a041835e1 100644
--- a/meta-oe/recipes-bsp/firmwared/firmwared_git.bb
+++ b/meta-oe/recipes-bsp/firmwared/firmwared_git.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENSE-APACHE;md5=7b486c2338d225a1405d979ed2c15ce8 \
SRC_URI = "git://github.com/teg/firmwared.git;branch=master;protocol=https \
file://firmwared.service"
-PV = "0+git${SRCPV}"
+PV = "0+git"
SRCREV = "2e6b5db43d63a5c0283a4cae9a6a20b7ad107a04"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-bsp/flashrom/flashrom/0001-typecast-enum-conversions-explicitly.patch b/meta-oe/recipes-bsp/flashrom/flashrom/0001-typecast-enum-conversions-explicitly.patch
deleted file mode 100644
index f2302dbcc3..0000000000
--- a/meta-oe/recipes-bsp/flashrom/flashrom/0001-typecast-enum-conversions-explicitly.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From 3a0c1966e4c66f91e6e8551e906b6db38002acb4 Mon Sep 17 00:00:00 2001
-From: Angel Pons <th3fanbus@gmail.com>
-Date: Wed, 27 May 2020 12:15:51 +0200
-Subject: [PATCH] libflashrom.c: Use casts on enum conversions
-
-This allows flashrom to build with GCC 10.
-
-Change-Id: I2166cdf3681452631ef8e980face2924e9a6c81a
-Signed-off-by: Angel Pons <th3fanbus@gmail.com>
-Reviewed-on: https://review.coreboot.org/c/flashrom/+/41775
-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-Reviewed-by: HAOUAS Elyes <ehaouas@noos.fr>
----
- libflashrom.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/libflashrom.c b/libflashrom.c
-index ab7e364..c20d9c7 100644
---- a/libflashrom.c
-+++ b/libflashrom.c
-@@ -188,7 +188,8 @@ struct flashrom_board_info *flashrom_supported_boards(void)
- for (; i < boards_known_size; ++i) {
- supported_boards[i].vendor = binfo[i].vendor;
- supported_boards[i].name = binfo[i].name;
-- supported_boards[i].working = binfo[i].working;
-+ supported_boards[i].working =
-+ (enum flashrom_test_state) binfo[i].working;
- }
- } else {
- msg_gerr("Memory allocation error!\n");
-@@ -226,7 +227,8 @@ struct flashrom_chipset_info *flashrom_supported_chipsets(void)
- supported_chipsets[i].chipset = chipset[i].device_name;
- supported_chipsets[i].vendor_id = chipset[i].vendor_id;
- supported_chipsets[i].chipset_id = chipset[i].device_id;
-- supported_chipsets[i].status = chipset[i].status;
-+ supported_chipsets[i].status =
-+ (enum flashrom_test_state) chipset[i].status;
- }
- } else {
- msg_gerr("Memory allocation error!\n");
---
-2.25.1
diff --git a/meta-oe/recipes-bsp/flashrom/flashrom_1.2.1.bb b/meta-oe/recipes-bsp/flashrom/flashrom_1.2.1.bb
new file mode 100644
index 0000000000..b2592d294b
--- /dev/null
+++ b/meta-oe/recipes-bsp/flashrom/flashrom_1.2.1.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips"
+LICENSE = "GPL-2.0-or-later"
+HOMEPAGE = "http://flashrom.org"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+SRC_URI = "https://download.flashrom.org/releases/flashrom-v${PV}.tar.bz2 \
+ file://meson-fixes.patch \
+ file://0001-flashrom-Mark-RISCV-as-non-memory-mapped-I-O-archite.patch \
+ file://0001-hwaccess-use-__asm__-as-is-done-elsewhere.patch \
+ "
+SRC_URI[sha256sum] = "89a7ff5beb08c89b8795bbd253a51b9453547a864c31793302296b56bbc56d65"
+
+S = "${WORKDIR}/flashrom-v${PV}"
+
+inherit meson pkgconfig
+
+PACKAGECONFIG ??= "pci usb ftdi"
+PACKAGECONFIG[pci] = "-Dpciutils=true,-Dpciutils=false,pciutils"
+PACKAGECONFIG[usb] = "-Dusb=true,-Dusb=false,libusb"
+PACKAGECONFIG[ftdi] = "-Dftdi=true,-Dftdi=false,libftdi"
diff --git a/meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb b/meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb
deleted file mode 100644
index bdc3ca084c..0000000000
--- a/meta-oe/recipes-bsp/flashrom/flashrom_1.2.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips"
-LICENSE = "GPL-2.0-or-later"
-HOMEPAGE = "http://flashrom.org"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-SRC_URI = "https://download.flashrom.org/releases/flashrom-v${PV}.tar.bz2 \
- file://0001-typecast-enum-conversions-explicitly.patch \
- file://meson-fixes.patch \
- file://0001-flashrom-Mark-RISCV-as-non-memory-mapped-I-O-archite.patch \
- file://0001-hwaccess-use-__asm__-as-is-done-elsewhere.patch \
- "
-SRC_URI[md5sum] = "7f8e4b87087eb12ecee0fcc5445b4956"
-SRC_URI[sha256sum] = "e1f8d95881f5a4365dfe58776ce821dfcee0f138f75d0f44f8a3cd032d9ea42b"
-
-S = "${WORKDIR}/flashrom-v${PV}"
-
-inherit meson pkgconfig
-
-PACKAGECONFIG ??= "pci usb ftdi"
-PACKAGECONFIG[pci] = "-Dpciutils=true,-Dpciutils=false,pciutils"
-PACKAGECONFIG[usb] = "-Dusb=true,-Dusb=false,libusb"
-PACKAGECONFIG[ftdi] = "-Dftdi=true,-Dftdi=false,libftdi"
diff --git a/meta-oe/recipes-bsp/fwupd/fwupd/0001-meson-Avoid-absolute-buildtime-paths-in-generated-he.patch b/meta-oe/recipes-bsp/fwupd/fwupd/0001-meson-Avoid-absolute-buildtime-paths-in-generated-he.patch
new file mode 100644
index 0000000000..2273bdf105
--- /dev/null
+++ b/meta-oe/recipes-bsp/fwupd/fwupd/0001-meson-Avoid-absolute-buildtime-paths-in-generated-he.patch
@@ -0,0 +1,41 @@
+From b1df1ed3a21b8ef0244102043a8fb88b0ccc3f91 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 17 Apr 2023 11:30:21 -0700
+Subject: [PATCH] meson: Avoid absolute buildtime paths in generated headers
+
+using meson.project_source_root() means the path emitted to include .h
+files is absolute and it makes its way into PN-src as well, which infact
+is not going to work if the -src package was used to re-build this in a
+different build path. Therefore use relative path which is '.' and
+relative to ${S}
+
+Changes
+include "<abspath>/plugins/acpi-dmar/fu-acpi-dmar-plugin.h"
+to
+include "./plugins/acpi-dmar/fu-acpi-dmar-plugin.h"
+
+in generated build/src/fu-plugin-builtin.h
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index b9f6736..bb856ea 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -188,7 +188,7 @@ plugins_hdr = custom_target('fwupd-generate-plugins-header',
+ command : [
+ join_paths(meson.project_source_root(), 'contrib', 'generate-plugins-header.py'),
+ '@OUTPUT@',
+- meson.project_source_root(),
++ '.',
+ ','.join(plugin_names),
+ ],
+ )
+--
+2.40.0
+
diff --git a/meta-oe/recipes-bsp/fwupd/fwupd/c54ae9c524998e449b822feb465a0c90317cd735.patch b/meta-oe/recipes-bsp/fwupd/fwupd/c54ae9c524998e449b822feb465a0c90317cd735.patch
deleted file mode 100644
index 947c764030..0000000000
--- a/meta-oe/recipes-bsp/fwupd/fwupd/c54ae9c524998e449b822feb465a0c90317cd735.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From c54ae9c524998e449b822feb465a0c90317cd735 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 20 Sep 2022 15:10:26 +0100
-Subject: [PATCH] trivial: Fix compile when using python 3.7 or older
-
-Upstream-Status: Backport [https://github.com/fwupd/fwupd/pull/5051]
-Signed-off-by: Richard Hughes <richard@hughsie.com>
----
- contrib/generate-gresource-xml.py | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/contrib/generate-gresource-xml.py b/contrib/generate-gresource-xml.py
-index 235a770020..569c804937 100755
---- a/contrib/generate-gresource-xml.py
-+++ b/contrib/generate-gresource-xml.py
-@@ -23,6 +23,9 @@
- n_file.set("preprocess", "xml-stripblanks")
- n_file.set("alias", os.path.basename(fn))
- with open(sys.argv[1], "wb") as f:
-- f.write(ET.tostring(root, "utf-8", xml_declaration=True))
-+ try:
-+ f.write(ET.tostring(root, "utf-8", xml_declaration=True))
-+ except TypeError:
-+ f.write(ET.tostring(root, "utf-8"))
-
- sys.exit(0)
diff --git a/meta-oe/recipes-bsp/fwupd/fwupd_1.8.4.bb b/meta-oe/recipes-bsp/fwupd/fwupd_1.8.4.bb
deleted file mode 100644
index 72f37aea85..0000000000
--- a/meta-oe/recipes-bsp/fwupd/fwupd_1.8.4.bb
+++ /dev/null
@@ -1,126 +0,0 @@
-SUMMARY = "A simple daemon to allow session software to update firmware"
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "glib-2.0 libxmlb json-glib libjcat gcab vala-native"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \
- file://c54ae9c524998e449b822feb465a0c90317cd735.patch \
- file://run-ptest"
-SRC_URI[sha256sum] = "adfa07434cdc29ec41c40fef460e8d970963fe0c7e849dec7f3932adb161f886"
-
-UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
-
-# Machine-specific as we examine MACHINE_FEATURES to decide whether to build the UEFI plugins
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-inherit meson vala gobject-introspection systemd bash-completion pkgconfig gi-docgen ptest manpages
-
-GIDOCGEN_MESON_OPTION = 'docs'
-GIDOCGEN_MESON_ENABLE_FLAG = 'docgen'
-GIDOCGEN_MESON_DISABLE_FLAG = 'none'
-
-PACKAGECONFIG ??= "curl gnutls gudev gusb \
- ${@bb.utils.filter('DISTRO_FEATURES', 'bluetooth polkit', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd offline', '', d)} \
- ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'plugin_uefi_capsule plugin_uefi_pk', '', d)} \
- ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests plugin_dummy', '', d)} \
- hsi \
- plugin_acpi_phat \
- plugin_amt \
- plugin_bcm57xx \
- plugin_emmc \
- plugin_ep963x \
- plugin_fastboot \
- plugin_flashrom \
- plugin_gpio \
- plugin_intel_spi \
- plugin_logitech_bulkcontroller \
- plugin_modem_manager \
- plugin_msr \
- plugin_nitrokey \
- plugin_nvme \
- plugin_parade_lspcon \
- plugin_pixart_rf \
- plugin_platform_integrity \
- plugin_realtek_mst \
- plugin_redfish \
- plugin_synaptics_mst \
- plugin_synaptics_rmi \
- plugin_scsi \
- plugin_uf2 \
- plugin_upower \
- sqlite"
-
-PACKAGECONFIG[bluetooth] = "-Dbluez=true,-Dbluez=false"
-PACKAGECONFIG[compat-cli] = "-Dcompat_cli=true,-Dcompat_cli=false"
-PACKAGECONFIG[consolekit] = "-Dconsolekit=true,-Dconsolekit=false,consolekit"
-PACKAGECONFIG[curl] = "-Dcurl=true,-Dcurl=false,curl"
-PACKAGECONFIG[firmware-packager] = "-Dfirmware-packager=true,-Dfirmware-packager=false"
-PACKAGECONFIG[fish-completion] = "-Dfish_completion=true,-Dfish_completion=false"
-PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls"
-PACKAGECONFIG[gudev] = "-Dgudev=true,-Dgudev=false,libgudev"
-PACKAGECONFIG[gusb] = "-Dgusb=true,-Dgusb=false,libgusb"
-PACKAGECONFIG[hsi] = "-Dhsi=true,-Dhsi=false"
-PACKAGECONFIG[libarchive] = "-Dlibarchive=true,-Dlibarchive=false,libarchive"
-PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false"
-PACKAGECONFIG[metainfo] = "-Dmetainfo=true,-Dmetainfo=false"
-PACKAGECONFIG[offline] = "-Doffline=true,-Doffline=false"
-PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false,polkit"
-PACKAGECONFIG[sqlite] = "-Dsqlite=true,-Dsqlite=false,sqlite3"
-PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
-PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,gcab-native"
-
-
-# TODO plugins-all meta-option that expands to all plugin_*?
-PACKAGECONFIG[plugin_acpi_phat] = "-Dplugin_acpi_phat=true,-Dplugin_acpi_phat=false"
-PACKAGECONFIG[plugin_amt] = "-Dplugin_amt=true,-Dplugin_amt=false"
-PACKAGECONFIG[plugin_bcm57xx] = "-Dplugin_bcm57xx=true,-Dplugin_bcm57xx=false"
-PACKAGECONFIG[plugin_cfu] = "-Dplugin_cfu=true,-Dplugin_cfu=false"
-PACKAGECONFIG[plugin_dell] = "-Dplugin_dell=true,-Dplugin_dell=false,libsmbios"
-PACKAGECONFIG[plugin_dummy] = "-Dplugin_dummy=true,-Dplugin_dummy=false"
-PACKAGECONFIG[plugin_emmc] = "-Dplugin_emmc=true,-Dplugin_emmc=false"
-PACKAGECONFIG[plugin_ep963x] = "-Dplugin_ep963x=true,-Dplugin_ep963x=false"
-PACKAGECONFIG[plugin_fastboot] = "-Dplugin_fastboot=true,-Dplugin_fastboot=false"
-PACKAGECONFIG[plugin_flashrom] = "-Dplugin_flashrom=true,-Dplugin_flashrom=false,flashrom"
-PACKAGECONFIG[plugin_gpio] = "-Dplugin_gpio=true,-Dplugin_gpio"
-PACKAGECONFIG[plugin_intel_spi] = "-Dplugin_intel_spi=true -Dlzma=true,-Dplugin_intel_spi=false -Dlzma=false,xz"
-PACKAGECONFIG[plugin_logitech_bulkcontroller] = "-Dplugin_logitech_bulkcontroller=true,-Dplugin_logitech_bulkcontroller=false,protobuf-c-native protobuf-c"
-PACKAGECONFIG[plugin_modem_manager] = "-Dplugin_modem_manager=true,-Dplugin_modem_manager=false,libqmi modemmanager"
-PACKAGECONFIG[plugin_msr] = "-Dplugin_msr=true,-Dplugin_msr=false,cpuid"
-PACKAGECONFIG[plugin_nitrokey] = "-Dplugin_nitrokey=true,-Dplugin_nitrokey=false"
-PACKAGECONFIG[plugin_nvme] = "-Dplugin_nvme=true,-Dplugin_nvme=false"
-PACKAGECONFIG[plugin_parade_lspcon] = "-Dplugin_parade_lspcon=true,-Dplugin_parade_lspcon=false"
-PACKAGECONFIG[plugin_pixart_rf] = "-Dplugin_pixart_rf=true,-Dplugin_pixart_rf=false"
-PACKAGECONFIG[plugin_platform_integrity] = "-Dplugin_platform_integrity=true,-Dplugin_platform_integrity=false"
-PACKAGECONFIG[plugin_powerd] = "-Dplugin_powerd=true,-Dplugin_powerd=false"
-PACKAGECONFIG[plugin_realtek_mst] = "-Dplugin_realtek_mst=true,-Dplugin_realtek_mst=false"
-PACKAGECONFIG[plugin_redfish] = "-Dplugin_redfish=true,-Dplugin_redfish=false"
-PACKAGECONFIG[plugin_scsi] = "-Dplugin_scsi=true,-Dplugin_scsi=false"
-PACKAGECONFIG[plugin_synaptics_mst] = "-Dplugin_synaptics_mst=true,-Dplugin_synaptics_mst=false"
-PACKAGECONFIG[plugin_synaptics_rmi] = "-Dplugin_synaptics_rmi=true,-Dplugin_synaptics_rmi=false"
-PACKAGECONFIG[plugin_tpm] = "-Dplugin_tpm=true,-Dplugin_tpm=false,tpm2-tss"
-# Turn off the capsule splash as it needs G-I at buildtime, which isn't currently supported
-PACKAGECONFIG[plugin_uefi_capsule] = "-Dplugin_uefi_capsule=true -Dplugin_uefi_capsule_splash=false,-Dplugin_uefi_capsule=false,efivar fwupd-efi"
-PACKAGECONFIG[plugin_uefi_pk] = "-Dplugin_uefi_pk=true,-Dplugin_uefi_pk=false"
-PACKAGECONFIG[plugin_uf2] = "-Dplugin_uf2=true,-Dplugin_uf2=false"
-PACKAGECONFIG[plugin_upower] = "-Dplugin_upower=true,-Dplugin_upower=false"
-
-# Always disable these plugins on non-x86 platforms as they don't compile or are useless
-DISABLE_NON_X86 = "plugin_amt plugin_intel_spi plugin_msr"
-DISABLE_NON_X86:x86 = ""
-DISABLE_NON_X86:x86-64 = ""
-PACKAGECONFIG:remove = "${DISABLE_NON_X86}"
-
-FILES:${PN} += "${libdir}/fwupd-plugins-* \
- ${systemd_unitdir} \
- ${datadir}/fish \
- ${datadir}/metainfo \
- ${datadir}/icons \
- ${datadir}/dbus-1 \
- ${datadir}/polkit-1 \
- ${nonarch_libdir}/modules-load.d"
-
-FILES:${PN}-ptest += "${libexecdir}/installed-tests/ \
- ${datadir}/installed-tests/"
-RDEPENDS:${PN}-ptest += "gnome-desktop-testing"
diff --git a/meta-oe/recipes-bsp/fwupd/fwupd_1.8.9.bb b/meta-oe/recipes-bsp/fwupd/fwupd_1.8.9.bb
new file mode 100644
index 0000000000..1f95dee1be
--- /dev/null
+++ b/meta-oe/recipes-bsp/fwupd/fwupd_1.8.9.bb
@@ -0,0 +1,142 @@
+SUMMARY = "A simple daemon to allow session software to update firmware"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "glib-2.0 libxmlb json-glib libjcat gcab vala-native"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \
+ file://0001-meson-Avoid-absolute-buildtime-paths-in-generated-he.patch \
+ file://run-ptest"
+SRC_URI[sha256sum] = "719a791ac4ba5988aeb93ec42778bd65d33cb075d0c093b5c04e5e1682be528a"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
+# Machine-specific as we examine MACHINE_FEATURES to decide whether to build the UEFI plugins
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit meson vala gobject-introspection systemd bash-completion pkgconfig gi-docgen ptest manpages useradd
+
+GIDOCGEN_MESON_OPTION = 'docs'
+GIDOCGEN_MESON_ENABLE_FLAG = 'docgen'
+GIDOCGEN_MESON_DISABLE_FLAG = 'disabled'
+
+PACKAGECONFIG ??= "curl gnutls gudev gusb \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'bluetooth polkit', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd offline', '', d)} \
+ ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'plugin_uefi_capsule plugin_uefi_pk', '', d)} \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests plugin_dummy', '', d)} \
+ hsi \
+ plugin_android_boot \
+ plugin_acpi_phat \
+ plugin_bcm57xx \
+ plugin_emmc \
+ plugin_ep963x \
+ plugin_fastboot \
+ plugin_flashrom \
+ plugin_gpio \
+ plugin_igsc \
+ plugin_intel_me \
+ plugin_intel_spi \
+ plugin_logitech_bulkcontroller \
+ plugin_logitech_scribe \
+ plugin_modem_manager \
+ plugin_msr \
+ plugin_nitrokey \
+ plugin_nvme \
+ plugin_parade_lspcon \
+ plugin_pixart_rf \
+ plugin_realtek_mst \
+ plugin_redfish \
+ plugin_synaptics_mst \
+ plugin_synaptics_rmi \
+ plugin_scsi \
+ plugin_uf2 \
+ plugin_upower \
+ sqlite"
+
+PACKAGECONFIG[bluetooth] = "-Dbluez=true,-Dbluez=false"
+PACKAGECONFIG[compat-cli] = "-Dcompat_cli=true,-Dcompat_cli=false"
+PACKAGECONFIG[consolekit] = "-Dconsolekit=true,-Dconsolekit=false,consolekit"
+PACKAGECONFIG[curl] = "-Dcurl=true,-Dcurl=false,curl"
+PACKAGECONFIG[firmware-packager] = "-Dfirmware-packager=true,-Dfirmware-packager=false"
+PACKAGECONFIG[fish-completion] = "-Dfish_completion=true,-Dfish_completion=false"
+PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls"
+PACKAGECONFIG[gudev] = "-Dgudev=true,-Dgudev=false,libgudev"
+PACKAGECONFIG[gusb] = "-Dgusb=true,-Dgusb=false,libgusb"
+PACKAGECONFIG[hsi] = "-Dhsi=true,-Dhsi=false"
+PACKAGECONFIG[libarchive] = "-Dlibarchive=true,-Dlibarchive=false,libarchive"
+PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false"
+PACKAGECONFIG[metainfo] = "-Dmetainfo=true,-Dmetainfo=false"
+PACKAGECONFIG[offline] = "-Doffline=true,-Doffline=false"
+PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false,polkit"
+PACKAGECONFIG[sqlite] = "-Dsqlite=true,-Dsqlite=false,sqlite3"
+PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,gcab-native"
+
+
+# TODO plugins-all meta-option that expands to all plugin_*?
+PACKAGECONFIG[plugin_acpi_phat] = "-Dplugin_acpi_phat=true,-Dplugin_acpi_phat=false"
+PACKAGECONFIG[plugin_android_boot] = "-Dplugin_android_boot=enabled,-Dplugin_android_boot=disabled"
+PACKAGECONFIG[plugin_bcm57xx] = "-Dplugin_bcm57xx=true,-Dplugin_bcm57xx=false"
+PACKAGECONFIG[plugin_cfu] = "-Dplugin_cfu=true,-Dplugin_cfu=false"
+PACKAGECONFIG[plugin_dell] = "-Dplugin_dell=true,-Dplugin_dell=false,libsmbios"
+PACKAGECONFIG[plugin_dummy] = "-Dplugin_dummy=true,-Dplugin_dummy=false"
+PACKAGECONFIG[plugin_emmc] = "-Dplugin_emmc=true,-Dplugin_emmc=false"
+PACKAGECONFIG[plugin_ep963x] = "-Dplugin_ep963x=true,-Dplugin_ep963x=false"
+PACKAGECONFIG[plugin_fastboot] = "-Dplugin_fastboot=true,-Dplugin_fastboot=false"
+PACKAGECONFIG[plugin_flashrom] = "-Dplugin_flashrom=true,-Dplugin_flashrom=false,flashrom"
+PACKAGECONFIG[plugin_gpio] = "-Dplugin_gpio=true,-Dplugin_gpio=false"
+PACKAGECONFIG[plugin_igsc] = "-Dplugin_igsc=enabled,-Dplugin_igsc=disabled"
+PACKAGECONFIG[plugin_intel_me] = "-Dplugin_intel_me=enabled,-Dplugin_intel_me=disabled"
+PACKAGECONFIG[plugin_intel_spi] = "-Dplugin_intel_spi=true -Dlzma=true,-Dplugin_intel_spi=false -Dlzma=false,xz"
+PACKAGECONFIG[plugin_logitech_bulkcontroller] = "-Dplugin_logitech_bulkcontroller=true,-Dplugin_logitech_bulkcontroller=false,protobuf-c-native protobuf-c"
+PACKAGECONFIG[plugin_logitech_scribe] = "-Dplugin_logitech_scribe=enabled,-Dplugin_logitech_scribe=disabled"
+PACKAGECONFIG[plugin_modem_manager] = "-Dplugin_modem_manager=true,-Dplugin_modem_manager=false,libqmi modemmanager"
+PACKAGECONFIG[plugin_msr] = "-Dplugin_msr=true,-Dplugin_msr=false,cpuid"
+PACKAGECONFIG[plugin_nitrokey] = "-Dplugin_nitrokey=true,-Dplugin_nitrokey=false"
+PACKAGECONFIG[plugin_nvme] = "-Dplugin_nvme=true,-Dplugin_nvme=false"
+PACKAGECONFIG[plugin_parade_lspcon] = "-Dplugin_parade_lspcon=true,-Dplugin_parade_lspcon=false"
+PACKAGECONFIG[plugin_pixart_rf] = "-Dplugin_pixart_rf=true,-Dplugin_pixart_rf=false"
+PACKAGECONFIG[plugin_powerd] = "-Dplugin_powerd=true,-Dplugin_powerd=false"
+PACKAGECONFIG[plugin_realtek_mst] = "-Dplugin_realtek_mst=true,-Dplugin_realtek_mst=false"
+PACKAGECONFIG[plugin_redfish] = "-Dplugin_redfish=true,-Dplugin_redfish=false"
+PACKAGECONFIG[plugin_scsi] = "-Dplugin_scsi=true,-Dplugin_scsi=false"
+PACKAGECONFIG[plugin_synaptics_mst] = "-Dplugin_synaptics_mst=true,-Dplugin_synaptics_mst=false"
+PACKAGECONFIG[plugin_synaptics_rmi] = "-Dplugin_synaptics_rmi=true,-Dplugin_synaptics_rmi=false"
+PACKAGECONFIG[plugin_tpm] = "-Dplugin_tpm=true,-Dplugin_tpm=false,tpm2-tss"
+# Turn off the capsule splash as it needs G-I at buildtime, which isn't currently supported
+PACKAGECONFIG[plugin_uefi_capsule] = "-Dplugin_uefi_capsule=true -Dplugin_uefi_capsule_splash=false,-Dplugin_uefi_capsule=false,efivar fwupd-efi"
+PACKAGECONFIG[plugin_uefi_pk] = "-Dplugin_uefi_pk=true,-Dplugin_uefi_pk=false"
+PACKAGECONFIG[plugin_uf2] = "-Dplugin_uf2=true,-Dplugin_uf2=false"
+PACKAGECONFIG[plugin_upower] = "-Dplugin_upower=true,-Dplugin_upower=false"
+
+# Always disable these plugins on non-x86 platforms as they don't compile or are useless
+DISABLE_NON_X86 = "plugin_intel_me plugin_intel_spi plugin_msr"
+DISABLE_NON_X86:x86 = ""
+DISABLE_NON_X86:x86-64 = ""
+PACKAGECONFIG:remove = "${DISABLE_NON_X86}"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 --shell /bin/nologin polkitd"
+
+do_install:append() {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then
+ #Fix up permissions on polkit rules.d to work with rpm4 constraints
+ chmod 700 ${D}/${datadir}/polkit-1/rules.d
+ chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
+ fi
+}
+
+FILES:${PN} += "${libdir}/fwupd-plugins-* \
+ ${libdir}/fwupd-${PV} \
+ ${systemd_unitdir} \
+ ${datadir}/fish \
+ ${datadir}/metainfo \
+ ${datadir}/icons \
+ ${datadir}/dbus-1 \
+ ${datadir}/polkit-1 \
+ ${nonarch_libdir}/modules-load.d"
+
+FILES:${PN}-ptest += "${libexecdir}/installed-tests/ \
+ ${datadir}/installed-tests/"
+RDEPENDS:${PN}-ptest += "gnome-desktop-testing"
diff --git a/meta-oe/recipes-bsp/i2cdev/i2cdev/fix-lsi2c-makefile.patch b/meta-oe/recipes-bsp/i2cdev/i2cdev/fix-lsi2c-makefile.patch
new file mode 100644
index 0000000000..820d4bb447
--- /dev/null
+++ b/meta-oe/recipes-bsp/i2cdev/i2cdev/fix-lsi2c-makefile.patch
@@ -0,0 +1,28 @@
+From 57c09727220e00ab961325a2c85f5611bd1770d6 Mon Sep 17 00:00:00 2001
+Message-Id: <57c09727220e00ab961325a2c85f5611bd1770d6.1701984646.git.joerg.sommer@navimatix.de>
+From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de>
+Date: Thu, 7 Dec 2023 22:29:40 +0100
+Subject: [PATCH] lsi2c/Makefile: Use builddir to refer to libi2cdev.a
+
+Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de>
+Upstream-Status: Submitted [https://github.com/costad2/i2cdev/pull/2/commits/43f15e97d869797dbfeaacafa13216aaaf353426]
+---
+ lsi2c/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lsi2c/Makefile.am b/lsi2c/Makefile.am
+index 6defc1f..0d81d01 100644
+--- a/lsi2c/Makefile.am
++++ b/lsi2c/Makefile.am
+@@ -14,7 +14,7 @@ bin_PROGRAMS=lsi2c
+ lsi2c_SOURCES = lsi2c.c
+
+ # Linker options for lsi2c
+-lsi2c_LDADD = $(top_srcdir)/libi2cdev/libi2cdev.a
++lsi2c_LDADD = $(top_builddir)/libi2cdev/libi2cdev.a
+
+ # Compiler options for lsi2c
+ lsi2c_CFLAGS = -I$(top_srcdir)/include -std=c99 -fPIC
+--
+2.34.1
+
diff --git a/meta-oe/recipes-bsp/i2cdev/i2cdev/fix-musl.patch b/meta-oe/recipes-bsp/i2cdev/i2cdev/fix-musl.patch
new file mode 100644
index 0000000000..a15514bafe
--- /dev/null
+++ b/meta-oe/recipes-bsp/i2cdev/i2cdev/fix-musl.patch
@@ -0,0 +1,110 @@
+From ce3affeb45a65649dda1edc9a4f0586e9db47ada Mon Sep 17 00:00:00 2001
+Message-Id: <ce3affeb45a65649dda1edc9a4f0586e9db47ada.1705064898.git.joerg.sommer@navimatix.de>
+From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de>
+Date: Fri, 12 Jan 2024 13:59:51 +0100
+Subject: [PATCH] lsi2c: Replace error() by fprintf, drop error.h
+
+The MUSL C library doesn't support error.h. Because the only usage of this
+is the *error* function in lsi2c.c, this gets replaced by a *fprintf*. This
+doesn't print the program name, but keeps the message and the error
+description.
+
+Upstream-Status: Submitted [https://github.com/costad2/i2cdev/pull/5]
+---
+ libi2cdev/access.c | 1 -
+ libi2cdev/i2c-bus-parser.c | 1 -
+ libi2cdev/i2c-dev-path.c | 1 -
+ libi2cdev/i2c-error.c | 1 -
+ libi2cdev/init.c | 2 --
+ libi2cdev/sysfs.c | 1 -
+ lsi2c/lsi2c.c | 4 ++--
+ 7 files changed, 2 insertions(+), 9 deletions(-)
+
+--- a/libi2cdev/access.c
++++ b/libi2cdev/access.c
+@@ -16,7 +16,6 @@
+
+ #include "busses.h"
+ #include "data.h"
+-#include "error.h"
+ #include "sysfs.h"
+
+ #include "i2cdiscov.h"
+--- a/libi2cdev/i2c-bus-parser.c
++++ b/libi2cdev/i2c-bus-parser.c
+@@ -27,9 +27,9 @@
+ #include <dirent.h>
+ #include <fcntl.h>
+ #include <errno.h>
+-#include <error.h>
+ #include <alloca.h>
+ #include <search.h>
++#include <libgen.h>
+
+ #include "common.h"
+ #include "sysfs.h"
+--- a/libi2cdev/i2c-dev-path.c
++++ b/libi2cdev/i2c-dev-path.c
+@@ -11,7 +11,6 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <stdio.h>
+-#include <error.h>
+
+ #include <linux/limits.h>
+
+--- a/libi2cdev/i2c-error.c
++++ b/libi2cdev/i2c-error.c
+@@ -9,7 +9,6 @@
+
+ #include <stdlib.h>
+ #include <stdio.h>
+-#include <error.h>
+ #include <errno.h>
+ #include <stdbool.h>
+ #include <stdarg.h>
+--- a/libi2cdev/init.c
++++ b/libi2cdev/init.c
+@@ -16,10 +16,8 @@
+ #include <errno.h>
+ #include <dirent.h>
+ #include <unistd.h>
+-#include <error.h>
+ #include <limits.h>
+ #include <ctype.h>
+-#include <error.h>
+ #include <fcntl.h>
+ #include <assert.h>
+
+--- a/libi2cdev/sysfs.c
++++ b/libi2cdev/sysfs.c
+@@ -17,8 +17,8 @@
+ #include <assert.h>
+ #include <string.h>
+ #include <fcntl.h>
+-#include <error.h>
+ #include <errno.h>
++#include <libgen.h>
+
+ #include <sys/types.h>
+ #include <sys/stat.h>
+--- a/lsi2c/lsi2c.c
++++ b/lsi2c/lsi2c.c
+@@ -38,7 +38,6 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <errno.h>
+-#include <error.h>
+ #include <getopt.h>
+ #include <stdbool.h>
+
+@@ -205,7 +204,8 @@ static int read_config_file(const char *
+ if (err < 0) {
+ err = -err;
+ }
+- error(0, err, "Failed to initialize i2cdevices");
++ fflush(stdout);
++ fprintf(stderr, "Failed to initialize i2cdevices: %s", strerror(err));
+ if (config_file) {
+ fclose(config_file);
+ }
diff --git a/meta-oe/recipes-bsp/i2cdev/i2cdev_git.bb b/meta-oe/recipes-bsp/i2cdev/i2cdev_git.bb
new file mode 100644
index 0000000000..57057c9bf5
--- /dev/null
+++ b/meta-oe/recipes-bsp/i2cdev/i2cdev_git.bb
@@ -0,0 +1,26 @@
+SUMMARY = "i2c dev tools for Linux"
+DESCRIPTION = "\
+ This package contains an I2C dev library and the i2c bus scanning \
+ utility lsi2c. \
+"
+HOMEPAGE = "https://github.com/costad2/i2cdev"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "\
+ file://COPYING;md5=768997ba510a952bef1775c50bc22b00 \
+ file://include/libi2cdev.h;beginline=12;endline=25;md5=72486a5e192d6ac5c7e55a4a95e380a6 \
+ file://libi2cdev/smbus.c;beginline=9;endline=22;md5=d9a0de5a611b960fa75912ded6c60096 \
+ file://lsi2c/lsi2c.c;beginline=11;endline=24;md5=72486a5e192d6ac5c7e55a4a95e380a6 \
+"
+
+PV = "0.7.0+git"
+
+SRC_URI = "\
+ git://github.com/costad2/i2cdev.git;protocol=https;branch=master \
+ file://fix-lsi2c-makefile.patch \
+ file://fix-musl.patch \
+"
+SRCREV = "ed9ad777d842880e7ac6ca5e0de4bd2d3b4d02dc"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
diff --git a/meta-oe/recipes-bsp/ledmon/ledmon/0001-Don-t-build-with-Werror-to-fix-compile-error.patch b/meta-oe/recipes-bsp/ledmon/ledmon/0001-Don-t-build-with-Werror-to-fix-compile-error.patch
deleted file mode 100644
index 09f4993a25..0000000000
--- a/meta-oe/recipes-bsp/ledmon/ledmon/0001-Don-t-build-with-Werror-to-fix-compile-error.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Subject: [PATCH] Don't build with -Werror to fix compile error.
-
-| 550 | _dump_sgpio_amd(&amd_reg->amd);
-| | ^~~~~~~~~~~~~
-| amd_sgpio.c: In function '_write_amd_register':
-| amd_sgpio.c:558:18: error: taking address of packed member of 'struct amd_register' may result in an unaligned pointer value [-Werror=address-of-packed-member]
-
-Upstream-Status: Submitted
-https://github.com/intel/ledmon/pull/48/commits
-
-Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
----
- configure.ac | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 7bc20f8..7e01bd5 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -22,7 +22,6 @@ AX_AM_CFLAGS_ADD([-Werror=format-truncation=1])
- AX_AM_CFLAGS_ADD([-Werror=shift-negative-value])
- AX_AM_CFLAGS_ADD([-Werror=alloca])
- AX_AM_CFLAGS_ADD([-Werror=missing-field-initializers])
--AX_AM_CFLAGS_ADD([-Werror])
- AX_AM_CFLAGS_ADD([-Werror=format-signedness])
-
- AC_SUBST([AM_CFLAGS])
---
-2.7.4
-
diff --git a/meta-oe/recipes-bsp/ledmon/ledmon/0001-fix-build-with-clang.patch b/meta-oe/recipes-bsp/ledmon/ledmon/0001-fix-build-with-clang.patch
new file mode 100644
index 0000000000..f1e1d6f780
--- /dev/null
+++ b/meta-oe/recipes-bsp/ledmon/ledmon/0001-fix-build-with-clang.patch
@@ -0,0 +1,90 @@
+From 28fd86fb4e18af181174176530a80672de4449d2 Mon Sep 17 00:00:00 2001
+From: alperak <alperyasinak1@gmail.com>
+Date: Sat, 18 Nov 2023 12:27:17 +0300
+Subject: [PATCH] fix build with clang
+
+struct ibpi2value is a structure which contains 2 unsigned integers. In
+a number of cases the code was not initializing a value for the last value
+in the pair in struct ibpi2value ibpi_to_attention. This was raised when
+using clang compiler.
+
+vmdssd.c:49:27: error: missing field 'value' initializer
+[-Werror,-Wmissing-field-initializers]
+ {LED_IBPI_PATTERN_UNKNOWN}
+
+dellssd.c:74:27: error: missing field 'value' initializer
+[-Werror,-Wmissing-field-initializers]
+ {LED_IBPI_PATTERN_UNKNOWN}
+
+amd_ipmi.c:57:27: error: missing field 'value'
+initializer [-Werror,-Wmissing-field-initializers]
+ {LED_IBPI_PATTERN_UNKNOWN}
+
+npem.c:76:27: error: missing field 'value'
+initializer [-Werror,-Wmissing-field-initializers]
+ {LED_IBPI_PATTERN_UNKNOWN}
+
+Upstream-Status: Submitted [https://github.com/intel/ledmon/pull/179]
+Signed-off-by: alperak <alperyasinak1@gmail.com>
+---
+ src/amd_ipmi.c | 2 +-
+ src/dellssd.c | 2 +-
+ src/npem.c | 2 +-
+ src/vmdssd.c | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/amd_ipmi.c b/src/amd_ipmi.c
+index 726f77d..ad36e9e 100644
+--- a/src/amd_ipmi.c
++++ b/src/amd_ipmi.c
+@@ -53,7 +53,7 @@ const struct ibpi2value ibpi2amd_ipmi[] = {
+ {IBPI_PATTERN_FAILED_ARRAY, 0x45},
+ {IBPI_PATTERN_REBUILD, 0x46},
+ {IBPI_PATTERN_HOTSPARE, 0x47},
+- {IBPI_PATTERN_UNKNOWN}
++ {IBPI_PATTERN_UNKNOWN, 0}
+ };
+
+ #define MG9098_CHIP_ID_REG 0x63
+diff --git a/src/dellssd.c b/src/dellssd.c
+index 3c10ec7..7f02ea1 100644
+--- a/src/dellssd.c
++++ b/src/dellssd.c
+@@ -71,7 +71,7 @@ static const struct ibpi2value ibpi2ssd[] = {
+ {IBPI_PATTERN_FAILED_DRIVE, BP_FAULT | BP_ONLINE},
+ {IBPI_PATTERN_LOCATE, BP_IDENTIFY | BP_ONLINE},
+ {IBPI_PATTERN_LOCATE_OFF, BP_ONLINE},
+- {IBPI_PATTERN_UNKNOWN}
++ {IBPI_PATTERN_UNKNOWN, 0}
+ };
+
+ #define DELL_OEM_NETFN 0x30
+diff --git a/src/npem.c b/src/npem.c
+index c21276d..3499169 100644
+--- a/src/npem.c
++++ b/src/npem.c
+@@ -72,7 +72,7 @@ const struct ibpi2value ibpi_to_npem_capability[] = {
+ {IBPI_PATTERN_FAILED_DRIVE, PCI_NPEM_FAIL_CAP},
+ {IBPI_PATTERN_LOCATE, PCI_NPEM_LOCATE_CAP},
+ {IBPI_PATTERN_LOCATE_OFF, PCI_NPEM_OK_CAP},
+- {IBPI_PATTERN_UNKNOWN}
++ {IBPI_PATTERN_UNKNOWN, 0}
+ };
+
+ static struct pci_access *get_pci_access()
+diff --git a/src/vmdssd.c b/src/vmdssd.c
+index 51af591..9c63d90 100644
+--- a/src/vmdssd.c
++++ b/src/vmdssd.c
+@@ -45,7 +45,7 @@ struct ibpi2value ibpi_to_attention[] = {
+ {IBPI_PATTERN_REBUILD, ATTENTION_REBUILD},
+ {IBPI_PATTERN_LOCATE_OFF, ATTENTION_OFF},
+ {IBPI_PATTERN_ONESHOT_NORMAL, ATTENTION_OFF},
+- {IBPI_PATTERN_UNKNOWN}
++ {IBPI_PATTERN_UNKNOWN, 0}
+ };
+
+ #define SYSFS_PCIEHP "/sys/module/pciehp"
+--
+2.25.1
+
diff --git a/meta-oe/recipes-bsp/ledmon/ledmon_0.97.bb b/meta-oe/recipes-bsp/ledmon/ledmon_0.97.bb
new file mode 100644
index 0000000000..88a6e5bb30
--- /dev/null
+++ b/meta-oe/recipes-bsp/ledmon/ledmon_0.97.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Intel(R) Enclosure LED Utilities"
+
+DESCRIPTION = "The utilities are designed primarily to be used on storage servers \
+ utilizing MD devices (aka Linux Software RAID) for RAID arrays.\
+"
+HOMEPAGE = "https://github.com/intel/ledmon"
+
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "sg3-utils udev pciutils"
+
+inherit autotools systemd pkgconfig
+
+SYSTEMD_SERVICE:${PN} = "ledmon.service"
+
+SRC_URI = "git://github.com/intel/ledmon;branch=master;protocol=https \
+ file://0002-include-sys-select.h-and-sys-types.h.patch \
+ file://0001-fix-build-with-clang.patch"
+
+SRCREV = "b0edae14e8660b80ffe0384354038a9f62e2978d"
+
+COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
+COMPATIBLE_HOST:libc-musl = "null"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-systemd', '', d)}"
+
+EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}' CFLAGS='${CFLAGS}'"
+
+# The ledmon sources include headers in ${S}/config to build but not in CFLAGS.
+# We need to add this include path in CFLAGS.
+CFLAGS += "-I${S}/config"
diff --git a/meta-oe/recipes-bsp/ledmon/ledmon_git.bb b/meta-oe/recipes-bsp/ledmon/ledmon_git.bb
deleted file mode 100644
index dbfd1e7bc0..0000000000
--- a/meta-oe/recipes-bsp/ledmon/ledmon_git.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Intel(R) Enclosure LED Utilities"
-
-DESCRIPTION = "The utilities are designed primarily to be used on storage servers \
- utilizing MD devices (aka Linux Software RAID) for RAID arrays.\
-"
-HOMEPAGE = "https://github.com/intel/ledmon"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
-"
-
-DEPENDS = "sg3-utils udev"
-
-inherit autotools systemd
-
-SYSTEMD_SERVICE:${PN} = "ledmon.service"
-
-# 0.93
-SRC_URI = "git://github.com/intel/ledmon;branch=master;protocol=https \
- file://0002-include-sys-select.h-and-sys-types.h.patch \
- file://0001-Don-t-build-with-Werror-to-fix-compile-error.patch \
- "
-
-SRCREV = "1d72f9cb5c9163b2ecdf19709935720e65f5b90e"
-
-COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
-COMPATIBLE_HOST:libc-musl = "null"
-
-S = "${WORKDIR}/git"
-EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}' CFLAGS='${CFLAGS}'"
-
-# The ledmon sources include headers in ${S}/config to build but not in CFLAGS.
-# We need to add this include path in CFLAGS.
-CFLAGS += "-I${S}/config"
-
-do_install:append() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0755 ${S}/systemd/ledmon.service ${D}${systemd_unitdir}/system
- fi
-}
diff --git a/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb b/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb
index f821cdaf4a..aba5ab5878 100644
--- a/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb
+++ b/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb
@@ -151,12 +151,13 @@ RRECOMMENDS:${PN}-fancontrol = "lmsensors-config-fancontrol"
# sensors-detect script files
FILES:${PN}-sensorsdetect = "${sbindir}/sensors-detect"
FILES:${PN}-sensorsdetect-doc = "${mandir}/man8/sensors-detect.8"
-RDEPENDS:${PN}-sensorsdetect = "${PN}-sensors perl perl-modules"
+RDEPENDS:${PN}-sensorsdetect = "${PN}-sensors perl perl-module-fcntl perl-module-file-basename \
+ perl-module-strict perl-module-constant"
# sensors-conf-convert script files
FILES:${PN}-sensorsconfconvert = "${bindir}/sensors-conf-convert"
FILES:${PN}-sensorsconfconvert-doc = "${mandir}/man8/sensors-conf-convert.8"
-RDEPENDS:${PN}-sensorsconfconvert = "${PN}-sensors perl perl-modules"
+RDEPENDS:${PN}-sensorsconfconvert = "${PN}-sensors perl perl-module-strict perl-module-vars"
# pwmconfig script files
FILES:${PN}-pwmconfig = "${sbindir}/pwmconfig"
diff --git a/meta-oe/recipes-bsp/lsscsi/lsscsi_0.32.bb b/meta-oe/recipes-bsp/lsscsi/lsscsi_0.32.bb
deleted file mode 100644
index 9e6eb7b724..0000000000
--- a/meta-oe/recipes-bsp/lsscsi/lsscsi_0.32.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "The lsscsi command lists information about SCSI devices in Linux"
-HOMEPAGE = "http://sg.danny.cz/scsi/lsscsi.html"
-LICENSE = "GPL-2.0-only"
-SECTION = "base"
-LIC_FILES_CHKSUM="file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-SRC_URI = "http://sg.danny.cz/scsi/${BP}.tgz"
-
-SRC_URI[sha256sum] = "0a800e9e94dca2ab702d65d72777ae8cae078e3d74d0bcbed64ba0849e8029a1"
-
-inherit autotools
-
-S = "${WORKDIR}/lsscsi-${PV}"
diff --git a/meta-oe/recipes-bsp/lsscsi/lsscsi_030.bb b/meta-oe/recipes-bsp/lsscsi/lsscsi_030.bb
new file mode 100644
index 0000000000..9d3d7d8060
--- /dev/null
+++ b/meta-oe/recipes-bsp/lsscsi/lsscsi_030.bb
@@ -0,0 +1,13 @@
+SUMMARY = "The lsscsi command lists information about SCSI devices in Linux"
+HOMEPAGE = "http://sg.danny.cz/scsi/lsscsi.html"
+LICENSE = "GPL-2.0-only"
+SECTION = "base"
+LIC_FILES_CHKSUM="file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "http://sg.danny.cz/scsi/${BP}.tgz"
+
+SRC_URI[sha256sum] = "619a2187405f02c5f57682f3478bffc75326803cd08839e39d434250c5518b15"
+
+inherit autotools
+
+S = "${WORKDIR}/lsscsi-${PV}r154"
diff --git a/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.13.bb b/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.13.bb
deleted file mode 100644
index 1055fa42a9..0000000000
--- a/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.13.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "NVMe management command line interface"
-AUTHOR = "Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>"
-HOMEPAGE = "https://github.com/linux-nvme/nvme-cli"
-SECTION = "console/utils"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8264535c0c4e9c6c335635c4026a8022"
-DEPENDS = "util-linux"
-PV .= "+git${SRCPV}"
-
-SRC_URI = "git://github.com/linux-nvme/nvme-cli.git;branch=master;protocol=https"
-SRCREV = "f0e9569df9289d6ee55ba2c23615cc7c73a9b088"
-
-S = "${WORKDIR}/git"
-
-inherit bash-completion systemd
-
-do_install() {
- oe_runmake install-spec DESTDIR=${D} PREFIX=${prefix} \
- UDEVDIR=${nonarch_base_libdir}/udev SYSTEMDDIR=${systemd_unitdir}
-}
-
-pkg_postinst_ontarget:${PN}() {
- ${sbindir}/nvme gen-hostnqn > ${sysconfdir}/nvme/hostnqn
- ${bindir}/uuidgen > ${sysconfdir}/nvme/hostid
-}
-
-PACKAGES =+ "${PN}-dracut ${PN}-zsh-completion"
-
-FILES:${PN} += "${systemd_system_unitdir}"
-FILES:${PN}-dracut = "${nonarch_libdir}/dracut/dracut.conf.d"
-FILES:${PN}-zsh-completion = "${datadir}/zsh/site-functions"
-
-RDEPENDS:${PN} = "util-linux-uuidgen"
diff --git a/meta-oe/recipes-bsp/nvme-cli/nvme-cli_2.8.bb b/meta-oe/recipes-bsp/nvme-cli/nvme-cli_2.8.bb
new file mode 100644
index 0000000000..81b30c283d
--- /dev/null
+++ b/meta-oe/recipes-bsp/nvme-cli/nvme-cli_2.8.bb
@@ -0,0 +1,30 @@
+SUMMARY = "NVMe management command line interface"
+HOMEPAGE = "https://github.com/linux-nvme/nvme-cli"
+SECTION = "console/utils"
+LICENSE = "GPL-2.0-only & CC0-1.0 & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8264535c0c4e9c6c335635c4026a8022 \
+ file://ccan/licenses/CC0;md5=c17af43b05840255a6fedc5eda9d56cc \
+ file://ccan/licenses/BSD-MIT;md5=838c366f69b72c5df05c96dff79b35f2"
+DEPENDS = "json-c libnvme"
+SRCREV = "43b716b982da3df1cf8c4658f7c31b0fe28d377b"
+
+SRC_URI = "git://github.com/linux-nvme/nvme-cli.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit bash-completion meson pkgconfig systemd
+
+EXTRA_OEMESON += "-Dsystemddir=${systemd_unitdir}/system"
+
+pkg_postinst_ontarget:${PN}() {
+ ${sbindir}/nvme gen-hostnqn > ${sysconfdir}/nvme/hostnqn
+ ${bindir}/uuidgen > ${sysconfdir}/nvme/hostid
+}
+
+PACKAGES =+ "${PN}-dracut ${PN}-zsh-completion"
+
+FILES:${PN} += "${systemd_system_unitdir}"
+FILES:${PN}-dracut = "${nonarch_libdir}/dracut/dracut.conf.d"
+FILES:${PN}-zsh-completion = "${datadir}/zsh/site-functions"
+
+RDEPENDS:${PN} = "util-linux-uuidgen"
diff --git a/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb b/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb
index 42dfcd1e5b..2a736716db 100644
--- a/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb
+++ b/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb
@@ -8,7 +8,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "udev sysfsutils flex-native bison-native"
RDEPENDS:${PN} = "udev module-init-tools"
-PR = "r1"
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/pcmcia/${BP}.tar.xz \
file://makefile_fix.patch \
@@ -28,11 +27,10 @@ export pcmciaconfdir = "${sysconfdir}/pcmcia"
export udevdir = "`pkg-config --variable=udevdir udev`"
export udevrulesdir = "`pkg-config --variable=udevdir udev`/rules.d"
export UDEV = "1"
-LD = "${CC}"
CFLAGS =+ "-I${S}/src"
CFLAGS =+ "-DPCMCIAUTILS_VERSION=\\"${PV}\\""
-EXTRA_OEMAKE = "-e 'STRIP=echo' 'LIB_OBJS=-lc -lsysfs' 'LEX=flex'"
+EXTRA_OEMAKE = "-e 'STRIP=echo' 'LIB_OBJS=-lc -lsysfs' 'LEX=flex' 'LD=${CC}'"
do_install () {
oe_runmake 'DESTDIR=${D}' install
diff --git a/meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb b/meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb
index d3e7973329..61be5b2dcc 100644
--- a/meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb
+++ b/meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb
@@ -1,6 +1,5 @@
SUMMARY = "Touchscreen calibration data"
SECTION = "base"
-PR = "r11"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=4b5fcfc87fb615860d398b5e38685edf"
@@ -20,3 +19,5 @@ do_install() {
ALLOW_EMPTY:${PN} = "1"
PACKAGE_ARCH = "${MACHINE_ARCH}"
INHIBIT_DEFAULT_DEPS = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-connectivity/ace/ace_6.5.12.bb b/meta-oe/recipes-connectivity/ace/ace_6.5.12.bb
deleted file mode 100644
index 6c68aede03..0000000000
--- a/meta-oe/recipes-connectivity/ace/ace_6.5.12.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "C++ framework for implementing distributed and networked applications"
-DESCRIPTION = "C++ network programming framework that implements many core \
-patterns for concurrent communication software"
-LICENSE = "ACE-TAO-CIAO"
-HOMEPAGE = "http://www.dre.vanderbilt.edu/~schmidt/ACE.html"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d2c090e9c730fd91677782d8e2091d77"
-
-DEPENDS += "openssl gperf-native"
-
-SRC_URI = "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_12/ACE-${PV}.tar.bz2 \
- file://ace_config.patch \
- file://no_sysctl.patch \
- "
-
-SRC_URI[sha256sum] = "ccd94fa45df1e8bb1c901d02c0a64c1626497e5eeda2f057fcf0a1578dae2148"
-
-COMPATIBLE_HOST:libc-musl = "null"
-
-S = "${WORKDIR}/ACE_wrappers"
-B = "${WORKDIR}/ACE_wrappers/ace"
-export ACE_ROOT="${WORKDIR}/ACE_wrappers"
-
-inherit pkgconfig
-
-CXXFLAGS:append = " -fpermissive -Wnodeprecated-declarations"
-CXX:append = " -ffile-prefix-map=${WORKDIR}= -fdebug-prefix-map=${WORKDIR}= "
-EXTRA_OEMAKE += "INSTALL_LIB=${baselib}"
-
-do_install() {
- export D="${D}"
- oe_runmake install
-
- for i in $(find ${D} -name "*.pc") ; do
- sed -i -e s:${D}::g \
- -e s:/${TARGET_SYS}::g \
- $i
- done
-
- rm -r ${D}/usr/share
-}
-
-UPSTREAM_CHECK_URI = "https://github.com/DOCGroup/ACE_TAO/releases"
diff --git a/meta-oe/recipes-connectivity/ace/ace_6.5.19.bb b/meta-oe/recipes-connectivity/ace/ace_6.5.19.bb
new file mode 100644
index 0000000000..af4f2c54bb
--- /dev/null
+++ b/meta-oe/recipes-connectivity/ace/ace_6.5.19.bb
@@ -0,0 +1,41 @@
+SUMMARY = "C++ framework for implementing distributed and networked applications"
+DESCRIPTION = "C++ network programming framework that implements many core \
+patterns for concurrent communication software"
+LICENSE = "ACE-TAO-CIAO"
+HOMEPAGE = "http://www.dre.vanderbilt.edu/~schmidt/ACE.html"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d2c090e9c730fd91677782d8e2091d77"
+
+DEPENDS += "openssl gperf-native"
+
+SRC_URI = "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-6_5_19/ACE-${PV}.tar.bz2 \
+ file://ace_config.patch \
+ file://no_sysctl.patch \
+ "
+SRC_URI[sha256sum] = "739be290a38229aaa5b5150e6ea55ce427e80970f0ace4c5040ac46644526f41"
+
+COMPATIBLE_HOST:libc-musl = "null"
+
+S = "${WORKDIR}/ACE_wrappers"
+B = "${WORKDIR}/ACE_wrappers/ace"
+export ACE_ROOT="${WORKDIR}/ACE_wrappers"
+
+inherit pkgconfig
+
+CXXFLAGS:append = " -fpermissive -Wnodeprecated-declarations"
+CXX:append = " -std=gnu++14 -ffile-prefix-map=${WORKDIR}= -fdebug-prefix-map=${WORKDIR}= "
+EXTRA_OEMAKE += "INSTALL_LIB=${baselib}"
+
+do_install() {
+ export D="${D}"
+ oe_runmake install
+
+ for i in $(find ${D} -name "*.pc") ; do
+ sed -i -e s:${D}::g \
+ -e s:/${TARGET_SYS}::g \
+ $i
+ done
+
+ rm -r ${D}/usr/share
+}
+
+UPSTREAM_CHECK_URI = "https://github.com/DOCGroup/ACE_TAO/releases"
diff --git a/meta-oe/recipes-connectivity/ace/files/ace_config.patch b/meta-oe/recipes-connectivity/ace/files/ace_config.patch
index 1b8e218658..c820e46522 100644
--- a/meta-oe/recipes-connectivity/ace/files/ace_config.patch
+++ b/meta-oe/recipes-connectivity/ace/files/ace_config.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -ruN ACE_wrappers1/ace/config.h ACE_wrappers/ace/config.h
--- ACE_wrappers1/ace/config.h 1970-01-01 02:00:00.000000000 +0200
+++ ACE_wrappers/ace/config.h 2019-01-10 13:36:52.698012477 +0200
diff --git a/meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch b/meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch
index 96e4f8d6fa..7319280ca4 100644
--- a/meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch
+++ b/meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch
@@ -14,6 +14,8 @@ the normal include guards and request "#pragma once" instead.
Signed-off-by: Peter Rosin <peda@axentia.se>
---
+Upstream-Status: Pending
+
dbus/CMakeLists.txt | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb b/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
index 1ba7dd4afc..7ad28d594d 100644
--- a/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
+++ b/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
@@ -2,19 +2,18 @@ DESCRIPTION = "Bluetooth library with attribute support"
SECTION = "libs/network"
LICENSE = "GPL-2.0-or-later | BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://CMakeLists.txt;beginline=1;endline=6;md5=71fdd2be76b4e95fe28324a70d4981c5"
+LIC_FILES_CHKSUM = "file://CMakeLists.txt;beginline=1;endline=6;md5=a87ee154f005a6f035b8b34ac2191f3b"
-DEPENDS = "bluez5 glib-2.0"
-DEPENDS += "glib-2.0-native"
+DEPENDS = "bluez5 glib-2.0 glib-2.0-native python3-packaging-native"
-PV = "0.2+git${SRCPV}"
+PV = "0.2+git"
SRC_URI = "git://github.com/labapart/gattlib.git;branch=master;protocol=https \
file://dbus-avoid-strange-chars-from-the-build-dir.patch \
"
SRCBRANCH = "master"
-SRCREV = "fa54ae42ccb3d8f911e00b02ed1e581537e47f79"
+SRCREV = "33a8a275928b186381bb0aea0f9778e330e57ec3"
S = "${WORKDIR}/git"
@@ -26,7 +25,14 @@ PACKAGECONFIG[force-dbus] = "-DGATTLIB_FORCE_DBUS=TRUE,-DGATTLIB_FORCE_DBUS=FALS
EXTRA_OECMAKE += "-DGATTLIB_PYTHON_INTERFACE=OFF"
EXTRA_OECMAKE += "-DGATTLIB_BUILD_DOCS=OFF"
-inherit pkgconfig cmake
+inherit pkgconfig cmake python3native
+
+do_compile:append() {
+ for f in org-bluez-gattdescriptor1.c org-bluez-battery1.c org-bluez-adaptater1.c \
+ org-bluez-device1.c org-bluez-gattservice1.c org-bluez-gattcharacteristic1.c; do
+ sed -i -e 's|${B}/dbus/||g' ${B}/dbus/$f
+ done
+}
FILES:${PN} = "${libdir}/*"
FILES:${PN}-dev = "${includedir}/* ${libdir}/pkgconfig"
diff --git a/meta-oe/recipes-connectivity/gensio/files/0001-configure-Check-for-request_init-API-when-probing-fo.patch b/meta-oe/recipes-connectivity/gensio/files/0001-configure-Check-for-request_init-API-when-probing-fo.patch
deleted file mode 100644
index 3b4caa2215..0000000000
--- a/meta-oe/recipes-connectivity/gensio/files/0001-configure-Check-for-request_init-API-when-probing-fo.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From f56e59712d8708c74a4cf66d24b5703fc16b22ae Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 1 Sep 2022 11:31:48 -0700
-Subject: [PATCH] configure: Check for request_init API when probing for
- libwrap
-
-checking for main() is not right check, since this function is not part
-of libwrap but the app. Newer autocof and toolchain may fail
-
-Upstream-Status: Submitted [https://github.com/cminyard/gensio/pull/48]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 90cfcb6b..1c06d918 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -109,7 +109,7 @@ AC_ARG_WITH(tcp-wrappers,
- if test "$tcp_wrappers" != "no"
- then
- AC_CHECK_HEADERS([tcpd.h])
-- AC_CHECK_LIB(wrap,main)
-+ AC_CHECK_LIB(wrap,request_init)
- fi
-
- AC_ARG_ENABLE([doc],
---
-2.37.3
-
diff --git a/meta-oe/recipes-connectivity/gensio/files/0001-tools-gensiot-Fix-build-with-musl.patch b/meta-oe/recipes-connectivity/gensio/files/0001-tools-gensiot-Fix-build-with-musl.patch
deleted file mode 100644
index 93831c380f..0000000000
--- a/meta-oe/recipes-connectivity/gensio/files/0001-tools-gensiot-Fix-build-with-musl.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 823b6754a4d7655480b6e8576a9d0037f842d653 Mon Sep 17 00:00:00 2001
-From: Jan Luebbe <jlu@pengutronix.de>
-Date: Thu, 25 Aug 2022 12:19:16 +0200
-Subject: [PATCH] tools:gensiot: Fix build with musl
-
-According to POSIX getpid() is available in unistd.h, not sys/unistd.h.
-
-Upstream-Status: Submitted [https://github.com/cminyard/gensio/pull/47]
-Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
----
- tools/gensiotool.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/gensiotool.c b/tools/gensiotool.c
-index cac531bb4b74..ab0bb9583f9f 100644
---- a/tools/gensiotool.c
-+++ b/tools/gensiotool.c
-@@ -44,7 +44,7 @@
- #include <signal.h>
- #include <errno.h>
- #include <sys/types.h>
--#include <sys/unistd.h>
-+#include <unistd.h>
- #include <syslog.h>
- #endif
-
---
-2.30.2
-
diff --git a/meta-oe/recipes-connectivity/gensio/gensio_2.5.2.bb b/meta-oe/recipes-connectivity/gensio/gensio_2.5.2.bb
deleted file mode 100644
index d6b5f1987e..0000000000
--- a/meta-oe/recipes-connectivity/gensio/gensio_2.5.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "A library to abstract stream I/O like serial port, TCP, telnet, etc"
-HOMEPAGE = "https://github.com/cminyard/gensio"
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a0fd36908af843bcee10cb6dfc47fa67 \
- file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f \
- "
-
-SRCREV = "b6cd354afe6d5f63bc859c94fd3a455a3cdf0449"
-
-SRC_URI = "git://github.com/cminyard/gensio;protocol=https;branch=master \
- file://0001-tools-gensiot-Fix-build-with-musl.patch \
- file://0001-configure-Check-for-request_init-API-when-probing-fo.patch \
-"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-PACKAGECONFIG ??= "openssl tcp-wrappers"
-
-PACKAGECONFIG[openssl] = "--with-openssl=${STAGING_DIR_HOST}${prefix},--without-openssl, openssl"
-PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers, tcp-wrappers"
-PACKAGECONFIG[swig] = "--with-swig,--without-swig, swig"
-
-EXTRA_OECONF = "--without-python"
-
-RDEPENDS:${PN} += "bash"
diff --git a/meta-oe/recipes-connectivity/gensio/gensio_2.8.3.bb b/meta-oe/recipes-connectivity/gensio/gensio_2.8.3.bb
new file mode 100644
index 0000000000..533b79f477
--- /dev/null
+++ b/meta-oe/recipes-connectivity/gensio/gensio_2.8.3.bb
@@ -0,0 +1,26 @@
+SUMMARY = "A library to abstract stream I/O like serial port, TCP, telnet, etc"
+HOMEPAGE = "https://github.com/cminyard/gensio"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ "
+
+SRCREV = "c8e0d722794e35c71bc9bb1d79e98f926aad19e0"
+
+SRC_URI = "git://github.com/cminyard/gensio;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PACKAGECONFIG ??= "openssl tcp-wrappers"
+
+PACKAGECONFIG[openssl] = "--with-openssl=${STAGING_DIR_HOST}${prefix},--without-openssl, openssl"
+PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers, tcp-wrappers"
+PACKAGECONFIG[swig] = "--with-swig,--without-swig, swig"
+
+EXTRA_OECONF = "--without-python"
+
+RDEPENDS:${PN} += "bash"
+
+FILES:${PN}-staticdev += "${libexecdir}/gensio/${PV}/libgensio_*.a"
diff --git a/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch b/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch
index 35665bd3f2..7dc0067304 100644
--- a/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch
+++ b/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch
@@ -6,6 +6,8 @@ Organization: O.S. Systems Software LTDA.
Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
---
+Upstream-Status: Pending
+
src/ethtool-local.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb b/meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb
deleted file mode 100644
index 455561f613..0000000000
--- a/meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "ncurses IRC client"
-DESCRIPTION = "Irssi is an ncurses IRC client"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=55fdc1113306167d6ea2561404ce02f8"
-
-DEPENDS = "glib-2.0 ncurses openssl"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "79a4765d2dfe153c440a1775b074d5d0682b96814c7cf92325b5e15ce50e26a8"
-
-UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "--with-textui \
- --with-proxy \
- --with-bot \
- --with-perl=no \
- --enable-true-color"
-
-FILES:${PN}-staticdev += "${libdir}/${BPN}/modules/*.a"
diff --git a/meta-oe/recipes-connectivity/irssi/irssi_1.4.5.bb b/meta-oe/recipes-connectivity/irssi/irssi_1.4.5.bb
new file mode 100644
index 0000000000..5b5af30607
--- /dev/null
+++ b/meta-oe/recipes-connectivity/irssi/irssi_1.4.5.bb
@@ -0,0 +1,21 @@
+SUMMARY = "ncurses IRC client"
+DESCRIPTION = "Irssi is an ncurses IRC client"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=55fdc1113306167d6ea2561404ce02f8"
+
+DEPENDS = "glib-2.0 ncurses openssl"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz"
+SRC_URI[sha256sum] = "72a951cb0ad622785a8962801f005a3a412736c7e7e3ce152f176287c52fe062"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "--with-textui \
+ --with-proxy \
+ --with-bot \
+ --with-perl=no \
+ --enable-true-color"
+
+FILES:${PN}-staticdev += "${libdir}/${BPN}/modules/*.a"
diff --git a/meta-oe/recipes-connectivity/iwd/iwd_1.30.bb b/meta-oe/recipes-connectivity/iwd/iwd_1.30.bb
deleted file mode 100644
index 1f0bcd4f8e..0000000000
--- a/meta-oe/recipes-connectivity/iwd/iwd_1.30.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "Wireless daemon for Linux"
-HOMEPAGE = "https://iwd.wiki.kernel.org/"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
-
-DEPENDS = "ell"
-
-SRC_URI = "https://www.kernel.org/pub/linux/network/wireless/${BP}.tar.xz \
- file://0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch \
- "
-SRC_URI[sha256sum] = "9fd13512dc27d83efb8d341f7df98f5488f70131686021fcd0d93fc97af013b8"
-
-inherit autotools manpages pkgconfig python3native systemd
-
-PACKAGECONFIG ??= " \
- client \
- monitor \
- ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
-"
-PACKAGECONFIG[client] = "--enable-client,--disable-client,readline"
-PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor"
-PACKAGECONFIG[manpages] = "--enable-manual-pages,--disable-manual-pages,python3-docutils-native"
-PACKAGECONFIG[wired] = "--enable-wired,--disable-wired"
-PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono"
-PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd-service,systemd"
-
-EXTRA_OECONF = "--enable-external-ell"
-
-SYSTEMD_SERVICE:${PN} = " \
- iwd.service \
- ${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)} \
-"
-
-do_configure:prepend() {
- install -d ${S}/build-aux
-}
-
-do_install:append() {
- # If client and monitor are disabled, bindir is empty, causing a QA error
- rmdir --ignore-fail-on-non-empty ${D}/${bindir}
-}
-
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${nonarch_libdir}/modules-load.d \
- ${systemd_unitdir}/network \
-"
-
-RDEPENDS:${PN} = "dbus"
-
-RRECOMMENDS:${PN} = "\
- kernel-module-pkcs7-message \
- kernel-module-pkcs8-key-parser \
- kernel-module-x509-key-parser \
-"
diff --git a/meta-oe/recipes-connectivity/iwd/iwd_2.16.bb b/meta-oe/recipes-connectivity/iwd/iwd_2.16.bb
new file mode 100644
index 0000000000..a6bb7085ea
--- /dev/null
+++ b/meta-oe/recipes-connectivity/iwd/iwd_2.16.bb
@@ -0,0 +1,55 @@
+SUMMARY = "Wireless daemon for Linux"
+HOMEPAGE = "https://iwd.wiki.kernel.org/"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
+
+DEPENDS = "ell"
+
+SRC_URI = "https://www.kernel.org/pub/linux/network/wireless/${BP}.tar.xz \
+ file://0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch \
+ "
+SRC_URI[sha256sum] = "c1a82032e994861e794cf3b5a16d07ae1aa03a6674f716c73408ffeae2a233ba"
+
+inherit autotools manpages pkgconfig python3native systemd
+
+PACKAGECONFIG ??= " \
+ client \
+ monitor \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+"
+PACKAGECONFIG[client] = "--enable-client,--disable-client,readline"
+PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor"
+PACKAGECONFIG[manpages] = "--enable-manual-pages,--disable-manual-pages,python3-docutils-native"
+PACKAGECONFIG[wired] = "--enable-wired,--disable-wired"
+PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono"
+PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd-service,systemd"
+
+EXTRA_OECONF = "--enable-external-ell"
+
+SYSTEMD_SERVICE:${PN} = " \
+ iwd.service \
+ ${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)} \
+"
+
+do_configure:prepend() {
+ install -d ${S}/build-aux
+}
+
+do_install:append() {
+ # If client and monitor are disabled, bindir is empty, causing a QA error
+ rmdir --ignore-fail-on-non-empty ${D}/${bindir}
+}
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${nonarch_libdir}/modules-load.d \
+ ${systemd_unitdir}/network \
+"
+
+RDEPENDS:${PN} = "dbus"
+
+RRECOMMENDS:${PN} = "\
+ kernel-module-pkcs7-message \
+ kernel-module-pkcs8-key-parser \
+ kernel-module-x509-key-parser \
+"
diff --git a/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch b/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
deleted file mode 100644
index cbd5d71fdf..0000000000
--- a/meta-oe/recipes-connectivity/krb5/krb5/0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From a9e4057bfda190ad365b503af058b460ab8c7616 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 1 Oct 2013 22:22:57 +0200
-Subject: [PATCH] aclocal: Add parameter to disable keyutils detection
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
----
- aclocal.m4 | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index d6d1279..80ce604 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -1679,12 +1679,16 @@ fi
- dnl
- dnl If libkeyutils exists (on Linux) include it and use keyring ccache
- AC_DEFUN(KRB5_AC_KEYRING_CCACHE,[
-+AC_ARG_ENABLE([keyutils],
-+AC_HELP_STRING([--disable-keyutils],don't enable using keyutils for keyring ccache @<:@enabled@:>@), , enable_keyutils=yes)
-+if test "$enable_keyutils" = yes; then
- AC_CHECK_HEADERS([keyutils.h],
- AC_CHECK_LIB(keyutils, add_key,
- [dnl Pre-reqs were found
- AC_DEFINE(USE_KEYRING_CCACHE, 1, [Define if the keyring ccache should be enabled])
- LIBS="-lkeyutils $LIBS"
- ]))
-+fi
- ])dnl
- dnl
- dnl If libkeyutils supports persistent keyrings, use them
diff --git a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch b/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch
deleted file mode 100644
index fee6e64c15..0000000000
--- a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-36222.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From fc98f520caefff2e5ee9a0026fdf5109944b3562 Mon Sep 17 00:00:00 2001
-From: Joseph Sutton <josephsutton@catalyst.net.nz>
-Date: Wed, 7 Jul 2021 11:47:44 +1200
-Subject: [PATCH] Fix KDC null deref on bad encrypted challenge
-
-The function ec_verify() in src/kdc/kdc_preauth_ec.c contains a check
-to avoid further processing if the armor key is NULL. However, this
-check is bypassed by a call to k5memdup0() which overwrites retval
-with 0 if the allocation succeeds. If the armor key is NULL, a call
-to krb5_c_fx_cf2_simple() will then dereference it, resulting in a
-crash. Add a check before the k5memdup0() call to avoid overwriting
-retval.
-
-CVE-2021-36222:
-
-In MIT krb5 releases 1.16 and later, an unauthenticated attacker can
-cause a null dereference in the KDC by sending a request containing a
-PA-ENCRYPTED-CHALLENGE padata element without using FAST.
-
-[ghudson@mit.edu: trimmed patch; added test case; edited commit
-message]
-
-ticket: 9007 (new)
-tags: pullup
-target_version: 1.19-next
-target_version: 1.18-next
-
-CVE: CVE-2021-36222
-
-Upstream-Status: Backport
-[https://github.com/krb5/krb5/commit/fc98f520caefff2e5ee9a0026fdf5109944b3562]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- src/kdc/kdc_preauth_ec.c | 3 ++-
- src/tests/Makefile.in | 1 +
- src/tests/t_cve-2021-36222.py | 46 +++++++++++++++++++++++++++++++++++
- 3 files changed, 49 insertions(+), 1 deletion(-)
- create mode 100644 src/tests/t_cve-2021-36222.py
-
-diff --git a/src/kdc/kdc_preauth_ec.c b/src/kdc/kdc_preauth_ec.c
-index 7e636b3f9..43a9902cc 100644
---- a/src/kdc/kdc_preauth_ec.c
-+++ b/src/kdc/kdc_preauth_ec.c
-@@ -87,7 +87,8 @@ ec_verify(krb5_context context, krb5_data *req_pkt, krb5_kdc_req *request,
- }
-
- /* Check for a configured FAST ec auth indicator. */
-- realmstr = k5memdup0(realm.data, realm.length, &retval);
-+ if (retval == 0)
-+ realmstr = k5memdup0(realm.data, realm.length, &retval);
- if (realmstr != NULL)
- retval = profile_get_string(context->profile, KRB5_CONF_REALMS,
- realmstr,
-diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in
-index fc6fcc0c3..1a1938306 100644
---- a/src/tests/Makefile.in
-+++ b/src/tests/Makefile.in
-@@ -166,6 +166,7 @@ check-pytests: unlockiter s4u2self
- $(RUNPYTEST) $(srcdir)/t_cve-2012-1015.py $(PYTESTFLAGS)
- $(RUNPYTEST) $(srcdir)/t_cve-2013-1416.py $(PYTESTFLAGS)
- $(RUNPYTEST) $(srcdir)/t_cve-2013-1417.py $(PYTESTFLAGS)
-+ $(RUNPYTEST) $(srcdir)/t_cve-2021-36222.py $(PYTESTFLAGS)
- $(RM) au.log
- $(RUNPYTEST) $(srcdir)/t_audit.py $(PYTESTFLAGS)
- $(RUNPYTEST) $(srcdir)/jsonwalker.py -d $(srcdir)/au_dict.json \
-diff --git a/src/tests/t_cve-2021-36222.py b/src/tests/t_cve-2021-36222.py
-new file mode 100644
-index 000000000..57e04993b
---- /dev/null
-+++ b/src/tests/t_cve-2021-36222.py
-@@ -0,0 +1,46 @@
-+import socket
-+from k5test import *
-+
-+realm = K5Realm()
-+
-+# CVE-2021-36222 KDC null dereference on encrypted challenge preauth
-+# without FAST
-+
-+s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-+a = (hostname, realm.portbase)
-+
-+m = ('6A81A0' '30819D' # [APPLICATION 10] SEQUENCE
-+ 'A103' '0201' '05' # [1] pvno = 5
-+ 'A203' '0201' '0A' # [2] msg-type = 10
-+ 'A30E' '300C' # [3] padata = SEQUENCE OF
-+ '300A' # SEQUENCE
-+ 'A104' '0202' '008A' # [1] padata-type = PA-ENCRYPTED-CHALLENGE
-+ 'A202' '0400' # [2] padata-value = ""
-+ 'A48180' '307E' # [4] req-body = SEQUENCE
-+ 'A007' '0305' '0000000000' # [0] kdc-options = 0
-+ 'A120' '301E' # [1] cname = SEQUENCE
-+ 'A003' '0201' '01' # [0] name-type = NT-PRINCIPAL
-+ 'A117' '3015' # [1] name-string = SEQUENCE-OF
-+ '1B06' '6B7262746774' # krbtgt
-+ '1B0B' '4B5242544553542E434F4D'
-+ # KRBTEST.COM
-+ 'A20D' '1B0B' '4B5242544553542E434F4D'
-+ # [2] realm = KRBTEST.COM
-+ 'A320' '301E' # [3] sname = SEQUENCE
-+ 'A003' '0201' '01' # [0] name-type = NT-PRINCIPAL
-+ 'A117' '3015' # [1] name-string = SEQUENCE-OF
-+ '1B06' '6B7262746774' # krbtgt
-+ '1B0B' '4B5242544553542E434F4D'
-+ # KRBTEST.COM
-+ 'A511' '180F' '31393934303631303036303331375A'
-+ # [5] till = 19940610060317Z
-+ 'A703' '0201' '00' # [7] nonce = 0
-+ 'A808' '3006' # [8] etype = SEQUENCE OF
-+ '020112' '020111') # aes256-cts aes128-cts
-+
-+s.sendto(bytes.fromhex(m), a)
-+
-+# Make sure kinit still works.
-+realm.kinit(realm.user_princ, password('user'))
-+
-+success('CVE-2021-36222 regression test')
---
-2.25.1
-
diff --git a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch b/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch
deleted file mode 100644
index c67bca32e7..0000000000
--- a/meta-oe/recipes-connectivity/krb5/krb5/CVE-2021-37750.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From b3999be7ab59a5af4b2f1042ce0d6b03ecb17d4e Mon Sep 17 00:00:00 2001
-From: Greg Hudson <ghudson@mit.edu>
-Date: Tue, 3 Aug 2021 01:15:27 -0400
-Subject: [PATCH] Fix KDC null deref on TGS inner body null server
-
-After the KDC decodes a FAST inner body, it does not check for a null
-server. Prior to commit 39548a5b17bbda9eeb63625a201cfd19b9de1c5b this
-would typically result in an error from krb5_unparse_name(), but with
-the addition of get_local_tgt() it results in a null dereference. Add
-a null check.
-
-Reported by Joseph Sutton of Catalyst.
-
-CVE-2021-37750:
-
-In MIT krb5 releases 1.14 and later, an authenticated attacker can
-cause a null dereference in the KDC by sending a FAST TGS request with
-no server field.
-
-ticket: 9008 (new)
-tags: pullup
-target_version: 1.19-next
-target_version: 1.18-next
-
-CVE: CVE-2021-37750
-
-Upstream-Status: Backport
-[https://github.com/krb5/krb5/commit/d775c95af7606a51bf79547a94fa52ddd1cb7f49]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- src/kdc/do_tgs_req.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c
-index 587342a..622b48f 100644
---- a/src/kdc/do_tgs_req.c
-+++ b/src/kdc/do_tgs_req.c
-@@ -201,6 +201,11 @@ process_tgs_req(krb5_kdc_req *request, krb5_data *pkt,
- status = "FIND_FAST";
- goto cleanup;
- }
-+ if (sprinc == NULL) {
-+ status = "NULL_SERVER";
-+ errcode = KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN;
-+ goto cleanup;
-+ }
-
- errcode = get_local_tgt(kdc_context, &sprinc->realm, header_server,
- &local_tgt, &local_tgt_storage);
---
-2.17.1
-
diff --git a/meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb b/meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb
deleted file mode 100644
index 6e0b2fdacb..0000000000
--- a/meta-oe/recipes-connectivity/krb5/krb5_1.17.2.bb
+++ /dev/null
@@ -1,199 +0,0 @@
-SUMMARY = "A network authentication protocol"
-DESCRIPTION = "Kerberos is a system for authenticating users and services on a network. \
- Kerberos is a trusted third-party service. That means that there is a \
- third party (the Kerberos server) that is trusted by all the entities on \
- the network (users and services, usually called "principals"). \
- . \
- This is the MIT reference implementation of Kerberos V5. \
- . \
- This package contains the Kerberos key server (KDC). The KDC manages all \
- authentication credentials for a Kerberos realm, holds the master keys \
- for the realm, and responds to authentication requests. This package \
- should be installed on both master and slave KDCs."
-
-HOMEPAGE = "http://web.mit.edu/Kerberos/"
-SECTION = "console/network"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=dd4d0ad4c5e98abb58aa0d312f276791"
-DEPENDS = "bison-native ncurses util-linux e2fsprogs e2fsprogs-native openssl"
-
-inherit autotools-brokensep binconfig perlnative systemd update-rc.d
-
-SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
- file://0001-aclocal-Add-parameter-to-disable-keyutils-detection.patch \
- file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \
- file://crosscompile_nm.patch \
- file://etc/init.d/krb5-kdc \
- file://etc/init.d/krb5-admin-server \
- file://etc/default/krb5-kdc \
- file://etc/default/krb5-admin-server \
- file://krb5-kdc.service \
- file://krb5-admin-server.service \
- file://CVE-2021-36222.patch;striplevel=2 \
- file://CVE-2021-37750.patch;striplevel=2 \
-"
-SRC_URI[md5sum] = "aa4337fffa3b61f22dbd0167f708818f"
-SRC_URI[sha256sum] = "1a4bba94df92f6d39a197a10687653e8bfbc9a2076e129f6eb92766974f86134"
-
-CVE_PRODUCT = "kerberos"
-CVE_VERSION = "5-${PV}"
-
-S = "${WORKDIR}/${BP}/src"
-
-PACKAGECONFIG ??= "pkinit"
-PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
-PACKAGECONFIG[openssl] = "--with-crypto-impl=openssl,,openssl"
-PACKAGECONFIG[keyutils] = "--enable-keyutils,--disable-keyutils,keyutils"
-PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
-PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
-PACKAGECONFIG[pkinit] = "--enable-pkinit, --disable-pkinit"
-
-EXTRA_OECONF += " --without-tcl --with-system-et --disable-rpath"
-CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \
- ac_cv_printf_positional=yes ac_cv_file__etc_environment=yes \
- ac_cv_file__etc_TIMEZONE=no"
-
-CFLAGS:append = " -fPIC -DDESTRUCTOR_ATTR_WORKS=1 -I${STAGING_INCDIR}/et"
-CFLAGS:append:riscv64 = " -D_REENTRANT -pthread"
-LDFLAGS:append = " -pthread"
-
-do_configure() {
- gnu-configize --force
- autoreconf
- oe_runconf
-}
-
-do_install:append() {
- rm -rf ${D}/${localstatedir}/run
- rm -f ${D}${bindir}/sclient
- rm -f ${D}${bindir}/sim_client
- rm -f ${D}${bindir}/uuclient
- rm -f ${D}${sbindir}/krb5-send-pr
- rm -f ${D}${sbindir}/sim_server
- rm -f ${D}${sbindir}/sserver
- rm -f ${D}${sbindir}/uuserver
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- mkdir -p ${D}/${sysconfdir}/init.d ${D}/${sysconfdir}/default
- install -m 0755 ${WORKDIR}/etc/init.d/* ${D}/${sysconfdir}/init.d
- install -m 0644 ${WORKDIR}/etc/default/* ${D}/${sysconfdir}/default
-
- mkdir -p ${D}/${sysconfdir}/default/volatiles
- echo "d root root 0755 ${localstatedir}/run/krb5kdc none" \
- > ${D}${sysconfdir}/default/volatiles/87_krb5
-
- echo "RUN_KADMIND=true" >> ${D}/${sysconfdir}/default/krb5-admin-server
- fi
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /run/krb5kdc - - - -" \
- > ${D}${sysconfdir}/tmpfiles.d/krb5.conf
-
- mkdir -p ${D}/${sysconfdir}/default
- install -m 0644 ${WORKDIR}/etc/default/* ${D}/${sysconfdir}/default
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/krb5-admin-server.service ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/krb5-kdc.service ${D}${systemd_system_unitdir}
- fi
-
- sed -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \
- -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
- -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
- -i ${D}${bindir}/krb5-config
-}
-
-PACKAGES =+ "${PN}-admin-server \
- ${PN}-gss-samples \
- ${PN}-k5tls \
- ${PN}-kdc \
- ${PN}-kdc-ldap \
- ${PN}-kpropd \
- ${PN}-otp \
- ${PN}-pkinit \
- ${PN}-spake \
- ${PN}-user \
- libgssapi-krb5 \
- libgssrpc \
- libk5crypto \
- libkadm5clnt-mit \
- libkadm5srv-mit \
- libkdb5 \
- libkrad \
- libkrb5 \
- libkrb5support \
- libverto"
-
-FILES:${PN} = "${libdir}/krb5/plugins/preauth/test.so"
-FILES:${PN}-doc += "${datadir}/examples"
-FILES:${PN}-dbg += "${libdir}/krb5/plugins/*/.debug"
-
-FILES:${PN}-admin-server = "${sbindir}/kadmin.local \
- ${sbindir}/kadmind \
- ${sbindir}/kprop \
- ${sysconfdir}/default/krb5-admin-server \
- ${sysconfdir}/init.d/krb5-admin-server \
- ${systemd_system_unitdir}/krb5-admin-server.service"
-
-FILES:${PN}-gss-samples = "${bindir}/gss-client \
- ${sbindir}/gss-server"
-
-FILES:${PN}-k5tls = "${libdir}/krb5/plugins/tls/k5tls.so"
-
-FILES:${PN}-kdc = "${libdir}/krb5/plugins/kdb/db2.so \
- ${localstatedir}/krb5kdc \
- ${sbindir}/kdb5_util \
- ${sbindir}/kproplog \
- ${sbindir}/krb5kdc \
- ${sysconfdir}/default/krb5-kdc \
- ${sysconfdir}/default/volatiles/87_krb5 \
- ${sysconfdir}/init.d/krb5-kdc \
- ${sysconfdir}/tmpfiles.d/krb5.conf \
- ${systemd_system_unitdir}/krb5-kdc.service"
-
-FILES:${PN}-kdc-ldap = "${libdir}/krb5/libkdb_ldap${SOLIBS} \
- ${libdir}/krb5/plugins/kdb/kldap.so \
- ${sbindir}/kdb5_ldap_util"
-
-FILES:${PN}-kpropd = "${sbindir}/kpropd"
-FILES:${PN}-otp = "${libdir}/krb5/plugins/preauth/otp.so"
-FILES:${PN}-pkinit = "${libdir}/krb5/plugins/preauth/pkinit.so"
-FILES:${PN}-spake = "${libdir}/krb5/plugins/preauth/spake.so"
-FILES:${PN}-user = "${bindir}/k*"
-
-FILES:libgssapi-krb5 = "${libdir}/libgssapi_krb5${SOLIBS}"
-FILES:libgssrpc = "${libdir}/libgssrpc${SOLIBS}"
-FILES:libk5crypto = "${libdir}/libk5crypto${SOLIBS}"
-FILES:libkadm5clnt-mit = "${libdir}/libkadm5clnt_mit${SOLIBS}"
-FILES:libkadm5srv-mit = "${libdir}/libkadm5srv_mit${SOLIBS}"
-FILES:libkdb5 = "${libdir}/libkdb5${SOLIBS}"
-FILES:libkrad = "${libdir}/libkrad${SOLIBS}"
-FILES:libkrb5 = "${libdir}/libkrb5${SOLIBS} \
- ${libdir}/krb5/plugins/authdata \
- ${libdir}/krb5/plugins/libkrb5"
-FILES:libkrb5support = "${libdir}/libkrb5support${SOLIBS}"
-FILES:libverto = "${libdir}/libverto${SOLIBS}"
-
-RDEPENDS:${PN}-kadmin-server = "${PN}-kdc"
-RDEPENDS:${PN}-kpropd = "${PN}-kdc"
-
-INITSCRIPT_PACKAGES = "${PN}-admin-server ${PN}-kdc"
-INITSCRIPT_NAME:${PN}-admin-server = "krb5-admin-server"
-INITSCRIPT_NAME:${PN}-kdc = "krb5-kdc"
-
-SYSTEMD_PACKAGES = "${PN}-admin-server ${PN}-kdc"
-SYSTEMD_SERVICE:${PN}-admin-server = "krb5-admin-server.service"
-SYSTEMD_SERVICE:${PN}-kdc = "krb5-kdc.service"
-
-pkg_postinst:${PN}-kdc () {
- if [ -z "$D" ]; then
- if command -v systemd-tmpfiles >/dev/null; then
- systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/krb5.conf
- elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
- ${sysconfdir}/init.d/populate-volatile.sh update
- fi
- fi
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-connectivity/krb5/krb5_1.21.2.bb b/meta-oe/recipes-connectivity/krb5/krb5_1.21.2.bb
new file mode 100644
index 0000000000..7af33e4e7e
--- /dev/null
+++ b/meta-oe/recipes-connectivity/krb5/krb5_1.21.2.bb
@@ -0,0 +1,201 @@
+SUMMARY = "A network authentication protocol"
+DESCRIPTION = "Kerberos is a system for authenticating users and services on a network. \
+ Kerberos is a trusted third-party service. That means that there is a \
+ third party (the Kerberos server) that is trusted by all the entities on \
+ the network (users and services, usually called "principals"). \
+ . \
+ This is the MIT reference implementation of Kerberos V5. \
+ . \
+ This package contains the Kerberos key server (KDC). The KDC manages all \
+ authentication credentials for a Kerberos realm, holds the master keys \
+ for the realm, and responds to authentication requests. This package \
+ should be installed on both master and slave KDCs."
+
+HOMEPAGE = "http://web.mit.edu/Kerberos/"
+SECTION = "console/network"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=32cb3a99207053d9f5c1ef177c4d6e34"
+
+inherit autotools-brokensep binconfig perlnative systemd update-rc.d pkgconfig
+
+SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \
+ file://debian-suppress-usr-lib-in-krb5-config.patch;striplevel=2 \
+ file://crosscompile_nm.patch \
+ file://etc/init.d/krb5-kdc \
+ file://etc/init.d/krb5-admin-server \
+ file://etc/default/krb5-kdc \
+ file://etc/default/krb5-admin-server \
+ file://krb5-kdc.service \
+ file://krb5-admin-server.service \
+"
+
+SRC_URI[sha256sum] = "9560941a9d843c0243a71b17a7ac6fe31c7cebb5bce3983db79e52ae7e850491"
+
+CVE_PRODUCT = "kerberos"
+CVE_VERSION = "5-${PV}"
+
+S = "${WORKDIR}/${BP}/src"
+
+DEPENDS = "bison-native ncurses util-linux e2fsprogs e2fsprogs-native openssl"
+
+PACKAGECONFIG ??= "pkinit"
+PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
+PACKAGECONFIG[openssl] = "--with-crypto-impl=openssl,,openssl"
+PACKAGECONFIG[keyutils] = "--with-keyutils,--without-keyutils,keyutils"
+PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
+PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
+PACKAGECONFIG[pkinit] = "--enable-pkinit, --disable-pkinit"
+
+EXTRA_OECONF += "--with-system-et --disable-rpath"
+CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \
+ ac_cv_printf_positional=yes ac_cv_file__etc_environment=yes \
+ ac_cv_file__etc_TIMEZONE=no"
+
+CFLAGS:append = " -fPIC -DDESTRUCTOR_ATTR_WORKS=1 -I${STAGING_INCDIR}/et"
+CFLAGS:append:riscv64 = " -D_REENTRANT -pthread"
+LDFLAGS:append = " -pthread"
+
+do_configure() {
+ gnu-configize --force
+ autoreconf
+ oe_runconf
+}
+
+do_install:append() {
+ rm -rf ${D}/${localstatedir}/run
+ rm -f ${D}${bindir}/sclient
+ rm -f ${D}${bindir}/sim_client
+ rm -f ${D}${bindir}/uuclient
+ rm -f ${D}${sbindir}/krb5-send-pr
+ rm -f ${D}${sbindir}/sim_server
+ rm -f ${D}${sbindir}/sserver
+ rm -f ${D}${sbindir}/uuserver
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ mkdir -p ${D}/${sysconfdir}/init.d ${D}/${sysconfdir}/default
+ install -m 0755 ${WORKDIR}/etc/init.d/* ${D}/${sysconfdir}/init.d
+ install -m 0644 ${WORKDIR}/etc/default/* ${D}/${sysconfdir}/default
+
+ mkdir -p ${D}/${sysconfdir}/default/volatiles
+ echo "d root root 0755 ${localstatedir}/run/krb5kdc none" \
+ > ${D}${sysconfdir}/default/volatiles/87_krb5
+
+ echo "RUN_KADMIND=true" >> ${D}/${sysconfdir}/default/krb5-admin-server
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /run/krb5kdc - - - -" \
+ > ${D}${sysconfdir}/tmpfiles.d/krb5.conf
+
+ mkdir -p ${D}/${sysconfdir}/default
+ install -m 0644 ${WORKDIR}/etc/default/* ${D}/${sysconfdir}/default
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/krb5-admin-server.service ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/krb5-kdc.service ${D}${systemd_system_unitdir}
+ fi
+
+ sed -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
+ -i ${D}${bindir}/krb5-config
+}
+
+PACKAGE_BEFORE_PN =+ "${PN}-admin-server \
+ ${PN}-gss-samples \
+ ${PN}-k5tls \
+ ${PN}-kdc \
+ ${PN}-kdc-ldap \
+ ${PN}-kpropd \
+ ${PN}-otp \
+ ${PN}-pkinit \
+ ${PN}-spake \
+ ${PN}-user \
+ libgssapi-krb5 \
+ libgssrpc \
+ libk5crypto \
+ libkadm5clnt-mit \
+ libkadm5srv-mit \
+ libkdb5 \
+ libkrad \
+ libkrb5 \
+ libkrb5support \
+ libverto"
+
+FILES:${PN} = "${libdir}/krb5/plugins/preauth/test.so"
+FILES:${PN}-doc += "${datadir}/examples"
+FILES:${PN}-dbg += "${libdir}/krb5/plugins/*/.debug"
+
+FILES:${PN}-admin-server = "${sbindir}/kadmin.local \
+ ${sbindir}/kadmind \
+ ${sbindir}/kprop \
+ ${sysconfdir}/default/krb5-admin-server \
+ ${sysconfdir}/init.d/krb5-admin-server \
+ ${systemd_system_unitdir}/krb5-admin-server.service"
+
+FILES:${PN}-gss-samples = "${bindir}/gss-client \
+ ${sbindir}/gss-server"
+
+FILES:${PN}-k5tls = "${libdir}/krb5/plugins/tls/k5tls.so"
+
+FILES:${PN}-kdc = "${libdir}/krb5/plugins/kdb/db2.so \
+ ${localstatedir}/krb5kdc \
+ ${sbindir}/kdb5_util \
+ ${sbindir}/kproplog \
+ ${sbindir}/krb5kdc \
+ ${sysconfdir}/default/krb5-kdc \
+ ${sysconfdir}/default/volatiles/87_krb5 \
+ ${sysconfdir}/init.d/krb5-kdc \
+ ${sysconfdir}/tmpfiles.d/krb5.conf \
+ ${systemd_system_unitdir}/krb5-kdc.service"
+
+FILES:${PN}-kdc-ldap = "${libdir}/krb5/libkdb_ldap${SOLIBS} \
+ ${libdir}/krb5/plugins/kdb/kldap.so \
+ ${sbindir}/kdb5_ldap_util"
+
+FILES:${PN}-kpropd = "${sbindir}/kpropd"
+FILES:${PN}-otp = "${libdir}/krb5/plugins/preauth/otp.so"
+FILES:${PN}-pkinit = "${libdir}/krb5/plugins/preauth/pkinit.so"
+FILES:${PN}-spake = "${libdir}/krb5/plugins/preauth/spake.so"
+FILES:${PN}-user = "${bindir}/k*"
+
+FILES:libgssapi-krb5 = "${libdir}/libgssapi_krb5${SOLIBS}"
+FILES:libgssrpc = "${libdir}/libgssrpc${SOLIBS}"
+FILES:libk5crypto = "${libdir}/libk5crypto${SOLIBS}"
+FILES:libkadm5clnt-mit = "${libdir}/libkadm5clnt_mit${SOLIBS}"
+FILES:libkadm5srv-mit = "${libdir}/libkadm5srv_mit${SOLIBS}"
+FILES:libkdb5 = "${libdir}/libkdb5${SOLIBS}"
+FILES:libkrad = "${libdir}/libkrad${SOLIBS}"
+FILES:libkrb5 = "${libdir}/libkrb5${SOLIBS} \
+ ${libdir}/krb5/plugins/authdata \
+ ${libdir}/krb5/plugins/libkrb5"
+FILES:libkrb5support = "${libdir}/libkrb5support${SOLIBS}"
+FILES:libverto = "${libdir}/libverto${SOLIBS}"
+
+RDEPENDS:${PN}-kadmin-server = "${PN}-kdc"
+RDEPENDS:${PN}-kpropd = "${PN}-kdc"
+
+INITSCRIPT_PACKAGES = "${PN}-admin-server ${PN}-kdc"
+INITSCRIPT_NAME:${PN}-admin-server = "krb5-admin-server"
+INITSCRIPT_NAME:${PN}-kdc = "krb5-kdc"
+
+SYSTEMD_PACKAGES = "${PN}-admin-server ${PN}-kdc"
+SYSTEMD_SERVICE:${PN}-admin-server = "krb5-admin-server.service"
+SYSTEMD_SERVICE:${PN}-kdc = "krb5-kdc.service"
+
+pkg_postinst:${PN}-kdc () {
+ if [ -z "$D" ]; then
+ if command -v systemd-tmpfiles >/dev/null; then
+ systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/krb5.conf
+ elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+ ${sysconfdir}/init.d/populate-volatile.sh update
+ fi
+ fi
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
+inherit multilib_script
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/krb5-config"
diff --git a/meta-oe/recipes-connectivity/libimobiledevice-glue/libimobiledevice-glue_git.bb b/meta-oe/recipes-connectivity/libimobiledevice-glue/libimobiledevice-glue_git.bb
index 7e9299c9f3..d37c547c98 100644
--- a/meta-oe/recipes-connectivity/libimobiledevice-glue/libimobiledevice-glue_git.bb
+++ b/meta-oe/recipes-connectivity/libimobiledevice-glue/libimobiledevice-glue_git.bb
@@ -8,9 +8,9 @@ HOMEPAGE = "http://www.libimobiledevice.org/"
DEPENDS = "libplist"
-PV = "1.0.0+git${SRCPV}"
+PV = "1.0.0+git"
-SRCREV = "d2ff7969dcd0a12e4f18f63dab03e6cd03054fcb"
+SRCREV = "114098d30e783fbb3def5c9b49427a86621cfcb1"
SRC_URI = "git://github.com/libimobiledevice/libimobiledevice-glue;protocol=https;branch=master"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice/0001-include-unistd.h-for-usleep.patch b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice/0001-include-unistd.h-for-usleep.patch
new file mode 100644
index 0000000000..424a203e56
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice/0001-include-unistd.h-for-usleep.patch
@@ -0,0 +1,31 @@
+From 6cb8069cfe08114f1dc7b50a7fcd4dc040cd1bbb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 9 May 2023 20:19:23 -0700
+Subject: [PATCH] include unistd.h for usleep()
+
+clang16 flags the missing header
+
+Fixes
+../../git/tools/idevicedevmodectl.c:363:2: error: call to undeclared function 'usleep'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+
+Upstream-Status: Submitted [https://github.com/libimobiledevice/libimobiledevice/pull/1444]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/idevicedevmodectl.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tools/idevicedevmodectl.c b/tools/idevicedevmodectl.c
+index 739bc13..9fe8d6a 100644
+--- a/tools/idevicedevmodectl.c
++++ b/tools/idevicedevmodectl.c
+@@ -34,6 +34,7 @@
+ #ifndef WIN32
+ #include <signal.h>
+ #endif
++#include <unistd.h>
+
+ #ifdef WIN32
+ #include <windows.h>
+--
+2.40.1
+
diff --git a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.3.0.bb b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.3.0.bb
deleted file mode 100644
index 41b8d94a03..0000000000
--- a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.3.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "A protocol library to access an iPhone or iPod Touch in Linux"
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "\
- file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
- file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7 \
-"
-HOMEPAGE = "http://www.libimobiledevice.org/"
-
-DEPENDS = "libplist usbmuxd libusbmuxd libtasn1 gnutls libgcrypt"
-
-SRCREV = "15f8652126664e3a4b980e5d1c039b9053ce8566"
-SRC_URI = "git://github.com/libimobiledevice/libimobiledevice;protocol=https;branch=master"
-
-S = "${WORKDIR}/git"
-inherit autotools pkgconfig
-
-EXTRA_OECONF = " --without-cython "
diff --git a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb
index 52176872cf..b8d7e8872b 100644
--- a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb
+++ b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb
@@ -8,10 +8,11 @@ HOMEPAGE = "http://www.libimobiledevice.org/"
DEPENDS = "libplist usbmuxd libusbmuxd libtasn1 gnutls libgcrypt libimobiledevice-glue openssl"
-PV = "1.3.0+git${SRCPV}"
+PV = "1.3.0+git"
-SRCREV = "2eec1b9a172354c8521123a767d998b17bd2ac18"
-SRC_URI = "git://github.com/libimobiledevice/libimobiledevice;protocol=https;branch=master"
+SRCREV = "860ffb707af3af94467d2ece4ad258dda957c6cd"
+SRC_URI = "git://github.com/libimobiledevice/libimobiledevice;protocol=https;branch=master \
+ file://0001-include-unistd.h-for-usleep.patch"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
diff --git a/meta-oe/recipes-connectivity/libirecovery/libirecovery_git.bb b/meta-oe/recipes-connectivity/libirecovery/libirecovery_git.bb
index e3da1819b2..2400195975 100644
--- a/meta-oe/recipes-connectivity/libirecovery/libirecovery_git.bb
+++ b/meta-oe/recipes-connectivity/libirecovery/libirecovery_git.bb
@@ -6,11 +6,11 @@ LIC_FILES_CHKSUM = "\
HOMEPAGE = "http://www.libimobiledevice.org/"
-DEPENDS = "libimobiledevice-glue libusb1"
+DEPENDS = "libimobiledevice-glue libusb1 readline"
-PV = "1.0.1+git${SRCPV}"
+PV = "1.1.0"
-SRCREV = "ab5b4d8d4c0e90c05d80f80c7e99a6516de9b5c6"
+SRCREV = "98c9f7055ec1f2e09fac69ef1413a8757113b838"
SRC_URI = "git://github.com/libimobiledevice/libirecovery;protocol=https;branch=master"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim_1.26.4.bb b/meta-oe/recipes-connectivity/libmbim/libmbim_1.26.4.bb
deleted file mode 100644
index 97f3f68251..0000000000
--- a/meta-oe/recipes-connectivity/libmbim/libmbim_1.26.4.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "libmbim is library for talking to WWAN devices by MBIM protocol"
-DESCRIPTION = "libmbim is a glib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol"
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libmbim/"
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
-
-DEPENDS = "glib-2.0 glib-2.0-native libgudev"
-
-inherit autotools pkgconfig bash-completion gobject-introspection
-
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "f688cec4c4586a17575f5e327448ce62f2000ef6a07c9e4589873d4a68568ad9"
diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim_1.30.0.bb b/meta-oe/recipes-connectivity/libmbim/libmbim_1.30.0.bb
new file mode 100644
index 0000000000..a227124498
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libmbim/libmbim_1.30.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "libmbim is library for talking to WWAN devices by MBIM protocol"
+DESCRIPTION = "libmbim is a glib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libmbim/"
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = " \
+ file://LICENSES/GPL-2.0-or-later.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSES/LGPL-2.1-or-later.txt;md5=4fbd65380cdd255951079008b364516c \
+"
+
+DEPENDS = "glib-2.0 glib-2.0-native libgudev"
+
+inherit meson pkgconfig bash-completion gobject-introspection upstream-version-is-even
+
+SRCREV = "8415687e4f30ae5e36f407f179c8147f1529725c"
+SRC_URI = "git://gitlab.freedesktop.org/mobile-broadband/libmbim.git;protocol=https;branch=mbim-1-30"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMESON = " \
+ -Dgtk_doc=false \
+ -Dman=false \
+"
diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.20.bb b/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.20.bb
deleted file mode 100644
index 41fc46c31e..0000000000
--- a/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.20.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-# TODO: include debian's mtp-tools man page (needs xsltproc-native and
-# docbook-xsl-native, or we pregenerate it), add support for doxygen
-# generation fully with -natives
-DESCRIPTION = "libmtp is an Initiator implementation of the Media Transfer \
-Protocol (MTP) in the form of a library suitable primarily for POSIX \
-compliant operating systems"
-SUMMARY = "libmtp is an Initiator implementation of the Media Transfer Protocol (MTP)"
-HOMEPAGE = "http://libmtp.sourceforge.net/"
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0448d3676bc0de00406af227d341a4d1 \
- file://src/ptp.c;beginline=3;endline=22;md5=80fd2d5904c4c1f5455d8f4bf515292f \
- file://examples/albums.c;beginline=5;endline=21;md5=84f4e55dfec49e898b7f68a828c15620 \
- "
-
-BBCLASSEXTEND = "native"
-
-DEPENDS = "libusb1 gettext-native"
-DEPENDS:append:class-target = " ${BPN}-native"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
-SRC_URI:append:class-target = " file://0001-Use-native-mtp-hotplug.patch"
-SRC_URI[sha256sum] = "c9191dac2f5744cf402e08641610b271f73ac21a3c802734ec2cedb2c6bc56d0"
-
-inherit autotools pkgconfig lib_package
-
-EXTRA_OECONF += " \
- --disable-rpath \
- --enable-largefile \
- --with-udev=${nonarch_base_libdir}/udev \
-"
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[doxygen] = "--enable-doxygen,--disable-doxygen,doxygen-native"
-PACKAGECONFIG[mtpz] = "--enable-mtpz,--disable-mtpz,libgcrypt"
-
-PACKAGES =+ "${BPN}-common ${BPN}-runtime"
-
-RDEPENDS:${BPN} += "libmtp-common"
-RRECOMMENDS:${BPN} += "libmtp-runtime ${PN}-bin"
-
-FILES:${BPN}-common = "${nonarch_base_libdir}/udev/rules.d/*"
-SUMMARY:${BPN}-common = "The udev rules file for MTP devices"
-
-FILES:${BPN}-runtime = "${nonarch_base_libdir}/udev/mtp-probe"
-RDEPENDS:${BPN}-runtime = "libmtp-common"
-SUMMARY:${BPN}-runtime = "mtp-probe, used for the MTP udev rules"
-DESCRIPTION:${BPN}-runtime = "This package provides mtp-probe, a program to probe newly connected device interfaces from userspace to determine if they are MTP devices, used for udev rules."
diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.21.bb b/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.21.bb
new file mode 100644
index 0000000000..94cbef8fc1
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.21.bb
@@ -0,0 +1,47 @@
+# TODO: include debian's mtp-tools man page (needs xsltproc-native and
+# docbook-xsl-native, or we pregenerate it), add support for doxygen
+# generation fully with -natives
+DESCRIPTION = "libmtp is an Initiator implementation of the Media Transfer \
+Protocol (MTP) in the form of a library suitable primarily for POSIX \
+compliant operating systems"
+SUMMARY = "libmtp is an Initiator implementation of the Media Transfer Protocol (MTP)"
+HOMEPAGE = "http://libmtp.sourceforge.net/"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0448d3676bc0de00406af227d341a4d1 \
+ file://src/ptp.c;beginline=3;endline=22;md5=80fd2d5904c4c1f5455d8f4bf515292f \
+ file://examples/albums.c;beginline=5;endline=21;md5=84f4e55dfec49e898b7f68a828c15620 \
+ "
+
+BBCLASSEXTEND = "native"
+
+DEPENDS = "libusb1 gettext-native"
+DEPENDS:append:class-target = " ${BPN}-native"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI:append:class-target = " file://0001-Use-native-mtp-hotplug.patch"
+SRC_URI[sha256sum] = "f4c1ceb3df020a6cb851110f620c14fe399518c494ed252039cbfb4e34335135"
+
+inherit autotools pkgconfig lib_package
+
+EXTRA_OECONF += " \
+ --disable-rpath \
+ --enable-largefile \
+ --with-udev=${nonarch_base_libdir}/udev \
+"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[doxygen] = "--enable-doxygen,--disable-doxygen,doxygen-native"
+PACKAGECONFIG[mtpz] = "--enable-mtpz,--disable-mtpz,libgcrypt"
+
+PACKAGES =+ "${BPN}-common ${BPN}-runtime"
+
+RDEPENDS:${BPN} += "libmtp-common"
+RRECOMMENDS:${BPN} += "libmtp-runtime ${PN}-bin"
+
+FILES:${BPN}-common = "${nonarch_base_libdir}/udev/rules.d/*"
+SUMMARY:${BPN}-common = "The udev rules file for MTP devices"
+
+FILES:${BPN}-runtime = "${nonarch_base_libdir}/udev/mtp-probe"
+RDEPENDS:${BPN}-runtime = "libmtp-common"
+SUMMARY:${BPN}-runtime = "mtp-probe, used for the MTP udev rules"
+DESCRIPTION:${BPN}-runtime = "This package provides mtp-probe, a program to probe newly connected device interfaces from userspace to determine if they are MTP devices, used for udev rules."
diff --git a/meta-oe/recipes-connectivity/libnet/libnet/0001-Support-musl-libc-remove-support-for-glibc-2.1.patch b/meta-oe/recipes-connectivity/libnet/libnet/0001-Support-musl-libc-remove-support-for-glibc-2.1.patch
deleted file mode 100644
index 98008dba94..0000000000
--- a/meta-oe/recipes-connectivity/libnet/libnet/0001-Support-musl-libc-remove-support-for-glibc-2.1.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From ffd7fab744a9ad2893169a8fb6244074604d5d0d Mon Sep 17 00:00:00 2001
-From: rofl0r <retnyg@gmx.net>
-Date: Tue, 12 Aug 2014 21:51:39 +0200
-Subject: [PATCH] Support musl libc, remove support for glibc < 2.1
-
-Upstream-Status: Backport
-
-The workarounds for glibc < 2.1 (was released february 1999) break the
-build with musl libc.
-
-It is very unlikely that 2.0 or earlier is still in use, and if so,
-1) that's a big security hole
-2) code wouldnt compile anyway since noone tested build in the last decade
-3) user of it wouldn't expect anyway to get bleeding edge sw built on it,
- so he would just use the latest version that works for him.
-
-Closes #52
-
-Signed-off-by: rofl0r <retnyg@gmx.net>
-Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
----
- libnet/src/libnet_link_linux.c | 11 -----------
- 1 file changed, 11 deletions(-)
-
-diff --git a/src/libnet_link_linux.c b/src/libnet_link_linux.c
-index 054458d..3c6df3c 100644
---- a/src/libnet_link_linux.c
-+++ b/src/libnet_link_linux.c
-@@ -30,26 +30,15 @@
- #include <sys/time.h>
-
- #include <net/if.h>
--#if (__GLIBC__)
- #include <netinet/if_ether.h>
- #include <net/if_arp.h>
--#else
--#include <linux/if_arp.h>
--#include <linux/if_ether.h>
--#endif
-
- #if (HAVE_PACKET_SOCKET)
- #ifndef SOL_PACKET
- #define SOL_PACKET 263
- #endif /* SOL_PACKET */
--#if __GLIBC__ >= 2 && __GLIBC_MINOR >= 1
- #include <netpacket/packet.h>
- #include <net/ethernet.h> /* the L2 protocols */
--#else
--#include <asm/types.h>
--#include <linux/if_packet.h>
--#include <linux/if_ether.h> /* The L2 protocols */
--#endif
- #endif /* HAVE_PACKET_SOCKET */
-
- #include "../include/libnet.h"
---
-1.9.1
-
diff --git a/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb b/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb
deleted file mode 100644
index 785abf66d6..0000000000
--- a/meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "A packet dissection and creation library"
-# libnet at packetfactory.net is dead
-HOMEPAGE = "https://github.com/sam-github/libnet"
-SECTION = "libs"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://doc/COPYING;md5=3ec839e00408b484d33b472a86b7c266"
-DEPENDS = "libpcap"
-# There are major API changes beween libnet v1.0 and libnet v1.1
-PROVIDES = "libnet-1.2rc2"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/libnet-dev/${BPN}-${PV}.tar.gz \
- file://0001-Support-musl-libc-remove-support-for-glibc-2.1.patch \
- "
-
-SRC_URI[md5sum] = "f051e6e5bdecddb90f77c701c2ca1804"
-SRC_URI[sha256sum] = "72c380785ad44183005e654b47cc12485ee0228d7fa6b0a87109ff7614be4a63"
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/libnet-dev/files/"
-UPSTREAM_CHECK_REGEX = "libnet-(?P<pver>\d+(\.\d+)+-*[a-z]*\d*)\.tar"
-
-S = "${WORKDIR}/${BPN}-${PV}"
-
-inherit autotools binconfig
-
diff --git a/meta-oe/recipes-connectivity/libnet/libnet_1.3.bb b/meta-oe/recipes-connectivity/libnet/libnet_1.3.bb
new file mode 100644
index 0000000000..b4648832f1
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libnet/libnet_1.3.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A packet dissection and creation library"
+HOMEPAGE = "https://github.com/libnet/libnet"
+
+SECTION = "libs"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=07f291bf6e78efa05cec668cf6a09acc"
+
+DEPENDS = "libpcap"
+
+SRC_URI = "git://github.com/libnet/libnet.git;protocol=https;branch=master"
+
+SRC_URI[sha256sum] = "1e9e9054d688b059bcbaf878d8c4fbf69bfc0c9386cd4e7779fbb53339050d2e"
+SRCREV = "deaebdfe2743e8a6f04d3c307d9272afeeecfade"
+
+S = "${WORKDIR}/git"
+
+inherit autotools binconfig multilib_script
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/libnet-config"
+
diff --git a/meta-oe/recipes-connectivity/libnfs/libnfs/0001-CMakeLists.txt-respect-CMAKE_INSTALL_LIBDIR-for-mult.patch b/meta-oe/recipes-connectivity/libnfs/libnfs/0001-CMakeLists.txt-respect-CMAKE_INSTALL_LIBDIR-for-mult.patch
new file mode 100644
index 0000000000..978f38d019
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libnfs/libnfs/0001-CMakeLists.txt-respect-CMAKE_INSTALL_LIBDIR-for-mult.patch
@@ -0,0 +1,61 @@
+From 95708ff427c12b58e53fab225a08c811ca358394 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 3 May 2023 22:27:10 +0200
+Subject: [PATCH] CMakeLists.txt: respect ${CMAKE_INSTALL_LIBDIR} for multilib
+
+* fixes:
+ ERROR: libnfs-5.0.2-r0 do_package: QA Issue: libnfs: Files/directories were installed but not shipped in any package:
+ /usr/lib/libnfs.so
+ /usr/lib/libnfs.so.11.1.0
+ /usr/lib/libnfs.so.5.0.2
+ /usr/lib/pkgconfig
+ /usr/lib/cmake
+ /usr/lib/pkgconfig/libnfs.pc
+ /usr/lib/cmake/libnfs
+ /usr/lib/cmake/libnfs/libnfs-config-version.cmake
+ /usr/lib/cmake/libnfs/libnfs-config.cmake
+ /usr/lib/cmake/libnfs/libnfs-config-noconfig.cmake
+ /usr/lib/cmake/libnfs/FindNFS.cmake
+ Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
+ libnfs: 11 installed and not shipped files. [installed-vs-shipped]
+
+ when libdir is /usr/lib64 with multilib
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Pending
+---
+ CMakeLists.txt | 6 +++---
+ lib/CMakeLists.txt | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5be774d..6b4fd25 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,11 +7,11 @@ project(libnfs
+ set(SOVERSION 11.2.0 CACHE STRING "" FORCE)
+
+ set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for binaries")
+-set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
++set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" CACHE PATH "Installation directory for libraries")
+ set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
+ set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages")
+-set(INSTALL_PKGCONFIG_DIR "${INSTALL_LIB_DIR}/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
+-set(INSTALL_CMAKE_DIR "${INSTALL_LIB_DIR}/cmake/libnfs" CACHE PATH "Installation directory for cmake (.cmake) files")
++set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
++set(INSTALL_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/libnfs" CACHE PATH "Installation directory for cmake (.cmake) files")
+
+ option(BUILD_SHARED_LIBS "Build shared libraries" ON)
+ option(ENABLE_TESTS "Build and run test programs" OFF)
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index 88ba7b8..5ff89dc 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -23,5 +23,5 @@ set_target_properties(nfs PROPERTIES
+
+ install(TARGETS nfs EXPORT libnfs
+ RUNTIME DESTINATION bin
+- ARCHIVE DESTINATION lib
+- LIBRARY DESTINATION lib)
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
diff --git a/meta-oe/recipes-connectivity/libnfs/libnfs/0001-cmake-Test-for-sys-uio.h.patch b/meta-oe/recipes-connectivity/libnfs/libnfs/0001-cmake-Test-for-sys-uio.h.patch
new file mode 100644
index 0000000000..de3ab82292
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libnfs/libnfs/0001-cmake-Test-for-sys-uio.h.patch
@@ -0,0 +1,44 @@
+From d0fa719d49f38777911a8e99717f2d4b30811080 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 12 Feb 2024 19:24:54 -0800
+Subject: [PATCH] cmake: Test for sys/uio.h
+
+writev() API is used in few places and it will need including sys/uio.h
+for getting the funciton signature
+
+Upstream-Status: Submitted [https://github.com/sahlberg/libnfs/pull/440]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cmake/ConfigureChecks.cmake | 1 +
+ cmake/config.h.cmake | 3 +++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/cmake/ConfigureChecks.cmake b/cmake/ConfigureChecks.cmake
+index 0258fc8..c26a02d 100644
+--- a/cmake/ConfigureChecks.cmake
++++ b/cmake/ConfigureChecks.cmake
+@@ -22,6 +22,7 @@ check_include_file("sys/stat.h" HAVE_SYS_STAT_H)
+ check_include_file("sys/sysmacros.h" HAVE_SYS_SYSMACROS_H)
+ check_include_file("sys/time.h" HAVE_SYS_TIME_H)
+ check_include_file("sys/types.h" HAVE_SYS_TYPES_H)
++check_include_file("sys/uio.h" HAVE_SYS_UIO_H)
+ check_include_file("sys/vfs.h" HAVE_SYS_VFS_H)
+ check_include_file("unistd.h" HAVE_UNISTD_H)
+ check_include_file("utime.h" HAVE_UTIME_H)
+diff --git a/cmake/config.h.cmake b/cmake/config.h.cmake
+index 4016c6c..6263896 100644
+--- a/cmake/config.h.cmake
++++ b/cmake/config.h.cmake
+@@ -90,6 +90,9 @@
+ /* Define to 1 if you have the <sys/types.h> header file. */
+ #cmakedefine HAVE_SYS_TYPES_H
+
++/* Define to 1 if you have the <sys/uio.h> header file. */
++#cmakedefine HAVE_SYS_UIO_H
++
+ /* Define to 1 if you have the <sys/vfs.h> header file. */
+ #cmakedefine HAVE_SYS_VFS_H
+
+--
+2.43.1
+
diff --git a/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.3.bb b/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.3.bb
new file mode 100644
index 0000000000..a6eabc6095
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "NFS client library"
+HOMEPAGE = "https://github.com/sahlberg/libnfs"
+LICENSE = "LGPL-2.1-only & BSD-2-Clause & GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=825301ba17efc9d188ee0abd4b924ada"
+
+SRC_URI = " \
+ git://github.com/sahlberg/libnfs.git;protocol=https;branch=master \
+ file://0001-CMakeLists.txt-respect-CMAKE_INSTALL_LIBDIR-for-mult.patch \
+ file://0001-cmake-Test-for-sys-uio.h.patch \
+"
+SRCREV = "4379837536d9eac537810dc7b13071136049b22a"
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+do_install:append() {
+ rm -f ${D}${libdir}/cmake/libnfs/libnfs-config.cmake
+}
diff --git a/meta-oe/recipes-connectivity/libqmi/files/0001-build-use-python3-everywhere.patch b/meta-oe/recipes-connectivity/libqmi/files/0001-build-use-python3-everywhere.patch
deleted file mode 100644
index e345d28031..0000000000
--- a/meta-oe/recipes-connectivity/libqmi/files/0001-build-use-python3-everywhere.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 189528e879e4099b44aae26a2af0cb16aaa96db6 Mon Sep 17 00:00:00 2001
-From: goapunk <goapunk@riseup.net>
-Date: Mon, 13 Sep 2021 13:45:41 +0200
-Subject: [PATCH] build: use python3 everywhere
-
----
- build-aux/qmi-codegen/qmi-codegen | 2 +-
- examples/simple-tester-python/simple-tester-python | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/build-aux/qmi-codegen/qmi-codegen b/build-aux/qmi-codegen/qmi-codegen
-index 1fea7c1..1092c8e 100755
---- a/build-aux/qmi-codegen/qmi-codegen
-+++ b/build-aux/qmi-codegen/qmi-codegen
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- #
- # This program is free software; you can redistribute it and/or modify it under
-diff --git a/examples/simple-tester-python/simple-tester-python b/examples/simple-tester-python/simple-tester-python
-index af9065a..a35e505 100755
---- a/examples/simple-tester-python/simple-tester-python
-+++ b/examples/simple-tester-python/simple-tester-python
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- #
- # This program is free software; you can redistribute it and/or modify it under
---
-2.34.1
-
diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi_1.30.8.bb b/meta-oe/recipes-connectivity/libqmi/libqmi_1.30.8.bb
deleted file mode 100644
index a1cfe29cca..0000000000
--- a/meta-oe/recipes-connectivity/libqmi/libqmi_1.30.8.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol"
-DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems and \
- devices which speak the Qualcomm MSM Interface (QMI) protocol"
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi"
-LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
-
-DEPENDS = "glib-2.0 glib-2.0-native"
-
-inherit meson pkgconfig bash-completion gobject-introspection
-
-SRCREV ?= "95108b6eebfefa6621a1c34565f562eeca9308b9"
-# patch 0001 is on main branch upstream
-SRC_URI = "\
- git://gitlab.freedesktop.org/mobile-broadband/libqmi.git;protocol=https;branch=qmi-1-30 \
- file://0001-build-use-python3-everywhere.patch \
-"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= "udev mbim"
-PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,libgudev"
-PACKAGECONFIG[mbim] = "-Dmbim_qmux=true,-Dmbim_qmux=false,libmbim"
-PACKAGECONFIG[qrtr] = "-Dqrtr=true,-Dqrtr=false,libqrtr-glib"
-
-EXTRA_OEMESON = " \
- -Dgtk_doc=false \
- -Dman=false \
-"
diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi_1.34.0.bb b/meta-oe/recipes-connectivity/libqmi/libqmi_1.34.0.bb
new file mode 100644
index 0000000000..94164a0b5a
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libqmi/libqmi_1.34.0.bb
@@ -0,0 +1,28 @@
+SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol"
+DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems and \
+ devices which speak the Qualcomm MSM Interface (QMI) protocol"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi"
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+"
+
+DEPENDS = "glib-2.0 glib-2.0-native"
+
+inherit meson pkgconfig bash-completion gobject-introspection upstream-version-is-even
+
+SRCREV = "3f07d6e5b4677558543b3b4484ea88ad92257e92"
+SRC_URI = "git://gitlab.freedesktop.org/mobile-broadband/libqmi.git;protocol=https;branch=qmi-1-34"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= "udev mbim"
+PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,libgudev"
+PACKAGECONFIG[mbim] = "-Dmbim_qmux=true,-Dmbim_qmux=false,libmbim"
+PACKAGECONFIG[qrtr] = "-Dqrtr=true,-Dqrtr=false,libqrtr-glib"
+
+EXTRA_OEMESON = " \
+ -Dgtk_doc=false \
+ -Dman=false \
+"
diff --git a/meta-oe/recipes-connectivity/libqrtr-glib/libqrtr-glib_git.bb b/meta-oe/recipes-connectivity/libqrtr-glib/libqrtr-glib_git.bb
index 7bac3117cd..3549cac568 100644
--- a/meta-oe/recipes-connectivity/libqrtr-glib/libqrtr-glib_git.bb
+++ b/meta-oe/recipes-connectivity/libqrtr-glib/libqrtr-glib_git.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSES/LGPL-2.1-or-later.txt;md5=4fbd65380cdd255951
SRC_URI = "git://gitlab.freedesktop.org/mobile-broadband/libqrtr-glib.git;protocol=https;branch=qrtr-1-2"
-PV = "1.2.2+git${SRCPV}"
+PV = "1.2.2+git"
SRCREV = "8991f0e93713ebf4da48ae4f23940ead42f64c8c"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-connectivity/libtorrent-rasterbar/libtorrent-rasterbar_2.0.10.bb b/meta-oe/recipes-connectivity/libtorrent-rasterbar/libtorrent-rasterbar_2.0.10.bb
new file mode 100644
index 0000000000..084e3c4080
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libtorrent-rasterbar/libtorrent-rasterbar_2.0.10.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "libtorrent is a feature complete C++ bittorrent implementation \
+ focusing on efficiency and scalability."
+HOMEPAGE = "https://libtorrent.org/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8b6cb42d66e6b3c47a909c3ce678a7b"
+
+DEPENDS = "boost openssl"
+
+SRC_URI = "git://github.com/arvidn/libtorrent.git;branch=master;protocol=https \
+ git://github.com/arvidn/try_signal.git;branch=master;protocol=https;destsuffix=git/deps/try_signal;name=try_signal"
+
+SRCREV = "74bc93a37a5e31c78f0aa02037a68fb9ac5deb41"
+SRCREV_try_signal = "105cce59972f925a33aa6b1c3109e4cd3caf583d"
+SRCREV_FORMAT .= "_try_signal"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig python3targetconfig
+
+EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release"
+
+PACKAGECONFIG ??= "python3"
+PACKAGECONFIG[python3] = "-Dpython-bindings=ON,-Dpython-bindings=OFF,python3-distutils-extra-native"
+
+# Strip host paths from autogenerated files
+do_install:append() {
+ sed -i 's+${STAGING_LIBDIR}+${libdir}+g' ${D}${libdir}/pkgconfig/${BPN}.pc
+}
+
+PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)}"
+FILES:python3-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/*"
diff --git a/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch b/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch
deleted file mode 100644
index 8d8867aea7..0000000000
--- a/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Using AC_RUN_IFELSE prevent people from configuring package for
-cross-compiling. Don't run code while configuring package.
-
-Upstream-Status: Pending
-Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-
-Index: git/scripts/common.m4
-===================================================================
---- git.orig/scripts/common.m4
-+++ git/scripts/common.m4
-@@ -153,7 +153,7 @@ dnl Need to fix this so that it uses t
- AC_DEFUN([TORRENT_CHECK_EXECINFO], [
- AC_MSG_CHECKING(for execinfo.h)
-
-- AC_COMPILE_IFELSE([AC_LANG_SOURCE([
-+ AC_LINK_IFELSE([AC_LANG_SOURCE([
- #include <execinfo.h>
- int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
- ])],
-@@ -168,7 +168,7 @@ AC_DEFUN([TORRENT_CHECK_EXECINFO], [
- AC_DEFUN([TORRENT_CHECK_ALIGNED], [
- AC_MSG_CHECKING(the byte alignment)
-
-- AC_RUN_IFELSE([AC_LANG_SOURCE([
-+ AC_LINK_IFELSE([AC_LANG_SOURCE([
- #include <inttypes.h>
- int main() {
- char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 };
diff --git a/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb b/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
index 28a3e1e77a..c235547fea 100644
--- a/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
+++ b/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
@@ -1,36 +1,31 @@
DESCRIPTION = "libTorrent is a BitTorrent library written in C++ for *nix, \
with a focus on high performance and good code."
HOMEPAGE = "http://libtorrent.rakshasa.no/"
-LICENSE = "GPL-2.0-only"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
DEPENDS = "zlib libsigc++-2.0 openssl cppunit"
-SRC_URI = "git://github.com/rakshasa/libtorrent;branch=master;protocol=https \
- file://don-t-run-code-while-configuring-package.patch \
- "
-SRCREV = "756f70010779927dc0691e1e722ed433d5d295e1"
+PV = "0.13.8+git"
-CVE_CHECK_IGNORE += "\
- CVE-2009-1760 \
-"
+SRC_URI = "git://github.com/rakshasa/libtorrent;branch=master;protocol=https"
+SRCREV = "e60f222241319aaae482789517ad00ae9344bd13"
-PV = "0.13.8"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+CVE_STATUS[CVE-2009-1760] = "backported-patch: patched in our product"
S = "${WORKDIR}/git"
-PACKAGECONFIG ??= "instrumentation"
+PACKAGECONFIG ??= "instrumentation aligned"
PACKAGECONFIG:remove:mipsarch = "instrumentation"
PACKAGECONFIG:remove:powerpc = "instrumentation"
PACKAGECONFIG:remove:riscv32 = "instrumentation"
PACKAGECONFIG[instrumentation] = "--enable-instrumentation,--disable-instrumentation,"
+PACKAGECONFIG[aligned] = "--enable-aligned,--disable-aligned,"
inherit autotools pkgconfig
EXTRA_OECONF = "--with-zlib=${STAGING_EXECPREFIXDIR}"
-
-do_configure:prepend() {
- (cd ${S}; ./autogen.sh; cd -)
-}
diff --git a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.2.bb b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.2.bb
deleted file mode 100644
index 8a16f40706..0000000000
--- a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.2.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "Canonical libwebsockets.org websocket library"
-HOMEPAGE = "https://libwebsockets.org/"
-LICENSE = "MIT & Zlib & BSD-3-Clause & Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=382bfdf329e774859fd401eaf850d29b"
-
-DEPENDS = "zlib"
-
-S = "${WORKDIR}/git"
-SRCREV = "b0a749c8e7a8294b68581ce4feac0e55045eb00b"
-SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v4.3-stable"
-
-UPSTREAM_CHECK_URI = "https://github.com/warmcat/${BPN}/releases"
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-inherit cmake pkgconfig
-
-PACKAGECONFIG ?= "libuv client server http2 ssl"
-PACKAGECONFIG[client] = "-DLWS_WITHOUT_CLIENT=OFF,-DLWS_WITHOUT_CLIENT=ON,"
-PACKAGECONFIG[http2] = "-DLWS_WITH_HTTP2=ON,-DLWS_WITH_HTTP2=OFF,"
-PACKAGECONFIG[ipv6] = "-DLWS_IPV6=ON,-DLWS_IPV6=OFF,"
-PACKAGECONFIG[libevent] = "-DLWS_WITH_LIBEVENT=ON,-DLWS_WITH_LIBEVENT=OFF,libevent"
-PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev"
-PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv"
-PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON,"
-PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl"
-PACKAGECONFIG[static] = "-DLWS_WITH_STATIC=ON,-DLWS_WITH_STATIC=OFF -DLWS_LINK_TESTAPPS_DYNAMIC=ON,"
-PACKAGECONFIG[systemd] = "-DLWS_WITH_SDEVENT=ON,-DLWS_WITH_SDEVENT=OFF,systemd"
-
-EXTRA_OECMAKE += " \
- -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
-"
-
-PACKAGES =+ "${PN}-testapps ${PN}-evlib-event ${PN}-evlib-uv ${PN}-evlib-ev ${PN}-evlib-sd"
-
-FILES:${PN}-testapps += "${datadir}/libwebsockets-test-server/* ${bindir}/libwebsockets-test-*"
-FILES:${PN}-evlib-event += "${libdir}/libwebsockets-evlib_event.so"
-FILES:${PN}-evlib-uv += "${libdir}/libwebsockets-evlib_uv.so"
-FILES:${PN}-evlib-ev += "${libdir}/libwebsockets-evlib_ev.so"
-FILES:${PN}-evlib-sd += "${libdir}/libwebsockets-evlib_sd.so"
-
-RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libevent', '${PN}-evlib-event', '', d)}"
-RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libuv', '${PN}-evlib-uv', '', d)}"
-RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libev', '${PN}-evlib-ev', '', d)}"
-RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'systemd', '${PN}-evlib-sd', '', d)}"
-
-RDEPENDS:${PN}-dev += " ${@bb.utils.contains('PACKAGECONFIG', 'static', '${PN}-staticdev', '', d)}"
-
-# Avoid absolute paths to end up in the sysroot.
-SSTATE_SCAN_FILES += "*.cmake"
diff --git a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.3.bb b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.3.bb
new file mode 100644
index 0000000000..4518e2faaa
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.3.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Canonical libwebsockets.org websocket library"
+HOMEPAGE = "https://libwebsockets.org/"
+LICENSE = "MIT & Zlib & BSD-3-Clause & Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=382bfdf329e774859fd401eaf850d29b"
+
+DEPENDS = "zlib"
+DEPENDS:append:class-native = " libcap-native"
+
+S = "${WORKDIR}/git"
+SRCREV = "4415e84c095857629863804e941b9e1c2e9347ef"
+SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v4.3-stable"
+
+UPSTREAM_CHECK_URI = "https://github.com/warmcat/${BPN}/releases"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG ?= "libuv client server http2 ssl ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[client] = "-DLWS_WITHOUT_CLIENT=OFF,-DLWS_WITHOUT_CLIENT=ON,"
+PACKAGECONFIG[http2] = "-DLWS_WITH_HTTP2=ON,-DLWS_WITH_HTTP2=OFF,"
+PACKAGECONFIG[ipv6] = "-DLWS_IPV6=ON,-DLWS_IPV6=OFF,"
+PACKAGECONFIG[libevent] = "-DLWS_WITH_LIBEVENT=ON,-DLWS_WITH_LIBEVENT=OFF,libevent"
+PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev"
+PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv"
+PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON,"
+PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl"
+PACKAGECONFIG[static] = "-DLWS_WITH_STATIC=ON,-DLWS_WITH_STATIC=OFF -DLWS_LINK_TESTAPPS_DYNAMIC=ON,"
+PACKAGECONFIG[systemd] = "-DLWS_WITH_SDEVENT=ON,-DLWS_WITH_SDEVENT=OFF,systemd"
+
+python __anonymous() {
+ if bb.utils.contains('PACKAGECONFIG', 'systemd', True, False, d) and not bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d):
+ bb.fatal("PACKAGECONFIG contains systemd but DISTRO_FEATURES doesn't")
+}
+
+EXTRA_OECMAKE += " \
+ -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
+"
+
+do_install:append() {
+ sed -i -e 's|${STAGING_LIBDIR}/libcrypto.so|crypto|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
+ sed -i -e 's|${STAGING_LIBDIR}/libssl.so|ssl|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
+ sed -i -e 's|${STAGING_LIBDIR}/libuv.so|uv|g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake
+ sed -i -e 's|${STAGING_INCDIR}||g' ${D}${libdir}/cmake/libwebsockets/LibwebsocketsTargets.cmake \
+ ${D}${libdir}/cmake/libwebsockets/libwebsockets-config.cmake
+}
+
+PACKAGES =+ "${PN}-testapps ${PN}-evlib-event ${PN}-evlib-uv ${PN}-evlib-ev ${PN}-evlib-sd"
+
+FILES:${PN}-testapps += "${datadir}/libwebsockets-test-server/* ${bindir}/libwebsockets-test-*"
+FILES:${PN}-evlib-event += "${libdir}/libwebsockets-evlib_event.so"
+FILES:${PN}-evlib-uv += "${libdir}/libwebsockets-evlib_uv.so"
+FILES:${PN}-evlib-ev += "${libdir}/libwebsockets-evlib_ev.so"
+FILES:${PN}-evlib-sd += "${libdir}/libwebsockets-evlib_sd.so"
+
+RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libevent', '${PN}-evlib-event', '', d)}"
+RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libuv', '${PN}-evlib-uv', '', d)}"
+RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libev', '${PN}-evlib-ev', '', d)}"
+RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'systemd', '${PN}-evlib-sd', '', d)}"
+
+RDEPENDS:${PN}-dev += " ${@bb.utils.contains('PACKAGECONFIG', 'static', '${PN}-staticdev', '', d)}"
+
+# Avoid absolute paths to end up in the sysroot.
+SSTATE_SCAN_FILES += "*.cmake"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-include-string.h-for-strncpy.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-include-string.h-for-strncpy.patch
index 60f2079d37..b117dcf670 100644
--- a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-include-string.h-for-strncpy.patch
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-include-string.h-for-strncpy.patch
@@ -1,17 +1,16 @@
-From d49b4fb8063ecd89617587e5ea566cc9da9393ef Mon Sep 17 00:00:00 2001
+From 6120cee594c543d17ae015bc601012debcf57177 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 31 Aug 2022 19:09:18 -0700
+Date: Mon, 23 Oct 2023 10:43:42 +0100
Subject: [PATCH] include string.h for strncpy()
-Upstream-Status: Pending
-
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport [master: 6120cee594c543d17ae015bc601012debcf57177]
---
interface.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/interface.c b/interface.c
-index 65bdff0..5228db9 100644
+index 29229ad6f53d..9a83c36933e7 100644
--- a/interface.c
+++ b/interface.c
@@ -5,6 +5,7 @@
@@ -23,5 +22,5 @@ index 65bdff0..5228db9 100644
struct interface {
--
-2.37.3
+2.34.1
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0002-linuxptp-Use-CC-in-incdefs.sh.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0002-linuxptp-Use-CC-in-incdefs.sh.patch
new file mode 100644
index 0000000000..3cf3a63b94
--- /dev/null
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0002-linuxptp-Use-CC-in-incdefs.sh.patch
@@ -0,0 +1,48 @@
+From cffb4807ac0b9ff7aea2aa4f3842985b5363d184 Mon Sep 17 00:00:00 2001
+From: Luca Fancellu <luca.fancellu@arm.com>
+Date: Mon, 23 Oct 2023 10:43:43 +0100
+Subject: [PATCH] linuxptp: Use ${CC} in incdefs.sh
+
+The Makefile is defining CC and incdefs.sh is using
+${CROSS_COMPILE}cpp inside it, allowing both to use different
+compilers depending on what the user pass during make invocation
+as CC.
+
+Align them using ${CC} also inside incdefs.sh.
+
+Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
+Upstream-Status: Backport [master: cffb4807ac0b9ff7aea2aa4f3842985b5363d184]
+---
+ incdefs.sh | 2 +-
+ makefile | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/incdefs.sh b/incdefs.sh
+index a9e94f777f6b..391e63c7fac6 100755
+--- a/incdefs.sh
++++ b/incdefs.sh
+@@ -27,7 +27,7 @@ user_flags()
+ printf " -D_GNU_SOURCE"
+
+ # Get list of directories searched for header files.
+- dirs=$(echo "" | ${CROSS_COMPILE}cpp -Wp,-v 2>&1 >/dev/null | grep ^" /")
++ dirs=$(${CC} -E -Wp,-v -xc /dev/null 2>&1 >/dev/null | grep ^" /")
+
+ # Look for clock_adjtime().
+ for d in $dirs; do
+diff --git a/makefile b/makefile
+index 3e3b8b35fc96..7fc5f6fb8fa8 100644
+--- a/makefile
++++ b/makefile
+@@ -39,7 +39,7 @@ OBJECTS = $(OBJ) hwstamp_ctl.o nsm.o phc2sys.o phc_ctl.o pmc.o pmc_agent.o \
+ SRC = $(OBJECTS:.o=.c)
+ DEPEND = $(OBJECTS:.o=.d)
+ srcdir := $(dir $(lastword $(MAKEFILE_LIST)))
+-incdefs := $(shell $(srcdir)/incdefs.sh)
++incdefs := $(shell CC="$(CC)" $(srcdir)/incdefs.sh)
+ version := $(shell $(srcdir)/version.sh $(srcdir))
+ VPATH = $(srcdir)
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/Use-cross-cpp-in-incdefs.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/Use-cross-cpp-in-incdefs.patch
deleted file mode 100644
index 876088649e..0000000000
--- a/meta-oe/recipes-connectivity/linuxptp/linuxptp/Use-cross-cpp-in-incdefs.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 8a4cad5e2f2cbb6a34bdc6e877fe499502b8c4c8 Mon Sep 17 00:00:00 2001
-From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
-Date: Fri, 23 Dec 2016 18:12:29 +0100
-Subject: [PATCH] linuxptp: Use cross cpp in incdefs
-
-Use cross cpp incdefs.sh shell script since we are doing cross compiling
-we need to ensure we use correct setttings from toolchain
-
-Upstream-Status: Inappropriate [OE-Specific]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-
- makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/incdefs.sh
-+++ b/incdefs.sh
-@@ -27,7 +27,7 @@ user_flags()
- printf " -D_GNU_SOURCE"
-
- # Get list of directories searched for header files.
-- dirs=$(echo "" | ${CROSS_COMPILE}cpp -Wp,-v 2>&1 >/dev/null | grep ^" /")
-+ dirs=$(${CPP} -Wp,-v -xc /dev/null 2>&1 >/dev/null | grep ^" /")
-
- # Look for clock_adjtime().
- for d in $dirs; do
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch
deleted file mode 100644
index 55ce4c9a90..0000000000
--- a/meta-oe/recipes-connectivity/linuxptp/linuxptp/build-Allow-CC-and-prefix-to-be-overriden.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From af485c638c61fa883212ea424e676fbf90bee594 Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Tue, 1 Jul 2014 17:37:31 -0300
-Subject: [PATCH] build: Allow CC and prefix to be overriden
-
-Upstream-Status: Pending
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/makefile b/makefile
-index 22e7d0d..809cc8f 100644
---- a/makefile
-+++ b/makefile
-@@ -18,7 +18,7 @@
- KBUILD_OUTPUT =
-
- DEBUG =
--CC = $(CROSS_COMPILE)gcc
-+CC ?= $(CROSS_COMPILE)gcc
- VER = -DVER=$(version)
- CFLAGS = -Wall $(VER) $(incdefs) $(DEBUG) $(EXTRA_CFLAGS)
- LDLIBS = -lm -lrt -pthread $(EXTRA_LDFLAGS)
-@@ -43,7 +43,7 @@ incdefs := $(shell $(srcdir)/incdefs.sh)
- version := $(shell $(srcdir)/version.sh $(srcdir))
- VPATH = $(srcdir)
-
--prefix = /usr/local
-+prefix ?= /usr/local
- sbindir = $(prefix)/sbin
- mandir = $(prefix)/man
- man8dir = $(mandir)/man8
---
-1.7.10.4
-
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/phc2sys@.service.in b/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/phc2sys@.service.in
new file mode 100644
index 0000000000..f66dd2d010
--- /dev/null
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/phc2sys@.service.in
@@ -0,0 +1,13 @@
+[Unit]
+Description=Synchronize system clock or PTP hardware clock (PHC)
+Documentation=man:phc2sys
+Requires=ptp4l.service
+After=ptp4l.service
+Before=time-sync.target
+
+[Service]
+Type=simple
+ExecStart=@SBINDIR@/phc2sys -w -s %I
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/ptp4l@.service.in b/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/ptp4l@.service.in
new file mode 100644
index 0000000000..2502181412
--- /dev/null
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/systemd/ptp4l@.service.in
@@ -0,0 +1,11 @@
+[Unit]
+Description=Precision Time Protocol (PTP) service for %I
+Documentation=man:ptp4l
+After=sys-subsystem-net-devices-%i.device
+
+[Service]
+Type=simple
+ExecStart=@SBINDIR@/ptp4l -f @SYSCONFDIR@/linuxptp/ptp4l.conf -i %I
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.1.1.bb b/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.1.1.bb
deleted file mode 100644
index bb4871e14f..0000000000
--- a/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.1.1.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-DESCRIPTION = "Precision Time Protocol (PTP) according to IEEE standard 1588 for Linux"
-HOMEPAGE = "http://linuxptp.sourceforge.net/"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v3.1/linuxptp-${PV}.tgz \
- file://build-Allow-CC-and-prefix-to-be-overriden.patch \
- file://Use-cross-cpp-in-incdefs.patch \
- file://0001-include-string.h-for-strncpy.patch \
- "
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/linuxptp/files/"
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
-
-SRC_URI[sha256sum] = "94d6855f9b7f2d8e9b0ca6d384e3fae6226ce6fc012dbad02608bdef3be1c0d9"
-
-EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} EXTRA_CFLAGS='${CFLAGS}' mandir=${mandir}"
-
-export KBUILD_OUTPUT="${RECIPE_SYSROOT}"
-
-do_install() {
- oe_runmake install DESTDIR=${D} prefix=${prefix}
-
- # Install example configs from source tree
- install -d ${D}${docdir}/${PN}
- cp -R --no-dereference --preserve=mode,links ${S}/configs ${D}${docdir}/${PN}
-}
-
-PACKAGES =+ "${PN}-configs"
-
-FILES:${PN}-configs = "${docdir}"
-FILES:${PN}-doc = "${mandir}"
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp_4.1.bb b/meta-oe/recipes-connectivity/linuxptp/linuxptp_4.1.bb
new file mode 100644
index 0000000000..9a5c9b5204
--- /dev/null
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp_4.1.bb
@@ -0,0 +1,62 @@
+SUMMARY = "linuxptp package for linux"
+DESCRIPTION = "Precision Time Protocol (PTP) according to IEEE standard 1588 \
+for Linux"
+HOMEPAGE = "http://linuxptp.sourceforge.net/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+LINUXPTP_SRC_URI = "http://sourceforge.net/projects/linuxptp"
+
+SRC_URI = "${LINUXPTP_SRC_URI}/files/v4.1/linuxptp-${PV}.tgz \
+ file://0001-include-string.h-for-strncpy.patch \
+ file://0002-linuxptp-Use-CC-in-incdefs.sh.patch \
+ file://systemd/phc2sys@.service.in \
+ file://systemd/ptp4l@.service.in \
+ "
+
+SRC_URI[md5sum] = "1db8699fc155965341759be5e5aad938"
+SRC_URI[sha256sum] = "e1743d44f8208897e30895da3579e670ff919b914feb4b5a949f3e421ddde535"
+
+inherit systemd
+
+UPSTREAM_CHECK_URI = "${LINUXPTP_SRC_URI}/files/"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
+
+EXTRA_OEMAKE = "CC='${CC}' EXTRA_CFLAGS='${CFLAGS}' mandir='${mandir}' \
+ sbindir='${sbindir}'"
+
+export KBUILD_OUTPUT="${RECIPE_SYSROOT}"
+
+LINUXPTP_SYSTEMD_SERVICES = "phc2sys@.service ptp4l@.service"
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+
+ # Install example configs from source tree
+ install -d ${D}${docdir}/${PN}
+ cp -R --no-dereference --preserve=mode,links ${S}/configs \
+ ${D}${docdir}/${PN}
+
+ # Install default configuration files
+ install -d ${D}/${sysconfdir}/linuxptp/
+ install -m 644 ${S}/configs/default.cfg \
+ ${D}${sysconfdir}/linuxptp/ptp4l.conf
+
+ # Install systemd services
+ install -d ${D}/${systemd_unitdir}/system/
+ for service in ${LINUXPTP_SYSTEMD_SERVICES}; do
+ sed -i -e 's,@SBINDIR@,${sbindir},g' \
+ ${WORKDIR}/systemd/$service.in
+ sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ ${WORKDIR}/systemd/$service.in
+ install -m 644 ${WORKDIR}/systemd/$service.in \
+ ${D}/${systemd_unitdir}/system/$service
+ done
+}
+
+SYSTEMD_SERVICE:${PN} = "${LINUXPTP_SYSTEMD_SERVICES}"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
+
+PACKAGES =+ "${PN}-configs"
+
+FILES:${PN}-configs += "${docdir}"
diff --git a/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/04-use-pkg-config-for-gnutls.patch b/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/04-use-pkg-config-for-gnutls.patch
deleted file mode 100644
index 20f388e890..0000000000
--- a/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/04-use-pkg-config-for-gnutls.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Description: use pkg-config to detect gnutls
-Debian: http://bugs.debian.org/529835
-Origin: http://groups.google.com/group/loudmouth-dev/browse_thread/thread/3f78255837048daf#
-
---- a/configure.ac.orig 2009-08-16 20:29:36.000000000 +0200
-+++ b/configure.ac 2009-08-16 20:30:43.000000000 +0200
-@@ -146,10 +146,12 @@ AC_ARG_WITH(openssl-libs,
- enable_ssl=no
- if test "x$ac_ssl" = "xgnutls"; then
- dnl Look for GnuTLS
-- AM_PATH_LM_LIBGNUTLS($GNUTLS_REQUIRED, have_libgnutls=yes, have_libgnutls=no)
-- if test "x$have_libgnutls" = "xyes"; then
-- CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS"
-- LIBS="$LIBS $LIBGNUTLS_LIBS"
-+ PKG_CHECK_MODULES(GNUTLS, gnutls >= $GNUTLS_REQUIRED, have_gnutls=yes, have_gnutls=no)
-+ if test "x$have_gnutls" = "xyes"; then
-+ AC_SUBST(ASYNCNS_CFLAGS)
-+ AC_SUBST(ASYNCNS_LIBS)
-+ CFLAGS="$CFLAGS $GNUTLS_CFLAGS"
-+ LIBS="$LIBS $GNUTLS_LIBS"
- AC_DEFINE(HAVE_GNUTLS, 1, [whether to use GnuTSL support.])
- enable_ssl=GnuTLS
- else
diff --git a/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/glib-2.32.patch b/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/glib-2.32.patch
deleted file mode 100644
index b6c9422e8c..0000000000
--- a/meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/glib-2.32.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- loudmouth-1.4.3.orig/loudmouth/lm-error.c 2008-10-29 21:48:15.000000000 +0100
-+++ loudmouth-1.4.3/loudmouth/lm-error.c 2012-05-06 08:27:07.455739440 +0200
-@@ -19,7 +19,6 @@
- */
-
- #include <config.h>
--#include <glib/gerror.h>
- #include "lm-error.h"
-
- /**
diff --git a/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb b/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb
deleted file mode 100644
index 7b5eecf54d..0000000000
--- a/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "Loudmouth is a lightweight and easy-to-use C library for programming with the Jabber protocol."
-HOMEPAGE = "http://www.loudmouth-project.org/"
-
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c4f38aef94828f6b280e00d1173be689"
-
-DEPENDS = "glib-2.0 libcheck openssl libidn"
-
-inherit gnomebase gtk-doc
-
-PR = "r2"
-
-SRC_URI += "file://04-use-pkg-config-for-gnutls.patch \
- file://glib-2.32.patch"
-
-SRC_URI[archive.md5sum] = "55339ca42494690c3942ee1465a96937"
-SRC_URI[archive.sha256sum] = "95a93f5d009b71ea8193d994aa11f311bc330a3efe1b7cd74dc48f11c7f929e3"
-GNOME_COMPRESS_TYPE="bz2"
-
-EXTRA_OECONF = "--with-ssl=openssl"
-
diff --git a/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.5.4.bb b/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.5.4.bb
new file mode 100644
index 0000000000..f67c46b428
--- /dev/null
+++ b/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.5.4.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Loudmouth is a lightweight and easy-to-use C library for programming with the Jabber protocol."
+HOMEPAGE = "http://www.loudmouth-project.org/"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "glib-2.0 libcheck openssl libidn"
+
+GNOMEBASEBUILDCLASS = "autotools"
+
+inherit gnomebase gtk-doc
+
+SRC_URI = "https://github.com/mcabber/${BPN}/releases/download/${PV}/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "31cbc91c1fddcc5346b3373b8fb45594e9ea9cc7fe36d0595e8912c47ad94d0d"
+
+EXTRA_OECONF = "--with-ssl=openssl --with-compile-warnings=no"
diff --git a/meta-oe/recipes-connectivity/modemmanager/files/0001-core-switch-bash-shell-scripts-to-use-bin-sh-for-use.patch b/meta-oe/recipes-connectivity/modemmanager/files/0001-core-switch-bash-shell-scripts-to-use-bin-sh-for-use.patch
deleted file mode 100644
index 914760512a..0000000000
--- a/meta-oe/recipes-connectivity/modemmanager/files/0001-core-switch-bash-shell-scripts-to-use-bin-sh-for-use.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 35173fa04d0116ba30a86dc1a19f859f2be14a24 Mon Sep 17 00:00:00 2001
-From: "Bruce A. Johnson" <waterfordtrack@gmail.com>
-Date: Wed, 22 Dec 2021 14:24:02 -0500
-Subject: [PATCH] core: switch bash shell scripts to use /bin/sh for use
- w/Busybox.
-
-Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/483
-
-%% original patch: 0001-core-switch-bash-shell-scripts-to-use-bin-sh-for-use.patch
----
- data/dispatcher-fcc-unlock/105b | 2 +-
- data/dispatcher-fcc-unlock/1199 | 2 +-
- data/dispatcher-fcc-unlock/1eac | 2 +-
- test/mmcli-test-sms | 2 +-
- tools/tests/test-wrapper.sh.in | 2 +-
- 5 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/data/dispatcher-fcc-unlock/105b b/data/dispatcher-fcc-unlock/105b
-index 444bd51f..772c90f4 100644
---- a/data/dispatcher-fcc-unlock/105b
-+++ b/data/dispatcher-fcc-unlock/105b
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- # SPDX-License-Identifier: CC0-1.0
- # 2021 Aleksander Morgado <aleksander@aleksander.es>
-diff --git a/data/dispatcher-fcc-unlock/1199 b/data/dispatcher-fcc-unlock/1199
-index 83ab2c9e..6dbf8d1b 100644
---- a/data/dispatcher-fcc-unlock/1199
-+++ b/data/dispatcher-fcc-unlock/1199
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- # SPDX-License-Identifier: CC0-1.0
- # 2021 Aleksander Morgado <aleksander@aleksander.es>
-diff --git a/data/dispatcher-fcc-unlock/1eac b/data/dispatcher-fcc-unlock/1eac
-index 1a048dc8..44ce46d7 100644
---- a/data/dispatcher-fcc-unlock/1eac
-+++ b/data/dispatcher-fcc-unlock/1eac
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- # SPDX-License-Identifier: CC0-1.0
- # 2021 Aleksander Morgado <aleksander@aleksander.es>
-diff --git a/test/mmcli-test-sms b/test/mmcli-test-sms
-index 18e0a7b4..7136ee0d 100755
---- a/test/mmcli-test-sms
-+++ b/test/mmcli-test-sms
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- print_usage () {
- echo "usage: $0 [MODEM INDEX] [all|ucs2|gsm7|data] [NUMBER]"
-diff --git a/tools/tests/test-wrapper.sh.in b/tools/tests/test-wrapper.sh.in
-index d64ea4cb..fcdb56de 100644
---- a/tools/tests/test-wrapper.sh.in
-+++ b/tools/tests/test-wrapper.sh.in
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- # For debugging behavior of test-modemmanager-service.py, you can modify
- # this line to add --log-file option
---
-2.35.3
-
diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.18.12.bb b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.18.12.bb
deleted file mode 100644
index b06e3ebdab..0000000000
--- a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.18.12.bb
+++ /dev/null
@@ -1,61 +0,0 @@
-SUMMARY = "ModemManager is a daemon controlling broadband devices/connections"
-DESCRIPTION = "ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections"
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/ModemManager/"
-LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gettext systemd gobject-introspection bash-completion
-
-DEPENDS = "glib-2.0 libgudev libxslt-native dbus"
-
-SRCREV ?= "c234bd55c9d9618c1478b5e80aaf4b8f965be181"
-
-# Patch 0001 will be in ModemManager > 1.19
-SRC_URI = " \
- git://gitlab.freedesktop.org/mobile-broadband/ModemManager.git;protocol=https;branch=mm-1-18 \
- file://0001-core-switch-bash-shell-scripts-to-use-bin-sh-for-use.patch \
-"
-
-S = "${WORKDIR}/git"
-
-# strict, permissive
-MODEMMANAGER_POLKIT_TYPE ??= "permissive"
-
-PACKAGECONFIG ??= "vala mbim qmi \
- ${@bb.utils.filter('DISTRO_FEATURES', 'systemd polkit', d)} \
-"
-
-PACKAGECONFIG[at] = "-Dat_command_via_dbus=true"
-PACKAGECONFIG[systemd] = " \
- -Dsystemdsystemunitdir=${systemd_unitdir}/system/, \
- -Dsystemdsystemunitdir=no -Dsystemd_journal=false -Dsystemd_suspend_resume=false \
-"
-PACKAGECONFIG[polkit] = "-Dpolkit=${MODEMMANAGER_POLKIT_TYPE},-Dpolkit=no,polkit"
-# Support WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol.
-PACKAGECONFIG[mbim] = "-Dmbim=true,-Dmbim=false -Dplugin_dell=disabled -Dplugin_foxconn=disabled,libmbim"
-# Support WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol.
-PACKAGECONFIG[qmi] = "-Dqmi=true,-Dqmi=false,libqmi"
-PACKAGECONFIG[qrtr] = "-Dqrtr=true,-Dqrtr=false,libqrtr-glib"
-PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false"
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'vala', 'vala', '', d)}
-
-EXTRA_OEMESON = " \
- -Dudevdir=${nonarch_base_libdir}/udev \
- -Dqrtr=false \
-"
-
-FILES:${PN} += " \
- ${datadir}/icons \
- ${datadir}/polkit-1 \
- ${datadir}/dbus-1 \
- ${datadir}/ModemManager \
- ${libdir}/ModemManager \
- ${systemd_unitdir}/system \
-"
-
-SYSTEMD_SERVICE:${PN} = "ModemManager.service"
diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.22.0.bb b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.22.0.bb
new file mode 100644
index 0000000000..6b4336eb80
--- /dev/null
+++ b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.22.0.bb
@@ -0,0 +1,55 @@
+SUMMARY = "ModemManager is a daemon controlling broadband devices/connections"
+DESCRIPTION = "ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/ModemManager/"
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+"
+
+inherit gnomebase gettext systemd gobject-introspection bash-completion
+
+DEPENDS = "glib-2.0 libgudev libxslt-native dbus"
+
+SRCREV = "03f786ce66360d67c669f4f122f8aa458e6f01ea"
+SRC_URI = "git://gitlab.freedesktop.org/mobile-broadband/ModemManager.git;protocol=https;branch=mm-1-22"
+
+S = "${WORKDIR}/git"
+
+# strict, permissive
+MODEMMANAGER_POLKIT_TYPE ??= "permissive"
+
+PACKAGECONFIG ??= "vala mbim qmi \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd polkit', d)} \
+"
+
+PACKAGECONFIG[at] = "-Dat_command_via_dbus=true"
+PACKAGECONFIG[systemd] = " \
+ -Dsystemdsystemunitdir=${systemd_unitdir}/system/, \
+ -Dsystemdsystemunitdir=no -Dsystemd_journal=false -Dsystemd_suspend_resume=false \
+"
+PACKAGECONFIG[polkit] = "-Dpolkit=${MODEMMANAGER_POLKIT_TYPE},-Dpolkit=no,polkit"
+# Support WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol.
+PACKAGECONFIG[mbim] = "-Dmbim=true,-Dmbim=false -Dplugin_dell=disabled -Dplugin_foxconn=disabled,libmbim"
+# Support WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol.
+PACKAGECONFIG[qmi] = "-Dqmi=true,-Dqmi=false,libqmi"
+PACKAGECONFIG[qrtr] = "-Dqrtr=true,-Dqrtr=false,libqrtr-glib"
+PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false"
+
+inherit upstream-version-is-even ${@bb.utils.contains('PACKAGECONFIG', 'vala', 'vala', '', d)}
+
+EXTRA_OEMESON = " \
+ -Dudevdir=${nonarch_base_libdir}/udev \
+ -Dqrtr=false \
+"
+
+FILES:${PN} += " \
+ ${datadir}/icons \
+ ${datadir}/polkit-1 \
+ ${datadir}/dbus-1 \
+ ${datadir}/ModemManager \
+ ${libdir}/ModemManager \
+ ${systemd_unitdir}/system \
+"
+
+SYSTEMD_SERVICE:${PN} = "ModemManager.service"
diff --git a/meta-oe/recipes-connectivity/mosh/mosh/0001-Fix-building-with-libc.patch b/meta-oe/recipes-connectivity/mosh/mosh/0001-Fix-building-with-libc.patch
deleted file mode 100644
index 100ede17bd..0000000000
--- a/meta-oe/recipes-connectivity/mosh/mosh/0001-Fix-building-with-libc.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From efa9e49714b30d7d9128946a2504c93e10d109b5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 29 Jan 2019 12:20:03 -0800
-Subject: [PATCH] Fix building with libc++
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/network/network.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/network/network.cc b/src/network/network.cc
-index 26da603..e480853 100644
---- a/src/network/network.cc
-+++ b/src/network/network.cc
-@@ -335,7 +335,7 @@ bool Connection::try_bind( const char *addr, int port_low, int port_high )
- }
- }
-
-- if ( bind( sock(), &local_addr.sa, local_addr_len ) == 0 ) {
-+ if ( ::bind( sock(), &local_addr.sa, local_addr_len ) == 0 ) {
- set_MTU( local_addr.sa.sa_family );
- return true;
- } else if ( i == search_high ) { /* last port to search */
diff --git a/meta-oe/recipes-connectivity/mosh/mosh/0001-configure.ac-add-support-of-protobuf-4.22.x.patch b/meta-oe/recipes-connectivity/mosh/mosh/0001-configure.ac-add-support-of-protobuf-4.22.x.patch
new file mode 100644
index 0000000000..088124391c
--- /dev/null
+++ b/meta-oe/recipes-connectivity/mosh/mosh/0001-configure.ac-add-support-of-protobuf-4.22.x.patch
@@ -0,0 +1,63 @@
+From d9a1a6aac5a3b270449d09ec0d2a556807ab9287 Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Wed, 29 Mar 2023 13:53:44 +0800
+Subject: [PATCH] configure.ac: add support of protobuf 4.22.x
+
+the protobuf 4.22x is using c++14 as default, this caused the mosh cannot compile anymore and report following error:
+
+....
+/usr/include/google/protobuf/port_def.inc:200:15: error: static assertion failed: Protobuf only supports C++14 and newer.
+| 200 | static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and newer.");
+| | ^~~~~~~~~~~~~~~~~~~~~~
+....
+
+Upstream-Status: Pending [https://github.com/mobile-shell/mosh/pull/1266]
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ configure.ac | 8 ++++++++
+ src/frontend/Makefile.am | 2 +-
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index ee70c7b..5457009 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -26,6 +26,10 @@ m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
+ AS_IF([pkg-config --atleast-version 3.6.0 protobuf],
+ [AX_CXX_COMPILE_STDCXX([11])])
+
++# If current protobuf 4.22+ update the requires to C++14.
++AS_IF([pkg-config --atleast-version 4.22.0 protobuf],
++ [AX_CXX_COMPILE_STDCXX([14])])
++
+ WARNING_CXXFLAGS=""
+ PICKY_CXXFLAGS=""
+ DISTCHECK_CXXFLAGS=""
+@@ -311,6 +315,10 @@ AC_CHECK_FUNCS(m4_normalize([
+ pledge
+ ]))
+
++AS_IF([pkg-config --atleast-version 4.22.0 protobuf],
++ [PKG_CHECK_MODULES([ABSL_LOG_INTERNAL_CHECK_OP], [absl_log_internal_check_op],[],
++ [AC_MSG_ERROR([Missing abseil-cpp library.])])])
++
+ # Start by trying to find the needed tinfo parts by pkg-config
+ PKG_CHECK_MODULES([TINFO], [tinfo],
+ [AC_DEFINE([HAVE_CURSES_H], [1], [Define to 1 if <curses.h> is present])],
+diff --git a/src/frontend/Makefile.am b/src/frontend/Makefile.am
+index 1aa83fd..399ecd6 100644
+--- a/src/frontend/Makefile.am
++++ b/src/frontend/Makefile.am
+@@ -1,7 +1,7 @@
+ AM_CPPFLAGS = -I$(srcdir)/../statesync -I$(srcdir)/../terminal -I$(srcdir)/../network -I$(srcdir)/../crypto -I../protobufs -I$(srcdir)/../util $(TINFO_CFLAGS) $(protobuf_CFLAGS) $(CRYPTO_CFLAGS)
+ AM_CXXFLAGS = $(WARNING_CXXFLAGS) $(PICKY_CXXFLAGS) $(HARDEN_CFLAGS) $(MISC_CXXFLAGS) $(CODE_COVERAGE_CXXFLAGS)
+ AM_LDFLAGS = $(HARDEN_LDFLAGS) $(CODE_COVERAGE_LIBS)
+-LDADD = ../crypto/libmoshcrypto.a ../network/libmoshnetwork.a ../statesync/libmoshstatesync.a ../terminal/libmoshterminal.a ../util/libmoshutil.a ../protobufs/libmoshprotos.a -lm $(TINFO_LIBS) $(protobuf_LIBS) $(CRYPTO_LIBS)
++LDADD = ../crypto/libmoshcrypto.a ../network/libmoshnetwork.a ../statesync/libmoshstatesync.a ../terminal/libmoshterminal.a ../util/libmoshutil.a ../protobufs/libmoshprotos.a -lm $(TINFO_LIBS) $(protobuf_LIBS) $(CRYPTO_LIBS) $(ABSL_LOG_INTERNAL_CHECK_OP_LIBS)
+
+ mosh_server_LDADD = $(LDADD)
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-connectivity/mosh/mosh_1.3.2.bb b/meta-oe/recipes-connectivity/mosh/mosh_1.3.2.bb
deleted file mode 100644
index b4b5aa78a0..0000000000
--- a/meta-oe/recipes-connectivity/mosh/mosh_1.3.2.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-# NOTE: mosh-server requires a UTF-8 locale, but there's no way to add
-# an explicit dependency for this so you need to ensure this is in your
-# image yourself when you install mosh-server.
-
-SUMMARY = "Remote shell supporting roaming and high-latency connections"
-DESCRIPTION = "Remote terminal application that allows roaming, supports \
-intermittent connectivity, and provides intelligent local echo and line \
-editing of user keystrokes. Mosh is a replacement for SSH. It's more \
-robust and responsive, especially over Wi-Fi, cellular, and \
-long-distance links."
-HOMEPAGE = "http://mosh.mit.edu"
-LICENSE = "GPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = "protobuf-native protobuf ncurses zlib libio-pty-perl openssl libutempter"
-
-SRC_URI = "http://mosh.mit.edu/mosh-${PV}.tar.gz \
- file://0001-Fix-building-with-libc.patch \
- "
-SRC_URI[md5sum] = "5122f4d2b973ab7c38dcdac8c35cb61e"
-SRC_URI[sha256sum] = "da600573dfa827d88ce114e0fed30210689381bbdcff543c931e4d6a2e851216"
-
-inherit autotools pkgconfig
-
-PACKAGE_BEFORE_PN += "${PN}-server"
-FILES:${PN}-server = "${bindir}/mosh-server"
-
-NEEDED_PERL_MODULES = "\
- perl-module-socket \
- perl-module-getopt-long \
- perl-module-errno \
- perl-module-io-socket-inet \
- perl-module-posix \
-"
-
-# mosh uses SSH to authenticate and the client uses OpenSSH-specific features
-RDEPENDS:${PN} += "openssh-ssh ${NEEDED_PERL_MODULES}"
-# The server seemed not to work with dropbear either
-RDEPENDS:${PN}-server += "openssh-sshd"
-
-# Fails to build with thumb-1 (qemuarm)
-#| {standard input}: Assembler messages:
-#| {standard input}:2100: Error: instruction not supported in Thumb16 mode -- `adds r4,r4,r4'
-#| {standard input}:2101: Error: instruction not supported in Thumb16 mode -- `adcs r5,r5,r5'
-#| {standard input}:2102: Error: instruction not supported in Thumb16 mode -- `adcs r6,r6,r6'
-#| {standard input}:2103: Error: instruction not supported in Thumb16 mode -- `adcs r7,r7,r7'
-#| {standard input}:2104: Error: selected processor does not support Thumb mode `it cs'
-ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb b/meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb
new file mode 100644
index 0000000000..693ec12d3c
--- /dev/null
+++ b/meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb
@@ -0,0 +1,50 @@
+# NOTE: mosh-server requires a UTF-8 locale, but there's no way to add
+# an explicit dependency for this so you need to ensure this is in your
+# image yourself when you install mosh-server.
+
+SUMMARY = "Remote shell supporting roaming and high-latency connections"
+DESCRIPTION = "Remote terminal application that allows roaming, supports \
+intermittent connectivity, and provides intelligent local echo and line \
+editing of user keystrokes. Mosh is a replacement for SSH. It's more \
+robust and responsive, especially over Wi-Fi, cellular, and \
+long-distance links."
+HOMEPAGE = "http://mosh.mit.edu"
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "protobuf-native protobuf ncurses zlib libio-pty-perl openssl libutempter abseil-cpp"
+
+SRC_URI = "https://mosh.org/${BP}.tar.gz \
+ file://0001-configure.ac-add-support-of-protobuf-4.22.x.patch \
+ "
+
+SRC_URI[sha256sum] = "872e4b134e5df29c8933dff12350785054d2fd2839b5ae6b5587b14db1465ddd"
+
+inherit autotools pkgconfig
+
+PACKAGE_BEFORE_PN += "${PN}-server"
+FILES:${PN}-server = "${bindir}/mosh-server"
+
+NEEDED_PERL_MODULES = "\
+ perl-module-socket \
+ perl-module-getopt-long \
+ perl-module-errno \
+ perl-module-io-socket-inet \
+ perl-module-posix \
+"
+
+# mosh uses SSH to authenticate and the client uses OpenSSH-specific features
+RDEPENDS:${PN} += "openssh-ssh ${NEEDED_PERL_MODULES}"
+# The server seemed not to work with dropbear either
+RDEPENDS:${PN}-server += "openssh-sshd"
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:2100: Error: instruction not supported in Thumb16 mode -- `adds r4,r4,r4'
+#| {standard input}:2101: Error: instruction not supported in Thumb16 mode -- `adcs r5,r5,r5'
+#| {standard input}:2102: Error: instruction not supported in Thumb16 mode -- `adcs r6,r6,r6'
+#| {standard input}:2103: Error: instruction not supported in Thumb16 mode -- `adcs r7,r7,r7'
+#| {standard input}:2104: Error: selected processor does not support Thumb mode `it cs'
+ARM_INSTRUCTION_SET = "arm"
+
+CXXFLAGS:append = " -std=c++17"
diff --git a/meta-oe/recipes-connectivity/obex/obex-data-server/obex-data-server-0.4.6-build-fixes-1.patch b/meta-oe/recipes-connectivity/obex/obex-data-server/obex-data-server-0.4.6-build-fixes-1.patch
index e2c4e9ff6c..c18627b2fa 100644
--- a/meta-oe/recipes-connectivity/obex/obex-data-server/obex-data-server-0.4.6-build-fixes-1.patch
+++ b/meta-oe/recipes-connectivity/obex/obex-data-server/obex-data-server-0.4.6-build-fixes-1.patch
@@ -1,10 +1,11 @@
Submitted By: Armin K. <krejzi at email dot com>
Date: 2012-07-06
Initial Package Version: 0.4.6
-Upstream Status: Unknown
Origin: Self
Description: Some build fixes.
+Upstream-Status: Pending
+
Index: obex-data-server-0.4.6/src/ods-obex.c
===================================================================
--- obex-data-server-0.4.6.orig/src/ods-obex.c
diff --git a/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb b/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb
index b2a204403e..3e59af8e2e 100644
--- a/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb
+++ b/meta-oe/recipes-connectivity/obex/obex-data-server_0.4.6.bb
@@ -4,10 +4,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "gtk+ dbus-glib dbus-glib-native imagemagick openobex bluez5"
-SRC_URI = "http://tadas.dailyda.com/software/obex-data-server-${PV}.tar.gz \
+SRC_URI = "https://ftp.osuosl.org/pub/blfs/conglomeration/${BPN}/obex-data-server-${PV}.tar.gz \
file://obex-data-server-0.4.6-build-fixes-1.patch \
"
-SRC_URI[md5sum] = "961ca5db6fe9c97024e133cc6203cc4d"
SRC_URI[sha256sum] = "b399465ddbd6d0217abedd9411d9d74a820effa0a6a142adc448268d3920094f"
inherit features_check autotools-brokensep pkgconfig
diff --git a/meta-oe/recipes-connectivity/obexftp/obexftp/0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch b/meta-oe/recipes-connectivity/obexftp/obexftp/0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch
index 1f6de87c8d..7a19b6172f 100644
--- a/meta-oe/recipes-connectivity/obexftp/obexftp/0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch
+++ b/meta-oe/recipes-connectivity/obexftp/obexftp/0001-apps-CMakeLists.txt-Explicitly-link-libbfb-and-libmu.patch
@@ -9,6 +9,8 @@ they are required to be added to link line explicitly.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
apps/CMakeLists.txt | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch b/meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch
index 8b73af32e8..23e92885e8 100644
--- a/meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch
+++ b/meta-oe/recipes-connectivity/obexftp/obexftp/Remove_some_printf_in_obexftpd.patch
@@ -1,6 +1,6 @@
Signed-off-by: Jun Zhu <R01007@freescale.com>
-Upstream-Status: Not applicable
+Upstream-Status: Inappropriate [embedded specific]
diff -Nru obexftp-0.23/apps.orig/obexftpd.c obexftp-0.23/apps/obexftpd.c
--- obexftp-0.23/apps.orig/obexftpd.c 2013-11-08 10:42:20.816631583 +0800
diff --git a/meta-oe/recipes-connectivity/obexftp/obexftp/make_fuse_swig_optional.patch b/meta-oe/recipes-connectivity/obexftp/obexftp/make_fuse_swig_optional.patch
index 84b143bf51..25f2a7d9e7 100644
--- a/meta-oe/recipes-connectivity/obexftp/obexftp/make_fuse_swig_optional.patch
+++ b/meta-oe/recipes-connectivity/obexftp/obexftp/make_fuse_swig_optional.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: obexftp-0.24.2-Source/CMakeLists.txt
===================================================================
--- obexftp-0.24.2-Source.orig/CMakeLists.txt
diff --git a/meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch b/meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch
deleted file mode 100644
index a31bfaa749..0000000000
--- a/meta-oe/recipes-connectivity/paho-mqtt-c/files/makefile.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Disable building some things we don't need
-
-Upstream-Status: Inappropriate [config]
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
----
- Makefile | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 33bd2d0..84262bd 100644
---- a/Makefile
-+++ b/Makefile
-@@ -115,7 +115,8 @@ LDFLAGS_AS = -shared -Wl,-soname,lib${MQTTLIB_AS}.so.${MAJOR_VERSION} -lpthread
-
- all: build
-
--build: | mkdir ${MQTTLIB_C_TARGET} ${MQTTLIB_CS_TARGET} ${MQTTLIB_A_TARGET} ${MQTTLIB_AS_TARGET} ${MQTTVERSION_TARGET} ${SYNC_SAMPLES} ${ASYNC_SAMPLES} ${SYNC_TESTS} ${SYNC_SSL_TESTS} ${ASYNC_TESTS} ${ASYNC_SSL_TESTS}
-+build: | mkdir ${MQTTLIB_C_TARGET} ${MQTTLIB_CS_TARGET} ${MQTTLIB_A_TARGET} ${MQTTLIB_AS_TARGET}
-+#${MQTTVERSION_TARGET} ${SYNC_SAMPLES} ${ASYNC_SAMPLES} ${SYNC_TESTS} ${SYNC_SSL_TESTS} ${ASYNC_TESTS} ${ASYNC_SSL_TESTS}
-
- clean:
- rm -rf ${blddir}/*
---
diff --git a/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.10.bb b/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.10.bb
deleted file mode 100644
index 374922e146..0000000000
--- a/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.10.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Paho MQTT - C libraries for the MQTT and MQTT-SN protocols"
-DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)."
-HOMEPAGE = "http://www.eclipse.org/paho/"
-SECTION = "console/network"
-LICENSE = "EPL-2.0 | EDL-1.0"
-
-LIC_FILES_CHKSUM = " \
- file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \
- file://epl-v20;md5=d9fc0efef5228704e7f5b37f27192723 \
- file://notice.html;md5=943f861069889acecebf51dfa24478e2 \
- file://about.html;md5=e5662cbb5f8fd5c9faac526e4077898e \
-"
-
-SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=http;branch=master;protocol=https"
-
-SRCREV = "eff2da4875725509fc97641b118d6badf3e3a08f"
-
-DEPENDS = "openssl"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-do_configure:prepend() {
- sed -i s:\ lib/cmake:\ ${baselib}/cmake:g ${S}/src/CMakeLists.txt
-}
-
-do_install:append() {
- # paho-mqtt installes some thing that we don't want.
- rm -rf ${D}${prefix}/samples
- find ${D}${prefix} -maxdepth 1 -type f -delete
-}
-
-EXTRA_OECMAKE = "-DPAHO_WITH_SSL=ON"
diff --git a/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.13.bb b/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.13.bb
new file mode 100644
index 0000000000..6f229001f6
--- /dev/null
+++ b/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.13.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Paho MQTT - C libraries for the MQTT and MQTT-SN protocols"
+DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)."
+HOMEPAGE = "http://www.eclipse.org/paho/"
+SECTION = "console/network"
+LICENSE = "EPL-2.0 | EDL-1.0"
+
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=fd3b896dadaeec3410d753ffaeadcfac \
+ file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \
+ file://epl-v20;md5=d9fc0efef5228704e7f5b37f27192723 \
+"
+
+SRC_URI = "git://github.com/eclipse/paho.mqtt.c;protocol=https;branch=master"
+
+SRCREV = "07a875788d8cc6f5833b12581d6e3e349b34d719"
+
+DEPENDS = "openssl"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+do_configure:prepend() {
+ sed -i s:\ lib/cmake:\ ${baselib}/cmake:g ${S}/src/CMakeLists.txt
+}
+
+do_install:append() {
+ # paho-mqtt installes some thing that we don't want.
+ rm -rf ${D}${prefix}/samples
+ find ${D}${prefix} -maxdepth 1 -type f -delete
+}
+
+EXTRA_OECMAKE = "-DPAHO_WITH_SSL=ON -DPAHO_ENABLE_TESTING=OFF -DPAHO_HIGH_PERFORMANCE=ON"
diff --git a/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch b/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch
index 7cf9a8b121..fba9a8767f 100644
--- a/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch
+++ b/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch
@@ -7,6 +7,8 @@ This ensures the install paths are not hardcoded.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+---
cmake/CMakeLists.txt | 4 ++--
src/samples/CMakeLists.txt | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
@@ -31,19 +33,27 @@ index a9f8908..7eadc60 100644
- DESTINATION lib/cmake/${package_name})
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${package_name})
diff --git a/src/samples/CMakeLists.txt b/src/samples/CMakeLists.txt
-index 953f5dc..d26729a 100644
+index 3ca0a75..c915cd5 100644
--- a/src/samples/CMakeLists.txt
+++ b/src/samples/CMakeLists.txt
-@@ -103,7 +103,7 @@ endif()
+@@ -71,7 +71,7 @@ endforeach()
## install binaries
- install(TARGETS ${INSTALL_TARGETS} EXPORT PahoMqttCppSamples
-- RUNTIME DESTINATION bin
-- LIBRARY DESTINATION lib
-+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ install(TARGETS ${EXECUTABLES} EXPORT PahoMqttCppSamples
+- RUNTIME DESTINATION bin
++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
+ ## Build the SSL/TLS samples, if selected
+@@ -89,7 +89,7 @@ if(PAHO_WITH_SSL)
+ endforeach()
+
+ install(TARGETS ${SSL_EXECUTABLES} EXPORT PahoMqttCppSamples
+- RUNTIME DESTINATION bin
++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ )
+ endif()
+
--
-2.35.1
+2.34.1
diff --git a/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.2.0.bb b/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.2.0.bb
deleted file mode 100644
index a9e16fa045..0000000000
--- a/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.2.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Paho MQTT - C++ libraries for the MQTT and MQTT-SN protocols"
-DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)."
-HOMEPAGE = "http://www.eclipse.org/paho/"
-SECTION = "console/network"
-LICENSE = "EPL-1.0 | EDL-1.0"
-
-LIC_FILES_CHKSUM = " \
- file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \
- file://epl-v10;md5=659c8e92a40b6df1d9e3dccf5ae45a08 \
- file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \
- file://about.html;md5=dcde438d73cf42393da9d40fabc0c9bc \
-"
-
-SRC_URI = "git://github.com/eclipse/paho.mqtt.cpp;protocol=http;branch=master;protocol=https \
- file://0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch \
-"
-SRCREV = "33921c8b68b351828650c36816e7ecf936764379"
-
-DEPENDS = "openssl paho-mqtt-c"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE += "-DPAHO_WITH_SSL=ON"
diff --git a/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.3.2.bb b/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.3.2.bb
new file mode 100644
index 0000000000..1b2e51c3ac
--- /dev/null
+++ b/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.3.2.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Paho MQTT - C++ libraries for the MQTT and MQTT-SN protocols"
+DESCRIPTION = "Client implementation of open and standard messaging protocols for Machine-to-Machine (M2M) and Internet of Things (IoT)."
+HOMEPAGE = "http://www.eclipse.org/paho/"
+SECTION = "console/network"
+LICENSE = "EPL-2.0 | EDL-1.0"
+
+LIC_FILES_CHKSUM = " \
+ file://src/mqtt/message.h;beginline=9;endline=18;md5=c5ceecf5ab99d44dcfaaabdce289071b \
+ file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \
+ file://epl-v20;md5=d9fc0efef5228704e7f5b37f27192723 \
+"
+
+SRC_URI = "git://github.com/eclipse/paho.mqtt.cpp;protocol=https;branch=v1.3.x \
+ file://0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch \
+ "
+SRCREV = "5e0d1bf37b4826d680ec066ec42afd133851a681"
+
+DEPENDS = "openssl paho-mqtt-c"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DPAHO_WITH_SSL=ON"
diff --git a/meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus_23.09.bb b/meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus_23.09.bb
new file mode 100644
index 0000000000..39c6942c83
--- /dev/null
+++ b/meta-oe/recipes-connectivity/pcapplusplus/pcapplusplus_23.09.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A multiplatform C++ library for capturing, parsing and crafting of network packets"
+HOMEPAGE = "https://pcapplusplus.github.io/"
+BUGTRACKER = "https://github.com/seladb/PcapPlusPlus/issues"
+SECTION = "libs/network"
+LICENSE = "Unlicense"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=911690f51af322440237a253d695d19f"
+
+DEPENDS = "libpcap"
+
+SRC_URI = "git://github.com/seladb/PcapPlusPlus.git;protocol=https;branch=master"
+SRCREV = "4cf8ed44f9dd145f874dc1dd747dfefcfcab75be"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[examples] = "-DPCAPPP_BUILD_EXAMPLES=ON,-DPCAPPP_BUILD_EXAMPLES=OFF"
+PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF"
+PACKAGECONFIG[tests] = "-DPCAPPP_BUILD_TESTS=ON,-DPCAPPP_BUILD_TESTS=OFF"
+PACKAGECONFIG[zstd] = "-DLIGHT_PCAPNG_ZSTD=ON,-DLIGHT_PCAPNG_ZSTD=OFF,zstd"
diff --git a/meta-oe/recipes-connectivity/rabbitmq-c/files/CVE-2023-35789.patch b/meta-oe/recipes-connectivity/rabbitmq-c/files/CVE-2023-35789.patch
new file mode 100644
index 0000000000..dfd1f98759
--- /dev/null
+++ b/meta-oe/recipes-connectivity/rabbitmq-c/files/CVE-2023-35789.patch
@@ -0,0 +1,131 @@
+CVE: CVE-2023-35789
+Upstream-Status: Backport [ https://github.com/alanxz/rabbitmq-c/commit/463054383fbeef889b409a7f843df5365288e2a0 ]
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+
+From 463054383fbeef889b409a7f843df5365288e2a0 Mon Sep 17 00:00:00 2001
+From: Christian Kastner <ckk@kvr.at>
+Date: Tue, 13 Jun 2023 14:21:52 +0200
+Subject: [PATCH] Add option to read username/password from file (#781)
+
+* Add option to read username/password from file
+---
+ tools/common.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 66 insertions(+)
+
+diff --git a/tools/common.c b/tools/common.c
+index 73b47e25..7efe557b 100644
+--- a/tools/common.c
++++ b/tools/common.c
+@@ -18,6 +18,11 @@
+ #include "compat.h"
+ #endif
+
++/* For when reading auth data from a file */
++#define MAXAUTHTOKENLEN 128
++#define USERNAMEPREFIX "username:"
++#define PASSWORDPREFIX "password:"
++
+ void die(const char *fmt, ...) {
+ va_list ap;
+ va_start(ap, fmt);
+@@ -125,6 +130,7 @@ static char *amqp_vhost;
+ static char *amqp_username;
+ static char *amqp_password;
+ static int amqp_heartbeat = 0;
++static char *amqp_authfile;
+ #ifdef WITH_SSL
+ static int amqp_ssl = 0;
+ static char *amqp_cacert = "/etc/ssl/certs/cacert.pem";
+@@ -147,6 +153,8 @@ struct poptOption connect_options[] = {
+ "the password to login with", "password"},
+ {"heartbeat", 0, POPT_ARG_INT, &amqp_heartbeat, 0,
+ "heartbeat interval, set to 0 to disable", "heartbeat"},
++ {"authfile", 0, POPT_ARG_STRING, &amqp_authfile, 0,
++ "path to file containing username/password for authentication", "file"},
+ #ifdef WITH_SSL
+ {"ssl", 0, POPT_ARG_NONE, &amqp_ssl, 0, "connect over SSL/TLS", NULL},
+ {"cacert", 0, POPT_ARG_STRING, &amqp_cacert, 0,
+@@ -158,6 +166,50 @@ struct poptOption connect_options[] = {
+ #endif /* WITH_SSL */
+ {NULL, '\0', 0, NULL, 0, NULL, NULL}};
+
++void read_authfile(const char *path) {
++ size_t n;
++ FILE *fp = NULL;
++ char token[MAXAUTHTOKENLEN];
++
++ if ((amqp_username = malloc(MAXAUTHTOKENLEN)) == NULL ||
++ (amqp_password = malloc(MAXAUTHTOKENLEN)) == NULL) {
++ die("Out of memory");
++ } else if ((fp = fopen(path, "r")) == NULL) {
++ die("Could not read auth data file %s", path);
++ }
++
++ if (fgets(token, MAXAUTHTOKENLEN, fp) == NULL ||
++ strncmp(token, USERNAMEPREFIX, strlen(USERNAMEPREFIX))) {
++ die("Malformed auth file (missing username)");
++ }
++ strncpy(amqp_username, &token[strlen(USERNAMEPREFIX)], MAXAUTHTOKENLEN);
++ /* Missing newline means token was cut off */
++ n = strlen(amqp_username);
++ if (amqp_username[n - 1] != '\n') {
++ die("Username too long");
++ } else {
++ amqp_username[n - 1] = '\0';
++ }
++
++ if (fgets(token, MAXAUTHTOKENLEN, fp) == NULL ||
++ strncmp(token, PASSWORDPREFIX, strlen(PASSWORDPREFIX))) {
++ die("Malformed auth file (missing password)");
++ }
++ strncpy(amqp_password, &token[strlen(PASSWORDPREFIX)], MAXAUTHTOKENLEN);
++ /* Missing newline means token was cut off */
++ n = strlen(amqp_password);
++ if (amqp_password[n - 1] != '\n') {
++ die("Password too long");
++ } else {
++ amqp_password[n - 1] = '\0';
++ }
++
++ (void)fgetc(fp);
++ if (!feof(fp)) {
++ die("Malformed auth file (trailing data)");
++ }
++}
++
+ static void init_connection_info(struct amqp_connection_info *ci) {
+ ci->user = NULL;
+ ci->password = NULL;
+@@ -237,6 +289,8 @@ static void init_connection_info(struct amqp_connection_info *ci) {
+ if (amqp_username) {
+ if (amqp_url) {
+ die("--username and --url options cannot be used at the same time");
++ } else if (amqp_authfile) {
++ die("--username and --authfile options cannot be used at the same time");
+ }
+
+ ci->user = amqp_username;
+@@ -245,11 +299,23 @@ static void init_connection_info(struct amqp_connection_info *ci) {
+ if (amqp_password) {
+ if (amqp_url) {
+ die("--password and --url options cannot be used at the same time");
++ } else if (amqp_authfile) {
++ die("--password and --authfile options cannot be used at the same time");
+ }
+
+ ci->password = amqp_password;
+ }
+
++ if (amqp_authfile) {
++ if (amqp_url) {
++ die("--authfile and --url options cannot be used at the same time");
++ }
++
++ read_authfile(amqp_authfile);
++ ci->user = amqp_username;
++ ci->password = amqp_password;
++ }
++
+ if (amqp_vhost) {
+ if (amqp_url) {
+ die("--vhost and --url options cannot be used at the same time");
diff --git a/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.11.0.bb b/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.11.0.bb
deleted file mode 100644
index 304171c88c..0000000000
--- a/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.11.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "A C-language AMQP client library for use with v2.0+ of the RabbitMQ broker"
-HOMEPAGE = "https://github.com/alanxz/rabbitmq-c"
-LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=6b7424f9db80cfb11fdd5c980b583f53"
-LICENSE = "MIT"
-
-SRC_URI = "git://github.com/alanxz/rabbitmq-c.git;branch=master;protocol=https"
-# v0.11.0-master
-SRCREV = "a64c08c68aff34d49a2ac152f04988cd921084f9"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "popt openssl"
-
-EXTRA_OECMAKE = "-DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=ON -DBUILD_TOOLS_DOCS=OFF -DBUILD_API_DOCS=OFF"
-
-inherit cmake pkgconfig
-
-PACKAGE_BEFORE_PN += "${PN}-tools"
-FILES:${PN}-tools = "${bindir}"
diff --git a/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.13.0.bb b/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.13.0.bb
new file mode 100644
index 0000000000..ea80ec3344
--- /dev/null
+++ b/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.13.0.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "A C-language AMQP client library for use with v2.0+ of the RabbitMQ broker"
+HOMEPAGE = "https://github.com/alanxz/rabbitmq-c"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7e12f6e40e662e039e2f02b4893011ec"
+LICENSE = "MIT"
+
+SRC_URI = "git://github.com/alanxz/rabbitmq-c.git;branch=master;protocol=https \
+ file://CVE-2023-35789.patch \
+"
+# v0.13.0-master
+SRCREV = "974d71adceae6d742ae20a4c880d99c131f1460a"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "popt openssl"
+
+EXTRA_OECMAKE = "-DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=ON -DBUILD_TOOLS_DOCS=OFF -DBUILD_API_DOCS=OFF"
+
+inherit cmake pkgconfig
+
+PACKAGE_BEFORE_PN += "${PN}-tools"
+FILES:${PN}-tools = "${bindir}"
diff --git a/meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch b/meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch
index c6f60d0ede..89a7d6f34a 100644
--- a/meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch
+++ b/meta-oe/recipes-connectivity/rfkill/rfkill/0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] rfkill makefile: don't use -t, the OE install wrapper dislikes
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
+Upstream-Status: Pending
+
Makefile | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch b/meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch
index 2b83689127..020419ea8a 100644
--- a/meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch
+++ b/meta-oe/recipes-connectivity/rfkill/rfkill/dont.call.git.rev-parse.on.parent.dir.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
When WORKDIR is included in some other git checkout, version.sh calls git rev-parse
and it returns some description from that upper git checkout even when rfkill is
being built from release tarball.
diff --git a/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch b/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch
deleted file mode 100644
index 7d09f4382f..0000000000
--- a/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-Using AC_RUN_IFELSE prevent people from configuring package
- for cross-compiling. Don't run code while configuring package.
-
-Upstream-Status: Pending
-Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-
-Update for 0.9.8.
-Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
----
- scripts/checks.m4 | 34 ----------------------------------
- scripts/common.m4 | 28 ----------------------------
- 2 files changed, 62 deletions(-)
-
-diff --git a/scripts/checks.m4 b/scripts/checks.m4
-index 83be846..1af80f5 100644
---- a/scripts/checks.m4
-+++ b/scripts/checks.m4
-@@ -95,40 +95,6 @@ AC_DEFUN([TORRENT_CHECK_KQUEUE], [
-
- AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [
- AC_MSG_CHECKING(whether kqueue supports pipes and ptys)
--
-- AC_LINK_IFELSE([AC_LANG_SOURCE([
-- #include <fcntl.h>
-- #include <stdlib.h>
-- #include <unistd.h>
-- #include <sys/event.h>
-- #include <sys/time.h>
-- int main() {
-- struct kevent ev@<:@2@:>@, ev_out@<:@2@:>@;
-- struct timespec ts = { 0, 0 };
-- int pfd@<:@2@:>@, pty@<:@2@:>@, kfd, n;
-- char buffer@<:@9001@:>@;
-- if (pipe(pfd) == -1) return 1;
-- if (fcntl(pfd@<:@1@:>@, F_SETFL, O_NONBLOCK) == -1) return 2;
-- while ((n = write(pfd@<:@1@:>@, buffer, sizeof(buffer))) == sizeof(buffer));
-- if ((pty@<:@0@:>@=posix_openpt(O_RDWR | O_NOCTTY)) == -1) return 3;
-- if ((pty@<:@1@:>@=grantpt(pty@<:@0@:>@)) == -1) return 4;
-- EV_SET(ev+0, pfd@<:@1@:>@, EVFILT_WRITE, EV_ADD | EV_ENABLE, 0, 0, NULL);
-- EV_SET(ev+1, pty@<:@1@:>@, EVFILT_READ, EV_ADD | EV_ENABLE, 0, 0, NULL);
-- if ((kfd = kqueue()) == -1) return 5;
-- if ((n = kevent(kfd, ev, 2, NULL, 0, NULL)) == -1) return 6;
-- if (ev_out@<:@0@:>@.flags & EV_ERROR) return 7;
-- if (ev_out@<:@1@:>@.flags & EV_ERROR) return 8;
-- read(pfd@<:@0@:>@, buffer, sizeof(buffer));
-- if ((n = kevent(kfd, NULL, 0, ev_out, 2, &ts)) < 1) return 9;
-- return 0;
-- }
-- ])],
-- [
-- AC_MSG_RESULT(yes)
-- ], [
-- AC_DEFINE(KQUEUE_SOCKET_ONLY, 1, kqueue only supports sockets.)
-- AC_MSG_RESULT(no)
-- ])
- ])
-
- AC_DEFUN([TORRENT_WITH_KQUEUE], [
-diff --git a/scripts/common.m4 b/scripts/common.m4
-index aaf005e..42fb016 100644
---- a/scripts/common.m4
-+++ b/scripts/common.m4
-@@ -152,38 +152,10 @@ dnl Need to fix this so that it uses the stuff defined by the system.
-
- AC_DEFUN([TORRENT_CHECK_EXECINFO], [
- AC_MSG_CHECKING(for execinfo.h)
--
-- AC_COMPILE_IFELSE([AC_LANG_SOURCE([
-- #include <execinfo.h>
-- int main() { backtrace((void**)0, 0); backtrace_symbols((char**)0, 0); return 0;}
-- ])],
-- [
-- AC_MSG_RESULT(yes)
-- AC_DEFINE(USE_EXECINFO, 1, Use execinfo.h)
-- ], [
-- AC_MSG_RESULT(no)
-- ])
- ])
-
- AC_DEFUN([TORRENT_CHECK_ALIGNED], [
- AC_MSG_CHECKING(the byte alignment)
--
-- AC_LINK_IFELSE([AC_LANG_SOURCE([
-- #include <inttypes.h>
-- int main() {
-- char buf@<:@8@:>@ = { 0, 0, 0, 0, 1, 0, 0, 0 };
-- int i;
-- for (i = 1; i < 4; ++i)
-- if (*(uint32_t*)(buf + i) == 0) return -1;
-- return 0;
-- }
-- ])],
-- [
-- AC_MSG_RESULT(none needed)
-- ], [
-- AC_DEFINE(USE_ALIGNED, 1, Require byte alignment)
-- AC_MSG_RESULT(required)
-- ])
- ])
-
-
---
-2.7.4
-
diff --git a/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb b/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
index 7879324cc6..d9cca404d7 100644
--- a/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
+++ b/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
@@ -1,17 +1,14 @@
SUMMARY = "Torrent client"
HOMEPAGE = "http://libtorrent.rakshasa.no/"
-LICENSE = "GPL-2.0-only"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "libsigc++-2.0 curl cppunit libtorrent ncurses"
+DEPENDS = "autoconf-archive libsigc++-2.0 curl cppunit libtool libtorrent ncurses"
-SRC_URI = "git://github.com/rakshasa/rtorrent;branch=master;protocol=https \
- file://don-t-run-code-while-configuring-package.patch \
-"
-# v0.9.8
-SRCREV = "6154d1698756e0c4842b1c13a0e56db93f1aa947"
+SRC_URI = "git://github.com/rakshasa/rtorrent;branch=master;protocol=https"
+SRCREV = "d067bd802e44f0e6a747aabcc311ada2175fd550"
-PV = "0.9.8"
+PV = "0.9.8+git"
S = "${WORKDIR}/git"
@@ -21,6 +18,6 @@ PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
inherit autotools pkgconfig
-do_configure:prepend() {
- (cd ${S}; ./autogen.sh; cd -)
-}
+EXTRA_AUTORECONF += "--exclude=aclocal"
+
+CXXFLAGS += "-std=gnu++14"
diff --git a/meta-oe/recipes-connectivity/ser2net/files/ser2net.service b/meta-oe/recipes-connectivity/ser2net/files/ser2net.service
new file mode 100644
index 0000000000..13d8ee4ff3
--- /dev/null
+++ b/meta-oe/recipes-connectivity/ser2net/files/ser2net.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Serial port to network proxy
+Documentation=man:ser2net(8)
+After=network.target
+Wants=network.target
+ConditionFileNotEmpty=@SYSCONFDIR@/ser2net/ser2net.yaml
+
+[Service]
+Type=exec
+ExecStart=@SBINDIR@/ser2net -n
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.8.bb b/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.8.bb
deleted file mode 100644
index c8108d6024..0000000000
--- a/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.8.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "A serial to network proxy"
-SECTION = "console/network"
-HOMEPAGE = "http://sourceforge.net/projects/ser2net/"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f"
-
-DEPENDS = "gensio libyaml"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
-
-SRC_URI[sha256sum] = "e5620975523059a38709bb53c0567600adbbcb8011066a2d2fe1b4db9efe0ba3"
-
-UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/ser2net/files/ser2net"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-connectivity/ser2net/ser2net_4.6.1.bb b/meta-oe/recipes-connectivity/ser2net/ser2net_4.6.1.bb
new file mode 100644
index 0000000000..e5ebafa54f
--- /dev/null
+++ b/meta-oe/recipes-connectivity/ser2net/ser2net_4.6.1.bb
@@ -0,0 +1,30 @@
+SUMMARY = "A serial to network proxy"
+SECTION = "console/network"
+HOMEPAGE = "http://sourceforge.net/projects/ser2net/"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "gensio libyaml"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz \
+ file://ser2net.service \
+"
+
+SRC_URI[sha256sum] = "78ffee19d9b97e93ae65b5cec072da2b7b947fc484e9ccb3f535702f36f6ed19"
+
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/ser2net/files/ser2net"
+
+inherit autotools pkgconfig systemd
+
+SYSTEMD_SERVICE:${PN} = "ser2net.service"
+
+CONFFILES:${PN} += "${sysconfdir}/ser2net/ser2net.yaml"
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/ser2net.service ${D}${systemd_unitdir}/system/
+ sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/ser2net.service
+ fi
+}
diff --git a/meta-oe/recipes-connectivity/smstools3/smstools3/scripts_no_bash.patch b/meta-oe/recipes-connectivity/smstools3/smstools3/scripts_no_bash.patch
index 49b4d1ddac..e287ae5e73 100644
--- a/meta-oe/recipes-connectivity/smstools3/smstools3/scripts_no_bash.patch
+++ b/meta-oe/recipes-connectivity/smstools3/smstools3/scripts_no_bash.patch
@@ -3,6 +3,8 @@ From: Bill Randle <bill.randle@gmail.com>
Date: Sun, 31 Dec 2017 09:08:23 -0800
---
+Upstream-Status: Pending
+
scripts/sendsms | 2 +-
scripts/sms2html | 2 +-
scripts/sms2unicode | 2 +-
diff --git a/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath.patch b/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath.patch
index e1d79d3327..db829744d3 100644
--- a/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath.patch
+++ b/meta-oe/recipes-connectivity/smstools3/smstools3/sms_binpath.patch
@@ -3,6 +3,8 @@ From: Kai Ulrich <kaiu@gmx.de>
Date: Wed, 18 Mar 2015 11:20:53 +0100
---
+Upstream-Status: Pending
+
scripts/sms3 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.1.bb b/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.1.bb
index 1891eae40d..e083039232 100644
--- a/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.1.bb
+++ b/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.1.bb
@@ -10,7 +10,7 @@ SRC_URI[sha256sum] = "9e0df1d8f857e0270cf0b32e2d1ca5a24aa7282873361785d573f72ad7
LIC_FILES_CHKSUM = "file://COPYING;md5=e413d83db6ee8f2c8e6055719096a48e"
-inherit autotools pkgconfig gettext gobject-introspection vala
+inherit autotools pkgconfig gettext gobject-introspection vala gtk-doc
# Respect GI_DATA_ENABLED value when enabling vala-bindings:
# configure: error: GObject-Introspection must be enabled for Vala bindings
diff --git a/meta-oe/recipes-connectivity/thrift/thrift/0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch b/meta-oe/recipes-connectivity/thrift/thrift/0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch
index e1e474ab0a..bbfc6c8069 100644
--- a/meta-oe/recipes-connectivity/thrift/thrift/0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch
+++ b/meta-oe/recipes-connectivity/thrift/thrift/0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch
@@ -12,7 +12,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/build/cmake/DefineInstallationPaths.cmake
+++ b/build/cmake/DefineInstallationPaths.cmake
-@@ -26,11 +26,11 @@
+@@ -26,11 +26,11 @@ else()
set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "The library install dir (default: lib${LIB_SUFFIX})")
endif()
set(INCLUDE_INSTALL_DIR "include" CACHE PATH "The library install dir (default: include)")
@@ -29,7 +29,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
set(cmakedir "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DIR}")
--- a/build/cmake/DefineCMakeDefaults.cmake
+++ b/build/cmake/DefineCMakeDefaults.cmake
-@@ -44,8 +44,8 @@
+@@ -44,8 +44,8 @@ include(BuildType)
# top of the build tree rather than in hard-to-find leaf
# directories. This simplifies manual testing and the use of the build
# tree rather than installed thrift libraries.
diff --git a/meta-oe/recipes-connectivity/thrift/thrift_0.17.0.bb b/meta-oe/recipes-connectivity/thrift/thrift_0.17.0.bb
deleted file mode 100644
index 24d07b8e52..0000000000
--- a/meta-oe/recipes-connectivity/thrift/thrift_0.17.0.bb
+++ /dev/null
@@ -1,66 +0,0 @@
-SUMMARY = "Apache Thrift"
-DESCRIPTION = "A software framework, for scalable cross-language services development"
-HOMEPAGE = "https://thrift.apache.org/"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c40a383cb3f747e0c7abbf1482f194f0 \
- file://NOTICE;md5=2659b43daca219f99a2f2626ea128f73"
-
-DEPENDS = "thrift-native boost flex-native bison-native openssl zlib"
-
-SRC_URI = "https://www-eu.apache.org/dist/thrift//${PV}/${BPN}-${PV}.tar.gz \
- file://0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch \
- "
-SRC_URI[sha256sum] = "b272c1788bb165d99521a2599b31b97fa69e5931d099015d91ae107a0b0cc58f"
-
-BBCLASSEXTEND = "native nativesdk"
-
-CVE_PRODUCT = "apache:thrift"
-
-inherit pkgconfig cmake python3native
-
-export STAGING_INCDIR
-export STAGING_LIBDIR
-export BUILD_SYS
-export HOST_SYS
-
-EXTRA_OECMAKE = " \
- -DBUILD_LIBRARIES=ON \
- -DBUILD_SHARED_LIBS=ON \
- -DBUILD_COMPILER=ON \
- -DBUILD_TESTING=OFF \
- -DBUILD_TUTORIALS=OFF \
- -DWITH_AS3=OFF \
- -DWITH_CPP=ON \
- -DWITH_JAVA=OFF \
- -DWITH_OPENSSL=ON \
- -DWITH_QT5=OFF \
- -DWITH_ZLIB=ON \
-"
-
-PACKAGECONFIG ??= "glib libevent"
-PACKAGECONFIG[glib] = "-DWITH_C_GLIB=ON,-DWITH_C_GLIB=OFF,glib-2.0"
-PACKAGECONFIG[libevent] = "-DWITH_LIBEVENT=ON,-DWITH_LIBEVENT=OFF,libevent"
-PACKAGECONFIG[javascript] = "-DWITH_JAVASCRIPT=ON,-DWITH_JAVASCRIPT=OFF,nodejs"
-PACKAGECONFIG[nodejs] = "-DWITH_NODEJS=ON,-DWITH_NODEJS=OFF,nodejs"
-PACKAGECONFIG[python] = "-DWITH_PYTHON=ON,-DWITH_PYTHON=OFF,python"
-
-do_install:append () {
- ln -sf thrift ${D}/${bindir}/thrift-compiler
-}
-
-LEAD_SONAME = "libthrift.so.${PV}"
-
-# thrift packages
-PACKAGE_BEFORE_PN = "${PN}-compiler lib${BPN} lib${BPN}z lib${BPN}nb lib${BPN}-c-glib"
-FILES:lib${BPN} = "${libdir}/libthrift.so.*"
-FILES:lib${BPN}z = "${libdir}/libthriftz.so.*"
-FILES:lib${BPN}nb = "${libdir}/libthriftnb.so.*"
-FILES:lib${BPN}-c-glib = "${libdir}/libthrift_c_glib.so.*"
-FILES:${PN}-compiler = "${bindir}/*"
-
-# The thrift packages just pulls in some default dependencies but is otherwise empty
-RRECOMMENDS:${PN} = "${PN}-compiler lib${BPN}"
-ALLOW_EMPTY:${PN} = "1"
-RRECOMMENDS:${PN}:class-native = ""
-RRECOMMENDS:${PN}:class-nativesdk = ""
diff --git a/meta-oe/recipes-connectivity/thrift/thrift_0.20.0.bb b/meta-oe/recipes-connectivity/thrift/thrift_0.20.0.bb
new file mode 100644
index 0000000000..23db052b9e
--- /dev/null
+++ b/meta-oe/recipes-connectivity/thrift/thrift_0.20.0.bb
@@ -0,0 +1,71 @@
+SUMMARY = "Apache Thrift"
+DESCRIPTION = "A software framework, for scalable cross-language services development"
+HOMEPAGE = "https://thrift.apache.org/"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c40a383cb3f747e0c7abbf1482f194f0 \
+ file://NOTICE;md5=2659b43daca219f99a2f2626ea128f73"
+
+DEPENDS = "thrift-native boost flex-native bison-native openssl zlib"
+
+SRC_URI = "https://downloads.apache.org/${BPN}/${PV}/${BP}.tar.gz \
+ file://0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch"
+SRC_URI[sha256sum] = "b5d8311a779470e1502c027f428a1db542f5c051c8e1280ccd2163fa935ff2d6"
+
+BBCLASSEXTEND = "native nativesdk"
+
+CVE_PRODUCT = "apache:thrift"
+
+inherit pkgconfig cmake python3native
+
+export STAGING_INCDIR
+export STAGING_LIBDIR
+export BUILD_SYS
+export HOST_SYS
+
+EXTRA_OECMAKE = " \
+ -DBUILD_LIBRARIES=ON \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_COMPILER=ON \
+ -DBUILD_TESTING=OFF \
+ -DBUILD_TUTORIALS=OFF \
+ -DWITH_AS3=OFF \
+ -DWITH_CPP=ON \
+ -DWITH_JAVA=OFF \
+ -DWITH_OPENSSL=ON \
+ -DWITH_QT5=OFF \
+ -DWITH_ZLIB=ON \
+ -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \
+ -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines' \
+"
+
+PACKAGECONFIG ??= "glib libevent"
+PACKAGECONFIG[glib] = "-DWITH_C_GLIB=ON,-DWITH_C_GLIB=OFF,glib-2.0"
+PACKAGECONFIG[libevent] = "-DWITH_LIBEVENT=ON,-DWITH_LIBEVENT=OFF,libevent"
+PACKAGECONFIG[javascript] = "-DWITH_JAVASCRIPT=ON,-DWITH_JAVASCRIPT=OFF,nodejs"
+PACKAGECONFIG[nodejs] = "-DWITH_NODEJS=ON,-DWITH_NODEJS=OFF,nodejs"
+PACKAGECONFIG[python] = "-DWITH_PYTHON=ON,-DWITH_PYTHON=OFF,python"
+
+do_install:append () {
+ ln -sf thrift ${D}/${bindir}/thrift-compiler
+ # remove absolute paths
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/thrift/thriftnbTargets.cmake
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/thrift/thrift_c_glibTargets.cmake
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/thrift/thrift_c_glib_zlibTargets.cmake
+}
+
+LEAD_SONAME = "libthrift.so.${PV}"
+
+# thrift packages
+PACKAGE_BEFORE_PN = "${PN}-compiler lib${BPN} lib${BPN}z lib${BPN}nb lib${BPN}-c-glib"
+FILES:lib${BPN} = "${libdir}/libthrift.so.*"
+FILES:lib${BPN}z = "${libdir}/libthriftz.so.*"
+FILES:lib${BPN}nb = "${libdir}/libthriftnb.so.*"
+FILES:lib${BPN}-c-glib = "${libdir}/libthrift_c_glib.so.*"
+FILES:${PN}-compiler = "${bindir}/*"
+
+# The thrift packages just pulls in some default dependencies but is otherwise empty
+RRECOMMENDS:${PN} = "${PN}-compiler lib${BPN}"
+ALLOW_EMPTY:${PN} = "1"
+RRECOMMENDS:${PN}:class-native = ""
+RRECOMMENDS:${PN}:class-nativesdk = ""
diff --git a/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_1.1.1.bb b/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_1.1.1.bb
deleted file mode 100644
index 3f4f846f9e..0000000000
--- a/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_1.1.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "This daemon is in charge of multiplexing connections over USB to an iPhone or iPod touch."
-HOMEPAGE = "https://github.com/libimobiledevice/usbmuxd"
-LICENSE = "GPL-3.0-only & GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=ebb5c50ab7cab4baeffba14977030c07 \
- file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = "udev libusb1 libplist"
-
-inherit autotools pkgconfig gitpkgv systemd
-
-PKGV = "${GITPKGVTAG}"
-
-SRCREV = "79c8b38d1488a6b07e1e68f39d8caec3f1a45622"
-SRC_URI = "git://github.com/libimobiledevice/usbmuxd;protocol=https;branch=master"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF += "--without-preflight"
-
-FILES:${PN} += "${base_libdir}/udev/rules.d/"
-
-SYSTEMD_SERVICE:${PN} = "usbmuxd.service"
diff --git a/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb b/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
index e9afaf5712..569d6a41cf 100644
--- a/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
+++ b/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
@@ -9,9 +9,9 @@ DEPENDS = "udev libusb1 libplist libimobiledevice-glue"
inherit autotools pkgconfig gitpkgv systemd
PKGV = "${GITPKGVTAG}"
-PV = "1.1.2+git${SRCPV}"
+PV = "1.1.2+git"
-SRCREV = "f50e52f3393a9149ac65fdda8f0d425109efc7fe"
+SRCREV = "01c94c77f59404924f1c46d99c4e5e0c7817281b"
SRC_URI = "git://github.com/libimobiledevice/usbmuxd;protocol=https;branch=master"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch b/meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch
index a51302a0cb..cfa46ff496 100644
--- a/meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch
+++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch
@@ -6,6 +6,8 @@ Subject: [PATCH 3/3] fix path to /usr/sbin for script and make script for
Signed-off-by: Ankit Navik <ankit.tarot@gmail.com>
---
+Upstream-Status: Pending
+
lib/wfa_cs.c | 4 ++--
scripts/dev_send_frame | 2 +-
scripts/sta_reset_parm | 2 +-
diff --git a/meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch b/meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch
index eec5a5d646..5f9cf8a31f 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch
+++ b/meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Remove warnings found by lintian
Last-Update: 2011-01-09
Index: wvdial-1.61/pon.wvdial.1
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Check-for-limits.h-during-configure.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Check-for-limits.h-during-configure.patch
index b092ba2fce..42f3e42757 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Check-for-limits.h-during-configure.patch
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Check-for-limits.h-during-configure.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 1/5] Check for limits.h during configure
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-build-fix-parallel-make.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-build-fix-parallel-make.patch
index 6bc34331d6..954c3d9fca 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-build-fix-parallel-make.patch
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-build-fix-parallel-make.patch
@@ -7,6 +7,8 @@ Imported from Gentoo
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 15 +++++++++++++--
wvrules-posix.mk | 7 +++++--
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch
index 59f70e380d..5b7135c3f3 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch
@@ -8,6 +8,8 @@ warning: "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
wvrules.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch
index f9304197ae..856c2460b4 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch
@@ -6,6 +6,8 @@ Subject: [PATCH 3/5] wvtask: Check for HAVE_LIBC_STACK_END only on glibc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
utils/wvtask.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0004-wvcrash-Replace-use-of-basename-API.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0004-wvcrash-Replace-use-of-basename-API.patch
index 6f3fbffbdf..f960c98622 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0004-wvcrash-Replace-use-of-basename-API.patch
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0004-wvcrash-Replace-use-of-basename-API.patch
@@ -7,6 +7,8 @@ musl does not have this API
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
utils/wvcrash.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0005-check-for-libexecinfo-during-configure.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0005-check-for-libexecinfo-during-configure.patch
index 25e9ee2369..508007c0ea 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0005-check-for-libexecinfo-during-configure.patch
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0005-check-for-libexecinfo-during-configure.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 5/5] check for libexecinfo during configure
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff b/meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff
index 5ab633bc3d..50f3f72cd4 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/04_signed_request.diff
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: wvstreams-4.6/crypto/wvx509.cc
===================================================================
--- wvstreams-4.6.orig/crypto/wvx509.cc 2009-07-29 11:58:16.000000000 -0400
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff b/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff
index 616843d4ae..6b31f2e10f 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: wvstreams-4.6.1/ipstreams/wvunixdgsocket.cc
===================================================================
--- wvstreams-4.6.1.orig/ipstreams/wvunixdgsocket.cc 2011-05-20 00:02:38.391136584 +0200
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff b/meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff
index a75067a108..7b05e468a9 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/06_gcc-4.7.diff
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Fix FTBFS with gcc-4.7
Small header include change. This is borderlinde cosmetic, but still needed
to prevent the FTBFS.
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff b/meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff
index ec99dcd36a..bd08d81c37 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/07_buildflags.diff
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: b/gen-cc
===================================================================
--- a/gen-cc
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/argp.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/argp.patch
index e857213637..ed6e8599e1 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/argp.patch
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/argp.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Check for argp_parse in libargp and then in libc before using internal version
Index: wvstreams-4.6.1/configure.ac
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/gcc-6.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/gcc-6.patch
index b084887ba7..899eeb9212 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/gcc-6.patch
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/gcc-6.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Fix compilation with gcc-6
Author: Gert Wollny <gw.fossdev@gmail.com>
Last-Updated: 2016-07-26
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch
index 1c7005c2fe..7e372d391d 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: wvstreams-4.6.1/crypto/wvx509.cc
===================================================================
--- wvstreams-4.6.1.orig/crypto/wvx509.cc
diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix_6.2.3.bb b/meta-oe/recipes-connectivity/zabbix/zabbix_6.2.3.bb
deleted file mode 100644
index 58d1f9ecc2..0000000000
--- a/meta-oe/recipes-connectivity/zabbix/zabbix_6.2.3.bb
+++ /dev/null
@@ -1,78 +0,0 @@
-SUMMARY = "Open-source monitoring solution for your IT infrastructure"
-DESCRIPTION = "\
-ZABBIX is software that monitors numerous parameters of a network and the \
-health and integrity of servers. ZABBIX uses a flexible notification \
-mechanism that allows users to configure e-mail based alerts for virtually \
-any event. This allows a fast reaction to server problems. ZABBIX offers \
-excellent reporting and data visualisation features based on the stored \
-data. This makes ZABBIX ideal for capacity planning. \
-\
-ZABBIX supports both polling and trapping. All ZABBIX reports and \
-statistics, as well as configuration parameters are accessed through a \
-web-based front end. A web-based front end ensures that the status of \
-your network and the health of your servers can be assessed from any \
-location. Properly configured, ZABBIX can play an important role in \
-monitoring IT infrastructure. This is equally true for small \
-organisations with a few servers and for large companies with a \
-multitude of servers."
-HOMEPAGE = "http://www.zabbix.com/"
-SECTION = "Applications/Internet"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=300e938ad303147fede2294ed78fe02e"
-DEPENDS = "libevent libpcre openldap virtual/libiconv zlib"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-SRC_URI = "https://cdn.zabbix.com/zabbix/sources/stable/6.2/${BPN}-${PV}.tar.gz \
- file://0001-Fix-configure.ac.patch \
- file://0001-initialize-msghdr-portably.patch \
- file://zabbix-agent.service \
-"
-SRC_URI[sha256sum] = "2be7e57fb33a55fee71480598e317ffa6a8ee5a39639a7e1b42b2ea6872107b5"
-
-inherit autotools-brokensep linux-kernel-base pkgconfig systemd useradd
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE:${PN} = "zabbix-agent.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM:${PN} = "-r zabbix"
-USERADD_PARAM:${PN} = "-r -g zabbix -d /var/lib/zabbix \
- -s /sbin/nologin -c \"Zabbix Monitoring System\" zabbix \
-"
-
-KERNEL_VERSION = "${@get_kernelversion_headers('${STAGING_KERNEL_DIR}')}"
-
-EXTRA_OECONF = " \
- --enable-dependency-tracking \
- --enable-agent \
- --enable-ipv6 \
- --with-net-snmp \
- --with-ldap=${STAGING_EXECPREFIXDIR} \
- --with-unixodbc \
- --with-ssh2 \
- --with-sqlite3 \
- --with-zlib \
- --with-libpthread \
- --with-libevent \
- --with-libpcre=${STAGING_EXECPREFIXDIR} \
- --with-iconv=${STAGING_EXECPREFIXDIR} \
-"
-CFLAGS:append = " -lldap -llber -pthread"
-
-do_configure:prepend() {
- export KERNEL_VERSION="${KERNEL_VERSION}"
-}
-
-do_install:append() {
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/zabbix-agent.service ${D}${systemd_unitdir}/system/
- sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/zabbix-agent.service
- fi
-}
-
-FILES:${PN} += "${libdir}"
-
-RDEPENDS:${PN} = "logrotate"
diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix_6.2.7.bb b/meta-oe/recipes-connectivity/zabbix/zabbix_6.2.7.bb
new file mode 100644
index 0000000000..8708852ce7
--- /dev/null
+++ b/meta-oe/recipes-connectivity/zabbix/zabbix_6.2.7.bb
@@ -0,0 +1,78 @@
+SUMMARY = "Open-source monitoring solution for your IT infrastructure"
+DESCRIPTION = "\
+ZABBIX is software that monitors numerous parameters of a network and the \
+health and integrity of servers. ZABBIX uses a flexible notification \
+mechanism that allows users to configure e-mail based alerts for virtually \
+any event. This allows a fast reaction to server problems. ZABBIX offers \
+excellent reporting and data visualisation features based on the stored \
+data. This makes ZABBIX ideal for capacity planning. \
+\
+ZABBIX supports both polling and trapping. All ZABBIX reports and \
+statistics, as well as configuration parameters are accessed through a \
+web-based front end. A web-based front end ensures that the status of \
+your network and the health of your servers can be assessed from any \
+location. Properly configured, ZABBIX can play an important role in \
+monitoring IT infrastructure. This is equally true for small \
+organisations with a few servers and for large companies with a \
+multitude of servers."
+HOMEPAGE = "http://www.zabbix.com/"
+SECTION = "Applications/Internet"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=300e938ad303147fede2294ed78fe02e"
+DEPENDS = "libevent libpcre openldap virtual/libiconv zlib"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRC_URI = "https://cdn.zabbix.com/zabbix/sources/stable/6.2/${BPN}-${PV}.tar.gz \
+ file://0001-Fix-configure.ac.patch \
+ file://0001-initialize-msghdr-portably.patch \
+ file://zabbix-agent.service \
+"
+SRC_URI[sha256sum] = "6d423810667b948ed22052d9aa84a035e2d4b92cbe8efdb669cac529806b722d"
+
+inherit autotools-brokensep linux-kernel-base pkgconfig systemd useradd
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "zabbix-agent.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "-r zabbix"
+USERADD_PARAM:${PN} = "-r -g zabbix -d /var/lib/zabbix \
+ -s /sbin/nologin -c \"Zabbix Monitoring System\" zabbix \
+"
+
+KERNEL_VERSION = "${@get_kernelversion_headers('${STAGING_KERNEL_DIR}')}"
+
+EXTRA_OECONF = " \
+ --enable-dependency-tracking \
+ --enable-agent \
+ --enable-ipv6 \
+ --with-net-snmp \
+ --with-ldap=${STAGING_EXECPREFIXDIR} \
+ --with-unixodbc \
+ --with-ssh2 \
+ --with-sqlite3 \
+ --with-zlib \
+ --with-libpthread \
+ --with-libevent \
+ --with-libpcre=${STAGING_EXECPREFIXDIR} \
+ --with-iconv=${STAGING_EXECPREFIXDIR} \
+"
+CFLAGS:append = " -lldap -llber -pthread"
+
+do_configure:prepend() {
+ export KERNEL_VERSION="${KERNEL_VERSION}"
+}
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/zabbix-agent.service ${D}${systemd_unitdir}/system/
+ sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/zabbix-agent.service
+ fi
+}
+
+FILES:${PN} += "${libdir}"
+
+RDEPENDS:${PN} = "logrotate"
diff --git a/meta-oe/recipes-connectivity/zeromq/cppzmq_4.10.0.bb b/meta-oe/recipes-connectivity/zeromq/cppzmq_4.10.0.bb
new file mode 100644
index 0000000000..dcea339dfd
--- /dev/null
+++ b/meta-oe/recipes-connectivity/zeromq/cppzmq_4.10.0.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "C++ bindings for ZeroMQ"
+HOMEPAGE = "http://www.zeromq.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=db174eaf7b55a34a7c89551197f66e94"
+DEPENDS = "zeromq"
+
+SRCREV = "c94c20743ed7d4aa37835a5c46567ab0790d4acc"
+
+SRC_URI = "git://github.com/zeromq/cppzmq.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DCPPZMQ_BUILD_TESTS=OFF"
+
+PACKAGES = "${PN}-dev"
+
+RDEPENDS:${PN}-dev = "zeromq-dev zeromq-staticdev"
+DEV_PKG_DEPENDENCY = ""
diff --git a/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb b/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
deleted file mode 100644
index 7189115092..0000000000
--- a/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "C++ bindings for ZeroMQ"
-HOMEPAGE = "http://www.zeromq.org"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=db174eaf7b55a34a7c89551197f66e94"
-DEPENDS = "zeromq"
-
-SRCREV = "dd663fafd830466d34cba278c2cfd0f92eb67614"
-PV = "4.8.1"
-
-SRC_URI = "git://github.com/zeromq/cppzmq.git;branch=master;protocol=https"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE = "-DCPPZMQ_BUILD_TESTS=OFF"
-
-PACKAGES = "${PN}-dev"
-
-RDEPENDS:${PN}-dev = "zeromq-dev"
-DEV_PKG_DEPENDENCY = ""
diff --git a/meta-oe/recipes-connectivity/zeromq/czmq_4.2.1.bb b/meta-oe/recipes-connectivity/zeromq/czmq_4.2.1.bb
index 86fde7ccfb..5ae72df862 100644
--- a/meta-oe/recipes-connectivity/zeromq/czmq_4.2.1.bb
+++ b/meta-oe/recipes-connectivity/zeromq/czmq_4.2.1.bb
@@ -15,9 +15,13 @@ inherit cmake pkgconfig
PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-staticdev ${PN} ${PN}-dbg"
+EXTRA_OECMAKE = " \
+ -DCMAKECONFIG_INSTALL_DIR:PATH=${@os.path.relpath(d.getVar('libdir'), d.getVar('prefix') + '/') + "/cmake/"} \
+"
+
FILES:${PN} = "${bindir}/*"
FILES:lib${BPN} = "${libdir}/*.so.*"
-FILES:lib${BPN}-dev = "${libdir}/*.so ${libdir}/pkgconfig ${includedir} ${datadir}/cmake"
+FILES:lib${BPN}-dev = "${libdir}/*.so ${libdir}/pkgconfig ${includedir} ${libdir}/cmake"
FILES:lib${BPN}-staticdev = "${libdir}/lib*.a"
RDEPENDS:lib${BPN}-dev = "zeromq-dev"
@@ -30,9 +34,8 @@ PACKAGECONFIG[nss] = "-DCZMQ_WITH_NSS=ON,-DCZMQ_WITH_NSS=OFF,nss"
PACKAGECONFIG[systemd] = "-DCZMQ_WITH_SYSTEMD=ON,-DCZMQ_WITH_SYSTEMD=OFF,systemd"
PACKAGECONFIG[uuid] = "-DCZMQ_WITH_UUID=ON,-DCZMQ_WITH_UUID=OFF,util-linux"
-BBCLASSEXTEND = "nativesdk"
-
do_install:append() {
mkdir -p ${D}/${includedir}/${BPN}
mv ${D}/${includedir}/sha1.h ${D}/${includedir}/${BPN}/.
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/czmqTargets.cmake
}
diff --git a/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.4.bb b/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.4.bb
deleted file mode 100644
index 697bc47137..0000000000
--- a/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.4.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-DESCRIPTION = "ZeroMQ looks like an embeddable networking library but acts like a concurrency framework"
-HOMEPAGE = "http://www.zeromq.org"
-LICENSE = "LGPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=d5311495d952062e0e4fbba39cbf3de1"
-
-PACKAGECONFIG ??= "libsodium"
-PACKAGECONFIG[libsodium] = "-DWITH_LIBSODIUM=ON,-DWITH_LIBSODIUM=OFF, libsodium"
-
-SRC_URI = "http://github.com/zeromq/libzmq/releases/download/v${PV}/zeromq-${PV}.tar.gz \
- file://0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch \
- file://run-ptest \
-"
-SRC_URI[md5sum] = "c897d4005a3f0b8276b00b7921412379"
-SRC_URI[sha256sum] = "c593001a89f5a85dd2ddf564805deb860e02471171b3f204944857336295c3e5"
-
-UPSTREAM_CHECK_URI = "https://github.com/${BPN}/libzmq/releases"
-
-inherit cmake ptest pkgconfig
-
-EXTRA_OECMAKE = "${@bb.utils.contains('PTEST_ENABLED', '1', '-DBUILD_TESTS=ON', '-DBUILD_TESTS=OFF', d)} \
- -DCMAKE_SKIP_RPATH=ON \
-"
-
-do_install_ptest () {
- install -d ${D}${PTEST_PATH}/tests
- install -m 0755 ${B}/bin/test_* ${D}${PTEST_PATH}/tests
-}
-
-FILES:${PN}-doc += "${datadir}/zmq/*.txt"
diff --git a/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.5.bb b/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.5.bb
new file mode 100644
index 0000000000..555458217a
--- /dev/null
+++ b/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.5.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "ZeroMQ looks like an embeddable networking library but acts like a concurrency framework"
+HOMEPAGE = "http://www.zeromq.org"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3"
+
+PACKAGECONFIG ??= "libsodium"
+PACKAGECONFIG[libsodium] = "-DWITH_LIBSODIUM=ON,-DWITH_LIBSODIUM=OFF, libsodium"
+
+SRC_URI = "http://github.com/zeromq/libzmq/releases/download/v${PV}/zeromq-${PV}.tar.gz \
+ file://0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch \
+ file://run-ptest \
+"
+SRC_URI[sha256sum] = "6653ef5910f17954861fe72332e68b03ca6e4d9c7160eb3a8de5a5a913bfab43"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/libzmq/releases"
+
+inherit cmake ptest pkgconfig
+
+EXTRA_OECMAKE = "${@bb.utils.contains('PTEST_ENABLED', '1', '-DBUILD_TESTS=ON', '-DBUILD_TESTS=OFF', d)} \
+ -DCMAKE_SKIP_RPATH=ON \
+"
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/tests
+ install -m 0755 ${B}/bin/test_* ${D}${PTEST_PATH}/tests
+}
+
+FILES:${PN}-doc += "${datadir}/zmq/*.txt"
diff --git a/meta-oe/recipes-core/basu/basu_0.2.1.bb b/meta-oe/recipes-core/basu/basu_0.2.1.bb
new file mode 100644
index 0000000000..1b4d5a0fe5
--- /dev/null
+++ b/meta-oe/recipes-core/basu/basu_0.2.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "The sd-bus library, extracted from systemd."
+HOMEPAGE = "https://sr.ht/~emersion/basu"
+SECTION = "base"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "git://git.sr.ht/~emersion/basu;protocol=https;branch=master"
+
+DEPENDS += "gperf-native"
+
+S = "${WORKDIR}/git"
+PV = "0.2.1+git"
+SRCREV = "a08cf5a575325435040d35710dbac3d0c32b1676"
+
+inherit meson pkgconfig
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[libcap] = "-Dlibcap=enabled,-Dlibcap=disabled,libcap"
+PACKAGECONFIG[audit] = "-Daudit=enabled,-Daudit=disabled,audit"
+
+EXTRA_OEMESON += "--buildtype release"
diff --git a/meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.1.0.bb b/meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.1.0.bb
deleted file mode 100644
index c8dabc5ead..0000000000
--- a/meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.1.0.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "D-Bus wrapper in C++ for dbus"
-HOMEPAGE = "https://dbus-cxx.github.io/"
-BUGTRACKER = "https://github.com/libsigcplusplus/libsigcplusplus/issues"
-SECTION = "base"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4cf0188f02184e1e84b9586ac53c3f83"
-
-SRC_URI = "git://github.com/dbus-cxx/dbus-cxx.git;branch=master;protocol=https \
- file://0001-Include-typeinfo-for-typeid.patch \
- file://0001-include-utility-header.patch \
-"
-SRC_URI:append:libc-musl = "file://fix_build_musl.patch"
-SRCREV = "73532d6a5faae9c721c2cc9535b8ef32d4d18264"
-
-DEPENDS = "\
- dbus \
- libsigc++-3 \
-"
-
-RDEPENDS:${PN} = "\
- dbus \
- libsigc++-3 \
-"
-
-S = "${WORKDIR}/git"
-
-inherit pkgconfig cmake
-
-OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
diff --git a/meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.5.1.bb b/meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.5.1.bb
new file mode 100644
index 0000000000..e89d1327e8
--- /dev/null
+++ b/meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.5.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "D-Bus wrapper in C++ for dbus"
+HOMEPAGE = "https://dbus-cxx.github.io/"
+BUGTRACKER = "https://github.com/libsigcplusplus/libsigcplusplus/issues"
+SECTION = "base"
+LICENSE = "LGPL-3.0-or-later | BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=24594f493407a4cd401ce9794e0b9308"
+
+SRC_URI = "git://github.com/dbus-cxx/dbus-cxx.git;branch=master;protocol=https"
+SRCREV = "732a5becb4349e02ffce407a3fd4d75cc3d82421"
+
+DEPENDS = "\
+ dbus \
+ libsigc++-3 \
+"
+
+RDEPENDS:${PN} = "\
+ dbus \
+ libsigc++-3 \
+"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig cmake
+
+OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
diff --git a/meta-oe/recipes-core/dbus-cxx/files/0001-Include-typeinfo-for-typeid.patch b/meta-oe/recipes-core/dbus-cxx/files/0001-Include-typeinfo-for-typeid.patch
deleted file mode 100644
index 9117877403..0000000000
--- a/meta-oe/recipes-core/dbus-cxx/files/0001-Include-typeinfo-for-typeid.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From e262b6e7cc6271d71405f10c4817b9b3b2b95f05 Mon Sep 17 00:00:00 2001
-From: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
-Date: Mon, 13 Dec 2021 02:00:48 +0100
-Subject: [PATCH] Include typeinfo for typeid()
-
-Otherwise fails with:
- error: must '#include <typeinfo>' before using 'typeid'
-
-Upstream-Status: Submitted
-[https://github.com/dbus-cxx/dbus-cxx/pull/83]
----
- dbus-cxx/demangle.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/dbus-cxx/demangle.h b/dbus-cxx/demangle.h
-index b71bcb9..9a4e99b 100644
---- a/dbus-cxx/demangle.h
-+++ b/dbus-cxx/demangle.h
-@@ -21,6 +21,7 @@
- #define DBUSCXX_DEMANGLE_H
-
- #include <string>
-+#include <typeinfo>
- #include <dbus-cxx/dbus-cxx-config.h>
-
- #if DBUS_CXX_HAS_CXXABI_H
---
-2.25.1
-
diff --git a/meta-oe/recipes-core/dbus-cxx/files/0001-include-utility-header.patch b/meta-oe/recipes-core/dbus-cxx/files/0001-include-utility-header.patch
deleted file mode 100644
index 0c8262af75..0000000000
--- a/meta-oe/recipes-core/dbus-cxx/files/0001-include-utility-header.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 63170cfcfbf483716ce2599e165db80713fc2706 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 12 Apr 2022 06:47:19 -0700
-Subject: [PATCH] include utility header
-
-Needed for exchange from std namespace
-
-Fixes
-dbus-cxx/variant.cpp:135:25: error: 'exchange' is not a member of 'std'
-
-Upstream-Status: Submitted [https://github.com/dbus-cxx/dbus-cxx/pull/98]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- dbus-cxx/variant.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/dbus-cxx/variant.cpp b/dbus-cxx/variant.cpp
-index bcf2684..97b622c 100644
---- a/dbus-cxx/variant.cpp
-+++ b/dbus-cxx/variant.cpp
-@@ -11,6 +11,7 @@
- #include <dbus-cxx/dbus-cxx-private.h>
- #include <dbus-cxx/signatureiterator.h>
- #include <stdint.h>
-+#include <utility>
- #include "enums.h"
- #include "path.h"
- #include "signature.h"
---
-2.35.1
-
diff --git a/meta-oe/recipes-core/dbus-cxx/files/fix_build_musl.patch b/meta-oe/recipes-core/dbus-cxx/files/fix_build_musl.patch
deleted file mode 100644
index e55d987e43..0000000000
--- a/meta-oe/recipes-core/dbus-cxx/files/fix_build_musl.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/dbus-cxx/sasl.cpp b/dbus-cxx/sasl.cpp
-index e8a6060..7a76af6 100644
---- a/dbus-cxx/sasl.cpp
-+++ b/dbus-cxx/sasl.cpp
-@@ -70,7 +70,7 @@ std::tuple<bool, bool, std::vector<uint8_t>> SASL::authenticate() {
- bool success = false;
- bool negotiatedFD = false;
- std::vector<uint8_t> serverGUID;
-- __uid_t uid = getuid();
-+ uid_t uid = getuid();
- std::string line;
- std::smatch regex_match;
diff --git a/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch b/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch
index 1c2fc3813f..ebcb9e7e24 100644
--- a/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch
+++ b/meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch
@@ -9,6 +9,8 @@ not be handled here
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
dbus-daemon-proxy.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb b/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
index d096cd618e..cbe82d42e7 100644
--- a/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
+++ b/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
@@ -3,8 +3,7 @@ LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://dbus-daemon-proxy.c;endline=19;md5=41df6d21fe1c97d6a1cc22a5bf374cba"
DEPENDS = "dbus dbus-glib"
SRCREV = "1226a0a1374628ff191f6d8a56000be5e53e7608"
-PV = "0.0.0+gitr${SRCPV}"
-PR = "r1.59"
+PV = "0.0.0+git"
SRC_URI = "git://github.com/alban/dbus-daemon-proxy;branch=master;protocol=https \
file://0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch \
diff --git a/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-pipe.c-Use-a-string-instead-of-char.patch b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-pipe.c-Use-a-string-instead-of-char.patch
index 6883f9a0b2..5710c867fa 100644
--- a/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-pipe.c-Use-a-string-instead-of-char.patch
+++ b/meta-oe/recipes-core/dbus/libdbus-c++-0.9.0/0001-pipe.c-Use-a-string-instead-of-char.patch
@@ -8,6 +8,8 @@ error: invalid conversion from 'char' to 'const void*' [-fpermissive]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/pipe.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-core/emlog/emlog.inc b/meta-oe/recipes-core/emlog/emlog.inc
index 824787083a..631e52f388 100644
--- a/meta-oe/recipes-core/emlog/emlog.inc
+++ b/meta-oe/recipes-core/emlog/emlog.inc
@@ -3,9 +3,9 @@ most recent (and only the most recent) output from a process"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-SRC_URI = "git://github.com/nicupavel/emlog.git;protocol=http;branch=master;protocol=https"
-SRCREV = "aee53e8dee862f35291242ba41b0ca88010f6c71"
-
+SRC_URI = "git://github.com/nicupavel/emlog.git;protocol=https;branch=master"
+SRCREV = "a9bbf324fde131ff4cf064e32674086c4ced4dca"
+PV = "0.70+git"
S = "${WORKDIR}/git"
EXTRA_OEMAKE += " \
diff --git a/meta-oe/recipes-core/emlog/emlog/Drop-use-of-error-h.patch b/meta-oe/recipes-core/emlog/emlog/Drop-use-of-error-h.patch
index 6bfc44cb85..4c5a191ac4 100644
--- a/meta-oe/recipes-core/emlog/emlog/Drop-use-of-error-h.patch
+++ b/meta-oe/recipes-core/emlog/emlog/Drop-use-of-error-h.patch
@@ -10,6 +10,8 @@ friendly it makes sense to avoid glibc-specific code.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
---
+Upstream-Status: Pending
+
mkemlog.c | 29 ++++++++++++++---------------
1 file changed, 14 insertions(+), 15 deletions(-)
diff --git a/meta-oe/recipes-core/emlog/emlog_git.bb b/meta-oe/recipes-core/emlog/emlog_git.bb
index 05fa0c334c..6331f618fc 100644
--- a/meta-oe/recipes-core/emlog/emlog_git.bb
+++ b/meta-oe/recipes-core/emlog/emlog_git.bb
@@ -25,13 +25,13 @@ do_install() {
RRECOMMENDS:${PN} += "kernel-module-emlog"
-# The NVD database doesn't have a CPE for this product,
-# the name of this product is exactly the same as github.com/emlog/emlog
-# but it's not related in any way. The following CVEs are from that project
-# so they can be safely ignored
-CVE_CHECK_IGNORE += "\
+CVE_STATUS_GROUPS += "CVE_STATUS_EMLOG"
+CVE_STATUS_EMLOG[status] = "fixed-version: The name of this product is exactly the same as github.com/emlog/emlog. CVE can be safely ignored."
+CVE_STATUS_EMLOG = " \
CVE-2019-16868 \
CVE-2019-17073 \
CVE-2021-44584 \
CVE-2022-1526 \
+ CVE-2022-3968 \
+ CVE-2023-43291 \
"
diff --git a/meta-oe/recipes-core/glfw/glfw_3.3.8.bb b/meta-oe/recipes-core/glfw/glfw_3.3.8.bb
new file mode 100644
index 0000000000..684355ef3e
--- /dev/null
+++ b/meta-oe/recipes-core/glfw/glfw_3.3.8.bb
@@ -0,0 +1,36 @@
+SUMMARY = "A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input"
+HOMEPAGE = "https://www.glfw.org/"
+DESCRIPTION = "GLFW is an Open Source, multi-platform library for OpenGL, \
+OpenGL ES and Vulkan application development. It provides a simple, \
+platform-independent API for creating windows, contexts and surfaces, reading \
+input, handling events, etc."
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=98d93d1ddc537f9b9ea6def64e046b5f"
+SECTION = "lib"
+
+inherit pkgconfig cmake features_check
+
+PV .= "+git"
+SRCREV = "7482de6071d21db77a7236155da44c172a7f6c9e"
+SRC_URI = "git://github.com/glfw/glfw.git;branch=3.3-stable;protocol=https"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON -DGLFW_BUILD_DOCS=OFF"
+
+CFLAGS += "-fPIC"
+
+DEPENDS = "libpng zlib"
+REQUIRED_DISTRO_FEATURES = "opengl x11"
+ANY_OF_DISTRO_FEATURES = "wayland x11"
+
+# upstream considers x11 and wayland backends mutually exclusive and will
+# prioritize wayland if it is enabled, but wayland has dependencies that cannot
+# be satisfied by this layer so it is disabled by default
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+
+PACKAGECONFIG[wayland] = "-DGLFW_USE_WAYLAND=ON,,wayland wayland-native wayland-protocols extra-cmake-modules libxkbcommon"
+PACKAGECONFIG[x11] = ",,libxrandr libxinerama libxi libxcursor libglu"
+
+COMPATIBLE_HOST:libc-musl = "null"
diff --git a/meta-oe/recipes-core/glfw/glfw_3.3.bb b/meta-oe/recipes-core/glfw/glfw_3.3.bb
deleted file mode 100644
index b31bba6b6b..0000000000
--- a/meta-oe/recipes-core/glfw/glfw_3.3.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input"
-HOMEPAGE = "https://www.glfw.org/"
-DESCRIPTION = "GLFW is an Open Source, multi-platform library for OpenGL, \
-OpenGL ES and Vulkan application development. It provides a simple, \
-platform-independent API for creating windows, contexts and surfaces, reading \
-input, handling events, etc."
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=98d93d1ddc537f9b9ea6def64e046b5f"
-SECTION = "lib"
-
-inherit pkgconfig cmake features_check
-
-PV .= "+git${SRCPV}"
-SRCREV = "781fbbadb0bccc749058177b1385c82da9ace880"
-SRC_URI = "git://github.com/glfw/glfw.git;branch=master;protocol=https"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON -DGLFW_BUILD_DOCS=OFF"
-
-CFLAGS += "-fPIC"
-
-DEPENDS = "libpng libglu zlib libxrandr libxinerama libxi libxcursor"
-REQUIRED_DISTRO_FEATURES = "x11 opengl"
-
-COMPATIBLE_HOST:libc-musl = "null"
diff --git a/meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.72.1.bb b/meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.72.1.bb
deleted file mode 100644
index f13cf9d50b..0000000000
--- a/meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.72.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "C++ bindings for the glib library"
-HOMEPAGE = "http://www.gtkmm.org/"
-SECTION = "libs"
-LICENSE = "LGPL-2.1-only & GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=42dfffebc56fec7527aac53b7a89d1d8 \
- file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "mm-common glib-2.0 libsigc++-3 glib-2.0-native"
-
-GNOMEBASEBUILDCLASS = "meson"
-GNOMEBN = "glibmm"
-inherit gnomebase
-
-SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-
-SRC_URI[archive.sha256sum] = "2a7649a28ab5dc53ac4dabb76c9f61599fbc628923ab6a7dd74bf675d9155cd8"
-
-S = "${WORKDIR}/${GNOMEBN}-${PV}"
-
-do_install:append() {
- for i in generate_wrap_init.pl gmmproc; do
- sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/glibmm-2.68/proc/$i
- done
-}
-
-FILES:${PN} = "${libdir}/lib*.so.*"
-FILES:${PN}-dev += "${datadir}/glibmm-* ${libdir}/${BPN}/include/ ${libdir}/${BPN}/proc/ ${libdir}/giomm-2.68/include/"
-
-RDEPENDS:${PN}-dev = "perl"
diff --git a/meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.78.0.bb b/meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.78.0.bb
new file mode 100644
index 0000000000..f40a8144d7
--- /dev/null
+++ b/meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.78.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "C++ bindings for the glib library"
+HOMEPAGE = "http://www.gtkmm.org/"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=42dfffebc56fec7527aac53b7a89d1d8 \
+ file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "mm-common glib-2.0 libsigc++-3 glib-2.0-native"
+
+GNOMEBN = "glibmm"
+inherit gnomebase
+
+SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
+
+SRC_URI[archive.sha256sum] = "5d2e872564996f02a06d8bbac3677e7c394af8b00dd1526aebd47af842a3ef50"
+
+S = "${WORKDIR}/${GNOMEBN}-${PV}"
+
+FILES:${PN} = "${libdir}/lib*.so.*"
+FILES:${PN}-dev += "${datadir}/glibmm-* ${libdir}/${BPN}/include/ ${libdir}/${BPN}/proc/ ${libdir}/giomm-2.68/include/"
+
+RDEPENDS:${PN}-dev = "perl"
+
+EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross -Dmaintainer-mode=false"
+
+do_write_config:append() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+m4 = '${bindir}/m4'
+perl = '${bindir}/perl'
+EOF
+}
diff --git a/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch b/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch
deleted file mode 100644
index 42f2520175..0000000000
--- a/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 52360260c0d73a00082d867bc416225fbc2b657e Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Tue, 12 Jul 2011 11:46:37 +0200
-Subject: [PATCH] glibmm: add 2.28.2
-
----
- Makefile.am | 7 +------
- configure.ac | 1 -
- 2 files changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 1b366b4..0ff58b5 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -23,12 +23,7 @@ src_subdirs = glib/src gio/src
- else
- src_subdirs =
- endif
--if ENABLE_DOCUMENTATION
--doc_subdirs = docs
--else
--doc_subdirs =
--endif
--SUBDIRS = tools $(src_subdirs) glib/glibmm gio/giomm tests examples $(doc_subdirs)
-+SUBDIRS = tools $(src_subdirs) glib/glibmm gio/giomm tests
-
- glibmm_includedir = $(includedir)/$(GLIBMM_MODULE_NAME)
- glibmm_include_HEADERS = glib/glibmm.h
-diff --git a/configure.ac b/configure.ac
-index e706687..198e0d0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -166,7 +166,6 @@ AC_CONFIG_FILES([Makefile
- gio/src/Makefile
- gio/giomm/Makefile
- tests/Makefile
-- examples/Makefile
- docs/Makefile
- docs/reference/Doxyfile
- MSVC_NMake/glibmm/glibmm.rc
diff --git a/meta-oe/recipes-core/glib-2.0/glibmm_2.66.2.bb b/meta-oe/recipes-core/glib-2.0/glibmm_2.66.2.bb
index f554a73fa6..c78dd55ca6 100644
--- a/meta-oe/recipes-core/glib-2.0/glibmm_2.66.2.bb
+++ b/meta-oe/recipes-core/glib-2.0/glibmm_2.66.2.bb
@@ -7,7 +7,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=42dfffebc56fec7527aac53b7a89d1d8 \
DEPENDS = "mm-common glib-2.0 libsigc++-2.0 glib-2.0-native"
-GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase
@@ -15,13 +14,17 @@ SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
SRC_URI[archive.sha256sum] = "b2a4cd7b9ae987794cbb5a1becc10cecb65182b9bb841868625d6bbb123edb1d"
-do_install:append() {
- for i in generate_wrap_init.pl gmmproc; do
- sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/glibmm-2.4/proc/$i
- done
-}
-
FILES:${PN} = "${libdir}/lib*.so.*"
FILES:${PN}-dev += "${datadir}/glibmm-* ${libdir}/glibmm-2.4/include/ ${libdir}/glibmm-2.4/proc/ ${libdir}/giomm-2.4/include/"
RDEPENDS:${PN}-dev = "perl"
+
+EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross -Dmaintainer-mode=false"
+
+do_write_config:append() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+m4 = '${bindir}/m4'
+perl = '${bindir}/perl'
+EOF
+}
diff --git a/meta-oe/recipes-core/images/meta-oe-image-all.bb b/meta-oe/recipes-core/images/meta-oe-image-all.bb
new file mode 100644
index 0000000000..1338adf29f
--- /dev/null
+++ b/meta-oe/recipes-core/images/meta-oe-image-all.bb
@@ -0,0 +1,5 @@
+require recipes-core/images/core-image-base.bb
+
+SUMMARY = "meta-oe build test image"
+
+IMAGE_INSTALL += "packagegroup-meta-oe"
diff --git a/meta-oe/recipes-core/images/meta-oe-image-base.bb b/meta-oe/recipes-core/images/meta-oe-image-base.bb
deleted file mode 100644
index df92f16705..0000000000
--- a/meta-oe/recipes-core/images/meta-oe-image-base.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-SUMMARY = "meta-oe build test image"
-
-IMAGE_INSTALL = "packagegroup-core-boot"
-
-LICENSE = "MIT"
-
-inherit core-image
diff --git a/meta-oe/recipes-core/images/meta-oe-image-ptest-all.bb b/meta-oe/recipes-core/images/meta-oe-image-ptest-all.bb
new file mode 100644
index 0000000000..da942e8bee
--- /dev/null
+++ b/meta-oe/recipes-core/images/meta-oe-image-ptest-all.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Recipe to trigger execution of all meta-oe ptest images."
+HOMEPAGE = "https://www.openembedded.org/"
+
+LICENSE = "MIT"
+
+inherit features_check nopackages
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-oe.inc
+
+# Include the full set of ptests
+PTESTS_META_OE = "${PTESTS_FAST_META_OE} ${PTESTS_SLOW_META_OE} ${PTESTS_PROBLEMS_META_OE}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-oe-image-ptest-'+x+':do_testimage' for x in d.getVar('PTESTS_META_OE').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-oe-image-ptest-'+x+':do_build' for x in d.getVar('PTESTS_META_OE').split()])}"
+
+# normally image.bbclass would do this
+EXCLUDE_FROM_WORLD = "1"
+
+python () {
+ if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
+ bb.build.addtask("do_testimage", "", "", d)
+}
diff --git a/meta-oe/recipes-core/images/meta-oe-image-ptest-fast.bb b/meta-oe/recipes-core/images/meta-oe-image-ptest-fast.bb
new file mode 100644
index 0000000000..46b48d65d6
--- /dev/null
+++ b/meta-oe/recipes-core/images/meta-oe-image-ptest-fast.bb
@@ -0,0 +1,6 @@
+require meta-oe-image-ptest-all.bb
+
+DESCRIPTION = "Recipe to trigger execution of all fast meta-oe ptest images."
+
+PTESTS_META_OE = "${PTESTS_FAST_META_OE}"
+
diff --git a/meta-oe/recipes-core/images/meta-oe-image-ptest.bb b/meta-oe/recipes-core/images/meta-oe-image-ptest.bb
new file mode 100644
index 0000000000..b32df0e221
--- /dev/null
+++ b/meta-oe/recipes-core/images/meta-oe-image-ptest.bb
@@ -0,0 +1,41 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require recipes-core/images/core-image-minimal.bb
+require conf/include/ptest-packagelists-meta-oe.inc
+
+SUMMARY = "meta-oe ptest test image"
+
+DESCRIPTION += "Also including the ${MCNAME} ptest package."
+HOMEPAGE = "https://www.openembedded.org/"
+
+PTESTS_META_OE = "${PTESTS_SLOW_META_OE} ${PTESTS_FAST_META_OE} ${PTESTS_PROBLEMS_META_OE}"
+
+IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
+
+BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_OE').split()])}"
+
+# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
+# box) and explicitly add up to 1500MB.
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "324288"
+# If a particular ptest needs more space, it can be customized:
+#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
+IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-poco = "1024288"
+
+# ptests need more memory than standard to avoid the OOM killer
+QB_MEM = "-m 1024"
+# If a particular ptest needs more memroy, it can be customized:
+#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
+
+TEST_SUITES = "ping ssh parselogs ptest"
+
+# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
+
+python () {
+ if not d.getVar("MCNAME"):
+ raise bb.parse.SkipRecipe("No class extension set")
+}
+
diff --git a/meta-oe/recipes-core/images/meta-oe-image.bb b/meta-oe/recipes-core/images/meta-oe-image.bb
deleted file mode 100644
index 1565549059..0000000000
--- a/meta-oe/recipes-core/images/meta-oe-image.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require meta-oe-image-base.bb
-
-SUMMARY = "meta-oe build test image"
-
-IMAGE_INSTALL += "packagegroup-meta-oe"
diff --git a/meta-oe/recipes-core/images/meta-oe-ptest-image.bb b/meta-oe/recipes-core/images/meta-oe-ptest-image.bb
deleted file mode 100644
index 0166b9c41d..0000000000
--- a/meta-oe/recipes-core/images/meta-oe-ptest-image.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require meta-oe-image-base.bb
-
-SUMMARY = "meta-oe ptest test image"
-
-IMAGE_INSTALL += "packagegroup-meta-oe"
diff --git a/meta-oe/recipes-core/libnfc/libnfc_git.bb b/meta-oe/recipes-core/libnfc/libnfc_git.bb
index 9733749628..a97a2841f7 100644
--- a/meta-oe/recipes-core/libnfc/libnfc_git.bb
+++ b/meta-oe/recipes-core/libnfc/libnfc_git.bb
@@ -7,7 +7,7 @@ SECTION = "libs"
inherit autotools pkgconfig
-PV = "1.8.0+git${SRCPV}"
+PV = "1.8.0+git"
S = "${WORKDIR}/git"
SRCREV = "f02ff51449240102c27a97173dc495e8e7789046"
diff --git a/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.7.bb b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.7.bb
deleted file mode 100644
index 84494b8ac4..0000000000
--- a/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.7.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "A library for loose coupling of C++ method calls"
-SECTION = "libs"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
-
-DEPENDS = "mm-common"
-
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.10/libsigc++-${PV}.tar.xz"
-SRC_URI[sha256sum] = "d082a2ce72c750f66b1a415abe3e852df2eae1e8af53010f4ac2ea261a478832"
-
-S = "${WORKDIR}/libsigc++-${PV}"
-
-inherit meson
-
-FILES:${PN}-dev += "${libdir}/sigc++-*/"
-FILES:${PN}-doc += "${datadir}/devhelp"
-
-BBCLASSEXTEND = "native"
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.12.1.bb b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.12.1.bb
new file mode 100644
index 0000000000..b2eb5dd094
--- /dev/null
+++ b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.12.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A library for loose coupling of C++ method calls"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
+
+DEPENDS = "mm-common"
+
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.12/libsigc++-${PV}.tar.xz"
+SRC_URI[sha256sum] = "a9dbee323351d109b7aee074a9cb89ca3e7bcf8ad8edef1851f4cf359bd50843"
+
+S = "${WORKDIR}/libsigc++-${PV}"
+
+inherit meson
+
+FILES:${PN}-dev += "${libdir}/sigc++-*/"
+FILES:${PN}-doc += "${datadir}/devhelp"
+
+BBCLASSEXTEND = "native"
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.2.0.bb b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.2.0.bb
deleted file mode 100644
index 9318a30544..0000000000
--- a/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.2.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "A library for loose coupling of C++ method calls"
-SECTION = "libs"
-LICENSE = "LGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=959bffe2993816eb32ec4bc1ec1d5875"
-
-DEPENDS = "mm-common"
-
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/3.2/libsigc++-${PV}.tar.xz"
-SRC_URI[sha256sum] = "8cdcb986e3f0a7c5b4474aa3c833d676e62469509f4899110ddf118f04082651"
-
-S = "${WORKDIR}/libsigc++-${PV}"
-
-inherit setuptools3 meson
-
-FILES:${PN}-dev += "${libdir}/sigc++-*/"
-FILES:${PN}-doc += "${datadir}/devhelp"
-
-BBCLASSEXTEND = "native"
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.6.0.bb b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.6.0.bb
new file mode 100644
index 0000000000..0753457c9d
--- /dev/null
+++ b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.6.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A library for loose coupling of C++ method calls"
+SECTION = "libs"
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=959bffe2993816eb32ec4bc1ec1d5875"
+
+DEPENDS = "mm-common"
+
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/3.6/libsigc++-${PV}.tar.xz"
+SRC_URI[sha256sum] = "c3d23b37dfd6e39f2e09f091b77b1541fbfa17c4f0b6bf5c89baef7229080e17"
+
+S = "${WORKDIR}/libsigc++-${PV}"
+
+inherit setuptools3 meson
+
+FILES:${PN}-dev += "${libdir}/sigc++-*/"
+FILES:${PN}-doc += "${datadir}/devhelp"
+
+BBCLASSEXTEND = "native"
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-oe/recipes-core/libxml/libxml++-5.0_5.0.1.bb b/meta-oe/recipes-core/libxml/libxml++-5.0_5.0.1.bb
index c0f0b2e130..ada0199476 100644
--- a/meta-oe/recipes-core/libxml/libxml++-5.0_5.0.1.bb
+++ b/meta-oe/recipes-core/libxml/libxml++-5.0_5.0.1.bb
@@ -6,15 +6,14 @@ SECTION = "libs"
LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 "
-SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-SRC_URI = "${GNOME_MIRROR}/libxml++/${SHRT_VER}/libxml++-${PV}.tar.xz \
-"
-SRC_URI[sha256sum] = "15c38307a964fa6199f4da6683a599eb7e63cc89198545b36349b87cf9aa0098"
+DEPENDS = "libxml2 glibmm"
+
+GNOMEBN = "libxml++"
+inherit gnomebase ptest
S = "${WORKDIR}/libxml++-${PV}"
-DEPENDS = "libxml2 glibmm"
-inherit meson pkgconfig ptest
+SRC_URI[archive.sha256sum] = "15c38307a964fa6199f4da6683a599eb7e63cc89198545b36349b87cf9aa0098"
FILES:${PN}-doc += "${datadir}/devhelp"
-FILES:${PN}-dev += "${libdir}/libxml++-${SHRT_VER}/include/libxml++config.h"
+FILES:${PN}-dev += "${libdir}/libxml++-${@gnome_verdir("${PV}")}/include/libxml++config.h"
diff --git a/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch b/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch
deleted file mode 100644
index dc6198fe98..0000000000
--- a/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch
+++ /dev/null
@@ -1,78 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -40,5 +40,8 @@ EXTRA_DIST = \
- tools/conf_tests/have_exception_ptr.cc \
- untracked/README
-
-+install-ptest:
-+ make -C examples install-ptest
-+
- # Optional: auto-generate the ChangeLog file from the git log on make dist
- include $(top_srcdir)/build/dist-changelog.am
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -19,6 +19,8 @@ AM_CPPFLAGS = -I$(top_builddir) -I$(top_
- AM_CXXFLAGS = $(LIBXMLXX_WXXFLAGS)
- LDADD = $(top_builddir)/libxml++/libxml++-$(LIBXMLXX_API_VERSION).la $(LIBXMLXX_LIBS)
-
-+LOG_DRIVER = $(SHELL) ../macros/test-driver
-+
- check_PROGRAMS = \
- dom_build/dom_build \
- dom_parse_entities/dom_parse_entities \
-@@ -37,6 +39,23 @@ check_PROGRAMS = \
- schemavalidation/schemavalidation \
- textreader/textreader
-
-+check_DOTLIBS = \
-+ dom_build/.libs/dom_build \
-+ dom_parse_entities/.libs/dom_parse_entities \
-+ dom_parser/.libs/dom_parser \
-+ dom_parser_raw/.libs/dom_parser_raw \
-+ dom_read_write/.libs/dom_read_write \
-+ dom_xinclude/.libs/dom_xinclude \
-+ dom_xpath/.libs/dom_xpath \
-+ dtdvalidation/.libs/dtdvalidation \
-+ import_node/.libs/import_node \
-+ sax_exception/.libs/sax_exception \
-+ sax_parser/.libs/sax_parser \
-+ sax_parser_build_dom/.libs/sax_parser_build_dom \
-+ sax_parser_entities/.libs/sax_parser_entities \
-+ schemavalidation/.libs/schemavalidation \
-+ textreader/.libs/textreader
-+
- # Shell scripts that call the example programs.
- check_SCRIPTS = \
- dom_build/make_check.sh \
-@@ -154,10 +173,10 @@ dist_noinst_DATA = \
- # file are located in different directories.
- dom_read_write/make_check.sh: Makefile
- $(AM_V_GEN)echo '# Generated and used by "make check"' >$@
-- $(AM_V_at)echo 'dom_read_write/dom_read_write "$(srcdir)/dom_read_write/example.xml" dom_read_write/example_output.xml >/dev/null' >>$@
-+ $(AM_V_at)echo 'cd dom_read_write && .libs/dom_read_write "example.xml" example_output.xml >/dev/null' >>$@
- $(AM_V_at)chmod +x $@
-
--script_template = cd "$(srcdir)/<!progname!>" && "$(abs_builddir)/<!progname!>/<!progname!>" >/dev/null
-+script_template = cd "<!progname!>" && ".libs/<!progname!>" >/dev/null
- standard_scripts = $(filter-out dom_read_write/make_check.sh,$(check_SCRIPTS))
-
- # All other script files are generated like so:
-@@ -169,3 +188,18 @@ $(standard_scripts): Makefile
- CLEANFILES = \
- dom_read_write/example_output.xml \
- $(check_SCRIPTS)
-+
-+buildtest: all
-+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_SCRIPTS)
-+ $(MAKE) $(AM_MAKEFLAGS) buildtest-TESTS
-+
-+install-ptest:
-+ $(MKDIR_P) $(DESTDIR)/examples
-+ cp --parents $(check_DOTLIBS) $(DESTDIR)/examples
-+ cp --parents $(check_SCRIPTS) $(DESTDIR)/examples
-+ cd $(srcdir) && cp --parents $(dist_noinst_DATA) $(DESTDIR)/examples
-+ cp Makefile $(DESTDIR)/examples
-+ $(MKDIR_P) $(DESTDIR)/macros
-+ cp $(top_srcdir)/build/test-driver $(DESTDIR)/macros
-+ sed -i -e 's|^Makefile:|_Makefile:|' $(DESTDIR)/examples/Makefile
-+
diff --git a/meta-oe/recipes-core/libxml/libxml++/run-ptest b/meta-oe/recipes-core/libxml/libxml++/run-ptest
deleted file mode 100644
index 236f667538..0000000000
--- a/meta-oe/recipes-core/libxml/libxml++/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-cd examples
-make -k check-TESTS
diff --git a/meta-oe/recipes-core/libxml/libxml++_2.42.1.bb b/meta-oe/recipes-core/libxml/libxml++_2.42.1.bb
deleted file mode 100644
index 7347e30f34..0000000000
--- a/meta-oe/recipes-core/libxml/libxml++_2.42.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "C++ wrapper for libxml library"
-DESCRIPTION = "C++ wrapper for libxml library"
-HOMEPAGE = "http://libxmlplusplus.sourceforge.net"
-BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml%2B%2B"
-SECTION = "libs"
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 "
-
-SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BP}.tar.xz \
- file://libxml++_ptest.patch \
- file://run-ptest \
-"
-SRC_URI[sha256sum] = "9b59059abe5545d28ceb388a55e341095f197bd219c73e6623aeb6d801e00be8"
-
-DEPENDS = "libxml2 glibmm mm-common-native"
-
-inherit autotools pkgconfig ptest
-
-EXTRA_OECONF = "--disable-documentation"
-
-do_configure:prepend() {
- mm-common-prepare --copy --force ${S}
-}
-
-do_compile_ptest() {
- oe_runmake -C examples buildtest
-}
-
-PTEST_PARALLEL_MAKE = ""
-
-FILES:${PN}-doc += "${datadir}/devhelp"
-FILES:${PN}-dev += "${libdir}/libxml++-2.6/include/libxml++config.h"
-
-RDEPENDS:${PN}-ptest += "make"
diff --git a/meta-oe/recipes-core/mdbus2/mdbus2_git.bb b/meta-oe/recipes-core/mdbus2/mdbus2_git.bb
index 07c5cc9394..a7ac358f27 100644
--- a/meta-oe/recipes-core/mdbus2/mdbus2_git.bb
+++ b/meta-oe/recipes-core/mdbus2/mdbus2_git.bb
@@ -4,9 +4,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
DEPENDS = "readline"
-PV = "2.3.3+git${SRCPV}"
+PV = "2.3.3+git"
-SRC_URI = "git://github.com/freesmartphone/mdbus.git;protocol=http;branch=master;protocol=https \
+SRC_URI = "git://github.com/freesmartphone/mdbus.git;protocol=https;branch=master \
file://0001-Fix-arguments-in-GLib.DBusSignalCallback-for-Vala-0..patch \
"
SRCREV = "28202692d0b441000f4ddb8f347f72d1355021aa"
diff --git a/meta-oe/recipes-core/meta/buildtools-imagemagick.bb b/meta-oe/recipes-core/meta/buildtools-imagemagick.bb
new file mode 100644
index 0000000000..d59f7a7a52
--- /dev/null
+++ b/meta-oe/recipes-core/meta/buildtools-imagemagick.bb
@@ -0,0 +1,10 @@
+require recipes-core/meta/buildtools-tarball.bb
+
+SUMMARY = "Standalone tarball of imagemagick binaries"
+LICENSE = "MIT"
+
+# Add nativesdk equivalent of build-essentials
+TOOLCHAIN_HOST_TASK = "nativesdk-imagemagick nativesdk-sdk-provides-dummy"
+TOOLCHAIN_OUTPUTNAME = "${SDK_ARCH}-buildtools-imagemagick-nativesdk-standalone-${DISTRO_VERSION}"
+
+SDK_TITLE = "Imagemagick tools"
diff --git a/meta-oe/recipes-core/meta/distro-feed-configs.bb b/meta-oe/recipes-core/meta/distro-feed-configs.bb
index a87de45832..fd6053c57e 100644
--- a/meta-oe/recipes-core/meta/distro-feed-configs.bb
+++ b/meta-oe/recipes-core/meta/distro-feed-configs.bb
@@ -1,5 +1,4 @@
SUMMARY = "Configuration files for online package repositories aka feeds"
-PR = "r6"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
diff --git a/meta-oe/recipes-core/mm-common/mm-common/0001-meson.build-do-not-ask-for-python-installation-versi.patch b/meta-oe/recipes-core/mm-common/mm-common/0001-meson.build-do-not-ask-for-python-installation-versi.patch
index 7d1dbc6ee4..4866a5fbe0 100644
--- a/meta-oe/recipes-core/mm-common/mm-common/0001-meson.build-do-not-ask-for-python-installation-versi.patch
+++ b/meta-oe/recipes-core/mm-common/mm-common/0001-meson.build-do-not-ask-for-python-installation-versi.patch
@@ -11,7 +11,7 @@ just ask for python3 executable.
| meson.build:9:0: ERROR: <ExternalProgram 'python3' -> ['<...>/recipe-sysroot-native/usr/bin/python3-native/python3']> is not a valid python or it is missing setuptools
-Upstream-Status: Inappropriate [OE specific]
+Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
diff --git a/meta-oe/recipes-core/mm-common/mm-common_1.0.4.bb b/meta-oe/recipes-core/mm-common/mm-common_1.0.4.bb
index 1ffdcfd045..56f7b5af6f 100644
--- a/meta-oe/recipes-core/mm-common/mm-common_1.0.4.bb
+++ b/meta-oe/recipes-core/mm-common/mm-common_1.0.4.bb
@@ -2,7 +2,6 @@ SUMMARY = "Common GNOME build files for C++ bindings"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase
diff --git a/meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb b/meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb
index 163a74ebe3..0bb45b8eaf 100644
--- a/meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb
+++ b/meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=81a81bf31abecc50c20862fc8a716329"
SRC_URI = "gitsm://github.com/pullmoll/musl-rpmatch.git;protocol=https;branch=master"
-PV = "1.0+git${SRCPV}"
+PV = "1.0+git"
SRCREV = "46267b154987d3e1f25d3a75423faa62bb5ee342"
inherit autotools
diff --git a/meta-oe/recipes-core/ndctl/ndctl/0001-build-set-HAVE_STATEMENT_EXPR-var.patch b/meta-oe/recipes-core/ndctl/ndctl/0001-build-set-HAVE_STATEMENT_EXPR-var.patch
deleted file mode 100644
index 486d6c07be..0000000000
--- a/meta-oe/recipes-core/ndctl/ndctl/0001-build-set-HAVE_STATEMENT_EXPR-var.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From b06d16ec2d4aefc4cf1675e9dd6314956bc32d69 Mon Sep 17 00:00:00 2001
-From: Naveen Saini <naveen.kumar.saini@intel.com>
-Date: Thu, 7 Apr 2022 14:36:58 +0800
-Subject: [PATCH] build: set HAVE_STATEMENT_EXPR var
-
-The v73 version tries to build and run a test program at compile
-time to check whether compiler supports sizeof and expression statements
-and sets HAVE_STATEMENT_EXPR accordingly. This requires EXEWRAPPER_ENABLED
-in meson.bbclass to be True and qemu-usermode to be working.
-
-In cases when EXEWRAPPER_ENABLED is False, build fails with error:
-
-| ../git/meson.build:213:0: ERROR: Can not run test applications in
-this cross environment.
-
-We don't really need to do this as these have been supported since gcc3 and can set the configs to 1.
-
-The autotools implementation also used to set it to 1 so this doesn't change anything:
-
-https://github.com/pmem/ndctl/blob/v72.1/configure.ac#L70
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
----
- meson.build | 18 ++----------------
- 1 file changed, 2 insertions(+), 16 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 42e11aa..e8d218b 100644
---- a/meson.build
-+++ b/meson.build
-@@ -210,22 +210,8 @@ conf.set('ENABLE_DESTRUCTIVE', get_option('destructive').enabled())
- conf.set('ENABLE_LOGGING', get_option('logging').enabled())
- conf.set('ENABLE_DEBUG', get_option('dbg').enabled())
-
--typeof = cc.run('''
-- int main() {
-- struct {
-- char a[16];
-- } x;
-- typeof(x) y;
--
-- return sizeof(x) == sizeof(y);
-- }
-- '''
--)
--
--if typeof.compiled() and typeof.returncode() == 1
-- conf.set('HAVE_TYPEOF', 1)
-- conf.set('HAVE_STATEMENT_EXPR', 1)
--endif
-+conf.set('HAVE_TYPEOF', 1)
-+conf.set('HAVE_STATEMENT_EXPR', 1)
-
- if target_machine.endian() == 'big'
- conf.set('HAVE_BIG_ENDIAN', 1)
---
-2.17.1
-
diff --git a/meta-oe/recipes-core/ndctl/ndctl/0001-include-libgen.h-for-basename.patch b/meta-oe/recipes-core/ndctl/ndctl/0001-include-libgen.h-for-basename.patch
new file mode 100644
index 0000000000..9de0a715bf
--- /dev/null
+++ b/meta-oe/recipes-core/ndctl/ndctl/0001-include-libgen.h-for-basename.patch
@@ -0,0 +1,32 @@
+From d7f01c310b74e3579a6474362922f173ac656d7b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 15:41:29 -0700
+Subject: [PATCH] include libgen.h for basename
+
+basename prototype has been removed from string.h from latest musl [1]
+compilers e.g. clang-18 flags the absense of prototype as error. therefore
+include libgen.h for providing it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [https://github.com/pmem/ndctl/pull/263]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ daxctl/device.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/daxctl/device.c b/daxctl/device.c
+index d2d206b..e607a19 100644
+--- a/daxctl/device.c
++++ b/daxctl/device.c
+@@ -2,6 +2,7 @@
+ /* Copyright (C) 2019-2020 Intel Corporation. All rights reserved. */
+ #include <stdio.h>
+ #include <errno.h>
++#include <libgen.h>
+ #include <stdlib.h>
+ #include <syslog.h>
+ #include <unistd.h>
+--
+2.44.0
+
diff --git a/meta-oe/recipes-core/ndctl/ndctl/0001-meson-Use-pkg-config-to-detect-iniparser.patch b/meta-oe/recipes-core/ndctl/ndctl/0001-meson-Use-pkg-config-to-detect-iniparser.patch
deleted file mode 100644
index ee172c3a69..0000000000
--- a/meta-oe/recipes-core/ndctl/ndctl/0001-meson-Use-pkg-config-to-detect-iniparser.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 44516eee75696c84849c0f7aa632e2456b101813 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Mar 2022 00:57:03 -0700
-Subject: [PATCH] meson: Use pkg-config to detect iniparser
-
-Add iniparser dependency to util subdir
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- meson.build | 2 +-
- util/meson.build | 1 +
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 42e11aa..4209320 100644
---- a/meson.build
-+++ b/meson.build
-@@ -160,7 +160,7 @@ cc = meson.get_compiler('c')
-
- # keyutils and iniparser lack pkgconfig
- keyutils = cc.find_library('keyutils', required : get_option('keyutils'))
--iniparser = cc.find_library('iniparser', required : true)
-+iniparser = dependency('iniparser', required : true)
-
- conf = configuration_data()
- check_headers = [
-diff --git a/util/meson.build b/util/meson.build
-index 784b279..8e9ae9a 100644
---- a/util/meson.build
-+++ b/util/meson.build
-@@ -12,5 +12,6 @@ util = static_library('util', [
- 'iomem.c',
- ],
- include_directories : root_inc,
-+ dependencies : iniparser,
- )
- util_dep = declare_dependency(link_with : util)
---
-2.35.1
-
diff --git a/meta-oe/recipes-core/ndctl/ndctl/0001-util-Correct-path-to-iniparser.h.patch b/meta-oe/recipes-core/ndctl/ndctl/0001-util-Correct-path-to-iniparser.h.patch
deleted file mode 100644
index fe2612ce94..0000000000
--- a/meta-oe/recipes-core/ndctl/ndctl/0001-util-Correct-path-to-iniparser.h.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From c212d228c25cb583f52a6d31e9f0ec7bc1f9c506 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Mar 2022 01:10:02 -0700
-Subject: [PATCH] util: Correct path to iniparser.h
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- util/parse-configs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/util/parse-configs.c b/util/parse-configs.c
-index c834a07..1b7ffa6 100644
---- a/util/parse-configs.c
-+++ b/util/parse-configs.c
-@@ -4,7 +4,7 @@
- #include <dirent.h>
- #include <errno.h>
- #include <fcntl.h>
--#include <iniparser.h>
-+#include <iniparser/iniparser.h>
- #include <sys/stat.h>
- #include <util/parse-configs.h>
- #include <util/strbuf.h>
---
-2.35.1
-
diff --git a/meta-oe/recipes-core/ndctl/ndctl_v73.bb b/meta-oe/recipes-core/ndctl/ndctl_v73.bb
deleted file mode 100644
index da649d578b..0000000000
--- a/meta-oe/recipes-core/ndctl/ndctl_v73.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "libnvdimm utility library"
-DESCRIPTION = "Utility library for managing the libnvdimm \
-(non-volatile memory device) sub-system in the Linux kernel. \
-The LIBNVDIMM subsystem provides support for three types of \
-NVDIMMs, namely,PMEM, BLK, and NVDIMM devices that can \
-simultaneously support both PMEM and BLK mode access."
-HOMEPAGE = "https://git.kernel.org/cgit/linux/kernel/git/nvdimm/nvdimm.git/tree/Documentation/nvdimm/nvdimm.txt?h=libnvdimm-for-next"
-LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & MIT & CC0-1.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=74a614eac8b2657a4b8e6607421a0883"
-
-inherit meson pkgconfig bash-completion systemd
-
-SRCREV = "dd58d43458943d20ff063850670bf54a5242c9c5"
-SRC_URI = "git://github.com/pmem/ndctl.git;branch=main;protocol=https \
- file://0001-util-Correct-path-to-iniparser.h.patch \
- file://0001-meson-Use-pkg-config-to-detect-iniparser.patch \
- file://0001-build-set-HAVE_STATEMENT_EXPR-var.patch"
-
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>v\d+(\.\d+)*)"
-
-DEPENDS = "kmod udev json-c keyutils iniparser"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF += "-Ddestructive=enabled"
-
-PACKAGECONFIG ??= "tests ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
-PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
-PACKAGECONFIG[tests] = "-Dtest=enabled, -Dtest=disabled,"
-PACKAGECONFIG[docs] = "-Ddocs=enabled -Dasciidoctor=enabled,-Ddocs=disabled -Dasciidoctor=disabled, asciidoc-native"
-
-SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
-SYSTEMD_SERVICE:${PN} = "ndctl-monitor.service daxdev-reconfigure@.service"
-SYSTEMD_AUTO_ENABLE:${PN} = "disable"
-
-FILES:${PN} += "${datadir}/daxctl/daxctl.conf "
diff --git a/meta-oe/recipes-core/ndctl/ndctl_v78.bb b/meta-oe/recipes-core/ndctl/ndctl_v78.bb
new file mode 100644
index 0000000000..907c02c7c8
--- /dev/null
+++ b/meta-oe/recipes-core/ndctl/ndctl_v78.bb
@@ -0,0 +1,34 @@
+SUMMARY = "libnvdimm utility library"
+DESCRIPTION = "Utility library for managing the libnvdimm \
+(non-volatile memory device) sub-system in the Linux kernel. \
+The LIBNVDIMM subsystem provides support for three types of \
+NVDIMMs, namely,PMEM, BLK, and NVDIMM devices that can \
+simultaneously support both PMEM and BLK mode access."
+HOMEPAGE = "https://git.kernel.org/cgit/linux/kernel/git/nvdimm/nvdimm.git/tree/Documentation/nvdimm/nvdimm.txt?h=libnvdimm-for-next"
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & MIT & CC0-1.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=74a614eac8b2657a4b8e6607421a0883"
+
+inherit meson pkgconfig bash-completion systemd
+
+SRCREV = "a871e6153b11fe63780b37cdcb1eb347b296095c"
+SRC_URI = "git://github.com/pmem/ndctl.git;branch=main;protocol=https \
+ file://0001-include-libgen.h-for-basename.patch"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>v\d+(\.\d+)*)"
+
+DEPENDS = "kmod udev json-c keyutils iniparser libtraceevent libtracefs"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMESON += "-Ddestructive=enabled -Diniparserdir=${STAGING_INCDIR}/iniparser"
+
+PACKAGECONFIG ??= "tests ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
+PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
+PACKAGECONFIG[tests] = "-Dtest=enabled, -Dtest=disabled,"
+PACKAGECONFIG[docs] = "-Ddocs=enabled -Dasciidoctor=enabled,-Ddocs=disabled -Dasciidoctor=disabled, asciidoc-native"
+
+SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
+SYSTEMD_SERVICE:${PN} = "ndctl-monitor.service daxdev-reconfigure@.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
+
+FILES:${PN} += "${datadir}/daxctl/daxctl.conf ${nonarch_libdir}/systemd/system"
diff --git a/meta-oe/recipes-core/opencl/ocl-icd_2.3.1.bb b/meta-oe/recipes-core/opencl/ocl-icd_2.3.1.bb
deleted file mode 100644
index 250cb6883b..0000000000
--- a/meta-oe/recipes-core/opencl/ocl-icd_2.3.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "OpenCL ICD library"
-DESCRIPTION = "Open Source alternative to vendor specific OpenCL ICD loaders."
-
-# The LICENSE is BSD 2-Clause "Simplified" License
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1238d5bccbb6bda30654e48dcc0a554b"
-
-SRC_URI = "git://github.com/OCL-dev/ocl-icd.git;protocol=https;branch=master"
-
-SRCREV = "1165deedb2ae741cd76e60986f7c2cb5023059d9"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-DEPENDS = "ruby-native"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-core/opencl/ocl-icd_2.3.2.bb b/meta-oe/recipes-core/opencl/ocl-icd_2.3.2.bb
new file mode 100644
index 0000000000..d43ea281ae
--- /dev/null
+++ b/meta-oe/recipes-core/opencl/ocl-icd_2.3.2.bb
@@ -0,0 +1,20 @@
+SUMMARY = "OpenCL ICD library"
+DESCRIPTION = "Open Source alternative to vendor specific OpenCL ICD loaders."
+
+# The LICENSE is BSD 2-Clause "Simplified" License
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1238d5bccbb6bda30654e48dcc0a554b"
+
+SRC_URI = "git://github.com/OCL-dev/ocl-icd.git;protocol=https;branch=master"
+
+SRCREV = "fdde6677b21329432db8b481e2637cd10f7d3cb2"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+DEPENDS = "ruby-native"
+PROVIDES = "virtual/opencl-icd"
+RPROVIDES:${PN} = "virtual-opencl-icd"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-core/opencl/opencl-clhpp_git.bb b/meta-oe/recipes-core/opencl/opencl-clhpp_git.bb
index 8a712602cc..7ae0362d37 100644
--- a/meta-oe/recipes-core/opencl/opencl-clhpp_git.bb
+++ b/meta-oe/recipes-core/opencl/opencl-clhpp_git.bb
@@ -6,7 +6,7 @@ SRC_URI = "git://github.com/KhronosGroup/OpenCL-CLHPP.git;protocol=https;branch=
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-PV = "2.0.16+git${SRCPV}"
+PV = "2.0.16+git"
SRCREV = "1df82b9749739f2681081092ae163bb0f0d40f66"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-core/opencl/opencl-headers_2023.12.14.bb b/meta-oe/recipes-core/opencl/opencl-headers_2023.12.14.bb
new file mode 100644
index 0000000000..8b1c795666
--- /dev/null
+++ b/meta-oe/recipes-core/opencl/opencl-headers_2023.12.14.bb
@@ -0,0 +1,19 @@
+SUMMARY = "OpenCL API Headers"
+DESCRIPTION = "OpenCL compute API headers from Khronos Group"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+SECTION = "base"
+
+S = "${WORKDIR}/git"
+SRCREV = "2368105c0531069fe927989505de7d125ec58c55"
+SRC_URI = "git://github.com/KhronosGroup/OpenCL-Headers.git;branch=main;protocol=https"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+ALLOW_EMPTY:${PN} = "1"
+
+do_install () {
+ install -d ${D}${includedir}/CL/
+ install -m 0644 ${S}/CL/*.h ${D}${includedir}/CL
+}
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-core/opencl/opencl-headers_git.bb b/meta-oe/recipes-core/opencl/opencl-headers_git.bb
deleted file mode 100644
index 8ad7d9d10b..0000000000
--- a/meta-oe/recipes-core/opencl/opencl-headers_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "OpenCL API Headers"
-DESCRIPTION = "OpenCL compute API headers from Khronos Group"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SECTION = "base"
-
-S = "${WORKDIR}/git"
-PV = "2022.09.23"
-SRCREV = "5e2f8c66476bcf60eb8c2921807e34efb30294ee"
-SRC_URI = "git://github.com/KhronosGroup/OpenCL-Headers.git;branch=main;protocol=https"
-
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-ALLOW_EMPTY:${PN} = "1"
-
-do_install () {
- install -d ${D}${includedir}/CL/
- install -m 0644 ${S}/CL/*.h ${D}${includedir}/CL
-}
diff --git a/meta-oe/recipes-core/opencl/opencl-icd-loader_2023.12.14.bb b/meta-oe/recipes-core/opencl/opencl-icd-loader_2023.12.14.bb
new file mode 100644
index 0000000000..146ec6e472
--- /dev/null
+++ b/meta-oe/recipes-core/opencl/opencl-icd-loader_2023.12.14.bb
@@ -0,0 +1,54 @@
+SUMMARY = "OpenCL ICD Loader"
+DESCRIPTION = "OpenCL compute ICD Loader from Khronos Group"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+SECTION = "base"
+
+inherit pkgconfig cmake
+
+DEPENDS += "opencl-headers"
+
+PROVIDES = "virtual/opencl-icd"
+RPROVIDES:${PN} = "virtual-opencl-icd"
+
+S = "${WORKDIR}/git"
+
+SRCREV = "229410f86a8c8c9e0f86f195409e5481a2bae067"
+SRC_URI = "git://github.com/KhronosGroup/OpenCL-ICD-Loader.git;branch=main;protocol=https"
+
+EXTRA_OECMAKE:append = " \
+ -DOPENCL_ICD_LOADER_HEADERS_DIR=${STAGING_INCDIR} \
+"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/icd_loader_test ${D}${bindir}/
+ chrpath -d ${D}${bindir}/icd_loader_test
+ install -d ${D}${libdir}
+ install -m 0644 ${B}/libIcdLog.so ${D}${libdir}/
+ install -m 0644 ${B}/libOpenCLDriverStub.so ${D}${libdir}/
+ chrpath -d ${D}${libdir}/libOpenCLDriverStub.so
+ install -m 0644 ${B}/libOpenCL.so.1.2 ${D}${libdir}/
+ cd ${D}${libdir}
+ ln -s libOpenCL.so.1.2 libOpenCL.so.1
+ ln -s libOpenCL.so.1 libOpenCL.so
+}
+
+PACKAGES = "opencl-icd-loader opencl-icd-loader-dev"
+PACKAGES += "libicdlog libicdlog-dbg"
+PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
+
+FILES:${PN} = " \
+ ${bindir}/icd_loader_test \
+ ${libdir}/libOpenCLDriverStub.so \
+ ${libdir}/libOpenCL.so.1.2 \
+ ${libdir}/libOpenCL.so.1 \
+"
+FILES:${PN}-dev = " \
+ ${libdir}/libOpenCL.so \
+"
+
+FILES:libicdlog = "${libdir}/libIcdLog.so"
+FILES:libicdlog-dbg = "${libdir}/.debug/libIcdLog.so"
+
+RDEPENDS:${PN} = "libicdlog"
diff --git a/meta-oe/recipes-core/opencl/opencl-icd-loader_git.bb b/meta-oe/recipes-core/opencl/opencl-icd-loader_git.bb
deleted file mode 100644
index 67437732d8..0000000000
--- a/meta-oe/recipes-core/opencl/opencl-icd-loader_git.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "OpenCL ICD Loader"
-DESCRIPTION = "OpenCL compute ICD Loader from Khronos Group"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-SECTION = "base"
-
-inherit pkgconfig cmake
-
-DEPENDS += "opencl-headers"
-
-PROVIDES = "virtual/opencl-icd"
-
-S = "${WORKDIR}/git"
-PV = "v2022.01.04+git${SRCPV}"
-SRCREV = "169f05d026e65948b30cfe2200595fda92198cf7"
-SRC_URI = "git://github.com/KhronosGroup/OpenCL-ICD-Loader.git;branch=main;protocol=https"
-
-EXTRA_OECMAKE:append = " \
- -DOPENCL_ICD_LOADER_HEADERS_DIR=${STAGING_INCDIR} \
-"
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 ${B}/test/loader_test/icd_loader_test ${D}${bindir}/
- chrpath -d ${D}${bindir}/icd_loader_test
- install -d ${D}${libdir}
- install -m 0644 ${B}/test/log/libIcdLog.so ${D}${libdir}/
- install -m 0644 ${B}/test/driver_stub/libOpenCLDriverStub.so ${D}${libdir}/
- chrpath -d ${D}${libdir}/libOpenCLDriverStub.so
- install -m 0644 ${B}/libOpenCL.so.1.2 ${D}${libdir}/
- cd ${D}${libdir}
- ln -s libOpenCL.so.1.2 libOpenCL.so.1
- ln -s libOpenCL.so.1 libOpenCL.so
-}
-
-PACKAGES = "opencl-icd-loader opencl-icd-loader-dev"
-PACKAGES += "libicdlog libicdlog-dbg"
-PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
-
-FILES:${PN} = " \
- ${bindir}/icd_loader_test \
- ${libdir}/libOpenCLDriverStub.so \
- ${libdir}/libOpenCL.so.1.2 \
- ${libdir}/libOpenCL.so.1 \
-"
-FILES:${PN}-dev = " \
- ${libdir}/libOpenCL.so \
-"
-
-FILES:libicdlog = "${libdir}/libIcdLog.so"
-FILES:libicdlog-dbg = "${libdir}/.debug/libIcdLog.so"
-
-RDEPENDS:${PN} = "libicdlog"
diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb b/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb
index 422b4d49df..324406c1ed 100644
--- a/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb
+++ b/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb
@@ -3,7 +3,6 @@
SUMMARY = "Basic task to get a device online"
-PR = "r13"
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb b/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb
index 7e2873cf66..f6ddb1a352 100644
--- a/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb
+++ b/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb
@@ -1,6 +1,5 @@
SUMMARY = "Basic task to get a device booting"
-PR = "r58"
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
index cd99fb48c9..7544a9fbfa 100644
--- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
+++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -77,14 +77,16 @@ RDEPENDS:packagegroup-meta-oe-benchmarks = "\
qperf \
s-suite \
stressapptest \
- sysbench \
tinymembench \
tiobench \
whetstone \
"
-RDEPENDS:packagegroup-meta-oe-benchmarks:append:armv7a = " cpuburn-arm"
-RDEPENDS:packagegroup-meta-oe-benchmarks:append:armv7ve = " cpuburn-arm"
-RDEPENDS:packagegroup-meta-oe-benchmarks:append:aarch64 = " cpuburn-arm"
+RDEPENDS:packagegroup-meta-oe-benchmarks:append:armv7a = " cpuburn-arm sysbench"
+RDEPENDS:packagegroup-meta-oe-benchmarks:append:armv7ve = " cpuburn-arm sysbench"
+RDEPENDS:packagegroup-meta-oe-benchmarks:append:aarch64 = " cpuburn-arm sysbench"
+RDEPENDS:packagegroup-meta-oe-benchmarks:append:x86 = " sysbench"
+RDEPENDS:packagegroup-meta-oe-benchmarks:append:x86-64 = " sysbench"
+RDEPENDS:packagegroup-meta-oe-benchmarks:append:mips = " sysbench"
RDEPENDS:packagegroup-meta-oe-benchmarks:remove:mipsarch = "libhugetlbfs"
RDEPENDS:packagegroup-meta-oe-benchmarks:remove:mips64 = "tinymembench"
@@ -182,12 +184,10 @@ RDEPENDS:packagegroup-meta-oe-core = "\
libnfc \
libsigc++-2.0 \
libsigc++-3 \
- libxml++ \
mdbus2 \
distro-feed-configs \
mm-common \
${@bb.utils.contains("DISTRO_FEATURES", "systemd", "ndctl", "", d)} \
- opencl-icd-loader \
pim435 \
proxy-libintl \
safec \
@@ -300,10 +300,8 @@ RDEPENDS:packagegroup-meta-oe-devtools ="\
python3-distutils-extra \
python3-pycups \
rapidjson \
- sip3 \
squashfs-tools-ng \
uftrace \
- unifex \
valijson \
libxerces-c \
xerces-c-samples \
@@ -311,6 +309,7 @@ RDEPENDS:packagegroup-meta-oe-devtools ="\
yasm \
json-schema-validator \
poke \
+ microsoft-gsl \
"
RDEPENDS:packagegroup-meta-oe-devtools:append:x86 = " cpuid msr-tools pahole pmtools"
RDEPENDS:packagegroup-meta-oe-devtools:append:x86-64 = " cpuid msr-tools pahole pcimem pmtools"
@@ -327,7 +326,7 @@ RDEPENDS:packagegroup-meta-oe-devtools:remove:mips64el = "luajit nodejs"
RDEPENDS:packagegroup-meta-oe-devtools:remove:powerpc = "android-tools breakpad lshw luajit uftrace"
RDEPENDS:packagegroup-meta-oe-devtools:remove:powerpc64 = "android-tools breakpad lshw luajit ply uftrace"
RDEPENDS:packagegroup-meta-oe-devtools:remove:powerpc64le = "android-tools breakpad lshw luajit ply uftrace"
-RDEPENDS:packagegroup-meta-oe-devtools:remove:riscv64 = "breakpad concurrencykit heaptrack lshw ltrace luajit nodejs ply uftrace"
+RDEPENDS:packagegroup-meta-oe-devtools:remove:riscv64 = "breakpad concurrencykit heaptrack lshw ltrace luajit nodejs ply"
RDEPENDS:packagegroup-meta-oe-devtools:remove:riscv32 = "breakpad concurrencykit heaptrack lshw ltrace luajit nodejs ply uftrace"
RDEPENDS:packagegroup-meta-oe-devtools:remove:libc-musl:riscv32 = "php"
RDEPENDS:packagegroup-meta-oe-devtools:remove:aarch64 = "concurrencykit"
@@ -449,8 +448,8 @@ RDEPENDS:packagegroup-meta-oe-extended:remove:mips = "sysdig"
RDEPENDS:packagegroup-meta-oe-extended:remove:powerpc = "upm mraa minifi-cpp"
RDEPENDS:packagegroup-meta-oe-extended:remove:powerpc64 = "upm mraa minifi-cpp"
RDEPENDS:packagegroup-meta-oe-extended:remove:powerpc64le = "upm mraa sysdig"
-RDEPENDS:packagegroup-meta-oe-extended:remove:riscv64 = "upm libleak libyang mraa sysdig tiptop"
-RDEPENDS:packagegroup-meta-oe-extended:remove:riscv32 = "upm libleak libyang mraa sysdig tiptop"
+RDEPENDS:packagegroup-meta-oe-extended:remove:riscv64 = "upm libleak mraa sysdig tiptop"
+RDEPENDS:packagegroup-meta-oe-extended:remove:riscv32 = "upm libleak mraa sysdig tiptop"
RDEPENDS:packagegroup-meta-oe-extended-python2 ="\
${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", bb.utils.contains('I_SWEAR_TO_MIGRATE_TO_PYTHON3', 'yes', 'openlmi-tools', '', d), "", d)} \
@@ -465,11 +464,9 @@ RDEPENDS:packagegroup-meta-oe-gnome ="\
gtk+ \
gtkmm3 \
gtkmm \
- libpeas \
+ ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "libpeas", "", d)} \
pyxdg \
- vte9 \
gnome-theme-adwaita \
- libxmlb \
"
RDEPENDS:packagegroup-meta-oe-graphics ="\
@@ -489,7 +486,6 @@ RDEPENDS:packagegroup-meta-oe-graphics ="\
gphoto2 \
imlib2 \
libgphoto2 \
- graphene \
graphviz \
gtkwave \
jasper \
@@ -571,7 +567,6 @@ RDEPENDS:packagegroup-meta-oe-graphics ="\
xclock \
xfontsel \
xkbprint \
- xsetmode \
xlsatoms \
xlsclients \
xlsfonts \
@@ -597,9 +592,7 @@ RDEPENDS:packagegroup-meta-oe-graphics ="\
font-cursor-misc \
font-misc-misc \
xorg-fonts-100dpi \
- liblbxutil \
libxaw6 \
- libxkbui \
libxpresent \
xcb-util-cursor \
xserver-common \
@@ -618,6 +611,7 @@ RDEPENDS:packagegroup-meta-oe-graphics ="\
xcursorgen \
${@bb.utils.contains("DISTRO_FEATURES", "x11 pam", "xscreensaver", "", d)} \
yad \
+ ydotool \
parallel-deqp-runner \
${@bb.utils.contains("DISTRO_FEATURES", "opengl", "opengl-es-cts", "", d)} \
${@bb.utils.contains("DISTRO_FEATURES", "opengl vulkan", "vulkan-cts", "", d)} \
@@ -643,22 +637,22 @@ RDEPENDS:packagegroup-meta-oe-kernel ="\
usbip-tools \
"
RDEPENDS:packagegroup-meta-oe-kernel:append:x86 = " intel-speed-select ipmiutil pm-graph turbostat"
-RDEPENDS:packagegroup-meta-oe-kernel:append:x86-64 = " intel-speed-select ipmiutil kpatch pm-graph turbostat bpftool"
+RDEPENDS:packagegroup-meta-oe-kernel:append:x86-64 = " intel-speed-select ipmiutil pm-graph turbostat bpftool"
+RDEPENDS:packagegroup-meta-oe-kernel:append:x86-64:libc-glibc = " kpatch"
RDEPENDS:packagegroup-meta-oe-kernel:append:powerpc64 = " libpfm4"
# Kernel-selftest does not build with 5.8 and its exluded from build too so until its fixed remove it
RDEPENDS:packagegroup-meta-oe-kernel:remove = "kernel-selftest"
RDEPENDS:packagegroup-meta-oe-kernel:remove:libc-musl = "bpftool crash intel-speed-select kernel-selftest minicoredumper turbostat"
-RDEPENDS:packagegroup-meta-oe-kernel:remove:mipsarch = "makedumpfile"
+RDEPENDS:packagegroup-meta-oe-kernel:remove:mipsarcho32 = "makedumpfile"
RDEPENDS:packagegroup-meta-oe-kernel:remove:mips64 = "crash"
RDEPENDS:packagegroup-meta-oe-kernel:remove:mips64el = "crash"
-RDEPENDS:packagegroup-meta-oe-kernel:remove:riscv64 = "crash makedumpfile oprofile"
+RDEPENDS:packagegroup-meta-oe-kernel:remove:riscv64 = "crash oprofile"
RDEPENDS:packagegroup-meta-oe-kernel:remove:riscv32 = "crash makedumpfile oprofile"
RDEPENDS:packagegroup-meta-oe-multimedia ="\
- alsa-oss \
${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "faad2", "", d)} \
dirsplit \
genisoimage \
@@ -670,7 +664,6 @@ RDEPENDS:packagegroup-meta-oe-multimedia ="\
jack-server \
jack-utils \
libass \
- libburn \
libcdio-paranoia \
libcdio \
${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "libmad", "", d)} \
@@ -692,8 +685,6 @@ RDEPENDS:packagegroup-meta-oe-multimedia ="\
libopusenc \
"
-RDEPENDS:packagegroup-meta-oe-multimedia:remove:libc-musl = "alsa-oss"
-
RDEPENDS:packagegroup-meta-oe-navigation ="\
geos \
${@bb.utils.contains("DISTRO_FEATURES", "bluz4", "gpsd-machine-conf gpsd", "", d)} \
@@ -831,7 +822,6 @@ RDEPENDS:packagegroup-meta-oe-support ="\
liblinebreak \
mailcap \
liboauth \
- libol \
mg \
monit \
mscgen \
@@ -885,6 +875,7 @@ RDEPENDS:packagegroup-meta-oe-support ="\
raptor2 \
rdfind \
re2 \
+ sdmon \
sdparm \
serial-forward \
read-edid \
@@ -901,7 +892,6 @@ RDEPENDS:packagegroup-meta-oe-support ="\
pcsc-lite \
pcsc-tools \
sharutils \
- ${@bb.utils.contains("DISTRO_FEATURES", "x11", "toscoterm", "", d)} \
sg3-utils \
${@bb.utils.contains("DISTRO_FEATURES", "x11", "uim", "", d)} \
uchardet \
@@ -934,8 +924,8 @@ RDEPENDS:packagegroup-meta-oe-support ="\
libmicrohttpd \
yaml-cpp \
"
-RDEPENDS:packagegroup-meta-oe-support:append:armv7a = " ne10"
-RDEPENDS:packagegroup-meta-oe-support:append:armv7ve = " ne10"
+RDEPENDS:packagegroup-meta-oe-support:append:armv7a = "${@bb.utils.contains("TUNE_FEATURES","neon"," ne10","",d)}"
+RDEPENDS:packagegroup-meta-oe-support:append:armv7ve = "${@bb.utils.contains("TUNE_FEATURES","neon"," ne10","",d)}"
RDEPENDS:packagegroup-meta-oe-support:append:aarch64 = " ne10"
RDEPENDS:packagegroup-meta-oe-support:append:x86 = " mcelog mce-inject mce-test vboxguestdrivers"
RDEPENDS:packagegroup-meta-oe-support:append:x86-64 = " mcelog mce-inject mce-test vboxguestdrivers"
@@ -987,6 +977,8 @@ RDEPENDS:packagegroup-meta-oe-ptest-packages = "\
libee-ptest \
poco-ptest \
cmocka-ptest \
+ minicoredumper-ptest \
+ hiredis-ptest \
"
RDEPENDS:packagegroup-meta-oe-ptest-packages:append:x86 = " mcelog-ptest"
RDEPENDS:packagegroup-meta-oe-ptest-packages:append:x86-64 = " mcelog-ptest"
@@ -994,6 +986,7 @@ RDEPENDS:packagegroup-meta-oe-ptest-packages:append:x86-64 = " mcelog-ptest"
RDEPENDS:packagegroup-meta-oe-ptest-packages:remove:riscv64 = "oprofile-ptest"
RDEPENDS:packagegroup-meta-oe-ptest-packages:remove:riscv32 = "oprofile-ptest"
RDEPENDS:packagegroup-meta-oe-ptest-packages:remove:arm = "numactl-ptest"
+RDEPENDS:packagegroup-meta-oe-ptest-packages:remove:libc-musl = "minicoredumper-ptest"
RDEPENDS:packagegroup-meta-oe-fortran-packages = "\
@@ -1005,7 +998,7 @@ RDEPENDS:packagegroup-meta-oe-fortran-packages = "\
# They wont be built as part of images but might be interesting to include
# with dev-pkgs images
#
-# opencl-headers sdbus-c++-libsystemd boost-url nlohmann-fifo sqlite-orm
+# opencl-headers sdbus-c++-libsystemd nlohmann-fifo sqlite-orm
# nlohmann-json exprtk liblightmodbus p8platform gnome-doc-utils-stub
# glm ttf-mplus xbitmaps ceres-solver cli11 fftw gnulib libeigen ade
# spdlog span-lite uthash websocketpp catch2 properties-cpp cpp-netlib
diff --git a/meta-oe/recipes-core/plymouth/files/0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch b/meta-oe/recipes-core/plymouth/files/0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch
deleted file mode 100644
index 6a86c76d13..0000000000
--- a/meta-oe/recipes-core/plymouth/files/0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 746c690f57b52e6fe21cc2a11b5bb71d25af3128 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Wed, 13 Dec 2017 16:15:57 +0100
-Subject: [PATCH] Make full path to systemd-tty-ask-password-agent configurable
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- configure.ac | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index aad673e..6b37179 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -48,7 +48,10 @@ PLYMOUTH_LIBS="-lm -lrt -ldl"
- AC_SUBST(PLYMOUTH_CFLAGS)
- AC_SUBST(PLYMOUTH_LIBS)
-
--AC_PATH_PROG([SYSTEMD_ASK_PASSWORD_AGENT], [systemd-tty-ask-password-agent])
-+AC_ARG_WITH(systemd-tty-ask-password-agent, AS_HELP_STRING([--with-systemd-tty-ask-password-agent],[path of systemd-tty-ask-password-agent]),SYSTEMD_ASK_PASSWORD_AGENT=${withval},SYSTEMD_ASK_PASSWORD_AGENT=/bin/systemd-tty-ask-password-agent)
-+AC_SUBST(SYSTEMD_ASK_PASSWORD_AGENT)
-+
-+# checked: UDEVADM is not used
- AC_PATH_PROG([UDEVADM], [udevadm])
-
- AC_ARG_ENABLE(pango, AS_HELP_STRING([--enable-pango],[enable building with pango, disabled there is no encryption prompts]),enable_pango=$enableval,enable_pango=yes)
---
-2.9.5
-
diff --git a/meta-oe/recipes-core/plymouth/files/0001-systemd-switch-to-KillMode-mixed.patch b/meta-oe/recipes-core/plymouth/files/0001-systemd-switch-to-KillMode-mixed.patch
deleted file mode 100644
index eb1c8db21c..0000000000
--- a/meta-oe/recipes-core/plymouth/files/0001-systemd-switch-to-KillMode-mixed.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 9d0f8b2e7bc2d1d2b0900fcdf119bb9a2cc4f474 Mon Sep 17 00:00:00 2001
-From: Ray Strode <rstrode@redhat.com>
-Date: Tue, 25 Aug 2020 10:49:11 -0400
-Subject: [PATCH] systemd: switch to KillMode=mixed
-
-KillMode=none is deprecated, so we need to stop using it.
-
-For now, use `KillMode=mixed` and `IgnoreOnIsolate=true` instead.
-
-In the future, we should change plymouth to be able to exit and
-start again without restarting the active animation, but that's
-going to require some effort.
-
-https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/123
-
-Upstream-Status: Backport [https://gitlab.freedesktop.org/plymouth/plymouth/-/commit/9d0f8b2e7bc2d1d2b0900fcdf119bb9a2cc4f474]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- systemd-units/plymouth-start.service.in | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/systemd-units/plymouth-start.service.in b/systemd-units/plymouth-start.service.in
-index 3d00cc6..830a62d 100644
---- a/systemd-units/plymouth-start.service.in
-+++ b/systemd-units/plymouth-start.service.in
-@@ -6,11 +6,12 @@ After=systemd-vconsole-setup.service systemd-udev-trigger.service systemd-udevd.
- Before=systemd-ask-password-plymouth.service
- ConditionKernelCommandLine=!plymouth.enable=0
- ConditionVirtualization=!container
-+IgnoreOnIsolate=true
-
- [Service]
- ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=boot --pid-file=@plymouthruntimedir@/pid --attach-to-session
- ExecStartPost=-@PLYMOUTH_CLIENT_DIR@/plymouth show-splash
- Type=forking
- RemainAfterExit=yes
--KillMode=none
-+KillMode=mixed
- SendSIGKILL=no
---
-2.17.1
-
diff --git a/meta-oe/recipes-core/plymouth/plymouth/0001-Avoid-linking-to-plymouth_logo_file.patch b/meta-oe/recipes-core/plymouth/plymouth/0001-Avoid-linking-to-plymouth_logo_file.patch
new file mode 100644
index 0000000000..77c9fbd964
--- /dev/null
+++ b/meta-oe/recipes-core/plymouth/plymouth/0001-Avoid-linking-to-plymouth_logo_file.patch
@@ -0,0 +1,28 @@
+From 210090a8bddc4d4fae6089449306276a58db7409 Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@gmail.com>
+Date: Wed, 14 Feb 2024 14:45:29 +0100
+Subject: [PATCH] Avoid linking to plymouth_logo_file
+
+Otherwise it would lead to install errors during cross-compilation.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ themes/spinfinity/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/themes/spinfinity/meson.build b/themes/spinfinity/meson.build
+index f48e8e55..da9ea705 100644
+--- a/themes/spinfinity/meson.build
++++ b/themes/spinfinity/meson.build
+@@ -56,5 +56,5 @@ install_data(
+
+ install_symlink('header-image.png',
+ install_dir: plymouth_theme_path / 'spinfinity',
+- pointing_to: plymouth_logo_file,
++ pointing_to: '..' / '..'/ 'bizcom.png',
+ )
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/plymouth/plymouth/0001-Drop-libdl-references.patch b/meta-oe/recipes-core/plymouth/plymouth/0001-Drop-libdl-references.patch
new file mode 100644
index 0000000000..e922f5ce95
--- /dev/null
+++ b/meta-oe/recipes-core/plymouth/plymouth/0001-Drop-libdl-references.patch
@@ -0,0 +1,70 @@
+From c1d5f8265a1974908ae8dd32714d305035939cc7 Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@gmail.com>
+Date: Wed, 14 Feb 2024 12:24:44 +0100
+Subject: [PATCH] Drop libdl references
+
+dl has been integrated into libc since glibc 2.34, dont need to link to
+it any more.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ meson.build | 2 --
+ src/client/meson.build | 1 -
+ src/libply-splash-core/meson.build | 1 -
+ src/libply/meson.build | 1 -
+ 4 files changed, 5 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index c6996aed..91688f73 100644
+--- a/meson.build
++++ b/meson.build
+@@ -24,8 +24,6 @@ cc = meson.get_compiler('c')
+ lm_dep = cc.find_library('m')
+ lrt_dep = cc.find_library('rt')
+
+-ldl_dep = dependency('dl')
+-
+ libpng_dep = dependency('libpng', version: '>= 1.2.16')
+
+ libudev_dep = dependency('libudev', required: get_option('udev'))
+diff --git a/src/client/meson.build b/src/client/meson.build
+index 0506c8b4..272a811c 100644
+--- a/src/client/meson.build
++++ b/src/client/meson.build
+@@ -52,7 +52,6 @@ pkgconfig.generate(libply_boot_client,
+ description: 'Client Library for Boot Splash',
+ libraries: [
+ libply,
+- ldl_dep,
+ ],
+ subdirs: [
+ 'plymouth-1/ply',
+diff --git a/src/libply-splash-core/meson.build b/src/libply-splash-core/meson.build
+index cd22345c..c0f62b4b 100644
+--- a/src/libply-splash-core/meson.build
++++ b/src/libply-splash-core/meson.build
+@@ -81,7 +81,6 @@ pkgconfig.generate(libply_splash_core,
+ description: 'Utility Library for Boot Splash Plugins',
+ libraries: [
+ libply,
+- ldl_dep,
+ ],
+ subdirs: [
+ 'plymouth-1/ply',
+diff --git a/src/libply/meson.build b/src/libply/meson.build
+index 70f72488..77dced75 100644
+--- a/src/libply/meson.build
++++ b/src/libply/meson.build
+@@ -17,7 +17,6 @@ libply_sources = files(
+ )
+
+ libply_deps = [
+- ldl_dep,
+ lm_dep,
+ ]
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/plymouth/plymouth/0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch b/meta-oe/recipes-core/plymouth/plymouth/0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch
new file mode 100644
index 0000000000..a25aa3b16c
--- /dev/null
+++ b/meta-oe/recipes-core/plymouth/plymouth/0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch
@@ -0,0 +1,63 @@
+From beb9b218f94872e70d02578d4ff016e08abc4717 Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@gmail.com>
+Date: Wed, 14 Feb 2024 12:03:26 +0100
+Subject: [PATCH] Make full path to systemd-tty-ask-password-agent configurable
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ meson.build | 2 +-
+ meson_options.txt | 5 +++++
+ systemd-units/meson.build | 2 +-
+ 3 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 26789060..c6996aed 100644
+--- a/meson.build
++++ b/meson.build
+@@ -44,7 +44,7 @@ if get_option('systemd-integration')
+ systemd_unit_dir = systemd_dep.get_variable('systemdsystemunitdir',
+ pkgconfig_define: [ 'rootprefix', get_option('prefix') ],
+ )
+- systemd_ask_password_agent = find_program('systemd-tty-ask-password-agent')
++ systemd_ask_password_agent = get_option('systemd-tty-ask-password-agent')
+ endif
+
+ if get_option('upstart-monitoring')
+diff --git a/meson_options.txt b/meson_options.txt
+index 4f601bb0..aac661fc 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -53,6 +53,11 @@ option('systemd-integration',
+ value: true,
+ description: 'Coordinate boot up with systemd',
+ )
++option('systemd-tty-ask-password-agent',
++ type: 'string',
++ value: '/bin/systemd-tty-ask-password-agent',
++ description: 'Path of systemd-tty-ask-password-agent',
++)
+ option('udev',
+ type: 'feature',
+ value: 'auto',
+diff --git a/systemd-units/meson.build b/systemd-units/meson.build
+index 06379312..7adc86ae 100644
+--- a/systemd-units/meson.build
++++ b/systemd-units/meson.build
+@@ -21,7 +21,7 @@ foreach unit_templ : systemd_unit_templates
+ 'PLYMOUTH_CLIENT_DIR': get_option('prefix') / get_option('bindir'),
+ 'PLYMOUTH_DAEMON_DIR': get_option('prefix') / get_option('sbindir'),
+ 'plymouthruntimedir': plymouth_runtime_dir,
+- 'SYSTEMD_ASK_PASSWORD_AGENT': systemd_ask_password_agent.full_path(),
++ 'SYSTEMD_ASK_PASSWORD_AGENT': systemd_ask_password_agent,
+ },
+ install: true,
+ install_dir: systemd_unit_dir,
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/plymouth/plymouth/0001-Make-themes-build-optional.patch b/meta-oe/recipes-core/plymouth/plymouth/0001-Make-themes-build-optional.patch
new file mode 100644
index 0000000000..ab9aa7c39e
--- /dev/null
+++ b/meta-oe/recipes-core/plymouth/plymouth/0001-Make-themes-build-optional.patch
@@ -0,0 +1,120 @@
+From 2caf68370791c7aa48f94628c7f7a012753388c5 Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@gmail.com>
+Date: Wed, 14 Feb 2024 15:07:00 +0100
+Subject: [PATCH] Make themes build optional
+
+The users can choose which themes should be built.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ meson_options.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++
+ themes/meson.build | 38 ++++++++++++++++++++++++++---------
+ 2 files changed, 79 insertions(+), 9 deletions(-)
+
+diff --git a/meson_options.txt b/meson_options.txt
+index 4f601bb0..1cbf6d2b 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -83,3 +83,53 @@ option('docs',
+ value: true,
+ description: 'Build documentation',
+ )
++option('spinfinity-theme',
++ type: 'boolean',
++ value: true,
++ description: 'Build with spinfinity theme',
++)
++option('fade-in-theme',
++ type: 'boolean',
++ value: true,
++ description: 'Build with fade-in theme',
++)
++option('text-theme',
++ type: 'boolean',
++ value: true,
++ description: 'Build with text theme',
++)
++option('details-theme',
++ type: 'boolean',
++ value: true,
++ description: 'Build with details theme',
++)
++option('solar-theme',
++ type: 'boolean',
++ value: true,
++ description: 'Build with solar theme',
++)
++option('glow-theme',
++ type: 'boolean',
++ value: true,
++ description: 'Build with glow theme',
++)
++option('script-theme',
++ type: 'boolean',
++ value: true,
++ description: 'Build with script theme',
++)
++option('spinner-theme',
++ type: 'boolean',
++ value: true,
++ description: 'Build with spinner theme',
++)
++option('tribar-theme',
++ type: 'boolean',
++ value: true,
++ description: 'Build with tribar theme',
++)
++option('bgrt-theme',
++ type: 'boolean',
++ value: true,
++ description: 'Build with bgrt theme',
++)
+diff --git a/themes/meson.build b/themes/meson.build
+index dc2ca6e2..15918472 100644
+--- a/themes/meson.build
++++ b/themes/meson.build
+@@ -1,10 +1,30 @@
+-subdir('spinfinity')
+-subdir('fade-in')
++if get_option('spinfinity-theme')
++ subdir('spinfinity')
++endif
++if get_option('fade-in-theme')
++ subdir('fade-in')
++endif
++if get_option('text-theme')
+ subdir('text')
+-subdir('details')
+-subdir('solar')
+-subdir('glow')
+-subdir('script')
+-subdir('spinner')
+-subdir('tribar')
+-subdir('bgrt')
++endif
++if get_option('details-theme')
++ subdir('details')
++endif
++if get_option('solar-theme')
++ subdir('solar')
++endif
++if get_option('glow-theme')
++ subdir('glow')
++endif
++if get_option('script-theme')
++ subdir('script')
++endif
++if get_option('spinner-theme')
++ subdir('spinner')
++endif
++if get_option('tribar-theme')
++ subdir('tribar')
++endif
++if get_option('bgrt-theme')
++ subdir('bgrt')
++endif
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/plymouth/files/0001-plymouth-Add-the-retain-splash-option.patch b/meta-oe/recipes-core/plymouth/plymouth/0001-plymouth-Add-the-retain-splash-option.patch
index ba2bf224a6..58838500bf 100644
--- a/meta-oe/recipes-core/plymouth/files/0001-plymouth-Add-the-retain-splash-option.patch
+++ b/meta-oe/recipes-core/plymouth/plymouth/0001-plymouth-Add-the-retain-splash-option.patch
@@ -10,7 +10,7 @@ Adding the "retain-splash” option to tell plymouth to keep the boot
splash’s contents on screen even after plymouth exits to make the
splash screen show more friendly on the system which boots so fast.
-Upstream-Status: Inappropriate[embedded specific]
+Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
diff --git a/meta-oe/recipes-core/plymouth/files/0001-plymouth-start-service-in-add-related-kernel-paramet.patch b/meta-oe/recipes-core/plymouth/plymouth/0001-plymouth-start-service-in-add-related-kernel-paramet.patch
index 7ba1034e93..7ba1034e93 100644
--- a/meta-oe/recipes-core/plymouth/files/0001-plymouth-start-service-in-add-related-kernel-paramet.patch
+++ b/meta-oe/recipes-core/plymouth/plymouth/0001-plymouth-start-service-in-add-related-kernel-paramet.patch
diff --git a/meta-oe/recipes-core/plymouth/plymouth_0.9.5.bb b/meta-oe/recipes-core/plymouth/plymouth_0.9.5.bb
deleted file mode 100644
index 143ffa10d1..0000000000
--- a/meta-oe/recipes-core/plymouth/plymouth_0.9.5.bb
+++ /dev/null
@@ -1,73 +0,0 @@
-SUMMARY = "Plymouth is a project from Fedora providing a flicker-free graphical boot process."
-
-DESCRIPTION = "Plymouth is an application that runs very early in the boot process \
- (even before the root filesystem is mounted!) that provides a \
- graphical boot animation while the boot process happens in the background. \
-"
-
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/Plymouth"
-SECTION = "base"
-
-LICENSE = "GPL-2.0-or-later"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-DEPENDS = "libcap libpng cairo dbus udev"
-DEPENDS:append:libc-musl = " musl-rpmatch"
-PROVIDES = "virtual/psplash"
-RPROVIDES:${PN} = "virtual-psplash virtual-psplash-support"
-
-SRC_URI = " \
- http://www.freedesktop.org/software/plymouth/releases/${BPN}-${PV}.tar.xz \
- file://0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch \
- file://0001-systemd-switch-to-KillMode-mixed.patch \
- file://0001-plymouth-start-service-in-add-related-kernel-paramet.patch \
- file://0001-plymouth-Add-the-retain-splash-option.patch \
- "
-
-SRC_URI[md5sum] = "8a25d23f3ae732af300a56fa33cacff2"
-
-EXTRA_OECONF += " --enable-shared --disable-static --disable-gtk --disable-documentation \
- --with-logo=${LOGO} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-systemd-integration --with-systemd-tty-ask-password-agent=${base_bindir}/systemd-tty-ask-password-agent', '--disable-systemd-integration', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge','--without-system-root-install','--with-system-root-install',d)} \
-"
-
-PACKAGECONFIG ??= "pango initrd"
-PACKAGECONFIG:append:x86 = " drm"
-PACKAGECONFIG:append:x86-64 = " drm"
-
-PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
-PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
-PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+3"
-PACKAGECONFIG[initrd] = ",,,"
-
-LOGO ??= "${datadir}/plymouth/bizcom.png"
-
-inherit autotools pkgconfig systemd gettext
-
-LDFLAGS:append:libc-musl = " -lrpmatch"
-
-do_install:append() {
- # Remove /var/run from package as plymouth will populate it on startup
- rm -fr "${D}${localstatedir}/run"
-
- if ! ${@bb.utils.contains('PACKAGECONFIG', 'initrd', 'true', 'false', d)}; then
- rm -rf "${D}${libexecdir}"
- fi
-}
-
-PACKAGES =. "${@bb.utils.contains('PACKAGECONFIG', 'initrd', '${PN}-initrd ', '', d)}"
-PACKAGES =+ "${PN}-set-default-theme"
-
-FILES:${PN}-initrd = "${libexecdir}/plymouth/*"
-FILES:${PN}-set-default-theme = "${sbindir}/plymouth-set-default-theme"
-
-FILES:${PN} += "${systemd_unitdir}/system/*"
-FILES:${PN}-dbg += "${libdir}/plymouth/renderers/.debug"
-
-
-RDEPENDS:${PN}-initrd = "bash dracut"
-RDEPENDS:${PN}-set-default-theme = "bash"
-
-SYSTEMD_SERVICE:${PN} = "plymouth-start.service"
diff --git a/meta-oe/recipes-core/plymouth/plymouth_24.004.60.bb b/meta-oe/recipes-core/plymouth/plymouth_24.004.60.bb
new file mode 100644
index 0000000000..cdf24477a7
--- /dev/null
+++ b/meta-oe/recipes-core/plymouth/plymouth_24.004.60.bb
@@ -0,0 +1,102 @@
+SUMMARY = "Plymouth is a project from Fedora providing a flicker-free graphical boot process."
+DESCRIPTION = "Plymouth is an application that runs very early in the boot process \
+(even before the root filesystem is mounted!) that provides a \
+graphical boot animation while the boot process happens in the background."
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/Plymouth"
+SECTION = "base"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = " \
+ http://www.freedesktop.org/software/plymouth/releases/${BPN}-${PV}.tar.xz \
+ file://0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch \
+ file://0001-plymouth-start-service-in-add-related-kernel-paramet.patch \
+ file://0001-plymouth-Add-the-retain-splash-option.patch \
+ file://0001-Drop-libdl-references.patch \
+ file://0001-Avoid-linking-to-plymouth_logo_file.patch \
+ file://0001-Make-themes-build-optional.patch \
+"
+
+SRC_URI[sha256sum] = "f3f7841358c98f5e7b06a9eedbdd5e6882fd9f38bbd14a767fb083e3b55b1c34"
+
+PLYMOUTH_RUNSTATEDIR ??= "${base_prefix}/run"
+PLYMOUTH_RELEASE_FILE ??= "${sysconfdir}/system-release"
+
+PLYMOUTH_BACKGROUND_COLOR ??= "0x5d5950"
+PLYMOUTH_BACKGROUND_START_COLOR_STOP ??= "0x807c71"
+PLYMOUTH_BACKGROUND_END_COLOR_STOP ??= "0x3a362f"
+
+PLYMOUTH_BOOT_TTY ??= "/dev/tty1"
+PLYMOUTH_SHUTDOWN_TTY ??= "/dev/tty63"
+
+PLYMOUTH_THEMES ??= "spinfinity fade-in text details solar glow script spinner tribar bgrt"
+
+EXTRA_OEMESON += " \
+ -Drunstatedir=${PLYMOUTH_RUNSTATEDIR} \
+ -Drelease-file=${PLYMOUTH_RELEASE_FILE} \
+ -Dbackground-color=${PLYMOUTH_BACKGROUND_COLOR} \
+ -Dbackground-start-color-stop=${PLYMOUTH_BACKGROUND_START_COLOR_STOP} \
+ -Dbackground-end-color-stop=${PLYMOUTH_BACKGROUND_END_COLOR_STOP} \
+ -Dboot-tty=${PLYMOUTH_BOOT_TTY} \
+ -Dshutdown-tty=${PLYMOUTH_SHUTDOWN_TTY} \
+"
+
+PACKAGECONFIG ??= "initrd freetype pango udev ${PLYMOUTH_THEMES} ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG:append:x86 = " drm"
+PACKAGECONFIG:append:x86-64 = " drm"
+
+PACKAGECONFIG[drm] = "-Ddrm=true,-Ddrm=false,libdrm"
+PACKAGECONFIG[docs] = "-Ddocs=true,-Ddocs=false"
+PACKAGECONFIG[freetype] = "-Dfreetype=enabled,-Dfreetype=disabled,freetype"
+PACKAGECONFIG[initrd] = ",,"
+PACKAGECONFIG[gtk] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3"
+PACKAGECONFIG[pango] = "-Dpango=enabled,-Dpango=disabled,pango cairo"
+PACKAGECONFIG[systemd] = "-Dsystemd-integration=true ,-Dsystemd-integration=false,systemd"
+PACKAGECONFIG[tracing] = "-Dtracing=true,-Dtracing=false"
+PACKAGECONFIG[udev] = "-Dudev=enabled,-Dudev=disabled,udev"
+PACKAGECONFIG[upstart-monitoring] = "-Dupstart-monitoring=true,-Dupstart-monitoring=false,ncurses dbus"
+
+# theme configs
+PACKAGECONFIG[spinfinity] = "-Dspinfinity-theme=true,-Dspinfinity-theme=false"
+PACKAGECONFIG[fade-in] = "-Dfade-in-theme=true,-Dfade-in-theme=false"
+PACKAGECONFIG[text] = "-Dtext-theme=true,-Dtext-theme=false"
+PACKAGECONFIG[details] = "-Ddetails-theme=true,-Ddetails-theme=false"
+PACKAGECONFIG[solar] = "-Dsolar-theme=true,-Dsolar-theme=false"
+PACKAGECONFIG[glow] = "-Dglow-theme=true,-Dglow-theme=false"
+PACKAGECONFIG[script] = "-Dscript-theme=true,-Dscript-theme=false"
+PACKAGECONFIG[spinner] = "-Dspinner-theme=true,-Dspinner-theme=false"
+PACKAGECONFIG[tribar] = "-Dtribar-theme=true,-Dtribar-theme=false"
+PACKAGECONFIG[bgrt] = "-Dbgrt-theme=true,-Dbgrt-theme=false"
+
+inherit meson pkgconfig systemd gettext
+
+do_install:append() {
+ # Remove ${PLYMOUTH_RUNSTATEDIR} from package as plymouth will populate it on startup
+ rm -fr ${D}${PLYMOUTH_RUNSTATEDIR}
+
+ if ! ${@bb.utils.contains('PACKAGECONFIG', 'initrd', 'true', 'false', d)}; then
+ rm -rf "${D}${libexecdir}"
+ fi
+}
+
+PROVIDES = "virtual/psplash"
+RPROVIDES:${PN} = "virtual-psplash virtual-psplash-support"
+
+PACKAGES =. "${@bb.utils.contains('PACKAGECONFIG', 'initrd', '${PN}-initrd ', '', d)}"
+PACKAGES =+ "${PN}-set-default-theme"
+
+FILES:${PN}-initrd = "${libexecdir}/plymouth/*"
+FILES:${PN}-set-default-theme = "${sbindir}/plymouth-set-default-theme"
+
+FILES:${PN} += "${systemd_unitdir}/system/*"
+
+DEPENDS = "libcap libpng libxkbcommon xkeyboard-config libevdev"
+DEPENDS:append:libc-musl = " musl-rpmatch"
+
+LDFLAGS:append:libc-musl = " -lrpmatch"
+
+RDEPENDS:${PN}-initrd = "bash dracut"
+RDEPENDS:${PN}-set-default-theme = "bash"
+
+SYSTEMD_SERVICE:${PN} = "plymouth-start.service"
diff --git a/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb b/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb
index 00b87bbd8b..247cc4266f 100644
--- a/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb
+++ b/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb
@@ -4,7 +4,6 @@ SECTION = "libs"
LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://src/proxy-libintl/COPYING.LIB.txt;md5=bc400bc21422f9a92e76ec2c5167ca2e"
-PR = "r1"
PROVIDES = "virtual/libintl"
SRC_URI = " \
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-1.2.0/run-ptest b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-1.2.0/run-ptest
deleted file mode 100755
index f6ade0c7e4..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-1.2.0/run-ptest
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-set -e
-set -o pipefail
-
-SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
-
-${SCRIPTPATH}/../tests/sdbus-c++-unit-tests 2>&1 | \
-sed -r 's/^\[\s+OK\s+\] (.*) \([0-9]+\sms\)$/OK: \1 /' | \
-sed -r 's/^\[\s+FAILED\s+\] (.*) \([0-9]+\sms\)$/FAILED: \1 /' | \
-awk '{if ($1 == "OK:" || $1 == "FAILED:") {print $0}}'
-
-${SCRIPTPATH}/../tests/sdbus-c++-integration-tests 2>&1 | \
-sed -r 's/^\[\s+OK\s+\] (.*) \([0-9]+\sms\)$/OK: \1 /' | \
-sed -r 's/^\[\s+FAILED\s+\] (.*) \([0-9]+\sms\)$/FAILED: \1 /' | \
-awk '{if ($1 == "OK:" || $1 == "FAILED:") {print $0}}'
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-1.5.0/run-ptest b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-1.5.0/run-ptest
new file mode 100755
index 0000000000..2dc6e1eca1
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-1.5.0/run-ptest
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -e
+set -o pipefail
+
+SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
+
+${SCRIPTPATH}/sdbus-c++-unit-tests 2>&1 | \
+sed -r 's/^\[\s+OK\s+\] (.*) \([0-9]+\sms\)$/OK: \1 /' | \
+sed -r 's/^\[\s+FAILED\s+\] (.*) \([0-9]+\sms\)$/FAILED: \1 /' | \
+awk '{if ($1 == "OK:" || $1 == "FAILED:") {print $0}}'
+
+${SCRIPTPATH}/sdbus-c++-integration-tests 2>&1 | \
+sed -r 's/^\[\s+OK\s+\] (.*) \([0-9]+\sms\)$/OK: \1 /' | \
+sed -r 's/^\[\s+FAILED\s+\] (.*) \([0-9]+\sms\)$/FAILED: \1 /' | \
+awk '{if ($1 == "OK:" || $1 == "FAILED:") {print $0}}'
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-Adjust-for-musl-headers.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-Adjust-for-musl-headers.patch
deleted file mode 100644
index 2363679c98..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-Adjust-for-musl-headers.patch
+++ /dev/null
@@ -1,453 +0,0 @@
-From 4c2e932664ec67662f4a0306cca4a7cd82853bda Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 21 Jan 2022 22:19:37 -0800
-Subject: [PATCH] Adjust for musl headers
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/libsystemd-network/sd-dhcp6-client.c | 2 +-
- src/network/netdev/bareudp.c | 2 +-
- src/network/netdev/batadv.c | 2 +-
- src/network/netdev/bond.c | 2 +-
- src/network/netdev/bridge.c | 2 +-
- src/network/netdev/dummy.c | 2 +-
- src/network/netdev/geneve.c | 2 +-
- src/network/netdev/ifb.c | 2 +-
- src/network/netdev/ipoib.c | 2 +-
- src/network/netdev/ipvlan.c | 2 +-
- src/network/netdev/macsec.c | 2 +-
- src/network/netdev/macvlan.c | 2 +-
- src/network/netdev/netdev.c | 2 +-
- src/network/netdev/netdevsim.c | 2 +-
- src/network/netdev/nlmon.c | 2 +-
- src/network/netdev/tunnel.c | 2 +-
- src/network/netdev/vcan.c | 2 +-
- src/network/netdev/veth.c | 2 +-
- src/network/netdev/vlan.c | 2 +-
- src/network/netdev/vrf.c | 2 +-
- src/network/netdev/vxcan.c | 2 +-
- src/network/netdev/vxlan.c | 2 +-
- src/network/netdev/xfrm.c | 2 +-
- src/network/networkd-bridge-mdb.c | 4 ++--
- src/network/networkd-dhcp-common.c | 3 ++-
- src/network/networkd-dhcp-prefix-delegation.c | 4 ++--
- src/network/networkd-dhcp-server.c | 2 +-
- src/network/networkd-dhcp4.c | 2 +-
- src/network/networkd-link.c | 2 +-
- src/network/networkd-route.c | 8 ++++----
- src/network/networkd-setlink.c | 2 +-
- src/shared/linux/ethtool.h | 3 ++-
- src/shared/netif-util.c | 2 +-
- src/udev/udev-builtin-net_id.c | 2 +-
- 34 files changed, 41 insertions(+), 39 deletions(-)
-
---- a/src/libsystemd-network/sd-dhcp6-client.c
-+++ b/src/libsystemd-network/sd-dhcp6-client.c
-@@ -5,7 +5,7 @@
-
- #include <errno.h>
- #include <sys/ioctl.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <linux/if_infiniband.h>
-
- #include "sd-dhcp6-client.h"
---- a/src/network/netdev/bareudp.c
-+++ b/src/network/netdev/bareudp.c
-@@ -2,7 +2,7 @@
- * Copyright © 2020 VMware, Inc. */
-
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "bareudp.h"
- #include "netlink-util.h"
---- a/src/network/netdev/batadv.c
-+++ b/src/network/netdev/batadv.c
-@@ -3,7 +3,7 @@
- #include <inttypes.h>
- #include <netinet/in.h>
- #include <linux/genetlink.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "batadv.h"
- #include "fileio.h"
---- a/src/network/netdev/bond.c
-+++ b/src/network/netdev/bond.c
-@@ -1,7 +1,7 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "alloc-util.h"
- #include "bond.h"
---- a/src/network/netdev/bridge.c
-+++ b/src/network/netdev/bridge.c
-@@ -2,7 +2,7 @@
-
- #include <net/if.h>
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <linux/if_bridge.h>
-
- #include "bridge.h"
---- a/src/network/netdev/dummy.c
-+++ b/src/network/netdev/dummy.c
-@@ -1,6 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "dummy.h"
-
---- a/src/network/netdev/geneve.c
-+++ b/src/network/netdev/geneve.c
-@@ -2,7 +2,7 @@
-
- #include <net/if.h>
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "alloc-util.h"
- #include "conf-parser.h"
---- a/src/network/netdev/ifb.c
-+++ b/src/network/netdev/ifb.c
-@@ -1,7 +1,7 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later
- * Copyright © 2019 VMware, Inc. */
-
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "ifb.h"
-
---- a/src/network/netdev/ipoib.c
-+++ b/src/network/netdev/ipoib.c
-@@ -1,6 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <linux/if_link.h>
-
- #include "ipoib.h"
---- a/src/network/netdev/ipvlan.c
-+++ b/src/network/netdev/ipvlan.c
-@@ -2,7 +2,7 @@
-
- #include <net/if.h>
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "conf-parser.h"
- #include "ipvlan.h"
---- a/src/network/netdev/macsec.c
-+++ b/src/network/netdev/macsec.c
-@@ -1,7 +1,7 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <linux/if_ether.h>
- #include <linux/if_macsec.h>
- #include <linux/genetlink.h>
---- a/src/network/netdev/macvlan.c
-+++ b/src/network/netdev/macvlan.c
-@@ -2,7 +2,7 @@
-
- #include <net/if.h>
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "conf-parser.h"
- #include "macvlan.h"
---- a/src/network/netdev/netdev.c
-+++ b/src/network/netdev/netdev.c
-@@ -2,7 +2,7 @@
-
- #include <net/if.h>
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <unistd.h>
-
- #include "alloc-util.h"
---- a/src/network/netdev/netdevsim.c
-+++ b/src/network/netdev/netdevsim.c
-@@ -1,6 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "netdevsim.h"
-
---- a/src/network/netdev/nlmon.c
-+++ b/src/network/netdev/nlmon.c
-@@ -1,6 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "nlmon.h"
-
---- a/src/network/netdev/tunnel.c
-+++ b/src/network/netdev/tunnel.c
-@@ -2,7 +2,7 @@
-
- #include <netinet/in.h>
- #include <linux/fou.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <linux/if_tunnel.h>
- #include <linux/ip.h>
- #include <linux/ip6_tunnel.h>
---- a/src/network/netdev/vcan.c
-+++ b/src/network/netdev/vcan.c
-@@ -1,6 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "vcan.h"
-
---- a/src/network/netdev/veth.c
-+++ b/src/network/netdev/veth.c
-@@ -3,7 +3,7 @@
- #include <errno.h>
- #include <net/if.h>
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <linux/veth.h>
-
- #include "netlink-util.h"
---- a/src/network/netdev/vlan.c
-+++ b/src/network/netdev/vlan.c
-@@ -2,7 +2,7 @@
-
- #include <errno.h>
- #include <net/if.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <linux/if_vlan.h>
-
- #include "parse-util.h"
---- a/src/network/netdev/vrf.c
-+++ b/src/network/netdev/vrf.c
-@@ -2,7 +2,7 @@
-
- #include <net/if.h>
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "vrf.h"
-
---- a/src/network/netdev/vxcan.c
-+++ b/src/network/netdev/vxcan.c
-@@ -1,7 +1,7 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
- #include <linux/can/vxcan.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "vxcan.h"
-
---- a/src/network/netdev/vxlan.c
-+++ b/src/network/netdev/vxlan.c
-@@ -2,7 +2,7 @@
-
- #include <net/if.h>
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "conf-parser.h"
- #include "alloc-util.h"
---- a/src/network/netdev/xfrm.c
-+++ b/src/network/netdev/xfrm.c
-@@ -1,6 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "missing_network.h"
- #include "xfrm.h"
---- a/src/network/networkd-bridge-mdb.c
-+++ b/src/network/networkd-bridge-mdb.c
-@@ -1,7 +1,5 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
--#include <net/if.h>
--#include <linux/if_bridge.h>
-
- #include "netlink-util.h"
- #include "networkd-bridge-mdb.h"
-@@ -11,6 +9,8 @@
- #include "networkd-queue.h"
- #include "string-util.h"
- #include "vlan-util.h"
-+#include <net/if.h>
-+#include <linux/if_bridge.h>
-
- #define STATIC_BRIDGE_MDB_ENTRIES_PER_NETWORK_MAX 1024U
-
---- a/src/network/networkd-dhcp-common.c
-+++ b/src/network/networkd-dhcp-common.c
-@@ -1,7 +1,8 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-+#include <net/if.h>
-
- #include "bus-error.h"
- #include "dhcp-identifier.h"
---- a/src/network/networkd-dhcp-prefix-delegation.c
-+++ b/src/network/networkd-dhcp-prefix-delegation.c
-@@ -1,7 +1,5 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
--#include <linux/ipv6_route.h>
--
- #include "sd-dhcp6-client.h"
-
- #include "hashmap.h"
-@@ -21,6 +19,8 @@
- #include "strv.h"
- #include "tunnel.h"
-
-+#include <linux/ipv6_route.h>
-+
- bool link_dhcp_pd_is_enabled(Link *link) {
- assert(link);
-
---- a/src/network/networkd-dhcp-server.c
-+++ b/src/network/networkd-dhcp-server.c
-@@ -1,7 +1,7 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <linux/if.h>
-
- #include "sd-dhcp-server.h"
---- a/src/network/networkd-dhcp4.c
-+++ b/src/network/networkd-dhcp4.c
-@@ -3,7 +3,7 @@
- #include <netinet/in.h>
- #include <netinet/ip.h>
- #include <linux/if.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "alloc-util.h"
- #include "dhcp-client-internal.h"
---- a/src/network/networkd-link.c
-+++ b/src/network/networkd-link.c
-@@ -3,7 +3,7 @@
- #include <net/if.h>
- #include <netinet/in.h>
- #include <linux/if.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <linux/if_link.h>
- #include <linux/netdevice.h>
- #include <sys/socket.h>
---- a/src/network/networkd-route.c
-+++ b/src/network/networkd-route.c
-@@ -1,9 +1,5 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
--#include <linux/icmpv6.h>
--#include <linux/ipv6_route.h>
--#include <linux/nexthop.h>
--
- #include "alloc-util.h"
- #include "event-util.h"
- #include "netlink-util.h"
-@@ -21,6 +17,10 @@
- #include "vrf.h"
- #include "wireguard.h"
-
-+#include <linux/icmpv6.h>
-+#include <linux/ipv6_route.h>
-+#include <linux/nexthop.h>
-+
- int route_new(Route **ret) {
- _cleanup_(route_freep) Route *route = NULL;
-
---- a/src/network/networkd-setlink.c
-+++ b/src/network/networkd-setlink.c
-@@ -2,7 +2,7 @@
-
- #include <netinet/in.h>
- #include <linux/if.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <linux/if_bridge.h>
-
- #include "missing_network.h"
---- a/src/shared/linux/ethtool.h
-+++ b/src/shared/linux/ethtool.h
-@@ -16,7 +16,8 @@
-
- #include <linux/kernel.h>
- #include <linux/types.h>
--#include <linux/if_ether.h>
-+#include <netinet/if_ether.h>
-+//#include <linux/if_ether.h>
-
- #ifndef __KERNEL__
- #include <limits.h> /* for INT_MAX */
---- a/src/shared/netif-util.c
-+++ b/src/shared/netif-util.c
-@@ -1,6 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
-
- #include "arphrd-util.h"
- #include "device-util.h"
---- a/src/udev/udev-builtin-net_id.c
-+++ b/src/udev/udev-builtin-net_id.c
-@@ -18,7 +18,7 @@
- #include <stdarg.h>
- #include <unistd.h>
- #include <linux/if.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <linux/netdevice.h>
- #include <linux/pci_regs.h>
-
---- a/src/network/netdev/wireguard.c
-+++ b/src/network/netdev/wireguard.c
-@@ -6,7 +6,7 @@
- #include <sys/ioctl.h>
- #include <net/if.h>
- #include <netinet/in.h>
--#include <linux/if_arp.h>
-+//#include <linux/if_arp.h>
- #include <linux/ipv6_route.h>
-
- #include "sd-resolve.h"
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch
deleted file mode 100644
index 01afd37a37..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From b0933e76c6f0594c10cf8a9a70b34e15b68066d1 Mon Sep 17 00:00:00 2001
-From: Rudi Heitbaum <rudi@heitbaum.com>
-Date: Sat, 23 Jul 2022 10:38:49 +0000
-Subject: [PATCH] glibc: Remove #include <linux/fs.h> to resolve fsconfig_command/mount_attr conflict with glibc 2.36
-
-Upstream-Status: Backport [https://github.com/systemd/systemd/pull/23992/commits/21c03ad5e9d8d0350e30dae92a5e15da318a1539]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- meson.build | 13 ++++++++++++-
- src/basic/fd-util.c | 2 ++
- src/core/namespace.c | 2 ++
- src/shared/mount-util.c | 2 ++
- 4 files changed, 18 insertions(+), 1 deletion(-)
-
---- a/meson.build
-+++ b/meson.build
-@@ -474,7 +474,6 @@ decl_headers = '''
- #include <uchar.h>
- #include <sys/mount.h>
- #include <sys/stat.h>
--#include <linux/fs.h>
- '''
-
- foreach decl : ['char16_t',
-@@ -486,6 +485,17 @@ foreach decl : ['char16_t',
- # We get -1 if the size cannot be determined
- have = cc.sizeof(decl, prefix : decl_headers, args : '-D_GNU_SOURCE') > 0
-
-+ if decl == 'struct mount_attr'
-+ if have
-+ want_linux_fs_h = false
-+ else
-+ have = cc.sizeof(decl,
-+ prefix : decl_headers + '#include <linux/fs.h>',
-+ args : '-D_GNU_SOURCE') > 0
-+ want_linux_fs_h = have
-+ endif
-+ endif
-+
- if decl == 'struct statx'
- if have
- want_linux_stat_h = false
-@@ -501,6 +511,7 @@ foreach decl : ['char16_t',
- endforeach
-
- conf.set10('WANT_LINUX_STAT_H', want_linux_stat_h)
-+conf.set10('WANT_LINUX_FS_H', want_linux_fs_h)
-
- foreach ident : ['secure_getenv', '__secure_getenv']
- conf.set10('HAVE_' + ident.to_upper(), cc.has_function(ident))
---- a/src/core/namespace.c
-+++ b/src/core/namespace.c
-@@ -6,7 +6,9 @@
- #include <stdio.h>
- #include <sys/mount.h>
- #include <unistd.h>
-+#if WANT_LINUX_FS_H
- #include <linux/fs.h>
-+#endif
-
- #include "alloc-util.h"
- #include "base-filesystem.h"
---- a/src/shared/mount-util.c
-+++ b/src/shared/mount-util.c
-@@ -7,7 +7,9 @@
- #include <sys/statvfs.h>
- #include <unistd.h>
- #include <linux/loop.h>
-+#if WANT_LINUX_FS_H
- #include <linux/fs.h>
-+#endif
-
- #include "alloc-util.h"
- #include "chase-symlinks.h"
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-missing_type.h-add-comparison_fn_t.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-missing_type.h-add-comparison_fn_t.patch
new file mode 100644
index 0000000000..2aa5dee6b5
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-missing_type.h-add-comparison_fn_t.patch
@@ -0,0 +1,61 @@
+From 01195eb9f7d59139fb45df506ac6b3968c14a57f Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 13:55:12 +0800
+Subject: [PATCH 01/22] missing_type.h: add comparison_fn_t
+
+Make it work with musl where comparison_fn_t and is not provided.
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+[Rebased for v244]
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[Rebased for v242]
+Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+[Rebased for v250, Drop __compare_fn_t]
+Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
+---
+ src/basic/missing_type.h | 4 ++++
+ src/basic/sort-util.h | 1 +
+ src/libsystemd/sd-journal/catalog.c | 1 +
+ 3 files changed, 6 insertions(+)
+
+diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
+index f6233090a9..6c0456349d 100644
+--- a/src/basic/missing_type.h
++++ b/src/basic/missing_type.h
+@@ -10,3 +10,7 @@
+ #if !HAVE_CHAR16_T
+ #define char16_t uint16_t
+ #endif
++
++#ifndef __GLIBC__
++typedef int (*comparison_fn_t)(const void *, const void *);
++#endif
+diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
+index 9c818bd747..ef10c8be2c 100644
+--- a/src/basic/sort-util.h
++++ b/src/basic/sort-util.h
+@@ -4,6 +4,7 @@
+ #include <stdlib.h>
+
+ #include "macro.h"
++#include "missing_type.h"
+
+ /* This is the same as glibc's internal __compar_d_fn_t type. glibc exports a public comparison_fn_t, for the
+ * external type __compar_fn_t, but doesn't do anything similar for __compar_d_fn_t. Let's hence do that
+diff --git a/src/libsystemd/sd-journal/catalog.c b/src/libsystemd/sd-journal/catalog.c
+index ae91534198..7f67eea38b 100644
+--- a/src/libsystemd/sd-journal/catalog.c
++++ b/src/libsystemd/sd-journal/catalog.c
+@@ -28,6 +28,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "tmpfile-util.h"
++#include "missing_type.h"
+
+ const char * const catalog_file_dirs[] = {
+ "/usr/local/lib/systemd/catalog/",
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-pass-correct-parameters-to-getdents64.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-pass-correct-parameters-to-getdents64.patch
deleted file mode 100644
index 03a29b5327..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-pass-correct-parameters-to-getdents64.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From fbc10748c7c59d82024a4d35146b8dfef8d52927 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 21 Jan 2022 15:15:11 -0800
-Subject: [PATCH 1/2] pass correct parameters to getdents64
-
-Fixes
-../git/src/basic/recurse-dir.c:57:40: error: incompatible pointer types passing 'uint8_t *' (aka 'unsigned char *') to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types]
- n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size);
- ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-../git/src/basic/stat-util.c:102:28: error: incompatible pointer types passing 'union (unnamed union at ../git/src/basic/stat-util.c:78:9) *' to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types]
- n = getdents64(fd, &buffer, sizeof(buffer));
- ^~~~~~~
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/basic/recurse-dir.c | 2 +-
- src/basic/stat-util.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/basic/recurse-dir.c b/src/basic/recurse-dir.c
-index efa1797b7b..797285e3be 100644
---- a/src/basic/recurse-dir.c
-+++ b/src/basic/recurse-dir.c
-@@ -54,7 +54,7 @@ int readdir_all(int dir_fd,
- bs = MIN(MALLOC_SIZEOF_SAFE(de) - offsetof(DirectoryEntries, buffer), (size_t) SSIZE_MAX);
- assert(bs > de->buffer_size);
-
-- n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size);
-+ n = getdents64(dir_fd, de->buffer + de->buffer_size, bs - de->buffer_size);
- if (n < 0)
- return -errno;
- if (n == 0)
-diff --git a/src/basic/stat-util.c b/src/basic/stat-util.c
-index efac7b002e..9e1fe7f5a0 100644
---- a/src/basic/stat-util.c
-+++ b/src/basic/stat-util.c
-@@ -99,7 +99,7 @@ int dir_is_empty_at(int dir_fd, const char *path) {
- return fd;
- }
-
-- n = getdents64(fd, &buffer, sizeof(buffer));
-+ n = getdents64(fd, (struct dirent *)&buffer, sizeof(buffer));
- if (n < 0)
- return -errno;
-
---
-2.34.1
-
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-Add-sys-stat.h-for-S_IFDIR.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-Add-sys-stat.h-for-S_IFDIR.patch
deleted file mode 100644
index 7dfa1a0df2..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-Add-sys-stat.h-for-S_IFDIR.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From d16f7b37c917b91e951b9313e2c8264c72ed93e5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 21 Jan 2022 15:17:37 -0800
-Subject: [PATCH 2/2] Add sys/stat.h for S_IFDIR
-
-../git/src/shared/mkdir-label.c:13:61: error: use of undeclared identifier 'S_IFDIR'
- r = mac_selinux_create_file_prepare_at(dirfd, path, S_IFDIR);
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/shared/mkdir-label.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/shared/mkdir-label.c b/src/shared/mkdir-label.c
-index d36a6466d7..63b764cd83 100644
---- a/src/shared/mkdir-label.c
-+++ b/src/shared/mkdir-label.c
-@@ -4,6 +4,7 @@
- #include "selinux-util.h"
- #include "smack-util.h"
- #include "user-util.h"
-+#include <sys/stat.h>
-
- int mkdirat_label(int dirfd, const char *path, mode_t mode) {
- int r;
---
-2.34.1
-
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-add-fallback-parse_printf_format-implementation.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-add-fallback-parse_printf_format-implementation.patch
new file mode 100644
index 0000000000..900a931632
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-add-fallback-parse_printf_format-implementation.patch
@@ -0,0 +1,434 @@
+From 872b72739e62123867ce6c4f82aa37de24cc3f75 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sat, 22 May 2021 20:26:24 +0200
+Subject: [PATCH 02/22] add fallback parse_printf_format implementation
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Emil Renner Berthing <systemd@esmil.dk>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[rebased for systemd 243]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+---
+ meson.build | 1 +
+ src/basic/meson.build | 5 +
+ src/basic/parse-printf-format.c | 273 +++++++++++++++++++++++
+ src/basic/parse-printf-format.h | 57 +++++
+ src/basic/stdio-util.h | 2 +-
+ src/libsystemd/sd-journal/journal-send.c | 2 +-
+ 6 files changed, 338 insertions(+), 2 deletions(-)
+ create mode 100644 src/basic/parse-printf-format.c
+ create mode 100644 src/basic/parse-printf-format.h
+
+diff --git a/meson.build b/meson.build
+index 7419e2b0b0..01fd3ffc19 100644
+--- a/meson.build
++++ b/meson.build
+@@ -725,6 +725,7 @@ endif
+ foreach header : ['crypt.h',
+ 'linux/memfd.h',
+ 'linux/vm_sockets.h',
++ 'printf.h',
+ 'sys/auxv.h',
+ 'threads.h',
+ 'valgrind/memcheck.h',
+diff --git a/src/basic/meson.build b/src/basic/meson.build
+index d7450d8b44..c3e3daf4bd 100644
+--- a/src/basic/meson.build
++++ b/src/basic/meson.build
+@@ -183,6 +183,11 @@ endforeach
+
+ basic_sources += generated_gperf_headers
+
++if conf.get('HAVE_PRINTF_H') != 1
++ basic_sources += [files('parse-printf-format.c')]
++endif
++
++
+ ############################################################
+
+ arch_list = [
+diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c
+new file mode 100644
+index 0000000000..49437e5445
+--- /dev/null
++++ b/src/basic/parse-printf-format.c
+@@ -0,0 +1,273 @@
++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
++
++/***
++ This file is part of systemd.
++
++ Copyright 2014 Emil Renner Berthing <systemd@esmil.dk>
++
++ With parts from the musl C library
++ Copyright 2005-2014 Rich Felker, et al.
++
++ systemd is free software; you can redistribute it and/or modify it
++ under the terms of the GNU Lesser General Public License as published by
++ the Free Software Foundation; either version 2.1 of the License, or
++ (at your option) any later version.
++
++ systemd is distributed in the hope that it will be useful, but
++ WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public License
++ along with systemd; If not, see <http://www.gnu.org/licenses/>.
++***/
++
++#include <stddef.h>
++#include <string.h>
++
++#include "parse-printf-format.h"
++
++static const char *consume_nonarg(const char *fmt)
++{
++ do {
++ if (*fmt == '\0')
++ return fmt;
++ } while (*fmt++ != '%');
++ return fmt;
++}
++
++static const char *consume_num(const char *fmt)
++{
++ for (;*fmt >= '0' && *fmt <= '9'; fmt++)
++ /* do nothing */;
++ return fmt;
++}
++
++static const char *consume_argn(const char *fmt, size_t *arg)
++{
++ const char *p = fmt;
++ size_t val = 0;
++
++ if (*p < '1' || *p > '9')
++ return fmt;
++ do {
++ val = 10*val + (*p++ - '0');
++ } while (*p >= '0' && *p <= '9');
++
++ if (*p != '$')
++ return fmt;
++ *arg = val;
++ return p+1;
++}
++
++static const char *consume_flags(const char *fmt)
++{
++ while (1) {
++ switch (*fmt) {
++ case '#':
++ case '0':
++ case '-':
++ case ' ':
++ case '+':
++ case '\'':
++ case 'I':
++ fmt++;
++ continue;
++ }
++ return fmt;
++ }
++}
++
++enum state {
++ BARE,
++ LPRE,
++ LLPRE,
++ HPRE,
++ HHPRE,
++ BIGLPRE,
++ ZTPRE,
++ JPRE,
++ STOP
++};
++
++enum type {
++ NONE,
++ PTR,
++ INT,
++ UINT,
++ ULLONG,
++ LONG,
++ ULONG,
++ SHORT,
++ USHORT,
++ CHAR,
++ UCHAR,
++ LLONG,
++ SIZET,
++ IMAX,
++ UMAX,
++ PDIFF,
++ UIPTR,
++ DBL,
++ LDBL,
++ MAXTYPE
++};
++
++static const short pa_types[MAXTYPE] = {
++ [NONE] = PA_INT,
++ [PTR] = PA_POINTER,
++ [INT] = PA_INT,
++ [UINT] = PA_INT,
++ [ULLONG] = PA_INT | PA_FLAG_LONG_LONG,
++ [LONG] = PA_INT | PA_FLAG_LONG,
++ [ULONG] = PA_INT | PA_FLAG_LONG,
++ [SHORT] = PA_INT | PA_FLAG_SHORT,
++ [USHORT] = PA_INT | PA_FLAG_SHORT,
++ [CHAR] = PA_CHAR,
++ [UCHAR] = PA_CHAR,
++ [LLONG] = PA_INT | PA_FLAG_LONG_LONG,
++ [SIZET] = PA_INT | PA_FLAG_LONG,
++ [IMAX] = PA_INT | PA_FLAG_LONG_LONG,
++ [UMAX] = PA_INT | PA_FLAG_LONG_LONG,
++ [PDIFF] = PA_INT | PA_FLAG_LONG_LONG,
++ [UIPTR] = PA_INT | PA_FLAG_LONG,
++ [DBL] = PA_DOUBLE,
++ [LDBL] = PA_DOUBLE | PA_FLAG_LONG_DOUBLE
++};
++
++#define S(x) [(x)-'A']
++#define E(x) (STOP + (x))
++
++static const unsigned char states[]['z'-'A'+1] = {
++ { /* 0: bare types */
++ S('d') = E(INT), S('i') = E(INT),
++ S('o') = E(UINT),S('u') = E(UINT),S('x') = E(UINT), S('X') = E(UINT),
++ S('e') = E(DBL), S('f') = E(DBL), S('g') = E(DBL), S('a') = E(DBL),
++ S('E') = E(DBL), S('F') = E(DBL), S('G') = E(DBL), S('A') = E(DBL),
++ S('c') = E(CHAR),S('C') = E(INT),
++ S('s') = E(PTR), S('S') = E(PTR), S('p') = E(UIPTR),S('n') = E(PTR),
++ S('m') = E(NONE),
++ S('l') = LPRE, S('h') = HPRE, S('L') = BIGLPRE,
++ S('z') = ZTPRE, S('j') = JPRE, S('t') = ZTPRE
++ }, { /* 1: l-prefixed */
++ S('d') = E(LONG), S('i') = E(LONG),
++ S('o') = E(ULONG),S('u') = E(ULONG),S('x') = E(ULONG),S('X') = E(ULONG),
++ S('e') = E(DBL), S('f') = E(DBL), S('g') = E(DBL), S('a') = E(DBL),
++ S('E') = E(DBL), S('F') = E(DBL), S('G') = E(DBL), S('A') = E(DBL),
++ S('c') = E(INT), S('s') = E(PTR), S('n') = E(PTR),
++ S('l') = LLPRE
++ }, { /* 2: ll-prefixed */
++ S('d') = E(LLONG), S('i') = E(LLONG),
++ S('o') = E(ULLONG),S('u') = E(ULLONG),
++ S('x') = E(ULLONG),S('X') = E(ULLONG),
++ S('n') = E(PTR)
++ }, { /* 3: h-prefixed */
++ S('d') = E(SHORT), S('i') = E(SHORT),
++ S('o') = E(USHORT),S('u') = E(USHORT),
++ S('x') = E(USHORT),S('X') = E(USHORT),
++ S('n') = E(PTR),
++ S('h') = HHPRE
++ }, { /* 4: hh-prefixed */
++ S('d') = E(CHAR), S('i') = E(CHAR),
++ S('o') = E(UCHAR),S('u') = E(UCHAR),
++ S('x') = E(UCHAR),S('X') = E(UCHAR),
++ S('n') = E(PTR)
++ }, { /* 5: L-prefixed */
++ S('e') = E(LDBL),S('f') = E(LDBL),S('g') = E(LDBL), S('a') = E(LDBL),
++ S('E') = E(LDBL),S('F') = E(LDBL),S('G') = E(LDBL), S('A') = E(LDBL),
++ S('n') = E(PTR)
++ }, { /* 6: z- or t-prefixed (assumed to be same size) */
++ S('d') = E(PDIFF),S('i') = E(PDIFF),
++ S('o') = E(SIZET),S('u') = E(SIZET),
++ S('x') = E(SIZET),S('X') = E(SIZET),
++ S('n') = E(PTR)
++ }, { /* 7: j-prefixed */
++ S('d') = E(IMAX), S('i') = E(IMAX),
++ S('o') = E(UMAX), S('u') = E(UMAX),
++ S('x') = E(UMAX), S('X') = E(UMAX),
++ S('n') = E(PTR)
++ }
++};
++
++size_t parse_printf_format(const char *fmt, size_t n, int *types)
++{
++ size_t i = 0;
++ size_t last = 0;
++
++ memset(types, 0, n);
++
++ while (1) {
++ size_t arg;
++ unsigned int state;
++
++ fmt = consume_nonarg(fmt);
++ if (*fmt == '\0')
++ break;
++ if (*fmt == '%') {
++ fmt++;
++ continue;
++ }
++ arg = 0;
++ fmt = consume_argn(fmt, &arg);
++ /* flags */
++ fmt = consume_flags(fmt);
++ /* width */
++ if (*fmt == '*') {
++ size_t warg = 0;
++ fmt = consume_argn(fmt+1, &warg);
++ if (warg == 0)
++ warg = ++i;
++ if (warg > last)
++ last = warg;
++ if (warg <= n && types[warg-1] == NONE)
++ types[warg-1] = INT;
++ } else
++ fmt = consume_num(fmt);
++ /* precision */
++ if (*fmt == '.') {
++ fmt++;
++ if (*fmt == '*') {
++ size_t parg = 0;
++ fmt = consume_argn(fmt+1, &parg);
++ if (parg == 0)
++ parg = ++i;
++ if (parg > last)
++ last = parg;
++ if (parg <= n && types[parg-1] == NONE)
++ types[parg-1] = INT;
++ } else {
++ if (*fmt == '-')
++ fmt++;
++ fmt = consume_num(fmt);
++ }
++ }
++ /* length modifier and conversion specifier */
++ state = BARE;
++ do {
++ unsigned char c = *fmt++;
++
++ if (c < 'A' || c > 'z')
++ continue;
++ state = states[state]S(c);
++ if (state == 0)
++ continue;
++ } while (state < STOP);
++
++ if (state == E(NONE))
++ continue;
++
++ if (arg == 0)
++ arg = ++i;
++ if (arg > last)
++ last = arg;
++ if (arg <= n)
++ types[arg-1] = state - STOP;
++ }
++
++ if (last > n)
++ last = n;
++ for (i = 0; i < last; i++)
++ types[i] = pa_types[types[i]];
++
++ return last;
++}
+diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h
+new file mode 100644
+index 0000000000..47be7522d7
+--- /dev/null
++++ b/src/basic/parse-printf-format.h
+@@ -0,0 +1,57 @@
++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
++
++/***
++ This file is part of systemd.
++
++ Copyright 2014 Emil Renner Berthing <systemd@esmil.dk>
++
++ With parts from the GNU C Library
++ Copyright 1991-2014 Free Software Foundation, Inc.
++
++ systemd is free software; you can redistribute it and/or modify it
++ under the terms of the GNU Lesser General Public License as published by
++ the Free Software Foundation; either version 2.1 of the License, or
++ (at your option) any later version.
++
++ systemd is distributed in the hope that it will be useful, but
++ WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public License
++ along with systemd; If not, see <http://www.gnu.org/licenses/>.
++***/
++
++#pragma once
++
++#include "config.h"
++
++#if HAVE_PRINTF_H
++#include <printf.h>
++#else
++
++#include <stddef.h>
++
++enum { /* C type: */
++ PA_INT, /* int */
++ PA_CHAR, /* int, cast to char */
++ PA_WCHAR, /* wide char */
++ PA_STRING, /* const char *, a '\0'-terminated string */
++ PA_WSTRING, /* const wchar_t *, wide character string */
++ PA_POINTER, /* void * */
++ PA_FLOAT, /* float */
++ PA_DOUBLE, /* double */
++ PA_LAST
++};
++
++/* Flag bits that can be set in a type returned by `parse_printf_format'. */
++#define PA_FLAG_MASK 0xff00
++#define PA_FLAG_LONG_LONG (1 << 8)
++#define PA_FLAG_LONG_DOUBLE PA_FLAG_LONG_LONG
++#define PA_FLAG_LONG (1 << 9)
++#define PA_FLAG_SHORT (1 << 10)
++#define PA_FLAG_PTR (1 << 11)
++
++size_t parse_printf_format(const char *fmt, size_t n, int *types);
++
++#endif /* HAVE_PRINTF_H */
+diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h
+index 4e93ac90c9..f9deb6f662 100644
+--- a/src/basic/stdio-util.h
++++ b/src/basic/stdio-util.h
+@@ -1,12 +1,12 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ #pragma once
+
+-#include <printf.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <sys/types.h>
+
+ #include "macro.h"
++#include "parse-printf-format.h"
+
+ _printf_(3, 4)
+ static inline char *snprintf_ok(char *buf, size_t len, const char *format, ...) {
+diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
+index be23b2fe75..69a2eb6404 100644
+--- a/src/libsystemd/sd-journal/journal-send.c
++++ b/src/libsystemd/sd-journal/journal-send.c
+@@ -2,7 +2,6 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <printf.h>
+ #include <stddef.h>
+ #include <sys/un.h>
+ #include <unistd.h>
+@@ -28,6 +27,7 @@
+ #include "stdio-util.h"
+ #include "string-util.h"
+ #include "tmpfile-util.h"
++#include "parse-printf-format.h"
+
+ #define SNDBUF_SIZE (8*1024*1024)
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch
new file mode 100644
index 0000000000..be231cf6b2
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch
@@ -0,0 +1,79 @@
+From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Thu, 21 Feb 2019 16:23:24 +0800
+Subject: [PATCH 1/2] binfmt: Don't install dependency links at install time
+ for the binfmt services
+
+use [Install] blocks so that they get created when the service is enabled
+like a traditional service.
+
+The [Install] blocks were rejected upstream as they don't have a way to
+"enable" it on install without static symlinks which can't be disabled,
+only masked. We however can do that in a postinst.
+
+Upstream-Status: Denied
+
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[rebased for systemd 243]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+---
+ units/meson.build | 2 --
+ units/proc-sys-fs-binfmt_misc.automount | 3 +++
+ units/systemd-binfmt.service.in | 4 ++++
+ 3 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/units/meson.build b/units/meson.build
+index e7bfb7f838..1d5ec4b178 100644
+--- a/units/meson.build
++++ b/units/meson.build
+@@ -154,7 +154,6 @@ units = [
+ {
+ 'file' : 'proc-sys-fs-binfmt_misc.automount',
+ 'conditions' : ['ENABLE_BINFMT'],
+- 'symlinks' : ['sysinit.target.wants/'],
+ },
+ {
+ 'file' : 'proc-sys-fs-binfmt_misc.mount',
+@@ -251,7 +250,6 @@ units = [
+ {
+ 'file' : 'systemd-binfmt.service.in',
+ 'conditions' : ['ENABLE_BINFMT'],
+- 'symlinks' : ['sysinit.target.wants/'],
+ },
+ {
+ 'file' : 'systemd-bless-boot.service.in',
+diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
+index 5d212015a5..6c2900ca77 100644
+--- a/units/proc-sys-fs-binfmt_misc.automount
++++ b/units/proc-sys-fs-binfmt_misc.automount
+@@ -22,3 +22,6 @@ Before=shutdown.target
+
+ [Automount]
+ Where=/proc/sys/fs/binfmt_misc
++
++[Install]
++WantedBy=sysinit.target
+diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in
+index 6861c76674..531e9fbd90 100644
+--- a/units/systemd-binfmt.service.in
++++ b/units/systemd-binfmt.service.in
+@@ -14,6 +14,7 @@ Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html
+ Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
+ DefaultDependencies=no
+ Conflicts=shutdown.target
++Wants=proc-sys-fs-binfmt_misc.automount
+ After=proc-sys-fs-binfmt_misc.automount
+ After=proc-sys-fs-binfmt_misc.mount
+ After=local-fs.target
+@@ -31,3 +32,6 @@ RemainAfterExit=yes
+ ExecStart={{LIBEXECDIR}}/systemd-binfmt
+ ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister
+ TimeoutSec=90s
++
++[Install]
++WantedBy=sysinit.target
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-don-t-use-glibc-specific-qsort_r.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-don-t-use-glibc-specific-qsort_r.patch
deleted file mode 100644
index 5027682df2..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-don-t-use-glibc-specific-qsort_r.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-From 5d730902f47498a2866b46875352f6810a01d67c Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 13:41:41 +0800
-Subject: [PATCH] don't use glibc-specific qsort_r
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-[Rebased for v241]
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[Rebased for v242]
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-[Rebased for v247]
-Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
-
----
- src/basic/sort-util.h | 14 --------------
- src/shared/format-table.c | 36 ++++++++++++++++++++++++------------
- src/shared/hwdb-util.c | 19 ++++++++++++++-----
- 3 files changed, 38 insertions(+), 31 deletions(-)
-
---- a/src/basic/sort-util.h
-+++ b/src/basic/sort-util.h
-@@ -61,18 +61,4 @@ static inline void _qsort_safe(void *bas
- _qsort_safe((p), (n), sizeof((p)[0]), (comparison_fn_t) _func_); \
- })
-
--static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, comparison_userdata_fn_t compar, void *userdata) {
-- if (nmemb <= 1)
-- return;
--
-- assert(base);
-- qsort_r(base, nmemb, size, compar, userdata);
--}
--
--#define typesafe_qsort_r(p, n, func, userdata) \
-- ({ \
-- int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \
-- qsort_r_safe((p), (n), sizeof((p)[0]), (comparison_userdata_fn_t) _func_, userdata); \
-- })
--
- int cmp_int(const int *a, const int *b);
---- a/src/shared/format-table.c
-+++ b/src/shared/format-table.c
-@@ -1324,30 +1324,32 @@ static int cell_data_compare(TableData *
- return CMP(index_a, index_b);
- }
-
--static int table_data_compare(const size_t *a, const size_t *b, Table *t) {
-+static Table *user_table;
-+static int table_data_compare(const void *x, const void *y) {
-+ const size_t *a = x, *b=y;
- int r;
-
-- assert(t);
-- assert(t->sort_map);
-+ assert(user_table);
-+ assert(user_table->sort_map);
-
- /* Make sure the header stays at the beginning */
-- if (*a < t->n_columns && *b < t->n_columns)
-+ if (*a < user_table->n_columns && *b < user_table->n_columns)
- return 0;
-- if (*a < t->n_columns)
-+ if (*a < user_table->n_columns)
- return -1;
-- if (*b < t->n_columns)
-+ if (*b < user_table->n_columns)
- return 1;
-
- /* Order other lines by the sorting map */
-- for (size_t i = 0; i < t->n_sort_map; i++) {
-+ for (size_t i = 0; i < user_table->n_sort_map; i++) {
- TableData *d, *dd;
-
-- d = t->data[*a + t->sort_map[i]];
-- dd = t->data[*b + t->sort_map[i]];
-+ d = user_table->data[*a + user_table->sort_map[i]];
-+ dd = user_table->data[*b + user_table->sort_map[i]];
-
- r = cell_data_compare(d, *a, dd, *b);
- if (r != 0)
-- return t->reverse_map && t->reverse_map[t->sort_map[i]] ? -r : r;
-+ return user_table->reverse_map && user_table->reverse_map[user_table->sort_map[i]] ? -r : r;
- }
-
- /* Order identical lines by the order there were originally added in */
-@@ -2009,7 +2011,12 @@ int table_print(Table *t, FILE *f) {
- for (size_t i = 0; i < n_rows; i++)
- sorted[i] = i * t->n_columns;
-
-- typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
-+ if (n_rows <= 1)
-+ return 0;
-+ assert(sorted);
-+ user_table = t;
-+ qsort(sorted, n_rows, sizeof(size_t), table_data_compare);
-+ user_table = NULL;
- }
-
- if (t->display_map)
-@@ -2647,7 +2654,12 @@ int table_to_json(Table *t, JsonVariant
- for (size_t i = 0; i < n_rows; i++)
- sorted[i] = i * t->n_columns;
-
-- typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
-+ if (n_rows <= 1)
-+ return 0;
-+ assert(sorted);
-+ user_table = t;
-+ qsort(sorted, n_rows, sizeof(size_t), table_data_compare);
-+ user_table = NULL;
- }
-
- if (t->display_map)
---- a/src/shared/hwdb-util.c
-+++ b/src/shared/hwdb-util.c
-@@ -127,9 +127,13 @@ static struct trie* trie_free(struct tri
-
- DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
-
--static int trie_values_cmp(const struct trie_value_entry *a, const struct trie_value_entry *b, struct trie *trie) {
-- return strcmp(trie->strings->buf + a->key_off,
-- trie->strings->buf + b->key_off);
-+static struct trie *trie_node_add_value_trie;
-+static int trie_values_cmp(const void *v1, const void *v2) {
-+ const struct trie_value_entry *a = v1;
-+ const struct trie_value_entry *b = v2;
-+
-+ return strcmp(trie_node_add_value_trie->strings->buf + a->key_off,
-+ trie_node_add_value_trie->strings->buf + b->key_off);
- }
-
- static int trie_node_add_value(struct trie *trie, struct trie_node *node,
-@@ -157,7 +161,10 @@ static int trie_node_add_value(struct tr
- .value_off = v,
- };
-
-- val = typesafe_bsearch_r(&search, node->values, node->values_count, trie_values_cmp, trie);
-+ trie_node_add_value_trie = trie;
-+ val = bsearch(&search, node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp);
-+ trie_node_add_value_trie = NULL;
-+
- if (val) {
- /* At this point we have 2 identical properties on the same match-string.
- * Since we process files in order, we just replace the previous value. */
-@@ -183,7 +190,9 @@ static int trie_node_add_value(struct tr
- .line_number = line_number,
- };
- node->values_count++;
-- typesafe_qsort_r(node->values, node->values_count, trie_values_cmp, trie);
-+ trie_node_add_value_trie = trie;
-+ qsort(node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp);
-+ trie_node_add_value_trie = NULL;
- return 0;
- }
-
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
deleted file mode 100644
index f3edc7d82b..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 3b42a888685aee1776a12cff84a5fe0063378483 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 13:55:12 +0800
-Subject: [PATCH] missing_type.h: add __compare_fn_t and comparison_fn_t
-
-Make it work with musl where comparison_fn_t and __compare_fn_t
-is not provided.
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-[Rebased for v244]
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[Rebased for v242]
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-
----
- src/basic/missing_type.h | 9 +++++++++
- src/basic/sort-util.h | 1 +
- src/core/kmod-setup.c | 1 +
- src/libsystemd/sd-journal/catalog.c | 1 +
- 4 files changed, 12 insertions(+)
-
---- a/src/basic/missing_type.h
-+++ b/src/basic/missing_type.h
-@@ -10,3 +10,12 @@
- #if !HAVE_CHAR16_T
- #define char16_t uint16_t
- #endif
-+
-+#ifndef __GLIBC__
-+typedef int (*comparison_fn_t)(const void *, const void *);
-+#endif
-+
-+#ifndef __COMPAR_FN_T
-+#define __COMPAR_FN_T
-+typedef int (*__compar_fn_t)(const void *, const void *);
-+#endif
---- a/src/basic/sort-util.h
-+++ b/src/basic/sort-util.h
-@@ -4,6 +4,7 @@
- #include <stdlib.h>
-
- #include "macro.h"
-+#include "missing_type.h"
-
- /* This is the same as glibc's internal __compar_d_fn_t type. glibc exports a public comparison_fn_t, for the
- * external type __compar_fn_t, but doesn't do anything similar for __compar_d_fn_t. Let's hence do that
---- a/src/core/kmod-setup.c
-+++ b/src/core/kmod-setup.c
-@@ -10,6 +10,7 @@
- #include "macro.h"
- #include "recurse-dir.h"
- #include "string-util.h"
-+#include "missing_type.h"
-
- #if HAVE_KMOD
- #include "module-util.h"
---- a/src/libsystemd/sd-journal/catalog.c
-+++ b/src/libsystemd/sd-journal/catalog.c
-@@ -28,6 +28,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "tmpfile-util.h"
-+#include "missing_type.h"
-
- const char * const catalog_file_dirs[] = {
- "/usr/local/lib/systemd/catalog/",
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-src-basic-missing.h-check-for-missing-strndupa.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-src-basic-missing.h-check-for-missing-strndupa.patch
new file mode 100644
index 0000000000..5595b5bc23
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-src-basic-missing.h-check-for-missing-strndupa.patch
@@ -0,0 +1,699 @@
+From 87f1d38f40c5fe9cadf2b2de442473e4e5605788 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 14:18:21 +0800
+Subject: [PATCH 03/22] src/basic/missing.h: check for missing strndupa
+
+include missing.h for definition of strndupa
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[Rebased for v242]
+Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+[rebased for systemd 243]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+[rebased for systemd 244]
+[Rebased for v247]
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+[Rebased for v254]
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[Rebased for v255.1]
+---
+ meson.build | 1 +
+ src/backlight/backlight.c | 1 +
+ src/basic/cgroup-util.c | 1 +
+ src/basic/env-util.c | 1 +
+ src/basic/log.c | 1 +
+ src/basic/missing_stdlib.h | 12 ++++++++++++
+ src/basic/mkdir.c | 1 +
+ src/basic/mountpoint-util.c | 1 +
+ src/basic/parse-util.c | 1 +
+ src/basic/path-lookup.c | 1 +
+ src/basic/percent-util.c | 1 +
+ src/basic/proc-cmdline.c | 1 +
+ src/basic/procfs-util.c | 1 +
+ src/basic/time-util.c | 1 +
+ src/boot/bless-boot.c | 1 +
+ src/core/dbus-cgroup.c | 1 +
+ src/core/dbus-execute.c | 1 +
+ src/core/dbus-util.c | 1 +
+ src/core/execute.c | 1 +
+ src/core/kmod-setup.c | 1 +
+ src/core/service.c | 1 +
+ src/coredump/coredump-vacuum.c | 1 +
+ src/fstab-generator/fstab-generator.c | 1 +
+ src/journal-remote/journal-remote-main.c | 1 +
+ src/journal/journalctl.c | 1 +
+ src/libsystemd/sd-bus/bus-message.c | 1 +
+ src/libsystemd/sd-bus/bus-objects.c | 1 +
+ src/libsystemd/sd-bus/bus-socket.c | 1 +
+ src/libsystemd/sd-bus/sd-bus.c | 1 +
+ src/libsystemd/sd-bus/test-bus-benchmark.c | 1 +
+ src/libsystemd/sd-journal/sd-journal.c | 1 +
+ src/login/pam_systemd.c | 1 +
+ src/network/generator/network-generator.c | 1 +
+ src/nspawn/nspawn-settings.c | 1 +
+ src/nss-mymachines/nss-mymachines.c | 1 +
+ src/portable/portable.c | 1 +
+ src/resolve/resolvectl.c | 1 +
+ src/shared/bus-get-properties.c | 1 +
+ src/shared/bus-unit-procs.c | 1 +
+ src/shared/bus-unit-util.c | 1 +
+ src/shared/bus-util.c | 1 +
+ src/shared/dns-domain.c | 1 +
+ src/shared/journal-importer.c | 1 +
+ src/shared/logs-show.c | 1 +
+ src/shared/pager.c | 1 +
+ src/socket-proxy/socket-proxyd.c | 1 +
+ src/test/test-hexdecoct.c | 1 +
+ src/udev/udev-builtin-net_id.c | 1 +
+ src/udev/udev-builtin-path_id.c | 1 +
+ src/udev/udev-event.c | 1 +
+ src/udev/udev-rules.c | 1 +
+ 51 files changed, 62 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index 01fd3ffc19..61a872b753 100644
+--- a/meson.build
++++ b/meson.build
+@@ -567,6 +567,7 @@ foreach ident : ['secure_getenv', '__secure_getenv']
+ endforeach
+
+ foreach ident : [
++ ['strndupa' , '''#include <string.h>'''],
+ ['memfd_create', '''#include <sys/mman.h>'''],
+ ['gettid', '''#include <sys/types.h>
+ #include <unistd.h>'''],
+diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
+index 5ac9f904a9..99d5122dd7 100644
+--- a/src/backlight/backlight.c
++++ b/src/backlight/backlight.c
+@@ -20,6 +20,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "terminal-util.h"
++#include "missing_stdlib.h"
+
+ #define PCI_CLASS_GRAPHICS_CARD 0x30000
+
+diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
+index 18b16ecc0e..d2be79622f 100644
+--- a/src/basic/cgroup-util.c
++++ b/src/basic/cgroup-util.c
+@@ -38,6 +38,7 @@
+ #include "unit-name.h"
+ #include "user-util.h"
+ #include "xattr-util.h"
++#include "missing_stdlib.h"
+
+ static int cg_enumerate_items(const char *controller, const char *path, FILE **ret, const char *item) {
+ _cleanup_free_ char *fs = NULL;
+diff --git a/src/basic/env-util.c b/src/basic/env-util.c
+index d3bf73385f..16b17358ca 100644
+--- a/src/basic/env-util.c
++++ b/src/basic/env-util.c
+@@ -19,6 +19,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+
+ /* We follow bash for the character set. Different shells have different rules. */
+ #define VALID_BASH_ENV_NAME_CHARS \
+diff --git a/src/basic/log.c b/src/basic/log.c
+index 1470611a75..9924ec2b9a 100644
+--- a/src/basic/log.c
++++ b/src/basic/log.c
+@@ -40,6 +40,7 @@
+ #include "terminal-util.h"
+ #include "time-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+
+ #define SNDBUF_SIZE (8*1024*1024)
+ #define IOVEC_MAX 256U
+diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
+index 8c76f93eb2..9068bfb4f0 100644
+--- a/src/basic/missing_stdlib.h
++++ b/src/basic/missing_stdlib.h
+@@ -11,3 +11,15 @@
+ # error "neither secure_getenv nor __secure_getenv are available"
+ # endif
+ #endif
++
++/* string.h */
++#if ! HAVE_STRNDUPA
++#define strndupa(s, n) \
++ ({ \
++ const char *__old = (s); \
++ size_t __len = strnlen(__old, (n)); \
++ char *__new = (char *)alloca(__len + 1); \
++ __new[__len] = '\0'; \
++ (char *)memcpy(__new, __old, __len); \
++ })
++#endif
+diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
+index c770e5ed32..1fd8816cd0 100644
+--- a/src/basic/mkdir.c
++++ b/src/basic/mkdir.c
+@@ -16,6 +16,7 @@
+ #include "stat-util.h"
+ #include "stdio-util.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+
+ int mkdirat_safe_internal(
+ int dir_fd,
+diff --git a/src/basic/mountpoint-util.c b/src/basic/mountpoint-util.c
+index bf67f7e01a..409f8d8a73 100644
+--- a/src/basic/mountpoint-util.c
++++ b/src/basic/mountpoint-util.c
+@@ -18,6 +18,7 @@
+ #include "missing_stat.h"
+ #include "missing_syscall.h"
+ #include "mkdir.h"
++#include "missing_stdlib.h"
+ #include "mountpoint-util.h"
+ #include "nulstr-util.h"
+ #include "parse-util.h"
+diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
+index 0430e33e40..f3728de026 100644
+--- a/src/basic/parse-util.c
++++ b/src/basic/parse-util.c
+@@ -18,6 +18,7 @@
+ #include "stat-util.h"
+ #include "string-util.h"
+ #include "strv.h"
++#include "missing_stdlib.h"
+
+ int parse_boolean(const char *v) {
+ if (!v)
+diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
+index 4e3d59fc56..726e240df0 100644
+--- a/src/basic/path-lookup.c
++++ b/src/basic/path-lookup.c
+@@ -16,6 +16,7 @@
+ #include "strv.h"
+ #include "tmpfile-util.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+
+ int xdg_user_runtime_dir(char **ret, const char *suffix) {
+ const char *e;
+diff --git a/src/basic/percent-util.c b/src/basic/percent-util.c
+index cab9d0eaea..5f6ca258e9 100644
+--- a/src/basic/percent-util.c
++++ b/src/basic/percent-util.c
+@@ -3,6 +3,7 @@
+ #include "percent-util.h"
+ #include "string-util.h"
+ #include "parse-util.h"
++#include "missing_stdlib.h"
+
+ static int parse_parts_value_whole(const char *p, const char *symbol) {
+ const char *pc, *n;
+diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c
+index 522d8de1f4..7c129dc0fc 100644
+--- a/src/basic/proc-cmdline.c
++++ b/src/basic/proc-cmdline.c
+@@ -16,6 +16,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "virt.h"
++#include "missing_stdlib.h"
+
+ int proc_cmdline_filter_pid1_args(char **argv, char ***ret) {
+ enum {
+diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
+index d7cfcd9105..6cb0ddf575 100644
+--- a/src/basic/procfs-util.c
++++ b/src/basic/procfs-util.c
+@@ -12,6 +12,7 @@
+ #include "procfs-util.h"
+ #include "stdio-util.h"
+ #include "string-util.h"
++#include "missing_stdlib.h"
+
+ int procfs_get_pid_max(uint64_t *ret) {
+ _cleanup_free_ char *value = NULL;
+diff --git a/src/basic/time-util.c b/src/basic/time-util.c
+index f9014dc560..1d7840a5b5 100644
+--- a/src/basic/time-util.c
++++ b/src/basic/time-util.c
+@@ -27,6 +27,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "time-util.h"
++#include "missing_stdlib.h"
+
+ static clockid_t map_clock_id(clockid_t c) {
+
+diff --git a/src/boot/bless-boot.c b/src/boot/bless-boot.c
+index 0c0b4f23c7..68fe5ca509 100644
+--- a/src/boot/bless-boot.c
++++ b/src/boot/bless-boot.c
+@@ -22,6 +22,7 @@
+ #include "terminal-util.h"
+ #include "verbs.h"
+ #include "virt.h"
++#include "missing_stdlib.h"
+
+ static char **arg_path = NULL;
+
+diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
+index 4237e694c0..05f9d9d9a9 100644
+--- a/src/core/dbus-cgroup.c
++++ b/src/core/dbus-cgroup.c
+@@ -25,6 +25,7 @@
+ #include "parse-util.h"
+ #include "path-util.h"
+ #include "percent-util.h"
++#include "missing_stdlib.h"
+ #include "socket-util.h"
+
+ BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", CGroupTasksMax, cgroup_tasks_max_resolve);
+diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
+index 4daa1cefd3..2c77901471 100644
+--- a/src/core/dbus-execute.c
++++ b/src/core/dbus-execute.c
+@@ -42,6 +42,7 @@
+ #include "unit-printf.h"
+ #include "user-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+
+ BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
+ static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
+diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c
+index d680a64268..e59f48103e 100644
+--- a/src/core/dbus-util.c
++++ b/src/core/dbus-util.c
+@@ -9,6 +9,7 @@
+ #include "unit-printf.h"
+ #include "user-util.h"
+ #include "unit.h"
++#include "missing_stdlib.h"
+
+ int bus_property_get_triggered_unit(
+ sd_bus *bus,
+diff --git a/src/core/execute.c b/src/core/execute.c
+index ef0bf88687..bd3da0c401 100644
+--- a/src/core/execute.c
++++ b/src/core/execute.c
+@@ -72,6 +72,7 @@
+ #include "unit-serialize.h"
+ #include "user-util.h"
+ #include "utmp-wtmp.h"
++#include "missing_stdlib.h"
+
+ static bool is_terminal_input(ExecInput i) {
+ return IN_SET(i,
+diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
+index b8e3f7aadd..8ce8ca68d8 100644
+--- a/src/core/kmod-setup.c
++++ b/src/core/kmod-setup.c
+@@ -13,6 +13,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "virt.h"
++#include "missing_stdlib.h"
+
+ #if HAVE_KMOD
+ #include "module-util.h"
+diff --git a/src/core/service.c b/src/core/service.c
+index b9eb40c555..268fe7573b 100644
+--- a/src/core/service.c
++++ b/src/core/service.c
+@@ -45,6 +45,7 @@
+ #include "unit-name.h"
+ #include "unit.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+
+ #define service_spawn(...) service_spawn_internal(__func__, __VA_ARGS__)
+
+diff --git a/src/coredump/coredump-vacuum.c b/src/coredump/coredump-vacuum.c
+index 7e0c98cb7d..978a7f5874 100644
+--- a/src/coredump/coredump-vacuum.c
++++ b/src/coredump/coredump-vacuum.c
+@@ -17,6 +17,7 @@
+ #include "string-util.h"
+ #include "time-util.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+
+ #define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */
+ #define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
+diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
+index 016f3baa7f..b1def81313 100644
+--- a/src/fstab-generator/fstab-generator.c
++++ b/src/fstab-generator/fstab-generator.c
+@@ -37,6 +37,7 @@
+ #include "unit-name.h"
+ #include "virt.h"
+ #include "volatile-util.h"
++#include "missing_stdlib.h"
+
+ typedef enum MountPointFlags {
+ MOUNT_NOAUTO = 1 << 0,
+diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c
+index da0f20d3ce..f22ce41908 100644
+--- a/src/journal-remote/journal-remote-main.c
++++ b/src/journal-remote/journal-remote-main.c
+@@ -27,6 +27,7 @@
+ #include "stat-util.h"
+ #include "string-table.h"
+ #include "strv.h"
++#include "missing_stdlib.h"
+
+ #define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
+ #define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem"
+diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
+index 7f3dcd56a4..41b7cbaaf1 100644
+--- a/src/journal/journalctl.c
++++ b/src/journal/journalctl.c
+@@ -77,6 +77,7 @@
+ #include "unit-name.h"
+ #include "user-util.h"
+ #include "varlink.h"
++#include "missing_stdlib.h"
+
+ #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
+ #define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages processed */
+diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
+index ff0228081f..9066fcb133 100644
+--- a/src/libsystemd/sd-bus/bus-message.c
++++ b/src/libsystemd/sd-bus/bus-message.c
+@@ -19,6 +19,7 @@
+ #include "strv.h"
+ #include "time-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+
+ static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
+ static int message_parse_fields(sd_bus_message *m);
+diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
+index c25c40ff37..57a5da704f 100644
+--- a/src/libsystemd/sd-bus/bus-objects.c
++++ b/src/libsystemd/sd-bus/bus-objects.c
+@@ -11,6 +11,7 @@
+ #include "missing_capability.h"
+ #include "string-util.h"
+ #include "strv.h"
++#include "missing_stdlib.h"
+
+ static int node_vtable_get_userdata(
+ sd_bus *bus,
+diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c
+index 3c59d0d615..746922d46f 100644
+--- a/src/libsystemd/sd-bus/bus-socket.c
++++ b/src/libsystemd/sd-bus/bus-socket.c
+@@ -29,6 +29,7 @@
+ #include "string-util.h"
+ #include "user-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+
+ #define SNDBUF_SIZE (8*1024*1024)
+
+diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
+index 4a0259f8bb..aaa90d2223 100644
+--- a/src/libsystemd/sd-bus/sd-bus.c
++++ b/src/libsystemd/sd-bus/sd-bus.c
+@@ -46,6 +46,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+
+ #define log_debug_bus_message(m) \
+ do { \
+diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c
+index d988588de0..458df8df9a 100644
+--- a/src/libsystemd/sd-bus/test-bus-benchmark.c
++++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
+@@ -14,6 +14,7 @@
+ #include "string-util.h"
+ #include "tests.h"
+ #include "time-util.h"
++#include "missing_stdlib.h"
+
+ #define MAX_SIZE (2*1024*1024)
+
+diff --git a/src/libsystemd/sd-journal/sd-journal.c b/src/libsystemd/sd-journal/sd-journal.c
+index 6b9ff0a4ed..4a5027ad0f 100644
+--- a/src/libsystemd/sd-journal/sd-journal.c
++++ b/src/libsystemd/sd-journal/sd-journal.c
+@@ -44,6 +44,7 @@
+ #include "strv.h"
+ #include "syslog-util.h"
+ #include "uid-alloc-range.h"
++#include "missing_stdlib.h"
+
+ #define JOURNAL_FILES_RECHECK_USEC (2 * USEC_PER_SEC)
+
+diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c
+index b8da266e27..4bb8dd9496 100644
+--- a/src/login/pam_systemd.c
++++ b/src/login/pam_systemd.c
+@@ -35,6 +35,7 @@
+ #include "login-util.h"
+ #include "macro.h"
+ #include "missing_syscall.h"
++#include "missing_stdlib.h"
+ #include "pam-util.h"
+ #include "parse-util.h"
+ #include "path-util.h"
+diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c
+index 48527a2c73..9777fe0561 100644
+--- a/src/network/generator/network-generator.c
++++ b/src/network/generator/network-generator.c
+@@ -14,6 +14,7 @@
+ #include "string-table.h"
+ #include "string-util.h"
+ #include "strv.h"
++#include "missing_stdlib.h"
+
+ /*
+ # .network
+diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c
+index 161b1c1c70..ba1c459f78 100644
+--- a/src/nspawn/nspawn-settings.c
++++ b/src/nspawn/nspawn-settings.c
+@@ -16,6 +16,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+
+ Settings *settings_new(void) {
+ Settings *s;
+diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c
+index c64e79bdff..eda26b0b9a 100644
+--- a/src/nss-mymachines/nss-mymachines.c
++++ b/src/nss-mymachines/nss-mymachines.c
+@@ -21,6 +21,7 @@
+ #include "nss-util.h"
+ #include "signal-util.h"
+ #include "string-util.h"
++#include "missing_stdlib.h"
+
+ static void setup_logging_once(void) {
+ static pthread_once_t once = PTHREAD_ONCE_INIT;
+diff --git a/src/portable/portable.c b/src/portable/portable.c
+index d4b448a627..bb26623565 100644
+--- a/src/portable/portable.c
++++ b/src/portable/portable.c
+@@ -40,6 +40,7 @@
+ #include "strv.h"
+ #include "tmpfile-util.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+
+ /* Markers used in the first line of our 20-portable.conf unit file drop-in to determine, that a) the unit file was
+ * dropped there by the portable service logic and b) for which image it was dropped there. */
+diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c
+index afa537f160..32ccee4ae5 100644
+--- a/src/resolve/resolvectl.c
++++ b/src/resolve/resolvectl.c
+@@ -48,6 +48,7 @@
+ #include "varlink.h"
+ #include "verb-log-control.h"
+ #include "verbs.h"
++#include "missing_stdlib.h"
+
+ static int arg_family = AF_UNSPEC;
+ static int arg_ifindex = 0;
+diff --git a/src/shared/bus-get-properties.c b/src/shared/bus-get-properties.c
+index 53e5d6b99f..851ecd5644 100644
+--- a/src/shared/bus-get-properties.c
++++ b/src/shared/bus-get-properties.c
+@@ -4,6 +4,7 @@
+ #include "rlimit-util.h"
+ #include "stdio-util.h"
+ #include "string-util.h"
++#include "missing_stdlib.h"
+
+ int bus_property_get_bool(
+ sd_bus *bus,
+diff --git a/src/shared/bus-unit-procs.c b/src/shared/bus-unit-procs.c
+index 8b462b5627..183ce1c18e 100644
+--- a/src/shared/bus-unit-procs.c
++++ b/src/shared/bus-unit-procs.c
+@@ -11,6 +11,7 @@
+ #include "sort-util.h"
+ #include "string-util.h"
+ #include "terminal-util.h"
++#include "missing_stdlib.h"
+
+ struct CGroupInfo {
+ char *cgroup_path;
+diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c
+index 4ee9706847..30c8084847 100644
+--- a/src/shared/bus-unit-util.c
++++ b/src/shared/bus-unit-util.c
+@@ -50,6 +50,7 @@
+ #include "unit-def.h"
+ #include "user-util.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+
+ int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
+ assert(message);
+diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
+index 4123152d93..74f148c8b4 100644
+--- a/src/shared/bus-util.c
++++ b/src/shared/bus-util.c
+@@ -24,6 +24,7 @@
+ #include "path-util.h"
+ #include "socket-util.h"
+ #include "stdio-util.h"
++#include "missing_stdlib.h"
+
+ static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
+ sd_event *e = ASSERT_PTR(userdata);
+diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c
+index b41c9b06ca..e69050a507 100644
+--- a/src/shared/dns-domain.c
++++ b/src/shared/dns-domain.c
+@@ -18,6 +18,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "utf8.h"
++#include "missing_stdlib.h"
+
+ int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
+ const char *n;
+diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c
+index 83e9834bbf..74eaae6f5e 100644
+--- a/src/shared/journal-importer.c
++++ b/src/shared/journal-importer.c
+@@ -16,6 +16,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "unaligned.h"
++#include "missing_stdlib.h"
+
+ enum {
+ IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */
+diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
+index a5d04003bd..10392c132d 100644
+--- a/src/shared/logs-show.c
++++ b/src/shared/logs-show.c
+@@ -41,6 +41,7 @@
+ #include "time-util.h"
+ #include "utf8.h"
+ #include "web-util.h"
++#include "missing_stdlib.h"
+
+ /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
+ #define PRINT_LINE_THRESHOLD 3
+diff --git a/src/shared/pager.c b/src/shared/pager.c
+index 19deefab56..6b6d0af1a0 100644
+--- a/src/shared/pager.c
++++ b/src/shared/pager.c
+@@ -25,6 +25,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "terminal-util.h"
++#include "missing_stdlib.h"
+
+ static pid_t pager_pid = 0;
+
+diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c
+index 287fd6c181..8f8d5493da 100644
+--- a/src/socket-proxy/socket-proxyd.c
++++ b/src/socket-proxy/socket-proxyd.c
+@@ -27,6 +27,7 @@
+ #include "set.h"
+ #include "socket-util.h"
+ #include "string-util.h"
++#include "missing_stdlib.h"
+
+ #define BUFFER_SIZE (256 * 1024)
+
+diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
+index f884008660..987e180697 100644
+--- a/src/test/test-hexdecoct.c
++++ b/src/test/test-hexdecoct.c
+@@ -7,6 +7,7 @@
+ #include "macro.h"
+ #include "random-util.h"
+ #include "string-util.h"
++#include "missing_stdlib.h"
+ #include "tests.h"
+
+ TEST(hexchar) {
+diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
+index 91b40088f4..f528a46b8e 100644
+--- a/src/udev/udev-builtin-net_id.c
++++ b/src/udev/udev-builtin-net_id.c
+@@ -39,6 +39,7 @@
+ #include "strv.h"
+ #include "strxcpyx.h"
+ #include "udev-builtin.h"
++#include "missing_stdlib.h"
+
+ #define ONBOARD_14BIT_INDEX_MAX ((1U << 14) - 1)
+ #define ONBOARD_16BIT_INDEX_MAX ((1U << 16) - 1)
+diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c
+index 467c9a6ad3..f74dae60af 100644
+--- a/src/udev/udev-builtin-path_id.c
++++ b/src/udev/udev-builtin-path_id.c
+@@ -24,6 +24,7 @@
+ #include "sysexits.h"
+ #include "udev-builtin.h"
+ #include "udev-util.h"
++#include "missing_stdlib.h"
+
+ _printf_(2,3)
+ static void path_prepend(char **path, const char *fmt, ...) {
+diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
+index ed22c8b679..19ebe20237 100644
+--- a/src/udev/udev-event.c
++++ b/src/udev/udev-event.c
+@@ -16,6 +16,7 @@
+ #include "udev-util.h"
+ #include "udev-watch.h"
+ #include "user-util.h"
++#include "missing_stdlib.h"
+
+ UdevEvent *udev_event_new(sd_device *dev, usec_t exec_delay_usec, sd_netlink *rtnl, int log_level) {
+ UdevEvent *event;
+diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
+index 5f12002394..febe345b4c 100644
+--- a/src/udev/udev-rules.c
++++ b/src/udev/udev-rules.c
+@@ -41,6 +41,7 @@
+ #include "udev-util.h"
+ #include "user-util.h"
+ #include "virt.h"
++#include "missing_stdlib.h"
+
+ #define RULES_DIRS ((const char* const*) CONF_PATHS_STRV("udev/rules.d"))
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-add-fallback-parse_printf_format-implementation.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-add-fallback-parse_printf_format-implementation.patch
deleted file mode 100644
index d93f630752..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-add-fallback-parse_printf_format-implementation.patch
+++ /dev/null
@@ -1,419 +0,0 @@
-From 3e0df2c22bfd37bc62bf09a01ec498e40d3599de Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Sat, 22 May 2021 20:26:24 +0200
-Subject: [PATCH] add fallback parse_printf_format implementation
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Emil Renner Berthing <systemd@esmil.dk>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- meson.build | 1 +
- src/basic/meson.build | 5 +
- src/basic/parse-printf-format.c | 273 +++++++++++++++++++++++
- src/basic/parse-printf-format.h | 57 +++++
- src/basic/stdio-util.h | 2 +-
- src/libsystemd/sd-journal/journal-send.c | 2 +-
- 6 files changed, 338 insertions(+), 2 deletions(-)
- create mode 100644 src/basic/parse-printf-format.c
- create mode 100644 src/basic/parse-printf-format.h
-
---- a/meson.build
-+++ b/meson.build
-@@ -686,6 +686,7 @@ endif
- foreach header : ['crypt.h',
- 'linux/memfd.h',
- 'linux/vm_sockets.h',
-+ 'printf.h',
- 'sys/auxv.h',
- 'valgrind/memcheck.h',
- 'valgrind/valgrind.h',
---- a/src/basic/meson.build
-+++ b/src/basic/meson.build
-@@ -335,6 +335,11 @@ endforeach
-
- basic_sources += generated_gperf_headers
-
-+if conf.get('HAVE_PRINTF_H') != 1
-+ basic_sources += [files('parse-printf-format.c')]
-+endif
-+
-+
- ############################################################
-
- arch_list = [
---- /dev/null
-+++ b/src/basic/parse-printf-format.c
-@@ -0,0 +1,273 @@
-+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-+
-+/***
-+ This file is part of systemd.
-+
-+ Copyright 2014 Emil Renner Berthing <systemd@esmil.dk>
-+
-+ With parts from the musl C library
-+ Copyright 2005-2014 Rich Felker, et al.
-+
-+ systemd is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1 of the License, or
-+ (at your option) any later version.
-+
-+ systemd is distributed in the hope that it will be useful, but
-+ WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
-+***/
-+
-+#include <stddef.h>
-+#include <string.h>
-+
-+#include "parse-printf-format.h"
-+
-+static const char *consume_nonarg(const char *fmt)
-+{
-+ do {
-+ if (*fmt == '\0')
-+ return fmt;
-+ } while (*fmt++ != '%');
-+ return fmt;
-+}
-+
-+static const char *consume_num(const char *fmt)
-+{
-+ for (;*fmt >= '0' && *fmt <= '9'; fmt++)
-+ /* do nothing */;
-+ return fmt;
-+}
-+
-+static const char *consume_argn(const char *fmt, size_t *arg)
-+{
-+ const char *p = fmt;
-+ size_t val = 0;
-+
-+ if (*p < '1' || *p > '9')
-+ return fmt;
-+ do {
-+ val = 10*val + (*p++ - '0');
-+ } while (*p >= '0' && *p <= '9');
-+
-+ if (*p != '$')
-+ return fmt;
-+ *arg = val;
-+ return p+1;
-+}
-+
-+static const char *consume_flags(const char *fmt)
-+{
-+ while (1) {
-+ switch (*fmt) {
-+ case '#':
-+ case '0':
-+ case '-':
-+ case ' ':
-+ case '+':
-+ case '\'':
-+ case 'I':
-+ fmt++;
-+ continue;
-+ }
-+ return fmt;
-+ }
-+}
-+
-+enum state {
-+ BARE,
-+ LPRE,
-+ LLPRE,
-+ HPRE,
-+ HHPRE,
-+ BIGLPRE,
-+ ZTPRE,
-+ JPRE,
-+ STOP
-+};
-+
-+enum type {
-+ NONE,
-+ PTR,
-+ INT,
-+ UINT,
-+ ULLONG,
-+ LONG,
-+ ULONG,
-+ SHORT,
-+ USHORT,
-+ CHAR,
-+ UCHAR,
-+ LLONG,
-+ SIZET,
-+ IMAX,
-+ UMAX,
-+ PDIFF,
-+ UIPTR,
-+ DBL,
-+ LDBL,
-+ MAXTYPE
-+};
-+
-+static const short pa_types[MAXTYPE] = {
-+ [NONE] = PA_INT,
-+ [PTR] = PA_POINTER,
-+ [INT] = PA_INT,
-+ [UINT] = PA_INT,
-+ [ULLONG] = PA_INT | PA_FLAG_LONG_LONG,
-+ [LONG] = PA_INT | PA_FLAG_LONG,
-+ [ULONG] = PA_INT | PA_FLAG_LONG,
-+ [SHORT] = PA_INT | PA_FLAG_SHORT,
-+ [USHORT] = PA_INT | PA_FLAG_SHORT,
-+ [CHAR] = PA_CHAR,
-+ [UCHAR] = PA_CHAR,
-+ [LLONG] = PA_INT | PA_FLAG_LONG_LONG,
-+ [SIZET] = PA_INT | PA_FLAG_LONG,
-+ [IMAX] = PA_INT | PA_FLAG_LONG_LONG,
-+ [UMAX] = PA_INT | PA_FLAG_LONG_LONG,
-+ [PDIFF] = PA_INT | PA_FLAG_LONG_LONG,
-+ [UIPTR] = PA_INT | PA_FLAG_LONG,
-+ [DBL] = PA_DOUBLE,
-+ [LDBL] = PA_DOUBLE | PA_FLAG_LONG_DOUBLE
-+};
-+
-+#define S(x) [(x)-'A']
-+#define E(x) (STOP + (x))
-+
-+static const unsigned char states[]['z'-'A'+1] = {
-+ { /* 0: bare types */
-+ S('d') = E(INT), S('i') = E(INT),
-+ S('o') = E(UINT),S('u') = E(UINT),S('x') = E(UINT), S('X') = E(UINT),
-+ S('e') = E(DBL), S('f') = E(DBL), S('g') = E(DBL), S('a') = E(DBL),
-+ S('E') = E(DBL), S('F') = E(DBL), S('G') = E(DBL), S('A') = E(DBL),
-+ S('c') = E(CHAR),S('C') = E(INT),
-+ S('s') = E(PTR), S('S') = E(PTR), S('p') = E(UIPTR),S('n') = E(PTR),
-+ S('m') = E(NONE),
-+ S('l') = LPRE, S('h') = HPRE, S('L') = BIGLPRE,
-+ S('z') = ZTPRE, S('j') = JPRE, S('t') = ZTPRE
-+ }, { /* 1: l-prefixed */
-+ S('d') = E(LONG), S('i') = E(LONG),
-+ S('o') = E(ULONG),S('u') = E(ULONG),S('x') = E(ULONG),S('X') = E(ULONG),
-+ S('e') = E(DBL), S('f') = E(DBL), S('g') = E(DBL), S('a') = E(DBL),
-+ S('E') = E(DBL), S('F') = E(DBL), S('G') = E(DBL), S('A') = E(DBL),
-+ S('c') = E(INT), S('s') = E(PTR), S('n') = E(PTR),
-+ S('l') = LLPRE
-+ }, { /* 2: ll-prefixed */
-+ S('d') = E(LLONG), S('i') = E(LLONG),
-+ S('o') = E(ULLONG),S('u') = E(ULLONG),
-+ S('x') = E(ULLONG),S('X') = E(ULLONG),
-+ S('n') = E(PTR)
-+ }, { /* 3: h-prefixed */
-+ S('d') = E(SHORT), S('i') = E(SHORT),
-+ S('o') = E(USHORT),S('u') = E(USHORT),
-+ S('x') = E(USHORT),S('X') = E(USHORT),
-+ S('n') = E(PTR),
-+ S('h') = HHPRE
-+ }, { /* 4: hh-prefixed */
-+ S('d') = E(CHAR), S('i') = E(CHAR),
-+ S('o') = E(UCHAR),S('u') = E(UCHAR),
-+ S('x') = E(UCHAR),S('X') = E(UCHAR),
-+ S('n') = E(PTR)
-+ }, { /* 5: L-prefixed */
-+ S('e') = E(LDBL),S('f') = E(LDBL),S('g') = E(LDBL), S('a') = E(LDBL),
-+ S('E') = E(LDBL),S('F') = E(LDBL),S('G') = E(LDBL), S('A') = E(LDBL),
-+ S('n') = E(PTR)
-+ }, { /* 6: z- or t-prefixed (assumed to be same size) */
-+ S('d') = E(PDIFF),S('i') = E(PDIFF),
-+ S('o') = E(SIZET),S('u') = E(SIZET),
-+ S('x') = E(SIZET),S('X') = E(SIZET),
-+ S('n') = E(PTR)
-+ }, { /* 7: j-prefixed */
-+ S('d') = E(IMAX), S('i') = E(IMAX),
-+ S('o') = E(UMAX), S('u') = E(UMAX),
-+ S('x') = E(UMAX), S('X') = E(UMAX),
-+ S('n') = E(PTR)
-+ }
-+};
-+
-+size_t parse_printf_format(const char *fmt, size_t n, int *types)
-+{
-+ size_t i = 0;
-+ size_t last = 0;
-+
-+ memset(types, 0, n);
-+
-+ while (1) {
-+ size_t arg;
-+ unsigned int state;
-+
-+ fmt = consume_nonarg(fmt);
-+ if (*fmt == '\0')
-+ break;
-+ if (*fmt == '%') {
-+ fmt++;
-+ continue;
-+ }
-+ arg = 0;
-+ fmt = consume_argn(fmt, &arg);
-+ /* flags */
-+ fmt = consume_flags(fmt);
-+ /* width */
-+ if (*fmt == '*') {
-+ size_t warg = 0;
-+ fmt = consume_argn(fmt+1, &warg);
-+ if (warg == 0)
-+ warg = ++i;
-+ if (warg > last)
-+ last = warg;
-+ if (warg <= n && types[warg-1] == NONE)
-+ types[warg-1] = INT;
-+ } else
-+ fmt = consume_num(fmt);
-+ /* precision */
-+ if (*fmt == '.') {
-+ fmt++;
-+ if (*fmt == '*') {
-+ size_t parg = 0;
-+ fmt = consume_argn(fmt+1, &parg);
-+ if (parg == 0)
-+ parg = ++i;
-+ if (parg > last)
-+ last = parg;
-+ if (parg <= n && types[parg-1] == NONE)
-+ types[parg-1] = INT;
-+ } else {
-+ if (*fmt == '-')
-+ fmt++;
-+ fmt = consume_num(fmt);
-+ }
-+ }
-+ /* length modifier and conversion specifier */
-+ state = BARE;
-+ do {
-+ unsigned char c = *fmt++;
-+
-+ if (c < 'A' || c > 'z')
-+ continue;
-+ state = states[state]S(c);
-+ if (state == 0)
-+ continue;
-+ } while (state < STOP);
-+
-+ if (state == E(NONE))
-+ continue;
-+
-+ if (arg == 0)
-+ arg = ++i;
-+ if (arg > last)
-+ last = arg;
-+ if (arg <= n)
-+ types[arg-1] = state - STOP;
-+ }
-+
-+ if (last > n)
-+ last = n;
-+ for (i = 0; i < last; i++)
-+ types[i] = pa_types[types[i]];
-+
-+ return last;
-+}
---- /dev/null
-+++ b/src/basic/parse-printf-format.h
-@@ -0,0 +1,57 @@
-+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-+
-+/***
-+ This file is part of systemd.
-+
-+ Copyright 2014 Emil Renner Berthing <systemd@esmil.dk>
-+
-+ With parts from the GNU C Library
-+ Copyright 1991-2014 Free Software Foundation, Inc.
-+
-+ systemd is free software; you can redistribute it and/or modify it
-+ under the terms of the GNU Lesser General Public License as published by
-+ the Free Software Foundation; either version 2.1 of the License, or
-+ (at your option) any later version.
-+
-+ systemd is distributed in the hope that it will be useful, but
-+ WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public License
-+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
-+***/
-+
-+#pragma once
-+
-+#include "config.h"
-+
-+#if HAVE_PRINTF_H
-+#include <printf.h>
-+#else
-+
-+#include <stddef.h>
-+
-+enum { /* C type: */
-+ PA_INT, /* int */
-+ PA_CHAR, /* int, cast to char */
-+ PA_WCHAR, /* wide char */
-+ PA_STRING, /* const char *, a '\0'-terminated string */
-+ PA_WSTRING, /* const wchar_t *, wide character string */
-+ PA_POINTER, /* void * */
-+ PA_FLOAT, /* float */
-+ PA_DOUBLE, /* double */
-+ PA_LAST
-+};
-+
-+/* Flag bits that can be set in a type returned by `parse_printf_format'. */
-+#define PA_FLAG_MASK 0xff00
-+#define PA_FLAG_LONG_LONG (1 << 8)
-+#define PA_FLAG_LONG_DOUBLE PA_FLAG_LONG_LONG
-+#define PA_FLAG_LONG (1 << 9)
-+#define PA_FLAG_SHORT (1 << 10)
-+#define PA_FLAG_PTR (1 << 11)
-+
-+size_t parse_printf_format(const char *fmt, size_t n, int *types);
-+
-+#endif /* HAVE_PRINTF_H */
---- a/src/basic/stdio-util.h
-+++ b/src/basic/stdio-util.h
-@@ -1,13 +1,13 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
- #pragma once
-
--#include <printf.h>
- #include <stdarg.h>
- #include <stdio.h>
- #include <sys/types.h>
-
- #include "macro.h"
- #include "memory-util.h"
-+#include "parse-printf-format.h"
-
- #define snprintf_ok(buf, len, fmt, ...) \
- ({ \
---- a/src/libsystemd/sd-journal/journal-send.c
-+++ b/src/libsystemd/sd-journal/journal-send.c
-@@ -2,7 +2,6 @@
-
- #include <errno.h>
- #include <fcntl.h>
--#include <printf.h>
- #include <stddef.h>
- #include <sys/un.h>
- #include <unistd.h>
-@@ -21,6 +20,7 @@
- #include "stdio-util.h"
- #include "string-util.h"
- #include "tmpfile-util.h"
-+#include "parse-printf-format.h"
-
- #define SNDBUF_SIZE (8*1024*1024)
-
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
new file mode 100644
index 0000000000..15877bea88
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
@@ -0,0 +1,156 @@
+From 5325ab5813617f35f03806ec420829dde7104387 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 14:56:21 +0800
+Subject: [PATCH 04/22] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not
+ defined
+
+If the standard library doesn't provide brace
+expansion users just won't get it.
+
+Dont use GNU GLOB extentions on non-glibc systems
+
+Conditionalize use of GLOB_ALTDIRFUNC
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[rebased for systemd 243]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+---
+ src/basic/glob-util.c | 12 ++++++++++++
+ src/test/test-glob-util.c | 16 ++++++++++++++++
+ src/tmpfiles/tmpfiles.c | 10 ++++++++++
+ 3 files changed, 38 insertions(+)
+
+diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c
+index 802ca8c655..23818a67c6 100644
+--- a/src/basic/glob-util.c
++++ b/src/basic/glob-util.c
+@@ -12,6 +12,12 @@
+ #include "path-util.h"
+ #include "strv.h"
+
++/* Don't fail if the standard library
++ * doesn't provide brace expansion */
++#ifndef GLOB_BRACE
++#define GLOB_BRACE 0
++#endif
++
+ static void closedir_wrapper(void* v) {
+ (void) closedir(v);
+ }
+@@ -19,6 +25,7 @@ static void closedir_wrapper(void* v) {
+ int safe_glob(const char *path, int flags, glob_t *pglob) {
+ int k;
+
++#ifdef GLOB_ALTDIRFUNC
+ /* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */
+ assert(!(flags & GLOB_ALTDIRFUNC));
+
+@@ -32,9 +39,14 @@ int safe_glob(const char *path, int flags, glob_t *pglob) {
+ pglob->gl_lstat = lstat;
+ if (!pglob->gl_stat)
+ pglob->gl_stat = stat;
++#endif
+
+ errno = 0;
++#ifdef GLOB_ALTDIRFUNC
+ k = glob(path, flags | GLOB_ALTDIRFUNC, NULL, pglob);
++#else
++ k = glob(path, flags, NULL, pglob);
++#endif
+ if (k == GLOB_NOMATCH)
+ return -ENOENT;
+ if (k == GLOB_NOSPACE)
+diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c
+index 9b3e73cce0..3790ba3be5 100644
+--- a/src/test/test-glob-util.c
++++ b/src/test/test-glob-util.c
+@@ -34,6 +34,12 @@ TEST(glob_first) {
+ assert_se(first == NULL);
+ }
+
++/* Don't fail if the standard library
++ * doesn't provide brace expansion */
++#ifndef GLOB_BRACE
++#define GLOB_BRACE 0
++#endif
++
+ TEST(glob_exists) {
+ char name[] = "/tmp/test-glob_exists.XXXXXX";
+ int fd = -EBADF;
+@@ -61,11 +67,13 @@ TEST(glob_no_dot) {
+ const char *fn;
+
+ _cleanup_globfree_ glob_t g = {
++#ifdef GLOB_ALTDIRFUNC
+ .gl_closedir = closedir_wrapper,
+ .gl_readdir = (struct dirent *(*)(void *)) readdir_no_dot,
+ .gl_opendir = (void *(*)(const char *)) opendir,
+ .gl_lstat = lstat,
+ .gl_stat = stat,
++#endif
+ };
+
+ int r;
+@@ -73,11 +81,19 @@ TEST(glob_no_dot) {
+ assert_se(mkdtemp(template));
+
+ fn = strjoina(template, "/*");
++#ifdef GLOB_ALTDIRFUNC
+ r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g);
++#else
++ r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g);
++#endif
+ assert_se(r == GLOB_NOMATCH);
+
+ fn = strjoina(template, "/.*");
++#ifdef GLOB_ALTDIRFUNC
+ r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g);
++#else
++ r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g);
++#endif
+ assert_se(r == GLOB_NOMATCH);
+
+ (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
+diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
+index 230ec09b97..2cc5f391d7 100644
+--- a/src/tmpfiles/tmpfiles.c
++++ b/src/tmpfiles/tmpfiles.c
+@@ -73,6 +73,12 @@
+ #include "user-util.h"
+ #include "virt.h"
+
++/* Don't fail if the standard library
++ * doesn't provide brace expansion */
++#ifndef GLOB_BRACE
++#define GLOB_BRACE 0
++#endif
++
+ /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
+ * them in the file system. This is intended to be used to create
+ * properly owned directories beneath /tmp, /var/tmp, /run, which are
+@@ -2434,7 +2440,9 @@ finish:
+
+ static int glob_item(Context *c, Item *i, action_t action) {
+ _cleanup_globfree_ glob_t g = {
++#ifdef GLOB_ALTDIRFUNC
+ .gl_opendir = (void *(*)(const char *)) opendir_nomod,
++#endif
+ };
+ int r = 0, k;
+
+@@ -2461,7 +2469,9 @@ static int glob_item_recursively(
+ fdaction_t action) {
+
+ _cleanup_globfree_ glob_t g = {
++#ifdef GLOB_ALTDIRFUNC
+ .gl_opendir = (void *(*)(const char *)) opendir_nomod,
++#endif
+ };
+ int r = 0, k;
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-add-missing-FTW_-macros-for-musl.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-add-missing-FTW_-macros-for-musl.patch
new file mode 100644
index 0000000000..a1dfca22cd
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-add-missing-FTW_-macros-for-musl.patch
@@ -0,0 +1,44 @@
+From dad7f897c0de654fa5592fda3e90f874639849f9 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 15:00:06 +0800
+Subject: [PATCH 05/22] add missing FTW_ macros for musl
+
+This is to avoid build failures like below for musl.
+
+ locale-util.c:296:24: error: 'FTW_STOP' undeclared
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/basic/missing_type.h | 4 ++++
+ src/test/test-recurse-dir.c | 1 +
+ 2 files changed, 5 insertions(+)
+
+diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
+index 6c0456349d..73a5b90e3c 100644
+--- a/src/basic/missing_type.h
++++ b/src/basic/missing_type.h
+@@ -14,3 +14,7 @@
+ #ifndef __GLIBC__
+ typedef int (*comparison_fn_t)(const void *, const void *);
+ #endif
++
++#ifndef FTW_CONTINUE
++#define FTW_CONTINUE 0
++#endif
+diff --git a/src/test/test-recurse-dir.c b/src/test/test-recurse-dir.c
+index 8684d064ec..70fc2b5376 100644
+--- a/src/test/test-recurse-dir.c
++++ b/src/test/test-recurse-dir.c
+@@ -8,6 +8,7 @@
+ #include "recurse-dir.h"
+ #include "strv.h"
+ #include "tests.h"
++#include "missing_type.h"
+
+ static char **list_nftw = NULL;
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
deleted file mode 100644
index 005ef022fd..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
+++ /dev/null
@@ -1,602 +0,0 @@
-From cef23a651ea200e30e1e6ed2a2564505e3a42d46 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 14:18:21 +0800
-Subject: [PATCH] src/basic/missing.h: check for missing strndupa
-
-include missing.h for definition of strndupa
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[Rebased for v242]
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-[rebased for systemd 244]
-[Rebased for v247]
-Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
-
----
- meson.build | 1 +
- src/backlight/backlight.c | 1 +
- src/basic/cgroup-util.c | 1 +
- src/basic/env-util.c | 1 +
- src/basic/log.c | 1 +
- src/basic/missing_stdlib.h | 12 ++++++++++++
- src/basic/mkdir.c | 1 +
- src/basic/mountpoint-util.c | 1 +
- src/basic/parse-util.c | 1 +
- src/basic/path-lookup.c | 1 +
- src/basic/percent-util.c | 1 +
- src/basic/proc-cmdline.c | 1 +
- src/basic/procfs-util.c | 1 +
- src/basic/time-util.c | 1 +
- src/boot/bless-boot.c | 1 +
- src/core/dbus-cgroup.c | 1 +
- src/core/dbus-execute.c | 1 +
- src/core/dbus-util.c | 1 +
- src/core/execute.c | 1 +
- src/core/kmod-setup.c | 1 +
- src/core/service.c | 1 +
- src/coredump/coredump-vacuum.c | 1 +
- src/journal-remote/journal-remote-main.c | 1 +
- src/journal/journalctl.c | 1 +
- src/libsystemd/sd-bus/bus-message.c | 1 +
- src/libsystemd/sd-bus/bus-objects.c | 1 +
- src/libsystemd/sd-bus/bus-socket.c | 1 +
- src/libsystemd/sd-bus/sd-bus.c | 1 +
- src/libsystemd/sd-bus/test-bus-benchmark.c | 1 +
- src/libsystemd/sd-journal/sd-journal.c | 1 +
- src/locale/keymap-util.c | 1 +
- src/login/pam_systemd.c | 1 +
- src/network/generator/network-generator.c | 1 +
- src/nspawn/nspawn-settings.c | 1 +
- src/nss-mymachines/nss-mymachines.c | 1 +
- src/portable/portable.c | 1 +
- src/resolve/resolvectl.c | 1 +
- src/shared/bus-get-properties.c | 1 +
- src/shared/bus-unit-procs.c | 1 +
- src/shared/bus-unit-util.c | 1 +
- src/shared/bus-util.c | 1 +
- src/shared/dns-domain.c | 1 +
- src/shared/journal-importer.c | 1 +
- src/shared/logs-show.c | 1 +
- src/shared/pager.c | 1 +
- src/shared/uid-range.c | 1 +
- src/socket-proxy/socket-proxyd.c | 1 +
- src/test/test-hexdecoct.c | 1 +
- src/udev/udev-builtin-path_id.c | 1 +
- src/udev/udev-event.c | 1 +
- src/udev/udev-rules.c | 1 +
- 51 files changed, 62 insertions(+)
-
---- a/meson.build
-+++ b/meson.build
-@@ -507,6 +507,7 @@ foreach ident : ['secure_getenv', '__sec
- endforeach
-
- foreach ident : [
-+ ['strndupa' , '''#include <string.h>'''],
- ['memfd_create', '''#include <sys/mman.h>'''],
- ['gettid', '''#include <sys/types.h>
- #include <unistd.h>'''],
---- a/src/backlight/backlight.c
-+++ b/src/backlight/backlight.c
-@@ -19,6 +19,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "util.h"
-+#include "missing_stdlib.h"
-
- static int help(void) {
- _cleanup_free_ char *link = NULL;
---- a/src/basic/cgroup-util.c
-+++ b/src/basic/cgroup-util.c
-@@ -37,6 +37,7 @@
- #include "unit-name.h"
- #include "user-util.h"
- #include "xattr-util.h"
-+#include "missing_stdlib.h"
-
- static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) {
- _cleanup_free_ char *fs = NULL;
---- a/src/basic/env-util.c
-+++ b/src/basic/env-util.c
-@@ -19,6 +19,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "utf8.h"
-+#include "missing_stdlib.h"
-
- /* We follow bash for the character set. Different shells have different rules. */
- #define VALID_BASH_ENV_NAME_CHARS \
---- a/src/basic/log.c
-+++ b/src/basic/log.c
-@@ -36,6 +36,7 @@
- #include "terminal-util.h"
- #include "time-util.h"
- #include "utf8.h"
-+#include "missing_stdlib.h"
-
- #define SNDBUF_SIZE (8*1024*1024)
-
---- a/src/basic/missing_stdlib.h
-+++ b/src/basic/missing_stdlib.h
-@@ -11,3 +11,15 @@
- # error "neither secure_getenv nor __secure_getenv are available"
- # endif
- #endif
-+
-+/* string.h */
-+#if ! HAVE_STRNDUPA
-+#define strndupa(s, n) \
-+ ({ \
-+ const char *__old = (s); \
-+ size_t __len = strnlen(__old, (n)); \
-+ char *__new = (char *)alloca(__len + 1); \
-+ __new[__len] = '\0'; \
-+ (char *)memcpy(__new, __old, __len); \
-+ })
-+#endif
---- a/src/basic/mkdir.c
-+++ b/src/basic/mkdir.c
-@@ -15,6 +15,7 @@
- #include "stat-util.h"
- #include "stdio-util.h"
- #include "user-util.h"
-+#include "missing_stdlib.h"
-
- int mkdir_safe_internal(
- const char *path,
---- a/src/basic/mountpoint-util.c
-+++ b/src/basic/mountpoint-util.c
-@@ -13,6 +13,7 @@
- #include "missing_stat.h"
- #include "missing_syscall.h"
- #include "mkdir.h"
-+#include "missing_stdlib.h"
- #include "mountpoint-util.h"
- #include "nulstr-util.h"
- #include "parse-util.h"
---- a/src/basic/parse-util.c
-+++ b/src/basic/parse-util.c
-@@ -18,6 +18,7 @@
- #include "stat-util.h"
- #include "string-util.h"
- #include "strv.h"
-+#include "missing_stdlib.h"
-
- int parse_boolean(const char *v) {
- if (!v)
---- a/src/basic/path-lookup.c
-+++ b/src/basic/path-lookup.c
-@@ -16,6 +16,7 @@
- #include "strv.h"
- #include "tmpfile-util.h"
- #include "user-util.h"
-+#include "missing_stdlib.h"
-
- int xdg_user_runtime_dir(char **ret, const char *suffix) {
- const char *e;
---- a/src/basic/percent-util.c
-+++ b/src/basic/percent-util.c
-@@ -3,6 +3,7 @@
- #include "percent-util.h"
- #include "string-util.h"
- #include "parse-util.h"
-+#include "missing_stdlib.h"
-
- static int parse_parts_value_whole(const char *p, const char *symbol) {
- const char *pc, *n;
---- a/src/basic/proc-cmdline.c
-+++ b/src/basic/proc-cmdline.c
-@@ -15,6 +15,7 @@
- #include "string-util.h"
- #include "util.h"
- #include "virt.h"
-+#include "missing_stdlib.h"
-
- int proc_cmdline(char **ret) {
- const char *e;
---- a/src/basic/procfs-util.c
-+++ b/src/basic/procfs-util.c
-@@ -12,6 +12,7 @@
- #include "procfs-util.h"
- #include "stdio-util.h"
- #include "string-util.h"
-+#include "missing_stdlib.h"
-
- int procfs_get_pid_max(uint64_t *ret) {
- _cleanup_free_ char *value = NULL;
---- a/src/basic/time-util.c
-+++ b/src/basic/time-util.c
-@@ -26,6 +26,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "time-util.h"
-+#include "missing_stdlib.h"
-
- static clockid_t map_clock_id(clockid_t c) {
-
---- a/src/boot/bless-boot.c
-+++ b/src/boot/bless-boot.c
-@@ -19,6 +19,7 @@
- #include "util.h"
- #include "verbs.h"
- #include "virt.h"
-+#include "missing_stdlib.h"
-
- static char **arg_path = NULL;
-
---- a/src/core/dbus-execute.c
-+++ b/src/core/dbus-execute.c
-@@ -44,6 +44,7 @@
- #include "unit-printf.h"
- #include "user-util.h"
- #include "utf8.h"
-+#include "missing_stdlib.h"
-
- BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
- static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
---- a/src/core/dbus-util.c
-+++ b/src/core/dbus-util.c
-@@ -9,6 +9,7 @@
- #include "unit-printf.h"
- #include "user-util.h"
- #include "unit.h"
-+#include "missing_stdlib.h"
-
- int bus_property_get_triggered_unit(
- sd_bus *bus,
---- a/src/core/execute.c
-+++ b/src/core/execute.c
-@@ -102,6 +102,7 @@
- #include "unit-serialize.h"
- #include "user-util.h"
- #include "utmp-wtmp.h"
-+#include "missing_stdlib.h"
-
- #define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC)
- #define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC)
---- a/src/core/kmod-setup.c
-+++ b/src/core/kmod-setup.c
-@@ -11,6 +11,7 @@
- #include "recurse-dir.h"
- #include "string-util.h"
- #include "missing_type.h"
-+#include "missing_stdlib.h"
-
- #if HAVE_KMOD
- #include "module-util.h"
---- a/src/core/service.c
-+++ b/src/core/service.c
-@@ -42,6 +42,7 @@
- #include "unit.h"
- #include "utf8.h"
- #include "util.h"
-+#include "missing_stdlib.h"
-
- static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
- [SERVICE_DEAD] = UNIT_INACTIVE,
---- a/src/coredump/coredump-vacuum.c
-+++ b/src/coredump/coredump-vacuum.c
-@@ -16,6 +16,7 @@
- #include "string-util.h"
- #include "time-util.h"
- #include "user-util.h"
-+#include "missing_stdlib.h"
-
- #define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */
- #define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */
---- a/src/journal-remote/journal-remote-main.c
-+++ b/src/journal-remote/journal-remote-main.c
-@@ -24,6 +24,7 @@
- #include "stat-util.h"
- #include "string-table.h"
- #include "strv.h"
-+#include "missing_stdlib.h"
-
- #define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
- #define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem"
---- a/src/journal/journalctl.c
-+++ b/src/journal/journalctl.c
-@@ -73,6 +73,7 @@
- #include "unit-name.h"
- #include "user-util.h"
- #include "varlink.h"
-+#include "missing_stdlib.h"
-
- #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
- #define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages processed */
---- a/src/libsystemd/sd-bus/bus-message.c
-+++ b/src/libsystemd/sd-bus/bus-message.c
-@@ -20,6 +20,7 @@
- #include "strv.h"
- #include "time-util.h"
- #include "utf8.h"
-+#include "missing_stdlib.h"
-
- static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
-
---- a/src/libsystemd/sd-bus/bus-objects.c
-+++ b/src/libsystemd/sd-bus/bus-objects.c
-@@ -11,6 +11,7 @@
- #include "missing_capability.h"
- #include "string-util.h"
- #include "strv.h"
-+#include "missing_stdlib.h"
-
- static int node_vtable_get_userdata(
- sd_bus *bus,
---- a/src/libsystemd/sd-bus/bus-socket.c
-+++ b/src/libsystemd/sd-bus/bus-socket.c
-@@ -28,6 +28,7 @@
- #include "string-util.h"
- #include "user-util.h"
- #include "utf8.h"
-+#include "missing_stdlib.h"
-
- #define SNDBUF_SIZE (8*1024*1024)
-
---- a/src/libsystemd/sd-bus/sd-bus.c
-+++ b/src/libsystemd/sd-bus/sd-bus.c
-@@ -43,6 +43,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "user-util.h"
-+#include "missing_stdlib.h"
-
- #define log_debug_bus_message(m) \
- do { \
---- a/src/libsystemd/sd-bus/test-bus-benchmark.c
-+++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
-@@ -14,6 +14,7 @@
- #include "string-util.h"
- #include "time-util.h"
- #include "util.h"
-+#include "missing_stdlib.h"
-
- #define MAX_SIZE (2*1024*1024)
-
---- a/src/libsystemd/sd-journal/sd-journal.c
-+++ b/src/libsystemd/sd-journal/sd-journal.c
-@@ -41,6 +41,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "syslog-util.h"
-+#include "missing_stdlib.h"
-
- #define JOURNAL_FILES_MAX 7168
-
---- a/src/locale/keymap-util.c
-+++ b/src/locale/keymap-util.c
-@@ -24,6 +24,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "tmpfile-util.h"
-+#include "missing_stdlib.h"
-
- static bool startswith_comma(const char *s, const char *prefix) {
- s = startswith(s, prefix);
---- a/src/login/pam_systemd.c
-+++ b/src/login/pam_systemd.c
-@@ -31,6 +31,7 @@
- #include "locale-util.h"
- #include "login-util.h"
- #include "macro.h"
-+#include "missing_stdlib.h"
- #include "pam-util.h"
- #include "parse-util.h"
- #include "path-util.h"
---- a/src/network/generator/network-generator.c
-+++ b/src/network/generator/network-generator.c
-@@ -13,6 +13,7 @@
- #include "string-table.h"
- #include "string-util.h"
- #include "strv.h"
-+#include "missing_stdlib.h"
-
- /*
- # .network
---- a/src/nspawn/nspawn-settings.c
-+++ b/src/nspawn/nspawn-settings.c
-@@ -17,6 +17,7 @@
- #include "strv.h"
- #include "user-util.h"
- #include "util.h"
-+#include "missing_stdlib.h"
-
- Settings *settings_new(void) {
- Settings *s;
---- a/src/nss-mymachines/nss-mymachines.c
-+++ b/src/nss-mymachines/nss-mymachines.c
-@@ -21,6 +21,7 @@
- #include "nss-util.h"
- #include "signal-util.h"
- #include "string-util.h"
-+#include "missing_stdlib.h"
-
- static void setup_logging_once(void) {
- static pthread_once_t once = PTHREAD_ONCE_INIT;
---- a/src/portable/portable.c
-+++ b/src/portable/portable.c
-@@ -39,6 +39,7 @@
- #include "strv.h"
- #include "tmpfile-util.h"
- #include "user-util.h"
-+#include "missing_stdlib.h"
-
- /* Markers used in the first line of our 20-portable.conf unit file drop-in to determine, that a) the unit file was
- * dropped there by the portable service logic and b) for which image it was dropped there. */
---- a/src/resolve/resolvectl.c
-+++ b/src/resolve/resolvectl.c
-@@ -43,6 +43,7 @@
- #include "utf8.h"
- #include "verb-log-control.h"
- #include "verbs.h"
-+#include "missing_stdlib.h"
-
- static int arg_family = AF_UNSPEC;
- static int arg_ifindex = 0;
---- a/src/shared/bus-get-properties.c
-+++ b/src/shared/bus-get-properties.c
-@@ -4,6 +4,7 @@
- #include "rlimit-util.h"
- #include "stdio-util.h"
- #include "string-util.h"
-+#include "missing_stdlib.h"
-
- int bus_property_get_bool(
- sd_bus *bus,
---- a/src/shared/bus-unit-procs.c
-+++ b/src/shared/bus-unit-procs.c
-@@ -10,6 +10,7 @@
- #include "sort-util.h"
- #include "string-util.h"
- #include "terminal-util.h"
-+#include "missing_stdlib.h"
-
- struct CGroupInfo {
- char *cgroup_path;
---- a/src/shared/bus-unit-util.c
-+++ b/src/shared/bus-unit-util.c
-@@ -49,6 +49,7 @@
- #include "unit-def.h"
- #include "user-util.h"
- #include "utf8.h"
-+#include "missing_stdlib.h"
-
- int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
- assert(message);
---- a/src/shared/bus-util.c
-+++ b/src/shared/bus-util.c
-@@ -21,6 +21,7 @@
- #include "path-util.h"
- #include "socket-util.h"
- #include "stdio-util.h"
-+#include "missing_stdlib.h"
-
- static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
- sd_event *e = userdata;
---- a/src/shared/dns-domain.c
-+++ b/src/shared/dns-domain.c
-@@ -17,6 +17,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "utf8.h"
-+#include "missing_stdlib.h"
-
- int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
- const char *n;
---- a/src/shared/journal-importer.c
-+++ b/src/shared/journal-importer.c
-@@ -15,6 +15,7 @@
- #include "parse-util.h"
- #include "string-util.h"
- #include "unaligned.h"
-+#include "missing_stdlib.h"
-
- enum {
- IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */
---- a/src/shared/logs-show.c
-+++ b/src/shared/logs-show.c
-@@ -42,6 +42,7 @@
- #include "utf8.h"
- #include "util.h"
- #include "web-util.h"
-+#include "missing_stdlib.h"
-
- /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
- #define PRINT_LINE_THRESHOLD 3
---- a/src/shared/pager.c
-+++ b/src/shared/pager.c
-@@ -26,6 +26,7 @@
- #include "strv.h"
- #include "terminal-util.h"
- #include "util.h"
-+#include "missing_stdlib.h"
-
- static pid_t pager_pid = 0;
-
---- a/src/shared/uid-range.c
-+++ b/src/shared/uid-range.c
-@@ -9,6 +9,7 @@
- #include "sort-util.h"
- #include "uid-range.h"
- #include "user-util.h"
-+#include "missing_stdlib.h"
-
- static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
- assert(range);
---- a/src/socket-proxy/socket-proxyd.c
-+++ b/src/socket-proxy/socket-proxyd.c
-@@ -26,6 +26,7 @@
- #include "socket-util.h"
- #include "string-util.h"
- #include "util.h"
-+#include "missing_stdlib.h"
-
- #define BUFFER_SIZE (256 * 1024)
-
---- a/src/test/test-hexdecoct.c
-+++ b/src/test/test-hexdecoct.c
-@@ -7,6 +7,7 @@
- #include "macro.h"
- #include "random-util.h"
- #include "string-util.h"
-+#include "missing_stdlib.h"
- #include "tests.h"
-
- TEST(hexchar) {
---- a/src/udev/udev-builtin-path_id.c
-+++ b/src/udev/udev-builtin-path_id.c
-@@ -22,6 +22,7 @@
- #include "sysexits.h"
- #include "udev-builtin.h"
- #include "udev-util.h"
-+#include "missing_stdlib.h"
-
- _printf_(2,3)
- static void path_prepend(char **path, const char *fmt, ...) {
---- a/src/udev/udev-event.c
-+++ b/src/udev/udev-event.c
-@@ -35,6 +35,7 @@
- #include "udev-util.h"
- #include "udev-watch.h"
- #include "user-util.h"
-+#include "missing_stdlib.h"
-
- typedef struct Spawn {
- sd_device *device;
---- a/src/udev/udev-rules.c
-+++ b/src/udev/udev-rules.c
-@@ -34,6 +34,7 @@
- #include "udev-util.h"
- #include "user-util.h"
- #include "virt.h"
-+#include "missing_stdlib.h"
-
- #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
-
---- a/src/core/dbus-cgroup.c
-+++ b/src/core/dbus-cgroup.c
-@@ -21,6 +21,7 @@
- #include "parse-util.h"
- #include "path-util.h"
- #include "percent-util.h"
-+#include "missing_stdlib.h"
- #include "socket-util.h"
-
- BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
---- a/src/fstab-generator/fstab-generator.c
-+++ b/src/fstab-generator/fstab-generator.c
-@@ -29,6 +29,7 @@
- #include "util.h"
- #include "virt.h"
- #include "volatile-util.h"
-+#include "missing_stdlib.h"
-
- typedef enum MountPointFlags {
- MOUNT_NOAUTO = 1 << 0,
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0006-Use-uintmax_t-for-handling-rlim_t.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0006-Use-uintmax_t-for-handling-rlim_t.patch
new file mode 100644
index 0000000000..4be14b72ec
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0006-Use-uintmax_t-for-handling-rlim_t.patch
@@ -0,0 +1,106 @@
+From 96e975a2412a20e5f80bd3ab144057d275eb8597 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 15:12:41 +0800
+Subject: [PATCH 06/22] Use uintmax_t for handling rlim_t
+
+PRIu{32,64} is not right format to represent rlim_t type
+therefore use %ju and typecast the rlim_t variables to
+uintmax_t.
+
+Fixes portablility errors like
+
+execute.c:3446:36: error: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'rlim_t {aka long long unsigned int}' [-Werror=format=]
+| fprintf(f, "%s%s: " RLIM_FMT "\n",
+| ^~~~~~~~
+| prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
+| ~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Denied [https://github.com/systemd/systemd/pull/7199]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+[Rebased for v241]
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/basic/format-util.h | 8 +-------
+ src/basic/rlimit-util.c | 12 ++++++------
+ src/core/execute.c | 4 ++--
+ 3 files changed, 9 insertions(+), 15 deletions(-)
+
+diff --git a/src/basic/format-util.h b/src/basic/format-util.h
+index 8719df3e29..9becc96066 100644
+--- a/src/basic/format-util.h
++++ b/src/basic/format-util.h
+@@ -34,13 +34,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32_t));
+ # error Unknown timex member size
+ #endif
+
+-#if SIZEOF_RLIM_T == 8
+-# define RLIM_FMT "%" PRIu64
+-#elif SIZEOF_RLIM_T == 4
+-# define RLIM_FMT "%" PRIu32
+-#else
+-# error Unknown rlim_t size
+-#endif
++#define RLIM_FMT "%ju"
+
+ #if SIZEOF_DEV_T == 8
+ # define DEV_FMT "%" PRIu64
+diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c
+index c1f0b2b974..61c5412582 100644
+--- a/src/basic/rlimit-util.c
++++ b/src/basic/rlimit-util.c
+@@ -44,7 +44,7 @@ int setrlimit_closest(int resource, const struct rlimit *rlim) {
+ fixed.rlim_max == highest.rlim_max)
+ return 0;
+
+- log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", rlim->rlim_max, rlimit_to_string(resource), fixed.rlim_max);
++ log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", (uintmax_t)rlim->rlim_max, rlimit_to_string(resource), (uintmax_t)fixed.rlim_max);
+
+ return RET_NERRNO(setrlimit(resource, &fixed));
+ }
+@@ -307,13 +307,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
+ if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
+ r = free_and_strdup(&s, "infinity");
+ else if (rl->rlim_cur >= RLIM_INFINITY)
+- r = asprintf(&s, "infinity:" RLIM_FMT, rl->rlim_max);
++ r = asprintf(&s, "infinity:" RLIM_FMT, (uintmax_t)rl->rlim_max);
+ else if (rl->rlim_max >= RLIM_INFINITY)
+- r = asprintf(&s, RLIM_FMT ":infinity", rl->rlim_cur);
++ r = asprintf(&s, RLIM_FMT ":infinity", (uintmax_t)rl->rlim_cur);
+ else if (rl->rlim_cur == rl->rlim_max)
+- r = asprintf(&s, RLIM_FMT, rl->rlim_cur);
++ r = asprintf(&s, RLIM_FMT, (uintmax_t)rl->rlim_cur);
+ else
+- r = asprintf(&s, RLIM_FMT ":" RLIM_FMT, rl->rlim_cur, rl->rlim_max);
++ r = asprintf(&s, RLIM_FMT ":" RLIM_FMT, (uintmax_t)rl->rlim_cur, (uintmax_t)rl->rlim_max);
+ if (r < 0)
+ return -ENOMEM;
+
+@@ -422,7 +422,7 @@ int rlimit_nofile_safe(void) {
+ rl.rlim_max = MIN(rl.rlim_max, (rlim_t) read_nr_open());
+ rl.rlim_cur = MIN((rlim_t) FD_SETSIZE, rl.rlim_max);
+ if (setrlimit(RLIMIT_NOFILE, &rl) < 0)
+- return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", rl.rlim_cur);
++ return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", (uintmax_t)rl.rlim_cur);
+
+ return 1;
+ }
+diff --git a/src/core/execute.c b/src/core/execute.c
+index bd3da0c401..df1870fd2f 100644
+--- a/src/core/execute.c
++++ b/src/core/execute.c
+@@ -1045,9 +1045,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
+ for (unsigned i = 0; i < RLIM_NLIMITS; i++)
+ if (c->rlimit[i]) {
+ fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
+- prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
++ prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_max);
+ fprintf(f, "%sLimit%sSoft: " RLIM_FMT "\n",
+- prefix, rlimit_to_string(i), c->rlimit[i]->rlim_cur);
++ prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_cur);
+ }
+
+ if (c->ioprio_set) {
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
deleted file mode 100644
index 846c01bd4f..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From fb068403b25002156435350165ea418a6338a313 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 14:56:21 +0800
-Subject: [PATCH] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not defined
-
-If the standard library doesn't provide brace
-expansion users just won't get it.
-
-Dont use GNU GLOB extentions on non-glibc systems
-
-Conditionalize use of GLOB_ALTDIRFUNC
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- src/basic/glob-util.c | 12 ++++++++++++
- src/test/test-glob-util.c | 16 ++++++++++++++++
- src/tmpfiles/tmpfiles.c | 10 ++++++++++
- 3 files changed, 38 insertions(+)
-
---- a/src/basic/glob-util.c
-+++ b/src/basic/glob-util.c
-@@ -12,6 +12,12 @@
- #include "path-util.h"
- #include "strv.h"
-
-+/* Don't fail if the standard library
-+ * doesn't provide brace expansion */
-+#ifndef GLOB_BRACE
-+#define GLOB_BRACE 0
-+#endif
-+
- static void closedir_wrapper(void* v) {
- (void) closedir(v);
- }
-@@ -19,6 +25,7 @@ static void closedir_wrapper(void* v) {
- int safe_glob(const char *path, int flags, glob_t *pglob) {
- int k;
-
-+#ifdef GLOB_ALTDIRFUNC
- /* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */
- assert(!(flags & GLOB_ALTDIRFUNC));
-
-@@ -32,9 +39,14 @@ int safe_glob(const char *path, int flag
- pglob->gl_lstat = lstat;
- if (!pglob->gl_stat)
- pglob->gl_stat = stat;
-+#endif
-
- errno = 0;
-+#ifdef GLOB_ALTDIRFUNC
- k = glob(path, flags | GLOB_ALTDIRFUNC, NULL, pglob);
-+#else
-+ k = glob(path, flags, NULL, pglob);
-+#endif
- if (k == GLOB_NOMATCH)
- return -ENOENT;
- if (k == GLOB_NOSPACE)
---- a/src/test/test-glob-util.c
-+++ b/src/test/test-glob-util.c
-@@ -13,6 +13,12 @@
- #include "tests.h"
- #include "tmpfile-util.h"
-
-+/* Don't fail if the standard library
-+ * doesn't provide brace expansion */
-+#ifndef GLOB_BRACE
-+#define GLOB_BRACE 0
-+#endif
-+
- TEST(glob_exists) {
- char name[] = "/tmp/test-glob_exists.XXXXXX";
- int fd = -1;
-@@ -40,11 +46,13 @@ TEST(glob_no_dot) {
- const char *fn;
-
- _cleanup_globfree_ glob_t g = {
-+#ifdef GLOB_ALTDIRFUNC
- .gl_closedir = closedir_wrapper,
- .gl_readdir = (struct dirent *(*)(void *)) readdir_no_dot,
- .gl_opendir = (void *(*)(const char *)) opendir,
- .gl_lstat = lstat,
- .gl_stat = stat,
-+#endif
- };
-
- int r;
-@@ -52,11 +60,19 @@ TEST(glob_no_dot) {
- assert_se(mkdtemp(template));
-
- fn = strjoina(template, "/*");
-+#ifdef GLOB_ALTDIRFUNC
- r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g);
-+#else
-+ r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g);
-+#endif
- assert_se(r == GLOB_NOMATCH);
-
- fn = strjoina(template, "/.*");
-+#ifdef GLOB_ALTDIRFUNC
- r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g);
-+#else
-+ r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g);
-+#endif
- assert_se(r == GLOB_NOMATCH);
-
- (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
---- a/src/tmpfiles/tmpfiles.c
-+++ b/src/tmpfiles/tmpfiles.c
-@@ -67,6 +67,12 @@
- #include "umask-util.h"
- #include "user-util.h"
-
-+/* Don't fail if the standard library
-+ * doesn't provide brace expansion */
-+#ifndef GLOB_BRACE
-+#define GLOB_BRACE 0
-+#endif
-+
- /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
- * them in the file system. This is intended to be used to create
- * properly owned directories beneath /tmp, /var/tmp, /run, which are
-@@ -1961,7 +1967,9 @@ finish:
-
- static int glob_item(Item *i, action_t action) {
- _cleanup_globfree_ glob_t g = {
-+#ifdef GLOB_ALTDIRFUNC
- .gl_opendir = (void *(*)(const char *)) opendir_nomod,
-+#endif
- };
- int r = 0, k;
- char **fn;
-@@ -1981,7 +1989,9 @@ static int glob_item(Item *i, action_t a
-
- static int glob_item_recursively(Item *i, fdaction_t action) {
- _cleanup_globfree_ glob_t g = {
-+#ifdef GLOB_ALTDIRFUNC
- .gl_opendir = (void *(*)(const char *)) opendir_nomod,
-+#endif
- };
- int r = 0, k;
- char **fn;
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
new file mode 100644
index 0000000000..8d6084239e
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
@@ -0,0 +1,99 @@
+From 4842cff4f1329f0b5034b529d56f8ad1f234ac4c Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <armccurdy@gmail.com>
+Date: Tue, 10 Oct 2017 14:33:30 -0700
+Subject: [PATCH 07/22] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
+
+Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right
+thing to do and it's not portable (not supported by musl). See:
+
+ http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html
+ http://www.openwall.com/lists/musl/2015/02/05/2
+
+Note that laccess() is never passing AT_EACCESS so a lot of the
+discussion in the links above doesn't apply. Note also that
+(currently) all systemd callers of laccess() pass mode as F_OK, so
+only check for existence of a file, not access permissions.
+Therefore, in this case, the only distiction between faccessat()
+with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the behaviour
+for broken symlinks; laccess() on a broken symlink will succeed with
+(flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0).
+
+The laccess() macros was added to systemd some time ago and it's not
+clear if or why it needs to return success for broken symlinks. Maybe
+just historical and not actually necessary or desired behaviour?
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+---
+ src/basic/fs-util.h | 21 ++++++++++++++++++++-
+ src/shared/base-filesystem.c | 6 +++---
+ 2 files changed, 23 insertions(+), 4 deletions(-)
+
+diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h
+index 1023ab73ca..c78ff6f27f 100644
+--- a/src/basic/fs-util.h
++++ b/src/basic/fs-util.h
+@@ -49,8 +49,27 @@ int futimens_opath(int fd, const struct timespec ts[2]);
+ int fd_warn_permissions(const char *path, int fd);
+ int stat_warn_permissions(const char *path, const struct stat *st);
+
++/*
++ Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right thing to
++ do and it's not portable (not supported by musl). See:
++
++ http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html
++ http://www.openwall.com/lists/musl/2015/02/05/2
++
++ Note that laccess() is never passing AT_EACCESS so a lot of the discussion in
++ the links above doesn't apply. Note also that (currently) all systemd callers
++ of laccess() pass mode as F_OK, so only check for existence of a file, not
++ access permissions. Therefore, in this case, the only distiction between
++ faccessat() with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the
++ behaviour for broken symlinks; laccess() on a broken symlink will succeed
++ with (flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0).
++
++ The laccess() macros was added to systemd some time ago and it's not clear if
++ or why it needs to return success for broken symlinks. Maybe just historical
++ and not actually necessary or desired behaviour?
++*/
+ #define laccess(path, mode) \
+- RET_NERRNO(faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW))
++ RET_NERRNO(faccessat(AT_FDCWD, (path), (mode), 0))
+
+ int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode);
+
+diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
+index 569ef466c3..7ae921a113 100644
+--- a/src/shared/base-filesystem.c
++++ b/src/shared/base-filesystem.c
+@@ -145,7 +145,7 @@ int base_filesystem_create_fd(int fd, const char *root, uid_t uid, gid_t gid) {
+ /* The "root" parameter is decoration only – it's only used as part of log messages */
+
+ for (size_t i = 0; i < ELEMENTSOF(table); i++) {
+- if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0)
++ if (faccessat(fd, table[i].dir, F_OK, 0) >= 0)
+ continue;
+
+ if (table[i].target) { /* Create as symlink? */
+@@ -153,7 +153,7 @@ int base_filesystem_create_fd(int fd, const char *root, uid_t uid, gid_t gid) {
+
+ /* check if one of the targets exists */
+ NULSTR_FOREACH(s, table[i].target) {
+- if (faccessat(fd, s, F_OK, AT_SYMLINK_NOFOLLOW) < 0)
++ if (faccessat(fd, s, F_OK, 0) < 0)
+ continue;
+
+ /* check if a specific file exists at the target path */
+@@ -164,7 +164,7 @@ int base_filesystem_create_fd(int fd, const char *root, uid_t uid, gid_t gid) {
+ if (!p)
+ return log_oom();
+
+- if (faccessat(fd, p, F_OK, AT_SYMLINK_NOFOLLOW) < 0)
++ if (faccessat(fd, p, F_OK, 0) < 0)
+ continue;
+ }
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch
new file mode 100644
index 0000000000..c1a8bb19fe
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch
@@ -0,0 +1,34 @@
+From bab07e779ff23d5593bb118efaaa31b60a6dce87 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 27 May 2018 08:36:44 -0700
+Subject: [PATCH 08/22] Define glibc compatible basename() for non-glibc
+ systems
+
+Fixes builds with musl, even though systemd is adamant about
+using non-posix basename implementation, we have a way out
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/basic/string-util.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/basic/string-util.h b/src/basic/string-util.h
+index b6d8be3083..0a29036c4c 100644
+--- a/src/basic/string-util.h
++++ b/src/basic/string-util.h
+@@ -26,6 +26,10 @@
+ #define URI_UNRESERVED ALPHANUMERICAL "-._~" /* [RFC3986] */
+ #define URI_VALID URI_RESERVED URI_UNRESERVED /* [RFC3986] */
+
++#if !defined(__GLIBC__)
++#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src)
++#endif
++
+ static inline char* strstr_ptr(const char *haystack, const char *needle) {
+ if (!haystack || !needle)
+ return NULL;
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-add-missing-FTW_-macros-for-musl.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-add-missing-FTW_-macros-for-musl.patch
deleted file mode 100644
index 57e18a5808..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-add-missing-FTW_-macros-for-musl.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 7ca9887f84adba065dc2e59b3de55ace2fc72ec0 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 15:00:06 +0800
-Subject: [PATCH] add missing FTW_ macros for musl
-
-This is to avoid build failures like below for musl.
-
- locale-util.c:296:24: error: 'FTW_STOP' undeclared
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
----
- src/basic/missing_type.h | 20 ++++++++++++++++++++
- src/shared/mount-setup.c | 1 +
- 2 files changed, 21 insertions(+)
-
---- a/src/basic/missing_type.h
-+++ b/src/basic/missing_type.h
-@@ -19,3 +19,23 @@ typedef int (*comparison_fn_t)(const voi
- #define __COMPAR_FN_T
- typedef int (*__compar_fn_t)(const void *, const void *);
- #endif
-+
-+#ifndef FTW_ACTIONRETVAL
-+#define FTW_ACTIONRETVAL 16
-+#endif
-+
-+#ifndef FTW_CONTINUE
-+#define FTW_CONTINUE 0
-+#endif
-+
-+#ifndef FTW_STOP
-+#define FTW_STOP 1
-+#endif
-+
-+#ifndef FTW_SKIP_SUBTREE
-+#define FTW_SKIP_SUBTREE 2
-+#endif
-+
-+#ifndef FTW_SKIP_SIBLINGS
-+#define FTW_SKIP_SIBLINGS 3
-+#endif
---- a/src/shared/mount-setup.c
-+++ b/src/shared/mount-setup.c
-@@ -32,6 +32,7 @@
- #include "strv.h"
- #include "user-util.h"
- #include "virt.h"
-+#include "missing_type.h"
-
- typedef enum MountMode {
- MNT_NONE = 0,
---- a/src/test/test-recurse-dir.c
-+++ b/src/test/test-recurse-dir.c
-@@ -6,6 +6,7 @@
- #include "recurse-dir.h"
- #include "strv.h"
- #include "tests.h"
-+#include "missing_type.h"
-
- static char **list_nftw = NULL;
-
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-implment-systemd-sysv-install-for-OE.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-implment-systemd-sysv-install-for-OE.patch
new file mode 100644
index 0000000000..acff18dc43
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-implment-systemd-sysv-install-for-OE.patch
@@ -0,0 +1,43 @@
+From 5712d56f1cd654d2e5d2e9117ff77fe4c299f76b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 5 Sep 2015 06:31:47 +0000
+Subject: [PATCH] implment systemd-sysv-install for OE
+
+Use update-rc.d for enabling/disabling and status command
+to check the status of the sysv service
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/systemctl/systemd-sysv-install.SKELETON | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/systemctl/systemd-sysv-install.SKELETON b/src/systemctl/systemd-sysv-install.SKELETON
+index cb58d8243b..000bdf6165 100755
+--- a/src/systemctl/systemd-sysv-install.SKELETON
++++ b/src/systemctl/systemd-sysv-install.SKELETON
+@@ -34,17 +34,17 @@ case "$1" in
+ enable)
+ # call the command to enable SysV init script $NAME here
+ # (consider optional $ROOT)
+- echo "IMPLEMENT ME: enabling SysV init.d script $NAME"
++ update-rc.d -f $NAME defaults
+ ;;
+ disable)
+ # call the command to disable SysV init script $NAME here
+ # (consider optional $ROOT)
+- echo "IMPLEMENT ME: disabling SysV init.d script $NAME"
++ update-rc.d -f $NAME remove
+ ;;
+ is-enabled)
+ # exit with 0 if $NAME is enabled, non-zero if it is disabled
+ # (consider optional $ROOT)
+- echo "IMPLEMENT ME: checking SysV init.d script $NAME"
++ /etc/init.d/$NAME status
+ ;;
+ *)
+ usage ;;
+--
+2.39.2
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
new file mode 100644
index 0000000000..3ff0177ae3
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
@@ -0,0 +1,41 @@
+From 25093c5017725b8577c444dfea0f42ad85b43522 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 4 Jul 2018 15:00:44 +0800
+Subject: [PATCH 09/22] Do not disable buffering when writing to oom_score_adj
+
+On musl, disabling buffering when writing to oom_score_adj will
+cause the following error.
+
+ Failed to adjust OOM setting: Invalid argument
+
+This error appears for systemd-udevd.service and dbus.service.
+This is because kernel receives '-' instead of the whole '-900'
+if buffering is disabled.
+
+This is libc implementation specific, as glibc does not have this issue.
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[rebased for systemd 243]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+---
+ src/basic/process-util.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/basic/process-util.c b/src/basic/process-util.c
+index 201c5596ae..ea51595b6c 100644
+--- a/src/basic/process-util.c
++++ b/src/basic/process-util.c
+@@ -1716,7 +1716,7 @@ int set_oom_score_adjust(int value) {
+ xsprintf(t, "%i", value);
+
+ return write_string_file("/proc/self/oom_score_adj", t,
+- WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER);
++ WRITE_STRING_FILE_VERIFY_ON_FAILURE);
+ }
+
+ int get_oom_score_adjust(int *ret) {
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
deleted file mode 100644
index 0fc320420e..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From c7453b716ae308b89cf4b2b231a36ddd38a49752 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 15:03:47 +0800
-Subject: [PATCH] fix missing of __register_atfork for non-glibc builds
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
----
- src/basic/process-util.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/src/basic/process-util.c b/src/basic/process-util.c
-index 461bbfe9a5..2d06f9f60a 100644
---- a/src/basic/process-util.c
-+++ b/src/basic/process-util.c
-@@ -18,6 +18,9 @@
- #if HAVE_VALGRIND_VALGRIND_H
- #include <valgrind/valgrind.h>
- #endif
-+#ifndef __GLIBC__
-+#include <pthread.h>
-+#endif
-
- #include "alloc-util.h"
- #include "architecture.h"
-@@ -1202,11 +1205,15 @@ void reset_cached_pid(void) {
- cached_pid = CACHED_PID_UNSET;
- }
-
-+#ifdef __GLIBC__
- /* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc
- * headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against
- * libpthread, as it is part of glibc anyway. */
- extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void *dso_handle);
- extern void* __dso_handle _weak_;
-+#else
-+#define __register_atfork(prepare,parent,child,dso) pthread_atfork(prepare,parent,child)
-+#endif
-
- pid_t getpid_cached(void) {
- static bool installed = false;
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-Use-uintmax_t-for-handling-rlim_t.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
deleted file mode 100644
index 029f413aa8..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 856010e268a6aca8e5f02502457afe289bd877f1 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 15:12:41 +0800
-Subject: [PATCH] Use uintmax_t for handling rlim_t
-
-PRIu{32,64} is not right format to represent rlim_t type
-therefore use %ju and typecast the rlim_t variables to
-uintmax_t.
-
-Fixes portablility errors like
-
-execute.c:3446:36: error: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'rlim_t {aka long long unsigned int}' [-Werror=format=]
-| fprintf(f, "%s%s: " RLIM_FMT "\n",
-| ^~~~~~~~
-| prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
-| ~~~~~~~~~~~~~~~~~~~~~~
-
-Upstream-Status: Denied [https://github.com/systemd/systemd/pull/7199]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-[Rebased for v241]
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
----
- src/basic/format-util.h | 8 +-------
- src/basic/rlimit-util.c | 12 ++++++------
- src/core/execute.c | 4 ++--
- 3 files changed, 9 insertions(+), 15 deletions(-)
-
---- a/src/basic/format-util.h
-+++ b/src/basic/format-util.h
-@@ -34,13 +34,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32
- # error Unknown timex member size
- #endif
-
--#if SIZEOF_RLIM_T == 8
--# define RLIM_FMT "%" PRIu64
--#elif SIZEOF_RLIM_T == 4
--# define RLIM_FMT "%" PRIu32
--#else
--# error Unknown rlim_t size
--#endif
-+#define RLIM_FMT "%ju"
-
- #if SIZEOF_DEV_T == 8
- # define DEV_FMT "%" PRIu64
---- a/src/basic/rlimit-util.c
-+++ b/src/basic/rlimit-util.c
-@@ -44,7 +44,7 @@ int setrlimit_closest(int resource, cons
- fixed.rlim_max == highest.rlim_max)
- return 0;
-
-- log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", rlim->rlim_max, rlimit_to_string(resource), fixed.rlim_max);
-+ log_debug("Failed at setting rlimit " RLIM_FMT " for resource RLIMIT_%s. Will attempt setting value " RLIM_FMT " instead.", (uintmax_t)rlim->rlim_max, rlimit_to_string(resource), (uintmax_t)fixed.rlim_max);
-
- return RET_NERRNO(setrlimit(resource, &fixed));
- }
-@@ -307,13 +307,13 @@ int rlimit_format(const struct rlimit *r
- if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
- r = free_and_strdup(&s, "infinity");
- else if (rl->rlim_cur >= RLIM_INFINITY)
-- r = asprintf(&s, "infinity:" RLIM_FMT, rl->rlim_max);
-+ r = asprintf(&s, "infinity:" RLIM_FMT, (uintmax_t)rl->rlim_max);
- else if (rl->rlim_max >= RLIM_INFINITY)
-- r = asprintf(&s, RLIM_FMT ":infinity", rl->rlim_cur);
-+ r = asprintf(&s, RLIM_FMT ":infinity", (uintmax_t)rl->rlim_cur);
- else if (rl->rlim_cur == rl->rlim_max)
-- r = asprintf(&s, RLIM_FMT, rl->rlim_cur);
-+ r = asprintf(&s, RLIM_FMT, (uintmax_t)rl->rlim_cur);
- else
-- r = asprintf(&s, RLIM_FMT ":" RLIM_FMT, rl->rlim_cur, rl->rlim_max);
-+ r = asprintf(&s, RLIM_FMT ":" RLIM_FMT, (uintmax_t)rl->rlim_cur, (uintmax_t)rl->rlim_max);
- if (r < 0)
- return -ENOMEM;
-
-@@ -403,7 +403,7 @@ int rlimit_nofile_safe(void) {
-
- rl.rlim_cur = FD_SETSIZE;
- if (setrlimit(RLIMIT_NOFILE, &rl) < 0)
-- return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", rl.rlim_cur);
-+ return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", (uintmax_t)rl.rlim_cur);
-
- return 1;
- }
---- a/src/core/execute.c
-+++ b/src/core/execute.c
-@@ -5639,9 +5639,9 @@ void exec_context_dump(const ExecContext
- for (unsigned i = 0; i < RLIM_NLIMITS; i++)
- if (c->rlimit[i]) {
- fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
-- prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
-+ prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_max);
- fprintf(f, "%sLimit%sSoft: " RLIM_FMT "\n",
-- prefix, rlimit_to_string(i), c->rlimit[i]->rlim_cur);
-+ prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_cur);
- }
-
- if (c->ioprio_set) {
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
new file mode 100644
index 0000000000..cf59ac7d06
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
@@ -0,0 +1,76 @@
+From 2adbe9773cd65c48eec9df96868d4a738927c8d9 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Tue, 10 Jul 2018 15:40:17 +0800
+Subject: [PATCH 10/22] distinguish XSI-compliant strerror_r from GNU-specifi
+ strerror_r
+
+XSI-compliant strerror_r and GNU-specifi strerror_r are different.
+
+ int strerror_r(int errnum, char *buf, size_t buflen);
+ /* XSI-compliant */
+
+ char *strerror_r(int errnum, char *buf, size_t buflen);
+ /* GNU-specific */
+
+We need to distinguish between them. Otherwise, we'll get an int value
+assigned to (char *) variable, resulting in segment fault.
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/libsystemd/sd-bus/bus-error.c | 11 ++++++++++-
+ src/libsystemd/sd-journal/journal-send.c | 5 +++++
+ 2 files changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
+index 77b2e1a0fd..fdba0e0142 100644
+--- a/src/libsystemd/sd-bus/bus-error.c
++++ b/src/libsystemd/sd-bus/bus-error.c
+@@ -408,7 +408,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) {
+ return;
+
+ errno = 0;
++#ifndef __GLIBC__
++ strerror_r(error, m, k);
++ x = m;
++#else
+ x = strerror_r(error, m, k);
++#endif
+ if (errno == ERANGE || strlen(x) >= k - 1) {
+ free(m);
+ k *= 2;
+@@ -593,8 +598,12 @@ const char* _bus_error_message(const sd_bus_error *e, int error, char buf[static
+
+ if (e && e->message)
+ return e->message;
+-
++#ifndef __GLIBC__
++ strerror_r(abs(error), buf, ERRNO_BUF_LEN);
++ return buf;
++#else
+ return strerror_r(abs(error), buf, ERRNO_BUF_LEN);
++#endif
+ }
+
+ static bool map_ok(const sd_bus_error_map *map) {
+diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
+index 69a2eb6404..1561859650 100644
+--- a/src/libsystemd/sd-journal/journal-send.c
++++ b/src/libsystemd/sd-journal/journal-send.c
+@@ -361,7 +361,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
+ char* j;
+
+ errno = 0;
++#ifndef __GLIBC__
++ strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
++ j = buffer + 8 + k;
++#else
+ j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
++#endif
+ if (errno == 0) {
+ char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch
new file mode 100644
index 0000000000..e481b2e2e4
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-avoid-redefinition-of-prctl_mm_map-structure.patch
@@ -0,0 +1,32 @@
+From 49c446cfb78cf74a909bed8c3798b77a5469866a Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 25 Feb 2019 15:44:54 +0800
+Subject: [PATCH 11/22] avoid redefinition of prctl_mm_map structure
+
+Fix the following compile failure:
+error: redefinition of 'struct prctl_mm_map'
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/basic/missing_prctl.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/basic/missing_prctl.h b/src/basic/missing_prctl.h
+index 7d9e395c92..88c2d7dfac 100644
+--- a/src/basic/missing_prctl.h
++++ b/src/basic/missing_prctl.h
+@@ -1,7 +1,9 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ #pragma once
+
++#ifdef __GLIBC__
+ #include <linux/prctl.h>
++#endif
+
+ /* 58319057b7847667f0c9585b9de0e8932b0fdb08 (4.3) */
+ #ifndef PR_CAP_AMBIENT
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
deleted file mode 100644
index 327084bae9..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From ad395dda5db9b1ae156be121cfc8a38960de6c55 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Wed, 28 Feb 2018 21:25:22 -0800
-Subject: [PATCH] test-sizeof.c: Disable tests for missing typedefs in musl
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
----
- src/test/test-sizeof.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/src/test/test-sizeof.c
-+++ b/src/test/test-sizeof.c
-@@ -55,8 +55,10 @@ int main(void) {
- info(unsigned);
- info(long unsigned);
- info(long long unsigned);
-+#ifdef __GLIBC__
- info(__syscall_ulong_t);
- info(__syscall_slong_t);
-+#endif
- info(intmax_t);
- info(uintmax_t);
-
-@@ -76,7 +78,9 @@ int main(void) {
- info(ssize_t);
- info(time_t);
- info(usec_t);
-+#ifdef __GLIBC__
- info(__time_t);
-+#endif
- info(pid_t);
- info(uid_t);
- info(gid_t);
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-do-not-disable-buffer-in-writing-files.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-do-not-disable-buffer-in-writing-files.patch
new file mode 100644
index 0000000000..66be79077e
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-do-not-disable-buffer-in-writing-files.patch
@@ -0,0 +1,562 @@
+From e4885a8e60f883d9217e26e1db3754c2906aca31 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Fri, 1 Mar 2019 15:22:15 +0800
+Subject: [PATCH 12/22] do not disable buffer in writing files
+
+Do not disable buffer in writing files, otherwise we get
+failure at boot for musl like below.
+
+ [!!!!!!] Failed to allocate manager object.
+
+And there will be other failures, critical or not critical.
+This is specific to musl.
+
+Upstream-Status: Inappropriate [musl]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[Rebased for v242]
+Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+[rebased for systemd 243]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+[rebased for systemd 254]
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+[rebased for systemd 255.1]
+---
+ src/basic/cgroup-util.c | 12 ++++++------
+ src/basic/namespace-util.c | 4 ++--
+ src/basic/procfs-util.c | 4 ++--
+ src/basic/sysctl-util.c | 2 +-
+ src/binfmt/binfmt.c | 6 +++---
+ src/core/cgroup.c | 2 +-
+ src/core/main.c | 2 +-
+ src/core/smack-setup.c | 8 ++++----
+ src/home/homework.c | 2 +-
+ src/libsystemd/sd-device/sd-device.c | 2 +-
+ src/nspawn/nspawn-cgroup.c | 2 +-
+ src/nspawn/nspawn.c | 6 +++---
+ src/shared/binfmt-util.c | 2 +-
+ src/shared/cgroup-setup.c | 4 ++--
+ src/shared/coredump-util.c | 4 ++--
+ src/shared/hibernate-util.c | 4 ++--
+ src/shared/smack-util.c | 2 +-
+ src/shared/watchdog.c | 2 +-
+ src/sleep/sleep.c | 4 ++--
+ src/storagetm/storagetm.c | 24 ++++++++++++------------
+ src/udev/udev-rules.c | 1 -
+ src/vconsole/vconsole-setup.c | 2 +-
+ 22 files changed, 50 insertions(+), 51 deletions(-)
+
+diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
+index d2be79622f..e65fecb68d 100644
+--- a/src/basic/cgroup-util.c
++++ b/src/basic/cgroup-util.c
+@@ -417,7 +417,7 @@ int cg_kill_kernel_sigkill(const char *path) {
+ if (r < 0)
+ return r;
+
+- r = write_string_file(killfile, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(killfile, "1", 0);
+ if (r < 0)
+ return r;
+
+@@ -843,7 +843,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
+
+ sc = strstrip(contents);
+ if (isempty(sc)) {
+- r = write_string_file(fs, agent, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(fs, agent, 0);
+ if (r < 0)
+ return r;
+ } else if (!path_equal(sc, agent))
+@@ -861,7 +861,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
+
+ sc = strstrip(contents);
+ if (streq(sc, "0")) {
+- r = write_string_file(fs, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(fs, "1", 0);
+ if (r < 0)
+ return r;
+
+@@ -888,7 +888,7 @@ int cg_uninstall_release_agent(const char *controller) {
+ if (r < 0)
+ return r;
+
+- r = write_string_file(fs, "0", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(fs, "0", 0);
+ if (r < 0)
+ return r;
+
+@@ -898,7 +898,7 @@ int cg_uninstall_release_agent(const char *controller) {
+ if (r < 0)
+ return r;
+
+- r = write_string_file(fs, "", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(fs, "", 0);
+ if (r < 0)
+ return r;
+
+@@ -1814,7 +1814,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
+ if (r < 0)
+ return r;
+
+- return write_string_file(p, value, WRITE_STRING_FILE_DISABLE_BUFFER);
++ return write_string_file(p, value, 0);
+ }
+
+ int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
+diff --git a/src/basic/namespace-util.c b/src/basic/namespace-util.c
+index 2101f617ad..63817bae17 100644
+--- a/src/basic/namespace-util.c
++++ b/src/basic/namespace-util.c
+@@ -227,12 +227,12 @@ int userns_acquire(const char *uid_map, const char *gid_map) {
+ freeze();
+
+ xsprintf(path, "/proc/" PID_FMT "/uid_map", pid);
+- r = write_string_file(path, uid_map, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(path, uid_map, 0);
+ if (r < 0)
+ return log_error_errno(r, "Failed to write UID map: %m");
+
+ xsprintf(path, "/proc/" PID_FMT "/gid_map", pid);
+- r = write_string_file(path, gid_map, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(path, gid_map, 0);
+ if (r < 0)
+ return log_error_errno(r, "Failed to write GID map: %m");
+
+diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
+index 6cb0ddf575..247cf9e1d1 100644
+--- a/src/basic/procfs-util.c
++++ b/src/basic/procfs-util.c
+@@ -64,13 +64,13 @@ int procfs_tasks_set_limit(uint64_t limit) {
+ * decrease it, as threads-max is the much more relevant sysctl. */
+ if (limit > pid_max-1) {
+ sprintf(buffer, "%" PRIu64, limit+1); /* Add one, since PID 0 is not a valid PID */
+- r = write_string_file("/proc/sys/kernel/pid_max", buffer, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/proc/sys/kernel/pid_max", buffer, 0);
+ if (r < 0)
+ return r;
+ }
+
+ sprintf(buffer, "%" PRIu64, limit);
+- r = write_string_file("/proc/sys/kernel/threads-max", buffer, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/proc/sys/kernel/threads-max", buffer, 0);
+ if (r < 0) {
+ uint64_t threads_max;
+
+diff --git a/src/basic/sysctl-util.c b/src/basic/sysctl-util.c
+index b66a6622ae..8d1c93008a 100644
+--- a/src/basic/sysctl-util.c
++++ b/src/basic/sysctl-util.c
+@@ -58,7 +58,7 @@ int sysctl_write(const char *property, const char *value) {
+
+ log_debug("Setting '%s' to '%s'", p, value);
+
+- return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_SUPPRESS_REDUNDANT_VIRTUAL);
++ return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_SUPPRESS_REDUNDANT_VIRTUAL);
+ }
+
+ int sysctl_writef(const char *property, const char *format, ...) {
+diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c
+index d21f3f79ff..258607cc7e 100644
+--- a/src/binfmt/binfmt.c
++++ b/src/binfmt/binfmt.c
+@@ -30,7 +30,7 @@ static bool arg_unregister = false;
+
+ static int delete_rule(const char *rulename) {
+ const char *fn = strjoina("/proc/sys/fs/binfmt_misc/", rulename);
+- return write_string_file(fn, "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
++ return write_string_file(fn, "-1", 0);
+ }
+
+ static int apply_rule(const char *filename, unsigned line, const char *rule) {
+@@ -58,7 +58,7 @@ static int apply_rule(const char *filename, unsigned line, const char *rule) {
+ if (r >= 0)
+ log_debug("%s:%u: Rule '%s' deleted.", filename, line, rulename);
+
+- r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule, 0);
+ if (r < 0)
+ return log_error_errno(r, "%s:%u: Failed to add binary format '%s': %m",
+ filename, line, rulename);
+@@ -248,7 +248,7 @@ static int run(int argc, char *argv[]) {
+ return r;
+
+ /* Flush out all rules */
+- r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", 0);
+ if (r < 0)
+ log_warning_errno(r, "Failed to flush binfmt_misc rules, ignoring: %m");
+ else
+diff --git a/src/core/cgroup.c b/src/core/cgroup.c
+index 61ac4df1a6..ea18970196 100644
+--- a/src/core/cgroup.c
++++ b/src/core/cgroup.c
+@@ -4578,7 +4578,7 @@ int unit_cgroup_freezer_action(Unit *u, FreezerAction action) {
+ u->freezer_state = FREEZER_THAWING;
+ }
+
+- r = write_string_file(path, one_zero(action == FREEZER_FREEZE), WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(path, one_zero(action == FREEZER_FREEZE), 0);
+ if (r < 0)
+ return r;
+
+diff --git a/src/core/main.c b/src/core/main.c
+index 3f71cc0947..0e5aec3e9e 100644
+--- a/src/core/main.c
++++ b/src/core/main.c
+@@ -1678,7 +1678,7 @@ static void initialize_core_pattern(bool skip_setup) {
+ if (getpid_cached() != 1)
+ return;
+
+- r = write_string_file("/proc/sys/kernel/core_pattern", arg_early_core_pattern, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/proc/sys/kernel/core_pattern", arg_early_core_pattern, 0);
+ if (r < 0)
+ log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m",
+ arg_early_core_pattern);
+diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c
+index 7ea902b6f9..1aef2988d0 100644
+--- a/src/core/smack-setup.c
++++ b/src/core/smack-setup.c
+@@ -321,17 +321,17 @@ int mac_smack_setup(bool *loaded_policy) {
+ }
+
+ #if HAVE_SMACK_RUN_LABEL
+- r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, 0);
+ if (r < 0)
+ log_warning_errno(r, "Failed to set SMACK label \"" SMACK_RUN_LABEL "\" on self: %m");
+- r = write_string_file("/sys/fs/smackfs/ambient", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/sys/fs/smackfs/ambient", SMACK_RUN_LABEL, 0);
+ if (r < 0)
+ log_warning_errno(r, "Failed to set SMACK ambient label \"" SMACK_RUN_LABEL "\": %m");
+ r = write_string_file("/sys/fs/smackfs/netlabel",
+- "0.0.0.0/0 " SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
++ "0.0.0.0/0 " SMACK_RUN_LABEL, 0);
+ if (r < 0)
+ log_warning_errno(r, "Failed to set SMACK netlabel rule \"0.0.0.0/0 " SMACK_RUN_LABEL "\": %m");
+- r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", 0);
+ if (r < 0)
+ log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m");
+ #endif
+diff --git a/src/home/homework.c b/src/home/homework.c
+index 066483e342..5f92dd7064 100644
+--- a/src/home/homework.c
++++ b/src/home/homework.c
+@@ -278,7 +278,7 @@ static void drop_caches_now(void) {
+ * for details. We write "2" into /proc/sys/vm/drop_caches to ensure dentries/inodes are flushed, but
+ * not more. */
+
+- r = write_string_file("/proc/sys/vm/drop_caches", "2\n", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/proc/sys/vm/drop_caches", "2\n", 0);
+ if (r < 0)
+ log_warning_errno(r, "Failed to drop caches, ignoring: %m");
+ else
+diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c
+index 2fbc619a34..09d9591e37 100644
+--- a/src/libsystemd/sd-device/sd-device.c
++++ b/src/libsystemd/sd-device/sd-device.c
+@@ -2516,7 +2516,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
+ if (!value)
+ return -ENOMEM;
+
+- r = write_string_file(path, value, WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_NOFOLLOW);
++ r = write_string_file(path, value, 0 | WRITE_STRING_FILE_NOFOLLOW);
+ if (r < 0) {
+ /* On failure, clear cache entry, as we do not know how it fails. */
+ device_remove_cached_sysattr_value(device, sysattr);
+diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c
+index a5002437c6..b12e6cd9c9 100644
+--- a/src/nspawn/nspawn-cgroup.c
++++ b/src/nspawn/nspawn-cgroup.c
+@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) {
+ fn = strjoina(tree, cgroup, "/cgroup.procs");
+
+ sprintf(pid_string, PID_FMT, pid);
+- r = write_string_file(fn, pid_string, WRITE_STRING_FILE_DISABLE_BUFFER|WRITE_STRING_FILE_MKDIR_0755);
++ r = write_string_file(fn, pid_string, WRITE_STRING_FILE_MKDIR_0755);
+ if (r < 0) {
+ log_error_errno(r, "Failed to move process: %m");
+ goto finish;
+diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
+index 6ab604d3dc..bbec6b686c 100644
+--- a/src/nspawn/nspawn.c
++++ b/src/nspawn/nspawn.c
+@@ -2688,7 +2688,7 @@ static int reset_audit_loginuid(void) {
+ if (streq(p, "4294967295"))
+ return 0;
+
+- r = write_string_file("/proc/self/loginuid", "4294967295", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/proc/self/loginuid", "4294967295", 0);
+ if (r < 0) {
+ log_error_errno(r,
+ "Failed to reset audit login UID. This probably means that your kernel is too\n"
+@@ -4141,7 +4141,7 @@ static int setup_uid_map(
+ return log_oom();
+
+ xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
+- r = write_string_file(uid_map, s, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(uid_map, s, 0);
+ if (r < 0)
+ return log_error_errno(r, "Failed to write UID map: %m");
+
+@@ -4151,7 +4151,7 @@ static int setup_uid_map(
+ return log_oom();
+
+ xsprintf(uid_map, "/proc/" PID_FMT "/gid_map", pid);
+- r = write_string_file(uid_map, s, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(uid_map, s, 0);
+ if (r < 0)
+ return log_error_errno(r, "Failed to write GID map: %m");
+
+diff --git a/src/shared/binfmt-util.c b/src/shared/binfmt-util.c
+index a26175474b..1413a9c72c 100644
+--- a/src/shared/binfmt-util.c
++++ b/src/shared/binfmt-util.c
+@@ -46,7 +46,7 @@ int disable_binfmt(void) {
+ return 0;
+ }
+
+- r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", 0);
+ if (r < 0)
+ return log_warning_errno(r, "Failed to unregister binfmt_misc entries: %m");
+
+diff --git a/src/shared/cgroup-setup.c b/src/shared/cgroup-setup.c
+index 934a16eaf3..c921ced861 100644
+--- a/src/shared/cgroup-setup.c
++++ b/src/shared/cgroup-setup.c
+@@ -351,7 +351,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) {
+
+ xsprintf(c, PID_FMT "\n", pid);
+
+- r = write_string_file(fs, c, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(fs, c, 0);
+ if (r == -EOPNOTSUPP && cg_is_threaded(path) > 0)
+ /* When the threaded mode is used, we cannot read/write the file. Let's return recognizable error. */
+ return -EUCLEAN;
+@@ -966,7 +966,7 @@ int cg_enable_everywhere(
+ return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p);
+ }
+
+- r = write_string_stream(f, s, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_stream(f, s, 0);
+ if (r < 0) {
+ log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
+ FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
+diff --git a/src/shared/coredump-util.c b/src/shared/coredump-util.c
+index 805503f366..01a7ccb291 100644
+--- a/src/shared/coredump-util.c
++++ b/src/shared/coredump-util.c
+@@ -163,7 +163,7 @@ int set_coredump_filter(uint64_t value) {
+ xsprintf(t, "0x%"PRIx64, value);
+
+ return write_string_file("/proc/self/coredump_filter", t,
+- WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER);
++ 0);
+ }
+
+ /* Turn off core dumps but only if we're running outside of a container. */
+@@ -173,7 +173,7 @@ void disable_coredumps(void) {
+ if (detect_container() > 0)
+ return;
+
+- r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", 0);
+ if (r < 0)
+ log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
+ }
+diff --git a/src/shared/hibernate-util.c b/src/shared/hibernate-util.c
+index 3eb13d48f6..d09b901be1 100644
+--- a/src/shared/hibernate-util.c
++++ b/src/shared/hibernate-util.c
+@@ -481,7 +481,7 @@ int write_resume_config(dev_t devno, uint64_t offset, const char *device) {
+
+ /* We write the offset first since it's safer. Note that this file is only available in 4.17+, so
+ * fail gracefully if it doesn't exist and we're only overwriting it with 0. */
+- r = write_string_file("/sys/power/resume_offset", offset_str, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/sys/power/resume_offset", offset_str, 0);
+ if (r == -ENOENT) {
+ if (offset != 0)
+ return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
+@@ -497,7 +497,7 @@ int write_resume_config(dev_t devno, uint64_t offset, const char *device) {
+ log_debug("Wrote resume_offset=%s for device '%s' to /sys/power/resume_offset.",
+ offset_str, device);
+
+- r = write_string_file("/sys/power/resume", devno_str, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/sys/power/resume", devno_str, 0);
+ if (r < 0)
+ return log_error_errno(r,
+ "Failed to write device '%s' (%s) to /sys/power/resume: %m",
+diff --git a/src/shared/smack-util.c b/src/shared/smack-util.c
+index 1f88e724d0..feb18b320a 100644
+--- a/src/shared/smack-util.c
++++ b/src/shared/smack-util.c
+@@ -113,7 +113,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) {
+ return 0;
+
+ p = procfs_file_alloca(pid, "attr/current");
+- r = write_string_file(p, label, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file(p, label, 0);
+ if (r < 0)
+ return r;
+
+diff --git a/src/shared/watchdog.c b/src/shared/watchdog.c
+index 4c1a968718..6faf6806a5 100644
+--- a/src/shared/watchdog.c
++++ b/src/shared/watchdog.c
+@@ -93,7 +93,7 @@ static int set_pretimeout_governor(const char *governor) {
+
+ r = write_string_file(sys_fn,
+ governor,
+- WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE);
++ WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE);
+ if (r < 0)
+ return log_error_errno(r, "Failed to set pretimeout_governor to '%s': %m", governor);
+
+diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
+index 21af3e9e52..6d4b84b5d5 100644
+--- a/src/sleep/sleep.c
++++ b/src/sleep/sleep.c
+@@ -137,7 +137,7 @@ static int write_state(int fd, char * const *states) {
+ if (k < 0)
+ return RET_GATHER(r, k);
+
+- k = write_string_stream(f, *state, WRITE_STRING_FILE_DISABLE_BUFFER);
++ k = write_string_stream(f, *state, 0);
+ if (k >= 0) {
+ log_debug("Using sleep state '%s'.", *state);
+ return 0;
+@@ -155,7 +155,7 @@ static int write_mode(char * const *modes) {
+ STRV_FOREACH(mode, modes) {
+ int k;
+
+- k = write_string_file("/sys/power/disk", *mode, WRITE_STRING_FILE_DISABLE_BUFFER);
++ k = write_string_file("/sys/power/disk", *mode, 0);
+ if (k >= 0) {
+ log_debug("Using sleep disk mode '%s'.", *mode);
+ return 0;
+diff --git a/src/storagetm/storagetm.c b/src/storagetm/storagetm.c
+index ae63baaf79..82eeca479a 100644
+--- a/src/storagetm/storagetm.c
++++ b/src/storagetm/storagetm.c
+@@ -186,7 +186,7 @@ static int nvme_subsystem_unlink(NvmeSubsystem *s) {
+ if (!enable_fn)
+ return log_oom();
+
+- r = write_string_file_at(namespaces_fd, enable_fn, "0", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file_at(namespaces_fd, enable_fn, "0", 0);
+ if (r < 0)
+ log_warning_errno(r, "Failed to disable namespace '%s' of NVME subsystem '%s', ignoring: %m", e->d_name, s->name);
+
+@@ -254,7 +254,7 @@ static int nvme_subsystem_write_metadata(int subsystem_fd, sd_device *device) {
+ _cleanup_free_ char *truncated = strndup(w, 40); /* kernel refuses more than 40 chars (as per nvme spec) */
+
+ /* The default string stored in 'attr_model' is "Linux" btw. */
+- r = write_string_file_at(subsystem_fd, "attr_model", truncated, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file_at(subsystem_fd, "attr_model", truncated, 0);
+ if (r < 0)
+ log_warning_errno(r, "Failed to set model of subsystem to '%s', ignoring: %m", w);
+ }
+@@ -268,7 +268,7 @@ static int nvme_subsystem_write_metadata(int subsystem_fd, sd_device *device) {
+ return log_oom();
+
+ /* The default string stored in 'attr_firmware' is `uname -r` btw, but truncated to 8 chars. */
+- r = write_string_file_at(subsystem_fd, "attr_firmware", truncated, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file_at(subsystem_fd, "attr_firmware", truncated, 0);
+ if (r < 0)
+ log_warning_errno(r, "Failed to set model of subsystem to '%s', ignoring: %m", truncated);
+ }
+@@ -295,7 +295,7 @@ static int nvme_subsystem_write_metadata(int subsystem_fd, sd_device *device) {
+ if (!truncated)
+ return log_oom();
+
+- r = write_string_file_at(subsystem_fd, "attr_serial", truncated, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file_at(subsystem_fd, "attr_serial", truncated, 0);
+ if (r < 0)
+ log_warning_errno(r, "Failed to set serial of subsystem to '%s', ignoring: %m", truncated);
+ }
+@@ -345,7 +345,7 @@ static int nvme_namespace_write_metadata(int namespace_fd, sd_device *device, co
+ id = id128_digest(j, l);
+ }
+
+- r = write_string_file_at(namespace_fd, "device_uuid", SD_ID128_TO_UUID_STRING(id), WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file_at(namespace_fd, "device_uuid", SD_ID128_TO_UUID_STRING(id), 0);
+ if (r < 0)
+ log_warning_errno(r, "Failed to set uuid of namespace to '%s', ignoring: %m", SD_ID128_TO_UUID_STRING(id));
+
+@@ -408,7 +408,7 @@ static int nvme_subsystem_add(const char *node, int consumed_fd, sd_device *devi
+ if (subsystem_fd < 0)
+ return log_error_errno(subsystem_fd, "Failed to create NVME subsystem '%s': %m", j);
+
+- r = write_string_file_at(subsystem_fd, "attr_allow_any_host", "1", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file_at(subsystem_fd, "attr_allow_any_host", "1", 0);
+ if (r < 0)
+ return log_error_errno(r, "Failed to set 'attr_allow_any_host' flag: %m");
+
+@@ -423,11 +423,11 @@ static int nvme_subsystem_add(const char *node, int consumed_fd, sd_device *devi
+
+ /* We use /proc/$PID/fd/$FD rather than /proc/self/fd/$FD, because this string is visible to others
+ * via configfs, and by including the PID it's clear to who the stuff belongs. */
+- r = write_string_file_at(namespace_fd, "device_path", FORMAT_PROC_PID_FD_PATH(0, fd), WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file_at(namespace_fd, "device_path", FORMAT_PROC_PID_FD_PATH(0, fd), 0);
+ if (r < 0)
+ return log_error_errno(r, "Failed to write 'device_path' attribute: %m");
+
+- r = write_string_file_at(namespace_fd, "enable", "1", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file_at(namespace_fd, "enable", "1", 0);
+ if (r < 0)
+ return log_error_errno(r, "Failed to write 'enable' attribute: %m");
+
+@@ -557,19 +557,19 @@ static int nvme_port_add_portnr(
+ return 0;
+ }
+
+- r = write_string_file_at(port_fd, "addr_adrfam", af_to_ipv4_ipv6(ip_family), WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file_at(port_fd, "addr_adrfam", af_to_ipv4_ipv6(ip_family), 0);
+ if (r < 0)
+ return log_error_errno(r, "Failed to set address family on NVME port %" PRIu16 ": %m", portnr);
+
+- r = write_string_file_at(port_fd, "addr_trtype", "tcp", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file_at(port_fd, "addr_trtype", "tcp", 0);
+ if (r < 0)
+ return log_error_errno(r, "Failed to set transport type on NVME port %" PRIu16 ": %m", portnr);
+
+- r = write_string_file_at(port_fd, "addr_trsvcid", fname, WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file_at(port_fd, "addr_trsvcid", fname, 0);
+ if (r < 0)
+ return log_error_errno(r, "Failed to set IP port on NVME port %" PRIu16 ": %m", portnr);
+
+- r = write_string_file_at(port_fd, "addr_traddr", ip_family == AF_INET6 ? "::" : "0.0.0.0", WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file_at(port_fd, "addr_traddr", ip_family == AF_INET6 ? "::" : "0.0.0.0", 0);
+ if (r < 0)
+ return log_error_errno(r, "Failed to set IP address on NVME port %" PRIu16 ": %m", portnr);
+
+diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
+index febe345b4c..a90b610ba1 100644
+--- a/src/udev/udev-rules.c
++++ b/src/udev/udev-rules.c
+@@ -2711,7 +2711,6 @@ static int udev_rule_apply_token_to_event(
+ log_event_debug(dev, token, "ATTR '%s' writing '%s'", buf, value);
+ r = write_string_file(buf, value,
+ WRITE_STRING_FILE_VERIFY_ON_FAILURE |
+- WRITE_STRING_FILE_DISABLE_BUFFER |
+ WRITE_STRING_FILE_AVOID_NEWLINE |
+ WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE);
+ if (r < 0)
+diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
+index 4d82c65f0a..3a3d861b83 100644
+--- a/src/vconsole/vconsole-setup.c
++++ b/src/vconsole/vconsole-setup.c
+@@ -261,7 +261,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) {
+ static int toggle_utf8_sysfs(bool utf8) {
+ int r;
+
+- r = write_string_file("/sys/module/vt/parameters/default_utf8", one_zero(utf8), WRITE_STRING_FILE_DISABLE_BUFFER);
++ r = write_string_file("/sys/module/vt/parameters/default_utf8", one_zero(utf8), 0);
+ if (r < 0)
+ return log_warning_errno(r, "Failed to %s sysfs UTF-8 flag: %m", enable_disable(utf8));
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
deleted file mode 100644
index 0026a7b72a..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 5d4c6b2f4b88b69b31f967371d2a6136c65dc3fd Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Tue, 10 Oct 2017 14:33:30 -0700
-Subject: [PATCH] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
-
-Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right
-thing to do and it's not portable (not supported by musl). See:
-
- http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html
- http://www.openwall.com/lists/musl/2015/02/05/2
-
-Note that laccess() is never passing AT_EACCESS so a lot of the
-discussion in the links above doesn't apply. Note also that
-(currently) all systemd callers of laccess() pass mode as F_OK, so
-only check for existence of a file, not access permissions.
-Therefore, in this case, the only distiction between faccessat()
-with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the behaviour
-for broken symlinks; laccess() on a broken symlink will succeed with
-(flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0).
-
-The laccess() macros was added to systemd some time ago and it's not
-clear if or why it needs to return success for broken symlinks. Maybe
-just historical and not actually necessary or desired behaviour?
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
-
----
- src/basic/fs-util.h | 23 +++++++++++++++++++++--
- src/shared/base-filesystem.c | 6 +++---
- 2 files changed, 24 insertions(+), 5 deletions(-)
-
---- a/src/basic/fs-util.h
-+++ b/src/basic/fs-util.h
-@@ -46,8 +46,27 @@ int futimens_opath(int fd, const struct
- int fd_warn_permissions(const char *path, int fd);
- int stat_warn_permissions(const char *path, const struct stat *st);
-
-+/*
-+ Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right thing to
-+ do and it's not portable (not supported by musl). See:
-+
-+ http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html
-+ http://www.openwall.com/lists/musl/2015/02/05/2
-+
-+ Note that laccess() is never passing AT_EACCESS so a lot of the discussion in
-+ the links above doesn't apply. Note also that (currently) all systemd callers
-+ of laccess() pass mode as F_OK, so only check for existence of a file, not
-+ access permissions. Therefore, in this case, the only distiction between
-+ faccessat() with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the
-+ behaviour for broken symlinks; laccess() on a broken symlink will succeed
-+ with (flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0).
-+
-+ The laccess() macros was added to systemd some time ago and it's not clear if
-+ or why it needs to return success for broken symlinks. Maybe just historical
-+ and not actually necessary or desired behaviour?
-+*/
- #define laccess(path, mode) \
-- RET_NERRNO(faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW))
-+ RET_NERRNO(faccessat(AT_FDCWD, (path), (mode), 0))
-
- int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode);
- int touch(const char *path);
---- a/src/shared/base-filesystem.c
-+++ b/src/shared/base-filesystem.c
-@@ -117,7 +117,7 @@ int base_filesystem_create(const char *r
- return log_error_errno(errno, "Failed to open root file system: %m");
-
- for (size_t i = 0; i < ELEMENTSOF(table); i++) {
-- if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0)
-+ if (faccessat(fd, table[i].dir, F_OK, 0) >= 0)
- continue;
-
- if (table[i].target) {
-@@ -125,7 +125,7 @@ int base_filesystem_create(const char *r
-
- /* check if one of the targets exists */
- NULSTR_FOREACH(s, table[i].target) {
-- if (faccessat(fd, s, F_OK, AT_SYMLINK_NOFOLLOW) < 0)
-+ if (faccessat(fd, s, F_OK, 0) < 0)
- continue;
-
- /* check if a specific file exists at the target path */
-@@ -136,7 +136,7 @@ int base_filesystem_create(const char *r
- if (!p)
- return log_oom();
-
-- if (faccessat(fd, p, F_OK, AT_SYMLINK_NOFOLLOW) < 0)
-+ if (faccessat(fd, p, F_OK, 0) < 0)
- continue;
- }
-
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
deleted file mode 100644
index 612a535d3c..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 1803ea271b93370fdcf7ec497277344f1e775429 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 27 May 2018 08:36:44 -0700
-Subject: [PATCH] Define glibc compatible basename() for non-glibc systems
-
-Fixes builds with musl, even though systemd is adamant about
-using non-posix basename implementation, we have a way out
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/machine/machine-dbus.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
---- a/src/machine/machine-dbus.c
-+++ b/src/machine/machine-dbus.c
-@@ -10,6 +10,11 @@
- #include <libgen.h>
- #undef basename
-
-+#if !defined(__GLIBC__)
-+#include <string.h>
-+#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src)
-+#endif
-+
- #include "alloc-util.h"
- #include "bus-common-errors.h"
- #include "bus-get-properties.h"
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Handle-__cpu_mask-usage.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Handle-__cpu_mask-usage.patch
new file mode 100644
index 0000000000..43f75373a6
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Handle-__cpu_mask-usage.patch
@@ -0,0 +1,60 @@
+From 2f90f8463423cfbb7e83fcef42f1071018c3b56e Mon Sep 17 00:00:00 2001
+From: Scott Murray <scott.murray@konsulko.com>
+Date: Fri, 13 Sep 2019 19:26:27 -0400
+Subject: [PATCH 13/22] Handle __cpu_mask usage
+
+Fixes errors:
+
+src/test/test-cpu-set-util.c:18:54: error: '__cpu_mask' undeclared (first use in this function)
+src/test/test-sizeof.c:73:14: error: '__cpu_mask' undeclared (first use in this function)
+
+__cpu_mask is an internal type of glibc's cpu_set implementation, not
+part of the POSIX definition, which is problematic when building with
+musl, which does not define a matching type. From inspection of musl's
+sched.h, however, it is clear that the corresponding type would be
+unsigned long, which does match glibc's actual __CPU_MASK_TYPE. So,
+add a typedef to cpu-set-util.h defining __cpu_mask appropriately.
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+---
+ src/shared/cpu-set-util.h | 2 ++
+ src/test/test-sizeof.c | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h
+index 3c63a58826..4c2d4347fc 100644
+--- a/src/shared/cpu-set-util.h
++++ b/src/shared/cpu-set-util.h
+@@ -6,6 +6,8 @@
+ #include "macro.h"
+ #include "missing_syscall.h"
+
++typedef unsigned long __cpu_mask;
++
+ /* This wraps the libc interface with a variable to keep the allocated size. */
+ typedef struct CPUSet {
+ cpu_set_t *set;
+diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
+index ea0c58770e..b65c0bd370 100644
+--- a/src/test/test-sizeof.c
++++ b/src/test/test-sizeof.c
+@@ -1,6 +1,5 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+-#include <sched.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <sys/resource.h>
+@@ -12,6 +11,7 @@
+ #include <float.h>
+
+ #include "time-util.h"
++#include "cpu-set-util.h"
+
+ /* Print information about various types. Useful when diagnosing
+ * gcc diagnostics on an unfamiliar architecture. */
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
deleted file mode 100644
index baf4903803..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 30b08f76ea7f5c324afedf97f0867b76dac9f128 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Wed, 4 Jul 2018 15:00:44 +0800
-Subject: [PATCH] Do not disable buffering when writing to oom_score_adj
-
-On musl, disabling buffering when writing to oom_score_adj will
-cause the following error.
-
- Failed to adjust OOM setting: Invalid argument
-
-This error appears for systemd-udevd.service and dbus.service.
-This is because kernel receives '-' instead of the whole '-900'
-if buffering is disabled.
-
-This is libc implementation specific, as glibc does not have this issue.
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- src/basic/process-util.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/basic/process-util.c
-+++ b/src/basic/process-util.c
-@@ -1489,7 +1489,7 @@ int set_oom_score_adjust(int value) {
- xsprintf(t, "%i", value);
-
- return write_string_file("/proc/self/oom_score_adj", t,
-- WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER);
-+ WRITE_STRING_FILE_VERIFY_ON_FAILURE);
- }
-
- int get_oom_score_adjust(int *ret) {
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Handle-missing-gshadow.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Handle-missing-gshadow.patch
new file mode 100644
index 0000000000..a751e1ba6f
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Handle-missing-gshadow.patch
@@ -0,0 +1,173 @@
+From b7c827bb44edbb6251c9fcdb80aa03982c0e7bf3 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Tue, 10 Mar 2020 11:05:20 +0000
+Subject: [PATCH 14/22] Handle missing gshadow
+
+gshadow usage is now present in the userdb code. Mask all uses of it to
+allow compilation on musl
+
+Upstream-Status: Inappropriate [musl specific]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+[Rebased for v247]
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+---
+ src/shared/user-record-nss.c | 20 ++++++++++++++++++++
+ src/shared/user-record-nss.h | 4 ++++
+ src/shared/userdb.c | 7 ++++++-
+ 3 files changed, 30 insertions(+), 1 deletion(-)
+
+diff --git a/src/shared/user-record-nss.c b/src/shared/user-record-nss.c
+index 414a49331b..1a4e1b628c 100644
+--- a/src/shared/user-record-nss.c
++++ b/src/shared/user-record-nss.c
+@@ -329,8 +329,10 @@ int nss_group_to_group_record(
+ if (isempty(grp->gr_name))
+ return -EINVAL;
+
++#if ENABLE_GSHADOW
+ if (sgrp && !streq_ptr(sgrp->sg_namp, grp->gr_name))
+ return -EINVAL;
++#endif
+
+ g = group_record_new();
+ if (!g)
+@@ -346,6 +348,7 @@ int nss_group_to_group_record(
+
+ g->gid = grp->gr_gid;
+
++#if ENABLE_GSHADOW
+ if (sgrp) {
+ if (looks_like_hashed_password(utf8_only(sgrp->sg_passwd))) {
+ g->hashed_password = strv_new(sgrp->sg_passwd);
+@@ -361,6 +364,7 @@ int nss_group_to_group_record(
+ if (r < 0)
+ return r;
+ }
++#endif
+
+ r = json_build(&g->json, JSON_BUILD_OBJECT(
+ JSON_BUILD_PAIR("groupName", JSON_BUILD_STRING(g->group_name)),
+@@ -387,6 +391,7 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
+ assert(ret_sgrp);
+ assert(ret_buffer);
+
++#if ENABLE_GSHADOW
+ for (;;) {
+ _cleanup_free_ char *buf = NULL;
+ struct sgrp sgrp, *result;
+@@ -415,6 +420,9 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
+ buflen *= 2;
+ buf = mfree(buf);
+ }
++#else
++ return -ESRCH;
++#endif
+ }
+
+ int nss_group_record_by_name(
+@@ -426,7 +434,9 @@ int nss_group_record_by_name(
+ struct group grp, *result;
+ bool incomplete = false;
+ size_t buflen = 4096;
++#if ENABLE_GSHADOW
+ struct sgrp sgrp, *sresult = NULL;
++#endif
+ int r;
+
+ assert(name);
+@@ -455,6 +465,7 @@ int nss_group_record_by_name(
+ buf = mfree(buf);
+ }
+
++#if ENABLE_GSHADOW
+ if (with_shadow) {
+ r = nss_sgrp_for_group(result, &sgrp, &sbuf);
+ if (r < 0) {
+@@ -466,6 +477,9 @@ int nss_group_record_by_name(
+ incomplete = true;
+
+ r = nss_group_to_group_record(result, sresult, ret);
++#else
++ r = nss_group_to_group_record(result, NULL, ret);
++#endif
+ if (r < 0)
+ return r;
+
+@@ -483,7 +497,9 @@ int nss_group_record_by_gid(
+ struct group grp, *result;
+ bool incomplete = false;
+ size_t buflen = 4096;
++#if ENABLE_GSHADOW
+ struct sgrp sgrp, *sresult = NULL;
++#endif
+ int r;
+
+ for (;;) {
+@@ -509,6 +525,7 @@ int nss_group_record_by_gid(
+ buf = mfree(buf);
+ }
+
++#if ENABLE_GSHADOW
+ if (with_shadow) {
+ r = nss_sgrp_for_group(result, &sgrp, &sbuf);
+ if (r < 0) {
+@@ -520,6 +537,9 @@ int nss_group_record_by_gid(
+ incomplete = true;
+
+ r = nss_group_to_group_record(result, sresult, ret);
++#else
++ r = nss_group_to_group_record(result, NULL, ret);
++#endif
+ if (r < 0)
+ return r;
+
+diff --git a/src/shared/user-record-nss.h b/src/shared/user-record-nss.h
+index 22ab04d6ee..4e52e7a911 100644
+--- a/src/shared/user-record-nss.h
++++ b/src/shared/user-record-nss.h
+@@ -2,7 +2,11 @@
+ #pragma once
+
+ #include <grp.h>
++#if ENABLE_GSHADOW
+ #include <gshadow.h>
++#else
++struct sgrp;
++#endif
+ #include <pwd.h>
+ #include <shadow.h>
+
+diff --git a/src/shared/userdb.c b/src/shared/userdb.c
+index f60d48ace4..e878199a28 100644
+--- a/src/shared/userdb.c
++++ b/src/shared/userdb.c
+@@ -1038,13 +1038,15 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
+ if (gr) {
+ _cleanup_free_ char *buffer = NULL;
+ bool incomplete = false;
++#if ENABLE_GSHADOW
+ struct sgrp sgrp;
+-
++#endif
+ if (streq_ptr(gr->gr_name, "root"))
+ iterator->synthesize_root = false;
+ if (gr->gr_gid == GID_NOBODY)
+ iterator->synthesize_nobody = false;
+
++#if ENABLE_GSHADOW
+ if (!FLAGS_SET(iterator->flags, USERDB_SUPPRESS_SHADOW)) {
+ r = nss_sgrp_for_group(gr, &sgrp, &buffer);
+ if (r < 0) {
+@@ -1057,6 +1059,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
+ }
+
+ r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret);
++#else
++ r = nss_group_to_group_record(gr, NULL, ret);
++#endif
+ if (r < 0)
+ return r;
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
deleted file mode 100644
index 878914b307..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 873202f63f9f117c6e5a98e444cc709057042979 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Tue, 10 Jul 2018 15:40:17 +0800
-Subject: [PATCH] distinguish XSI-compliant strerror_r from GNU-specifi
- strerror_r
-
-XSI-compliant strerror_r and GNU-specifi strerror_r are different.
-
- int strerror_r(int errnum, char *buf, size_t buflen);
- /* XSI-compliant */
-
- char *strerror_r(int errnum, char *buf, size_t buflen);
- /* GNU-specific */
-
-We need to distinguish between them. Otherwise, we'll get an int value
-assigned to (char *) variable, resulting in segment fault.
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
----
- src/libsystemd/sd-bus/bus-error.c | 5 +++++
- src/libsystemd/sd-journal/journal-send.c | 5 +++++
- 2 files changed, 10 insertions(+)
-
---- a/src/libsystemd/sd-bus/bus-error.c
-+++ b/src/libsystemd/sd-bus/bus-error.c
-@@ -409,7 +409,12 @@ static void bus_error_strerror(sd_bus_er
- return;
-
- errno = 0;
-+#ifndef __GLIBC__
-+ strerror_r(error, m, k);
-+ x = m;
-+#else
- x = strerror_r(error, m, k);
-+#endif
- if (errno == ERANGE || strlen(x) >= k - 1) {
- free(m);
- k *= 2;
---- a/src/libsystemd/sd-journal/journal-send.c
-+++ b/src/libsystemd/sd-journal/journal-send.c
-@@ -348,7 +348,12 @@ static int fill_iovec_perror_and_send(co
- char* j;
-
- errno = 0;
-+#ifndef __GLIBC__
-+ strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
-+ j = buffer + 8 + k;
-+#else
- j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
-+#endif
- if (errno == 0) {
- char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
-
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
new file mode 100644
index 0000000000..e112766a9b
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
@@ -0,0 +1,49 @@
+From 3dc9d9d410bcce54fddfd94f43f7f77f3aa8e281 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 12 Apr 2021 23:44:53 -0700
+Subject: [PATCH 15/22] missing_syscall.h: Define MIPS ABI defines for musl
+
+musl does not define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32, _MIPS_SIM_ABI64
+unlike glibc where these are provided by libc headers, therefore define
+them here in case they are undefined
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/basic/missing_syscall.h | 6 ++++++
+ src/shared/base-filesystem.c | 1 +
+ 2 files changed, 7 insertions(+)
+
+diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
+index d795efd8f2..d6729d3c1d 100644
+--- a/src/basic/missing_syscall.h
++++ b/src/basic/missing_syscall.h
+@@ -20,6 +20,12 @@
+ #include <asm/sgidefs.h>
+ #endif
+
++#ifndef _MIPS_SIM_ABI32
++#define _MIPS_SIM_ABI32 1
++#define _MIPS_SIM_NABI32 2
++#define _MIPS_SIM_ABI64 3
++#endif
++
+ #include "macro.h"
+ #include "missing_keyctl.h"
+ #include "missing_stat.h"
+diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
+index 7ae921a113..0ef9d1fd39 100644
+--- a/src/shared/base-filesystem.c
++++ b/src/shared/base-filesystem.c
+@@ -20,6 +20,7 @@
+ #include "string-util.h"
+ #include "umask-util.h"
+ #include "user-util.h"
++#include "missing_syscall.h"
+
+ typedef struct BaseFilesystem {
+ const char *dir; /* directory or symlink to create */
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
deleted file mode 100644
index e6507c5f89..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From e7441559266074e7a33e3c11ff5cdaf5ba9c0e24 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 15:18:00 +0800
-Subject: [PATCH] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
-
-for currently unknown reasons they get exported to the shared libries
-even without being listed in the sym file
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-[Rebased for v241]
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
----
- src/libsystemd/sd-bus/bus-error.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
-index c49be29e46..90731bd7e7 100644
---- a/src/libsystemd/sd-bus/bus-error.c
-+++ b/src/libsystemd/sd-bus/bus-error.c
-@@ -55,8 +55,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_standard_errors[] = {
- };
-
- /* GCC maps this magically to the beginning and end of the BUS_ERROR_MAP section */
--extern const sd_bus_error_map __start_SYSTEMD_BUS_ERROR_MAP[];
--extern const sd_bus_error_map __stop_SYSTEMD_BUS_ERROR_MAP[];
-+extern const sd_bus_error_map __start_SYSTEMD_BUS_ERROR_MAP[] _hidden_;
-+extern const sd_bus_error_map __stop_SYSTEMD_BUS_ERROR_MAP[] _hidden_;
-
- /* Additional maps registered with sd_bus_error_add_map() are in this
- * NULL terminated array */
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-pass-correct-parameters-to-getdents64.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-pass-correct-parameters-to-getdents64.patch
new file mode 100644
index 0000000000..0be817e62d
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-pass-correct-parameters-to-getdents64.patch
@@ -0,0 +1,37 @@
+From 0994b59dba9f248ad31cb7087046dc00b72cb4ea Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 21 Jan 2022 15:15:11 -0800
+Subject: [PATCH 16/22] pass correct parameters to getdents64
+
+Fixes
+../git/src/basic/recurse-dir.c:57:40: error: incompatible pointer types passing 'uint8_t *' (aka 'unsigned char *') to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types]
+ n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+../git/src/basic/stat-util.c:102:28: error: incompatible pointer types passing 'union (unnamed union at ../git/src/basic/stat-util.c:78:9) *' to parameter of type 'struct dirent *' [-Werror,-Wincompatible-pointer-types]
+ n = getdents64(fd, &buffer, sizeof(buffer));
+ ^~~~~~~
+
+Upstream-Status: Inappropriate [musl specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
+---
+ src/basic/recurse-dir.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/basic/recurse-dir.c b/src/basic/recurse-dir.c
+index 5e98b7a5d8..aef065047b 100644
+--- a/src/basic/recurse-dir.c
++++ b/src/basic/recurse-dir.c
+@@ -55,7 +55,7 @@ int readdir_all(int dir_fd,
+ bs = MIN(MALLOC_SIZEOF_SAFE(de) - offsetof(DirectoryEntries, buffer), (size_t) SSIZE_MAX);
+ assert(bs > de->buffer_size);
+
+- n = getdents64(dir_fd, (uint8_t*) de->buffer + de->buffer_size, bs - de->buffer_size);
++ n = getdents64(dir_fd, (struct dirent*)((uint8_t*) de->buffer + de->buffer_size), bs - de->buffer_size);
+ if (n < 0)
+ return -errno;
+ if (n == 0)
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-Adjust-for-musl-headers.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-Adjust-for-musl-headers.patch
new file mode 100644
index 0000000000..4176522a1c
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-Adjust-for-musl-headers.patch
@@ -0,0 +1,572 @@
+From 3c094d443ca30f19114392fd8ef274af6eabc12d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 21 Jan 2022 22:19:37 -0800
+Subject: [PATCH 17/22] Adjust for musl headers
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+[Rebased for v255.1]
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/libsystemd-network/sd-dhcp6-client.c | 2 +-
+ src/network/netdev/bareudp.c | 2 +-
+ src/network/netdev/batadv.c | 2 +-
+ src/network/netdev/bond.c | 2 +-
+ src/network/netdev/bridge.c | 2 +-
+ src/network/netdev/dummy.c | 2 +-
+ src/network/netdev/geneve.c | 2 +-
+ src/network/netdev/ifb.c | 2 +-
+ src/network/netdev/ipoib.c | 2 +-
+ src/network/netdev/ipvlan.c | 2 +-
+ src/network/netdev/macsec.c | 2 +-
+ src/network/netdev/macvlan.c | 2 +-
+ src/network/netdev/netdev.c | 2 +-
+ src/network/netdev/netdevsim.c | 2 +-
+ src/network/netdev/nlmon.c | 2 +-
+ src/network/netdev/tunnel.c | 2 +-
+ src/network/netdev/vcan.c | 2 +-
+ src/network/netdev/veth.c | 2 +-
+ src/network/netdev/vlan.c | 2 +-
+ src/network/netdev/vrf.c | 2 +-
+ src/network/netdev/vxcan.c | 2 +-
+ src/network/netdev/vxlan.c | 2 +-
+ src/network/netdev/wireguard.c | 2 +-
+ src/network/netdev/xfrm.c | 2 +-
+ src/network/networkd-bridge-mdb.c | 4 ++--
+ src/network/networkd-dhcp-common.c | 3 ++-
+ src/network/networkd-dhcp-prefix-delegation.c | 3 ++-
+ src/network/networkd-dhcp-server.c | 2 +-
+ src/network/networkd-dhcp4.c | 2 +-
+ src/network/networkd-ipv6ll.c | 2 +-
+ src/network/networkd-link.c | 2 +-
+ src/network/networkd-ndisc.c | 2 +-
+ src/network/networkd-route.c | 8 ++++----
+ src/network/networkd-setlink.c | 2 +-
+ src/network/networkd-sysctl.c | 2 +-
+ src/shared/linux/ethtool.h | 3 ++-
+ src/shared/netif-util.c | 2 +-
+ src/udev/udev-builtin-net_id.c | 2 +-
+ 38 files changed, 45 insertions(+), 42 deletions(-)
+
+diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
+index c20367dfc9..b8d4cd8c2a 100644
+--- a/src/libsystemd-network/sd-dhcp6-client.c
++++ b/src/libsystemd-network/sd-dhcp6-client.c
+@@ -5,7 +5,7 @@
+
+ #include <errno.h>
+ #include <sys/ioctl.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_infiniband.h>
+
+ #include "sd-dhcp6-client.h"
+diff --git a/src/network/netdev/bareudp.c b/src/network/netdev/bareudp.c
+index 1df886573b..c8b6714726 100644
+--- a/src/network/netdev/bareudp.c
++++ b/src/network/netdev/bareudp.c
+@@ -2,7 +2,7 @@
+ * Copyright © 2020 VMware, Inc. */
+
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "bareudp.h"
+ #include "netlink-util.h"
+diff --git a/src/network/netdev/batadv.c b/src/network/netdev/batadv.c
+index 26da0231d4..2e8002af8c 100644
+--- a/src/network/netdev/batadv.c
++++ b/src/network/netdev/batadv.c
+@@ -3,7 +3,7 @@
+ #include <inttypes.h>
+ #include <netinet/in.h>
+ #include <linux/genetlink.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "batadv.h"
+ #include "fileio.h"
+diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c
+index 4d75a0d6bf..985b3197e0 100644
+--- a/src/network/netdev/bond.c
++++ b/src/network/netdev/bond.c
+@@ -1,7 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "alloc-util.h"
+ #include "bond.h"
+diff --git a/src/network/netdev/bridge.c b/src/network/netdev/bridge.c
+index 3e394edadf..f12f667687 100644
+--- a/src/network/netdev/bridge.c
++++ b/src/network/netdev/bridge.c
+@@ -2,7 +2,7 @@
+
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_bridge.h>
+
+ #include "bridge.h"
+diff --git a/src/network/netdev/dummy.c b/src/network/netdev/dummy.c
+index 00df1d2787..77b506b422 100644
+--- a/src/network/netdev/dummy.c
++++ b/src/network/netdev/dummy.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "dummy.h"
+
+diff --git a/src/network/netdev/geneve.c b/src/network/netdev/geneve.c
+index bc655ec7ff..a77e8e17e4 100644
+--- a/src/network/netdev/geneve.c
++++ b/src/network/netdev/geneve.c
+@@ -2,7 +2,7 @@
+
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "alloc-util.h"
+ #include "conf-parser.h"
+diff --git a/src/network/netdev/ifb.c b/src/network/netdev/ifb.c
+index d7ff44cb9e..e037629ae4 100644
+--- a/src/network/netdev/ifb.c
++++ b/src/network/netdev/ifb.c
+@@ -1,7 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later
+ * Copyright © 2019 VMware, Inc. */
+
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "ifb.h"
+
+diff --git a/src/network/netdev/ipoib.c b/src/network/netdev/ipoib.c
+index d5fe299b7b..c9c8002eac 100644
+--- a/src/network/netdev/ipoib.c
++++ b/src/network/netdev/ipoib.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_link.h>
+
+ #include "ipoib.h"
+diff --git a/src/network/netdev/ipvlan.c b/src/network/netdev/ipvlan.c
+index 05d5d010f6..d440f49537 100644
+--- a/src/network/netdev/ipvlan.c
++++ b/src/network/netdev/ipvlan.c
+@@ -2,7 +2,7 @@
+
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "conf-parser.h"
+ #include "ipvlan.h"
+diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c
+index 17d6acefb6..679d0984f9 100644
+--- a/src/network/netdev/macsec.c
++++ b/src/network/netdev/macsec.c
+@@ -1,7 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_ether.h>
+ #include <linux/if_macsec.h>
+ #include <linux/genetlink.h>
+diff --git a/src/network/netdev/macvlan.c b/src/network/netdev/macvlan.c
+index 203807e3a5..8ab09a387e 100644
+--- a/src/network/netdev/macvlan.c
++++ b/src/network/netdev/macvlan.c
+@@ -2,7 +2,7 @@
+
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "conf-parser.h"
+ #include "macvlan.h"
+diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c
+index 57127a861a..7f787d0b9f 100644
+--- a/src/network/netdev/netdev.c
++++ b/src/network/netdev/netdev.c
+@@ -2,7 +2,7 @@
+
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <unistd.h>
+
+ #include "alloc-util.h"
+diff --git a/src/network/netdev/netdevsim.c b/src/network/netdev/netdevsim.c
+index 15d5c132f9..a3ffa48b15 100644
+--- a/src/network/netdev/netdevsim.c
++++ b/src/network/netdev/netdevsim.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "netdevsim.h"
+
+diff --git a/src/network/netdev/nlmon.c b/src/network/netdev/nlmon.c
+index ff372092e6..eef66811f4 100644
+--- a/src/network/netdev/nlmon.c
++++ b/src/network/netdev/nlmon.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "nlmon.h"
+
+diff --git a/src/network/netdev/tunnel.c b/src/network/netdev/tunnel.c
+index db84e7cf6e..93d5642962 100644
+--- a/src/network/netdev/tunnel.c
++++ b/src/network/netdev/tunnel.c
+@@ -2,7 +2,7 @@
+
+ #include <netinet/in.h>
+ #include <linux/fou.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_tunnel.h>
+ #include <linux/ip.h>
+ #include <linux/ip6_tunnel.h>
+diff --git a/src/network/netdev/vcan.c b/src/network/netdev/vcan.c
+index 380547ee1e..137c1adf8a 100644
+--- a/src/network/netdev/vcan.c
++++ b/src/network/netdev/vcan.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "vcan.h"
+
+diff --git a/src/network/netdev/veth.c b/src/network/netdev/veth.c
+index e0f5b4ebb1..8a424ed03d 100644
+--- a/src/network/netdev/veth.c
++++ b/src/network/netdev/veth.c
+@@ -3,7 +3,7 @@
+ #include <errno.h>
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/veth.h>
+
+ #include "netlink-util.h"
+diff --git a/src/network/netdev/vlan.c b/src/network/netdev/vlan.c
+index 2390206993..efec630e30 100644
+--- a/src/network/netdev/vlan.c
++++ b/src/network/netdev/vlan.c
+@@ -2,7 +2,7 @@
+
+ #include <errno.h>
+ #include <net/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_vlan.h>
+
+ #include "parse-util.h"
+diff --git a/src/network/netdev/vrf.c b/src/network/netdev/vrf.c
+index b75ec2bcc6..6aeeea640b 100644
+--- a/src/network/netdev/vrf.c
++++ b/src/network/netdev/vrf.c
+@@ -2,7 +2,7 @@
+
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "vrf.h"
+
+diff --git a/src/network/netdev/vxcan.c b/src/network/netdev/vxcan.c
+index c0343f45b6..f9e718f40b 100644
+--- a/src/network/netdev/vxcan.c
++++ b/src/network/netdev/vxcan.c
+@@ -1,7 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+ #include <linux/can/vxcan.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "vxcan.h"
+
+diff --git a/src/network/netdev/vxlan.c b/src/network/netdev/vxlan.c
+index b11fdbbd0d..a971a917f0 100644
+--- a/src/network/netdev/vxlan.c
++++ b/src/network/netdev/vxlan.c
+@@ -2,7 +2,7 @@
+
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "conf-parser.h"
+ #include "alloc-util.h"
+diff --git a/src/network/netdev/wireguard.c b/src/network/netdev/wireguard.c
+index 4c7d837c41..6df6dfb816 100644
+--- a/src/network/netdev/wireguard.c
++++ b/src/network/netdev/wireguard.c
+@@ -6,7 +6,7 @@
+ #include <sys/ioctl.h>
+ #include <net/if.h>
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/ipv6_route.h>
+
+ #include "sd-resolve.h"
+diff --git a/src/network/netdev/xfrm.c b/src/network/netdev/xfrm.c
+index 905bfc0bdf..39e34dbb3b 100644
+--- a/src/network/netdev/xfrm.c
++++ b/src/network/netdev/xfrm.c
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "missing_network.h"
+ #include "xfrm.h"
+diff --git a/src/network/networkd-bridge-mdb.c b/src/network/networkd-bridge-mdb.c
+index bd1a9745dc..949d3da029 100644
+--- a/src/network/networkd-bridge-mdb.c
++++ b/src/network/networkd-bridge-mdb.c
+@@ -1,7 +1,5 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+-#include <net/if.h>
+-#include <linux/if_bridge.h>
+
+ #include "netlink-util.h"
+ #include "networkd-bridge-mdb.h"
+@@ -11,6 +9,8 @@
+ #include "networkd-queue.h"
+ #include "string-util.h"
+ #include "vlan-util.h"
++#include <net/if.h>
++#include <linux/if_bridge.h>
+
+ #define STATIC_BRIDGE_MDB_ENTRIES_PER_NETWORK_MAX 1024U
+
+diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c
+index 080b15387c..efe8283957 100644
+--- a/src/network/networkd-dhcp-common.c
++++ b/src/network/networkd-dhcp-common.c
+@@ -1,7 +1,8 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
++#include <net/if.h>
+
+ #include "bus-error.h"
+ #include "bus-locator.h"
+diff --git a/src/network/networkd-dhcp-prefix-delegation.c b/src/network/networkd-dhcp-prefix-delegation.c
+index af2fe9efcd..511565700f 100644
+--- a/src/network/networkd-dhcp-prefix-delegation.c
++++ b/src/network/networkd-dhcp-prefix-delegation.c
+@@ -1,6 +1,5 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+-#include <linux/ipv6_route.h>
+
+ #include "dhcp6-lease-internal.h"
+ #include "hashmap.h"
+@@ -20,6 +19,8 @@
+ #include "strv.h"
+ #include "tunnel.h"
+
++#include <linux/ipv6_route.h>
++
+ bool link_dhcp_pd_is_enabled(Link *link) {
+ assert(link);
+
+diff --git a/src/network/networkd-dhcp-server.c b/src/network/networkd-dhcp-server.c
+index 607fe0053c..9ce4005874 100644
+--- a/src/network/networkd-dhcp-server.c
++++ b/src/network/networkd-dhcp-server.c
+@@ -1,7 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if.h>
+
+ #include "sd-dhcp-server.h"
+diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
+index efbae6d868..1ea2151d50 100644
+--- a/src/network/networkd-dhcp4.c
++++ b/src/network/networkd-dhcp4.c
+@@ -3,7 +3,7 @@
+ #include <netinet/in.h>
+ #include <netinet/ip.h>
+ #include <linux/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "alloc-util.h"
+ #include "dhcp-client-internal.h"
+diff --git a/src/network/networkd-ipv6ll.c b/src/network/networkd-ipv6ll.c
+index 32229a3fc7..662a345d6e 100644
+--- a/src/network/networkd-ipv6ll.c
++++ b/src/network/networkd-ipv6ll.c
+@@ -1,7 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+ #include <linux/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "in-addr-util.h"
+ #include "networkd-address.h"
+diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
+index ee5f0f2c0a..ea5269a2de 100644
+--- a/src/network/networkd-link.c
++++ b/src/network/networkd-link.c
+@@ -3,7 +3,7 @@
+ #include <net/if.h>
+ #include <netinet/in.h>
+ #include <linux/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_link.h>
+ #include <linux/netdevice.h>
+ #include <sys/socket.h>
+diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c
+index ab9eeb13a5..dd96fe7483 100644
+--- a/src/network/networkd-ndisc.c
++++ b/src/network/networkd-ndisc.c
+@@ -6,7 +6,7 @@
+ #include <arpa/inet.h>
+ #include <netinet/icmp6.h>
+ #include <linux/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "sd-ndisc.h"
+
+diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c
+index 7218d799fc..30d5574eae 100644
+--- a/src/network/networkd-route.c
++++ b/src/network/networkd-route.c
+@@ -1,9 +1,5 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+-#include <linux/icmpv6.h>
+-#include <linux/ipv6_route.h>
+-#include <linux/nexthop.h>
+-
+ #include "alloc-util.h"
+ #include "event-util.h"
+ #include "netlink-util.h"
+@@ -21,6 +17,10 @@
+ #include "vrf.h"
+ #include "wireguard.h"
+
++#include <linux/icmpv6.h>
++#include <linux/ipv6_route.h>
++#include <linux/nexthop.h>
++
+ int route_new(Route **ret) {
+ _cleanup_(route_freep) Route *route = NULL;
+
+diff --git a/src/network/networkd-setlink.c b/src/network/networkd-setlink.c
+index 2298f9ea3a..7d5f87de53 100644
+--- a/src/network/networkd-setlink.c
++++ b/src/network/networkd-setlink.c
+@@ -2,7 +2,7 @@
+
+ #include <netinet/in.h>
+ #include <linux/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/if_bridge.h>
+
+ #include "missing_network.h"
+diff --git a/src/network/networkd-sysctl.c b/src/network/networkd-sysctl.c
+index 2b226b2e2a..f12a474e2f 100644
+--- a/src/network/networkd-sysctl.c
++++ b/src/network/networkd-sysctl.c
+@@ -2,7 +2,7 @@
+
+ #include <netinet/in.h>
+ #include <linux/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "missing_network.h"
+ #include "networkd-link.h"
+diff --git a/src/shared/linux/ethtool.h b/src/shared/linux/ethtool.h
+index 3d1da515c0..3fca9a4faf 100644
+--- a/src/shared/linux/ethtool.h
++++ b/src/shared/linux/ethtool.h
+@@ -16,7 +16,8 @@
+
+ #include <linux/const.h>
+ #include <linux/types.h>
+-#include <linux/if_ether.h>
++#include <netinet/if_ether.h>
++//#include <linux/if_ether.h>
+
+ #include <limits.h> /* for INT_MAX */
+
+diff --git a/src/shared/netif-util.c b/src/shared/netif-util.c
+index f56c5646c1..5af28ff119 100644
+--- a/src/shared/netif-util.c
++++ b/src/shared/netif-util.c
+@@ -1,7 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+ #include <linux/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+
+ #include "arphrd-util.h"
+ #include "device-util.h"
+diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
+index f528a46b8e..830318cda5 100644
+--- a/src/udev/udev-builtin-net_id.c
++++ b/src/udev/udev-builtin-net_id.c
+@@ -18,7 +18,7 @@
+ #include <stdarg.h>
+ #include <unistd.h>
+ #include <linux/if.h>
+-#include <linux/if_arp.h>
++//#include <linux/if_arp.h>
+ #include <linux/netdevice.h>
+ #include <linux/pci_regs.h>
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
deleted file mode 100644
index eeff693bc4..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 64f4d2eb976b9f23ce85b3655a876f7299eafd58 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 15:27:54 +0800
-Subject: [PATCH] missing_type.h: add __compar_d_fn_t definition
-
-Fix the following compile failure:
-src/basic/util.h:71:18: error: unknown type name '__compar_d_fn_t'; did you mean '__compar_fn_t'?
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
----
- src/basic/missing_type.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
-index 3df1084ef2..697aa7f58a 100644
---- a/src/basic/missing_type.h
-+++ b/src/basic/missing_type.h
-@@ -13,6 +13,7 @@
-
- #ifndef __GLIBC__
- typedef int (*comparison_fn_t)(const void *, const void *);
-+typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
- #endif
-
- #ifndef __COMPAR_FN_T
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
deleted file mode 100644
index 5ca5386289..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From d95330f328c23c1cd6c51aeca43f081746cf2899 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 15:44:54 +0800
-Subject: [PATCH] avoid redefinition of prctl_mm_map structure
-
-Fix the following compile failure:
-error: redefinition of 'struct prctl_mm_map'
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
----
- src/basic/missing_prctl.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/basic/missing_prctl.h b/src/basic/missing_prctl.h
-index ab851306ba..5547cad875 100644
---- a/src/basic/missing_prctl.h
-+++ b/src/basic/missing_prctl.h
-@@ -1,7 +1,9 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
- #pragma once
-
-+#ifdef __GLIBC__
- #include <linux/prctl.h>
-+#endif
-
- /* 58319057b7847667f0c9585b9de0e8932b0fdb08 (4.3) */
- #ifndef PR_CAP_AMBIENT
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch
new file mode 100644
index 0000000000..75f6b9094a
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch
@@ -0,0 +1,52 @@
+From be02bd0876a061728661535a709d313e39fe1ac3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 8 Nov 2022 13:31:34 -0800
+Subject: [PATCH 18/22] test-bus-error: strerror() is assumed to be GNU
+ specific version mark it so
+
+Upstream-Status: Inappropriate [Upstream systemd only supports glibc]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libsystemd/sd-bus/test-bus-error.c | 2 ++
+ src/test/test-errno-util.c | 3 ++-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/libsystemd/sd-bus/test-bus-error.c b/src/libsystemd/sd-bus/test-bus-error.c
+index a55f3f9856..4123bf3da0 100644
+--- a/src/libsystemd/sd-bus/test-bus-error.c
++++ b/src/libsystemd/sd-bus/test-bus-error.c
+@@ -99,7 +99,9 @@ TEST(error) {
+ assert_se(!sd_bus_error_is_set(&error));
+ assert_se(sd_bus_error_set_errno(&error, EBUSY) == -EBUSY);
+ assert_se(streq(error.name, "System.Error.EBUSY"));
++#ifdef __GLIBC__
+ assert_se(streq(error.message, STRERROR(EBUSY)));
++#endif
+ assert_se(sd_bus_error_has_name(&error, "System.Error.EBUSY"));
+ assert_se(sd_bus_error_get_errno(&error) == EBUSY);
+ assert_se(sd_bus_error_is_set(&error));
+diff --git a/src/test/test-errno-util.c b/src/test/test-errno-util.c
+index 376d532281..967cfd4d67 100644
+--- a/src/test/test-errno-util.c
++++ b/src/test/test-errno-util.c
+@@ -4,7 +4,7 @@
+ #include "stdio-util.h"
+ #include "string-util.h"
+ #include "tests.h"
+-
++#ifdef __GLIBC__
+ TEST(strerror_not_threadsafe) {
+ /* Just check that strerror really is not thread-safe. */
+ log_info("strerror(%d) → %s", 200, strerror(200));
+@@ -46,6 +46,7 @@ TEST(STRERROR_OR_ELSE) {
+ log_info("STRERROR_OR_ELSE(EPERM, \"EOF\") → %s", STRERROR_OR_EOF(EPERM));
+ log_info("STRERROR_OR_ELSE(-EPERM, \"EOF\") → %s", STRERROR_OR_EOF(-EPERM));
+ }
++#endif /* __GLIBC__ */
+
+ TEST(PROTECT_ERRNO) {
+ errno = 12;
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-Handle-missing-LOCK_EX.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-Handle-missing-LOCK_EX.patch
deleted file mode 100644
index d51ac4265a..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-Handle-missing-LOCK_EX.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 2284f2f44b1b30f10b9196e0f5c6d0a2e0c1871f Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alex.kiernan@gmail.com>
-Date: Fri, 7 Aug 2020 15:19:27 +0000
-Subject: [PATCH] Handle missing LOCK_EX
-
-Upstream-Status: Inappropriate [musl specific]
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-
----
- src/partition/makefs.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/partition/makefs.c b/src/partition/makefs.c
-index 7c94fbfedb..42f966722d 100644
---- a/src/partition/makefs.c
-+++ b/src/partition/makefs.c
-@@ -6,6 +6,7 @@
- #include <sys/stat.h>
- #include <sys/types.h>
- #include <unistd.h>
-+#include <sys/file.h>
-
- #include "alloc-util.h"
- #include "blockdev-util.h"
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch
new file mode 100644
index 0000000000..e038b73678
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-errno-util-Make-STRERROR-portable-for-musl.patch
@@ -0,0 +1,42 @@
+From 46d80840bfe37e67d4f18c37a77751ea1fe63a07 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 23 Jan 2023 23:39:46 -0800
+Subject: [PATCH 19/22] errno-util: Make STRERROR portable for musl
+
+Sadly, systemd has decided to use yet another GNU extention in a macro
+lets make this such that we can use XSI compliant strerror_r() for
+non-glibc hosts
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/basic/errno-util.h | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/src/basic/errno-util.h b/src/basic/errno-util.h
+index 27804e6382..274c1c6ef1 100644
+--- a/src/basic/errno-util.h
++++ b/src/basic/errno-util.h
+@@ -15,8 +15,16 @@
+ * https://stackoverflow.com/questions/34880638/compound-literal-lifetime-and-if-blocks
+ *
+ * Note that we use the GNU variant of strerror_r() here. */
+-#define STRERROR(errnum) strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN)
+-
++static inline const char * STRERROR(int errnum);
++
++static inline const char * STRERROR(int errnum) {
++#ifdef __GLIBC__
++ return strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN);
++#else
++ static __thread char buf[ERRNO_BUF_LEN];
++ return strerror_r(abs(errnum), buf, ERRNO_BUF_LEN) ? "unknown error" : buf;
++#endif
++}
+ /* A helper to print an error message or message for functions that return 0 on EOF.
+ * Note that we can't use ({ … }) to define a temporary variable, so errnum is
+ * evaluated twice. */
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
deleted file mode 100644
index 1ba5c1292b..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From a6a25e1ecae91f48a4f87bf0cc17eaaf0a919ffe Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alex.kiernan@gmail.com>
-Date: Fri, 7 Aug 2020 15:20:17 +0000
-Subject: [PATCH] Fix incompatible pointer type struct sockaddr_un *
-
-| ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c: In function 'cant_be_in_netns':
-| ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:4893:25: error: passing argument 2 of 'connect' from incompatible pointer type [-Werror=incompatible-pointer-types]
-| 4893 | if (connect(fd, &sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) {
-| | ^~~~~~
-| | |
-| | struct sockaddr_un *
-| In file included from ../../../../../../workspace/sources/systemd/src/systemd/sd-daemon.h:22,
-| from ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:21:
-| /home/ubuntu/poky/build/tmp/work/core2-64-poky-linux-musl/systemd/1_246-r0/recipe-sysroot/usr/include/sys/socket.h:384:19: note: expected 'const struct sockaddr *' but argument is of type 'struct sockaddr_un *'
-| 384 | int connect (int, const struct sockaddr *, socklen_t);
-| | ^~~~~~~~~~~~~~~~~~~~~~~
-| cc1: some warnings being treated as errors
-
-Upstream-Status: Inappropriate [musl specific]
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-
----
- src/nspawn/nspawn.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/nspawn/nspawn.c
-+++ b/src/nspawn/nspawn.c
-@@ -5389,7 +5389,7 @@ static int cant_be_in_netns(void) {
- if (fd < 0)
- return log_error_errno(errno, "Failed to allocate udev control socket: %m");
-
-- if (connect(fd, &sa.sa, SOCKADDR_UN_LEN(sa.un)) < 0) {
-+ if (connect(fd, (struct sockaddr *)&sa.sa, SOCKADDR_UN_LEN(sa.un)) < 0) {
-
- if (errno == ENOENT || ERRNO_IS_DISCONNECT(errno))
- return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch
new file mode 100644
index 0000000000..b83fffe793
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch
@@ -0,0 +1,39 @@
+From 9eb4867b4e2dbdb2484ae854022aff97e2f0feb3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 2 Aug 2023 12:06:27 -0700
+Subject: [PATCH 20/22] sd-event: Make malloc_trim() conditional on glibc
+
+musl does not have this API
+
+Upstream-Status: Inappropriate [musl-specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libsystemd/sd-event/sd-event.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
+index 288798a0dc..6419a7f216 100644
+--- a/src/libsystemd/sd-event/sd-event.c
++++ b/src/libsystemd/sd-event/sd-event.c
+@@ -1874,7 +1874,7 @@ _public_ int sd_event_add_exit(
+ }
+
+ _public_ int sd_event_trim_memory(void) {
+- int r;
++ int r = 0;
+
+ /* A default implementation of a memory pressure callback. Simply releases our own allocation caches
+ * and glibc's. This is automatically used when people call sd_event_add_memory_pressure() with a
+@@ -1888,7 +1888,9 @@ _public_ int sd_event_trim_memory(void) {
+
+ usec_t before_timestamp = now(CLOCK_MONOTONIC);
+ hashmap_trim_pools();
++#ifdef __GLIBC__
+ r = malloc_trim(0);
++#endif
+ usec_t after_timestamp = now(CLOCK_MONOTONIC);
+
+ if (r > 0)
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-shared-Do-not-use-malloc_info-on-musl.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-shared-Do-not-use-malloc_info-on-musl.patch
new file mode 100644
index 0000000000..7eff069bb7
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-shared-Do-not-use-malloc_info-on-musl.patch
@@ -0,0 +1,57 @@
+From 502597b9ddd6b145541b23fadca0b1d3ca9f6367 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 2 Aug 2023 12:20:40 -0700
+Subject: [PATCH 21/22] shared: Do not use malloc_info on musl
+
+Upstream-Status: Inappropriate [musl-specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/shared/bus-util.c | 5 +++--
+ src/shared/common-signal.c | 4 ++--
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
+index 74f148c8b4..2d862a123d 100644
+--- a/src/shared/bus-util.c
++++ b/src/shared/bus-util.c
+@@ -611,15 +611,16 @@ static int method_dump_memory_state_by_fd(sd_bus_message *message, void *userdat
+ _cleanup_close_ int fd = -EBADF;
+ size_t dump_size;
+ FILE *f;
+- int r;
++ int r = 0;
+
+ assert(message);
+
+ f = memstream_init(&m);
+ if (!f)
+ return -ENOMEM;
+-
++#ifdef __GLIBC__
+ r = RET_NERRNO(malloc_info(/* options= */ 0, f));
++#endif
+ if (r < 0)
+ return r;
+
+diff --git a/src/shared/common-signal.c b/src/shared/common-signal.c
+index 8e70e365dd..9e782caec9 100644
+--- a/src/shared/common-signal.c
++++ b/src/shared/common-signal.c
+@@ -65,12 +65,12 @@ int sigrtmin18_handler(sd_event_source *s, const struct signalfd_siginfo *si, vo
+ log_oom();
+ break;
+ }
+-
++#ifdef __GLIBC__
+ if (malloc_info(0, f) < 0) {
+ log_error_errno(errno, "Failed to invoke malloc_info(): %m");
+ break;
+ }
+-
++#endif
+ (void) memstream_dump(LOG_INFO, &m);
+ break;
+ }
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-test-json.c-define-M_PIl.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-test-json.c-define-M_PIl.patch
deleted file mode 100644
index dfab8fbbdf..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-test-json.c-define-M_PIl.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 47472da6e8900773c26da8fd26699367447d97a6 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 16:53:06 +0800
-Subject: [PATCH] test-json.c: define M_PIl
-
-Fix the following compile failure:
-src/test/test-json.c:305:50: error: 'M_PIl' undeclared (first use in this function); did you mean 'M_PI'?
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
----
- src/test/test-json.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/src/test/test-json.c
-+++ b/src/test/test-json.c
-@@ -14,6 +14,10 @@
- #include "tests.h"
- #include "util.h"
-
-+#ifndef M_PIl
-+#define M_PIl 3.141592653589793238462643383279502884L
-+#endif
-+
- static void test_tokenizer_one(const char *data, ...) {
- unsigned line = 0, column = 0;
- void *state = NULL;
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-avoid-missing-LOCK_EX-declaration.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-avoid-missing-LOCK_EX-declaration.patch
new file mode 100644
index 0000000000..24f3bf74a0
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-avoid-missing-LOCK_EX-declaration.patch
@@ -0,0 +1,43 @@
+From fd52f1764647e03a35e8f0ed0ef952049073ccbd Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Tue, 2 Jan 2024 11:03:27 +0800
+Subject: [PATCH 22/22] avoid missing LOCK_EX declaration
+
+This only happens on MUSL. Include sys/file.h to avoid compilation
+error about missing LOCK_EX declaration.
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/core/exec-invoke.c | 1 +
+ src/shared/dev-setup.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/core/exec-invoke.c b/src/core/exec-invoke.c
+index 70d963e269..7084811439 100644
+--- a/src/core/exec-invoke.c
++++ b/src/core/exec-invoke.c
+@@ -4,6 +4,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/mount.h>
+ #include <sys/prctl.h>
++#include <sys/file.h>
+
+ #if HAVE_PAM
+ #include <security/pam_appl.h>
+diff --git a/src/shared/dev-setup.h b/src/shared/dev-setup.h
+index 5339bc4e5e..0697495f23 100644
+--- a/src/shared/dev-setup.h
++++ b/src/shared/dev-setup.h
+@@ -2,6 +2,7 @@
+ #pragma once
+
+ #include <sys/types.h>
++#include <sys/file.h>
+
+ int lock_dev_console(void);
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-do-not-disable-buffer-in-writing-files.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-do-not-disable-buffer-in-writing-files.patch
deleted file mode 100644
index d389e1d9f9..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-do-not-disable-buffer-in-writing-files.patch
+++ /dev/null
@@ -1,420 +0,0 @@
-From 0f9422780a569c79a4b28e44c79c70b4a354bd92 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Fri, 1 Mar 2019 15:22:15 +0800
-Subject: [PATCH] do not disable buffer in writing files
-
-Do not disable buffer in writing files, otherwise we get
-failure at boot for musl like below.
-
- [!!!!!!] Failed to allocate manager object.
-
-And there will be other failures, critical or not critical.
-This is specific to musl.
-
-Upstream-Status: Inappropriate [musl]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-[Rebased for v242]
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-[rebased for systemd 243]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- src/basic/cgroup-util.c | 10 +++++-----
- src/basic/procfs-util.c | 4 ++--
- src/basic/sysctl-util.c | 2 +-
- src/basic/util.c | 2 +-
- src/binfmt/binfmt.c | 6 +++---
- src/core/main.c | 4 ++--
- src/core/smack-setup.c | 8 ++++----
- src/hibernate-resume/hibernate-resume.c | 2 +-
- src/libsystemd/sd-device/sd-device.c | 2 +-
- src/nspawn/nspawn-cgroup.c | 2 +-
- src/nspawn/nspawn.c | 6 +++---
- src/shared/cgroup-setup.c | 4 ++--
- src/shared/mount-util.c | 4 ++--
- src/shared/smack-util.c | 2 +-
- src/sleep/sleep.c | 8 ++++----
- src/vconsole/vconsole-setup.c | 2 +-
- 16 files changed, 34 insertions(+), 34 deletions(-)
-
---- a/src/basic/cgroup-util.c
-+++ b/src/basic/cgroup-util.c
-@@ -390,7 +390,7 @@ int cg_kill_kernel_sigkill(const char *c
- if (r < 0)
- return r;
-
-- r = write_string_file(killfile, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(killfile, "1", 0);
- if (r < 0)
- return r;
-
-@@ -803,7 +803,7 @@ int cg_install_release_agent(const char
-
- sc = strstrip(contents);
- if (isempty(sc)) {
-- r = write_string_file(fs, agent, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(fs, agent, 0);
- if (r < 0)
- return r;
- } else if (!path_equal(sc, agent))
-@@ -821,7 +821,7 @@ int cg_install_release_agent(const char
-
- sc = strstrip(contents);
- if (streq(sc, "0")) {
-- r = write_string_file(fs, "1", WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(fs, "1", 0);
- if (r < 0)
- return r;
-
-@@ -848,7 +848,7 @@ int cg_uninstall_release_agent(const cha
- if (r < 0)
- return r;
-
-- r = write_string_file(fs, "0", WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(fs, "0", 0);
- if (r < 0)
- return r;
-
-@@ -858,7 +858,7 @@ int cg_uninstall_release_agent(const cha
- if (r < 0)
- return r;
-
-- r = write_string_file(fs, "", WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(fs, "", 0);
- if (r < 0)
- return r;
-
-@@ -1704,7 +1704,7 @@ int cg_set_attribute(const char *control
- if (r < 0)
- return r;
-
-- return write_string_file(p, value, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ return write_string_file(p, value, 0);
- }
-
- int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
---- a/src/basic/procfs-util.c
-+++ b/src/basic/procfs-util.c
-@@ -64,13 +64,13 @@ int procfs_tasks_set_limit(uint64_t limi
- * decrease it, as threads-max is the much more relevant sysctl. */
- if (limit > pid_max-1) {
- sprintf(buffer, "%" PRIu64, limit+1); /* Add one, since PID 0 is not a valid PID */
-- r = write_string_file("/proc/sys/kernel/pid_max", buffer, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/proc/sys/kernel/pid_max", buffer, 0);
- if (r < 0)
- return r;
- }
-
- sprintf(buffer, "%" PRIu64, limit);
-- r = write_string_file("/proc/sys/kernel/threads-max", buffer, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/proc/sys/kernel/threads-max", buffer, 0);
- if (r < 0) {
- uint64_t threads_max;
-
---- a/src/basic/sysctl-util.c
-+++ b/src/basic/sysctl-util.c
-@@ -58,7 +58,7 @@ int sysctl_write(const char *property, c
-
- log_debug("Setting '%s' to '%s'", p, value);
-
-- return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_SUPPRESS_REDUNDANT_VIRTUAL);
-+ return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_SUPPRESS_REDUNDANT_VIRTUAL);
- }
-
- int sysctl_writef(const char *property, const char *format, ...) {
---- a/src/basic/util.c
-+++ b/src/basic/util.c
-@@ -168,7 +168,7 @@ void disable_coredumps(void) {
- if (detect_container() > 0)
- return;
-
-- r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", 0);
- if (r < 0)
- log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
- }
---- a/src/binfmt/binfmt.c
-+++ b/src/binfmt/binfmt.c
-@@ -29,7 +29,7 @@ static bool arg_unregister = false;
-
- static int delete_rule(const char *rulename) {
- const char *fn = strjoina("/proc/sys/fs/binfmt_misc/", rulename);
-- return write_string_file(fn, "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
-+ return write_string_file(fn, "-1", 0);
- }
-
- static int apply_rule(const char *filename, unsigned line, const char *rule) {
-@@ -59,7 +59,7 @@ static int apply_rule(const char *filena
- if (r >= 0)
- log_debug("%s:%u: Rule '%s' deleted.", filename, line, rulename);
-
-- r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule, 0);
- if (r < 0)
- return log_error_errno(r, "%s:%u: Failed to add binary format '%s': %m",
- filename, line, rulename);
-@@ -226,7 +226,7 @@ static int run(int argc, char *argv[]) {
- }
-
- /* Flush out all rules */
-- r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", 0);
- if (r < 0)
- log_warning_errno(r, "Failed to flush binfmt_misc rules, ignoring: %m");
- else
---- a/src/core/main.c
-+++ b/src/core/main.c
-@@ -1466,7 +1466,7 @@ static int bump_unix_max_dgram_qlen(void
- if (v >= DEFAULT_UNIX_MAX_DGRAM_QLEN)
- return 0;
-
-- r = write_string_filef("/proc/sys/net/unix/max_dgram_qlen", WRITE_STRING_FILE_DISABLE_BUFFER,
-+ r = write_string_filef("/proc/sys/net/unix/max_dgram_qlen", 0,
- "%lu", DEFAULT_UNIX_MAX_DGRAM_QLEN);
- if (r < 0)
- return log_full_errno(IN_SET(r, -EROFS, -EPERM, -EACCES) ? LOG_DEBUG : LOG_WARNING, r,
-@@ -1737,7 +1737,7 @@ static void initialize_core_pattern(bool
- if (getpid_cached() != 1)
- return;
-
-- r = write_string_file("/proc/sys/kernel/core_pattern", arg_early_core_pattern, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/proc/sys/kernel/core_pattern", arg_early_core_pattern, 0);
- if (r < 0)
- log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m",
- arg_early_core_pattern);
---- a/src/core/smack-setup.c
-+++ b/src/core/smack-setup.c
-@@ -320,17 +320,17 @@ int mac_smack_setup(bool *loaded_policy)
- }
-
- #if HAVE_SMACK_RUN_LABEL
-- r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, 0);
- if (r < 0)
- log_warning_errno(r, "Failed to set SMACK label \"" SMACK_RUN_LABEL "\" on self: %m");
-- r = write_string_file("/sys/fs/smackfs/ambient", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/sys/fs/smackfs/ambient", SMACK_RUN_LABEL, 0);
- if (r < 0)
- log_warning_errno(r, "Failed to set SMACK ambient label \"" SMACK_RUN_LABEL "\": %m");
- r = write_string_file("/sys/fs/smackfs/netlabel",
-- "0.0.0.0/0 " SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ "0.0.0.0/0 " SMACK_RUN_LABEL, 0);
- if (r < 0)
- log_warning_errno(r, "Failed to set SMACK netlabel rule \"0.0.0.0/0 " SMACK_RUN_LABEL "\": %m");
-- r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", 0);
- if (r < 0)
- log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m");
- #endif
---- a/src/hibernate-resume/hibernate-resume.c
-+++ b/src/hibernate-resume/hibernate-resume.c
-@@ -45,7 +45,7 @@ int main(int argc, char *argv[]) {
- return EXIT_FAILURE;
- }
-
-- r = write_string_file("/sys/power/resume", major_minor, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/sys/power/resume", major_minor, 0);
- if (r < 0) {
- log_error_errno(r, "Failed to write '%s' to /sys/power/resume: %m", major_minor);
- return EXIT_FAILURE;
---- a/src/libsystemd/sd-device/sd-device.c
-+++ b/src/libsystemd/sd-device/sd-device.c
-@@ -2108,7 +2108,7 @@ _public_ int sd_device_set_sysattr_value
- if (!value)
- return -ENOMEM;
-
-- r = write_string_file(path, value, WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_NOFOLLOW);
-+ r = write_string_file(path, value, 0 | WRITE_STRING_FILE_NOFOLLOW);
- if (r < 0) {
- /* On failure, clear cache entry, as we do not know how it fails. */
- device_remove_cached_sysattr_value(device, sysattr);
---- a/src/nspawn/nspawn-cgroup.c
-+++ b/src/nspawn/nspawn-cgroup.c
-@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified
- fn = strjoina(tree, cgroup, "/cgroup.procs");
-
- sprintf(pid_string, PID_FMT, pid);
-- r = write_string_file(fn, pid_string, WRITE_STRING_FILE_DISABLE_BUFFER|WRITE_STRING_FILE_MKDIR_0755);
-+ r = write_string_file(fn, pid_string, WRITE_STRING_FILE_MKDIR_0755);
- if (r < 0) {
- log_error_errno(r, "Failed to move process: %m");
- goto finish;
---- a/src/nspawn/nspawn.c
-+++ b/src/nspawn/nspawn.c
-@@ -2757,7 +2757,7 @@ static int reset_audit_loginuid(void) {
- if (streq(p, "4294967295"))
- return 0;
-
-- r = write_string_file("/proc/self/loginuid", "4294967295", WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/proc/self/loginuid", "4294967295", 0);
- if (r < 0) {
- log_error_errno(r,
- "Failed to reset audit login UID. This probably means that your kernel is too\n"
-@@ -4163,7 +4163,7 @@ static int setup_uid_map(
- return log_oom();
-
- xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
-- r = write_string_file(uid_map, s, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(uid_map, s, 0);
- if (r < 0)
- return log_error_errno(r, "Failed to write UID map: %m");
-
-@@ -4173,7 +4173,7 @@ static int setup_uid_map(
- return log_oom();
-
- xsprintf(uid_map, "/proc/" PID_FMT "/gid_map", pid);
-- r = write_string_file(uid_map, s, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(uid_map, s, 0);
- if (r < 0)
- return log_error_errno(r, "Failed to write GID map: %m");
-
---- a/src/shared/cgroup-setup.c
-+++ b/src/shared/cgroup-setup.c
-@@ -345,7 +345,7 @@ int cg_attach(const char *controller, co
-
- xsprintf(c, PID_FMT "\n", pid);
-
-- r = write_string_file(fs, c, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(fs, c, 0);
- if (r < 0)
- return r;
-
-@@ -877,7 +877,7 @@ int cg_enable_everywhere(
- return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p);
- }
-
-- r = write_string_stream(f, s, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_stream(f, s, 0);
- if (r < 0) {
- log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
- FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
---- a/src/shared/smack-util.c
-+++ b/src/shared/smack-util.c
-@@ -114,7 +114,7 @@ int mac_smack_apply_pid(pid_t pid, const
- return 0;
-
- p = procfs_file_alloca(pid, "attr/current");
-- r = write_string_file(p, label, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(p, label, 0);
- if (r < 0)
- return r;
-
---- a/src/sleep/sleep.c
-+++ b/src/sleep/sleep.c
-@@ -46,7 +46,7 @@ static int write_hibernate_location_info
- assert(hibernate_location->swap);
-
- xsprintf(resume_str, "%u:%u", major(hibernate_location->devno), minor(hibernate_location->devno));
-- r = write_string_file("/sys/power/resume", resume_str, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/sys/power/resume", resume_str, 0);
- if (r < 0)
- return log_debug_errno(r, "Failed to write partition device to /sys/power/resume for '%s': '%s': %m",
- hibernate_location->swap->device, resume_str);
-@@ -73,7 +73,7 @@ static int write_hibernate_location_info
- }
-
- xsprintf(offset_str, "%" PRIu64, hibernate_location->offset);
-- r = write_string_file("/sys/power/resume_offset", offset_str, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/sys/power/resume_offset", offset_str, 0);
- if (r < 0)
- return log_debug_errno(r, "Failed to write swap file offset to /sys/power/resume_offset for '%s': '%s': %m",
- hibernate_location->swap->device, offset_str);
-@@ -90,7 +90,7 @@ static int write_mode(char **modes) {
- STRV_FOREACH(mode, modes) {
- int k;
-
-- k = write_string_file("/sys/power/disk", *mode, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ k = write_string_file("/sys/power/disk", *mode, 0);
- if (k >= 0)
- return 0;
-
-@@ -112,7 +112,7 @@ static int write_state(FILE **f, char **
- STRV_FOREACH(state, states) {
- int k;
-
-- k = write_string_stream(*f, *state, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ k = write_string_stream(*f, *state, 0);
- if (k >= 0)
- return 0;
- log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state);
---- a/src/vconsole/vconsole-setup.c
-+++ b/src/vconsole/vconsole-setup.c
-@@ -108,7 +108,7 @@ static int toggle_utf8_vc(const char *na
- static int toggle_utf8_sysfs(bool utf8) {
- int r;
-
-- r = write_string_file("/sys/module/vt/parameters/default_utf8", one_zero(utf8), WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/sys/module/vt/parameters/default_utf8", one_zero(utf8), 0);
- if (r < 0)
- return log_warning_errno(r, "Failed to %s sysfs UTF-8 flag: %m", enable_disable(utf8));
-
---- a/src/basic/namespace-util.c
-+++ b/src/basic/namespace-util.c
-@@ -202,12 +202,12 @@ int userns_acquire(const char *uid_map,
- freeze();
-
- xsprintf(path, "/proc/" PID_FMT "/uid_map", pid);
-- r = write_string_file(path, uid_map, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(path, uid_map, 0);
- if (r < 0)
- return log_error_errno(r, "Failed to write UID map: %m");
-
- xsprintf(path, "/proc/" PID_FMT "/gid_map", pid);
-- r = write_string_file(path, gid_map, WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(path, gid_map, 0);
- if (r < 0)
- return log_error_errno(r, "Failed to write GID map: %m");
-
---- a/src/core/cgroup.c
-+++ b/src/core/cgroup.c
-@@ -4140,7 +4140,7 @@ int unit_cgroup_freezer_action(Unit *u,
- else
- u->freezer_state = FREEZER_THAWING;
-
-- r = write_string_file(path, one_zero(action == FREEZER_FREEZE), WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file(path, one_zero(action == FREEZER_FREEZE), 0);
- if (r < 0)
- return r;
-
---- a/src/home/homework.c
-+++ b/src/home/homework.c
-@@ -284,7 +284,7 @@ static void drop_caches_now(void) {
- * details. We write "2" into /proc/sys/vm/drop_caches to ensure dentries/inodes are flushed, but not
- * more. */
-
-- r = write_string_file("/proc/sys/vm/drop_caches", "2\n", WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/proc/sys/vm/drop_caches", "2\n", 0);
- if (r < 0)
- log_warning_errno(r, "Failed to drop caches, ignoring: %m");
- else
---- a/src/shared/binfmt-util.c
-+++ b/src/shared/binfmt-util.c
-@@ -26,7 +26,7 @@ int disable_binfmt(void) {
- if (r < 0)
- return log_warning_errno(r, "Failed to determine whether binfmt_misc is mounted: %m");
-
-- r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", WRITE_STRING_FILE_DISABLE_BUFFER);
-+ r = write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", 0);
- if (r < 0)
- return log_warning_errno(r, "Failed to unregister binfmt_misc entries: %m");
-
---- a/src/shared/coredump-util.c
-+++ b/src/shared/coredump-util.c
-@@ -70,5 +70,5 @@ int set_coredump_filter(uint64_t value)
- sprintf(t, "0x%"PRIx64, value);
-
- return write_string_file("/proc/self/coredump_filter", t,
-- WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER);
-+ WRITE_STRING_FILE_VERIFY_ON_FAILURE);
- }
---- a/src/udev/udev-rules.c
-+++ b/src/udev/udev-rules.c
-@@ -2181,7 +2181,6 @@ static int udev_rule_apply_token_to_even
- log_rule_debug(dev, rules, "ATTR '%s' writing '%s'", buf, value);
- r = write_string_file(buf, value,
- WRITE_STRING_FILE_VERIFY_ON_FAILURE |
-- WRITE_STRING_FILE_DISABLE_BUFFER |
- WRITE_STRING_FILE_AVOID_NEWLINE |
- WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE);
- if (r < 0)
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0025-Handle-__cpu_mask-usage.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0025-Handle-__cpu_mask-usage.patch
deleted file mode 100644
index e001ed59e8..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0025-Handle-__cpu_mask-usage.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From e4f9ef547fa342102db15188544daa18e71e9c66 Mon Sep 17 00:00:00 2001
-From: Scott Murray <scott.murray@konsulko.com>
-Date: Fri, 13 Sep 2019 19:26:27 -0400
-Subject: [PATCH] Handle __cpu_mask usage
-
-Fixes errors:
-
-src/test/test-cpu-set-util.c:18:54: error: '__cpu_mask' undeclared (first use in this function)
-src/test/test-sizeof.c:73:14: error: '__cpu_mask' undeclared (first use in this function)
-
-__cpu_mask is an internal type of glibc's cpu_set implementation, not
-part of the POSIX definition, which is problematic when building with
-musl, which does not define a matching type. From inspection of musl's
-sched.h, however, it is clear that the corresponding type would be
-unsigned long, which does match glibc's actual __CPU_MASK_TYPE. So,
-add a typedef to cpu-set-util.h defining __cpu_mask appropriately.
-
-Upstream-Status: Inappropriate [musl specific]
-
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- src/shared/cpu-set-util.h | 2 ++
- src/test/test-sizeof.c | 2 +-
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h
-index 3c63a58826..4c2d4347fc 100644
---- a/src/shared/cpu-set-util.h
-+++ b/src/shared/cpu-set-util.h
-@@ -6,6 +6,8 @@
- #include "macro.h"
- #include "missing_syscall.h"
-
-+typedef unsigned long __cpu_mask;
-+
- /* This wraps the libc interface with a variable to keep the allocated size. */
- typedef struct CPUSet {
- cpu_set_t *set;
-diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
-index 4403c0aa52..e7e4ae112d 100644
---- a/src/test/test-sizeof.c
-+++ b/src/test/test-sizeof.c
-@@ -1,6 +1,5 @@
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
-
--#include <sched.h>
- #include <stdio.h>
- #include <string.h>
- #include <sys/types.h>
-@@ -10,6 +9,7 @@
- #include <float.h>
-
- #include "time-util.h"
-+#include "cpu-set-util.h"
-
- /* Print information about various types. Useful when diagnosing
- * gcc diagnostics on an unfamiliar architecture. */
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0026-Handle-missing-gshadow.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0026-Handle-missing-gshadow.patch
deleted file mode 100644
index 2d06ab84a2..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0026-Handle-missing-gshadow.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-From 66a926cf906260c2fb5ea851e55efe03edd444dc Mon Sep 17 00:00:00 2001
-From: Alex Kiernan <alex.kiernan@gmail.com>
-Date: Tue, 10 Mar 2020 11:05:20 +0000
-Subject: [PATCH] Handle missing gshadow
-
-gshadow usage is now present in the userdb code. Mask all uses of it to
-allow compilation on musl
-
-Upstream-Status: Inappropriate [musl specific]
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
-[Rebased for v247]
-Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
-
----
- src/shared/user-record-nss.c | 20 ++++++++++++++++++++
- src/shared/user-record-nss.h | 4 ++++
- src/shared/userdb.c | 7 ++++++-
- 3 files changed, 30 insertions(+), 1 deletion(-)
-
---- a/src/shared/user-record-nss.c
-+++ b/src/shared/user-record-nss.c
-@@ -331,8 +331,10 @@ int nss_group_to_group_record(
- if (isempty(grp->gr_name))
- return -EINVAL;
-
-+#if ENABLE_GSHADOW
- if (sgrp && !streq_ptr(sgrp->sg_namp, grp->gr_name))
- return -EINVAL;
-+#endif
-
- g = group_record_new();
- if (!g)
-@@ -348,6 +350,7 @@ int nss_group_to_group_record(
-
- g->gid = grp->gr_gid;
-
-+#if ENABLE_GSHADOW
- if (sgrp) {
- if (looks_like_hashed_password(utf8_only(sgrp->sg_passwd))) {
- g->hashed_password = strv_new(sgrp->sg_passwd);
-@@ -363,6 +366,7 @@ int nss_group_to_group_record(
- if (r < 0)
- return r;
- }
-+#endif
-
- r = json_build(&g->json, JSON_BUILD_OBJECT(
- JSON_BUILD_PAIR("groupName", JSON_BUILD_STRING(g->group_name)),
-@@ -388,6 +392,7 @@ int nss_sgrp_for_group(const struct grou
- assert(ret_sgrp);
- assert(ret_buffer);
-
-+#if ENABLE_GSHADOW
- for (;;) {
- _cleanup_free_ char *buf = NULL;
- struct sgrp sgrp, *result;
-@@ -416,6 +421,9 @@ int nss_sgrp_for_group(const struct grou
- buflen *= 2;
- buf = mfree(buf);
- }
-+#else
-+ return -ESRCH;
-+#endif
- }
-
- int nss_group_record_by_name(
-@@ -427,7 +435,9 @@ int nss_group_record_by_name(
- struct group grp, *result;
- bool incomplete = false;
- size_t buflen = 4096;
-+#if ENABLE_GSHADOW
- struct sgrp sgrp, *sresult = NULL;
-+#endif
- int r;
-
- assert(name);
-@@ -457,6 +467,7 @@ int nss_group_record_by_name(
- buf = mfree(buf);
- }
-
-+#if ENABLE_GSHADOW
- if (with_shadow) {
- r = nss_sgrp_for_group(result, &sgrp, &sbuf);
- if (r < 0) {
-@@ -468,6 +479,9 @@ int nss_group_record_by_name(
- incomplete = true;
-
- r = nss_group_to_group_record(result, sresult, ret);
-+#else
-+ r = nss_group_to_group_record(result, NULL, ret);
-+#endif
- if (r < 0)
- return r;
-
-@@ -484,7 +498,9 @@ int nss_group_record_by_gid(
- struct group grp, *result;
- bool incomplete = false;
- size_t buflen = 4096;
-+#if ENABLE_GSHADOW
- struct sgrp sgrp, *sresult = NULL;
-+#endif
- int r;
-
- assert(ret);
-@@ -512,6 +528,7 @@ int nss_group_record_by_gid(
- buf = mfree(buf);
- }
-
-+#if ENABLE_GSHADOW
- if (with_shadow) {
- r = nss_sgrp_for_group(result, &sgrp, &sbuf);
- if (r < 0) {
-@@ -523,6 +540,9 @@ int nss_group_record_by_gid(
- incomplete = true;
-
- r = nss_group_to_group_record(result, sresult, ret);
-+#else
-+ r = nss_group_to_group_record(result, NULL, ret);
-+#endif
- if (r < 0)
- return r;
-
---- a/src/shared/user-record-nss.h
-+++ b/src/shared/user-record-nss.h
-@@ -2,7 +2,11 @@
- #pragma once
-
- #include <grp.h>
-+#if ENABLE_GSHADOW
- #include <gshadow.h>
-+#else
-+struct sgrp;
-+#endif
- #include <pwd.h>
- #include <shadow.h>
-
---- a/src/shared/userdb.c
-+++ b/src/shared/userdb.c
-@@ -1046,13 +1046,15 @@ int groupdb_iterator_get(UserDBIterator
- if (gr) {
- _cleanup_free_ char *buffer = NULL;
- bool incomplete = false;
-+#if ENABLE_GSHADOW
- struct sgrp sgrp;
--
-+#endif
- if (streq_ptr(gr->gr_name, "root"))
- iterator->synthesize_root = false;
- if (gr->gr_gid == GID_NOBODY)
- iterator->synthesize_nobody = false;
-
-+#if ENABLE_GSHADOW
- if (!FLAGS_SET(iterator->flags, USERDB_SUPPRESS_SHADOW)) {
- r = nss_sgrp_for_group(gr, &sgrp, &buffer);
- if (r < 0) {
-@@ -1065,6 +1067,9 @@ int groupdb_iterator_get(UserDBIterator
- }
-
- r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret);
-+#else
-+ r = nss_group_to_group_record(gr, NULL, ret);
-+#endif
- if (r < 0)
- return r;
-
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
deleted file mode 100644
index 700a04a264..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 6f0dd2ba75b68036d7b4ebfe47ac5eaf44d26f06 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 12 Apr 2021 23:44:53 -0700
-Subject: [PATCH] missing_syscall.h: Define MIPS ABI defines for musl
-
-musl does not define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32, _MIPS_SIM_ABI64
-unlike glibc where these are provided by libc headers, therefore define
-them here in case they are undefined
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/basic/missing_syscall.h | 6 ++++++
- 1 file changed, 6 insertions(+)
-
---- a/src/basic/missing_syscall.h
-+++ b/src/basic/missing_syscall.h
-@@ -20,6 +20,12 @@
- #include <asm/sgidefs.h>
- #endif
-
-+#ifndef _MIPS_SIM_ABI32
-+#define _MIPS_SIM_ABI32 1
-+#define _MIPS_SIM_NABI32 2
-+#define _MIPS_SIM_ABI64 3
-+#endif
-+
- #include "macro.h"
- #include "missing_keyctl.h"
- #include "missing_stat.h"
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/static-libsystemd-pkgconfig.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/static-libsystemd-pkgconfig.patch
index 1f0e911cfc..4f42308471 100644
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/static-libsystemd-pkgconfig.patch
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/static-libsystemd-pkgconfig.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/src/libsystemd/libsystemd.pc.in
+++ b/src/libsystemd/libsystemd.pc.in
@@ -16,5 +16,5 @@ Name: systemd
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.3.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.3.bb
deleted file mode 100644
index 853cc20b67..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.3.bb
+++ /dev/null
@@ -1,80 +0,0 @@
-SUMMARY = "libsystemd static library"
-DESCRIPTION = "libsystemd static library built specifically as an integral component of sdbus-c++"
-
-SECTION = "libs"
-
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
-
-inherit meson pkgconfig
-
-DEPENDS += "gperf-native gettext-native util-linux libcap util-linux python3-jinja2-native"
-
-SRCREV = "73be9643910c3f7f3ff84765d63060846c110016"
-SRCBRANCH = "v250-stable"
-SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
- file://static-libsystemd-pkgconfig.patch \
- file://0001-glibc-Remove-include-linux-fs.h-to-resolve-fsconfig_.patch \
- "
-
-# patches needed by musl
-SRC_URI:append:libc-musl = " ${SRC_URI_MUSL}"
-
-SRC_URI_MUSL = "\
- file://0002-don-t-use-glibc-specific-qsort_r.patch \
- file://0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch \
- file://0004-add-fallback-parse_printf_format-implementation.patch \
- file://0005-src-basic-missing.h-check-for-missing-strndupa.patch \
- file://0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
- file://0008-add-missing-FTW_-macros-for-musl.patch \
- file://0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch \
- file://0010-Use-uintmax_t-for-handling-rlim_t.patch \
- file://0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
- file://0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
- file://0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
- file://0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
- file://0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
- file://0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
- file://0017-missing_type.h-add-__compar_d_fn_t-definition.patch \
- file://0018-avoid-redefinition-of-prctl_mm_map-structure.patch \
- file://0019-Handle-missing-LOCK_EX.patch \
- file://0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch \
- file://0021-test-json.c-define-M_PIl.patch \
- file://0022-do-not-disable-buffer-in-writing-files.patch \
- file://0025-Handle-__cpu_mask-usage.patch \
- file://0026-Handle-missing-gshadow.patch \
- file://0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch \
- file://0001-pass-correct-parameters-to-getdents64.patch \
- file://0002-Add-sys-stat.h-for-S_IFDIR.patch \
- file://0001-Adjust-for-musl-headers.patch \
- "
-
-PACKAGECONFIG ??= "gshadow idn"
-PACKAGECONFIG:remove:libc-musl = " gshadow idn"
-PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false"
-PACKAGECONFIG[idn] = "-Didn=true,-Didn=false"
-
-CFLAGS:append:libc-musl = " -D__UAPI_DEF_ETHHDR=0 "
-
-EXTRA_OEMESON += "-Dstatic-libsystemd=pic"
-
-S = "${WORKDIR}/git"
-
-RDEPENDS:${PN}-dev = ""
-
-do_compile() {
- ninja -v ${PARALLEL_MAKE} version.h
- ninja -v ${PARALLEL_MAKE} libsystemd.a
- ninja -v ${PARALLEL_MAKE} src/libsystemd/libsystemd.pc
-}
-
-do_install () {
- install -d ${D}${libdir}
- install ${B}/libsystemd.a ${D}${libdir}
-
- install -d ${D}${includedir}/systemd
- install ${S}/src/systemd/*.h ${D}${includedir}/systemd
-
- install -d ${D}${libdir}/pkgconfig
- install ${B}/src/libsystemd/libsystemd.pc ${D}${libdir}/pkgconfig
-}
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_255.4.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_255.4.bb
new file mode 100644
index 0000000000..3b44e02376
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_255.4.bb
@@ -0,0 +1,77 @@
+SUMMARY = "libsystemd static library"
+DESCRIPTION = "libsystemd static library built specifically as an integral component of sdbus-c++"
+
+SECTION = "libs"
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
+
+inherit meson pkgconfig
+
+DEPENDS += "gperf-native gettext-native util-linux libcap util-linux python3-jinja2-native"
+
+SRCREV = "387a14a7b67b8b76adaed4175e14bb7e39b2f738"
+SRCBRANCH = "v255-stable"
+SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
+ file://static-libsystemd-pkgconfig.patch \
+ "
+
+# patches needed by musl
+SRC_URI:append:libc-musl = " ${SRC_URI_MUSL}"
+
+SRC_URI_MUSL = "\
+ file://0001-missing_type.h-add-comparison_fn_t.patch \
+ file://0002-add-fallback-parse_printf_format-implementation.patch \
+ file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
+ file://0003-src-basic-missing.h-check-for-missing-strndupa.patch \
+ file://0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
+ file://0005-add-missing-FTW_-macros-for-musl.patch \
+ file://0006-Use-uintmax_t-for-handling-rlim_t.patch \
+ file://0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
+ file://0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
+ file://0008-implment-systemd-sysv-install-for-OE.patch \
+ file://0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
+ file://0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
+ file://0011-avoid-redefinition-of-prctl_mm_map-structure.patch \
+ file://0012-do-not-disable-buffer-in-writing-files.patch \
+ file://0013-Handle-__cpu_mask-usage.patch \
+ file://0014-Handle-missing-gshadow.patch \
+ file://0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch \
+ file://0016-pass-correct-parameters-to-getdents64.patch \
+ file://0017-Adjust-for-musl-headers.patch \
+ file://0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch \
+ file://0019-errno-util-Make-STRERROR-portable-for-musl.patch \
+ file://0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch \
+ file://0021-shared-Do-not-use-malloc_info-on-musl.patch \
+ file://0022-avoid-missing-LOCK_EX-declaration.patch \
+"
+
+PACKAGECONFIG ??= "gshadow idn"
+PACKAGECONFIG:remove:libc-musl = " gshadow idn"
+PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false"
+PACKAGECONFIG[idn] = "-Didn=true,-Didn=false"
+
+CFLAGS:append:libc-musl = " -D__UAPI_DEF_ETHHDR=0 "
+
+EXTRA_OEMESON += "-Dstatic-libsystemd=pic"
+
+S = "${WORKDIR}/git"
+
+RDEPENDS:${PN}-dev = ""
+
+do_compile() {
+ ninja -v ${PARALLEL_MAKE} version.h
+ ninja -v ${PARALLEL_MAKE} libsystemd.a
+ ninja -v ${PARALLEL_MAKE} src/libsystemd/libsystemd.pc
+}
+
+do_install () {
+ install -d ${D}${libdir}
+ install ${B}/libsystemd.a ${D}${libdir}
+
+ install -d ${D}${includedir}/systemd
+ install ${S}/src/systemd/*.h ${D}${includedir}/systemd
+
+ install -d ${D}${libdir}/pkgconfig
+ install ${B}/src/libsystemd/libsystemd.pc ${D}${libdir}/pkgconfig
+}
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.2.0.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.2.0.bb
deleted file mode 100644
index 27b965ac11..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.2.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "sdbus-c++ native tools"
-DESCRIPTION = "Native interface code generator for development with sdbus-c++"
-
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
-
-inherit cmake
-
-DEPENDS += "expat"
-
-SRCREV = "751c1addc4fd2f949a466f488c1b7de2ca3b76dc"
-SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master;subpath=tools"
-
-S = "${WORKDIR}/tools"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.5.0.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.5.0.bb
new file mode 100644
index 0000000000..6b1af25280
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.5.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "sdbus-c++ native tools"
+DESCRIPTION = "Native interface code generator for development with sdbus-c++"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
+
+inherit cmake
+
+DEPENDS += "expat"
+
+SRCREV = "30d9f1d46258c2be4ce29b7f7f168ecdf6d4f328"
+SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master;subpath=tools"
+
+S = "${WORKDIR}/tools"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.2.0.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.2.0.bb
deleted file mode 100644
index 75cd815535..0000000000
--- a/meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.2.0.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "sdbus-c++"
-DESCRIPTION = "High-level C++ D-Bus library designed to provide easy-to-use yet powerful API in modern C++"
-
-SECTION = "libs"
-
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
-
-inherit cmake pkgconfig systemd ptest
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'with-external-libsystemd', 'with-builtin-libsystemd', d)} \
- ${@bb.utils.contains('PTEST_ENABLED', '1', 'with-tests', '', d)}"
-PACKAGECONFIG[with-builtin-libsystemd] = ",,sdbus-c++-libsystemd,libcap"
-PACKAGECONFIG[with-external-libsystemd] = ",,systemd,libsystemd"
-PACKAGECONFIG[with-tests] = "-DBUILD_TESTS=ON -DTESTS_INSTALL_PATH=${libdir}/${BPN}/tests,-DBUILD_TESTS=OFF,googletest gmock"
-
-DEPENDS += "expat"
-
-SRCREV = "751c1addc4fd2f949a466f488c1b7de2ca3b76dc"
-
-SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master"
-SRC_URI += "file://run-ptest"
-
-EXTRA_OECMAKE = "-DBUILD_CODE_GEN=OFF \
- -DBUILD_DOC=ON \
- -DBUILD_DOXYGEN_DOC=OFF"
-
-S = "${WORKDIR}/git"
-
-# Link libatomic on architectures without 64bit atomics fixes
-# libsdbus-c++.so.1.1.0: undefined reference to `__atomic_load_8'
-LDFLAGS:append:mips = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
-LDFLAGS:append:powerpc = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
-LDFLAGS:append:riscv32 = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
-
-do_install:append() {
- if ! ${@bb.utils.contains('PTEST_ENABLED', '1', 'true', 'false', d)}; then
- rm -rf ${D}${sysconfdir}/dbus-1
- fi
-}
-
-PTEST_PATH = "${libdir}/${BPN}/tests"
-FILES:${PN}-ptest =+ "${sysconfdir}/dbus-1/system.d/"
-FILES:${PN}-dev += "${bindir}/sdbus-c++-xml2cpp"
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.5.0.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.5.0.bb
new file mode 100644
index 0000000000..f52ba141e1
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.5.0.bb
@@ -0,0 +1,51 @@
+SUMMARY = "sdbus-c++"
+DESCRIPTION = "High-level C++ D-Bus library designed to provide easy-to-use yet powerful API in modern C++"
+
+SECTION = "libs"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
+
+inherit cmake pkgconfig systemd ptest
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'with-external-libsystemd', 'with-builtin-libsystemd', d)} \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'with-tests', '', d)}"
+PACKAGECONFIG[with-builtin-libsystemd] = ",,sdbus-c++-libsystemd,libcap,basu"
+PACKAGECONFIG[with-external-libsystemd] = ",,systemd,libsystemd"
+PACKAGECONFIG[with-tests] = "-DBUILD_TESTS=ON -DTESTS_INSTALL_PATH=${PTEST_PATH},-DBUILD_TESTS=OFF,googletest gmock"
+
+DEPENDS += "expat"
+
+SRCREV = "30d9f1d46258c2be4ce29b7f7f168ecdf6d4f328"
+
+SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;branch=master"
+SRC_URI += "file://run-ptest"
+
+EXTRA_OECMAKE = "-DBUILD_CODE_GEN=OFF \
+ -DBUILD_DOC=ON \
+ -DBUILD_DOXYGEN_DOC=OFF"
+
+S = "${WORKDIR}/git"
+
+# Link libatomic on architectures without 64bit atomics fixes
+# libsdbus-c++.so.1.1.0: undefined reference to `__atomic_load_8'
+LDFLAGS:append:mips = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
+LDFLAGS:append:powerpc = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
+LDFLAGS:append:riscv32 = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
+
+do_install:append() {
+ if ! ${@bb.utils.contains('PTEST_ENABLED', '1', 'true', 'false', d)}; then
+ rm -rf ${D}${sysconfdir}/dbus-1
+ fi
+}
+
+do_install_ptest() {
+ DESTDIR='${D}' cmake_runcmake_build --target tests/install
+}
+
+FILES:${PN}-ptest =+ "${sysconfdir}/dbus-1/system.d/"
+FILES:${PN}-dev += "${bindir}/sdbus-c++-xml2cpp"
+
+RDEPENDS:${PN}-ptest += "dbus"
+# It adds -isystem which is spurious, no idea where it gets it from
+CCACHE_DISABLE = "1"
diff --git a/meta-oe/recipes-core/toybox/toybox-inittab_0.8.2.bb b/meta-oe/recipes-core/toybox/toybox-inittab_0.8.2.bb
index 603f365cf3..4cad7dce11 100644
--- a/meta-oe/recipes-core/toybox/toybox-inittab_0.8.2.bb
+++ b/meta-oe/recipes-core/toybox/toybox-inittab_0.8.2.bb
@@ -34,7 +34,7 @@ do_configure() {
cp orig/* .
for config in ${PACKAGECONFIG_CONFARGS}; do
- if [[ ${config} == "enable_getty" ]]; then
+ if [ "${config}" = "enable_getty" ]; then
echo "# generated by bitbake recipe ${PN}" >> ${S}/inittab
for console in "${SERIAL_CONSOLES}"; do
param=$(echo ${console} | sed s/\;/\ /g)
diff --git a/meta-oe/recipes-core/toybox/toybox/0001-portability-Fix-timer_settime_wrap-for-32bit-systems.patch b/meta-oe/recipes-core/toybox/toybox/0001-portability-Fix-timer_settime_wrap-for-32bit-systems.patch
deleted file mode 100644
index 8976b3748b..0000000000
--- a/meta-oe/recipes-core/toybox/toybox/0001-portability-Fix-timer_settime_wrap-for-32bit-systems.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 7284c7ae0df9aa5a9c8aa0a81a018e17289fe2c4 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 8 Sep 2022 07:22:26 -0700
-Subject: [PATCH] portability: Fix timer_settime_wrap for 32bit systems with
- 64bit time_t
-
-glibc does not define SYS_timer_settime if the 32bit syscall is not
-available, new architectures like riscv32 has defaulted to 64bit time_t
-from get go and avoided wiring 32bit syscall, therefore alias it to
-64bit version here
-
-Upstream-Status: Submitted [https://github.com/landley/toybox/pull/373]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/portability.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/lib/portability.c b/lib/portability.c
-index d955d081..4baa9367 100644
---- a/lib/portability.c
-+++ b/lib/portability.c
-@@ -711,6 +711,12 @@ int timer_create_wrap(clockid_t c, struct sigevent *se, timer_t *t)
- return 0;
- }
-
-+#if !defined(SYS_timer_settime) && defined(SYS_timer_settime64)
-+// glibc does not define defines SYS_timer_settime on 32-bit systems
-+// with 64-bit time_t defaults e.g. riscv32
-+#define SYS_timer_settime SYS_timer_settime64
-+#endif
-+
- int timer_settime_wrap(timer_t t, int flags, struct itimerspec *val,
- struct itimerspec *old)
- {
---
-2.37.3
-
diff --git a/meta-oe/recipes-core/toybox/toybox_0.8.10.bb b/meta-oe/recipes-core/toybox/toybox_0.8.10.bb
new file mode 100644
index 0000000000..d747ebf36a
--- /dev/null
+++ b/meta-oe/recipes-core/toybox/toybox_0.8.10.bb
@@ -0,0 +1,113 @@
+SUMMARY = "Toybox combines common utilities together into a single executable."
+HOMEPAGE = "http://www.landley.net/toybox/"
+DEPENDS = "attr virtual/crypt"
+
+LICENSE = "0BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=78659a599b9325da368f2f1eb88f19c7"
+
+inherit cml1 update-alternatives
+
+SRC_URI = "http://www.landley.net/toybox/downloads/${BPN}-${PV}.tar.gz"
+SRC_URI[sha256sum] = "d3afee05ca90bf425ced73f527e418fecd626c5340b5f58711a14531f8d7d108"
+
+SECTION = "base"
+
+RDEPENDS:${PN} = "${@["", "toybox-inittab"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'toybox')]}"
+
+TOYBOX_BIN = "generated/unstripped/toybox"
+
+# Toybox is strict on what CC, CFLAGS and CROSS_COMPILE variables should contain.
+# Fix CC, CFLAGS, CROSS_COMPILE to match expectations.
+# CC = compiler name
+# CFLAGS = only compiler flags
+# CROSS_COMPILE = compiler prefix
+CFLAGS += "${TOOLCHAIN_OPTIONS} ${TUNE_CCARGS}"
+
+COMPILER:toolchain-clang = "clang"
+COMPILER ?= "gcc"
+
+PACKAGECONFIG ??= "no-iconv no-getconf"
+
+PACKAGECONFIG[no-iconv] = ",,"
+PACKAGECONFIG[no-getconf] = ",,"
+
+EXTRA_OEMAKE = 'CROSS_COMPILE="${HOST_PREFIX}" \
+ CC="${COMPILER}" \
+ STRIP="strip" \
+ CFLAGS="${CFLAGS}" \
+ HOSTCC="${BUILD_CC}" CPUS=${@oe.utils.cpu_count()} V=1'
+
+do_configure() {
+ # allow user to define their own defconfig in bbappend, taken from kernel.bbclass
+ if [ "${S}" != "${B}" ] && [ -f "${S}/.config" ] && [ ! -f "${B}/.config" ]; then
+ mv "${S}/.config" "${B}/.config"
+ fi
+
+ # Copy defconfig to .config if .config does not exist. This allows
+ # recipes to manage the .config themselves in do_configure:prepend().
+ if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then
+ cp "${WORKDIR}/defconfig" "${B}/.config"
+ fi
+
+ oe_runmake oldconfig || oe_runmake defconfig
+
+ # Disable killall5 as it isn't managed by update-alternatives
+ sed -e 's/CONFIG_KILLALL5=y/# CONFIG_KILLALL5 is not set/' -i .config
+
+ # Disable swapon as it doesn't handle the '-a' argument used during boot
+ sed -e 's/CONFIG_SWAPON=y/# CONFIG_SWAPON is not set/' -i .config
+
+ # Enable init if toybox was set as init manager
+ if ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','toybox','true','false',d)}; then
+ sed -e 's/# CONFIG_INIT is not set/CONFIG_INIT=y/' -i .config
+ fi
+}
+
+do_compile() {
+ oe_runmake ${TOYBOX_BIN}
+
+ # Create a list of links needed
+ ${BUILD_CC} -I . scripts/install.c -o generated/instlist
+ ./generated/instlist long | sed -e 's#^#/#' > toybox.links
+ if ${@bb.utils.contains('PACKAGECONFIG','no-iconv','true','false',d)}; then
+ sed -i -e '/iconv$/d' toybox.links
+ fi
+ if ${@bb.utils.contains('PACKAGECONFIG','no-getconf','true','false',d)}; then
+ sed -i -e '/getconf$/d' toybox.links
+ fi
+}
+
+do_install() {
+ # Install manually instead of using 'make install'
+ install -d ${D}${base_bindir}
+ if grep -q "CONFIG_TOYBOX_SUID=y" ${B}/.config; then
+ install -m 4755 ${B}/${TOYBOX_BIN} ${D}${base_bindir}/toybox
+ else
+ install -m 0755 ${B}/${TOYBOX_BIN} ${D}${base_bindir}/toybox
+ fi
+
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${B}/toybox.links ${D}${sysconfdir}
+}
+
+# If you've chosen to install toybox you probably want it to take precedence
+# over busybox where possible but not over other packages
+ALTERNATIVE_PRIORITY = "60"
+
+python do_package:prepend () {
+ # Read links from /etc/toybox.links and create appropriate
+ # update-alternatives variables
+
+ dvar = d.getVar('D')
+ pn = d.getVar('PN')
+ target = d.expand("${base_bindir}/toybox")
+
+ f = open('%s/etc/toybox.links' % (dvar), 'r')
+ for alt_link_name in f:
+ alt_link_name = alt_link_name.strip()
+ alt_name = os.path.basename(alt_link_name)
+ d.appendVar('ALTERNATIVE:%s' % (pn), ' ' + alt_name)
+ d.setVarFlag('ALTERNATIVE_LINK_NAME', alt_name, alt_link_name)
+ d.setVarFlag('ALTERNATIVE_TARGET', alt_name, target)
+ f.close()
+}
diff --git a/meta-oe/recipes-core/toybox/toybox_0.8.8.bb b/meta-oe/recipes-core/toybox/toybox_0.8.8.bb
deleted file mode 100644
index 6836b14682..0000000000
--- a/meta-oe/recipes-core/toybox/toybox_0.8.8.bb
+++ /dev/null
@@ -1,115 +0,0 @@
-SUMMARY = "Toybox combines common utilities together into a single executable."
-HOMEPAGE = "http://www.landley.net/toybox/"
-DEPENDS = "attr virtual/crypt"
-
-LICENSE = "0BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=78659a599b9325da368f2f1eb88f19c7"
-
-inherit cml1 update-alternatives
-
-SRC_URI = "http://www.landley.net/toybox/downloads/${BPN}-${PV}.tar.gz \
- file://0001-portability-Fix-timer_settime_wrap-for-32bit-systems.patch \
- "
-SRC_URI[sha256sum] = "dafd41978d40f02a61cf1be99a2b4a25812bbfb9c3157e679ee7611202d6ac58"
-
-SECTION = "base"
-
-RDEPENDS:${PN} = "${@["", "toybox-inittab"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'toybox')]}"
-
-TOYBOX_BIN = "generated/unstripped/toybox"
-
-# Toybox is strict on what CC, CFLAGS and CROSS_COMPILE variables should contain.
-# Fix CC, CFLAGS, CROSS_COMPILE to match expectations.
-# CC = compiler name
-# CFLAGS = only compiler flags
-# CROSS_COMPILE = compiler prefix
-CFLAGS += "${TOOLCHAIN_OPTIONS} ${TUNE_CCARGS}"
-
-COMPILER:toolchain-clang = "clang"
-COMPILER ?= "gcc"
-
-PACKAGECONFIG ??= "no-iconv no-getconf"
-
-PACKAGECONFIG[no-iconv] = ",,"
-PACKAGECONFIG[no-getconf] = ",,"
-
-EXTRA_OEMAKE = 'CROSS_COMPILE="${HOST_PREFIX}" \
- CC="${COMPILER}" \
- STRIP="strip" \
- CFLAGS="${CFLAGS}" \
- HOSTCC="${BUILD_CC}" CPUS=${@oe.utils.cpu_count()} V=1'
-
-do_configure() {
- # allow user to define their own defconfig in bbappend, taken from kernel.bbclass
- if [ "${S}" != "${B}" ] && [ -f "${S}/.config" ] && [ ! -f "${B}/.config" ]; then
- mv "${S}/.config" "${B}/.config"
- fi
-
- # Copy defconfig to .config if .config does not exist. This allows
- # recipes to manage the .config themselves in do_configure:prepend().
- if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then
- cp "${WORKDIR}/defconfig" "${B}/.config"
- fi
-
- oe_runmake oldconfig || oe_runmake defconfig
-
- # Disable killall5 as it isn't managed by update-alternatives
- sed -e 's/CONFIG_KILLALL5=y/# CONFIG_KILLALL5 is not set/' -i .config
-
- # Disable swapon as it doesn't handle the '-a' argument used during boot
- sed -e 's/CONFIG_SWAPON=y/# CONFIG_SWAPON is not set/' -i .config
-
- # Enable init if toybox was set as init manager
- if ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','toybox','true','false',d)}; then
- sed -e 's/# CONFIG_INIT is not set/CONFIG_INIT=y/' -i .config
- fi
-}
-
-do_compile() {
- oe_runmake ${TOYBOX_BIN}
-
- # Create a list of links needed
- ${BUILD_CC} -I . scripts/install.c -o generated/instlist
- ./generated/instlist long | sed -e 's#^#/#' > toybox.links
- if ${@bb.utils.contains('PACKAGECONFIG','no-iconv','true','false',d)}; then
- sed -i -e '/iconv$/d' toybox.links
- fi
- if ${@bb.utils.contains('PACKAGECONFIG','no-getconf','true','false',d)}; then
- sed -i -e '/getconf$/d' toybox.links
- fi
-}
-
-do_install() {
- # Install manually instead of using 'make install'
- install -d ${D}${base_bindir}
- if grep -q "CONFIG_TOYBOX_SUID=y" ${B}/.config; then
- install -m 4755 ${B}/${TOYBOX_BIN} ${D}${base_bindir}/toybox
- else
- install -m 0755 ${B}/${TOYBOX_BIN} ${D}${base_bindir}/toybox
- fi
-
- install -d ${D}${sysconfdir}
- install -m 0644 ${B}/toybox.links ${D}${sysconfdir}
-}
-
-# If you've chosen to install toybox you probably want it to take precedence
-# over busybox where possible but not over other packages
-ALTERNATIVE_PRIORITY = "60"
-
-python do_package:prepend () {
- # Read links from /etc/toybox.links and create appropriate
- # update-alternatives variables
-
- dvar = d.getVar('D')
- pn = d.getVar('PN')
- target = d.expand("${base_bindir}/toybox")
-
- f = open('%s/etc/toybox.links' % (dvar), 'r')
- for alt_link_name in f:
- alt_link_name = alt_link_name.strip()
- alt_name = os.path.basename(alt_link_name)
- d.appendVar('ALTERNATIVE:%s' % (pn), ' ' + alt_name)
- d.setVarFlag('ALTERNATIVE_LINK_NAME', alt_name, alt_link_name)
- d.setVarFlag('ALTERNATIVE_TARGET', alt_name, target)
- f.close()
-}
diff --git a/meta-oe/recipes-core/usleep/usleep_1.0.bb b/meta-oe/recipes-core/usleep/usleep_1.2.bb
index a529032aad..a529032aad 100644
--- a/meta-oe/recipes-core/usleep/usleep_1.0.bb
+++ b/meta-oe/recipes-core/usleep/usleep_1.2.bb
diff --git a/meta-oe/recipes-core/uutils-coreutils/README.txt b/meta-oe/recipes-core/uutils-coreutils/README.txt
deleted file mode 100644
index cfd7b051b1..0000000000
--- a/meta-oe/recipes-core/uutils-coreutils/README.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-How to generate/update the file uutils-coreutils_XXX.bb:
-
-cargo with version > 1.60 is needed so cargo from Ubuntu's apt will not work
-(because of https://github.com/rust-lang/cargo/issues/10623):
-This package is needed (tested on Ubuntu 22.04):
-sudo apt-get -y install librust-cargo+openssl-dev
-
-Then install cargo-bitbake with:
-$ cargo install --locked cargo-bitbake
-
-You can now update coreutils:
-$ git clone https://github.com/uutils/coreutils.git
-$ cd coreutils
-$ git tag
-$ git checkout 0.0.XXX
-$ cargo-bitbake bitbake
-Wrote: coreutils_0.0.15.bb
-
-Verify manual changes in the bb file (rename coreutils.inc to uutils-coreutils.inc)
diff --git a/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
new file mode 100644
index 0000000000..58d8325628
--- /dev/null
+++ b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
@@ -0,0 +1,562 @@
+# Autogenerated with 'bitbake -c update_crates uutils-coreutils'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/adler/1.0.2 \
+ crate://crates.io/aho-corasick/1.0.4 \
+ crate://crates.io/android-tzdata/0.1.1 \
+ crate://crates.io/android_system_properties/0.1.5 \
+ crate://crates.io/anstream/0.5.0 \
+ crate://crates.io/anstyle/1.0.0 \
+ crate://crates.io/anstyle-parse/0.2.0 \
+ crate://crates.io/anstyle-query/1.0.0 \
+ crate://crates.io/anstyle-wincon/2.1.0 \
+ crate://crates.io/arrayref/0.3.6 \
+ crate://crates.io/arrayvec/0.7.4 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/bigdecimal/0.4.0 \
+ crate://crates.io/binary-heap-plus/0.5.0 \
+ crate://crates.io/bindgen/0.63.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.4.2 \
+ crate://crates.io/blake2b_simd/1.0.2 \
+ crate://crates.io/blake3/1.5.1 \
+ crate://crates.io/block-buffer/0.10.3 \
+ crate://crates.io/bstr/1.9.1 \
+ crate://crates.io/bumpalo/3.11.1 \
+ crate://crates.io/bytecount/0.6.7 \
+ crate://crates.io/byteorder/1.5.0 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/cexpr/0.6.0 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/cfg_aliases/0.1.1 \
+ crate://crates.io/chrono/0.4.35 \
+ crate://crates.io/clang-sys/1.4.0 \
+ crate://crates.io/clap/4.4.2 \
+ crate://crates.io/clap_builder/4.4.2 \
+ crate://crates.io/clap_complete/4.4.0 \
+ crate://crates.io/clap_lex/0.5.0 \
+ crate://crates.io/clap_mangen/0.2.9 \
+ crate://crates.io/colorchoice/1.0.0 \
+ crate://crates.io/compare/0.1.0 \
+ crate://crates.io/console/0.15.8 \
+ crate://crates.io/const-random/0.1.16 \
+ crate://crates.io/const-random-macro/0.1.16 \
+ crate://crates.io/constant_time_eq/0.3.0 \
+ crate://crates.io/conv/0.3.3 \
+ crate://crates.io/core-foundation-sys/0.8.3 \
+ crate://crates.io/coz/0.1.3 \
+ crate://crates.io/cpp/0.5.9 \
+ crate://crates.io/cpp_build/0.5.9 \
+ crate://crates.io/cpp_common/0.5.9 \
+ crate://crates.io/cpp_macros/0.5.9 \
+ crate://crates.io/cpufeatures/0.2.5 \
+ crate://crates.io/crc32fast/1.3.2 \
+ crate://crates.io/crossbeam-channel/0.5.10 \
+ crate://crates.io/crossbeam-deque/0.8.4 \
+ crate://crates.io/crossbeam-epoch/0.9.17 \
+ crate://crates.io/crossbeam-utils/0.8.18 \
+ crate://crates.io/crossterm/0.27.0 \
+ crate://crates.io/crossterm_winapi/0.9.1 \
+ crate://crates.io/crunchy/0.2.2 \
+ crate://crates.io/crypto-common/0.1.6 \
+ crate://crates.io/ctrlc/3.4.4 \
+ crate://crates.io/custom_derive/0.1.7 \
+ crate://crates.io/data-encoding/2.5.0 \
+ crate://crates.io/data-encoding-macro/0.1.14 \
+ crate://crates.io/data-encoding-macro-internal/0.1.12 \
+ crate://crates.io/diff/0.1.13 \
+ crate://crates.io/digest/0.10.7 \
+ crate://crates.io/dlv-list/0.5.0 \
+ crate://crates.io/dns-lookup/2.0.4 \
+ crate://crates.io/dunce/1.0.4 \
+ crate://crates.io/either/1.8.0 \
+ crate://crates.io/encode_unicode/0.3.6 \
+ crate://crates.io/env_logger/0.8.4 \
+ crate://crates.io/errno/0.3.8 \
+ crate://crates.io/exacl/0.12.0 \
+ crate://crates.io/fastrand/2.0.1 \
+ crate://crates.io/file_diff/1.0.0 \
+ crate://crates.io/filetime/0.2.23 \
+ crate://crates.io/flate2/1.0.24 \
+ crate://crates.io/fnv/1.0.7 \
+ crate://crates.io/fs_extra/1.3.0 \
+ crate://crates.io/fsevent-sys/4.1.0 \
+ crate://crates.io/fts-sys/0.2.4 \
+ crate://crates.io/fundu/2.0.0 \
+ crate://crates.io/fundu-core/0.3.0 \
+ crate://crates.io/futures/0.3.28 \
+ crate://crates.io/futures-channel/0.3.28 \
+ crate://crates.io/futures-core/0.3.28 \
+ crate://crates.io/futures-executor/0.3.28 \
+ crate://crates.io/futures-io/0.3.28 \
+ crate://crates.io/futures-macro/0.3.28 \
+ crate://crates.io/futures-sink/0.3.28 \
+ crate://crates.io/futures-task/0.3.28 \
+ crate://crates.io/futures-timer/3.0.2 \
+ crate://crates.io/futures-util/0.3.28 \
+ crate://crates.io/gcd/2.3.0 \
+ crate://crates.io/generic-array/0.14.6 \
+ crate://crates.io/getrandom/0.2.9 \
+ crate://crates.io/glob/0.3.1 \
+ crate://crates.io/half/2.4.0 \
+ crate://crates.io/hashbrown/0.13.2 \
+ crate://crates.io/hermit-abi/0.3.2 \
+ crate://crates.io/hex/0.4.3 \
+ crate://crates.io/hex-literal/0.4.1 \
+ crate://crates.io/hostname/0.3.1 \
+ crate://crates.io/iana-time-zone/0.1.53 \
+ crate://crates.io/iana-time-zone-haiku/0.1.2 \
+ crate://crates.io/indicatif/0.17.3 \
+ crate://crates.io/inotify/0.9.6 \
+ crate://crates.io/inotify-sys/0.1.5 \
+ crate://crates.io/io-lifetimes/1.0.11 \
+ crate://crates.io/itertools/0.12.1 \
+ crate://crates.io/itoa/1.0.4 \
+ crate://crates.io/js-sys/0.3.64 \
+ crate://crates.io/keccak/0.1.4 \
+ crate://crates.io/kqueue/1.0.7 \
+ crate://crates.io/kqueue-sys/1.0.3 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/lazycell/1.3.0 \
+ crate://crates.io/libc/0.2.153 \
+ crate://crates.io/libloading/0.7.4 \
+ crate://crates.io/libm/0.2.7 \
+ crate://crates.io/linux-raw-sys/0.3.8 \
+ crate://crates.io/linux-raw-sys/0.4.12 \
+ crate://crates.io/lock_api/0.4.9 \
+ crate://crates.io/log/0.4.20 \
+ crate://crates.io/lscolors/0.16.0 \
+ crate://crates.io/match_cfg/0.1.0 \
+ crate://crates.io/md-5/0.10.6 \
+ crate://crates.io/memchr/2.7.1 \
+ crate://crates.io/memmap2/0.9.0 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/miniz_oxide/0.5.4 \
+ crate://crates.io/mio/0.8.11 \
+ crate://crates.io/nix/0.28.0 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/notify/6.0.1 \
+ crate://crates.io/nu-ansi-term/0.49.0 \
+ crate://crates.io/num-bigint/0.4.4 \
+ crate://crates.io/num-integer/0.1.45 \
+ crate://crates.io/num-traits/0.2.18 \
+ crate://crates.io/num_threads/0.1.6 \
+ crate://crates.io/number_prefix/0.4.0 \
+ crate://crates.io/once_cell/1.19.0 \
+ crate://crates.io/onig/6.4.0 \
+ crate://crates.io/onig_sys/69.8.1 \
+ crate://crates.io/ordered-multimap/0.6.0 \
+ crate://crates.io/os_display/0.1.3 \
+ crate://crates.io/parking_lot/0.12.1 \
+ crate://crates.io/parking_lot_core/0.9.9 \
+ crate://crates.io/parse_datetime/0.5.0 \
+ crate://crates.io/peeking_take_while/0.1.2 \
+ crate://crates.io/phf/0.11.2 \
+ crate://crates.io/phf_codegen/0.11.2 \
+ crate://crates.io/phf_generator/0.11.1 \
+ crate://crates.io/phf_shared/0.11.2 \
+ crate://crates.io/pin-project-lite/0.2.9 \
+ crate://crates.io/pin-utils/0.1.0 \
+ crate://crates.io/pkg-config/0.3.26 \
+ crate://crates.io/platform-info/2.0.2 \
+ crate://crates.io/portable-atomic/0.3.15 \
+ crate://crates.io/ppv-lite86/0.2.17 \
+ crate://crates.io/pretty_assertions/1.4.0 \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/procfs/0.16.0 \
+ crate://crates.io/procfs-core/0.16.0 \
+ crate://crates.io/quick-error/2.0.1 \
+ crate://crates.io/quickcheck/1.0.3 \
+ crate://crates.io/quote/1.0.29 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_chacha/0.3.1 \
+ crate://crates.io/rand_core/0.6.4 \
+ crate://crates.io/rand_pcg/0.3.1 \
+ crate://crates.io/rayon/1.9.0 \
+ crate://crates.io/rayon-core/1.12.1 \
+ crate://crates.io/redox_syscall/0.4.1 \
+ crate://crates.io/redox_syscall/0.5.0 \
+ crate://crates.io/reference-counted-singleton/0.1.2 \
+ crate://crates.io/regex/1.10.4 \
+ crate://crates.io/regex-automata/0.4.4 \
+ crate://crates.io/regex-syntax/0.8.2 \
+ crate://crates.io/relative-path/1.8.0 \
+ crate://crates.io/rlimit/0.10.1 \
+ crate://crates.io/roff/0.2.1 \
+ crate://crates.io/rstest/0.18.2 \
+ crate://crates.io/rstest_macros/0.18.2 \
+ crate://crates.io/rust-ini/0.19.0 \
+ crate://crates.io/rustc-hash/1.1.0 \
+ crate://crates.io/rustc_version/0.4.0 \
+ crate://crates.io/rustix/0.37.26 \
+ crate://crates.io/rustix/0.38.31 \
+ crate://crates.io/same-file/1.0.6 \
+ crate://crates.io/scopeguard/1.2.0 \
+ crate://crates.io/self_cell/1.0.3 \
+ crate://crates.io/selinux/0.4.0 \
+ crate://crates.io/selinux-sys/0.6.2 \
+ crate://crates.io/semver/1.0.14 \
+ crate://crates.io/serde/1.0.193 \
+ crate://crates.io/serde_derive/1.0.193 \
+ crate://crates.io/sha1/0.10.6 \
+ crate://crates.io/sha2/0.10.8 \
+ crate://crates.io/sha3/0.10.8 \
+ crate://crates.io/shlex/1.3.0 \
+ crate://crates.io/signal-hook/0.3.17 \
+ crate://crates.io/signal-hook-mio/0.2.3 \
+ crate://crates.io/signal-hook-registry/1.4.0 \
+ crate://crates.io/siphasher/0.3.10 \
+ crate://crates.io/slab/0.4.7 \
+ crate://crates.io/sm3/0.4.2 \
+ crate://crates.io/smallvec/1.13.1 \
+ crate://crates.io/smawk/0.3.1 \
+ crate://crates.io/socket2/0.5.3 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.32 \
+ crate://crates.io/tempfile/3.10.1 \
+ crate://crates.io/terminal_size/0.2.6 \
+ crate://crates.io/terminal_size/0.3.0 \
+ crate://crates.io/textwrap/0.16.1 \
+ crate://crates.io/thiserror/1.0.37 \
+ crate://crates.io/thiserror-impl/1.0.37 \
+ crate://crates.io/time/0.3.20 \
+ crate://crates.io/time-core/0.1.0 \
+ crate://crates.io/time-macros/0.2.8 \
+ crate://crates.io/tiny-keccak/2.0.2 \
+ crate://crates.io/typenum/1.15.0 \
+ crate://crates.io/unicode-ident/1.0.5 \
+ crate://crates.io/unicode-linebreak/0.1.5 \
+ crate://crates.io/unicode-segmentation/1.11.0 \
+ crate://crates.io/unicode-width/0.1.11 \
+ crate://crates.io/unicode-xid/0.2.4 \
+ crate://crates.io/unindent/0.2.1 \
+ crate://crates.io/utf8parse/0.2.1 \
+ crate://crates.io/uuid/1.7.0 \
+ crate://crates.io/uutils_term_grid/0.3.0 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/walkdir/2.5.0 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/wasm-bindgen/0.2.87 \
+ crate://crates.io/wasm-bindgen-backend/0.2.87 \
+ crate://crates.io/wasm-bindgen-macro/0.2.87 \
+ crate://crates.io/wasm-bindgen-macro-support/0.2.87 \
+ crate://crates.io/wasm-bindgen-shared/0.2.87 \
+ crate://crates.io/which/4.3.0 \
+ crate://crates.io/wild/2.2.1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.6 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.45.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-sys/0.52.0 \
+ crate://crates.io/windows-targets/0.42.2 \
+ crate://crates.io/windows-targets/0.48.0 \
+ crate://crates.io/windows-targets/0.52.0 \
+ crate://crates.io/windows_aarch64_gnullvm/0.42.2 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_gnullvm/0.52.0 \
+ crate://crates.io/windows_aarch64_msvc/0.42.2 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.52.0 \
+ crate://crates.io/windows_i686_gnu/0.42.2 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.52.0 \
+ crate://crates.io/windows_i686_msvc/0.42.2 \
+ crate://crates.io/windows_i686_msvc/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.52.0 \
+ crate://crates.io/windows_x86_64_gnu/0.42.2 \
+ crate://crates.io/windows_x86_64_gnu/0.48.0 \
+ crate://crates.io/windows_x86_64_gnu/0.52.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.42.2 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.52.0 \
+ crate://crates.io/windows_x86_64_msvc/0.42.2 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.52.0 \
+ crate://crates.io/xattr/1.3.1 \
+ crate://crates.io/yansi/0.5.1 \
+ crate://crates.io/z85/3.0.5 \
+ crate://crates.io/zip/0.6.6 \
+"
+
+SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+SRC_URI[aho-corasick-1.0.4.sha256sum] = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
+SRC_URI[android-tzdata-0.1.1.sha256sum] = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+SRC_URI[anstream-0.5.0.sha256sum] = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
+SRC_URI[anstyle-1.0.0.sha256sum] = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
+SRC_URI[anstyle-parse-0.2.0.sha256sum] = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee"
+SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+SRC_URI[anstyle-wincon-2.1.0.sha256sum] = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
+SRC_URI[arrayref-0.3.6.sha256sum] = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+SRC_URI[arrayvec-0.7.4.sha256sum] = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bigdecimal-0.4.0.sha256sum] = "5274a6b6e0ee020148397245b973e30163b7bffbc6d473613f850cb99888581e"
+SRC_URI[binary-heap-plus-0.5.0.sha256sum] = "e4551d8382e911ecc0d0f0ffb602777988669be09447d536ff4388d1def11296"
+SRC_URI[bindgen-0.63.0.sha256sum] = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.4.2.sha256sum] = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+SRC_URI[blake2b_simd-1.0.2.sha256sum] = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780"
+SRC_URI[blake3-1.5.1.sha256sum] = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52"
+SRC_URI[block-buffer-0.10.3.sha256sum] = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
+SRC_URI[bstr-1.9.1.sha256sum] = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+SRC_URI[bumpalo-3.11.1.sha256sum] = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
+SRC_URI[bytecount-0.6.7.sha256sum] = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
+SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[cfg_aliases-0.1.1.sha256sum] = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+SRC_URI[chrono-0.4.35.sha256sum] = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
+SRC_URI[clang-sys-1.4.0.sha256sum] = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
+SRC_URI[clap-4.4.2.sha256sum] = "6a13b88d2c62ff462f88e4a121f17a82c1af05693a2f192b5c38d14de73c19f6"
+SRC_URI[clap_builder-4.4.2.sha256sum] = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08"
+SRC_URI[clap_complete-4.4.0.sha256sum] = "586a385f7ef2f8b4d86bddaa0c094794e7ccbfe5ffef1f434fe928143fc783a5"
+SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+SRC_URI[clap_mangen-0.2.9.sha256sum] = "bb0f09a0ca8f0dd8ac92c546b426f466ef19828185c6d504c80c48c9c2768ed9"
+SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+SRC_URI[compare-0.1.0.sha256sum] = "120133d4db2ec47efe2e26502ee984747630c67f51974fca0b6c1340cf2368d3"
+SRC_URI[console-0.15.8.sha256sum] = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
+SRC_URI[const-random-0.1.16.sha256sum] = "11df32a13d7892ec42d51d3d175faba5211ffe13ed25d4fb348ac9e9ce835593"
+SRC_URI[const-random-macro-0.1.16.sha256sum] = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
+SRC_URI[constant_time_eq-0.3.0.sha256sum] = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
+SRC_URI[conv-0.3.3.sha256sum] = "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d1299"
+SRC_URI[core-foundation-sys-0.8.3.sha256sum] = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+SRC_URI[coz-0.1.3.sha256sum] = "cef55b3fe2f5477d59e12bc792e8b3c95a25bd099eadcfae006ecea136de76e2"
+SRC_URI[cpp-0.5.9.sha256sum] = "bfa65869ef853e45c60e9828aa08cdd1398cb6e13f3911d9cb2a079b144fcd64"
+SRC_URI[cpp_build-0.5.9.sha256sum] = "0e361fae2caf9758164b24da3eedd7f7d7451be30d90d8e7b5d2be29a2f0cf5b"
+SRC_URI[cpp_common-0.5.9.sha256sum] = "3e1a2532e4ed4ea13031c13bc7bc0dbca4aae32df48e9d77f0d1e743179f2ea1"
+SRC_URI[cpp_macros-0.5.9.sha256sum] = "47ec9cc90633446f779ef481a9ce5a0077107dd5b87016440448d908625a83fd"
+SRC_URI[cpufeatures-0.2.5.sha256sum] = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+SRC_URI[crossbeam-channel-0.5.10.sha256sum] = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2"
+SRC_URI[crossbeam-deque-0.8.4.sha256sum] = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751"
+SRC_URI[crossbeam-epoch-0.9.17.sha256sum] = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d"
+SRC_URI[crossbeam-utils-0.8.18.sha256sum] = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c"
+SRC_URI[crossterm-0.27.0.sha256sum] = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
+SRC_URI[crossterm_winapi-0.9.1.sha256sum] = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
+SRC_URI[crunchy-0.2.2.sha256sum] = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+SRC_URI[ctrlc-3.4.4.sha256sum] = "672465ae37dc1bc6380a6547a8883d5dd397b0f1faaad4f265726cc7042a5345"
+SRC_URI[custom_derive-0.1.7.sha256sum] = "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9"
+SRC_URI[data-encoding-2.5.0.sha256sum] = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+SRC_URI[data-encoding-macro-0.1.14.sha256sum] = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e"
+SRC_URI[data-encoding-macro-internal-0.1.12.sha256sum] = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3"
+SRC_URI[diff-0.1.13.sha256sum] = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
+SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+SRC_URI[dlv-list-0.5.0.sha256sum] = "d529fd73d344663edfd598ccb3f344e46034db51ebd103518eae34338248ad73"
+SRC_URI[dns-lookup-2.0.4.sha256sum] = "e5766087c2235fec47fafa4cfecc81e494ee679d0fd4a59887ea0919bfb0e4fc"
+SRC_URI[dunce-1.0.4.sha256sum] = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
+SRC_URI[either-1.8.0.sha256sum] = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
+SRC_URI[encode_unicode-0.3.6.sha256sum] = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+SRC_URI[errno-0.3.8.sha256sum] = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+SRC_URI[exacl-0.12.0.sha256sum] = "22be12de19decddab85d09f251ec8363f060ccb22ec9c81bc157c0c8433946d8"
+SRC_URI[fastrand-2.0.1.sha256sum] = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+SRC_URI[file_diff-1.0.0.sha256sum] = "31a7a908b8f32538a2143e59a6e4e2508988832d5d4d6f7c156b3cbc762643a5"
+SRC_URI[filetime-0.2.23.sha256sum] = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+SRC_URI[flate2-1.0.24.sha256sum] = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
+SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+SRC_URI[fs_extra-1.3.0.sha256sum] = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
+SRC_URI[fsevent-sys-4.1.0.sha256sum] = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
+SRC_URI[fts-sys-0.2.4.sha256sum] = "9a66c0a21e344f20c87b4ca12643cf4f40a7018f132c98d344e989b959f49dd1"
+SRC_URI[fundu-2.0.0.sha256sum] = "6c04cb831a8dccadfe3774b07cba4574a1ec24974d761510e65d8a543c2d7cb4"
+SRC_URI[fundu-core-0.3.0.sha256sum] = "76a889e633afd839fb5b04fe53adfd588cefe518e71ec8d3c929698c6daf2acd"
+SRC_URI[futures-0.3.28.sha256sum] = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+SRC_URI[futures-channel-0.3.28.sha256sum] = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+SRC_URI[futures-core-0.3.28.sha256sum] = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+SRC_URI[futures-executor-0.3.28.sha256sum] = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+SRC_URI[futures-io-0.3.28.sha256sum] = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+SRC_URI[futures-macro-0.3.28.sha256sum] = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+SRC_URI[futures-sink-0.3.28.sha256sum] = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+SRC_URI[futures-task-0.3.28.sha256sum] = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+SRC_URI[futures-timer-3.0.2.sha256sum] = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
+SRC_URI[futures-util-0.3.28.sha256sum] = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+SRC_URI[gcd-2.3.0.sha256sum] = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a"
+SRC_URI[generic-array-0.14.6.sha256sum] = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+SRC_URI[getrandom-0.2.9.sha256sum] = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
+SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+SRC_URI[half-2.4.0.sha256sum] = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
+SRC_URI[hashbrown-0.13.2.sha256sum] = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+SRC_URI[hex-literal-0.4.1.sha256sum] = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
+SRC_URI[hostname-0.3.1.sha256sum] = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+SRC_URI[iana-time-zone-0.1.53.sha256sum] = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
+SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+SRC_URI[indicatif-0.17.3.sha256sum] = "cef509aa9bc73864d6756f0d34d35504af3cf0844373afe9b8669a5b8005a729"
+SRC_URI[inotify-0.9.6.sha256sum] = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
+SRC_URI[inotify-sys-0.1.5.sha256sum] = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
+SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+SRC_URI[itertools-0.12.1.sha256sum] = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+SRC_URI[itoa-1.0.4.sha256sum] = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
+SRC_URI[js-sys-0.3.64.sha256sum] = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+SRC_URI[keccak-0.1.4.sha256sum] = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940"
+SRC_URI[kqueue-1.0.7.sha256sum] = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98"
+SRC_URI[kqueue-sys-1.0.3.sha256sum] = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+SRC_URI[libc-0.2.153.sha256sum] = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+SRC_URI[libm-0.2.7.sha256sum] = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[linux-raw-sys-0.4.12.sha256sum] = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+SRC_URI[lscolors-0.16.0.sha256sum] = "ab0b209ec3976527806024406fe765474b9a1750a0ed4b8f0372364741f50e7b"
+SRC_URI[match_cfg-0.1.0.sha256sum] = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+SRC_URI[md-5-0.10.6.sha256sum] = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+SRC_URI[memchr-2.7.1.sha256sum] = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+SRC_URI[memmap2-0.9.0.sha256sum] = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[miniz_oxide-0.5.4.sha256sum] = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"
+SRC_URI[mio-0.8.11.sha256sum] = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+SRC_URI[nix-0.28.0.sha256sum] = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[notify-6.0.1.sha256sum] = "5738a2795d57ea20abec2d6d76c6081186709c0024187cd5977265eda6598b51"
+SRC_URI[nu-ansi-term-0.49.0.sha256sum] = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68"
+SRC_URI[num-bigint-0.4.4.sha256sum] = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+SRC_URI[num-traits-0.2.18.sha256sum] = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+SRC_URI[onig-6.4.0.sha256sum] = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f"
+SRC_URI[onig_sys-69.8.1.sha256sum] = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7"
+SRC_URI[ordered-multimap-0.6.0.sha256sum] = "4ed8acf08e98e744e5384c8bc63ceb0364e68a6854187221c18df61c4797690e"
+SRC_URI[os_display-0.1.3.sha256sum] = "7a6229bad892b46b0dcfaaeb18ad0d2e56400f5aaea05b768bde96e73676cf75"
+SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+SRC_URI[parse_datetime-0.5.0.sha256sum] = "3bbf4e25b13841080e018a1e666358adfe5e39b6d353f986ca5091c210b586a1"
+SRC_URI[peeking_take_while-0.1.2.sha256sum] = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+SRC_URI[phf-0.11.2.sha256sum] = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+SRC_URI[phf_codegen-0.11.2.sha256sum] = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
+SRC_URI[phf_generator-0.11.1.sha256sum] = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf"
+SRC_URI[phf_shared-0.11.2.sha256sum] = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+SRC_URI[platform-info-2.0.2.sha256sum] = "d6259c4860e53bf665016f1b2f46a8859cadfa717581dc9d597ae4069de6300f"
+SRC_URI[portable-atomic-0.3.15.sha256sum] = "15eb2c6e362923af47e13c23ca5afb859e83d54452c55b0b9ac763b8f7c1ac16"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[pretty_assertions-1.4.0.sha256sum] = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[procfs-0.16.0.sha256sum] = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4"
+SRC_URI[procfs-core-0.16.0.sha256sum] = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29"
+SRC_URI[quick-error-2.0.1.sha256sum] = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
+SRC_URI[quickcheck-1.0.3.sha256sum] = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[rand_pcg-0.3.1.sha256sum] = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e"
+SRC_URI[rayon-1.9.0.sha256sum] = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
+SRC_URI[rayon-core-1.12.1.sha256sum] = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+SRC_URI[redox_syscall-0.5.0.sha256sum] = "13c178f952cc7eac391f3124bd9851d1ac0bdbc4c9de2d892ccd5f0d8b160e96"
+SRC_URI[reference-counted-singleton-0.1.2.sha256sum] = "f1bfbf25d7eb88ddcbb1ec3d755d0634da8f7657b2cb8b74089121409ab8228f"
+SRC_URI[regex-1.10.4.sha256sum] = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+SRC_URI[regex-automata-0.4.4.sha256sum] = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a"
+SRC_URI[regex-syntax-0.8.2.sha256sum] = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+SRC_URI[relative-path-1.8.0.sha256sum] = "4bf2521270932c3c7bed1a59151222bd7643c79310f2916f01925e1e16255698"
+SRC_URI[rlimit-0.10.1.sha256sum] = "3560f70f30a0f16d11d01ed078a07740fe6b489667abc7c7b029155d9f21c3d8"
+SRC_URI[roff-0.2.1.sha256sum] = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
+SRC_URI[rstest-0.18.2.sha256sum] = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199"
+SRC_URI[rstest_macros-0.18.2.sha256sum] = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
+SRC_URI[rust-ini-0.19.0.sha256sum] = "7e2a3bcec1f113553ef1c88aae6c020a369d03d55b58de9869a0908930385091"
+SRC_URI[rustc-hash-1.1.0.sha256sum] = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+SRC_URI[rustix-0.37.26.sha256sum] = "84f3f8f960ed3b5a59055428714943298bf3fa2d4a1d53135084e0544829d995"
+SRC_URI[rustix-0.38.31.sha256sum] = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+SRC_URI[self_cell-1.0.3.sha256sum] = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
+SRC_URI[selinux-0.4.0.sha256sum] = "a00576725d21b588213fbd4af84cd7e4cc4304e8e9bd6c0f5a1498a3e2ca6a51"
+SRC_URI[selinux-sys-0.6.2.sha256sum] = "806d381649bb85347189d2350728817418138d11d738e2482cb644ec7f3c755d"
+SRC_URI[semver-1.0.14.sha256sum] = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4"
+SRC_URI[serde-1.0.193.sha256sum] = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+SRC_URI[serde_derive-1.0.193.sha256sum] = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+SRC_URI[sha1-0.10.6.sha256sum] = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+SRC_URI[sha3-0.10.8.sha256sum] = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
+SRC_URI[shlex-1.3.0.sha256sum] = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+SRC_URI[signal-hook-0.3.17.sha256sum] = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
+SRC_URI[signal-hook-mio-0.2.3.sha256sum] = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
+SRC_URI[signal-hook-registry-1.4.0.sha256sum] = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+SRC_URI[siphasher-0.3.10.sha256sum] = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+SRC_URI[slab-0.4.7.sha256sum] = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+SRC_URI[sm3-0.4.2.sha256sum] = "ebb9a3b702d0a7e33bc4d85a14456633d2b165c2ad839c5fd9a8417c1ab15860"
+SRC_URI[smallvec-1.13.1.sha256sum] = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+SRC_URI[smawk-0.3.1.sha256sum] = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
+SRC_URI[socket2-0.5.3.sha256sum] = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.32.sha256sum] = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2"
+SRC_URI[tempfile-3.10.1.sha256sum] = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+SRC_URI[terminal_size-0.2.6.sha256sum] = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
+SRC_URI[terminal_size-0.3.0.sha256sum] = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
+SRC_URI[textwrap-0.16.1.sha256sum] = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
+SRC_URI[thiserror-1.0.37.sha256sum] = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
+SRC_URI[thiserror-impl-1.0.37.sha256sum] = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
+SRC_URI[time-0.3.20.sha256sum] = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+SRC_URI[time-core-0.1.0.sha256sum] = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+SRC_URI[time-macros-0.2.8.sha256sum] = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
+SRC_URI[tiny-keccak-2.0.2.sha256sum] = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+SRC_URI[typenum-1.15.0.sha256sum] = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+SRC_URI[unicode-ident-1.0.5.sha256sum] = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+SRC_URI[unicode-linebreak-0.1.5.sha256sum] = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
+SRC_URI[unicode-segmentation-1.11.0.sha256sum] = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+SRC_URI[unicode-width-0.1.11.sha256sum] = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+SRC_URI[unindent-0.2.1.sha256sum] = "5aa30f5ea51ff7edfc797c6d3f9ec8cbd8cfedef5371766b7181d33977f4814f"
+SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+SRC_URI[uuid-1.7.0.sha256sum] = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+SRC_URI[uutils_term_grid-0.3.0.sha256sum] = "b389452a568698688dda38802068378a16c15c4af9b153cdd99b65391292bbc7"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[walkdir-2.5.0.sha256sum] = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[wasm-bindgen-0.2.87.sha256sum] = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+SRC_URI[wasm-bindgen-backend-0.2.87.sha256sum] = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+SRC_URI[wasm-bindgen-macro-0.2.87.sha256sum] = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+SRC_URI[wasm-bindgen-macro-support-0.2.87.sha256sum] = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+SRC_URI[wasm-bindgen-shared-0.2.87.sha256sum] = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+SRC_URI[which-4.3.0.sha256sum] = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b"
+SRC_URI[wild-2.2.1.sha256sum] = "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.6.sha256sum] = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+SRC_URI[windows-targets-0.48.0.sha256sum] = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+SRC_URI[windows-targets-0.52.0.sha256sum] = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_gnullvm-0.52.0.sha256sum] = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_aarch64_msvc-0.52.0.sha256sum] = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_gnu-0.52.0.sha256sum] = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_i686_msvc-0.52.0.sha256sum] = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+SRC_URI[windows_x86_64_gnu-0.42.2.sha256sum] = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnu-0.52.0.sha256sum] = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+SRC_URI[windows_x86_64_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_gnullvm-0.52.0.sha256sum] = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+SRC_URI[windows_x86_64_msvc-0.52.0.sha256sum] = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+SRC_URI[xattr-1.3.1.sha256sum] = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
+SRC_URI[yansi-0.5.1.sha256sum] = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
+SRC_URI[z85-3.0.5.sha256sum] = "2a599daf1b507819c1121f0bf87fa37eb19daac6aff3aefefd4e6e2e0f2020fc"
+SRC_URI[zip-0.6.6.sha256sum] = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
diff --git a/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils.inc b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils.inc
deleted file mode 100644
index 68cfa8178c..0000000000
--- a/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils.inc
+++ /dev/null
@@ -1,57 +0,0 @@
-# This file contains content which was not automatically generated using cargo-bitbake on the cargo.toml file of uutils-coreutils
-# Copyright (c) 2022, Snap Inc.
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-PROVIDES = "coreutils"
-RPROVIDES:${PN} = "coreutils"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
-
-PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
-
-CARGO_BUILD_FLAGS += "--features unix"
-CARGO_BUILD_FLAGS += "${@bb.utils.contains('PACKAGECONFIG', 'selinux', '--features feat_selinux', '', d)}"
-
-DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'selinux', 'clang-native libselinux-native', '', d)}"
-
-export LIBCLANG_PATH = "${WORKDIR}/recipe-sysroot-native${libdir}"
-export SELINUX_LIB_DIR = "${WORKDIR}/recipe-sysroot-native${libdir}"
-export SELINUX_INCLUDE_DIR = "${WORKDIR}/recipe-sysroot-native${includedir}"
-
-# The code which follows is strongly inspired from the GNU coreutils bitbake recipe:
-
-# [ df mktemp nice printenv base64 gets a special treatment and is not included in this
-bindir_progs = "[ arch basename cksum comm csplit cut dir dircolors dirname du \
- env expand expr factor fmt fold groups head hostid id install \
- join link logname md5sum mkfifo nl nohup nproc od paste pathchk \
- pinky pr printf ptx readlink realpath seq sha1sum sha224sum sha256sum \
- sha384sum sha512sum shred shuf sort split sum tac tail tee test timeout \
- tr truncate tsort tty unexpand uniq unlink uptime users vdir wc who whoami yes"
-
-bindir_progs += "${@bb.utils.contains('PACKAGECONFIG', 'selinux', 'chcon runcon', '', d)}"
-
-base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill ln ls mkdir \
- mknod mv pwd rm rmdir sleep stty sync touch true uname stat"
-
-sbindir_progs= "chroot"
-
-inherit update-alternatives
-
-# Higher than busybox (which uses 50)
-ALTERNATIVE_PRIORITY = "100"
-
-# Higher than net-tools (which uses 100)
-ALTERNATIVE_PRIORITY[hostname] = "110"
-
-ALTERNATIVE:${PN} = "${bindir_progs} ${base_bindir_progs} ${sbindir_progs} base32 base64 nice printenv mktemp df"
-
-# Use the multicall binary named "coreutils" for symlinks
-ALTERNATIVE_TARGET = "${bindir}/coreutils"
-
-python __anonymous() {
- for prog in d.getVar('base_bindir_progs').split():
- d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog))
-
- for prog in d.getVar('sbindir_progs').split():
- d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('sbindir'), prog))
-}
diff --git a/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.15.bb b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.15.bb
deleted file mode 100644
index 07004635f0..0000000000
--- a/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.15.bb
+++ /dev/null
@@ -1,282 +0,0 @@
-# Auto-Generated by cargo-bitbake 0.3.16
-#
-inherit cargo
-
-# If this is git based prefer versioned ones if they exist
-# DEFAULT_PREFERENCE = "-1"
-
-# how to get coreutils could be as easy as but default to a git checkout:
-# SRC_URI += "crate://crates.io/coreutils/0.0.15"
-SRC_URI += "git://github.com/uutils/coreutils.git;protocol=https;nobranch=1"
-SRCREV = "5b6cd6146b40f5c1391cd812b1b929edd2283994"
-S = "${WORKDIR}/git"
-CARGO_SRC_DIR = ""
-
-
-# please note if you have entries that do not begin with crate://
-# you must change them to how that package can be fetched
-SRC_URI += " \
- crate://crates.io/Inflector/0.11.4 \
- crate://crates.io/adler/1.0.2 \
- crate://crates.io/ahash/0.7.6 \
- crate://crates.io/aho-corasick/0.7.18 \
- crate://crates.io/aliasable/0.1.3 \
- crate://crates.io/android_system_properties/0.1.4 \
- crate://crates.io/ansi_term/0.12.1 \
- crate://crates.io/arrayref/0.3.6 \
- crate://crates.io/arrayvec/0.7.2 \
- crate://crates.io/atty/0.2.14 \
- crate://crates.io/autocfg/1.1.0 \
- crate://crates.io/bigdecimal/0.3.0 \
- crate://crates.io/binary-heap-plus/0.4.1 \
- crate://crates.io/bindgen/0.59.2 \
- crate://crates.io/bitflags/1.3.2 \
- crate://crates.io/blake2b_simd/1.0.0 \
- crate://crates.io/blake3/1.3.1 \
- crate://crates.io/block-buffer/0.10.2 \
- crate://crates.io/bstr/0.2.17 \
- crate://crates.io/bumpalo/3.10.0 \
- crate://crates.io/byte-unit/4.0.14 \
- crate://crates.io/bytecount/0.6.3 \
- crate://crates.io/byteorder/1.4.3 \
- crate://crates.io/cc/1.0.73 \
- crate://crates.io/cexpr/0.6.0 \
- crate://crates.io/cfg-if/0.1.10 \
- crate://crates.io/cfg-if/1.0.0 \
- crate://crates.io/chrono/0.4.22 \
- crate://crates.io/clang-sys/1.3.3 \
- crate://crates.io/clap/2.34.0 \
- crate://crates.io/clap/3.2.17 \
- crate://crates.io/clap_complete/3.2.4 \
- crate://crates.io/clap_lex/0.2.4 \
- crate://crates.io/compare/0.1.0 \
- crate://crates.io/constant_time_eq/0.1.5 \
- crate://crates.io/conv/0.3.3 \
- crate://crates.io/core-foundation-sys/0.8.3 \
- crate://crates.io/coz/0.1.3 \
- crate://crates.io/cpp/0.5.7 \
- crate://crates.io/cpp_build/0.4.0 \
- crate://crates.io/cpp_common/0.4.0 \
- crate://crates.io/cpp_common/0.5.7 \
- crate://crates.io/cpp_macros/0.5.7 \
- crate://crates.io/cpp_syn/0.12.0 \
- crate://crates.io/cpp_synmap/0.3.0 \
- crate://crates.io/cpp_synom/0.12.0 \
- crate://crates.io/cpufeatures/0.2.2 \
- crate://crates.io/crc32fast/1.3.2 \
- crate://crates.io/crossbeam-channel/0.5.6 \
- crate://crates.io/crossbeam-deque/0.8.2 \
- crate://crates.io/crossbeam-epoch/0.9.10 \
- crate://crates.io/crossbeam-utils/0.8.11 \
- crate://crates.io/crossterm/0.25.0 \
- crate://crates.io/crossterm_winapi/0.9.0 \
- crate://crates.io/crypto-common/0.1.6 \
- crate://crates.io/ctor/0.1.23 \
- crate://crates.io/ctrlc/3.2.3 \
- crate://crates.io/custom_derive/0.1.7 \
- crate://crates.io/data-encoding-macro-internal/0.1.10 \
- crate://crates.io/data-encoding-macro/0.1.12 \
- crate://crates.io/data-encoding/2.3.2 \
- crate://crates.io/diff/0.1.13 \
- crate://crates.io/digest/0.10.3 \
- crate://crates.io/dlv-list/0.3.0 \
- crate://crates.io/dns-lookup/1.0.8 \
- crate://crates.io/dunce/1.0.2 \
- crate://crates.io/either/1.7.0 \
- crate://crates.io/env_logger/0.8.4 \
- crate://crates.io/env_logger/0.9.0 \
- crate://crates.io/exacl/0.9.0 \
- crate://crates.io/fastrand/1.8.0 \
- crate://crates.io/file_diff/1.0.0 \
- crate://crates.io/filetime/0.2.17 \
- crate://crates.io/flate2/1.0.24 \
- crate://crates.io/fnv/1.0.7 \
- crate://crates.io/fs_extra/1.2.0 \
- crate://crates.io/fsevent-sys/4.1.0 \
- crate://crates.io/fts-sys/0.2.1 \
- crate://crates.io/gcd/2.1.0 \
- crate://crates.io/generic-array/0.14.6 \
- crate://crates.io/getrandom/0.2.7 \
- crate://crates.io/glob/0.3.0 \
- crate://crates.io/half/1.8.2 \
- crate://crates.io/hashbrown/0.12.3 \
- crate://crates.io/heck/0.4.0 \
- crate://crates.io/hermit-abi/0.1.19 \
- crate://crates.io/hex-literal/0.3.4 \
- crate://crates.io/hex/0.4.3 \
- crate://crates.io/hostname/0.3.1 \
- crate://crates.io/humantime/2.1.0 \
- crate://crates.io/iana-time-zone/0.1.45 \
- crate://crates.io/indexmap/1.9.1 \
- crate://crates.io/inotify-sys/0.1.5 \
- crate://crates.io/inotify/0.9.6 \
- crate://crates.io/instant/0.1.12 \
- crate://crates.io/itertools/0.10.3 \
- crate://crates.io/itoa/1.0.3 \
- crate://crates.io/js-sys/0.3.59 \
- crate://crates.io/keccak/0.1.2 \
- crate://crates.io/kernel32-sys/0.2.2 \
- crate://crates.io/kqueue-sys/1.0.3 \
- crate://crates.io/kqueue/1.0.6 \
- crate://crates.io/lazy_static/1.4.0 \
- crate://crates.io/lazycell/1.3.0 \
- crate://crates.io/libc/0.2.132 \
- crate://crates.io/libloading/0.7.3 \
- crate://crates.io/lock_api/0.4.7 \
- crate://crates.io/log/0.4.17 \
- crate://crates.io/lscolors/0.12.0 \
- crate://crates.io/match_cfg/0.1.0 \
- crate://crates.io/md-5/0.10.1 \
- crate://crates.io/memchr/1.0.2 \
- crate://crates.io/memchr/2.5.0 \
- crate://crates.io/memmap2/0.5.7 \
- crate://crates.io/memoffset/0.6.5 \
- crate://crates.io/minimal-lexical/0.2.1 \
- crate://crates.io/miniz_oxide/0.5.3 \
- crate://crates.io/mio/0.8.4 \
- crate://crates.io/nix/0.25.0 \
- crate://crates.io/nom/7.1.1 \
- crate://crates.io/notify/5.0.0-pre.16 \
- crate://crates.io/num-bigint/0.4.3 \
- crate://crates.io/num-integer/0.1.45 \
- crate://crates.io/num-traits/0.2.15 \
- crate://crates.io/num_cpus/1.13.1 \
- crate://crates.io/num_threads/0.1.6 \
- crate://crates.io/number_prefix/0.4.0 \
- crate://crates.io/numtoa/0.1.0 \
- crate://crates.io/once_cell/1.13.1 \
- crate://crates.io/onig/6.3.2 \
- crate://crates.io/onig_sys/69.8.1 \
- crate://crates.io/ordered-multimap/0.4.3 \
- crate://crates.io/os_display/0.1.3 \
- crate://crates.io/os_str_bytes/6.0.1 \
- crate://crates.io/ouroboros/0.15.2 \
- crate://crates.io/ouroboros_macro/0.15.2 \
- crate://crates.io/output_vt100/0.1.3 \
- crate://crates.io/parking_lot/0.12.1 \
- crate://crates.io/parking_lot_core/0.9.3 \
- crate://crates.io/paste/1.0.8 \
- crate://crates.io/peeking_take_while/0.1.2 \
- crate://crates.io/phf/0.10.1 \
- crate://crates.io/phf_codegen/0.10.0 \
- crate://crates.io/phf_generator/0.10.0 \
- crate://crates.io/phf_shared/0.10.0 \
- crate://crates.io/pin-utils/0.1.0 \
- crate://crates.io/pkg-config/0.3.25 \
- crate://crates.io/platform-info/1.0.0 \
- crate://crates.io/ppv-lite86/0.2.16 \
- crate://crates.io/pretty_assertions/1.2.1 \
- crate://crates.io/proc-macro-error-attr/1.0.4 \
- crate://crates.io/proc-macro-error/1.0.4 \
- crate://crates.io/proc-macro2/1.0.43 \
- crate://crates.io/quick-error/2.0.1 \
- crate://crates.io/quickcheck/1.0.3 \
- crate://crates.io/quote/0.3.15 \
- crate://crates.io/quote/1.0.21 \
- crate://crates.io/rand/0.8.5 \
- crate://crates.io/rand_chacha/0.3.1 \
- crate://crates.io/rand_core/0.6.3 \
- crate://crates.io/rayon-core/1.9.3 \
- crate://crates.io/rayon/1.5.3 \
- crate://crates.io/redox_syscall/0.2.16 \
- crate://crates.io/redox_termios/0.1.2 \
- crate://crates.io/reference-counted-singleton/0.1.1 \
- crate://crates.io/regex-automata/0.1.10 \
- crate://crates.io/regex-syntax/0.6.27 \
- crate://crates.io/regex/1.6.0 \
- crate://crates.io/remove_dir_all/0.5.3 \
- crate://crates.io/remove_dir_all/0.7.0 \
- crate://crates.io/retain_mut/0.1.7 \
- crate://crates.io/rlimit/0.8.3 \
- crate://crates.io/rust-ini/0.18.0 \
- crate://crates.io/rustc-hash/1.1.0 \
- crate://crates.io/rustversion/1.0.9 \
- crate://crates.io/same-file/1.0.6 \
- crate://crates.io/scopeguard/1.1.0 \
- crate://crates.io/selinux-sys/0.5.2 \
- crate://crates.io/selinux/0.2.7 \
- crate://crates.io/sha1/0.10.1 \
- crate://crates.io/sha2/0.10.2 \
- crate://crates.io/sha3/0.10.2 \
- crate://crates.io/shlex/1.1.0 \
- crate://crates.io/signal-hook-mio/0.2.3 \
- crate://crates.io/signal-hook-registry/1.4.0 \
- crate://crates.io/signal-hook/0.3.14 \
- crate://crates.io/siphasher/0.3.10 \
- crate://crates.io/smallvec/1.9.0 \
- crate://crates.io/smawk/0.3.1 \
- crate://crates.io/socket2/0.4.4 \
- crate://crates.io/strsim/0.10.0 \
- crate://crates.io/strsim/0.8.0 \
- crate://crates.io/strum/0.24.1 \
- crate://crates.io/strum_macros/0.24.3 \
- crate://crates.io/subtle/2.4.1 \
- crate://crates.io/syn/1.0.99 \
- crate://crates.io/tempfile/3.3.0 \
- crate://crates.io/term_grid/0.1.7 \
- crate://crates.io/termcolor/1.1.3 \
- crate://crates.io/terminal_size/0.1.17 \
- crate://crates.io/termion/1.5.6 \
- crate://crates.io/termsize/0.1.6 \
- crate://crates.io/textwrap/0.11.0 \
- crate://crates.io/textwrap/0.15.0 \
- crate://crates.io/thiserror-impl/1.0.32 \
- crate://crates.io/thiserror/1.0.32 \
- crate://crates.io/time-macros/0.2.4 \
- crate://crates.io/time/0.3.9 \
- crate://crates.io/typenum/1.15.0 \
- crate://crates.io/unicode-ident/1.0.3 \
- crate://crates.io/unicode-linebreak/0.1.2 \
- crate://crates.io/unicode-segmentation/1.9.0 \
- crate://crates.io/unicode-width/0.1.9 \
- crate://crates.io/unicode-xid/0.0.4 \
- crate://crates.io/unindent/0.1.10 \
- crate://crates.io/unix_socket/0.5.0 \
- crate://crates.io/users/0.11.0 \
- crate://crates.io/utf-8/0.7.6 \
- crate://crates.io/utf8-width/0.1.6 \
- crate://crates.io/uuid/1.1.2 \
- crate://crates.io/vec_map/0.8.2 \
- crate://crates.io/version_check/0.9.4 \
- crate://crates.io/walkdir/2.3.2 \
- crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
- crate://crates.io/wasm-bindgen-backend/0.2.82 \
- crate://crates.io/wasm-bindgen-macro-support/0.2.82 \
- crate://crates.io/wasm-bindgen-macro/0.2.82 \
- crate://crates.io/wasm-bindgen-shared/0.2.82 \
- crate://crates.io/wasm-bindgen/0.2.82 \
- crate://crates.io/which/4.2.5 \
- crate://crates.io/wild/2.1.0 \
- crate://crates.io/winapi-build/0.1.1 \
- crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
- crate://crates.io/winapi-util/0.1.5 \
- crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
- crate://crates.io/winapi/0.2.8 \
- crate://crates.io/winapi/0.3.9 \
- crate://crates.io/windows-sys/0.36.1 \
- crate://crates.io/windows_aarch64_msvc/0.36.1 \
- crate://crates.io/windows_i686_gnu/0.36.1 \
- crate://crates.io/windows_i686_msvc/0.36.1 \
- crate://crates.io/windows_x86_64_gnu/0.36.1 \
- crate://crates.io/windows_x86_64_msvc/0.36.1 \
- crate://crates.io/xattr/0.2.3 \
- crate://crates.io/z85/3.0.5 \
- crate://crates.io/zip/0.6.2 \
-"
-
-
-
-# FIXME: update generateme with the real MD5 of the license file
-LIC_FILES_CHKSUM = " \
- file://LICENSE;md5=41f7469eaacac62c67d5664fff2c062d \
-"
-
-SUMMARY = "coreutils ~ GNU coreutils (updated); implemented as universal (cross-platform) utils, written in Rust"
-HOMEPAGE = "https://github.com/uutils/coreutils"
-LICENSE = "MIT"
-
-# includes this file if it exists but does not fail
-# this is useful for anything you may want to override from
-# what cargo-bitbake generates.
-include uutils-coreutils-${PV}.inc
-include uutils-coreutils.inc
diff --git a/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.25.bb b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.25.bb
new file mode 100644
index 0000000000..61f2dc2987
--- /dev/null
+++ b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.25.bb
@@ -0,0 +1,73 @@
+# Copyright (c) 2022, Snap Inc.
+# Released under the MIT license (see COPYING.MIT for the terms)
+SUMMARY = "coreutils ~ GNU coreutils (updated); implemented as universal (cross-platform) utils, written in Rust"
+HOMEPAGE = "https://github.com/uutils/coreutils"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e74349878141b240070458d414ab3b64"
+
+inherit cargo cargo-update-recipe-crates
+
+SRC_URI += "git://github.com/uutils/coreutils.git;protocol=https;branch=main"
+
+# musl not supported because the libc crate does not support functions like "endutxent" at the moment,
+# so src/uucore/src/lib/features.rs disables utmpx when targetting musl.
+COMPATIBLE_HOST:libc-musl = "null"
+
+SRCREV = "68c77b4bd129bdc12d03cc74fe0f817d2df75894"
+S = "${WORKDIR}/git"
+
+require ${BPN}-crates.inc
+
+PROVIDES = "coreutils"
+RPROVIDES:${PN} = "coreutils"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
+
+PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
+
+CARGO_BUILD_FLAGS += "--features unix"
+CARGO_BUILD_FLAGS += "${@bb.utils.contains('PACKAGECONFIG', 'selinux', '--features feat_selinux', '', d)}"
+
+DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'selinux', 'clang-native libselinux-native', '', d)}"
+
+export LIBCLANG_PATH = "${WORKDIR}/recipe-sysroot-native${libdir}"
+export SELINUX_LIB_DIR = "${WORKDIR}/recipe-sysroot-native${libdir}"
+export SELINUX_INCLUDE_DIR = "${WORKDIR}/recipe-sysroot-native${includedir}"
+
+# The code which follows is strongly inspired from the GNU coreutils bitbake recipe:
+
+# [ df mktemp nice printenv base64 gets a special treatment and is not included in this
+bindir_progs = "[ arch basename cksum comm csplit cut dir dircolors dirname du \
+ env expand expr factor fmt fold groups head hostid id install \
+ join link logname md5sum mkfifo nl nohup nproc od paste pathchk \
+ pinky pr printf ptx readlink realpath seq sha1sum sha224sum sha256sum \
+ sha384sum sha512sum shred shuf sort split sum tac tail tee test timeout \
+ tr truncate tsort tty unexpand uniq unlink uptime users vdir wc who whoami yes"
+
+bindir_progs += "${@bb.utils.contains('PACKAGECONFIG', 'selinux', 'chcon runcon', '', d)}"
+
+base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill ln ls mkdir \
+ mknod mv pwd rm rmdir sleep stty sync touch true uname stat"
+
+sbindir_progs= "chroot"
+
+inherit update-alternatives
+
+# Higher than busybox (which uses 50)
+ALTERNATIVE_PRIORITY = "100"
+
+# Higher than net-tools (which uses 100)
+ALTERNATIVE_PRIORITY[hostname] = "110"
+
+ALTERNATIVE:${PN} = "${bindir_progs} ${base_bindir_progs} ${sbindir_progs} base32 base64 nice printenv mktemp df"
+
+# Use the multicall binary named "coreutils" for symlinks
+ALTERNATIVE_TARGET = "${bindir}/coreutils"
+
+python __anonymous() {
+ for prog in d.getVar('base_bindir_progs').split():
+ d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog))
+
+ for prog in d.getVar('sbindir_progs').split():
+ d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('sbindir'), prog))
+}
diff --git a/meta-oe/recipes-crypto/botan/botan_2.19.2.bb b/meta-oe/recipes-crypto/botan/botan_2.19.2.bb
deleted file mode 100644
index 5261367db2..0000000000
--- a/meta-oe/recipes-crypto/botan/botan_2.19.2.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "Crypto and TLS for C++11"
-HOMEPAGE = "https://botan.randombit.net"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://license.txt;md5=f4ce98476c07c34e1793daa036960fad"
-SECTION = "libs"
-
-SRC_URI = "https://botan.randombit.net/releases/Botan-${PV}.tar.xz"
-SRC_URI[sha256sum] = "3af5f17615c6b5cd8b832d269fb6cb4d54ec64f9eb09ddbf1add5093941b4d75"
-
-S = "${WORKDIR}/Botan-${PV}"
-
-inherit python3native siteinfo lib_package
-
-CPU ?= "${TARGET_ARCH}"
-CPU:x86 = "x86_32"
-CPU:armv7a = "armv7"
-CPU:armv7ve = "armv7"
-
-do_configure() {
- python3 ${S}/configure.py \
- --prefix="${D}${exec_prefix}" \
- --libdir="${D}${libdir}" \
- --cpu="${CPU}" \
- --cc-bin="${CXX}" \
- --cxxflags="${CXXFLAGS}" \
- --ldflags="${LDFLAGS}" \
- --with-endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
- ${@bb.utils.contains("TUNE_FEATURES","neon","","--disable-neon",d)} \
- --with-sysroot-dir=${STAGING_DIR_HOST} \
- --with-build-dir="${B}" \
- --optimize-for-size \
- --with-stack-protector \
- --enable-shared-library \
- --with-python-versions=3 \
- ${EXTRA_OECONF}
-}
-
-do_compile() {
- oe_runmake
-}
-do_install() {
- oe_runmake install
- sed -i -e "s|${D}||g" ${D}${libdir}/pkgconfig/botan-2.pc
-}
-
-PACKAGES += "${PN}-python3"
-
-FILES:${PN}-python3 = "${libdir}/python3"
-
-RDEPENDS:${PN}-python3 += "python3"
-
-COMPATIBLE_HOST:riscv32 = "null"
diff --git a/meta-oe/recipes-crypto/botan/botan_3.2.0.bb b/meta-oe/recipes-crypto/botan/botan_3.2.0.bb
new file mode 100644
index 0000000000..5eff2d383e
--- /dev/null
+++ b/meta-oe/recipes-crypto/botan/botan_3.2.0.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Crypto and TLS for C++11"
+HOMEPAGE = "https://botan.randombit.net"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://license.txt;md5=f5254d3abe90ec5bb82c5694ff751546"
+SECTION = "libs"
+
+SRC_URI = "https://botan.randombit.net/releases/Botan-${PV}.tar.xz"
+SRC_URI[sha256sum] = "049c847835fcf6ef3a9e206b33de05dd38999c325e247482772a5598d9e5ece3"
+
+S = "${WORKDIR}/Botan-${PV}"
+
+inherit python3native siteinfo lib_package
+
+CPU ?= "${TARGET_ARCH}"
+CPU:x86 = "x86_32"
+CPU:armv7a = "armv7"
+CPU:armv7ve = "armv7"
+
+do_configure() {
+ python3 ${S}/configure.py \
+ --prefix="${D}${exec_prefix}" \
+ --libdir="${D}${libdir}" \
+ --cpu="${CPU}" \
+ --cc-bin="${CXX}" \
+ --cxxflags="${CXXFLAGS}" \
+ --ldflags="${LDFLAGS}" \
+ --with-endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
+ ${@bb.utils.contains("TUNE_FEATURES","neon","","--disable-neon",d)} \
+ --with-sysroot-dir=${STAGING_DIR_HOST} \
+ --with-build-dir="${B}" \
+ --optimize-for-size \
+ --with-stack-protector \
+ --enable-shared-library \
+ --with-python-versions=3 \
+ ${EXTRA_OECONF}
+}
+
+do_compile() {
+ oe_runmake
+}
+do_install() {
+ oe_runmake install
+ sed -i -e "s|${D}||g" ${D}${libdir}/pkgconfig/botan-3.pc
+}
+
+PACKAGES += "${PN}-python3"
+
+FILES:${PN}-python3 = "${libdir}/python3"
+
+RDEPENDS:${PN}-python3 += "python3"
+
+COMPATIBLE_HOST:riscv32 = "null"
diff --git a/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.4.3.bb b/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.4.3.bb
deleted file mode 100644
index 652fd66614..0000000000
--- a/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.4.3.bb
+++ /dev/null
@@ -1,116 +0,0 @@
-SUMMARY = "Manage plain dm-crypt and LUKS encrypted volumes"
-DESCRIPTION = "Cryptsetup is used to conveniently setup dm-crypt managed \
-device-mapper mappings. These include plain dm-crypt volumes and \
-LUKS volumes. The difference is that LUKS uses a metadata header \
-and can hence offer more features than plain dm-crypt. On the other \
-hand, the header is visible and vulnerable to damage."
-HOMEPAGE = "https://gitlab.com/cryptsetup/cryptsetup"
-SECTION = "console"
-LICENSE = "GPL-2.0-with-OpenSSL-exception"
-LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326"
-
-DEPENDS = " \
- json-c \
- libdevmapper \
- popt \
- util-linux-libuuid \
-"
-
-DEPENDS:append:libc-musl = " argp-standalone"
-LDFLAGS:append:libc-musl = " -largp"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "fc0df945188172264ec5bf1d0bda08264fadc8a3f856d47eba91f31fe354b507"
-
-inherit autotools gettext pkgconfig
-
-# Use openssl because libgcrypt drops root privileges
-# if libgcrypt is linked with libcap support
-PACKAGECONFIG ??= " \
- keyring \
- cryptsetup \
- veritysetup \
- cryptsetup-reencrypt \
- integritysetup \
- ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
- kernel_crypto \
- internal-argon2 \
- blkid \
- luks-adjust-xts-keysize \
- openssl \
- ssh-token \
-"
-PACKAGECONFIG:append:class-target = " \
- udev \
-"
-
-PACKAGECONFIG[keyring] = "--enable-keyring,--disable-keyring"
-PACKAGECONFIG[fips] = "--enable-fips,--disable-fips"
-PACKAGECONFIG[pwquality] = "--enable-pwquality,--disable-pwquality,libpwquality"
-PACKAGECONFIG[passwdqc] = "--enable-passwdqc,--disable-passwdqc,passwdqc"
-PACKAGECONFIG[cryptsetup] = "--enable-cryptsetup,--disable-cryptsetup"
-PACKAGECONFIG[veritysetup] = "--enable-veritysetup,--disable-veritysetup"
-PACKAGECONFIG[cryptsetup-reencrypt] = "--enable-cryptsetup-reencrypt,--disable-cryptsetup-reencrypt"
-PACKAGECONFIG[integritysetup] = "--enable-integritysetup,--disable-integritysetup"
-PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux"
-PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,,udev lvm2-udevrules"
-PACKAGECONFIG[kernel_crypto] = "--enable-kernel_crypto,--disable-kernel_crypto"
-# gcrypt-pkbdf2 requries --with-crypto_backend=gcrypt or the flag isn't
-# recognized.
-PACKAGECONFIG[gcrypt-pbkdf2] = "--enable-gcrypt-pbkdf2"
-PACKAGECONFIG[internal-argon2] = "--enable-internal-argon2,--disable-internal-argon2"
-PACKAGECONFIG[internal-sse-argon2] = "--enable-internal-sse-argon2,--disable-internal-sse-argon2"
-PACKAGECONFIG[blkid] = "--enable-blkid,--disable-blkid,util-linux"
-PACKAGECONFIG[dev-random] = "--enable-dev-random,--disable-dev-random"
-PACKAGECONFIG[luks-adjust-xts-keysize] = "--enable-luks-adjust-xts-keysize,--disable-luks-adjust-xts-keysize"
-PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl"
-PACKAGECONFIG[gcrypt] = "--with-crypto_backend=gcrypt,,libgcrypt"
-PACKAGECONFIG[nss] = "--with-crypto_backend=nss,,nss"
-PACKAGECONFIG[kernel] = "--with-crypto_backend=kernel"
-PACKAGECONFIG[nettle] = "--with-crypto_backend=nettle,,nettle"
-PACKAGECONFIG[luks2] = "--with-default-luks-format=LUKS2,--with-default-luks-format=LUKS1"
-PACKAGECONFIG[ssh-token] = "--enable-ssh-token,--disable-ssh-token,libssh"
-
-EXTRA_OECONF = "--enable-static"
-# Building without largefile is not supported by upstream
-EXTRA_OECONF += "--enable-largefile"
-# Requires a static popt library
-EXTRA_OECONF += "--disable-static-cryptsetup"
-# There's no recipe for libargon2 yet
-EXTRA_OECONF += "--disable-libargon2"
-
-# libcryptsetup default PBKDF algorithm, Argon2 memory cost (KB), parallel threads and iteration time (ms)
-LUKS2_PBKDF ?= "argon2i"
-LUKS2_MEMORYKB ?= "1048576"
-LUKS2_PARALLEL_THREADS ?= "4"
-LUKS2_ITERTIME ?= "2000"
-
-EXTRA_OECONF += "--with-luks2-pbkdf=${LUKS2_PBKDF} \
- --with-luks2-memory-kb=${LUKS2_MEMORYKB} \
- --with-luks2-parallel-threads=${LUKS2_PARALLEL_THREADS} \
- --with-luks2-iter-time=${LUKS2_ITERTIME}"
-
-do_install:append() {
- # The /usr/lib/cryptsetup directory is always created, even when ssh-token
- # is disabled. In that case it is empty and causes a packaging error. Since
- # there is no reason to distribute the empty directory, the easiest solution
- # is to remove it if it is empty.
- rmdir -p --ignore-fail-on-non-empty ${D}${libdir}/${BPN}
-}
-
-FILES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/cryptsetup.conf', '', d)}"
-
-RDEPENDS:${PN} = " \
- libdevmapper \
-"
-
-RRECOMMENDS:${PN}:class-target = " \
- kernel-module-aes-generic \
- kernel-module-dm-crypt \
- kernel-module-md5 \
- kernel-module-cbc \
- kernel-module-sha256-generic \
- kernel-module-xts \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.7.1.bb b/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.7.1.bb
new file mode 100644
index 0000000000..53162cb94c
--- /dev/null
+++ b/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.7.1.bb
@@ -0,0 +1,117 @@
+SUMMARY = "Manage plain dm-crypt and LUKS encrypted volumes"
+DESCRIPTION = "Cryptsetup is used to conveniently setup dm-crypt managed \
+device-mapper mappings. These include plain dm-crypt volumes and \
+LUKS volumes. The difference is that LUKS uses a metadata header \
+and can hence offer more features than plain dm-crypt. On the other \
+hand, the header is visible and vulnerable to damage."
+HOMEPAGE = "https://gitlab.com/cryptsetup/cryptsetup"
+SECTION = "console"
+LICENSE = "GPL-2.0-with-OpenSSL-exception"
+LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326"
+
+DEPENDS = " \
+ json-c \
+ libdevmapper \
+ popt \
+ util-linux-libuuid \
+"
+
+DEPENDS:append:libc-musl = " argp-standalone"
+LDFLAGS:append:libc-musl = " -largp"
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}/${BP}.tar.xz"
+SRC_URI[sha256sum] = "da5d1419e2a86e01aa32fd79582cd54d208857cb541bca2fd426a5ff1aaabbc3"
+
+inherit autotools gettext pkgconfig
+
+# Use openssl because libgcrypt drops root privileges
+# if libgcrypt is linked with libcap support
+PACKAGECONFIG ??= " \
+ keyring \
+ cryptsetup \
+ veritysetup \
+ luks2-reencryption \
+ integritysetup \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
+ kernel_crypto \
+ internal-argon2 \
+ blkid \
+ luks-adjust-xts-keysize \
+ openssl \
+ ssh-token \
+"
+PACKAGECONFIG:append:class-target = " \
+ udev \
+"
+
+PACKAGECONFIG[keyring] = "--enable-keyring,--disable-keyring"
+PACKAGECONFIG[fips] = "--enable-fips,--disable-fips"
+PACKAGECONFIG[pwquality] = "--enable-pwquality,--disable-pwquality,libpwquality"
+PACKAGECONFIG[passwdqc] = "--enable-passwdqc,--disable-passwdqc,passwdqc"
+PACKAGECONFIG[cryptsetup] = "--enable-cryptsetup,--disable-cryptsetup"
+PACKAGECONFIG[veritysetup] = "--enable-veritysetup,--disable-veritysetup"
+PACKAGECONFIG[luks2-reencryption] = "--enable-luks2-reencryption,--disable-luks2-reencryption"
+PACKAGECONFIG[integritysetup] = "--enable-integritysetup,--disable-integritysetup"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux"
+PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,,udev lvm2-udevrules"
+PACKAGECONFIG[kernel_crypto] = "--enable-kernel_crypto,--disable-kernel_crypto"
+# gcrypt-pkbdf2 requries --with-crypto_backend=gcrypt or the flag isn't
+# recognized.
+PACKAGECONFIG[gcrypt-pbkdf2] = "--enable-gcrypt-pbkdf2"
+PACKAGECONFIG[internal-argon2] = "--enable-internal-argon2,--disable-internal-argon2"
+PACKAGECONFIG[internal-sse-argon2] = "--enable-internal-sse-argon2,--disable-internal-sse-argon2"
+PACKAGECONFIG[blkid] = "--enable-blkid,--disable-blkid,util-linux"
+PACKAGECONFIG[dev-random] = "--enable-dev-random,--disable-dev-random"
+PACKAGECONFIG[luks-adjust-xts-keysize] = "--enable-luks-adjust-xts-keysize,--disable-luks-adjust-xts-keysize"
+PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl"
+PACKAGECONFIG[gcrypt] = "--with-crypto_backend=gcrypt,,libgcrypt"
+PACKAGECONFIG[nss] = "--with-crypto_backend=nss,,nss"
+PACKAGECONFIG[kernel] = "--with-crypto_backend=kernel"
+PACKAGECONFIG[nettle] = "--with-crypto_backend=nettle,,nettle"
+PACKAGECONFIG[luks2] = "--with-default-luks-format=LUKS2,--with-default-luks-format=LUKS1"
+PACKAGECONFIG[ssh-token] = "--enable-ssh-token,--disable-ssh-token,libssh"
+
+EXTRA_OECONF = "--enable-static"
+# Building without largefile is not supported by upstream
+EXTRA_OECONF += "--enable-largefile"
+# Requires a static popt library
+EXTRA_OECONF += "--disable-static-cryptsetup"
+# There's no recipe for libargon2 yet
+EXTRA_OECONF += "--disable-libargon2"
+# Disable documentation, there is no asciidoctor-native available in OE
+EXTRA_OECONF += "--disable-asciidoc"
+# libcryptsetup default PBKDF algorithm, Argon2 memory cost (KB), parallel threads and iteration time (ms)
+LUKS2_PBKDF ?= "argon2i"
+LUKS2_MEMORYKB ?= "1048576"
+LUKS2_PARALLEL_THREADS ?= "4"
+LUKS2_ITERTIME ?= "2000"
+
+EXTRA_OECONF += "--with-luks2-pbkdf=${LUKS2_PBKDF} \
+ --with-luks2-memory-kb=${LUKS2_MEMORYKB} \
+ --with-luks2-parallel-threads=${LUKS2_PARALLEL_THREADS} \
+ --with-luks2-iter-time=${LUKS2_ITERTIME}"
+
+do_install:append() {
+ # The /usr/lib/cryptsetup directory is always created, even when ssh-token
+ # is disabled. In that case it is empty and causes a packaging error. Since
+ # there is no reason to distribute the empty directory, the easiest solution
+ # is to remove it if it is empty.
+ rmdir -p --ignore-fail-on-non-empty ${D}${libdir}/${BPN}
+}
+
+FILES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/cryptsetup.conf', '', d)}"
+
+RDEPENDS:${PN} = " \
+ libdevmapper \
+"
+
+RRECOMMENDS:${PN}:class-target = " \
+ kernel-module-aes-generic \
+ kernel-module-dm-crypt \
+ kernel-module-md5 \
+ kernel-module-cbc \
+ kernel-module-sha256-generic \
+ kernel-module-xts \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-crypto/fsverity-utils/fsverity-utils_1.5.bb b/meta-oe/recipes-crypto/fsverity-utils/fsverity-utils_1.5.bb
index c95a5b2d32..1c2c6e21e0 100644
--- a/meta-oe/recipes-crypto/fsverity-utils/fsverity-utils_1.5.bb
+++ b/meta-oe/recipes-crypto/fsverity-utils/fsverity-utils_1.5.bb
@@ -16,7 +16,7 @@ S = "${WORKDIR}/git"
DEPENDS = "openssl"
-EXTRA_OEMAKE:append = "PREFIX=${prefix} LIBDIR=${libdir} USE_SHARED_LIB=1"
+EXTRA_OEMAKE:append = " PREFIX=${prefix} LIBDIR=${libdir} USE_SHARED_LIB=1"
# We want to statically link the binary to libfsverity on native Windows
EXTRA_OEMAKE:remove:mingw32:class-nativesdk = "USE_SHARED_LIB=1"
EXTRA_OEMAKE:remove:mingw32:class-native = "USE_SHARED_LIB=1"
diff --git a/meta-oe/recipes-crypto/libkcapi/libkcapi_1.4.0.bb b/meta-oe/recipes-crypto/libkcapi/libkcapi_1.4.0.bb
deleted file mode 100644
index 3be8c76b54..0000000000
--- a/meta-oe/recipes-crypto/libkcapi/libkcapi_1.4.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Linux Kernel Crypto API User Space Interface Library"
-HOMEPAGE = "http://www.chronox.de/libkcapi.html"
-LICENSE = "BSD-3-Clause | GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a2562899bc38f1735868f0bf0c1dd1a5"
-
-S = "${WORKDIR}/git"
-SRCREV = "1429ab42d48123cc8f73b96c69a87fb9c6d8a7c9"
-SRC_URI = "git://github.com/smuellerDD/libkcapi.git;branch=master;protocol=https \
- "
-
-inherit autotools
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[testapp] = "--enable-kcapi-test,,,bash"
-PACKAGECONFIG[apps] = "--enable-kcapi-speed --enable-kcapi-hasher --enable-kcapi-rngapp --enable-kcapi-encapp --enable-kcapi-dgstapp,,,"
-PACKAGECONFIG[hasher_only] = "--enable-kcapi-hasher --disable-lib-kdf --disable-lib-sym --disable-lib-aead --disable-lib-rng,,,"
-
-do_install:append() {
- # bindir contains testapp and apps. However it is always created, even
- # when no binaries are installed (empty bin_PROGRAMS in Makefile.am),
- rmdir --ignore-fail-on-non-empty ${D}${bindir}
-
- # Remove the generated binary checksum files
- rm -f ${D}${bindir}/.*.hmac
- rm -f ${D}${libdir}/.*.hmac
-}
-
-CPPFLAGS:append:libc-musl:toolchain-clang = " -Wno-error=sign-compare"
-CPPFLAGS:remove:libc-musl:toolchain-clang = "-Wno-error=sign-conversion"
-CPPFLAGS:append:libc-musl = " -Wno-error=sign-conversion"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb b/meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb
new file mode 100644
index 0000000000..a34614dd9d
--- /dev/null
+++ b/meta-oe/recipes-crypto/libkcapi/libkcapi_1.5.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Linux Kernel Crypto API User Space Interface Library"
+HOMEPAGE = "https://www.chronox.de/libkcapi/index.html"
+LICENSE = "BSD-3-Clause | GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3d8a091d797491204567185a6efce70f"
+
+S = "${WORKDIR}/git"
+SRCREV = "fc937358e71253a6efaa3ba74885364976b040ea"
+SRC_URI = "git://github.com/smuellerDD/libkcapi.git;branch=master;protocol=https \
+ "
+
+inherit autotools
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[testapp] = "--enable-kcapi-test,,,bash"
+PACKAGECONFIG[apps] = "--enable-kcapi-speed --enable-kcapi-hasher --enable-kcapi-rngapp --enable-kcapi-encapp --enable-kcapi-dgstapp,,,"
+PACKAGECONFIG[hasher_only] = "--enable-kcapi-hasher --disable-lib-kdf --disable-lib-sym --disable-lib-aead --disable-lib-rng,,,"
+
+do_install:append() {
+ # bindir contains testapp and apps. However it is always created, even
+ # when no binaries are installed (empty bin_PROGRAMS in Makefile.am),
+ rmdir --ignore-fail-on-non-empty ${D}${bindir}
+
+ # Remove the generated binary checksum files
+ rm -f ${D}${bindir}/.*.hmac
+ rm -f ${D}${libdir}/.*.hmac
+}
+
+CPPFLAGS:append:libc-musl:toolchain-clang = " -Wno-error=sign-compare"
+CPPFLAGS:remove:libc-musl:toolchain-clang = "-Wno-error=sign-conversion"
+CPPFLAGS:append:libc-musl = " -Wno-error=sign-conversion"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb b/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
index a3d09c7cbd..cfa056d71d 100644
--- a/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
+++ b/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
@@ -12,7 +12,7 @@ SRC_URI[sha256sum] = "e4eb6c074bbab168ac47b947c195ff8cef9d51a211cdd18ca9c9ef34d2
UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/mcrypt/files/Libmcrypt/"
UPSTREAM_CHECK_REGEX = "Libmcrypt/(?P<pver>\d+(\.\d+)+)/"
-inherit autotools-brokensep gettext binconfig
+inherit autotools-brokensep gettext binconfig multilib_script
CFLAGS += "-Wno-error=implicit-int"
@@ -28,3 +28,5 @@ do_configure() {
}
CLEANBROKEN = "1"
+
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/libmcrypt-config"
diff --git a/meta-oe/recipes-crypto/libsodium/libsodium/0001-fix-aarch64-Move-target-pragma-after-arm_neon.h-incl.patch b/meta-oe/recipes-crypto/libsodium/libsodium/0001-fix-aarch64-Move-target-pragma-after-arm_neon.h-incl.patch
new file mode 100644
index 0000000000..7a6fae7997
--- /dev/null
+++ b/meta-oe/recipes-crypto/libsodium/libsodium/0001-fix-aarch64-Move-target-pragma-after-arm_neon.h-incl.patch
@@ -0,0 +1,49 @@
+From d3253310f7c0fc0f1aad6864e3b57958ea1bb9c5 Mon Sep 17 00:00:00 2001
+From: tux3 <barrdetwix@gmail.com>
+Date: Mon, 16 Oct 2023 16:42:04 +0200
+Subject: [PATCH] fix(aarch64): Move target #pragma after arm_neon.h include
+
+Fix per https://github.com/android/ndk/issues/1945
+
+If the pragma is done before the header include,
+in NDK 26 the attribute may apply to the functions in arm_neon.h
+
+Upstream-Status: Backport [https://github.com/jedisct1/libsodium/pull/1321]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c b/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c
+index 0a5a128..aa76f5c 100644
+--- a/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c
++++ b/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c
+@@ -19,12 +19,6 @@
+ #define __vectorcall
+ #endif
+
+-#ifdef __clang__
+-#pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
+-#elif defined(__GNUC__)
+-#pragma GCC target("+simd+crypto")
+-#endif
+-
+ #ifndef __ARM_FEATURE_CRYPTO
+ #define __ARM_FEATURE_CRYPTO 1
+ #endif
+@@ -34,6 +28,12 @@
+
+ #include <arm_neon.h>
+
++#ifdef __clang__
++#pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
++#elif defined(__GNUC__)
++#pragma GCC target("+simd+crypto")
++#endif
++
+ #define ABYTES crypto_aead_aes256gcm_ABYTES
+ #define NPUBBYTES crypto_aead_aes256gcm_NPUBBYTES
+ #define KEYBYTES crypto_aead_aes256gcm_KEYBYTES
+--
+2.42.1
+
diff --git a/meta-oe/recipes-crypto/libsodium/libsodium_1.0.18.bb b/meta-oe/recipes-crypto/libsodium/libsodium_1.0.18.bb
deleted file mode 100644
index 53b3ddc26f..0000000000
--- a/meta-oe/recipes-crypto/libsodium/libsodium_1.0.18.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "The Sodium crypto library"
-HOMEPAGE = "http://libsodium.org/"
-BUGTRACKER = "https://github.com/jedisct1/libsodium/issues"
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=47203c753972e855179dfffe15188bee"
-
-SRC_URI = "https://download.libsodium.org/libsodium/releases/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "3ca9ebc13b6b4735acae0a6a4c4f9a95"
-SRC_URI[sha256sum] = "6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1"
-
-inherit autotools
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-crypto/libsodium/libsodium_1.0.19.bb b/meta-oe/recipes-crypto/libsodium/libsodium_1.0.19.bb
new file mode 100644
index 0000000000..2e678f3f0f
--- /dev/null
+++ b/meta-oe/recipes-crypto/libsodium/libsodium_1.0.19.bb
@@ -0,0 +1,14 @@
+SUMMARY = "The Sodium crypto library"
+HOMEPAGE = "http://libsodium.org/"
+BUGTRACKER = "https://github.com/jedisct1/libsodium/issues"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=49ce3b426e6a002e23a1387248e6dbe9"
+
+SRC_URI = "https://download.libsodium.org/libsodium/releases/${BPN}-${PV}.tar.gz \
+ file://0001-fix-aarch64-Move-target-pragma-after-arm_neon.h-incl.patch"
+SRC_URI[sha256sum] = "018d79fe0a045cca07331d37bd0cb57b2e838c51bc48fd837a1472e50068bbea"
+
+inherit autotools
+
+S = "${WORKDIR}/libsodium-stable"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt/CVE-2019-17362.patch b/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt/CVE-2019-17362.patch
new file mode 100644
index 0000000000..8b7348a11f
--- /dev/null
+++ b/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt/CVE-2019-17362.patch
@@ -0,0 +1,25 @@
+From 25c26a3b7a9ad8192ccc923e15cf62bf0108ef94 Mon Sep 17 00:00:00 2001
+From: werew <werew@ret2libc.com>
+Date: Thu, 3 Oct 2019 19:57:10 +0200
+Subject: [PATCH] Fixes #507
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+Upstream-Status: Backport [https://github.com/libtom/libtomcrypt/commit/64d1153e5a515740ab56f39c46baf4cf6991a9d3]
+
+ src/pk/asn1/der/utf8/der_decode_utf8_string.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/pk/asn1/der/utf8/der_decode_utf8_string.c b/src/pk/asn1/der/utf8/der_decode_utf8_string.c
+index 94555b99f..d3ed82bea 100644
+--- a/src/pk/asn1/der/utf8/der_decode_utf8_string.c
++++ b/src/pk/asn1/der/utf8/der_decode_utf8_string.c
+@@ -65,7 +65,7 @@ int der_decode_utf8_string(const unsigned char *in, unsigned long inlen,
+ /* count number of bytes */
+ for (z = 0; (tmp & 0x80) && (z <= 4); z++, tmp = (tmp << 1) & 0xFF);
+
+- if (z > 4 || (x + (z - 1) > inlen)) {
++ if (z == 1 || z > 4 || (x + (z - 1) > inlen)) {
+ return CRYPT_INVALID_PACKET;
+ }
+
diff --git a/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt_1.18.2.bb b/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt_1.18.2.bb
index 357fd0ab8d..5479007d92 100644
--- a/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt_1.18.2.bb
+++ b/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt_1.18.2.bb
@@ -1,21 +1,41 @@
SUMMARY = "LibTomCrypt is a public domain open source cryptographic toolkit"
HOMEPAGE = "https://www.libtom.net/LibTomCrypt"
SECTION = "libs"
+# Unlicense isn't very accurate for this revision, it was WTFPL in 0.18.0-rc1:
+# https://github.com/libtom/libtomcrypt/commit/77e31fb6a980212e90b9a50f116dc5a7bd91e527
+# then updated to dual license PD and WTFPL also in 0.18.0-rc1:
+# https://github.com/libtom/libtomcrypt/commit/412b2ee1fccc3a0df58f93f372c90d6d0f93bfc9
+# and then updated again to Unlicense after the 0.18.2 tag (it's only in develop branch):
+# https://github.com/libtom/libtomcrypt/commit/3630bee6fc0f73dd9c7923fd43f8ae15a2c0fb70
+# but keep using Unlicense to avoid triggering people with WTFPL license:
+# https://groups.google.com/g/libtom/c/17Z7xkECULM
+# and this comment can be removed next time libtomcrypt is updated
LICENSE = "Unlicense"
LIC_FILES_CHKSUM = "file://LICENSE;md5=71baacc459522324ef3e2b9e052e8180"
-DEPENDS += "libtool-cross"
+DEPENDS = "libtool-cross"
-SRC_URI = "git://github.com/libtom/libtomcrypt.git;protocol=https;branch=master"
+SRC_URI = "git://github.com/libtom/libtomcrypt.git;protocol=https;branch=master \
+ file://CVE-2019-17362.patch \
+"
SRCREV = "7e7eb695d581782f04b24dc444cbfde86af59853"
S = "${WORKDIR}/git"
+inherit pkgconfig
+
+PACKAGECONFIG ??= "ltm"
+PACKAGECONFIG[ltm] = ",,libtommath"
+
+CFLAGS += "${@bb.utils.contains('PACKAGECONFIG', 'ltm', '-DUSE_LTM -DLTM_DESC', '', d)}"
+
+EXTRA_OEMAKE = "'PREFIX=${prefix}' 'DESTDIR=${D}' 'LIBPATH=${libdir}' 'CFLAGS=${CFLAGS}'"
+
do_compile() {
oe_runmake -f makefile.shared
}
do_install() {
- oe_runmake -f makefile.shared 'PREFIX=${prefix}' 'DESTDIR=${D}' install
+ oe_runmake -f makefile.shared install
}
diff --git a/meta-oe/recipes-crypto/monocypher/monocypher_4.0.2.bb b/meta-oe/recipes-crypto/monocypher/monocypher_4.0.2.bb
new file mode 100644
index 0000000000..813c6ec4c8
--- /dev/null
+++ b/meta-oe/recipes-crypto/monocypher/monocypher_4.0.2.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Monocypher is an easy-to-use crypto library"
+DESCRIPTION = "Monocypher is an easy to use, easy to deploy, \
+auditable crypto library written in portable C. It approaches the size of TweetNaCl and the speed of libsodium."
+HOMEPAGE = "https://monocypher.org/"
+SECTION = "libs"
+LICENSE = "BSD-2-Clause | CC0-1.0"
+LIC_FILES_CHKSUM = "file://LICENCE.md;md5=ff30a1c41dfd9e6fa559a9e45ee98302"
+
+SRC_URI = "https://monocypher.org/download/${BPN}-${PV}.tar.gz"
+SRC_URI[sha512sum] = "bf275d4c53ff94af6cdc723a4e002e9f080f4d1436c86c76bb37870b34807f1d7b32331d8ff8a1aeb369e946f3769021e03e63efac25b82efc5abf54dc084714"
+
+MIRRORS = "https://.*/.* https://github.com/LoupVaillant/Monocypher/releases/download/${PV}/${BPN}-${PV}.tar.gz "
+
+S = "${WORKDIR}/${BPN}-${PV}"
+
+CFLAGS += "-pedantic -Wall -Wextra -O3"
+EXTRA_OEMAKE = "'PREFIX=${prefix}' 'DESTDIR=${D}' 'CFLAGS=${CFLAGS}' 'LIBDIR=${libdir}'"
+
+do_compile() {
+ oe_runmake library
+}
+
+do_install() {
+ oe_runmake install-lib
+ oe_runmake install-pc
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.29.0.bb b/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.29.0.bb
deleted file mode 100644
index a34a4b9140..0000000000
--- a/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.29.0.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "A library for using PKCS"
-DESCRIPTION = "pkcs11-helper is a library that simplifies the interaction with PKCS \
-providers for end-user applications using a simple API and optional OpenSSL \
-engine. The library allows using multiple PKCS enumerating available token \
-certificates, or selecting a certificate directly by serialized id, handling \
-card removal and card insert events, handling card ie-insert to a different \
-slot, supporting session expiration and much more all using a simple API."
-
-HOMEPAGE = "https://github.com/OpenSC/pkcs11-helper"
-SECTION = "Development/Libraries"
-
-LICENSE = "GPL-2.0-only & BSD-3-Clause"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=30f10d22cfb1ba98ccd714a41ad3311a \
- file://COPYING.GPL;md5=8a71d0475d08eee76d8b6d0c6dbec543 \
- file://COPYING.BSD;md5=66b7a37c3c10483c1fd86007726104d7 \
-"
-SRC_URI = "git://github.com/OpenSC/${BPN}.git;branch=master;protocol=https"
-
-S = "${WORKDIR}/git"
-# v1.27
-SRCREV = "2306f896c2f3c147792300155316fd65825aabad"
-
-UPSTREAM_CHECK_GITTAGREGEX = "pkcs11-helper-(?P<pver>\d+(\.\d+)+)"
-
-DEPENDS = "zlib nettle gnutls gmp openssl nss nspr"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--disable-static"
diff --git a/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.30.0.bb b/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.30.0.bb
new file mode 100644
index 0000000000..d3922cf79e
--- /dev/null
+++ b/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.30.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "A library for using PKCS"
+DESCRIPTION = "pkcs11-helper is a library that simplifies the interaction with PKCS \
+providers for end-user applications using a simple API and optional OpenSSL \
+engine. The library allows using multiple PKCS enumerating available token \
+certificates, or selecting a certificate directly by serialized id, handling \
+card removal and card insert events, handling card ie-insert to a different \
+slot, supporting session expiration and much more all using a simple API."
+
+HOMEPAGE = "https://github.com/OpenSC/pkcs11-helper"
+SECTION = "Development/Libraries"
+
+LICENSE = "GPL-2.0-only & BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=30f10d22cfb1ba98ccd714a41ad3311a \
+ file://COPYING.GPL;md5=8a71d0475d08eee76d8b6d0c6dbec543 \
+ file://COPYING.BSD;md5=66b7a37c3c10483c1fd86007726104d7 \
+"
+SRC_URI = "git://github.com/OpenSC/${BPN}.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+# master
+SRCREV = "8bed16034f629a0361fa8ff89deed2b43dc45d8b"
+PV .= "+1.30.0+git"
+
+UPSTREAM_CHECK_GITTAGREGEX = "pkcs11-helper-(?P<pver>\d+(\.\d+)+)"
+
+DEPENDS = "zlib nettle gnutls gmp openssl nss nspr"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-static"
diff --git a/meta-oe/recipes-dbs/influxdb/influxdb/0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch b/meta-oe/recipes-dbs/influxdb/influxdb/0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch
index b8d355706c..b05fd3666b 100644
--- a/meta-oe/recipes-dbs/influxdb/influxdb/0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch
+++ b/meta-oe/recipes-dbs/influxdb/influxdb/0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch
@@ -3,7 +3,7 @@ From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 11 Jan 2021 15:16:57 -0800
Subject: [PATCH] patch term module for mips ispeed/ospeed termios absense
-Upstream-Status: OE-Specific [needed on mips]
+Upstream-Status: Inappropriate [OE-Specific needed on mips]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
diff --git a/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb b/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb
index 50995c09b6..5301071516 100644
--- a/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb
+++ b/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb
@@ -27,6 +27,8 @@ SRCREV = "688e697c51fd5353725da078555adbeff0363d01"
inherit go-mod pkgconfig systemd update-rc.d useradd
+export GOPROXY = "https://proxy.golang.org,direct"
+
# Workaround for network access issue during compile step
# this needs to be fixed in the recipes buildsystem to move
# this such that it can be accomplished during do_fetch task
@@ -45,7 +47,7 @@ do_install:prepend() {
do_install:append() {
install -d ${D}${sysconfdir}/influxdb
install -m 0644 ${WORKDIR}/influxdb.conf ${D}${sysconfdir}/influxdb
- chown -R root.influxdb ${D}${sysconfdir}/influxdb
+ chown -R root:influxdb ${D}${sysconfdir}/influxdb
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/influxdb ${D}${sysconfdir}/init.d/influxdb
@@ -58,11 +60,15 @@ do_install:append() {
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ] ; then
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${S}/src/${GO_IMPORT}/scripts/influxdb.service ${D}${systemd_system_unitdir}/influxdb.service
+ install -d ${D}${libdir}/influxdb/scripts
+ install -m 0755 ${S}/src/${GO_IMPORT}/scripts/influxd-systemd-start.sh ${D}${libdir}/influxdb/scripts/influxd-systemd-start.sh
fi
# TODO chown
}
+FILES:${PN} += "${libdir}/influxdb/scripts/influxd-systemd-start.sh"
+
INITSCRIPT_PACKAGES = "${PN}"
INITSCRIPT_NAME = "influxdb"
INITSCRIPT_PARAMS = "defaults"
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/0001-CMakeLists.txt-fix-googletest-related-options.patch b/meta-oe/recipes-dbs/leveldb/leveldb/0001-CMakeLists.txt-fix-googletest-related-options.patch
new file mode 100644
index 0000000000..b0bfb8bf16
--- /dev/null
+++ b/meta-oe/recipes-dbs/leveldb/leveldb/0001-CMakeLists.txt-fix-googletest-related-options.patch
@@ -0,0 +1,55 @@
+From 77da477840f89da7ced29da315de77571e8f190e Mon Sep 17 00:00:00 2001
+From: Martin Jansa <martin.jansa@gmail.com>
+Date: Fri, 20 Oct 2023 22:57:48 +0200
+Subject: [PATCH] CMakeLists.txt: fix googletest related options
+
+* https://cmake.org/cmake/help/book/mastering-cmake/chapter/Writing%20CMakeLists%20Files.html
+ says that CMake options are case-sensitive and I don't see lower-case version in
+ currently used googletest submodules and gtest is indeed installed with leveldb
+
+* install_gmock option I don't see at all, so I've kept it as is, INSTALL_GTEST, BUILD_GMOCK
+ do exist as upper-case
+
+$ grep -Ri install_.*mock .
+./CMakeLists.txt: set(install_gmock OFF)
+./third_party/googletest/googlemock/CMakeLists.txt:install_project(gmock gmock_main)
+$ grep -Ri build_gmock .
+./CMakeLists.txt: set(BUILD_GMOCK ON)
+./third_party/googletest/googletest/README.md:cmake .. -DBUILD_GMOCK=OFF
+./third_party/googletest/CMakeLists.txt:option(BUILD_GMOCK "Builds the googlemock subproject" ON)
+./third_party/googletest/CMakeLists.txt:if(BUILD_GMOCK)
+$ grep -Ri install_gtest .
+./CMakeLists.txt: set(INSTALL_GTEST OFF)
+./third_party/googletest/googletest/cmake/internal_utils.cmake: if(INSTALL_GTEST)
+./third_party/googletest/googletest/CMakeLists.txt:if (INSTALL_GTEST)
+./third_party/googletest/CMakeLists.txt:option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ON)
+
+* also use CACHE and FORCE as sugested in:
+ https://cmake.org/cmake/help/latest/command/set.html
+ https://stackoverflow.com/questions/20239334/cmake-set-subdirectory-options
+ for the value to correctly propagate into third_party/googletest subdirectory
+
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+Upstream-Status: Submitted [https://github.com/google/leveldb/pull/1152]
+
+ CMakeLists.txt | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fda9e01..f8a2629 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -295,9 +295,9 @@ if(LEVELDB_BUILD_TESTS)
+
+ # Prevent overriding the parent project's compiler/linker settings on Windows.
+ set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+- set(install_gtest OFF)
+- set(install_gmock OFF)
+- set(build_gmock ON)
++ set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
++ set(install_gmock OFF CACHE BOOL "" FORCE)
++ set(BUILD_GMOCK ON CACHE BOOL "" FORCE)
+
+ # This project is tested using GoogleTest.
+ add_subdirectory("third_party/googletest")
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/0001-Fix-printing-64-bit-integer-types.patch b/meta-oe/recipes-dbs/leveldb/leveldb/0001-Fix-printing-64-bit-integer-types.patch
new file mode 100644
index 0000000000..b9f45e773d
--- /dev/null
+++ b/meta-oe/recipes-dbs/leveldb/leveldb/0001-Fix-printing-64-bit-integer-types.patch
@@ -0,0 +1,43 @@
+From 1ccdb7513a7a0f24b8ce3b6766e52e690874bc64 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 17 Oct 2023 19:08:12 -0700
+Subject: [PATCH] Fix printing 64-bit integer types
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ db/db_impl.cc | 5 +++--
+ db/version_edit.h | 1 +
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+--- a/db/db_impl.cc
++++ b/db/db_impl.cc
+@@ -5,6 +5,7 @@
+ #include "db/db_impl.h"
+
+ #include <algorithm>
++#include <cinttypes>
+ #include <atomic>
+ #include <cstdint>
+ #include <cstdio>
+@@ -520,8 +521,8 @@ Status DBImpl::WriteLevel0Table(MemTable
+ mutex_.Lock();
+ }
+
+- Log(options_.info_log, "Level-0 table #%llu: %lld bytes %s",
+- (unsigned long long)meta.number, (unsigned long long)meta.file_size,
++ Log(options_.info_log, "Level-0 table #%" PRIu64 " : %" PRIu64 " bytes %s",
++ meta.number, meta.file_size,
+ s.ToString().c_str());
+ delete iter;
+ pending_outputs_.erase(meta.number);
+--- a/db/version_edit.h
++++ b/db/version_edit.h
+@@ -5,6 +5,7 @@
+ #ifndef STORAGE_LEVELDB_DB_VERSION_EDIT_H_
+ #define STORAGE_LEVELDB_DB_VERSION_EDIT_H_
+
++#include <cstdint>
+ #include <set>
+ #include <utility>
+ #include <vector>
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb_1.22.bb b/meta-oe/recipes-dbs/leveldb/leveldb_1.22.bb
deleted file mode 100644
index 6afc45ab7e..0000000000
--- a/meta-oe/recipes-dbs/leveldb/leveldb_1.22.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "LevelDB is a fast key-value storage library"
-DESCRIPTION = "LevelDB is a fast key-value storage library that provides an ordered mapping from string keys to string values"
-HOMEPAGE = "https://github.com/google/leveldb"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=92d1b128950b11ba8495b64938fc164d"
-
-SRC_URI = "git://github.com/google/${BPN}.git;branch=main;protocol=https \
- file://run-ptest"
-
-SRCREV = "78b39d68c15ba020c0d60a3906fb66dbf1697595"
-S = "${WORKDIR}/git"
-
-inherit cmake ptest
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[benchmarks] = "-DLEVELDB_BUILD_BENCHMARKS=ON,-DLEVELDB_BUILD_BENCHMARKS=OFF,sqlite"
-PACKAGECONFIG[snappy] = ",,snappy"
-PACKAGECONFIG[tcmalloc] = ",,gperftools"
-
-EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=ON -DCMAKE_SKIP_RPATH=ON \
- -DLEVELDB_BUILD_TESTS=${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'ON', 'OFF', d)}"
-
-do_install:append() {
- install -D -m 0755 ${B}/leveldbutil ${D}${bindir}/leveldbutil
-}
-
-do_install_ptest() {
- install -m 0755 ${B}/*_test ${D}${PTEST_PATH}
-}
-
-# Do not try to build lib32-leveldb for mips64, but allow libn32-leveldb.
-#
-COMPATIBLE_HOST:mipsarcho32:pn-lib32-leveldb = "null"
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb b/meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb
new file mode 100644
index 0000000000..60b486df78
--- /dev/null
+++ b/meta-oe/recipes-dbs/leveldb/leveldb_1.23.bb
@@ -0,0 +1,35 @@
+SUMMARY = "LevelDB is a fast key-value storage library"
+DESCRIPTION = "LevelDB is a fast key-value storage library that provides an ordered mapping from string keys to string values"
+HOMEPAGE = "https://github.com/google/leveldb"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=92d1b128950b11ba8495b64938fc164d"
+
+SRC_URI = "gitsm://github.com/google/${BPN}.git;branch=main;protocol=https \
+ file://0001-CMakeLists.txt-fix-googletest-related-options.patch \
+ file://0001-Fix-printing-64-bit-integer-types.patch \
+ file://run-ptest \
+"
+
+SRCREV = "068d5ee1a3ac40dabd00d211d5013af44be55bea"
+S = "${WORKDIR}/git"
+
+inherit cmake ptest
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[benchmarks] = "-DLEVELDB_BUILD_BENCHMARKS=ON,-DLEVELDB_BUILD_BENCHMARKS=OFF,sqlite"
+PACKAGECONFIG[snappy] = ",,snappy"
+PACKAGECONFIG[tcmalloc] = ",,gperftools"
+
+EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=ON -DCMAKE_SKIP_RPATH=ON \
+ -DLEVELDB_BUILD_TESTS=${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'ON', 'OFF', d)}"
+
+do_install:append() {
+ install -D -m 0755 ${B}/leveldbutil ${D}${bindir}/leveldbutil
+}
+
+do_install_ptest() {
+ install -m 0755 ${B}/*_test ${D}${PTEST_PATH}
+}
+
+# Do not try to build lib32-leveldb for mips64, but allow libn32-leveldb.
+#
+COMPATIBLE_HOST:mipsarcho32:pn-lib32-leveldb = "null"
diff --git a/meta-oe/recipes-dbs/libdbi/libdbi_0.9.0.bb b/meta-oe/recipes-dbs/libdbi/libdbi_0.9.0.bb
index 24eae28501..7322916499 100644
--- a/meta-oe/recipes-dbs/libdbi/libdbi_0.9.0.bb
+++ b/meta-oe/recipes-dbs/libdbi/libdbi_0.9.0.bb
@@ -1,6 +1,5 @@
require ${PN}.inc
-PR = "${INC_PR}.0"
SRC_URI[md5sum] = "05e2ceeac4bc85fbe40de8b4b22d9ab3"
SRC_URI[sha256sum] = "dafb6cdca524c628df832b6dd0bf8fabceb103248edb21762c02d3068fca4503"
diff --git a/meta-oe/recipes-dbs/lmdb/files/0001-Makefile-use-libprefix-instead-of-libdir.patch b/meta-oe/recipes-dbs/lmdb/files/0001-Makefile-use-libprefix-instead-of-libdir.patch
index 2cc98e6d62..3017bcede1 100644
--- a/meta-oe/recipes-dbs/lmdb/files/0001-Makefile-use-libprefix-instead-of-libdir.patch
+++ b/meta-oe/recipes-dbs/lmdb/files/0001-Makefile-use-libprefix-instead-of-libdir.patch
@@ -10,6 +10,8 @@ to be configurable.
Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
---
+Upstream-Status: Pending
+
libraries/liblmdb/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-dbs/lmdb/files/0001-make-set-soname-on-liblmdb.patch b/meta-oe/recipes-dbs/lmdb/files/0001-make-set-soname-on-liblmdb.patch
index 312809d1d2..3dde46573f 100644
--- a/meta-oe/recipes-dbs/lmdb/files/0001-make-set-soname-on-liblmdb.patch
+++ b/meta-oe/recipes-dbs/lmdb/files/0001-make-set-soname-on-liblmdb.patch
@@ -4,6 +4,8 @@ Date: Thu, 25 Aug 2022 17:22:20 -0400
Subject: [PATCH] make: set soname on liblmdb
---
+Upstream-Status: Pending
+
libraries/liblmdb/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-dbs/lmdb/lmdb_0.9.29.bb b/meta-oe/recipes-dbs/lmdb/lmdb_0.9.29.bb
deleted file mode 100644
index a76d388d70..0000000000
--- a/meta-oe/recipes-dbs/lmdb/lmdb_0.9.29.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-FileCopyrightText: 2017-2019 Volker Krause <vkrause@kde.org>
-# SPDX-FileCopyrightText: 2019 Hannah Kiekens <hannahkiekens@gmail.com>
-#
-# SPDX-License-Identifier: MIT
-
-SUMMARY = "Lightning Memory-Mapped Database (LMDB)"
-HOMEPAGE = "https://symas.com/lightning-memory-mapped-database/"
-LICENSE = "OLDAP-2.8"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972"
-
-SRC_URI = "git://github.com/LMDB/lmdb.git;nobranch=1;protocol=https \
- file://run-ptest \
- file://0001-Makefile-use-libprefix-instead-of-libdir.patch \
- file://0001-make-set-soname-on-liblmdb.patch;patchdir=../.. \
- "
-
-SRCREV = "8ad7be2510414b9506ec9f9e24f24d04d9b04a1a"
-
-inherit ptest
-
-S = "${WORKDIR}/git/libraries/liblmdb"
-
-do_compile() {
- oe_runmake CC="${CC}" SOEXT=".so.${PV}" LDFLAGS="${LDFLAGS}"
-}
-
-do_install() {
- oe_runmake CC="${CC}" DESTDIR="${D}" prefix="${prefix}" libprefix="${libdir}" manprefix="${mandir}" SOEXT=".so.${PV}" LDFLAGS="${LDFLAGS}" install
- cd ${D}${libdir}
- ln -s liblmdb.so.${PV} liblmdb.so
- rm liblmdb.a
-}
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- for test in mtest mtest2 mtest3 mtest4 mtest5 mdb_stat; do
- install -m 755 ${S}/$test ${D}${PTEST_PATH}/tests
- done
-}
diff --git a/meta-oe/recipes-dbs/lmdb/lmdb_0.9.31.bb b/meta-oe/recipes-dbs/lmdb/lmdb_0.9.31.bb
new file mode 100644
index 0000000000..b2f1920f6b
--- /dev/null
+++ b/meta-oe/recipes-dbs/lmdb/lmdb_0.9.31.bb
@@ -0,0 +1,39 @@
+# SPDX-FileCopyrightText: 2017-2019 Volker Krause <vkrause@kde.org>
+# SPDX-FileCopyrightText: 2019 Hannah Kiekens <hannahkiekens@gmail.com>
+#
+# SPDX-License-Identifier: MIT
+
+SUMMARY = "Lightning Memory-Mapped Database (LMDB)"
+HOMEPAGE = "https://symas.com/lightning-memory-mapped-database/"
+LICENSE = "OLDAP-2.8"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972"
+
+SRC_URI = "git://github.com/LMDB/lmdb.git;nobranch=1;protocol=https \
+ file://run-ptest \
+ file://0001-Makefile-use-libprefix-instead-of-libdir.patch \
+ file://0001-make-set-soname-on-liblmdb.patch;patchdir=../.. \
+ "
+
+SRCREV = "ce201088de95d26fc0da36ba805bf2ddc2ba74ff"
+
+inherit ptest
+
+S = "${WORKDIR}/git/libraries/liblmdb"
+
+do_compile() {
+ oe_runmake CC="${CC}" SOEXT=".so.${PV}" LDFLAGS="${LDFLAGS}" XCFLAGS="${CFLAGS}"
+}
+
+do_install() {
+ oe_runmake CC="${CC}" DESTDIR="${D}" prefix="${prefix}" libprefix="${libdir}" manprefix="${mandir}" SOEXT=".so.${PV}" LDFLAGS="${LDFLAGS}" XCFLAGS="${CFLAGS}" install
+ cd ${D}${libdir}
+ ln -s liblmdb.so.${PV} liblmdb.so
+ rm liblmdb.a
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ for test in mtest mtest2 mtest3 mtest4 mtest5 mdb_stat; do
+ install -m 755 ${S}/$test ${D}${PTEST_PATH}/tests
+ done
+}
diff --git a/meta-oe/recipes-dbs/mysql/mariadb-native_10.11.7.bb b/meta-oe/recipes-dbs/mysql/mariadb-native_10.11.7.bb
new file mode 100644
index 0000000000..578357b480
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb-native_10.11.7.bb
@@ -0,0 +1,23 @@
+require mariadb.inc
+inherit native
+
+PROVIDES += "mysql5-native"
+DEPENDS = "ncurses-native zlib-native bison-native libpcre2-native \
+gnutls-native fmt-native \
+"
+
+RDEPENDS:${PN} = ""
+PACKAGES = ""
+EXTRA_OEMAKE = ""
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+
+ install -d ${D}${bindir}
+ install -m 0755 sql/gen_lex_hash ${D}${bindir}/
+ install -m 0755 sql/gen_lex_token ${D}${bindir}/
+ install -m 0755 extra/comp_err ${D}${bindir}/
+ install -m 0755 scripts/comp_sql ${D}${bindir}/
+ install -m 0755 strings/uca-dump ${D}${bindir}/
+}
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb-native_10.8.3.bb b/meta-oe/recipes-dbs/mysql/mariadb-native_10.8.3.bb
deleted file mode 100644
index e38726d3f9..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb-native_10.8.3.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require mariadb.inc
-inherit native
-
-PROVIDES += "mysql5-native"
-DEPENDS = "ncurses-native zlib-native bison-native libpcre2-native"
-
-RDEPENDS:${PN} = ""
-PACKAGES = ""
-EXTRA_OEMAKE = ""
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install
-
- install -d ${D}${bindir}
- install -m 0755 sql/gen_lex_hash ${D}${bindir}/
- install -m 0755 sql/gen_lex_token ${D}${bindir}/
- install -m 0755 extra/comp_err ${D}${bindir}/
- install -m 0755 scripts/comp_sql ${D}${bindir}/
-}
-
diff --git a/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-oe/recipes-dbs/mysql/mariadb.inc
index 7bd4ac0ba3..33da32fb28 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb.inc
+++ b/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -19,10 +19,15 @@ SRC_URI = "https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \
file://ssize_t.patch \
file://mm_malloc.patch \
file://sys_futex.patch \
+ file://cross-compiling.patch \
+ file://0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch \
+ file://lfs64.patch \
+ file://0001-Add-missing-includes-cstdint-and-cstdio.patch \
+ file://0001-Remove-the-compile_time_assert-lines.patch \
+ file://0001-MDEV-33439-Fix-build-with-libxml2-2.12.patch \
"
SRC_URI:append:libc-musl = " file://ppc-remove-glibc-dep.patch"
-
-SRC_URI[sha256sum] = "887eadc55176ac1ead1fccfc89ade4b5990ef192745ad4dcd879acb41c050892"
+SRC_URI[sha256sum] = "5239a245ed90517e96396605cd01ccd8f73cd7442d1b3076b6ffe258110e5157"
UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases"
@@ -30,7 +35,7 @@ S = "${WORKDIR}/mariadb-${PV}"
BINCONFIG_GLOB = "mysql_config"
-inherit cmake gettext binconfig update-rc.d useradd systemd multilib_script pkgconfig
+inherit cmake gettext binconfig update-rc.d systemd multilib_script pkgconfig
MULTILIB_SCRIPTS = "${PN}-server:${bindir}/mariadbd-safe \
${PN}-setupdb:${bindir}/mariadb-install-db"
@@ -39,10 +44,6 @@ INITSCRIPT_PACKAGES = "${PN}-server ${PN}-setupdb"
INITSCRIPT_NAME:${PN}-server = "mysqld"
INITSCRIPT_PARAMS:${PN}-server ?= "start 45 5 . stop 45 0 6 1 ."
-USERADD_PACKAGES = "${PN}-setupdb"
-USERADD_PARAM:${PN}-setupdb = "--system --home-dir /var/mysql -g mysql --shell /bin/false mysql"
-GROUPADD_PARAM:${PN}-setupdb = "--system mysql"
-
INITSCRIPT_NAME:${PN}-setupdb = "install_db"
INITSCRIPT_PARAMS:${PN}-setupdb ?= "defaults 44 44"
@@ -61,8 +62,10 @@ FILES:${PN}-setupdb = "${sysconfdir}/init.d/install_db \
"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} lz4 openssl"
+EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'"
+
PACKAGECONFIG:class-native = ""
-PACKAGECONFIG[pam] = ",-DWITHOUT_AUTH_PAM=TRUE,libpam"
+PACKAGECONFIG[pam] = "-DPLUGIN_AUTH_PAM=YES,-DPLUGIN_AUTH_PAM=NO,libpam"
PACKAGECONFIG[valgrind] = "-DWITH_VALGRIND=TRUE,-DWITH_VALGRIND=FALSE,valgrind"
PACKAGECONFIG[krb5] = ", ,krb5"
PACKAGECONFIG[lz4] = ", ,lz4"
@@ -94,9 +97,10 @@ EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \
-DINSTALL_SYSCONFDIR:PATH=${sysconfdir} \
-DMYSQL_DATADIR:PATH=/var/mysql \
-DCAT_EXECUTABLE=`which cat` \
+ -DSTACK_DIRECTION=1 \
+ -DHAVE_SYSTEM_LIBFMT_EXITCODE=0 \
-DCMAKE_AR:FILEPATH=${AR}"
-EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper "
# With Ninja it fails with:
# make: *** No rule to make target `install'. Stop.
@@ -105,6 +109,11 @@ OECMAKE_GENERATOR = "Unix Makefiles"
ARM_INSTRUCTION_SET:armv4 = "arm"
ARM_INSTRUCTION_SET:armv5 = "arm"
+do_compile:prepend:class-target () {
+ # remove the buildpath
+ sed -i -e "s:CMAKE_SYSROOT:CMAKE_SYSROOT_PLACE_HOLDER:g" ${S}/libmariadb/mariadb_config/mariadb_config.c.in
+}
+
do_configure:append() {
# handle distros with different values of ${libexecdir}
libexecdir2=`echo ${libexecdir} | sed -e 's+/usr/++g'`
@@ -120,18 +129,12 @@ do_generate_toolchain_file:append:class-native () {
sed -i "/set( CMAKE_SYSTEM_PROCESSOR/d" ${WORKDIR}/toolchain.cmake
}
-do_configure:prepend:class-target () {
- # Write out a qemu wrapper that will be used by cmake
- # so that it can run target helper binaries through that.
- qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
- cat > ${WORKDIR}/qemuwrapper << EOF
-#!/bin/sh
-$qemu_binary "\$@"
-EOF
- chmod +x ${WORKDIR}/qemuwrapper
-}
do_compile:prepend:class-target () {
+ # These need to be in-tree or make will think they need to be built,
+ # and since we're cross-compiling that is disabled
+ cp ${STAGING_BINDIR_NATIVE}/comp_err ${S}/extra
+ cp ${STAGING_BINDIR_NATIVE}/comp_sql ${S}/scripts
if [ "${@bb.utils.contains('PACKAGECONFIG', 'krb5', 'yes', 'no', d)}" = "no" ]; then
if ! [ -e ${B}/include/openssl/kssl.h ] ; then
mkdir -p ${B}/include/openssl
@@ -141,6 +144,7 @@ do_compile:prepend:class-target () {
echo "#endif" >>${B}/include/openssl/kssl.h
fi
fi
+ install -D ${RECIPE_SYSROOT_NATIVE}/usr/bin/uca-dump ${B}/strings/uca-dump
}
SYSROOT_PREPROCESS_FUNCS += "mariadb_sysroot_preprocess"
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch
new file mode 100644
index 0000000000..f8ccb998be
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch
@@ -0,0 +1,84 @@
+From 68100b1f2243304289b9a9a35e8fb0e1bb0cf70f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 24 Jan 2023 21:40:43 -0800
+Subject: [PATCH] Add missing includes <cstdint> and <cstdio>
+
+This is needed with GCC 13 and newer [1]
+
+[1] https://www.gnu.org/software/gcc/gcc-13/porting_to.html
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ .../rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h | 1 +
+ storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h | 1 +
+ .../rocksdb/rocksdb/table/block_based/data_block_hash_index.h | 1 +
+ storage/rocksdb/rocksdb/util/slice.cc | 1 +
+ storage/rocksdb/rocksdb/util/string_util.h | 1 +
+ 5 files changed, 5 insertions(+)
+
+diff --git a/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h b/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
+index 963c1d8e..73487edd 100644
+--- a/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
++++ b/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
+@@ -5,6 +5,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include "rocksdb/rocksdb_namespace.h"
+
+ struct CompactionIterationStats {
+diff --git a/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h b/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
+index c7f93b4c..3c2ab805 100644
+--- a/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
++++ b/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
+@@ -8,6 +8,7 @@
+ #pragma once
+ #ifndef ROCKSDB_LITE
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ #include "rocksdb/status.h"
+diff --git a/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h b/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
+index f356395f..32152217 100644
+--- a/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
++++ b/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
+@@ -5,6 +5,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+diff --git a/storage/rocksdb/rocksdb/util/slice.cc b/storage/rocksdb/rocksdb/util/slice.cc
+index 6db11cc9..c26b6a21 100644
+--- a/storage/rocksdb/rocksdb/util/slice.cc
++++ b/storage/rocksdb/rocksdb/util/slice.cc
+@@ -8,6 +8,7 @@
+ // found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+ #include <algorithm>
++#include <cstdint>
+ #include "rocksdb/slice_transform.h"
+ #include "rocksdb/slice.h"
+ #include "util/string_util.h"
+
+diff --git a/util/string_util.h b/util/string_util.h
+index 55d106fff02..11178fd1d7b 100644
+--- a/storage/rocksdb/rocksdb/util/string_util.h
++++ b/storage/rocksdb/rocksdb/util/string_util.h
+@@ -6,6 +6,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <sstream>
+ #include <string>
+ #include <unordered_map>
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch
index 6d9352fe86..d8671b76b0 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] Fix library LZ4 lookup.
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
+Upstream-Status: Pending
+
cmake/FindLZ4.cmake | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-33439-Fix-build-with-libxml2-2.12.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-33439-Fix-build-with-libxml2-2.12.patch
new file mode 100644
index 0000000000..3e42535dad
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-33439-Fix-build-with-libxml2-2.12.patch
@@ -0,0 +1,170 @@
+From dae52f5916ef59434c93f0b716270f59dd0c3a94 Mon Sep 17 00:00:00 2001
+From: Jan Tojnar <jtojnar@gmail.com>
+Date: Sun, 7 Jan 2024 10:19:54 +0100
+Subject: [PATCH] MDEV-33439 Fix build with libxml2 2.12
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+libxml2 2.12.0 made `xmlGetLastError()` return `const` pointer:
+
+https://gitlab.gnome.org/GNOME/libxml2/-/commit/61034116d0a3c8b295c6137956adc3ae55720711
+
+Clang 16 does not like this:
+
+ error: assigning to 'xmlErrorPtr' (aka '_xmlError *') from 'const xmlError *' (aka 'const _xmlError *') discards qualifiers
+ error: cannot initialize a variable of type 'xmlErrorPtr' (aka '_xmlError *') with an rvalue of type 'const xmlError *' (aka 'const _xmlError *')
+
+Let’s update the variables to `const`.
+For older versions, it will be automatically converted.
+
+But then `xmlResetError(xmlError*)` will not like the `const` pointer:
+
+ error: no matching function for call to 'xmlResetError'
+ note: candidate function not viable: 1st argument ('const xmlError *' (aka 'const _xmlError *')) would lose const qualifier
+
+Let’s replace it with `xmlResetLastError()`.
+
+ALso remove `LIBXMLDOC::Xerr` protected member property.
+It was introduced in 65b0e5455b547a3d574fa77b34cce23ae3bea0a0
+along with the `xmlResetError` calls.
+It does not appear to be used for anything.
+
+Upstream-Status: Backport [https://github.com/MariaDB/server/pull/2983]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ storage/connect/libdoc.cpp | 39 +++++++++++++++++++-------------------
+ 1 file changed, 19 insertions(+), 20 deletions(-)
+
+diff --git a/storage/connect/libdoc.cpp b/storage/connect/libdoc.cpp
+index 67f22ce2..ab588dd4 100644
+--- a/storage/connect/libdoc.cpp
++++ b/storage/connect/libdoc.cpp
+@@ -93,7 +93,6 @@ class LIBXMLDOC : public XMLDOCUMENT {
+ xmlXPathContextPtr Ctxp;
+ xmlXPathObjectPtr Xop;
+ xmlXPathObjectPtr NlXop;
+- xmlErrorPtr Xerr;
+ char *Buf; // Temporary
+ bool Nofreelist;
+ }; // end of class LIBXMLDOC
+@@ -327,7 +326,6 @@ LIBXMLDOC::LIBXMLDOC(char *nsl, char *nsdf, char *enc, PFBLOCK fp)
+ Ctxp = NULL;
+ Xop = NULL;
+ NlXop = NULL;
+- Xerr = NULL;
+ Buf = NULL;
+ Nofreelist = false;
+ } // end of LIBXMLDOC constructor
+@@ -365,8 +363,8 @@ bool LIBXMLDOC::ParseFile(PGLOBAL g, char *fn)
+ Encoding = (char*)Docp->encoding;
+
+ return false;
+- } else if ((Xerr = xmlGetLastError()))
+- xmlResetError(Xerr);
++ } else if (xmlGetLastError())
++ xmlResetLastError();
+
+ return true;
+ } // end of ParseFile
+@@ -505,9 +503,9 @@ int LIBXMLDOC::DumpDoc(PGLOBAL g, char *ofn)
+ #if 1
+ // This function does not crash (
+ if (xmlSaveFormatFileEnc((const char *)ofn, Docp, Encoding, 0) < 0) {
+- xmlErrorPtr err = xmlGetLastError();
++ const xmlError *err = xmlGetLastError();
+ strcpy(g->Message, (err) ? err->message : "Error saving XML doc");
+- xmlResetError(Xerr);
++ xmlResetLastError();
+ rc = -1;
+ } // endif Save
+ // rc = xmlDocDump(of, Docp);
+@@ -546,8 +544,8 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
+ if (Nlist) {
+ xmlXPathFreeNodeSet(Nlist);
+
+- if ((Xerr = xmlGetLastError()))
+- xmlResetError(Xerr);
++ if (xmlGetLastError())
++ xmlResetLastError();
+
+ Nlist = NULL;
+ } // endif Nlist
+@@ -555,8 +553,8 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
+ if (Xop) {
+ xmlXPathFreeObject(Xop);
+
+- if ((Xerr = xmlGetLastError()))
+- xmlResetError(Xerr);
++ if (xmlGetLastError())
++ xmlResetLastError();
+
+ Xop = NULL;
+ } // endif Xop
+@@ -564,8 +562,8 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
+ if (NlXop) {
+ xmlXPathFreeObject(NlXop);
+
+- if ((Xerr = xmlGetLastError()))
+- xmlResetError(Xerr);
++ if (xmlGetLastError())
++ xmlResetLastError();
+
+ NlXop = NULL;
+ } // endif NlXop
+@@ -573,8 +571,8 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
+ if (Ctxp) {
+ xmlXPathFreeContext(Ctxp);
+
+- if ((Xerr = xmlGetLastError()))
+- xmlResetError(Xerr);
++ if (xmlGetLastError())
++ xmlResetLastError();
+
+ Ctxp = NULL;
+ } // endif Ctxp
+@@ -590,6 +588,7 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
+ /******************************************************************/
+ xmlNodeSetPtr LIBXMLDOC::GetNodeList(PGLOBAL g, xmlNodePtr np, char *xp)
+ {
++ const xmlError *xerr;
+ xmlNodeSetPtr nl;
+
+ if (trace(1))
+@@ -649,11 +648,11 @@ xmlNodeSetPtr LIBXMLDOC::GetNodeList(PGLOBAL g, xmlNodePtr np, char *xp)
+ } else
+ xmlXPathFreeObject(Xop); // Caused node not found
+
+- if ((Xerr = xmlGetLastError())) {
+- strcpy(g->Message, Xerr->message);
+- xmlResetError(Xerr);
++ if ((xerr = xmlGetLastError())) {
++ strcpy(g->Message, xerr->message);
++ xmlResetLastError();
+ return NULL;
+- } // endif Xerr
++ } // endif xerr
+
+ } // endif Xop
+
+@@ -1079,7 +1078,7 @@ void XML2NODE::AddText(PGLOBAL g, PCSZ txtp)
+ /******************************************************************/
+ void XML2NODE::DeleteChild(PGLOBAL g, PXNODE dnp)
+ {
+- xmlErrorPtr xerr;
++ const xmlError *xerr;
+
+ if (trace(1))
+ htrc("DeleteChild: node=%p\n", dnp);
+@@ -1122,7 +1121,7 @@ void XML2NODE::DeleteChild(PGLOBAL g, PXNODE dnp)
+ if (trace(1))
+ htrc("DeleteChild: errmsg=%-.256s\n", xerr->message);
+
+- xmlResetError(xerr);
++ xmlResetLastError();
+ } // end of DeleteChild
+
+ /* -------------------- class XML2NODELIST ---------------------- */
+--
+2.44.0
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-Remove-the-compile_time_assert-lines.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-Remove-the-compile_time_assert-lines.patch
new file mode 100644
index 0000000000..9a6e28297b
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-Remove-the-compile_time_assert-lines.patch
@@ -0,0 +1,43 @@
+From cc5f1d0759b367265a1a000287e2ec15c31eb518 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 26 Feb 2024 14:56:02 +0800
+Subject: [PATCH] Remove the compile_time_assert lines
+
+Remove the problematic compile_time_assert lines to fix the below build
+failure on 32-bit arm.
+ In file included from TOPDIR/build/tmp/work/cortexa15t2hf-neon-yoe-linux-gnueabi/mariadb/10.11.7/mariadb-10.11.7/tests/mysql_client_test.c:38:
+ TOPDIR/build/tmp/work/cortexa15t2hf-neon-yoe-linux-gnueabi/mariadb/10.11.7/mariadb-10.11.7/tests/mysql_client_fw.c:1438:3: error: 'compile_time_assert' declared as an array with a negative size
+ 1438 | compile_time_assert(sizeof(MYSQL) == 77*sizeof(void*)+656);
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Inappropriate [Upstream will bring the asset back
+ in a new way [1]]
+[1] https://jira.mariadb.org/browse/MDEV-33429
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ tests/mysql_client_fw.c | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/tests/mysql_client_fw.c b/tests/mysql_client_fw.c
+index c9e64678..5c0c7ce2 100644
+--- a/tests/mysql_client_fw.c
++++ b/tests/mysql_client_fw.c
+@@ -1430,14 +1430,6 @@ int main(int argc, char **argv)
+ tests_to_run[i]= NULL;
+ }
+
+-#ifdef _WIN32
+- /* must be the same in C/C and embedded, 1208 on 64bit, 968 on 32bit */
+- compile_time_assert(sizeof(MYSQL) == 60*sizeof(void*)+728);
+-#else
+- /* must be the same in C/C and embedded, 1272 on 64bit, 964 on 32bit */
+- compile_time_assert(sizeof(MYSQL) == 77*sizeof(void*)+656);
+-#endif
+-
+ if (mysql_server_init(embedded_server_arg_count,
+ embedded_server_args,
+ (char**) embedded_server_groups))
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-aio_linux-Check-if-syscall-exists-before-using-it.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-aio_linux-Check-if-syscall-exists-before-using-it.patch
index 6ed174113b..aba9b9d966 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb/0001-aio_linux-Check-if-syscall-exists-before-using-it.patch
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-aio_linux-Check-if-syscall-exists-before-using-it.patch
@@ -13,6 +13,8 @@ tpool/aio_linux.cc:63:20: error: '__NR_io_getevents' was not declared in this sc
Upstream-Staus: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
tpool/aio_linux.cc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch
new file mode 100644
index 0000000000..456a2bad64
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch
@@ -0,0 +1,69 @@
+From f92f657973997df30afdb0032c88ad3a14ead46b Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 23 Sep 2022 15:48:21 +0800
+Subject: [PATCH] sql/CMakeLists.txt: fix gen_lex_hash not found
+
+Fix the below do_compile issue in cross-compiling env.
+| make[2]: *** No rule to make target '/build/tmp/work/aarch64-poky-linux/mariadb/10.3.13-r0/mariadb-10.3.13/sql/gen_lex_hash', needed by 'sql/lex_hash.h'. Stop.
+| make[2]: *** No rule to make target '/build/tmp/work/aarch64-poky-linux/mariadb/10.3.13-r0/mariadb-10.3.13/sql/gen_lex_token', needed by 'sql/lex_token.h'. Stop.
+
+Upstream-Status: Inappropriate [oe build specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ sql/CMakeLists.txt | 30 ++++++++++++++++++++++--------
+ 1 file changed, 22 insertions(+), 8 deletions(-)
+
+diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
+index 241b482..27a3991 100644
+--- a/sql/CMakeLists.txt
++++ b/sql/CMakeLists.txt
+@@ -60,11 +60,18 @@ ${CMAKE_BINARY_DIR}/sql
+ ${CMAKE_SOURCE_DIR}/tpool
+ )
+
+-ADD_CUSTOM_COMMAND(
+- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h
+- COMMAND gen_lex_token > lex_token.h
+- DEPENDS gen_lex_token
++IF(NOT CMAKE_CROSSCOMPILING)
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h
++ COMMAND gen_lex_token > lex_token.h
++ DEPENDS gen_lex_token
++)
++ELSE()
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h
++ COMMAND gen_lex_token > lex_token.h
+ )
++ENDIF()
+
+ FIND_PACKAGE(BISON 2.4)
+
+@@ -372,11 +379,18 @@ IF(NOT CMAKE_CROSSCOMPILING OR DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
+ ADD_EXECUTABLE(gen_lex_hash gen_lex_hash.cc)
+ ENDIF()
+
+-ADD_CUSTOM_COMMAND(
+- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h
+- COMMAND gen_lex_hash > lex_hash.h
+- DEPENDS gen_lex_hash
++IF(NOT CMAKE_CROSSCOMPILING)
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h
++ COMMAND gen_lex_hash > lex_hash.h
++ DEPENDS gen_lex_hash
++)
++ELSE()
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h
++ COMMAND gen_lex_hash > lex_hash.h
+ )
++ENDIF()
+
+ MYSQL_ADD_EXECUTABLE(mariadb-tzinfo-to-sql tztime.cc)
+ SET_TARGET_PROPERTIES(mariadb-tzinfo-to-sql PROPERTIES COMPILE_FLAGS "-DTZINFO2SQL")
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch b/meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch
new file mode 100644
index 0000000000..d0d6e3c730
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch
@@ -0,0 +1,34 @@
+From 80be37351d995654f86b838f6b5ed47e8a90261b Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 23 Sep 2022 12:05:17 +0800
+Subject: [PATCH] CMakeLists.txt: not include import_executables.cmake
+
+building failed since native does not generate import_executables.cmake
+In fact, our building system will export the needed commands.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ CMakeLists.txt | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f9e2b1b..34924ba 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -394,11 +394,6 @@ CHECK_LIBFMT()
+ ADD_SUBDIRECTORY(tpool)
+ CHECK_SYSTEMD()
+
+-IF(CMAKE_CROSSCOMPILING AND NOT DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
+- SET(IMPORT_EXECUTABLES "IMPORTFILE-NOTFOUND" CACHE FILEPATH "Path to import_executables.cmake from a native build")
+- INCLUDE(${IMPORT_EXECUTABLES})
+-ENDIF()
+-
+ #
+ # Setup maintainer mode options. Platform checks are
+ # not run with the warning options as to not perturb fragile checks
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/lfs64.patch b/meta-oe/recipes-dbs/mysql/mariadb/lfs64.patch
new file mode 100644
index 0000000000..7a685a6521
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/lfs64.patch
@@ -0,0 +1,21 @@
+Upstream-Status: Pending
+
+--- a/storage/connect/os.h
++++ b/storage/connect/os.h
+@@ -2,13 +2,15 @@
+ #ifndef _OS_H_INCLUDED
+ #define _OS_H_INCLUDED
+
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__)
++#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__) || (defined(__linux__) && !defined(__GLIBC__))
+ typedef off_t off64_t;
+ #define lseek64(fd, offset, whence) lseek((fd), (offset), (whence))
+ #define open64(path, flags, mode) open((path), (flags), (mode))
+ #define ftruncate64(fd, length) ftruncate((fd), (length))
++#ifndef O_LARGEFILE
+ #define O_LARGEFILE 0
+ #endif
++#endif
+
+ #ifdef _AIX
+ #ifndef O_LARGEFILE
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/mm_malloc.patch b/meta-oe/recipes-dbs/mysql/mariadb/mm_malloc.patch
index 347fcd8516..6aa6c84882 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb/mm_malloc.patch
+++ b/meta-oe/recipes-dbs/mysql/mariadb/mm_malloc.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/storage/rocksdb/rocksdb/port/jemalloc_helper.h
+++ b/storage/rocksdb/rocksdb/port/jemalloc_helper.h
@@ -5,7 +5,7 @@
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/ppc-remove-glibc-dep.patch b/meta-oe/recipes-dbs/mysql/mariadb/ppc-remove-glibc-dep.patch
index a4deee6070..3787b74ad1 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb/ppc-remove-glibc-dep.patch
+++ b/meta-oe/recipes-dbs/mysql/mariadb/ppc-remove-glibc-dep.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Remove glibc specific function dependencies
Sourced from: https://git.alpinelinux.org/aports/tree/main/mariadb/ppc-remove-glibc-dep.patch
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/run-ptest b/meta-oe/recipes-dbs/mysql/mariadb/run-ptest
new file mode 100644
index 0000000000..2f905cd379
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/run-ptest
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# test case test-connect is excluded. Becasue this test case need following steps before running.
+# Without these steps, test case test-connect will fail.
+# 1. Disable 'skip-networking' in /etc/my.cnf
+# $ sed -i '/skip-networking/s/^/#/g' /etc/my.cnf
+# 2. Restart mysqld.service
+# $ systemctl restart mysqld
+# 3. Set password for MySQL user "root"
+# $ mysql -u root
+# MariaDB [(none)]> SET PASSWORD FOR "root"@"localhost" = PASSWORD("myReallyStrongPwd");
+# MariaDB [(none)]> FLUSH PRIVILEGES;
+
+# If test-connect is included, please uncomment these lines.
+#export MASTER_MYPORT=3306
+#export MYSQL_TEST_HOST=127.0.0.1
+#export MYSQL_TEST_USER=root
+#export MYSQL_TEST_PASSWD=myReallyStrongPwd
+
+ctest --force-new-ctest-process -E test-connect | sed -u 's/\*\*\*/ /g' | awk '/Test +#/{gsub(/Passed/,"PASS"); gsub(/Failed/,"FAIL"); gsub(/Skipped/,"SKIP"); print $6": "$4; fflush();}'
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch b/meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch
index 4f9a4e9b0e..233d9e6af6 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch
+++ b/meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch
@@ -7,7 +7,7 @@ Comment out the logic which for suse as it introduces
below do_populate_sysroot error:
ERROR: mariadb-native-10.3.13-r0 do_populate_sysroot: sstate found an absolute path symlink /build/tmp/work/x86_64-linux/mariadb-native/10.3.13-r0/sysroot-destdir/build/tmp/work/x86_64-linux/mariadb-native/10.3.13-r0/recipe-sysroot-native/usr/sbin/rcmysql pointing at /build/tmp/work/x86_64-linux/mariadb-native/10.3.13-r0/recipe-sysroot-native/etc/init.d/mysql. Please replace this with a relative link.
-Upstream-Status: Inappropriate[oe build specific]
+Upstream-Status: Inappropriate [oe build specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
diff --git a/meta-oe/recipes-dbs/mysql/mariadb_10.11.7.bb b/meta-oe/recipes-dbs/mysql/mariadb_10.11.7.bb
new file mode 100644
index 0000000000..b1d1355e2b
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb_10.11.7.bb
@@ -0,0 +1,63 @@
+require mariadb.inc
+
+inherit ptest
+inherit useradd
+
+SRC_URI += "${@bb.utils.contains('PTEST_ENABLED', '1', 'file://run-ptest', '', d)}"
+DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'rsync-native', '', d)}"
+RDEPENDS:${PN}-ptest += "cmake sed perl-module-test-more"
+
+do_install_ptest () {
+ rsync -a ${B}/unittest ${B}/dbug ${D}${PTEST_PATH} \
+ --exclude CMakeFiles \
+ --exclude cmake_install.cmake \
+ --exclude Makefile \
+ --exclude=*.a \
+ --exclude=*.h \
+ --exclude=*.o \
+ --exclude=*.so \
+ --exclude=*.d \
+ --exclude=*.txt
+ install -m 0755 -d ${D}${PTEST_PATH}/storage
+ rsync -a ${B}/storage/maria ${B}/storage/perfschema ${B}/storage/innobase ${D}${PTEST_PATH}/storage \
+ --exclude CMakeFiles \
+ --exclude cmake_install.cmake \
+ --exclude Makefile \
+ --exclude=*.a \
+ --exclude=*.h \
+ --exclude=*.o \
+ --exclude=*.so \
+ --exclude=*.d \
+ --exclude=*.txt
+ cp -r ${B}/CTestTestfile.cmake ${D}${PTEST_PATH}
+ sed -i -e 's#${WORKDIR}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+}
+
+DEPENDS += "mariadb-native bison-native boost libpcre2 curl ncurses \
+ zlib libaio libedit libevent libxml2 gnutls fmt lzo zstd"
+
+PROVIDES += "mysql5 libmysqlclient"
+
+USERADD_PACKAGES = "${PN}-setupdb"
+USERADD_PARAM:${PN}-setupdb = "--system --home-dir /var/mysql -g mysql --shell /bin/false mysql"
+GROUPADD_PARAM:${PN}-setupdb = "--system mysql"
+
+RPROVIDES:${PN} += "mysql5"
+RREPLACES:${PN} += "mysql5"
+RCONFLICTS:${PN} += "mysql5"
+
+RPROVIDES:${PN}-dbg += "mysql5-dbg"
+RREPLACES:${PN}-dbg += "mysql5-dbg"
+RCONFLICTS:${PN}-dbg += "mysql5-dbg"
+
+RPROVIDES:${PN}-leftovers += "mysql5-leftovers"
+RREPLACES:${PN}-leftovers += "mysql5-leftovers"
+RCONFLICTS:${PN}-leftovers += "mysql5-leftovers"
+
+RPROVIDES:${PN}-client += "mysql5-client"
+RREPLACES:${PN}-client += "mysql5-client"
+RCONFLICTS:${PN}-client += "mysql5-client"
+
+RPROVIDES:${PN}-server += "mysql5-server"
+RREPLACES:${PN}-server += "mysql5-server"
+RCONFLICTS:${PN}-server += "mysql5-server"
diff --git a/meta-oe/recipes-dbs/mysql/mariadb_10.8.3.bb b/meta-oe/recipes-dbs/mysql/mariadb_10.8.3.bb
deleted file mode 100644
index 20bb5fc1fe..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb_10.8.3.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-require mariadb.inc
-
-inherit qemu
-
-DEPENDS += "qemu-native bison-native boost libpcre2 curl ncurses \
- zlib libaio libedit libevent libxml2 gnutls fmt lzo zstd"
-
-PROVIDES += "mysql5 libmysqlclient"
-
-RPROVIDES:${PN} += "mysql5"
-RREPLACES:${PN} += "mysql5"
-RCONFLICTS:${PN} += "mysql5"
-
-RPROVIDES:${PN}-dbg += "mysql5-dbg"
-RREPLACES:${PN}-dbg += "mysql5-dbg"
-RCONFLICTS:${PN}-dbg += "mysql5-dbg"
-
-RPROVIDES:${PN}-leftovers += "mysql5-leftovers"
-RREPLACES:${PN}-leftovers += "mysql5-leftovers"
-RCONFLICTS:${PN}-leftovers += "mysql5-leftovers"
-
-RPROVIDES:${PN}-client += "mysql5-client"
-RREPLACES:${PN}-client += "mysql5-client"
-RCONFLICTS:${PN}-client += "mysql5-client"
-
-RPROVIDES:${PN}-server += "mysql5-server"
-RREPLACES:${PN}-server += "mysql5-server"
-RCONFLICTS:${PN}-server += "mysql5-server"
diff --git a/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch b/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch
index 90b7419495..ebd3e03685 100644
--- a/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch
+++ b/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch
@@ -1,19 +1,21 @@
-From 780fd27ea6f7f2c446c46a7a5e26d94106c67efd Mon Sep 17 00:00:00 2001
+From ba079b8d6a50796db41bb0ddf4c22bfe022ef898 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 20 Nov 2016 15:04:52 +0000
-Subject: [PATCH] Add support for RISC-V.
+Subject: [PATCH 1/5] Add support for RISC-V.
The architecture is sufficiently similar to aarch64 that simply
extending the existing aarch64 macro works.
+
+Upstream-Status: Pending
---
src/include/storage/s_lock.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
-index dccbd29..ad60429 100644
+index c9fa84c..9b491e8 100644
--- a/src/include/storage/s_lock.h
+++ b/src/include/storage/s_lock.h
-@@ -317,11 +317,12 @@ tas(volatile slock_t *lock)
+@@ -252,11 +252,12 @@ spin_delay(void)
/*
* On ARM and ARM64, we use __sync_lock_test_and_set(int *, int) if available.
@@ -22,20 +24,20 @@ index dccbd29..ad60429 100644
* We use the int-width variant of the builtin because it works on more chips
* than other widths.
*/
--#if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__aarch64)
-+#if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__aarch64) || defined(__riscv)
+-#if defined(__arm__) || defined(__arm) || defined(__aarch64__)
++#if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__riscv)
#ifdef HAVE_GCC__SYNC_INT32_TAS
#define HAS_TEST_AND_SET
-@@ -338,7 +339,7 @@ tas(volatile slock_t *lock)
- #define S_UNLOCK(lock) __sync_lock_release(lock)
+@@ -290,7 +291,7 @@ spin_delay(void)
+ #endif /* __aarch64__ */
#endif /* HAVE_GCC__SYNC_INT32_TAS */
--#endif /* __arm__ || __arm || __aarch64__ || __aarch64 */
-+#endif /* __arm__ || __arm || __aarch64__ || __aarch64 || __riscv */
+-#endif /* __arm__ || __arm || __aarch64__ */
++#endif /* __arm__ || __arm || __aarch64__ || __riscv */
- /*
+ /* S/390 and S/390x Linux (32- and 64-bit zSeries) */
--
-2.34.1
+2.25.1
diff --git a/meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch b/meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch
deleted file mode 100644
index 02f4c9e513..0000000000
--- a/meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From bbba8a5261a99e79c9cd4693ef56021014a9856b Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 28 Dec 2020 16:38:21 +0800
-Subject: [PATCH] Improve reproducibility,
-
-Remove build patch from binaries which pg_config do
-not record var-CC, var-CFLAGS, and configure
-
-$ /usr/bin/pg_config --cc
-not recorded
-
-$ /usr/bin/pg_config --configure
-not recorded
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
-update patch for v13.1
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- src/common/Makefile | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/src/common/Makefile b/src/common/Makefile
-index 880722f..7a9b9d4 100644
---- a/src/common/Makefile
-+++ b/src/common/Makefile
-@@ -31,9 +31,6 @@ include $(top_builddir)/src/Makefile.global
- # don't include subdirectory-path-dependent -I and -L switches
- STD_CPPFLAGS := $(filter-out -I$(top_srcdir)/src/include -I$(top_builddir)/src/include,$(CPPFLAGS))
- STD_LDFLAGS := $(filter-out -L$(top_builddir)/src/common -L$(top_builddir)/src/port,$(LDFLAGS))
--override CPPFLAGS += -DVAL_CC="\"$(CC)\""
--override CPPFLAGS += -DVAL_CPPFLAGS="\"$(STD_CPPFLAGS)\""
--override CPPFLAGS += -DVAL_CFLAGS="\"$(CFLAGS)\""
- override CPPFLAGS += -DVAL_CFLAGS_SL="\"$(CFLAGS_SL)\""
- override CPPFLAGS += -DVAL_LDFLAGS="\"$(STD_LDFLAGS)\""
- override CPPFLAGS += -DVAL_LDFLAGS_EX="\"$(LDFLAGS_EX)\""
---
-2.34.1
-
diff --git a/meta-oe/recipes-dbs/postgresql/files/0001-config_info.c-not-expose-build-info.patch b/meta-oe/recipes-dbs/postgresql/files/0001-config_info.c-not-expose-build-info.patch
deleted file mode 100644
index 52ca276da6..0000000000
--- a/meta-oe/recipes-dbs/postgresql/files/0001-config_info.c-not-expose-build-info.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From b92eebe8b0760fee7bd55c6c22318620c2c07579 Mon Sep 17 00:00:00 2001
-From: Mingli Yu <mingli.yu@windriver.com>
-Date: Mon, 1 Aug 2022 15:44:38 +0800
-Subject: [PATCH] config_info.c: not expose build info
-
-Don't collect the build information to fix the buildpaths issue.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- configure.ac | 2 +-
- src/common/config_info.c | 68 ----------------------------------------
- 2 files changed, 1 insertion(+), 69 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 0eb595b..508487b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -23,7 +23,7 @@ AC_COPYRIGHT([Copyright (c) 1996-2021, PostgreSQL Global Development Group])
- AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
- AC_CONFIG_AUX_DIR(config)
- AC_PREFIX_DEFAULT(/usr/local/pgsql)
--AC_DEFINE_UNQUOTED(CONFIGURE_ARGS, ["$ac_configure_args"], [Saved arguments from configure])
-+AC_DEFINE_UNQUOTED(CONFIGURE_ARGS, ["ac_configure_args"], [Saved arguments from configure])
-
- [PG_MAJORVERSION=`expr "$PACKAGE_VERSION" : '\([0-9][0-9]*\)'`]
- [PG_MINORVERSION=`expr "$PACKAGE_VERSION" : '.*\.\([0-9][0-9]*\)'`]
-diff --git a/src/common/config_info.c b/src/common/config_info.c
-index e72e729..b482c20 100644
---- a/src/common/config_info.c
-+++ b/src/common/config_info.c
-@@ -38,7 +38,7 @@
- int i = 0;
-
- /* Adjust this to match the number of items filled below */
-- *configdata_len = 23;
-+ *configdata_len = 14;
- configdata = (ConfigData *) palloc(*configdata_len * sizeof(ConfigData));
-
- configdata[i].name = pstrdup("BINDIR");
-@@ -123,74 +123,6 @@
- configdata[i].setting = pstrdup(path);
- i++;
-
-- configdata[i].name = pstrdup("CONFIGURE");
-- configdata[i].setting = pstrdup(CONFIGURE_ARGS);
-- i++;
--
-- configdata[i].name = pstrdup("CC");
--#ifdef VAL_CC
-- configdata[i].setting = pstrdup(VAL_CC);
--#else
-- configdata[i].setting = pstrdup(_("not recorded"));
--#endif
-- i++;
--
-- configdata[i].name = pstrdup("CPPFLAGS");
--#ifdef VAL_CPPFLAGS
-- configdata[i].setting = pstrdup(VAL_CPPFLAGS);
--#else
-- configdata[i].setting = pstrdup(_("not recorded"));
--#endif
-- i++;
--
-- configdata[i].name = pstrdup("CFLAGS");
--#ifdef VAL_CFLAGS
-- configdata[i].setting = pstrdup(VAL_CFLAGS);
--#else
-- configdata[i].setting = pstrdup(_("not recorded"));
--#endif
-- i++;
--
-- configdata[i].name = pstrdup("CFLAGS_SL");
--#ifdef VAL_CFLAGS_SL
-- configdata[i].setting = pstrdup(VAL_CFLAGS_SL);
--#else
-- configdata[i].setting = pstrdup(_("not recorded"));
--#endif
-- i++;
--
-- configdata[i].name = pstrdup("LDFLAGS");
--#ifdef VAL_LDFLAGS
-- configdata[i].setting = pstrdup(VAL_LDFLAGS);
--#else
-- configdata[i].setting = pstrdup(_("not recorded"));
--#endif
-- i++;
--
-- configdata[i].name = pstrdup("LDFLAGS_EX");
--#ifdef VAL_LDFLAGS_EX
-- configdata[i].setting = pstrdup(VAL_LDFLAGS_EX);
--#else
-- configdata[i].setting = pstrdup(_("not recorded"));
--#endif
-- i++;
--
-- configdata[i].name = pstrdup("LDFLAGS_SL");
--#ifdef VAL_LDFLAGS_SL
-- configdata[i].setting = pstrdup(VAL_LDFLAGS_SL);
--#else
-- configdata[i].setting = pstrdup(_("not recorded"));
--#endif
-- i++;
--
-- configdata[i].name = pstrdup("LIBS");
--#ifdef VAL_LIBS
-- configdata[i].setting = pstrdup(VAL_LIBS);
--#else
-- configdata[i].setting = pstrdup(_("not recorded"));
--#endif
-- i++;
--
- configdata[i].name = pstrdup("VERSION");
- configdata[i].setting = pstrdup("PostgreSQL " PG_VERSION);
- i++;
---
-2.25.1
-
diff --git a/meta-oe/recipes-dbs/postgresql/files/0001-configure.ac-bypass-autoconf-2.69-version-check.patch b/meta-oe/recipes-dbs/postgresql/files/0001-configure.ac-bypass-autoconf-2.69-version-check.patch
deleted file mode 100644
index 4a576d7172..0000000000
--- a/meta-oe/recipes-dbs/postgresql/files/0001-configure.ac-bypass-autoconf-2.69-version-check.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 258c6bd2ad96f2c42f1cb5f4c84e4ca5865059f0 Mon Sep 17 00:00:00 2001
-From: Yi Fan Yu <yifan.yu@windriver.com>
-Date: Fri, 5 Feb 2021 17:15:42 -0500
-Subject: [PATCH] configure.ac: bypass autoconf 2.69 version check
-
-for upgrade to autoconf 2.71
-
-Upstream-Status: Inappropriate [disable feature]
-
-Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
-
----
- configure.ac | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ffe878e..c39799b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
-
- AC_INIT([PostgreSQL], [14.5], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
-
--m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
--Untested combinations of 'autoconf' and PostgreSQL versions are not
--recommended. You can remove the check from 'configure.ac' but it is then
--your responsibility whether the result works or not.])])
- AC_COPYRIGHT([Copyright (c) 1996-2021, PostgreSQL Global Development Group])
- AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
- AC_CONFIG_AUX_DIR(config)
diff --git a/meta-oe/recipes-dbs/postgresql/files/0002-Improve-reproducibility.patch b/meta-oe/recipes-dbs/postgresql/files/0002-Improve-reproducibility.patch
new file mode 100644
index 0000000000..b3e87cbc46
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/files/0002-Improve-reproducibility.patch
@@ -0,0 +1,41 @@
+From 084cc44215c1d5e6d33bc3d2e1d24da4fc98bdcd Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 28 Dec 2020 16:38:21 +0800
+Subject: [PATCH 2/5] Improve reproducibility,
+
+Remove build patch from binaries which pg_config do
+not record var-CC, var-CFLAGS, and configure
+
+$ /usr/bin/pg_config --cc
+not recorded
+
+$ /usr/bin/pg_config --configure
+not recorded
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+update patch for v13.1
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ src/common/Makefile | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/src/common/Makefile b/src/common/Makefile
+index 113029b..58842a6 100644
+--- a/src/common/Makefile
++++ b/src/common/Makefile
+@@ -31,9 +31,6 @@ include $(top_builddir)/src/Makefile.global
+ # don't include subdirectory-path-dependent -I and -L switches
+ STD_CPPFLAGS := $(filter-out -I$(top_srcdir)/src/include -I$(top_builddir)/src/include,$(CPPFLAGS))
+ STD_LDFLAGS := $(filter-out -L$(top_builddir)/src/common -L$(top_builddir)/src/port,$(LDFLAGS))
+-override CPPFLAGS += -DVAL_CC="\"$(CC)\""
+-override CPPFLAGS += -DVAL_CPPFLAGS="\"$(STD_CPPFLAGS)\""
+-override CPPFLAGS += -DVAL_CFLAGS="\"$(CFLAGS)\""
+ override CPPFLAGS += -DVAL_CFLAGS_SL="\"$(CFLAGS_SL)\""
+ override CPPFLAGS += -DVAL_LDFLAGS="\"$(STD_LDFLAGS)\""
+ override CPPFLAGS += -DVAL_LDFLAGS_EX="\"$(LDFLAGS_EX)\""
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/postgresql/files/0003-configure.ac-bypass-autoconf-2.69-version-check.patch b/meta-oe/recipes-dbs/postgresql/files/0003-configure.ac-bypass-autoconf-2.69-version-check.patch
new file mode 100644
index 0000000000..d76d1991b6
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/files/0003-configure.ac-bypass-autoconf-2.69-version-check.patch
@@ -0,0 +1,32 @@
+From 30b1b37d309f67ba6d58f2197bd917107bc7d56c Mon Sep 17 00:00:00 2001
+From: Yi Fan Yu <yifan.yu@windriver.com>
+Date: Fri, 5 Feb 2021 17:15:42 -0500
+Subject: [PATCH 3/5] configure.ac: bypass autoconf 2.69 version check
+
+for upgrade to autoconf 2.71
+
+Upstream-Status: Inappropriate [disable feature]
+
+Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
+---
+ configure.ac | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 401ce30..27f382d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
+
+ AC_INIT([PostgreSQL], [16.2], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
+
+-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
+-Untested combinations of 'autoconf' and PostgreSQL versions are not
+-recommended. You can remove the check from 'configure.ac' but it is then
+-your responsibility whether the result works or not.])])
+ AC_COPYRIGHT([Copyright (c) 1996-2023, PostgreSQL Global Development Group])
+ AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
+ AC_CONFIG_AUX_DIR(config)
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/postgresql/files/0004-config_info.c-not-expose-build-info.patch b/meta-oe/recipes-dbs/postgresql/files/0004-config_info.c-not-expose-build-info.patch
new file mode 100644
index 0000000000..ff0582ab80
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/files/0004-config_info.c-not-expose-build-info.patch
@@ -0,0 +1,119 @@
+From 5be3ffdf767c1efcbfd2d1be87aa83f2e37e348e Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 1 Aug 2022 15:44:38 +0800
+Subject: [PATCH 4/5] config_info.c: not expose build info
+
+Don't collect the build information to fix the buildpaths issue.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ configure.ac | 2 +-
+ src/common/config_info.c | 70 +---------------------------------------
+ 2 files changed, 2 insertions(+), 70 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 27f382d..3dd6bb1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -23,7 +23,7 @@ AC_COPYRIGHT([Copyright (c) 1996-2023, PostgreSQL Global Development Group])
+ AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
+ AC_CONFIG_AUX_DIR(config)
+ AC_PREFIX_DEFAULT(/usr/local/pgsql)
+-AC_DEFINE_UNQUOTED(CONFIGURE_ARGS, ["$ac_configure_args"], [Saved arguments from configure])
++AC_DEFINE_UNQUOTED(CONFIGURE_ARGS, ["ac_configure_args"], [Saved arguments from configure])
+
+ [PG_MAJORVERSION=`expr "$PACKAGE_VERSION" : '\([0-9][0-9]*\)'`]
+ [PG_MINORVERSION=`expr "$PACKAGE_VERSION" : '.*\.\([0-9][0-9]*\)'`]
+diff --git a/src/common/config_info.c b/src/common/config_info.c
+index 09e78a6..86e4230 100644
+--- a/src/common/config_info.c
++++ b/src/common/config_info.c
+@@ -38,7 +38,7 @@ get_configdata(const char *my_exec_path, size_t *configdata_len)
+ int i = 0;
+
+ /* Adjust this to match the number of items filled below */
+- *configdata_len = 23;
++ *configdata_len = 14;
+ configdata = palloc_array(ConfigData, *configdata_len);
+
+ configdata[i].name = pstrdup("BINDIR");
+@@ -123,74 +123,6 @@ get_configdata(const char *my_exec_path, size_t *configdata_len)
+ configdata[i].setting = pstrdup(path);
+ i++;
+
+- configdata[i].name = pstrdup("CONFIGURE");
+- configdata[i].setting = pstrdup(CONFIGURE_ARGS);
+- i++;
+-
+- configdata[i].name = pstrdup("CC");
+-#ifdef VAL_CC
+- configdata[i].setting = pstrdup(VAL_CC);
+-#else
+- configdata[i].setting = pstrdup(_("not recorded"));
+-#endif
+- i++;
+-
+- configdata[i].name = pstrdup("CPPFLAGS");
+-#ifdef VAL_CPPFLAGS
+- configdata[i].setting = pstrdup(VAL_CPPFLAGS);
+-#else
+- configdata[i].setting = pstrdup(_("not recorded"));
+-#endif
+- i++;
+-
+- configdata[i].name = pstrdup("CFLAGS");
+-#ifdef VAL_CFLAGS
+- configdata[i].setting = pstrdup(VAL_CFLAGS);
+-#else
+- configdata[i].setting = pstrdup(_("not recorded"));
+-#endif
+- i++;
+-
+- configdata[i].name = pstrdup("CFLAGS_SL");
+-#ifdef VAL_CFLAGS_SL
+- configdata[i].setting = pstrdup(VAL_CFLAGS_SL);
+-#else
+- configdata[i].setting = pstrdup(_("not recorded"));
+-#endif
+- i++;
+-
+- configdata[i].name = pstrdup("LDFLAGS");
+-#ifdef VAL_LDFLAGS
+- configdata[i].setting = pstrdup(VAL_LDFLAGS);
+-#else
+- configdata[i].setting = pstrdup(_("not recorded"));
+-#endif
+- i++;
+-
+- configdata[i].name = pstrdup("LDFLAGS_EX");
+-#ifdef VAL_LDFLAGS_EX
+- configdata[i].setting = pstrdup(VAL_LDFLAGS_EX);
+-#else
+- configdata[i].setting = pstrdup(_("not recorded"));
+-#endif
+- i++;
+-
+- configdata[i].name = pstrdup("LDFLAGS_SL");
+-#ifdef VAL_LDFLAGS_SL
+- configdata[i].setting = pstrdup(VAL_LDFLAGS_SL);
+-#else
+- configdata[i].setting = pstrdup(_("not recorded"));
+-#endif
+- i++;
+-
+- configdata[i].name = pstrdup("LIBS");
+-#ifdef VAL_LIBS
+- configdata[i].setting = pstrdup(VAL_LIBS);
+-#else
+- configdata[i].setting = pstrdup(_("not recorded"));
+-#endif
+- i++;
+-
+ configdata[i].name = pstrdup("VERSION");
+ configdata[i].setting = pstrdup("PostgreSQL " PG_VERSION);
+ i++;
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/postgresql/files/0005-postgresql-fix-ptest-failure-of-sysviews.patch b/meta-oe/recipes-dbs/postgresql/files/0005-postgresql-fix-ptest-failure-of-sysviews.patch
new file mode 100644
index 0000000000..af36da4927
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/files/0005-postgresql-fix-ptest-failure-of-sysviews.patch
@@ -0,0 +1,49 @@
+From 1a8b94140988d2ee5ff987b0bb3e7c3e936b8c01 Mon Sep 17 00:00:00 2001
+From: Manoj Saun <manojsingh.saun@windriver.com>
+Date: Wed, 22 Mar 2023 08:07:26 +0000
+Subject: [PATCH 5/5] postgresql: fix ptest failure of sysviews
+
+The patch "0001-config_info.c-not-expose-build-info.patch" hides the debug info
+in pg_config table which reduces the count of rows from pg_config and leads to
+sysviews test failure.
+To fix it we need to reduce the count of parameters in sysviews test.
+Also we need to reduce the row count in expected result of sysview test
+to make the test output shown as pass.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Manoj Saun <manojsingh.saun@windriver.com>
+---
+ src/test/regress/expected/sysviews.out | 2 +-
+ src/test/regress/sql/sysviews.sql | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/test/regress/expected/sysviews.out b/src/test/regress/expected/sysviews.out
+index 001c6e7..8256898 100644
+--- a/src/test/regress/expected/sysviews.out
++++ b/src/test/regress/expected/sysviews.out
+@@ -29,7 +29,7 @@ select name, ident, parent, level, total_bytes >= free_bytes
+ (1 row)
+
+ -- At introduction, pg_config had 23 entries; it may grow
+-select count(*) > 20 as ok from pg_config;
++select count(*) > 13 as ok from pg_config;
+ ok
+ ----
+ t
+diff --git a/src/test/regress/sql/sysviews.sql b/src/test/regress/sql/sysviews.sql
+index 351e469..84c113e 100644
+--- a/src/test/regress/sql/sysviews.sql
++++ b/src/test/regress/sql/sysviews.sql
+@@ -18,7 +18,7 @@ select name, ident, parent, level, total_bytes >= free_bytes
+ from pg_backend_memory_contexts where level = 0;
+
+ -- At introduction, pg_config had 23 entries; it may grow
+-select count(*) > 20 as ok from pg_config;
++select count(*) > 13 as ok from pg_config;
+
+ -- We expect no cursors in this test; see also portals.sql
+ select count(*) = 0 as ok from pg_cursors;
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/postgresql/files/remove_duplicate.patch b/meta-oe/recipes-dbs/postgresql/files/remove_duplicate.patch
deleted file mode 100644
index 92a3dcc710..0000000000
--- a/meta-oe/recipes-dbs/postgresql/files/remove_duplicate.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Remove duplicate code for riscv
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/src/include/storage/s_lock.h
-+++ b/src/include/storage/s_lock.h
-@@ -341,30 +341,6 @@ tas(volatile slock_t *lock)
- #endif /* HAVE_GCC__SYNC_INT32_TAS */
- #endif /* __arm__ || __arm || __aarch64__ || __aarch64 || __riscv */
-
--
--/*
-- * RISC-V likewise uses __sync_lock_test_and_set(int *, int) if available.
-- */
--#if defined(__riscv)
--#ifdef HAVE_GCC__SYNC_INT32_TAS
--#define HAS_TEST_AND_SET
--
--#define TAS(lock) tas(lock)
--
--typedef int slock_t;
--
--static __inline__ int
--tas(volatile slock_t *lock)
--{
-- return __sync_lock_test_and_set(lock, 1);
--}
--
--#define S_UNLOCK(lock) __sync_lock_release(lock)
--
--#endif /* HAVE_GCC__SYNC_INT32_TAS */
--#endif /* __riscv */
--
--
- /* S/390 and S/390x Linux (32- and 64-bit zSeries) */
- #if defined(__s390__) || defined(__s390x__)
- #define HAS_TEST_AND_SET
diff --git a/meta-oe/recipes-dbs/postgresql/postgresql.inc b/meta-oe/recipes-dbs/postgresql/postgresql.inc
index 60d44ce979..e29a5bef77 100644
--- a/meta-oe/recipes-dbs/postgresql/postgresql.inc
+++ b/meta-oe/recipes-dbs/postgresql/postgresql.inc
@@ -35,8 +35,9 @@ LEAD_SONAME = "libpq.so"
# LDFLAGS for shared libraries
export LDFLAGS_SL = "${LDFLAGS}"
+export LDFLAGS_EX_BE = "-Wl,--export-dynamic"
-inherit autotools pkgconfig perlnative python3native python3targetconfig useradd update-rc.d systemd gettext cpan-base
+inherit autotools pkgconfig perlnative python3native python3targetconfig useradd update-rc.d systemd gettext cpan-base multilib_header
CFLAGS += "-I${STAGING_INCDIR}/${PYTHON_DIR} -I${STAGING_INCDIR}/tcl8.6"
@@ -54,7 +55,7 @@ pkg_postinst:${PN} () {
PACKAGECONFIG ??= " \
${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)} \
- openssl python uuid libxml tcl perl zlib \
+ openssl python uuid libxml tcl perl zlib icu \
"
PACKAGECONFIG[tcl] = "--with-tcl --with-tclconfig=${STAGING_BINDIR_CROSS},--without-tcl,tcl tcl-native,"
PACKAGECONFIG[perl] = "--with-perl,--without-perl,perl,perl"
@@ -69,6 +70,7 @@ PACKAGECONFIG[libxslt] = "--with-libxslt,--without-libxslt,libxslt"
PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4"
PACKAGECONFIG[openssl] = "--with-ssl=openssl,ac_cv_file__dev_urandom=yes,openssl"
+PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu,icu"
EXTRA_OECONF += "--enable-thread-safety --disable-rpath \
--datadir=${datadir}/${BPN} \
@@ -183,6 +185,7 @@ INITSCRIPT_PARAMS = "start 64 . stop 36 0 1 2 3 4 5 6 ."
do_install:append() {
# install contrib
oe_runmake DESTDIR=${D} -C contrib install
+ oe_multilib_header pg_config.h pg_config_ext.h ecpg_config.h postgresql/server/pg_config.h postgresql/server/pg_config_ext.h
# install tutorial
install -d -m 0755 ${D}${libdir}/${BPN}/tutorial
install ${B}/src/tutorial/* ${D}${libdir}/${BPN}/tutorial
@@ -228,6 +231,16 @@ do_install:append() {
SSTATE_SCAN_FILES += "Makefile.global"
SSTATE_SCAN_FILES:remove = "*_config"
+postgresql_fix_sources () {
+ for f in ${PKGD}${TARGET_DBGSRC_DIR}/src/pl/plperl/Util.c \
+ ${PKGD}${TARGET_DBGSRC_DIR}/src/pl/plperl/SPI.c; do
+ if [ -e $f ]; then
+ sed -i -e 's#${B}/../${P}#${TARGET_DBGSRC_DIR}#g' $f
+ fi
+ done
+}
+PACKAGESPLITFUNCS =+ "postgresql_fix_sources"
+
PACKAGES =+ "${PN}-client ${PN}-server-dev ${PN}-timezone \
libecpg-compat libecpg-compat-dev \
libecpg libecpg-dev libecpg-staticdev libecpg-doc \
diff --git a/meta-oe/recipes-dbs/postgresql/postgresql_14.5.bb b/meta-oe/recipes-dbs/postgresql/postgresql_14.5.bb
deleted file mode 100644
index 1551d34053..0000000000
--- a/meta-oe/recipes-dbs/postgresql/postgresql_14.5.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-require postgresql.inc
-
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=75af6e3eeec4a06cdd2e578673236fc3"
-
-SRC_URI += "\
- file://not-check-libperl.patch \
- file://0001-Add-support-for-RISC-V.patch \
- file://0001-Improve-reproducibility.patch \
- file://0001-configure.ac-bypass-autoconf-2.69-version-check.patch \
- file://remove_duplicate.patch \
- file://0001-config_info.c-not-expose-build-info.patch \
-"
-
-SRC_URI[sha256sum] = "d4f72cb5fb857c9a9f75ec8cf091a1771272802f2178f0b2e65b7b6ff64f4a30"
-
-CVE_CHECK_IGNORE += "\
- CVE-2017-8806 \
-"
diff --git a/meta-oe/recipes-dbs/postgresql/postgresql_16.2.bb b/meta-oe/recipes-dbs/postgresql/postgresql_16.2.bb
new file mode 100644
index 0000000000..31f83a564b
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/postgresql_16.2.bb
@@ -0,0 +1,16 @@
+require postgresql.inc
+
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=89afbb2d7716371015101c2b2cb4297a"
+
+SRC_URI += "\
+ file://not-check-libperl.patch \
+ file://0001-Add-support-for-RISC-V.patch \
+ file://0002-Improve-reproducibility.patch \
+ file://0003-configure.ac-bypass-autoconf-2.69-version-check.patch \
+ file://0004-config_info.c-not-expose-build-info.patch \
+ file://0005-postgresql-fix-ptest-failure-of-sysviews.patch \
+"
+
+SRC_URI[sha256sum] = "446e88294dbc2c9085ab4b7061a646fa604b4bec03521d5ea671c2e5ad9b2952"
+
+CVE_STATUS[CVE-2017-8806] = "not-applicable-config: Ddoesn't apply to out configuration of postgresql so we can safely ignore it."
diff --git a/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch b/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch
index acfaa3f6be..84d4467c0e 100644
--- a/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch
+++ b/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch
@@ -3,7 +3,7 @@ From: "Roy.Li" <rongqing.li@windriver.com>
Date: Tue, 5 Sep 2017 10:24:10 +0800
Subject: [PATCH] [PATCH] do not use the hardcode libdir
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
diff --git a/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch b/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch
index 30e67b7dfb..081c6d0fd0 100644
--- a/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch
+++ b/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch
@@ -19,8 +19,6 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
test/runsuite.c | 20 ++++++++++----------
3 files changed, 15 insertions(+), 15 deletions(-)
-diff --git a/test/Makefile.in b/test/Makefile.in
-index 3f9a9af..09406ae 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -19,7 +19,7 @@ CPPFLAGS = @CPPFLAGS@ -I.. # config.h
@@ -32,8 +30,6 @@ index 3f9a9af..09406ae 100644
all: $(TESTBINS) runsuite reset-db
-diff --git a/test/odbcini-gen.sh b/test/odbcini-gen.sh
-index 2eaba35..6555cdb 100755
--- a/test/odbcini-gen.sh
+++ b/test/odbcini-gen.sh
@@ -6,7 +6,7 @@
@@ -45,6 +41,15 @@ index 2eaba35..6555cdb 100755
driver=${drvr}.so
if test ! -e $driver ; then
driver=${drvr}.dll
+@@ -16,7 +16,7 @@ if test ! -e $driver ; then
+ fi
+ fi
+
+-drvra=../.libs/psqlodbca
++drvra=@LIBDIR@/psqlodbca
+ drivera=${drvra}.so
+ if test ! -e $drivera ; then
+ drivera=${drvra}.dll
@@ -52,10 +52,10 @@ Driver = PostgreSQL Unicode
Trace = No
TraceFile =
@@ -59,8 +64,6 @@ index 2eaba35..6555cdb 100755
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
-diff --git a/test/runsuite.c b/test/runsuite.c
-index 3be5732..cd842dc 100644
--- a/test/runsuite.c
+++ b/test/runsuite.c
@@ -55,7 +55,7 @@ bailout(const char *fmt, ...)
@@ -72,7 +75,7 @@ index 3be5732..cd842dc 100644
{
const char *basename;
#ifdef WIN32
-@@ -69,7 +69,7 @@ parse_argument(const char *in, char *testname, char *binname)
+@@ -69,7 +69,7 @@ parse_argument(const char *in, char *tes
if (strchr(in, DIR_SEP) == NULL)
{
strcpy(testname, in);
@@ -90,7 +93,7 @@ index 3be5732..cd842dc 100644
if (runtest(binname, testname, i, inputdir) != 0)
failures++;
}
-@@ -161,29 +161,29 @@ runtest(const char *binname, const char *testname, int testno, const char *input
+@@ -161,29 +161,29 @@ runtest(const char *binname, const char
#ifndef WIN32
snprintf(cmdline, sizeof(cmdline),
"ODBCSYSINI=. ODBCINSTINI=./odbcinst.ini ODBCINI=./odbc.ini "
diff --git a/meta-oe/recipes-dbs/psqlodbc/psqlodbc_13.02.0000.bb b/meta-oe/recipes-dbs/psqlodbc/psqlodbc_13.02.0000.bb
deleted file mode 100644
index 299abee000..0000000000
--- a/meta-oe/recipes-dbs/psqlodbc/psqlodbc_13.02.0000.bb
+++ /dev/null
@@ -1,62 +0,0 @@
-SUMMARY = "ODBC driver for PostgreSQL"
-DESCRIPTION = "\
- This package provides a driver that allows ODBC-enabled applications to \
- access PostgreSQL databases. ODBC is an abstraction layer that allows \
- applications written for that layer to access databases in a manner \
- that is relatively independent of the particular database management \
- system. \
- . \
- You need to install this package if you want to use an application that \
- provides database access through ODBC and you want that application to \
- access a PostgreSQL database. This package would need to be installed \
- on the same machine as that client application; the PostgreSQL database \
- server can be on a different machine and does not need any additional \
- software to accept ODBC clients. \
-"
-SECTION = "libs"
-HOMEPAGE = "http://psqlodbc.projects.postgresql.org/"
-
-LICENSE = "LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://license.txt;md5=6db3822fc7512e83087ba798da013692"
-
-SRC_URI = "http://ftp.postgresql.org/pub/odbc/versions/src/${BPN}-${PV}.tar.gz \
- file://psqlodbc-remove-some-checks-for-cross-compiling.patch \
- file://psqlodbc-donot-use-the-hardcode-libdir.patch \
- file://psqlodbc-fix-for-ptest-support.patch \
- file://run-ptest \
-"
-
-SRC_URI[sha256sum] = "b39b7e5c41fd6475c551112fa724bf57c4a446175ec4188a90e2844cc1612585"
-
-DEPENDS += "postgresql unixodbc"
-
-EXTRA_OECONF = "\
- ac_cv_lib_ltdl_lt_dlopen=no \
- ac_cv_lib_pq_PQconnectdb=yes \
- --with-unixodbc=yes \
- --with-libpq=${STAGING_LIBDIR}/.. \
- --enable-pthreads \
- LIBS='-lpthread' \
-"
-
-inherit autotools pkgconfig ptest
-
-do_compile_ptest() {
- oe_runmake -C ${B}/test
-}
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}
- cp -a --no-preserve=ownership ${B}/test/exe ${S}/test/expected ${D}${PTEST_PATH}
- install -m 0755 ${B}/test/reset-db ${D}${PTEST_PATH}
- install -m 0755 ${B}/test/runsuite ${D}${PTEST_PATH}
- install -m 0755 ${S}/test/odbcini-gen.sh ${D}${PTEST_PATH}
- install -m 0755 ${S}/test/sampletables.sql ${D}${PTEST_PATH}
- sed -i -e 's|@LIBDIR@|${libdir}|' ${D}${PTEST_PATH}/odbcini-gen.sh
-}
-
-FILES:${PN} += "${libdir}"
-
-# The tests need a local PostgreSQL server running
-RDEPENDS:${PN}-ptest = "postgresql"
-
diff --git a/meta-oe/recipes-dbs/psqlodbc/psqlodbc_16.00.0000.bb b/meta-oe/recipes-dbs/psqlodbc/psqlodbc_16.00.0000.bb
new file mode 100644
index 0000000000..a1ef8e75e9
--- /dev/null
+++ b/meta-oe/recipes-dbs/psqlodbc/psqlodbc_16.00.0000.bb
@@ -0,0 +1,62 @@
+SUMMARY = "ODBC driver for PostgreSQL"
+DESCRIPTION = "\
+ This package provides a driver that allows ODBC-enabled applications to \
+ access PostgreSQL databases. ODBC is an abstraction layer that allows \
+ applications written for that layer to access databases in a manner \
+ that is relatively independent of the particular database management \
+ system. \
+ . \
+ You need to install this package if you want to use an application that \
+ provides database access through ODBC and you want that application to \
+ access a PostgreSQL database. This package would need to be installed \
+ on the same machine as that client application; the PostgreSQL database \
+ server can be on a different machine and does not need any additional \
+ software to accept ODBC clients. \
+"
+SECTION = "libs"
+HOMEPAGE = "https://odbc.postgresql.org/"
+
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://license.txt;md5=6db3822fc7512e83087ba798da013692"
+
+SRC_URI = "http://ftp.postgresql.org/pub/odbc/versions/src/${BPN}-${PV}.tar.gz \
+ file://psqlodbc-remove-some-checks-for-cross-compiling.patch \
+ file://psqlodbc-donot-use-the-hardcode-libdir.patch \
+ file://psqlodbc-fix-for-ptest-support.patch \
+ file://run-ptest \
+"
+
+SRC_URI[sha256sum] = "afd892f89d2ecee8d3f3b2314f1bd5bf2d02201872c6e3431e5c31096eca4c8b"
+
+DEPENDS += "postgresql unixodbc"
+
+EXTRA_OECONF = "\
+ ac_cv_lib_ltdl_lt_dlopen=no \
+ ac_cv_lib_pq_PQconnectdb=yes \
+ --with-unixodbc=yes \
+ --with-libpq=${STAGING_LIBDIR}/.. \
+ --enable-pthreads \
+ LIBS='-lpthread' \
+"
+
+inherit autotools pkgconfig ptest
+
+do_compile_ptest() {
+ oe_runmake -C ${B}/test
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}
+ cp -a --no-preserve=ownership ${B}/test/exe ${S}/test/expected ${D}${PTEST_PATH}
+ install -m 0755 ${B}/test/reset-db ${D}${PTEST_PATH}
+ install -m 0755 ${B}/test/runsuite ${D}${PTEST_PATH}
+ install -m 0755 ${S}/test/odbcini-gen.sh ${D}${PTEST_PATH}
+ install -m 0755 ${S}/test/sampletables.sql ${D}${PTEST_PATH}
+ sed -i -e 's|@LIBDIR@|${libdir}|' ${D}${PTEST_PATH}/odbcini-gen.sh
+}
+
+FILES:${PN} += "${libdir}"
+
+# The tests need a local PostgreSQL server running
+RDEPENDS:${PN}-ptest += "psqlodbc postgresql diffutils"
+RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils locale-base-en-us glibc-gconv glibc-charmaps"
diff --git a/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch b/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch
index 2906100dee..ba6a2d4fbb 100644
--- a/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch
+++ b/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch
@@ -1,4 +1,4 @@
-From cf168ae0b7bceab8432d096719b331f18428fe39 Mon Sep 17 00:00:00 2001
+From 034a9c4ce2ae61cfcffa977f1eb8e6f68947f480 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2020 15:10:37 -0700
Subject: [PATCH] cmake: Add check for atomic support
@@ -18,6 +18,7 @@ Fixes
| /mnt/b/yoe/build/tmp/work/mips32r2-yoe-linux/rocksdb/6.6.4-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux/mips-yoe-linux-ld: librocksdb.so.6.6.4: undefined reference to `__atomic_fetch_add_8'
Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/6555]
+
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
CMakeLists.txt | 5 +++
@@ -25,9 +26,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 74 insertions(+)
create mode 100644 cmake/modules/CheckAtomic.cmake
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5cfc1b4803..0a7f820a22 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -1000,7 +1000,12 @@ option(ROCKSDB_BUILD_SHARED "Build share
+@@ -1038,7 +1038,12 @@ set(ROCKSDB_SHARED_LIB rocksdb-shared${ARTIFACT_SUFFIX})
if(WIN32)
set(SYSTEM_LIBS ${SYSTEM_LIBS} shlwapi.lib rpcrt4.lib)
else()
@@ -40,6 +43,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
endif()
set(ROCKSDB_PLUGIN_EXTERNS "")
+diff --git a/cmake/modules/CheckAtomic.cmake b/cmake/modules/CheckAtomic.cmake
+new file mode 100644
+index 0000000000..8b7dc8a377
--- /dev/null
+++ b/cmake/modules/CheckAtomic.cmake
@@ -0,0 +1,69 @@
@@ -112,3 +118,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
+ endif()
+endif()
+
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Use-exported-target-for-bz2.patch b/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Use-exported-target-for-bz2.patch
deleted file mode 100644
index 139312a298..0000000000
--- a/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Use-exported-target-for-bz2.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 46a4e585175cac8d76bd0b64f0fc27c9e22f04a1 Mon Sep 17 00:00:00 2001
-From: Pascal Bach <pascal.bach@nextrem.ch>
-Date: Mon, 12 Oct 2020 21:22:46 +0200
-Subject: [PATCH] cmake: Use exported target for bz2
-
-Without this change, CMake puts the entire path into the generated file.
-This is not portable and makes it fail in environment like Yocto.
-
-Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/7541]
----
- CMakeLists.txt | 9 ++-------
- 1 file changed, 2 insertions(+), 7 deletions(-)
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -153,12 +153,7 @@ else()
- if(WITH_BZ2)
- find_package(BZip2 REQUIRED)
- add_definitions(-DBZIP2)
-- if(BZIP2_INCLUDE_DIRS)
-- include_directories(${BZIP2_INCLUDE_DIRS})
-- else()
-- include_directories(${BZIP2_INCLUDE_DIR})
-- endif()
-- list(APPEND THIRDPARTY_LIBS ${BZIP2_LIBRARIES})
-+ list(APPEND THIRDPARTY_LIBS BZip2::BZip2)
- endif()
-
- if(WITH_LZ4)
diff --git a/meta-oe/recipes-dbs/rocksdb/files/0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch b/meta-oe/recipes-dbs/rocksdb/files/0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch
index 4aa91d9b26..342964cf2c 100644
--- a/meta-oe/recipes-dbs/rocksdb/files/0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch
+++ b/meta-oe/recipes-dbs/rocksdb/files/0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch
@@ -1,4 +1,4 @@
-From 114c42fba3fc86119710e8dd1bb2b7a9e39e3064 Mon Sep 17 00:00:00 2001
+From 1ba84e1b8d4c9a3ad85dc443b0df4d79c89cca4b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 17 Jun 2021 19:35:01 -0700
Subject: [PATCH] replace old sync with new atomic builtin equivalents
@@ -6,11 +6,15 @@ Subject: [PATCH] replace old sync with new atomic builtin equivalents
Helps compiling with gcc on newer arches e.g. riscv32 where these
__sync* builtins are not implemented atleast for 64bit values
+Upstream-Status: Pending
+
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../range/range_tree/lib/portability/toku_atomic.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
+diff --git a/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h b/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h
+index aaa2298faf..9385902808 100644
--- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h
+++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h
@@ -77,37 +77,37 @@ template <typename T, typename U>
@@ -57,3 +61,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
}
// in case you include this but not toku_portability.h
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/rocksdb/files/0002-cmake-Use-exported-target-for-bz2.patch b/meta-oe/recipes-dbs/rocksdb/files/0002-cmake-Use-exported-target-for-bz2.patch
new file mode 100644
index 0000000000..6b46a1f300
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0002-cmake-Use-exported-target-for-bz2.patch
@@ -0,0 +1,34 @@
+From bb3fc86f87a9acc64628e1cb32f5c8a1cfbeb880 Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@nextrem.ch>
+Date: Mon, 12 Oct 2020 21:22:46 +0200
+Subject: [PATCH] cmake: Use exported target for bz2
+
+Without this change, CMake puts the entire path into the generated file.
+This is not portable and makes it fail in environment like Yocto.
+
+Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/7541]
+---
+ CMakeLists.txt | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0a7f820a22..be80edb955 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -149,12 +149,7 @@ else()
+ if(WITH_BZ2)
+ find_package(BZip2 REQUIRED)
+ add_definitions(-DBZIP2)
+- if(BZIP2_INCLUDE_DIRS)
+- include_directories(${BZIP2_INCLUDE_DIRS})
+- else()
+- include_directories(${BZIP2_INCLUDE_DIR})
+- endif()
+- list(APPEND THIRDPARTY_LIBS ${BZIP2_LIBRARIES})
++ list(APPEND THIRDPARTY_LIBS BZip2::BZip2)
+ endif()
+
+ if(WITH_LZ4)
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/rocksdb/files/0003-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch b/meta-oe/recipes-dbs/rocksdb/files/0003-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch
new file mode 100644
index 0000000000..e2f785d7cf
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0003-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch
@@ -0,0 +1,33 @@
+From bb10f55eb77be7b7eee94cb3506c9cbef8e24099 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 26 Jan 2023 13:00:43 -0800
+Subject: [PATCH] cmake: Do not add -msse4.2 -mpclmul on clang
+
+When testcase is compiled with clang and -msse4.2 -mpclmul is added to
+cxxflags then clang -m32 still ends up compiling the test case which is
+not correct for i386, therefore depend on yocto to pass the right flags
+from environemnt via cflags rather than manufecture them here
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index be80edb955..a1bbade81a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -279,7 +279,7 @@ endif()
+
+ include(CheckCXXSourceCompiles)
+ set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
+-if(NOT MSVC)
++if(NOT MSVC AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ set(CMAKE_REQUIRED_FLAGS "-msse4.2 -mpclmul")
+ endif()
+
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/rocksdb/files/0004-Implement-support-for-musl-ppc64.patch b/meta-oe/recipes-dbs/rocksdb/files/0004-Implement-support-for-musl-ppc64.patch
new file mode 100644
index 0000000000..5fcf1f7dae
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0004-Implement-support-for-musl-ppc64.patch
@@ -0,0 +1,42 @@
+From c6accd34e8169d7a6b92fc89dce5d4309978e39e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Mar 2024 14:11:09 +0800
+Subject: [PATCH] Implement support for musl/ppc64
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../lock/range/range_tree/lib/portability/toku_time.h | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
+index 9b83c53511..0a7488c397 100644
+--- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
++++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
+@@ -58,7 +58,7 @@ Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved.
+ #include <stdint.h>
+ #include <sys/time.h>
+ #include <time.h>
+-#if defined(__powerpc__)
++#if defined(__powerpc__) && defined(__GLIBC__)
+ #include <sys/platform/ppc.h>
+ #endif
+
+@@ -131,8 +131,12 @@ static inline tokutime_t toku_time_now(void) {
+ uint64_t result;
+ __asm __volatile__("mrs %[rt], cntvct_el0" : [rt] "=r"(result));
+ return result;
+-#elif defined(__powerpc__)
++#elif defined(__powerpc__) && defined(__GLIBC__)
+ return __ppc_get_timebase();
++#elif defined(__powerpc64__) || defined(__ppc64__)
++ uint64_t result;
++ asm volatile("mfspr %0, 268" : "=r"(result));
++ return result;
+ #elif defined(__s390x__)
+ uint64_t result;
+ asm volatile("stckf %0" : "=Q"(result) : : "cc");
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/rocksdb/files/0005-Implement-timer-implementation-for-mips-platform.patch b/meta-oe/recipes-dbs/rocksdb/files/0005-Implement-timer-implementation-for-mips-platform.patch
new file mode 100644
index 0000000000..2979b73d2f
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0005-Implement-timer-implementation-for-mips-platform.patch
@@ -0,0 +1,32 @@
+From 2ebc0ff33e41d23e4d3aec1a86f3d8bd4be410e7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Mar 2024 14:14:58 +0800
+Subject: [PATCH] Implement timer implementation for mips platform
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../lock/range/range_tree/lib/portability/toku_time.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
+index 0a7488c397..ad7d9f2124 100644
+--- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
++++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
+@@ -162,6 +162,12 @@ static inline tokutime_t toku_time_now(void) {
+ unsigned long result;
+ asm volatile ("rdtime.d\t%0,$r0" : "=r" (result));
+ return result;
++#elif defined(__mips__)
++ // mips apparently only allows rdtsc for superusers, so we fall
++ // back to gettimeofday. It's possible clock_gettime would be better.
++ struct timeval tv;
++ gettimeofday(&tv, nullptr);
++ return (uint64_t)tv.tv_sec * 1000000 + tv.tv_usec;
+ #else
+ #error No timer implementation for this platform
+ #endif
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/rocksdb/files/0006-Implement-timer-for-arm-v6.patch b/meta-oe/recipes-dbs/rocksdb/files/0006-Implement-timer-for-arm-v6.patch
new file mode 100644
index 0000000000..0ae673c425
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0006-Implement-timer-for-arm-v6.patch
@@ -0,0 +1,40 @@
+From 9e274ba2762724f353227b5a3a6e4433f706468a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Mar 2024 14:16:08 +0800
+Subject: [PATCH] Implement timer for arm >= v6
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../range/range_tree/lib/portability/toku_time.h | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
+index ad7d9f2124..bcb795b7e7 100644
+--- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
++++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
+@@ -168,6 +168,20 @@ static inline tokutime_t toku_time_now(void) {
+ struct timeval tv;
+ gettimeofday(&tv, nullptr);
+ return (uint64_t)tv.tv_sec * 1000000 + tv.tv_usec;
++#elif (__ARM_ARCH >= 6)
++ uint32_t pmccntr;
++ uint32_t pmuseren;
++ uint32_t pmcntenset;
++ // Read the user mode perf monitor counter access permissions.
++ asm volatile("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren));
++ if (pmuseren & 1) { // Allows reading perfmon counters for user mode code.
++ asm volatile("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset));
++ if (pmcntenset & 0x80000000ul) { // Is it counting?
++ asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr));
++ // The counter is set up to count every 64th cycle
++ return (uint64_t)pmccntr * 64; // Should optimize to << 6
++ }
++ }
+ #else
+ #error No timer implementation for this platform
+ #endif
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/rocksdb/files/0007-Fix-declaration-scope-of-LE_LOAD32-in-crc32c.patch b/meta-oe/recipes-dbs/rocksdb/files/0007-Fix-declaration-scope-of-LE_LOAD32-in-crc32c.patch
new file mode 100644
index 0000000000..9ba34450ba
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0007-Fix-declaration-scope-of-LE_LOAD32-in-crc32c.patch
@@ -0,0 +1,39 @@
+From ed549d43c8b691cd7891c7e5c76df189feb04b4f Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Sun, 7 Apr 2024 17:16:53 +0800
+Subject: [PATCH] Fix declaration scope of LE_LOAD32 in crc32c
+
+Fix build error when __SSE4_2__ is defined:
+util/crc32c.cc: In function 'void rocksdb::crc32c::DefaultCRC32(uint64_t*, const uint8_t**)':
+util/crc32c.cc:267:53: error: 'LE_LOAD32' was not declared in this scope
+ 267 | *l = _mm_crc32_u32(static_cast<unsigned int>(*l), LE_LOAD32(*p));
+ | ^~~~~~~~~
+
+Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/12515]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ util/crc32c.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/util/crc32c.cc b/util/crc32c.cc
+index 38a69bb50..aa13ad882 100644
+--- a/util/crc32c.cc
++++ b/util/crc32c.cc
+@@ -242,12 +242,12 @@ static const uint32_t table3_[256] = {
+ 0xc747336e, 0x1a0299d6, 0x782010ef, 0xa565ba57, 0xbc65029d, 0x6120a825,
+ 0x0302211c, 0xde478ba4, 0x31035088, 0xec46fa30, 0x8e647309, 0x5321d9b1,
+ 0x4a21617b, 0x9764cbc3, 0xf54642fa, 0x2803e842};
++#endif // !__SSE4_2__
+
+ // Used to fetch a naturally-aligned 32-bit word in little endian byte-order
+ static inline uint32_t LE_LOAD32(const uint8_t* p) {
+ return DecodeFixed32(reinterpret_cast<const char*>(p));
+ }
+-#endif // !__SSE4_2__
+
+ static inline void DefaultCRC32(uint64_t* l, uint8_t const** p) {
+ #ifndef __SSE4_2__
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/rocksdb/files/arm.patch b/meta-oe/recipes-dbs/rocksdb/files/arm.patch
deleted file mode 100644
index 573767797d..0000000000
--- a/meta-oe/recipes-dbs/rocksdb/files/arm.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-implement timer for arm >= v6
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
-+++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
-@@ -164,6 +164,20 @@ static inline tokutime_t toku_time_now(v
- struct timeval tv;
- gettimeofday(&tv, nullptr);
- return (uint64_t)tv.tv_sec * 1000000 + tv.tv_usec;
-+#elif (__ARM_ARCH >= 6)
-+ uint32_t pmccntr;
-+ uint32_t pmuseren;
-+ uint32_t pmcntenset;
-+ // Read the user mode perf monitor counter access permissions.
-+ asm volatile("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren));
-+ if (pmuseren & 1) { // Allows reading perfmon counters for user mode code.
-+ asm volatile("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset));
-+ if (pmcntenset & 0x80000000ul) { // Is it counting?
-+ asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr));
-+ // The counter is set up to count every 64th cycle
-+ return (uint64_t)pmccntr * 64; // Should optimize to << 6
-+ }
-+ }
- #else
- #error No timer implementation for this platform
- #endif
diff --git a/meta-oe/recipes-dbs/rocksdb/files/mips.patch b/meta-oe/recipes-dbs/rocksdb/files/mips.patch
deleted file mode 100644
index 0104d54347..0000000000
--- a/meta-oe/recipes-dbs/rocksdb/files/mips.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-implement timer implementation for mips platform
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
-+++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
-@@ -158,6 +158,12 @@ static inline tokutime_t toku_time_now(v
- uint64_t cycles;
- asm volatile("rdcycle %0" : "=r"(cycles));
- return cycles;
-+#elif defined(__mips__)
-+ // mips apparently only allows rdtsc for superusers, so we fall
-+ // back to gettimeofday. It's possible clock_gettime would be better.
-+ struct timeval tv;
-+ gettimeofday(&tv, nullptr);
-+ return (uint64_t)tv.tv_sec * 1000000 + tv.tv_usec;
- #else
- #error No timer implementation for this platform
- #endif
diff --git a/meta-oe/recipes-dbs/rocksdb/files/ppc64.patch b/meta-oe/recipes-dbs/rocksdb/files/ppc64.patch
deleted file mode 100644
index 45deef338c..0000000000
--- a/meta-oe/recipes-dbs/rocksdb/files/ppc64.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-implement support for musl/ppc64
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
-+++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
-@@ -58,7 +58,7 @@ Copyright (c) 2006, 2015, Percona and/or
- #include <stdint.h>
- #include <sys/time.h>
- #include <time.h>
--#if defined(__powerpc__)
-+#if defined(__powerpc__) && defined(__GLIBC__)
- #include <sys/platform/ppc.h>
- #endif
-
-@@ -131,8 +131,12 @@ static inline tokutime_t toku_time_now(v
- uint64_t result;
- __asm __volatile__("mrs %[rt], cntvct_el0" : [ rt ] "=r"(result));
- return result;
--#elif defined(__powerpc__)
-+#elif defined(__powerpc__) && defined(__GLIBC__)
- return __ppc_get_timebase();
-+#elif defined(__powerpc64__) || defined(__ppc64__)
-+ uint64_t result;
-+ asm volatile("mfspr %0, 268" : "=r"(result));
-+ return result;
- #elif defined(__s390x__)
- uint64_t result;
- asm volatile("stckf %0" : "=Q"(result) : : "cc");
diff --git a/meta-oe/recipes-dbs/rocksdb/rocksdb_7.5.3.bb b/meta-oe/recipes-dbs/rocksdb/rocksdb_7.5.3.bb
deleted file mode 100644
index d4f0346ee1..0000000000
--- a/meta-oe/recipes-dbs/rocksdb/rocksdb_7.5.3.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "RocksDB an embeddable, persistent key-value store"
-DESCRIPTION = "RocksDB is library that provides an embeddable, persistent key-value store for fast storage."
-HOMEPAGE = "http://rocksdb.org/"
-LICENSE = "(Apache-2.0 | GPL-2.0-only) & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.Apache;md5=3b83ef96387f14655fc854ddc3c6bd57 \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837"
-
-SRCREV = "540d5aae516265170564ec27b3e67a54a11b7045"
-SRCBRANCH = "7.5.fb"
-
-SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH};protocol=https \
- file://0001-cmake-Add-check-for-atomic-support.patch \
- file://0001-cmake-Use-exported-target-for-bz2.patch \
- file://ppc64.patch \
- file://mips.patch \
- file://arm.patch \
- "
-
-SRC_URI:append:riscv32 = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
-SRC_URI:append:mips = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
-SRC_URI:append:powerpc = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
-SRC_URI:remove:toolchain-clang:riscv32 = "file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-PACKAGECONFIG ??= "bzip2 zlib lz4 gflags"
-PACKAGECONFIG[bzip2] = "-DWITH_BZ2=ON,-DWITH_BZ2=OFF,bzip2"
-PACKAGECONFIG[lz4] = "-DWITH_LZ4=ON,-DWITH_LZ4=OFF,lz4"
-PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib"
-PACKAGECONFIG[zstd] = "-DWITH_ZSTD=ON,-DWITH_ZSTD=OFF,zstd"
-PACKAGECONFIG[lite] = "-DROCKSDB_LITE=ON,-DROCKSDB_LITE=OFF"
-PACKAGECONFIG[gflags] = "-DWITH_GFLAGS=ON,-DWITH_GFLAGS=OFF,gflags"
-
-# Tools and tests currently don't compile on armv5 so we disable them
-EXTRA_OECMAKE = "\
- -DPORTABLE=ON \
- -DWITH_TESTS=OFF \
- -DWITH_BENCHMARK_TOOLS=OFF \
- -DWITH_TOOLS=OFF \
- -DFAIL_ON_WARNINGS=OFF \
-"
-
-do_install:append() {
- # fix for qa check buildpaths
- sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/rocksdb/RocksDBTargets.cmake
-}
-
-LDFLAGS:append:riscv64 = " -pthread"
-
-# Need toku_time_now() implemented for ppc/musl
-# see utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
-COMPATIBLE_HOST:libc-musl:powerpc = "null"
diff --git a/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb b/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb
new file mode 100644
index 0000000000..444351dbb4
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb
@@ -0,0 +1,57 @@
+SUMMARY = "RocksDB an embeddable, persistent key-value store"
+DESCRIPTION = "RocksDB is library that provides an embeddable, persistent key-value store for fast storage."
+HOMEPAGE = "http://rocksdb.org/"
+LICENSE = "(Apache-2.0 | GPL-2.0-only) & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.Apache;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837"
+
+SRCREV = "f4441966592636253fd5ab0bb9ed44fc2697fc53"
+SRCBRANCH = "9.0.fb"
+
+SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH};protocol=https \
+ file://0001-cmake-Add-check-for-atomic-support.patch \
+ file://0002-cmake-Use-exported-target-for-bz2.patch \
+ file://0003-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch \
+ file://0004-Implement-support-for-musl-ppc64.patch \
+ file://0005-Implement-timer-implementation-for-mips-platform.patch \
+ file://0006-Implement-timer-for-arm-v6.patch \
+ file://0007-Fix-declaration-scope-of-LE_LOAD32-in-crc32c.patch \
+ "
+
+SRC_URI:append:riscv32 = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
+SRC_URI:append:mips = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
+SRC_URI:append:powerpc = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
+SRC_URI:remove:toolchain-clang:riscv32 = "file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+PACKAGECONFIG ??= "bzip2 zlib lz4 gflags"
+PACKAGECONFIG[bzip2] = "-DWITH_BZ2=ON,-DWITH_BZ2=OFF,bzip2"
+PACKAGECONFIG[lz4] = "-DWITH_LZ4=ON,-DWITH_LZ4=OFF,lz4"
+PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib"
+PACKAGECONFIG[zstd] = "-DWITH_ZSTD=ON,-DWITH_ZSTD=OFF,zstd"
+PACKAGECONFIG[lite] = "-DROCKSDB_LITE=ON,-DROCKSDB_LITE=OFF"
+PACKAGECONFIG[gflags] = "-DWITH_GFLAGS=ON,-DWITH_GFLAGS=OFF,gflags"
+
+# Tools and tests currently don't compile on armv5 so we disable them
+EXTRA_OECMAKE = "\
+ -DPORTABLE=ON \
+ -DWITH_TESTS=OFF \
+ -DWITH_BENCHMARK_TOOLS=OFF \
+ -DWITH_TOOLS=OFF \
+ -DFAIL_ON_WARNINGS=OFF \
+"
+
+CXXFLAGS += "${@bb.utils.contains('SELECTED_OPTIMIZATION', '-Og', '-DXXH_NO_INLINE_HINTS', '', d)}"
+
+do_install:append() {
+ # Fix for qa check buildpaths
+ sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/rocksdb/RocksDBTargets.cmake
+}
+
+# Need toku_time_now() implemented for ppc/musl
+# see utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
+COMPATIBLE_HOST:libc-musl:powerpc = "null"
diff --git a/meta-oe/recipes-dbs/soci/soci/soci_libdir.patch b/meta-oe/recipes-dbs/soci/soci/soci_libdir.patch
deleted file mode 100644
index 00a1a5c862..0000000000
--- a/meta-oe/recipes-dbs/soci/soci/soci_libdir.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Define SOCI_LIBDIR only if its not passed via environemnt. In OE we
-want to set it per our choice since we use 'lib' for 64bit unless we
-are using multilib
-
--Khem
-
-Index: soci-3.2.2/CMakeLists.txt
-===================================================================
---- soci-3.2.2.orig/CMakeLists.txt
-+++ soci-3.2.2/CMakeLists.txt
-@@ -69,11 +69,12 @@ include(SociDependencies)
- ###############################################################################
- # Installation
- ###############################################################################
--
--if(APPLE OR CMAKE_SIZEOF_VOID_P EQUAL 4)
-- set(SOCI_LIBDIR "lib")
--else()
-- set(SOCI_LIBDIR "lib64")
-+if(NOT DEFINED SOCI_LIBDIR)
-+ if(APPLE OR CMAKE_SIZEOF_VOID_P EQUAL 4)
-+ set(SOCI_LIBDIR "lib")
-+ else()
-+ set(SOCI_LIBDIR "lib")
-+ endif()
- endif()
-
- set(BINDIR "bin" CACHE PATH "The directory to install binaries into.")
diff --git a/meta-oe/recipes-dbs/soci/soci_4.0.3.bb b/meta-oe/recipes-dbs/soci/soci_4.0.3.bb
index 71ab80c48a..25d67ff8bf 100644
--- a/meta-oe/recipes-dbs/soci/soci_4.0.3.bb
+++ b/meta-oe/recipes-dbs/soci/soci_4.0.3.bb
@@ -43,3 +43,7 @@ FILES:${PN}-mysql = "${libdir}/lib${BPN}_mysql.so.*"
FILES:${PN}-postgresql = "${libdir}/lib${BPN}_postgresql.so.*"
FILES:${PN}-odbc = "${libdir}/lib${BPN}_odbc.so.*"
FILES:${PN}-oracle = "${libdir}/lib${BPN}_oracle.so.*"
+
+do_install:append() {
+ sed -i 's|${RECIPE_SYSROOT}${prefix}|${_IMPORT_PREFIX}|g' ${D}${libdir}/cmake/SOCI/SOCITargets*.cmake
+}
diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Remove-maes-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Remove-maes-option-from-cross-compilation.patch
index 7b7244b491..b92a487523 100644
--- a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Remove-maes-option-from-cross-compilation.patch
+++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Remove-maes-option-from-cross-compilation.patch
@@ -4,6 +4,8 @@ Date: Mon, 3 Feb 2020 03:25:57 +0000
Subject: [PATCH 2/3] Remove maes option from cross-compilation
---
+Upstream-Status: Pending
+
absl/copts/GENERATED_AbseilCopts.cmake | 4 ----
absl/copts/GENERATED_copts.bzl | 4 ----
2 files changed, 8 deletions(-)
diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Remove-neon-option-from-cross-compilation.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Remove-neon-option-from-cross-compilation.patch
index c0039c2107..1a80a428b7 100644
--- a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Remove-neon-option-from-cross-compilation.patch
+++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Remove-neon-option-from-cross-compilation.patch
@@ -8,6 +8,8 @@ them.
Signed-off-by: Jonas Gorski <jonas.gorski@bisdn.de>
---
+Upstream-Status: Pending
+
absl/copts/GENERATED_AbseilCopts.cmake | 4 ----
absl/copts/GENERATED_copts.bzl | 4 ----
2 files changed, 8 deletions(-)
diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/abseil-ppc-fixes.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/abseil-ppc-fixes.patch
index ef3f50d9e7..f2ebd9f08c 100644
--- a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/abseil-ppc-fixes.patch
+++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/abseil-ppc-fixes.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
An all-in-one patch that fixes several issues:
1) UnscaledCycleClock not fully implemented for ppc*-musl (disabled on musl)
@@ -20,7 +22,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
#ifdef __GLIBC__
#include <sys/platform/ppc.h>
#elif defined(__FreeBSD__)
-@@ -53,7 +53,7 @@ double UnscaledCycleClock::Frequency() {
+@@ -58,7 +58,7 @@ double UnscaledCycleClock::Frequency() {
return base_internal::NominalCPUFrequency();
}
@@ -29,9 +31,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
int64_t UnscaledCycleClock::Now() {
#ifdef __GLIBC__
---- a/absl/base/internal/unscaledcycleclock.h
-+++ b/absl/base/internal/unscaledcycleclock.h
-@@ -46,7 +46,8 @@
+--- a/absl/base/internal/unscaledcycleclock_config.h
++++ b/absl/base/internal/unscaledcycleclock_config.h
+@@ -21,7 +21,8 @@
// The following platforms have an implementation of a hardware counter.
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240116.1.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240116.1.bb
new file mode 100644
index 0000000000..e6c65d3064
--- /dev/null
+++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_20240116.1.bb
@@ -0,0 +1,53 @@
+SUMMARY = "Abseil is a cpp library like STL"
+DESCRIPTION = "Abseil provides pieces missing from the C++ standard. Contains \
+additional useful libraries like algorithm, container, debugging, hash, memory, \
+meta, numeric, strings, synchronization, time, types and utility."
+HOMEPAGE = "https://abseil.io/"
+SECTION = "libs"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=df52c6edb7adc22e533b2bacc3bd3915"
+
+SRCREV = "2f9e432cce407ce0ae50676696666f33a77d42ac"
+BRANCH = "lts_2024_01_16"
+SRC_URI = "git://github.com/abseil/abseil-cpp;branch=${BRANCH};protocol=https \
+ file://0001-absl-always-use-asm-sgidefs.h.patch \
+ file://0002-Remove-maes-option-from-cross-compilation.patch \
+ file://abseil-ppc-fixes.patch \
+ file://0003-Remove-neon-option-from-cross-compilation.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON \
+ -DBUILD_TESTING=OFF \
+ -DABSL_ENABLE_INSTALL=ON \
+ "
+
+SYSROOT_DIRS:append:class-nativesdk:mingw32 = " ${bindir}"
+
+PACKAGES_DYNAMIC = "^libabsl-*"
+PACKAGES_DYNAMIC:class-native = ""
+
+PACKAGESPLITFUNCS =+ "split_dynamic_packages"
+
+python split_dynamic_packages() {
+ libdir = d.getVar('libdir')
+
+ libpackages = do_split_packages(
+ d,
+ root=libdir,
+ file_regex=r'^libabsl_(.*)\.so\..*$',
+ output_pattern='libabsl-%s',
+ description="abseil shared library %s",
+ prepend=True,
+ extra_depends='',
+ )
+ if libpackages:
+ d.appendVar('RDEPENDS:' + d.getVar('PN'), ' ' + ' '.join(libpackages))
+}
+
+ALLOW_EMPTY:${PN} = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb
deleted file mode 100644
index af28da5935..0000000000
--- a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Abseil is a cpp library like STL"
-DESCRIPTION = "Abseil provides pieces missing from the C++ standard. Contains \
-additional useful libraries like algorithm, container, debugging, hash, memory, \
-meta, numeric, strings, synchronization, time, types and utility"
-HOMEPAGE = "https://abseil.io/"
-SECTION = "libs"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=df52c6edb7adc22e533b2bacc3bd3915"
-
-PV = "20220623.1"
-SRCREV = "8c0b94e793a66495e0b1f34a5eb26bd7dc672db0"
-BRANCH = "lts_2022_06_23"
-SRC_URI = "git://github.com/abseil/abseil-cpp;branch=${BRANCH};protocol=https \
- file://0001-absl-always-use-asm-sgidefs.h.patch \
- file://0002-Remove-maes-option-from-cross-compilation.patch \
- file://abseil-ppc-fixes.patch \
- file://0003-Remove-neon-option-from-cross-compilation.patch \
- "
-
-S = "${WORKDIR}/git"
-
-ASNEEDED:class-native = ""
-ASNEEDED:class-nativesdk = ""
-
-inherit cmake
-
-EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON \
- -DBUILD_TESTING=OFF \
- -DCMAKE_CXX_STANDARD=14 \
- "
-
-BBCLASSEXTEND = "native nativesdk"
-
-FILES:${PN}-dev += "${includedir} ${libdir}/cmake ${libdir}/pkgconfig"
diff --git a/meta-oe/recipes-devtools/aer-inject/aer-inject/0001-include-libgen.h-for-basename.patch b/meta-oe/recipes-devtools/aer-inject/aer-inject/0001-include-libgen.h-for-basename.patch
new file mode 100644
index 0000000000..358ff524ef
--- /dev/null
+++ b/meta-oe/recipes-devtools/aer-inject/aer-inject/0001-include-libgen.h-for-basename.patch
@@ -0,0 +1,32 @@
+From a2ccd98076c2ac81830234555edf362ee19a337d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 09:00:41 -0700
+Subject: [PATCH] include libgen.h for basename
+
+basename prototype has been removed from string.h from latest musl [1]
+compilers e.g. clang-18 flags the absense of prototype as error. therefore
+include libgen.h for providing it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [Emailed patch to Author]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ aer-inject.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/aer-inject.c b/aer-inject.c
+index 74e7f72..eed1211 100644
+--- a/aer-inject.c
++++ b/aer-inject.c
+@@ -11,6 +11,7 @@
+ */
+
+ #include <stdio.h>
++#include <libgen.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <fcntl.h>
+--
+2.44.0
+
diff --git a/meta-oe/recipes-devtools/aer-inject/aer-inject_1.0.bb b/meta-oe/recipes-devtools/aer-inject/aer-inject_1.0.bb
new file mode 100644
index 0000000000..87c09f5118
--- /dev/null
+++ b/meta-oe/recipes-devtools/aer-inject/aer-inject_1.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Inject PCIE AER errors on the software level into a running Linux kernel."
+DESCRIPTION = "\
+aer-inject allows to inject PCIE AER errors on the software \
+level into a running Linux kernel. This is intended for \
+validation of the PCIE driver error recovery handler and \
+PCIE AER core handler."
+HOMEPAGE = "https://git.kernel.org/cgit/linux/kernel/git/gong.chen/aer-inject.git/"
+SECTION = "pcie/misc"
+LICENSE = "GPL-2.0-only"
+
+LIC_FILES_CHKSUM = "file://README;beginline=25;endline=38;md5=643c2332ec702691a87ba6ea9499b2d6"
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/gong.chen/aer-inject.git;protocol=https;branch=master \
+ file://0001-include-libgen.h-for-basename.patch \
+"
+SRCREV = "9bd5e2c7886fca72f139cd8402488a2235957d41"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "bison-native"
+
+do_compile() {
+ oe_runmake CFLAGS="-Wall -D_GNU_SOURCE"
+}
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' 'PREFIX=${prefix}' install
+}
+FILES:${PN} += "${prefix}/aer-inject"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-start b/meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-start
index b73cb70b14..76b5e29624 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-start
+++ b/meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-start
@@ -4,4 +4,6 @@ set -e
sleep 10
-ls /sys/class/udc/ | xargs echo -n > /sys/kernel/config/usb_gadget/adb/UDC
+ls /sys/class/udc/ | head -n 1 | xargs echo -n > /sys/kernel/config/usb_gadget/adb/UDC
+
+echo "Setting UDC $(ls /sys/class/udc/ | head -n 1) for USB ADB Gadget usage"
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch b/meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch
index 57c443b707..c091fd404b 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch
@@ -4,6 +4,8 @@ Date: Mon, 20 Apr 2020 15:32:40 +0800
Subject: [PATCH 1/1] Riscv: Add risc-v Android config header
---
+Upstream-Status: Pending
+
.../arch/linux-riscv64/AndroidConfig.h | 340 ++++++++++++++++++
1 file changed, 340 insertions(+)
create mode 100644 core/combo/include/arch/linux-riscv64/AndroidConfig.h
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch
index 79e9d4d3b2..7f03cd2beb 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch
@@ -18,6 +18,8 @@ them to be used when initializing structures.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
+Upstream-Status: Pending
+
adb/usb_linux_client.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch
index fcd4ae2388..4827ffe042 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch
@@ -7,6 +7,8 @@ musl needs it
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
adb/adb_auth_client.c | 2 +-
adb/base64.c | 315 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 316 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch
index b5d383f383..182b1eb29e 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch
@@ -9,14 +9,14 @@ Do not redefine close() and lseek()
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
adb/adb.h | 2 ++
adb/disable_verity_service.c | 13 ++++++++-----
adb/framebuffer_service.c | 7 ++++---
adb/sysdeps.h | 12 ++++++------
4 files changed, 20 insertions(+), 14 deletions(-)
-diff --git a/adb/adb.h b/adb/adb.h
-index 44e5981bdc..bcdc49f63c 100644
--- a/adb/adb.h
+++ b/adb/adb.h
@@ -18,7 +18,9 @@
@@ -29,11 +29,9 @@ index 44e5981bdc..bcdc49f63c 100644
#include "adb_trace.h"
#include "transport.h" /* readx(), writex() */
-diff --git a/adb/disable_verity_service.c b/adb/disable_verity_service.c
-index ed3da52108..29fa3d65a9 100644
--- a/adb/disable_verity_service.c
+++ b/adb/disable_verity_service.c
-@@ -14,25 +14,28 @@
+@@ -14,25 +14,32 @@
* limitations under the License.
*/
@@ -51,13 +49,18 @@ index ed3da52108..29fa3d65a9 100644
#include <sys/stat.h>
#include <fcntl.h>
#include <inttypes.h>
-+#include <unistd.h>
-+#include <errno.h>
-+#include <stdbool.h>
-
+-
-#include "cutils/properties.h"
-#include "ext4_sb.h"
-#include <fs_mgr.h>
++#include <unistd.h>
++#include <errno.h>
++#include <stdbool.h>
++
++#if defined(__linux__) && !defined(__GLIBC__)
++#define lseek64 lseek
++#define off64_t off_t
++#endif
#define FSTAB_PREFIX "/fstab."
struct fstab *fstab;
@@ -67,8 +70,6 @@ index ed3da52108..29fa3d65a9 100644
static void write_console(int fd, const char* format, ...)
{
char buffer[256];
-diff --git a/adb/framebuffer_service.c b/adb/framebuffer_service.c
-index 8cbe8403cc..8f0ccfb7aa 100644
--- a/adb/framebuffer_service.c
+++ b/adb/framebuffer_service.c
@@ -14,6 +14,10 @@
@@ -92,11 +93,9 @@ index 8cbe8403cc..8f0ccfb7aa 100644
#include <linux/fb.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
-diff --git a/adb/sysdeps.h b/adb/sysdeps.h
-index cc1f839e9f..ea39ac39cc 100644
--- a/adb/sysdeps.h
+++ b/adb/sysdeps.h
-@@ -123,8 +123,8 @@ static __inline__ int unix_close(int fd)
+@@ -123,8 +123,8 @@ static __inline__ int unix_close(int fd
{
return close(fd);
}
@@ -118,7 +117,7 @@ index cc1f839e9f..ea39ac39cc 100644
static __inline__ int adb_read(int fd, void* buf, size_t len)
-@@ -392,8 +392,8 @@ static __inline__ int adb_lseek(int fd, int pos, int where)
+@@ -392,8 +392,8 @@ static __inline__ int adb_lseek(int f
{
return lseek(fd, pos, where);
}
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch
index e02a95687f..64fbce4cbe 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch
@@ -7,6 +7,8 @@ Subject: [PATCH] adb: usb_linux.c: fix build with glibc-2.28
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
+Upstream-Status: Pending
+
adb/usb_linux.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch
index 7d223e05f1..ad21b5aaa6 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch
@@ -4,6 +4,8 @@ Date: Mon, 30 Oct 2017 21:05:46 +0100
Subject: [PATCH] adb: Allow adbd to be ran as root
---
+Upstream-Status: Pending
+
adb/adb.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch
index a8434afbad..5138556d63 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch
@@ -4,6 +4,8 @@ Date: Mon, 20 Apr 2020 15:27:22 +0800
Subject: [PATCH 1/1] adb: Support riscv64
---
+Upstream-Status: Pending
+
include/cutils/atomic-inline.h | 2 +
include/cutils/atomic-riscv64.h | 156 ++++++++++++++++++++++++++++++++
2 files changed, 158 insertions(+)
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0014-add-u3-ss-descriptor-support-for-adb.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0014-add-u3-ss-descriptor-support-for-adb.patch
index 05973aaaf2..cf23f3c251 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0014-add-u3-ss-descriptor-support-for-adb.patch
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0014-add-u3-ss-descriptor-support-for-adb.patch
@@ -12,6 +12,8 @@ modified for backporting to android-tools_5.1.1.r37.
Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
Signed-off-by: Jiacheng Liu <jiacheng.liu@mediatek.com>
---
+Upstream-Status: Pending
+
adb/usb_linux_client.c | 275 +++++++++++++++++++++++++++++++----------
1 file changed, 207 insertions(+), 68 deletions(-)
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0015-libsparse-Split-off-most-of-sparse_file_read_normal-.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0015-libsparse-Split-off-most-of-sparse_file_read_normal-.patch
index b3893f0c80..5009c73a05 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0015-libsparse-Split-off-most-of-sparse_file_read_normal-.patch
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0015-libsparse-Split-off-most-of-sparse_file_read_normal-.patch
@@ -8,7 +8,7 @@ This carves out the core of sparse_file_read_normal and splits it off so
it can be reused in the next patch. No functional change intended.
Change-Id: Id00491fd7e5bb6fa28c517a0bb32b8b506539d4d
-Upstream-status: Backport [95657f3e5976d96073f7bbfe3a49192509999d1d]
+Upstream-Status: Backport [95657f3e5976d96073f7bbfe3a49192509999d1d]
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
---
libsparse/sparse_read.c | 21 ++++++++++++++++-----
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/adb_libssl_11.diff b/meta-oe/recipes-devtools/android-tools/android-tools/core/adb_libssl_11.diff
index 3ead649b1d..177d69a97a 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/adb_libssl_11.diff
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/adb_libssl_11.diff
@@ -4,8 +4,12 @@ Description: adb: Make compatible with openssl 1.1
Author: Chirayu Desai <chirayudesai1@gmail.com
Last-Update: 2016-11-10
---
+Upstream-Status: Pending
+
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
---
+Upstream-Status: Pending
+
system/core/adb/adb_auth_host.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch b/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch
index 87771cba85..8b5e4cf999 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch
@@ -24,6 +24,8 @@ Signed-off-by: Petr Lautrbach <plautrba@redhat.com>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/procattr.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
index abd140c7b8..1c66ea4997 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
+++ b/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
@@ -92,7 +92,7 @@ do_compile() {
# Setting both variables below causing our makefiles to not work with
# implicit make rules
- unset CFLAGS
+ CFLAGS="-ffile-prefix-map=${S}=${TARGET_DBGSRC_DIR}"
unset CPPFLAGS
export SRCDIR=${S}
diff --git a/meta-oe/recipes-devtools/apitrace/apitrace_11.1.bb b/meta-oe/recipes-devtools/apitrace/apitrace_11.1.bb
index aed7977595..d872c4dbb5 100644
--- a/meta-oe/recipes-devtools/apitrace/apitrace_11.1.bb
+++ b/meta-oe/recipes-devtools/apitrace/apitrace_11.1.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=aeb969185a143c3c25130bc2c3ef9a50 \
file://thirdparty/snappy/COPYING;md5=f62f3080324a97b3159a7a7e61812d0c"
SRCREV = "9352fc02bba106fbbeef9e8452ef34643c0d0764"
-PV .= "+11.1+git${SRCPV}"
+PV .= "+11.1+git"
SRC_URI = "gitsm://github.com/${BPN}/${BPN}.git;branch=master;protocol=https \
"
diff --git a/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13-native_2.13.bb b/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13-native_2.13.bb
index 21d1356f7b..d0e0446eb8 100644
--- a/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13-native_2.13.bb
+++ b/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13-native_2.13.bb
@@ -43,7 +43,7 @@ CONFIGUREOPTS = " \
--localstatedir=${localstatedir} \
--libdir=${libdir} \
--includedir=${includedir} \
- --oldincludedir=${oldincludedir} \
+ --oldincludedir=${includedir} \
--infodir=${infodir} \
--mandir=${mandir} \
--disable-silent-rules \
diff --git a/meta-oe/recipes-devtools/boost-url/boost-url_git.bb b/meta-oe/recipes-devtools/boost-url/boost-url_git.bb
deleted file mode 100644
index 14da3ca3f1..0000000000
--- a/meta-oe/recipes-devtools/boost-url/boost-url_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "Boost.URL is a library for manipulating Uniform Resource Identifiers (URI) and Locators (URL)"
-HOMEPAGE = "https://github.com/CPPAlliance/url"
-SECTION = "libs"
-LICENSE = "BSL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
-
-SRC_URI = "git://github.com/CPPAlliance/url.git;branch=develop;protocol=https"
-
-SRCREV = "d740a92d38e3a8f4d5b2153f53b82f1c98e312ab"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "boost"
-
-BBCLASSEXTEND = "native nativesdk"
-
-do_install() {
- mkdir -p ${D}/${includedir}
- cp -r ${S}/include/** ${D}/${includedir}/
-}
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0001-Do-not-add-stack-pointer-to-clobber-list.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0001-Do-not-add-stack-pointer-to-clobber-list.patch
deleted file mode 100644
index 6e58490980..0000000000
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0001-Do-not-add-stack-pointer-to-clobber-list.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 5c63eb5d56abd4e5232add4727247965a863d851 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 15 Dec 2019 14:02:45 -0800
-Subject: [PATCH] Do not add stack pointer to clobber list
-
-It was being ignored until now when gcc 9.0 became capable
-of flagging these silent ignore via [1].
-
-We weren't actually clobbering the stack pointers here
-so it should not cause change in behavior.
-
-[1] https://gcc.gnu.org/PR52813
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- linux_syscall_support.h | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/linux_syscall_support.h b/linux_syscall_support.h
-index 9276f56..6e73309 100644
---- a/linux_syscall_support.h
-+++ b/linux_syscall_support.h
-@@ -1955,7 +1955,7 @@ struct kernel_statfs {
- LSS_ENTRYPOINT \
- "pop %%ebx" \
- args \
-- : "esp", "memory"); \
-+ : "memory"); \
- LSS_RETURN(type,__res)
- #undef _syscall0
- #define _syscall0(type,name) \
-@@ -2012,7 +2012,7 @@ struct kernel_statfs {
- : "i" (__NR_##name), "ri" ((long)(arg1)), \
- "c" ((long)(arg2)), "d" ((long)(arg3)), \
- "S" ((long)(arg4)), "D" ((long)(arg5)) \
-- : "esp", "memory"); \
-+ : "memory"); \
- LSS_RETURN(type,__res); \
- }
- #undef _syscall6
-@@ -2034,7 +2034,7 @@ struct kernel_statfs {
- : "i" (__NR_##name), "0" ((long)(&__s)), \
- "c" ((long)(arg2)), "d" ((long)(arg3)), \
- "S" ((long)(arg4)), "D" ((long)(arg5)) \
-- : "esp", "memory"); \
-+ : "memory"); \
- LSS_RETURN(type,__res); \
- }
- LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
-@@ -2120,7 +2120,7 @@ struct kernel_statfs {
- : "0"(-EINVAL), "i"(__NR_clone),
- "m"(fn), "m"(child_stack), "m"(flags), "m"(arg),
- "m"(parent_tidptr), "m"(newtls), "m"(child_tidptr)
-- : "esp", "memory", "ecx", "edx", "esi", "edi");
-+ : "memory", "ecx", "edx", "esi", "edi");
- LSS_RETURN(int, __res);
- }
-
---
-2.24.1
-
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0001-Fixed-missing-include-for-std-find_if.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0001-Fixed-missing-include-for-std-find_if.patch
new file mode 100644
index 0000000000..943daf4d00
--- /dev/null
+++ b/meta-oe/recipes-devtools/breakpad/breakpad/0001-Fixed-missing-include-for-std-find_if.patch
@@ -0,0 +1,31 @@
+From 45ea097e864e566771d756c92619e984815acd1e Mon Sep 17 00:00:00 2001
+From: Nathan Moinvaziri <nathan@nathanm.com>
+Date: Tue, 19 Dec 2023 14:35:05 -0800
+Subject: [PATCH] Fixed missing include for std::find_if.
+
+Throws an error when compiling on Windows.
+
+Upstream-Status: Backport [https://github.com/google/breakpad/commit/898a997855168c0e6a689072fefba89246271a5d]
+Change-Id: Ieb34c00cf199aaa1b45a440086c48b8ed363b3c7
+Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/5137658
+Reviewed-by: Ivan Penkov <ivanpe@chromium.org>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/common/module.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/common/module.cc b/src/common/module.cc
+index 0eb5aad8..b6f5da7e 100644
+--- a/src/common/module.cc
++++ b/src/common/module.cc
+@@ -42,6 +42,7 @@
+ #include <stdio.h>
+ #include <string.h>
+
++#include <algorithm>
+ #include <functional>
+ #include <iostream>
+ #include <memory>
+--
+2.43.0
+
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch
index d7a5c06753..df41b4d6c0 100644
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch
+++ b/meta-oe/recipes-devtools/breakpad/breakpad/0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch
@@ -12,11 +12,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Makefile.am | 12 ------------
1 file changed, 12 deletions(-)
-diff --git a/Makefile.am b/Makefile.am
-index ee7454e4..69700192 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -187,10 +187,6 @@ src_client_linux_libbreakpad_client_a_SOURCES = \
+@@ -529,10 +529,6 @@ src_client_linux_libbreakpad_client_a_SO
src/common/linux/linux_libc_support.cc \
src/common/linux/memory_mapped_file.cc \
src/common/linux/safe_readlink.cc
@@ -24,10 +22,10 @@ index ee7454e4..69700192 100644
-src_client_linux_libbreakpad_client_a_SOURCES += \
- src/common/linux/breakpad_getcontext.S
-endif
- endif LINUX_HOST
- if !DISABLE_PROCESSOR
-@@ -508,10 +504,6 @@ src_client_linux_linux_client_unittest_shlib_SOURCES = \
+ # Client tests
+ src_client_linux_linux_dumper_unittest_helper_SOURCES = \
+@@ -580,10 +576,6 @@ src_client_linux_linux_client_unittest_s
src/processor/minidump.cc \
src/processor/pathname_stripper.cc \
src/processor/proc_maps_linux.cc
@@ -38,7 +36,7 @@ index ee7454e4..69700192 100644
src_client_linux_linux_client_unittest_shlib_CPPFLAGS = \
$(AM_CPPFLAGS) $(TEST_CFLAGS)
-@@ -541,10 +533,6 @@ src_client_linux_linux_client_unittest_shlib_LDADD = \
+@@ -613,10 +605,6 @@ src_client_linux_linux_client_unittest_s
src/common/string_conversion.o \
$(TEST_LIBS) \
$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
@@ -49,6 +47,3 @@ index ee7454e4..69700192 100644
if ANDROID_HOST
src_client_linux_linux_client_unittest_shlib_LDFLAGS += \
-llog -lm
---
-2.30.2
-
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch
index 6b8d011d8b..b2d2c72cb1 100644
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch
+++ b/meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch
@@ -10,6 +10,8 @@ Fix
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/client/linux/crash_generation/crash_generation_server.cc | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0001-exception_handler.cc-Match-the-types-for-SIGSTKSZ.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0001-exception_handler.cc-Match-the-types-for-SIGSTKSZ.patch
deleted file mode 100644
index afe8a61b29..0000000000
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0001-exception_handler.cc-Match-the-types-for-SIGSTKSZ.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 66a2b6e4ba8e2b49115043127ce4aa0fcd71ad1e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 11 May 2021 11:12:35 -0700
-Subject: [PATCH] exception_handler.cc: Match the types for SIGSTKSZ
-
-In glibc 2.34, SIGSTKSZ is a syscall which returns a long int, therefore
-current check fails
-
-| ../git/src/client/linux/handler/exception_handler.cc:141:49: error: no matching function for call to 'max(int, long int)'
-| 141 | static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
-| | ~~~~~~~~^~~~~~~~~~~~~~~~~
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/client/linux/handler/exception_handler.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
-index ca353c40..dc0fc4a9 100644
---- a/src/client/linux/handler/exception_handler.cc
-+++ b/src/client/linux/handler/exception_handler.cc
-@@ -138,7 +138,7 @@ void InstallAlternateStackLocked() {
- // SIGSTKSZ may be too small to prevent the signal handlers from overrunning
- // the alternative stack. Ensure that the size of the alternative stack is
- // large enough.
-- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
-+ static const unsigned kSigStackSize = std::max(16384u, (unsigned)SIGSTKSZ);
-
- // Only set an alternative stack if there isn't already one, or if the current
- // one is too small.
---
-2.31.1
-
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch
index 3dc55cf1fc..87e00c2422 100644
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch
+++ b/meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch
@@ -4,6 +4,8 @@ Date: Sun, 1 Feb 2015 14:26:52 +0100
Subject: [PATCH 1/3] include <sys/reg.h> to get __WORDSIZE on musl libc
---
+Upstream-Status: Pending
+
src/common/linux/elf_core_dump.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch
index bdd787afd5..80e5a8a764 100644
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch
+++ b/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch
@@ -5,12 +5,14 @@ Subject: [PATCH] lss: Match syscalls to match musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
linux_syscall_support.h | 3 +++
1 file changed, 3 insertions(+)
--- a/linux_syscall_support.h
+++ b/linux_syscall_support.h
-@@ -816,6 +816,9 @@ struct kernel_statfs {
+@@ -1006,6 +1006,9 @@ struct kernel_statx {
#define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
#endif
@@ -20,17 +22,17 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
#if defined(__x86_64__)
#ifndef ARCH_SET_GS
-@@ -947,6 +950,7 @@ struct kernel_statfs {
- #ifndef __NR_fallocate
- #define __NR_fallocate 324
+@@ -1140,6 +1143,7 @@ struct kernel_statx {
+ #ifndef __NR_getrandom
+ #define __NR_getrandom 355
#endif
+
/* End of i386 definitions */
#elif defined(__ARM_ARCH_3__) || defined(__ARM_EABI__)
#ifndef __NR_setresuid
-@@ -1239,6 +1243,12 @@ struct kernel_statfs {
- #ifndef __NR_fallocate
- #define __NR_fallocate 285
+@@ -1448,6 +1452,12 @@ struct kernel_statx {
+ #ifndef __NR_getrandom
+ #define __NR_getrandom 318
#endif
+#ifndef __NR_pread
+#define __NR_pread __NR_pread64
@@ -41,9 +43,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
/* End of x86-64 definitions */
#elif defined(__mips__)
#if _MIPS_SIM == _MIPS_SIM_ABI32
-@@ -1418,6 +1428,12 @@ struct kernel_statfs {
- #ifndef __NR_ioprio_get
- #define __NR_ioprio_get (__NR_Linux + 274)
+@@ -1633,6 +1643,12 @@ struct kernel_statx {
+ #ifndef __NR_getrandom
+ #define __NR_getrandom (__NR_Linux + 313)
#endif
+
+#undef __NR_pread
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch
index 76b2088b01..81844d0d66 100644
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch
+++ b/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 3/5] Dont include stab.h
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/common/stabs_reader.cc | 1 -
src/common/stabs_reader.h | 12 +++++++++++-
src/common/stabs_reader_unittest.cc | 1 -
@@ -12,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/src/common/stabs_reader.cc
+++ b/src/common/stabs_reader.cc
-@@ -34,7 +34,9 @@
+@@ -38,7 +38,9 @@
#include "common/stabs_reader.h"
#include <assert.h>
@@ -24,7 +26,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
#include <string>
--- a/src/common/stabs_reader.h
+++ b/src/common/stabs_reader.h
-@@ -58,6 +58,30 @@
+@@ -54,6 +54,30 @@
#elif defined(HAVE_A_OUT_H)
#include <a.out.h>
#endif
@@ -57,7 +59,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
#include <vector>
--- a/src/common/stabs_reader_unittest.cc
+++ b/src/common/stabs_reader_unittest.cc
-@@ -33,7 +33,9 @@
+@@ -36,7 +36,9 @@
#include <assert.h>
#include <errno.h>
@@ -69,8 +71,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
#include <string.h>
--- a/configure.ac
+++ b/configure.ac
-@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32,
- AC_HEADER_STDC
+@@ -61,7 +61,7 @@ fi
+
AC_SYS_LARGEFILE
AX_PTHREAD
-AC_CHECK_HEADERS([a.out.h sys/mman.h sys/random.h])
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch
index 851004704f..9b16dc3b2a 100644
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch
+++ b/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch
@@ -6,22 +6,22 @@ Subject: [PATCH 3/3] Fix conflict between musl libc <dirent.h> and lss
Include <dirent.h> late to avoid the macro getdents64 in musl
libc's <dirent.h> to conflict with linux_sycall_support.h.
---
+Upstream-Status: Pending
+
src/client/linux/crash_generation/crash_generation_server.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
-diff --git a/src/client/linux/crash_generation/crash_generation_server.cc b/src/client/linux/crash_generation/crash_generation_server.cc
-index 26c50a5c..2596afde 100644
--- a/src/client/linux/crash_generation/crash_generation_server.cc
+++ b/src/client/linux/crash_generation/crash_generation_server.cc
-@@ -28,7 +28,6 @@
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+@@ -31,7 +31,6 @@
+ #endif
#include <assert.h>
-#include <dirent.h>
#include <fcntl.h>
#include <limits.h>
#include <poll.h>
-@@ -49,6 +48,8 @@
+@@ -52,6 +51,8 @@
#include "common/linux/guid_creator.h"
#include "common/linux/safe_readlink.h"
@@ -30,6 +30,3 @@ index 26c50a5c..2596afde 100644
static const char kCommandQuit = 'x';
namespace google_breakpad {
---
-2.14.1
-
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch
index 5892cfa7d6..ff331977b6 100644
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch
+++ b/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch
@@ -6,13 +6,15 @@ Subject: [PATCH 4/5] elf_reader.cc: include <sys/reg.h> to get __WORDSIZE on
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/common/dwarf/elf_reader.cc | 1 +
1 file changed, 1 insertion(+)
--- a/src/common/dwarf/elf_reader.cc
+++ b/src/common/dwarf/elf_reader.cc
-@@ -30,12 +30,16 @@
- #define _GNU_SOURCE // needed for pread()
+@@ -34,12 +34,16 @@
+ #include <config.h> // Must come first
#endif
+#include <config.h>
@@ -30,8 +32,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
#include <algorithm>
--- a/configure.ac
+++ b/configure.ac
-@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32,
- AC_HEADER_STDC
+@@ -61,7 +61,7 @@ fi
+
AC_SYS_LARGEFILE
AX_PTHREAD
-AC_CHECK_HEADERS([a.out.h stab.h sys/mman.h sys/random.h])
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch b/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
index 51393967bc..cb323fbdcb 100644
--- a/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
+++ b/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
@@ -1,18 +1,16 @@
map the mcontext_t structure for musl
-Upstream-Status: Inappropriate[need to consider Android]
+Upstream-Status: Inappropriate [need to consider Android]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: git/src/client/linux/minidump_writer/linux_core_dumper.cc
-===================================================================
---- git.orig/src/client/linux/minidump_writer/linux_core_dumper.cc
-+++ git/src/client/linux/minidump_writer/linux_core_dumper.cc
-@@ -196,7 +196,7 @@ bool LinuxCoreDumper::EnumerateThreads()
+--- a/src/client/linux/minidump_writer/linux_core_dumper.cc
++++ b/src/client/linux/minidump_writer/linux_core_dumper.cc
+@@ -214,7 +214,7 @@ bool LinuxCoreDumper::EnumerateThreads()
info.tgid = status->pr_pgrp;
info.ppid = status->pr_ppid;
#if defined(__mips__)
--#if defined(__ANDROID__)
-+#if defined(__ANDROID__) || !defined(__GLIBC__)
+-# if defined(__ANDROID__)
++# if defined(__ANDROID__) || !defined(__GLIBC__)
for (int i = EF_R0; i <= EF_R31; i++)
info.mcontext.gregs[i - EF_R0] = status->pr_reg[i];
- #else // __ANDROID__
+ # else // __ANDROID__
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch b/meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch
index 96f5f48cc8..77d08399bf 100644
--- a/meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch
+++ b/meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/linux_syscall_support.h
+++ b/linux_syscall_support.h
@@ -119,14 +119,7 @@ extern "C" {
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad_2023.06.01.bb b/meta-oe/recipes-devtools/breakpad/breakpad_2023.06.01.bb
new file mode 100644
index 0000000000..3bf4371e85
--- /dev/null
+++ b/meta-oe/recipes-devtools/breakpad/breakpad_2023.06.01.bb
@@ -0,0 +1,127 @@
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+# Applications using this library needs to add link against libbreakpad_client.a.
+
+SUMMARY = "An open-source multi-platform crash reporting system"
+DESCRIPTION = "Breakpad is a library and tool suite that allows you to distribute an application to users with compiler-provided debugging information removed, record crashes in compact \"minidump\" files, send them back to your server, and produce C and C++ stack traces from these minidumps. "
+HOMEPAGE = "https://code.google.com/p/google-breakpad/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=07aeb530115539d62cacf9942fa60cac"
+SECTION = "libs"
+
+inherit autotools
+
+DEPENDS += "zlib"
+DEPENDS:append:libc-musl = " libucontext"
+
+BBCLASSEXTEND = "native"
+
+PE = "2"
+
+SRCREV_FORMAT = "breakpad_gtest_protobuf_lss"
+
+SRCREV_breakpad = "8988364bcddd9b194b0bf931c10bc125987330ed"
+#v1.11.0
+SRCREV_gtest = "e2239ee6043f73722e7aa812a459f54a28552929"
+SRCREV_protobuf = "cb6dd4ef5f82e41e06179dcd57d3b1d9246ad6ac"
+SRCREV_lss = "9719c1e1e676814c456b55f5f070eabad6709d31"
+
+SRC_URI = "git://github.com/google/breakpad;name=breakpad;branch=main;protocol=https \
+ git://github.com/google/googletest.git;destsuffix=git/src/testing/gtest;name=gtest;branch=main;protocol=https \
+ git://github.com/protocolbuffers/protobuf.git;destsuffix=git/src/third_party/protobuf/protobuf;name=protobuf;branch=master;protocol=https \
+ git://chromium.googlesource.com/linux-syscall-support;protocol=https;branch=main;destsuffix=git/src/third_party/lss;name=lss \
+ file://0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch \
+ file://0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch \
+ file://0001-Turn-off-sign-compare-for-musl-libc.patch \
+ file://0003-Dont-include-stab.h.patch \
+ file://0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch \
+ file://mcontext.patch \
+ file://0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch \
+ file://0001-Fixed-missing-include-for-std-find_if.patch \
+ file://0001-lss-Match-syscalls-to-match-musl.patch;patchdir=src/third_party/lss \
+ file://mips_asm_sgidefs.patch;patchdir=src/third_party/lss \
+"
+S = "${WORKDIR}/git"
+
+CXXFLAGS += "-D_GNU_SOURCE"
+LDFLAGS:append:libc-musl = " -lucontext"
+
+COMPATIBLE_HOST:powerpc = "null"
+COMPATIBLE_HOST:powerpc64 = "null"
+COMPATIBLE_HOST:powerpc64le = "null"
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
+
+do_install:append() {
+ install -d ${D}${includedir}
+ install -d ${D}${includedir}/breakpad
+
+ install -d ${D}${includedir}/breakpad/client/linux/crash_generation
+ install -m 0644 ${S}/src/client/linux/crash_generation/crash_generation_client.h ${D}${includedir}/breakpad/client/linux/crash_generation/crash_generation_client.h
+
+ install -d ${D}${includedir}/breakpad/client/linux/handler/
+ install -m 0644 ${S}/src/client/linux/handler/exception_handler.h ${D}${includedir}/breakpad/client/linux/handler/exception_handler.h
+ install -m 0644 ${S}/src/client/linux/handler/minidump_descriptor.h ${D}${includedir}/breakpad/client/linux/handler/minidump_descriptor.h
+
+ install -d ${D}${includedir}/breakpad/client/linux/dump_writer_common
+ install -m 0644 ${S}/src/client/linux/dump_writer_common/mapping_info.h ${D}${includedir}/breakpad/client/linux/dump_writer_common/mapping_info.h
+ install -m 0644 ${S}/src/client/linux/dump_writer_common/thread_info.h ${D}${includedir}/breakpad/client/linux/dump_writer_common/thread_info.h
+ install -m 0644 ${S}/src/client/linux/dump_writer_common/raw_context_cpu.h ${D}${includedir}/breakpad/client/linux/dump_writer_common/raw_context_cpu.h
+
+ install -d ${D}${includedir}/breakpad/client/linux/minidump_writer
+ install -m 0644 ${S}/src/client/linux/minidump_writer/linux_dumper.h ${D}${includedir}/breakpad/client/linux/minidump_writer/linux_dumper.h
+ install -m 0644 ${S}/src/client/linux/minidump_writer/minidump_writer.h ${D}${includedir}/breakpad/client/linux/minidump_writer/minidump_writer.h
+
+ install -d ${D}${includedir}/breakpad/common
+ install -m 0644 ${S}/src/common/memory_allocator.h ${D}${includedir}/breakpad/common/memory_allocator.h
+ install -m 0644 ${S}/src/common/scoped_ptr.h ${D}${includedir}/breakpad/common/scoped_ptr.h
+ install -m 0644 ${S}/src/common/using_std_string.h ${D}${includedir}/breakpad/common/using_std_string.h
+
+ install -d ${D}${includedir}/breakpad/google_breakpad/common
+ install -m 0644 ${S}/src/google_breakpad/common/breakpad_types.h ${D}${includedir}/breakpad/google_breakpad/common/breakpad_types.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_format.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_format.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_amd64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_amd64.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_arm.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_arm.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_arm64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_arm64.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_mips.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_mips.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_ppc64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_ppc64.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_ppc.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_ppc.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_sparc.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_sparc.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_x86.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_x86.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_linux.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_linux.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_mac.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_mac.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_ps3.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_ps3.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_solaris.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_solaris.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_win32.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_win32.h
+
+ install -d ${D}${includedir}/breakpad/third_party/lss
+ install -m 0644 ${S}/src/third_party/lss/linux_syscall_support.h ${D}${includedir}/breakpad/third_party/lss/linux_syscall_support.h
+}
+
+PACKAGES =+ "${PN}-minidump-upload ${PN}-sym-upload"
+
+FILES:${PN}-minidump-upload = "${bindir}/minidump_upload"
+FILES:${PN}-sym-upload = "${bindir}/sym_upload"
+
+
+SYSROOT_PREPROCESS_FUNCS += "breakpad_populate_sysroot"
+breakpad_populate_sysroot() {
+ sysroot_stage_dir ${D}/usr/include ${SYSROOT_DESTDIR}/usr/include
+ sysroot_stage_dir ${D}/usr/lib ${SYSROOT_DESTDIR}/usr/lib
+ sysroot_stage_dir ${D}/usr/lib ${SYSROOT_DESTDIR}/usr/lib
+}
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:2178: Error: selected processor does not support Thumb mode `it ne'
+#| {standard input}:2179: Error: Thumb does not support conditional execution
+#| {standard input}:2180: Error: selected processor does not support Thumb mode `it eq'
+#| {standard input}:2181: Error: Thumb does not support conditional execution
+#| {standard input}:2183: Error: lo register required -- `str ip,[r1,#-4]!'
+#| {standard input}:2184: Error: Thumb does not support this addressing mode -- `str r6,[r1,#-4]!'
+#| {standard input}:2191: Error: lo register required -- `ldr pc,[sp]'
+#| make: *** [src/client/linux/handler/exception_handler.o] Error 1
+ARM_INSTRUCTION_SET:armv5 = "arm"
+ARM_INSTRUCTION_SET:armv4 = "arm"
+
+TOOLCHAIN = "gcc"
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad_git.bb b/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
deleted file mode 100644
index c752a10083..0000000000
--- a/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
+++ /dev/null
@@ -1,131 +0,0 @@
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-# Applications using this library needs to add link against libbreakpad_client.a.
-
-SUMMARY = "An open-source multi-platform crash reporting system"
-DESCRIPTION = "Breakpad is a library and tool suite that allows you to distribute an application to users with compiler-provided debugging information removed, record crashes in compact \"minidump\" files, send them back to your server, and produce C and C++ stack traces from these minidumps. "
-HOMEPAGE = "https://code.google.com/p/google-breakpad/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8bb274ebd1901085fd71a8d8afe8831b"
-SECTION = "libs"
-
-inherit autotools
-
-DEPENDS:append:libc-musl = " libucontext"
-
-BBCLASSEXTEND = "native"
-
-PE = "2"
-
-PV = "1.0"
-
-SRCREV_FORMAT = "breakpad_gtest_protobuf_lss_gyp"
-
-SRCREV_breakpad = "8b22babdf894e5aa98b2dbbe103f7e3856a71944"
-#v1.10.0
-SRCREV_gtest = "4fe018038f87675c083d0cfb6a6b57c274fb1753"
-SRCREV_protobuf = "cb6dd4ef5f82e41e06179dcd57d3b1d9246ad6ac"
-SRCREV_lss = "fd00dbbd0c06a309c657d89e9430143b179ff6db"
-SRCREV_gyp = "324dd166b7c0b39d513026fa52d6280ac6d56770"
-
-SRC_URI = "git://github.com/google/breakpad;name=breakpad;branch=main;protocol=https \
- git://github.com/google/googletest.git;destsuffix=git/src/testing/gtest;name=gtest;branch=main;protocol=https \
- git://github.com/protocolbuffers/protobuf.git;destsuffix=git/src/third_party/protobuf/protobuf;name=protobuf;branch=master;protocol=https \
- git://chromium.googlesource.com/linux-syscall-support;protocol=https;branch=main;destsuffix=git/src/third_party/lss;name=lss \
- git://chromium.googlesource.com/external/gyp;protocol=https;destsuffix=git/src/tools/gyp;name=gyp;branch=master \
- file://0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch \
- file://0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch \
- file://0001-Turn-off-sign-compare-for-musl-libc.patch \
- file://0003-Dont-include-stab.h.patch \
- file://0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch \
- file://mcontext.patch \
- file://0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch \
- file://0001-exception_handler.cc-Match-the-types-for-SIGSTKSZ.patch \
- file://0001-lss-Match-syscalls-to-match-musl.patch;patchdir=src/third_party/lss \
- file://mips_asm_sgidefs.patch;patchdir=src/third_party/lss \
- file://0001-Do-not-add-stack-pointer-to-clobber-list.patch;patchdir=src/third_party/lss \
-"
-S = "${WORKDIR}/git"
-
-CXXFLAGS += "-D_GNU_SOURCE"
-LDFLAGS:append:libc-musl = " -lucontext"
-
-COMPATIBLE_HOST:powerpc = "null"
-COMPATIBLE_HOST:powerpc64 = "null"
-COMPATIBLE_HOST:powerpc64le = "null"
-COMPATIBLE_HOST:riscv64 = "null"
-COMPATIBLE_HOST:riscv32 = "null"
-
-do_install:append() {
- install -d ${D}${includedir}
- install -d ${D}${includedir}/breakpad
-
- install -d ${D}${includedir}/breakpad/client/linux/crash_generation
- install -m 0644 ${S}/src/client/linux/crash_generation/crash_generation_client.h ${D}${includedir}/breakpad/client/linux/crash_generation/crash_generation_client.h
-
- install -d ${D}${includedir}/breakpad/client/linux/handler/
- install -m 0644 ${S}/src/client/linux/handler/exception_handler.h ${D}${includedir}/breakpad/client/linux/handler/exception_handler.h
- install -m 0644 ${S}/src/client/linux/handler/minidump_descriptor.h ${D}${includedir}/breakpad/client/linux/handler/minidump_descriptor.h
-
- install -d ${D}${includedir}/breakpad/client/linux/dump_writer_common
- install -m 0644 ${S}/src/client/linux/dump_writer_common/mapping_info.h ${D}${includedir}/breakpad/client/linux/dump_writer_common/mapping_info.h
- install -m 0644 ${S}/src/client/linux/dump_writer_common/thread_info.h ${D}${includedir}/breakpad/client/linux/dump_writer_common/thread_info.h
- install -m 0644 ${S}/src/client/linux/dump_writer_common/raw_context_cpu.h ${D}${includedir}/breakpad/client/linux/dump_writer_common/raw_context_cpu.h
-
- install -d ${D}${includedir}/breakpad/client/linux/minidump_writer
- install -m 0644 ${S}/src/client/linux/minidump_writer/linux_dumper.h ${D}${includedir}/breakpad/client/linux/minidump_writer/linux_dumper.h
- install -m 0644 ${S}/src/client/linux/minidump_writer/minidump_writer.h ${D}${includedir}/breakpad/client/linux/minidump_writer/minidump_writer.h
-
- install -d ${D}${includedir}/breakpad/common
- install -m 0644 ${S}/src/common/memory_allocator.h ${D}${includedir}/breakpad/common/memory_allocator.h
- install -m 0644 ${S}/src/common/scoped_ptr.h ${D}${includedir}/breakpad/common/scoped_ptr.h
- install -m 0644 ${S}/src/common/using_std_string.h ${D}${includedir}/breakpad/common/using_std_string.h
-
- install -d ${D}${includedir}/breakpad/google_breakpad/common
- install -m 0644 ${S}/src/google_breakpad/common/breakpad_types.h ${D}${includedir}/breakpad/google_breakpad/common/breakpad_types.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_format.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_format.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_amd64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_amd64.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_arm.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_arm.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_arm64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_arm64.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_mips.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_mips.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_ppc64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_ppc64.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_ppc.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_ppc.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_sparc.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_sparc.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_x86.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_x86.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_linux.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_linux.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_mac.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_mac.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_ps3.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_ps3.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_solaris.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_solaris.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_exception_win32.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_exception_win32.h
-
- install -d ${D}${includedir}/breakpad/third_party/lss
- install -m 0644 ${S}/src/third_party/lss/linux_syscall_support.h ${D}${includedir}/breakpad/third_party/lss/linux_syscall_support.h
-}
-
-PACKAGES =+ "${PN}-minidump-upload ${PN}-sym-upload"
-
-FILES:${PN}-minidump-upload = "${bindir}/minidump_upload"
-FILES:${PN}-sym-upload = "${bindir}/sym_upload"
-
-
-SYSROOT_PREPROCESS_FUNCS += "breakpad_populate_sysroot"
-breakpad_populate_sysroot() {
- sysroot_stage_dir ${D}/usr/include ${SYSROOT_DESTDIR}/usr/include
- sysroot_stage_dir ${D}/usr/lib ${SYSROOT_DESTDIR}/usr/lib
- sysroot_stage_dir ${D}/usr/lib ${SYSROOT_DESTDIR}/usr/lib
-}
-
-# Fails to build with thumb-1 (qemuarm)
-#| {standard input}: Assembler messages:
-#| {standard input}:2178: Error: selected processor does not support Thumb mode `it ne'
-#| {standard input}:2179: Error: Thumb does not support conditional execution
-#| {standard input}:2180: Error: selected processor does not support Thumb mode `it eq'
-#| {standard input}:2181: Error: Thumb does not support conditional execution
-#| {standard input}:2183: Error: lo register required -- `str ip,[r1,#-4]!'
-#| {standard input}:2184: Error: Thumb does not support this addressing mode -- `str r6,[r1,#-4]!'
-#| {standard input}:2191: Error: lo register required -- `ldr pc,[sp]'
-#| make: *** [src/client/linux/handler/exception_handler.o] Error 1
-ARM_INSTRUCTION_SET:armv5 = "arm"
-ARM_INSTRUCTION_SET:armv4 = "arm"
-
-TOOLCHAIN = "gcc"
diff --git a/meta-oe/recipes-devtools/capnproto/capnproto_0.10.2.bb b/meta-oe/recipes-devtools/capnproto/capnproto_0.10.2.bb
deleted file mode 100644
index 3d4f549b62..0000000000
--- a/meta-oe/recipes-devtools/capnproto/capnproto_0.10.2.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Cap'n Proto serialization/RPC system"
-DESCRIPTION = "Cap’n Proto is an insanely fast data interchange format and capability-based RPC system. "
-HOMEPAGE = "https://github.com/sandstorm-io/capnproto"
-SECTION = "console/tools"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=a05663ae6cca874123bf667a60dca8c9"
-
-SRC_URI = "git://github.com/sandstorm-io/capnproto.git;branch=release-${PV};protocol=https \
- "
-SRCREV = "2e88221d3dde22266bfccf40eaee6ff9b40d113d"
-
-S = "${WORKDIR}/git/c++"
-
-inherit cmake
-
-CXXFLAGS:append:mips = " -latomic"
-CXXFLAGS:append:powerpc = " -latomic"
-CXXFLAGS:append:riscv32 = " -latomic"
-
-EXTRA_OECMAKE += "\
- -DBUILD_TESTING=OFF \
-"
-
-FILES:${PN}-compiler = "${bindir}"
-
-PACKAGE_BEFORE_PN = "${PN}-compiler"
-RDEPENDS:${PN}-dev += "${PN}-compiler"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/capnproto/capnproto_1.0.2.bb b/meta-oe/recipes-devtools/capnproto/capnproto_1.0.2.bb
new file mode 100644
index 0000000000..cb4aef5224
--- /dev/null
+++ b/meta-oe/recipes-devtools/capnproto/capnproto_1.0.2.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Cap'n Proto serialization/RPC system"
+DESCRIPTION = "Cap’n Proto is an insanely fast data interchange format and capability-based RPC system. "
+HOMEPAGE = "https://github.com/sandstorm-io/capnproto"
+SECTION = "console/tools"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=a05663ae6cca874123bf667a60dca8c9"
+
+SRC_URI = "git://github.com/sandstorm-io/capnproto.git;branch=release-${PV};protocol=https"
+SRCREV = "1a0e12c0a3ba1f0dbbad45ddfef555166e0a14fc"
+
+S = "${WORKDIR}/git/c++"
+
+inherit cmake
+
+CXXFLAGS:append:mips = " -latomic"
+CXXFLAGS:append:powerpc = " -latomic"
+CXXFLAGS:append:riscv32 = " -latomic"
+
+EXTRA_OECMAKE += "\
+ -DBUILD_TESTING=OFF \
+"
+
+FILES:${PN}-compiler = "${bindir}"
+
+PACKAGE_BEFORE_PN = "${PN}-compiler"
+RDEPENDS:${PN}-dev += "${PN}-compiler"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/cgdb/cgdb/0001-cgdb-Do-not-search-for-cgdb.txt-in-build-dir.patch b/meta-oe/recipes-devtools/cgdb/cgdb/0001-cgdb-Do-not-search-for-cgdb.txt-in-build-dir.patch
new file mode 100644
index 0000000000..989df8ed92
--- /dev/null
+++ b/meta-oe/recipes-devtools/cgdb/cgdb/0001-cgdb-Do-not-search-for-cgdb.txt-in-build-dir.patch
@@ -0,0 +1,34 @@
+From be56e955a32e5e9da0be32008afb8a8ee60e9b56 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 24 May 2023 19:31:23 -0700
+Subject: [PATCH] cgdb: Do not search for cgdb.txt in build dir
+
+If we do cross builds it encodes the build time workdir here and it wont
+be useful to look into this dir since cross-built cgdb may not run on
+build host and build workdir will not exist on target
+
+Upstream-Status: Inappropriate [Cross-compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cgdb/interface.cpp | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/cgdb/interface.cpp b/cgdb/interface.cpp
+index dc58137..d3aab5e 100644
+--- a/cgdb/interface.cpp
++++ b/cgdb/interface.cpp
+@@ -1568,11 +1568,6 @@ void if_display_help(void)
+
+ fs_util_get_path(PKGDATADIR, "cgdb.txt", cgdb_help_file);
+
+- /* File doesn't exist. Try to find cgdb.txt in the build dir in case
+- * the user is running a built cgdb binary directly. */
+- if (!fs_verify_file_exists(cgdb_help_file))
+- fs_util_get_path(TOPBUILDDIR, "doc/cgdb.txt", cgdb_help_file);
+-
+ ret_val = source_set_exec_line(src_viewer, cgdb_help_file, 1, 0);
+
+ if (ret_val == 0)
+--
+2.40.1
+
diff --git a/meta-oe/recipes-devtools/cgdb/cgdb_0.8.0.bb b/meta-oe/recipes-devtools/cgdb/cgdb_0.8.0.bb
index c5a0030823..922dfc7763 100644
--- a/meta-oe/recipes-devtools/cgdb/cgdb_0.8.0.bb
+++ b/meta-oe/recipes-devtools/cgdb/cgdb_0.8.0.bb
@@ -9,7 +9,8 @@ DEPENDS = "flex-native readline ncurses"
inherit autotools texinfo
-SRC_URI = "http://cgdb.me/files/${BP}.tar.gz"
+SRC_URI = "http://cgdb.me/files/${BP}.tar.gz \
+ file://0001-cgdb-Do-not-search-for-cgdb.txt-in-build-dir.patch"
SRC_URI[sha256sum] = "0d38b524d377257b106bad6d856d8ae3304140e1ee24085343e6ddf1b65811f1"
CACHED_CONFIGUREVARS = "ac_cv_file__dev_ptmx=yes ac_cv_rl_version=6.2 ac_cv_file__proc_self_status=yes"
diff --git a/meta-oe/recipes-devtools/cjson/cjson/run-ptest b/meta-oe/recipes-devtools/cjson/cjson/run-ptest
new file mode 100644
index 0000000000..f061e94665
--- /dev/null
+++ b/meta-oe/recipes-devtools/cjson/cjson/run-ptest
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# exclude json_patch_tests
+if ctest -E 'json_patch_tests' ; then
+ echo "PASS: cjson"
+else
+ echo "FAIL: cjson"
+fi
diff --git a/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb b/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb
deleted file mode 100644
index 200f751669..0000000000
--- a/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "Ultralightweight JSON parser in ANSI C"
-AUTHOR = "Dave Gamble"
-HOMEPAGE = "https://github.com/DaveGamble/cJSON"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=218947f77e8cb8e2fa02918dc41c50d0"
-
-SRC_URI = "git://github.com/DaveGamble/cJSON.git;branch=master;protocol=https"
-SRCREV = "d348621ca93571343a56862df7de4ff3bc9b5667"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
-
-EXTRA_OECMAKE += "\
- -DENABLE_CJSON_UTILS=On \
- -DENABLE_CUSTOM_COMPILER_FLAGS=OFF \
- -DBUILD_SHARED_AND_STATIC_LIBS=On \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/cjson/cjson_1.7.17.bb b/meta-oe/recipes-devtools/cjson/cjson_1.7.17.bb
new file mode 100644
index 0000000000..6c8934b342
--- /dev/null
+++ b/meta-oe/recipes-devtools/cjson/cjson_1.7.17.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "Ultralightweight JSON parser in ANSI C"
+HOMEPAGE = "https://github.com/DaveGamble/cJSON"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=218947f77e8cb8e2fa02918dc41c50d0"
+
+SRC_URI = "git://github.com/DaveGamble/cJSON.git;branch=master;protocol=https \
+ file://run-ptest \
+ "
+SRCREV = "87d8f0961a01bf09bef98ff89bae9fdec42181ee"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig ptest
+
+RDEPENDS:${PN}-ptest += "cmake"
+
+do_install_ptest() {
+ # create directories
+ install -d ${D}${PTEST_PATH} ${D}${PTEST_PATH}/tests ${D}${PTEST_PATH}/fuzzing
+ install -d ${D}${PTEST_PATH}/tests/inputs ${D}${PTEST_PATH}/tests/json-patch-tests
+ # CTestTestfiles.cmake contain fully defined path generated by cmake.
+ # Change the fully defined path to ptest path on the target
+ sed s#${B}#${PTEST_PATH}# ${B}/CTestTestfile.cmake > ${D}${PTEST_PATH}/CTestTestfile.cmake
+ sed s#${B}#${PTEST_PATH}# ${B}/tests/CTestTestfile.cmake > ${D}${PTEST_PATH}/tests/CTestTestfile.cmake
+ sed s#${B}#${PTEST_PATH}# ${B}/fuzzing/CTestTestfile.cmake > ${D}${PTEST_PATH}/fuzzing/CTestTestfile.cmake
+ # install test artifacts
+ install ${B}/cJSON_test ${D}${PTEST_PATH}
+ install ${B}/tests/cjson_add ${B}/tests/*_tests ${B}/tests/parse_* ${B}/tests/print_* ${B}/tests/readme_examples ${D}${PTEST_PATH}/tests/
+ install ${B}/tests/inputs/* ${D}${PTEST_PATH}/tests/inputs
+ install ${B}/fuzzing/fuzz_main ${D}${PTEST_PATH}/fuzzing
+}
+
+EXTRA_OECMAKE += "\
+ -DENABLE_CJSON_UTILS=On \
+ -DENABLE_CUSTOM_COMPILER_FLAGS=OFF \
+ -DBUILD_SHARED_AND_STATIC_LIBS=On \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/cloc/cloc_1.94.bb b/meta-oe/recipes-devtools/cloc/cloc_1.94.bb
deleted file mode 100644
index 2f92d81001..0000000000
--- a/meta-oe/recipes-devtools/cloc/cloc_1.94.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Count blank lines, comment lines, and physical lines of source code \
-in many programming languages."
-AUTHOR = "Al Danial"
-
-LICENSE="GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2c1c00f9d3ed9e24fa69b932b7e7aff2"
-
-SRC_URI = "https://github.com/AlDanial/cloc/releases/download/v${PV}/${BP}.tar.gz"
-SRC_URI[sha256sum] = "08212290c4e9b21c7bb1abc0a9b4a365ce1c5eb0d8f3ebb74d50b29559a71a9c"
-
-UPSTREAM_CHECK_URI = "https://github.com/AlDanial/${BPN}/releases"
-
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
-do_install() {
- install -D -m 0755 ${S}/cloc ${D}${bindir}/cloc
-}
-
-RDEPENDS:${PN} = "perl perl-modules"
diff --git a/meta-oe/recipes-devtools/cloc/cloc_1.98.bb b/meta-oe/recipes-devtools/cloc/cloc_1.98.bb
new file mode 100644
index 0000000000..ea5f00669f
--- /dev/null
+++ b/meta-oe/recipes-devtools/cloc/cloc_1.98.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Count blank lines, comment lines, and physical lines of source code \
+in many programming languages."
+
+LICENSE="GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2c1c00f9d3ed9e24fa69b932b7e7aff2"
+
+SRC_URI = "https://github.com/AlDanial/cloc/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "5fe0b159eb75718df7308a4f61470eaddf82170733929999e37a3fbb4651cf8a"
+
+UPSTREAM_CHECK_URI = "https://github.com/AlDanial/${BPN}/releases"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ install -D -m 0755 ${S}/cloc ${D}${bindir}/cloc
+}
+
+RDEPENDS:${PN} = "perl perl-modules"
diff --git a/meta-oe/recipes-devtools/concurrencykit/concurrencykit/0001-build-Use-ilp32d-abi-on-riscv32-and-lp64d-on-rv64.patch b/meta-oe/recipes-devtools/concurrencykit/concurrencykit/0001-build-Use-ilp32d-abi-on-riscv32-and-lp64d-on-rv64.patch
new file mode 100644
index 0000000000..a8ff77298f
--- /dev/null
+++ b/meta-oe/recipes-devtools/concurrencykit/concurrencykit/0001-build-Use-ilp32d-abi-on-riscv32-and-lp64d-on-rv64.patch
@@ -0,0 +1,32 @@
+From 00f822ab79b6c06936147af4d832e439cecf0fc0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 7 Jan 2023 19:31:58 -0800
+Subject: [PATCH] build: Use ilp32d abi on riscv32 and lp64d on rv64
+
+ilp32d is common ABI used for linux distributions therefore a better
+default, similarily lp64d is common ABI for rv64 linux
+
+Upstream-Status: Submitted [https://github.com/concurrencykit/ck/pull/204]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ build/ck.build.riscv | 2 +-
+ build/ck.build.riscv64 | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/build/ck.build.riscv b/build/ck.build.riscv
+index 61e0033..11ac840 100644
+--- a/build/ck.build.riscv
++++ b/build/ck.build.riscv
+@@ -1 +1 @@
+-CFLAGS+=-mabi=ilp32
++CFLAGS+=-mabi=ilp32d
+diff --git a/build/ck.build.riscv64 b/build/ck.build.riscv64
+index 9f89791..7639bd6 100644
+--- a/build/ck.build.riscv64
++++ b/build/ck.build.riscv64
+@@ -1 +1 @@
+-CFLAGS+=-mabi=lp64
++CFLAGS+=-mabi=lp64d
+--
+2.39.0
+
diff --git a/meta-oe/recipes-devtools/concurrencykit/concurrencykit/0001-configure-Fix-compoiler-detection-logic-for-cross-co.patch b/meta-oe/recipes-devtools/concurrencykit/concurrencykit/0001-configure-Fix-compoiler-detection-logic-for-cross-co.patch
new file mode 100644
index 0000000000..718f8c19f1
--- /dev/null
+++ b/meta-oe/recipes-devtools/concurrencykit/concurrencykit/0001-configure-Fix-compoiler-detection-logic-for-cross-co.patch
@@ -0,0 +1,84 @@
+From e1dcd27e816520bdabc69511d90c4a2ebc242831 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 6 Jan 2023 18:51:34 -0800
+Subject: [PATCH] configure: Fix compoiler detection logic for
+ cross-compilation
+
+We can not run binaries during cross compile, so poke at compiler to
+figure out if it is clang or gcc, for OE we do not have other compilers
+in opensource world if there are we can extend this logic
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure | 56 ++++++++++++++++---------------------------------------
+ 1 file changed, 16 insertions(+), 40 deletions(-)
+
+--- a/configure
++++ b/configure
+@@ -661,48 +661,24 @@ if test "$PROFILE"; then
+ fi
+
+ printf "Finding suitable compiler........"
+-if test ! -x "${CC}"; then
+- CC=`pathsearch "${CC:-cc}"`
+- if test -z "$CC" -o ! -x "$CC"; then
+- CC=`pathsearch "${CC:-gcc}"`
+- fi
++if test -z "$CC"; then
++ if test ! -x "${CC}"; then
++ CC=`pathsearch "${CC:-cc}"`
++ if test -z "$CC" -o ! -x "$CC"; then
++ CC=`pathsearch "${CC:-gcc}"`
++ fi
++ fi
++ assert "$CC" "not found"
++fi
++if `$CC --version | grep gcc > /dev/null 2>&1`; then
++ COMPILER=gcc
++elif `$CC --version | grep clang > /dev/null 2>&1`; then
++ COMPILER=clang
++else
++ COMPILER="not-found"
+ fi
+-assert "$CC" "not found"
+-
+-cat << EOF > .1.c
+-#include <stdio.h>
+-int main(void) {
+-#if defined(_WIN32)
+-#if defined(__MINGW64__)
+- puts("mingw64");
+- return (0);
+-#elif defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION >= 3)
+- puts("mingw32");
+- return (0);
+-#else
+- return (1);
+-#endif /* __MINGW32__ && __MINGW32_MAJOR_VERSION >= 3 */
+-#elif defined(__clang__) && (__clang_major__ >= 3)
+- puts("clang");
+- return (0);
+-#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5110)
+- puts("suncc");
+- return (0);
+-#elif defined(__GNUC__) && (__GNUC__ >= 4)
+- puts("gcc");
+- return (0);
+-#else
+- return (1);
+-#endif
+-}
+-EOF
+-
+-$CC -o .1 .1.c
+-COMPILER=`./.1 2> /dev/null`
+-r=$?
+-rm -f .1.c .1
+
+-if test "$r" -ne 0; then
++if test "$COMPILER" = "not-found"; then
+ assert "" "update compiler"
+ else
+ echo "success [$CC]"
diff --git a/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch b/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch
deleted file mode 100644
index 9e5058f2ca..0000000000
--- a/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From ab0eec78382bd00ce533aec2c84fd50c1733033d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 5 Jan 2013 19:42:51 -0800
-
----
- configure | 32 ++++++++++++++++++--------------
- 1 file changed, 18 insertions(+), 14 deletions(-)
-
-diff --git a/configure b/configure
-index 76c2812..78ce2ff 100755
---- a/configure
-+++ b/configure
-@@ -535,14 +535,18 @@ else
- GZIP_SUFFIX=".gz"
- fi
-
--printf "Finding suitable compiler........"
--CC=`pathsearch "${CC:-cc}"`
--if test -z "$CC" -o ! -x "$CC"; then
-- CC=`pathsearch "${CC:-gcc}"`
-+if test -z "$CC"; then
-+ printf "Finding suitable compiler........"
-+ CC=`pathsearch "${CC:-cc}"`
-+ if test -z "$CC" -o ! -x "$CC"; then
-+ CC=`pathsearch "${CC:-gcc}"`
-+ fi
- fi
- assert "$CC" "not found"
-
--cat << EOF > .1.c
-+if test -z "$COMPILER"; then
-+
-+ cat << EOF > .1.c
- #include <stdio.h>
- int main(void) {
- #if defined(_WIN32)
-@@ -569,16 +573,16 @@ int main(void) {
- #endif
- }
- EOF
-+ $CC -o .1 .1.c
-+ COMPILER=`./.1`
-+ r=$?
-+ rm -f .1.c .1
-
--$CC -o .1 .1.c
--COMPILER=`./.1`
--r=$?
--rm -f .1.c .1
--
--if test "$r" -ne 0; then
-- assert "" "update compiler"
--else
-- echo "success [$CC]"
-+ if test "$r" -ne 0; then
-+ assert "" "update compiler"
-+ else
-+ echo "success [$CC]"
-+ fi
- fi
-
- if test "$COMPILER" = "suncc"; then
diff --git a/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb b/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
index 0018064119..47a3d88853 100644
--- a/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
+++ b/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
@@ -7,26 +7,26 @@ LICENSE = "BSD-2-Clause & Apache-2.0"
HOMEPAGE = "http://concurrencykit.org"
SECTION = "base"
-PV = "0.5.1+git${SRCPV}"
-SRCREV = "f97d3da5c375ac2fc5a9173cdd36cb828915a2e1"
+PV = "0.7.0+git"
+SRCREV = "6e8e5bec2e2f8cef2072a68579cbb07ababf3331"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a0b24c1a8f9ad516a297d055b0294231"
SRC_URI = "git://github.com/concurrencykit/ck.git;branch=master;protocol=https \
- file://cross.patch \
-"
+ file://0001-configure-Fix-compoiler-detection-logic-for-cross-co.patch \
+ file://0001-build-Use-ilp32d-abi-on-riscv32-and-lp64d-on-rv64.patch"
S = "${WORKDIR}/git"
-COMPATIBLE_HOST = "(arm|aarch64|i.86|x86_64|powerpc|powerpc64).*-linux*"
+COMPATIBLE_HOST = "(arm|aarch64|i.86|x86_64|powerpc|powerpc64|riscv32|riscv64).*-linux*"
inherit autotools-brokensep
PLAT:powerpc64 = "ppc64"
PLAT:powerpc64le = "ppc64"
+PLAT:riscv32 = "riscv"
PLAT ?= "${HOST_ARCH}"
do_configure () {
export PLATFORM=${PLAT}
- export COMPILER='gcc'
${S}/configure \
--prefix=${prefix} \
--includedir=${includedir} \
diff --git a/meta-oe/recipes-devtools/cpuid/cpuid_20211129.bb b/meta-oe/recipes-devtools/cpuid/cpuid_20211129.bb
deleted file mode 100644
index 3218ba652a..0000000000
--- a/meta-oe/recipes-devtools/cpuid/cpuid_20211129.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Linux tool to dump x86 CPUID information about the CPU(s)"
-DESCRIPTION = "cpuid dumps detailed information about the CPU(s) gathered \
-from the CPUID instruction, and also determines the exact model of CPU(s). \
-It supports Intel, AMD, and VIA CPUs, as well as older Transmeta, Cyrix, \
-UMC, NexGen, Rise, and SiS CPUs"
-HOMEPAGE="http://www.etallen.com/cpuid.html"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://www.etallen.com/${BPN}/${BP}.src.tar.gz \
- "
-SRC_URI[sha256sum] = "230772bb88c44732e68a42d2eff43bcff46d893bf4ea6e04151d4cb6e8c88e2f"
-
-COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
-
-inherit perlnative
-
-# The install rule from the Makefile has hardcoded paths, so we duplicate
-# the actions to accommodate different paths.
-do_install () {
- install -D -m 0755 ${B}/cpuid ${D}/${bindir}/cpuid
- install -D -m 0444 ${B}/cpuid.man.gz ${D}/${mandir}
-}
diff --git a/meta-oe/recipes-devtools/cpuid/cpuid_20230614.bb b/meta-oe/recipes-devtools/cpuid/cpuid_20230614.bb
new file mode 100644
index 0000000000..ed339e0160
--- /dev/null
+++ b/meta-oe/recipes-devtools/cpuid/cpuid_20230614.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Linux tool to dump x86 CPUID information about the CPU(s)"
+DESCRIPTION = "cpuid dumps detailed information about the CPU(s) gathered \
+from the CPUID instruction, and also determines the exact model of CPU(s). \
+It supports Intel, AMD, and VIA CPUs, as well as older Transmeta, Cyrix, \
+UMC, NexGen, Rise, and SiS CPUs"
+HOMEPAGE="http://www.etallen.com/cpuid.html"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "http://www.etallen.com/${BPN}/${BP}.src.tar.gz \
+ file://0001-Makefile-update-the-hardcode-path-to-bindir-mandir.patch \
+ "
+SRC_URI[sha256sum] = "b1c83045efc26076307751e0662d580277f5f9bf89cf027231a7812003c3a4e8"
+
+COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
+
+inherit perlnative
+
+do_install () {
+ oe_runmake DESTDIR=${D} bindir=${bindir} mandir=${mandir} install
+}
+
+RDEPENDS:${PN} = "perl"
+
+INSANE_SKIP:${PN} += "already-stripped"
diff --git a/meta-oe/recipes-devtools/cpuid/files/0001-Makefile-update-the-hardcode-path-to-bindir-mandir.patch b/meta-oe/recipes-devtools/cpuid/files/0001-Makefile-update-the-hardcode-path-to-bindir-mandir.patch
new file mode 100644
index 0000000000..8654fb86c3
--- /dev/null
+++ b/meta-oe/recipes-devtools/cpuid/files/0001-Makefile-update-the-hardcode-path-to-bindir-mandir.patch
@@ -0,0 +1,36 @@
+From 1339348c5b69b32378a638d65b16297d29c5fa22 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 7 Nov 2023 16:06:49 +0800
+Subject: [PATCH] Makefile: update the hardcode path to bindir/mandir
+
+Update the hardcode path to bindir/mandir
+
+Upstream-Status: Pending [ Send to cpuid@etallen.com ]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ Makefile | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 828d2b1..365e26d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -55,10 +55,10 @@ cpuinfo2cpuid.man.gz: cpuinfo2cpuid.man
+ gzip < $< > $@
+
+ install: $(PROG) $(PROG).man.gz cpuinfo2cpuid cpuinfo2cpuid.man.gz
+- install -D $(INSTALL_STRIP) -m 755 $(PROG) $(BUILDROOT)/usr/bin/$(PROG)
+- install -D -m 444 $(PROG).man.gz $(BUILDROOT)/usr/share/man/man1/$(PROG).1.gz
+- install -D -m 755 cpuinfo2cpuid $(BUILDROOT)/usr/bin/cpuinfo2cpuid
+- install -D -m 444 cpuinfo2cpuid.man.gz $(BUILDROOT)/usr/share/man/man1/cpuinfo2cpuid.1.gz
++ install -D $(INSTALL_STRIP) -m 755 $(PROG) $(BUILDROOT)${bindir}/$(PROG)
++ install -D -m 444 $(PROG).man.gz $(BUILDROOT)${mandir}/man1/$(PROG).1.gz
++ install -D -m 755 cpuinfo2cpuid $(BUILDROOT)${bindir}/cpuinfo2cpuid
++ install -D -m 444 cpuinfo2cpuid.man.gz $(BUILDROOT)${mandir}/man1/cpuinfo2cpuid.1.gz
+
+ clean:
+ rm -f $(PROG) $(PROG).i386 $(PROG).x86_64
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/ctags/ctags_5.9.20220925.0.bb b/meta-oe/recipes-devtools/ctags/ctags_5.9.20220925.0.bb
deleted file mode 100644
index f5bacfd961..0000000000
--- a/meta-oe/recipes-devtools/ctags/ctags_5.9.20220925.0.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (C) 2015 Igor Santos <igor.santos@aker.com.br>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Universal Ctags"
-DESCRIPTION = "Universal Ctags is a multilanguage reimplementation of the \
- Unix ctags utility. Ctags generates an index of source code \
- definitions which is used by numerous editors and utilities \
- to instantly locate the definitions."
-
-HOMEPAGE = "https://ctags.io/"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-inherit autotools-brokensep pkgconfig manpages
-
-SRCREV = "299fe525048358ecdfecb9ca91505333c0fb14f4"
-SRC_URI = "git://github.com/universal-ctags/ctags;branch=master;protocol=https"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= " \
- readcmd \
- xml \
- json \
- yaml \
-"
-PACKAGECONFIG[readcmd] = "--enable-readcmd,--disable-readcmd"
-PACKAGECONFIG[etags] = "--enable-etags,--disable-etags"
-PACKAGECONFIG[xml] = "--enable-xml,--disable-xml,libxml2"
-PACKAGECONFIG[json] = "--enable-json,--disable-json,jansson"
-PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
-PACKAGECONFIG[yaml] = "--enable-yaml,--disable-yaml,libyaml"
-PACKAGECONFIG[manpages] = ",,python3-docutils-native"
diff --git a/meta-oe/recipes-devtools/ctags/ctags_6.1.20240310.0.bb b/meta-oe/recipes-devtools/ctags/ctags_6.1.20240310.0.bb
new file mode 100644
index 0000000000..d4ffbb7f03
--- /dev/null
+++ b/meta-oe/recipes-devtools/ctags/ctags_6.1.20240310.0.bb
@@ -0,0 +1,36 @@
+# Copyright (C) 2015 Igor Santos <igor.santos@aker.com.br>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Universal Ctags"
+DESCRIPTION = "Universal Ctags is a multilanguage reimplementation of the \
+ Unix ctags utility. Ctags generates an index of source code \
+ definitions which is used by numerous editors and utilities \
+ to instantly locate the definitions."
+
+HOMEPAGE = "https://ctags.io/"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+inherit autotools-brokensep pkgconfig manpages
+
+SRCREV = "38fd8e39b877a79666393b90e38400fd8d7d5d14"
+SRC_URI = "git://github.com/universal-ctags/ctags;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= " \
+ readcmd \
+ xml \
+ json \
+ yaml \
+"
+PACKAGECONFIG[readcmd] = "--enable-readcmd,--disable-readcmd"
+PACKAGECONFIG[etags] = "--enable-etags,--disable-etags"
+PACKAGECONFIG[xml] = "--enable-xml,--disable-xml,libxml2"
+PACKAGECONFIG[json] = "--enable-json,--disable-json,jansson"
+PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
+PACKAGECONFIG[yaml] = "--enable-yaml,--disable-yaml,libyaml"
+PACKAGECONFIG[manpages] = ",,python3-docutils-native"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.127.bb b/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.127.bb
deleted file mode 100644
index 5e0a488429..0000000000
--- a/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.127.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Install a Debian system into a subdirectory"
-HOMEPAGE = "https://wiki.debian.org/Debootstrap"
-SECTION = "devel"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=1e68ced6e1689d4cd9dac75ff5225608"
-
-SRC_URI = "\
- http://http.debian.net/debian/pool/main/d/debootstrap/debootstrap_${PV}.tar.gz \
- file://0001-support-to-override-usr-sbin-and-usr-share.patch \
- file://0002-support-to-override-usr-bin-arch-test.patch \
- file://0001-do-not-hardcode-the-full-path-of-dpkg.patch \
-"
-
-SRC_URI[sha256sum] = "45887cf0582e6d16598e50713278d16b2272d02bdd117a9876e98277300dabd4"
-
-S = "${WORKDIR}/debootstrap"
-
-DEPENDS = " \
- virtual/fakeroot-native \
-"
-
-fakeroot do_install() {
- oe_runmake 'DESTDIR=${D}' install
- chown -R root:root ${D}${datadir}/debootstrap
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.132.bb b/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.132.bb
new file mode 100644
index 0000000000..c28a51749c
--- /dev/null
+++ b/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.132.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Install a Debian system into a subdirectory"
+HOMEPAGE = "https://wiki.debian.org/Debootstrap"
+SECTION = "devel"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=1e68ced6e1689d4cd9dac75ff5225608"
+
+SRC_URI = "\
+ ${DEBIAN_MIRROR}/main/d/debootstrap/debootstrap_${PV}.tar.gz \
+ file://0001-support-to-override-usr-sbin-and-usr-share.patch \
+ file://0002-support-to-override-usr-bin-arch-test.patch \
+ file://0001-do-not-hardcode-the-full-path-of-dpkg.patch \
+"
+
+SRC_URI[sha256sum] = "d963a465314ac0e8fd5392573def042e6663e8edf3d08ace4bbd0d27ee8431f7"
+
+S = "${WORKDIR}/debootstrap"
+
+DEPENDS = " \
+ virtual/fakeroot-native \
+"
+
+fakeroot do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+ chown -R root:root ${D}${datadir}/debootstrap
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/dmalloc/dmalloc/0001-undefined-strdup-macro.patch b/meta-oe/recipes-devtools/dmalloc/dmalloc/0001-undefined-strdup-macro.patch
index ea940e9932..a3a3df4a7b 100644
--- a/meta-oe/recipes-devtools/dmalloc/dmalloc/0001-undefined-strdup-macro.patch
+++ b/meta-oe/recipes-devtools/dmalloc/dmalloc/0001-undefined-strdup-macro.patch
@@ -8,6 +8,8 @@ system header.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
dmalloc.h.3 | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta-oe/recipes-devtools/dmalloc/dmalloc/02-Makefile.in.patch b/meta-oe/recipes-devtools/dmalloc/dmalloc/02-Makefile.in.patch
index 967643badc..ba65d394f0 100644
--- a/meta-oe/recipes-devtools/dmalloc/dmalloc/02-Makefile.in.patch
+++ b/meta-oe/recipes-devtools/dmalloc/dmalloc/02-Makefile.in.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Changes for building shared libraries
This patch includes changes for building shared libraries with PIC object
files and the correct soname and libname.
diff --git a/meta-oe/recipes-devtools/dmalloc/dmalloc/03-threads.patch b/meta-oe/recipes-devtools/dmalloc/dmalloc/03-threads.patch
index be09452573..9cbc0a2884 100644
--- a/meta-oe/recipes-devtools/dmalloc/dmalloc/03-threads.patch
+++ b/meta-oe/recipes-devtools/dmalloc/dmalloc/03-threads.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Fix LOCK_THREADS in settings.dist
This patch takes into account that if --enable-threads is used, LOCK_THREADS
doesn't get updated
diff --git a/meta-oe/recipes-devtools/dmalloc/dmalloc/100-use-xtools.patch b/meta-oe/recipes-devtools/dmalloc/dmalloc/100-use-xtools.patch
index e1db690599..94ca93647f 100644
--- a/meta-oe/recipes-devtools/dmalloc/dmalloc/100-use-xtools.patch
+++ b/meta-oe/recipes-devtools/dmalloc/dmalloc/100-use-xtools.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
This patch makes configure use the cross ld and ar rather than the native tools.
It was build up by Yann E. MORIN <yann.morin.1998@anciens.enib.fr> from some
diff --git a/meta-oe/recipes-devtools/dmalloc/dmalloc/13-fix-ldflags-in-makefile.patch b/meta-oe/recipes-devtools/dmalloc/dmalloc/13-fix-ldflags-in-makefile.patch
index 2581e54880..3b7344dbf9 100644
--- a/meta-oe/recipes-devtools/dmalloc/dmalloc/13-fix-ldflags-in-makefile.patch
+++ b/meta-oe/recipes-devtools/dmalloc/dmalloc/13-fix-ldflags-in-makefile.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: dmalloc-5.5.2/Makefile.in
===================================================================
--- dmalloc-5.5.2.orig/Makefile.in
diff --git a/meta-oe/recipes-devtools/dmalloc/dmalloc/130-mips.patch b/meta-oe/recipes-devtools/dmalloc/dmalloc/130-mips.patch
index 935ac983a6..18f5993e47 100644
--- a/meta-oe/recipes-devtools/dmalloc/dmalloc/130-mips.patch
+++ b/meta-oe/recipes-devtools/dmalloc/dmalloc/130-mips.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Patch to correctly handle the MIPS case.
It was build up by Yann E. MORIN <yann.morin.1998@anciens.enib.fr> from some
diff --git a/meta-oe/recipes-devtools/dmalloc/dmalloc/150-use_DESTDIR.patch b/meta-oe/recipes-devtools/dmalloc/dmalloc/150-use_DESTDIR.patch
index 7edd46412a..1a9b0060b9 100644
--- a/meta-oe/recipes-devtools/dmalloc/dmalloc/150-use_DESTDIR.patch
+++ b/meta-oe/recipes-devtools/dmalloc/dmalloc/150-use_DESTDIR.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Make install rules use DESTDIR.
Split installation of the utilitity from the global install.
diff --git a/meta-oe/recipes-devtools/dmalloc/dmalloc/configure-pagesize-HACK.patch b/meta-oe/recipes-devtools/dmalloc/dmalloc/configure-pagesize-HACK.patch
index a5bd736610..9c928fc438 100644
--- a/meta-oe/recipes-devtools/dmalloc/dmalloc/configure-pagesize-HACK.patch
+++ b/meta-oe/recipes-devtools/dmalloc/dmalloc/configure-pagesize-HACK.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
We cant run tests during cross compile therefore pin to 4k pages
Signed-off-by: Khem Raj <raj.khem@gmail.com>
diff --git a/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_1.4.bb b/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_1.4.bb
new file mode 100644
index 0000000000..479b98d44d
--- /dev/null
+++ b/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_1.4.bb
@@ -0,0 +1,46 @@
+SUMMARY = "A text-based user interface plugin of dnf for user to manage packages. "
+LICENSE = "GPL-2.0-only"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://github.com/ubinux/dnf-plugin-tui.git;branch=master;protocol=https"
+SRCREV = "ad48d934c54ab01026634c90f47f151f148b8147"
+
+SRC_URI:append:class-target = " file://oe-remote.repo.sample"
+
+inherit setuptools3-base
+
+S = "${WORKDIR}/git"
+
+do_install:append() {
+ install -d ${D}${datadir}/dnf
+ install -m 0755 ${S}/samples/* ${D}${datadir}/dnf
+ install -d ${D}${PYTHON_SITEPACKAGES_DIR}/dnf-plugins/mkimg
+ install -m 0755 ${S}/dnf-plugins/mkimg/* ${D}${PYTHON_SITEPACKAGES_DIR}/dnf-plugins/mkimg
+ for file in $(ls ${S}/dnf-plugins/ | grep -v mkimg); do
+ install -m 0755 ${S}/dnf-plugins/$file ${D}${PYTHON_SITEPACKAGES_DIR}/dnf-plugins
+ done
+}
+
+do_install:append:class-target() {
+ install -d ${D}${sysconfdir}/yum.repos.d
+ install -m 0644 ${WORKDIR}/oe-remote.repo.sample ${D}${sysconfdir}/yum.repos.d
+}
+
+do_install:append:class-nativesdk() {
+ install -d -p ${D}/${SDKPATH}/postinst-intercepts
+ cp -r ${COREBASE}/scripts/postinst-intercepts/* ${D}/${SDKPATH}/postinst-intercepts/
+ sed -i -e 's/STAGING_DIR_NATIVE/NATIVE_ROOT/g' ${D}/${SDKPATH}/postinst-intercepts/*
+}
+
+FILES:${PN} += "${datadir}/dnf"
+FILES:${PN} += "${SDKPATH}/postinst-intercepts"
+
+RDEPENDS:${PN} += " \
+ bash \
+ dnf \
+ libnewt-python \
+"
+BBCLASSEXTEND = "nativesdk"
+
+SKIP_RECIPE[dnf-plugin-tui] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}"
diff --git a/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb b/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb
deleted file mode 100644
index f170b9f824..0000000000
--- a/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-SUMMARY = "A text-based user interface plugin of dnf for user to manage packages. "
-LICENSE = "GPL-2.0-only"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "git://github.com/ubinux/dnf-plugin-tui.git;branch=master;protocol=https"
-SRCREV = "bac88927b253cdcfe0d06ac7dc5afb876cd2d996"
-PV = "1.3"
-
-SRC_URI:append:class-target = " file://oe-remote.repo.sample"
-
-inherit setuptools3-base
-
-S = "${WORKDIR}/git"
-
-do_install:append() {
- install -d ${D}${datadir}/dnf
- install -m 0755 ${S}/samples/* ${D}${datadir}/dnf
- install -d ${D}${PYTHON_SITEPACKAGES_DIR}/dnf-plugins/mkimg
- install -m 0755 ${S}/dnf-plugins/mkimg/* ${D}${PYTHON_SITEPACKAGES_DIR}/dnf-plugins/mkimg
- for file in $(ls ${S}/dnf-plugins/ | grep -v mkimg); do
- install -m 0755 ${S}/dnf-plugins/$file ${D}${PYTHON_SITEPACKAGES_DIR}/dnf-plugins
- done
-}
-
-do_install:append:class-target() {
- install -d ${D}${sysconfdir}/yum.repos.d
- install -m 0644 ${WORKDIR}/oe-remote.repo.sample ${D}${sysconfdir}/yum.repos.d
-}
-
-do_install:append:class-nativesdk() {
- install -d -p ${D}/${SDKPATH}/postinst-intercepts
- cp -r ${COREBASE}/scripts/postinst-intercepts/* ${D}/${SDKPATH}/postinst-intercepts/
- sed -i -e 's/STAGING_DIR_NATIVE/NATIVE_ROOT/g' ${D}/${SDKPATH}/postinst-intercepts/*
-}
-
-FILES:${PN} += "${datadir}/dnf"
-FILES:${PN} += "${SDKPATH}/postinst-intercepts"
-
-RDEPENDS:${PN} += " \
- bash \
- dnf \
- libnewt-python \
-"
-
-BBCLASSEXTEND = "nativesdk"
-SKIP_RECIPE[dnf-plugin-tui] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}"
diff --git a/meta-oe/recipes-devtools/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch b/meta-oe/recipes-devtools/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch
index 6906efd1c0..47c8edb497 100644
--- a/meta-oe/recipes-devtools/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch
+++ b/meta-oe/recipes-devtools/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch
@@ -10,7 +10,7 @@ C library. We don't need this check in meta-openembedded.
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
-Upstream-status: Inappropriate
+Upstream-Status: Inappropriate
- upstream doxygen must build on many architectures, this change is
too intrusive for upstream
---
diff --git a/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch b/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
index b6d007d8df..796bc61ddc 100644
--- a/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
+++ b/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
@@ -34,7 +34,7 @@ This patch is only needded by doxygen-native.
Updated to apply to release 1.9.1.
-Upstream-Status: Inappropriate[oe specific]
+Upstream-Status: Inappropriate [oe specific]
Co-Authored-By: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
diff --git a/meta-oe/recipes-devtools/doxygen/doxygen_1.9.3.bb b/meta-oe/recipes-devtools/doxygen/doxygen_1.9.3.bb
index 92fea981e1..8bd0992bd6 100644
--- a/meta-oe/recipes-devtools/doxygen/doxygen_1.9.3.bb
+++ b/meta-oe/recipes-devtools/doxygen/doxygen_1.9.3.bb
@@ -14,4 +14,8 @@ SRC_URI[sha256sum] = "f352dbc3221af7012b7b00935f2dfdc9fb67a97d43287d2f6c81c50449
inherit cmake python3native
+EXTRA_OECMAKE += "\
+ -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \
+ -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines' \
+"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/editorconfig/editorconfig-core-c_0.12.6.bb b/meta-oe/recipes-devtools/editorconfig/editorconfig-core-c_0.12.6.bb
new file mode 100644
index 0000000000..976120b515
--- /dev/null
+++ b/meta-oe/recipes-devtools/editorconfig/editorconfig-core-c_0.12.6.bb
@@ -0,0 +1,18 @@
+SUMMARY = "EditorConfig helps maintain consistent coding styles across various editors and IDEs."
+HOMEPAGE = "https://https://editorconfig.org"
+SECTION = "libs"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f515fff3ea0a2b9797eda60d83c0e5ca"
+
+SRC_URI = "git://github.com/editorconfig/editorconfig-core-c.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+SRCREV = "b7837029494c03af5ea70ed9d265e8c2123bff53"
+
+inherit cmake
+
+DEPENDS = "pcre2"
+
+do_install:append() {
+ sed -i -e 's|${STAGING_DIR_HOST}||g' ${D}${libdir}/cmake/EditorConfig/EditorConfigTargets.cmake
+}
diff --git a/meta-oe/recipes-devtools/exprtk/exprtk_git.bb b/meta-oe/recipes-devtools/exprtk/exprtk_git.bb
index 52975c8215..4019f26899 100644
--- a/meta-oe/recipes-devtools/exprtk/exprtk_git.bb
+++ b/meta-oe/recipes-devtools/exprtk/exprtk_git.bb
@@ -3,9 +3,9 @@ HOMEPAGE = "https://github.com/ArashPartow/exprtk"
SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-SRCREV = "281c2ccc65b8f91c012ea3725ebcef406378a225"
+SRCREV = "f46bffcd6966d38a09023fb37ba9335214c9b959"
-SRC_URI = "git://github.com/ArashPartow/exprtk.git;branch=master;protocol=https"
+SRC_URI = "git://github.com/ArashPartow/exprtk.git;branch=release;protocol=https"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-devtools/extract-cert/extract-cert_0.3.bb b/meta-oe/recipes-devtools/extract-cert/extract-cert_0.3.bb
new file mode 100644
index 0000000000..a4cd7ad157
--- /dev/null
+++ b/meta-oe/recipes-devtools/extract-cert/extract-cert_0.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "small helper program to extract X.509 certificates from PKCS#11 tokens"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "openssl"
+
+SRC_URI = "git://git.pengutronix.de/git/extract-cert;protocol=https;branch=master;"
+SRCREV = "d652b4e8279aef2a85f58676ab472744bafeafc9"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb b/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb
index f4a8b020a8..183554e2c8 100644
--- a/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb
+++ b/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb
@@ -2,7 +2,7 @@ SUMMARY = "Memory Efficient Serialization Library"
HOMEPAGE = "https://github.com/google/flatbuffers"
SECTION = "console/tools"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
require flatbuffers.inc
@@ -15,8 +15,6 @@ RDEPENDS:${PN}-dev += "${PN}-compiler"
S = "${WORKDIR}/git"
-CVE_CHECK_IGNORE += "CVE-2020-35864"
-
EXTRA_OECMAKE += " \
-DFLATBUFFERS_BUILD_TESTS=OFF \
-DFLATBUFFERS_BUILD_SHAREDLIB=ON \
diff --git a/meta-oe/recipes-devtools/flatbuffers/flatbuffers.inc b/meta-oe/recipes-devtools/flatbuffers/flatbuffers.inc
index ebdd944980..8f6c4c68f1 100644
--- a/meta-oe/recipes-devtools/flatbuffers/flatbuffers.inc
+++ b/meta-oe/recipes-devtools/flatbuffers/flatbuffers.inc
@@ -1,3 +1,3 @@
-PV = "2.0.8"
-SRCREV = "06c5c7ed0bd987a918cf88caafb094f22cdd1721"
+PV = "24.3.25"
+SRCREV = "595bf0007ab1929570c7671f091313c8fc20644e"
SRC_URI = "git://github.com/google/flatbuffers.git;branch=master;protocol=https"
diff --git a/meta-oe/recipes-devtools/flatbuffers/python3-flatbuffers.bb b/meta-oe/recipes-devtools/flatbuffers/python3-flatbuffers.bb
index fb5b86ddea..5d3c73fd9a 100644
--- a/meta-oe/recipes-devtools/flatbuffers/python3-flatbuffers.bb
+++ b/meta-oe/recipes-devtools/flatbuffers/python3-flatbuffers.bb
@@ -2,7 +2,7 @@ SUMMARY = "Memory Efficient Serialization Library - Python3 Modules"
HOMEPAGE = "https://github.com/google/flatbuffers"
SECTION = "console/tools"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://../LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
require flatbuffers.inc
diff --git a/meta-oe/recipes-devtools/flatcc/flatcc/0001-Check-for-C-standard-version-23-for-__fallthrough__.patch b/meta-oe/recipes-devtools/flatcc/flatcc/0001-Check-for-C-standard-version-23-for-__fallthrough__.patch
new file mode 100644
index 0000000000..c9ff55a167
--- /dev/null
+++ b/meta-oe/recipes-devtools/flatcc/flatcc/0001-Check-for-C-standard-version-23-for-__fallthrough__.patch
@@ -0,0 +1,31 @@
+From 7c199e3b191a6f714694035f1eba40112e71675c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Feb 2024 18:41:51 -0800
+Subject: [PATCH] Check for C standard version >= 23 for [[__fallthrough__]]
+
+This avoids warnings with clang-18+ e.g.
+
+pprintint.h:256:6: error: [[]] attributes are a C23 extension [-Werror,-Wc23-extensions]
+
+Upstream-Status: Submitted [https://github.com/dvidelabs/flatcc/pull/273]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/flatcc/portable/pattributes.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/flatcc/portable/pattributes.h b/include/flatcc/portable/pattributes.h
+index 9240fa3..dd4918a 100644
+--- a/include/flatcc/portable/pattributes.h
++++ b/include/flatcc/portable/pattributes.h
+@@ -57,7 +57,7 @@ extern "C" {
+
+
+ /* https://en.cppreference.com/w/c/language/attributes/fallthrough */
+-#if PORTABLE_HAS_C_ATTRIBUTE(__fallthrough__)
++#if PORTABLE_HAS_C_ATTRIBUTE(__fallthrough__) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
+ # define pattribute_fallthrough [[__fallthrough__]]
+ #elif PORTABLE_HAS_ATTRIBUTE(__fallthrough__)
+ # define pattribute_fallthrough __attribute__((__fallthrough__))
+--
+2.43.0
+
diff --git a/meta-oe/recipes-devtools/flatcc/flatcc_git.bb b/meta-oe/recipes-devtools/flatcc/flatcc_git.bb
new file mode 100644
index 0000000000..2530dac526
--- /dev/null
+++ b/meta-oe/recipes-devtools/flatcc/flatcc_git.bb
@@ -0,0 +1,30 @@
+SUMMARY = "FlatCC FlatBuffers in C for C"
+DESCRIPTION = "FlatCC is a compiler that generates FlatBuffers code for C \
+given a FlatBuffer schema file."
+HOMEPAGE = "https://github.com/dvidelabs/flatcc"
+SECTION = "devel/lib"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b3d8fb7158bf7e2600ba3191428dc4ef"
+
+PV = "0.6.2+git"
+
+SRC_URI = " \
+ git://github.com/dvidelabs/flatcc.git;protocol=https;branch=master \
+ file://0001-Check-for-C-standard-version-23-for-__fallthrough__.patch \
+"
+SRCREV = "1653ec964730ec7d9892a08a1695ada6d20f5196"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+# Enable installation for target
+# Disable tests as is not possible to execute with cross-compilation
+EXTRA_OECMAKE += " \
+ -DFLATCC_INSTALL=On \
+ -DFLATCC_TEST=Off \
+ -DFLATCC_ALLOW_WERROR=Off \
+ -DFLATCC_INSTALL_LIB=${baselib} \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/glade/glade_3.22.2.bb b/meta-oe/recipes-devtools/glade/glade_3.22.2.bb
index 6c1112038c..d11751a4b2 100644
--- a/meta-oe/recipes-devtools/glade/glade_3.22.2.bb
+++ b/meta-oe/recipes-devtools/glade/glade_3.22.2.bb
@@ -6,9 +6,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=aabe87591cb8ae0f3c68be6977bb5522 \
file://COPYING.LGPL;md5=252890d9eee26aab7b432e8b8a616475"
DEPENDS = "gtk+3 glib-2.0 libxml2 intltool-native \
gnome-common-native \
+ autoconf-archive-native \
"
-
-inherit features_check autotools pkgconfig gnomebase gobject-introspection mime-xdg
+GNOMEBASEBUILDCLASS = "autotools"
+inherit features_check autotools pkgconfig gnomebase gobject-introspection mime-xdg gtk-doc
# xfce4 depends on libwnck3, gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
# cairo would at least needed to be built with xlib.
@@ -22,7 +23,4 @@ SRC_URI[sha256sum] = "edefa6eb24b4d15bd52589121dc109bc08c286157c41288deb74dd9cc3
EXTRA_OECONF += "--disable-man-pages"
-FILES:${PN} += "${datadir}/* ${libdir}/glade/modules/libgladegtk.so"
-FILES:${PN}-dev += "${libdir}/glade/modules/libgladegtk.la"
-FILES:${PN}-dbg += "${libdir}/glade/modules/.debug/libgladegtk.so"
-
+FILES:${PN} += "${datadir}/glade ${datadir}/metainfo ${libdir}/glade/modules/libgladegtk.so"
diff --git a/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch b/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch
deleted file mode 100644
index 2f1483f97c..0000000000
--- a/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From dc593958e556dd496b774f35c5992285510d6859 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 19 Oct 2021 17:09:55 +0200
-Subject: [PATCH] Revert "Changed GRPCPP_ABSEIL_SYNC to GPR_ABSEIL_SYNC
- (#25681)"
-
-This reverts commit 931f91b745cd5b2864a0d1787815871d0bd844ae.
-
-Fixes sysdig from meta-oe and other recipes (like com.webos.service.tts
-libgoogleassistant from meta-webosose) failing with:
-
-| FAILED: userspace/sysdig/sysdig
-| : && /OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/x86_64-oe-linux-g++ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-sec
-urity --sysroot=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -f
-debug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/bu
-ild/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/OE/build
-/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -Wall -ggdb -std=c++0x -O3 -fno-strict-aliasing -DNDEBUG -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security
---sysroot=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-p
-refix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/oe-
-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/OE/build/oe-cor
-e/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-cor
-e/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-
-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -Wl,-z,relro,-z,now -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/
-oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0=/usr/src/debug/sysdig/0.27.1-r0 -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/
-core2-64-oe-linux/sysdig/0.27.1-r0/recipe-sysroot-native= -Wl,-z,relro,-z,now -rdynamic userspace/sysdig/CMakeFiles/sysdig.dir/fields_info.cpp.o userspace/sysdig/CMakeFiles/sysdig.dir/sysdig.cpp.o -o userspace/sysdig/sysdig userspace/libsinsp/libsinsp.a userspace/libscap/libscap.a
- -lelf -lz -lcurl -ljsoncpp -ltbb -lcares -lgrpc++_unsecure -lgrpc_unsecure -lprotobuf -lcares -lgrpc++_unsecure -lgrpc_unsecure -lprotobuf -ljq -lb64 -lrt -lanl -lssl -lcrypto -lluajit-5.1 -ldl -lpthread && :
-| /usr/include/grpcpp/impl/codegen/completion_queue.h:121: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()'
-| /usr/include/grpcpp/impl/codegen/completion_queue.h:121: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()'
-| /usr/include/grpcpp/impl/codegen/completion_queue.h:121: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()'
-| /usr/include/grpcpp/impl/codegen/completion_queue.h:259: error: undefined reference to 'absl::lts_20210324::Mutex::~Mutex()'
-| collect2: error: ld returned 1 exit status
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
----
- include/grpcpp/impl/codegen/sync.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/include/grpcpp/impl/codegen/sync.h b/include/grpcpp/impl/codegen/sync.h
-index 4cb8133c7c..3d10d9a3a0 100644
---- a/include/grpcpp/impl/codegen/sync.h
-+++ b/include/grpcpp/impl/codegen/sync.h
-@@ -47,7 +47,7 @@
- namespace grpc {
- namespace internal {
-
--#ifdef GPR_ABSEIL_SYNC
-+#ifdef GRPCPP_ABSEIL_SYNC
-
- using Mutex = absl::Mutex;
- using MutexLock = absl::MutexLock;
-@@ -142,7 +142,7 @@ class CondVar {
- gpr_cv cv_;
- };
-
--#endif // GPR_ABSEIL_SYNC
-+#endif // GRPCPP_ABSEIL_SYNC
-
- template <typename Predicate>
- GRPC_DEPRECATED("incompatible with thread safety analysis")
diff --git a/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch b/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch
index c2afd4a92e..594503ae2a 100644
--- a/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch
+++ b/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch
@@ -1,4 +1,4 @@
-From 592a4aaba20818bcff9a1448c34b09aff9e0d2e9 Mon Sep 17 00:00:00 2001
+From 54e8dca9b39b8c8a6532576a0286e548f97607fa Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 19 Apr 2022 16:07:19 -0700
Subject: [PATCH] cmake: Link with libatomic on rv32/rv64
@@ -9,24 +9,22 @@ riscv64-yoe-linux-musl/12.0.1/ld: libgrpc.so.23.0.0: undefined reference to `__a
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
CMakeLists.txt | 3 +++
1 file changed, 3 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a8fd3bf37b3..9f5b242683d 100644
+index 06e6453b5c..476d7f1576 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -303,6 +303,9 @@ if(UNIX)
- if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
- set(_gRPC_ALLTARGETS_LIBRARIES ${_gRPC_ALLTARGETS_LIBRARIES} rt)
+@@ -306,6 +306,9 @@ if(UNIX AND NOT HAIKU)
+ set(_gRPC_ALLTARGETS_LIBRARIES ${_gRPC_ALLTARGETS_LIBRARIES} rt)
+ endif()
endif()
+ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "riscv64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "riscv32")
+ set(_gRPC_ALLTARGETS_LIBRARIES ${_gRPC_ALLTARGETS_LIBRARIES} atomic)
+ endif()
endif()
- # configure ccache if requested
---
-2.36.0
-
+ include(CheckCXXSourceCompiles)
diff --git a/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch b/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch
deleted file mode 100644
index 679bd38829..0000000000
--- a/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 3150cb043363e05588062dd392b940be25594713 Mon Sep 17 00:00:00 2001
-From: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
-Date: Tue, 18 Feb 2020 14:17:07 +0100
-Subject: [PATCH] cmake: add separate export for plugin targets
-
-Upstream-Status: Submitted [https://github.com/grpc/grpc/pull/29328]
-
-
----
- CMakeLists.txt | 18 +++++++++++-------
- 1 file changed, 11 insertions(+), 7 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index efdaf8936d..6608b1b00c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -10935,7 +10935,7 @@ target_link_libraries(grpc_cpp_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_cpp_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_cpp_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -10975,7 +10975,7 @@ target_link_libraries(grpc_csharp_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_csharp_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_csharp_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -11015,7 +11015,7 @@ target_link_libraries(grpc_node_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_node_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_node_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -11055,7 +11055,7 @@ target_link_libraries(grpc_objective_c_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_objective_c_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_objective_c_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -11095,7 +11095,7 @@ target_link_libraries(grpc_php_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_php_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_php_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -11135,7 +11135,7 @@ target_link_libraries(grpc_python_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_python_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_python_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -11175,7 +11175,7 @@ target_link_libraries(grpc_ruby_plugin
-
-
- if(gRPC_INSTALL)
-- install(TARGETS grpc_ruby_plugin EXPORT gRPCTargets
-+ install(TARGETS grpc_ruby_plugin EXPORT gRPCPluginTargets
- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
-@@ -17349,6 +17349,10 @@ if(gRPC_INSTALL)
- DESTINATION ${gRPC_INSTALL_CMAKEDIR}
- NAMESPACE gRPC::
- )
-+ install(EXPORT gRPCPluginTargets
-+ DESTINATION ${gRPC_INSTALL_CMAKEDIR}
-+ NAMESPACE gRPC::
-+ )
- endif()
-
- include(CMakePackageConfigHelpers)
---
-2.30.2
-
diff --git a/meta-oe/recipes-devtools/grpc/grpc_1.45.2.bb b/meta-oe/recipes-devtools/grpc/grpc_1.45.2.bb
deleted file mode 100644
index c2f952fc64..0000000000
--- a/meta-oe/recipes-devtools/grpc/grpc_1.45.2.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \
-Provides gRPC libraries for multiple languages written on top of shared C core library \
-(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)"
-HOMEPAGE = "https://github.com/grpc/grpc"
-SECTION = "libs"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6e4cf218112648d22420a84281b68b88"
-
-DEPENDS = "c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl libnsl2 abseil-cpp re2"
-DEPENDS:append:class-target = " googletest grpc-native "
-DEPENDS:append:class-nativesdk = " grpc-native "
-
-PACKAGE_BEFORE_PN = "${PN}-compiler"
-
-RDEPENDS:${PN}-compiler = "${PN}"
-RDEPENDS:${PN}-dev:append:class-native = " ${PN}-compiler"
-# Configuration above allows to cross-compile gRPC applications
-# In order to compile applications on the target, use the dependency below
-# Both dependencies are mutually exclusive
-# RDEPENDS:${PN}-dev += "${PN}-compiler"
-
-S = "${WORKDIR}/git"
-SRCREV_grpc = "b39ffcc425ea990a537f98ec6fe6a1dcb90470d7"
-BRANCH = "v1.45.x"
-SRC_URI = "git://github.com/grpc/grpc.git;protocol=https;name=grpc;branch=${BRANCH} \
- file://0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch \
- file://0001-cmake-add-separate-export-for-plugin-targets.patch \
- file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \
- "
-# Fixes build with older compilers 4.8 especially on ubuntu 14.04
-CXXFLAGS:append:class-native = " -Wl,--no-as-needed"
-
-inherit cmake pkgconfig
-
-EXTRA_OECMAKE = " \
- -DgRPC_CARES_PROVIDER=package \
- -DgRPC_ZLIB_PROVIDER=package \
- -DgRPC_SSL_PROVIDER=package \
- -DgRPC_PROTOBUF_PROVIDER=package \
- -DgRPC_ABSL_PROVIDER=package \
- -DgRPC_RE2_PROVIDER=package \
- -DgRPC_INSTALL=ON \
- -DCMAKE_CROSSCOMPILING=ON \
- -DgRPC_INSTALL_LIBDIR=${baselib} \
- -DgRPC_INSTALL_CMAKEDIR=${baselib}/cmake/${BPN} \
- "
-
-PACKAGECONFIG ??= "cpp shared"
-PACKAGECONFIG[cpp] = "-DgRPC_BUILD_GRPC_CPP_PLUGIN=ON,-DgRPC_BUILD_GRPC_CPP_PLUGIN=OFF"
-PACKAGECONFIG[csharp] = "-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=ON,-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF"
-PACKAGECONFIG[node] = "-DgRPC_BUILD_GRPC_NODE_PLUGIN=ON,-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF"
-PACKAGECONFIG[objective-c] = "-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=ON,-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF"
-PACKAGECONFIG[php] = "-DgRPC_BUILD_GRPC_PHP_PLUGIN=ON,-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF"
-PACKAGECONFIG[python] = "-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=ON,-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF"
-PACKAGECONFIG[ruby] = "-DgRPC_BUILD_GRPC_RUBY_PLUGIN=ON,-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF"
-PACKAGECONFIG[protobuf-lite] = "-DgRPC_USE_PROTO_LITE=ON,-DgRPC_USE_PROTO_LITE=OFF,protobuf-lite"
-PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
-
-do_configure:prepend() {
- sed -i -e "s#lib/pkgconfig/#${baselib}/pkgconfig/#g" ${S}/CMakeLists.txt
-}
-
-BBCLASSEXTEND = "native nativesdk"
-
-FILES:${PN}-compiler += " \
- ${bindir} \
- ${libdir}/libgrpc_plugin_support${SOLIBS} \
- "
diff --git a/meta-oe/recipes-devtools/grpc/grpc_1.60.1.bb b/meta-oe/recipes-devtools/grpc/grpc_1.60.1.bb
new file mode 100644
index 0000000000..63c696a623
--- /dev/null
+++ b/meta-oe/recipes-devtools/grpc/grpc_1.60.1.bb
@@ -0,0 +1,67 @@
+DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \
+Provides gRPC libraries for multiple languages written on top of shared C core library \
+(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)"
+HOMEPAGE = "https://github.com/grpc/grpc"
+SECTION = "libs"
+LICENSE = "Apache-2.0 & BSD-3-Clause & MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=731e401b36f8077ae0c134b59be5c906"
+
+DEPENDS = "c-ares protobuf protobuf-native openssl libnsl2 abseil-cpp re2 zlib"
+DEPENDS:append:class-target = " googletest grpc-native "
+DEPENDS:append:class-nativesdk = " grpc-native "
+
+PACKAGE_BEFORE_PN = "${PN}-compiler"
+
+RDEPENDS:${PN}-compiler = "${PN}"
+RDEPENDS:${PN}-dev:append:class-native = " ${PN}-compiler"
+# Configuration above allows to cross-compile gRPC applications
+# In order to compile applications on the target, use the dependency below
+# Both dependencies are mutually exclusive
+# RDEPENDS:${PN}-dev += "${PN}-compiler"
+
+S = "${WORKDIR}/git"
+SRCREV_grpc = "e5ae3b6b44bf3b64d24bfb4b4f82556239b986db"
+BRANCH = "v1.60.x"
+SRC_URI = "gitsm://github.com/grpc/grpc.git;protocol=https;name=grpc;branch=${BRANCH} \
+ file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \
+ "
+# Fixes build with older compilers 4.8 especially on ubuntu 14.04
+CXXFLAGS:append:class-native = " -Wl,--no-as-needed"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE = " \
+ -DgRPC_CARES_PROVIDER=package \
+ -DgRPC_ZLIB_PROVIDER=package \
+ -DgRPC_SSL_PROVIDER=package \
+ -DgRPC_PROTOBUF_PROVIDER=package \
+ -D_gRPC_PROTOBUF_PROTOC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/protoc \
+ -DgRPC_ABSL_PROVIDER=package \
+ -DgRPC_RE2_PROVIDER=package \
+ -DgRPC_INSTALL=ON \
+ -DCMAKE_CROSSCOMPILING=ON \
+ -DgRPC_INSTALL_LIBDIR=${baselib} \
+ -DgRPC_INSTALL_CMAKEDIR=${baselib}/cmake/${BPN} \
+ "
+
+PACKAGECONFIG ??= "cpp shared"
+PACKAGECONFIG[cpp] = "-DgRPC_BUILD_GRPC_CPP_PLUGIN=ON,-DgRPC_BUILD_GRPC_CPP_PLUGIN=OFF"
+PACKAGECONFIG[csharp] = "-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=ON,-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF"
+PACKAGECONFIG[node] = "-DgRPC_BUILD_GRPC_NODE_PLUGIN=ON,-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF"
+PACKAGECONFIG[objective-c] = "-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=ON,-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF"
+PACKAGECONFIG[php] = "-DgRPC_BUILD_GRPC_PHP_PLUGIN=ON,-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF"
+PACKAGECONFIG[python] = "-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=ON,-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF"
+PACKAGECONFIG[ruby] = "-DgRPC_BUILD_GRPC_RUBY_PLUGIN=ON,-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF"
+PACKAGECONFIG[protobuf-lite] = "-DgRPC_USE_PROTO_LITE=ON,-DgRPC_USE_PROTO_LITE=OFF,protobuf-lite"
+PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
+
+do_configure:prepend() {
+ sed -i -e "s#lib/pkgconfig/#${baselib}/pkgconfig/#g" ${S}/CMakeLists.txt
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
+FILES:${PN}-compiler += " \
+ ${bindir} \
+ ${libdir}/libgrpc_plugin_support${SOLIBS} \
+ "
diff --git a/meta-oe/recipes-devtools/gst-editing-services/gst-editing-services_1.20.3.bb b/meta-oe/recipes-devtools/gst-editing-services/gst-editing-services_1.20.3.bb
deleted file mode 100644
index d14869b06b..0000000000
--- a/meta-oe/recipes-devtools/gst-editing-services/gst-editing-services_1.20.3.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (C) 2022 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Gstreamer editing services"
-HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-editing-services/"
-
-LICENSE = "GPL-2.0-on-later & LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
- file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d"
-
-DEPENDS = "flex-native gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad python3-pygobject"
-
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-GIR_MESON_OPTION = ""
-
-inherit meson pkgconfig upstream-version-is-even gobject-introspection features_check bash-completion
-
-EXTRA_OEMESON = "-Dvalidate=disabled"
-
-SRC_URI = "http://gstreamer.freedesktop.org/src/gst-editing-services/gst-editing-services-${PV}.tar.xz"
-SRC_URI[sha256sum] = "5fd896de69fbe24421eb6b0ff8d2f8b4c3cba3f3025ceacd302172f39a8abaa2"
-
-PACKAGES += "gst-validate-launcher libges"
-
-FILES:gst-validate-launcher = "${nonarch_libdir}/gst-validate-launcher ${datadir}/gstreamer-1.0/validate"
-FILES:libges = "${libdir}/gstreamer-1.0/*.so"
diff --git a/meta-oe/recipes-devtools/gst-editing-services/gst-editing-services_1.22.7.bb b/meta-oe/recipes-devtools/gst-editing-services/gst-editing-services_1.22.7.bb
new file mode 100644
index 0000000000..50d45ef57b
--- /dev/null
+++ b/meta-oe/recipes-devtools/gst-editing-services/gst-editing-services_1.22.7.bb
@@ -0,0 +1,28 @@
+# Copyright (C) 2022 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Gstreamer editing services"
+HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-editing-services/"
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
+ file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d"
+
+DEPENDS = "flex-native gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad python3-pygobject"
+
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+inherit meson pkgconfig upstream-version-is-even gobject-introspection features_check bash-completion
+
+EXTRA_OEMESON = "-Dvalidate=disabled"
+
+SRC_URI = "http://gstreamer.freedesktop.org/src/gst-editing-services/gst-editing-services-${PV}.tar.xz"
+SRC_URI[sha256sum] = "fec56a2c37a253cd048d288d4c7eda6eff191022b09db975e07a2c105d1b521e"
+
+PACKAGES += "gst-validate-launcher libges"
+
+FILES:gst-validate-launcher = "${nonarch_libdir}/gst-validate-launcher ${datadir}/gstreamer-1.0/validate"
+FILES:libges = "${libdir}/gstreamer-1.0/*.so"
+
+FILES:${PN} += "/usr/lib/python${PYTHON_BASEVERSION}"
diff --git a/meta-oe/recipes-devtools/guider/guider_3.9.8.bb b/meta-oe/recipes-devtools/guider/guider_3.9.8.bb
index 30d17c84b3..0d93297a07 100644
--- a/meta-oe/recipes-devtools/guider/guider_3.9.8.bb
+++ b/meta-oe/recipes-devtools/guider/guider_3.9.8.bb
@@ -1,12 +1,11 @@
SUMMARY = "performance analyzer"
HOMEPAGE = "https://github.com/iipeace/guider"
BUGTRACKER = "https://github.com/iipeace/guider/issues"
-AUTHOR = "Peace Lee <ipeace5@gmail.com>"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2c1c00f9d3ed9e24fa69b932b7e7aff2"
-PV = "3.9.8+git${SRCPV}"
+PV = "3.9.8+git"
SRC_URI = "git://github.com/iipeace/${BPN};branch=master;protocol=https"
SRCREV = "a502cd93b13235b7539557a91328de00b7c51bc3"
diff --git a/meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb b/meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb
index 29937e26d0..be2c0f5394 100644
--- a/meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb
+++ b/meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb
@@ -29,4 +29,4 @@ EXTRA_OECMAKE += "-DHEAPTRACK_BUILD_GUI=OFF"
COMPATIBLE_HOST:riscv32 = "null"
COMPATIBLE_HOST:riscv64 = "null"
-BBCLASSEXTEND = "native nativesdk"
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/jemalloc/files/0001-test-Disable-optimization-with-clang-for-aligned_all.patch b/meta-oe/recipes-devtools/jemalloc/files/0001-test-Disable-optimization-with-clang-for-aligned_all.patch
deleted file mode 100644
index 570202e800..0000000000
--- a/meta-oe/recipes-devtools/jemalloc/files/0001-test-Disable-optimization-with-clang-for-aligned_all.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 3fe67deb9fcf0ae3c2ff31a9eccb6a0a9af33b9c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 14 Jan 2022 09:47:03 -0800
-Subject: [PATCH] test: Disable optimization with clang for aligned_alloc.c
-
-Clang crashes when using glibc 2.35, it works ok with older glibc or
-musl, so its very specific problem. Its reported here
-
-https://github.com/llvm/llvm-project/issues/52765
-
-Until it is fixed, workaround the build failure
-
-Upstream-Status: Inappropriate [Workaround]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- test/integration/aligned_alloc.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/test/integration/aligned_alloc.c b/test/integration/aligned_alloc.c
-index 4375b172..6513bdd9 100644
---- a/test/integration/aligned_alloc.c
-+++ b/test/integration/aligned_alloc.c
-@@ -1,5 +1,7 @@
- #include "test/jemalloc_test.h"
-
-+#pragma clang optimize off
-+
- #define MAXALIGN (((size_t)1) << 23)
-
- /*
---
-2.34.1
-
diff --git a/meta-oe/recipes-devtools/jemalloc/files/run-ptest b/meta-oe/recipes-devtools/jemalloc/files/run-ptest
index b351f947e8..5c826a1766 100644
--- a/meta-oe/recipes-devtools/jemalloc/files/run-ptest
+++ b/meta-oe/recipes-devtools/jemalloc/files/run-ptest
@@ -1,9 +1,37 @@
#!/bin/sh
+export MALLOC_CONF_ALL=${MALLOC_CONF}
+# Concatenate the individual test's MALLOC_CONF and MALLOC_CONF_ALL.
+export_malloc_conf() {
+ if [ "x${MALLOC_CONF}" != "x" -a "x${MALLOC_CONF_ALL}" != "x" ] ; then
+ export MALLOC_CONF="${MALLOC_CONF},${MALLOC_CONF_ALL}"
+ else
+ export MALLOC_CONF="${MALLOC_CONF}${MALLOC_CONF_ALL}"
+ fi
+}
+
+
+
saved_dir=$PWD
for dir in tests/* ; do
cd $dir
for atest in * ; do
+ if [[ "${atest##*.}" == "sh" ]]; then
+ continue
+ fi
+ if [ -e "${atest}.sh" ] ; then
+ # Source the shell script corresponding to the test in a subshell and
+ # execute the test. This allows the shell script to set MALLOC_CONF, which
+ # is then used to set MALLOC_CONF (thus allowing the
+ # per test shell script to ignore the detail).
+ enable_fill=1 \
+ enable_prof=1 \
+ . $(pwd)/${atest}.sh && \
+ export_malloc_conf
+ else
+ export MALLOC_CONF= && \
+ export_malloc_conf
+ fi
if [ \( -x $atest \) -a \( -f $atest \) ] ; then
rm -rf tests.log
./$atest > tests.log 2>&1
@@ -18,4 +46,3 @@ for dir in tests/* ; do
done
cd $saved_dir
done
-
diff --git a/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb b/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb
index 950b64ee9b..7e0272f898 100644
--- a/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb
+++ b/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb
@@ -13,14 +13,10 @@ SECTION = "libs"
LIC_FILES_CHKSUM = "file://COPYING;md5=ea061f8731d5e6a5761dfad951ef5f5f"
-SRC_URI = "git://github.com/jemalloc/jemalloc.git;branch=master;protocol=https \
+SRC_URI = "git://github.com/jemalloc/jemalloc.git;branch=dev;protocol=https \
file://run-ptest \
"
-
-# Workaround for https://github.com/llvm/llvm-project/issues/52765
-SRC_URI:append:libc-glibc:toolchain-clang = " file://0001-test-Disable-optimization-with-clang-for-aligned_all.patch "
-
-SRCREV = "54eaed1d8b56b1aa528be3bdd1877e59c56fa90c"
+SRCREV = "630434bb0ac619f7beec927569782d924c459385"
S = "${WORKDIR}/git"
@@ -29,6 +25,9 @@ inherit autotools ptest
EXTRA_AUTORECONF += "--exclude=autoheader"
EXTRA_OECONF:append:libc-musl = " --with-jemalloc-prefix=je_"
+# For some reason VERSION file populated only in tarball distribution.
+# Adding jemalloc version since this recipe is using source code from git tag
+EXTRA_OECONF:append = " --with-version=${PV}-0-g${SRCREV} --enable-xmalloc"
do_install:append() {
sed -i -e 's@${STAGING_DIR_HOST}@@g' \
@@ -42,10 +41,13 @@ do_compile_ptest() {
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
- subdirs="test/unit test/integration test/stress "
+ subdirs="unit integration stress "
for tooltest in ${subdirs}
do
- cp -r ${B}/${tooltest} ${D}${PTEST_PATH}/tests
+ cp -r ${B}/test/${tooltest} ${D}${PTEST_PATH}/tests
+ if find ${S}/test/${tooltest}/ -name '*.sh' -print -quit | grep -q .; then
+ cp ${S}/test/${tooltest}/*.sh ${D}${PTEST_PATH}/tests/${tooltest}
+ fi
done
find ${D}${PTEST_PATH}/tests \( -name "*.d" -o -name "*.o" \) -exec rm -f {} \;
}
diff --git a/meta-oe/recipes-devtools/jq/jq/0001-configure-Pass-_XOPEN_SOURCE-when-checking-for-strpt.patch b/meta-oe/recipes-devtools/jq/jq/0001-configure-Pass-_XOPEN_SOURCE-when-checking-for-strpt.patch
deleted file mode 100644
index e4d6ebb45b..0000000000
--- a/meta-oe/recipes-devtools/jq/jq/0001-configure-Pass-_XOPEN_SOURCE-when-checking-for-strpt.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 40bbd419ad8d1bd9cbe8b17063c323f8a40ab327 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Sep 2022 09:59:31 -0700
-Subject: [PATCH 1/2] configure: Pass _XOPEN_SOURCE when checking for strptime
-
-Include sys/time.h for gettimeofday since thats where its in glibc
-
-Upstream-Status: Submitted [https://github.com/stedolan/jq/pull/2480]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index a2cd99e..95afe06 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -139,7 +139,10 @@ AC_FUNC_ALLOCA
-
- AC_FIND_FUNC([isatty], [c], [#include <unistd.h>], [0])
- AC_FIND_FUNC([_isatty], [c], [#include <io.h>], [0])
-+OLD_CFLAGS=$CFLAGS
-+CFLAGS="$CFLAGS -D_XOPEN_SOURCE"
- AC_FIND_FUNC([strptime], [c], [#include <time.h>], [0, 0, 0])
-+CFLAGS=$OLD_CFLAGS
- AC_FIND_FUNC([strftime], [c], [#include <time.h>], [0, 0, 0, 0])
- AC_FIND_FUNC([setenv], [c], [#include <stdlib.h>], [0, 0, 0])
- AC_FIND_FUNC([timegm], [c], [#include <time.h>], [0])
-@@ -147,7 +150,7 @@ AC_FIND_FUNC([gmtime_r], [c], [#include <time.h>], [0, 0])
- AC_FIND_FUNC([gmtime], [c], [#include <time.h>], [0])
- AC_FIND_FUNC([localtime_r], [c], [#include <time.h>], [0, 0])
- AC_FIND_FUNC([localtime], [c], [#include <time.h>], [0])
--AC_FIND_FUNC([gettimeofday], [c], [#include <time.h>], [0, 0])
-+AC_FIND_FUNC([gettimeofday], [c], [#include <sys/time.h>], [0, 0])
- AC_CHECK_MEMBER([struct tm.tm_gmtoff], [AC_DEFINE([HAVE_TM_TM_GMT_OFF],1,[Define to 1 if the system has the tm_gmt_off field in struct tm])],
- [], [[#include <time.h>]])
- AC_CHECK_MEMBER([struct tm.__tm_gmtoff], [AC_DEFINE([HAVE_TM___TM_GMT_OFF],1,[Define to 1 if the system has the __tm_gmt_off field in struct tm])],
---
-2.37.3
-
diff --git a/meta-oe/recipes-devtools/jq/jq/0002-builtin-Replace-_BSD_SOURCE-with-_DEFAULT_SOURCE.patch b/meta-oe/recipes-devtools/jq/jq/0002-builtin-Replace-_BSD_SOURCE-with-_DEFAULT_SOURCE.patch
deleted file mode 100644
index d2f999a728..0000000000
--- a/meta-oe/recipes-devtools/jq/jq/0002-builtin-Replace-_BSD_SOURCE-with-_DEFAULT_SOURCE.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From cda1734bed3b048c01452c798877d05b8c2f4c15 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Sep 2022 10:00:59 -0700
-Subject: [PATCH 2/2] builtin: Replace _BSD_SOURCE with _DEFAULT_SOURCE
-
-newer glibc has remove _BSD_SOURCE and wants it to be replaced with _DEFAULT_SOURCE
-
-Fixes
-/usr/include/features.h:194:3: warning: "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-W#warnings]
-warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
-
-Uptream-Status: Submitted [https://github.com/stedolan/jq/pull/2480]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/builtin.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/builtin.c b/src/builtin.c
-index 1c6b08c..2a31496 100644
---- a/src/builtin.c
-+++ b/src/builtin.c
-@@ -1,4 +1,4 @@
--#define _BSD_SOURCE
-+#define _DEFAULT_SOURCE
- #define _GNU_SOURCE
- #ifndef __sun__
- # define _XOPEN_SOURCE
---
-2.37.3
-
diff --git a/meta-oe/recipes-devtools/jq/jq/run-ptest b/meta-oe/recipes-devtools/jq/jq/run-ptest
index 0e4c707e96..a813958b5a 100644..100755
--- a/meta-oe/recipes-devtools/jq/jq/run-ptest
+++ b/meta-oe/recipes-devtools/jq/jq/run-ptest
@@ -1,11 +1,37 @@
#!/bin/sh
+JQ_LIB=@libdir@/jq
+LOG="${JQ_LIB}/ptest/jq_ptest_$(date +%Y%m%d-%H%M%S).log"
+
+# clean up the log file to avoid a file has the same name and has existing content
+echo "" > ${LOG}
+
+# The purpose of ptest is doing intergration test, so disable valgrind by default
+# change PACKAGECOFIG to enable valgrind.
+#export NO_VALGRIND=1
+# The --enable-valgrind configure option for jq only can be used within Makefiles,
+# and it cannot be utilized here since it also checks compile, which cannot be avoid
+# Requested enhancement to jq: https://github.com/stedolan/jq/issues/2493
+
for test in optionaltest mantest jqtest onigtest shtest utf8test base64test; do
- ./tests/${test}
+ ./tests/${test} >> ${LOG} 2>> ${LOG}
if [ $? -eq 0 ]; then
echo "PASS: ${test}"
+ echo "PASS: ${test}" >> ${LOG}
else
echo "FAIL: ${test}"
+ echo "FAIL: ${test}" >> ${LOG}
fi
done
+passed=`grep PASS: ${LOG}|wc -l`
+failed=`grep FAIL: ${LOG}|wc -l`
+skipped=`grep SKIP: ${LOG}|wc -l`
+all=$((passed + failed + skipped))
+
+( echo "=== Test Summary ==="
+ echo "TOTAL: ${all}"
+ echo "PASSED: ${passed}"
+ echo "FAILED: ${failed}"
+ echo "SKIPPED: ${skipped}"
+) | tee -a /${LOG}
diff --git a/meta-oe/recipes-devtools/jq/jq_1.7.1.bb b/meta-oe/recipes-devtools/jq/jq_1.7.1.bb
new file mode 100644
index 0000000000..6b12335513
--- /dev/null
+++ b/meta-oe/recipes-devtools/jq/jq_1.7.1.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Lightweight and flexible command-line JSON processor"
+DESCRIPTION = "jq is like sed for JSON data, you can use it to slice and \
+ filter and map and transform structured data with the same \
+ ease that sed, awk, grep and friends let you play with text."
+HOMEPAGE = "https://jqlang.github.io/jq/"
+BUGTRACKER = "https://github.com/jqlang/jq/issues"
+SECTION = "utils"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=488f4e0b04c0456337fb70d1ac1758ba"
+
+GITHUB_BASE_URI = "https://github.com/jqlang/${BPN}/releases/"
+SRC_URI = "${GITHUB_BASE_URI}/download/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
+ file://run-ptest \
+ "
+SRC_URI[sha256sum] = "478c9ca129fd2e3443fe27314b455e211e0d8c60bc8ff7df703873deeee580c2"
+
+inherit autotools github-releases ptest
+
+UPSTREAM_CHECK_REGEX = "releases/tag/${BPN}-(?P<pver>\d+(\.\d+)+)"
+
+PACKAGECONFIG ?= "oniguruma"
+
+PACKAGECONFIG[docs] = "--enable-docs,--disable-docs,ruby-native"
+PACKAGECONFIG[maintainer-mode] = "--enable-maintainer-mode,--disable-maintainer-mode,flex-native bison-native"
+PACKAGECONFIG[oniguruma] = "--with-oniguruma,--without-oniguruma,onig"
+# enable if you want ptest running under valgrind
+PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind"
+
+do_configure:append() {
+ sed -i -e "/^ac_cs_config=/ s:${WORKDIR}::g" ${B}/config.status
+}
+
+do_install_ptest() {
+ cp -rf ${S}/tests ${D}${PTEST_PATH}
+ cp -rf ${B}/.libs ${D}${PTEST_PATH}
+ # libjq.so.* is packaged in the main jq component, so remove it from ptest
+ rm -f ${D}${PTEST_PATH}/.libs/libjq.so.*
+ ln -sf ${bindir}/jq ${D}${PTEST_PATH}
+ if [ "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', 'true', 'false', d)}" = "false" ]; then
+ sed -i 's:#export NO_VALGRIND=1:export NO_VALGRIND=1:g' ${D}${PTEST_PATH}/run-ptest
+ fi
+ # handle multilib
+ sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/jq/jq_git.bb b/meta-oe/recipes-devtools/jq/jq_git.bb
deleted file mode 100644
index c6634cd300..0000000000
--- a/meta-oe/recipes-devtools/jq/jq_git.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Lightweight and flexible command-line JSON processor"
-DESCRIPTION = "jq is like sed for JSON data, you can use it to slice and \
- filter and map and transform structured data with the same \
- ease that sed, awk, grep and friends let you play with text."
-HOMEPAGE = "https://stedolan.github.io/jq/"
-BUGTRACKER = "https://github.com/stedolan/jq/issues"
-SECTION = "utils"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2814b59e00e7918c864fa3b6bbe049b4"
-
-PV = "1.6+git${SRCPV}"
-SRC_URI = "git://github.com/stedolan/jq;protocol=https;branch=master \
- file://0001-configure-Pass-_XOPEN_SOURCE-when-checking-for-strpt.patch \
- file://0002-builtin-Replace-_BSD_SOURCE-with-_DEFAULT_SOURCE.patch \
- file://run-ptest \
- "
-SRCREV = "cff5336ec71b6fee396a95bb0e4bea365e0cd1e8"
-S = "${WORKDIR}/git"
-
-inherit autotools-brokensep ptest
-
-PACKAGECONFIG ?= "oniguruma"
-
-PACKAGECONFIG[docs] = "--enable-docs,--disable-docs,ruby-native"
-PACKAGECONFIG[maintainer-mode] = "--enable-maintainer-mode,--disable-maintainer-mode,flex-native bison-native"
-PACKAGECONFIG[oniguruma] = "--with-oniguruma,--without-oniguruma,onig"
-
-EXTRA_OECONF += " \
- --disable-valgrind \
-"
-
-do_install_ptest() {
- cp -rf ${B}/tests ${D}${PTEST_PATH}
- cp -rf ${B}/.libs ${D}${PTEST_PATH}
- # libjq.so.* is packaged in the main jq component, so remove it from ptest
- rm -f ${D}${PTEST_PATH}/.libs/libjq.so.*
- ln -sf ${bindir}/jq ${D}${PTEST_PATH}
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0001-Set-Json_validator-Install-off-if-it-finds-it-via-li.patch b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0001-Set-Json_validator-Install-off-if-it-finds-it-via-li.patch
new file mode 100644
index 0000000000..6e6a4b93e8
--- /dev/null
+++ b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0001-Set-Json_validator-Install-off-if-it-finds-it-via-li.patch
@@ -0,0 +1,29 @@
+From 35939115142db6cd366ab11b29692a0179338ddf Mon Sep 17 00:00:00 2001
+From: Parian Golchin <Parian.Golchin@iris-sensing.com>
+Date: Fri, 18 Aug 2023 15:54:25 +0200
+Subject: [PATCH 1/3] Set Json_validator Install off if it finds it via linking
+
+Upstream-Status: Inappropriate [newer version of cmake in main branch]
+
+Signed-off-by: Parian Golchin <Parian.Golchin@iris-sensing.com>
+---
+ CMakeLists.txt | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f636734..9e4587f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -55,6 +55,9 @@ option(JSON_VALIDATOR_BUILD_EXAMPLES "Build examples" ${JSON_VALIDATOR_IS_TOP_LE
+
+ if(NOT TARGET nlohmann_json::nlohmann_json)
+ find_package(nlohmann_json REQUIRED)
++else()
++ message(STATUS "Found nlohmann_json::nlohmann_json-target - linking with it")
++ set(JSON_VALIDATOR_INSTALL OFF)
+ endif()
+
+ target_link_libraries(
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0001-cmake-Use-GNUInstallDirs.patch b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0001-cmake-Use-GNUInstallDirs.patch
deleted file mode 100644
index 4b1184a394..0000000000
--- a/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0001-cmake-Use-GNUInstallDirs.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From e0b1ad02c678513412aba95a1b2fb4005c3c0452 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 19 Mar 2022 22:40:49 -0700
-Subject: [PATCH] cmake: Use GNUInstallDirs
-
-This helps it make it platform independent, some platforms e.g.
-ppc64/linux use /usr/lib64 for system libraries
-
-Upstream-Status: Submitted [https://github.com/pboettch/json-schema-validator/pull/197]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c4cc218..594dc5f 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -122,11 +122,13 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- endif()
- endif()
-
-+include(GNUInstallDirs)
-+
- if(JSON_VALIDATOR_INSTALL)
- install(TARGETS nlohmann_json_schema_validator
- EXPORT ${PROJECT_NAME}Targets
-- LIBRARY DESTINATION lib
-- ARCHIVE DESTINATION lib
-+ LIBRARY DESTINATION ${LIBDIR}
-+ ARCHIVE DESTINATION ${LIBDIR}
- RUNTIME DESTINATION bin)
-
- install(FILES src/nlohmann/json-schema.hpp
-@@ -155,7 +157,7 @@ if(JSON_VALIDATOR_INSTALL)
- # Set Up the Project Targets and Config Files for CMake
-
- # Set the install path to the cmake config files
-- set(INSTALL_CMAKE_DIR ${CMAKE_INSTALL_PREFIX}/lib/cmake/${PROJECT_NAME})
-+ set(INSTALL_CMAKE_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
-
- # Create the ConfigVersion file
- include(CMakePackageConfigHelpers) # write_basic_package_version_file
---
-2.35.1
-
diff --git a/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0002-Fix-assumed-signed-char.patch b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0002-Fix-assumed-signed-char.patch
new file mode 100644
index 0000000000..1c4b871bb6
--- /dev/null
+++ b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0002-Fix-assumed-signed-char.patch
@@ -0,0 +1,71 @@
+From 2065015da40cf79dd8ec9e3f186538e17c3b592f Mon Sep 17 00:00:00 2001
+From: Robert Joslyn <robert.joslyn@redrectangle.org>
+Date: Wed, 30 Nov 2022 13:07:29 -0800
+Subject: [PATCH 2/3] Fix assumed signed char
+
+The code assumes that char is signed, but whether char is signed or
+unsigned is implementation defined. On some architectures like PowerPC,
+GCC treats char as unsigned resulting in compile errors:
+
+ smtp-address-validator.cpp:213:1: error: narrowing conversion of '-32' from 'int' to 'char' [-Wnarrowing]
+
+Fix this by specifying signed char.
+
+Upstream-Status: Backport [https://github.com/pboettch/json-schema-validator/commit/491ac44026e08f31790f5cacffa62e168bb35e32]
+
+Signed-off-by: Parian Golchin <Parian.Golchin@iris-sensing.com>
+---
+ src/smtp-address-validator.cpp | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/smtp-address-validator.cpp b/src/smtp-address-validator.cpp
+index a63ead0..3903b51 100644
+--- a/src/smtp-address-validator.cpp
++++ b/src/smtp-address-validator.cpp
+@@ -63,7 +63,7 @@ static const short _address_key_offsets[] = {
+ 1363, 1365, 1367, 1368, 1370, 1388, 0
+ };
+
+-static const char _address_trans_keys[] = {
++static const signed char _address_trans_keys[] = {
+ -32, -19, -16, -12, 34, 45, 61, 63,
+ -62, -33, -31, -17, -15, -13, 33, 39,
+ 42, 43, 47, 57, 65, 90, 94, 126,
+@@ -711,7 +711,7 @@ bool is_address(const char* p, const char* pe)
+ {
+ int _klen;
+ unsigned int _trans = 0;
+- const char * _keys;
++ const signed char * _keys;
+ const signed char * _acts;
+ unsigned int _nacts;
+ _resume: {}
+@@ -728,9 +728,9 @@ bool is_address(const char* p, const char* pe)
+
+ _klen = (int)_address_single_lengths[cs];
+ if ( _klen > 0 ) {
+- const char *_lower = _keys;
+- const char *_upper = _keys + _klen - 1;
+- const char *_mid;
++ const signed char *_lower = _keys;
++ const signed char *_upper = _keys + _klen - 1;
++ const signed char *_mid;
+ while ( 1 ) {
+ if ( _upper < _lower ) {
+ _keys += _klen;
+@@ -752,9 +752,9 @@ bool is_address(const char* p, const char* pe)
+
+ _klen = (int)_address_range_lengths[cs];
+ if ( _klen > 0 ) {
+- const char *_lower = _keys;
+- const char *_upper = _keys + (_klen<<1) - 2;
+- const char *_mid;
++ const signed char *_lower = _keys;
++ const signed char *_upper = _keys + (_klen<<1) - 2;
++ const signed char *_mid;
+ while ( 1 ) {
+ if ( _upper < _lower ) {
+ _trans += (unsigned int)_klen;
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0003-For-root-value-use-empty-pointer.patch b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0003-For-root-value-use-empty-pointer.patch
new file mode 100644
index 0000000000..eac997ae58
--- /dev/null
+++ b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0003-For-root-value-use-empty-pointer.patch
@@ -0,0 +1,41 @@
+From fa49c29942763285c51b7d2dea417d9f51e4961f Mon Sep 17 00:00:00 2001
+From: Sven Fink <sven.fink@wipotec.com>
+Date: Fri, 13 Jan 2023 09:15:42 +0100
+Subject: [PATCH 3/3] For root value, use empty pointer
+
+Upstream-Status: Backport [https://github.com/pboettch/json-schema-validator/commit/59c9d6200bf3cd54b4fc717ec1660c91eddb4d1a]
+
+Signed-off-by: Parian Golchin <Parian.Golchin@iris-sensing.com>
+---
+ src/json-validator.cpp | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/json-validator.cpp b/src/json-validator.cpp
+index 7f34553..3c73d98 100644
+--- a/src/json-validator.cpp
++++ b/src/json-validator.cpp
+@@ -553,6 +553,9 @@ class type_schema : public schema
+ else_->validate(ptr, instance, patch, e);
+ }
+ }
++ if (instance.is_null()) {
++ patch.add(nlohmann::json::json_pointer{}, default_value_);
++ }
+ }
+
+ protected:
+@@ -1134,6 +1137,11 @@ public:
+ propertyNames_ = schema::make(attr.value(), root, {"propertyNames"}, uris);
+ sch.erase(attr);
+ }
++
++ attr = sch.find("default");
++ if (attr != sch.end()) {
++ set_default_value(*attr);
++ }
+ }
+ };
+
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0004-cmake-Use-GNUInstallDirs.patch b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0004-cmake-Use-GNUInstallDirs.patch
new file mode 100644
index 0000000000..8199e4f8d4
--- /dev/null
+++ b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0004-cmake-Use-GNUInstallDirs.patch
@@ -0,0 +1,43 @@
+From a42d374aa260caec5f683c75d0db322811e51ab9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 19 Mar 2022 22:40:49 -0700
+Subject: [PATCH] cmake: Use GNUInstallDirs
+
+This helps it make it platform independent, some platforms e.g.
+ppc64/linux use /usr/lib64 for system libraries
+
+Upstream-Status: Submitted [https://github.com/pboettch/json-schema-validator/pull/197]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9e4587f..3eff234 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -93,11 +93,13 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ endif()
+ endif()
+
++include(GNUInstallDirs)
++
+ if(JSON_VALIDATOR_INSTALL)
+ install(TARGETS nlohmann_json_schema_validator
+ EXPORT ${PROJECT_NAME}Targets
+- LIBRARY DESTINATION lib
+- ARCHIVE DESTINATION lib
++ LIBRARY DESTINATION ${LIBDIR}
++ ARCHIVE DESTINATION ${LIBDIR}
+ RUNTIME DESTINATION bin)
+
+ install(FILES src/nlohmann/json-schema.hpp
+@@ -129,7 +131,7 @@ endif()
+
+ if(JSON_VALIDATOR_INSTALL)
+ # Set the install path to the cmake config files (Relative, so install works correctly under Hunter as well)
+- set(INSTALL_CMAKE_DIR "lib/cmake/${PROJECT_NAME}")
++ set(INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
+ set(INSTALL_CMAKEDIR_ROOT share/cmake)
+
+ # Install Targets
diff --git a/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.1.0.bb b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.1.0.bb
deleted file mode 100644
index 00d26d7b34..0000000000
--- a/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.1.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "JSON schema validator for JSON for Modern C++"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c441d022da1b1663c70181a32225d006"
-
-SRC_URI = "git://github.com/pboettch/json-schema-validator;branch=master;protocol=https \
- file://0001-cmake-Use-GNUInstallDirs.patch \
- "
-SRCREV = "27fc1d094503623dfe39365ba82581507524545c"
-
-S = "${WORKDIR}/git"
-
-DEPENDS += "nlohmann-json"
-
-inherit cmake
-EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF"
-
diff --git a/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.2.0.bb b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.2.0.bb
new file mode 100644
index 0000000000..02dcdb2696
--- /dev/null
+++ b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.2.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "JSON schema validator for JSON for Modern C++"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c441d022da1b1663c70181a32225d006"
+
+SRC_URI = "git://github.com/pboettch/json-schema-validator;branch=main;protocol=https \
+ file://0001-Set-Json_validator-Install-off-if-it-finds-it-via-li.patch \
+ file://0002-Fix-assumed-signed-char.patch \
+ file://0003-For-root-value-use-empty-pointer.patch \
+ file://0004-cmake-Use-GNUInstallDirs.patch \
+ "
+
+SRCREV = "6b17782d6a5d1dee5d2c4fc5d25ffb1123913431"
+
+S = "${WORKDIR}/git"
+
+DEPENDS += "nlohmann-json"
+
+inherit cmake
+EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON -DJSON_VALIDATOR_BUILD_TESTS=OFF -DJSON_VALIDATOR_BUILD_EXAMPLES=OFF"
diff --git a/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-Fix-build-with-libmicrohttpd.patch b/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-Fix-build-with-libmicrohttpd.patch
deleted file mode 100644
index a4cacb3fc0..0000000000
--- a/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-Fix-build-with-libmicrohttpd.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From d983161415f5f5748fbdbaa5fbd168154ccf8867 Mon Sep 17 00:00:00 2001
-From: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
-Date: Wed, 5 Aug 2020 12:31:24 +0900
-Subject: [PATCH] Fix build with libmicrohttpd 0.9.71
-
----
- src/jsonrpccpp/server/connectors/httpserver.cpp | 2 +-
- src/jsonrpccpp/server/connectors/httpserver.h | 8 +++++++-
- 2 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/src/jsonrpccpp/server/connectors/httpserver.cpp b/src/jsonrpccpp/server/connectors/httpserver.cpp
-index a849615..dd3b841 100644
---- a/src/jsonrpccpp/server/connectors/httpserver.cpp
-+++ b/src/jsonrpccpp/server/connectors/httpserver.cpp
-@@ -151,7 +151,7 @@ void HttpServer::SetUrlHandler(const string &url,
- this->SetHandler(NULL);
- }
-
--int HttpServer::callback(void *cls, MHD_Connection *connection, const char *url,
-+mhd_result HttpServer::callback(void *cls, MHD_Connection *connection, const char *url,
- const char *method, const char *version,
- const char *upload_data, size_t *upload_data_size,
- void **con_cls) {
-diff --git a/src/jsonrpccpp/server/connectors/httpserver.h b/src/jsonrpccpp/server/connectors/httpserver.h
-index 7785edb..0dcf032 100644
---- a/src/jsonrpccpp/server/connectors/httpserver.h
-+++ b/src/jsonrpccpp/server/connectors/httpserver.h
-@@ -32,6 +32,12 @@ typedef intptr_t ssize_t;
- #include <map>
- #include <microhttpd.h>
-
-+#if MHD_VERSION >= 0x00097002
-+# define mhd_result enum MHD_Result
-+#else
-+# define mhd_result int
-+#endif
-+
- namespace jsonrpc {
- /**
- * This class provides an embedded HTTP Server, based on libmicrohttpd, to
-@@ -79,7 +85,7 @@ private:
- std::map<std::string, IClientConnectionHandler *> urlhandler;
- struct sockaddr_in loopback_addr;
-
-- static int callback(void *cls, struct MHD_Connection *connection,
-+ static mhd_result callback(void *cls, struct MHD_Connection *connection,
- const char *url, const char *method, const char *version,
- const char *upload_data, size_t *upload_data_size,
- void **con_cls);
---
-2.25.1
-
diff --git a/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.3.0.bb b/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.3.0.bb
deleted file mode 100644
index 43dc2e36a4..0000000000
--- a/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.3.0.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "C++ framework for json-rpc 1.0 and 2.0"
-DESCRIPTION = "JsonRpc-Cpp is an OpenSource implementation of JSON-RPC \
- protocol in C++. JSON-RPC is a lightweight remote procedure \
- call protocol similar to XML-RPC."
-HOMEPAGE = "https://github.com/cinemast/libjson-rpc-cpp"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4e728c5b36018f6c383b4b9efd9c8840"
-SECTION = "libs"
-
-DEPENDS = "curl jsoncpp libmicrohttpd hiredis"
-
-SRC_URI = "git://github.com/cinemast/libjson-rpc-cpp;branch=master;protocol=https \
- file://0001-Fix-build-with-libmicrohttpd.patch \
-"
-
-SRCREV = "c696f6932113b81cd20cd4a34fdb1808e773f23e"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[coverage] = "-DWITH_COVERAGE=YES,-DWITH_COVERAGE=NO,,"
-
-inherit cmake
-
-EXTRA_OECMAKE += "-DCOMPILE_TESTS=NO -DCOMPILE_STUBGEN=NO -DCOMPILE_EXAMPLES=NO \
- -DBUILD_SHARED_LIBS=YES -DBUILD_STATIC_LIBS=YES \
- -DCMAKE_LIBRARY_PATH=${libdir} \
-"
-
-FILES:${PN}-dev += "${libdir}/libjson-rpc-cpp/cmake"
diff --git a/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.4.1.bb b/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.4.1.bb
new file mode 100644
index 0000000000..544922f05d
--- /dev/null
+++ b/meta-oe/recipes-devtools/jsonrpc/jsonrpc_1.4.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "C++ framework for json-rpc 1.0 and 2.0"
+DESCRIPTION = "JsonRpc-Cpp is an OpenSource implementation of JSON-RPC \
+ protocol in C++. JSON-RPC is a lightweight remote procedure \
+ call protocol similar to XML-RPC."
+HOMEPAGE = "https://github.com/cinemast/libjson-rpc-cpp"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4e728c5b36018f6c383b4b9efd9c8840"
+SECTION = "libs"
+
+DEPENDS = "curl jsoncpp libmicrohttpd hiredis"
+
+SRC_URI = "git://github.com/cinemast/libjson-rpc-cpp;branch=master;protocol=https"
+
+SRCREV = "ec5ce12fc9c0299e1454cc002c70218b5a6f005b"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[coverage] = "-DWITH_COVERAGE=YES,-DWITH_COVERAGE=NO,,"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DCOMPILE_TESTS=NO -DCOMPILE_STUBGEN=NO -DCOMPILE_EXAMPLES=NO \
+ -DBUILD_SHARED_LIBS=YES -DBUILD_STATIC_LIBS=YES \
+ -DCMAKE_LIBRARY_PATH=${libdir} \
+"
+
+FILES:${PN}-dev += "${libdir}/libjson-rpc-cpp/cmake"
diff --git a/meta-oe/recipes-devtools/jwt-cpp/jwt-cpp_0.7.0.bb b/meta-oe/recipes-devtools/jwt-cpp/jwt-cpp_0.7.0.bb
new file mode 100644
index 0000000000..19424337f7
--- /dev/null
+++ b/meta-oe/recipes-devtools/jwt-cpp/jwt-cpp_0.7.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A header only library for creating and validating json web tokens in c++"
+HOMEPAGE = "https://thalhammer.github.io/jwt-cpp/"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8325a5ce4414c65ffdda392e0d96a9ff"
+
+SRC_URI = "git://github.com/Thalhammer/jwt-cpp.git;branch=master;protocol=https \
+ "
+
+SRCREV = "08bcf77a687fb06e34138e9e9fa12a4ecbe12332"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "openssl"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DJWT_BUILD_EXAMPLES=OFF -DJWT_CMAKE_FILES_INSTALL_DIR=${libdir}/cmake/${BPN}"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Avoid-using-hard-coded-usr-include-paths.patch b/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Avoid-using-hard-coded-usr-include-paths.patch
new file mode 100644
index 0000000000..ac20e9b88e
--- /dev/null
+++ b/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Avoid-using-hard-coded-usr-include-paths.patch
@@ -0,0 +1,33 @@
+From 2bd01e844096ab4ecaaab8eccfbfdc721a136d01 Mon Sep 17 00:00:00 2001
+From: Mark Hatle <mark.hatle@amd.com>
+Date: Tue, 22 Aug 2023 12:28:01 -0600
+Subject: [PATCH] Avoid using hard coded /usr/include paths
+
+The system could end up using an include path that points to the host
+system instead of the sysroot. Force the system to use the sysroot.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Mark Hatle <mark.hatle@amd.com>
+---
+ configure.ac | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 150bc50..4dc684f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -344,10 +344,6 @@ AS_IF(
+ [test "$need_panel_menu" = "yes" -o "$need_panel_menu" = "auto"],
+ [AC_SUBST([ncurses_nconf_CPPFLAGS])
+ AC_SUBST([ncurses_panel_menu_LIBS])
+- AS_CASE(
+- [$CURSES_LOC],
+- [ncursesw/*],[ncurses_nconf_CPPFLAGS="-I/usr/include/ncursesw"],
+- [ncurses/*],[ncurses_nconf_CPPFLAGS="-I/usr/include/ncurses"])
+ LIBS_old="$LIBS"
+ LIBS=
+ AC_SEARCH_LIBS(
+--
+2.34.1
+
diff --git a/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb b/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb
index 169500f6b4..b894f0ba03 100644
--- a/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb
+++ b/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb
@@ -15,7 +15,8 @@ DEPENDS += "ncurses flex-native gperf-native bison-native"
RDEPENDS:${PN} += "python3 bash"
SRC_URI = "git://gitlab.com/ymorin/kconfig-frontends.git;protocol=https;branch=4.11.x \
file://0001-Makefile-ensure-frontends-exits-before-writing-into-.patch \
- file://0001-Switch-utils-kconfig-diff-to-use-Python-3.patch"
+ file://0001-Switch-utils-kconfig-diff-to-use-Python-3.patch \
+ file://0001-Avoid-using-hard-coded-usr-include-paths.patch"
SRCREV = "f22fce3a308be1c7790ebefc6bbedb33c5f7c86a"
diff --git a/meta-oe/recipes-devtools/lapack/lapack/run-ptest b/meta-oe/recipes-devtools/lapack/lapack/run-ptest
new file mode 100755
index 0000000000..8bd5fd1efb
--- /dev/null
+++ b/meta-oe/recipes-devtools/lapack/lapack/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+ctest --force-new-ctest-process | sed -u 's/\*\*\*/ /g' | awk '/Test +#/{gsub(/Passed/,"PASS"); gsub(/Failed/,"FAIL"); gsub(/Skipped/,"SKIP"); print $6": "$4; fflush();}'
diff --git a/meta-oe/recipes-devtools/lapack/lapack_3.10.1.bb b/meta-oe/recipes-devtools/lapack/lapack_3.10.1.bb
deleted file mode 100644
index 15f394e13e..0000000000
--- a/meta-oe/recipes-devtools/lapack/lapack_3.10.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Linear Algebra PACKage"
-URL = "http://www.netlib.org/lapack"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a32c99f24d097c72d1857e533b55642b"
-
-# Recipe needs FORTRAN support (copied from conf/local.conf.sample.extended)
-# Enabling FORTRAN
-# Note this is not officially supported and is just illustrated here to
-# show an example of how it can be done
-# You'll also need your fortran recipe to depend on libgfortran
-#FORTRAN:forcevariable = ",fortran"
-#RUNTIMETARGET:append:pn-gcc-runtime = " libquadmath"
-
-DEPENDS = "libgfortran"
-
-SRCREV = "32b062a33352e05771dcc01b981ebe961bf2e42f"
-SRC_URI = "git://github.com/Reference-LAPACK/lapack.git;protocol=https;branch=master"
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[lapacke] = "-DLAPACKE=ON,-DLAPACKE=OFF"
-
-EXTRA_OECMAKE = " -DBUILD_SHARED_LIBS=ON "
-OECMAKE_GENERATOR = "Unix Makefiles"
-
-inherit cmake pkgconfig
-EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-oe/recipes-devtools/lapack/lapack_3.12.0.bb b/meta-oe/recipes-devtools/lapack/lapack_3.12.0.bb
new file mode 100644
index 0000000000..fef9d3a80e
--- /dev/null
+++ b/meta-oe/recipes-devtools/lapack/lapack_3.12.0.bb
@@ -0,0 +1,59 @@
+SUMMARY = "Linear Algebra PACKage"
+URL = "http://www.netlib.org/lapack"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d0e7a458f9fcbf0a3ba97cef3128b85d"
+
+# Recipe needs FORTRAN support (copied from conf/local.conf.sample.extended)
+# Enabling FORTRAN
+# Note this is not officially supported and is just illustrated here to
+# show an example of how it can be done
+# You'll also need your fortran recipe to depend on libgfortran
+#FORTRAN:forcevariable = ",fortran"
+#RUNTIMETARGET:append:pn-gcc-runtime = " libquadmath"
+
+DEPENDS = "libgfortran \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'rsync-native', '', d)} \
+ "
+RDEPENDS:${PN}-ptest += "cmake"
+
+SRCREV = "04b044e020a3560ccfa9988c8a80a1fb7083fc2e"
+SRC_URI = "git://github.com/Reference-LAPACK/lapack.git;protocol=https;branch=master \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'file://run-ptest', '', d)} \
+ "
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[lapacke] = "-DLAPACKE=ON,-DLAPACKE=OFF"
+
+EXTRA_OECMAKE = " -DBUILD_SHARED_LIBS=ON \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', ' -DBUILD_TESTING=ON', '', d)} \
+ "
+OECMAKE_GENERATOR = "Unix Makefiles"
+
+inherit cmake pkgconfig ptest
+EXCLUDE_FROM_WORLD = "1"
+
+do_install_ptest () {
+ rsync -a ${B}/TESTING ${D}${PTEST_PATH} \
+ --exclude CMakeFiles \
+ --exclude cmake_install.cmake \
+ --exclude Makefile
+ rsync -a ${B}/BLAS ${D}${PTEST_PATH} \
+ --exclude CMakeFiles \
+ --exclude cmake_install.cmake \
+ --exclude Makefile
+ rsync -a ${B}/LAPACKE ${D}${PTEST_PATH} \
+ --exclude CMakeFiles \
+ --exclude cmake_install.cmake \
+ --exclude Makefile
+ cp -r ${B}/bin ${D}${PTEST_PATH}
+ cp -r ${B}/lapack_testing.py ${D}${PTEST_PATH}
+ cp ${B}/CTestTestfile.cmake ${D}${PTEST_PATH}
+ cp ${S}/TESTING/*.in ${S}/TESTING/runtest.cmake ${D}${PTEST_PATH}/TESTING
+ cp ${S}/BLAS/TESTING/*.in ${D}${PTEST_PATH}/BLAS/TESTING
+ sed -i -e 's#${B}#${PTEST_PATH}#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+ sed -i -e 's#${S}#${PTEST_PATH}#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+ sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+ sed -i -e 's#${PYTHON}#/usr/bin/python3#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+ sed -i -e 's#${WORKDIR}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+}
diff --git a/meta-oe/recipes-devtools/lemon/files/lemon.1 b/meta-oe/recipes-devtools/lemon/files/lemon.1
deleted file mode 100644
index 914ee07013..0000000000
--- a/meta-oe/recipes-devtools/lemon/files/lemon.1
+++ /dev/null
@@ -1,63 +0,0 @@
-.Dd 2002-10-04
-.Dt LEMON 1
-.Os "Debian GNU/Linux"
-.\" Manual page created by Guus Sliepen <guus@debian.org>
-.Sh NAME
-.Nm lemon
-.Nd The Lemon Parser Generator
-.Sh SYNOPSIS
-.Nm
-.Op Fl bcgmqsx
-.Ar input
-.Sh DESCRIPTION
-.Nm
-is an LALR(1) parser generator for C or C++.
-It does the same job as bison and yacc.
-But
-.Nm
-is not another bison or yacc clone.
-It uses a different grammar syntax which is designed to reduce the number of coding errors.
-.Nm
-also uses a more sophisticated parsing engine that is faster than yacc and bison
-and which is both reentrant and thread-safe.
-Furthermore,
-.Nm
-implements features that can be used to eliminate resource leaks,
-making is suitable for use in long-running programs such as graphical user interfaces or embedded controllers.
-.Pp
-.Nm
-will read the grammer from
-.Ar input
-and write out a parser for that grammar in the C language.
-.Sh OPTIONS
-.Bl -tag -width indent
-.It Fl b
-Print only the basis in report.
-.It Fl c
-Don't compress the action table.
-.It Fl g
-Print grammar without actions.
-.It Fl m
-Output a makeheaders compatible file.
-.It Fl q
-(Quiet) Don't print the report file.
-.It Fl s
-Print parser stats to standard output.
-.It Fl x
-Print the version number.
-.El
-.Sh FILES
-.Bl -tag -width indent
-.It Pa /usr/share/lemon/lempar.c
-Driver template for the
-.Nm
-parser generator.
-.El
-.Sh AUTHOR
-.Nm
-has been written by
-.An D. Richard Hipp Aq drh@hwaci.com .
-.Pp
-This manual page was written by
-.An Guus Sliepen Aq guus@debian.org
-for the Debian GNU/Linux system.
diff --git a/meta-oe/recipes-devtools/lemon/lemon.inc b/meta-oe/recipes-devtools/lemon/lemon.inc
deleted file mode 100644
index 57b9fb710e..0000000000
--- a/meta-oe/recipes-devtools/lemon/lemon.inc
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "The Lemon Parser Generator"
-HOMEPAGE = "http://www.hwaci.com/sw/lemon/"
-LICENSE = "PD"
-SECTION = "devel"
-
-SRC_URI = "http://www.sqlite.org/sqlite-${PV}.tar.gz \
- file://lemon.1"
-
-S = "${WORKDIR}/sqlite-${PV}/tool"
-
-do_compile() {
- ${CC} ${CFLAGS} lemon.c -c -o lemon.o
- ${CCLD} ${LDFLAGS} lemon.o -o lemon
-}
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 lemon ${D}${bindir}
- install -m 0644 lempar.c ${D}${bindir}
- install -d ${D}${mandir}/man1
- install -m 0644 ${WORKDIR}/lemon.1 ${D}${mandir}/man1/
-}
-
-BBCLASSEXTEND = "native"
-
diff --git a/meta-oe/recipes-devtools/lemon/lemon_3.44.2.bb b/meta-oe/recipes-devtools/lemon/lemon_3.44.2.bb
new file mode 100644
index 0000000000..2904a454dc
--- /dev/null
+++ b/meta-oe/recipes-devtools/lemon/lemon_3.44.2.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "The Lemon Parser Generator"
+HOMEPAGE = "https://sqlite.org/src/file/doc/lemon.html"
+LICENSE = "PD"
+SECTION = "devel"
+
+LIC_FILES_CHKSUM = "file://tool/lemon.c;endline=8;md5=c7551a78fa3fdecd96d1ad6761d205ee"
+
+SRC_URI = "git://github.com/sqlite/sqlite;protocol=https;branch=branch-3.44"
+
+SRCREV = "c8f9803dc32bfee78a9ca2b1abbe39499729219b"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} tool/lemon.c -o lemon
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 lemon ${D}${bindir}
+ install -m 0644 tool/lempar.c ${D}${bindir}
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/lemon/lemon_3.7.3.bb b/meta-oe/recipes-devtools/lemon/lemon_3.7.3.bb
deleted file mode 100644
index 354db17e6e..0000000000
--- a/meta-oe/recipes-devtools/lemon/lemon_3.7.3.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require lemon.inc
-
-LIC_FILES_CHKSUM = "file://lemon.c;endline=8;md5=c7551a78fa3fdecd96d1ad6761d205ee"
-
-SRC_URI[md5sum] = "5437978aae90350cf984993091e0d695"
-SRC_URI[sha256sum] = "dbf352e8fbb74829f5e7a88f9f6ceeb80a709537f668c36e4b6cdfb271309ef6"
-
diff --git a/meta-oe/recipes-devtools/libgee/libgee_0.20.6.bb b/meta-oe/recipes-devtools/libgee/libgee_0.20.6.bb
index f7b54b9b09..0ed6e8235d 100644
--- a/meta-oe/recipes-devtools/libgee/libgee_0.20.6.bb
+++ b/meta-oe/recipes-devtools/libgee/libgee_0.20.6.bb
@@ -8,7 +8,7 @@ BBCLASSEXTEND = "native"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-PE = "1"
+GNOMEBASEBUILDCLASS = "autotools"
inherit gnomebase vala gobject-introspection
do_configure:prepend() {
diff --git a/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb b/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb
index 2a1234c57e..9b18269bcb 100644
--- a/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb
+++ b/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb
@@ -11,13 +11,12 @@ SRC_URI = "git://github.com/hatukanezumi/sombok.git;protocol=https;branch=master
file://0001-configure.ac-fix-cross-compiling-issue.patch \
"
-inherit autotools pkgconfig
+inherit autotools-brokensep pkgconfig
# sombok-2.4.0
SRCREV = "0098d85a037ef5c99a648a3669a077781a45e8cc"
S = "${WORKDIR}/git"
-B = "${S}"
# Disable libthai support
EXTRA_OECONF = "--disable-libthai"
diff --git a/meta-oe/recipes-devtools/libubox/libubox/0001-version-libraries.patch b/meta-oe/recipes-devtools/libubox/libubox/0001-version-libraries.patch
index 02117fa8d6..f82c31ad07 100644
--- a/meta-oe/recipes-devtools/libubox/libubox/0001-version-libraries.patch
+++ b/meta-oe/recipes-devtools/libubox/libubox/0001-version-libraries.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 57804cf..1aa7f27 100644
--- a/CMakeLists.txt
diff --git a/meta-oe/recipes-devtools/libubox/libubox_git.bb b/meta-oe/recipes-devtools/libubox/libubox_git.bb
index b2898c9c7f..39e18cdafd 100644
--- a/meta-oe/recipes-devtools/libubox/libubox_git.bb
+++ b/meta-oe/recipes-devtools/libubox/libubox_git.bb
@@ -20,7 +20,7 @@ SRC_URI = "\
"
SRCREV = "07413cce72e19520af55dfcbc765484f5ab41dd9"
-PV = "1.0.1+git${SRCPV}"
+PV = "1.0.1+git"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-devtools/lshw/files/0001-Fix-musl-build.patch b/meta-oe/recipes-devtools/lshw/files/0001-Fix-musl-build.patch
deleted file mode 100644
index fa90aa1211..0000000000
--- a/meta-oe/recipes-devtools/lshw/files/0001-Fix-musl-build.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From a5a4bb4254b2109bd3e272174946f0bb36ee99a8 Mon Sep 17 00:00:00 2001
-From: Leon Anavi <leon.anavi@konsulko.com>
-Date: Tue, 25 Aug 2020 11:45:45 +0300
-Subject: [PATCH] Fix musl build
-
-Apply the following fixes for musl:
-
-- Fix basename() is in libgen.h
-- Fix wrong usage of LONG_BIT
-
-Same fixes have been submitted to the upstream of lshw by Sergio
-Prado but they have not been merged yet.
-
-Upstream-Status: Submitted
-
-Co-Authored-By: Sergio Prado <sergio.prado@e-labworks.com>
-Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
----
- src/core/abi.cc | 4 +---
- src/core/sysfs.cc | 19 ++++++++++---------
- 2 files changed, 11 insertions(+), 12 deletions(-)
-
-diff --git a/src/core/abi.cc b/src/core/abi.cc
-index adff7b5..76c664c 100644
---- a/src/core/abi.cc
-+++ b/src/core/abi.cc
-@@ -20,9 +20,7 @@ __ID("@(#) $Id: mem.cc 1352 2006-05-27 23:54:13Z ezix $");
- bool scan_abi(hwNode & system)
- {
- // are we compiled as 32- or 64-bit process ?
-- long sc = sysconf(LONG_BIT);
-- if(sc==-1) sc = sysconf(_SC_LONG_BIT);
-- if(sc!=-1) system.setWidth(sc);
-+ system.setWidth(LONG_BIT);
-
- pushd(PROC_SYS);
-
-diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc
-index 32d6564..c2fa84f 100644
---- a/src/core/sysfs.cc
-+++ b/src/core/sysfs.cc
-@@ -16,6 +16,7 @@
- #include <sys/stat.h>
- #include <sys/types.h>
- #include <sys/mount.h>
-+#include <libgen.h>
-
-
- __ID("@(#) $Id$");
-@@ -100,7 +101,7 @@ static string sysfs_getbustype(const string & path)
- {
- devname =
- string(fs.path + "/bus/") + string(namelist[i]->d_name) +
-- "/devices/" + basename(path.c_str());
-+ "/devices/" + basename(const_cast<char*>(path.c_str()));
-
- if (samefile(devname, path))
- return string(namelist[i]->d_name);
-@@ -140,7 +141,7 @@ static string sysfstobusinfo(const string & path)
-
- if (bustype == "usb")
- {
-- string name = basename(path.c_str());
-+ string name = basename(const_cast<char*>(path.c_str()));
- if (matches(name, "^[0-9]+-[0-9]+(\\.[0-9]+)*:[0-9]+\\.[0-9]+$"))
- {
- size_t colon = name.rfind(":");
-@@ -151,7 +152,7 @@ static string sysfstobusinfo(const string & path)
-
- if (bustype == "virtio")
- {
-- string name = basename(path.c_str());
-+ string name = basename(const_cast<char*>(path.c_str()));
- if (name.compare(0, 6, "virtio") == 0)
- return "virtio@" + name.substr(6);
- else
-@@ -159,10 +160,10 @@ static string sysfstobusinfo(const string & path)
- }
-
- if (bustype == "vio")
-- return string("vio@") + basename(path.c_str());
-+ return string("vio@") + basename(const_cast<char*>(path.c_str()));
-
- if (bustype == "ccw")
-- return string("ccw@") + basename(path.c_str());
-+ return string("ccw@") + basename(const_cast<char*>(path.c_str()));
-
- if (bustype == "ccwgroup")
- {
-@@ -240,7 +241,7 @@ string entry::driver() const
- string driverlink = This->devpath + "/driver";
- if (!exists(driverlink))
- return "";
-- return basename(readlink(driverlink).c_str());
-+ return basename(const_cast<char*>(readlink(driverlink).c_str()));
- }
-
-
-@@ -328,7 +329,7 @@ string entry::name_in_class(const string & classname) const
-
- string entry::name() const
- {
-- return basename(This->devpath.c_str());
-+ return basename(const_cast<char*>(This->devpath.c_str()));
- }
-
-
-@@ -340,12 +341,12 @@ entry entry::parent() const
-
- string entry::classname() const
- {
-- return basename(dirname(This->devpath).c_str());
-+ return basename(const_cast<char*>(dirname(This->devpath).c_str()));
- }
-
- bool entry::isvirtual() const
- {
-- return string(basename(dirname(dirname(This->devpath)).c_str())) == "virtual";
-+ return string(basename(const_cast<char*>(dirname(dirname(This->devpath)).c_str()))) == "virtual";
- }
-
- string entry::string_attr(const string & name, const string & def) const
---
-2.17.1
-
diff --git a/meta-oe/recipes-devtools/lshw/files/0001-disable-docbook2man.patch b/meta-oe/recipes-devtools/lshw/files/0001-disable-docbook2man.patch
new file mode 100644
index 0000000000..706f2d5248
--- /dev/null
+++ b/meta-oe/recipes-devtools/lshw/files/0001-disable-docbook2man.patch
@@ -0,0 +1,30 @@
+From 544df0f5fd99925a3ce568c777413e0c31cb0028 Mon Sep 17 00:00:00 2001
+From: Jose Quaresma <jose.quaresma@foundries.io>
+Date: Mon, 2 Jan 2023 15:32:39 +0000
+Subject: [PATCH] build: Do not build .sgml file
+
+It needs docbook2man tool which we do not have recipe for
+
+Upstream-Status: Inappropriate [needs native docbook2man tool]
+
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
+---
+ src/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index ac726d0..af6281d 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -102,7 +102,7 @@ $(PACKAGENAME)-compressed: $(PACKAGENAME)-static
+ upx -9 -o $@ $<
+
+ $(PACKAGENAME).1: $(PACKAGENAME).sgml
+- docbook2man $<
++ @echo "Needs docbook2man"
+
+ pci.ids:
+ wget http://pciids.sourceforge.net/pci.ids
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb b/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb
deleted file mode 100644
index 8b3608a248..0000000000
--- a/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-DESCRIPTION = "A small tool to provide detailed information on the hardware \
-configuration of the machine. It can report exact memory configuration, \
-firmware version, mainboard configuration, CPU version and speed, cache \
-configuration, bus speed, etc. on DMI-capable or EFI systems."
-SUMMARY = "Hardware lister"
-HOMEPAGE = "http://ezix.org/project/wiki/HardwareLiSter"
-SECTION = "console/tools"
-
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
-
-SRC_URI = " \
- http://ezix.org/software/files/lshw-B.${PV}.tar.gz \
- file://0001-Fix-musl-build.patch \
-"
-SRC_URI[md5sum] = "8c70d46e906688309095c73ecb9396e3"
-SRC_URI[sha256sum] = "9bb347ac87142339a366a1759ac845e3dbb337ec000aa1b99b50ac6758a80f80"
-
-S = "${WORKDIR}/lshw-B.${PV}"
-
-do_compile() {
- # build core only - don't ship gui
- oe_runmake -C src core
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D}
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/lshw/lshw_02.20.bb b/meta-oe/recipes-devtools/lshw/lshw_02.20.bb
new file mode 100644
index 0000000000..0fb68d8684
--- /dev/null
+++ b/meta-oe/recipes-devtools/lshw/lshw_02.20.bb
@@ -0,0 +1,43 @@
+DESCRIPTION = "A small tool to provide detailed information on the hardware \
+configuration of the machine. It can report exact memory configuration, \
+firmware version, mainboard configuration, CPU version and speed, cache \
+configuration, bus speed, etc. on DMI-capable or EFI systems."
+SUMMARY = "Hardware lister"
+HOMEPAGE = "http://ezix.org/project/wiki/HardwareLiSter"
+SECTION = "console/tools"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64|riscv64).*-linux"
+
+PV .= "+git"
+SRCREV = "4c6497c8b0a67cd9fa9693e9101a7cafd3297e81"
+SRC_URI = " \
+ git://github.com/lyonel/lshw.git;protocol=https;branch=master \
+ file://0001-disable-docbook2man.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig
+
+DEPENDS = "gettext-native"
+
+PACKAGECONFIG ??= "zlib"
+PACKAGECONFIG[sqlite] = "SQLITE=1,SQLITE=0,sqlite3"
+PACKAGECONFIG[zlib] = "ZLIB=1,ZLIB=0,zlib gzip-native"
+
+# use the PACKAGECONFIG configurations arguments
+EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS} RPM_OPT_FLAGS='${CFLAGS}'"
+
+do_compile() {
+ # build core only - don't ship gui
+ oe_runmake -C src core
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-ARM-code-has-unreachable-code-after-switch-statement.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-ARM-code-has-unreachable-code-after-switch-statement.patch
index 4d0e0392f7..c896e3ebb0 100644
--- a/meta-oe/recipes-devtools/ltrace/ltrace/0001-ARM-code-has-unreachable-code-after-switch-statement.patch
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-ARM-code-has-unreachable-code-after-switch-statement.patch
@@ -11,6 +11,8 @@ sysdeps/linux-gnu/arm/trace.c:173:33: error: statement will never be executed [-
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
sysdeps/linux-gnu/arm/trace.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch
new file mode 100644
index 0000000000..61932269bd
--- /dev/null
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-Fix-type-of-single-bit-bitfields.patch
@@ -0,0 +1,86 @@
+From 491b3b153f6b5cbf2d23a9778e5676eb29a6705f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 6 Feb 2023 16:37:19 -0800
+Subject: [PATCH] Fix type of single bit bitfields
+
+clang16 warns
+trace.c:311:22: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Werror,-Wsingle-bit-bitfield-constant-conversion]
+
+quash the warning by using an unsigned type to allow
+an assignment of 0 or 1 without implicit conversion.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ library.h | 6 +++---
+ prototype.h | 2 +-
+ sysdeps/linux-gnu/trace.h | 10 +++++-----
+ 3 files changed, 9 insertions(+), 9 deletions(-)
+
+--- a/library.h
++++ b/library.h
+@@ -71,20 +71,20 @@ struct library_symbol {
+ * looking up one in LIB->protolib. */
+ struct prototype *proto;
+
+- int own_name : 1;
++ unsigned int own_name : 1;
+
+ /* This is relevant for PLT symbols. Latent PLT symbols are
+ * those that don't match any of the -e rules, but that might
+ * potentially become active if a library implementing them
+ * appears that matches a -l rule. Ltrace core is responsible
+ * for clearing latent flag. */
+- int latent : 1;
++ unsigned latent : 1;
+
+ /* Delayed symbols are those for which a breakpoint shouldn't
+ * be enabled yet. They are similar to latent symbols, but
+ * backend is responsible for clearing the delayed flag. See
+ * proc_activate_delayed_symbol. */
+- int delayed : 1;
++ unsigned int delayed : 1;
+
+ struct arch_library_symbol_data arch;
+ struct os_library_symbol_data os;
+--- a/prototype.h
++++ b/prototype.h
+@@ -162,7 +162,7 @@ struct protolib_cache {
+
+ /* For tracking uses of cache during cache's own
+ * initialization. */
+- int bootstrap : 1;
++ unsigned int bootstrap : 1;
+ };
+
+ /* Initialize CACHE. Returns 0 on success or a negative value on
+--- a/sysdeps/linux-gnu/trace.h
++++ b/sysdeps/linux-gnu/trace.h
+@@ -33,11 +33,11 @@
+ struct pid_task {
+ pid_t pid; /* This may be 0 for tasks that exited
+ * mid-handling. */
+- int sigstopped : 1;
+- int got_event : 1;
+- int delivered : 1;
+- int vforked : 1;
+- int sysret : 1;
++ unsigned int sigstopped : 1;
++ unsigned int got_event : 1;
++ unsigned int delivered : 1;
++ unsigned int vforked : 1;
++ unsigned int sysret : 1;
+ };
+
+ struct pid_set {
+--- a/sysdeps/linux-gnu/trace.c
++++ b/sysdeps/linux-gnu/trace.c
+@@ -1043,7 +1043,7 @@ ltrace_exiting_install_handler(struct pr
+ struct process_vfork_handler
+ {
+ struct event_handler super;
+- int vfork_bp_refd:1;
++ unsigned int vfork_bp_refd:1;
+ };
+
+ static Event *
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-Use-correct-enum-type.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-Use-correct-enum-type.patch
index 01a35842c8..38a7d055dc 100644
--- a/meta-oe/recipes-devtools/ltrace/ltrace/0001-Use-correct-enum-type.patch
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-Use-correct-enum-type.patch
@@ -7,6 +7,8 @@ Clang warns about wrong enum initializtion
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
sysdeps/linux-gnu/aarch64/fetch.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-configure-Recognise-linux-musl-as-a-host-OS.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-configure-Recognise-linux-musl-as-a-host-OS.patch
index 52264a17e6..f3a6d9e599 100644
--- a/meta-oe/recipes-devtools/ltrace/ltrace/0001-configure-Recognise-linux-musl-as-a-host-OS.patch
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-configure-Recognise-linux-musl-as-a-host-OS.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] configure: Recognise linux-musl as a host OS
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-plt.c-Delete-include-error.h.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-plt.c-Delete-include-error.h.patch
index 76ba7de785..ce4dcf8a98 100644
--- a/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-plt.c-Delete-include-error.h.patch
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-plt.c-Delete-include-error.h.patch
@@ -7,6 +7,8 @@ Its not needed
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
sysdeps/linux-gnu/mips/plt.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-ppc-Remove-unused-host_powerpc64-function.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-ppc-Remove-unused-host_powerpc64-function.patch
index 39e1f77a0a..35062debf2 100644
--- a/meta-oe/recipes-devtools/ltrace/ltrace/0001-ppc-Remove-unused-host_powerpc64-function.patch
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-ppc-Remove-unused-host_powerpc64-function.patch
@@ -8,6 +8,8 @@ with clang
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
sysdeps/linux-gnu/ppc/plt.c | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0002-Fix-const-qualifier-error.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0002-Fix-const-qualifier-error.patch
index c152771923..f78db5b0db 100644
--- a/meta-oe/recipes-devtools/ltrace/ltrace/0002-Fix-const-qualifier-error.patch
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0002-Fix-const-qualifier-error.patch
@@ -8,6 +8,8 @@ error: duplicate 'const' declaration specifier [-Werror,-Wduplicate-decl-specifi
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
dict.h | 2 +-
library.c | 2 +-
vect.h | 2 +-
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/add_ppc64le.patch b/meta-oe/recipes-devtools/ltrace/ltrace/add_ppc64le.patch
index dff61b1502..dcd0285db6 100644
--- a/meta-oe/recipes-devtools/ltrace/ltrace/add_ppc64le.patch
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/add_ppc64le.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/sysdeps/linux-gnu/ppc/ptrace.h
+++ b/sysdeps/linux-gnu/ppc/ptrace.h
@@ -18,4 +18,5 @@
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
index 72bec301fb..63971970cf 100644
--- a/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
+++ b/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
@@ -10,11 +10,11 @@ LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
PE = "1"
-PV = "7.91+git${SRCPV}"
+PV = "7.91+git"
SRCREV = "c22d359433b333937ee3d803450dc41998115685"
DEPENDS = "elfutils"
-SRC_URI = "git://github.com/sparkleholic/ltrace.git;branch=master;protocol=http;protocol=https \
+SRC_URI = "git://github.com/sparkleholic/ltrace.git;protocol=https;branch=master \
file://configure-allow-to-disable-selinux-support.patch \
file://0001-replace-readdir_r-with-readdir.patch \
file://0001-Use-correct-enum-type.patch \
@@ -31,6 +31,7 @@ SRC_URI = "git://github.com/sparkleholic/ltrace.git;branch=master;protocol=http;
file://0001-ppc-Remove-unused-host_powerpc64-function.patch \
file://0001-mips-Use-hardcodes-values-for-ABI-syscall-bases.patch \
file://0001-ppc-plt-do-not-free-symbol-libsym.patch \
+ file://0001-Fix-type-of-single-bit-bitfields.patch \
"
SRC_URI:append:libc-musl = " file://add_ppc64le.patch"
diff --git a/meta-oe/recipes-devtools/luajit/luajit_git.bb b/meta-oe/recipes-devtools/luajit/luajit_git.bb
index dd1cd51698..240271d410 100644
--- a/meta-oe/recipes-devtools/luajit/luajit_git.bb
+++ b/meta-oe/recipes-devtools/luajit/luajit_git.bb
@@ -1,17 +1,15 @@
SUMMARY = "Just-In-Time Compiler for Lua"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=23d6278200de9b48fd1439f80507cba8"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=076b97f5c7e61532f7f6f3865f04da57"
HOMEPAGE = "http://luajit.org"
SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1 \
file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
- file://clang.patch \
file://0001-Use-builtin-for-clear_cache.patch \
"
-# Set PV to a version tag and date (YYMMDD) associated with SRCREV if it is later.
-PV = "2.1.0~beta3-210112"
-SRCREV = "43ebb949a249a16c49d232ad24dc9127cc4302bb"
+PV = "2.1"
+SRCREV = "c525bcb9024510cad9e170e12b6209aedb330f83"
S = "${WORKDIR}/git"
@@ -93,10 +91,7 @@ FILES:${PN}-dev += "${libdir}/libluajit-5.1.a \
"
FILES:luajit-common = "${datadir}/${BPN}-${PV}"
-# mips64/ppc/ppc64/riscv64/riscv32 is not supported in this release
-COMPATIBLE_HOST:mipsarchn32 = "null"
-COMPATIBLE_HOST:mipsarchn64 = "null"
-COMPATIBLE_HOST:powerpc = "null"
+# ppc64/riscv64/riscv32 is not supported in this release
COMPATIBLE_HOST:powerpc64 = "null"
COMPATIBLE_HOST:powerpc64le = "null"
COMPATIBLE_HOST:riscv64 = "null"
diff --git a/meta-oe/recipes-devtools/luaposix/luaposix_35.1.bb b/meta-oe/recipes-devtools/luaposix/luaposix_35.1.bb
deleted file mode 100644
index a71bbebf70..0000000000
--- a/meta-oe/recipes-devtools/luaposix/luaposix_35.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "luaposix is a POSIX binding for Lua."
-LICENSE = "MIT"
-HOMEPAGE = "https://github.com/luaposix/luaposix"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f81069e00c0cad249f20efe958276db1"
-
-DEPENDS += "lua-native lua virtual/crypt"
-
-SRC_URI = "git://github.com/luaposix/luaposix.git;branch=release-v${PV};protocol=https \
-"
-SRCREV = "14043c5086ae738823a5dfbc9170d9e14193fbef"
-S = "${WORKDIR}/git"
-LUA_VERSION = "5.4"
-
-B = "${S}"
-
-inherit pkgconfig
-
-do_compile() {
- ${S}/build-aux/luke
-}
-
-do_install() {
- ${S}/build-aux/luke PREFIX=${D}${prefix} INST_LIBDIR=${D}${libdir}/lua/${LUA_VERSION} install
-}
-
-FILES:${PN} = "${datadir}/lua/${LUA_VERSION} \
- ${libdir}/lua/${LUA_VERSION}"
diff --git a/meta-oe/recipes-devtools/luaposix/luaposix_36.2.1.bb b/meta-oe/recipes-devtools/luaposix/luaposix_36.2.1.bb
new file mode 100644
index 0000000000..1d27eb2588
--- /dev/null
+++ b/meta-oe/recipes-devtools/luaposix/luaposix_36.2.1.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "luaposix is a POSIX binding for Lua."
+LICENSE = "MIT"
+HOMEPAGE = "https://github.com/luaposix/luaposix"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f30d022f6ef53952fa87cc0b6fffb153"
+
+DEPENDS += "lua-native lua virtual/crypt"
+
+SRC_URI = "git://github.com/luaposix/luaposix.git;branch=release-v36.2;protocol=https \
+"
+SRCREV = "5a8d8c768fc3c51f42cb591e9523a60399efc6a1"
+S = "${WORKDIR}/git"
+LUA_VERSION = "5.4"
+
+B = "${S}"
+
+inherit pkgconfig
+
+do_compile() {
+ ${S}/build-aux/luke
+}
+
+do_install() {
+ ${S}/build-aux/luke PREFIX=${D}${prefix} INST_LIBDIR=${D}${libdir}/lua/${LUA_VERSION} install
+}
+
+FILES:${PN} = "${datadir}/lua/${LUA_VERSION} \
+ ${libdir}/lua/${LUA_VERSION}"
diff --git a/meta-oe/recipes-devtools/makeself/makeself_2.4.5.bb b/meta-oe/recipes-devtools/makeself/makeself_2.4.5.bb
deleted file mode 100644
index 4cfe2ecca3..0000000000
--- a/meta-oe/recipes-devtools/makeself/makeself_2.4.5.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "A self-extracting archiving tool for Unix systems, in 100% shell script."
-DESCRIPTION = "\
- makeself.sh is a small shell script that generates a self-extractable \
- compressed tar archive from a directory. The resulting file appears as \
- a shell script (many of those have a .run suffix), and can be launched as is.\
-"
-HOMEPAGE = "https://makeself.io/"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "\
- git://github.com/megastep/${BPN}.git;protocol=https;branch=master \
-"
-
-SRCREV = "5742be6410bfad2c619fb1e98bf795e8fa0913c7"
-
-S = "${WORKDIR}/git"
-
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 ${S}/makeself.sh ${D}${bindir}/
- install -m 0755 ${S}/makeself-header.sh ${D}${bindir}/
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/makeself/makeself_2.5.0.bb b/meta-oe/recipes-devtools/makeself/makeself_2.5.0.bb
new file mode 100644
index 0000000000..f94025dd05
--- /dev/null
+++ b/meta-oe/recipes-devtools/makeself/makeself_2.5.0.bb
@@ -0,0 +1,28 @@
+SUMMARY = "A self-extracting archiving tool for Unix systems, in 100% shell script."
+DESCRIPTION = "\
+ makeself.sh is a small shell script that generates a self-extractable \
+ compressed tar archive from a directory. The resulting file appears as \
+ a shell script (many of those have a .run suffix), and can be launched as is.\
+"
+HOMEPAGE = "https://makeself.io/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "\
+ git://github.com/megastep/${BPN}.git;protocol=https;branch=master \
+"
+
+SRCREV = "09488c50c6bdc40aec8e3a9b23a539c5054a634c"
+
+S = "${WORKDIR}/git"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/makeself.sh ${D}${bindir}/
+ install -m 0755 ${S}/makeself-header.sh ${D}${bindir}/
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/mbpoll/mbpoll_1.5.2.bb b/meta-oe/recipes-devtools/mbpoll/mbpoll_1.5.2.bb
new file mode 100644
index 0000000000..028a8f9e46
--- /dev/null
+++ b/meta-oe/recipes-devtools/mbpoll/mbpoll_1.5.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Command line utility to communicate with ModBus slave (RTU or TCP)"
+DESCRIPTION = "mbpoll can: read discrete inputs; read and write binary outputs \
+(coil); read input registers; read and write output registers (holding register). \
+The reading and writing registers may be in decimal, hexadecimal or floating single \
+precision."
+LICENSE = "GPL-3.0-only"
+HOMEPAGE = "https://github.com/epsilonrt/mbpoll"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+DEPENDS = "libmodbus (>=3.1.4)"
+
+SRC_URI = "git://github.com/epsilonrt/mbpoll;protocol=https;branch=master"
+SRCREV = "a0bd6c08d3d15b086f2104477295c0705aed366a"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig cmake
diff --git a/meta-oe/recipes-devtools/mcpp/files/CVE-2019-14274.patch b/meta-oe/recipes-devtools/mcpp/files/CVE-2019-14274.patch
index a0c6584ecb..b1e05c59d5 100644
--- a/meta-oe/recipes-devtools/mcpp/files/CVE-2019-14274.patch
+++ b/meta-oe/recipes-devtools/mcpp/files/CVE-2019-14274.patch
@@ -4,6 +4,8 @@ Date: Tue, 4 Feb 2014 11:00:40 -0800
Subject: [PATCH] line comment bug
---
+Upstream-Status: Pending
+
src/support.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-devtools/mcpp/files/ice-mcpp.patch b/meta-oe/recipes-devtools/mcpp/files/ice-mcpp.patch
index 1df3ae55bc..36cc2bd64d 100644
--- a/meta-oe/recipes-devtools/mcpp/files/ice-mcpp.patch
+++ b/meta-oe/recipes-devtools/mcpp/files/ice-mcpp.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -r -c -N ../mcpp-2.7.2-old/noconfig/vc2010.dif ./noconfig/vc2010.dif
*** ../mcpp-2.7.2-old/noconfig/vc2010.dif Wed Dec 31 20:30:00 1969
--- ./noconfig/vc2010.dif Fri May 14 12:47:22 2010
diff --git a/meta-oe/recipes-devtools/memstat/memstat/0001-Include-limits.h-for-PATH_MAX-definition.patch b/meta-oe/recipes-devtools/memstat/memstat/0001-Include-limits.h-for-PATH_MAX-definition.patch
index 9a0a17e0e4..907ac9edbd 100644
--- a/meta-oe/recipes-devtools/memstat/memstat/0001-Include-limits.h-for-PATH_MAX-definition.patch
+++ b/meta-oe/recipes-devtools/memstat/memstat/0001-Include-limits.h-for-PATH_MAX-definition.patch
@@ -9,6 +9,8 @@ error: use of undeclared identifier 'PATH_MAX'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
memstat.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-devtools/mercurial/mercurial_6.1.bb b/meta-oe/recipes-devtools/mercurial/mercurial_6.1.bb
deleted file mode 100644
index 3abecc3054..0000000000
--- a/meta-oe/recipes-devtools/mercurial/mercurial_6.1.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "The Mercurial distributed SCM"
-HOMEPAGE = "http://mercurial.selenic.com/"
-SECTION = "console/utils"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "python3 python3-native"
-RDEPENDS:${PN} = "python3 python3-modules"
-
-inherit python3native
-
-SRC_URI = "https://www.mercurial-scm.org/release/${BP}.tar.gz"
-SRC_URI[sha256sum] = "86f98645e4565a9256991dcde22b77b8e7d22ca6fbb60c1f4cdbd8469a38cc1f"
-
-S = "${WORKDIR}/mercurial-${PV}"
-
-BBCLASSEXTEND = "native"
-
-export LDSHARED="${CCLD} -shared"
-
-EXTRA_OEMAKE = "STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \
- PREFIX=${prefix}"
-
-do_configure:append () {
- sed -i -e 's:PYTHON?=python:PYTHON=python3:g' ${S}/Makefile
-}
-
-do_install () {
- oe_runmake -e install-bin DESTDIR=${D} PREFIX=${prefix}
- sed -i -e 's:${STAGING_BINDIR_NATIVE}/python3-native/python3:${USRBINPATH}/env python3:g' ${D}${bindir}/hg
-}
-PACKAGES =+ "${PN}-python"
-
-FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}"
-
-FILES:${PN}-python = "${nonarch_libdir}/${PYTHON_DIR}"
-
diff --git a/meta-oe/recipes-devtools/mercurial/mercurial_6.5.bb b/meta-oe/recipes-devtools/mercurial/mercurial_6.5.bb
new file mode 100644
index 0000000000..2451a36be2
--- /dev/null
+++ b/meta-oe/recipes-devtools/mercurial/mercurial_6.5.bb
@@ -0,0 +1,36 @@
+SUMMARY = "The Mercurial distributed SCM"
+HOMEPAGE = "http://mercurial.selenic.com/"
+SECTION = "console/utils"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "python3 python3-native python3-setuptools-native"
+RDEPENDS:${PN} = "python3 python3-modules"
+
+inherit python3native python3targetconfig
+
+SRC_URI = "https://www.mercurial-scm.org/release/${BP}.tar.gz"
+SRC_URI[sha256sum] = "a5603d0d395ebf67fe5d27abbb3bd37fcc01871ecf394c793672d2c1e68be7e7"
+
+S = "${WORKDIR}/mercurial-${PV}"
+
+BBCLASSEXTEND = "native"
+
+export LDSHARED="${CCLD} -shared"
+
+EXTRA_OEMAKE = "STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \
+ PREFIX=${prefix}"
+
+do_configure:append () {
+ sed -i -e 's:PYTHON?=python:PYTHON=python3:g' ${S}/Makefile
+}
+
+do_install () {
+ oe_runmake -e install-bin DESTDIR=${D} PREFIX=${prefix}
+ sed -i -e 's:${STAGING_BINDIR_NATIVE}/python3-native/python3:${USRBINPATH}/env python3:g' ${D}${bindir}/hg
+}
+PACKAGES =+ "${PN}-python"
+
+FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR} ${datadir}"
+FILES:${PN}-python = "${nonarch_libdir}/${PYTHON_DIR}"
+
diff --git a/meta-oe/recipes-devtools/microcom/microcom_2023.09.0.bb b/meta-oe/recipes-devtools/microcom/microcom_2023.09.0.bb
new file mode 100644
index 0000000000..4bb3e62d9f
--- /dev/null
+++ b/meta-oe/recipes-devtools/microcom/microcom_2023.09.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Minimalistic terminal program for communicating with devices over a serial connection"
+HOMEPAGE = "https://github.com/pengutronix/microcom"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c9f7c009791eaa4b9ca90dc4c9538d24"
+
+SRC_URI = "https://github.com/pengutronix/microcom/releases/download/v${PV}/microcom-${PV}.tar.xz"
+SRC_URI[sha256sum] = "ef42184bb35c9762b3e9c70748696f7478efacad8412a88aaf2d9a6a500231a1"
+
+DEPENDS = "readline"
+
+inherit autotools update-alternatives
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[can] = "--enable-can,--disable-can"
+
+EXTRA_OECONF = "--enable-largefile"
+
+# higher priority than busybox' microcom
+ALTERNATIVE:${PN} = "microcom"
+ALTERNATIVE_PRIORITY[microcom] = "100"
diff --git a/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0001-Fix-initialization-in-test-1140.patch b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0001-Fix-initialization-in-test-1140.patch
new file mode 100644
index 0000000000..84a585d3c5
--- /dev/null
+++ b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0001-Fix-initialization-in-test-1140.patch
@@ -0,0 +1,113 @@
+From 1b4d42ca2e97061042ec44a0b34ceb176c78c7e1 Mon Sep 17 00:00:00 2001
+From: d-winsor <danwin@microsoft.com>
+Date: Mon, 26 Feb 2024 13:17:12 -0800
+Subject: [PATCH] Fix initialization in test (#1140)
+
+* Suppress unsafe-buffer-usage
+
+Upstream-Status: Backport [https://github.com/microsoft/GSL/commit/1b4d42ca2e97061042ec44a0b34ceb176c78c7e1]
+
+Signed-off-by: Peter Marko <peter.marko@siemens.com>
+---
+ include/gsl/span | 10 ++++++++++
+ include/gsl/util | 10 ++++++++++
+ tests/CMakeLists.txt | 10 ++++++++++
+ tests/span_tests.cpp | 2 +-
+ 4 files changed, 31 insertions(+), 1 deletion(-)
+
+diff --git a/include/gsl/span b/include/gsl/span
+index cc8a7b9..d254e4d 100644
+--- a/include/gsl/span
++++ b/include/gsl/span
+@@ -58,6 +58,12 @@
+ #pragma GCC diagnostic ignored "-Wsign-conversion"
+ #endif
+
++// Turn off clang unsafe buffer warnings as all accessed are guarded by runtime checks
++#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
++#pragma clang diagnostic push
++#pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
++#endif // defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
++
+ namespace gsl
+ {
+
+@@ -818,4 +824,8 @@ as_writable_bytes(span<ElementType, Extent> s) noexcept
+ #pragma GCC diagnostic pop
+ #endif // __GNUC__ > 6
+
++#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
++#pragma clang diagnostic pop
++#endif
++
+ #endif // GSL_SPAN_H
+diff --git a/include/gsl/util b/include/gsl/util
+index a215bad..11735a8 100644
+--- a/include/gsl/util
++++ b/include/gsl/util
+@@ -39,6 +39,12 @@
+
+ #endif // _MSC_VER
+
++// Turn off clang unsafe buffer warnings as all accessed are guarded by runtime checks
++#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
++#pragma clang diagnostic push
++#pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
++#endif // defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
++
+ #if defined(__cplusplus) && (__cplusplus >= 201703L)
+ #define GSL_NODISCARD [[nodiscard]]
+ #else
+@@ -157,4 +163,8 @@ constexpr auto at(std::span<T, extent> sp, const index i) -> decltype(sp[sp.size
+
+ #endif // _MSC_VER
+
++#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
++#pragma clang diagnostic pop
++#endif
++
+ #endif // GSL_UTIL_H
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index cab4e56..20de9e1 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -167,6 +167,11 @@ else()
+ >
+ )
+ endif(MSVC)
++check_cxx_compiler_flag("-Wno-unsafe-buffer-usage" WARN_UNSAFE_BUFFER)
++if (WARN_UNSAFE_BUFFER)
++ # This test uses very greedy heuristics such as "no pointer arithmetic on raw buffer"
++ target_compile_options(gsl_tests_config INTERFACE "-Wno-unsafe-buffer-usage")
++endif()
+
+ # for tests to find the gtest header
+ target_include_directories(gsl_tests_config SYSTEM INTERFACE
+@@ -267,6 +272,11 @@ else()
+ >
+ )
+ endif(MSVC)
++check_cxx_compiler_flag("-Wno-unsafe-buffer-usage" WARN_UNSAFE_BUFFER)
++if (WARN_UNSAFE_BUFFER)
++ # This test uses very greedy heuristics such as "no pointer arithmetic on raw buffer"
++ target_compile_options(gsl_tests_config_noexcept INTERFACE "-Wno-unsafe-buffer-usage")
++endif()
+
+ add_executable(gsl_noexcept_tests no_exception_ensure_tests.cpp)
+ target_link_libraries(gsl_noexcept_tests
+diff --git a/tests/span_tests.cpp b/tests/span_tests.cpp
+index 33ccf56..3c1dfe5 100644
+--- a/tests/span_tests.cpp
++++ b/tests/span_tests.cpp
+@@ -330,7 +330,7 @@ TEST(span_test, from_array_constructor)
+ EXPECT_TRUE(s.data() == std::addressof(arr2d[0]));
+ }
+
+- int arr3d[2][3][2] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
++ int arr3d[2][3][2] = { { {1, 2}, {3, 4}, {5, 6} }, { {7, 8}, {9, 10}, {11, 12} } };
+
+ #ifdef CONFIRM_COMPILATION_ERRORS
+ {
+--
+2.30.2
+
diff --git a/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0002-Fix-gcc-build-problem.patch b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0002-Fix-gcc-build-problem.patch
new file mode 100644
index 0000000000..2f7542c62c
--- /dev/null
+++ b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0002-Fix-gcc-build-problem.patch
@@ -0,0 +1,82 @@
+From aa4fd1f57794964640005900c2b47af1a0940b7b Mon Sep 17 00:00:00 2001
+From: Werner Henze <w.henze@avm.de>
+Date: Fri, 1 Mar 2024 15:53:50 +0100
+Subject: [PATCH] Fix gcc build problem
+
+Closes issue #1148 by fixing problems introduced in PR #1140.
+
+Upstream-Status: Submitted [https://github.com/microsoft/GSL/pull/1149]
+
+Signed-off-by: Peter Marko <peter.marko@siemens.com>
+---
+ include/gsl/span | 12 ++++++++----
+ include/gsl/util | 12 ++++++++----
+ 2 files changed, 16 insertions(+), 8 deletions(-)
+
+diff --git a/include/gsl/span b/include/gsl/span
+index 0de2932..d2ef9f7 100644
+--- a/include/gsl/span
++++ b/include/gsl/span
+@@ -59,10 +59,12 @@
+ #endif
+
+ // Turn off clang unsafe buffer warnings as all accessed are guarded by runtime checks
+-#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
++#if defined(__clang__)
++#if __has_warning("-Wunsafe-buffer-usage")
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
+-#endif // defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
++#endif // __has_warning("-Wunsafe-buffer-usage")
++#endif // defined(__clang__)
+
+ namespace gsl
+ {
+@@ -824,8 +826,10 @@ as_writable_bytes(span<ElementType, Extent> s) noexcept
+ #pragma GCC diagnostic pop
+ #endif // __GNUC__ > 6
+
+-#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
++#if defined(__clang__)
++#if __has_warning("-Wunsafe-buffer-usage")
+ #pragma clang diagnostic pop
+-#endif
++#endif // __has_warning("-Wunsafe-buffer-usage")
++#endif // defined(__clang__)
+
+ #endif // GSL_SPAN_H
+diff --git a/include/gsl/util b/include/gsl/util
+index b853017..26b2f5f 100644
+--- a/include/gsl/util
++++ b/include/gsl/util
+@@ -40,10 +40,12 @@
+ #endif // _MSC_VER
+
+ // Turn off clang unsafe buffer warnings as all accessed are guarded by runtime checks
+-#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
++#if defined(__clang__)
++#if __has_warning("-Wunsafe-buffer-usage")
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
+-#endif // defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
++#endif // __has_warning("-Wunsafe-buffer-usage")
++#endif // defined(__clang__)
+
+ #if defined(__cplusplus) && (__cplusplus >= 201703L)
+ #define GSL_NODISCARD [[nodiscard]]
+@@ -163,8 +165,10 @@ constexpr auto at(std::span<T, extent> sp, const index i) -> decltype(sp[sp.size
+
+ #endif // _MSC_VER
+
+-#if defined(__clang__) && __has_warning("-Wunsafe-buffer-usage")
++#if defined(__clang__)
++#if __has_warning("-Wunsafe-buffer-usage")
+ #pragma clang diagnostic pop
+-#endif
++#endif // __has_warning("-Wunsafe-buffer-usage")
++#endif // defined(__clang__)
+
+ #endif // GSL_UTIL_H
+--
+2.30.2
+
diff --git a/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0003-Adapt-check_cxx_compiler_flag-to-cmake-3.0.2.patch b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0003-Adapt-check_cxx_compiler_flag-to-cmake-3.0.2.patch
new file mode 100644
index 0000000000..ed057f5243
--- /dev/null
+++ b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/0003-Adapt-check_cxx_compiler_flag-to-cmake-3.0.2.patch
@@ -0,0 +1,53 @@
+From 85e1c38bcf84bd4e2ce63ef74f0cfa1f5e92261e Mon Sep 17 00:00:00 2001
+From: Peter Marko <peter.marko@siemens.com>
+Date: Wed, 27 Mar 2024 23:46:31 +0100
+Subject: [PATCH] Adapt check_cxx_compiler_flag to cmake 3.0.2
+
+Backporting commits which are upgrading cmake_minimum_required and
+include check_cxx_compiler_flag have too many additional changes.
+
+Let's just do a simple adaptation of our backported patch so
+it works with older cmake version instead.
+
+This can be safely removed when recipe version is upgraded.
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Peter Marko <peter.marko@siemens.com>
+---
+ tests/CMakeLists.txt | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 20de9e1..54c3ac5 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -5,6 +5,7 @@ enable_testing() # again, for support standalone testing
+
+ include(FindPkgConfig)
+ include(ExternalProject)
++include(CheckCXXCompilerFlag)
+
+ # will make visual studio generated project group files
+ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+@@ -167,7 +168,7 @@ else()
+ >
+ )
+ endif(MSVC)
+-check_cxx_compiler_flag("-Wno-unsafe-buffer-usage" WARN_UNSAFE_BUFFER)
++CHECK_CXX_COMPILER_FLAG("-Wno-unsafe-buffer-usage" WARN_UNSAFE_BUFFER)
+ if (WARN_UNSAFE_BUFFER)
+ # This test uses very greedy heuristics such as "no pointer arithmetic on raw buffer"
+ target_compile_options(gsl_tests_config INTERFACE "-Wno-unsafe-buffer-usage")
+@@ -272,7 +273,7 @@ else()
+ >
+ )
+ endif(MSVC)
+-check_cxx_compiler_flag("-Wno-unsafe-buffer-usage" WARN_UNSAFE_BUFFER)
++CHECK_CXX_COMPILER_FLAG("-Wno-unsafe-buffer-usage" WARN_UNSAFE_BUFFER)
+ if (WARN_UNSAFE_BUFFER)
+ # This test uses very greedy heuristics such as "no pointer arithmetic on raw buffer"
+ target_compile_options(gsl_tests_config_noexcept INTERFACE "-Wno-unsafe-buffer-usage")
+--
+2.30.2
+
diff --git a/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/run-ptest b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/run-ptest
new file mode 100644
index 0000000000..2d5bdf4ff2
--- /dev/null
+++ b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/run-ptest
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+gsl_tests && echo "PASS: gsl_tests" || echo "FAIL: gsl_tests"
+gsl_noexcept_tests && echo "PASS: gsl_noexcept_tests" || echo "FAIL: gsl_noexcept_tests"
diff --git a/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl_4.0.0.bb b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl_4.0.0.bb
new file mode 100644
index 0000000000..6e29b2459d
--- /dev/null
+++ b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl_4.0.0.bb
@@ -0,0 +1,45 @@
+SUMMARY = "GSL: Guidelines Support Library"
+DESCRIPTION = "The Guidelines Support Library (GSL) contains functions \
+ and types that are suggested for use by the C++ Core Guidelines \
+ maintained by the Standard C++ Foundation. \
+ This repo contains Microsoft's implementation of GSL."
+HOMEPAGE = "https://github.com/microsoft/GSL"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=363055e71e77071107ba2bb9a54bd9a7"
+
+SRC_URI = "git://github.com/microsoft/GSL.git;protocol=https;branch=main \
+ file://run-ptest \
+ file://0001-Fix-initialization-in-test-1140.patch \
+ file://0002-Fix-gcc-build-problem.patch \
+ file://0003-Adapt-check_cxx_compiler_flag-to-cmake-3.0.2.patch \
+"
+SRCREV = "a3534567187d2edc428efd3f13466ff75fe5805c"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig ptest
+
+# this is header-only library
+ALLOW_EMPTY:${PN} = "1"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'ptest','', d)}"
+PACKAGECONFIG[ptest] = "-DGSL_TEST=ON,-DGSL_TEST=OFF,googletest"
+
+# clang disagrees with https://github.com/google/googletest/pull/3457
+CXXFLAGS:append:toolchain-clang = " -Wno-error=switch-default"
+# Disable disabled-macro-expansion warning as error as its seen on musl
+CXXFLAGS:append:toolchain-clang:libc-musl = " -Wno-error=disabled-macro-expansion"
+
+do_install_ptest() {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/tests/gsl_tests ${D}${bindir}
+ install -m 0755 ${B}/tests/gsl_noexcept_tests ${D}${bindir}
+}
+
+FILES:${PN}-ptest = "${bindir}/gsl*_tests"
+
+# there is already other gsl recipe, so recipe name does not match the real component name
+CVE_PRODUCT = "microsoft:gsl"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.0.2.bb b/meta-oe/recipes-devtools/mpich/mpich_4.0.2.bb
deleted file mode 100644
index d277f7e71c..0000000000
--- a/meta-oe/recipes-devtools/mpich/mpich_4.0.2.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-SUMMARY = "Message Passing Interface (MPI) implementation"
-HOMEPAGE = "http://www.mpich.org/"
-SECTION = "devel"
-
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=bd4d7ab13df98988b1ca2a4e01c8c163"
-
-SRC_URI = "http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz"
-SRC_URI[sha256sum] = "5a42f1a889d4a2d996c26e48cbf9c595cbf4316c6814f7c181e3320d21dedd42"
-
-RDEPENDS:${PN} += "bash perl libxml2"
-
-EXTRA_OECONF = "--enable-debuginfo \
- --enable-fast \
- --enable-shared \
- --with-pm=gforker \
- --disable-rpath \
- --disable-f77 \
- --disable-fc \
- --disable-fortran \
- --disable-cxx \
- BASH_SHELL='${USRBINPATH}/env bash' \
- PERL='${USRBINPATH}/env perl' \
- --with-device=ch3:nemesis \
- --with-rdmacm=no \
- --disable-numa \
-"
-
-PACKAGECONFIG += " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
-"
-PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--without-x,virtual/libx11"
-
-# libmpi.so needs symbols like __multf3 and somehow it does not respect --rtlib option passed by clang
-LDFLAGS:append:x86-64 = " -lgcc"
-LDFLAGS:append:x86 = " -lgcc"
-
-inherit autotools gettext pkgconfig
-
-do_configure() {
- for d in confdb test/mpi test/mpi/confdb src/pm/hydra/confdb \
- src/pm/hydra/tools/topo/hwloc/hwloc/config src/pm/hydra/mpl/confdb \
- modules/yaksa/m4 modules/json-c modules/ucx modules/hwloc/config \
- test/mpi/dtpools/confdb src/mpl/confdb src/mpi/romio/confdb; do
- install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/$d
- install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/$d
- done
-# cd ${S}
-# autoupdate
-# autoreconf --verbose --install --force
-# cd ${B}
- oe_runconf
-}
-
-do_install:append() {
- sed -i 's,${S}/,,g' ${D}/${libdir}/libmpi.la
- sed -i 's,${DEBUG_PREFIX_MAP},,g' ${D}/${libdir}/pkgconfig/mpich.pc
-}
diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.2.0.bb b/meta-oe/recipes-devtools/mpich/mpich_4.2.0.bb
new file mode 100644
index 0000000000..deb459ce57
--- /dev/null
+++ b/meta-oe/recipes-devtools/mpich/mpich_4.2.0.bb
@@ -0,0 +1,67 @@
+SUMMARY = "Message Passing Interface (MPI) implementation"
+HOMEPAGE = "http://www.mpich.org/"
+SECTION = "devel"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=7a88f0d96d0d7396a7c66bf353235b62"
+
+SRC_URI = "http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz"
+SRC_URI[sha256sum] = "a64a66781b9e5312ad052d32689e23252f745b27ee8818ac2ac0c8209bc0b90e"
+
+RDEPENDS:${PN} += "bash perl libxml2"
+
+EXTRA_OECONF = "--enable-debuginfo \
+ --enable-fast \
+ --enable-shared \
+ --with-pm=gforker \
+ BASH_SHELL='${USRBINPATH}/env bash' \
+ PERL='${USRBINPATH}/env perl' \
+ --with-device=ch3:nemesis \
+"
+
+PACKAGECONFIG ??= ""
+
+PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx"
+PACKAGECONFIG[fortran] = "--with-cross=${WORKDIR}/cross_values.txt --enable-fortran,--disable-f77 --disable-fortran,libgfortran"
+
+# libmpi.so needs symbols like __multf3 and somehow it does not respect --rtlib option passed by clang
+LDFLAGS:append:x86-64 = " -lgcc"
+LDFLAGS:append:x86 = " -lgcc"
+
+inherit autotools gettext pkgconfig qemu
+
+DEPENDS += "qemu-native"
+
+do_configure() {
+ if [ "${@bb.utils.contains('PACKAGECONFIG', 'fortran', '1', '', d)}" = "1" ]; then
+ qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
+ cat > ${WORKDIR}/qemuwrapper << EOF
+#!/bin/sh
+$qemu_binary "\$@"
+EOF
+ chmod +x ${WORKDIR}/qemuwrapper
+
+ sed -i 's:my \(.*\) ./t`;:my \1 ${WORKDIR}/qemuwrapper ${WORKDIR}/t`;:' ${S}/maint/gen_cross.pl
+
+ cd ${WORKDIR}
+ perl ${S}/maint/gen_cross.pl
+
+ sed -i 's:\(CROSS_F90_INTEGER_MODEL_MAP=.*\) }"$:\1 }, ":' ${WORKDIR}/cross_values.txt
+ fi
+
+ cd ${S}
+ ./autogen.sh
+
+ cd ${B}
+ oe_runconf
+ sed -i -e 's,${WORKDIR},,g' ${B}/src/include/mpichinfo.h
+}
+
+do_install:append() {
+ sed -i 's,${S}/,,g' ${D}/${libdir}/libmpi.la
+ sed -i 's,${DEBUG_PREFIX_MAP},,g' ${D}${bindir}/mpicxx
+ sed -i 's,${DEBUG_PREFIX_MAP},,g' ${D}${bindir}/mpicc
+ sed -i 's,${DEBUG_PREFIX_MAP},,g' ${D}/${libdir}/pkgconfig/mpich.pc
+ sed -i 's,${RECIPE_SYSROOT},/,g' ${D}${bindir}/mpicc
+ sed -i 's,${RECIPE_SYSROOT},/,g' ${D}${bindir}/mpicxx
+}
diff --git a/meta-oe/recipes-devtools/msgpack/msgpack-c_4.0.0.bb b/meta-oe/recipes-devtools/msgpack/msgpack-c_4.0.0.bb
deleted file mode 100644
index c6a6ac4673..0000000000
--- a/meta-oe/recipes-devtools/msgpack/msgpack-c_4.0.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "MessagePack implementation for C and C++"
-DESCRIPTION = "MessagePack is an efficient binary serialization format. It's like JSON. but fast and small"
-HOMEPAGE = "http://msgpack.org/index.html"
-LICENSE = "BSL-1.0"
-LIC_FILES_CHKSUM = "file://NOTICE;md5=7a858c074723608e08614061dc044352 \
- file://COPYING;md5=0639c4209b6f2abf1437c813b208f2d3 \
- file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c \
- "
-
-PV .= "+git${SRCPV}"
-
-SRC_URI = "git://github.com/msgpack/msgpack-c;branch=c_master;protocol=https \
- "
-SRCREV = "a9a48cea3a78ba661ee8096b5dab456361b0ff23"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
-
-BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-oe/recipes-devtools/msgpack/msgpack-c_6.0.0.bb b/meta-oe/recipes-devtools/msgpack/msgpack-c_6.0.0.bb
new file mode 100644
index 0000000000..40d997a52c
--- /dev/null
+++ b/meta-oe/recipes-devtools/msgpack/msgpack-c_6.0.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "MessagePack implementation for C and C++"
+DESCRIPTION = "MessagePack is an efficient binary serialization format. It's like JSON. but fast and small"
+HOMEPAGE = "http://msgpack.org/index.html"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://NOTICE;md5=7a858c074723608e08614061dc044352 \
+ file://COPYING;md5=0639c4209b6f2abf1437c813b208f2d3 \
+ file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c \
+ "
+
+SRC_URI = "git://github.com/msgpack/msgpack-c;branch=c_master;protocol=https \
+ "
+SRCREV = "8160ede5e20fd3019a77eea46d9c72cf6163f802"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE += "-DMSGPACK_BUILD_TESTS=off"
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-oe/recipes-devtools/msgpack/msgpack-cpp_4.1.1.bb b/meta-oe/recipes-devtools/msgpack/msgpack-cpp_4.1.1.bb
deleted file mode 100644
index fd08bf85cc..0000000000
--- a/meta-oe/recipes-devtools/msgpack/msgpack-cpp_4.1.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "MessagePack implementation for C and C++"
-DESCRIPTION = "MessagePack is an efficient binary serialization format. It's like JSON. but fast and small"
-HOMEPAGE = "http://msgpack.org/index.html"
-LICENSE = "BSL-1.0"
-LIC_FILES_CHKSUM = "file://NOTICE;md5=7a858c074723608e08614061dc044352 \
- file://COPYING;md5=0639c4209b6f2abf1437c813b208f2d3 \
- file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c \
- "
-
-SRC_URI = "https://github.com/msgpack/msgpack-c/releases/download/cpp-${PV}/msgpack-cxx-${PV}.tar.gz"
-SRC_URI[sha256sum] = "8115c5edcf20bc1408c798a6bdaec16c1e52b1c34859d4982a0fb03300438f0b"
-
-S = "${WORKDIR}/msgpack-cxx-${PV}"
-
-DEPENDS += "boost"
-
-inherit cmake pkgconfig
-
-RDEPENDS:${PN}-dev = ""
-
-BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-oe/recipes-devtools/msgpack/msgpack-cpp_6.1.0.bb b/meta-oe/recipes-devtools/msgpack/msgpack-cpp_6.1.0.bb
new file mode 100644
index 0000000000..5f5507bc74
--- /dev/null
+++ b/meta-oe/recipes-devtools/msgpack/msgpack-cpp_6.1.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "MessagePack implementation for C and C++"
+DESCRIPTION = "MessagePack is an efficient binary serialization format. It's like JSON. but fast and small"
+HOMEPAGE = "http://msgpack.org/index.html"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://NOTICE;md5=7a858c074723608e08614061dc044352 \
+ file://COPYING;md5=0639c4209b6f2abf1437c813b208f2d3 \
+ file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c \
+ "
+
+SRC_URI = "https://github.com/msgpack/msgpack-c/releases/download/cpp-${PV}/msgpack-cxx-${PV}.tar.gz"
+SRC_URI[sha256sum] = "23ede7e93c8efee343ad8c6514c28f3708207e5106af3b3e4969b3a9ed7039e7"
+
+S = "${WORKDIR}/msgpack-cxx-${PV}"
+
+DEPENDS += "boost"
+
+inherit cmake pkgconfig
+
+RDEPENDS:${PN}-dev = ""
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb b/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb
index b5d05d40e5..36e46021bb 100644
--- a/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb
+++ b/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.MIT;md5=b67209a1e36b682a8226de19d265b1e0"
SRC_URI = "git://github.com/nlohmann/fifo_map.git;branch=master;protocol=https"
-PV = "1.0.0+git${SRCPV}"
+PV = "1.0.0+git"
SRCREV = "d732aaf9a315415ae8fd7eb11e3a4c1f80e42a48"
diff --git a/meta-oe/recipes-devtools/nlohmann-json/files/run-ptest b/meta-oe/recipes-devtools/nlohmann-json/files/run-ptest
new file mode 100755
index 0000000000..2f00267d50
--- /dev/null
+++ b/meta-oe/recipes-devtools/nlohmann-json/files/run-ptest
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+cd tests
+for atest in test-* ; do
+ rm -rf tests.log
+ ./${atest} > tests.log 2>&1
+ if [ $? = 0 ] ; then
+ echo "PASS: ${atest}"
+ else
+ echo "FAIL: ${atest}"
+ fi
+done
diff --git a/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.2.bb b/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.2.bb
deleted file mode 100644
index 502262820a..0000000000
--- a/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.2.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "JSON for modern C++"
-HOMEPAGE = "https://nlohmann.github.io/json/"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.MIT;md5=f969127d7b7ed0a8a63c2bbeae002588"
-
-CVE_PRODUCT = "json-for-modern-cpp"
-
-SRC_URI = "git://github.com/nlohmann/json.git;nobranch=1;protocol=https \
- "
-
-SRCREV = "bc889afb4c5bf1c0d8ee29ef35eaaf4c8bef8a5d"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE += "-DJSON_BuildTests=OFF"
-
-# nlohmann-json is a header only C++ library, so the main package will be empty.
-
-RDEPENDS:${PN}-dev = ""
-
-BBCLASSEXTEND = "native nativesdk"
-
-# other packages commonly reference the file directly as "json.hpp"
-# create symlink to allow this usage
-do_install:append() {
- ln -s nlohmann/json.hpp ${D}${includedir}/json.hpp
-}
diff --git a/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.3.bb b/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.3.bb
new file mode 100644
index 0000000000..194e80546e
--- /dev/null
+++ b/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.3.bb
@@ -0,0 +1,45 @@
+SUMMARY = "JSON for modern C++"
+HOMEPAGE = "https://nlohmann.github.io/json/"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.MIT;md5=f969127d7b7ed0a8a63c2bbeae002588"
+
+CVE_PRODUCT = "json-for-modern-cpp"
+
+SRC_URI = "git://github.com/nlohmann/json.git;branch=develop;protocol=https \
+ git://github.com/nlohmann/json_test_data.git;destsuffix=git/json_test_data;name=json-test-data;branch=master;protocol=https \
+ file://run-ptest \
+"
+
+SRCREV = "9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03"
+SRCREV_json-test-data = "a1375cea09d27cc1c4cadb8d00470375b421ac37"
+
+SRCREV_FORMAT .= "_json-test-data"
+
+S = "${WORKDIR}/git"
+
+inherit cmake ptest
+
+EXTRA_OECMAKE += "${@bb.utils.contains('PTEST_ENABLED', '1', '-DJSON_BuildTests=ON -DJSON_TestDataDirectory=${PTEST_PATH}/json_test_data', '-DJSON_BuildTests=OFF', d)}"
+
+# nlohmann-json is a header only C++ library, so the main package will be empty.
+ALLOW_EMPTY:${PN} = "1"
+RDEPENDS:${PN}-dev = ""
+RDEPENDS:${PN}-ptest = "perl"
+
+BBCLASSEXTEND = "native nativesdk"
+
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -r ${S}/json_test_data/ ${D}${PTEST_PATH}/
+ cp -r ${B}/tests/test-* ${D}${PTEST_PATH}/tests
+ rm -rf ${D}${PTEST_PATH}/json_test_data/.git
+}
+
+
+# other packages commonly reference the file directly as "json.hpp"
+# create symlink to allow this usage
+do_install:append() {
+ ln -s nlohmann/json.hpp ${D}${includedir}/json.hpp
+}
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-16.14/oe-npm-cache b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-20.11/oe-npm-cache
index f596207648..f596207648 100755
--- a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-16.14/oe-npm-cache
+++ b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-20.11/oe-npm-cache
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_16.14.bb b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_20.11.bb
index a61dd5018f..a61dd5018f 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_16.14.bb
+++ b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_20.11.bb
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
index d6e439ba22..12f6cd8b96 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
@@ -3,20 +3,44 @@ From: Zuzana Svetlikova <zsvetlik@redhat.com>
Date: Thu, 27 Apr 2017 14:25:42 +0200
Subject: [PATCH] Disable running gyp on shared deps
+Upstream-Status: Inappropriate [embedded specific]
+
+Probably imported from:
+https://src.fedoraproject.org/rpms/nodejs/c/41af04f2a3c050fb44628e91ac65fd225b927acb?branch=22609d8c1bfeaa21fe0057645af20b3a2ccc7f53
+which is probably based on dont-run-gyp-files-for-bundled-deps.patch added in:
+https://github.com/alpinelinux/aports/commit/6662eb3199902e8451fb20dce82554ad96f796bb
+
+We also explicitly prune some dependencies from source in the bitbake recipe:
+
+python prune_sources() {
+ import shutil
+
+ shutil.rmtree(d.getVar('S') + '/deps/openssl')
+ if 'ares' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/cares')
+ if 'brotli' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/brotli')
+ if 'libuv' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/uv')
+ if 'nghttp2' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/nghttp2')
+ if 'zlib' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/zlib')
+}
+do_unpack[postfuncs] += "prune_sources"
+
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/Makefile b/Makefile
-index 93d63110..79caaec2 100644
--- a/Makefile
+++ b/Makefile
-@@ -138,7 +138,7 @@ with-code-cache test-code-cache:
+@@ -169,7 +169,7 @@ with-code-cache test-code-cache:
$(warning '$@' target is a noop)
out/Makefile: config.gypi common.gypi node.gyp \
- deps/uv/uv.gyp deps/llhttp/llhttp.gyp deps/zlib/zlib.gyp \
+ deps/llhttp/llhttp.gyp \
+ deps/simdutf/simdutf.gyp deps/ada/ada.gyp \
tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \
tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp
- $(PYTHON) tools/gyp_node.py -f make
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch
new file mode 100644
index 0000000000..0178cec777
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch
@@ -0,0 +1,94 @@
+From 6c3ac20477a4bac643088f24df3c042e627fafa9 Mon Sep 17 00:00:00 2001
+From: Guillaume Burel <guillaume.burel@stormshield.eu>
+Date: Fri, 3 Jan 2020 11:25:54 +0100
+Subject: [PATCH] Using native binaries
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Originally added in:
+https://git.openembedded.org/meta-openembedded/commit/?id=1c8e4a679ae382f953b2e5c7a4966a4646314f3e
+later extended and renamed in:
+https://git.openembedded.org/meta-openembedded/commit/?id=feeb172d1a8bf010490d22b8df9448b20d9d2aed
+
+Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
+---
+ node.gyp | 3 +
+ tools/v8_gypfiles/v8.gyp | 5 +++++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/node.gyp b/node.gyp
+index e8e1d9f9..e60ccc10 100644
+--- a/node.gyp
++++ b/node.gyp
+@@ -320,6 +320,7 @@
+ 'action_name': 'node_mksnapshot',
+ 'process_outputs_as_sources': 1,
+ 'inputs': [
++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
+ '<(node_mksnapshot_exec)',
+ '<(node_snapshot_main)',
+ ],
+@@ -935,6 +935,7 @@
+ 'action_name': 'node_js2c',
+ 'process_outputs_as_sources': 1,
+ 'inputs': [
++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
+ '<(node_js2c_exec)',
+ '<@(library_files)',
+ '<@(deps_files)',
+@@ -944,6 +945,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/node_javascript.cc',
+ ],
+ 'action': [
++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
+ '<(node_js2c_exec)',
+ '<@(_outputs)',
+ 'lib',
+
+diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
+index 42e26cd9..bc721991 100644
+--- a/tools/v8_gypfiles/v8.gyp
++++ b/tools/v8_gypfiles/v8.gyp
+@@ -68,6 +68,7 @@
+ {
+ 'action_name': 'run_torque_action',
+ 'inputs': [ # Order matters.
++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)',
+ '<@(torque_files)',
+ ],
+@@ -99,6 +100,7 @@
+ '<@(torque_outputs_inc)',
+ ],
+ 'action': [
++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)',
+ '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated',
+ '-v8-root', '<(V8_ROOT)',
+@@ -211,6 +213,7 @@
+ {
+ 'action_name': 'generate_bytecode_builtins_list_action',
+ 'inputs': [
++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)',
+ ],
+ 'outputs': [
+@@ -400,6 +403,7 @@
+ ],
+ },
+ 'inputs': [
++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
+ '<(mksnapshot_exec)',
+ ],
+ 'outputs': [
+@@ -1539,6 +1543,7 @@
+ {
+ 'action_name': 'run_gen-regexp-special-case_action',
+ 'inputs': [
++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen-regexp-special-case<(EXECUTABLE_SUFFIX)',
+ ],
+ 'outputs': [
+--
+2.34.1
+
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch
new file mode 100644
index 0000000000..39026d0742
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-build-fix-build-with-Python-3.12.patch
@@ -0,0 +1,55 @@
+From 656f6c91f1da7f1e1ffb01e2de7d9026a84958b5 Mon Sep 17 00:00:00 2001
+From: Luigi Pinca <luigipinca@gmail.com>
+Date: Wed, 8 Nov 2023 21:20:53 +0100
+Subject: [PATCH] build: fix build with Python 3.12
+
+Replace `distutils.version.StrictVersion` with
+`packaging.version.Version`.
+
+Refs: https://github.com/nodejs/node/pull/50209#issuecomment-1795852539
+PR-URL: https://github.com/nodejs/node/pull/50582
+Reviewed-By: Richard Lau <rlau@redhat.com>
+Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
+
+Upstream-Status: Backport [https://github.com/nodejs/node/commit/95534ad82f4e33f53fd50efe633d43f8da70cba6]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ configure.py | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/configure.py b/configure.py
+index 62f041ce..18fe7c14 100755
+--- a/configure.py
++++ b/configure.py
+@@ -14,8 +14,6 @@ import bz2
+ import io
+ from pathlib import Path
+
+-from distutils.version import StrictVersion
+-
+ # If not run from node/, cd to node/.
+ os.chdir(Path(__file__).parent)
+
+@@ -30,6 +28,7 @@ tools_path = Path('tools')
+
+ sys.path.insert(0, str(tools_path / 'gyp' / 'pylib'))
+ from gyp.common import GetFlavor
++from packaging.version import Version
+
+ # imports in tools/configure.d
+ sys.path.insert(0, str(tools_path / 'configure.d'))
+@@ -1565,10 +1564,10 @@ def configure_openssl(o):
+ # supported asm compiler for AVX2. See https://github.com/openssl/openssl/
+ # blob/OpenSSL_1_1_0-stable/crypto/modes/asm/aesni-gcm-x86_64.pl#L52-L69
+ openssl110_asm_supported = \
+- ('gas_version' in variables and StrictVersion(variables['gas_version']) >= StrictVersion('2.23')) or \
+- ('xcode_version' in variables and StrictVersion(variables['xcode_version']) >= StrictVersion('5.0')) or \
+- ('llvm_version' in variables and StrictVersion(variables['llvm_version']) >= StrictVersion('3.3')) or \
+- ('nasm_version' in variables and StrictVersion(variables['nasm_version']) >= StrictVersion('2.10'))
++ ('gas_version' in variables and Version(variables['gas_version']) >= Version('2.23')) or \
++ ('xcode_version' in variables and Version(variables['xcode_version']) >= Version('5.0')) or \
++ ('llvm_version' in variables and Version(variables['llvm_version']) >= Version('3.3')) or \
++ ('nasm_version' in variables and Version(variables['nasm_version']) >= Version('2.10'))
+
+ if is_x86 and not openssl110_asm_supported:
+ error('''Did not find a new enough assembler, install one or build with
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch
new file mode 100644
index 0000000000..9d878dfb8d
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-gyp-resolve-python-3.12-issues.patch
@@ -0,0 +1,63 @@
+From bf8c96ba6936050ed4a0de5bc8aeeaf2b3c50dc1 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Thu, 7 Dec 2023 12:54:30 +0100
+Subject: [PATCH] gyp: resolve python 3.12 issues
+
+Upstream has updated gyp wholesale in the main branch, so
+this patch can be dropped in due time.
+
+Upstream-Status: Inappropriate [issue will be fixed upstream with the next nodejs LTS update]
+
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py | 4 ++--
+ tools/gyp/pylib/gyp/input.py | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py
+index d9699a0a..173e9465 100644
+--- a/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py
++++ b/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py
+@@ -16,7 +16,7 @@ import subprocess
+ import sys
+ import threading
+ import traceback
+-from distutils.version import StrictVersion
++from packaging.version import Version
+ from gyp.common import GypError
+ from gyp.common import OrderedSet
+
+@@ -1183,7 +1183,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil
+ else:
+ ast_code = compile(cond_expr_expanded, "<string>", "eval")
+ cached_conditions_asts[cond_expr_expanded] = ast_code
+- env = {"__builtins__": {}, "v": StrictVersion}
++ env = {"__builtins__": {}, "v": Version}
+ if eval(ast_code, env, variables):
+ return true_dict
+ return false_dict
+diff --git a/tools/gyp/pylib/gyp/input.py b/tools/gyp/pylib/gyp/input.py
+index 354958bf..ab6112e5 100644
+--- a/tools/gyp/pylib/gyp/input.py
++++ b/tools/gyp/pylib/gyp/input.py
+@@ -16,7 +16,7 @@ import subprocess
+ import sys
+ import threading
+ import traceback
+-from distutils.version import StrictVersion
++from packaging.version import Version
+ from gyp.common import GypError
+ from gyp.common import OrderedSet
+
+@@ -1190,7 +1190,7 @@ def EvalSingleCondition(cond_expr, true_dict, false_dict, phase, variables, buil
+ else:
+ ast_code = compile(cond_expr_expanded, "<string>", "eval")
+ cached_conditions_asts[cond_expr_expanded] = ast_code
+- env = {"__builtins__": {}, "v": StrictVersion}
++ env = {"__builtins__": {}, "v": Version}
+ if eval(ast_code, env, variables):
+ return true_dict
+ return false_dict
+--
+2.39.2
+
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch
index d7005ae972..5af87d866e 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch
@@ -1,6 +1,6 @@
From dc3652c0abcdf8573fd044907b19d8eda7ca1124 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 20 Oct 2021 12:49:58 -0700
+Date: Mon, 3 Jul 2023 12:33:16 +0000
Subject: [PATCH] [liftoff] Correct function signatures
Fixes builds on mips where clang reports an error
@@ -9,14 +9,19 @@ Fixes builds on mips where clang reports an error
^~~~
Upstream-Status: Submitted [https://chromium-review.googlesource.com/c/v8/v8/+/3235674]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
---
- src/wasm/baseline/liftoff-assembler.h | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
+ deps/v8/src/wasm/baseline/liftoff-assembler.h | 6 +++---
+ deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h | 2 +-
+ deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+diff --git a/deps/v8/src/wasm/baseline/liftoff-assembler.h b/deps/v8/src/wasm/baseline/liftoff-assembler.h
+index aef63c64..f2a11b01 100644
--- a/deps/v8/src/wasm/baseline/liftoff-assembler.h
+++ b/deps/v8/src/wasm/baseline/liftoff-assembler.h
-@@ -613,7 +613,7 @@ class LiftoffAssembler : public TurboAss
+@@ -717,7 +717,7 @@ class LiftoffAssembler : public MacroAssembler {
void FinishCall(const ValueKindSig*, compiler::CallDescriptor*);
// Move {src} into {dst}. {src} and {dst} must be different.
@@ -25,7 +30,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
// Parallel register move: For a list of tuples <dst, src, kind>, move the
// {src} register of kind {kind} into {dst}. If {src} equals {dst}, ignore
-@@ -759,8 +759,8 @@ class LiftoffAssembler : public TurboAss
+@@ -884,8 +884,8 @@ class LiftoffAssembler : public MacroAssembler {
inline void MoveStackValue(uint32_t dst_offset, uint32_t src_offset,
ValueKind);
@@ -36,20 +41,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
inline void Spill(int offset, LiftoffRegister, ValueKind);
inline void Spill(int offset, WasmValue);
---- a/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h
-+++ b/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h
-@@ -658,7 +658,7 @@ void LiftoffAssembler::Store(Register ds
- pinned = pinned | LiftoffRegList::ForRegs(dst_op.rm(), src);
- LiftoffRegister tmp = GetUnusedRegister(src.reg_class(), pinned);
- // Save original value.
-- Move(tmp, src, type.value_type());
-+ Move(tmp, src, type.value_type().kind());
-
- src = tmp;
- pinned.set(tmp);
+diff --git a/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h b/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h
+index 96cba24c..53e1842d 100644
--- a/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h
+++ b/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h
-@@ -596,7 +596,7 @@ void LiftoffAssembler::Store(Register ds
+@@ -592,7 +592,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
pinned.set(dst_op.rm());
LiftoffRegister tmp = GetUnusedRegister(src.reg_class(), pinned);
// Save original value.
@@ -58,9 +54,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
src = tmp;
pinned.set(tmp);
---- a/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h
-+++ b/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h
-@@ -580,7 +580,7 @@ void LiftoffAssembler::Store(Register ds
+diff --git a/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h b/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h
+index 1d6ae09e..397e82b2 100644
+--- a/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h
++++ b/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64.h
+@@ -286,7 +286,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
pinned.set(dst_op.rm());
LiftoffRegister tmp = GetUnusedRegister(src.reg_class(), pinned);
// Save original value.
@@ -69,3 +67,5 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
src = tmp;
pinned.set(tmp);
+--
+2.40.0
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch
deleted file mode 100644
index a0242d8e18..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e65dde8db17da5acddeef7eb9316199c4e5e0811 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Apr 2022 12:40:25 -0700
-Subject: [PATCH] mips: Use 32bit cast for operand on mips32
-
-Fixes
-deps/v8/src/compiler/backend/mips/code-generator-mips.cc: In member function 'void v8::internal::compiler::CodeGenerator::AssembleReturn(v8::internal::compiler::InstructionOperand*)':
-../deps/v8/src/compiler/backend/mips/code-generator-mips.cc:4233:48: error: call of overloaded 'Operand(int64_t)' is ambiguous
- 4233 | Operand(static_cast<int64_t>(0)));
- | ^
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- deps/v8/src/compiler/backend/mips/code-generator-mips.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/deps/v8/src/compiler/backend/mips/code-generator-mips.cc b/deps/v8/src/compiler/backend/mips/code-generator-mips.cc
-index 2b8197e..b226140 100644
---- a/deps/v8/src/compiler/backend/mips/code-generator-mips.cc
-+++ b/deps/v8/src/compiler/backend/mips/code-generator-mips.cc
-@@ -4230,7 +4230,7 @@ void CodeGenerator::AssembleReturn(InstructionOperand* additional_pop_count) {
- } else if (FLAG_debug_code) {
- __ Assert(eq, AbortReason::kUnexpectedAdditionalPopValue,
- g.ToRegister(additional_pop_count),
-- Operand(static_cast<int64_t>(0)));
-+ Operand(static_cast<int32_t>(0)));
- }
- }
- // Functions with JS linkage have at least one parameter (the receiver).
---
-2.36.0
-
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch
index 4773f05109..dd9c9015e2 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch
@@ -7,6 +7,8 @@ clang does not support this option
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
common.gypi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0002-Install-both-binaries-and-use-libdir.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0002-Install-both-binaries-and-use-libdir.patch
deleted file mode 100644
index 5cb2e97015..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0002-Install-both-binaries-and-use-libdir.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 62ddf8499747fb1e366477d666c0634ad50039a9 Mon Sep 17 00:00:00 2001
-From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
-Date: Tue, 19 Mar 2019 23:22:40 -0400
-Subject: [PATCH 2/2] Install both binaries and use libdir.
-
-This allows us to build with a shared library for other users while
-still providing the normal executable.
-
-Taken from - https://src.fedoraproject.org/rpms/nodejs/raw/rawhide/f/0002-Install-both-binaries-and-use-libdir.patch
-
-Upstream-Status: Pending
-
-Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.py | 7 +++++++
- tools/install.py | 21 +++++++++------------
- 2 files changed, 16 insertions(+), 12 deletions(-)
-
-diff --git a/configure.py b/configure.py
-index 6efb98c2316f089f3167e486282593245373af3f..a6d2ec939e4480dfae703f3978067537abf9f0f0 100755
---- a/configure.py
-+++ b/configure.py
-@@ -721,10 +721,16 @@ parser.add_argument('--shared',
- dest='shared',
- default=None,
- help='compile shared library for embedding node in another project. ' +
- '(This mode is not officially supported for regular applications)')
-
-+parser.add_argument('--libdir',
-+ action='store',
-+ dest='libdir',
-+ default='lib',
-+ help='a directory to install the shared library into')
-+
- parser.add_argument('--without-v8-platform',
- action='store_true',
- dest='without_v8_platform',
- default=False,
- help='do not initialize v8 platform during node.js startup. ' +
-@@ -1305,10 +1311,11 @@ def configure_node(o):
- o['variables']['debug_nghttp2'] = 'false'
-
- o['variables']['node_no_browser_globals'] = b(options.no_browser_globals)
-
- o['variables']['node_shared'] = b(options.shared)
-+ o['variables']['libdir'] = options.libdir
- node_module_version = getmoduleversion.get_version()
-
- if options.dest_os == 'android':
- shlib_suffix = 'so'
- elif sys.platform == 'darwin':
-diff --git a/tools/install.py b/tools/install.py
-index 41cc1cbc60a9480cc08df3aa0ebe582c2becc3a2..11208f9e7166ab60da46d5ace2257c239a7e9263 100755
---- a/tools/install.py
-+++ b/tools/install.py
-@@ -128,26 +128,23 @@ def subdir_files(path, dest, action):
- for subdir, files_in_path in ret.items():
- action(files_in_path, subdir + '/')
-
- def files(action):
- is_windows = sys.platform == 'win32'
-- output_file = 'node'
- output_prefix = 'out/Release/'
-+ output_libprefix = output_prefix
-
-- if 'false' == variables.get('node_shared'):
-- if is_windows:
-- output_file += '.exe'
-+ if is_windows:
-+ output_bin = 'node.exe'
-+ output_lib = 'node.dll'
- else:
-- if is_windows:
-- output_file += '.dll'
-- else:
-- output_file = 'lib' + output_file + '.' + variables.get('shlib_suffix')
-+ output_bin = 'node'
-+ output_lib = 'libnode.' + variables.get('shlib_suffix')
-
-- if 'false' == variables.get('node_shared'):
-- action([output_prefix + output_file], 'bin/' + output_file)
-- else:
-- action([output_prefix + output_file], 'lib/' + output_file)
-+ action([output_prefix + output_bin], 'bin/' + output_bin)
-+ if 'true' == variables.get('node_shared'):
-+ action([output_libprefix + output_lib], variables.get('libdir') + '/' + output_lib)
-
- if 'true' == variables.get('node_use_dtrace'):
- action(['out/Release/node.d'], 'lib/dtrace/node.d')
-
- # behave similarly for systemtap
---
-2.33.0
-
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch
deleted file mode 100644
index 8db1f1dd54..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 6c3ac20477a4bac643088f24df3c042e627fafa9 Mon Sep 17 00:00:00 2001
-From: Guillaume Burel <guillaume.burel@stormshield.eu>
-Date: Fri, 3 Jan 2020 11:25:54 +0100
-Subject: [PATCH] Using native binaries
-
----
- node.gyp | 4 ++--
- tools/v8_gypfiles/v8.gyp | 11 ++++-------
- 2 files changed, 6 insertions(+), 9 deletions(-)
-
---- a/node.gyp
-+++ b/node.gyp
-@@ -294,6 +294,7 @@
- 'action_name': 'run_mkcodecache',
- 'process_outputs_as_sources': 1,
- 'inputs': [
-+ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
- '<(mkcodecache_exec)',
- ],
- 'outputs': [
-@@ -319,6 +320,7 @@
- 'action_name': 'node_mksnapshot',
- 'process_outputs_as_sources': 1,
- 'inputs': [
-+ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
- '<(node_mksnapshot_exec)',
- ],
- 'outputs': [
---- a/tools/v8_gypfiles/v8.gyp
-+++ b/tools/v8_gypfiles/v8.gyp
-@@ -68,6 +68,7 @@
- {
- 'action_name': 'run_torque_action',
- 'inputs': [ # Order matters.
-+ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
- '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)',
- '<@(torque_files)',
- ],
-@@ -99,6 +100,7 @@
- '<@(torque_outputs_inc)',
- ],
- 'action': [
-+ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
- '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)',
- '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated',
- '-v8-root', '<(V8_ROOT)',
-@@ -225,6 +227,7 @@
- {
- 'action_name': 'generate_bytecode_builtins_list_action',
- 'inputs': [
-+ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
- '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)',
- ],
- 'outputs': [
-@@ -415,6 +418,7 @@
- ],
- },
- 'inputs': [
-+ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
- '<(mksnapshot_exec)',
- ],
- 'outputs': [
-@@ -1548,6 +1552,7 @@
- {
- 'action_name': 'run_gen-regexp-special-case_action',
- 'inputs': [
-+ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
- '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen-regexp-special-case<(EXECUTABLE_SUFFIX)',
- ],
- 'outputs': [
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0005-add-openssl-legacy-provider-option.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0005-add-openssl-legacy-provider-option.patch
deleted file mode 100644
index 4d238c03f4..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0005-add-openssl-legacy-provider-option.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From 86d1c0cc6a5dcf57e413a1cc1c29203e87cf9a14 Mon Sep 17 00:00:00 2001
-From: Daniel Bevenius <daniel.bevenius@gmail.com>
-Date: Sat, 16 Oct 2021 08:50:16 +0200
-Subject: [PATCH] src: add --openssl-legacy-provider option
-
-This commit adds an option to Node.js named --openssl-legacy-provider
-and if specified will load OpenSSL 3.0 Legacy provider.
-
-$ ./node --help
-...
---openssl-legacy-provider enable OpenSSL 3.0 legacy provider
-
-Example usage:
-
-$ ./node --openssl-legacy-provider -p 'crypto.createHash("md4")'
-Hash {
- _options: undefined,
- [Symbol(kHandle)]: Hash {},
- [Symbol(kState)]: { [Symbol(kFinalized)]: false }
-}
-
-Co-authored-by: Richard Lau <rlau@redhat.com>
-Signed-off-by: Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-Upstream-Status: Backport [https://github.com/nodejs/node/issues/40455]
----
- doc/api/cli.md | 10 ++++++++++
- src/crypto/crypto_util.cc | 10 ++++++++++
- src/node_options.cc | 10 ++++++++++
- src/node_options.h | 7 +++++++
- .../test-process-env-allowed-flags-are-documented.js | 5 +++++
- 5 files changed, 42 insertions(+)
-
-diff --git a/doc/api/cli.md b/doc/api/cli.md
-index 74057706bf8d..608b9cdeddf1 100644
---- a/doc/api/cli.md
-+++ b/doc/api/cli.md
-@@ -687,6 +687,14 @@ Load an OpenSSL configuration file on startup. Among other uses, this can be
- used to enable FIPS-compliant crypto if Node.js is built
- against FIPS-enabled OpenSSL.
-
-+### `--openssl-legacy-provider`
-+<!-- YAML
-+added: REPLACEME
-+-->
-+
-+Enable OpenSSL 3.0 legacy provider. For more information please see
-+[providers readme][].
-+
- ### `--pending-deprecation`
-
- <!-- YAML
-@@ -1544,6 +1552,7 @@ Node.js options that are allowed are:
- * `--no-warnings`
- * `--node-memory-debug`
- * `--openssl-config`
-+* `--openssl-legacy-provider`
- * `--pending-deprecation`
- * `--policy-integrity`
- * `--preserve-symlinks-main`
-@@ -1933,6 +1942,7 @@ $ node --max-old-space-size=1536 index.js
- [emit_warning]: process.md#processemitwarningwarning-options
- [jitless]: https://v8.dev/blog/jitless
- [libuv threadpool documentation]: https://docs.libuv.org/en/latest/threadpool.html
-+[providers readme]: https://github.com/openssl/openssl/blob/openssl-3.0.0/README-PROVIDERS.md
- [remote code execution]: https://www.owasp.org/index.php/Code_Injection
- [security warning]: #warning-binding-inspector-to-a-public-ipport-combination-is-insecure
- [timezone IDs]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
-diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc
-index 7e0c8ba3eb60..796ea3025e41 100644
---- a/src/crypto/crypto_util.cc
-+++ b/src/crypto/crypto_util.cc
-@@ -148,6 +148,16 @@ void InitCryptoOnce() {
- }
- #endif
-
-+#if OPENSSL_VERSION_MAJOR >= 3
-+ // --openssl-legacy-provider
-+ if (per_process::cli_options->openssl_legacy_provider) {
-+ OSSL_PROVIDER* legacy_provider = OSSL_PROVIDER_load(nullptr, "legacy");
-+ if (legacy_provider == nullptr) {
-+ fprintf(stderr, "Unable to load legacy provider.\n");
-+ }
-+ }
-+#endif
-+
- OPENSSL_init_ssl(0, settings);
- OPENSSL_INIT_free(settings);
- settings = nullptr;
-diff --git a/src/node_options.cc b/src/node_options.cc
-index 00bdc6688a4c..3363860919a9 100644
---- a/src/node_options.cc
-+++ b/src/node_options.cc
-@@ -4,6 +4,9 @@
- #include "env-inl.h"
- #include "node_binding.h"
- #include "node_internals.h"
-+#if HAVE_OPENSSL
-+#include "openssl/opensslv.h"
-+#endif
-
- #include <errno.h>
- #include <sstream>
-diff --git a/src/node_options.h b/src/node_options.h
-index fd772478d04d..1c0e018ab16f 100644
---- a/src/node_options.h
-+++ b/src/node_options.h
-@@ -11,6 +11,10 @@
- #include "node_mutex.h"
- #include "util.h"
-
-+#if HAVE_OPENSSL
-+#include "openssl/opensslv.h"
-+#endif
-+
- namespace node {
-
- class HostPort {
-@@ -251,6 +255,9 @@ class PerProcessOptions : public Options {
- bool enable_fips_crypto = false;
- bool force_fips_crypto = false;
- #endif
-+#if OPENSSL_VERSION_MAJOR >= 3
-+ bool openssl_legacy_provider = false;
-+#endif
-
- // Per-process because reports can be triggered outside a known V8 context.
- bool report_on_fatalerror = false;
-diff --git a/test/parallel/test-process-env-allowed-flags-are-documented.js b/test/parallel/test-process-env-allowed-flags-are-documented.js
-index 64626b71f019..8a4e35997907 100644
---- a/test/parallel/test-process-env-allowed-flags-are-documented.js
-+++ b/test/parallel/test-process-env-allowed-flags-are-documented.js
-@@ -43,6 +43,10 @@ for (const line of [...nodeOptionsLines, ...v8OptionsLines]) {
- }
- }
-
-+if (!common.hasOpenSSL3) {
-+ documented.delete('--openssl-legacy-provider');
-+}
-+
- // Filter out options that are conditionally present.
- const conditionalOpts = [
- {
-@@ -50,6 +54,7 @@ const conditionalOpts = [
- filter: (opt) => {
- return [
- '--openssl-config',
-+ common.hasOpenSSL3 ? '--openssl-legacy-provider' : '',
- '--tls-cipher-list',
- '--use-bundled-ca',
- '--use-openssl-ca',
-
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch b/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch
deleted file mode 100644
index 529381842f..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-
-https://github.com/v8/v8/commit/878ccb33bd3cf0e6dc018ff8d15843f585ac07be
-
-did some automated cleanups but it missed big-endian code.
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/deps/v8/src/runtime/runtime-utils.h
-+++ b/deps/v8/src/runtime/runtime-utils.h
-@@ -126,7 +126,7 @@ static inline ObjectPair MakePair(Object
- #if defined(V8_TARGET_LITTLE_ENDIAN)
- return x.ptr() | (static_cast<ObjectPair>(y.ptr()) << 32);
- #elif defined(V8_TARGET_BIG_ENDIAN)
-- return y->ptr() | (static_cast<ObjectPair>(x->ptr()) << 32);
-+ return y.ptr() | (static_cast<ObjectPair>(x.ptr()) << 32);
- #else
- #error Unknown endianness
- #endif
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch b/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch
deleted file mode 100644
index 56e93c50cf..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Description: mksnapshot uses too much memory on 32-bit mipsel
-Author: Jérémy Lal <kapouer@melix.org>
-Last-Update: 2020-06-03
-Forwarded: https://bugs.chromium.org/p/v8/issues/detail?id=10586
-
-This ensures that we reserve 500M instead of 2G range for codegen
-ensures that qemu-mips can allocate such large ranges
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/deps/v8/src/common/globals.h
-+++ b/deps/v8/src/common/globals.h
-@@ -224,7 +224,7 @@ constexpr size_t kMinimumCodeRangeSize =
- constexpr size_t kMinExpectedOSPageSize = 64 * KB; // OS page on PPC Linux
- #elif V8_TARGET_ARCH_MIPS
- constexpr bool kPlatformRequiresCodeRange = false;
--constexpr size_t kMaximalCodeRangeSize = 2048LL * MB;
-+constexpr size_t kMaximalCodeRangeSize = 512 * MB;
- constexpr size_t kMinimumCodeRangeSize = 0 * MB;
- constexpr size_t kMinExpectedOSPageSize = 4 * KB; // OS page.
- #else
---- a/deps/v8/src/codegen/mips/constants-mips.h
-+++ b/deps/v8/src/codegen/mips/constants-mips.h
-@@ -140,7 +140,7 @@ const uint32_t kLeastSignificantByteInIn
- namespace v8 {
- namespace internal {
-
--constexpr size_t kMaxPCRelativeCodeRangeInMB = 4096;
-+constexpr size_t kMaxPCRelativeCodeRangeInMB = 1024;
-
- // -----------------------------------------------------------------------------
- // Registers and FPURegisters.
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/run-ptest b/meta-oe/recipes-devtools/nodejs/nodejs/run-ptest
new file mode 100755
index 0000000000..e82f373626
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/run-ptest
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+./cctest
+if [ $? = 0 ]; then
+ echo "PASS: nodejs"
+else
+ echo "FAIL: nodejs"
+fi
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_16.14.2.bb b/meta-oe/recipes-devtools/nodejs/nodejs_16.14.2.bb
deleted file mode 100644
index 62188f94a7..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs_16.14.2.bb
+++ /dev/null
@@ -1,186 +0,0 @@
-DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
-HOMEPAGE = "http://nodejs.org"
-LICENSE = "MIT & ISC & BSD-2-Clause & BSD-3-Clause & Artistic-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6ba5b21ac7a505195ca69344d3d7a94a"
-
-DEPENDS = "openssl"
-DEPENDS:append:class-target = " qemu-native"
-DEPENDS:append:class-native = " c-ares-native"
-
-inherit pkgconfig python3native qemu
-
-COMPATIBLE_MACHINE:armv4 = "(!.*armv4).*"
-COMPATIBLE_MACHINE:armv5 = "(!.*armv5).*"
-COMPATIBLE_MACHINE:mips64 = "(!.*mips64).*"
-
-COMPATIBLE_HOST:riscv64 = "null"
-COMPATIBLE_HOST:riscv32 = "null"
-COMPATIBLE_HOST:powerpc = "null"
-
-SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
- file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
- file://0002-Install-both-binaries-and-use-libdir.patch \
- file://0004-v8-don-t-override-ARM-CFLAGS.patch \
- file://0005-add-openssl-legacy-provider-option.patch \
- file://big-endian.patch \
- file://mips-less-memory.patch \
- file://system-c-ares.patch \
- file://0001-liftoff-Correct-function-signatures.patch \
- file://0001-mips-Use-32bit-cast-for-operand-on-mips32.patch \
- "
-SRC_URI:append:class-target = " \
- file://0002-Using-native-binaries.patch \
- "
-SRC_URI:append:toolchain-clang:x86 = " \
- file://libatomic.patch \
- "
-SRC_URI:append:toolchain-clang:powerpc64le = " \
- file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \
- "
-SRC_URI[sha256sum] = "e922e215cc68eb5f94d33e8a0b61e2c863b7731cc8600ab955d3822da90ff8d1"
-
-S = "${WORKDIR}/node-v${PV}"
-
-# v8 errors out if you have set CCACHE
-CCACHE = ""
-
-def map_nodejs_arch(a, d):
- import re
-
- if re.match('i.86$', a): return 'ia32'
- elif re.match('x86_64$', a): return 'x64'
- elif re.match('aarch64$', a): return 'arm64'
- elif re.match('(powerpc64|powerpc64le|ppc64le)$', a): return 'ppc64'
- elif re.match('powerpc$', a): return 'ppc'
- return a
-
-ARCHFLAGS:arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--with-arm-float-abi=hard', '--with-arm-float-abi=softfp', d)} \
- ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-arm-fpu=neon', \
- bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', '--with-arm-fpu=vfpv3-d16', \
- bb.utils.contains('TUNE_FEATURES', 'vfpv3', '--with-arm-fpu=vfpv3', \
- '--with-arm-fpu=vfp', d), d), d)}"
-ARCHFLAGS:append:mips = " --v8-lite-mode"
-ARCHFLAGS:append:mipsel = " --v8-lite-mode"
-ARCHFLAGS ?= ""
-
-PACKAGECONFIG ??= "ares brotli icu zlib"
-
-PACKAGECONFIG[ares] = "--shared-cares,,c-ares"
-PACKAGECONFIG[brotli] = "--shared-brotli,,brotli"
-PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu"
-PACKAGECONFIG[libuv] = "--shared-libuv,,libuv"
-PACKAGECONFIG[nghttp2] = "--shared-nghttp2,,nghttp2"
-PACKAGECONFIG[shared] = "--shared"
-PACKAGECONFIG[zlib] = "--shared-zlib,,zlib"
-
-# We don't want to cross-compile during target compile,
-# and we need to use the right flags during host compile,
-# too.
-EXTRA_OEMAKE = "\
- CC.host='${CC}' \
- CFLAGS.host='${CPPFLAGS} ${CFLAGS}' \
- CXX.host='${CXX}' \
- CXXFLAGS.host='${CPPFLAGS} ${CXXFLAGS}' \
- LDFLAGS.host='${LDFLAGS}' \
- AR.host='${AR}' \
- \
- builddir_name=./ \
-"
-
-python do_unpack() {
- import shutil
-
- bb.build.exec_func('base_do_unpack', d)
- shutil.rmtree(d.getVar('S') + '/deps/openssl', True)
- if 'ares' in d.getVar('PACKAGECONFIG'):
- shutil.rmtree(d.getVar('S') + '/deps/cares', True)
- if 'brotli' in d.getVar('PACKAGECONFIG'):
- shutil.rmtree(d.getVar('S') + '/deps/brotli', True)
- if 'libuv' in d.getVar('PACKAGECONFIG'):
- shutil.rmtree(d.getVar('S') + '/deps/uv', True)
- if 'nghttp2' in d.getVar('PACKAGECONFIG'):
- shutil.rmtree(d.getVar('S') + '/deps/nghttp2', True)
- if 'zlib' in d.getVar('PACKAGECONFIG'):
- shutil.rmtree(d.getVar('S') + '/deps/zlib', True)
-}
-
-# V8's JIT infrastructure requires binaries such as mksnapshot and
-# mkpeephole to be run in the host during the build. However, these
-# binaries must have the same bit-width as the target (e.g. a x86_64
-# host targeting ARMv6 needs to produce a 32-bit binary). Instead of
-# depending on a third Yocto toolchain, we just build those binaries
-# for the target and run them on the host with QEMU.
-python do_create_v8_qemu_wrapper () {
- """Creates a small wrapper that invokes QEMU to run some target V8 binaries
- on the host."""
- qemu_libdirs = [d.expand('${STAGING_DIR_HOST}${libdir}'),
- d.expand('${STAGING_DIR_HOST}${base_libdir}')]
- qemu_cmd = qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST', True),
- qemu_libdirs)
- wrapper_path = d.expand('${B}/v8-qemu-wrapper.sh')
- with open(wrapper_path, 'w') as wrapper_file:
- wrapper_file.write("""#!/bin/sh
-
-# This file has been generated automatically.
-# It invokes QEMU to run binaries built for the target in the host during the
-# build process.
-
-%s "$@"
-""" % qemu_cmd)
- os.chmod(wrapper_path, 0o755)
-}
-
-do_create_v8_qemu_wrapper[dirs] = "${B}"
-addtask create_v8_qemu_wrapper after do_configure before do_compile
-
-LDFLAGS:append:x86 = " -latomic"
-
-# Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi
-do_configure () {
- export LD="${CXX}"
- GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
- # $TARGET_ARCH settings don't match --dest-cpu settings
- python3 configure.py --prefix=${prefix} --cross-compiling \
- --shared-openssl \
- --without-dtrace \
- --without-etw \
- --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \
- --dest-os=linux \
- --libdir=${D}${libdir} \
- ${ARCHFLAGS} \
- ${PACKAGECONFIG_CONFARGS}
-}
-
-do_compile () {
- export LD="${CXX}"
- install -D ${B}/v8-qemu-wrapper.sh ${B}/out/Release/v8-qemu-wrapper.sh
- oe_runmake BUILDTYPE=Release
-}
-
-do_install () {
- oe_runmake install DESTDIR=${D}
-}
-
-BINARIES = " \
- bytecode_builtins_list_generator \
- ${@bb.utils.contains('PACKAGECONFIG', 'icu', 'gen-regexp-special-case', '', d)} \
- mkcodecache \
- node_mksnapshot \
- torque \
-"
-
-do_install:append:class-native() {
- # Install the native binaries to provide it within sysroot for the target compilation
- install -d ${D}${bindir}
- (cd ${S}/out/Release && install ${BINARIES} ${D}${bindir})
-}
-
-PACKAGES =+ "${PN}-npm"
-FILES:${PN}-npm = "${nonarch_libdir}/node_modules ${bindir}/npm ${bindir}/npx"
-RDEPENDS:${PN}-npm = "bash python3-core python3-shell python3-datetime \
- python3-misc python3-multiprocessing"
-
-PACKAGES =+ "${PN}-systemtap"
-FILES:${PN}-systemtap = "${datadir}/systemtap"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_20.11.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_20.11.1.bb
new file mode 100644
index 0000000000..9a61cfcf71
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs_20.11.1.bb
@@ -0,0 +1,182 @@
+DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
+HOMEPAGE = "http://nodejs.org"
+LICENSE = "MIT & ISC & BSD-2-Clause & BSD-3-Clause & Artistic-2.0 & Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=78ad16dab3c1d15d4878c81770be0be7"
+
+CVE_PRODUCT = "nodejs node.js"
+
+DEPENDS = "openssl file-replacement-native python3-packaging-native"
+DEPENDS:append:class-target = " qemu-native"
+DEPENDS:append:class-native = " c-ares-native"
+
+inherit pkgconfig python3native qemu ptest
+
+COMPATIBLE_MACHINE:armv4 = "(!.*armv4).*"
+COMPATIBLE_MACHINE:armv5 = "(!.*armv5).*"
+COMPATIBLE_MACHINE:mips64 = "(!.*mips64).*"
+
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
+COMPATIBLE_HOST:powerpc = "null"
+
+SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
+ file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
+ file://0004-v8-don-t-override-ARM-CFLAGS.patch \
+ file://system-c-ares.patch \
+ file://0001-liftoff-Correct-function-signatures.patch \
+ file://run-ptest \
+ "
+
+SRC_URI:append:class-target = " \
+ file://0001-Using-native-binaries.patch \
+ "
+SRC_URI:append:toolchain-clang:x86 = " \
+ file://libatomic.patch \
+ "
+SRC_URI:append:toolchain-clang:powerpc64le = " \
+ file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \
+ "
+SRC_URI[sha256sum] = "77813edbf3f7f16d2d35d3353443dee4e61d5ee84d9e3138c7538a3c0ca5209e"
+
+S = "${WORKDIR}/node-v${PV}"
+
+CVE_PRODUCT += "node.js"
+
+# v8 errors out if you have set CCACHE
+CCACHE = ""
+
+def map_nodejs_arch(a, d):
+ import re
+
+ if re.match('i.86$', a): return 'ia32'
+ elif re.match('x86_64$', a): return 'x64'
+ elif re.match('aarch64$', a): return 'arm64'
+ elif re.match('(powerpc64|powerpc64le|ppc64le)$', a): return 'ppc64'
+ elif re.match('powerpc$', a): return 'ppc'
+ return a
+
+ARCHFLAGS:arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--with-arm-float-abi=hard', '--with-arm-float-abi=softfp', d)} \
+ ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-arm-fpu=neon', \
+ bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', '--with-arm-fpu=vfpv3-d16', \
+ bb.utils.contains('TUNE_FEATURES', 'vfpv3', '--with-arm-fpu=vfpv3', \
+ '--with-arm-fpu=vfp', d), d), d)}"
+ARCHFLAGS:append:mips = " --v8-lite-mode"
+ARCHFLAGS:append:mipsel = " --v8-lite-mode"
+ARCHFLAGS ?= ""
+
+PACKAGECONFIG ??= "ares brotli icu zlib"
+
+PACKAGECONFIG[ares] = "--shared-cares,,c-ares"
+PACKAGECONFIG[brotli] = "--shared-brotli,,brotli"
+PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu"
+PACKAGECONFIG[libuv] = "--shared-libuv,,libuv"
+PACKAGECONFIG[nghttp2] = "--shared-nghttp2,,nghttp2"
+PACKAGECONFIG[shared] = "--shared"
+PACKAGECONFIG[zlib] = "--shared-zlib,,zlib"
+
+# We don't want to cross-compile during target compile,
+# and we need to use the right flags during host compile,
+# too.
+EXTRA_OEMAKE = "\
+ CC.host='${CC} -pie -fPIE' \
+ CFLAGS.host='${CPPFLAGS} ${CFLAGS}' \
+ CXX.host='${CXX} -pie -fPIE' \
+ CXXFLAGS.host='${CPPFLAGS} ${CXXFLAGS}' \
+ LDFLAGS.host='${LDFLAGS}' \
+ AR.host='${AR}' \
+ \
+ builddir_name=./ \
+"
+
+EXTRANATIVEPATH += "file-native"
+
+python prune_sources() {
+ import shutil
+
+ shutil.rmtree(d.getVar('S') + '/deps/openssl')
+ if 'ares' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/cares')
+ if 'brotli' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/brotli')
+ if 'libuv' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/uv')
+ if 'nghttp2' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/nghttp2')
+ if 'zlib' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/zlib')
+}
+do_unpack[postfuncs] += "prune_sources"
+
+# V8's JIT infrastructure requires binaries such as mksnapshot and
+# mkpeephole to be run in the host during the build. However, these
+# binaries must have the same bit-width as the target (e.g. a x86_64
+# host targeting ARMv6 needs to produce a 32-bit binary). Instead of
+# depending on a third Yocto toolchain, we just build those binaries
+# for the target and run them on the host with QEMU.
+python do_create_v8_qemu_wrapper () {
+ """Creates a small wrapper that invokes QEMU to run some target V8 binaries
+ on the host."""
+ qemu_libdirs = [d.expand('${STAGING_DIR_HOST}${libdir}'),
+ d.expand('${STAGING_DIR_HOST}${base_libdir}')]
+ qemu_cmd = qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'),
+ qemu_libdirs)
+ wrapper_path = d.expand('${B}/v8-qemu-wrapper.sh')
+ with open(wrapper_path, 'w') as wrapper_file:
+ wrapper_file.write("""#!/bin/sh
+
+# This file has been generated automatically.
+# It invokes QEMU to run binaries built for the target in the host during the
+# build process.
+
+%s "$@"
+""" % qemu_cmd)
+ os.chmod(wrapper_path, 0o755)
+}
+
+do_create_v8_qemu_wrapper[dirs] = "${B}"
+addtask create_v8_qemu_wrapper after do_configure before do_compile
+
+LDFLAGS:append:x86 = " -latomic"
+
+CROSS_FLAGS = "--cross-compiling"
+CROSS_FLAGS:class-native = "--no-cross-compiling"
+
+# Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi
+do_configure () {
+ GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
+ # $TARGET_ARCH settings don't match --dest-cpu settings
+ python3 configure.py --verbose --prefix=${prefix} \
+ --shared-openssl \
+ --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \
+ --dest-os=linux \
+ --libdir=${baselib} \
+ ${CROSS_FLAGS} \
+ ${ARCHFLAGS} \
+ ${PACKAGECONFIG_CONFARGS}
+}
+
+do_compile () {
+ install -D ${RECIPE_SYSROOT_NATIVE}/etc/ssl/openssl.cnf ${B}/deps/openssl/nodejs-openssl.cnf
+ install -D ${B}/v8-qemu-wrapper.sh ${B}/out/Release/v8-qemu-wrapper.sh
+ oe_runmake BUILDTYPE=Release
+}
+
+do_install () {
+ oe_runmake install DESTDIR=${D}
+}
+
+do_install_ptest () {
+ cp -r ${B}/out/Release/cctest ${D}${PTEST_PATH}/
+ cp -r ${B}/test ${D}${PTEST_PATH}
+ chown -R root:root ${D}${PTEST_PATH}
+}
+
+PACKAGES =+ "${PN}-npm"
+FILES:${PN}-npm = "${nonarch_libdir}/node_modules ${bindir}/npm ${bindir}/npx ${bindir}/corepack"
+RDEPENDS:${PN}-npm = "bash python3-core python3-shell python3-datetime \
+ python3-misc python3-multiprocessing"
+
+PACKAGES =+ "${PN}-systemtap"
+FILES:${PN}-systemtap = "${datadir}/systemtap"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/octave/files/fix-blas-library-integer-size.patch b/meta-oe/recipes-devtools/octave/files/fix-blas-library-integer-size.patch
index e89d7d3466..4189d4083a 100644
--- a/meta-oe/recipes-devtools/octave/files/fix-blas-library-integer-size.patch
+++ b/meta-oe/recipes-devtools/octave/files/fix-blas-library-integer-size.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -Naur octave-4.4.1.orig/configure.ac octave-4.4.1/configure.ac
--- octave-4.4.1.orig/configure.ac 2019-02-23 10:46:24.287240571 +0000
+++ octave-4.4.1/configure.ac 2019-02-23 10:46:42.255249333 +0000
diff --git a/meta-oe/recipes-devtools/openocd/openocd_git.bb b/meta-oe/recipes-devtools/openocd/openocd_git.bb
index 1503bb6751..559fe29ff8 100644
--- a/meta-oe/recipes-devtools/openocd/openocd_git.bb
+++ b/meta-oe/recipes-devtools/openocd/openocd_git.bb
@@ -1,30 +1,30 @@
SUMMARY = "Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing"
LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+LIC_FILES_CHKSUM = "file://COPYING;md5=599d2d1ee7fc84c0467b3d19801db870"
DEPENDS = "libusb-compat libftdi"
RDEPENDS:${PN} = "libusb1"
SRC_URI = " \
git://repo.or.cz/openocd.git;protocol=http;name=openocd;branch=master \
git://repo.or.cz/r/git2cl.git;protocol=http;destsuffix=tools/git2cl;name=git2cl;branch=master \
- git://repo.or.cz/r/jimtcl.git;protocol=http;destsuffix=git/jimtcl;name=jimtcl;branch=master \
+ git://github.com/msteveb/jimtcl.git;protocol=https;destsuffix=git/jimtcl;name=jimtcl;branch=master \
git://repo.or.cz/r/libjaylink.git;protocol=http;destsuffix=git/src/jtag/drivers/libjaylink;name=libjaylink;branch=master \
"
SRCREV_FORMAT = "openocd"
-SRCREV_openocd = "f342aac0845a69d591ad39a025d74e9c765f6420"
+SRCREV_openocd = "91bd4313444c5a949ce49d88ab487608df7d6c37"
SRCREV_git2cl = "8373c9f74993e218a08819cbcdbab3f3564bbeba"
-SRCREV_jimtcl = "0aa0fb4e3a38d38a49de9eb585d93d63a370dcf6"
+SRCREV_jimtcl = "fcbb4499a6b46ef69e7a95da53e30796e20817f0"
SRCREV_libjaylink = "9aa7a5957c07bb6e862fc1a6d3153d109c7407e4"
-PV = "0.11+gitr${SRCPV}"
+PV = "0.12+git"
S = "${WORKDIR}/git"
inherit pkgconfig autotools-brokensep gettext
BBCLASSEXTEND += "native nativesdk"
-EXTRA_OECONF = "--enable-ftdi --disable-doxygen-html --disable-werror"
+EXTRA_OECONF = "--enable-ftdi --enable-jtag_vpi --enable-buspirate --disable-doxygen-html --disable-werror"
do_configure() {
./bootstrap nosubmodule
diff --git a/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb b/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
index 441ab2ec95..4a0383e0a1 100644
--- a/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
+++ b/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
@@ -1,6 +1,5 @@
SUMMARY = "Packages required for a target (on-device) SDK"
-PR = "r1"
inherit packagegroup
diff --git a/meta-oe/recipes-devtools/pahole/files/0001-CMakeList.txt-make-python-optional.patch b/meta-oe/recipes-devtools/pahole/files/0001-CMakeList.txt-make-python-optional.patch
deleted file mode 100644
index d64cba109f..0000000000
--- a/meta-oe/recipes-devtools/pahole/files/0001-CMakeList.txt-make-python-optional.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From f6ca8c930d0fbd2491b3cc77169e32806a14e5e9 Mon Sep 17 00:00:00 2001
-From: Matteo Croce <mcroce@microsoft.com>
-Date: Mon, 30 Aug 2021 16:25:56 +0200
-Subject: [PATCH] CMakeList.txt: make python optional
-
-Upstream-Status: Backport [https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=88431099950ab3e8bc1645353508d7978a6cad35]
-
-ostra-cg, which requires python, is installed in the destination dir.
-Make it optional for embedded distributions which doesn't have the
-python interpreter available.
-
-Signed-off-by: Matteo Croce <mcroce@microsoft.com>
----
- CMakeLists.txt | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4140574..8523bce 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -61,6 +61,7 @@ find_package(DWARF REQUIRED)
- find_package(ZLIB REQUIRED)
- find_package(argp REQUIRED)
- find_package(obstack REQUIRED)
-+find_package(Python3 QUIET)
-
- # make sure git submodule(s) are checked out
- find_package(Git QUIET)
-@@ -185,8 +186,10 @@ install(FILES dwarves.h dwarves_emit.h dwarves_reorganize.h
- elfcreator.h elf_symtab.h hash.h libctf.h
- DESTINATION ${CMAKE_INSTALL_PREFIX}/include/dwarves/)
- install(FILES man-pages/pahole.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1/)
--install(PROGRAMS ostra/ostra-cg DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
-+if(Python3_FOUND)
-+ install(PROGRAMS ostra/ostra-cg DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
-+ install(FILES ostra/python/ostra.py DESTINATION ${CMAKE_INSTALL_PREFIX}/share/dwarves/runtime/python)
-+endif()
- install(PROGRAMS btfdiff fullcircle DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
--install(FILES ostra/python/ostra.py DESTINATION ${CMAKE_INSTALL_PREFIX}/share/dwarves/runtime/python)
- install(FILES lib/Makefile lib/ctracer_relay.c lib/ctracer_relay.h lib/linux.blacklist.cu
- DESTINATION ${CMAKE_INSTALL_PREFIX}/share/dwarves/runtime)
---
-2.31.1
-
diff --git a/meta-oe/recipes-devtools/pahole/files/0002-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch b/meta-oe/recipes-devtools/pahole/files/0002-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch
index 54cd096e4f..4f7dfd4cca 100644
--- a/meta-oe/recipes-devtools/pahole/files/0002-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch
+++ b/meta-oe/recipes-devtools/pahole/files/0002-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch
@@ -3,7 +3,7 @@ From: Matteo Croce <mcroce@microsoft.com>
Date: Wed, 15 Sep 2021 17:54:01 +0200
Subject: [PATCH] Use /usr/bin/env python3 instead of just /usr/bin/python3
-Upstream-Status: inappropriate [OE specific]
+Upstream-Status: Inappropriate [OE specific]
---
ostra/ostra-cg | 2 +-
diff --git a/meta-oe/recipes-devtools/pahole/files/0003-CMakeList.txt-don-t-download-libbpf-source-when-syst.patch b/meta-oe/recipes-devtools/pahole/files/0003-CMakeList.txt-don-t-download-libbpf-source-when-syst.patch
deleted file mode 100644
index 3d491e2ef2..0000000000
--- a/meta-oe/recipes-devtools/pahole/files/0003-CMakeList.txt-don-t-download-libbpf-source-when-syst.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 3d20210d84f61ee2189927e2d9de9ce3e5a0a9c5 Mon Sep 17 00:00:00 2001
-From: Matteo Croce <mcroce@microsoft.com>
-Date: Mon, 20 Sep 2021 18:44:52 +0200
-Subject: [PATCH] CMakeList.txt: Don't download libbpf source when system
- library is used
-
-Upstream-Status: Backport [https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=3d20210d84f61ee2189927e2d9de9ce3e5a0a9c5]
-
-The build system always download the libbpf submodule, regardless if
-we're using the embedded or the system version.
-Download the libbpf source only if we're using the embedded one.
-
-Signed-off-by: Matteo Croce <mcroce@microsoft.com>
-Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8523bce..2ab66e4 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -65,7 +65,7 @@ find_package(Python3 QUIET)
-
- # make sure git submodule(s) are checked out
- find_package(Git QUIET)
--if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
-+if(LIBBPF_EMBEDDED AND GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
- # Update submodules as needed
- option(GIT_SUBMODULE "Check submodules during build" ON)
- if(GIT_SUBMODULE)
---
-2.31.1
-
diff --git a/meta-oe/recipes-devtools/pahole/pahole_1.22.bb b/meta-oe/recipes-devtools/pahole/pahole_1.22.bb
deleted file mode 100644
index 449508a5d5..0000000000
--- a/meta-oe/recipes-devtools/pahole/pahole_1.22.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Shows and manipulates data structure layout"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "elfutils zlib libbpf"
-
-# Depends on MACHINE_ARCH libbpf
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-COMPATIBLE_HOST = "(x86_64|i.86|aarch64).*-linux"
-
-SRCREV = "f02af2553ea58ae1186226af0d0ec835a248358f"
-SRC_URI = "git://git.kernel.org/pub/scm/devel/pahole/pahole.git;branch=master \
- file://0001-CMakeList.txt-make-python-optional.patch \
- file://0002-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch \
- file://0003-CMakeList.txt-don-t-download-libbpf-source-when-syst.patch"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
-
-PACKAGECONFIG[python3] = ",,python3-core,python3-core"
-
-EXTRA_OECMAKE = "-D__LIB=lib -DCMAKE_BUILD_TYPE=Release -DLIBBPF_EMBEDDED=OFF"
-
-FILES:${PN} = "${bindir}/pahole \
- ${libdir}/libdwarves.so* \
- ${libdir}/libdwarves_reorganize.so*"
-
-PACKAGES += "${PN}-extra"
-FILES:${PN}-extra = "${datadir} ${bindir} ${libdir}/libdwarves_emit.so*"
-RDEPENDS:${PN}-extra += "bash python3-core"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/pahole/pahole_1.25.bb b/meta-oe/recipes-devtools/pahole/pahole_1.25.bb
new file mode 100644
index 0000000000..1334c850e6
--- /dev/null
+++ b/meta-oe/recipes-devtools/pahole/pahole_1.25.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Shows and manipulates data structure layout"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "elfutils zlib libbpf"
+
+# Depends on MACHINE_ARCH libbpf
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_HOST = "(x86_64|i.86|aarch64).*-linux"
+
+SRCREV = "81558a5a996005df0d607dd33f74ec5b7bdb619d"
+SRC_URI = "git://git.kernel.org/pub/scm/devel/pahole/pahole.git;branch=master \
+ file://0002-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG[python3] = ",,python3-core,python3-core"
+
+EXTRA_OECMAKE = "-D__LIB=${@os.path.relpath(d.getVar('libdir'), d.getVar('prefix') + '/')} -DCMAKE_BUILD_TYPE=Release -DLIBBPF_EMBEDDED=OFF"
+
+FILES:${PN} = "${bindir}/pahole \
+ ${libdir}/libdwarves.so* \
+ ${libdir}/libdwarves_reorganize.so*"
+
+PACKAGES += "${PN}-extra"
+FILES:${PN}-extra = "${datadir} ${bindir} ${libdir}/libdwarves_emit.so*"
+RDEPENDS:${PN}-extra += "bash python3-core"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/perfetto/files/0001-Add-missing-header-cstdint-for-uintXX_t-types.patch b/meta-oe/recipes-devtools/perfetto/files/0001-Add-missing-header-cstdint-for-uintXX_t-types.patch
new file mode 100644
index 0000000000..d08721ae65
--- /dev/null
+++ b/meta-oe/recipes-devtools/perfetto/files/0001-Add-missing-header-cstdint-for-uintXX_t-types.patch
@@ -0,0 +1,58 @@
+From e63949205682bbd2a0e33e256119472d704a2549 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 29 Jan 2023 22:03:01 -0800
+Subject: [PATCH] Add missing header <cstdint> for uintXX_t types
+
+This is detected by gcc-13
+gcc 13 moved some includes around and as a result <cstdint> is no
+longer transitively included [1]. Explicitly include it for uintXX_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Upstream-Status: Submitted [https://android-review.googlesource.com/c/platform/external/perfetto/+/2399128]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/perfetto/ext/base/http/sha1.h | 1 +
+ include/perfetto/ext/base/uuid.h | 1 +
+ src/traced/probes/common/cpu_freq_info.h | 1 +
+ 3 files changed, 3 insertions(+)
+
+diff --git a/include/perfetto/ext/base/http/sha1.h b/include/perfetto/ext/base/http/sha1.h
+index c583d69d4..7e3a48c83 100644
+--- a/include/perfetto/ext/base/http/sha1.h
++++ b/include/perfetto/ext/base/http/sha1.h
+@@ -20,6 +20,7 @@
+ #include <stddef.h>
+
+ #include <array>
++#include <cstdint>
+ #include <string>
+
+ namespace perfetto {
+diff --git a/include/perfetto/ext/base/uuid.h b/include/perfetto/ext/base/uuid.h
+index 1b4c53815..472042fab 100644
+--- a/include/perfetto/ext/base/uuid.h
++++ b/include/perfetto/ext/base/uuid.h
+@@ -18,6 +18,7 @@
+ #define INCLUDE_PERFETTO_EXT_BASE_UUID_H_
+
+ #include <array>
++#include <cstdint>
+ #include <string>
+
+ #include "perfetto/ext/base/optional.h"
+diff --git a/src/traced/probes/common/cpu_freq_info.h b/src/traced/probes/common/cpu_freq_info.h
+index 36f7f9c09..8232cbf64 100644
+--- a/src/traced/probes/common/cpu_freq_info.h
++++ b/src/traced/probes/common/cpu_freq_info.h
+@@ -17,6 +17,7 @@
+ #ifndef SRC_TRACED_PROBES_COMMON_CPU_FREQ_INFO_H_
+ #define SRC_TRACED_PROBES_COMMON_CPU_FREQ_INFO_H_
+
++#include <cstdint>
+ #include <map>
+ #include <string>
+ #include <vector>
+--
+2.39.1
+
diff --git a/meta-oe/recipes-devtools/perfetto/files/0001-Remove-check_build_deps-build-steps.patch b/meta-oe/recipes-devtools/perfetto/files/0001-Remove-check_build_deps-build-steps.patch
new file mode 100644
index 0000000000..c10400aef4
--- /dev/null
+++ b/meta-oe/recipes-devtools/perfetto/files/0001-Remove-check_build_deps-build-steps.patch
@@ -0,0 +1,73 @@
+From 3b7091243ec03054ca8800b51b85a1c09e7e3075 Mon Sep 17 00:00:00 2001
+From: Sui Chen <suichen6@gmail.com>
+Date: Mon, 13 Jun 2022 17:46:49 +0000
+Subject: [PATCH] Remove "check_build_deps" build steps
+
+When building with Bitbake, we want Bitbake to manage our dependencies,
+so we remove the "check_build_deps" steps from Perfetto.
+
+Also setting "is_cross_compiling" to true, so that the host-side tools
+(such as protoc) will always be generated using the native toolchain,
+rather than the Bitbake-generated one.
+
+Signed-off-by: Sui Chen <suichen6@gmail.com>
+---
+Upstream-Status: Pending
+
+ gn/BUILD.gn | 1 -
+ gn/standalone/BUILD.gn | 12 ++++++------
+ gn/standalone/BUILDCONFIG.gn | 5 +++--
+ 3 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/gn/BUILD.gn b/gn/BUILD.gn
+index 8a7ca72a8..e4a2d39f0 100644
+--- a/gn/BUILD.gn
++++ b/gn/BUILD.gn
+@@ -111,7 +111,6 @@ group("default_deps") {
+ deps = [ ":gen_buildflags" ]
+ if (perfetto_build_standalone) {
+ public_deps = [
+- "//gn/standalone:check_build_deps",
+ "//gn/standalone/libc++:deps",
+ "//gn/standalone/sanitizers:deps",
+ ]
+diff --git a/gn/standalone/BUILD.gn b/gn/standalone/BUILD.gn
+index 582e9b867..9c77ac64c 100644
+--- a/gn/standalone/BUILD.gn
++++ b/gn/standalone/BUILD.gn
+@@ -441,10 +441,10 @@ config("android_liblog") {
+ }
+
+ # Checks that tools/install-build-deps has been run since it last changed.
+-perfetto_check_build_deps("check_build_deps") {
+- args = []
+-}
++#perfetto_check_build_deps("check_build_deps") {
++# args = []
++#}
+
+-perfetto_check_build_deps("check_build_deps_android") {
+- args = [ "--android" ]
+-}
++#perfetto_check_build_deps("check_build_deps_android") {
++# args = [ "--android" ]
++#}
+diff --git a/gn/standalone/BUILDCONFIG.gn b/gn/standalone/BUILDCONFIG.gn
+index 6f32686c1..c041989b0 100644
+--- a/gn/standalone/BUILDCONFIG.gn
++++ b/gn/standalone/BUILDCONFIG.gn
+@@ -59,8 +59,9 @@ declare_args() {
+ # the ossfuzz sanitizer overrides this to true. In that config the
+ # host/target cpu and arch are identical, but we want to build only the
+ # targets with the sanitizer/fuzzer flags
+- is_cross_compiling =
+- target_cpu != host_cpu || target_os != host_os || target_triplet != ""
++
++ # for Bitbake build
++ is_cross_compiling = true
+ }
+ default_configs = [
+ "//gn/standalone:debug_symbols",
+--
+2.37.1
+
diff --git a/meta-oe/recipes-devtools/perfetto/files/0001-meson-add-pc-file-for-lib_perfetto.patch b/meta-oe/recipes-devtools/perfetto/files/0001-meson-add-pc-file-for-lib_perfetto.patch
new file mode 100644
index 0000000000..ae644747c1
--- /dev/null
+++ b/meta-oe/recipes-devtools/perfetto/files/0001-meson-add-pc-file-for-lib_perfetto.patch
@@ -0,0 +1,49 @@
+From 027f90dc9386ec08f2a5107025683e5fed6f3444 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 17 Oct 2022 19:20:53 +0200
+Subject: [PATCH] meson: add PC file for lib_perfetto
+
+---
+Upstream-Status: Pending
+
+ meson.build | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+--- a/meson.build
++++ b/meson.build
+@@ -19,9 +19,12 @@
+ project(
+ 'perfetto',
+ ['cpp'],
+- default_options: ['cpp_std=c++17']
++ default_options: ['cpp_std=c++17'],
++ version: '31.0'
+ )
+
++soversion = meson.project_version()
++
+ fs = import('fs')
+
+ if not fs.is_dir('sdk')
+@@ -36,8 +39,9 @@ if host_machine.system() == 'android'
+ deps_perfetto += cpp.find_library('log')
+ endif
+
+-lib_perfetto = static_library(
++lib_perfetto = shared_library(
+ 'perfetto',
++ version: soversion,
+ sources: 'sdk/perfetto.cc',
+ dependencies: deps_perfetto,
+ install: true,
+@@ -50,6 +54,10 @@ dir_perfetto_trace = join_paths(meson.cu
+
+ install_data(dir_perfetto_trace / 'perfetto_trace.proto')
+
++install_headers('sdk/perfetto.h')
++pkg = import('pkgconfig')
++pkg.generate(lib_perfetto)
++
+ dep_perfetto = declare_dependency(
+ link_with: lib_perfetto,
+ include_directories: inc_perfetto,
diff --git a/meta-oe/recipes-devtools/perfetto/libperfetto.bb b/meta-oe/recipes-devtools/perfetto/libperfetto.bb
new file mode 100644
index 0000000000..c8f56fd527
--- /dev/null
+++ b/meta-oe/recipes-devtools/perfetto/libperfetto.bb
@@ -0,0 +1,14 @@
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f87516e0b698007e9e75a1fe1012b390"
+
+require perfetto.inc
+
+inherit meson
+
+SRC_URI:append = " file://0001-meson-add-pc-file-for-lib_perfetto.patch"
+
+LDFLAGS += "-Wl,--as-needed -latomic -Wl,--no-as-needed"
+
+FILES:${PN} += "${datadir}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/perfetto/perfetto.bb b/meta-oe/recipes-devtools/perfetto/perfetto.bb
new file mode 100644
index 0000000000..7e9408b0b2
--- /dev/null
+++ b/meta-oe/recipes-devtools/perfetto/perfetto.bb
@@ -0,0 +1,156 @@
+LICENSE = "Apache-2.0 & BSD-3-Clause & MIT & Zlib"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f87516e0b698007e9e75a1fe1012b390 \
+ file://buildtools/libcxx/LICENSE.TXT;md5=55d89dd7eec8d3b4204b680e27da3953 \
+ file://buildtools/libcxxabi/LICENSE.TXT;md5=7b9334635b542c56868400a46b272b1e \
+ file://buildtools/libunwind/LICENSE.TXT;md5=f66970035d12f196030658b11725e1a1 \
+ file://buildtools/protobuf/LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b \
+ file://buildtools/zlib/LICENSE;md5=f09575dbfb09420642318b413159496f \
+ file://debian/copyright;md5=4e08364c82141f181de69d0a2b89d612 \
+ file://python/LICENSE;md5=c602a632c34ade9c78a976734077bce7"
+
+SRC_URI:append = " \
+ git://github.com/protocolbuffers/protobuf.git;branch=3.9.x;protocol=https;destsuffix=git/buildtools/protobuf;name=protobuf \
+ git://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git;protocol=https;destsuffix=git/buildtools/libcxx;branch=main;name=libcxx \
+ git://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git;protocol=https;destsuffix=git/buildtools/libcxxabi;branch=main;name=libcxxabi \
+ git://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git;protocol=https;destsuffix=git/buildtools/libunwind;branch=main;name=libunwind \
+ git://android.googlesource.com/platform/system/libbase.git;branch=master;protocol=https;destsuffix=git/buildtools/android-libbase;name=libbase \
+ git://android.googlesource.com/platform/system/unwinding.git;branch=master;protocol=https;destsuffix=git/buildtools/android-unwinding;name=unwinding \
+ git://android.googlesource.com/platform/system/logging.git;branch=master;protocol=https;destsuffix=git/buildtools/android-logging;name=logging \
+ git://android.googlesource.com/platform/system/libprocinfo.git;branch=master;protocol=https;destsuffix=git/buildtools/android-libprocinfo;name=libprocinfo \
+ git://android.googlesource.com/platform/system/core.git;branch=master;protocol=https;destsuffix=git/buildtools/android-core;name=core \
+ git://android.googlesource.com/platform/bionic.git;branch=master;protocol=https;destsuffix=git/buildtools/bionic;name=bionic \
+ git://android.googlesource.com/platform/external/zlib.git;branch=master;protocol=https;destsuffix=git/buildtools/zlib;name=zlib \
+ git://android.googlesource.com/platform/external/lzma.git;branch=master;protocol=https;destsuffix=git/buildtools/lzma;name=lzma \
+ https://storage.googleapis.com/perfetto/gn-linux64-1968-0725d782;subdir=git/buildtools/;name=gn \
+ \
+ file://0001-Remove-check_build_deps-build-steps.patch \
+ file://0001-Add-missing-header-cstdint-for-uintXX_t-types.patch"
+
+SRCREV_bionic = "4b0e16bc72a82a63c699977376a7d6eadca1b206"
+SRCREV_core = "9e6cef7f07d8c11b3ea820938aeb7ff2e9dbaa52"
+SRCREV_lzma = "7851dce6f4ca17f5caa1c93a4e0a45686b1d56c3"
+SRCREV_libprocinfo = "fd214c13ededecae97a3b15b5fccc8925a749a84"
+SRCREV_logging = "7b36b566c9113fc703d68f76e8f40c0c2432481c"
+SRCREV_unwinding = "d66882575ebe3700d6a6b10185f3aee28acc1051"
+SRCREV_protobuf = "6a59a2ad1f61d9696092f79b6d74368b4d7970a3"
+SRCREV_libbase = "78f1c2f83e625bdf66d55b48bdb3a301c20d2fb3"
+SRCREV_libcxx = "f8571eaba606bde2eb8cd34b30104ca33e7c207e"
+SRCREV_libcxxabi = "8dd405113a4f3694e910b79785dd7fb7535a888a"
+SRCREV_libunwind = "aabcd8753678f1536e15eb6385a948470debdae4"
+SRCREV_zlib = "5c85a2da4c13eda07f69d81a1579a5afddd35f59"
+
+SRCREV_FORMAT .="_bionic_core_lzma_libprocinfo_logging_unwinding_protobuf_libbase_libcxx_libcxxabi_libunwind_zlib"
+
+SRC_URI[gn.sha256sum] = "f706aaa0676e3e22f5fc9ca482295d7caee8535d1869f99efa2358177b64f5cd"
+
+require perfetto.inc
+
+DEPENDS += " ninja-native"
+
+COMPATIBLE_HOST = "(i.86|x86_64|aarch64|arm).*-linux*"
+
+CCACHE_DISABLE = "1"
+
+# Some musl hacks gets through compiling it for musl
+# Nullifying -DTEMP_FAILURE_RETRY might be grossest of them
+TUNE_CCARGS:append:libc-musl = " -D_LIBCPP_HAS_MUSL_LIBC -Dgetprogname\(\)=program_invocation_name -DTEMP_FAILURE_RETRY="
+FILES:${PN}:append = " \
+ ${bindir}/tracebox \
+ "
+
+B = "${WORKDIR}/build"
+
+# Run the GN (Generate Ninja) script, and replace the compiler flags where applicable
+do_configure () {
+ # Configuration needs to be done from the source directory
+ cd ${S}
+ # Rename a few build tools if they have not been renamed
+ cd buildtools
+ x="gn-linux64-1968-0725d782"
+ [ -f $x ] && mkdir linux64 && mv $x linux64/gn
+ chmod +x linux64/gn
+ cd ..
+
+ CC_BIN=`echo $CC | awk '{print $1}'`
+ CXX_BIN=`echo $CXX | awk '{print $1}'`
+ STRIP_BIN=`echo $STRIP | awk '{print $1}'`
+
+ ARGS="is_debug=false " # Tell gn to use release mode
+
+ if [ -z `echo ${TOOLCHAIN} | grep clang` ]; then
+ ARGS=$ARGS" is_clang=false"
+ else
+ ARGS=$ARGS" is_clang=true"
+ fi
+
+ # Architecture parameter accepted by Perfetto
+ arch=${TARGET_ARCH}
+ if [ $arch = "i686" ]; then
+ arch="x86"
+ elif [ $arch = "x86_64" ]; then
+ arch="x64"
+ elif [ $arch = "aarch64" ]; then
+ arch="arm64"
+ fi
+
+ ARGS=$ARGS" target_os=\"linux\""
+ ARGS=$ARGS" target_cpu=\"$arch\""
+ ARGS=$ARGS" target_cc=\"$CC_BIN ${TUNE_CCARGS}\""
+ ARGS=$ARGS" target_cxx=\"$CXX_BIN -std=c++11 ${TUNE_CCARGS}\""
+ ARGS=$ARGS" target_strip=\"$STRIP_BIN\"" #
+ ARGS=$ARGS" target_sysroot=\"${RECIPE_SYSROOT}\""
+ ARGS=$ARGS" target_linker=\"$CC_BIN ${TUNE_CCARGS} ${LDFLAGS}\""
+ ARGS=$ARGS" target_ar=\"$AR\""
+ ARGS="'$ARGS'"
+ cmd="tools/gn gen --args=$ARGS ${B}"
+
+ echo $cmd
+ # Use eval, not just call $cmd, due to escaping of single quotation marks
+ eval $cmd
+
+ cd ${B}
+ # Eliminate a few incompatible build flags
+ REPLACES="s/-Wl,--icf=all//g"
+ REPLACES=$REPLACES";s/-Werror//g"
+ REPLACES=$REPLACES";s/-fcolor-diagnostics//g"
+ REPLACES=$REPLACES";s/=format-security//g"
+ REPLACES=$REPLACES";s/-fdiagnostics-show-template-tree//g"
+ REPLACES=$REPLACES";s/-D_FORTIFY_SOURCE=2//g"
+ REPLACES=$REPLACES";s/-fuse-ld=\S*//g"
+
+ find . -name "*.ninja" | xargs sed $REPLACES -i
+
+ # If using the clang toolchain: use the clang host-side binaries built by Bitbake
+ if [ "${TOOLCHAIN}" = "clang" ]; then
+ BB_CLANGXX="${BUILD_CXX} ${BUILD_LDFLAGS}"
+ BB_CLANG="${BUILD_CC}"
+ BB_LLVM_OBJCOPY="${RECIPE_SYSROOT_NATIVE}/usr/bin/llvm-objcopy"
+
+ HOST_CLANGXX="${STAGING_DIR_NATIVE}/usr/bin/clang++ -stdlib=libc++ -rtlib=libgcc -unwindlib=libgcc"
+ HOST_CLANG="${STAGING_DIR_NATIVE}/usr/bin/clang"
+ HOST_LLVM_OBJCOPY="${STAGING_DIR_NATIVE}/usr/bin/llvm-objcopy"
+
+ cd gcc_like_host
+ REPLACES="s:\S*clang++ :$HOST_CLANGXX :g"
+ REPLACES=$REPLACES";s:\S*clang :$HOST_CLANG :g"
+ REPLACES=$REPLACES";s:\S*llvm-objcopy :$HOST_LLVM_OBJCOPY :g"
+ find . -name "*.ninja" | xargs sed "$REPLACES" -i
+ cd ..
+ fi
+ # Done processing the Ninja files
+}
+
+# Perfetto generates a few different binaries, such as traced and traced_probes and perfetto.
+# The "tracebox" is a busybox that combines the 3 above and provides a single stop for trace capture, so we only build "tracebox" here.
+do_compile () {
+ cd ${B}
+ ninja -C . tracebox
+}
+
+do_install () {
+ BIN_DIR=${D}${bindir}
+
+ install -d -m0755 $BIN_DIR
+ install ${B}/tracebox $BIN_DIR/tracebox
+}
diff --git a/meta-oe/recipes-devtools/perfetto/perfetto.inc b/meta-oe/recipes-devtools/perfetto/perfetto.inc
new file mode 100644
index 0000000000..4b06c5bf04
--- /dev/null
+++ b/meta-oe/recipes-devtools/perfetto/perfetto.inc
@@ -0,0 +1,10 @@
+SUMMARY = "Perfetto - System profiling, app tracing and trace analysis."
+HOMEPAGE = "https://github.com/google/perfetto"
+
+SRC_URI = "git://github.com/google/perfetto.git;protocol=https;name=perfetto;nobranch=1"
+
+SRCREV_perfetto = "b8da07095979310818f0efde2ef3c69ea70d62c5"
+SRCREV_FORMAT = "perfetto"
+PV = "31.0"
+
+S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-devtools/perl/exiftool_12.72.bb b/meta-oe/recipes-devtools/perl/exiftool_12.72.bb
new file mode 100644
index 0000000000..ba3e3fdf7e
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/exiftool_12.72.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Exiftool"
+DESCRIPTION = "ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files."
+HOMEPAGE = "https://exiftool.org/"
+SECTION = "libs"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://perl-Image-ExifTool.spec;beginline=5;endline=5;md5=ffefffc98dab025cb49489bd4d88ee10"
+
+inherit cpan
+
+SRCREV = "fc4f6614ff0c19bb5f332a9c464dcef7267931df"
+SRC_URI = "git://github.com/exiftool/exiftool;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+RDEPENDS:${PN} = " \
+ perl \
+ perl-module-list-util \
+ perl-module-overload \
+ perl-module-file-glob \
+ perl-module-scalar-util \
+ perl-module-compress-zlib \
+"
diff --git a/meta-oe/recipes-devtools/perl/ipc-run_20220807.0.bb b/meta-oe/recipes-devtools/perl/ipc-run_20220807.0.bb
deleted file mode 100644
index f597a8dab0..0000000000
--- a/meta-oe/recipes-devtools/perl/ipc-run_20220807.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "\
-IPC::Run allows you run and interact with child processes \
-using files, pipes, and pseudo-ttys. Both system()-style and scripted \
-usages are supported and may be mixed. Likewise, functional and OO API \
-styles are both supported and may be mixed."
-HOMEPAGE = "https://metacpan.org/release/IPC-Run"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0ebd37caf53781e8b7223e6b99b63f4e"
-DEPENDS = "perl"
-
-SRC_URI = "git://github.com/toddr/IPC-Run.git;branch=master;protocol=https"
-SRCREV = "44b1f2d2021615c88f2f6b1a6cbdd9aebaeb4ad1"
-
-S = "${WORKDIR}/git"
-
-inherit cpan
-
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
-do_compile() {
- export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
- cpan_do_compile
-}
diff --git a/meta-oe/recipes-devtools/perl/ipc-run_20231003.0.bb b/meta-oe/recipes-devtools/perl/ipc-run_20231003.0.bb
new file mode 100644
index 0000000000..e28b6ea018
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/ipc-run_20231003.0.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "\
+IPC::Run allows you run and interact with child processes \
+using files, pipes, and pseudo-ttys. Both system()-style and scripted \
+usages are supported and may be mixed. Likewise, functional and OO API \
+styles are both supported and may be mixed."
+HOMEPAGE = "https://metacpan.org/release/IPC-Run"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0ebd37caf53781e8b7223e6b99b63f4e"
+DEPENDS = "perl"
+
+SRC_URI = "git://github.com/toddr/IPC-Run.git;branch=master;protocol=https"
+SRCREV = "ad56c3b5f5a211d32bbb8ac29f180d707ee58c1b"
+
+S = "${WORKDIR}/git"
+
+inherit cpan
+
+EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+
+do_compile() {
+ export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+ cpan_do_compile
+}
diff --git a/meta-oe/recipes-devtools/perl/libconfig-general-perl_2.65.bb b/meta-oe/recipes-devtools/perl/libconfig-general-perl_2.65.bb
index ecc89d075e..b2266394d6 100644
--- a/meta-oe/recipes-devtools/perl/libconfig-general-perl_2.65.bb
+++ b/meta-oe/recipes-devtools/perl/libconfig-general-perl_2.65.bb
@@ -12,8 +12,6 @@ SRC_URI[sha256sum] = "4d6d5754be3a9f30906836f0cc10e554c8832e14e7a1341efb15b05d70
S = "${WORKDIR}/${SRCNAME}-${PV}"
-COMPATIBLE_HOST:libc-musl = "null"
-
EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
inherit cpan
diff --git a/meta-oe/recipes-devtools/perl/libdev-checklib-perl/0001-CheckLib.pm-don-t-execute-the-binary.patch b/meta-oe/recipes-devtools/perl/libdev-checklib-perl/0001-CheckLib.pm-don-t-execute-the-binary.patch
index 8d4920b390..f79b158114 100644
--- a/meta-oe/recipes-devtools/perl/libdev-checklib-perl/0001-CheckLib.pm-don-t-execute-the-binary.patch
+++ b/meta-oe/recipes-devtools/perl/libdev-checklib-perl/0001-CheckLib.pm-don-t-execute-the-binary.patch
@@ -21,7 +21,7 @@ and use the return status to determine the lib's
checking status is not appropriate in cross compile env.
$ /yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/git/assertlibCOw_eujb
-Upstream-Status: Inappropriate[oe specific]
+Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
diff --git a/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch b/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch
deleted file mode 100644
index 07c7690fb8..0000000000
--- a/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From fae771aefc593a0ef798bc0c1e21b0524eb85e2d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 31 Aug 2022 20:32:35 -0700
-Subject: [PATCH] Tty.xs: Do not mark strlcpy as static
-
-Some libcs e.g. musl do not provide implementation of strlcpy but they
-do provide the signature in string.h, if we mark it static here then it
-conflicts with the libc define and compiler may warn/error
-
-Fixes
-Tty.xs:190:1: error: static declaration of 'strlcpy' follows non-static declaration
-strlcpy( ^
-/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/libio-pty-perl/1.16-r0/recipe-sysroot/usr/include/string.h:86:8: note: previous declaration is here
-size_t strlcpy (char *, const char *, size_t); ^
-
-Upstream-Status: Submitted [https://github.com/toddr/IO-Tty/pull/33]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Tty.xs | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/Tty.xs b/Tty.xs
-index aa638f4..4bab39d 100644
---- a/Tty.xs
-+++ b/Tty.xs
-@@ -186,11 +186,11 @@ mysignal(int sig, mysig_t act)
- * will be copied. Always NUL terminates (unless siz == 0).
- * Returns strlen(src); if retval >= siz, truncation occurred.
- */
--static size_t
--strlcpy(dst, src, siz)
-- char *dst;
-- const char *src;
-- size_t siz;
-+size_t
-+strlcpy(
-+ char *dst,
-+ const char *src,
-+ size_t siz)
- {
- register char *d = dst;
- register const char *s = src;
---
-2.37.3
-
diff --git a/meta-oe/recipes-devtools/perl/libio-pty-perl_1.16.bb b/meta-oe/recipes-devtools/perl/libio-pty-perl_1.16.bb
deleted file mode 100644
index 0f1c71b70c..0000000000
--- a/meta-oe/recipes-devtools/perl/libio-pty-perl_1.16.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Perl module for pseudo tty IO"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=12;md5=b2562f94907eeb42e8ce9d45f628e587"
-
-SRC_URI = "http://www.cpan.org/modules/by-module/IO/IO-Tty-${PV}.tar.gz \
- file://0001-Tty.xs-Do-not-mark-strlcpy-as-static.patch \
- "
-
-SRC_URI[md5sum] = "5ee30bf7c76f00cc69f92388ad776e2a"
-SRC_URI[sha256sum] = "8f1a09c070738adc695df903f2e7f74308dd8d991b914c0bc390a0e6021294dd"
-
-S = "${WORKDIR}/IO-Tty-${PV}"
-
-inherit cpan
-
-FILES:${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/IO/Tty/.debug/"
-
diff --git a/meta-oe/recipes-devtools/perl/libio-pty-perl_1.20.bb b/meta-oe/recipes-devtools/perl/libio-pty-perl_1.20.bb
new file mode 100644
index 0000000000..6029b7aae9
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libio-pty-perl_1.20.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Perl module for pseudo tty IO"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=12;md5=b2562f94907eeb42e8ce9d45f628e587"
+
+SRC_URI = "http://www.cpan.org/modules/by-module/IO/IO-Tty-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "b15309fc85623893289cb9b2b88dfa9ed1e69156b75f29938553a45be6d730af"
+
+S = "${WORKDIR}/IO-Tty-${PV}"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} += "\
+ perl-module-carp \
+ perl-module-exporter \
+ perl-module-io-handle \
+ perl-module-posix \
+"
+
+RDEPENDS:${PN}-ptest += "\
+ perl-module-test-more \
+"
+
+FILES:${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/IO/Tty/.debug/"
+
diff --git a/meta-oe/recipes-devtools/perl/libpcsc-perl_1.4.14.bb b/meta-oe/recipes-devtools/perl/libpcsc-perl_1.4.14.bb
new file mode 100644
index 0000000000..ff4e1f0563
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libpcsc-perl_1.4.14.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Perl interface to the PC/SC smart card library"
+DESCRIPTION = "Perl wrapper to the PC/SC smartcard library (pcsc-lite) \
+together with some small examples. \
+The provided modules are Chipcard::PCSC and Chipcard::PCSC::Card."
+HOMEPAGE = "https://metacpan.org/dist/pcsc-perl"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/W/WH/WHOM/pcsc-perl-${PV}.tar.bz2"
+SRC_URI[md5sum] = "45601505dbb7b27329811ac9bad35fab"
+SRC_URI[sha256sum] = "2722b7e5543e4faf3ba1ec6b29a7dfec6d92be1edec09d0a3191992d4d88c69d"
+
+S = "${WORKDIR}/pcsc-perl-${PV}"
+
+inherit cpan pkgconfig
+
+DEPENDS += "pcsc-lite"
+
+RDEPENDS:${PN} += "perl-module-carp"
+
+BBCLASSEXTEND="native"
diff --git a/meta-oe/recipes-devtools/php/php/0001-Change-whether-to-inline-XXH3_hashLong_withSecret-to.patch b/meta-oe/recipes-devtools/php/php/0001-Change-whether-to-inline-XXH3_hashLong_withSecret-to.patch
new file mode 100644
index 0000000000..5b8c76209a
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0001-Change-whether-to-inline-XXH3_hashLong_withSecret-to.patch
@@ -0,0 +1,93 @@
+From 1eeb59366d6140a799f6051fb9f57d988b81fd5b Mon Sep 17 00:00:00 2001
+From: easyaspi314 <easyaspi314@users.noreply.github.com>
+Date: Wed, 12 Apr 2023 13:33:07 +0800
+Subject: [PATCH] Change whether to inline XXH3_hashLong_withSecret to a config
+ option
+
+Change whether to inline XXH3_hashLong_withSecret to a config option to fix
+GCC 12 -Og.
+
+Upstream-Status: Submitted [https://github.com/php/php-src/pull/11062]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ ext/hash/xxhash/xxhash.h | 35 +++++++++++++++++++++++++++++++++--
+ 1 file changed, 33 insertions(+), 2 deletions(-)
+
+diff --git a/ext/hash/xxhash/xxhash.h b/ext/hash/xxhash/xxhash.h
+index b5bd2864..8e816c05 100644
+--- a/ext/hash/xxhash/xxhash.h
++++ b/ext/hash/xxhash/xxhash.h
+@@ -1375,6 +1375,23 @@ XXH3_128bits_reset_withSecretandSeed(XXH3_state_t* statePtr,
+ */
+ # define XXH_NO_INLINE_HINTS 0
+
++/*!
++ * @def XXH3_INLINE_SECRET
++ * @brief Determines whether to inline the XXH3 withSecret code.
++ *
++ * When the secret size is known, the compiler can improve the performance
++ * of XXH3_64bits_withSecret() and XXH3_128bits_withSecret().
++ *
++ * However, if the secret size is not known, it doesn't have any benefit. This
++ * happens when xxHash is compiled into a global symbol. Therefore, if
++ * @ref XXH_INLINE_ALL is *not* defined, this will be defined to 0.
++ *
++ * Additionally, this defaults to 0 on GCC 12+, which has an issue with function pointers
++ * that are *sometimes* force inline on -Og, and it is impossible to automatically
++ * detect this optimization level.
++ */
++# define XXH3_INLINE_SECRET 0
++
+ /*!
+ * @def XXH32_ENDJMP
+ * @brief Whether to use a jump for `XXH32_finalize`.
+@@ -1439,6 +1456,15 @@ XXH3_128bits_reset_withSecretandSeed(XXH3_state_t* statePtr,
+ # endif
+ #endif
+
++#ifndef XXH3_INLINE_SECRET
++# if (defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 12) \
++ || !defined(XXH_INLINE_ALL)
++# define XXH3_INLINE_SECRET 0
++# else
++# define XXH3_INLINE_SECRET 1
++# endif
++#endif
++
+ #ifndef XXH32_ENDJMP
+ /* generally preferable for performance */
+ # define XXH32_ENDJMP 0
+@@ -1515,6 +1541,11 @@ static void* XXH_memcpy(void* dest, const void* src, size_t size)
+ # define XXH_NO_INLINE static
+ #endif
+
++#if XXH3_INLINE_SECRET
++# define XXH3_WITH_SECRET_INLINE XXH_FORCE_INLINE
++#else
++# define XXH3_WITH_SECRET_INLINE XXH_NO_INLINE
++#endif
+
+
+ /* *************************************
+@@ -4465,7 +4496,7 @@ XXH3_hashLong_64b_internal(const void* XXH_RESTRICT input, size_t len,
+ * so that the compiler can properly optimize the vectorized loop.
+ * This makes a big performance difference for "medium" keys (<1 KB) when using AVX instruction set.
+ */
+-XXH_FORCE_INLINE XXH64_hash_t
++XXH3_WITH_SECRET_INLINE XXH64_hash_t
+ XXH3_hashLong_64b_withSecret(const void* XXH_RESTRICT input, size_t len,
+ XXH64_hash_t seed64, const xxh_u8* XXH_RESTRICT secret, size_t secretLen)
+ {
+@@ -5263,7 +5294,7 @@ XXH3_hashLong_128b_default(const void* XXH_RESTRICT input, size_t len,
+ * It's important for performance to pass @secretLen (when it's static)
+ * to the compiler, so that it can properly optimize the vectorized loop.
+ */
+-XXH_FORCE_INLINE XXH128_hash_t
++XXH3_WITH_SECRET_INLINE XXH128_hash_t
+ XXH3_hashLong_128b_withSecret(const void* XXH_RESTRICT input, size_t len,
+ XXH64_hash_t seed64,
+ const void* XXH_RESTRICT secret, size_t secretLen)
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/php/php/0005-pear-fix-Makefile.frag-for-Yocto.patch b/meta-oe/recipes-devtools/php/php/0005-pear-fix-Makefile.frag-for-Yocto.patch
index fa956e0284..37752ef949 100644
--- a/meta-oe/recipes-devtools/php/php/0005-pear-fix-Makefile.frag-for-Yocto.patch
+++ b/meta-oe/recipes-devtools/php/php/0005-pear-fix-Makefile.frag-for-Yocto.patch
@@ -8,6 +8,8 @@ Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
update patch to 8.0.12
Signed-off-by: Claude Bing <cbing@cybernetics.com>
---
+Upstream-Status: Pending
+
pear/Makefile.frag | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-devtools/php/php/0009-php-don-t-use-broken-wrapper-for-mkdir.patch b/meta-oe/recipes-devtools/php/php/0009-php-don-t-use-broken-wrapper-for-mkdir.patch
index 57b05e6a77..b5a33cca7f 100644
--- a/meta-oe/recipes-devtools/php/php/0009-php-don-t-use-broken-wrapper-for-mkdir.patch
+++ b/meta-oe/recipes-devtools/php/php/0009-php-don-t-use-broken-wrapper-for-mkdir.patch
@@ -11,6 +11,8 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com>
update patch to version 8.0.12
Signed-off-by: Claude Bing <cbing@cybernetics.com>
---
+Upstream-Status: Pending
+
build/Makefile.global | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-devtools/php/php/php-fpm.service b/meta-oe/recipes-devtools/php/php/php-fpm.service
index eec76fb563..918ffe6749 100644
--- a/meta-oe/recipes-devtools/php/php/php-fpm.service
+++ b/meta-oe/recipes-devtools/php/php/php-fpm.service
@@ -1,10 +1,57 @@
+# It's not recommended to modify this file in-place, because it
+# will be overwritten during upgrades. If you want to customize,
+# the best way is to use the "systemctl edit" command.
+
[Unit]
-Description=PHP-FPM
+Description=The PHP FastCGI Process Manager
After=network.target
+
[Service]
-Type=forking
-PIDFile=/run/php-fpm.pid
-ExecStart=@SYSCONFDIR@/init.d/php-fpm start
-ExecStop=@SYSCONFDIR@/init.d/php-fpm stop
+Type=simple
+PIDFile=@LOCALSTATEDIR@/run/php-fpm.pid
+ExecStart=@SBINDIR@/php-fpm --nodaemonize --fpm-config /etc/php-fpm.conf
+ExecReload=@BINDIR@/kill -USR2 $MAINPID
+
+# Set up a new file system namespace and mounts private /tmp and /var/tmp directories
+# so this service cannot access the global directories and other processes cannot
+# access this service's directories.
+PrivateTmp=true
+
+# Mounts the /usr, /boot, and /etc directories read-only for processes invoked by this unit.
+ProtectSystem=full
+
+# Sets up a new /dev namespace for the executed processes and only adds API pseudo devices
+# such as /dev/null, /dev/zero or /dev/random (as well as the pseudo TTY subsystem) to it,
+# but no physical devices such as /dev/sda.
+PrivateDevices=true
+
+# Explicit module loading will be denied. This allows to turn off module load and unload
+# operations on modular kernels. It is recommended to turn this on for most services that
+# do not need special file systems or extra kernel modules to work.
+ProtectKernelModules=true
+
+# Kernel variables accessible through /proc/sys, /sys, /proc/sysrq-trigger, /proc/latency_stats,
+# /proc/acpi, /proc/timer_stats, /proc/fs and /proc/irq will be made read-only to all processes
+# of the unit. Usually, tunable kernel variables should only be written at boot-time, with the
+# sysctl.d(5) mechanism. Almost no services need to write to these at runtime; it is hence
+# recommended to turn this on for most services.
+ProtectKernelTunables=true
+
+# The Linux Control Groups (cgroups(7)) hierarchies accessible through /sys/fs/cgroup will be
+# made read-only to all processes of the unit. Except for container managers no services should
+# require write access to the control groups hierarchies; it is hence recommended to turn this on
+# for most services
+ProtectControlGroups=true
+
+# Any attempts to enable realtime scheduling in a process of the unit are refused.
+RestrictRealtime=true
+
+# Restricts the set of socket address families accessible to the processes of this unit.
+# Protects against vulnerabilities such as CVE-2016-8655
+RestrictAddressFamilies=AF_INET AF_INET6 AF_NETLINK AF_UNIX
+
+# Takes away the ability to create or manage any kind of namespace
+RestrictNamespaces=true
+
[Install]
WantedBy=multi-user.target
diff --git a/meta-oe/recipes-devtools/php/php_8.1.10.bb b/meta-oe/recipes-devtools/php/php_8.1.10.bb
deleted file mode 100644
index 9fc39e8686..0000000000
--- a/meta-oe/recipes-devtools/php/php_8.1.10.bb
+++ /dev/null
@@ -1,286 +0,0 @@
-SUMMARY = "A server-side, HTML-embedded scripting language"
-HOMEPAGE = "http://www.php.net"
-SECTION = "console/network"
-
-LICENSE = "PHP-3.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=99532e0f6620bc9bca34f12fadaee33c"
-
-BBCLASSEXTEND = "native"
-DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native"
-DEPENDS:append:libc-musl = " libucontext"
-DEPENDS:class-native = "zlib-native libxml2-native"
-
-PHP_MAJOR_VERSION = "${@d.getVar('PV').split('.')[0]}"
-
-SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
- file://0002-build-php.m4-don-t-unset-cache-variables.patch \
- file://0003-php-remove-host-specific-info-from-header-file.patch \
- file://0004-configure.ac-don-t-include-build-libtool.m4.patch \
- file://0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch \
- file://0009-php-don-t-use-broken-wrapper-for-mkdir.patch \
- file://0010-iconv-fix-detection.patch \
- "
-
-SRC_URI:append:class-target = " \
- file://0001-ext-opcache-config.m4-enable-opcache.patch \
- file://0005-pear-fix-Makefile.frag-for-Yocto.patch \
- file://0007-sapi-cli-config.m4-fix-build-directory.patch \
- file://0008-ext-imap-config.m4-fix-include-paths.patch \
- file://php-fpm.conf \
- file://php-fpm-apache.conf \
- file://70_mod_php${PHP_MAJOR_VERSION}.conf \
- file://php-fpm.service \
- "
-
-S = "${WORKDIR}/php-${PV}"
-SRC_URI[sha256sum] = "2de8e0402285f7c56887defe651922308aded58ba60befcf3b77720209e31f10"
-
-CVE_CHECK_IGNORE += "\
- CVE-2007-2728 \
- CVE-2007-3205 \
- CVE-2007-4596 \
-"
-
-inherit autotools pkgconfig python3native gettext
-
-# phpize is not scanned for absolute paths by default (but php-config is).
-#
-SSTATE_SCAN_FILES += "phpize"
-SSTATE_SCAN_FILES += "build-defs.h"
-
-PHP_LIBDIR = "${libdir}/php${PHP_MAJOR_VERSION}"
-
-# Common EXTRA_OECONF
-COMMON_EXTRA_OECONF = "--enable-sockets \
- --enable-pcntl \
- --enable-shared \
- --disable-rpath \
- --with-pic \
- --libdir=${PHP_LIBDIR} \
-"
-EXTRA_OECONF = "--enable-mbstring \
- --enable-fpm \
- --with-libdir=${baselib} \
- --with-gettext=${STAGING_LIBDIR}/.. \
- --with-zlib=${STAGING_LIBDIR}/.. \
- --with-iconv=${STAGING_LIBDIR}/.. \
- --with-bz2=${STAGING_DIR_TARGET}${exec_prefix} \
- --with-config-file-path=${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION} \
- ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'ac_cv_c_bigendian_php=no', 'ac_cv_c_bigendian_php=yes', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'ac_cv_lib_pam_pam_start=no', d)} \
- ${COMMON_EXTRA_OECONF} \
-"
-
-EXTRA_OECONF:append:riscv64 = " --with-pcre-jit=no"
-EXTRA_OECONF:append:riscv32 = " --with-pcre-jit=no"
-# Needs fibers assembly implemented for rv32
-# for example rv64 implementation is below
-# see https://github.com/php/php-src/commit/70b02d75f2abe3a292d49c4a4e9e4f850c2fee68
-EXTRA_OECONF:append:riscv32:libc-musl = " --disable-fiber-asm"
-
-CACHED_CONFIGUREVARS += "ac_cv_func_dlopen=no ac_cv_lib_dl_dlopen=yes"
-
-EXTRA_OECONF:class-native = " \
- --with-zlib=${STAGING_LIBDIR_NATIVE}/.. \
- --without-iconv \
- ${COMMON_EXTRA_OECONF} \
-"
-
-PACKAGECONFIG ??= "mysql sqlite3 imap opcache openssl \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \
-"
-PACKAGECONFIG:class-native = ""
-
-PACKAGECONFIG[zip] = "--with-zip --with-zlib-dir=${STAGING_EXECPREFIXDIR},,libzip"
-
-PACKAGECONFIG[mysql] = "--with-mysqli=mysqlnd \
- --with-pdo-mysql=mysqlnd \
- ,--without-mysqli --without-pdo-mysql \
- ,mysql5"
-
-PACKAGECONFIG[sqlite3] = "--with-sqlite3=${STAGING_LIBDIR}/.. \
- --with-pdo-sqlite=${STAGING_LIBDIR}/.. \
- ,--without-sqlite3 --without-pdo-sqlite \
- ,sqlite3"
-PACKAGECONFIG[pgsql] = "--with-pgsql=${STAGING_DIR_TARGET}${exec_prefix},--without-pgsql,postgresql"
-PACKAGECONFIG[soap] = "--enable-soap, --disable-soap, libxml2"
-PACKAGECONFIG[apache2] = "--with-apxs2=${STAGING_BINDIR_CROSS}/apxs,,apache2-native apache2"
-PACKAGECONFIG[pam] = ",,libpam"
-PACKAGECONFIG[imap] = "--with-imap=${STAGING_DIR_HOST} \
- --with-imap-ssl=${STAGING_DIR_HOST} \
- ,--without-imap --without-imap-ssl \
- ,uw-imap"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-PACKAGECONFIG[opcache] = "--enable-opcache,--disable-opcache"
-PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
-PACKAGECONFIG[valgrind] = "--with-valgrind=${STAGING_DIR_TARGET}/usr,--with-valgrind=no,valgrind"
-PACKAGECONFIG[mbregex] = "--enable-mbregex, --disable-mbregex, oniguruma"
-PACKAGECONFIG[mbstring] = "--enable-mbstring,,"
-
-export HOSTCC = "${BUILD_CC}"
-export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}"
-export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php"
-CFLAGS += " -D_GNU_SOURCE -g -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED -I${STAGING_INCDIR}/apache2"
-
-# Adding these flags enables dynamic library support, which is disabled by
-# default when cross compiling
-# See https://bugs.php.net/bug.php?id=60109
-CFLAGS += " -DHAVE_LIBDL "
-LDFLAGS += " -ldl "
-LDFLAGS:append:libc-musl = " -lucontext "
-
-EXTRA_OEMAKE = "INSTALL_ROOT=${D}"
-
-acpaths = ""
-
-do_configure:prepend () {
- rm -f ${S}/build/libtool.m4 ${S}/ltmain.sh ${S}/aclocal.m4
- find ${S} -name config.m4 | xargs -n1 sed -i 's!APXS_HTTPD=.*!APXS_HTTPD=${STAGING_SBINDIR_NATIVE}/httpd!'
-}
-
-do_configure:append() {
- # No, libtool, we really don't want rpath set...
- sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
- sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
-}
-
-do_install:append:class-native() {
- rm -rf ${D}/${PHP_LIBDIR}/php/.registry
- rm -rf ${D}/${PHP_LIBDIR}/php/.channels
- rm -rf ${D}/${PHP_LIBDIR}/php/.[a-z]*
-}
-
-do_install:prepend() {
- cat ${ACLOCALDIR}/libtool.m4 ${ACLOCALDIR}/lt~obsolete.m4 ${ACLOCALDIR}/ltoptions.m4 \
- ${ACLOCALDIR}/ltsugar.m4 ${ACLOCALDIR}/ltversion.m4 > ${S}/build/libtool.m4
-}
-
-do_install:prepend:class-target() {
- if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', d)}; then
- # Install dummy config file so apxs doesn't fail
- install -d ${D}${sysconfdir}/apache2
- printf "\nLoadModule dummy_module modules/mod_dummy.so\n" > ${D}${sysconfdir}/apache2/httpd.conf
- fi
-}
-
-# fixme
-do_install:append:class-target() {
- install -d ${D}${sysconfdir}/
- rm -rf ${D}/.registry
- rm -rf ${D}/.channels
- rm -rf ${D}/.[a-z]*
- rm -rf ${D}/var
- rm -f ${D}/${sysconfdir}/php-fpm.conf.default
- install -m 0644 ${WORKDIR}/php-fpm.conf ${D}/${sysconfdir}/php-fpm.conf
- install -d ${D}/${sysconfdir}/apache2/conf.d
- install -m 0644 ${WORKDIR}/php-fpm-apache.conf ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
- install -d ${D}${sysconfdir}/init.d
- sed -i 's:=/usr/sbin:=${sbindir}:g' ${B}/sapi/fpm/init.d.php-fpm
- sed -i 's:=/etc:=${sysconfdir}:g' ${B}/sapi/fpm/init.d.php-fpm
- sed -i 's:=/var:=${localstatedir}:g' ${B}/sapi/fpm/init.d.php-fpm
- install -m 0755 ${B}/sapi/fpm/init.d.php-fpm ${D}${sysconfdir}/init.d/php-fpm
- install -m 0644 ${WORKDIR}/php-fpm-apache.conf ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/php-fpm.service ${D}${systemd_unitdir}/system/
- sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- -e 's,@LOCALSTATEDIR@,${localstatedir},g' \
- ${D}${systemd_unitdir}/system/php-fpm.service
- fi
-
- if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/apache2/modules.d
- install -d ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}
- install -m 644 ${WORKDIR}/70_mod_php${PHP_MAJOR_VERSION}.conf ${D}${sysconfdir}/apache2/modules.d
- sed -i s,lib/,${libexecdir}/, ${D}${sysconfdir}/apache2/modules.d/70_mod_php${PHP_MAJOR_VERSION}.conf
- cat ${S}/php.ini-production | \
- sed -e 's,extension_dir = \"\./\",extension_dir = \"/usr/lib/extensions\",' \
- > ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}/php.ini
- rm -f ${D}${sysconfdir}/apache2/httpd.conf*
- fi
-}
-
-SYSROOT_PREPROCESS_FUNCS += "php_sysroot_preprocess"
-
-php_sysroot_preprocess () {
- install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
- install -m 755 ${D}${bindir}/phpize ${SYSROOT_DESTDIR}${bindir_crossscripts}/
- install -m 755 ${D}${bindir}/php-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
-
- sed -i 's!eval echo /!eval echo ${STAGING_DIR_HOST}/!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/phpize
- sed -i 's!^include_dir=.*!include_dir=${STAGING_INCDIR}/php!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/php-config
-}
-
-MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', '${PN}-modphp', '', d)}"
-
-PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-phpdbg ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}-opcache ${PN}"
-
-RDEPENDS:${PN} += "libgcc"
-RDEPENDS:${PN}-pear = "${PN}"
-RDEPENDS:${PN}-phar = "${PN}-cli"
-RDEPENDS:${PN}-cli = "${PN}"
-RDEPENDS:${PN}-modphp = "${PN} apache2"
-RDEPENDS:${PN}-opcache = "${PN}"
-
-ALLOW_EMPTY:${PN} = "1"
-
-INITSCRIPT_PACKAGES = "${PN}-fpm"
-inherit update-rc.d
-
-# WARNING: lib32-php-8.0.12-r0 do_package_qa: QA Issue: lib32-php: ELF binary /usr/libexec/apache2/modules/libphp.so has relocations in .text [textrel]
-#WARNING: lib32-php-8.0.12-r0 do_package_qa: QA Issue: lib32-php-opcache: ELF binary /usr/lib/php8/extensions/no-debug-zts-20200930/opcache.so has relocations in .text [textrel]
-INSANE_SKIP:${PN}:append:x86 = " textrel"
-INSANE_SKIP:${PN}-opcache:append:x86 = " textrel"
-
-FILES:${PN}-dbg =+ "${bindir}/.debug \
- ${libexecdir}/apache2/modules/.debug"
-FILES:${PN}-doc += "${PHP_LIBDIR}/php/doc"
-FILES:${PN}-cli = "${bindir}/php"
-FILES:${PN}-phpdbg = "${bindir}/phpdbg"
-FILES:${PN}-phar = "${bindir}/phar*"
-FILES:${PN}-cgi = "${bindir}/php-cgi"
-FILES:${PN}-fpm = "${sbindir}/php-fpm ${sysconfdir}/php-fpm.conf ${datadir}/fpm ${sysconfdir}/init.d/php-fpm ${systemd_unitdir}/system/php-fpm.service ${sysconfdir}/php-fpm.d/www.conf.default"
-FILES:${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"
-CONFFILES:${PN}-fpm = "${sysconfdir}/php-fpm.conf"
-CONFFILES:${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"
-INITSCRIPT_NAME:${PN}-fpm = "php-fpm"
-INITSCRIPT_PARAMS:${PN}-fpm = "defaults 60"
-FILES:${PN}-pear = "${bindir}/pear* ${bindir}/pecl ${PHP_LIBDIR}/php/PEAR \
- ${PHP_LIBDIR}/php/PEAR*.php ${PHP_LIBDIR}/php/System.php \
- ${PHP_LIBDIR}/php/peclcmd.php ${PHP_LIBDIR}/php/pearcmd.php \
- ${PHP_LIBDIR}/php/.channels ${PHP_LIBDIR}/php/.channels/.alias \
- ${PHP_LIBDIR}/php/.registry ${PHP_LIBDIR}/php/Archive/Tar.php \
- ${PHP_LIBDIR}/php/Console/Getopt.php ${PHP_LIBDIR}/php/OS/Guess.php \
- ${PHP_LIBDIR}/php/data/PEAR \
- ${sysconfdir}/pear.conf"
-FILES:${PN}-dev = "${includedir}/php ${PHP_LIBDIR}/build ${bindir}/phpize \
- ${bindir}/php-config ${PHP_LIBDIR}/php/.depdb \
- ${PHP_LIBDIR}/php/.depdblock ${PHP_LIBDIR}/php/.filemap \
- ${PHP_LIBDIR}/php/.lock ${PHP_LIBDIR}/php/test"
-FILES:${PN}-staticdev += "${PHP_LIBDIR}/extensions/*/*.a"
-FILES:${PN}-opcache = "${PHP_LIBDIR}/extensions/*/opcache${SOLIBSDEV}"
-FILES:${PN} = "${PHP_LIBDIR}/php"
-FILES:${PN} += "${bindir} ${libexecdir}/apache2"
-
-SUMMARY:${PN}-modphp = "PHP module for the Apache HTTP server"
-FILES:${PN}-modphp = "${libdir}/apache2 ${sysconfdir}"
-
-MODPHP_OLDPACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'modphp', '', d)}"
-RPROVIDES:${PN}-modphp = "${MODPHP_OLDPACKAGE}"
-RREPLACES:${PN}-modphp = "${MODPHP_OLDPACKAGE}"
-RCONFLICTS:${PN}-modphp = "${MODPHP_OLDPACKAGE}"
-
-do_install:append:class-native() {
- create_wrapper ${D}${bindir}/php \
- PHP_PEAR_SYSCONF_DIR=${sysconfdir}/
-}
-
-# Fails to build with thumb-1 (qemuarm)
-# | {standard input}: Assembler messages:
-# | {standard input}:3719: Error: selected processor does not support Thumb mode `smull r0,r2,r9,r3'
-# | {standard input}:3720: Error: unshifted register required -- `sub r2,r2,r0,asr#31'
-# | {standard input}:3796: Error: selected processor does not support Thumb mode `smull r0,r2,r3,r3'
-# | {standard input}:3797: Error: unshifted register required -- `sub r2,r2,r0,asr#31'
-# | make: *** [ext/standard/math.lo] Error 1
-ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-oe/recipes-devtools/php/php_8.2.16.bb b/meta-oe/recipes-devtools/php/php_8.2.16.bb
new file mode 100644
index 0000000000..1cb378fb94
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php_8.2.16.bb
@@ -0,0 +1,299 @@
+SUMMARY = "A server-side, HTML-embedded scripting language"
+HOMEPAGE = "http://www.php.net"
+SECTION = "console/network"
+
+LICENSE = "PHP-3.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fd469cce1a919f0cc95bab7afb28d19d"
+
+BBCLASSEXTEND = "native"
+DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native"
+DEPENDS:append:libc-musl = " libucontext"
+DEPENDS:class-native = "zlib-native libxml2-native"
+
+PHP_MAJOR_VERSION = "${@d.getVar('PV').split('.')[0]}"
+
+SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
+ file://0002-build-php.m4-don-t-unset-cache-variables.patch \
+ file://0003-php-remove-host-specific-info-from-header-file.patch \
+ file://0004-configure.ac-don-t-include-build-libtool.m4.patch \
+ file://0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch \
+ file://0009-php-don-t-use-broken-wrapper-for-mkdir.patch \
+ file://0010-iconv-fix-detection.patch \
+ file://0001-Change-whether-to-inline-XXH3_hashLong_withSecret-to.patch \
+ "
+
+SRC_URI:append:class-target = " \
+ file://0001-ext-opcache-config.m4-enable-opcache.patch \
+ file://0005-pear-fix-Makefile.frag-for-Yocto.patch \
+ file://0007-sapi-cli-config.m4-fix-build-directory.patch \
+ file://0008-ext-imap-config.m4-fix-include-paths.patch \
+ file://php-fpm.conf \
+ file://php-fpm-apache.conf \
+ file://70_mod_php${PHP_MAJOR_VERSION}.conf \
+ file://php-fpm.service \
+ "
+
+S = "${WORKDIR}/php-${PV}"
+SRC_URI[sha256sum] = "2658c1b8935ab6b53a7f209354602761ab07066e66920bc472b8815fd1b43f71"
+
+CVE_STATUS_GROUPS += "CVE_STATUS_PHP"
+CVE_STATUS_PHP[status] = "fixed-version: The name of this product is exactly the same as github.com/emlog/emlog. CVE can be safely ignored."
+CVE_STATUS_PHP = " \
+ CVE-2007-2728 \
+ CVE-2007-3205 \
+ CVE-2007-4596 \
+"
+
+inherit autotools pkgconfig python3native gettext multilib_header multilib_script systemd
+
+# phpize is not scanned for absolute paths by default (but php-config is).
+#
+SSTATE_SCAN_FILES += "phpize"
+SSTATE_SCAN_FILES += "build-defs.h"
+
+PHP_LIBDIR = "${libdir}/php${PHP_MAJOR_VERSION}"
+
+# Common EXTRA_OECONF
+COMMON_EXTRA_OECONF = "--enable-sockets \
+ --enable-pcntl \
+ --enable-shared \
+ --disable-rpath \
+ --with-pic \
+ --libdir=${PHP_LIBDIR} \
+"
+EXTRA_OECONF = "--enable-mbstring \
+ --enable-fpm \
+ --with-libdir=${baselib} \
+ --with-gettext=${STAGING_LIBDIR}/.. \
+ --with-zlib=${STAGING_LIBDIR}/.. \
+ --with-iconv=${STAGING_LIBDIR}/.. \
+ --with-bz2=${STAGING_DIR_TARGET}${exec_prefix} \
+ --with-config-file-path=${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION} \
+ ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'ac_cv_c_bigendian_php=no', 'ac_cv_c_bigendian_php=yes', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'ac_cv_lib_pam_pam_start=no', d)} \
+ ${COMMON_EXTRA_OECONF} \
+"
+
+EXTRA_OECONF:append:riscv64 = " --with-pcre-jit=no"
+EXTRA_OECONF:append:riscv32 = " --with-pcre-jit=no"
+# Needs fibers assembly implemented for rv32
+# for example rv64 implementation is below
+# see https://github.com/php/php-src/commit/70b02d75f2abe3a292d49c4a4e9e4f850c2fee68
+EXTRA_OECONF:append:riscv32:libc-musl = " --disable-fiber-asm"
+
+CACHED_CONFIGUREVARS += "ac_cv_func_dlopen=no ac_cv_lib_dl_dlopen=yes"
+
+EXTRA_OECONF:class-native = " \
+ --with-zlib=${STAGING_LIBDIR_NATIVE}/.. \
+ --without-iconv \
+ ${COMMON_EXTRA_OECONF} \
+"
+
+PACKAGECONFIG ??= "mysql sqlite3 imap opcache openssl \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \
+"
+PACKAGECONFIG:class-native = ""
+
+PACKAGECONFIG[zip] = "--with-zip --with-zlib-dir=${STAGING_EXECPREFIXDIR},,libzip"
+
+PACKAGECONFIG[mysql] = "--with-mysqli=mysqlnd \
+ --with-pdo-mysql=mysqlnd \
+ ,--without-mysqli --without-pdo-mysql \
+ ,mysql5"
+
+PACKAGECONFIG[sqlite3] = "--with-sqlite3=${STAGING_LIBDIR}/.. \
+ --with-pdo-sqlite=${STAGING_LIBDIR}/.. \
+ ,--without-sqlite3 --without-pdo-sqlite \
+ ,sqlite3"
+PACKAGECONFIG[pgsql] = "--with-pgsql=${STAGING_DIR_TARGET}${exec_prefix},--without-pgsql,postgresql"
+PACKAGECONFIG[soap] = "--enable-soap, --disable-soap, libxml2"
+PACKAGECONFIG[apache2] = "--with-apxs2=${STAGING_BINDIR_CROSS}/apxs,,apache2-native apache2"
+PACKAGECONFIG[pam] = ",,libpam"
+PACKAGECONFIG[imap] = "--with-imap=${STAGING_DIR_HOST} \
+ --with-imap-ssl=${STAGING_DIR_HOST} \
+ ,--without-imap --without-imap-ssl \
+ ,uw-imap"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[opcache] = "--enable-opcache,--disable-opcache"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
+PACKAGECONFIG[valgrind] = "--with-valgrind=${STAGING_DIR_TARGET}/usr,--with-valgrind=no,valgrind"
+PACKAGECONFIG[mbregex] = "--enable-mbregex, --disable-mbregex, oniguruma"
+PACKAGECONFIG[mbstring] = "--enable-mbstring,,"
+
+export HOSTCC = "${BUILD_CC}"
+export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}"
+export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php"
+CFLAGS += " -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -g -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED -I${STAGING_INCDIR}/apache2"
+
+# Adding these flags enables dynamic library support, which is disabled by
+# default when cross compiling
+# See https://bugs.php.net/bug.php?id=60109
+CFLAGS += " -DHAVE_LIBDL "
+LDFLAGS += " -ldl "
+LDFLAGS:append:libc-musl = " -lucontext "
+LDFLAGS:append:riscv64 = " -latomic"
+
+EXTRA_OEMAKE = "INSTALL_ROOT=${D}"
+
+acpaths = ""
+
+do_configure:prepend () {
+ rm -f ${S}/build/libtool.m4 ${S}/ltmain.sh ${S}/aclocal.m4
+ find ${S} -name config.m4 | xargs -n1 sed -i 's!APXS_HTTPD=.*!APXS_HTTPD=${STAGING_SBINDIR_NATIVE}/httpd!'
+}
+
+do_configure:append() {
+ # No, libtool, we really don't want rpath set...
+ sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+ sed -i -e's@${RECIPE_SYSROOT}@@g' \
+ -e's@-ffile-prefix-map=[^ ]*[ ]*@@g' \
+ -e's@-fdebug-prefix-map=[^ ]*[ ]*@@g' \
+ -e's@-ffile-prefix-map=[^ ]*[ ]*@@g' \
+ -e's@-fmacro-prefix-map=[^ ]*[ ]*@@g' \
+ ${B}/main/build-defs.h \
+ ${B}/scripts/php-config
+}
+
+do_install:append:class-native() {
+ rm -rf ${D}/${PHP_LIBDIR}/php/.registry
+ rm -rf ${D}/${PHP_LIBDIR}/php/.channels
+ rm -rf ${D}/${PHP_LIBDIR}/php/.[a-z]*
+}
+
+do_install:prepend() {
+ cat ${ACLOCALDIR}/libtool.m4 ${ACLOCALDIR}/lt~obsolete.m4 ${ACLOCALDIR}/ltoptions.m4 \
+ ${ACLOCALDIR}/ltsugar.m4 ${ACLOCALDIR}/ltversion.m4 > ${S}/build/libtool.m4
+}
+
+do_install:prepend:class-target() {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', d)}; then
+ # Install dummy config file so apxs doesn't fail
+ install -d ${D}${sysconfdir}/apache2
+ printf "\nLoadModule dummy_module modules/mod_dummy.so\n" > ${D}${sysconfdir}/apache2/httpd.conf
+ fi
+}
+
+# fixme
+do_install:append:class-target() {
+ install -d ${D}${sysconfdir}/
+ rm -rf ${D}/.registry
+ rm -rf ${D}/.channels
+ rm -rf ${D}/.[a-z]*
+ rm -rf ${D}/var
+ rm -f ${D}/${sysconfdir}/php-fpm.conf.default
+ install -m 0644 ${WORKDIR}/php-fpm.conf ${D}/${sysconfdir}/php-fpm.conf
+ install -d ${D}/${sysconfdir}/apache2/conf.d
+ install -m 0644 ${WORKDIR}/php-fpm-apache.conf ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
+ install -d ${D}${sysconfdir}/init.d
+ sed -i 's:=/usr/sbin:=${sbindir}:g' ${B}/sapi/fpm/init.d.php-fpm
+ sed -i 's:=/etc:=${sysconfdir}:g' ${B}/sapi/fpm/init.d.php-fpm
+ sed -i 's:=/var:=${localstatedir}:g' ${B}/sapi/fpm/init.d.php-fpm
+ install -m 0755 ${B}/sapi/fpm/init.d.php-fpm ${D}${sysconfdir}/init.d/php-fpm
+ install -m 0644 ${WORKDIR}/php-fpm-apache.conf ${D}/${sysconfdir}/apache2/conf.d/php-fpm.conf
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/php-fpm.service ${D}${systemd_system_unitdir}/php-fpm.service
+ sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_system_unitdir}/php-fpm.service
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_system_unitdir}/php-fpm.service
+ sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_system_unitdir}/php-fpm.service
+ fi
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/apache2/modules.d
+ install -d ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}
+ install -m 644 ${WORKDIR}/70_mod_php${PHP_MAJOR_VERSION}.conf ${D}${sysconfdir}/apache2/modules.d
+ sed -i s,lib/,${libexecdir}/, ${D}${sysconfdir}/apache2/modules.d/70_mod_php${PHP_MAJOR_VERSION}.conf
+ cat ${S}/php.ini-production | \
+ sed -e 's,extension_dir = \"\./\",extension_dir = \"/usr/lib/extensions\",' \
+ > ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}/php.ini
+ rm -f ${D}${sysconfdir}/apache2/httpd.conf*
+ fi
+}
+
+MULTILIB_SCRIPTS += "${PN}:${bindir}/php-config \
+ ${PN}:${bindir}/phpize \
+"
+
+do_install:append () {
+ oe_multilib_header php/main/build-defs.h php/main/php_config.h
+}
+
+SYSROOT_PREPROCESS_FUNCS += "php_sysroot_preprocess"
+
+php_sysroot_preprocess () {
+ install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ install -m 755 ${D}${bindir}/phpize ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ install -m 755 ${D}${bindir}/php-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+
+ sed -i 's!eval echo /!eval echo ${STAGING_DIR_HOST}/!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/phpize
+ sed -i 's!^include_dir=.*!include_dir=${STAGING_INCDIR}/php!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/php-config
+}
+
+MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', '${PN}-modphp', '', d)}"
+
+PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-phpdbg ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}-opcache ${PN}"
+
+RDEPENDS:${PN} += "libgcc"
+RDEPENDS:${PN}-pear = "${PN}"
+RDEPENDS:${PN}-phar = "${PN}-cli"
+RDEPENDS:${PN}-cli = "${PN}"
+RDEPENDS:${PN}-modphp = "${PN} apache2"
+RDEPENDS:${PN}-opcache = "${PN}"
+
+ALLOW_EMPTY:${PN} = "1"
+
+INITSCRIPT_PACKAGES = "${PN}-fpm"
+inherit update-rc.d
+
+# WARNING: lib32-php-8.0.12-r0 do_package_qa: QA Issue: lib32-php: ELF binary /usr/libexec/apache2/modules/libphp.so has relocations in .text [textrel]
+#WARNING: lib32-php-8.0.12-r0 do_package_qa: QA Issue: lib32-php-opcache: ELF binary /usr/lib/php8/extensions/no-debug-zts-20200930/opcache.so has relocations in .text [textrel]
+INSANE_SKIP:${PN}:append:x86 = " textrel"
+INSANE_SKIP:${PN}-opcache:append:x86 = " textrel"
+
+FILES:${PN}-dbg =+ "${bindir}/.debug \
+ ${libexecdir}/apache2/modules/.debug"
+FILES:${PN}-doc += "${PHP_LIBDIR}/php/doc"
+FILES:${PN}-cli = "${bindir}/php"
+FILES:${PN}-phpdbg = "${bindir}/phpdbg"
+FILES:${PN}-phar = "${bindir}/phar*"
+FILES:${PN}-cgi = "${bindir}/php-cgi"
+FILES:${PN}-fpm = "${sbindir}/php-fpm ${sysconfdir}/php-fpm.conf ${datadir}/fpm ${sysconfdir}/init.d/php-fpm ${sysconfdir}/php-fpm.d/www.conf.default"
+FILES:${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"
+CONFFILES:${PN}-fpm = "${sysconfdir}/php-fpm.conf"
+CONFFILES:${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"
+INITSCRIPT_NAME:${PN}-fpm = "php-fpm"
+INITSCRIPT_PARAMS:${PN}-fpm = "defaults 60"
+FILES:${PN}-pear = "${bindir}/pear* ${bindir}/pecl ${PHP_LIBDIR}/php/PEAR \
+ ${PHP_LIBDIR}/php/PEAR*.php ${PHP_LIBDIR}/php/System.php \
+ ${PHP_LIBDIR}/php/peclcmd.php ${PHP_LIBDIR}/php/pearcmd.php \
+ ${PHP_LIBDIR}/php/.channels ${PHP_LIBDIR}/php/.channels/.alias \
+ ${PHP_LIBDIR}/php/.registry ${PHP_LIBDIR}/php/Archive/Tar.php \
+ ${PHP_LIBDIR}/php/Console/Getopt.php ${PHP_LIBDIR}/php/OS/Guess.php \
+ ${PHP_LIBDIR}/php/data/PEAR \
+ ${sysconfdir}/pear.conf"
+FILES:${PN}-dev = "${includedir}/php ${PHP_LIBDIR}/build ${bindir}/phpize \
+ ${bindir}/php-config ${PHP_LIBDIR}/php/.depdb \
+ ${PHP_LIBDIR}/php/.depdblock ${PHP_LIBDIR}/php/.filemap \
+ ${PHP_LIBDIR}/php/.lock ${PHP_LIBDIR}/php/test"
+FILES:${PN}-staticdev += "${PHP_LIBDIR}/extensions/*/*.a"
+FILES:${PN}-opcache = "${PHP_LIBDIR}/extensions/*/opcache${SOLIBSDEV}"
+FILES:${PN} = "${PHP_LIBDIR}/php"
+FILES:${PN} += "${bindir} ${libexecdir}/apache2"
+
+SUMMARY:${PN}-modphp = "PHP module for the Apache HTTP server"
+FILES:${PN}-modphp = "${libdir}/apache2 ${sysconfdir}"
+
+MODPHP_OLDPACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'modphp', '', d)}"
+RPROVIDES:${PN}-modphp = "${MODPHP_OLDPACKAGE}"
+RREPLACES:${PN}-modphp = "${MODPHP_OLDPACKAGE}"
+RCONFLICTS:${PN}-modphp = "${MODPHP_OLDPACKAGE}"
+
+SYSTEMD_SERVICE:${PN}-fpm = "php-fpm.service"
+SYSTEMD_PACKAGES += "${PN}-fpm"
+
+do_install:append:class-native() {
+ create_wrapper ${D}${bindir}/php \
+ PHP_PEAR_SYSCONF_DIR=${sysconfdir}/
+}
diff --git a/meta-oe/recipes-devtools/ply/ply_git.bb b/meta-oe/recipes-devtools/ply/ply_git.bb
index 84a79c13e2..7793971083 100644
--- a/meta-oe/recipes-devtools/ply/ply_git.bb
+++ b/meta-oe/recipes-devtools/ply/ply_git.bb
@@ -5,13 +5,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS += "bison-native"
-PV = "2.2.0"
+PV = "2.3.0"
SRC_URI = "git://github.com/iovisor/ply;branch=master;protocol=https"
-SRCREV = "771c32b299355fb31fc296110e90ae0166409b95"
+SRCREV = "864fac79116870df1ab7aa21e639578807e41e75"
S = "${WORKDIR}/git"
+CACHED_CONFIGUREVARS = 'LD="${HOST_PREFIX}ld.bfd${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}"'
+
inherit autotools-brokensep
COMPATIBLE_HOST = "(x86_64.*|aarch64.*|arm.*|powerpc)-linux"
diff --git a/meta-oe/recipes-devtools/pmtools/pmtools_git.bb b/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
index 56d895a099..ad149de12c 100644
--- a/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
+++ b/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://lesswatts.org/projects/acpi"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-PV = "20130209+git${SRCPV}"
+PV = "20130209+git"
SRC_URI = "git://github.com/anyc/pmtools.git;branch=master;protocol=https \
file://pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch \
diff --git a/meta-oe/recipes-devtools/poke/poke/0001-build-do-not-check-for-Tcl-Tk-if-disable-gui-is-spec.patch b/meta-oe/recipes-devtools/poke/poke/0001-build-do-not-check-for-Tcl-Tk-if-disable-gui-is-spec.patch
index 3bd041a0e7..a41f985eb8 100644
--- a/meta-oe/recipes-devtools/poke/poke/0001-build-do-not-check-for-Tcl-Tk-if-disable-gui-is-spec.patch
+++ b/meta-oe/recipes-devtools/poke/poke/0001-build-do-not-check-for-Tcl-Tk-if-disable-gui-is-spec.patch
@@ -12,6 +12,8 @@ Subject: [PATCH] build: do not check for Tcl/Tk if --disable-gui is specified
[Romain: remove Changelog entry]
Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/meta-oe/recipes-devtools/poke/poke/0002-jitter-jitter-config.in-avoit-host-poisoning-while-c.patch b/meta-oe/recipes-devtools/poke/poke/0002-jitter-jitter-config.in-avoit-host-poisoning-while-c.patch
index fa55f817ff..660b19f514 100644
--- a/meta-oe/recipes-devtools/poke/poke/0002-jitter-jitter-config.in-avoit-host-poisoning-while-c.patch
+++ b/meta-oe/recipes-devtools/poke/poke/0002-jitter-jitter-config.in-avoit-host-poisoning-while-c.patch
@@ -20,6 +20,8 @@ for @-substitutions.
Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
+Upstream-Status: Pending
+
jitter/bin/jitter-config.in | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/meta-oe/recipes-devtools/poke/poke/0003-configure.ac-HELP2MAN-replace-by-true-when-cross-com.patch b/meta-oe/recipes-devtools/poke/poke/0003-configure.ac-HELP2MAN-replace-by-true-when-cross-com.patch
index f217c917f1..ad2bf764d3 100644
--- a/meta-oe/recipes-devtools/poke/poke/0003-configure.ac-HELP2MAN-replace-by-true-when-cross-com.patch
+++ b/meta-oe/recipes-devtools/poke/poke/0003-configure.ac-HELP2MAN-replace-by-true-when-cross-com.patch
@@ -13,6 +13,8 @@ Avoid:
Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch b/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch
new file mode 100644
index 0000000000..896a568e19
--- /dev/null
+++ b/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch
@@ -0,0 +1,106 @@
+From 62b2fd0a150133b6439f6537cb1762d35f5790ee Mon Sep 17 00:00:00 2001
+From: Xiangyu Chen <xiangyu.chen@windriver.com>
+Date: Fri, 31 Mar 2023 16:02:50 +0800
+Subject: [PATCH] Makefile.am: do not compile the code which was generated from
+ test-full.proto in protobuf-c-native
+
+Those code was auto generated by protoc command with test-full.proto, those code are not compatible
+with protobuf 4.22.x, so temporarily disable compile those code until protobuf-c upstream adapt
+the test-full.proto with latest version protobuf.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ Makefile.am | 75 -----------------------------------------------------
+ 1 file changed, 75 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index ff12664..7412aef 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -136,81 +136,6 @@ else
+
+ LOG_COMPILER = $(VALGRIND)
+
+-check_PROGRAMS += \
+- t/generated-code/test-generated-code \
+- t/generated-code2/test-generated-code2 \
+- t/generated-code3/test-generated-code3 \
+- t/version/version
+-
+-TESTS += \
+- t/generated-code/test-generated-code \
+- t/generated-code2/test-generated-code2 \
+- t/generated-code3/test-generated-code3 \
+- t/version/version
+-
+-t_generated_code_test_generated_code_SOURCES = \
+- t/generated-code/test-generated-code.c \
+- t/test.pb-c.c
+-t_generated_code_test_generated_code_LDADD = \
+- protobuf-c/libprotobuf-c.la
+-
+-t_generated_code2_test_generated_code2_SOURCES = \
+- t/generated-code2/test-generated-code2.c \
+- t/test-full.pb-c.c \
+- t/test-optimized.pb-c.c
+-t_generated_code2_test_generated_code2_LDADD = \
+- protobuf-c/libprotobuf-c.la
+-
+-t_generated_code3_test_generated_code3_CPPFLAGS = \
+- -DPROTO3
+-
+-t_generated_code3_test_generated_code3_SOURCES = \
+- t/generated-code/test-generated-code.c \
+- t/test-proto3.pb-c.c
+-
+-t_generated_code3_test_generated_code3_LDADD = \
+- protobuf-c/libprotobuf-c.la
+-
+-noinst_PROGRAMS += \
+- t/generated-code2/cxx-generate-packed-data
+-
+-t_generated_code2_cxx_generate_packed_data_SOURCES = \
+- t/generated-code2/cxx-generate-packed-data.cc \
+- t/test-full.pb.cc \
+- protobuf-c/protobuf-c.pb.cc
+-$(t_generated_code2_cxx_generate_packed_data_OBJECTS): t/test-full.pb.h
+-t_generated_code2_cxx_generate_packed_data_CXXFLAGS = \
+- $(AM_CXXFLAGS) \
+- $(protobuf_CFLAGS)
+-t_generated_code2_cxx_generate_packed_data_LDADD = \
+- $(protobuf_LIBS)
+-
+-t/test.pb-c.c t/test.pb-c.h: $(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) $(top_srcdir)/t/test.proto
+- $(AM_V_GEN)@PROTOC@ --plugin=protoc-gen-c=$(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) -I$(top_srcdir) --c_out=$(top_builddir) $(top_srcdir)/t/test.proto
+-
+-t/test-optimized.pb-c.c t/test-optimized.pb-c.h: $(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) $(top_srcdir)/t/test-optimized.proto
+- $(AM_V_GEN)@PROTOC@ --plugin=protoc-gen-c=$(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) -I$(top_srcdir) --c_out=$(top_builddir) $(top_srcdir)/t/test-optimized.proto
+-
+-t/test-full.pb-c.c t/test-full.pb-c.h: $(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) $(top_srcdir)/t/test-full.proto
+- $(AM_V_GEN)@PROTOC@ --plugin=protoc-gen-c=$(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) -I$(top_srcdir) --c_out=$(top_builddir) $(top_srcdir)/t/test-full.proto
+-
+-t/test-full.pb.cc t/test-full.pb.h: @PROTOC@ $(top_srcdir)/t/test-full.proto
+- $(AM_V_GEN)@PROTOC@ -I$(top_srcdir) --cpp_out=$(top_builddir) $(top_srcdir)/t/test-full.proto
+-
+-t/test-proto3.pb-c.c t/test-proto3.pb-c.h: $(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) $(top_srcdir)/t/test-proto3.proto
+- $(AM_V_GEN)@PROTOC@ --plugin=protoc-gen-c=$(top_builddir)/protoc-c/protoc-gen-c$(EXEEXT) -I$(top_srcdir) --c_out=$(top_builddir) $(top_srcdir)/t/test-proto3.proto
+-
+-t/generated-code2/test-full-cxx-output.inc: t/generated-code2/cxx-generate-packed-data$(EXEEXT)
+- $(AM_V_GEN)$(top_builddir)/t/generated-code2/cxx-generate-packed-data$(EXEEXT) > $(top_builddir)/t/generated-code2/test-full-cxx-output.inc
+-
+-BUILT_SOURCES += \
+- t/test.pb-c.c t/test.pb-c.h \
+- t/test-full.pb-c.c t/test-full.pb-c.h \
+- t/test-optimized.pb-c.c t/test-optimized.pb-c.h \
+- t/test-full.pb.cc t/test-full.pb.h \
+- t/test-proto3.pb-c.c t/test-proto3.pb-c.h \
+- t/generated-code2/test-full-cxx-output.inc
+-
+ t_version_version_SOURCES = \
+ t/version/version.c
+ t_version_version_LDADD = \
+--
+2.34.1
+
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb
deleted file mode 100644
index d724287d66..0000000000
--- a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
-DESCRIPTION = "This is protobuf-c, a C implementation of the Google Protocol Buffers data \
-serialization format. It includes libprotobuf-c, a pure C library that \
-implements protobuf encoding and decoding, and protoc-c, a code generator that \
-converts Protocol Buffer .proto files to C descriptor code, based on the \
-original protoc. protobuf-c formerly included an RPC implementation; that code \
-has been split out into the protobuf-c-rpc project."
-HOMEPAGE = "https://github.com/protobuf-c/protobuf-c"
-SECTION = "console/tools"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9f725889e0d77383e26cb42b0b62cea2"
-
-DEPENDS = "protobuf-native protobuf"
-
-SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https"
-SRCREV = "abc67a11c6db271bedbb9f58be85d6f4e2ea8389"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-export PROTOC = "${STAGING_BINDIR_NATIVE}/protoc"
-
-# After several fix attempts there is still a race between generating
-# t.test-full.pb.h and compiling cxx_generate_packed_data.c despite
-# BUILT_SOURCES and explicit dependencies.
-PARALLEL_MAKE = ""
-
-PACKAGE_BEFORE_PN = "${PN}-compiler"
-
-FILES:${PN}-compiler = "${bindir}"
-
-RDEPENDS:${PN}-compiler = "protobuf-compiler"
-RDEPENDS:${PN}-dev += "${PN}-compiler"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.0.bb b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.0.bb
new file mode 100644
index 0000000000..24de6b8119
--- /dev/null
+++ b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.5.0.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
+DESCRIPTION = "This is protobuf-c, a C implementation of the Google Protocol Buffers data \
+serialization format. It includes libprotobuf-c, a pure C library that \
+implements protobuf encoding and decoding, and protoc-c, a code generator that \
+converts Protocol Buffer .proto files to C descriptor code, based on the \
+original protoc. protobuf-c formerly included an RPC implementation; that code \
+has been split out into the protobuf-c-rpc project."
+HOMEPAGE = "https://github.com/protobuf-c/protobuf-c"
+SECTION = "console/tools"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d11077c6a2b5d2e64b9f32b61a9b78ba"
+
+DEPENDS = "protobuf-native protobuf"
+
+SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https"
+SRC_URI:append:class-native = " file://0001-Makefile.am-do-not-compile-the-code-which-was-genera.patch"
+
+SRCREV = "8c201f6e47a53feaab773922a743091eb6c8972a"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+export PROTOC = "${STAGING_BINDIR_NATIVE}/protoc"
+
+# After several fix attempts there is still a race between generating
+# t.test-full.pb.h and compiling cxx_generate_packed_data.c despite
+# BUILT_SOURCES and explicit dependencies.
+PARALLEL_MAKE = ""
+
+PACKAGE_BEFORE_PN = "${PN}-compiler"
+
+FILES:${PN}-compiler = "${bindir}"
+
+RDEPENDS:${PN}-compiler = "protobuf-compiler"
+RDEPENDS:${PN}-dev += "${PN}-compiler"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-linking-error-with-ld-gold.patch b/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-linking-error-with-ld-gold.patch
deleted file mode 100644
index 2bcb138731..0000000000
--- a/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-linking-error-with-ld-gold.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From a91130bb95528743a3f7253f8fe945b7505047d5 Mon Sep 17 00:00:00 2001
-From: Kyungjik Min <dp.min@lge.com>
-Date: Mon, 28 Dec 2020 15:56:09 +0900
-Subject: [PATCH] Fix linking error with ld-gold
-
-:Release Notes:
-
-:Detailed Notes:
-https://github.com/protocolbuffers/protobuf/issues/6113
-There's a bug in the CMake build leading it to not use the version
-scripts, which hides the problem (because all symbols are now public)
-but doesn't solve it properly.
-
-:Testing Performed:
-
-:QA Notes:
-N/A
-
-:Issues Addressed:
-[PLAT-130467] Fix build error for libgoogleassistant with latest
- protobuf-3.11.4
-
----
- src/libprotobuf-lite.map | 2 ++
- src/libprotobuf.map | 2 ++
- src/libprotoc.map | 2 ++
- 3 files changed, 6 insertions(+)
-
-diff --git a/src/libprotobuf-lite.map b/src/libprotobuf-lite.map
-index 391554669..a1853ca6c 100644
---- a/src/libprotobuf-lite.map
-+++ b/src/libprotobuf-lite.map
-@@ -3,6 +3,8 @@
- extern "C++" {
- *google*;
- };
-+ scc_info_*;
-+ descriptor_table_*;
-
- local:
- *;
-diff --git a/src/libprotobuf.map b/src/libprotobuf.map
-index 391554669..a1853ca6c 100644
---- a/src/libprotobuf.map
-+++ b/src/libprotobuf.map
-@@ -3,6 +3,8 @@
- extern "C++" {
- *google*;
- };
-+ scc_info_*;
-+ descriptor_table_*;
-
- local:
- *;
-diff --git a/src/libprotoc.map b/src/libprotoc.map
-index 391554669..a1853ca6c 100644
---- a/src/libprotoc.map
-+++ b/src/libprotoc.map
-@@ -3,6 +3,8 @@
- extern "C++" {
- *google*;
- };
-+ scc_info_*;
-+ descriptor_table_*;
-
- local:
- *;
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch b/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch
index 36c3c597ac..7c4bf260eb 100644
--- a/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch
+++ b/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch
@@ -30,7 +30,7 @@ Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/examples/Makefile b/examples/Makefile
-index 1c7ec8d63..85f591231 100644
+index ef7a4ef58..7206e14e1 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -2,6 +2,8 @@
@@ -42,17 +42,20 @@ index 1c7ec8d63..85f591231 100644
all: cpp java python
cpp: add_person_cpp list_people_cpp
-@@ -40,11 +42,11 @@ protoc_middleman_dart: addressbook.proto
+@@ -41,11 +43,11 @@ protoc_middleman_dart: addressbook.proto
add_person_cpp: add_person.cc protoc_middleman
pkg-config --cflags protobuf # fails if protobuf is not installed
-- c++ -std=c++11 add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf`
-+ $(CXX) $(CXXFLAGS) $(LDFLAGS) ../src/google/protobuf/.libs/timestamp.pb.o $(PROTOBUF) add_person.cc addressbook.pb.cc -o add_person_cpp
+- c++ -std=c++14 add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf`
++ $(CXX) $(CXXFLAGS) $(LDFLAGS) ../src/google/protobuf/.libs/timestamp.pb.o $(PROTOBUF) add_person.cc addressbook.pb.cc -o add_person_cpp #$(CXX) -std=c++17 $(PROTOBUF) add_person.cc addressbook.pb.cc -o add_person_cpp
list_people_cpp: list_people.cc protoc_middleman
pkg-config --cflags protobuf # fails if protobuf is not installed
-- c++ -std=c++11 list_people.cc addressbook.pb.cc -o list_people_cpp `pkg-config --cflags --libs protobuf`
-+ $(CXX) $(CXXFLAGS) $(LDFLAGS) ../src/google/protobuf/.libs/timestamp.pb.o $(PROTOBUF) list_people.cc addressbook.pb.cc -o list_people_cpp
+- c++ -std=c++14 list_people.cc addressbook.pb.cc -o list_people_cpp `pkg-config --cflags --libs protobuf`
++ $(CXX) $(CXXFLAGS) $(LDFLAGS) ../src/google/protobuf/.libs/timestamp.pb.o $(PROTOBUF) list_people.cc addressbook.pb.cc -o list_people_cpp #$(CXX) -std=c++17 $(PROTOBUF) list_people.cc addressbook.pb.cc -o list_people_cpp
add_person_dart: add_person.dart protoc_middleman_dart
+--
+2.34.1
+
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf_3.21.5.bb b/meta-oe/recipes-devtools/protobuf/protobuf_3.21.5.bb
deleted file mode 100644
index 0bc9cbedc0..0000000000
--- a/meta-oe/recipes-devtools/protobuf/protobuf_3.21.5.bb
+++ /dev/null
@@ -1,105 +0,0 @@
-SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
-DESCRIPTION = "Protocol Buffers are a way of encoding structured data in an \
-efficient yet extensible format. Google uses Protocol Buffers for almost \
-all of its internal RPC protocols and file formats."
-HOMEPAGE = "https://github.com/google/protobuf"
-SECTION = "console/tools"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b"
-
-DEPENDS = "zlib"
-DEPENDS:append:class-target = " protobuf-native"
-
-SRCREV = "ab840345966d0fa8e7100d771c92a73bfbadd25c"
-
-SRC_URI = "git://github.com/protocolbuffers/protobuf.git;branch=21.x;protocol=https \
- file://run-ptest \
- file://0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch \
- file://0001-Fix-linking-error-with-ld-gold.patch \
- "
-SRC_URI:append:mips:toolchain-clang = " file://0001-Fix-build-on-mips-clang.patch "
-SRC_URI:append:mipsel:toolchain-clang = " file://0001-Fix-build-on-mips-clang.patch "
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig ptest
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG:class-native ?= "compiler"
-PACKAGECONFIG[python] = ",,"
-PACKAGECONFIG[compiler] = "-Dprotobuf_BUILD_PROTOC_BINARIES=ON,-Dprotobuf_BUILD_PROTOC_BINARIES=OFF"
-
-EXTRA_OECMAKE += "\
- -Dprotobuf_BUILD_SHARED_LIBS=ON \
- -Dprotobuf_BUILD_LIBPROTOC=ON \
- -Dprotobuf_BUILD_TESTS=OFF \
- -Dprotobuf_BUILD_EXAMPLES=OFF \
-"
-
-TEST_SRC_DIR = "examples"
-LANG_SUPPORT = "cpp ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python', '', d)}"
-
-do_compile_ptest() {
- mkdir -p "${B}/${TEST_SRC_DIR}"
-
- # Add the location of the cross-compiled header and library files
- # which haven't been installed yet.
- cp "${B}/protobuf.pc" "${B}/${TEST_SRC_DIR}/protobuf.pc"
- cp ${S}/${TEST_SRC_DIR}/*.cc "${B}/${TEST_SRC_DIR}/"
- cp ${S}/${TEST_SRC_DIR}/*.proto "${B}/${TEST_SRC_DIR}/"
- cp ${S}/${TEST_SRC_DIR}/*.py "${B}/${TEST_SRC_DIR}/"
- cp ${S}/${TEST_SRC_DIR}/Makefile "${B}/${TEST_SRC_DIR}/"
- sed -e 's|libdir=|libdir=${PKG_CONFIG_SYSROOT_DIR}|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
- sed -e 's|Cflags:|Cflags: -I${S}/src|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
- sed -e 's|Libs:|Libs: -L${B}|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
- # Until out-of-tree build of examples is supported, we have to use this approach
- sed -e 's|../src/google/protobuf/.libs/timestamp.pb.o|${B}/CMakeFiles/libprotobuf.dir/src/google/protobuf/timestamp.pb.cc.o|' -i "${B}/${TEST_SRC_DIR}/Makefile"
- export PKG_CONFIG_PATH="${B}/${TEST_SRC_DIR}"
-
- # Save the pkgcfg sysroot variable, and update it to nothing so
- # that it doesn't append the sysroot to the beginning of paths.
- # The header and library files aren't installed to the target
- # system yet. So the absolute paths were specified above.
- save_pkg_config_sysroot_dir=$PKG_CONFIG_SYSROOT_DIR
- export PKG_CONFIG_SYSROOT_DIR=
-
- # Compile the tests
- for lang in ${LANG_SUPPORT}; do
- oe_runmake -C "${B}/${TEST_SRC_DIR}" ${lang}
- done
-
- # Restore the pkgconfig sysroot variable
- export PKG_CONFIG_SYSROOT_DIR=$save_pkg_config_sysroot_dir
-}
-
-do_install_ptest() {
- local olddir=`pwd`
-
- cd "${S}/${TEST_SRC_DIR}"
- install -d "${D}/${PTEST_PATH}"
- for i in add_person* list_people*; do
- if [ -x "$i" ]; then
- install "$i" "${D}/${PTEST_PATH}"
- fi
- done
- cp "${B}/${TEST_SRC_DIR}/addressbook_pb2.py" "${D}/${PTEST_PATH}"
- cd "$olddir"
-}
-
-PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
-
-FILES:${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
-FILES:${PN}-lite = "${libdir}/libprotobuf-lite${SOLIBS}"
-
-RDEPENDS:${PN}-compiler = "${PN}"
-RDEPENDS:${PN}-dev += "${PN}-compiler"
-RDEPENDS:${PN}-ptest = "bash ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3-protobuf', '', d)}"
-
-MIPS_INSTRUCTION_SET = "mips"
-
-BBCLASSEXTEND = "native nativesdk"
-
-LDFLAGS:append:arm = " -latomic"
-LDFLAGS:append:mips = " -latomic"
-LDFLAGS:append:powerpc = " -latomic"
-LDFLAGS:append:mipsel = " -latomic"
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf_4.25.3.bb b/meta-oe/recipes-devtools/protobuf/protobuf_4.25.3.bb
new file mode 100644
index 0000000000..3241345963
--- /dev/null
+++ b/meta-oe/recipes-devtools/protobuf/protobuf_4.25.3.bb
@@ -0,0 +1,118 @@
+SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
+DESCRIPTION = "Protocol Buffers are a way of encoding structured data in an \
+efficient yet extensible format. Google uses Protocol Buffers for almost \
+all of its internal RPC protocols and file formats."
+HOMEPAGE = "https://github.com/google/protobuf"
+SECTION = "console/tools"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b"
+
+DEPENDS = "zlib abseil-cpp"
+DEPENDS:append:class-target = " protobuf-native"
+
+SRCREV = "4a2aef570deb2bfb8927426558701e8bfc26f2a4"
+
+SRC_URI = "gitsm://github.com/protocolbuffers/protobuf.git;branch=25.x;protocol=https \
+ file://run-ptest \
+ file://0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch \
+ "
+SRC_URI:append:mips:toolchain-clang = " file://0001-Fix-build-on-mips-clang.patch "
+SRC_URI:append:mipsel:toolchain-clang = " file://0001-Fix-build-on-mips-clang.patch "
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig ptest
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG:class-native ?= "compiler"
+PACKAGECONFIG:class-nativesdk ?= "compiler"
+PACKAGECONFIG[python] = ",,"
+PACKAGECONFIG[compiler] = "-Dprotobuf_BUILD_PROTOC_BINARIES=ON,-Dprotobuf_BUILD_PROTOC_BINARIES=OFF"
+
+EXTRA_OECMAKE += "\
+ -Dprotobuf_BUILD_SHARED_LIBS=ON \
+ -Dprotobuf_BUILD_LIBPROTOC=ON \
+ -Dprotobuf_BUILD_TESTS=OFF \
+ -Dprotobuf_BUILD_EXAMPLES=OFF \
+ -Dprotobuf_ABSL_PROVIDER="package" \
+"
+
+TEST_SRC_DIR = "examples"
+LANG_SUPPORT = "cpp ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python', '', d)}"
+
+do_compile_ptest() {
+ mkdir -p "${B}/${TEST_SRC_DIR}"
+
+ # Add the location of the cross-compiled header and library files
+ # which haven't been installed yet.
+ cp "${B}/protobuf.pc" "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ cp ${S}/${TEST_SRC_DIR}/*.cc "${B}/${TEST_SRC_DIR}/"
+ cp ${S}/${TEST_SRC_DIR}/*.proto "${B}/${TEST_SRC_DIR}/"
+ cp ${S}/${TEST_SRC_DIR}/*.py "${B}/${TEST_SRC_DIR}/"
+ cp ${S}/${TEST_SRC_DIR}/Makefile "${B}/${TEST_SRC_DIR}/"
+ # Adapt protobuf.pc
+ sed -e 's|libdir=|libdir=${PKG_CONFIG_SYSROOT_DIR}|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Cflags:|Cflags: -I${S}/src |' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Cflags:|Cflags: -I${WORKDIR}/recipe-sysroot${includedir} |' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Libs:|Libs: -L${B}|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Libs:|Libs: -L${WORKDIR}/recipe-sysroot/usr/lib |' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Libs:|Libs: -labsl_log_internal_check_op |' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ sed -e 's|Libs:|Libs: -labsl_log_internal_message |' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+ # Adapt uf8_range.pc
+ cp "${B}/third_party/utf8_range/utf8_range.pc" "${B}/${TEST_SRC_DIR}/utf8_range.pc"
+ sed -e 's|libdir=|libdir=${PKG_CONFIG_SYSROOT_DIR}|' -i "${B}/${TEST_SRC_DIR}/utf8_range.pc"
+ sed -e 's|Libs:|Libs= -L${B}/third_party/utf8_range |' -i "${B}/${TEST_SRC_DIR}/utf8_range.pc"
+ # Until out-of-tree build of examples is supported, we have to use this approach
+ sed -e 's|../src/google/protobuf/.libs/timestamp.pb.o|${B}/CMakeFiles/libprotobuf.dir/src/google/protobuf/timestamp.pb.cc.o|' -i "${B}/${TEST_SRC_DIR}/Makefile"
+ export PKG_CONFIG_PATH="${B}/${TEST_SRC_DIR}"
+
+ # Save the pkgcfg sysroot variable, and update it to nothing so
+ # that it doesn't append the sysroot to the beginning of paths.
+ # The header and library files aren't installed to the target
+ # system yet. So the absolute paths were specified above.
+ save_pkg_config_sysroot_dir=$PKG_CONFIG_SYSROOT_DIR
+ export PKG_CONFIG_SYSROOT_DIR=
+
+ # Compile the tests
+ for lang in ${LANG_SUPPORT}; do
+ oe_runmake -C "${B}/${TEST_SRC_DIR}" ${lang}
+ done
+
+ # Restore the pkgconfig sysroot variable
+ export PKG_CONFIG_SYSROOT_DIR=$save_pkg_config_sysroot_dir
+}
+
+do_install_ptest() {
+ local olddir=`pwd`
+
+ cd "${S}/${TEST_SRC_DIR}"
+ install -d "${D}/${PTEST_PATH}"
+ for i in add_person* list_people*; do
+ if [ -x "$i" ]; then
+ install "$i" "${D}/${PTEST_PATH}"
+ fi
+ done
+ cp "${B}/${TEST_SRC_DIR}/addressbook_pb2.py" "${D}/${PTEST_PATH}"
+ cd "$olddir"
+}
+
+PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
+
+FILES:${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
+FILES:${PN}-lite = "${libdir}/libprotobuf-lite${SOLIBS}"
+
+# CMake requires protoc binary to exist in sysroot, even if it has wrong architecture.
+SYSROOT_DIRS += "${bindir}"
+
+RDEPENDS:${PN}-compiler = "${PN}"
+RDEPENDS:${PN}-dev += "${PN}-compiler"
+RDEPENDS:${PN}-ptest = "bash ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3-protobuf', '', d)}"
+
+MIPS_INSTRUCTION_SET = "mips"
+
+BBCLASSEXTEND = "native nativesdk"
+
+LDFLAGS:append:arm = " -latomic"
+LDFLAGS:append:mips = " -latomic"
+LDFLAGS:append:powerpc = " -latomic"
+LDFLAGS:append:mipsel = " -latomic"
diff --git a/meta-oe/recipes-devtools/pugixml/pugixml_1.12.bb b/meta-oe/recipes-devtools/pugixml/pugixml_1.12.bb
deleted file mode 100644
index b09c46a66b..0000000000
--- a/meta-oe/recipes-devtools/pugixml/pugixml_1.12.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Light-weight C++ XML Processing Library"
-DESCRIPTION = "pugixml is a C++ XML processing library, which consists of a \
-DOM-like interface with rich traversal/modification capabilities, \
-an extremely fast XML parser which constructs the DOM tree from \
-n XML file/buffer, and an XPath 1.0 implementation for complex \
-data-driven tree queries."
-HOMEPAGE = "https://pugixml.org/"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://readme.txt;beginline=29;endline=52;md5=d11b640daff611273752ec136394347c"
-
-SRC_URI = "https://github.com/zeux/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
-SRC_URI[sha256sum] = "fd6922a4448ec2f3eb9db415d10a49660e5d84ce20ce66b8a07e72ffc84270a7"
-
-UPSTREAM_CHECK_URI = "https://github.com/zeux/${BPN}/releases"
-
-inherit cmake
-
-EXTRA_OECMAKE += "-DBUILD_PKGCONFIG=ON \
- -DBUILD_SHARED_LIBS=ON \
- -DCMAKE_BUILD_TYPE=Release \
- "
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/pugixml/pugixml_1.14.bb b/meta-oe/recipes-devtools/pugixml/pugixml_1.14.bb
new file mode 100644
index 0000000000..458958edf5
--- /dev/null
+++ b/meta-oe/recipes-devtools/pugixml/pugixml_1.14.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Light-weight C++ XML Processing Library"
+DESCRIPTION = "pugixml is a C++ XML processing library, which consists of a \
+DOM-like interface with rich traversal/modification capabilities, \
+an extremely fast XML parser which constructs the DOM tree from \
+n XML file/buffer, and an XPath 1.0 implementation for complex \
+data-driven tree queries."
+HOMEPAGE = "https://pugixml.org/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://readme.txt;beginline=29;endline=52;md5=ad370df61d83846cf9e4726244671201"
+
+SRC_URI = "https://github.com/zeux/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "2f10e276870c64b1db6809050a75e11a897a8d7456c4be5c6b2e35a11168a015"
+
+UPSTREAM_CHECK_URI = "https://github.com/zeux/${BPN}/releases"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DBUILD_PKGCONFIG=ON \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=Release \
+ "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/python/python3-apscheduler_3.10.4.bb b/meta-oe/recipes-devtools/python/python3-apscheduler_3.10.4.bb
new file mode 100644
index 0000000000..01ffa25ac6
--- /dev/null
+++ b/meta-oe/recipes-devtools/python/python3-apscheduler_3.10.4.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Advanced Python Scheduler (APScheduler) is a Python library that lets you schedule your Python code to be executed later, either just once or periodically."
+HOMEPAGE = "https://github.com/agronholm/apscheduler"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f0e423eea5c91e7aa21bdb70184b3e53"
+
+SRC_URI[sha256sum] = "e6df071b27d9be898e486bc7940a7be50b4af2e9da7c08f0744a96d4bd4cef4a"
+
+PYPI_PACKAGE = "APScheduler"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "python3-setuptools-scm-native"
diff --git a/meta-oe/recipes-devtools/python/python3-apt_2.3.0.bb b/meta-oe/recipes-devtools/python/python3-apt_2.3.0.bb
deleted file mode 100644
index ec1539b442..0000000000
--- a/meta-oe/recipes-devtools/python/python3-apt_2.3.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Python-apt is a wrapper to use features of apt from python."
-LICENSE = "GPL-2.0-only & FSFAP"
-LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3 \
- file://debian/copyright;md5=4ed7b6862ca422678b17e7d4ed592285"
-
-SRC_URI = "git://salsa.debian.org/apt-team/python-apt.git;protocol=https;branch=main"
-
-SRCREV = "6145b6484d220685edfd922d364afbf065127efe"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-
-DEPENDS += "apt"
-RDEPENDS:${PN} += "apt python3-core"
-
-FILES:${PN} = "${libdir} ${datadir}/python-apt"
diff --git a/meta-oe/recipes-devtools/python/python3-apt_2.5.3.bb b/meta-oe/recipes-devtools/python/python3-apt_2.5.3.bb
new file mode 100644
index 0000000000..1d54b9f6af
--- /dev/null
+++ b/meta-oe/recipes-devtools/python/python3-apt_2.5.3.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Python-apt is a wrapper to use features of apt from python."
+LICENSE = "GPL-2.0-only & FSFAP"
+LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3 \
+ file://debian/copyright;md5=4ed7b6862ca422678b17e7d4ed592285"
+
+SRC_URI = "git://salsa.debian.org/apt-team/python-apt.git;protocol=https;branch=main"
+
+SRCREV = "3252935b6224b3bd2e2250894b9559b47c61b2e1"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+DEPENDS += "apt"
+RDEPENDS:${PN} += "apt python3-core"
+
+FILES:${PN} = "${libdir} ${datadir}/python-apt"
diff --git a/meta-oe/recipes-devtools/python/python3-distutils-extra_2.39.bb b/meta-oe/recipes-devtools/python/python3-distutils-extra_2.39.bb
index e129c18d63..a98dfab6d9 100644
--- a/meta-oe/recipes-devtools/python/python3-distutils-extra_2.39.bb
+++ b/meta-oe/recipes-devtools/python/python3-distutils-extra_2.39.bb
@@ -10,8 +10,6 @@ SRC_URI[sha256sum] = "723f24f4d65fc8d99b33a002fbbb3771d4cc9d664c97085bf37f3997ae
inherit setuptools3
-PIP_INSTALL_PACKAGE = "python_distutils_extra"
-
S = "${WORKDIR}/python-distutils-extra-${PV}"
BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb b/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
index b6ff62b91c..8519479c4d 100644
--- a/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
+++ b/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
@@ -4,11 +4,11 @@ SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://license.txt;md5=ba04aa8f65de1396a7e59d1d746c2125"
-SRC_URI = "git://github.com/miloyip/rapidjson.git;nobranch=1;protocol=https"
+SRC_URI = "git://github.com/miloyip/rapidjson.git;branch=master;protocol=https"
SRCREV = "0ccdbf364c577803e2a751f5aededce935314313"
-PV = "1.1.0+git${SRCPV}"
+PV = "1.1.0+git"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-devtools/sip/sip3_4.19.23.bb b/meta-oe/recipes-devtools/sip/sip3_4.19.23.bb
deleted file mode 100644
index d6335585e2..0000000000
--- a/meta-oe/recipes-devtools/sip/sip3_4.19.23.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "SIP is a C++/Python Wrapper Generator"
-HOMEPAGE = "https://riverbankcomputing.com/software/sip/"
-SECTION = "devel"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE-GPL2;md5=e91355d8a6f8bd8f7c699d62863c7303"
-
-SRC_URI = "https://www.riverbankcomputing.com/static/Downloads/sip/${PV}/sip-${PV}.tar.gz \
-"
-SRC_URI[md5sum] = "70adc0c9734e2d9dcd241d3f931dfc74"
-SRC_URI[sha256sum] = "22ca9bcec5388114e40d4aafd7ccd0c4fe072297b628d0c5cdfa2f010c0bc7e7"
-
-inherit python3-dir python3native
-
-S = "${WORKDIR}/sip-${PV}"
-
-DEPENDS = "python3"
-
-PACKAGES += "python3-sip3"
-
-BBCLASSEXTEND = "native"
-
-CONFIGURE_SYSROOT = "${STAGING_DIR_HOST}"
-CONFIGURE_SYSROOT:class-native = "${STAGING_DIR_NATIVE}"
-
-do_configure:prepend() {
- echo "py_platform = linux" > sip.cfg
- echo "py_inc_dir = ${STAGING_INCDIR}/python%(py_major).%(py_minor)${PYTHON_ABI}" >> sip.cfg
- echo "sip_bin_dir = ${D}/${bindir}" >> sip.cfg
- echo "sip_inc_dir = ${D}/${includedir}" >> sip.cfg
- echo "sip_module_dir = ${D}/${libdir}/python%(py_major).%(py_minor)/site-packages" >> sip.cfg
- echo "sip_sip_dir = ${D}/${datadir}/sip" >> sip.cfg
- ${PYTHON} configure.py --configuration sip.cfg --sip-module PyQt5.sip --sysroot ${CONFIGURE_SYSROOT} CC="${CC}" CXX="${CXX}" LINK="${CXX}" STRIP="" LINK_SHLIB="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LFLAGS="${LDFLAGS}"
-}
-
-do_install() {
- oe_runmake install
-}
-
-FILES:python3-sip3 = "${libdir}/${PYTHON_DIR}/site-packages/"
-FILES:${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug"
diff --git a/meta-oe/recipes-devtools/sip/sip_6.8.3.bb b/meta-oe/recipes-devtools/sip/sip_6.8.3.bb
new file mode 100644
index 0000000000..d12130af43
--- /dev/null
+++ b/meta-oe/recipes-devtools/sip/sip_6.8.3.bb
@@ -0,0 +1,24 @@
+# Copyright (C) 2022 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "A Python bindings generator for C/C++ libraries"
+
+HOMEPAGE = "https://www.riverbankcomputing.com/software/sip/"
+LICENSE = "GPL-2.0-or-later"
+SECTION = "devel"
+LIC_FILES_CHKSUM = "file://LICENSE-GPL2;md5=e91355d8a6f8bd8f7c699d62863c7303"
+
+inherit pypi setuptools3 python3native
+
+PYPI_PACKAGE = "sip"
+SRC_URI[sha256sum] = "888547b018bb24c36aded519e93d3e513d4c6aa0ba55b7cc1affbd45cf10762c"
+
+RDEPENDS:${PN} = " \
+ python3-core \
+ python3-packaging \
+ python3-logging \
+ python3-tomllib \
+ python3-setuptools \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/smemstat/smemstat_0.02.13.bb b/meta-oe/recipes-devtools/smemstat/smemstat_0.02.13.bb
new file mode 100644
index 0000000000..bf5c52fe50
--- /dev/null
+++ b/meta-oe/recipes-devtools/smemstat/smemstat_0.02.13.bb
@@ -0,0 +1,22 @@
+SUMMARY = "smemstat reports the physical memory usage taking into consideration shared memory"
+HOMEPAGE = "https://github.com/ColinIanKing/smemstat"
+LICENSE = "GPL-2.0-or-later"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "ncurses"
+
+SRC_URI = "git://github.com/ColinIanKing/smemstat.git;protocol=https;branch=master"
+SRCREV = "1edc560602aa116b96408110b8b9d66a4edef60e"
+
+S = "${WORKDIR}/git"
+
+inherit bash-completion
+
+do_compile () {
+ oe_runmake smemstat
+}
+
+do_install () {
+ oe_runmake DESTDIR=${D} install
+}
diff --git a/meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.1.4.bb b/meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.1.4.bb
deleted file mode 100644
index c57324d89c..0000000000
--- a/meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.1.4.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "New set of tools for working with SquashFS images"
-SECTION = "base"
-LICENSE = "GPL-3.0-or-later & LGPL-3.0-or-later & MIT & BSD-2-Clause & Zlib"
-LIC_FILES_CHKSUM = "file://COPYING.md;md5=5789fb0572753ed69014cd90a445cd74 \
- file://licenses/GPLv3.txt;md5=1ebbd3e34237af26da5dc08a4e440464 \
- file://licenses/hash_table.txt;md5=874823605326caeaabaa95bfbd0f9fb0 \
- file://licenses/LGPLv3.txt;md5=3000208d539ec061b899bce1d9ce9404 \
- file://licenses/LZ4.txt;md5=ebc2ea4814a64de7708f1571904b32cc \
- file://licenses/xxhash.txt;md5=f042a9be092bd6d7fe6f217d8d00f4ca \
- file://licenses/xz.txt;md5=1c389b9610ccfdb25f7abaea6a0bb5a4 \
- file://licenses/zlib.txt;md5=ae27c72096606131f760e5f59cf98b06 \
- file://licenses/zstd.txt;md5=8df8137b630239cbdd4c0674124cb0c8 \
- "
-
-SRCREV = "7667b84cc34707c28ca0db8d24f046ec34e8c25d"
-SRC_URI = "git://github.com/AgentD/squashfs-tools-ng.git;protocol=https;branch=master"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "gzip xz lzo lz4 zstd ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
-PACKAGECONFIG[gzip] = "--with-gzip,--without-gzip,zlib"
-PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz"
-PACKAGECONFIG[lzo] = "--with-lzo,--without-lzo,lzo"
-PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4"
-PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
-PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
-
-PACKAGES =+ "libsquashfs"
-FILES:libsquashfs = "${libdir}/libsquashfs*${SOLIBS}"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.2.0.bb b/meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.2.0.bb
new file mode 100644
index 0000000000..880af82bba
--- /dev/null
+++ b/meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.2.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "New set of tools for working with SquashFS images"
+SECTION = "base"
+LICENSE = "GPL-3.0-or-later & LGPL-3.0-or-later & MIT & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING.md;md5=a709b68f1ce8a9f10aeea6401446c1f4 \
+ file://licenses/GPLv3.txt;md5=1ebbd3e34237af26da5dc08a4e440464 \
+ file://licenses/hash_table.txt;md5=874823605326caeaabaa95bfbd0f9fb0 \
+ file://licenses/LGPLv3.txt;md5=3000208d539ec061b899bce1d9ce9404 \
+ file://licenses/LZ4.txt;md5=ebc2ea4814a64de7708f1571904b32cc \
+ file://licenses/xxhash.txt;md5=f042a9be092bd6d7fe6f217d8d00f4ca \
+ file://licenses/xz.txt;md5=1c389b9610ccfdb25f7abaea6a0bb5a4 \
+ file://licenses/zstd.txt;md5=8df8137b630239cbdd4c0674124cb0c8 \
+ "
+
+SRCREV = "f2a3ad56e40c9711b23371238f9fa07dd24245f1"
+SRC_URI = "git://github.com/AgentD/squashfs-tools-ng.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "gzip xz lzo lz4 zstd ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
+PACKAGECONFIG[gzip] = "--with-gzip,--without-gzip,zlib"
+PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz"
+PACKAGECONFIG[lzo] = "--with-lzo,--without-lzo,lzo"
+PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4"
+PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
+PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
+
+PACKAGES =+ "libsquashfs"
+FILES:libsquashfs = "${libdir}/libsquashfs*${SOLIBS}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/ssd1306/ssd1306_git.bb b/meta-oe/recipes-devtools/ssd1306/ssd1306_git.bb
new file mode 100644
index 0000000000..f9e3679590
--- /dev/null
+++ b/meta-oe/recipes-devtools/ssd1306/ssd1306_git.bb
@@ -0,0 +1,24 @@
+SUMMARY="SSD1306 OLED I2C drive"
+DESCRIPTION = "SSD1306 OLED I2C driver working in Linux"
+HOMEPAGE = "https://github.com/armlabs/ssd1306_linux"
+SECTION = "console/utils"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7b694e603a996c3bfdc6093ed1f70c8f"
+
+SRC_URI = " \
+ git://github.com/armlabs/ssd1306_linux.git;protocol=https;branch=master \
+"
+SRCREV = "34b42992a43fda69c6ba2557b718601cafe16251"
+
+S = "${WORKDIR}/git"
+
+# coreutils provides fmt which is used in the Makefile
+DEPENDS = "i2c-tools coreutils-native"
+
+EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/ssd1306_bin ${D}${bindir}
+}
diff --git a/meta-oe/recipes-devtools/suitesparse/suitesparse/0001-Preserve-CXXFLAGS-from-environment-in-Mongoose.patch b/meta-oe/recipes-devtools/suitesparse/suitesparse/0001-Preserve-CXXFLAGS-from-environment-in-Mongoose.patch
index c955b5fa7d..47865de858 100644
--- a/meta-oe/recipes-devtools/suitesparse/suitesparse/0001-Preserve-CXXFLAGS-from-environment-in-Mongoose.patch
+++ b/meta-oe/recipes-devtools/suitesparse/suitesparse/0001-Preserve-CXXFLAGS-from-environment-in-Mongoose.patch
@@ -8,6 +8,8 @@ build process, instead of overwriting them. This is useful in a cross
compile context where the CXXFLAGS variable might contain necessary
flags for cross compiling.
---
+Upstream-Status: Pending
+
Mongoose/CMakeLists.txt | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/meta-oe/recipes-devtools/suitesparse/suitesparse/0002-Preserve-links-when-installing-libmetis.patch b/meta-oe/recipes-devtools/suitesparse/suitesparse/0002-Preserve-links-when-installing-libmetis.patch
index 190eaf164d..d80c1a7362 100644
--- a/meta-oe/recipes-devtools/suitesparse/suitesparse/0002-Preserve-links-when-installing-libmetis.patch
+++ b/meta-oe/recipes-devtools/suitesparse/suitesparse/0002-Preserve-links-when-installing-libmetis.patch
@@ -4,6 +4,8 @@ Date: Wed, 21 Oct 2020 15:26:52 -0600
Subject: [PATCH] Preserve links when installing libmetis
---
+Upstream-Status: Pending
+
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-devtools/suitesparse/suitesparse/0003-Add-version-information-to-libmetis.patch b/meta-oe/recipes-devtools/suitesparse/suitesparse/0003-Add-version-information-to-libmetis.patch
index dee6039a81..fc83897a05 100644
--- a/meta-oe/recipes-devtools/suitesparse/suitesparse/0003-Add-version-information-to-libmetis.patch
+++ b/meta-oe/recipes-devtools/suitesparse/suitesparse/0003-Add-version-information-to-libmetis.patch
@@ -4,6 +4,8 @@ Date: Wed, 21 Oct 2020 15:27:07 -0600
Subject: [PATCH] Add version information to libmetis
---
+Upstream-Status: Pending
+
metis-5.1.0/Makefile | 8 ++++----
metis-5.1.0/libmetis/CMakeLists.txt | 1 +
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb b/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb
index 38e34b93c6..13e6fd066c 100644
--- a/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb
+++ b/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb
@@ -1,6 +1,6 @@
LICENSE = "GPL-2.0-only & GPL-3.0-only & BSD-3-Clause & LGPL-2.0-only & Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5fa987762101f748a6cdd951b64ffc6b"
-SRC_URI = "git://github.com/DrTimothyAldenDavis/SuiteSparse;protocol=https;branch=master \
+SRC_URI = "git://github.com/DrTimothyAldenDavis/SuiteSparse;protocol=https;branch=stable \
file://0001-Preserve-CXXFLAGS-from-environment-in-Mongoose.patch \
file://0002-Preserve-links-when-installing-libmetis.patch \
file://0003-Add-version-information-to-libmetis.patch \
@@ -19,14 +19,14 @@ RPROVIDES:${PN} = "mongoose graphblas"
# the command line. To get around this problem, set these variables to only the
# program name and prepend the rest of the value onto the corresponding FLAGS
# variable.
-CFLAGS:prepend := "${@" ".join(d.getVar('CC', True).split()[1:])} "
-export CC := "${@d.getVar('CC', True).split()[0]}"
+CFLAGS:prepend := "${@" ".join(d.getVar('CC').split()[1:])} "
+export CC := "${@d.getVar('CC').split()[0]}"
-CXXFLAGS:prepend := "${@" ".join(d.getVar('CXX', True).split()[1:])} "
-export CXX := "${@d.getVar('CXX', True).split()[0]}"
+CXXFLAGS:prepend := "${@" ".join(d.getVar('CXX').split()[1:])} "
+export CXX := "${@d.getVar('CXX').split()[0]}"
-LDFLAGS:prepend := "${@" ".join(d.getVar('LD', True).split()[1:])} "
-export LD := "${@d.getVar('LD', True).split()[0]}"
+LDFLAGS:prepend := "${@" ".join(d.getVar('LD').split()[1:])} "
+export LD := "${@d.getVar('LD').split()[0]}"
export CMAKE_OPTIONS = " \
-DCMAKE_INSTALL_PREFIX=${D}${prefix} \
diff --git a/meta-oe/recipes-devtools/systemd/nativesdk-systemd-systemctl.bb b/meta-oe/recipes-devtools/systemd/nativesdk-systemd-systemctl.bb
new file mode 100644
index 0000000000..f7160f508b
--- /dev/null
+++ b/meta-oe/recipes-devtools/systemd/nativesdk-systemd-systemctl.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Wrapper for enabling systemd services"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+inherit nativesdk
+
+SRC_URI = "file://systemctl"
+
+S = "${WORKDIR}"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/systemctl ${D}${bindir}
+}
diff --git a/meta-oe/recipes-devtools/systemd/systemd-systemctl/systemctl b/meta-oe/recipes-devtools/systemd/systemd-systemctl/systemctl
new file mode 100755
index 0000000000..07d24fd175
--- /dev/null
+++ b/meta-oe/recipes-devtools/systemd/systemd-systemctl/systemctl
@@ -0,0 +1,340 @@
+#!/usr/bin/env python3
+"""systemctl: subset of systemctl used for image construction
+
+Mask/preset systemd units
+"""
+
+import argparse
+import fnmatch
+import os
+import re
+import sys
+
+from collections import namedtuple
+from pathlib import Path
+
+version = 1.0
+
+ROOT = Path("/")
+SYSCONFDIR = Path("etc")
+BASE_LIBDIR = Path("lib")
+LIBDIR = Path("usr", "lib")
+
+locations = list()
+
+
+class SystemdFile():
+ """Class representing a single systemd configuration file"""
+ def __init__(self, root, path):
+ self.sections = dict()
+ self._parse(root, path)
+ dirname = os.path.basename(path.name) + ".d"
+ for location in locations:
+ for path2 in sorted((root / location / "system" / dirname).glob("*.conf")):
+ self._parse(root, path2)
+
+ def _parse(self, root, path):
+ """Parse a systemd syntax configuration file
+
+ Args:
+ path: A pathlib.Path object pointing to the file
+
+ """
+ skip_re = re.compile(r"^\s*([#;]|$)")
+ section_re = re.compile(r"^\s*\[(?P<section>.*)\]")
+ kv_re = re.compile(r"^\s*(?P<key>[^\s]+)\s*=\s*(?P<value>.*)")
+ section = None
+
+ if path.is_symlink():
+ try:
+ path.resolve()
+ except FileNotFoundError:
+ # broken symlink, try relative to root
+ path = root / Path(os.readlink(str(path))).relative_to(ROOT)
+
+ with path.open() as f:
+ for line in f:
+ if skip_re.match(line):
+ continue
+
+ line = line.strip()
+ m = section_re.match(line)
+ if m:
+ if m.group('section') not in self.sections:
+ section = dict()
+ self.sections[m.group('section')] = section
+ else:
+ section = self.sections[m.group('section')]
+ continue
+
+ while line.endswith("\\"):
+ line += f.readline().rstrip("\n")
+
+ m = kv_re.match(line)
+ k = m.group('key')
+ v = m.group('value')
+ if k not in section:
+ section[k] = list()
+ section[k].extend(v.split())
+
+ def get(self, section, prop):
+ """Get a property from section
+
+ Args:
+ section: Section to retrieve property from
+ prop: Property to retrieve
+
+ Returns:
+ List representing all properties of type prop in section.
+
+ Raises:
+ KeyError: if ``section`` or ``prop`` not found
+ """
+ return self.sections[section][prop]
+
+
+class Presets():
+ """Class representing all systemd presets"""
+ def __init__(self, scope, root):
+ self.directives = list()
+ self._collect_presets(scope, root)
+
+ def _parse_presets(self, presets):
+ """Parse presets out of a set of preset files"""
+ skip_re = re.compile(r"^\s*([#;]|$)")
+ directive_re = re.compile(r"^\s*(?P<action>enable|disable)\s+(?P<unit_name>(.+))")
+
+ Directive = namedtuple("Directive", "action unit_name")
+ for preset in presets:
+ with preset.open() as f:
+ for line in f:
+ m = directive_re.match(line)
+ if m:
+ directive = Directive(action=m.group('action'),
+ unit_name=m.group('unit_name'))
+ self.directives.append(directive)
+ elif skip_re.match(line):
+ pass
+ else:
+ sys.exit("Unparsed preset line in {}".format(preset))
+
+ def _collect_presets(self, scope, root):
+ """Collect list of preset files"""
+ presets = dict()
+ for location in locations:
+ paths = (root / location / scope).glob("*.preset")
+ for path in paths:
+ # earlier names override later ones
+ if path.name not in presets:
+ presets[path.name] = path
+
+ self._parse_presets([v for k, v in sorted(presets.items())])
+
+ def state(self, unit_name):
+ """Return state of preset for unit_name
+
+ Args:
+ presets: set of presets
+ unit_name: name of the unit
+
+ Returns:
+ None: no matching preset
+ `enable`: unit_name is enabled
+ `disable`: unit_name is disabled
+ """
+ for directive in self.directives:
+ if fnmatch.fnmatch(unit_name, directive.unit_name):
+ return directive.action
+
+ return None
+
+
+def add_link(path, target):
+ try:
+ path.parent.mkdir(parents=True)
+ except FileExistsError:
+ pass
+ if not path.is_symlink():
+ print("ln -s {} {}".format(target, path))
+ path.symlink_to(target)
+
+
+class SystemdUnitNotFoundError(Exception):
+ def __init__(self, path, unit):
+ self.path = path
+ self.unit = unit
+
+
+class SystemdUnit():
+ def __init__(self, root, unit):
+ self.root = root
+ self.unit = unit
+ self.config = None
+
+ def _path_for_unit(self, unit):
+ for location in locations:
+ path = self.root / location / "system" / unit
+ if path.exists() or path.is_symlink():
+ return path
+
+ raise SystemdUnitNotFoundError(self.root, unit)
+
+ def _process_deps(self, config, service, location, prop, dirstem):
+ systemdir = self.root / SYSCONFDIR / "systemd" / "system"
+
+ target = ROOT / location.relative_to(self.root)
+ try:
+ for dependent in config.get('Install', prop):
+ wants = systemdir / "{}.{}".format(dependent, dirstem) / service
+ add_link(wants, target)
+
+ except KeyError:
+ pass
+
+ def enable(self, caller_unit=None):
+ # if we're enabling an instance, first extract the actual instance
+ # then figure out what the template unit is
+ template = re.match(r"[^@]+@(?P<instance>[^\.]*)\.", self.unit)
+ if template:
+ instance = template.group('instance')
+ unit = re.sub(r"@[^\.]*\.", "@.", self.unit, 1)
+ else:
+ instance = None
+ unit = self.unit
+
+ path = self._path_for_unit(unit)
+
+ if path.is_symlink():
+ # ignore aliases
+ return
+
+ config = SystemdFile(self.root, path)
+ if instance == "":
+ try:
+ default_instance = config.get('Install', 'DefaultInstance')[0]
+ except KeyError:
+ # no default instance, so nothing to enable
+ return
+
+ service = self.unit.replace("@.",
+ "@{}.".format(default_instance))
+ else:
+ service = self.unit
+
+ self._process_deps(config, service, path, 'WantedBy', 'wants')
+ self._process_deps(config, service, path, 'RequiredBy', 'requires')
+
+ try:
+ for also in config.get('Install', 'Also'):
+ try:
+ if caller_unit != also:
+ SystemdUnit(self.root, also).enable(unit)
+ except SystemdUnitNotFoundError as e:
+ sys.exit("Error: Systemctl also enable issue with %s (%s)" % (service, e.unit))
+
+ except KeyError:
+ pass
+
+ systemdir = self.root / SYSCONFDIR / "systemd" / "system"
+ target = ROOT / path.relative_to(self.root)
+ try:
+ for dest in config.get('Install', 'Alias'):
+ alias = systemdir / dest
+ add_link(alias, target)
+
+ except KeyError:
+ pass
+
+ def mask(self):
+ systemdir = self.root / SYSCONFDIR / "systemd" / "system"
+ add_link(systemdir / self.unit, "/dev/null")
+
+
+def collect_services(root):
+ """Collect list of service files"""
+ services = set()
+ for location in locations:
+ paths = (root / location / "system").glob("*")
+ for path in paths:
+ if path.is_dir():
+ continue
+ services.add(path.name)
+
+ return services
+
+
+def preset_all(root):
+ presets = Presets('system-preset', root)
+ services = collect_services(root)
+
+ for service in services:
+ state = presets.state(service)
+
+ if state == "enable" or state is None:
+ try:
+ SystemdUnit(root, service).enable()
+ except SystemdUnitNotFoundError:
+ sys.exit("Error: Systemctl preset_all issue in %s" % service)
+
+ # If we populate the systemd links we also create /etc/machine-id, which
+ # allows systemd to boot with the filesystem read-only before generating
+ # a real value and then committing it back.
+ #
+ # For the stateless configuration, where /etc is generated at runtime
+ # (for example on a tmpfs), this script shouldn't run at all and we
+ # allow systemd to completely populate /etc.
+ (root / SYSCONFDIR / "machine-id").touch()
+
+
+def main():
+ if sys.version_info < (3, 4, 0):
+ sys.exit("Python 3.4 or greater is required")
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument('command', nargs='?', choices=['enable', 'mask',
+ 'preset-all'])
+ parser.add_argument('service', nargs=argparse.REMAINDER)
+ parser.add_argument('--root')
+ parser.add_argument('--preset-mode',
+ choices=['full', 'enable-only', 'disable-only'],
+ default='full')
+
+ args = parser.parse_args()
+
+ root = Path(args.root) if args.root else ROOT
+
+ locations.append(SYSCONFDIR / "systemd")
+ # Handle the usrmerge case by ignoring /lib when it's a symlink
+ if not (root / BASE_LIBDIR).is_symlink():
+ locations.append(BASE_LIBDIR / "systemd")
+ locations.append(LIBDIR / "systemd")
+
+ command = args.command
+ if not command:
+ parser.print_help()
+ return 0
+
+ if command == "mask":
+ for service in args.service:
+ try:
+ SystemdUnit(root, service).mask()
+ except SystemdUnitNotFoundError as e:
+ sys.exit("Error: Systemctl main mask issue in %s (%s)" % (service, e.unit))
+ elif command == "enable":
+ for service in args.service:
+ try:
+ SystemdUnit(root, service).enable()
+ except SystemdUnitNotFoundError as e:
+ sys.exit("Error: Systemctl main enable issue in %s (%s)" % (service, e.unit))
+ elif command == "preset-all":
+ if len(args.service) != 0:
+ sys.exit("Too many arguments.")
+ if args.preset_mode != "enable-only":
+ sys.exit("Only enable-only is supported as preset-mode.")
+ preset_all(root)
+ else:
+ raise RuntimeError()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff b/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
index 229acf3e7a..e13bf69b23 100644
--- a/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
+++ b/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
@@ -8,6 +8,8 @@ and tkConfig.sh in /usr/share/tcltk/tk8.5 where they are located in Debian
installation.
---
+Upstream-Status: Pending
+
unix/configure | 1 +
unix/tcl.m4 | 2 ++
2 files changed, 3 insertions(+)
diff --git a/meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff b/meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff
index 4aa5d6b894..fdf3c66535 100644
--- a/meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff
+++ b/meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- /tmp/configure.in 2010-05-19 13:29:03.000000000 +0200
+++ unix/configure.in 2010-05-19 13:42:05.000000000 +0200
@@ -526,13 +526,9 @@
diff --git a/meta-oe/recipes-devtools/tcltk/tk/tkprivate.diff b/meta-oe/recipes-devtools/tcltk/tk/tkprivate.diff
index 4e15469736..62467af1d5 100644
--- a/meta-oe/recipes-devtools/tcltk/tk/tkprivate.diff
+++ b/meta-oe/recipes-devtools/tcltk/tk/tkprivate.diff
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Patch by Chris Waters sets path which are normally point to a directory
with Tk sources to a subdirectory of /usr/include/tcl8.4 (debian/rules
puts private Tk headers there).
diff --git a/meta-oe/recipes-devtools/tcltk/tk_8.6.10.bb b/meta-oe/recipes-devtools/tcltk/tk_8.6.10.bb
index efab9618ec..237c4e7389 100644
--- a/meta-oe/recipes-devtools/tcltk/tk_8.6.10.bb
+++ b/meta-oe/recipes-devtools/tcltk/tk_8.6.10.bb
@@ -28,13 +28,15 @@ SRC_URI[sha256sum] = "63df418a859d0a463347f95ded5cd88a3dd3aaa1ceecaeee362194bc30
S = "${WORKDIR}/${BPN}${PV}/unix"
+DEBUG_PREFIX_MAP += "-fdebug-prefix-map=${S}/../=${TARGET_DBGSRC_DIR}/.."
+
PSEUDO_IGNORE_PATHS .= ",${WORKDIR}/${BPN}${PV}"
# Short version format: "8.6"
VER = "${@os.path.splitext(d.getVar('PV'))[0]}"
LDFLAGS += "-Wl,-rpath,${libdir}/tcltk/${PV}/lib"
-inherit autotools features_check
+inherit autotools features_check pkgconfig
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-oe/recipes-devtools/uftrace/uftrace/0001-include-libgen.h-for-basename.patch b/meta-oe/recipes-devtools/uftrace/uftrace/0001-include-libgen.h-for-basename.patch
new file mode 100644
index 0000000000..4844003517
--- /dev/null
+++ b/meta-oe/recipes-devtools/uftrace/uftrace/0001-include-libgen.h-for-basename.patch
@@ -0,0 +1,34 @@
+From 8e4e5479cee153db7315d5134663fa87082b39fc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 17:46:24 -0700
+Subject: [PATCH] include libgen.h for basename
+
+basename prototype has been removed from string.h from latest musl [1]
+compilers e.g. clang-18 flags the absense of prototype as error. therefore
+include libgen.h for providing it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [https://github.com/namhyung/uftrace/pull/1909]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ utils/utils.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/utils/utils.h b/utils/utils.h
+index 69a6072b..60265431 100644
+--- a/utils/utils.h
++++ b/utils/utils.h
+@@ -11,6 +11,9 @@
+
+ #include <ctype.h>
+ #include <endian.h>
++#ifndef __GLIBC__
++#include <libgen.h>
++#endif
+ #include <limits.h>
+ #include <signal.h>
+ #include <stdbool.h>
+--
+2.44.0
+
diff --git a/meta-oe/recipes-devtools/uftrace/uftrace_0.12.bb b/meta-oe/recipes-devtools/uftrace/uftrace_0.12.bb
deleted file mode 100644
index 111e948669..0000000000
--- a/meta-oe/recipes-devtools/uftrace/uftrace_0.12.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Trace and analyze execution of a program written in C/C++"
-HOMEPAGE = "https://github.com/namhyung/uftrace"
-BUGTRACKER = "https://github.com/namhyung/uftrace/issues"
-SECTION = "devel"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "elfutils"
-DEPENDS:append:libc-musl = " argp-standalone"
-
-inherit autotools
-
-SRCREV = "46d536709451609e5e99099216d9dcf567ceeaca"
-SRC_URI = "git://github.com/namhyung/${BPN};branch=master;protocol=https \
- "
-S = "${WORKDIR}/git"
-
-LDFLAGS:append:libc-musl = " -largp"
-
-def set_target_arch(d):
- import re
- arch = d.getVar('TARGET_ARCH')
- if re.match(r'i.86', arch, re.I):
- return 'i386'
- elif re.match('armeb', arch, re.I):
- return 'arm'
- else:
- return arch
-
-EXTRA_UFTRACE_OECONF = "ARCH=${@set_target_arch(d)} \
- with_elfutils=/use/libelf/from/sysroot"
-
-do_configure() {
- ${S}/configure ${EXTRA_UFTRACE_OECONF}
-}
-
-FILES_SOLIBSDEV = ""
-FILES:${PN} += "${libdir}/*.so"
-
-COMPATIBLE_HOST = "(i.86|x86_64|aarch64|arm)"
-
-# uftrace supports armv6 and above
-COMPATIBLE_HOST:armv4 = 'null'
-COMPATIBLE_HOST:armv5 = 'null'
diff --git a/meta-oe/recipes-devtools/uftrace/uftrace_0.15.2.bb b/meta-oe/recipes-devtools/uftrace/uftrace_0.15.2.bb
new file mode 100644
index 0000000000..60436025a3
--- /dev/null
+++ b/meta-oe/recipes-devtools/uftrace/uftrace_0.15.2.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Trace and analyze execution of a program written in C/C++, Rust and Python"
+HOMEPAGE = "https://github.com/namhyung/uftrace"
+BUGTRACKER = "https://github.com/namhyung/uftrace/issues"
+SECTION = "devel"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "elfutils"
+DEPENDS:append:libc-musl = " argp-standalone"
+
+inherit autotools
+
+SRCREV = "9d8657e90b918994d7d2bcf6dd2cc7354c35a1b4"
+SRC_URI = "git://github.com/namhyung/${BPN};branch=master;protocol=https \
+ file://0001-include-libgen.h-for-basename.patch"
+S = "${WORKDIR}/git"
+
+LDFLAGS:append:libc-musl = " -largp"
+
+def set_target_arch(d):
+ import re
+ arch = d.getVar('TARGET_ARCH')
+ if re.match(r'i.86', arch, re.I):
+ return 'i386'
+ elif re.match('armeb', arch, re.I):
+ return 'arm'
+ else:
+ return arch
+
+EXTRA_UFTRACE_OECONF = "ARCH=${@set_target_arch(d)} \
+ with_elfutils=/use/libelf/from/sysroot"
+
+do_configure() {
+ ${S}/configure ${EXTRA_UFTRACE_OECONF}
+}
+
+FILES_SOLIBSDEV = ""
+FILES:${PN} += "${libdir}/*.so"
+
+COMPATIBLE_HOST = "(i.86|x86_64|aarch64|arm|riscv64)"
+
+# uftrace supports armv6 and above
+COMPATIBLE_HOST:armv4 = 'null'
+COMPATIBLE_HOST:armv5 = 'null'
diff --git a/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Fix-Wincompatible-function-pointer-types.patch b/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Fix-Wincompatible-function-pointer-types.patch
new file mode 100644
index 0000000000..428ee91031
--- /dev/null
+++ b/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Fix-Wincompatible-function-pointer-types.patch
@@ -0,0 +1,178 @@
+From 3170b245aba99694390c3c87d326639b6685d4dd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 19 Jan 2023 14:34:05 -0800
+Subject: [PATCH] Fix -Wincompatible-function-pointer-types
+
+Fixes new found errors with clang 16
+
+news.c:370:36: error: incompatible function pointer types passing 'int (struct dirent *)' to parameter of type 'int (*)(const struct dirent *)' [-Wincompatible-function-pointer-types]
+ if ((nmsgs = scandir (tmp,&names,news_select,news_numsort)) >= 0) {
+ ^~~~~~~~~~~
+/mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/uw-imap/2007f-r0/recipe-sysroot/usr/include/dirent.h:259:13: note: passing argument to parameter '__selector' here
+ int (*__selector) (const struct dirent *),
+ ^
+news.c:370:48: error: incompatible function pointer types passing 'int (const void *, const void *)' to parameter of type 'int (*)(const struct dirent **, const struct dirent **)' [-Wincompatible-function-pointer-types]
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/osdep/unix/mh.c | 8 ++++----
+ src/osdep/unix/mix.c | 12 ++++++------
+ src/osdep/unix/mx.c | 8 ++++----
+ src/osdep/unix/news.c | 8 ++++----
+ 4 files changed, 18 insertions(+), 18 deletions(-)
+
+diff --git a/src/osdep/unix/mh.c b/src/osdep/unix/mh.c
+index 0226b7a..9264624 100644
+--- a/src/osdep/unix/mh.c
++++ b/src/osdep/unix/mh.c
+@@ -103,8 +103,8 @@ long mh_copy (MAILSTREAM *stream,char *sequence,char *mailbox,
+ long options);
+ long mh_append (MAILSTREAM *stream,char *mailbox,append_t af,void *data);
+
+-int mh_select (struct direct *name);
+-int mh_numsort (const void *d1,const void *d2);
++int mh_select (const struct direct *name);
++int mh_numsort (const struct dirent **d1,const struct dirent **d2);
+ char *mh_file (char *dst,char *name);
+ long mh_canonicalize (char *pattern,char *ref,char *pat);
+ void mh_setdate (char *file,MESSAGECACHE *elt);
+@@ -1194,7 +1194,7 @@ long mh_append (MAILSTREAM *stream,char *mailbox,append_t af,void *data)
+ * Returns: T to use file name, NIL to skip it
+ */
+
+-int mh_select (struct direct *name)
++int mh_select (const struct direct *name)
+ {
+ char c;
+ char *s = name->d_name;
+@@ -1209,7 +1209,7 @@ int mh_select (struct direct *name)
+ * Returns: negative if d1 < d2, 0 if d1 == d2, postive if d1 > d2
+ */
+
+-int mh_numsort (const void *d1,const void *d2)
++int mh_numsort (const struct dirent **d1,const struct dirent **d2)
+ {
+ return atoi ((*(struct direct **) d1)->d_name) -
+ atoi ((*(struct direct **) d2)->d_name);
+diff --git a/src/osdep/unix/mix.c b/src/osdep/unix/mix.c
+index fbf4a02..c2207f6 100644
+--- a/src/osdep/unix/mix.c
++++ b/src/osdep/unix/mix.c
+@@ -125,7 +125,7 @@ long mix_unsubscribe (MAILSTREAM *stream,char *mailbox);
+ long mix_create (MAILSTREAM *stream,char *mailbox);
+ long mix_delete (MAILSTREAM *stream,char *mailbox);
+ long mix_rename (MAILSTREAM *stream,char *old,char *newname);
+-int mix_rselect (struct direct *name);
++int mix_rselect (const struct direct *name);
+ MAILSTREAM *mix_open (MAILSTREAM *stream);
+ void mix_close (MAILSTREAM *stream,long options);
+ void mix_abort (MAILSTREAM *stream);
+@@ -140,8 +140,8 @@ THREADNODE *mix_thread (MAILSTREAM *stream,char *type,char *charset,
+ long mix_ping (MAILSTREAM *stream);
+ void mix_check (MAILSTREAM *stream);
+ long mix_expunge (MAILSTREAM *stream,char *sequence,long options);
+-int mix_select (struct direct *name);
+-int mix_msgfsort (const void *d1,const void *d2);
++int mix_select (const struct direct *name);
++int mix_msgfsort (const struct dirent **d1,const struct dirent **d2);
+ long mix_addset (SEARCHSET **set,unsigned long start,unsigned long size);
+ long mix_burp (MAILSTREAM *stream,MIXBURP *burp,unsigned long *reclaimed);
+ long mix_burp_check (SEARCHSET *set,size_t size,char *file);
+@@ -587,7 +587,7 @@ long mix_rename (MAILSTREAM *stream,char *old,char *newname)
+ * Returns: T if mix file name, NIL otherwise
+ */
+
+-int mix_rselect (struct direct *name)
++int mix_rselect (const struct direct *name)
+ {
+ return mix_dirfmttest (name->d_name);
+ }
+@@ -1146,7 +1146,7 @@ long mix_expunge (MAILSTREAM *stream,char *sequence,long options)
+ * ".mix" with no suffix was used by experimental versions
+ */
+
+-int mix_select (struct direct *name)
++int mix_select (const struct direct *name)
+ {
+ char c,*s;
+ /* make sure name has prefix */
+@@ -1165,7 +1165,7 @@ int mix_select (struct direct *name)
+ * Returns: -1 if d1 < d2, 0 if d1 == d2, 1 d1 > d2
+ */
+
+-int mix_msgfsort (const void *d1,const void *d2)
++int mix_msgfsort (const struct dirent **d1,const struct dirent **d2)
+ {
+ char *n1 = (*(struct direct **) d1)->d_name + sizeof (MIXNAME) - 1;
+ char *n2 = (*(struct direct **) d2)->d_name + sizeof (MIXNAME) - 1;
+diff --git a/src/osdep/unix/mx.c b/src/osdep/unix/mx.c
+index 4549527..b5c5adf 100644
+--- a/src/osdep/unix/mx.c
++++ b/src/osdep/unix/mx.c
+@@ -98,8 +98,8 @@ long mx_append (MAILSTREAM *stream,char *mailbox,append_t af,void *data);
+ long mx_append_msg (MAILSTREAM *stream,char *flags,MESSAGECACHE *elt,
+ STRING *st,SEARCHSET *set);
+
+-int mx_select (struct direct *name);
+-int mx_numsort (const void *d1,const void *d2);
++int mx_select (const struct direct *name);
++int mx_numsort (const struct dirent **d1,const struct dirent **d2);
+ char *mx_file (char *dst,char *name);
+ long mx_lockindex (MAILSTREAM *stream);
+ void mx_unlockindex (MAILSTREAM *stream);
+@@ -1110,7 +1110,7 @@ long mx_append_msg (MAILSTREAM *stream,char *flags,MESSAGECACHE *elt,
+ * Returns: T to use file name, NIL to skip it
+ */
+
+-int mx_select (struct direct *name)
++int mx_select (const struct direct *name)
+ {
+ char c;
+ char *s = name->d_name;
+@@ -1125,7 +1125,7 @@ int mx_select (struct direct *name)
+ * Returns: negative if d1 < d2, 0 if d1 == d2, postive if d1 > d2
+ */
+
+-int mx_numsort (const void *d1,const void *d2)
++int mx_numsort (const struct dirent **d1,const struct dirent **d2)
+ {
+ return atoi ((*(struct direct **) d1)->d_name) -
+ atoi ((*(struct direct **) d2)->d_name);
+diff --git a/src/osdep/unix/news.c b/src/osdep/unix/news.c
+index 4cf5bb7..3da5207 100644
+--- a/src/osdep/unix/news.c
++++ b/src/osdep/unix/news.c
+@@ -76,8 +76,8 @@ long news_create (MAILSTREAM *stream,char *mailbox);
+ long news_delete (MAILSTREAM *stream,char *mailbox);
+ long news_rename (MAILSTREAM *stream,char *old,char *newname);
+ MAILSTREAM *news_open (MAILSTREAM *stream);
+-int news_select (struct direct *name);
+-int news_numsort (const void *d1,const void *d2);
++int news_select (const struct direct *name);
++int news_numsort (const struct dirent ** d1,const struct dirent ** d2);
+ void news_close (MAILSTREAM *stream,long options);
+ void news_fast (MAILSTREAM *stream,char *sequence,long flags);
+ void news_flags (MAILSTREAM *stream,char *sequence,long flags);
+@@ -402,7 +402,7 @@ MAILSTREAM *news_open (MAILSTREAM *stream)
+ * Returns: T to use file name, NIL to skip it
+ */
+
+-int news_select (struct direct *name)
++int news_select (const struct direct *name)
+ {
+ char c;
+ char *s = name->d_name;
+@@ -417,7 +417,7 @@ int news_select (struct direct *name)
+ * Returns: negative if d1 < d2, 0 if d1 == d2, postive if d1 > d2
+ */
+
+-int news_numsort (const void *d1,const void *d2)
++int news_numsort (const struct dirent ** d1,const struct dirent ** d2)
+ {
+ return atoi ((*(struct direct **) d1)->d_name) -
+ atoi ((*(struct direct **) d2)->d_name);
+--
+2.39.1
+
diff --git a/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Support-OpenSSL-1.1.patch b/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Support-OpenSSL-1.1.patch
index d5610bbcd5..e9c80fa3af 100644
--- a/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Support-OpenSSL-1.1.patch
+++ b/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Support-OpenSSL-1.1.patch
@@ -8,7 +8,7 @@ When building with OpenSSL 1.1 and newer, use the new built-in
structs having been made opaque.
Bug-Debian: https://bugs.debian.org/828589
-Upstream-Status: Unknown
+Upstream-Status: Pending [Unknown]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
diff --git a/meta-oe/recipes-devtools/uw-imap/uw-imap/quote_cctype.patch b/meta-oe/recipes-devtools/uw-imap/uw-imap/quote_cctype.patch
index f729ee2074..10c91673c3 100644
--- a/meta-oe/recipes-devtools/uw-imap/uw-imap/quote_cctype.patch
+++ b/meta-oe/recipes-devtools/uw-imap/uw-imap/quote_cctype.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -urN imap-2007.orig/Makefile imap-2007/Makefile
--- imap-2007.orig/Makefile 2007-12-20 23:11:10.000000000 +0100
+++ imap-2007/Makefile 2008-03-19 14:08:47.000000000 +0100
diff --git a/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb b/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
index 9fb12b26e4..dcb59f4ea0 100644
--- a/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
+++ b/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
@@ -14,6 +14,7 @@ SRC_URI = "https://fossies.org/linux/misc/old/imap-${PV}.tar.gz \
file://0001-Define-prototype-for-safe_flock.patch \
file://0001-Do-not-build-mtest.patch \
file://0002-tmail-Include-ctype.h-for-isdigit.patch \
+ file://0001-Fix-Wincompatible-function-pointer-types.patch \
"
SRC_URI[md5sum] = "2126fd125ea26b73b20f01fcd5940369"
@@ -21,14 +22,12 @@ SRC_URI[sha256sum] = "53e15a2b5c1bc80161d42e9f69792a3fa18332b7b771910131004eb520
S = "${WORKDIR}/imap-${PV}"
-CVE_CHECK_IGNORE += "\
- CVE-2005-0198 \
-"
+CVE_STATUS[CVE-2005-0198] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
PACKAGECONFIG[pam] = ",,libpam"
-EXTRA_OEMAKE = "CC='${CC} -std=c99 -D_GNU_SOURCE' ARRC='${AR} -rc' RANLIB='${RANLIB}'"
+EXTRA_OEMAKE = "CC='${CC} -std=c99 -D_GNU_SOURCE' ARRC='${AR} -rc' RANLIB='${RANLIB}' EXTRACFLAGS='${CFLAGS}'"
HEADERS = "src/c-client/*.h src/osdep/unix/*.h c-client/auths.c c-client/linkage.c c-client/linkage.h c-client/osdep.h"
@@ -50,3 +49,5 @@ RCONFLICTS:${PN} = "libc-client"
ALLOW_EMPTY:${PN} = "1"
+PARALLEL_MAKE = ""
+
diff --git a/meta-oe/recipes-devtools/valijson/valijson_0.7.bb b/meta-oe/recipes-devtools/valijson/valijson_0.7.bb
deleted file mode 100644
index 51b2bb9e0f..0000000000
--- a/meta-oe/recipes-devtools/valijson/valijson_0.7.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "Header-only C++ library for JSON Schema validation"
-HOMEPAGE = "https://github.com/tristanpenman/valijson"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=015106c62262b2383f6c72063f0998f2"
-
-SRC_URI = "git://github.com/tristanpenman/valijson.git;branch=master;protocol=https"
-SRCREV = "94d3bfd39ad4dca1be0f700b5eea8e4234d0e7e8"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-PACKAGECONFIG ?= "boost"
-
-PACKAGECONFIG[boost] = "-Dvalijson_EXCLUDE_BOOST=FALSE,-Dvalijson_EXCLUDE_BOOST=TRUE,boost"
-PACKAGECONFIG[examples] = "-Dvalijson_BUILD_EXAMPLES=TRUE,-Dvalijson_BUILD_EXAMPLES=FALSE,curlpp"
-PACKAGECONFIG[tests] = "-Dvalijson_BUILD_TESTS=TRUE,-Dvalijson_BUILD_TESTS=FALSE,curlpp"
-
-# valijson is a header only C++ library, so the main package will be empty.
-RDEPENDS:${PN}-dev = ""
-
-BBCLASSEXTEND = "native nativesdk"
-
-do_install() {
- install -d ${D}${includedir}/compat
- install -d ${D}${includedir}/valijson
- install -d ${D}${includedir}/valijson/adapters
- install -d ${D}${includedir}/valijson/constraints
- install -d ${D}${includedir}/valijson/internal
- install -d ${D}${includedir}/valijson/utils
-
- install -m 0644 ${S}/include/compat/* ${D}${includedir}/compat
- install -D -m 0644 ${S}/include/valijson/*.hpp -t ${D}${includedir}/valijson
- install -D -m 0644 ${S}/include/valijson/adapters/*.hpp -t ${D}${includedir}/valijson/adapters
- install -D -m 0644 ${S}/include/valijson/constraints/*.hpp -t ${D}${includedir}/valijson/constraints
- install -D -m 0644 ${S}/include/valijson/internal/*.hpp -t ${D}${includedir}/valijson/internal
- install -D -m 0644 ${S}/include/valijson/utils/*.hpp -t ${D}${includedir}/valijson/utils
-}
diff --git a/meta-oe/recipes-devtools/valijson/valijson_1.0.2.bb b/meta-oe/recipes-devtools/valijson/valijson_1.0.2.bb
new file mode 100644
index 0000000000..f531218aeb
--- /dev/null
+++ b/meta-oe/recipes-devtools/valijson/valijson_1.0.2.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Header-only C++ library for JSON Schema validation"
+HOMEPAGE = "https://github.com/tristanpenman/valijson"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5c4583a434195e4f3b418e17c8ca2daf"
+
+SRC_URI = "git://github.com/tristanpenman/valijson.git;branch=master;protocol=https"
+SRCREV = "0b4771e273a065d437814baf426bcfcafec0f434"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+PACKAGECONFIG ?= "boost"
+
+PACKAGECONFIG[boost] = "-Dvalijson_EXCLUDE_BOOST=FALSE,-Dvalijson_EXCLUDE_BOOST=TRUE,boost"
+PACKAGECONFIG[examples] = "-Dvalijson_BUILD_EXAMPLES=TRUE,-Dvalijson_BUILD_EXAMPLES=FALSE,curlpp"
+PACKAGECONFIG[tests] = "-Dvalijson_BUILD_TESTS=TRUE,-Dvalijson_BUILD_TESTS=FALSE,curlpp"
+
+# valijson is a header only C++ library, so the main package will be empty.
+RDEPENDS:${PN}-dev = ""
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.4.bb b/meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.4.bb
deleted file mode 100644
index 22fd94b093..0000000000
--- a/meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.4.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Xerces-c is a validating xml parser written in C++"
-DESCRIPTION = "Xerces-C++ makes it easy to give your application \
- the ability to read and write XML data. \
- A shared library is provided for parsing, generating, \
- manipulating, and validating XML documents using \
- the DOM, SAX, and SAX2 APIs."
-HOMEPAGE = "http://xerces.apache.org/xerces-c/"
-SECTION = "libs"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI = "http://archive.apache.org/dist/xerces/c/3/sources/${BP}.tar.bz2"
-SRC_URI[md5sum] = "d04ae9d8b2dee2157c6db95fa908abfd"
-SRC_URI[sha256sum] = "9408f12c1628ecf80730bedbe8b2caad810edd01bb4c66f77b60c873e8cc6891"
-
-inherit autotools
-
-PACKAGECONFIG ??= "curl icu"
-PACKAGECONFIG[curl] = "--with-curl=${STAGING_DIR_TARGET}${prefix},--with-curl=no,curl"
-PACKAGECONFIG[icu] = "--with-icu=${STAGING_DIR_TARGET}${prefix},--with-icu=no,icu"
-
-do_install:prepend () {
- sed -i -e 's:-L${STAGING_DIR}/lib:-L\$\{libdir\}:g' ${B}/xerces-c.pc
-}
-
-PACKAGES = "libxerces-c \
- libxerces-c-dev \
- xerces-c-samples \
- libxerces-c-staticdev \
- ${PN}-dbg \
-"
-
-RPROVIDES:${PN}-dbg += "libxerces-c-dbg xerces-c-samples-dbg"
-
-FILES:libxerces-c = "${libdir}/libxerces-c-3.1.so"
-FILES:libxerces-c-dev = "${libdir}/lib*.la \
- ${libdir}/libxerces-c.so \
- ${libdir}/pkgconfig/xerces-c.pc \
- ${includedir}/xercesc \
-"
-FILES:xerces-c-samples = "${bindir}/*"
-FILES:libxerces-c-staticdev = "${libdir}/lib*.a"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/xerces-c/xerces-c_3.2.5.bb b/meta-oe/recipes-devtools/xerces-c/xerces-c_3.2.5.bb
new file mode 100644
index 0000000000..1643af2546
--- /dev/null
+++ b/meta-oe/recipes-devtools/xerces-c/xerces-c_3.2.5.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Xerces-c is a validating xml parser written in C++"
+DESCRIPTION = "Xerces-C++ makes it easy to give your application \
+ the ability to read and write XML data. \
+ A shared library is provided for parsing, generating, \
+ manipulating, and validating XML documents using \
+ the DOM, SAX, and SAX2 APIs."
+HOMEPAGE = "http://xerces.apache.org/xerces-c/"
+SECTION = "libs"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "http://archive.apache.org/dist/xerces/c/3/sources/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "1db4028c9b7f1f778efbf4a9462d65e13f9938f2c22f9e9994e12c49ba97e252"
+
+inherit autotools
+
+PACKAGECONFIG ??= "curl icu"
+PACKAGECONFIG[curl] = "--with-curl=${STAGING_DIR_TARGET}${prefix},--with-curl=no,curl"
+PACKAGECONFIG[icu] = "--with-icu=${STAGING_DIR_TARGET}${prefix},--with-icu=no,icu"
+
+do_install:prepend () {
+ sed -i s:-L${STAGING_LIBDIR}::g ${B}/xerces-c.pc
+}
+
+PACKAGES = "libxerces-c \
+ libxerces-c-dev \
+ xerces-c-samples \
+ libxerces-c-staticdev \
+ ${PN}-dbg \
+"
+
+RPROVIDES:${PN}-dbg += "libxerces-c-dbg xerces-c-samples-dbg"
+
+FILES:libxerces-c = "${libdir}/libxerces-c-3.2.so"
+FILES:libxerces-c-dev = "${libdir}/lib*.la \
+ ${libdir}/libxerces-c.so \
+ ${libdir}/pkgconfig/xerces-c.pc \
+ ${includedir}/xercesc \
+"
+FILES:xerces-c-samples = "${bindir}/*"
+FILES:libxerces-c-staticdev = "${libdir}/lib*.a"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0003-src-Makefile-Fix-Makefile-macro-error.patch b/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0003-src-Makefile-Fix-Makefile-macro-error.patch
deleted file mode 100644
index 3d861fc625..0000000000
--- a/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0003-src-Makefile-Fix-Makefile-macro-error.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From ea4ca50ca9cab755f3722096158a46deec0e663a Mon Sep 17 00:00:00 2001
-From: Arthur She <arthur.she@linaro.org>
-Date: Tue, 25 Aug 2020 09:51:26 -0700
-Subject: [PATCH] src/Makefile: Fix Makefile macro error
-
-This error caused the curl library wouldn't be linked correctly.
-
-Upstream-Status: Pending
-Signed-off-by: Arthur She <arthur.she@linaro.org>
----
- src/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index 1cdf8b0..acd04dd 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -57,7 +57,7 @@ ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
- TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/xmlrpc_curl_transport
- TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/curltransaction
- TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/curlmulti
-- TRANSPORT_LIBDEP += $(shell $CURL_CONFIG --libs)
-+ TRANSPORT_LIBDEP += $(shell $(CURL_CONFIG) --libs)
- TRANSPORT_INCLUDES += -Isrcdir/lib/curl_transport
- endif
- ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
---
-2.17.1
-
diff --git a/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb b/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb
deleted file mode 100644
index 36205009a4..0000000000
--- a/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.54.02.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-DESCRIPTION = "XML-RPC for C/C++ is programming libraries and related tools to help you \
-write an XML-RPC server or client in C or C++."
-
-HOMEPAGE = "http://xmlrpc-c.sourceforge.net/"
-LICENSE = "BSD-3-Clause & MIT"
-LIC_FILES_CHKSUM = "file://doc/COPYING;md5=aefbf81ba0750f02176b6f86752ea951"
-
-SRC_URI = "git://github.com/mirror/xmlrpc-c.git;branch=master;protocol=https \
- file://0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch \
- file://0002-fix-formatting-issues.patch \
- file://0003-src-Makefile-Fix-Makefile-macro-error.patch \
- "
-
-#Release 1.54.02
-SRCREV = "86405c7e1bd4f70287204a28d242a1054daab520"
-
-S = "${WORKDIR}/git/stable"
-
-inherit autotools-brokensep binconfig pkgconfig
-
-TARGET_CFLAGS += "-Wno-narrowing"
-
-EXTRA_OEMAKE += "CC_FOR_BUILD='${BUILD_CC}' \
- LD_FOR_BUILD='${BUILD_LD}' \
- CFLAGS_FOR_BUILD='${BUILD_CFLAGS}' \
- LDFLAGS_FOR_BUILD='${BUILD_LDFLAGS}' \
- "
-
-EXTRA_OECONF += "--disable-libwww-client --disable-wininet-client"
-
-PACKAGECONFIG ??= "curl cplusplus"
-
-PACKAGECONFIG[abyss] = "--enable-abyss-server --enable-abyss-threads --enable-abyss-openssl,--disable-abyss-server --disable-abyss-threads --disable-abyss-openssl,openssl"
-PACKAGECONFIG[cplusplus] = "--enable-cplusplus,--disable-cplusplus"
-PACKAGECONFIG[curl] = "--enable-curl-client,--disable-curl-client,curl"
-
-do_configure() {
- gnu-configize --verbose --force ${S}
- autoconf
- oe_runconf
- # license is incompatible with lib/util/getoptx.*
- rm -fv ${S}/tools/turbocharger/mod_gzip.c
-}
-
-BBCLASSEXTEND = "native"
-
-CLEANBROKEN = "1"
diff --git a/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.59.01.bb b/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.59.01.bb
new file mode 100644
index 0000000000..5d5152b834
--- /dev/null
+++ b/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.59.01.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "XML-RPC for C/C++ is programming libraries and related tools to help you \
+write an XML-RPC server or client in C or C++."
+
+HOMEPAGE = "http://xmlrpc-c.sourceforge.net/"
+LICENSE = "BSD-3-Clause & MIT"
+LIC_FILES_CHKSUM = "file://doc/COPYING;md5=aefbf81ba0750f02176b6f86752ea951"
+
+SRC_URI = "git://github.com/mirror/xmlrpc-c.git;branch=master;protocol=https \
+ file://0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch \
+ file://0002-fix-formatting-issues.patch \
+ "
+#Release 1.59.01
+SRCREV = "352aeaa9ae49e90e55187cbda839f2113df06278"
+
+S = "${WORKDIR}/git/stable"
+
+inherit autotools-brokensep binconfig pkgconfig
+
+TARGET_CFLAGS += "-Wno-narrowing"
+
+EXTRA_OEMAKE += "CC_FOR_BUILD='${BUILD_CC}' \
+ LD_FOR_BUILD='${BUILD_LD}' \
+ CFLAGS_FOR_BUILD='${BUILD_CFLAGS}' \
+ LDFLAGS_FOR_BUILD='${BUILD_LDFLAGS}' \
+ "
+
+EXTRA_OECONF += "--disable-libwww-client --disable-wininet-client"
+
+PACKAGECONFIG ??= "curl cplusplus"
+
+PACKAGECONFIG[abyss] = "--enable-abyss-server --enable-abyss-threads --enable-abyss-openssl,--disable-abyss-server --disable-abyss-threads --disable-abyss-openssl,openssl"
+PACKAGECONFIG[cplusplus] = "--enable-cplusplus,--disable-cplusplus"
+PACKAGECONFIG[curl] = "--enable-curl-client,--disable-curl-client,curl"
+
+do_configure() {
+ gnu-configize --verbose --force ${S}
+ autoconf
+ oe_runconf
+ # license is incompatible with lib/util/getoptx.*
+ rm -fv ${S}/tools/turbocharger/mod_gzip.c
+}
+
+do_install:append:class-target() {
+ sed -i 's,${WORKDIR},${TARGET_DBGSRC_DIR},g' ${D}${bindir}/xmlrpc-c-config
+}
+
+BBCLASSEXTEND = "native"
+
+CLEANBROKEN = "1"
diff --git a/meta-oe/recipes-devtools/yajl/yajl/CVE-2017-16516.patch b/meta-oe/recipes-devtools/yajl/yajl/CVE-2017-16516.patch
new file mode 100644
index 0000000000..1241ff9e31
--- /dev/null
+++ b/meta-oe/recipes-devtools/yajl/yajl/CVE-2017-16516.patch
@@ -0,0 +1,37 @@
+From 0b5e73c4321de0ba1d495fdc0967054b2a77931c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
+Date: Mon, 10 Jul 2023 13:36:10 +0100
+Subject: [PATCH] Fix for CVE-2017-16516
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Description: Fix for CVE-2017-16516
+ Potential buffer overread: A JSON file can cause denial of service.
+Origin: https://github.com/brianmario/yajl-ruby/commit/a8ca8f476655adaa187eedc60bdc770fff3c51ce
+
+CVE: CVE-2017-16516
+Upstream-Status: Submitted [https://github.com/lloyd/yajl/issues/248]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ src/yajl_encode.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/yajl_encode.c b/src/yajl_encode.c
+index fd08258..0d97cc5 100644
+--- a/src/yajl_encode.c
++++ b/src/yajl_encode.c
+@@ -139,8 +139,8 @@ void yajl_string_decode(yajl_buf buf, const unsigned char * str,
+ end+=3;
+ /* check if this is a surrogate */
+ if ((codepoint & 0xFC00) == 0xD800) {
+- end++;
+- if (str[end] == '\\' && str[end + 1] == 'u') {
++ if (end + 2 < len && str[end + 1] == '\\' && str[end + 2] == 'u') {
++ end++;
+ unsigned int surrogate = 0;
+ hexToDigit(&surrogate, str + end + 2);
+ codepoint =
+--
+2.34.1
+
diff --git a/meta-oe/recipes-devtools/yajl/yajl/CVE-2022-24795.patch b/meta-oe/recipes-devtools/yajl/yajl/CVE-2022-24795.patch
new file mode 100644
index 0000000000..0dc859099d
--- /dev/null
+++ b/meta-oe/recipes-devtools/yajl/yajl/CVE-2022-24795.patch
@@ -0,0 +1,59 @@
+From 17de4d15687aa30c49660dc4b792b1fb4d38b569 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Thu, 7 Apr 2022 17:29:54 +0200
+Subject: [PATCH] Fix CVE-2022-24795
+
+There was an integer overflow in yajl_buf_ensure_available() leading
+to allocating less memory than requested. Then data were written past
+the allocated heap buffer in yajl_buf_append(), the only caller of
+yajl_buf_ensure_available(). Another result of the overflow was an
+infinite loop without a return from yajl_buf_ensure_available().
+
+yajl-ruby project, which bundles yajl, fixed it
+<https://github.com/brianmario/yajl-ruby/pull/211> by checking for the
+integer overflow, fortifying buffer allocations, and report the
+failures to a caller. But then the caller yajl_buf_append() skips
+a memory write if yajl_buf_ensure_available() failed leading to a data
+corruption.
+
+A yajl fork mainter recommended calling memory allocation callbacks with
+the large memory request and let them to handle it. But that has the
+problem that it's not possible pass the overely large size to the
+callbacks.
+
+This patch catches the integer overflow and terminates the process
+with abort().
+
+CVE: CVE-2022-24795
+Upstream-Status: Submitted [https://github.com/lloyd/yajl/issues/239]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ src/yajl_buf.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/src/yajl_buf.c b/src/yajl_buf.c
+index 1aeafde..55c11ad 100644
+--- a/src/yajl_buf.c
++++ b/src/yajl_buf.c
+@@ -45,7 +45,17 @@ void yajl_buf_ensure_available(yajl_buf buf, size_t want)
+
+ need = buf->len;
+
+- while (want >= (need - buf->used)) need <<= 1;
++ if (((buf->used > want) ? buf->used : want) > (size_t)(buf->used + want)) {
++ /* We cannot allocate more memory than SIZE_MAX. */
++ abort();
++ }
++ while (want >= (need - buf->used)) {
++ if (need >= (size_t)((size_t)(-1)<<1)>>1) {
++ /* need would overflow. */
++ abort();
++ }
++ need <<= 1;
++ }
+
+ if (need != buf->len) {
+ buf->data = (unsigned char *) YA_REALLOC(buf->alloc, buf->data, need);
+--
+2.34.1
+
diff --git a/meta-oe/recipes-devtools/yajl/yajl/CVE-2023-33460.patch b/meta-oe/recipes-devtools/yajl/yajl/CVE-2023-33460.patch
new file mode 100644
index 0000000000..47454dc8af
--- /dev/null
+++ b/meta-oe/recipes-devtools/yajl/yajl/CVE-2023-33460.patch
@@ -0,0 +1,35 @@
+Fix memory leaks. Taken from the Fedora packaging (https://src.fedoraproject.org/rpms/yajl)
+where it was backported from openEuler.
+
+CVE: CVE-2023-33460
+Upstream-Status: Submitted [https://github.com/lloyd/yajl/issues/250]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/src/yajl_tree.c b/src/yajl_tree.c
+index 3d357a3..56c7012 100644
+--- a/src/yajl_tree.c
++++ b/src/yajl_tree.c
+@@ -143,7 +143,7 @@ static yajl_val context_pop(context_t *ctx)
+ ctx->stack = stack->next;
+
+ v = stack->value;
+-
++ free (stack->key);
+ free (stack);
+
+ return (v);
+@@ -444,7 +444,14 @@ yajl_val yajl_tree_parse (const char *input,
+ snprintf(error_buffer, error_buffer_size, "%s", internal_err_str);
+ YA_FREE(&(handle->alloc), internal_err_str);
+ }
++ while(ctx.stack != NULL) {
++ yajl_val v = context_pop(&ctx);
++ yajl_tree_free(v);
++ }
+ yajl_free (handle);
++ //If the requested memory is not released in time, it will cause memory leakage
++ if(ctx.root)
++ yajl_tree_free(ctx.root);
+ return NULL;
+ }
+
diff --git a/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb b/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb
index cf8dbb183e..2a34210f3c 100644
--- a/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb
+++ b/meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb
@@ -8,7 +8,11 @@ HOMEPAGE = "http://lloyd.github.com/yajl/"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://COPYING;md5=39af6eb42999852bdd3ea00ad120a36d"
-SRC_URI = "git://github.com/lloyd/yajl;branch=master;protocol=https"
+SRC_URI = "git://github.com/lloyd/yajl;branch=master;protocol=https \
+ file://CVE-2017-16516.patch \
+ file://CVE-2022-24795.patch \
+ file://CVE-2023-33460.patch \
+ "
SRCREV = "a0ecdde0c042b9256170f2f8890dd9451a4240aa"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-devtools/yasm/yasm/0001-yasm-Set-build-date-to-SOURCE_DATE_EPOCH.patch b/meta-oe/recipes-devtools/yasm/yasm/0001-yasm-Set-build-date-to-SOURCE_DATE_EPOCH.patch
new file mode 100644
index 0000000000..42f5559e3f
--- /dev/null
+++ b/meta-oe/recipes-devtools/yasm/yasm/0001-yasm-Set-build-date-to-SOURCE_DATE_EPOCH.patch
@@ -0,0 +1,37 @@
+From eb164bb201c0f792fa8aa78270c47294065183a3 Mon Sep 17 00:00:00 2001
+From: Oleh Matiusha <omatiush@cisco.com>
+Date: Tue, 6 Feb 2024 09:33:11 +0000
+Subject: [PATCH 1/2] yasm: Set build date to SOURCE_DATE_EPOCH
+
+If SOURCE_DATE_EPOCH is set, use it to generate a reproducible
+string for BUILD_DATE.
+
+Signed-off-by: Oleh Matiusha <omatiush@cisco.com>
+
+Upstream-Status: Pending
+---
+ configure.ac | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 2823ecd..eeb51ce 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -103,6 +103,14 @@ AM_WITH_DMALLOC
+ #
+ AC_CHECK_HEADERS([strings.h libgen.h unistd.h direct.h sys/stat.h])
+
++# Use reproducible build date and time
++if test "$SOURCE_DATE_EPOCH"; then
++ DATE_FMT="%d %b %Y %H:%M:%S"
++ BUILD_DATE=$(LC_ALL=C date -u -d "@$SOURCE_DATE_EPOCH" "+$DATE_FMT")
++ AC_DEFINE_UNQUOTED([BUILD_DATE], ["$BUILD_DATE"], [Use reproducidle build date])
++fi
++
++
+ #
+ # Checks for typedefs, structures, and compiler characteristics.
+ #
+--
+2.33.0
+
diff --git a/meta-oe/recipes-devtools/yasm/yasm/0002-yasm-Use-BUILD_DATE-for-reproducibility.patch b/meta-oe/recipes-devtools/yasm/yasm/0002-yasm-Use-BUILD_DATE-for-reproducibility.patch
new file mode 100644
index 0000000000..4b9c933d01
--- /dev/null
+++ b/meta-oe/recipes-devtools/yasm/yasm/0002-yasm-Use-BUILD_DATE-for-reproducibility.patch
@@ -0,0 +1,42 @@
+From 19fffab74a201dc41c3da7e74d86eafa8f68bbc6 Mon Sep 17 00:00:00 2001
+From: Oleh Matiusha <omatiush@cisco.com>
+Date: Tue, 6 Feb 2024 09:34:26 +0000
+Subject: [PATCH] yasm: Use BUILD_DATE for reproducibility
+
+Use reproducible build date instead of compilation time and date.
+
+Signed-off-by: Oleh Matiusha <omatiush@cisco.com>
+
+
+Upstream-Status: Pending
+---
+ tools/re2c/parser.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/tools/re2c/parser.c b/tools/re2c/parser.c
+index 02d5c66..1c90aee 100644
+--- a/tools/re2c/parser.c
++++ b/tools/re2c/parser.c
+@@ -5,6 +5,7 @@
+ #include "tools/re2c/globals.h"
+ #include "tools/re2c/parse.h"
+ #include "tools/re2c/parser.h"
++#include "config.h"
+
+ int yylex(void);
+ static RegExp *parse_expr(void);
+@@ -233,7 +234,11 @@ void parse(FILE *i, FILE *o){
+ peektok = NONE;
+
+ fputs("/* Generated by re2c 0.9.1-C on ", o);
++#ifndef BUILD_DATE
+ fprintf(o, "%-24s", ctime(&now));
++#else
++ fprintf(o, "%-24s", BUILD_DATE " ");
++#endif
+ fputs(" */\n", o); oline+=2;
+
+ in = Scanner_new(i);
+--
+2.33.0
+
diff --git a/meta-oe/recipes-devtools/yasm/yasm/CVE-2023-31975.patch b/meta-oe/recipes-devtools/yasm/yasm/CVE-2023-31975.patch
new file mode 100644
index 0000000000..ae10e99c2f
--- /dev/null
+++ b/meta-oe/recipes-devtools/yasm/yasm/CVE-2023-31975.patch
@@ -0,0 +1,29 @@
+From b2cc5a1693b17ac415df76d0795b15994c106441 Mon Sep 17 00:00:00 2001
+From: Katsuhiko Gondow <gondow@cs.titech.ac.jp>
+Date: Tue, 13 Jun 2023 05:00:47 +0900
+Subject: [PATCH] Fix memory leak in bin-objfmt (#231)
+
+Upstream-Status: Backport [https://github.com/yasm/yasm/commit/b2cc5a1693b17ac415df76d0795b15994c106441]
+
+CVE: CVE-2023-31975
+---
+ modules/objfmts/bin/bin-objfmt.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/modules/objfmts/bin/bin-objfmt.c b/modules/objfmts/bin/bin-objfmt.c
+index 18026750..a38c3422 100644
+--- a/modules/objfmts/bin/bin-objfmt.c
++++ b/modules/objfmts/bin/bin-objfmt.c
+@@ -1680,6 +1680,10 @@ static void
+ bin_section_data_destroy(void *data)
+ {
+ bin_section_data *bsd = (bin_section_data *)data;
++ if (bsd->align)
++ yasm_xfree(bsd->align);
++ if (bsd->valign)
++ yasm_xfree(bsd->valign);
+ if (bsd->start)
+ yasm_expr_destroy(bsd->start);
+ if (bsd->vstart)
+--
+2.40.0
diff --git a/meta-oe/recipes-devtools/yasm/yasm/CVE-2023-37732.patch b/meta-oe/recipes-devtools/yasm/yasm/CVE-2023-37732.patch
new file mode 100644
index 0000000000..1ca33f0a92
--- /dev/null
+++ b/meta-oe/recipes-devtools/yasm/yasm/CVE-2023-37732.patch
@@ -0,0 +1,41 @@
+From 2cd3bb50e256f5ed5f611ac611d25fe673f2cec3 Mon Sep 17 00:00:00 2001
+From: Peter Johnson <johnson.peter@gmail.com>
+Date: Fri, 11 Aug 2023 10:49:51 +0000
+Subject: [PATCH] elf.c: Fix NULL deref on bad xsize expression (#234)
+
+CVE: CVE-2023-37732
+
+Upstream-Status: Backport [https://github.com/yasm/yasm/commit/2cd3bb50e256f5ed5f611ac611d25fe673f2cec3]
+
+Signed-off-by: Soumya <soumya.sambu@windriver.com>
+---
+ modules/objfmts/elf/elf.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/modules/objfmts/elf/elf.c b/modules/objfmts/elf/elf.c
+index 2486bba8..bab4c9ca 100644
+--- a/modules/objfmts/elf/elf.c
++++ b/modules/objfmts/elf/elf.c
+@@ -482,15 +482,15 @@ elf_symtab_write_to_file(FILE *f, elf_symtab_head *symtab,
+
+ /* get size (if specified); expr overrides stored integer */
+ if (entry->xsize) {
+- size_intn = yasm_intnum_copy(
+- yasm_expr_get_intnum(&entry->xsize, 1));
+- if (!size_intn) {
++ yasm_intnum *intn = yasm_expr_get_intnum(&entry->xsize, 1);
++ if (!intn) {
+ yasm_error_set(YASM_ERROR_VALUE,
+ N_("size specifier not an integer expression"));
+ yasm_errwarn_propagate(errwarns, entry->xsize->line);
+- }
++ } else
++ size_intn = yasm_intnum_copy(intn);
+ }
+- else
++ if (!size_intn)
+ size_intn = yasm_intnum_create_uint(entry->size);
+
+ /* get EQU value for constants */
+--
+2.40.0
diff --git a/meta-oe/recipes-devtools/yasm/yasm_git.bb b/meta-oe/recipes-devtools/yasm/yasm_git.bb
index 3dd382be1f..216b777667 100644
--- a/meta-oe/recipes-devtools/yasm/yasm_git.bb
+++ b/meta-oe/recipes-devtools/yasm/yasm_git.bb
@@ -7,11 +7,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a12d8903508fb6bfd49d8d82c6170dd9"
DEPENDS += "flex-native bison-native"
PACKAGECONFIG[docs] = ",,xmlto-native,"
-PV = "1.3.0+git${SRCPV}"
+PV = "1.3.0+git"
# v1.3.0
SRCREV = "ba463d3c26c0ece2e797b8d6381b161633b5971a"
SRC_URI = "git://github.com/yasm/yasm.git;branch=master;protocol=https \
file://0001-Do-not-use-AC_HEADER_STDC.patch \
+ file://CVE-2023-31975.patch \
+ file://CVE-2023-37732.patch \
+ file://0001-yasm-Set-build-date-to-SOURCE_DATE_EPOCH.patch \
+ file://0002-yasm-Use-BUILD_DATE-for-reproducibility.patch \
"
S = "${WORKDIR}/git"
@@ -28,3 +32,4 @@ do_configure:prepend() {
# Don't include $CC (which includes path to sysroot) in generated header.
sed -i -e "s/^echo \"\/\* generated \$ac_cv_stdint_message \*\/\" >>\$ac_stdint$"// ${S}/m4/ax_create_stdint_h.m4
}
+
diff --git a/meta-oe/recipes-extended/beep/beep_1.4.12.bb b/meta-oe/recipes-extended/beep/beep_1.4.12.bb
new file mode 100644
index 0000000000..a4bc10c366
--- /dev/null
+++ b/meta-oe/recipes-extended/beep/beep_1.4.12.bb
@@ -0,0 +1,19 @@
+SUMMARY = "beep allows you to have the PC speaker issue beeps and beep patterns"
+DESCRIPTION = "beep allows you to have the PC speaker issue beeps and beep \
+patterns with given frequencies, durations, and spacing."
+HOMEPAGE = "https://github.com/spkr-beep/beep"
+BUGTRACKER = "https://github.com/spkr-beep/beep/issues"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://github.com/spkr-beep/beep.git;protocol=https;branch=master \
+ file://0001-beep-library-Make-it-compatible-with-c99.patch"
+SRCREV = "11453a79f2cea81832329b06ca3a284aa7a0a52e"
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "prefix='${prefix}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
+
+do_install() {
+ oe_runmake install DESTDIR='${D}'
+}
diff --git a/meta-oe/recipes-extended/beep/beep_1.4.9.bb b/meta-oe/recipes-extended/beep/beep_1.4.9.bb
deleted file mode 100644
index ec62f31870..0000000000
--- a/meta-oe/recipes-extended/beep/beep_1.4.9.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "beep allows you to have the PC speaker issue beeps and beep patterns"
-DESCRIPTION = "beep allows you to have the PC speaker issue beeps and beep \
-patterns with given frequencies, durations, and spacing."
-HOMEPAGE = "https://github.com/spkr-beep/beep"
-BUGTRACKER = "https://github.com/spkr-beep/beep/issues"
-
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "git://github.com/spkr-beep/beep.git;protocol=https;branch=master \
- file://0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch \
-"
-SRCREV = "8b85ddd09f73b9fd7caa5679298781a57af194ac"
-S = "${WORKDIR}/git"
-
-EXTRA_OEMAKE = " \
- COMPILER_gcc='${CC}' \
- LINKER_gcc='${CC}' \
- COMPILER_clang=no \
- LINKER_clang=no \
-"
-
-EXTRA_OEMAKE:toolchain-clang = " \
- COMPILER_clang='${CC}' \
- LINKER_clang='${CC}' \
- COMPILER_gcc=no \
- LINKER_gcc=no \
-"
-
-do_install() {
- oe_runmake install DESTDIR='${D}'
-}
diff --git a/meta-oe/recipes-extended/beep/files/0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch b/meta-oe/recipes-extended/beep/files/0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch
deleted file mode 100644
index ba7681b983..0000000000
--- a/meta-oe/recipes-extended/beep/files/0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 6b33adfa438e35b6a37cfb0364274370ef4f9fc1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 23 Dec 2020 18:00:59 +0000
-Subject: [PATCH] Do not use -Werror as it fails with newer clang 11+
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- GNUmakefile | 1 -
- 1 file changed, 1 deletion(-)
-
---- a/GNUmakefile
-+++ b/GNUmakefile
-@@ -91,12 +91,13 @@ comma := ,
- # If supported by COMPILER_gcc, add given flags to CFLAGS_gcc.
- # Example usage:
- # $(eval $(call CHECK_CFLAGS_gcc,-fasynchronous-unwind-tables))
--define CHECK_CFLAGS_gcc
--CFLAGS_gcc += $$(if $$(shell if $$(COMPILER_gcc) $(1) -x c -o compile-check.gcc-o -c - < /dev/null > /dev/null 2>&1; then echo yes; else :; fi; rm -f compile-check.gcc-o > /dev/null 2>&1),$(1))
--endef
-
- COMPILER_gcc = gcc
- LINKER_gcc = gcc
-+ifneq ($(COMPILER_gcc),no)
-+define CHECK_CFLAGS_gcc
-+CFLAGS_gcc += $$(if $$(shell if $$(COMPILER_gcc) $(1) -x c -o compile-check.gcc-o -c - < /dev/null > /dev/null 2>&1; then echo yes; else :; fi; rm -f compile-check.gcc-o > /dev/null 2>&1),$(1))
-+endef
- CPPFLAGS_gcc =
- CFLAGS_gcc =
- CFLAGS_gcc += -std=gnu99 -pedantic
-@@ -113,30 +114,24 @@ CFLAGS_gcc += -save-temps=obj
- LDFLAGS_gcc =
- LIBS_gcc =
-
--ifneq ($(call pathsearch,$(COMPILER_gcc)),)
--ifneq ($(COMPILER_gcc)),no)
- COMPILERS += gcc
- endif
--endif
-
- COMPILER_clang = clang
- LINKER_clang = clang
-+
-+ifneq ($(COMPILER_clang),no)
- CPPFLAGS_clang =
- CFLAGS_clang += -Wall -Wextra
- CFLAGS_clang += -Weverything
- CFLAGS_clang += -Wno-padded
- CFLAGS_clang += -std=gnu99 -pedantic
--CFLAGS_clang += -Werror
--CFLAGS_clang += -fsanitize=undefined
- CFLAGS_clang += -O -g
- LDFLAGS_clang =
- LIBS_clang =
-
--ifneq ($(call pathsearch,$(COMPILER_clang)),)
--ifneq ($(COMPILER_clang),no)
- COMPILERS += clang
- endif
--endif
-
-
- ########################################################################
diff --git a/meta-oe/recipes-extended/beep/files/0001-beep-library-Make-it-compatible-with-c99.patch b/meta-oe/recipes-extended/beep/files/0001-beep-library-Make-it-compatible-with-c99.patch
new file mode 100644
index 0000000000..240e075a89
--- /dev/null
+++ b/meta-oe/recipes-extended/beep/files/0001-beep-library-Make-it-compatible-with-c99.patch
@@ -0,0 +1,78 @@
+From 66b06e03fc25a168e06c7af5ccccc3162ddbf92a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 13 Nov 2023 17:18:55 -0800
+Subject: [PATCH] beep-library: Make it compatible with < c99
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ beep-library.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+--- a/beep-library.c
++++ b/beep-library.c
+@@ -44,7 +44,7 @@
+ int open_checked_char_device(const char *const device_name)
+ {
+ struct stat sb;
+-
++ int fd = -1;
+ if (-1 == stat(device_name, &sb)) {
+ LOG_VERBOSE("could not stat(2) %s: %s",
+ device_name, strerror(errno));
+@@ -57,7 +57,7 @@ int open_checked_char_device(const char
+ return -1;
+ }
+
+- const int fd = open(device_name, O_WRONLY);
++ fd = open(device_name, O_WRONLY);
+ if (fd == -1) {
+ LOG_VERBOSE("could not open(2) %s: %s",
+ device_name, strerror(errno));
+@@ -90,6 +90,7 @@ void safe_error_exit(const char *const m
+ {
+ const int saved_errno = errno;
+ char strerr_buf[128];
++ size_t errlen, msglen;
+ const int ret = strerror_r(saved_errno, strerr_buf, sizeof(strerr_buf));
+ if (ret != 0) {
+ if (write(STDERR_FILENO, "strerror_r error\n",
+@@ -98,14 +99,14 @@ void safe_error_exit(const char *const m
+ }
+ _exit(EXIT_FAILURE);
+ }
+- const size_t msglen = strlen(msg);
++ msglen = strlen(msg);
+ if (write(STDERR_FILENO, msg, msglen)) {
+ /* ignore all write errors */
+ }
+ if (write(STDERR_FILENO, ": ", 2)) {
+ /* ignore all write errors */
+ }
+- const size_t errlen = strlen(strerr_buf);
++ errlen = strlen(strerr_buf);
+ if (write(STDERR_FILENO, strerr_buf, errlen)) {
+ /* ignore all write errors */
+ }
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -155,7 +155,6 @@ $(eval $(call CHECK_CFLAGS,common_CFLAGS
+ $(eval $(call CHECK_CFLAGS,common_CFLAGS,-Wall))
+ $(eval $(call CHECK_CFLAGS,common_CFLAGS,-Wextra))
+ $(eval $(call CHECK_CFLAGS,common_CFLAGS,-Weverything))
+-$(eval $(call CHECK_CFLAGS,common_CFLAGS,-Werror))
+ $(eval $(call CHECK_CFLAGS,common_CFLAGS,-Wno-padded))
+ $(eval $(call CHECK_CFLAGS,common_CFLAGS,-Werror=format-security))
+ $(eval $(call CHECK_CFLAGS,common_CFLAGS,-Wno-disabled-macro-expansion))
+@@ -169,11 +168,6 @@ $(eval $(call CHECK_CFLAGS,CFLAGS,-fanal
+ $(eval $(call CHECK_CFLAGS,CFLAGS,-fstack-protector-strong))
+ $(eval $(call CHECK_CFLAGS,CFLAGS,-fstack-clash-protection))
+ $(eval $(call CHECK_CFLAGS,CFLAGS,-fcf-protection))
+-$(eval $(call CHECK_CFLAGS,CFLAGS,-fsanitize=undefined))
+-
+-
+-CFLAGS += -save-temps=obj
+-
+
+ $(info # common_CFLAGS=$(common_CFLAGS))
+ $(info # CFLAGS=$(CFLAGS))
diff --git a/meta-oe/recipes-extended/beep/files/linux-input.patch b/meta-oe/recipes-extended/beep/files/linux-input.patch
deleted file mode 100644
index 1b38ba72a3..0000000000
--- a/meta-oe/recipes-extended/beep/files/linux-input.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-# the diff between Alessandro Zummo's copy of beep.c and the original
-# one...
-
---- beep-1.2.2/beep.c.orig 2006-01-29 12:13:36.994560551 -0800
-+++ beep-1.2.2/beep.c 2006-01-29 12:35:02.950558713 -0800
-@@ -26,6 +26,7 @@
- #include <sys/ioctl.h>
- #include <sys/types.h>
- #include <linux/kd.h>
-+#include <linux/input.h>
-
- /* I don't know where this number comes from, I admit that freely. A
- wonderful human named Raine M. Ekman used it in a program that played
-@@ -86,18 +87,28 @@ typedef struct beep_parms_t {
- struct beep_parms_t *next; /* in case -n/--new is used. */
- } beep_parms_t;
-
-+enum { BEEP_TYPE_CONSOLE, BEEP_TYPE_EVDEV };
-+
- /* Momma taught me never to use globals, but we need something the signal
- handlers can get at.*/
- int console_fd = -1;
-+int console_type = BEEP_TYPE_CONSOLE;
-+char *console_device = NULL;
-+
-+void do_beep(int freq);
-
- /* If we get interrupted, it would be nice to not leave the speaker beeping in
- perpetuity. */
- void handle_signal(int signum) {
-+
-+ if(console_device)
-+ free(console_device);
-+
- switch(signum) {
- case SIGINT:
- if(console_fd >= 0) {
- /* Kill the sound, quit gracefully */
-- ioctl(console_fd, KIOCSOUND, 0);
-+ do_beep(0);
- close(console_fd);
- exit(signum);
- } else {
-@@ -110,7 +121,7 @@ void handle_signal(int signum) {
- /* print usage and exit */
- void usage_bail(const char *executable_name) {
- printf("Usage:\n%s [-f freq] [-l length] [-r reps] [-d delay] "
-- "[-D delay] [-s] [-c]\n",
-+ "[-D delay] [-s] [-c] [-e device]\n",
- executable_name);
- printf("%s [Options...] [-n] [--new] [Options...] ... \n", executable_name);
- printf("%s [-h] [--help]\n", executable_name);
-@@ -141,11 +152,12 @@ void usage_bail(const char *executable_n
- void parse_command_line(int argc, char **argv, beep_parms_t *result) {
- int c;
-
-- struct option opt_list[4] = {{"help", 0, NULL, 'h'},
-+ struct option opt_list[] = {{"help", 0, NULL, 'h'},
- {"version", 0, NULL, 'V'},
- {"new", 0, NULL, 'n'},
-+ {"device", 1, NULL, 'e'},
- {0,0,0,0}};
-- while((c = getopt_long(argc, argv, "f:l:r:d:D:schvVn", opt_list, NULL))
-+ while((c = getopt_long(argc, argv, "f:l:r:d:D:schvVne:", opt_list, NULL))
- != EOF) {
- int argval = -1; /* handle parsed numbers for various arguments */
- float argfreq = -1;
-@@ -207,6 +219,9 @@ void parse_command_line(int argc, char *
- result->next->next = NULL;
- result = result->next; /* yes, I meant to do that. */
- break;
-+ case 'e' : /* also --device */
-+ console_device = strdup(optarg);
-+ break;
- case 'h' : /* notice that this is also --help */
- default :
- usage_bail(argv[0]);
-@@ -214,26 +229,61 @@ void parse_command_line(int argc, char *
- }
- }
-
-+void do_beep(int freq)
-+{
-+ if (console_type == BEEP_TYPE_CONSOLE)
-+ {
-+ if(ioctl(console_fd, KIOCSOUND, freq != 0
-+ ? (int)(CLOCK_TICK_RATE/freq)
-+ : freq) < 0) {
-+ printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
-+ perror("ioctl");
-+ }
-+ }
-+ else
-+ {
-+ /* BEEP_TYPE_EVDEV */
-+ struct input_event e;
-+
-+ e.type = EV_SND;
-+ e.code = SND_TONE;
-+ e.value = freq;
-+
-+ write(console_fd, &e, sizeof(struct input_event));
-+ }
-+}
-+
- void play_beep(beep_parms_t parms) {
- int i; /* loop counter */
-
- /* try to snag the console */
-- if((console_fd = open("/dev/console", O_WRONLY)) == -1) {
-- fprintf(stderr, "Could not open /dev/console for writing.\n");
-+
-+ if(console_device)
-+ console_fd = open(console_device, O_WRONLY);
-+ else
-+ if((console_fd = open("/dev/input/event0", O_WRONLY)) == -1)
-+ if((console_fd = open("/dev/tty0", O_WRONLY)) == -1)
-+ console_fd = open("/dev/vc/0", O_WRONLY);
-+
-+ if(console_fd == -1) {
-+ fprintf(stderr, "Could not open %s for writing\n",
-+ console_device != NULL ? console_device : "/dev/tty0 or /dev/vc/0");
- printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
- perror("open");
- exit(1);
- }
-
-+ if (ioctl(console_fd, EVIOCGSND(0)) != -1)
-+ console_type = BEEP_TYPE_EVDEV;
-+ else
-+ console_type = BEEP_TYPE_CONSOLE;
-+
- /* Beep */
- for (i = 0; i < parms.reps; i++) { /* start beep */
-- if(ioctl(console_fd, KIOCSOUND, (int)(CLOCK_TICK_RATE/parms.freq)) < 0) {
-- printf("\a"); /* Output the only beep we can, in an effort to fall back on usefulness */
-- perror("ioctl");
-- }
-+ do_beep(parms.freq);
- /* Look ma, I'm not ansi C compatible! */
- usleep(1000*parms.length); /* wait... */
-- ioctl(console_fd, KIOCSOUND, 0); /* stop beep */
-+ do_beep(0);
- if(parms.end_delay || (i+1 < parms.reps))
- usleep(1000*parms.delay); /* wait... */
- } /* repeat. */
-@@ -295,5 +345,8 @@ int main(int argc, char **argv) {
- parms = next;
- }
-
-+ if(console_device)
-+ free(console_device);
-+
- return EXIT_SUCCESS;
- }
diff --git a/meta-oe/recipes-extended/bitwise/bitwise_0.43.bb b/meta-oe/recipes-extended/bitwise/bitwise_0.43.bb
deleted file mode 100644
index 713492b44f..0000000000
--- a/meta-oe/recipes-extended/bitwise/bitwise_0.43.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Bitwise terminal calculator"
-DESCRIPTION = "Bitwise is multi base interactive calculator \
-supporting dynamic base conversion and bit manipulation.\
-It's a handy tool for low level hackers, \
-kernel developers and device drivers developers."
-
-HOMEPAGE = "https://github.com/mellowcandle/bitwise"
-SECTION = "console/utils"
-
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
-
-SRC_URI = "https://github.com/mellowcandle/bitwise/releases/download/v${PV}/bitwise-v${PV}.tar.gz \
- file://0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch \
- "
-SRC_URI[sha256sum] = "f524f794188a10defc4df673d8cf0b3739f93e58e93aff0cdb8a99fbdcca2ffb"
-
-UPSTREAM_CHECK_URI = "https://github.com/mellowcandle/bitwise/releases"
-
-S = "${WORKDIR}/${BPN}-v${PV}"
-
-DEPENDS = "ncurses readline"
-
-inherit autotools
diff --git a/meta-oe/recipes-extended/bitwise/bitwise_0.50.bb b/meta-oe/recipes-extended/bitwise/bitwise_0.50.bb
new file mode 100644
index 0000000000..5cd20c5b1c
--- /dev/null
+++ b/meta-oe/recipes-extended/bitwise/bitwise_0.50.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Bitwise terminal calculator"
+DESCRIPTION = "Bitwise is multi base interactive calculator \
+supporting dynamic base conversion and bit manipulation.\
+It's a handy tool for low level hackers, \
+kernel developers and device drivers developers."
+
+HOMEPAGE = "https://github.com/mellowcandle/bitwise"
+SECTION = "console/utils"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+SRC_URI = "https://github.com/mellowcandle/bitwise/releases/download/v${PV}/bitwise-v${PV}.tar.gz \
+ file://0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch \
+ file://run-ptest \
+ file://ptest.out.expected \
+ "
+SRC_URI[sha256sum] = "806271fa5bf31de0600315e8720004a8f529954480e991ca84a9868dc1cae97e"
+
+UPSTREAM_CHECK_URI = "https://github.com/mellowcandle/bitwise/releases"
+
+S = "${WORKDIR}/${BPN}-v${PV}"
+
+DEPENDS = "ncurses readline"
+
+inherit autotools ptest
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}
+ install -m 0644 ${WORKDIR}/ptest.out.expected ${D}${PTEST_PATH}/ptest.out.expected
+}
+
diff --git a/meta-oe/recipes-extended/bitwise/files/0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch b/meta-oe/recipes-extended/bitwise/files/0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch
index ad3f0bb1fd..76d12f9cd8 100644
--- a/meta-oe/recipes-extended/bitwise/files/0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch
+++ b/meta-oe/recipes-extended/bitwise/files/0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch
@@ -8,6 +8,8 @@ This ensures right include paths are added to compiler
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/bitwise/files/ptest.out.expected b/meta-oe/recipes-extended/bitwise/files/ptest.out.expected
new file mode 100644
index 0000000000..c5ca3e5215
--- /dev/null
+++ b/meta-oe/recipes-extended/bitwise/files/ptest.out.expected
@@ -0,0 +1,13 @@
+Unsigned decimal: 66
+Signed decimal: 66
+Hexadecimal: 0x42
+Octal: 0102
+Human: 66
+Radix64: 0/
+IPv4 (Network byte order - Big): 66.0.0.0
+IPv4 (Reverwsed byte order - Little): 0.0.0.66
+ASCII: .......B
+Binary:
+0 1 0 0 0 0 1 0
+ 7 - 0
+
diff --git a/meta-oe/recipes-extended/bitwise/files/run-ptest b/meta-oe/recipes-extended/bitwise/files/run-ptest
new file mode 100755
index 0000000000..c29e1eaddc
--- /dev/null
+++ b/meta-oe/recipes-extended/bitwise/files/run-ptest
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Test 1: Basic bitwise operation
+bitwise --no-color -w b 0x42 > test.out
+
+# Compare expected output with actual output
+
+if ! cmp test.out ptest.out.expected; then
+ echo "[FAIL] Test 1: Basic bitwise operation"
+ exit 1
+fi
diff --git a/meta-oe/recipes-extended/boinc/boinc-client/0001-Do-not-undefine-_FILE_OFFSET_BITS.patch b/meta-oe/recipes-extended/boinc/boinc-client/0001-Do-not-undefine-_FILE_OFFSET_BITS.patch
new file mode 100644
index 0000000000..846fb099dc
--- /dev/null
+++ b/meta-oe/recipes-extended/boinc/boinc-client/0001-Do-not-undefine-_FILE_OFFSET_BITS.patch
@@ -0,0 +1,59 @@
+From 4e5c5a245f248976ea55fe1f805badb0cb1bb072 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Dec 2022 23:41:36 -0800
+Subject: [PATCH] Do not undefine _FILE_OFFSET_BITS
+
+This does not work when we want to use 64bit time_t in glibc
+therefore let system decide on defining these macros
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ client/client_types.cpp | 9 ---------
+ client/hostinfo_unix.cpp | 9 ---------
+ 2 files changed, 18 deletions(-)
+
+diff --git a/client/client_types.cpp b/client/client_types.cpp
+index 2977ef7863..7653517302 100644
+--- a/client/client_types.cpp
++++ b/client/client_types.cpp
+@@ -22,15 +22,6 @@
+ #include "zlib.h"
+ #else
+ #include "config.h"
+-// Somehow having config.h define _FILE_OFFSET_BITS or _LARGE_FILES is
+-// causing open to be redefined to open64 which somehow, in some versions
+-// of zlib.h causes gzopen to be redefined as gzopen64 which subsequently gets
+-// reported as a linker error. So for this file, we compile in small files
+-// mode, regardless of these settings
+-#undef _FILE_OFFSET_BITS
+-#undef _LARGE_FILES
+-#undef _LARGEFILE_SOURCE
+-#undef _LARGEFILE64_SOURCE
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <zlib.h>
+diff --git a/client/hostinfo_unix.cpp b/client/hostinfo_unix.cpp
+index ff0b596221..0ad6841b39 100644
+--- a/client/hostinfo_unix.cpp
++++ b/client/hostinfo_unix.cpp
+@@ -26,15 +26,6 @@
+
+ #if !defined(_WIN32) || defined(__CYGWIN32__)
+
+-// Access to binary files in /proc filesystem doesn't work in the 64bit
+-// files environment on some systems.
+-// None of the functions here need 64bit file functions,
+-// so undefine _FILE_OFFSET_BITS and _LARGE_FILES.
+-//
+-#undef _FILE_OFFSET_BITS
+-#undef _LARGE_FILES
+-#undef _LARGEFILE_SOURCE
+-#undef _LARGEFILE64_SOURCE
+ #include <iostream>
+ #include <vector>
+ #include <string>
+--
+2.39.0
+
diff --git a/meta-oe/recipes-extended/boinc/boinc-client/4563.patch b/meta-oe/recipes-extended/boinc/boinc-client/4563.patch
deleted file mode 100644
index a18da45395..0000000000
--- a/meta-oe/recipes-extended/boinc/boinc-client/4563.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 689dc20ede9768377d4032ff8c70b58269c8dc9c Mon Sep 17 00:00:00 2001
-From: Charlie Fenton <charlief@example.com>
-Date: Mon, 18 Oct 2021 01:43:08 -0700
-Subject: [PATCH 01/10] Mac: update dependent libraries to latest:
- c-ares-1.17.2, curl-7.79.1, freetype-2.11.0, openssl-3.0.0 Previously updated
- to wxWidgets-3.1.5. FTGL version ftgl-2.1.3~rc5 is still the current
- version.
-
----
- lib/crypt.cpp | 7 +-
- 8 files changed, 199 insertions(+), 150 deletions(-)
-
-diff --git a/lib/crypt.cpp b/lib/crypt.cpp
-index 01249cfc340..9b1f69160b8 100644
---- a/lib/crypt.cpp
-+++ b/lib/crypt.cpp
-@@ -1,6 +1,6 @@
- // This file is part of BOINC.
- // http://boinc.berkeley.edu
--// Copyright (C) 2008 University of California
-+// Copyright (C) 2021 University of California
- //
- // BOINC is free software; you can redistribute it and/or modify it
- // under the terms of the GNU Lesser General Public License
-@@ -672,7 +672,10 @@ int check_validity_of_cert(
- }
- #ifdef HAVE_OPAQUE_RSA_DSA_DH
- RSA *rsa;
-- rsa = EVP_PKEY_get0_RSA(pubKey);
-+ // CAUTION: In OpenSSL 3.0.0, EVP_PKEY_get0_RSA() now returns a
-+ // pointer of type "const struct rsa_st*" to an immutable value.
-+ // Do not try to modify the contents of the returned struct.
-+ rsa = (rsa_st*)EVP_PKEY_get0_RSA(pubKey);
- if (!RSA_blinding_on(rsa, c)) {
- #else
- if (!RSA_blinding_on(pubKey->pkey.rsa, c)) {
diff --git a/meta-oe/recipes-extended/boinc/boinc-client/gtk-configure.patch b/meta-oe/recipes-extended/boinc/boinc-client/gtk-configure.patch
deleted file mode 100644
index 3b814e903c..0000000000
--- a/meta-oe/recipes-extended/boinc/boinc-client/gtk-configure.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From d53e9617fb6446780478bb13907efd111f241cd1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 3 Nov 2016 01:20:33 -0700
-Subject: [PATCH] Check for gtk2+ only when manager is enabled
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
----
- configure.ac | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 7beeb34ae2..35234c2762 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1044,6 +1044,11 @@ else
- AM_CONDITIONAL([GUI_GTK], false)
- fi
-
-+dnl ---------- GTK+2.0-----------------------------------------------------
-+if test "X${no_x}" != "Xyes"; then
-+ PKG_CHECK_MODULES([GTK2], [gtk+-2.0])
-+fi
-+
- dnl ---------- libNotify --------------------------------------------------
- if test "${enable_manager}" = yes ; then
- PKG_CHECK_MODULES(LIBNOTIFY, [libnotify])
diff --git a/meta-oe/recipes-extended/boinc/boinc-client_7.18.1.bb b/meta-oe/recipes-extended/boinc/boinc-client_7.18.1.bb
deleted file mode 100644
index 8f85a508e7..0000000000
--- a/meta-oe/recipes-extended/boinc/boinc-client_7.18.1.bb
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright (C) 2016 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Open-source software for volunteer computing"
-DESCRIPTION = "The Berkeley Open Infrastructure for Network Computing (BOINC) is an open- \
-source software platform which supports distributed computing, primarily in \
-the form of volunteer computing and desktop Grid computing. It is well \
-suited for problems which are often described as trivially parallel. BOINC \
-is the underlying software used by projects such as SETI@home, Einstein@Home, \
-ClimatePrediciton.net, the World Community Grid, and many other distributed \
-computing projects. \
-This package installs the BOINC client software, which will allow your \
-computer to participate in one or more BOINC projects, using your spare \
-computer time to search for cures for diseases, model protein folding, study \
-global warming, discover sources of gravitational waves, and many other types \
-of scientific and mathematical research."
-
-HOMEPAGE = "http://boinc.berkeley.edu/"
-LICENSE = "LGPL-2.0-or-later & GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6"
-SECTION = "applications"
-DEPENDS = "curl \
- jpeg \
- openssl \
- sqlite3 \
- virtual/egl \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'libnotify', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+ libnotify xcb-util libxscrnsaver', '', d)} \
- nettle \
-"
-SRCREV = "b49adfb118211e11c719766c0d71e7bdfe7f3363"
-BRANCH = "client_release/7/7.18"
-SRC_URI = "git://github.com/BOINC/boinc;protocol=https;branch=${BRANCH} \
- file://boinc-AM_CONDITIONAL.patch \
- file://gtk-configure.patch \
- file://4563.patch \
- file://0001-scripts-Do-not-check-for-files-on-build-host.patch \
-"
-
-inherit gettext autotools pkgconfig features_check systemd
-
-REQUIRED_DISTRO_FEATURES += "opengl"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF += "\
- --enable-libraries \
- --enable-unicode \
- --enable-shared \
- --enable-dynamic-client-linkage \
- --enable-client \
- --disable-server \
- --disable-static \
- --disable-manager \
- --with-ssl=${STAGING_EXECPREFIXDIR} \
- --without-wxdir \
- --without-x \
- --with-boinc-platform=${TARGET_SYS} \
- ac_cv_c_undeclared_builtin_options='none' \
-"
-export PKG_CONFIG = "${STAGING_BINDIR_NATIVE}/pkg-config"
-
-do_configure:prepend () {
- if [ "${@bb.utils.contains('DEPENDS', 'gtk+', '1', '0', d)}" = "0" ]
- then
- export GTK2_CFLAGS=""
- export GTK2_LIBS=""
- fi
-}
-
-do_compile:prepend () {
- # Disable rpaths
- sed -i -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' ${B}/libtool
- sed -i -e 's|^sys_lib_dlsearch_path_spec=.*|sys_lib_dlsearch_path_spec=""|g' ${B}/libtool
- sed -i -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' ${B}/libtool
-}
-
-do_install:prepend() {
- # help script install a bit to do right thing for OE
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- mkdir -p ${D}${systemd_system_unitdir}
- else
- mkdir -p ${D}${sysconfdir}/init.d
- fi
- mkdir -p ${D}${sysconfdir}/default
-}
-
-SYSTEMD_SERVICE:${PN} = "boinc-client.service"
-
-FILES:${PN} += "${libdir}/systemd"
diff --git a/meta-oe/recipes-extended/boinc/boinc-client_7.20.5.bb b/meta-oe/recipes-extended/boinc/boinc-client_7.20.5.bb
new file mode 100644
index 0000000000..4e35283dd2
--- /dev/null
+++ b/meta-oe/recipes-extended/boinc/boinc-client_7.20.5.bb
@@ -0,0 +1,82 @@
+# Copyright (C) 2016 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Open-source software for volunteer computing"
+DESCRIPTION = "The Berkeley Open Infrastructure for Network Computing (BOINC) is an open- \
+source software platform which supports distributed computing, primarily in \
+the form of volunteer computing and desktop Grid computing. It is well \
+suited for problems which are often described as trivially parallel. BOINC \
+is the underlying software used by projects such as SETI@home, Einstein@Home, \
+ClimatePrediciton.net, the World Community Grid, and many other distributed \
+computing projects. \
+This package installs the BOINC client software, which will allow your \
+computer to participate in one or more BOINC projects, using your spare \
+computer time to search for cures for diseases, model protein folding, study \
+global warming, discover sources of gravitational waves, and many other types \
+of scientific and mathematical research."
+
+HOMEPAGE = "http://boinc.berkeley.edu/"
+LICENSE = "LGPL-2.0-or-later & GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6"
+SECTION = "applications"
+DEPENDS = "curl \
+ jpeg \
+ openssl \
+ sqlite3 \
+ virtual/egl \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'libnotify', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+3 wxwidgets libnotify xcb-util libxscrnsaver', '', d)} \
+ nettle \
+"
+SRCREV = "4774e1cbe0ad13cb9a6f7fffbb626a417316f61d"
+BRANCH = "client_release/7/7.20"
+SRC_URI = "git://github.com/BOINC/boinc;protocol=https;branch=${BRANCH} \
+ file://boinc-AM_CONDITIONAL.patch \
+ file://0001-scripts-Do-not-check-for-files-on-build-host.patch \
+ file://0001-Do-not-undefine-_FILE_OFFSET_BITS.patch \
+"
+
+inherit gettext autotools pkgconfig features_check systemd
+
+REQUIRED_DISTRO_FEATURES += "opengl"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "\
+ --enable-libraries \
+ --enable-unicode \
+ --enable-shared \
+ --enable-dynamic-client-linkage \
+ --enable-client \
+ --disable-server \
+ --disable-static \
+ --disable-manager \
+ --with-ssl=${STAGING_EXECPREFIXDIR} \
+ --without-wxdir \
+ --without-x \
+ --with-boinc-platform=${TARGET_SYS} \
+ ac_cv_c_undeclared_builtin_options='none' \
+"
+export PKG_CONFIG = "${STAGING_BINDIR_NATIVE}/pkg-config"
+
+do_compile:prepend () {
+ # Disable rpaths
+ sed -i -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' ${B}/libtool
+ sed -i -e 's|^sys_lib_dlsearch_path_spec=.*|sys_lib_dlsearch_path_spec=""|g' ${B}/libtool
+ sed -i -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' ${B}/libtool
+}
+
+do_install:prepend() {
+ # help script install a bit to do right thing for OE
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ mkdir -p ${D}${systemd_system_unitdir}
+ else
+ mkdir -p ${D}${sysconfdir}/init.d
+ fi
+ mkdir -p ${D}${sysconfdir}/default
+}
+
+SYSTEMD_SERVICE:${PN} = "boinc-client.service"
+
+FILES:${PN} += "${libdir}/systemd"
diff --git a/meta-oe/recipes-extended/brotli/brotli/838.patch b/meta-oe/recipes-extended/brotli/brotli/838.patch
deleted file mode 100644
index 98b888760f..0000000000
--- a/meta-oe/recipes-extended/brotli/brotli/838.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Upstream-Status: Backport [https://github.com/google/brotli/pull/838]
-From 092446fafb4bfb81738853b7c7f76b293cd92a80 Mon Sep 17 00:00:00 2001
-From: Evgenii Kliuchnikov <eustas.ru@gmail.com>
-Date: Wed, 2 Sep 2020 10:49:49 +0200
-Subject: [PATCH] Revert "Add runtime linker path to pkg-config files (#740)"
-
-This reverts commit 31754d4ffce14153b5c2addf7a11019ec23f51c1.
----
- scripts/libbrotlicommon.pc.in | 2 +-
- scripts/libbrotlidec.pc.in | 2 +-
- scripts/libbrotlienc.pc.in | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/scripts/libbrotlicommon.pc.in b/scripts/libbrotlicommon.pc.in
-index 10ca969e..2a8cf7a3 100644
---- a/scripts/libbrotlicommon.pc.in
-+++ b/scripts/libbrotlicommon.pc.in
-@@ -7,5 +7,5 @@ Name: libbrotlicommon
- URL: https://github.com/google/brotli
- Description: Brotli common dictionary library
- Version: @PACKAGE_VERSION@
--Libs: -L${libdir} -R${libdir} -lbrotlicommon
-+Libs: -L${libdir} -lbrotlicommon
- Cflags: -I${includedir}
-diff --git a/scripts/libbrotlidec.pc.in b/scripts/libbrotlidec.pc.in
-index e7c3124f..6f8ef2e4 100644
---- a/scripts/libbrotlidec.pc.in
-+++ b/scripts/libbrotlidec.pc.in
-@@ -7,6 +7,6 @@ Name: libbrotlidec
- URL: https://github.com/google/brotli
- Description: Brotli decoder library
- Version: @PACKAGE_VERSION@
--Libs: -L${libdir} -R${libdir} -lbrotlidec
-+Libs: -L${libdir} -lbrotlidec
- Requires.private: libbrotlicommon >= 1.0.2
- Cflags: -I${includedir}
-diff --git a/scripts/libbrotlienc.pc.in b/scripts/libbrotlienc.pc.in
-index 4dd0811b..2098afe2 100644
---- a/scripts/libbrotlienc.pc.in
-+++ b/scripts/libbrotlienc.pc.in
-@@ -7,6 +7,6 @@ Name: libbrotlienc
- URL: https://github.com/google/brotli
- Description: Brotli encoder library
- Version: @PACKAGE_VERSION@
--Libs: -L${libdir} -R${libdir} -lbrotlienc
-+Libs: -L${libdir} -lbrotlienc
- Requires.private: libbrotlicommon >= 1.0.2
- Cflags: -I${includedir}
diff --git a/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb b/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb
deleted file mode 100644
index 4e2813dded..0000000000
--- a/meta-oe/recipes-extended/brotli/brotli_1.0.9.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Lossless compression library and tool"
-DESCRIPTION = "Brotli is a generic-purpose lossless compression algorithm \
-that it is similar in speed to deflate but offers more dense compression."
-HOMEPAGE = "https://github.com/google/brotli"
-BUGTRACKER = "https://github.com/google/brotli/issues"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=941ee9cd1609382f946352712a319b4b"
-
-SRC_URI = "git://github.com/google/brotli.git;branch=master;protocol=https \
- file://838.patch "
-# tag 1.0.9
-SRCREV= "e61745a6b7add50d380cfd7d3883dd6c62fc2c71"
-S = "${WORKDIR}/git"
-
-inherit cmake lib_package
-
-do_install:append () {
- for lib in $(ls ${D}${libdir}/*-static.a); do
- mv -v "${lib}" "$(echo ${lib} | sed s/-static//)"
- done
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/brotli/brotli_1.1.0.bb b/meta-oe/recipes-extended/brotli/brotli_1.1.0.bb
new file mode 100644
index 0000000000..83f44833b6
--- /dev/null
+++ b/meta-oe/recipes-extended/brotli/brotli_1.1.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Lossless compression library and tool"
+DESCRIPTION = "Brotli is a generic-purpose lossless compression algorithm \
+that it is similar in speed to deflate but offers more dense compression."
+HOMEPAGE = "https://github.com/google/brotli"
+BUGTRACKER = "https://github.com/google/brotli/issues"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=941ee9cd1609382f946352712a319b4b"
+
+SRC_URI = "git://github.com/google/brotli.git;branch=master;protocol=https"
+SRCREV= "ed738e842d2fbdf2d6459e39267a633c4a9b2f5d"
+
+S = "${WORKDIR}/git"
+
+inherit cmake lib_package
+
+do_install:append () {
+ for lib in $(ls ${D}${libdir}/*-static.a); do
+ basename=$(basename ${lib})
+ mv -v "${lib}" "${D}${libdir}/$(echo ${basename} | sed s/-static//)"
+ done
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch b/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch
index 8365da0f90..f761ccbdc8 100644
--- a/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch
+++ b/meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch
@@ -21,16 +21,19 @@ Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
Update for 20210808.
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+
+Update for 20210201
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
aclocal.m4 | 1 -
configure | 259 -----------------------------------------------------
2 files changed, 260 deletions(-)
diff --git a/aclocal.m4 b/aclocal.m4
-index 7a9a8fb..108b6cc 100644
+index 832d0c8..63b03f2 100644
--- a/aclocal.m4
+++ b/aclocal.m4
-@@ -1401,7 +1401,6 @@ CF_GCC_VERSION
+@@ -1421,7 +1421,6 @@ CF_GCC_VERSION
CF_ACVERSION_CHECK(2.52,
[AC_PROG_CC_STDC],
[CF_ANSI_CC_REQD])
@@ -39,20 +42,20 @@ index 7a9a8fb..108b6cc 100644
dnl ---------------------------------------------------------------------------
dnl CF_PROG_GROFF version: 3 updated: 2018/01/07 13:16:19
diff --git a/configure b/configure
-index 5b98a03..e3a4237 100755
+index cb47b4c..c72b6e4 100755
--- a/configure
+++ b/configure
-@@ -2146,265 +2146,6 @@ esac
+@@ -2144,265 +2144,6 @@ esac
# This should have been defined by AC_PROG_CC
: "${CC:=cc}"
--echo "$as_me:2149: checking \$CFLAGS variable" >&5
+-echo "$as_me:2147: checking \$CFLAGS variable" >&5
-echo $ECHO_N "checking \$CFLAGS variable... $ECHO_C" >&6
-case "x$CFLAGS" in
-(*-[IUD]*)
-- echo "$as_me:2153: result: broken" >&5
+- echo "$as_me:2151: result: broken" >&5
-echo "${ECHO_T}broken" >&6
-- { echo "$as_me:2155: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5
+- { echo "$as_me:2153: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&5
-echo "$as_me: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options" >&2;}
- cf_flags="$CFLAGS"
- CFLAGS=
@@ -160,18 +163,18 @@ index 5b98a03..e3a4237 100755
- done
- ;;
-(*)
-- echo "$as_me:2263: result: ok" >&5
+- echo "$as_me:2261: result: ok" >&5
-echo "${ECHO_T}ok" >&6
- ;;
-esac
-
--echo "$as_me:2268: checking \$CC variable" >&5
+-echo "$as_me:2266: checking \$CC variable" >&5
-echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
-case "$CC" in
-(*[\ \ ]-*)
-- echo "$as_me:2272: result: broken" >&5
+- echo "$as_me:2270: result: broken" >&5
-echo "${ECHO_T}broken" >&6
-- { echo "$as_me:2274: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
+- { echo "$as_me:2272: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
-echo "$as_me: WARNING: your environment uses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
- # humor him...
- cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[ ]* / /g' -e 's/[ ]*[ ]-[^ ].*//'`
@@ -288,26 +291,26 @@ index 5b98a03..e3a4237 100755
- done
- test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6
-
--echo "${as_me:-configure}:2391: testing resulting CC: '$CC' ..." 1>&5
+-echo "${as_me:-configure}:2389: testing resulting CC: '$CC' ..." 1>&5
-
- test -n "$verbose" && echo " resulting CFLAGS: '$CFLAGS'" 1>&6
-
--echo "${as_me:-configure}:2395: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
+-echo "${as_me:-configure}:2393: testing resulting CFLAGS: '$CFLAGS' ..." 1>&5
-
- test -n "$verbose" && echo " resulting CPPFLAGS: '$CPPFLAGS'" 1>&6
-
--echo "${as_me:-configure}:2399: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
+-echo "${as_me:-configure}:2397: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
-
- ;;
-(*)
-- echo "$as_me:2403: result: ok" >&5
+- echo "$as_me:2401: result: ok" >&5
-echo "${ECHO_T}ok" >&6
- ;;
-esac
-
- echo "$as_me:2408: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ echo "$as_me:2406: checking whether ${MAKE-make} sets \${MAKE}" >&5
echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
--
-2.25.1
+2.34.1
diff --git a/meta-oe/recipes-extended/byacc/byacc_20220128.bb b/meta-oe/recipes-extended/byacc/byacc_20220128.bb
deleted file mode 100644
index 8aa8767d37..0000000000
--- a/meta-oe/recipes-extended/byacc/byacc_20220128.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-# Sigh. This is one of those places where everyone licenses it differently. Someone
-# even apply UCB to it (Free/Net/OpenBSD). The maintainer states that:
-# "I've found no reliable source which states that byacc must bear a UCB copyright."
-# Setting to PD as this is what the upstream has it as.
-
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=62c37a10a2faf90235ee64280ad72737"
-require byacc.inc
-
-SRC_URI[sha256sum] = "42c1805cc529314e6a76326fe1b33e80c70862a44b01474da362e2f7db2d749c"
diff --git a/meta-oe/recipes-extended/byacc/byacc_20230219.bb b/meta-oe/recipes-extended/byacc/byacc_20230219.bb
new file mode 100644
index 0000000000..614bcaf646
--- /dev/null
+++ b/meta-oe/recipes-extended/byacc/byacc_20230219.bb
@@ -0,0 +1,10 @@
+# Sigh. This is one of those places where everyone licenses it differently. Someone
+# even apply UCB to it (Free/Net/OpenBSD). The maintainer states that:
+# "I've found no reliable source which states that byacc must bear a UCB copyright."
+# Setting to PD as this is what the upstream has it as.
+
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=b56b7454f5f865de2e6e35ee2185b461"
+require byacc.inc
+
+SRC_URI[sha256sum] = "36b972a6d4ae97584dd186925fbbc397d26cb20632a76c2f52ac7653cd081b58"
diff --git a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch b/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch
deleted file mode 100644
index a6f6701261..0000000000
--- a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles/python3.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/modules/packages/apt_get
-+++ b/modules/packages/apt_get
-@@ -1,4 +1,4 @@
--#!/var/cfengine/bin/python
-+#!/var/cfengine/bin/python3
-
- import sys
- import os
---- a/modules/packages/apt_get.in
-+++ b/modules/packages/apt_get.in
-@@ -1,4 +1,4 @@
--#!@bindir@/python
-+#!@bindir@/python3
-
- import sys
- import os
diff --git a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb b/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb
deleted file mode 100644
index 4ef3fc15ad..0000000000
--- a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.15.0.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Copyright (C) 2014 - 2017 Wind River Systems, Inc.
-#
-SUMMARY = "Base policy for CFEngine"
-
-DESCRIPTION = "CFEngine is an IT infrastructure automation framework \
-that helps engineers, system administrators and other stakeholders \
-in an IT system to manage and understand IT infrastructure throughout \
-its lifecycle. CFEngine takes systems from Build to Deploy, Manage and Audit. \
- \
-This package is intended to provide a stable base policy for \
-installations and upgrades, and is used by CFEngine 3.6 and newer. \
- \
-The contents of this packge are intended to live in `/var/cfengine/masterfiles` \
-or wherever `$(sys.masterdir)` points. \
-"
-
-HOMEPAGE = "http://cfengine.com"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9f76426f9ef8c6f6739fadd21d817a4f"
-
-SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz \
- file://python3.patch \
- "
-SRC_URI[md5sum] = "6d456fdd9bd24ff6617eeaa05efae602"
-SRC_URI[sha256sum] = "4a071c0c4ba7df9bad93144cff5fbc0566e5172afd66201072e3193b76c55a38"
-
-inherit autotools
-
-export EXPLICIT_VERSION="${PV}"
-
-EXTRA_OECONF = "--prefix=${datadir}/cfengine"
-
-do_install:append() {
- rm -rf ${D}${datadir}/cfengine/modules/packages/zypper ${D}${datadir}/cfengine/modules/packages/yum
-}
-
-FILES:${PN} = "${datadir}/cfengine"
-
-RDEPENDS:${PN} += "python3-core"
diff --git a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.21.0.bb b/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.21.0.bb
new file mode 100644
index 0000000000..68d4042554
--- /dev/null
+++ b/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.21.0.bb
@@ -0,0 +1,40 @@
+#
+# Copyright (C) 2014 - 2017 Wind River Systems, Inc.
+#
+SUMMARY = "Base policy for CFEngine"
+
+DESCRIPTION = "CFEngine is an IT infrastructure automation framework \
+that helps engineers, system administrators and other stakeholders \
+in an IT system to manage and understand IT infrastructure throughout \
+its lifecycle. CFEngine takes systems from Build to Deploy, Manage and Audit. \
+ \
+This package is intended to provide a stable base policy for \
+installations and upgrades, and is used by CFEngine 3.6 and newer. \
+ \
+The contents of this packge are intended to live in `/var/cfengine/masterfiles` \
+or wherever `$(sys.masterdir)` points. \
+"
+
+HOMEPAGE = "http://cfengine.com"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bb843e794feb6890f7697637b461c36e"
+
+SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz \
+ "
+#SRC_URI[md5sum] = "5df2f85c75efc351ffadebcc11046a98"
+SRC_URI[sha256sum] = "013ebe68599915cedb4bf753b471713d91901a991623358b9a967d9a779bcc16"
+
+inherit autotools
+
+export EXPLICIT_VERSION="${PV}"
+
+EXTRA_OECONF = "--prefix=${datadir}/cfengine"
+
+do_install:append() {
+ rm -rf ${D}${datadir}/cfengine/modules/packages/zypper ${D}${datadir}/cfengine/modules/packages/yum
+}
+
+FILES:${PN} = "${datadir}/cfengine"
+
+RDEPENDS:${PN} += "python3-core"
diff --git a/meta-oe/recipes-extended/cfengine/cfengine/0001-Fixed-with-libxml2-no-case-in-configure.ac.patch b/meta-oe/recipes-extended/cfengine/cfengine/0001-Fixed-with-libxml2-no-case-in-configure.ac.patch
new file mode 100644
index 0000000000..78f36bde45
--- /dev/null
+++ b/meta-oe/recipes-extended/cfengine/cfengine/0001-Fixed-with-libxml2-no-case-in-configure.ac.patch
@@ -0,0 +1,89 @@
+From a08acdfadb5eba2a3201209c6da3ad6f2ca4ae79 Mon Sep 17 00:00:00 2001
+From: Craig Comstock <craig.comstock@northern.tech>
+Date: Fri, 27 Jan 2023 15:19:48 -0600
+Subject: [PATCH] Fixed --with-libxml2=no case in configure.ac
+
+The CF3_WITH_LIBRARY and AC_CHECK_HEADERS were moved to outside of the check for with-libxml2=no
+
+Ticket: CFE-4023
+Changelog: title
+---
+Upstream-Status: Pending
+
+ configure.ac | 21 +++++++++++----------
+ libntech/configure.ac | 21 +++++++++++----------
+ 2 files changed, 22 insertions(+), 20 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index e189b10..f6b8226 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -659,19 +659,20 @@ if test "x$with_libxml2" != "xno"; then
+ LIBXML2_CPPFLAGS=-I$with_libxml2/include/libxml2
+ fi
+ fi
+-fi
+
+-CF3_WITH_LIBRARY(libxml2,
+- [AC_CHECK_LIB(xml2, xmlFirstElementChild,
+- [],
+- [if test "x$with_libxml2" != xcheck; then
+- AC_MSG_ERROR(Cannot find libxml2); fi]
+- )
+- AC_CHECK_HEADERS([libxml/xmlwriter.h], [break],
++ CF3_WITH_LIBRARY(libxml2,
++ [AC_CHECK_LIB(xml2, xmlFirstElementChild,
++ [],
+ [if test "x$with_libxml2" != xcheck; then
+ AC_MSG_ERROR(Cannot find libxml2); fi]
+- )]
+-)
++ )
++ AC_CHECK_HEADERS([libxml/xmlwriter.h], [break],
++ [if test "x$with_libxml2" != xcheck; then
++ AC_MSG_ERROR(Cannot find libxml2); fi]
++ )]
++ )
++
++fi
+
+ AM_CONDITIONAL([HAVE_LIBXML2],
+ [test "x$with_libxml2" != xno &&
+diff --git a/libntech/configure.ac b/libntech/configure.ac
+index 7bb8787..28b3683 100644
+--- a/libntech/configure.ac
++++ b/libntech/configure.ac
+@@ -571,19 +571,20 @@ if test "x$with_libxml2" != "xno"; then
+ LIBXML2_CPPFLAGS=-I$with_libxml2/include/libxml2
+ fi
+ fi
+-fi
+
+-CF3_WITH_LIBRARY(libxml2,
+- [AC_CHECK_LIB(xml2, xmlFirstElementChild,
+- [],
+- [if test "x$with_libxml2" != xcheck; then
+- AC_MSG_ERROR(Cannot find libxml2); fi]
+- )
+- AC_CHECK_HEADERS([libxml/xmlwriter.h], [break],
++ CF3_WITH_LIBRARY(libxml2,
++ [AC_CHECK_LIB(xml2, xmlFirstElementChild,
++ [],
+ [if test "x$with_libxml2" != xcheck; then
+ AC_MSG_ERROR(Cannot find libxml2); fi]
+- )]
+-)
++ )
++ AC_CHECK_HEADERS([libxml/xmlwriter.h], [break],
++ [if test "x$with_libxml2" != xcheck; then
++ AC_MSG_ERROR(Cannot find libxml2); fi]
++ )]
++ )
++
++fi
+
+ AM_CONDITIONAL([HAVE_LIBXML2],
+ [test "x$with_libxml2" != xno &&
+--
+2.39.1
+
diff --git a/meta-oe/recipes-extended/cfengine/cfengine_3.15.0.bb b/meta-oe/recipes-extended/cfengine/cfengine_3.15.0.bb
deleted file mode 100644
index 1566f8a88f..0000000000
--- a/meta-oe/recipes-extended/cfengine/cfengine_3.15.0.bb
+++ /dev/null
@@ -1,74 +0,0 @@
-#
-# Copyright (C) 2014 - 2017 Wind River Systems, Inc.
-#
-SUMMARY = "CFEngine is an IT infrastructure automation framework"
-
-DESCRIPTION = "CFEngine is an IT infrastructure automation framework \
-that helps engineers, system administrators and other stakeholders \
-in an IT system to manage and understand IT infrastructure throughout \
-its lifecycle. CFEngine takes systems from Build to Deploy, Manage and Audit."
-
-HOMEPAGE = "http://cfengine.com"
-
-SKIP_RECIPE[cfengine] ?= "Needs porting to openssl 3.x"
-
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=233aa25e53983237cf0bd4c238af255f"
-
-DEPENDS = "attr tokyocabinet bison-native"
-
-SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz \
- file://set-path-of-default-config-file.patch \
- "
-SRC_URI[md5sum] = "d4dabfa46d8afa151be5610f184354e7"
-SRC_URI[sha256sum] = "fa53e137f850eb268a8e7ae4578b5db5dc383656341f5053dc1a353ed0288265"
-
-inherit autotools-brokensep systemd
-
-export EXPLICIT_VERSION="${PV}"
-
-SYSTEMD_SERVICE:${PN} = "cfengine3.service cf-apache.service cf-hub.service cf-postgres.service \
- cf-runalerts.service cf-execd.service \
- cf-monitord.service cf-serverd.service \
-"
-SYSTEMD_AUTO_ENABLE:${PN} = "disable"
-
-PACKAGECONFIG ??= "libpcre openssl \
- ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)} \
-"
-PACKAGECONFIG[libxml2] = "--with-libxml2=yes,--with-libxml2=no,libxml2,"
-PACKAGECONFIG[mysql] = "--with-mysql=yes,--with-mysql=no,mysql,"
-PACKAGECONFIG[postgresql] = "--with-postgresql=yes,--with-postgresql=no,postgresql,"
-PACKAGECONFIG[acl] = "--with-libacl=yes,--with-libacl=no,acl,"
-PACKAGECONFIG[libvirt] = "--with-libvirt=yes,--with-libvirt=no,libvirt,"
-PACKAGECONFIG[libpcre] = "--with-pcre=yes,--with-pcre=no,libpcre,"
-PACKAGECONFIG[openssl] = "--with-openssl=yes,--with-openssl=no,openssl,"
-PACKAGECONFIG[pam] = "--with-pam=yes,--with-pam=no,libpam,"
-PACKAGECONFIG[libyaml] = "--with-libyaml,--without-libyaml,libyaml,"
-PACKAGECONFIG[systemd] = "--with-systemd-service=${systemd_system_unitdir},--without-systemd-service"
-PACKAGECONFIG[libcurl] = "--with-libcurl,--without-libcurl,curl,"
-
-EXTRA_OECONF = "hw_cv_func_va_copy=yes --with-init-script=${sysconfdir}/init.d --with-tokyocabinet"
-
-do_install:append() {
- install -d ${D}${localstatedir}/${BPN}/bin
- for f in `ls ${D}${bindir}`; do
- ln -s ${bindir}/`basename $f` ${D}${localstatedir}/${BPN}/bin/
- done
-
- install -d ${D}${sysconfdir}/default
- cat << EOF > ${D}${sysconfdir}/default/cfengine3
-RUN_CF_SERVERD=1
-RUN_CF_EXECD=1
-RUN_CF_MONITORD=1
-RUN_CF_HUB=0
-EOF
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -m 0755 -D ${D}${sysconfdir}/init.d/cfengine3 ${D}${datadir}/${BPN}/cfengine3
- sed -i -e 's#/etc/init.d#${datadir}/${BPN}#' ${D}${systemd_system_unitdir}/*.service
- fi
- rm -rf ${D}${datadir}/cfengine/modules/packages/zypper
-}
-
-RDEPENDS:${PN} += "${BPN}-masterfiles"
diff --git a/meta-oe/recipes-extended/cfengine/cfengine_3.21.0.bb b/meta-oe/recipes-extended/cfengine/cfengine_3.21.0.bb
new file mode 100644
index 0000000000..6fa5d2743a
--- /dev/null
+++ b/meta-oe/recipes-extended/cfengine/cfengine_3.21.0.bb
@@ -0,0 +1,76 @@
+#
+# Copyright (C) 2014 - 2017 Wind River Systems, Inc.
+#
+SUMMARY = "CFEngine is an IT infrastructure automation framework"
+
+DESCRIPTION = "CFEngine is an IT infrastructure automation framework \
+that helps engineers, system administrators and other stakeholders \
+in an IT system to manage and understand IT infrastructure throughout \
+its lifecycle. CFEngine takes systems from Build to Deploy, Manage and Audit."
+
+HOMEPAGE = "http://cfengine.com"
+
+SKIP_RECIPE[cfengine] ?= "Needs porting to openssl 3.x"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=233aa25e53983237cf0bd4c238af255f"
+
+DEPENDS += "attr tokyocabinet bison-native libxml2"
+#RDEPENDS:cfengine += "attr tokyocabinet bison-native libxml2"
+
+SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BPN}-community-${PV}.tar.gz \
+ file://0001-Fixed-with-libxml2-no-case-in-configure.ac.patch \
+ file://set-path-of-default-config-file.patch \
+ "
+#SRC_URI[md5sum] = "5318e40702bc66a3ece44ec4ad77712b"
+SRC_URI[sha256sum] = "911778ddb0a4e03a3ddfc8fc0f033136e1551849ea2dcbdb3f0f14359dfe3126"
+
+inherit autotools-brokensep systemd
+
+export EXPLICIT_VERSION="${PV}"
+
+SYSTEMD_SERVICE:${PN} = "cfengine3.service cf-apache.service cf-hub.service cf-postgres.service \
+ cf-runalerts.service cf-execd.service \
+ cf-monitord.service cf-serverd.service \
+"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
+
+PACKAGECONFIG ??= "libpcre openssl \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)} \
+"
+PACKAGECONFIG[libxml2] = "--with-libxml2=yes,--with-libxml2=no,libxml2,"
+PACKAGECONFIG[mysql] = "--with-mysql=yes,--with-mysql=no,mysql,"
+PACKAGECONFIG[postgresql] = "--with-postgresql=yes,--with-postgresql=no,postgresql,"
+PACKAGECONFIG[acl] = "--with-libacl=yes,--with-libacl=no,acl,"
+PACKAGECONFIG[libvirt] = "--with-libvirt=yes,--with-libvirt=no,libvirt,"
+PACKAGECONFIG[libpcre] = "--with-pcre=yes,--with-pcre=no,libpcre,"
+PACKAGECONFIG[openssl] = "--with-openssl=yes,--with-openssl=no,openssl,"
+PACKAGECONFIG[pam] = "--with-pam=yes,--with-pam=no,libpam,"
+PACKAGECONFIG[libyaml] = "--with-libyaml,--without-libyaml,libyaml,"
+PACKAGECONFIG[systemd] = "--with-systemd-service=${systemd_system_unitdir},--without-systemd-service"
+PACKAGECONFIG[libcurl] = "--with-libcurl,--without-libcurl,curl,"
+
+EXTRA_OECONF = "hw_cv_func_va_copy=yes --with-init-script=${sysconfdir}/init.d --with-tokyocabinet"
+
+do_install:append() {
+ install -d ${D}${localstatedir}/${BPN}/bin
+ for f in `ls ${D}${bindir}`; do
+ ln -s ${bindir}/`basename $f` ${D}${localstatedir}/${BPN}/bin/
+ done
+
+ install -d ${D}${sysconfdir}/default
+ cat << EOF > ${D}${sysconfdir}/default/cfengine3
+RUN_CF_SERVERD=1
+RUN_CF_EXECD=1
+RUN_CF_MONITORD=1
+RUN_CF_HUB=0
+EOF
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -m 0755 -D ${D}${sysconfdir}/init.d/cfengine3 ${D}${datadir}/${BPN}/cfengine3
+ sed -i -e 's#/etc/init.d#${datadir}/${BPN}#' ${D}${systemd_system_unitdir}/*.service
+ fi
+ rm -rf ${D}${datadir}/cfengine/modules/packages/zypper
+}
+
+RDEPENDS:${PN} += "${BPN}-masterfiles"
diff --git a/meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb b/meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb
index a743e72520..6b6acf1be8 100644
--- a/meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb
+++ b/meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb
@@ -1,5 +1,4 @@
SUMMARY = "Terminal based 'The Matrix' screen implementation"
-AUTHOR = "Abishek V Ashok"
LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
diff --git a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Add-PYTHON_ABI-suffix-to-the-python-library-name.patch b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Add-PYTHON_ABI-suffix-to-the-python-library-name.patch
deleted file mode 100644
index fa029da2b8..0000000000
--- a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Add-PYTHON_ABI-suffix-to-the-python-library-name.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From a701ed30ac1bc2f77d063c237d6ae040a2d53f6b Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 16 May 2016 16:52:24 +0300
-Subject: [PATCH] Add 'm' suffix to the python library name.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- swig/python/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/swig/python/CMakeLists.txt
-+++ b/swig/python/CMakeLists.txt
-@@ -49,7 +49,7 @@ ADD_DEFINITIONS(-DCMPI_PLATFORM_LINUX_GE
- SET( NAME pyCmpiProvider )
- ADD_LIBRARY( ${NAME} SHARED ${SWIG_OUTPUT})
- #TARGET_LINK_LIBRARIES( ${NAME} ${PYTHON_LIBRARIES} )
--TARGET_LINK_LIBRARIES( ${NAME} python${PYTHON_MAJOR_VERSION}.${PYTHON_MINOR_VERSION} )
-+TARGET_LINK_LIBRARIES( ${NAME} python${PYTHON_MAJOR_VERSION}.${PYTHON_MINOR_VERSION}${PYTHON_ABI} )
- TARGET_LINK_LIBRARIES( ${NAME} pthread )
- TARGET_LINK_LIBRARIES( ${NAME} dl )
- TARGET_LINK_LIBRARIES( ${NAME} util )
diff --git a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Fix-error.patch b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Fix-error.patch
index d1a303cf4f..1f147d52f6 100644
--- a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Fix-error.patch
+++ b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Fix-error.patch
@@ -1,18 +1,19 @@
-From b8e791ce93a467081fb1594b91841e2f57c634a0 Mon Sep 17 00:00:00 2001
+From 3ab3ac2876cbf4a34a94f0d3256a5be9d1202370 Mon Sep 17 00:00:00 2001
From: Qian Lei <qianl.fnst@cn.fujitsu.com>
Date: Fri, 16 Jan 2015 18:37:26 +0800
Subject: [PATCH] Fix error
Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+Upstream-Status: Pending
---
swig/python/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/swig/python/CMakeLists.txt b/swig/python/CMakeLists.txt
-index 3976296..8073fc8 100644
+index 93b4755..a7268f0 100644
--- a/swig/python/CMakeLists.txt
+++ b/swig/python/CMakeLists.txt
-@@ -27,7 +27,7 @@ SET( SWIG_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/../cmpi.i" )
+@@ -26,7 +26,7 @@ SET( SWIG_INPUT "${CMAKE_CURRENT_SOURCE_DIR}/../cmpi.i" )
ADD_CUSTOM_COMMAND (
OUTPUT ${SWIG_OUTPUT}
COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for Python ..."
@@ -21,6 +22,3 @@ index 3976296..8073fc8 100644
COMMAND ${CMAKE_COMMAND} -E echo "Done."
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i
---
-1.8.3.1
-
diff --git a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Modify-cmakelist.patch b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Modify-cmakelist.patch
deleted file mode 100644
index 92e5e5662e..0000000000
--- a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Modify-cmakelist.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 070822507befe7c1b8bb1be2d36cb12141d03b8f Mon Sep 17 00:00:00 2001
-From: Qian Lei <qianl.fnst@cn.fujitsu.com>
-Date: Tue, 6 Jan 2015 18:38:32 +0800
-Subject: [PATCH] Change the install path in cmakelist
-
-Upstream-Status: Pending
-Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
----
- swig/python/CMakeLists.txt | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/swig/python/CMakeLists.txt b/swig/python/CMakeLists.txt
-index 3976296..93c87c1 100644
---- a/swig/python/CMakeLists.txt
-+++ b/swig/python/CMakeLists.txt
-@@ -56,18 +56,18 @@ TARGET_LINK_LIBRARIES( ${NAME} util )
-
- INSTALL(TARGETS ${NAME} LIBRARY DESTINATION ${CMPI_LIBRARY_DIR})
- # .py: swig generated
--INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmpi.py DESTINATION ${PYTHON_SITE_DIR} )
-+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmpi.py DESTINATION $ENV{ENV_INSTALL_PATH} )
-
-
- #
- # cmpi_pywbem_bindings.py: provider implementation
- #
--INSTALL(FILES cmpi_pywbem_bindings.py DESTINATION ${PYTHON_SITE_DIR} )
-+INSTALL(FILES cmpi_pywbem_bindings.py DESTINATION $ENV{ENV_INSTALL_PATH} )
- #INSTALL(FILES Py_UnixProcessProvider.py DESTINATION /usr/lib/pycim )
-
--INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"from py_compile import compile; compile('\$ENV{DESTDIR}${PYTHON_SITE_DIR}/cmpi.py', dfile='${PYTHON_SITE_DIR}/cmpi.py')\")")
-+INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"from py_compile import compile; compile('\$ENV{DESTDIR}$ENV{ENV_INSTALL_PATH}/cmpi.py', dfile='\$ENV{ENV_INSTALL_PATH}/cmpi.py')\")")
-
--INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"from py_compile import compile; compile('\$ENV{DESTDIR}${PYTHON_SITE_DIR}/cmpi_pywbem_bindings.py', dfile='${PYTHON_SITE_DIR}/cmpi_pywbem_bindings.py')\")")
-+INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"from py_compile import compile; compile('\$ENV{DESTDIR}$ENV{ENV_INSTALL_PATH}/cmpi_pywbem_bindings.py', dfile='$ENV{ENV_INSTALL_PATH}/cmpi_pywbem_bindings.py')\")")
-
-
-
---
-1.8.3.1
-
diff --git a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-fix-the-build-error-when-python-3.0.patch b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-fix-the-build-error-when-python-3.0.patch
deleted file mode 100644
index 0d6f029e4c..0000000000
--- a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-fix-the-build-error-when-python-3.0.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 323ced03a66e6cd963d8277b66cfcc7dce740be7 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Fri, 17 Jul 2015 01:33:43 -0700
-Subject: [PATCH] fix Xthe build error when python>3.0
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- src/target_python.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/src/target_python.c b/src/target_python.c
-index 90b43a1..2b76c9e 100644
---- a/src/target_python.c
-+++ b/src/target_python.c
-@@ -167,7 +167,12 @@ PyGlobalInitialize(const CMPIBroker* broker, CMPIStatus* st)
-
- Py_SetProgramName("cmpi_swig");
- Py_Initialize();
-- SWIGEXPORT void SWIG_init(void);
-+#if PY_VERSION_HEX >= 0x03000000
-+SWIGEXPORT PyObject*
-+#else
-+ SWIGEXPORT void
-+#endif
-+ SWIG_init(void);
- SWIG_init();
- cmpiMainPyThreadState = PyGILState_GetThisThreadState();
- PyEval_ReleaseThread(cmpiMainPyThreadState);
---
-2.1.0
-
diff --git a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-no-ruby-perl.patch b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-no-ruby-perl.patch
index 2072da72b5..1f9e2394c3 100644
--- a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-no-ruby-perl.patch
+++ b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-no-ruby-perl.patch
@@ -1,4 +1,4 @@
-From 7dd01e33f9dac75f177113de9a8ff458d4263a11 Mon Sep 17 00:00:00 2001
+From 0871fb048a48a02ec598c941e577f13d8d24f574 Mon Sep 17 00:00:00 2001
From: Lei Maohui <leimaohui@cn.fujitsu.com>
Date: Mon, 24 Aug 2015 11:00:13 +0900
Subject: [PATCH] cmpi-bindings-0.4.17 no ruby perl
@@ -7,17 +7,18 @@ Port from Fedora20
Upstream-Status: Pending
Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
+
---
swig/CMakeLists.txt | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/swig/CMakeLists.txt b/swig/CMakeLists.txt
-index 8b5555c..c2655b9 100644
+index 00bf40c..d3cab38 100644
--- a/swig/CMakeLists.txt
+++ b/swig/CMakeLists.txt
-@@ -15,15 +15,15 @@ IF (PYTHON_LIBRARY)
- ENDIF (PYTHON_LINK_LIBS)
- ENDIF (PYTHON_LIBRARY)
+@@ -49,15 +49,15 @@ ELSE (BUILD_PYTHON2)
+ MESSAGE(STATUS "*****")
+ ENDIF (BUILD_PYTHON3)
-FIND_PACKAGE(Perl)
-IF (PERL_EXECUTABLE)
@@ -42,6 +43,3 @@ index 8b5555c..c2655b9 100644
+# ADD_SUBDIRECTORY(ruby)
+# OPTION( BUILD_RUBY_GEM "Build Ruby GEM" YES )
+#ENDIF (RUBY_LIBRARY AND RUBY_INCLUDE_PATH)
---
-1.8.4.2
-
diff --git a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-sblim-sigsegv.patch b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-sblim-sigsegv.patch
index b99337204d..04abd5e4b9 100644
--- a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-sblim-sigsegv.patch
+++ b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.4.17-sblim-sigsegv.patch
@@ -1,12 +1,20 @@
-Port from Fedora20
+From bc32342fa63b8359f985fe1e187e811455c96a50 Mon Sep 17 00:00:00 2001
+From: Qian Lei <qianl.fnst@cn.fujitsu.com>
+Date: Tue, 25 Aug 2015 13:19:51 +0800
+Subject: [PATCH] Port from Fedora20
Upstream-Status: Pending
Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
-diff -up cmpi-bindings-0.4.17/swig/python/cmpi_pywbem_bindings.py.orig cmpi-bindings-0.4.17/swig/python/cmpi_pywbem_bindings.py
---- cmpi-bindings-0.4.17/swig/python/cmpi_pywbem_bindings.py.orig 2012-03-01 17:05:31.878367281 +0100
-+++ cmpi-bindings-0.4.17/swig/python/cmpi_pywbem_bindings.py 2012-03-01 17:06:34.718110137 +0100
-@@ -350,10 +350,10 @@ class BrokerCIMOMHandle(object):
+---
+ swig/python/cmpi_pywbem_bindings.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/swig/python/cmpi_pywbem_bindings.py b/swig/python/cmpi_pywbem_bindings.py
+index d643990..7f0cc77 100644
+--- a/swig/python/cmpi_pywbem_bindings.py
++++ b/swig/python/cmpi_pywbem_bindings.py
+@@ -361,10 +361,10 @@ class BrokerCIMOMHandle(object):
allow_null_ns = False
else:
allow_null_ns = True
diff --git a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.9.5-python-lib-dir.patch b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.9.5-python-lib-dir.patch
deleted file mode 100644
index b6a51ec0d2..0000000000
--- a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/cmpi-bindings-0.9.5-python-lib-dir.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Port from Fedora20
-
-Upstream-Status: Pending
-Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
-
-diff -up cmpi-bindings-0.9.5/swig/python/CMakeLists.txt.old cmpi-bindings-0.9.5/swig/python/CMakeLists.txt
---- cmpi-bindings-0.9.5/swig/python/CMakeLists.txt.old 2013-08-06 15:57:03.576285764 +0200
-+++ cmpi-bindings-0.9.5/swig/python/CMakeLists.txt 2013-08-06 15:57:14.891345941 +0200
-@@ -9,7 +9,7 @@ SET (BUILD_SHARED_LIBS ON)
-
- FIND_PACKAGE(PythonInterp REQUIRED)
-
--EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib())" OUTPUT_VARIABLE PYTHON_LIB_DIR)
-+EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(1))" OUTPUT_VARIABLE PYTHON_LIB_DIR)
-
- IF (NOT PYTHON_SITE_DIR)
- SET (PYTHON_SITE_DIR ${PYTHON_LIB_DIR})
diff --git a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb
deleted file mode 100644
index 464d25ad08..0000000000
--- a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Adapter to write and run CMPI-type CIM providers"
-DESCRIPTION = "CMPI-compliant provider interface for various languages via SWIG"
-HOMEPAGE = "http://github.com/kkaempf/cmpi-bindings"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b19ee058d2d5f69af45da98051d91064"
-SECTION = "Development/Libraries"
-DEPENDS = "swig-native python3 sblim-cmpi-devel"
-
-SRC_URI = "git://github.com/kkaempf/cmpi-bindings.git;protocol=http;branch=master;protocol=https \
- file://cmpi-bindings-0.4.17-no-ruby-perl.patch \
- file://cmpi-bindings-0.4.17-sblim-sigsegv.patch \
- file://cmpi-bindings-0.9.5-python-lib-dir.patch \
- file://0001-Modify-cmakelist.patch \
- file://0001-Fix-error.patch \
- file://0001-fix-the-build-error-when-python-3.0.patch \
- file://0001-Add-PYTHON_ABI-suffix-to-the-python-library-name.patch \
- "
-
-SRCREV = "62f60e065aa1b901f826e4f530c0573ae32d065e"
-S = "${WORKDIR}/git"
-
-inherit cmake python3native
-
-EXTRA_OECMAKE = "-DLIB='${baselib}' \
- -DPYTHON_INCLUDE_PATH=${STAGING_INCDIR}/python${PYTHON_BASEVERSION} \
- -DPYTHON_ABI=${PYTHON_ABI} \
- "
-
-# With Ninja it fails with:
-# ninja: error: build.ninja:282: bad $-escape (literal $ must be written as $$)
-OECMAKE_GENERATOR = "Unix Makefiles"
-
-do_configure:prepend() {
- export STAGING_LIBDIR=${STAGING_LIBDIR}
- export STAGING_INCDIR=${STAGING_INCDIR}
- export ENV_INSTALL_PATH=${PYTHON_SITEPACKAGES_DIR}
-}
-
-FILES:${PN} =+"${libdir}/cmpi/libpyCmpiProvider.so ${PYTHON_SITEPACKAGES_DIR}/*"
-FILES:${PN}-dbg =+ "${libdir}/cmpi/.debug/libpyCmpiProvider.so"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.4.bb b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.4.bb
new file mode 100644
index 0000000000..781dc83da9
--- /dev/null
+++ b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.4.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Adapter to write and run CMPI-type CIM providers"
+DESCRIPTION = "CMPI-compliant provider interface for various languages via SWIG"
+HOMEPAGE = "http://github.com/kkaempf/cmpi-bindings"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b19ee058d2d5f69af45da98051d91064"
+SECTION = "Development/Libraries"
+DEPENDS = "swig-native sblim-cmpi-devel python3-setuptools-native"
+
+SRC_URI = "git://github.com/kkaempf/cmpi-bindings.git;protocol=https;branch=master \
+ file://cmpi-bindings-0.4.17-no-ruby-perl.patch \
+ file://cmpi-bindings-0.4.17-sblim-sigsegv.patch \
+ file://0001-Fix-error.patch \
+ "
+
+SRCREV = "69077ee4d249816ed428155fc933dca424167e77"
+S = "${WORKDIR}/git"
+
+inherit cmake python3targetconfig
+
+EXTRA_OECMAKE = "-DLIB='${baselib}' \
+ -DPYTHON_INCLUDE_PATH=${STAGING_INCDIR}/python${PYTHON_BASEVERSION} \
+ -DPYTHON_ABI=${PYTHON_ABI} \
+ -DBUILD_PYTHON3=YES \
+ -DPython3_SITE_DIR=${PYTHON_SITEPACKAGES_DIR} \
+ "
+
+# With Ninja it fails with:
+# ninja: error: build.ninja:282: bad $-escape (literal $ must be written as $$)
+OECMAKE_GENERATOR = "Unix Makefiles"
+
+FILES:${PN} =+"${libdir}/cmpi/libpy3CmpiProvider.so ${PYTHON_SITEPACKAGES_DIR}/*"
+FILES:${PN}-dbg =+ "${libdir}/cmpi/.debug/libpyCmpiProvider.so"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch b/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
index 8d31e12f94..f42461e322 100644
--- a/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
+++ b/meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch
@@ -14,6 +14,8 @@ client.c:834:23: error: '%s' directive output may be truncated writing up to 102
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 1 +
m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++
2 files changed, 75 insertions(+)
diff --git a/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch b/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch
index 13510cdea0..459bbd4e5a 100644
--- a/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch
+++ b/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch
@@ -9,6 +9,8 @@ already in place
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/libcollectdclient/network_parse.c | 7 +++++++
src/write_sensu.c | 7 +++++++
2 files changed, 14 insertions(+)
diff --git a/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch b/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch
index f12b16cb91..409f8dea02 100644
--- a/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch
+++ b/meta-oe/recipes-extended/collectd/collectd/no-gcrypt-badpath.patch
@@ -3,6 +3,8 @@ From: Paul Eggleton <paul.eggleton@linux.intel.com>
Date: Mon, 22 Apr 2013 16:28:16 +0000
---
+Upstream-Status: Pending
+
configure.ac | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb b/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
index 5dc64588d2..02f1fcb420 100644
--- a/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
+++ b/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
@@ -1,11 +1,12 @@
SUMMARY = "Collects and summarises system performance statistics"
DESCRIPTION = "collectd is a daemon which collects system performance statistics periodically and provides mechanisms to store the values in a variety of ways, for example in RRD files."
+HOMEPAGE = "https://collectd.org/"
LICENSE = "GPL-2.0-only & MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=1bd21f19f7f0c61a7be8ecacb0e28854"
-DEPENDS = "rrdtool curl libpcap libxml2 yajl libgcrypt libtool lvm2"
+DEPENDS = "curl libpcap libxml2 yajl libgcrypt libtool lvm2"
-SRC_URI = "http://collectd.org/files/collectd-${PV}.tar.bz2 \
+SRC_URI = "https://collectd.org/files/collectd-${PV}.tar.bz2 \
file://collectd.init \
file://collectd.service \
file://no-gcrypt-badpath.patch \
@@ -50,7 +51,7 @@ PACKAGECONFIG[libmnl] = "--with-libmnl,--without-libmnl,libmnl"
PACKAGECONFIG[libatasmart] = "--with-libatasmart,--without-libatasmart,libatasmart"
PACKAGECONFIG[ldap] = "--enable-openldap --with-libldap,--disable-openldap --without-libldap, openldap"
PACKAGECONFIG[rrdtool] = "--enable-rrdtool,--disable-rrdtool,rrdtool"
-PACKAGECONFIG[rrdcached] = "--enable-rrdcached,--disable-rrdcached,rrdcached"
+PACKAGECONFIG[rrdcached] = "--enable-rrdcached,--disable-rrdcached,rrdtool"
PACKAGECONFIG[python] = "--enable-python,--disable-python"
EXTRA_OECONF = " \
diff --git a/meta-oe/recipes-extended/ddrescue/ddrescue_1.26.bb b/meta-oe/recipes-extended/ddrescue/ddrescue_1.26.bb
deleted file mode 100644
index a31911b977..0000000000
--- a/meta-oe/recipes-extended/ddrescue/ddrescue_1.26.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Data recovery tool"
-DESCRIPTION = "GNU ddrescue is a data recovery tool. It copies data \
- from one file or block device (hard disc, cdrom, etc) to another, \
- trying hard to rescue data in case of read errors."
-HOMEPAGE = "http://www.gnu.org/software/ddrescue/ddrescue.html"
-SECTION = "console"
-LICENSE = "GPL-2.0-or-later"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=76d6e300ffd8fb9d18bd9b136a9bba13 \
- file://main_common.cc;beginline=5;endline=16;md5=ad099df052bdd8297f490712285069da \
- "
-
-SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.lz"
-SRC_URI[sha256sum] = "e513cd3a90d9810dfdd91197d40aa40f6df01597bfb5ecfdfb205de1127c551f"
-
-# This isn't already added by base.bbclass
-do_unpack[depends] += "lzip-native:do_populate_sysroot"
-
-CONFIGUREOPTS = "\
- '--srcdir=${S}' \
- '--prefix=${prefix}' \
- '--exec-prefix=${exec_prefix}' \
- '--bindir=${bindir}' \
- '--datadir=${datadir}' \
- '--infodir=${infodir}' \
- '--sysconfdir=${sysconfdir}' \
- 'CXX=${CXX}' \
- 'CPPFLAGS=${CPPFLAGS}' \
- 'CXXFLAGS=${CXXFLAGS}' \
- 'LDFLAGS=${LDFLAGS}' \
-"
-EXTRA_OEMAKE = ""
-
-do_configure () {
- ${S}/configure ${CONFIGUREOPTS}
-}
-
-do_install () {
- oe_runmake 'DESTDIR=${D}' install
- # Info dir listing isn't interesting at this point so remove it if it exists.
- if [ -e "${D}${infodir}/dir" ]; then
- rm -f ${D}${infodir}/dir
- fi
-}
diff --git a/meta-oe/recipes-extended/ddrescue/ddrescue_1.28.bb b/meta-oe/recipes-extended/ddrescue/ddrescue_1.28.bb
new file mode 100644
index 0000000000..0863fc1209
--- /dev/null
+++ b/meta-oe/recipes-extended/ddrescue/ddrescue_1.28.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Data recovery tool"
+DESCRIPTION = "GNU ddrescue is a data recovery tool. It copies data \
+ from one file or block device (hard disc, cdrom, etc) to another, \
+ trying hard to rescue data in case of read errors."
+HOMEPAGE = "http://www.gnu.org/software/ddrescue/ddrescue.html"
+SECTION = "console"
+LICENSE = "GPL-2.0-or-later"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=76d6e300ffd8fb9d18bd9b136a9bba13 \
+ file://main_common.cc;beginline=5;endline=16;md5=ad099df052bdd8297f490712285069da \
+ "
+
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.lz"
+SRC_URI[sha256sum] = "6626c07a7ca1cc1d03cad0958522c5279b156222d32c342e81117cfefaeb10c1"
+
+# This isn't already added by base.bbclass
+do_unpack[depends] += "lzip-native:do_populate_sysroot"
+
+CONFIGUREOPTS = "\
+ '--srcdir=${S}' \
+ '--prefix=${prefix}' \
+ '--exec-prefix=${exec_prefix}' \
+ '--bindir=${bindir}' \
+ '--datadir=${datadir}' \
+ '--infodir=${infodir}' \
+ '--sysconfdir=${sysconfdir}' \
+ 'CXX=${CXX}' \
+ 'CPPFLAGS=${CPPFLAGS}' \
+ 'CXXFLAGS=${CXXFLAGS}' \
+ 'LDFLAGS=${LDFLAGS}' \
+"
+EXTRA_OEMAKE = ""
+
+do_configure () {
+ ${S}/configure ${CONFIGUREOPTS}
+}
+
+do_install () {
+ oe_runmake 'DESTDIR=${D}' install
+ # Info dir listing isn't interesting at this point so remove it if it exists.
+ if [ -e "${D}${infodir}/dir" ]; then
+ rm -f ${D}${infodir}/dir
+ fi
+}
diff --git a/meta-oe/recipes-extended/dialog/dialog_1.3-20210509.bb b/meta-oe/recipes-extended/dialog/dialog_1.3-20210509.bb
deleted file mode 100644
index 0b1e7e6088..0000000000
--- a/meta-oe/recipes-extended/dialog/dialog_1.3-20210509.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "display dialog boxes from shell scripts"
-DESCRIPTION = "Dialog lets you to present a variety of questions \
-or display messages using dialog boxes from a shell \
-script (or any scripting language)."
-HOMEPAGE = "http://invisible-island.net/dialog/"
-SECTION = "console/utils"
-DEPENDS = "ncurses"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
-
-SRC_URI = "ftp://ftp.invisible-island.net/${BPN}/${BP}.tgz"
-SRC_URI[sha256sum] = "ae478fe7d5fca82bcf4b51684641e07d2ee68489d319710fe1e81f41a197bd66"
-
-# hardcoded here for use in dialog-static recipe
-S = "${WORKDIR}/dialog-${PV}"
-
-inherit autotools-brokensep pkgconfig
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-
-PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--without-x,virtual/libx11"
-
-EXTRA_OECONF = "--with-ncurses \
- --disable-rpath-hack"
-
-do_configure() {
- gnu-configize --force
- sed -i 's,${cf_ncuconfig_root}6-config,${cf_ncuconfig_root}-config,g' -i configure
- sed -i 's,cf_have_ncuconfig=unknown,cf_have_ncuconfig=yes,g' -i configure
- oe_runconf
-}
diff --git a/meta-oe/recipes-extended/dialog/dialog_1.3-20240307.bb b/meta-oe/recipes-extended/dialog/dialog_1.3-20240307.bb
new file mode 100644
index 0000000000..a497175364
--- /dev/null
+++ b/meta-oe/recipes-extended/dialog/dialog_1.3-20240307.bb
@@ -0,0 +1,31 @@
+SUMMARY = "display dialog boxes from shell scripts"
+DESCRIPTION = "Dialog lets you to present a variety of questions \
+or display messages using dialog boxes from a shell \
+script (or any scripting language)."
+HOMEPAGE = "http://invisible-island.net/dialog/"
+SECTION = "console/utils"
+DEPENDS = "ncurses"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
+
+SRC_URI = "https://invisible-mirror.net/archives/${BPN}/${BP}.tgz"
+SRC_URI[sha256sum] = "339d311c6abb240213426b99ad63565cbcb3e8641ef1989c033e945b754d34ef"
+
+# hardcoded here for use in dialog-static recipe
+S = "${WORKDIR}/dialog-${PV}"
+
+inherit autotools-brokensep pkgconfig
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+
+PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--without-x,virtual/libx11"
+
+EXTRA_OECONF = "--with-ncurses \
+ --disable-rpath-hack"
+
+do_configure() {
+ gnu-configize --force
+ sed -i 's,${cf_ncuconfig_root}6-config,${cf_ncuconfig_root}-config,g' -i configure
+ sed -i 's,cf_have_ncuconfig=unknown,cf_have_ncuconfig=yes,g' -i configure
+ oe_runconf
+}
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch
deleted file mode 100644
index 7b40b7a67e..0000000000
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From dd2d42a7f877d292f86e421dd9651f4b7c2abf18 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Apr 2022 14:57:58 -0700
-Subject: [PATCH] cmake: Link with libatomic on rv32/rv64
-
-Use of <atomic> needs to link in libatomic on riscv
-Fixes
-
-undefined reference to `__atomic_exchange_1'
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/lib/CMakeLists.txt | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
-index 3293376..65018be 100644
---- a/src/lib/CMakeLists.txt
-+++ b/src/lib/CMakeLists.txt
-@@ -37,6 +37,12 @@ else()
- set(SOCKET_LIBRARY socket)
- endif()
-
-+if(CMAKE_SYSTEM_PROCESSOR STREQUAL "riscv64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "riscv32")
-+ set(ATOMIC_LIBRARY atomic)
-+else()
-+ set(ATOMIC_LIBRARY "")
-+endif()
-+
- if(HAVE_FUNC_PTHREAD_SETNAME_NP)
- add_definitions(-DDLT_USE_PTHREAD_SETNAME_NP)
- message(STATUS "Using pthread_setname_np API to set thread name")
-@@ -44,7 +50,7 @@ else()
- message(STATUS "pthread_setname_np API not available on this platform")
- endif()
-
--target_link_libraries(dlt ${RT_LIBRARY} ${SOCKET_LIBRARY} Threads::Threads)
-+target_link_libraries(dlt ${RT_LIBRARY} ${SOCKET_LIBRARY} ${ATOMIC_LIBRARY} Threads::Threads)
-
- target_include_directories(dlt
- PUBLIC
---
-2.36.0
-
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-dlt-system-Fix-buffer-overflow-detection-on-32bit-ta.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-dlt-system-Fix-buffer-overflow-detection-on-32bit-ta.patch
deleted file mode 100644
index e7e6cb3b1a..0000000000
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0001-dlt-system-Fix-buffer-overflow-detection-on-32bit-ta.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 94378458d653b1edca86435026909592cbe5e793 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Fri, 19 Aug 2022 11:12:17 +0800
-Subject: [PATCH] dlt-system: Fix buffer overflow detection on 32bit targets
-
-On 32bit target, dlt-system will termiated with error:
-dlt-system: *** buffer overflow detected ***: terminated
-
-Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/398]
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- src/system/dlt-system-watchdog.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/system/dlt-system-watchdog.c b/src/system/dlt-system-watchdog.c
-index a2b01de..c0eaa12 100644
---- a/src/system/dlt-system-watchdog.c
-+++ b/src/system/dlt-system-watchdog.c
-@@ -109,8 +109,8 @@ int register_watchdog_fd(struct pollfd *pollfd, int fdcnt)
-
- void watchdog_fd_handler(int fd)
- {
-- long int timersElapsed = 0;
-- int r = read(fd, &timersElapsed, 8); // only needed to reset fd event
-+ uint64_t timersElapsed = 0ULL;
-+ int r = read(fd, &timersElapsed, 8U); // only needed to reset fd event
- if(r < 0)
- DLT_LOG(watchdogContext, DLT_LOG_ERROR, DLT_STRING("Could not reset systemd watchdog. Exit with: "),
- DLT_STRING(strerror(r)));
-@@ -120,4 +120,4 @@ void watchdog_fd_handler(int fd)
-
- DLT_LOG(watchdogContext, DLT_LOG_DEBUG, DLT_STRING("systemd watchdog waited periodic\n"));
- }
--#endif
-\ No newline at end of file
-+#endif
---
-2.25.1
-
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch
index 181be25c7f..cfb820cec7 100644
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch
@@ -18,7 +18,7 @@ diff --git a/systemd/dlt-adaptor-udp.service.cmake b/systemd/dlt-adaptor-udp.ser
index 8dac1f2..ecf9f9e 100644
--- a/systemd/dlt-adaptor-udp.service.cmake
+++ b/systemd/dlt-adaptor-udp.service.cmake
-@@ -21,9 +21,8 @@ Wants=dlt.service
+@@ -19,9 +19,8 @@ Wants=dlt.service
[Service]
Type=simple
@@ -51,7 +51,7 @@ index b665742..35009b0 100644
[Service]
Type=simple
-User=@DLT_USER@
- ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-example-user "Hallo from GENIVI DLT example user application"
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-example-user "Hallo from COVESA DLT example user application"
-LimitCORE=infinity
\ No newline at end of file
+LimitCORE=infinity
@@ -59,7 +59,7 @@ diff --git a/systemd/dlt-receive.service.cmake b/systemd/dlt-receive.service.cma
index c07d447..8f88f00 100644
--- a/systemd/dlt-receive.service.cmake
+++ b/systemd/dlt-receive.service.cmake
-@@ -22,6 +22,5 @@ Wants=dlt.service
+@@ -20,6 +20,5 @@ Wants=dlt.service
[Service]
Type=simple
@@ -72,7 +72,7 @@ diff --git a/systemd/dlt-system.service.cmake b/systemd/dlt-system.service.cmake
index 0e91f42..1a5b913 100755
--- a/systemd/dlt-system.service.cmake
+++ b/systemd/dlt-system.service.cmake
-@@ -22,7 +22,6 @@ Wants=dlt.service
+@@ -20,7 +20,6 @@ Wants=dlt.service
[Service]
Type=simple
@@ -84,7 +84,7 @@ diff --git a/systemd/dlt.service.cmake b/systemd/dlt.service.cmake
index 0b3ee2c..e4753a2 100755
--- a/systemd/dlt.service.cmake
+++ b/systemd/dlt.service.cmake
-@@ -21,7 +21,6 @@ Documentation=man:dlt-daemon(1) man:dlt.conf(5)
+@@ -19,7 +19,6 @@ Documentation=man:dlt-daemon(1) man:dlt.conf(5)
[Service]
Type=simple
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/544.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/544.patch
new file mode 100644
index 0000000000..3699b8c83a
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/544.patch
@@ -0,0 +1,80 @@
+Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/544]
+
+From 8121a979026d5fcb05bd4e5d3a0647f321b56106 Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Date: Thu, 28 Sep 2023 12:54:23 +0200
+Subject: [PATCH] Add common dlt_cdh_cpuinfo.c to unblock build on non amd64
+ and i386 arcs
+
+---
+ src/core_dump_handler/dlt_cdh.h | 2 ++
+ src/core_dump_handler/dlt_cdh_cpuinfo.c | 33 +++++++++++++++++++++++++
+ src/core_dump_handler/dlt_cdh_crashid.c | 2 +-
+ 3 files changed, 36 insertions(+), 1 deletion(-)
+ create mode 100644 src/core_dump_handler/dlt_cdh_cpuinfo.c
+
+diff --git a/src/core_dump_handler/dlt_cdh.h b/src/core_dump_handler/dlt_cdh.h
+index d572ecf3..8608c6c4 100644
+--- a/src/core_dump_handler/dlt_cdh.h
++++ b/src/core_dump_handler/dlt_cdh.h
+@@ -55,6 +55,8 @@ typedef struct
+ uint64_t pc;
+ uint64_t ip;
+ uint64_t lr;
++ uint64_t sp;
++ uint64_t fp;
+
+ } cdh_registers_t;
+
+diff --git a/src/core_dump_handler/dlt_cdh_cpuinfo.c b/src/core_dump_handler/dlt_cdh_cpuinfo.c
+new file mode 100644
+index 00000000..03509fda
+--- /dev/null
++++ b/src/core_dump_handler/dlt_cdh_cpuinfo.c
+@@ -0,0 +1,33 @@
++/*
++ * SPDX license identifier: MPL-2.0
++ *
++ * Copyright (C) 2011-2015, BMW AG
++ *
++ * This file is part of COVESA Project DLT - Diagnostic Log and Trace.
++ *
++ * This Source Code Form is subject to the terms of the
++ * Mozilla Public License (MPL), v. 2.0.
++ * If a copy of the MPL was not distributed with this file,
++ * You can obtain one at http://mozilla.org/MPL/2.0/.
++ *
++ * For further information see http://www.covesa.org/.
++ */
++
++/*!
++ * \author Gianfranco Costamagna <locutusofborg@debian.org>
++ *
++ * \copyright Copyright © 2011-2015 BMW AG. \n
++ * License MPL-2.0: Mozilla Public License version 2.0 http://mozilla.org/MPL/2.0/.
++ *
++ * \file dlt_cdh_cpuinfo.c
++ */
++
++#include "dlt_cdh_cpuinfo.h"
++
++void get_registers(prstatus_t *prstatus, cdh_registers_t *registers)
++{
++/* struct user_regs_struct *ptr_reg = (struct user_regs_struct *)prstatus->pr_reg;
++
++ registers->pc = ptr_reg->pc;*/ /* [REG_PROC_COUNTER]; */
++
++}
+diff --git a/src/core_dump_handler/dlt_cdh_crashid.c b/src/core_dump_handler/dlt_cdh_crashid.c
+index bca44e0e..8dd98d70 100644
+--- a/src/core_dump_handler/dlt_cdh_crashid.c
++++ b/src/core_dump_handler/dlt_cdh_crashid.c
+@@ -30,7 +30,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <errno.h>
+-#include <asm/prctl.h>
++#include <sys/prctl.h>
+ #include <inttypes.h>
+
+ #include "dlt_cdh.h"
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/567.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/567.patch
new file mode 100644
index 0000000000..fd36480456
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/567.patch
@@ -0,0 +1,36 @@
+Upstream-Status: Submitted [https://github.com/COVESA/dlt-daemon/pull/567]
+
+From c84e48f6986054cf8b9459e608235b7bd1635746 Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Date: Mon, 13 Nov 2023 12:37:23 +0100
+Subject: [PATCH] dlt_cdh:
+
+Make sure on 64 bit we read an ELF64 structure.
+Otherwise we get a read error, and the context file is missing some good
+to know information
+---
+ src/core_dump_handler/dlt_cdh.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/src/core_dump_handler/dlt_cdh.h b/src/core_dump_handler/dlt_cdh.h
+index 8608c6c4..3dac480a 100644
+--- a/src/core_dump_handler/dlt_cdh.h
++++ b/src/core_dump_handler/dlt_cdh.h
+@@ -45,10 +45,17 @@
+ #define CORE_FILE_PATTERN "%s/core.%d.%s.%d.gz"
+ #define CONTEXT_FILE_PATTERN "%s/context.%d.%s.%d.txt"
+
++#if ((__SIZEOF_POINTER) == 4)
+ #define ELF_Ehdr Elf32_Ehdr
+ #define ELF_Phdr Elf32_Phdr
+ #define ELF_Shdr Elf32_Shdr
+ #define ELF_Nhdr Elf32_Nhdr
++#else
++#define ELF_Ehdr Elf64_Ehdr
++#define ELF_Phdr Elf64_Phdr
++#define ELF_Shdr Elf64_Shdr
++#define ELF_Nhdr Elf64_Nhdr
++#endif
+
+ typedef struct
+ {
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.10.bb b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.10.bb
new file mode 100644
index 0000000000..3d2e4a73f1
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.10.bb
@@ -0,0 +1,73 @@
+SUMMARY = "Diagnostic Log and Trace"
+DESCRIPTION = "This component provides a standardised log and trace interface, \
+based on the standardised protocol specified in the AUTOSAR standard 4.0 DLT. \
+This component can be used by COVESA components and other applications as \
+logging facility providing: \
+- the DLT shared library \
+- the DLT daemon, including startup scripts \
+- the DLT daemon adaptors- the DLT client console utilities \
+- the DLT test applications"
+HOMEPAGE = "https://www.covesa.global/"
+SECTION = "console/utils"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8184208060df880fe3137b93eb88aeea"
+
+DEPENDS = "zlib gzip-native json-c"
+
+SRC_URI = "git://github.com/COVESA/${BPN}.git;protocol=https;branch=master \
+ file://0002-Don-t-execute-processes-as-a-specific-user.patch \
+ file://0004-Modify-systemd-config-directory.patch \
+ file://544.patch \
+ file://567.patch \
+ "
+SRCREV = "0f2d4cfffada6f8448a2cb27995b38eb4271044f"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd systemd-watchdog systemd-journal ', '', d)} \
+ dlt-examples dlt-adaptor dlt-adaptor-stdin dlt-adaptor-udp dlt-console \
+ udp-connection dlt-system dlt-filetransfer "
+# dlt-dbus
+
+# General options
+PACKAGECONFIG[dlt-examples] = "-DWITH_DLT_EXAMPLES=ON,-DWITH_DLT_EXAMPLES=OFF"
+
+# Linux options
+PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF -DWITH_DLT_SYSTEM=OFF,systemd"
+PACKAGECONFIG[systemd-watchdog] = "-DWITH_SYSTEMD_WATCHDOG=ON,-DWITH_SYSTEMD_WATCHDOG=OFF,systemd,libsystemd"
+PACKAGECONFIG[systemd-journal] = "-DWITH_SYSTEMD_JOURNAL=ON,-DWITH_SYSTEMD_JOURNAL=OFF,systemd,libsystemd"
+PACKAGECONFIG[dlt-dbus] = "-DWITH_DLT_DBUS=ON,-DWITH_DLT_DBUS=OFF,dbus,dbus-lib"
+PACKAGECONFIG[udp-connection] = "-DWITH_UDP_CONNECTION=ON,-DWITH_UDP_CONNECTION=OFF"
+
+# Command line options
+PACKAGECONFIG[dlt-system] = "-DWITH_DLT_SYSTEM=ON,-DWITH_DLT_SYSTEM=OFF"
+PACKAGECONFIG[dlt-adaptor] = "-DWITH_DLT_ADAPTOR=ON,-DWITH_DLT_ADAPTOR=OFF"
+PACKAGECONFIG[dlt-adaptor-stdin] = "-DWITH_DLT_ADAPTOR_STDIN=ON,-DWITH_DLT_ADAPTOR_STDIN=OFF"
+PACKAGECONFIG[dlt-adaptor-udp] = "-DWITH_DLT_ADAPTOR_UDP=ON,-DWITH_DLT_ADAPTOR_UDP=OFF"
+PACKAGECONFIG[dlt-filetransfer] = "-DWITH_DLT_FILETRANSFER=ON,-DWITH_DLT_FILETRANSFER=OFF"
+PACKAGECONFIG[dlt-console] = "-DWITH_DLT_CONSOLE=ON,-DWITH_DLT_CONSOLE=OFF"
+
+inherit autotools gettext cmake pkgconfig systemd
+
+# -DWITH_DLT_COREDUMPHANDLER=ON this feature is too experimental, disable for now
+#FILES:${PN} += "${libdir}/sysctl.d"
+EXTRA_OECMAKE += "-DWITH_DLT_LOGSTORAGE_GZIP=ON -DWITH_EXTENDED_FILTERING=ON -DSYSTEMD_UNITDIR=${systemd_system_unitdir}"
+
+PACKAGES += "${PN}-systemd"
+SYSTEMD_PACKAGES = "${PN} ${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = " ${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'dlt.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'systemd dlt-system', 'dlt-system.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'systemd dlt-dbus', 'dlt-dbus.service', '', d)}"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
+SYSTEMD_SERVICE:${PN}-systemd = " \
+ ${@bb.utils.contains('PACKAGECONFIG', 'systemd dlt-adaptor-udp', 'dlt-adaptor-udp.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'systemd dlt-examples', 'dlt-example-user.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'systemd dlt-examples dlt-console', 'dlt-receive.service', '', d)} \
+"
+SYSTEMD_AUTO_ENABLE:${PN}-systemd = "disable"
+
+FILES:${PN}-doc += "${datadir}/dlt-filetransfer"
+
+do_install:append() {
+ rm -f ${D}${bindir}/dlt-test-*
+}
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.8.bb b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.8.bb
deleted file mode 100644
index aa5ef46a9d..0000000000
--- a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.8.bb
+++ /dev/null
@@ -1,73 +0,0 @@
-SUMMARY = "Diagnostic Log and Trace"
-DESCRIPTION = "This component provides a standardised log and trace interface, \
-based on the standardised protocol specified in the AUTOSAR standard 4.0 DLT. \
-This component can be used by GENIVI components and other applications as \
-logging facility providing: \
-- the DLT shared library \
-- the DLT daemon, including startup scripts \
-- the DLT daemon adaptors- the DLT client console utilities \
-- the DLT test applications"
-HOMEPAGE = "https://www.genivi.org/"
-SECTION = "console/utils"
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8184208060df880fe3137b93eb88aeea"
-
-DEPENDS = "zlib gzip-native json-c"
-
-SRC_URI = "git://github.com/GENIVI/${BPN}.git;protocol=https;branch=master \
- file://0002-Don-t-execute-processes-as-a-specific-user.patch \
- file://0004-Modify-systemd-config-directory.patch \
- file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \
- file://0001-dlt-system-Fix-buffer-overflow-detection-on-32bit-ta.patch \
- "
-SRCREV = "6a3bd901d825c7206797e36ea98e10a218f5aad2"
-
-PV .= "+2.18.9git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-LDFLAGS:append:riscv64 = " -latomic"
-
-PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd systemd-watchdog systemd-journal dlt-examples dlt-adaptor dlt-adaptor-udp dlt-console ', '', d)} \
- udp-connection dlt-system dlt-filetransfer "
-# dlt-dbus
-
-# General options
-PACKAGECONFIG[dlt-examples] = "-DWITH_DLT_EXAMPLES=ON,-DWITH_DLT_EXAMPLES=OFF,,dlt-daemon-systemd"
-
-# Linux options
-PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF -DWITH_DLT_SYSTEM=OFF,systemd"
-PACKAGECONFIG[systemd-watchdog] = "-DWITH_SYSTEMD_WATCHDOG=ON,-DWITH_SYSTEMD_WATCHDOG=OFF,systemd,libsystemd"
-PACKAGECONFIG[systemd-journal] = "-DWITH_SYSTEMD_JOURNAL=ON,-DWITH_SYSTEMD_JOURNAL=OFF,systemd,libsystemd"
-PACKAGECONFIG[dlt-dbus] = "-DWITH_DLT_DBUS=ON,-DWITH_DLT_DBUS=OFF,dbus,dbus-lib"
-PACKAGECONFIG[udp-connection] = "-DWITH_UDP_CONNECTION=ON,-DWITH_UDP_CONNECTION=OFF"
-
-# Command line options
-PACKAGECONFIG[dlt-system] = "-DWITH_DLT_SYSTEM=ON,-DWITH_DLT_SYSTEM=OFF"
-PACKAGECONFIG[dlt-adaptor] = "-DWITH_DLT_ADAPTOR=ON,-DWITH_DLT_ADAPTOR=OFF,,dlt-daemon-systemd"
-PACKAGECONFIG[dlt-adaptor-udp] = "-DWITH_DLT_ADAPTOR_UDP=ON,-DWITH_DLT_ADAPTOR_UDP=OFF,,dlt-daemon-systemd"
-PACKAGECONFIG[dlt-filetransfer] = "-DWITH_DLT_FILETRANSFER=ON,-DWITH_DLT_FILETRANSFER=OFF"
-PACKAGECONFIG[dlt-console] = "-DWITH_DLT_CONSOLE=ON,-DWITH_DLT_CONSOLE=OFF,,dlt-daemon-systemd"
-
-inherit autotools gettext cmake pkgconfig systemd
-
-EXTRA_OECMAKE += "-DWITH_EXTENDED_FILTERING=ON -DSYSTEMD_UNITDIR=${systemd_system_unitdir}"
-
-PACKAGES += "${PN}-systemd"
-SYSTEMD_PACKAGES = "${PN} ${PN}-systemd"
-SYSTEMD_SERVICE:${PN} = " ${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'dlt.service', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'dlt-system', 'dlt-system.service', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'dlt-dbus', 'dlt-dbus.service', '', d)}"
-SYSTEMD_AUTO_ENABLE:${PN} = "enable"
-SYSTEMD_SERVICE:${PN}-systemd = " \
- ${@bb.utils.contains('PACKAGECONFIG', 'dlt-adaptor-udp', 'dlt-adaptor-udp.service', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'dlt-examples', 'dlt-example-user.service', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'dlt-examples dlt-console', 'dlt-receive.service', '', d)} \
-"
-SYSTEMD_AUTO_ENABLE:${PN}-systemd = "disable"
-
-FILES:${PN}-doc += "${datadir}/dlt-filetransfer"
-
-do_install:append() {
- rm -f ${D}${bindir}/dlt-test-*
-}
diff --git a/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb b/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb
index 28db39ac20..ec0b4da935 100644
--- a/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb
+++ b/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb
@@ -13,9 +13,8 @@ LIC_FILES_CHKSUM = "\
file://LICENSE-MIT;md5=4b242fd9ef20207e18286d73da8a6677 \
"
-DEPENDS = "boost"
SRCREV = "42ebcec9dc2c99a1b3a4542787572045763ad196"
-PV = "0.6.3+git${SRCPV}"
+PV = "0.6.3+git"
SRC_URI = "\
git://github.com/docopt/docopt.cpp.git;protocol=https;branch=master \
@@ -24,3 +23,8 @@ SRC_URI = "\
S = "${WORKDIR}/git"
inherit cmake
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[boost] = "-DUSE_BOOST_REGEX=ON,-DUSE_BOOST_REGEX=OFF,boost"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3/0001-cmake-fix-when-cross-compiling.patch b/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3/0001-cmake-fix-when-cross-compiling.patch
new file mode 100644
index 0000000000..ce12d4270a
--- /dev/null
+++ b/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3/0001-cmake-fix-when-cross-compiling.patch
@@ -0,0 +1,68 @@
+From cb79329010d73e36ce64830914005f1c17f8f53c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= <peron.clem@gmail.com>
+Date: Sat, 23 Sep 2023 11:32:18 +0200
+Subject: [PATCH] cmake: fix when cross compiling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In order to generate protobuf files CMake need to use the protoc
+and grpc-cpp-plugin compiled for the host architecture.
+
+Unfortunately, the protoc and grpc-cpp-plugin in the gRPC CMake
+configuration file are the one for the target architecture.
+
+Fix this by properly finding the correct executable when
+CMake is cross compiling.
+
+Signed-off-by: Clément Péron <peron.clem@gmail.com>
+---
+Upstream-Status: Pending
+
+ CMakeLists.txt | 28 ++++++++++++++++++++++++++--
+ 1 file changed, 26 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5aa1310..80ebad2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -120,10 +120,34 @@ if(Protobuf_PROTOC_EXECUTABLE)
+ endif()
+ endif()
+
++# When cross compiling we look for the native protoc compiler
++# overwrite protobuf::protoc with the proper protoc
++if(CMAKE_CROSSCOMPILING)
++ find_program(Protobuf_PROTOC_EXECUTABLE REQUIRED NAMES protoc)
++ if(NOT TARGET protobuf::protoc)
++ add_executable(protobuf::protoc IMPORTED)
++ endif()
++ set_target_properties(protobuf::protoc PROPERTIES
++ IMPORTED_LOCATION "${Protobuf_PROTOC_EXECUTABLE}")
++endif()
++
+ find_package(gRPC QUIET)
+-if(gRPC_FOUND AND TARGET gRPC::grpc AND TARGET gRPC::grpc_cpp_plugin)
++if(gRPC_FOUND AND TARGET gRPC::grpc)
++ # When cross compiling we look for the native grpc_cpp_plugin
++ if(CMAKE_CROSSCOMPILING)
++ find_program(GRPC_CPP_PLUGIN REQUIRED NAMES grpc_cpp_plugin)
++ if(NOT TARGET gRPC::grpc_cpp_plugin)
++ add_executable(gRPC::grpc_cpp_plugin IMPORTED)
++ endif()
++ set_target_properties(gRPC::grpc_cpp_plugin PROPERTIES
++ IMPORTED_LOCATION "${GRPC_CPP_PLUGIN}")
++ elseif(TARGET gRPC::grpc_cpp_plugin)
++ get_target_property(GRPC_CPP_PLUGIN gRPC::grpc_cpp_plugin LOCATION)
++ else()
++ message(FATAL_ERROR "Found gRPC but no gRPC CPP plugin defined")
++ endif()
++
+ set(GRPC_LIBRARIES gRPC::gpr gRPC::grpc gRPC::grpc++)
+- get_target_property(GRPC_CPP_PLUGIN gRPC::grpc_cpp_plugin LOCATION)
+ get_target_property(GRPC_INCLUDE_DIR gRPC::grpc INTERFACE_INCLUDE_DIRECTORIES)
+ else()
+ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindGRPC.cmake)
+--
+2.39.3 (Apple Git-145)
+
diff --git a/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.15.3.bb b/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.15.3.bb
new file mode 100644
index 0000000000..401d53c79c
--- /dev/null
+++ b/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.15.3.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "C++ API for etcd's v3 client API"
+HOMEPAGE = "https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=eae7da6a2cd1788a5cf8a9f838cf6450"
+
+SRC_URI = " \
+ git://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3.git;branch=master;protocol=https \
+ file://0001-cmake-fix-when-cross-compiling.patch \
+"
+
+SRCREV = "e31ac4d4caa55fa662e207150ba40f8151b7ad96"
+
+inherit cmake
+
+DEPENDS += "grpc protobuf cpprest grpc-native protobuf-native"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "-DCPPREST_EXCLUDE_WEBSOCKETS=ON"
+
+SOLIBS = ".so"
+FILES_SOLIBSDEV = ""
diff --git a/meta-oe/recipes-extended/etcd/etcd/0001-test_lib.sh-remove-gobin-requirement-during-build.patch b/meta-oe/recipes-extended/etcd/etcd/0001-test_lib.sh-remove-gobin-requirement-during-build.patch
new file mode 100644
index 0000000000..f0d9c2936a
--- /dev/null
+++ b/meta-oe/recipes-extended/etcd/etcd/0001-test_lib.sh-remove-gobin-requirement-during-build.patch
@@ -0,0 +1,51 @@
+From a57d78a94e7cbc8cfa468b58c7d4e23668c05fec Mon Sep 17 00:00:00 2001
+From: Andrew Geissler <geissonator@yahoo.com>
+Date: Tue, 2 May 2023 13:36:36 -0600
+Subject: [PATCH] test_lib.sh: remove gobin requirement during build
+
+This tool is installed as a part of the build process (build.sh sources
+test_lib.sh)
+
+This tool has been removed in the latest etcd main branch. Installing it
+as a part of the build process breaks bitbake (it doesn't allow
+downloading of packages once in the build steps).
+
+This tool is not needed to build etcd (it appears to be used for some
+optional test cases).
+
+Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
+---
+Upstream-Status: Pending
+
+ scripts/test_lib.sh | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/test_lib.sh b/scripts/test_lib.sh
+index 44b9d2895..da97a9c26 100644
+--- a/scripts/test_lib.sh
++++ b/scripts/test_lib.sh
+@@ -140,7 +140,7 @@ function run {
+ command=("${command[@]@Q}")
+ if [[ "${rpath}" != "." && "${rpath}" != "" ]]; then
+ repro="(cd ${rpath} && ${command[*]})"
+- else
++ else
+ repro="${command[*]}"
+ fi
+
+@@ -305,7 +305,11 @@ function tool_exists {
+
+ # Ensure gobin is available, as it runs majority of the tools
+ if ! command -v "gobin" >/dev/null; then
+- run env GO111MODULE=off go get github.com/myitcv/gobin || exit 1
++ # This script is run as a part of the build process. Installing packages
++ # during the build process is not allowed in bitbake.
++ # Gobin is deprecated and not needed when building in the bitbake env
++ echo "Not installing gobin in bitbake env"
++ # run env GO111MODULE=off go get github.com/myitcv/gobin || exit 1
+ fi
+
+ # tool_get_bin [tool] - returns absolute path to a tool binary (or returns error)
+--
+2.37.1 (Apple Git-137.1)
+
diff --git a/meta-oe/recipes-extended/etcd/etcd/0001-xxhash-bump-to-v2.1.2.patch b/meta-oe/recipes-extended/etcd/etcd/0001-xxhash-bump-to-v2.1.2.patch
new file mode 100644
index 0000000000..c897fe17cd
--- /dev/null
+++ b/meta-oe/recipes-extended/etcd/etcd/0001-xxhash-bump-to-v2.1.2.patch
@@ -0,0 +1,205 @@
+From e99ee73e7660689203b83fab6b26c400191b145c Mon Sep 17 00:00:00 2001
+From: Andrew Geissler <geissonator@yahoo.com>
+Date: Fri, 24 Mar 2023 10:00:35 -0500
+Subject: [PATCH] xxhash: bump to v2.1.2
+
+There is a known issue in v2.1.1:
+
+ https://github.com/cespare/xxhash/issues/54
+
+Fix that issue by bumping to the version with the fix.
+
+This has been fixed in upstream etcd via the following:
+
+ https://github.com/etcd-io/etcd/commit/f0f77fc14e3bd4d94a953b490e810a06ef36695a
+
+But it was a pretty major upgrade so just take the one piece we need for
+the etcd v3.5 release tag.
+
+Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
+---
+Upstream-Status: Pending
+
+ client/v3/go.mod | 2 +-
+ client/v3/go.sum | 2 ++
+ etcdctl/go.mod | 2 +-
+ etcdctl/go.sum | 3 ++-
+ etcdutl/go.mod | 2 +-
+ etcdutl/go.sum | 3 ++-
+ go.mod | 2 +-
+ go.sum | 3 ++-
+ server/go.mod | 2 +-
+ server/go.sum | 3 ++-
+ tests/go.mod | 2 +-
+ tests/go.sum | 3 ++-
+ 12 files changed, 18 insertions(+), 11 deletions(-)
+
+diff --git a/client/v3/go.mod b/client/v3/go.mod
+index ec286316a..6e72eb067 100644
+--- a/client/v3/go.mod
++++ b/client/v3/go.mod
+@@ -15,7 +15,7 @@ require (
+
+ require (
+ github.com/beorn7/perks v1.0.1 // indirect
+- github.com/cespare/xxhash/v2 v2.1.1 // indirect
++ github.com/cespare/xxhash/v2 v2.1.2 // indirect
+ github.com/coreos/go-semver v0.3.0 // indirect
+ github.com/coreos/go-systemd/v22 v22.3.2 // indirect
+ github.com/gogo/protobuf v1.3.2 // indirect
+diff --git a/client/v3/go.sum b/client/v3/go.sum
+index 024078504..8866fabba 100644
+--- a/client/v3/go.sum
++++ b/client/v3/go.sum
+@@ -14,6 +14,8 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r
+ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+ github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
+ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
++github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
++github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+diff --git a/etcdctl/go.mod b/etcdctl/go.mod
+index 2101ed78e..3a727b492 100644
+--- a/etcdctl/go.mod
++++ b/etcdctl/go.mod
+@@ -23,7 +23,7 @@ require (
+
+ require (
+ github.com/beorn7/perks v1.0.1 // indirect
+- github.com/cespare/xxhash/v2 v2.1.1 // indirect
++ github.com/cespare/xxhash/v2 v2.1.2 // indirect
+ github.com/coreos/go-semver v0.3.0 // indirect
+ github.com/coreos/go-systemd/v22 v22.3.2 // indirect
+ github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect
+diff --git a/etcdctl/go.sum b/etcdctl/go.sum
+index 980aca775..765a77e72 100644
+--- a/etcdctl/go.sum
++++ b/etcdctl/go.sum
+@@ -38,8 +38,9 @@ github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5P
+ github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
+ github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
+ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+-github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
+ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
++github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
++github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+diff --git a/etcdutl/go.mod b/etcdutl/go.mod
+index 24fd3f1bb..7f7ad8bc4 100644
+--- a/etcdutl/go.mod
++++ b/etcdutl/go.mod
+@@ -36,7 +36,7 @@ require (
+
+ require (
+ github.com/beorn7/perks v1.0.1 // indirect
+- github.com/cespare/xxhash/v2 v2.1.1 // indirect
++ github.com/cespare/xxhash/v2 v2.1.2 // indirect
+ github.com/coreos/go-semver v0.3.0 // indirect
+ github.com/coreos/go-systemd/v22 v22.3.2 // indirect
+ github.com/gogo/protobuf v1.3.2 // indirect
+diff --git a/etcdutl/go.sum b/etcdutl/go.sum
+index 7d3675855..4c894740e 100644
+--- a/etcdutl/go.sum
++++ b/etcdutl/go.sum
+@@ -37,8 +37,9 @@ github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5P
+ github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
+ github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
+ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+-github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
+ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
++github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
++github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+diff --git a/go.mod b/go.mod
+index 3df2c43e1..f794ab8d2 100644
+--- a/go.mod
++++ b/go.mod
+@@ -39,7 +39,7 @@ require (
+ require (
+ github.com/beorn7/perks v1.0.1 // indirect
+ github.com/cenkalti/backoff/v4 v4.1.1 // indirect
+- github.com/cespare/xxhash/v2 v2.1.1 // indirect
++ github.com/cespare/xxhash/v2 v2.1.2 // indirect
+ github.com/cockroachdb/datadriven v1.0.1-0.20220214170620-9913f5bc19b7 // indirect
+ github.com/cockroachdb/errors v1.9.0 // indirect
+ github.com/coreos/go-semver v0.3.0 // indirect
+diff --git a/go.sum b/go.sum
+index 7bb455e8b..e2e07cfe4 100644
+--- a/go.sum
++++ b/go.sum
+@@ -50,8 +50,9 @@ github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6
+ github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
+ github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
+ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+-github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
+ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
++github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
++github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+diff --git a/server/go.mod b/server/go.mod
+index 46dcfad08..ab635e592 100644
+--- a/server/go.mod
++++ b/server/go.mod
+@@ -47,7 +47,7 @@ require (
+ require (
+ github.com/beorn7/perks v1.0.1 // indirect
+ github.com/cenkalti/backoff/v4 v4.1.1 // indirect
+- github.com/cespare/xxhash/v2 v2.1.1 // indirect
++ github.com/cespare/xxhash/v2 v2.1.2 // indirect
+ github.com/davecgh/go-spew v1.1.1 // indirect
+ github.com/gorilla/websocket v1.4.2 // indirect
+ github.com/inconshreveable/mousetrap v1.0.0 // indirect
+diff --git a/server/go.sum b/server/go.sum
+index 8f78c3864..c4fbfac25 100644
+--- a/server/go.sum
++++ b/server/go.sum
+@@ -39,8 +39,9 @@ github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5P
+ github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
+ github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
+ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+-github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
+ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
++github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
++github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+diff --git a/tests/go.mod b/tests/go.mod
+index b578bbf02..45820817c 100644
+--- a/tests/go.mod
++++ b/tests/go.mod
+@@ -46,7 +46,7 @@ require (
+ require (
+ github.com/beorn7/perks v1.0.1 // indirect
+ github.com/cenkalti/backoff/v4 v4.1.1 // indirect
+- github.com/cespare/xxhash/v2 v2.1.1 // indirect
++ github.com/cespare/xxhash/v2 v2.1.2 // indirect
+ github.com/coreos/go-semver v0.3.0 // indirect
+ github.com/coreos/go-systemd/v22 v22.3.2 // indirect
+ github.com/creack/pty v1.1.11 // indirect
+diff --git a/tests/go.sum b/tests/go.sum
+index 203bf65d6..46c18c31f 100644
+--- a/tests/go.sum
++++ b/tests/go.sum
+@@ -39,8 +39,9 @@ github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5P
+ github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
+ github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
+ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+-github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
+ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
++github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
++github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+--
+2.37.1 (Apple Git-137.1)
+
diff --git a/meta-oe/recipes-extended/etcd/etcd/etcd-existing.conf b/meta-oe/recipes-extended/etcd/etcd/etcd-existing.conf
new file mode 100644
index 0000000000..fc32cc8084
--- /dev/null
+++ b/meta-oe/recipes-extended/etcd/etcd/etcd-existing.conf
@@ -0,0 +1,37 @@
+# This is the configuration file to start the etcd server with
+# existing cluster configuration in the data directory.
+
+# Initial cluster state ('new' or 'existing').
+ETCD_INITIAL_CLUSTER_STATE='existing'
+
+# Path to the data directory.
+ETCD_DATA_DIR='/var/lib/etcd'
+
+# Time (in milliseconds) of a heartbeat interval.
+ETCD_HEARTBEAT_INTERVAL=100
+
+# Time (in milliseconds) for an election to timeout.
+ETCD_ELECTION_TIMEOUT=1000
+
+# List of comma separated URLs to listen on for peer traffic.
+ETCD_LISTEN_PEER_URLS=http://localhost:2380
+
+# List of comma separated URLs to listen on for client traffic.
+ETCD_LISTEN_CLIENT_URLS=http://localhost:2379
+
+# List of this member's peer URLs to advertise to the rest of the cluster.
+# The URLs needed to be a comma-separated list.
+ETCD_INITIAL_ADVERTISE_PEER_URLS=http://localhost:2380
+
+# List of this member's client URLs to advertise to the public.
+# The URLs needed to be a comma-separated list.
+ETCD_ADVERTISE_CLIENT_URLS=http://localhost:2379
+
+# Enable info-level logging for etcd.
+ETCD_LOG_LEVEL='info'
+
+# Specify 'stdout' or 'stderr' to skip journald logging even when running under systemd.
+ETCD_LOG_OUTPUTS='default'
+
+# etcd is not officially supported on arm64
+ETCD_UNSUPPORTED_ARCH='arm'
diff --git a/meta-oe/recipes-extended/etcd/etcd/etcd-new.path b/meta-oe/recipes-extended/etcd/etcd/etcd-new.path
new file mode 100644
index 0000000000..1a18a40160
--- /dev/null
+++ b/meta-oe/recipes-extended/etcd/etcd/etcd-new.path
@@ -0,0 +1,9 @@
+[Unit]
+Description=Monitor the etcd config file changes
+
+[Path]
+PathChanged=/run/etcd-new.conf
+Unit=etcd-new.service
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/etcd/etcd/etcd-new.service b/meta-oe/recipes-extended/etcd/etcd/etcd-new.service
new file mode 100644
index 0000000000..479678dc67
--- /dev/null
+++ b/meta-oe/recipes-extended/etcd/etcd/etcd-new.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=etcd cluster member start/add service
+Documentation=https://etcd.io/docs/v3.5/op-guide/clustering/
+ConditionPathExists=!/var/lib/etcd/member
+ConditionPathExists=/run/etcd-new.conf
+OnFailure=etcd.service
+
+[Service]
+Type=notify
+EnvironmentFile=/run/etcd-new.conf
+ExecStart=/usr/bin/etcd
+Restart=no
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/etcd/etcd/etcd.service b/meta-oe/recipes-extended/etcd/etcd/etcd.service
new file mode 100644
index 0000000000..782ef4ef09
--- /dev/null
+++ b/meta-oe/recipes-extended/etcd/etcd/etcd.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=etcd key-value store
+Documentation=https://github.com/etcd-io/etcd
+After=network-online.target local-fs.target remote-fs.target time-sync.target
+Wants=network-online.target local-fs.target remote-fs.target time-sync.target
+ConditionPathExists=/var/lib/etcd/member
+
+[Service]
+Type=notify
+EnvironmentFile=/etc/etcd.d/etcd-existing.conf
+ExecStart=/usr/bin/etcd
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/etcd/etcd_3.5.7.bb b/meta-oe/recipes-extended/etcd/etcd_3.5.7.bb
new file mode 100644
index 0000000000..0794158a52
--- /dev/null
+++ b/meta-oe/recipes-extended/etcd/etcd_3.5.7.bb
@@ -0,0 +1,73 @@
+DESCRIPTION = "etcd is a distributed key-value store for distributed systems"
+HOMEPAGE = "https://etcd.io/"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/${GO_INSTALL}/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = " \
+ git://github.com/etcd-io/etcd;branch=release-3.5;protocol=https \
+ file://0001-xxhash-bump-to-v2.1.2.patch;patchdir=src/${GO_IMPORT} \
+ file://0001-test_lib.sh-remove-gobin-requirement-during-build.patch;patchdir=src/${GO_IMPORT} \
+ file://etcd.service \
+ file://etcd-existing.conf \
+ file://etcd-new.service \
+ file://etcd-new.path \
+"
+
+SRCREV = "215b53cf3b48ee761f4c40908b3874b2e5e95e9f"
+UPSTREAM_CHECK_COMMITS = "1"
+
+GO_IMPORT = "go.etcd.io/etcd/v3"
+GO_INSTALL = "src/${GO_IMPORT}/"
+
+RDEPENDS:${PN}-dev = " \
+ bash \
+"
+
+export GO111MODULE="on"
+
+inherit go systemd pkgconfig features_check
+
+# Go based binaries do not handle being stripped
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+
+# network is required by go to get dependent packages
+do_compile[network] = "1"
+
+# Need to build etcd out of where it is extracted to
+# Need to directly call build script vs. "make build"
+# because "make build" executes the generated binaries
+# at the end of the build which do not run correctly
+# when cross compiling for another machine
+go_do_compile:prepend() {
+ cd ${GO_INSTALL}
+ ./build.sh
+
+
+ # Lots of discussion in go community about how it sets packages to
+ # read-only by default -> https://github.com/golang/go/issues/31481
+ # etcd is going to need some upstream work to support it.
+ # For now, set the packages which are read-only back to
+ # writeable so things like "bitbake -c cleanall etcd" will work.
+ chmod u+w -R ${WORKDIR}/build/pkg/mod
+}
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN}:append = " etcd.service etcd-new.service etcd-new.path"
+
+do_install:append() {
+ install -d ${D}${bindir}/
+ install -m 0755 ${D}${libdir}/go/src/go.etcd.io/etcd/v3/bin/etcd ${D}${bindir}
+ install -m 0755 ${D}${libdir}/go/src/go.etcd.io/etcd/v3/bin/etcdctl ${D}${bindir}
+ install -m 0755 ${D}${libdir}/go/src/go.etcd.io/etcd/v3/bin/etcdutl ${D}${bindir}
+ install -m 0644 ${WORKDIR}/etcd-existing.conf -D -t ${D}${sysconfdir}/etcd.d
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/etcd.service ${D}${systemd_system_unitdir}/
+ install -m 0644 ${WORKDIR}/etcd-new.service ${D}${systemd_system_unitdir}/
+ install -m 0644 ${WORKDIR}/etcd-new.path ${D}${systemd_system_unitdir}/
+}
+
+FILES:${PN}:append = " ${sysconfdir}/etcd.d/etcd-existing.conf"
+
diff --git a/meta-oe/recipes-extended/figlet/figlet_git.bb b/meta-oe/recipes-extended/figlet/figlet_git.bb
index 61b050aac6..9789ac16d4 100644
--- a/meta-oe/recipes-extended/figlet/figlet_git.bb
+++ b/meta-oe/recipes-extended/figlet/figlet_git.bb
@@ -8,7 +8,7 @@ SRC_URI = "git://github.com/cmatsuoka/figlet.git;branch=master;protocol=https \
file://0001-build-add-autotools-support-to-allow-easy-cross-comp.patch"
SRCREV = "5bbcd7383a8c3a531299b216b0c734e1495c6db3"
S = "${WORKDIR}/git"
-PV = "2.2.5+git${SRCPV}"
+PV = "2.2.5+git"
inherit autotools
diff --git a/meta-oe/recipes-extended/flatpak/flatpak-xdg-utils_1.0.5.bb b/meta-oe/recipes-extended/flatpak/flatpak-xdg-utils_1.0.5.bb
new file mode 100644
index 0000000000..423c6faf7e
--- /dev/null
+++ b/meta-oe/recipes-extended/flatpak/flatpak-xdg-utils_1.0.5.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "This repository contains a number of commandline utilities for use inside Flatpak sandboxes."
+HOMEPAGE = "http://flatpak.org"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "git://github.com/flatpak/flatpak-xdg-utils.git;protocol=https;branch=main"
+
+SRCREV = "5ba39872f81bf8d98d58c5f8acb86604645be468"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+DEPENDS = "glib-2.0"
diff --git a/meta-oe/recipes-extended/flatpak/flatpak/0001-flatpak-pc-add-pc_sysrootdir.patch b/meta-oe/recipes-extended/flatpak/flatpak/0001-flatpak-pc-add-pc_sysrootdir.patch
new file mode 100644
index 0000000000..08d5625fa7
--- /dev/null
+++ b/meta-oe/recipes-extended/flatpak/flatpak/0001-flatpak-pc-add-pc_sysrootdir.patch
@@ -0,0 +1,28 @@
+From 3a1ab02d821cd4b0af44c0dad87e290ebaabef83 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Wed, 14 Dec 2022 06:50:40 +0100
+Subject: [PATCH] flatpak.pc: add pc_sysrootdir
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+Upstream-Status: Inappropriate [oe-specific]
+
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 4a0b865e..5f69b1d9 100644
+--- a/meson.build
++++ b/meson.build
+@@ -509,7 +509,7 @@ pkgconfig_variables += 'exec_prefix=${prefix}'
+ pkgconfig_variables += 'datadir=' + ('${prefix}' / get_option('datadir'))
+
+ pkgconfig_variables += 'datarootdir=' + ('${prefix}' / get_option('datadir'))
+-pkgconfig_variables += 'interfaces_dir=${datadir}/dbus-1/interfaces/'
++pkgconfig_variables += 'interfaces_dir=${pc_sysrootdir}${datadir}/dbus-1/interfaces/'
+ pkgconfig_variables += 'httpbackend=' + get_option('http_backend')
+
+ pkgconfig.generate(
+--
+2.34.1
+
diff --git a/meta-oe/recipes-extended/flatpak/flatpak/0001-meson.build-require-for-native-wayland-scanner.patch b/meta-oe/recipes-extended/flatpak/flatpak/0001-meson.build-require-for-native-wayland-scanner.patch
new file mode 100644
index 0000000000..b076a3fffd
--- /dev/null
+++ b/meta-oe/recipes-extended/flatpak/flatpak/0001-meson.build-require-for-native-wayland-scanner.patch
@@ -0,0 +1,28 @@
+From ced2e933cf647874da4baff002e0987b9bfe5fac Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Sat, 18 Nov 2023 15:07:49 +0100
+Subject: [PATCH] meson.build: require for native wayland-scanner
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+
+Upstream-Status: Submitted [https://github.com/flatpak/flatpak/pull/5596]
+---
+ meson.build | 4 ++--
+ 1 file changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index f4e5b3a3..5d2f9eba 100644
+--- a/meson.build
++++ b/meson.build
+@@ -207,7 +207,7 @@ gtkdoc_dep = dependency('gtk-doc', required : get_option('gtkdoc'))
+ build_gtk_doc = gtkdoc_dep.found()
+
+ wayland_client = dependency('wayland-client', required : get_option('wayland_security_context'))
+-wayland_scanner = dependency('wayland-scanner', version : '>= 1.15', required : get_option('wayland_security_context'))
++wayland_scanner = dependency('wayland-scanner', version : '>= 1.15', required : get_option('wayland_security_context'), native : true)
+ wayland_protocols = dependency('wayland-protocols', version : '>= 1.32', required : get_option('wayland_security_context'))
+ build_wayland_security_context = wayland_client.found() and wayland_scanner.found() and wayland_protocols.found()
+
+--
+2.42.0
+
diff --git a/meta-oe/recipes-extended/flatpak/flatpak/0001-meson.build-require-native-gtkdoc.patch b/meta-oe/recipes-extended/flatpak/flatpak/0001-meson.build-require-native-gtkdoc.patch
new file mode 100644
index 0000000000..77b60ec98c
--- /dev/null
+++ b/meta-oe/recipes-extended/flatpak/flatpak/0001-meson.build-require-native-gtkdoc.patch
@@ -0,0 +1,33 @@
+From 49737b1e4a74c77a8cd7ae727974d68503da087f Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Fri, 12 Jan 2024 13:52:08 +0100
+Subject: [PATCH] meson.build: require native gtkdoc
+
+this fixes:
+| Run-time dependency gtk-doc found: NO (tried pkgconfig)
+|
+| ../git/meson.build:206:13: ERROR: Dependency "gtk-doc" not found, tried pkgconfig
+
+Upstream-Status: Submitted [https://github.com/flatpak/flatpak/pull/5650/commits/e5de3e46b917f830d7f81e9db6ed2a9b7d7db942]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index f7f9372d..dccc3eb4 100644
+--- a/meson.build
++++ b/meson.build
+@@ -203,7 +203,7 @@ appstream_dep = dependency('appstream', version : '>=0.12.0')
+ gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0')
+ libseccomp_dep = dependency('libseccomp', required : get_option('seccomp'))
+ gir_dep = dependency('gobject-introspection-1.0', version : '>=1.40.0', required : get_option('gir'))
+-gtkdoc_dep = dependency('gtk-doc', required : get_option('gtkdoc'))
++gtkdoc_dep = dependency('gtk-doc', required : get_option('gtkdoc'), native : true)
+ build_gtk_doc = gtkdoc_dep.found()
+
+ wayland_client = dependency('wayland-client', required : get_option('wayland_security_context'))
+--
+2.43.0
+
diff --git a/meta-oe/recipes-extended/flatpak/flatpak_1.15.6.bb b/meta-oe/recipes-extended/flatpak/flatpak_1.15.6.bb
new file mode 100644
index 0000000000..97e57c13d5
--- /dev/null
+++ b/meta-oe/recipes-extended/flatpak/flatpak_1.15.6.bb
@@ -0,0 +1,78 @@
+DESCRIPTION = "Desktop containment framework."
+HOMEPAGE = "http://flatpak.org"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = " \
+ gitsm://github.com/flatpak/flatpak;protocol=https;branch=main \
+ file://0001-flatpak-pc-add-pc_sysrootdir.patch \
+ file://0001-meson.build-require-for-native-wayland-scanner.patch \
+ file://0001-meson.build-require-native-gtkdoc.patch \
+"
+
+SRCREV = "27b11b93c2a80a91c9461bc6c7f5e9a201406041"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig gettext systemd gtk-doc gobject-introspection python3native useradd mime features_check
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+DEPENDS = " \
+ appstream \
+ bison-native \
+ dconf \
+ fuse3 \
+ gdk-pixbuf \
+ glib-2.0 \
+ gpgme \
+ json-glib \
+ libarchive \
+ libcap \
+ libxml2 \
+ ostree \
+ polkit \
+ python3-pyparsing-native \
+ zstd \
+"
+
+RDEPENDS:${PN} = " \
+ ca-certificates \
+ dconf \
+ flatpak-xdg-utils \
+"
+
+GIR_MESON_OPTION = "gir"
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_OPTION = 'gtkdoc'
+GTKDOC_MESON_ENABLE_FLAG = 'enabled'
+GTKDOC_MESON_DISABLE_FLAG = 'disabled'
+
+PACKAGECONFIG[curl] = "-Dhttp_backend=curl,,curl"
+PACKAGECONFIG[docbook_docs] = "-Ddocbook_docs=enabled,-Ddocbook_docs=disabled,xmlto-native"
+PACKAGECONFIG[man] = "-Dman=enabled,-Dman=disabled,libxslt-native"
+PACKAGECONFIG[soup] = "-Dhttp_backend=soup,,libsoup-2.4"
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,xauth socat-native"
+PACKAGECONFIG[xauth] = "-Dxauth=enabled,-Dxauth=disabled,xauth"
+PACKAGECONFIG[seccomp] = "-Dseccomp=enabled,-Dseccomp=disabled,libseccomp"
+PACKAGECONFIG[selinux] = "-Dselinux_module=enabled,-Dselinux_module=disabled,libselinux"
+PACKAGECONFIG[wayland-security-context] = "-Dwayland_security_context=enabled,-Dwayland_security_context=disabled,wayland wayland-native wayland-protocols"
+
+PACKAGECONFIG ?= " \
+ curl \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xauth', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'seccomp', 'seccomp', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland-security-context', '', d)} \
+"
+
+FILES:${PN} += "${libdir} ${datadir}"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd"
+
+do_install:append() {
+ chmod 0700 ${D}/${datadir}/polkit-1/rules.d
+ chown polkitd ${D}/${datadir}/polkit-1/rules.d
+ chgrp root ${D}/${datadir}/polkit-1/rules.d
+}
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0001-CMakeLists.txt-Do-not-use-private-makefile-target.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-CMakeLists.txt-Do-not-use-private-makefile-target.patch
index b4634a2445..f5a1716c07 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0001-CMakeLists.txt-Do-not-use-private-makefile-target.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-CMakeLists.txt-Do-not-use-private-makefile-target.patch
@@ -8,8 +8,7 @@ are not under control or to be used at the CMakeLists level. In 3.20
that private generation changed pre-requisite targets[1] and now logs
contain the path compiler_depend.ts instead of the actual file.
-Upstream status: Pending [1]
-[1] https://github.com/fluent/fluent-bit/issues/5492
+Upstream-Status: Pending [https://github.com/fluent/fluent-bit/issues/5492]
---
CMakeLists.txt | 6 +-----
lib/chunkio/CMakeLists.txt | 7 +------
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0002-chunkio-Link-with-fts-library-with-musl.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-chunkio-Link-with-fts-library-with-musl.patch
index 4ffb20d9ca..bdcc534964 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0002-chunkio-Link-with-fts-library-with-musl.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-chunkio-Link-with-fts-library-with-musl.patch
@@ -8,6 +8,8 @@ cio_utils.c:(.text+0x64): undefined reference to `fts_read'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lib/chunkio/src/CMakeLists.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch
index 4358b2a512..425b838b78 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch
@@ -8,6 +8,8 @@ reproducible and contaminates it with host builder paths. Instead
make it take CMAKE_DEBUG_SRCDIR that can be set to a known
reproducible value
---
+Upstream-Status: Pending
+
include/fluent-bit/flb_info.h.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0002-mbedtls-Remove-unused-variable.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-mbedtls-Remove-unused-variable.patch
index d4451bcaef..d911420df2 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0002-mbedtls-Remove-unused-variable.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-mbedtls-Remove-unused-variable.patch
@@ -8,6 +8,8 @@ library/bignum.c:1395:29: error: variable 't' set but not used [-Werror,-Wunused
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lib/mbedtls-2.28.0/library/bignum.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Disable-documentation-warning-as-error-with-.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Disable-documentation-warning-as-error-with-.patch
index 2d7b4efda7..473ebaf7d4 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Disable-documentation-warning-as-error-with-.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Disable-documentation-warning-as-error-with-.patch
@@ -9,6 +9,8 @@ treat them as errors
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lib/mbedtls-2.28.0/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Do-not-overwrite-CFLAGS.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Do-not-overwrite-CFLAGS.patch
index af31b436db..158857ae20 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Do-not-overwrite-CFLAGS.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Do-not-overwrite-CFLAGS.patch
@@ -7,8 +7,7 @@ bitbake passes CFLAGS that are often in conflict with the ones set
in mbedtls' CMakeLists.txt. Such conflicts are the inability to use
FORTIFY_SOURCE=2 except in release mode
-Upstream status: Innapropriate due to fluent-bit having it's own Release
-flags that also overwrite bitbake ones.
+Upstream-Status: Inappropriate [due to fluent-bit having it's own Release flags that also overwrite bitbake ones.]
---
lib/mbedtls-2.28.0/CMakeLists.txt | 2 --
1 file changed, 2 deletions(-)
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch
index 224b8ccf1b..bd4276193d 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch
@@ -8,6 +8,8 @@ error: incompatible pointer to integer conversion assigning to 'int' from 'struc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
plugins/out_stackdriver/stackdriver_conf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0004-build-Make-systemd-init-systemd-detection-contingent.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0004-build-Make-systemd-init-systemd-detection-contingent.patch
index 9d4d950d15..f6e3dce2f3 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0004-build-Make-systemd-init-systemd-detection-contingent.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0004-build-Make-systemd-init-systemd-detection-contingent.patch
@@ -8,8 +8,7 @@ Use pkg-config to get systemd.pc variables and systemdunitdir. Those
variable ensure that .service files are installed in the correct paths
and only when systemd is detected.
-Upstream Status: Pending [1]
-[1] https://github.com/fluent/fluent-bit/pull/5818
+Upstream-Status: Pending [https://github.com/fluent/fluent-bit/pull/5818]
---
cmake/FindJournald.cmake | 4 ++++
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0005-stackdriver-Fix-return-type-mismatch.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0005-stackdriver-Fix-return-type-mismatch.patch
index cdbbb6b2c1..f023ab5732 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0005-stackdriver-Fix-return-type-mismatch.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0005-stackdriver-Fix-return-type-mismatch.patch
@@ -10,6 +10,8 @@ error: incompatible integer to pointer conversion returning 'int' from a functio
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
plugins/out_stackdriver/stackdriver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0006-monkey-Fix-TLS-detection-testcase.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0006-monkey-Fix-TLS-detection-testcase.patch
index eef1a56ba7..c3f2574d26 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0006-monkey-Fix-TLS-detection-testcase.patch
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0006-monkey-Fix-TLS-detection-testcase.patch
@@ -13,6 +13,8 @@ error: call to undeclared function '__tls_get_addr'; ISO C99 and later do not su
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lib/monkey/CMakeLists.txt | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0007-cmake-Do-not-check-for-upstart-on-build-host.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0007-cmake-Do-not-check-for-upstart-on-build-host.patch
new file mode 100644
index 0000000000..71bdd34eeb
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0007-cmake-Do-not-check-for-upstart-on-build-host.patch
@@ -0,0 +1,46 @@
+From c41653e856d05ed430d22f8b311714ff756a0e0b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 23 Mar 2023 18:05:27 -0700
+Subject: [PATCH] cmake: Do not check for upstart on build host
+
+Some ubuntu distros might have this directory /usr/share/upstart around
+and yocto based distros not using systemd will process this piece of
+code and falsely assume that target supports upstart, which may not be
+true in case of cross-compilation.
+
+This also can end up in configure errors e.g.
+
+| CMake Error at src/CMakeLists.txt:496 (install):
+| install DIRECTORY given unknown argument "/etc/td-agent-bit/".
+|
+|
+| -- Configuring incomplete, errors occurred!
+
+Upstream-Status: Inappropriate [ Cross-compile Specific ]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/CMakeLists.txt | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index bb30b2a..c63b6d8 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -486,14 +486,6 @@ if(FLB_BINARY)
+ )
+ install(FILES ${FLB_SYSTEMD_SCRIPT} COMPONENT binary DESTINATION ${SYSTEMD_UNITDIR})
+ install(DIRECTORY DESTINATION ${FLB_INSTALL_CONFDIR} COMPONENT binary)
+- elseif(IS_DIRECTORY /usr/share/upstart)
+- set(FLB_UPSTART_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.conf")
+- configure_file(
+- "${PROJECT_SOURCE_DIR}/init/upstart.in"
+- ${FLB_UPSTART_SCRIPT}
+- )
+- install(FILES ${FLB_UPSTART_SCRIPT} COMPONENT binary DESTINATION /etc/init)
+- install(DIRECTORY DESTINATION COMPONENT binary ${FLB_INSTALL_CONFDIR})
+ else()
+ # FIXME: should we support Sysv init script ?
+ endif()
+--
+2.40.0
+
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit_1.9.7.bb b/meta-oe/recipes-extended/fluentbit/fluentbit_1.9.7.bb
index 56ba72bf59..fc06095475 100644
--- a/meta-oe/recipes-extended/fluentbit/fluentbit_1.9.7.bb
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit_1.9.7.bb
@@ -11,7 +11,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
SECTION = "net"
-SRC_URI = "https://releases.fluentbit.io/1.9/source-${PV}.tar.gz;subdir=fluent-bit-${PV} \
+SRC_URI = "https://releases.fluentbit.io/1.9/source-${PV}.tar.gz;subdir=fluent-bit-${PV};downloadfilename=${BPN}-${PV}.tar.gz \
file://0001-CMakeLists.txt-Do-not-use-private-makefile-target.patch \
file://0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch \
file://0003-mbedtls-Do-not-overwrite-CFLAGS.patch \
@@ -22,6 +22,7 @@ SRC_URI = "https://releases.fluentbit.io/1.9/source-${PV}.tar.gz;subdir=fluent-b
file://0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch \
file://0005-stackdriver-Fix-return-type-mismatch.patch \
file://0006-monkey-Fix-TLS-detection-testcase.patch \
+ file://0007-cmake-Do-not-check-for-upstart-on-build-host.patch \
"
SRC_URI:remove:x86 = "file://0002-mbedtls-Remove-unused-variable.patch"
SRC_URI:append:libc-musl = "\
@@ -44,7 +45,7 @@ DEPENDS:append:libc-musl = " fts "
# flex hardcodes the input file in #line directives leading to TMPDIR contamination of debug sources.
do_compile:append() {
- find ${B} -name '*.c' -or -name '*.h' | xargs sed -i -e 's|${TMPDIR}|/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/|g'
+ find ${B} -name '*.c' -or -name '*.h' | xargs sed -i -e 's|${TMPDIR}|${TARGET_DBGSRC_DIR}/|g'
}
PACKAGECONFIG ?= "yaml"
@@ -78,6 +79,7 @@ EXTRA_OECMAKE:append:libc-musl = ' -DFLB_JEMALLOC_OPTIONS="--with-jemalloc-prefi
EXTRA_OECMAKE:append:riscv64 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
EXTRA_OECMAKE:append:riscv32 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
EXTRA_OECMAKE:append:mips = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
+EXTRA_OECMAKE:append:powerpc = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
EXTRA_OECMAKE:append:x86 = " -DCMAKE_C_STANDARD_LIBRARIES=-latomic"
CFLAGS:append:x86 = " -DMBEDTLS_HAVE_SSE2"
@@ -86,5 +88,5 @@ inherit cmake systemd pkgconfig
SYSTEMD_SERVICE:${PN} = "td-agent-bit.service"
-EXTRA_OECMAKE += "-DCMAKE_DEBUG_SRCDIR=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/"
+EXTRA_OECMAKE += "-DCMAKE_DEBUG_SRCDIR=${TARGET_DBGSRC_DIR}/"
TARGET_CC_ARCH += " ${SELECTED_OPTIMIZATION}"
diff --git a/meta-oe/recipes-extended/gnuplot/gnuplot/0003-Use-native-tools-to-build-docs.patch b/meta-oe/recipes-extended/gnuplot/gnuplot/0003-Use-native-tools-to-build-docs.patch
index c2d2f7f3f0..7a7e550349 100644
--- a/meta-oe/recipes-extended/gnuplot/gnuplot/0003-Use-native-tools-to-build-docs.patch
+++ b/meta-oe/recipes-extended/gnuplot/gnuplot/0003-Use-native-tools-to-build-docs.patch
@@ -14,6 +14,8 @@ Content-Transfer-Encoding: 8bit
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
+Upstream-Status: Pending
+
docs/Makefile.am | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/meta-oe/recipes-extended/haveged/haveged_1.9.18.bb b/meta-oe/recipes-extended/haveged/haveged_1.9.18.bb
index 069fdf7bc2..97c354aba8 100644
--- a/meta-oe/recipes-extended/haveged/haveged_1.9.18.bb
+++ b/meta-oe/recipes-extended/haveged/haveged_1.9.18.bb
@@ -1,7 +1,6 @@
SUMMARY = "haveged - A simple entropy daemon"
DESCRIPTION = "The haveged project is an attempt to provide an easy-to-use, unpredictable random number generator based upon an adaptation of the HAVEGE algorithm. Haveged was created to remedy low-entropy conditions in the Linux random device that can occur under some workloads, especially on headless servers."
-AUTHOR = "Gary Wuertz"
HOMEPAGE = "https://www.issihosts.com/haveged/index.html"
LICENSE = "GPL-3.0-only"
diff --git a/meta-oe/recipes-extended/highway/highway_1.1.0.bb b/meta-oe/recipes-extended/highway/highway_1.1.0.bb
new file mode 100644
index 0000000000..11d9e7cddf
--- /dev/null
+++ b/meta-oe/recipes-extended/highway/highway_1.1.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Highway is a C++ library for SIMD (Single Instruction, Multiple Data)"
+HOMEPAGE = "https://github.com/google/highway/"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2b42edef8fa55315f34f2370b4715ca9"
+
+inherit cmake
+
+SRC_URI = "git://github.com/google/highway.git;protocol=https;branch=master"
+
+SRCREV = "58b52a717469e62b2d9b8eaa2f5dddb44d4a4cbf"
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = "-DBUILD_TESTING=0 -DCMAKE_BUILD_TYPE=Release"
+CXXFLAGS:append:arm = " -mfp16-format=ieee"
+# Option not supported with clang and its default format for __fp16 anyway with clang
+CXXFLAGS:remove:toolchain-clang = "-mfp16-format=ieee"
diff --git a/meta-oe/recipes-extended/hiredis/hiredis/run-ptest b/meta-oe/recipes-extended/hiredis/hiredis/run-ptest
new file mode 100644
index 0000000000..59b747dbd8
--- /dev/null
+++ b/meta-oe/recipes-extended/hiredis/hiredis/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+TEST_SSL=0 TEST_ASYNC=0 ./test.sh
diff --git a/meta-oe/recipes-extended/hiredis/hiredis_1.0.2.bb b/meta-oe/recipes-extended/hiredis/hiredis_1.0.2.bb
deleted file mode 100644
index 2ff4946883..0000000000
--- a/meta-oe/recipes-extended/hiredis/hiredis_1.0.2.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "Minimalistic C client library for Redis"
-HOMEPAGE = "http://github.com/redis/hiredis"
-SECTION = "libs"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d84d659a35c666d23233e54503aaea51"
-DEPENDS = "redis"
-
-SRC_URI = "git://github.com/redis/hiredis;protocol=https;branch=master"
-SRCREV = "b731283245f3183af527237166261ad0768ba7d4"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
diff --git a/meta-oe/recipes-extended/hiredis/hiredis_1.2.0.bb b/meta-oe/recipes-extended/hiredis/hiredis_1.2.0.bb
new file mode 100644
index 0000000000..d081242736
--- /dev/null
+++ b/meta-oe/recipes-extended/hiredis/hiredis_1.2.0.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "Minimalistic C client library for Redis"
+HOMEPAGE = "http://github.com/redis/hiredis"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d84d659a35c666d23233e54503aaea51"
+
+SRC_URI = " \
+ git://github.com/redis/hiredis;protocol=https;branch=master \
+ file://run-ptest \
+ "
+SRCREV = "60e5075d4ac77424809f855ba3e398df7aacefe8"
+
+S = "${WORKDIR}/git"
+
+inherit cmake ptest
+
+# 'testssl' is not enabled by default as redis recipe does not build with ssl support
+# option 'testssl' requires 'ssl'
+PACKAGECONFIG ??= "ssl ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'test testasync', '', d)}"
+PACKAGECONFIG[ssl] = "-DENABLE_SSL=ON, -DENABLE_SSL=OFF, openssl"
+PACKAGECONFIG[test] = "-DDISABLE_TESTS=OFF, -DDISABLE_TESTS=ON"
+PACKAGECONFIG[testssl] = "-DENABLE_SSL_TESTS=ON, -DENABLE_SSL_TESTS=OFF, openssl"
+PACKAGECONFIG[testasync] = "-DENABLE_ASYNC_TESTS=ON, -DENABLE_ASYNC_TESTS=OFF, libevent"
+
+do_install_ptest() {
+ install ${S}/test.sh ${D}${PTEST_PATH}/
+ install ${B}/hiredis-test ${D}${PTEST_PATH}/
+ if ${@bb.utils.contains('PACKAGECONFIG','testssl','true','false',d)}; then
+ sed -i 's/TEST_SSL=0/TEST_SSL=1/g' ${D}${PTEST_PATH}/run-ptest
+ fi
+ if ${@bb.utils.contains('PACKAGECONFIG','testasync','true','false',d)}; then
+ sed -i 's/TEST_ASYNC=0/TEST_ASYNC=1/g' ${D}${PTEST_PATH}/run-ptest
+ fi
+}
+
+FILES:${PN}-dev += "${datadir}/hiredis_ssl ${prefix}/build"
+
+RDEPENDS:${PN} = "redis"
+RDEPENDS:${PN}-ptest = "${@bb.utils.contains('PACKAGECONFIG', 'testssl', 'openssl-bin', '', d)}"
diff --git a/meta-oe/recipes-extended/hplip/hplip/0001-Drop-using-register-storage-classifier.patch b/meta-oe/recipes-extended/hplip/hplip/0001-Drop-using-register-storage-classifier.patch
new file mode 100644
index 0000000000..237374d74b
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/0001-Drop-using-register-storage-classifier.patch
@@ -0,0 +1,309 @@
+From c36f0af7ba75c133edc46f052b291188351b6c20 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 18 Jan 2023 15:49:16 -0800
+Subject: [PATCH] Drop using register storage classifier
+
+Its beeing dropped from latest standards beginning C++17
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ip/xjpg_dct.c | 4 +--
+ ip/xjpg_dct.h | 4 +--
+ prnt/hpcups/Mode9.cpp | 2 +-
+ prnt/hpcups/ModeDeltaPlus.cpp | 4 +--
+ prnt/hpcups/jccolor.c | 46 +++++++++++++++++------------------
+ prnt/hpijs/compression.cpp | 2 +-
+ prnt/hpijs/jccolor.c | 44 ++++++++++++++++-----------------
+ prnt/hpijs/ljfastraster.cpp | 4 +--
+ prnt/hpps/psutil.c | 6 ++---
+ 9 files changed, 58 insertions(+), 58 deletions(-)
+
+diff --git a/ip/xjpg_dct.c b/ip/xjpg_dct.c
+index 63f021b..1986923 100644
+--- a/ip/xjpg_dct.c
++++ b/ip/xjpg_dct.c
+@@ -103,7 +103,7 @@
+ | for the Winograd DCT. |
+ |____________________________________________________________________________|
+ */
+-void dct_forward (register int *block_p)
++void dct_forward (int *block_p)
+ {
+ #define CONST_FRAC_BITS 14 /* bits of frac in CONST_1-CONST_5 below */
+
+@@ -257,7 +257,7 @@ void dct_forward (register int *block_p)
+ | and level-shifting, you must clamp these values to 0..255. |
+ |____________________________________________________________________________|
+ */
+-void dct_inverse (register int *block_p)
++void dct_inverse (int *block_p)
+ {
+ #define CONST_FRAC_BITS 13 /* bits of frac in CONST_1-CONST_5 below */
+
+diff --git a/ip/xjpg_dct.h b/ip/xjpg_dct.h
+index 7dc90f3..149d66f 100644
+--- a/ip/xjpg_dct.h
++++ b/ip/xjpg_dct.h
+@@ -43,8 +43,8 @@
+ |____________________________________________________________________________|
+ */
+
+-void dct_forward (register int *block_p);
++void dct_forward (int *block_p);
+
+-void dct_inverse (register int *block_p);
++void dct_inverse (int *block_p);
+
+ /* End of File */
+diff --git a/prnt/hpcups/Mode9.cpp b/prnt/hpcups/Mode9.cpp
+index 94ff571..6cc210a 100644
+--- a/prnt/hpcups/Mode9.cpp
++++ b/prnt/hpcups/Mode9.cpp
+@@ -203,7 +203,7 @@ bool Mode9::Process(RASTERDATA* input)
+ unsigned int offset,byte_count,rem_count;
+ Mode9_comtype command;
+ char* dest= (char*) compressBuf;
+- register char *dptr=dest;
++ char *dptr=dest;
+
+ while ( size > 0 )
+ {
+diff --git a/prnt/hpcups/ModeDeltaPlus.cpp b/prnt/hpcups/ModeDeltaPlus.cpp
+index 4552f4a..6a5837f 100644
+--- a/prnt/hpcups/ModeDeltaPlus.cpp
++++ b/prnt/hpcups/ModeDeltaPlus.cpp
+@@ -241,8 +241,8 @@ bool ModeDeltaPlus::compress (BYTE *outmem,
+ const uint32_t inheight,
+ uint32_t horz_ht_dist)
+ {
+- register BYTE *outptr = outmem;
+- register uint32_t col;
++ BYTE *outptr = outmem;
++ uint32_t col;
+ const BYTE *seedrow;
+ uint32_t seedrow_count = 0;
+ uint32_t location = 0;
+diff --git a/prnt/hpcups/jccolor.c b/prnt/hpcups/jccolor.c
+index 7cc8906..6794575 100644
+--- a/prnt/hpcups/jccolor.c
++++ b/prnt/hpcups/jccolor.c
+@@ -73,7 +73,7 @@ typedef my_color_converter * my_cconvert_ptr;
+
+ /* We allocate one big table and divide it up into eight parts, instead of
+ * doing eight alloc_small requests. This lets us use a single table base
+- * address, which can be held in a register in the inner loops on many
++ * address, which can be held in a in the inner loops on many
+ * machines (more than can hold all eight addresses, anyway).
+ */
+
+@@ -205,11 +205,11 @@ rgb_ycc_convert (j_compress_ptr cinfo,
+ JDIMENSION output_row, int num_rows)
+ {
+ my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert;
+- register int r, g, b;
+- register INT32 * ctab = cconvert->rgb_ycc_tab;
+- register JSAMPROW inptr;
+- register JSAMPROW outptr0, outptr1, outptr2;
+- register JDIMENSION col;
++ int r, g, b;
++ INT32 * ctab = cconvert->rgb_ycc_tab;
++ JSAMPROW inptr;
++ JSAMPROW outptr0, outptr1, outptr2;
++ JDIMENSION col;
+ JDIMENSION num_cols = cinfo->image_width;
+
+ while (--num_rows >= 0) {
+@@ -261,11 +261,11 @@ rgb_gray_convert (j_compress_ptr cinfo,
+ JDIMENSION output_row, int num_rows)
+ {
+ my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert;
+- register int r, g, b;
+- register INT32 * ctab = cconvert->rgb_ycc_tab;
+- register JSAMPROW inptr;
+- register JSAMPROW outptr;
+- register JDIMENSION col;
++ int r, g, b;
++ INT32 * ctab = cconvert->rgb_ycc_tab;
++ JSAMPROW inptr;
++ JSAMPROW outptr;
++ JDIMENSION col;
+ JDIMENSION num_cols = cinfo->image_width;
+
+ while (--num_rows >= 0) {
+@@ -300,11 +300,11 @@ cmyk_ycck_convert (j_compress_ptr cinfo,
+ JDIMENSION output_row, int num_rows)
+ {
+ my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert;
+- register int r, g, b;
+- register INT32 * ctab = cconvert->rgb_ycc_tab;
+- register JSAMPROW inptr;
+- register JSAMPROW outptr0, outptr1, outptr2, outptr3;
+- register JDIMENSION col;
++ int r, g, b;
++ INT32 * ctab = cconvert->rgb_ycc_tab;
++ JSAMPROW inptr;
++ JSAMPROW outptr0, outptr1, outptr2, outptr3;
++ JDIMENSION col;
+ JDIMENSION num_cols = cinfo->image_width;
+
+ while (--num_rows >= 0) {
+@@ -354,9 +354,9 @@ grayscale_convert (j_compress_ptr cinfo,
+ JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
+ JDIMENSION output_row, int num_rows)
+ {
+- register JSAMPROW inptr;
+- register JSAMPROW outptr;
+- register JDIMENSION col;
++ JSAMPROW inptr;
++ JSAMPROW outptr;
++ JDIMENSION col;
+ JDIMENSION num_cols = cinfo->image_width;
+ int instride = cinfo->input_components;
+
+@@ -383,10 +383,10 @@ null_convert (j_compress_ptr cinfo,
+ JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
+ JDIMENSION output_row, int num_rows)
+ {
+- register JSAMPROW inptr;
+- register JSAMPROW outptr;
+- register JDIMENSION col;
+- register int ci;
++ JSAMPROW inptr;
++ JSAMPROW outptr;
++ JDIMENSION col;
++ int ci;
+ int nc = cinfo->num_components;
+ JDIMENSION num_cols = cinfo->image_width;
+
+diff --git a/prnt/hpijs/compression.cpp b/prnt/hpijs/compression.cpp
+index fcac793..10194ca 100644
+--- a/prnt/hpijs/compression.cpp
++++ b/prnt/hpijs/compression.cpp
+@@ -266,7 +266,7 @@ BOOL Mode9::Process(RASTERDATA* input)
+ unsigned int offset,byte_count,rem_count;
+ Mode9_comtype command;
+ char* dest= (char*) compressBuf;
+- register char *dptr=dest;
++ char *dptr=dest;
+
+ while ( size > 0 )
+ {
+diff --git a/prnt/hpijs/jccolor.c b/prnt/hpijs/jccolor.c
+index a6b2333..8486b65 100644
+--- a/prnt/hpijs/jccolor.c
++++ b/prnt/hpijs/jccolor.c
+@@ -206,11 +206,11 @@ rgb_ycc_convert (j_compress_ptr cinfo,
+ JDIMENSION output_row, int num_rows)
+ {
+ my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert;
+- register int r, g, b;
+- register INT32 * ctab = cconvert->rgb_ycc_tab;
+- register JSAMPROW inptr;
+- register JSAMPROW outptr0, outptr1, outptr2;
+- register JDIMENSION col;
++ int r, g, b;
++ INT32 * ctab = cconvert->rgb_ycc_tab;
++ JSAMPROW inptr;
++ JSAMPROW outptr0, outptr1, outptr2;
++ JDIMENSION col;
+ JDIMENSION num_cols = cinfo->image_width;
+
+ while (--num_rows >= 0) {
+@@ -262,11 +262,11 @@ rgb_gray_convert (j_compress_ptr cinfo,
+ JDIMENSION output_row, int num_rows)
+ {
+ my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert;
+- register int r, g, b;
+- register INT32 * ctab = cconvert->rgb_ycc_tab;
+- register JSAMPROW inptr;
+- register JSAMPROW outptr;
+- register JDIMENSION col;
++ int r, g, b;
++ INT32 * ctab = cconvert->rgb_ycc_tab;
++ JSAMPROW inptr;
++ JSAMPROW outptr;
++ JDIMENSION col;
+ JDIMENSION num_cols = cinfo->image_width;
+
+ while (--num_rows >= 0) {
+@@ -301,11 +301,11 @@ cmyk_ycck_convert (j_compress_ptr cinfo,
+ JDIMENSION output_row, int num_rows)
+ {
+ my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert;
+- register int r, g, b;
+- register INT32 * ctab = cconvert->rgb_ycc_tab;
+- register JSAMPROW inptr;
+- register JSAMPROW outptr0, outptr1, outptr2, outptr3;
+- register JDIMENSION col;
++ int r, g, b;
++ INT32 * ctab = cconvert->rgb_ycc_tab;
++ JSAMPROW inptr;
++ JSAMPROW outptr0, outptr1, outptr2, outptr3;
++ JDIMENSION col;
+ JDIMENSION num_cols = cinfo->image_width;
+
+ while (--num_rows >= 0) {
+@@ -355,9 +355,9 @@ grayscale_convert (j_compress_ptr cinfo,
+ JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
+ JDIMENSION output_row, int num_rows)
+ {
+- register JSAMPROW inptr;
+- register JSAMPROW outptr;
+- register JDIMENSION col;
++ JSAMPROW inptr;
++ JSAMPROW outptr;
++ JDIMENSION col;
+ JDIMENSION num_cols = cinfo->image_width;
+ int instride = cinfo->input_components;
+
+@@ -384,10 +384,10 @@ null_convert (j_compress_ptr cinfo,
+ JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
+ JDIMENSION output_row, int num_rows)
+ {
+- register JSAMPROW inptr;
+- register JSAMPROW outptr;
+- register JDIMENSION col;
+- register int ci;
++ JSAMPROW inptr;
++ JSAMPROW outptr;
++ JDIMENSION col;
++ int ci;
+ int nc = cinfo->num_components;
+ JDIMENSION num_cols = cinfo->image_width;
+
+diff --git a/prnt/hpijs/ljfastraster.cpp b/prnt/hpijs/ljfastraster.cpp
+index 8c7073a..7e82fac 100644
+--- a/prnt/hpijs/ljfastraster.cpp
++++ b/prnt/hpijs/ljfastraster.cpp
+@@ -919,8 +919,8 @@ BOOL ModeDeltaPlus::Compress (HPUInt8 *outmem,
+ const uint32_t inheight,
+ uint32_t horz_ht_dist)
+ {
+- register HPUInt8 *outptr = outmem;
+- register uint32_t col;
++ HPUInt8 *outptr = outmem;
++ uint32_t col;
+ const HPUInt8 *seedrow;
+ uint32_t seedrow_count = 0;
+ uint32_t location = 0;
+diff --git a/prnt/hpps/psutil.c b/prnt/hpps/psutil.c
+index 7282dc2..87fba4f 100644
+--- a/prnt/hpps/psutil.c
++++ b/prnt/hpps/psutil.c
+@@ -148,9 +148,9 @@ static int fcopy(long upto)
+ /* build array of pointers to start/end of pages */
+ void scanpages(void)
+ {
+- register char *comment = buffer+2;
+- register int nesting = 0;
+- register long int record;
++ char *comment = buffer+2;
++ int nesting = 0;
++ long int record;
+
+ if ((pageptr = (long *)malloc(sizeof(long)*maxpages)) == NULL)
+ message(FATAL, "out of memory\n");
+--
+2.39.1
+
diff --git a/meta-oe/recipes-extended/hplip/hplip/0001-Fix-installing-ipp-usb-quirk.patch b/meta-oe/recipes-extended/hplip/hplip/0001-Fix-installing-ipp-usb-quirk.patch
new file mode 100644
index 0000000000..d45db1b2e3
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/0001-Fix-installing-ipp-usb-quirk.patch
@@ -0,0 +1,40 @@
+From 5cfe30829174a18ec64e53c84292a0229ffa5602 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?=
+ <zboszor@gmail.com>
+Date: Thu, 30 Mar 2023 11:31:27 +0200
+Subject: [PATCH] Fix installing ipp-usb quirk
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Use $(DESTDIR) as installation prefix for
+/usr/share/usb-ipp/quirk/HPLIP.conf.
+
+Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
+---
+Upstream-Status: Pending
+
+ Makefile.am | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index e10364d..f520225 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -703,10 +703,9 @@ if !DISBALE_IMAGEPROCESSOR_BUILD
+ ln -sf $(libdir)/libImageProcessor-x86_32.so $(libdir)/libImageProcessor.so ; \
+ fi
+ endif #DISABLE_IMAGEPROCESSOR
+- if [ -d "/usr/share/ipp-usb/quirks/" ]; then \
+- echo "ipp-usb directory exists"; \
+- cp prnt/ipp-usb/HPLIP.conf /usr/share/ipp-usb/quirks/ ; \
+- fi
++ install -d -m0755 $(DESTDIR)/usr/share/ipp-usb/quirks ; \
++ echo "ipp-usb directory exists"; \
++ cp prnt/ipp-usb/HPLIP.conf $(DESTDIR)/usr/share/ipp-usb/quirks/
+ if !HPLIP_CLASS_DRIVER
+ # If scanner build, add hpaio entry to sane dll.conf.
+ if [ "$(scan_build)" = "yes" ]; then \
+--
+2.39.2
+
diff --git a/meta-oe/recipes-extended/hplip/hplip/0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch b/meta-oe/recipes-extended/hplip/hplip/0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch
index 2cfe1255e9..fa973a8d85 100644
--- a/meta-oe/recipes-extended/hplip/hplip/0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch
@@ -7,8 +7,8 @@ Subject: [PATCH 2/4] Add ImageProcessor only when DISBALE_IMAGEPROCESSOR_BUILD
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- Makefile.am | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
+ Makefile.am | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index 5f75759..73421b1 100644
@@ -27,6 +27,22 @@ index 5f75759..73421b1 100644
#else
#hpcupsdir = $(cupsfilterdir)
#hpcups_PROGRAMS = hpcups
+@@ -687,6 +692,7 @@
+
+ install-data-hook:
+ if HPLIP_BUILD
++if !DISBALE_IMAGEPROCESSOR_BUILD
+ if [ \( "$(UNAME)" = "x86_64" -a -d "$(libdir)/" \) ]; then \
+ cp prnt/hpcups/libImageProcessor-x86_64.so $(libdir)/ ; \
+ chmod 775 $(libdir)/libImageProcessor-x86_64.so ; \
+@@ -697,6 +703,7 @@
+ chmod 775 $(libdir)/libImageProcessor-x86_32.so ; \
+ ln -sf $(libdir)/libImageProcessor-x86_32.so $(libdir)/libImageProcessor.so ; \
+ fi
++endif #DISABLE_IMAGEPROCESSOR
+ if [ -d "/usr/share/ipp-usb/quirks/" ]; then \
+ echo "ipp-usb directory exists"; \
+ cp prnt/ipp-usb/HPLIP.conf /usr/share/ipp-usb/quirks/ ; \
--
2.37.3
diff --git a/meta-oe/recipes-extended/hplip/hplip/0003-pserror.c-Define-column-to-be-int-explcitly.patch b/meta-oe/recipes-extended/hplip/hplip/0003-pserror.c-Define-column-to-be-int-explcitly.patch
index 78325ac8d6..bf93c222ea 100644
--- a/meta-oe/recipes-extended/hplip/hplip/0003-pserror.c-Define-column-to-be-int-explcitly.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/0003-pserror.c-Define-column-to-be-int-explcitly.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 3/4] pserror.c: Define column to be int explcitly
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
prnt/hpps/pserror.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/hplip/hplip/0004-Define-missing-prototype-for-functions.patch b/meta-oe/recipes-extended/hplip/hplip/0004-Define-missing-prototype-for-functions.patch
index 276d025785..7223bf939e 100644
--- a/meta-oe/recipes-extended/hplip/hplip/0004-Define-missing-prototype-for-functions.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/0004-Define-missing-prototype-for-functions.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 4/4] Define missing prototype for functions
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
prnt/cupsext/cupsext.c | 1 +
protocol/hp_ipp.c | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-extended/hplip/hplip/0005-hp_ipp.c-Add-printf-format-to-snprintf-calls.patch b/meta-oe/recipes-extended/hplip/hplip/0005-hp_ipp.c-Add-printf-format-to-snprintf-calls.patch
index d844e49ad3..ac0ff81e6f 100644
--- a/meta-oe/recipes-extended/hplip/hplip/0005-hp_ipp.c-Add-printf-format-to-snprintf-calls.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/0005-hp_ipp.c-Add-printf-format-to-snprintf-calls.patch
@@ -7,6 +7,8 @@ Avoid -Wformat warnings
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
protocol/hp_ipp.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/meta-oe/recipes-extended/hplip/hplip/0006-Workaround-patch-for-missing-Python3-transition-of-t.patch b/meta-oe/recipes-extended/hplip/hplip/0006-Workaround-patch-for-missing-Python3-transition-of-t.patch
index 5d78bb3bbb..194deb8b81 100644
--- a/meta-oe/recipes-extended/hplip/hplip/0006-Workaround-patch-for-missing-Python3-transition-of-t.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/0006-Workaround-patch-for-missing-Python3-transition-of-t.patch
@@ -9,6 +9,8 @@ Subject: Workaround patch for missing Python3 transition of the old
proper solution in the next upstream release of HPLIP (see LP: #1275353)
---
+Upstream-Status: Pending
+
pcard/pcardext/pcardext.c | 59 +++++++++++++++++++++++++++++++++++++----------
pcard/photocard.py | 2 +-
unload.py | 5 ++++
diff --git a/meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch b/meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch
index 2babb2b67a..e8ca8b2d6c 100644
--- a/meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
https://bugs.launchpad.net/hplip/+bug/1672256
memcpy should never be used with overlapping memory regions
diff --git a/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch b/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch
index e020bd4642..93fdcf4bfd 100644
--- a/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff --git a/scan/sane/OrbliteScan/LinuxCommon.h b/scan/sane/OrbliteScan/LinuxCommon.h
index 6605dd9..55c7110 100644
--- a/scan/sane/OrbliteScan/LinuxCommon.h
diff --git a/meta-oe/recipes-extended/hplip/hplip/600-fix.patch b/meta-oe/recipes-extended/hplip/hplip/600-fix.patch
index 91a5035ae9..cddc5e0065 100644
--- a/meta-oe/recipes-extended/hplip/hplip/600-fix.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/600-fix.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/configure.in
+++ b/configure.in
@@ -254,7 +254,6 @@ if test "$class_driver" = "yes"; then
diff --git a/meta-oe/recipes-extended/hplip/hplip/configure.patch b/meta-oe/recipes-extended/hplip/hplip/configure.patch
index 571d5fe308..0e0fd47fa1 100644
--- a/meta-oe/recipes-extended/hplip/hplip/configure.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/configure.patch
@@ -1,7 +1,9 @@
+Upstream-Status: Pending
+
--- a/configure.in
+++ b/configure.in
@@ -30,7 +30,7 @@
- AC_INIT([HP Linux Imaging and Printing], [3.22.6], [3.22.6], [hplip])
+ AC_INIT([HP Linux Imaging and Printing], [3.22.10], [3.22.10], [hplip])
#AM_INIT_AUTOMAKE([1.9 foreign])
-AM_INIT_AUTOMAKE
diff --git a/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch b/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch
index 6aa1de0a8a..f2cd2be60d 100644
--- a/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch
@@ -1,33 +1,69 @@
-Upstream-Status: Inappropriate [configuration]
+Don't hardcode paths to libusb, instead use pkg-config.
---- a/configure.in
-+++ b/configure.in
-@@ -599,6 +599,8 @@ if test "$class_driver" = "no" && test "
- AC_CHECK_HEADERS(usb.h, ,[AC_MSG_ERROR([cannot find libusb-devel support], 11)])
- else
- AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb 1.0 support], 2)])
-+ LIBUSBINCLUDEROOT?="/usr/include/"
-+ AC_ARG_VAR(LIBUSBINCLUDEROOT, [path to libusb-1.0 folder])
- AC_CHECK_HEADERS(libusb-1.0/libusb.h, ,[AC_MSG_ERROR([cannot find libusb-1.0-devel support], 11)])
- fi
- fi
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/Makefile.am b/Makefile.am
+index b77327f..29e838a 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -109,7 +109,7 @@ libhpmud_la_SOURCES += io/hpmud/musb_lib
- libhpmud_la_LDFLAGS += -lusb
+@@ -107,12 +107,11 @@ libhpmud_la_SOURCES = io/hpmud/hpmud.c io/hpmud/mlc.c io/hpmud/model.c io/hpmud/
+
+ if LIBUSB01_BUILD
+ libhpmud_la_SOURCES += io/hpmud/musb_libusb01.c
+-libhpmud_la_LDFLAGS += -lusb
else
libhpmud_la_SOURCES += io/hpmud/musb.c
-libhpmud_la_CFLAGS += -I/usr/include/libusb-1.0
-+libhpmud_la_CFLAGS += -I$(LIBUSBINCLUDEROOT)/libusb-1.0
- libhpmud_la_LDFLAGS += -lusb-1.0
+-libhpmud_la_LDFLAGS += -lusb-1.0
endif
++libhpmud_la_CFLAGS += $(USB_CFLAGS)
++libhpmud_la_LDFLAGS += $(USB_LIBS)
+
+
+ if NETWORK_BUILD
+@@ -356,7 +355,7 @@ hpmudextdir = $(pyexecdir)
+ hpmudext_LTLIBRARIES = hpmudext.la
+ hpmudext_la_LDFLAGS = -module -avoid-version
+ hpmudext_la_SOURCES = io/mudext/hpmudext.c
+-hpmudext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
++hpmudext_la_CFLAGS = -I$(PYTHONINCLUDEDIR) $(USB_CFLAGS)
+ hpmudext_la_LIBADD = libhpmud.la
-@@ -362,7 +362,7 @@ hpmudext_la_CFLAGS += -Iprotocol/discove
+ if NETWORK_BUILD
+@@ -364,9 +363,6 @@ hpmudext_la_LIBADD += libhpdiscovery.la
+ hpmudext_la_CFLAGS += -Iprotocol/discovery
endif
- if !LIBUSB01_BUILD
+-if !LIBUSB01_BUILD
-hpmudext_la_CFLAGS +=-I/usr/include/libusb-1.0
-+hpmudext_la_CFLAGS +=-I$(LIBUSBINCLUDEROOT)/libusb-1.0
- endif
+-endif
endif #!HPLIP_CLASS_DRIVER
# ui (qt3)
+ if GUI_BUILD
+diff --git a/configure.in b/configure.in
+index b1c690c..4a65c97 100644
+--- a/configure.in
++++ b/configure.in
+@@ -36,6 +36,7 @@ AC_PROG_CXX
+ AC_PROG_CC
+ AC_PROG_INSTALL
+ AC_PROG_LIBTOOL
++PKG_PROG_PKG_CONFIG
+
+ # Checks for required libraries, don't set global -lpthread, -lm, -ljpeg, ... here, set in Makefile.
+ AC_CHECK_LIB([pthread], [pthread_create], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libpthread support], 7)])
+@@ -620,11 +621,9 @@ if test "$class_driver" = "no" && test "$hpijs_only_build" = "no" && test "$hpcu
+ AC_CHECK_LIB([cups], [cupsDoFileRequest], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libcups support], 9)])
+ AC_CHECK_HEADERS(cups/cups.h, ,[AC_MSG_ERROR([cannot find cups-devel support], 3)])
+ if test "$libusb01_build" = "yes"; then
+- AC_CHECK_LIB([usb], [usb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb support], 2)])
+- AC_CHECK_HEADERS(usb.h, ,[AC_MSG_ERROR([cannot find libusb-devel support], 11)])
++ PKG_CHECK_MODULES([USB], [libusb])
+ else
+- AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb 1.0 support], 2)])
+- AC_CHECK_HEADERS(libusb-1.0/libusb.h, ,[AC_MSG_ERROR([cannot find libusb-1.0-devel support], 11)])
++ PKG_CHECK_MODULES([USB], [libusb-1.0])
+ fi
+ fi
+
diff --git a/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch b/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch
index 67546b07dc..45b25c5e76 100644
--- a/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch
+++ b/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch
@@ -4,6 +4,8 @@ Date: Wed, 14 Aug 2019 15:47:38 -0700
Subject: [PATCH] Fixing invalid return in void function
---
+Upstream-Status: Pending
+
prnt/hpps/hppsfilter.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb b/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb
new file mode 100644
index 0000000000..be420b4837
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb
@@ -0,0 +1,89 @@
+SUMMARY = "HP Linux Imaging and Printing"
+LICENSE="GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=20f2c819499cc2063e9a7b07b408815c"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
+ file://configure.patch \
+ file://fix-libusb-paths.patch \
+ file://600-fix.patch \
+ file://030-replace_unsafe_memcpy_with_memmove.patch \
+ file://050-fix-glibcisms.patch \
+ file://hplip-3.19.6-fix-return.patch \
+ file://0001-common-utils-Include-string.h-for-strcasestr.patch \
+ file://0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch \
+ file://0003-pserror.c-Define-column-to-be-int-explcitly.patch \
+ file://0004-Define-missing-prototype-for-functions.patch \
+ file://0005-hp_ipp.c-Add-printf-format-to-snprintf-calls.patch \
+ file://0006-Workaround-patch-for-missing-Python3-transition-of-t.patch \
+ file://0001-Fix-installing-ipp-usb-quirk.patch \
+ file://0001-Drop-using-register-storage-classifier.patch"
+SRC_URI[sha256sum] = "533c3f2f6b53e4163ded4fd81d1f11ae6162a0f6451bd5e62a8382d0c1366624"
+
+DEPENDS += "cups python3 libusb1 python3-setuptools-native"
+
+inherit autotools-brokensep python3-dir python3native python3targetconfig pkgconfig systemd
+
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+CFLAGS += "-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}"
+
+EXTRA_OECONF += "\
+ --enable-cups-drv-install \
+ --enable-cups-ppd-install \
+ --disable-network-build \
+ --disable-doc-build \
+ --disable-pp-build \
+ --disable-scan-build \
+ --disable-gui-build \
+ --disable-fax-build \
+ --disable-policykit \
+ --disable-qt4 \
+ --disable-qt3 \
+ --disable-dbus-build \
+ --enable-foomatic-drv-install \
+ --disable-foomatic-ppd-install \
+ --disable-foomatic-rip-hplip-install \
+ --disable-imageProcessor_build \
+ --with-cupsbackenddir=${libexecdir}/cups/backend \
+ --with-cupsfilterdir=${libexecdir}/cups/filter \
+"
+
+EXTRA_OEMAKE = "rulessystemdir=${systemd_unitdir}/system/"
+
+do_install:append() {
+ rm -rf ${D}${datadir}/hplip/upgrade.py
+ rm -rf ${D}${datadir}/hplip/uninstall.py
+ sed -i -e "s|/usr/bin/env python|/usr/bin/env python3|g" ${D}${datadir}/hplip/*.py
+ sed -i -e "s|/usr/bin/python|/usr/bin/env python3|g" ${D}${datadir}/hplip/*.py
+}
+
+PACKAGE_BEFORE_PN += "${PN}-ppd ${PN}-cups ${PN}-backend ${PN}-filter ${PN}-hal"
+
+RDEPENDS:${PN} += " \
+ python3\
+ python3-syslog \
+ python3-pprint \
+ python3-compression \
+ python3-shell \
+ python3-xml \
+ python3-unixadmin \
+ python3-html \
+ python3-resource \
+ python3-terminal \
+"
+RDEPENDS:${PN}-filter += "perl ghostscript"
+
+FILES:${PN} += "${datadir}/ipp-usb/quirks/HPLIP.conf"
+FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
+FILES:${PN}-ppd = "${datadir}/ppd"
+FILES:${PN}-cups = "${datadir}/cups"
+FILES:${PN}-backend = "${libexecdir}/cups/backend"
+FILES:${PN}-filter = "${libexecdir}/cups/filter"
+FILES:${PN}-hal = "${datadir}/hal"
+
+FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/*.so"
+
+SYSTEMD_SERVICE:${PN} = "hplip-printer@.service"
+
+CLEANBROKEN = "1"
diff --git a/meta-oe/recipes-extended/hplip/hplip_3.22.6.bb b/meta-oe/recipes-extended/hplip/hplip_3.22.6.bb
deleted file mode 100644
index b746006c20..0000000000
--- a/meta-oe/recipes-extended/hplip/hplip_3.22.6.bb
+++ /dev/null
@@ -1,94 +0,0 @@
-SUMMARY = "HP Linux Imaging and Printing"
-LICENSE="GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=20f2c819499cc2063e9a7b07b408815c"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
- file://configure.patch \
- file://fix-libusb-paths.patch \
- file://600-fix.patch \
- file://030-replace_unsafe_memcpy_with_memmove.patch \
- file://050-fix-glibcisms.patch \
- file://hplip-3.19.6-fix-return.patch \
- file://0001-common-utils-Include-string.h-for-strcasestr.patch \
- file://0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch \
- file://0003-pserror.c-Define-column-to-be-int-explcitly.patch \
- file://0004-Define-missing-prototype-for-functions.patch \
- file://0005-hp_ipp.c-Add-printf-format-to-snprintf-calls.patch \
- file://0006-Workaround-patch-for-missing-Python3-transition-of-t.patch \
-"
-SRC_URI[sha256sum] = "27ed0d492febb0b47c656234820d3ce573b24ff5b62e3bf4b2c47f82868d6bb4"
-
-DEPENDS += "cups python3 libusb"
-
-inherit autotools-brokensep python3-dir python3native pkgconfig systemd
-
-export STAGING_INCDIR
-export STAGING_LIBDIR
-
-CFLAGS += "-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}"
-
-EXTRA_OECONF += "\
- LIBUSBINCLUDEROOT=${STAGING_INCDIR} \
- --enable-cups-drv-install \
- --enable-cups-ppd-install \
- --disable-network-build \
- --disable-doc-build \
- --disable-pp-build \
- --disable-scan-build \
- --disable-gui-build \
- --disable-fax-build \
- --disable-policykit \
- --disable-qt4 \
- --disable-qt3 \
- --disable-dbus-build \
- --enable-foomatic-drv-install \
- --disable-foomatic-ppd-install \
- --disable-foomatic-rip-hplip-install \
- --disable-imageProcessor_build \
- --with-cupsbackenddir=${libexecdir}/cups/backend \
- --with-cupsfilterdir=${libexecdir}/cups/filter \
-"
-
-EXTRA_OEMAKE = "rulessystemdir=${systemd_unitdir}/system/"
-
-do_install:append() {
- rm -rf ${D}${datadir}/hplip/upgrade.py
- rm -rf ${D}${datadir}/hplip/uninstall.py
- sed -i -e "s|/usr/bin/env python|/usr/bin/env python3|g" ${D}${datadir}/hplip/*.py
- sed -i -e "s|/usr/bin/python|/usr/bin/env python3|g" ${D}${datadir}/hplip/*.py
-}
-
-PACKAGE_BEFORE_PN += "${PN}-ppd ${PN}-cups ${PN}-backend ${PN}-filter ${PN}-hal"
-
-RDEPENDS:${PN} += " \
- python3\
- python3-syslog \
- python3-pprint \
- python3-compression \
- python3-shell \
- python3-xml \
- python3-unixadmin \
- python3-html \
- python3-resource \
- python3-terminal \
-"
-RDEPENDS:${PN}-filter += "perl"
-
-# need to snag the debug file or OE will fail on backend package
-FILES:${PN}-dbg += "\
- ${libexecdir}/cups/backend/.debug \
- ${PYTHON_SITEPACKAGES_DIR}/.debug \
- ${libexecdir}/cups/filter/.debug "
-
-FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
-FILES:${PN}-ppd = "${datadir}/ppd"
-FILES:${PN}-cups = "${datadir}/cups"
-FILES:${PN}-backend = "${libexecdir}/cups/backend"
-FILES:${PN}-filter = "${libexecdir}/cups/filter"
-FILES:${PN}-hal = "${datadir}/hal"
-
-FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/*.so"
-
-SYSTEMD_SERVICE:${PN} = "hplip-printer@.service"
-
-CLEANBROKEN = "1"
diff --git a/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb b/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb
deleted file mode 100644
index e6fed584f9..0000000000
--- a/meta-oe/recipes-extended/hwloc/hwloc_1.11.13.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Portable Hardware Locality (hwloc) software package"
-DESCRIPTION = "The Portable Hardware Locality (hwloc) software package \
- provides a portable abstraction of the hierarchical topology of modern \
- architectures."
-HOMEPAGE = "https://www.open-mpi.org/software/hwloc/"
-SECTION = "base"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3282e20dc3cec311deda3c6d4b1f990b"
-
-SRC_URI = "https://www.open-mpi.org/software/${BPN}/v1.11/downloads/${BP}.tar.bz2"
-SRC_URI[md5sum] = "3c792e23c209e9e1bafe9bdbc613d401"
-SRC_URI[sha256sum] = "a4494b7765f517c0990d1c7f09d98cb87755bb6b841e4e2cbfebca1b14bac9c8"
-
-UPSTREAM_CHECK_URI = "https://www.open-mpi.org/software/hwloc/v1.11/"
-
-inherit autotools pkgconfig
-
-DEPENDS += "ncurses udev zlib"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'libselinux', '', d)}"
-
-PACKAGECONFIG ?= "pci libxml2 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
-
-PACKAGECONFIG[numactl] = "--enable-libnuma,--disable-libnuma,numactl,numactl"
-PACKAGECONFIG[libxml2] = "--enable-libxml2,--disable-libxml2,libxml2,libxml2"
-PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 cairo,cairo"
-PACKAGECONFIG[pci] = "--enable-pci,--disable-pci,libpciaccess,libpciaccess"
-
-# Split hwloc library into separate subpackage
-PACKAGES:prepend = " libhwloc "
-FILES:libhwloc += "${libdir}/libhwloc.so.*"
-RDEPENDS:${PN} += "libhwloc (= ${EXTENDPKGV})"
diff --git a/meta-oe/recipes-extended/hwloc/hwloc_2.9.3.bb b/meta-oe/recipes-extended/hwloc/hwloc_2.9.3.bb
new file mode 100644
index 0000000000..d72c5f2be5
--- /dev/null
+++ b/meta-oe/recipes-extended/hwloc/hwloc_2.9.3.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Portable Hardware Locality (hwloc) software package"
+DESCRIPTION = "The Portable Hardware Locality (hwloc) software package \
+ provides a portable abstraction of the hierarchical topology of modern \
+ architectures."
+HOMEPAGE = "https://www.open-mpi.org/software/hwloc/"
+SECTION = "base"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=79179bb373cd55cbd834463a514fb714"
+
+SRC_URI = "https://www.open-mpi.org/software/${BPN}/v2.9/downloads/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "5c4062ce556f6d3451fc177ffb8673a2120f81df6835dea6a21a90fbdfff0dec"
+UPSTREAM_CHECK_URI = "https://www.open-mpi.org/software/hwloc/v2.9/"
+
+inherit autotools bash-completion pkgconfig
+
+DEPENDS += "ncurses udev zlib"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'libselinux', '', d)}"
+
+PACKAGECONFIG ?= "pci libxml2 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+
+PACKAGECONFIG[libxml2] = "--enable-libxml2,--disable-libxml2,libxml2,libxml2"
+PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 cairo,cairo"
+PACKAGECONFIG[pci] = "--enable-pci,--disable-pci,libpciaccess,libpciaccess"
+
+# Split hwloc library into separate subpackage
+PACKAGES:prepend = " libhwloc "
+FILES:libhwloc += "${libdir}/libhwloc.so.*"
+RDEPENDS:${PN} += "libhwloc (= ${EXTENDPKGV})"
diff --git a/meta-oe/recipes-extended/icewm/icewm_2.9.9.bb b/meta-oe/recipes-extended/icewm/icewm_2.9.9.bb
deleted file mode 100644
index ecb0dbe73f..0000000000
--- a/meta-oe/recipes-extended/icewm/icewm_2.9.9.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-DESCRIPTION = "Ice Window Manager (IceWM)"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4a26952467ef79a7efca4a9cf52d417b"
-
-SRC_URI = "https://github.com/ice-wm/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.lz \
- file://0001-configure.ac-skip-running-test-program-when-cross-co.patch \
- "
-SRC_URI[sha256sum] = "af7bab3472189febf50753eaecfac586901419d282cbcbff92e860d4b74894b3"
-
-UPSTREAM_CHECK_URI = "https://github.com/ice-wm/${BPN}/releases"
-
-inherit autotools pkgconfig gettext perlnative features_check qemu update-alternatives
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OECONF += "--with-libdir=${datadir}/icewm \
- --with-cfgdir=${sysconfdir}/icewm \
- --with-docdir=${docdir}/icewm \
- --enable-fribidi \
- --enable-xinerama \
- --enable-shape"
-
-DEPENDS = "asciidoc-native fontconfig fribidi gdk-pixbuf imlib2 libxft libxpm libxrandr \
- libxinerama libice libsm libx11 libxext libxrender libxcomposite libxdamage \
- libxfixes"
-DEPENDS:append = " qemu-native"
-RDEPENDS:${PN} = "perl fribidi imlib2 imlib2-loaders"
-
-do_compile:prepend:class-target() {
-
- cd ${B}
- oe_runmake -C src genpref
-
- qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}',['${B}/src/.libs','${STAGING_DIR_TARGET}/${libdir}','${STAGING_DIR_TARGET}/${base_libdir}'])}"
- cat >qemuwrapper <<EOF
-#!/bin/sh
-${qemu_binary} src/genpref "\$@"
-EOF
- chmod +x qemuwrapper
- ./qemuwrapper > src/preferences
-}
-
-ALTERNATIVE:${PN} = "x-session-manager"
-ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/icewm-session"
-ALTERNATIVE_PRIORITY_${PN} = "100"
-
-FILES:${PN} += "${datadir}/xsessions"
diff --git a/meta-oe/recipes-extended/icewm/icewm_3.4.5.bb b/meta-oe/recipes-extended/icewm/icewm_3.4.5.bb
new file mode 100644
index 0000000000..6e50231c83
--- /dev/null
+++ b/meta-oe/recipes-extended/icewm/icewm_3.4.5.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "Ice Window Manager (IceWM)"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4a26952467ef79a7efca4a9cf52d417b"
+
+SRC_URI = "https://github.com/ice-wm/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.lz \
+ file://0001-configure.ac-skip-running-test-program-when-cross-co.patch \
+ "
+SRC_URI[sha256sum] = "8d1afe9a2d5e28e88261b68906337449307e53f06c08218e1a6409083998a5f1"
+
+UPSTREAM_CHECK_URI = "https://github.com/ice-wm/${BPN}/releases"
+
+inherit autotools pkgconfig gettext perlnative features_check qemu update-alternatives
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OECONF += "--with-libdir=${datadir}/icewm \
+ --with-cfgdir=${sysconfdir}/icewm \
+ --with-docdir=${docdir}/icewm \
+ --enable-fribidi \
+ --enable-xinerama \
+ --enable-shape"
+
+DEPENDS = "asciidoc-native fontconfig fribidi gdk-pixbuf imlib2 libxft libxpm libxrandr \
+ libxinerama libice libsm libx11 libxext libxrender libxcomposite libxdamage \
+ libxfixes"
+DEPENDS:append = " qemu-native"
+RDEPENDS:${PN} = "perl fribidi imlib2 imlib2-loaders"
+
+do_compile:prepend:class-target() {
+
+ cd ${B}
+ oe_runmake -C src genpref
+
+ qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}',['${B}/src/.libs','${STAGING_DIR_TARGET}/${libdir}','${STAGING_DIR_TARGET}/${base_libdir}'])}"
+ cat >qemuwrapper <<EOF
+#!/bin/sh
+${qemu_binary} src/genpref "\$@"
+EOF
+ chmod +x qemuwrapper
+ ./qemuwrapper > src/preferences
+}
+
+ALTERNATIVE:${PN} = "x-session-manager"
+ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/icewm-session"
+ALTERNATIVE_PRIORITY_${PN} = "100"
+
+FILES:${PN} += "${datadir}/xsessions"
diff --git a/meta-oe/recipes-extended/iotop/iotop_1.21.bb b/meta-oe/recipes-extended/iotop/iotop_1.21.bb
deleted file mode 100644
index 8eebd691a7..0000000000
--- a/meta-oe/recipes-extended/iotop/iotop_1.21.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "A top utility for I/O"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=48e7be78bd2671d08c9c3bad71f1cfaa"
-
-DEPENDS = "ncurses"
-
-SRC_URI = "https://github.com/Tomas-M/iotop/releases/download/v1.21/iotop-1.21.tar.xz"
-SRC_URI[sha256sum] = "7b4862ebc93909a3f800193140ca2464e926291a9c873b50dc31fa77e6d9383e"
-UPSTREAM_CHECK_URI = "https://github.com/Tomas-M/iotop/releases"
-
-inherit pkgconfig
-
-EXTRA_OEMAKE = "V=1 STRIP=true"
-# Fixes llvm-bc70b5.o: can't link soft-float modules with double-float modules
-EXTRA_OEMAKE:append:toolchain-clang:riscv64 = " NO_FLTO=1"
-EXTRA_OEMAKE:append:toolchain-clang:riscv32 = " NO_FLTO=1"
-
-# Workaround BFD linker crash with clang on arm
-# revisit when upgrading binutils and see if its fixed
-LDFLAGS:append:toolchain-clang:arm = " -fuse-ld=lld"
-
-do_install() {
- oe_runmake install DESTDIR=${D}
-}
diff --git a/meta-oe/recipes-extended/iotop/iotop_1.26.bb b/meta-oe/recipes-extended/iotop/iotop_1.26.bb
new file mode 100644
index 0000000000..9b36b57cb7
--- /dev/null
+++ b/meta-oe/recipes-extended/iotop/iotop_1.26.bb
@@ -0,0 +1,25 @@
+SUMMARY = "A top utility for I/O"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=686f457fedcecd9b92d69e625291ffa2"
+
+DEPENDS = "ncurses"
+
+SRC_URI = "git://github.com/Tomas-M/iotop.git;branch=master;protocol=https"
+SRCREV = "b15743b04bb04ff1fc6e197d21ba30365349edcb"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig
+
+EXTRA_OEMAKE = "V=1 STRIP=true"
+# Fixes llvm-bc70b5.o: can't link soft-float modules with double-float modules
+EXTRA_OEMAKE:append:toolchain-clang:riscv64 = " NO_FLTO=1"
+EXTRA_OEMAKE:append:toolchain-clang:riscv32 = " NO_FLTO=1"
+
+# Workaround BFD linker crash with clang on arm
+# revisit when upgrading binutils and see if its fixed
+LDFLAGS:append:toolchain-clang:arm = " -fuse-ld=lld"
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb b/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb
deleted file mode 100644
index 4f8ea64a26..0000000000
--- a/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Tools for taking the MD5 sum of ISO images"
-DESCRIPTION = "Tools for taking the MD5 sum of ISO images"
-
-DEPENDS = "popt python3 openssl curl popt-native"
-RDEPENDS:${BPN} = "openssl curl"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-
-SRC_URI = "git://github.com/rhinstaller/isomd5sum.git;branch=master;protocol=https \
- file://0001-tweak-install-prefix.patch \
- file://0002-fix-parallel-error.patch \
-"
-
-S = "${WORKDIR}/git"
-inherit python3native
-
-EXTRA_OEMAKE += " \
- DESTDIR='${D}' \
- PYTHONINCLUDE='-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}' \
- PYTHONSITEPACKAGES='${PYTHON_SITEPACKAGES_DIR}' \
-"
-
-do_install () {
- oe_runmake install
-}
-
-PACKAGES += "${PYTHON_PN}-${BPN}"
-
-RPROVIDES:${BPN}-dbg += "${PYTHON_PN}-${BPN}-dbg"
-
-FILES:${PYTHON_PN}-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/pyisomd5sum.so"
-
-SRCREV = "7860901f726f5d92689cb67243cc7f981f21f74b"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.4.bb b/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.4.bb
new file mode 100644
index 0000000000..5f2993dd4f
--- /dev/null
+++ b/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.4.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Tools for taking the MD5 sum of ISO images"
+DESCRIPTION = "Tools for taking the MD5 sum of ISO images"
+
+DEPENDS = "popt python3 openssl curl popt-native"
+RDEPENDS:${BPN} = "openssl curl"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+SRC_URI = "git://github.com/rhinstaller/isomd5sum.git;branch=master;protocol=https \
+ file://0001-tweak-install-prefix.patch \
+ file://0002-fix-parallel-error.patch \
+"
+
+S = "${WORKDIR}/git"
+inherit python3native
+
+EXTRA_OEMAKE += " \
+ DESTDIR='${D}' \
+ PYTHONINCLUDE='-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}' \
+ PYTHONSITEPACKAGES='${PYTHON_SITEPACKAGES_DIR}' \
+"
+
+do_install () {
+ oe_runmake install
+}
+
+PACKAGES += "python3-${BPN}"
+
+RPROVIDES:${BPN}-dbg += "python3-${BPN}-dbg"
+
+FILES:python3-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/pyisomd5sum.so"
+
+SRCREV = "3f4c9bd3f21ec9ac75a025dfa3fa30fe3f621831"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/jansson/jansson/0001-Fix-overwriting-linker-flags.patch b/meta-oe/recipes-extended/jansson/jansson/0001-Fix-overwriting-linker-flags.patch
new file mode 100644
index 0000000000..5eee6f85aa
--- /dev/null
+++ b/meta-oe/recipes-extended/jansson/jansson/0001-Fix-overwriting-linker-flags.patch
@@ -0,0 +1,29 @@
+From fe6e8eec7e7df4f1e72f0c9d9337b1fe11236687 Mon Sep 17 00:00:00 2001
+From: Thomas Heinrichs <46387399+Thomas1664@users.noreply.github.com>
+Date: Thu, 28 Apr 2022 17:36:54 +0200
+Subject: [PATCH] Fix overwriting linker flags
+
+Upstream-Status: Backport
+[https://github.com/akheron/jansson/commit/fe6e8eec7e7df4f1e72f0c9d9337b1fe11236687]
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 39b9ad365f78..ed33e3c47f70 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -342,7 +342,7 @@ if(JANSSON_BUILD_SHARED_LIBS)
+ )
+ list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/jansson.sym")
+ if (VSCRIPT_WORKS)
+- set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/jansson.sym")
++ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/jansson.sym")
+ endif()
+ endif()
+
+--
+2.35.1
+
diff --git a/meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch b/meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch
new file mode 100644
index 0000000000..513d109459
--- /dev/null
+++ b/meta-oe/recipes-extended/jansson/jansson/0001-Honour-multilib-paths.patch
@@ -0,0 +1,63 @@
+From e66885e66a2ce7fd916933b12d1ba523a25141e4 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Mon, 3 Oct 2022 13:25:05 +0100
+Subject: [PATCH] Honour multilib paths
+
+Upstream-Status: Pending
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ CMakeLists.txt | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 39b9ad365f78..bf297e936a72 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,8 +20,8 @@ endif ()
+
+ # Set some nicer output dirs.
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
+-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
+-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
+ set(JANSSON_TEMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/tmp)
+
+ # Give the debug version a different postfix for windows,
+@@ -573,14 +573,14 @@ endif ()
+ #
+
+ # Allow the user to override installation directories.
+-set(JANSSON_INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries")
++set(JANSSON_INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries")
+ set(JANSSON_INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables")
+ set(JANSSON_INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files")
+
+ if(WIN32 AND NOT CYGWIN)
+ set(DEF_INSTALL_CMAKE_DIR cmake)
+ else()
+- set(DEF_INSTALL_CMAKE_DIR lib/cmake/jansson)
++ set(DEF_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/jansson)
+ endif()
+
+ set(JANSSON_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
+@@ -633,8 +633,8 @@ option(JANSSON_INSTALL "Generate installation target" ON)
+ if (JANSSON_INSTALL)
+ install(TARGETS jansson
+ EXPORT janssonTargets
+- LIBRARY DESTINATION "lib"
+- ARCHIVE DESTINATION "lib"
++ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ RUNTIME DESTINATION "bin"
+ INCLUDES DESTINATION "include")
+
+@@ -644,7 +644,7 @@ if (JANSSON_INSTALL)
+ # Install the pkg-config.
+ install(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/jansson.pc
+- DESTINATION lib/pkgconfig)
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+
+ # Install the configs.
+ install(FILES
diff --git a/meta-oe/recipes-extended/jansson/jansson_2.14.bb b/meta-oe/recipes-extended/jansson/jansson_2.14.bb
index 94bb99ab71..833060686a 100644
--- a/meta-oe/recipes-extended/jansson/jansson_2.14.bb
+++ b/meta-oe/recipes-extended/jansson/jansson_2.14.bb
@@ -4,7 +4,10 @@ BUGTRACKER = "https://github.com/akheron/jansson/issues"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=afd92c4cfc08f4896003251b878cc0bf"
-SRC_URI = "https://github.com/akheron/${BPN}/releases/download/v${PV}/${BP}.tar.bz2"
+SRC_URI = "https://github.com/akheron/${BPN}/releases/download/v${PV}/${BP}.tar.bz2 \
+ file://0001-Fix-overwriting-linker-flags.patch \
+ file://0001-Honour-multilib-paths.patch \
+ "
SRC_URI[sha256sum] = "fba956f27c6ae56ce6dfd52fbf9d20254aad42821f74fa52f83957625294afb9"
UPSTREAM_CHECK_URI = "https://github.com/akheron/${BPN}/releases"
@@ -12,4 +15,6 @@ UPSTREAM_CHECK_REGEX = "${BPN}-(?P<pver>\d+(\.\d+)+)\.tar"
inherit cmake pkgconfig
+EXTRA_OECMAKE = "-DJANSSON_BUILD_SHARED_LIBS=${@ 'OFF' if d.getVar('DISABLE_STATIC') == '' else 'ON' }"
+
BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb b/meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb
index d003279966..bfa0e79d8f 100644
--- a/meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb
+++ b/meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb
@@ -2,9 +2,9 @@ SUMMARY = "A handy serial sniffer"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
-PV = "2.3.6+git${SRCPV}"
+PV = "2.3.6+git"
-SRC_URI = "git://github.com/snarlistic/jpnevulator.git;protocol=http;branch=master;protocol=https"
+SRC_URI = "git://github.com/snarlistic/jpnevulator.git;protocol=https;branch=master"
SRCREV = "bc1d4f6587a4a4829b5d55e3ca7ad584da6de545"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch b/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch
index 40a064307e..2671111b79 100644
--- a/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch
+++ b/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] CMakeLists.txt: fix lib64 can not be shiped in 64bit target
Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
CMakeLists.txt | 7 -------
1 file changed, 7 deletions(-)
diff --git a/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch b/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch
index 342017bedc..293706d889 100644
--- a/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch
+++ b/meta-oe/recipes-extended/konkretcmpi/konkretcmpi/0001-drop-including-rpath-cmake-module.patch
@@ -8,6 +8,8 @@ Fixes cross compilation QA errors e.g.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/konkret/CMakeLists.txt | 1 -
src/program/CMakeLists.txt | 1 -
2 files changed, 2 deletions(-)
diff --git a/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb b/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
index 15a7965935..6b60d89187 100644
--- a/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
+++ b/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
@@ -17,7 +17,7 @@ SRC_URI = "git://github.com/rnovacek/konkretcmpi.git;branch=master;protocol=http
SRCREV = "ad28225e6eceff88417a60c1ba8896c8e40f21a7"
S = "${WORKDIR}/git"
-inherit cmake
+inherit cmake python3-dir
EXTRA_OECMAKE = "-DWITH_PYTHON=ON \
${@oe.utils.conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
@@ -34,6 +34,6 @@ PACKAGES =+ "${PN}-python"
RPROVIDES:${PN}-dbg += "${PN}-python-dbg"
-FILES:${PN}-python = "${libdir}/python*/site-packages/konkretmof.py* ${libdir}/python*/site-packages/_konkretmof.so"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/konkretmof.py* ${PYTHON_SITEPACKAGES_DIR}/_konkretmof.so"
BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/lastlog2/files/0001-remove-lto-to-fix-link-error-of-clang.patch b/meta-oe/recipes-extended/lastlog2/files/0001-remove-lto-to-fix-link-error-of-clang.patch
new file mode 100644
index 0000000000..71c3de9748
--- /dev/null
+++ b/meta-oe/recipes-extended/lastlog2/files/0001-remove-lto-to-fix-link-error-of-clang.patch
@@ -0,0 +1,31 @@
+From 692523d2f8bf0ce893a781761154db4277f0fceb Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@fujitsu.com>
+Date: Wed, 19 Jul 2023 07:11:15 +0000
+Subject: remove lto to fix link error of clang
+
+error message:
+| tests/tst-y2038-64bit-time_t.p/tst-y2038-64bit-time_t.c.o: file not recognized: file format not recognized
+| clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
+
+Upstream-Status: Pending
+
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ meson.build | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index c521577..13d993b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -26,7 +26,6 @@ add_project_arguments(['-D_GNU_SOURCE=1',
+ '-DPROJECT_VERSION="@0@"'.format(meson.project_version()) ], language : 'c')
+
+ possible_cc_flags = [
+- '-flto=auto',
+ '-ffat-lto-objects',
+ '-fstack-protector-strong',
+ '-funwind-tables',
+--
+2.34.1
+
diff --git a/meta-oe/recipes-extended/lastlog2/lastlog2_1.2.0.bb b/meta-oe/recipes-extended/lastlog2/lastlog2_1.2.0.bb
new file mode 100644
index 0000000000..43deac3839
--- /dev/null
+++ b/meta-oe/recipes-extended/lastlog2/lastlog2_1.2.0.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Y2038 safe version of lastlog"
+HOMEPAGE = "https://github.com/thkukuk/lastlog2"
+DESCRIPTION = "lastlog reports the last login of a given user or of all users who did ever login on a system."
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=020090a00b69dd2af9ab82eb0003ea2c"
+SECTION = "libs"
+
+SRCREV = "6138dff6f2a5216065fa4833a223b56d98cb62f3"
+
+SRC_URI = "git://github.com/thkukuk/lastlog2.git;branch=main;protocol=https \
+ file://0001-remove-lto-to-fix-link-error-of-clang.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig systemd features_check
+
+DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} sqlite3 "
+REQUIRED_DISTRO_FEATURES = "pam"
+
+SYSTEMD_SERVICE:${PN} = "lastlog2-import.service"
+
+EXTRA_OEMESON = " -Dpamlibdir=${libdir}"
+
+do_install:append () {
+ if [ -d ${D}${prefix}/lib/systemd -a ${D}${prefix}/lib != `dirname ${D}${systemd_unitdir}` ]; then
+ # Fix makefile hardcoded path assumptions for systemd (assumes $prefix)
+ # without usrmerge distro feature enabled
+ install -d `dirname ${D}${systemd_unitdir}`
+ mv ${D}${prefix}/lib/systemd `dirname ${D}${systemd_unitdir}`
+ fi
+}
+
+FILES:${PN} += " ${systemd_system_unitdir} "
+FILES:${PN} += " ${libdir} "
+FILES:${PN} += " ${nonarch_libdir}/tmpfiles.d/* "
diff --git a/meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb b/meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb
index 609e55f4ac..d540737bc9 100644
--- a/meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb
+++ b/meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb
@@ -10,21 +10,20 @@ DEPENDS += "libunwind"
SRC_URI = "git://github.com/ianlancetaylor/libbacktrace;protocol=https;branch=master"
-PV = "1.0+git${SRCPV}"
-SRCREV = "4f57c999716847e45505b3df170150876b545088"
+PV = "1.0+git"
+SRCREV = "9ae4f4ae4481b1e69d38ed810980d33103544613"
S = "${WORKDIR}/git"
inherit autotools
-EXTR_OECONF += "--with-system-libunwind"
-
-CFLAGS += "-fPIC"
+EXTRA_OECONF += "--with-system-libunwind --enable-shared --disable-static"
do_configure() {
oe_runconf
}
-# libunwind does not support RISCV yet
-COMPATIBLE_HOST:riscv64 = "null"
+RDEPENDS:${PN}-dev = ""
+
+# libunwind does not support RISCV32 yet
COMPATIBLE_HOST:riscv32 = "null"
diff --git a/meta-oe/recipes-extended/libblockdev/files/0001-fix-pythondir-for-multilib-when-cross-compiling.patch b/meta-oe/recipes-extended/libblockdev/files/0001-fix-pythondir-for-multilib-when-cross-compiling.patch
new file mode 100644
index 0000000000..ec3a9fe470
--- /dev/null
+++ b/meta-oe/recipes-extended/libblockdev/files/0001-fix-pythondir-for-multilib-when-cross-compiling.patch
@@ -0,0 +1,32 @@
+From 297abed277ce3aa0cf12adbfda3c8581afdba850 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Sun, 8 Oct 2023 19:30:29 -0700
+Subject: [PATCH] fix pythondir for multilib when cross compiling
+
+In case of cross compiling + multilib, the 'shell python3' line is
+not likely to give out correct result. Make use of pythondir instead.
+
+This patch is related to meta/recipes-devtools/automake/automake/0001-automake-Update-for-python.m4-to-respect-libdir.patch
+in oe-core, so this one is marked as oe specific.
+
+Upstream-Status: Inappropriate [OE Specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/python/gi/overrides/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/python/gi/overrides/Makefile.am b/src/python/gi/overrides/Makefile.am
+index 5e8e75f7..7c30601c 100644
+--- a/src/python/gi/overrides/Makefile.am
++++ b/src/python/gi/overrides/Makefile.am
+@@ -1,5 +1,5 @@
+ if WITH_PYTHON3
+-py3libdir = $(shell python3 -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '${exec_prefix}'}))")
++py3libdir = $(pythondir)
+ py3overridesdir = $(py3libdir)/gi/overrides
+ dist_py3overrides_DATA = BlockDev.py
+ endif
+--
+2.42.0
+
diff --git a/meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb b/meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb
deleted file mode 100644
index 44b4e7daf9..0000000000
--- a/meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-DESCRIPTION = "libblockdev is a C library supporting GObject introspection for manipulation of \
-block devices. It has a plugin-based architecture where each technology (like \
-LVM, Btrfs, MD RAID, Swap,...) is implemented in a separate plugin, possibly \
-with multiple implementations (e.g. using LVM CLI or the new LVM DBus API)."
-HOMEPAGE = "http://rhinstaller.github.io/libblockdev/"
-LICENSE = "LGPL-2.0-or-later"
-SECTION = "devel/lib"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
-
-inherit autotools gobject-introspection pkgconfig
-
-SRC_URI = "git://github.com/storaged-project/libblockdev;branch=2.x-branch;protocol=https \
-"
-SRCREV = "1412dc51c8f76bf8d9a6008228737db4a9a26d69"
-S = "${WORKDIR}/git"
-
-FILES:${PN} += "${libdir}/python2.7/dist-packages ${libdir}/python3.*/site-packages"
-
-PACKAGECONFIG ??= "python3 lvm dm kmod parted fs escrow btrfs crypto mdraid kbd mpath nvdimm"
-PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
-PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python"
-PACKAGECONFIG[lvm] = "--with-lvm, --without-lvm, multipath-tools, lvm2"
-PACKAGECONFIG[lvm-dbus] = "--with-lvm_dbus, --without-lvm_dbus, multipath-tools, lvm2"
-PACKAGECONFIG[dm] = "--with-dm, --without-dm, multipath-tools, lvm2"
-PACKAGECONFIG[dmraid] = "--with-dmraid, --without-dmraid"
-PACKAGECONFIG[kmod] = "--with-kbd, --without-kbd, kmod"
-PACKAGECONFIG[parted] = "--with-part, --without-part, parted"
-PACKAGECONFIG[fs] = "--with-fs, --without-fs, util-linux"
-PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native"
-PACKAGECONFIG[nvdimm] = "--with-nvdimm, --without-nvdimm, ndctl util-linux"
-PACKAGECONFIG[vdo] = "--with-vdo, --without-vdo"
-PACKAGECONFIG[escrow] = "--with-escrow, --without-escrow, nss volume-key"
-PACKAGECONFIG[btrfs] = "--with-btrfs,--without-btrfs,libbytesize btrfs-tools"
-PACKAGECONFIG[crypto] = "--with-crypto,--without-crypto,cryptsetup nss volume-key"
-PACKAGECONFIG[mdraid] = "--with-mdraid,--without-mdraid,libbytesize"
-PACKAGECONFIG[kbd] = "--with-kbd,--without-kbd,libbytesize"
-PACKAGECONFIG[mpath] = "--with-mpath,--without-mpath, multipath-tools, lvm2"
-
-export GIR_EXTRA_LIBS_PATH="${B}/src/utils/.libs"
diff --git a/meta-oe/recipes-extended/libblockdev/libblockdev_3.1.1.bb b/meta-oe/recipes-extended/libblockdev/libblockdev_3.1.1.bb
new file mode 100644
index 0000000000..1ad8036d7b
--- /dev/null
+++ b/meta-oe/recipes-extended/libblockdev/libblockdev_3.1.1.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "libblockdev is a C library supporting GObject introspection for manipulation of \
+block devices. It has a plugin-based architecture where each technology (like \
+LVM, Btrfs, MD RAID, Swap,...) is implemented in a separate plugin, possibly \
+with multiple implementations (e.g. using LVM CLI or the new LVM DBus API)."
+HOMEPAGE = "http://rhinstaller.github.io/libblockdev/"
+LICENSE = "LGPL-2.0-or-later"
+SECTION = "devel/lib"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
+
+inherit autotools gobject-introspection pkgconfig lib_package
+
+DEPENDS = "autoconf-archive-native glib-2.0 kmod udev libnvme"
+
+SRC_URI = "git://github.com/storaged-project/libblockdev;branch=3.1.x-devel;protocol=https \
+ file://0001-fix-pythondir-for-multilib-when-cross-compiling.patch \
+ "
+SRCREV = "68aaff5556afe26be749c29a2b7cbd714dce3050"
+S = "${WORKDIR}/git"
+
+FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}"
+
+PACKAGECONFIG ??= "python3 lvm lvm-dbus dm parted fs escrow btrfs crypto mdraid mpath nvdimm tools"
+PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
+PACKAGECONFIG[lvm] = "--with-lvm, --without-lvm, multipath-tools, lvm2"
+PACKAGECONFIG[lvm-dbus] = "--with-lvm_dbus, --without-lvm_dbus, multipath-tools, lvm2"
+PACKAGECONFIG[dm] = "--with-dm, --without-dm, multipath-tools, lvm2"
+PACKAGECONFIG[parted] = "--with-part, --without-part, parted"
+PACKAGECONFIG[fs] = "--with-fs, --without-fs, util-linux"
+PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native"
+PACKAGECONFIG[nvdimm] = "--with-nvdimm, --without-nvdimm, ndctl util-linux"
+PACKAGECONFIG[escrow] = "--with-escrow, --without-escrow, nss volume-key"
+PACKAGECONFIG[btrfs] = "--with-btrfs,--without-btrfs,libbytesize btrfs-tools"
+PACKAGECONFIG[crypto] = "--with-crypto,--without-crypto,cryptsetup nss volume-key"
+PACKAGECONFIG[mdraid] = "--with-mdraid,--without-mdraid,libbytesize"
+PACKAGECONFIG[mpath] = "--with-mpath,--without-mpath, multipath-tools, lvm2"
+PACKAGECONFIG[tools] = "--with-tools,--without-tools,libbytesize libdevmapper"
+
+export GIR_EXTRA_LIBS_PATH="${B}/src/utils/.libs"
diff --git a/meta-oe/recipes-extended/libcbor/libcbor_0.11.0.bb b/meta-oe/recipes-extended/libcbor/libcbor_0.11.0.bb
new file mode 100755
index 0000000000..28bd5b5ae2
--- /dev/null
+++ b/meta-oe/recipes-extended/libcbor/libcbor_0.11.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "library for CBOR"
+DESCRIPTION = "C library for parsing and generating CBOR, the general-purpose schema-less binary data format."
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=6f3b3881df62ca763a02d359a6e94071"
+
+SRC_URI = "git://github.com/PJK/libcbor.git;protocol=https;branch=master"
+SRCREV = "170bee2b82cdb7b2ed25af301f62cb6efdd40ec1"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE += " -DCMAKE_BUILD_TYPE=Release"
diff --git a/meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch b/meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch
index 7c29e15e20..07277f7064 100644
--- a/meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch
+++ b/meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch
@@ -4,6 +4,8 @@ Date: Mon, 7 Sep 2020 18:17:21 +0200
Subject: [PATCH] Remove buggy test confusing host and target
---
+Upstream-Status: Pending
+
src/libcec/cmake/CheckPlatformSupport.cmake | 8 --------
1 file changed, 8 deletions(-)
diff --git a/meta-oe/recipes-extended/libdeflate/libdeflate_1.20.bb b/meta-oe/recipes-extended/libdeflate/libdeflate_1.20.bb
new file mode 100644
index 0000000000..f0a966f2b4
--- /dev/null
+++ b/meta-oe/recipes-extended/libdeflate/libdeflate_1.20.bb
@@ -0,0 +1,15 @@
+SUMMARY = "libdeflate is a library for fast, whole-buffer DEFLATE-based compression and decompression."
+HOMEPAGE = "https://github.com/ebiggers/libdeflate"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=7b6977026437092191e9da699ed9f780"
+
+DEPENDS += "gzip zlib"
+
+SRC_URI = "git://github.com/ebiggers/libdeflate.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+SRCREV = "275aa5141db6eda3587214e0f1d3a134768f557d"
+
+inherit cmake pkgconfig
+
diff --git a/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb b/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
index 2f67b12a8d..87778c6314 100644
--- a/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
+++ b/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
@@ -8,9 +8,9 @@ DEPENDS = "libusb1"
inherit autotools pkgconfig
-PV = "0.7.0"
+PV = "0.8.0"
-SRCREV = "47cbed5355ffda7b952193a770a9a9fa9f89b25b"
+SRCREV = "db9371cf9f38b5a3b2f6e4fae3f92eb052d2d929"
SRC_URI = "git://github.com/libdivecomputer/libdivecomputer.git;protocol=https;branch=master \
"
diff --git a/meta-oe/recipes-extended/libexecinfo/libexecinfo/0001-makefile-Fix-build-on-linux.patch b/meta-oe/recipes-extended/libexecinfo/libexecinfo/0001-makefile-Fix-build-on-linux.patch
index f1863f14b3..b37b1aa2a6 100644
--- a/meta-oe/recipes-extended/libexecinfo/libexecinfo/0001-makefile-Fix-build-on-linux.patch
+++ b/meta-oe/recipes-extended/libexecinfo/libexecinfo/0001-makefile-Fix-build-on-linux.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 1/2] makefile: Fix build on linux
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 33 +++++++++++++++++----------------
1 file changed, 17 insertions(+), 16 deletions(-)
diff --git a/meta-oe/recipes-extended/libexecinfo/libexecinfo/0002-execinfo-Fix-compiler-errors-found-with-newer-gcc-cl.patch b/meta-oe/recipes-extended/libexecinfo/libexecinfo/0002-execinfo-Fix-compiler-errors-found-with-newer-gcc-cl.patch
index 423b670823..34fd98aaba 100644
--- a/meta-oe/recipes-extended/libexecinfo/libexecinfo/0002-execinfo-Fix-compiler-errors-found-with-newer-gcc-cl.patch
+++ b/meta-oe/recipes-extended/libexecinfo/libexecinfo/0002-execinfo-Fix-compiler-errors-found-with-newer-gcc-cl.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 2/2] execinfo: Fix compiler errors found with newer gcc/clang
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
execinfo.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/meta-oe/recipes-extended/libgxim/libgxim/0001-Use-AM_CPPFLAGS-instead-of-INCLUDES.patch b/meta-oe/recipes-extended/libgxim/libgxim/0001-Use-AM_CPPFLAGS-instead-of-INCLUDES.patch
index 41e07f39f1..393571c313 100644
--- a/meta-oe/recipes-extended/libgxim/libgxim/0001-Use-AM_CPPFLAGS-instead-of-INCLUDES.patch
+++ b/meta-oe/recipes-extended/libgxim/libgxim/0001-Use-AM_CPPFLAGS-instead-of-INCLUDES.patch
@@ -4,6 +4,8 @@ Date: Mon, 13 May 2013 16:05:32 +0900
Subject: [PATCH 1/3] Use AM_CPPFLAGS instead of INCLUDES
---
+Upstream-Status: Pending
+
docs/reference/Makefile.am | 2 +-
libgxim/Makefile.am | 2 +-
tests/Makefile.am | 2 +-
diff --git a/meta-oe/recipes-extended/libgxim/libgxim/0002-Update-autotools-macro.patch b/meta-oe/recipes-extended/libgxim/libgxim/0002-Update-autotools-macro.patch
index 808203b6ef..01233f0a1f 100644
--- a/meta-oe/recipes-extended/libgxim/libgxim/0002-Update-autotools-macro.patch
+++ b/meta-oe/recipes-extended/libgxim/libgxim/0002-Update-autotools-macro.patch
@@ -4,6 +4,8 @@ Date: Wed, 22 Jan 2014 18:59:32 +0900
Subject: [PATCH 2/3] Update autotools macro
---
+Upstream-Status: Pending
+
configure.ac | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-extended/libgxim/libgxim/0003-Add-format-string-qualifier-to-fix-potential-securit.patch b/meta-oe/recipes-extended/libgxim/libgxim/0003-Add-format-string-qualifier-to-fix-potential-securit.patch
index cb21e1ef44..98bbde08a2 100644
--- a/meta-oe/recipes-extended/libgxim/libgxim/0003-Add-format-string-qualifier-to-fix-potential-securit.patch
+++ b/meta-oe/recipes-extended/libgxim/libgxim/0003-Add-format-string-qualifier-to-fix-potential-securit.patch
@@ -9,6 +9,8 @@ libgxim/gximprotocol10.c:2076:66: error: format string is not a string literal (
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
libgxim/gximprotocol10.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/libgxim/libgxim/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch b/meta-oe/recipes-extended/libgxim/libgxim/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch
index 3d293b473e..f2603d1399 100644
--- a/meta-oe/recipes-extended/libgxim/libgxim/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch
+++ b/meta-oe/recipes-extended/libgxim/libgxim/multi-line-ACLOCAL_AMFLAGS-isnot-supported-by-autoreconf.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
multi-line ACLOCAL_AMFLAGS isn't supported by autoreconf.
It will cause configure error as follow.
diff --git a/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb b/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
index 2d93936f37..eb85a07e99 100644
--- a/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
+++ b/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
@@ -24,8 +24,8 @@ LIC_FILES_CHKSUM = "\
file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
EXTRA_OECONF = "--enable-debug --disable-static --disable-rebuilds --enable-compile-warnings=minimum"
-DEPENDS += "gtk+ glib-2.0 glib-2.0-native ruby-native intltool-native gnome-common-native"
+DEPENDS += "gtk+ glib-2.0 glib-2.0-native ruby-native intltool-native gnome-common-native autoconf-archive-native"
-inherit features_check autotools pkgconfig gettext
+inherit features_check autotools pkgconfig gettext gtk-doc
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch b/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch
deleted file mode 100644
index d5fb8e7c82..0000000000
--- a/meta-oe/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-Subject: [PATCH] idn: fix printf() format security warnings
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-| ../../libidn-1.32/src/idn.c: In function 'main':
-| ../../libidn-1.32/src/idn.c:172:7: error: format not a string literal and no format arguments [-Werror=format-security]
-| error (0, 0, _("only one of -s, -e, -d, -a, -u or -n can be specified"));
-| ^~~~~
-| ../../libidn-1.32/src/idn.c:187:5: error: format not a string literal and no format arguments [-Werror=format-security]
-| fprintf (stderr, _("Type each input string on a line by itself, "
-| ^~~~~~~
-| ../../libidn-1.32/src/idn.c:202:4: error: format not a string literal and no format arguments [-Werror=format-security]
-| error (EXIT_FAILURE, errno, _("input error"));
-| ^~~~~
-| ../../libidn-1.32/src/idn.c:220:8: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:245:8: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:281:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:340:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UCS-4 to UTF-8"));
-| ^
-| ../../libidn-1.32/src/idn.c:364:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UCS-4 to UTF-8"));
-| ^
-| ../../libidn-1.32/src/idn.c:442:8: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UCS-4 to UTF-8"));
-| ^
-| ../../libidn-1.32/src/idn.c:498:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:527:5: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-| ../../libidn-1.32/src/idn.c:540:6: error: format not a string literal and no format arguments [-Werror=format-security]
-| error (EXIT_FAILURE, 0, _("could not do NFKC normalization"));
-| ^~~~~
-| ../../libidn-1.32/src/idn.c:551:5: error: format not a string literal and no format arguments [-Werror=format-security]
-| _("could not convert from UTF-8 to UCS-4"));
-| ^
-
-Signed-off-by: André Draszik <adraszik@tycoint.com>
-Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
-
-Upstream-Status: Pending
-
----
- src/idn.c | 27 ++++++++++++++-------------
- 1 file changed, 14 insertions(+), 13 deletions(-)
-
-diff --git a/src/idn.c b/src/idn.c
-index f2fee11..c6e5caa 100644
---- a/src/idn.c
-+++ b/src/idn.c
-@@ -169,7 +169,7 @@ main (int argc, char *argv[])
- (args_info.idna_to_unicode_given ? 1 : 0) +
- (args_info.nfkc_given ? 1 : 0) != 1)
- {
-- error (0, 0,
-+ error (0, 0, "%s",
- _("only one of -s, -e, -d, -a, -u or -n can be specified"));
- usage (EXIT_FAILURE);
- }
-@@ -183,7 +183,7 @@ main (int argc, char *argv[])
-
- if (!args_info.quiet_given
- && args_info.inputs_num == 0 && isatty (fileno (stdin)))
-- fprintf (stderr, _("Type each input string on a line by itself, "
-+ fprintf (stderr, "%s", _("Type each input string on a line by itself, "
- "terminated by a newline character.\n"));
-
- do
-@@ -195,7 +195,7 @@ main (int argc, char *argv[])
- if (feof (stdin))
- break;
-
-- error (EXIT_FAILURE, errno, _("input error"));
-+ error (EXIT_FAILURE, errno, "%s", _("input error"));
- }
-
- if (strlen (line) > 0)
-@@ -213,7 +213,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (p);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
- }
-
-@@ -238,7 +238,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (r);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
- }
-
-@@ -275,7 +275,7 @@ main (int argc, char *argv[])
- q = stringprep_utf8_to_ucs4 (p, -1, &len);
- free (p);
- if (!q)
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
-
- if (args_info.debug_given)
-@@ -334,7 +334,7 @@ main (int argc, char *argv[])
- r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
- free (q);
- if (!r)
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UCS-4 to UTF-8"));
-
- p = stringprep_utf8_to_locale (r);
-@@ -358,7 +358,7 @@ main (int argc, char *argv[])
- q = stringprep_utf8_to_ucs4 (p, -1, NULL);
- free (p);
- if (!q)
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UCS-4 to UTF-8"));
-
- if (args_info.debug_given)
-@@ -436,7 +436,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (p);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UCS-4 to UTF-8"));
- }
-
-@@ -492,7 +492,7 @@ main (int argc, char *argv[])
- r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
- free (q);
- if (!r)
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
-
- p = stringprep_utf8_to_locale (r);
-@@ -521,7 +521,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (p);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
- }
-
-@@ -535,7 +535,8 @@ main (int argc, char *argv[])
- r = stringprep_utf8_nfkc_normalize (p, -1);
- free (p);
- if (!r)
-- error (EXIT_FAILURE, 0, _("could not do NFKC normalization"));
-+ error (EXIT_FAILURE, 0, "%s",
-+ _("could not do NFKC normalization"));
-
- if (args_info.debug_given)
- {
-@@ -545,7 +546,7 @@ main (int argc, char *argv[])
- if (!q)
- {
- free (r);
-- error (EXIT_FAILURE, 0,
-+ error (EXIT_FAILURE, 0, "%s",
- _("could not convert from UTF-8 to UCS-4"));
- }
-
---
-2.25.1
-
diff --git a/meta-oe/recipes-extended/libidn/libidn/0001-largefile.m4-Sync-with-latest-gnulib.patch b/meta-oe/recipes-extended/libidn/libidn/0001-largefile.m4-Sync-with-latest-gnulib.patch
new file mode 100644
index 0000000000..1dbf2955c9
--- /dev/null
+++ b/meta-oe/recipes-extended/libidn/libidn/0001-largefile.m4-Sync-with-latest-gnulib.patch
@@ -0,0 +1,390 @@
+From 66c1646a3f12836846a054ebd2c427e30c93d3a5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 2 Apr 2023 10:37:15 -0700
+Subject: [PATCH] largefile.m4: Sync with latest gnulib
+
+This ensures it can work with latest autoconf 2.72 release ( upcoming )
+
+Upstream-Status: Backport [it will be not needed with 1.42 release]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gl/m4/largefile.m4 | 330 ++++++++++++++++++++++++++++++++++++---------
+ 1 file changed, 263 insertions(+), 67 deletions(-)
+
+diff --git a/gl/m4/largefile.m4 b/gl/m4/largefile.m4
+index 3e8b5e3..7fb81b8 100644
+--- a/gl/m4/largefile.m4
++++ b/gl/m4/largefile.m4
+@@ -1,7 +1,7 @@
+ # Enable large files on systems where this is not the default.
+ # Enable support for files on Linux file systems with 64-bit inode numbers.
+
+-# Copyright 1992-1996, 1998-2022 Free Software Foundation, Inc.
++# Copyright 1992-1996, 1998-2023 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+@@ -10,8 +10,9 @@
+ # It does not set _LARGEFILE_SOURCE=1 on HP-UX/ia64 32-bit, although this
+ # setting of _LARGEFILE_SOURCE is needed so that <stdio.h> declares fseeko
+ # and ftello in C++ mode as well.
++# Fixed in Autoconf 2.72, which has AC_SYS_YEAR2038.
+ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+-[
++ m4_ifndef([AC_SYS_YEAR2038], [[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_FUNC_FSEEKO
+ case "$host_os" in
+@@ -20,10 +21,10 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+ [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).])
+ ;;
+ esac
+-])
++ ]])
++)
+
+-# Work around a problem in Autoconf through at least 2.71 on glibc 2.34+
+-# with _TIME_BITS. Also, work around a problem in autoconf <= 2.69:
++# Work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+ m4_version_prereq([2.70], [], [
+@@ -43,33 +44,258 @@ m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES],
+ ])
+ ])# m4_version_prereq 2.70
+
++# Support AC_SYS_YEAR2038, even if Autoconf 2.71 or earlier.
++# This code is taken from Autoconf master.
++m4_ifndef([AC_SYS_YEAR2038], [
++
++# _AC_SYS_YEAR2038_TEST_CODE
++# --------------------------
++# C code used to probe for time_t that can represent time points more
++# than 2**31 - 1 seconds after the epoch. With the usual Unix epoch,
++# these correspond to dates after 2038-01-18 22:14:07 +0000 (Gregorian),
++# hence the name.
++AC_DEFUN([_AC_SYS_YEAR2038_TEST_CODE],
++[[
++ #include <time.h>
++ /* Check that time_t can represent 2**32 - 1 correctly. */
++ #define LARGE_TIME_T \\
++ ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
++ int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
++ && LARGE_TIME_T % 65537 == 0)
++ ? 1 : -1];
++]])
++
++# _AC_SYS_YEAR2038_OPTIONS
++# ------------------------
++# List of known ways to enable support for large time_t. If you change
++# this list you probably also need to change the AS_CASE at the end of
++# _AC_SYS_YEAR2038_PROBE.
++m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
++ ["none needed"] dnl 64-bit and newer 32-bit Unix
++ ["-D_TIME_BITS=64"] dnl glibc 2.34 with some 32-bit ABIs
++ ["-D__MINGW_USE_VC2005_COMPAT"] dnl 32-bit MinGW
++ ["-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"]
++ dnl 32-bit MinGW (misconfiguration)
++))
++
++# _AC_SYS_YEAR2038_PROBE([IF-NOT-DETECTED])
++# -----------------------------------------
++# Subroutine of AC_SYS_YEAR2038. Probe for time_t that can represent
++# time points more than 2**31 - 1 seconds after the epoch (dates after
++# 2038-01-18, see above) and set the cache variable ac_cv_sys_year2038_opts
++# to one of the values in the _AC_SYS_YEAR2038_OPTIONS list, or to
++# "support not detected" if none of them worked. Then, set compilation
++# options and #defines as necessary to enable large time_t support.
++#
++# Note that we do not test whether mktime, localtime, etc. handle
++# large values of time_t correctly, as that would require use of
++# AC_TRY_RUN. Note also that some systems only support large time_t
++# together with large off_t.
++#
++# If support is not detected, the behavior depends on which of the
++# top-level AC_SYS_YEAR2038 macros was used (see below).
++#
++# If you change this macro you may also need to change
++# _AC_SYS_YEAR2038_OPTIONS.
++AC_DEFUN([_AC_SYS_YEAR2038_PROBE],
++[AC_CACHE_CHECK([for $CC option to enable timestamps after Jan 2038],
++ [ac_cv_sys_year2038_opts],
++ [ac_save_CPPFLAGS="$CPPFLAGS"
++ ac_opt_found=no
++ for ac_opt in _AC_SYS_YEAR2038_OPTIONS; do
++ AS_IF([test x"$ac_opt" != x"none needed"],
++ [CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"])
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_YEAR2038_TEST_CODE])],
++ [ac_cv_sys_year2038_opts="$ac_opt"
++ ac_opt_found=yes])
++ test $ac_opt_found = no || break
++ done
++ CPPFLAGS="$ac_save_CPPFLAGS"
++ test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected"])
++
++ac_have_year2038=yes
++AS_CASE([$ac_cv_sys_year2038_opts],
++ ["none needed"], [],
++ ["support not detected"],
++ [ac_have_year2038=no
++ AS_CASE([$enable_year2038],
++ [yes],
++ [# If we're not cross compiling and 'touch' works with a large
++ # timestamp, then we can presume the system supports wider time_t
++ # *somehow* and we just weren't able to detect it. One common
++ # case that we deliberately *don't* probe for is a system that
++ # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers
++ # wide time_t. (It would be inappropriate for us to override an
++ # intentional use of -m32.) Error out, demanding use of
++ # --disable-year2038 if this is intentional.
++ AS_IF([test $cross_compiling = no],
++ [AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null],
++ [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`],
++ [*'Feb 7 2106'* | *'Feb 7 17:10'*],
++ [AC_MSG_FAILURE(m4_text_wrap(
++ [this system appears to support timestamps after January 2038,
++ but no mechanism for enabling wide 'time_t' was detected.
++ Did you mean to build a 64-bit binary? (e.g. 'CC="${CC} -m64"'.)
++ To proceed with 32-bit time_t, configure with '--disable-year2038'.],
++ [], [], [55]))])])])])],
++
++ ["-D_TIME_BITS=64"],
++ [AC_DEFINE([_TIME_BITS], [64],
++ [Number of bits in time_t, on hosts where this is settable.])],
++
++ ["-D__MINGW_USE_VC2005_COMPAT=1"],
++ [AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1],
++ [Define to 1 on platforms where this makes time_t a 64-bit type.])],
+
+-# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
+-# CACHE-VAR,
+-# DESCRIPTION,
+-# PROLOGUE, [FUNCTION-BODY])
+-# --------------------------------------------------------
+-m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE],
+-[AC_CACHE_CHECK([for $1 value needed for large files], [$3],
+-[while :; do
+- m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+- [AC_LANG_PROGRAM([$5], [$6])],
+- [$3=no; break])
+- m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+- [AC_LANG_PROGRAM([#undef $1
+-#define $1 $2
+-$5], [$6])],
+- [$3=$2; break])
+- $3=unknown
+- break
+-done])
+-case $$3 in #(
+- no | unknown) ;;
+- *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);;
+-esac
+-rm -rf conftest*[]dnl
+-])# _AC_SYS_LARGEFILE_MACRO_VALUE
++ ["-U_USE_32_BIT_TIME_T"*],
++ [AC_MSG_FAILURE(m4_text_wrap(
++ [the 'time_t' type is currently forced to be 32-bit.
++ It will stop working after January 2038.
++ Remove _USE_32BIT_TIME_T from the compiler flags.],
++ [], [], [55]))],
++
++ [AC_MSG_ERROR(
++ [internal error: bad value for \$ac_cv_sys_year2038_opts])])
++])
++
++# _AC_SYS_YEAR2038_ENABLE
++# -----------------------
++# Subroutine of AC_SYS_YEAR2038 and _AC_SYS_YEAR2038_OPT_IN.
++# Depending on which of the YEAR2038 macros was used, add either an
++# --enable-year2038, or a --disable-year2038, or no option at all to
++# the configure script. Note that this is expanded very late and
++# therefore there cannot be any code in the AC_ARG_ENABLE. The
++# default value for enable_year2038 is emitted unconditionally
++# because the generated code always looks at this variable.
++m4_define([_AC_SYS_YEAR2038_ENABLE],
++[m4_divert_text([DEFAULTS],
++ m4_provide_if([AC_SYS_YEAR2038],
++ [enable_year2038=yes],
++ [enable_year2038=no]))]dnl
++[AC_ARG_ENABLE([year2038],
++ m4_provide_if([AC_SYS_YEAR2038],
++ [AS_HELP_STRING([--disable-year2038],
++ [do not support timestamps after 2038])],
++ [AS_HELP_STRING([--enable-year2038],
++ [support timestamps after 2038])]))])
++
++# _AC_SYS_YEAR2038_OPT_IN
++# -----------------------
++# If the --enable-year2038 option is given to configure, attempt to
++# detect and activate support for large time_t on 32-bit systems.
++# This macro is automatically invoked by AC_SYS_LARGEFILE when large
++# *file* support is detected. It does not AC_REQUIRE AC_SYS_LARGEFILE
++# to avoid a dependency loop, and is therefore unsafe to expose as a
++# documented macro.
++AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN],
++[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
++ AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
++ AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
++])])
++
++# AC_SYS_YEAR2038
++# ---------------
++# Attempt to detect and activate support for large time_t.
++# On systems where time_t is not always 64 bits, this probe can be
++# skipped by passing the --disable-year2038 option to configure.
++AC_DEFUN([AC_SYS_YEAR2038],
++[AC_REQUIRE([AC_SYS_LARGEFILE])]dnl
++[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
++ AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
++ AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
++])])
++
++# _AC_SYS_LARGEFILE_TEST_CODE
++# ---------------------------
++# C code used to probe for large file support.
++m4_define([_AC_SYS_LARGEFILE_TEST_CODE],
++[@%:@include <sys/types.h>
++ /* Check that off_t can represent 2**63 - 1 correctly.
++ We can't simply define LARGE_OFF_T to be 9223372036854775807,
++ since some C++ compilers masquerading as C compilers
++ incorrectly reject 9223372036854775807. */
++@%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
++ int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
++ && LARGE_OFF_T % 2147483647 == 1)
++ ? 1 : -1]];[]dnl
++])
++
++# _AC_SYS_LARGEFILE_OPTIONS
++# -------------------------
++# List of known ways to enable support for large files. If you change
++# this list you probably also need to change the AS_CASE at the end of
++# _AC_SYS_LARGEFILE_PROBE.
++m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize(
++ ["none needed"] dnl Most current systems
++ ["-D_FILE_OFFSET_BITS=64"] dnl X/Open LFS spec
++ ["-D_LARGE_FILES=1"] dnl AIX (which versions?)
++ ["-n32"] dnl Irix 6.2 w/ SGI compiler
++))
++
++# _AC_SYS_LARGEFILE_PROBE
++# -----------------------
++# Subroutine of AC_SYS_LARGEFILE. Probe for large file support and set
++# the cache variable ac_cv_sys_largefile_opts to one of the values in
++# the _AC_SYS_LARGEFILE_OPTIONS list, or to "support not detected" if
++# none of the options in that list worked. Then, set compilation
++# options and #defines as necessary to enable large file support.
++#
++# If large file support is not detected, the behavior depends on which of
++# the top-level AC_SYS_LARGEFILE macros was used (see below).
++#
++# If you change this macro you may also need to change
++# _AC_SYS_LARGEFILE_OPTIONS.
++AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
++[AC_CACHE_CHECK([for $CC option to enable large file support],
++ [ac_cv_sys_largefile_opts],
++ [ac_save_CC="$CC"
++ ac_opt_found=no
++ for ac_opt in _AC_SYS_LARGEFILE_OPTIONS; do
++ AS_IF([test x"$ac_opt" != x"none needed"],
++ [CC="$ac_save_CC $ac_opt"])
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
++ [ac_cv_sys_largefile_opts="$ac_opt"
++ ac_opt_found=yes])
++ test $ac_opt_found = no || break
++ done
++ CC="$ac_save_CC"
++ test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected"])
++
++ac_have_largefile=yes
++AS_CASE([$ac_cv_sys_largefile_opts],
++ ["none needed"], [],
++ ["support not detected"],
++ [ac_have_largefile=no],
++
++ ["-D_FILE_OFFSET_BITS=64"],
++ [AC_DEFINE([_FILE_OFFSET_BITS], [64],
++ [Number of bits in a file offset, on hosts where this is settable.])],
++
++ ["-D_LARGE_FILES=1"],
++ [AC_DEFINE([_LARGE_FILES], [1],
++ [Define to 1 on platforms where this makes off_t a 64-bit type.])],
++
++ ["-n32"],
++ [CC="$CC -n32"],
++
++ [AC_MSG_ERROR(
++ [internal error: bad value for \$ac_cv_sys_largefile_opts])])
++
++_AC_SYS_YEAR2038_OPT_IN
++])
+
++# _AC_SYS_LARGEFILE_ENABLE
++# ------------------------
++# Subroutine of AC_SYS_LARGEFILE. Note that this
++# is expanded very late and therefore there cannot be any code in the
++# AC_ARG_ENABLE. The default value for enable_largefile is emitted
++# unconditionally because the generated shell code always looks at
++# this variable.
++m4_define([_AC_SYS_LARGEFILE_ENABLE],
++[m4_divert_text([DEFAULTS],
++ enable_largefile=yes)]dnl
++[AC_ARG_ENABLE([largefile],
++ [AS_HELP_STRING([--disable-largefile], [omit support for large files])])])
+
+ # AC_SYS_LARGEFILE
+ # ----------------
+@@ -80,44 +306,14 @@ rm -rf conftest*[]dnl
+ # Additionally, on Linux file systems with 64-bit inodes a file that happens
+ # to have a 64-bit inode number cannot be accessed by 32-bit applications on
+ # Linux x86/x86_64. This can occur with file systems such as XFS and NFS.
++# This macro allows configuration to continue if the system doesn't support
++# large files.
+ AC_DEFUN([AC_SYS_LARGEFILE],
+-[AC_ARG_ENABLE(largefile,
+- [ --disable-largefile omit support for large files])
+-AS_IF([test "$enable_largefile" != no],
+- [AC_CACHE_CHECK([for special C compiler options needed for large files],
+- ac_cv_sys_largefile_CC,
+- [ac_cv_sys_largefile_CC=no
+- if test "$GCC" != yes; then
+- ac_save_CC=$CC
+- while :; do
+- # IRIX 6.2 and later do not support large files by default,
+- # so use the C compiler's -n32 option if that helps.
+- AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])])
+- AC_COMPILE_IFELSE([], [break])
+- CC="$CC -n32"
+- AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break])
+- break
+- done
+- CC=$ac_save_CC
+- rm -f conftest.$ac_ext
+- fi])
+- if test "$ac_cv_sys_largefile_CC" != no; then
+- CC=$CC$ac_cv_sys_largefile_CC
+- fi
+-
+- _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64,
+- ac_cv_sys_file_offset_bits,
+- [Number of bits in a file offset, on hosts where this is settable.],
+- [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+- AS_CASE([$ac_cv_sys_file_offset_bits],
+- [unknown],
+- [_AC_SYS_LARGEFILE_MACRO_VALUE([_LARGE_FILES], [1],
+- [ac_cv_sys_large_files],
+- [Define for large files, on AIX-style hosts.],
+- [_AC_SYS_LARGEFILE_TEST_INCLUDES])],
+- [64],
+- [gl_YEAR2038_BODY([])])])
+-])# AC_SYS_LARGEFILE
++[m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl
++ AS_IF([test "$enable_largefile" != no], [_AC_SYS_LARGEFILE_PROBE])
++ AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE])
++])])
++])# m4_ifndef AC_SYS_YEAR2038
+
+ # Enable large files on systems where this is implemented by Gnulib, not by the
+ # system headers.
+--
+2.40.0
+
diff --git a/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch b/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch
index 0863530f29..46938bccf6 100644
--- a/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch
+++ b/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch
@@ -1,23 +1,23 @@
Upstream-Status: Inappropriate [disable feature]
Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurdd libidn-1.26/doc/Makefile.am libidn-1.26/doc/Makefile.am
---- libidn-1.26/doc/Makefile.am 2012-09-18 11:25:45.000000000 +0300
-+++ libidn-1.26/doc/Makefile.am 2013-02-08 07:41:24.591431462 +0200
-@@ -49,15 +49,9 @@
-
+--- libidn-1.41.orig/doc/Makefile.am
++++ libidn-1.41/doc/Makefile.am
+@@ -73,16 +73,9 @@ BUILT_SOURCES = example.txt example2.txt
+
# Man pages.
-
+
-dist_man_MANS = idn.1 $(gdoc_MANS)
+dist_man_MANS = $(gdoc_MANS)
MAINTAINERCLEANFILES = $(dist_man_MANS)
-
--idn.1: $(top_srcdir)/src/idn.c $(top_srcdir)/src/idn.ggo \
-- $(top_srcdir)/configure.ac
-- $(HELP2MAN) \
+
+-idn.1: $(top_srcdir)/src/idn.c $(top_srcdir)/src/idn.ggo $(top_srcdir)/.version
+- $(MAKE) -C ../lib
+- $(MAKE) -C ../src
+- $(AM_V_GEN)$(HELP2MAN) \
- --name="Internationalized Domain Names command line tool" \
- --output=$@ $(top_builddir)/src/idn$(EXEEXT)
-
# GDOC
-
- GDOC_BIN = $(srcdir)/gdoc
+
+ gdoc_TEXINFOS =
diff --git a/meta-oe/recipes-extended/libidn/libidn_1.36.bb b/meta-oe/recipes-extended/libidn/libidn_1.36.bb
deleted file mode 100644
index 0dea4aff5c..0000000000
--- a/meta-oe/recipes-extended/libidn/libidn_1.36.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Internationalized Domain Name support library"
-DESCRIPTION = "Implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group."
-HOMEPAGE = "http://www.gnu.org/software/libidn/"
-SECTION = "libs"
-LICENSE = "(LGPL-2.1-or-later | LGPL-3.0-only) & GPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=df4be47940a91ee69556f5f71eed4aec \
- file://COPYING.LESSERv2;md5=4fbd65380cdd255951079008b364516c \
- file://COPYING.LESSERv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
- file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504 \
- file://lib/idna.h;endline=21;md5=c381d797e2d7fbdace7c147b1285d076 \
- file://src/idn.c;endline=20;md5=7d88aa87b0494d690bdf7748fe08d536"
-DEPENDS = "virtual/libiconv autoconf-archive"
-
-inherit pkgconfig autotools gettext texinfo gtk-doc
-
-SRC_URI = "${GNU_MIRROR}/libidn/${BPN}-${PV}.tar.gz \
- file://dont-depend-on-help2man.patch \
- file://0001-idn-format-security-warnings.patch \
- "
-
-SRC_URI[md5sum] = "813c7b268d1051ca02c3610986126f38"
-SRC_URI[sha256sum] = "14b67108344d81ba844631640df77c9071d9fb0659b080326ff5424e86b14038"
-
-# command tool is under GPLv3+, while libidn itself is under LGPLv2.1+ or LGPLv3
-# so package command into a separate package
-PACKAGES =+ "idn"
-FILES:idn = "${bindir}/*"
-
-LICENSE:${PN} = "LGPL-2.1-or-later | LGPL-3.0-only"
-LICENSE:idn = "GPL-3.0-or-later"
-
-EXTRA_OECONF = "--disable-csharp"
-
-do_install:append() {
- rm -rf ${D}${datadir}/emacs
-}
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/meta-oe/recipes-extended/libidn/libidn_1.41.bb b/meta-oe/recipes-extended/libidn/libidn_1.41.bb
new file mode 100644
index 0000000000..17ffc6cdc5
--- /dev/null
+++ b/meta-oe/recipes-extended/libidn/libidn_1.41.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Internationalized Domain Name support library"
+DESCRIPTION = "Implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group."
+HOMEPAGE = "http://www.gnu.org/software/libidn/"
+SECTION = "libs"
+LICENSE = "(LGPL-2.1-or-later | LGPL-3.0-only) & GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f95a3dc99fecfa9a0c4e726d4b5d822f \
+ file://COPYING.LESSERv2;md5=4fbd65380cdd255951079008b364516c \
+ file://COPYING.LESSERv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYINGv3;md5=11cc2d3ee574f9d6b7ee797bdce4d423 \
+ file://lib/idna.h;endline=21;md5=176de4fe1d98e59d743d3b12a850e4cb \
+ file://src/idn.c;endline=20;md5=dd17b9093355bf669e2ea108d2defbd0 \
+ "
+
+DEPENDS = "virtual/libiconv autoconf-archive"
+
+inherit pkgconfig autotools gettext texinfo gtk-doc
+
+SRC_URI = "${GNU_MIRROR}/libidn/${BPN}-${PV}.tar.gz \
+ file://dont-depend-on-help2man.patch \
+ file://0001-largefile.m4-Sync-with-latest-gnulib.patch \
+ "
+
+#SRC_URI[md5sum] = "813c7b268d1051ca02c3610986126f38"
+#SRC_URI[sha256sum] = "14b67108344d81ba844631640df77c9071d9fb0659b080326ff5424e86b14038"
+SRC_URI[sha256sum] = "884d706364b81abdd17bee9686d8ff2ae7431c5a14651047c68adf8b31fd8945"
+
+# command tool is under GPLv3+, while libidn itself is under LGPLv2.1+ or LGPLv3
+# so package command into a separate package
+PACKAGES =+ "idn"
+FILES:idn = "${bindir}/*"
+
+LICENSE:${PN} = "LGPL-2.1-or-later | LGPL-3.0-only"
+LICENSE:idn = "GPL-3.0-or-later"
+
+EXTRA_OECONF = "--disable-csharp"
+
+do_install:append() {
+ rm -rf ${D}${datadir}/emacs
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb b/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb
deleted file mode 100644
index daaff00395..0000000000
--- a/meta-oe/recipes-extended/libimobiledevice/libplist_2.2.0.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "A library to handle Apple Property List format whereas it's binary or XML"
-HOMEPAGE = "https://github.com/libimobiledevice/libplist"
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
- file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7"
-
-DEPENDS = "libxml2 glib-2.0 swig python3"
-
-inherit autotools pkgconfig python3native python3targetconfig
-
-SRCREV = "c5a30e9267068436a75b5d00fcbf95cb9c1f4dcd"
-SRC_URI = "git://github.com/libimobiledevice/libplist;protocol=https;branch=master"
-
-S = "${WORKDIR}/git"
-
-CVE_CHECK_IGNORE += "\
- CVE-2017-5834 \
- CVE-2017-5835 \
- CVE-2017-5836 \
-"
-
-do_install:append () {
- if [ -e ${D}${libdir}/python*/site-packages/plist/_plist.so ]; then
- chrpath -d ${D}${libdir}/python*/site-packages/plist/_plist.so
- fi
-}
-
-PACKAGES =+ "${PN}-utils \
- ${PN}++ \
- ${PN}-python"
-
-FILES:${PN} = "${libdir}/libplist-2.0${SOLIBS}"
-FILES:${PN}++ = "${libdir}/libplist++-2.0${SOLIBS}"
-FILES:${PN}-utils = "${bindir}/*"
-FILES:${PN}-python = "${libdir}/python*/site-packages/*"
diff --git a/meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb b/meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb
new file mode 100644
index 0000000000..81a3c26e04
--- /dev/null
+++ b/meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb
@@ -0,0 +1,41 @@
+SUMMARY = "A library to handle Apple Property List format whereas it's binary or XML"
+HOMEPAGE = "https://github.com/libimobiledevice/libplist"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
+ file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7"
+
+DEPENDS = "libxml2 glib-2.0 swig python3"
+
+inherit autotools pkgconfig python3native python3targetconfig
+
+SRCREV = "b8fcc89b74c9128a13b07cc15a0ce25dca0cd97e"
+SRC_URI = "git://github.com/libimobiledevice/libplist;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+CVE_STATUS_GROUPS += "CVE_STATUS_LIBLIST"
+CVE_STATUS_LIBLIST[status] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+CVE_STATUS_LIBLIST = " \
+ CVE-2017-5834 \
+ CVE-2017-5835 \
+ CVE-2017-5836 \
+"
+
+do_configure:prepend() {
+ rm -f ${S}/m4/ax_python_devel.m4
+}
+
+do_install:append () {
+ if [ -e ${D}${PYTHON_SITEPACKAGES_DIR}/plist/_plist.so ]; then
+ chrpath -d ${D}${PYTHON_SITEPACKAGES_DIR}/plist/_plist.so
+ fi
+}
+
+PACKAGES =+ "${PN}-utils \
+ ${PN}++ \
+ ${PN}-python"
+
+FILES:${PN} = "${libdir}/libplist-2.0${SOLIBS}"
+FILES:${PN}++ = "${libdir}/libplist++-2.0${SOLIBS}"
+FILES:${PN}-utils = "${bindir}/*"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*"
diff --git a/meta-oe/recipes-extended/libimobiledevice/libplist_git.bb b/meta-oe/recipes-extended/libimobiledevice/libplist_git.bb
index 82f3e4d0c9..bfd4af053c 100644
--- a/meta-oe/recipes-extended/libimobiledevice/libplist_git.bb
+++ b/meta-oe/recipes-extended/libimobiledevice/libplist_git.bb
@@ -8,22 +8,28 @@ DEPENDS = "libxml2 glib-2.0 swig python3"
inherit autotools pkgconfig python3native python3targetconfig
-PV = "2.2.0+git${SRCPV}"
+PV = "2.3.0+git"
-SRCREV = "db93bae96d64140230ad050061632531644c46ad"
+SRCREV = "2cd858c679d25633077ca78b67182a9b77653816"
SRC_URI = "git://github.com/libimobiledevice/libplist;protocol=https;branch=master"
S = "${WORKDIR}/git"
-CVE_CHECK_IGNORE += "\
+CVE_STATUS_GROUPS += "CVE_STATUS_LIBLIST"
+CVE_STATUS_LIBLIST[status] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+CVE_STATUS_LIBLIST = " \
CVE-2017-5834 \
CVE-2017-5835 \
CVE-2017-5836 \
"
+do_configure:prepend() {
+ rm -f ${S}/m4/ax_python_devel.m4
+}
+
do_install:append () {
- if [ -e ${D}${libdir}/python*/site-packages/plist/_plist.so ]; then
- chrpath -d ${D}${libdir}/python*/site-packages/plist/_plist.so
+ if [ -e ${D}${PYTHON_SITEPACKAGES_DIR}/plist/_plist.so ]; then
+ chrpath -d ${D}${PYTHON_SITEPACKAGES_DIR}/plist/_plist.so
fi
}
@@ -34,4 +40,4 @@ PACKAGES =+ "${PN}-utils \
FILES:${PN} = "${libdir}/libplist-2.0${SOLIBS}"
FILES:${PN}++ = "${libdir}/libplist++-2.0${SOLIBS}"
FILES:${PN}-utils = "${bindir}/*"
-FILES:${PN}-python = "${libdir}/python*/site-packages/*"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*"
diff --git a/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_git.bb b/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_git.bb
index 91a9b4af2c..b9f5c34094 100644
--- a/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_git.bb
+++ b/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_git.bb
@@ -7,7 +7,7 @@ DEPENDS = "udev libusb1 libplist libimobiledevice-glue"
inherit autotools pkgconfig gitpkgv
PKGV = "${GITPKGVTAG}"
-PV = "2.0.2+git${SRCPV}"
+PV = "2.0.2+git"
SRCREV = "36ffb7ab6e2a7e33bd1b56398a88895b7b8c615a"
SRC_URI = "git://github.com/libimobiledevice/libusbmuxd;protocol=https;branch=master"
diff --git a/meta-oe/recipes-extended/libleak/libleak/0001-respect-environment-variables.patch b/meta-oe/recipes-extended/libleak/libleak/0001-respect-environment-variables.patch
index bbdfa3c960..800ddd9507 100644
--- a/meta-oe/recipes-extended/libleak/libleak/0001-respect-environment-variables.patch
+++ b/meta-oe/recipes-extended/libleak/libleak/0001-respect-environment-variables.patch
@@ -5,21 +5,22 @@ Subject: [PATCH] respect environment variables
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/Makefile b/Makefile
-index 1d70f17..c7e726e 100644
--- a/Makefile
+++ b/Makefile
-@@ -1,5 +1,5 @@
+@@ -1,8 +1,8 @@
-CFLAGS = -g -O2 -Wall -fPIC -Ilibwuya
-LDFLAGS = -Llibwuya
+CFLAGS += -g -O2 -Wall -fPIC -Ilibwuya
+LDFLAGS += -Llibwuya
libleak.so: libleak.o
- CFLAGS='-fPIC' make -C libwuya
---
-2.30.1
-
+- CFLAGS='-fPIC' make -C libwuya
++ make -C libwuya
+ $(CC) -shared -o $@ $^ $(LDFLAGS) -lwuya -lpthread -ldl -lbacktrace
+
+ clean:
diff --git a/meta-oe/recipes-extended/libleak/libleak_0.3.6.bb b/meta-oe/recipes-extended/libleak/libleak_0.3.6.bb
new file mode 100644
index 0000000000..e3e4c01acb
--- /dev/null
+++ b/meta-oe/recipes-extended/libleak/libleak_0.3.6.bb
@@ -0,0 +1,37 @@
+# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "libleak detects memory leak by hooking memory functions (e.g. malloc) by LD_PRELOAD"
+HOMEPAGE = "https://github.com/WuBingzheng/libleak"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://README.md;beginline=18;endline=21;md5=de4f705f12cdedbe452b2c3524572b03"
+
+DEPENDS += "libbacktrace"
+
+PE = "1"
+SRCREV = "1c56b0a2ba643db976f589ec04b246e693b6c0ce"
+SRC_URI = "gitsm://github.com/WuBingzheng/libleak;protocol=https;branch=master \
+ file://0001-respect-environment-variables.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+do_configure () {
+ :
+}
+
+do_compile () {
+ oe_runmake
+}
+
+do_install () {
+ install -Dm 0755 ${B}/libleak.so ${D}${libdir}/libleak.so
+}
+
+FILES_SOLIBSDEV = ""
+
+FILES:${PN} += "${libdir}/libleak.so"
+
+# libunwind does not support RISCV yet
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
diff --git a/meta-oe/recipes-extended/libleak/libleak_git.bb b/meta-oe/recipes-extended/libleak/libleak_git.bb
deleted file mode 100644
index a83a11c684..0000000000
--- a/meta-oe/recipes-extended/libleak/libleak_git.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "libleak detects memory leak by hooking memory functions (e.g. malloc) by LD_PRELOAD"
-HOMEPAGE = "https://github.com/WuBingzheng/libleak"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://README.md;beginline=18;endline=21;md5=de4f705f12cdedbe452b2c3524572b03"
-
-DEPENDS += "libbacktrace"
-
-SRC_URI = "gitsm://github.com/WuBingzheng/libleak;protocol=https;branch=master \
- file://0001-respect-environment-variables.patch \
- "
-
-PV = "1.0+git${SRCPV}"
-SRCREV = "ea2bb608ae25701692269a37d39d77e966b887ac"
-
-S = "${WORKDIR}/git"
-
-do_configure () {
- :
-}
-
-do_compile () {
- oe_runmake
-}
-
-do_install () {
- install -Dm 0755 ${B}/libleak.so ${D}${libdir}/libleak.so
-}
-
-FILES_SOLIBSDEV = ""
-
-FILES:${PN} += "${libdir}/libleak.so"
-
-# libunwind does not support RISCV yet
-COMPATIBLE_HOST:riscv64 = "null"
-COMPATIBLE_HOST:riscv32 = "null"
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch
index ea415dd8ba..2533b3a008 100644
--- a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch
@@ -1,4 +1,4 @@
-From 67843dabe1177840697839b916fd899218893ec7 Mon Sep 17 00:00:00 2001
+From 8e370a2f35d0c3472ddc9068fab19d0077434c61 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Thu, 19 Jul 2018 00:25:23 -0700
Subject: [PATCH] Makefile.in: add DESTDIR
@@ -29,7 +29,7 @@ Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index 36a6d23..1e4130e 100644
+index 9c74b35..8cbda1d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -12,11 +12,11 @@ CC = @CC@
@@ -50,5 +50,5 @@ index 36a6d23..1e4130e 100644
MAILGROUP = @MAILGROUP@
--
-2.17.1
+2.25.1
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-fix-install-failure-on-host-without-ldco.patch b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-fix-install-failure-on-host-without-ldco.patch
new file mode 100644
index 0000000000..1fd5c827ba
--- /dev/null
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-fix-install-failure-on-host-without-ldco.patch
@@ -0,0 +1,63 @@
+From 8b3a5916fff4004b5b2f1e8a1d3a051346ba3901 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 10 Mar 2023 08:59:39 +0800
+Subject: [PATCH] Makefile.in: fix install failure on host without ldconfig
+
+fix syntax error when ldconfig is not installed on host
+
+when ldconfig is not installed on the build host, install will failed with
+error:
+ln -sf nfslock.so.0.1 /mnt/tmp-glibc/work/core2-64-wrs-linux/liblockfile/1.14-r0/image/usr/lib64/nfslock.so.0
+install -m 644 lockfile.h maillock.h /mnt/tmp-glibc/work/core2-64-wrs-linux/liblockfile/1.14-r0/image/usr/include
+if test "/mnt/tmp-glibc/work/core2-64-wrs-linux/liblockfile/1.14-r0/image" = ""; then ; fi
+if [ "mail" != "" ]; then\
+ install -g mail -m 2755 dotlockfile /mnt/tmp-glibc/work/core2-64-wrs-linux/liblockfile/1.14-r0/image/usr/bin;\
+ else \
+ install -g root -m 755 dotlockfile /mnt/tmp-glibc/work/core2-64-wrs-linux/liblockfile/1.14-r0/image/usr/bin; \
+ fi
+/bin/sh: -c: line 1: syntax error near unexpected token `;'
+/bin/sh: -c: line 1: `if test "/mnt/tmp-glibc/work/core2-64-wrs-linux/liblockfile/1.14-r0/image" = ""; then ; fi'
+
+Upstream-Status: Submitted [https://github.com/miquels/liblockfile/pull/20]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ Makefile.in | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index e02d75e..5fc5b5a 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -9,6 +9,10 @@ NFSVER = 0.1
+ CFLAGS = @CFLAGS@ -I.
+ LDFLAGS = @LDFLAGS@
+ CC = @CC@
++LDCONFIG = @LDCONFIG@
++ifeq ($(LDCONFIG),)
++ LDCONFIG = ":"
++endif
+
+ prefix = $(DESTDIR)@prefix@
+ exec_prefix = @exec_prefix@
+@@ -69,7 +73,7 @@ install_shared: shared install_static install_common
+ $(libdir)/liblockfile.so.$(SOVER)
+ ln -s liblockfile.so.$(SOVER) $(libdir)/liblockfile.so.$(MAJOR)
+ ln -s liblockfile.so.$(SOVER) $(libdir)/liblockfile.so
+- if test "$(DESTDIR)" = ""; then @LDCONFIG@; fi
++ if test "$(DESTDIR)" = ""; then $(LDCONFIG); fi
+
+ install_common:
+ install -d -m 755 -g root -p $(includedir)
+@@ -90,7 +94,7 @@ install_nfslib: nfslib
+ install -m 755 nfslock.so.$(NFSVER) $(nfslockdir)
+ ln -sf nfslock.so.$(NFSVER) $(libdir)/nfslock.so
+ ln -sf nfslock.so.$(NFSVER) $(libdir)/nfslock.so.0
+- if test "$(DESTDIR)" = ""; then @LDCONFIG@; fi
++ if test "$(DESTDIR)" = ""; then $(LDCONFIG); fi
+
+ test: test-stamp
+ @:
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch
index a6b297b592..f99ac2bf7a 100644
--- a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch
@@ -1,4 +1,4 @@
-From 631d46efff2a6d8970e202ba5422ebedd17a8d2f Mon Sep 17 00:00:00 2001
+From 0f34d1d91d641c3d5c5bb2eb11bd6eec7cfaf738 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Thu, 19 Jul 2018 01:00:10 -0700
Subject: [PATCH] Makefile.in: install nfslock.so and nfslock.so.0
@@ -14,10 +14,10 @@ Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
1 file changed, 2 insertions(+)
diff --git a/Makefile.in b/Makefile.in
-index 1e4130e..0f1b506 100644
+index 8cbda1d..3a74811 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -77,6 +77,8 @@ install_common:
+@@ -88,6 +88,8 @@ install_common:
install_nfslib: nfslib
install -d -m 755 -g root -p $(nfslockdir)
install -m 755 nfslock.so.$(NFSVER) $(nfslockdir)
@@ -25,7 +25,7 @@ index 1e4130e..0f1b506 100644
+ ln -sf nfslock.so.$(NFSVER) $(libdir)/nfslock.so.0
if test "$(DESTDIR)" = ""; then @LDCONFIG@; fi
- clean:
+ test: test-stamp
--
-2.17.1
+2.25.1
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-redefine-LOCKPROG.patch b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-redefine-LOCKPROG.patch
index 35549ff2d3..c387db123f 100644
--- a/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-redefine-LOCKPROG.patch
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-redefine-LOCKPROG.patch
@@ -1,4 +1,4 @@
-From 9beb650712d448ad9c0899de9d98e9b623f9c249 Mon Sep 17 00:00:00 2001
+From 05227e74b732f13ed5a2a98232676f98bba028e6 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Fri, 12 Aug 2022 11:18:15 +0800
Subject: [PATCH] Makefile.in: redefine LOCKPROG
@@ -11,23 +11,41 @@ And it should be "/usr/bin/dotlockfile" on the target.
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+
+Update patch for 1.17, also redefine LOCKPROG in other lines
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ Makefile.in | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index 6e53179..bfa0acb 100644
+index e447cb2..e02d75e 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -42,7 +42,7 @@ dotlockfile: dotlockfile.o xlockfile.o
- $(CC) $(LDFLAGS) -o dotlockfile dotlockfile.o xlockfile.o
+@@ -44,19 +44,19 @@ dotlockfile: dotlockfile.o dlockfile.o
+ $(CC) $(LDFLAGS) -o dotlockfile dotlockfile.o dlockfile.o
+
+ dotlockfile.o: dotlockfile.c
+- $(CC) $(CFLAGS) -DLOCKPROG=\"$(bindir)/dotlockfile\" \
++ $(CC) $(CFLAGS) -DLOCKPROG=\"/usr/bin/dotlockfile\" \
+ -c dotlockfile.c
lockfile.o: lockfile.c
- $(CC) $(CFLAGS) -DLIB -DLOCKPROG=\"$(bindir)/dotlockfile\" \
+ $(CC) $(CFLAGS) -DLIB -DLOCKPROG=\"/usr/bin/dotlockfile\" \
- -c lockfile.c
+ -DSTATIC -c lockfile.c
+
+ solockfile.o: lockfile.c
+- $(CC) $(CFLAGS) -DLIB -DLOCKPROG=\"$(bindir)/dotlockfile\" \
++ $(CC) $(CFLAGS) -DLIB -DLOCKPROG=\"/usr/bin/dotlockfile\" \
+ -c lockfile.c -o solockfile.o
+
+ dlockfile.o: lockfile.c
+- $(CC) $(CFLAGS) -DLOCKPROG=\"$(bindir)/dotlockfile\" \
++ $(CC) $(CFLAGS) -DLOCKPROG=\"/usr/bin/dotlockfile\" \
+ -c lockfile.c -o dlockfile.o
- xlockfile.o: lockfile.c
+ install_static: static install_common
--
2.25.1
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile/configure.patch b/meta-oe/recipes-extended/liblockfile/liblockfile/configure.patch
index ea13e11d25..2bdf96e639 100644
--- a/meta-oe/recipes-extended/liblockfile/liblockfile/configure.patch
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/configure.patch
@@ -1,10 +1,19 @@
+From fd3fce8c1a3d0c70a0ffd461fbbe7e2ef71dd3a7 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 7 Mar 2023 11:05:45 +0800
+Subject: [PATCH] Update patch for 1.17
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+Upstream-Status: Pending
---- liblockfile-1.05/./configure.in~configure
-+++ liblockfile-1.05/./configure.in
+ configure.ac | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index df26cee..76e9165 100644
+--- a/configure.ac
++++ b/configure.ac
@@ -1,4 +1,5 @@
-AC_INIT(lockfile.c)
+AC_INIT
@@ -12,7 +21,7 @@
AC_CONFIG_HEADER(autoconf.h)
AC_REVISION($Revision: 1.0 $)dnl
-@@ -111,7 +112,8 @@
+@@ -111,7 +112,8 @@ AC_SUBST(TARGETS)
AC_SUBST(INSTALL_TARGETS)
AC_SUBST(nfslockdir)
@@ -23,3 +32,6 @@
-)
+])
+AC_OUTPUT
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch b/meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch
index da25033393..046cd8e693 100644
--- a/meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch
@@ -1,4 +1,4 @@
-From 363eb1aaeca914c7d36a2cdaf1417e4f87af4c22 Mon Sep 17 00:00:00 2001
+From 079d04c187800e22f18723c74e41c4e46eef67f8 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Thu, 19 Jul 2018 01:12:47 -0700
Subject: [PATCH] Makefile.in: define dotlockfile.1 installed to man
@@ -16,10 +16,10 @@ Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
-index 0f1b506..6e53179 100644
+index 3a74811..e447cb2 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -71,7 +71,7 @@ install_common:
+@@ -82,7 +82,7 @@ install_common:
else \
install -g root -m 755 dotlockfile $(bindir); \
fi
@@ -29,5 +29,5 @@ index 0f1b506..6e53179 100644
install_nfslib: nfslib
--
-2.17.1
+2.25.1
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb b/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb
deleted file mode 100644
index 2604e14f07..0000000000
--- a/meta-oe/recipes-extended/liblockfile/liblockfile_1.14.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "File locking library"
-HOMEPAGE = "http://packages.qa.debian.org/libl/liblockfile.html"
-SECTION = "libs"
-LICENSE = "LGPL-2.0-or-later & GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f4ba6ad04fcb05cc30a4cfa5062c55a3"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.14.orig.tar.gz \
- ${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.14-1.debian.tar.bz2;name=1.14-1 \
- file://configure.patch \
- file://0001-Makefile.in-add-DESTDIR.patch \
- file://0001-Makefile.in-install-nfslock-libs.patch \
- file://liblockfile-fix-install-so-to-man-dir.patch \
- file://0001-Makefile.in-redefine-LOCKPROG.patch \
-"
-
-SRC_URI[md5sum] = "420c056ba0cc4d1477e402f70ba2f5eb"
-SRC_URI[sha256sum] = "ab40d4a3e8cbc204f7e87fea637a4e4ddf9a1149aaa0a723a4267febd0b1d060"
-
-SRC_URI[1.14-1.md5sum] = "f9a44928c3477d218c56252712ebc479"
-SRC_URI[1.14-1.sha256sum] = "73f9be769e602149391588c28f0f4f5cda131e30fb94c0777dbb23d811ac21ff"
-
-S = "${WORKDIR}/${BPN}"
-
-inherit autotools-brokensep
-
-# set default mailgroup to mail
-# --with-libnfslock specify where to install nfslock.so.NVER
-EXTRA_OECONF = "--enable-shared \
- --with-mailgroup=mail \
- --with-libnfslock=${libdir} \
-"
-
-# Makefile using DESTDIR as the change in e35f9eabcbba224ecc70b145d5d2a2d81064c195
-# at https://github.com/miquels/liblockfile.git
-EXTRA_OEMAKE += "DESTDIR=${D}"
-
-FILES:${PN} += "${libdir}/nfslock.so.*"
-FILES:${PN}-dev += "${libdir}/nfslock.so"
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile_1.17.bb b/meta-oe/recipes-extended/liblockfile/liblockfile_1.17.bb
new file mode 100644
index 0000000000..b094337e90
--- /dev/null
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile_1.17.bb
@@ -0,0 +1,36 @@
+SUMMARY = "File locking library"
+HOMEPAGE = "http://packages.qa.debian.org/libl/liblockfile.html"
+SECTION = "libs"
+LICENSE = "LGPL-2.0-or-later & GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f4ba6ad04fcb05cc30a4cfa5062c55a3"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.17.orig.tar.gz \
+ ${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.17-1.debian.tar.bz2;name=1.17-1 \
+ file://configure.patch \
+ file://0001-Makefile.in-add-DESTDIR.patch \
+ file://0001-Makefile.in-install-nfslock-libs.patch \
+ file://liblockfile-fix-install-so-to-man-dir.patch \
+ file://0001-Makefile.in-redefine-LOCKPROG.patch \
+ file://0001-Makefile.in-fix-install-failure-on-host-without-ldco.patch \
+"
+
+SRC_URI[sha256sum] = "6e937f3650afab4aac198f348b89b1ca42edceb17fb6bb0918f642143ccfd15e"
+SRC_URI[1.17-1.sha256sum] = "e3657c0e3facfeccb58900c0b48d56cd68ad5f9f24d1b4c6eaa69c26490fb673"
+
+S = "${WORKDIR}/${BP}"
+
+inherit autotools-brokensep
+
+# set default mailgroup to mail
+# --with-libnfslock specify where to install nfslock.so.NVER
+EXTRA_OECONF = "--enable-shared \
+ --with-mailgroup=mail \
+ --with-libnfslock=${libdir} \
+"
+
+# Makefile using DESTDIR as the change in e35f9eabcbba224ecc70b145d5d2a2d81064c195
+# at https://github.com/miquels/liblockfile.git
+EXTRA_OEMAKE += "DESTDIR=${D}"
+
+FILES:${PN} += "${libdir}/nfslock.so.*"
+FILES:${PN}-dev += "${libdir}/nfslock.so"
diff --git a/meta-oe/recipes-extended/liblognorm/liblognorm.inc b/meta-oe/recipes-extended/liblognorm/liblognorm.inc
deleted file mode 100644
index 5a6cda6ca4..0000000000
--- a/meta-oe/recipes-extended/liblognorm/liblognorm.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Fast samples-based log normalization library"
-DESCRIPTION = "Briefly described, liblognorm is a tool to normalize log data."
-
-HOMEPAGE = "http://www.liblognorm.com"
-SECTION = "base"
-
-LICENSE = "LGPL-2.1-or-later"
-
-SRC_URI = "http://www.liblognorm.com/files/download/${BPN}-${PV}.tar.gz\
-"
-
-inherit autotools pkgconfig
-
-DEPENDS += "libee libestr json-c"
-
-PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
-PACKAGECONFIG[docs] = "--enable-docs,--disable-docs,sphinx,"
diff --git a/meta-oe/recipes-extended/liblognorm/liblognorm/0001-Add-asprintf-to-autoconf-function-check-macro.patch b/meta-oe/recipes-extended/liblognorm/liblognorm/0001-Add-asprintf-to-autoconf-function-check-macro.patch
new file mode 100644
index 0000000000..abb09bc648
--- /dev/null
+++ b/meta-oe/recipes-extended/liblognorm/liblognorm/0001-Add-asprintf-to-autoconf-function-check-macro.patch
@@ -0,0 +1,28 @@
+From b8c65236cd6cd68b57004479006c683455680a82 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Sun, 15 Oct 2023 12:34:52 +0100
+Subject: [PATCH] Add asprintf to autoconf function check macro
+
+Upstream-Status: Submitted [https://github.com/rsyslog/liblognorm/pull/376]
+Signed-off-by: Alfred Wingate <parona@protonmail.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index b6f92f1..b057550 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,7 +55,7 @@ AC_TYPE_SIZE_T
+ AC_FUNC_SELECT_ARGTYPES
+ AC_TYPE_SIGNAL
+ AC_FUNC_STRERROR_R
+-AC_CHECK_FUNCS([strdup strndup strtok_r])
++AC_CHECK_FUNCS([asprintf strdup strndup strtok_r])
+
+ LIBLOGNORM_CFLAGS="-I\$(top_srcdir)/src"
+ LIBLOGNORM_LIBS="\$(top_builddir)/src/liblognorm.la"
+--
+2.43.0
+
diff --git a/meta-oe/recipes-extended/liblognorm/liblognorm_1.0.1.bb b/meta-oe/recipes-extended/liblognorm/liblognorm_1.0.1.bb
deleted file mode 100644
index 5d89e3540d..0000000000
--- a/meta-oe/recipes-extended/liblognorm/liblognorm_1.0.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI[md5sum] = "7b9a826542af9686127110deab09d7a1"
-SRC_URI[sha256sum] = "1f6cdfd901a8f6a97a3cb74bc6107c6746b3e9381f7889e4cd866a488e0c59a5"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ca016db57e008528dace002188c73dad"
diff --git a/meta-oe/recipes-extended/liblognorm/liblognorm_2.0.6.bb b/meta-oe/recipes-extended/liblognorm/liblognorm_2.0.6.bb
new file mode 100644
index 0000000000..0cc128c8c4
--- /dev/null
+++ b/meta-oe/recipes-extended/liblognorm/liblognorm_2.0.6.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Liblognorm is a fast-samples based normalization library."
+DESCRIPTION = "Briefly described, liblognorm is a tool to normalize log data."
+HOMEPAGE = "http://www.liblognorm.com"
+SECTION = "base"
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ca016db57e008528dace002188c73dad"
+
+DEPENDS = "libfastjson libestr"
+
+SRC_URI = "git://github.com/rsyslog/liblognorm;branch=master;protocol=https \
+ file://0001-Add-asprintf-to-autoconf-function-check-macro.patch \
+ "
+SRCREV = "46c6ee4c8e5f827893e485a4ef1aff04ea881273"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "testbench tools"
+PACKAGECONFIG[regexp] = "--enable-regexp,--disable-regexp,pcre2,"
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
+PACKAGECONFIG[advstats] = "--enable-advanced-stats,--disable-advanced-stats,,"
+PACKAGECONFIG[docs] = "--enable-docs,--disable-docs,sphinx,"
+PACKAGECONFIG[testbench] = "--enable-testbench,--disable-testbench,,"
+PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,,"
+PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,,"
diff --git a/meta-oe/recipes-extended/libmodbus/libmodbus.inc b/meta-oe/recipes-extended/libmodbus/libmodbus.inc
deleted file mode 100644
index 0857cc455b..0000000000
--- a/meta-oe/recipes-extended/libmodbus/libmodbus.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "A Modbus library"
-DESCRIPTION = "libmodbus is a C library designed to provide a fast and robust \
-implementation of the Modbus protocol. It runs on Linux, Mac OS X, FreeBSD, \
-QNX and Windows."
-HOMEPAGE = "http://www.libmodbus.org/"
-SECTION = "libs"
-
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI = "http://libmodbus.org/releases/${BP}.tar.gz"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[documentation] = "--with-documentation,--without-documentation,asciidoc-native xmlto-native"
-
-inherit autotools pkgconfig
diff --git a/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-float-endianness-issue-on-big-endian-arch.patch b/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-float-endianness-issue-on-big-endian-arch.patch
deleted file mode 100644
index 5372a23b6a..0000000000
--- a/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-float-endianness-issue-on-big-endian-arch.patch
+++ /dev/null
@@ -1,314 +0,0 @@
-From: =?utf-8?b?IlNaIExpbiAo5p6X5LiK5pm6KSI=?= <szlin@debian.org>
-Date: Wed, 19 Dec 2018 10:24:47 +0800
-Subject: Fix float endianness issue on big endian arch
-
-It converts float values depending on what order they come in.
-
-This patch was modified from rm5248 [1]
-
-[1] https://github.com/synexxus/libmodbus/commit/a511768e7fe7ec52d7bae1d9ae04e33f87a59627
-
----
- src/modbus-data.c | 110 ++++++++++++++++++++++++++++++++++++++---------
- tests/unit-test-client.c | 22 ++++++----
- tests/unit-test.h.in | 41 ++++++++++++++++--
- 3 files changed, 141 insertions(+), 32 deletions(-)
-
-diff --git a/src/modbus-data.c b/src/modbus-data.c
-index 902b8c6..7a744fa 100644
---- a/src/modbus-data.c
-+++ b/src/modbus-data.c
-@@ -119,9 +119,18 @@ float modbus_get_float_abcd(const uint16_t *src)
- {
- float f;
- uint32_t i;
-+ uint8_t a, b, c, d;
-
-- i = ntohl(((uint32_t)src[0] << 16) + src[1]);
-- memcpy(&f, &i, sizeof(float));
-+ a = (src[0] >> 8) & 0xFF;
-+ b = (src[0] >> 0) & 0xFF;
-+ c = (src[1] >> 8) & 0xFF;
-+ d = (src[1] >> 0) & 0xFF;
-+
-+ i = (a << 24) |
-+ (b << 16) |
-+ (c << 8) |
-+ (d << 0);
-+ memcpy(&f, &i, 4);
-
- return f;
- }
-@@ -131,9 +140,18 @@ float modbus_get_float_dcba(const uint16_t *src)
- {
- float f;
- uint32_t i;
-+ uint8_t a, b, c, d;
-
-- i = ntohl(bswap_32((((uint32_t)src[0]) << 16) + src[1]));
-- memcpy(&f, &i, sizeof(float));
-+ a = (src[0] >> 8) & 0xFF;
-+ b = (src[0] >> 0) & 0xFF;
-+ c = (src[1] >> 8) & 0xFF;
-+ d = (src[1] >> 0) & 0xFF;
-+
-+ i = (d << 24) |
-+ (c << 16) |
-+ (b << 8) |
-+ (a << 0);
-+ memcpy(&f, &i, 4);
-
- return f;
- }
-@@ -143,9 +161,18 @@ float modbus_get_float_badc(const uint16_t *src)
- {
- float f;
- uint32_t i;
-+ uint8_t a, b, c, d;
-
-- i = ntohl((uint32_t)(bswap_16(src[0]) << 16) + bswap_16(src[1]));
-- memcpy(&f, &i, sizeof(float));
-+ a = (src[0] >> 8) & 0xFF;
-+ b = (src[0] >> 0) & 0xFF;
-+ c = (src[1] >> 8) & 0xFF;
-+ d = (src[1] >> 0) & 0xFF;
-+
-+ i = (b << 24) |
-+ (a << 16) |
-+ (d << 8) |
-+ (c << 0);
-+ memcpy(&f, &i, 4);
-
- return f;
- }
-@@ -155,9 +182,18 @@ float modbus_get_float_cdab(const uint16_t *src)
- {
- float f;
- uint32_t i;
-+ uint8_t a, b, c, d;
-
-- i = ntohl((((uint32_t)src[1]) << 16) + src[0]);
-- memcpy(&f, &i, sizeof(float));
-+ a = (src[0] >> 8) & 0xFF;
-+ b = (src[0] >> 0) & 0xFF;
-+ c = (src[1] >> 8) & 0xFF;
-+ d = (src[1] >> 0) & 0xFF;
-+
-+ i = (c << 24) |
-+ (d << 16) |
-+ (a << 8) |
-+ (b << 0);
-+ memcpy(&f, &i, 4);
-
- return f;
- }
-@@ -172,50 +208,84 @@ float modbus_get_float(const uint16_t *src)
- memcpy(&f, &i, sizeof(float));
-
- return f;
-+
- }
-
- /* Set a float to 4 bytes for Modbus w/o any conversion (ABCD) */
- void modbus_set_float_abcd(float f, uint16_t *dest)
- {
- uint32_t i;
-+ uint8_t *out = (uint8_t*) dest;
-+ uint8_t a, b, c, d;
-
- memcpy(&i, &f, sizeof(uint32_t));
-- i = htonl(i);
-- dest[0] = (uint16_t)(i >> 16);
-- dest[1] = (uint16_t)i;
-+ a = (i >> 24) & 0xFF;
-+ b = (i >> 16) & 0xFF;
-+ c = (i >> 8) & 0xFF;
-+ d = (i >> 0) & 0xFF;
-+
-+ out[0] = a;
-+ out[1] = b;
-+ out[2] = c;
-+ out[3] = d;
- }
-
- /* Set a float to 4 bytes for Modbus with byte and word swap conversion (DCBA) */
- void modbus_set_float_dcba(float f, uint16_t *dest)
- {
- uint32_t i;
-+ uint8_t *out = (uint8_t*) dest;
-+ uint8_t a, b, c, d;
-
- memcpy(&i, &f, sizeof(uint32_t));
-- i = bswap_32(htonl(i));
-- dest[0] = (uint16_t)(i >> 16);
-- dest[1] = (uint16_t)i;
-+ a = (i >> 24) & 0xFF;
-+ b = (i >> 16) & 0xFF;
-+ c = (i >> 8) & 0xFF;
-+ d = (i >> 0) & 0xFF;
-+
-+ out[0] = d;
-+ out[1] = c;
-+ out[2] = b;
-+ out[3] = a;
-+
- }
-
- /* Set a float to 4 bytes for Modbus with byte swap conversion (BADC) */
- void modbus_set_float_badc(float f, uint16_t *dest)
- {
- uint32_t i;
-+ uint8_t *out = (uint8_t*) dest;
-+ uint8_t a, b, c, d;
-
- memcpy(&i, &f, sizeof(uint32_t));
-- i = htonl(i);
-- dest[0] = (uint16_t)bswap_16(i >> 16);
-- dest[1] = (uint16_t)bswap_16(i & 0xFFFF);
-+ a = (i >> 24) & 0xFF;
-+ b = (i >> 16) & 0xFF;
-+ c = (i >> 8) & 0xFF;
-+ d = (i >> 0) & 0xFF;
-+
-+ out[0] = b;
-+ out[1] = a;
-+ out[2] = d;
-+ out[3] = c;
- }
-
- /* Set a float to 4 bytes for Modbus with word swap conversion (CDAB) */
- void modbus_set_float_cdab(float f, uint16_t *dest)
- {
- uint32_t i;
-+ uint8_t *out = (uint8_t*) dest;
-+ uint8_t a, b, c, d;
-
- memcpy(&i, &f, sizeof(uint32_t));
-- i = htonl(i);
-- dest[0] = (uint16_t)i;
-- dest[1] = (uint16_t)(i >> 16);
-+ a = (i >> 24) & 0xFF;
-+ b = (i >> 16) & 0xFF;
-+ c = (i >> 8) & 0xFF;
-+ d = (i >> 0) & 0xFF;
-+
-+ out[0] = c;
-+ out[1] = d;
-+ out[2] = a;
-+ out[3] = b;
- }
-
- /* DEPRECATED - Set a float to 4 bytes in a sort of Modbus format! */
-diff --git a/tests/unit-test-client.c b/tests/unit-test-client.c
-index 3e315f4..3fccf3e 100644
---- a/tests/unit-test-client.c
-+++ b/tests/unit-test-client.c
-@@ -27,6 +27,7 @@ int send_crafted_request(modbus_t *ctx, int function,
- uint16_t max_value, uint16_t bytes,
- int backend_length, int backend_offset);
- int equal_dword(uint16_t *tab_reg, const uint32_t value);
-+int is_memory_equal(const void *s1, const void *s2, size_t size);
-
- #define BUG_REPORT(_cond, _format, _args ...) \
- printf("\nLine %d: assertion error for '%s': " _format "\n", __LINE__, # _cond, ## _args)
-@@ -40,6 +41,11 @@ int equal_dword(uint16_t *tab_reg, const uint32_t value);
- } \
- };
-
-+int is_memory_equal(const void *s1, const void *s2, size_t size)
-+{
-+ return (memcmp(s1, s2, size) == 0);
-+}
-+
- int equal_dword(uint16_t *tab_reg, const uint32_t value) {
- return ((tab_reg[0] == (value >> 16)) && (tab_reg[1] == (value & 0xFFFF)));
- }
-@@ -286,26 +292,26 @@ int main(int argc, char *argv[])
- /** FLOAT **/
- printf("1/4 Set/get float ABCD: ");
- modbus_set_float_abcd(UT_REAL, tab_rp_registers);
-- ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_ABCD), "FAILED Set float ABCD");
-- real = modbus_get_float_abcd(tab_rp_registers);
-+ ASSERT_TRUE(is_memory_equal(tab_rp_registers, UT_IREAL_ABCD_SET, 4), "FAILED Set float ABCD");
-+ real = modbus_get_float_abcd(UT_IREAL_ABCD_GET);
- ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL);
-
- printf("2/4 Set/get float DCBA: ");
- modbus_set_float_dcba(UT_REAL, tab_rp_registers);
-- ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_DCBA), "FAILED Set float DCBA");
-- real = modbus_get_float_dcba(tab_rp_registers);
-+ ASSERT_TRUE(is_memory_equal(tab_rp_registers, UT_IREAL_DCBA_SET, 4), "FAILED Set float DCBA");
-+ real = modbus_get_float_dcba(UT_IREAL_DCBA_GET);
- ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL);
-
- printf("3/4 Set/get float BADC: ");
- modbus_set_float_badc(UT_REAL, tab_rp_registers);
-- ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_BADC), "FAILED Set float BADC");
-- real = modbus_get_float_badc(tab_rp_registers);
-+ ASSERT_TRUE(is_memory_equal(tab_rp_registers, UT_IREAL_BADC_SET, 4), "FAILED Set float BADC");
-+ real = modbus_get_float_badc(UT_IREAL_BADC_GET);
- ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL);
-
- printf("4/4 Set/get float CDAB: ");
- modbus_set_float_cdab(UT_REAL, tab_rp_registers);
-- ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_CDAB), "FAILED Set float CDAB");
-- real = modbus_get_float_cdab(tab_rp_registers);
-+ ASSERT_TRUE(is_memory_equal(tab_rp_registers, UT_IREAL_CDAB_SET, 4), "FAILED Set float CDAB");
-+ real = modbus_get_float_cdab(UT_IREAL_CDAB_GET);
- ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL);
-
- printf("\nAt this point, error messages doesn't mean the test has failed\n");
-diff --git a/tests/unit-test.h.in b/tests/unit-test.h.in
-index dca826f..4ffa254 100644
---- a/tests/unit-test.h.in
-+++ b/tests/unit-test.h.in
-@@ -56,12 +56,45 @@ const uint16_t UT_INPUT_REGISTERS_ADDRESS = 0x108;
- const uint16_t UT_INPUT_REGISTERS_NB = 0x1;
- const uint16_t UT_INPUT_REGISTERS_TAB[] = { 0x000A };
-
-+/*
-+ * This float value is 0x47F12000 (in big-endian format).
-+ * In Little-endian(intel) format, it will be stored in memory as follows:
-+ * 0x00 0x20 0xF1 0x47
-+ *
-+ * You can check this with the following code:
-+
-+ float fl = UT_REAL;
-+ uint8_t *inmem = (uint8_t*)&fl;
-+ int x;
-+ for(x = 0; x < 4; x++){
-+ printf("0x%02X ", inmem[ x ]);
-+ }
-+ printf("\n");
-+ */
- const float UT_REAL = 123456.00;
-
--const uint32_t UT_IREAL_ABCD = 0x0020F147;
--const uint32_t UT_IREAL_DCBA = 0x47F12000;
--const uint32_t UT_IREAL_BADC = 0x200047F1;
--const uint32_t UT_IREAL_CDAB = 0xF1470020;
-+/*
-+ * The following arrays assume that 'A' is the MSB,
-+ * and 'D' is the LSB.
-+ * Thus, the following is the case:
-+ * A = 0x47
-+ * B = 0xF1
-+ * C = 0x20
-+ * D = 0x00
-+ *
-+ * There are two sets of arrays: one to test that the setting is correct,
-+ * the other to test that the getting is correct.
-+ * Note that the 'get' values must be constants in processor-endianness,
-+ * as libmodbus will convert all words to processor-endianness as they come in.
-+ */
-+const uint8_t UT_IREAL_ABCD_SET[] = {0x47, 0xF1, 0x20, 0x00};
-+const uint16_t UT_IREAL_ABCD_GET[] = {0x47F1, 0x2000};
-+const uint8_t UT_IREAL_DCBA_SET[] = {0x00, 0x20, 0xF1, 0x47};
-+const uint16_t UT_IREAL_DCBA_GET[] = {0x0020, 0xF147};
-+const uint8_t UT_IREAL_BADC_SET[] = {0xF1, 0x47, 0x00, 0x20};
-+const uint16_t UT_IREAL_BADC_GET[] = {0xF147, 0x0020};
-+const uint8_t UT_IREAL_CDAB_SET[] = {0x20, 0x00, 0x47, 0xF1};
-+const uint16_t UT_IREAL_CDAB_GET[] = {0x2000, 0x47F1};
-
- /* const uint32_t UT_IREAL_ABCD = 0x47F12000);
- const uint32_t UT_IREAL_DCBA = 0x0020F147;
diff --git a/meta-oe/recipes-extended/libmodbus/libmodbus_3.0.6.bb b/meta-oe/recipes-extended/libmodbus/libmodbus_3.0.6.bb
deleted file mode 100644
index b4d32fb2c7..0000000000
--- a/meta-oe/recipes-extended/libmodbus/libmodbus_3.0.6.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require libmodbus.inc
-
-SRC_URI[md5sum] = "c80f88b6ca19cabc4ceffc195ca07771"
-SRC_URI[sha256sum] = "046d63f10f755e2160dc56ef681e5f5ad3862a57c1955fd82e0ce036b69471b6"
diff --git a/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.10.bb b/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.10.bb
new file mode 100644
index 0000000000..9e17f91669
--- /dev/null
+++ b/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.10.bb
@@ -0,0 +1,17 @@
+SUMMARY = "A Modbus library for Linux, Mac OS, FreeBSD and Windows"
+DESCRIPTION = "libmodbus is a free software library to send/receive data with a device which respects the Modbus protocol. This library can use a serial port or an Ethernet connection."
+HOMEPAGE = "http://www.libmodbus.org/"
+SECTION = "libs"
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "git://github.com/stephane/libmodbus;branch=master;protocol=https"
+SRCREV = "2cbafa3113e276c3697d297f68e88d112b53174d"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[test] = "--enable-tests,--disable-tests,,"
diff --git a/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.7.bb b/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.7.bb
deleted file mode 100644
index 6c0e315d79..0000000000
--- a/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.7.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require libmodbus.inc
-
-SRC_URI += "file://Fix-float-endianness-issue-on-big-endian-arch.patch"
-SRC_URI[sha256sum] = "7dfe958431d0570b271e1a5b329b76a658e89c614cf119eb5aadb725c87f8fbd"
-
-# this file has been created one minute after the configure file, so it doesn't get recreated during configure step
-do_configure:prepend() {
- rm -rf ${S}/tests/unit-test.h
-}
diff --git a/meta-oe/recipes-extended/libpwquality/files/0001-Use-setuptools-instead-of-distutils.patch b/meta-oe/recipes-extended/libpwquality/files/0001-Use-setuptools-instead-of-distutils.patch
new file mode 100644
index 0000000000..7eaca66b5c
--- /dev/null
+++ b/meta-oe/recipes-extended/libpwquality/files/0001-Use-setuptools-instead-of-distutils.patch
@@ -0,0 +1,78 @@
+From ad95b7684365dea8335c34527d4c1463c1668af0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Fri, 31 Mar 2023 14:52:19 +0200
+Subject: [PATCH] Use setuptools instead of distutils
+
+distutils is removed from Python 3.12+:
+https://peps.python.org/pep-0632/
+
+Upstream-Status: Backport [https://github.com/libpwquality/libpwquality/commit/7b5e0f0097faebdcc6a8b783237bbba7a983147a]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ libpwquality.spec.in | 11 ++---------
+ python/Makefile.am | 2 +-
+ python/setup.py.in | 6 +++---
+ 3 files changed, 6 insertions(+), 13 deletions(-)
+
+diff --git a/libpwquality.spec.in b/libpwquality.spec.in
+index 70a6f53..0809126 100644
+--- a/libpwquality.spec.in
++++ b/libpwquality.spec.in
+@@ -33,9 +33,11 @@ BuildRequires: gettext
+ BuildRequires: pam-devel
+ %if %{with python2}
+ BuildRequires: python2-devel
++BuildRequires: python2-setuptools
+ %endif
+ %if %{with python3}
+ BuildRequires: python3-devel
++BuildRequires: python3-setuptools
+ %endif
+
+ URL: https://github.com/libpwquality/libpwquality/
+@@ -103,15 +105,6 @@ cp -a . %{py3dir}
+ pushd %{py3dir}
+ %endif
+ %if %{with python3}
+-# setuptools >= 60 changes the environment to use its bundled copy of distutils
+-# by default, not the Python-bundled one. To run the Python's standard library
+-# distutils, the environment variable must be set.
+-# Although technically setuptools is not needed for this package, if it's
+-# pulled by another package, it changes the environment and consequently,
+-# the build fails. This was reported in:
+-# https://github.com/pypa/setuptools/issues/3143
+-export SETUPTOOLS_USE_DISTUTILS=stdlib
+-
+ %configure \
+ --with-securedir=%{_moduledir} \
+ --with-pythonsitedir=%{python3_sitearch} \
+diff --git a/python/Makefile.am b/python/Makefile.am
+index 1d00c0c..6e51744 100644
+--- a/python/Makefile.am
++++ b/python/Makefile.am
+@@ -14,7 +14,7 @@ all-local:
+ CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV)
+
+ install-exec-local:
+- CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV) install --prefix=${DESTDIR}${prefix}
++ CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV) install --root ${DESTDIR} --prefix=${prefix}
+
+ clean-local:
+ rm -rf py$(PYTHONREV)
+diff --git a/python/setup.py.in b/python/setup.py.in
+index a741b91..f934c50 100755
+--- a/python/setup.py.in
++++ b/python/setup.py.in
+@@ -6,9 +6,9 @@
+
+ import os
+
+-from distutils.core import setup, Extension
+-from distutils.command.build_ext import build_ext as _build_ext
+-from distutils.command.sdist import sdist as _sdist
++from setuptools import setup, Extension
++from setuptools.command.build_ext import build_ext as _build_ext
++from setuptools.command.sdist import sdist as _sdist
+
+ def genconstants(headerfile, outputfile):
+ hf = open(headerfile, 'r')
diff --git a/meta-oe/recipes-extended/libpwquality/files/0001-fix-musl-build.patch b/meta-oe/recipes-extended/libpwquality/files/0001-fix-musl-build.patch
deleted file mode 100644
index 2cbdd6c74c..0000000000
--- a/meta-oe/recipes-extended/libpwquality/files/0001-fix-musl-build.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-Do not use fgetpwent_r
-
-fgetpwent_r does not exist on musl
-
-Source: https://git.alpinelinux.org/aports/tree/community/libpwquality/0001-fix-musl-build.patch
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/src/pam_pwquality.c
-+++ b/src/pam_pwquality.c
-@@ -19,6 +19,7 @@
- #include <stdio.h>
- #include <pwd.h>
- #include <errno.h>
-+#include <security/pam_modutil.h>
- #include "pwquality.h"
-
- /*
-@@ -43,8 +44,6 @@ struct module_options {
-
- #define CO_RETRY_TIMES 1
-
--#define PATH_PASSWD "/etc/passwd"
--
- static int
- _pam_parse (pam_handle_t *pamh, struct module_options *opt,
- int argc, const char **argv)
-@@ -98,44 +97,7 @@ static int
- check_local_user (pam_handle_t *pamh,
- const char *user)
- {
-- struct passwd pw, *pwp;
-- char buf[4096];
-- int found = 0;
-- FILE *fp;
-- int errn;
--
-- fp = fopen(PATH_PASSWD, "r");
-- if (fp == NULL) {
-- pam_syslog(pamh, LOG_ERR, "unable to open %s: %s",
-- PATH_PASSWD, pam_strerror(pamh, errno));
-- return -1;
-- }
--
-- for (;;) {
-- errn = fgetpwent_r(fp, &pw, buf, sizeof (buf), &pwp);
-- if (errn == ERANGE) {
-- pam_syslog(pamh, LOG_WARNING, "%s contains very long lines; corrupted?",
-- PATH_PASSWD);
-- /* we can continue here as next call will read further */
-- continue;
-- }
-- if (errn != 0)
-- break;
-- if (strcmp(pwp->pw_name, user) == 0) {
-- found = 1;
-- break;
-- }
-- }
--
-- fclose (fp);
--
-- if (errn != 0 && errn != ENOENT) {
-- pam_syslog(pamh, LOG_ERR, "unable to enumerate local accounts: %s",
-- pam_strerror(pamh, errn));
-- return -1;
-- } else {
-- return found;
-- }
-+ return pam_modutil_check_user_in_passwd(pamh, user, NULL) == PAM_SUCCESS;
- }
-
- PAM_EXTERN int
diff --git a/meta-oe/recipes-extended/libpwquality/files/0002-Makefile.am-respect-PYTHONSITEDIR.patch b/meta-oe/recipes-extended/libpwquality/files/0002-Makefile.am-respect-PYTHONSITEDIR.patch
new file mode 100644
index 0000000000..cd59a6d887
--- /dev/null
+++ b/meta-oe/recipes-extended/libpwquality/files/0002-Makefile.am-respect-PYTHONSITEDIR.patch
@@ -0,0 +1,26 @@
+From edc51ba1b446913232cdf2945f485392bca72dc7 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 3 Aug 2015 13:43:14 +0800
+Subject: [PATCH] Makefile.am: respect ${PYTHONSITEDIR}
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+Upstream-Status: Backport [https://github.com/libpwquality/libpwquality/commit/5192eab011ada47b0157f8d0524bf5b18bba3bd0]
+
+ python/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/python/Makefile.am b/python/Makefile.am
+index 6e51744..0a3bad5 100644
+--- a/python/Makefile.am
++++ b/python/Makefile.am
+@@ -14,7 +14,7 @@ all-local:
+ CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV)
+
+ install-exec-local:
+- CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV) install --root ${DESTDIR} --prefix=${prefix}
++ CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV) install --root ${DESTDIR} --prefix=${prefix} --install-lib=$(pythonsitedir)
+
+ clean-local:
+ rm -rf py$(PYTHONREV)
diff --git a/meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch b/meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch
deleted file mode 100644
index ec8672107f..0000000000
--- a/meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 1ea09e09ab2387c326bb7170835361ece6e25477 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 3 Aug 2015 13:43:14 +0800
-Subject: [PATCH] setup.py.in: add missing python include dir for cross
- compiling
-
-Upstream-Status: inappropriate [oe-core specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- python/Makefile.am | 2 +-
- python/setup.py.in | 3 ++-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/python/Makefile.am b/python/Makefile.am
-index 1d00c0c..52816b2 100644
---- a/python/Makefile.am
-+++ b/python/Makefile.am
-@@ -14,7 +14,7 @@ all-local:
- CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV)
-
- install-exec-local:
-- CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV) install --prefix=${DESTDIR}${prefix}
-+ CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-base py$(PYTHONREV) install --prefix=${DESTDIR}${prefix} --install-lib=${DESTDIR}/${PYTHONSITEDIR}
-
- clean-local:
- rm -rf py$(PYTHONREV)
-diff --git a/python/setup.py.in b/python/setup.py.in
-index a741b91..6759a95 100755
---- a/python/setup.py.in
-+++ b/python/setup.py.in
-@@ -33,7 +33,7 @@ class sdist(_sdist):
-
- pwqmodule = Extension('pwquality',
- sources = ['pwquality.c'],
-- include_dirs = ['../src'],
-+ include_dirs = ['../src', os.path.join(os.environ['STAGING_INCDIR'], os.environ['PYTHON_DIR'])],
- library_dirs = ['../src/.libs'],
- libraries = ['pwquality'])
-
---
-2.17.1
-
diff --git a/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb b/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb
deleted file mode 100644
index a6887b0868..0000000000
--- a/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-DESCRIPTION = "Library for password quality checking and generating random passwords"
-HOMEPAGE = "https://github.com/libpwquality/libpwquality"
-SECTION = "devel/lib"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6bd2f1386df813a459a0c34fde676fc2"
-
-SRCNAME = "libpwquality"
-SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/${SRCNAME}-${PV}/${SRCNAME}-${PV}.tar.bz2 \
- file://add-missing-python-include-dir-for-cross.patch \
-"
-SRC_URI:append:libc-musl = " file://0001-fix-musl-build.patch "
-
-SRC_URI[md5sum] = "1fe43f6641dbf1e1766e2a02cf68a9c3"
-SRC_URI[sha256sum] = "d43baf23dc6887fe8f8e9b75cabaabc5f4bbbaa0f9eff44278d276141752a545"
-
-UPSTREAM_CHECK_URI = "https://github.com/libpwquality/libpwquality/releases"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-DEPENDS = "cracklib virtual/gettext"
-
-inherit autotools setuptools3-base gettext
-
-B = "${S}"
-
-export PYTHON_DIR
-export BUILD_SYS
-export HOST_SYS
-
-EXTRA_OECONF += "--with-python-rev=${PYTHON_BASEVERSION} \
- --with-python-binary=${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} \
- --with-pythonsitedir=${PYTHON_SITEPACKAGES_DIR} \
- --libdir=${libdir} \
-"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
-PACKAGECONFIG[pam] = "--enable-pam, --disable-pam, libpam"
-
-FILES:${PN} += "${libdir}/security/pam_pwquality.so"
-FILES:${PN}-dbg += "${libdir}/security/.debug"
-FILES:${PN}-staticdev += "${libdir}/security/pam_pwquality.a"
-FILES:${PN}-dev += "${libdir}/security/pam_pwquality.la"
diff --git a/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.5.bb b/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.5.bb
new file mode 100644
index 0000000000..f08fea7de3
--- /dev/null
+++ b/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.5.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "Library for password quality checking and generating random passwords"
+HOMEPAGE = "https://github.com/libpwquality/libpwquality"
+SECTION = "devel/lib"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bd2f1386df813a459a0c34fde676fc2"
+
+DEPENDS = "cracklib python3-setuptools-native"
+
+SRC_URI = "git://github.com/libpwquality/libpwquality;branch=master;protocol=https \
+ file://0001-Use-setuptools-instead-of-distutils.patch \
+ file://0002-Makefile.am-respect-PYTHONSITEDIR.patch \
+"
+SRCREV = "5490e96a3dd6ed7371435ca5b3ccef98bdb48b5a"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep gettext setuptools3-base
+
+do_configure:prepend() {
+ cp ${STAGING_DATADIR_NATIVE}/gettext/ABOUT-NLS ${AUTOTOOLS_AUXDIR}/
+}
+
+export PYTHON_DIR
+export BUILD_SYS
+export HOST_SYS
+
+EXTRA_OECONF += "--with-python-rev=${PYTHON_BASEVERSION} \
+ --with-python-binary=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
+ --with-pythonsitedir=${PYTHON_SITEPACKAGES_DIR} \
+ --libdir=${libdir} \
+ --with-securedir=${base_libdir}/security \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
+PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam"
+
+FILES:${PN} += "${base_libdir}/security/pam_pwquality.so"
+FILES:${PN}-dbg += "${base_libdir}/security/.debug"
+FILES:${PN}-staticdev += "${base_libdir}/security/pam_pwquality.a"
+FILES:${PN}-dev += "${base_libdir}/security/pam_pwquality.la"
diff --git a/meta-oe/recipes-extended/libqb/libqb_2.0.6.bb b/meta-oe/recipes-extended/libqb/libqb_2.0.6.bb
deleted file mode 100644
index ce3606d777..0000000000
--- a/meta-oe/recipes-extended/libqb/libqb_2.0.6.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "An IPC library for high performance servers"
-DESCRIPTION = "libqb is a library with the primary purpose of providing high performance client server reusable features. \
-It provides high performance logging, tracing, ipc, and poll."
-
-HOMEPAGE = "https://github.com/clusterlabs/libqb/wiki"
-SECTION = "libs"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785"
-
-inherit autotools pkgconfig
-
-SRCREV = "758044bed5f615c90818aa5431d00303288888e5"
-SRC_URI = "git://github.com/ClusterLabs/${BPN}.git;branch=main;protocol=https \
- "
-S = "${WORKDIR}/git"
-
-DEPENDS += "libxml2"
-
-CFLAGS += "-pthread -D_REENTRANT"
-
-do_configure:prepend() {
- ( cd ${S}
- ${S}/autogen.sh )
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/libqb/libqb_2.0.8.bb b/meta-oe/recipes-extended/libqb/libqb_2.0.8.bb
new file mode 100644
index 0000000000..3db9e2e66f
--- /dev/null
+++ b/meta-oe/recipes-extended/libqb/libqb_2.0.8.bb
@@ -0,0 +1,26 @@
+SUMMARY = "An IPC library for high performance servers"
+DESCRIPTION = "libqb is a library with the primary purpose of providing high performance client server reusable features. \
+It provides high performance logging, tracing, ipc, and poll."
+
+HOMEPAGE = "https://github.com/clusterlabs/libqb/wiki"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785"
+
+inherit autotools pkgconfig
+
+SRCREV = "002171bbcf4bc4728da56c1538afd9e9d814ecaf"
+SRC_URI = "git://github.com/ClusterLabs/${BPN}.git;branch=main;protocol=https \
+ "
+S = "${WORKDIR}/git"
+
+DEPENDS += "libxml2"
+
+CFLAGS += "-pthread -D_REENTRANT"
+
+do_configure:prepend() {
+ ( cd ${S}
+ ${S}/autogen.sh )
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch b/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch
index 97fb097fef..934dd1778a 100644
--- a/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch
+++ b/meta-oe/recipes-extended/libreport/files/0001-Makefile.am-remove-doc-and-apidoc.patch
@@ -1,28 +1,32 @@
-From 1f7d106c7d982fe055addc8d883b161202233175 Mon Sep 17 00:00:00 2001
+From 73dc0c2cd942e30f5f7cb40cb5828895b96f0fb1 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Wed, 26 Apr 2017 03:47:58 -0400
-Subject: [PATCH 1/4] Makefile.am: remove doc and apidoc
+Subject: [PATCH] Makefile.am: remove doc and apidoc
There was a failure at do_install time, so remove doc to workaround.
-Upstream-Status: Inappropriate workaround
+Upstream-Status: Inappropriate [workaround]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Context modified to apply to v2.17.8.
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
-index 9ad827c..34364a8 100644
+index 4ff2f5c5..d4e30bc2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
ACLOCAL_AMFLAGS = -I m4
--SUBDIRS = po src tests doc apidoc
-+SUBDIRS = po src tests
+-SUBDIRS = data po src tests doc apidoc
++SUBDIRS = data po src tests
EXTRA_DIST = \
libreport.pc.in \
--
-2.7.4
+2.25.1
diff --git a/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch b/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch
index 7f5895ea12..4fdf69c73a 100644
--- a/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch
+++ b/meta-oe/recipes-extended/libreport/files/0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch
@@ -1,24 +1,28 @@
-From 9beadcdfca9198548f06bf18f3f26e1d11542e53 Mon Sep 17 00:00:00 2001
+From 276c45d0663124c9ccab0ddc8b97fb5cdc8b3867 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Tue, 31 Jul 2018 16:53:04 +0800
-Subject: [PATCH 2/4] configure.ac: remove prog test of xmlto and asciidoc
+Subject: [PATCH] configure.ac: remove prog test of xmlto and asciidoc
The prog of xmlto and asciidoc were used to generate documents,
and since the doc module has already been disabled, so we should
remove the prog test.
-Upstream-Status: Inappropriate workaround
+Upstream-Status: Inappropriate [workaround]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Modify to apply to v 2.17.8.
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
configure.ac | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/configure.ac b/configure.ac
-index feafc28..aceccf4 100644
+index da8cf898..17ece200 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -56,24 +56,6 @@ IT_PROG_INTLTOOL([0.35.0])
+@@ -57,24 +57,6 @@ IT_PROG_INTLTOOL([0.35.0])
dnl ****** END ****************************************
@@ -42,7 +46,7 @@ index feafc28..aceccf4 100644
-
AC_ARG_WITH(bugzilla,
AS_HELP_STRING([--with-bugzilla],[use Bugzilla plugin (default is YES)]),
- LIBREPORT_PARSE_WITH([bugzilla]))
+ LIBREPORT_PARSE_WITH([bugzilla]),
--
-2.7.4
+2.25.1
diff --git a/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch b/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch
index 2ff1731be6..f6ff860408 100644
--- a/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch
+++ b/meta-oe/recipes-extended/libreport/files/0003-without-build-plugins.patch
@@ -1,26 +1,30 @@
-From 41bce1de2fd2a0f79c266f245ae3e3720ccaf46a Mon Sep 17 00:00:00 2001
+From f46610901dbac56d9631df012374c600db08453e Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Wed, 26 Apr 2017 03:51:03 -0400
-Subject: [PATCH 3/4] without build plugins
+Subject: [PATCH] without build plugins
-Upstream-Status: Inappropriate workaround
+Upstream-Status: Inappropriate [workaround]
Rebase to 2.9.1
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Modify to apply to v2.17.8.
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
src/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile.am b/src/Makefile.am
-index c15928c..bac02b1 100644
+index 410bfcb0..bac02b16 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -8,4 +8,4 @@ if BUILD_NEWT
sub_dirs += report-newt
endif
--SUBDIRS = include lib plugins report-python cli client-python workflows $(sub_dirs)
+-SUBDIRS = include lib report-python cli client-python plugins workflows $(sub_dirs)
+SUBDIRS = include lib report-python cli client-python workflows $(sub_dirs)
--
-2.7.4
+2.25.1
diff --git a/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch b/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch
index 4ba69c793d..998ae6b50e 100644
--- a/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch
+++ b/meta-oe/recipes-extended/libreport/files/0004-configure.ac-remove-prog-test-of-augparse.patch
@@ -1,25 +1,29 @@
-From c1c301502a8f69b9889197744b301a136082f09d Mon Sep 17 00:00:00 2001
+From 62c922f43b54585d25ba89be36c10612b479270b Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Thu, 27 Apr 2017 02:15:02 -0400
-Subject: [PATCH 4/4] configure.ac: remove prog test of augparse
+Subject: [PATCH] configure.ac: remove prog test of augparse
The build time does not require it.
-Upstream-Status: Inappropriate workaround
+Upstream-Status: Inappropriate [workaround]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Modify to apply to v2.17.8.
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
- configure.ac | 8 --------
- 1 file changed, 8 deletions(-)
+ configure.ac | 9 ---------
+ 1 file changed, 9 deletions(-)
diff --git a/configure.ac b/configure.ac
-index aceccf4..83c101b 100644
+index 17ece200..89b463a4 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -350,14 +350,6 @@ AC_ARG_WITH(augeaslenslibdir,
- [Directory for librepor lens (default: /usr/share/augeas/lenses)])],
- [], [with_augeaslenslibdir="/usr/share/augeas/lenses"])
- AC_SUBST([AUGEAS_LENS_LIB_DIR], [$with_augeaslenslibdir])
+@@ -287,15 +287,6 @@ AC_ARG_WITH(largedatatmpdir,
+ [], [with_largedatatmpdir="/var/tmp"])
+ AC_SUBST([LARGE_DATA_TMP_DIR], [$with_largedatatmpdir])
+
-AC_PATH_PROG(AUGPARSE, augparse, no)
-[if test "$AUGPARSE" = "no"]
-[then]
@@ -28,9 +32,10 @@ index aceccf4..83c101b 100644
- [echo "Then run configure again before attempting to build libreport."]
- [exit 1]
-[fi]
-
+-
AC_ARG_WITH([defaultdumpdirmode],
AS_HELP_STRING([--with-defaultdumpdirmode=OCTAL-MODE],
+ [Default dump dir mode (default: 0x1A0 (0640))]),
--
-2.7.4
+2.25.1
diff --git a/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb b/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb
deleted file mode 100644
index d917a32472..0000000000
--- a/meta-oe/recipes-extended/libreport/libreport_2.10.0.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-DESCRIPTION = "Libraries providing API for reporting different problems in applications \
-to different bug targets like Bugzilla, ftp, trac, etc..."
-SUMMARY = "Generic library for reporting various problems"
-HOMEPAGE = "https://abrt.readthedocs.org/"
-LICENSE = "GPL-2.0-or-later"
-DEPENDS = "xmlrpc-c xmlrpc-c-native intltool-native \
- json-c libtar libnewt libproxy rpm \
- augeas satyr systemd \
-"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-
-SRC_URI = "git://github.com/abrt/libreport.git;protocol=https;branch=master"
-SRC_URI += "file://0001-Makefile.am-remove-doc-and-apidoc.patch \
- file://0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch \
- file://0003-without-build-plugins.patch \
- file://0004-configure.ac-remove-prog-test-of-augparse.patch \
-"
-SRCREV = "eaff08f38d771d9362923765bb404b1514c5ca0a"
-
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-inherit features_check
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-inherit gettext autotools python3native pkgconfig
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES','x11','gtk','',d)}"
-PACKAGECONFIG[gtk] = "--with-gtk, --without-gtk, gtk+3,"
-
-EXTRA_OECONF += "--without-python2 --with-python3"
-
-RDEPENDS:python3-libreport += "${PN}"
-
-do_patch[prefuncs] += "do_gen_version"
-do_gen_version() {
- cd ${S}
- ./gen-version
-}
-
-PACKAGES += "python3-libreport"
-
-FILES:${PN} += "${datadir}/*"
-FILES:${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*/.debug"
-FILES:python3-libreport = "${PYTHON_SITEPACKAGES_DIR}/*"
-
diff --git a/meta-oe/recipes-extended/libreport/libreport_2.17.15.bb b/meta-oe/recipes-extended/libreport/libreport_2.17.15.bb
new file mode 100644
index 0000000000..28c64a1614
--- /dev/null
+++ b/meta-oe/recipes-extended/libreport/libreport_2.17.15.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "Libraries providing API for reporting different problems in applications \
+to different bug targets like Bugzilla, ftp, trac, etc..."
+SUMMARY = "Generic library for reporting various problems"
+HOMEPAGE = "https://abrt.readthedocs.org/"
+LICENSE = "GPL-2.0-or-later"
+DEPENDS = "xmlrpc-c xmlrpc-c-native intltool-native \
+ json-c libarchive libtar libnewt libproxy rpm \
+ augeas satyr systemd \
+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "git://github.com/abrt/libreport.git;protocol=https;branch=master"
+SRC_URI += "file://0001-Makefile.am-remove-doc-and-apidoc.patch \
+ file://0002-configure.ac-remove-prog-test-of-xmlto-and-asciidoc.patch \
+ file://0003-without-build-plugins.patch \
+ file://0004-configure.ac-remove-prog-test-of-augparse.patch \
+"
+
+SRCREV = "f6bb06a699617d078fcd4f8b71b4d063bf47b52b"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+inherit gettext autotools python3native python3targetconfig pkgconfig
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES','x11','gtk','',d)}"
+PACKAGECONFIG[gtk] = "--with-gtk, --without-gtk, gtk+3,"
+
+EXTRA_OECONF += "--with-python3"
+
+RDEPENDS:python3-libreport += "${PN}"
+
+do_patch[prefuncs] += "do_gen_version"
+do_gen_version() {
+ cd ${S}
+ ./gen-version
+}
+
+PACKAGES += "python3-libreport"
+
+FILES:${PN} += "${datadir}/*"
+FILES:${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*/.debug"
+FILES:python3-libreport = "${PYTHON_SITEPACKAGES_DIR}/*"
+
diff --git a/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb b/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb
index 65bf9ba647..6e6c8cc226 100644
--- a/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb
+++ b/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb
@@ -7,7 +7,7 @@ SRCREV = "17d96e8f9a5bce7cee5e2222855ab46a246dba51"
SRC_URI = "git://git.code.sf.net/p/libuio/code;branch=master;protocol=https"
-PV .= "+0.2.2+git${SRCPV}"
+PV .= "+0.2.2+git"
inherit autotools
diff --git a/meta-oe/recipes-extended/libwmf/libwmf/0001-configure-use-pkg-config-for-freetype.patch b/meta-oe/recipes-extended/libwmf/libwmf/0001-configure-use-pkg-config-for-freetype.patch
index 0f133e2e75..21a6f292c8 100644
--- a/meta-oe/recipes-extended/libwmf/libwmf/0001-configure-use-pkg-config-for-freetype.patch
+++ b/meta-oe/recipes-extended/libwmf/libwmf/0001-configure-use-pkg-config-for-freetype.patch
@@ -3,7 +3,7 @@ From: Koen Kooi <koen@dominion.thruhere.net>
Date: Wed, 6 Aug 2014 14:53:03 +0200
Subject: [PATCH] configure: use pkg-config for freetype
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
configure.ac | 37 ++++++++-----------------------------
diff --git a/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-intoverflow.patch b/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-intoverflow.patch
index 50d915c010..4e7cd8887a 100644
--- a/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-intoverflow.patch
+++ b/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-intoverflow.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
http://cvs.fedoraproject.org/viewvc/devel/libwmf/libwmf-0.2.8.4-intoverflow.patch?view=log
CVE-2006-3376 libwmf integer overflow
diff --git a/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-useafterfree.patch b/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-useafterfree.patch
index 4d2d285641..9a8cbcb508 100644
--- a/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-useafterfree.patch
+++ b/meta-oe/recipes-extended/libwmf/libwmf/libwmf-0.2.8.4-useafterfree.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
http://cvs.fedoraproject.org/viewvc/devel/libwmf/libwmf-0.2.8.4-useafterfree.patch?view=log
Resolves: CVE-2009-1364
diff --git a/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb b/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb
index 955dd5154b..93b58057ce 100644
--- a/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb
+++ b/meta-oe/recipes-extended/libwmf/libwmf_0.2.8.4.bb
@@ -5,7 +5,6 @@ SECTION = "libs"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-PR = "r3"
DEPENDS:class-native = "freetype-native libpng-native jpeg-native"
DEPENDS = "freetype libpng jpeg expat gtk+"
diff --git a/meta-oe/recipes-extended/libx86-1/libx86-1.1/0001-Define-CARD32-as-uint-as-it-is-32-bit.patch b/meta-oe/recipes-extended/libx86-1/libx86-1.1/0001-Define-CARD32-as-uint-as-it-is-32-bit.patch
new file mode 100644
index 0000000000..aef521bc5d
--- /dev/null
+++ b/meta-oe/recipes-extended/libx86-1/libx86-1.1/0001-Define-CARD32-as-uint-as-it-is-32-bit.patch
@@ -0,0 +1,42 @@
+From 592c915df252932961a4151c891da58c48a8db90 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 2 Mar 2023 18:47:40 -0800
+Subject: [PATCH] Define CARD32 as uint as it is 32-bit
+
+long can be 64bit on LP64 systems and none of systems we support need int < 32-bits
+therefore use NUM32 to be int always if the system is linux
+
+Fixes build with clang-16
+thunk.c:147:3: error: incompatible function pointer types initializing 'x86emuu32 (*)(X86EMU_pioAddr)' (aka 'unsigned int (*)(unsigned short)') with an expression of type 'unsigned long (*)(unsigned short)' [-Wincompatible-function-pointer-types]
+ (&x_inl),
+ ^~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ x86emu/include/xf86int10.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/x86emu/include/xf86int10.h
++++ b/x86emu/include/xf86int10.h
+@@ -18,7 +18,7 @@
+
+ #define CARD8 unsigned char
+ #define CARD16 unsigned short
+-#define CARD32 unsigned long
++#define CARD32 unsigned int
+ #define pointer void *
+ #define IOADDRESS void *
+ #define Bool int
+--- a/x86emu/include/types.h
++++ b/x86emu/include/types.h
+@@ -77,7 +77,8 @@
+ defined(__s390x__) || \
+ (defined(__hppa__) && defined(__LP64)) || \
+ defined(__amd64__) || defined(amd64) || \
+- (defined(__sgi) && (_MIPS_SZLONG == 64))
++ (defined(__sgi) && (_MIPS_SZLONG == 64)) || \
++ defined(__linux__)
+ #define NUM32 int
+ #else
+ #define NUM32 long
diff --git a/meta-oe/recipes-extended/libx86-1/libx86-1.1/libx86-mmap-offset.patch b/meta-oe/recipes-extended/libx86-1/libx86-1.1/libx86-mmap-offset.patch
index 843acc8868..1c120c04b9 100644
--- a/meta-oe/recipes-extended/libx86-1/libx86-1.1/libx86-mmap-offset.patch
+++ b/meta-oe/recipes-extended/libx86-1/libx86-1.1/libx86-mmap-offset.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Upstream-Statue: Pending
[from ftp://195.220.108.108/linux/fedora/linux/development/rawhide/source/SRPMS/l/libx86-1.1-21.fc23.src.rpm]
diff --git a/meta-oe/recipes-extended/libx86-1/libx86-1_1.1.bb b/meta-oe/recipes-extended/libx86-1/libx86-1_1.1.bb
index 9dc91f3f6f..f11c52dd11 100644
--- a/meta-oe/recipes-extended/libx86-1/libx86-1_1.1.bb
+++ b/meta-oe/recipes-extended/libx86-1/libx86-1_1.1.bb
@@ -7,14 +7,13 @@ LICENSE = "MIT & BSD-3-Clause"
SECTION = "libs"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=633af6c02e6f624d4c472d970a2aca53"
-SRC_URI = "http://www.codon.org.uk/~mjg59/libx86/downloads/${BPN}-${PV}.tar.gz \
+SRC_URI = "https://mirrors.slackware.com/slackware/slackware-current/source/ap/libx86/libx86-${PV}.tar.gz \
file://libx86-mmap-offset.patch \
file://0001-assume-zero-is-valid-address.patch \
file://makefile-add-ldflags.patch \
file://0001-Fix-type-of-the-void-pointer-assignment.patch \
+ file://0001-Define-CARD32-as-uint-as-it-is-32-bit.patch \
"
-
-SRC_URI[md5sum] = "41bee1f8e22b82d82b5f7d7ba51abc2a"
SRC_URI[sha256sum] = "5bf13104cb327472b5cb65643352a9138646becacc06763088d83001d832d048"
BPN = "libx86"
diff --git a/meta-oe/recipes-extended/libyang/libyang/0001-test_context-skip-test-case-test_searchdirs.patch b/meta-oe/recipes-extended/libyang/libyang/0001-test_context-skip-test-case-test_searchdirs.patch
new file mode 100644
index 0000000000..3c6aee9247
--- /dev/null
+++ b/meta-oe/recipes-extended/libyang/libyang/0001-test_context-skip-test-case-test_searchdirs.patch
@@ -0,0 +1,29 @@
+From 5de24e1b39c09adb0c5bf4bb4228bd1bb935542a Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 22 Mar 2023 16:03:56 +0800
+Subject: [PATCH] test_context: skip test case test_searchdirs
+
+Skip test case test_searchdirs as it searchs the source code directory.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ tests/utests/basic/test_context.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/tests/utests/basic/test_context.c b/tests/utests/basic/test_context.c
+index cfba1d30f..8c3bb7ad6 100644
+--- a/tests/utests/basic/test_context.c
++++ b/tests/utests/basic/test_context.c
+@@ -1061,7 +1061,6 @@ int
+ main(void)
+ {
+ const struct CMUnitTest tests[] = {
+- UTEST(test_searchdirs),
+ UTEST(test_options),
+ UTEST(test_models),
+ UTEST(test_imports),
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/libyang/libyang/libyang-add-stdint-h.patch b/meta-oe/recipes-extended/libyang/libyang/libyang-add-stdint-h.patch
deleted file mode 100644
index d357411146..0000000000
--- a/meta-oe/recipes-extended/libyang/libyang/libyang-add-stdint-h.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From c7f3e2a8fe530beec6103cb9071ccc41458879aa Mon Sep 17 00:00:00 2001
-From: Tony Tascioglu <tony.tascioglu@windriver.com>
-Date: Mon, 21 Jun 2021 12:34:22 -0400
-Subject: [PATCH] libyang: fix initial build errors
-
-This patch addresses build errors seen when integrating libyang as a
-recipe.
-
-There is a missing include statement for stdint.h in utests.h which
-causes build problems. stdint.h is required to be imported by cmocka.h
-prior to the cmocka file. Adding the stdint allows it to build the
-tests correctly
-
-Upstream-Status: Submitted [ https://github.com/CESNET/libyang/pull/1819 ]
-
-Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
-Signed-off-by: Randy MacLeod <randy.macleod@windriver.com>
----
- tests/utests/utests.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tests/utests/utests.h b/tests/utests/utests.h
-index 7e85a66e..8eee26ce 100644
---- a/tests/utests/utests.h
-+++ b/tests/utests/utests.h
-@@ -22,6 +22,7 @@
- #include <stdarg.h>
- #include <stddef.h>
- #include <stdlib.h>
-+#include <stdint.h>
-
- #include <cmocka.h>
-
---
-2.32.0
diff --git a/meta-oe/recipes-extended/libyang/libyang/run-ptest b/meta-oe/recipes-extended/libyang/libyang/run-ptest
index 1c9f8f47f7..c507afb2f5 100644
--- a/meta-oe/recipes-extended/libyang/libyang/run-ptest
+++ b/meta-oe/recipes-extended/libyang/libyang/run-ptest
@@ -1,46 +1,18 @@
#!/bin/sh
-# Valid tests to run
-tests="utest_binary \
- utest_bits \
- utest_common \
- utest_hash_table \
- utest_inet_types \
- utest_int8 \
- utest_json \
- utest_list \
- utest_merge \
- utest_metadata \
- utest_parser_yang \
- utest_parser_yin \
- utest_pattern \
- utest_printer_yang \
- utest_printer_yin \
- utest_range \
- utest_schema \
- utest_set \
- utest_string \
- utest_tree_data \
- utest_tree_schema_compile \
- utest_types \
- utest_xml \
- utest_xpath \
- utest_yang_types \
- utest_yanglib"
# cd into right directory
ptestdir=$(dirname "$(readlink -f "$0")")
cd "$ptestdir"/tests || exit
-# Run specified tests
+tests=$(find * -type f -name 'utest_*')
+
for f in $tests
do
- if test -e ./"$f"; then
+ if test -x ./"$f"; then
if ./"$f" > ./"$f".out 2> ./"$f".err; then
echo "PASS: $f"
else
echo "FAIL: $f"
fi
- else
- echo "SKIP: $f"
fi
done
diff --git a/meta-oe/recipes-extended/libyang/libyang_2.0.194.bb b/meta-oe/recipes-extended/libyang/libyang_2.0.194.bb
deleted file mode 100644
index 548dcdd2f5..0000000000
--- a/meta-oe/recipes-extended/libyang/libyang_2.0.194.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "YANG data modeling language library"
-DESCRIPTION = "libyang is a YANG data modelling language parser and toolkit written (and providing API) in C."
-HOMEPAGE = "https://github.com/CESNET/libyang"
-SECTION = "libs"
-LICENSE = "BSD-3-Clause"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f3916d7d8d42a6508d0ea418cfff10ad"
-
-SRCREV = "87375f15159545a87a1e0de200f5d9d67e9091d7"
-
-SRC_URI = "git://github.com/CESNET/libyang.git;branch=master;protocol=https \
- file://libyang-add-stdint-h.patch \
- file://run-ptest \
- "
-
-S = "${WORKDIR}/git"
-
-# Due to valgrind not supported on these arches:
-COMPATIBLE_HOST:riscv32 = "null"
-COMPATIBLE_HOST:armv5 = "null"
-COMPATIBLE_HOST:riscv64 = "null"
-
-# Main dependencies
-inherit cmake pkgconfig lib_package ptest
-DEPENDS = "libpcre2"
-DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'cmocka', '', d)}"
-
-# Ptest dependencies
-RDEPENDS:${PN}-ptest += "valgrind"
-
-EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release"
-EXTRA_OECMAKE += " ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON', '', d)}"
-
-do_install_ptest () {
- cp -fR ${B}/tests/ ${D}${PTEST_PATH}/
-}
-
diff --git a/meta-oe/recipes-extended/libyang/libyang_2.1.148.bb b/meta-oe/recipes-extended/libyang/libyang_2.1.148.bb
new file mode 100644
index 0000000000..0eff3247c6
--- /dev/null
+++ b/meta-oe/recipes-extended/libyang/libyang_2.1.148.bb
@@ -0,0 +1,45 @@
+SUMMARY = "YANG data modeling language library"
+DESCRIPTION = "libyang is a YANG data modelling language parser and toolkit written (and providing API) in C."
+HOMEPAGE = "https://github.com/CESNET/libyang"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f3916d7d8d42a6508d0ea418cfff10ad"
+
+SRCREV = "fc4dbd923e044006c93df020590a1e5a8656c09e"
+
+SRC_URI = "git://github.com/CESNET/libyang.git;branch=master;protocol=https \
+ file://0001-test_context-skip-test-case-test_searchdirs.patch \
+ file://run-ptest \
+ "
+
+S = "${WORKDIR}/git"
+
+# Main dependencies
+inherit cmake pkgconfig lib_package ptest multilib_header
+DEPENDS = "libpcre2"
+DEPENDS += "${@bb.utils.contains('PTEST_ENABLED', '1', 'cmocka', '', d)}"
+
+EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release"
+EXTRA_OECMAKE += " ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON -DENABLE_VALGRIND_TESTS=OFF', '', d)}"
+
+do_compile:prepend () {
+ if [ ${PTEST_ENABLED} = "1" ]; then
+ sed -i -e 's|${S}|${PTEST_PATH}|g' ${B}/tests/tests_config.h
+ sed -i -e 's|${B}|${PTEST_PATH}|g' ${B}/tests/tests_config.h
+ fi
+}
+
+do_install:append () {
+ oe_multilib_header libyang/config.h
+}
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -f ${B}/tests/utest_* ${D}${PTEST_PATH}/tests/
+ cp -fR ${S}/tests/modules ${D}${PTEST_PATH}/tests/
+ install -d ${D}${PTEST_PATH}/tests/plugins
+ cp -f ${B}/tests/plugins/plugin_*.so ${D}${PTEST_PATH}/tests/plugins/
+}
+
+FILES:${PN} += "${datadir}/yang/*"
diff --git a/meta-oe/recipes-extended/libzip/libzip_1.10.1.bb b/meta-oe/recipes-extended/libzip/libzip_1.10.1.bb
new file mode 100644
index 0000000000..a314efc126
--- /dev/null
+++ b/meta-oe/recipes-extended/libzip/libzip_1.10.1.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "libzip is a C library for reading, creating, and modifying zip archives."
+HOMEPAGE = "https://libzip.org/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d8a9d2078f35e61cf1122ccd440687cf"
+
+DEPENDS = "zlib bzip2"
+
+PACKAGECONFIG[ssl] = "-DENABLE_OPENSSL=ON,-DENABLE_OPENSSL=OFF,openssl"
+PACKAGECONFIG[lzma] = "-DENABLE_LZMA=ON,-DENABLE_LZMA=OFF,xz"
+PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON,-DENABLE_GNUTLS=OFF,gnutls nettle"
+PACKAGECONFIG[zstd] = "-DENABLE_ZSTD=ON,-DENABLE_ZSTD=OFF,zstd"
+PACKAGECONFIG[mbedtls] = "-DENABLE_MBEDTLS=ON,-DENABLE_MBEDTLS=OFF,mbedtls"
+PACKAGECONFIG[examples] = "-DENABLE_EXAMPLES=ON,-DENABLE_EXAMPLES=OFF,"
+PACKAGECONFIG[tools] = "-DENABLE_TOOLS=ON,-DENABLE_TOOLS=OFF,"
+PACKAGECONFIG[tests] = "-DBUILD_REGRESS=ON,-DBUILD_REGRESS=OFF,"
+
+PACKAGECONFIG ?= "ssl lzma tools examples"
+
+inherit cmake
+
+SRC_URI = "https://libzip.org/download/libzip-${PV}.tar.xz"
+
+SRC_URI[sha256sum] = "dc3c8d5b4c8bbd09626864f6bcf93de701540f761d76b85d7c7d710f4bd90318"
+
+BBCLASSEXTEND += "native"
diff --git a/meta-oe/recipes-extended/libzip/libzip_1.9.2.bb b/meta-oe/recipes-extended/libzip/libzip_1.9.2.bb
deleted file mode 100644
index f4de8607a0..0000000000
--- a/meta-oe/recipes-extended/libzip/libzip_1.9.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "libzip is a C library for reading, creating, and modifying zip archives."
-HOMEPAGE = "https://libzip.org/"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d8a9d2078f35e61cf1122ccd440687cf"
-
-DEPENDS = "zlib bzip2"
-
-PACKAGECONFIG[ssl] = "-DENABLE_OPENSSL=ON,-DENABLE_OPENSSL=OFF,openssl"
-PACKAGECONFIG[lzma] = "-DENABLE_LZMA=ON,-DENABLE_LZMA=OFF,xz"
-PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON,-DENABLE_GNUTLS=OFF,gnutls nettle"
-PACKAGECONFIG[zstd] = "-DENABLE_ZSTD=ON,-DENABLE_ZSTD=OFF,zstd"
-PACKAGECONFIG[mbedtls] = "-DENABLE_MBEDTLS=ON,-DENABLE_MBEDTLS=OFF,mbedtls"
-PACKAGECONFIG[examples] = "-DENABLE_EXAMPLES=ON,-DENABLE_EXAMPLES=OFF,"
-PACKAGECONFIG[tools] = "-DENABLE_TOOLS=ON,-DENABLE_TOOLS=OFF,"
-PACKAGECONFIG[tests] = "-DBUILD_REGRESS=ON,-DBUILD_REGRESS=OFF,"
-
-PACKAGECONFIG ?= "ssl lzma tools examples"
-
-inherit cmake
-
-SRC_URI = "https://libzip.org/download/libzip-${PV}.tar.xz"
-
-SRC_URI[sha256sum] = "c93e9852b7b2dc931197831438fee5295976ee0ba24f8524a8907be5c2ba5937"
-
-# Patch for CVE-2017-12858 is applied in version 1.2.0.
-CVE_CHECK_IGNORE += "CVE-2017-12858"
diff --git a/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.19.bb b/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.19.bb
index d7ba6e14b2..834687b43b 100644
--- a/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.19.bb
+++ b/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.19.bb
@@ -12,7 +12,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/l/${BPN}/${BPN}_${PV}.tar.gz"
SRC_URI[sha256sum] = "2c5704b01c8f474f82921780e4592a927b2bf6a6d7616354a6c5d7cd5664857e"
do_compile() {
- oe_runmake CFLAGS=' -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables'
+ oe_runmake CFLAGS=' -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables ${DEBUG_PREFIX_MAP}'
}
do_install() {
diff --git a/meta-oe/recipes-extended/logwatch/logwatch_7.10.bb b/meta-oe/recipes-extended/logwatch/logwatch_7.10.bb
new file mode 100644
index 0000000000..2efaa2b3c6
--- /dev/null
+++ b/meta-oe/recipes-extended/logwatch/logwatch_7.10.bb
@@ -0,0 +1,57 @@
+SUMMARY = "A log file analysis program"
+DESCRIPTION = "\
+Logwatch is a customizable, pluggable log-monitoring system. It will go \
+through your logs for a given period of time and make a report in the areas \
+that you wish with the detail that you wish. Easy to use - works right out of \
+the package on many systems.\
+"
+SECTION = "devel"
+HOMEPAGE = "http://www.logwatch.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ba882fa9b4b6b217a51780be3f4db9c8"
+RDEPENDS:${PN} = "perl"
+
+SRC_URI = "http://jaist.dl.sourceforge.net/project/${BPN}/${BP}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "329df0991b879764ed7e50a869de5b6bfa70d241eb254397a5659d1ff5f2588f"
+
+do_install() {
+ install -m 0755 -d ${D}${sysconfdir}/logwatch/scripts
+ install -m 0755 -d ${D}${datadir}/logwatch/dist.conf/logfiles
+ install -m 0755 -d ${D}${datadir}/logwatch/dist.conf/services
+ install -m 0755 -d ${D}${localstatedir}/cache/logwatch
+ cp -r -f conf/ ${D}${datadir}/logwatch/default.conf
+ cp -r -f scripts/ ${D}${datadir}/logwatch/scripts
+ cp -r -f lib ${D}${datadir}/logwatch/lib
+ chown -R root:root ${D}${datadir}/logwatch
+
+ install -m 0755 -d ${D}${mandir}/man1
+ install -m 0755 -d ${D}${mandir}/man5
+ install -m 0755 -d ${D}${mandir}/man8
+ install -m 0644 amavis-logwatch.1 ${D}${mandir}/man1
+ install -m 0644 postfix-logwatch.1 ${D}${mandir}/man1
+ install -m 0644 ignore.conf.5 ${D}${mandir}/man5
+ install -m 0644 override.conf.5 ${D}${mandir}/man5
+ install -m 0644 logwatch.conf.5 ${D}${mandir}/man5
+ install -m 0644 logwatch.8 ${D}${mandir}/man8
+
+ install -m 0755 -d ${D}${sysconfdir}/cron.daily
+ install -m 0755 -d ${D}${sbindir}
+ ln -sf ../..${datadir}/logwatch/scripts/logwatch.pl ${D}${sbindir}/logwatch
+ cat > ${D}${sysconfdir}/cron.daily/0logwatch <<EOF
+ DailyReport=\`grep -e "^[[:space:]]*DailyReport[[:space:]]*=[[:space:]]*" /usr/share/logwatch/default.conf/logwatch.conf | head -n1 | sed -e "s|^\s*DailyReport\s*=\s*||"\`
+ if [ "\$DailyReport" != "No" ] && [ "\$DailyReport" != "no" ]
+ then
+ logwatch
+ fi
+EOF
+ chmod 755 ${D}${sysconfdir}/cron.daily/0logwatch
+
+ install -m 0755 -d ${D}${sysconfdir}/logwatch/conf/logfiles
+ install -m 0755 -d ${D}${sysconfdir}/logwatch/conf/services
+ touch ${D}${sysconfdir}/logwatch/conf/logwatch.conf
+ touch ${D}${sysconfdir}/logwatch/conf/ignore.conf
+ touch ${D}${sysconfdir}/logwatch/conf/override.conf
+ echo "# Local configuration options go here (defaults are in /usr/share/logwatch/default.conf/logwatch.conf)" > ${D}${sysconfdir}/logwatch/conf/logwatch.conf
+ echo "###### REGULAR EXPRESSIONS IN THIS FILE WILL BE TRIMMED FROM REPORT OUTPUT #####" > ${D}${sysconfdir}/logwatch/conf/ignore.conf
+ echo "# Configuration overrides for specific logfiles/services may be placed here." > ${D}${sysconfdir}/logwatch/conf/override.conf
+}
diff --git a/meta-oe/recipes-extended/logwatch/logwatch_7.7.bb b/meta-oe/recipes-extended/logwatch/logwatch_7.7.bb
deleted file mode 100644
index 37a94661aa..0000000000
--- a/meta-oe/recipes-extended/logwatch/logwatch_7.7.bb
+++ /dev/null
@@ -1,57 +0,0 @@
-SUMMARY = "A log file analysis program"
-DESCRIPTION = "\
-Logwatch is a customizable, pluggable log-monitoring system. It will go \
-through your logs for a given period of time and make a report in the areas \
-that you wish with the detail that you wish. Easy to use - works right out of \
-the package on many systems.\
-"
-SECTION = "devel"
-HOMEPAGE = "http://www.logwatch.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ba882fa9b4b6b217a51780be3f4db9c8"
-RDEPENDS:${PN} = "perl"
-
-SRC_URI = "http://jaist.dl.sourceforge.net/project/${BPN}/${BP}/${BP}.tar.gz"
-SRC_URI[sha256sum] = "2a10c2c73f85d2ec9d8e9be3f553b7b5849cf795b89a1c1379c99cc36a06adbd"
-
-do_install() {
- install -m 0755 -d ${D}${sysconfdir}/logwatch/scripts
- install -m 0755 -d ${D}${datadir}/logwatch/dist.conf/logfiles
- install -m 0755 -d ${D}${datadir}/logwatch/dist.conf/services
- install -m 0755 -d ${D}${localstatedir}/cache/logwatch
- cp -r -f conf/ ${D}${datadir}/logwatch/default.conf
- cp -r -f scripts/ ${D}${datadir}/logwatch/scripts
- cp -r -f lib ${D}${datadir}/logwatch/lib
- chown -R root:root ${D}${datadir}/logwatch
-
- install -m 0755 -d ${D}${mandir}/man1
- install -m 0755 -d ${D}${mandir}/man5
- install -m 0755 -d ${D}${mandir}/man8
- install -m 0644 amavis-logwatch.1 ${D}${mandir}/man1
- install -m 0644 postfix-logwatch.1 ${D}${mandir}/man1
- install -m 0644 ignore.conf.5 ${D}${mandir}/man5
- install -m 0644 override.conf.5 ${D}${mandir}/man5
- install -m 0644 logwatch.conf.5 ${D}${mandir}/man5
- install -m 0644 logwatch.8 ${D}${mandir}/man8
-
- install -m 0755 -d ${D}${sysconfdir}/cron.daily
- install -m 0755 -d ${D}${sbindir}
- ln -sf ../..${datadir}/logwatch/scripts/logwatch.pl ${D}${sbindir}/logwatch
- cat > ${D}${sysconfdir}/cron.daily/0logwatch <<EOF
- DailyReport=\`grep -e "^[[:space:]]*DailyReport[[:space:]]*=[[:space:]]*" /usr/share/logwatch/default.conf/logwatch.conf | head -n1 | sed -e "s|^\s*DailyReport\s*=\s*||"\`
- if [ "\$DailyReport" != "No" ] && [ "\$DailyReport" != "no" ]
- then
- logwatch
- fi
-EOF
- chmod 755 ${D}${sysconfdir}/cron.daily/0logwatch
-
- install -m 0755 -d ${D}${sysconfdir}/logwatch/conf/logfiles
- install -m 0755 -d ${D}${sysconfdir}/logwatch/conf/services
- touch ${D}${sysconfdir}/logwatch/conf/logwatch.conf
- touch ${D}${sysconfdir}/logwatch/conf/ignore.conf
- touch ${D}${sysconfdir}/logwatch/conf/override.conf
- echo "# Local configuration options go here (defaults are in /usr/share/logwatch/default.conf/logwatch.conf)" > ${D}${sysconfdir}/logwatch/conf/logwatch.conf
- echo "###### REGULAR EXPRESSIONS IN THIS FILE WILL BE TRIMMED FROM REPORT OUTPUT #####" > ${D}${sysconfdir}/logwatch/conf/ignore.conf
- echo "# Configuration overrides for specific logfiles/services may be placed here." > ${D}${sysconfdir}/logwatch/conf/override.conf
-}
diff --git a/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch b/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
index 73c6cb126a..b637d81e9e 100644
--- a/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
+++ b/meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: git/configure.ac
===================================================================
--- git.orig/configure.ac
diff --git a/meta-oe/recipes-extended/md5deep/md5deep_git.bb b/meta-oe/recipes-extended/md5deep/md5deep_git.bb
index 3cbe785a52..5351a37db6 100644
--- a/meta-oe/recipes-extended/md5deep/md5deep_git.bb
+++ b/meta-oe/recipes-extended/md5deep/md5deep_git.bb
@@ -1,11 +1,10 @@
SUMMARY = "md5deep and hashdeep to compute and audit hashsets of amounts of files."
DESCRIPTION = "md5deep is a set of programs to compute MD5, SHA-1, SHA-256, Tiger, or Whirlpool message digests on an arbitrary number of files. This package also includes hashdeep which is also able to audit hashsets."
-AUTHOR = "Jesse Kornblum, Simson L. Garfinkel"
HOMEPAGE = "http://md5deep.sourceforge.net"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=9190f660105b9a56cdb272309bfd5491"
-PV = "4.4+git${SRCPV}"
+PV = "4.4+git"
SRCREV = "877613493ff44807888ce1928129574be393cbb0"
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0001-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch b/meta-oe/recipes-extended/minifi-cpp/files/0001-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch
deleted file mode 100644
index d813b37f99..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/0001-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 609e1745d26d6f42d426018a4dd8d2342d6fc170 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 18 Aug 2020 08:37:57 -0700
-Subject: [PATCH] Add -lxml2 to linker cmdline of xml is found
-
-When cross compiling for systems where static libs
-for libxml are not available cmake's detection mechanism
-resort to linking with libxml.so but doesnt use -lxml2
-liblldbHost.a however requires libxml on linker
-cmdline _after_ itself so its use of symbols from libxml2
-can be resolved. Here check for libxml2 being detected and
-add it if its found.
-
-Fixes
-minifi-cpp/0.7.0-r0/recipe-sysroot-native/usr/lib/libxml2.so is incompatible with elf32-i386
-| clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- thirdparty/libarchive-3.3.2/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/thirdparty/libarchive-3.3.2/CMakeLists.txt b/thirdparty/libarchive-3.3.2/CMakeLists.txt
-index 0c1ea6f7..cde0cc51 100644
---- a/thirdparty/libarchive-3.3.2/CMakeLists.txt
-+++ b/thirdparty/libarchive-3.3.2/CMakeLists.txt
-@@ -1031,7 +1031,7 @@ ENDIF()
- IF(LIBXML2_FOUND)
- CMAKE_PUSH_CHECK_STATE() # Save the state of the variables
- INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
-- LIST(APPEND ADDITIONAL_LIBS ${LIBXML2_LIBRARIES})
-+ LIST(APPEND ADDITIONAL_LIBS xml2)
- SET(HAVE_LIBXML2 1)
- # libxml2's include files use iconv.h
- SET(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
---
-2.28.0
-
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0001-CMakeLists.txt-use-curl-local-source-tarball.patch b/meta-oe/recipes-extended/minifi-cpp/files/0001-CMakeLists.txt-use-curl-local-source-tarball.patch
deleted file mode 100644
index 183a006e81..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/0001-CMakeLists.txt-use-curl-local-source-tarball.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 8d99edeefb23c9d7574a0b5a0e2e3f41b0433490 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Thu, 10 Sep 2020 16:14:10 +0800
-Subject: [PATCH] CMakeLists.txt: use curl local source tarball
-
-Do not download curl source during compile.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- CMakeLists.txt | 6 +-----
- 1 file changed, 1 insertion(+), 5 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7cd550fb..215a4ef4 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -314,11 +314,7 @@ endif()
-
- ExternalProject_Add(
- curl-external
-- GIT_REPOSITORY "https://github.com/curl/curl.git"
-- GIT_TAG "f3294d9d86e6a7915a967efff2842089b8b0d071" # Version 7.64.0
-- SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/thirdparty/curl-src"
-- LIST_SEPARATOR % # This is needed for passing semicolon-separated lists
-- TLS_VERIFY OFF
-+ SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/curl-7.64.0"
- CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
- "-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/thirdparty/curl-install"
- "-DCMAKE_INSTALL_LIBDIR=lib${LIBSUFFIX}"
---
-2.17.1
-
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0001-Do-not-use-bundled-packages.patch b/meta-oe/recipes-extended/minifi-cpp/files/0001-Do-not-use-bundled-packages.patch
new file mode 100644
index 0000000000..b997d6ce7d
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0001-Do-not-use-bundled-packages.patch
@@ -0,0 +1,108 @@
+From 65923a872e44cb461ef1a03374057351f0bc5efe Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Tue, 19 Mar 2024 19:39:04 +0800
+Subject: [PATCH] Do not use bundled packages
+
+Use external dependencies for openssl, curl, bzip2, zlib, libarchive,
+xz, yaml-cpp and libxml2.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ CMakeLists.txt | 23 ++++++-----------------
+ extensions/libarchive/CMakeLists.txt | 7 ++-----
+ 2 files changed, 8 insertions(+), 22 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 13a2b992..8a1dd6d9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -222,9 +222,7 @@ else()
+ endif()
+
+ if (NOT DISABLE_BZIP2 AND (NOT DISABLE_LIBARCHIVE OR (NOT DISABLE_ROCKSDB AND NOT WIN32)))
+- include(BundledBZip2)
+- use_bundled_bzip2(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
+- list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/bzip2/dummy")
++ find_package(BZip2 REQUIRED)
+ endif()
+
+ if(NOT WIN32)
+@@ -247,9 +245,7 @@ endif()
+
+ # OpenSSL
+ if (NOT OPENSSL_OFF)
+- include(BundledOpenSSL)
+- use_openssl("${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}")
+- list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/ssl")
++ find_package(OpenSSL REQUIRED)
+
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DOPENSSL_SUPPORT")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DOPENSSL_SUPPORT")
+@@ -262,9 +258,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSODIUM_STATIC=1")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSODIUM_STATIC=1")
+
+ # zlib
+-include(BundledZLIB)
+-use_bundled_zlib(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+-list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/zlib/dummy")
++find_package(ZLIB REQUIRED)
+
+ # uthash
+ add_library(ut INTERFACE)
+@@ -272,9 +266,7 @@ target_include_directories(ut SYSTEM INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/thir
+
+ # cURL
+ if(NOT DISABLE_CURL)
+- include(BundledLibcURL)
+- use_bundled_curl(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+- list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/curl/dummy")
++ find_package(CURL REQUIRED)
+ else()
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDISABLE_CURL")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDISABLE_CURL")
+@@ -285,8 +277,7 @@ include(BundledSpdlog)
+ use_bundled_spdlog(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+
+ # yaml-cpp
+-include(BundledYamlCpp)
+-use_bundled_yamlcpp(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
++find_package(yaml-cpp REQUIRED)
+
+ # concurrentqueue
+ add_library(concurrentqueue INTERFACE)
+@@ -357,9 +348,7 @@ include(Extensions)
+ add_subdirectory(libminifi)
+
+ if ((ENABLE_OPENWSMAN AND NOT DISABLE_CIVET AND NOT DISABLE_CURL) OR ENABLE_ALL OR ENABLE_AZURE)
+- include(BundledLibXml2)
+- use_bundled_libxml2(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+- list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/libxml2/dummy")
++ find_package(LibXml2 REQUIRED)
+ endif()
+
+ if (ENABLE_ALL OR ENABLE_PROMETHEUS OR NOT DISABLE_CIVET)
+diff --git a/extensions/libarchive/CMakeLists.txt b/extensions/libarchive/CMakeLists.txt
+index 2b89d3ea..49e13e21 100644
+--- a/extensions/libarchive/CMakeLists.txt
++++ b/extensions/libarchive/CMakeLists.txt
+@@ -22,13 +22,10 @@ if (DISABLE_LIBARCHIVE)
+ endif()
+
+ if (NOT DISABLE_LZMA)
+- include(BundledLibLZMA)
+- use_bundled_liblzma(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
+- list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/liblzma/dummy")
++ find_package(LibLZMA REQUIRED)
+ endif()
+
+-include(BundledLibArchive)
+-use_bundled_libarchive(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
++find_package(LibArchive REQUIRED)
+
+ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
+
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-build-with-libc.patch b/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-build-with-libc.patch
deleted file mode 100644
index c1c118196a..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-build-with-libc.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 72e0fe484444169007e481c9b33d8f78ebe03674 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 27 May 2021 15:44:10 -0700
-Subject: [PATCH] Fix build with libc++
-
-In libc++ on 32-bit platforms, int64_t is defined as alias of long long. On 64-bit platforms: long.
-
-On the other hand in definition of std::chrono::duration aliases, that you can find here long long is used
-
-Therefore create custom unit to avoid incompatibility between libstdc++
-and libc++
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- extensions/expression-language/Expression.cpp | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/extensions/expression-language/Expression.cpp b/extensions/expression-language/Expression.cpp
-index a25e1d3f..68d6320c 100644
---- a/extensions/expression-language/Expression.cpp
-+++ b/extensions/expression-language/Expression.cpp
-@@ -629,7 +629,8 @@ Value expr_toDate(const std::vector<Value> &args) {
- #endif // EXPRESSION_LANGUAGE_USE_DATE
-
- Value expr_now(const std::vector<Value> &args) {
-- return Value(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count());
-+ using Milliseconds = std::chrono::duration<std::int64_t, std::chrono::milliseconds::period>;
-+ return Value(std::chrono::duration_cast<Milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count());
- }
-
- Value expr_unescapeCsv(const std::vector<Value> &args) {
---
-2.31.1
-
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0001-civetweb-CMakeLists.txt-do-not-search-gcc-ar-and-gcc.patch b/meta-oe/recipes-extended/minifi-cpp/files/0001-civetweb-CMakeLists.txt-do-not-search-gcc-ar-and-gcc.patch
deleted file mode 100644
index bc480d9699..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/0001-civetweb-CMakeLists.txt-do-not-search-gcc-ar-and-gcc.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 0eee3fb85dad084b6b42f7b219d8aa3a62620a27 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Wed, 28 Oct 2020 09:52:40 +0800
-Subject: [PATCH] civetweb/CMakeLists.txt: do not search gcc-ar and gcc-ranlib
-
-Do not search gcc-ar and gcc-ranlib. Specify GCC_AR and GCC_RANLIB in
-EXTRA_OECMAKE to avoid host contamination.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- thirdparty/civetweb-1.10/CMakeLists.txt | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/thirdparty/civetweb-1.10/CMakeLists.txt b/thirdparty/civetweb-1.10/CMakeLists.txt
-index f559a04e..0689e3f6 100644
---- a/thirdparty/civetweb-1.10/CMakeLists.txt
-+++ b/thirdparty/civetweb-1.10/CMakeLists.txt
-@@ -246,11 +246,9 @@ set_property(CACHE CIVETWEB_CXX_STANDARD PROPERTY STRINGS auto c++14 c++11 c++98
-
- # Configure the linker
- if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
-- find_program(GCC_AR gcc-ar)
- if (GCC_AR)
- set(CMAKE_AR ${GCC_AR})
- endif()
-- find_program(GCC_RANLIB gcc-ranlib)
- if (GCC_RANLIB)
- set(CMAKE_RANLIB ${GCC_RANLIB})
- endif()
---
-2.17.1
-
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0001-civetweb-Disable-lto.patch b/meta-oe/recipes-extended/minifi-cpp/files/0001-civetweb-Disable-lto.patch
deleted file mode 100644
index ec4e6ffc45..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/0001-civetweb-Disable-lto.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 120c708d51f72ade4a31d3d8f35bcfad7b12e723 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Sep 2022 20:38:03 -0700
-Subject: [PATCH] civetweb: Disable lto
-
-lto does not work everywhere, therefore disable it atleast in the cmake
-file, we can still enable it via environment
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- thirdparty/civetweb-1.10/CMakeLists.txt | 4 ----
- 1 file changed, 4 deletions(-)
-
---- a/thirdparty/civetweb-1.10/CMakeLists.txt
-+++ b/thirdparty/civetweb-1.10/CMakeLists.txt
-@@ -298,7 +298,6 @@ add_c_compiler_flag(/WX)
- add_c_compiler_flag(-pedantic-errors)
- add_c_compiler_flag(-fvisibility=hidden)
- add_c_compiler_flag(-fstack-protector-strong RELEASE)
--add_c_compiler_flag(-flto RELEASE)
-
- add_c_compiler_flag(-fstack-protector-all DEBUG)
- if (MINGW)
-@@ -361,7 +360,6 @@ if (CIVETWEB_ENABLE_CXX)
- add_cxx_compiler_flag(-pedantic-errors)
- add_cxx_compiler_flag(-fvisibility=hidden)
- add_cxx_compiler_flag(-fstack-protector-strong RELEASE)
-- add_cxx_compiler_flag(-flto RELEASE)
-
- add_cxx_compiler_flag(-fstack-protector-all DEBUG)
- if (MINGW)
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0001-cxxopts-Add-limits-header.patch b/meta-oe/recipes-extended/minifi-cpp/files/0001-cxxopts-Add-limits-header.patch
deleted file mode 100644
index ef26c475d8..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/0001-cxxopts-Add-limits-header.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From fda0713ce3e07786757a057abe7ebf2146d33780 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 2 Mar 2021 18:31:45 -0800
-Subject: [PATCH] cxxopts: Add limits header
-
-needed for numeric_limits
-
-Upstream-Status: Submitted [https://github.com/apache/nifi-minifi-cpp/pull/1021]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- thirdparty/cxxopts/include/cxxopts.hpp | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/thirdparty/cxxopts/include/cxxopts.hpp
-+++ b/thirdparty/cxxopts/include/cxxopts.hpp
-@@ -29,6 +29,7 @@ THE SOFTWARE.
- #include <cctype>
- #include <exception>
- #include <iostream>
-+#include <limits>
- #include <map>
- #include <memory>
- #include <regex>
---- a/libminifi/src/utils/StringUtils.cpp
-+++ b/libminifi/src/utils/StringUtils.cpp
-@@ -21,6 +21,8 @@
- #include <Windows.h>
- #endif
-
-+#include <limits>
-+
- namespace org {
- namespace apache {
- namespace nifi {
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0002-Fix-osspuuid-build.patch b/meta-oe/recipes-extended/minifi-cpp/files/0002-Fix-osspuuid-build.patch
new file mode 100644
index 0000000000..65c52c6337
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0002-Fix-osspuuid-build.patch
@@ -0,0 +1,78 @@
+From 4e8e1943541d3b887ba86dc1b488cbb058c7d1cd Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Tue, 19 Mar 2024 20:48:25 +0800
+Subject: [PATCH] Fix osspuuid build
+
+* Specify correct configure options to fix osspuuid cross build.
+* Do not download osspuuid source during compile.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ cmake/BundledOSSPUUID.cmake | 10 +++++-----
+ .../ossp-uuid/ossp-uuid-cross-compile-fix.patch | 13 +++++++++++++
+ 2 files changed, 18 insertions(+), 5 deletions(-)
+ create mode 100644 thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch
+
+diff --git a/cmake/BundledOSSPUUID.cmake b/cmake/BundledOSSPUUID.cmake
+index c4fa1523..1faf2e5c 100644
+--- a/cmake/BundledOSSPUUID.cmake
++++ b/cmake/BundledOSSPUUID.cmake
+@@ -23,10 +23,12 @@ function(use_bundled_osspuuid SOURCE_DIR BINARY_DIR)
+ set(PATCH_FILE1 "${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-mac-fix.patch")
+ set(PATCH_FILE2 "${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-no-prog.patch")
+ set(PATCH_FILE3 "${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-update-config-guess.patch")
++ set(PATCH_FILE4 "${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch")
+ set(PC ${Bash_EXECUTABLE} -c "set -x &&\
+ (\"${Patch_EXECUTABLE}\" -p1 -R -s -f --dry-run -i \"${PATCH_FILE1}\" || \"${Patch_EXECUTABLE}\" -p1 -N -i \"${PATCH_FILE1}\") &&\
+ (\"${Patch_EXECUTABLE}\" -p1 -R -s -f --dry-run -i \"${PATCH_FILE2}\" || \"${Patch_EXECUTABLE}\" -p1 -N -i \"${PATCH_FILE2}\") &&\
+- (\"${Patch_EXECUTABLE}\" -p1 -R -s -f --dry-run -i \"${PATCH_FILE3}\" || \"${Patch_EXECUTABLE}\" -p1 -N -i \"${PATCH_FILE3}\") ")
++ (\"${Patch_EXECUTABLE}\" -p1 -R -s -f --dry-run -i \"${PATCH_FILE3}\" || \"${Patch_EXECUTABLE}\" -p1 -N -i \"${PATCH_FILE3}\") &&\
++ (\"${Patch_EXECUTABLE}\" -p1 -R -s -f --dry-run -i \"${PATCH_FILE4}\" || \"${Patch_EXECUTABLE}\" -p1 -N -i \"${PATCH_FILE4}\") ")
+
+ # Define byproducts
+ set(BYPRODUCTS "lib/libuuid.a"
+@@ -39,7 +41,7 @@ function(use_bundled_osspuuid SOURCE_DIR BINARY_DIR)
+ ENDFOREACH(BYPRODUCT)
+
+ # Build project
+- set(CONFIGURE_COMMAND ./configure "CC=${CMAKE_C_COMPILER}" "CXX=${CMAKE_CXX_COMPILER}" "CFLAGS=${PASSTHROUGH_CMAKE_C_FLAGS} -fPIC" "CXXFLAGS=${PASSTHROUGH_CMAKE_CXX_FLAGS} -fPIC" --enable-shared=no --with-cxx --without-perl --without-php --without-pgsql "--prefix=${BINARY_DIR}/thirdparty/ossp-uuid-install")
++ set(CONFIGURE_COMMAND ac_cv_va_copy=C99 ./configure --host=${HOST_SYS} --build=${BUILD_SYS} "CC=${CMAKE_C_COMPILER}" "CXX=${CMAKE_CXX_COMPILER}" "CFLAGS=${PASSTHROUGH_CMAKE_C_FLAGS} -fPIC" "CXXFLAGS=${PASSTHROUGH_CMAKE_CXX_FLAGS} -fPIC" --enable-shared=no --with-cxx --without-perl --without-php --without-pgsql "--prefix=${BINARY_DIR}/thirdparty/ossp-uuid-install")
+ string(TOLOWER "${CMAKE_BUILD_TYPE}" build_type)
+ if(NOT build_type MATCHES debug)
+ list(APPEND CONFIGURE_COMMAND --enable-debug=yes)
+@@ -47,10 +49,8 @@ function(use_bundled_osspuuid SOURCE_DIR BINARY_DIR)
+
+ ExternalProject_Add(
+ ossp-uuid-external
+- URL "https://deb.debian.org/debian/pool/main/o/ossp-uuid/ossp-uuid_1.6.2.orig.tar.gz"
+- URL_HASH "SHA256=11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0"
+ BUILD_IN_SOURCE true
+- SOURCE_DIR "${BINARY_DIR}/thirdparty/ossp-uuid-src"
++ SOURCE_DIR "${SOURCE_DIR}/thirdparty/uuid-1.6.2"
+ BUILD_COMMAND make
+ CMAKE_COMMAND ""
+ UPDATE_COMMAND ""
+diff --git a/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch b/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch
+new file mode 100644
+index 00000000..b8d7b0bb
+--- /dev/null
++++ b/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch
+@@ -0,0 +1,13 @@
++diff --git a/shtool b/shtool
++index a2d2567..ab4fe17 100755
++--- a/shtool
+++++ b/shtool
++@@ -1400,7 +1400,7 @@ install )
++ if [ ".$opt_t" = .yes ]; then
++ echo "strip $dsttmp" 1>&2
++ fi
++- strip $dsttmp || shtool_exit $?
+++ $STRIP $dsttmp || shtool_exit $?
++ fi
++ if [ ".$opt_o" != . ]; then
++ if [ ".$opt_t" = .yes ]; then
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0002-cmake-LibreSSL.cmake-use-libressl-local-source-tarba.patch b/meta-oe/recipes-extended/minifi-cpp/files/0002-cmake-LibreSSL.cmake-use-libressl-local-source-tarba.patch
deleted file mode 100644
index da5ee97540..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/0002-cmake-LibreSSL.cmake-use-libressl-local-source-tarba.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 5a5317044b0039e9e19aabcecb7b666a3f13e136 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Thu, 10 Sep 2020 15:08:19 +0800
-Subject: [PATCH] cmake/LibreSSL.cmake: use libressl local source tarball
-
-Do not download libressl source during compile.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- cmake/LibreSSL.cmake | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/cmake/LibreSSL.cmake b/cmake/LibreSSL.cmake
-index 57319e40..bab30129 100644
---- a/cmake/LibreSSL.cmake
-+++ b/cmake/LibreSSL.cmake
-@@ -43,9 +43,7 @@ function(use_libre_ssl SOURCE_DIR BINARY_DIR)
-
- ExternalProject_Add(
- libressl-portable
-- URL https://cdn.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.3.tar.gz https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.3.tar.gz https://gentoo.osuosl.org/distfiles/libressl-2.8.3.tar.gz
-- URL_HASH "SHA256=9b640b13047182761a99ce3e4f000be9687566e0828b4a72709e9e6a3ef98477"
-- SOURCE_DIR "${BINARY_DIR}/thirdparty/libressl-src"
-+ SOURCE_DIR "${SOURCE_DIR}/thirdparty/libressl-2.8.3"
- PATCH_COMMAND ${PATCH}
- CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
- "-DCMAKE_INSTALL_PREFIX=${BINARY_DIR}/thirdparty/libressl-install"
---
-2.17.1
-
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0003-Fix-libsodium-build.patch b/meta-oe/recipes-extended/minifi-cpp/files/0003-Fix-libsodium-build.patch
new file mode 100644
index 0000000000..a08962724e
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0003-Fix-libsodium-build.patch
@@ -0,0 +1,39 @@
+From 1c697e4d75f0045d5364d622960ff8047a4ad3ec Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Tue, 19 Mar 2024 20:56:05 +0800
+Subject: [PATCH] Fix libsodium build
+
+* Specify correct configure options to fix libsodium cross build.
+* Do not download libsodium source during compile.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ cmake/BundledLibSodium.cmake | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/cmake/BundledLibSodium.cmake b/cmake/BundledLibSodium.cmake
+index 3a3daf41..d851f753 100644
+--- a/cmake/BundledLibSodium.cmake
++++ b/cmake/BundledLibSodium.cmake
+@@ -58,14 +58,12 @@ function(use_bundled_libsodium SOURCE_DIR BINARY_DIR)
+ EXCLUDE_FROM_ALL TRUE
+ )
+ else()
+- set(CONFIGURE_COMMAND ./configure --disable-pie --enable-minimal "--prefix=${LIBSODIUM_BIN_DIR}")
++ set(CONFIGURE_COMMAND ./configure --host=${HOST_SYS} --build=${BUILD_SYS} --disable-pie --enable-minimal "--prefix=${LIBSODIUM_BIN_DIR}")
+
+ ExternalProject_Add(
+ libsodium-external
+- URL "${LIBSODIUM_OFFICIAL_MIRROR_URL} ${LIBSODIUM_GITHUB_MIRROR_URL} ${LIBSODIUM_GENTOO_MIRROR_URL}"
+- URL_HASH ${LIBSODIUM_URL_HASH}
+ BUILD_IN_SOURCE true
+- SOURCE_DIR "${BINARY_DIR}/thirdparty/libsodium-src"
++ SOURCE_DIR "${SOURCE_DIR}/thirdparty/libsodium-stable"
+ BUILD_COMMAND make
+ CMAKE_COMMAND ""
+ UPDATE_COMMAND ""
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0003-cmake-BundledOSSPUUID.cmake-use-ossp-uuid-local-sour.patch b/meta-oe/recipes-extended/minifi-cpp/files/0003-cmake-BundledOSSPUUID.cmake-use-ossp-uuid-local-sour.patch
deleted file mode 100644
index a39e15b791..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/0003-cmake-BundledOSSPUUID.cmake-use-ossp-uuid-local-sour.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 74ade26f7ccd0dbc4ad97cb3082204118a67c92b Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Thu, 10 Sep 2020 15:12:41 +0800
-Subject: [PATCH] cmake/BundledOSSPUUID.cmake: use ossp-uuid local source
- tarball
-
-Do not download ossp-uuid source during compile.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- cmake/BundledOSSPUUID.cmake | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/cmake/BundledOSSPUUID.cmake b/cmake/BundledOSSPUUID.cmake
-index 1103156d..0cf4bac0 100644
---- a/cmake/BundledOSSPUUID.cmake
-+++ b/cmake/BundledOSSPUUID.cmake
-@@ -47,10 +47,8 @@ function(use_bundled_osspuuid SOURCE_DIR BINARY_DIR)
-
- ExternalProject_Add(
- ossp-uuid-external
-- URL "https://deb.debian.org/debian/pool/main/o/ossp-uuid/ossp-uuid_1.6.2.orig.tar.gz"
-- URL_HASH "SHA256=11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0"
- BUILD_IN_SOURCE true
-- SOURCE_DIR "${BINARY_DIR}/thirdparty/ossp-uuid-src"
-+ SOURCE_DIR "${SOURCE_DIR}/thirdparty/uuid-1.6.2"
- BUILD_COMMAND make
- CMAKE_COMMAND ""
- UPDATE_COMMAND ""
---
-2.17.1
-
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0004-Fix-spdlog-build.patch b/meta-oe/recipes-extended/minifi-cpp/files/0004-Fix-spdlog-build.patch
new file mode 100644
index 0000000000..177c6adee6
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0004-Fix-spdlog-build.patch
@@ -0,0 +1,44 @@
+From 8a5fe73f722718aa5c9a467c28a26913771f7208 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Tue, 19 Mar 2024 20:57:37 +0800
+Subject: [PATCH] Fix spdlog build
+
+* Specify CMAKE_INSTALL_LIBDIR to fix multilib build.
+* Do not download spdlog source during compile.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ cmake/BundledSpdlog.cmake | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/BundledSpdlog.cmake b/cmake/BundledSpdlog.cmake
+index 974cbbaa..c0c45688 100644
+--- a/cmake/BundledSpdlog.cmake
++++ b/cmake/BundledSpdlog.cmake
+@@ -35,11 +35,12 @@ function(use_bundled_spdlog SOURCE_DIR BINARY_DIR)
+ endif()
+
+ # Set build options
+- set(SPDLOG_SOURCE_DIR "${BINARY_DIR}/thirdparty/spdlog-src")
++ set(SPDLOG_SOURCE_DIR "${SOURCE_DIR}/thirdparty/spdlog-src")
+ set(SPDLOG_INSTALL_DIR "${BINARY_DIR}/thirdparty/spdlog-install")
+ set(SPDLOG_LIBRARY "${SPDLOG_INSTALL_DIR}/${BYPRODUCT}")
+ set(SPDLOG_CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
+ "-DCMAKE_INSTALL_PREFIX=${SPDLOG_INSTALL_DIR}"
++ "-DCMAKE_INSTALL_LIBDIR=${LIBDIR}"
+ "-DSPDLOG_BUILD_EXAMPLE=OFF"
+ "-DSPDLOG_BUILD_TESTS=OFF"
+ "-DSPDLOG_BUILD_TESTING=OFF"
+@@ -49,7 +50,6 @@ function(use_bundled_spdlog SOURCE_DIR BINARY_DIR)
+ # Build project
+ ExternalProject_Add(
+ spdlog-external
+- URL "https://github.com/gabime/spdlog/archive/v1.8.0.zip"
+ SOURCE_DIR "${SPDLOG_SOURCE_DIR}"
+ CMAKE_ARGS ${SPDLOG_CMAKE_ARGS}
+ BUILD_BYPRODUCTS "${SPDLOG_LIBRARY}"
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0005-Pass-noline-flag-to-flex.patch b/meta-oe/recipes-extended/minifi-cpp/files/0005-Pass-noline-flag-to-flex.patch
new file mode 100644
index 0000000000..53939131ff
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0005-Pass-noline-flag-to-flex.patch
@@ -0,0 +1,31 @@
+From 083babbd6c6cc6f31530fbac0227c1d426fb0863 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Tue, 19 Mar 2024 21:00:59 +0800
+Subject: [PATCH] Pass --noline flag to flex
+
+This ensures that line directive is not emitted into lexer output which
+could be absolute build paths.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ extensions/expression-language/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/extensions/expression-language/CMakeLists.txt b/extensions/expression-language/CMakeLists.txt
+index 775b4116..84edc617 100644
+--- a/extensions/expression-language/CMakeLists.txt
++++ b/extensions/expression-language/CMakeLists.txt
+@@ -77,7 +77,7 @@ flex_target(
+ el-scanner
+ ${CMAKE_CURRENT_SOURCE_DIR}/Scanner.ll
+ ${CMAKE_CURRENT_SOURCE_DIR}/Scanner.cpp
+- COMPILE_FLAGS --c++
++ COMPILE_FLAGS "--c++ --noline"
+ )
+
+ add_flex_bison_dependency(el-scanner el-parser)
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0006-OsUtils.h-add-missing-header-cstdint-for-int64_t.patch b/meta-oe/recipes-extended/minifi-cpp/files/0006-OsUtils.h-add-missing-header-cstdint-for-int64_t.patch
new file mode 100644
index 0000000000..38893e74ac
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0006-OsUtils.h-add-missing-header-cstdint-for-int64_t.patch
@@ -0,0 +1,36 @@
+From 08d1b4b66fedde97eefb5e3ff6aa98fd02be7c21 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 20 Mar 2024 10:03:14 +0800
+Subject: [PATCH] OsUtils.h: add missing header <cstdint> for int64_t
+
+Fix build with musl:
+libminifi/include/utils/OsUtils.h:31:1: error: 'int64_t' does not name a type
+ 31 | int64_t getCurrentProcessPhysicalMemoryUsage();
+ | ^~~~~~~
+libminifi/include/utils/OsUtils.h:22:1: note: 'int64_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
+ 21 | #include <system_error>
+ +++ |+#include <cstdint>
+ 22 |
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ libminifi/include/utils/OsUtils.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libminifi/include/utils/OsUtils.h b/libminifi/include/utils/OsUtils.h
+index a7117233..5e623d1a 100644
+--- a/libminifi/include/utils/OsUtils.h
++++ b/libminifi/include/utils/OsUtils.h
+@@ -19,6 +19,7 @@
+ #include <string>
+ #include <optional>
+ #include <system_error>
++#include <cstdint>
+
+ struct sockaddr;
+
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0007-CMakeLists.txt-do-not-use-ccache.patch b/meta-oe/recipes-extended/minifi-cpp/files/0007-CMakeLists.txt-do-not-use-ccache.patch
new file mode 100644
index 0000000000..73a59f2a84
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0007-CMakeLists.txt-do-not-use-ccache.patch
@@ -0,0 +1,38 @@
+From 44867a8e4100a7296b98e0e850d950d24b980959 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Thu, 21 Mar 2024 10:18:39 +0800
+Subject: [PATCH] CMakeLists.txt: do not use ccache
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ CMakeLists.txt | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8a1dd6d91..8a5314544 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -82,12 +82,12 @@ if (USE_REAL_ODBC_TEST_DRIVER)
+ endif()
+
+ # Use ccache if present
+-find_program(CCACHE_FOUND ccache)
+-if(CCACHE_FOUND)
+- set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
+- set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
+- message("-- Found ccache: ${CCACHE_FOUND}")
+-endif(CCACHE_FOUND)
++#find_program(CCACHE_FOUND ccache)
++#if(CCACHE_FOUND)
++# set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
++# set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
++# message("-- Found ccache: ${CCACHE_FOUND}")
++#endif(CCACHE_FOUND)
+
+ # Use gold linker if instructed
+ if (UNIX AND USE_GOLD_LINKER AND NOT APPLE )
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0008-libsodium-aarch64_crypto.patch b/meta-oe/recipes-extended/minifi-cpp/files/0008-libsodium-aarch64_crypto.patch
new file mode 100644
index 0000000000..c2c51148f6
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0008-libsodium-aarch64_crypto.patch
@@ -0,0 +1,38 @@
+Move target #pragma after arm_neon.h include
+
+Fix per android/ndk#1945
+
+If the pragma is done before the header include,
+when using clang compiler attribute may apply to the functions in arm_neon.h
+
+Upstream-Status: Submitted [https://github.com/jedisct1/libsodium/pull/1321]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/thirdparty/libsodium-stable/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c
++++ b/thirdparty/libsodium-stable/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c
+@@ -19,12 +19,6 @@
+ #define __vectorcall
+ #endif
+
+-#ifdef __clang__
+-#pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
+-#elif defined(__GNUC__)
+-#pragma GCC target("+simd+crypto")
+-#endif
+-
+ #ifndef __ARM_FEATURE_CRYPTO
+ #define __ARM_FEATURE_CRYPTO 1
+ #endif
+@@ -34,6 +28,12 @@
+
+ #include <arm_neon.h>
+
++#ifdef __clang__
++#pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
++#elif defined(__GNUC__)
++#pragma GCC target("+simd+crypto")
++#endif
++
+ #define ABYTES crypto_aead_aes256gcm_ABYTES
+ #define NPUBBYTES crypto_aead_aes256gcm_NPUBBYTES
+ #define KEYBYTES crypto_aead_aes256gcm_KEYBYTES
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch
deleted file mode 100644
index d0febfd534..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -urN -x .git orig/thirdparty/libressl/avoid-BSWAP-assembly-for-ARM-v6.patch patched/thirdparty/libressl/avoid-BSWAP-assembly-for-ARM-v6.patch
---- orig/thirdparty/libressl/avoid-BSWAP-assembly-for-ARM-v6.patch 1970-01-01 09:00:00.000000000 +0900
-+++ patched/thirdparty/libressl/avoid-BSWAP-assembly-for-ARM-v6.patch 2020-08-07 23:14:46.196764271 +0900
-@@ -0,0 +1,30 @@
-+This patch was imported from the libressl potable.
-+https://github.com/libressl-portable/portable/commit/a9332ccecfce63bf54924e70c11f420edd3ae312
-+
-+From a9332ccecfce63bf54924e70c11f420edd3ae312 Mon Sep 17 00:00:00 2001
-+From: Brent Cook <bcook@openbsd.org>
-+Date: Sun, 17 Jul 2016 18:12:23 -0500
-+Subject: [PATCH] avoid BSWAP assembly for ARM <= v6
-+
-+diff -urN orig/crypto/modes/modes_lcl.h patched/crypto/modes/modes_lcl.h
-+--- orig/crypto/modes/modes_lcl.h 2018-11-18 21:27:10.000000000 +0900
-++++ patched/crypto/modes/modes_lcl.h 2020-08-07 23:11:01.960764745 +0900
-+@@ -45,14 +45,16 @@
-+ asm ("bswapl %0" \
-+ : "+r"(ret)); ret; })
-+ # elif (defined(__arm__) || defined(__arm)) && !defined(__STRICT_ALIGNMENT)
-+-# define BSWAP8(x) ({ u32 lo=(u64)(x)>>32,hi=(x); \
-++# if (__ARM_ARCH >= 6)
-++# define BSWAP8(x) ({ u32 lo=(u64)(x)>>32,hi=(x); \
-+ asm ("rev %0,%0; rev %1,%1" \
-+ : "+r"(hi),"+r"(lo)); \
-+ (u64)hi<<32|lo; })
-+-# define BSWAP4(x) ({ u32 ret; \
-++# define BSWAP4(x) ({ u32 ret; \
-+ asm ("rev %0,%1" \
-+ : "=r"(ret) : "r"((u32)(x))); \
-+ ret; })
-++# endif
-+ # endif
-+ #endif
-+ #endif
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch
deleted file mode 100644
index 84b8c8cb0e..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -urN -x .git orig/cmake/LibreSSL.cmake patched/cmake/LibreSSL.cmake
---- orig/cmake/LibreSSL.cmake 2020-08-07 21:58:34.660773928 +0900
-+++ patched/cmake/LibreSSL.cmake 2020-08-07 22:51:18.620767245 +0900
-@@ -18,6 +18,9 @@
- function(use_libre_ssl SOURCE_DIR BINARY_DIR)
- message("Using bundled LibreSSL from release")
-
-+ find_package(Patch REQUIRED)
-+ set(PATCH "${Patch_EXECUTABLE}" -p1 -i "${SOURCE_DIR}/thirdparty/libressl/avoid-BSWAP-assembly-for-ARM-v6.patch")
-+
- set(BYPRODUCT_PREFIX "lib" CACHE STRING "" FORCE)
- set(BYPRODUCT_SUFFIX ".a" CACHE STRING "" FORCE)
-
-@@ -27,16 +30,29 @@
- set(BYPRODUCT_PREFIX "" CACHE STRING "" FORCE)
- set(BUILD_ARGS " -GVisual Studio 15 2017")
- endif(WIN32)
-+
-+ set(BYPRODUCTS
-+ "lib/${BYPRODUCT_PREFIX}crypto${BYPRODUCT_SUFFIX}"
-+ "lib/${BYPRODUCT_PREFIX}ssl${BYPRODUCT_SUFFIX}"
-+ "lib/${BYPRODUCT_PREFIX}tls${BYPRODUCT_SUFFIX}"
-+ )
-+ set(LIBRESSL_INSTALL_DIR "${BINARY_DIR}/thirdparty/libressl-install" CACHE STRING "" FORCE)
-+ FOREACH(BYPRODUCT ${BYPRODUCTS})
-+ LIST(APPEND LIBRESSL_LIBRARIES_LIST "${LIBRESSL_INSTALL_DIR}/${BYPRODUCT}")
-+ ENDFOREACH(BYPRODUCT)
-+
- ExternalProject_Add(
- libressl-portable
- URL https://cdn.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.3.tar.gz https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.3.tar.gz https://gentoo.osuosl.org/distfiles/libressl-2.8.3.tar.gz
- URL_HASH "SHA256=9b640b13047182761a99ce3e4f000be9687566e0828b4a72709e9e6a3ef98477"
- SOURCE_DIR "${BINARY_DIR}/thirdparty/libressl-src"
-+ PATCH_COMMAND ${PATCH}
- CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
- "-DCMAKE_INSTALL_PREFIX=${BINARY_DIR}/thirdparty/libressl-install"
- "-DLIBRESSL_APPS=OFF"
- "-DLIBRESSL_TESTS=OFF"
- "${BUILD_ARGS}"
-+ BUILD_BYPRODUCTS ${LIBRESSL_LIBRARIES_LIST}
- )
-
- add_library(crypto STATIC IMPORTED)
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch
deleted file mode 100644
index 9653ba3426..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff -urN -x .git orig/CMakeLists.txt patched/CMakeLists.txt
---- orig/CMakeLists.txt 2020-08-07 21:58:34.656773928 +0900
-+++ patched/CMakeLists.txt 2020-08-10 15:08:31.800278357 +0900
-@@ -119,13 +119,28 @@
- endif()
- endif()
-
-+include(CheckCXXSourceCompiles)
-+CHECK_CXX_SOURCE_COMPILES("
-+ #include <atomic>
-+ int main(int argc, char **argv) {
-+ uint8_t m;
-+ __atomic_load_8(&m, 0);
-+ __atomic_fetch_add_1(&m , 0, 0);
-+ return 0;
-+ }"
-+ HAVE_ATOMIC
-+)
-+if(NOT HAVE_ATOMIC)
-+ set(LIB_ATOMIC atomic)
-+endif()
-+
- # Use ccache if present
--find_program(CCACHE_FOUND ccache)
--if(CCACHE_FOUND)
-- set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
-- set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
-- message("-- Found ccache: ${CCACHE_FOUND}")
--endif(CCACHE_FOUND)
-+#find_program(CCACHE_FOUND ccache)
-+#if(CCACHE_FOUND)
-+# set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
-+# set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
-+# message("-- Found ccache: ${CCACHE_FOUND}")
-+#endif(CCACHE_FOUND)
-
- if (UNIX AND USE_GOLD_LINKER AND NOT APPLE )
- execute_process(COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE ld_version)
-@@ -303,8 +318,10 @@
- GIT_TAG "f3294d9d86e6a7915a967efff2842089b8b0d071" # Version 7.64.0
- SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/thirdparty/curl-src"
- LIST_SEPARATOR % # This is needed for passing semicolon-separated lists
-+ TLS_VERIFY OFF
- CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
- "-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/thirdparty/curl-install"
-+ "-DCMAKE_INSTALL_LIBDIR=lib${LIBSUFFIX}"
- -DCMAKE_POSITION_INDEPENDENT_CODE=ON
- -DBUILD_CURL_EXE=OFF
- -DBUILD_TESTING=OFF
-diff -urN -x .git orig/libminifi/CMakeLists.txt patched/libminifi/CMakeLists.txt
---- orig/libminifi/CMakeLists.txt 2020-08-07 21:58:34.676773928 +0900
-+++ patched/libminifi/CMakeLists.txt 2020-08-10 15:06:17.124278642 +0900
-@@ -108,6 +108,7 @@
- add_library(spdlog STATIC ${SPD_SOURCES})
- add_library(core-minifi STATIC ${SOURCES})
- target_link_libraries(core-minifi ${CMAKE_DL_LIBS} yaml-cpp)
-+target_link_libraries(core-minifi ${LIB_ATOMIC})
-
- #target_link_libraries(core-minifi PRIVATE bsdiff )
-
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch
deleted file mode 100644
index 42e1e583c3..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -urN -x .git orig/cmake/BundledOSSPUUID.cmake patched/cmake/BundledOSSPUUID.cmake
---- orig/cmake/BundledOSSPUUID.cmake 2020-08-07 21:58:34.660773928 +0900
-+++ patched/cmake/BundledOSSPUUID.cmake 2020-08-07 22:05:57.404772993 +0900
-@@ -22,7 +22,9 @@
-
- # Define patch step
- find_package(Patch REQUIRED)
-- set(PC "${Patch_EXECUTABLE}" -p1 -i "${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-mac-fix.patch")
-+ set(PATCH1 "${Patch_EXECUTABLE}" -p1 -i "${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-mac-fix.patch")
-+ set(PATCH2 "${Patch_EXECUTABLE}" -p1 -i "${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch")
-+ set(PATCH3 "${Patch_EXECUTABLE}" -p1 -i "${SOURCE_DIR}/thirdparty/ossp-uuid/ossp-uuid-musl-compile-fix.patch")
-
- # Define byproducts
- set(BYPRODUCTS "lib/libuuid.a"
-@@ -35,7 +37,9 @@
- ENDFOREACH(BYPRODUCT)
-
- # Build project
-- set(CONFIGURE_COMMAND ./configure "CFLAGS=-fPIC" "CXXFLAGS=-fPIC" --with-cxx --without-perl --without-php --without-pgsql "--prefix=${BINARY_DIR}/thirdparty/ossp-uuid-install")
-+ set(CONFIGURE_COMMAND ac_cv_va_copy=C99 ./configure CFLAGS=-fPIC CXXFLAGS=-fPIC --host=${HOST_SYS}
-+ --with-cxx --without-perl --without-php --without-pgsql
-+ --prefix=${BINARY_DIR}/thirdparty/ossp-uuid-install)
- string(TOLOWER "${CMAKE_BUILD_TYPE}" build_type)
- if(NOT build_type MATCHES debug)
- list(APPEND CONFIGURE_COMMAND --enable-debug=yes)
-@@ -52,8 +56,8 @@
- UPDATE_COMMAND ""
- INSTALL_COMMAND make install
- BUILD_BYPRODUCTS ${OSSPUUID_LIBRARIES_LIST}
-- CONFIGURE_COMMAND ""
-- PATCH_COMMAND ${PC} && ${CONFIGURE_COMMAND}
-+ CONFIGURE_COMMAND ${CONFIGURE_COMMAND}
-+ PATCH_COMMAND ${PATCH1} && ${PATCH2} && ${PATCH3}
- STEP_TARGETS build
- EXCLUDE_FROM_ALL TRUE
- )
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-cross-compile.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-cross-compile.patch
deleted file mode 100644
index dc354d9ac7..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-cross-compile.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff -urN -x .git orig/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch patched/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch
---- orig/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch 1970-01-01 09:00:00.000000000 +0900
-+++ patched/thirdparty/ossp-uuid/ossp-uuid-cross-compile-fix.patch 2020-08-07 22:28:04.396770190 +0900
-@@ -0,0 +1,33 @@
-+diff -urN orig/config.sub patched/config.sub
-+--- orig/config.sub 2008-07-05 06:43:08.000000000 +0900
-++++ patched/config.sub 2020-08-07 22:23:48.412770731 +0900
-+@@ -238,6 +238,8 @@
-+ # Some are omitted here because they have special meanings below.
-+ 1750a | 580 \
-+ | a29k \
-++ | aarch64 | aarch64_be \
-++ | riscv32 | riscv64 \
-+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-+ | am33_2.0 \
-+@@ -314,6 +316,8 @@
-+ # Recognize the basic CPU types with company name.
-+ 580-* \
-+ | a29k-* \
-++ | aarch64-* | aarch64_be-* \
-++ | riscv32-* | riscv64-* \
-+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
-+diff -urN orig/shtool patched/shtool
-+--- orig/shtool 2008-07-05 06:43:08.000000000 +0900
-++++ patched/shtool 2020-08-07 22:21:23.192771037 +0900
-+@@ -1400,7 +1400,7 @@
-+ if [ ".$opt_t" = .yes ]; then
-+ echo "strip $dsttmp" 1>&2
-+ fi
-+- strip $dsttmp || shtool_exit $?
-++ $STRIP $dsttmp || shtool_exit $?
-+ fi
-+ if [ ".$opt_o" != . ]; then
-+ if [ ".$opt_t" = .yes ]; then
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-musl-compile.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-musl-compile.patch
deleted file mode 100644
index 7caf848eb5..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-musl-compile.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -urN -x .git orig/thirdparty/ossp-uuid/ossp-uuid-musl-compile-fix.patch patched/thirdparty/ossp-uuid/ossp-uuid-musl-compile-fix.patch
---- orig/thirdparty/ossp-uuid/ossp-uuid-musl-compile-fix.patch 1970-01-01 09:00:00.000000000 +0900
-+++ patched/thirdparty/ossp-uuid/ossp-uuid-musl-compile-fix.patch 2020-08-07 11:22:49.344854508 +0900
-@@ -0,0 +1,21 @@
-+diff -urN orig/config.sub patched/config.sub
-+--- orig/config.sub 2008-07-05 06:43:08.000000000 +0900
-++++ patched/config.sub 2020-08-07 11:19:25.948854937 +0900
-+@@ -120,7 +120,7 @@
-+ # Here we must recognize all the valid KERNEL-OS combinations.
-+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-+ case $maybe_os in
-+- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
-++ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | linux-musl* | \
-+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
-+ storm-chaos* | os2-emx* | rtmk-nova*)
-+ os=-$maybe_os
-+@@ -1250,7 +1250,7 @@
-+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-+ | -chorusos* | -chorusrdb* \
-+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-+- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
-++ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* | -linux-musl* \
-+ | -uxpv* | -beos* | -mpeix* | -udk* \
-+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/fix-rocksdb-cross-compile.patch b/meta-oe/recipes-extended/minifi-cpp/files/fix-rocksdb-cross-compile.patch
deleted file mode 100644
index 8c5db7c9e3..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/fix-rocksdb-cross-compile.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urN orig/thirdparty/rocksdb/CMakeLists.txt patched/thirdparty/rocksdb/CMakeLists.txt
---- orig/thirdparty/rocksdb/CMakeLists.txt 2020-07-28 11:39:40.254677515 +0900
-+++ patched/thirdparty/rocksdb/CMakeLists.txt 2020-07-28 11:51:11.898676054 +0900
-@@ -618,6 +618,7 @@
- add_library(${ROCKSDB_STATIC_LIB} STATIC ${SOURCES})
- target_link_libraries(${ROCKSDB_STATIC_LIB}
- ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
-+target_link_libraries(${ROCKSDB_STATIC_LIB} ${LIB_ATOMIC})
-
- if(WIN32)
- # add_library(${ROCKSDB_IMPORT_LIB} SHARED ${SOURCES})
-
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/minifi.service b/meta-oe/recipes-extended/minifi-cpp/files/minifi.service
deleted file mode 100644
index 059cdbcc23..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/minifi.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=MiNiFi Service
-After=network.target
-RequiresMountsFor=/var
-
-[Service]
-Type=simple
-WorkingDirectory=@LOCALSTATEDIR@/lib/minifi
-Environment=MINIFI_HOME=@SYSCONFDIR@/minifi
-ExecStart=@BINDIR@/minifi
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/remove_const_due_to_std_lock_guard.patch b/meta-oe/recipes-extended/minifi-cpp/files/remove_const_due_to_std_lock_guard.patch
deleted file mode 100644
index 2d66576f6e..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/files/remove_const_due_to_std_lock_guard.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From bfce136fa9ff1e955928539484ba4dd55f98f05b Mon Sep 17 00:00:00 2001
-From: Willem Jan Withagen <wjw@digiware.nl>
-Date: Sun, 16 Aug 2020 23:38:55 +0200
-Subject: [PATCH] Update channel.h
-
-Compiling this on FreeBSD with CLang fails due to:
-```In file included from /usr/ports/net/ceph15/work/ceph-15.2.4/src/rocksdb/utilities/backupable/backupable_db.cc:16:
-/usr/ports/net/ceph15/work/ceph-15.2.4/src/rocksdb/util/channel.h:35:33: error: no matching constructor for initialization of 'std::lock_guard<std::mutex>'
- std::lock_guard<std::mutex> lk(lock_);
- ^ ~~~~~
-/usr/include/c++/v1/__mutex_base:90:14: note: candidate constructor not viable: 1st argument ('const std::mutex') would lose const qualifier
- explicit lock_guard(mutex_type& __m) _LIBCPP_THREAD_SAFETY_ANNOTATION(acquire_capability(__m))
- ^
-/usr/include/c++/v1/__mutex_base:100:5: note: candidate constructor not viable: no known conversion from 'const std::mutex' to 'const std::__1::lock_guard<std::__1::mutex>' for 1st argument
- lock_guard(lock_guard const&) _LIBCPP_EQUAL_DELETE;
- ^
-/usr/include/c++/v1/__mutex_base:94:5: note: candidate constructor not viable: requires 2 arguments, but 1 was provided
- lock_guard(mutex_type& __m, adopt_lock_t) _LIBCPP_THREAD_SAFETY_ANNOTATION(requires_capability(__m))
- ^
-1 error generated.
-```
----
- thirdparty/rocksdb/util/channel.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/thirdparty/rocksdb/util/channel.h b/thirdparty/rocksdb/util/channel.h
-index 705fa2d28f..993bef5bc0 100644
---- a/thirdparty/rocksdb/util/channel.h
-+++ b/thirdparty/rocksdb/util/channel.h
-@@ -31,7 +31,7 @@ class channel {
- return buffer_.empty() && eof_;
- }
-
-- size_t size() const {
-+ size_t size() {
- std::lock_guard<std::mutex> lk(lock_);
- return buffer_.size();
- }
diff --git a/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb
new file mode 100644
index 0000000000..beb247c254
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb
@@ -0,0 +1,201 @@
+SUMMARY = "A subproject of Apache NiFi to collect data where it originates."
+DESCRIPTION = "MiNiFi--a subproject of Apache NiFi--is a complementary \
+data collection approach that supplements the core tenets of NiFi in dataflow \
+management, focusing on the collection of data at the source of its creation."
+HOMEPAGE = "https://nifi.apache.org/minifi/index.html"
+SECTION = "console/network"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c62efdfb90a8aa4cc3bc15f56baa30b7"
+
+SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git;protocol=https;branch=main \
+ git://github.com/martinmoene/expected-lite.git;protocol=https;branch=master;name=expected-lite;destsuffix=${S}/thirdparty/expected-lite-src \
+ git://github.com/ericniebler/range-v3.git;protocol=https;branch=master;name=range-v3;destsuffix=${S}/thirdparty/range-v3-src \
+ git://github.com/Neargye/magic_enum.git;protocol=https;branch=master;name=magic-enum;destsuffix=${S}/thirdparty/magic-enum-src \
+ git://github.com/jarro2783/cxxopts.git;protocol=https;branch=v2_2;name=cxxopts;destsuffix=${S}/thirdparty/cxxopts-src \
+ git://github.com/gsl-lite/gsl-lite.git;protocol=https;branch=master;name=gsl-lite;destsuffix=${S}/thirdparty/gsl-lite-src \
+ git://github.com/HowardHinnant/date.git;protocol=https;branch=master;name=date;destsuffix=${S}/thirdparty/date-src \
+ git://github.com/chriskohlhoff/asio.git;protocol=https;branch=master;name=asio;destsuffix=${S}/thirdparty/asio-src \
+ git://github.com/gabime/spdlog.git;protocol=https;branch=v1.x;name=spdlog;destsuffix=${S}/thirdparty/spdlog-src \
+ git://github.com/civetweb/civetweb.git;protocol=https;branch=master;name=civetweb;destsuffix=${S}/thirdparty/civetweb-src \
+ ${DEBIAN_MIRROR}/main/o/ossp-uuid/ossp-uuid_1.6.2.orig.tar.gz;name=ossp-uuid;subdir=${S}/thirdparty \
+ https://download.libsodium.org/libsodium/releases/libsodium-1.0.19.tar.gz;name=libsodium;subdir=${S}/thirdparty \
+ file://0001-Do-not-use-bundled-packages.patch \
+ file://0002-Fix-osspuuid-build.patch \
+ file://0003-Fix-libsodium-build.patch \
+ file://0004-Fix-spdlog-build.patch \
+ file://0005-Pass-noline-flag-to-flex.patch \
+ file://0006-OsUtils.h-add-missing-header-cstdint-for-int64_t.patch \
+ file://0007-CMakeLists.txt-do-not-use-ccache.patch \
+ file://0008-libsodium-aarch64_crypto.patch \
+ file://systemd-volatile.conf \
+ file://sysvinit-volatile.conf \
+ "
+
+SRCREV = "9b55dc0c0f17a190f3e9ade87070a28faf542c25"
+SRCREV_expected-lite = "c8ffab649ba56e43c731b7017a69ddaebe2e1893"
+SRCREV_range-v3 = "a81477931a8aa2ad025c6bda0609f38e09e4d7ec"
+SRCREV_magic-enum = "e1ea11a93d0bdf6aae415124ded6126220fa4f28"
+SRCREV_cxxopts = "302302b30839505703d37fb82f536c53cf9172fa"
+SRCREV_gsl-lite = "755ba124b54914e672737acace6a9314f59e8d6f"
+SRCREV_date = "6e921e1b1d21e84a5c82416ba7ecd98e33a436d0"
+SRCREV_asio = "814f67e730e154547aea3f4d99f709cbdf1ea4a0"
+SRCREV_spdlog = "7c02e204c92545f869e2f04edaab1f19fe8b19fd"
+SRCREV_civetweb = "d7ba35bbb649209c66e582d5a0244ba988a15159"
+
+SRCREV_FORMAT .= "_expected-lite_range-v3_magic-enum_cxxopts_gsl-lite_date_asio_spdlog_civetweb"
+
+SRC_URI[ossp-uuid.sha256sum] = "11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0"
+SRC_URI[libsodium.sha256sum] = "018d79fe0a045cca07331d37bd0cb57b2e838c51bc48fd837a1472e50068bbea"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig cmake systemd
+
+DEPENDS = "virtual/crypt bison-native flex-native flex openssl curl zlib xz bzip2 yaml-cpp"
+
+OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
+
+EXTRA_OECMAKE = " \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DHOST_SYS=${HOST_SYS} -DBUILD_SYS=${BUILD_SYS} \
+ -DGCC_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \
+ -DGCC_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \
+ -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \
+ -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines --file-prefix-map=${S}=${TARGET_DBGSRC_DIR}' \
+ -DENABLE_ENCRYPT_CONFIG=ON \
+ -DENABLE_LUA_SCRIPTING=OFF \
+ -DENABLE_PYTHON_SCRIPTING=OFF \
+ -DENABLE_AWS=OFF \
+ -DENABLE_AZURE=OFF \
+ -DENABLE_GCP=OFF \
+ -DENABLE_KUBERNETES=OFF \
+ -DENABLE_MQTT=OFF \
+ -DENABLE_ELASTICSEARCH=OFF \
+ -DENABLE_SQL=OFF \
+ -DENABLE_PROMETHEUS=OFF \
+ -DENABLE_PROCFS=OFF \
+ -DENABLE_SPLUNK=OFF \
+ -DENABLE_OPC=OFF \
+ -DENABLE_LIBRDKAFKA=OFF \
+ -DDISABLE_CURL=OFF \
+ -DDISABLE_BZIP2=OFF \
+ -DDISABLE_LZMA=OFF \
+ -DDISABLE_JEMALLOC=ON \
+ -DSKIP_TESTS=ON \
+ -DFETCHCONTENT_SOURCE_DIR_GSL-LITE=${S}/thirdparty/gsl-lite-src \
+ -DFETCHCONTENT_SOURCE_DIR_DATE_SRC=${S}/thirdparty/date-src \
+ -DFETCHCONTENT_SOURCE_DIR_EXPECTED-LITE=${S}/thirdparty/expected-lite-src \
+ -DFETCHCONTENT_SOURCE_DIR_RANGE-V3_SRC=${S}/thirdparty/range-v3-src \
+ -DFETCHCONTENT_SOURCE_DIR_MAGIC_ENUM=${S}/thirdparty/magic-enum-src \
+ -DFETCHCONTENT_SOURCE_DIR_ASIO=${S}/thirdparty/asio-src \
+ -DFETCHCONTENT_SOURCE_DIR_CXXOPTS_SRC=${S}/thirdparty/cxxopts-src \
+ -DFETCHCONTENT_SOURCE_DIR_CIVETWEB=${S}/thirdparty/civetweb-src \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DENABLE_SYSTEMD=ON', '-DENABLE_SYSTEMD=OFF', d)} \
+ "
+
+PACKAGECONFIG ??= "civetweb libarchive rocksdb expression-language"
+PACKAGECONFIG[civetweb] = "-DDISABLE_CIVET=OFF,-DDISABLE_CIVET=ON"
+PACKAGECONFIG[openwsman] = "-DENABLE_OPENWSMAN=ON,-DENABLE_OPENWSMAN=OFF,libxml2"
+PACKAGECONFIG[libarchive] = "-DDISABLE_LIBARCHIVE=OFF,-DDISABLE_LIBARCHIVE=ON,libarchive"
+PACKAGECONFIG[rocksdb] = "-DDISABLE_ROCKSDB=OFF -DBUILD_ROCKSDB=OFF,-DDISABLE_ROCKSDB=ON,rocksdb"
+PACKAGECONFIG[expression-language] = "-DDISABLE_EXPRESSION_LANGUAGE=OFF, -DDISABLE_EXPRESSION_LANGUAGE=ON"
+
+SYSTEMD_PACKAGES = "minifi-cpp"
+SYSTEMD_SERVICE:${PN} = "minifi.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+do_install[cleandirs] += "${WORKDIR}/minifi-install"
+PSEUDO_CONSIDER_PATHS .= ",${WORKDIR}/minifi-install"
+
+do_compile:prepend() {
+ # Remove build host references
+ sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
+ -e 's|${DEBUG_PREFIX_MAP}||g' \
+ -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
+ ${B}/libminifi/agent_version.cpp
+}
+
+do_install() {
+ DESTDIR='${WORKDIR}/minifi-install' cmake_runcmake_build --target ${OECMAKE_TARGET_INSTALL}
+ MINIFI_BIN=${bindir}
+ MINIFI_HOME=${sysconfdir}/minifi
+ MINIFI_RUN=${localstatedir}/lib/minifi
+ MINIFI_LOG=${localstatedir}/log/minifi
+
+ install -m 755 -d ${D}${MINIFI_BIN}
+ install -m 755 -d ${D}${MINIFI_HOME}/conf
+ install -m 755 -d ${D}${localstatedir}/lib/minifi
+
+ for i in encrypt-config minifi minifi.sh minificontroller; do
+ install -m 755 ${WORKDIR}/minifi-install/usr/bin/${i} ${D}${MINIFI_BIN}
+ done
+ for i in config.yml minifi-log.properties minifi.properties minifi-uid.properties; do
+ install -m 644 ${WORKDIR}/minifi-install/usr/conf/${i} ${D}${MINIFI_HOME}/conf
+ done
+
+ install -m 755 -d ${D}${libdir}/minifi-extensions
+ install -m 755 ${WORKDIR}/minifi-install/usr/bin/libcore-minifi.so ${D}${libdir}
+ install -m 755 ${WORKDIR}/minifi-install/usr/extensions/*.so ${D}${libdir}/minifi-extensions
+
+ install -m 755 -d ${D}${libexecdir}/minifi-python
+ for i in examples google h2o; do
+ cp -rf ${WORKDIR}/minifi-install/usr/minifi-python/${i} ${D}${libexecdir}/minifi-python
+ done
+
+ sed -i "s|MINIFI_HOME=.*|MINIFI_HOME=${MINIFI_HOME}|g" ${D}${MINIFI_BIN}/minifi.sh
+ sed -i "s|bin_dir=.*|bin_dir=${MINIFI_BIN}|g" ${D}${MINIFI_BIN}/minifi.sh
+
+ sed -i "s|#appender.rolling.directory=.*|appender.rolling.directory=${MINIFI_LOG}|g" \
+ ${D}${MINIFI_HOME}/conf/minifi-log.properties
+ sed -i "s|nifi.provenance.repository.directory.default=.*|nifi.provenance.repository.directory.default=${MINIFI_RUN}/provenance_repository|g" \
+ ${D}${MINIFI_HOME}/conf/minifi.properties
+ sed -i "s|nifi.flowfile.repository.directory.default=.*|nifi.flowfile.repository.directory.default=${MINIFI_RUN}/flowfile_repository|g" \
+ ${D}${MINIFI_HOME}/conf/minifi.properties
+ sed -i "s|nifi.database.content.repository.directory.default=.*|nifi.database.content.repository.directory.default=${MINIFI_RUN}/content_repository|g" \
+ ${D}${MINIFI_HOME}/conf/minifi.properties
+ sed -i "s|nifi.flow.configuration.file=.*|nifi.flow.configuration.file=${MINIFI_HOME}/conf/config.yml|g" \
+ ${D}${MINIFI_HOME}/conf/minifi.properties
+ sed -i "s|nifi.python.processor.dir=.*|nifi.python.processor.dir=${libexecdir}/minifi-python|g" \
+ ${D}${MINIFI_HOME}/conf/minifi.properties
+ sed -i "s|nifi.extension.path=.*|nifi.extension.path=${libdir}/minifi-extensions/*|g" \
+ ${D}${MINIFI_HOME}/conf/minifi.properties
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -m 755 -d ${D}${sysconfdir}/tmpfiles.d
+ install -m 644 ${WORKDIR}/systemd-volatile.conf ${D}${sysconfdir}/tmpfiles.d/minifi.conf
+ sed -i "s|@MINIFI_LOG@|${MINIFI_LOG}|g" ${D}${sysconfdir}/tmpfiles.d/minifi.conf
+
+ install -m 755 -d ${D}${systemd_system_unitdir}
+ install -m 644 ${WORKDIR}/minifi-install/usr/bin/minifi.service ${D}${systemd_system_unitdir}
+
+ sed -i -e "s|^Environment=.*|Environment=MINIFI_HOME=${MINIFI_HOME}|g" ${D}${systemd_system_unitdir}/minifi.service
+ sed -i -e "s|^ExecStart=.*|ExecStart=${MINIFI_BIN}/minifi|g" ${D}${systemd_system_unitdir}/minifi.service
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/sysvinit-volatile.conf ${D}${sysconfdir}/default/volatiles/99_minifi
+
+ sed -i "s|@MINIFI_LOG@|${MINIFI_LOG}|g" ${D}${sysconfdir}/default/volatiles/99_minifi
+ fi
+}
+
+pkg_postinst:${PN}() {
+ if [ -z "$D" ]; then
+ if type systemd-tmpfiles >/dev/null; then
+ systemd-tmpfiles --create
+ elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+ ${sysconfdir}/init.d/populate-volatile.sh update
+ fi
+ fi
+}
+
+FILES:${PN}-dev = ""
+FILES:${PN} += "${libdir}/libcore-minifi.so \
+ ${libdir}/minifi-extensions \
+ ${libexecdir}/minifi-python \
+ "
+
+INSANE_SKIP:${PN} += "dev-deps"
+
+CLEANBROKEN = "1"
diff --git a/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
deleted file mode 100644
index b843f72a52..0000000000
--- a/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
+++ /dev/null
@@ -1,153 +0,0 @@
-SUMMARY = "A subproject of Apache NiFi to collect data where it originates."
-DESCRIPTION = "MiNiFi--a subproject of Apache NiFi--is a complementary \
-data collection approach that supplements the core tenets of NiFi in dataflow \
-management, focusing on the collection of data at the source of its creation."
-HOMEPAGE = "https://nifi.apache.org/minifi/index.html"
-SECTION = "console/network"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f9534eb5f4ab800b573a37bffc62f3a7"
-
-DEPENDS = "virtual/crypt expat flex python3 bison-native libxml2 nettle lz4"
-RDEPENDS:${PN} = "python3-core"
-
-SRCREV = "aa42957a2e227df41510047cece3cd606dc1cb6a"
-SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git;branch=master;protocol=https \
- https://curl.haxx.se/download/curl-7.64.0.tar.bz2;name=curl;subdir=git/thirdparty \
- https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.3.tar.gz;name=libressl;subdir=git/thirdparty \
- ${DEBIAN_MIRROR}/main/o/ossp-uuid/ossp-uuid_1.6.2.orig.tar.gz;name=ossp-uuid;subdir=git/thirdparty \
- file://fix-minifi-compile.patch \
- file://fix-libressl-compile.patch \
- file://fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch \
- file://fix-osspuuid-compile.patch \
- file://fix-osspuuid-cross-compile.patch \
- file://fix-osspuuid-musl-compile.patch \
- file://fix-rocksdb-cross-compile.patch \
- file://remove_const_due_to_std_lock_guard.patch \
- file://0001-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch \
- file://0001-CMakeLists.txt-use-curl-local-source-tarball.patch \
- file://0002-cmake-LibreSSL.cmake-use-libressl-local-source-tarba.patch \
- file://0003-cmake-BundledOSSPUUID.cmake-use-ossp-uuid-local-sour.patch \
- file://0001-civetweb-CMakeLists.txt-do-not-search-gcc-ar-and-gcc.patch \
- file://0001-cxxopts-Add-limits-header.patch \
- file://0001-Fix-build-with-libc.patch \
- file://0001-civetweb-Disable-lto.patch \
- file://minifi.service \
- file://systemd-volatile.conf \
- file://sysvinit-volatile.conf \
- "
-
-SRC_URI[curl.md5sum] = "d0bcc586873cfef08b4b9594e5395a33"
-SRC_URI[curl.sha256sum] = "d573ba1c2d1cf9d8533fadcce480d778417964e8d04ccddcc76e591d544cf2eb"
-SRC_URI[libressl.md5sum] = "0f1127bd21b4aa8495a910379c2ad936"
-SRC_URI[libressl.sha256sum] = "9b640b13047182761a99ce3e4f000be9687566e0828b4a72709e9e6a3ef98477"
-SRC_URI[ossp-uuid.md5sum] = "5db0d43a9022a6ebbbc25337ae28942f"
-SRC_URI[ossp-uuid.sha256sum] = "11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0"
-
-S = "${WORKDIR}/git"
-
-inherit pkgconfig cmake systemd
-
-SYSTEMD_PACKAGES = "minifi-cpp"
-SYSTEMD_SERVICE:${PN} = "minifi.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
-
-EXTRA_OECMAKE += " \
- -DHOST_SYS=${HOST_SYS} -DBUILD_SYS=${BUILD_SYS} \
- -DSKIP_TESTS=ON \
- -DGCC_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \
- -DGCC_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \
- -DDISABLE_PYTHON_SCRIPTING=ON \
- "
-EXTRA_OECMAKE:append:toolchain-clang = " -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib"
-LDFLAGS:append:toolchain-clang = " -fuse-ld=lld"
-
-# RV lld errors out:
-# riscv64-yoe-linux-ld.lld: error: init.c:(.text+0x0): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
-LDFLAGS:remove:riscv32 = "-fuse-ld=lld"
-LDFLAGS:remove:riscv64 = "-fuse-ld=lld"
-
-# There are endian issues when communicating with the x86 nifi on the the mips and the ppc machines.
-COMPATIBLE_MACHINE:mips = "(!.*mips).*"
-COMPATIBLE_MACHINE:mips64 = "(!.*mips64).*"
-COMPATIBLE_MACHINE:powerpc = "(!.*ppc).*"
-
-TARGET_CFLAGS:append:riscv32 = " -fpic"
-TARGET_CXXFLAGS:append:riscv32 = " -fpic"
-TARGET_CFLAGS:append:riscv64 = " -fpic"
-TARGET_CXXFLAGS:append:riscv64 = " -fpic"
-
-do_install[cleandirs] += "${WORKDIR}/minifi-install"
-PSEUDO_CONSIDER_PATHS .= ",${WORKDIR}/minifi-install"
-
-do_configure:prepend:libc-musl() {
- sed -i -e 's/-DHAVE_GLIBC_STRERROR_R=1/-DHAVE_GLIBC_STRERROR_R=0/' ${S}/CMakeLists.txt
- sed -i -e 's/-DHAVE_POSIX_STRERROR_R=0/-DHAVE_POSIX_STRERROR_R=1/' ${S}/CMakeLists.txt
-}
-
-CFLAGS:append:libc-glibc = " -D_GNU_SOURCE"
-CXXFLAGS:append:libc-glibc = " -D_GNU_SOURCE"
-
-do_install() {
- DESTDIR='${WORKDIR}/minifi-install' cmake_runcmake_build --target ${OECMAKE_TARGET_INSTALL}
- MINIFI_BIN=${bindir}
- MINIFI_HOME=${sysconfdir}/minifi
- MINIFI_RUN=${localstatedir}/lib/minifi
- MINIFI_LOG=${localstatedir}/log/minifi
-
- install -d ${D}${MINIFI_BIN}
- install -d ${D}${MINIFI_HOME}/conf
- install -m 755 -d ${D}${localstatedir}/lib/minifi
- install -m 755 -d ${D}${libexecdir}/minifi-python
- cp -a ${WORKDIR}/minifi-install/usr/bin/* ${D}${MINIFI_BIN}/
- cp -a ${WORKDIR}/minifi-install/usr/conf/* ${D}${MINIFI_HOME}/conf/
-
- sed -i 's|#appender.rolling.directory=.*|appender.rolling.directory='${MINIFI_LOG}'|g' \
- ${D}${MINIFI_HOME}/conf/minifi-log.properties
- sed -i 's|nifi.provenance.repository.directory.default=.*|nifi.provenance.repository.directory.default='${MINIFI_RUN}'/provenance_repository|g' \
- ${D}${MINIFI_HOME}/conf/minifi.properties
- sed -i 's|nifi.flowfile.repository.directory.default=.*|nifi.flowfile.repository.directory.default='${MINIFI_RUN}'/flowfile_repository|g' \
- ${D}${MINIFI_HOME}/conf/minifi.properties
- sed -i 's|nifi.database.content.repository.directory.default=.*|nifi.database.content.repository.directory.default='${MINIFI_RUN}'/content_repository|g' \
- ${D}${MINIFI_HOME}/conf/minifi.properties
- sed -i 's|nifi.flow.configuration.file=.*|nifi.flow.configuration.file='${MINIFI_HOME}'/conf/config.yml|g' \
- ${D}${MINIFI_HOME}/conf/minifi.properties
- sed -i 's|nifi.python.processor.dir=.*|nifi.python.processor.dir=${libexecdir}/minifi-python|g' \
- ${D}${MINIFI_HOME}/conf/minifi.properties
-
- sed -i 's|export MINIFI_HOME=.*|export MINIFI_HOME='${MINIFI_HOME}'|g' ${D}${MINIFI_BIN}/minifi.sh
- sed -i 's|bin_dir=${MINIFI_HOME}/bin|bin_dir='${MINIFI_BIN}'|g' ${D}${MINIFI_BIN}/minifi.sh
- sed -i 's|pid_file=${bin_dir}/.|pid_file='${localstatedir}/run/'|g' ${D}${MINIFI_BIN}/minifi.sh
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d/
- install -m 0644 ${WORKDIR}/systemd-volatile.conf ${D}${sysconfdir}/tmpfiles.d/minifi.conf
- install -m 0755 -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/minifi.service ${D}${systemd_unitdir}/system/
-
- sed -i 's|@LOCALSTATEDIR@|${localstatedir}|g' ${D}${systemd_unitdir}/system/minifi.service
- sed -i 's|@SYSCONFDIR@|${sysconfdir}|g' ${D}${systemd_unitdir}/system/minifi.service
- sed -i 's|@BINDIR@|${bindir}|g' ${D}${systemd_unitdir}/system/minifi.service
-
- sed -i 's|@MINIFI_LOG@|'${MINIFI_LOG}'|g' ${D}${sysconfdir}/tmpfiles.d/minifi.conf
-
- elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 0644 ${WORKDIR}/sysvinit-volatile.conf ${D}${sysconfdir}/default/volatiles/99_minifi
-
- sed -i 's|@MINIFI_LOG@|'${MINIFI_LOG}'|g' ${D}${sysconfdir}/default/volatiles/99_minifi
- fi
-}
-
-pkg_postinst:${PN}() {
- if [ -z "$D" ]; then
- if type systemd-tmpfiles >/dev/null; then
- systemd-tmpfiles --create
- elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
- ${sysconfdir}/init.d/populate-volatile.sh update
- fi
- fi
-}
-
-CLEANBROKEN = "1"
diff --git a/meta-oe/recipes-extended/minio/minio/modules.txt b/meta-oe/recipes-extended/minio/minio/modules.txt
new file mode 100644
index 0000000000..fbd01e51a9
--- /dev/null
+++ b/meta-oe/recipes-extended/minio/minio/modules.txt
@@ -0,0 +1,208 @@
+# github.com/charmbracelet/bubbletea v0.19.3
+## explicit
+# github.com/cheggaaa/pb v1.0.29
+## explicit
+# github.com/dustin/go-humanize v1.0.0
+## explicit
+# github.com/fatih/color v1.13.0
+## explicit
+# github.com/go-ole/go-ole v1.2.6
+## explicit
+# github.com/goccy/go-json v0.8.1
+## explicit
+# github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
+## explicit
+# github.com/google/uuid v1.3.0
+## explicit
+# github.com/inconshreveable/mousetrap v1.0.0
+## explicit
+# github.com/json-iterator/go v1.1.12
+## explicit
+# github.com/klauspost/compress v1.13.6
+## explicit
+# github.com/mattn/go-ieproxy v0.0.1
+## explicit
+# github.com/mattn/go-isatty v0.0.14
+## explicit
+# github.com/minio/cli v1.22.0
+## explicit
+# github.com/minio/colorjson v1.0.2
+## explicit
+# github.com/minio/filepath v1.0.0
+## explicit
+# github.com/minio/madmin-go v1.4.3
+## explicit
+# github.com/minio/md5-simd v1.1.2
+## explicit
+# github.com/minio/minio-go/v7 v7.0.30
+## explicit
+# github.com/minio/pkg v1.1.22
+## explicit
+# github.com/minio/selfupdate v0.4.0
+## explicit
+# github.com/minio/sha256-simd v1.0.0
+## explicit
+# github.com/mitchellh/go-homedir v1.1.0
+## explicit
+# github.com/pkg/xattr v0.4.4
+## explicit
+# github.com/posener/complete v1.2.3
+## explicit
+# github.com/prometheus/client_golang v1.12.1
+## explicit
+# github.com/prometheus/prom2json v1.3.1
+## explicit
+# github.com/rjeczalik/notify v0.9.2
+## explicit
+# github.com/rs/xid v1.3.0
+## explicit
+# github.com/secure-io/sio-go v0.3.1
+## explicit
+# github.com/shirou/gopsutil/v3 v3.21.12
+## explicit
+# github.com/tidwall/gjson v1.12.1
+## explicit
+# golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e
+## explicit
+# golang.org/x/net v0.0.0-20220225172249-27dd8689420f
+## explicit
+# golang.org/x/text v0.3.7
+## explicit
+# gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b
+## explicit
+# gopkg.in/h2non/filetype.v1 v1.0.5
+## explicit
+# gopkg.in/yaml.v2 v2.4.0
+## explicit
+# github.com/charmbracelet/bubbles v0.10.0
+## explicit
+# github.com/charmbracelet/lipgloss v0.4.1-0.20220204041308-bf2912e703f6
+## explicit
+# github.com/gdamore/tcell/v2 v2.4.1-0.20210905002822-f057f0a857a1
+## explicit
+# github.com/golang-jwt/jwt/v4 v4.4.1
+## explicit
+# github.com/navidys/tvxwidgets v0.1.0
+## explicit
+# github.com/olekukonko/tablewriter v0.0.5
+## explicit
+# github.com/prometheus/client_model v0.2.0
+## explicit
+# github.com/rivo/tview v0.0.0-20211202162923-2a6de950f73b
+## explicit
+# github.com/tinylib/msgp v1.1.6
+## explicit
+# golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
+## explicit
+# github.com/beorn7/perks v1.0.1
+## explicit
+# github.com/cespare/xxhash/v2 v2.1.2
+## explicit
+# github.com/containerd/console v1.0.2
+## explicit
+# github.com/coreos/go-semver v0.3.0
+## explicit
+# github.com/coreos/go-systemd/v22 v22.3.2
+## explicit
+# github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1
+## explicit
+# github.com/fatih/structs v1.1.0
+## explicit
+# github.com/gdamore/encoding v1.0.0
+## explicit
+# github.com/gogo/protobuf v1.3.2
+## explicit
+# github.com/golang/protobuf v1.5.2
+## explicit
+# github.com/hashicorp/errwrap v1.1.0
+## explicit
+# github.com/hashicorp/go-multierror v1.1.1
+## explicit
+# github.com/klauspost/cpuid/v2 v2.0.9
+## explicit
+# github.com/kr/text v0.2.0
+## explicit
+# github.com/lestrrat-go/backoff/v2 v2.0.8
+## explicit
+# github.com/lestrrat-go/blackmagic v1.0.0
+## explicit
+# github.com/lestrrat-go/httpcc v1.0.0
+## explicit
+# github.com/lestrrat-go/iter v1.0.1
+## explicit
+# github.com/lestrrat-go/jwx v1.2.14
+## explicit
+# github.com/lestrrat-go/option v1.0.0
+## explicit
+# github.com/lucasb-eyer/go-colorful v1.2.0
+## explicit
+# github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0
+## explicit
+# github.com/mattn/go-colorable v0.1.12
+## explicit
+# github.com/mattn/go-runewidth v0.0.13
+## explicit
+# github.com/matttproud/golang_protobuf_extensions v1.0.1
+## explicit
+# github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
+## explicit
+# github.com/modern-go/reflect2 v1.0.2
+## explicit
+# github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b
+## explicit
+# github.com/muesli/reflow v0.3.0
+## explicit
+# github.com/muesli/termenv v0.11.1-0.20220204035834-5ac8409525e0
+## explicit
+# github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e
+## explicit
+# github.com/philhofer/fwd v1.1.1
+## explicit
+# github.com/pkg/errors v0.9.1
+## explicit
+# github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c
+## explicit
+# github.com/prometheus/common v0.33.0
+## explicit
+# github.com/prometheus/procfs v0.7.3
+## explicit
+# github.com/rivo/uniseg v0.2.0
+## explicit
+# github.com/sirupsen/logrus v1.8.1
+## explicit
+# github.com/tidwall/match v1.1.1
+## explicit
+# github.com/tidwall/pretty v1.2.0
+## explicit
+# github.com/tklauser/go-sysconf v0.3.9
+## explicit
+# github.com/tklauser/numcpus v0.3.0
+## explicit
+# github.com/yusufpapurcu/wmi v1.2.2
+## explicit
+# go.etcd.io/etcd/api/v3 v3.5.2
+## explicit
+# go.etcd.io/etcd/client/pkg/v3 v3.5.2
+## explicit
+# go.etcd.io/etcd/client/v3 v3.5.2
+## explicit
+# go.uber.org/atomic v1.9.0
+## explicit
+# go.uber.org/multierr v1.7.0
+## explicit
+# go.uber.org/zap v1.19.1
+## explicit
+# golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
+## explicit
+# golang.org/x/sys v0.0.0-20220412211240-33da011f77ad
+## explicit
+# google.golang.org/genproto v0.0.0-20211223182754-3ac035c7e7cb
+## explicit
+# google.golang.org/grpc v1.43.0
+## explicit
+# google.golang.org/protobuf v1.27.1
+## explicit
+# gopkg.in/ini.v1 v1.66.3
+## explicit
+# gopkg.in/yaml.v3 v3.0.1
+## explicit
diff --git a/meta-oe/recipes-extended/minio/minio_git.bb b/meta-oe/recipes-extended/minio/minio_git.bb
new file mode 100644
index 0000000000..f278a728fd
--- /dev/null
+++ b/meta-oe/recipes-extended/minio/minio_git.bb
@@ -0,0 +1,166 @@
+HOMEPAGE = "https://github.com/minio/mc"
+SUMMARY = "MinIO Client is a replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage."
+DESCRIPTION = "MinIO Client (mc) provides a modern alternative to \
+ UNIX commands like ls, cat, cp, mirror, diff, find \
+ etc. It supports filesystems and Amazon S3 compatible \
+ cloud storage service (AWS Signature v2 and v4). \
+"
+
+SRC_URI = "git://github.com/minio/mc;branch=master;name=mc;protocol=https \
+ file://modules.txt \
+ "
+
+include src_uri.inc
+
+SRCREV_mc = "01b87ecc02ffad47dfe13c2154ac31db3e3115df"
+
+SRCREV_FORMAT .= "_mc"
+
+GO_IMPORT = "import"
+
+LICENSE = "AGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=eb1e647870add0502f8f010b19de32af"
+
+PV = "${SRCREV_mc}"
+
+inherit go
+inherit goarch
+
+# | ./github.com/minio/mc/main.go:27:(.text+0xd258b8): relocation R_MIPS_HI16 against `a local symbol' cannot be used when making a shared object; recompile with -fPIC
+COMPATIBLE_HOST:mips = "null"
+# ERROR: QA Issue: minio: ELF binary /usr/sbin/mc has relocations in .text [textrel]
+# Needs fixing with go >= 1.20.4"
+EXCLUDE_FROM_WORLD = "1"
+
+DEPENDS += "rsync-native"
+
+do_compile() {
+
+ cd ${S}/src/${GO_IMPORT}
+
+ export GOFLAGS="-mod=vendor"
+ export GOPATH="$GOPATH:${S}/src/import/.gopath:${S}/src/import/vendor"
+ sites="github.com/charmbracelet/bubbletea:github.com/charmbracelet/bubbletea \
+ github.com/cheggaaa/pb:github.com/cheggaaa/pb \
+ github.com/dustin/go-humanize:github.com/dustin/go-humanize \
+ github.com/fatih/color:github.com/fatih/color \
+ github.com/go-ole/go-ole:github.com/go-ole/go-ole \
+ github.com/goccy/go-json:github.com/goccy/go-json \
+ github.com/google/shlex:github.com/google/shlex \
+ github.com/google/uuid:github.com/google/uuid \
+ github.com/inconshreveable/mousetrap:github.com/inconshreveable/mousetrap \
+ github.com/json-iterator/go:github.com/json-iterator/go \
+ github.com/klauspost/compress:github.com/klauspost/compress \
+ github.com/mattn/go-ieproxy:github.com/mattn/go-ieproxy \
+ github.com/mattn/go-isatty:github.com/mattn/go-isatty \
+ github.com/minio/cli:github.com/minio/cli \
+ github.com/minio/colorjson:github.com/minio/colorjson \
+ github.com/minio/filepath:github.com/minio/filepath \
+ github.com/minio/madmin-go:github.com/minio/madmin-go \
+ github.com/minio/md5-simd:github.com/minio/md5-simd \
+ github.com/minio/minio-go/v7:github.com/minio/minio-go/v7 \
+ github.com/minio/pkg:github.com/minio/pkg \
+ github.com/minio/selfupdate:github.com/minio/selfupdate \
+ github.com/minio/sha256-simd:github.com/minio/sha256-simd \
+ github.com/mitchellh/go-homedir:github.com/mitchellh/go-homedir \
+ github.com/pkg/xattr:github.com/pkg/xattr \
+ github.com/posener/complete:github.com/posener/complete \
+ github.com/prometheus/client_golang:github.com/prometheus/client_golang \
+ github.com/prometheus/prom2json:github.com/prometheus/prom2json \
+ github.com/rjeczalik/notify:github.com/rjeczalik/notify \
+ github.com/rs/xid:github.com/rs/xid \
+ github.com/secure-io/sio-go:github.com/secure-io/sio-go \
+ github.com/shirou/gopsutil/v3:github.com/shirou/gopsutil/v3 \
+ github.com/tidwall/gjson:github.com/tidwall/gjson \
+ golang.org/x/crypto:go.googlesource.com/crypto \
+ golang.org/x/net:go.googlesource.com/net \
+ golang.org/x/text:go.googlesource.com/text \
+ gopkg.in/check.v1:gopkg.in/check.v1 \
+ gopkg.in/h2non/filetype.v1:gopkg.in/h2non/filetype.v1 \
+ gopkg.in/yaml.v2:gopkg.in/yaml.v2 \
+ github.com/charmbracelet/bubbles:github.com/charmbracelet/bubbles \
+ github.com/charmbracelet/lipgloss:github.com/charmbracelet/lipgloss \
+ github.com/gdamore/tcell/v2:github.com/gdamore/tcell/v2 \
+ github.com/golang-jwt/jwt/v4:github.com/golang-jwt/jwt/v4 \
+ github.com/navidys/tvxwidgets:github.com/navidys/tvxwidgets \
+ github.com/olekukonko/tablewriter:github.com/olekukonko/tablewriter \
+ github.com/prometheus/client_model:github.com/prometheus/client_model \
+ github.com/rivo/tview:github.com/rivo/tview \
+ github.com/tinylib/msgp:github.com/tinylib/msgp \
+ golang.org/x/term:go.googlesource.com/term \
+ github.com/beorn7/perks:github.com/beorn7/perks \
+ github.com/cespare/xxhash/v2:github.com/cespare/xxhash/v2 \
+ github.com/containerd/console:github.com/containerd/console \
+ github.com/coreos/go-semver:github.com/coreos/go-semver \
+ github.com/coreos/go-systemd/v22:github.com/coreos/go-systemd/v22 \
+ github.com/decred/dcrd/dcrec/secp256k1/v4:github.com/decred/dcrd/dcrec/secp256k1/v4//dcrec/secp256k1 \
+ github.com/fatih/structs:github.com/fatih/structs \
+ github.com/gdamore/encoding:github.com/gdamore/encoding \
+ github.com/gogo/protobuf:github.com/gogo/protobuf \
+ github.com/golang/protobuf:github.com/golang/protobuf \
+ github.com/hashicorp/errwrap:github.com/hashicorp/errwrap \
+ github.com/hashicorp/go-multierror:github.com/hashicorp/go-multierror \
+ github.com/klauspost/cpuid/v2:github.com/klauspost/cpuid/v2 \
+ github.com/kr/text:github.com/kr/text \
+ github.com/lestrrat-go/backoff/v2:github.com/lestrrat-go/backoff/v2 \
+ github.com/lestrrat-go/blackmagic:github.com/lestrrat-go/blackmagic \
+ github.com/lestrrat-go/httpcc:github.com/lestrrat-go/httpcc \
+ github.com/lestrrat-go/iter:github.com/lestrrat-go/iter \
+ github.com/lestrrat-go/jwx:github.com/lestrrat-go/jwx \
+ github.com/lestrrat-go/option:github.com/lestrrat-go/option \
+ github.com/lucasb-eyer/go-colorful:github.com/lucasb-eyer/go-colorful \
+ github.com/lufia/plan9stats:github.com/lufia/plan9stats \
+ github.com/mattn/go-colorable:github.com/mattn/go-colorable \
+ github.com/mattn/go-runewidth:github.com/mattn/go-runewidth \
+ github.com/matttproud/golang_protobuf_extensions:github.com/matttproud/golang_protobuf_extensions \
+ github.com/modern-go/concurrent:github.com/modern-go/concurrent \
+ github.com/modern-go/reflect2:github.com/modern-go/reflect2 \
+ github.com/muesli/ansi:github.com/muesli/ansi \
+ github.com/muesli/reflow:github.com/muesli/reflow \
+ github.com/muesli/termenv:github.com/muesli/termenv \
+ github.com/niemeyer/pretty:github.com/niemeyer/pretty \
+ github.com/philhofer/fwd:github.com/philhofer/fwd \
+ github.com/pkg/errors:github.com/pkg/errors \
+ github.com/power-devops/perfstat:github.com/power-devops/perfstat \
+ github.com/prometheus/common:github.com/prometheus/common \
+ github.com/prometheus/procfs:github.com/prometheus/procfs \
+ github.com/rivo/uniseg:github.com/rivo/uniseg \
+ github.com/sirupsen/logrus:github.com/sirupsen/logrus \
+ github.com/tidwall/match:github.com/tidwall/match \
+ github.com/tidwall/pretty:github.com/tidwall/pretty \
+ github.com/tklauser/go-sysconf:github.com/tklauser/go-sysconf \
+ github.com/tklauser/numcpus:github.com/tklauser/numcpus \
+ github.com/yusufpapurcu/wmi:github.com/yusufpapurcu/wmi \
+ go.etcd.io/etcd/api/v3:github.com/etcd-io/etcd/api/v3//api \
+ go.etcd.io/etcd/client/pkg/v3:github.com/etcd-io/etcd/api/v3//client/pkg \
+ go.etcd.io/etcd/client/v3:github.com/etcd-io/etcd/api/v3//client/v3 \
+ go.uber.org/atomic:go.uber.org/atomic \
+ go.uber.org/multierr:go.uber.org/multierr \
+ go.uber.org/zap:go.uber.org/zap \
+ golang.org/x/sync:go.googlesource.com/sync \
+ golang.org/x/sys:go.googlesource.com/sys \
+ google.golang.org/genproto:google.golang.org/genproto \
+ google.golang.org/grpc:google.golang.org/grpc \
+ google.golang.org/protobuf:google.golang.org/protobuf \
+ gopkg.in/ini.v1:gopkg.in/ini.v1 \
+ gopkg.in/yaml.v3:gopkg.in/yaml.v3"
+ for s in $sites; do
+ site_dest=$(echo $s | cut -d: -f1)
+ site_source=$(echo $s | cut -d: -f2)
+ mkdir -p vendor.copy/$site_dest
+ [ -n "$(ls -A vendor.copy/$site_dest/*.go 2> /dev/null)" ] && { echo "[INFO] vendor.fetch/$site_source -> $site_dest: go copy skipped (files present)" ; true ; } || { echo "[INFO] $site_dest: copying .go files" ; rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest ; }
+ done
+
+ ln -sf vendor.copy vendor
+ # these are bad symlinks, go validates them and breaks the build if they are present
+ rm -f vendor/go.etcd.io/etcd/client/v3/example_*
+
+ cp ${WORKDIR}/modules.txt vendor/
+
+ ${GO} build -trimpath
+}
+
+do_install() {
+ install -d ${D}/${sbindir}
+ install ${S}/src/${GO_IMPORT}/mc ${D}/${sbindir}/mc
+}
diff --git a/meta-oe/recipes-extended/minio/src_uri.inc b/meta-oe/recipes-extended/minio/src_uri.inc
new file mode 100644
index 0000000000..5cdc69dfca
--- /dev/null
+++ b/meta-oe/recipes-extended/minio/src_uri.inc
@@ -0,0 +1,509 @@
+# github.com/charmbracelet/bubbletea v0.19.3
+# [1] git ls-remote https://github.com/charmbracelet/bubbletea 3dc51789d11229a1fb00f137d02b50b04cac372b
+SRCREV_bubbletea="3dc51789d11229a1fb00f137d02b50b04cac372b"
+SRC_URI += "git://github.com/charmbracelet/bubbletea;name=bubbletea;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/charmbracelet/bubbletea"
+
+# github.com/cheggaaa/pb v1.0.29
+# [1] git ls-remote https://github.com/cheggaaa/pb e2a33cc368a206516cc95f7bdd9176db0b83f098
+SRCREV_pb="e2a33cc368a206516cc95f7bdd9176db0b83f098"
+SRC_URI += "git://github.com/cheggaaa/pb;name=pb;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/cheggaaa/pb"
+
+# github.com/dustin/go-humanize v1.0.0
+# [1] git ls-remote https://github.com/dustin/go-humanize e673fa1ffc91213297a60d18a6f513aa74bced52
+SRCREV_go-humanize="e673fa1ffc91213297a60d18a6f513aa74bced52"
+SRC_URI += "git://github.com/dustin/go-humanize;name=go-humanize;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/dustin/go-humanize"
+
+# github.com/fatih/color v1.13.0
+# [1] git ls-remote https://github.com/fatih/color a05da93ebe62ca9fc6791d3376ec4dad01196448
+SRCREV_color="a05da93ebe62ca9fc6791d3376ec4dad01196448"
+SRC_URI += "git://github.com/fatih/color;name=color;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/fatih/color"
+
+# github.com/go-ole/go-ole v1.2.6
+# [1] git ls-remote https://github.com/go-ole/go-ole 8b1f7f90f6b1728609c9694f2cff140d34fd91f8
+SRCREV_go-ole="8b1f7f90f6b1728609c9694f2cff140d34fd91f8"
+SRC_URI += "git://github.com/go-ole/go-ole;name=go-ole;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/go-ole/go-ole"
+
+# github.com/goccy/go-json v0.8.1
+# [1] git ls-remote https://github.com/goccy/go-json de89bd3db67f2219c6183ec6febe2b5f7a6b06fb
+SRCREV_go-json="de89bd3db67f2219c6183ec6febe2b5f7a6b06fb"
+SRC_URI += "git://github.com/goccy/go-json;name=go-json;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/goccy/go-json"
+
+# github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
+# [1] git ls-remote https://github.com/google/shlex e7afc7fbc51079733e9468cdfd1efcd7d196cd1d
+SRCREV_shlex="e7afc7fbc51079733e9468cdfd1efcd7d196cd1d"
+SRC_URI += "git://github.com/google/shlex;name=shlex;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/shlex"
+
+# github.com/google/uuid v1.3.0
+# [1] git ls-remote https://github.com/google/uuid 44b5fee7c49cf3bcdf723f106b36d56ef13ccc88
+SRCREV_uuid="44b5fee7c49cf3bcdf723f106b36d56ef13ccc88"
+SRC_URI += "git://github.com/google/uuid;name=uuid;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/google/uuid"
+
+# github.com/inconshreveable/mousetrap v1.0.0
+# [1] git ls-remote https://github.com/inconshreveable/mousetrap 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75
+SRCREV_mousetrap="76626ae9c91c4f2a10f34cad8ce83ea42c93bb75"
+SRC_URI += "git://github.com/inconshreveable/mousetrap;name=mousetrap;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/inconshreveable/mousetrap"
+
+# github.com/json-iterator/go v1.1.12
+# [1] git ls-remote https://github.com/json-iterator/go 024077e996b048517130b21ea6bf12aa23055d3d
+SRCREV_go="024077e996b048517130b21ea6bf12aa23055d3d"
+SRC_URI += "git://github.com/json-iterator/go;name=go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/json-iterator/go"
+
+# github.com/klauspost/compress v1.13.6
+# [1] git ls-remote https://github.com/klauspost/compress 38d4ba985ac157cb858763e016645e14e74c13c4
+SRCREV_compress="38d4ba985ac157cb858763e016645e14e74c13c4"
+SRC_URI += "git://github.com/klauspost/compress;name=compress;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/klauspost/compress"
+
+# github.com/mattn/go-ieproxy v0.0.1
+# [1] git ls-remote https://github.com/mattn/go-ieproxy 439dd0581a2a03b415673a2462ad5c21eaabc588
+SRCREV_go-ieproxy="439dd0581a2a03b415673a2462ad5c21eaabc588"
+SRC_URI += "git://github.com/mattn/go-ieproxy;name=go-ieproxy;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-ieproxy"
+
+# github.com/mattn/go-isatty v0.0.14
+# [1] git ls-remote https://github.com/mattn/go-isatty 504425e14f742f1f517c4586048b49b37f829c8e
+SRCREV_go-isatty="504425e14f742f1f517c4586048b49b37f829c8e"
+SRC_URI += "git://github.com/mattn/go-isatty;name=go-isatty;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-isatty"
+
+# github.com/minio/cli v1.22.0
+# [1] git ls-remote https://github.com/minio/cli 735b30120ed7535d13933b0246f8a75cf80b0f74
+SRCREV_cli="735b30120ed7535d13933b0246f8a75cf80b0f74"
+SRC_URI += "git://github.com/minio/cli;name=cli;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/cli"
+
+# github.com/minio/colorjson v1.0.2
+# [1] git ls-remote https://github.com/minio/colorjson f964b335cdb6cd51dff32a726d3d6ab9e1db0633
+SRCREV_colorjson="f964b335cdb6cd51dff32a726d3d6ab9e1db0633"
+SRC_URI += "git://github.com/minio/colorjson;name=colorjson;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/colorjson"
+
+# github.com/minio/filepath v1.0.0
+# [1] git ls-remote https://github.com/minio/filepath a116cb5d2b6396deea35d06389e3e9809c887fcf
+SRCREV_filepath="a116cb5d2b6396deea35d06389e3e9809c887fcf"
+SRC_URI += "git://github.com/minio/filepath;name=filepath;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/filepath"
+
+# github.com/minio/madmin-go v1.4.3
+# [1] git ls-remote https://github.com/minio/madmin-go 4f71c826739af4ebf73308e7f9a849a781859f78
+SRCREV_madmin-go="4f71c826739af4ebf73308e7f9a849a781859f78"
+SRC_URI += "git://github.com/minio/madmin-go;name=madmin-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/madmin-go"
+
+# github.com/minio/md5-simd v1.1.2
+# [1] git ls-remote https://github.com/minio/md5-simd 776275e0c9a74ceebbd50fe5c1d61b0c80c608df
+SRCREV_md5-simd="776275e0c9a74ceebbd50fe5c1d61b0c80c608df"
+SRC_URI += "git://github.com/minio/md5-simd;name=md5-simd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/md5-simd"
+
+# github.com/minio/minio-go/v7 v7.0.30
+# [1] git ls-remote https://github.com/minio/minio-go 81c303325bb4426c89776854b2ea4f7936deb11c
+SRCREV_v7="81c303325bb4426c89776854b2ea4f7936deb11c"
+SRC_URI += "git://github.com/minio/minio-go;name=v7;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/minio-go/v7"
+
+# github.com/minio/pkg v1.1.22
+# [1] git ls-remote https://github.com/minio/pkg 3b76bdaec27995a31d0b0a7959bbef55bfe0d364
+SRCREV_pkg="3b76bdaec27995a31d0b0a7959bbef55bfe0d364"
+SRC_URI += "git://github.com/minio/pkg;name=pkg;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/pkg"
+
+# github.com/minio/selfupdate v0.4.0
+# [1] git ls-remote https://github.com/minio/selfupdate 9e32fb8d38277355add4fa3983edb0b376d12bb5
+SRCREV_selfupdate="9e32fb8d38277355add4fa3983edb0b376d12bb5"
+SRC_URI += "git://github.com/minio/selfupdate;name=selfupdate;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/selfupdate"
+
+# github.com/minio/sha256-simd v1.0.0
+# [1] git ls-remote https://github.com/minio/sha256-simd 6a57409d8e0fa3ae883aee331b71aaa40d5a7dd9
+SRCREV_sha256-simd="6a57409d8e0fa3ae883aee331b71aaa40d5a7dd9"
+SRC_URI += "git://github.com/minio/sha256-simd;name=sha256-simd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/minio/sha256-simd"
+
+# github.com/mitchellh/go-homedir v1.1.0
+# [1] git ls-remote https://github.com/mitchellh/go-homedir af06845cf3004701891bf4fdb884bfe4920b3727
+SRCREV_go-homedir="af06845cf3004701891bf4fdb884bfe4920b3727"
+SRC_URI += "git://github.com/mitchellh/go-homedir;name=go-homedir;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mitchellh/go-homedir"
+
+# github.com/pkg/xattr v0.4.4
+# [1] git ls-remote https://github.com/pkg/xattr 8725d4ccc0fcef59c8d9f0eaf606b3c6f962467a
+SRCREV_xattr="8725d4ccc0fcef59c8d9f0eaf606b3c6f962467a"
+SRC_URI += "git://github.com/pkg/xattr;name=xattr;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pkg/xattr"
+
+# github.com/posener/complete v1.2.3
+# [1] git ls-remote https://github.com/posener/complete 05b68ffc813dd10c420993cb1cf927b346c057b8
+SRCREV_complete="05b68ffc813dd10c420993cb1cf927b346c057b8"
+SRC_URI += "git://github.com/posener/complete;name=complete;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/posener/complete"
+
+# github.com/prometheus/client_golang v1.12.1
+# [1] git ls-remote https://github.com/prometheus/client_golang 2e1c4818ccfdcf953ce399cadad615ff2bed968c
+SRCREV_client_golang="2e1c4818ccfdcf953ce399cadad615ff2bed968c"
+SRC_URI += "git://github.com/prometheus/client_golang;name=client_golang;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/client_golang"
+
+# github.com/prometheus/prom2json v1.3.1
+# [1] git ls-remote https://github.com/prometheus/prom2json ac13972e54feb2f8eafc9a613112cb310f5463dc
+SRCREV_prom2json="ac13972e54feb2f8eafc9a613112cb310f5463dc"
+SRC_URI += "git://github.com/prometheus/prom2json;name=prom2json;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/prom2json"
+
+# github.com/rjeczalik/notify v0.9.2
+# [1] git ls-remote https://github.com/rjeczalik/notify 69d839f37b13a8cb7a78366f7633a4071cb43be7
+SRCREV_notify="69d839f37b13a8cb7a78366f7633a4071cb43be7"
+SRC_URI += "git://github.com/rjeczalik/notify;name=notify;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rjeczalik/notify"
+
+# github.com/rs/xid v1.3.0
+# [1] git ls-remote https://github.com/rs/xid efa678f304ab65d6d57eedcb086798381ae22206
+SRCREV_xid="efa678f304ab65d6d57eedcb086798381ae22206"
+SRC_URI += "git://github.com/rs/xid;name=xid;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rs/xid"
+
+# github.com/secure-io/sio-go v0.3.1
+# [1] git ls-remote https://github.com/secure-io/sio-go a455d2cd8fcacdfe18557d117db15c0629fb7e2c
+SRCREV_sio-go="a455d2cd8fcacdfe18557d117db15c0629fb7e2c"
+SRC_URI += "git://github.com/secure-io/sio-go;name=sio-go;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/secure-io/sio-go"
+
+# github.com/shirou/gopsutil/v3 v3.21.12
+# [1] git ls-remote https://github.com/shirou/gopsutil 2f8da0a39487ceddf44cebe53a1b563b0b7173cc
+SRCREV_v3="2f8da0a39487ceddf44cebe53a1b563b0b7173cc"
+SRC_URI += "git://github.com/shirou/gopsutil;name=v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/shirou/gopsutil/v3"
+
+# github.com/tidwall/gjson v1.12.1
+# [1] git ls-remote https://github.com/tidwall/gjson db0033701cccc8e2e43b77d03e4f509a48b6b2f2
+SRCREV_gjson="db0033701cccc8e2e43b77d03e4f509a48b6b2f2"
+SRC_URI += "git://github.com/tidwall/gjson;name=gjson;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tidwall/gjson"
+
+# golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e
+# [1] git ls-remote https://go.googlesource.com/crypto 793ad666bf5ec61392092b27061be9618e4e219b
+SRCREV_crypto="793ad666bf5ec61392092b27061be9618e4e219b"
+SRC_URI += "git://go.googlesource.com/crypto;name=crypto;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.googlesource.com/crypto"
+
+# golang.org/x/net v0.0.0-20220225172249-27dd8689420f
+# [1] git ls-remote https://go.googlesource.com/net 27dd8689420fcde088514397d015e4fea5174e0e
+SRCREV_net="27dd8689420fcde088514397d015e4fea5174e0e"
+SRC_URI += "git://go.googlesource.com/net;name=net;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.googlesource.com/net"
+
+# golang.org/x/text v0.3.7
+# [1] git ls-remote https://go.googlesource.com/text 3cd4007149f3f883d229d707172ed356727aae99
+SRCREV_text="3cd4007149f3f883d229d707172ed356727aae99"
+SRC_URI += "git://go.googlesource.com/text;name=text;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.googlesource.com/text"
+
+# gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b
+# [1] git ls-remote https://gopkg.in/check.v1 038fdea0a05bc030b0bfda479dc2e08d2220ec74
+SRCREV_check.v1="038fdea0a05bc030b0bfda479dc2e08d2220ec74"
+SRC_URI += "git://gopkg.in/check.v1;name=check.v1;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/check.v1"
+
+# gopkg.in/h2non/filetype.v1 v1.0.5
+# [1] git ls-remote https://gopkg.in/h2non/filetype.v1 8f3142c797f0413f00dadaf1bf97dd0b7b1f8d8b
+SRCREV_filetype.v1="8f3142c797f0413f00dadaf1bf97dd0b7b1f8d8b"
+SRC_URI += "git://gopkg.in/h2non/filetype.v1;name=filetype.v1;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/h2non/filetype.v1"
+
+# gopkg.in/yaml.v2 v2.4.0
+# [1] git ls-remote https://gopkg.in/yaml.v2 7649d4548cb53a614db133b2a8ac1f31859dda8c
+SRCREV_yaml.v2="7649d4548cb53a614db133b2a8ac1f31859dda8c"
+SRC_URI += "git://gopkg.in/yaml.v2;name=yaml.v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/yaml.v2"
+
+# github.com/charmbracelet/bubbles v0.10.0
+# [1] git ls-remote https://github.com/charmbracelet/bubbles 7714089ad7c81898564ebeb7b6876b5844e26ccd
+SRCREV_bubbles="7714089ad7c81898564ebeb7b6876b5844e26ccd"
+SRC_URI += "git://github.com/charmbracelet/bubbles;name=bubbles;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/charmbracelet/bubbles"
+
+# github.com/charmbracelet/lipgloss v0.4.1-0.20220204041308-bf2912e703f6
+# [1] git ls-remote https://github.com/charmbracelet/lipgloss bf2912e703f6ecf88a1b843472afd47ce5002caf
+SRCREV_lipgloss="bf2912e703f6ecf88a1b843472afd47ce5002caf"
+SRC_URI += "git://github.com/charmbracelet/lipgloss;name=lipgloss;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/charmbracelet/lipgloss"
+
+# github.com/gdamore/tcell/v2 v2.4.1-0.20210905002822-f057f0a857a1
+# [1] git ls-remote https://github.com/gdamore/tcell f057f0a857a1b3ac3e4fff8c6cfe8126f8387cd1
+SRCREV_v2="f057f0a857a1b3ac3e4fff8c6cfe8126f8387cd1"
+SRC_URI += "git://github.com/gdamore/tcell;name=v2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gdamore/tcell/v2"
+
+# github.com/golang-jwt/jwt/v4 v4.4.1
+# [1] git ls-remote https://github.com/golang-jwt/jwt 0972257eba279bb357882afc11db8218644ad565
+SRCREV_v4="0972257eba279bb357882afc11db8218644ad565"
+SRC_URI += "git://github.com/golang-jwt/jwt;name=v4;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/golang-jwt/jwt/v4"
+
+# github.com/navidys/tvxwidgets v0.1.0
+# [1] git ls-remote https://github.com/navidys/tvxwidgets f017cfd5ce6d4bd7fb22529305d7a438c3f1369d
+SRCREV_tvxwidgets="f017cfd5ce6d4bd7fb22529305d7a438c3f1369d"
+SRC_URI += "git://github.com/navidys/tvxwidgets;name=tvxwidgets;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/navidys/tvxwidgets"
+
+# github.com/olekukonko/tablewriter v0.0.5
+# [1] git ls-remote https://github.com/olekukonko/tablewriter c7d2a8a09b076b70918308a3cd95464b2ae3b5d8
+SRCREV_tablewriter="c7d2a8a09b076b70918308a3cd95464b2ae3b5d8"
+SRC_URI += "git://github.com/olekukonko/tablewriter;name=tablewriter;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/olekukonko/tablewriter"
+
+# github.com/prometheus/client_model v0.2.0
+# [1] git ls-remote https://github.com/prometheus/client_model f44e7adcba5ee54c8a94709e6fc300d83245f171
+SRCREV_client_model="f44e7adcba5ee54c8a94709e6fc300d83245f171"
+SRC_URI += "git://github.com/prometheus/client_model;name=client_model;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/client_model"
+
+# github.com/rivo/tview v0.0.0-20211202162923-2a6de950f73b
+# [1] git ls-remote https://github.com/rivo/tview 2a6de950f73bdc70658f7e754d4b5593f15c8408
+SRCREV_tview="2a6de950f73bdc70658f7e754d4b5593f15c8408"
+SRC_URI += "git://github.com/rivo/tview;name=tview;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rivo/tview"
+
+# github.com/tinylib/msgp v1.1.6
+# [1] git ls-remote https://github.com/tinylib/msgp 205265da651409c54677b486e350b4d105da6d8b
+SRCREV_msgp="205265da651409c54677b486e350b4d105da6d8b"
+SRC_URI += "git://github.com/tinylib/msgp;name=msgp;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tinylib/msgp"
+
+# golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
+# [1] git ls-remote https://go.googlesource.com/term 03fcf44c2211dcd5eb77510b5f7c1fb02d6ded50
+SRCREV_term="03fcf44c2211dcd5eb77510b5f7c1fb02d6ded50"
+SRC_URI += "git://go.googlesource.com/term;name=term;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.googlesource.com/term"
+
+# github.com/beorn7/perks v1.0.1
+# [1] git ls-remote https://github.com/beorn7/perks c49ff274687222a7373c4cd83578f1065cf3e143
+SRCREV_perks="c49ff274687222a7373c4cd83578f1065cf3e143"
+SRC_URI += "git://github.com/beorn7/perks;name=perks;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/beorn7/perks"
+
+# github.com/cespare/xxhash/v2 v2.1.2
+# [1] git ls-remote https://github.com/cespare/xxhash 7ae26c41ed6fb1f8a6c21e05eeff4d91b5e401c4
+SRCREV_v21="7ae26c41ed6fb1f8a6c21e05eeff4d91b5e401c4"
+SRC_URI += "git://github.com/cespare/xxhash;name=v21;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/cespare/xxhash/v2"
+
+# github.com/containerd/console v1.0.2
+# [1] git ls-remote https://github.com/containerd/console d5efa7d56fd239f7f3dad2ab6685db09359a3618
+SRCREV_console="d5efa7d56fd239f7f3dad2ab6685db09359a3618"
+SRC_URI += "git://github.com/containerd/console;name=console;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/containerd/console"
+
+# github.com/coreos/go-semver v0.3.0
+# [1] git ls-remote https://github.com/coreos/go-semver 6e25b691b0ebe9657dd0ee60d73a9f8716f0c6f5
+SRCREV_go-semver="6e25b691b0ebe9657dd0ee60d73a9f8716f0c6f5"
+SRC_URI += "git://github.com/coreos/go-semver;name=go-semver;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/coreos/go-semver"
+
+# github.com/coreos/go-systemd/v22 v22.3.2
+# [1] git ls-remote https://github.com/coreos/go-systemd 0b40357fd65760243a3eceb80a299772c23c8470
+SRCREV_v22="0b40357fd65760243a3eceb80a299772c23c8470"
+SRC_URI += "git://github.com/coreos/go-systemd;name=v22;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/coreos/go-systemd/v22"
+
+# github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1
+# [1] git ls-remote https://github.com/decred/dcrd 75f1b4dac2e43133f3281ac63a9ef9eb699200e5
+SRCREV_v41="75f1b4dac2e43133f3281ac63a9ef9eb699200e5"
+SRC_URI += "git://github.com/decred/dcrd;name=v41;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/decred/dcrd/dcrec/secp256k1/v4"
+
+# github.com/fatih/structs v1.1.0
+# [1] git ls-remote https://github.com/fatih/structs 4966fc68f5b7593aafa6cbbba2d65ec6e1416047
+SRCREV_structs="4966fc68f5b7593aafa6cbbba2d65ec6e1416047"
+SRC_URI += "git://github.com/fatih/structs;name=structs;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/fatih/structs"
+
+# github.com/gdamore/encoding v1.0.0
+# [1] git ls-remote https://github.com/gdamore/encoding 79c592247a6248468805a0e297f43a7cac979903
+SRCREV_encoding="79c592247a6248468805a0e297f43a7cac979903"
+SRC_URI += "git://github.com/gdamore/encoding;name=encoding;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gdamore/encoding"
+
+# github.com/gogo/protobuf v1.3.2
+# [1] git ls-remote https://github.com/gogo/protobuf b03c65ea87cdc3521ede29f62fe3ce239267c1bc
+SRCREV_protobuf="b03c65ea87cdc3521ede29f62fe3ce239267c1bc"
+SRC_URI += "git://github.com/gogo/protobuf;name=protobuf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/gogo/protobuf"
+
+# github.com/golang/protobuf v1.5.2
+# [1] git ls-remote https://github.com/golang/protobuf ae97035608a719c7a1c1c41bed0ae0744bdb0c6f
+SRCREV_protobuf1="ae97035608a719c7a1c1c41bed0ae0744bdb0c6f"
+SRC_URI += "git://github.com/golang/protobuf;name=protobuf1;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/golang/protobuf"
+
+# github.com/hashicorp/errwrap v1.1.0
+# [1] git ls-remote https://github.com/hashicorp/errwrap 7b00e5db719c64d14dd0caaacbd13e76254d02c0
+SRCREV_errwrap="7b00e5db719c64d14dd0caaacbd13e76254d02c0"
+SRC_URI += "git://github.com/hashicorp/errwrap;name=errwrap;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/errwrap"
+
+# github.com/hashicorp/go-multierror v1.1.1
+# [1] git ls-remote https://github.com/hashicorp/go-multierror 9974e9ec57696378079ecc3accd3d6f29401b3a0
+SRCREV_go-multierror="9974e9ec57696378079ecc3accd3d6f29401b3a0"
+SRC_URI += "git://github.com/hashicorp/go-multierror;name=go-multierror;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/hashicorp/go-multierror"
+
+# github.com/klauspost/cpuid/v2 v2.0.9
+# [1] git ls-remote https://github.com/klauspost/cpuid 6903d4066801a7d800d4537ee9eebe81ea97000e
+SRCREV_v212="6903d4066801a7d800d4537ee9eebe81ea97000e"
+SRC_URI += "git://github.com/klauspost/cpuid;name=v212;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/klauspost/cpuid/v2"
+
+# github.com/kr/text v0.2.0
+# [1] git ls-remote https://github.com/kr/text 0e5f52c28dd72ab84daeb81b5a51f20fdc35f9c5
+SRCREV_text1="0e5f52c28dd72ab84daeb81b5a51f20fdc35f9c5"
+SRC_URI += "git://github.com/kr/text;name=text1;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/kr/text"
+
+# github.com/lestrrat-go/backoff/v2 v2.0.8
+# [1] git ls-remote https://github.com/lestrrat-go/backoff c3af762cb9d2bc8339e1d5099a4550366a675f60
+SRCREV_v2123="c3af762cb9d2bc8339e1d5099a4550366a675f60"
+SRC_URI += "git://github.com/lestrrat-go/backoff;name=v2123;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/lestrrat-go/backoff/v2"
+
+# github.com/lestrrat-go/blackmagic v1.0.0
+# [1] git ls-remote https://github.com/lestrrat-go/blackmagic 370527f88bbfd5be3192a38af3148dbd64f0976f
+SRCREV_blackmagic="370527f88bbfd5be3192a38af3148dbd64f0976f"
+SRC_URI += "git://github.com/lestrrat-go/blackmagic;name=blackmagic;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/lestrrat-go/blackmagic"
+
+# github.com/lestrrat-go/httpcc v1.0.0
+# [1] git ls-remote https://github.com/lestrrat-go/httpcc e7e8fea419e32f7549252ad15ecf17f3a3c1a268
+SRCREV_httpcc="e7e8fea419e32f7549252ad15ecf17f3a3c1a268"
+SRC_URI += "git://github.com/lestrrat-go/httpcc;name=httpcc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/lestrrat-go/httpcc"
+
+# github.com/lestrrat-go/iter v1.0.1
+# [1] git ls-remote https://github.com/lestrrat-go/iter 628869e97ee3dcc09033086e547a5cab96b0d708
+SRCREV_iter="628869e97ee3dcc09033086e547a5cab96b0d708"
+SRC_URI += "git://github.com/lestrrat-go/iter;name=iter;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/lestrrat-go/iter"
+
+# github.com/lestrrat-go/jwx v1.2.14
+# [1] git ls-remote https://github.com/lestrrat-go/jwx de7d9bca43812abc4f630320f8632108ccfe34bf
+SRCREV_jwx="de7d9bca43812abc4f630320f8632108ccfe34bf"
+SRC_URI += "git://github.com/lestrrat-go/jwx;name=jwx;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/lestrrat-go/jwx"
+
+# github.com/lestrrat-go/option v1.0.0
+# [1] git ls-remote https://github.com/lestrrat-go/option 7e3467dce320ff45667b138ae503367c92deaa0b
+SRCREV_option="7e3467dce320ff45667b138ae503367c92deaa0b"
+SRC_URI += "git://github.com/lestrrat-go/option;name=option;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/lestrrat-go/option"
+
+# github.com/lucasb-eyer/go-colorful v1.2.0
+# [1] git ls-remote https://github.com/lucasb-eyer/go-colorful d2b05a0d83cca9d610425691c3253d5f36d0ad06
+SRCREV_go-colorful="d2b05a0d83cca9d610425691c3253d5f36d0ad06"
+SRC_URI += "git://github.com/lucasb-eyer/go-colorful;name=go-colorful;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/lucasb-eyer/go-colorful"
+
+# github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0
+# [1] git ls-remote https://github.com/lufia/plan9stats 39d0f177ccd07bdf5eb6f051ab9b09651f05d6f2
+SRCREV_plan9stats="39d0f177ccd07bdf5eb6f051ab9b09651f05d6f2"
+SRC_URI += "git://github.com/lufia/plan9stats;name=plan9stats;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/lufia/plan9stats"
+
+# github.com/mattn/go-colorable v0.1.12
+# [1] git ls-remote https://github.com/mattn/go-colorable e1bb79c8d53c38a60962ad4b8f658226cc983710
+SRCREV_go-colorable="e1bb79c8d53c38a60962ad4b8f658226cc983710"
+SRC_URI += "git://github.com/mattn/go-colorable;name=go-colorable;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-colorable"
+
+# github.com/mattn/go-runewidth v0.0.13
+# [1] git ls-remote https://github.com/mattn/go-runewidth df1ff59654317c1b5a3f860ffc47402931932104
+SRCREV_go-runewidth="df1ff59654317c1b5a3f860ffc47402931932104"
+SRC_URI += "git://github.com/mattn/go-runewidth;name=go-runewidth;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/mattn/go-runewidth"
+
+# github.com/matttproud/golang_protobuf_extensions v1.0.1
+# [1] git ls-remote https://github.com/matttproud/golang_protobuf_extensions c12348ce28de40eed0136aa2b644d0ee0650e56c
+SRCREV_golang_protobuf_extensions="c12348ce28de40eed0136aa2b644d0ee0650e56c"
+SRC_URI += "git://github.com/matttproud/golang_protobuf_extensions;name=golang_protobuf_extensions;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/matttproud/golang_protobuf_extensions"
+
+# github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
+# [1] git ls-remote https://github.com/modern-go/concurrent bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94
+SRCREV_concurrent="bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94"
+SRC_URI += "git://github.com/modern-go/concurrent;name=concurrent;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/modern-go/concurrent"
+
+# github.com/modern-go/reflect2 v1.0.2
+# [1] git ls-remote https://github.com/modern-go/reflect2 2b33151c9bbc5231aea69b8861c540102b087070
+SRCREV_reflect2="2b33151c9bbc5231aea69b8861c540102b087070"
+SRC_URI += "git://github.com/modern-go/reflect2;name=reflect2;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/modern-go/reflect2"
+
+# github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b
+# [1] git ls-remote https://github.com/muesli/ansi 2e021307bc4b4f4766c3fb4faf6030b13dc9ec51
+SRCREV_ansi="2e021307bc4b4f4766c3fb4faf6030b13dc9ec51"
+SRC_URI += "git://github.com/muesli/ansi;name=ansi;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/muesli/ansi"
+
+# github.com/muesli/reflow v0.3.0
+# [1] git ls-remote https://github.com/muesli/reflow 602e329532049c9e33fa8c74e352a46fb9486947
+SRCREV_reflow="602e329532049c9e33fa8c74e352a46fb9486947"
+SRC_URI += "git://github.com/muesli/reflow;name=reflow;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/muesli/reflow"
+
+# github.com/muesli/termenv v0.11.1-0.20220204035834-5ac8409525e0
+# [1] git ls-remote https://github.com/muesli/termenv 5ac8409525e03ee6cd96daeae32d47902b88f32a
+SRCREV_termenv="5ac8409525e03ee6cd96daeae32d47902b88f32a"
+SRC_URI += "git://github.com/muesli/termenv;name=termenv;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/muesli/termenv"
+
+# github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e
+# [1] git ls-remote https://github.com/niemeyer/pretty a10e7caefd8e0d600cea437f5c3613aeb1553d56
+SRCREV_pretty="a10e7caefd8e0d600cea437f5c3613aeb1553d56"
+SRC_URI += "git://github.com/niemeyer/pretty;name=pretty;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/niemeyer/pretty"
+
+# github.com/philhofer/fwd v1.1.1
+# [1] git ls-remote https://github.com/philhofer/fwd 9bcb9cab1b0394d8516a132ec243ba944efdb644
+SRCREV_fwd="9bcb9cab1b0394d8516a132ec243ba944efdb644"
+SRC_URI += "git://github.com/philhofer/fwd;name=fwd;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/philhofer/fwd"
+
+# github.com/pkg/errors v0.9.1
+# [1] git ls-remote https://github.com/pkg/errors 614d223910a179a466c1767a985424175c39b465
+SRCREV_errors="614d223910a179a466c1767a985424175c39b465"
+SRC_URI += "git://github.com/pkg/errors;name=errors;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/pkg/errors"
+
+# github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c
+# [1] git ls-remote https://github.com/power-devops/perfstat 5aafc221ea8c1ff54b0835cbd5f2386a8410be11
+SRCREV_perfstat="5aafc221ea8c1ff54b0835cbd5f2386a8410be11"
+SRC_URI += "git://github.com/power-devops/perfstat;name=perfstat;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/power-devops/perfstat"
+
+# github.com/prometheus/common v0.33.0
+# [1] git ls-remote https://github.com/prometheus/common 63e75f51cd2368130efbd51b95a4e457e64b444e
+SRCREV_common="63e75f51cd2368130efbd51b95a4e457e64b444e"
+SRC_URI += "git://github.com/prometheus/common;name=common;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/common"
+
+# github.com/prometheus/procfs v0.7.3
+# [1] git ls-remote https://github.com/prometheus/procfs f436cbb89ece38bf080d446b3ca27053b305eaac
+SRCREV_procfs="f436cbb89ece38bf080d446b3ca27053b305eaac"
+SRC_URI += "git://github.com/prometheus/procfs;name=procfs;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/prometheus/procfs"
+
+# github.com/rivo/uniseg v0.2.0
+# [1] git ls-remote https://github.com/rivo/uniseg 75711fccf6a3e85bc74c241e2dddd06a9bc9e53d
+SRCREV_uniseg="75711fccf6a3e85bc74c241e2dddd06a9bc9e53d"
+SRC_URI += "git://github.com/rivo/uniseg;name=uniseg;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/rivo/uniseg"
+
+# github.com/sirupsen/logrus v1.8.1
+# [1] git ls-remote https://github.com/sirupsen/logrus bdc0db8ead3853c56b7cd1ac2ba4e11b47d7da6b
+SRCREV_logrus="bdc0db8ead3853c56b7cd1ac2ba4e11b47d7da6b"
+SRC_URI += "git://github.com/sirupsen/logrus;name=logrus;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/sirupsen/logrus"
+
+# github.com/tidwall/match v1.1.1
+# [1] git ls-remote https://github.com/tidwall/match 4c9fc61b493b7aa0a3d347e9190aa78c5bec09cf
+SRCREV_match="4c9fc61b493b7aa0a3d347e9190aa78c5bec09cf"
+SRC_URI += "git://github.com/tidwall/match;name=match;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tidwall/match"
+
+# github.com/tidwall/pretty v1.2.0
+# [1] git ls-remote https://github.com/tidwall/pretty aaa765e7476acb0028a854b85675801362cbdaa2
+SRCREV_pretty1="aaa765e7476acb0028a854b85675801362cbdaa2"
+SRC_URI += "git://github.com/tidwall/pretty;name=pretty1;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tidwall/pretty"
+
+# github.com/tklauser/go-sysconf v0.3.9
+# [1] git ls-remote https://github.com/tklauser/go-sysconf 746b19d14e19d242c2daa08e0d645c19832c1939
+SRCREV_go-sysconf="746b19d14e19d242c2daa08e0d645c19832c1939"
+SRC_URI += "git://github.com/tklauser/go-sysconf;name=go-sysconf;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tklauser/go-sysconf"
+
+# github.com/tklauser/numcpus v0.3.0
+# [1] git ls-remote https://github.com/tklauser/numcpus cc3fdd5f3955d53d50d94380963bddd24bd373e2
+SRCREV_numcpus="cc3fdd5f3955d53d50d94380963bddd24bd373e2"
+SRC_URI += "git://github.com/tklauser/numcpus;name=numcpus;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/tklauser/numcpus"
+
+# github.com/yusufpapurcu/wmi v1.2.2
+# [1] git ls-remote https://github.com/yusufpapurcu/wmi 253c5f0cb35e666c4c0fc42083824e7c89f0cc8d
+SRCREV_wmi="253c5f0cb35e666c4c0fc42083824e7c89f0cc8d"
+SRC_URI += "git://github.com/yusufpapurcu/wmi;name=wmi;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/yusufpapurcu/wmi"
+
+# go.etcd.io/etcd/api/v3 v3.5.2
+# [1] git ls-remote https://github.com/etcd-io/etcd 4591a096d4d3c08e577d7269851938db0c1da3d4
+SRCREV_v31="4591a096d4d3c08e577d7269851938db0c1da3d4"
+SRC_URI += "git://github.com/etcd-io/etcd;name=v31;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/github.com/etcd-io/etcd/api/v3"
+
+# go.uber.org/atomic v1.9.0
+# [1] git ls-remote https://github.com/uber-go/atomic 135466e2d0c8f8adf4d37dc757e3df0ebdd0dfe8
+SRCREV_atomic="135466e2d0c8f8adf4d37dc757e3df0ebdd0dfe8"
+SRC_URI += "git://github.com/uber-go/atomic;name=atomic;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.uber.org/atomic"
+
+# go.uber.org/multierr v1.7.0
+# [1] git ls-remote https://github.com/uber-go/multierr 19d9fff1d3b66750a134671435786579bc994737
+SRCREV_multierr="19d9fff1d3b66750a134671435786579bc994737"
+SRC_URI += "git://github.com/uber-go/multierr;name=multierr;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.uber.org/multierr"
+
+# go.uber.org/zap v1.19.1
+# [1] git ls-remote https://github.com/uber-go/zap 2f61e97148e69cd2dd1902b03e89ce07cd1218a1
+SRCREV_zap="2f61e97148e69cd2dd1902b03e89ce07cd1218a1"
+SRC_URI += "git://github.com/uber-go/zap;name=zap;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.uber.org/zap"
+
+# golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
+# [1] git ls-remote https://go.googlesource.com/sync 036812b2e83c0ddf193dd5a34e034151da389d09
+SRCREV_sync="036812b2e83c0ddf193dd5a34e034151da389d09"
+SRC_URI += "git://go.googlesource.com/sync;name=sync;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.googlesource.com/sync"
+
+# golang.org/x/sys v0.0.0-20220412211240-33da011f77ad
+# [1] git ls-remote https://go.googlesource.com/sys 33da011f77ade50ff5b6a6fb4a9a1e6d6b285809
+SRCREV_sys="33da011f77ade50ff5b6a6fb4a9a1e6d6b285809"
+SRC_URI += "git://go.googlesource.com/sys;name=sys;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/go.googlesource.com/sys"
+
+# google.golang.org/genproto v0.0.0-20211223182754-3ac035c7e7cb
+# [1] git ls-remote https://github.com/googleapis/go-genproto 3ac035c7e7cbd86eb6d8b95be888cf83d73dedd3
+SRCREV_genproto="3ac035c7e7cbd86eb6d8b95be888cf83d73dedd3"
+SRC_URI += "git://github.com/googleapis/go-genproto;name=genproto;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/genproto"
+
+# google.golang.org/grpc v1.43.0
+# [1] git ls-remote https://github.com/grpc/grpc-go 14c11384b76b67f7b1b32a5d18f865762634c0ae
+SRCREV_grpc="14c11384b76b67f7b1b32a5d18f865762634c0ae"
+SRC_URI += "git://github.com/grpc/grpc-go;name=grpc;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/grpc"
+
+# google.golang.org/protobuf v1.27.1
+# [1] git ls-remote https://github.com/protocolbuffers/protobuf-go b92717ecb630d4a4824b372bf98c729d87311a4d
+SRCREV_protobuf12="b92717ecb630d4a4824b372bf98c729d87311a4d"
+SRC_URI += "git://github.com/protocolbuffers/protobuf-go;name=protobuf12;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/google.golang.org/protobuf"
+
+# gopkg.in/ini.v1 v1.66.3
+# [1] git ls-remote https://gopkg.in/ini.v1 fcd6cc399e588727c1231f4ea187d1b963536bcc
+SRCREV_ini.v1="fcd6cc399e588727c1231f4ea187d1b963536bcc"
+SRC_URI += "git://gopkg.in/ini.v1;name=ini.v1;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/ini.v1"
+
+# gopkg.in/yaml.v3 v3.0.1
+# [1] git ls-remote https://gopkg.in/yaml.v3 f6f7691b1fdeb513f56608cd2c32c51f8194bf51
+SRCREV_yaml.v3="f6f7691b1fdeb513f56608cd2c32c51f8194bf51"
+SRC_URI += "git://gopkg.in/yaml.v3;name=yaml.v3;protocol=https;nobranch=1;destsuffix=${WORKDIR}/${BP}/src/import/vendor.fetch/gopkg.in/yaml.v3"
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115/0001-Cargo.toml-do-not-abort-on-panic.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/0001-Cargo.toml-do-not-abort-on-panic.patch
new file mode 100644
index 0000000000..e8dfdea1e9
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/0001-Cargo.toml-do-not-abort-on-panic.patch
@@ -0,0 +1,32 @@
+From f501f7c02df4f0ff5d5f100d9eeb74cd4d12ea3d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 1 Oct 2021 13:00:24 +0200
+Subject: [PATCH] Cargo.toml: do not abort on panic
+
+OE's rust is configured to unwind, and this setting clashes with it/
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
+---
+ Cargo.toml | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Cargo.toml b/Cargo.toml
+index a2718b2f35..4e231c30e8 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -59,13 +59,11 @@ opt-level = 1
+ rpath = false
+ lto = false
+ debug-assertions = true
+-panic = "abort"
+
+ [profile.release]
+ opt-level = 2
+ rpath = false
+ debug-assertions = false
+-panic = "abort"
+
+ # Optimize build dependencies, because bindgen and proc macros / style
+ # compilation take more to run than to build otherwise.
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115/0001-add-arm-to-list-of-mozinline.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/0001-add-arm-to-list-of-mozinline.patch
new file mode 100644
index 0000000000..83187861c7
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/0001-add-arm-to-list-of-mozinline.patch
@@ -0,0 +1,32 @@
+From c5cfb8aa591afd5ad3aedc58fe7f410e89013605 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Fri, 22 Sep 2023 22:59:59 +0000
+Subject: [PATCH] Backport patch from firefox bugzilla to fix compile error for
+ qemuarm with some armv7ve tunes such as 'armv7vethf' and 'armv7vet-vfpv3d16':
+
+| /path/to/build/tmp/work/armv7vet2hf-vfp-poky-linux-gnueabi/mozjs-102/102.5.0-r0/build/js/src/jit/AtomicOperationsGenerated.h:240:17:
+ error: 'asm' operand has impossible constraints
+| 240 | asm volatile (
+| | ^~~
+
+Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1761665]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+---
+ js/src/jit/GenerateAtomicOperations.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/js/src/jit/GenerateAtomicOperations.py b/js/src/jit/GenerateAtomicOperations.py
+index 24b5a191cf..e41948c5af 100644
+--- a/js/src/jit/GenerateAtomicOperations.py
++++ b/js/src/jit/GenerateAtomicOperations.py
+@@ -860,7 +860,7 @@ def generate_atomics_header(c_out):
+
+ # Work around a GCC issue on 32-bit x86 by adding MOZ_NEVER_INLINE.
+ # See bug 1756347.
+- if is_gcc and cpu_arch == "x86":
++ if is_gcc and cpu_arch in ("x86", "arm"):
+ contents = contents.replace("INLINE_ATTR", "MOZ_NEVER_INLINE inline")
+ else:
+ contents = contents.replace("INLINE_ATTR", "inline")
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
new file mode 100644
index 0000000000..38496ea56c
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
@@ -0,0 +1,44 @@
+From c860dcbe63b0e393c95bfb0131238f91aaac11d3 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Thu, 7 Oct 2021 12:44:18 +0200
+Subject: [PATCH] build: do not use autoconf's config.sub to 'canonicalize'
+ names
+
+The outcome is that processed names no longer match our custom rust
+target definitions, and the build fails.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
+---
+ build/moz.configure/init.configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -647,24 +647,7 @@ def help_host_target(help, host, target)
+
+ def config_sub(shell, triplet):
+ config_sub = os.path.join(os.path.dirname(__file__), "..", "autoconf", "config.sub")
+- # Config.sub doesn't like the *-windows-msvc/*-windows-gnu triplets, so
+- # munge those before and after calling config.sub.
+- suffix = None
+- munging = {
+- "-windows-msvc": "-mingw32",
+- "-windows-gnu": "-mingw32",
+- }
+- for check_suffix, replacement in munging.items():
+- if triplet.endswith(check_suffix):
+- suffix = check_suffix
+- triplet = triplet[: -len(suffix)] + replacement
+- break
+- result = check_cmd_output(shell, config_sub, triplet).strip()
+- if suffix:
+- assert result.endswith(replacement)
+- result = result[: -len(replacement)] + suffix
+- return result
+-
++ return triplet
+
+ @depends("--host", shell)
+ @checking("for host system type", lambda h: h.alias)
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91/0001-rewrite-cargo-host-linker-in-python3.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/0001-rewrite-cargo-host-linker-in-python3.patch
index 7b938179c3..83f384e6c2 100644
--- a/meta-oe/recipes-extended/mozjs/mozjs-91/0001-rewrite-cargo-host-linker-in-python3.patch
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/0001-rewrite-cargo-host-linker-in-python3.patch
@@ -1,4 +1,4 @@
-From 9eceb43dd676afe2f675bd65ab369ba4d14f6537 Mon Sep 17 00:00:00 2001
+From c6a84863454b882695058187cd282987613474ef Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Thu, 18 Nov 2021 07:16:39 +0000
Subject: [PATCH] Rewrite cargo-host-linker in python3
@@ -18,12 +18,13 @@ rewrite cargo-host-linker in python3
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
---
- build/cargo-host-linker | 24 +++++++---
+ build/cargo-host-linker | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/build/cargo-host-linker b/build/cargo-host-linker
-index cbd0472bf7..ccd8bffec1 100755
+index cbd0472bf7..87d43ce9ec 100755
--- a/build/cargo-host-linker
+++ b/build/cargo-host-linker
@@ -1,3 +1,21 @@
@@ -51,6 +52,3 @@ index cbd0472bf7..ccd8bffec1 100755
+ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + sys.argv[1:]
+
+os.execvp(binary, args)
---
-2.33.1
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91/0001-util.configure-fix-one-occasionally-reproduced-confi.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/0001-util.configure-fix-one-occasionally-reproduced-confi.patch
index 5472eddbbb..4921a9028c 100644
--- a/meta-oe/recipes-extended/mozjs/mozjs-91/0001-util.configure-fix-one-occasionally-reproduced-confi.patch
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/0001-util.configure-fix-one-occasionally-reproduced-confi.patch
@@ -1,4 +1,4 @@
-From b13cad4abc53f816f64c8b0af70cb46820746c72 Mon Sep 17 00:00:00 2001
+From 0d28cd65efe14022e1d645db71dec74f11ab2ae8 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Thu, 11 Nov 2021 16:05:54 +0800
Subject: [PATCH] util.configure: fix one occasionally reproduced configure
@@ -28,15 +28,16 @@ It should be another process that deleted this file by using
Upstream-Status: Submitted [https://bugzilla.mozilla.org/show_bug.cgi?id=1740667]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
---
build/moz.configure/util.configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build/moz.configure/util.configure b/build/moz.configure/util.configure
-index 8f35e89c73..84e256647d 100644
+index f5ff3acd79..44f69deceb 100644
--- a/build/moz.configure/util.configure
+++ b/build/moz.configure/util.configure
-@@ -222,7 +222,7 @@ def try_invoke_compiler(compiler, language, source, flags=None, onerror=None):
+@@ -254,7 +254,7 @@ def try_invoke_compiler(
"C++": ".cpp",
}[language]
@@ -45,6 +46,3 @@ index 8f35e89c73..84e256647d 100644
try:
source = source.encode("ascii", "replace")
---
-2.17.1
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115/0002-moz.configure-do-not-look-for-llvm-objdump.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/0002-moz.configure-do-not-look-for-llvm-objdump.patch
new file mode 100644
index 0000000000..4c69155a68
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/0002-moz.configure-do-not-look-for-llvm-objdump.patch
@@ -0,0 +1,44 @@
+From 49cb509abd309e3b74ef4c872ae773f18dabca19 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 1 Oct 2021 13:01:10 +0200
+Subject: [PATCH] moz.configure: do not look for llvm-objdump
+
+This avoid dragging in a dependency that isn't even needed
+for js builds.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
+---
+ moz.configure | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/moz.configure b/moz.configure
+index 3a9461200d..33b3f49b0c 100755
+--- a/moz.configure
++++ b/moz.configure
+@@ -723,15 +723,15 @@ check_prog(
+ )
+
+
+-llvm_objdump = check_prog(
+- "LLVM_OBJDUMP",
+- llvm_tool("llvm-objdump"),
+- what="llvm-objdump",
+- when="--enable-compile-environment",
+- paths=clang_search_path,
+-)
+-
+-add_old_configure_assignment("LLVM_OBJDUMP", llvm_objdump)
++#llvm_objdump = check_prog(
++# "LLVM_OBJDUMP",
++# llvm_tool("llvm-objdump"),
++# what="llvm-objdump",
++# when="--enable-compile-environment",
++# paths=clang_search_path,
++#)
++#
++#add_old_configure_assignment("LLVM_OBJDUMP", llvm_objdump)
+
+
+ def validate_readelf(path):
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch
index c440bf178f..0f9d062205 100644
--- a/meta-oe/recipes-extended/mozjs/mozjs-91/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch
@@ -1,21 +1,22 @@
-From 749ba11fd6a69c8180945d4866415d16ae06a9c0 Mon Sep 17 00:00:00 2001
+From ac6a3711917ff3f2b64662cbf4681c22a09da403 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex@linutronix.de>
Date: Fri, 1 Oct 2021 13:02:17 +0200
Subject: [PATCH] rust.configure: do not try to find a suitable upstream target
OE is using custom targets and so this is bound to fail.
-Upstream-Status: Inapppropriate [oe-core specific]
+Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
---
build/moz.configure/rust.configure | 34 ++----------------------------
1 file changed, 2 insertions(+), 32 deletions(-)
diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
-index cd77d72bb7..4b6481cbe3 100644
+index 7a2fd1ae70..e11f13b253 100644
--- a/build/moz.configure/rust.configure
+++ b/build/moz.configure/rust.configure
-@@ -459,33 +459,7 @@ def assert_rust_compile(host_or_target, rustc_target, rustc):
+@@ -486,33 +486,7 @@ def assert_rust_compile(host_or_target, rustc_target, rustc):
def rust_host_triple(
rustc, host, compiler_info, rustc_host, rust_supported_targets, arm_target
):
@@ -50,7 +51,7 @@ index cd77d72bb7..4b6481cbe3 100644
@depends(
-@@ -495,11 +469,7 @@ def rust_host_triple(
+@@ -522,11 +496,7 @@ def rust_host_triple(
def rust_target_triple(
rustc, target, compiler_info, rust_supported_targets, arm_target
):
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91/0004-use-asm-sgidefs.h.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/0004-use-asm-sgidefs.h.patch
index b56f0b95b5..6443d46b2c 100644
--- a/meta-oe/recipes-extended/mozjs/mozjs-91/0004-use-asm-sgidefs.h.patch
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/0004-use-asm-sgidefs.h.patch
@@ -1,4 +1,4 @@
-From 65acc8800dba7e10da882871d4648241805c47ce Mon Sep 17 00:00:00 2001
+From 607aa4d822b0e074ae1b2fc16d7c140c3e889680 Mon Sep 17 00:00:00 2001
From: Andre McCurdy <amccurdy@gmail.com>
Date: Sat, 30 Apr 2016 15:29:06 -0700
Subject: [PATCH] use <asm/sgidefs.h>
@@ -18,13 +18,16 @@ Taken from: https://sourceware.org/bugzilla/show_bug.cgi?id=21070]
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+
---
- gdb/mips-linux-nat.c | 2 +-
+ mfbt/RandomNum.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
+diff --git a/mfbt/RandomNum.cpp b/mfbt/RandomNum.cpp
+index 96de5d4055..2cfb2e10ee 100644
--- a/mfbt/RandomNum.cpp
+++ b/mfbt/RandomNum.cpp
-@@ -52,7 +52,7 @@ extern "C" BOOLEAN NTAPI RtlGenRandom(PV
+@@ -53,7 +53,7 @@ extern "C" BOOLEAN NTAPI RtlGenRandom(PVOID RandomBuffer,
# elif defined(__s390__)
# define GETRANDOM_NR 349
# elif defined(__mips__)
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115/armv5.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/armv5.patch
new file mode 100644
index 0000000000..4c45955bca
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/armv5.patch
@@ -0,0 +1,19 @@
+The ISB instruction isn't available in ARMv5 or v6, so
+guard it's use to fix the build on qemuarmv5.
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/js/src/jit/arm/Architecture-arm.cpp b/js/src/jit/arm/Architecture-arm.cpp
+--- a/js/src/jit/arm/Architecture-arm.cpp 2024-01-18 17:31:32.078718197 +0000
++++ b/js/src/jit/arm/Architecture-arm.cpp 2024-01-18 18:00:16.738921445 +0000
+@@ -529,7 +529,9 @@
+ void FlushExecutionContext() {
+ #ifndef JS_SIMULATOR_ARM
++#if __ARM_ARCH >= 7
+ // Ensure that any instructions already in the pipeline are discarded and
+ // reloaded from the icache.
+ asm volatile("isb\n" : : : "memory");
++#endif
+ #else
+ // We assume the icache flushing routines on other platforms take care of this
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115/fix-musl-build.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/fix-musl-build.patch
new file mode 100644
index 0000000000..22f31e05f8
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/fix-musl-build.patch
@@ -0,0 +1,29 @@
+From e4d8016d0dc56b02e22898d83aad9f80a94d1c3c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Oct 2021 16:21:14 -0700
+Subject: [PATCH] mozjs: Fix musl miscompiles with HAVE_THREAD_TLS_KEYWORD
+
+Upstream: No
+Reason: mozjs60 miscompiles on musl if built with HAVE_THREAD_TLS_KEYWORD:
+https://github.com/void-linux/void-packages/issues/2598
+
+---
+Upstream-Status: Pending
+
+ js/src/old-configure.in | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/js/src/old-configure.in b/js/src/old-configure.in
+index cabd72a2b6..0f08d91cbf 100644
+--- a/js/src/old-configure.in
++++ b/js/src/old-configure.in
+@@ -807,6 +807,9 @@ if test "$ac_cv_thread_keyword" = yes; then
+ *-android*|*-linuxandroid*)
+ :
+ ;;
++ *-musl*)
++ :
++ ;;
+ *)
+ AC_DEFINE(HAVE_THREAD_TLS_KEYWORD)
+ ;;
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115/musl-disable-stackwalk.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/musl-disable-stackwalk.patch
new file mode 100644
index 0000000000..590cddfe5f
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/musl-disable-stackwalk.patch
@@ -0,0 +1,27 @@
+From 9aae71c6ee73431d2609be0ef74ffd4b22b36c75 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 22 Sep 2023 22:59:56 +0000
+Subject: [PATCH] Musl does not have stack unwinder like glibc therefore we can
+ not assume that its always available on musl, we do need to check for target
+ environment as well which could be musl or glibc.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ mozglue/misc/StackWalk.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mozglue/misc/StackWalk.cpp b/mozglue/misc/StackWalk.cpp
+index 307715b170..a8d3cb40c0 100644
+--- a/mozglue/misc/StackWalk.cpp
++++ b/mozglue/misc/StackWalk.cpp
+@@ -43,7 +43,7 @@ using namespace mozilla;
+ # define MOZ_STACKWALK_SUPPORTS_MACOSX 0
+ #endif
+
+-#if (defined(linux) && \
++#if (defined(linux) && defined(__GLIBC__) && \
+ ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
+ defined(HAVE__UNWIND_BACKTRACE)))
+ # define MOZ_STACKWALK_SUPPORTS_LINUX 1
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115/riscv32.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/riscv32.patch
new file mode 100644
index 0000000000..16f95659e2
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/riscv32.patch
@@ -0,0 +1,60 @@
+From d6aff068170e56e6773feba42a463dd8c50bc4ff Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 24 Oct 2021 22:32:50 -0700
+Subject: [PATCH] Add RISCV32 support
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ build/moz.configure/init.configure | 3 +++
+ python/mozbuild/mozbuild/configure/constants.py | 2 ++
+ .../mozbuild/test/configure/test_toolchain_configure.py | 1 +
+ 3 files changed, 6 insertions(+)
+
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 53bbc4203f..2ac40d3d39 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -584,6 +584,9 @@ def split_triplet(triplet, allow_wasi=False):
+ elif cpu.startswith("aarch64"):
+ canonical_cpu = "aarch64"
+ endianness = "little"
++ elif cpu in ("riscv32", "riscv32gc"):
++ canonical_cpu = "riscv32"
++ endianness = "little"
+ elif cpu in ("riscv64", "riscv64gc"):
+ canonical_cpu = "riscv64"
+ endianness = "little"
+diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py
+index a36152651d..a6050be5d8 100644
+--- a/python/mozbuild/mozbuild/configure/constants.py
++++ b/python/mozbuild/mozbuild/configure/constants.py
+@@ -51,6 +51,7 @@ CPU_bitness = {
+ "mips64": 64,
+ "ppc": 32,
+ "ppc64": 64,
++ 'riscv32': 32,
+ "riscv64": 64,
+ "s390": 32,
+ "s390x": 64,
+@@ -98,6 +99,7 @@ CPU_preprocessor_checks = OrderedDict(
+ ("m68k", "__m68k__"),
+ ("mips64", "__mips64"),
+ ("mips32", "__mips__"),
++ ("riscv32", "__riscv && __riscv_xlen == 32"),
+ ("riscv64", "__riscv && __riscv_xlen == 64"),
+ ("loongarch64", "__loongarch64"),
+ ("sh4", "__sh__"),
+diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
+index c6af3d99d4..7ef02e1a85 100644
+--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
+@@ -1325,6 +1325,7 @@ class LinuxCrossCompileToolchainTest(BaseToolchainTest):
+ "m68k-unknown-linux-gnu": big_endian + {"__m68k__": 1},
+ "mips64-unknown-linux-gnuabi64": big_endian + {"__mips64": 1, "__mips__": 1},
+ "mips-unknown-linux-gnu": big_endian + {"__mips__": 1},
++ "riscv32-unknown-linux-gnu": little_endian + {"__riscv": 1, "__riscv_xlen": 32},
+ "riscv64-unknown-linux-gnu": little_endian + {"__riscv": 1, "__riscv_xlen": 64},
+ "sh4-unknown-linux-gnu": little_endian + {"__sh__": 1},
+ }
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115_115.8.0.bb b/meta-oe/recipes-extended/mozjs/mozjs-115_115.8.0.bb
new file mode 100644
index 0000000000..1269795d20
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115_115.8.0.bb
@@ -0,0 +1,98 @@
+SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
+HOMEPAGE = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dc9b6ecd19a14a54a628edaaf23733bf"
+
+SRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/firefox-${PV}esr.source.tar.xz \
+ file://0001-Cargo.toml-do-not-abort-on-panic.patch \
+ file://0002-moz.configure-do-not-look-for-llvm-objdump.patch \
+ file://0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch \
+ file://0004-use-asm-sgidefs.h.patch \
+ file://fix-musl-build.patch \
+ file://0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch \
+ file://riscv32.patch \
+ file://0001-util.configure-fix-one-occasionally-reproduced-confi.patch \
+ file://0001-rewrite-cargo-host-linker-in-python3.patch \
+ file://musl-disable-stackwalk.patch \
+ file://0001-add-arm-to-list-of-mozinline.patch \
+ file://armv5.patch \
+ "
+SRC_URI[sha256sum] = "af8086f23efc8492d286671f6035b1a915de6f4ed5c7897e40be0e1cb6b895ea"
+
+S = "${WORKDIR}/firefox-${PV}"
+
+inherit pkgconfig perlnative python3native rust
+
+DEPENDS += "zlib cargo-native python3 icu"
+DEPENDS:remove:mipsarch = "icu"
+DEPENDS:remove:powerpc:toolchain-clang = "icu"
+
+B = "${WORKDIR}/build"
+
+export PYTHONPATH = "${S}/build:\
+${S}/third_party/python/PyYAML/lib3:\
+${S}/testing/mozbase/mozfile:\
+${S}/python/mozboot:\
+${S}/third_party/python/distro:\
+${S}/testing/mozbase/mozinfo:\
+${S}/config:\
+${S}/testing/mozbase/manifestparser:\
+${S}/third_party/python/pytoml:\
+${S}/testing/mozbase/mozprocess:\
+${S}/third_party/python/six:\
+${S}/python/mozbuild:\
+${S}/python/mozbuild/mozbuild:\
+${S}/python/mach:\
+${S}/third_party/python/jsmin:\
+${S}/python/mozversioncontrol"
+
+export HOST_CC = "${BUILD_CC}"
+export HOST_CXX = "${BUILD_CXX}"
+export HOST_CFLAGS = "${BUILD_CFLAGS}"
+export HOST_CPPFLAGS = "${BUILD_CPPFLAGS}"
+export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
+
+export AS = "${CC}"
+
+export RUSTFLAGS
+
+JIT ?= ""
+JIT:mipsarch = "--disable-jit"
+ICU ?= "--with-system-icu"
+ICU:mipsarch = ""
+ICU:powerpc:toolchain-clang = ""
+
+do_configure() {
+ cd ${B}
+ python3 ${S}/configure.py \
+ --enable-project=js \
+ --target=${RUST_HOST_SYS} \
+ --host=${BUILD_SYS} \
+ --prefix=${prefix} \
+ --libdir=${libdir} \
+ --disable-jemalloc \
+ --disable-strip \
+ ${JIT} \
+ ${ICU}
+}
+do_configure[cleandirs] += "${B}"
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+}
+
+inherit multilib_script multilib_header
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 1)}"
+MULTILIB_SCRIPTS += "${PN}-dev:${bindir}/js${MAJ_VER}-config"
+
+do_install:append() {
+ oe_multilib_header mozjs-${MAJ_VER}/js-config.h
+ sed -e 's@${STAGING_DIR_HOST}@@g' \
+ -i ${D}${bindir}/js${MAJ_VER}-config
+ rm -f ${D}${libdir}/libjs_static.ajs
+}
+
+PACKAGE_DEBUG_SPLIT_STYLE = "debug-without-src"
+PACKAGES =+ "lib${BPN}"
+FILES:lib${BPN} += "${libdir}/lib*"
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91/0001-Cargo.toml-do-not-abort-on-panic.patch b/meta-oe/recipes-extended/mozjs/mozjs-91/0001-Cargo.toml-do-not-abort-on-panic.patch
deleted file mode 100644
index e09848f403..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs-91/0001-Cargo.toml-do-not-abort-on-panic.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 9e37248870b2b955293754933c789ca00bca06ef Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Fri, 1 Oct 2021 13:00:24 +0200
-Subject: [PATCH] Cargo.toml: do not abort on panic
-
-OE's rust is configured to unwind, and this setting clashes with it/
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- Cargo.toml | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
---- a/Cargo.toml
-+++ b/Cargo.toml
-@@ -51,13 +51,11 @@ opt-level = 1
- rpath = false
- lto = false
- debug-assertions = true
--panic = "abort"
-
- [profile.release]
- opt-level = 2
- rpath = false
- debug-assertions = false
--panic = "abort"
-
- # Optimize build dependencies, because bindgen and proc macros / style
- # compilation take more to run than to build otherwise.
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch b/meta-oe/recipes-extended/mozjs/mozjs-91/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
deleted file mode 100644
index a2ccf6b916..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs-91/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From e5b95b3918588e2930c9af7ba304c57e871b2d55 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Thu, 7 Oct 2021 12:44:18 +0200
-Subject: [PATCH] build: do not use autoconf's config.sub to 'canonicalize'
- names
-
-The outcome is that processed names no longer match our custom rust
-target definitions, and the build fails.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- build/moz.configure/init.configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
-index 3a164c6558..99dfc9054a 100644
---- a/build/moz.configure/init.configure
-+++ b/build/moz.configure/init.configure
-@@ -823,7 +823,7 @@ def help_host_target(help, host, target):
-
- def config_sub(shell, triplet):
- config_sub = os.path.join(os.path.dirname(__file__), "..", "autoconf", "config.sub")
-- return check_cmd_output(shell, config_sub, triplet).strip()
-+ return triplet
-
-
- @depends("--host", shell)
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91/0002-moz.configure-do-not-look-for-llvm-objdump.patch b/meta-oe/recipes-extended/mozjs/mozjs-91/0002-moz.configure-do-not-look-for-llvm-objdump.patch
deleted file mode 100644
index 6ff83e3bb2..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs-91/0002-moz.configure-do-not-look-for-llvm-objdump.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 0133ddb86eb6e0741e02b0032c41468db6438530 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Fri, 1 Oct 2021 13:01:10 +0200
-Subject: [PATCH] moz.configure: do not look for llvm-objdump
-
-This avoid dragging in a dependency that isn't even needed
-for js builds.
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- moz.configure | 18 +++++++++---------
- 1 file changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/moz.configure b/moz.configure
-index fc66b520d0..15de9a2ee0 100755
---- a/moz.configure
-+++ b/moz.configure
-@@ -994,15 +994,15 @@ def llvm_objdump(host_c_compiler, c_compiler, bindgen_config_paths):
- return (llvm_objdump,)
-
-
--llvm_objdump = check_prog(
-- "LLVM_OBJDUMP",
-- llvm_objdump,
-- what="llvm-objdump",
-- when="--enable-compile-environment",
-- paths=clang_search_path,
--)
--
--add_old_configure_assignment("LLVM_OBJDUMP", llvm_objdump)
-+#llvm_objdump = check_prog(
-+# "LLVM_OBJDUMP",
-+# llvm_objdump,
-+# what="llvm-objdump",
-+# when="--enable-compile-environment",
-+# paths=clang_search_path,
-+#)
-+
-+#add_old_configure_assignment("LLVM_OBJDUMP", llvm_objdump)
-
-
- option("--enable-dtrace", help="Build with dtrace support")
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91/0005-nojit-32bit-arch-fix.patch b/meta-oe/recipes-extended/mozjs/mozjs-91/0005-nojit-32bit-arch-fix.patch
deleted file mode 100644
index f308b4863f..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs-91/0005-nojit-32bit-arch-fix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Fix build when JIT is disabled on 32bit systems
-
-This fixes a compile time assert
-js/src/wasm/WasmFrame.cpp:57:3: error: static_assert failed due to requirement '(__builtin_offsetof(js::wasm::DebugFrame, frame_) + sizeof(js::wasm::Frame)) % Alignment == 0' "Aligned after pushing DebugFrame"
- static_assert((offsetof(DebugFrame, frame_) + sizeof(Frame)) % Alignment == 0,
- ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/js/src/wasm/WasmFrame.h
-+++ b/js/src/wasm/WasmFrame.h
-@@ -230,6 +230,8 @@ class DebugFrame {
- // Avoid -Wunused-private-field warnings.
- protected:
- #if defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_ARM) || \
-+ (defined(JS_CODEGEN_NONE) && \
-+ (defined(__riscv) && __riscv_xlen == 32) || defined(__mips__)) || \
- defined(JS_CODEGEN_X86) || defined(__wasi__)
- // See alignmentStaticAsserts(). For MIPS32, ARM32 and X86 DebugFrame is only
- // 4-byte aligned, so we add another word to get up to 8-byte
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91/0006-Fix-build-on-powerpc.patch b/meta-oe/recipes-extended/mozjs/mozjs-91/0006-Fix-build-on-powerpc.patch
deleted file mode 100644
index 80bf746e40..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs-91/0006-Fix-build-on-powerpc.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 0e0548e3f95e22a39db8d5b934afe0672a3f801b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Mon, 1 Nov 2021 08:13:29 +0100
-Subject: [PATCH] Fix build on powerpc
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Another fix for (this time JIT enabled)
-| <...>/irefox-91.2.0/js/src/wasm/WasmFrame.cpp:57:76: error: static assertion failed: Aligned after pushing DebugFrame
-| 57 | static_assert((offsetof(DebugFrame, frame_) + sizeof(Frame)) % Alignment == 0,
-| | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- js/src/wasm/WasmFrame.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/js/src/wasm/WasmFrame.h b/js/src/wasm/WasmFrame.h
-index 893762e..2d90656 100644
---- a/js/src/wasm/WasmFrame.h
-+++ b/js/src/wasm/WasmFrame.h
-@@ -232,7 +232,7 @@ class DebugFrame {
- #if defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_ARM) || \
- (defined(JS_CODEGEN_NONE) && \
- (defined(__riscv) && __riscv_xlen == 32) || defined(__mips__)) || \
-- defined(JS_CODEGEN_X86) || defined(__wasi__)
-+ defined(JS_CODEGEN_X86) || defined(__wasi__) || defined(__powerpc__)
- // See alignmentStaticAsserts(). For MIPS32, ARM32 and X86 DebugFrame is only
- // 4-byte aligned, so we add another word to get up to 8-byte
- // alignment.
---
-2.31.1
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91/fix-musl-build.patch b/meta-oe/recipes-extended/mozjs/mozjs-91/fix-musl-build.patch
deleted file mode 100644
index c0834af589..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs-91/fix-musl-build.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream: No
-Reason: mozjs60 miscompiles on musl if built with HAVE_THREAD_TLS_KEYWORD:
-https://github.com/void-linux/void-packages/issues/2598
---- a/js/src/old-configure.in
-+++ b/js/src/old-configure.in
-@@ -1072,6 +1072,9 @@ if test "$ac_cv_thread_keyword" = yes; t
- *-android*|*-linuxandroid*)
- :
- ;;
-+ *-musl*)
-+ :
-+ ;;
- *)
- AC_DEFINE(HAVE_THREAD_TLS_KEYWORD)
- ;;
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91/py-3.11.patch b/meta-oe/recipes-extended/mozjs/mozjs-91/py-3.11.patch
deleted file mode 100644
index 71da8225ab..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs-91/py-3.11.patch
+++ /dev/null
@@ -1,211 +0,0 @@
-
-# HG changeset patch
-# User ahochheiden <ahochheiden@mozilla.com>
-# Date 1654151264 0
-# Node ID f54162b2c1f2fe52c6137ab2c3469a1944f58b27
-# Parent 6e7776492240c27732840d65a33dcc440fa1aba0
-Bug 1769631 - Remove 'U' from 'mode' parameters for various 'open' calls to ensure Python3.11 compatibility r=firefox-build-system-reviewers,glandium
-
-The 'U' flag represents "universal newline". It has been deprecated
-since Python3.3. Since then "universal newline" is the default when a
-file is opened in text mode (not bytes). In Python3.11 using the 'U'
-flag throws errors. There should be no harm in removing 'U' from 'open'
-everywhere it is used, and doing allows the use of Python3.11.
-
-For more reading see: https://docs.python.org/3.11/whatsnew/3.11.html#changes-in-the-python-api
-
-Differential Revision: https://phabricator.services.mozilla.com/D147721
-
-Upstream-Status: Backport [https://hg.mozilla.org/mozilla-central/rev/f54162b2c1f2fe52c6137ab2c3469a1944f58b27]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
-
-diff --git a/dom/base/usecounters.py b/dom/base/usecounters.py
---- a/dom/base/usecounters.py
-+++ b/dom/base/usecounters.py
-@@ -3,17 +3,17 @@
- # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
- import collections
- import re
-
-
- def read_conf(conf_filename):
- # Can't read/write from a single StringIO, so make a new one for reading.
-- stream = open(conf_filename, "rU")
-+ stream = open(conf_filename, "r")
-
- def parse_counters(stream):
- for line_num, line in enumerate(stream):
- line = line.rstrip("\n")
- if not line or line.startswith("//"):
- # empty line or comment
- continue
- m = re.match(r"method ([A-Za-z0-9]+)\.([A-Za-z0-9]+)$", line)
-diff --git a/python/mozbuild/mozbuild/action/process_define_files.py b/python/mozbuild/mozbuild/action/process_define_files.py
---- a/python/mozbuild/mozbuild/action/process_define_files.py
-+++ b/python/mozbuild/mozbuild/action/process_define_files.py
-@@ -31,17 +31,17 @@ def process_define_file(output, input):
-
- config = PartialConfigEnvironment(topobjdir)
-
- if mozpath.basedir(
- path, [mozpath.join(topsrcdir, "js/src")]
- ) and not config.substs.get("JS_STANDALONE"):
- config = PartialConfigEnvironment(mozpath.join(topobjdir, "js", "src"))
-
-- with open(path, "rU") as input:
-+ with open(path, "r") as input:
- r = re.compile(
- "^\s*#\s*(?P<cmd>[a-z]+)(?:\s+(?P<name>\S+)(?:\s+(?P<value>\S+))?)?", re.U
- )
- for l in input:
- m = r.match(l)
- if m:
- cmd = m.group("cmd")
- name = m.group("name")
-diff --git a/python/mozbuild/mozbuild/backend/base.py b/python/mozbuild/mozbuild/backend/base.py
---- a/python/mozbuild/mozbuild/backend/base.py
-+++ b/python/mozbuild/mozbuild/backend/base.py
-@@ -267,17 +267,17 @@ class BuildBackend(LoggingMixin):
- If an exception is raised, |mach build| will fail with a
- non-zero exit code.
- """
- self._write_purgecaches(config)
-
- return status
-
- @contextmanager
-- def _write_file(self, path=None, fh=None, readmode="rU"):
-+ def _write_file(self, path=None, fh=None, readmode="r"):
- """Context manager to write a file.
-
- This is a glorified wrapper around FileAvoidWrite with integration to
- update the summary data on this instance.
-
- Example usage:
-
- with self._write_file('foo.txt') as fh:
-diff --git a/python/mozbuild/mozbuild/preprocessor.py b/python/mozbuild/mozbuild/preprocessor.py
---- a/python/mozbuild/mozbuild/preprocessor.py
-+++ b/python/mozbuild/mozbuild/preprocessor.py
-@@ -526,17 +526,17 @@ class Preprocessor:
- if not options.output:
- raise Preprocessor.Error(
- self, "--depend doesn't work with stdout", None
- )
- depfile = get_output_file(options.depend)
-
- if args:
- for f in args:
-- with io.open(f, "rU", encoding="utf-8") as input:
-+ with io.open(f, "r", encoding="utf-8") as input:
- self.processFile(input=input, output=out)
- if depfile:
- mk = Makefile()
- mk.create_rule([six.ensure_text(options.output)]).add_dependencies(
- self.includes
- )
- mk.dump(depfile)
- depfile.close()
-@@ -855,17 +855,17 @@ class Preprocessor:
- self.checkLineNumbers = False
- if isName:
- try:
- args = _to_text(args)
- if filters:
- args = self.applyFilters(args)
- if not os.path.isabs(args):
- args = os.path.join(self.curdir, args)
-- args = io.open(args, "rU", encoding="utf-8")
-+ args = io.open(args, "r", encoding="utf-8")
- except Preprocessor.Error:
- raise
- except Exception:
- raise Preprocessor.Error(self, "FILE_NOT_FOUND", _to_text(args))
- self.checkLineNumbers = bool(
- re.search("\.(js|jsm|java|webidl)(?:\.in)?$", args.name)
- )
- oldFile = self.context["FILE"]
-@@ -909,17 +909,17 @@ class Preprocessor:
-
- def do_error(self, args):
- raise Preprocessor.Error(self, "Error: ", _to_text(args))
-
-
- def preprocess(includes=[sys.stdin], defines={}, output=sys.stdout, marker="#"):
- pp = Preprocessor(defines=defines, marker=marker)
- for f in includes:
-- with io.open(f, "rU", encoding="utf-8") as input:
-+ with io.open(f, "r", encoding="utf-8") as input:
- pp.processFile(input=input, output=output)
- return pp.includes
-
-
- # Keep this module independently executable.
- if __name__ == "__main__":
- pp = Preprocessor()
- pp.handleCommandLine(None, True)
-diff --git a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py
---- a/python/mozbuild/mozbuild/util.py
-+++ b/python/mozbuild/mozbuild/util.py
-@@ -231,17 +231,17 @@ class FileAvoidWrite(BytesIO):
- enabled by default because it a) doesn't make sense for binary files b)
- could add unwanted overhead to calls.
-
- Additionally, there is dry run mode where the file is not actually written
- out, but reports whether the file was existing and would have been updated
- still occur, as well as diff capture if requested.
- """
-
-- def __init__(self, filename, capture_diff=False, dry_run=False, readmode="rU"):
-+ def __init__(self, filename, capture_diff=False, dry_run=False, readmode="r"):
- BytesIO.__init__(self)
- self.name = filename
- assert type(capture_diff) == bool
- assert type(dry_run) == bool
- assert "r" in readmode
- self._capture_diff = capture_diff
- self._write_to_file = not dry_run
- self.diff = None
-diff --git a/python/mozbuild/mozpack/files.py b/python/mozbuild/mozpack/files.py
---- a/python/mozbuild/mozpack/files.py
-+++ b/python/mozbuild/mozpack/files.py
-@@ -549,17 +549,17 @@ class PreprocessedFile(BaseFile):
- self.defines = defines
- self.extra_depends = list(extra_depends or [])
- self.silence_missing_directive_warnings = silence_missing_directive_warnings
-
- def inputs(self):
- pp = Preprocessor(defines=self.defines, marker=self.marker)
- pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
-
-- with _open(self.path, "rU") as input:
-+ with _open(self.path, "r") as input:
- with _open(os.devnull, "w") as output:
- pp.processFile(input=input, output=output)
-
- # This always yields at least self.path.
- return pp.includes
-
- def copy(self, dest, skip_if_older=True):
- """
-@@ -606,17 +606,17 @@ class PreprocessedFile(BaseFile):
- return False
-
- deps_out = None
- if self.depfile:
- deps_out = FileAvoidWrite(self.depfile)
- pp = Preprocessor(defines=self.defines, marker=self.marker)
- pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
-
-- with _open(self.path, "rU") as input:
-+ with _open(self.path, "r") as input:
- pp.processFile(input=input, output=dest, depfile=deps_out)
-
- dest.close()
- if self.depfile:
- deps_out.close()
-
- return True
-
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91/riscv32.patch b/meta-oe/recipes-extended/mozjs/mozjs-91/riscv32.patch
deleted file mode 100644
index fe9c332a00..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs-91/riscv32.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Add RISCV32 support
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/build/moz.configure/init.configure
-+++ b/build/moz.configure/init.configure
-@@ -765,6 +765,9 @@ def split_triplet(triplet, allow_msvc=Fa
- elif cpu.startswith("aarch64"):
- canonical_cpu = "aarch64"
- endianness = "little"
-+ elif cpu in ("riscv32", "riscv32gc"):
-+ canonical_cpu = "riscv32"
-+ endianness = "little"
- elif cpu in ("riscv64", "riscv64gc"):
- canonical_cpu = "riscv64"
- endianness = "little"
---- a/python/mozbuild/mozbuild/configure/constants.py
-+++ b/python/mozbuild/mozbuild/configure/constants.py
-@@ -52,6 +52,7 @@ CPU_bitness = {
- "mips64": 64,
- "ppc": 32,
- "ppc64": 64,
-+ 'riscv32': 32,
- "riscv64": 64,
- "s390": 32,
- "s390x": 64,
-@@ -94,6 +95,7 @@ CPU_preprocessor_checks = OrderedDict(
- ("m68k", "__m68k__"),
- ("mips64", "__mips64"),
- ("mips32", "__mips__"),
-+ ("riscv32", "__riscv && __riscv_xlen == 32"),
- ("riscv64", "__riscv && __riscv_xlen == 64"),
- ("sh4", "__sh__"),
- ("wasm32", "__wasm32__"),
---- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
-+++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
-@@ -1186,6 +1186,7 @@ class LinuxCrossCompileToolchainTest(Bas
- "m68k-unknown-linux-gnu": big_endian + {"__m68k__": 1},
- "mips64-unknown-linux-gnuabi64": big_endian + {"__mips64": 1, "__mips__": 1},
- "mips-unknown-linux-gnu": big_endian + {"__mips__": 1},
-+ "riscv32-unknown-linux-gnu": little_endian + {"__riscv": 1, "__riscv_xlen": 32},
- "riscv64-unknown-linux-gnu": little_endian + {"__riscv": 1, "__riscv_xlen": 64},
- "sh4-unknown-linux-gnu": little_endian + {"__sh__": 1},
- }
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-91_91.13.0.bb b/meta-oe/recipes-extended/mozjs/mozjs-91_91.13.0.bb
deleted file mode 100644
index 4c1aa3447a..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs-91_91.13.0.bb
+++ /dev/null
@@ -1,80 +0,0 @@
-SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
-HOMEPAGE = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dc9b6ecd19a14a54a628edaaf23733bf"
-
-SRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/firefox-${PV}esr.source.tar.xz \
- file://0001-Cargo.toml-do-not-abort-on-panic.patch \
- file://0002-moz.configure-do-not-look-for-llvm-objdump.patch \
- file://0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch \
- file://0004-use-asm-sgidefs.h.patch \
- file://fix-musl-build.patch \
- file://0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch \
- file://riscv32.patch \
- file://0005-nojit-32bit-arch-fix.patch \
- file://0006-Fix-build-on-powerpc.patch \
- file://0001-util.configure-fix-one-occasionally-reproduced-confi.patch \
- file://0001-rewrite-cargo-host-linker-in-python3.patch \
- file://py-3.11.patch \
- "
-SRC_URI[sha256sum] = "53be2bcde0b5ee3ec106bd8ba06b8ae95e7d489c484e881dfbe5360e4c920762"
-
-S = "${WORKDIR}/firefox-${@d.getVar("PV").replace("esr", "")}"
-
-inherit pkgconfig perlnative python3native rust
-
-DEPENDS += "zlib cargo-native python3 icu"
-DEPENDS:remove:mipsarch = "icu"
-DEPENDS:remove:powerpc:toolchain-clang = "icu"
-
-B = "${WORKDIR}/build"
-
-export PYTHONPATH = "${S}/build:${S}/third_party/python/PyYAML/lib3:${S}/testing/mozbase/mozfile:${S}/python/mozboot:${S}/third_party/python/distro:${S}/testing/mozbase/mozinfo:${S}/config:${S}/testing/mozbase/manifestparser:${S}/third_party/python/pytoml:${S}/testing/mozbase/mozprocess:${S}/third_party/python/six:${S}/python/mozbuild:${S}/python/mozbuild/mozbuild:${S}/python/mach:${S}/third_party/python/jsmin:${S}/python/mozversioncontrol"
-
-export HOST_CC = "${BUILD_CC}"
-export HOST_CXX = "${BUILD_CXX}"
-export HOST_CFLAGS = "${BUILD_CFLAGS}"
-export HOST_CPPFLAGS = "${BUILD_CPPFLAGS}"
-export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
-
-export AS = "${CC}"
-
-export RUSTFLAGS
-
-JIT ?= ""
-JIT:mipsarch = "--disable-jit"
-ICU ?= "--with-system-icu"
-ICU:mipsarch = ""
-ICU:powerpc:toolchain-clang = ""
-
-do_configure() {
- cd ${B}
- python3 ${S}/configure.py \
- --enable-project=js \
- --target=${RUST_HOST_SYS} \
- --host=${BUILD_SYS} \
- --prefix=${prefix} \
- --libdir=${libdir} \
- --disable-jemalloc \
- --disable-strip \
- ${JIT} \
- ${ICU}
-}
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install
-}
-
-inherit multilib_script multilib_header
-
-MULTILIB_SCRIPTS += " ${PN}-dev:${bindir}/js91-config"
-
-do_install:append() {
- oe_multilib_header mozjs-91/js-config.h
- sed -e 's@${STAGING_DIR_HOST}@@g' \
- -i ${D}${bindir}/js91-config
- rm -f ${D}${libdir}/libjs_static.ajs
-}
-
-PACKAGES =+ "lib${BPN}"
-FILES:lib${BPN} += "${libdir}/lib*"
diff --git a/meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch b/meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch
index 0cae02f061..bd8f5be05d 100644
--- a/meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch
+++ b/meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch
@@ -13,6 +13,8 @@ So using a wildcard helps in using any x86 arch
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Submitted [https://github.com/eclipse/mraa/pull/1125]
+
CMakeLists.txt | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/meta-oe/recipes-extended/mraa/mraa/0001-include-Declare-gVERSION-global-as-extern.patch b/meta-oe/recipes-extended/mraa/mraa/0001-include-Declare-gVERSION-global-as-extern.patch
deleted file mode 100644
index d1152ed641..0000000000
--- a/meta-oe/recipes-extended/mraa/mraa/0001-include-Declare-gVERSION-global-as-extern.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From dbb5961f106ec42cd70689d933674c9c37aedfe1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org>
-Date: Mon, 13 Apr 2020 20:12:11 +0200
-Subject: include: Declare gVERSION global as 'extern'.
-
-Fixes build with '-fno-common'.
-
-Upstream-Status: Submitted [https://github.com/eclipse/mraa/pull/1012]
-Signed-off-by: Adrian Bunk <bunk@stusta.de>
----
- include/version.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/include/version.h b/include/version.h
-index 47366ef..3a567a1 100644
---- a/include/version.h
-+++ b/include/version.h
-@@ -11,8 +11,8 @@
- extern "C" {
- #endif
-
--const char* gVERSION;
--const char* gVERSION_SHORT;
-+extern const char* gVERSION;
-+extern const char* gVERSION_SHORT;
-
- #ifdef __cplusplus
- }
---
-2.17.1
-
diff --git a/meta-oe/recipes-extended/mraa/mraa/0001-mraa-Use-posix-basename.patch b/meta-oe/recipes-extended/mraa/mraa/0001-mraa-Use-posix-basename.patch
new file mode 100644
index 0000000000..4f07eae631
--- /dev/null
+++ b/meta-oe/recipes-extended/mraa/mraa/0001-mraa-Use-posix-basename.patch
@@ -0,0 +1,46 @@
+From 30f78cb2775358dacd10b02c0ba2ec0c3ba2945d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 31 Dec 2023 19:16:35 -0800
+Subject: [PATCH 1/2] mraa: Use posix basename
+
+Musl has removed the declaration from string.h [1] which exposes the
+problem especially with clang-17+ compiler where implicit function
+declaration is flagged as error. Use posix basename and make a copy of
+string to operate on to emulate GNU basename behaviour.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted [https://github.com/eclipse/mraa/pull/1125]
+ src/mraa.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/mraa.c b/src/mraa.c
+index 653ea1fa..b556d045 100644
+--- a/src/mraa.c
++++ b/src/mraa.c
+@@ -12,6 +12,7 @@
+ #endif
+
+ #include <dlfcn.h>
++#include <libgen.h>
+ #include <pwd.h>
+ #include <sched.h>
+ #include <stddef.h>
+@@ -341,9 +342,11 @@ static int
+ mraa_count_iio_devices(const char* path, const struct stat* sb, int flag, struct FTW* ftwb)
+ {
+ // we are only interested in files with specific names
+- if (fnmatch(IIO_DEVICE_WILDCARD, basename(path), 0) == 0) {
++ char* tmp = strdup(path);
++ if (fnmatch(IIO_DEVICE_WILDCARD, basename(tmp), 0) == 0) {
+ num_iio_devices++;
+ }
++ free(tmp);
+ return 0;
+ }
+
+--
+2.43.0
+
diff --git a/meta-oe/recipes-extended/mraa/mraa/0002-gpio-Include-limits.h-for-PATH_MAX.patch b/meta-oe/recipes-extended/mraa/mraa/0002-gpio-Include-limits.h-for-PATH_MAX.patch
new file mode 100644
index 0000000000..0e472255a9
--- /dev/null
+++ b/meta-oe/recipes-extended/mraa/mraa/0002-gpio-Include-limits.h-for-PATH_MAX.patch
@@ -0,0 +1,30 @@
+From ffa6f1254066b1d5d99192002043be945ff64297 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 31 Dec 2023 19:18:42 -0800
+Subject: [PATCH 2/2] gpio: Include limits.h for PATH_MAX
+
+Musl exposes this problem where PATH_MAX is used but limits.h is not
+included, it works with glibc perhaps due to limits.h being indirectly
+included by another system header.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted [https://github.com/eclipse/mraa/pull/1125]
+ src/gpio/gpio_chardev.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/gpio/gpio_chardev.c b/src/gpio/gpio_chardev.c
+index 2cd15968..9f727de7 100644
+--- a/src/gpio/gpio_chardev.c
++++ b/src/gpio/gpio_chardev.c
+@@ -12,6 +12,7 @@
+ #include <dirent.h>
+ #include <errno.h>
+ #include <fcntl.h>
++#include <limits.h>
+ #include <poll.h>
+ #include <pthread.h>
+ #include <signal.h>
+--
+2.43.0
+
diff --git a/meta-oe/recipes-extended/mraa/mraa_git.bb b/meta-oe/recipes-extended/mraa/mraa_git.bb
index 2a50550a0e..4d3baf6caa 100644
--- a/meta-oe/recipes-extended/mraa/mraa_git.bb
+++ b/meta-oe/recipes-extended/mraa/mraa_git.bb
@@ -5,12 +5,13 @@ SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=91e7de50a8d3cf01057f318d72460acd"
-SRCREV = "7786c7ded5c9ce7773890d0e3dc27632898fc6b1"
-PV = "2.2.0+git${SRCPV}"
+SRCREV = "3c288a09109969eef9c2da7d92d3c62f92a015cc"
+PV = "2.2.0+git"
-SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=http;branch=master;protocol=https \
+SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=https;branch=master \
file://0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch \
- file://0001-include-Declare-gVERSION-global-as-extern.patch \
+ file://0001-mraa-Use-posix-basename.patch \
+ file://0002-gpio-Include-limits.h-for-PATH_MAX.patch \
"
S = "${WORKDIR}/git"
@@ -47,20 +48,20 @@ BINDINGS:armv4 ??= "python"
BINDINGS:armv5 ??= "python"
PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGES', 'node-${PN}', 'nodejs', '', d)} \
- ${@bb.utils.contains('PACKAGES', '${PYTHON_PN}-${PN}', 'python', '', d)}"
+ ${@bb.utils.contains('PACKAGES', 'python3-${PN}', 'python', '', d)}"
-PACKAGECONFIG[python] = "-DBUILDSWIGPYTHON=ON, -DBUILDSWIGPYTHON=OFF, swig-native ${PYTHON_PN},"
+PACKAGECONFIG[python] = "-DBUILDSWIGPYTHON=ON, -DBUILDSWIGPYTHON=OFF, swig-native python3,"
PACKAGECONFIG[nodejs] = "-DBUILDSWIGNODE=ON, -DBUILDSWIGNODE=OFF, swig-native nodejs-native,"
PACKAGECONFIG[ft4222] = "-DUSBPLAT=ON -DFTDI4222=ON, -DUSBPLAT=OFF -DFTDI4222=OFF,, libft4222"
-FILES:${PYTHON_PN}-${PN} = "${PYTHON_SITEPACKAGES_DIR}/"
-RDEPENDS:${PYTHON_PN}-${PN} += "${PYTHON_PN}"
+FILES:python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/"
+RDEPENDS:python3-${PN} += "python3"
FILES:node-${PN} = "${prefix}/lib/node_modules/"
RDEPENDS:node-${PN} += "nodejs"
### Include desired language bindings ###
PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'nodejs', 'node-${PN}', '', d)}"
-PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'python', '${PYTHON_PN}-${PN}', '', d)}"
+PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'python', 'python3-${PN}', '', d)}"
TOOLCHAIN = "gcc"
diff --git a/meta-oe/recipes-extended/nana/nana/0001-Include-stdlib.h-for-exit-and-abort-prototypes.patch b/meta-oe/recipes-extended/nana/nana/0001-Include-stdlib.h-for-exit-and-abort-prototypes.patch
deleted file mode 100644
index f1712b17f5..0000000000
--- a/meta-oe/recipes-extended/nana/nana/0001-Include-stdlib.h-for-exit-and-abort-prototypes.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 0e32b1a07b1b032576c7b0a73d7f1a090a50dd23 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 31 Aug 2022 10:40:52 -0700
-Subject: [PATCH] Include stdlib.h for exit and abort prototypes
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/I.c | 1 +
- src/nana_error.c | 1 +
- src/nanafilter.c | 1 +
- 3 files changed, 3 insertions(+)
-
-diff --git a/src/I.c b/src/I.c
-index e4577ae..4761af4 100644
---- a/src/I.c
-+++ b/src/I.c
-@@ -30,6 +30,7 @@
-
-
- #include <stdio.h>
-+#include <stdlib.h>
- #include <I.h>
-
- /*
-diff --git a/src/nana_error.c b/src/nana_error.c
-index 51f99f2..c3a67d2 100644
---- a/src/nana_error.c
-+++ b/src/nana_error.c
-@@ -30,6 +30,7 @@
-
- #include <nana_error.h>
- #include <stdio.h>
-+#include <stdlib.h>
-
- void nana_error(const char *message) {
- fprintf(stderr, "nana_error: %s\n", message);
-diff --git a/src/nanafilter.c b/src/nanafilter.c
-index 191e8ef..1ab1978 100644
---- a/src/nanafilter.c
-+++ b/src/nanafilter.c
-@@ -33,6 +33,7 @@
- static const char rcs[] ="Id: nanafilter.c,v 1.2 1998/06/10 06:58:55 pjm Exp ";
-
- #include <stdio.h>
-+#include <stdlib.h>
-
- void do_input(void);
- void do_string(void);
---
-2.37.3
-
diff --git a/meta-oe/recipes-extended/nana/nana/0001-Makefile.am-fix-build-with-separate-build-dir.patch b/meta-oe/recipes-extended/nana/nana/0001-Makefile.am-fix-build-with-separate-build-dir.patch
new file mode 100644
index 0000000000..aee27e803e
--- /dev/null
+++ b/meta-oe/recipes-extended/nana/nana/0001-Makefile.am-fix-build-with-separate-build-dir.patch
@@ -0,0 +1,27 @@
+From 22485e13c6e32e63ff522cd367bf63ab0a8848b1 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <martin.jansa@gmail.com>
+Date: Wed, 7 Feb 2024 15:42:30 +0000
+Subject: [PATCH] Makefile.am: fix build with separate build dir
+
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+Upstream-Status: Pending
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 54ceda6..9e9ffe4 100755
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -33,7 +33,7 @@ PROJECTS: doc/nana.info
+ #
+
+ showconfig:
+- $(CPP) $(CPPFLAGS) -I$(top_srcdir)/src $(DEFS) $(top_srcdir)/showconfig.c | grep "==>"
++ $(CPP) $(CPPFLAGS) -I$(top_builddir)/src -I$(top_srcdir)/src $(DEFS) $(top_srcdir)/showconfig.c | grep "==>"
+
+ #
+ # various targets for the maintainer to build patches, releases, etc.
+--
+2.43.0
+
diff --git a/meta-oe/recipes-extended/nana/nana/0002-man-Makefile.am-we-seem-not-to-need-the-work-around-.patch b/meta-oe/recipes-extended/nana/nana/0002-man-Makefile.am-we-seem-not-to-need-the-work-around-.patch
new file mode 100644
index 0000000000..31a0f045a1
--- /dev/null
+++ b/meta-oe/recipes-extended/nana/nana/0002-man-Makefile.am-we-seem-not-to-need-the-work-around-.patch
@@ -0,0 +1,56 @@
+From 5519de933d851789a672d47be3f53258d036aa18 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <martin.jansa@gmail.com>
+Date: Thu, 8 Feb 2024 14:12:17 +0100
+Subject: [PATCH] man/Makefile.am: we seem not to need the work around anymore
+
+* I'm trying to fix random build failure in world builds which sometimes
+ fail with:
+
+Making install in man
+make[1]: Entering directory 'nana/2.5/nana-2.5/man'
+make[2]: Entering directory 'nana/2.5/nana-2.5/man'
+make[2]: Nothing to be done for 'install-exec-am'.
+ TOPDIR/BUILD/hosttools/mkdir -p 'nana/2.5/image/usr/share/man/man1'
+installing nana.1 as /usr/share/man/man1/nana.1
+ TOPDIR/BUILD/hosttools/mkdir -p 'nana/2.5/image/usr/share/man/man3'
+ TOPDIR/BUILD/hosttools/install -c -m 644 I.3 DI.3 L.3 DL.3 Q.3 Qstl.3 nana.3 'nana/2.5/image/usr/share/man/man3'
+ TOPDIR/BUILD/hosttools/install -c -m 644 nana.1 nana-clg.1 'nana/2.5/image/usr/share/man/man1'
+TOPDIR/BUILD/hosttools/install: cannot create regular file 'nana/2.5/image/usr/share/man/man1/nana.1': File exists
+make[2]: *** [Makefile:314: install-man1] Error 1
+make[2]: *** Waiting for unfinished jobs....
+make[2]: Leaving directory 'nana/2.5/nana-2.5/man'
+make[1]: Leaving directory 'nana/2.5/nana-2.5/man'
+make[1]: *** [Makefile:450: install-am] Error 2
+make: *** [Makefile:380: install-recursive] Error 1
+
+ I guess it's related to install-data-local work around in:
+ https://github.com/pjmaker/nana/blob/master/man/Makefile.am#L15
+
+ which might not be needed on some make versions and then it ends
+ installing nana.1 multiple times
+
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+Upstream-Status: Pending
+---
+ man/Makefile.am | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/man/Makefile.am b/man/Makefile.am
+index 4cc5b28..3b2936d 100755
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -7,14 +7,3 @@ CLEANFILES = *~
+ EXTRA_DIST = nana.1 nana-clg.1 I.3 DI.3 L.3 DL.3 Q.3 Qstl.3 nana.3
+
+ man_MANS = nana.1 nana-clg.1 I.3 DI.3 L.3 DL.3 Q.3 Qstl.3 nana.3
+-
+-# We seem to have a problem with automake, if I include nana.1 in the
+-# man_MANS variable we don't install it. The following dodgey aims
+-# to fix it.
+-
+-install-data-local:
+- @sect=1; \
+- inst=`echo "nana" | sed '$(transform)'`.1; \
+- echo installing nana.1 as $(mandir)/man$$sect/$$inst; \
+- $(INSTALL_DATA) $(srcdir)/nana.1 $(mandir)/man$$sect/$$inst
+-
diff --git a/meta-oe/recipes-extended/nana/nana/change-mandir-to-DESTDIR.patch b/meta-oe/recipes-extended/nana/nana/change-mandir-to-DESTDIR.patch
deleted file mode 100644
index 653a7e44c1..0000000000
--- a/meta-oe/recipes-extended/nana/nana/change-mandir-to-DESTDIR.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 7b04c4873c0a4510bdaf9145bf01ca34b3549fdb Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Thu, 4 Dec 2014 03:50:19 +0900
-Subject: [PATCH 1/2] change mandir to DESTDIR
-
-Upstream-Status: pending
-
-Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
----
- man/Makefile.am | 2 +-
- man/Makefile.in | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/man/Makefile.am b/man/Makefile.am
-index 80d24d8..944bc57 100644
---- a/man/Makefile.am
-+++ b/man/Makefile.am
-@@ -16,5 +16,5 @@ install-data-local:
- @sect=1; \
- inst=`echo "nana" | sed '$(transform)'`.1; \
- echo installing nana.1 as $(mandir)/man$$sect/$$inst; \
-- $(INSTALL_DATA) $(srcdir)/nana.1 $(mandir)/man$$sect/$$inst
-+ $(INSTALL_DATA) $(srcdir)/nana.1 $(DESTDIR)$(mandir)/man$$sect/$$inst
-
-diff --git a/man/Makefile.in b/man/Makefile.in
-index 6008b20..64bb84c 100644
---- a/man/Makefile.in
-+++ b/man/Makefile.in
-@@ -274,7 +274,7 @@ install-data-local:
- @sect=1; \
- inst=`echo "nana" | sed '$(transform)'`.1; \
- echo installing nana.1 as $(mandir)/man$$sect/$$inst; \
-- $(INSTALL_DATA) $(srcdir)/nana.1 $(mandir)/man$$sect/$$inst
-+ $(INSTALL_DATA) $(srcdir)/nana.1 $(DESTDIR)$(mandir)/man$$sect/$$inst
-
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
---
-1.8.4.2
-
diff --git a/meta-oe/recipes-extended/nana/nana/modify-acinclude.m4-and-configure.in.patch b/meta-oe/recipes-extended/nana/nana/modify-acinclude.m4-and-configure.in.patch
deleted file mode 100644
index aeb25466ca..0000000000
--- a/meta-oe/recipes-extended/nana/nana/modify-acinclude.m4-and-configure.in.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From 679e33bfe74d713240fdd930602b993b937dce39 Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Fri, 23 Jan 2015 03:30:47 +0900
-Subject: [PATCH] modify acinclude.m4 and configure.in
-
-this patch is from Debian to fix build errors.
-"acinclude.m4:34: error: automatic de-ANSI-fication
-support has been removed"
-
-Upstream-Status: pending
-
-Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
----
- acinclude.m4 | 79 ------------------------------------------------------------
- configure.in | 12 +++++++++
- 2 files changed, 12 insertions(+), 79 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index e9e5500..d467fb5 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -30,82 +30,3 @@ AC_SUBST($1)
- ## ------------------------------- ##
- ## Check for function prototypes. ##
- ## ------------------------------- ##
--
--AC_DEFUN(fp_C_PROTOTYPES,
--[AC_REQUIRE([AM_PROG_CC_STDC])
--AC_MSG_CHECKING([for function prototypes])
--if test "$ac_cv_prog_cc_stdc" != no; then
-- AC_MSG_RESULT(yes)
-- AC_DEFINE(PROTOTYPES)
-- U= ANSI2KNR=
--else
-- AC_MSG_RESULT(no)
-- U=_ ANSI2KNR=./ansi2knr
--fi
--AC_SUBST(U)dnl
--AC_SUBST(ANSI2KNR)dnl
--])
--
--## ----------------------------------------- ##
--## ANSIfy the C compiler whenever possible. ##
--## ----------------------------------------- ##
--
--# @defmac AC_PROG_CC_STDC
--# @maindex PROG_CC_STDC
--# @ovindex CC
--# If the C compiler in not in ANSI C mode by default, try to add an option
--# to output variable @code{CC} to make it so. This macro tries various
--# options that select ANSI C on some system or another. It considers the
--# compiler to be in ANSI C mode if it defines @code{__STDC__} to 1 and
--# handles function prototypes correctly.
--#
--# If you use this macro, you should check after calling it whether the C
--# compiler has been set to accept ANSI C; if not, the shell variable
--# @code{ac_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source
--# code in ANSI C, you can make an un-ANSIfied copy of it by using the
--# program @code{ansi2knr}, which comes with Ghostscript.
--# @end defmac
--
--AC_DEFUN(fp_PROG_CC_STDC,
--[AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
--AC_CACHE_VAL(ac_cv_prog_cc_stdc,
--[ac_cv_prog_cc_stdc=no
--ac_save_CFLAGS="$CFLAGS"
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX -qlanglvl=ansi
--# Ultrix and OSF/1 -std1
--# HP-UX -Aa -D_HPUX_SOURCE
--# SVR4 -Xc
--for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" -Xc
--do
-- CFLAGS="$ac_save_CFLAGS $ac_arg"
-- AC_TRY_COMPILE(
--[#if !defined(__STDC__) || __STDC__ != 1
--choke me
--#endif
--], [int test (int i, double x);
--struct s1 {int (*f) (int a);};
--struct s2 {int (*f) (double a);};],
--[ac_cv_prog_cc_stdc="$ac_arg"; break])
--done
--CFLAGS="$ac_save_CFLAGS"
--])
--AC_MSG_RESULT($ac_cv_prog_cc_stdc)
--case "x$ac_cv_prog_cc_stdc" in
-- x|xno) ;;
-- *) CC="$CC $ac_cv_prog_cc_stdc" ;;
--esac
--])
--
--## --------------------------------------------------------- ##
--## Use AC_PROG_INSTALL, supplementing it with INSTALL_SCRIPT ##
--## substitution. ##
--## --------------------------------------------------------- ##
--
--AC_DEFUN(fp_PROG_INSTALL,
--[AC_PROG_INSTALL
--test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL} -m 755'
--AC_SUBST(INSTALL_SCRIPT)dnl
--])
--
-diff --git a/configure.in b/configure.in
-index 6b25ed5..a6a7f5b 100644
---- a/configure.in
-+++ b/configure.in
-@@ -103,6 +103,12 @@ nana_DEFINE(DI_MAKE_VALID_BREAKPOINT,(exprn),
- sparc-*-*|i?86-*-*)
- DI_MAKE_VALID_BREAKPOINT='asm("nop")'
- ;;
-+ arm*-*-*|frv-*-*|mips*-*-*)
-+ DI_MAKE_VALID_BREAKPOINT='asm("nop")'
-+ ;;
-+ sh*-*-*)
-+ DI_MAKE_VALID_BREAKPOINT='asm("nop\n\tnop\n\t")'
-+ ;;
- esac
- ])
-
-@@ -113,6 +119,12 @@ nana_DEFINE(DL_MAKE_VALID_BREAKPOINT,(),
- sparc-*-*|i?86-*-*)
- DL_MAKE_VALID_BREAKPOINT='asm("nop")'
- ;;
-+ arm*-*-*|frv-*-*|mips*-*-*)
-+ DL_MAKE_VALID_BREAKPOINT='asm("nop")'
-+ ;;
-+ sh*-*-*)
-+ DL_MAKE_VALID_BREAKPOINT='asm("nop\n\tnop\n\t")'
-+ ;;
- esac
- ])
-
---
-1.8.4.2
-
diff --git a/meta-oe/recipes-extended/nana/nana_2.5.bb b/meta-oe/recipes-extended/nana/nana_2.5.bb
deleted file mode 100644
index c109d4f0fc..0000000000
--- a/meta-oe/recipes-extended/nana/nana_2.5.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Support for assertion checking and logging in GNU C/C++"
-DESCRIPTION = "GNU Nana is a free library providing improved support for assertion\
-checking (as in assert.h) and logging (printf style debugging) in \
-GNU C and C++."
-SECTION = "Development/Languages/C and C++"
-
-SRC_URI = "http://download.savannah.gnu.org/releases/${BPN}/${BP}.tar.gz \
- file://change-mandir-to-DESTDIR.patch \
- file://modify-acinclude.m4-and-configure.in.patch \
- file://0001-Include-stdlib.h-for-exit-and-abort-prototypes.patch \
-"
-SRC_URI[md5sum] = "66c88aa0ad095b2e67673773135475f1"
-SRC_URI[sha256sum] = "fd1819ffea94b209513959447e4802afe2719600e7d161cd78b265a42812affa"
-
-LICENSE = "BSD-2-Clause"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=16aa57f3b7fdda870cee597275bd5d11"
-
-inherit autotools-brokensep pkgconfig texinfo
-
-EXTRA_OEMAKE = "DESTDIR=${D}"
-
-do_configure:prepend:class-nativesdk() {
- sed -i -e 's:@CPP@:\$\{CXX\} \$\{CXXFLAGS\} \-E:g' ${S}/src/nana.in
- sed -i -e 's:@CC@:\$\{CC\} \$\{CFLAGS\} \-E:g' ${S}/src/nana-clg.in
- sed -i -e 's:@CXX@::g' ${S}/src/nana-c++lg.in
- sed -i -e 's:@GDB@:\$\{GDB\}:g' ${S}/src/nana-run.in
-}
-
-do_install:prepend() {
- install -d ${D}${mandir}/man1
- install -d ${D}${mandir}/man3
- install -d ${D}${datadir}/info
-}
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-extended/nana/nana_git.bb b/meta-oe/recipes-extended/nana/nana_git.bb
new file mode 100644
index 0000000000..7c748bc49b
--- /dev/null
+++ b/meta-oe/recipes-extended/nana/nana_git.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Support for assertion checking and logging in GNU C/C++"
+DESCRIPTION = "GNU Nana is a free library providing improved support for assertion\
+checking (as in assert.h) and logging (printf style debugging) in \
+GNU C and C++."
+SECTION = "Development/Languages/C and C++"
+
+PV = "2.5+git"
+SRCREV = "6d70617db8b9972e6c1008265fc228aba91c2042"
+SRC_URI = "git://github.com/pjmaker/nana;protocol=https;branch=master \
+ file://0001-Makefile.am-fix-build-with-separate-build-dir.patch \
+ file://0002-man-Makefile.am-we-seem-not-to-need-the-work-around-.patch \
+"
+S = "${WORKDIR}/git"
+
+LICENSE = "BSD-2-Clause"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=16aa57f3b7fdda870cee597275bd5d11"
+
+inherit autotools pkgconfig texinfo
+
+EXTRA_OEMAKE = "DESTDIR=${D}"
+
+do_configure:prepend() {
+ # make distclean but in ${S}
+ rm -rf ${S}/src/*.o ${S}/src/.deps \
+ ${S}/Makefile ${S}/config.log ${S}/config.status \
+ ${S}/doc/Makefile ${S}/doc/nana.pdf \
+ ${S}/emacs/Makefile ${S}/examples/Makefile \
+ ${S}/gdb/Makefile ${S}/gdb/nana-libtrace ${S}/gdb/nana-trace \
+ ${S}/man/Makefile ${S}/perf/Makefile \
+ ${S}/shortform/Makefile ${S}/shortform/nana-sfdir ${S}/shortform/nana-sfg \
+ ${S}/src/Makefile ${S}/src/libnana.a \
+ ${S}/src/nana ${S}/src/nana-c++lg ${S}/src/nana-clg ${S}/src/nana-config.h ${S}/src/nana-run ${S}/src/nanafilter \
+ ${S}/test/Makefile ${S}/test/gammon
+}
+
+do_configure:prepend:class-nativesdk() {
+ sed -i -e 's:@CPP@:\$\{CXX\} \$\{CXXFLAGS\} \-E:g' ${S}/src/nana.in
+ sed -i -e 's:@CC@:\$\{CC\} \$\{CFLAGS\} \-E:g' ${S}/src/nana-clg.in
+ sed -i -e 's:@CXX@::g' ${S}/src/nana-c++lg.in
+ sed -i -e 's:@GDB@:\$\{GDB\}:g' ${S}/src/nana-run.in
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-extended/networking/mstpd/bridge-stp b/meta-oe/recipes-extended/networking/mstpd/bridge-stp
new file mode 100644
index 0000000000..59c5786b74
--- /dev/null
+++ b/meta-oe/recipes-extended/networking/mstpd/bridge-stp
@@ -0,0 +1,18 @@
+#!/bin/sh
+if [ "$#" -lt 2 ]; then
+ echo "Missing args: bridge-stp <bridge> <start|stop>" >&2
+ exit 1
+fi
+case "$2" in
+ start)
+ /usr/sbin/mstpctl addbridge "$1"
+ exit
+ ;;
+ stop)
+ /usr/sbin/mstpctl delbridge "$1"
+ exit
+ ;;
+ *)
+ echo "Invalid operation: $2" >&2
+ exit 1
+esac
diff --git a/meta-oe/recipes-extended/networking/mstpd/mstpd.service b/meta-oe/recipes-extended/networking/mstpd/mstpd.service
new file mode 100644
index 0000000000..645db893cc
--- /dev/null
+++ b/meta-oe/recipes-extended/networking/mstpd/mstpd.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Multiple Spanning Tree Protocol Daemon
+Before=network-pre.target
+Wants=network-pre.target
+[Service]
+Restart=always
+Type=simple
+ExecStart=/usr/sbin/mstpd -d -v 2
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/networking/mstpd_git.bb b/meta-oe/recipes-extended/networking/mstpd_git.bb
new file mode 100644
index 0000000000..b2043ef062
--- /dev/null
+++ b/meta-oe/recipes-extended/networking/mstpd_git.bb
@@ -0,0 +1,33 @@
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4325afd396febcb659c36b49533135d4"
+
+PV = "0.1.0+git"
+
+SRC_URI = " \
+ git://github.com/mstpd/mstpd;branch=master;protocol=https \
+ file://bridge-stp \
+ file://mstpd.service \
+"
+SRCREV = "181c453fc1a00573e19f14960dcc54ad84beea7c"
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+){2,})"
+
+inherit autotools pkgconfig systemd
+
+PACKAGES =+ "${PN}-mstpd"
+FILES:${PN}-mstpd = "${sbindir}/mstpd ${sbindir}/mstpctl ${sbindir}/bridge-stp"
+
+SYSTEMD_PACKAGES = "${PN}-mstpd"
+SYSTEMD_SERVICE:${PN}-mstpd = "mstpd.service"
+
+do_install:append() {
+ rm -rf ${D}${libexecdir} ${D}${libdir}/NetworkManager
+ rmdir ${D}${libdir} || true
+
+ install -d -m 0755 ${D}${sbindir}
+ install -m 0755 ${WORKDIR}/bridge-stp ${D}${sbindir}
+
+ install -d -m 0755 ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/mstpd.service ${D}${systemd_system_unitdir}
+}
diff --git a/meta-oe/recipes-extended/nicstat/nicstat/0001-nicstat.c-Do-not-define-uint64_t-and-uint32_t.patch b/meta-oe/recipes-extended/nicstat/nicstat/0001-nicstat.c-Do-not-define-uint64_t-and-uint32_t.patch
index a208f97eb2..78e3176e89 100644
--- a/meta-oe/recipes-extended/nicstat/nicstat/0001-nicstat.c-Do-not-define-uint64_t-and-uint32_t.patch
+++ b/meta-oe/recipes-extended/nicstat/nicstat/0001-nicstat.c-Do-not-define-uint64_t-and-uint32_t.patch
@@ -8,6 +8,8 @@ Use the defines from platform
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
nicstat.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/meta-oe/recipes-extended/nicstat/nicstat_1.95.bb b/meta-oe/recipes-extended/nicstat/nicstat_1.95.bb
index 3875f0f605..bf742fa062 100644
--- a/meta-oe/recipes-extended/nicstat/nicstat_1.95.bb
+++ b/meta-oe/recipes-extended/nicstat/nicstat_1.95.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "http://nicstat.sourceforge.net"
LICENSE = "Artistic-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b4a94da2a1f918b217ef5156634fc9e0"
-SRC_URI = "http://softlayer-sng.dl.sourceforge.net/project/${BPN}/${BP}.tar.gz \
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
file://0001-nicstat.c-Do-not-define-uint64_t-and-uint32_t.patch \
"
SRC_URI[md5sum] = "9a0b87bbc670c1e738e5b40c7afd184d"
diff --git a/meta-oe/recipes-extended/openwsman/openwsman/0001-Link-with-libm-for-floor-function.patch b/meta-oe/recipes-extended/openwsman/openwsman/0001-Link-with-libm-for-floor-function.patch
new file mode 100644
index 0000000000..2f47261588
--- /dev/null
+++ b/meta-oe/recipes-extended/openwsman/openwsman/0001-Link-with-libm-for-floor-function.patch
@@ -0,0 +1,71 @@
+From 09101da4efaa5584b7f3f3f3bfa5dbb4d1e26948 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 24 Jul 2023 22:09:21 -0700
+Subject: [PATCH] Link with libm for floor() function
+
+LLD linker finds this missing symbol
+
+arm-yoe-linux-gnueabi-ld.lld: error: undefined reference due to --no-allow-shlib-undefined: floor
+>>> referenced by src/lib/libwsman.so.1.0.0
+
+Upstream-Status: Submitted [https://github.com/Openwsman/openwsman/pull/195]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 10 ++++++++++
+ configure.ac | 3 ++-
+ src/lib/CMakeLists.txt | 4 ++++
+ 3 files changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6e54c66b..507ee633 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -297,6 +297,16 @@ ELSE(HAVE_LIBDL)
+ SET(HAVE_LIBDL 0)
+ ENDIF(HAVE_LIBDL)
+
++# m
++
++FIND_LIBRARY( HAVE_LIBM "m" )
++IF(HAVE_LIBM)
++ SET(M_LIBRARIES ${HAVE_LIBM})
++ SET(HAVE_LIBM 1)
++ELSE(HAVE_LIBM)
++ SET(HAVE_LIBM 0)
++ENDIF(HAVE_LIBM)
++
+ # crypt
+
+ FIND_LIBRARY( HAVE_LIBCRYPT "crypt" )
+diff --git a/configure.ac b/configure.ac
+index 125564da..010fa0b6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -128,7 +128,8 @@ daemon \
+ va_copy \
+ memmove \
+ bcopy \
+-gmtime_r
++gmtime_r \
++floor
+ )
+ AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket))
+ AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname))
+diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
+index 5c51781f..496fd672 100644
+--- a/src/lib/CMakeLists.txt
++++ b/src/lib/CMakeLists.txt
+@@ -36,6 +36,10 @@ if( HAVE_LIBDL )
+ TARGET_LINK_LIBRARIES(wsman ${DL_LIBRARIES})
+ endif( HAVE_LIBDL )
+
++if( HAVE_LIBM )
++TARGET_LINK_LIBRARIES(wsman ${M_LIBRARIES})
++endif( HAVE_LIBM )
++
+ IF( ENABLE_EVENTING_SUPPORT )
+ TARGET_LINK_LIBRARIES( wsman ${WSMAN_CLIENT_PKG} )
+ ENDIF( ENABLE_EVENTING_SUPPORT )
+--
+2.41.0
+
diff --git a/meta-oe/recipes-extended/openwsman/openwsman/0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch b/meta-oe/recipes-extended/openwsman/openwsman/0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch
index 7823fde7a0..0e2349e303 100644
--- a/meta-oe/recipes-extended/openwsman/openwsman/0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch
+++ b/meta-oe/recipes-extended/openwsman/openwsman/0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch
@@ -8,6 +8,8 @@ checking for OS
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/lib/u/lock.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/openwsman/openwsman/libssl-is-required-if-eventint-supported.patch b/meta-oe/recipes-extended/openwsman/openwsman/libssl-is-required-if-eventint-supported.patch
index bd540e37c1..71f3d90a81 100644
--- a/meta-oe/recipes-extended/openwsman/openwsman/libssl-is-required-if-eventint-supported.patch
+++ b/meta-oe/recipes-extended/openwsman/openwsman/libssl-is-required-if-eventint-supported.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
libssl is required by wsman_client_transport if ENABLE_EVENTING_SUPPORT enabled.
Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
diff --git a/meta-oe/recipes-extended/openwsman/openwsman_2.7.1.bb b/meta-oe/recipes-extended/openwsman/openwsman_2.7.1.bb
deleted file mode 100644
index 7fc5d4218f..0000000000
--- a/meta-oe/recipes-extended/openwsman/openwsman_2.7.1.bb
+++ /dev/null
@@ -1,72 +0,0 @@
-SUMMARY = "Opensource Implementation of WS-Management"
-DESCRIPTION = "Openwsman is a project intended to provide an open-source \
-implementation of the Web Services Management specipication \
-(WS-Management) and to expose system management information on the \
-Linux operating system using the WS-Management protocol. WS-Management \
-is based on a suite of web services specifications and usage \
-requirements that exposes a set of operations focused on and covers \
-all system management aspects. \
-Openwsman Server and service libraries"
-HOMEPAGE = "http://www.openwsman.org/"
-SECTION = "Applications/System"
-
-DEPENDS = "curl libxml2 openssl libpam"
-
-inherit features_check
-REQUIRED_DISTRO_FEATURES = "pam"
-
-SRCREV = "6cdf3bee50388d8e5f70850322a4df57fd685a5e"
-
-SRC_URI = "git://github.com/Openwsman/openwsman.git;branch=master;protocol=https \
- file://libssl-is-required-if-eventint-supported.patch \
- file://openwsmand.service \
- file://0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch \
- "
-
-S = "${WORKDIR}/git"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d4f53d4c6cf73b9d43186ce3be6dd0ba"
-
-inherit systemd cmake pkgconfig python3native perlnative
-
-SYSTEMD_SERVICE:${PN} = "openwsmand.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', " -fuse-ld=bfd ", '', d)}"
-
-EXTRA_OECMAKE = "-DBUILD_BINDINGS=NO \
- -DBUILD_LIBCIM=NO \
- -DBUILD_PERL=YES \
- -DBUILD_PYTHON3=YES \
- -DBUILD_PYTHON=NO \
- -DCMAKE_INSTALL_PREFIX=${prefix} \
- -DLIB=${baselib} \
- "
-
-do_configure:prepend() {
- export STAGING_INCDIR=${STAGING_INCDIR}
- export STAGING_LIBDIR=${STAGING_LIBDIR}
-}
-
-do_install:append() {
- install -d ${D}/${sysconfdir}/init.d
- install -m 755 ${B}/etc/init/openwsmand.sh ${D}/${sysconfdir}/init.d/openwsmand
- ln -sf ${sysconfdir}/init.d/openwsmand ${D}/${sbindir}/rcopenwsmand
- chmod 755 ${D}/${sysconfdir}/openwsman/owsmangencert.sh
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}/${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/openwsmand.service ${D}/${systemd_unitdir}/system
-
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/openwsmand.service
- sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/openwsmand.service
- sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/openwsmand.service
- fi
-}
-
-FILES:${PN}-dbg += "${libdir}/openwsman/plugins/.debug/ \
- ${libdir}/openwsman/authenticators/.debug/ \
- "
-
-INSANE_SKIP:${PN} = "dev-so"
-RDEPENDS:${PN} = "ruby"
diff --git a/meta-oe/recipes-extended/openwsman/openwsman_2.7.2.bb b/meta-oe/recipes-extended/openwsman/openwsman_2.7.2.bb
new file mode 100644
index 0000000000..1c68b5f432
--- /dev/null
+++ b/meta-oe/recipes-extended/openwsman/openwsman_2.7.2.bb
@@ -0,0 +1,73 @@
+SUMMARY = "Opensource Implementation of WS-Management"
+DESCRIPTION = "Openwsman is a project intended to provide an open-source \
+implementation of the Web Services Management specipication \
+(WS-Management) and to expose system management information on the \
+Linux operating system using the WS-Management protocol. WS-Management \
+is based on a suite of web services specifications and usage \
+requirements that exposes a set of operations focused on and covers \
+all system management aspects. \
+Openwsman Server and service libraries"
+HOMEPAGE = "http://www.openwsman.org/"
+SECTION = "Applications/System"
+
+DEPENDS = "curl libxml2 openssl libpam"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+SRCREV = "0120e256faa255d997d9a49d5207662c0b73d430"
+
+SRC_URI = "git://github.com/Openwsman/openwsman.git;branch=main;protocol=https \
+ file://libssl-is-required-if-eventint-supported.patch \
+ file://openwsmand.service \
+ file://0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch \
+ file://0001-Link-with-libm-for-floor-function.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d4f53d4c6cf73b9d43186ce3be6dd0ba"
+
+inherit systemd cmake pkgconfig python3native perlnative
+
+SYSTEMD_SERVICE:${PN} = "openwsmand.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', " -fuse-ld=bfd ", '', d)}"
+
+EXTRA_OECMAKE = "-DBUILD_BINDINGS=NO \
+ -DBUILD_LIBCIM=NO \
+ -DBUILD_PERL=YES \
+ -DBUILD_PYTHON3=YES \
+ -DBUILD_PYTHON=NO \
+ -DCMAKE_INSTALL_PREFIX=${prefix} \
+ -DLIB=${baselib} \
+ "
+
+do_configure:prepend() {
+ export STAGING_INCDIR=${STAGING_INCDIR}
+ export STAGING_LIBDIR=${STAGING_LIBDIR}
+}
+
+do_install:append() {
+ install -d ${D}/${sysconfdir}/init.d
+ install -m 755 ${B}/etc/init/openwsmand.sh ${D}/${sysconfdir}/init.d/openwsmand
+ ln -sf ${sysconfdir}/init.d/openwsmand ${D}/${sbindir}/rcopenwsmand
+ chmod 755 ${D}/${sysconfdir}/openwsman/owsmangencert.sh
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}/${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/openwsmand.service ${D}/${systemd_unitdir}/system
+
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/openwsmand.service
+ sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/openwsmand.service
+ sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/openwsmand.service
+ fi
+}
+
+FILES:${PN}-dbg += "${libdir}/openwsman/plugins/.debug/ \
+ ${libdir}/openwsman/authenticators/.debug/ \
+ "
+
+INSANE_SKIP:${PN} = "dev-so"
+RDEPENDS:${PN} = "ruby"
diff --git a/meta-oe/recipes-extended/ostree/ostree/0001-Remove-unused-linux-fs.h-includes.patch b/meta-oe/recipes-extended/ostree/ostree/0001-Remove-unused-linux-fs.h-includes.patch
deleted file mode 100644
index 2659e4696d..0000000000
--- a/meta-oe/recipes-extended/ostree/ostree/0001-Remove-unused-linux-fs.h-includes.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 7d32c352f628747cfadabf9fe7fcc13608e5dfe6 Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Wed, 3 Aug 2022 10:37:40 -0400
-Subject: [PATCH] Remove unused `linux/fs.h` includes
-
-Prep for fixing conflicts introduced by newer glibc.
-cc https://github.com/ostreedev/ostree/issues/2685
-
-Upstream-Status: Backport [https://github.com/ostreedev/ostree/commit/edba4b33be10c05253bfa94895dfbc8477e44d76]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/libostree/ostree-repo-commit.c | 1 -
- src/ostree/ot-main.c | 1 -
- 2 files changed, 2 deletions(-)
-
-diff --git a/src/libostree/ostree-repo-commit.c b/src/libostree/ostree-repo-commit.c
-index afab3fdf..35b16c71 100644
---- a/src/libostree/ostree-repo-commit.c
-+++ b/src/libostree/ostree-repo-commit.c
-@@ -30,7 +30,6 @@
- #include <sys/xattr.h>
- #include <glib/gprintf.h>
- #include <sys/ioctl.h>
--#include <linux/fs.h>
- #include <ext2fs/ext2_fs.h>
-
- #include "otutil.h"
-diff --git a/src/ostree/ot-main.c b/src/ostree/ot-main.c
-index b7b50d67..7a4405a5 100644
---- a/src/ostree/ot-main.c
-+++ b/src/ostree/ot-main.c
-@@ -28,7 +28,6 @@
- #include <string.h>
- #include <sys/statvfs.h>
- #include <sys/mount.h>
--#include <linux/fs.h>
-
- #include "ot-main.h"
- #include "ostree.h"
---
-2.37.1
-
diff --git a/meta-oe/recipes-extended/ostree/ostree/0001-libostree-Remove-including-sys-mount.h.patch b/meta-oe/recipes-extended/ostree/ostree/0001-libostree-Remove-including-sys-mount.h.patch
deleted file mode 100644
index 5c2792cf89..0000000000
--- a/meta-oe/recipes-extended/ostree/ostree/0001-libostree-Remove-including-sys-mount.h.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 7ff956e4088e0bdc6bfd429f99124a8a9256c181 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 6 Aug 2022 21:44:11 -0700
-Subject: [PATCH] libostree: Remove including sys/mount.h
-
-This conflicts with linux/mount.h which is included by linux/fs.h
-with glibc 2.36+
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/libostree/ostree-sysroot-deploy.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c
-index 2dc9f58b..61b19e42 100644
---- a/src/libostree/ostree-sysroot-deploy.c
-+++ b/src/libostree/ostree-sysroot-deploy.c
-@@ -23,7 +23,6 @@
- #include <gio/gunixoutputstream.h>
- #include <glib-unix.h>
- #include <stdint.h>
--#include <sys/mount.h>
- #include <sys/statvfs.h>
- #include <sys/socket.h>
- #include <sys/ioctl.h>
---
-2.37.1
-
diff --git a/meta-oe/recipes-extended/ostree/ostree/0001-s390x-se-luks-gencpio-There-is-no-bashism.patch b/meta-oe/recipes-extended/ostree/ostree/0001-s390x-se-luks-gencpio-There-is-no-bashism.patch
deleted file mode 100644
index 5cf5784f14..0000000000
--- a/meta-oe/recipes-extended/ostree/ostree/0001-s390x-se-luks-gencpio-There-is-no-bashism.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From dd55633e49aa43dede3c8e1770ae8761487f050e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 6 Aug 2022 21:52:31 -0700
-Subject: [PATCH] s390x-se-luks-gencpio: There is no bashism
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/libostree/s390x-se-luks-gencpio | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/libostree/s390x-se-luks-gencpio b/src/libostree/s390x-se-luks-gencpio
-index e821e2fe..96c1d123 100755
---- a/src/libostree/s390x-se-luks-gencpio
-+++ b/src/libostree/s390x-se-luks-gencpio
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- # This script creates new initramdisk with LUKS config within
- set -euo pipefail
-
---
-2.37.1
-
diff --git a/meta-oe/recipes-extended/ostree/ostree_2022.5.bb b/meta-oe/recipes-extended/ostree/ostree_2022.5.bb
deleted file mode 100644
index a21c473f0a..0000000000
--- a/meta-oe/recipes-extended/ostree/ostree_2022.5.bb
+++ /dev/null
@@ -1,213 +0,0 @@
-SUMMARY = "Versioned Operating System Repository."
-DESCRIPTION = "libostree is both a shared library and suite of command line \
-tools that combines a \"git-like\" model for committing and downloading \
-bootable filesystem trees, along with a layer for deploying them and managing \
-the bootloader configuration."
-HOMEPAGE = "https://ostree.readthedocs.io"
-LICENSE = "LGPL-2.1-only"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-DEPENDS = " \
- glib-2.0 \
- e2fsprogs \
- libcap \
- zlib \
- xz \
- bison-native \
-"
-
-SRC_URI = " \
- gitsm://github.com/ostreedev/ostree;branch=main;protocol=https \
- file://0001-Remove-unused-linux-fs.h-includes.patch \
- file://0001-libostree-Remove-including-sys-mount.h.patch \
- file://0001-s390x-se-luks-gencpio-There-is-no-bashism.patch \
- file://run-ptest \
-"
-SRCREV = "15740d042c9c5258a1c082b5e228cf6f115edbb0"
-
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+)"
-
-S = "${WORKDIR}/git"
-
-inherit autotools bash-completion gobject-introspection gtk-doc manpages pkgconfig ptest-gnome systemd
-
-# Workaround compile failure:
-# |../git/src/libotutil/zbase32.c:37:1: error: function returns an aggregate [-Werror=aggregate-return]
-# so remove -Og and use -O2 as workaround
-DEBUG_OPTIMIZATION:remove = "-Og"
-DEBUG_OPTIMIZATION:append = " -O2"
-BUILD_OPTIMIZATION:remove = "-Og"
-BUILD_OPTIMIZATION:append = " -O2"
-
-# Package configuration - match ostree defaults, but without rofiles-fuse
-# otherwise we introduce a dependendency on meta-filesystems
-PACKAGECONFIG ??= " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd libmount', '', d)} \
- glib \
- gpgme \
- soup \
-"
-
-# We include soup because ostree can't (currently) be built without
-# soup or curl - https://github.com/ostreedev/ostree/issues/1897
-PACKAGECONFIG:class-native ??= " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
- builtin-grub2-mkconfig \
- gpgme \
- soup \
-"
-
-PACKAGECONFIG:class-nativesdk ??= " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
- builtin-grub2-mkconfig \
- gpgme \
- soup \
-"
-
-PACKAGECONFIG[avahi] = "--with-avahi, --without-avahi, avahi"
-PACKAGECONFIG[builtin-grub2-mkconfig] = "--with-builtin-grub2-mkconfig, --without-builtin-grub2-mkconfig"
-PACKAGECONFIG[curl] = "--with-curl, --without-curl, curl"
-PACKAGECONFIG[dracut] = "--with-dracut, --without-dracut"
-PACKAGECONFIG[ed25519-libsodium] = "--with-ed25519-libsodium, --without-ed25519-libsodium, libsodium"
-PACKAGECONFIG[gjs] = "ac_cv_path_GJS=${bindir}/gjs"
-PACKAGECONFIG[glib] = "--with-crypto=glib, , , , , gnutls openssl"
-PACKAGECONFIG[gnutls] = "--with-crypto=gnutls, , gnutls, , , glib openssl"
-PACKAGECONFIG[gpgme] = "--with-gpgme, --without-gpgme, gpgme"
-PACKAGECONFIG[libarchive] = "--with-libarchive, --without-libarchive, libarchive"
-PACKAGECONFIG[libmount] = "--with-libmount, --without-libmount, util-linux"
-PACKAGECONFIG[manpages] = "--enable-man, --disable-man, libxslt-native docbook-xsl-stylesheets-native"
-PACKAGECONFIG[mkinitcpio] = "--with-mkinitcpio, --without-mkinitcpio"
-PACKAGECONFIG[no-http2] = "--disable-http2, --enable-http2"
-PACKAGECONFIG[openssl] = "--with-crypto=openssl, , openssl, , , glib gnutls"
-PACKAGECONFIG[rofiles-fuse] = "--enable-rofiles-fuse, --disable-rofiles-fuse, fuse"
-PACKAGECONFIG[selinux] = "--with-selinux, --without-selinux, libselinux"
-PACKAGECONFIG[smack] = "--with-smack, --without-smack, smack"
-PACKAGECONFIG[soup] = "--with-soup, --without-soup --disable-glibtest, libsoup-2.4"
-PACKAGECONFIG[static] = ""
-PACKAGECONFIG[systemd] = "--with-libsystemd --with-systemdsystemunitdir=${systemd_unitdir}/system, --without-libsystemd, systemd"
-PACKAGECONFIG[trivial-httpd-cmdline] = "--enable-trivial-httpd-cmdline, --disable-trivial-httpd-cmdline"
-
-EXTRA_OECONF = " \
- ${@bb.utils.contains('PACKAGECONFIG', 'static', '--with-static-compiler=\'${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}\'', '', d)} \
-"
-
-# Makefile-libostree.am overrides this to avoid a build problem with clang,
-# but that fix breaks cross compilation and we don't need it
-EXTRA_OEMAKE = " \
- INTROSPECTION_SCANNER_ENV= \
-"
-
-EXTRA_OECONF:class-native = " \
- --enable-wrpseudo-compat \
- --disable-otmpfile \
-"
-
-EXTRA_OECONF:class-nativesdk = " \
- --enable-wrpseudo-compat \
- --disable-otmpfile \
-"
-
-# Path to ${prefix}/lib/ostree/ostree-grub-generator is hardcoded on the
-# do_configure stage so we do depend on it
-SYSROOT_DIR = "${STAGING_DIR_TARGET}"
-SYSROOT_DIR:class-native = "${STAGING_DIR_NATIVE}"
-do_configure[vardeps] += "SYSROOT_DIR"
-
-do_configure:prepend() {
- # this reflects what autogen.sh does, but the OE wrappers for autoreconf
- # allow it to work without the other gyrations which exist there
- cp ${S}/libglnx/Makefile-libglnx.am ${S}/libglnx/Makefile-libglnx.am.inc
- cp ${S}/bsdiff/Makefile-bsdiff.am ${S}/bsdiff/Makefile-bsdiff.am.inc
-}
-
-do_install:append:class-native() {
- create_wrapper ${D}${bindir}/ostree OSTREE_GRUB2_EXEC="${STAGING_LIBDIR_NATIVE}/ostree/ostree-grub-generator"
-}
-
-do_install:append:class-nativesdk() {
- create_wrapper ${D}${bindir}/ostree OSTREE_GRUB2_EXEC="\$OECORE_NATIVE_SYSROOT/usr/lib/ostree/ostree-grub-generator"
-}
-
-PACKAGE_BEFORE_PN = " \
- ${PN}-dracut \
- ${PN}-grub \
- ${PN}-mkinitcpio \
- ${PN}-switchroot \
- ${PN}-trivial-httpd \
-"
-
-FILES:${PN} += " \
- ${nonarch_libdir}/${BPN} \
- ${nonarch_libdir}/tmpfiles.d \
- ${systemd_unitdir}/system \
- ${systemd_unitdir}/system-generators \
-"
-FILES:${PN}-dracut = " \
- ${sysconfdir}/dracut.conf.d \
- ${libdir}/dracut \
-"
-FILES:${PN}-grub = " \
- ${sysconfdir}/grub.d \
- ${libexecdir}/libostree/grub2-15_ostree \
-"
-FILES:${PN}-mkinitcpio = " \
- ${sysconfdir}/ostree-mkinitcpio.conf \
- ${libdir}/initcpio \
-"
-FILES:${PN}-switchroot = " \
- ${nonarch_libdir}/${BPN}/ostree-prepare-root \
- ${systemd_unitdir}/system/ostree-prepare-root.service \
-"
-FILES:${PN}-trivial-httpd = " \
- ${libexecdir}/libostree/ostree-trivial-httpd \
-"
-
-RDEPENDS:${PN} = " \
- ${@bb.utils.contains('PACKAGECONFIG', 'trivial-httpd-cmdline', '${PN}-trivial-httpd', '', d)} \
-"
-RDEPENDS:${PN}-dracut = "bash"
-RDEPENDS:${PN}-mkinitcpio = "bash"
-RDEPENDS:${PN}:class-target = " \
- ${@bb.utils.contains('PACKAGECONFIG', 'gpgme', 'gnupg', '', d)} \
- ${PN}-switchroot \
-"
-
-#
-# Note that to get ptest to pass you also need:
-#
-# xattr in DISTRO_FEATURES
-# static ostree-prepare-root (PACKAGECONFIG:append:pn-ostree = " static")
-# meta-python in your layers
-# overlayfs in your kernel (KERNEL_EXTRA_FEATURES += "features/overlayfs/overlayfs.scc")
-# busybox built statically
-# /var/tmp as a real filesystem (not a tmpfs)
-# Sufficient disk space (IMAGE_ROOTFS_SIZE = "524288") and RAM (QB_MEM = "-m 1024")
-#
-RDEPENDS:${PN}-ptest += " \
- attr \
- bash \
- coreutils \
- cpio \
- diffutils \
- findutils \
- grep \
- python3-core \
- python3-multiprocessing \
- strace \
- tar \
- util-linux \
- xz \
- ${PN}-trivial-httpd \
- python3-pyyaml \
- ${@bb.utils.contains('PACKAGECONFIG', 'gjs', 'gjs', '', d)} \
-"
-RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils glibc-localedata-en-us"
-
-RRECOMMENDS:${PN}:append:class-target = " kernel-module-overlay"
-
-SYSTEMD_SERVICE:${PN} = "ostree-remount.service ostree-finalize-staged.path"
-SYSTEMD_SERVICE:${PN}-switchroot = "ostree-prepare-root.service"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-extended/ostree/ostree_2024.5.bb b/meta-oe/recipes-extended/ostree/ostree_2024.5.bb
new file mode 100644
index 0000000000..2ea92f190c
--- /dev/null
+++ b/meta-oe/recipes-extended/ostree/ostree_2024.5.bb
@@ -0,0 +1,214 @@
+SUMMARY = "Versioned Operating System Repository."
+DESCRIPTION = "libostree is both a shared library and suite of command line \
+tools that combines a \"git-like\" model for committing and downloading \
+bootable filesystem trees, along with a layer for deploying them and managing \
+the bootloader configuration."
+HOMEPAGE = "https://ostree.readthedocs.io"
+LICENSE = "LGPL-2.1-only"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+DEPENDS = " \
+ glib-2.0-native \
+ glib-2.0 \
+ e2fsprogs \
+ libcap \
+ zlib \
+ xz \
+ bison-native \
+"
+
+GITHUB_BASE_URI = "https://github.com/ostreedev/ostree/releases"
+SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libostree-${PV}.tar.xz \
+ file://run-ptest \
+ "
+SRC_URI[sha256sum] = "bc12d8493db64152093ee5be77cf62a29cc67a4a9e430dc987103e78aada4a6f"
+
+S = "${WORKDIR}/libostree-${PV}"
+
+inherit autotools bash-completion gobject-introspection github-releases gtk-doc manpages pkgconfig ptest-gnome systemd
+
+UNKNOWN_CONFIGURE_OPT_IGNORE = "--disable-introspection --enable-introspection"
+
+# Workaround compile failure:
+# |../git/src/libotutil/zbase32.c:37:1: error: function returns an aggregate [-Werror=aggregate-return]
+# so remove -Og and use -O2 as workaround
+DEBUG_OPTIMIZATION:remove = "-Og"
+DEBUG_OPTIMIZATION:append = " -O2"
+BUILD_OPTIMIZATION:remove = "-Og"
+BUILD_OPTIMIZATION:append = " -O2"
+
+# Package configuration - match ostree defaults, but without rofiles-fuse
+# otherwise we introduce a dependendency on meta-filesystems and swap
+# soup for curl to avoid bringing in deprecated libsoup2 (though
+# to run ptest requires that you have soup2 or soup3).
+PACKAGECONFIG ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd libmount', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'soup3', '', d)} \
+ glib \
+ gpgme \
+ curl \
+"
+
+# We include curl because ostree can't (currently) be built without
+# soup or curl - https://github.com/ostreedev/ostree/issues/1897
+PACKAGECONFIG:class-native ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
+ builtin-grub2-mkconfig \
+ gpgme \
+ curl \
+"
+
+PACKAGECONFIG:class-nativesdk ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'selinux smack', d)} \
+ builtin-grub2-mkconfig \
+ gpgme \
+ curl \
+"
+
+PACKAGECONFIG[avahi] = "--with-avahi, --without-avahi, avahi"
+PACKAGECONFIG[builtin-grub2-mkconfig] = "--with-builtin-grub2-mkconfig, --without-builtin-grub2-mkconfig"
+PACKAGECONFIG[curl] = "--with-curl, --without-curl, curl"
+PACKAGECONFIG[dracut] = "--with-dracut, --without-dracut"
+PACKAGECONFIG[ed25519-libsodium] = "--with-ed25519-libsodium, --without-ed25519-libsodium, libsodium"
+PACKAGECONFIG[ed25519-openssl] = "--with-openssl, --without-openssl, openssl"
+PACKAGECONFIG[gjs] = "ac_cv_path_GJS=${bindir}/gjs"
+PACKAGECONFIG[glib] = "--with-crypto=glib, , , , , gnutls openssl"
+PACKAGECONFIG[gnutls] = "--with-crypto=gnutls, , gnutls, , , glib openssl"
+PACKAGECONFIG[gpgme] = "--with-gpgme, --without-gpgme, gpgme"
+PACKAGECONFIG[libarchive] = "--with-libarchive, --without-libarchive, libarchive"
+PACKAGECONFIG[libmount] = "--with-libmount, --without-libmount, util-linux"
+PACKAGECONFIG[manpages] = "--enable-man, --disable-man, libxslt-native docbook-xsl-stylesheets-native"
+PACKAGECONFIG[mkinitcpio] = "--with-mkinitcpio, --without-mkinitcpio"
+PACKAGECONFIG[no-http2] = "--disable-http2, --enable-http2"
+PACKAGECONFIG[openssl] = "--with-crypto=openssl, , openssl, , , glib gnutls"
+PACKAGECONFIG[rofiles-fuse] = "--enable-rofiles-fuse, --disable-rofiles-fuse, fuse3"
+PACKAGECONFIG[selinux] = "--with-selinux, --without-selinux, libselinux, bubblewrap"
+PACKAGECONFIG[smack] = "--with-smack, --without-smack, smack"
+PACKAGECONFIG[soup2] = "--with-soup, --without-soup, libsoup-2.4, , , soup3"
+PACKAGECONFIG[soup3] = "--with-soup3, --without-soup3, libsoup, , , soup2"
+PACKAGECONFIG[static] = ""
+PACKAGECONFIG[systemd] = "--with-libsystemd --with-systemdsystemunitdir=${systemd_system_unitdir}, --without-libsystemd, systemd"
+
+EXTRA_OECONF = " \
+ ${@bb.utils.contains('PACKAGECONFIG', 'static', '--with-static-compiler=\'${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}\'', '', d)} \
+"
+
+# Makefile-libostree.am overrides this to avoid a build problem with clang,
+# but that fix breaks cross compilation and we don't need it
+EXTRA_OEMAKE = " \
+ INTROSPECTION_SCANNER_ENV= \
+"
+
+EXTRA_OECONF:class-native = " \
+ --enable-wrpseudo-compat \
+ --disable-otmpfile \
+"
+
+EXTRA_OECONF:class-nativesdk = " \
+ --enable-wrpseudo-compat \
+ --disable-otmpfile \
+"
+
+# Path to ${prefix}/lib/ostree/ostree-grub-generator is hardcoded on the
+# do_configure stage so we do depend on it
+SYSROOT_DIR = "${STAGING_DIR_TARGET}"
+SYSROOT_DIR:class-native = "${STAGING_DIR_NATIVE}"
+do_configure[vardeps] += "SYSROOT_DIR"
+
+do_configure:prepend() {
+ # this reflects what autogen.sh does, but the OE wrappers for autoreconf
+ # allow it to work without the other gyrations which exist there
+ cp ${S}/libglnx/Makefile-libglnx.am ${S}/libglnx/Makefile-libglnx.am.inc
+ cp ${S}/bsdiff/Makefile-bsdiff.am ${S}/bsdiff/Makefile-bsdiff.am.inc
+}
+
+do_install:append:class-native() {
+ create_wrapper ${D}${bindir}/ostree OSTREE_GRUB2_EXEC="${STAGING_LIBDIR_NATIVE}/ostree/ostree-grub-generator"
+}
+
+do_install:append:class-nativesdk() {
+ create_wrapper ${D}${bindir}/ostree OSTREE_GRUB2_EXEC="\$OECORE_NATIVE_SYSROOT/usr/lib/ostree/ostree-grub-generator"
+}
+
+PACKAGE_BEFORE_PN = " \
+ ${PN}-dracut \
+ ${PN}-grub \
+ ${PN}-mkinitcpio \
+ ${PN}-switchroot \
+"
+
+FILES:${PN} += " \
+ ${nonarch_libdir}/${BPN} \
+ ${nonarch_libdir}/tmpfiles.d \
+ ${systemd_system_unitdir} \
+ ${systemd_unitdir}/system-generators \
+"
+FILES:${PN}-dracut = " \
+ ${sysconfdir}/dracut.conf.d \
+ ${libdir}/dracut \
+"
+FILES:${PN}-grub = " \
+ ${sysconfdir}/grub.d \
+ ${libexecdir}/libostree/grub2-15_ostree \
+"
+FILES:${PN}-mkinitcpio = " \
+ ${sysconfdir}/ostree-mkinitcpio.conf \
+ ${libdir}/initcpio \
+"
+FILES:${PN}-switchroot = " \
+ ${nonarch_libdir}/${BPN}/ostree-prepare-root \
+ ${systemd_system_unitdir}/ostree-prepare-root.service \
+"
+
+RDEPENDS:${PN}-dracut = "bash"
+RDEPENDS:${PN}-mkinitcpio = "bash"
+RDEPENDS:${PN}:class-target = " \
+ ${@bb.utils.contains('PACKAGECONFIG', 'gpgme', 'gnupg', '', d)} \
+ ${PN}-switchroot \
+"
+
+#
+# Note that to get ptest to pass you also need:
+#
+# xattr in DISTRO_FEATURES (default)
+# static ostree-prepare-root
+# overlayfs in your kernel
+# busybox built statically
+# C.UTF-8 locale available (default)
+# Sufficient disk space/RAM (e.g. core-image-sato-sdk)
+#
+# Something like this in your local.conf:
+#
+# PACKAGECONFIG:append:pn-ostree = " static soup3"
+# KERNEL_EXTRA_FEATURES:append = " features/overlayfs/overlayfs.scc"
+# TARGET_CFLAGS:append:pn-busybox = " -static"
+#
+RDEPENDS:${PN}-ptest += " \
+ attr \
+ bash \
+ coreutils \
+ cpio \
+ diffutils \
+ findutils \
+ grep \
+ locale-base-en-us \
+ python3-core \
+ python3-multiprocessing \
+ strace \
+ tar \
+ util-linux \
+ xz \
+ python3-pyyaml \
+ ${@bb.utils.contains('PACKAGECONFIG', 'gjs', 'gjs', '', d)} \
+"
+RDEPENDS:${PN}-ptest:remove:riscv32 = "strace"
+RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils glibc-localedata-en-us"
+
+RRECOMMENDS:${PN}:append:class-target = " kernel-module-overlay"
+
+SYSTEMD_SERVICE:${PN} = "ostree-remount.service ostree-finalize-staged.path"
+SYSTEMD_SERVICE:${PN}-switchroot = "ostree-prepare-root.service"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
new file mode 100644
index 0000000000..98e186cbf0
--- /dev/null
+++ b/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
@@ -0,0 +1,27 @@
+p7zip: Update CVE-2016-9296 patch URL.
+From: Robert Luberda <robert@debian.org>
+Date: Sat, 19 Nov 2016 08:48:08 +0100
+Subject: Fix nullptr dereference (CVE-2016-9296)
+
+Patch taken from https://sourceforge.net/p/p7zip/bugs/185/
+This patch file taken from Debian's patch set for p7zip
+
+Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/185/]
+CVE: CVE-2016-9296
+
+Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
+
+Index: p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
+===================================================================
+--- p7zip_16.02.orig/CPP/7zip/Archive/7z/7zIn.cpp
++++ p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
+@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedS
+ if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
+ ThrowIncorrect();
+ }
+- HeadersSize += folders.PackPositions[folders.NumPackStreams];
++ if (folders.PackPositions)
++ HeadersSize += folders.PackPositions[folders.NumPackStreams];
+ return S_OK;
+ }
+
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
new file mode 100644
index 0000000000..47868c982e
--- /dev/null
+++ b/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
@@ -0,0 +1,227 @@
+From: Robert Luberda <robert@debian.org>
+Date: Sun, 28 Jan 2018 23:47:40 +0100
+Subject: CVE-2018-5996
+
+Hopefully fix Memory Corruptions via RAR PPMd (CVE-2018-5996) by
+applying a few changes from 7Zip 18.00-beta.
+
+Bug-Debian: https://bugs.debian.org/#888314
+
+Upstream-Status: Backport [https://sources.debian.org/data/non-free/p/p7zip-rar/16.02-3/debian/patches/06-CVE-2018-5996.patch]
+CVE: CVE-2018-5996
+
+Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
+---
+ CPP/7zip/Compress/Rar1Decoder.cpp | 13 +++++++++----
+ CPP/7zip/Compress/Rar1Decoder.h | 1 +
+ CPP/7zip/Compress/Rar2Decoder.cpp | 10 +++++++++-
+ CPP/7zip/Compress/Rar2Decoder.h | 1 +
+ CPP/7zip/Compress/Rar3Decoder.cpp | 23 ++++++++++++++++++++---
+ CPP/7zip/Compress/Rar3Decoder.h | 2 ++
+ 6 files changed, 42 insertions(+), 8 deletions(-)
+
+diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp b/CPP/7zip/Compress/Rar1Decoder.cpp
+index 1aaedcc..68030c7 100644
+--- a/CPP/7zip/Compress/Rar1Decoder.cpp
++++ b/CPP/7zip/Compress/Rar1Decoder.cpp
+@@ -29,7 +29,7 @@ public:
+ };
+ */
+
+-CDecoder::CDecoder(): m_IsSolid(false) { }
++CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { }
+
+ void CDecoder::InitStructures()
+ {
+@@ -406,9 +406,14 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+ InitData();
+ if (!m_IsSolid)
+ {
++ _errorMode = false;
+ InitStructures();
+ InitHuff();
+ }
++
++ if (_errorMode)
++ return S_FALSE;
++
+ if (m_UnpackSize > 0)
+ {
+ GetFlagsBuf();
+@@ -477,9 +482,9 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
+ const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress)
+ {
+ try { return CodeReal(inStream, outStream, inSize, outSize, progress); }
+- catch(const CInBufferException &e) { return e.ErrorCode; }
+- catch(const CLzOutWindowException &e) { return e.ErrorCode; }
+- catch(...) { return S_FALSE; }
++ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
++ catch(const CLzOutWindowException &e) { _errorMode = true; return e.ErrorCode; }
++ catch(...) { _errorMode = true; return S_FALSE; }
+ }
+
+ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
+diff --git a/CPP/7zip/Compress/Rar1Decoder.h b/CPP/7zip/Compress/Rar1Decoder.h
+index 630f089..01b606b 100644
+--- a/CPP/7zip/Compress/Rar1Decoder.h
++++ b/CPP/7zip/Compress/Rar1Decoder.h
+@@ -39,6 +39,7 @@ public:
+
+ Int64 m_UnpackSize;
+ bool m_IsSolid;
++ bool _errorMode;
+
+ UInt32 ReadBits(int numBits);
+ HRESULT CopyBlock(UInt32 distance, UInt32 len);
+diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp b/CPP/7zip/Compress/Rar2Decoder.cpp
+index b3f2b4b..0580c8d 100644
+--- a/CPP/7zip/Compress/Rar2Decoder.cpp
++++ b/CPP/7zip/Compress/Rar2Decoder.cpp
+@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
+ static const UInt32 kWindowReservSize = (1 << 22) + 256;
+
+ CDecoder::CDecoder():
+- m_IsSolid(false)
++ m_IsSolid(false),
++ m_TablesOK(false)
+ {
+ }
+
+@@ -100,6 +101,8 @@ UInt32 CDecoder::ReadBits(unsigned numBits) { return m_InBitStream.ReadBits(numB
+
+ bool CDecoder::ReadTables(void)
+ {
++ m_TablesOK = false;
++
+ Byte levelLevels[kLevelTableSize];
+ Byte newLevels[kMaxTableSize];
+ m_AudioMode = (ReadBits(1) == 1);
+@@ -170,6 +173,8 @@ bool CDecoder::ReadTables(void)
+ }
+
+ memcpy(m_LastLevels, newLevels, kMaxTableSize);
++ m_TablesOK = true;
++
+ return true;
+ }
+
+@@ -344,6 +349,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+ return S_FALSE;
+ }
+
++ if (!m_TablesOK)
++ return S_FALSE;
++
+ UInt64 startPos = m_OutWindowStream.GetProcessedSize();
+ while (pos < unPackSize)
+ {
+diff --git a/CPP/7zip/Compress/Rar2Decoder.h b/CPP/7zip/Compress/Rar2Decoder.h
+index 3a0535c..0e9005f 100644
+--- a/CPP/7zip/Compress/Rar2Decoder.h
++++ b/CPP/7zip/Compress/Rar2Decoder.h
+@@ -139,6 +139,7 @@ class CDecoder :
+
+ UInt64 m_PackSize;
+ bool m_IsSolid;
++ bool m_TablesOK;
+
+ void InitStructures();
+ UInt32 ReadBits(unsigned numBits);
+diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar3Decoder.cpp
+index 3bf2513..6cb8a6a 100644
+--- a/CPP/7zip/Compress/Rar3Decoder.cpp
++++ b/CPP/7zip/Compress/Rar3Decoder.cpp
+@@ -92,7 +92,8 @@ CDecoder::CDecoder():
+ _writtenFileSize(0),
+ _vmData(0),
+ _vmCode(0),
+- m_IsSolid(false)
++ m_IsSolid(false),
++ _errorMode(false)
+ {
+ Ppmd7_Construct(&_ppmd);
+ }
+@@ -545,6 +546,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
+ return InitPPM();
+ }
+
++ TablesRead = false;
++ TablesOK = false;
++
+ _lzMode = true;
+ PrevAlignBits = 0;
+ PrevAlignCount = 0;
+@@ -606,6 +610,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
+ }
+ }
+ }
++ if (InputEofError())
++ return S_FALSE;
++
+ TablesRead = true;
+
+ // original code has check here:
+@@ -623,6 +630,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
+ RIF(m_LenDecoder.Build(&newLevels[kMainTableSize + kDistTableSize + kAlignTableSize]));
+
+ memcpy(m_LastLevels, newLevels, kTablesSizesSum);
++
++ TablesOK = true;
++
+ return S_OK;
+ }
+
+@@ -824,7 +834,12 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
+ PpmEscChar = 2;
+ PpmError = true;
+ InitFilters();
++ _errorMode = false;
+ }
++
++ if (_errorMode)
++ return S_FALSE;
++
+ if (!m_IsSolid || !TablesRead)
+ {
+ bool keepDecompressing;
+@@ -838,6 +853,8 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
+ bool keepDecompressing;
+ if (_lzMode)
+ {
++ if (!TablesOK)
++ return S_FALSE;
+ RINOK(DecodeLZ(keepDecompressing))
+ }
+ else
+@@ -901,8 +918,8 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
+ _unpackSize = outSize ? *outSize : (UInt64)(Int64)-1;
+ return CodeReal(progress);
+ }
+- catch(const CInBufferException &e) { return e.ErrorCode; }
+- catch(...) { return S_FALSE; }
++ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
++ catch(...) { _errorMode = true; return S_FALSE; }
+ // CNewException is possible here. But probably CNewException is caused
+ // by error in data stream.
+ }
+diff --git a/CPP/7zip/Compress/Rar3Decoder.h b/CPP/7zip/Compress/Rar3Decoder.h
+index c130cec..2f72d7d 100644
+--- a/CPP/7zip/Compress/Rar3Decoder.h
++++ b/CPP/7zip/Compress/Rar3Decoder.h
+@@ -192,6 +192,7 @@ class CDecoder:
+ UInt32 _lastFilter;
+
+ bool m_IsSolid;
++ bool _errorMode;
+
+ bool _lzMode;
+ bool _unsupportedFilter;
+@@ -200,6 +201,7 @@ class CDecoder:
+ UInt32 PrevAlignCount;
+
+ bool TablesRead;
++ bool TablesOK;
+
+ CPpmd7 _ppmd;
+ int PpmEscChar;
+
diff --git a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb b/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
index 04923116cf..e795482eb6 100644
--- a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
+++ b/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
@@ -10,6 +10,8 @@ SRC_URI = "http://downloads.sourceforge.net/p7zip/p7zip/${PV}/p7zip_${PV}_src_al
file://CVE-2017-17969.patch \
file://0001-Fix-narrowing-errors-Wc-11-narrowing.patch \
file://change_numMethods_from_bool_to_unsigned.patch \
+ file://CVE-2018-5996.patch \
+ file://CVE-2016-9296.patch \
"
SRC_URI[md5sum] = "a0128d661cfe7cc8c121e73519c54fbf"
diff --git a/meta-oe/recipes-extended/p8platform/files/0001-Make-resulting-cmake-config-relocatable.patch b/meta-oe/recipes-extended/p8platform/files/0001-Make-resulting-cmake-config-relocatable.patch
deleted file mode 100644
index 9ff85b12a3..0000000000
--- a/meta-oe/recipes-extended/p8platform/files/0001-Make-resulting-cmake-config-relocatable.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 2650bb3bd3644784359be373252b0436873ca8cb Mon Sep 17 00:00:00 2001
-From: Pascal Bach <pascal.bach@siemens.com>
-Date: Fri, 28 Sep 2018 16:44:37 +0200
-Subject: [PATCH] Make resulting cmake config relocatable
-
-This change avoids hardcoded install prefix in the p8-platform-config.cmake.
-Especially important when doing cross compilation with Yocto for example.
-
-Upstream-Status: Submitted [https://github.com/Pulse-Eight/platform/pull/38]
-
----
- CMakeLists.txt | 4 ----
- p8-platform-config.cmake.in | 13 +++++++++----
- 2 files changed, 9 insertions(+), 8 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7144b0b..f2db66e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -22,10 +22,6 @@ if(WIN32)
- src/windows/os-threads.cpp)
- endif()
-
--set(p8-platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/p8-platform")
--IF(WIN32)
-- LIST(APPEND p8-platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/p8-platform/windows")
--ENDIF(WIN32)
- set(p8-platform_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
-
- if(NOT ${CORE_SYSTEM_NAME} STREQUAL "")
-diff --git a/p8-platform-config.cmake.in b/p8-platform-config.cmake.in
-index 47f30f1..b08e96c 100644
---- a/p8-platform-config.cmake.in
-+++ b/p8-platform-config.cmake.in
-@@ -9,17 +9,22 @@
- # p8-platform_LIBRARY_DIRS - directories in which the libraries are situated
- #
- # propagate these properties from one build system to the other
-+get_filename_component(_p8-platform_rootdir ${CMAKE_CURRENT_LIST_DIR}/../ ABSOLUTE)
-+
- set (p8-platform_VERSION "@p8-platform_VERSION_MAJOR@.@p8-platform_VERSION_MINOR@")
--set (p8-platform_INCLUDE_DIRS @p8-platform_INCLUDE_DIRS@ @CMAKE_INSTALL_PREFIX@/include)
--set (p8-platform_LIBRARY_DIRS "@CMAKE_LIBRARY_OUTPUT_DIRECTORY@")
-+set (p8-platform_INCLUDE_DIRS "${_p8-platform_rootdir}/include" "${_p8-platform_rootdir}/include/p8-platform")
-+if(WIN32)
-+ list(APPEND p8-platform_INCLUDE_DIRS "${_p8-platform_rootdir}/include/p8-platform/windows")
-+endif(WIN32)
-+set (p8-platform_LIBRARY_DIRS "${_p8-platform_rootdir}")
- set (p8-platform_LINKER_FLAGS "@p8-platform_LINKER_FLAGS@")
- set (p8-platform_CONFIG_VARS "@p8-platform_CONFIG_VARS@")
-
- # libraries come from the build tree where this file was generated
- if(WIN32)
-- set (p8-platform_LIBRARY "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/p8-platform.lib")
-+ set (p8-platform_LIBRARY "${_p8-platform_rootdir}/p8-platform.lib")
- else(WIN32)
-- set (p8-platform_LIBRARY "-L@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ -lp8-platform")
-+ set (p8-platform_LIBRARY "-L${_p8-platform_rootdir} -lp8-platform")
- endif(WIN32)
- set (p8-platform_LIBRARIES ${p8-platform_LIBRARY} "@p8-platform_LIBRARIES@")
- mark_as_advanced (p8-platform_LIBRARY)
---
-2.11.0
-
diff --git a/meta-oe/recipes-extended/p8platform/p8platform_git.bb b/meta-oe/recipes-extended/p8platform/p8platform_git.bb
index 1307f6dc4a..dc7280f099 100644
--- a/meta-oe/recipes-extended/p8platform/p8platform_git.bb
+++ b/meta-oe/recipes-extended/p8platform/p8platform_git.bb
@@ -4,11 +4,10 @@ HOMEPAGE = "http://libcec.pulse-eight.com/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://src/os.h;md5=752555fa94e82005d45fd201fee5bd33"
-PV = "2.1.0.1"
+PV = "2.1.0.1+git"
-SRC_URI = "git://github.com/Pulse-Eight/platform.git;branch=master;protocol=https \
- file://0001-Make-resulting-cmake-config-relocatable.patch"
-SRCREV = "2d90f98620e25f47702c9e848380c0d93f29462b"
+SRC_URI = "git://github.com/Pulse-Eight/platform.git;branch=master;protocol=https"
+SRCREV = "a7cd0d5780ed80a4e70480d1650749f29e8a1fb2"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-extended/plocate/plocate/0001-Include-linux-stat.h-only-when-sys-stat.h-is-not-inc.patch b/meta-oe/recipes-extended/plocate/plocate/0001-Include-linux-stat.h-only-when-sys-stat.h-is-not-inc.patch
new file mode 100644
index 0000000000..7ba266f44a
--- /dev/null
+++ b/meta-oe/recipes-extended/plocate/plocate/0001-Include-linux-stat.h-only-when-sys-stat.h-is-not-inc.patch
@@ -0,0 +1,39 @@
+From 1d2197c195e19f1414afef75186bdd4c27b3ee5a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 23 Mar 2024 18:16:19 -0700
+Subject: [PATCH] Include linux/stat.h only when sys/stat.h is not included
+
+This ends up providing certain functions from both headers e.g.
+statx and statx_timestamp since liburing.h forcefully defines _GNU_SOURCE
+to help musl compile liburing, however, this define then causes these
+two files to conflict in plocate, it seems this file is redundant here
+when sys/stat.h is included anyway, mark it for conditional include
+
+Fixes
+| In file included from ../plocate-1.1.22/plocate.cpp:5:
+| In file included from ../plocate-1.1.22/io_uring_engine.h:14:
+| In file included from /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/plocate/1.1.22/recipe-sysroot/usr/include/liburing.h:14:
+| /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/plocate/1.1.22/recipe-sysroot/usr/include/sys/stat.h:124:8: error: redefinition of 'statx_timestamp'
+| 124 | struct statx_timestamp {
+| | ^
+| /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/plocate/1.1.22/recipe-sysroot/usr/include/linux/stat.h:56:8: note: previous definition is here | 56 | struct statx_timestamp { | | ^ | In file included from ../plocate-1.1.22/plocate.cpp:5: | In file included from ../plocate-1.1.22/io_uring_engine.h:14: | In file included from /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/plocate/1.1.22/recipe-sysroot/usr/include/liburing.h:14: | /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/plocate/1.1.22/recipe-sysroot/usr/include/sys/stat.h:129:8: error: redefinition of 'statx' | 129 | struct statx { | | ^ | /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/plocate/1.1.22/recipe-sysroot/usr/include/linux/stat.h:99:8: note: previous definition is here
+| 99 | struct statx {
+| | ^
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ io_uring_engine.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/io_uring_engine.h
++++ b/io_uring_engine.h
+@@ -7,7 +7,6 @@
+ #include <string_view>
+ #include <sys/socket.h>
+ #include <sys/types.h>
+-#include <linux/stat.h>
+
+ struct io_uring_sqe;
+ #ifndef WITHOUT_URING
diff --git a/meta-oe/recipes-extended/plocate/plocate_1.1.22.bb b/meta-oe/recipes-extended/plocate/plocate_1.1.22.bb
new file mode 100644
index 0000000000..694c29776a
--- /dev/null
+++ b/meta-oe/recipes-extended/plocate/plocate_1.1.22.bb
@@ -0,0 +1,15 @@
+SUMMARY = "plocate, a much faster locate"
+HOMEPAGE = "https://plocate.sesse.net/"
+DESCRIPTION = "plocate is a locate(1) based on posting lists, completely replacing mlocate with a much faster (and smaller) index. It is suitable as a default locate on your system."
+SECTION = "base"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit meson pkgconfig
+
+DEPENDS = "zstd liburing"
+
+SRC_URI = "https://plocate.sesse.net/download/${BP}.tar.gz \
+ file://0001-Include-linux-stat.h-only-when-sys-stat.h-is-not-inc.patch"
+
+SRC_URI[sha256sum] = "3b7e4741b4aa2ec044e53eff06474a32a3fb1e928b9382351fe79d4c27fb0049"
diff --git a/meta-oe/recipes-extended/pmdk/pmdk/0001-use-daxctl-libdaxctl.h-instead-of-ndctl-libdaxctl.h.patch b/meta-oe/recipes-extended/pmdk/pmdk/0001-use-daxctl-libdaxctl.h-instead-of-ndctl-libdaxctl.h.patch
deleted file mode 100644
index 0b03ffdea5..0000000000
--- a/meta-oe/recipes-extended/pmdk/pmdk/0001-use-daxctl-libdaxctl.h-instead-of-ndctl-libdaxctl.h.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 932252c0ba54a51c8bcf58b747656e29cdebfa6a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Mar 2022 13:06:50 -0700
-Subject: [PATCH] use daxctl/libdaxctl.h instead of ndctl/libdaxctl.h
-
-Upstream-Status: Submitted [https://github.com/pmem/pmdk/pull/5413]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/libpmem2/badblocks_ndctl.c | 2 +-
- src/libpmem2/region_namespace_ndctl.c | 2 +-
- src/libpmem2/usc_ndctl.c | 2 +-
- src/tools/daxio/daxio.c | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/libpmem2/badblocks_ndctl.c b/src/libpmem2/badblocks_ndctl.c
-index 9a5910bba..cc637f7f4 100644
---- a/src/libpmem2/badblocks_ndctl.c
-+++ b/src/libpmem2/badblocks_ndctl.c
-@@ -16,7 +16,7 @@
- #include <sys/sysmacros.h>
- #include <fcntl.h>
- #include <ndctl/libndctl.h>
--#include <ndctl/libdaxctl.h>
-+#include <daxctl/libdaxctl.h>
-
- #include "libpmem2.h"
- #include "pmem2_utils.h"
-diff --git a/src/libpmem2/region_namespace_ndctl.c b/src/libpmem2/region_namespace_ndctl.c
-index 1383796a9..e31185984 100644
---- a/src/libpmem2/region_namespace_ndctl.c
-+++ b/src/libpmem2/region_namespace_ndctl.c
-@@ -6,7 +6,7 @@
- */
-
- #include <ndctl/libndctl.h>
--#include <ndctl/libdaxctl.h>
-+#include <daxctl/libdaxctl.h>
- #include <sys/sysmacros.h>
- #include <fcntl.h>
-
-diff --git a/src/libpmem2/usc_ndctl.c b/src/libpmem2/usc_ndctl.c
-index be63e879b..c58032a83 100644
---- a/src/libpmem2/usc_ndctl.c
-+++ b/src/libpmem2/usc_ndctl.c
-@@ -5,7 +5,7 @@
- * usc_ndctl.c -- pmem2 usc function for platforms using ndctl
- */
- #include <ndctl/libndctl.h>
--#include <ndctl/libdaxctl.h>
-+#include <daxctl/libdaxctl.h>
- #include <sys/types.h>
- #include <sys/sysmacros.h>
- #include <fcntl.h>
-diff --git a/src/tools/daxio/daxio.c b/src/tools/daxio/daxio.c
-index 66cd0b7ae..7f2c89d48 100644
---- a/src/tools/daxio/daxio.c
-+++ b/src/tools/daxio/daxio.c
-@@ -21,7 +21,7 @@
- #include <string.h>
-
- #include <ndctl/libndctl.h>
--#include <ndctl/libdaxctl.h>
-+#include <daxctl/libdaxctl.h>
- #include <libpmem.h>
-
- #include "util.h"
---
-2.35.1
-
diff --git a/meta-oe/recipes-extended/pmdk/pmdk_1.11.1.bb b/meta-oe/recipes-extended/pmdk/pmdk_1.11.1.bb
deleted file mode 100644
index 33d04099c9..0000000000
--- a/meta-oe/recipes-extended/pmdk/pmdk_1.11.1.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "Persistent Memory Development Kit"
-DESCRIPTION = "Persistent Memory Development Kit"
-HOMEPAGE = "http://pmem.io"
-SECTION = "libs"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b44ee63f162f9cdb18fff1224877aafd"
-DEPENDS = "ndctl"
-
-# Required to have the fts.h header for musl
-DEPENDS:append:libc-musl = " fts"
-
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://github.com/pmem/pmdk.git;branch=stable-1.11;protocol=https \
- file://0001-use-daxctl-libdaxctl.h-instead-of-ndctl-libdaxctl.h.patch"
-SRCREV = "5b21904a257eff47f2e87fcbf2de46111f03ddd8"
-
-inherit autotools-brokensep pkgconfig
-
-# Fix jemalloc error:
-# | configure: error: cannot run C compiled programs.
-# | If you meant to cross compile, use `--host'.
-#
-# Also fix #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]
-EXTRA_OEMAKE = "BUILD_EXAMPLES='n' DOC='n' HOST_SYS='${HOST_SYS}' EXTRA_CFLAGS='${SELECTED_OPTIMIZATION}' LIB_PREFIX=${baselib}"
-
-# Fix the missing fts libs when using musl
-EXTRA_OEMAKE:append:libc-musl = " EXTRA_LIBS='-lfts'"
-
-do_configure:prepend() {
- touch .skip-doc
-}
-
-do_install() {
- oe_runmake prefix=${prefix} DESTDIR=${D} install
-
- # Remove uneeded files
- rm -rf ${D}/usr/${baselib}/pmdk_debug
-}
-
-# Include these by default otherwise the SDK is not very useful
-FILES:${PN} += "${bindir}/pmempool ${bindir}/daxio"
-FILES:${PN} += "${libdir}/*so*"
-FILES:${PN} += "${libdir}/pkgconfig/*.pc"
-FILES:${PN} += "${includedir}/libpmemobj++/* ${includedir}/libpmemobj/* /usr/*/include/"
-FILES:${PN} += "/usr/etc"
-FILES:${PN} += "/usr/share"
-
-COMPATIBLE_HOST='(x86_64).*'
diff --git a/meta-oe/recipes-extended/pmdk/pmdk_2.0.0.bb b/meta-oe/recipes-extended/pmdk/pmdk_2.0.0.bb
new file mode 100644
index 0000000000..aeda236901
--- /dev/null
+++ b/meta-oe/recipes-extended/pmdk/pmdk_2.0.0.bb
@@ -0,0 +1,48 @@
+SUMMARY = "Persistent Memory Development Kit"
+DESCRIPTION = "Persistent Memory Development Kit"
+HOMEPAGE = "http://pmem.io"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b44ee63f162f9cdb18fff1224877aafd"
+DEPENDS = "ndctl cmake-native"
+
+# Required to have the fts.h header for musl
+DEPENDS:append:libc-musl = " fts"
+
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/pmem/pmdk.git;branch=master;protocol=https"
+SRCREV = "ba92d6b469d52d16f26279bebaf317bbdbb3822c"
+
+inherit autotools-brokensep pkgconfig
+
+# Fix jemalloc error:
+# | configure: error: cannot run C compiled programs.
+# | If you meant to cross compile, use `--host'.
+#
+# Also fix #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]
+EXTRA_OEMAKE = "BUILD_EXAMPLES='n' DOC='n' HOST_SYS='${HOST_SYS}' EXTRA_CFLAGS='${SELECTED_OPTIMIZATION}' LIB_PREFIX=${baselib}"
+
+# Fix the missing fts libs when using musl
+EXTRA_OEMAKE:append:libc-musl = " EXTRA_LIBS='-lfts'"
+
+do_configure:prepend() {
+ touch .skip-doc
+}
+
+do_install() {
+ oe_runmake prefix=${prefix} DESTDIR=${D} install
+
+ # Remove uneeded files
+ rm -rf ${D}/usr/${baselib}/pmdk_debug
+}
+
+# Include these by default otherwise the SDK is not very useful
+FILES:${PN} += "${bindir}/pmempool ${bindir}/daxio"
+FILES:${PN} += "${libdir}/*so*"
+FILES:${PN} += "${libdir}/pkgconfig/*.pc"
+FILES:${PN} += "${includedir}/libpmemobj++/* ${includedir}/libpmemobj/* /usr/*/include/"
+FILES:${PN} += "/usr/etc"
+FILES:${PN} += "/usr/share"
+
+COMPATIBLE_HOST='(x86_64).*'
diff --git a/meta-oe/recipes-extended/polkit/polkit/0001-pkexec-local-privilege-escalation-CVE-2021-4034.patch b/meta-oe/recipes-extended/polkit/polkit/0001-pkexec-local-privilege-escalation-CVE-2021-4034.patch
deleted file mode 100644
index c725c001dd..0000000000
--- a/meta-oe/recipes-extended/polkit/polkit/0001-pkexec-local-privilege-escalation-CVE-2021-4034.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 85c2dd9275cdfb369f613089f22733c0f1ba2aec Mon Sep 17 00:00:00 2001
-From: Jan Rybar <jrybar@redhat.com>
-Date: Tue, 25 Jan 2022 17:21:46 +0000
-Subject: [PATCH 1/3] pkexec: local privilege escalation (CVE-2021-4034)
-
-Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
-
----
- src/programs/pkcheck.c | 5 +++++
- src/programs/pkexec.c | 23 ++++++++++++++++++++---
- 2 files changed, 25 insertions(+), 3 deletions(-)
-
-CVE: CVE-2021-4034
-Upstream-Status: Backport [a2bf5c9c83b6ae46cbd5c779d3055bff81ded683]
-
-diff --git a/src/programs/pkcheck.c b/src/programs/pkcheck.c
-index f1bb4e1..768525c 100644
---- a/src/programs/pkcheck.c
-+++ b/src/programs/pkcheck.c
-@@ -363,6 +363,11 @@ main (int argc, char *argv[])
- local_agent_handle = NULL;
- ret = 126;
-
-+ if (argc < 1)
-+ {
-+ exit(126);
-+ }
-+
- /* Disable remote file access from GIO. */
- setenv ("GIO_USE_VFS", "local", 1);
-
-diff --git a/src/programs/pkexec.c b/src/programs/pkexec.c
-index 7698c5c..84e5ef6 100644
---- a/src/programs/pkexec.c
-+++ b/src/programs/pkexec.c
-@@ -488,6 +488,15 @@ main (int argc, char *argv[])
- pid_t pid_of_caller;
- gpointer local_agent_handle;
-
-+
-+ /*
-+ * If 'pkexec' is called THIS wrong, someone's probably evil-doing. Don't be nice, just bail out.
-+ */
-+ if (argc<1)
-+ {
-+ exit(127);
-+ }
-+
- ret = 127;
- authority = NULL;
- subject = NULL;
-@@ -614,10 +623,10 @@ main (int argc, char *argv[])
-
- path = g_strdup (pwstruct.pw_shell);
- if (!path)
-- {
-+ {
- g_printerr ("No shell configured or error retrieving pw_shell\n");
- goto out;
-- }
-+ }
- /* If you change this, be sure to change the if (!command_line)
- case below too */
- command_line = g_strdup (path);
-@@ -636,7 +645,15 @@ main (int argc, char *argv[])
- goto out;
- }
- g_free (path);
-- argv[n] = path = s;
-+ path = s;
-+
-+ /* argc<2 and pkexec runs just shell, argv is guaranteed to be null-terminated.
-+ * /-less shell shouldn't happen, but let's be defensive and don't write to null-termination
-+ */
-+ if (argv[n] != NULL)
-+ {
-+ argv[n] = path;
-+ }
- }
- if (access (path, F_OK) != 0)
- {
---
-2.20.1
-
diff --git a/meta-oe/recipes-extended/polkit/polkit/0002-CVE-2021-4115-GHSL-2021-077-fix.patch b/meta-oe/recipes-extended/polkit/polkit/0002-CVE-2021-4115-GHSL-2021-077-fix.patch
deleted file mode 100644
index fcad872dc3..0000000000
--- a/meta-oe/recipes-extended/polkit/polkit/0002-CVE-2021-4115-GHSL-2021-077-fix.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From c86aea01a06ad4d6c428137e9cfe2f74b1ae7f01 Mon Sep 17 00:00:00 2001
-From: Jan Rybar <jrybar@redhat.com>
-Date: Mon, 21 Feb 2022 08:29:05 +0000
-Subject: [PATCH 2/3] CVE-2021-4115 (GHSL-2021-077) fix
-
-Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
-
----
- src/polkit/polkitsystembusname.c | 38 ++++++++++++++++++++++++++++----
- 1 file changed, 34 insertions(+), 4 deletions(-)
-
-CVE: CVE-2021-4115
-Upstream-Status: Backport [41cb093f554da8772362654a128a84dd8a5542a7]
-
-diff --git a/src/polkit/polkitsystembusname.c b/src/polkit/polkitsystembusname.c
-index 8ed1363..2fbf5f1 100644
---- a/src/polkit/polkitsystembusname.c
-+++ b/src/polkit/polkitsystembusname.c
-@@ -62,6 +62,10 @@ enum
- PROP_NAME,
- };
-
-+
-+guint8 dbus_call_respond_fails; // has to be global because of callback
-+
-+
- static void subject_iface_init (PolkitSubjectIface *subject_iface);
-
- G_DEFINE_TYPE_WITH_CODE (PolkitSystemBusName, polkit_system_bus_name, G_TYPE_OBJECT,
-@@ -364,6 +368,7 @@ on_retrieved_unix_uid_pid (GObject *src,
- if (!v)
- {
- data->caught_error = TRUE;
-+ dbus_call_respond_fails += 1;
- }
- else
- {
-@@ -405,6 +410,8 @@ polkit_system_bus_name_get_creds_sync (PolkitSystemBusName *system_bus
- tmp_context = g_main_context_new ();
- g_main_context_push_thread_default (tmp_context);
-
-+ dbus_call_respond_fails = 0;
-+
- /* Do two async calls as it's basically as fast as one sync call.
- */
- g_dbus_connection_call (connection,
-@@ -432,11 +439,34 @@ polkit_system_bus_name_get_creds_sync (PolkitSystemBusName *system_bus
- on_retrieved_unix_uid_pid,
- &data);
-
-- while (!((data.retrieved_uid && data.retrieved_pid) || data.caught_error))
-- g_main_context_iteration (tmp_context, TRUE);
-+ while (TRUE)
-+ {
-+ /* If one dbus call returns error, we must wait until the other call
-+ * calls _call_finish(), otherwise fd leak is possible.
-+ * Resolves: GHSL-2021-077
-+ */
-
-- if (data.caught_error)
-- goto out;
-+ if ( (dbus_call_respond_fails > 1) )
-+ {
-+ // we got two faults, we can leave
-+ goto out;
-+ }
-+
-+ if ((data.caught_error && (data.retrieved_pid || data.retrieved_uid)))
-+ {
-+ // we got one fault and the other call finally finished, we can leave
-+ goto out;
-+ }
-+
-+ if ( !(data.retrieved_uid && data.retrieved_pid) )
-+ {
-+ g_main_context_iteration (tmp_context, TRUE);
-+ }
-+ else
-+ {
-+ break;
-+ }
-+ }
-
- if (out_uid)
- *out_uid = data.uid;
---
-2.20.1
-
diff --git a/meta-oe/recipes-extended/polkit/polkit/0002-jsauthority-port-to-mozjs-91.patch b/meta-oe/recipes-extended/polkit/polkit/0002-jsauthority-port-to-mozjs-91.patch
deleted file mode 100644
index 5b3660da2f..0000000000
--- a/meta-oe/recipes-extended/polkit/polkit/0002-jsauthority-port-to-mozjs-91.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 4ce27b66bb07b72cb96d3d43a75108a5a6e7e156 Mon Sep 17 00:00:00 2001
-From: Xi Ruoyao <xry111@mengyan1223.wang>
-Date: Tue, 10 Aug 2021 19:09:42 +0800
-Subject: [PATCH] jsauthority: port to mozjs-91
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/92]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- configure.ac | 2 +-
- meson.build | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index d807086..5a7fc11 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -80,7 +80,7 @@ PKG_CHECK_MODULES(GLIB, [gmodule-2.0 gio-unix-2.0 >= 2.30.0])
- AC_SUBST(GLIB_CFLAGS)
- AC_SUBST(GLIB_LIBS)
-
--PKG_CHECK_MODULES(LIBJS, [mozjs-78])
-+PKG_CHECK_MODULES(LIBJS, [mozjs-91])
-
- AC_SUBST(LIBJS_CFLAGS)
- AC_SUBST(LIBJS_CXXFLAGS)
-diff --git a/meson.build b/meson.build
-index b3702be..733bbff 100644
---- a/meson.build
-+++ b/meson.build
-@@ -126,7 +126,7 @@ expat_dep = dependency('expat')
- assert(cc.has_header('expat.h', dependencies: expat_dep), 'Can\'t find expat.h. Please install expat.')
- assert(cc.has_function('XML_ParserCreate', dependencies: expat_dep), 'Can\'t find expat library. Please install expat.')
-
--mozjs_dep = dependency('mozjs-78')
-+mozjs_dep = dependency('mozjs-91')
-
- dbus_dep = dependency('dbus-1')
- dbus_confdir = dbus_dep.get_pkgconfig_variable('datadir', define_variable: ['datadir', pk_prefix / pk_datadir]) #changed from sysconfdir with respect to commit#8eada3836465838
diff --git a/meta-oe/recipes-extended/polkit/polkit/0003-Added-support-for-duktape-as-JS-engine.patch b/meta-oe/recipes-extended/polkit/polkit/0003-Added-support-for-duktape-as-JS-engine.patch
deleted file mode 100644
index b8562f8ce2..0000000000
--- a/meta-oe/recipes-extended/polkit/polkit/0003-Added-support-for-duktape-as-JS-engine.patch
+++ /dev/null
@@ -1,3459 +0,0 @@
-From 4af72493cb380ab5ce0dd7c5bcd25a8b5457d770 Mon Sep 17 00:00:00 2001
-From: Gustavo Lima Chaves <limachaves@gmail.com>
-Date: Tue, 25 Jan 2022 09:43:21 +0000
-Subject: [PATCH] Added support for duktape as JS engine
-
-Original author: Wu Xiaotian (@yetist)
-Resurrection author, runaway-killer author: Gustavo Lima Chaves (@limachaves)
-
-Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
-
-Upstream-Status: Backport [c7fc4e1b61f0fd82fc697c19c604af7e9fb291a2]
-Dropped change to .gitlab-ci.yml and adapted configure.ac due to other
-patches in meta-oe.
-
----
- buildutil/ax_pthread.m4 | 522 ++++++++
- configure.ac | 34 +-
- docs/man/polkit.xml | 4 +-
- meson.build | 16 +-
- meson_options.txt | 1 +
- src/polkitbackend/Makefile.am | 17 +-
- src/polkitbackend/meson.build | 14 +-
- src/polkitbackend/polkitbackendcommon.c | 530 +++++++++
- src/polkitbackend/polkitbackendcommon.h | 158 +++
- .../polkitbackendduktapeauthority.c | 1051 +++++++++++++++++
- .../polkitbackendjsauthority.cpp | 721 +----------
- .../etc/polkit-1/rules.d/10-testing.rules | 6 +-
- .../test-polkitbackendjsauthority.c | 2 +-
- 13 files changed, 2398 insertions(+), 678 deletions(-)
- create mode 100644 buildutil/ax_pthread.m4
- create mode 100644 src/polkitbackend/polkitbackendcommon.c
- create mode 100644 src/polkitbackend/polkitbackendcommon.h
- create mode 100644 src/polkitbackend/polkitbackendduktapeauthority.c
-
-diff --git a/buildutil/ax_pthread.m4 b/buildutil/ax_pthread.m4
-new file mode 100644
-index 0000000..9f35d13
---- /dev/null
-+++ b/buildutil/ax_pthread.m4
-@@ -0,0 +1,522 @@
-+# ===========================================================================
-+# https://www.gnu.org/software/autoconf-archive/ax_pthread.html
-+# ===========================================================================
-+#
-+# SYNOPSIS
-+#
-+# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
-+#
-+# DESCRIPTION
-+#
-+# This macro figures out how to build C programs using POSIX threads. It
-+# sets the PTHREAD_LIBS output variable to the threads library and linker
-+# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
-+# flags that are needed. (The user can also force certain compiler
-+# flags/libs to be tested by setting these environment variables.)
-+#
-+# Also sets PTHREAD_CC and PTHREAD_CXX to any special C compiler that is
-+# needed for multi-threaded programs (defaults to the value of CC
-+# respectively CXX otherwise). (This is necessary on e.g. AIX to use the
-+# special cc_r/CC_r compiler alias.)
-+#
-+# NOTE: You are assumed to not only compile your program with these flags,
-+# but also to link with them as well. For example, you might link with
-+# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
-+# $PTHREAD_CXX $CXXFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
-+#
-+# If you are only building threaded programs, you may wish to use these
-+# variables in your default LIBS, CFLAGS, and CC:
-+#
-+# LIBS="$PTHREAD_LIBS $LIBS"
-+# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-+# CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
-+# CC="$PTHREAD_CC"
-+# CXX="$PTHREAD_CXX"
-+#
-+# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
-+# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to
-+# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
-+#
-+# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
-+# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
-+# PTHREAD_CFLAGS.
-+#
-+# ACTION-IF-FOUND is a list of shell commands to run if a threads library
-+# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
-+# is not found. If ACTION-IF-FOUND is not specified, the default action
-+# will define HAVE_PTHREAD.
-+#
-+# Please let the authors know if this macro fails on any platform, or if
-+# you have any other suggestions or comments. This macro was based on work
-+# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
-+# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
-+# Alejandro Forero Cuervo to the autoconf macro repository. We are also
-+# grateful for the helpful feedback of numerous users.
-+#
-+# Updated for Autoconf 2.68 by Daniel Richard G.
-+#
-+# LICENSE
-+#
-+# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
-+# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
-+# Copyright (c) 2019 Marc Stevens <marc.stevens@cwi.nl>
-+#
-+# This program is free software: you can redistribute it and/or modify it
-+# under the terms of the GNU General Public License as published by the
-+# Free Software Foundation, either version 3 of the License, or (at your
-+# option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful, but
-+# WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-+# Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License along
-+# with this program. If not, see <https://www.gnu.org/licenses/>.
-+#
-+# As a special exception, the respective Autoconf Macro's copyright owner
-+# gives unlimited permission to copy, distribute and modify the configure
-+# scripts that are the output of Autoconf when processing the Macro. You
-+# need not follow the terms of the GNU General Public License when using
-+# or distributing such scripts, even though portions of the text of the
-+# Macro appear in them. The GNU General Public License (GPL) does govern
-+# all other use of the material that constitutes the Autoconf Macro.
-+#
-+# This special exception to the GPL applies to versions of the Autoconf
-+# Macro released by the Autoconf Archive. When you make and distribute a
-+# modified version of the Autoconf Macro, you may extend this special
-+# exception to the GPL to apply to your modified version as well.
-+
-+#serial 31
-+
-+AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
-+AC_DEFUN([AX_PTHREAD], [
-+AC_REQUIRE([AC_CANONICAL_HOST])
-+AC_REQUIRE([AC_PROG_CC])
-+AC_REQUIRE([AC_PROG_SED])
-+AC_LANG_PUSH([C])
-+ax_pthread_ok=no
-+
-+# We used to check for pthread.h first, but this fails if pthread.h
-+# requires special compiler flags (e.g. on Tru64 or Sequent).
-+# It gets checked for in the link test anyway.
-+
-+# First of all, check if the user has set any of the PTHREAD_LIBS,
-+# etcetera environment variables, and if threads linking works using
-+# them:
-+if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
-+ ax_pthread_save_CC="$CC"
-+ ax_pthread_save_CFLAGS="$CFLAGS"
-+ ax_pthread_save_LIBS="$LIBS"
-+ AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
-+ AS_IF([test "x$PTHREAD_CXX" != "x"], [CXX="$PTHREAD_CXX"])
-+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-+ LIBS="$PTHREAD_LIBS $LIBS"
-+ AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
-+ AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes])
-+ AC_MSG_RESULT([$ax_pthread_ok])
-+ if test "x$ax_pthread_ok" = "xno"; then
-+ PTHREAD_LIBS=""
-+ PTHREAD_CFLAGS=""
-+ fi
-+ CC="$ax_pthread_save_CC"
-+ CFLAGS="$ax_pthread_save_CFLAGS"
-+ LIBS="$ax_pthread_save_LIBS"
-+fi
-+
-+# We must check for the threads library under a number of different
-+# names; the ordering is very important because some systems
-+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
-+# libraries is broken (non-POSIX).
-+
-+# Create a list of thread flags to try. Items with a "," contain both
-+# C compiler flags (before ",") and linker flags (after ","). Other items
-+# starting with a "-" are C compiler flags, and remaining items are
-+# library names, except for "none" which indicates that we try without
-+# any flags at all, and "pthread-config" which is a program returning
-+# the flags for the Pth emulation library.
-+
-+ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
-+
-+# The ordering *is* (sometimes) important. Some notes on the
-+# individual items follow:
-+
-+# pthreads: AIX (must check this before -lpthread)
-+# none: in case threads are in libc; should be tried before -Kthread and
-+# other compiler flags to prevent continual compiler warnings
-+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
-+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
-+# (Note: HP C rejects this with "bad form for `-t' option")
-+# -pthreads: Solaris/gcc (Note: HP C also rejects)
-+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
-+# doesn't hurt to check since this sometimes defines pthreads and
-+# -D_REENTRANT too), HP C (must be checked before -lpthread, which
-+# is present but should not be used directly; and before -mthreads,
-+# because the compiler interprets this as "-mt" + "-hreads")
-+# -mthreads: Mingw32/gcc, Lynx/gcc
-+# pthread: Linux, etcetera
-+# --thread-safe: KAI C++
-+# pthread-config: use pthread-config program (for GNU Pth library)
-+
-+case $host_os in
-+
-+ freebsd*)
-+
-+ # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
-+ # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
-+
-+ ax_pthread_flags="-kthread lthread $ax_pthread_flags"
-+ ;;
-+
-+ hpux*)
-+
-+ # From the cc(1) man page: "[-mt] Sets various -D flags to enable
-+ # multi-threading and also sets -lpthread."
-+
-+ ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
-+ ;;
-+
-+ openedition*)
-+
-+ # IBM z/OS requires a feature-test macro to be defined in order to
-+ # enable POSIX threads at all, so give the user a hint if this is
-+ # not set. (We don't define these ourselves, as they can affect
-+ # other portions of the system API in unpredictable ways.)
-+
-+ AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],
-+ [
-+# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
-+ AX_PTHREAD_ZOS_MISSING
-+# endif
-+ ],
-+ [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])])
-+ ;;
-+
-+ solaris*)
-+
-+ # On Solaris (at least, for some versions), libc contains stubbed
-+ # (non-functional) versions of the pthreads routines, so link-based
-+ # tests will erroneously succeed. (N.B.: The stubs are missing
-+ # pthread_cleanup_push, or rather a function called by this macro,
-+ # so we could check for that, but who knows whether they'll stub
-+ # that too in a future libc.) So we'll check first for the
-+ # standard Solaris way of linking pthreads (-mt -lpthread).
-+
-+ ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags"
-+ ;;
-+esac
-+
-+# Are we compiling with Clang?
-+
-+AC_CACHE_CHECK([whether $CC is Clang],
-+ [ax_cv_PTHREAD_CLANG],
-+ [ax_cv_PTHREAD_CLANG=no
-+ # Note that Autoconf sets GCC=yes for Clang as well as GCC
-+ if test "x$GCC" = "xyes"; then
-+ AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG],
-+ [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
-+# if defined(__clang__) && defined(__llvm__)
-+ AX_PTHREAD_CC_IS_CLANG
-+# endif
-+ ],
-+ [ax_cv_PTHREAD_CLANG=yes])
-+ fi
-+ ])
-+ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
-+
-+
-+# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
-+
-+# Note that for GCC and Clang -pthread generally implies -lpthread,
-+# except when -nostdlib is passed.
-+# This is problematic using libtool to build C++ shared libraries with pthread:
-+# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460
-+# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333
-+# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555
-+# To solve this, first try -pthread together with -lpthread for GCC
-+
-+AS_IF([test "x$GCC" = "xyes"],
-+ [ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"])
-+
-+# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first
-+
-+AS_IF([test "x$ax_pthread_clang" = "xyes"],
-+ [ax_pthread_flags="-pthread,-lpthread -pthread"])
-+
-+
-+# The presence of a feature test macro requesting re-entrant function
-+# definitions is, on some systems, a strong hint that pthreads support is
-+# correctly enabled
-+
-+case $host_os in
-+ darwin* | hpux* | linux* | osf* | solaris*)
-+ ax_pthread_check_macro="_REENTRANT"
-+ ;;
-+
-+ aix*)
-+ ax_pthread_check_macro="_THREAD_SAFE"
-+ ;;
-+
-+ *)
-+ ax_pthread_check_macro="--"
-+ ;;
-+esac
-+AS_IF([test "x$ax_pthread_check_macro" = "x--"],
-+ [ax_pthread_check_cond=0],
-+ [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"])
-+
-+
-+if test "x$ax_pthread_ok" = "xno"; then
-+for ax_pthread_try_flag in $ax_pthread_flags; do
-+
-+ case $ax_pthread_try_flag in
-+ none)
-+ AC_MSG_CHECKING([whether pthreads work without any flags])
-+ ;;
-+
-+ *,*)
-+ PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"`
-+ PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"`
-+ AC_MSG_CHECKING([whether pthreads work with "$PTHREAD_CFLAGS" and "$PTHREAD_LIBS"])
-+ ;;
-+
-+ -*)
-+ AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag])
-+ PTHREAD_CFLAGS="$ax_pthread_try_flag"
-+ ;;
-+
-+ pthread-config)
-+ AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
-+ AS_IF([test "x$ax_pthread_config" = "xno"], [continue])
-+ PTHREAD_CFLAGS="`pthread-config --cflags`"
-+ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
-+ ;;
-+
-+ *)
-+ AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag])
-+ PTHREAD_LIBS="-l$ax_pthread_try_flag"
-+ ;;
-+ esac
-+
-+ ax_pthread_save_CFLAGS="$CFLAGS"
-+ ax_pthread_save_LIBS="$LIBS"
-+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-+ LIBS="$PTHREAD_LIBS $LIBS"
-+
-+ # Check for various functions. We must include pthread.h,
-+ # since some functions may be macros. (On the Sequent, we
-+ # need a special flag -Kthread to make this header compile.)
-+ # We check for pthread_join because it is in -lpthread on IRIX
-+ # while pthread_create is in libc. We check for pthread_attr_init
-+ # due to DEC craziness with -lpthreads. We check for
-+ # pthread_cleanup_push because it is one of the few pthread
-+ # functions on Solaris that doesn't have a non-functional libc stub.
-+ # We try pthread_create on general principles.
-+
-+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
-+# if $ax_pthread_check_cond
-+# error "$ax_pthread_check_macro must be defined"
-+# endif
-+ static void *some_global = NULL;
-+ static void routine(void *a)
-+ {
-+ /* To avoid any unused-parameter or
-+ unused-but-set-parameter warning. */
-+ some_global = a;
-+ }
-+ static void *start_routine(void *a) { return a; }],
-+ [pthread_t th; pthread_attr_t attr;
-+ pthread_create(&th, 0, start_routine, 0);
-+ pthread_join(th, 0);
-+ pthread_attr_init(&attr);
-+ pthread_cleanup_push(routine, 0);
-+ pthread_cleanup_pop(0) /* ; */])],
-+ [ax_pthread_ok=yes],
-+ [])
-+
-+ CFLAGS="$ax_pthread_save_CFLAGS"
-+ LIBS="$ax_pthread_save_LIBS"
-+
-+ AC_MSG_RESULT([$ax_pthread_ok])
-+ AS_IF([test "x$ax_pthread_ok" = "xyes"], [break])
-+
-+ PTHREAD_LIBS=""
-+ PTHREAD_CFLAGS=""
-+done
-+fi
-+
-+
-+# Clang needs special handling, because older versions handle the -pthread
-+# option in a rather... idiosyncratic way
-+
-+if test "x$ax_pthread_clang" = "xyes"; then
-+
-+ # Clang takes -pthread; it has never supported any other flag
-+
-+ # (Note 1: This will need to be revisited if a system that Clang
-+ # supports has POSIX threads in a separate library. This tends not
-+ # to be the way of modern systems, but it's conceivable.)
-+
-+ # (Note 2: On some systems, notably Darwin, -pthread is not needed
-+ # to get POSIX threads support; the API is always present and
-+ # active. We could reasonably leave PTHREAD_CFLAGS empty. But
-+ # -pthread does define _REENTRANT, and while the Darwin headers
-+ # ignore this macro, third-party headers might not.)
-+
-+ # However, older versions of Clang make a point of warning the user
-+ # that, in an invocation where only linking and no compilation is
-+ # taking place, the -pthread option has no effect ("argument unused
-+ # during compilation"). They expect -pthread to be passed in only
-+ # when source code is being compiled.
-+ #
-+ # Problem is, this is at odds with the way Automake and most other
-+ # C build frameworks function, which is that the same flags used in
-+ # compilation (CFLAGS) are also used in linking. Many systems
-+ # supported by AX_PTHREAD require exactly this for POSIX threads
-+ # support, and in fact it is often not straightforward to specify a
-+ # flag that is used only in the compilation phase and not in
-+ # linking. Such a scenario is extremely rare in practice.
-+ #
-+ # Even though use of the -pthread flag in linking would only print
-+ # a warning, this can be a nuisance for well-run software projects
-+ # that build with -Werror. So if the active version of Clang has
-+ # this misfeature, we search for an option to squash it.
-+
-+ AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread],
-+ [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG],
-+ [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
-+ # Create an alternate version of $ac_link that compiles and
-+ # links in two steps (.c -> .o, .o -> exe) instead of one
-+ # (.c -> exe), because the warning occurs only in the second
-+ # step
-+ ax_pthread_save_ac_link="$ac_link"
-+ ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
-+ ax_pthread_link_step=`AS_ECHO(["$ac_link"]) | sed "$ax_pthread_sed"`
-+ ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
-+ ax_pthread_save_CFLAGS="$CFLAGS"
-+ for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
-+ AS_IF([test "x$ax_pthread_try" = "xunknown"], [break])
-+ CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
-+ ac_link="$ax_pthread_save_ac_link"
-+ AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
-+ [ac_link="$ax_pthread_2step_ac_link"
-+ AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
-+ [break])
-+ ])
-+ done
-+ ac_link="$ax_pthread_save_ac_link"
-+ CFLAGS="$ax_pthread_save_CFLAGS"
-+ AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no])
-+ ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
-+ ])
-+
-+ case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
-+ no | unknown) ;;
-+ *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
-+ esac
-+
-+fi # $ax_pthread_clang = yes
-+
-+
-+
-+# Various other checks:
-+if test "x$ax_pthread_ok" = "xyes"; then
-+ ax_pthread_save_CFLAGS="$CFLAGS"
-+ ax_pthread_save_LIBS="$LIBS"
-+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-+ LIBS="$PTHREAD_LIBS $LIBS"
-+
-+ # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
-+ AC_CACHE_CHECK([for joinable pthread attribute],
-+ [ax_cv_PTHREAD_JOINABLE_ATTR],
-+ [ax_cv_PTHREAD_JOINABLE_ATTR=unknown
-+ for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
-+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
-+ [int attr = $ax_pthread_attr; return attr /* ; */])],
-+ [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break],
-+ [])
-+ done
-+ ])
-+ AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
-+ test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
-+ test "x$ax_pthread_joinable_attr_defined" != "xyes"],
-+ [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],
-+ [$ax_cv_PTHREAD_JOINABLE_ATTR],
-+ [Define to necessary symbol if this constant
-+ uses a non-standard name on your system.])
-+ ax_pthread_joinable_attr_defined=yes
-+ ])
-+
-+ AC_CACHE_CHECK([whether more special flags are required for pthreads],
-+ [ax_cv_PTHREAD_SPECIAL_FLAGS],
-+ [ax_cv_PTHREAD_SPECIAL_FLAGS=no
-+ case $host_os in
-+ solaris*)
-+ ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
-+ ;;
-+ esac
-+ ])
-+ AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
-+ test "x$ax_pthread_special_flags_added" != "xyes"],
-+ [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
-+ ax_pthread_special_flags_added=yes])
-+
-+ AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
-+ [ax_cv_PTHREAD_PRIO_INHERIT],
-+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
-+ [[int i = PTHREAD_PRIO_INHERIT;
-+ return i;]])],
-+ [ax_cv_PTHREAD_PRIO_INHERIT=yes],
-+ [ax_cv_PTHREAD_PRIO_INHERIT=no])
-+ ])
-+ AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
-+ test "x$ax_pthread_prio_inherit_defined" != "xyes"],
-+ [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])
-+ ax_pthread_prio_inherit_defined=yes
-+ ])
-+
-+ CFLAGS="$ax_pthread_save_CFLAGS"
-+ LIBS="$ax_pthread_save_LIBS"
-+
-+ # More AIX lossage: compile with *_r variant
-+ if test "x$GCC" != "xyes"; then
-+ case $host_os in
-+ aix*)
-+ AS_CASE(["x/$CC"],
-+ [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
-+ [#handle absolute path differently from PATH based program lookup
-+ AS_CASE(["x$CC"],
-+ [x/*],
-+ [
-+ AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])
-+ AS_IF([test "x${CXX}" != "x"], [AS_IF([AS_EXECUTABLE_P([${CXX}_r])],[PTHREAD_CXX="${CXX}_r"])])
-+ ],
-+ [
-+ AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])
-+ AS_IF([test "x${CXX}" != "x"], [AC_CHECK_PROGS([PTHREAD_CXX],[${CXX}_r],[$CXX])])
-+ ]
-+ )
-+ ])
-+ ;;
-+ esac
-+ fi
-+fi
-+
-+test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
-+test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX"
-+
-+AC_SUBST([PTHREAD_LIBS])
-+AC_SUBST([PTHREAD_CFLAGS])
-+AC_SUBST([PTHREAD_CC])
-+AC_SUBST([PTHREAD_CXX])
-+
-+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
-+if test "x$ax_pthread_ok" = "xyes"; then
-+ ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
-+ :
-+else
-+ ax_pthread_ok=no
-+ $2
-+fi
-+AC_LANG_POP
-+])dnl AX_PTHREAD
-diff --git a/configure.ac b/configure.ac
-index b625743..bbf4768 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -80,11 +80,22 @@ PKG_CHECK_MODULES(GLIB, [gmodule-2.0 gio-unix-2.0 >= 2.30.0])
- AC_SUBST(GLIB_CFLAGS)
- AC_SUBST(GLIB_LIBS)
-
--PKG_CHECK_MODULES(LIBJS, [mozjs-78])
--
--AC_SUBST(LIBJS_CFLAGS)
--AC_SUBST(LIBJS_CXXFLAGS)
--AC_SUBST(LIBJS_LIBS)
-+dnl ---------------------------------------------------------------------------
-+dnl - Check javascript backend
-+dnl ---------------------------------------------------------------------------
-+AC_ARG_WITH(duktape, AS_HELP_STRING([--with-duktape],[Use Duktape as javascript backend]),with_duktape=yes,with_duktape=no)
-+AS_IF([test x${with_duktape} == xyes], [
-+ PKG_CHECK_MODULES(LIBJS, [duktape >= 2.2.0 ])
-+ AC_SUBST(LIBJS_CFLAGS)
-+ AC_SUBST(LIBJS_LIBS)
-+], [
-+ PKG_CHECK_MODULES(LIBJS, [mozjs-78])
-+
-+ AC_SUBST(LIBJS_CFLAGS)
-+ AC_SUBST(LIBJS_CXXFLAGS)
-+ AC_SUBST(LIBJS_LIBS)
-+])
-+AM_CONDITIONAL(USE_DUKTAPE, [test x$with_duktape == xyes], [Using duktape as javascript engine library])
-
- EXPAT_LIB=""
- AC_ARG_WITH(expat, [ --with-expat=<dir> Use expat from here],
-@@ -100,6 +111,12 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="-lexpat"],
- [AC_MSG_ERROR([Can't find expat library. Please install expat.])])
- AC_SUBST(EXPAT_LIBS)
-
-+AX_PTHREAD([], [AC_MSG_ERROR([Cannot find the way to enable pthread support.])])
-+LIBS="$PTHREAD_LIBS $LIBS"
-+CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-+CC="$PTHREAD_CC"
-+AC_CHECK_FUNCS([pthread_condattr_setclock])
-+
- AC_CHECK_FUNCS(clearenv fdatasync)
-
- if test "x$GCC" = "xyes"; then
-@@ -581,6 +598,13 @@ echo "
- PAM support: ${have_pam}
- systemdsystemunitdir: ${systemdsystemunitdir}
- polkitd user: ${POLKITD_USER}"
-+if test "x${with_duktape}" = xyes; then
-+echo "
-+ Javascript engine: Duktape"
-+else
-+echo "
-+ Javascript engine: Mozjs"
-+fi
-
- if test "$have_pam" = yes ; then
- echo "
-diff --git a/docs/man/polkit.xml b/docs/man/polkit.xml
-index 99aa474..90715a5 100644
---- a/docs/man/polkit.xml
-+++ b/docs/man/polkit.xml
-@@ -639,7 +639,9 @@ polkit.Result = {
- If user-provided code takes a long time to execute, an exception
- will be thrown which normally results in the function being
- terminated (the current limit is 15 seconds). This is used to
-- catch runaway scripts.
-+ catch runaway scripts. If the duktape JavaScript backend is
-+ compiled in, instead of mozjs, no exception will be thrown—the
-+ script will be killed right away (same timeout).
- </para>
-
- <para>
-diff --git a/meson.build b/meson.build
-index b3702be..7506231 100644
---- a/meson.build
-+++ b/meson.build
-@@ -126,7 +126,18 @@ expat_dep = dependency('expat')
- assert(cc.has_header('expat.h', dependencies: expat_dep), 'Can\'t find expat.h. Please install expat.')
- assert(cc.has_function('XML_ParserCreate', dependencies: expat_dep), 'Can\'t find expat library. Please install expat.')
-
--mozjs_dep = dependency('mozjs-78')
-+duktape_req_version = '>= 2.2.0'
-+
-+js_engine = get_option('js_engine')
-+if js_engine == 'duktape'
-+ js_dep = dependency('duktape', version: duktape_req_version)
-+ libm_dep = cc.find_library('m')
-+ thread_dep = dependency('threads')
-+ func = 'pthread_condattr_setclock'
-+ config_h.set('HAVE_' + func.to_upper(), cc.has_function(func, prefix : '#include <pthread.h>'))
-+elif js_engine == 'mozjs'
-+ js_dep = dependency('mozjs-78')
-+endif
-
- dbus_dep = dependency('dbus-1')
- dbus_confdir = dbus_dep.get_pkgconfig_variable('datadir', define_variable: ['datadir', pk_prefix / pk_datadir]) #changed from sysconfdir with respect to commit#8eada3836465838
-@@ -350,6 +361,9 @@ if enable_logind
- output += ' systemdsystemunitdir: ' + systemd_systemdsystemunitdir + '\n'
- endif
- output += ' polkitd user: ' + polkitd_user + ' \n'
-+output += ' Javascript engine: ' + js_engine + '\n'
-+if enable_logind
-+endif
- output += ' PAM support: ' + enable_pam.to_string() + '\n\n'
- if enable_pam
- output += ' PAM file auth: ' + pam_conf['PAM_FILE_INCLUDE_AUTH'] + '\n'
-diff --git a/meson_options.txt b/meson_options.txt
-index 25e3e77..76aa311 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -16,3 +16,4 @@ option('introspection', type: 'boolean', value: true, description: 'Enable intro
-
- option('gtk_doc', type: 'boolean', value: false, description: 'use gtk-doc to build documentation')
- option('man', type: 'boolean', value: false, description: 'build manual pages')
-+option('js_engine', type: 'combo', choices: ['mozjs', 'duktape'], value: 'duktape', description: 'javascript engine')
-diff --git a/src/polkitbackend/Makefile.am b/src/polkitbackend/Makefile.am
-index 7e3c080..935fb98 100644
---- a/src/polkitbackend/Makefile.am
-+++ b/src/polkitbackend/Makefile.am
-@@ -17,6 +17,8 @@ AM_CPPFLAGS = \
- -DPACKAGE_LIB_DIR=\""$(libdir)"\" \
- -D_POSIX_PTHREAD_SEMANTICS \
- -D_REENTRANT \
-+ -D_XOPEN_SOURCE=700 \
-+ -D_GNU_SOURCE=1 \
- $(NULL)
-
- noinst_LTLIBRARIES=libpolkit-backend-1.la
-@@ -31,9 +33,10 @@ libpolkit_backend_1_la_SOURCES = \
- polkitbackend.h \
- polkitbackendtypes.h \
- polkitbackendprivate.h \
-+ polkitbackendcommon.h polkitbackendcommon.c \
- polkitbackendauthority.h polkitbackendauthority.c \
- polkitbackendinteractiveauthority.h polkitbackendinteractiveauthority.c \
-- polkitbackendjsauthority.h polkitbackendjsauthority.cpp \
-+ polkitbackendjsauthority.h \
- polkitbackendactionpool.h polkitbackendactionpool.c \
- polkitbackendactionlookup.h polkitbackendactionlookup.c \
- $(NULL)
-@@ -51,19 +54,27 @@ libpolkit_backend_1_la_CFLAGS = \
- -D_POLKIT_BACKEND_COMPILATION \
- $(GLIB_CFLAGS) \
- $(LIBSYSTEMD_CFLAGS) \
-- $(LIBJS_CFLAGS) \
-+ $(LIBJS_CFLAGS) \
- $(NULL)
-
- libpolkit_backend_1_la_CXXFLAGS = $(libpolkit_backend_1_la_CFLAGS)
-
- libpolkit_backend_1_la_LIBADD = \
- $(GLIB_LIBS) \
-+ $(DUKTAPE_LIBS) \
- $(LIBSYSTEMD_LIBS) \
- $(top_builddir)/src/polkit/libpolkit-gobject-1.la \
- $(EXPAT_LIBS) \
-- $(LIBJS_LIBS) \
-+ $(LIBJS_LIBS) \
- $(NULL)
-
-+if USE_DUKTAPE
-+libpolkit_backend_1_la_SOURCES += polkitbackendduktapeauthority.c
-+libpolkit_backend_1_la_LIBADD += -lm
-+else
-+libpolkit_backend_1_la_SOURCES += polkitbackendjsauthority.cpp
-+endif
-+
- rulesdir = $(sysconfdir)/polkit-1/rules.d
- rules_DATA = 50-default.rules
-
-diff --git a/src/polkitbackend/meson.build b/src/polkitbackend/meson.build
-index 93c3c34..99f8e33 100644
---- a/src/polkitbackend/meson.build
-+++ b/src/polkitbackend/meson.build
-@@ -4,8 +4,8 @@ sources = files(
- 'polkitbackendactionlookup.c',
- 'polkitbackendactionpool.c',
- 'polkitbackendauthority.c',
-+ 'polkitbackendcommon.c',
- 'polkitbackendinteractiveauthority.c',
-- 'polkitbackendjsauthority.cpp',
- )
-
- output = 'initjs.h'
-@@ -21,7 +21,7 @@ sources += custom_target(
- deps = [
- expat_dep,
- libpolkit_gobject_dep,
-- mozjs_dep,
-+ js_dep,
- ]
-
- c_flags = [
-@@ -29,8 +29,18 @@ c_flags = [
- '-D_POLKIT_BACKEND_COMPILATION',
- '-DPACKAGE_DATA_DIR="@0@"'.format(pk_prefix / pk_datadir),
- '-DPACKAGE_SYSCONF_DIR="@0@"'.format(pk_prefix / pk_sysconfdir),
-+ '-D_XOPEN_SOURCE=700',
-+ '-D_GNU_SOURCE=1',
- ]
-
-+if js_engine == 'duktape'
-+ sources += files('polkitbackendduktapeauthority.c')
-+ deps += libm_dep
-+ deps += thread_dep
-+elif js_engine == 'mozjs'
-+ sources += files('polkitbackendjsauthority.cpp')
-+endif
-+
- if enable_logind
- sources += files('polkitbackendsessionmonitor-systemd.c')
-
-diff --git a/src/polkitbackend/polkitbackendcommon.c b/src/polkitbackend/polkitbackendcommon.c
-new file mode 100644
-index 0000000..6783dff
---- /dev/null
-+++ b/src/polkitbackend/polkitbackendcommon.c
-@@ -0,0 +1,530 @@
-+/*
-+ * Copyright (C) 2008 Red Hat, Inc.
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General
-+ * Public License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ *
-+ * Author: David Zeuthen <davidz@redhat.com>
-+ */
-+
-+#include "polkitbackendcommon.h"
-+
-+static void
-+utils_child_watch_from_release_cb (GPid pid,
-+ gint status,
-+ gpointer user_data)
-+{
-+}
-+
-+static void
-+utils_spawn_data_free (UtilsSpawnData *data)
-+{
-+ if (data->timeout_source != NULL)
-+ {
-+ g_source_destroy (data->timeout_source);
-+ data->timeout_source = NULL;
-+ }
-+
-+ /* Nuke the child, if necessary */
-+ if (data->child_watch_source != NULL)
-+ {
-+ g_source_destroy (data->child_watch_source);
-+ data->child_watch_source = NULL;
-+ }
-+
-+ if (data->child_pid != 0)
-+ {
-+ GSource *source;
-+ kill (data->child_pid, SIGTERM);
-+ /* OK, we need to reap for the child ourselves - we don't want
-+ * to use waitpid() because that might block the calling
-+ * thread (the child might handle SIGTERM and use several
-+ * seconds for cleanup/rollback).
-+ *
-+ * So we use GChildWatch instead.
-+ *
-+ * Avoid taking a references to ourselves. but note that we need
-+ * to pass the GSource so we can nuke it once handled.
-+ */
-+ source = g_child_watch_source_new (data->child_pid);
-+ g_source_set_callback (source,
-+ (GSourceFunc) utils_child_watch_from_release_cb,
-+ source,
-+ (GDestroyNotify) g_source_destroy);
-+ g_source_attach (source, data->main_context);
-+ g_source_unref (source);
-+ data->child_pid = 0;
-+ }
-+
-+ if (data->child_stdout != NULL)
-+ {
-+ g_string_free (data->child_stdout, TRUE);
-+ data->child_stdout = NULL;
-+ }
-+
-+ if (data->child_stderr != NULL)
-+ {
-+ g_string_free (data->child_stderr, TRUE);
-+ data->child_stderr = NULL;
-+ }
-+
-+ if (data->child_stdout_channel != NULL)
-+ {
-+ g_io_channel_unref (data->child_stdout_channel);
-+ data->child_stdout_channel = NULL;
-+ }
-+ if (data->child_stderr_channel != NULL)
-+ {
-+ g_io_channel_unref (data->child_stderr_channel);
-+ data->child_stderr_channel = NULL;
-+ }
-+
-+ if (data->child_stdout_source != NULL)
-+ {
-+ g_source_destroy (data->child_stdout_source);
-+ data->child_stdout_source = NULL;
-+ }
-+ if (data->child_stderr_source != NULL)
-+ {
-+ g_source_destroy (data->child_stderr_source);
-+ data->child_stderr_source = NULL;
-+ }
-+
-+ if (data->child_stdout_fd != -1)
-+ {
-+ g_warn_if_fail (close (data->child_stdout_fd) == 0);
-+ data->child_stdout_fd = -1;
-+ }
-+ if (data->child_stderr_fd != -1)
-+ {
-+ g_warn_if_fail (close (data->child_stderr_fd) == 0);
-+ data->child_stderr_fd = -1;
-+ }
-+
-+ if (data->cancellable_handler_id > 0)
-+ {
-+ g_cancellable_disconnect (data->cancellable, data->cancellable_handler_id);
-+ data->cancellable_handler_id = 0;
-+ }
-+
-+ if (data->main_context != NULL)
-+ g_main_context_unref (data->main_context);
-+
-+ if (data->cancellable != NULL)
-+ g_object_unref (data->cancellable);
-+
-+ g_slice_free (UtilsSpawnData, data);
-+}
-+
-+/* called in the thread where @cancellable was cancelled */
-+static void
-+utils_on_cancelled (GCancellable *cancellable,
-+ gpointer user_data)
-+{
-+ UtilsSpawnData *data = (UtilsSpawnData *)user_data;
-+ GError *error;
-+
-+ error = NULL;
-+ g_warn_if_fail (g_cancellable_set_error_if_cancelled (cancellable, &error));
-+ g_simple_async_result_take_error (data->simple, error);
-+ g_simple_async_result_complete_in_idle (data->simple);
-+ g_object_unref (data->simple);
-+}
-+
-+static gboolean
-+utils_timeout_cb (gpointer user_data)
-+{
-+ UtilsSpawnData *data = (UtilsSpawnData *)user_data;
-+
-+ data->timed_out = TRUE;
-+
-+ /* ok, timeout is history, make sure we don't free it in spawn_data_free() */
-+ data->timeout_source = NULL;
-+
-+ /* we're done */
-+ g_simple_async_result_complete_in_idle (data->simple);
-+ g_object_unref (data->simple);
-+
-+ return FALSE; /* remove source */
-+}
-+
-+static void
-+utils_child_watch_cb (GPid pid,
-+ gint status,
-+ gpointer user_data)
-+{
-+ UtilsSpawnData *data = (UtilsSpawnData *)user_data;
-+ gchar *buf;
-+ gsize buf_size;
-+
-+ if (g_io_channel_read_to_end (data->child_stdout_channel, &buf, &buf_size, NULL) == G_IO_STATUS_NORMAL)
-+ {
-+ g_string_append_len (data->child_stdout, buf, buf_size);
-+ g_free (buf);
-+ }
-+ if (g_io_channel_read_to_end (data->child_stderr_channel, &buf, &buf_size, NULL) == G_IO_STATUS_NORMAL)
-+ {
-+ g_string_append_len (data->child_stderr, buf, buf_size);
-+ g_free (buf);
-+ }
-+
-+ data->exit_status = status;
-+
-+ /* ok, child watch is history, make sure we don't free it in spawn_data_free() */
-+ data->child_pid = 0;
-+ data->child_watch_source = NULL;
-+
-+ /* we're done */
-+ g_simple_async_result_complete_in_idle (data->simple);
-+ g_object_unref (data->simple);
-+}
-+
-+static gboolean
-+utils_read_child_stderr (GIOChannel *channel,
-+ GIOCondition condition,
-+ gpointer user_data)
-+{
-+ UtilsSpawnData *data = (UtilsSpawnData *)user_data;
-+ gchar buf[1024];
-+ gsize bytes_read;
-+
-+ g_io_channel_read_chars (channel, buf, sizeof buf, &bytes_read, NULL);
-+ g_string_append_len (data->child_stderr, buf, bytes_read);
-+ return TRUE;
-+}
-+
-+static gboolean
-+utils_read_child_stdout (GIOChannel *channel,
-+ GIOCondition condition,
-+ gpointer user_data)
-+{
-+ UtilsSpawnData *data = (UtilsSpawnData *)user_data;
-+ gchar buf[1024];
-+ gsize bytes_read;
-+
-+ g_io_channel_read_chars (channel, buf, sizeof buf, &bytes_read, NULL);
-+ g_string_append_len (data->child_stdout, buf, bytes_read);
-+ return TRUE;
-+}
-+
-+void
-+polkit_backend_common_spawn (const gchar *const *argv,
-+ guint timeout_seconds,
-+ GCancellable *cancellable,
-+ GAsyncReadyCallback callback,
-+ gpointer user_data)
-+{
-+ UtilsSpawnData *data;
-+ GError *error;
-+
-+ data = g_slice_new0 (UtilsSpawnData);
-+ data->timeout_seconds = timeout_seconds;
-+ data->simple = g_simple_async_result_new (NULL,
-+ callback,
-+ user_data,
-+ (gpointer*)polkit_backend_common_spawn);
-+ data->main_context = g_main_context_get_thread_default ();
-+ if (data->main_context != NULL)
-+ g_main_context_ref (data->main_context);
-+
-+ data->cancellable = cancellable != NULL ? (GCancellable*)g_object_ref (cancellable) : NULL;
-+
-+ data->child_stdout = g_string_new (NULL);
-+ data->child_stderr = g_string_new (NULL);
-+ data->child_stdout_fd = -1;
-+ data->child_stderr_fd = -1;
-+
-+ /* the life-cycle of UtilsSpawnData is tied to its GSimpleAsyncResult */
-+ g_simple_async_result_set_op_res_gpointer (data->simple, data, (GDestroyNotify) utils_spawn_data_free);
-+
-+ error = NULL;
-+ if (data->cancellable != NULL)
-+ {
-+ /* could already be cancelled */
-+ error = NULL;
-+ if (g_cancellable_set_error_if_cancelled (data->cancellable, &error))
-+ {
-+ g_simple_async_result_take_error (data->simple, error);
-+ g_simple_async_result_complete_in_idle (data->simple);
-+ g_object_unref (data->simple);
-+ goto out;
-+ }
-+
-+ data->cancellable_handler_id = g_cancellable_connect (data->cancellable,
-+ G_CALLBACK (utils_on_cancelled),
-+ data,
-+ NULL);
-+ }
-+
-+ error = NULL;
-+ if (!g_spawn_async_with_pipes (NULL, /* working directory */
-+ (gchar **) argv,
-+ NULL, /* envp */
-+ G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
-+ NULL, /* child_setup */
-+ NULL, /* child_setup's user_data */
-+ &(data->child_pid),
-+ NULL, /* gint *stdin_fd */
-+ &(data->child_stdout_fd),
-+ &(data->child_stderr_fd),
-+ &error))
-+ {
-+ g_prefix_error (&error, "Error spawning: ");
-+ g_simple_async_result_take_error (data->simple, error);
-+ g_simple_async_result_complete_in_idle (data->simple);
-+ g_object_unref (data->simple);
-+ goto out;
-+ }
-+
-+ if (timeout_seconds > 0)
-+ {
-+ data->timeout_source = g_timeout_source_new_seconds (timeout_seconds);
-+ g_source_set_priority (data->timeout_source, G_PRIORITY_DEFAULT);
-+ g_source_set_callback (data->timeout_source, utils_timeout_cb, data, NULL);
-+ g_source_attach (data->timeout_source, data->main_context);
-+ g_source_unref (data->timeout_source);
-+ }
-+
-+ data->child_watch_source = g_child_watch_source_new (data->child_pid);
-+ g_source_set_callback (data->child_watch_source, (GSourceFunc) utils_child_watch_cb, data, NULL);
-+ g_source_attach (data->child_watch_source, data->main_context);
-+ g_source_unref (data->child_watch_source);
-+
-+ data->child_stdout_channel = g_io_channel_unix_new (data->child_stdout_fd);
-+ g_io_channel_set_flags (data->child_stdout_channel, G_IO_FLAG_NONBLOCK, NULL);
-+ data->child_stdout_source = g_io_create_watch (data->child_stdout_channel, G_IO_IN);
-+ g_source_set_callback (data->child_stdout_source, (GSourceFunc) utils_read_child_stdout, data, NULL);
-+ g_source_attach (data->child_stdout_source, data->main_context);
-+ g_source_unref (data->child_stdout_source);
-+
-+ data->child_stderr_channel = g_io_channel_unix_new (data->child_stderr_fd);
-+ g_io_channel_set_flags (data->child_stderr_channel, G_IO_FLAG_NONBLOCK, NULL);
-+ data->child_stderr_source = g_io_create_watch (data->child_stderr_channel, G_IO_IN);
-+ g_source_set_callback (data->child_stderr_source, (GSourceFunc) utils_read_child_stderr, data, NULL);
-+ g_source_attach (data->child_stderr_source, data->main_context);
-+ g_source_unref (data->child_stderr_source);
-+
-+ out:
-+ ;
-+}
-+
-+void
-+polkit_backend_common_on_dir_monitor_changed (GFileMonitor *monitor,
-+ GFile *file,
-+ GFile *other_file,
-+ GFileMonitorEvent event_type,
-+ gpointer user_data)
-+{
-+ PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (user_data);
-+
-+ /* TODO: maybe rate-limit so storms of events are collapsed into one with a 500ms resolution?
-+ * Because when editing a file with emacs we get 4-8 events..
-+ */
-+
-+ if (file != NULL)
-+ {
-+ gchar *name;
-+
-+ name = g_file_get_basename (file);
-+
-+ /* g_print ("event_type=%d file=%p name=%s\n", event_type, file, name); */
-+ if (!g_str_has_prefix (name, ".") &&
-+ !g_str_has_prefix (name, "#") &&
-+ g_str_has_suffix (name, ".rules") &&
-+ (event_type == G_FILE_MONITOR_EVENT_CREATED ||
-+ event_type == G_FILE_MONITOR_EVENT_DELETED ||
-+ event_type == G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT))
-+ {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Reloading rules");
-+ polkit_backend_common_reload_scripts (authority);
-+ }
-+ g_free (name);
-+ }
-+}
-+
-+gboolean
-+polkit_backend_common_spawn_finish (GAsyncResult *res,
-+ gint *out_exit_status,
-+ gchar **out_standard_output,
-+ gchar **out_standard_error,
-+ GError **error)
-+{
-+ GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (res);
-+ UtilsSpawnData *data;
-+ gboolean ret = FALSE;
-+
-+ g_return_val_if_fail (G_IS_ASYNC_RESULT (res), FALSE);
-+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-+
-+ g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == polkit_backend_common_spawn);
-+
-+ if (g_simple_async_result_propagate_error (simple, error))
-+ goto out;
-+
-+ data = (UtilsSpawnData*)g_simple_async_result_get_op_res_gpointer (simple);
-+
-+ if (data->timed_out)
-+ {
-+ g_set_error (error,
-+ G_IO_ERROR,
-+ G_IO_ERROR_TIMED_OUT,
-+ "Timed out after %d seconds",
-+ data->timeout_seconds);
-+ goto out;
-+ }
-+
-+ if (out_exit_status != NULL)
-+ *out_exit_status = data->exit_status;
-+
-+ if (out_standard_output != NULL)
-+ *out_standard_output = g_strdup (data->child_stdout->str);
-+
-+ if (out_standard_error != NULL)
-+ *out_standard_error = g_strdup (data->child_stderr->str);
-+
-+ ret = TRUE;
-+
-+ out:
-+ return ret;
-+}
-+
-+static const gchar *
-+polkit_backend_js_authority_get_name (PolkitBackendAuthority *authority)
-+{
-+ return "js";
-+}
-+
-+static const gchar *
-+polkit_backend_js_authority_get_version (PolkitBackendAuthority *authority)
-+{
-+ return PACKAGE_VERSION;
-+}
-+
-+static PolkitAuthorityFeatures
-+polkit_backend_js_authority_get_features (PolkitBackendAuthority *authority)
-+{
-+ return POLKIT_AUTHORITY_FEATURES_TEMPORARY_AUTHORIZATION;
-+}
-+
-+void
-+polkit_backend_common_js_authority_class_init_common (PolkitBackendJsAuthorityClass *klass)
-+{
-+ GObjectClass *gobject_class;
-+ PolkitBackendAuthorityClass *authority_class;
-+ PolkitBackendInteractiveAuthorityClass *interactive_authority_class;
-+
-+ gobject_class = G_OBJECT_CLASS (klass);
-+ gobject_class->finalize = polkit_backend_common_js_authority_finalize;
-+ gobject_class->set_property = polkit_backend_common_js_authority_set_property;
-+ gobject_class->constructed = polkit_backend_common_js_authority_constructed;
-+
-+ authority_class = POLKIT_BACKEND_AUTHORITY_CLASS (klass);
-+ authority_class->get_name = polkit_backend_js_authority_get_name;
-+ authority_class->get_version = polkit_backend_js_authority_get_version;
-+ authority_class->get_features = polkit_backend_js_authority_get_features;
-+
-+ interactive_authority_class = POLKIT_BACKEND_INTERACTIVE_AUTHORITY_CLASS (klass);
-+ interactive_authority_class->get_admin_identities = polkit_backend_common_js_authority_get_admin_auth_identities;
-+ interactive_authority_class->check_authorization_sync = polkit_backend_common_js_authority_check_authorization_sync;
-+
-+ g_object_class_install_property (gobject_class,
-+ PROP_RULES_DIRS,
-+ g_param_spec_boxed ("rules-dirs",
-+ NULL,
-+ NULL,
-+ G_TYPE_STRV,
-+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE));
-+}
-+
-+gint
-+polkit_backend_common_rules_file_name_cmp (const gchar *a,
-+ const gchar *b)
-+{
-+ gint ret;
-+ const gchar *a_base;
-+ const gchar *b_base;
-+
-+ a_base = strrchr (a, '/');
-+ b_base = strrchr (b, '/');
-+
-+ g_assert (a_base != NULL);
-+ g_assert (b_base != NULL);
-+ a_base += 1;
-+ b_base += 1;
-+
-+ ret = g_strcmp0 (a_base, b_base);
-+ if (ret == 0)
-+ {
-+ /* /etc wins over /usr */
-+ ret = g_strcmp0 (a, b);
-+ g_assert (ret != 0);
-+ }
-+
-+ return ret;
-+}
-+
-+const gchar *
-+polkit_backend_common_get_signal_name (gint signal_number)
-+{
-+ switch (signal_number)
-+ {
-+#define _HANDLE_SIG(sig) case sig: return #sig;
-+ _HANDLE_SIG (SIGHUP);
-+ _HANDLE_SIG (SIGINT);
-+ _HANDLE_SIG (SIGQUIT);
-+ _HANDLE_SIG (SIGILL);
-+ _HANDLE_SIG (SIGABRT);
-+ _HANDLE_SIG (SIGFPE);
-+ _HANDLE_SIG (SIGKILL);
-+ _HANDLE_SIG (SIGSEGV);
-+ _HANDLE_SIG (SIGPIPE);
-+ _HANDLE_SIG (SIGALRM);
-+ _HANDLE_SIG (SIGTERM);
-+ _HANDLE_SIG (SIGUSR1);
-+ _HANDLE_SIG (SIGUSR2);
-+ _HANDLE_SIG (SIGCHLD);
-+ _HANDLE_SIG (SIGCONT);
-+ _HANDLE_SIG (SIGSTOP);
-+ _HANDLE_SIG (SIGTSTP);
-+ _HANDLE_SIG (SIGTTIN);
-+ _HANDLE_SIG (SIGTTOU);
-+ _HANDLE_SIG (SIGBUS);
-+#ifdef SIGPOLL
-+ _HANDLE_SIG (SIGPOLL);
-+#endif
-+ _HANDLE_SIG (SIGPROF);
-+ _HANDLE_SIG (SIGSYS);
-+ _HANDLE_SIG (SIGTRAP);
-+ _HANDLE_SIG (SIGURG);
-+ _HANDLE_SIG (SIGVTALRM);
-+ _HANDLE_SIG (SIGXCPU);
-+ _HANDLE_SIG (SIGXFSZ);
-+#undef _HANDLE_SIG
-+ default:
-+ break;
-+ }
-+ return "UNKNOWN_SIGNAL";
-+}
-+
-+void
-+polkit_backend_common_spawn_cb (GObject *source_object,
-+ GAsyncResult *res,
-+ gpointer user_data)
-+{
-+ SpawnData *data = (SpawnData *)user_data;
-+ data->res = (GAsyncResult*)g_object_ref (res);
-+ g_main_loop_quit (data->loop);
-+}
-diff --git a/src/polkitbackend/polkitbackendcommon.h b/src/polkitbackend/polkitbackendcommon.h
-new file mode 100644
-index 0000000..dd700fc
---- /dev/null
-+++ b/src/polkitbackend/polkitbackendcommon.h
-@@ -0,0 +1,158 @@
-+/*
-+ * Copyright (C) 2008 Red Hat, Inc.
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General
-+ * Public License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ *
-+ * Author: David Zeuthen <davidz@redhat.com>
-+ */
-+
-+#if !defined (_POLKIT_BACKEND_COMPILATION) && !defined(_POLKIT_BACKEND_INSIDE_POLKIT_BACKEND_H)
-+#error "Only <polkitbackend/polkitbackend.h> can be included directly, this file may disappear or change contents."
-+#endif
-+
-+#ifndef __POLKIT_BACKEND_COMMON_H
-+#define __POLKIT_BACKEND_COMMON_H
-+
-+#include "config.h"
-+#include <sys/wait.h>
-+#include <errno.h>
-+#include <pwd.h>
-+#include <grp.h>
-+#ifdef HAVE_NETGROUP_H
-+#include <netgroup.h>
-+#else
-+#include <netdb.h>
-+#endif
-+#include <string.h>
-+#include <glib/gstdio.h>
-+#include <locale.h>
-+#include <glib/gi18n-lib.h> //here, all things glib via glib.h (including -> gspawn.h)
-+
-+#include <polkit/polkit.h>
-+#include "polkitbackendjsauthority.h"
-+
-+#include <polkit/polkitprivate.h>
-+
-+#ifdef HAVE_LIBSYSTEMD
-+#include <systemd/sd-login.h>
-+#endif /* HAVE_LIBSYSTEMD */
-+
-+#define RUNAWAY_KILLER_TIMEOUT (15)
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+enum
-+{
-+ PROP_0,
-+ PROP_RULES_DIRS,
-+};
-+
-+typedef struct
-+{
-+ GSimpleAsyncResult *simple; /* borrowed reference */
-+ GMainContext *main_context; /* may be NULL */
-+
-+ GCancellable *cancellable; /* may be NULL */
-+ gulong cancellable_handler_id;
-+
-+ GPid child_pid;
-+ gint child_stdout_fd;
-+ gint child_stderr_fd;
-+
-+ GIOChannel *child_stdout_channel;
-+ GIOChannel *child_stderr_channel;
-+
-+ GSource *child_watch_source;
-+ GSource *child_stdout_source;
-+ GSource *child_stderr_source;
-+
-+ guint timeout_seconds;
-+ gboolean timed_out;
-+ GSource *timeout_source;
-+
-+ GString *child_stdout;
-+ GString *child_stderr;
-+
-+ gint exit_status;
-+} UtilsSpawnData;
-+
-+typedef struct
-+{
-+ GMainLoop *loop;
-+ GAsyncResult *res;
-+} SpawnData;
-+
-+void polkit_backend_common_spawn (const gchar *const *argv,
-+ guint timeout_seconds,
-+ GCancellable *cancellable,
-+ GAsyncReadyCallback callback,
-+ gpointer user_data);
-+void polkit_backend_common_spawn_cb (GObject *source_object,
-+ GAsyncResult *res,
-+ gpointer user_data);
-+gboolean polkit_backend_common_spawn_finish (GAsyncResult *res,
-+ gint *out_exit_status,
-+ gchar **out_standard_output,
-+ gchar **out_standard_error,
-+ GError **error);
-+
-+void polkit_backend_common_on_dir_monitor_changed (GFileMonitor *monitor,
-+ GFile *file,
-+ GFile *other_file,
-+ GFileMonitorEvent event_type,
-+ gpointer user_data);
-+
-+void polkit_backend_common_js_authority_class_init_common (PolkitBackendJsAuthorityClass *klass);
-+
-+gint polkit_backend_common_rules_file_name_cmp (const gchar *a,
-+ const gchar *b);
-+
-+const gchar *polkit_backend_common_get_signal_name (gint signal_number);
-+
-+/* To be provided by each JS backend, from here onwards ---------------------------------------------- */
-+
-+void polkit_backend_common_reload_scripts (PolkitBackendJsAuthority *authority);
-+void polkit_backend_common_js_authority_finalize (GObject *object);
-+void polkit_backend_common_js_authority_constructed (GObject *object);
-+GList *polkit_backend_common_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *_authority,
-+ PolkitSubject *caller,
-+ PolkitSubject *subject,
-+ PolkitIdentity *user_for_subject,
-+ gboolean subject_is_local,
-+ gboolean subject_is_active,
-+ const gchar *action_id,
-+ PolkitDetails *details);
-+void polkit_backend_common_js_authority_set_property (GObject *object,
-+ guint property_id,
-+ const GValue *value,
-+ GParamSpec *pspec);
-+PolkitImplicitAuthorization polkit_backend_common_js_authority_check_authorization_sync (PolkitBackendInteractiveAuthority *_authority,
-+ PolkitSubject *caller,
-+ PolkitSubject *subject,
-+ PolkitIdentity *user_for_subject,
-+ gboolean subject_is_local,
-+ gboolean subject_is_active,
-+ const gchar *action_id,
-+ PolkitDetails *details,
-+ PolkitImplicitAuthorization implicit);
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* __POLKIT_BACKEND_COMMON_H */
-+
-diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
-new file mode 100644
-index 0000000..c89dbcf
---- /dev/null
-+++ b/src/polkitbackend/polkitbackendduktapeauthority.c
-@@ -0,0 +1,1051 @@
-+/*
-+ * Copyright (C) 2008-2012 Red Hat, Inc.
-+ * Copyright (C) 2015 Tangent Space <jstpierre@mecheye.net>
-+ * Copyright (C) 2019 Wu Xiaotian <yetist@gmail.com>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General
-+ * Public License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ *
-+ * Author: David Zeuthen <davidz@redhat.com>
-+ */
-+
-+#include <pthread.h>
-+
-+#include "polkitbackendcommon.h"
-+
-+#include "duktape.h"
-+
-+/* Built source and not too big to worry about deduplication */
-+#include "initjs.h" /* init.js */
-+
-+/**
-+ * SECTION:polkitbackendjsauthority
-+ * @title: PolkitBackendJsAuthority
-+ * @short_description: JS Authority
-+ * @stability: Unstable
-+ *
-+ * An (Duktape-based) implementation of #PolkitBackendAuthority that reads and
-+ * evaluates Javascript files and supports interaction with authentication
-+ * agents (virtue of being based on #PolkitBackendInteractiveAuthority).
-+ */
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+struct _PolkitBackendJsAuthorityPrivate
-+{
-+ gchar **rules_dirs;
-+ GFileMonitor **dir_monitors; /* NULL-terminated array of GFileMonitor instances */
-+
-+ duk_context *cx;
-+
-+ pthread_t runaway_killer_thread;
-+};
-+
-+enum
-+{
-+ RUNAWAY_KILLER_THREAD_EXIT_STATUS_UNSET,
-+ RUNAWAY_KILLER_THREAD_EXIT_STATUS_SUCCESS,
-+ RUNAWAY_KILLER_THREAD_EXIT_STATUS_FAILURE,
-+};
-+
-+static gboolean execute_script_with_runaway_killer(PolkitBackendJsAuthority *authority,
-+ const gchar *filename);
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+G_DEFINE_TYPE (PolkitBackendJsAuthority, polkit_backend_js_authority, POLKIT_BACKEND_TYPE_INTERACTIVE_AUTHORITY);
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+static duk_ret_t js_polkit_log (duk_context *cx);
-+static duk_ret_t js_polkit_spawn (duk_context *cx);
-+static duk_ret_t js_polkit_user_is_in_netgroup (duk_context *cx);
-+
-+static const duk_function_list_entry js_polkit_functions[] =
-+{
-+ { "log", js_polkit_log, 1 },
-+ { "spawn", js_polkit_spawn, 1 },
-+ { "_userIsInNetGroup", js_polkit_user_is_in_netgroup, 2 },
-+ { NULL, NULL, 0 },
-+};
-+
-+static void report_error (void *udata,
-+ const char *msg)
-+{
-+ PolkitBackendJsAuthority *authority = udata;
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "fatal Duktape JS backend error: %s",
-+ (msg ? msg : "no message"));
-+}
-+
-+static void
-+polkit_backend_js_authority_init (PolkitBackendJsAuthority *authority)
-+{
-+ authority->priv = G_TYPE_INSTANCE_GET_PRIVATE (authority,
-+ POLKIT_BACKEND_TYPE_JS_AUTHORITY,
-+ PolkitBackendJsAuthorityPrivate);
-+}
-+
-+static void
-+load_scripts (PolkitBackendJsAuthority *authority)
-+{
-+ GList *files = NULL;
-+ GList *l;
-+ guint num_scripts = 0;
-+ GError *error = NULL;
-+ guint n;
-+
-+ files = NULL;
-+
-+ for (n = 0; authority->priv->rules_dirs != NULL && authority->priv->rules_dirs[n] != NULL; n++)
-+ {
-+ const gchar *dir_name = authority->priv->rules_dirs[n];
-+ GDir *dir = NULL;
-+
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Loading rules from directory %s",
-+ dir_name);
-+
-+ dir = g_dir_open (dir_name,
-+ 0,
-+ &error);
-+ if (dir == NULL)
-+ {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error opening rules directory: %s (%s, %d)",
-+ error->message, g_quark_to_string (error->domain), error->code);
-+ g_clear_error (&error);
-+ }
-+ else
-+ {
-+ const gchar *name;
-+ while ((name = g_dir_read_name (dir)) != NULL)
-+ {
-+ if (g_str_has_suffix (name, ".rules"))
-+ files = g_list_prepend (files, g_strdup_printf ("%s/%s", dir_name, name));
-+ }
-+ g_dir_close (dir);
-+ }
-+ }
-+
-+ files = g_list_sort (files, (GCompareFunc) polkit_backend_common_rules_file_name_cmp);
-+
-+ for (l = files; l != NULL; l = l->next)
-+ {
-+ const gchar *filename = (gchar *)l->data;
-+
-+ if (!execute_script_with_runaway_killer(authority, filename))
-+ continue;
-+ num_scripts++;
-+ }
-+
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Finished loading, compiling and executing %d rules",
-+ num_scripts);
-+ g_list_free_full (files, g_free);
-+}
-+
-+void
-+polkit_backend_common_reload_scripts (PolkitBackendJsAuthority *authority)
-+{
-+ duk_context *cx = authority->priv->cx;
-+
-+ duk_set_top (cx, 0);
-+ if (!duk_get_global_string (cx, "polkit")) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error deleting old rules, not loading new ones");
-+ return;
-+ }
-+ duk_push_string (cx, "_deleteRules");
-+
-+ duk_call_prop (cx, 0, 0);
-+
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Collecting garbage unconditionally...");
-+
-+ load_scripts (authority);
-+
-+ /* Let applications know we have new rules... */
-+ g_signal_emit_by_name (authority, "changed");
-+}
-+
-+static void
-+setup_file_monitors (PolkitBackendJsAuthority *authority)
-+{
-+ guint n;
-+ GPtrArray *p;
-+
-+ p = g_ptr_array_new ();
-+ for (n = 0; authority->priv->rules_dirs != NULL && authority->priv->rules_dirs[n] != NULL; n++)
-+ {
-+ GFile *file;
-+ GError *error;
-+ GFileMonitor *monitor;
-+
-+ file = g_file_new_for_path (authority->priv->rules_dirs[n]);
-+ error = NULL;
-+ monitor = g_file_monitor_directory (file,
-+ G_FILE_MONITOR_NONE,
-+ NULL,
-+ &error);
-+ g_object_unref (file);
-+ if (monitor == NULL)
-+ {
-+ g_warning ("Error monitoring directory %s: %s",
-+ authority->priv->rules_dirs[n],
-+ error->message);
-+ g_clear_error (&error);
-+ }
-+ else
-+ {
-+ g_signal_connect (monitor,
-+ "changed",
-+ G_CALLBACK (polkit_backend_common_on_dir_monitor_changed),
-+ authority);
-+ g_ptr_array_add (p, monitor);
-+ }
-+ }
-+ g_ptr_array_add (p, NULL);
-+ authority->priv->dir_monitors = (GFileMonitor**) g_ptr_array_free (p, FALSE);
-+}
-+
-+void
-+polkit_backend_common_js_authority_constructed (GObject *object)
-+{
-+ PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
-+ duk_context *cx;
-+
-+ cx = duk_create_heap (NULL, NULL, NULL, authority, report_error);
-+ if (cx == NULL)
-+ goto fail;
-+
-+ authority->priv->cx = cx;
-+
-+ duk_push_global_object (cx);
-+ duk_push_object (cx);
-+ duk_put_function_list (cx, -1, js_polkit_functions);
-+ duk_put_prop_string (cx, -2, "polkit");
-+
-+ /* load polkit objects/functions into JS context (e.g. addRule(),
-+ * _deleteRules(), _runRules() et al)
-+ */
-+ duk_eval_string (cx, init_js);
-+
-+ if (authority->priv->rules_dirs == NULL)
-+ {
-+ authority->priv->rules_dirs = g_new0 (gchar *, 3);
-+ authority->priv->rules_dirs[0] = g_strdup (PACKAGE_SYSCONF_DIR "/polkit-1/rules.d");
-+ authority->priv->rules_dirs[1] = g_strdup (PACKAGE_DATA_DIR "/polkit-1/rules.d");
-+ }
-+
-+ setup_file_monitors (authority);
-+ load_scripts (authority);
-+
-+ G_OBJECT_CLASS (polkit_backend_js_authority_parent_class)->constructed (object);
-+ return;
-+
-+ fail:
-+ g_critical ("Error initializing JavaScript environment");
-+ g_assert_not_reached ();
-+}
-+
-+void
-+polkit_backend_common_js_authority_finalize (GObject *object)
-+{
-+ PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
-+ guint n;
-+
-+ for (n = 0; authority->priv->dir_monitors != NULL && authority->priv->dir_monitors[n] != NULL; n++)
-+ {
-+ GFileMonitor *monitor = authority->priv->dir_monitors[n];
-+ g_signal_handlers_disconnect_by_func (monitor,
-+ G_CALLBACK (polkit_backend_common_on_dir_monitor_changed),
-+ authority);
-+ g_object_unref (monitor);
-+ }
-+ g_free (authority->priv->dir_monitors);
-+ g_strfreev (authority->priv->rules_dirs);
-+
-+ duk_destroy_heap (authority->priv->cx);
-+
-+ G_OBJECT_CLASS (polkit_backend_js_authority_parent_class)->finalize (object);
-+}
-+
-+void
-+polkit_backend_common_js_authority_set_property (GObject *object,
-+ guint property_id,
-+ const GValue *value,
-+ GParamSpec *pspec)
-+{
-+ PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
-+
-+ switch (property_id)
-+ {
-+ case PROP_RULES_DIRS:
-+ g_assert (authority->priv->rules_dirs == NULL);
-+ authority->priv->rules_dirs = (gchar **) g_value_dup_boxed (value);
-+ break;
-+
-+ default:
-+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-+ break;
-+ }
-+}
-+
-+static void
-+polkit_backend_js_authority_class_init (PolkitBackendJsAuthorityClass *klass)
-+{
-+ polkit_backend_common_js_authority_class_init_common (klass);
-+ g_type_class_add_private (klass, sizeof (PolkitBackendJsAuthorityPrivate));
-+}
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+static void
-+set_property_str (duk_context *cx,
-+ const gchar *name,
-+ const gchar *value)
-+{
-+ duk_push_string (cx, value);
-+ duk_put_prop_string (cx, -2, name);
-+}
-+
-+static void
-+set_property_strv (duk_context *cx,
-+ const gchar *name,
-+ GPtrArray *value)
-+{
-+ guint n;
-+ duk_push_array (cx);
-+ for (n = 0; n < value->len; n++)
-+ {
-+ duk_push_string (cx, g_ptr_array_index (value, n));
-+ duk_put_prop_index (cx, -2, n);
-+ }
-+ duk_put_prop_string (cx, -2, name);
-+}
-+
-+static void
-+set_property_int32 (duk_context *cx,
-+ const gchar *name,
-+ gint32 value)
-+{
-+ duk_push_int (cx, value);
-+ duk_put_prop_string (cx, -2, name);
-+}
-+
-+static void
-+set_property_bool (duk_context *cx,
-+ const char *name,
-+ gboolean value)
-+{
-+ duk_push_boolean (cx, value);
-+ duk_put_prop_string (cx, -2, name);
-+}
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+static gboolean
-+push_subject (duk_context *cx,
-+ PolkitSubject *subject,
-+ PolkitIdentity *user_for_subject,
-+ gboolean subject_is_local,
-+ gboolean subject_is_active,
-+ GError **error)
-+{
-+ gboolean ret = FALSE;
-+ pid_t pid;
-+ uid_t uid;
-+ gchar *user_name = NULL;
-+ GPtrArray *groups = NULL;
-+ struct passwd *passwd;
-+ char *seat_str = NULL;
-+ char *session_str = NULL;
-+
-+ if (!duk_get_global_string (cx, "Subject")) {
-+ return FALSE;
-+ }
-+
-+ duk_new (cx, 0);
-+
-+ if (POLKIT_IS_UNIX_PROCESS (subject))
-+ {
-+ pid = polkit_unix_process_get_pid (POLKIT_UNIX_PROCESS (subject));
-+ }
-+ else if (POLKIT_IS_SYSTEM_BUS_NAME (subject))
-+ {
-+ PolkitSubject *process;
-+ process = polkit_system_bus_name_get_process_sync (POLKIT_SYSTEM_BUS_NAME (subject), NULL, error);
-+ if (process == NULL)
-+ goto out;
-+ pid = polkit_unix_process_get_pid (POLKIT_UNIX_PROCESS (process));
-+ g_object_unref (process);
-+ }
-+ else
-+ {
-+ g_assert_not_reached ();
-+ }
-+
-+#ifdef HAVE_LIBSYSTEMD
-+ if (sd_pid_get_session (pid, &session_str) == 0)
-+ {
-+ if (sd_session_get_seat (session_str, &seat_str) == 0)
-+ {
-+ /* do nothing */
-+ }
-+ }
-+#endif /* HAVE_LIBSYSTEMD */
-+
-+ g_assert (POLKIT_IS_UNIX_USER (user_for_subject));
-+ uid = polkit_unix_user_get_uid (POLKIT_UNIX_USER (user_for_subject));
-+
-+ groups = g_ptr_array_new_with_free_func (g_free);
-+
-+ passwd = getpwuid (uid);
-+ if (passwd == NULL)
-+ {
-+ user_name = g_strdup_printf ("%d", (gint) uid);
-+ g_warning ("Error looking up info for uid %d: %m", (gint) uid);
-+ }
-+ else
-+ {
-+ gid_t gids[512];
-+ int num_gids = 512;
-+
-+ user_name = g_strdup (passwd->pw_name);
-+
-+ if (getgrouplist (passwd->pw_name,
-+ passwd->pw_gid,
-+ gids,
-+ &num_gids) < 0)
-+ {
-+ g_warning ("Error looking up groups for uid %d: %m", (gint) uid);
-+ }
-+ else
-+ {
-+ gint n;
-+ for (n = 0; n < num_gids; n++)
-+ {
-+ struct group *group;
-+ group = getgrgid (gids[n]);
-+ if (group == NULL)
-+ {
-+ g_ptr_array_add (groups, g_strdup_printf ("%d", (gint) gids[n]));
-+ }
-+ else
-+ {
-+ g_ptr_array_add (groups, g_strdup (group->gr_name));
-+ }
-+ }
-+ }
-+ }
-+
-+ set_property_int32 (cx, "pid", pid);
-+ set_property_str (cx, "user", user_name);
-+ set_property_strv (cx, "groups", groups);
-+ set_property_str (cx, "seat", seat_str);
-+ set_property_str (cx, "session", session_str);
-+ set_property_bool (cx, "local", subject_is_local);
-+ set_property_bool (cx, "active", subject_is_active);
-+
-+ ret = TRUE;
-+
-+ out:
-+ free (session_str);
-+ free (seat_str);
-+ g_free (user_name);
-+ if (groups != NULL)
-+ g_ptr_array_unref (groups);
-+
-+ return ret;
-+}
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+static gboolean
-+push_action_and_details (duk_context *cx,
-+ const gchar *action_id,
-+ PolkitDetails *details,
-+ GError **error)
-+{
-+ gchar **keys;
-+ guint n;
-+
-+ if (!duk_get_global_string (cx, "Action")) {
-+ return FALSE;
-+ }
-+
-+ duk_new (cx, 0);
-+
-+ set_property_str (cx, "id", action_id);
-+
-+ keys = polkit_details_get_keys (details);
-+ for (n = 0; keys != NULL && keys[n] != NULL; n++)
-+ {
-+ gchar *key;
-+ const gchar *value;
-+ key = g_strdup_printf ("_detail_%s", keys[n]);
-+ value = polkit_details_lookup (details, keys[n]);
-+ set_property_str (cx, key, value);
-+ g_free (key);
-+ }
-+ g_strfreev (keys);
-+
-+ return TRUE;
-+}
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+typedef struct {
-+ PolkitBackendJsAuthority *authority;
-+ const gchar *filename;
-+ pthread_cond_t cond;
-+ pthread_mutex_t mutex;
-+ gint ret;
-+} RunawayKillerCtx;
-+
-+static gpointer
-+runaway_killer_thread_execute_js (gpointer user_data)
-+{
-+ RunawayKillerCtx *ctx = user_data;
-+ duk_context *cx = ctx->authority->priv->cx;
-+
-+ int oldtype, pthread_err;
-+
-+ if ((pthread_err = pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &oldtype))) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (ctx->authority),
-+ "Error setting thread cancel type: %s",
-+ strerror(pthread_err));
-+ goto err;
-+ }
-+
-+ GFile *file = g_file_new_for_path(ctx->filename);
-+ char *contents;
-+ gsize len;
-+
-+ if (!g_file_load_contents(file, NULL, &contents, &len, NULL, NULL)) {
-+ polkit_backend_authority_log(POLKIT_BACKEND_AUTHORITY(ctx->authority),
-+ "Error loading script %s", ctx->filename);
-+ g_object_unref(file);
-+ goto err;
-+ }
-+
-+ g_object_unref(file);
-+
-+ /* evaluate the script, trying to print context in any syntax errors
-+ found */
-+ if (duk_peval_lstring(cx, contents, len) != 0)
-+ {
-+ polkit_backend_authority_log(POLKIT_BACKEND_AUTHORITY(ctx->authority),
-+ "Error compiling script %s: %s", ctx->filename,
-+ duk_safe_to_string(cx, -1));
-+ duk_pop(cx);
-+ goto free_err;
-+ }
-+ g_free(contents);
-+
-+ ctx->ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_SUCCESS;
-+ goto end;
-+
-+free_err:
-+ g_free(contents);
-+err:
-+ ctx->ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_FAILURE;
-+end:
-+ if ((pthread_err = pthread_cond_signal(&ctx->cond))) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (ctx->authority),
-+ "Error signaling on condition variable: %s",
-+ strerror(pthread_err));
-+ ctx->ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_FAILURE;
-+ }
-+ return NULL;
-+}
-+
-+static gpointer
-+runaway_killer_thread_call_js (gpointer user_data)
-+{
-+ RunawayKillerCtx *ctx = user_data;
-+ duk_context *cx = ctx->authority->priv->cx;
-+ int oldtype, pthread_err;
-+
-+ if ((pthread_err = pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &oldtype))) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (ctx->authority),
-+ "Error setting thread cancel type: %s",
-+ strerror(pthread_err));
-+ goto err;
-+ }
-+
-+ if (duk_pcall_prop (cx, 0, 2) != DUK_EXEC_SUCCESS)
-+ {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (ctx->authority),
-+ "Error evaluating admin rules: ",
-+ duk_safe_to_string (cx, -1));
-+ goto err;
-+ }
-+
-+ ctx->ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_SUCCESS;
-+ goto end;
-+
-+err:
-+ ctx->ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_FAILURE;
-+end:
-+ if ((pthread_err = pthread_cond_signal(&ctx->cond))) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (ctx->authority),
-+ "Error signaling on condition variable: %s",
-+ strerror(pthread_err));
-+ ctx->ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_FAILURE;
-+ }
-+ return NULL;
-+}
-+
-+#if defined (HAVE_PTHREAD_CONDATTR_SETCLOCK)
-+# if defined(CLOCK_MONOTONIC)
-+# define PK_CLOCK CLOCK_MONOTONIC
-+# elif defined(CLOCK_BOOTTIME)
-+# define PK_CLOCK CLOCK_BOOTTIME
-+# else
-+ /* No suitable clock */
-+# undef HAVE_PTHREAD_CONDATTR_SETCLOCK
-+# define PK_CLOCK CLOCK_REALTIME
-+# endif
-+#else /* ! HAVE_PTHREAD_CONDATTR_SETCLOCK */
-+# define PK_CLOCK CLOCK_REALTIME
-+#endif /* ! HAVE_PTHREAD_CONDATTR_SETCLOCK */
-+
-+static gboolean
-+runaway_killer_common(PolkitBackendJsAuthority *authority, RunawayKillerCtx *ctx, void *js_context_cb (void *user_data))
-+{
-+ int pthread_err;
-+ gboolean cancel = FALSE;
-+ pthread_condattr_t attr;
-+ struct timespec abs_time;
-+
-+#ifdef HAVE_PTHREAD_CONDATTR_SETCLOCK
-+ if ((pthread_err = pthread_condattr_init(&attr))) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error initializing condition variable attributes: %s",
-+ strerror(pthread_err));
-+ return FALSE;
-+ }
-+ if ((pthread_err = pthread_condattr_setclock(&attr, PK_CLOCK))) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error setting condition variable attributes: %s",
-+ strerror(pthread_err));
-+ goto err_clean_condattr;
-+ }
-+ /* Init again, with needed attr */
-+ if ((pthread_err = pthread_cond_init(&ctx->cond, &attr))) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error initializing condition variable: %s",
-+ strerror(pthread_err));
-+ goto err_clean_condattr;
-+ }
-+#endif
-+
-+ if ((pthread_err = pthread_mutex_lock(&ctx->mutex))) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error locking mutex: %s",
-+ strerror(pthread_err));
-+ goto err_clean_cond;
-+ }
-+
-+ if (clock_gettime(PK_CLOCK, &abs_time)) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error getting system's monotonic time: %s",
-+ strerror(errno));
-+ goto err_clean_cond;
-+ }
-+ abs_time.tv_sec += RUNAWAY_KILLER_TIMEOUT;
-+
-+ if ((pthread_err = pthread_create(&authority->priv->runaway_killer_thread, NULL,
-+ js_context_cb, ctx))) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error creating runaway JS killer thread: %s",
-+ strerror(pthread_err));
-+ goto err_clean_cond;
-+ }
-+
-+ while (ctx->ret == RUNAWAY_KILLER_THREAD_EXIT_STATUS_UNSET) /* loop to treat spurious wakeups */
-+ if (pthread_cond_timedwait(&ctx->cond, &ctx->mutex, &abs_time) == ETIMEDOUT) {
-+ cancel = TRUE;
-+
-+ /* Log that we are terminating the script */
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Terminating runaway script after %d seconds",
-+ RUNAWAY_KILLER_TIMEOUT);
-+
-+ break;
-+ }
-+
-+ if ((pthread_err = pthread_mutex_unlock(&ctx->mutex))) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error unlocking mutex: %s",
-+ strerror(pthread_err));
-+ goto err_clean_cond;
-+ }
-+
-+ if (cancel) {
-+ if ((pthread_err = pthread_cancel (authority->priv->runaway_killer_thread))) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error cancelling runaway JS killer thread: %s",
-+ strerror(pthread_err));
-+ goto err_clean_cond;
-+ }
-+ }
-+ if ((pthread_err = pthread_join (authority->priv->runaway_killer_thread, NULL))) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error joining runaway JS killer thread: %s",
-+ strerror(pthread_err));
-+ goto err_clean_cond;
-+ }
-+
-+ return ctx->ret == RUNAWAY_KILLER_THREAD_EXIT_STATUS_SUCCESS;
-+
-+ err_clean_cond:
-+#ifdef HAVE_PTHREAD_CONDATTR_SETCLOCK
-+ pthread_cond_destroy(&ctx->cond);
-+#endif
-+ err_clean_condattr:
-+#ifdef HAVE_PTHREAD_CONDATTR_SETCLOCK
-+ pthread_condattr_destroy(&attr);
-+#endif
-+ return FALSE;
-+}
-+
-+/* Blocking for at most RUNAWAY_KILLER_TIMEOUT */
-+static gboolean
-+execute_script_with_runaway_killer(PolkitBackendJsAuthority *authority,
-+ const gchar *filename)
-+{
-+ RunawayKillerCtx ctx = {.authority = authority, .filename = filename,
-+ .ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_UNSET,
-+ .mutex = PTHREAD_MUTEX_INITIALIZER,
-+ .cond = PTHREAD_COND_INITIALIZER};
-+
-+ return runaway_killer_common(authority, &ctx, &runaway_killer_thread_execute_js);
-+}
-+
-+/* Calls already stacked function and args. Blocking for at most
-+ * RUNAWAY_KILLER_TIMEOUT. If timeout is the case, ctx.ret will be
-+ * RUNAWAY_KILLER_THREAD_EXIT_STATUS_UNSET, thus returning FALSE.
-+ */
-+static gboolean
-+call_js_function_with_runaway_killer(PolkitBackendJsAuthority *authority)
-+{
-+ RunawayKillerCtx ctx = {.authority = authority,
-+ .ret = RUNAWAY_KILLER_THREAD_EXIT_STATUS_UNSET,
-+ .mutex = PTHREAD_MUTEX_INITIALIZER,
-+ .cond = PTHREAD_COND_INITIALIZER};
-+
-+ return runaway_killer_common(authority, &ctx, &runaway_killer_thread_call_js);
-+}
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+GList *
-+polkit_backend_common_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *_authority,
-+ PolkitSubject *caller,
-+ PolkitSubject *subject,
-+ PolkitIdentity *user_for_subject,
-+ gboolean subject_is_local,
-+ gboolean subject_is_active,
-+ const gchar *action_id,
-+ PolkitDetails *details)
-+{
-+ PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (_authority);
-+ GList *ret = NULL;
-+ guint n;
-+ GError *error = NULL;
-+ const char *ret_str = NULL;
-+ gchar **ret_strs = NULL;
-+ duk_context *cx = authority->priv->cx;
-+
-+ duk_set_top (cx, 0);
-+ if (!duk_get_global_string (cx, "polkit")) {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error deleting old rules, not loading new ones");
-+ goto out;
-+ }
-+
-+ duk_push_string (cx, "_runAdminRules");
-+
-+ if (!push_action_and_details (cx, action_id, details, &error))
-+ {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error converting action and details to JS object: %s",
-+ error->message);
-+ g_clear_error (&error);
-+ goto out;
-+ }
-+
-+ if (!push_subject (cx, subject, user_for_subject, subject_is_local, subject_is_active, &error))
-+ {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error converting subject to JS object: %s",
-+ error->message);
-+ g_clear_error (&error);
-+ goto out;
-+ }
-+
-+ if (!call_js_function_with_runaway_killer (authority))
-+ goto out;
-+
-+ ret_str = duk_require_string (cx, -1);
-+
-+ ret_strs = g_strsplit (ret_str, ",", -1);
-+ for (n = 0; ret_strs != NULL && ret_strs[n] != NULL; n++)
-+ {
-+ const gchar *identity_str = ret_strs[n];
-+ PolkitIdentity *identity;
-+
-+ error = NULL;
-+ identity = polkit_identity_from_string (identity_str, &error);
-+ if (identity == NULL)
-+ {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Identity `%s' is not valid, ignoring: %s",
-+ identity_str, error->message);
-+ g_clear_error (&error);
-+ }
-+ else
-+ {
-+ ret = g_list_prepend (ret, identity);
-+ }
-+ }
-+ ret = g_list_reverse (ret);
-+
-+ out:
-+ g_strfreev (ret_strs);
-+ /* fallback to root password auth */
-+ if (ret == NULL)
-+ ret = g_list_prepend (ret, polkit_unix_user_new (0));
-+
-+ return ret;
-+}
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+PolkitImplicitAuthorization
-+polkit_backend_common_js_authority_check_authorization_sync (PolkitBackendInteractiveAuthority *_authority,
-+ PolkitSubject *caller,
-+ PolkitSubject *subject,
-+ PolkitIdentity *user_for_subject,
-+ gboolean subject_is_local,
-+ gboolean subject_is_active,
-+ const gchar *action_id,
-+ PolkitDetails *details,
-+ PolkitImplicitAuthorization implicit)
-+{
-+ PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (_authority);
-+ PolkitImplicitAuthorization ret = implicit;
-+ GError *error = NULL;
-+ gchar *ret_str = NULL;
-+ gboolean good = FALSE;
-+ duk_context *cx = authority->priv->cx;
-+
-+ duk_set_top (cx, 0);
-+ if (!duk_get_global_string (cx, "polkit")) {
-+ goto out;
-+ }
-+
-+ duk_push_string (cx, "_runRules");
-+
-+ if (!push_action_and_details (cx, action_id, details, &error))
-+ {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error converting action and details to JS object: %s",
-+ error->message);
-+ g_clear_error (&error);
-+ goto out;
-+ }
-+
-+ if (!push_subject (cx, subject, user_for_subject, subject_is_local, subject_is_active, &error))
-+ {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Error converting subject to JS object: %s",
-+ error->message);
-+ g_clear_error (&error);
-+ goto out;
-+ }
-+
-+ // If any error is the js context happened (ctx.ret ==
-+ // RUNAWAY_KILLER_THREAD_EXIT_STATUS_FAILURE) or it never properly returned
-+ // (runaway scripts or ctx.ret == RUNAWAY_KILLER_THREAD_EXIT_STATUS_UNSET),
-+ // unauthorize
-+ if (!call_js_function_with_runaway_killer (authority))
-+ goto out;
-+
-+ if (duk_is_null(cx, -1)) {
-+ /* this is fine, means there was no match, use implicit authorizations */
-+ good = TRUE;
-+ goto out;
-+ }
-+ ret_str = g_strdup (duk_require_string (cx, -1));
-+ if (!polkit_implicit_authorization_from_string (ret_str, &ret))
-+ {
-+ polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-+ "Returned result `%s' is not valid",
-+ ret_str);
-+ goto out;
-+ }
-+
-+ good = TRUE;
-+
-+ out:
-+ if (!good)
-+ ret = POLKIT_IMPLICIT_AUTHORIZATION_NOT_AUTHORIZED;
-+ if (ret_str != NULL)
-+ g_free (ret_str);
-+
-+ return ret;
-+}
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+static duk_ret_t
-+js_polkit_log (duk_context *cx)
-+{
-+ const char *str = duk_require_string (cx, 0);
-+ fprintf (stderr, "%s\n", str);
-+ return 0;
-+}
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+static duk_ret_t
-+js_polkit_spawn (duk_context *cx)
-+{
-+ duk_ret_t ret = DUK_RET_ERROR;
-+ gchar *standard_output = NULL;
-+ gchar *standard_error = NULL;
-+ gint exit_status;
-+ GError *error = NULL;
-+ guint32 array_len;
-+ gchar **argv = NULL;
-+ GMainContext *context = NULL;
-+ GMainLoop *loop = NULL;
-+ SpawnData data = {0};
-+ char *err_str = NULL;
-+ guint n;
-+
-+ if (!duk_is_array (cx, 0))
-+ goto out;
-+
-+ array_len = duk_get_length (cx, 0);
-+
-+ argv = g_new0 (gchar*, array_len + 1);
-+ for (n = 0; n < array_len; n++)
-+ {
-+ duk_get_prop_index (cx, 0, n);
-+ argv[n] = g_strdup (duk_to_string (cx, -1));
-+ duk_pop (cx);
-+ }
-+
-+ context = g_main_context_new ();
-+ loop = g_main_loop_new (context, FALSE);
-+
-+ g_main_context_push_thread_default (context);
-+
-+ data.loop = loop;
-+ polkit_backend_common_spawn ((const gchar *const *) argv,
-+ 10, /* timeout_seconds */
-+ NULL, /* cancellable */
-+ polkit_backend_common_spawn_cb,
-+ &data);
-+
-+ g_main_loop_run (loop);
-+
-+ g_main_context_pop_thread_default (context);
-+
-+ if (!polkit_backend_common_spawn_finish (data.res,
-+ &exit_status,
-+ &standard_output,
-+ &standard_error,
-+ &error))
-+ {
-+ err_str = g_strdup_printf ("Error spawning helper: %s (%s, %d)",
-+ error->message, g_quark_to_string (error->domain), error->code);
-+ g_clear_error (&error);
-+ goto out;
-+ }
-+
-+ if (!(WIFEXITED (exit_status) && WEXITSTATUS (exit_status) == 0))
-+ {
-+ GString *gstr;
-+ gstr = g_string_new (NULL);
-+ if (WIFEXITED (exit_status))
-+ {
-+ g_string_append_printf (gstr,
-+ "Helper exited with non-zero exit status %d",
-+ WEXITSTATUS (exit_status));
-+ }
-+ else if (WIFSIGNALED (exit_status))
-+ {
-+ g_string_append_printf (gstr,
-+ "Helper was signaled with signal %s (%d)",
-+ polkit_backend_common_get_signal_name (WTERMSIG (exit_status)),
-+ WTERMSIG (exit_status));
-+ }
-+ g_string_append_printf (gstr, ", stdout=`%s', stderr=`%s'",
-+ standard_output, standard_error);
-+ err_str = g_string_free (gstr, FALSE);
-+ goto out;
-+ }
-+
-+ duk_push_string (cx, standard_output);
-+ ret = 1;
-+
-+ out:
-+ g_strfreev (argv);
-+ g_free (standard_output);
-+ g_free (standard_error);
-+ g_clear_object (&data.res);
-+ if (loop != NULL)
-+ g_main_loop_unref (loop);
-+ if (context != NULL)
-+ g_main_context_unref (context);
-+
-+ if (err_str)
-+ duk_error (cx, DUK_ERR_ERROR, err_str);
-+
-+ return ret;
-+}
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+
-+static duk_ret_t
-+js_polkit_user_is_in_netgroup (duk_context *cx)
-+{
-+ const char *user;
-+ const char *netgroup;
-+ gboolean is_in_netgroup = FALSE;
-+
-+ user = duk_require_string (cx, 0);
-+ netgroup = duk_require_string (cx, 1);
-+
-+ if (innetgr (netgroup,
-+ NULL, /* host */
-+ user,
-+ NULL)) /* domain */
-+ {
-+ is_in_netgroup = TRUE;
-+ }
-+
-+ duk_push_boolean (cx, is_in_netgroup);
-+ return 1;
-+}
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp
-index ca17108..11e91c0 100644
---- a/src/polkitbackend/polkitbackendjsauthority.cpp
-+++ b/src/polkitbackend/polkitbackendjsauthority.cpp
-@@ -19,29 +19,7 @@
- * Author: David Zeuthen <davidz@redhat.com>
- */
-
--#include "config.h"
--#include <sys/wait.h>
--#include <errno.h>
--#include <pwd.h>
--#include <grp.h>
--#ifdef HAVE_NETGROUP_H
--#include <netgroup.h>
--#else
--#include <netdb.h>
--#endif
--#include <string.h>
--#include <glib/gstdio.h>
--#include <locale.h>
--#include <glib/gi18n-lib.h>
--
--#include <polkit/polkit.h>
--#include "polkitbackendjsauthority.h"
--
--#include <polkit/polkitprivate.h>
--
--#ifdef HAVE_LIBSYSTEMD
--#include <systemd/sd-login.h>
--#endif /* HAVE_LIBSYSTEMD */
-+#include "polkitbackendcommon.h"
-
- #include <js/CompilationAndEvaluation.h>
- #include <js/ContextOptions.h>
-@@ -52,6 +30,7 @@
- #include <js/Array.h>
- #include <jsapi.h>
-
-+/* Built source and not too big to worry about deduplication */
- #include "initjs.h" /* init.js */
-
- #ifdef JSGC_USE_EXACT_ROOTING
-@@ -67,10 +46,9 @@
- * @short_description: JS Authority
- * @stability: Unstable
- *
-- * An implementation of #PolkitBackendAuthority that reads and
-- * evalates Javascript files and supports interaction with
-- * authentication agents (virtue of being based on
-- * #PolkitBackendInteractiveAuthority).
-+ * An (SpiderMonkey-based) implementation of #PolkitBackendAuthority that reads
-+ * and evaluates Javascript files and supports interaction with authentication
-+ * agents (virtue of being based on #PolkitBackendInteractiveAuthority).
- */
-
- /* ---------------------------------------------------------------------------------------------------- */
-@@ -100,57 +78,11 @@ static bool execute_script_with_runaway_killer (PolkitBackendJsAuthority *author
- JS::HandleScript script,
- JS::MutableHandleValue rval);
-
--static void utils_spawn (const gchar *const *argv,
-- guint timeout_seconds,
-- GCancellable *cancellable,
-- GAsyncReadyCallback callback,
-- gpointer user_data);
--
--gboolean utils_spawn_finish (GAsyncResult *res,
-- gint *out_exit_status,
-- gchar **out_standard_output,
-- gchar **out_standard_error,
-- GError **error);
--
--static void on_dir_monitor_changed (GFileMonitor *monitor,
-- GFile *file,
-- GFile *other_file,
-- GFileMonitorEvent event_type,
-- gpointer user_data);
--
--/* ---------------------------------------------------------------------------------------------------- */
--
--enum
--{
-- PROP_0,
-- PROP_RULES_DIRS,
--};
--
- /* ---------------------------------------------------------------------------------------------------- */
-
- static gpointer runaway_killer_thread_func (gpointer user_data);
- static void runaway_killer_terminate (PolkitBackendJsAuthority *authority);
-
--static GList *polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *authority,
-- PolkitSubject *caller,
-- PolkitSubject *subject,
-- PolkitIdentity *user_for_subject,
-- gboolean subject_is_local,
-- gboolean subject_is_active,
-- const gchar *action_id,
-- PolkitDetails *details);
--
--static PolkitImplicitAuthorization polkit_backend_js_authority_check_authorization_sync (
-- PolkitBackendInteractiveAuthority *authority,
-- PolkitSubject *caller,
-- PolkitSubject *subject,
-- PolkitIdentity *user_for_subject,
-- gboolean subject_is_local,
-- gboolean subject_is_active,
-- const gchar *action_id,
-- PolkitDetails *details,
-- PolkitImplicitAuthorization implicit);
--
- G_DEFINE_TYPE (PolkitBackendJsAuthority, polkit_backend_js_authority, POLKIT_BACKEND_TYPE_INTERACTIVE_AUTHORITY);
-
- /* ---------------------------------------------------------------------------------------------------- */
-@@ -229,33 +161,6 @@ polkit_backend_js_authority_init (PolkitBackendJsAuthority *authority)
- PolkitBackendJsAuthorityPrivate);
- }
-
--static gint
--rules_file_name_cmp (const gchar *a,
-- const gchar *b)
--{
-- gint ret;
-- const gchar *a_base;
-- const gchar *b_base;
--
-- a_base = strrchr (a, '/');
-- b_base = strrchr (b, '/');
--
-- g_assert (a_base != NULL);
-- g_assert (b_base != NULL);
-- a_base += 1;
-- b_base += 1;
--
-- ret = g_strcmp0 (a_base, b_base);
-- if (ret == 0)
-- {
-- /* /etc wins over /usr */
-- ret = g_strcmp0 (a, b);
-- g_assert (ret != 0);
-- }
--
-- return ret;
--}
--
- /* authority->priv->cx must be within a request */
- static void
- load_scripts (PolkitBackendJsAuthority *authority)
-@@ -299,7 +204,7 @@ load_scripts (PolkitBackendJsAuthority *authority)
- }
- }
-
-- files = g_list_sort (files, (GCompareFunc) rules_file_name_cmp);
-+ files = g_list_sort (files, (GCompareFunc) polkit_backend_common_rules_file_name_cmp);
-
- for (l = files; l != NULL; l = l->next)
- {
-@@ -365,8 +270,8 @@ load_scripts (PolkitBackendJsAuthority *authority)
- g_list_free_full (files, g_free);
- }
-
--static void
--reload_scripts (PolkitBackendJsAuthority *authority)
-+void
-+polkit_backend_common_reload_scripts (PolkitBackendJsAuthority *authority)
- {
- JS::RootedValueArray<1> args(authority->priv->cx);
- JS::RootedValue rval(authority->priv->cx);
-@@ -395,42 +300,6 @@ reload_scripts (PolkitBackendJsAuthority *authority)
- g_signal_emit_by_name (authority, "changed");
- }
-
--static void
--on_dir_monitor_changed (GFileMonitor *monitor,
-- GFile *file,
-- GFile *other_file,
-- GFileMonitorEvent event_type,
-- gpointer user_data)
--{
-- PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (user_data);
--
-- /* TODO: maybe rate-limit so storms of events are collapsed into one with a 500ms resolution?
-- * Because when editing a file with emacs we get 4-8 events..
-- */
--
-- if (file != NULL)
-- {
-- gchar *name;
--
-- name = g_file_get_basename (file);
--
-- /* g_print ("event_type=%d file=%p name=%s\n", event_type, file, name); */
-- if (!g_str_has_prefix (name, ".") &&
-- !g_str_has_prefix (name, "#") &&
-- g_str_has_suffix (name, ".rules") &&
-- (event_type == G_FILE_MONITOR_EVENT_CREATED ||
-- event_type == G_FILE_MONITOR_EVENT_DELETED ||
-- event_type == G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT))
-- {
-- polkit_backend_authority_log (POLKIT_BACKEND_AUTHORITY (authority),
-- "Reloading rules");
-- reload_scripts (authority);
-- }
-- g_free (name);
-- }
--}
--
--
- static void
- setup_file_monitors (PolkitBackendJsAuthority *authority)
- {
-@@ -462,7 +331,7 @@ setup_file_monitors (PolkitBackendJsAuthority *authority)
- {
- g_signal_connect (monitor,
- "changed",
-- G_CALLBACK (on_dir_monitor_changed),
-+ G_CALLBACK (polkit_backend_common_on_dir_monitor_changed),
- authority);
- g_ptr_array_add (p, monitor);
- }
-@@ -471,8 +340,8 @@ setup_file_monitors (PolkitBackendJsAuthority *authority)
- authority->priv->dir_monitors = (GFileMonitor**) g_ptr_array_free (p, FALSE);
- }
-
--static void
--polkit_backend_js_authority_constructed (GObject *object)
-+void
-+polkit_backend_common_js_authority_constructed (GObject *object)
- {
- PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
-
-@@ -561,8 +430,8 @@ polkit_backend_js_authority_constructed (GObject *object)
- g_assert_not_reached ();
- }
-
--static void
--polkit_backend_js_authority_finalize (GObject *object)
-+void
-+polkit_backend_common_js_authority_finalize (GObject *object)
- {
- PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
- guint n;
-@@ -577,7 +446,7 @@ polkit_backend_js_authority_finalize (GObject *object)
- {
- GFileMonitor *monitor = authority->priv->dir_monitors[n];
- g_signal_handlers_disconnect_by_func (monitor,
-- (gpointer*)G_CALLBACK (on_dir_monitor_changed),
-+ (gpointer*)G_CALLBACK (polkit_backend_common_on_dir_monitor_changed),
- authority);
- g_object_unref (monitor);
- }
-@@ -594,11 +463,11 @@ polkit_backend_js_authority_finalize (GObject *object)
- G_OBJECT_CLASS (polkit_backend_js_authority_parent_class)->finalize (object);
- }
-
--static void
--polkit_backend_js_authority_set_property (GObject *object,
-- guint property_id,
-- const GValue *value,
-- GParamSpec *pspec)
-+void
-+polkit_backend_common_js_authority_set_property (GObject *object,
-+ guint property_id,
-+ const GValue *value,
-+ GParamSpec *pspec)
- {
- PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (object);
-
-@@ -615,57 +484,12 @@ polkit_backend_js_authority_set_property (GObject *object,
- }
- }
-
--static const gchar *
--polkit_backend_js_authority_get_name (PolkitBackendAuthority *authority)
--{
-- return "js";
--}
--
--static const gchar *
--polkit_backend_js_authority_get_version (PolkitBackendAuthority *authority)
--{
-- return PACKAGE_VERSION;
--}
--
--static PolkitAuthorityFeatures
--polkit_backend_js_authority_get_features (PolkitBackendAuthority *authority)
--{
-- return POLKIT_AUTHORITY_FEATURES_TEMPORARY_AUTHORIZATION;
--}
--
- static void
- polkit_backend_js_authority_class_init (PolkitBackendJsAuthorityClass *klass)
- {
-- GObjectClass *gobject_class;
-- PolkitBackendAuthorityClass *authority_class;
-- PolkitBackendInteractiveAuthorityClass *interactive_authority_class;
--
--
-- gobject_class = G_OBJECT_CLASS (klass);
-- gobject_class->finalize = polkit_backend_js_authority_finalize;
-- gobject_class->set_property = polkit_backend_js_authority_set_property;
-- gobject_class->constructed = polkit_backend_js_authority_constructed;
--
-- authority_class = POLKIT_BACKEND_AUTHORITY_CLASS (klass);
-- authority_class->get_name = polkit_backend_js_authority_get_name;
-- authority_class->get_version = polkit_backend_js_authority_get_version;
-- authority_class->get_features = polkit_backend_js_authority_get_features;
--
-- interactive_authority_class = POLKIT_BACKEND_INTERACTIVE_AUTHORITY_CLASS (klass);
-- interactive_authority_class->get_admin_identities = polkit_backend_js_authority_get_admin_auth_identities;
-- interactive_authority_class->check_authorization_sync = polkit_backend_js_authority_check_authorization_sync;
--
-- g_object_class_install_property (gobject_class,
-- PROP_RULES_DIRS,
-- g_param_spec_boxed ("rules-dirs",
-- NULL,
-- NULL,
-- G_TYPE_STRV,
-- GParamFlags(G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE)));
--
-+ polkit_backend_common_js_authority_class_init_common (klass);
-
- g_type_class_add_private (klass, sizeof (PolkitBackendJsAuthorityPrivate));
--
- JS_Init ();
- }
-
-@@ -1005,11 +829,14 @@ runaway_killer_setup (PolkitBackendJsAuthority *authority)
- {
- g_assert (authority->priv->rkt_source == NULL);
-
-- /* set-up timer for runaway scripts, will be executed in runaway_killer_thread */
-+ /* set-up timer for runaway scripts, will be executed in
-+ runaway_killer_thread, that is one, permanent thread running a glib
-+ mainloop (rkt_loop) whose context (rkt_context) has a timeout source
-+ (rkt_source) */
- g_mutex_lock (&authority->priv->rkt_timeout_pending_mutex);
- authority->priv->rkt_timeout_pending = FALSE;
- g_mutex_unlock (&authority->priv->rkt_timeout_pending_mutex);
-- authority->priv->rkt_source = g_timeout_source_new_seconds (15);
-+ authority->priv->rkt_source = g_timeout_source_new_seconds (RUNAWAY_KILLER_TIMEOUT);
- g_source_set_callback (authority->priv->rkt_source, rkt_on_timeout, authority, NULL);
- g_source_attach (authority->priv->rkt_source, authority->priv->rkt_context);
-
-@@ -1069,6 +896,9 @@ execute_script_with_runaway_killer (PolkitBackendJsAuthority *authority,
- {
- bool ret;
-
-+ // tries to JS_ExecuteScript(), may hang for > RUNAWAY_KILLER_TIMEOUT,
-+ // runaway_killer_thread makes sure the call returns, due to exception
-+ // injection
- runaway_killer_setup (authority);
- ret = JS_ExecuteScript (authority->priv->cx,
- script,
-@@ -1099,15 +929,15 @@ call_js_function_with_runaway_killer (PolkitBackendJsAuthority *authority,
-
- /* ---------------------------------------------------------------------------------------------------- */
-
--static GList *
--polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *_authority,
-- PolkitSubject *caller,
-- PolkitSubject *subject,
-- PolkitIdentity *user_for_subject,
-- gboolean subject_is_local,
-- gboolean subject_is_active,
-- const gchar *action_id,
-- PolkitDetails *details)
-+GList *
-+polkit_backend_common_js_authority_get_admin_auth_identities (PolkitBackendInteractiveAuthority *_authority,
-+ PolkitSubject *caller,
-+ PolkitSubject *subject,
-+ PolkitIdentity *user_for_subject,
-+ gboolean subject_is_local,
-+ gboolean subject_is_active,
-+ const gchar *action_id,
-+ PolkitDetails *details)
- {
- PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (_authority);
- GList *ret = NULL;
-@@ -1202,16 +1032,16 @@ polkit_backend_js_authority_get_admin_auth_identities (PolkitBackendInteractiveA
-
- /* ---------------------------------------------------------------------------------------------------- */
-
--static PolkitImplicitAuthorization
--polkit_backend_js_authority_check_authorization_sync (PolkitBackendInteractiveAuthority *_authority,
-- PolkitSubject *caller,
-- PolkitSubject *subject,
-- PolkitIdentity *user_for_subject,
-- gboolean subject_is_local,
-- gboolean subject_is_active,
-- const gchar *action_id,
-- PolkitDetails *details,
-- PolkitImplicitAuthorization implicit)
-+PolkitImplicitAuthorization
-+polkit_backend_common_js_authority_check_authorization_sync (PolkitBackendInteractiveAuthority *_authority,
-+ PolkitSubject *caller,
-+ PolkitSubject *subject,
-+ PolkitIdentity *user_for_subject,
-+ gboolean subject_is_local,
-+ gboolean subject_is_active,
-+ const gchar *action_id,
-+ PolkitDetails *details,
-+ PolkitImplicitAuthorization implicit)
- {
- PolkitBackendJsAuthority *authority = POLKIT_BACKEND_JS_AUTHORITY (_authority);
- PolkitImplicitAuthorization ret = implicit;
-@@ -1324,65 +1154,6 @@ js_polkit_log (JSContext *cx,
-
- /* ---------------------------------------------------------------------------------------------------- */
-
--static const gchar *
--get_signal_name (gint signal_number)
--{
-- switch (signal_number)
-- {
--#define _HANDLE_SIG(sig) case sig: return #sig;
-- _HANDLE_SIG (SIGHUP);
-- _HANDLE_SIG (SIGINT);
-- _HANDLE_SIG (SIGQUIT);
-- _HANDLE_SIG (SIGILL);
-- _HANDLE_SIG (SIGABRT);
-- _HANDLE_SIG (SIGFPE);
-- _HANDLE_SIG (SIGKILL);
-- _HANDLE_SIG (SIGSEGV);
-- _HANDLE_SIG (SIGPIPE);
-- _HANDLE_SIG (SIGALRM);
-- _HANDLE_SIG (SIGTERM);
-- _HANDLE_SIG (SIGUSR1);
-- _HANDLE_SIG (SIGUSR2);
-- _HANDLE_SIG (SIGCHLD);
-- _HANDLE_SIG (SIGCONT);
-- _HANDLE_SIG (SIGSTOP);
-- _HANDLE_SIG (SIGTSTP);
-- _HANDLE_SIG (SIGTTIN);
-- _HANDLE_SIG (SIGTTOU);
-- _HANDLE_SIG (SIGBUS);
--#ifdef SIGPOLL
-- _HANDLE_SIG (SIGPOLL);
--#endif
-- _HANDLE_SIG (SIGPROF);
-- _HANDLE_SIG (SIGSYS);
-- _HANDLE_SIG (SIGTRAP);
-- _HANDLE_SIG (SIGURG);
-- _HANDLE_SIG (SIGVTALRM);
-- _HANDLE_SIG (SIGXCPU);
-- _HANDLE_SIG (SIGXFSZ);
--#undef _HANDLE_SIG
-- default:
-- break;
-- }
-- return "UNKNOWN_SIGNAL";
--}
--
--typedef struct
--{
-- GMainLoop *loop;
-- GAsyncResult *res;
--} SpawnData;
--
--static void
--spawn_cb (GObject *source_object,
-- GAsyncResult *res,
-- gpointer user_data)
--{
-- SpawnData *data = (SpawnData *)user_data;
-- data->res = (GAsyncResult*)g_object_ref (res);
-- g_main_loop_quit (data->loop);
--}
--
- static bool
- js_polkit_spawn (JSContext *cx,
- unsigned js_argc,
-@@ -1440,21 +1211,21 @@ js_polkit_spawn (JSContext *cx,
- g_main_context_push_thread_default (context);
-
- data.loop = loop;
-- utils_spawn ((const gchar *const *) argv,
-- 10, /* timeout_seconds */
-- NULL, /* cancellable */
-- spawn_cb,
-- &data);
-+ polkit_backend_common_spawn ((const gchar *const *) argv,
-+ 10, /* timeout_seconds */
-+ NULL, /* cancellable */
-+ polkit_backend_common_spawn_cb,
-+ &data);
-
- g_main_loop_run (loop);
-
- g_main_context_pop_thread_default (context);
-
-- if (!utils_spawn_finish (data.res,
-- &exit_status,
-- &standard_output,
-- &standard_error,
-- &error))
-+ if (!polkit_backend_common_spawn_finish (data.res,
-+ &exit_status,
-+ &standard_output,
-+ &standard_error,
-+ &error))
- {
- JS_ReportErrorUTF8 (cx,
- "Error spawning helper: %s (%s, %d)",
-@@ -1477,7 +1248,7 @@ js_polkit_spawn (JSContext *cx,
- {
- g_string_append_printf (gstr,
- "Helper was signaled with signal %s (%d)",
-- get_signal_name (WTERMSIG (exit_status)),
-+ polkit_backend_common_get_signal_name (WTERMSIG (exit_status)),
- WTERMSIG (exit_status));
- }
- g_string_append_printf (gstr, ", stdout=`%s', stderr=`%s'",
-@@ -1542,381 +1313,5 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
- return ret;
- }
-
--
--
- /* ---------------------------------------------------------------------------------------------------- */
-
--typedef struct
--{
-- GSimpleAsyncResult *simple; /* borrowed reference */
-- GMainContext *main_context; /* may be NULL */
--
-- GCancellable *cancellable; /* may be NULL */
-- gulong cancellable_handler_id;
--
-- GPid child_pid;
-- gint child_stdout_fd;
-- gint child_stderr_fd;
--
-- GIOChannel *child_stdout_channel;
-- GIOChannel *child_stderr_channel;
--
-- GSource *child_watch_source;
-- GSource *child_stdout_source;
-- GSource *child_stderr_source;
--
-- guint timeout_seconds;
-- gboolean timed_out;
-- GSource *timeout_source;
--
-- GString *child_stdout;
-- GString *child_stderr;
--
-- gint exit_status;
--} UtilsSpawnData;
--
--static void
--utils_child_watch_from_release_cb (GPid pid,
-- gint status,
-- gpointer user_data)
--{
--}
--
--static void
--utils_spawn_data_free (UtilsSpawnData *data)
--{
-- if (data->timeout_source != NULL)
-- {
-- g_source_destroy (data->timeout_source);
-- data->timeout_source = NULL;
-- }
--
-- /* Nuke the child, if necessary */
-- if (data->child_watch_source != NULL)
-- {
-- g_source_destroy (data->child_watch_source);
-- data->child_watch_source = NULL;
-- }
--
-- if (data->child_pid != 0)
-- {
-- GSource *source;
-- kill (data->child_pid, SIGTERM);
-- /* OK, we need to reap for the child ourselves - we don't want
-- * to use waitpid() because that might block the calling
-- * thread (the child might handle SIGTERM and use several
-- * seconds for cleanup/rollback).
-- *
-- * So we use GChildWatch instead.
-- *
-- * Avoid taking a references to ourselves. but note that we need
-- * to pass the GSource so we can nuke it once handled.
-- */
-- source = g_child_watch_source_new (data->child_pid);
-- g_source_set_callback (source,
-- (GSourceFunc) utils_child_watch_from_release_cb,
-- source,
-- (GDestroyNotify) g_source_destroy);
-- /* attach source to the global default main context */
-- g_source_attach (source, NULL);
-- g_source_unref (source);
-- data->child_pid = 0;
-- }
--
-- if (data->child_stdout != NULL)
-- {
-- g_string_free (data->child_stdout, TRUE);
-- data->child_stdout = NULL;
-- }
--
-- if (data->child_stderr != NULL)
-- {
-- g_string_free (data->child_stderr, TRUE);
-- data->child_stderr = NULL;
-- }
--
-- if (data->child_stdout_channel != NULL)
-- {
-- g_io_channel_unref (data->child_stdout_channel);
-- data->child_stdout_channel = NULL;
-- }
-- if (data->child_stderr_channel != NULL)
-- {
-- g_io_channel_unref (data->child_stderr_channel);
-- data->child_stderr_channel = NULL;
-- }
--
-- if (data->child_stdout_source != NULL)
-- {
-- g_source_destroy (data->child_stdout_source);
-- data->child_stdout_source = NULL;
-- }
-- if (data->child_stderr_source != NULL)
-- {
-- g_source_destroy (data->child_stderr_source);
-- data->child_stderr_source = NULL;
-- }
--
-- if (data->child_stdout_fd != -1)
-- {
-- g_warn_if_fail (close (data->child_stdout_fd) == 0);
-- data->child_stdout_fd = -1;
-- }
-- if (data->child_stderr_fd != -1)
-- {
-- g_warn_if_fail (close (data->child_stderr_fd) == 0);
-- data->child_stderr_fd = -1;
-- }
--
-- if (data->cancellable_handler_id > 0)
-- {
-- g_cancellable_disconnect (data->cancellable, data->cancellable_handler_id);
-- data->cancellable_handler_id = 0;
-- }
--
-- if (data->main_context != NULL)
-- g_main_context_unref (data->main_context);
--
-- if (data->cancellable != NULL)
-- g_object_unref (data->cancellable);
--
-- g_slice_free (UtilsSpawnData, data);
--}
--
--/* called in the thread where @cancellable was cancelled */
--static void
--utils_on_cancelled (GCancellable *cancellable,
-- gpointer user_data)
--{
-- UtilsSpawnData *data = (UtilsSpawnData *)user_data;
-- GError *error;
--
-- error = NULL;
-- g_warn_if_fail (g_cancellable_set_error_if_cancelled (cancellable, &error));
-- g_simple_async_result_take_error (data->simple, error);
-- g_simple_async_result_complete_in_idle (data->simple);
-- g_object_unref (data->simple);
--}
--
--static gboolean
--utils_read_child_stderr (GIOChannel *channel,
-- GIOCondition condition,
-- gpointer user_data)
--{
-- UtilsSpawnData *data = (UtilsSpawnData *)user_data;
-- gchar buf[1024];
-- gsize bytes_read;
--
-- g_io_channel_read_chars (channel, buf, sizeof buf, &bytes_read, NULL);
-- g_string_append_len (data->child_stderr, buf, bytes_read);
-- return TRUE;
--}
--
--static gboolean
--utils_read_child_stdout (GIOChannel *channel,
-- GIOCondition condition,
-- gpointer user_data)
--{
-- UtilsSpawnData *data = (UtilsSpawnData *)user_data;
-- gchar buf[1024];
-- gsize bytes_read;
--
-- g_io_channel_read_chars (channel, buf, sizeof buf, &bytes_read, NULL);
-- g_string_append_len (data->child_stdout, buf, bytes_read);
-- return TRUE;
--}
--
--static void
--utils_child_watch_cb (GPid pid,
-- gint status,
-- gpointer user_data)
--{
-- UtilsSpawnData *data = (UtilsSpawnData *)user_data;
-- gchar *buf;
-- gsize buf_size;
--
-- if (g_io_channel_read_to_end (data->child_stdout_channel, &buf, &buf_size, NULL) == G_IO_STATUS_NORMAL)
-- {
-- g_string_append_len (data->child_stdout, buf, buf_size);
-- g_free (buf);
-- }
-- if (g_io_channel_read_to_end (data->child_stderr_channel, &buf, &buf_size, NULL) == G_IO_STATUS_NORMAL)
-- {
-- g_string_append_len (data->child_stderr, buf, buf_size);
-- g_free (buf);
-- }
--
-- data->exit_status = status;
--
-- /* ok, child watch is history, make sure we don't free it in spawn_data_free() */
-- data->child_pid = 0;
-- data->child_watch_source = NULL;
--
-- /* we're done */
-- g_simple_async_result_complete_in_idle (data->simple);
-- g_object_unref (data->simple);
--}
--
--static gboolean
--utils_timeout_cb (gpointer user_data)
--{
-- UtilsSpawnData *data = (UtilsSpawnData *)user_data;
--
-- data->timed_out = TRUE;
--
-- /* ok, timeout is history, make sure we don't free it in spawn_data_free() */
-- data->timeout_source = NULL;
--
-- /* we're done */
-- g_simple_async_result_complete_in_idle (data->simple);
-- g_object_unref (data->simple);
--
-- return FALSE; /* remove source */
--}
--
--static void
--utils_spawn (const gchar *const *argv,
-- guint timeout_seconds,
-- GCancellable *cancellable,
-- GAsyncReadyCallback callback,
-- gpointer user_data)
--{
-- UtilsSpawnData *data;
-- GError *error;
--
-- data = g_slice_new0 (UtilsSpawnData);
-- data->timeout_seconds = timeout_seconds;
-- data->simple = g_simple_async_result_new (NULL,
-- callback,
-- user_data,
-- (gpointer*)utils_spawn);
-- data->main_context = g_main_context_get_thread_default ();
-- if (data->main_context != NULL)
-- g_main_context_ref (data->main_context);
--
-- data->cancellable = cancellable != NULL ? (GCancellable*)g_object_ref (cancellable) : NULL;
--
-- data->child_stdout = g_string_new (NULL);
-- data->child_stderr = g_string_new (NULL);
-- data->child_stdout_fd = -1;
-- data->child_stderr_fd = -1;
--
-- /* the life-cycle of UtilsSpawnData is tied to its GSimpleAsyncResult */
-- g_simple_async_result_set_op_res_gpointer (data->simple, data, (GDestroyNotify) utils_spawn_data_free);
--
-- error = NULL;
-- if (data->cancellable != NULL)
-- {
-- /* could already be cancelled */
-- error = NULL;
-- if (g_cancellable_set_error_if_cancelled (data->cancellable, &error))
-- {
-- g_simple_async_result_take_error (data->simple, error);
-- g_simple_async_result_complete_in_idle (data->simple);
-- g_object_unref (data->simple);
-- goto out;
-- }
--
-- data->cancellable_handler_id = g_cancellable_connect (data->cancellable,
-- G_CALLBACK (utils_on_cancelled),
-- data,
-- NULL);
-- }
--
-- error = NULL;
-- if (!g_spawn_async_with_pipes (NULL, /* working directory */
-- (gchar **) argv,
-- NULL, /* envp */
-- GSpawnFlags(G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD),
-- NULL, /* child_setup */
-- NULL, /* child_setup's user_data */
-- &(data->child_pid),
-- NULL, /* gint *stdin_fd */
-- &(data->child_stdout_fd),
-- &(data->child_stderr_fd),
-- &error))
-- {
-- g_prefix_error (&error, "Error spawning: ");
-- g_simple_async_result_take_error (data->simple, error);
-- g_simple_async_result_complete_in_idle (data->simple);
-- g_object_unref (data->simple);
-- goto out;
-- }
--
-- if (timeout_seconds > 0)
-- {
-- data->timeout_source = g_timeout_source_new_seconds (timeout_seconds);
-- g_source_set_priority (data->timeout_source, G_PRIORITY_DEFAULT);
-- g_source_set_callback (data->timeout_source, utils_timeout_cb, data, NULL);
-- g_source_attach (data->timeout_source, data->main_context);
-- g_source_unref (data->timeout_source);
-- }
--
-- data->child_watch_source = g_child_watch_source_new (data->child_pid);
-- g_source_set_callback (data->child_watch_source, (GSourceFunc) utils_child_watch_cb, data, NULL);
-- g_source_attach (data->child_watch_source, data->main_context);
-- g_source_unref (data->child_watch_source);
--
-- data->child_stdout_channel = g_io_channel_unix_new (data->child_stdout_fd);
-- g_io_channel_set_flags (data->child_stdout_channel, G_IO_FLAG_NONBLOCK, NULL);
-- data->child_stdout_source = g_io_create_watch (data->child_stdout_channel, G_IO_IN);
-- g_source_set_callback (data->child_stdout_source, (GSourceFunc) utils_read_child_stdout, data, NULL);
-- g_source_attach (data->child_stdout_source, data->main_context);
-- g_source_unref (data->child_stdout_source);
--
-- data->child_stderr_channel = g_io_channel_unix_new (data->child_stderr_fd);
-- g_io_channel_set_flags (data->child_stderr_channel, G_IO_FLAG_NONBLOCK, NULL);
-- data->child_stderr_source = g_io_create_watch (data->child_stderr_channel, G_IO_IN);
-- g_source_set_callback (data->child_stderr_source, (GSourceFunc) utils_read_child_stderr, data, NULL);
-- g_source_attach (data->child_stderr_source, data->main_context);
-- g_source_unref (data->child_stderr_source);
--
-- out:
-- ;
--}
--
--gboolean
--utils_spawn_finish (GAsyncResult *res,
-- gint *out_exit_status,
-- gchar **out_standard_output,
-- gchar **out_standard_error,
-- GError **error)
--{
-- GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (res);
-- UtilsSpawnData *data;
-- gboolean ret = FALSE;
--
-- g_return_val_if_fail (G_IS_ASYNC_RESULT (res), FALSE);
-- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
--
-- g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == utils_spawn);
--
-- if (g_simple_async_result_propagate_error (simple, error))
-- goto out;
--
-- data = (UtilsSpawnData*)g_simple_async_result_get_op_res_gpointer (simple);
--
-- if (data->timed_out)
-- {
-- g_set_error (error,
-- G_IO_ERROR,
-- G_IO_ERROR_TIMED_OUT,
-- "Timed out after %d seconds",
-- data->timeout_seconds);
-- goto out;
-- }
--
-- if (out_exit_status != NULL)
-- *out_exit_status = data->exit_status;
--
-- if (out_standard_output != NULL)
-- *out_standard_output = g_strdup (data->child_stdout->str);
--
-- if (out_standard_error != NULL)
-- *out_standard_error = g_strdup (data->child_stderr->str);
--
-- ret = TRUE;
--
-- out:
-- return ret;
--}
-diff --git a/test/data/etc/polkit-1/rules.d/10-testing.rules b/test/data/etc/polkit-1/rules.d/10-testing.rules
-index 98bf062..e346b5d 100644
---- a/test/data/etc/polkit-1/rules.d/10-testing.rules
-+++ b/test/data/etc/polkit-1/rules.d/10-testing.rules
-@@ -189,8 +189,10 @@ polkit.addRule(function(action, subject) {
- ;
- } catch (error) {
- if (error == "Terminating runaway script")
-- return polkit.Result.YES;
-- return polkit.Result.NO;
-+ // Inverted logic to accomodate Duktape's model as well, which
-+ // will always fail with negation, on timeouts
-+ return polkit.Result.NO;
-+ return polkit.Result.YES;
- }
- }
- });
-diff --git a/test/polkitbackend/test-polkitbackendjsauthority.c b/test/polkitbackend/test-polkitbackendjsauthority.c
-index f97e0e0..2103b17 100644
---- a/test/polkitbackend/test-polkitbackendjsauthority.c
-+++ b/test/polkitbackend/test-polkitbackendjsauthority.c
-@@ -328,7 +328,7 @@ static const RulesTestCase rules_test_cases[] = {
- "net.company.run_away_script",
- "unix-user:root",
- NULL,
-- POLKIT_IMPLICIT_AUTHORIZATION_AUTHORIZED,
-+ POLKIT_IMPLICIT_AUTHORIZATION_NOT_AUTHORIZED,
- },
-
- {
diff --git a/meta-oe/recipes-extended/polkit/polkit/0003-jsauthority-ensure-to-call-JS_Init-and-JS_ShutDown-e.patch b/meta-oe/recipes-extended/polkit/polkit/0003-jsauthority-ensure-to-call-JS_Init-and-JS_ShutDown-e.patch
deleted file mode 100644
index 9e9755e44f..0000000000
--- a/meta-oe/recipes-extended/polkit/polkit/0003-jsauthority-ensure-to-call-JS_Init-and-JS_ShutDown-e.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 7799441b9aa55324160deefbc65f9d918b8c94c1 Mon Sep 17 00:00:00 2001
-From: Xi Ruoyao <xry111@mengyan1223.wang>
-Date: Tue, 10 Aug 2021 18:52:56 +0800
-Subject: [PATCH] jsauthority: ensure to call JS_Init() and JS_ShutDown()
- exactly once
-
-Before this commit, we were calling JS_Init() in
-polkit_backend_js_authority_class_init and never called JS_ShutDown.
-This is actually a misusage of SpiderMonkey API. Quote from a comment
-in js/Initialization.h (both mozjs-78 and mozjs-91):
-
- It is currently not possible to initialize SpiderMonkey multiple
- times (that is, calling JS_Init/JSAPI methods/JS_ShutDown in that
- order, then doing so again).
-
-This misusage does not cause severe issues with mozjs-78. However, when
-we eventually port jsauthority to use mozjs-91, bad thing will happen:
-see the test failure mentioned in #150.
-
-This commit is tested with both mozjs-78 and mozjs-91, all tests pass
-with it.
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/91]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- src/polkitbackend/polkitbackendjsauthority.cpp | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp
-index 41d8d5c..38dc001 100644
---- a/src/polkitbackend/polkitbackendjsauthority.cpp
-+++ b/src/polkitbackend/polkitbackendjsauthority.cpp
-@@ -75,6 +75,13 @@
-
- /* ---------------------------------------------------------------------------------------------------- */
-
-+static class JsInitHelperType
-+{
-+public:
-+ JsInitHelperType() { JS_Init(); }
-+ ~JsInitHelperType() { JS_ShutDown(); }
-+} JsInitHelper;
-+
- struct _PolkitBackendJsAuthorityPrivate
- {
- gchar **rules_dirs;
-@@ -589,7 +596,6 @@ polkit_backend_js_authority_finalize (GObject *object)
- delete authority->priv->js_polkit;
-
- JS_DestroyContext (authority->priv->cx);
-- /* JS_ShutDown (); */
-
- G_OBJECT_CLASS (polkit_backend_js_authority_parent_class)->finalize (object);
- }
-@@ -665,8 +671,6 @@ polkit_backend_js_authority_class_init (PolkitBackendJsAuthorityClass *klass)
-
-
- g_type_class_add_private (klass, sizeof (PolkitBackendJsAuthorityPrivate));
--
-- JS_Init ();
- }
-
- /* ---------------------------------------------------------------------------------------------------- */
diff --git a/meta-oe/recipes-extended/polkit/polkit/0004-Make-netgroup-support-optional.patch b/meta-oe/recipes-extended/polkit/polkit/0004-Make-netgroup-support-optional.patch
deleted file mode 100644
index 181aca16ca..0000000000
--- a/meta-oe/recipes-extended/polkit/polkit/0004-Make-netgroup-support-optional.patch
+++ /dev/null
@@ -1,253 +0,0 @@
-From a334fac72112c01cd322f7c97ef7ca21457ab52f Mon Sep 17 00:00:00 2001
-From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
-Date: Sun, 15 May 2022 05:04:10 +0000
-Subject: [PATCH] Make netgroup support optional
-
-On at least Linux/musl and Linux/uclibc, netgroup support is not
-available. PolKit fails to compile on these systems for that reason.
-
-This change makes netgroup support conditional on the presence of the
-setnetgrent(3) function which is required for the support to work. If
-that function is not available on the system, an error will be returned
-to the administrator if unix-netgroup: is specified in configuration.
-
-(sam: rebased for Meson and Duktape.)
-
-Closes: https://gitlab.freedesktop.org/polkit/polkit/-/issues/14
-Closes: https://gitlab.freedesktop.org/polkit/polkit/-/issues/163
-Closes: https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/52
-Signed-off-by: A. Wilcox <AWilcox@Wilcox-Tech.com>
-
-Ported back the change in configure.ac (upstream removed autotools
-support).
-
-Upstream-Status: Backport [https://gitlab.freedesktop.org/polkit/polkit/-/commit/b57deee8178190a7ecc75290fa13cf7daabc2c66]
-Signed-off-by: Marta Rybczynska <marta.rybczynska@huawei.com>
-
----
- configure.ac | 2 +-
- meson.build | 1 +
- src/polkit/polkitidentity.c | 17 +++++++++++++++++
- src/polkit/polkitunixnetgroup.c | 3 +++
- .../polkitbackendinteractiveauthority.c | 14 ++++++++------
- src/polkitbackend/polkitbackendjsauthority.cpp | 2 ++
- test/polkit/polkitidentitytest.c | 8 +++++++-
- test/polkit/polkitunixnetgrouptest.c | 2 ++
- .../test-polkitbackendjsauthority.c | 2 ++
- 9 files changed, 43 insertions(+), 8 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ca4b9f2..4c5d596 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -100,7 +100,7 @@ AC_CHECK_LIB(expat,XML_ParserCreate,[EXPAT_LIBS="-lexpat"],
- [AC_MSG_ERROR([Can't find expat library. Please install expat.])])
- AC_SUBST(EXPAT_LIBS)
-
--AC_CHECK_FUNCS(clearenv fdatasync)
-+AC_CHECK_FUNCS(clearenv fdatasync setnetgrent)
-
- if test "x$GCC" = "xyes"; then
- LDFLAGS="-Wl,--as-needed $LDFLAGS"
-diff --git a/meson.build b/meson.build
-index 733bbff..d840926 100644
---- a/meson.build
-+++ b/meson.build
-@@ -82,6 +82,7 @@ config_h.set('_GNU_SOURCE', true)
- check_functions = [
- 'clearenv',
- 'fdatasync',
-+ 'setnetgrent',
- ]
-
- foreach func: check_functions
-diff --git a/src/polkit/polkitidentity.c b/src/polkit/polkitidentity.c
-index 3aa1f7f..793f17d 100644
---- a/src/polkit/polkitidentity.c
-+++ b/src/polkit/polkitidentity.c
-@@ -182,7 +182,15 @@ polkit_identity_from_string (const gchar *str,
- }
- else if (g_str_has_prefix (str, "unix-netgroup:"))
- {
-+#ifndef HAVE_SETNETGRENT
-+ g_set_error (error,
-+ POLKIT_ERROR,
-+ POLKIT_ERROR_FAILED,
-+ "Netgroups are not available on this machine ('%s')",
-+ str);
-+#else
- identity = polkit_unix_netgroup_new (str + sizeof "unix-netgroup:" - 1);
-+#endif
- }
-
- if (identity == NULL && (error != NULL && *error == NULL))
-@@ -344,6 +352,14 @@ polkit_identity_new_for_gvariant (GVariant *variant,
- GVariant *v;
- const char *name;
-
-+#ifndef HAVE_SETNETGRENT
-+ g_set_error (error,
-+ POLKIT_ERROR,
-+ POLKIT_ERROR_FAILED,
-+ "Netgroups are not available on this machine");
-+ goto out;
-+#else
-+
- v = lookup_asv (details_gvariant, "name", G_VARIANT_TYPE_STRING, error);
- if (v == NULL)
- {
-@@ -353,6 +369,7 @@ polkit_identity_new_for_gvariant (GVariant *variant,
- name = g_variant_get_string (v, NULL);
- ret = polkit_unix_netgroup_new (name);
- g_variant_unref (v);
-+#endif
- }
- else
- {
-diff --git a/src/polkit/polkitunixnetgroup.c b/src/polkit/polkitunixnetgroup.c
-index 8a2b369..83f8d4a 100644
---- a/src/polkit/polkitunixnetgroup.c
-+++ b/src/polkit/polkitunixnetgroup.c
-@@ -194,6 +194,9 @@ polkit_unix_netgroup_set_name (PolkitUnixNetgroup *group,
- PolkitIdentity *
- polkit_unix_netgroup_new (const gchar *name)
- {
-+#ifndef HAVE_SETNETGRENT
-+ g_assert_not_reached();
-+#endif
- g_return_val_if_fail (name != NULL, NULL);
- return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_NETGROUP,
- "name", name,
-diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
-index 056d9a8..36c2f3d 100644
---- a/src/polkitbackend/polkitbackendinteractiveauthority.c
-+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
-@@ -2233,25 +2233,26 @@ get_users_in_net_group (PolkitIdentity *group,
- GList *ret;
-
- ret = NULL;
-+#ifdef HAVE_SETNETGRENT
- name = polkit_unix_netgroup_get_name (POLKIT_UNIX_NETGROUP (group));
-
--#ifdef HAVE_SETNETGRENT_RETURN
-+# ifdef HAVE_SETNETGRENT_RETURN
- if (setnetgrent (name) == 0)
- {
- g_warning ("Error looking up net group with name %s: %s", name, g_strerror (errno));
- goto out;
- }
--#else
-+# else
- setnetgrent (name);
--#endif
-+# endif /* HAVE_SETNETGRENT_RETURN */
-
- for (;;)
- {
--#if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD)
-+# if defined(HAVE_NETBSD) || defined(HAVE_OPENBSD)
- const char *hostname, *username, *domainname;
--#else
-+# else
- char *hostname, *username, *domainname;
--#endif
-+# endif /* defined(HAVE_NETBSD) || defined(HAVE_OPENBSD) */
- PolkitIdentity *user;
- GError *error = NULL;
-
-@@ -2282,6 +2283,7 @@ get_users_in_net_group (PolkitIdentity *group,
-
- out:
- endnetgrent ();
-+#endif /* HAVE_SETNETGRENT */
- return ret;
- }
-
-diff --git a/src/polkitbackend/polkitbackendjsauthority.cpp b/src/polkitbackend/polkitbackendjsauthority.cpp
-index 5027815..bcb040c 100644
---- a/src/polkitbackend/polkitbackendjsauthority.cpp
-+++ b/src/polkitbackend/polkitbackendjsauthority.cpp
-@@ -1524,6 +1524,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
-
- JS::CallArgs args = JS::CallArgsFromVp (argc, vp);
-
-+#ifdef HAVE_SETNETGRENT
- JS::RootedString usrstr (authority->priv->cx);
- usrstr = args[0].toString();
- user = JS_EncodeStringToUTF8 (cx, usrstr);
-@@ -1538,6 +1539,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
- {
- is_in_netgroup = true;
- }
-+#endif
-
- ret = true;
-
-diff --git a/test/polkit/polkitidentitytest.c b/test/polkit/polkitidentitytest.c
-index e91967b..2635c4c 100644
---- a/test/polkit/polkitidentitytest.c
-+++ b/test/polkit/polkitidentitytest.c
-@@ -145,11 +145,15 @@ struct ComparisonTestData comparison_test_data [] = {
- {"unix-group:root", "unix-group:jane", FALSE},
- {"unix-group:jane", "unix-group:jane", TRUE},
-
-+#ifdef HAVE_SETNETGRENT
- {"unix-netgroup:foo", "unix-netgroup:foo", TRUE},
- {"unix-netgroup:foo", "unix-netgroup:bar", FALSE},
-+#endif
-
- {"unix-user:root", "unix-group:root", FALSE},
-+#ifdef HAVE_SETNETGRENT
- {"unix-user:jane", "unix-netgroup:foo", FALSE},
-+#endif
-
- {NULL},
- };
-@@ -181,11 +185,13 @@ main (int argc, char *argv[])
- g_test_add_data_func ("/PolkitIdentity/group_string_2", "unix-group:jane", test_string);
- g_test_add_data_func ("/PolkitIdentity/group_string_3", "unix-group:users", test_string);
-
-+#ifdef HAVE_SETNETGRENT
- g_test_add_data_func ("/PolkitIdentity/netgroup_string", "unix-netgroup:foo", test_string);
-+ g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant);
-+#endif
-
- g_test_add_data_func ("/PolkitIdentity/user_gvariant", "unix-user:root", test_gvariant);
- g_test_add_data_func ("/PolkitIdentity/group_gvariant", "unix-group:root", test_gvariant);
-- g_test_add_data_func ("/PolkitIdentity/netgroup_gvariant", "unix-netgroup:foo", test_gvariant);
-
- add_comparison_tests ();
-
-diff --git a/test/polkit/polkitunixnetgrouptest.c b/test/polkit/polkitunixnetgrouptest.c
-index 3701ba1..e1d211e 100644
---- a/test/polkit/polkitunixnetgrouptest.c
-+++ b/test/polkit/polkitunixnetgrouptest.c
-@@ -69,7 +69,9 @@ int
- main (int argc, char *argv[])
- {
- g_test_init (&argc, &argv, NULL);
-+#ifdef HAVE_SETNETGRENT
- g_test_add_func ("/PolkitUnixNetgroup/new", test_new);
- g_test_add_func ("/PolkitUnixNetgroup/set_name", test_set_name);
-+#endif
- return g_test_run ();
- }
-diff --git a/test/polkitbackend/test-polkitbackendjsauthority.c b/test/polkitbackend/test-polkitbackendjsauthority.c
-index f97e0e0..fc52149 100644
---- a/test/polkitbackend/test-polkitbackendjsauthority.c
-+++ b/test/polkitbackend/test-polkitbackendjsauthority.c
-@@ -137,12 +137,14 @@ test_get_admin_identities (void)
- "unix-group:users"
- }
- },
-+#ifdef HAVE_SETNETGRENT
- {
- "net.company.action3",
- {
- "unix-netgroup:foo"
- }
- },
-+#endif
- };
- guint n;
-
diff --git a/meta-oe/recipes-extended/polkit/polkit/0005-Make-netgroup-support-optional-duktape.patch b/meta-oe/recipes-extended/polkit/polkit/0005-Make-netgroup-support-optional-duktape.patch
deleted file mode 100644
index 12988ad94f..0000000000
--- a/meta-oe/recipes-extended/polkit/polkit/0005-Make-netgroup-support-optional-duktape.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 792f8e2151c120ec51b50a4098e4f9642409cbec Mon Sep 17 00:00:00 2001
-From: Marta Rybczynska <rybczynska@gmail.com>
-Date: Fri, 29 Jul 2022 11:52:59 +0200
-Subject: [PATCH] Make netgroup support optional
-
-This patch adds a fragment of the netgroup patch to apply on the duktape-related
-code. This change is needed to compile with duktape+musl.
-
-Upstream-Status: Backport [https://gitlab.freedesktop.org/polkit/polkit/-/commit/b57deee8178190a7ecc75290fa13cf7daabc2c66]
-Signed-off-by: Marta Rybczynska <martarybczynska@huawei.com>
----
- src/polkitbackend/polkitbackendduktapeauthority.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/polkitbackend/polkitbackendduktapeauthority.c b/src/polkitbackend/polkitbackendduktapeauthority.c
-index c89dbcf..58a5936 100644
---- a/src/polkitbackend/polkitbackendduktapeauthority.c
-+++ b/src/polkitbackend/polkitbackendduktapeauthority.c
-@@ -1036,6 +1036,7 @@ js_polkit_user_is_in_netgroup (duk_context *cx)
- user = duk_require_string (cx, 0);
- netgroup = duk_require_string (cx, 1);
-
-+#ifdef HAVE_SETNETGRENT
- if (innetgr (netgroup,
- NULL, /* host */
- user,
-@@ -1043,6 +1044,7 @@ js_polkit_user_is_in_netgroup (duk_context *cx)
- {
- is_in_netgroup = TRUE;
- }
-+#endif
-
- duk_push_boolean (cx, is_in_netgroup);
- return 1;
diff --git a/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch b/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch
deleted file mode 100644
index c491abf4ac..0000000000
--- a/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-polkit: No system-auth in OE-Core, we can use common-* in place of it.
-
-Upstream-Status:Inappropriate [configuration]
-
-Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
-
-Upstream-Status: Inappropriate [oe specific]
-Rebase to 0.115
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 36df239..8b3e1b1 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -471,10 +471,10 @@ elif test x$with_os_type = xfreebsd -o x$with_os_type = xnetbsd; then
- PAM_FILE_INCLUDE_PASSWORD=system
- PAM_FILE_INCLUDE_SESSION=system
- else
-- PAM_FILE_INCLUDE_AUTH=system-auth
-- PAM_FILE_INCLUDE_ACCOUNT=system-auth
-- PAM_FILE_INCLUDE_PASSWORD=system-auth
-- PAM_FILE_INCLUDE_SESSION=system-auth
-+ PAM_FILE_INCLUDE_AUTH=common-auth
-+ PAM_FILE_INCLUDE_ACCOUNT=common-account
-+ PAM_FILE_INCLUDE_PASSWORD=common-password
-+ PAM_FILE_INCLUDE_SESSION=common-session
- fi
-
- AC_SUBST(PAM_FILE_INCLUDE_AUTH)
---
-2.7.4
-
diff --git a/meta-oe/recipes-extended/polkit/polkit_0.119.bb b/meta-oe/recipes-extended/polkit/polkit_0.119.bb
deleted file mode 100644
index c4d3d25afc..0000000000
--- a/meta-oe/recipes-extended/polkit/polkit_0.119.bb
+++ /dev/null
@@ -1,79 +0,0 @@
-SUMMARY = "PolicyKit Authorization Framework"
-DESCRIPTION = "The polkit package is an application-level toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes."
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/polkit"
-LICENSE = "LGPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb \
- file://src/polkit/polkit.h;beginline=1;endline=20;md5=0a8630b0133176d0504c87a0ded39db4"
-
-DEPENDS = "expat glib-2.0 intltool-native"
-
-inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection features_check
-
-REQUIRED_DISTRO_FEATURES = "polkit"
-
-PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', \
- bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
- mozjs \
- "
-
-PACKAGECONFIG[pam] = "--with-authfw=pam,--with-authfw=shadow,libpam,libpam"
-PACKAGECONFIG[systemd] = "--enable-libsystemd-login=yes --with-systemdsystemunitdir=${systemd_unitdir}/system/,--enable-libsystemd-login=no --with-systemdsystemunitdir=,systemd"
-# there is no --enable/--disable option for consolekit and it's not picked by shlibs, so add it to RDEPENDS
-PACKAGECONFIG[consolekit] = ",,,consolekit"
-
-# Default to mozjs javascript library
-PACKAGECONFIG[mozjs] = ",,mozjs-91,,,duktape"
-# duktape javascript engine is much smaller and faster but is not compatible with
-# same javascript standards as mozjs. For example array.includes() function is not
-# supported. Test rule compatibility when switching to duktape.
-PACKAGECONFIG[duktape] = "--with-duktape,,duktape,,,mozjs"
-
-MOZJS_PATCHES = "\
- file://0002-jsauthority-port-to-mozjs-91.patch \
- file://0003-jsauthority-ensure-to-call-JS_Init-and-JS_ShutDown-e.patch \
-"
-DUKTAPE_PATCHES = "file://0003-Added-support-for-duktape-as-JS-engine.patch"
-DUKTAPE_NG_PATCHES = "file://0005-Make-netgroup-support-optional-duktape.patch"
-PAM_SRC_URI = "file://polkit-1_pam.patch"
-SRC_URI = "http://www.freedesktop.org/software/polkit/releases/polkit-${PV}.tar.gz \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'mozjs', '${MOZJS_PATCHES}', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'duktape', '${DUKTAPE_PATCHES}', '', d)} \
- file://0001-pkexec-local-privilege-escalation-CVE-2021-4034.patch \
- file://0002-CVE-2021-4115-GHSL-2021-077-fix.patch \
- file://0004-Make-netgroup-support-optional.patch \
- ${@bb.utils.contains('PACKAGECONFIG', 'duktape', '${DUKTAPE_NG_PATCHES}', '', d)} \
- "
-SRC_URI[sha256sum] = "c8579fdb86e94295404211285fee0722ad04893f0213e571bd75c00972fd1f5c"
-
-EXTRA_OECONF = "--with-os-type=moblin \
- --disable-man-pages \
- --disable-libelogind \
- "
-
-do_configure:prepend () {
- rm -f ${S}/buildutil/lt*.m4 ${S}/buildutil/libtool.m4
-}
-
-do_compile:prepend () {
- export GIR_EXTRA_LIBS_PATH="${B}/src/polkit/.libs"
-}
-
-PACKAGES =+ "${PN}-examples"
-
-FILES:${PN}:append = " \
- ${libdir}/${BPN}-1 \
- ${nonarch_libdir}/${BPN}-1 \
- ${datadir}/dbus-1 \
- ${datadir}/${BPN}-1 \
- ${datadir}/gettext \
-"
-
-FILES:${PN}-examples = "${bindir}/*example*"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/${BPN}-1 --shell /bin/nologin polkitd"
-
-SYSTEMD_SERVICE:${PN} = "${BPN}.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-oe/recipes-extended/polkit/polkit_124.bb b/meta-oe/recipes-extended/polkit/polkit_124.bb
new file mode 100644
index 0000000000..9e2eb05c62
--- /dev/null
+++ b/meta-oe/recipes-extended/polkit/polkit_124.bb
@@ -0,0 +1,59 @@
+SUMMARY = "PolicyKit Authorization Framework"
+DESCRIPTION = "The polkit package is an application-level toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes."
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/polkit"
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb"
+
+SRC_URI = "git://gitlab.freedesktop.org/polkit/polkit.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+SRCREV = "82f0924dc0eb23b9df68e88dbaf9e07c81940a5a"
+
+DEPENDS = "expat glib-2.0"
+
+inherit meson pkgconfig useradd systemd gettext gobject-introspection features_check
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+PACKAGECONFIG = " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit', d)} \
+ dbus \
+ mozjs \
+"
+PACKAGECONFIG[dbus] = ",,dbus"
+PACKAGECONFIG[gtk-doc] = "-Dgtk_doc=true,-Dgtk_doc=false,gtk-doc-native"
+PACKAGECONFIG[pam] = "-Dauthfw=pam,-Dauthfw=shadow,libpam,libpam"
+PACKAGECONFIG[systemd] = "-Dsession_tracking=libsystemd-login,-Dsession_tracking=ConsoleKit,systemd"
+PACKAGECONFIG[consolekit] = ",,,consolekit"
+
+# Default to mozjs javascript library
+PACKAGECONFIG[mozjs] = "-Djs_engine=mozjs,,mozjs-115,,,duktape"
+# duktape javascript engine is much smaller and faster but is not compatible with
+# same javascript standards as mozjs. For example array.includes() function is not
+# supported. Test rule compatibility when switching to duktape.
+PACKAGECONFIG[duktape] = "-Djs_engine=duktape,,duktape,,,mozjs"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/${BPN}-1 --shell /bin/nologin polkitd"
+
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+do_install:append() {
+ #Fix up permissions on polkit rules.d to work with rpm4 constraints
+ chmod 700 ${D}/${datadir}/polkit-1/rules.d
+ chmod 700 ${D}/${sysconfdir}/polkit-1/rules.d
+ chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
+ chown polkitd:root ${D}/${sysconfdir}/polkit-1/rules.d
+}
+
+FILES:${PN} += " \
+ ${libdir}/pam.d/polkit-1 \
+ ${libdir}/sysusers.d \
+ ${libdir}/polkit-1 \
+ ${nonarch_libdir}/pam.d/polkit-1 \
+ ${nonarch_libdir}/sysusers.d \
+ ${nonarch_libdir}/polkit-1 \
+ ${datadir} \
+"
diff --git a/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb b/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb
index 88a18aa137..25951c9de4 100644
--- a/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb
+++ b/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb
@@ -6,7 +6,7 @@ SECTION = "libs"
LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
-PV = "0.0.1+git${SRCPV}"
+PV = "0.0.1+git"
SRCREV = "45863e849b39c4921d6553e6d27e267a96ac7d77"
SRC_URI = "git://github.com/lib-cpp/${BPN}.git;branch=master;protocol=https"
diff --git a/meta-oe/recipes-extended/qad/qad/0001-Fix-warnings-found-by-clang-compiler.patch b/meta-oe/recipes-extended/qad/qad/0001-Fix-warnings-found-by-clang-compiler.patch
new file mode 100644
index 0000000000..7a9937d685
--- /dev/null
+++ b/meta-oe/recipes-extended/qad/qad/0001-Fix-warnings-found-by-clang-compiler.patch
@@ -0,0 +1,53 @@
+From 2e871d6d6d13955ff363ff756adfdd257e72e9e8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 10 Aug 2023 23:58:43 -0700
+Subject: [PATCH] Fix warnings found by clang compiler
+
+Fix diagnostics found with -Wdeprecated-non-prototype using clang
+compiler
+
+e.g.
+| ../git/src/server.c:108:35: error: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype] | 108 | if (backend->input_backend->move(x, y, event) < 0) { | | ^
+
+Upstream-Status: Submitted [https://gitlab.com/CodethinkLabs/qad/qad/-/merge_requests/33]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/backend.h | 8 ++++----
+ src/backends/input/input_common.h | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/include/backend.h b/include/backend.h
+index 8f4c7c1..4bfe510 100644
+--- a/include/backend.h
++++ b/include/backend.h
+@@ -41,10 +41,10 @@ typedef struct qad_screen_buffer_s {
+ } qad_screen_buffer_t;
+
+ typedef struct qad_backend_input_s {
+- int (*move)();
+- int (*button)();
+- int (*touch)();
+- int (*swipe)();
++ int (*move)(int, int, int);
++ int (*button)(int, int);
++ int (*touch)(int, int, int, int);
++ int (*swipe)(int, int, int, int, int, int);
+ void *data;
+ } qad_backend_input_t;
+
+diff --git a/src/backends/input/input_common.h b/src/backends/input/input_common.h
+index 8e099a5..f2ea73f 100644
+--- a/src/backends/input/input_common.h
++++ b/src/backends/input/input_common.h
+@@ -28,7 +28,7 @@
+ #define BTN_DOWN 1
+ #define BTN_UP 0
+
+-qad_backend_input_t *create_input_backend();
++qad_backend_input_t *create_input_backend(char input_type[]);
+
+ // int move(int x, int y, int event);
+
+--
+2.41.0
+
diff --git a/meta-oe/recipes-extended/qad/qad_git.bb b/meta-oe/recipes-extended/qad/qad_git.bb
new file mode 100644
index 0000000000..0bc94121a7
--- /dev/null
+++ b/meta-oe/recipes-extended/qad/qad_git.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Simple, REST-API compliant daemon for automated testing"
+DESCRIPTION = " This is a simple, REST-API compliant daemon which makes \
+automated testing on hardware possible by removing the need for physical \
+intervention as Q.A.D allows inputs to be injected via http/https requests. \
+This both eliminates the need to physically interact with the rig and allows \
+for tasks to be carried out entirely automatically."
+
+LICENSE = "MIT & GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=402cce7fbcb6ea9ab5a0378dd7f40806 \
+ file://openqa/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ "
+SRC_URI = "git://gitlab.com/CodethinkLabs/qad/qad;branch=main;protocol=https \
+ file://0001-Fix-warnings-found-by-clang-compiler.patch"
+
+SRCREV = "ae0c099c1fdc0ca6f5d631cea6b302937122b362"
+
+S = "${WORKDIR}/git"
+PV = "0.0+git"
+
+DEPENDS = "cjson libmicrohttpd libdrm libpng"
+
+FILES:${PN} += "qad"
+inherit meson pkgconfig
+
+do_install () {
+ install -d ${D}${bindir}
+ install -p -m 755 qad ${D}${bindir}/
+}
diff --git a/meta-oe/recipes-extended/qcbor/qcbor_git.bb b/meta-oe/recipes-extended/qcbor/qcbor_git.bb
new file mode 100644
index 0000000000..a87454fa95
--- /dev/null
+++ b/meta-oe/recipes-extended/qcbor/qcbor_git.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = " \
+ QCBOR is a powerful, commercial-quality CBOR encoder/decoder that \
+ implements these RFCs: RFC8949, RFC7049, RFC8742, RFC8943 \
+"
+
+HOMEPAGE = "https://github.com/laurencelundblade/QCBOR"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://README.md;beginline=442;endline=463;md5=b55643261d6d221dac2b7a395105af62"
+
+SRC_URI = "git://github.com/laurencelundblade/QCBOR;protocol=https;branch=master"
+
+SRCREV = "44754f738c6534a4304a83d4c6e97b3d3193d887"
+
+PV = "1.2+git"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig
+
+CFLAGS += " \
+ -DUSEFULBUF_DISABLE_ALL_FLOAT \
+"
+
+do_install(){
+ install -d ${D}${libdir}
+ install -m 755 ${S}/libqcbor.a ${D}${libdir}/
+ install -d ${D}${includedir}/qcbor
+ install -m 644 ${S}/inc/*.h ${D}${includedir}
+ install -m 644 ${S}/inc/qcbor/*.h ${D}${includedir}/qcbor
+}
+
diff --git a/meta-oe/recipes-extended/rarpd/rarpd/0001-rarpd.8-add-man-file.patch b/meta-oe/recipes-extended/rarpd/rarpd/0001-rarpd.8-add-man-file.patch
index 77c75b4a27..05483aa3eb 100644
--- a/meta-oe/recipes-extended/rarpd/rarpd/0001-rarpd.8-add-man-file.patch
+++ b/meta-oe/recipes-extended/rarpd/rarpd/0001-rarpd.8-add-man-file.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 1/5] rarpd.8 : add man file
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
rarpd.8 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
create mode 100644 rarpd.8
diff --git a/meta-oe/recipes-extended/rarpd/rarpd/0002-Makefile-modify-compile-parameters.patch b/meta-oe/recipes-extended/rarpd/rarpd/0002-Makefile-modify-compile-parameters.patch
index 0b3ebc468f..54b8e8181d 100644
--- a/meta-oe/recipes-extended/rarpd/rarpd/0002-Makefile-modify-compile-parameters.patch
+++ b/meta-oe/recipes-extended/rarpd/rarpd/0002-Makefile-modify-compile-parameters.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 2/5] Makefile : modify compile parameters
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/rarpd/rarpd/0003-rarpd.c-bug-fix.patch b/meta-oe/recipes-extended/rarpd/rarpd/0003-rarpd.c-bug-fix.patch
index 7ce1279090..82655644f0 100644
--- a/meta-oe/recipes-extended/rarpd/rarpd/0003-rarpd.c-bug-fix.patch
+++ b/meta-oe/recipes-extended/rarpd/rarpd/0003-rarpd.c-bug-fix.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 3/5] rarpd.c : bug fix
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
rarpd.c | 98 +++++++++++++++++++++++++++++++++++++----------------------------
1 file changed, 56 insertions(+), 42 deletions(-)
diff --git a/meta-oe/recipes-extended/rarpd/rarpd/0004-rarpd.init-add-new-init-file.patch b/meta-oe/recipes-extended/rarpd/rarpd/0004-rarpd.init-add-new-init-file.patch
index 3ba11ffe55..7a50ca3ce9 100644
--- a/meta-oe/recipes-extended/rarpd/rarpd/0004-rarpd.init-add-new-init-file.patch
+++ b/meta-oe/recipes-extended/rarpd/rarpd/0004-rarpd.init-add-new-init-file.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 4/5] rarpd.init : add new init file
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
rarpd.init | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 96 insertions(+)
create mode 100644 rarpd.init
diff --git a/meta-oe/recipes-extended/rarpd/rarpd/0005-ethernet.c-remove-it.patch b/meta-oe/recipes-extended/rarpd/rarpd/0005-ethernet.c-remove-it.patch
index c77c806127..c651d656af 100644
--- a/meta-oe/recipes-extended/rarpd/rarpd/0005-ethernet.c-remove-it.patch
+++ b/meta-oe/recipes-extended/rarpd/rarpd/0005-ethernet.c-remove-it.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 5/5] ethernet.c : remove it
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
ethernet.c | 224 -------------------------------------------------------------
1 file changed, 224 deletions(-)
delete mode 100644 ethernet.c
diff --git a/meta-oe/recipes-extended/redis-plus-plus/files/0001-CMakeLists.txt-fix-substitution-for-static-libs.patch b/meta-oe/recipes-extended/redis-plus-plus/files/0001-CMakeLists.txt-fix-substitution-for-static-libs.patch
new file mode 100644
index 0000000000..b652e6bb78
--- /dev/null
+++ b/meta-oe/recipes-extended/redis-plus-plus/files/0001-CMakeLists.txt-fix-substitution-for-static-libs.patch
@@ -0,0 +1,45 @@
+From 608d0f1caf43628c8260a994c277a040f1e616e0 Mon Sep 17 00:00:00 2001
+From: Peter Bergin <peter.bergin@windriver.com>
+Date: Tue, 23 May 2023 13:19:55 +0200
+Subject: [PATCH] CMakeLists.txt: fix substitution for static libs
+
+During configuration the liibrary names are substitued for
+the static build. When building with tls support the first
+substitution will match both cases and trash the name for hiredis_ssl.
+
+Input string: 'hiredis::hiredis;hiredis::hiredis_ssl;'
+Output string: 'hiredis::hiredis_static;hiredis::hiredis_static_ssl;'
+Wanted string: 'hiredis::hiredis_static;hiredis::hiredis_ssl_static;'
+
+Fix string replacement by also including the ';' token to better match.
+
+Upstream-Status: Submitted [https://github.com/sewenew/redis-plus-plus/issues/486]
+
+Signed-off-by: Peter Bergin <peter.bergin@windriver.com>
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 23a1840..5478271 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -184,13 +184,13 @@ if(REDIS_PLUS_PLUS_BUILD_STATIC)
+ set(REDIS_PLUS_PLUS_HIREDIS_LIBS_STATIC ${REDIS_PLUS_PLUS_HIREDIS_LIBS})
+
+ if (TARGET hiredis::hiredis_static)
+- string(REPLACE "hiredis::hiredis" "hiredis::hiredis_static" REDIS_PLUS_PLUS_HIREDIS_LIBS_STATIC
++ string(REPLACE "hiredis::hiredis;" "hiredis::hiredis_static;" REDIS_PLUS_PLUS_HIREDIS_LIBS_STATIC
+ "${REDIS_PLUS_PLUS_HIREDIS_LIBS_STATIC}")
+ endif()
+
+ if (TARGET hiredis::hiredis_ssl_static)
+ # If SSL is not enabled, this line will have no effect
+- string(REPLACE "hiredis::hiredis_static_ssl" "hiredis::hiredis_ssl_static" REDIS_PLUS_PLUS_HIREDIS_LIBS_STATIC
++ string(REPLACE "hiredis::hiredis_static_ssl;" "hiredis::hiredis_ssl_static;" REDIS_PLUS_PLUS_HIREDIS_LIBS_STATIC
+ "${REDIS_PLUS_PLUS_HIREDIS_LIBS_STATIC}")
+ endif()
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.11.bb b/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.11.bb
new file mode 100644
index 0000000000..3e757e6037
--- /dev/null
+++ b/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.11.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "C++ client for Redis based on hiredis"
+HOMEPAGE = "https://github.com/sewenew/redis-plus-plus"
+SECTION = "libs"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+DEPENDS += "hiredis"
+
+SRC_URI = "git://github.com/sewenew/redis-plus-plus;branch=master;protocol=https \
+ file://0001-CMakeLists.txt-fix-substitution-for-static-libs.patch"
+SRCREV = "ad6baa121f4c6fbc7622d83d606210ac22549c78"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+# if ssl is enabled for redis-plus-plus it must also be enabled for hiredis
+PACKAGECONFIG ??= "ssl"
+PACKAGECONFIG[ssl] = "-DREDIS_PLUS_PLUS_USE_TLS=ON, -DREDIS_PLUS_PLUS_USE_TLS=OFF, openssl"
+PACKAGECONFIG[test] = "-DREDIS_PLUS_PLUS_BUILD_TEST=ON, -DREDIS_PLUS_PLUS_BUILD_TEST=OFF"
+
+do_install:append() {
+ # To remove absolute path in .cmake found by QA warning [buildpaths]
+ sed -i -e 's|${STAGING_LIBDIR}/libcrypto.so|crypto|g' ${D}${datadir}/cmake/redis++/redis++-targets.cmake
+ sed -i -e 's|${STAGING_LIBDIR}/libssl.so|ssl|g' ${D}${datadir}/cmake/redis++/redis++-targets.cmake
+}
diff --git a/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.5.bb b/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.5.bb
deleted file mode 100644
index de19dca387..0000000000
--- a/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.5.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "C++ client for Redis based on hiredis"
-HOMEPAGE = "https://github.com/sewenew/redis-plus-plus"
-SECTION = "libs"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRC_URI = "git://github.com/sewenew/redis-plus-plus;branch=master;protocol=https"
-SRCREV = "58084931ed1a056d91fe96da7b9ea81fa023560a"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-DEPENDS += "hiredis"
-
-RDEPENDS:${PN} += "hiredis"
-
-FILES_SOLIBSDEV = ""
-FILES:${PN} += " ${libdir}/libredis++.so*"
-
-INSANE_SKIP:${PN} += "dev-so"
diff --git a/meta-oe/recipes-extended/redis/redis-7/0001-src-Do-not-reset-FINAL_LIBS.patch b/meta-oe/recipes-extended/redis/redis-7.2.4/0001-src-Do-not-reset-FINAL_LIBS.patch
index e8d8b1d53f..01e53e3f21 100644
--- a/meta-oe/recipes-extended/redis/redis-7/0001-src-Do-not-reset-FINAL_LIBS.patch
+++ b/meta-oe/recipes-extended/redis/redis-7.2.4/0001-src-Do-not-reset-FINAL_LIBS.patch
@@ -1,4 +1,4 @@
-From e97a572d4aef099a961e43d528c0268e10d9f1e2 Mon Sep 17 00:00:00 2001
+From d9d1f9a501ef7caa80d1e6595218898e9989ec2b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 10 Sep 2019 20:04:26 -0700
Subject: [PATCH] src: Do not reset FINAL_LIBS
@@ -16,10 +16,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile b/src/Makefile
-index ddabd44..5133884 100644
+index 39decee..f5efe82 100644
--- a/src/Makefile
+++ b/src/Makefile
-@@ -118,7 +118,7 @@ endif
+@@ -119,7 +119,7 @@ endif
FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
diff --git a/meta-oe/recipes-extended/redis/redis-7/0006-Define-correct-gregs-for-RISCV32.patch b/meta-oe/recipes-extended/redis/redis-7.2.4/0006-Define-correct-gregs-for-RISCV32.patch
index 01f8421811..93c3595261 100644
--- a/meta-oe/recipes-extended/redis/redis-7/0006-Define-correct-gregs-for-RISCV32.patch
+++ b/meta-oe/recipes-extended/redis/redis-7.2.4/0006-Define-correct-gregs-for-RISCV32.patch
@@ -1,4 +1,4 @@
-From f26a978c638bcbc621669dce0ab89e43af42af98 Mon Sep 17 00:00:00 2001
+From 634f62be6c135ece93cb4e44a69ce3cb66f394ca Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 26 Oct 2020 21:32:22 -0700
Subject: [PATCH] Define correct gregs for RISCV32
@@ -6,18 +6,18 @@ Subject: [PATCH] Define correct gregs for RISCV32
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Updated patch for 6.2.1
-Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
+Updated patch for 6.2.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
src/debug.c | 26 ++++++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/src/debug.c b/src/debug.c
-index 2da2c5d..1d778fa 100644
+index 684f692..2ee151f 100644
--- a/src/debug.c
+++ b/src/debug.c
-@@ -1116,7 +1116,9 @@ static void *getMcontextEip(ucontext_t *uc) {
+@@ -1215,7 +1215,9 @@ static void* getAndSetMcontextEip(ucontext_t *uc, void *eip) {
#endif
#elif defined(__linux__)
/* Linux */
@@ -25,10 +25,10 @@ index 2da2c5d..1d778fa 100644
+ #if defined(__riscv) && __riscv_xlen == 32
+ return (void*) uc->uc_mcontext.__gregs[REG_PC];
+ #elif defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
- return (void*) uc->uc_mcontext.gregs[14]; /* Linux 32 */
+ GET_SET_RETURN(uc->uc_mcontext.gregs[14], eip);
#elif defined(__X86_64__) || defined(__x86_64__)
- return (void*) uc->uc_mcontext.gregs[16]; /* Linux 64 */
-@@ -1298,8 +1300,28 @@ void logRegisters(ucontext_t *uc) {
+ GET_SET_RETURN(uc->uc_mcontext.gregs[16], eip);
+@@ -1401,8 +1403,28 @@ void logRegisters(ucontext_t *uc) {
#endif
/* Linux */
#elif defined(__linux__)
diff --git a/meta-oe/recipes-extended/redis/redis-7/GNU_SOURCE-7.patch b/meta-oe/recipes-extended/redis/redis-7.2.4/GNU_SOURCE-7.patch
index 6e07c25c6a..6e07c25c6a 100644
--- a/meta-oe/recipes-extended/redis/redis-7/GNU_SOURCE-7.patch
+++ b/meta-oe/recipes-extended/redis/redis-7.2.4/GNU_SOURCE-7.patch
diff --git a/meta-oe/recipes-extended/redis/redis-7/hiredis-use-default-CC-if-it-is-set.patch b/meta-oe/recipes-extended/redis/redis-7.2.4/hiredis-use-default-CC-if-it-is-set.patch
index 657b0923e2..7785acca5c 100644
--- a/meta-oe/recipes-extended/redis/redis-7/hiredis-use-default-CC-if-it-is-set.patch
+++ b/meta-oe/recipes-extended/redis/redis-7.2.4/hiredis-use-default-CC-if-it-is-set.patch
@@ -1,4 +1,4 @@
-From 9da2d12c9fabfff4b4460accf887658db89687e4 Mon Sep 17 00:00:00 2001
+From 41efa2f0cf08c91ff935bbb2d16ab233df7f5811 Mon Sep 17 00:00:00 2001
From: Venture Research <tech@ventureresearch.com>
Date: Fri, 8 Feb 2013 17:39:52 -0600
Subject: [PATCH] hiredis: use default CC if it is set
@@ -18,19 +18,21 @@ Reworked for 6.0.4
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
+Upstream-Status: Pending
+
deps/hiredis/Makefile | 2 --
1 file changed, 2 deletions(-)
diff --git a/deps/hiredis/Makefile b/deps/hiredis/Makefile
-index 7e41c97..54717e3 100644
+index bd2106b..9ce768d 100644
--- a/deps/hiredis/Makefile
+++ b/deps/hiredis/Makefile
-@@ -42,8 +42,6 @@ endef
+@@ -36,8 +36,6 @@ endef
export REDIS_TEST_CONFIG
# Fallback to gcc when $CC is not in $PATH.
-CC:=$(shell sh -c 'type $${CC%% *} >/dev/null 2>/dev/null && echo $(CC) || echo gcc')
-CXX:=$(shell sh -c 'type $${CXX%% *} >/dev/null 2>/dev/null && echo $(CXX) || echo g++')
OPTIMIZATION?=-O3
- WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers
+ WARNINGS=-Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers
DEBUG_FLAGS?= -g -ggdb
diff --git a/meta-oe/recipes-extended/redis/redis-7.2.4/init-redis-server b/meta-oe/recipes-extended/redis/redis-7.2.4/init-redis-server
new file mode 100755
index 0000000000..c5f335f57d
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis-7.2.4/init-redis-server
@@ -0,0 +1,71 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: redis-server
+# Required-Start: $network
+# Required-Stop: $network
+# Default-Start: S 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Redis, a key-value store
+# Description: Redis is an open source, advanced key-value store.
+# http://redis.io
+### END INIT INFO
+
+test -f /usr/bin/redis-server || exit 0
+
+ARGS="/etc/redis/redis.conf"
+
+case "$1" in
+ start)
+ echo "Starting redis-server..."
+ start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS
+ ;;
+ stop)
+ echo "Stopping redis-server..."
+ start-stop-daemon --stop --quiet --exec /usr/bin/redis-server
+ ;;
+ restart)
+ echo "Stopping redis-server..."
+ start-stop-daemon --stop --quiet --exec /usr/bin/redis-server
+
+ # Since busybox implementation ignores --retry arguments repeatedly check
+ # if the process is still running and try another signal after a timeout,
+ # efectively simulating a stop with --retry=TERM/5/KILL/5 schedule.
+ waitAfterTerm=5000000 # us / 5000 ms / 5 s
+ waitAfterKill=5000000 # us / 5000 ms / 5 s
+ waitStep=100000 # us / 100 ms / 0.1 s
+ waited=0
+ start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
+ processOff=$?
+ while [ $processOff -eq 0 ] && [ $waited -le $waitAfterTerm ] ; do
+ usleep ${waitStep}
+ ((waited+=${waitStep}))
+ start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
+ processOff=$?
+ done
+ if [ $processOff -eq 0 ] ; then
+ start-stop-daemon --stop --signal KILL --exec /usr/bin/redis-server
+ start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
+ processOff=$?
+ fi
+ waited=0
+ while [ $processOff -eq 0 ] && [ $waited -le $waitAfterKill ] ; do
+ usleep ${waitStep}
+ ((waited+=${waitStep}))
+ start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
+ processOff=$?
+ done
+ # Here $processOff will indicate if waiting and retrying according to
+ # the schedule ended in a successfull stop or not.
+
+ echo "Starting redis-server..."
+ start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS
+ ;;
+ *)
+ echo "Usage: /etc/init.d/redis-server {start|stop|restart}"
+ exit 1
+ ;;
+esac
+
+exit 0
+
diff --git a/meta-oe/recipes-extended/redis/redis-7/lua-update-Makefile-to-use-environment-build-setting.patch b/meta-oe/recipes-extended/redis/redis-7.2.4/lua-update-Makefile-to-use-environment-build-setting.patch
index c6c6fde162..20708eda1e 100644
--- a/meta-oe/recipes-extended/redis/redis-7/lua-update-Makefile-to-use-environment-build-setting.patch
+++ b/meta-oe/recipes-extended/redis/redis-7.2.4/lua-update-Makefile-to-use-environment-build-setting.patch
@@ -1,4 +1,4 @@
-From 734ab2f7879c6f94fc18ea6a10adb9bd156ba769 Mon Sep 17 00:00:00 2001
+From aa3d31355f3cc140b1dc2f4fcff8e3c0aa261549 Mon Sep 17 00:00:00 2001
From: Venture Research <tech@ventureresearch.com>
Date: Fri, 8 Feb 2013 20:22:19 -0600
Subject: [PATCH] lua: update Makefile to use environment build settings
@@ -15,6 +15,7 @@ Signed-off-by: Armin Kuster <akust808@gmail.com>
updated to work wtih 6.2.1
Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
+Upstream-Status: Pending
---
deps/Makefile | 1 -
deps/lua/Makefile | 1 -
@@ -22,10 +23,10 @@ Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
3 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/deps/Makefile b/deps/Makefile
-index 8592e17..1807af5 100644
+index 3bf0363..fd8765a 100644
--- a/deps/Makefile
+++ b/deps/Makefile
-@@ -81,7 +81,6 @@ endif
+@@ -94,7 +94,6 @@ endif
# lua's Makefile defines AR="ar rcu", which is unusual, and makes it more
# challenging to cross-compile lua (and redis). These defines make it easier
# to fit redis into cross-compilation environments, which typically set AR.
diff --git a/meta-oe/recipes-extended/redis/redis-7/oe-use-libc-malloc.patch b/meta-oe/recipes-extended/redis/redis-7.2.4/oe-use-libc-malloc.patch
index bf6d0cf3c1..7b601e02a9 100644
--- a/meta-oe/recipes-extended/redis/redis-7/oe-use-libc-malloc.patch
+++ b/meta-oe/recipes-extended/redis/redis-7.2.4/oe-use-libc-malloc.patch
@@ -1,4 +1,4 @@
-From 88da6b19ecd00747769663e913aba5e9569c489d Mon Sep 17 00:00:00 2001
+From 38a5f403b033d03cdac3ff814687d83f61527d8e Mon Sep 17 00:00:00 2001
From: Venture Research <tech@ventureresearch.com>
Date: Wed, 6 Feb 2013 20:51:02 -0600
Subject: [PATCH] hack to force use of libc malloc
@@ -15,11 +15,13 @@ Update to work with 4.0.8
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
+Upstream-Status: Pending
+
src/Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/Makefile b/src/Makefile
-index 2a0d74d..ddabd44 100644
+index ecbd275..39decee 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -13,7 +13,8 @@
@@ -30,5 +32,5 @@ index 2a0d74d..ddabd44 100644
+# use fake uname option to force use of generic libc
+uname_S := "USE_LIBC_MALLOC"
uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
- OPTIMIZATION?=-O2
- DEPENDENCY_TARGETS=hiredis linenoise lua hdr_histogram
+ CLANG := $(findstring clang,$(shell sh -c '$(CC) --version | head -1'))
+ OPTIMIZATION?=-O3
diff --git a/meta-oe/recipes-extended/redis/redis-7/redis.conf b/meta-oe/recipes-extended/redis/redis-7.2.4/redis.conf
index 75037d6dc8..75037d6dc8 100644
--- a/meta-oe/recipes-extended/redis/redis-7/redis.conf
+++ b/meta-oe/recipes-extended/redis/redis-7.2.4/redis.conf
diff --git a/meta-oe/recipes-extended/redis/redis-7/redis.service b/meta-oe/recipes-extended/redis/redis-7.2.4/redis.service
index a52204cc70..b7791d0df4 100644
--- a/meta-oe/recipes-extended/redis/redis-7/redis.service
+++ b/meta-oe/recipes-extended/redis/redis-7.2.4/redis.service
@@ -10,6 +10,7 @@ ExecStop=/usr/bin/redis-cli shutdown
Restart=always
LimitNOFILE=10032
Type=notify
+StateDirectory=redis
[Install]
WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/redis/redis-7/init-redis-server b/meta-oe/recipes-extended/redis/redis-7/init-redis-server
deleted file mode 100755
index 6014d70c0e..0000000000
--- a/meta-oe/recipes-extended/redis/redis-7/init-redis-server
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-#
-### BEGIN INIT INFO
-# Provides: redis-server
-# Required-Start: $network
-# Required-Stop: $network
-# Default-Start: S 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Redis, a key-value store
-# Description: Redis is an open source, advanced key-value store.
-# http://redis.io
-### END INIT INFO
-
-test -f /usr/bin/redis-server || exit 0
-
-ARGS="/etc/redis/redis.conf"
-
-case "$1" in
- start)
- echo "Starting redis-server..."
- start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS
- ;;
- stop)
- echo "Stopping redis-server..."
- start-stop-daemon --stop --quiet --exec /usr/bin/redis-server
- ;;
- restart)
- echo "Stopping redis-server..."
- start-stop-daemon --stop --quiet --exec /usr/bin/redis-server
- echo "Starting redis-server..."
- start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS
- ;;
- *)
- echo "Usage: /etc/init.d/redis-server {start|stop|restart}"
- exit 1
- ;;
-esac
-
-exit 0
-
diff --git a/meta-oe/recipes-extended/redis/redis/0006-Define-correct-gregs-for-RISCV32.patch b/meta-oe/recipes-extended/redis/redis/0006-Define-correct-gregs-for-RISCV32.patch
index b2d1a32eda..9d7e502717 100644
--- a/meta-oe/recipes-extended/redis/redis/0006-Define-correct-gregs-for-RISCV32.patch
+++ b/meta-oe/recipes-extended/redis/redis/0006-Define-correct-gregs-for-RISCV32.patch
@@ -1,4 +1,4 @@
-From 6134b471c35df826ccb41aab9a47e5c89e15a0c4 Mon Sep 17 00:00:00 2001
+From 26bd72f3b8de22e5036d86e6c79f815853b83473 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 26 Oct 2020 21:32:22 -0700
Subject: [PATCH] Define correct gregs for RISCV32
@@ -13,10 +13,10 @@ Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/src/debug.c b/src/debug.c
-index e7fec29..5abb404 100644
+index 5318c14..8c21b47 100644
--- a/src/debug.c
+++ b/src/debug.c
-@@ -1039,7 +1039,9 @@ static void *getMcontextEip(ucontext_t *uc) {
+@@ -1055,7 +1055,9 @@ static void* getAndSetMcontextEip(ucontext_t *uc, void *eip) {
#endif
#elif defined(__linux__)
/* Linux */
@@ -24,10 +24,10 @@ index e7fec29..5abb404 100644
+ #if defined(__riscv) && __riscv_xlen == 32
+ return (void*) uc->uc_mcontext.__gregs[REG_PC];
+ #elif defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
- return (void*) uc->uc_mcontext.gregs[14]; /* Linux 32 */
+ GET_SET_RETURN(uc->uc_mcontext.gregs[14], eip);
#elif defined(__X86_64__) || defined(__x86_64__)
- return (void*) uc->uc_mcontext.gregs[16]; /* Linux 64 */
-@@ -1206,8 +1208,28 @@ void logRegisters(ucontext_t *uc) {
+ GET_SET_RETURN(uc->uc_mcontext.gregs[16], eip);
+@@ -1222,8 +1224,28 @@ void logRegisters(ucontext_t *uc) {
#endif
/* Linux */
#elif defined(__linux__)
@@ -57,3 +57,6 @@ index e7fec29..5abb404 100644
serverLog(LL_WARNING,
"\n"
"EAX:%08lx EBX:%08lx ECX:%08lx EDX:%08lx\n"
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch b/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch
index 878cd36973..d2a1b45e66 100644
--- a/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch
+++ b/meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch
@@ -14,6 +14,8 @@ Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Reworked for 6.0.4
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
+Upstream-Status: Pending
+
deps/hiredis/Makefile | 2 --
1 file changed, 2 deletions(-)
diff --git a/meta-oe/recipes-extended/redis/redis/init-redis-server b/meta-oe/recipes-extended/redis/redis/init-redis-server
index 6014d70c0e..c5f335f57d 100755
--- a/meta-oe/recipes-extended/redis/redis/init-redis-server
+++ b/meta-oe/recipes-extended/redis/redis/init-redis-server
@@ -27,6 +27,37 @@ case "$1" in
restart)
echo "Stopping redis-server..."
start-stop-daemon --stop --quiet --exec /usr/bin/redis-server
+
+ # Since busybox implementation ignores --retry arguments repeatedly check
+ # if the process is still running and try another signal after a timeout,
+ # efectively simulating a stop with --retry=TERM/5/KILL/5 schedule.
+ waitAfterTerm=5000000 # us / 5000 ms / 5 s
+ waitAfterKill=5000000 # us / 5000 ms / 5 s
+ waitStep=100000 # us / 100 ms / 0.1 s
+ waited=0
+ start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
+ processOff=$?
+ while [ $processOff -eq 0 ] && [ $waited -le $waitAfterTerm ] ; do
+ usleep ${waitStep}
+ ((waited+=${waitStep}))
+ start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
+ processOff=$?
+ done
+ if [ $processOff -eq 0 ] ; then
+ start-stop-daemon --stop --signal KILL --exec /usr/bin/redis-server
+ start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
+ processOff=$?
+ fi
+ waited=0
+ while [ $processOff -eq 0 ] && [ $waited -le $waitAfterKill ] ; do
+ usleep ${waitStep}
+ ((waited+=${waitStep}))
+ start-stop-daemon --stop --test --quiet --exec /usr/bin/redis-server
+ processOff=$?
+ done
+ # Here $processOff will indicate if waiting and retrying according to
+ # the schedule ended in a successfull stop or not.
+
echo "Starting redis-server..."
start-stop-daemon --start --quiet --exec /usr/bin/redis-server -- $ARGS
;;
diff --git a/meta-oe/recipes-extended/redis/redis/lua-update-Makefile-to-use-environment-build-setting.patch b/meta-oe/recipes-extended/redis/redis/lua-update-Makefile-to-use-environment-build-setting.patch
index 1619e9db35..aade7afd06 100644
--- a/meta-oe/recipes-extended/redis/redis/lua-update-Makefile-to-use-environment-build-setting.patch
+++ b/meta-oe/recipes-extended/redis/redis/lua-update-Makefile-to-use-environment-build-setting.patch
@@ -15,6 +15,8 @@ Signed-off-by: Armin Kuster <akust808@gmail.com>
updated to work wtih 6.2.1
Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
---
+Upstream-Status: Pending
+
deps/Makefile | 1 -
deps/lua/Makefile | 1 -
deps/lua/src/Makefile | 16 ++++++----------
diff --git a/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch b/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch
index a0f66b845e..e76bdbc263 100644
--- a/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch
+++ b/meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch
@@ -15,6 +15,8 @@ Update to work with 4.0.8
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
+Upstream-Status: Pending
+
src/Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/redis/redis/redis.service b/meta-oe/recipes-extended/redis/redis/redis.service
index 36d29852da..f98f2d19e8 100644
--- a/meta-oe/recipes-extended/redis/redis/redis.service
+++ b/meta-oe/recipes-extended/redis/redis/redis.service
@@ -9,6 +9,7 @@ ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/bin/redis-cli shutdown
Restart=always
LimitNOFILE=10032
+StateDirectory=redis
[Install]
WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/redis/redis_6.2.14.bb b/meta-oe/recipes-extended/redis/redis_6.2.14.bb
new file mode 100644
index 0000000000..fa430ce402
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis_6.2.14.bb
@@ -0,0 +1,66 @@
+SUMMARY = "Redis key-value store"
+DESCRIPTION = "Redis is an open source, advanced key-value store."
+HOMEPAGE = "http://redis.io"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ffdd6c926faaece928cf9d9640132d2"
+DEPENDS = "readline lua ncurses"
+
+SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
+ file://redis.conf \
+ file://init-redis-server \
+ file://redis.service \
+ file://hiredis-use-default-CC-if-it-is-set.patch \
+ file://lua-update-Makefile-to-use-environment-build-setting.patch \
+ file://oe-use-libc-malloc.patch \
+ file://0001-src-Do-not-reset-FINAL_LIBS.patch \
+ file://GNU_SOURCE.patch \
+ file://0006-Define-correct-gregs-for-RISCV32.patch \
+ "
+SRC_URI[sha256sum] = "34e74856cbd66fdb3a684fb349d93961d8c7aa668b06f81fd93ff267d09bc277"
+
+inherit autotools-brokensep update-rc.d systemd useradd
+
+FINAL_LIBS:x86:toolchain-clang = "-latomic"
+FINAL_LIBS:riscv32:toolchain-clang = "-latomic"
+FINAL_LIBS:mips = "-latomic"
+FINAL_LIBS:arm = "-latomic"
+FINAL_LIBS:powerpc = "-latomic"
+
+export FINAL_LIBS
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --home-dir /var/lib/redis -g redis --shell /bin/false redis"
+GROUPADD_PARAM:${PN} = "--system redis"
+
+REDIS_ON_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}"
+
+do_compile:prepend() {
+ (cd deps && oe_runmake hiredis lua linenoise)
+}
+
+do_install() {
+ export PREFIX=${D}/${prefix}
+ oe_runmake install
+ install -d ${D}/${sysconfdir}/redis
+ install -m 0644 ${WORKDIR}/redis.conf ${D}/${sysconfdir}/redis/redis.conf
+ install -d ${D}/${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/init-redis-server ${D}/${sysconfdir}/init.d/redis-server
+ install -d ${D}/var/lib/redis/
+ chown redis.redis ${D}/var/lib/redis/
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/redis.service ${D}${systemd_system_unitdir}
+ sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${systemd_system_unitdir}/redis.service
+
+ if [ "${REDIS_ON_SYSTEMD}" = true ]; then
+ sed -i 's!daemonize yes!# daemonize yes!' ${D}/${sysconfdir}/redis/redis.conf
+ fi
+}
+
+CONFFILES:${PN} = "${sysconfdir}/redis/redis.conf"
+
+INITSCRIPT_NAME = "redis-server"
+INITSCRIPT_PARAMS = "defaults 87"
+
+SYSTEMD_SERVICE:${PN} = "redis.service"
diff --git a/meta-oe/recipes-extended/redis/redis_6.2.7.bb b/meta-oe/recipes-extended/redis/redis_6.2.7.bb
deleted file mode 100644
index 7f922a4e0f..0000000000
--- a/meta-oe/recipes-extended/redis/redis_6.2.7.bb
+++ /dev/null
@@ -1,66 +0,0 @@
-SUMMARY = "Redis key-value store"
-DESCRIPTION = "Redis is an open source, advanced key-value store."
-HOMEPAGE = "http://redis.io"
-SECTION = "libs"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ffdd6c926faaece928cf9d9640132d2"
-DEPENDS = "readline lua ncurses"
-
-SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
- file://redis.conf \
- file://init-redis-server \
- file://redis.service \
- file://hiredis-use-default-CC-if-it-is-set.patch \
- file://lua-update-Makefile-to-use-environment-build-setting.patch \
- file://oe-use-libc-malloc.patch \
- file://0001-src-Do-not-reset-FINAL_LIBS.patch \
- file://GNU_SOURCE.patch \
- file://0006-Define-correct-gregs-for-RISCV32.patch \
- "
-SRC_URI[sha256sum] = "b7a79cc3b46d3c6eb52fa37dde34a4a60824079ebdfb3abfbbfa035947c55319"
-
-inherit autotools-brokensep update-rc.d systemd useradd
-
-FINAL_LIBS:x86:toolchain-clang = "-latomic"
-FINAL_LIBS:riscv32:toolchain-clang = "-latomic"
-FINAL_LIBS:mips = "-latomic"
-FINAL_LIBS:arm = "-latomic"
-FINAL_LIBS:powerpc = "-latomic"
-
-export FINAL_LIBS
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --home-dir /var/lib/redis -g redis --shell /bin/false redis"
-GROUPADD_PARAM:${PN} = "--system redis"
-
-REDIS_ON_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}"
-
-do_compile:prepend() {
- (cd deps && oe_runmake hiredis lua linenoise)
-}
-
-do_install() {
- export PREFIX=${D}/${prefix}
- oe_runmake install
- install -d ${D}/${sysconfdir}/redis
- install -m 0644 ${WORKDIR}/redis.conf ${D}/${sysconfdir}/redis/redis.conf
- install -d ${D}/${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/init-redis-server ${D}/${sysconfdir}/init.d/redis-server
- install -d ${D}/var/lib/redis/
- chown redis.redis ${D}/var/lib/redis/
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/redis.service ${D}${systemd_system_unitdir}
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${systemd_system_unitdir}/redis.service
-
- if [ "${REDIS_ON_SYSTEMD}" = true ]; then
- sed -i 's!daemonize yes!# daemonize yes!' ${D}/${sysconfdir}/redis/redis.conf
- fi
-}
-
-CONFFILES:${PN} = "${sysconfdir}/redis/redis.conf"
-
-INITSCRIPT_NAME = "redis-server"
-INITSCRIPT_PARAMS = "defaults 87"
-
-SYSTEMD_SERVICE:${PN} = "redis.service"
diff --git a/meta-oe/recipes-extended/redis/redis_7.0.4.bb b/meta-oe/recipes-extended/redis/redis_7.0.4.bb
deleted file mode 100644
index 35165923c2..0000000000
--- a/meta-oe/recipes-extended/redis/redis_7.0.4.bb
+++ /dev/null
@@ -1,72 +0,0 @@
-SUMMARY = "Redis key-value store"
-DESCRIPTION = "Redis is an open source, advanced key-value store."
-HOMEPAGE = "http://redis.io"
-SECTION = "libs"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ffdd6c926faaece928cf9d9640132d2"
-DEPENDS = "readline lua ncurses"
-
-FILESPATH =. "${FILE_DIRNAME}/${BPN}-7:"
-
-SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
- file://redis.conf \
- file://init-redis-server \
- file://redis.service \
- file://hiredis-use-default-CC-if-it-is-set.patch \
- file://lua-update-Makefile-to-use-environment-build-setting.patch \
- file://oe-use-libc-malloc.patch \
- file://0001-src-Do-not-reset-FINAL_LIBS.patch \
- file://GNU_SOURCE-7.patch \
- file://0006-Define-correct-gregs-for-RISCV32.patch \
- "
-SRC_URI[sha256sum] = "f0e65fda74c44a3dd4fa9d512d4d4d833dd0939c934e946a5c622a630d057f2f"
-
-inherit autotools-brokensep update-rc.d systemd useradd
-
-FINAL_LIBS:x86:toolchain-clang = "-latomic"
-FINAL_LIBS:riscv32:toolchain-clang = "-latomic"
-FINAL_LIBS:mips = "-latomic"
-FINAL_LIBS:arm = "-latomic"
-FINAL_LIBS:powerpc = "-latomic"
-
-export FINAL_LIBS
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --home-dir /var/lib/redis -g redis --shell /bin/false redis"
-GROUPADD_PARAM:${PN} = "--system redis"
-
-PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "USE_SYSTEMD=yes,USE_SYSTEMD=no,systemd"
-
-EXTRA_OEMAKE += "${PACKAGECONFIG_CONFARGS}"
-
-do_compile:prepend() {
- (cd deps && oe_runmake hiredis lua linenoise)
-}
-
-do_install() {
- export PREFIX=${D}/${prefix}
- oe_runmake install
- install -d ${D}/${sysconfdir}/redis
- install -m 0644 ${WORKDIR}/redis.conf ${D}/${sysconfdir}/redis/redis.conf
- install -d ${D}/${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/init-redis-server ${D}/${sysconfdir}/init.d/redis-server
- install -d ${D}/var/lib/redis/
- chown redis.redis ${D}/var/lib/redis/
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/redis.service ${D}${systemd_system_unitdir}
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${systemd_system_unitdir}/redis.service
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- sed -i 's!daemonize yes!# daemonize yes!' ${D}/${sysconfdir}/redis/redis.conf
- sed -i 's!supervised no!supervised systemd!' ${D}/${sysconfdir}/redis/redis.conf
- fi
-}
-
-CONFFILES:${PN} = "${sysconfdir}/redis/redis.conf"
-
-INITSCRIPT_NAME = "redis-server"
-INITSCRIPT_PARAMS = "defaults 87"
-
-SYSTEMD_SERVICE:${PN} = "redis.service"
diff --git a/meta-oe/recipes-extended/redis/redis_7.2.4.bb b/meta-oe/recipes-extended/redis/redis_7.2.4.bb
new file mode 100644
index 0000000000..5d64e9ba78
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis_7.2.4.bb
@@ -0,0 +1,70 @@
+SUMMARY = "Redis key-value store"
+DESCRIPTION = "Redis is an open source, advanced key-value store."
+HOMEPAGE = "http://redis.io"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ffdd6c926faaece928cf9d9640132d2"
+DEPENDS = "readline lua ncurses"
+
+SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
+ file://redis.conf \
+ file://init-redis-server \
+ file://redis.service \
+ file://hiredis-use-default-CC-if-it-is-set.patch \
+ file://lua-update-Makefile-to-use-environment-build-setting.patch \
+ file://oe-use-libc-malloc.patch \
+ file://0001-src-Do-not-reset-FINAL_LIBS.patch \
+ file://GNU_SOURCE-7.patch \
+ file://0006-Define-correct-gregs-for-RISCV32.patch \
+ "
+SRC_URI[sha256sum] = "8d104c26a154b29fd67d6568b4f375212212ad41e0c2caa3d66480e78dbd3b59"
+
+inherit autotools-brokensep pkgconfig update-rc.d systemd useradd
+
+FINAL_LIBS:x86:toolchain-clang = "-latomic"
+FINAL_LIBS:riscv32:toolchain-clang = "-latomic"
+FINAL_LIBS:mips = "-latomic"
+FINAL_LIBS:arm = "-latomic"
+FINAL_LIBS:powerpc = "-latomic"
+
+export FINAL_LIBS
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --home-dir /var/lib/redis -g redis --shell /bin/false redis"
+GROUPADD_PARAM:${PN} = "--system redis"
+
+PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "USE_SYSTEMD=yes,USE_SYSTEMD=no,systemd"
+
+EXTRA_OEMAKE += "${PACKAGECONFIG_CONFARGS}"
+
+do_compile:prepend() {
+ (cd deps && oe_runmake hiredis lua linenoise)
+}
+
+do_install() {
+ export PREFIX=${D}/${prefix}
+ oe_runmake install
+ install -d ${D}/${sysconfdir}/redis
+ install -m 0644 ${WORKDIR}/redis.conf ${D}/${sysconfdir}/redis/redis.conf
+ install -d ${D}/${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/init-redis-server ${D}/${sysconfdir}/init.d/redis-server
+ install -d ${D}/var/lib/redis/
+ chown redis.redis ${D}/var/lib/redis/
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/redis.service ${D}${systemd_system_unitdir}
+ sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${systemd_system_unitdir}/redis.service
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ sed -i 's!daemonize yes!# daemonize yes!' ${D}/${sysconfdir}/redis/redis.conf
+ sed -i 's!supervised no!supervised systemd!' ${D}/${sysconfdir}/redis/redis.conf
+ fi
+}
+
+CONFFILES:${PN} = "${sysconfdir}/redis/redis.conf"
+
+INITSCRIPT_NAME = "redis-server"
+INITSCRIPT_PARAMS = "defaults 87"
+
+SYSTEMD_SERVICE:${PN} = "redis.service"
diff --git a/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb b/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb
index 961fe7cef7..cbe1af2854 100644
--- a/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb
+++ b/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb
@@ -10,7 +10,7 @@ SRCREV = "3af04acd38bbc61bbdcdd931dcf234c971aa5336"
PV = "1.8.0"
SRC_URI = "\
- git://github.com/oetiker/rrdtool-1.x.git;branch=master;protocol=http;;protocol=https \
+ git://github.com/oetiker/rrdtool-1.x.git;protocol=https;branch=master \
"
S = "${WORKDIR}/git"
@@ -124,8 +124,8 @@ RDEPENDS:${PN}-perl = "perl perl-module-lib perl-module-getopt-long perl-module-
DESCRIPTION:${PN}-python = \
"The ${PN}-python package includes RRDtool bindings for python."
-FILES:${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*"
RDEPENDS:${PN}-python = "python3"
FILES:${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/RRDs/.debug \
- ${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug"
+ ${PYTHON_SITEPACKAGES_DIR}/.debug"
diff --git a/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb b/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb
deleted file mode 100644
index 24ad172674..0000000000
--- a/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A fork of json-c library"
-HOMEPAGE = "https://github.com/rsyslog/libfastjson"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a958bb07122368f3e1d9b2efe07d231f"
-
-DEPENDS = ""
-
-SRC_URI = "git://github.com/rsyslog/libfastjson.git;protocol=https;branch=master"
-
-SRCREV = "0293afb3913f760c449348551cca4d2df59c1a00"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
diff --git a/meta-oe/recipes-extended/rsyslog/libfastjson_1.2304.0.bb b/meta-oe/recipes-extended/rsyslog/libfastjson_1.2304.0.bb
new file mode 100644
index 0000000000..f16126d936
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/libfastjson_1.2304.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A fork of json-c library"
+HOMEPAGE = "https://github.com/rsyslog/libfastjson"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a958bb07122368f3e1d9b2efe07d231f"
+
+DEPENDS = ""
+
+SRC_URI = "git://github.com/rsyslog/libfastjson.git;protocol=https;branch=master"
+
+SRCREV = "3a8402c1de7c7747c95229db26d8d32fb85a7a52"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
diff --git a/meta-oe/recipes-extended/rsyslog/librelp/0001-Fix-function-inline-errors-in-debug-optimization-Og.patch b/meta-oe/recipes-extended/rsyslog/librelp/0001-Fix-function-inline-errors-in-debug-optimization-Og.patch
new file mode 100644
index 0000000000..10e2b564cc
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/librelp/0001-Fix-function-inline-errors-in-debug-optimization-Og.patch
@@ -0,0 +1,34 @@
+From 6d575d98565ce3119a14359eecb11ccdff92a303 Mon Sep 17 00:00:00 2001
+From: Yash Shinde <53660251+Yashinde145@users.noreply.github.com>
+Date: Thu, 29 Jun 2023 18:10:15 +0530
+Subject: [PATCH] Fix function inline errors in debug optimization (-Og)
+
+Compiler does not inline any functions when using debug optimization (-Og).
+Hence, remove -Winline flag when compiling with debug optimization.
+
+Signed-off-by: Nicolas Marguet <nicolas.marguet@windriver.com>
+---
+Upstream-Status: Backport [https://github.com/rsyslog/librelp/commit/6d575d9]
+
+ configure.ac | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 21c1fde..1204c4e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -230,6 +230,12 @@ if test "$enable_debug" = "no"; then
+ AC_DEFINE(NDEBUG, 1, [Defined if debug mode is disabled.])
+ fi
+
++#Compiler does not inline any functions when not optimizing(-Og).
++#Hence, remove -Winline flag when DEBUG is enabled.
++#ifdef DEBUG
++WARN_CFLAGS="$(echo "$WARN_CFLAGS" | sed s/-Winline//g)"
++#endif
++
+ # valgrind
+ AC_ARG_ENABLE(valgrind,
+ [AS_HELP_STRING([--enable-valgrind],[Enable valgrind tests@<:@default=yes@:>@])],
+--
+2.39.0
diff --git a/meta-oe/recipes-extended/rsyslog/librelp/0001-tcp-fix-some-compiler-warnings-with-enable-tls-opens.patch b/meta-oe/recipes-extended/rsyslog/librelp/0001-tcp-fix-some-compiler-warnings-with-enable-tls-opens.patch
new file mode 100644
index 0000000000..3ce5926333
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/librelp/0001-tcp-fix-some-compiler-warnings-with-enable-tls-opens.patch
@@ -0,0 +1,88 @@
+From 6e9b27f04132287463c89d3be0ce4f506944920d Mon Sep 17 00:00:00 2001
+From: Patrick Williams <patrick@stwcx.xyz>
+Date: Fri, 3 Feb 2023 16:11:29 -0600
+Subject: [PATCH] tcp: fix some compiler warnings with enable-tls-openssl
+
+When --enable-tls=no and --enable-tls-openssl=yes, the following
+compiler errors are reported:
+
+```
+| ../../git/src/tcp.c:3765:1: error: no previous declaration for 'relpTcpGetRtryDirection_gtls' [-Werror=missing-declarations]
+| 3765 | relpTcpGetRtryDirection_gtls(LIBRELP_ATTR_UNUSED relpTcp_t *const pThis)
+| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
+| ../../git/src/tcp.c:3583:1: error: 'relpTcpChkPeerName' defined but not used [-Werror=unused-function]
+| 3583 | relpTcpChkPeerName(NOTLS_UNUSED relpTcp_t *const pThis, NOTLS_UNUSED void* cert)
+| | ^~~~~~~~~~~~~~~~~~
+```
+
+Fix these by:
+ 1. Add static on the openssl path for relpTcpGetRtryDirection_gtls.
+ 2. Move the relpTcpChkPeerName forward declaration to another ifdef
+ leg.
+ 3. Wrap relpTcpChkPeerName in gnutls-based ifdef.
+ 4. Remove relpTcpChkPeerName_gtls from openssl path.
+
+Upstream-Status: Backport [https://github.com/rsyslog/librelp/pull/255]
+Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
+---
+ src/tcp.c | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/src/tcp.c b/src/tcp.c
+index 7a75cc4..18cffda 100644
+--- a/src/tcp.c
++++ b/src/tcp.c
+@@ -132,12 +132,12 @@ callOnErr(const relpTcp_t *__restrict__ const pThis,
+ static int LIBRELP_ATTR_NONNULL() relpTcpGetCN(char *const namebuf, const size_t lenNamebuf, const char *const szDN);
+ #ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
+ static int relpTcpVerifyCertificateCallback(gnutls_session_t session);
++static int relpTcpChkPeerName(relpTcp_t *const pThis, void* cert);
+ #endif /* #ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION */
+ #if defined(HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION) || defined(ENABLE_TLS_OPENSSL)
+ static void relpTcpChkOnePeerName(relpTcp_t *const pThis, char *peername, int *pbFoundPositiveMatch);
+ static int relpTcpAddToCertNamesBuffer(relpTcp_t *const pThis, char *const buf,
+ const size_t buflen, int *p_currIdx, const char *const certName);
+-static int relpTcpChkPeerName(relpTcp_t *const pThis, void* cert);
+ #endif /* defined(HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION) || defined(ENABLE_TLS_OPENSSL) */
+
+
+@@ -2820,11 +2820,6 @@ relpTcpLstnInitTLS_gtls(LIBRELP_ATTR_UNUSED relpTcp_t *const pThis)
+ {
+ return RELP_RET_ERR_INTERNAL;
+ }
+-static int
+-relpTcpChkPeerName_gtls(LIBRELP_ATTR_UNUSED relpTcp_t *const pThis, LIBRELP_ATTR_UNUSED void *vcert)
+-{
+- return RELP_RET_ERR_INTERNAL;
+-}
+ #endif /* defined(ENABLE_TLS)*/
+
+
+@@ -3579,6 +3574,7 @@ finalize_it:
+
+ }
+
++#ifdef HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
+ static int
+ relpTcpChkPeerName(NOTLS_UNUSED relpTcp_t *const pThis, NOTLS_UNUSED void* cert)
+ {
+@@ -3592,6 +3588,7 @@ relpTcpChkPeerName(NOTLS_UNUSED relpTcp_t *const pThis, NOTLS_UNUSED void* cert)
+ #endif /* #ifdef WITH_TLS*/
+ LEAVE_RELPFUNC;
+ }
++#endif
+
+ static relpRetVal LIBRELP_ATTR_NONNULL()
+ relpTcpAcceptConnReqInitTLS(NOTLS_UNUSED relpTcp_t *const pThis, NOTLS_UNUSED relpSrv_t *const pSrv)
+@@ -3761,7 +3758,7 @@ relpTcpGetRtryDirection_gtls(relpTcp_t *const pThis)
+ return gnutls_record_get_direction(pThis->session);
+ }
+ #else /* #ifdef ENABLE_TLS */
+-relpRetVal LIBRELP_ATTR_NONNULL()
++static relpRetVal LIBRELP_ATTR_NONNULL()
+ relpTcpGetRtryDirection_gtls(LIBRELP_ATTR_UNUSED relpTcp_t *const pThis)
+ {
+ return RELP_RET_ERR_INTERNAL;
+--
+2.41.0
+
diff --git a/meta-oe/recipes-extended/rsyslog/librelp/0001-tests-Fix-callback-prototype.patch b/meta-oe/recipes-extended/rsyslog/librelp/0001-tests-Fix-callback-prototype.patch
new file mode 100644
index 0000000000..ba081926e1
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/librelp/0001-tests-Fix-callback-prototype.patch
@@ -0,0 +1,49 @@
+From 2a7e26510cf9276b7e640ca8282cc1c5e46075d0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 15 Aug 2023 11:59:40 -0700
+Subject: [PATCH] tests: Fix callback prototype
+
+clang errors about it
+
+| ../../git/tests/receive.c:71:34: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
+| 71 | hdlr_enable(int sig, void (*hdlr)())
+| | ^
+| | void
+| 1 error generated.
+
+Upstream-Status: Submitted [https://github.com/rsyslog/librelp/pull/260]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/receive.c | 2 +-
+ tests/send.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/receive.c b/tests/receive.c
+index f376cb4..c12e911 100644
+--- a/tests/receive.c
++++ b/tests/receive.c
+@@ -68,7 +68,7 @@ doSleep(int iSeconds, const int iuSeconds)
+ }
+
+ static void
+-hdlr_enable(int sig, void (*hdlr)())
++hdlr_enable(int sig, void (*hdlr)(const int))
+ {
+ struct sigaction sigAct;
+ memset(&sigAct, 0, sizeof (sigAct));
+diff --git a/tests/send.c b/tests/send.c
+index d7e90f0..1b1df4f 100644
+--- a/tests/send.c
++++ b/tests/send.c
+@@ -57,7 +57,7 @@ struct usrdata { /* used for testing user pointer pass-back */
+ struct usrdata *userdata = NULL;
+
+ static void
+-hdlr_enable(int sig, void (*hdlr)())
++hdlr_enable(int sig, void (*hdlr)(const int))
+ {
+ struct sigaction sigAct;
+ memset(&sigAct, 0, sizeof (sigAct));
+--
+2.41.0
+
diff --git a/meta-oe/recipes-extended/rsyslog/librelp/0001-tests-Include-missing-sys-time.h.patch b/meta-oe/recipes-extended/rsyslog/librelp/0001-tests-Include-missing-sys-time.h.patch
new file mode 100644
index 0000000000..6fed23c1d1
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/librelp/0001-tests-Include-missing-sys-time.h.patch
@@ -0,0 +1,41 @@
+From 5c32487a9c127f37141488d416cdb5d5bec6aca1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 19 Aug 2023 10:24:40 -0700
+Subject: [PATCH] tests: Include missing sys/time.h
+
+This is found when building for musl C library systems where sys/time.h
+is not included indirectly and select() and timeval structs are used
+
+Fixes
+
+../../git/tests/receive.c:64:17: error: variable has incomplete type 'struct timeval'
+ 64 | struct timeval tvSelectTimeout;
+ | ^
+../../git/tests/receive.c:64:9: note: forward declaration of 'struct timeval'
+ 64 | struct timeval tvSelectTimeout;
+ | ^
+../../git/tests/receive.c:67:2: error: call to undeclared function 'select'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+ 67 | select(0, NULL, NULL, NULL, &tvSelectTimeout);
+ | ^
+
+Upstream-Status: Submitted [https://github.com/rsyslog/librelp/pull/261]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/receive.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/tests/receive.c b/tests/receive.c
+index f376cb4..e20861e 100644
+--- a/tests/receive.c
++++ b/tests/receive.c
+@@ -33,6 +33,7 @@
+ #include <limits.h>
+ #include <errno.h>
+ #include <signal.h>
++#include <sys/time.h>
+ #include "librelp.h"
+
+ #define TRY(f) { const int TRY_r = f; if(TRY_r != RELP_RET_OK) { \
+--
+2.41.0
+
diff --git a/meta-oe/recipes-extended/rsyslog/librelp/run-ptest b/meta-oe/recipes-extended/rsyslog/librelp/run-ptest
new file mode 100644
index 0000000000..a649a5716f
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/librelp/run-ptest
@@ -0,0 +1,10 @@
+#!/bin/sh
+#
+set -e
+set -o pipefail
+
+SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
+cd ${SCRIPTPATH}
+useradd tester || echo "user already exists"
+su tester -c "make -C tests -k check-TESTS"
+userdel tester
diff --git a/meta-oe/recipes-extended/rsyslog/librelp_1.10.0.bb b/meta-oe/recipes-extended/rsyslog/librelp_1.10.0.bb
deleted file mode 100644
index acdbbb7d1b..0000000000
--- a/meta-oe/recipes-extended/rsyslog/librelp_1.10.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "A reliable logging library"
-HOMEPAGE = "https://github.com/rsyslog/librelp"
-
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1fb9c10ed9fd6826757615455ca893a9"
-
-DEPENDS = "gmp nettle libidn zlib gnutls openssl"
-
-SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https;branch=stable \
-"
-
-SRCREV = "9e749453d51d602d8159717f8a7c27971dcb4c6c"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-CPPFLAGS += "-Wno-error"
diff --git a/meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb b/meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb
new file mode 100644
index 0000000000..9d949c6303
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb
@@ -0,0 +1,86 @@
+SUMMARY = "A reliable logging library"
+HOMEPAGE = "https://github.com/rsyslog/librelp"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1fb9c10ed9fd6826757615455ca893a9"
+
+DEPENDS = "gmp libidn zlib"
+
+SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https;branch=stable \
+ file://0001-Fix-function-inline-errors-in-debug-optimization-Og.patch \
+ file://0001-tests-Fix-callback-prototype.patch \
+ file://0001-tcp-fix-some-compiler-warnings-with-enable-tls-opens.patch \
+ file://0001-tests-Include-missing-sys-time.h.patch \
+ file://run-ptest \
+"
+
+SRCREV = "b421f56d9ee31a966058d23bd23c966221c91396"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig ptest
+
+PACKAGECONFIG ?= "tls-openssl valgrind"
+# Valgrind is not available for RISCV yet
+PACKAGECONFIG:remove:riscv64 = "valgrind"
+PACKAGECONFIG:remove:riscv32 = "valgrind"
+
+PACKAGECONFIG[tls] = "--enable-tls,--disable-tls,gnutls nettle"
+PACKAGECONFIG[tls-openssl] = "--enable-tls-openssl,--disable-tls-openssl,openssl"
+PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,"
+
+# For ptests, copy source tests/*.sh scripts, Makefile and
+# executables and run them with make on target.
+TESTDIR = "tests"
+do_compile_ptest() {
+ echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${TESTDIR}/Makefile
+ oe_runmake -C ${TESTDIR} buildtest-TESTS
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/${TESTDIR}
+
+ # copy source tests/*.sh and python scripts
+ cp -f ${S}/${TESTDIR}/*.sh ${S}/${TESTDIR}/*.py ${D}${PTEST_PATH}/${TESTDIR}
+ # install data files needed by the test scripts on the target
+ cp -f ${S}/${TESTDIR}/*.supp ${D}${PTEST_PATH}/${TESTDIR}
+ cp -rf ${S}/${TESTDIR}/tls-certs ${D}${PTEST_PATH}/${TESTDIR}
+
+ # copy executables
+ find ${B}/${TESTDIR} -type f -executable -exec cp {} ${D}${PTEST_PATH}/${TESTDIR} \;
+ cp -rf ${B}/${TESTDIR}/.libs ${D}${PTEST_PATH}/${TESTDIR}
+ # copy Makefile
+ # run-ptest will run make which runs the executables
+ cp -f ${B}/${TESTDIR}/Makefile ${D}${PTEST_PATH}/${TESTDIR}
+ cp -f ${B}/${TESTDIR}/set-envvars ${D}${PTEST_PATH}/${TESTDIR}
+
+ # give permissions to all users
+ # some tests need to write to this directory
+ chmod 777 -R ${D}${PTEST_PATH}/${TESTDIR}
+
+ # do NOT need to rebuild Makefile or $(check_PROGRAMS)
+ sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+ sed -i 's/^check-TESTS:.*$/check-TESTS:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+
+ # fix the srcdir, top_srcdir, abs_top_builddir
+ sed -i 's,^\(srcdir = \).*,\1${PTEST_PATH}/${TESTDIR},' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+ sed -i 's,^\(top_srcdir = \).*,\1${PTEST_PATH}/${TESTDIR},' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+ sed -i 's,^\(abs_top_builddir = \).*,\1${PTEST_PATH}/,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+
+ # install test-driver
+ install -m 644 ${S}/test-driver ${D}${PTEST_PATH}
+
+ # fix the python3 path for tests/set-envar
+ sed -i -e s:${HOSTTOOLS_DIR}:${bindir}:g ${D}${PTEST_PATH}/${TESTDIR}/set-envvars
+
+ # these 2 scripts need help finding their /usr/lib/librelp/ptest/tests/.libs libraries
+ sed -i 's:${B}/src:${PTEST_PATH}/${TESTDIR}:' ${D}${PTEST_PATH}/${TESTDIR}/send
+ sed -i 's:${B}/src:${PTEST_PATH}/${TESTDIR}:' ${D}${PTEST_PATH}/${TESTDIR}/receive
+}
+
+RDEPENDS:${PN}-ptest += "\
+ make bash coreutils libgcc util-linux gawk grep \
+ python3-core python3-io \
+"
+RRECOMMENDS:${PN}-ptest += "${@bb.utils.filter('PACKAGECONFIG', 'valgrind', d)}"
+
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog/0001-tests-disable-the-check-for-inotify.patch b/meta-oe/recipes-extended/rsyslog/rsyslog/0001-tests-disable-the-check-for-inotify.patch
index 552172d397..c1480406fe 100644
--- a/meta-oe/recipes-extended/rsyslog/rsyslog/0001-tests-disable-the-check-for-inotify.patch
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog/0001-tests-disable-the-check-for-inotify.patch
@@ -12,7 +12,7 @@ since 2.6.13 [1].
(it would require installing the libc headers otherwise,
for the test to detect /usr/include/sys/inotify.h.)
-Upstream-Status: Inappropriate[OE-specific]
+Upstream-Status: Inappropriate [OE-specific]
Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
---
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog/disable-omfile-outchannel.patch b/meta-oe/recipes-extended/rsyslog/rsyslog/disable-omfile-outchannel.patch
new file mode 100644
index 0000000000..a8bbe2b51e
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog/disable-omfile-outchannel.patch
@@ -0,0 +1,23 @@
+tests: Skip omfile-outchannel test as it fails on musl
+
+scanf error in index i=5559
+sequence error detected in rstb_168227_f19f3b245QVE.out.log
+number of lines in file: 5559 rstb_168227_f19f3b245QVE.out.log
+
+Patch is also applied in void linux
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/tests/omfile-outchannel.sh 2021-03-09 05:51:07.000000000 -0600
++++ b/tests/omfile-outchannel.sh 2022-05-26 15:55:23.358520256 -0500
+@@ -1,5 +1,9 @@
+ #!/bin/bash
+ # addd 2018-08-02 by RGerhards, released under ASL 2.0
++
++# This test fails for x86_64-musl, under GitHub's CI/CD. Disable for now.
++exit 77
++
+ . ${srcdir:=.}/diag.sh init
+ export NUMMESSAGES=10000
+ echo "ls -l $RSYSLOG_DYNNAME*
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog_8.2208.0.bb b/meta-oe/recipes-extended/rsyslog/rsyslog_8.2208.0.bb
deleted file mode 100644
index 5b30ecabbd..0000000000
--- a/meta-oe/recipes-extended/rsyslog/rsyslog_8.2208.0.bb
+++ /dev/null
@@ -1,204 +0,0 @@
-SUMMARY = "Rsyslog is an enhanced multi-threaded syslogd"
-DESCRIPTION = "\
-Rsyslog is an enhanced syslogd supporting, among others, MySQL,\
- PostgreSQL, failover log destinations, syslog/tcp, fine grain\
- output format control, high precision timestamps, queued operations\
- and the ability to filter on any message part. It is quite\
- compatible to stock sysklogd and can be used as a drop-in replacement.\
- Its advanced features make it suitable for enterprise-class,\
- encryption protected syslog relay chains while at the same time being\
- very easy to setup for the novice user."
-
-DEPENDS = "zlib libestr libfastjson bison-native flex-native liblogging"
-HOMEPAGE = "http://www.rsyslog.com/"
-LICENSE = "GPL-3.0-only & LGPL-3.0-only & Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=51d9635e646fb75e1b74c074f788e973 \
- file://COPYING.LESSER;md5=cb7903f1e5c39ae838209e130dca270a \
- file://COPYING.ASL20;md5=052f8a09206615ab07326ff8ce2d9d32\
-"
-
-SRC_URI = "http://www.rsyslog.com/download/files/download/rsyslog/${BPN}-${PV}.tar.gz \
- file://initscript \
- file://rsyslog.conf \
- file://rsyslog.logrotate \
- file://rsyslog.service \
- file://use-pkgconfig-to-check-libgcrypt.patch \
- file://run-ptest \
- file://0001-tests-disable-the-check-for-inotify.patch \
-"
-
-SRC_URI:append:libc-musl = " \
- file://0001-Include-sys-time-h.patch \
-"
-
-SRC_URI[sha256sum] = "14de68e7b8e5ab0c5d734f82e2dc9fff22cd7f4710ad690727eb10a7b9b3df5e"
-
-UPSTREAM_CHECK_URI = "https://github.com/rsyslog/rsyslog/releases"
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
-
-inherit autotools pkgconfig systemd update-rc.d ptest
-
-EXTRA_OECONF += "--disable-generate-man-pages ap_cv_atomic_builtins=yes"
-EXTRA_OECONF += "--enable-imfile-tests"
-EXTRA_OECONF:remove:mipsarch = "ap_cv_atomic_builtins=yes"
-EXTRA_OECONF:remove:powerpc = "ap_cv_atomic_builtins=yes"
-EXTRA_OECONF:remove:riscv32 = "ap_cv_atomic_builtins=yes"
-
-# first line is default yes in configure
-PACKAGECONFIG ??= " \
- rsyslogd rsyslogrt klog inet regexp uuid libgcrypt \
- fmhttp imdiag gnutls imfile \
- ${@bb.utils.filter('DISTRO_FEATURES', 'snmp systemd', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'testbench relp ${VALGRIND}', '', d)} \
-"
-
-# default yes in configure
-PACKAGECONFIG[relp] = "--enable-relp,--disable-relp,librelp,"
-PACKAGECONFIG[rsyslogd] = "--enable-rsyslogd,--disable-rsyslogd,,"
-PACKAGECONFIG[rsyslogrt] = "--enable-rsyslogrt,--disable-rsyslogrt,,"
-PACKAGECONFIG[fmhttp] = "--enable-fmhttp,--disable-fmhttp,curl,"
-PACKAGECONFIG[inet] = "--enable-inet,--disable-inet,,"
-PACKAGECONFIG[klog] = "--enable-klog,--disable-klog,,"
-PACKAGECONFIG[regexp] = "--enable-regexp,--disable-regexp,,"
-PACKAGECONFIG[uuid] = "--enable-uuid,--disable-uuid,util-linux,"
-PACKAGECONFIG[libgcrypt] = "--enable-libgcrypt,--disable-libgcrypt,libgcrypt,"
-PACKAGECONFIG[testbench] = "--enable-testbench --enable-omstdout,--disable-testbench --disable-omstdout,,"
-
-# default no in configure
-PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
-PACKAGECONFIG[imdiag] = "--enable-imdiag,--disable-imdiag,,"
-PACKAGECONFIG[imfile] = "--enable-imfile,--disable-imfile,,"
-PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp,"
-PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls,"
-PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
-PACKAGECONFIG[imjournal] = "--enable-imjournal,--disable-imjournal,"
-PACKAGECONFIG[mmjsonparse] = "--enable-mmjsonparse,--disable-mmjsonparse,"
-PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,"
-PACKAGECONFIG[postgresql] = "--enable-pgsql,--disable-pgsql,postgresql,"
-PACKAGECONFIG[libdbi] = "--enable-libdbi,--disable-libdbi,libdbi,"
-PACKAGECONFIG[mail] = "--enable-mail,--disable-mail,,"
-PACKAGECONFIG[valgrind] = ",--without-valgrind-testbench,valgrind,"
-PACKAGECONFIG[imhttp] = "--enable-imhttp,--disable-imhttp,civetweb,"
-
-
-TESTDIR = "tests"
-do_compile_ptest() {
- echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${TESTDIR}/Makefile
- oe_runmake -C ${TESTDIR} buildtest-TESTS
-}
-
-do_install_ptest() {
- # install the tests
- cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}
- cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH}
-
- # give permissions to all users
- # some tests need to write to this directory as user 'daemon'
- chmod 777 -R ${D}${PTEST_PATH}/tests
-
- # do NOT need to rebuild Makefile itself
- sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
- # do NOT need to rebuild $(check_PROGRAMS)
- sed -i 's/^check-TESTS:.*$/check-TESTS:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-
- # fix the srcdir, top_srcdir
- sed -i 's,^\(srcdir = \).*,\1${PTEST_PATH}/tests,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
- sed -i 's,^\(top_srcdir = \).*,\1${PTEST_PATH}/tests,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
- # fix the abs_top_builddir
- sed -i 's,^\(abs_top_builddir = \).*,\1${PTEST_PATH}/,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
-
- # install test-driver
- install -m 644 ${S}/test-driver ${D}${PTEST_PATH}
-
- # install necessary links
- install -d ${D}${PTEST_PATH}/tools
- ln -sf ${sbindir}/rsyslogd ${D}${PTEST_PATH}/tools/rsyslogd
-
- install -d ${D}${PTEST_PATH}/runtime
- install -d ${D}${PTEST_PATH}/runtime/.libs
- (
- cd ${D}/${libdir}/rsyslog
- allso="*.so"
- for i in $allso; do
- ln -sf ${libdir}/rsyslog/$i ${D}${PTEST_PATH}/runtime/.libs/$i
- done
- )
-
- # fix the module load path with runtime/.libs
- find ${D}${PTEST_PATH}/${TESTDIR} -name "*.conf" -o -name "*.sh" -o -name "*.c" | xargs \
- sed -i -e 's:../plugins/.*/.libs/:../runtime/.libs/:g'
- # fix the python3 path for tests/set-envar
- sed -i -e s:${HOSTTOOLS_DIR}:${bindir}:g ${D}${PTEST_PATH}/tests/set-envvars
-}
-
-do_install:append() {
- install -d "${D}${sysconfdir}/init.d"
- install -d "${D}${sysconfdir}/logrotate.d"
- install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog
- install -m 644 ${WORKDIR}/rsyslog.conf ${D}${sysconfdir}/rsyslog.conf
- install -m 644 ${WORKDIR}/rsyslog.logrotate ${D}${sysconfdir}/logrotate.d/logrotate.rsyslog
- sed -i -e "s#@BINDIR@#${bindir}#g" ${D}${sysconfdir}/logrotate.d/logrotate.rsyslog
-
- if ${@bb.utils.contains('PACKAGECONFIG', 'imjournal', 'true', 'false', d)}; then
- install -d 0755 ${D}${sysconfdir}/rsyslog.d
- echo '$ModLoad imjournal' >> ${D}${sysconfdir}/rsyslog.d/imjournal.conf
- fi
- if ${@bb.utils.contains('PACKAGECONFIG', 'mmjsonparse', 'true', 'false', d)}; then
- install -d 0755 ${D}${sysconfdir}/rsyslog.d
- echo '$ModLoad mmjsonparse' >> ${D}${sysconfdir}/rsyslog.d/mmjsonparse.conf
- fi
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${systemd_system_unitdir}
- install -m 644 ${WORKDIR}/rsyslog.service ${D}${systemd_system_unitdir}
- sed -i -e "s,@sbindir@,${sbindir},g" ${D}${systemd_system_unitdir}/rsyslog.service
- fi
-}
-
-FILES:${PN} += "${bindir}"
-
-INITSCRIPT_NAME = "syslog"
-INITSCRIPT_PARAMS = "defaults"
-
-CONFFILES:${PN} = "${sysconfdir}/rsyslog.conf"
-
-RCONFLICTS:${PN} = "busybox-syslog sysklogd syslog-ng"
-
-RPROVIDES:${PN} += "${PN}-systemd"
-RREPLACES:${PN} += "${PN}-systemd"
-RCONFLICTS:${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE:${PN} = "${BPN}.service"
-
-RDEPENDS:${PN} += "logrotate"
-
-# for rsyslog-ptest
-VALGRIND = "valgrind"
-
-# valgrind supports armv7 and above
-VALGRIND:armv4 = ''
-VALGRIND:armv5 = ''
-VALGRIND:armv6 = ''
-
-# X32 isn't supported by valgrind at this time
-VALGRIND:linux-gnux32 = ''
-VALGRIND:linux-muslx32 = ''
-
-# Disable for some MIPS variants
-VALGRIND:mipsarchr6 = ''
-VALGRIND:linux-gnun32 = ''
-
-# Disable for powerpc64 with musl
-VALGRIND:libc-musl:powerpc64 = ''
-VALGRIND:libc-musl:powerpc64le = ''
-
-# RISC-V support for valgrind is not there yet
-VALGRIND:riscv64 = ""
-VALGRIND:riscv32 = ""
-
-# util-linux: logger needs the -d option
-RDEPENDS:${PN}-ptest += "\
- make diffutils gzip bash gawk coreutils procps \
- libgcc python3-core python3-io python3-json \
- curl util-linux shadow \
- "
-
-RRECOMMENDS:${PN}-ptest += "${TCLIBC}-dbg ${VALGRIND}"
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog_8.2402.0.bb b/meta-oe/recipes-extended/rsyslog/rsyslog_8.2402.0.bb
new file mode 100644
index 0000000000..af46cc14d7
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog_8.2402.0.bb
@@ -0,0 +1,207 @@
+SUMMARY = "Rsyslog is an enhanced multi-threaded syslogd"
+DESCRIPTION = "\
+Rsyslog is an enhanced syslogd supporting, among others, MySQL,\
+ PostgreSQL, failover log destinations, syslog/tcp, fine grain\
+ output format control, high precision timestamps, queued operations\
+ and the ability to filter on any message part. It is quite\
+ compatible to stock sysklogd and can be used as a drop-in replacement.\
+ Its advanced features make it suitable for enterprise-class,\
+ encryption protected syslog relay chains while at the same time being\
+ very easy to setup for the novice user."
+
+DEPENDS = "zlib libestr libfastjson bison-native flex-native liblogging"
+HOMEPAGE = "http://www.rsyslog.com/"
+LICENSE = "GPL-3.0-only & LGPL-3.0-only & Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=51d9635e646fb75e1b74c074f788e973 \
+ file://COPYING.LESSER;md5=cb7903f1e5c39ae838209e130dca270a \
+ file://COPYING.ASL20;md5=052f8a09206615ab07326ff8ce2d9d32\
+"
+
+SRC_URI = "https://www.rsyslog.com/files/download/rsyslog/${BPN}-${PV}.tar.gz \
+ file://initscript \
+ file://rsyslog.conf \
+ file://rsyslog.logrotate \
+ file://rsyslog.service \
+ file://use-pkgconfig-to-check-libgcrypt.patch \
+ file://run-ptest \
+ file://0001-tests-disable-the-check-for-inotify.patch \
+"
+
+SRC_URI:append:libc-musl = " \
+ file://0001-Include-sys-time-h.patch \
+ file://disable-omfile-outchannel.patch \
+"
+
+SRC_URI[sha256sum] = "acbdd8579489df36b4a383dc6909a61b7623807f0aff54c062115f2de7ea85ba"
+
+UPSTREAM_CHECK_URI = "https://github.com/rsyslog/rsyslog/releases"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
+
+inherit autotools pkgconfig systemd update-rc.d ptest
+
+EXTRA_OECONF += "--disable-generate-man-pages ap_cv_atomic_builtins=yes"
+EXTRA_OECONF += "--enable-imfile-tests"
+EXTRA_OECONF:remove:mipsarch = "ap_cv_atomic_builtins=yes"
+EXTRA_OECONF:remove:powerpc = "ap_cv_atomic_builtins=yes"
+EXTRA_OECONF:remove:riscv32 = "ap_cv_atomic_builtins=yes"
+
+# first line is default yes in configure
+PACKAGECONFIG ??= " \
+ rsyslogd rsyslogrt klog inet regexp uuid libcap-ng libgcrypt \
+ fmhttp imdiag openssl imfile \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'snmp systemd', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'testbench relp ${VALGRIND}', '', d)} \
+"
+
+# default yes in configure
+PACKAGECONFIG[relp] = "--enable-relp,--disable-relp,librelp,"
+PACKAGECONFIG[rsyslogd] = "--enable-rsyslogd,--disable-rsyslogd,,"
+PACKAGECONFIG[rsyslogrt] = "--enable-rsyslogrt,--disable-rsyslogrt,,"
+PACKAGECONFIG[fmhttp] = "--enable-fmhttp,--disable-fmhttp,curl,"
+PACKAGECONFIG[inet] = "--enable-inet,--disable-inet,,"
+PACKAGECONFIG[klog] = "--enable-klog,--disable-klog,,"
+PACKAGECONFIG[libcap-ng] = "--enable-libcap-ng,--disable-libcap-ng,libcap-ng,"
+PACKAGECONFIG[regexp] = "--enable-regexp,--disable-regexp,,"
+PACKAGECONFIG[uuid] = "--enable-uuid,--disable-uuid,util-linux,"
+PACKAGECONFIG[libgcrypt] = "--enable-libgcrypt,--disable-libgcrypt,libgcrypt,"
+PACKAGECONFIG[testbench] = "--enable-testbench --enable-omstdout,--disable-testbench --disable-omstdout,,"
+
+# default no in configure
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
+PACKAGECONFIG[imdiag] = "--enable-imdiag,--disable-imdiag,,"
+PACKAGECONFIG[imfile] = "--enable-imfile,--disable-imfile,,"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp,"
+PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls,"
+PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl,"
+PACKAGECONFIG[systemd] = "--enable-libsystemd,--disable-libsystemd,systemd,"
+PACKAGECONFIG[imjournal] = "--enable-imjournal,--disable-imjournal,"
+PACKAGECONFIG[mmjsonparse] = "--enable-mmjsonparse,--disable-mmjsonparse,"
+PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,"
+PACKAGECONFIG[postgresql] = "--enable-pgsql,--disable-pgsql,postgresql,"
+PACKAGECONFIG[libdbi] = "--enable-libdbi,--disable-libdbi,libdbi,"
+PACKAGECONFIG[mail] = "--enable-mail,--disable-mail,,"
+PACKAGECONFIG[valgrind] = ",--without-valgrind-testbench,valgrind,"
+PACKAGECONFIG[imhttp] = "--enable-imhttp,--disable-imhttp,civetweb,"
+
+
+TESTDIR = "tests"
+do_compile_ptest() {
+ echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${TESTDIR}/Makefile
+ oe_runmake -C ${TESTDIR} buildtest-TESTS
+}
+
+do_install_ptest() {
+ # install the tests
+ cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}
+ cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH}
+
+ # give permissions to all users
+ # some tests need to write to this directory as user 'daemon'
+ chmod 777 -R ${D}${PTEST_PATH}/tests
+
+ # do NOT need to rebuild Makefile itself
+ sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+ # do NOT need to rebuild $(check_PROGRAMS)
+ sed -i 's/^check-TESTS:.*$/check-TESTS:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+
+ # fix the srcdir, top_srcdir
+ sed -i 's,^\(srcdir = \).*,\1${PTEST_PATH}/tests,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+ sed -i 's,^\(top_srcdir = \).*,\1${PTEST_PATH}/tests,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+ # fix the abs_top_builddir
+ sed -i 's,^\(abs_top_builddir = \).*,\1${PTEST_PATH}/,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
+
+ # install test-driver
+ install -m 644 ${S}/test-driver ${D}${PTEST_PATH}
+
+ # install necessary links
+ install -d ${D}${PTEST_PATH}/tools
+ ln -sf ${sbindir}/rsyslogd ${D}${PTEST_PATH}/tools/rsyslogd
+
+ install -d ${D}${PTEST_PATH}/runtime
+ install -d ${D}${PTEST_PATH}/runtime/.libs
+ (
+ cd ${D}/${libdir}/rsyslog
+ allso="*.so"
+ for i in $allso; do
+ ln -sf ${libdir}/rsyslog/$i ${D}${PTEST_PATH}/runtime/.libs/$i
+ done
+ )
+
+ # fix the module load path with runtime/.libs
+ find ${D}${PTEST_PATH}/${TESTDIR} -name "*.conf" -o -name "*.sh" -o -name "*.c" | xargs \
+ sed -i -e 's:../plugins/.*/.libs/:../runtime/.libs/:g'
+ # fix the python3 path for tests/set-envar
+ sed -i -e s:${HOSTTOOLS_DIR}:${bindir}:g ${D}${PTEST_PATH}/tests/set-envvars
+}
+
+do_install:append() {
+ install -d "${D}${sysconfdir}/init.d"
+ install -d "${D}${sysconfdir}/logrotate.d"
+ install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog
+ install -m 644 ${WORKDIR}/rsyslog.conf ${D}${sysconfdir}/rsyslog.conf
+ install -m 644 ${WORKDIR}/rsyslog.logrotate ${D}${sysconfdir}/logrotate.d/logrotate.rsyslog
+ sed -i -e "s#@BINDIR@#${bindir}#g" ${D}${sysconfdir}/logrotate.d/logrotate.rsyslog
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'imjournal', 'true', 'false', d)}; then
+ install -d 0755 ${D}${sysconfdir}/rsyslog.d
+ echo '$ModLoad imjournal' >> ${D}${sysconfdir}/rsyslog.d/imjournal.conf
+ fi
+ if ${@bb.utils.contains('PACKAGECONFIG', 'mmjsonparse', 'true', 'false', d)}; then
+ install -d 0755 ${D}${sysconfdir}/rsyslog.d
+ echo '$ModLoad mmjsonparse' >> ${D}${sysconfdir}/rsyslog.d/mmjsonparse.conf
+ fi
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_system_unitdir}
+ install -m 644 ${WORKDIR}/rsyslog.service ${D}${systemd_system_unitdir}
+ sed -i -e "s,@sbindir@,${sbindir},g" ${D}${systemd_system_unitdir}/rsyslog.service
+ fi
+}
+
+FILES:${PN} += "${bindir}"
+
+INITSCRIPT_NAME = "syslog"
+INITSCRIPT_PARAMS = "defaults"
+
+CONFFILES:${PN} = "${sysconfdir}/rsyslog.conf"
+
+RCONFLICTS:${PN} = "busybox-syslog sysklogd syslog-ng"
+
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+
+RDEPENDS:${PN} += "logrotate"
+
+# for rsyslog-ptest
+VALGRIND = "valgrind"
+
+# valgrind supports armv7 and above
+VALGRIND:armv4 = ''
+VALGRIND:armv5 = ''
+VALGRIND:armv6 = ''
+
+# X32 isn't supported by valgrind at this time
+VALGRIND:linux-gnux32 = ''
+VALGRIND:linux-muslx32 = ''
+
+# Disable for some MIPS variants
+VALGRIND:mipsarchr6 = ''
+VALGRIND:linux-gnun32 = ''
+
+# Disable for powerpc64 with musl
+VALGRIND:libc-musl:powerpc64 = ''
+VALGRIND:libc-musl:powerpc64le = ''
+
+# RISC-V support for valgrind is not there yet
+VALGRIND:riscv64 = ""
+VALGRIND:riscv32 = ""
+
+# util-linux: logger needs the -d option
+RDEPENDS:${PN}-ptest += "\
+ make diffutils gzip bash gawk coreutils procps \
+ libgcc python3-core python3-io python3-json \
+ curl util-linux shadow \
+ "
+
+RRECOMMENDS:${PN}-ptest += "${TCLIBC}-dbg ${VALGRIND}"
diff --git a/meta-oe/recipes-extended/s-nail/files/0001-make.rc-set-VAL_MTA.patch b/meta-oe/recipes-extended/s-nail/files/0001-make.rc-set-VAL_MTA.patch
index f4decda141..9007bdbd41 100644
--- a/meta-oe/recipes-extended/s-nail/files/0001-make.rc-set-VAL_MTA.patch
+++ b/meta-oe/recipes-extended/s-nail/files/0001-make.rc-set-VAL_MTA.patch
@@ -16,7 +16,7 @@ Fixes:
# which sendmail
/usr/sbin/sendmail
-Upstream-Status: Inappropriate[oe-specific]
+Upstream-Status: Inappropriate [oe-specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
diff --git a/meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-eh-no-give-up-share-detection.patch b/meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-eh-no-give-up-share-detection.patch
index 2afaaac016..41f98281f8 100644
--- a/meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-eh-no-give-up-share-detection.patch
+++ b/meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-eh-no-give-up-share-detection.patch
@@ -4,7 +4,7 @@ Date: Thu, 9 Jun 2022 18:26:38 +0800
Subject: [PATCH] su_INLINE: eh no; give up, share detection with clang but for
a thing
-Upstream-Status: Backport[https://git.sdaoden.eu/browse/s-nail.git/commit/?id=de2a44c393a39d80ddf12154aec94cace84b19c1]
+Upstream-Status: Backport [https://git.sdaoden.eu/browse/s-nail.git/commit/?id=de2a44c393a39d80ddf12154aec94cace84b19c1]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
diff --git a/meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-gcc-only-GNU-specifics-after-Og.patch b/meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-gcc-only-GNU-specifics-after-Og.patch
index e011f5c712..37ecb0c1ff 100644
--- a/meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-gcc-only-GNU-specifics-after-Og.patch
+++ b/meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-gcc-only-GNU-specifics-after-Og.patch
@@ -3,7 +3,7 @@ From: Steffen Nurpmeso <steffen@sdaoden.eu>
Date: Thu, 9 Jun 2022 18:06:04 +0800
Subject: [PATCH] su_INLINE: gcc: only GNU specifics after -Og
-Upstream-Status: Backport[https://git.sdaoden.eu/browse/s-nail.git/commit/?id=c5544b66c3b4b2e161166562349908a07e324b38]
+Upstream-Status: Backport [https://git.sdaoden.eu/browse/s-nail.git/commit/?id=c5544b66c3b4b2e161166562349908a07e324b38]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
diff --git a/meta-oe/recipes-extended/sanlock/sanlock/0001-include-libgen.h-for-basename.patch b/meta-oe/recipes-extended/sanlock/sanlock/0001-include-libgen.h-for-basename.patch
new file mode 100644
index 0000000000..439ffc6473
--- /dev/null
+++ b/meta-oe/recipes-extended/sanlock/sanlock/0001-include-libgen.h-for-basename.patch
@@ -0,0 +1,32 @@
+From c955ac2a4d57f21351e53a5209346fdc2325a747 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 15:12:02 -0700
+Subject: [PATCH] include libgen.h for basename
+
+basename prototype has been removed from string.h from latest musl [1]
+compilers e.g. clang-18 flags the absense of prototype as error. therefore
+include libgen.h for providing it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ wdmd/main.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/wdmd/main.c b/wdmd/main.c
+index 38a99f3..7014462 100644
+--- a/wdmd/main.c
++++ b/wdmd/main.c
+@@ -15,6 +15,7 @@
+ #include <stddef.h>
+ #include <grp.h>
+ #include <fcntl.h>
++#include <libgen.h>
+ #include <string.h>
+ #include <errno.h>
+ #include <limits.h>
+--
+2.44.0
+
diff --git a/meta-oe/recipes-extended/sanlock/sanlock/setuptools.patch b/meta-oe/recipes-extended/sanlock/sanlock/setuptools.patch
deleted file mode 100644
index c375e10f75..0000000000
--- a/meta-oe/recipes-extended/sanlock/sanlock/setuptools.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Switch to setuptools as distutils is deprecated.
-
-Upstream-Status: Backport [https://pagure.io/sanlock/c/75758fc10db2354dda397d3aba63c7b72a420982]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-diff --git a/python/setup.py b/python/setup.py
-index b3bfaf1..dfbaf21 100644
---- a/python/setup.py
-+++ b/python/setup.py
-@@ -4,7 +4,7 @@
- # modify, copy, or redistribute it subject to the terms and conditions
- # of the GNU General Public License v.2.
-
--from distutils.core import setup, Extension
-+from setuptools import setup, Extension
-
- sanlocklib = ['sanlock']
- sanlock = Extension(name='sanlock',
diff --git a/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb b/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb
deleted file mode 100644
index 3b4ae318c6..0000000000
--- a/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "A shared storage lock manager"
-DESCRIPTION = "sanlock is a lock manager built on shared storage. Hosts with access \
-to the storage can perform locking. An application running on the \
-hosts is given a small amount of space on the shared block device or \
-file, and uses sanlock for its own application-specific synchronization. \
-Internally, the sanlock daemon manages locks using two disk-based \
-lease algorithms: delta leases and paxos leases."
-HOMEPAGE = "https://pagure.io/sanlock"
-SECTION = "utils"
-
-LICENSE = "LGPL-2.0-or-later & GPL-2.0-only & GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://README.license;md5=60487bf0bf429d6b5aa72b6d37a0eb22"
-
-PV .= "+git${SRCPV}"
-
-SRC_URI = "git://pagure.io/sanlock.git;protocol=http;branch=master \
- file://0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch \
- file://setuptools.patch \
- file://0001-add-missing-system-header-string.h.patch \
- "
-SRCREV = "a181e951376d49a82eef17920c8ebedec80b4823"
-
-S = "${WORKDIR}/git"
-
-CVE_CHECK_IGNORE += "\
- CVE-2012-5638 \
-"
-
-DEPENDS = "libaio util-linux"
-
-inherit setuptools3 useradd
-
-SETUPTOOLS_SETUP_PATH = "${S}/python"
-
-do_compile:prepend () {
- oe_runmake -C ${S}/wdmd CMD_LDFLAGS="${LDFLAGS}" LIB_LDFLAGS="${LDFLAGS}"
- oe_runmake -C ${S}/src CMD_LDFLAGS="${LDFLAGS}" LIB_ENTIRE_LDFLAGS="${LDFLAGS}" LIB_CLIENT_LDFLAGS="${LDFLAGS}"
-}
-
-do_install:prepend () {
- oe_runmake -C ${S}/wdmd DESTDIR=${D} LIBDIR=${libdir} install
- oe_runmake -C ${S}/src DESTDIR=${D} LIBDIR=${libdir} install
-}
-
-SANLOCKGROUP ?= "sanlock"
-SANLOCKUSER ?= "sanlock"
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM:${PN} = "--system ${SANLOCKGROUP}"
-USERADD_PARAM:${PN} = "--system -g ${SANLOCKGROUP} -G disk \
- --home-dir /run/${SANLOCKUSER} --no-create-home \
- --shell /sbin/nologin ${SANLOCKUSER}"
diff --git a/meta-oe/recipes-extended/sanlock/sanlock_3.9.1.bb b/meta-oe/recipes-extended/sanlock/sanlock_3.9.1.bb
new file mode 100644
index 0000000000..1d0f8b0103
--- /dev/null
+++ b/meta-oe/recipes-extended/sanlock/sanlock_3.9.1.bb
@@ -0,0 +1,49 @@
+SUMMARY = "A shared storage lock manager"
+DESCRIPTION = "sanlock is a lock manager built on shared storage. Hosts with access \
+to the storage can perform locking. An application running on the \
+hosts is given a small amount of space on the shared block device or \
+file, and uses sanlock for its own application-specific synchronization. \
+Internally, the sanlock daemon manages locks using two disk-based \
+lease algorithms: delta leases and paxos leases."
+HOMEPAGE = "https://pagure.io/sanlock"
+SECTION = "utils"
+
+LICENSE = "LGPL-2.0-or-later & GPL-2.0-only & GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://README.license;md5=60487bf0bf429d6b5aa72b6d37a0eb22"
+
+PV .= "+git"
+
+SRC_URI = "git://pagure.io/sanlock.git;protocol=http;branch=master \
+ file://0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch \
+ file://0001-add-missing-system-header-string.h.patch \
+ file://0001-include-libgen.h-for-basename.patch \
+ "
+SRCREV = "ecf30a1ccf756776dfea440e4cf9b0b54581075f"
+
+S = "${WORKDIR}/git"
+
+CVE_STATUS[CVE-2012-5638] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+
+DEPENDS = "libaio util-linux"
+
+inherit setuptools3 useradd
+
+SETUPTOOLS_SETUP_PATH = "${S}/python"
+
+do_compile:prepend () {
+ oe_runmake -C ${S}/wdmd CMD_LDFLAGS="${LDFLAGS}" LIB_LDFLAGS="${LDFLAGS}"
+ oe_runmake -C ${S}/src CMD_LDFLAGS="${LDFLAGS}" LIB_ENTIRE_LDFLAGS="${LDFLAGS}" LIB_CLIENT_LDFLAGS="${LDFLAGS}"
+}
+
+do_install:prepend () {
+ oe_runmake -C ${S}/wdmd DESTDIR=${D} LIBDIR=${libdir} install
+ oe_runmake -C ${S}/src DESTDIR=${D} LIBDIR=${libdir} install
+}
+
+SANLOCKGROUP ?= "sanlock"
+SANLOCKUSER ?= "sanlock"
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "--system ${SANLOCKGROUP}"
+USERADD_PARAM:${PN} = "--system -g ${SANLOCKGROUP} -G disk \
+ --home-dir /run/${SANLOCKUSER} --no-create-home \
+ --shell /sbin/nologin ${SANLOCKUSER}"
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-stdint.h-system-header-for-UINT16_MAX.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-stdint.h-system-header-for-UINT16_MAX.patch
index c2111a2c10..1c93d42f3c 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-stdint.h-system-header-for-UINT16_MAX.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-stdint.h-system-header-for-UINT16_MAX.patch
@@ -9,6 +9,8 @@ error: 'UINT16_MAX' undeclared (first use in this function)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
interopServerProvider.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.15-fix-provider-debugging.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.15-fix-provider-debugging.patch
index 4fbecaa63f..f21b3b9a5b 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.15-fix-provider-debugging.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.15-fix-provider-debugging.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.4.5/providerDrv.c.orig sblim-sfcb-1.4.5/providerDrv.c
--- sblim-sfcb-1.4.5/providerDrv.c.orig 2013-09-04 12:59:22.140813239 +0200
+++ sblim-sfcb-1.4.5/providerDrv.c 2013-09-04 12:59:40.511870274 +0200
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-maxMsgLen.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-maxMsgLen.patch
index a0dd81653d..941b522b17 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-maxMsgLen.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-maxMsgLen.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.3.16/sfcb.cfg.pre.in.old sblim-sfcb-1.3.16/sfcb.cfg.pre.in
--- sblim-sfcb-1.3.16/sfcb.cfg.pre.in.old 2012-06-13 23:21:09.000000000 +0200
+++ sblim-sfcb-1.3.16/sfcb.cfg.pre.in 2013-06-24 15:34:38.881992781 +0200
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-multilib-man-cfg.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-multilib-man-cfg.patch
index c8cece2c20..a175d1b063 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-multilib-man-cfg.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-multilib-man-cfg.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.3.16/man/sfcbd.1.pre.in.orig sblim-sfcb-1.3.16/man/sfcbd.1.pre.in
--- sblim-sfcb-1.3.16/man/sfcbd.1.pre.in.orig 2014-02-26 14:05:32.213091734 +0100
+++ sblim-sfcb-1.3.16/man/sfcbd.1.pre.in 2014-02-26 15:10:54.476196379 +0100
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch
index 7f95a9da3f..83d4bbcd1e 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.3.9/man/sfcbrepos.1.pre.in.orig sblim-sfcb-1.3.9/man/sfcbrepos.1.pre.in
--- sblim-sfcb-1.3.9/man/sfcbrepos.1.pre.in.orig 2009-10-13 21:54:13.000000000 +0200
+++ sblim-sfcb-1.3.9/man/sfcbrepos.1.pre.in 2010-09-06 14:01:57.294564062 +0200
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.5-service.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.5-service.patch
index eaccfa594c..08b9a1403b 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.5-service.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.5-service.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.4.6/Makefile.in.orig sblim-sfcb-1.4.6/Makefile.in
--- sblim-sfcb-1.4.6/Makefile.in.orig 2013-10-07 10:43:34.783228137 +0200
+++ sblim-sfcb-1.4.6/Makefile.in 2013-10-07 10:44:30.178533289 +0200
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch
index 3268d49f43..f11cf925f5 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.4.8/control.c.orig sblim-sfcb-1.4.8/control.c
--- sblim-sfcb-1.4.8/control.c.orig 2014-03-27 00:46:28.000000000 +0100
+++ sblim-sfcb-1.4.8/control.c 2014-05-15 12:31:38.304169409 +0200
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-ftbfs.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-ftbfs.patch
index 9548b3c063..fd2d076b85 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-ftbfs.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-ftbfs.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -up sblim-sfcb-1.4.9/control.c.orig sblim-sfcb-1.4.9/control.c
--- sblim-sfcb-1.4.9/control.c.orig 2015-07-13 15:06:21.331660336 +0200
+++ sblim-sfcb-1.4.9/control.c 2015-07-13 15:08:38.031308917 +0200
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
index 2a89a549d1..2a7cf2285e 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
@@ -34,9 +34,7 @@ SRC_URI = "http://downloads.sourceforge.net/sblim/${BP}.tar.bz2 \
SRC_URI[md5sum] = "28021cdabc73690a94f4f9d57254ce30"
SRC_URI[sha256sum] = "634a67b2f7ac3b386a79160eb44413d618e33e4e7fc74ae68b0240484af149dd"
-CVE_CHECK_IGNORE += "\
- CVE-2012-3381 \
-"
+CVE_STATUS[CVE-2012-3381] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
inherit autotools
inherit systemd
@@ -46,6 +44,7 @@ SYSTEMD_SERVICE:${PN} = "sblim-sfcb.service"
SYSTEMD_AUTO_ENABLE = "enable"
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -Wl,--allow-shlib-undefined ', '', d)}"
EXTRA_OECONF = '--enable-debug \
--enable-ssl \
diff --git a/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-function-declararions.patch b/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-function-declararions.patch
deleted file mode 100644
index c498c55692..0000000000
--- a/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-function-declararions.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From f97c26f5effd4372f7e03f9e4178d42a9ad8d4b3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Sep 2022 13:33:16 -0700
-Subject: [PATCH] Fix function declararions
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- TEST/v2test_ec.c | 2 ++
- TEST/v2test_ein.c | 1 +
- backend/cimxml/cimXmlParser.c | 6 +++++-
- backend/cimxml/grammar.c | 2 ++
- 4 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/TEST/v2test_ec.c b/TEST/v2test_ec.c
-index ad34dcc..d3e566d 100644
---- a/TEST/v2test_ec.c
-+++ b/TEST/v2test_ec.c
-@@ -6,6 +6,8 @@
- #include "cmcimacs.h"
-
- extern char *value2Chars(CMPIType type, CMPIValue * value);
-+extern void showClass( CMPIConstClass * in_class );
-+
- /*
- * comment out this define to use v2 http XML interface
- */
-diff --git a/TEST/v2test_ein.c b/TEST/v2test_ein.c
-index c1b4692..5d5ef5d 100644
---- a/TEST/v2test_ein.c
-+++ b/TEST/v2test_ein.c
-@@ -6,6 +6,7 @@
- #include "cmcimacs.h"
-
- extern char *value2Chars(CMPIType type, CMPIValue * value);
-+extern void showObjectPath( CMPIObjectPath * objectpath );
- void showProperty( CMPIData , char * );
- void showInstance( CMPIInstance * );
- static char * CMPIState_str(CMPIValueState);
-diff --git a/backend/cimxml/cimXmlParser.c b/backend/cimxml/cimXmlParser.c
-index d1ab86e..9f5d1ca 100644
---- a/backend/cimxml/cimXmlParser.c
-+++ b/backend/cimxml/cimXmlParser.c
-@@ -34,6 +34,8 @@
-
- #include <pthread.h>
-
-+void startParsing(ParserControl *parm);
-+
- static int attrsOk(XmlBuffer * xb, const XmlElement * e, XmlAttr * r,
- const char *tag, int etag);
- static char *getValue(XmlBuffer * xb, const char *v);
-@@ -1350,7 +1352,9 @@ ResponseHdr scanCimXmlResponse(const char *xmlData, CMPIObjectPath *cop)
-
- control.heap = parser_heap_init();
-
-- control.respHdr.rc = startParsing(&control);
-+ control.respHdr.rc = 0;
-+
-+ startParsing(&control);
-
- parser_heap_term(control.heap);
-
-diff --git a/backend/cimxml/grammar.c b/backend/cimxml/grammar.c
-index 6a0a969..a3dcdea 100644
---- a/backend/cimxml/grammar.c
-+++ b/backend/cimxml/grammar.c
-@@ -23,6 +23,8 @@
- #include "sfcUtil/utilft.h"
- #include "parserUtil.h"
-
-+CMPIType guessType(char *val);
-+void setClassMethods(CMPIConstClass *cls, XtokMethods *ms);
-
- static int ct = 0;
- static int dontLex = 0;
---
-2.37.3
-
diff --git a/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-implicit-function-declarations.patch b/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-implicit-function-declarations.patch
new file mode 100644
index 0000000000..08cd15ab0c
--- /dev/null
+++ b/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc/0001-Fix-implicit-function-declarations.patch
@@ -0,0 +1,80 @@
+From 1e1ed4d58909360997648ca9524ab16441f5474b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Jul 2023 10:15:41 -0700
+Subject: [PATCH] Fix implicit function declarations
+
+Clang 17+ has been finding these errors since its enforcing C99
+more than other compilers
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ TEST/v2test_ec.c | 1 +
+ TEST/v2test_ein.c | 1 +
+ backend/cimxml/cimXmlParser.c | 2 +-
+ backend/cimxml/grammar.c | 2 ++
+ backend/cimxml/grammar.h | 1 +
+ 5 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/TEST/v2test_ec.c b/TEST/v2test_ec.c
+index ad34dcc..940ca57 100644
+--- a/TEST/v2test_ec.c
++++ b/TEST/v2test_ec.c
+@@ -4,6 +4,7 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include "cmcimacs.h"
++#include "show.h"
+
+ extern char *value2Chars(CMPIType type, CMPIValue * value);
+ /*
+diff --git a/TEST/v2test_ein.c b/TEST/v2test_ein.c
+index c1b4692..ede95c1 100644
+--- a/TEST/v2test_ein.c
++++ b/TEST/v2test_ein.c
+@@ -4,6 +4,7 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include "cmcimacs.h"
++#include "show.h"
+
+ extern char *value2Chars(CMPIType type, CMPIValue * value);
+ void showProperty( CMPIData , char * );
+diff --git a/backend/cimxml/cimXmlParser.c b/backend/cimxml/cimXmlParser.c
+index d1ab86e..14f5f5c 100644
+--- a/backend/cimxml/cimXmlParser.c
++++ b/backend/cimxml/cimXmlParser.c
+@@ -1350,7 +1350,7 @@ ResponseHdr scanCimXmlResponse(const char *xmlData, CMPIObjectPath *cop)
+
+ control.heap = parser_heap_init();
+
+- control.respHdr.rc = startParsing(&control);
++ startParsing(&control);
+
+ parser_heap_term(control.heap);
+
+diff --git a/backend/cimxml/grammar.c b/backend/cimxml/grammar.c
+index 6a0a969..522ca9e 100644
+--- a/backend/cimxml/grammar.c
++++ b/backend/cimxml/grammar.c
+@@ -23,6 +23,8 @@
+ #include "sfcUtil/utilft.h"
+ #include "parserUtil.h"
+
++extern CMPIType guessType(char *val);
++extern void setClassMethods(CMPIConstClass *cls, XtokMethods *ms);
+
+ static int ct = 0;
+ static int dontLex = 0;
+diff --git a/backend/cimxml/grammar.h b/backend/cimxml/grammar.h
+index 00d364f..bafdd42 100644
+--- a/backend/cimxml/grammar.h
++++ b/backend/cimxml/grammar.h
+@@ -79,3 +79,4 @@ static void valueRefArray(ParserControl *parm, parseUnion *stateUnion);
+ static void valueReference(ParserControl *parm, parseUnion *stateUnion);
+ static void valueReferenceData(ParserControl *parm, parseUnion *stateUnion);
+
++void startParsing(ParserControl *parm);
+--
+2.41.0
+
diff --git a/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb b/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb
index 20bd2b6fc1..c9d3ddd6b2 100644
--- a/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb
+++ b/meta-oe/recipes-extended/sblim-sfcc/sblim-sfcc_2.2.8.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://www.sblim.org"
SRC_URI = "http://netcologne.dl.sourceforge.net/project/sblim/${BPN}/${BPN}-${PV}.tar.bz2 \
file://0001-cimxml-Include-sys-select.h-for-fd_set.patch \
- file://0001-Fix-function-declararions.patch \
+ file://0001-Fix-implicit-function-declarations.patch \
"
SRC_URI[md5sum] = "0bac0dec19f17ec065b6c332a56d7bae"
diff --git a/meta-oe/recipes-extended/scsirastools/scsirastools/mdadm.patch b/meta-oe/recipes-extended/scsirastools/scsirastools/mdadm.patch
index 6edda08cdf..3dc9d4766c 100644
--- a/meta-oe/recipes-extended/scsirastools/scsirastools/mdadm.patch
+++ b/meta-oe/recipes-extended/scsirastools/scsirastools/mdadm.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- mdadm.d/mdadm-1.3.0/mdadm.h.org 2017-06-20 00:35:55.366978372 -0700
+++ mdadm.d/mdadm-1.3.0/mdadm.h 2017-06-20 00:36:41.244363348 -0700
@@ -29,8 +29,9 @@
diff --git a/meta-oe/recipes-extended/scsirastools/scsirastools/print-format.patch b/meta-oe/recipes-extended/scsirastools/scsirastools/print-format.patch
index ac81780582..4494ae1eef 100644
--- a/meta-oe/recipes-extended/scsirastools/scsirastools/print-format.patch
+++ b/meta-oe/recipes-extended/scsirastools/scsirastools/print-format.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: scsirastools-1.6.6/src/sgcommon.c
===================================================================
--- scsirastools-1.6.6.orig/src/sgcommon.c
diff --git a/meta-oe/recipes-extended/sedutil/files/0001-Fix-build-on-big-endian-architectures.patch b/meta-oe/recipes-extended/sedutil/files/0001-Fix-build-on-big-endian-architectures.patch
index 7351197e4f..0b78d238bb 100644
--- a/meta-oe/recipes-extended/sedutil/files/0001-Fix-build-on-big-endian-architectures.patch
+++ b/meta-oe/recipes-extended/sedutil/files/0001-Fix-build-on-big-endian-architectures.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] Fix build on big endian architectures
Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
---
+Upstream-Status: Pending
+
Common/DtaEndianFixup.h | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/meta-oe/recipes-extended/sedutil/files/0001-include-missing-cstdint.patch b/meta-oe/recipes-extended/sedutil/files/0001-include-missing-cstdint.patch
new file mode 100644
index 0000000000..8afcb1fa48
--- /dev/null
+++ b/meta-oe/recipes-extended/sedutil/files/0001-include-missing-cstdint.patch
@@ -0,0 +1,32 @@
+From 927cd88cad7bea94c2eebecc18f7881f0defaccb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 26 Jan 2023 23:36:29 -0800
+Subject: [PATCH] include missing <cstdint>
+
+gcc 13 moved some includes around and as a result <cstdint>
+is no longer transitively included [1]. Explicitly include
+it for uint{32,64}_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Upstream-Status: Submitted [https://github.com/Drive-Trust-Alliance/sedutil/pull/425]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Common/DtaOptions.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Common/DtaOptions.h b/Common/DtaOptions.h
+index c012af1..7530a0b 100644
+--- a/Common/DtaOptions.h
++++ b/Common/DtaOptions.h
+@@ -21,6 +21,7 @@ along with sedutil. If not, see <http://www.gnu.org/licenses/>.
+ #ifndef _DTAOPTIONS_H
+ #define _DTAOPTIONS_H
+
++#include <cstdint>
+ /** Output modes */
+ typedef enum _sedutiloutput {
+ sedutilNormal,
+--
+2.39.1
+
diff --git a/meta-oe/recipes-extended/sedutil/sedutil_git.bb b/meta-oe/recipes-extended/sedutil/sedutil_git.bb
index a377d4ec5a..972a33c742 100644
--- a/meta-oe/recipes-extended/sedutil/sedutil_git.bb
+++ b/meta-oe/recipes-extended/sedutil/sedutil_git.bb
@@ -7,11 +7,11 @@ LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://Common/LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504"
-BASEPV = "1.15.1"
PV = "1.20.0"
SRCREV = "d3de8e45e06a21d31cca0046ceb16ced1ef3563a"
SRC_URI = "git://github.com/Drive-Trust-Alliance/sedutil.git;branch=master;protocol=https \
file://0001-Fix-build-on-big-endian-architectures.patch \
+ file://0001-include-missing-cstdint.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-extended/sgpio/sgpio/0001-makefile-Add-LDFLAGS-to-linking-rule.patch b/meta-oe/recipes-extended/sgpio/sgpio/0001-makefile-Add-LDFLAGS-to-linking-rule.patch
index 87fdd6058a..895916ceab 100644
--- a/meta-oe/recipes-extended/sgpio/sgpio/0001-makefile-Add-LDFLAGS-to-linking-rule.patch
+++ b/meta-oe/recipes-extended/sgpio/sgpio/0001-makefile-Add-LDFLAGS-to-linking-rule.patch
@@ -8,6 +8,8 @@ No GNU_HASH in the elf binary
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch b/meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch
index 709f8316f1..40c85e2ce8 100644
--- a/meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch
+++ b/meta-oe/recipes-extended/sgpio/sgpio/Makefile-error-fix.patch
@@ -3,7 +3,7 @@ Fix Makefile:
* change the file format from dos to unix to avoid do_patch failed.
* override gcc,SBIN_DIR and INSTALL for cross-compilation.
-Upstream-Status: pending
+Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
diff --git a/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb b/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb
index fe2ebe4ff7..9b25745ed6 100644
--- a/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb
+++ b/meta-oe/recipes-extended/sgpio/sgpio_1.2.0.10.bb
@@ -14,6 +14,7 @@ S = "${WORKDIR}/${BPN}"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE_GPL;md5=393a5ca445f6965873eca0259a17f833"
+EXTRA_OEMAKE = "CFLAGS='${CFLAGS}'"
do_compile:prepend() {
oe_runmake clean
}
diff --git a/meta-oe/recipes-extended/sigrok/libsigrokdecode/0001-configure.ac-add-py-3.10-support.patch b/meta-oe/recipes-extended/sigrok/libsigrokdecode/0001-configure.ac-add-py-3.10-support.patch
index a90f588d2b..45556afa8a 100644
--- a/meta-oe/recipes-extended/sigrok/libsigrokdecode/0001-configure.ac-add-py-3.10-support.patch
+++ b/meta-oe/recipes-extended/sigrok/libsigrokdecode/0001-configure.ac-add-py-3.10-support.patch
@@ -18,7 +18,7 @@ index 4802f35..e0e468f 100644
# https://docs.python.org/3/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build
SR_PKG_CHECK([python3], [SRD_PKGLIBS],
- [python-3.9-embed], [python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2])
-+ [python-3.11-embed], [python-3.10-embed], [python-3.9-embed], [python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2])
++ [python-3.12-embed], [python-3.11-embed], [python-3.10-embed], [python-3.9-embed], [python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2])
AS_IF([test "x$sr_have_python3" = xno],
[AC_MSG_ERROR([Cannot find Python 3 development headers.])])
diff --git a/meta-oe/recipes-extended/smartmontools/files/0001-configure.ac-Define-SOURCE_DATE_EPOCH-in-CPPFLAGS.patch b/meta-oe/recipes-extended/smartmontools/files/0001-configure.ac-Define-SOURCE_DATE_EPOCH-in-CPPFLAGS.patch
index 23d0666173..a6b03db72f 100644
--- a/meta-oe/recipes-extended/smartmontools/files/0001-configure.ac-Define-SOURCE_DATE_EPOCH-in-CPPFLAGS.patch
+++ b/meta-oe/recipes-extended/smartmontools/files/0001-configure.ac-Define-SOURCE_DATE_EPOCH-in-CPPFLAGS.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] smartmontools: Improve reproducibility
Backport changes added to master smartmontools.
https://github.com/smartmontools/smartmontools/commit/24838916b4c0e91f5c897d44fcdeedb22848f684
-Upstream-Status: Backported
+Upstream-Status: Backport
Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
---
diff --git a/meta-oe/recipes-extended/smartmontools/smartmontools_7.3.bb b/meta-oe/recipes-extended/smartmontools/smartmontools_7.3.bb
deleted file mode 100644
index 1bf55bfcfd..0000000000
--- a/meta-oe/recipes-extended/smartmontools/smartmontools_7.3.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "Control and monitor storage systems using S.M.A.R.T"
-DESCRIPTION = "\
-The smartmontools package contains two utility programs (smartctl \
-and smartd) to control and monitor storage systems using the Self-\
-Monitoring, Analysis and Reporting Technology System (SMART) built \
-into most modern ATA and SCSI hard disks. In many cases, these \
-utilities will provide advanced warning of disk degradation and failure."
-
-HOMEPAGE = "http://smartmontools.sourceforge.net/"
-SECTION = "console/utils"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/smartmontools/smartmontools-${PV}.tar.gz \
- file://initd.smartd \
- file://smartmontools.default \
- file://smartd.service \
- file://0001-configure.ac-Define-SOURCE_DATE_EPOCH-in-CPPFLAGS.patch \
- "
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'libcap-ng selinux', d)}"
-PACKAGECONFIG[libcap-ng] = "--with-libcap-ng=yes,--with-libcap-ng=no,libcap-ng"
-PACKAGECONFIG[selinux] = "--with-selinux=yes,--with-selinux=no,libselinux"
-
-SRC_URI[sha256sum] = "a544f8808d0c58cfb0e7424ca1841cb858a974922b035d505d4e4c248be3a22b"
-
-inherit autotools update-rc.d systemd
-
-SYSTEMD_SERVICE:${PN} = "smartd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-do_install:append () {
- #install the init.d/smartd
- install -d ${D}${sysconfdir}/init.d
- install -p -m 0755 ${WORKDIR}/initd.smartd ${D}${sysconfdir}/init.d/smartd
- install -d ${D}${sysconfdir}/default
- install -p -m 0644 ${WORKDIR}/smartmontools.default ${D}${sysconfdir}/default/smartmontools
-
- #install systemd service file
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/smartd.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
- -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- -e 's,@SBINDIR@,${sbindir},g' \
- ${D}${systemd_unitdir}/system/smartd.service
-}
-
-INITSCRIPT_NAME = "smartd"
-INITSCRIPT_PARAMS = "start 60 2 3 4 5 . stop 60 0 1 6 ."
-
-RRECOMMENDS:${PN} += "s-nail"
diff --git a/meta-oe/recipes-extended/smartmontools/smartmontools_7.4.bb b/meta-oe/recipes-extended/smartmontools/smartmontools_7.4.bb
new file mode 100644
index 0000000000..f387147412
--- /dev/null
+++ b/meta-oe/recipes-extended/smartmontools/smartmontools_7.4.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Control and monitor storage systems using S.M.A.R.T"
+DESCRIPTION = "\
+The smartmontools package contains two utility programs (smartctl \
+and smartd) to control and monitor storage systems using the Self-\
+Monitoring, Analysis and Reporting Technology System (SMART) built \
+into most modern ATA and SCSI hard disks. In many cases, these \
+utilities will provide advanced warning of disk degradation and failure."
+
+HOMEPAGE = "http://smartmontools.sourceforge.net/"
+SECTION = "console/utils"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/smartmontools/smartmontools-${PV}.tar.gz \
+ file://initd.smartd \
+ file://smartmontools.default \
+ file://smartd.service \
+ file://0001-configure.ac-Define-SOURCE_DATE_EPOCH-in-CPPFLAGS.patch \
+ "
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'libcap-ng selinux', d)}"
+PACKAGECONFIG[libcap-ng] = "--with-libcap-ng=yes,--with-libcap-ng=no,libcap-ng"
+PACKAGECONFIG[selinux] = "--with-selinux=yes,--with-selinux=no,libselinux"
+
+SRC_URI[sha256sum] = "e9a61f641ff96ca95319edfb17948cd297d0cd3342736b2c49c99d4716fb993d"
+
+inherit autotools update-rc.d systemd
+
+SYSTEMD_SERVICE:${PN} = "smartd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+do_install:append () {
+ #install the init.d/smartd
+ install -d ${D}${sysconfdir}/init.d
+ install -p -m 0755 ${WORKDIR}/initd.smartd ${D}${sysconfdir}/init.d/smartd
+ install -d ${D}${sysconfdir}/default
+ install -p -m 0644 ${WORKDIR}/smartmontools.default ${D}${sysconfdir}/default/smartmontools
+
+ #install systemd service file
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/smartd.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ ${D}${systemd_unitdir}/system/smartd.service
+}
+
+INITSCRIPT_NAME = "smartd"
+INITSCRIPT_PARAMS = "start 60 2 3 4 5 . stop 60 0 1 6 ."
+
+RRECOMMENDS:${PN} += "s-nail"
diff --git a/meta-oe/recipes-extended/snappy/snappy/0001-Add-inline-with-SNAPPY_ATTRIBUTE_ALWAYS_INLINE.patch b/meta-oe/recipes-extended/snappy/snappy/0001-Add-inline-with-SNAPPY_ATTRIBUTE_ALWAYS_INLINE.patch
deleted file mode 100644
index 27357d88aa..0000000000
--- a/meta-oe/recipes-extended/snappy/snappy/0001-Add-inline-with-SNAPPY_ATTRIBUTE_ALWAYS_INLINE.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 4728803cc8687431449c8c9fbfabb1da04943400 Mon Sep 17 00:00:00 2001
-From: "Georgi D. Sotirov" <gdsotirov@gmail.com>
-Date: Wed, 5 May 2021 14:16:46 +0300
-Subject: [PATCH] Add inline with SNAPPY_ATTRIBUTE_ALWAYS_INLINE
-
-Add inline with SNAPPY_ATTRIBUTE_ALWAYS_INLINE on AdvanceToNextTag to
-fix the following compilation errors and a warning with GCC:
-
-[ 2%] Building CXX object CMakeFiles/snappy.dir/snappy.cc.o
-/usr/bin/c++ -DHAVE_CONFIG_H -Dsnappy_EXPORTS
--I/tmp/snappy-1.1.9/build -I/tmp/snappy-1.1.9 -O3
--march=i586 -mtune=i686 -Wall -Wextra -fno-exceptions -fno-rtti -O3
--DNDEBUG -fPIC -std=c++11 -o CMakeFiles/snappy.dir/snappy.cc.o -c
-/tmp/snappy-1.1.9/snappy.cc
-/tmp/snappy-1.1.9/snappy.cc:1017:8: warning: always_inline
-function might not be inlinable [-Wattributes]
- size_t AdvanceToNextTag(const uint8_t** ip_p, size_t* tag) {
- ^
-/tmp/snappy-1.1.9/snappy.cc: In function 'std::pair<const
-unsigned char*, int> snappy::DecompressBranchless(const uint8_t*, const
-uint8_t*, ptrdiff_t, T, ptrdiff_t) [with T = char*; uint8_t = unsigned
-char; ptrdiff_t = int]':
-/tmp/snappy-1.1.9/snappy.cc:1017:8: error: inlining failed in
-call to always_inline 'size_t snappy::AdvanceToNextTag(const uint8_t**,
-size_t*)': function body can be overwritten at link time
-/tmp/snappy-1.1.9/snappy.cc:1097:53: error: called from here
- size_t tag_type = AdvanceToNextTag(&ip, &tag);
- ^
-/tmp/snappy-1.1.9/snappy.cc:1017:8: error: inlining failed in
-call to always_inline 'size_t snappy::AdvanceToNextTag(const uint8_t**,
-size_t*)': function body can be overwritten at link time
- size_t AdvanceToNextTag(const uint8_t** ip_p, size_t* tag) {
- ^
-/tmp/snappy-1.1.9/snappy.cc:1097:53: error: called from here
- size_t tag_type = AdvanceToNextTag(&ip, &tag);
- ^
-/tmp/snappy-1.1.9/snappy.cc:1017:8: error: inlining failed in
-call to always_inline 'size_t snappy::AdvanceToNextTag(const uint8_t**,
-size_t*)': function body can be overwritten at link time
- size_t AdvanceToNextTag(const uint8_t** ip_p, size_t* tag) {
- ^
-/tmp/snappy-1.1.9/snappy.cc:1097:53: error: called from here
- size_t tag_type = AdvanceToNextTag(&ip, &tag);
- ^
-CMakeFiles/snappy.dir/build.make:137: recipe for target
-'CMakeFiles/snappy.dir/snappy.cc.o' failed
-
-Just like with other functions using SNAPPY_ATTRIBUTE_ALWAYS_INLINE
-macro (i.e. __attribute__((always_inline)) ) it is necessary to use C++
-inline specifier.
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
-Upstream-Status: Submitted [https://github.com/google/snappy/pull/128]
----
- snappy.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/snappy.cc b/snappy.cc
-index 79dc0e8..51157be 100644
---- a/snappy.cc
-+++ b/snappy.cc
-@@ -1014,7 +1014,7 @@ void MemMove(ptrdiff_t dst, const void* src, size_t size) {
- }
-
- SNAPPY_ATTRIBUTE_ALWAYS_INLINE
--size_t AdvanceToNextTag(const uint8_t** ip_p, size_t* tag) {
-+inline size_t AdvanceToNextTag(const uint8_t** ip_p, size_t* tag) {
- const uint8_t*& ip = *ip_p;
- // This section is crucial for the throughput of the decompression loop.
- // The latency of an iteration is fundamentally constrained by the
diff --git a/meta-oe/recipes-extended/snappy/snappy/fix-build-on-32bit-arm.patch b/meta-oe/recipes-extended/snappy/snappy/fix-build-on-32bit-arm.patch
new file mode 100644
index 0000000000..b6ab149e19
--- /dev/null
+++ b/meta-oe/recipes-extended/snappy/snappy/fix-build-on-32bit-arm.patch
@@ -0,0 +1,33 @@
+From ecb3bcc283ce740a34d6342cbcda569f3193ade9 Mon Sep 17 00:00:00 2001
+From: David Michael <fedora.dm0@gmail.com>
+Date: Mon, 1 May 2023 11:14:32 -0400
+Subject: [PATCH] Specifically check for NEON for ARMv8 CPUs.
+
+The actual NEON implementation uses instructions that are not
+supported on 32-bit CPUs. Make the CMake test reflect this so that
+ARMv7 builds succeed again.
+
+Upstream-Status: Submitted [https://github.com/google/snappy/pull/169]
+
+Signed-off-by: David Michael <fedora.dm0@gmail.com>
+Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 85afe58e..e8775859 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -207,9 +207,9 @@ int main() {
+ check_cxx_source_compiles("
+ #include <arm_neon.h>
+ int main() {
+- uint8_t val = 3, dup[8];
++ uint8_t val = 3;
+ uint8x16_t v = vld1q_dup_u8(&val);
+- vst1q_u8(dup, v);
++ val = vmaxvq_u8(v);
+ return 0;
+ }" SNAPPY_HAVE_NEON)
+
diff --git a/meta-oe/recipes-extended/snappy/snappy_1.1.10.bb b/meta-oe/recipes-extended/snappy/snappy_1.1.10.bb
new file mode 100644
index 0000000000..bc3bc3aa47
--- /dev/null
+++ b/meta-oe/recipes-extended/snappy/snappy_1.1.10.bb
@@ -0,0 +1,28 @@
+#
+# Copyright (C) 2014 Wind River Systems, Inc.
+# Released under the BSD-3-Clause license (see COPYING.BSD-3 for the terms)
+#
+SUMMARY = "A compression/decompression library"
+DESCRIPTION = "Snappy is a fast data compression and decompression library \
+It was designed to be very fast and stable, but not to achieve a high \
+compression ratio."
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f62f3080324a97b3159a7a7e61812d0c"
+
+SRC_URI = "gitsm://github.com/google/snappy.git;protocol=https;branch=main \
+ file://fix-build-on-32bit-arm.patch"
+
+SRCREV = "dc05e026488865bc69313a68bcc03ef2e4ea8e83"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[lzo] = "-DHAVE_LIBLZO2=1,-DHAVE_LIBLZO2=0,lzo,"
+TARGET_CFLAGS += "-fPIC"
+
+EXTRA_OECMAKE += '-DBUILD_SHARED_LIBS="ON" -DSNAPPY_BUILD_TESTS="OFF" -DSNAPPY_BUILD_BENCHMARKS="OFF"'
+
+CVE_PRODUCT = "google:snappy"
diff --git a/meta-oe/recipes-extended/snappy/snappy_1.1.9.bb b/meta-oe/recipes-extended/snappy/snappy_1.1.9.bb
deleted file mode 100644
index 0d58345d7a..0000000000
--- a/meta-oe/recipes-extended/snappy/snappy_1.1.9.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Copyright (C) 2014 Wind River Systems, Inc.
-# Released under the BSD-3-Clause license (see COPYING.BSD-3 for the terms)
-#
-SUMMARY = "A compression/decompression library"
-DESCRIPTION = "Snappy is a fast data compression and decompression library \
-It was designed to be very fast and stable, but not to achieve a high \
-compression ratio."
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f62f3080324a97b3159a7a7e61812d0c"
-
-SRC_URI = "gitsm://github.com/google/snappy.git;protocol=https;branch=main \
- file://0001-Add-inline-with-SNAPPY_ATTRIBUTE_ALWAYS_INLINE.patch \
-"
-SRCREV = "2b63814b15a2aaae54b7943f0cd935892fae628f"
-S = "${WORKDIR}/git"
-
-
-inherit cmake pkgconfig
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[lzo] = "-DHAVE_LIBLZO2=1,-DHAVE_LIBLZO2=0,lzo,"
-TARGET_CFLAGS += "-fPIC"
-
-EXTRA_OECMAKE += '-DBUILD_SHARED_LIBS="ON" -DSNAPPY_BUILD_TESTS="OFF" -DSNAPPY_BUILD_BENCHMARKS="OFF"'
diff --git a/meta-oe/recipes-extended/socketcan/can-isotp_git.bb b/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
index 993efab395..ab97356e9b 100644
--- a/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
+++ b/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
@@ -1,7 +1,7 @@
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=72d977d697c3c05830fdff00a7448931"
-SRCREV = "beb4650660179963a8ed5b5cbf2085cc1b34f608"
-PV = "1.0+git${SRCPV}"
+SRCREV = "7626d0a0707391970080d493ce69638719938da7"
+PV = "1.0+git"
SRC_URI = "git://github.com/hartkopp/can-isotp.git;protocol=https;branch=master"
@@ -16,4 +16,4 @@ do_install:append() {
install -Dm 644 ${S}/include/uapi/linux/can/isotp.h ${D}${includedir}/linux/can/isotp.h
}
-EXCLUDE_FROM_WORLD = "1"
+SKIP_RECIPE[can-isotp] ?= "Not needed with kernel 5.10+"
diff --git a/meta-oe/recipes-extended/socketcan/can-utils_2023.03.bb b/meta-oe/recipes-extended/socketcan/can-utils_2023.03.bb
new file mode 100644
index 0000000000..ca6cb7db58
--- /dev/null
+++ b/meta-oe/recipes-extended/socketcan/can-utils_2023.03.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Linux CAN network development utilities"
+LICENSE = "GPL-2.0-only & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://include/linux/can.h;endline=44;md5=a9e1169c6c9a114a61329e99f86fdd31"
+
+DEPENDS = "libsocketcan"
+
+SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=https;branch=master"
+
+SRCREV = "cfe41963f3425e9adb01a70cfaddedf5e5982720"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig update-alternatives
+
+PACKAGES =+ "${PN}-access ${PN}-isotp ${PN}-j1939 ${PN}-cantest ${PN}-slcan ${PN}-log"
+
+FILES:${PN}-access = " \
+ ${bindir}/cangw \
+ ${bindir}/canlogserver \
+ ${bindir}/bcmserver \
+ ${bindir}/socketcand \
+ ${bindir}/cannelloni \
+"
+
+FILES:${PN}-isotp = "${bindir}/isotp*"
+
+FILES:${PN}-j1939 = " \
+ ${bindir}/j* \
+ ${bindir}/testj1939 \
+"
+
+FILES:${PN}-cantest = " \
+ ${bindir}/canbusload \
+ ${bindir}/can-calc-bit-timing \
+ ${bindir}/canfdtest \
+"
+
+FILES:${PN}-slcan = "${bindir}/slcan*"
+
+FILES:${PN}-log = "${bindir}/*log*"
+
+ALTERNATIVE:${PN} = "candump cansend cansequence"
+ALTERNATIVE_LINK_NAME[candump] = "${bindir}/candump"
+ALTERNATIVE_LINK_NAME[cansend] = "${bindir}/cansend"
+ALTERNATIVE_LINK_NAME[cansequence] = "${bindir}/cansequence"
+
+# busybox ip fails to configure can interfaces, so we need iproute2 to do so.
+# See details in http://www.armadeus.com/wiki/index.php?title=CAN_bus_Linux_driver.
+RRECOMMENDS:${PN} += "iproute2"
+
diff --git a/meta-oe/recipes-extended/socketcan/can-utils_git.bb b/meta-oe/recipes-extended/socketcan/can-utils_git.bb
deleted file mode 100644
index 07b80a5307..0000000000
--- a/meta-oe/recipes-extended/socketcan/can-utils_git.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "Linux CAN network development utilities"
-LICENSE = "GPL-2.0-only & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://include/linux/can.h;endline=44;md5=a9e1169c6c9a114a61329e99f86fdd31"
-
-DEPENDS = "libsocketcan"
-
-SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=https;branch=master"
-
-SRCREV = "3615bac17e539a06835dcb90855eae844ee18053"
-
-PV = "2021.08.0"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig update-alternatives
-
-PACKAGES =+ "${PN}-access ${PN}-isotp ${PN}-j1939 ${PN}-cantest ${PN}-slcan ${PN}-log"
-
-FILES:${PN}-access = " \
- ${bindir}/cangw \
- ${bindir}/canlogserver \
- ${bindir}/bcmserver \
- ${bindir}/socketcand \
- ${bindir}/cannelloni \
-"
-
-FILES:${PN}-isotp = "${bindir}/isotp*"
-
-FILES:${PN}-j1939 = " \
- ${bindir}/j* \
- ${bindir}/testj1939 \
-"
-
-FILES:${PN}-cantest = " \
- ${bindir}/canbusload \
- ${bindir}/can-calc-bit-timing \
- ${bindir}/canfdtest \
-"
-
-FILES:${PN}-slcan = "${bindir}/slcan*"
-
-FILES:${PN}-log = "${bindir}/*log*"
-
-ALTERNATIVE:${PN} = "candump cansend cansequence"
-ALTERNATIVE_LINK_NAME[candump] = "${bindir}/candump"
-ALTERNATIVE_LINK_NAME[cansend] = "${bindir}/cansend"
-ALTERNATIVE_LINK_NAME[cansequence] = "${bindir}/cansequence"
-
-# busybox ip fails to configure can interfaces, so we need iproute2 to do so.
-# See details in http://www.armadeus.com/wiki/index.php?title=CAN_bus_Linux_driver.
-RRECOMMENDS:${PN} += "iproute2"
-
diff --git a/meta-oe/recipes-extended/sysdig/sysdig/0001-Add-cstdint-for-uintXX_t-types.patch b/meta-oe/recipes-extended/sysdig/sysdig/0001-Add-cstdint-for-uintXX_t-types.patch
new file mode 100644
index 0000000000..e564958dad
--- /dev/null
+++ b/meta-oe/recipes-extended/sysdig/sysdig/0001-Add-cstdint-for-uintXX_t-types.patch
@@ -0,0 +1,38 @@
+From 3d076ea588eb3c7f334133b4c31172a14beadf5b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 2 Feb 2023 20:18:27 -0800
+Subject: [PATCH] Add <cstdint> for uintXX_t types
+
+gcc 13 moved some includes around and as a result <cstdint> is no
+longer transitively included [1]. Explicitly include it
+for uintXX_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Upstream-Status: Submitted [https://github.com/falcosecurity/libs/pull/862]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ userspace/libsinsp/filter/parser.h | 1 +
+ userspace/libsinsp/filter_value.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+--- a/userspace/libsinsp/filter/parser.h
++++ b/userspace/libsinsp/filter/parser.h
+@@ -18,6 +18,7 @@ limitations under the License.
+ #pragma once
+
+ #include "ast.h"
++#include <cstdint>
+
+ //
+ // Context-free Grammar for Sinsp Filters
+--- a/userspace/libsinsp/filter_value.h
++++ b/userspace/libsinsp/filter_value.h
+@@ -18,6 +18,7 @@ limitations under the License.
+ #pragma once
+
+ #include <string.h>
++#include <cstdint>
+ #include <utility>
+
+ // Used for CO_IN/CO_PMATCH filterchecks using PT_CHARBUFs to allow
diff --git a/meta-oe/recipes-extended/sysdig/sysdig_0.28.0.bb b/meta-oe/recipes-extended/sysdig/sysdig_0.28.0.bb
index 4181da732f..e814120ee6 100644
--- a/meta-oe/recipes-extended/sysdig/sysdig_0.28.0.bb
+++ b/meta-oe/recipes-extended/sysdig/sysdig_0.28.0.bb
@@ -24,11 +24,14 @@ RDEPENDS:${PN} = "bash"
SRC_URI = "git://github.com/draios/sysdig.git;branch=dev;protocol=https;name=sysdig \
git://github.com/falcosecurity/libs;protocol=https;branch=master;name=falco;subdir=git/falcosecurity-libs \
+ file://0001-Add-cstdint-for-uintXX_t-types.patch;patchdir=./falcosecurity-libs \
file://0001-cmake-Pass-PROBE_NAME-via-CFLAGS.patch \
"
SRCREV_sysdig = "4fb6288275f567f63515df0ff0a6518043ecfa9b"
SRCREV_falco= "caa0e4d0044fdaaebab086592a97f0c7f32aeaa9"
+SRCREV_FORMAT = "sysdig_falco"
+
S = "${WORKDIR}/git"
EXTRA_OECMAKE = "\
diff --git a/meta-oe/recipes-extended/tipcutils/tipcutils/0001-include-sys-select.h-for-FD_-definitions.patch b/meta-oe/recipes-extended/tipcutils/tipcutils/0001-include-sys-select.h-for-FD_-definitions.patch
index 6c8ba9074a..9f0604892d 100644
--- a/meta-oe/recipes-extended/tipcutils/tipcutils/0001-include-sys-select.h-for-FD_-definitions.patch
+++ b/meta-oe/recipes-extended/tipcutils/tipcutils/0001-include-sys-select.h-for-FD_-definitions.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 1/2] include sys/select.h for FD_* definitions
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
demos/inventory_sim/inventory_sim.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-extended/tipcutils/tipcutils/0002-replace-non-standard-uint-with-unsigned-int.patch b/meta-oe/recipes-extended/tipcutils/tipcutils/0002-replace-non-standard-uint-with-unsigned-int.patch
index 03e711e9a4..89eae015c6 100644
--- a/meta-oe/recipes-extended/tipcutils/tipcutils/0002-replace-non-standard-uint-with-unsigned-int.patch
+++ b/meta-oe/recipes-extended/tipcutils/tipcutils/0002-replace-non-standard-uint-with-unsigned-int.patch
@@ -7,6 +7,8 @@ make it portable on musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
demos/benchmark/client_tipc.c | 34 +++++++++++++++++-----------------
demos/benchmark/common_tipc.h | 2 +-
demos/benchmark/server_tipc.c | 10 +++++-----
diff --git a/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb b/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
index fc64ec0fcb..596aa260e7 100644
--- a/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
+++ b/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
@@ -9,7 +9,7 @@ SRC_URI = "git://git.code.sf.net/p/tipc/tipcutils;branch=master \
file://0001-test-ptts-Set-recv-buffer-size-too-max-to-receive-as.patch \
"
SRCREV = "7ab2211b87414ba240b0b2e4af219c1057c9cf9a"
-PV = "2.2.0+git${SRCPV}"
+PV = "2.2.0+git"
inherit autotools pkgconfig
diff --git a/meta-oe/recipes-extended/tmate/files/0001-fix-finding-msgpack.patch b/meta-oe/recipes-extended/tmate/files/0001-fix-finding-msgpack.patch
new file mode 100644
index 0000000000..46463abbc4
--- /dev/null
+++ b/meta-oe/recipes-extended/tmate/files/0001-fix-finding-msgpack.patch
@@ -0,0 +1,43 @@
+From 26a5aa6f70a0b98962884559668b3879dfe6fd02 Mon Sep 17 00:00:00 2001
+From: Carlo Cabrera <30379873+carlocab@users.noreply.github.com>
+Date: Tue, 28 Nov 2023 12:32:51 +0300
+Subject: [PATCH] Fix finding msgpack 6+
+
+msgpack.pc was renamed to msgpack-c.pc upstream in msgpack/msgpack-c#1053.
+
+Upstream-Status: Submitted [https://github.com/tmate-io/tmate/pull/281]
+
+Co-authored-by: Sam James <sam@gentoo.org>
+Signed-off-by: alperak <alperyasinak1@gmail.com>
+---
+ configure.ac | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 028d5559..3badf9e2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -207,7 +207,19 @@ PKG_CHECK_MODULES(
+ LIBS="$MSGPACK_LIBS $LIBS"
+ found_msgpack=yes
+ ],
+- found_msgpack=no
++ [
++ # msgpack.pc was renamed to msgpack-c.pc in 6.0.0.
++ PKG_CHECK_MODULES(
++ MSGPACKC,
++ msgpack-c >= 1.1.0,
++ [
++ CPPFLAGS="$MSGPACKC_CFLAGS $CPPFLAGS"
++ LIBS="$MSGPACKC_LIBS $LIBS"
++ found_msgpack=yes
++ ],
++ found_msgpack=no
++ )
++ ]
+ )
+ if test "x$found_msgpack" = xno; then
+ AC_MSG_ERROR("msgpack >= 1.1.0 not found")
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb b/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb
index 6dc5c0c7e5..4e66d8d05a 100644
--- a/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb
+++ b/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb
@@ -1,6 +1,5 @@
SUMMARY = "Instant terminal sharing"
DESCRIPTION = "Tmate is a fork of tmux. It provides an instant pairing solution."
-AUTHOR = "Marius Kriegerowski <marius.kriegerowski@gmail.com>"
HOMEPAGE = "https://tmate.io/"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://COPYING;md5=f7d9aab84ec6567139a4755c48d147fb"
@@ -8,6 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=f7d9aab84ec6567139a4755c48d147fb"
DEPENDS:append = " libevent libssh msgpack-c ncurses"
SRC_URI = "\
git://github.com/tmate-io/tmate.git;protocol=https;branch=master \
+ file://0001-fix-finding-msgpack.patch \
"
SRCREV = "5e00bfa5e137e76c81888727712ced2b3fd99f5b"
diff --git a/meta-oe/recipes-extended/tmux/tmux_3.1c.bb b/meta-oe/recipes-extended/tmux/tmux_3.1c.bb
deleted file mode 100644
index ec9fe34cf1..0000000000
--- a/meta-oe/recipes-extended/tmux/tmux_3.1c.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Terminal multiplexer"
-HOMEPAGE = "http://tmux.sourceforge.net"
-SECTION = "console/utils"
-
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://tmux.c;beginline=3;endline=17;md5=f256b76d52e7b4d02bf19144bdaca107"
-
-DEPENDS = "ncurses libevent"
-
-SRC_URI = "https://github.com/tmux/tmux/releases/download/${PV}/tmux-${PV}.tar.gz"
-SRC_URI[md5sum] = "7301d3fa12f35051edb185496766c745"
-SRC_URI[sha256sum] = "918f7220447bef33a1902d4faff05317afd9db4ae1c9971bef5c787ac6c88386"
-
-UPSTREAM_CHECK_URI = "https://github.com/tmux/tmux/releases"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[utempter] = "ac_cv_header_utempter_h=yes,ac_cv_header_utempter_h=no,libutempter,"
-
-do_configure:prepend() {
- # The 'compat' directory is needed for output during the build but it's
- # not automatically created when building outside the source directory.
- mkdir -p ${B}/compat
-}
diff --git a/meta-oe/recipes-extended/tmux/tmux_3.3a.bb b/meta-oe/recipes-extended/tmux/tmux_3.3a.bb
new file mode 100644
index 0000000000..5187222838
--- /dev/null
+++ b/meta-oe/recipes-extended/tmux/tmux_3.3a.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Terminal multiplexer"
+HOMEPAGE = "http://tmux.sourceforge.net"
+SECTION = "console/utils"
+
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://tmux.c;beginline=3;endline=17;md5=f256b76d52e7b4d02bf19144bdaca107"
+
+DEPENDS = "ncurses libevent"
+
+SRC_URI = "https://github.com/tmux/tmux/releases/download/${PV}/tmux-${PV}.tar.gz"
+SRC_URI[md5sum] = "8eee5883b9f6550fa4efaad0c9ec38f3"
+SRC_URI[sha256sum] = "e4fd347843bd0772c4f48d6dde625b0b109b7a380ff15db21e97c11a4dcdf93f"
+
+UPSTREAM_CHECK_URI = "https://github.com/tmux/tmux/releases"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[utempter] = "ac_cv_header_utempter_h=yes,ac_cv_header_utempter_h=no,libutempter,"
+
+do_configure:prepend() {
+ # The 'compat' directory is needed for output during the build but it's
+ # not automatically created when building outside the source directory.
+ mkdir -p ${B}/compat
+}
diff --git a/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb b/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
index 3a3dd192be..0b14f9557a 100644
--- a/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
+++ b/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
# matches debian/0.5.0-1 tag
SRCREV = "44a173195986d0d853316cb02a58785ded66c12b"
-PV = "0.5.0+git${SRCPV}"
+PV = "0.5.0+git"
SRC_URI = "git://github.com/wertarbyte/${BPN}.git;branch=debian;protocol=https"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-cow.c-Replace-stat64-with-stat.patch b/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-cow.c-Replace-stat64-with-stat.patch
new file mode 100644
index 0000000000..348d7ce104
--- /dev/null
+++ b/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-cow.c-Replace-stat64-with-stat.patch
@@ -0,0 +1,34 @@
+From c4f85268da6c30b0aec3d9a0e951b2088887cff4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 22 May 2023 18:35:37 -0700
+Subject: [PATCH] cow.c: Replace stat64 with stat
+
+LFS64 is deprecated in latest musl and this fails to build
+therefore switch to using stat API which is same as stat64 these days
+
+Upstream-Status: Inappropriate [No upstream]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ moo/cow.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/moo/cow.c
++++ b/moo/cow.c
+@@ -161,7 +161,7 @@ int write_cow_header(char *cow_file, int
+ int sectorsize, int alignment, long long *size)
+ {
+ struct cow_header_v3 *header;
+- struct stat64 buf;
++ struct stat buf;
+ int err;
+
+ err = cow_seek_file(fd, 0);
+@@ -192,7 +192,7 @@ int write_cow_header(char *cow_file, int
+ backing_file))
+ goto out_free;
+
+- err = stat64(header->backing_file, &buf);
++ err = stat(header->backing_file, &buf);
+ if(err < 0){
+ cow_printf("Stat of backing file '%s' failed, errno = %d\n",
+ header->backing_file, errno);
diff --git a/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-include-required-system-header-files-for-fd_set-and-.patch b/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-include-required-system-header-files-for-fd_set-and-.patch
index 38e945d64d..02aca7da45 100644
--- a/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-include-required-system-header-files-for-fd_set-and-.patch
+++ b/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-include-required-system-header-files-for-fd_set-and-.patch
@@ -8,6 +8,8 @@ makedev macro is defined in sys/sysmacros.h
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
uml_net/ethertap.c | 1 +
uml_net/host.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-makefiles-Append-to-CFLAGS-instead-of-re-assign.patch b/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-makefiles-Append-to-CFLAGS-instead-of-re-assign.patch
new file mode 100644
index 0000000000..1962e84c7e
--- /dev/null
+++ b/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-makefiles-Append-to-CFLAGS-instead-of-re-assign.patch
@@ -0,0 +1,122 @@
+From ac72fffe639d564f59ec1e1eafde83980acef1b5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 23 May 2023 14:40:31 -0700
+Subject: [PATCH] makefiles: Append to CFLAGS instead of re-assign
+
+This helps in inserting yocto provided CFLAGS from build environment
+
+Upstream-Status: Inappropriate [No upstream]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ jailtest/Makefile | 2 +-
+ mconsole/Makefile | 2 +-
+ moo/Makefile | 2 +-
+ port-helper/Makefile | 2 +-
+ tunctl/Makefile | 2 +-
+ uml_net/Makefile | 2 +-
+ uml_router/Makefile | 2 +-
+ watchdog/Makefile | 2 +-
+ 8 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/jailtest/Makefile b/jailtest/Makefile
+index 610ca1a..025fca9 100644
+--- a/jailtest/Makefile
++++ b/jailtest/Makefile
+@@ -1,6 +1,6 @@
+ OBJS = jailtest.o
+ BIN = jailtest
+-CFLAGS = -g -Wall
++CFLAGS += -g -Wall
+
+ BIN_DIR ?= /usr/bin
+
+diff --git a/mconsole/Makefile b/mconsole/Makefile
+index 9818d8a..74a2560 100644
+--- a/mconsole/Makefile
++++ b/mconsole/Makefile
+@@ -1,6 +1,6 @@
+ BIN = uml_mconsole
+ OBJS = $(BIN).o
+-CFLAGS = -g -Wall
++CFLAGS += -g -Wall
+
+ BIN_DIR ?= /usr/bin
+
+diff --git a/moo/Makefile b/moo/Makefile
+index 6cdb591..60d300d 100644
+--- a/moo/Makefile
++++ b/moo/Makefile
+@@ -3,7 +3,7 @@ BIN = uml_moo uml_mkcow
+ uml_moo_OBJS = uml_moo.o cow.o
+ uml_mkcow_OBJS = uml_mkcow.o cow.o
+
+-CFLAGS = -g -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
++CFLAGS += -g -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
+
+ BIN_DIR ?= /usr/bin
+
+diff --git a/port-helper/Makefile b/port-helper/Makefile
+index 8e33bdf..8b695f3 100644
+--- a/port-helper/Makefile
++++ b/port-helper/Makefile
+@@ -1,6 +1,6 @@
+ OBJS = port-helper.o
+ BIN = port-helper
+-CFLAGS = -g -Wall
++CFLAGS += -g -Wall
+
+ LIB_DIR ?= /usr/lib/uml
+
+diff --git a/tunctl/Makefile b/tunctl/Makefile
+index 743bfea..a39ad2b 100644
+--- a/tunctl/Makefile
++++ b/tunctl/Makefile
+@@ -1,6 +1,6 @@
+ OBJS = tunctl.o
+ BIN = tunctl
+-CFLAGS = -g -Wall
++CFLAGS += -g -Wall
+
+ BIN_DIR ?= /usr/bin
+
+diff --git a/uml_net/Makefile b/uml_net/Makefile
+index 36efec6..2e1ad0e 100644
+--- a/uml_net/Makefile
++++ b/uml_net/Makefile
+@@ -1,7 +1,7 @@
+ TUNTAP = $(shell [ -e /usr/include/linux/if_tun.h ] && echo -DTUNTAP)
+
+ BIN = uml_net
+-CFLAGS = -g -Wall $(TUNTAP)
++CFLAGS += -g -Wall $(TUNTAP)
+
+ BIN_DIR ?= /usr/bin
+
+diff --git a/uml_router/Makefile b/uml_router/Makefile
+index b7b5401..e399ea5 100644
+--- a/uml_router/Makefile
++++ b/uml_router/Makefile
+@@ -2,7 +2,7 @@ TUNTAP = $(shell [ -e /usr/include/linux/if_tun.h ] && echo -DTUNTAP)
+
+ OBJS = hash.o port.o uml_switch.o
+ BIN = uml_switch
+-CFLAGS = -g -Wall $(TUNTAP)
++CFLAGS += -g -Wall $(TUNTAP)
+
+ BIN_DIR ?= /usr/bin
+
+diff --git a/watchdog/Makefile b/watchdog/Makefile
+index c26fd9f..5178cc6 100644
+--- a/watchdog/Makefile
++++ b/watchdog/Makefile
+@@ -1,6 +1,6 @@
+ BIN = uml_watchdog
+ OBJS = $(BIN).o
+-CFLAGS = -g -Wall
++CFLAGS += -g -Wall
+
+ BIN_DIR ?= /usr/bin
+
+--
+2.40.1
+
diff --git a/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/fix-ldflags.patch b/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/fix-ldflags.patch
index f4a175cdfd..a66d7d5906 100644
--- a/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/fix-ldflags.patch
+++ b/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/fix-ldflags.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
#
# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
diff --git a/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/unstrip.patch b/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/unstrip.patch
index 868001dbd5..b6fce00986 100644
--- a/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/unstrip.patch
+++ b/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/unstrip.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Dont strip during install let the packaging handle it
Signed-off-by: Khem Raj <raj.khem@gmail.com>
diff --git a/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb b/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb
index 35ae5f777d..6a99e8d29b 100644
--- a/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb
+++ b/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb
@@ -8,11 +8,12 @@ SRC_URI = "http://downloads.sourceforge.net/project/user-mode-linux/tools/1/uml_
file://unstrip.patch \
file://0001-include-required-system-header-files-for-fd_set-and-.patch \
file://0001-Add-missing-standard-headers-for-str-and-exit-APIs.patch \
+ file://0001-cow.c-Replace-stat64-with-stat.patch \
+ file://0001-makefiles-Append-to-CFLAGS-instead-of-re-assign.patch \
"
SRC_URI[md5sum] = "2c1ccd9efacbfb39e42d482b89b2550a"
SRC_URI[sha256sum] = "4f179b1db021ef15ac7e9b2eed57c525db127a754c574f591c367460cded9f41"
-PR = "r1"
S = "${WORKDIR}/tools"
diff --git a/meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch b/meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch
index 4b9a195e02..8c3b148369 100644
--- a/meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch
+++ b/meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch
@@ -10,6 +10,8 @@ cmake version 3.12 or higher
Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com>
---
+Upstream-Status: Pending
+
src/CMakeLists.txt | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-extended/upm/upm/0001-include-missing-cstdint.patch b/meta-oe/recipes-extended/upm/upm/0001-include-missing-cstdint.patch
new file mode 100644
index 0000000000..59f81bf3a2
--- /dev/null
+++ b/meta-oe/recipes-extended/upm/upm/0001-include-missing-cstdint.patch
@@ -0,0 +1,43 @@
+From 64f75806c04c2ee819cf2f92cb564ad316354823 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 29 Jan 2023 00:27:47 -0800
+Subject: [PATCH] include missing <cstdint>
+
+gcc 13 moved some includes around and as a result <cstdint> is no longer transitively included [1]. Explicitly include it for uint{32,64}_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Upstream-Status: Submitted [https://github.com/eclipse/upm/pull/704]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mcp9808/mcp9808.hpp | 1 +
+ src/micsv89/micsv89.hpp | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/mcp9808/mcp9808.hpp b/src/mcp9808/mcp9808.hpp
+index b9e138d7..2509cd30 100644
+--- a/src/mcp9808/mcp9808.hpp
++++ b/src/mcp9808/mcp9808.hpp
+@@ -13,6 +13,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <iostream>
+ #include <string>
+ #include <interfaces/iTemperature.hpp>
+diff --git a/src/micsv89/micsv89.hpp b/src/micsv89/micsv89.hpp
+index 2f97dbce..c6e22ad8 100644
+--- a/src/micsv89/micsv89.hpp
++++ b/src/micsv89/micsv89.hpp
+@@ -11,6 +11,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <iostream>
+ #include <string>
+
+--
+2.39.1
+
diff --git a/meta-oe/recipes-extended/upm/upm_git.bb b/meta-oe/recipes-extended/upm/upm_git.bb
index 61e2e38b05..3aa766d0bd 100644
--- a/meta-oe/recipes-extended/upm/upm_git.bb
+++ b/meta-oe/recipes-extended/upm/upm_git.bb
@@ -5,17 +5,18 @@ SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=66493d54e65bfc12c7983ff2e884f37f"
-DEPENDS = "libjpeg-turbo mraa"
+DEPENDS = "libjpeg-turbo mraa python3-setuptools-native"
SRCREV = "5cf20df96c6b35c19d5b871ba4e319e96b4df72d"
-PV = "2.0.0+git${SRCPV}"
+PV = "2.0.0+git"
-SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=http;branch=master;protocol=https \
+SRC_URI = "git://github.com/eclipse/${BPN}.git;protocol=https;branch=master \
file://0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch \
file://0001-Use-stdint-types.patch \
file://0001-initialize-local-variables-before-use.patch \
file://0001-cmake-Disable-Wno-misleading-indentation-with-clang-.patch \
file://0001-cmake-Disable-using-Wno-maybe-uninitialized.patch \
+ file://0001-include-missing-cstdint.patch \
"
SRC_URI:append:toolchain-clang:x86 = " file://0001-nmea_gps-Link-with-latomic.patch "
@@ -41,21 +42,21 @@ BINDINGS:armv4 ??= "python"
BINDINGS:armv5 ??= "python"
PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGES', 'node-${PN}', 'nodejs', '', d)} \
- ${@bb.utils.contains('PACKAGES', '${PYTHON_PN}-${PN}', 'python', '', d)}"
+ ${@bb.utils.contains('PACKAGES', 'python3-${PN}', 'python', '', d)}"
-PACKAGECONFIG[python] = "-DBUILDSWIGPYTHON=ON -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}, -DBUILDSWIGPYTHON=OFF, swig-native ${PYTHON_PN},"
+PACKAGECONFIG[python] = "-DBUILDSWIGPYTHON=ON -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}, -DBUILDSWIGPYTHON=OFF, swig-native python3,"
PACKAGECONFIG[nodejs] = "-DBUILDSWIGNODE=ON, -DBUILDSWIGNODE=OFF, swig-native nodejs-native,"
do_configure:prepend() {
sed -i s:\"lib/${_packages_path}:\"${baselib}/${_packages_path}:g ${S}/cmake/modules/OpenCVDetectPython.cmake
}
-FILES:${PYTHON_PN}-${PN} = "${PYTHON_SITEPACKAGES_DIR}"
-RDEPENDS:${PYTHON_PN}-${PN} += "${PYTHON_PN}"
+FILES:python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}"
+RDEPENDS:python3-${PN} += "python3"
FILES:node-${PN} = "${prefix}/lib/node_modules/"
RDEPENDS:node-${PN} += "nodejs"
### Include desired language bindings ###
PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'nodejs', 'node-${PN}', '', d)}"
-PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'python', '${PYTHON_PN}-${PN}', '', d)}"
+PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'python', 'python3-${PN}', '', d)}"
diff --git a/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb b/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb
index a374041934..455bda1d76 100644
--- a/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb
+++ b/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb
@@ -37,13 +37,13 @@ do_configure () {
VLOCK_GROUP=root \
ROOT_GROUP=root \
CC="${CC}" \
- CFLAGS="${CFLAGS}" \
LDFLAGS="${LDFLAGS}" \
--prefix=${prefix} \
--libdir=${libdir} \
--mandir=${mandir} \
--with-modules="all.so new.so nosysrq.so ttyblank.so vesablank.so" \
--disable-root-password --enable-debug --disable-fail-count \
+ EXTRA_CFLAGS="${CFLAGS}" \
${PACKAGECONFIG_CONFARGS}
}
diff --git a/meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb b/meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb
index faf8dd362d..cc03ab4fea 100644
--- a/meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb
+++ b/meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb
@@ -16,7 +16,7 @@ SRC_URI[sha256sum] = "6ca3748fc1dad22c450bbf6601d4e706cb11c5e662d11bb4aeb473a9cd
SRCNAME = "volume_key"
S = "${WORKDIR}/${SRCNAME}-${PV}"
-inherit autotools python3native gettext pkgconfig
+inherit autotools python3native python3targetconfig gettext pkgconfig
DEPENDS += " \
util-linux \
@@ -27,7 +27,7 @@ DEPENDS += " \
swig-native \
"
-PACKAGECONFIG ??= "python3"
+PACKAGECONFIG ??= ""
PACKAGECONFIG[python3] = "--with-python3,--without-python3,python3,python3"
EXTRA_OECONF = "--without-python"
diff --git a/meta-oe/recipes-extended/wtmpdb/wtmpdb/0001-include-libgen.h-for-basename.patch b/meta-oe/recipes-extended/wtmpdb/wtmpdb/0001-include-libgen.h-for-basename.patch
new file mode 100644
index 0000000000..766865e27b
--- /dev/null
+++ b/meta-oe/recipes-extended/wtmpdb/wtmpdb/0001-include-libgen.h-for-basename.patch
@@ -0,0 +1,32 @@
+From 32f99ce7e890a457af50606ea7b577659a2a790a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 17:35:07 -0700
+Subject: [PATCH] include libgen.h for basename
+
+basename prototype has been removed from string.h from latest musl [1]
+compilers e.g. clang-18 flags the absense of prototype as error. therefore
+include libgen.h for providing it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [https://github.com/thkukuk/wtmpdb/pull/11]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/wtmpdb.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/wtmpdb.c b/src/wtmpdb.c
+index aac7b5b..eaffae6 100644
+--- a/src/wtmpdb.c
++++ b/src/wtmpdb.c
+@@ -30,6 +30,7 @@
+ #include <time.h>
+ #include <ctype.h>
+ #include <errno.h>
++#include <libgen.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+--
+2.44.0
+
diff --git a/meta-oe/recipes-extended/wtmpdb/wtmpdb_0.11.0.bb b/meta-oe/recipes-extended/wtmpdb/wtmpdb_0.11.0.bb
new file mode 100644
index 0000000000..785ae50e9e
--- /dev/null
+++ b/meta-oe/recipes-extended/wtmpdb/wtmpdb_0.11.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Y2038 safe version of wtmp"
+HOMEPAGE = "https://github.com/thkukuk/wtmpdb"
+DESCRIPTION = "last reports the login and logout times of users and when the machine got rebooted."
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=020090a00b69dd2af9ab82eb0003ea2c"
+SECTION = "libs"
+
+SRCREV = "493e9704dbc50f141d5fbd41c823311e79d7e8d3"
+
+SRC_URI = "git://github.com/thkukuk/wtmpdb.git;branch=main;protocol=https \
+ file://0001-include-libgen.h-for-basename.patch"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig systemd features_check
+
+DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} sqlite3 "
+REQUIRED_DISTRO_FEATURES = "pam"
+
+SYSTEMD_SERVICE:${PN} = "wtmpdb-update-boot.service wtmpdb-rotate.service"
+
+EXTRA_OEMESON = " -Dpamlibdir=${libdir}"
+
+do_install:append () {
+ if [ -d ${D}${prefix}/lib/systemd -a ${D}${prefix}/lib != `dirname ${D}${systemd_unitdir}` ]; then
+ # Fix makefile hardcoded path assumptions for systemd (assumes $prefix)
+ # without usrmerge distro feature enabled
+ install -d `dirname ${D}${systemd_unitdir}`
+ mv ${D}${prefix}/lib/systemd `dirname ${D}${systemd_unitdir}`
+ fi
+}
+
+FILES:${PN} += " ${systemd_system_unitdir} "
+FILES:${PN} += " ${libdir} "
+FILES:${PN} += " ${nonarch_libdir}/tmpfiles.d/* "
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-Set-HAVE_LARGEFILE_SUPPORT-to-1-explicitly.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-Set-HAVE_LARGEFILE_SUPPORT-to-1-explicitly.patch
new file mode 100644
index 0000000000..5160f2e1fe
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-Set-HAVE_LARGEFILE_SUPPORT-to-1-explicitly.patch
@@ -0,0 +1,30 @@
+From e108aff9d6dae613f486c1b1681f4a3cdf17b845 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 19 Dec 2022 15:07:55 -0800
+Subject: [PATCH] Set HAVE_LARGEFILE_SUPPORT to 1 explicitly
+
+nothing sets this to 0, but for some reason it gets undef'd
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ build/cmake/setup.h.in | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/build/cmake/setup.h.in b/build/cmake/setup.h.in
+index bce33a73f3..22afb4cfa0 100644
+--- a/build/cmake/setup.h.in
++++ b/build/cmake/setup.h.in
+@@ -869,8 +869,7 @@
+ /*
+ * Define if large (64 bit file offsets) files are supported.
+ */
+-#cmakedefine HAVE_LARGEFILE_SUPPORT 1
+-
++#define HAVE_LARGEFILE_SUPPORT 1
+ /*
+ * Use OpenGL
+ */
+--
+2.39.0
+
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-locale-Avoid-using-glibc-specific-defines-on-musl.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-locale-Avoid-using-glibc-specific-defines-on-musl.patch
new file mode 100644
index 0000000000..52f4449339
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-locale-Avoid-using-glibc-specific-defines-on-musl.patch
@@ -0,0 +1,26 @@
+From 72c3b7324f00047e6dc5d8380ed2f6ff2494a6f9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 18 Dec 2022 14:51:34 -0800
+Subject: [PATCH] locale: Avoid using glibc specific defines on musl
+
+musl does not provide some glibc-only enum members e.g. _NL_ADDRESS_LANG_NAME
+
+Upstream-Status: Submitted [https://github.com/wxWidgets/wxWidgets/pull/23050]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unix/uilocale.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/unix/uilocale.cpp b/src/unix/uilocale.cpp
+index 57773e17f5..86816ba896 100644
+--- a/src/unix/uilocale.cpp
++++ b/src/unix/uilocale.cpp
+@@ -619,7 +619,7 @@ wxString
+ wxUILocaleImplUnix::GetLocalizedName(wxLocaleName name, wxLocaleForm form) const
+ {
+ wxString str;
+-#if defined(HAVE_LANGINFO_H) && defined(__LINUX__)
++#if defined(HAVE_LANGINFO_H) && defined(__LINUX__) && defined(__GLIBC__)
+ switch (name)
+ {
+ case wxLOCALE_NAME_LOCALE:
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/create-links-with-relative-path.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/create-links-with-relative-path.patch
new file mode 100644
index 0000000000..6eef0b6790
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/create-links-with-relative-path.patch
@@ -0,0 +1,52 @@
+It fails to build python3-wxgtk4 which depends on wxwidgets:
+
+| ERROR: wxwidgets-native-3.2.1-r0 do_populate_sysroot: sstate found an
+ absolute path symlink /path/to/build/tmp-glibc/work/x86_64-linux
+ /wxwidgets-native/3.2.1-r0/sysroot-destdir/path/to/build/tmp-glibc/work
+ /x86_64-linux/wxwidgets-native/3.2.1-r0/recipe-sysroot-native/usr/bin/wx-config
+ pointing at /path/to/build/tmp-glibc/work/x86_64-linux/wxwidgets-native/3.2.1-r0
+ /recipe-sysroot-native/usr/lib/wx/config/gtk3-unicode-3.2.
+ Please replace this with a relative link.
+| ERROR: wxwidgets-native-3.2.1-r0 do_populate_sysroot: sstate found an
+ absolute path symlink /path/to/build/tmp-glibc/work/x86_64-linux/wxwidgets-native
+ /3.2.1-r0/sysroot-destdir/path/to/build/tmp-glibc/work/x86_64-linux/wxwidgets-native
+ /3.2.1-r0/recipe-sysroot-native/usr/bin/wxrc pointing at /path/to/build/tmp-glibc
+ /work/x86_64-linux/wxwidgets-native/3.2.1-r0/recipe-sysroot-native/usr/bin/wxrc-3.2.
+ Please replace this with a relative link.
+
+Create symlink with relative path to fix the issues.
+
+Upstream-Status: Pending
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ build/cmake/install.cmake | 2 +-
+ build/cmake/utils/CMakeLists.txt | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/build/cmake/install.cmake b/build/cmake/install.cmake
+index d3303faabb..c79e187f37 100644
+--- a/build/cmake/install.cmake
++++ b/build/cmake/install.cmake
+@@ -42,7 +42,7 @@ else()
+ install(DIRECTORY DESTINATION "bin")
+ install(CODE "execute_process( \
+ COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- \"${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/wx/config/${wxBUILD_FILE_ID}\" \
++ \"../lib${LIB_SUFFIX}/wx/config/${wxBUILD_FILE_ID}\" \
+ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wx-config\" \
+ )"
+ )
+diff --git a/build/cmake/utils/CMakeLists.txt b/build/cmake/utils/CMakeLists.txt
+index dbed8cc9b3..1dbc3261d3 100644
+--- a/build/cmake/utils/CMakeLists.txt
++++ b/build/cmake/utils/CMakeLists.txt
+@@ -40,7 +40,7 @@ if(wxUSE_XRC)
+ # Don't use wx_install() here to preserve escaping.
+ install(CODE "execute_process( \
+ COMMAND ${CMAKE_COMMAND} -E create_symlink \
+- \"${CMAKE_INSTALL_PREFIX}/bin/${wxrc_output_name}${EXE_SUFFIX}\" \
++ \"./${wxrc_output_name}${EXE_SUFFIX}\" \
+ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wxrc${EXE_SUFFIX}\" \
+ )"
+ )
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/fix-libdir-for-multilib.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/fix-libdir-for-multilib.patch
index 555ed47ad6..ea204ed3b1 100644
--- a/meta-oe/recipes-extended/wxwidgets/wxwidgets/fix-libdir-for-multilib.patch
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/fix-libdir-for-multilib.patch
@@ -4,80 +4,104 @@ change it. Respect variable wxPLATFORM_LIB_DIR to support libdir be configurable
Upstream-Status: Pending
Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+Rebase for wxWidgets 3.2.1. Replace wxPLATFORM_LIB_DIR with LIB_SUFFIX in this
+patch that LIB_SUFFIX has been passed to cmake in cmake.bbclass.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
- CMakeLists.txt | 2 +-
- build/cmake/config.cmake | 2 +-
- build/cmake/functions.cmake | 6 +++---
- build/cmake/install.cmake | 6 +++---
- 4 files changed, 8 insertions(+), 8 deletions(-)
+ CMakeLists.txt | 2 +-
+ build/cmake/config.cmake | 2 +-
+ build/cmake/functions.cmake | 4 ++--
+ build/cmake/install.cmake | 12 ++++++------
+ 4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4063020552..253d415210 100644
+index a49ecd3883..d469471f38 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -43,7 +43,7 @@ include(build/cmake/policies.cmake NO_POLICY_SCOPE)
+@@ -45,7 +45,7 @@ include(build/cmake/policies.cmake NO_POLICY_SCOPE)
# Initialize variables for quick access to wx root dir in sub dirs
set(wxSOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(wxBINARY_DIR ${CMAKE_BINARY_DIR})
-set(wxOUTPUT_DIR ${wxBINARY_DIR}/lib)
-+set(wxOUTPUT_DIR ${wxBINARY_DIR}/lib${wxPLATFORM_LIB_DIR})
++set(wxOUTPUT_DIR ${wxBINARY_DIR}/lib${LIB_SUFFIX})
# parse the version number from wx/version.h and include in wxMAJOR_VERSION and wxMINOR_VERSION
- file(READ include/wx/version.h WX_VERSION_H_CONTENTS)
+ file(READ "${wxSOURCE_DIR}/include/wx/version.h" WX_VERSION_H_CONTENTS)
diff --git a/build/cmake/config.cmake b/build/cmake/config.cmake
-index 91d11acba2..f361d50a27 100644
+index b359560bc0..c59ea60923 100644
--- a/build/cmake/config.cmake
+++ b/build/cmake/config.cmake
-@@ -57,7 +57,7 @@ function(wx_write_config_inplace)
+@@ -76,7 +76,7 @@ function(wx_write_config_inplace)
execute_process(
COMMAND
- ${CMAKE_COMMAND} -E create_symlink
-- "lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}"
-+ "lib${wxPLATFORM_LIB_DIR}/wx/config/inplace-${TOOLCHAIN_FULLNAME}"
+ "${CMAKE_COMMAND}" -E ${COPY_CMD}
+- "${CMAKE_CURRENT_BINARY_DIR}/lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}"
++ "${CMAKE_CURRENT_BINARY_DIR}/lib${LIB_SUFFIX}/wx/config/inplace-${TOOLCHAIN_FULLNAME}"
"${CMAKE_CURRENT_BINARY_DIR}/wx-config"
)
endfunction()
diff --git a/build/cmake/functions.cmake b/build/cmake/functions.cmake
-index c33dd3946c..51e47e05b3 100644
+index 7182364e5e..55fbebc7ee 100644
--- a/build/cmake/functions.cmake
+++ b/build/cmake/functions.cmake
-@@ -78,9 +78,9 @@ function(wx_set_common_target_properties target_name)
- cmake_parse_arguments(wxCOMMON_TARGET_PROPS "DEFAULT_WARNINGS" "" "" ${ARGN})
-
- set_target_properties(${target_name} PROPERTIES
-- LIBRARY_OUTPUT_DIRECTORY "${wxOUTPUT_DIR}${wxPLATFORM_LIB_DIR}"
-- ARCHIVE_OUTPUT_DIRECTORY "${wxOUTPUT_DIR}${wxPLATFORM_LIB_DIR}"
-- RUNTIME_OUTPUT_DIRECTORY "${wxOUTPUT_DIR}${wxPLATFORM_LIB_DIR}"
-+ LIBRARY_OUTPUT_DIRECTORY "${wxOUTPUT_DIR}"
-+ ARCHIVE_OUTPUT_DIRECTORY "${wxOUTPUT_DIR}"
-+ RUNTIME_OUTPUT_DIRECTORY "${wxOUTPUT_DIR}"
- )
-
- if(wxBUILD_PIC)
+@@ -435,8 +435,8 @@ macro(wx_add_library name)
+ endif()
+ wx_install(TARGETS ${name}
+ EXPORT wxWidgetsTargets
+- LIBRARY DESTINATION "lib${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
+- ARCHIVE DESTINATION "lib${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
++ LIBRARY DESTINATION "lib${LIB_SUFFIX}${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
++ ARCHIVE DESTINATION "lib${LIB_SUFFIX}${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
+ RUNTIME DESTINATION "${runtime_dir}${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
+ BUNDLE DESTINATION Applications/wxWidgets
+ )
diff --git a/build/cmake/install.cmake b/build/cmake/install.cmake
-index 968dff859e..c850c51844 100644
+index 384c6837b8..d3303faabb 100644
--- a/build/cmake/install.cmake
+++ b/build/cmake/install.cmake
-@@ -33,11 +33,11 @@ if(MSVC)
+@@ -29,11 +29,11 @@ if(WIN32_MSVC_NAMING)
else()
- wx_install(
+ install(
DIRECTORY "${wxSETUP_HEADER_PATH}"
- DESTINATION "lib/wx/include")
-+ DESTINATION "lib${wxPLATFORM_LIB_DIR}/wx/include")
++ DESTINATION "lib${LIB_SUFFIX}/wx/include")
- wx_install(
+ install(
FILES "${wxOUTPUT_DIR}/wx/config/${wxBUILD_FILE_ID}"
- DESTINATION "lib/wx/config"
-+ DESTINATION "lib${wxPLATFORM_LIB_DIR}/wx/config"
++ DESTINATION "lib${LIB_SUFFIX}/wx/config"
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ
WORLD_EXECUTE WORLD_READ
-@@ -46,7 +46,7 @@ else()
+@@ -42,13 +42,13 @@ else()
install(DIRECTORY DESTINATION "bin")
install(CODE "execute_process( \
COMMAND ${CMAKE_COMMAND} -E create_symlink \
-- ${CMAKE_INSTALL_PREFIX}/lib/wx/config/${wxBUILD_FILE_ID} \
-+ ${CMAKE_INSTALL_PREFIX}/lib${wxPLATFORM_LIB_DIR}/wx/config/${wxBUILD_FILE_ID} \
- ${CMAKE_INSTALL_PREFIX}/bin/wx-config \
+- \"${CMAKE_INSTALL_PREFIX}/lib/wx/config/${wxBUILD_FILE_ID}\" \
++ \"${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/wx/config/${wxBUILD_FILE_ID}\" \
+ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wx-config\" \
)"
)
+ endif()
+
+-install(EXPORT wxWidgetsTargets NAMESPACE wx:: DESTINATION "lib/cmake/wxWidgets/${wxPLATFORM_LIB_DIR}")
++install(EXPORT wxWidgetsTargets NAMESPACE wx:: DESTINATION "lib${LIB_SUFFIX}/cmake/wxWidgets/${wxPLATFORM_LIB_DIR}")
+
+ # find_package config file
+ include(CMakePackageConfigHelpers)
+@@ -71,11 +71,11 @@ write_basic_package_version_file(
+ configure_package_config_file(
+ "${wxSOURCE_DIR}/build/cmake/wxWidgetsConfig.cmake.in"
+ "${projectConfig}"
+- INSTALL_DESTINATION "lib/cmake/wxWidgets"
++ INSTALL_DESTINATION "lib${LIB_SUFFIX}/cmake/wxWidgets"
+ )
+ install(
+ FILES "${projectConfig}" "${versionConfig}"
+- DESTINATION "lib/cmake/wxWidgets"
++ DESTINATION "lib${LIB_SUFFIX}/cmake/wxWidgets"
+ )
+
+ # uninstall target
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/musl-locale-l.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/musl-locale-l.patch
new file mode 100644
index 0000000000..e4ca6579f8
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/musl-locale-l.patch
@@ -0,0 +1,34 @@
+Upstream-Status: Pending
+
+these macro'd away functions don't exist in musl (yet)
+diff --git a/include/wx/xlocale.h b/include/wx/xlocale.h
+index c433d25..3ab9d84 100644
+--- a/include/wx/xlocale.h
++++ b/include/wx/xlocale.h
+@@ -33,6 +33,26 @@
+ #include "wx/crt.h" // Includes wx/chartype.h, wx/wxcrt.h(wx/string.h)
+ #include "wx/intl.h" // wxLanguage
+
++#ifndef strtol_l
++#define strtol_l(s, p, base, l) strtol(s, p, base)
++#endif
++
++#ifndef strtoul_l
++#define strtoul_l(s, p, base, l) strtoul(s, p, base)
++#endif
++
++#ifndef wcstod_l
++#define wcstod_l(s, p, l) wcstod(s, p)
++#endif
++
++#ifndef wcstol_l
++#define wcstol_l(s, p, base, l) wcstol(s, p, base)
++#endif
++
++#ifndef wcstoul_l
++#define wcstoul_l(s, p, base, l) wcstoul(s, p, base)
++#endif
++
+ // The platform-specific locale type
+ // If wxXLocale_t is not defined, then only "C" locale support is provided
+ #ifdef wxHAS_XLOCALE_SUPPORT
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/not-append-system-name-to-lib-name.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/not-append-system-name-to-lib-name.patch
index 0f78cc134e..6329256b0c 100644
--- a/meta-oe/recipes-extended/wxwidgets/wxwidgets/not-append-system-name-to-lib-name.patch
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/not-append-system-name-to-lib-name.patch
@@ -5,24 +5,28 @@ not appropriate for oe.
Upstream-Status: Pending [oe specific]
Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+Rebase for wxWidgets 3.2.1.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
build/cmake/functions.cmake | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/build/cmake/functions.cmake b/build/cmake/functions.cmake
-index 53cd6a1ace..95efa17fe4 100644
+index e374d9a273..c6b1908bd6 100644
--- a/build/cmake/functions.cmake
+++ b/build/cmake/functions.cmake
-@@ -211,9 +211,9 @@ function(wx_set_target_properties target_name is_base)
- endif()
- else()
- set(cross_target "")
-- if (CMAKE_CROSSCOMPILING)
-- set(cross_target "-${CMAKE_SYSTEM_NAME}")
-- endif ()
-+ #if (CMAKE_CROSSCOMPILING)
-+ # set(cross_target "-${CMAKE_SYSTEM_NAME}")
-+ #endif ()
+@@ -219,9 +219,9 @@ function(wx_set_target_properties target_name)
+ endif()
+
+ set(cross_target)
+- if (CMAKE_CROSSCOMPILING)
+- set(cross_target "-${CMAKE_SYSTEM_NAME}")
+- endif()
++ #if (CMAKE_CROSSCOMPILING)
++ # set(cross_target "-${CMAKE_SYSTEM_NAME}")
++ #endif()
- set_target_properties(${target_name}
- PROPERTIES
+ set(lib_prefix "lib")
+ if(MSVC OR (WIN32 AND wxBUILD_SHARED))
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/respect-DESTDIR-when-create-link.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/respect-DESTDIR-when-create-link.patch
deleted file mode 100644
index 69be32928c..0000000000
--- a/meta-oe/recipes-extended/wxwidgets/wxwidgets/respect-DESTDIR-when-create-link.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-There are errors during do install. So link files 'wx-config' and 'wxrc' are
-not created, and rename failed either:
-
-| CMake Error: failed to create symbolic link '/usr/bin/wx-config': Permission denied
-| Error renaming from "/usr/bin/wxrc" to "/usr/bin/wxrc-3.1": No such file or directory
-| CMake Error: failed to create symbolic link '/usr/bin/wxrc': Permission denied
-
-Respect variable 'DESTDIR' to make it work as expect.
-
-Upstream-Status: Pending
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
- build/cmake/install.cmake | 4 ++--
- build/cmake/utils/CMakeLists.txt | 8 ++++----
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/build/cmake/install.cmake b/build/cmake/install.cmake
-index c850c51844..5cbc67daa1 100644
---- a/build/cmake/install.cmake
-+++ b/build/cmake/install.cmake
-@@ -46,8 +46,8 @@ else()
- install(DIRECTORY DESTINATION "bin")
- install(CODE "execute_process( \
- COMMAND ${CMAKE_COMMAND} -E create_symlink \
-- ${CMAKE_INSTALL_PREFIX}/lib${wxPLATFORM_LIB_DIR}/wx/config/${wxBUILD_FILE_ID} \
-- ${CMAKE_INSTALL_PREFIX}/bin/wx-config \
-+ ../lib${wxPLATFORM_LIB_DIR}/wx/config/${wxBUILD_FILE_ID} \
-+ \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wx-config \
- )"
- )
- endif()
-diff --git a/build/cmake/utils/CMakeLists.txt b/build/cmake/utils/CMakeLists.txt
-index 4108d6a723..fbac6bb533 100644
---- a/build/cmake/utils/CMakeLists.txt
-+++ b/build/cmake/utils/CMakeLists.txt
-@@ -34,14 +34,14 @@ if(wxUSE_XRC)
- if(NOT MSVC)
- install(CODE "execute_process( \
- COMMAND ${CMAKE_COMMAND} -E rename \
-- ${CMAKE_INSTALL_PREFIX}/bin/wxrc${EXE_SUFFIX} \
-- ${CMAKE_INSTALL_PREFIX}/bin/wxrc-${wxMAJOR_VERSION}.${wxMINOR_VERSION}${EXE_SUFFIX} \
-+ \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wxrc${EXE_SUFFIX} \
-+ \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wxrc-${wxMAJOR_VERSION}.${wxMINOR_VERSION}${EXE_SUFFIX} \
- )"
- )
- install(CODE "execute_process( \
- COMMAND ${CMAKE_COMMAND} -E create_symlink \
-- ${CMAKE_INSTALL_PREFIX}/bin/wxrc-${wxMAJOR_VERSION}.${wxMINOR_VERSION}${EXE_SUFFIX} \
-- ${CMAKE_INSTALL_PREFIX}/bin/wxrc${EXE_SUFFIX} \
-+ wxrc-${wxMAJOR_VERSION}.${wxMINOR_VERSION}${EXE_SUFFIX} \
-+ \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wxrc${EXE_SUFFIX} \
- )"
- )
- endif()
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets/wx-config-fix-libdir-for-multilib.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/wx-config-fix-libdir-for-multilib.patch
index 7ce206d263..628f8dee56 100644
--- a/meta-oe/recipes-extended/wxwidgets/wxwidgets/wx-config-fix-libdir-for-multilib.patch
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/wx-config-fix-libdir-for-multilib.patch
@@ -5,6 +5,10 @@ cross compile. And set default value of baselib with "lib${wxPLATFORM_LIB_DIR}".
Upstream-Status: Pending [oe specific]
Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+Rebase for wxWidgets 3.2.1. Replace wxPLATFORM_LIB_DIR with variable LIB_SUFFIX.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
build/cmake/config.cmake | 2 +-
wx-config.in | 6 ++++--
@@ -50,7 +54,7 @@ index e3f7d115bb..0e78af03c7 100755
# Determine the base directories we require.
prefix=${input_option_prefix-${this_prefix:-@prefix@}}
exec_prefix=${input_option_exec_prefix-${input_option_prefix-${this_exec_prefix:-@exec_prefix@}}}
-+baselib=${input_option_baselib:-lib@wxPLATFORM_LIB_DIR@}
++baselib=${input_option_baselib:-lib${LIB_SUFFIX}}
wxconfdir="@libdir@/wx/config"
installed_configs=`cd "$wxconfdir" 2> /dev/null && ls | grep -v "^inplace-"`
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
deleted file mode 100644
index 5565a289fe..0000000000
--- a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.1.5.bb
+++ /dev/null
@@ -1,120 +0,0 @@
-SUMMARY = "Cross-Plattform GUI Library"
-DESCRIPTION = "wxWidgets is a free and open source cross-platform C++ framework for writing advanced GUI applications using native controls."
-HOMEPAGE = "https://www.wxwidgets.org/"
-BUGTRACKER = "https://trac.wxwidgets.org/"
-
-# WXwindows licence is a modified version of LGPL explicitly allowing not
-# distributing the sources of an application using the library even in the
-# case of static linking.
-LICENSE = "WXwindows"
-LIC_FILES_CHKSUM = "file://docs/licence.txt;md5=981f50a934828620b08f44d75db557c6"
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt', 'cmake_qt5', 'cmake', d)}
-inherit lib_package binconfig pkgconfig
-
-DEPENDS += " \
- jpeg \
- libpng \
- tiff \
-"
-
-SRC_URI = " \
- gitsm://github.com/wxWidgets/wxWidgets.git;branch=master;protocol=https \
- file://0001-wx-config.in-Disable-cross-magic-it-does-not-work-fo.patch \
- file://fix-libdir-for-multilib.patch \
- file://respect-DESTDIR-when-create-link.patch \
- file://not-append-system-name-to-lib-name.patch \
- file://wx-config-fix-libdir-for-multilib.patch \
-"
-SRCREV= "9c0a8be1dc32063d91ed1901fd5fcd54f4f955a1"
-S = "${WORKDIR}/git"
-
-# These can be either 'builtin' or 'sys' and builtin means cloned soures are
-# build. So these cannot be PACKAGECONFIGs and let's use libs where we can (see
-# DEPENDS)
-EXTRA_OECMAKE += " \
- -DwxUSE_GLCANVAS_EGL=OFF \
- -DwxUSE_LIBJPEG=sys \
- -DwxUSE_LIBPNG=sys \
- -DwxUSE_LIBTIFF=sys \
- -DwxUSE_REGEX=builtin \
- -DwxPLATFORM_LIB_DIR=${@d.getVar('baselib').replace('lib', '')} \
-"
-EXTRA_OECMAKE:append:libc-musl = " \
- -DHAVE_LOCALE_T=OFF \
-"
-EXTRA_OECMAKE:append:class-target = ' -DEGREP="/bin/grep -E"'
-
-# OpenGL support currently seems tied to using libglu, which requires x11
-PACKAGECONFIG ?= "${@bb.utils.contains_any('DISTRO_FEATURES', 'x11 wayland', 'gtk', 'no_gui', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
-"
-
-PACKAGECONFIG:remove:class-native = "opengl"
-
-# Note on toolkit-PACKAGECONFIGs: select exactly one of 'no_gui' / 'gtk' / 'qt'
-PACKAGECONFIG[no_gui] = "-DwxUSE_GUI=OFF,,,,,qt gtk opengl"
-PACKAGECONFIG[gtk] = "-DwxBUILD_TOOLKIT=gtk3 -DwxUSE_GUI=ON -DwxUSE_PRIVATE_FONTS=ON,,gtk+3,,,no_gui qt"
-PACKAGECONFIG[qt] = "-DwxBUILD_TOOLKIT=qt -DwxUSE_GUI=ON,,qtbase,,,no_gui gtk"
-python () {
- pkgconfig = d.getVar('PACKAGECONFIG')
- if (not 'no_gui' in pkgconfig) and (not 'gtk' in pkgconfig) and (not 'qt' in pkgconfig):
- bb.error("PACKAGECONFIG must select a toolkit. Add one of no_gui / gtk / qt!")
-}
-
-# Notes on other PACKAGECONFIGs:
-# * 'no_gui' overrides some configs below so they are marked as conflicting
-# with 'no_gui' to avoid surprises
-# * qt+gstreamer is broken due to incorrect references on glib-2.0 -> mark
-# as conflicting
-# * wxUSE_LIBGNOMEVFS is for gtk2 (see init.cmake) which we don't support
-# -> no gvfs PACKAGECONFIG
-# * libmspack is in meta-security
-PACKAGECONFIG[gstreamer] = "-DwxUSE_MEDIACTRL=ON,-DwxUSE_MEDIACTRL=OFF,gstreamer1.0-plugins-base,,,no_gui qt"
-PACKAGECONFIG[libsecret] = "-DwxUSE_SECRETSTORE=ON,-DwxUSE_SECRETSTORE=OFF,libsecret,,,no_gui"
-PACKAGECONFIG[lzma] = "-DwxUSE_LIBLZMA=ON,-DwxUSE_LIBLZMA=OFF,xz"
-PACKAGECONFIG[mspack] = "-DwxUSE_LIBMSPACK=ON,-DwxUSE_LIBMSPACK=OFF,libmspack"
-PACKAGECONFIG[opengl] = "-DwxUSE_OPENGL=ON,-DwxUSE_OPENGL=OFF,libglu"
-PACKAGECONFIG[sdl_audio] = "-DwxUSE_LIBSDL=ON,-DwxUSE_LIBSDL=OFF,libsdl2"
-PACKAGECONFIG[webkit] = "-DwxUSE_WEBVIEW_WEBKIT=ON,-DwxUSE_WEBVIEW_WEBKIT=OFF,webkitgtk,,,no_gui"
-PACKAGECONFIG[curl] = "-DwxUSE_WEBREQUEST_CURL=ON,-DwxUSE_WEBREQUEST_CURL=OFF,curl"
-
-do_compile:append() {
- # if not at re-compile
- if [ -L ${B}/wx-config ]; then
- # ${B}/wx-config is a symlink for build and not needed after compile
- # So for our purposes do:
- # 1. make a file out of wx-config so that binconfig.bbclass detects it
- # 2. make sure we do not move the file used for compiling into sysroot
- cp --remove-destination `readlink ${B}/wx-config | sed 's:inplace-::'` ${B}/wx-config
- fi
- # 3. Set full sysroot paths so sstate can translate them when setting
- # up wxwidgets's consumer sysroots
- sed -i \
- -e 's,^includedir=.*,includedir="${STAGING_INCDIR}",g' \
- -e 's,^libdir=.*",libdir="${STAGING_LIBDIR}",g' \
- -e 's,^bindir=.*",bindir="${STAGING_BINDIR}",g' \
- ${B}/wx-config
-}
-
-do_install:append() {
- # do not ship bindir if empty
- rmdir --ignore-fail-on-non-empty ${D}${bindir}
-}
-
-# lib names are not canonical
-FILES_SOLIBSDEV = ""
-
-FILES:${PN} += " \
- ${libdir}/libwx_*.so \
- ${libdir}/wx/ \
-"
-
-FILES:${PN}-dev += " \
- ${libdir}/wx/include/ \
- ${libdir}/wx/config/ \
-"
-
-RDEPENDS:${PN}-dev += "grep"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb
new file mode 100644
index 0000000000..91653e2852
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb
@@ -0,0 +1,123 @@
+SUMMARY = "Cross-Plattform GUI Library"
+DESCRIPTION = "wxWidgets is a free and open source cross-platform C++ framework for writing advanced GUI applications using native controls."
+HOMEPAGE = "https://www.wxwidgets.org/"
+BUGTRACKER = "https://trac.wxwidgets.org/"
+
+# WXwindows licence is a modified version of LGPL explicitly allowing not
+# distributing the sources of an application using the library even in the
+# case of static linking.
+LICENSE = "WXwindows"
+LIC_FILES_CHKSUM = "file://docs/licence.txt;md5=981f50a934828620b08f44d75db557c6"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt', 'cmake_qt5', 'cmake', d)}
+inherit lib_package binconfig pkgconfig
+
+DEPENDS += " \
+ jpeg \
+ libpng \
+ tiff \
+"
+
+SRC_URI = "gitsm://github.com/wxWidgets/wxWidgets.git;branch=3.2;protocol=https \
+ file://0001-wx-config.in-Disable-cross-magic-it-does-not-work-fo.patch \
+ file://fix-libdir-for-multilib.patch \
+ file://create-links-with-relative-path.patch \
+ file://not-append-system-name-to-lib-name.patch \
+ file://wx-config-fix-libdir-for-multilib.patch \
+ file://0001-locale-Avoid-using-glibc-specific-defines-on-musl.patch \
+ file://musl-locale-l.patch \
+ file://0001-Set-HAVE_LARGEFILE_SUPPORT-to-1-explicitly.patch \
+ "
+SRCREV= "97e99707c5d2271a70cb686720b48dbf34ced496"
+S = "${WORKDIR}/git"
+
+# These can be either 'builtin' or 'sys' and builtin means cloned soures are
+# build. So these cannot be PACKAGECONFIGs and let's use libs where we can (see
+# DEPENDS)
+EXTRA_OECMAKE += " \
+ -DwxUSE_GLCANVAS_EGL=OFF \
+ -DwxUSE_LIBJPEG=sys \
+ -DwxUSE_LIBPNG=sys \
+ -DwxUSE_LIBTIFF=sys \
+ -DwxUSE_REGEX=builtin \
+"
+EXTRA_OECMAKE:append:class-target = ' -DEGREP="/bin/grep -E"'
+
+# OpenGL support currently seems tied to using libglu, which requires x11
+PACKAGECONFIG ?= "${@bb.utils.contains_any('DISTRO_FEATURES', 'x11 wayland', 'gtk', 'no_gui', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
+"
+
+PACKAGECONFIG:remove:class-native = "opengl"
+
+# Note on toolkit-PACKAGECONFIGs: select exactly one of 'no_gui' / 'gtk' / 'qt'
+PACKAGECONFIG[no_gui] = "-DwxUSE_GUI=OFF,,,,,qt gtk opengl"
+PACKAGECONFIG[gtk] = "-DwxBUILD_TOOLKIT=gtk3 -DwxUSE_GUI=ON -DwxUSE_PRIVATE_FONTS=ON,,gtk+3,,,no_gui qt"
+PACKAGECONFIG[qt] = "-DwxBUILD_TOOLKIT=qt -DwxUSE_GUI=ON,,qtbase,,,no_gui gtk"
+python () {
+ pkgconfig = d.getVar('PACKAGECONFIG')
+ if (not 'no_gui' in pkgconfig) and (not 'gtk' in pkgconfig) and (not 'qt' in pkgconfig):
+ bb.error("PACKAGECONFIG must select a toolkit. Add one of no_gui / gtk / qt!")
+}
+
+# Notes on other PACKAGECONFIGs:
+# * 'no_gui' overrides some configs below so they are marked as conflicting
+# with 'no_gui' to avoid surprises
+# * qt+gstreamer is broken due to incorrect references on glib-2.0 -> mark
+# as conflicting
+# * wxUSE_LIBGNOMEVFS is for gtk2 (see init.cmake) which we don't support
+# -> no gvfs PACKAGECONFIG
+# * libmspack is in meta-security
+PACKAGECONFIG[gstreamer] = "-DwxUSE_MEDIACTRL=ON,-DwxUSE_MEDIACTRL=OFF,gstreamer1.0-plugins-base,,,no_gui qt"
+PACKAGECONFIG[libsecret] = "-DwxUSE_SECRETSTORE=ON,-DwxUSE_SECRETSTORE=OFF,libsecret,,,no_gui"
+PACKAGECONFIG[lzma] = "-DwxUSE_LIBLZMA=ON,-DwxUSE_LIBLZMA=OFF,xz"
+PACKAGECONFIG[mspack] = "-DwxUSE_LIBMSPACK=ON,-DwxUSE_LIBMSPACK=OFF,libmspack"
+PACKAGECONFIG[opengl] = "-DwxUSE_OPENGL=ON,-DwxUSE_OPENGL=OFF,libglu"
+PACKAGECONFIG[sdl_audio] = "-DwxUSE_LIBSDL=ON,-DwxUSE_LIBSDL=OFF,libsdl2"
+PACKAGECONFIG[webkit] = "-DwxUSE_WEBVIEW_WEBKIT=ON,-DwxUSE_WEBVIEW_WEBKIT=OFF,webkitgtk3,,,no_gui"
+PACKAGECONFIG[curl] = "-DwxUSE_WEBREQUEST_CURL=ON,-DwxUSE_WEBREQUEST_CURL=OFF,curl"
+
+# Support LFS unconditionally
+CXXFLAGS += "-D_FILE_OFFSET_BITS=64"
+
+do_compile:append() {
+ # if not at re-compile
+ if [ -L ${B}/wx-config ]; then
+ # ${B}/wx-config is a symlink for build and not needed after compile
+ # So for our purposes do:
+ # 1. make a file out of wx-config so that binconfig.bbclass detects it
+ # 2. make sure we do not move the file used for compiling into sysroot
+ cp --remove-destination `readlink ${B}/wx-config | sed 's:inplace-::'` ${B}/wx-config
+ fi
+ # 3. Set full sysroot paths so sstate can translate them when setting
+ # up wxwidgets's consumer sysroots
+ sed -i \
+ -e 's,^includedir=.*,includedir="${STAGING_INCDIR}",g' \
+ -e 's,^libdir=.*",libdir="${STAGING_LIBDIR}",g' \
+ -e 's,^bindir=.*",bindir="${STAGING_BINDIR}",g' \
+ ${B}/wx-config
+}
+
+do_install:append() {
+ # do not ship bindir if empty
+ rmdir --ignore-fail-on-non-empty ${D}${bindir}
+
+ # fix host contamination
+ sed -i -e "s#${STAGING_DIR_NATIVE}##g" \
+ -e "s#${STAGING_DIR_TARGET}##g" \
+ ${D}${libdir}/wx/config/*-unicode-3.2 \
+ ${D}${libdir}/cmake/wxWidgets/wxWidgetsTargets.cmake
+}
+
+FILES:${PN} += " \
+ ${libdir}/wx/ \
+"
+
+FILES:${PN}-dev += " \
+ ${libdir}/wx/include/ \
+ ${libdir}/wx/config/ \
+"
+
+RDEPENDS:${PN}-dev += "grep"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/zram/zram_0.2.bb b/meta-oe/recipes-extended/zram/zram_0.2.bb
index 97db34134e..b4b3a27b2b 100644
--- a/meta-oe/recipes-extended/zram/zram_0.2.bb
+++ b/meta-oe/recipes-extended/zram/zram_0.2.bb
@@ -8,7 +8,6 @@ RDEPENDS:${PN} = "kmod \
${@bb.utils.contains('DISTRO_FEATURES','systemd','util-linux','util-linux-swaponoff',d)}"
RRECOMMENDS:${PN} = "kernel-module-zram"
-PR = "r3"
SRC_URI = " \
file://init \
diff --git a/meta-oe/recipes-extended/zsync/zsync-curl_git.bb b/meta-oe/recipes-extended/zsync/zsync-curl_git.bb
index 84593387d3..1bc4010f8a 100644
--- a/meta-oe/recipes-extended/zsync/zsync-curl_git.bb
+++ b/meta-oe/recipes-extended/zsync/zsync-curl_git.bb
@@ -10,7 +10,7 @@ SRC_URI = "git://github.com/probonopd/zsync-curl;protocol=https;branch=master \
file://make.patch"
SRCREV = "00141c2806ccc4ddf2ff6263ee1612d19c0b713f"
-PV = "0.6.2+git${SRCPV}"
+PV = "0.6.2+git"
inherit autotools
diff --git a/meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.2.bb b/meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.2.bb
index a152ff2d2b..fa47cbd48d 100644
--- a/meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.2.bb
+++ b/meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.2.bb
@@ -7,7 +7,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
DEPENDS = "atk glibmm-2.68"
-GNOMEBASEBUILDCLASS = "meson"
GNOMEBN = "atkmm"
inherit gnomebase features_check
diff --git a/meta-oe/recipes-gnome/atk/atkmm_2.28.2.bb b/meta-oe/recipes-gnome/atk/atkmm_2.28.2.bb
index f6cb0a1e15..bc637470f9 100644
--- a/meta-oe/recipes-gnome/atk/atkmm_2.28.2.bb
+++ b/meta-oe/recipes-gnome/atk/atkmm_2.28.2.bb
@@ -7,7 +7,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
DEPENDS = "atk glibmm"
-GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase features_check
diff --git a/meta-oe/recipes-gnome/gcab/gcab_1.4.bb b/meta-oe/recipes-gnome/gcab/gcab_1.4.bb
deleted file mode 100644
index 321e7c36a2..0000000000
--- a/meta-oe/recipes-gnome/gcab/gcab_1.4.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "A GObject library to create cabinet files"
-HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcab"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "glib-2.0"
-
-SRC_URI = "\
- ${GNOME_MIRROR}/gcab/${PV}/gcab-${PV}.tar.xz \
- file://run-ptest \
-"
-SRC_URI[sha256sum] = "67a5fa9be6c923fbc9197de6332f36f69a33dadc9016a2b207859246711c048f"
-
-inherit gobject-introspection gtk-doc manpages meson ptest-gnome vala
-
-PACKAGECONFIG ??= "\
- ${@bb.utils.contains('USE_NLS', 'yes', 'nls', '', d)} \
- ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
-"
-PACKAGECONFIG[manpages] = ""
-PACKAGECONFIG[nls] = "-Dnls=true,-Dnls=false"
-PACKAGECONFIG[tests] = "-Dtests=true -Dinstalled_tests=true,-Dtests=false -Dinstalled_tests=false"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-gnome/gcab/gcab_1.6.bb b/meta-oe/recipes-gnome/gcab/gcab_1.6.bb
new file mode 100644
index 0000000000..4278fc9453
--- /dev/null
+++ b/meta-oe/recipes-gnome/gcab/gcab_1.6.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A GObject library to create cabinet files"
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcab"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "glib-2.0"
+
+SRC_URI = "\
+ ${GNOME_MIRROR}/gcab/${PV}/gcab-${PV}.tar.xz \
+ file://run-ptest \
+"
+SRC_URI[sha256sum] = "2f0c9615577c4126909e251f9de0626c3ee7a152376c15b5544df10fc87e560b"
+
+inherit gobject-introspection gtk-doc manpages meson ptest-gnome vala
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.contains('USE_NLS', 'yes', 'nls', '', d)} \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
+"
+PACKAGECONFIG[manpages] = ""
+PACKAGECONFIG[nls] = "-Dnls=true,-Dnls=false"
+PACKAGECONFIG[tests] = "-Dtests=true -Dinstalled_tests=true,-Dtests=false -Dinstalled_tests=false"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch b/meta-oe/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch
new file mode 100644
index 0000000000..2b2baf772e
--- /dev/null
+++ b/meta-oe/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch
@@ -0,0 +1,34 @@
+From 2618ab101f5faaa887c9feeeee84a7d8bc97cbda Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 16 Nov 2022 11:27:24 +0100
+Subject: [PATCH] meson.build: correctly handle disabled ssh_agent option
+
+Existing code produces these errors:
+| gcr/meson.build:61:0: ERROR: Unable to get the path of a not-found external program
+| gcr/meson.build:101:5: ERROR: Unknown variable "ssh_add_path".
+
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
+Upstream-Status: Backport [ https://gitlab.gnome.org/GNOME/gcr/-/commit/9b67bb18d8409e0e693cc6000507acbd73a30eab ]
+
+---
+ meson.build | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index dd890a9..1b17b18 100644
+--- a/meson.build
++++ b/meson.build
+@@ -82,8 +82,10 @@ conf.set('HAVE_TIMEGM', cc.has_function('timegm'))
+ conf.set('HAVE_MLOCK', cc.has_function('mlock'))
+ conf.set_quoted('GPG_EXECUTABLE', gpg_path)
+ conf.set_quoted('LIBGCRYPT_VERSION', libgcrypt_dep.version())
+-conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path)
+-conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path)
++if get_option('ssh_agent')
++ conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path)
++ conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path)
++endif
+ conf.set10('WITH_SYSTEMD', with_systemd)
+ config_file = configure_file(
+ output: 'config.h',
diff --git a/meta-oe/recipes-gnome/gcr/gcr3_3.41.2.bb b/meta-oe/recipes-gnome/gcr/gcr3_3.41.2.bb
new file mode 100644
index 0000000000..0fd30f7424
--- /dev/null
+++ b/meta-oe/recipes-gnome/gcr/gcr3_3.41.2.bb
@@ -0,0 +1,61 @@
+SUMMARY = "A library for bits of crypto UI and parsing etc"
+DESCRIPTION = "GCR is a library for displaying certificates, and crypto UI, \
+accessing key stores. It also provides the viewer for crypto files on the \
+GNOME desktop."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/gcr"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/gcr/issues"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
+
+DEPENDS = "p11-kit glib-2.0 libgcrypt gnupg-native \
+ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}"
+
+CACHED_CONFIGUREVARS += "ac_cv_path_GPG='gpg2'"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+VALA_MESON_OPTION ?= ''
+
+inherit gnomebase gtk-icon-cache gi-docgen features_check upstream-version-is-even vala gobject-introspection gettext mime mime-xdg
+UPSTREAM_CHECK_REGEX = "[^\d\.](?P<pver>3.(?!9\d+)\d+(\.\d+)+)\.tar"
+
+SRC_URI = "https://download.gnome.org/sources/gcr/3.41/gcr-${PV}.tar.xz;name=archive"
+SRC_URI += "file://0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch"
+SRC_URI[archive.sha256sum] = "bad10f3c553a0e1854649ab59c5b2434da22ca1a54ae6138f1f53961567e1ab7"
+
+S = "${WORKDIR}/gcr-${PV}"
+
+PACKAGECONFIG ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gtk', '', d)} \
+"
+PACKAGECONFIG[gtk] = "-Dgtk=true,-Dgtk=false,gtk+3"
+PACKAGECONFIG[ssh_agent] = "-Dssh_agent=true,-Dssh_agent=false,libsecret,openssh"
+#'Use systemd socket activation for server programs'
+PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/gcr-3 \
+ ${datadir}/vala \
+ ${systemd_user_unitdir}/gcr-ssh-agent.socket \
+ ${systemd_user_unitdir}/gcr-ssh-agent.service \
+"
+
+# http://errors.yoctoproject.org/Errors/Details/20229/
+ARM_INSTRUCTION_SET:armv4 = "arm"
+ARM_INSTRUCTION_SET:armv5 = "arm"
+ARM_INSTRUCTION_SET:armv6 = "arm"
+
+EXTRA_OEMESON += "--cross-file ${WORKDIR}/meson-${PN}.cross"
+do_write_config:append() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+gpg2 = '${bindir}/gpg2'
+ssh-add = '${bindir}/ssh-add'
+ssh-agent = '${bindir}/ssh-agent'
+EOF
+}
diff --git a/meta-oe/recipes-gnome/gmime/gmime/nodolt.patch b/meta-oe/recipes-gnome/gmime/gmime/nodolt.patch
deleted file mode 100644
index 1f9bdd3041..0000000000
--- a/meta-oe/recipes-gnome/gmime/gmime/nodolt.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -150,7 +150,6 @@ AC_EXEEXT
- AC_PROG_LIBTOOL
- dnl when using libtool 2.x create libtool early, because it's used in configure
- m4_ifdef([LT_OUTPUT], [LT_OUTPUT])
--DOLT
-
- dnl Checks for header files.
- AC_CHECK_HEADERS(sys/mman.h)
diff --git a/meta-oe/recipes-gnome/gmime/gmime_3.2.13.bb b/meta-oe/recipes-gnome/gmime/gmime_3.2.13.bb
new file mode 100644
index 0000000000..f51451d971
--- /dev/null
+++ b/meta-oe/recipes-gnome/gmime/gmime_3.2.13.bb
@@ -0,0 +1,23 @@
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+DESCRIPTION = "Runtime libraries for parsing and creating MIME mail"
+SECTION = "libs"
+
+DEPENDS = "glib-2.0 zlib"
+
+GNOMEBASEBUILDCLASS = "autotools"
+inherit gnomebase gobject-introspection vala gtk-doc
+
+SRC_URI = "https://github.com/jstedfast/${BPN}/releases/download/${PV}/${BP}.tar.xz \
+ file://iconv-detect.h \
+"
+SRC_URI[sha256sum] = "2e10a54d4821daf8b16c019ad5d567e0fb8e766f8ffe5fec3d4c6a37373d6406"
+
+EXTRA_OECONF += "--enable-largefile"
+
+export ac_cv_have_iconv_detect_h="yes"
+export ac_cv_sys_file_offset_bits="64"
+
+do_configure:append () {
+ cp ${WORKDIR}/iconv-detect.h ${S}
+}
diff --git a/meta-oe/recipes-gnome/gmime/gmime_3.2.7.bb b/meta-oe/recipes-gnome/gmime/gmime_3.2.7.bb
deleted file mode 100644
index 2677f5c615..0000000000
--- a/meta-oe/recipes-gnome/gmime/gmime_3.2.7.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-DESCRIPTION = "Runtime libraries for parsing and creating MIME mail"
-SECTION = "libs"
-
-DEPENDS = "glib-2.0 zlib"
-
-inherit gnomebase gobject-introspection vala
-
-SRC_URI += "file://iconv-detect.h \
- file://nodolt.patch"
-SRC_URI[archive.sha256sum] = "2aea96647a468ba2160a64e17c6dc6afe674ed9ac86070624a3f584c10737d44"
-
-export ac_cv_have_iconv_detect_h="yes"
-
-do_configure:append () {
- cp ${WORKDIR}/iconv-detect.h ${S}
-}
diff --git a/meta-oe/recipes-gnome/gnome-common/gnome-common_3.18.0.bb b/meta-oe/recipes-gnome/gnome-common/gnome-common_3.18.0.bb
index 86a941f4a8..9447470213 100644
--- a/meta-oe/recipes-gnome/gnome-common/gnome-common_3.18.0.bb
+++ b/meta-oe/recipes-gnome/gnome-common/gnome-common_3.18.0.bb
@@ -6,6 +6,7 @@ LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SECTION = "x11/gnome"
+GNOMEBASEBUILDCLASS = "autotools"
inherit gnomebase allarch
SRC_URI[archive.md5sum] = "933258d9c23e218eb6eec9cc1951b053"
@@ -16,7 +17,7 @@ DEPENDS = ""
# Default to enable autoconf-archive to avoid conflicts
PACKAGECONFIG ??= "autoconf-archive"
-PACKAGECONFIG[autoconf-archive] = "--with-autoconf-archive, --without-autoconf-archive, autoconf-archive"
+PACKAGECONFIG[autoconf-archive] = "--with-autoconf-archive, --without-autoconf-archive, autoconf-archive,autoconf-archive"
FILES:${PN} += "${datadir}/aclocal"
FILES:${PN}-dev = ""
diff --git a/meta-oe/recipes-gnome/gnome-themes/adw-gtk3_5.2.bb b/meta-oe/recipes-gnome/gnome-themes/adw-gtk3_5.2.bb
new file mode 100644
index 0000000000..d10f5ad413
--- /dev/null
+++ b/meta-oe/recipes-gnome/gnome-themes/adw-gtk3_5.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "An unofficial GTK3 port of libadwaita."
+HOMEPAGE = "http://github.com/lassekongo83/adw-gtk3"
+SECTION = "graphics"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
+
+DEPENDS = "sassc-native"
+
+inherit meson
+
+SRC_URI = "git://github.com/lassekongo83/adw-gtk3.git;protocol=https;branch=main"
+
+S = "${WORKDIR}/git"
+SRCREV = "8056d8701afbd9b985668916557159432e6ad824"
+
+FILES:${PN} = "${datadir}/themes"
diff --git a/meta-oe/recipes-gnome/gnome-themes/gnome-themes-extra_3.28.bb b/meta-oe/recipes-gnome/gnome-themes/gnome-themes-extra_3.28.bb
index d7e422cc97..3456383c3a 100644
--- a/meta-oe/recipes-gnome/gnome-themes/gnome-themes-extra_3.28.bb
+++ b/meta-oe/recipes-gnome/gnome-themes/gnome-themes-extra_3.28.bb
@@ -6,23 +6,25 @@ SECTION = "x11/gnome"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1"
+GNOMEBASEBUILDCLASS = "autotools"
+GTKIC_VERSION = '3'
inherit gnomebase gettext gtk-icon-cache upstream-version-is-even features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-DEPENDS += "intltool-native gtk+"
+DEPENDS += "intltool-native gtk+3 librsvg"
# PV is 3.28 not 3.28.0, so the gnomebase SRC_URI isn't right.
SRC_URI = "${GNOME_MIRROR}/${BPN}/${PV}/${BPN}-${PV}.tar.xz;name=archive"
SRC_URI[archive.md5sum] = "f9f2c6c521948da427f702372e16f826"
SRC_URI[archive.sha256sum] = "7c4ba0bff001f06d8983cfc105adaac42df1d1267a2591798a780bac557a5819"
-EXTRA_OECONF = "--disable-gtk3-engine"
+EXTRA_OECONF = "--disable-gtk2-engine"
do_install:append() {
# Only building Adwaita, remove highcontrast files
- rm -rf ${D}${prefix}/share/themes/HighContrast \
- ${D}${prefix}/share/icons
+ rm -rf ${D}${datadir}/themes/HighContrast \
+ ${D}${datadir}/icons
# The libtool archive file is unneeded with shared libs on modern Linux
rm -rf ${D}${libdir}/gtk-2.0/2.10.0/engines/libadwaita.la
@@ -34,10 +36,10 @@ PACKAGES += "gnome-theme-adwaita \
gnome-theme-adwaita-dark \
"
-FILES:gnome-theme-adwaita = "${prefix}/share/themes/Adwaita \
+FILES:gnome-theme-adwaita = "${datadir}/themes/Adwaita \
${libdir}/gtk-2.0/2.10.0/engines/libadwaita.so"
-FILES:gnome-theme-adwaita-dark = "${prefix}/share/themes/Adwaita-dark"
+FILES:gnome-theme-adwaita-dark = "${datadir}/themes/Adwaita-dark"
RDEPENDS:gnome-theme-adwaita-dark = "gnome-theme-adwaita"
# gnome-themes-standard is empty and doesn't exist
diff --git a/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.5.bb b/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.5.bb
deleted file mode 100644
index 0546814d8e..0000000000
--- a/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.5.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "C++ bindings for the GTK+ toolkit V3"
-HOMEPAGE = "http://www.gtkmm.org/"
-SECTION = "libs"
-
-LICENSE = "LGPL-2.1-only & GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
- file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "glib-2.0-native atkmm pangomm glibmm gtk+3 cairomm gdk-pixbuf-native"
-
-BPN = "gtkmm"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase features_check
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[archive.sha256sum] = "856333de86689f6a81c123f2db15d85db9addc438bc3574c36f15736aeae22e6"
-
-EXTRA_OEMESON = "-Dbuild-demos=false"
-
-FILES:${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"
diff --git a/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.7.bb b/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.7.bb
new file mode 100644
index 0000000000..cac6474e73
--- /dev/null
+++ b/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.7.bb
@@ -0,0 +1,22 @@
+SUMMARY = "C++ bindings for the GTK+ toolkit V3"
+HOMEPAGE = "http://www.gtkmm.org/"
+SECTION = "libs"
+
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "glib-2.0-native atkmm pangomm glibmm gtk+3 cairomm gdk-pixbuf-native"
+
+BPN = "gtkmm"
+
+
+inherit gnomebase features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI[archive.sha256sum] = "1d7a35af9c5ceccacb244ee3c2deb9b245720d8510ac5c7e6f4b6f9947e6789c"
+
+EXTRA_OEMESON = "-Dbuild-demos=false"
+
+FILES:${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"
diff --git a/meta-oe/recipes-gnome/gtk+/gtkmm4_4.14.0.bb b/meta-oe/recipes-gnome/gtk+/gtkmm4_4.14.0.bb
new file mode 100644
index 0000000000..d3a01e444c
--- /dev/null
+++ b/meta-oe/recipes-gnome/gtk+/gtkmm4_4.14.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "C++ bindings for the GTK+ toolkit V4"
+HOMEPAGE = "http://www.gtkmm.org/"
+SECTION = "libs"
+
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "glib-2.0-native atkmm pangomm-2.48 glibmm gtk4 cairomm-1.16 gdk-pixbuf-native"
+
+BPN = "gtkmm"
+
+inherit gnomebase features_check
+
+REQUIRED_DISTRO_FEATURES = "opengl x11"
+
+SRC_URI[archive.sha256sum] = "9350a0444b744ca3dc69586ebd1b6707520922b6d9f4f232103ce603a271ecda"
+
+EXTRA_OEMESON = "-Dbuild-demos=false"
+
+FILES:${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"
diff --git a/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb b/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb
index 54e75a20d3..87b0f5e65d 100644
--- a/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb
+++ b/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb
@@ -8,6 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
DEPENDS = "atkmm pangomm glibmm gtk+ cairomm"
+GNOMEBASEBUILDCLASS = "autotools"
inherit gnomebase features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-oe/recipes-gnome/libjcat/libjcat_0.1.12.bb b/meta-oe/recipes-gnome/libjcat/libjcat_0.1.12.bb
deleted file mode 100644
index ff573ff7df..0000000000
--- a/meta-oe/recipes-gnome/libjcat/libjcat_0.1.12.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Library for reading and writing Jcat files"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
-
-DEPENDS = "\
- glib-2.0 \
- json-glib \
-"
-
-SRC_URI = "\
- git://github.com/hughsie/libjcat.git;branch=main;protocol=https \
- file://run-ptest \
-"
-SRCREV = "898b80468288bc6278b73210783ba1f7c0219c71"
-S = "${WORKDIR}/git"
-
-inherit gobject-introspection gtk-doc meson ptest-gnome vala lib_package
-
-PACKAGECONFIG ??= "\
- gpg \
- pkcs7 \
- ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
-"
-PACKAGECONFIG[gpg] = "-Dgpg=true,-Dgpg=false,gpgme"
-PACKAGECONFIG[pkcs7] = "-Dpkcs7=true,-Dpkcs7=false,gnutls gnutls-native"
-PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
-
-# manpage generation is broken because help2man needs to run the target binary on the host...
-EXTRA_OEMESON = "-Dman=false"
-GTKDOC_MESON_OPTION = "gtkdoc"
-
-RDEPENDS:${PN}:class-target = "\
- ${@bb.utils.contains('PACKAGECONFIG', 'gpg', 'gnupg', '', d)} \
-"
diff --git a/meta-oe/recipes-gnome/libjcat/libjcat_0.2.1.bb b/meta-oe/recipes-gnome/libjcat/libjcat_0.2.1.bb
new file mode 100644
index 0000000000..2d95e14447
--- /dev/null
+++ b/meta-oe/recipes-gnome/libjcat/libjcat_0.2.1.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Library for reading and writing Jcat files"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
+
+DEPENDS = "\
+ glib-2.0 \
+ json-glib \
+"
+
+SRC_URI = "\
+ git://github.com/hughsie/libjcat.git;branch=main;protocol=https \
+ file://run-ptest \
+"
+SRCREV = "869e7cf4511b81897512a3f0adb627218e618112"
+S = "${WORKDIR}/git"
+
+inherit gobject-introspection gtk-doc meson ptest-gnome vala lib_package
+
+PACKAGECONFIG ??= "\
+ gpg \
+ pkcs7 \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
+"
+PACKAGECONFIG[gpg] = "-Dgpg=true,-Dgpg=false,gpgme"
+PACKAGECONFIG[pkcs7] = "-Dpkcs7=true,-Dpkcs7=false,gnutls gnutls-native"
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
+
+# manpage generation is broken because help2man needs to run the target binary on the host...
+EXTRA_OEMESON = "-Dman=false"
+GTKDOC_MESON_OPTION = "gtkdoc"
+
+RDEPENDS:${PN}:class-target = "\
+ ${@bb.utils.contains('PACKAGECONFIG', 'gpg', 'gnupg', '', d)} \
+"
diff --git a/meta-oe/recipes-gnome/libpeas/libpeas/0001-Remove-builddir-and-srcdir-paths-from-test-binaries.patch b/meta-oe/recipes-gnome/libpeas/libpeas/0001-Remove-builddir-and-srcdir-paths-from-test-binaries.patch
new file mode 100644
index 0000000000..6bb48777ec
--- /dev/null
+++ b/meta-oe/recipes-gnome/libpeas/libpeas/0001-Remove-builddir-and-srcdir-paths-from-test-binaries.patch
@@ -0,0 +1,82 @@
+From d798af685e9e1166400acbdab082c17b02dad85b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 18 May 2023 23:28:10 -0700
+Subject: [PATCH] Remove builddir and srcdir paths from test binaries
+
+Encoding buildtime paths is not needed since if these tests are to be
+run they will be run on target where builddir structure most certainly
+wont be available.
+
+Fixes
+WARNING: libpeas-1.36.0-r0 do_package_qa: QA Issue: File /usr/bin/peas-demo in package libpeas-demo contains reference to TMPDIR [buildpaths]
+
+Upstream-Status: Inappropriate [Cross-compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ peas-demo/meson.build | 2 +-
+ tests/libpeas-gtk/testing/meson.build | 4 ++--
+ tests/libpeas/testing/meson.build | 4 ++--
+ tests/testing-util/meson.build | 4 ++--
+ 4 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/peas-demo/meson.build b/peas-demo/meson.build
+index a3ec53b..855ebf2 100644
+--- a/peas-demo/meson.build
++++ b/peas-demo/meson.build
+@@ -9,7 +9,7 @@ peas_demo_c = [
+
+ peas_demo_c_args = [
+ '-DHAVE_CONFIG_H',
+- '-DPEAS_BUILDDIR="@0@"'.format(builddir),
++ '-DPEAS_BUILDDIR="/usr/src/debug/libpeas"',
+ '-DPEAS_PREFIX="@0@"'.format(prefix),
+ '-DPEAS_LIBDIR="@0@"'.format(libdir),
+ ]
+diff --git a/tests/libpeas-gtk/testing/meson.build b/tests/libpeas-gtk/testing/meson.build
+index 646f42d..fd9a692 100644
+--- a/tests/libpeas-gtk/testing/meson.build
++++ b/tests/libpeas-gtk/testing/meson.build
+@@ -19,8 +19,8 @@ libpeas_gtk_testing_deps = [
+
+ libpeas_gtk_testing_c_args = [
+ '-DHAVE_CONFIG_H',
+- '-DBUILDDIR="@0@"'.format(builddir),
+- '-DSRCDIR="@0@"'.format(srcdir),
++ '-DBUILDDIR="/usr/src/debug/libpeas"',
++ '-DSRCDIR="/usr/src/debug/libpeas"',
+ ]
+
+ libpeas_gtk_testing_lib = library(
+diff --git a/tests/libpeas/testing/meson.build b/tests/libpeas/testing/meson.build
+index 74ba7b1..084daa9 100644
+--- a/tests/libpeas/testing/meson.build
++++ b/tests/libpeas/testing/meson.build
+@@ -21,8 +21,8 @@ libpeas_testing_deps = [
+
+ libpeas_testing_c_args = [
+ '-DHAVE_CONFIG_H',
+- '-DBUILDDIR="@0@"'.format(builddir),
+- '-DSRCDIR="@0@"'.format(srcdir),
++ '-DBUILDDIR="/usr/src/debug/libpeas"',
++ '-DSRCDIR="/usr/src/debug/libpeas"',
+ ]
+
+ libpeas_testing_lib = library(
+diff --git a/tests/testing-util/meson.build b/tests/testing-util/meson.build
+index 1c40740..83ad059 100644
+--- a/tests/testing-util/meson.build
++++ b/tests/testing-util/meson.build
+@@ -17,8 +17,8 @@ libtesting_util_deps = [
+
+ libtesting_util_c_args = [
+ '-DHAVE_CONFIG_H',
+- '-DBUILDDIR="@0@"'.format(builddir),
+- '-DSRCDIR="@0@"'.format(srcdir),
++ '-DBUILDDIR="/usr/src/debug/libpeas"',
++ '-DSRCDIR="/usr/src/debug/libpeas"',
+ '-UG_DISABLE_ASSERT',
+ '-UG_DISABLE_CAST_CHECKS',
+ ]
+--
+2.40.1
+
diff --git a/meta-oe/recipes-gnome/libpeas/libpeas_1.34.0.bb b/meta-oe/recipes-gnome/libpeas/libpeas_1.34.0.bb
deleted file mode 100644
index 1bf6752e87..0000000000
--- a/meta-oe/recipes-gnome/libpeas/libpeas_1.34.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "libpeas is a gobject-based plugins engine"
-HOMEPAGE = "https://wiki.gnome.org/Projects/Libpeas"
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4b54a1fd55a448865a0b32d41598759d"
-
-DEPENDS = "gtk+3"
-
-GNOMEBASEBUILDCLASS = "meson"
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-inherit gnomebase gobject-introspection gtk-doc gtk-icon-cache features_check
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[archive.sha256sum] = "4305f715dab4b5ad3e8007daec316625e7065a94e63e25ef55eb1efb964a7bf0"
-
-PACKAGECONFIG[python3] = "-Dpython3=true,-Dpython3=false,python3-pygobject"
-
-PACKAGES =+ "${PN}-demo ${PN}-python3"
-FILES:${PN}-demo = " \
- ${bindir}/peas-demo \
- ${libdir}/peas-demo \
-"
-
-RDEPENDS:${PN}-python3 = "python3-pygobject"
-FILES:${PN}-python3 = "${libdir}/libpeas-1.0/loaders/libpython3loader.so"
diff --git a/meta-oe/recipes-gnome/libpeas/libpeas_1.36.0.bb b/meta-oe/recipes-gnome/libpeas/libpeas_1.36.0.bb
new file mode 100644
index 0000000000..016981f04d
--- /dev/null
+++ b/meta-oe/recipes-gnome/libpeas/libpeas_1.36.0.bb
@@ -0,0 +1,28 @@
+SUMMARY = "libpeas is a gobject-based plugins engine"
+HOMEPAGE = "https://wiki.gnome.org/Projects/Libpeas"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4b54a1fd55a448865a0b32d41598759d"
+
+DEPENDS = "gtk+3"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+inherit gnomebase gobject-introspection gi-docgen gtk-icon-cache features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+# FIXME: When upgrading to libpeas 2, g-i is no longer needed.
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+
+SRC_URI += "file://0001-Remove-builddir-and-srcdir-paths-from-test-binaries.patch"
+SRC_URI[archive.sha256sum] = "297cb9c2cccd8e8617623d1a3e8415b4530b8e5a893e3527bbfd1edd13237b4c"
+
+PACKAGECONFIG[python3] = "-Dpython3=true,-Dpython3=false,python3-pygobject"
+
+PACKAGES =+ "${PN}-demo ${PN}-python3"
+FILES:${PN}-demo = " \
+ ${bindir}/peas-demo \
+ ${libdir}/peas-demo \
+"
+
+RDEPENDS:${PN}-python3 = "python3-pygobject"
+FILES:${PN}-python3 = "${libdir}/libpeas-1.0/loaders/libpython3loader.so"
diff --git a/meta-oe/recipes-gnome/libxmlb/libxmlb/run-ptest b/meta-oe/recipes-gnome/libxmlb/libxmlb/run-ptest
deleted file mode 100644
index 6d0bb95d3a..0000000000
--- a/meta-oe/recipes-gnome/libxmlb/libxmlb/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#! /bin/sh
-
-gnome-desktop-testing-runner libxmlb
diff --git a/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.10.bb b/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.10.bb
deleted file mode 100644
index 1f5310ca16..0000000000
--- a/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.10.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A library to help create and query binary XML blobs"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
-
-SRC_URI = "git://github.com/hughsie/libxmlb.git;branch=main;protocol=https \
- file://run-ptest \
- "
-SRCREV = "a6cac6a715d57c393bbddee4d0381ad943341af9"
-S = "${WORKDIR}/git"
-
-inherit gobject-introspection gtk-doc meson ptest-gnome lib_package
-
-PACKAGECONFIG ??= "\
- ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
-"
-PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
-
-GTKDOC_MESON_OPTION = "gtkdoc"
-
-FILES:${PN}-bin += "${libexecdir}/*"
diff --git a/meta-oe/recipes-gnome/vte9/vte9.inc b/meta-oe/recipes-gnome/vte9/vte9.inc
deleted file mode 100644
index 49b9740129..0000000000
--- a/meta-oe/recipes-gnome/vte9/vte9.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Virtual terminal emulator GTK+ widget library"
-BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte"
-LICENSE = "LGPL-2.0-only"
-DEPENDS = " glib-2.0 gtk+ intltool-native gnome-common-native ncurses"
-RDEPENDS:libvte = "vte-termcap"
-
-# help gnomebase get the SRC_URI correct
-GNOMEBN = "vte"
-S = "${WORKDIR}/vte-${PV}"
-
-inherit gnomebase gtk-doc features_check upstream-version-is-even gobject-introspection
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-
-EXTRA_OECONF = "--disable-python"
-
-PACKAGES =+ "libvte9 vte9-termcap"
-FILES:libvte9 = "${libdir}/*.so.* ${libexecdir}/gnome-pty-helper"
-FILES:vte9-termcap = "${datadir}/vte/termcap-0.0"
diff --git a/meta-oe/recipes-gnome/vte9/vte9/cve-2012-2738.patch b/meta-oe/recipes-gnome/vte9/vte9/cve-2012-2738.patch
deleted file mode 100644
index 9b9980397a..0000000000
--- a/meta-oe/recipes-gnome/vte9/vte9/cve-2012-2738.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-Upstream-Status: Backport
-CVE: CVE-2012-2738
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From e524b0b3bd8fad844ffa73927c199545b892cdbd Mon Sep 17 00:00:00 2001
-From: Christian Persch <chpe@gnome.org>
-Date: Sat, 19 May 2012 19:36:09 +0200
-Subject: [PATCH 1/2] emulation: Limit integer arguments to 65535
-
-To guard against malicious sequences containing excessively big numbers,
-limit all parsed numbers to 16 bit range. Doing this here in the parsing
-routine is a catch-all guard; this doesn't preclude enforcing
-more stringent limits in the handlers themselves.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=676090
----
- src/table.c | 2 +-
- src/vteseq.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/table.c b/src/table.c
-index 140e8c8..85cf631 100644
---- a/src/table.c
-+++ b/src/table.c
-@@ -550,7 +550,7 @@ _vte_table_extract_numbers(GValueArray **array,
- if (G_UNLIKELY (*array == NULL)) {
- *array = g_value_array_new(1);
- }
-- g_value_set_long(&value, total);
-+ g_value_set_long(&value, CLAMP (total, 0, G_MAXUSHORT));
- g_value_array_append(*array, &value);
- } while (i++ < arginfo->length);
- g_value_unset(&value);
-diff --git a/src/vteseq.c b/src/vteseq.c
-index 7ef4c8c..10991db 100644
---- a/src/vteseq.c
-+++ b/src/vteseq.c
-@@ -557,7 +557,7 @@ vte_sequence_handler_multiple(VteTerminal *terminal,
- GValueArray *params,
- VteTerminalSequenceHandler handler)
- {
-- vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXLONG);
-+ vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXUSHORT);
- }
-
- static void
---
-2.4.9 (Apple Git-60)
-
-
-From cf1ad453a8def873c49cf6d88162593402f32bb2 Mon Sep 17 00:00:00 2001
-From: Christian Persch <chpe@gnome.org>
-Date: Sat, 19 May 2012 20:04:12 +0200
-Subject: [PATCH 2/2] emulation: Limit repetitions
-
-Don't allow malicious sequences to cause excessive repetitions.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=676090
----
- src/vteseq.c | 25 ++++++++++++++++++-------
- 1 file changed, 18 insertions(+), 7 deletions(-)
-
-diff --git a/src/vteseq.c b/src/vteseq.c
-index 10991db..209522f 100644
---- a/src/vteseq.c
-+++ b/src/vteseq.c
-@@ -1392,7 +1392,7 @@ vte_sequence_handler_dc (VteTerminal *terminal, GValueArray *params)
- static void
- vte_sequence_handler_DC (VteTerminal *terminal, GValueArray *params)
- {
-- vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_dc);
-+ vte_sequence_handler_multiple_r(terminal, params, vte_sequence_handler_dc);
- }
-
- /* Delete a line at the current cursor position. */
-@@ -1785,7 +1785,7 @@ vte_sequence_handler_reverse_index (VteTerminal *terminal, GValueArray *params)
- static void
- vte_sequence_handler_RI (VteTerminal *terminal, GValueArray *params)
- {
-- vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_nd);
-+ vte_sequence_handler_multiple_r(terminal, params, vte_sequence_handler_nd);
- }
-
- /* Save cursor (position). */
-@@ -2777,8 +2777,7 @@ vte_sequence_handler_insert_lines (VteTerminal *terminal, GValueArray *params)
- {
- GValue *value;
- VteScreen *screen;
-- long param, end, row;
-- int i;
-+ long param, end, row, i, limit;
- screen = terminal->pvt->screen;
- /* The default is one. */
- param = 1;
-@@ -2796,7 +2795,13 @@ vte_sequence_handler_insert_lines (VteTerminal *terminal, GValueArray *params)
- } else {
- end = screen->insert_delta + terminal->row_count - 1;
- }
-- /* Insert the new lines at the cursor. */
-+
-+ /* Only allow to insert as many lines as there are between this row
-+ * and the end of the scrolling region. See bug #676090.
-+ */
-+ limit = end - row + 1;
-+ param = MIN (param, limit);
-+
- for (i = 0; i < param; i++) {
- /* Clear a line off the end of the region and add one to the
- * top of the region. */
-@@ -2817,8 +2822,7 @@ vte_sequence_handler_delete_lines (VteTerminal *terminal, GValueArray *params)
- {
- GValue *value;
- VteScreen *screen;
-- long param, end, row;
-- int i;
-+ long param, end, row, i, limit;
-
- screen = terminal->pvt->screen;
- /* The default is one. */
-@@ -2837,6 +2841,13 @@ vte_sequence_handler_delete_lines (VteTerminal *terminal, GValueArray *params)
- } else {
- end = screen->insert_delta + terminal->row_count - 1;
- }
-+
-+ /* Only allow to delete as many lines as there are between this row
-+ * and the end of the scrolling region. See bug #676090.
-+ */
-+ limit = end - row + 1;
-+ param = MIN (param, limit);
-+
- /* Clear them from below the current cursor. */
- for (i = 0; i < param; i++) {
- /* Insert a line at the end of the region and remove one from
---
-2.4.9 (Apple Git-60)
-
diff --git a/meta-oe/recipes-gnome/vte9/vte9/obsolete_automake_macros.patch b/meta-oe/recipes-gnome/vte9/vte9/obsolete_automake_macros.patch
deleted file mode 100644
index 6763d37540..0000000000
--- a/meta-oe/recipes-gnome/vte9/vte9/obsolete_automake_macros.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=691545]
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd vte-0.28.2/gnome-pty-helper/configure.in vte-0.28.2/gnome-pty-helper/configure.in
---- vte-0.28.2/gnome-pty-helper/configure.in 2010-07-15 20:08:44.000000000 +0300
-+++ vte-0.28.2/gnome-pty-helper/configure.in 2013-01-11 14:50:34.971027440 +0200
-@@ -8,7 +8,6 @@
- AC_ISC_POSIX
- AC_PROG_CC
- AC_STDC_HEADERS
--AM_PROG_CC_STDC
-
- if test -z "$enable_maintainer_mode"; then
- enable_maintainer_mode=yes
diff --git a/meta-oe/recipes-gnome/vte9/vte9_0.28.2.bb b/meta-oe/recipes-gnome/vte9/vte9_0.28.2.bb
deleted file mode 100644
index 72bc9ec39b..0000000000
--- a/meta-oe/recipes-gnome/vte9/vte9_0.28.2.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-require vte9.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
-
-SRC_URI += "file://obsolete_automake_macros.patch \
- file://cve-2012-2738.patch \
- "
-
-CFLAGS += "-D_GNU_SOURCE"
-
-SRC_URI[archive.md5sum] = "497f26e457308649e6ece32b3bb142ff"
-SRC_URI[archive.sha256sum] = "86cf0b81aa023fa93ed415653d51c96767f20b2d7334c893caba71e42654b0ae"
diff --git a/meta-oe/recipes-graphics/aml/aml_git.bb b/meta-oe/recipes-graphics/aml/aml_git.bb
new file mode 100644
index 0000000000..2633e0d215
--- /dev/null
+++ b/meta-oe/recipes-graphics/aml/aml_git.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Andri's Main Loop"
+DESCRIPTION = "Andri's Main Loop"
+HOMEPAGE = "https://github.com/any1/aml"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6f3cfaa39204b96e14b68b9d50d3e4e"
+
+SRC_URI = "git://github.com/any1/aml;branch=master;protocol=https"
+
+SRCREV = "b83f3576ce4187d9285f06e9066ef43a691464d4"
+
+PV = "0.3.0+git"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[examples] = "-Dexamples=true,-Dexamples=false"
+
+PACKAGE_BEFORE_PN += "${PN}-examples"
+ALLOW_EMPTY:${PN}-examples = "1"
+FILES:${PN}-examples = "${bindir}"
+
+inherit meson pkgconfig
+
+AML_EXAMPLES = "ticker nested-ticker reader"
+
+do_install:append () {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'examples', 'true', 'false', d)}; then
+ install -d ${D}${bindir}
+ for bin in ${AML_EXAMPLES}; do
+ install -m 0755 ${B}/examples/$bin ${D}${bindir}
+ done
+ fi
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/cairo/cairomm-1.16_1.16.2.bb b/meta-oe/recipes-graphics/cairo/cairomm-1.16_1.16.2.bb
deleted file mode 100644
index c1e271ffa1..0000000000
--- a/meta-oe/recipes-graphics/cairo/cairomm-1.16_1.16.2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "C++ bindings for Cairo graphics library"
-
-LICENSE = "LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9"
-
-GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase
-
-DEPENDS += "boost cairo libsigc++-3"
-
-SRC_URI = "https://www.cairographics.org/releases/cairomm-${PV}.tar.xz"
-SRC_URI[sha256sum] = "6a63bf98a97dda2b0f55e34d1b5f3fb909ef8b70f9b8d382cb1ff3978e7dc13f"
-
-S = "${WORKDIR}/cairomm-${PV}"
-
-FILES:${PN}-doc += "${datadir}/devhelp"
-FILES:${PN}-dev += "${libdir}/cairomm-*/"
-
diff --git a/meta-oe/recipes-graphics/cairo/cairomm-1.16_1.18.0.bb b/meta-oe/recipes-graphics/cairo/cairomm-1.16_1.18.0.bb
new file mode 100644
index 0000000000..a6872ef0cd
--- /dev/null
+++ b/meta-oe/recipes-graphics/cairo/cairomm-1.16_1.18.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "C++ bindings for Cairo graphics library"
+
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9"
+
+inherit gnomebase
+
+DEPENDS += "boost cairo libsigc++-3"
+
+SRC_URI = "https://www.cairographics.org/releases/cairomm-${PV}.tar.xz"
+SRC_URI[sha256sum] = "b81255394e3ea8e8aa887276d22afa8985fc8daef60692eb2407d23049f03cfb"
+
+S = "${WORKDIR}/cairomm-${PV}"
+
+FILES:${PN}-doc += "${datadir}/devhelp"
+FILES:${PN}-dev += "${libdir}/cairomm-*/"
+
diff --git a/meta-oe/recipes-graphics/cairo/cairomm_1.14.3.bb b/meta-oe/recipes-graphics/cairo/cairomm_1.14.3.bb
index 8123509f40..54a2b07ca5 100644
--- a/meta-oe/recipes-graphics/cairo/cairomm_1.14.3.bb
+++ b/meta-oe/recipes-graphics/cairo/cairomm_1.14.3.bb
@@ -3,7 +3,6 @@ SUMMARY = "C++ bindings for Cairo graphics library"
LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9"
-GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase
DEPENDS += "boost cairo libsigc++-2.0"
diff --git a/meta-oe/recipes-graphics/cglm/cglm_0.8.5.bb b/meta-oe/recipes-graphics/cglm/cglm_0.8.5.bb
deleted file mode 100644
index 5a437c102f..0000000000
--- a/meta-oe/recipes-graphics/cglm/cglm_0.8.5.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "OpenGL Mathematics Library for C"
-DESCRIPTION = "Highly optimized 2D|3D math library, also known as OpenGL Mathematics (glm) for `C`. \
-cglm provides lot of utils to help math operations to be fast and quick to write. It is community \
-friendly, feel free to bring any issues, bugs you faced."
-HOMEPAGE = "https://github.com/recp/cglm"
-BUGTRACKER = "https://github.com/recp/cglm/issues"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8dc95c4110ba741c43832734b51b7de7"
-
-SRC_URI = "git://github.com/recp/cglm;branch=master;protocol=https"
-# Tag v0.8.5
-SRCREV = "7e5d1f435f628b873347eb052b7d6605b0b997f2"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG[build_tests] = "-Dbuild_tests=true,-Dbuild_tests=false,"
-
-PACKAGECONFIG ?= ""
-
-inherit meson pkgconfig
-
-EXTRA_OEMESON += "--buildtype release"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/cglm/cglm_0.9.2.bb b/meta-oe/recipes-graphics/cglm/cglm_0.9.2.bb
new file mode 100644
index 0000000000..b503c6ed9c
--- /dev/null
+++ b/meta-oe/recipes-graphics/cglm/cglm_0.9.2.bb
@@ -0,0 +1,25 @@
+SUMMARY = "OpenGL Mathematics Library for C"
+DESCRIPTION = "Highly optimized 2D|3D math library, also known as OpenGL Mathematics (glm) for `C`. \
+cglm provides lot of utils to help math operations to be fast and quick to write. It is community \
+friendly, feel free to bring any issues, bugs you faced."
+HOMEPAGE = "https://github.com/recp/cglm"
+BUGTRACKER = "https://github.com/recp/cglm/issues"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8dc95c4110ba741c43832734b51b7de7"
+
+SRC_URI = "git://github.com/recp/cglm;branch=master;protocol=https"
+# Tag v0.9.1
+SRCREV = "c8781615183ce3cb4f5d72caf70f2c01d7d4d2af"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG[build_tests] = "-Dbuild_tests=true,-Dbuild_tests=false,"
+
+PACKAGECONFIG ?= ""
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON += "--buildtype release"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-Mimic-GNU-basename-API-for-non-glibc-library-e.g.-mu.patch b/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-Mimic-GNU-basename-API-for-non-glibc-library-e.g.-mu.patch
new file mode 100644
index 0000000000..aa8406e315
--- /dev/null
+++ b/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-Mimic-GNU-basename-API-for-non-glibc-library-e.g.-mu.patch
@@ -0,0 +1,28 @@
+From 272491297564513c4ce49a11bc1ecc523a3afd63 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Mar 2024 11:05:54 -0700
+Subject: [PATCH] Mimic GNU basename() API for non-glibc library e.g. musl
+
+Upstream-Status: Submitted [https://github.com/lucasdemarchi/dietsplash/pull/7]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/util.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/util.h b/src/util.h
+index 1f4c3ef..a3ab54a 100644
+--- a/src/util.h
++++ b/src/util.h
+@@ -60,6 +60,9 @@
+ */
+ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + _array_size_chk(arr))
+
++#if !defined(__GLIBC__)
++#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src)
++#endif
+
+ #define DIE_PREFIX "[" PACKAGE_NAME "] ERR: "
+ #define LOG_SUFFIX "\n"
+--
+2.44.0
+
diff --git a/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-configure.ac-Do-not-demand-linker-hash-style.patch b/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-configure.ac-Do-not-demand-linker-hash-style.patch
index 87e8637eec..aad393b1d9 100644
--- a/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-configure.ac-Do-not-demand-linker-hash-style.patch
+++ b/meta-oe/recipes-graphics/dietsplash/dietsplash/0001-configure.ac-Do-not-demand-linker-hash-style.patch
@@ -8,6 +8,8 @@ is not supported
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 1 -
1 file changed, 1 deletion(-)
diff --git a/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb b/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
index 2c28fde347..1ee2657bd0 100644
--- a/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
+++ b/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
@@ -4,13 +4,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
# Really, no depends besides a C library
-PV = "0.3"
-PR = "r1"
+PV = "0.3+git"
-SRCREV = "ef2e1a390e768e21e6a6268977580ee129a96633"
+SRCREV = "8bed71d860bbb0c8792fa2a1179c9beeae84d577"
SRC_URI = "git://github.com/lucasdemarchi/dietsplash.git;branch=master;protocol=https \
file://0001-configure.ac-Do-not-demand-linker-hash-style.patch \
- "
+ file://0001-Mimic-GNU-basename-API-for-non-glibc-library-e.g.-mu.patch \
+"
inherit autotools
diff --git a/meta-oe/recipes-graphics/directfb/directfb.inc b/meta-oe/recipes-graphics/directfb/directfb.inc
index 07b98648fd..4d38632e25 100644
--- a/meta-oe/recipes-graphics/directfb/directfb.inc
+++ b/meta-oe/recipes-graphics/directfb/directfb.inc
@@ -23,6 +23,7 @@ SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/DirectFB-${PV}.tar.g
file://fix-tslib-version-check.patch \
file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
file://0001-os-linux-Fix-build-when-__NR_futex-is-not-available.patch \
+ file://0001-include-libgen.h-for-basename.patch \
"
S = "${WORKDIR}/DirectFB-${PV}"
diff --git a/meta-oe/recipes-graphics/directfb/directfb/0001-include-libgen.h-for-basename.patch b/meta-oe/recipes-graphics/directfb/directfb/0001-include-libgen.h-for-basename.patch
new file mode 100644
index 0000000000..abdba18fec
--- /dev/null
+++ b/meta-oe/recipes-graphics/directfb/directfb/0001-include-libgen.h-for-basename.patch
@@ -0,0 +1,32 @@
+From c8cf3ffd4fa14cdc6d607a09d51e898dec922348 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 18:17:44 -0700
+Subject: [PATCH] include libgen.h for basename
+
+basename prototype has been removed from string.h from latest musl [1]
+compilers e.g. clang-18 flags the absense of prototype as error. therefore
+include libgen.h for providing it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Inappropriate [Upstream is dead]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ systems/fbdev/fbdev.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/systems/fbdev/fbdev.c b/systems/fbdev/fbdev.c
+index 5297358..4e6f178 100644
+--- a/systems/fbdev/fbdev.c
++++ b/systems/fbdev/fbdev.c
+@@ -42,6 +42,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <strings.h>
++#include <libgen.h>
+ #if defined(HAVE_SYSIO)
+ # include <sys/io.h>
+ #endif
+--
+2.44.0
+
diff --git a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
index 6a7b1bf31d..5740f4a819 100644
--- a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
+++ b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] Do not set PYTHON_INSTALL_DIR by running python.
Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch
index bef471189f..2951ee4555 100644
--- a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch
+++ b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch
@@ -11,6 +11,8 @@ shipped in any package:
Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch
index c8b105ea35..078f525117 100644
--- a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch
+++ b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] disable build manpages.
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
CMakeLists.txt | 1 -
1 file changed, 1 deletion(-)
diff --git a/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.2.bb b/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.2.bb
deleted file mode 100644
index 671b8ca933..0000000000
--- a/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.2.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "dnfdragora is a DNF frontend, based on rpmdragora from Mageia (originally rpmdrake) Perl code."
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504 \
- "
-
-SRC_URI = "git://github.com/manatools/dnfdragora.git;branch=master;protocol=https \
- file://0001-disable-build-manpages.patch \
- file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
- file://0001-To-fix-error-when-do_package.patch \
- "
-
-SRCREV = "5cbbc07c9d015af284a424a172a379b385f05b6f"
-
-S = "${WORKDIR}/git"
-
-inherit cmake gettext pkgconfig python3-dir python3native setuptools3-base mime-xdg
-
-DEPENDS += "dnf python3 "
-#DEPENDS:class-nativesdk += "nativesdk-python3"
-
-RDEPENDS:${PN}:class-target = " python3-core libyui libyui-ncurses "
-
-# manpages generation requires http://www.sphinx-doc.org/
-EXTRA_OECMAKE = " -DWITH_MAN=OFF -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3"
-
-BBCLASSEXTEND = "nativesdk"
-
-FILES:${PN} = "${PYTHON_SITEPACKAGES_DIR}/ ${datadir}/ ${bindir}/ ${sysconfdir}/dnfdragora ${sysconfdir}/xdg"
-
-SKIP_RECIPE[dnfdragora] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}"
-
diff --git a/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.6.bb b/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.6.bb
new file mode 100644
index 0000000000..50504caf9f
--- /dev/null
+++ b/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.6.bb
@@ -0,0 +1,31 @@
+SUMMARY = "dnfdragora is a DNF frontend, based on rpmdragora from Mageia (originally rpmdrake) Perl code."
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504 \
+ "
+
+SRC_URI = "git://github.com/manatools/dnfdragora.git;branch=stable-2.x;protocol=https \
+ file://0001-disable-build-manpages.patch \
+ file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
+ file://0001-To-fix-error-when-do_package.patch \
+ "
+
+SRCREV = "abbe08b7a487325182758d5285b54437a914207b"
+
+S = "${WORKDIR}/git"
+
+inherit cmake gettext pkgconfig python3-dir python3native setuptools3-base mime-xdg
+
+DEPENDS += "dnf python3 "
+#DEPENDS:class-nativesdk += "nativesdk-python3"
+
+RDEPENDS:${PN}:class-target = " python3-core libyui libyui-ncurses "
+
+# manpages generation requires http://www.sphinx-doc.org/
+EXTRA_OECMAKE = " -DWITH_MAN=OFF -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3"
+
+BBCLASSEXTEND = "nativesdk"
+
+FILES:${PN} = "${PYTHON_SITEPACKAGES_DIR}/ ${datadir}/ ${bindir}/ ${sysconfdir}/dnfdragora ${sysconfdir}/xdg"
+
+SKIP_RECIPE[dnfdragora] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build correctly without package_rpm in PACKAGE_CLASSES', d)}"
+
diff --git a/meta-oe/recipes-graphics/fbida/fbida_2.14.bb b/meta-oe/recipes-graphics/fbida/fbida_2.14.bb
deleted file mode 100644
index 3d65399cd2..0000000000
--- a/meta-oe/recipes-graphics/fbida/fbida_2.14.bb
+++ /dev/null
@@ -1,80 +0,0 @@
-SUMMARY = "Framebuffer image and doc viewer tools"
-DESCRIPTION = "The fbida project contains a few applications for viewing and editing images, \
- with the main focus being photos."
-HOMEPAGE = "http://linux.bytesex.org/fbida/"
-AUTHOR = "Gerd Hoffmann"
-SECTION = "utils"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e8feb78a32950a909621bbb51f634b39"
-
-DEPENDS = "virtual/libiconv jpeg fontconfig freetype libexif libdrm pixman poppler libepoxy cairo"
-
-SRC_URI = "https://www.kraxel.org/releases/fbida/fbida-${PV}.tar.gz \
- file://0001-Avoid-using-host-path.patch \
- file://fix-preprocessor.patch \
- file://support-jpeg-turbo.patch \
- file://cairo-weak-detect.patch \
- file://fbida-gcc10.patch \
- "
-SRC_URI[sha256sum] = "95b7c01556cb6ef9819f358b314ddfeb8a4cbe862b521a3ed62f03d163154438"
-
-inherit pkgconfig features_check
-
-# Depends on libepoxy
-REQUIRED_DISTRO_FEATURES = "opengl"
-
-EXTRA_OEMAKE = "STRIP= 'srcdir=${S}' -f ${S}/GNUmakefile"
-
-PACKAGECONFIG ??= "gif png curl"
-PACKAGECONFIG[curl] = ",,curl"
-PACKAGECONFIG[gif] = ",,giflib"
-PACKAGECONFIG[png] = ",,libpng"
-PACKAGECONFIG[tiff] = ",,tiff"
-PACKAGECONFIG[motif] = ",,libx11 libxext libxpm libxt openmotif"
-PACKAGECONFIG[webp] = ",,libwebp"
-PACKAGECONFIG[lirc] = ",,lirc"
-# This can only be enabled when cairo has egl enabled in its packageconfig support too
-PACKAGECONFIG[egl] = ",,"
-
-EXTRA_OEMAKE += ""${@bb.utils.contains('PACKAGECONFIG', 'egl', 'HAVE_CAIRO_GL=yes', 'HAVE_CAIRO_GL=no', d)}""
-
-CFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}"
-
-do_compile() {
- sed -i -e 's# fbgs# \$(srcdir)/fbgs#; s#-Ijpeg#-I\$(srcdir)/jpeg#; s# jpeg/# \$(srcdir)/jpeg/#' ${S}/GNUmakefile
- sed -i -e 's:/sbin/ldconfig:echo x:' ${S}/mk/Autoconf.mk
- sed -i -e 's: cpp: ${CPP}:' ${S}/GNUmakefile
-
- # Be sure to respect preferences (force to "no")
- # Also avoid issues when ${BUILD_ARCH} == ${HOST_ARCH}
- if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'curl', d)}" ]; then
- sed -i -e '/^HAVE_LIBCURL/s/:=.*$/:= no/' ${S}/GNUmakefile
- fi
- if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'gif', d)}" ]; then
- sed -i -e '/^HAVE_LIBGIF/s/:=.*$/:= no/' ${S}/GNUmakefile
- fi
- if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'png', d)}" ]; then
- sed -i -e '/^HAVE_LIBPNG/s/:=.*$/:= no/' ${S}/GNUmakefile
- fi
- if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'tiff', d)}" ]; then
- sed -i -e '/^HAVE_LIBTIFF/s/:=.*$/:= no/' ${S}/GNUmakefile
- fi
- if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'motif', d)}" ]; then
- sed -i -e '/^HAVE_MOTIF/s/:=.*$/:= no/' ${S}/GNUmakefile
- fi
- if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'webp', d)}" ]; then
- sed -i -e '/^HAVE_LIBWEBP/s/:=.*$/:= no/' ${S}/GNUmakefile
- fi
- if [ -z "${@bb.utils.filter('PACKAGECONFIG', 'lirc', d)}" ]; then
- sed -i -e '/^HAVE_LIBLIRC/s/:=.*$/:= no/' ${S}/GNUmakefile
- fi
-
- oe_runmake
-}
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install
-}
-
-RDEPENDS:${PN} = "ttf-dejavu-sans-mono"
diff --git a/meta-oe/recipes-graphics/fbida/fbida_git.bb b/meta-oe/recipes-graphics/fbida/fbida_git.bb
new file mode 100644
index 0000000000..247a1fcbb2
--- /dev/null
+++ b/meta-oe/recipes-graphics/fbida/fbida_git.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Framebuffer image and doc viewer tools"
+DESCRIPTION = "The fbida project contains a few applications for viewing and editing images, \
+ with the main focus being photos."
+HOMEPAGE = "https://www.kraxel.org/blog/linux/fbida/"
+SECTION = "utils"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e8feb78a32950a909621bbb51f634b39"
+
+DEPENDS = "virtual/libiconv jpeg fontconfig freetype libexif libdrm pixman udev libinput cairo"
+
+PV = "2.14+git"
+SRC_URI = "git://github.com/kraxel/fbida;protocol=https;branch=master \
+ file://fix-preprocessor.patch \
+ file://support-jpeg-turbo.patch \
+ file://fbida-gcc10.patch \
+ file://0001-meson.build-install-fbgs-shell-script.patch \
+ file://0002-meson.build-add-features-options-for-png-gif-tiff-we.patch \
+ file://0003-meson.build-do-not-require-xkbcommon.patch \
+ file://0001-meson.build-make-fbpdf-build-optional.patch \
+ file://0001-fbida-Include-missing-sys-types.h.patch \
+"
+SRCREV = "eb769e3d7f4a073d4c37ed524ebd5017c6a578f5"
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig features_check
+
+# Depends on libepoxy
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+PACKAGECONFIG ??= "gif png pdf"
+PACKAGECONFIG[gif] = "-Dgif=enabled,-Dgif=disabled,giflib"
+PACKAGECONFIG[png] = "-Dpng=enabled,-Dpng=disabled,libpng"
+PACKAGECONFIG[tiff] = "-Dtiff=enabled,-Dtiff=disabled,tiff"
+PACKAGECONFIG[motif] = "-Dmotif=enabled,-Dmotif=disabled,libx11 libxext libxpm libxt openmotif"
+PACKAGECONFIG[webp] = "-Dwebp=enabled,-Dwebp=disabled,libwebp"
+PACKAGECONFIG[pdf] = "-Dpdf=enabled,-Dpdf=disabled,poppler libepoxy"
+
+CFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}"
+
+RDEPENDS:${PN} = "ttf-dejavu-sans-mono"
diff --git a/meta-oe/recipes-graphics/fbida/files/0001-Avoid-using-host-path.patch b/meta-oe/recipes-graphics/fbida/files/0001-Avoid-using-host-path.patch
deleted file mode 100644
index cdf2c25d37..0000000000
--- a/meta-oe/recipes-graphics/fbida/files/0001-Avoid-using-host-path.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 8d8fa9f22d9f6a95523bac63ac3af724faf5ff92 Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Fri, 7 Apr 2017 23:26:09 +0200
-Subject: [PATCH] Avoid using host-path
-
-Remove the explicit reference to /usr/local/* , this is completely
-bogus and causes trouble during cross-compilation.
-
-Signed-off-by: Marek Vasut <marex@denx.de>
-Upstream-Status: Inappropriate [upstream requires this]
----
- mk/Variables.mk | 6 ------
- 1 file changed, 6 deletions(-)
-
-diff --git a/mk/Variables.mk b/mk/Variables.mk
-index 99f787c..3ffd87a 100644
---- a/mk/Variables.mk
-+++ b/mk/Variables.mk
-@@ -42,12 +42,6 @@ CFLAGS += -Wall -Wmissing-prototypes -Wstrict-prototypes \
- -Wpointer-arith -Wunused
- CXXFLAGS += -Wall -Wpointer-arith -Wunused
-
--# add /usr/local to the search path if something is in there ...
--ifneq ($(wildcard /usr/local/include/*.h),)
-- CFLAGS += -I/usr/local/include
-- LDFLAGS += -L/usr/local/$(LIB)
--endif
--
- # fixup include path for $(srcdir) != "."
- ifneq ($(srcdir),.)
- CFLAGS += -I. -I$(srcdir)
---
-2.11.0
-
diff --git a/meta-oe/recipes-graphics/fbida/files/0001-fbida-Include-missing-sys-types.h.patch b/meta-oe/recipes-graphics/fbida/files/0001-fbida-Include-missing-sys-types.h.patch
new file mode 100644
index 0000000000..0fb58f80e1
--- /dev/null
+++ b/meta-oe/recipes-graphics/fbida/files/0001-fbida-Include-missing-sys-types.h.patch
@@ -0,0 +1,31 @@
+From 17490e264e627ead81bf5840c8797de968485943 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 3 Jul 2023 11:25:26 -0700
+Subject: [PATCH] fbida: Include missing <sys/types.h>
+
+Fixes build on musl
+../git/gfx.h:43:5: error: unknown type name 'dev_t'; did you mean 'div_t'?
+ dev_t devnum;
+ ^~~~~
+ div_t
+TOPDIR/build/tmp/work/cortexa57-yoe-linux-musl/fbida/2.14+gitAUTOINC+eb769e3d7f-r0/recipe-sysroot/usr/include/stdlib.h:64:35: note: 'div_t' declared here
+typedef struct { int quot, rem; } div_t;
+ ^
+1 error generated
+
+Upstream-Status: Submitted [https://github.com/kraxel/fbida/pull/3]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gfx.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/gfx.h
++++ b/gfx.h
+@@ -1,5 +1,6 @@
+ #include <stdbool.h>
+ #include <inttypes.h>
++#include <sys/types.h>
+
+ #include <pixman.h>
+ #include <cairo.h>
diff --git a/meta-oe/recipes-graphics/fbida/files/0001-meson.build-install-fbgs-shell-script.patch b/meta-oe/recipes-graphics/fbida/files/0001-meson.build-install-fbgs-shell-script.patch
new file mode 100644
index 0000000000..4d081258be
--- /dev/null
+++ b/meta-oe/recipes-graphics/fbida/files/0001-meson.build-install-fbgs-shell-script.patch
@@ -0,0 +1,28 @@
+From f9c455e81ad4d870c8ae20b9af8598139231ad26 Mon Sep 17 00:00:00 2001
+From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+Date: Fri, 9 Sep 2022 09:32:22 +0200
+Subject: [PATCH] meson.build: install fbgs shell script
+
+Upstream-Status: Submitted [https://github.com/kraxel/fbida/pull/4]
+Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+---
+ meson.build | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index cbed982..2129896 100644
+--- a/meson.build
++++ b/meson.build
+@@ -126,6 +126,9 @@ executable('fbpdf',
+ sources : fbpdf_srcs,
+ dependencies : fbpdf_deps,
+ install : true)
++install_data('fbgs',
++ install_dir : get_option('bindir'),
++ install_mode : 'rwxr--r--')
+
+ # build fbcon
+ fbcon_srcs = [ 'fbcon.c', 'drmtools.c', 'fbtools.c', 'gfx.c', 'vt.c', 'kbd.c' ]
+--
+2.37.3
+
diff --git a/meta-oe/recipes-graphics/fbida/files/0001-meson.build-make-fbpdf-build-optional.patch b/meta-oe/recipes-graphics/fbida/files/0001-meson.build-make-fbpdf-build-optional.patch
new file mode 100644
index 0000000000..b872e213aa
--- /dev/null
+++ b/meta-oe/recipes-graphics/fbida/files/0001-meson.build-make-fbpdf-build-optional.patch
@@ -0,0 +1,66 @@
+From c00a155e90a9b22bd6ab5fa5407bb9923ee16ca0 Mon Sep 17 00:00:00 2001
+From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+Date: Fri, 16 Sep 2022 18:45:58 +0200
+Subject: [PATCH] meson.build: make fbpdf build optional
+
+Upstream-Status: Submitted [https://github.com/kraxel/fbida/pull/4]
+Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+---
+ meson.build | 22 ++++++++++++----------
+ meson_options.txt | 1 +
+ 2 files changed, 13 insertions(+), 10 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 6b3daf3..289d1ec 100644
+--- a/meson.build
++++ b/meson.build
+@@ -15,11 +15,11 @@ x11resdir = x11resrun.stdout().strip()
+
+ # pkg-config deps
+ pixman_dep = dependency('pixman-1')
+-poppler_dep = dependency('poppler-glib')
++poppler_dep = dependency('poppler-glib', required: get_option('pdf'))
+ cairo_dep = dependency('cairo')
+ drm_dep = dependency('libdrm')
+-gbm_dep = dependency('gbm')
+-epoxy_dep = dependency('epoxy')
++gbm_dep = dependency('gbm', required: get_option('pdf'))
++epoxy_dep = dependency('epoxy', required: get_option('pdf'))
+ exif_dep = dependency('libexif')
+ png_dep = dependency('libpng', required: get_option('png'))
+ tiff_dep = dependency('libtiff-4', required: get_option('tiff'))
+@@ -132,13 +132,15 @@ fbpdf_deps = [ drm_dep, gbm_dep, epoxy_dep,
+ pixman_dep, poppler_dep, cairo_dep,
+ udev_dep, input_dep ]
+
+-executable('fbpdf',
+- sources : fbpdf_srcs,
+- dependencies : fbpdf_deps,
+- install : true)
+-install_data('fbgs',
+- install_dir : get_option('bindir'),
+- install_mode : 'rwxr--r--')
++if get_option('pdf').enabled()
++ executable('fbpdf',
++ sources : fbpdf_srcs,
++ dependencies : fbpdf_deps,
++ install : true)
++ install_data('fbgs',
++ install_dir : get_option('bindir'),
++ install_mode : 'rwxr--r--')
++endif
+
+ # build fbcon
+ fbcon_srcs = [ 'fbcon.c', 'drmtools.c', 'fbtools.c', 'gfx.c', 'vt.c', 'kbd.c' ]
+diff --git a/meson_options.txt b/meson_options.txt
+index ce37188..74699ab 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -3,3 +3,4 @@ option('png', type: 'feature', value : 'enabled')
+ option('tiff', type: 'feature', value : 'enabled')
+ option('webp', type: 'feature', value : 'disabled')
+ option('motif', type: 'feature', value : 'disabled')
++option('pdf', type: 'feature', value : 'enabled')
+--
+2.37.3
+
diff --git a/meta-oe/recipes-graphics/fbida/files/0002-meson.build-add-features-options-for-png-gif-tiff-we.patch b/meta-oe/recipes-graphics/fbida/files/0002-meson.build-add-features-options-for-png-gif-tiff-we.patch
new file mode 100644
index 0000000000..4f54fbfba7
--- /dev/null
+++ b/meta-oe/recipes-graphics/fbida/files/0002-meson.build-add-features-options-for-png-gif-tiff-we.patch
@@ -0,0 +1,124 @@
+From cdcde5c1fd106a69118dff98118600911392762f Mon Sep 17 00:00:00 2001
+From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+Date: Fri, 16 Sep 2022 16:25:38 +0200
+Subject: [PATCH] meson.build: add features options for png, gif, tiff, webp, and motif
+
+Upstream-Status: Submitted [https://github.com/kraxel/fbida/pull/4]
+Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+---
+ meson.build | 41 +++++++++++++++++++++++++++--------------
+ meson_options.txt | 5 +++++
+ selections.c | 4 ++++
+ 3 files changed, 36 insertions(+), 14 deletions(-)
+ create mode 100644 meson_options.txt
+
+diff --git a/meson.build b/meson.build
+index cd9cc49..b5e3ffc 100644
+--- a/meson.build
++++ b/meson.build
+@@ -23,9 +23,9 @@ drm_dep = dependency('libdrm')
+ gbm_dep = dependency('gbm')
+ epoxy_dep = dependency('epoxy')
+ exif_dep = dependency('libexif')
+-png_dep = dependency('libpng')
+-tiff_dep = dependency('libtiff-4')
+-webp_dep = dependency('libwebp', required : false)
++png_dep = dependency('libpng', required: get_option('png'))
++tiff_dep = dependency('libtiff-4', required: get_option('tiff'))
++webp_dep = dependency('libwebp', required : get_option('webp'))
+ udev_dep = dependency('libudev')
+ input_dep = dependency('libinput')
+ xkb_dep = dependency('xkbcommon')
+@@ -36,20 +36,20 @@ jpeg_dep = cc.find_library('jpeg')
+ util_dep = cc.find_library('util')
+ math_dep = cc.find_library('m', required : false)
+ pcd_dep = cc.find_library('pcd', required : false)
+-gif_dep = cc.find_library('gif', required : false)
++gif_dep = cc.find_library('gif', required: get_option('gif'))
+
+ # motif + x11 libs
+-motif_dep = cc.find_library('Xm', required : false)
+-xpm_dep = cc.find_library('Xpm', required : false)
+-xt_dep = cc.find_library('Xt', required : false)
+-xext_dep = cc.find_library('Xext', required : false)
+-x11_dep = cc.find_library('X11', required : false)
++motif_dep = cc.find_library('Xm', required : get_option('motif'))
++xpm_dep = cc.find_library('Xpm', required : get_option('motif'))
++xt_dep = cc.find_library('Xt', required : get_option('motif'))
++xext_dep = cc.find_library('Xext', required : get_option('motif'))
++x11_dep = cc.find_library('X11', required : get_option('motif'))
+
+ # image formats
+ read_srcs = [ 'readers.c', 'rd/read-ppm.c', 'rd/read-bmp.c',
+- 'rd/read-jpeg.c', 'rd/read-png.c', 'rd/read-tiff.c' ]
++ 'rd/read-jpeg.c' ]
+ write_srcs = [ 'writers.c', 'wr/write-ppm.c', 'wr/write-ps.c',
+- 'wr/write-jpeg.c', 'wr/write-png.c', 'wr/write-tiff.c' ]
++ 'wr/write-jpeg.c' ]
+ image_deps = [ jpeg_dep, png_dep, tiff_dep,
+ pcd_dep, gif_dep, webp_dep ]
+
+@@ -57,11 +57,21 @@ if pcd_dep.found()
+ read_srcs += 'rd/read-pcd.c'
+ config.set('HAVE_LIBPCD', true)
+ endif
+-if gif_dep.found()
++if get_option('png').enabled()
++ read_srcs += 'rd/read-png.c'
++ write_srcs += 'wr/write-png.c'
++ config.set('HAVE_LIBPNG', true)
++endif
++if get_option('tiff').enabled()
++ read_srcs += 'rd/read-tiff.c'
++ write_srcs += 'wr/write-tiff.c'
++ config.set('HAVE_LIBTIFF', true)
++endif
++if get_option('gif').enabled()
+ read_srcs += 'rd/read-gif.c'
+ config.set('HAVE_LIBGIF', true)
+ endif
+-if webp_dep.found()
++if get_option('webp').enabled()
+ read_srcs += 'rd/read-webp.c'
+ config.set('HAVE_LIBWEBP', true)
+ endif
+@@ -168,7 +181,7 @@ ida_srcs = [ 'ida.c', 'man.c', 'hex.c', 'x11.c', 'viewer.c',
+ ida_deps = [ pixman_dep, exif_dep, image_deps, math_dep,
+ motif_dep, xpm_dep, xt_dep, xext_dep, x11_dep ]
+
+-if motif_dep.found()
++if get_option('motif').enabled()
+ executable('ida',
+ sources : ida_srcs,
+ dependencies : ida_deps,
+diff --git a/meson_options.txt b/meson_options.txt
+new file mode 100644
+index 0000000..ce37188
+--- /dev/null
++++ b/meson_options.txt
+@@ -0,0 +1,5 @@
++option('gif', type: 'feature', value : 'enabled')
++option('png', type: 'feature', value : 'enabled')
++option('tiff', type: 'feature', value : 'enabled')
++option('webp', type: 'feature', value : 'disabled')
++option('motif', type: 'feature', value : 'disabled')
+diff --git a/selections.c b/selections.c
+index 7b16264..ccdc686 100644
+--- a/selections.c
++++ b/selections.c
+@@ -609,8 +609,12 @@ void ipc_init()
+ #ifdef HAVE_LIBGIF
+ targets[ntargets++] = MIME_IMAGE_GIF;
+ #endif
++#ifdef HAVE_LIBPNG
+ targets[ntargets++] = MIME_IMAGE_PNG;
++#endif
++#ifdef HAVE_LIBTIFF
+ targets[ntargets++] = MIME_IMAGE_TIFF;
++#endif
+ targets[ntargets++] = XA_PIXMAP;
+ targets[ntargets++] = XA_STRING;
+
+--
+2.37.3
+
diff --git a/meta-oe/recipes-graphics/fbida/files/0003-meson.build-do-not-require-xkbcommon.patch b/meta-oe/recipes-graphics/fbida/files/0003-meson.build-do-not-require-xkbcommon.patch
new file mode 100644
index 0000000000..e769014131
--- /dev/null
+++ b/meta-oe/recipes-graphics/fbida/files/0003-meson.build-do-not-require-xkbcommon.patch
@@ -0,0 +1,27 @@
+From ec82a194f3454ac203a134c9a99bac6d63095d25 Mon Sep 17 00:00:00 2001
+From: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+Date: Fri, 16 Sep 2022 18:29:03 +0200
+Subject: [PATCH] meson.build: do not require xkbcommon
+
+Upstream-Status: Pending
+Signed-off-by: "Meyer, Wolfgang" <Wolfgang.Meyer@gossenmetrawatt.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 341939c..b5dab14 100644
+--- a/meson.build
++++ b/meson.build
+@@ -26,7 +26,7 @@ tiff_dep = dependency('libtiff-4', required: get_option('tiff'))
+ webp_dep = dependency('libwebp', required : get_option('webp'))
+ udev_dep = dependency('libudev')
+ input_dep = dependency('libinput')
+-xkb_dep = dependency('xkbcommon')
++xkb_dep = dependency('xkbcommon', required : false)
+ tsm_dep = dependency('libtsm', required : false)
+
+ # other library deps
+--
+2.37.3
+
diff --git a/meta-oe/recipes-graphics/fbida/files/cairo-weak-detect.patch b/meta-oe/recipes-graphics/fbida/files/cairo-weak-detect.patch
deleted file mode 100644
index c7c579cc41..0000000000
--- a/meta-oe/recipes-graphics/fbida/files/cairo-weak-detect.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-OE configures cairo to disable EGL support, however fbida expects cairo with egl support
-this patch therefore makes it possible to set HAVE_CAIRO_GL via recipe
-
-Upstream-Status: Inappropriate [OE-Specific]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/GNUmakefile
-+++ b/GNUmakefile
-@@ -67,7 +67,7 @@ define make-config
- LIB := $(LIB)
- RESDIR := $(call ac_resdir)
- HAVE_LINUX_FB_H := $(call ac_header,linux/fb.h)
--HAVE_CAIRO_GL := $(call ac_pkg_config,cairo-gl)
-+HAVE_CAIRO_GL ?= $(call ac_pkg_config,cairo-gl)
- HAVE_LIBPCD := $(call ac_lib,pcd_open,pcd)
- HAVE_LIBGIF := $(call ac_lib,DGifOpenFileName,gif)
- HAVE_LIBWEBP := $(call ac_pkg_config,libwebp)
diff --git a/meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch b/meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch
index cdeac996a1..ef70a070dd 100644
--- a/meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch
+++ b/meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/scripts/jpeg-version.sh
+++ b/scripts/jpeg-version.sh
@@ -1,2 +1,2 @@
diff --git a/meta-oe/recipes-graphics/fbida/files/support-jpeg-turbo.patch b/meta-oe/recipes-graphics/fbida/files/support-jpeg-turbo.patch
index 05cd74da92..719c096e2b 100644
--- a/meta-oe/recipes-graphics/fbida/files/support-jpeg-turbo.patch
+++ b/meta-oe/recipes-graphics/fbida/files/support-jpeg-turbo.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Add patch by Ondrej Sury to migrate to libjpeg-turbo (Closes: #763263)
Index: fbida-2.10/jpeg/62/jpegcomp.h
diff --git a/meta-oe/recipes-graphics/fbida/files/use-jpeg-turbo.patch b/meta-oe/recipes-graphics/fbida/files/use-jpeg-turbo.patch
deleted file mode 100644
index 99639554c2..0000000000
--- a/meta-oe/recipes-graphics/fbida/files/use-jpeg-turbo.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: fbida-2.10/GNUmakefile
-===================================================================
---- fbida-2.10.orig/GNUmakefile
-+++ fbida-2.10/GNUmakefile
-@@ -51,7 +51,7 @@ HAVE_LIBSANE := $(call ac_lib,sane_init,
- HAVE_LIBCURL := $(call ac_lib,curl_easy_init,curl)
- HAVE_LIBLIRC := $(call ac_lib,lirc_init,lirc_client)
- HAVE_MOTIF := $(call ac_lib,XmStringGenerate,Xm,-L/usr/X11R6/$(LIB) -lXpm -lXt -lXext -lX11)
--JPEG_VER := $(call ac_jpeg_ver)
-+JPEG_VER := 62
- endef
-
- # transposing
diff --git a/meta-oe/recipes-graphics/feh/feh_3.10.2.bb b/meta-oe/recipes-graphics/feh/feh_3.10.2.bb
new file mode 100644
index 0000000000..2c38ce614b
--- /dev/null
+++ b/meta-oe/recipes-graphics/feh/feh_3.10.2.bb
@@ -0,0 +1,30 @@
+SUMMARY = "X11 image viewer aimed mostly at console users"
+HOMEPAGE = "https://feh.finalrewind.org/"
+SECTION = "x11/utils"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=150e4c518ff8aaecfe35694e47661d9a"
+DEPENDS = "\
+ imlib2 \
+ virtual/libx11 libxt\
+"
+
+SRC_URI = "https://feh.finalrewind.org/feh-${PV}.tar.bz2"
+SRC_URI[sha256sum] = "5f94a77de25c5398876f0cf431612d782b842f4db154d2139b778c8f196e8969"
+
+inherit mime-xdg features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OEMAKE = "curl=0 xinerama=0 PREFIX=/usr"
+
+do_compile () {
+ oe_runmake
+}
+
+do_install () {
+ oe_runmake install app=1 'DESTDIR=${D}' 'ICON_PREFIX=${D}${datadir}/icons'
+}
+
+RDEPENDS:${PN} += "imlib2-loaders"
+
+FILES:${PN} += "${datadir}/icons"
diff --git a/meta-oe/recipes-graphics/feh/feh_3.9.1.bb b/meta-oe/recipes-graphics/feh/feh_3.9.1.bb
deleted file mode 100644
index d78fe7e17d..0000000000
--- a/meta-oe/recipes-graphics/feh/feh_3.9.1.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "X11 image viewer aimed mostly at console users"
-AUTHOR = "Tom Gilbert & Daniel Friesel"
-HOMEPAGE = "https://feh.finalrewind.org/"
-SECTION = "x11/utils"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f91bd06901085c94bdc50649d98c5059"
-DEPENDS = "\
- imlib2 \
- virtual/libx11 libxt\
-"
-
-SRC_URI = "https://feh.finalrewind.org/feh-${PV}.tar.bz2"
-SRC_URI[sha256sum] = "455c92711b588af149b945edc5c145f3e9aa137ed9689dabed49d5e4acac75fa"
-
-inherit mime-xdg features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OEMAKE = "curl=0 xinerama=0 PREFIX=/usr"
-
-do_compile () {
- oe_runmake
-}
-
-do_install () {
- oe_runmake install app=1 'DESTDIR=${D}' 'ICON_PREFIX=${D}${datadir}/icons'
-}
-
-RDEPENDS:${PN} += "imlib2-loaders"
-
-FILES:${PN} += "${datadir}/icons"
diff --git a/meta-oe/recipes-graphics/fontforge/fontforge/0001-Fix-Translations-containing-invalid-directives-hs.patch b/meta-oe/recipes-graphics/fontforge/fontforge/0001-Fix-Translations-containing-invalid-directives-hs.patch
new file mode 100644
index 0000000000..6d133254ed
--- /dev/null
+++ b/meta-oe/recipes-graphics/fontforge/fontforge/0001-Fix-Translations-containing-invalid-directives-hs.patch
@@ -0,0 +1,385 @@
+From e6ccc8a8cf1391010a8220836a732da9fab19c69 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 7 Sep 2023 12:35:12 -0700
+Subject: [PATCH] Fix Translations containing invalid directives %hs
+
+Found with gettext 0.22
+Older versions of msgfmt were more sloppy, thus allowing such mistakes to cause bugs at runtime.
+
+https://bugs.gentoo.org/908868
+https://savannah.gnu.org/bugs/index.php?64333
+https://github.com/fontforge/fontforge/issues/5251
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ fontforgeexe/searchview.c | 2 +-
+ po/ca.po | 4 ++--
+ po/de.po | 4 ++--
+ po/en_GB.po | 4 ++--
+ po/fr.po | 40 +++++++++++++++++++--------------------
+ po/hr.po | 4 ++--
+ po/it.po | 8 ++++----
+ po/ja.po | 4 ++--
+ po/ko.po | 4 ++--
+ po/pl.po | 4 ++--
+ po/uk.po | 4 ++--
+ po/vi.po | 4 ++--
+ 12 files changed, 43 insertions(+), 43 deletions(-)
+
+diff --git a/fontforgeexe/searchview.c b/fontforgeexe/searchview.c
+index 1cb39a221..7e1c109cb 100644
+--- a/fontforgeexe/searchview.c
++++ b/fontforgeexe/searchview.c
+@@ -516,7 +516,7 @@ return( true );
+ if ( ask_if_difficult==2 && !searcher->isvisible )
+ return( false );
+ if ( gwwv_ask(_("Bad Reference"),(const char **) buttons,1,1,
+- _("The %1$s in the search dialog contains a reference to %2$.20hs which does not exist in the new font.\nShould I remove the reference?"),
++ _("The %1$s in the search dialog contains a reference to %2$.20s which does not exist in the new font.\nShould I remove the reference?"),
+ i==0?_("Search Pattern"):_("Replace Pattern"),
+ r->sc->name)==1 )
+ return( false );
+diff --git a/po/ca.po b/po/ca.po
+index e2349b6ef..6c920b7c0 100644
+--- a/po/ca.po
++++ b/po/ca.po
+@@ -12347,11 +12347,11 @@ msgstr "Tai"
+
+ #, c-format
+ msgid ""
+-"The %1$s in the search dialog contains a reference to %2$.20hs which does "
++"The %1$s in the search dialog contains a reference to %2$.20s which does "
+ "not exist in the new font.\n"
+ "Should I remove the reference?"
+ msgstr ""
+-"Al diàleg de cerca, %1$s conté una referència a %2$.20hs\n"
++"Al diàleg de cerca, %1$s conté una referència a %2$.20s\n"
+ "que no existeix en el nou tipus.\n"
+ "Voleu eliminar la referència?"
+
+diff --git a/po/de.po b/po/de.po
+index 41430ffae..8a31aeaa2 100644
+--- a/po/de.po
++++ b/po/de.po
+@@ -15765,11 +15765,11 @@ msgstr ""
+
+ #, c-format
+ msgid ""
+-"The %1$s in the search dialog contains a reference to %2$.20hs which does "
++"The %1$s in the search dialog contains a reference to %2$.20s which does "
+ "not exist in the new font.\n"
+ "Should I remove the reference?"
+ msgstr ""
+-"%1$s im Suchdialog enthält eine Referenz auf %2$.20hs, die in der neuen "
++"%1$s im Suchdialog enthält eine Referenz auf %2$.20s, die in der neuen "
+ "Schrift nicht existiert.\n"
+ "Soll der Referenz entfernt werden?"
+
+diff --git a/po/en_GB.po b/po/en_GB.po
+index 9bd2d62bb..fce64c97d 100644
+--- a/po/en_GB.po
++++ b/po/en_GB.po
+@@ -728,11 +728,11 @@ msgstr "Template Colour"
+
+ #, c-format
+ msgid ""
+-"The %1$s in the search dialog contains a reference to %2$.20hs which does "
++"The %1$s in the search dialog contains a reference to %2$.20s which does "
+ "not exist in the new font.\n"
+ "Should I remove the reference?"
+ msgstr ""
+-"The %1$s in the search dialogue contains a reference to %2$.20hs which does "
++"The %1$s in the search dialogue contains a reference to %2$.20s which does "
+ "not exist in the new font.\n"
+ "Should I remove the reference?"
+
+diff --git a/po/fr.po b/po/fr.po
+index 26e446b38..d130f89bc 100644
+--- a/po/fr.po
++++ b/po/fr.po
+@@ -291,7 +291,7 @@ msgstr "chaîne %1$.30s pour %2$.30s"
+ #. GT: $4 is the changed flag ('*' for the changed items)
+ #, c-format
+ msgid "%1$.80s at %2$d from %3$.90s%4$s"
+-msgstr "%1$.80s à %2$d de %3$.90hs%4$s"
++msgstr "%1$.80s à %2$d de %3$.90s%4$s"
+
+ #. GT: This is the title for a window showing a bitmap character
+ #. GT: It will look something like:
+@@ -302,7 +302,7 @@ msgstr "%1$.80s à %2$d de %3$.90hs%4$s"
+ #. GT: $4 is the font name
+ #, c-format
+ msgid "%1$.80s at %2$d size %3$d from %4$.80s"
+-msgstr "%1$.80s (%2$d) taille %3$d de %4$.80hs"
++msgstr "%1$.80s (%2$d) taille %3$d de %4$.80s"
+
+ #, c-format
+ msgid "%1$s from lookup subtable %2$.50s"
+@@ -7433,7 +7433,7 @@ msgid ""
+ "Reverting the file will lose those changes.\n"
+ "Is that what you want?"
+ msgstr ""
+-"La fonte %1$.40s dans le fichier %2$.40hs a été modifiée.\n"
++"La fonte %1$.40s dans le fichier %2$.40s a été modifiée.\n"
+ "Revenir vous fera perdre toutes les modifications.\n"
+ "Voulez vous vraiment revenir ?"
+
+@@ -19077,11 +19077,11 @@ msgstr ""
+
+ #, c-format
+ msgid ""
+-"The %1$s in the search dialog contains a reference to %2$.20hs which does "
++"The %1$s in the search dialog contains a reference to %2$.20s which does "
+ "not exist in the new font.\n"
+ "Should I remove the reference?"
+ msgstr ""
+-"Dans %1$s du dialogue de recherche il y a une référence vers %2$.20hs qui "
++"Dans %1$s du dialogue de recherche il y a une référence vers %2$.20s qui "
+ "n'existe pas dans la nouvelle fonte.\n"
+ "Faut-il supprimer la référence ?"
+
+@@ -19925,7 +19925,7 @@ msgid ""
+ "The fonts %1$.30s and %2$.30s have a different number of glyphs or different "
+ "encodings"
+ msgstr ""
+-"Les fontes %1$.30s et %2$.30hs n'ont pas le même nombre de glyphes ou des "
++"Les fontes %1$.30s et %2$.30s n'ont pas le même nombre de glyphes ou des "
+ "codages différents"
+
+ #, c-format
+@@ -19933,7 +19933,7 @@ msgid ""
+ "The fonts %1$.30s and %2$.30s use different types of splines (one quadratic, "
+ "one cubic)"
+ msgstr ""
+-"Les fontes %1$.30s et %2$.30hs utilisent des courbes de Bézier d'ordres "
++"Les fontes %1$.30s et %2$.30s utilisent des courbes de Bézier d'ordres "
+ "différents (quadratique et cubique)"
+
+ msgid "The generated font won't work with ATM"
+@@ -19968,8 +19968,8 @@ msgid ""
+ "The glyph %1$.30s in font %2$.30s has a different hint mask on its contours "
+ "than in %3$.30s"
+ msgstr ""
+-"Le glyphe %1$.30s dans la police %2$.30hs a un masque de hints différent que "
+-"dans %3$.30hs"
++"Le glyphe %1$.30s dans la police %2$.30s a un masque de hints différent que "
++"dans %3$.30s"
+
+ #, c-format
+ msgid ""
+@@ -19984,8 +19984,8 @@ msgid ""
+ "The glyph %1$.30s in font %2$.30s has a different number of references than "
+ "in %3$.30s"
+ msgstr ""
+-"Le glyphe %1$.30s de la fonte %2$.30hs a un nombre de références différent "
+-"dans %3$.30hs"
++"Le glyphe %1$.30s de la fonte %2$.30s a un nombre de références différent "
++"dans %3$.30s"
+
+ #, c-format
+ msgid ""
+@@ -20457,7 +20457,7 @@ msgstr ""
+ #, c-format
+ msgid "The outlines of glyph %2$.30s were not found in the font %1$.60s"
+ msgstr ""
+-"Le contours du glyphe %2$.30s n'ont pas été trouvés dans la police %1$.60hs"
++"Le contours du glyphe %2$.30s n'ont pas été trouvés dans la police %1$.60s"
+
+ msgid "The paths that make up this glyph intersect one another"
+ msgstr "Les chemins qui composent ce glyphe se coupent les uns les autres"
+@@ -21042,7 +21042,7 @@ msgstr "Il y a déjà une sous-table avec ce nom, changez de nom SVP"
+
+ #, c-format
+ msgid "There is already an anchor point named %1$.40s in %2$.40s."
+-msgstr "Il y a déjà une ancre appelée %1$.40s dans %2$.40hs."
++msgstr "Il y a déjà une ancre appelée %1$.40s dans %2$.40s."
+
+ msgid "There is another glyph in the font with this name"
+ msgstr "Il y a un autre glyphe dans la fonte avec ce nom"
+@@ -21441,8 +21441,8 @@ msgid ""
+ "been able to find is %1$.20s-%2$.20s-%4$d.\n"
+ "Shall I use that or let you search?"
+ msgstr ""
+-"Cette fonte est basée sur le jeu de caractères %1$.20s-%2$.20hs-%3$d, mais "
+-"ce que j'ai trouvé de mieux c'est %1$.20hs-%2$.20hs-%4$d.\n"
++"Cette fonte est basée sur le jeu de caractères %1$.20s-%2$.20s-%3$d, mais "
++"ce que j'ai trouvé de mieux c'est %1$.20s-%2$.20s-%4$d.\n"
+ "Devrais-je utiliser cette valeur ou préférez vous chercher ?"
+
+ msgid ""
+@@ -21770,7 +21770,7 @@ msgid ""
+ "with a 0 offset for this combination. Would you like to alter this kerning "
+ "class entry (or create a kerning pair for just these two glyphs)?"
+ msgstr ""
+-"Cette paire de crénage (%.20s et %.20hs) est dans une classe de crénage\n"
++"Cette paire de crénage (%.20s et %.20s) est dans une classe de crénage\n"
+ "avec un déplacement de 0 pour cette combinaison. Voulez-vous modifier cette "
+ "partie\n"
+ "de la classe de crénage (ou créer une nouvelle paire rien que pour ces 2 "
+@@ -24551,8 +24551,8 @@ msgid ""
+ "referred to.\n"
+ "It will not be copied."
+ msgstr ""
+-"Vous essayer de coller une référence vers %1$s dans %2$hs.\n"
+-"Mais %1$hs n'existe pas dans cette fonte, et FontForge ne trouve pas le "
++"Vous essayer de coller une référence vers %1$s dans %2$s.\n"
++"Mais %1$s n'existe pas dans cette fonte, et FontForge ne trouve pas le "
+ "glyphe auquel il se référait.\n"
+ "Le glyphe ne sera pas copié."
+
+@@ -24562,8 +24562,8 @@ msgid ""
+ "But %1$s does not exist in this font.\n"
+ "Would you like to copy the original splines (or delete the reference)?"
+ msgstr ""
+-"Vous essayer de coller une référence vers %1$s dans %2$hs.\n"
+-"Mais %1$hs n'existe pas dans cette fonte.\n"
++"Vous essayer de coller une référence vers %1$s dans %2$s.\n"
++"Mais %1$s n'existe pas dans cette fonte.\n"
+ "Voulez vous copier le contour d'origine (ou supprimer la référence)?"
+
+ msgid ""
+diff --git a/po/hr.po b/po/hr.po
+index d261d4ca7..ac41b9250 100644
+--- a/po/hr.po
++++ b/po/hr.po
+@@ -20156,11 +20156,11 @@ msgstr ""
+
+ #, c-format
+ msgid ""
+-"The %1$s in the search dialog contains a reference to %2$.20hs which does "
++"The %1$s in the search dialog contains a reference to %2$.20s which does "
+ "not exist in the new font.\n"
+ "Should I remove the reference?"
+ msgstr ""
+-"%1$s u dijaloškom okviru traženja sadrži referencu na %2$.20hs koja ne "
++"%1$s u dijaloškom okviru traženja sadrži referencu na %2$.20s koja ne "
+ "postoji u fontu.\n"
+ "Želiš li dozvoliti uklanjanje reference?"
+
+diff --git a/po/it.po b/po/it.po
+index e13711485..d0c3ea987 100644
+--- a/po/it.po
++++ b/po/it.po
+@@ -2303,7 +2303,7 @@ msgid ""
+ "Reverting the file will lose those changes.\n"
+ "Is that what you want?"
+ msgstr ""
+-"Il font %1$.40s nel file %2$.40hs è stato modificato.\n"
++"Il font %1$.40s nel file %2$.40s è stato modificato.\n"
+ "Ripristinando il file perderai tutte le modifiche.\n"
+ "È quello che vuoi fare?"
+
+@@ -5835,7 +5835,7 @@ msgid ""
+ "The glyph %1$.30s has a different number of contours in font %2$.30s than in "
+ "%3$.30s"
+ msgstr ""
+-"Il glifo %1$.30s ha un diverso numero di contorni nel font %2$.30hs rispetto "
++"Il glifo %1$.30s ha un diverso numero di contorni nel font %2$.30s rispetto "
+ "a %3$.30s"
+
+ #, c-format
+@@ -6235,8 +6235,8 @@ msgid ""
+ "been able to find is %1$.20s-%2$.20s-%4$d.\n"
+ "Shall I use that or let you search?"
+ msgstr ""
+-"Questo font è basato sulla codifica di caratteri %1$.20s-%2$.20hs-%3$d, ma "
+-"il migliore che io abbia trovato è %1$.20hs-%2$.20hs-%4$d.\n"
++"Questo font è basato sulla codifica di caratteri %1$.20s-%2$.20s-%3$d, ma "
++"il migliore che io abbia trovato è %1$.20s-%2$.20s-%4$d.\n"
+ "Devo usare questo valore o preferisci cercare tu stesso?"
+
+ msgid ""
+diff --git a/po/ja.po b/po/ja.po
+index ed9f5a645..206ae82d1 100644
+--- a/po/ja.po
++++ b/po/ja.po
+@@ -11458,11 +11458,11 @@ msgstr ""
+
+ #, c-format
+ msgid ""
+-"The %1$s in the search dialog contains a reference to %2$.20hs which does "
++"The %1$s in the search dialog contains a reference to %2$.20s which does "
+ "not exist in the new font.\n"
+ "Should I remove the reference?"
+ msgstr ""
+-"%1$s には, 新しいフォントには含まれないグリフ %2$.20hs への参照が含まれていま"
++"%1$s には, 新しいフォントには含まれないグリフ %2$.20s への参照が含まれていま"
+ "す.\n"
+ "参照を削除しますか?"
+
+diff --git a/po/ko.po b/po/ko.po
+index 971b4db03..4d5c8d40d 100644
+--- a/po/ko.po
++++ b/po/ko.po
+@@ -20920,11 +20920,11 @@ msgstr ""
+
+ #, c-format
+ msgid ""
+-"The %1$s in the search dialog contains a reference to %2$.20hs which does "
++"The %1$s in the search dialog contains a reference to %2$.20s which does "
+ "not exist in the new font.\n"
+ "Should I remove the reference?"
+ msgstr ""
+-"검색 대화 상자의 %1$s에는 새 글꼴에 없는 %2$.20hs에 대한 참조가 포함되어 있"
++"검색 대화 상자의 %1$s에는 새 글꼴에 없는 %2$.20s에 대한 참조가 포함되어 있"
+ "다.\n"
+ "참조를 제거해야 하는가?"
+
+diff --git a/po/pl.po b/po/pl.po
+index 2bbbf00be..c1fd5a454 100644
+--- a/po/pl.po
++++ b/po/pl.po
+@@ -19552,11 +19552,11 @@ msgstr ""
+
+ #, c-format
+ msgid ""
+-"The %1$s in the search dialog contains a reference to %2$.20hs which does "
++"The %1$s in the search dialog contains a reference to %2$.20s which does "
+ "not exist in the new font.\n"
+ "Should I remove the reference?"
+ msgstr ""
+-"%1$s w okienku wyszukiwania zawiera odwołanie do %2$.20hs, który nie "
++"%1$s w okienku wyszukiwania zawiera odwołanie do %2$.20s, który nie "
+ "istnieje w nowym foncie.\n"
+ "Czy usunąć to odwołanie?"
+
+diff --git a/po/uk.po b/po/uk.po
+index e3768acc3..3302a1005 100644
+--- a/po/uk.po
++++ b/po/uk.po
+@@ -19860,11 +19860,11 @@ msgstr ""
+
+ #, c-format
+ msgid ""
+-"The %1$s in the search dialog contains a reference to %2$.20hs which does "
++"The %1$s in the search dialog contains a reference to %2$.20s which does "
+ "not exist in the new font.\n"
+ "Should I remove the reference?"
+ msgstr ""
+-"%1$s у діалоговому вікні пошуку містить посилання на %2$.20hs, якого не "
++"%1$s у діалоговому вікні пошуку містить посилання на %2$.20s, якого не "
+ "існує у новому шрифті.\n"
+ "Вилучити це посилання?"
+
+diff --git a/po/vi.po b/po/vi.po
+index 6aee8bb3f..f5eb739e6 100644
+--- a/po/vi.po
++++ b/po/vi.po
+@@ -17109,11 +17109,11 @@ msgstr ""
+
+ #, c-format
+ msgid ""
+-"The %1$s in the search dialog contains a reference to %2$.20hs which does "
++"The %1$s in the search dialog contains a reference to %2$.20s which does "
+ "not exist in the new font.\n"
+ "Should I remove the reference?"
+ msgstr ""
+-"Trong hộp thoại tìm kiếm, %1$s chứa một tham chiếu đến %2$.20hs mà không tồn "
++"Trong hộp thoại tìm kiếm, %1$s chứa một tham chiếu đến %2$.20s mà không tồn "
+ "tại trong phông mới.\n"
+ "Bạn có muốn gỡ bỏ tham chiếu này không?"
+
+--
+2.42.0
+
diff --git a/meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch b/meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch
index dd799e7485..573866eb15 100644
--- a/meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch
+++ b/meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch
@@ -1,4 +1,4 @@
-From 6d3c48d1b01943a467928235c3affbab463c25ab Mon Sep 17 00:00:00 2001
+From 644c3380f75b20a11755e7052aa632887f3eee2b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 7 Jul 2022 12:32:47 -0700
Subject: [PATCH] cmake: Use alternate way to detect libm
@@ -8,17 +8,20 @@ when libm is folded into libc starting glibc 2.35+
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
CMakeLists.txt | 7 ++++++-
contrib/fonttools/CMakeLists.txt | 2 +-
fontforge/CMakeLists.txt | 2 +-
- fontforgeexe/CMakeLists.txt | 4 ++--
- 4 files changed, 10 insertions(+), 5 deletions(-)
+ fontforgeexe/CMakeLists.txt | 2 +-
+ 4 files changed, 9 insertions(+), 4 deletions(-)
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e234cb6e9..284ba2d20 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -111,9 +111,14 @@ find_package_with_target(Intl REQUIRED)
- find_package(GLIB 2.6 REQUIRED COMPONENTS gio gobject)
+@@ -115,9 +115,14 @@ else()
+ endif()
find_package(Iconv REQUIRED)
find_package(LibXml2 REQUIRED)
-find_package(MathLib REQUIRED)
@@ -33,9 +36,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
check_include_file(pthread.h HAVE_PTHREAD_H)
if(HAVE_PTHREAD_H)
find_package(Threads)
+diff --git a/contrib/fonttools/CMakeLists.txt b/contrib/fonttools/CMakeLists.txt
+index d6c698877..1608af152 100644
--- a/contrib/fonttools/CMakeLists.txt
+++ b/contrib/fonttools/CMakeLists.txt
-@@ -15,6 +15,6 @@ add_executable(woff woff.c)
+@@ -15,7 +15,7 @@ add_executable(woff woff.c)
target_link_libraries(acorn2sfd PRIVATE fontforge)
target_link_libraries(dewoff PRIVATE ZLIB::ZLIB)
@@ -43,6 +48,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
+target_link_libraries(pcl2ttf PRIVATE ${EXTRA_LIBS})
target_link_libraries(ttf2eps PRIVATE fontforge)
target_link_libraries(woff PRIVATE ZLIB::ZLIB)
+
+diff --git a/fontforge/CMakeLists.txt b/fontforge/CMakeLists.txt
+index 9a052f360..067ef40df 100644
--- a/fontforge/CMakeLists.txt
+++ b/fontforge/CMakeLists.txt
@@ -237,7 +237,7 @@ target_link_libraries(fontforge
@@ -54,9 +62,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Iconv::Iconv
ZLIB::ZLIB
)
+diff --git a/fontforgeexe/CMakeLists.txt b/fontforgeexe/CMakeLists.txt
+index e2982c39d..8829993ea 100644
--- a/fontforgeexe/CMakeLists.txt
+++ b/fontforgeexe/CMakeLists.txt
-@@ -110,7 +110,7 @@ if(ENABLE_PYTHON_SCRIPTING_RESULT)
+@@ -121,7 +121,7 @@ if(ENABLE_PYTHON_SCRIPTING_RESULT)
target_link_libraries(fontforgeexe PRIVATE Python3::Python)
endif()
diff --git a/meta-oe/recipes-graphics/fontforge/fontforge_20220308.bb b/meta-oe/recipes-graphics/fontforge/fontforge_20220308.bb
deleted file mode 100644
index c53f2db01b..0000000000
--- a/meta-oe/recipes-graphics/fontforge/fontforge_20220308.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "A font editor"
-HOMEPAGE = "http://fontforge.github.io/en-US/"
-LICENSE = "BSD-3-Clause & GPL-3.0-only"
-LIC_FILES_CHKSUM = " \
- file://COPYING.gplv3;md5=d32239bcb673463ab874e80d47fae504 \
- file://LICENSE;md5=d042f3d2a8fd7208b704a499168e3c89 \
-"
-
-DEPENDS = "python3 glib-2.0 pango giflib tiff libxml2 jpeg libtool uthash gettext-native libspiro"
-DEPENDS:append:class-target = " libxi"
-
-inherit cmake pkgconfig python3native features_check gettext gtk-icon-cache mime mime-xdg
-
-REQUIRED_DISTRO_FEATURES:append:class-target = " x11"
-
-# tag 20220308
-SRCREV = "582bd41a9bf04326300fc02a677fe3610d6d3ccd"
-SRC_URI = "git://github.com/${BPN}/${BPN}.git;branch=master;protocol=https \
- file://0001-include-sys-select-on-non-glibc-platforms.patch \
- file://0001-fontforgeexe-Use-env-to-find-fontforge.patch \
- file://0001-cmake-Use-alternate-way-to-detect-libm.patch \
-"
-S = "${WORKDIR}/git"
-
-EXTRA_OECMAKE = "-DENABLE_DOCS=OFF"
-
-CFLAGS += "-fno-strict-aliasing"
-LDFLAGS += "-lpython${PYTHON_BASEVERSION}${PYTHON_ABI}"
-BUILD_LDFLAGS += "-lpython${PYTHON_BASEVERSION}${PYTHON_ABI}"
-
-#do_configure:prepend() {
-# uthash sources are expected in uthash/src
-# mkdir -p ${S}/uthash/src
-# cp ${STAGING_INCDIR}/ut*.h ${S}/uthash/src
-#}
-
-PACKAGES =+ "${PN}-python"
-
-FILES:${PN} += " \
- ${datadir}/appdata \
- ${datadir}/metainfo \
- ${datadir}/mime \
-"
-
-FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR} ${datadir}/${BPN}/python"
-RDEPENDS:${PN}-python = "python3"
-
-# for e.g kde's oxygen-fonts
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/fontforge/fontforge_20230101.bb b/meta-oe/recipes-graphics/fontforge/fontforge_20230101.bb
new file mode 100644
index 0000000000..31dd495fd7
--- /dev/null
+++ b/meta-oe/recipes-graphics/fontforge/fontforge_20230101.bb
@@ -0,0 +1,52 @@
+SUMMARY = "A font editor"
+HOMEPAGE = "http://fontforge.github.io/en-US/"
+LICENSE = "BSD-3-Clause & GPL-3.0-only"
+LIC_FILES_CHKSUM = " \
+ file://COPYING.gplv3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE;md5=d042f3d2a8fd7208b704a499168e3c89 \
+"
+
+DEPENDS = "python3 glib-2.0 pango giflib tiff libxml2 jpeg libtool uthash gettext-native libspiro"
+DEPENDS:append:class-target = " libxi"
+
+inherit cmake pkgconfig python3native python3targetconfig features_check gettext gtk-icon-cache mime mime-xdg
+
+REQUIRED_DISTRO_FEATURES:append:class-target = " x11"
+
+# tag 20220308
+SRCREV = "a1dad3e81da03d5d5f3c4c1c1b9b5ca5ebcfcecf"
+SRC_URI = "git://github.com/${BPN}/${BPN}.git;branch=master;protocol=https \
+ file://0001-include-sys-select-on-non-glibc-platforms.patch \
+ file://0001-fontforgeexe-Use-env-to-find-fontforge.patch \
+ file://0001-cmake-Use-alternate-way-to-detect-libm.patch \
+ file://0001-Fix-Translations-containing-invalid-directives-hs.patch \
+"
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = "-DENABLE_DOCS=OFF"
+PACKAGECONFIG = "readline"
+PACKAGECONFIG[readline] = "-DENABLE_READLINE=ON,-DENABLE_READLINE=OFF,readline"
+
+CFLAGS += "-fno-strict-aliasing"
+LDFLAGS += "-lpython${PYTHON_BASEVERSION}${PYTHON_ABI}"
+BUILD_LDFLAGS += "-lpython${PYTHON_BASEVERSION}${PYTHON_ABI}"
+
+#do_configure:prepend() {
+# uthash sources are expected in uthash/src
+# mkdir -p ${S}/uthash/src
+# cp ${STAGING_INCDIR}/ut*.h ${S}/uthash/src
+#}
+
+PACKAGES =+ "${PN}-python"
+
+FILES:${PN} += " \
+ ${datadir}/appdata \
+ ${datadir}/metainfo \
+ ${datadir}/mime \
+"
+
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR} ${datadir}/${BPN}/python"
+RDEPENDS:${PN}-python = "python3"
+
+# for e.g kde's oxygen-fonts
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/fontforge/libspiro_20200505.bb b/meta-oe/recipes-graphics/fontforge/libspiro_20200505.bb
deleted file mode 100644
index c885a00c5b..0000000000
--- a/meta-oe/recipes-graphics/fontforge/libspiro_20200505.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (C) 2022 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "LibSpiro is an adaptation of Spiro formula and functions into a sharable library"
-HOMEPAGE = "https://github.com/fontforge/libspiro"
-LICENSE = "GPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "https://github.com/fontforge/libspiro/releases/download/20200505/libspiro-dist-20200505.tar.gz"
-SRC_URI[sha256sum] = "06c69a1e8dcbcabcf009fd96fd90b1a244d0257246e376c2c4d57c4ea4af0e49"
-
-inherit autotools
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/fontforge/libspiro_20221101.bb b/meta-oe/recipes-graphics/fontforge/libspiro_20221101.bb
new file mode 100644
index 0000000000..0adac8464e
--- /dev/null
+++ b/meta-oe/recipes-graphics/fontforge/libspiro_20221101.bb
@@ -0,0 +1,14 @@
+# Copyright (C) 2022 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "LibSpiro is an adaptation of Spiro formula and functions into a sharable library"
+HOMEPAGE = "https://github.com/fontforge/libspiro"
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "https://github.com/fontforge/libspiro/releases/download/${PV}/libspiro-dist-${PV}.tar.gz"
+SRC_URI[sha256sum] = "5984fb5af3e4e1f927f3a74850b705a711fb86284802a5e6170b09786440e8be"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/freeglut/freeglut_3.2.1.bb b/meta-oe/recipes-graphics/freeglut/freeglut_3.2.1.bb
deleted file mode 100644
index 6ef9f74c70..0000000000
--- a/meta-oe/recipes-graphics/freeglut/freeglut_3.2.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "FreeGLUT is a free-software/open-source alternative to the OpenGL \
- Utility Toolkit (GLUT) library"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=89c0b58a3e01ce3d8254c9f59e78adfb"
-
-SRC_URI = "https://sourceforge.net/projects/${BPN}/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "cd5c670c1086358598a6d4a9d166949d"
-SRC_URI[sha256sum] = "d4000e02102acaf259998c870e25214739d1f16f67f99cb35e4f46841399da68"
-
-inherit cmake features_check
-
-# depends on virtual/libx11, virtual/libgl
-REQUIRED_DISTRO_FEATURES = "x11 opengl"
-
-# Do not use -fno-common, check back when upgrading to new version it might not be needed
-CFLAGS += "-fcommon"
-
-PROVIDES += "mesa-glut"
-
-DEPENDS = "virtual/libx11 libxmu libxi virtual/libgl libglu libxrandr"
diff --git a/meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb b/meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb
new file mode 100644
index 0000000000..2cd00b0349
--- /dev/null
+++ b/meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "FreeGLUT is a free-software/open-source alternative to the OpenGL \
+ Utility Toolkit (GLUT) library"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=89c0b58a3e01ce3d8254c9f59e78adfb"
+
+SRC_URI = "https://sourceforge.net/projects/${BPN}/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz"
+SRC_URI[sha256sum] = "3c0bcb915d9b180a97edaebd011b7a1de54583a838644dcd42bb0ea0c6f3eaec"
+
+inherit cmake features_check pkgconfig
+
+# depends on virtual/libgl and libxi
+REQUIRED_DISTRO_FEATURES = "opengl x11"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
+PACKAGECONFIG[gles] = "-DFREEGLUT_GLES=ON,-DFREEGLUT_GLES=OFF,"
+PACKAGECONFIG[wayland] = "-DFREEGLUT_WAYLAND=ON,-DFREEGLUT_WAYLAND=OFF,libxkbcommon"
+PACKAGECONFIG[demos] = "-DFREEGLUT_BUILD_DEMOS=ON,-DFREEGLUT_BUILD_DEMOS=OFF,"
+PACKAGECONFIG[x11] = ",,virtual/libx11 libice libxmu libglu libxrandr libxext"
+# Add -Wno-implicit-function-declaration since it might be otherwise treated at
+# error by clang16+ and this is not really a problem
+CFLAGS += "-Wno-implicit-function-declaration"
+
+PROVIDES += "mesa-glut"
+
+DEPENDS = "virtual/libgl libxi"
+
+do_install:append() {
+ # Remove buildpaths
+ sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/FreeGLUT/FreeGLUTTargets.cmake
+}
diff --git a/meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch b/meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch
index cf03cd0f29..e5ed0bdb86 100644
--- a/meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch
+++ b/meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch
@@ -6,7 +6,7 @@ MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Upstream-Status: inappropriate [OE specific]
+Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
diff --git a/meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch b/meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch
index 50003e3318..4886248233 100644
--- a/meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch
+++ b/meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch
@@ -10,7 +10,7 @@ COMPAT_OLD_KEYSYMDEF is a check for a legacy system, which our system
most definitely is not. It is accomplished by trying to execute
a program, which does not work when cross compiling.
-Upstream-Status: inappropriate [OE specific]
+Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Jarmo Jaakkola <jarmo.jaakkola@vincit.fi>
Signed-off-by: Riku Hämäläinen <riku.hamalainen@ge.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
diff --git a/meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb b/meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb
deleted file mode 100644
index 123af4d3aa..0000000000
--- a/meta-oe/recipes-graphics/fvwm/fvwm_2.6.9.bb
+++ /dev/null
@@ -1,123 +0,0 @@
-SUMMARY = "F Virtual Window Manager "
-HOMEPAGE = "http://www.fvwm.org/"
-SECTION = "x11/wm"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f8204787357db6ea518dcc9b6cf08388"
-
-DEPENDS = " \
- bison-native \
- flex-native \
- freetype-native \
- gettext-native \
- libxslt-native \
- fontconfig \
- libice \
- libpng \
- librsvg \
- libsm \
- libxau \
- libxcb \
- libxcursor \
- libxdmcp \
- libxext \
- libxfixes \
- libxft \
- libxinerama \
- libxml2 \
- libxrender \
- libxt \
- virtual/libx11 \
- xrandr \
- zlib \
-"
-
-SRC_URI = " \
- git://github.com/fvwmorg/fvwm.git;protocol=https;branch=master \
- file://0001-Fix-compilation-for-disabled-gnome.patch \
-"
-
-SRCREV = "88eab6dc16da6e5dd25fe97fbb56b96ef0d58657"
-
-S = "${WORKDIR}/git"
-
-inherit autotools gettext update-alternatives pkgconfig python3native perlnative features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-ALTERNATIVE:${PN} = "x-window-manager"
-ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/fvwm"
-ALTERNATIVE_PRIORITY[x-window-manager] = "20"
-
-EXTRA_OECONF = " \
- --disable-bidi \
- --disable-fontconfigtest \
- --disable-htmldoc \
- --disable-imlibtest \
- --disable-nls \
- --disable-perllib \
- --disable-rsvg \
- --disable-shape \
- --disable-sm \
- --disable-xfttest \
- --with-imlib-exec-prefix=/nonexistent \
- --with-imlib-prefix=/nonexistent \
- --without-ncurses-library \
- --without-readline-library \
- --without-rplay-library \
- --without-stroke-library \
- --without-termcap-library \
- --without-xpm-library \
- ac_cv_func_mkstemp=no \
- has_safety_mkstemp=yes \
-"
-
-# show the exact commands in the log file
-EXTRA_OEMAKE = " \
- V=1 \
-"
-# clang treats them as errors by default now starting with 15.0+
-CFLAGS += "-Wno-error=int-conversion -Wno-error=implicit-int"
-
-do_install:append() {
- install -d -m 0755 ${D}/${sysconfdir}/xdg/fvwm
- # You can install the config file here
-
- install -d -m 0755 ${D}/${datadir}/fvwm
- touch ${D}/${datadir}/fvwm/ConfigFvwmDefaults
- sed -i -e 's:${STAGING_BINDIR_NATIVE}/perl-native/perl:${USRBINPATH}/env perl:g' ${D}${bindir}/fvwm-*
- sed -i -e 's:${STAGING_BINDIR_NATIVE}/perl-native/perl:${USRBINPATH}/env perl:g' ${D}${libexecdir}/fvwm/*/Fvwm*
- sed -i -e 's:${STAGING_BINDIR_NATIVE}/python3-native/python3:${USRBINPATH}/env python3:g' ${D}${bindir}/fvwm-menu-desktop
-}
-
-# the only needed packages (note: locale packages are automatically generated
-# as well)
-PACKAGES = " \
- ${PN} \
- ${PN}-extra \
- ${PN}-doc \
- ${PN}-dbg \
-"
-
-# minimal set of binaries
-FILES:${PN} = " \
- ${bindir}/fvwm \
- ${bindir}/fvwm-root \
- ${datadir}/fvwm/ConfigFvwmDefaults \
-"
-
-FILES:${PN}-extra = " \
- ${bindir} \
- ${libexecdir} \
- ${sysconfdir}/xdg/fvwm \
-"
-FILES:${PN}-doc = " \
- ${mandir} \
- ${datadir}/fvwm \
-"
-RDEPENDS:${PN} = " \
- xuser-account \
-"
-RDEPENDS:${PN}-extra += "\
- perl \
- python3-core \
-"
diff --git a/meta-oe/recipes-graphics/fvwm/fvwm_2.7.0.bb b/meta-oe/recipes-graphics/fvwm/fvwm_2.7.0.bb
new file mode 100644
index 0000000000..8daf38a0ba
--- /dev/null
+++ b/meta-oe/recipes-graphics/fvwm/fvwm_2.7.0.bb
@@ -0,0 +1,123 @@
+SUMMARY = "F Virtual Window Manager "
+HOMEPAGE = "http://www.fvwm.org/"
+SECTION = "x11/wm"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f8204787357db6ea518dcc9b6cf08388"
+
+DEPENDS = " \
+ bison-native \
+ flex-native \
+ freetype-native \
+ gettext-native \
+ libxslt-native \
+ fontconfig \
+ libice \
+ libpng \
+ librsvg \
+ libsm \
+ libxau \
+ libxcb \
+ libxcursor \
+ libxdmcp \
+ libxext \
+ libxfixes \
+ libxft \
+ libxinerama \
+ libxml2 \
+ libxrender \
+ libxt \
+ virtual/libx11 \
+ xrandr \
+ zlib \
+"
+
+SRC_URI = " \
+ git://github.com/fvwmorg/fvwm.git;protocol=https;branch=master \
+ file://0001-Fix-compilation-for-disabled-gnome.patch \
+"
+
+SRCREV = "7baf540e56fb1a3e91752acba872a88543529d46"
+
+S = "${WORKDIR}/git"
+
+inherit autotools gettext update-alternatives pkgconfig python3native perlnative features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+ALTERNATIVE:${PN} = "x-window-manager"
+ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/fvwm"
+ALTERNATIVE_PRIORITY[x-window-manager] = "20"
+
+EXTRA_OECONF = " \
+ --disable-bidi \
+ --disable-fontconfigtest \
+ --disable-htmldoc \
+ --disable-imlibtest \
+ --disable-nls \
+ --disable-perllib \
+ --disable-rsvg \
+ --disable-shape \
+ --disable-sm \
+ --disable-xfttest \
+ --with-imlib-exec-prefix=/nonexistent \
+ --with-imlib-prefix=/nonexistent \
+ --without-ncurses-library \
+ --without-readline-library \
+ --without-rplay-library \
+ --without-stroke-library \
+ --without-termcap-library \
+ --without-xpm-library \
+ ac_cv_func_mkstemp=no \
+ has_safety_mkstemp=yes \
+"
+
+# show the exact commands in the log file
+EXTRA_OEMAKE = " \
+ V=1 \
+"
+# clang treats them as errors by default now starting with 15.0+
+CFLAGS += "-Wno-error=int-conversion -Wno-error=implicit-int"
+
+do_install:append() {
+ install -d -m 0755 ${D}/${sysconfdir}/xdg/fvwm
+ # You can install the config file here
+
+ install -d -m 0755 ${D}/${datadir}/fvwm
+ touch ${D}/${datadir}/fvwm/ConfigFvwmDefaults
+ sed -i -e 's:${STAGING_BINDIR_NATIVE}/perl-native/perl:${USRBINPATH}/env perl:g' ${D}${bindir}/fvwm-*
+ sed -i -e 's:${STAGING_BINDIR_NATIVE}/perl-native/perl:${USRBINPATH}/env perl:g' ${D}${libexecdir}/fvwm/*/Fvwm*
+ sed -i -e 's:${STAGING_BINDIR_NATIVE}/python3-native/python3:${USRBINPATH}/env python3:g' ${D}${bindir}/fvwm-menu-desktop
+}
+
+# the only needed packages (note: locale packages are automatically generated
+# as well)
+PACKAGES = " \
+ ${PN} \
+ ${PN}-extra \
+ ${PN}-doc \
+ ${PN}-dbg \
+"
+
+# minimal set of binaries
+FILES:${PN} = " \
+ ${bindir}/fvwm \
+ ${bindir}/fvwm-root \
+ ${datadir}/fvwm/ConfigFvwmDefaults \
+"
+
+FILES:${PN}-extra = " \
+ ${bindir} \
+ ${libexecdir} \
+ ${sysconfdir}/xdg/fvwm \
+"
+FILES:${PN}-doc = " \
+ ${mandir} \
+ ${datadir}/fvwm \
+"
+RDEPENDS:${PN} = " \
+ xuser-account \
+"
+RDEPENDS:${PN}-extra += "\
+ perl \
+ python3-core \
+"
diff --git a/meta-oe/recipes-graphics/glm/glm/0001-Do-not-use-Werror-with-clang.patch b/meta-oe/recipes-graphics/glm/glm/0001-Do-not-use-Werror-with-clang.patch
new file mode 100644
index 0000000000..dee2749898
--- /dev/null
+++ b/meta-oe/recipes-graphics/glm/glm/0001-Do-not-use-Werror-with-clang.patch
@@ -0,0 +1,32 @@
+From ee405855bca7d6399ff1a1aef952010056c84ff6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 1 Mar 2023 21:08:09 -0800
+Subject: [PATCH] Do not use -Werror with clang
+
+Too many warnings to handle for a distro build
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ test/CMakeLists.txt | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index e7f85f19..0b6fd980 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -197,10 +197,6 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ message("GLM: Clang - ${CMAKE_CXX_COMPILER_ID} compiler")
+ endif()
+
+- add_compile_options(-Werror -Weverything)
+- add_compile_options(-Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-c++11-long-long -Wno-padded -Wno-gnu-anonymous-struct -Wno-nested-anon-types)
+- add_compile_options(-Wno-undefined-reinterpret-cast -Wno-sign-conversion -Wno-unused-variable -Wno-missing-prototypes -Wno-unreachable-code -Wno-missing-variable-declarations -Wno-sign-compare -Wno-global-constructors -Wno-unused-macros -Wno-format-nonliteral)
+-
+ elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+ if(NOT GLM_QUIET)
+ message("GLM: GCC - ${CMAKE_CXX_COMPILER_ID} compiler")
+--
+2.39.2
+
diff --git a/meta-oe/recipes-graphics/glm/glm/0001-Silence-clang-warnings.patch b/meta-oe/recipes-graphics/glm/glm/0001-Silence-clang-warnings.patch
index 3a62fffe3a..10692dd423 100644
--- a/meta-oe/recipes-graphics/glm/glm/0001-Silence-clang-warnings.patch
+++ b/meta-oe/recipes-graphics/glm/glm/0001-Silence-clang-warnings.patch
@@ -26,8 +26,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
test/gtx/gtx_fast_trigonometry.cpp | 30 ++++++++++++------------------
3 files changed, 14 insertions(+), 20 deletions(-)
-diff --git a/glm/ext/quaternion_common.inl b/glm/ext/quaternion_common.inl
-index 0e4a3bb2..6f99f52d 100644
--- a/glm/ext/quaternion_common.inl
+++ b/glm/ext/quaternion_common.inl
@@ -104,7 +104,7 @@ namespace glm
@@ -39,21 +37,6 @@ index 0e4a3bb2..6f99f52d 100644
return (sin(angle - a * phi)* x + sin(a * phi) * z) / sin(angle);
}
}
-diff --git a/glm/gtc/random.inl b/glm/gtc/random.inl
-index 70485098..a4af2a06 100644
---- a/glm/gtc/random.inl
-+++ b/glm/gtc/random.inl
-@@ -22,7 +22,7 @@ namespace detail
- GLM_FUNC_QUALIFIER static vec<1, uint8, P> call()
- {
- return vec<1, uint8, P>(
-- std::rand() % std::numeric_limits<uint8>::max());
-+ static_cast<uint8>(std::rand()) % std::numeric_limits<uint8>::max());
- }
- };
-
-diff --git a/test/gtx/gtx_fast_trigonometry.cpp b/test/gtx/gtx_fast_trigonometry.cpp
-index 8bf86ba0..ddaa708b 100644
--- a/test/gtx/gtx_fast_trigonometry.cpp
+++ b/test/gtx/gtx_fast_trigonometry.cpp
@@ -19,15 +19,14 @@ namespace fastCos
@@ -160,6 +143,3 @@ index 8bf86ba0..ddaa708b 100644
const std::clock_t timestamp3 = std::clock();
const std::clock_t time_fast = timestamp2 - timestamp1;
const std::clock_t time_default = timestamp3 - timestamp2;
---
-2.31.1
-
diff --git a/meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb b/meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb
index 9edcb2b6e1..dd520b245e 100644
--- a/meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb
+++ b/meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb
@@ -11,19 +11,19 @@ LIC_FILES_CHKSUM = "file://copying.txt;md5=462e4b97f73ef12f8171c3c546ce4e8d"
SRC_URI = " \
git://github.com/g-truc/glm;branch=master;protocol=https \
file://0001-Silence-clang-warnings.patch \
+ file://0001-Do-not-use-Werror-with-clang.patch \
file://glmConfig.cmake.in \
file://glmConfigVersion.cmake.in \
file://glm.pc.in \
file://glmTargets.cmake \
"
-SRCREV = "bf71a834948186f4097caa076cd2663c69a10e1e"
+SRCREV = "efec5db081e3aad807d0731e172ac597f6a39447"
+PV .= "+0.9.9.9+git"
S = "${WORKDIR}/git"
inherit cmake
-CXXFLAGS:append:toolchain-clang = " -Wno-error=invalid-utf8 -Wno-error=disabled-macro-expansion -Wno-error=reserved-identifier"
-
do_install() {
install -d ${D}${includedir} ${D}${docdir}/glm ${D}${libdir}/pkgconfig ${D}${libdir}/cmake/glm
cp -R --no-dereference --preserve=mode,links ${S}/glm ${D}${includedir}
diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-Match-prototypes-of-callbacks-with-libgphoto.patch b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-Match-prototypes-of-callbacks-with-libgphoto.patch
new file mode 100644
index 0000000000..abe38e12ce
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-Match-prototypes-of-callbacks-with-libgphoto.patch
@@ -0,0 +1,50 @@
+From 366930ccc1a261c3eb883da2bf3c655162ccd75f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 1 Mar 2023 22:58:37 -0800
+Subject: [PATCH] Match prototypes of callbacks with libgphoto
+
+In https://github.com/gphoto/gphoto2/pull/535/commits/ccc4c1f092bd21ebc713f4d7b9be85be49f92f1e
+we tried to fix by using pthread_t but it also needs to make changes in
+libgphoto and these changes can be invasive, therefore lets revert to
+older types and to fix musl problem fix it via type casts
+
+Upstream-Status: Submitted [https://github.com/gphoto/gphoto2/pull/569]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gphoto2/main.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/gphoto2/main.c b/gphoto2/main.c
+index 0dac947..cd3c990 100644
+--- a/gphoto2/main.c
++++ b/gphoto2/main.c
+@@ -1198,7 +1198,7 @@ thread_func (void *data)
+ pthread_cleanup_pop (1);
+ }
+
+-static pthread_t
++static unsigned int
+ start_timeout_func (Camera *camera, unsigned int timeout,
+ CameraTimeoutFunc func, void __unused__ *data)
+ {
+@@ -1215,14 +1215,14 @@ start_timeout_func (Camera *camera, unsigned int timeout,
+
+ pthread_create (&tid, NULL, thread_func, td);
+
+- return (tid);
++ return (unsigned int)tid;
+ }
+
+ static void
+-stop_timeout_func (Camera __unused__ *camera, pthread_t id,
++stop_timeout_func (Camera __unused__ *camera, unsigned int id,
+ void __unused__ *data)
+ {
+- pthread_t tid = id;
++ pthread_t tid = (pthread_t)id;
+
+ pthread_cancel (tid);
+ pthread_join (tid, NULL);
+--
+2.39.2
+
diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
index eaef8180ee..14976ffb72 100644
--- a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
+++ b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] configure.ac remove AM_PO_SUBDIRS
This is done twice together with oe autotools.bbclass.
---
+Upstream-Status: Pending
+
configure.ac | 1 -
1 file changed, 1 deletion(-)
diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb b/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb
index fe33940475..513845194d 100644
--- a/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb
+++ b/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb
@@ -9,6 +9,7 @@ RDEPENDS:gphoto2 = "libgphoto2"
SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/gphoto2-${PV}.tar.bz2;name=gphoto2 \
file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \
file://0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch \
+ file://0001-Match-prototypes-of-callbacks-with-libgphoto.patch \
"
SRC_URI[gphoto2.sha256sum] = "2a648dcdf12da19e208255df4ebed3e7d2a02f905be4165f2443c984cf887375"
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure-Filter-out-buildpaths-from-CC.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure-Filter-out-buildpaths-from-CC.patch
new file mode 100644
index 0000000000..570bb3e4c1
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure-Filter-out-buildpaths-from-CC.patch
@@ -0,0 +1,48 @@
+From 06be633b8f4e2241bd37d4faf62b49606ad778e7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 25 May 2023 19:01:36 -0700
+Subject: [PATCH] configure: Filter out buildpaths from CC
+
+Upstream-Status: Inappropriate [Cross-compile specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 4 +++-
+ libgphoto2_port/configure.ac | 6 ++++--
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 17216b1..39c8cc4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -261,7 +261,9 @@ GP_CONFIG_MSG([Compiler],[${CC}])
+ GP_CONFIG_MSG([libltdl includes],[$LTDLINCL])
+ GP_CONFIG_MSG([libltdl library],[$LIBLTDL])
+
+-AC_DEFINE_UNQUOTED([HAVE_CC], ["$CC"],
++CC_NO_SYSROOT=`echo $CC | sed -e \
++ 's|--sysroot=.*\b||g'`
++AC_DEFINE_UNQUOTED([HAVE_CC], ["$CC_NO_SYSROOT"],
+ [The C compiler we are using])
+
+
+diff --git a/libgphoto2_port/configure.ac b/libgphoto2_port/configure.ac
+index 1086b8e..59f3c34 100644
+--- a/libgphoto2_port/configure.ac
++++ b/libgphoto2_port/configure.ac
+@@ -103,8 +103,10 @@ GP_CONFIG_MSG([Compiler],[${CC}])
+ GP_CONFIG_MSG([libltdl includes],[$LTDLINCL])
+ GP_CONFIG_MSG([libltdl library],[$LIBLTDL])
+
+-AC_DEFINE_UNQUOTED([HAVE_CC], ["$CC"],
+- [The C compiler we're using])
++CC_NO_SYSROOT=`echo $CC | sed -e \
++ 's|--sysroot=.*\b||g'`
++AC_DEFINE_UNQUOTED([HAVE_CC], ["$CC_NO_SYSROOT"],
++ [The C compiler we are using])
+
+ AM_CPPFLAGS=""
+
+--
+2.40.1
+
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch b/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
index f93650f86c..fd647b7386 100644
--- a/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2/0001-configure.ac-remove-AM_PO_SUBDIRS.patch
@@ -11,7 +11,7 @@ together with oe autotools.bbclass this is done twice and causes:
| autoreconf: running: aclocal --system-acdir=/home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/aclocal-copy/ --automake-acdir=/home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/share/aclocal-1.12 -I /home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/auto-m4/ -I /home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/m4m/ -I /home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/auto-m4/ -I /home/Superandy/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/libgphoto2-2.4.11-r2/libgphoto2-2.4.11/m4m/ --force -I auto-m4 -I m4m
| configure.ac:230: error: `po-directories' is already registered with AC_CONFIG_COMMANDS.
-Upstream-Status: Inapropriate [configuration]
+Upstream-Status: Inappropriate [configuration]
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.30.bb b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.30.bb
deleted file mode 100644
index 0f2800a95f..0000000000
--- a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.30.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-SUMMARY = "libgphoto2 allows you to access digital cameras"
-SECTION = "libs"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=477378d78dfeeaa93826ee4ec7c643fb"
-
-DEPENDS = "libtool jpeg virtual/libusb0 libexif zlib libxml2"
-
-# The .fdi and .rules files were generated with:
-# libgphoto2-2.5.8/packaging/generic$ qemu-arm -s 1048576 -r 2.6.24 -L /OE/angstrom-dev/staging/armv5te-angstrom-linux-gnueabi/ .libs/print-camera-list
-# They are release specific, so please regen when adding new releases
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/libgphoto2-${PV}.tar.bz2;name=libgphoto2 \
- file://40-libgphoto2.rules \
- file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \
-"
-SRC_URI[libgphoto2.sha256sum] = "ee61a1dac6ad5cf711d114e06b90a6d431961a6e7ec59f4b757a7cd77b1c0fb4"
-
-inherit autotools pkgconfig gettext lib_package
-
-EXTRA_OECONF = " --with-drivers=all udevscriptdir=${nonarch_base_libdir}/udev ac_cv_lib_ltdl_lt_dlcaller_register=yes"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gd] = ",--without-gdlib,gd"
-PACKAGECONFIG[serial] = "--enable-serial,--disable-serial,lockdev"
-
-do_configure:prepend() {
- rm -rf ${S}/libgphoto2_port/auto-m4/*
- rm -rf ${S}/auto-m4/*
-}
-
-do_configure:append() {
- cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/libgphoto2_port/po/
- cd ${S}/libgphoto2_port/
- autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths
-
- # remove WORKDIR information from config to improve reproducibility
- # libgphoto2_port recheck config will set the WORKDIR info again, so dont do that
- sed -i 's/'$(echo ${WORKDIR} | sed 's_/_\\/_g')'/../g' ${B}/config.h
- sed -i 's/'$(echo ${WORKDIR} | sed 's_/_\\/_g')'/../g' ${B}/libgphoto2_port/config.status
- sed -i '/config\.status/ s/\-\-recheck//' ${B}/libgphoto2_port/Makefile
- cd ${S}
-}
-
-do_install:append() {
- install -d ${D}${sysconfdir}/udev/rules.d/
- install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
-}
-
-PACKAGES =+ "libgphotoport libgphoto2-camlibs"
-FILES:libgphoto2-camlibs = "${libdir}/libgphoto2*/*/*.so*"
-RRECOMMENDS:${PN} = "libgphoto2-camlibs"
-
-FILES:libgphotoport = "${libdir}/libgphoto2_port.so.*"
-
-FILES:${PN} += "${nonarch_base_libdir}/udev/*"
-FILES:${PN}-dbg += "${libdir}/*/*/.debug"
-FILES:${PN}-dev += "${libdir}/*/*/*.la"
-FILES:${PN}-doc += "${datadir}/libgphoto2_port/0.12.?/vcamera/README.txt"
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.31.bb b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.31.bb
new file mode 100644
index 0000000000..cc42b6a9c6
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.31.bb
@@ -0,0 +1,53 @@
+SUMMARY = "libgphoto2 allows you to access digital cameras"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=477378d78dfeeaa93826ee4ec7c643fb"
+
+DEPENDS = "libtool jpeg virtual/libusb0 libexif zlib libxml2"
+
+# The .fdi and .rules files were generated with:
+# libgphoto2-2.5.8/packaging/generic$ qemu-arm -s 1048576 -r 2.6.24 -L /OE/angstrom-dev/staging/armv5te-angstrom-linux-gnueabi/ .libs/print-camera-list
+# They are release specific, so please regen when adding new releases
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/libgphoto2-${PV}.tar.bz2;name=libgphoto2 \
+ file://40-libgphoto2.rules \
+ file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \
+ file://0001-configure-Filter-out-buildpaths-from-CC.patch \
+"
+SRC_URI[libgphoto2.sha256sum] = "4f81c34c0b812bee67afd5f144940fbcbe01a2055586a6a1fa2d0626024a545b"
+
+inherit autotools pkgconfig gettext lib_package
+
+EXTRA_OECONF = " --with-drivers=all udevscriptdir=${nonarch_base_libdir}/udev ac_cv_lib_ltdl_lt_dlcaller_register=yes"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gd] = ",--without-gdlib,gd"
+PACKAGECONFIG[serial] = "--enable-serial,--disable-serial,lockdev"
+
+do_configure:prepend() {
+ rm -rf ${S}/libgphoto2_port/auto-m4/*
+ rm -rf ${S}/auto-m4/*
+}
+
+do_configure:append() {
+ cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/libgphoto2_port/po/
+ cd ${S}/libgphoto2_port/
+ autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths
+ cd ${S}
+}
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/udev/rules.d/
+ install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
+}
+
+PACKAGES =+ "libgphotoport libgphoto2-camlibs"
+FILES:libgphoto2-camlibs = "${libdir}/libgphoto2*/*/*.so*"
+RRECOMMENDS:${PN} = "libgphoto2-camlibs"
+
+FILES:libgphotoport = "${libdir}/libgphoto2_port.so.*"
+
+FILES:${PN} += "${nonarch_base_libdir}/udev/*"
+FILES:${PN}-dbg += "${libdir}/*/*/.debug"
+FILES:${PN}-dev += "${libdir}/*/*/*.la"
+FILES:${PN}-doc += "${datadir}/libgphoto2_port/0.12.?/vcamera/README.txt"
diff --git a/meta-oe/recipes-graphics/graphene/graphene_1.10.8.bb b/meta-oe/recipes-graphics/graphene/graphene_1.10.8.bb
deleted file mode 100644
index 813ff74adf..0000000000
--- a/meta-oe/recipes-graphics/graphene/graphene_1.10.8.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "A thin layer of graphic data types"
-HOMEPAGE = "http://ebassi.github.io/graphene/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a7d871d9e23c450c421a85bb2819f648"
-
-GNOMEBASEBUILDCLASS = "meson"
-
-inherit gnomebase gobject-introspection gtk-doc
-
-SRC_URI[archive.sha256sum] = "a37bb0e78a419dcbeaa9c7027bcff52f5ec2367c25ec859da31dfde2928f279a"
-
-# gtk4 & mutter 41.0 requires graphene build with introspection
-PACKAGECONFIG ?= "introspection"
-PACKAGECONFIG[introspection] = "-Dintrospection=enabled,-Dintrospection=disabled,"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-
-EXTRA_OEMESON = "-Dinstalled_tests=false"
-
-FILES:${PN} += "${libdir}/graphene-1.0"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-graphics/graphviz/graphviz/0001-Autotools-fix-do-not-put-prefix-based-paths-in-compi.patch b/meta-oe/recipes-graphics/graphviz/graphviz/0001-Autotools-fix-do-not-put-prefix-based-paths-in-compi.patch
new file mode 100644
index 0000000000..0d3f412706
--- /dev/null
+++ b/meta-oe/recipes-graphics/graphviz/graphviz/0001-Autotools-fix-do-not-put-prefix-based-paths-in-compi.patch
@@ -0,0 +1,58 @@
+From 671e0d091b40ef7deb4a9d43e0dbed2a44edbec8 Mon Sep 17 00:00:00 2001
+From: Matthew Fernandez <matthew.fernandez@gmail.com>
+Date: Sat, 9 Sep 2023 01:03:04 -0700
+Subject: [PATCH] Autotools: fix: do not put '$prefix' based paths in
+ compilation flags
+
+This was causing problems with cross-compilation with a dedicated sysroot,
+because compilation would incorrectly use headers and libraries from the
+`--prefix` path. The `--prefix` path is meant to indicate a target path to
+install to, not a path from which to source dependent libraries.
+
+Gitlab: fixes #2442
+Reported-by: Daniel Klauer
+Suggested-by: Daniel Klauer
+
+Upstream-Status: Backport [https://gitlab.com/graphviz/graphviz/-/commit/012d250a903e13114bce3ba40995fb957fed7848]
+Signed-off-by: Daniel Klauer <daniel.klauer@gin.de>
+---
+ CHANGELOG.md | 3 +++
+ configure.ac | 8 --------
+ 2 files changed, 3 insertions(+), 8 deletions(-)
+
+diff --git a/CHANGELOG.md b/CHANGELOG.md
+index b9b7e8e08..3a15fd256 100644
+--- a/CHANGELOG.md
++++ b/CHANGELOG.md
+@@ -39,6 +39,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
+ longer fails due to missing PHP files. #2388
+ - Syntax for a loop in `gvmap.sh` has been corrected. This was a regression in
+ Graphviz 2.50.0. #2404
++- The Autotools build system no longer uses headers and libraries from the
++ `--prefix` path given on the command line. This previously caused
++ cross-compilation to incorrectly pick up host headers and libraries. #2442
+
+ ## [8.0.5] – 2023-04-30
+
+diff --git a/configure.ac b/configure.ac
+index 573a3ee5d..7d53346de 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -190,14 +190,6 @@ if test "x${prefix}" = "xNONE"; then
+ AC_SUBST([prefix])
+ fi
+
+-# automatically check for other dependencies in $prefix first
+-if test "x${prefix}" != "x/usr"; then
+- CPPFLAGS="$CPPFLAGS -I${prefix}/include"
+- LDFLAGS="$LDFLAGS -L${prefix}/lib"
+- PKG_CONFIG_PATH="$prefix/lib/pkgconfig$PATHSEPARATOR$PKG_CONFIG_PATH"
+- export PKG_CONFIG_PATH
+-fi
+-
+ dnl -----------------------------------
+ # Static/Shared binaries
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch b/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch
index 6d1d441c57..99b53e2e12 100644
--- a/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch
+++ b/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch
@@ -11,7 +11,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/configure.ac
+++ b/configure.ac
-@@ -1540,7 +1540,7 @@ AC_ARG_ENABLE(tcl,
+@@ -1225,7 +1225,7 @@ AC_ARG_ENABLE(tcl,
[], [enable_tcl=yes])
if test "x$enable_tcl" != "xyes"; then
@@ -22,12 +22,12 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
if test "x$use_tcl" = "x"; then
--- a/Makefile.am
+++ b/Makefile.am
-@@ -19,7 +19,7 @@ pkginclude_HEADERS = $(top_builddir)/gra
- man_MANS = graphviz.7
+@@ -11,7 +11,7 @@ pkginclude_HEADERS = $(top_builddir)/gra
+ dist_man_MANS = graphviz.7
# $(subdirs) contains the list from: AC_CONFIG_SUBDIRS
--SUBDIRS = $(subdirs) lib plugin cmd tclpkg doc contrib share graphs rtest tests
-+SUBDIRS = $(subdirs) lib plugin cmd doc contrib share graphs rtest tests
+-SUBDIRS = $(subdirs) lib plugin cmd tclpkg doc contrib share graphs tests
++SUBDIRS = $(subdirs) lib plugin cmd doc contrib share graphs tests
.PHONY: doxygen
doxygen:
diff --git a/meta-oe/recipes-graphics/graphviz/graphviz/0001-Use-native-mkdefs.patch b/meta-oe/recipes-graphics/graphviz/graphviz/0001-Use-native-mkdefs.patch
deleted file mode 100644
index 76ff08f63c..0000000000
--- a/meta-oe/recipes-graphics/graphviz/graphviz/0001-Use-native-mkdefs.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 5e53b643615fd53f3ff960521bbe9d95641e5f68 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Sun, 20 Jan 2019 23:58:29 +0100
-Subject: [PATCH] Use native mkdefs
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- lib/gvpr/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/lib/gvpr/Makefile.am
-+++ b/lib/gvpr/Makefile.am
-@@ -59,7 +59,7 @@ mkdefs$(EXEEXT):
- $(HOSTCC) $(srcdir)/mkdefs.c -o mkdefs$(EXEEXT)
-
- gdefs.h: $(top_srcdir)/lib/gvpr/gprdata mkdefs$(EXEEXT)
-- ./mkdefs$(EXEEXT) gdefs.h < $(top_srcdir)/lib/gvpr/gprdata
-+ mkdefs$(EXEEXT) gdefs.h < $(top_srcdir)/lib/gvpr/gprdata
-
- EXTRA_DIST = $(man_MANS) $(pdf_DATA) gprdata mkdefs.c gdefs.h trie.c gvprlib.vcxproj*
-
diff --git a/meta-oe/recipes-graphics/graphviz/graphviz/0001-plugin-pango-Include-freetype-headers-explicitly.patch b/meta-oe/recipes-graphics/graphviz/graphviz/0001-plugin-pango-Include-freetype-headers-explicitly.patch
deleted file mode 100644
index dd79510560..0000000000
--- a/meta-oe/recipes-graphics/graphviz/graphviz/0001-plugin-pango-Include-freetype-headers-explicitly.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 926d9285f3367ae1bdb9ce1dce95f7de73b3a980 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Aug 2019 12:42:19 -0700
-Subject: [PATCH] plugin/pango: Include freetype headers explicitly
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Do not depend on pango automatically adding these headers
-Fixes
-| gvtextlayout_pango.c:140:10: error: unknown type name ‘FT_Face’
-| FT_Face face;
-| ^~~~~~~
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- plugin/pango/gvtextlayout_pango.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/plugin/pango/gvtextlayout_pango.c
-+++ b/plugin/pango/gvtextlayout_pango.c
-@@ -15,6 +15,10 @@
-
- #include <stdlib.h>
- #include <string.h>
-+
-+#include <ft2build.h>
-+#include FT_FREETYPE_H
-+
- #include "gvplugin_render.h"
- #include "agxbuf.h"
- #include "utils.h"
diff --git a/meta-oe/recipes-graphics/graphviz/graphviz_2.50.0.bb b/meta-oe/recipes-graphics/graphviz/graphviz_2.50.0.bb
deleted file mode 100644
index 4c51af669c..0000000000
--- a/meta-oe/recipes-graphics/graphviz/graphviz_2.50.0.bb
+++ /dev/null
@@ -1,123 +0,0 @@
-SUMMARY = "Graph Visualization Tools"
-HOMEPAGE = "http://www.graphviz.org"
-LICENSE = "EPL-1.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9109f5fc16cf963fb3cdd32781b3ce04"
-
-DEPENDS = " \
- intltool-native \
- bison-native \
- groff-native \
- libtool \
- gdk-pixbuf \
- cairo \
- pango \
- expat \
- freetype \
-"
-DEPENDS:append:class-target = " ${BPN}-native"
-DEPENDS:append:class-nativesdk = " ${BPN}-native"
-
-inherit autotools-brokensep pkgconfig gettext qemu
-
-SRC_URI = "https://gitlab.com/api/v4/projects/4207231/packages/generic/${BPN}-releases/${PV}/${BP}.tar.xz \
- "
-# Use native mkdefs
-SRC_URI:append:class-target = "\
- file://0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch \
-"
-SRC_URI:append:class-nativesdk = "\
- file://graphviz-setup.sh \
-"
-
-SRC_URI[sha256sum] = "6b16bf990df114195be669773a1dae975dbbffada45e1de2849ddeb5851bb9a8"
-
-CVE_CHECK_IGNORE += "\
- CVE-2014-9157 \
-"
-
-PACKAGECONFIG ??= "librsvg"
-PACKAGECONFIG[librsvg] = "--with-librsvg,--without-librsvg,librsvg"
-
-EXTRA_OECONF:append = " PS2PDF=/bin/echo"
-
-EXTRA_OECONF:class-target = "\
- --with-expatincludedir=${STAGING_INCDIR} \
- --with-expatlibdir=${STAGING_LIBDIR} \
- --without-included-ltdl \
- --disable-java \
- --disable-tcl \
- --disable-r \
- --disable-sharp \
- "
-EXTRA_OECONF:class-nativesdk = "\
- --with-expatincludedir=${STAGING_INCDIR} \
- --with-expatlibdir=${STAGING_LIBDIR} \
- --without-included-ltdl \
- --disable-java \
- --disable-tcl \
- --disable-r \
- --disable-sharp \
- "
-CFLAGS:append:class-target = " -D_typ_ssize_t=1 -D_long_double=1"
-CFLAGS:append:class-nativesdk = " -D_typ_ssize_t=1 -D_long_double=1"
-do_configure:prepend() {
- cd ${S}
- # create version.m4 and ignore libtoolize errors
- ./autogen.sh NOCONFIG || true
-}
-
-do_install:append:class-nativesdk() {
- # graphviz-setup.sh must be executed at SDK installation
- install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d
- install -m 0755 ${WORKDIR}/graphviz-setup.sh ${D}${SDKPATHNATIVE}/post-relocate-setup.d
-}
-FILES:${PN}:class-nativesdk += "${SDKPATHNATIVE}"
-
-# create /usr/lib/graphviz/config6
-graphviz_sstate_postinst() {
- mkdir -p ${SYSROOT_DESTDIR}${bindir}
- dest=${SYSROOT_DESTDIR}${bindir}/postinst-${PN}
- echo '#!/bin/sh' > $dest
- echo '' >> $dest
- echo 'dot -c' >> $dest
- chmod 0755 $dest
-}
-SYSROOT_PREPROCESS_FUNCS:append:class-native = " graphviz_sstate_postinst"
-
-pkg_postinst:${PN} () {
- if [ -n "$D" ]; then
- if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then
- ${@qemu_run_binary(d, '$D', '${bindir}/dot')} -c
- fi
- else
- dot -c
- fi
-}
-
-pkg_postrm:${PN} () {
- rm -f $D${libdir}/graphviz/config*
- rmdir --ignore-fail-on-non-empty $D${libdir}/graphviz
-}
-
-PACKAGE_WRITE_DEPS += "qemu-native"
-
-PACKAGES =+ "${PN}-python ${PN}-perl ${PN}-demo"
-
-FILES:${PN}-python += "${libdir}/python*/site-packages/ ${libdir}/graphviz/python/"
-FILES:${PN}-perl += "${libdir}/perl5/*/vendor_perl/ ${libdir}/graphviz/perl/"
-FILES:${PN}-demo += "${datadir}/graphviz/demo/"
-
-RDEPENDS:${PN}-perl += "perl"
-RDEPENDS:${PN}-python += "python3"
-RDEPENDS:${PN}-demo += "python3 perl"
-
-RRECOMMENDS:${PN} = "liberation-fonts"
-
-INSANE_SKIP:${PN}-perl = "dev-so"
-INSANE_SKIP:${PN}-python = "dev-so"
-
-FILES_SOLIBSDEV:append = " ${libdir}/graphviz/lib*${SOLIBSDEV}"
-
-RRECOMMENDS:${PN} = "liberation-fonts"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb b/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb
new file mode 100644
index 0000000000..2700142e5d
--- /dev/null
+++ b/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb
@@ -0,0 +1,121 @@
+SUMMARY = "Graph Visualization Tools"
+HOMEPAGE = "http://www.graphviz.org"
+LICENSE = "EPL-1.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9109f5fc16cf963fb3cdd32781b3ce04"
+
+DEPENDS = " \
+ bison-native \
+ groff-native \
+ libtool \
+ gdk-pixbuf \
+ cairo \
+ pango \
+ expat \
+ freetype \
+"
+DEPENDS:append:class-target = " ${BPN}-native"
+DEPENDS:append:class-nativesdk = " ${BPN}-native"
+
+inherit autotools-brokensep pkgconfig gettext qemu
+
+SRC_URI = "https://gitlab.com/api/v4/projects/4207231/packages/generic/${BPN}-releases/${PV}/${BP}.tar.xz \
+ file://0001-Autotools-fix-do-not-put-prefix-based-paths-in-compi.patch \
+ "
+# Use native mkdefs
+SRC_URI:append:class-target = "\
+ file://0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch \
+"
+SRC_URI:append:class-nativesdk = "\
+ file://graphviz-setup.sh \
+"
+SRC_URI[sha256sum] = "d593695fdaa8a19297523b679ad13d3ef2027b0b7f14cc2bc23e77969ed81565"
+
+PACKAGECONFIG ??= "librsvg"
+PACKAGECONFIG[librsvg] = "--with-librsvg,--without-librsvg,librsvg"
+
+EXTRA_OECONF:append = " PS2PDF=/bin/echo --disable-man-pdfs"
+
+EXTRA_OECONF:class-target = "\
+ --with-expatincludedir=${STAGING_INCDIR} \
+ --with-expatlibdir=${STAGING_LIBDIR} \
+ --without-included-ltdl \
+ --disable-java \
+ --disable-tcl \
+ --disable-r \
+ --disable-sharp \
+ "
+EXTRA_OECONF:class-nativesdk = "\
+ --with-expatincludedir=${STAGING_INCDIR} \
+ --with-expatlibdir=${STAGING_LIBDIR} \
+ --without-included-ltdl \
+ --disable-java \
+ --disable-tcl \
+ --disable-r \
+ --disable-sharp \
+ "
+EXTRA_OECONF:class-native = "\
+ --disable-tcl \
+ "
+CFLAGS:append:class-target = " -D_typ_ssize_t=1 -D_long_double=1"
+CFLAGS:append:class-nativesdk = " -D_typ_ssize_t=1 -D_long_double=1"
+do_configure:prepend() {
+ cd ${S}
+ # create version.m4 and ignore libtoolize errors
+ ./autogen.sh NOCONFIG || true
+}
+
+do_install:append:class-nativesdk() {
+ # graphviz-setup.sh must be executed at SDK installation
+ install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d
+ install -m 0755 ${WORKDIR}/graphviz-setup.sh ${D}${SDKPATHNATIVE}/post-relocate-setup.d
+}
+FILES:${PN}:class-nativesdk += "${SDKPATHNATIVE}"
+
+# create /usr/lib/graphviz/config6
+graphviz_sstate_postinst() {
+ mkdir -p ${SYSROOT_DESTDIR}${bindir}
+ dest=${SYSROOT_DESTDIR}${bindir}/postinst-${PN}
+ echo '#!/bin/sh' > $dest
+ echo '' >> $dest
+ echo 'dot -c' >> $dest
+ chmod 0755 $dest
+}
+SYSROOT_PREPROCESS_FUNCS:append:class-native = " graphviz_sstate_postinst"
+
+pkg_postinst:${PN} () {
+ if [ -n "$D" ]; then
+ if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/dot')} -c
+ fi
+ else
+ dot -c
+ fi
+}
+
+pkg_postrm:${PN} () {
+ rm -f $D${libdir}/graphviz/config*
+ rmdir --ignore-fail-on-non-empty $D${libdir}/graphviz
+}
+
+PACKAGE_WRITE_DEPS += "qemu-native"
+
+PACKAGES =+ "${PN}-python ${PN}-perl ${PN}-demo"
+
+FILES:${PN}-python += "${PYTHON_SITEPACKAGES_DIR}/ ${libdir}/graphviz/python/"
+FILES:${PN}-perl += "${libdir}/perl5/*/vendor_perl/ ${libdir}/graphviz/perl/"
+FILES:${PN}-demo += "${datadir}/graphviz/demo/"
+
+RDEPENDS:${PN}-perl += "perl"
+RDEPENDS:${PN}-python += "python3"
+RDEPENDS:${PN}-demo += "python3 perl"
+
+RRECOMMENDS:${PN} = "liberation-fonts"
+
+INSANE_SKIP:${PN}-perl = "dev-so"
+INSANE_SKIP:${PN}-python = "dev-so"
+
+FILES_SOLIBSDEV:append = " ${libdir}/graphviz/lib*${SOLIBSDEV}"
+
+RRECOMMENDS:${PN} = "liberation-fonts"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-Include-stdlib.h-for-exit-API.patch b/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-Include-stdlib.h-for-exit-API.patch
index d529ddd234..949151a827 100644
--- a/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-Include-stdlib.h-for-exit-API.patch
+++ b/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-Include-stdlib.h-for-exit-API.patch
@@ -14,6 +14,8 @@ http://sources.debian.net/src/gtkperf/0.40%2Bds-2/debian/patches/01-include_stdl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-graphics/gtkperf/gtkperf/0002-timing.c-Fix-format-security-errors.patch b/meta-oe/recipes-graphics/gtkperf/gtkperf/0002-timing.c-Fix-format-security-errors.patch
index 0548040af7..f975acabad 100644
--- a/meta-oe/recipes-graphics/gtkperf/gtkperf/0002-timing.c-Fix-format-security-errors.patch
+++ b/meta-oe/recipes-graphics/gtkperf/gtkperf/0002-timing.c-Fix-format-security-errors.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 2/2] timing.c: Fix format-security errors
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/timing.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.111.bb b/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.111.bb
deleted file mode 100644
index eee9de7497..0000000000
--- a/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.111.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "VCD (Value Change Dump) file waveform viewer"
-DESCRIPTION = "gtkwave is a viewer for VCD (Value Change Dump) files which are usually created by digital circuit simulators. (These files have no connection to video CDs!) "
-HOMEPAGE = "http://gtkwave.sourceforge.net/"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
-
-SRC_URI = "http://gtkwave.sourceforge.net/gtkwave-gtk3-${PV}.tar.gz"
-SRC_URI[sha256sum] = "b4e1c2f718fb3c4b4f412a220876b9da599fe11745fb6f7eb4aed107b1106233"
-S = "${WORKDIR}/${BPN}-gtk3-${PV}"
-
-DEPENDS = " \
- gperf-native \
- gtk+3 \
- gdk-pixbuf \
- tcl \
- tk \
- bzip2 \
- xz \
- pango \
- zlib \
-"
-
-inherit pkgconfig autotools gettext texinfo mime mime-xdg
-
-inherit features_check
-# depends on gtk+3 which has this restriction
-# ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-# but https://github.com/gtkwave/gtkwave/blob/f9d82a82aa3ddc30ca47984278371f62c9a3bd81/gtkwave3-gtk3/src/gtk23compat.h#L10
-# explicitly includes gdk/gdkwayland.h for gtk-3.22.26 and newer (oe-core currently has 3.24.29)
-# and it needs x11 as well for tk dependency (so it happends to be both GTK3DISTROFEATURES instead of either of them)
-REQUIRED_DISTRO_FEATURES = "wayland x11"
-
-EXTRA_OECONF = " \
- --enable-gtk3 \
- --with-tcl=${STAGING_BINDIR_CROSS} \
- --with-tk=${STAGING_BINDIR_CROSS} \
- --with-tirpc \
- --disable-mime-update \
-"
-
-FILES:${PN} = "${bindir} ${datadir}"
-
-RDEPENDS:${PN} += "tk-lib"
diff --git a/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.117.bb b/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.117.bb
new file mode 100644
index 0000000000..d23d89f2b1
--- /dev/null
+++ b/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.117.bb
@@ -0,0 +1,44 @@
+SUMMARY = "VCD (Value Change Dump) file waveform viewer"
+DESCRIPTION = "gtkwave is a viewer for VCD (Value Change Dump) files which are usually created by digital circuit simulators. (These files have no connection to video CDs!) "
+HOMEPAGE = "http://gtkwave.sourceforge.net/"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+
+SRC_URI = "http://gtkwave.sourceforge.net/gtkwave-gtk3-${PV}.tar.gz"
+SRC_URI[sha256sum] = "3cf1537586a911cbb0601af8fa18cf6da708c8a14a71f69ce3cb9118e8571db9"
+S = "${WORKDIR}/${BPN}-gtk3-${PV}"
+
+DEPENDS = " \
+ gperf-native \
+ gtk+3 \
+ gdk-pixbuf \
+ tcl \
+ tk \
+ bzip2 \
+ xz \
+ pango \
+ zlib \
+"
+
+inherit pkgconfig autotools gettext texinfo mime mime-xdg
+
+inherit features_check
+# depends on gtk+3 which has this restriction
+# ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+# but https://github.com/gtkwave/gtkwave/blob/f9d82a82aa3ddc30ca47984278371f62c9a3bd81/gtkwave3-gtk3/src/gtk23compat.h#L10
+# explicitly includes gdk/gdkwayland.h for gtk-3.22.26 and newer (oe-core currently has 3.24.29)
+# and it needs x11 as well for tk dependency (so it happends to be both GTK3DISTROFEATURES instead of either of them)
+REQUIRED_DISTRO_FEATURES = "wayland x11"
+
+EXTRA_OECONF = " \
+ --enable-gtk3 \
+ --with-tcl=${STAGING_BINDIR_CROSS} \
+ --with-tk=${STAGING_BINDIR_CROSS} \
+ --with-tirpc \
+ --disable-mime-update \
+"
+
+FILES:${PN} = "${bindir} ${datadir}"
+
+RDEPENDS:${PN} += "tk-lib"
diff --git a/meta-oe/recipes-graphics/imlib2/imlib2_git.bb b/meta-oe/recipes-graphics/imlib2/imlib2_git.bb
index 869f8123db..87e7ed4a6b 100644
--- a/meta-oe/recipes-graphics/imlib2/imlib2_git.bb
+++ b/meta-oe/recipes-graphics/imlib2/imlib2_git.bb
@@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35"
DEPENDS = "freetype "
PROVIDES = "virtual/imlib2"
-PV = "1.7.1"
-SRCREV = "01424487e360383a039dc123bc2a345fe7ea2535"
+PV = "1.12.2"
+SRCREV = "a860e34b19af6b0a73d86ddc0e4829145e18fa6e"
inherit autotools pkgconfig lib_package
@@ -28,7 +28,6 @@ PACKAGECONFIG[png] = "--with-png,--without-png,libpng"
PACKAGECONFIG[tiff] = "--with-tiff,--without-tiff,tiff"
PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp"
-PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2"
PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
PACKAGECONFIG[id3] = "--with-id3,--without-id3,libid3tag"
diff --git a/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb b/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb
deleted file mode 100644
index 27dff82df5..0000000000
--- a/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Jpeg 2000 implementation"
-HOMEPAGE = "https://jasper-software.github.io/jasper/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a80440d1d8f17d041c71c7271d6e06eb"
-
-SRC_URI = "git://github.com/jasper-software/jasper.git;protocol=https;branch=master"
-SRCREV = "fe00207dc10db1d7cc6f2757961c5c6bdfd10973"
-
-CVE_CHECK_IGNORE += "\
- CVE-2015-8751 \
-"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[jpeg] = "-DJAS_ENABLE_LIBJPEG=true, -DJAS_ENABLE_LIBJPEG=false, jpeg"
-PACKAGECONFIG[opengl] = "-DJAS_ENABLE_OPENGL=true, -DJAS_ENABLE_OPENGL=false, freeglut"
-
-EXTRA_OECMAKE:append = " -DJAS_ENABLE_SHARED=true"
-
-do_install:append() {
- chrpath -d ${D}${bindir}/jasper
- chrpath -d ${D}${bindir}/imginfo
- chrpath -d ${D}${bindir}/imgcmp
- chrpath -d ${D}${libdir}/libjasper.so.*
-}
diff --git a/meta-oe/recipes-graphics/jasper/jasper_4.1.1.bb b/meta-oe/recipes-graphics/jasper/jasper_4.1.1.bb
new file mode 100644
index 0000000000..5281980ecb
--- /dev/null
+++ b/meta-oe/recipes-graphics/jasper/jasper_4.1.1.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Jpeg 2000 implementation"
+HOMEPAGE = "https://jasper-software.github.io/jasper/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a80440d1d8f17d041c71c7271d6e06eb"
+
+SRC_URI = "git://github.com/jasper-software/jasper.git;protocol=https;branch=master"
+SRCREV = "917f7708b755d8434f70618108c1a76f1b6a0a82"
+
+CVE_STATUS[CVE-2015-8751] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+
+S = "${WORKDIR}/git"
+
+inherit cmake multilib_header
+
+do_configure:prepend() {
+ JAS_STDC_VERSION="$(echo __STDC_VERSION__ | ${CPP} -E -P -)"
+}
+
+EXTRA_OECMAKE:append = " -DJAS_STDC_VERSION=${JAS_STDC_VERSION}"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl', '', d)} \
+ jpeg"
+
+PACKAGECONFIG[jpeg] = "-DJAS_ENABLE_LIBJPEG=ON,-DJAS_ENABLE_LIBJPEG=OFF,jpeg,"
+PACKAGECONFIG[opengl] = "-DJAS_ENABLE_OPENGL=ON,-DJAS_ENABLE_OPENGL=OFF,freeglut,"
+
+do_install:append() {
+ chrpath -d ${D}${bindir}/jasper
+ chrpath -d ${D}${bindir}/imginfo
+ chrpath -d ${D}${bindir}/imgcmp
+ chrpath -d ${D}${libdir}/libjasper.so.*
+ oe_multilib_header jasper/jas_config.h
+}
+
diff --git a/meta-oe/recipes-graphics/libdecor/libdecor_0.2.2.bb b/meta-oe/recipes-graphics/libdecor/libdecor_0.2.2.bb
new file mode 100644
index 0000000000..6621389b5a
--- /dev/null
+++ b/meta-oe/recipes-graphics/libdecor/libdecor_0.2.2.bb
@@ -0,0 +1,31 @@
+SUMMARY = "libdecor - A client-side decorations library for Wayland clients"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7ae2be7fb1637141840314b51970a9f7"
+
+SRC_URI = " \
+ git://gitlab.freedesktop.org/libdecor/libdecor.git;protocol=https;branch=master \
+"
+
+DEPENDS = " \
+ cairo \
+ pango \
+ wayland \
+ wayland-native \
+ wayland-protocols \
+"
+
+S = "${WORKDIR}/git"
+SRCREV = "7807ae3480f5c6a37c5e8505d94af1e764aaf704"
+
+PACKAGECONFIG ?= "dbus ${@bb.utils.filter('DISTRO_FEATURES', 'gtk+3', d)}"
+
+PACKAGECONFIG[dbus] = "-Ddbus=enabled,-Ddbus=disabled,dbus"
+PACKAGECONFIG[demo] = "-Ddemo=true,-Ddemo=false,virtual/libegl libxkbcommon"
+PACKAGECONFIG[install_demo] = "-Dinstall_demo=true,-Dinstall_demo=false"
+PACKAGECONFIG[gtk+3] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON += "--buildtype release"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch b/meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch
index db400f7022..4836b46b11 100644
--- a/meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch
+++ b/meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -Naur xforms-1.2.3.orig/fdesign/Makefile.am xforms-1.2.3/fdesign/Makefile.am
--- xforms-1.2.3.orig/fdesign/Makefile.am 2019-02-24 12:58:51.968645873 +0000
+++ xforms-1.2.3/fdesign/Makefile.am 2019-02-24 13:00:48.500635163 +0000
diff --git a/meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch b/meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch
index c95bd18da8..9ab67b35ac 100644
--- a/meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch
+++ b/meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -Naur xforms-1.2.3.orig/lib/Makefile.am xforms-1.2.3/lib/Makefile.am
--- xforms-1.2.3.orig/lib/Makefile.am 2019-02-24 12:53:58.340678373 +0000
+++ xforms-1.2.3/lib/Makefile.am 2019-02-24 12:54:33.096674102 +0000
diff --git a/meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch b/meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch
index 73956dee9f..dc494281b2 100644
--- a/meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch
+++ b/meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -Naur xforms-1.2.3.orig/fdesign/Makefile.am xforms-1.2.3/fdesign/Makefile.am
--- xforms-1.2.3.orig/fdesign/Makefile.am 2019-02-24 13:08:48.412603250 +0000
+++ xforms-1.2.3/fdesign/Makefile.am 2019-02-24 13:09:18.412601874 +0000
diff --git a/meta-oe/recipes-graphics/libforms/libforms_1.2.4.bb b/meta-oe/recipes-graphics/libforms/libforms_1.2.4.bb
deleted file mode 100644
index 01db3c4d3d..0000000000
--- a/meta-oe/recipes-graphics/libforms/libforms_1.2.4.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "The XForms graphical interface widget library "
-HOMEPAGE = "http://savannah.nongnu.org/projects/xforms/"
-
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=ade9a053df81f5b9408d2f4f5546df86"
-
-SRC_URI = "http://download.savannah.nongnu.org/releases/xforms/xforms-${PV}.tar.gz \
- file://fix-link-to-xforms-man.patch \
- file://add-absolute-path-for-include-dir.patch \
- file://fix-path-fdesign_LDADD.patch \
- file://0001-Make-extern-declarations-in-header-file.patch \
- file://0001-Modify-include-dir.patch \
- "
-
-SRC_URI[sha256sum] = "78cc6b07071bbeaa1f906e0a22d5e9980e48f8913577bc082d661afe5cb75696"
-
-inherit autotools features_check
-
-REQUIRED_DISTRO_FEATURES = "opengl x11"
-
-S = "${WORKDIR}/xforms-${PV}"
-
-DEPENDS = "libxpm jpeg libx11 mesa"
-RDEPENDS:${PN} = "bash"
-
-EXTRA_OECONF = "--with-extra-inc=${S}/lib"
diff --git a/meta-oe/recipes-graphics/libforms/libforms_1.2.5pre1.bb b/meta-oe/recipes-graphics/libforms/libforms_1.2.5pre1.bb
new file mode 100644
index 0000000000..251c07adf0
--- /dev/null
+++ b/meta-oe/recipes-graphics/libforms/libforms_1.2.5pre1.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "The XForms graphical interface widget library "
+HOMEPAGE = "http://savannah.nongnu.org/projects/xforms/"
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=ade9a053df81f5b9408d2f4f5546df86"
+
+SRC_URI = "http://download.savannah.nongnu.org/releases/xforms/xforms-${PV}.tar.gz \
+ file://fix-link-to-xforms-man.patch \
+ file://add-absolute-path-for-include-dir.patch \
+ file://fix-path-fdesign_LDADD.patch \
+ file://0001-Make-extern-declarations-in-header-file.patch \
+ file://0001-Modify-include-dir.patch \
+ "
+
+SRC_URI[sha256sum] = "92b5e6466ea2dffca7332aec12734e65b3e961825eb3100b7d889c0d1abb4697"
+
+inherit autotools features_check
+
+REQUIRED_DISTRO_FEATURES = "opengl x11"
+
+S = "${WORKDIR}/xforms-${PV}"
+
+DEPENDS = "libxpm jpeg libx11 virtual/libgl"
+RDEPENDS:${PN} = "bash"
+
+EXTRA_OECONF = "--with-extra-inc=${S}/lib"
diff --git a/meta-oe/recipes-graphics/libglvnd/libglvnd_1.7.0.bb b/meta-oe/recipes-graphics/libglvnd/libglvnd_1.7.0.bb
new file mode 100644
index 0000000000..4094aa4fc6
--- /dev/null
+++ b/meta-oe/recipes-graphics/libglvnd/libglvnd_1.7.0.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "libglvnd is a vendor-neutral dispatch layer for arbitrating \
+OpenGL API calls between multiple vendors."
+HOMEPAGE = "https://gitlab.freedesktop.org/glvnd/libglvnd"
+LICENSE = "MIT & BSD-1-Clause & BSD-3-Clause & GPL-3.0-with-autoconf-exception"
+LIC_FILES_CHKSUM = "file://README.md;beginline=323;md5=7ac5f0111f648b92fe5427efeb08e8c4"
+
+SRC_URI = "git://git@gitlab.freedesktop.org/glvnd/libglvnd.git;protocol=https;branch=master"
+
+# v1.5.0 tag
+SRCREV = "faa23f21fc677af5792825dc30cb1ccef4bf33a6"
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+inherit meson pkgconfig features_check
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= "\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'egl gles1 gles2', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'glx', '', d)} \
+ "
+
+PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,libx11 libxext xorgproto"
+PACKAGECONFIG[glx] = "-Dglx=enabled,-Dglx=disabled,libx11 libxext xorgproto"
+PACKAGECONFIG[egl] = "-Degl=true,-Degl=false,"
+PACKAGECONFIG[gles1] = "-Dgles1=true,-Dgles1=false,"
+PACKAGECONFIG[gles2] = "-Dgles2=true,-Dgles2=false,"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-13616.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-13616.patch
index 2db67966cf..d4166a16ab 100644
--- a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-13616.patch
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-13616.patch
@@ -3,6 +3,8 @@ From: Sam Lantinga <slouken@libsdl.org>
Date: Tue, 30 Jul 2019 11:00:00 -0700
Subject: [PATCH] Fixed bug 4538 - validate image size when loading BMP files
---
+Upstream-Status: Pending
+
src/video/SDL_bmp.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2022-34568.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2022-34568.patch
new file mode 100644
index 0000000000..7561300cb3
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2022-34568.patch
@@ -0,0 +1,28 @@
+CVE: CVE-2022-34568
+Upstream-Status: Backport [https://github.com/libsdl-org/SDL-1.2/commit/d7e00208738a0bc6af302723fe64908ac35b777b ]
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+
+From d7e00208738a0bc6af302723fe64908ac35b777b Mon Sep 17 00:00:00 2001
+From: Ozkan Sezer <sezeroz@gmail.com>
+Date: Sat, 18 Jun 2022 14:55:00 +0300
+Subject: [PATCH] SDL_x11yuv.c: fix possible use-after-free
+
+Fixes: https://github.com/libsdl-org/SDL-1.2/issues/863
+---
+ src/video/x11/SDL_x11yuv.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/video/x11/SDL_x11yuv.c b/src/video/x11/SDL_x11yuv.c
+index 62698dfd9..0d5754e3e 100644
+--- a/src/video/x11/SDL_x11yuv.c
++++ b/src/video/x11/SDL_x11yuv.c
+@@ -374,8 +374,8 @@ SDL_Overlay *X11_CreateYUVOverlay(_THIS, int width, int height, Uint32 format, S
+ #ifdef PITCH_WORKAROUND
+ if ( hwdata->image != NULL && hwdata->image->pitches[0] != (width*bpp) ) {
+ /* Ajust overlay width according to pitch */
+- XFree(hwdata->image);
+ width = hwdata->image->pitches[0] / bpp;
++ XFree(hwdata->image);
+ hwdata->image = SDL_NAME(XvCreateImage)(GFX_Display, xv_port, format,
+ 0, width, height);
+ }
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-image/0001-png-img-Fix-prototypes-of-callbacks.patch b/meta-oe/recipes-graphics/libsdl/libsdl-image/0001-png-img-Fix-prototypes-of-callbacks.patch
new file mode 100644
index 0000000000..1bbfa99210
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-image/0001-png-img-Fix-prototypes-of-callbacks.patch
@@ -0,0 +1,52 @@
+From 41791738221fdb7574fc8e23f84214910cdce098 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 1 Mar 2023 21:51:40 -0800
+Subject: [PATCH] png-img: Fix prototypes of callbacks
+
+Clang-16 is flagging function pointer mismatches
+
+Upstream-Status: Inappropriate [No upstream]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ IMG_png.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/IMG_png.c b/IMG_png.c
+index 5f91f15..4d5bdb6 100644
+--- a/IMG_png.c
++++ b/IMG_png.c
+@@ -78,15 +78,15 @@
+ static struct {
+ int loaded;
+ void *handle;
+- png_infop (*png_create_info_struct) (png_structp png_ptr);
++ png_infop (*png_create_info_struct) (png_const_structp png_ptr);
+ png_structp (*png_create_read_struct) (png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn);
+ void (*png_destroy_read_struct) (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr);
+- png_uint_32 (*png_get_IHDR) (png_structp png_ptr, png_infop info_ptr, png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, int *interlace_method, int *compression_method, int *filter_method);
+- png_voidp (*png_get_io_ptr) (png_structp png_ptr);
+- png_byte (*png_get_channels) (png_structp png_ptr, png_infop info_ptr);
+- png_uint_32 (*png_get_PLTE) (png_structp png_ptr, png_infop info_ptr, png_colorp *palette, int *num_palette);
+- png_uint_32 (*png_get_tRNS) (png_structp png_ptr, png_infop info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_values);
+- png_uint_32 (*png_get_valid) (png_structp png_ptr, png_infop info_ptr, png_uint_32 flag);
++ png_uint_32 (*png_get_IHDR) (png_const_structp png_ptr, png_const_infop info_ptr, png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, int *interlace_method, int *compression_method, int *filter_method);
++ png_voidp (*png_get_io_ptr) (png_const_structp png_ptr);
++ png_byte (*png_get_channels) (png_const_structp png_ptr, png_const_infop info_ptr);
++ png_uint_32 (*png_get_PLTE) (png_const_structp png_ptr, png_infop info_ptr, png_colorp *palette, int *num_palette);
++ png_uint_32 (*png_get_tRNS) (png_const_structp png_ptr, png_infop info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_values);
++ png_uint_32 (*png_get_valid) (png_const_structp png_ptr, png_const_infop info_ptr, png_uint_32 flag);
+ void (*png_read_image) (png_structp png_ptr, png_bytepp image);
+ void (*png_read_info) (png_structp png_ptr, png_infop info_ptr);
+ void (*png_read_update_info) (png_structp png_ptr, png_infop info_ptr);
+@@ -95,7 +95,7 @@ static struct {
+ void (*png_set_packing) (png_structp png_ptr);
+ void (*png_set_read_fn) (png_structp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn);
+ void (*png_set_strip_16) (png_structp png_ptr);
+- int (*png_sig_cmp) (png_bytep sig, png_size_t start, png_size_t num_to_check);
++ int (*png_sig_cmp) (png_const_bytep sig, png_size_t start, png_size_t num_to_check);
+ #ifndef LIBPNG_VERSION_12
+ jmp_buf* (*png_set_longjmp_fn) (png_structp, png_longjmp_ptr, size_t);
+ #endif
+--
+2.39.2
+
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch b/meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch
index 5299d378eb..102cec7288 100644
--- a/meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: SDL_image-1.2.12/configure.in
===================================================================
--- SDL_image-1.2.12.orig/configure.in 2012-01-21 01:51:33.000000000 +0000
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb b/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb
index 5a93dc19a8..01137bb0ca 100644
--- a/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb
@@ -7,8 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=613734b7586e1580ef944961c6d62227"
DEPENDS = "tiff zlib libpng jpeg libsdl"
SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL_image-${PV}.tar.gz \
+ file://0001-png-img-Fix-prototypes-of-callbacks.patch \
file://configure.patch"
-SRC_URI[md5sum] = "a0f9098ebe5400f0bdc9b62e60797ecb"
SRC_URI[sha256sum] = "0b90722984561004de84847744d566809dbb9daf732a9e503b91a1b5a84e5699"
S = "${WORKDIR}/SDL_image-${PV}"
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch b/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch
index 4c9e8d094c..7330ef61aa 100644
--- a/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -Nurd SDL_mixer-1.2.12/configure.in SDL_mixer-1.2.12/configure.in
--- SDL_mixer-1.2.12/configure.in 2012-01-16 00:01:05.000000000 +0200
+++ SDL_mixer-1.2.12/configure.in 2012-12-15 04:08:04.627871456 +0200
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch b/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch
index fb3ff7e689..7911a2aa75 100644
--- a/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -Nurd SDL_net-1.2.8/Makefile.am SDL_net-1.2.8/Makefile.am
--- SDL_net-1.2.8/Makefile.am 2012-01-15 18:20:10.000000000 +0200
+++ SDL_net-1.2.8/Makefile.am 2014-08-01 21:18:52.720815807 +0300
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch b/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch
index 9718a3b94a..e491c1abce 100644
--- a/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch
@@ -3,6 +3,8 @@ From: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
Date: Wed, 17 Oct 2012 20:51:51 +0200
---
+Upstream-Status: Pending
+
configure.in | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-ttf/use.pkg-config.for.freetype2.patch b/meta-oe/recipes-graphics/libsdl/libsdl-ttf/use.pkg-config.for.freetype2.patch
index 1116c34d07..d174d7ab5c 100644
--- a/meta-oe/recipes-graphics/libsdl/libsdl-ttf/use.pkg-config.for.freetype2.patch
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-ttf/use.pkg-config.for.freetype2.patch
@@ -8,6 +8,8 @@ commit 5870bd272b0b077d0826fb900b251884c1c05061
binconfig-disabled: Add class and use
---
+Upstream-Status: Pending
+
configure.in | 38 +++++---------------------------------
1 file changed, 5 insertions(+), 33 deletions(-)
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/0001-freetype-Fix-function-signatures-to-match-without-ca.patch b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/0001-freetype-Fix-function-signatures-to-match-without-ca.patch
new file mode 100644
index 0000000000..8cb76c35d6
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/0001-freetype-Fix-function-signatures-to-match-without-ca.patch
@@ -0,0 +1,69 @@
+From 6c52693d264ca3dc8e15a92f56cf3a636639bb6c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st>
+Date: Fri, 28 Oct 2022 22:17:15 +0300
+Subject: [PATCH] freetype: Fix function signatures to match without casts
+
+Clang 16 has got a new stricter warning for casts of function types
+(see https://github.com/llvm/llvm-project/commit/1aad641c793090b4d036c03e737df2ebe2c32c57).
+
+This new warning gets included as part of the existing error
+diagnostic setting of -Wcast-function-type.
+
+This fixes errors like these:
+
+../src/hb-ft.cc:1011:34: error: cast from 'void (*)(FT_Face)' (aka 'void (*)(FT_FaceRec_ *)') to 'FT_Generic_Finalizer' (aka 'void (*)(void *)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
+ ft_face->generic.finalizer = (FT_Generic_Finalizer) hb_ft_face_finalize;
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Backport [https://github.com/harfbuzz/harfbuzz/commit/d88269c827895b38f99f7cf741fa60210d4d5169]
+---
+ src/hb-ft.cc | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/src/hb-ft.cc b/src/hb-ft.cc
+index a6beb9f0f..a35e75b18 100644
+--- a/src/hb-ft.cc
++++ b/src/hb-ft.cc
+@@ -729,8 +729,9 @@ hb_ft_face_create_referenced (FT_Face ft_face)
+ }
+
+ static void
+-hb_ft_face_finalize (FT_Face ft_face)
++hb_ft_face_finalize (void *arg)
+ {
++ FT_Face ft_face = (FT_Face) arg;
+ hb_face_destroy ((hb_face_t *) ft_face->generic.data);
+ }
+
+@@ -762,7 +763,7 @@ hb_ft_face_create_cached (FT_Face ft_face)
+ ft_face->generic.finalizer (ft_face);
+
+ ft_face->generic.data = hb_ft_face_create (ft_face, nullptr);
+- ft_face->generic.finalizer = (FT_Generic_Finalizer) hb_ft_face_finalize;
++ ft_face->generic.finalizer = hb_ft_face_finalize;
+ }
+
+ return hb_face_reference ((hb_face_t *) ft_face->generic.data);
+@@ -949,8 +950,9 @@ get_ft_library ()
+ }
+
+ static void
+-_release_blob (FT_Face ft_face)
++_release_blob (void *arg)
+ {
++ FT_Face ft_face = (FT_Face) arg;
+ hb_blob_destroy ((hb_blob_t *) ft_face->generic.data);
+ }
+
+@@ -1032,7 +1034,7 @@ hb_ft_font_set_funcs (hb_font_t *font)
+ #endif
+
+ ft_face->generic.data = blob;
+- ft_face->generic.finalizer = (FT_Generic_Finalizer) _release_blob;
++ ft_face->generic.finalizer = _release_blob;
+
+ _hb_ft_font_set_funcs (font, ft_face, true);
+ hb_ft_font_set_load_flags (font, FT_LOAD_DEFAULT | FT_LOAD_NO_HINTING);
+--
+2.39.2
+
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch
index 962c119791..bc9371553f 100644
--- a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch
+++ b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch
@@ -3,6 +3,8 @@ From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 9 May 2017 00:57:10 -0700
---
+Upstream-Status: Pending
+
Makefile.am | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.1.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.1.bb
deleted file mode 100644
index b8732b4c86..0000000000
--- a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.1.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Simple DirectMedia Layer truetype font library"
-SECTION = "libs"
-DEPENDS = "libsdl2 freetype virtual/egl"
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=771dca8728b18d39b130e19b36514371"
-
-SRC_URI = " \
- git://github.com/libsdl-org/SDL_ttf.git;branch=release-2.20.x;protocol=https \
- git://github.com/libsdl-org/freetype.git;branch=VER-2-12-1-SDL;destsuffix=git/external/freetype;name=freetype;protocol=https \
- git://github.com/libsdl-org/harfbuzz.git;branch=2.9.1-SDL;destsuffix=git/external/harfbuzz;name=harfbuzz;protocol=https \
- file://automake_foreign.patch \
-"
-SRCREV = "0a652b598625d16ea7016665095cb1e9bce9ef4f"
-SRCREV_freetype = "6fc77cee03e078e97afcee0c0e06a2d3274b9a29"
-SRCREV_harfbuzz = "6022fe2f68d028ee178284f297b3902ffdf65b03"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig features_check
-
-# links to libGL.so
-REQUIRED_DISTRO_FEATURES += "opengl"
-
-do_configure:prepend() {
- # Removing these files fixes a libtool version mismatch.
- MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
-
- for i in ${MACROS}; do
- rm -f ${S}/acinclude/$i
- done
-}
-ASNEEDED = ""
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.2.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.2.bb
new file mode 100644
index 0000000000..6cd4a48aa8
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.2.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Simple DirectMedia Layer truetype font library"
+SECTION = "libs"
+DEPENDS = "libsdl2 freetype virtual/egl"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a41cbf59bdea749fe34c1af6d3615f68"
+
+SRC_URI = " \
+ git://github.com/libsdl-org/SDL_ttf.git;branch=release-2.20.x;protocol=https \
+ git://github.com/libsdl-org/freetype.git;branch=VER-2-12-1-SDL;destsuffix=git/external/freetype;name=freetype;protocol=https \
+ git://github.com/libsdl-org/harfbuzz.git;branch=2.9.1-SDL;destsuffix=git/external/harfbuzz;name=harfbuzz;protocol=https \
+ file://0001-freetype-Fix-function-signatures-to-match-without-ca.patch;patchdir=external/harfbuzz \
+ file://automake_foreign.patch \
+"
+SRCREV = "89d1692fd8fe91a679bb943d377bfbd709b52c23"
+SRCREV_freetype = "6fc77cee03e078e97afcee0c0e06a2d3274b9a29"
+SRCREV_harfbuzz = "43931e3e596c04044861770b831c8f9452e2d3b0"
+
+SRCREV_FORMAT .= "_freetype_harfbuzz"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig features_check
+
+# links to libGL.so
+REQUIRED_DISTRO_FEATURES += "opengl"
+
+do_configure:prepend() {
+ # Removing these files fixes a libtool version mismatch.
+ MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+
+ for i in ${MACROS}; do
+ rm -f ${S}/acinclude/$i
+ done
+}
+ASNEEDED = ""
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb b/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb
index 50c501574b..4fc4679f7f 100644
--- a/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb
+++ b/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb
@@ -10,7 +10,6 @@ SECTION = "libs"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=27818cd7fd83877a8e3ef82b82798ef4"
-PR = "r3"
SRC_URI = "http://www.libsdl.org/release/SDL-${PV}.tar.gz \
file://libsdl-1.2.15-xdata32.patch \
@@ -26,6 +25,7 @@ SRC_URI = "http://www.libsdl.org/release/SDL-${PV}.tar.gz \
file://CVE-2019-7638.patch \
file://CVE-2019-7576.patch \
file://CVE-2019-13616.patch \
+ file://CVE-2022-34568.patch \
"
UPSTREAM_CHECK_REGEX = "SDL-(?P<pver>\d+(\.\d+)+)\.tar"
@@ -81,5 +81,4 @@ do_configure:prepend() {
BBCLASSEXTEND = "native nativesdk"
-#CVE-2019-14906 is a RHEL specific vulnerability.
-CVE_CHECK_IGNORE += "CVE-2019-14906"
+CVE_STATUS[CVE-2019-14906] = "not-applicable-platform: Applies on RHEL only"
diff --git a/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb b/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb
deleted file mode 100644
index 93f6951739..0000000000
--- a/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-DESCRIPTION = "library for easy implementation of a RDP/VNC server"
-HOMEPAGE = "https://libvnc.github.io"
-SECTION = "libs"
-PRIORITY = "optional"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f"
-
-# ffmpeg support is not currently compatible with ffmpeg 5.0
-PACKAGECONFIG ??= " \
- 24bpp \
- filetransfer \
- gcrypt \
- gnutls \
- jpeg \
- lzo \
- png \
- pthread \
- ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '',d)} \
- sdl \
- websockets \
- zlib \
-"
-
-PACKAGECONFIG[24bpp] = "-DWITH_24BPP=ON,-DWITH_24BPP=OFF,"
-PACKAGECONFIG[filetransfer] = "-DWITH_TIGHTVNC_FILETRANSFER=ON,-DWITH_TIGHTVNC_FILETRANSFER=OFF,"
-PACKAGECONFIG[ffmpeg] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,ffmpeg,ffmpeg"
-PACKAGECONFIG[gcrypt] = "-DWITH_GCRYPT=ON,-DWITH_GCRYPT=OFF,libgcrypt,libgcrypt"
-PACKAGECONFIG[gnutls] = "-DWITH_GNUTLS=ON,-DWITH_GNUTLS=OFF,gnutls"
-PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg"
-PACKAGECONFIG[ipv6] = "-DWITH_IPv6=ON,-DWITH_IPv6=OFF,"
-PACKAGECONFIG[lzo] = "-DWITH_LZO=ON,-DWITH_LZO=OFF,lzo"
-PACKAGECONFIG[openssl] = "-DWITH_OPENSSL=ON,-DWITH_OPENSSL=OFF,openssl"
-PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,libpng"
-PACKAGECONFIG[pthread] = "-DWITH_THREADS=ON,-DWITH_THREADS=OFF,"
-PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd"
-PACKAGECONFIG[sasl] = "-DWITH_SASL=ON,-DWITH_SASL=OFF,cyrus-sasl"
-PACKAGECONFIG[sdl] = "-DWITH_SDL=ON,-DWITH_SDL=OFF,libsdl2"
-PACKAGECONFIG[websockets] = "-DWITH_WEBSOCKETS=ON,-DWITH_WEBSOCKETS=OFF,"
-PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib"
-
-PACKAGE_BEFORE_PN = "libvncclient"
-FILES:libvncclient = "${libdir}/libvncclient.*"
-
-inherit cmake
-
-SRC_URI = "git://github.com/LibVNC/libvncserver;branch=master;protocol=https"
-SRCREV = "2aa20dad4c23c18948d3f63b33f9dfec1f837729"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECMAKE = "-DMAKE_INSTALL_LIBDIR=${libdir}"
diff --git a/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.14.bb b/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.14.bb
new file mode 100644
index 0000000000..ce01593b8b
--- /dev/null
+++ b/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.14.bb
@@ -0,0 +1,56 @@
+DESCRIPTION = "library for easy implementation of a RDP/VNC server"
+HOMEPAGE = "https://libvnc.github.io"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f"
+
+# ffmpeg support is not currently compatible with ffmpeg 5.0
+PACKAGECONFIG ??= " \
+ 24bpp \
+ filetransfer \
+ gcrypt \
+ gnutls \
+ jpeg \
+ lzo \
+ png \
+ pthread \
+ ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '',d)} \
+ sdl \
+ websockets \
+ zlib \
+"
+
+PACKAGECONFIG[24bpp] = "-DWITH_24BPP=ON,-DWITH_24BPP=OFF,"
+PACKAGECONFIG[filetransfer] = "-DWITH_TIGHTVNC_FILETRANSFER=ON,-DWITH_TIGHTVNC_FILETRANSFER=OFF,"
+PACKAGECONFIG[ffmpeg] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,ffmpeg,ffmpeg"
+PACKAGECONFIG[gcrypt] = "-DWITH_GCRYPT=ON,-DWITH_GCRYPT=OFF,libgcrypt,libgcrypt"
+PACKAGECONFIG[gnutls] = "-DWITH_GNUTLS=ON,-DWITH_GNUTLS=OFF,gnutls"
+PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg"
+PACKAGECONFIG[ipv6] = "-DWITH_IPv6=ON,-DWITH_IPv6=OFF,"
+PACKAGECONFIG[lzo] = "-DWITH_LZO=ON,-DWITH_LZO=OFF,lzo"
+PACKAGECONFIG[openssl] = "-DWITH_OPENSSL=ON,-DWITH_OPENSSL=OFF,openssl"
+PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,libpng"
+PACKAGECONFIG[pthread] = "-DWITH_THREADS=ON,-DWITH_THREADS=OFF,"
+PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd"
+PACKAGECONFIG[sasl] = "-DWITH_SASL=ON,-DWITH_SASL=OFF,cyrus-sasl"
+PACKAGECONFIG[sdl] = "-DWITH_SDL=ON,-DWITH_SDL=OFF,libsdl2"
+PACKAGECONFIG[websockets] = "-DWITH_WEBSOCKETS=ON,-DWITH_WEBSOCKETS=OFF,"
+PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib"
+
+PACKAGE_BEFORE_PN = "libvncclient"
+FILES:libvncclient = "${libdir}/libvncclient.*"
+
+inherit cmake
+
+SRC_URI = "git://github.com/LibVNC/libvncserver;branch=master;protocol=https"
+SRCREV = "10e9eb75f73e973725dc75c373de5d89807af028"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = "-DMAKE_INSTALL_LIBDIR=${libdir}"
+
+do_install:append() {
+ sed -i -e 's|${STAGING_DIR_HOST}||g' ${D}${libdir}/cmake/LibVNCServer/LibVNCServerTargets.cmake
+}
diff --git a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-libyui-ncurses-Replace-off64_t-with-off_t-and-stat64.patch b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-libyui-ncurses-Replace-off64_t-with-off_t-and-stat64.patch
new file mode 100644
index 0000000000..b29e5dc7b2
--- /dev/null
+++ b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-libyui-ncurses-Replace-off64_t-with-off_t-and-stat64.patch
@@ -0,0 +1,176 @@
+From b81fb7942ab77b0bf6791e5fd98411dd68f133d9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 18 Dec 2022 15:13:00 -0800
+Subject: [PATCH] libyui-ncurses: Replace off64_t with off_t and stat64 with stat
+
+stat is same as stat64 when 64bit off_t is used.
+
+Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/88]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 2 +-
+ src/NCAskForFile.cc | 6 +++---
+ src/NCFileSelection.cc | 24 ++++++++++++------------
+ src/NCFileSelection.h | 6 +++---
+ 4 files changed, 19 insertions(+), 19 deletions(-)
+
+diff --git a/CMakeLists.txt b/libyui-ncurses/CMakeLists.txt
+index b10eab8e..2000bb58 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -58,7 +58,7 @@ set( CMAKE_INSTALL_MESSAGE LAZY ) # Suppress "up-to-date" messages during "make
+ # Initialize compiler flags for all targets in all subdirectories
+ add_compile_options( "-Wall" )
+ add_compile_options( "-Os" ) # Optimize for size (overrides CMake's -O3 in RELEASE builds)
+-
++add_compile_options( "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" ) # Enable largefile support
+ if ( WERROR )
+ add_compile_options( "-Werror" )
+ endif()
+diff --git a/src/NCAskForFile.cc b/libyui-ncurses/src/NCAskForFile.cc
+index aba6e0a6..44bb81bc 100644
+--- a/src/NCAskForFile.cc
++++ b/src/NCAskForFile.cc
+@@ -73,8 +73,8 @@ std::string NCAskForFile::checkIniDir( std::string iniDir )
+ {
+ std::string dname = "";
+
+- struct stat64 statInfo;
+- stat64( iniDir.c_str(), &statInfo );
++ struct stat statInfo;
++ stat( iniDir.c_str(), &statInfo );
+
+ if ( S_ISDIR( statInfo.st_mode ) )
+ {
+@@ -90,7 +90,7 @@ std::string NCAskForFile::checkIniDir( std::string iniDir )
+ && pos != 0 )
+ {
+ std::string dir = iniDir.substr( 0, pos );
+- stat64( dir.c_str(), &statInfo );
++ stat( dir.c_str(), &statInfo );
+
+ if ( S_ISDIR( statInfo.st_mode ) )
+ {
+diff --git a/src/NCFileSelection.cc b/libyui-ncurses/src/NCFileSelection.cc
+index 3eb9c908..8894dc72 100644
+--- a/src/NCFileSelection.cc
++++ b/src/NCFileSelection.cc
+@@ -46,7 +46,7 @@ using std::list;
+
+
+ NCFileInfo::NCFileInfo( string fileName,
+- struct stat64 * statInfo,
++ struct stat * statInfo,
+ bool link )
+ {
+ _name = fileName;
+@@ -146,7 +146,7 @@ NCFileInfo::NCFileInfo()
+ _mode = ( mode_t )0;
+ _device = ( dev_t )0;
+ _links = ( nlink_t )0;
+- _size = ( off64_t )0;
++ _size = ( off_t )0;
+ _mtime = ( time_t )0;
+ }
+
+@@ -177,11 +177,11 @@ NCFileSelection::NCFileSelection( YWidget * parent,
+ {
+ SetSepChar( ' ' );
+
+- struct stat64 statInfo;
++ struct stat statInfo;
+
+ if ( !iniDir.empty() )
+ {
+- stat64( iniDir.c_str(), &statInfo );
++ stat( iniDir.c_str(), &statInfo );
+ }
+
+ if ( iniDir.empty()
+@@ -559,8 +559,8 @@ NCursesEvent NCFileTable::wHandleInput( wint_t key )
+ bool NCFileTable::fillList()
+ {
+
+- struct stat64 statInfo;
+- struct stat64 linkInfo;
++ struct stat statInfo;
++ struct stat linkInfo;
+ struct dirent * entry;
+ list<string> tmpList;
+ list<string>::iterator it;
+@@ -592,7 +592,7 @@ bool NCFileTable::fillList()
+ {
+ string fullName = currentDir + "/" + ( *it );
+
+- if ( lstat64( fullName.c_str(), &statInfo ) == 0 )
++ if ( lstat( fullName.c_str(), &statInfo ) == 0 )
+ {
+ if ( S_ISREG( statInfo.st_mode ) || S_ISBLK( statInfo.st_mode ) )
+ {
+@@ -604,7 +604,7 @@ bool NCFileTable::fillList()
+ }
+ else if ( S_ISLNK( statInfo.st_mode ) )
+ {
+- if ( stat64( fullName.c_str(), &linkInfo ) == 0 )
++ if ( stat( fullName.c_str(), &linkInfo ) == 0 )
+ {
+ if ( S_ISREG( linkInfo.st_mode ) || S_ISBLK( linkInfo.st_mode ) )
+ {
+@@ -701,8 +701,8 @@ void NCDirectoryTable::fillHeader()
+
+ bool NCDirectoryTable::fillList()
+ {
+- struct stat64 statInfo;
+- struct stat64 linkInfo;
++ struct stat statInfo;
++ struct stat linkInfo;
+ struct dirent * entry;
+ list<string> tmpList;
+ list<string>::iterator it;
+@@ -734,7 +734,7 @@ bool NCDirectoryTable::fillList()
+ {
+ string fullName = currentDir + "/" + ( *it );
+
+- if ( lstat64( fullName.c_str(), &statInfo ) == 0 )
++ if ( lstat( fullName.c_str(), &statInfo ) == 0 )
+ {
+ if ( S_ISDIR( statInfo.st_mode ) )
+ {
+@@ -746,7 +746,7 @@ bool NCDirectoryTable::fillList()
+ }
+ else if ( S_ISLNK( statInfo.st_mode ) )
+ {
+- if ( stat64( fullName.c_str(), &linkInfo ) == 0 )
++ if ( stat( fullName.c_str(), &linkInfo ) == 0 )
+ {
+ if ( S_ISDIR( linkInfo.st_mode ) )
+ {
+diff --git a/src/NCFileSelection.h b/libyui-ncurses/src/NCFileSelection.h
+index 0569215d..5c459d62 100644
+--- a/src/NCFileSelection.h
++++ b/src/NCFileSelection.h
+@@ -44,10 +44,10 @@
+ struct NCFileInfo
+ {
+ /**
+- * Constructor from a stat buffer (i.e. based on an lstat64() call).
++ * Constructor from a stat buffer (i.e. based on an lstat() call).
+ **/
+ NCFileInfo( std::string fileName,
+- struct stat64 * statInfo,
++ struct stat * statInfo,
+ bool link = false );
+
+ NCFileInfo();
+@@ -65,7 +65,7 @@ struct NCFileInfo
+ dev_t _device; // device this object resides on
+ mode_t _mode; // file permissions + object type
+ nlink_t _links; // number of links
+- off64_t _size; // size in bytes
++ off_t _size; // size in bytes
+ time_t _mtime; // modification time
+
+ bool isDir() { return (( S_ISDIR( _mode ) ) ? true : false ); }
+--
+2.39.0
+
diff --git a/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.1.1.bb b/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.1.1.bb
deleted file mode 100644
index 8eb77291ab..0000000000
--- a/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.1.1.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SUMMARY = "Character Based User Interface for libyui"
-LICENSE = "LGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://../COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
- file://../COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \
-"
-
-SRC_URI = "git://github.com/libyui/libyui.git;branch=master;protocol=https"
-
-SRC_URI:append:class-target = " file://0001-Fix-the-error-of-can-t-find-header-file.patch"
-
-SRCREV = "718ac672374a2b0f50cbc7d637d90e6471babc3d"
-
-S = "${WORKDIR}/git/libyui-ncurses"
-
-inherit cmake gettext pkgconfig
-
-DEPENDS += "boost libyui ncurses"
-
-BBCLASSEXTEND = "nativesdk"
-
-EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RELWITHDEBINFO -DWERROR=OFF"
-
-CXXFLAGS += "-DNCURSES_WIDECHAR"
-
-do_configure:prepend () {
- cd ${S}
- if [ -e ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so ]; then
- mkdir -p ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/
- cp ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so* ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/
- fi
- cd -
- sed -i -e "s#\${YPREFIX}#\${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${S}/CMakeLists.txt
-}
-
-do_install:append () {
- if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then
- mv ${D}/usr/lib64 ${D}/usr/lib
- fi
-}
-
-do_install:append:class-nativesdk () {
- mkdir -p ${D}/${base_prefix}
- mv ${D}/usr ${D}/${base_prefix}
-}
-
-FILES:${PN} += "${datadir}/*"
-
-FILES:${PN}-dev += "${libdir}/*"
diff --git a/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.2.3.bb b/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.2.3.bb
new file mode 100644
index 0000000000..bcc5ef33e2
--- /dev/null
+++ b/meta-oe/recipes-graphics/libyui/libyui-ncurses_4.2.3.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Character Based User Interface for libyui"
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://../COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://../COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \
+"
+
+SRC_URI = "git://github.com/libyui/libyui.git;branch=master;protocol=https \
+ file://0001-libyui-ncurses-Replace-off64_t-with-off_t-and-stat64.patch \
+ "
+
+SRC_URI:append:class-target = " file://0001-Fix-the-error-of-can-t-find-header-file.patch"
+
+SRCREV = "dabdcd9cc6a0058fd6966d7d2e19d508debcc0ac"
+
+S = "${WORKDIR}/git/libyui-ncurses"
+
+inherit cmake gettext pkgconfig
+
+DEPENDS += "boost libyui ncurses"
+
+BBCLASSEXTEND = "nativesdk"
+
+EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RELWITHDEBINFO -DWERROR=OFF"
+
+CXXFLAGS += "-DNCURSES_WIDECHAR"
+
+do_configure:prepend () {
+ cd ${S}
+ if [ -e ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so ]; then
+ mkdir -p ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/
+ cp ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib/libyui.so* ${PKG_CONFIG_SYSROOT_DIR}${base_prefix}/usr/lib64/
+ fi
+ cd -
+ sed -i -e "s#\${YPREFIX}#\${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${S}/CMakeLists.txt
+}
+
+do_install:append () {
+ if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then
+ mv ${D}/usr/lib64 ${D}/usr/lib
+ fi
+}
+
+do_install:append:class-nativesdk () {
+ mkdir -p ${D}/${base_prefix}
+ mv ${D}/usr ${D}/${base_prefix}
+}
+
+FILES:${PN} += "${datadir}/*"
+
+FILES:${PN}-dev += "${libdir}/*"
diff --git a/meta-oe/recipes-graphics/libyui/libyui_4.1.1.bb b/meta-oe/recipes-graphics/libyui/libyui_4.1.1.bb
deleted file mode 100644
index 4778561662..0000000000
--- a/meta-oe/recipes-graphics/libyui/libyui_4.1.1.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Libyui is a widget abstraction library providing Qt, GTK and ncurses frontends."
-LICENSE = "LGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://../COPYING.gpl-3;md5=d32239bcb673463ab874e80d47fae504 \
- file://../COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \
- file://../COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
- "
-
-SRC_URI = "git://github.com/libyui/libyui.git;branch=master;protocol=https \
- file://0001-Fix-build-with-clang.patch \
- file://0001-Use-relative-install-paths-for-CMake.patch \
- "
-
-SRCREV = "718ac672374a2b0f50cbc7d637d90e6471babc3d"
-
-S = "${WORKDIR}/git/libyui"
-
-inherit cmake gettext pkgconfig
-
-DEPENDS += "boost"
-
-EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RELWITHDEBINFO -DWERROR=OFF"
-
-BBCLASSEXTEND = "native nativesdk"
-
-do_install:append () {
- if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then
- mv ${D}/usr/lib64 ${D}/usr/lib
- fi
-}
-
-do_install:append:class-nativesdk () {
- mkdir -p ${D}/${base_prefix}
- mv ${D}/usr ${D}/${base_prefix}
-}
-
-FILES:${PN}-dev = "${libdir}/* ${includedir}/yui*"
diff --git a/meta-oe/recipes-graphics/libyui/libyui_4.2.3.bb b/meta-oe/recipes-graphics/libyui/libyui_4.2.3.bb
new file mode 100644
index 0000000000..939f3f36e5
--- /dev/null
+++ b/meta-oe/recipes-graphics/libyui/libyui_4.2.3.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Libyui is a widget abstraction library providing Qt, GTK and ncurses frontends."
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://../COPYING.gpl-3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://../COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \
+ file://../COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ "
+
+SRC_URI = "git://github.com/libyui/libyui.git;branch=master;protocol=https \
+ file://0001-Fix-build-with-clang.patch \
+ file://0001-Use-relative-install-paths-for-CMake.patch \
+ "
+
+SRCREV = "dabdcd9cc6a0058fd6966d7d2e19d508debcc0ac"
+
+S = "${WORKDIR}/git/libyui"
+
+inherit cmake gettext pkgconfig
+
+DEPENDS += "boost"
+
+EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RELWITHDEBINFO -DWERROR=OFF"
+
+BBCLASSEXTEND = "native nativesdk"
+
+do_install:append () {
+ if [ "${libdir}" = "${base_prefix}/usr/lib" ] && [ -d ${D}/usr/lib64 ]; then
+ mv ${D}/usr/lib64 ${D}/usr/lib
+ fi
+}
+
+do_install:append:class-nativesdk () {
+ mkdir -p ${D}/${base_prefix}
+ mv ${D}/usr ${D}/${base_prefix}
+}
+
+FILES:${PN}-dev = "${libdir}/* ${includedir}/yui*"
diff --git a/meta-oe/recipes-graphics/lvgl/dialog-lvgl_git.bb b/meta-oe/recipes-graphics/lvgl/dialog-lvgl_git.bb
deleted file mode 100644
index 7e24c51f28..0000000000
--- a/meta-oe/recipes-graphics/lvgl/dialog-lvgl_git.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-FileCopyrightText: Huawei Inc.
-# SPDX-License-Identifier: MIT
-
-SRC_URI = "gitsm://git.ostc-eu.org/rzr/dialog-lvgl;destsuffix=${S};protocol=https;nobranch=1"
-SRCREV = "5d2121457a6988c97cacb0790594440693fc3d29"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8ce0a84e5276f01364119c873b712c4f"
-AUTHOR = "Philippe Coval <philippe.coval.ext@huawei.com>"
-
-DEPENDS += "lvgl"
-DEPENDS += "lv-drivers"
-
-SUMMARY = "Basic UI utility to be used in scripts"
-DESCRIPTION = "Inspired by ncurses' dialog, implemented using LVGL"
-HOMEPAGE = "https://git.ostc-eu.org/rzr/dialog-lvgl/-/wikis/"
-
-REQUIRED_DISTRO_FEATURES = "wayland"
-
-inherit pkgconfig
-inherit features_check
-
-EXTRA_OEMAKE += "sysroot=${RECIPE_SYSROOT}"
-EXTRA_OEMAKE += "DESTDIR=${D}"
-EXTRA_OEMAKE += "lvgl_driver=wayland"
-
-do_install() {
- oe_runmake install
-}
diff --git a/meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch b/meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch
new file mode 100644
index 0000000000..bd619b1572
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch
@@ -0,0 +1,63 @@
+From 5b7f657e8ad656e0854f2252b3bd482b966d650c Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Wed, 13 Mar 2024 02:12:30 +0100
+Subject: [PATCH 2/2] fix(sdl): handle both LV_IMAGE_SRC_FILE and
+ LV_IMAGE_SRC_VARIABLE
+
+The SDL image draw code currently assumes that the image source is a
+filename and attempts to open that filename. This is not necessarily
+the case, e.g. the lv_demo_fb uses encoded images which are of type
+LV_IMAGE_SRC_VARIABLE and instead of filename, come with a buffer of
+pixels. Handle the later using SDL_CreateRGBSurfaceFrom().
+
+Upstream-Status: Submitted [https://github.com/lvgl/lvgl/pull/5852]
+Signed-off-by: Marek Vasut <marex@denx.de>
+---
+ src/draw/sdl/lv_draw_sdl.c | 30 +++++++++++++++++++++++++++---
+ 1 file changed, 27 insertions(+), 3 deletions(-)
+
+diff --git a/src/draw/sdl/lv_draw_sdl.c b/src/draw/sdl/lv_draw_sdl.c
+index cbb555d94..5eee5b725 100644
+--- a/src/draw/sdl/lv_draw_sdl.c
++++ b/src/draw/sdl/lv_draw_sdl.c
+@@ -224,10 +224,34 @@ static bool draw_to_texture(lv_draw_sdl_unit_t * u, cache_data_t * data)
+ break;
+ case LV_DRAW_TASK_TYPE_IMAGE: {
+ lv_draw_image_dsc_t * image_dsc = task->draw_dsc;
+- const char * path = image_dsc->src;
+- SDL_Surface * surface = IMG_Load(&path[2]);
++ lv_image_src_t type = lv_image_src_get_type(image_dsc->src);
++ SDL_Surface * surface = NULL;
++ if(type == LV_IMAGE_SRC_FILE) {
++ const char * path = image_dsc->src;
++ surface = IMG_Load(&path[2]);
++ }
++ else if(type == LV_IMAGE_SRC_VARIABLE) {
++ lv_image_dsc_t * lvd = image_dsc->src;
++ surface = SDL_CreateRGBSurfaceFrom(lvd->data,
++ lvd->header.w, lvd->header.h,
++ LV_COLOR_FORMAT_GET_BPP(lvd->header.cf),
++ lvd->header.stride,
++#if SDL_BYTEORDER == SDL_LIL_ENDIAN
++ 0x00FF0000,
++ 0x0000FF00,
++ 0x000000FF,
++ 0xFF000000
++#else
++ 0x0000FF00,
++ 0x00FF0000,
++ 0xFF000000,
++ 0x000000FF
++#endif
++ );
++ }
++
+ if(surface == NULL) {
+- fprintf(stderr, "could not load image: %s\n", IMG_GetError());
++ fprintf(stderr, "could not load image\n");
+ return false;
+ }
+
+--
+2.43.0
+
diff --git a/meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch b/meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch
new file mode 100644
index 0000000000..73c01cb590
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch
@@ -0,0 +1,45 @@
+From 85d90749a10b5f91741d37b75825935bf7cc4fb3 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Tue, 12 Mar 2024 03:00:37 +0100
+Subject: [PATCH 3/6] Make fbdev device node runtime configurable via
+ environment variable
+
+Test whether $LV_VIDEO_CARD environment variable is non-NULL and in
+case it is, use it as the video card file in lv_linux_fbdev_set_file().
+Otherwise fall back to /dev/fb0, i.e. the current behavior. This way,
+it is possible to test LVGL on systems with multiple fbdev devices.
+
+Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47]
+Signed-off-by: Marek Vasut <marex@denx.de>
+---
+ main.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/main.c b/main.c
+index 9775b9c..b64a098 100644
+--- a/main.c
++++ b/main.c
+@@ -4,13 +4,19 @@
+ #include <pthread.h>
+ #include <time.h>
+
++static const char *lv_linux_get_video_card_node(const char *videocard_default)
++{
++ return getenv("LV_VIDEO_CARD") ? : videocard_default;
++}
++
+ int main(void)
+ {
++ const char *videocard = lv_linux_get_video_card_node("/dev/fb0");
+ lv_init();
+
+ /*Linux frame buffer device init*/
+ lv_display_t * disp = lv_linux_fbdev_create();
+- lv_linux_fbdev_set_file(disp, "/dev/fb0");
++ lv_linux_fbdev_set_file(disp, videocard);
+
+ /*Create a Demo*/
+ lv_demo_widgets();
+--
+2.43.0
+
diff --git a/meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch b/meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch
new file mode 100644
index 0000000000..d24d150c06
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch
@@ -0,0 +1,52 @@
+From 593da8e11cc5029773ad330b5d7633ee9f2fba95 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Tue, 12 Mar 2024 18:09:42 +0100
+Subject: [PATCH 4/6] Factor out fbdev initialization code
+
+Pull fbdev initialization code into separate function and add ifdef
+around it, so it can be conditionally compiled in. This is done in
+preparation for addition of other backend initialization example
+code.
+
+Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47]
+Signed-off-by: Marek Vasut <marex@denx.de>
+---
+ main.c | 18 ++++++++++++++----
+ 1 file changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/main.c b/main.c
+index b64a098..288519c 100644
+--- a/main.c
++++ b/main.c
+@@ -9,14 +9,24 @@ static const char *lv_linux_get_video_card_node(const char *videocard_default)
+ return getenv("LV_VIDEO_CARD") ? : videocard_default;
+ }
+
+-int main(void)
++#if LV_USE_LINUX_FBDEV
++static void lv_linux_disp_init(void)
+ {
+ const char *videocard = lv_linux_get_video_card_node("/dev/fb0");
+- lv_init();
+-
+- /*Linux frame buffer device init*/
+ lv_display_t * disp = lv_linux_fbdev_create();
++
+ lv_linux_fbdev_set_file(disp, videocard);
++}
++#else
++#error Unsupported configuration
++#endif
++
++int main(void)
++{
++ lv_init();
++
++ /*Linux display device init*/
++ lv_linux_disp_init();
+
+ /*Create a Demo*/
+ lv_demo_widgets();
+--
+2.43.0
+
diff --git a/meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch b/meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch
new file mode 100644
index 0000000000..9ee7a7f19d
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch
@@ -0,0 +1,59 @@
+From dabf40559428733413432afa29598bc145aa6636 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Tue, 12 Mar 2024 03:08:13 +0100
+Subject: [PATCH 5/6] Add DRM/KMS example support
+
+Extend the main.c to support both legacy fbdev and DRM/KMS initialization.
+
+To use legacy fbdev support, adjust lv_conf.h as follows:
+LV_USE_LINUX_FBDEV=1
+LV_USE_LINUX_DRM=0
+
+To use DRM/KMS support, adjust lv_conf.h as follows:
+LV_USE_LINUX_FBDEV=0
+LV_USE_LINUX_DRM=1
+
+Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47]
+Signed-off-by: Marek Vasut <marex@denx.de>
+---
+ CMakeLists.txt | 5 ++++-
+ main.c | 8 ++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d91b196..c1cfb7f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -12,6 +12,9 @@ target_include_directories(lvgl PUBLIC ${PROJECT_SOURCE_DIR})
+
+ add_executable(main main.c mouse_cursor_icon.c)
+
+-target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} m pthread)
++include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake)
++include_directories(${Libdrm_INCLUDE_DIRS})
++
++target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${Libdrm_LIBRARIES} m pthread)
+ add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main)
+
+diff --git a/main.c b/main.c
+index 288519c..ab4e936 100644
+--- a/main.c
++++ b/main.c
+@@ -17,6 +17,14 @@ static void lv_linux_disp_init(void)
+
+ lv_linux_fbdev_set_file(disp, videocard);
+ }
++#elif LV_USE_LINUX_DRM
++static void lv_linux_disp_init(void)
++{
++ const char *videocard = lv_linux_get_video_card_node("/dev/dri/card0");
++ lv_display_t * disp = lv_linux_drm_create();
++
++ lv_linux_drm_set_file(disp, videocard, -1);
++}
+ #else
+ #error Unsupported configuration
+ #endif
+--
+2.43.0
+
diff --git a/meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch b/meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch
new file mode 100644
index 0000000000..691ee80b59
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch
@@ -0,0 +1,69 @@
+From b202ce51f7b68c460fcd1b6d9c3ffa8aaf2baaf6 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Tue, 12 Mar 2024 19:05:38 +0100
+Subject: [PATCH 6/6] Add SDL2 example support
+
+Extend the main.c to support both legacy fbdev, DRM/KMS, SDL2 initialization.
+The SDL2 window resolution can be configured using environment variables
+LV_VIDEO_WIDTH and LV_VIDEO_HEIGHT and defaults to 800 x 480 .
+
+To use legacy fbdev support, adjust lv_conf.h as follows:
+LV_USE_LINUX_FBDEV=1
+LV_USE_LINUX_DRM=0
+LV_USE_SDL=0
+
+To use DRM/KMS support, adjust lv_conf.h as follows:
+LV_USE_LINUX_FBDEV=0
+LV_USE_LINUX_DRM=1
+LV_USE_SDL=0
+
+To use SDL2 support, adjust lv_conf.h as follows:
+LV_USE_LINUX_FBDEV=0
+LV_USE_LINUX_DRM=0
+LV_USE_SDL=1
+
+Upstream-Status: Submitted [https://github.com/lvgl/lv_port_linux_frame_buffer/pull/47]
+Signed-off-by: Marek Vasut <marex@denx.de>
+---
+ CMakeLists.txt | 6 +++++-
+ main.c | 8 ++++++++
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c1cfb7f..658193f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -15,6 +15,10 @@ add_executable(main main.c mouse_cursor_icon.c)
+ include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake)
+ include_directories(${Libdrm_INCLUDE_DIRS})
+
+-target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${Libdrm_LIBRARIES} m pthread)
++find_package(SDL2)
++find_package(SDL2_image)
++include_directories(${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS})
++
++target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES} ${Libdrm_LIBRARIES} m pthread)
+ add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main)
+
+diff --git a/main.c b/main.c
+index ab4e936..4b66ebc 100644
+--- a/main.c
++++ b/main.c
+@@ -25,6 +25,14 @@ static void lv_linux_disp_init(void)
+
+ lv_linux_drm_set_file(disp, videocard, -1);
+ }
++#elif LV_USE_SDL
++static void lv_linux_disp_init(void)
++{
++ const int width = atoi(getenv("LV_VIDEO_WIDTH") ? : "800");
++ const int height = atoi(getenv("LV_VIDEO_HEIGHT") ? : "480");
++
++ lv_sdl_window_create(width, height);
++}
+ #else
+ #error Unsupported configuration
+ #endif
+--
+2.43.0
+
diff --git a/meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch b/meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch
new file mode 100644
index 0000000000..6997d84153
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch
@@ -0,0 +1,68 @@
+From 40657a770baadfff30abfecf7638e7b1c340db4d Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Thu, 14 Mar 2024 03:23:10 +0100
+Subject: [PATCH] fix(cmake): generate versioned shared libraries
+
+Add missing version suffix to shared libraries. Currently the filename of
+generated shared libraries is only liblvgl.so, which prevents coexistence
+of different versions of LVGL on the same system. Set VERSION and SOVERSION
+to make cmake add the version suffix to generated shared libraries. That
+changes the filename to liblvgl.so.9.0.0 and includes symlink with major
+ABI version, i.e. liblvgl.so.9 .
+
+Upstream-Status: Submitted [https://github.com/lvgl/lvgl/pull/5865]
+Signed-off-by: Marek Vasut <marex@denx.de>
+---
+ env_support/cmake/custom.cmake | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/env_support/cmake/custom.cmake b/env_support/cmake/custom.cmake
+index 9800468eb..6f33f1cc8 100644
+--- a/env_support/cmake/custom.cmake
++++ b/env_support/cmake/custom.cmake
+@@ -1,3 +1,6 @@
++set(LVGL_VERSION "9.0.0")
++set(LVGL_SOVERSION "9")
++
+ # Option to define LV_LVGL_H_INCLUDE_SIMPLE, default: ON
+ option(LV_LVGL_H_INCLUDE_SIMPLE
+ "Use #include \"lvgl.h\" instead of #include \"../../lvgl.h\"" ON)
+@@ -119,6 +122,8 @@ install(
+ set_target_properties(
+ lvgl
+ PROPERTIES OUTPUT_NAME lvgl
++ VERSION ${LVGL_VERSION}
++ SOVERSION ${LVGL_SOVERSION}
+ ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+@@ -137,6 +142,8 @@ if(NOT LV_CONF_BUILD_DISABLE_THORVG_INTERNAL)
+ set_target_properties(
+ lvgl_thorvg
+ PROPERTIES OUTPUT_NAME lvgl_thorvg
++ VERSION ${LVGL_VERSION}
++ SOVERSION ${LVGL_SOVERSION}
+ ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+@@ -155,6 +162,8 @@ if(NOT LV_CONF_BUILD_DISABLE_DEMOS)
+ set_target_properties(
+ lvgl_demos
+ PROPERTIES OUTPUT_NAME lvgl_demos
++ VERSION ${LVGL_VERSION}
++ SOVERSION ${LVGL_SOVERSION}
+ ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+@@ -173,6 +182,8 @@ if(NOT LV_CONF_BUILD_DISABLE_EXAMPLES)
+ set_target_properties(
+ lvgl_examples
+ PROPERTIES OUTPUT_NAME lvgl_examples
++ VERSION ${LVGL_VERSION}
++ SOVERSION ${LVGL_SOVERSION}
+ ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+--
+2.43.0
+
diff --git a/meta-oe/recipes-graphics/lvgl/files/0008-fix-fbdev-set-resolution-prior-to-buffer.patch b/meta-oe/recipes-graphics/lvgl/files/0008-fix-fbdev-set-resolution-prior-to-buffer.patch
new file mode 100644
index 0000000000..449db53dfb
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/files/0008-fix-fbdev-set-resolution-prior-to-buffer.patch
@@ -0,0 +1,29 @@
+From a6f822f75b3ba01b00c028608c93160d09a6ffd1 Mon Sep 17 00:00:00 2001
+From: Jaeyoon Jung <jaeyoon.jung@lge.com>
+Date: Mon, 1 Apr 2024 18:00:39 +0900
+Subject: [PATCH] fix(fbdev): set resolution prior to buffer
+
+Otherwise it ends up with using the default value 800x480 and may fail
+at lv_display_set_buffers due to incorrect resolution.
+
+Upstream-Status: Submitted [https://github.com/lvgl/lvgl/pull/6004]
+Signed-off-by: Jaeyoon Jung <jaeyoon.jung@lge.com>
+---
+
+ src/drivers/display/fb/lv_linux_fbdev.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/drivers/display/fb/lv_linux_fbdev.c b/src/drivers/display/fb/lv_linux_fbdev.c
+index b3cc89199..5fb4c5c9f 100644
+--- a/src/drivers/display/fb/lv_linux_fbdev.c
++++ b/src/drivers/display/fb/lv_linux_fbdev.c
+@@ -233,8 +233,8 @@ void lv_linux_fbdev_set_file(lv_display_t * disp, const char * file)
+ draw_buf_2 = malloc(draw_buf_size);
+ }
+
+- lv_display_set_buffers(disp, draw_buf, draw_buf_2, draw_buf_size, LV_LINUX_FBDEV_RENDER_MODE);
+ lv_display_set_resolution(disp, hor_res, ver_res);
++ lv_display_set_buffers(disp, draw_buf, draw_buf_2, draw_buf_size, LV_LINUX_FBDEV_RENDER_MODE);
+
+ if(width > 0) {
+ lv_display_set_dpi(disp, DIV_ROUND_UP(hor_res * 254, width * 10));
diff --git a/meta-oe/recipes-graphics/lvgl/lv-conf.inc b/meta-oe/recipes-graphics/lvgl/lv-conf.inc
new file mode 100644
index 0000000000..8fd3412c04
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/lv-conf.inc
@@ -0,0 +1,76 @@
+PACKAGECONFIG ??= "drm"
+
+PACKAGECONFIG[drm] = ",,libdrm"
+PACKAGECONFIG[fbdev] = ",,"
+PACKAGECONFIG[sdl] = ",,virtual/libsdl2 libsdl2-image"
+
+# Add libdrm include if drm is selected in PACKAGECONFIG
+TARGET_CFLAGS += "${@bb.utils.contains('PACKAGECONFIG', 'drm', '-I${STAGING_INCDIR}/libdrm', '', d)}"
+
+LVGL_CONFIG_USE_DRM = "${@bb.utils.contains('PACKAGECONFIG', 'drm', '1', '0', d)}"
+
+LVGL_CONFIG_USE_EVDEV = "${@bb.utils.contains_any('PACKAGECONFIG', 'drm fbdev', '1', '0', d)}"
+
+LVGL_CONFIG_USE_FBDEV = "${@bb.utils.contains('PACKAGECONFIG', 'fbdev', '1', '0', d)}"
+
+LVGL_CONFIG_USE_SDL = "${@bb.utils.contains('PACKAGECONFIG', 'sdl', '1', '0', d)}"
+LVGL_CONFIG_SDL_FULLSCREEN ?= "0"
+
+LVGL_CONFIG_LV_MEM_CUSTOM ?= "0"
+LVGL_CONFIG_LV_MEM_SIZE ?= "(64 * 1024U)"
+LVGL_CONFIG_LV_COLOR_DEPTH ?= "32"
+
+LVGL_CONFIG_LV_USE_LOG ?= "0"
+LVGL_CONFIG_LV_LOG_LEVEL ?= "LV_LOG_LEVEL_WARN"
+LVGL_CONFIG_LV_LOG_PRINTF ?= "0"
+
+LVGL_CONFIG_LV_USE_FONT_COMPRESSED ?= "0"
+
+LVGL_CONFIG_LV_THEME_DEFAULT_DARK ?= "0"
+
+DEBUG_BUILD ??= "0"
+
+ALLOW_EMPTY:${PN} = "1"
+
+EXTRA_OECMAKE += "-Dinstall:BOOL=ON -DLIB_INSTALL_DIR=${baselib}"
+
+do_configure:append() {
+ # If there is a configuration template, start from that
+ [ -r "${S}/lv_conf_template.h" ] && cp -Lv "${S}/lv_conf_template.h" "${S}/lv_conf.h"
+
+ sed -r -e "s|#if 0 .*Set it to \"1\" to enable content.*|#if 1 // Enabled by ${PN}|" \
+ \
+ -e "s|^([[:space:]]*#define LV_USE_LINUX_DRM[[:space:]]).*|\1${LVGL_CONFIG_USE_DRM}|" \
+ \
+ -e "s|^([[:space:]]*#define LV_USE_LINUX_FBDEV[[:space:]]).*|\1${LVGL_CONFIG_USE_FBDEV}|" \
+ \
+ -e "s|^([[:space:]]*#define LV_USE_SDL[[:space:]]).*|\1${LVGL_CONFIG_USE_SDL}|" \
+ -e "s|^([[:space:]]*#define LV_USE_DRAW_SDL[[:space:]]).*|\1${LVGL_CONFIG_USE_SDL}|" \
+ -e "s|^([[:space:]]*#define LV_SDL_BUF_COUNT[[:space:]]).*|\1 2|" \
+ -e "s|^([[:space:]]*#define LV_SDL_FULLSCREEN[[:space:]]).*|\1${LVGL_CONFIG_SDL_FULLSCREEN}|" \
+ \
+ -e "s|^([[:space:]]*#define LV_COLOR_DEPTH[[:space:]]).*|\1${LVGL_CONFIG_LV_COLOR_DEPTH}|" \
+ -e "s|^([[:space:]]*#define LV_MEM_CUSTOM[[:space:]]).*|\1${LVGL_CONFIG_LV_MEM_CUSTOM}|" \
+ -e "s|^([[:space:]]*#define LV_MEM_SIZE[[:space:]]).*|\1${LVGL_CONFIG_LV_MEM_SIZE}|" \
+ \
+ -e "s|^([[:space:]]*#define LV_TICK_CUSTOM[[:space:]]).*|\1 1|" \
+ -e "s|^([[:space:]]*#define LV_TICK_CUSTOM_INCLUDE[[:space:]]).*|\1 <stdint.h>|" \
+ -e "s|^([[:space:]]*#define LV_TICK_CUSTOM_SYS_TIME_EXPR[[:space:]]).*|extern uint32_t custom_tick_get(void);\n\1 (custom_tick_get())|" \
+ \
+ -e "s|^([[:space:]]*#define LV_USE_EVDEV[[:space:]]).*|\1${LVGL_CONFIG_USE_EVDEV}|" \
+ \
+ -e "s|^([[:space:]]*#define LV_USE_ASSERT_NULL[[:space:]]).*|\1${DEBUG_BUILD}|" \
+ -e "s|^([[:space:]]*#define LV_USE_ASSERT_MALLOC[[:space:]]).*|\1${DEBUG_BUILD}|" \
+ -e "s|^([[:space:]]*#define LV_USE_ASSERT_STYLE[[:space:]]).*|\1${DEBUG_BUILD}|" \
+ -e "s|^([[:space:]]*#define LV_USE_ASSERT_MEM_INTEGRITY[[:space:]]).*|\1${DEBUG_BUILD}|" \
+ -e "s|^([[:space:]]*#define LV_USE_ASSERT_OBJ[[:space:]]).*|\1${DEBUG_BUILD}|" \
+ \
+ -e "s|^([[:space:]]*#define LV_USE_LOG[[:space:]]).*|\1${LVGL_CONFIG_LV_USE_LOG}|" \
+ -e "s|^([[:space:]]*#define LV_LOG_LEVEL[[:space:]]).*|\1${LVGL_CONFIG_LV_LOG_LEVEL}|" \
+ -e "s|^([[:space:]]*#define LV_LOG_PRINTF[[:space:]]).*|\1${LVGL_CONFIG_LV_LOG_PRINTF}|" \
+ \
+ -e "s|^([[:space:]]*#define LV_USE_FONT_COMPRESSED[[:space:]]).*|\1${LVGL_CONFIG_LV_USE_FONT_COMPRESSED}|" \
+ -e "s|^([[:space:]]*#define LV_THEME_DEFAULT_DARK[[:space:]]).*|\1${LVGL_CONFIG_LV_THEME_DEFAULT_DARK}|" \
+ \
+ -i "${S}/lv_conf.h"
+}
diff --git a/meta-oe/recipes-graphics/lvgl/lv-drivers_7.11.0.bb b/meta-oe/recipes-graphics/lvgl/lv-drivers_7.11.0.bb
deleted file mode 100644
index 1a94215839..0000000000
--- a/meta-oe/recipes-graphics/lvgl/lv-drivers_7.11.0.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-# SPDX-FileCopyrightText: Huawei Inc.
-#
-# SPDX-License-Identifier: MIT
-
-HOMEPAGE = "https://docs.lvgl.io/latest/en/html/porting/index.html"
-SUMMARY = "LVGL's Display and Touch pad drivers"
-DESCRIPTION = "Collection of drivers: SDL, framebuffer, wayland and more..."
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d6fc0df890c5270ef045981b516bb8f2"
-
-# TODO: Pin upstream release (current v7.11.0-80-g419a757)
-SRC_URI = "git://github.com/lvgl/lv_drivers;destsuffix=${S};protocol=https;nobranch=1"
-SRCREV = "419a757c23aaa67c676fe3a2196d64808fcf2254"
-
-DEPENDS = "libxkbcommon lvgl wayland"
-
-REQUIRED_DISTRO_FEATURES = "wayland"
-
-inherit cmake
-inherit features_check
-
-S = "${WORKDIR}/${PN}-${PV}"
-
-LVGL_CONFIG_WAYLAND_HOR_RES ?= "480"
-LVGL_CONFIG_WAYLAND_VER_RES ?= "320"
-
-EXTRA_OECMAKE += "-Dinstall:BOOL=ON -DLIB_INSTALL_DIR=${BASELIB}"
-
-TARGET_CFLAGS += "-DLV_CONF_INCLUDE_SIMPLE=1"
-TARGET_CFLAGS += "-I${RECIPE_SYSROOT}/${includedir}/lvgl"
-
-# Upstream does not support a default configuration
-# but propose a default "disabled" template, which is used as reference
-# More configuration can be done using external configuration variables
-do_configure:append() {
- [ -r "${S}/lv_drv_conf.h" ] \
- || sed -e "s|#if 0 .*Set it to \"1\" to enable the content.*|#if 1 // Enabled by ${PN}|g" \
- -e "s|# define USE_WAYLAND 0|# define USE_WAYLAND 1|g" \
- -e "s|\(^ *# *define *WAYLAND_HOR_RES *\).*|\1${LVGL_CONFIG_WAYLAND_HOR_RES}|g" \
- -e "s|\(^ *# *define *WAYLAND_VER_RES *\).*|\1${LVGL_CONFIG_WAYLAND_VER_RES}|g" \
- < "${S}/lv_drv_conf_template.h" > "${S}/lv_drv_conf.h"
-}
-
-FILES:${PN}-dev += "\
- ${includedir}/lvgl/lv_drivers/ \
- "
diff --git a/meta-oe/recipes-graphics/lvgl/lv-lib-png_8.0.2.bb b/meta-oe/recipes-graphics/lvgl/lv-lib-png_8.0.2.bb
deleted file mode 100644
index 032e85f522..0000000000
--- a/meta-oe/recipes-graphics/lvgl/lv-lib-png_8.0.2.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-FileCopyrightText: Huawei Inc.
-#
-# SPDX-License-Identifier: MIT
-
-HOMEPAGE = "https://docs.lvgl.io"
-SUMMARY = "PNG decoder for LVGL"
-DESCRIPTION = "Allow the use of PNG images in LVGL. This implementation uses lodepng"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d6fc0df890c5270ef045981b516bb8f2"
-
-SRC_URI = "git://github.com/lvgl/lv_lib_png;destsuffix=${S};protocol=https;nobranch=1"
-SRCREV = "bf1531afe07c9f861107559e29ab8a2d83e4715a"
-
-# because of lvgl dependency
-REQUIRED_DISTRO_FEATURES = "wayland"
-
-DEPENDS += "lvgl"
-
-EXTRA_OECMAKE += "-DLIB_INSTALL_DIR=${BASELIB}"
-
-inherit cmake
-inherit features_check
-
-TARGET_CFLAGS += "-DLV_CONF_INCLUDE_SIMPLE=1"
-TARGET_CFLAGS += "-I${RECIPE_SYSROOT}/${includedir}/lvgl"
-
-FILES:${PN}-dev = "\
- ${includedir}/lvgl/lv_lib_png/ \
- "
diff --git a/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.1.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.1.0.bb
new file mode 100644
index 0000000000..6e8371baad
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.1.0.bb
@@ -0,0 +1,45 @@
+SUMMARY = "LVGL Demo Application for Framebuffer"
+HOMEPAGE = "https://github.com/lvgl/lv_port_linux_frame_buffer"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=802d3d83ae80ef5f343050bf96cce3a4 \
+ file://lvgl/LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a"
+
+SRC_URI = "\
+ git://github.com/lvgl/lv_port_linux_frame_buffer.git;protocol=https;branch=master;name=demo \
+ git://github.com/lvgl/lvgl;protocol=https;branch=master;name=lvgl;subdir=git/lvgl \
+ file://0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch;patchdir=lvgl \
+ file://0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch \
+ file://0004-Factor-out-fbdev-initialization-code.patch \
+ file://0005-Add-DRM-KMS-example-support.patch \
+ file://0006-Add-SDL2-example-support.patch \
+ file://0007-fix-cmake-generate-versioned-shared-libraries.patch;patchdir=lvgl \
+ file://0008-fix-fbdev-set-resolution-prior-to-buffer.patch;patchdir=lvgl \
+ "
+SRCREV_demo = "dccc6a1ca48372aa993dbea7a8e17dec6f42df6a"
+SRCREV_lvgl = "e1c0b21b2723d391b885de4b2ee5cc997eccca91"
+SRCREV_FORMAT = "demo_lvgl"
+
+EXTRA_OEMAKE = "DESTDIR=${D}"
+
+LVGL_CONFIG_DRM_CARD ?= "/dev/dri/card0"
+LVGL_CONFIG_LV_USE_LOG = "1"
+LVGL_CONFIG_LV_LOG_PRINTF = "1"
+LVGL_CONFIG_LV_MEM_SIZE = "(256 * 1024U)"
+LVGL_CONFIG_LV_USE_FONT_COMPRESSED = "1"
+require lv-conf.inc
+
+inherit cmake
+
+S = "${WORKDIR}/git"
+
+do_configure:prepend() {
+ if [ "${LVGL_CONFIG_USE_SDL}" -eq 1 ] ; then
+ # Add libsdl build dependency, SDL2_image has no cmake file
+ sed -i '/^target_link_libraries/ s@pthread@& SDL2_image@' "${S}/CMakeLists.txt"
+ fi
+}
+
+do_install:append() {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/bin/main ${D}${bindir}/lvgl
+}
diff --git a/meta-oe/recipes-graphics/lvgl/lvgl_8.1.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl_8.1.0.bb
deleted file mode 100644
index 2005afa2fd..0000000000
--- a/meta-oe/recipes-graphics/lvgl/lvgl_8.1.0.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-# SPDX-FileCopyrightText: Huawei Inc.
-#
-# SPDX-License-Identifier: MIT
-
-HOMEPAGE = "https://lvgl.io/"
-DESCRIPTION = "LVGL is an OSS graphics library to create embedded GUI"
-SUMMARY = "Light and Versatile Graphics Library"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a"
-
-SRC_URI = "gitsm://github.com/lvgl/lvgl;destsuffix=${S};protocol=https;nobranch=1"
-SRCREV = "d38eb1e689fa5a64c25e677275172d9c8a4ab2f0"
-
-REQUIRED_DISTRO_FEATURES = "wayland"
-
-inherit cmake
-inherit features_check
-
-EXTRA_OECMAKE = "-DLIB_INSTALL_DIR=${BASELIB}"
-S = "${WORKDIR}/${PN}-${PV}"
-
-LVGL_CONFIG_LV_MEM_CUSTOM ?= "0"
-
-# Upstream does not support a default configuration
-# but propose a default "disabled" template, which is used as reference
-# More configuration can be done using external configuration variables
-do_configure:prepend() {
- [ -r "${S}/lv_conf.h" ] \
- || sed -e 's|#if 0 .*Set it to "1" to enable .*|#if 1 // Enabled|g' \
- -e "s|\(#define LV_MEM_CUSTOM .*\)0|\1${LVGL_CONFIG_LV_MEM_CUSTOM}|g" \
- < "${S}/lv_conf_template.h" > "${S}/lv_conf.h"
-}
-
-FILES:${PN}-dev += "\
- ${includedir}/${PN}/ \
- ${includedir}/${PN}/lvgl/ \
- "
diff --git a/meta-oe/recipes-graphics/lvgl/lvgl_9.1.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl_9.1.0.bb
new file mode 100644
index 0000000000..4435c40777
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/lvgl_9.1.0.bb
@@ -0,0 +1,33 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: MIT
+
+HOMEPAGE = "https://lvgl.io/"
+DESCRIPTION = "LVGL is an OSS graphics library to create embedded GUI"
+SUMMARY = "Light and Versatile Graphics Library"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a"
+
+SRC_URI = "\
+ git://github.com/lvgl/lvgl;protocol=https;branch=master \
+ file://0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch \
+ file://0007-fix-cmake-generate-versioned-shared-libraries.patch \
+ file://0008-fix-fbdev-set-resolution-prior-to-buffer.patch \
+ "
+SRCREV = "e1c0b21b2723d391b885de4b2ee5cc997eccca91"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DLIB_INSTALL_DIR=${baselib} -DBUILD_SHARED_LIBS=ON"
+S = "${WORKDIR}/git"
+
+require lv-conf.inc
+
+do_install:append() {
+ install -d "${D}${includedir}/${PN}"
+ install -m 0644 "${S}/lv_conf.h" "${D}${includedir}/${PN}/lv_conf.h"
+}
+
+FILES:${PN}-dev += "\
+ ${includedir}/${PN}/ \
+ "
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch
index 75dc10c979..5af4e5233c 100644
--- a/meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0002-let-autotools-create-lxdm.conf.patch
@@ -8,9 +8,7 @@ Content-Transfer-Encoding: 8bit
in out of tree builds lxdm.conf is empty
-Upstream-Status: submitted [1]
-
-[1] http://sourceforge.net/p/lxde/mailman/message/32901417/
+Upstream-Status: Submitted [http://sourceforge.net/p/lxde/mailman/message/32901417/]
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-for-libexecinfo-providing-backtrace-APIs.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-for-libexecinfo-providing-backtrace-APIs.patch
index f9fd4970fb..31b12f8078 100644
--- a/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-for-libexecinfo-providing-backtrace-APIs.patch
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-for-libexecinfo-providing-backtrace-APIs.patch
@@ -8,6 +8,8 @@ unlike glibc where it is bundled in
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch
index afe11f3536..d232f6913e 100644
--- a/meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch
@@ -3,9 +3,7 @@ From: dgod <dgod.osa@gmail.com>
Date: Mon, 21 Mar 2016 19:25:25 +0800
Subject: [PATCH] fix css under gtk 3.20
-Upstream-Status: Applied [1]
-
-[1] https://git.lxde.org/gitweb/?p=lxde/lxdm.git;a=patch;h=72812894cfd9454d70e4b0753531e46580416771
+Upstream-Status: Backport [https://git.lxde.org/gitweb/?p=lxde/lxdm.git;a=patch;h=72812894cfd9454d70e4b0753531e46580416771]
---
data/themes/Industrial/gtk.css | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-graphics/neatvnc/neatvnc_0.8.0.bb b/meta-oe/recipes-graphics/neatvnc/neatvnc_0.8.0.bb
new file mode 100644
index 0000000000..c9c4a6c27a
--- /dev/null
+++ b/meta-oe/recipes-graphics/neatvnc/neatvnc_0.8.0.bb
@@ -0,0 +1,38 @@
+SUMMARY = "A liberally licensed VNC server library"
+DESCRIPTION = "This is a liberally licensed VNC server library that's intended to be fast and neat."
+HOMEPAGE = "https://github.com/any1/neatvnc"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94fc374e7174f41e3afe0f027ee59ff7"
+
+SRC_URI = "git://github.com/any1/neatvnc;branch=master;protocol=https"
+
+SRCREV = "46432ce8cade0b54a38d4bb42eb07f96c8ff49fd"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "libdrm pixman aml zlib"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[tls] = "-Dtls=enabled,-Dtls=disabled,gnutls"
+PACKAGECONFIG[jpeg] = "-Djpeg=enabled,-Djpeg=disabled,libjpeg-turbo"
+PACKAGECONFIG[examples] = "-Dexamples=true,-Dexamples=false,libpng"
+PACKAGECONFIG[benchmarks] = "-Dbenchmarks=true,-Dbenchmarks=false,libpng"
+
+PACKAGE_BEFORE_PN += "${PN}-examples"
+ALLOW_EMPTY:${PN}-examples = "1"
+FILES:${PN}-examples = "${bindir}"
+
+NEATVNC_EXAMPLES = "draw png-server"
+
+inherit meson pkgconfig
+
+do_install:append () {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'examples', 'true', 'false', d)}; then
+ install -d ${D}${bindir}
+ for bin in ${NEATVNC_EXAMPLES}; do
+ install -m 0755 ${B}/examples/$bin ${D}${bindir}
+ done
+ fi
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/openbox/obconf_git.bb b/meta-oe/recipes-graphics/openbox/obconf_git.bb
index 053af5a770..1210af70ea 100644
--- a/meta-oe/recipes-graphics/openbox/obconf_git.bb
+++ b/meta-oe/recipes-graphics/openbox/obconf_git.bb
@@ -1,5 +1,4 @@
SUMMARY = "Openbox configuration tool"
-AUTHOR = "Dana Jansens & Tim Riley & Javeed Shaikh"
HOMEPAGE = "http://openbox.org/wiki/ObConf:About"
SECTION = "x11/wm"
LICENSE = "GPL-2.0-or-later"
@@ -9,7 +8,7 @@ DEPENDS = " \
startup-notification \
gtk+3 \
"
-PV = "2.0.4+git${SRCPV}"
+PV = "2.0.4+git"
SRCREV = "63ec47c5e295ad4f09d1df6d92afb7e10c3fec39"
SRC_URI = " \
diff --git a/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb b/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
index 4c97c03978..9a15077316 100644
--- a/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
+++ b/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
@@ -1,6 +1,6 @@
SUMMARY = "openbox Window Manager"
SECTION = "x11/wm"
-DEPENDS = "glib-2.0 pango libxml2 virtual/libx11 libcroco librsvg gdk-pixbuf"
+DEPENDS = "glib-2.0 pango libxml2 virtual/libx11 librsvg gdk-pixbuf"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
diff --git a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.0.bb b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.0.bb
index c71e535649..f2d74078e8 100644
--- a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.0.bb
+++ b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.0.bb
@@ -18,4 +18,4 @@ EXTRA_OECMAKE += "-DOPENJPEG_INSTALL_LIB_DIR=${@d.getVar('baselib').replace('/',
FILES:${PN} += "${libdir}/openjpeg*"
-BBCLASSEXTEND = "native nativesdk"
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb b/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb
index 0af6ac006e..1cc2cdf76b 100644
--- a/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb
+++ b/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb
@@ -3,7 +3,6 @@ SECTION = "fonts"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
PV = "1.0"
-PR = "r2"
inherit packagegroup
diff --git a/meta-oe/recipes-graphics/pango/pangomm-2.48_2.50.1.bb b/meta-oe/recipes-graphics/pango/pangomm-2.48_2.50.1.bb
index b4079f7839..86787a6b7f 100644
--- a/meta-oe/recipes-graphics/pango/pangomm-2.48_2.50.1.bb
+++ b/meta-oe/recipes-graphics/pango/pangomm-2.48_2.50.1.bb
@@ -6,7 +6,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
DEPENDS = "mm-common cairomm-1.16 glibmm-2.68 pango"
-GNOMEBASEBUILDCLASS = "meson"
GNOMEBN = "pangomm"
inherit gnomebase features_check
diff --git a/meta-oe/recipes-graphics/pango/pangomm_2.46.2.bb b/meta-oe/recipes-graphics/pango/pangomm_2.46.2.bb
index 42074c14a1..da822f3243 100644
--- a/meta-oe/recipes-graphics/pango/pangomm_2.46.2.bb
+++ b/meta-oe/recipes-graphics/pango/pangomm_2.46.2.bb
@@ -6,7 +6,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
DEPENDS = "mm-common cairomm glibmm pango"
-GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase features_check
diff --git a/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch
index 0fedfad132..02ef3cce76 100644
--- a/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch
+++ b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch
@@ -11,6 +11,8 @@ contains vulkan.
Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
---
+Upstream-Status: Pending
+
meson.build | 6 ------
1 file changed, 6 deletions(-)
diff --git a/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb
index eff6ad8f83..2ec89bc05b 100644
--- a/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb
+++ b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb
@@ -7,7 +7,7 @@ SRC_URI = "git://gitlab.freedesktop.org/mesa/parallel-deqp-runner.git;protocol=h
"
# Modify these as desired
-PV = "2020.06.15+git${SRCPV}"
+PV = "2020.06.15+git"
SRCREV = "e1642fb691d29b1462504b58916f7f514a963e80"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb b/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb
index 143ab6a0be..039816e4a0 100644
--- a/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb
+++ b/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb
@@ -1,5 +1,4 @@
SUMMARY = "C library for encoding data in a QR Code symbol"
-AUTHOR = "Kentaro Fukuchi"
HOMEPAGE = "http://fukuchi.org/works/qrencode/"
SECTION = "libs"
LICENSE = "LGPL-2.1-only"
@@ -12,4 +11,9 @@ S = "${WORKDIR}/git"
inherit autotools pkgconfig
-EXTRA_OECONF += "--without-tools --without-tests"
+BBCLASSEXTEND = "native"
+
+EXTRA_OECONF += "--without-tests"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[tools] = "--with-tools,--without-tools,libpng"
diff --git a/meta-oe/recipes-graphics/renderdoc/renderdoc/0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch b/meta-oe/recipes-graphics/renderdoc/renderdoc/0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch
deleted file mode 100644
index e96dedfc39..0000000000
--- a/meta-oe/recipes-graphics/renderdoc/renderdoc/0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 41a8c9b5ac13066770baee476ebf9828371f4dad Mon Sep 17 00:00:00 2001
-From: Adrian Ratiu <adrian.ratiu@collabora.com>
-Date: Tue, 24 Sep 2019 16:07:18 +0300
-Subject: [PATCH] renderdoc: use xxd instead of cross-compiling shim binary
-
-Renderdoc's attempt to cross compile an xxd replacement by directly
-calling a host cross-compiler breaks under OE's recipe specific
-sysroots protection because this is not a native recipe, so we just
-use xxd-native instead.
-
-Upstream-Status: Inappropriate [embedded-specific]
-
----
- renderdoc/CMakeLists.txt | 23 +----------------------
- 1 file changed, 1 insertion(+), 22 deletions(-)
-
-diff --git a/renderdoc/CMakeLists.txt b/renderdoc/CMakeLists.txt
-index 5cb7440a4..453a034ba 100644
---- a/renderdoc/CMakeLists.txt
-+++ b/renderdoc/CMakeLists.txt
-@@ -370,26 +370,6 @@ set(data
- set(data_objects)
-
- if(UNIX)
-- # If we're cross-compiling, include-bin will get built for the target and we
-- # then can't execute it. Instead, we force calling c++ (which we can safely
-- # assume is present) directly to build the binary
--
-- if(CMAKE_CROSSCOMPILING)
-- set(HOST_NATIVE_CPP_COMPILER c++ CACHE STRING "Command to run to compile a .cpp into an executable. Default is just c++")
--
-- add_custom_command(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/include-bin
-- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
-- COMMAND ${HOST_NATIVE_CPP_COMPILER} 3rdparty/include-bin/main.cpp -o ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/include-bin
-- DEPENDS 3rdparty/include-bin/main.cpp)
-- set(INCLUDE_BIN_EXE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/include-bin")
-- set(INCLUDE_BIN_DEP "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/include-bin")
-- else()
-- add_executable(include-bin 3rdparty/include-bin/main.cpp)
-- set(INCLUDE_BIN_EXE $<TARGET_FILE:include-bin>)
-- set(INCLUDE_BIN_DEP include-bin)
-- endif()
--
- foreach(res ${data})
- set(in ${res})
- set(working_dir ${CMAKE_CURRENT_SOURCE_DIR})
-@@ -399,8 +379,7 @@ if(UNIX)
- add_custom_command(OUTPUT ${out_src}
- WORKING_DIRECTORY ${working_dir}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${out_src_dir}
-- COMMAND ${INCLUDE_BIN_EXE} ${in} ${out_src}
-- DEPENDS ${INCLUDE_BIN_DEP}
-+ COMMAND xxd -i ${in} ${out_src}
- DEPENDS ${res})
-
- list(APPEND data_objects ${out_src})
diff --git a/meta-oe/recipes-graphics/renderdoc/renderdoc_1.13.bb b/meta-oe/recipes-graphics/renderdoc/renderdoc_1.13.bb
deleted file mode 100644
index 0bc03941fa..0000000000
--- a/meta-oe/recipes-graphics/renderdoc/renderdoc_1.13.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "RenderDoc recipe providing renderdoccmd"
-DESCRIPTION = "RenderDoc is a frame-capture based graphics debugger"
-HOMEPAGE = "https://github.com/baldurk/renderdoc"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5486c0df458c74c85828e0cdbffd499e"
-
-SRCREV = "cc05b288b6d1660ab04c6cf01173f1bb62e6f5dd"
-SRC_URI = " \
- git://github.com/baldurk/${BPN}.git;protocol=http;branch=v1.x;protocol=https \
- file://0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch \
-"
-S = "${WORKDIR}/git"
-
-DEPENDS += "virtual/libx11 virtual/libgl libxcb xcb-util-keysyms vim-native"
-
-RDEPENDS:${PN} = "libxcb xcb-util-keysyms"
-
-inherit cmake pkgconfig python3native features_check
-
-REQUIRED_DISTRO_FEATURES = "x11 opengl"
-
-python __anonymous () {
- # only works on glibc systems
- if d.getVar('TCLIBC') != "glibc":
- raise bb.parse.SkipRecipe("incompatible with %s C library" % d.getVar('TCLIBC'))
-}
-
-COMPATIBLE_HOST = "(x86_64|i.86|arm|aarch64).*-linux"
-
-EXTRA_OECMAKE += "\
- -DENABLE_QRENDERDOC=OFF \
- -DENABLE_PYRENDERDOC=OFF \
- -DENABLE_RENDERDOCCMD=ON \
- -DCMAKE_BUILD_TYPE=Release \
-"
-
-FILES:${PN} += "${libdir}"
-FILES:${PN}-dev = "${includedir}"
diff --git a/meta-oe/recipes-graphics/renderdoc/renderdoc_1.27.bb b/meta-oe/recipes-graphics/renderdoc/renderdoc_1.27.bb
new file mode 100644
index 0000000000..e52ec5f291
--- /dev/null
+++ b/meta-oe/recipes-graphics/renderdoc/renderdoc_1.27.bb
@@ -0,0 +1,38 @@
+SUMMARY = "RenderDoc recipe providing renderdoccmd"
+DESCRIPTION = "RenderDoc is a frame-capture based graphics debugger"
+HOMEPAGE = "https://github.com/baldurk/renderdoc"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=36d34a46cb71546195d2b0c626a52e5d"
+
+SRCREV = "35b13a8e8fd2a331854dba6da81a20452e142d6f"
+SRC_URI = " \
+ git://github.com/baldurk/${BPN}.git;protocol=https;branch=v1.x \
+"
+S = "${WORKDIR}/git"
+
+DEPENDS += "virtual/libx11 virtual/libgl libxcb xcb-util-keysyms vim-native"
+
+RDEPENDS:${PN} = "libxcb xcb-util-keysyms"
+
+inherit cmake pkgconfig python3native features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
+
+python __anonymous () {
+ # only works on glibc systems
+ if d.getVar('TCLIBC') != "glibc":
+ raise bb.parse.SkipRecipe("incompatible with %s C library" % d.getVar('TCLIBC'))
+}
+
+COMPATIBLE_HOST = "(x86_64|i.86|arm|aarch64).*-linux"
+
+EXTRA_OECMAKE += "\
+ -DENABLE_QRENDERDOC=OFF \
+ -DENABLE_PYRENDERDOC=OFF \
+ -DENABLE_RENDERDOCCMD=ON \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DHOST_NATIVE_CPP_COMPILER="${BUILD_CXX}" \
+"
+
+FILES:${PN} += "${libdir}"
+FILES:${PN}-dev = "${includedir}"
diff --git a/meta-oe/recipes-graphics/spir/files/0001-Add-install-PHONY-target-in-Makefile.patch b/meta-oe/recipes-graphics/spir/files/0001-Add-install-PHONY-target-in-Makefile.patch
deleted file mode 100644
index 78598ea1ea..0000000000
--- a/meta-oe/recipes-graphics/spir/files/0001-Add-install-PHONY-target-in-Makefile.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 8d9870b66c3cfcf12ce7e8e013946e2a215bb722 Mon Sep 17 00:00:00 2001
-From: Ankit Navik <ankit.tarot@gmail.com>
-Date: Sat, 22 Dec 2018 19:16:02 +0530
-Subject: [PATCH] Add install PHONY target in Makefile
-
----
- Makefile | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 0564b65..0993372 100644
---- a/Makefile
-+++ b/Makefile
-@@ -35,7 +35,13 @@ $(STATIC_LIB): $(OBJECTS)
- %.o: %.cpp
- $(CXX) -c -o $@ $< $(CXXFLAGS) -MMD
-
-+install:
-+ mkdir -p $(TARGET_DIR_BIN)
-+ mkdir -p $(TARGET_DIR_LIB)
-+ cp $(TARGET) $(TARGET_DIR_BIN)/
-+ cp $(STATIC_LIB) $(TARGET_DIR_LIB)/
-+
- clean:
- rm -f $(TARGET) $(OBJECTS) $(CLI_OBJECTS) $(STATIC_LIB) $(DEPS)
-
--.PHONY: clean
-+.PHONY: all install clean
---
-2.7.4
-
diff --git a/meta-oe/recipes-graphics/spir/files/0001-Avoid-pessimizing-std-move-3124.patch b/meta-oe/recipes-graphics/spir/files/0001-Avoid-pessimizing-std-move-3124.patch
deleted file mode 100644
index 9b48cdcd09..0000000000
--- a/meta-oe/recipes-graphics/spir/files/0001-Avoid-pessimizing-std-move-3124.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 4fffcd275b50d08b54b0411679ead98970651bad Mon Sep 17 00:00:00 2001
-From: David Neto <dneto@google.com>
-Date: Fri, 27 Dec 2019 12:05:58 -0500
-Subject: [PATCH] Avoid pessimizing std::move (#3124)
-
-Should fix a warning
-
-Upstream-Status: Backport [https://github.com/KhronosGroup/SPIRV-Tools/commit/8aa423930db37e37086665efcc55944d577c06e5]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- test/opt/pass_fixture.h | 9 +++------
- 1 file changed, 3 insertions(+), 6 deletions(-)
-
-diff --git a/test/opt/pass_fixture.h b/test/opt/pass_fixture.h
-index 53fb206f..64c089d8 100644
---- a/test/opt/pass_fixture.h
-+++ b/test/opt/pass_fixture.h
-@@ -60,8 +60,7 @@ class PassTest : public TestT {
- // from pass Process() function.
- std::tuple<std::vector<uint32_t>, Pass::Status> OptimizeToBinary(
- Pass* pass, const std::string& original, bool skip_nop) {
-- context_ =
-- std::move(BuildModule(env_, consumer_, original, assemble_options_));
-+ context_ = BuildModule(env_, consumer_, original, assemble_options_);
- EXPECT_NE(nullptr, context()) << "Assembling failed for shader:\n"
- << original << std::endl;
- if (!context()) {
-@@ -197,8 +196,7 @@ class PassTest : public TestT {
- // messages.
- template <typename PassT, typename... Args>
- void SinglePassRunAndFail(const std::string& original, Args&&... args) {
-- context_ =
-- std::move(BuildModule(env_, consumer_, original, assemble_options_));
-+ context_ = BuildModule(env_, consumer_, original, assemble_options_);
- EXPECT_NE(nullptr, context()) << "Assembling failed for shader:\n"
- << original << std::endl;
- std::ostringstream errs;
-@@ -235,8 +233,7 @@ class PassTest : public TestT {
- void RunAndCheck(const std::string& original, const std::string& expected) {
- assert(manager_->NumPasses());
-
-- context_ =
-- std::move(BuildModule(env_, nullptr, original, assemble_options_));
-+ context_ = BuildModule(env_, nullptr, original, assemble_options_);
- ASSERT_NE(nullptr, context());
-
- context()->set_preserve_bindings(OptimizerOptions()->preserve_bindings_);
---
-2.24.1
-
diff --git a/meta-oe/recipes-graphics/spir/files/0001-Respect-CMAKE_INSTALL_LIBDIR-in-installed-CMake-file.patch b/meta-oe/recipes-graphics/spir/files/0001-Respect-CMAKE_INSTALL_LIBDIR-in-installed-CMake-file.patch
deleted file mode 100644
index 5d37da8fe0..0000000000
--- a/meta-oe/recipes-graphics/spir/files/0001-Respect-CMAKE_INSTALL_LIBDIR-in-installed-CMake-file.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From caf59c46ea5dc49e4dbf756c642b03e52c1b5468 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 20 Dec 2019 07:02:24 -0800
-Subject: [PATCH] Respect CMAKE_INSTALL_LIBDIR in installed CMake files
-
-Upstream-Status: Submitted [https://github.com/google/effcee/pull/36]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 1 +
- effcee/CMakeLists.txt | 4 ++--
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
---- a/external/effcee/CMakeLists.txt
-+++ b/external/effcee/CMakeLists.txt
-@@ -27,6 +27,7 @@ endif()
-
- include(cmake/setup_build.cmake)
- include(cmake/utils.cmake)
-+include(GNUInstallDirs)
-
- add_subdirectory(third_party)
- add_subdirectory(effcee)
---- a/external/effcee/effcee/CMakeLists.txt
-+++ b/external/effcee/effcee/CMakeLists.txt
-@@ -14,8 +14,8 @@ install(
- DESTINATION
- include/effcee)
- install(TARGETS effcee
-- LIBRARY DESTINATION lib
-- ARCHIVE DESTINATION lib)
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-
- if(EFFCEE_BUILD_TESTING)
- add_executable(effcee-test
diff --git a/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb b/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb
index bf0a5947b0..bf3070701f 100644
--- a/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb
+++ b/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb
@@ -5,18 +5,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
SECTION = "graphics"
S = "${WORKDIR}/git"
-SRCREV = "ed16b3e69985feaf565efbecea70a1cc2fca2a58"
-SRC_URI = "git://github.com/KhronosGroup/SPIRV-Cross.git;branch=master;protocol=https \
- file://0001-Add-install-PHONY-target-in-Makefile.patch \
-"
+SRCREV = "f09ba2777714871bddb70d049878af34b94fa54d"
+SRC_URI = "git://github.com/KhronosGroup/SPIRV-Cross.git;branch=master;protocol=https"
+inherit cmake pkgconfig
-EXTRA_OEMAKE += 'TARGET_DIR_LIB="${D}${libdir}"'
-EXTRA_OEMAKE += 'TARGET_DIR_BIN="${D}${bindir}"'
+EXTRA_OECMAKE = "-DSPIRV_CROSS_SHARED=ON"
-do_compile () {
- cd ${S} && oe_runmake
-}
-
-do_install () {
- cd ${S} && oe_runmake install
-}
+FILES:${PN} += "${datadir}"
diff --git a/meta-oe/recipes-graphics/suckless/st_0.8.5.bb b/meta-oe/recipes-graphics/suckless/st_0.8.5.bb
deleted file mode 100644
index e88c2c0f09..0000000000
--- a/meta-oe/recipes-graphics/suckless/st_0.8.5.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SECTION = "shadow"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=04c3ca13a702147c62db90f556c5b3ca"
-SRC_URI = "http://dl.suckless.org/${BPN}/${BP}.tar.gz"
-
-inherit pkgconfig features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[sha256sum] = "ea6832203ed02ff74182bcb8adaa9ec454c8f989e79232cb859665e2f544ab37"
-
-DEPENDS += "libx11 libxft fontconfig ncurses-native"
-
-RDEPENDS:${PN} += "libx11-locale"
-
-do_compile() {
- make INCS='-I. `pkg-config --cflags x11 fontconfig xft`' LIBS='-lm -lutil `pkg-config --libs x11 fontconfig xft`'
-}
-do_install() {
- make install DESTDIR=${D} PREFIX=/usr TERMINFO=${D}${datadir}/terminfo
-}
-
-FILES:${PN} += " \
- ${datadir}/terminfo \
-"
-
-inherit update-alternatives
-
-ALTERNATIVE_PRIORITY = "50"
-
-ALTERNATIVE:${PN} = "st st-256color"
-
-ALTERNATIVE_LINK_NAME[st] = "${datadir}/terminfo/s/st"
-
-ALTERNATIVE_LINK_NAME[st-256color] = "${datadir}/terminfo/s/st-256color"
diff --git a/meta-oe/recipes-graphics/suckless/st_0.9.1.bb b/meta-oe/recipes-graphics/suckless/st_0.9.1.bb
new file mode 100644
index 0000000000..18499cf3a0
--- /dev/null
+++ b/meta-oe/recipes-graphics/suckless/st_0.9.1.bb
@@ -0,0 +1,35 @@
+SECTION = "shadow"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=703e9835709f45ee7b81082277f1daec"
+SRC_URI = "http://dl.suckless.org/${BPN}/${BP}.tar.gz"
+
+inherit pkgconfig features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[sha256sum] = "16f43b9433ade9d70d6085c31f9fd99f2835eaade31221020f22143035dfc0d2"
+
+DEPENDS += "libx11 libxft fontconfig ncurses-native"
+
+RDEPENDS:${PN} += "libx11-locale"
+
+do_compile() {
+ make INCS='-I. `pkg-config --cflags x11 fontconfig xft`' LIBS='-lm -lutil `pkg-config --libs x11 fontconfig xft`'
+}
+do_install() {
+ make install DESTDIR=${D} PREFIX=/usr TERMINFO=${D}${datadir}/terminfo
+}
+
+FILES:${PN} += " \
+ ${datadir}/terminfo \
+"
+
+inherit update-alternatives
+
+ALTERNATIVE_PRIORITY = "50"
+
+ALTERNATIVE:${PN} = "st st-256color"
+
+ALTERNATIVE_LINK_NAME[st] = "${datadir}/terminfo/s/st"
+
+ALTERNATIVE_LINK_NAME[st-256color] = "${datadir}/terminfo/s/st-256color"
diff --git a/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch b/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch
index 93f1a9f42e..6011f4e3ac 100644
--- a/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch
+++ b/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch
@@ -7,6 +7,8 @@ Fix LIBS
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
+Upstream-Status: Pending
+
config.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch b/meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch
index 2fb44eb0e7..d273d1459f 100644
--- a/meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch
+++ b/meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch
@@ -5,28 +5,38 @@ Subject: [PATCH] config.ml: make compatible with webkitgtk 2.34.0
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
+Upstream-Status: Pending
+
config.mk | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
-diff --git a/config.mk b/config.mk
-index 032bf9f..850afbf 100644
--- a/config.mk
+++ b/config.mk
-@@ -12,10 +12,10 @@ LIBDIR = $(LIBPREFIX)/surf
- X11INC = `pkg-config --cflags x11`
- X11LIB = `pkg-config --libs x11`
+@@ -2,6 +2,7 @@
+ VERSION = 2.1
+
+ # Customize below to fit your system
++PKG_CONFIG ?= pkg-config
+
+ # paths
+ PREFIX = /usr/local
+@@ -9,13 +10,13 @@ MANPREFIX = $(PREFIX)/share/man
+ LIBPREFIX = $(PREFIX)/lib
+ LIBDIR = $(LIBPREFIX)/surf
+
+-X11INC = `pkg-config --cflags x11`
+-X11LIB = `pkg-config --libs x11`
++X11INC = $(shell $(PKG_CONFIG) --cflags x11)
++X11LIB = $(shell $(PKG_CONFIG) --libs x11)
-GTKINC = `pkg-config --cflags gtk+-3.0 gcr-3 webkit2gtk-4.0`
-GTKLIB = `pkg-config --libs gtk+-3.0 gcr-3 webkit2gtk-4.0`
-WEBEXTINC = `pkg-config --cflags webkit2gtk-4.0 webkit2gtk-web-extension-4.0 gio-2.0`
-WEBEXTLIBS = `pkg-config --libs webkit2gtk-4.0 webkit2gtk-web-extension-4.0 gio-2.0`
-+GTKINC = `pkg-config --cflags gtk+-3.0 gcr-3 webkit2gtk-4.1`
-+GTKLIB = `pkg-config --libs gtk+-3.0 gcr-3 webkit2gtk-4.1`
-+WEBEXTINC = `pkg-config --cflags webkit2gtk-4.1 webkit2gtk-web-extension-4.1 gio-2.0`
-+WEBEXTLIBS = `pkg-config --libs webkit2gtk-4.1 webkit2gtk-web-extension-4.1 gio-2.0`
++GTKINC = $(shell $(PKG_CONFIG) --cflags gtk+-3.0 gcr-3 webkit2gtk-4.1)
++GTKLIB = $(shell $(PKG_CONFIG) --libs gtk+-3.0 gcr-3 webkit2gtk-4.1)
++WEBEXTINC = $(shell $(PKG_CONFIG) --cflags webkit2gtk-4.1 webkit2gtk-web-extension-4.1 gio-2.0)
++WEBEXTLIBS = $(shell $(PKG_CONFIG) --libs webkit2gtk-4.1 webkit2gtk-web-extension-4.1 gio-2.0)
# includes and libs
INCS = $(X11INC) $(GTKINC)
---
-2.20.1
-
diff --git a/meta-oe/recipes-graphics/surf/surf_2.1.bb b/meta-oe/recipes-graphics/surf/surf_2.1.bb
index 51c14624af..4d9d4d3dd0 100644
--- a/meta-oe/recipes-graphics/surf/surf_2.1.bb
+++ b/meta-oe/recipes-graphics/surf/surf_2.1.bb
@@ -5,22 +5,23 @@ SECTION = "x11/graphics"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2a6f86d002ae9ae1eb1ccc466289f146"
-DEPENDS = "webkitgtk gtk+3 glib-2.0 gcr"
+DEPENDS = "webkitgtk3 gtk+3 glib-2.0 gcr3"
REQUIRED_DISTRO_FEATURES = "x11 opengl"
-SRCREV = "bcd7d74e613fb8af11b40c351f0a6c1a771b2d2b"
+SRCREV = "665a709b522a6fa18c671f1fc41297603292d0e8"
SRC_URI = "git://git.suckless.org/surf;branch=surf-webkit2 \
"
-SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'soup3', 'file://0001-config.mk-Fix-compiler-and-linke,ig.ml-make-compatible-with-webkitgtk-2.34.0.patch', '', d)}"
+SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'soup3', 'file://0001-config.mk-Fix-compiler-and-linker.patch file://0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch', '', d)}"
S = "${WORKDIR}/git"
inherit pkgconfig features_check
-PACKAGECONFIG ?= ""
+PACKAGECONFIG_SOUP ?= "soup3"
+PACKAGECONFIG ??= "${PACKAGECONFIG_SOUP}"
-# Enable if soup3 is enabled in webkit recipe
+PACKAGECONFIG[soup2] = ",,,"
PACKAGECONFIG[soup3] = ",,,"
TARGET_CC_ARCH += "${LDFLAGS}"
diff --git a/meta-oe/recipes-graphics/terminus-font/terminus-font/use-no-name-option-for-gzip.patch b/meta-oe/recipes-graphics/terminus-font/terminus-font/use-no-name-option-for-gzip.patch
new file mode 100644
index 0000000000..97213c07da
--- /dev/null
+++ b/meta-oe/recipes-graphics/terminus-font/terminus-font/use-no-name-option-for-gzip.patch
@@ -0,0 +1,66 @@
+Build compressed archives with -n
+
+The compressed archives contain a header with the field MTIME
+(Modification Time) which is initialized from the built date.
+As a consequence, two separate builds generate compressed archives
+whose checksum differs. Such behavior prevents reproducible builds.
+
+Adding the -n option to gzip while compressing the archive does
+not save the original time stamp by default hence making
+reproducible build.
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Jean-Marc BOUCHE <jean-marc.bouche@foss.st.com>
+Index: terminus-font-4.49.1/Makefile
+===================================================================
+--- terminus-font-4.49.1.orig/Makefile
++++ terminus-font-4.49.1/Makefile
+@@ -92,9 +92,9 @@ otbdir = $(prefix)/share/fonts/terminus
+
+ install: $(PSF) $(PCF)
+ mkdir -p $(DESTDIR)$(psfdir)
+- for i in $(PSF) ; do gzip -c $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done
++ for i in $(PSF) ; do gzip -c -n $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done
+ mkdir -p $(DESTDIR)$(x11dir)
+- for i in $(PCF) ; do gzip -c $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done
++ for i in $(PCF) ; do gzip -c -n $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done
+
+ uninstall:
+ for i in $(PSF) ; do rm -f $(DESTDIR)$(psfdir)/$$i.gz ; done
+@@ -193,7 +193,7 @@ psf: $(PSF)
+
+ install-psf: $(PSF)
+ mkdir -p $(DESTDIR)$(psfdir)
+- for i in $(PSF) ; do gzip -c $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done
++ for i in $(PSF) ; do gzip -c -n $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done
+
+ uninstall-psf:
+ for i in $(PSF) ; do rm -f $(DESTDIR)$(psfdir)/$$i.gz ; done
+@@ -202,7 +202,7 @@ psf-vgaw: $(PSF_VGAW)
+
+ install-psf-vgaw: $(PSF_VGAW)
+ mkdir -p $(DESTDIR)$(psfdir)
+- for i in $(PSF_VGAW) ; do gzip -c $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done
++ for i in $(PSF_VGAW) ; do gzip -c -n $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done
+
+ uninstall-psf-vgaw:
+ for i in $(PSF_VGAW) ; do rm -f $(DESTDIR)$(psfdir)/$$i.gz ; done
+@@ -279,7 +279,7 @@ pcf: $(PCF)
+
+ install-pcf: $(PCF)
+ mkdir -p $(DESTDIR)$(x11dir)
+- for i in $(PCF) ; do gzip -c $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done
++ for i in $(PCF) ; do gzip -c -n $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done
+
+ uninstall-pcf:
+ for i in $(PCF) ; do rm -f $(DESTDIR)$(x11dir)/$$i.gz ; done
+@@ -288,7 +288,7 @@ pcf-8bit: $(PCF_8BIT)
+
+ install-pcf-8bit: $(PCF_8BIT)
+ mkdir -p $(DESTDIR)$(x11dir)
+- for i in $(PCF_8BIT) ; do gzip -c $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done
++ for i in $(PCF_8BIT) ; do gzip -c -n $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done
+
+ uninstall-pcf-8bit:
+ for i in $(PCF_8BIT) ; do rm -f $(DESTDIR)$(x11dir)/$$i.gz ; done
diff --git a/meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb b/meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb
index 7eddf1da41..1fabe2e29e 100644
--- a/meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb
+++ b/meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb
@@ -2,7 +2,6 @@ SUMMARY = "Terminus fonts packages (console and X11)"
DESCRIPTION = "Terminus Font is a clean, fixed width bitmap font, designed for \
long (8 and more hours per day) work with computers."
HOMEPAGE = "http://terminus-font.sourceforge.net/"
-AUTHOR = "Dimitar Zhekov"
SECTION = "fonts"
LICENSE = "OFL-1.1"
@@ -10,7 +9,9 @@ LIC_FILES_CHKSUM = "file://OFL.TXT;md5=f57e6cca943dbc6ef83dc14f1855bdcc"
DEPENDS = "hostperl-runtime-native gzip-native bdftopcf-native"
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
+ file://use-no-name-option-for-gzip.patch \
+ "
SRC_URI[md5sum] = "1b6acbd221957e33c8a792ebfaf3a659"
SRC_URI[sha256sum] = "d961c1b781627bf417f9b340693d64fc219e0113ad3a3af1a3424c7aa373ef79"
diff --git a/meta-oe/recipes-graphics/tesseract/tesseract/0001-include-sys-time.h.patch b/meta-oe/recipes-graphics/tesseract/tesseract/0001-include-sys-time.h.patch
deleted file mode 100644
index de1fa75b7c..0000000000
--- a/meta-oe/recipes-graphics/tesseract/tesseract/0001-include-sys-time.h.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From b47fa9532a7090d76521603dbc818bdec100085f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 15 Sep 2020 17:04:27 -0700
-Subject: [PATCH] include sys/time.h
-
-This provides missing definitions of timeval stuct
-
-Fixes
-| ../../../git/src/ccutil/ocrclass.h:154:7: error: member access into
-incomplete type 'struct timeval'
-| tv->tv_usec = (millisecs.count() % 1000) * 1000;
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/ccutil/ocrclass.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/ccutil/ocrclass.h b/src/ccutil/ocrclass.h
-index d39a6dd6..96395c9b 100644
---- a/src/ccutil/ocrclass.h
-+++ b/src/ccutil/ocrclass.h
-@@ -28,6 +28,8 @@
-
- #include <chrono>
- #include <ctime>
-+#include <sys/time.h>
-+
- #ifdef _WIN32
- #include <winsock2.h> // for timeval
- #endif
---
-2.28.0
-
diff --git a/meta-oe/recipes-graphics/tesseract/tesseract_4.1.3.bb b/meta-oe/recipes-graphics/tesseract/tesseract_4.1.3.bb
deleted file mode 100644
index 6f92679682..0000000000
--- a/meta-oe/recipes-graphics/tesseract/tesseract_4.1.3.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "A commercial quality OCR engine "
-HOMEPAGE = "https://github.com/tesseract-ocr/tesseract"
-BUGTRACKER = "https://github.com/tesseract-ocr/tesseract/issues"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-BRANCH = "4.1"
-SRCREV = "f38e7a7ba850b668d4505dd4c712238d7ec63ca8"
-SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=${BRANCH};protocol=https \
- file://0001-include-sys-time.h.patch \
- "
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "leptonica"
-
-EXTRA_OECONF += "LIBLEPT_HEADERSDIR=${STAGING_INCDIR}/leptonica"
-
-inherit autotools pkgconfig
-
-FILES:${PN} += "${datadir}/tessdata"
-
-RRECOMMENDS:${PN} += "tesseract-lang-eng"
diff --git a/meta-oe/recipes-graphics/tesseract/tesseract_5.3.4.bb b/meta-oe/recipes-graphics/tesseract/tesseract_5.3.4.bb
new file mode 100644
index 0000000000..b32bf34518
--- /dev/null
+++ b/meta-oe/recipes-graphics/tesseract/tesseract_5.3.4.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A commercial quality OCR engine "
+HOMEPAGE = "https://github.com/tesseract-ocr/tesseract"
+BUGTRACKER = "https://github.com/tesseract-ocr/tesseract/issues"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRCREV = "8ee020e14cf5be4e3f0e9beb09b6b050a1871854"
+SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=main;protocol=https"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "leptonica"
+
+EXTRA_OECONF += "LIBLEPT_HEADERSDIR=${STAGING_INCDIR}/leptonica"
+
+inherit autotools pkgconfig
+
+FILES:${PN} += "${datadir}/tessdata"
+
+RRECOMMENDS:${PN} += "tesseract-lang-eng"
diff --git a/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch b/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch
deleted file mode 100644
index f0056d6561..0000000000
--- a/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 47f175618a0b0817714ea557c9e93f22f327421e Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 31 Jul 2018 16:39:52 +0800
-Subject: [PATCH 1/4] tigervnc: remove includedir
-
-Upstream-Status: Pending
-
-Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
-
-It fixes host contamination
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- unix/xserver/hw/vnc/Makefile.am | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/unix/xserver/hw/vnc/Makefile.am b/unix/xserver/hw/vnc/Makefile.am
-index 470424b..ee18bf9 100644
---- a/unix/xserver/hw/vnc/Makefile.am
-+++ b/unix/xserver/hw/vnc/Makefile.am
-@@ -23,7 +23,7 @@ libvnccommon_la_SOURCES = $(HDRS) \
-
- libvnccommon_la_CPPFLAGS = -DVENDOR_RELEASE="$(VENDOR_RELEASE)" -I$(TIGERVNC_SRCDIR)/unix/common \
- -DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common -UHAVE_CONFIG_H \
-- -I$(TIGERVNC_SRCDIR)/unix/vncconfig $(XVNC_CPPFLAGS) ${XSERVERLIBS_CFLAGS} -I$(includedir) \
-+ -I$(TIGERVNC_SRCDIR)/unix/vncconfig $(XVNC_CPPFLAGS) ${XSERVERLIBS_CFLAGS} \
- -I$(top_srcdir)/include
-
- bin_PROGRAMS = Xvnc
-@@ -43,7 +43,7 @@ Xvnc_CPPFLAGS = $(XVNC_CPPFLAGS) -DTIGERVNC -DNO_MODULE_EXTS \
- -UHAVE_CONFIG_H \
- -DXFree86Server -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
- -DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common -I$(TIGERVNC_SRCDIR)/unix/common \
-- -I$(top_srcdir)/include ${XSERVERLIBS_CFLAGS} -I$(includedir)
-+ -I$(top_srcdir)/include ${XSERVERLIBS_CFLAGS}
-
- Xvnc_LDADD = $(XVNC_LIBS) libvnccommon.la $(COMMON_LIBS) \
- $(XSERVER_LIBS) $(XSERVER_SYS_LIBS) $(XVNC_SYS_LIBS) -lX11
-@@ -64,7 +64,7 @@ libvnc_la_CPPFLAGS = $(XVNC_CPPFLAGS) -I$(TIGERVNC_SRCDIR)/common -UHAVE_CONFIG_
- -I$(top_srcdir)/hw/xfree86/os-support \
- -I$(top_srcdir)/hw/xfree86/os-support/bus \
- -I$(top_srcdir)/include \
-- ${XSERVERLIBS_CFLAGS} -I$(includedir)
-+ ${XSERVERLIBS_CFLAGS}
-
- libvnc_la_LDFLAGS = -module -avoid-version -Wl,-z,now
-
---
-2.7.4
-
diff --git a/meta-oe/recipes-graphics/tslib/tslib_1.22.bb b/meta-oe/recipes-graphics/tslib/tslib_1.22.bb
index c2000b264b..01da03a473 100644
--- a/meta-oe/recipes-graphics/tslib/tslib_1.22.bb
+++ b/meta-oe/recipes-graphics/tslib/tslib_1.22.bb
@@ -5,7 +5,6 @@ Tslib is generally used on embedded devices to provide a common user \
space interface to touchscreen functionality."
HOMEPAGE = "http://tslib.org/"
-AUTHOR = "Martin Kepplinger <martink@posteo.de>"
SECTION = "base"
LICENSE = "LGPL-2.0-or-later & GPL-2.0-or-later"
LIC_FILES_CHKSUM = "\
@@ -81,3 +80,5 @@ FILES:tslib-uinput += "${bindir}/ts_uinput"
FILES:tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_print_mt \
${bindir}/ts_test ${bindir}/ts_test_mt ${bindir}/ts_verify ${bindir}/ts_finddev ${bindir}/ts_conf"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb
index 73c8eb41a1..ea734182de 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb
@@ -2,18 +2,16 @@ SUMMARY = "Unicode Mingti (printed) TrueType Font"
HOMEPAGE = "http://www.freedesktop.org/wiki/Software/CJKUnifonts"
LICENSE = "Arphic-Public-License"
LIC_FILES_CHKSUM = "file://license/english/ARPHICPL.TXT;md5=4555ed88e9a72fc9562af379d07c3350"
-SRC_DISTRIBUTE_LICENSES += "${PN}"
+
RPROVIDES:${PN} = "virtual-chinese-font"
-PR = "r6"
FONT_PACKAGES = "${PN}"
-SRC_URI = "http://archive.ubuntu.com/ubuntu/pool/main/t/ttf-arphic-uming/ttf-arphic-uming_0.2.${PV}.1.orig.tar.gz"
-S = "${WORKDIR}"
+SRC_URI = "https://deb.debian.org/debian/pool/main/f/fonts-arphic-uming/fonts-arphic-uming_0.2.${PV}.2.orig.tar.bz2"
+S = "${WORKDIR}/ttf-arphic-uming-0.2.20080216.2"
require ttf.inc
FILES:${PN} = "${datadir}"
-SRC_URI[md5sum] = "d219fcaf953f3eb1889399955a00379f"
-SRC_URI[sha256sum] = "8038a6db9e832456d5da5559aff8d15130243be1091bf24f3243503a6f1bda98"
+SRC_URI[sha256sum] = "e3c19e04ea7a565b4acff6f1e4248084d2e10752e305bf7dd6c76e80860dc1db"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.37.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.37.bb
index 919dad82e7..43a387b818 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.37.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.37.bb
@@ -13,7 +13,6 @@ RDEPENDS:${PN}-serif = "${PN}-common"
RDEPENDS:${PN}-serif-condensed = "${PN}-common"
RDEPENDS:${PN}-mathtexgyre = "${PN}-common"
RDEPENDS:${PN}-common = ""
-PR = "r7"
SRC_URI = "${SOURCEFORGE_MIRROR}/dejavu/dejavu-fonts-ttf-${PV}.tar.bz2 \
file://30-dejavu-aliases.conf"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb
index 7fa155a22f..cc9213ec5b 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb
@@ -5,8 +5,7 @@ HOMEPAGE = "http://www.droidfonts.com/"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://README.txt;md5=83544262a86f1f1ec761e75897df92bc"
SRCREV = "21e6e2de1f0062f949fcc52d0b4559dfa3246e0e"
-PV = "0.1+gitr${SRCPV}"
-PR = "r3"
+PV = "0.1+git"
SRC_URI = "git://github.com/android/platform_frameworks_base.git;branch=master;protocol=https"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb
index 5e355eefa7..2439766ad5 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb
@@ -6,9 +6,8 @@ LICENSE = "OFL-1.0"
LICENSE_URL = "http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=OFL"
LIC_FILES_CHKSUM = "file://OFL;md5=33a5bf7b98a9c0ae87430760ba762295 \
"
-PR = "r8"
-SRC_URI = "${DEBIAN_MIRROR}/main/t/ttf-gentium/ttf-gentium_${PV}.orig.tar.gz "
+SRC_URI = "https://archive.debian.org/debian/pool/main/t/ttf-gentium/ttf-gentium_${PV}.orig.tar.gz "
S = "${WORKDIR}/ttf-sil-gentium-${PV}"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-google-fira.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-google-fira.bb
new file mode 100644
index 0000000000..d618607496
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-google-fira.bb
@@ -0,0 +1,61 @@
+SUMMARY = "Google Fira Fonts- TTF Edition"
+HOMEPAGE = "https://fonts.google.com/?query=fira"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = " \
+ file://${S}/firamono/OFL.txt;md5=0373cf792d4b95c61399b94c02702892 \
+ file://${S}/firacode/OFL.txt;md5=c75ca55aa0a5809a854d87db2a8ebf23 \
+ file://${S}/firasans/OFL.txt;md5=de28deb2f8c1f23fd4d6918113ac3ddd \
+ file://${S}/firasanscondensed/OFL.txt;md5=de28deb2f8c1f23fd4d6918113ac3ddd \
+ file://${S}/firasansextracondensed/OFL.txt;md5=de28deb2f8c1f23fd4d6918113ac3ddd \
+"
+
+SRCREV_FORMAT = "firamono_firacode_firasans_firasanscondensed_firasansextracondensed"
+
+SRCREV_firamono = "701bd391b1a4b3238de193a8523009ecef1be42c"
+SRCREV_firacode = "701bd391b1a4b3238de193a8523009ecef1be42c"
+SRCREV_firasans = "701bd391b1a4b3238de193a8523009ecef1be42c"
+SRCREV_firasanscondensed = "701bd391b1a4b3238de193a8523009ecef1be42c"
+SRCREV_firasansextracondensed = "701bd391b1a4b3238de193a8523009ecef1be42c"
+
+SRC_URI = "git://github.com/google/fonts.git;protocol=https;branch=main;subpath=ofl/firamono;name=firamono \
+ git://github.com/google/fonts.git;protocol=https;branch=main;subpath=ofl/firacode;name=firacode \
+ git://github.com/google/fonts.git;protocol=https;branch=main;subpath=ofl/firasans;name=firasans \
+ git://github.com/google/fonts.git;protocol=https;branch=main;subpath=ofl/firasanscondensed;name=firasanscondensed \
+ git://github.com/google/fonts.git;protocol=https;branch=main;subpath=ofl/firasansextracondensed;name=firasansextracondensed"
+
+S = "${WORKDIR}"
+
+do_install:append() {
+ install -d ${D}${datadir}/fonts/truetype/
+ find ${S} -path 'fira*/*.tt[cf]' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/{} \;
+ install -D -m 0644 ${S}/firamono/OFL.txt ${D}${datadir}/licenses/${PN}mono/OFL.txt
+ install -D -m 0644 ${S}/firacode/OFL.txt ${D}${datadir}/licenses/${PN}code/OFL.txt
+ install -D -m 0644 ${S}/firasans/OFL.txt ${D}${datadir}/licenses/${PN}sans/OFL.txt
+ install -D -m 0644 ${S}/firasanscondensed/OFL.txt ${D}${datadir}/licenses/${PN}sanscondensed/OFL.txt
+ install -D -m 0644 ${S}/firasansextracondensed/OFL.txt ${D}${datadir}/licenses/${PN}sansextracondensed/OFL.txt
+}
+
+PACKAGES =+ "${PN}-mono ${PN}-code ${PN}-sans ${PN}-sanscondensed ${PN}-sansextracondensed"
+
+FILES:${PN}-mono += " \
+ ${datadir}/fonts/truetype/FiraMono* \
+ ${datadir}/licenses/${PN}mono/OFL.txt \
+ "
+FILES:${PN}-code += " \
+ ${datadir}/fonts/truetype/FiraCode* \
+ ${datadir}/licenses/${PN}code/OFL.txt \
+ "
+FILES:${PN}-sans += " \
+ ${datadir}/fonts/truetype/FiraSans-* \
+ ${datadir}/licenses/${PN}sans/OFL.txt \
+ "
+FILES:${PN}-sanscondensed += " \
+ ${datadir}/fonts/truetype/FiraSansCondensed-* \
+ ${datadir}/licenses/${PN}sanscondensed/OFL.txt \
+ "
+FILES:${PN}-sansextracondensed += " \
+ ${datadir}/fonts/truetype/FiraSansExtraCondensed-* \
+ ${datadir}/licenses/${PN}sansextracondensed/OFL.txt \
+ "
+
+require ttf.inc
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb
index e361ce9f64..8a75fe38bd 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb
@@ -4,7 +4,6 @@ SUMMARY = "Hunky fonts - TTF Version"
HOMEPAGE = "http://sourceforge.net/projects/hunkyfonts"
LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://../COPYRIGHT.TXT;md5=70d34478e38b1ad9995079f9921f9ef7"
-PR = "r7"
SRC_URI = "${SOURCEFORGE_MIRROR}/hunkyfonts/hunkyfonts-${PV}.tar.bz2"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb
index fdcfe0421b..6d7ba11e73 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb
@@ -7,7 +7,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://License.txt;md5=5b171c5100029d884fcea21d9a2b7543 \
"
-PR = "r7"
SRC_URI = "http://fedorahosted.org/liberation-fonts/export/807b6dfd069b998cd9b4d3158da98817ef23c79d/F-9/liberation-fonts-ttf-3.tar.gz"
S = "${WORKDIR}/liberation-fonts-${PV}"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-lklug_0.6-14.20090803cvs.fc24.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-lklug_0.6-14.20090803cvs.fc24.bb
index 8a7c1f333b..3951647337 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-lklug_0.6-14.20090803cvs.fc24.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-lklug_0.6-14.20090803cvs.fc24.bb
@@ -5,9 +5,8 @@ HOMEPAGE = "http://rpms.famillecollet.com/rpmphp/zoom.php?rpm=lklug-fonts"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-SRC_URI = "http://dl.fedoraproject.org/pub/fedora/linux/releases/24/Everything/source/tree/Packages/l/lklug-fonts-0.6-14.20090803cvs.fc24.src.rpm;extract=lklug-20090803.tar.gz"
-SRC_URI[md5sum] = "3341dfb997043d234ab3f6e5a965e759"
-SRC_URI[sha256sum] = "f54c1f3b4df08995982657fed290b562556191fee2a0386afd9e8bf228f72b1a"
+SRC_URI = "https://src.fedoraproject.org/repo/pkgs/lklug-fonts/lklug-20090803.tar.gz/b6e0daaf8cf41208fd2a7bc04fb23f84/lklug-20090803.tar.gz"
+SRC_URI[sha256sum] = "de5750f7048973f851961050f76b8b58e9bda400d5007c3078d9317fbe2ff5fd"
DEPENDS = "fontforge-native"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb
index d8236ce434..a3babe90a5 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb
@@ -6,9 +6,7 @@ LICENSE = "${BPN}"
LIC_FILES_CHKSUM = "file://LICENSE_E;md5=ac161e96eda00db9a3aec7870b5d9658 \
file://LICENSE_J;md5=a120ca8d7c8e4a475d5277c9aeb95221 \
"
-PR = "r4"
-
-SRC_URI = "http://osdn.dl.sourceforge.jp/mplus-fonts/6650/mplus-TESTFLIGHT-${PV}.tar.gz"
+SRC_URI = "http://downloads.sourceforge.jp/mplus-fonts/6650/mplus-TESTFLIGHT-${PV}.tar.gz"
S = "${WORKDIR}/mplus-TESTFLIGHT-${PV}"
PACKAGESPLITFUNCS:prepend = "split_ttf_mplus_packages "
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb
index 945a5f3a85..a4ad91fc77 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb
@@ -3,13 +3,11 @@ require ttf.inc
SUMMARY = "Sazanami Gothic/Mincho Japanese TrueType fonts"
SUMMARY:ttf-sazanami-gothic = "Sazanami Gothic Japanese TrueType font"
SUMMARY:ttf-sazanami-mincho = "Sazanami Mincho Japanese TrueType font"
-AUTHOR = "Electronic Font Open Laboratory (/efont/)"
HOMEPAGE = "http://sourceforge.jp/projects/efont/"
LICENSE = "PD"
LIC_FILES_CHKSUM = "file://README;md5=97d739900be6e852830f55aa3c07d4a0"
-SRC_DISTRIBUTE_LICENSES += "${PN}"
+
RPROVIDES:${PN} = "virtual-japanese-font"
-PR = "r9"
SRC_URI = "http://osdn.dl.sourceforge.jp/efont/10087/sazanami-20040629.tar.bz2"
S = "${WORKDIR}/sazanami-20040629"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb
index 3dad368408..461e3def78 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb
@@ -1,7 +1,6 @@
require ttf.inc
SUMMARY = "Thai Linux Working Group Fonts"
-AUTHOR = "Thai Linux Working Group"
HOMEPAGE = "http://linux.thai.net/projects/fonts-tlwg"
LICENSE = "GPL-2.0-only & TLWG"
LIC_FILES_CHKSUM = "file://../fonts-tlwg-${PV}/COPYING;md5=3d20cd7eadf4afd5460c0adb32e387fd"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.83.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.83.bb
index e81515f85e..d118769cc8 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.83.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.83.bb
@@ -4,7 +4,6 @@ SUMMARY = "Ubuntu Font Family - TTF Version"
HOMEPAGE = "http://font.ubuntu.com"
LICENSE = "UFL"
LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=325a1a9029112a2405e743c7f816427b"
-PR = "r1"
SHA1SUM = "0cef8205"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb
index 6b79eb9197..4cc5afd4a7 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb
@@ -1,7 +1,6 @@
require ttf.inc
SUMMARY = "Japanese TrueType fonts from Vine Linux"
-AUTHOR = "Contributor: noonov <noonov@gmail.com>"
HOMEPAGE = "http://vlgothic.dicey.org/"
LICENSE = "ttf-mplus & BSD-3-Clause"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb
index bc14febadb..21897a7589 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb
@@ -1,7 +1,6 @@
require ttf.inc
SUMMARY = "WenQuanYi Zen Hei - A Hei-Ti Style Chinese font"
-AUTHOR = "Qianqian Fang and The WenQuanYi Project Contributors"
HOMEPAGE = "http://wenq.org/"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=cf540fc7d35b5777e36051280b3a911c"
diff --git a/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb b/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb
index f3602f1947..e80aebc89b 100644
--- a/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb
+++ b/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb
@@ -1,6 +1,5 @@
SUMMARY = "Remove idle cursor image from screen."
DESCRIPTION = "This is a rewrite of the popular tool unclutter, but using the x11-xfixes extension."
-AUTHOR = "Ingo Bürk"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b25d2c4cca175f44120d1b8e67cb358d"
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-Remove-dead-variable-984.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-Remove-dead-variable-984.patch
deleted file mode 100644
index c29d80aa10..0000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-Remove-dead-variable-984.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 0d863b444c9a54a92dab176b1b656c116923e1ca Mon Sep 17 00:00:00 2001
-From: alan-baker <alanbaker@google.com>
-Date: Wed, 30 Mar 2022 12:59:28 -0400
-Subject: [PATCH] Remove dead variable (#984)
-
-Upstream-Status: Backport [https://github.com/google/amber/commit/627ee453d6047ced0e2dd13cde983b341d0615e3]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/vkscript/command_parser.cc | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/src/vkscript/command_parser.cc b/src/vkscript/command_parser.cc
-index 610c7e6..3429d4d 100644
---- a/src/vkscript/command_parser.cc
-+++ b/src/vkscript/command_parser.cc
-@@ -486,7 +486,6 @@ Result CommandParser::ParseValues(const std::string& name,
- std::vector<Value>* values) {
- assert(values);
-
-- uint32_t row_index = 0;
- auto token = tokenizer_->NextToken();
- size_t seen = 0;
- while (!token->IsEOL() && !token->IsEOS()) {
-@@ -515,7 +514,6 @@ Result CommandParser::ParseValues(const std::string& name,
- values->push_back(v);
- token = tokenizer_->NextToken();
-
-- ++row_index;
- ++seen;
- }
-
---
-2.37.3
-
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch
index d7000b7da1..f659e36066 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch
@@ -13,25 +13,17 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
framework/platform/CMakeLists.txt | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
-diff --git a/framework/platform/CMakeLists.txt b/framework/platform/CMakeLists.txt
-index c3ac463e4..030163f6c 100644
--- a/framework/platform/CMakeLists.txt
+++ b/framework/platform/CMakeLists.txt
-@@ -73,8 +73,12 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS)
+@@ -73,8 +73,9 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS)
add_definitions(-DDEQP_SUPPORT_WAYLAND=1)
include_directories(lnx/wayland)
- pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir)
-- pkg_get_variable(WAYLAND_SCANNER wayland-scanner wayland_scanner)
-+ if (NOT DEFINED WAYLAND_PROTOCOLS_DIR)
+-
++ if (NOT WAYLAND_PROTOCOLS_DIR)
+ pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir)
+ endif()
-+ if (NOT DEFINED WAYLAND_SCANNER)
-+ pkg_get_variable(WAYLAND_SCANNER wayland-scanner wayland_scanner)
-+ endif()
-
- set(DEQP_XDG_SHELL_PROTOCOL ${WAYLAND_PROTOCOLS_DIR}/stable/xdg-shell/xdg-shell.xml)
- set(DEQP_XDG_SHELL_GEN_OUTPUTS_DIR ${PROJECT_BINARY_DIR}/framework/platform)
---
-2.37.3
-
+ if (NOT WAYLAND_SCANNER)
+ pkg_get_variable(WAYLAND_SCANNER wayland-scanner wayland_scanner)
+ endif()
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkan-cts-include-missing-cstdint.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkan-cts-include-missing-cstdint.patch
new file mode 100644
index 0000000000..0dd59713a1
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkan-cts-include-missing-cstdint.patch
@@ -0,0 +1,34 @@
+From b07f6ecd6ab83b788301a555dc546b9a5c9dd8a2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 25 Jan 2023 19:19:34 -0800
+Subject: [PATCH] Include missing <cstdint>
+
+This error is seen with gcc-13 where include headers are not implicitly
+included [1]
+
+Fixes errors e.g.
+error: 'uint32_t' does not name a type
+
+[1] https://www.gnu.org/software/gcc/gcc-13/porting_to.html
+
+Upstream-Status: Submitted [https://github.com/KhronosGroup/VK-GL-CTS/pull/378]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ framework/common/tcuDefs.hpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/framework/common/tcuDefs.hpp b/framework/common/tcuDefs.hpp
+index ad3d0736d..6dfac10fb 100644
+--- a/framework/common/tcuDefs.hpp
++++ b/framework/common/tcuDefs.hpp
+@@ -26,6 +26,7 @@
+ #include "deDefs.hpp"
+ #include "qpTestLog.h"
+
++#include <cstdint>
+ #include <string>
+ #include <stdexcept>
+
+--
+2.39.1
+
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts-Include-missing-cstdint.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts-Include-missing-cstdint.patch
new file mode 100644
index 0000000000..40aea8f203
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts-Include-missing-cstdint.patch
@@ -0,0 +1,32 @@
+From 1b7646ced0f0b969f818084887885827ed1a4244 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 31 May 2021 17:31:33 -0700
+Subject: [PATCH] vulkancts: Include missing <cstdint>
+
+Fixes build with gcc-13
+
+../git/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp:2798:102: error: 'uintptr_t' in namespace 'std' does not name a type
+ 2798 | BufferDataType type = static_cast<BufferDataType>(reinterpret_cast<std::uintptr_t>(expectedOutputs[resultIndex].getUserData()));
+ | ^~~~~~~~~
+
+Upstream-Status: Submitted [https://github.com/KhronosGroup/VK-GL-CTS/pull/378]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp
+index ab02be1dc..3d3ee4829 100644
+--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp
++++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp
+@@ -33,6 +33,7 @@
+ #include "deFloat16.h"
+ #include "vkQueryUtil.hpp"
+ #include "vkRefUtil.hpp"
++#include <cstdint>
+ #include <cstring>
+ #include <vector>
+ #include <limits>
+--
+2.39.1
+
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts.patch
deleted file mode 100644
index 2fd1d7123a..0000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 273df2423d9226093310cbcaa8b924bb6b5d6586 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 31 May 2021 17:31:33 -0700
-Subject: [PATCH] vulkancts:
-
-O_TRUNC value in OperationId enum collides with the macro O_TRUNC
-defined in the POSIX header fnctl.h. To avoid the collision undefine
-O_TRUNC in this particular sourcefile before its is used in enums
-down below.
-
-This is fixed upstream differently
-https://github.com/KhronosGroup/VK-GL-CTS/commit/564c6062f72fe7ecd92b4aea1558c441e651c76b
-
-But until we get this module uprev'ed to that, lets use a simpler
-workaround
-
-Upstream-Status: Inappropriate [Fixed Differently]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- .../vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp
-index 22e6c75fa..db7f4b54a 100644
---- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp
-+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp
-@@ -38,6 +38,10 @@
- #include <limits>
- #include <fenv.h>
-
-+#ifdef O_TRUNC
-+#undef O_TRUNC
-+#endif
-+
- namespace vkt
- {
- namespace SpirVAssembly
---
-2.31.1
-
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch
index ea7659c698..4ecc371ca4 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/external/glslang/src/glslang/Include/PoolAlloc.h
+++ b/external/glslang/src/glslang/Include/PoolAlloc.h
@@ -240,8 +240,9 @@ protected:
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch
index 99cb87b301..58dc1f24dd 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/framework/delibs/dethread/CMakeLists.txt
+++ b/framework/delibs/dethread/CMakeLists.txt
@@ -42,6 +42,7 @@ if (DE_OS_IS_UNIX)
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/gen-framework-path.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/gen-framework-path.patch
new file mode 100644
index 0000000000..8a8d8d2c32
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/gen-framework-path.patch
@@ -0,0 +1,20 @@
+Prepend instead of append to the module search path, as this script needs to use
+the local module build, not the host module build.
+
+Upstream-Status: Submitted
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/external/vulkancts/scripts/gen_framework.py b/external/vulkancts/scripts/gen_framework.py
+index 83c5329ce..10e720910 100755
+--- a/external/vulkancts/scripts/gen_framework.py
++++ b/external/vulkancts/scripts/gen_framework.py
+@@ -33 +33 @@ from collections import OrderedDict
+-sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
++sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
+diff --git a/external/vulkancts/scripts/gen_framework_c.py b/external/vulkancts/scripts/gen_framework_c.py
+index 95587e642..84b878cb2 100644
+--- a/external/vulkancts/scripts/gen_framework_c.py
++++ b/external/vulkancts/scripts/gen_framework_c.py
+@@ -28 +28 @@ import re
+-sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
++sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc b/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
index f9074556f1..09f1fbcaee 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
+++ b/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
@@ -4,12 +4,14 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
SRC_URI = "\
git://github.com/KhronosGroup/VK-GL-CTS.git;protocol=https;name=vk-gl-cts;nobranch=1 \
git://github.com/google/amber;protocol=https;destsuffix=git/external/amber/src;name=amber;branch=main \
- git://github.com/KhronosGroup/glslang.git;protocol=https;destsuffix=git/external/glslang/src;name=glslang;branch=master \
- git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/external/spirv-headers/src;name=spirv-headers;branch=master \
- git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/external/spirv-tools/src;name=spirv-tools;branch=master \
+ git://github.com/KhronosGroup/glslang.git;protocol=https;destsuffix=git/external/glslang/src;name=glslang;branch=main \
+ git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/external/spirv-headers/src;name=spirv-headers;branch=main \
+ git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/external/spirv-tools/src;name=spirv-tools;branch=main \
git://github.com/open-source-parsers/jsoncpp.git;protocol=https;destsuffix=git/external/jsoncpp/src;name=jsoncpp;branch=master \
git://github.com/KhronosGroup/Vulkan-Docs.git;protocol=https;destsuffix=git/external/vulkan-docs/src;name=vulkan-docs;branch=main \
- https://raw.githubusercontent.com/baldurk/renderdoc/fcdea67879fa1991e56cf7734ce0ce27866b665f/renderdoc/api/app/renderdoc_app.h;subdir=git/external/renderdoc/src;name=renderdoc \
+ https://raw.githubusercontent.com/baldurk/renderdoc/v1.1/renderdoc/api/app/renderdoc_app.h;subdir=git/external/renderdoc/src;name=renderdoc \
+ git://github.com/Igalia/ESExtractor.git;protocol=https;destsuffix=git/external/ESExtractor/src;name=ESExtractor;branch=main \
+ git://github.com/Igalia/vk_video_samples.git;protocol=https;destsuffix=git/external/nvidia-video-samples/src;name=video-parser;nobranch=1 \
"
S = "${WORKDIR}/git"
@@ -20,12 +22,12 @@ S = "${WORKDIR}/git"
inherit pkgconfig cmake features_check python3native qemu
-ANY_OF_DISTRO_FEATURES += "opengl wayland"
+ANY_OF_DISTRO_FEATURES += "opengl vulkan"
DEPENDS += "python3-lxml-native libpng zlib virtual/libgles2 qemu-native"
SRC_URI += " \
- file://0001-vulkancts.patch \
+ file://0001-vulkancts-Include-missing-cstdint.patch \
file://0001-use-library-sonames-for-linking.patch \
"
@@ -38,7 +40,7 @@ SRC_URI:append:toolchain-clang = "\
file://fix-clang-private-operator.patch \
"
-EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper -DWAYLAND_SCANNER=${STAGING_BINDIR_NATIVE}/wayland-scanner -DWAYLAND_PROTOCOLS_DIR=${STAGING_DATADIR}/wayland-protocols"
+EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper -DWAYLAND_SCANNER=${STAGING_BINDIR_NATIVE}/wayland-scanner -DWAYLAND_PROTOCOLS_DIR=${STAGING_DATADIR}/wayland-protocols -DAMBER_DISABLE_WERROR=ON"
# The best thing for the user to do is to not specify any of the following
# PACKAGECONFIGs (i.e. leave it blank) which tells the project to do its own
@@ -71,9 +73,9 @@ python __anonymous() {
distrofeatures = (d.getVar("DISTRO_FEATURES") or "")
if not bb.utils.contains_any("PACKAGECONFIG", ["surfaceless", "wayland", "x11_egl", "x11_glx", "x11_egl_glx"], True, False, d):
if "wayland" in distrofeatures:
- d.appendVar("DEPENDS", " wayland-native wayland wayland-protocols")
+ d.appendVar("DEPENDS", " wayland-native ${MLPREFIX}wayland ${MLPREFIX}wayland-protocols")
if "x11" in distrofeatures:
- d.appendVar("DEPENDS", " virtual/libx11 virtual/egl ")
+ d.appendVar("DEPENDS", " virtual/${MLPREFIX}libx11 virtual/${MLPREFIX}egl ")
}
CTSDIR = "/usr/lib/${BPN}"
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-use-library-sonames-for-linking.patch b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts/0001-use-library-sonames-for-linking.patch
index b5a1d331ed..b5a1d331ed 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-use-library-sonames-for-linking.patch
+++ b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts/0001-use-library-sonames-for-linking.patch
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.8.0.bb b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.8.0.bb
deleted file mode 100644
index 024a1719d0..0000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.8.0.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-DESCRIPTION = "OpenGL CTS"
-
-require khronos-cts.inc
-# opengl-es-cts-3.2.8.0
-SRCREV_vk-gl-cts = "317f467fac032b88a4789e4345421f92c4e8716d"
-SRCREV_amber = "209d92e2c27a333e723d24497e8c7a07b2f2eb39"
-SRCREV_glslang = "9158061398a96033c990e69156bd28c67114544b"
-SRCREV_spirv-headers = "449bc986ba6f4c5e10e32828783f9daef2a77644"
-SRCREV_spirv-tools = "ee30773650eca50b1cd3c913babcc2b50d7b91fd"
-# Not yet needed
-SRCREV_jsoncpp = "9059f5cad030ba11d37818847443a53918c327b1"
-SRCREV_vulkan-docs = "d70e01c0be7b8a7d20b186b30b29a75b18bba75d"
-SRC_URI[renderdoc.sha256sum] = "e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e"
-
-SRC_URI += "file://0001-Remove-dead-variable-984.patch;patchdir=external/amber/src"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- install -d ${D}/${CTSDIR}
- cp -r ${B}/external/openglcts/modules/* ${D}/${CTSDIR}
-
- install -m 0755 ${B}/modules/egl/deqp-egl ${D}/${CTSDIR}
- install -m 0755 ${B}/modules/gles2/deqp-gles2 ${D}/${CTSDIR}
- install -m 0755 ${B}/modules/gles3/deqp-gles3 ${D}/${CTSDIR}
- install -m 0755 ${B}/modules/gles31/deqp-gles31 ${D}/${CTSDIR}
- install -m 0755 ${B}/modules/internal/de-internal-tests ${D}/${CTSDIR}
-
- rm -rf ${D}/${CTSDIR}/*.a ${D}/${CTSDIR}/cmake_install.cmake ${D}/${CTSDIR}/CMakeFiles
- rm -rf ${D}/${CTSDIR}/*/*.a ${D}/${CTSDIR}/*/cmake_install.cmake ${D}/${CTSDIR}/*/CMakeFiles
- rm -rf ${D}/${CTSDIR}/common/subgroups/*.a ${D}/${CTSDIR}/common/subgroups/cmake_install.cmake ${D}/${CTSDIR}/common/subgroups/CMakeFiles
-}
-
-SECURITY_CFLAGS:riscv64 = "${SECURITY_NOPIE_CFLAGS}"
-LTO = ""
-
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb
new file mode 100644
index 0000000000..0656d724b4
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "OpenGL CTS"
+
+require khronos-cts.inc
+# opengl-es-cts-3.2.9.3
+SRCREV_vk-gl-cts = "7f5fb62245d535a1fc0bf50b2c7e5a342dc551fe"
+SRCREV_amber = "933ecb4d6288675a92eb1650e0f52b1d7afe8273"
+SRCREV_glslang = "a0ad0d7067521fff880e36acfb8ce453421c3f25"
+SRCREV_spirv-headers = "87d5b782bec60822aa878941e6b13c0a9a954c9b"
+SRCREV_spirv-tools = "f98473ceeb1d33700d01e20910433583e5256030"
+SRCREV_ESExtractor = "ce5d7ebcf0ebb0d78385ee4cc34653eb6764bfc4"
+# Not yet needed
+SRCREV_jsoncpp = "9059f5cad030ba11d37818847443a53918c327b1"
+SRCREV_vulkan-docs = "9a2e576a052a1e65a5d41b593e693ff02745604b"
+SRCREV_video-parser = "7d68747d3524842afaf050c5e00a10f5b8c07904"
+SRC_URI[renderdoc.sha256sum] = "e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e"
+
+SRC_URI += "\
+ git://github.com/nvpro-samples/vk_video_samples.git;protocol=https;destsuffix=git/external/video-parser/src;name=video-parser;branch=main \
+ file://gen-framework-path.patch \
+ "
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -d ${D}/${CTSDIR}
+ cp -r ${B}/external/openglcts/modules/* ${D}/${CTSDIR}
+
+ install -m 0755 ${B}/modules/egl/deqp-egl ${D}/${CTSDIR}
+ install -m 0755 ${B}/modules/gles2/deqp-gles2 ${D}/${CTSDIR}
+ install -m 0755 ${B}/modules/gles3/deqp-gles3 ${D}/${CTSDIR}
+ install -m 0755 ${B}/modules/gles31/deqp-gles31 ${D}/${CTSDIR}
+ install -m 0755 ${B}/modules/internal/de-internal-tests ${D}/${CTSDIR}
+
+ rm -rf ${D}/${CTSDIR}/*.a ${D}/${CTSDIR}/cmake_install.cmake ${D}/${CTSDIR}/CMakeFiles
+ rm -rf ${D}/${CTSDIR}/*/*.a ${D}/${CTSDIR}/*/cmake_install.cmake ${D}/${CTSDIR}/*/CMakeFiles
+ rm -rf ${D}/${CTSDIR}/common/subgroups/*.a ${D}/${CTSDIR}/common/subgroups/cmake_install.cmake ${D}/${CTSDIR}/common/subgroups/CMakeFiles
+}
+
+SECURITY_CFLAGS:riscv64 = "${SECURITY_NOPIE_CFLAGS}"
+LTO = ""
+
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts/0001-use-library-sonames-for-linking.patch b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts/0001-use-library-sonames-for-linking.patch
new file mode 100644
index 0000000000..f12abd0c1a
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts/0001-use-library-sonames-for-linking.patch
@@ -0,0 +1,114 @@
+From acd25c4b8d5b7e420a7a89bdfd6551c70de828b3 Mon Sep 17 00:00:00 2001
+From: Trevor Woerner <twoerner@gmail.com>
+Date: Thu, 23 Sep 2021 19:36:43 -0400
+Subject: [PATCH] use library sonames for linking
+
+The recommended "best practices" for applications is to link to library
+sonames (e.g. libGL.so.1) instead of library names (e.g. libGL.so). This
+ensures that applications don't try to use libraries if an incompatible ABI
+change occurs.
+
+Upstream-Status: Submitted [https://github.com/KhronosGroup/VK-GL-CTS/pull/288]
+Signed-off-by: Trevor Woerner <twoerner@gmail.com>
+---
+ framework/egl/egluGLContextFactory.cpp | 4 ++--
+ framework/egl/wrapper/eglwLibrary.cpp | 2 +-
+ framework/platform/android/tcuAndroidPlatform.cpp | 2 +-
+ framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp | 2 +-
+ .../platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp | 2 +-
+ framework/platform/surfaceless/tcuSurfacelessPlatform.cpp | 6 +++---
+ 6 files changed, 9 insertions(+), 9 deletions(-)
+
+--- a/framework/egl/egluGLContextFactory.cpp
++++ b/framework/egl/egluGLContextFactory.cpp
+@@ -63,7 +63,7 @@ using std::vector;
+ # if (DE_OS == DE_OS_WIN32)
+ # define DEQP_GLES2_LIBRARY_PATH "libGLESv2.dll"
+ # else
+-# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so"
++# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2"
+ # endif
+ #endif
+
+@@ -75,7 +75,7 @@ using std::vector;
+ # if (DE_OS == DE_OS_WIN32)
+ # define DEQP_OPENGL_LIBRARY_PATH "opengl32.dll"
+ # else
+-# define DEQP_OPENGL_LIBRARY_PATH "libGL.so"
++# define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1"
+ # endif
+ #endif
+
+--- a/framework/egl/wrapper/eglwLibrary.cpp
++++ b/framework/egl/wrapper/eglwLibrary.cpp
+@@ -148,7 +148,7 @@ DefaultLibrary::~DefaultLibrary (void)
+ const char* DefaultLibrary::getLibraryFileName (void)
+ {
+ #if (DE_OS == DE_OS_ANDROID) || (DE_OS == DE_OS_UNIX)
+- return "libEGL.so";
++ return "libEGL.so.1";
+ #elif (DE_OS == DE_OS_WIN32)
+ return "libEGL.dll";
+ #else
+--- a/framework/platform/android/tcuAndroidPlatform.cpp
++++ b/framework/platform/android/tcuAndroidPlatform.cpp
+@@ -57,7 +57,7 @@ static const eglu::NativeWindow::Capabil
+ class NativeDisplay : public eglu::NativeDisplay
+ {
+ public:
+- NativeDisplay (void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so") {}
++ NativeDisplay (void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so.1") {}
+ virtual ~NativeDisplay (void) {}
+
+ virtual EGLNativeDisplayType getLegacyNative (void) { return EGL_DEFAULT_DISPLAY; }
+--- a/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp
++++ b/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp
+@@ -75,7 +75,7 @@ class Library : public eglw::DefaultLibr
+ {
+ public:
+ Library (void)
+- : eglw::DefaultLibrary("libEGL.so")
++ : eglw::DefaultLibrary("libEGL.so.1")
+ {
+ }
+
+--- a/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp
++++ b/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp
+@@ -66,7 +66,7 @@ public:
+ EGL_PLATFORM_WAYLAND_KHR,
+ "EGL_KHR_platform_wayland")
+ , m_display (waylandDisplay)
+- , m_library ("libEGL.so") {}
++ , m_library ("libEGL.so.1") {}
+
+ ~Display(void) {}
+ wayland::Display& getWaylandDisplay (void) { return *m_display; }
+--- a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
++++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
+@@ -69,7 +69,7 @@ using std::vector;
+
+ // Default library names
+ #if !defined(DEQP_GLES2_LIBRARY_PATH)
+-# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so"
++# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2"
+ #endif
+
+ #if !defined(DEQP_GLES3_LIBRARY_PATH)
+@@ -77,7 +77,7 @@ using std::vector;
+ #endif
+
+ #if !defined(DEQP_OPENGL_LIBRARY_PATH)
+-# define DEQP_OPENGL_LIBRARY_PATH "libGL.so"
++# define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1"
+ #endif
+
+ #if !defined(DEQP_VULKAN_LIBRARY_PATH)
+@@ -237,7 +237,7 @@ glu::RenderContext* ContextFactory::crea
+ }
+
+ EglRenderContext::EglRenderContext(const glu::RenderConfig& config, const tcu::CommandLine& cmdLine, const glu::RenderContext *sharedContext)
+- : m_egl("libEGL.so")
++ : m_egl("libEGL.so.1")
+ , m_contextType(config.type)
+ , m_eglDisplay(EGL_NO_DISPLAY)
+ , m_eglContext(EGL_NO_CONTEXT)
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.3.1.bb b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.3.1.bb
deleted file mode 100644
index c996eb1f76..0000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.3.1.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-DESCRIPTION = "Vulkan CTS"
-
-require khronos-cts.inc
-# vulkan-cts-1.3.3.1
-SRCREV_vk-gl-cts = "6024a88390942876147a88dce82bbed73b866c1b"
-SRCREV_amber = "8b145a6c89dcdb4ec28173339dd176fb7b6f43ed"
-SRCREV_glslang = "7dda6a6347b0bd550e202942adee475956ef462a"
-SRCREV_spirv-headers = "b765c355f488837ca4c77980ba69484f3ff277f5"
-SRCREV_spirv-tools = "b930e734ea198b7aabbbf04ee1562cf6f57962f0"
-SRCREV_jsoncpp = "9059f5cad030ba11d37818847443a53918c327b1"
-SRCREV_vulkan-docs = "9b5562187a8ad72c171410b036ceedbc450153ba"
-SRC_URI[renderdoc.sha256sum] = "e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e"
-
-SRC_URI += "file://0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch"
-
-S = "${WORKDIR}/git"
-
-REQUIRED_DISTRO_FEATURES = "vulkan"
-inherit features_check
-
-DEPENDS += " vulkan-loader"
-
-do_install() {
- install -d ${D}/${CTSDIR}
- cp -r ${B}/external/vulkancts/modules/vulkan/* ${D}/${CTSDIR}/
- rm -rf ${D}/${CTSDIR}/*.a ${D}/${CTSDIR}/cmake_install.cmake ${D}/${CTSDIR}/CMakeFiles
- rm -rf ${D}/${CTSDIR}/*/*.a ${D}/${CTSDIR}/*/cmake_install.cmake ${D}/${CTSDIR}/*/CMakeFiles
-}
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
new file mode 100644
index 0000000000..1008a5fd42
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "Vulkan CTS"
+
+require khronos-cts.inc
+
+SRC_URI += "git://github.com/Igalia/vk_video_samples.git;protocol=https;destsuffix=git/external/nvidia-video-samples/src;name=video-parser;nobranch=1"
+
+# vulkan-cts-1.3.7.3
+SRCREV_vk-gl-cts = "d71a36db16d98313c431829432a136dbda692a08"
+SRCREV_amber = "933ecb4d6288675a92eb1650e0f52b1d7afe8273"
+SRCREV_glslang = "c5117b328afc86e16edff6ed6afe0fe7872a7cf3"
+SRCREV_spirv-headers = "b8b9eb8640c8c0107ba580fbcb10f969022ca32c"
+SRCREV_spirv-tools = "bfc94f63a7adbcf8ae166f5f108ac9f69079efc0"
+SRCREV_jsoncpp = "9059f5cad030ba11d37818847443a53918c327b1"
+SRCREV_vulkan-docs = "b9aad705f0d9e5e6734ac2ad671d5d1de57b05e0"
+SRC_URI[renderdoc.sha256sum] = "e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e"
+# Not yet needed
+SRCREV_ESExtractor = "75ffcaf55bb069f7a23764194742d2fb78c7f71f"
+SRCREV_video-parser = "138bbe048221d315962ddf8413aa6a08cc62a381"
+
+SRC_URI += "file://0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch \
+ file://0001-vulkan-cts-include-missing-cstdint.patch \
+"
+
+TOOLCHAIN = "gcc"
+
+S = "${WORKDIR}/git"
+
+REQUIRED_DISTRO_FEATURES = "vulkan"
+inherit features_check
+
+DEPENDS += " vulkan-loader"
+
+do_install() {
+ install -d ${D}/${CTSDIR}
+ cp -r ${B}/external/vulkancts/modules/vulkan/* ${D}/${CTSDIR}/
+ rm -rf ${D}/${CTSDIR}/*.a ${D}/${CTSDIR}/cmake_install.cmake ${D}/${CTSDIR}/CMakeFiles
+ rm -rf ${D}/${CTSDIR}/*/*.a ${D}/${CTSDIR}/*/cmake_install.cmake ${D}/${CTSDIR}/*/CMakeFiles
+}
diff --git a/meta-oe/recipes-graphics/wayland/libei_1.2.1.bb b/meta-oe/recipes-graphics/wayland/libei_1.2.1.bb
new file mode 100644
index 0000000000..807dcea1ed
--- /dev/null
+++ b/meta-oe/recipes-graphics/wayland/libei_1.2.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "libei is a library for Emulated Input, primarily aimed at the Wayland stack."
+HOMEPAGE = "https://gitlab.freedesktop.org/libinput/libei"
+SECTION = "graphics"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a98fa76460f96f41696611d6f07e8d49"
+
+DEPENDS = " \
+ libxkbcommon \
+ libevdev \
+ libxslt-native \
+ python3-attrs-native \
+ python3-jinja2-native \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'basu', d)} \
+"
+
+SRC_URI = "git://gitlab.freedesktop.org/libinput/libei.git;protocol=https;branch=main"
+
+S = "${WORKDIR}/git"
+SRCREV = "08f1d41085a6ae4bac7bc52abe2955d3354342cb"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON = "-Dtests=disabled"
+
diff --git a/meta-oe/recipes-graphics/wayland/waylandpp/0001-include-missing-cstdint.patch b/meta-oe/recipes-graphics/wayland/waylandpp/0001-include-missing-cstdint.patch
new file mode 100644
index 0000000000..f2169c43c9
--- /dev/null
+++ b/meta-oe/recipes-graphics/wayland/waylandpp/0001-include-missing-cstdint.patch
@@ -0,0 +1,59 @@
+From 5e3243b163aa5d50083b4036c21f84c1204f2023 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 26 Jan 2023 23:25:05 -0800
+Subject: [PATCH] include missing <cstdint>
+
+gcc 13 moved some includes around and as a result <cstdint> is no longer transitively included [1]. Explicitly include it for uint{32,64}_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Upstream-Status: Submitted [https://github.com/NilsBrause/waylandpp/pull/75]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/wayland-client.hpp | 1 +
+ scanner/scanner.cpp | 3 +++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/include/wayland-client.hpp b/include/wayland-client.hpp
+index a3f782b..4598a0e 100644
+--- a/include/wayland-client.hpp
++++ b/include/wayland-client.hpp
+@@ -29,6 +29,7 @@
+ /** \file */
+
+ #include <atomic>
++#include <cstdint>
+ #include <functional>
+ #include <memory>
+ #include <string>
+diff --git a/scanner/scanner.cpp b/scanner/scanner.cpp
+index bebd71e..c25746a 100644
+--- a/scanner/scanner.cpp
++++ b/scanner/scanner.cpp
+@@ -15,6 +15,7 @@
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
++#include <cstdint>
+ #include <fstream>
+ #include <iostream>
+ #include <list>
+@@ -1106,6 +1107,7 @@ int main(int argc, char *argv[])
+ wayland_hpp << "#pragma once" << std::endl
+ << std::endl
+ << "#include <array>" << std::endl
++ << "#include <cstdint>" << std::endl
+ << "#include <functional>" << std::endl
+ << "#include <memory>" << std::endl
+ << "#include <string>" << std::endl
+@@ -1125,6 +1127,7 @@ int main(int argc, char *argv[])
+ wayland_server_hpp << "#pragma once" << std::endl
+ << std::endl
+ << "#include <array>" << std::endl
++ << "#include <cstdint>" << std::endl
+ << "#include <functional>" << std::endl
+ << "#include <memory>" << std::endl
+ << "#include <string>" << std::endl
+--
+2.39.1
+
diff --git a/meta-oe/recipes-graphics/wayland/waylandpp_1.0.0.bb b/meta-oe/recipes-graphics/wayland/waylandpp_1.0.0.bb
index f075f2a3ae..c1f5f4ed8e 100644
--- a/meta-oe/recipes-graphics/wayland/waylandpp_1.0.0.bb
+++ b/meta-oe/recipes-graphics/wayland/waylandpp_1.0.0.bb
@@ -2,7 +2,8 @@ SUMMARY = " C++ binding for Wayland using the most modern C++ technology"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3aae28cc66d61975114c2b14df215407"
-SRC_URI = "git://github.com/NilsBrause/waylandpp.git;protocol=https;branch=master"
+SRC_URI = "git://github.com/NilsBrause/waylandpp.git;protocol=https;branch=master \
+ file://0001-include-missing-cstdint.patch"
DEPENDS = "pugixml"
DEPENDS:append:class-target = " waylandpp-native wayland virtual/egl virtual/libgles2"
@@ -10,7 +11,9 @@ DEPENDS:append:class-target = " waylandpp-native wayland virtual/egl virtual/lib
S = "${WORKDIR}/git"
SRCREV = "4321ed5c7b4bffa41b8a2a13dc7f3ece1191f4f3"
-inherit cmake pkgconfig
+inherit cmake pkgconfig features_check
+
+REQUIRED_DISTRO_FEATURES:class-target = "opengl"
EXTRA_OECMAKE:class-native = " \
-DBUILD_SCANNER=ON \
@@ -34,4 +37,9 @@ EXTRA_OECMAKE:class-target = " \
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--enable-new-dtags" \
"
+do_install:append:class-target() {
+ sed -i -e 's|${S}||g' ${D}${libdir}/cmake/waylandpp/waylandpp-targets.cmake
+ sed -i -e 's|${STAGING_DIR_HOST}||g' ${D}${libdir}/cmake/waylandpp/waylandpp-targets.cmake
+}
+
BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-oe/recipes-graphics/x11vnc/files/CVE-2020-29074.patch b/meta-oe/recipes-graphics/x11vnc/files/CVE-2020-29074.patch
new file mode 100644
index 0000000000..fbdb9123cc
--- /dev/null
+++ b/meta-oe/recipes-graphics/x11vnc/files/CVE-2020-29074.patch
@@ -0,0 +1,27 @@
+CVE: CVE-2020-29074
+Upstream-Status: Backport [https://github.com/LibVNC/x11vnc/commit/69eeb9f7baa14ca03b16c9de821f9876def7a36a ]
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+
+
+From 69eeb9f7baa14ca03b16c9de821f9876def7a36a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Gu=C3=A9nal=20DAVALAN?= <guenal.davalan@uca.fr>
+Date: Wed, 18 Nov 2020 08:40:45 +0100
+Subject: [PATCH] scan: limit access to shared memory segments to current user
+
+---
+ src/scan.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/scan.c b/src/scan.c
+index 43e00d20..12994d52 100644
+--- a/src/scan.c
++++ b/src/scan.c
+@@ -320,7 +320,7 @@ static int shm_create(XShmSegmentInfo *shm, XImage **ximg_ptr, int w, int h,
+
+ #if HAVE_XSHM
+ shm->shmid = shmget(IPC_PRIVATE,
+- xim->bytes_per_line * xim->height, IPC_CREAT | 0777);
++ xim->bytes_per_line * xim->height, IPC_CREAT | 0600);
+
+ if (shm->shmid == -1) {
+ rfbErr("shmget(%s) failed.\n", name);
diff --git a/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb b/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
index 5f7c0beb66..74f80e1844 100644
--- a/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
+++ b/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
@@ -2,16 +2,16 @@ SUMMARY = "Exports your X session or FrameBuffer(fbdev) on-the-fly via VNC"
HOMEPAGE = "http://www.karlrunge.com/x11vnc/"
SECTION = "x11/utils"
-AUTHOR = "Karl Runge"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://src/x11vnc.h;endline=31;md5=e871a2ad004776794b616822dcab6314"
SRCREV = "87cd0530f438372dda3c70bb491a6fd19f09acc2"
-PV .= "+git${SRCPV}"
+PV .= "+git"
SRC_URI = "git://github.com/LibVNC/x11vnc;branch=master;protocol=https \
file://starting-fix.patch \
+ file://CVE-2020-29074.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb b/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb
deleted file mode 100644
index 936d71b101..0000000000
--- a/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-LICENSE = "ManishSingh"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bd1fb9ee90eead85f7b171807b3ab4f2"
-
-DEPENDS = "libpng libxcursor"
-
-SRC_URI = "http://xorg.freedesktop.org/archive/individual/app/${BPN}-${PV}.tar.bz2"
-SRC_URI[md5sum] = "25cc7ca1ce5dcbb61c2b471c55e686b5"
-SRC_URI[sha256sum] = "35b6f844b24f1776e9006c880a745728800764dbe3b327a128772b4610d8eb3d"
-
-inherit features_check autotools pkgconfig
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.8.bb b/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.8.bb
new file mode 100644
index 0000000000..3770babe80
--- /dev/null
+++ b/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.8.bb
@@ -0,0 +1,13 @@
+LICENSE = "ManishSingh"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bd1fb9ee90eead85f7b171807b3ab4f2"
+
+DEPENDS = "libpng libxcursor"
+
+SRC_URI = "http://xorg.freedesktop.org/archive/individual/app/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "32b33ce27b4e285e64ff375731806bb7988cc626ff10915c65f1dc4da640cc9b"
+
+inherit features_check autotools pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb b/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb
deleted file mode 100644
index 259c640523..0000000000
--- a/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "xdotool - command-line X11 automation tool - utilising X11 XTEST interface"
-HOMEPAGE = "http://www.semicomplete.com/projects/xdotool"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=2f9cbf7e9401cec8a38666a08851ce6b"
-SECTION = "x11"
-DEPENDS = "virtual/libx11 libxtst"
-
-PR = "r1"
-
-inherit features_check pkgconfig perlnative
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://semicomplete.googlecode.com/files/xdotool-${PV}.tar.gz"
-SRC_URI[md5sum] = "1d5be641e512c343abfe5f78b39e6f19"
-SRC_URI[sha256sum] = "42d7271fbc796e53db71bb221f311b9ff3c51d90a71c9487a9bd3101ca39894f"
-
-EXTRA_OEMAKE = "PREFIX=${prefix} INSTALLLIB=${libdir} INSTALLMAN=${mandir}"
-
-do_install() {
- oe_runmake -e install DESTDIR=${D} PREFIX=${prefix}
-}
-
diff --git a/meta-oe/recipes-graphics/xdotool/xdotool_3.20211022.1.bb b/meta-oe/recipes-graphics/xdotool/xdotool_3.20211022.1.bb
new file mode 100644
index 0000000000..cef82bd348
--- /dev/null
+++ b/meta-oe/recipes-graphics/xdotool/xdotool_3.20211022.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "xdotool - command-line X11 automation tool - utilising X11 XTEST interface"
+HOMEPAGE = "https://github.com/jordansissel/xdotool"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=2f9cbf7e9401cec8a38666a08851ce6b"
+SECTION = "x11"
+DEPENDS = "virtual/libx11 libxtst libxinerama libxkbcommon"
+
+inherit features_check pkgconfig perlnative
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "https://github.com/jordansissel/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "96f0facfde6d78eacad35b91b0f46fecd0b35e474c03e00e30da3fdd345f9ada"
+
+EXTRA_OEMAKE = "PREFIX=${prefix} INSTALLLIB=${libdir} INSTALLMAN=${mandir}"
+
+do_install() {
+ oe_runmake install DESTDIR=${D} PREFIX=${prefix}
+}
diff --git a/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.10.bb b/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.10.bb
new file mode 100644
index 0000000000..7d025de4c4
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.10.bb
@@ -0,0 +1,16 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+
+DESCRIPTION = "A collection of utilities used to tweak and query the runtime configuration\
+of the X server."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=13f70acf3c27f5f834bbc954df775f8e"
+
+BBCLASSEXTEND = "native"
+
+DEPENDS += "libice"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "3deefb7da26af9dc799b5628d929d91c9af68c78575639944db3b955f29aa029"
+
diff --git a/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.9.bb b/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.9.bb
deleted file mode 100644
index ea0ef0a7e2..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.9.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "X.Org X11 X client utilities"
-
-DESCRIPTION = "A collection of utilities used to tweak and query the runtime configuration\
-of the X server."
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=13f70acf3c27f5f834bbc954df775f8e"
-
-BBCLASSEXTEND = "native"
-
-DEPENDS += "libice"
-
-SRC_URI_EXT = "xz"
-SRC_URI[sha256sum] = "2cb9dfcb545683af77fb1029bea3fc52dcc8a0666f7b8b2d7373b6ed4c408c05"
-
diff --git a/meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch b/meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch
index c5a70f5d08..bfda2dfe71 100644
--- a/meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch
+++ b/meta-oe/recipes-graphics/xorg-app/sessreg/0001-Makefile.am-Error-Fix.patch
@@ -8,7 +8,7 @@ Do not compile man dir since error always occur.
| make[2]: *** [sessreg.1] Error 1
It is not a good way.But can remove it from SKIP_RECIPE.
-Upstream-Status: pending
+Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
diff --git a/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.2.bb b/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.2.bb
deleted file mode 100644
index d4e9597bdf..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "a simple program for managing utmp/wtmp entries"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d938a70c8280c265a1ccd2954365d185"
-SRC_URI += "file://0001-Makefile.am-Error-Fix.patch"
-SRC_URI[md5sum] = "92be564d4be7d8aa7b5024057b715210"
-SRC_URI[sha256sum] = "dfcb9e954273ace63879aec053c7880466f8755752a35aa9ced3fa5f04fd2c33"
-
-CFLAGS:append:libc-musl = " -D_WTMPX_FILE=WTMP_FILE -D_PATH_WTMPX=_PATH_WTMP -D_UTMPX_FILE=UTMP_FILE -D_PATH_UTMPX=_PATH_UTMP "
-
diff --git a/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.3.bb b/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.3.bb
new file mode 100644
index 0000000000..33ab22cde4
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.3.bb
@@ -0,0 +1,11 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "a simple program for managing utmp/wtmp entries"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d938a70c8280c265a1ccd2954365d185"
+SRC_URI += "file://0001-Makefile.am-Error-Fix.patch"
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "022acd5de8077dddc4f919961f79e102ecd5f3228a333681af5cd0e7344facc2"
+
+CFLAGS:append:libc-musl = " -D_WTMPX_FILE=WTMP_FILE -D_PATH_WTMPX=_PATH_WTMP -D_UTMPX_FILE=UTMP_FILE -D_PATH_UTMPX=_PATH_UTMP "
+
diff --git a/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.3.bb b/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.3.bb
deleted file mode 100644
index 18fa63ead6..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.3.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "A program to compile XKB keyboard description"
-
-DESCRIPTION = "The xkbcomp keymap compiler converts a description of an \
-XKB keymap into one of several output formats. The most common use for \
-xkbcomp is to create a compiled keymap file (.xkm extension) which can \
-be read directly by XKB-capable X servers or utilities."
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=5feafdbe6dfe9e2bd32325be0cfc86f8"
-
-PE = "1"
-
-DEPENDS += "libxkbfile xrandr"
-
-BBCLASSEXTEND = "native"
-
-SRC_URI_EXT = "xz"
-SRC_URI[sha256sum] = "b560c678da6930a0da267304fa3a41cc5df39a96a5e23d06f14984c87b6f587b"
diff --git a/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.4.bb b/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.4.bb
new file mode 100644
index 0000000000..9c522d6ae1
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.4.bb
@@ -0,0 +1,19 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "A program to compile XKB keyboard description"
+
+DESCRIPTION = "The xkbcomp keymap compiler converts a description of an \
+XKB keymap into one of several output formats. The most common use for \
+xkbcomp is to create a compiled keymap file (.xkm extension) which can \
+be read directly by XKB-capable X servers or utilities."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=5feafdbe6dfe9e2bd32325be0cfc86f8"
+
+PE = "1"
+
+DEPENDS += "libxkbfile xrandr"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "be8d8554d40e981d1b93b5ff82497c9ad2259f59f675b38f1b5e84624c07fade"
diff --git a/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.6.bb b/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.6.bb
deleted file mode 100644
index 4949616ddc..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.6.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "X.Org X11 X client utilities"
-
-DESCRIPTION = "xgamma allows X users to query and alter the gamma \
-correction of a monitor via the X video mode extension."
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=ac9801b8423fd7a7699ccbd45cf134d8"
-
-DEPENDS += "libxxf86vm"
-
-BBCLASSEXTEND = "native"
-
-SRC_URI[md5sum] = "90b4305157c2b966d5180e2ee61262be"
-SRC_URI[sha256sum] = "0ef1c35b5c18b1b22317f455c8df13c0a471a8efad63c89c98ae3ce8c2b222d3"
diff --git a/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.7.bb b/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.7.bb
new file mode 100644
index 0000000000..dc9cbadb4c
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xgamma_1.0.7.bb
@@ -0,0 +1,15 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+
+DESCRIPTION = "xgamma allows X users to query and alter the gamma \
+correction of a monitor via the X video mode extension."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=ac9801b8423fd7a7699ccbd45cf134d8"
+
+DEPENDS += "libxxf86vm"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "1c79dae85a8953a15f4fe5c2895a033307b43b8613456c87ec47b374b113bc8f"
diff --git a/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb b/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb
deleted file mode 100644
index b42c1b9506..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-SUMMARY = "A program to compile XKB keyboard description"
-DESCRIPTION = "The xkbevd event daemon listens for specified XKB \
-events and executes requested commands if they occur. "
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=208668fa9004709ba22c2b748140956c"
-
-DEPENDS += "libxkbfile bison-native"
-
-BBCLASSEXTEND = "native"
-
-SRC_URI[md5sum] = "c747faf1f78f5a5962419f8bdd066501"
-SRC_URI[sha256sum] = "2430a2e5302a4cb4a5530c1df8cb3721a149bbf8eb377a2898921a145197f96a"
diff --git a/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.5.bb b/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.5.bb
new file mode 100644
index 0000000000..afc1fe17d5
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.5.bb
@@ -0,0 +1,13 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+SUMMARY = "A program to compile XKB keyboard description"
+DESCRIPTION = "The xkbevd event daemon listens for specified XKB \
+events and executes requested commands if they occur. "
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=208668fa9004709ba22c2b748140956c"
+
+DEPENDS += "libxkbfile bison-native"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "38357b702de9d3457c4ff75053390f457b84c4accc7f088101255c37c684926b"
diff --git a/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.5.bb b/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.5.bb
deleted file mode 100644
index 7b6ef96825..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.5.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-SUMMARY = "A program to compile XKB keyboard description"
-DESCRIPTION = "xkbprint generates a printable or encapsulated PostScript \
-description of an XKB keyboard description."
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=20f28f97555b220fde762bc2a4406a8f"
-
-DEPENDS += "libxkbfile"
-
-BBCLASSEXTEND = "native"
-
-SRC_URI[md5sum] = "9c34da77363dc3d0f616980da87244bf"
-SRC_URI[sha256sum] = "5b58fe834f0822f06d63d283fac404098c6d3f6acce61888b81016f1c41023fa"
diff --git a/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.6.bb b/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.6.bb
new file mode 100644
index 0000000000..e866bed016
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.6.bb
@@ -0,0 +1,13 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+SUMMARY = "A program to compile XKB keyboard description"
+DESCRIPTION = "xkbprint generates a printable or encapsulated PostScript \
+description of an XKB keyboard description."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=20f28f97555b220fde762bc2a4406a8f"
+
+DEPENDS += "libxkbfile"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI[sha256sum] = "99cc9404f7b90289ae04944c0d98a208cc8b158492ad6481386e31d4d09aa7b0"
+SRC_URI_EXT = "xz"
diff --git a/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.5.bb b/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.5.bb
index a672ba5e5e..f078ad60eb 100644
--- a/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.5.bb
+++ b/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.5.bb
@@ -13,7 +13,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=64322fab5239f5c8d97cf6e0e14f1c62"
DEPENDS += "libxaw libxkbfile"
-BBCLASSEXTEND = "native"
-
SRC_URI_EXT = "xz"
SRC_URI[sha256sum] = "f6a4a8e9c54582beb3787b1faa8168caab125c1fee0ca9cfa5b6c9c1df25eea4"
diff --git a/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.3.bb b/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.3.bb
deleted file mode 100644
index 288bcfc8fe..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.3.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "X.Org X11 X client utilities"
-HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xlsatoms/"
-DESCRIPTION = "Xlsatoms lists the interned atoms defined on an X11 server"
-SECTION = "x11/app"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2b08d9e2e718ac83e6fe2b974d4b5fd8"
-
-DEPENDS += "libxmu"
-BBCLASSEXTEND = "native"
-
-SRC_URI[md5sum] = "61671fee12535347db24ec3a715032a7"
-SRC_URI[sha256sum] = "57868f958c263976727881f3078e55b86b4a109dc578d2b92f5c6d690850a382"
diff --git a/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.4.bb b/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.4.bb
new file mode 100644
index 0000000000..ad06612d5e
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.4.bb
@@ -0,0 +1,14 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xlsatoms/"
+DESCRIPTION = "Xlsatoms lists the interned atoms defined on an X11 server"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2b08d9e2e718ac83e6fe2b974d4b5fd8"
+
+DEPENDS += "libxmu"
+BBCLASSEXTEND = "native"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "f4bfa15f56c066d326a5d5b292646708f25b9247506840b9047cd2687dcc71b7"
diff --git a/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.4.bb b/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.4.bb
deleted file mode 100644
index 42bda7ea35..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.4.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "X.Org X11 X client utilities"
-HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xlsclients/"
-DESCRIPTION = "xlsclients is a utility for listing information about the \
-client applications running on a X11 server."
-SECTION = "x11/app"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=350e1b718a56df39cfe8ca9345ea4575"
-
-BBCLASSEXTEND = "native"
-
-SRC_URI[md5sum] = "4fa92377e0ddc137cd226a7a87b6b29a"
-SRC_URI[sha256sum] = "773f2af49c7ea2c44fba4213bee64325875c1b3c9bc4bbcd8dac9261751809c1"
diff --git a/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.5.bb b/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.5.bb
new file mode 100644
index 0000000000..d73a27f971
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xlsclients_1.1.5.bb
@@ -0,0 +1,14 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xlsclients/"
+DESCRIPTION = "xlsclients is a utility for listing information about the \
+client applications running on a X11 server."
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=350e1b718a56df39cfe8ca9345ea4575"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "68baee57e70250ac4a7759fb78221831f97d88bc8e51dcc2e64eb3f8ca56bae3"
diff --git a/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.6.bb b/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.6.bb
deleted file mode 100644
index cb123837d0..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.6.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "Display a message or query in a window"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=73c7f696a728de728d7446cbca814cc5"
-
-DEPENDS += "libxaw"
-
-SRC_URI[sha256sum] = "d2eac545f137156b960877e052fcc8e29795ed735c02f7690fd7b439e6846a12"
-SRC_URI_EXT = "xz"
diff --git a/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.7.bb b/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.7.bb
new file mode 100644
index 0000000000..6682784fbf
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.7.bb
@@ -0,0 +1,10 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "Display a message or query in a window"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=73c7f696a728de728d7446cbca814cc5"
+
+DEPENDS += "libxaw"
+
+SRC_URI[sha256sum] = "703fccb7a0b772d61d7e603c189b9739866aa97ba985c727275420f829a30356"
+SRC_URI_EXT = "xz"
diff --git a/meta-oe/recipes-graphics/xorg-app/xrdb_1.2.1.bb b/meta-oe/recipes-graphics/xorg-app/xrdb_1.2.1.bb
deleted file mode 100644
index a8c5b3d0a4..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xrdb_1.2.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-SUMMARY = "X server resource database utility"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d1167c4f586bd41f0c62166db4384a69"
-
-DEPENDS += "libxmu"
-
-SRC_URI[sha256sum] = "4f5d031c214ffb88a42ae7528492abde1178f5146351ceb3c05f3b8d5abee8b4"
diff --git a/meta-oe/recipes-graphics/xorg-app/xrdb_1.2.2.bb b/meta-oe/recipes-graphics/xorg-app/xrdb_1.2.2.bb
new file mode 100644
index 0000000000..53214c8fe8
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xrdb_1.2.2.bb
@@ -0,0 +1,11 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+SUMMARY = "X server resource database utility"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d1167c4f586bd41f0c62166db4384a69"
+
+DEPENDS += "libxmu"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "31f5fcab231b38f255b00b066cf7ea3b496df712c9eb2d0d50c670b63e5033f4"
+
+EXTRA_OECONF += "--with-cpp=${bindir}/cpp"
diff --git a/meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.7.bb b/meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.7.bb
deleted file mode 100644
index 6f6ad73e63..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.7.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "X.Org X11 X client utilities"
-HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xrefresh/"
-DESCRIPTION = "xrefresh - refresh all or part of an X screen"
-SECTION = "x11/app"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dad633bce9c3cd0e3abf72a16e0057cf"
-
-BBCLASSEXTEND = "native"
-
-SRC_URI[sha256sum] = "a9f1d635f2f42283d0174e94d09ab69190c227faa5ab542bfe15ed9607771b1e"
-SRC_URI_EXT = "xz"
diff --git a/meta-oe/recipes-graphics/xorg-app/xrefresh_1.1.0.bb b/meta-oe/recipes-graphics/xorg-app/xrefresh_1.1.0.bb
new file mode 100644
index 0000000000..12d05b1307
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xrefresh_1.1.0.bb
@@ -0,0 +1,13 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xrefresh/"
+DESCRIPTION = "xrefresh - refresh all or part of an X screen"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dad633bce9c3cd0e3abf72a16e0057cf"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI[sha256sum] = "29ed592d5ece35a3029004d8c46f3002f92970870a96c11e38baf7f1122b8b5f"
+SRC_URI_EXT = "xz"
diff --git a/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb b/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb
deleted file mode 100644
index b757329d94..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xsetmode_1.0.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "X.Org X11 X client utilities"
-HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xsetmode/"
-DESCRIPTION = "xsetmode sets the mode of an XInput device to either absolute \
-or relative."
-SECTION = "x11/app"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9b37e00e7793b667cbc64f9df7b6d733"
-
-DEPENDS += "libxi"
-BBCLASSEXTEND = "native"
-
-SRC_URI[md5sum] = "d074e79d380b031d2f60e4cd56538c93"
-SRC_URI[sha256sum] = "988b47cd922991c6e6adbce15dc386ac75690b61744b526c3af5a4eaa9afa0aa"
diff --git a/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.2.bb b/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.2.bb
deleted file mode 100644
index 30a1e089e3..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "X.Org X11 X client utilities"
-HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xsetroot/"
-DESCRIPTION = "xsetroot is a root window parameter setting utility for X"
-SECTION = "x11/app"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6ea29dbee22324787c061f039e0529de"
-
-DEPENDS += "xbitmaps libxcursor"
-BBCLASSEXTEND = "native"
-
-SRC_URI[md5sum] = "5fe769c8777a6e873ed1305e4ce2c353"
-SRC_URI[sha256sum] = "10c442ba23591fb5470cea477a0aa5f679371f4f879c8387a1d9d05637ae417c"
diff --git a/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.3.bb b/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.3.bb
new file mode 100644
index 0000000000..7e909f90cf
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.3.bb
@@ -0,0 +1,13 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xsetroot/"
+DESCRIPTION = "xsetroot is a root window parameter setting utility for X"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ea29dbee22324787c061f039e0529de"
+
+DEPENDS += "xbitmaps libxcursor libxmu"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "6081b45a9eb4426e045d259d1e144b32417fb635e5b96aa90647365ac96638d1"
diff --git a/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.4.bb b/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.4.bb
deleted file mode 100644
index 9d523bd7b1..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.4.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "X.Org X11 X client utilities"
-HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xstdcmap"
-DESCRIPTION = "The xstdcmap utility can be used to selectively define \
-standard colormap properties."
-SECTION = "x11/app"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2b08d9e2e718ac83e6fe2b974d4b5fd8"
-
-DEPENDS += "libxmu"
-BBCLASSEXTEND = "native"
-
-SRC_URI[md5sum] = "da67142c128d18386ff145882e0afc66"
-SRC_URI[sha256sum] = "06898b3f1eaad0b205ff3c75bdefa3207868b889d4cb37b32b8267b2bbfe6f8b"
-
diff --git a/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.5.bb b/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.5.bb
new file mode 100644
index 0000000000..7d3aab501c
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.5.bb
@@ -0,0 +1,16 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xstdcmap"
+DESCRIPTION = "The xstdcmap utility can be used to selectively define \
+standard colormap properties."
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2b08d9e2e718ac83e6fe2b974d4b5fd8"
+
+DEPENDS += "libxmu"
+BBCLASSEXTEND = "native"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "365847e379398499ec9ad9a299cc47a0d6e7feba9546dfd4e5b422204b5ac180"
+
diff --git a/meta-oe/recipes-graphics/xorg-app/xterm/0001-Add-configure-time-check-for-setsid.patch b/meta-oe/recipes-graphics/xorg-app/xterm/0001-Add-configure-time-check-for-setsid.patch
index 92ecdac224..a6cf16e4e9 100644
--- a/meta-oe/recipes-graphics/xorg-app/xterm/0001-Add-configure-time-check-for-setsid.patch
+++ b/meta-oe/recipes-graphics/xorg-app/xterm/0001-Add-configure-time-check-for-setsid.patch
@@ -1,4 +1,4 @@
-From 3730a38efad969fb6f8227df07eb4461a078f5a3 Mon Sep 17 00:00:00 2001
+From b23d38f1216c4d70738edaa367cf9ecd2dd4b660 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 13 Dec 2019 12:59:26 -0800
Subject: [PATCH] Add configure time check for setsid
@@ -7,18 +7,19 @@ Do not assume glibc == linux
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
configure | 1 +
configure.in | 1 +
main.c | 4 ++--
xtermcfg.hin | 1 +
- 5 files changed, 6 insertions(+), 2 deletions(-)
+ 4 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
-index 0aafefc..03e8df0 100755
+index 72342c7..c2ec2ac 100755
--- a/configure
+++ b/configure
-@@ -5605,6 +5605,7 @@ for ac_func in \
+@@ -5803,6 +5803,7 @@ for ac_func in \
unsetenv \
sched_yield \
setpgid \
@@ -27,7 +28,7 @@ index 0aafefc..03e8df0 100755
tcgetattr \
waitpid \
diff --git a/configure.in b/configure.in
-index d2fee88..74d65df 100644
+index 56dbc25..0608c80 100644
--- a/configure.in
+++ b/configure.in
@@ -99,6 +99,7 @@ AC_CHECK_FUNCS( \
@@ -39,10 +40,10 @@ index d2fee88..74d65df 100644
tcgetattr \
waitpid \
diff --git a/main.c b/main.c
-index 5e60589..b81d2be 100644
+index 24da0eb..332174c 100644
--- a/main.c
+++ b/main.c
-@@ -2903,7 +2903,7 @@ main(int argc, char *argv[]ENVP_ARG)
+@@ -2956,7 +2956,7 @@ main(int argc, char *argv[]ENVP_ARG)
}
}
@@ -51,7 +52,7 @@ index 5e60589..b81d2be 100644
#define USE_OPENPTY 1
static int opened_tty = -1;
#endif
-@@ -4074,7 +4074,7 @@ spawnXTerm(XtermWidget xw, unsigned line_speed)
+@@ -4205,7 +4205,7 @@ spawnXTerm(XtermWidget xw, unsigned line_speed)
/*
* now in child process
*/
@@ -61,17 +62,14 @@ index 5e60589..b81d2be 100644
#else
int pgrp = getpid();
diff --git a/xtermcfg.hin b/xtermcfg.hin
-index 1dbc3b8..4f3ff5b 100644
+index 19048cd..e54d2cd 100644
--- a/xtermcfg.hin
+++ b/xtermcfg.hin
-@@ -95,6 +95,7 @@
- #undef HAVE_PUTENV /* AC_CHECK_FUNCS(putenv) */
+@@ -98,6 +98,7 @@
#undef HAVE_SCHED_YIELD /* AC_CHECK_FUNCS(sched_yield) */
+ #undef HAVE_SETITIMER /* CF_SETITIMER */
#undef HAVE_SETPGID /* AC_CHECK_FUNCS(setpgid) */
+#undef HAVE_SETSID /* AC_CHECK_FUNCS(setsid) */
#undef HAVE_STDINT_H /* AC_PROG_CC_STDC */
#undef HAVE_STDLIB_H /* AC_CHECK_HEADERS(stdlib.h) */
#undef HAVE_STDNORETURN_H /* CF_C11_NORETURN */
---
-2.24.1
-
diff --git a/meta-oe/recipes-graphics/xorg-app/xterm_373.bb b/meta-oe/recipes-graphics/xorg-app/xterm_373.bb
deleted file mode 100644
index bc555cbcd9..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xterm_373.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-SUMMARY = "xterm is the standard terminal emulator for the X Window System"
-DEPENDS = "libxaw xorgproto libxext libxau libxinerama libxpm ncurses desktop-file-utils-native"
-
-LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=5ec6748ed90e588caa9318b780a0d498"
-
-SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz \
- file://0001-Add-configure-time-check-for-setsid.patch \
- "
-
-SRC_URI[sha256sum] = "deb0989473a63908b5a8d44dfeea8301c8710f6ce01fb57ce8c30002375746b6"
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native"
-
-# Let xterm install .desktop files
-inherit mime-xdg
-
-EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} \
- --x-libraries=${STAGING_LIBDIR} \
- FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config \
- --disable-imake \
- --disable-rpath-hack \
- --disable-setuid \
- --with-app-defaults=${datadir}/X11/app-defaults \
- "
-
-B = "${S}"
-
-CFLAGS += "-D_GNU_SOURCE"
-
-do_configure() {
- gnu-configize --force
- sed -e "s%/usr/contrib/X11R6%${STAGING_LIBDIR}%g" -i configure
- oe_runconf
-}
-
-do_install:append() {
- oe_runmake install-desktop DESTDIR="${D}" DESKTOP_FLAGS="--dir=${D}${DESKTOPDIR}"
-}
-
-RPROVIDES:${PN} = "virtual-x-terminal-emulator"
-
-# busybox can supply resize too
-inherit update-alternatives
-
-ALTERNATIVE:${PN} = "resize x-terminal-emulator"
-ALTERNATIVE_TARGET[x-terminal-emulator] = "${bindir}/xterm"
-# rxvt-unicode defaults to priority 10. Let's be one point lower to let it override xterm.
-ALTERNATIVE_PRIORITY[x-terminal-emulator] = "9"
diff --git a/meta-oe/recipes-graphics/xorg-app/xterm_388.bb b/meta-oe/recipes-graphics/xorg-app/xterm_388.bb
new file mode 100644
index 0000000000..8578f0cc97
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xterm_388.bb
@@ -0,0 +1,50 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+SUMMARY = "xterm is the standard terminal emulator for the X Window System"
+DEPENDS = "libxaw xorgproto libxext libxau libxinerama libxpm ncurses desktop-file-utils-native"
+
+LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=9c96124b492c0c02356850c243aaeca2"
+
+SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz \
+ file://0001-Add-configure-time-check-for-setsid.patch \
+ "
+
+SRC_URI[sha256sum] = "ac429345e6f937a5945a89d425a265fee6c215fc669dbdc6a0326e21f4c5f674"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native"
+
+# Let xterm install .desktop files
+inherit mime-xdg
+
+EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} \
+ --x-libraries=${STAGING_LIBDIR} \
+ FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config \
+ --disable-imake \
+ --disable-rpath-hack \
+ --disable-setuid \
+ --with-app-defaults=${datadir}/X11/app-defaults \
+ "
+
+B = "${S}"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+do_configure() {
+ gnu-configize --force
+ sed -e "s%/usr/contrib/X11R6%${STAGING_LIBDIR}%g" -i configure
+ oe_runconf
+}
+
+do_install:append() {
+ oe_runmake install-desktop DESTDIR="${D}" DESKTOP_FLAGS="--dir=${D}${DESKTOPDIR}"
+}
+
+RPROVIDES:${PN} = "virtual-x-terminal-emulator"
+
+# busybox can supply resize too
+inherit update-alternatives
+
+ALTERNATIVE:${PN} = "resize x-terminal-emulator"
+ALTERNATIVE_TARGET[x-terminal-emulator] = "${bindir}/xterm"
+# rxvt-unicode defaults to priority 10. Let's be one point lower to let it override xterm.
+ALTERNATIVE_PRIORITY[x-terminal-emulator] = "9"
diff --git a/meta-oe/recipes-graphics/xorg-app/xwd_1.0.8.bb b/meta-oe/recipes-graphics/xorg-app/xwd_1.0.8.bb
deleted file mode 100644
index 44b9c80d73..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xwd_1.0.8.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "xwd is a tool to capture an X window or screen to file"
-HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xwd/"
-SECTION = "x11/app"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c0cdb783e9a0198237371fdaa26a18bf"
-DEPENDS = "libxmu libxkbfile"
-
-SRC_URI[sha256sum] = "fbaa2b34163714fe7be22b60920ea4683f63b355babb1781aec2e452a033031b"
diff --git a/meta-oe/recipes-graphics/xorg-app/xwd_1.0.9.bb b/meta-oe/recipes-graphics/xorg-app/xwd_1.0.9.bb
new file mode 100644
index 0000000000..4a05a4437a
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xwd_1.0.9.bb
@@ -0,0 +1,11 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "xwd is a tool to capture an X window or screen to file"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xwd/"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c0cdb783e9a0198237371fdaa26a18bf"
+DEPENDS = "libxmu libxkbfile"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "dc121b84947eb4a3d1131bff1e9844cfa2124d95b47b35f9932340fa931fbd3f"
diff --git a/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.2.bb b/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.2.bb
deleted file mode 100644
index 37183b12b7..0000000000
--- a/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require xorg-data-common.inc
-
-SUMMARY = "Common X11 Bitmaps"
-LICENSE = "MIT"
-DEPENDS += "libxmu"
-RDEPENDS:${PN}-dev = ""
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=dbd075aaffa4a60a8d00696f2e4b9a8f"
-
-SRC_URI[md5sum] = "cedeef095918aca86da79a2934e03daf"
-SRC_URI[sha256sum] = "b9f0c71563125937776c8f1f25174ae9685314cbd130fb4c2efce811981e07ee"
diff --git a/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.3.bb b/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.3.bb
new file mode 100644
index 0000000000..5f49152972
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.3.bb
@@ -0,0 +1,7 @@
+require xorg-data-common.inc
+
+SUMMARY = "Common X11 Bitmaps"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=dbd075aaffa4a60a8d00696f2e4b9a8f"
+
+SRC_URI[sha256sum] = "ad6cad54887832a17d86c2ccfc5e52a1dfab090f8307b152c78b0e1529cd0f7a"
diff --git a/meta-oe/recipes-graphics/xorg-data/xcursor-themes_1.0.7.bb b/meta-oe/recipes-graphics/xorg-data/xcursor-themes_1.0.7.bb
new file mode 100644
index 0000000000..9ebd2d12fd
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-data/xcursor-themes_1.0.7.bb
@@ -0,0 +1,11 @@
+require xorg-data-common.inc
+
+SUMMARY = "Default set of cursor themes for use with libXcursor"
+
+DEPENDS:append = " libxcursor xcursorgen-native"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8cbd99fff773f92e844948f74ef0df8"
+
+SRC_URI[sha256sum] = "95bae8f48823d894a05bf42dfbf453674ab7dbdeb11e2bc079e8525ad47378c8"
+
+FILES:${PN} += "${datadir}/icons"
diff --git a/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc b/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
index 1c6408d0d8..17fe00a9b8 100644
--- a/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
+++ b/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
@@ -2,10 +2,10 @@ HOMEPAGE = "http://www.x.org"
SECTION = "x11/data"
LICENSE = "MIT"
-XORG_PN = "${BPN}"
+DEPENDS = "util-macros-native virtual/libx11"
-SRC_URI = "${XORG_MIRROR}/individual/data/${BP}.tar.bz2"
-S = "${WORKDIR}/${XORG_PN}-${PV}"
+SRC_URI_EXT = "xz"
+SRC_URI = "${XORG_MIRROR}/individual/data/${BP}.tar.${SRC_URI_EXT}"
inherit features_check autotools pkgconfig
diff --git a/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc b/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc
index aa4795edc2..042db48acb 100644
--- a/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc
+++ b/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc
@@ -3,10 +3,11 @@ HOMEPAGE = "http://www.x.org"
SECTION = "x11/docs"
LICENSE = "MIT"
-SRC_URI = "${XORG_MIRROR}/individual/doc/${BPN}-${PV}.tar.bz2"
+DEPENDS = "util-macros-native"
-S = "${WORKDIR}/${BPN}-${PV}"
-
-INC_PR = "r1"
+SRC_URI_EXT = "bz2"
+SRC_URI = "${XORG_MIRROR}/individual/doc/${BPN}-${PV}.tar.${SRC_URI_EXT}"
inherit autotools pkgconfig
+
+
diff --git a/meta-oe/recipes-graphics/xorg-doc/xorg-docs_1.7.2.bb b/meta-oe/recipes-graphics/xorg-doc/xorg-docs_1.7.2.bb
new file mode 100644
index 0000000000..4cef981bc8
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-doc/xorg-docs_1.7.2.bb
@@ -0,0 +1,7 @@
+require xorg-doc-common.inc
+
+SUMMARY = "Documentation for the X Window System"
+
+LIC_FILES_CHKSUM = "file://general/License.xml;md5=f2677c20a4066714e233e9bbd8659aa2"
+
+SRC_URI[sha256sum] = "2391b8af472626c12d3c3814b5e7a0ea43c3a96eda94255b7ed8bdff0fbf08e3"
diff --git a/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.12.bb b/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.12.bb
index 050cb29824..21a0ed74fa 100644
--- a/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.12.bb
+++ b/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.12.bb
@@ -1,10 +1,11 @@
require xorg-doc-common.inc
+
PE = "1"
-DEPENDS += "util-macros"
+SUMMARY = "SGML entities and XML/CSS stylesheets used in X.Org docs"
LIC_FILES_CHKSUM = "file://COPYING;md5=c8c6c808cd3c797a07b24e443af1c449"
SRC_URI[sha256sum] = "65a9fdddedc17bd5e9c0b00d904960f03f047c3a62de5458989d493c29fec806"
-FILES:${PN} += " /usr/share/sgml/X11"
+FILES:${PN} += "${datadir}/sgml/X11"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.1.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.1.bb
deleted file mode 100644
index 88fb4b99a1..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require recipes-graphics/xorg-driver/xorg-driver-input.inc
-SUMMARY = "X.Org X server -- void input driver"
-PR = "r22"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=4be6a915bfbf111cd88706fc6a6f141b"
-
-SRC_URI[md5sum] = "5227013b52b3ca85d6b7ec8adea988d4"
-SRC_URI[sha256sum] = "f96e4f0a622821bf43a74bd419f2a18423343996c9d243c7e1430ba2d142339c"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.2.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.2.bb
new file mode 100644
index 0000000000..7a12272491
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.2.bb
@@ -0,0 +1,7 @@
+require recipes-graphics/xorg-driver/xorg-driver-input.inc
+SUMMARY = "X.Org X server -- void input driver"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4be6a915bfbf111cd88706fc6a6f141b"
+
+XORG_DRIVER_COMPRESSOR = ".tar.xz"
+SRC_URI[sha256sum] = "a211d8e21ce0e2ed8af5b8a2e8d4409d70c9c7e5ee528f5e6002ad279bf07885"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-amdgpu_23.0.0.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-amdgpu_23.0.0.bb
new file mode 100644
index 0000000000..c417e95d0a
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-amdgpu_23.0.0.bb
@@ -0,0 +1,23 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc"
+
+SUMMARY = "X.Org X server -- AMD Radeon GPU display driver"
+
+DESCRIPTION = "Xorg driver for AMD Radeon GPUs using the amdgpu kernel driver"
+
+SRC_URI[sha256sum] = "08c38287d39b999fd61ecb6e7b23d5079762e2b4b2179b3567973ed9aaf71222"
+
+XORG_DRIVER_COMPRESSOR = ".tar.gz"
+DEPENDS += "virtual/libx11 libdrm virtual/libgbm xorgproto"
+
+REQUIRED_DISTRO_FEATURES += "opengl"
+
+PACKAGECONFIG ??= "udev glamor"
+PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev"
+PACKAGECONFIG[glamor] = "--enable-glamor,--disable-glamor"
+
+RRECOMMENDS:${PN} += "linux-firmware-amdgpu"
+
+FILES:${PN}-config = "${datadir}/X11/xorg.conf.d"
+FILES:${PN} += "${datadir}/X11"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_22.0.0.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_22.0.0.bb
new file mode 100644
index 0000000000..57ea9d2d32
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_22.0.0.bb
@@ -0,0 +1,33 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc"
+
+SUMMARY = "X.Org X server -- ATI Radeon video driver"
+
+DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics"
+
+DEPENDS += "virtual/libx11 libxvmc drm \
+ virtual/libgl xorgproto libpciaccess"
+
+REQUIRED_DISTRO_FEATURES += "opengl"
+
+XORG_DRIVER_COMPRESSOR = ".tar.xz"
+SRC_URI[sha256sum] = "c8c8bb56d3f6227c97e59c3a3c85a25133584ceb82ab5bc05a902a743ab7bf6d"
+
+PACKAGECONFIG ??= "udev"
+PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev"
+PACKAGECONFIG[glamor] = "--enable-glamor,--disable-glamor"
+
+RDEPENDS:${PN}:append = "\
+ ${@bb.utils.contains('PACKAGECONFIG', 'glamor', 'libegl', '', d)} \
+ mesa-megadriver \
+ xserver-xorg-extension-glx \
+ xserver-xorg-module-exa \
+"
+
+RRECOMMENDS:${PN} += "linux-firmware-radeon"
+
+PACKAGES =+ "${PN}-config"
+
+FILES:${PN}-config = "${datadir}/X11/xorg.conf.d"
+FILES:${PN} += "${datadir}/X11"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_git.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_git.bb
deleted file mode 100644
index 9452c3a915..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_git.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-require recipes-graphics/xorg-driver/xorg-driver-video.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=aabff1606551f9461ccf567739af63dc"
-
-SUMMARY = "X.Org X server -- ATI Radeon video driver"
-
-DESCRIPTION = "Open-source X.org graphics driver for ATI Radeon graphics"
-
-DEPENDS += "virtual/libx11 libxvmc drm \
- virtual/libgl xorgproto libpciaccess"
-
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES += "opengl"
-
-SRC_URI = "git://git@gitlab.freedesktop.org/xorg/driver/xf86-video-ati.git;branch=master"
-SRCREV = "7a6a34af026f0bef8080b91baf97a729380bca01"
-
-SRC_URI[sha256sum] = "659f5a1629eea5f5334d9b39b18e6807a63aa1efa33c1236d9cc53acbb223c49"
-
-PV = "19.1.0+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= "udev"
-PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev"
-PACKAGECONFIG[glamor] = "--enable-glamor,--disable-glamor"
-
-RDEPENDS:${PN}:append = "\
- ${@bb.utils.contains('PACKAGECONFIG', 'glamor', 'libegl', '', d)} \
- mesa-megadriver \
- xserver-xorg-extension-glx \
- xserver-xorg-module-exa \
-"
-
-RRECOMMENDS:${PN} += "linux-firmware-radeon"
-
-PACKAGES =+ "${PN}-config"
-
-FILES:${PN}-config = "${datadir}/X11/xorg.conf.d"
-FILES:${PN} += "${datadir}/X11"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga/checkfile.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga/checkfile.patch
deleted file mode 100644
index ceae6dfba2..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga/checkfile.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-Upstream-Status: Submitted [https://bugs.freedesktop.org/show_bug.cgi?id=57606]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From c9014a8f3c9b691b5aa7b1f3ec66cf7c84b8211b Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Thu, 29 Nov 2012 11:00:43 +0000
-Subject: [PATCH] build: dont use AC_CHECK_FILE when enabling DRI
-
-Automatically enabling or disabling a feature based on installed files isn't
-deterministic, and AC_CHECK_FILE returns an error when cross-compiling.
-
-Fix this by enabling DRI by default, and removing the explicit file checks as
-pkg-config is good enough.
-
-(#57606)
-
-Signed-off-by: Ross Burton <ross.burton@intel.com>
----
- configure.ac | 25 ++-----------------------
- 1 file changed, 2 insertions(+), 23 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index fca1a9c..d2aa2ed 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -55,9 +55,9 @@ AC_ARG_WITH(xorg-module-dir,
- [moduledir="$libdir/xorg/modules"])
-
- AC_ARG_ENABLE(dri, AS_HELP_STRING([--disable-dri],
-- [Disable DRI support [[default=auto]]]),
-+ [Disable DRI support [[default=enabled]]]),
- [DRI="$enableval"],
-- [DRI=auto])
-+ [DRI=yes])
- AC_ARG_ENABLE(exa,
- AS_HELP_STRING([--disable-exa],
- [Disable EXA support [[default=enabled]]]),
-@@ -76,27 +76,6 @@ sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`
-
- # Checks for libraries.
-
--if test "x$DRI" != xno; then
-- AC_CHECK_FILE([${sdkdir}/dri.h],
-- [have_dri_h="yes"], [have_dri_h="no"])
-- AC_CHECK_FILE([${sdkdir}/sarea.h],
-- [have_sarea_h="yes"], [have_sarea_h="no"])
-- AC_CHECK_FILE([${sdkdir}/dristruct.h],
-- [have_dristruct_h="yes"], [have_dristruct_h="no"])
--fi
--
--AC_MSG_CHECKING([whether to include DRI support])
--if test "x$DRI" = xauto; then
-- if test "x$have_dri_h" = xyes && \
-- test "x$have_sarea_h" = xyes && \
-- test "x$have_dristruct_h" = xyes; then
-- DRI="yes"
-- else
-- DRI="no"
-- fi
--fi
--AC_MSG_RESULT([$DRI])
--
- AM_CONDITIONAL(DRI, test "x$DRI" = xyes)
- if test "x$DRI" = xyes; then
- PKG_CHECK_MODULES(DRI, [libdrm >= 2.0 xf86driproto])
---
-1.7.10.4
-
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.0.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.0.bb
deleted file mode 100644
index a9ae901d05..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-require recipes-graphics/xorg-driver/xorg-driver-video.inc
-
-SUMMARY = "X.Org X server -- Matrox MGA display driver"
-
-DESCRIPTION = "mga is an Xorg driver for Matrox video cards"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=bc1395d2cd32dfc5d6c57d2d8f83d3fc"
-
-SRC_URI += "file://checkfile.patch"
-
-DEPENDS += "virtual/libx11 libpciaccess"
-
-COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)'
-
-SRC_URI[md5sum] = "b8fc99b4adea8bfe80156b13df4b6c9c"
-SRC_URI[sha256sum] = "268946e1a13e9d80e4f724a0740df9e6e8c8bad37697fcbf456924e9fdbb5d79"
-
-PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri', '', d)}"
-PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,drm xorgproto,xserver-xorg-extension-dri"
-
-RDEPENDS:${PN} = "xserver-xorg-module-exa"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.1.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.1.bb
new file mode 100644
index 0000000000..34b3e4cde6
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.1.bb
@@ -0,0 +1,19 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+SUMMARY = "X.Org X server -- Matrox MGA display driver"
+
+DESCRIPTION = "mga is an Xorg driver for Matrox video cards"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4aa220f495ce9be5ce4243d21ebac14f"
+
+DEPENDS += "virtual/libx11 libpciaccess"
+
+COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)'
+
+XORG_DRIVER_COMPRESSOR = ".tar.xz"
+SRC_URI[sha256sum] = "27a33b70837965bb4a5f27fd260be085ca5bba837a4e62907f093c2f205603ab"
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri', '', d)}"
+PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,drm xorgproto,xserver-xorg-extension-dri"
+
+RDEPENDS:${PN} = "xserver-xorg-module-exa"
diff --git a/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/0001-lbx_zlib-Mark-declration-with-extern.patch b/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/0001-lbx_zlib-Mark-declration-with-extern.patch
deleted file mode 100644
index 32a24b4be1..0000000000
--- a/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/0001-lbx_zlib-Mark-declration-with-extern.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 95ed4b743f197e20f1884a326d5a7128187a7ba6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Aug 2020 17:56:30 -0700
-Subject: [PATCH] lbx_zlib: Mark declration with extern
-
-Fixes build with gcc10/-fno-common
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/lbx_zlib/lbx_zlib.h | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/src/lbx_zlib/lbx_zlib.h b/src/lbx_zlib/lbx_zlib.h
-index 8ae8956..bec3b96 100644
---- a/src/lbx_zlib/lbx_zlib.h
-+++ b/src/lbx_zlib/lbx_zlib.h
-@@ -136,9 +136,9 @@ extern void Xfree(pointer /*ptr*/);
- #endif
-
- /* lbx_zlib.c */
--unsigned long stream_out_compressed;
--unsigned long stream_out_uncompressed;
--unsigned long stream_out_plain;
--unsigned long stream_in_compressed;
--unsigned long stream_in_uncompressed;
--unsigned long stream_in_plain;
-+extern unsigned long stream_out_compressed;
-+extern unsigned long stream_out_uncompressed;
-+extern unsigned long stream_out_plain;
-+extern unsigned long stream_in_compressed;
-+extern unsigned long stream_in_uncompressed;
-+extern unsigned long stream_in_plain;
---
-2.28.0
-
diff --git a/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch b/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch
deleted file mode 100644
index f9f4a6382c..0000000000
--- a/meta-oe/recipes-graphics/xorg-lib/liblbxutil-1.1.0/mkg3states-1.1.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-diff -uNr liblbxutil-1.1.0.orig/configure.ac liblbxutil-1.1.0/configure.ac
---- liblbxutil-1.1.0.orig/configure.ac 2009-12-04 23:52:04.000000000 +0100
-+++ liblbxutil-1.1.0/configure.ac 2009-12-16 10:45:00.000000000 +0100
-@@ -50,4 +50,5 @@
-
- AC_OUTPUT([Makefile
- src/Makefile
-+ src/image/Makefile
- lbxutil.pc])
-diff -uNr liblbxutil-1.1.0.orig/src/image/Makefile.am liblbxutil-1.1.0/src/image/Makefile.am
---- liblbxutil-1.1.0.orig/src/image/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-+++ liblbxutil-1.1.0/src/image/Makefile.am 2009-12-16 10:45:00.000000000 +0100
-@@ -0,0 +1,15 @@
-+# evil hack
-+CFLAGS=$(CFLAGS_FOR_BUILD)
-+CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
-+LDFLAGS=$(LDFLAGS_FOR_BUILD)
-+
-+CC=$(CC_FOR_BUILD)
-+LIBTOOL = @LIBTOOL@ --tag=CC
-+
-+noinst_PROGRAMS = mkg3states
-+
-+mkg3states_SOURCES = \
-+ mkg3states.c
-+
-+mkg3states_CFLAGS=$(CFLAGS_FOR_BUILD)
-+mkg3states_LDFLAGS=$(LDFLAGS_FOR_BUILD)
-diff -uNr liblbxutil-1.1.0.orig/src/Makefile.am liblbxutil-1.1.0/src/Makefile.am
---- liblbxutil-1.1.0.orig/src/Makefile.am 2009-12-16 10:48:11.000000000 +0100
-+++ liblbxutil-1.1.0/src/Makefile.am 2009-12-16 10:46:47.000000000 +0100
-@@ -3,10 +3,7 @@
- AM_CFLAGS = $(CWARNFLAGS) $(LBXUTIL_CFLAGS)
- INCLUDES = -I$(top_srcdir)/include
-
--noinst_PROGRAMS = mkg3states
--
--mkg3states_SOURCES = \
-- $(srcdir)/image/mkg3states.c
-+SUBDIRS = image
-
- liblbxutil_la_SOURCES = \
- $(srcdir)/lbx_zlib/reqstats.h \
-@@ -38,9 +35,8 @@
-
- $(srcdir)/image/dfaxg42d.c: g3states.h
-
--g3states.h: mkg3states
-- -rm -f g3states.h
-- $(AM_V_GEN) ./mkg3states -c > g3states.h_ && mv g3states.h_ g3states.h
-+g3states.h: image/mkg3states
-+ $(AM_V_GEN) ./image/mkg3states -c > g3states.h_ && mv g3states.h_ g3states.h
-
- liblbxutil_la_LDFLAGS = -version-number 1:0:0 -no-undefined
-
diff --git a/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb b/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
deleted file mode 100644
index 58b4f31b17..0000000000
--- a/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require recipes-graphics/xorg-lib/xorg-lib-common.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b0d5bdc98f7ebab3b6c3791d9bf40907"
-
-SUMMARY = "XFIXES Extension"
-DEPENDS += " xorgproto zlib"
-PE = "1"
-PR = "r11"
-
-SRC_URI += "file://mkg3states-1.1.patch \
- file://0001-lbx_zlib-Mark-declration-with-extern.patch \
- "
-SRC_URI[md5sum] = "273329a78c2e9ea189ac416c7fde94a1"
-SRC_URI[sha256sum] = "c6b6ff7858ec619cafa8205debca6bf78c5610a2844a782ed643c7fd017cf8ae"
-
-export CC_FOR_BUILD = "gcc"
diff --git a/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.14.bb b/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.14.bb
deleted file mode 100644
index 08d9b232e0..0000000000
--- a/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.14.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-require recipes-graphics/xorg-lib/xorg-lib-common.inc
-SUMMARY = "X Athena Widget Set"
-DEPENDS += "xorgproto virtual/libx11 libxext libxt libxmu libxpm libxau xmlto-native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=1c65719d42900bb81b83e8293c20a364"
-
-PE = "1"
-
-SRC_URI[md5sum] = "c1ce21c296bbf3da3e30cf651649563e"
-SRC_URI[sha256sum] = "76aef98ea3df92615faec28004b5ce4e5c6855e716fa16de40c32030722a6f8e"
-
-do_install:append () {
- ln -sf libXaw6.so.6 ${D}${libdir}/libXaw.so.6
- ln -sf libXaw7.so.7 ${D}${libdir}/libXaw.so.7
- ln -sf libXaw7.so.7 ${D}${libdir}/libXaw.so
-}
-
-PACKAGES =+ "libxaw6 libxaw7 libxaw8"
-
-FILES:libxaw6 = "${libdir}/libXaw*.so.6*"
-FILES:libxaw7 = "${libdir}/libXaw*.so.7*"
-FILES:libxaw8 = "${libdir}/libXaw8.so.8*"
-
-# Avoid dependency on libxaw as it is not build
-RDEPENDS:${PN}-dev = ""
-
-XORG_PN = "libXaw"
diff --git a/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.16.bb b/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.16.bb
new file mode 100644
index 0000000000..ee14cf747d
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.16.bb
@@ -0,0 +1,26 @@
+require recipes-graphics/xorg-lib/xorg-lib-common.inc
+SUMMARY = "X Athena Widget Set"
+DEPENDS += "xorgproto virtual/libx11 libxext libxt libxmu libxpm libxau xmlto-native"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=1c65719d42900bb81b83e8293c20a364"
+
+PE = "1"
+
+XORG_PN = "libXaw"
+
+SRC_URI[sha256sum] = "731d572b54c708f81e197a6afa8016918e2e06dfd3025e066ca642a5b8c39c8f"
+
+do_install:append () {
+ ln -sf libXaw6.so.6 ${D}${libdir}/libXaw.so.6
+ ln -sf libXaw7.so.7 ${D}${libdir}/libXaw.so.7
+ ln -sf libXaw7.so.7 ${D}${libdir}/libXaw.so
+}
+
+PACKAGES =+ "libxaw6 libxaw7 libxaw8"
+
+FILES:libxaw6 = "${libdir}/libXaw*.so.6*"
+FILES:libxaw7 = "${libdir}/libXaw*.so.7*"
+FILES:libxaw8 = "${libdir}/libXaw8.so.8*"
+
+# Avoid dependency on libxaw as it is not build
+RDEPENDS:${PN}-dev = ""
diff --git a/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb b/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb
deleted file mode 100644
index 103da1f085..0000000000
--- a/meta-oe/recipes-graphics/xorg-lib/libxkbui_1.0.2.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require recipes-graphics/xorg-lib/xorg-lib-common.inc
-SUMMARY = "X11 keyboard UI presentation library"
-LICENSE = "SGI-1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
-DEPENDS += "virtual/libx11 libxt libxkbfile"
-PE = "1"
-PR = "r10"
-
-SRC_URI[md5sum] = "1143e456f7429e18e88f2eadb2f2b6b1"
-SRC_URI[sha256sum] = "20c23101d63234ee5f6d696dfa069b29c6c58e39eff433bcd7705b50b3ffa214"
diff --git a/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.0.bb b/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.0.bb
deleted file mode 100644
index 4fe9992f20..0000000000
--- a/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require recipes-graphics/xorg-lib/xorg-lib-common.inc
-SUMMARY = "X Athena Widget Set"
-DEPENDS += "xorgproto libxfixes libxrandr"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=3c1ce42c334a6f5cccb0277556a053e0"
-
-SRC_URI = "http://xorg.freedesktop.org/archive/individual/lib/libXpresent-${PV}.tar.bz2"
-SRC_URI[md5sum] = "edd87ac15bb666081898dd7382fcbff5"
-SRC_URI[sha256sum] = "c11ae015141a9afbe10f4f2b8ee00b11adca6373dc1b9808d7c6c138b2da7b8a"
-
-XORG_PN = "libXpresent"
diff --git a/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.1.bb b/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.1.bb
new file mode 100644
index 0000000000..3b15153b6b
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-lib/libxpresent_1.0.1.bb
@@ -0,0 +1,12 @@
+require recipes-graphics/xorg-lib/xorg-lib-common.inc
+SUMMARY = "X Athena Widget Set"
+DEPENDS += "xorgproto libxfixes libxrandr"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=3c1ce42c334a6f5cccb0277556a053e0"
+
+XORG_EXT = "tar.bz2"
+
+SRC_URI = "http://xorg.freedesktop.org/archive/individual/lib/libXpresent-${PV}.tar.xz"
+SRC_URI[sha256sum] = "b964df9e5a066daa5e08d2dc82692c57ca27d00b8cc257e8e960c9f1cf26231b"
+
+XORG_PN = "libXpresent"
diff --git a/meta-oe/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.3.bb b/meta-oe/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.3.bb
deleted file mode 100644
index f935edd6fe..0000000000
--- a/meta-oe/recipes-graphics/xorg-lib/xcb-util-cursor_0.1.3.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require recipes-graphics/xorg-lib/xcb-util.inc
-
-SUMMARY = "XCB port of libXcursor"
-
-DEPENDS += "xcb-util xcb-util-renderutil xcb-util-image"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ce469b61c70ff8d7cce0547476891974"
-
-SRC_URI[md5sum] = "6ac3b17cba51aaaa36ba035a53527214"
-SRC_URI[sha256sum] = "05a10a0706a1a789a078be297b5fb663f66a71fb7f7f1b99658264c35926394f"
diff --git a/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb b/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
index d24f666bcf..dc909ed78c 100644
--- a/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
+++ b/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
@@ -9,6 +9,8 @@ SRC_URI = "https://www.jwz.org/${BPN}/${BP}.tar.gz \
file://0002-build-Do-not-build-po-files.patch \
file://0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch \
"
+MIRRORS += "https://www.jwz.org/${BPN} https://ftp.osuosl.org/pub/blfs/conglomeration/${BPN}"
+
SRC_URI[sha256sum] = "787014b29f0c5793ecc2d93e1109a049ff48ab0c29b851dab34f683ceef6b152"
DEPENDS = "intltool-native libx11 libxext libxt libxft libxi glib-2.0-native bc-native libpam jpeg"
diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch
index 2bfe85b285..6f738e7376 100644
--- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch
+++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-COPYING-add-GPLv2-license-file.patch
@@ -11,6 +11,8 @@ Signed-off-by: Yu Ke <ke.yu@intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
+Upstream-Status: Pending
+
COPYING | 339 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 339 insertions(+)
create mode 100644 COPYING
diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch
index 0ed12d106f..ea7c7d6a94 100644
--- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch
+++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0001-Don-t-install-Xsession-or-Xserver.patch
@@ -10,6 +10,8 @@ be used as before.
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
+Upstream-Status: Pending
+
Makefile | 2 --
1 file changed, 2 deletions(-)
diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch
index 0be3fa5b39..b408234ecb 100644
--- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch
+++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0002-add-setdpi-Xinit.d-script.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] add setdpi Xinit.d script
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
+Upstream-Status: Pending
+
X11/Xinit.d/50setdpi | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+)
create mode 100644 X11/Xinit.d/50setdpi
diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch
index 53a283feae..4a9342c934 100644
--- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch
+++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0006-add-support-for-etc-X11-xserver-system.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] add support for /etc/X11/xserver-system
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
+Upstream-Status: Pending
+
X11/xserver-common | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch
index 94a35407af..ba35d1cf6c 100644
--- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch
+++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0007-use-own-functions-file-instead-etc-init.d-functions.patch
@@ -8,6 +8,8 @@ Subject: [PATCH] use own functions file instead /etc/init.d/functions
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 1 +
X11/Xinit.d/11zaurus | 2 +-
X11/Xinit.d/12keymap | 2 +-
diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch
index 90d0f25843..a04e563f82 100644
--- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch
+++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0008-xserver-common-add-dpi-and-nocursor-params-for-gta01.patch
@@ -7,6 +7,8 @@ Subject: [PATCH] xserver-common: add dpi and nocursor params for gta01 and
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
+Upstream-Status: Pending
+
X11/xserver-common | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch
index 8fb69b3561..993b320154 100644
--- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch
+++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0009-xserver-common-add-support-for-n900-alias-nokia_rx-5.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] xserver-common: add support for n900 alias nokia_rx-51_board
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
+Upstream-Status: Pending
+
X11/xserver-common | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch
index d30c7bbdcb..2948cd611b 100644
--- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch
+++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0010-xserver-common-add-support-for-nexus-S-alias-herring.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] xserver-common: add support for nexus S alias herring
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
+Upstream-Status: Pending
+
X11/xserver-common | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch
index 23e17f0988..342d49becd 100644
--- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch
+++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0011-xserver-common-add-support-for-nexus-one-alias-mahim.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] xserver-common: add support for nexus one alias mahimahi
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
+Upstream-Status: Pending
+
X11/xserver-common | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch
index 5e794f6b31..94f9d2ca6f 100644
--- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch
+++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0012-xserver-common-add-support-for-gta04-alias-OpenPhoen.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] xserver-common: add support for gta04 alias OpenPhoenux
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
+Upstream-Status: Pending
+
X11/xserver-common | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch
index 78d2e40297..c023b583b0 100644
--- a/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch
+++ b/meta-oe/recipes-graphics/xserver-common/xserver-common-1.34/0013-xserver-common-add-support-for-tuna-alias-Galaxy-Nex.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] xserver-common: add support for tuna alias Galaxy Nexus
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
+Upstream-Status: Pending
+
X11/xserver-common | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb b/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb
index 574d259bdf..3f577bfa05 100644
--- a/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb
+++ b/meta-oe/recipes-graphics/xserver-common/xserver-common_1.34.bb
@@ -2,7 +2,6 @@ SUMMARY = "Common X11 scripts and support files"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-PR = "r9"
# we are using a gpe-style Makefile
inherit features_check gpe
diff --git a/meta-oe/recipes-graphics/yad/yad_6.0.bb b/meta-oe/recipes-graphics/yad/yad_6.0.bb
index 40fccbdc1a..9e46215fd8 100644
--- a/meta-oe/recipes-graphics/yad/yad_6.0.bb
+++ b/meta-oe/recipes-graphics/yad/yad_6.0.bb
@@ -1,6 +1,5 @@
SUMMARY = "Yet Another Dialog"
DESCRIPTION = "Program allowing you to display GTK+ dialog boxes from command line or shell scripts."
-AUTHOR = "Victor Ananjevsky"
LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
diff --git a/meta-oe/recipes-graphics/ydotool/ydotool_git.bb b/meta-oe/recipes-graphics/ydotool/ydotool_git.bb
new file mode 100644
index 0000000000..c1427457d1
--- /dev/null
+++ b/meta-oe/recipes-graphics/ydotool/ydotool_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Generic Linux command-line automation tool (no X!)"
+DESCRIPTION = "ydotool is not limited to Wayland. You can use it on anything as long as it accepts keyboard/mouse/whatever input."
+LICENSE = "AGPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eb1e647870add0502f8f010b19de32af"
+
+PV = "1.0.4+git"
+
+SRC_URI = "git://github.com/ReimuNotMoe/ydotool;protocol=https;branch=master"
+SRCREV = "0c295346d55afcc6aebaaee564333b3e1efabcbd"
+
+S = "${WORKDIR}/git"
+
+inherit cmake systemd
+
+EXTRA_OECMAKE = "\
+ -DBUILD_DOCS=OFF \
+"
+
+SYSTEMD_SERVICE:${PN} = "ydotoold.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-oe/recipes-kernel/bpftool/bpftool.bb b/meta-oe/recipes-kernel/bpftool/bpftool.bb
index 67a821c07c..b22334fe90 100644
--- a/meta-oe/recipes-kernel/bpftool/bpftool.bb
+++ b/meta-oe/recipes-kernel/bpftool/bpftool.bb
@@ -2,12 +2,12 @@ SUMMARY = "Inspect and manipulate eBPF programs and maps"
DESCRIPTION = "bpftool is a kernel tool for inspection and simple manipulation \
of eBPF programs and maps."
LICENSE = "GPL-2.0-only"
-DEPENDS = "binutils elfutils"
+DEPENDS = "binutils elfutils elfutils-native"
PROVIDES = "virtual/bpftool"
inherit bash-completion kernelsrc kernel-arch
-do_populate_lic[depends] += "virtual/kernel:do_patch"
+do_populate_lic[depends] += "virtual/kernel:do_shared_workdir"
EXTRA_OEMAKE = "\
V=1 \
@@ -15,9 +15,11 @@ EXTRA_OEMAKE = "\
O=${B} \
CROSS=${TARGET_PREFIX} \
CC="${CC} ${DEBUG_PREFIX_MAP} -fdebug-prefix-map=${STAGING_KERNEL_DIR}=${KERNEL_SRC_PATH}" \
+ HOSTCC="${BUILD_CC} ${BUILD_CFLAGS}" \
LD="${LD}" \
AR=${AR} \
ARCH=${ARCH} \
+ bash_compdir=${prefix}/share/bash-completion \
"
SECURITY_CFLAGS = ""
@@ -42,3 +44,7 @@ python do_package:prepend() {
}
B = "${WORKDIR}/${BPN}-${PV}"
+
+FILES:${PN} += "${exec_prefix}/sbin/*"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_12.0.1.1105_p3.bb b/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_12.0.1.1105_p3.bb
index f45ea5e4a9..4b6026ebc0 100644
--- a/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_12.0.1.1105_p3.bb
+++ b/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_12.0.1.1105_p3.bb
@@ -10,7 +10,7 @@ NO_GENERIC_LICENSE[Firmware-Broadcom-WIDCOMM] = "LICENSE.broadcom_bcm20702"
LIC_FILES_CHKSUM = "file://LICENSE.broadcom_bcm20702;md5=c0d5ea0502b00df74173d0f8a48b619d"
SRC_URI = "git://github.com/winterheart/broadcom-bt-firmware.git;branch=master;protocol=https"
-SRCREV = "68a7a8a4f2c4bdd3425c23653a3b9b6609e41d0b"
+SRCREV = "a0eb4805dbb232f02f156b9351a23790c1a4cec7"
PE = "1"
diff --git a/meta-oe/recipes-kernel/crash/crash-cross-canadian_8.0.4.bb b/meta-oe/recipes-kernel/crash/crash-cross-canadian_8.0.4.bb
new file mode 100644
index 0000000000..54883cef38
--- /dev/null
+++ b/meta-oe/recipes-kernel/crash/crash-cross-canadian_8.0.4.bb
@@ -0,0 +1,52 @@
+inherit cross-canadian
+
+SUMMARY = "crash utility (cross-canadian crash for ${TARGET_ARCH} target)"
+PN = "crash-cross-canadian-${TRANSLATED_TARGET_ARCH}"
+BPN = "crash"
+
+require crash.inc
+
+
+DEPENDS = "\
+ nativesdk-ncurses \
+ nativesdk-expat \
+ nativesdk-gettext \
+ nativesdk-gmp \
+ nativesdk-mpfr \
+ nativesdk-readline \
+ nativesdk-zlib \
+ virtual/${HOST_PREFIX}gcc \
+ virtual/${HOST_PREFIX}binutils \
+ virtual/nativesdk-${HOST_PREFIX}compilerlibs \
+ virtual/nativesdk-libc"
+
+RDEPENDS:${PN} = "nativesdk-liblzma"
+
+EXTRA_OEMAKE:class-cross-canadian = 'RPMPKG="${PV}" \
+ GDB_TARGET="${BUILD_SYS} --target=${TARGET_SYS}" \
+ GDB_HOST="${HOST_SYS}" \
+ GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
+ LDFLAGS="${LDFLAGS}" \
+ '
+
+# To ship crash into your sdk, you should create/update a packagegroup-cross-canadian.bbappend and
+# add the following
+# CRASH = "crash-cross-canadian-${TRANSLATED_TARGET_ARCH}"
+# RDEPENDS:${PN} += "${@all_multilib_tune_values(d, 'CRASH')}"
+#
+# You should also add some kernel packages in your sdk, add the followng in your conf/local.conf:
+#
+# TOOLCHAIN_TARGET_TASK += "\
+# kernel-vmlinux \
+# kernel-dbg \
+# kernel-dev \
+# "
+#
+# After sourcing the sdk environment script, you can analyze a kernel panic dump with
+#
+# crash $OECORE_TARGET_SYSROOT/boot/<vmlinux file> $OECORE_TARGET_SYSROOT/boot/<System.map file> <your vmcore>
+
+do_install:class-cross-canadian () {
+ install -m 0755 ${S}/crash ${D}/${bindir}
+ cross_canadian_bindirlinks
+}
diff --git a/meta-oe/recipes-kernel/crash/crash.inc b/meta-oe/recipes-kernel/crash/crash.inc
new file mode 100644
index 0000000000..04318b1505
--- /dev/null
+++ b/meta-oe/recipes-kernel/crash/crash.inc
@@ -0,0 +1,91 @@
+SUMMARY = "Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles"
+DESCRIPTION = "The core analysis suite is a self-contained tool that can be used to\
+investigate either live systems, kernel core dumps created from the\
+netdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch\
+offered by Mission Critical Linux, or the LKCD kernel patch."
+
+HOMEPAGE = "http://people.redhat.com/anderson"
+SECTION = "devel"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "zlib readline coreutils-native ncurses-native"
+
+INC_PR = "r1"
+
+S = "${WORKDIR}/git"
+SRC_URI = "git://github.com/crash-utility/${BPN}.git;branch=master;protocol=https \
+ ${GNU_MIRROR}/gdb/gdb-10.2.tar.gz;name=gdb;subdir=git \
+ file://7001force_define_architecture.patch \
+ file://7003cross_ranlib.patch \
+ file://0001-cross_add_configure_option.patch \
+ file://donnot-extract-gdb-during-do-compile.patch \
+ file://gdb_build_jobs_and_not_write_crash_target.patch \
+ "
+SRCREV = "a6832f608cb5d473739cf33bbf84ab1df8d98fd5"
+
+SRC_URI[gdb.sha256sum] = "b33ad58d687487a821ec8d878daab0f716be60d0936f2e3ac5cf08419ce70350"
+
+UPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases"
+
+inherit gettext
+
+TARGET_CC_ARCH:append = " ${SELECTED_OPTIMIZATION}"
+
+# crash 7.1.3 and before don't support mips64/riscv64
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
+COMPATIBLE_HOST:mipsarchn64 = "null"
+COMPATIBLE_HOST:mipsarchn32 = "null"
+
+
+EXTRA_OEMAKE = 'RPMPKG="${PV}" \
+ GDB_TARGET="${TARGET_SYS}" \
+ GDB_HOST="${BUILD_SYS}" \
+ GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
+ LDFLAGS="${LDFLAGS}" \
+ '
+
+do_configure() {
+ :
+}
+
+do_compile:prepend() {
+ case ${TARGET_ARCH} in
+ aarch64*) ARCH=ARM64 ;;
+ arm*) ARCH=ARM ;;
+ i*86*) ARCH=X86 ;;
+ x86_64*) ARCH=X86_64 ;;
+ powerpc64*) ARCH=PPC64 ;;
+ powerpc*) ARCH=PPC ;;
+ mips*) ARCH=MIPS ;;
+ esac
+
+ sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c
+ sed -i -e 's/#define TARGET_CFLAGS_ARM_ON_X86_64.*/#define TARGET_CFLAGS_ARM_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c
+ sed -i -e 's/#define TARGET_CFLAGS_MIPS_ON_X86_64.*/#define TARGET_CFLAGS_MIPS_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c
+ sed -i 's/&gt;/>/g' ${S}/Makefile
+}
+
+do_compile() {
+ oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT}
+}
+
+do_install:prepend () {
+ install -d ${D}${bindir}
+ install -d ${D}/${mandir}/man8
+ install -d ${D}${includedir}/crash
+
+ install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/
+ install -m 0644 ${S}/defs.h ${D}${includedir}/crash
+}
+
+RDEPENDS:${PN} += "liblzma"
+
+# Causes gcc to get stuck and eat all available memory in qemuarm builds
+# jenkins 15161 100 12.5 10389596 10321284 ? R 11:40 28:17 /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/cc1 -quiet -I . -I . -I ./common -I ./config -I ./../include/opcode -I ./../opcodes/.. -I ./../readline/.. -I ../bfd -I ./../bfd -I ./../include -I ../libdecnumber -I ./../libdecnumber -I ./gnulib/import -I build-gnulib/import -isysroot /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemuarm -MMD eval.d -MF .deps/eval.Tpo -MP -MT eval.o -D LOCALEDIR="/usr/local/share/locale" -D CRASH_MERGE -D HAVE_CONFIG_H -D TUI=1 eval.c -quiet -dumpbase eval.c -march=armv5te -mthumb -mthumb-interwork -mtls-dialect=gnu -auxbase-strip eval.o -g -O2 -Wall -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -feliminate-unused-debug-types -o -
+ARM_INSTRUCTION_SET = "arm"
+
+# http://errors.yoctoproject.org/Errors/Details/186964/
+COMPATIBLE_HOST:libc-musl = 'null'
diff --git a/meta-oe/recipes-kernel/crash/crash/0001-cross_add_configure_option.patch b/meta-oe/recipes-kernel/crash/crash/0001-cross_add_configure_option.patch
index 26a34e5c16..fc99ff5187 100644
--- a/meta-oe/recipes-kernel/crash/crash/0001-cross_add_configure_option.patch
+++ b/meta-oe/recipes-kernel/crash/crash/0001-cross_add_configure_option.patch
@@ -1,27 +1,29 @@
-From 73269df4d8196abe81112acaa2613155b308a8b8 Mon Sep 17 00:00:00 2001
+From e3ba432243d9be4e845daabc78a0ae7c03c680f5 Mon Sep 17 00:00:00 2001
From: Lei Maohui <leimaohui@cn.fujitsu.com>
Date: Fri, 9 Jan 2015 11:51:18 +0900
-Subject: [PATCH 1/9] cross_add_configure_option
+Subject: [PATCH] cross_add_configure_option
+
-%% original patch: 0001-cross_add_configure_option.patch
---
+Upstream-Status: Pending
+
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
-index a2baec1..f1972c8 100644
+index 7266e305..390fc0ef 100644
--- a/Makefile
+++ b/Makefile
-@@ -232,7 +232,7 @@ gdb_merge: force
+@@ -260,7 +260,7 @@ gdb_merge: force
@echo "../../${PROGRAM} ../../${PROGRAM}lib.a" > ${GDB}/gdb/mergeobj
@rm -f ${PROGRAM}
@if [ ! -f ${GDB}/config.status ]; then \
- (cd ${GDB}; ./configure ${GDB_CONF_FLAGS} --with-separate-debug-dir=/usr/lib/debug \
+ (cd ${GDB}; ./configure --host=${GDB_TARGET} --build=${GDB_HOST} --with-separate-debug-dir=/usr/lib/debug \
--with-bugurl="" --with-expat=no --with-python=no --disable-sim; \
- make --no-print-directory CRASH_TARGET=${TARGET}; echo ${TARGET} > crash.target) \
- else make --no-print-directory rebuild; fi
-@@ -283,7 +283,7 @@ force:
+ $(MAKE) CRASH_TARGET=${TARGET}; echo ${TARGET} > crash.target) \
+ else $(MAKE) rebuild; fi
+@@ -306,7 +306,7 @@ force:
make_configure: force
@rm -f configure
@@ -30,6 +32,3 @@ index a2baec1..f1972c8 100644
clean: make_configure
@./configure ${CONF_TARGET_FLAG} -q -b
---
-2.8.1
-
diff --git a/meta-oe/recipes-kernel/crash/crash/7001force_define_architecture.patch b/meta-oe/recipes-kernel/crash/crash/7001force_define_architecture.patch
index 0d44c7f176..b5f97228de 100644
--- a/meta-oe/recipes-kernel/crash/crash/7001force_define_architecture.patch
+++ b/meta-oe/recipes-kernel/crash/crash/7001force_define_architecture.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -uprN crash-5.1.8.org/configure.c crash-5.1.8/configure.c
--- crash-5.1.8.org/configure.c 2011-09-17 04:01:12.000000000 +0900
+++ crash-5.1.8/configure.c 2012-09-13 13:28:45.393344108 +0900
diff --git a/meta-oe/recipes-kernel/crash/crash/7003cross_ranlib.patch b/meta-oe/recipes-kernel/crash/crash/7003cross_ranlib.patch
index d567fa0a82..2d01453059 100644
--- a/meta-oe/recipes-kernel/crash/crash/7003cross_ranlib.patch
+++ b/meta-oe/recipes-kernel/crash/crash/7003cross_ranlib.patch
@@ -1,8 +1,21 @@
---- crash-5.1.8/Makefile.orig 2011-12-27 11:21:58.220652105 +0900
-+++ crash-5.1.8/Makefile 2011-12-27 11:22:29.563651593 +0900
-@@ -285,6 +285,7 @@
+From 2f200ceed289f935b5e7ec230454a22dd76e42b0 Mon Sep 17 00:00:00 2001
+From: leimaohui <leimaohui@cn.fujitsu.com>
+Date: Mon, 12 Jan 2015 11:52:35 +0800
+Subject: [PATCH] crash: add new recipe
+
+---
+Upstream-Status: Pending
+
+ Makefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile b/Makefile
+index 79aef176..7266e305 100644
+--- a/Makefile
++++ b/Makefile
+@@ -295,6 +295,7 @@ gdb_patch:
- library: make_build_data ${OBJECT_FILES}
+ library: ${OBJECT_FILES}
ar -rs ${PROGRAM}lib.a ${OBJECT_FILES}
+ ${RANLIB} ${PROGRAM}lib.a
diff --git a/meta-oe/recipes-kernel/crash/crash/config-site.crash-7.0.9 b/meta-oe/recipes-kernel/crash/crash/config-site.crash-7.0.9
deleted file mode 100644
index d6fc22fb34..0000000000
--- a/meta-oe/recipes-kernel/crash/crash/config-site.crash-7.0.9
+++ /dev/null
@@ -1 +0,0 @@
-bash_cv_have_mbstate_t=yes
diff --git a/meta-oe/recipes-kernel/crash/crash/donnot-extract-gdb-during-do-compile.patch b/meta-oe/recipes-kernel/crash/crash/donnot-extract-gdb-during-do-compile.patch
index 7133cf0aa2..16382877d0 100644
--- a/meta-oe/recipes-kernel/crash/crash/donnot-extract-gdb-during-do-compile.patch
+++ b/meta-oe/recipes-kernel/crash/crash/donnot-extract-gdb-during-do-compile.patch
@@ -1,33 +1,45 @@
+From 8b882650b730cb6e025d47d65574f43549b7a1a3 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 9 Mar 2023 10:28:28 +0800
+Subject: [PATCH] Makefile: Put gdb source tarball in SRC_URI
+
Put gdb source tarball in SRC_URI and don't fetch and extract it during
do_compile.
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Kai Kang <kai.kang@windriver.com>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
+ Makefile | 8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
diff --git a/Makefile b/Makefile
-index bb0a34e..5eb7604 100644
+index 79aef17..146da6a 100644
--- a/Makefile
+++ b/Makefile
-@@ -228,7 +228,7 @@ all: make_configure
- # @make --no-print-directory extensions
+@@ -254,7 +254,7 @@ all: make_configure
+ # @$(MAKE) extensions
gdb_merge: force
- @if [ ! -f ${GDB}/README ]; then \
+ @if [ ! -f ${GDB}/${GDB}.patch ]; then \
- make --no-print-directory gdb_unzip; fi
+ $(MAKE) gdb_unzip; fi
@echo "${LDFLAGS} -lz -ldl -rdynamic" > ${GDB}/gdb/mergelibs
@echo "../../${PROGRAM} ../../${PROGRAM}lib.a" > ${GDB}/gdb/mergeobj
-@@ -255,12 +255,6 @@ gdb_unzip:
- @rm -f gdb.files
- @for FILE in ${GDB_FILES} dummy; do\
- echo $$FILE >> gdb.files; done
+@@ -281,12 +281,6 @@ gdb_unzip:
+ @rm -f gdb.files
+ @for FILE in ${GDB_FILES} dummy; do\
+ echo $$FILE >> gdb.files; done
- @if [ ! -f ${GDB}.tar.gz ] && [ ! -f /usr/bin/wget ]; then \
- echo /usr/bin/wget is required to download ${GDB}.tar.gz; echo; exit 1; fi
- @if [ ! -f ${GDB}.tar.gz ] && [ -f /usr/bin/wget ]; then \
- [ ! -t 2 ] && WGET_OPTS="--progress=dot:mega"; \
- wget $$WGET_OPTS http://ftp.gnu.org/gnu/gdb/${GDB}.tar.gz; fi
- @tar --exclude-from gdb.files -xzmf ${GDB}.tar.gz
- @make --no-print-directory gdb_patch
-
+ @$(MAKE) gdb_patch
+
gdb_patch:
+--
+2.25.1
+
diff --git a/meta-oe/recipes-kernel/crash/crash/gdb_build_jobs_and_not_write_crash_target.patch b/meta-oe/recipes-kernel/crash/crash/gdb_build_jobs_and_not_write_crash_target.patch
index aa5f44dd42..257b4dd2bf 100644
--- a/meta-oe/recipes-kernel/crash/crash/gdb_build_jobs_and_not_write_crash_target.patch
+++ b/meta-oe/recipes-kernel/crash/crash/gdb_build_jobs_and_not_write_crash_target.patch
@@ -1,3 +1,8 @@
+From af49d8df559aa18f97d14ab7971f211238a16041 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 9 Mar 2023 10:50:10 +0800
+Subject: [PATCH] Makefile: Don't write ${TARGET} to crash.target
+
This enables parallel building (multiple jobs in gdb) by reading the
value from GDB_MAKE_JOBS.
@@ -8,19 +13,26 @@ Upstream-Status: Pending
Don't write ${TARGET} to crash.target which causes rebuild fails.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
diff --git a/Makefile b/Makefile
-index 27a1d47..bcf2d2f 100644
+index cd25c7d..d61c4c5 100644
--- a/Makefile
+++ b/Makefile
-@@ -232,8 +232,8 @@ gdb_merge: force
+@@ -262,8 +262,8 @@ gdb_merge: force
@if [ ! -f ${GDB}/config.status ]; then \
(cd ${GDB}; ./configure --host=${GDB_TARGET} --build=${GDB_HOST} --with-separate-debug-dir=/usr/lib/debug \
--with-bugurl="" --with-expat=no --with-python=no --disable-sim; \
-- make --no-print-directory CRASH_TARGET=${TARGET}; echo ${TARGET} > crash.target) \
-- else make --no-print-directory rebuild; fi
-+ make --no-print-directory CRASH_TARGET=${TARGET} ${GDB_MAKE_JOBS}; ) \
-+ else make --no-print-directory ${GDB_MAKE_JOBS} rebuild; fi
+- $(MAKE) CRASH_TARGET=${TARGET}; echo ${TARGET} > crash.target) \
+- else $(MAKE) rebuild; fi
++ $(MAKE) CRASH_TARGET=${TARGET} ${GDB_MAKE_JOBS}; ) \
++ else $(MAKE) ${GDB_MAKE_JOBS} rebuild; fi
@if [ ! -f ${PROGRAM} ]; then \
echo; echo "${PROGRAM} build failed"; \
echo; exit 1; fi
+--
+2.25.1
+
diff --git a/meta-oe/recipes-kernel/crash/crash_8.0.0.bb b/meta-oe/recipes-kernel/crash/crash_8.0.0.bb
deleted file mode 100644
index 55de6a604b..0000000000
--- a/meta-oe/recipes-kernel/crash/crash_8.0.0.bb
+++ /dev/null
@@ -1,113 +0,0 @@
-SUMMARY = "Kernel analysis utility for live systems, netdump, diskdump, kdump, LKCD or mcore dumpfiles"
-DESCRIPTION = "The core analysis suite is a self-contained tool that can be used to\
-investigate either live systems, kernel core dumps created from the\
-netdump, diskdump and kdump packages from Red Hat Linux, the mcore kernel patch\
-offered by Mission Critical Linux, or the LKCD kernel patch."
-
-HOMEPAGE = "http://people.redhat.com/anderson"
-SECTION = "devel"
-
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = "zlib readline coreutils-native ncurses-native"
-
-S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/crash-utility/${BPN}.git;branch=master;protocol=https \
- ${GNU_MIRROR}/gdb/gdb-10.2.tar.gz;name=gdb;subdir=git \
- file://7001force_define_architecture.patch \
- file://7003cross_ranlib.patch \
- file://0001-cross_add_configure_option.patch \
- file://donnot-extract-gdb-during-do-compile.patch \
- file://gdb_build_jobs_and_not_write_crash_target.patch \
- "
-SRCREV = "ec568e2ea515b66343d3488d5d4b9a625d55b7ae"
-
-SRC_URI[gdb.sha256sum] = "b33ad58d687487a821ec8d878daab0f716be60d0936f2e3ac5cf08419ce70350"
-
-UPSTREAM_CHECK_URI = "https://github.com/crash-utility/crash/releases"
-
-inherit gettext
-
-BBCLASSEXTEND = "native cross"
-TARGET_CC_ARCH:append = " ${SELECTED_OPTIMIZATION}"
-
-# crash 7.1.3 and before don't support mips64/riscv64
-COMPATIBLE_HOST:riscv64 = "null"
-COMPATIBLE_HOST:riscv32 = "null"
-COMPATIBLE_HOST:mipsarchn64 = "null"
-COMPATIBLE_HOST:mipsarchn32 = "null"
-
-
-EXTRA_OEMAKE = 'RPMPKG="${PV}" \
- GDB_TARGET="${TARGET_SYS}" \
- GDB_HOST="${BUILD_SYS}" \
- GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
- LDFLAGS="${LDFLAGS}" \
- '
-
-EXTRA_OEMAKE:class-cross = 'RPMPKG="${PV}" \
- GDB_TARGET="${BUILD_SYS} --target=${TARGET_SYS}" \
- GDB_HOST="${BUILD_SYS}" \
- GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
- '
-
-EXTRA_OEMAKE:append:class-native = " LDFLAGS='${BUILD_LDFLAGS}'"
-EXTRA_OEMAKE:append:class-cross = " LDFLAGS='${BUILD_LDFLAGS}'"
-
-do_configure() {
- :
-}
-
-do_compile:prepend() {
- case ${TARGET_ARCH} in
- aarch64*) ARCH=ARM64 ;;
- arm*) ARCH=ARM ;;
- i*86*) ARCH=X86 ;;
- x86_64*) ARCH=X86_64 ;;
- powerpc64*) ARCH=PPC64 ;;
- powerpc*) ARCH=PPC ;;
- mips*) ARCH=MIPS ;;
- esac
-
- sed -i s/FORCE_DEFINE_ARCH/"${ARCH}"/g ${S}/configure.c
- sed -i -e 's/#define TARGET_CFLAGS_ARM_ON_X86_64.*/#define TARGET_CFLAGS_ARM_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c
- sed -i -e 's/#define TARGET_CFLAGS_MIPS_ON_X86_64.*/#define TARGET_CFLAGS_MIPS_ON_X86_64\t\"TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64\"/g' ${S}/configure.c
- sed -i 's/&gt;/>/g' ${S}/Makefile
-}
-
-do_compile() {
- oe_runmake ${EXTRA_OEMAKE} RECIPE_SYSROOT=${RECIPE_SYSROOT}
-}
-
-do_install:prepend () {
- install -d ${D}${bindir}
- install -d ${D}/${mandir}/man8
- install -d ${D}${includedir}/crash
-
- install -m 0644 ${S}/crash.8 ${D}/${mandir}/man8/
- install -m 0644 ${S}/defs.h ${D}${includedir}/crash
-}
-
-do_install:class-target () {
- oe_runmake DESTDIR=${D} install
-}
-
-do_install:class-native () {
- oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install
-}
-
-do_install:class-cross () {
- install -m 0755 ${S}/crash ${D}/${bindir}
-}
-
-RDEPENDS:${PN} += "liblzma"
-RDEPENDS:${PN}:class-native = ""
-RDEPENDS:${PN}:class-cross = ""
-
-# Causes gcc to get stuck and eat all available memory in qemuarm builds
-# jenkins 15161 100 12.5 10389596 10321284 ? R 11:40 28:17 /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/x86_64-linux/usr/libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/4.9.2/cc1 -quiet -I . -I . -I ./common -I ./config -I ./../include/opcode -I ./../opcodes/.. -I ./../readline/.. -I ../bfd -I ./../bfd -I ./../include -I ../libdecnumber -I ./../libdecnumber -I ./gnulib/import -I build-gnulib/import -isysroot /home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemuarm -MMD eval.d -MF .deps/eval.Tpo -MP -MT eval.o -D LOCALEDIR="/usr/local/share/locale" -D CRASH_MERGE -D HAVE_CONFIG_H -D TUI=1 eval.c -quiet -dumpbase eval.c -march=armv5te -mthumb -mthumb-interwork -mtls-dialect=gnu -auxbase-strip eval.o -g -O2 -Wall -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -feliminate-unused-debug-types -o -
-ARM_INSTRUCTION_SET = "arm"
-
-# http://errors.yoctoproject.org/Errors/Details/186964/
-COMPATIBLE_HOST:libc-musl = 'null'
diff --git a/meta-oe/recipes-kernel/crash/crash_8.0.4.bb b/meta-oe/recipes-kernel/crash/crash_8.0.4.bb
new file mode 100644
index 0000000000..1af90978e0
--- /dev/null
+++ b/meta-oe/recipes-kernel/crash/crash_8.0.4.bb
@@ -0,0 +1,28 @@
+require crash.inc
+
+
+BBCLASSEXTEND = "native cross"
+
+EXTRA_OEMAKE:class-cross = 'RPMPKG="${PV}" \
+ GDB_TARGET="${BUILD_SYS} --target=${TARGET_SYS}" \
+ GDB_HOST="${BUILD_SYS}" \
+ GDB_MAKE_JOBS="${PARALLEL_MAKE}" \
+ '
+
+EXTRA_OEMAKE:append:class-native = " LDFLAGS='${BUILD_LDFLAGS}'"
+EXTRA_OEMAKE:append:class-cross = " LDFLAGS='${BUILD_LDFLAGS}'"
+
+do_install:class-target () {
+ oe_runmake DESTDIR=${D} install
+}
+
+do_install:class-native () {
+ oe_runmake DESTDIR=${D}${STAGING_DIR_NATIVE} install
+}
+
+do_install:class-cross () {
+ install -m 0755 ${S}/crash ${D}/${bindir}
+}
+
+RDEPENDS:${PN}:class-native = ""
+RDEPENDS:${PN}:class-cross = ""
diff --git a/meta-oe/recipes-kernel/ipmitool/files/0001-csv-revision-Drop-the-git-revision-info.patch b/meta-oe/recipes-kernel/ipmitool/files/0001-csv-revision-Drop-the-git-revision-info.patch
new file mode 100644
index 0000000000..98a820bd9e
--- /dev/null
+++ b/meta-oe/recipes-kernel/ipmitool/files/0001-csv-revision-Drop-the-git-revision-info.patch
@@ -0,0 +1,42 @@
+From 0a1af74ed3fae9a9a08b8b1ab89e88c02427ae06 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 10 Jan 2024 05:57:00 +0000
+Subject: [PATCH] csv-revision: Drop the git revision info
+
+The git revison info is added [1] to make the version more descriptive
+to produce an incremental revision number like 1.8.18.13 or 1.8.18.14
+and etc and more clear in terms of "what codebase was used" like
+`1.8.18.13.gee01aa5`. But it also introduces the below version
+inconsistence.
+ root@qemux86-64:~# ipmitool -V
+ ipmitool version 1.8.19.19.gab5ce5b
+ root@qemux86-64:~# rpm -qa | grep ipmitool
+ ipmitool-1.8.19-r0.core2_64
+
+Considering the version we acutally used in oe is a release version,
+the git revision info as [1] is meaningness. So drop the git revsion
+info to remove the above version inconsitence.
+
+[1] https://github.com/ipmitool/ipmitool/commit/ba01dc84b4e225c86eac3f562e629662d752040f
+
+Upstream-Status: Inappropriate [OE-Specific as we use a release version in oe]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ csv-revision | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/csv-revision b/csv-revision
+index 289c133..3fa9f1c 100755
+--- a/csv-revision
++++ b/csv-revision
+@@ -1,5 +1,6 @@
+ #!/bin/sh
+
++exit 0
+ git describe --first-parent --tags 2>/dev/null | (
+ IFS=- read tag rev hash
+ if [ $? ] && [ -n "$rev" ]; then
+--
+2.35.5
+
diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-configure-Remove-the-logic-to-download-IANA-PEN-data.patch b/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-configure-Remove-the-logic-to-download-IANA-PEN-data.patch
deleted file mode 100644
index 442f132718..0000000000
--- a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-configure-Remove-the-logic-to-download-IANA-PEN-data.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 63d72f97bd106dd2101cd7fdac6df4f7a053d67c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Sep 2022 08:27:39 -0700
-Subject: [PATCH] configure: Remove the logic to download IANA PEN database
- during configure
-
-OE will do all downloading before it starts to configure therefore this
-step is moved out into bitbake recipe, so we can make it immutable build
-
-Upstream-Status: Inappropriate [OE-Specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 16 +---------------
- 1 file changed, 1 insertion(+), 15 deletions(-)
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -56,21 +56,7 @@ if test "x$exec_prefix" = "xNONE"; then
- exec_prefix="$prefix"
- fi
-
--if test "x$WGET" = "x"; then
-- if test "x$CURL" = "x"; then
-- AC_MSG_WARN([** Neither wget nor curl could be found.])
-- AC_MSG_WARN([** IANA PEN database will not be installed by `make install` !])
-- else
-- DOWNLOAD="$CURL --location --progress-bar"
-- AM_CONDITIONAL([DOWNLOAD], [true])
-- fi
--else
-- DOWNLOAD="$WGET -c -nd -O -"
-- AM_CONDITIONAL([DOWNLOAD], [true])
--fi
--
--AC_MSG_WARN([** Download is:])
--AC_MSG_WARN($DOWNLOAD)
-+AM_CONDITIONAL([DOWNLOAD], [false])
- AC_SUBST(DOWNLOAD, $DOWNLOAD)
-
- dnl
diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-ipmi_fru.c-Provide-missing-function-declarations.patch b/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-ipmi_fru.c-Provide-missing-function-declarations.patch
deleted file mode 100644
index 704bbdb5c7..0000000000
--- a/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-ipmi_fru.c-Provide-missing-function-declarations.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e5bbf96edf776821f29ab67baed22a690bf8ab10 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Sep 2022 07:30:10 -0700
-Subject: [PATCH] ipmi_fru.c: Provide missing function declarations
-
-Fixes build with clang-15+
-
-Upstream-Status: Submitted [https://github.com/ipmitool/ipmitool/pull/360]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/ipmi_fru.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c
-index 3d1d8a1..5c5661c 100644
---- a/lib/ipmi_fru.c
-+++ b/lib/ipmi_fru.c
-@@ -60,6 +60,13 @@ static const char *section_id[4] = {
- "Board Section",
- "Product Section"
- };
-+/* From lib/ipmi_hpmfwupg.c: */
-+uint16_t
-+ipmi_intf_get_max_request_data_size(struct ipmi_intf * intf);
-+
-+/* From src/plugins/ipmi_intf.c: */
-+uint16_t
-+ipmi_intf_get_max_response_data_size(struct ipmi_intf * intf);
-
- static const char * combined_voltage_desc[] = {
- "12 V",
---
-2.37.3
-
diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.19.bb b/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.19.bb
index 0a600e23bb..0f1c8846b4 100644
--- a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.19.bb
+++ b/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.19.bb
@@ -14,28 +14,27 @@ Log (SEL), printing Field Replaceable Unit (FRU) information, reading and \
setting LAN configuration, and chassis power control. \
"
-HOMEPAGE = "http://ipmitool.sourceforge.net/"
+HOMEPAGE = "http://codeberg.org/IPMITool/ipmitool"
SECTION = "kernel/userland"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=9aa91e13d644326bf281924212862184"
DEPENDS = "openssl readline ncurses"
-SRCREV = "19d78782d795d0cf4ceefe655f616210c9143e62"
-SRC_URI = "git://github.com/ipmitool/ipmitool;protocol=https;branch=master \
+SRCREV = "ab5ce5baff097ebb6e2a17a171858be213ee68d3"
+SRC_URI = "git://codeberg.org/ipmitool/ipmitool;protocol=https;branch=master \
${IANA_ENTERPRISE_NUMBERS} \
- file://0001-ipmi_fru.c-Provide-missing-function-declarations.patch \
- file://0001-configure-Remove-the-logic-to-download-IANA-PEN-data.patch \
+ file://0001-csv-revision-Drop-the-git-revision-info.patch \
"
IANA_ENTERPRISE_NUMBERS ?= ""
# Add these via bbappend if this database is needed by the system
-#IANA_ENTERPRISE_NUMBERS ?= "http://www.iana.org/assignments/enterprise-numbers;name=iana-enterprise-numbers;downloadfilename=iana-enterprise-numbers"
+#IANA_ENTERPRISE_NUMBERS = "http://www.iana.org/assignments/enterprise-numbers.txt;name=iana-enterprise-numbers;downloadfilename=iana-enterprise-numbers"
#SRC_URI[iana-enterprise-numbers.sha256sum] = "cdd97fc08325667434b805eb589104ae63f7a9eb720ecea73cb55110b383934c"
S = "${WORKDIR}/git"
-inherit autotools
+inherit autotools pkgconfig
do_install:append() {
if [ -e ${WORKDIR}/iana-enterprise-numbers ]; then
@@ -51,5 +50,10 @@ FILES:${PN} += "${datadir}/misc"
# --enable-file-security adds some security checks
# --disable-intf-free disables FreeIPMI support - we don't want to depend on
# FreeIPMI libraries, FreeIPMI has its own ipmitoool-like utility.
+# --disable-registry-download prevents the IANA numbers from being fetched
+# at build time, as it is not repeatable.
#
-EXTRA_OECONF = "--disable-dependency-tracking --enable-file-security --disable-intf-free"
+EXTRA_OECONF = "--disable-dependency-tracking --enable-file-security --disable-intf-free \
+ --disable-registry-download \
+ "
+
diff --git a/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch b/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch
deleted file mode 100644
index 78c05ef32c..0000000000
--- a/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-Prevent-access-times-from-changing-resulting-gzip-md.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From da668e5bf1a721797361ab866d09913ee8e157c4 Mon Sep 17 00:00:00 2001
-From: Jeremy Puhlman <jpuhlman@mvista.com>
-Date: Sat, 22 Feb 2020 04:37:04 +0000
-Subject: [PATCH] Prevent access times from changing resulting gzip md5sum
-
-Upstream-Status: Pending
-https://github.com/ipmitool/ipmitool/pull/186
----
- doc/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index b792762..2c52ce6 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -59,5 +59,5 @@ install:
- ${INSTALL_DATA_SH} iuser.8 ${manto}
- ${INSTALL_DATA_SH} iseltime.8 ${manto}
- ${INSTALL_DATA_SH} bmclanpet.mib ${datato}
-- cd ${manto}; gzip -f *.8
-+ cd ${manto}; gzip -nf *.8
-
---
-2.13.3
-
diff --git a/meta-oe/recipes-kernel/ipmiutil/ipmiutil/fix_systemd_path.patch b/meta-oe/recipes-kernel/ipmiutil/ipmiutil/fix_systemd_path.patch
index 33116b3c06..2862793b05 100644
--- a/meta-oe/recipes-kernel/ipmiutil/ipmiutil/fix_systemd_path.patch
+++ b/meta-oe/recipes-kernel/ipmiutil/ipmiutil/fix_systemd_path.patch
@@ -2,15 +2,13 @@ allow systemd path to be defined by configure option.
The configure probes the host for systemd path information.
-Upstream Status: Inappropriate [Embedded]
+Upstream-Status: Inappropriate [Embedded]
-Signed-off-By: Armin Kuster <akuster@mvista.com>
+Signed-off-by: Armin Kuster <akuster@mvista.com>
-Index: ipmiutil-3.0.5/configure.ac
-===================================================================
---- ipmiutil-3.0.5.orig/configure.ac
-+++ ipmiutil-3.0.5/configure.ac
-@@ -149,7 +149,6 @@ CROSS_LFLAGS=""
+--- a/configure.ac
++++ b/configure.ac
+@@ -151,7 +151,6 @@ CROSS_LFLAGS=""
CROSS_CFLAGS=""
LIBSENSORS=""
SAM2OBJ="isensor2.o ievents2.o"
@@ -18,7 +16,7 @@ Index: ipmiutil-3.0.5/configure.ac
AC_ARG_ENABLE([useflags],
[ --enable-useflags include environment CFLAGS and LDFLAGS.],
-@@ -200,29 +199,42 @@ AC_ARG_ENABLE([gpl],
+@@ -211,29 +210,42 @@ AC_ARG_ENABLE([gpl],
dnl Does this Linux have systemd enabled? Otherwise use sysv init.
AC_ARG_ENABLE([systemd],
@@ -83,7 +81,7 @@ Index: ipmiutil-3.0.5/configure.ac
fi
dnl start main logic
-@@ -528,7 +540,7 @@ AC_SUBST(INS_LIB)
+@@ -563,7 +575,7 @@ AC_SUBST(INS_LIB)
AC_SUBST(SUBDIR_S)
AC_SUBST(CROSS_CFLAGS)
AC_SUBST(CROSS_LFLAGS)
@@ -92,10 +90,8 @@ Index: ipmiutil-3.0.5/configure.ac
AC_SUBST(SHR_LINK)
AC_SUBST(pkgconfigdir)
-Index: ipmiutil-3.0.5/scripts/Makefile.am
-===================================================================
---- ipmiutil-3.0.5.orig/scripts/Makefile.am
-+++ ipmiutil-3.0.5/scripts/Makefile.am
+--- a/scripts/Makefile.am
++++ b/scripts/Makefile.am
@@ -17,7 +17,8 @@ cronto = ${DESTDIR}${etcdir}/cron.daily
sbinto = ${DESTDIR}${sbindir}
varto = ${DESTDIR}/var/lib/ipmiutil
@@ -106,7 +102,7 @@ Index: ipmiutil-3.0.5/scripts/Makefile.am
sysvinit = ${datato}
sbinfls = ialarms ihealth ifru igetevent ireset icmd isol ilan isensor isel iserial iwdt iconfig ipicmg ifirewall ifwum ihpm iuser
-@@ -47,10 +48,14 @@ install:
+@@ -47,10 +48,13 @@ install:
${INSTALL_SCRIPT_SH} ipmi_port.sh ${sysvinit}/ipmi_port
${INSTALL_SCRIPT_SH} ipmi_info ${sysvinit}/ipmi_info
${INSTALL_SCRIPT_SH} checksel ${datato}
@@ -114,7 +110,6 @@ Index: ipmiutil-3.0.5/scripts/Makefile.am
- ${INSTALL_DATA_SH} ipmiutil_asy.service ${sysdto}
- ${INSTALL_DATA_SH} ipmiutil_evt.service ${sysdto}
- ${INSTALL_DATA_SH} ipmi_port.service ${sysdto}
-+
+ if [ ! -z "${systemddir}" ]; then \
+ $(MKDIR) ${sysdto}; \
+ ${INSTALL_DATA_SH} ipmiutil_wdt.service ${sysdto}; \
@@ -122,6 +117,6 @@ Index: ipmiutil-3.0.5/scripts/Makefile.am
+ ${INSTALL_DATA_SH} ipmiutil_evt.service ${sysdto}; \
+ ${INSTALL_DATA_SH} ipmi_port.service ${sysdto}; \
+ fi
- ${INSTALL_SCRIPT_SH} ipmiutil.env ${datato}
+ ${INSTALL_SCRIPT_SH} ipmiutil.env.template ${datato}
+ ${INSTALL_SCRIPT_SH} ipmiutil.env.template ${datato}/ipmiutil.env
${INSTALL_SCRIPT_SH} ipmiutil.pre ${datato}
- ${INSTALL_SCRIPT_SH} ipmiutil.setup ${datato}
diff --git a/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb b/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb
deleted file mode 100644
index 64bcf5f764..0000000000
--- a/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.5.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SUMMARY = "ipmiutil is an easy-to-use set of IPMI server management utilities.\
-It can get/set sensor thresholds, automate SEL management, do SOL console, etc."
-
-DESCRIPTION = "The IPMI Management Utilities currently work with platforms that \
-support the IPMI 1.5 or 2.0 specification. IPMI servers can be managed\
-locally, or remotely via IPMI LAN, even when the OS or main CPU is not\
-functional.\n \
-The ipmiutil utilities will use an IPMI Driver, either the Intel IPMI package \
-(ipmidrvr, /dev/imb), MontaVista OpenIPMI (/dev/ipmi0), the valinux IPMI \
-Driver (/dev/ipmikcs), or the LANDesk ldipmi daemon. The ipmiutil utilities \
-can also use direct user-space I/Os in Linux or FreeBSD if no IPMI driver \
-is detected."
-
-HOMEPAGE = "http://ipmiutil.sourceforge.net"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=626a5970304daa1fcb87f757fb42b795"
-
-DEPENDS += "openssl"
-
-PARALLEL_MAKE = ""
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/ipmiutil/ipmiutil-${PV}.tar.gz \
- file://fix_systemd_path.patch \
- file://0001-Prevent-access-times-from-changing-resulting-gzip-md.patch \
- file://0001-ihpm-Include-stdlib.h-for-malloc-free-atoi-functions.patch \
- "
-SRC_URI[md5sum] = "292d6df25cad678bb27e5c8cdc6748f9"
-SRC_URI[sha256sum] = "58ccdbd5755d7dd72478756715af09e9c73330dfad2b91dbf03d2ac504b301a3"
-
-inherit autotools-brokensep pkgconfig systemd
-
-PACKAGECONFIG ?= "lanplus gpl"
-PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "--enable-systemd=${datadir}/${BPN}, --enable-systemd=no"
-PACKAGECONFIG[sha256] = "--enable-sha256, --enable-sha256=no, openssl-native, openssl"
-PACKAGECONFIG[lanplus] = "--enable-lanplus, --enable-lanplus=no, openssl-native, openssl"
-PACKAGECONFIG[landesk] = "--enable-landesk, --enable-landesk=no"
-PACKAGECONFIG[sensors] = "--enable-libsensors, --enable-libsensors=no"
-
-#build with some GPL code
-PACKAGECONFIG[gpl] = "--enable-gpl, --enable-gpl=no"
-#no GPL or LanPlus libs
-PACKAGECONFIG[standalone] = "--enable-standalone, --enable-standalone=no"
-
-CFLAGS += "-I${STAGING_INCDIR}"
-LDFLAGS += "-L${STAGING_LIBDIR}"
-
-COMPATIBLE_HOST = '(x86_64|i.86).*-linux'
diff --git a/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.9.bb b/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.9.bb
new file mode 100644
index 0000000000..c85bfc13af
--- /dev/null
+++ b/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.9.bb
@@ -0,0 +1,47 @@
+SUMMARY = "ipmiutil is an easy-to-use set of IPMI server management utilities.\
+It can get/set sensor thresholds, automate SEL management, do SOL console, etc."
+
+DESCRIPTION = "The IPMI Management Utilities currently work with platforms that \
+support the IPMI 1.5 or 2.0 specification. IPMI servers can be managed\
+locally, or remotely via IPMI LAN, even when the OS or main CPU is not\
+functional.\n \
+The ipmiutil utilities will use an IPMI Driver, either the Intel IPMI package \
+(ipmidrvr, /dev/imb), MontaVista OpenIPMI (/dev/ipmi0), the valinux IPMI \
+Driver (/dev/ipmikcs), or the LANDesk ldipmi daemon. The ipmiutil utilities \
+can also use direct user-space I/Os in Linux or FreeBSD if no IPMI driver \
+is detected."
+
+HOMEPAGE = "http://ipmiutil.sourceforge.net"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=626a5970304daa1fcb87f757fb42b795"
+
+DEPENDS += "openssl"
+
+PARALLEL_MAKE = ""
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/ipmiutil/ipmiutil-${PV}.tar.gz \
+ file://fix_systemd_path.patch \
+ file://0001-ihpm-Include-stdlib.h-for-malloc-free-atoi-functions.patch \
+ "
+SRC_URI[sha256sum] = "5ae99bdd1296a8e25cea839784ec39ebca57b0e3701b2d440b8e02e22dc4bc95"
+
+inherit autotools-brokensep pkgconfig systemd
+
+PACKAGECONFIG ?= "lanplus gpl"
+PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "--enable-systemd=${datadir}/${BPN}, --enable-systemd=no"
+PACKAGECONFIG[sha256] = "--enable-sha256, --enable-sha256=no, openssl-native, openssl"
+PACKAGECONFIG[lanplus] = "--enable-lanplus, --enable-lanplus=no, openssl-native, openssl"
+PACKAGECONFIG[landesk] = "--enable-landesk, --enable-landesk=no"
+PACKAGECONFIG[sensors] = "--enable-libsensors, --enable-libsensors=no"
+
+#build with some GPL code
+PACKAGECONFIG[gpl] = "--enable-gpl, --enable-gpl=no"
+#no GPL or LanPlus libs
+PACKAGECONFIG[standalone] = "--enable-standalone, --enable-standalone=no"
+
+CFLAGS += "-I${STAGING_INCDIR}"
+LDFLAGS += "-L${STAGING_LIBDIR}"
+
+EXTRA_OECONF += "--enable-useflags"
+COMPATIBLE_HOST = '(x86_64|i.86).*-linux'
diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
index 3d97ea0967..01f185adba 100644
--- a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
+++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
@@ -19,6 +19,8 @@ SRC_URI += "file://run-ptest \
# bpf was added in 4.10 with: https://github.com/torvalds/linux/commit/5aa5bd14c5f8660c64ceedf14a549781be47e53d
# if you have older kernel than that you need to remove it from PACKAGECONFIG
PACKAGECONFIG ??= "firmware"
+# bpf needs working clang compiler anyway
+PACKAGECONFIG:append:toolchain-clang:x86-64 = " bpf"
PACKAGECONFIG:remove:x86 = "bpf"
PACKAGECONFIG:remove:arm = "bpf vm"
# host ptrace.h is used to compile BPF target but mips ptrace.h is needed
@@ -28,34 +30,43 @@ PACKAGECONFIG:remove:arm = "bpf vm"
PACKAGECONFIG:remove:qemumips = "bpf vm"
# riscv does not support libhugetlbfs yet
-PACKAGECONFIG:remove:riscv64 = "vm"
-PACKAGECONFIG:remove:riscv32 = "vm"
+PACKAGECONFIG:remove:riscv64 = "bpf vm"
+PACKAGECONFIG:remove:riscv32 = "bpf vm"
-PACKAGECONFIG[bpf] = ",,elfutils libcap libcap-ng rsync-native,"
+PACKAGECONFIG[bpf] = ",,elfutils elfutils-native libcap libcap-ng rsync-native python3-docutils-native,"
PACKAGECONFIG[firmware] = ",,libcap, bash"
PACKAGECONFIG[vm] = ",,libcap libhugetlbfs,libgcc bash"
do_patch[depends] += "virtual/kernel:do_shared_workdir"
+do_compile[depends] += "virtual/kernel:do_install"
-inherit linux-kernel-base kernel-arch ptest
+inherit linux-kernel-base module-base kernel-arch ptest siteinfo
S = "${WORKDIR}/${BP}"
+DEBUG_PREFIX_MAP:remove = "-fcanon-prefix-map"
+
TEST_LIST = "\
${@bb.utils.filter('PACKAGECONFIG', 'bpf firmware vm', d)} \
rtc \
+ ptp \
+ timers \
"
-
EXTRA_OEMAKE = '\
CROSS_COMPILE=${TARGET_PREFIX} \
ARCH=${ARCH} \
CC="${CC}" \
- CLANG="clang -fno-stack-protector -target ${TARGET_ARCH} ${TOOLCHAIN_OPTIONS}" \
AR="${AR}" \
LD="${LD}" \
+ CLANG="clang -fno-stack-protector -target ${TARGET_ARCH} ${TOOLCHAIN_OPTIONS} -isystem ${S} -D__WORDSIZE=\'64\' -Wno-error=unused-command-line-argument" \
DESTDIR="${D}" \
- MACHINE="${ARCH}" \
+ V=1 \
'
+EXTRA_OEMAKE:append:toolchain-clang = "\
+ LLVM=1 CONFIG_CC_IS_GCC= CONFIG_CC_IS_CLANG=y CONFIG_CC_IMPLICIT_FALLTHROUGH= \
+ HOSTCC="clang -unwindlib=libgcc -rtlib=libgcc -stdlib=libstdc++ ${BUILD_CFLAGS} ${BUILD_LDFLAGS} -Wno-error=unused-command-line-argument" \
+ HOSTLD="clang ${BUILD_LDFLAGS} -unwindlib=libgcc -rtlib=libgcc -stdlib=libstdc++" \
+"
KERNEL_SELFTEST_SRC ?= "Makefile \
include \
@@ -66,7 +77,6 @@ KERNEL_SELFTEST_SRC ?= "Makefile \
arch \
LICENSES \
"
-
do_compile() {
if [ ${@bb.utils.contains('PACKAGECONFIG', 'bpf', 'True', 'False', d)} = 'True' ]; then
if [ ${@bb.utils.contains('DEPENDS', 'clang-native', 'True', 'False', d)} = 'False' ]; then
@@ -74,7 +84,18 @@ do_compile() {
either install it and add it to HOSTTOOLS, or add clang-native from meta-clang to dependency"
fi
fi
-
+ mkdir -p ${S}/include/config ${S}/bits
+ install -Dm 0644 ${STAGING_KERNEL_BUILDDIR}/.config ${S}/include/config/auto.conf
+ if [ "${SITEINFO_BITS}" != "32" ]; then
+ for f in long-double endianness floatn struct_rwlock; do
+ cp ${RECIPE_SYSROOT}${includedir}/bits/$f-64.h ${S}/bits/$f-32.h
+ done
+ fi
+ oe_runmake -C ${S} headers
+ sed -i -e 's|^all: docs|all:|' ${S}/tools/testing/selftests/bpf/Makefile
+ sed -i -e '/mrecord-mcount/d' ${S}/Makefile
+ sed -i -e '/Wno-alloc-size-larger-than/d' ${S}/Makefile
+ sed -i -e '/Wno-alloc-size-larger-than/d' ${S}/scripts/Makefile.*
for i in ${TEST_LIST}
do
oe_runmake -C ${S}/tools/testing/selftests/${i}
@@ -133,9 +154,9 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
INHIBIT_PACKAGE_DEBUG_SPLIT="1"
FILES:${PN} += "/usr/kernel-selftest"
-RDEPENDS:${PN} += "python3 perl"
-# tools/testing/selftests/vm/Makefile doesn't respect LDFLAGS and tools/testing/selftests/Makefile explicitly overrides to empty
-INSANE_SKIP:${PN} += "ldflags"
+RDEPENDS:${PN} += "python3 perl perl-module-io-handle"
+
+INSANE_SKIP:${PN} += "libdir"
SECURITY_CFLAGS = ""
COMPATIBLE_HOST:libc-musl = 'null'
diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest
index d40b9576d8..0903d097e1 100755
--- a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest
+++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest
@@ -1,11 +1,7 @@
#!/bin/sh
-export PATH=$PATH:/usr/kernel-selftest/bpf
-
-# test_align
-test_align | grep "12 pass" &> /dev/null
+/usr/kernel-selftest/run_kselftest.sh -s
if [ $? == 0 ]; then
- echo "[PASS]: test_align"
+ echo "PASS: kernel-selftest"
else
- echo "[FAIL]: test_align"
+ echo "[FAIL]: kernel-selftest"
fi
-
diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/userfaultfd.patch b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/userfaultfd.patch
index bed20510e8..d34c54754e 100644
--- a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/userfaultfd.patch
+++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/userfaultfd.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] vm: add some funtions to support musl libc
Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
---
+Upstream-Status: Pending
+
tools/testing/selftests/vm/userfaultfd.c | 298 +++++++++++++++++++++++++++++++
1 file changed, 298 insertions(+)
diff --git a/meta-oe/recipes-kernel/libbpf/libbpf_0.8.0.bb b/meta-oe/recipes-kernel/libbpf/libbpf_0.8.0.bb
deleted file mode 100644
index 76fd862142..0000000000
--- a/meta-oe/recipes-kernel/libbpf/libbpf_0.8.0.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Library for BPF handling"
-DESCRIPTION = "Library for BPF handling"
-HOMEPAGE = "https://github.com/libbpf/libbpf"
-SECTION = "libs"
-LICENSE = "LGPL-2.1-or-later"
-
-LIC_FILES_CHKSUM = "file://../LICENSE.LGPL-2.1;md5=b370887980db5dd40659b50909238dbd"
-
-DEPENDS = "zlib elfutils"
-
-SRC_URI = "git://github.com/libbpf/libbpf.git;protocol=https;branch=master"
-SRCREV = "86eb09863c1c0177e99c2c703092042d3cdba910"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-COMPATIBLE_HOST = "(x86_64|i.86|aarch64|riscv64|powerpc64).*-linux"
-
-S = "${WORKDIR}/git/src"
-
-EXTRA_OEMAKE += "DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir}"
-
-inherit pkgconfig
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- oe_runmake install
-}
diff --git a/meta-oe/recipes-kernel/libbpf/libbpf_1.3.0.bb b/meta-oe/recipes-kernel/libbpf/libbpf_1.3.0.bb
new file mode 100644
index 0000000000..9b8ca07fe7
--- /dev/null
+++ b/meta-oe/recipes-kernel/libbpf/libbpf_1.3.0.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Library for BPF handling"
+DESCRIPTION = "Library for BPF handling"
+HOMEPAGE = "https://github.com/libbpf/libbpf"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-or-later"
+
+LIC_FILES_CHKSUM = "file://../LICENSE.LGPL-2.1;md5=b370887980db5dd40659b50909238dbd"
+
+DEPENDS = "zlib elfutils"
+
+SRC_URI = "git://github.com/libbpf/libbpf.git;protocol=https;branch=master"
+SRCREV = "20c0a9e3d7e7d4aeb283eae982543c9cacc29477"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_HOST = "(x86_64|i.86|arm|aarch64|riscv64|powerpc|powerpc64|mips64).*-linux"
+
+S = "${WORKDIR}/git/src"
+
+EXTRA_OEMAKE += "DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir}"
+EXTRA_OEMAKE:append:class-native = " UAPIDIR=${includedir}"
+
+inherit pkgconfig
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake install
+}
+
+do_install:append:class-native() {
+ oe_runmake install_uapi_headers
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-kernel/libpfm/libpfm4_4.12.0.bb b/meta-oe/recipes-kernel/libpfm/libpfm4_4.12.0.bb
deleted file mode 100644
index 4baed62145..0000000000
--- a/meta-oe/recipes-kernel/libpfm/libpfm4_4.12.0.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Monitoring tools exploiting the performance monitoring events"
-DESCRIPTION = "This package provides a library, called libpfm4 which is used to develop \
-monitoring tools exploiting the performance monitoring events such as those \
-provided by the Performance Monitoring Unit (PMU) of modern processors."
-HOMEPAGE = "http://perfmon2.sourceforge.net/"
-BUGTRACKER = "http://sourceforge.net/tracker/?group_id=144822&atid=759953&source=navbar"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0de488f3bd4424e308e2e399cb99c788"
-
-SECTION = "devel"
-
-COMPATIBLE_HOST = "powerpc64|aarch64"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/perfmon2/${BPN}/libpfm-${PV}.tar.gz \
- file://0001-Include-poll.h-instead-of-sys-poll.h.patch \
- file://0002-perf_examples-Remove-unused-sum-variable.patch \
- "
-SRC_URI[sha256sum] = "4b0c1f53f39a61525b69bebf532c68040c1b984d7544a8ae0844b13cd91e1ee4"
-
-UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/perfmon2/files/libpfm4/"
-
-EXTRA_OEMAKE = "DESTDIR=\"${D}\" PREFIX=\"${prefix}\" LIBDIR=\"${libdir}\" LDCONFIG=\"true\" DBG='-g -Wall -Wextra -Wno-unused-parameter'"
-EXTRA_OEMAKE:append:powerpc = " ARCH=\"powerpc\""
-EXTRA_OEMAKE:append:powerpc64 = " ARCH=\"powerpc\" BITMODE=\"64\""
-EXTRA_OEMAKE:append:powerpc64le = " ARCH=\"powerpc\" BITMODE=\"64\""
-EXTRA_OEMAKE:append:aarch64 = " ARCH=\"arm64\""
-
-S = "${WORKDIR}/libpfm-${PV}"
-
-do_install () {
- oe_runmake install
-}
diff --git a/meta-oe/recipes-kernel/libpfm/libpfm4_4.13.0.bb b/meta-oe/recipes-kernel/libpfm/libpfm4_4.13.0.bb
new file mode 100644
index 0000000000..be0659ad2a
--- /dev/null
+++ b/meta-oe/recipes-kernel/libpfm/libpfm4_4.13.0.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Monitoring tools exploiting the performance monitoring events"
+DESCRIPTION = "This package provides a library, called libpfm4 which is used to develop \
+monitoring tools exploiting the performance monitoring events such as those \
+provided by the Performance Monitoring Unit (PMU) of modern processors."
+HOMEPAGE = "http://perfmon2.sourceforge.net/"
+BUGTRACKER = "http://sourceforge.net/tracker/?group_id=144822&atid=759953&source=navbar"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0de488f3bd4424e308e2e399cb99c788"
+
+SECTION = "devel"
+
+COMPATIBLE_HOST = "powerpc64|aarch64"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/perfmon2/${BPN}/libpfm-${PV}.tar.gz \
+ file://0001-Include-poll.h-instead-of-sys-poll.h.patch \
+ file://0002-perf_examples-Remove-unused-sum-variable.patch \
+ "
+SRC_URI[sha256sum] = "d18b97764c755528c1051d376e33545d0eb60c6ebf85680436813fa5b04cc3d1"
+
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/perfmon2/files/libpfm4/"
+
+EXTRA_OEMAKE = "DESTDIR=\"${D}\" PREFIX=\"${prefix}\" LIBDIR=\"${libdir}\" LDCONFIG=\"true\" DBG='-g -Wall -Wextra -Wno-unused-parameter'"
+EXTRA_OEMAKE:append:powerpc = " ARCH=\"powerpc\""
+EXTRA_OEMAKE:append:powerpc64 = " ARCH=\"powerpc\" BITMODE=\"64\""
+EXTRA_OEMAKE:append:powerpc64le = " ARCH=\"powerpc\" BITMODE=\"64\""
+EXTRA_OEMAKE:append:aarch64 = " ARCH=\"arm64\""
+
+S = "${WORKDIR}/libpfm-${PV}"
+
+do_install () {
+ oe_runmake install
+}
diff --git a/meta-oe/recipes-kernel/libtracefs/libtracefs/0001-makefile-Do-not-preserve-ownership-in-cp-command.patch b/meta-oe/recipes-kernel/libtracefs/libtracefs/0001-makefile-Do-not-preserve-ownership-in-cp-command.patch
new file mode 100644
index 0000000000..7ae0856f85
--- /dev/null
+++ b/meta-oe/recipes-kernel/libtracefs/libtracefs/0001-makefile-Do-not-preserve-ownership-in-cp-command.patch
@@ -0,0 +1,31 @@
+From 6650d0e79eea330b53635574885208a138fef97e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 21 Dec 2022 22:50:56 -0800
+Subject: [PATCH] makefile: Do not preserve ownership in cp command
+
+Fixes
+ERROR: libtracefs-1.6.3-r0 do_package_qa: QA Issue: libtracefs: /usr/lib/libtracefs.so is owned by uid 1000, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated]
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 27d425c..3aea142 100644
+--- a/Makefile
++++ b/Makefile
+@@ -273,7 +273,7 @@ endif # DESTDIR = ""
+
+ install_libs: libs install_pkgconfig
+ $(Q)$(call do_install,$(LIBTRACEFS_SHARED),$(libdir_SQ)); \
+- cp -fpR $(LIB_INSTALL) $(DESTDIR)$(libdir_SQ)
++ cp --no-preserve=ownership --recursive $(LIB_INSTALL) $(DESTDIR)$(libdir_SQ)
+ $(Q)$(call do_install,$(src)/include/tracefs.h,$(includedir_SQ),644)
+ $(Q)$(call install_ld_config)
+
+--
+2.39.0
+
diff --git a/meta-oe/recipes-kernel/libtracefs/libtracefs/0001-tracefs-perf-Add-missing-headers-for-syscall-and-SYS.patch b/meta-oe/recipes-kernel/libtracefs/libtracefs/0001-tracefs-perf-Add-missing-headers-for-syscall-and-SYS.patch
new file mode 100644
index 0000000000..a24dd1315b
--- /dev/null
+++ b/meta-oe/recipes-kernel/libtracefs/libtracefs/0001-tracefs-perf-Add-missing-headers-for-syscall-and-SYS.patch
@@ -0,0 +1,31 @@
+From f539d96ef4a34ad23d33c552d1770ab429b0220e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 14 Jun 2023 00:24:36 -0700
+Subject: [PATCH] tracefs-perf: Add missing headers for syscall() and SYS_*
+ defines
+
+These headers are needed to provide prototype definitions for functions
+e.g. close(), syscall(), getpagesize(), getpid()
+
+The issue is observed with clang-16+ compiler on musl systems
+
+Upstream-Status: Submitted [https://lore.kernel.org/linux-trace-devel/20230614072759.316154-1-raj.khem@gmail.com/T/#u]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/tracefs-perf.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/tracefs-perf.c b/src/tracefs-perf.c
+index 96d12cd..62c1508 100644
+--- a/src/tracefs-perf.c
++++ b/src/tracefs-perf.c
+@@ -1,4 +1,5 @@
+-#include <asm/unistd.h>
++#include <unistd.h>
++#include <sys/syscall.h>
+ #include <sys/mman.h>
+ #include <signal.h>
+ #include <linux/perf_event.h>
+--
+2.41.0
+
diff --git a/meta-oe/recipes-kernel/libtracefs/libtracefs_1.7.0.bb b/meta-oe/recipes-kernel/libtracefs/libtracefs_1.7.0.bb
new file mode 100644
index 0000000000..9a408ba13c
--- /dev/null
+++ b/meta-oe/recipes-kernel/libtracefs/libtracefs_1.7.0.bb
@@ -0,0 +1,23 @@
+# Copyright (C) 2022 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Library to parse raw trace event formats "
+HOMEPAGE = "https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/"
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=e6a75371ba4d16749254a51215d13f97 \
+ file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd"
+SECTION = "libs"
+DEPENDS = "libtraceevent bison-native flex-native"
+
+SRCREV = "aebab37379d0fbadc702d64aca0fe5cf18676404"
+SRC_URI = "git://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git;branch=${BPN};protocol=https \
+ file://0001-makefile-Do-not-preserve-ownership-in-cp-command.patch \
+ file://0001-tracefs-perf-Add-missing-headers-for-syscall-and-SYS.patch \
+ "
+S = "${WORKDIR}/git"
+
+inherit pkgconfig
+
+do_install() {
+ oe_runmake install DESTDIR=${D} pkgconfig_dir=${libdir}/pkgconfig
+}
diff --git a/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch b/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
index f3dc8a466a..15ced551db 100644
--- a/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
+++ b/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch
@@ -10,7 +10,7 @@ Subject: [PATCH] makedumpfile: replace hardcode CFLAGS
* Forcibly to link dynamic library as the poky build
system doesn't build static library by default
-Upstream-Status: Inappropriate[oe specific]
+Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
diff --git a/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.1.bb b/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.1.bb
deleted file mode 100644
index eb004c2ed5..0000000000
--- a/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.1.bb
+++ /dev/null
@@ -1,61 +0,0 @@
-SUMMARY = "VMcore extraction tool"
-DESCRIPTION = "\
- This program is used to extract a subset of the memory available either \
- via /dev/mem or /proc/vmcore (for crashdumps). It is used to get memory \
- images without extra uneeded information (zero pages, userspace programs, \
- etc). \
-"
-HOMEPAGE = "https://github.com/makedumpfile/makedumpfile"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-LICENSE = "GPL-2.0-only"
-
-SRCBRANCH ?= "master"
-SRCREV = "74bbdd14ec861552ace1ca63953eb2ef73e1f965"
-
-DEPENDS = "bzip2 zlib elfutils xz"
-RDEPENDS:${PN}-tools = "perl ${PN}"
-
-# mips would not compile.
-COMPATIBLE_HOST = "(x86_64|i.86|powerpc|arm|aarch64).*-linux"
-
-PACKAGES =+ "${PN}-tools"
-FILES:${PN}-tools = "${bindir}/*.pl"
-
-SRC_URI = "\
- git://github.com/makedumpfile/makedumpfile;branch=${SRCBRANCH};protocol=https \
- file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \
-"
-
-S = "${WORKDIR}/git"
-
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
-
-SECTION = "base"
-
-# If we do not specify TARGET, makedumpfile will build for the host but use the
-# target gcc.
-#
-
-MAKEDUMPFILE_TARGET ?= "${TARGET_ARCH}"
-MAKEDUMPFILE_TARGET:powerpc = "ppc"
-
-EXTRA_OEMAKE = "\
- LINKTYPE=static \
- TARGET=${MAKEDUMPFILE_TARGET} \
- ${PACKAGECONFIG_CONFARGS} \
-"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[lzo] = "USELZO=on,USELZO=off,lzo"
-PACKAGECONFIG[snappy] = "USESNAPPY=on,USESNAPPY=off,snappy"
-PACKAGECONFIG[zstd] = "USEZSTD=on,USEZSTD=off,zstd"
-
-do_install () {
- mkdir -p ${D}/usr/bin
- install -m 755 ${S}/makedumpfile ${D}/usr/bin
- install -m 755 ${S}/makedumpfile-R.pl ${D}/usr/bin
-
- mkdir -p ${D}/etc/
- install -m 644 ${S}/makedumpfile.conf ${D}/etc/makedumpfile.conf.sample
-}
diff --git a/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.4.bb b/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.4.bb
new file mode 100644
index 0000000000..b016d5da4d
--- /dev/null
+++ b/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.4.bb
@@ -0,0 +1,62 @@
+SUMMARY = "VMcore extraction tool"
+DESCRIPTION = "\
+ This program is used to extract a subset of the memory available either \
+ via /dev/mem or /proc/vmcore (for crashdumps). It is used to get memory \
+ images without extra uneeded information (zero pages, userspace programs, \
+ etc). \
+"
+HOMEPAGE = "https://github.com/makedumpfile/makedumpfile"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+LICENSE = "GPL-2.0-only"
+
+SRCBRANCH ?= "master"
+SRCREV = "3bc3b3e3be33a9aa040e654f055912063e576c1b"
+
+DEPENDS = "bzip2 zlib elfutils xz"
+RDEPENDS:${PN}-tools = "perl ${PN}"
+
+# mips/rv32 would not compile.
+COMPATIBLE_HOST:mipsarcho32 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
+
+PACKAGES =+ "${PN}-tools"
+FILES:${PN}-tools = "${bindir}/*.pl"
+
+SRC_URI = "\
+ git://github.com/makedumpfile/makedumpfile;branch=${SRCBRANCH};protocol=https \
+ file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \
+"
+
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
+
+SECTION = "base"
+
+# If we do not specify TARGET, makedumpfile will build for the host but use the
+# target gcc.
+#
+
+MAKEDUMPFILE_TARGET ?= "${TARGET_ARCH}"
+MAKEDUMPFILE_TARGET:powerpc = "ppc"
+
+EXTRA_OEMAKE = "\
+ LINKTYPE=static \
+ TARGET=${MAKEDUMPFILE_TARGET} \
+ ${PACKAGECONFIG_CONFARGS} \
+"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[lzo] = "USELZO=on,USELZO=off,lzo"
+PACKAGECONFIG[snappy] = "USESNAPPY=on,USESNAPPY=off,snappy"
+PACKAGECONFIG[zstd] = "USEZSTD=on,USEZSTD=off,zstd"
+
+do_install () {
+ mkdir -p ${D}/usr/bin
+ install -m 755 ${S}/makedumpfile ${D}/usr/bin
+ install -m 755 ${S}/makedumpfile-R.pl ${D}/usr/bin
+
+ mkdir -p ${D}/etc/
+ install -m 644 ${S}/makedumpfile.conf ${D}/etc/makedumpfile.conf.sample
+}
diff --git a/meta-oe/recipes-kernel/minicoredumper/files/0001-corestripper-Fix-uninitialized-warning.patch b/meta-oe/recipes-kernel/minicoredumper/files/0001-corestripper-Fix-uninitialized-warning.patch
new file mode 100644
index 0000000000..8b90d33e1b
--- /dev/null
+++ b/meta-oe/recipes-kernel/minicoredumper/files/0001-corestripper-Fix-uninitialized-warning.patch
@@ -0,0 +1,53 @@
+From bb44bb643cd2a2f937331b4d1a76b03556b718a2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 23 Jan 2024 11:36:41 -0800
+Subject: [PATCH] corestripper: Fix uninitialized warning
+
+Clang finds more open paths where ret can be uninitialized
+
+Fixes
+| ../../../git/src/minicoredumper/corestripper.c:2768:13: error: variable 'ret' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
+| 2768 | } else if (di->core_fd >= 0) {
+| | ^~~~~~~~~~~~~~~~
+| ../../../git/src/minicoredumper/corestripper.c:2773:9: note: uninitialized use occurs here
+| 2773 | return ret;
+| | ^~~
+| ../../../git/src/minicoredumper/corestripper.c:2768:9: note: remove the 'if' if its condition is always true
+| 2768 | } else if (di->core_fd >= 0) {
+| | ^~~~~~~~~~~~~~~~~~~~~
+| ../../../git/src/minicoredumper/corestripper.c:2763:9: note: initialize the variable 'ret' to silence this warning
+| 2763 | int ret;
+| | ^
+| | = 0
+
+Upstream-Status: Submitted [https://github.com/diamon/minicoredumper/pull/15]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/minicoredumper/corestripper.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/minicoredumper/corestripper.c b/src/minicoredumper/corestripper.c
+index 3eb9089..e9e3936 100644
+--- a/src/minicoredumper/corestripper.c
++++ b/src/minicoredumper/corestripper.c
+@@ -2707,7 +2707,7 @@ static int dump_data_content_file(struct dump_info *di,
+ char *tmp_path;
+ FILE *file;
+ int len;
+- int ret;
++ int ret = -1;
+
+ len = strlen(di->dst_dir) + strlen("/dumps/") + 32 +
+ strlen(dd->ident) + 1;
+@@ -2760,7 +2760,7 @@ out:
+ static int dump_data_content(struct dump_info *di, struct mcd_dump_data *dd,
+ const char *symname)
+ {
+- int ret;
++ int ret = -1;
+
+ if (dd->ident) {
+ /* dump to external file */
+--
+2.43.0
+
diff --git a/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch b/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch
deleted file mode 100644
index 8d5b8b6cbb..0000000000
--- a/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From 7a8c6a06c86e133e4346b1dc66483bd8d0d3c716 Mon Sep 17 00:00:00 2001
-From: John Ogness <john.ogness@linutronix.de>
-Date: Tue, 24 Aug 2021 21:10:43 +0200
-Subject: [PATCH] minicoredumper: retry elf parsing as long as needed
-
-As was reported in github issue #2 ("maximum number of tries
-insufficient, in rare cases, for elf parse"), the number of retries
-for parsing a process may be insufficient. Rather than setting an
-upper limit on the maximum number of retries, track the number of
-headers seen. As long as the number of seen headers is greater than
-the previous try, try again.
-
-In order to avoid introducing any new issues, preserve the behavior
-of retrying at least 10 times, even if no new headers are seen.
-
-Reported-by: github.com/ssajal-wr
-Signed-off-by: John Ogness <john.ogness@linutronix.de>
-
-Upstream-Status: Backport [7a8c6a06c86e133e4346b1dc66483bd8d0d3c716]
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- src/minicoredumper/corestripper.c | 30 +++++++++++++++++++++++-------
- 1 file changed, 23 insertions(+), 7 deletions(-)
-
-diff --git a/src/minicoredumper/corestripper.c b/src/minicoredumper/corestripper.c
-index d96d1df..c96b350 100644
---- a/src/minicoredumper/corestripper.c
-+++ b/src/minicoredumper/corestripper.c
-@@ -761,7 +761,7 @@ static int init_log(struct dump_info *di)
- typedef int elf_parse_cb(struct dump_info *di, Elf *elf, GElf_Phdr *phdr);
-
- static int do_elf_ph_parse(struct dump_info *di, GElf_Phdr *type,
-- elf_parse_cb *callback)
-+ elf_parse_cb *callback, size_t *phnum_found)
- {
- GElf_Ehdr ehdr_mem;
- GElf_Ehdr *ehdr;
-@@ -770,6 +770,9 @@ static int do_elf_ph_parse(struct dump_info *di, GElf_Phdr *type,
- size_t phnum;
- size_t cnt;
-
-+ if (phnum_found)
-+ *phnum_found = 0;
-+
- /* start from beginning of core */
- if (lseek64(di->elf_fd, 0, SEEK_SET) == -1) {
- info("lseek failed: %s", strerror(errno));
-@@ -809,6 +812,9 @@ static int do_elf_ph_parse(struct dump_info *di, GElf_Phdr *type,
- goto out;
- }
-
-+ if (phnum_found)
-+ *phnum_found = phnum;
-+
- for (cnt = 0; cnt < phnum; cnt++) {
- GElf_Phdr phdr_mem;
- GElf_Phdr *phdr;
-@@ -891,7 +897,7 @@ static int vma_cb(struct dump_info *di, Elf *elf, GElf_Phdr *phdr)
- /*
- * Tries to parse the found ELF headers and reads all vmas from it.
- */
--static int parse_vma_info(struct dump_info *di)
-+static int parse_vma_info(struct dump_info *di, size_t *phnum_found)
- {
- unsigned long min_off = ULONG_MAX;
- unsigned long max_len = 0;
-@@ -911,7 +917,7 @@ static int parse_vma_info(struct dump_info *di)
- memset(&type, 0, sizeof(type));
- type.p_type = PT_LOAD;
- type.p_flags = PF_R;
-- if (do_elf_ph_parse(di, &type, vma_cb) != 0)
-+ if (do_elf_ph_parse(di, &type, vma_cb, phnum_found) != 0)
- return -1;
-
- for (v = di->vma; v; v = v->next) {
-@@ -1614,8 +1620,10 @@ int add_core_data(struct dump_info *di, off64_t dest_offset, size_t len,
- */
- static int init_src_core(struct dump_info *di, int src)
- {
-+ size_t last_phnum = 0;
- int tries = 0;
- int ret = -1;
-+ size_t phnum;
- size_t len;
- char *buf;
- long pos;
-@@ -1642,7 +1650,7 @@ again:
- goto out;
-
- /* try to elf-parse the core to read vma info */
-- ret = parse_vma_info(di);
-+ ret = parse_vma_info(di, &phnum);
-
- /* restore our position */
- if (lseek64(di->elf_fd, pos, SEEK_SET) == -1)
-@@ -1653,9 +1661,17 @@ again:
-
- tries++;
-
-- /* maybe try again */
-- if (tries < 10)
-+ if (phnum > last_phnum) {
-+ /* new headers found, keep trying */
-+ last_phnum = phnum;
- goto again;
-+ } else if (tries < 10) {
-+ /*
-+ * even if no new headers are found,
-+ * retry at least 10 times
-+ */
-+ goto again;
-+ }
-
- goto out;
- }
-@@ -2106,7 +2122,7 @@ static int dump_stacks(struct dump_info *di)
- /* find and set the first task */
- memset(&type, 0, sizeof(type));
- type.p_type = PT_NOTE;
-- do_elf_ph_parse(di, &type, note_cb);
-+ do_elf_ph_parse(di, &type, note_cb, NULL);
- }
-
- if (di->first_pid)
---
-2.25.1
-
diff --git a/meta-oe/recipes-kernel/minicoredumper/files/0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch b/meta-oe/recipes-kernel/minicoredumper/files/0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch
deleted file mode 100644
index 455e6f3181..0000000000
--- a/meta-oe/recipes-kernel/minicoredumper/files/0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 5895caba6573e84f73f159d9e84cd1aa7e969f18 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 9 May 2021 14:37:00 -0700
-Subject: [PATCH] replace pthread_mutexattr_setrobust_np with
- pthread_mutexattr_setrobust
-
-This is now part of standard POSIX function [1]
-
-Upstream-Status: Submitted [https://github.com/diamon/minicoredumper/pull/3]
-
-[1] https://man7.org/linux/man-pages/man3/pthread_mutexattr_setrobust_np.3.html
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/minicoredumper_regd/daemon.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/minicoredumper_regd/daemon.c b/src/minicoredumper_regd/daemon.c
-index 115ec92..b9ad1ea 100644
---- a/src/minicoredumper_regd/daemon.c
-+++ b/src/minicoredumper_regd/daemon.c
-@@ -224,7 +224,7 @@ static int setup_shm(void)
-
- pthread_mutexattr_init(&attr);
- pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT);
-- pthread_mutexattr_setrobust_np(&attr, PTHREAD_MUTEX_ROBUST_NP);
-+ pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST);
- pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);
- pthread_mutex_init(&sh->m, &attr);
-
---
-2.31.1
-
diff --git a/meta-oe/recipes-kernel/minicoredumper/files/run-ptest b/meta-oe/recipes-kernel/minicoredumper/files/run-ptest
new file mode 100644
index 0000000000..6746132ce6
--- /dev/null
+++ b/meta-oe/recipes-kernel/minicoredumper/files/run-ptest
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+echo minicoredumper_demo
+echo expecting Segmentation fault with core dump ...
+
+minicoredumper_demo 6 & sleep 3 && minicoredumper_demo
+
+if ls /var/crash/ | grep minicoredumper; then
+ echo "PASS: minicoredumper"
+else
+ echo "FAIL: minicoredumper"
+fi
diff --git a/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb b/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb
deleted file mode 100644
index 0b934ee2d8..0000000000
--- a/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SUMMARY = "minicoredumper provides an alternate core dump facility for Linux \
-to allow minimal and customized crash dumps"
-LICENSE = " LGPL-2.1-only & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=71827c617ec7b45a0dd23658347cc1e9 \
- file://COPYING.BSD;md5=b915ac80d5236d6aa659cb986daf00e5 \
- file://COPYING.LGPLv2.1;md5=321bf41f280cf805086dd5a720b37785 \
- "
-DEPENDS = "elfutils dbus dbus-glib-native glib-2.0 dbus-glib util-linux json-c"
-
-inherit autotools pkgconfig systemd update-rc.d
-
-SRCREV = "16a0d44f1725eaa93096eaa0e086f42ef4c2712c"
-
-PR .= "+git${SRCPV}"
-
-SRC_URI = "git://github.com/diamon/minicoredumper;protocol=https;branch=master \
- file://0001-replace-pthread_mutexattr_setrobust_np-with-pthread_.patch \
- file://minicoredumper.service \
- file://minicoredumper.init \
- file://0001-minicoredumper-retry-elf-parsing-as-long-as-needed.patch \
- "
-
-S = "${WORKDIR}/git"
-
-SYSTEMD_SERVICE:${PN} = "minicoredumper.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME:${PN} = "minicoredumper"
-INITSCRIPT_PARAMS:${PN} = "defaults 89"
-
-do_install:append() {
- rmdir ${D}${localstatedir}/run
- install -d ${D}/${sysconfdir}/minicoredumper
- cp -rf ${S}/etc/* ${D}/${sysconfdir}/
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/minicoredumper.service ${D}${systemd_system_unitdir}
- install -d ${D}${sysconfdir}/init.d
- install -m 0644 ${WORKDIR}/minicoredumper.init ${D}${sysconfdir}/init.d/minicoredumper
-
- # correct path of minicoredumper
- sed -i -e s:/usr/bin/minicoredumper:${sbindir}/minicoredumper:g ${D}${sysconfdir}/init.d/minicoredumper
- sed -i -e s:/usr/bin/minicoredumper:${sbindir}/minicoredumper:g ${D}${systemd_system_unitdir}/minicoredumper.service
-}
-
-# http://errors.yoctoproject.org/Errors/Details/186966/
-COMPATIBLE_HOST:libc-musl = 'null'
diff --git a/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.7.bb b/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.7.bb
new file mode 100644
index 0000000000..726aa60ce7
--- /dev/null
+++ b/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.7.bb
@@ -0,0 +1,49 @@
+SUMMARY = "minicoredumper provides an alternate core dump facility for Linux \
+to allow minimal and customized crash dumps"
+LICENSE = " LGPL-2.1-only & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=71827c617ec7b45a0dd23658347cc1e9 \
+ file://COPYING.BSD;md5=b915ac80d5236d6aa659cb986daf00e5 \
+ file://COPYING.LGPLv2.1;md5=321bf41f280cf805086dd5a720b37785 \
+ "
+DEPENDS = "elfutils dbus dbus-glib-native glib-2.0 dbus-glib util-linux json-c"
+
+inherit autotools pkgconfig ptest systemd update-rc.d
+
+SRCREV = "ca6e7ad62b4cf984de84aa081024c4e45632cecb"
+
+SRC_URI = "git://github.com/diamon/minicoredumper;protocol=https;branch=master \
+ file://minicoredumper.service \
+ file://minicoredumper.init \
+ file://run-ptest \
+ file://0001-corestripper-Fix-uninitialized-warning.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+SYSTEMD_SERVICE:${PN} = "minicoredumper.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "minicoredumper"
+INITSCRIPT_PARAMS:${PN} = "defaults 89"
+
+EXTRA_OECONF:append = " \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', '--with-minicoredumper_demo', '--without-libminicoredumper', d)} \
+"
+do_install:append() {
+ rmdir ${D}${localstatedir}/run
+ install -d ${D}/${sysconfdir}/minicoredumper
+ cp -rf ${S}/etc/* ${D}/${sysconfdir}/
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/minicoredumper.service ${D}${systemd_system_unitdir}
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/minicoredumper.init ${D}${sysconfdir}/init.d/minicoredumper
+
+ # correct path of minicoredumper
+ sed -i -e s:/usr/bin/minicoredumper:${sbindir}/minicoredumper:g ${D}${sysconfdir}/init.d/minicoredumper
+ sed -i -e s:/usr/bin/minicoredumper:${sbindir}/minicoredumper:g ${D}${systemd_system_unitdir}/minicoredumper.service
+}
+
+# http://errors.yoctoproject.org/Errors/Details/186966/
+COMPATIBLE_HOST:libc-musl = 'null'
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0001-Replace-std-bind2nd-with-generic-lambda.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0001-Replace-std-bind2nd-with-generic-lambda.patch
new file mode 100644
index 0000000000..930b90e289
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile/0001-Replace-std-bind2nd-with-generic-lambda.patch
@@ -0,0 +1,34 @@
+From 5d879cb4f23c613e16b3f479ab09bbb5ff340201 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 6 Feb 2023 17:02:41 -0800
+Subject: [PATCH] Replace std::bind2nd with generic lambda
+
+std::bind2nd is gone in c++17, therefore stop using it and replace it
+with generic lambda from c++14 onwards
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libutil++/growable_vector.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libutil++/growable_vector.h b/libutil++/growable_vector.h
+index 350246a..9846e1e 100644
+--- a/libutil++/growable_vector.h
++++ b/libutil++/growable_vector.h
+@@ -93,9 +93,9 @@ public:
+
+ /// return true if all elements have the default constructed value
+ bool zero() const {
+- return std::find_if(container.begin(), container.end(),
+- std::bind2nd(std::not_equal_to<T>(), T()))
+- == container.end();
++ return std::find_if(begin(container), end(container),
++ [&](auto const& elem) {return elem != T();})
++ == end(container);
+ }
+
+ private:
+--
+2.39.1
+
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb b/meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb
index e6eec0ab05..092d22746a 100644
--- a/meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb
+++ b/meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb
@@ -31,6 +31,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
file://0009-Prevent-running-check-tests-on-host-if-cross-compili.patch \
file://0010-oprofile-Determine-the-root-home-directory-dynamical.patch \
file://0001-configure-Include-unistd.h-for-getpid-API.patch \
+ file://0001-Replace-std-bind2nd-with-generic-lambda.patch \
"
SRC_URI[sha256sum] = "7ba06f99d7c188389d20d1d5e53ee690c7733f87aa9af62bd664fa0ca235a412"
@@ -57,16 +58,18 @@ do_install_ptest() {
find ${tooltest} -perm /u=x -type f| cpio -pvdu ${D}${PTEST_PATH}
done
- # needed by some libop tests
- cp -r events ${D}${PTEST_PATH}
-
+ install -d ${D}${PTEST_PATH}/../${BP}/events ${D}${PTEST_PATH}/../${BP}/libutil++/tests
# needed by libregex regex_test
cp libregex/stl.pat ${D}${PTEST_PATH}/libregex
cp libregex/tests/mangled-name ${D}${PTEST_PATH}/libregex/tests
# needed by litutil++ file_manip_tests
cp ${S}/libutil++/tests/file_manip_tests.cpp \
+ libutil++/tests/file_manip_tests.o ${D}${PTEST_PATH}/../${BP}/libutil++/tests
+ cp ${S}/libutil++/tests/file_manip_tests.cpp \
libutil++/tests/file_manip_tests.o ${D}${PTEST_PATH}/libutil++/tests
+ # needed by some libop tests
+ cp -R --no-dereference --preserve=mode,links -v ${S}/events ${D}${PTEST_PATH}/../${BP}
}
RDEPENDS:${PN} = "binutils-symlinks"
@@ -74,3 +77,4 @@ RDEPENDS:${PN} = "binutils-symlinks"
FILES:${PN} = "${bindir} ${libdir}/${BPN}/lib*${SOLIBS} ${datadir}/${BPN}"
FILES:${PN}-dev += "${libdir}/${BPN}/lib*${SOLIBSDEV} ${libdir}/${BPN}/lib*.la"
FILES:${PN}-staticdev += "${libdir}/${BPN}/lib*.a"
+FILES:${PN}-ptest += "${libdir}/${BPN}/${BP}"
diff --git a/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-parse-unfished-cpu-exec-line.patch b/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-parse-unfished-cpu-exec-line.patch
index 33557275fb..fc5991d464 100644
--- a/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-parse-unfished-cpu-exec-line.patch
+++ b/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-parse-unfished-cpu-exec-line.patch
@@ -11,7 +11,7 @@ lock_torture_wr-96 was split to different line due to limited buffer
size(1k) set in kernel, check this case and re-parse the unfinished
line.
-Upstream-Status: [Submitted: https://github.com/intel/pm-graph/pull/20]
+Upstream-Status: Submitted [https://github.com/intel/pm-graph/pull/20]
Signed-off-by: Liwei Song <liwei.song@windriver.com>
---
diff --git a/meta-oe/recipes-kernel/spidev-test/spidev-test.bb b/meta-oe/recipes-kernel/spidev-test/spidev-test.bb
index 81e8327032..2e8c5cbb8d 100644
--- a/meta-oe/recipes-kernel/spidev-test/spidev-test.bb
+++ b/meta-oe/recipes-kernel/spidev-test/spidev-test.bb
@@ -23,7 +23,7 @@ do_install() {
PACKAGE_ARCH = "${MACHINE_ARCH}"
python do_package:prepend() {
- d.setVar('PKGV', d.getVar("KERNEL_VERSION", True).split("-")[0])
+ d.setVar('PKGV', d.getVar("KERNEL_VERSION").split("-")[0])
}
B = "${WORKDIR}/${BPN}-${PV}"
diff --git a/meta-oe/recipes-kernel/trace-cmd/files/0001-Do-not-emit-useless-rpath.patch b/meta-oe/recipes-kernel/trace-cmd/files/0001-Do-not-emit-useless-rpath.patch
new file mode 100644
index 0000000000..13a86e65d1
--- /dev/null
+++ b/meta-oe/recipes-kernel/trace-cmd/files/0001-Do-not-emit-useless-rpath.patch
@@ -0,0 +1,34 @@
+From 90fbc3423b5ccdbd54b5851c32b9f92c6658d634 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 6 Jan 2023 17:30:24 -0800
+Subject: [PATCH] Do not emit useless rpath
+
+rpath is pointing to standard libdir which is un-used and yocto build QA
+flag it, there is no need to set rpaths when building in this
+environment
+
+Fixes
+do_package_qa: QA Issue: trace-cmd: /usr/bin/trace-cmd contains probably-redundant RPATH /usr/lib [useless-rpaths]
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ scripts/utils.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/utils.mk b/scripts/utils.mk
+index 3fc2d74f..309a8599 100644
+--- a/scripts/utils.mk
++++ b/scripts/utils.mk
+@@ -64,7 +64,7 @@ do_compile = \
+
+ do_app_build = \
+ ($(print_app_build) \
+- $(CC) $^ -rdynamic -Wl,-rpath=$(libdir) -o $@ $(LDFLAGS) $(CONFIG_LIBS) $(LIBS))
++ $(CC) $^ -rdynamic -o $@ $(LDFLAGS) $(CONFIG_LIBS) $(LIBS))
+
+ do_build_static_lib = \
+ ($(print_static_lib_build) \
+--
+2.39.0
+
diff --git a/meta-oe/recipes-kernel/trace-cmd/files/0001-Replace-LFS64-interfaces-off64_t-and-lseek64.patch b/meta-oe/recipes-kernel/trace-cmd/files/0001-Replace-LFS64-interfaces-off64_t-and-lseek64.patch
new file mode 100644
index 0000000000..1e5415ef6a
--- /dev/null
+++ b/meta-oe/recipes-kernel/trace-cmd/files/0001-Replace-LFS64-interfaces-off64_t-and-lseek64.patch
@@ -0,0 +1,1136 @@
+From 9c3213a3b64e049c1aa065300b01ee751699b01f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 6 Jan 2023 16:53:06 -0800
+Subject: [PATCH 1/2] Replace LFS64 interfaces off64_t and lseek64
+
+Musl does not define these interfaces unless -D_LARGEFILE64_SOURCE is
+defined and that too it is transitional until apps switch to using 64-bit
+off_t. We pass -D_FILE_OFFSET_BITS=64 in makefiles already therefore
+original lseek and off_t are already 64bit
+
+This fixes build with latest musl which has dropped LFS64 interfaces [1]
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=246f1c811448f37a44b41cd8df8d0ef9736d95f4i
+
+Upstream-Status: Submitted [https://lore.kernel.org/linux-trace-devel/20230109225315.1284538-1-raj.khem@gmail.com/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../include/private/trace-cmd-private.h | 12 +-
+ lib/trace-cmd/include/trace-cmd-local.h | 4 +-
+ lib/trace-cmd/trace-compress.c | 30 ++---
+ lib/trace-cmd/trace-input.c | 110 +++++++++---------
+ lib/trace-cmd/trace-msg.c | 20 ++--
+ lib/trace-cmd/trace-output.c | 64 +++++-----
+ lib/trace-cmd/trace-recorder.c | 8 +-
+ tracecmd/trace-dump.c | 34 +++---
+ tracecmd/trace-read.c | 2 +-
+ 9 files changed, 142 insertions(+), 142 deletions(-)
+
+diff --git a/lib/trace-cmd/include/private/trace-cmd-private.h b/lib/trace-cmd/include/private/trace-cmd-private.h
+index 05c084ce..f2cf8dc8 100644
+--- a/lib/trace-cmd/include/private/trace-cmd-private.h
++++ b/lib/trace-cmd/include/private/trace-cmd-private.h
+@@ -106,7 +106,7 @@ const char *tracecmd_get_trace_clock(struct tracecmd_input *handle);
+ const char *tracecmd_get_cpustats(struct tracecmd_input *handle);
+ const char *tracecmd_get_uname(struct tracecmd_input *handle);
+ const char *tracecmd_get_version(struct tracecmd_input *handle);
+-off64_t tracecmd_get_cpu_file_size(struct tracecmd_input *handle, int cpu);
++off_t tracecmd_get_cpu_file_size(struct tracecmd_input *handle, int cpu);
+
+ static inline int tracecmd_host_bigendian(void)
+ {
+@@ -336,7 +336,7 @@ int tracecmd_write_buffer_info(struct tracecmd_output *handle);
+
+ int tracecmd_write_cpus(struct tracecmd_output *handle, int cpus);
+ int tracecmd_write_cmdlines(struct tracecmd_output *handle);
+-int tracecmd_prepare_options(struct tracecmd_output *handle, off64_t offset, int whence);
++int tracecmd_prepare_options(struct tracecmd_output *handle, off_t offset, int whence);
+ int tracecmd_write_options(struct tracecmd_output *handle);
+ int tracecmd_write_meta_strings(struct tracecmd_output *handle);
+ int tracecmd_append_options(struct tracecmd_output *handle);
+@@ -394,7 +394,7 @@ struct tracecmd_msg_handle {
+ short cpu_count;
+ short version; /* Current protocol version */
+ unsigned long flags;
+- off64_t cache_start_offset;
++ off_t cache_start_offset;
+ bool done;
+ bool cache;
+ int cfd;
+@@ -543,8 +543,8 @@ int tracecmd_write_guest_time_shift(struct tracecmd_output *handle,
+ struct tracecmd_compress_chunk {
+ unsigned int size;
+ unsigned int zsize;
+- off64_t zoffset;
+- off64_t offset;
++ off_t zoffset;
++ off_t offset;
+ };
+ struct tracecmd_compression;
+ struct tracecmd_compression_proto {
+@@ -570,7 +570,7 @@ int tracecmd_compress_buffer_read(struct tracecmd_compression *handle, char *dst
+ int tracecmd_compress_pread(struct tracecmd_compression *handle, char *dst, int len, off_t offset);
+ int tracecmd_compress_buffer_write(struct tracecmd_compression *handle,
+ const void *data, unsigned long long size);
+-off64_t tracecmd_compress_lseek(struct tracecmd_compression *handle, off64_t offset, int whence);
++off_t tracecmd_compress_lseek(struct tracecmd_compression *handle, off_t offset, int whence);
+ int tracecmd_compress_proto_get_name(struct tracecmd_compression *compress,
+ const char **name, const char **version);
+ bool tracecmd_compress_is_supported(const char *name, const char *version);
+diff --git a/lib/trace-cmd/include/trace-cmd-local.h b/lib/trace-cmd/include/trace-cmd-local.h
+index db0b2c21..ebd6f152 100644
+--- a/lib/trace-cmd/include/trace-cmd-local.h
++++ b/lib/trace-cmd/include/trace-cmd-local.h
+@@ -94,13 +94,13 @@ out_add_buffer_option(struct tracecmd_output *handle, const char *name,
+ struct cpu_data_source {
+ int fd;
+ int size;
+- off64_t offset;
++ off_t offset;
+ };
+
+ int out_write_cpu_data(struct tracecmd_output *handle, int cpus,
+ struct cpu_data_source *data, const char *buff_name);
+ int out_write_emty_cpu_data(struct tracecmd_output *handle, int cpus);
+-off64_t msg_lseek(struct tracecmd_msg_handle *msg_handle, off64_t offset, int whence);
++off_t msg_lseek(struct tracecmd_msg_handle *msg_handle, off_t offset, int whence);
+ unsigned long long get_last_option_offset(struct tracecmd_input *handle);
+ unsigned int get_meta_strings_size(struct tracecmd_input *handle);
+ int trace_append_options(struct tracecmd_output *handle, void *buf, size_t len);
+diff --git a/lib/trace-cmd/trace-compress.c b/lib/trace-cmd/trace-compress.c
+index 461de8d0..1b852f18 100644
+--- a/lib/trace-cmd/trace-compress.c
++++ b/lib/trace-cmd/trace-compress.c
+@@ -117,12 +117,12 @@ static inline int buffer_extend(struct tracecmd_compression *handle, unsigned in
+ *
+ * Returns the new file pointer on success, or -1 in case of an error.
+ */
+-off64_t tracecmd_compress_lseek(struct tracecmd_compression *handle, off64_t offset, int whence)
++off_t tracecmd_compress_lseek(struct tracecmd_compression *handle, off_t offset, int whence)
+ {
+ unsigned long p;
+
+ if (!handle || !handle->buffer)
+- return (off64_t)-1;
++ return (off_t)-1;
+
+ switch (whence) {
+ case SEEK_CUR:
+@@ -135,11 +135,11 @@ off64_t tracecmd_compress_lseek(struct tracecmd_compression *handle, off64_t off
+ p = offset;
+ break;
+ default:
+- return (off64_t)-1;
++ return (off_t)-1;
+ }
+
+ if (buffer_extend(handle, p))
+- return (off64_t)-1;
++ return (off_t)-1;
+
+ handle->pointer = p;
+
+@@ -678,7 +678,7 @@ int tracecmd_compress_copy_from(struct tracecmd_compression *handle, int fd, int
+ unsigned int size;
+ unsigned int all;
+ unsigned int r;
+- off64_t offset;
++ off_t offset;
+ char *buf_from;
+ char *buf_to;
+ int endian4;
+@@ -700,7 +700,7 @@ int tracecmd_compress_copy_from(struct tracecmd_compression *handle, int fd, int
+ return -1;
+
+ /* save the initial offset and write 0 as initial chunk count */
+- offset = lseek64(handle->fd, 0, SEEK_CUR);
++ offset = lseek(handle->fd, 0, SEEK_CUR);
+ write_fd(handle->fd, &chunks, 4);
+
+ do {
+@@ -760,13 +760,13 @@ int tracecmd_compress_copy_from(struct tracecmd_compression *handle, int fd, int
+ if (all)
+ return -1;
+
+- if (lseek64(handle->fd, offset, SEEK_SET) == (off_t)-1)
++ if (lseek(handle->fd, offset, SEEK_SET) == (off_t)-1)
+ return -1;
+
+ endian4 = tep_read_number(handle->tep, &chunks, 4);
+ /* write chunks count*/
+ write_fd(handle->fd, &chunks, 4);
+- if (lseek64(handle->fd, 0, SEEK_END) == (off_t)-1)
++ if (lseek(handle->fd, 0, SEEK_END) == (off_t)-1)
+ return -1;
+
+ if (read_size)
+@@ -796,7 +796,7 @@ int tracecmd_load_chunks_info(struct tracecmd_compression *handle,
+ struct tracecmd_compress_chunk *chunks = NULL;
+ unsigned long long size = 0;
+ unsigned int count = 0;
+- off64_t offset;
++ off_t offset;
+ int ret = -1;
+ char buf[4];
+ int i;
+@@ -804,8 +804,8 @@ int tracecmd_load_chunks_info(struct tracecmd_compression *handle,
+ if (!handle)
+ return -1;
+
+- offset = lseek64(handle->fd, 0, SEEK_CUR);
+- if (offset == (off64_t)-1)
++ offset = lseek(handle->fd, 0, SEEK_CUR);
++ if (offset == (off_t)-1)
+ return -1;
+
+ if (read(handle->fd, buf, 4) != 4)
+@@ -822,7 +822,7 @@ int tracecmd_load_chunks_info(struct tracecmd_compression *handle,
+ goto out;
+
+ for (i = 0; i < count; i++) {
+- chunks[i].zoffset = lseek64(handle->fd, 0, SEEK_CUR);
++ chunks[i].zoffset = lseek(handle->fd, 0, SEEK_CUR);
+ if (chunks[i].zoffset == (off_t)-1)
+ goto out;
+ if (read(handle->fd, buf, 4) != 4)
+@@ -833,13 +833,13 @@ int tracecmd_load_chunks_info(struct tracecmd_compression *handle,
+ goto out;
+ chunks[i].size = tep_read_number(handle->tep, buf, 4);
+ size += chunks[i].size;
+- if (lseek64(handle->fd, chunks[i].zsize, SEEK_CUR) == (off64_t)-1)
++ if (lseek(handle->fd, chunks[i].zsize, SEEK_CUR) == (off_t)-1)
+ goto out;
+ }
+
+ ret = count;
+ out:
+- if (lseek64(handle->fd, offset, SEEK_SET) == (off64_t)-1)
++ if (lseek(handle->fd, offset, SEEK_SET) == (off_t)-1)
+ ret = -1;
+
+ if (ret > 0 && chunks_info)
+@@ -872,7 +872,7 @@ int tracecmd_uncompress_chunk(struct tracecmd_compression *handle,
+ if (!handle || !handle->proto || !handle->proto->uncompress_block || !chunk || !data)
+ return -1;
+
+- if (lseek64(handle->fd, chunk->zoffset + 8, SEEK_SET) == (off_t)-1)
++ if (lseek(handle->fd, chunk->zoffset + 8, SEEK_SET) == (off_t)-1)
+ return -1;
+
+ bytes_in = malloc(chunk->zsize);
+diff --git a/lib/trace-cmd/trace-input.c b/lib/trace-cmd/trace-input.c
+index 594eb74a..9b128403 100644
+--- a/lib/trace-cmd/trace-input.c
++++ b/lib/trace-cmd/trace-input.c
+@@ -37,8 +37,8 @@ static int force_read = 0;
+
+ struct page_map {
+ struct list_head list;
+- off64_t offset;
+- off64_t size;
++ off_t offset;
++ off_t size;
+ void *map;
+ int ref_count;
+ };
+@@ -54,7 +54,7 @@ struct follow_event {
+
+ struct page {
+ struct list_head list;
+- off64_t offset;
++ off_t offset;
+ struct tracecmd_input *handle;
+ struct page_map *page_map;
+ void *map;
+@@ -541,7 +541,7 @@ static struct file_section *section_open(struct tracecmd_input *handle, int id)
+ if (!sec)
+ return NULL;
+
+- if (lseek64(handle->fd, sec->data_offset, SEEK_SET) == (off64_t)-1)
++ if (lseek(handle->fd, sec->data_offset, SEEK_SET) == (off_t)-1)
+ return NULL;
+
+ if ((sec->flags & TRACECMD_SEC_FL_COMPRESS) && in_uncompress_block(handle))
+@@ -593,7 +593,7 @@ static int read_header_files(struct tracecmd_input *handle)
+
+ if (!HAS_SECTIONS(handle))
+ section_add_or_update(handle, TRACECMD_OPTION_HEADER_INFO, 0, 0,
+- lseek64(handle->fd, 0, SEEK_CUR));
++ lseek(handle->fd, 0, SEEK_CUR));
+
+ if (do_read_check(handle, buf, 12))
+ return -1;
+@@ -800,7 +800,7 @@ static int read_ftrace_files(struct tracecmd_input *handle, const char *regex)
+
+ if (!HAS_SECTIONS(handle))
+ section_add_or_update(handle, TRACECMD_OPTION_FTRACE_EVENTS, 0, 0,
+- lseek64(handle->fd, 0, SEEK_CUR));
++ lseek(handle->fd, 0, SEEK_CUR));
+
+ if (regex) {
+ sreg = &spreg;
+@@ -875,7 +875,7 @@ static int read_event_files(struct tracecmd_input *handle, const char *regex)
+
+ if (!HAS_SECTIONS(handle))
+ section_add_or_update(handle, TRACECMD_OPTION_EVENT_FORMATS, 0, 0,
+- lseek64(handle->fd, 0, SEEK_CUR));
++ lseek(handle->fd, 0, SEEK_CUR));
+
+ if (regex) {
+ sreg = &spreg;
+@@ -962,7 +962,7 @@ static int read_proc_kallsyms(struct tracecmd_input *handle)
+ return 0;
+ if (!HAS_SECTIONS(handle))
+ section_add_or_update(handle, TRACECMD_OPTION_KALLSYMS, 0, 0,
+- lseek64(handle->fd, 0, SEEK_CUR));
++ lseek(handle->fd, 0, SEEK_CUR));
+
+ if (read4(handle, &size) < 0)
+ return -1;
+@@ -999,7 +999,7 @@ static int read_ftrace_printk(struct tracecmd_input *handle)
+
+ if (!HAS_SECTIONS(handle))
+ section_add_or_update(handle, TRACECMD_OPTION_PRINTK, 0, 0,
+- lseek64(handle->fd, 0, SEEK_CUR));
++ lseek(handle->fd, 0, SEEK_CUR));
+
+ if (read4(handle, &size) < 0)
+ return -1;
+@@ -1173,7 +1173,7 @@ static int handle_section(struct tracecmd_input *handle, struct file_section *se
+ unsigned long long size;
+ int ret;
+
+- if (lseek64(handle->fd, section->section_offset, SEEK_SET) == (off_t)-1)
++ if (lseek(handle->fd, section->section_offset, SEEK_SET) == (off_t)-1)
+ return -1;
+ if (read_section_header(handle, &id, &flags, &size, NULL))
+ return -1;
+@@ -1181,7 +1181,7 @@ static int handle_section(struct tracecmd_input *handle, struct file_section *se
+ if (id != section->id)
+ return -1;
+
+- section->data_offset = lseek64(handle->fd, 0, SEEK_CUR);
++ section->data_offset = lseek(handle->fd, 0, SEEK_CUR);
+ if ((section->flags & TRACECMD_SEC_FL_COMPRESS) && in_uncompress_block(handle))
+ return -1;
+
+@@ -1225,7 +1225,7 @@ static int read_headers(struct tracecmd_input *handle, const char *regex)
+ if (!handle->options_start)
+ return -1;
+
+- if (lseek64(handle->fd, handle->options_start, SEEK_SET) == (off64_t)-1) {
++ if (lseek(handle->fd, handle->options_start, SEEK_SET) == (off_t)-1) {
+ tracecmd_warning("Filed to goto options offset %lld", handle->options_start);
+ return -1;
+ }
+@@ -1269,11 +1269,11 @@ static unsigned long long calc_page_offset(struct tracecmd_input *handle,
+ return offset & ~(handle->page_size - 1);
+ }
+
+-static int read_page(struct tracecmd_input *handle, off64_t offset,
++static int read_page(struct tracecmd_input *handle, off_t offset,
+ int cpu, void *map)
+ {
+- off64_t save_seek;
+- off64_t ret;
++ off_t save_seek;
++ off_t ret;
+
+ if (handle->use_pipe) {
+ ret = read(handle->cpu_data[cpu].pipe_fd, map, handle->page_size);
+@@ -1291,9 +1291,9 @@ static int read_page(struct tracecmd_input *handle, off64_t offset,
+ }
+
+ /* other parts of the code may expect the pointer to not move */
+- save_seek = lseek64(handle->fd, 0, SEEK_CUR);
++ save_seek = lseek(handle->fd, 0, SEEK_CUR);
+
+- ret = lseek64(handle->fd, offset, SEEK_SET);
++ ret = lseek(handle->fd, offset, SEEK_SET);
+ if (ret < 0)
+ return -1;
+ ret = read(handle->fd, map, handle->page_size);
+@@ -1301,7 +1301,7 @@ static int read_page(struct tracecmd_input *handle, off64_t offset,
+ return -1;
+
+ /* reset the file pointer back */
+- lseek64(handle->fd, save_seek, SEEK_SET);
++ lseek(handle->fd, save_seek, SEEK_SET);
+
+ return 0;
+ }
+@@ -1348,7 +1348,7 @@ static int chunk_cmp(const void *A, const void *B)
+ return 1;
+ }
+
+-static struct tracecmd_compress_chunk *get_zchunk(struct cpu_data *cpu, off64_t offset)
++static struct tracecmd_compress_chunk *get_zchunk(struct cpu_data *cpu, off_t offset)
+ {
+ struct cpu_zdata *cpuz = &cpu->compress;
+ struct tracecmd_compress_chunk *chunk;
+@@ -1398,7 +1398,7 @@ found:
+ free(cache);
+ }
+
+-static void *read_zpage(struct tracecmd_input *handle, int cpu, off64_t offset)
++static void *read_zpage(struct tracecmd_input *handle, int cpu, off_t offset)
+ {
+ struct cpu_data *cpu_data = &handle->cpu_data[cpu];
+ struct tracecmd_compress_chunk *chunk;
+@@ -1448,12 +1448,12 @@ error:
+ }
+
+ static void *allocate_page_map(struct tracecmd_input *handle,
+- struct page *page, int cpu, off64_t offset)
++ struct page *page, int cpu, off_t offset)
+ {
+ struct cpu_data *cpu_data = &handle->cpu_data[cpu];
+ struct page_map *page_map;
+- off64_t map_size;
+- off64_t map_offset;
++ off_t map_size;
++ off_t map_offset;
+ void *map;
+ int ret;
+ int fd;
+@@ -1544,7 +1544,7 @@ static void *allocate_page_map(struct tracecmd_input *handle,
+ }
+
+ static struct page *allocate_page(struct tracecmd_input *handle,
+- int cpu, off64_t offset)
++ int cpu, off_t offset)
+ {
+ struct cpu_data *cpu_data = &handle->cpu_data[cpu];
+ struct page **pages;
+@@ -1851,7 +1851,7 @@ static int update_page_info(struct tracecmd_input *handle, int cpu)
+ * -1 on error
+ */
+ static int get_page(struct tracecmd_input *handle, int cpu,
+- off64_t offset)
++ off_t offset)
+ {
+ /* Don't map if the page is already where we want */
+ if (handle->cpu_data[cpu].offset == offset &&
+@@ -1895,7 +1895,7 @@ static int get_page(struct tracecmd_input *handle, int cpu,
+
+ static int get_next_page(struct tracecmd_input *handle, int cpu)
+ {
+- off64_t offset;
++ off_t offset;
+
+ if (!handle->cpu_data[cpu].page && !handle->use_pipe)
+ return 0;
+@@ -2122,7 +2122,7 @@ struct tep_record *
+ tracecmd_read_cpu_last(struct tracecmd_input *handle, int cpu)
+ {
+ struct tep_record *record = NULL;
+- off64_t offset, page_offset;
++ off_t offset, page_offset;
+
+ offset = handle->cpu_data[cpu].file_offset +
+ handle->cpu_data[cpu].file_size;
+@@ -2183,7 +2183,7 @@ tracecmd_set_cpu_to_timestamp(struct tracecmd_input *handle, int cpu,
+ unsigned long long ts)
+ {
+ struct cpu_data *cpu_data = &handle->cpu_data[cpu];
+- off64_t start, end, next;
++ off_t start, end, next;
+
+ if (cpu < 0 || cpu >= handle->cpus) {
+ errno = -EINVAL;
+@@ -3064,11 +3064,11 @@ static int init_cpu_zfile(struct tracecmd_input *handle, int cpu)
+ {
+ struct cpu_data *cpu_data;
+ unsigned long long size;
+- off64_t offset;
++ off_t offset;
+
+ cpu_data = &handle->cpu_data[cpu];
+- offset = lseek64(handle->fd, 0, SEEK_CUR);
+- if (lseek64(handle->fd, cpu_data->file_offset, SEEK_SET) == (off_t)-1)
++ offset = lseek(handle->fd, 0, SEEK_CUR);
++ if (lseek(handle->fd, cpu_data->file_offset, SEEK_SET) == (off_t)-1)
+ return -1;
+
+ strcpy(cpu_data->compress.file, COMPR_TEMP_FILE);
+@@ -3079,7 +3079,7 @@ static int init_cpu_zfile(struct tracecmd_input *handle, int cpu)
+ if (tracecmd_uncompress_copy_to(handle->compress, cpu_data->compress.fd, NULL, &size))
+ return -1;
+
+- if (lseek64(handle->fd, offset, SEEK_SET) == (off_t)-1)
++ if (lseek(handle->fd, offset, SEEK_SET) == (off_t)-1)
+ return -1;
+
+ cpu_data->file_offset = handle->next_offset;
+@@ -3098,7 +3098,7 @@ static int init_cpu_zpage(struct tracecmd_input *handle, int cpu)
+ int count;
+ int i;
+
+- if (lseek64(handle->fd, cpu_data->file_offset, SEEK_SET) == (off_t)-1)
++ if (lseek(handle->fd, cpu_data->file_offset, SEEK_SET) == (off_t)-1)
+ return -1;
+
+ count = tracecmd_load_chunks_info(handle->compress, &cpu_data->compress.chunks);
+@@ -3576,7 +3576,7 @@ static int handle_option_done(struct tracecmd_input *handle, char *buf, int size
+ if (size < 8)
+ return -1;
+
+- offset = lseek64(handle->fd, 0, SEEK_CUR);
++ offset = lseek(handle->fd, 0, SEEK_CUR);
+ if (offset >= size)
+ handle->options_last_offset = offset - size;
+
+@@ -3584,7 +3584,7 @@ static int handle_option_done(struct tracecmd_input *handle, char *buf, int size
+ if (!offset)
+ return 0;
+
+- if (lseek64(handle->fd, offset, SEEK_SET) == (off_t)-1)
++ if (lseek(handle->fd, offset, SEEK_SET) == (off_t)-1)
+ return -1;
+
+ return handle_options(handle);
+@@ -3741,7 +3741,7 @@ static int handle_options(struct tracecmd_input *handle)
+ int ret;
+
+ if (!HAS_SECTIONS(handle)) {
+- handle->options_start = lseek64(handle->fd, 0, SEEK_CUR);
++ handle->options_start = lseek(handle->fd, 0, SEEK_CUR);
+ } else {
+ if (read_section_header(handle, &id, &flags, NULL, NULL))
+ return -1;
+@@ -4102,7 +4102,7 @@ int init_latency_data(struct tracecmd_input *handle)
+ if (ret)
+ return -1;
+
+- lseek64(handle->latz.fd, 0, SEEK_SET);
++ lseek(handle->latz.fd, 0, SEEK_SET);
+ }
+
+ return 0;
+@@ -4118,7 +4118,7 @@ static int init_buffer_cpu_data(struct tracecmd_input *handle, struct input_buff
+ if (handle->cpu_data)
+ return -1;
+
+- if (lseek64(handle->fd, buffer->offset, SEEK_SET) == (off_t)-1)
++ if (lseek(handle->fd, buffer->offset, SEEK_SET) == (off_t)-1)
+ return -1;
+ if (read_section_header(handle, &id, &flags, NULL, NULL))
+ return -1;
+@@ -4246,7 +4246,7 @@ static int read_and_parse_cmdlines(struct tracecmd_input *handle)
+
+ if (!HAS_SECTIONS(handle))
+ section_add_or_update(handle, TRACECMD_OPTION_CMDLINES, 0, 0,
+- lseek64(handle->fd, 0, SEEK_CUR));
++ lseek(handle->fd, 0, SEEK_CUR));
+
+
+ if (read_data_and_size(handle, &cmdlines, &size) < 0)
+@@ -4554,9 +4554,9 @@ static int read_metadata_strings(struct tracecmd_input *handle)
+ unsigned short id;
+ unsigned int csize, rsize;
+ unsigned long long size;
+- off64_t offset;
++ off_t offset;
+
+- offset = lseek64(handle->fd, 0, SEEK_CUR);
++ offset = lseek(handle->fd, 0, SEEK_CUR);
+ do {
+ if (read_section_header(handle, &id, &flags, &size, NULL))
+ break;
+@@ -4575,12 +4575,12 @@ static int read_metadata_strings(struct tracecmd_input *handle)
+ if (flags & TRACECMD_SEC_FL_COMPRESS)
+ in_uncompress_reset(handle);
+ } else {
+- if (lseek64(handle->fd, size, SEEK_CUR) == (off_t)-1)
++ if (lseek(handle->fd, size, SEEK_CUR) == (off_t)-1)
+ break;
+ }
+ } while (1);
+
+- if (lseek64(handle->fd, offset, SEEK_SET) == (off_t)-1)
++ if (lseek(handle->fd, offset, SEEK_SET) == (off_t)-1)
+ return -1;
+
+ return found ? 0 : -1;
+@@ -4683,9 +4683,9 @@ struct tracecmd_input *tracecmd_alloc_fd(int fd, int flags)
+ handle->page_size = page_size;
+ handle->next_offset = page_size;
+
+- offset = lseek64(handle->fd, 0, SEEK_CUR);
+- handle->total_file_size = lseek64(handle->fd, 0, SEEK_END);
+- lseek64(handle->fd, offset, SEEK_SET);
++ offset = lseek(handle->fd, 0, SEEK_CUR);
++ handle->total_file_size = lseek(handle->fd, 0, SEEK_END);
++ lseek(handle->fd, offset, SEEK_SET);
+
+ if (HAS_COMPRESSION(handle)) {
+ zname = read_string(handle);
+@@ -5533,7 +5533,7 @@ static int copy_options_recursive(struct tracecmd_input *in_handle,
+ if (!next)
+ break;
+
+- if (do_lseek(in_handle, next, SEEK_SET) == (off64_t)-1)
++ if (do_lseek(in_handle, next, SEEK_SET) == (off_t)-1)
+ return -1;
+
+ if (read_section_header(in_handle, &id, &flags, NULL, NULL))
+@@ -5648,7 +5648,7 @@ int tracecmd_copy_options(struct tracecmd_input *in_handle,
+ if (!in_handle->options_start)
+ return 0;
+
+- if (lseek64(in_handle->fd, in_handle->options_start, SEEK_SET) == (off64_t)-1)
++ if (lseek(in_handle->fd, in_handle->options_start, SEEK_SET) == (off_t)-1)
+ return -1;
+
+ if (copy_options(in_handle, out_handle) < 0)
+@@ -5980,10 +5980,10 @@ tracecmd_buffer_instance_handle(struct tracecmd_input *handle, int indx)
+ new_handle->pid_maps = NULL;
+ if (!HAS_SECTIONS(handle)) {
+ /* Save where we currently are */
+- offset = lseek64(handle->fd, 0, SEEK_CUR);
++ offset = lseek(handle->fd, 0, SEEK_CUR);
+
+- ret = lseek64(handle->fd, buffer->offset, SEEK_SET);
+- if (ret == (off64_t)-1) {
++ ret = lseek(handle->fd, buffer->offset, SEEK_SET);
++ if (ret == (off_t)-1) {
+ tracecmd_warning("could not seek to buffer %s offset %ld",
+ buffer->name, buffer->offset);
+ goto error;
+@@ -6001,7 +6001,7 @@ tracecmd_buffer_instance_handle(struct tracecmd_input *handle, int indx)
+ tracecmd_warning("failed to read sub buffer %s", buffer->name);
+ goto error;
+ }
+- ret = lseek64(handle->fd, offset, SEEK_SET);
++ ret = lseek(handle->fd, offset, SEEK_SET);
+ if (ret < 0) {
+ tracecmd_warning("could not seek to back to offset %ld", offset);
+ goto error;
+@@ -6171,13 +6171,13 @@ const char *tracecmd_get_version(struct tracecmd_input *handle)
+ *
+ * Provides a method to extract the cpu file size saved in @handle.
+ *
+- * Returns the cpu file size saved in trace.dat file or (off64_t)-1 for
++ * Returns the cpu file size saved in trace.dat file or (off_t)-1 for
+ * invalid cpu index.
+ */
+-off64_t tracecmd_get_cpu_file_size(struct tracecmd_input *handle, int cpu)
++off_t tracecmd_get_cpu_file_size(struct tracecmd_input *handle, int cpu)
+ {
+ if (cpu < 0 || cpu >= handle->cpus)
+- return (off64_t)-1;
++ return (off_t)-1;
+ return handle->cpu_data[cpu].file_size;
+ }
+
+diff --git a/lib/trace-cmd/trace-msg.c b/lib/trace-cmd/trace-msg.c
+index 0b2de710..3a555c36 100644
+--- a/lib/trace-cmd/trace-msg.c
++++ b/lib/trace-cmd/trace-msg.c
+@@ -183,26 +183,26 @@ static int __msg_write(int fd, struct tracecmd_msg *msg, bool network)
+ return __do_write_check(fd, msg->buf, data_size);
+ }
+
+-__hidden off64_t msg_lseek(struct tracecmd_msg_handle *msg_handle, off64_t offset, int whence)
++__hidden off_t msg_lseek(struct tracecmd_msg_handle *msg_handle, off_t offset, int whence)
+ {
+- off64_t cache_offset = msg_handle->cache_start_offset;
+- off64_t ret;
++ off_t cache_offset = msg_handle->cache_start_offset;
++ off_t ret;
+
+ /*
+ * lseek works only if the handle is in cache mode,
+ * cannot seek on a network socket
+ */
+ if (!msg_handle->cache || msg_handle->cfd < 0)
+- return (off64_t)-1;
++ return (off_t)-1;
+
+ if (whence == SEEK_SET) {
+ if (offset < cache_offset)
+- return (off64_t)-1;
++ return (off_t)-1;
+ offset -= cache_offset;
+ }
+
+- ret = lseek64(msg_handle->cfd, offset, whence);
+- if (ret == (off64_t)-1)
++ ret = lseek(msg_handle->cfd, offset, whence);
++ if (ret == (off_t)-1)
+ return ret;
+
+ return ret + cache_offset;
+@@ -639,7 +639,7 @@ static int flush_cache(struct tracecmd_msg_handle *msg_handle)
+ if (!msg_handle->cache || fd < 0)
+ return 0;
+ msg_handle->cache = false;
+- if (lseek64(fd, 0, SEEK_SET) == (off64_t)-1)
++ if (lseek(fd, 0, SEEK_SET) == (off_t)-1)
+ return -1;
+ do {
+ ret = read(fd, buf, MSG_MAX_DATA_LEN);
+@@ -650,8 +650,8 @@ static int flush_cache(struct tracecmd_msg_handle *msg_handle)
+ break;
+ } while (ret >= 0);
+
+- msg_handle->cache_start_offset = lseek64(fd, 0, SEEK_CUR);
+- if (msg_handle->cache_start_offset == (off64_t)-1)
++ msg_handle->cache_start_offset = lseek(fd, 0, SEEK_CUR);
++ if (msg_handle->cache_start_offset == (off_t)-1)
+ return -1;
+
+ close(fd);
+diff --git a/lib/trace-cmd/trace-output.c b/lib/trace-cmd/trace-output.c
+index 1c0f7b77..ad740d65 100644
+--- a/lib/trace-cmd/trace-output.c
++++ b/lib/trace-cmd/trace-output.c
+@@ -112,7 +112,7 @@ do_write_check(struct tracecmd_output *handle, const void *data, long long size)
+ return __do_write_check(handle->fd, data, size);
+ }
+
+-static inline off64_t do_lseek(struct tracecmd_output *handle, off_t offset, int whence)
++static inline off_t do_lseek(struct tracecmd_output *handle, off_t offset, int whence)
+ {
+ if (handle->do_compress)
+ return tracecmd_compress_lseek(handle->compress, offset, whence);
+@@ -120,7 +120,7 @@ static inline off64_t do_lseek(struct tracecmd_output *handle, off_t offset, int
+ if (handle->msg_handle)
+ return msg_lseek(handle->msg_handle, offset, whence);
+
+- return lseek64(handle->fd, offset, whence);
++ return lseek(handle->fd, offset, whence);
+ }
+
+ static inline int do_preed(struct tracecmd_output *handle, void *dst, int len, off_t offset)
+@@ -526,12 +526,12 @@ out_write_section_header(struct tracecmd_output *handle, unsigned short header_i
+ /* Section ID */
+ endian2 = convert_endian_2(handle, header_id);
+ if (do_write_check(handle, &endian2, 2))
+- return (off64_t)-1;
++ return (off_t)-1;
+
+ /* Section flags */
+ endian2 = convert_endian_2(handle, flags);
+ if (do_write_check(handle, &endian2, 2))
+- return (off64_t)-1;
++ return (off_t)-1;
+
+ /* Section description */
+ if (description)
+@@ -540,13 +540,13 @@ out_write_section_header(struct tracecmd_output *handle, unsigned short header_i
+ desc = -1;
+ endian4 = convert_endian_4(handle, desc);
+ if (do_write_check(handle, &endian4, 4))
+- return (off64_t)-1;
++ return (off_t)-1;
+
+ offset = do_lseek(handle, 0, SEEK_CUR);
+ size = 0;
+ /* Reserve for section size */
+ if (do_write_check(handle, &size, 8))
+- return (off64_t)-1;
++ return (off_t)-1;
+ return offset;
+ }
+
+@@ -567,13 +567,13 @@ __hidden int out_update_section_header(struct tracecmd_output *handle, tsize_t o
+ if (size < 8)
+ return -1;
+ size -= 8;
+- if (do_lseek(handle, offset, SEEK_SET) == (off64_t)-1)
++ if (do_lseek(handle, offset, SEEK_SET) == (off_t)-1)
+ return -1;
+
+ endian8 = convert_endian_8(handle, size);
+ if (do_write_check(handle, &endian8, 8))
+ return -1;
+- if (do_lseek(handle, current, SEEK_SET) == (off64_t)-1)
++ if (do_lseek(handle, current, SEEK_SET) == (off_t)-1)
+ return -1;
+ return 0;
+ }
+@@ -595,7 +595,7 @@ static int save_string_section(struct tracecmd_output *handle, bool compress)
+ if (compress)
+ flags |= TRACECMD_SEC_FL_COMPRESS;
+ offset = out_write_section_header(handle, TRACECMD_OPTION_STRINGS, "strings", flags, false);
+- if (offset == (off64_t)-1)
++ if (offset == (off_t)-1)
+ return -1;
+
+ out_compression_start(handle, compress);
+@@ -645,7 +645,7 @@ static int read_header_files(struct tracecmd_output *handle, bool compress)
+ flags |= TRACECMD_SEC_FL_COMPRESS;
+ offset = out_write_section_header(handle, TRACECMD_OPTION_HEADER_INFO,
+ "headers", flags, true);
+- if (offset == (off64_t)-1)
++ if (offset == (off_t)-1)
+ return -1;
+
+ out_compression_start(handle, compress);
+@@ -973,7 +973,7 @@ static int read_ftrace_files(struct tracecmd_output *handle, bool compress)
+ flags |= TRACECMD_SEC_FL_COMPRESS;
+ offset = out_write_section_header(handle, TRACECMD_OPTION_FTRACE_EVENTS,
+ "ftrace events", flags, true);
+- if (offset == (off64_t)-1)
++ if (offset == (off_t)-1)
+ return -1;
+
+ create_event_list_item(handle, &systems, &list);
+@@ -1032,7 +1032,7 @@ static int read_event_files(struct tracecmd_output *handle,
+ flags |= TRACECMD_SEC_FL_COMPRESS;
+ offset = out_write_section_header(handle, TRACECMD_OPTION_EVENT_FORMATS,
+ "events format", flags, true);
+- if (offset == (off64_t)-1)
++ if (offset == (off_t)-1)
+ return -1;
+ /*
+ * If any of the list is the special keyword "all" then
+@@ -1146,7 +1146,7 @@ static int read_proc_kallsyms(struct tracecmd_output *handle, bool compress)
+ flags |= TRACECMD_SEC_FL_COMPRESS;
+ offset = out_write_section_header(handle, TRACECMD_OPTION_KALLSYMS,
+ "kallsyms", flags, true);
+- if (offset == (off64_t)-1)
++ if (offset == (off_t)-1)
+ return -1;
+
+ out_compression_start(handle, compress);
+@@ -1210,7 +1210,7 @@ static int read_ftrace_printk(struct tracecmd_output *handle, bool compress)
+ if (compress)
+ flags |= TRACECMD_SEC_FL_COMPRESS;
+ offset = out_write_section_header(handle, TRACECMD_OPTION_PRINTK, "printk", flags, true);
+- if (offset == (off64_t)-1)
++ if (offset == (off_t)-1)
+ return -1;
+
+ out_compression_start(handle, compress);
+@@ -1255,8 +1255,8 @@ static int save_tracing_file_data(struct tracecmd_output *handle,
+ unsigned long long endian8;
+ char *file = NULL;
+ struct stat st;
+- off64_t check_size;
+- off64_t size;
++ off_t check_size;
++ off_t size;
+ int ret = -1;
+
+ file = get_tracing_file(handle, filename);
+@@ -1850,9 +1850,9 @@ static int write_options_v6(struct tracecmd_output *handle)
+ return 0;
+ }
+
+-static int update_options_start(struct tracecmd_output *handle, off64_t offset)
++static int update_options_start(struct tracecmd_output *handle, off_t offset)
+ {
+- if (do_lseek(handle, handle->options_start, SEEK_SET) == (off64_t)-1)
++ if (do_lseek(handle, handle->options_start, SEEK_SET) == (off_t)-1)
+ return -1;
+ offset = convert_endian_8(handle, offset);
+ if (do_write_check(handle, &offset, 8))
+@@ -1875,7 +1875,7 @@ static int update_options_start(struct tracecmd_output *handle, off64_t offset)
+ *
+ * Returns zero on success and -1 on error.
+ */
+-int tracecmd_prepare_options(struct tracecmd_output *handle, off64_t offset, int whence)
++int tracecmd_prepare_options(struct tracecmd_output *handle, off_t offset, int whence)
+ {
+ tsize_t curr;
+ int ret;
+@@ -1895,7 +1895,7 @@ int tracecmd_prepare_options(struct tracecmd_output *handle, off64_t offset, int
+ break;
+ case SEEK_END:
+ offset = do_lseek(handle, offset, SEEK_END);
+- if (offset == (off64_t)-1)
++ if (offset == (off_t)-1)
+ return -1;
+ break;
+ }
+@@ -2067,7 +2067,7 @@ __hidden void *trace_get_options(struct tracecmd_output *handle, size_t *len)
+ if (!buf)
+ goto out;
+
+- if (do_lseek(&out_handle, 0, SEEK_SET) == (off64_t)-1)
++ if (do_lseek(&out_handle, 0, SEEK_SET) == (off_t)-1)
+ goto out;
+ *len = read(msg_handle.cfd, buf, offset);
+ if (*len != offset) {
+@@ -2278,7 +2278,7 @@ int tracecmd_write_cmdlines(struct tracecmd_output *handle)
+ flags |= TRACECMD_SEC_FL_COMPRESS;
+ offset = out_write_section_header(handle, TRACECMD_OPTION_CMDLINES,
+ "command lines", flags, true);
+- if (offset == (off64_t)-1)
++ if (offset == (off_t)-1)
+ return -1;
+
+ out_compression_start(handle, compress);
+@@ -2527,7 +2527,7 @@ static int update_buffer_cpu_offset_v6(struct tracecmd_output *handle,
+ current = do_lseek(handle, 0, SEEK_CUR);
+
+ /* Go to the option data, where will write the offest */
+- if (do_lseek(handle, b_offset, SEEK_SET) == (off64_t)-1) {
++ if (do_lseek(handle, b_offset, SEEK_SET) == (off_t)-1) {
+ tracecmd_warning("could not seek to %lld", b_offset);
+ return -1;
+ }
+@@ -2536,7 +2536,7 @@ static int update_buffer_cpu_offset_v6(struct tracecmd_output *handle,
+ return -1;
+
+ /* Go back to end of file */
+- if (do_lseek(handle, current, SEEK_SET) == (off64_t)-1) {
++ if (do_lseek(handle, current, SEEK_SET) == (off_t)-1) {
+ tracecmd_warning("could not seek to %lld", offset);
+ return -1;
+ }
+@@ -2660,7 +2660,7 @@ __hidden int out_write_cpu_data(struct tracecmd_output *handle,
+ data_files[i].data_offset &= ~(page_size - 1);
+
+ ret = do_lseek(handle, data_files[i].data_offset, SEEK_SET);
+- if (ret == (off64_t)-1)
++ if (ret == (off_t)-1)
+ goto out_free;
+
+ if (!tracecmd_get_quiet(handle))
+@@ -2668,7 +2668,7 @@ __hidden int out_write_cpu_data(struct tracecmd_output *handle,
+ i, (unsigned long long)data_files[i].data_offset);
+
+ if (data[i].size) {
+- if (lseek64(data[i].fd, data[i].offset, SEEK_SET) == (off64_t)-1)
++ if (lseek(data[i].fd, data[i].offset, SEEK_SET) == (off_t)-1)
+ goto out_free;
+ read_size = out_copy_fd_compress(handle, data[i].fd,
+ data[i].size, &data_files[i].write_size,
+@@ -2686,19 +2686,19 @@ __hidden int out_write_cpu_data(struct tracecmd_output *handle,
+
+ if (!HAS_SECTIONS(handle)) {
+ /* Write the real CPU data offset in the file */
+- if (do_lseek(handle, data_files[i].file_data_offset, SEEK_SET) == (off64_t)-1)
++ if (do_lseek(handle, data_files[i].file_data_offset, SEEK_SET) == (off_t)-1)
+ goto out_free;
+ endian8 = convert_endian_8(handle, data_files[i].data_offset);
+ if (do_write_check(handle, &endian8, 8))
+ goto out_free;
+ /* Write the real CPU data size in the file */
+- if (do_lseek(handle, data_files[i].file_write_size, SEEK_SET) == (off64_t)-1)
++ if (do_lseek(handle, data_files[i].file_write_size, SEEK_SET) == (off_t)-1)
+ goto out_free;
+ endian8 = convert_endian_8(handle, data_files[i].write_size);
+ if (do_write_check(handle, &endian8, 8))
+ goto out_free;
+ offset = data_files[i].data_offset + data_files[i].write_size;
+- if (do_lseek(handle, offset, SEEK_SET) == (off64_t)-1)
++ if (do_lseek(handle, offset, SEEK_SET) == (off_t)-1)
+ goto out_free;
+ }
+ if (!tracecmd_get_quiet(handle)) {
+@@ -2717,7 +2717,7 @@ __hidden int out_write_cpu_data(struct tracecmd_output *handle,
+ goto out_free;
+
+ free(data_files);
+- if (do_lseek(handle, 0, SEEK_END) == (off64_t)-1)
++ if (do_lseek(handle, 0, SEEK_END) == (off_t)-1)
+ return -1;
+
+ if (out_update_section_header(handle, offset))
+@@ -2986,7 +2986,7 @@ __hidden int out_save_options_offset(struct tracecmd_output *handle, unsigned lo
+ return -1;
+
+ new = do_lseek(handle, 0, SEEK_CUR);
+- if (do_lseek(handle, handle->options_start, SEEK_SET) == (off64_t)-1)
++ if (do_lseek(handle, handle->options_start, SEEK_SET) == (off_t)-1)
+ return -1;
+
+ en8 = convert_endian_8(handle, start);
+@@ -2994,7 +2994,7 @@ __hidden int out_save_options_offset(struct tracecmd_output *handle, unsigned lo
+ return -1;
+
+ handle->options_start = new;
+- if (do_lseek(handle, new, SEEK_SET) == (off64_t)-1)
++ if (do_lseek(handle, new, SEEK_SET) == (off_t)-1)
+ return -1;
+ } else {
+ handle->options_start = start;
+diff --git a/lib/trace-cmd/trace-recorder.c b/lib/trace-cmd/trace-recorder.c
+index 23499f30..c172ad64 100644
+--- a/lib/trace-cmd/trace-recorder.c
++++ b/lib/trace-cmd/trace-recorder.c
+@@ -51,7 +51,7 @@ static int append_file(int size, int dst, int src)
+ char buf[size];
+ int r;
+
+- lseek64(src, 0, SEEK_SET);
++ lseek(src, 0, SEEK_SET);
+
+ /* If there's an error, then we are pretty much screwed :-p */
+ do {
+@@ -82,10 +82,10 @@ void tracecmd_free_recorder(struct tracecmd_recorder *recorder)
+ recorder->fd2, recorder->fd1);
+ /* Error on copying, then just keep fd1 */
+ if (ret) {
+- lseek64(recorder->fd1, 0, SEEK_END);
++ lseek(recorder->fd1, 0, SEEK_END);
+ goto close;
+ }
+- lseek64(recorder->fd1, 0, SEEK_SET);
++ lseek(recorder->fd1, 0, SEEK_SET);
+ ftruncate(recorder->fd1, 0);
+ }
+ append_file(recorder->page_size, recorder->fd1, recorder->fd2);
+@@ -305,7 +305,7 @@ static inline void update_fd(struct tracecmd_recorder *recorder, int size)
+ fd = recorder->fd1;
+
+ /* Zero out the new file we are writing to */
+- lseek64(fd, 0, SEEK_SET);
++ lseek(fd, 0, SEEK_SET);
+ ftruncate(fd, 0);
+
+ recorder->fd = fd;
+diff --git a/tracecmd/trace-dump.c b/tracecmd/trace-dump.c
+index 22e3d871..11c1baf1 100644
+--- a/tracecmd/trace-dump.c
++++ b/tracecmd/trace-dump.c
+@@ -101,7 +101,7 @@ static int do_lseek(int fd, int offset, int whence)
+ if (read_compress)
+ return tracecmd_compress_lseek(compress, offset, whence);
+
+- return lseek64(fd, offset, whence);
++ return lseek(fd, offset, whence);
+ }
+
+ static int read_file_string(int fd, char *dst, int len)
+@@ -446,7 +446,7 @@ static void dump_section_header(int fd, enum dump_items v, unsigned short *flags
+ const char *desc;
+ int desc_id;
+
+- offset = lseek64(fd, 0, SEEK_CUR);
++ offset = lseek(fd, 0, SEEK_CUR);
+ if (read_file_number(fd, &id, 2))
+ die("cannot read the section id");
+
+@@ -500,13 +500,13 @@ static void dump_option_buffer(int fd, unsigned short option, int size)
+ return;
+ }
+
+- current = lseek64(fd, 0, SEEK_CUR);
+- if (lseek64(fd, offset, SEEK_SET) == (off_t)-1)
++ current = lseek(fd, 0, SEEK_CUR);
++ if (lseek(fd, offset, SEEK_SET) == (off_t)-1)
+ die("cannot goto buffer offset %lld", offset);
+
+ dump_section_header(fd, FLYRECORD, &flags);
+
+- if (lseek64(fd, current, SEEK_SET) == (off_t)-1)
++ if (lseek(fd, current, SEEK_SET) == (off_t)-1)
+ die("cannot go back to buffer option");
+
+ do_print(OPTIONS|FLYRECORD, "\t\t[Option BUFFER, %d bytes]\n", size);
+@@ -773,7 +773,7 @@ static void dump_sections(int fd, int count)
+ unsigned short flags;
+
+ while (sec) {
+- if (lseek64(fd, sec->offset, SEEK_SET) == (off_t)-1)
++ if (lseek(fd, sec->offset, SEEK_SET) == (off_t)-1)
+ die("cannot goto option offset %lld", sec->offset);
+
+ dump_section_header(fd, sec->verbosity, &flags);
+@@ -826,7 +826,7 @@ static int dump_option_done(int fd, int size)
+ if (!offset)
+ return 0;
+
+- if (lseek64(fd, offset, SEEK_SET) == (off_t)-1)
++ if (lseek(fd, offset, SEEK_SET) == (off_t)-1)
+ die("cannot goto next options offset %lld", offset);
+
+ do_print(OPTIONS, "\n\n");
+@@ -1006,7 +1006,7 @@ static void dump_therest(int fd)
+ else if (strncmp(str, HEAD_FLYRECORD, 10) == 0)
+ dump_flyrecord(fd);
+ else {
+- lseek64(fd, -10, SEEK_CUR);
++ lseek(fd, -10, SEEK_CUR);
+ break;
+ }
+ }
+@@ -1060,7 +1060,7 @@ static void get_meta_strings(int fd)
+ unsigned short fl, id;
+ int desc_id;
+
+- offset = lseek64(fd, 0, SEEK_CUR);
++ offset = lseek(fd, 0, SEEK_CUR);
+ do {
+ if (read_file_number(fd, &id, 2))
+ break;
+@@ -1074,7 +1074,7 @@ static void get_meta_strings(int fd)
+ if ((fl & TRACECMD_SEC_FL_COMPRESS)) {
+ read_file_number(fd, &csize, 4);
+ read_file_number(fd, &rsize, 4);
+- lseek64(fd, -8, SEEK_CUR);
++ lseek(fd, -8, SEEK_CUR);
+ if (uncompress_block())
+ break;
+ } else {
+@@ -1083,12 +1083,12 @@ static void get_meta_strings(int fd)
+ read_metadata_strings(fd, rsize);
+ uncompress_reset();
+ } else {
+- if (lseek64(fd, size, SEEK_CUR) == (off_t)-1)
++ if (lseek(fd, size, SEEK_CUR) == (off_t)-1)
+ break;
+ }
+ } while (1);
+
+- if (lseek64(fd, offset, SEEK_SET) == (off_t)-1)
++ if (lseek(fd, offset, SEEK_SET) == (off_t)-1)
+ die("cannot restore the original file location");
+ }
+
+@@ -1102,9 +1102,9 @@ static int walk_v7_sections(int fd)
+ int desc_id;
+ const char *desc;
+
+- offset = lseek64(fd, 0, SEEK_CUR);
++ offset = lseek(fd, 0, SEEK_CUR);
+ do {
+- soffset = lseek64(fd, 0, SEEK_CUR);
++ soffset = lseek(fd, 0, SEEK_CUR);
+ if (read_file_number(fd, &id, 2))
+ break;
+
+@@ -1149,11 +1149,11 @@ static int walk_v7_sections(int fd)
+ id, soffset, desc, fl, size);
+ }
+
+- if (lseek64(fd, size, SEEK_CUR) == (off_t)-1)
++ if (lseek(fd, size, SEEK_CUR) == (off_t)-1)
+ break;
+ } while (1);
+
+- if (lseek64(fd, offset, SEEK_SET) == (off_t)-1)
++ if (lseek(fd, offset, SEEK_SET) == (off_t)-1)
+ die("cannot restore the original file location");
+
+ return count;
+@@ -1170,7 +1170,7 @@ static void dump_v7_file(int fd)
+ get_meta_strings(fd);
+ sections = walk_v7_sections(fd);
+
+- if (lseek64(fd, offset, SEEK_SET) == (off_t)-1)
++ if (lseek(fd, offset, SEEK_SET) == (off_t)-1)
+ die("cannot goto options offset %lld", offset);
+
+ dump_options(fd);
+diff --git a/tracecmd/trace-read.c b/tracecmd/trace-read.c
+index 224a6dde..c094ad6a 100644
+--- a/tracecmd/trace-read.c
++++ b/tracecmd/trace-read.c
+@@ -195,7 +195,7 @@ static void print_event(struct trace_seq *s, struct tracecmd_input *handle,
+ #define TEST_READ_AT 0
+ #if TEST_READ_AT
+ #define DO_TEST
+-static off64_t test_read_at_offset;
++static off_t test_read_at_offset;
+ static int test_read_at_copy = 100;
+ static int test_read_at_index;
+ static void show_test(struct tracecmd_input *handle)
+--
+2.39.0
+
diff --git a/meta-oe/recipes-kernel/trace-cmd/files/0001-trace-cmd-make-it-build-with-musl.patch b/meta-oe/recipes-kernel/trace-cmd/files/0001-trace-cmd-make-it-build-with-musl.patch
deleted file mode 100644
index 220991804b..0000000000
--- a/meta-oe/recipes-kernel/trace-cmd/files/0001-trace-cmd-make-it-build-with-musl.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From b63f13d2df91ede45288653b21e0d30a6b45f2ac Mon Sep 17 00:00:00 2001
-From: Beniamin Sandu <beniaminsandu@gmail.com>
-Date: Mon, 30 Nov 2020 18:24:48 +0200
-Subject: [PATCH] trace-cmd: make it build with musl
-
-Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
----
- include/trace-cmd/trace-cmd.h | 1 +
- lib/trace-cmd/trace-msg.c | 1 +
- lib/trace-cmd/trace-plugin.c | 2 ++
- lib/tracefs/tracefs-events.c | 1 +
- tracecmd/trace-agent.c | 1 +
- tracecmd/trace-setup-guest.c | 1 +
- tracecmd/trace-tsync.c | 15 ++++++++++-----
- 7 files changed, 17 insertions(+), 5 deletions(-)
-
-diff --git a/include/trace-cmd/trace-cmd.h b/include/trace-cmd/trace-cmd.h
-index f3c95f3..a697905 100644
---- a/include/trace-cmd/trace-cmd.h
-+++ b/include/trace-cmd/trace-cmd.h
-@@ -6,6 +6,7 @@
- #ifndef _TRACE_CMD_H
- #define _TRACE_CMD_H
-
-+#include <sys/types.h>
- #include "traceevent/event-parse.h"
-
- #define TRACECMD_MAGIC { 23, 8, 68 }
-diff --git a/lib/trace-cmd/trace-msg.c b/lib/trace-cmd/trace-msg.c
-index 4a0bfa9..fc1f2c7 100644
---- a/lib/trace-cmd/trace-msg.c
-+++ b/lib/trace-cmd/trace-msg.c
-@@ -21,6 +21,7 @@
- #include <arpa/inet.h>
- #include <sys/types.h>
- #include <linux/types.h>
-+#include <byteswap.h>
-
- #include "trace-write-local.h"
- #include "trace-cmd-local.h"
-diff --git a/lib/trace-cmd/trace-plugin.c b/lib/trace-cmd/trace-plugin.c
-index 92f9edf..c2ef3dc 100644
---- a/lib/trace-cmd/trace-plugin.c
-+++ b/lib/trace-cmd/trace-plugin.c
-@@ -8,6 +8,8 @@
- #include <dlfcn.h>
- #include <sys/stat.h>
- #include <libgen.h>
-+#include <limits.h>
-+
- #include "trace-cmd.h"
- #include "trace-local.h"
-
-diff --git a/lib/tracefs/tracefs-events.c b/lib/tracefs/tracefs-events.c
-index 8e825f5..a8d8560 100644
---- a/lib/tracefs/tracefs-events.c
-+++ b/lib/tracefs/tracefs-events.c
-@@ -13,6 +13,7 @@
- #include <errno.h>
- #include <sys/stat.h>
- #include <fcntl.h>
-+#include <limits.h>
-
- #include "kbuffer.h"
- #include "tracefs.h"
-diff --git a/tracecmd/trace-agent.c b/tracecmd/trace-agent.c
-index b581696..abfefac 100644
---- a/tracecmd/trace-agent.c
-+++ b/tracecmd/trace-agent.c
-@@ -20,6 +20,7 @@
- #include <unistd.h>
- #include <linux/vm_sockets.h>
- #include <pthread.h>
-+#include <limits.h>
-
- #include "trace-local.h"
- #include "trace-msg.h"
-diff --git a/tracecmd/trace-setup-guest.c b/tracecmd/trace-setup-guest.c
-index 899848c..99595a1 100644
---- a/tracecmd/trace-setup-guest.c
-+++ b/tracecmd/trace-setup-guest.c
-@@ -13,6 +13,7 @@
- #include <string.h>
- #include <sys/stat.h>
- #include <unistd.h>
-+#include <limits.h>
-
- #include "trace-local.h"
- #include "trace-msg.h"
-diff --git a/tracecmd/trace-tsync.c b/tracecmd/trace-tsync.c
-index e639788..b8b5ac3 100644
---- a/tracecmd/trace-tsync.c
-+++ b/tracecmd/trace-tsync.c
-@@ -104,13 +104,15 @@ int tracecmd_host_tsync(struct buffer_instance *instance,
-
- pthread_attr_init(&attrib);
- pthread_attr_setdetachstate(&attrib, PTHREAD_CREATE_JOINABLE);
-- if (!get_first_cpu(&pin_mask, &mask_size))
-- pthread_attr_setaffinity_np(&attrib, mask_size, pin_mask);
-
- ret = pthread_create(&instance->tsync_thread, &attrib,
- tsync_host_thread, &instance->tsync);
-- if (!ret)
-+ if (!ret) {
-+ if (!get_first_cpu(&pin_mask, &mask_size))
-+ pthread_setaffinity_np(instance->tsync_thread, mask_size, pin_mask);
- instance->tsync_thread_running = true;
-+ }
-+
- if (pin_mask)
- CPU_FREE(pin_mask);
- pthread_attr_destroy(&attrib);
-@@ -243,11 +245,14 @@ unsigned int tracecmd_guest_tsync(char *tsync_protos,
- pthread_attr_init(&attrib);
- tsync->sync_proto = proto;
- pthread_attr_setdetachstate(&attrib, PTHREAD_CREATE_JOINABLE);
-- if (!get_first_cpu(&pin_mask, &mask_size))
-- pthread_attr_setaffinity_np(&attrib, mask_size, pin_mask);
-
- ret = pthread_create(thr_id, &attrib, tsync_agent_thread, tsync);
-
-+ if (!ret) {
-+ if (!get_first_cpu(&pin_mask, &mask_size))
-+ pthread_setaffinity_np(*thr_id, mask_size, pin_mask);
-+ }
-+
- if (pin_mask)
- CPU_FREE(pin_mask);
- pthread_attr_destroy(&attrib);
---
-2.25.1
-
diff --git a/meta-oe/recipes-kernel/trace-cmd/files/0002-Drop-using-_LARGEFILE64_SOURCE.patch b/meta-oe/recipes-kernel/trace-cmd/files/0002-Drop-using-_LARGEFILE64_SOURCE.patch
new file mode 100644
index 0000000000..7b2ea79eb3
--- /dev/null
+++ b/meta-oe/recipes-kernel/trace-cmd/files/0002-Drop-using-_LARGEFILE64_SOURCE.patch
@@ -0,0 +1,145 @@
+From 47005e155c291ee6a2460cbf9eee604997e87063 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 9 Jan 2023 14:48:49 -0800
+Subject: [PATCH 2/2] Drop using _LARGEFILE64_SOURCE
+
+Its no longer needed since we have dropped using LF64 interfaces
+
+Upstream-Status: Submitted [https://lore.kernel.org/linux-trace-devel/20230109225315.1284538-2-raj.khem@gmail.com/T/#u]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/trace-cmd/trace-input.c | 1 -
+ lib/trace-cmd/trace-output.c | 1 -
+ lib/trace-cmd/trace-recorder.c | 1 -
+ tracecmd/trace-hist.c | 1 -
+ tracecmd/trace-listen.c | 1 -
+ tracecmd/trace-mem.c | 1 -
+ tracecmd/trace-profile.c | 1 -
+ tracecmd/trace-read.c | 1 -
+ tracecmd/trace-restore.c | 1 -
+ tracecmd/trace-split.c | 1 -
+ 10 files changed, 10 deletions(-)
+
+diff --git a/lib/trace-cmd/trace-input.c b/lib/trace-cmd/trace-input.c
+index 9b128403..3dd13ce4 100644
+--- a/lib/trace-cmd/trace-input.c
++++ b/lib/trace-cmd/trace-input.c
+@@ -3,7 +3,6 @@
+ * Copyright (C) 2009, 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
+ *
+ */
+-#define _LARGEFILE64_SOURCE
+ #include <stdbool.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/lib/trace-cmd/trace-output.c b/lib/trace-cmd/trace-output.c
+index ad740d65..eee847e3 100644
+--- a/lib/trace-cmd/trace-output.c
++++ b/lib/trace-cmd/trace-output.c
+@@ -3,7 +3,6 @@
+ * Copyright (C) 2009, 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
+ *
+ */
+-#define _LARGEFILE64_SOURCE
+ #include <dirent.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/lib/trace-cmd/trace-recorder.c b/lib/trace-cmd/trace-recorder.c
+index c172ad64..70ce52e2 100644
+--- a/lib/trace-cmd/trace-recorder.c
++++ b/lib/trace-cmd/trace-recorder.c
+@@ -3,7 +3,6 @@
+ * Copyright (C) 2009, 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
+ *
+ */
+-#define _LARGEFILE64_SOURCE
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <fcntl.h>
+diff --git a/tracecmd/trace-hist.c b/tracecmd/trace-hist.c
+index efb790ac..62fe4f9b 100644
+--- a/tracecmd/trace-hist.c
++++ b/tracecmd/trace-hist.c
+@@ -5,7 +5,6 @@
+ * Several of the ideas in this file came from Arnaldo Carvalho de Melo's
+ * work on the perf ui.
+ */
+-#define _LARGEFILE64_SOURCE
+ #include <dirent.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/tracecmd/trace-listen.c b/tracecmd/trace-listen.c
+index 86d2b9e9..e95c5711 100644
+--- a/tracecmd/trace-listen.c
++++ b/tracecmd/trace-listen.c
+@@ -3,7 +3,6 @@
+ * Copyright (C) 2009, 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
+ *
+ */
+-#define _LARGEFILE64_SOURCE
+ #include <dirent.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/tracecmd/trace-mem.c b/tracecmd/trace-mem.c
+index 25eb0861..3e1ac9f3 100644
+--- a/tracecmd/trace-mem.c
++++ b/tracecmd/trace-mem.c
+@@ -11,7 +11,6 @@
+ * was written for the newer version. I decided to do some of it here
+ * in C.
+ */
+-#define _LARGEFILE64_SOURCE
+ #include <dirent.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/tracecmd/trace-profile.c b/tracecmd/trace-profile.c
+index 6a2cc3d0..d12a0e5e 100644
+--- a/tracecmd/trace-profile.c
++++ b/tracecmd/trace-profile.c
+@@ -5,7 +5,6 @@
+ */
+
+ /** FIXME: Convert numbers based on machine and file */
+-#define _LARGEFILE64_SOURCE
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff --git a/tracecmd/trace-read.c b/tracecmd/trace-read.c
+index c094ad6a..52ba818e 100644
+--- a/tracecmd/trace-read.c
++++ b/tracecmd/trace-read.c
+@@ -3,7 +3,6 @@
+ * Copyright (C) 2009, 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
+ *
+ */
+-#define _LARGEFILE64_SOURCE
+ #include <dirent.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/tracecmd/trace-restore.c b/tracecmd/trace-restore.c
+index 5bf29c52..e9ca3225 100644
+--- a/tracecmd/trace-restore.c
++++ b/tracecmd/trace-restore.c
+@@ -3,7 +3,6 @@
+ * Copyright (C) 2009, 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
+ *
+ */
+-#define _LARGEFILE64_SOURCE
+ #include <dirent.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/tracecmd/trace-split.c b/tracecmd/trace-split.c
+index 851ec94e..1daa847d 100644
+--- a/tracecmd/trace-split.c
++++ b/tracecmd/trace-split.c
+@@ -3,7 +3,6 @@
+ * Copyright (C) 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
+ *
+ */
+-#define _LARGEFILE64_SOURCE
+ #include <dirent.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+--
+2.39.0
+
diff --git a/meta-oe/recipes-kernel/trace-cmd/trace-cmd_2.9.1.bb b/meta-oe/recipes-kernel/trace-cmd/trace-cmd_2.9.1.bb
deleted file mode 100644
index 6640707382..0000000000
--- a/meta-oe/recipes-kernel/trace-cmd/trace-cmd_2.9.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "User-space front-end command-line tool for ftrace"
-
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=873f48a813bded3de6ebc54e6880c4ac"
-
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;branch=master \
- file://0001-trace-cmd-make-it-build-with-musl.patch"
-
-SRCREV = "530b1a0caef39466e16bbd49de5afef89656f03f"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- oe_runmake etcdir=${sysconfdir} DESTDIR=${D} install
- mkdir -p ${D}${libdir}/traceevent/plugins/${BPN}
- mv ${D}/${libdir}/traceevent/plugins/*.so ${D}${libdir}/traceevent/plugins/${BPN}/
-}
-
-FILES:${PN} += "${libdir}/traceevent/plugins"
diff --git a/meta-oe/recipes-kernel/trace-cmd/trace-cmd_3.1.5.bb b/meta-oe/recipes-kernel/trace-cmd/trace-cmd_3.1.5.bb
new file mode 100644
index 0000000000..11c4037b23
--- /dev/null
+++ b/meta-oe/recipes-kernel/trace-cmd/trace-cmd_3.1.5.bb
@@ -0,0 +1,32 @@
+SUMMARY = "User-space front-end command-line tool for ftrace"
+
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = " \
+ file://LICENSES/GPL-2.0;md5=e6a75371ba4d16749254a51215d13f97 \
+ file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd \
+ "
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git;branch=master \
+ file://0001-Replace-LFS64-interfaces-off64_t-and-lseek64.patch \
+ file://0002-Drop-using-_LARGEFILE64_SOURCE.patch \
+ file://0001-Do-not-emit-useless-rpath.patch"
+SRCREV = "18233e4c32857cb7ddd4960beeec8360ed834fc5"
+
+S = "${WORKDIR}/git"
+
+DEPENDS += "libtraceevent libtracefs zstd xmlto-native asciidoc-native swig-native bison-native flex-native"
+
+inherit pkgconfig bash-completion
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_compile() {
+ oe_runmake libdir_relative=${BASELIB} libs
+ oe_runmake libdir_relative=${BASELIB} all
+}
+
+do_install() {
+ oe_runmake libdir_relative=${baselib} etcdir=${sysconfdir} pkgconfig_dir=${libdir}/pkgconfig DESTDIR=${D} install install_libs
+ # Because makefile uses cp instead of install we need to change owner of files
+ chown -R root:root ${D}${libdir}
+}
diff --git a/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb b/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb
index 47938969bb..e7e4ca50af 100644
--- a/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb
+++ b/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb
@@ -65,5 +65,5 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
# Even though the libusbip is set to version 0.0.1, set the package version to match kernel
# e.g. usbip-tools-5.14.21-r0.qemux86_64.rpm for qemu package using kernel 5.14.21
python do_package:prepend() {
- d.setVar('PKGV', d.getVar("KERNEL_VERSION", True).split("-")[0])
+ d.setVar('PKGV', d.getVar("KERNEL_VERSION").split("-")[0])
} \ No newline at end of file
diff --git a/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb b/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb
deleted file mode 100644
index 4c38df4027..0000000000
--- a/meta-oe/recipes-multimedia/alsa/alsa-oss_1.1.8.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Alsa OSS Compatibility Package"
-SECTION = "libs/multimedia"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ed055b4eff93da784176a01582e6ec1a"
-DEPENDS = "alsa-lib"
-
-SRC_URI = "https://www.alsa-project.org/files/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
-"
-SRC_URI[md5sum] = "9ec4bb783fdce19032aace086d65d874"
-SRC_URI[sha256sum] = "64adcef5927e848d2e024e64c4bf85b6f395964d9974ec61905ae4cb8d35d68e"
-
-inherit autotools
-
-LEAD_SONAME = "libaoss.so.0"
-
-do_configure:prepend () {
- touch NEWS README AUTHORS ChangeLog
- sed -i "s/libaoss.so/${LEAD_SONAME}/" ${S}/alsa/aoss.in
-}
-
-# http://errors.yoctoproject.org/Errors/Details/186961/
-COMPATIBLE_HOST:libc-musl = 'null'
diff --git a/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb b/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb
index e91c81d703..a09f84381e 100644
--- a/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb
+++ b/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb
@@ -19,6 +19,8 @@ SRC_URI[sha256sum] = "ea2449ad3f201ec590d811db9da6d02ffc5e87a677d06b92ab15363d8c
inherit autotools lib_package pkgconfig
+CXXFLAGS += "-std=c++14"
+
DEPENDS = " \
asciidoc-native \
alsa-lib \
diff --git a/meta-oe/recipes-multimedia/audiofile/files/0001-fix-negative-shift-constants.patch b/meta-oe/recipes-multimedia/audiofile/files/0001-fix-negative-shift-constants.patch
index ecb3108050..4792a15e86 100644
--- a/meta-oe/recipes-multimedia/audiofile/files/0001-fix-negative-shift-constants.patch
+++ b/meta-oe/recipes-multimedia/audiofile/files/0001-fix-negative-shift-constants.patch
@@ -14,6 +14,8 @@ Upstrem-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
+Upstream-Status: Pending
+
libaudiofile/modules/SimpleModule.h | 2 +-
test/FloatToInt.cpp | 2 +-
test/IntToFloat.cpp | 2 +-
diff --git a/meta-oe/recipes-multimedia/audiofile/files/0002-fix-build-on-gcc6.patch b/meta-oe/recipes-multimedia/audiofile/files/0002-fix-build-on-gcc6.patch
index 2c66cf4d00..dea8187ccb 100644
--- a/meta-oe/recipes-multimedia/audiofile/files/0002-fix-build-on-gcc6.patch
+++ b/meta-oe/recipes-multimedia/audiofile/files/0002-fix-build-on-gcc6.patch
@@ -14,6 +14,8 @@ Upstrem-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
+Upstream-Status: Pending
+
test/NeXT.cpp | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch b/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch
index b3beb069eb..95a5ddd7dd 100644
--- a/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch
+++ b/meta-oe/recipes-multimedia/cdrkit/files/0001-define-__THROW-to-avoid-build-issue-with-musl.patch
@@ -8,6 +8,8 @@ http://autobuild.buildroot.net/results/d27/d2781e70b04a207e2e9397d888032294c7285
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
---
+Upstream-Status: Pending
+
genisoimage/sha256.h | 4 ++++
genisoimage/sha512.h | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Fix-fprintf-format-errors.patch b/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Fix-fprintf-format-errors.patch
index f52f71b632..1a2c1a91cf 100644
--- a/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Fix-fprintf-format-errors.patch
+++ b/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Fix-fprintf-format-errors.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] genisoimage: Fix fprintf format errors
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
genisoimage/genisoimage.c | 4 ++--
genisoimage/tree.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch b/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch
index 547a21c67f..47c12928b7 100644
--- a/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch
+++ b/meta-oe/recipes-multimedia/cdrkit/files/0002-Do-not-use-rcmd-on-build-with-musl.patch
@@ -8,6 +8,8 @@ on musl.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
include/xconfig.h.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-multimedia/faad2/faad2_2.10.0.bb b/meta-oe/recipes-multimedia/faad2/faad2_2.10.0.bb
deleted file mode 100644
index 1b42360739..0000000000
--- a/meta-oe/recipes-multimedia/faad2/faad2_2.10.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "An open source MPEG-4 and MPEG-2 AAC decoding library"
-HOMEPAGE = "http://www.audiocoding.com/faad2.html"
-SECTION = "libs"
-LICENSE = "GPL-2.0-only"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=381c8cbe277a7bc1ee2ae6083a04c958"
-
-LICENSE_FLAGS = "commercial"
-
-PV .= "+git${SRCPV}"
-
-SRC_URI = "git://github.com/knik0/faad2.git;branch=master;protocol=https"
-SRCREV = "df42c6fc018552519d140e3d8ffe7046ed48b0cf"
-
-S = "${WORKDIR}/git"
-
-inherit autotools lib_package
diff --git a/meta-oe/recipes-multimedia/faad2/faad2_2.11.1.bb b/meta-oe/recipes-multimedia/faad2/faad2_2.11.1.bb
new file mode 100644
index 0000000000..bec9b75ebd
--- /dev/null
+++ b/meta-oe/recipes-multimedia/faad2/faad2_2.11.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "An open source MPEG-4 and MPEG-2 AAC decoding library"
+HOMEPAGE = "http://www.audiocoding.com/faad2.html"
+SECTION = "libs"
+LICENSE = "GPL-2.0-only"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=381c8cbe277a7bc1ee2ae6083a04c958"
+
+LICENSE_FLAGS = "commercial"
+
+PV .= "+git"
+
+SRC_URI = "git://github.com/knik0/faad2.git;branch=master;protocol=https"
+SRCREV = "216f00e8ddba6f2c64caf481a04f1ddd78b93e78"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch b/meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch
index 09edecc964..c8b546b179 100644
--- a/meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch
+++ b/meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch
@@ -1,6 +1,6 @@
Add a description to the AC_DEFINE statements so that it appears in config.h and silences a fatal warning.
-Upstream-Status:Pending
+Upstream-Status: Pending
Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
---
configure.in | 6 +++---
diff --git a/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb b/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb
index a7d645f59f..379c7e1b63 100644
--- a/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb
+++ b/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb
@@ -4,7 +4,6 @@ LICENSE = "LGPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
DEPENDS = "zlib"
-PR = "r1"
SRC_URI = "${SOURCEFORGE_MIRROR}/id3lib/id3lib-${PV}.tar.gz;name=archive \
${DEBIAN_MIRROR}/main/i/id3lib3.8.3/id3lib3.8.3_3.8.3-16.2.debian.tar.xz;name=patch;subdir=${BP} \
diff --git a/meta-oe/recipes-multimedia/jack/jack/0001-Conceal-imp-warnings-in-Python3.patch b/meta-oe/recipes-multimedia/jack/jack/0001-Conceal-imp-warnings-in-Python3.patch
new file mode 100644
index 0000000000..8411d12caf
--- /dev/null
+++ b/meta-oe/recipes-multimedia/jack/jack/0001-Conceal-imp-warnings-in-Python3.patch
@@ -0,0 +1,34 @@
+From f864a2aa29377a77c3aef61ce917cc03d099c430 Mon Sep 17 00:00:00 2001
+From: Thomas Nagy <tnagy@waf.io>
+Date: Wed, 14 Aug 2019 22:05:45 +0200
+Subject: [PATCH] Conceal imp warnings in Python3
+
+---
+Upstream-Status: Backport [from waflib not jack: https://gitlab.com/ita1024/waf/-/commit/d2060dfd8af4edb5824153ff24e207b39ecd67a2.patch]
+
+ waflib/Context.py | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/waflib/Context.py b/waflib/Context.py
+index 761b521f..38ab03f1 100644
+--- a/waflib/Context.py
++++ b/waflib/Context.py
+@@ -6,10 +6,17 @@
+ Classes and functions enabling the command system
+ """
+
+-import os, re, imp, sys
++import os, re, sys
+ from waflib import Utils, Errors, Logs
+ import waflib.Node
+
++if sys.hexversion > 0x3040000:
++ import types
++ class imp(object):
++ new_module = lambda x: types.ModuleType(x)
++else:
++ import imp
++
+ # the following 3 constants are updated on each new release (do not touch)
+ HEXVERSION=0x2000c00
+ """Constant updated on new releases"""
diff --git a/meta-oe/recipes-multimedia/jack/jack/0002-Fix-all-DeprecationWarning-invalid-escape-sequence.patch b/meta-oe/recipes-multimedia/jack/jack/0002-Fix-all-DeprecationWarning-invalid-escape-sequence.patch
new file mode 100644
index 0000000000..cbced56a67
--- /dev/null
+++ b/meta-oe/recipes-multimedia/jack/jack/0002-Fix-all-DeprecationWarning-invalid-escape-sequence.patch
@@ -0,0 +1,229 @@
+From bcba27168d99a3919b730e6a533cf79ab3b24eee Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micka=C3=ABl=20Schoentgen?= <contact@tiger-222.fr>
+Date: Sat, 5 Jan 2019 12:02:42 +0100
+Subject: [PATCH] Fix all DeprecationWarning: invalid escape sequence
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Mickaël Schoentgen <contact@tiger-222.fr>
+---
+Upstream-Status: Backport [from waflib not jack: https://gitlab.com/ita1024/waf/-/commit/412a9b819e86a0061f990c7245f0f5db76d0eda3]
+
+ waflib/Build.py | 2 +-
+ waflib/ConfigSet.py | 2 +-
+ waflib/Context.py | 2 +-
+ waflib/Task.py | 2 +-
+ waflib/TaskGen.py | 2 +-
+ waflib/Tools/c_config.py | 2 +-
+ waflib/Tools/c_preproc.py | 6 +++---
+ waflib/Tools/msvc.py | 16 ++++++++--------
+ waflib/Utils.py | 2 +-
+ waflib/ansiterm.py | 2 +-
+ 10 files changed, 19 insertions(+), 19 deletions(-)
+
+diff --git a/waflib/Build.py b/waflib/Build.py
+index c9661df1..9e733c9e 100644
+--- a/waflib/Build.py
++++ b/waflib/Build.py
+@@ -104,7 +104,7 @@ class BuildContext(Context.Context):
+ """Amount of jobs to run in parallel"""
+
+ self.targets = Options.options.targets
+- """List of targets to build (default: \*)"""
++ """List of targets to build (default: \\*)"""
+
+ self.keep = Options.options.keep
+ """Whether the build should continue past errors"""
+diff --git a/waflib/ConfigSet.py b/waflib/ConfigSet.py
+index 84736c9c..901fba6c 100644
+--- a/waflib/ConfigSet.py
++++ b/waflib/ConfigSet.py
+@@ -11,7 +11,7 @@ The values put in :py:class:`ConfigSet` must be serializable (dicts, lists, stri
+
+ import copy, re, os
+ from waflib import Logs, Utils
+-re_imp = re.compile('^(#)*?([^#=]*?)\ =\ (.*?)$', re.M)
++re_imp = re.compile(r'^(#)*?([^#=]*?)\ =\ (.*?)$', re.M)
+
+ class ConfigSet(object):
+ """
+diff --git a/waflib/Context.py b/waflib/Context.py
+index 38ab03f1..5799a60a 100644
+--- a/waflib/Context.py
++++ b/waflib/Context.py
+@@ -614,7 +614,7 @@ class Context(ctx):
+ Logs.pprint(color, msg)
+
+ def load_special_tools(self, var, ban=[]):
+- """
++ r"""
+ Loads third-party extensions modules for certain programming languages
+ by trying to list certain files in the extras/ directory. This method
+ is typically called once for a programming language group, see for
+diff --git a/waflib/Task.py b/waflib/Task.py
+index 6aebc607..0c5cb994 100644
+--- a/waflib/Task.py
++++ b/waflib/Task.py
+@@ -1044,7 +1044,7 @@ def funex(c):
+ exec(c, dc)
+ return dc['f']
+
+-re_cond = re.compile('(?P<var>\w+)|(?P<or>\|)|(?P<and>&)')
++re_cond = re.compile(r'(?P<var>\w+)|(?P<or>\|)|(?P<and>&)')
+ re_novar = re.compile(r'^(SRC|TGT)\W+.*?$')
+ reg_act = re.compile(r'(?P<backslash>\\)|(?P<dollar>\$\$)|(?P<subst>\$\{(?P<var>\w+)(?P<code>.*?)\})', re.M)
+ def compile_fun_shell(line):
+diff --git a/waflib/TaskGen.py b/waflib/TaskGen.py
+index a74e6431..3776bac1 100644
+--- a/waflib/TaskGen.py
++++ b/waflib/TaskGen.py
+@@ -727,7 +727,7 @@ def sequence_order(self):
+ self.bld.prev = self
+
+
+-re_m4 = re.compile('@(\w+)@', re.M)
++re_m4 = re.compile(r'@(\w+)@', re.M)
+
+ class subst_pc(Task.Task):
+ """
+diff --git a/waflib/Tools/c_config.py b/waflib/Tools/c_config.py
+index d2b3c0d8..60cc0ecd 100644
+--- a/waflib/Tools/c_config.py
++++ b/waflib/Tools/c_config.py
+@@ -239,7 +239,7 @@ def validate_cfg(self, kw):
+
+ @conf
+ def exec_cfg(self, kw):
+- """
++ r"""
+ Executes ``pkg-config`` or other ``-config`` applications to collect configuration flags:
+
+ * if atleast_pkgconfig_version is given, check that pkg-config has the version n and return
+diff --git a/waflib/Tools/c_preproc.py b/waflib/Tools/c_preproc.py
+index 7e04b4a7..68e5f5ae 100644
+--- a/waflib/Tools/c_preproc.py
++++ b/waflib/Tools/c_preproc.py
+@@ -75,13 +75,13 @@ re_lines = re.compile(
+ re.IGNORECASE | re.MULTILINE)
+ """Match #include lines"""
+
+-re_mac = re.compile("^[a-zA-Z_]\w*")
++re_mac = re.compile(r"^[a-zA-Z_]\w*")
+ """Match macro definitions"""
+
+ re_fun = re.compile('^[a-zA-Z_][a-zA-Z0-9_]*[(]')
+ """Match macro functions"""
+
+-re_pragma_once = re.compile('^\s*once\s*', re.IGNORECASE)
++re_pragma_once = re.compile(r'^\s*once\s*', re.IGNORECASE)
+ """Match #pragma once statements"""
+
+ re_nl = re.compile('\\\\\r*\n', re.MULTILINE)
+@@ -660,7 +660,7 @@ def extract_macro(txt):
+ # empty define, assign an empty token
+ return (v, [[], [('T','')]])
+
+-re_include = re.compile('^\s*(<(?:.*)>|"(?:.*)")')
++re_include = re.compile(r'^\s*(<(?:.*)>|"(?:.*)")')
+ def extract_include(txt, defs):
+ """
+ Process a line in the form::
+diff --git a/waflib/Tools/msvc.py b/waflib/Tools/msvc.py
+index 17b347d4..ff58449d 100644
+--- a/waflib/Tools/msvc.py
++++ b/waflib/Tools/msvc.py
+@@ -281,7 +281,7 @@ def gather_wince_supported_platforms():
+
+ def gather_msvc_detected_versions():
+ #Detected MSVC versions!
+- version_pattern = re.compile('^(\d\d?\.\d\d?)(Exp)?$')
++ version_pattern = re.compile(r'^(\d\d?\.\d\d?)(Exp)?$')
+ detected_versions = []
+ for vcver,vcvar in (('VCExpress','Exp'), ('VisualStudio','')):
+ prefix = 'SOFTWARE\\Wow6432node\\Microsoft\\' + vcver
+@@ -367,7 +367,7 @@ def gather_wsdk_versions(conf, versions):
+ :param versions: list to modify
+ :type versions: list
+ """
+- version_pattern = re.compile('^v..?.?\...?.?')
++ version_pattern = re.compile(r'^v..?.?\...?.?')
+ try:
+ all_versions = Utils.winreg.OpenKey(Utils.winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Wow6432node\\Microsoft\\Microsoft SDKs\\Windows')
+ except OSError:
+@@ -525,7 +525,7 @@ def gather_icl_versions(conf, versions):
+ :param versions: list to modify
+ :type versions: list
+ """
+- version_pattern = re.compile('^...?.?\....?.?')
++ version_pattern = re.compile(r'^...?.?\....?.?')
+ try:
+ all_versions = Utils.winreg.OpenKey(Utils.winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Wow6432node\\Intel\\Compilers\\C++')
+ except OSError:
+@@ -579,7 +579,7 @@ def gather_intel_composer_versions(conf, versions):
+ :param versions: list to modify
+ :type versions: list
+ """
+- version_pattern = re.compile('^...?.?\...?.?.?')
++ version_pattern = re.compile(r'^...?.?\...?.?.?')
+ try:
+ all_versions = Utils.winreg.OpenKey(Utils.winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Wow6432node\\Intel\\Suites')
+ except OSError:
+@@ -683,7 +683,7 @@ def find_lt_names_msvc(self, libname, is_static=False):
+ if not is_static and ltdict.get('library_names', ''):
+ dllnames=ltdict['library_names'].split()
+ dll=dllnames[0].lower()
+- dll=re.sub('\.dll$', '', dll)
++ dll=re.sub(r'\.dll$', '', dll)
+ return (lt_libdir, dll, False)
+ elif ltdict.get('old_library', ''):
+ olib=ltdict['old_library']
+@@ -700,7 +700,7 @@ def find_lt_names_msvc(self, libname, is_static=False):
+ @conf
+ def libname_msvc(self, libname, is_static=False):
+ lib = libname.lower()
+- lib = re.sub('\.lib$','',lib)
++ lib = re.sub(r'\.lib$','',lib)
+
+ if lib in g_msvc_systemlibs:
+ return lib
+@@ -747,11 +747,11 @@ def libname_msvc(self, libname, is_static=False):
+ for libn in libnames:
+ if os.path.exists(os.path.join(path, libn)):
+ Logs.debug('msvc: lib found: %s', os.path.join(path,libn))
+- return re.sub('\.lib$', '',libn)
++ return re.sub(r'\.lib$', '',libn)
+
+ #if no lib can be found, just return the libname as msvc expects it
+ self.fatal('The library %r could not be found' % libname)
+- return re.sub('\.lib$', '', libname)
++ return re.sub(r'\.lib$', '', libname)
+
+ @conf
+ def check_lib_msvc(self, libname, is_static=False, uselib_store=None):
+diff --git a/waflib/Utils.py b/waflib/Utils.py
+index a0cc2a09..da1b73e7 100644
+--- a/waflib/Utils.py
++++ b/waflib/Utils.py
+@@ -730,7 +730,7 @@ def unversioned_sys_platform():
+ if s == 'cli' and os.name == 'nt':
+ # ironpython is only on windows as far as we know
+ return 'win32'
+- return re.split('\d+$', s)[0]
++ return re.split(r'\d+$', s)[0]
+
+ def nada(*k, **kw):
+ """
+diff --git a/waflib/ansiterm.py b/waflib/ansiterm.py
+index 0d20c637..027f0ad6 100644
+--- a/waflib/ansiterm.py
++++ b/waflib/ansiterm.py
+@@ -264,7 +264,7 @@ else:
+ 'u': pop_cursor,
+ }
+ # Match either the escape sequence or text not containing escape sequence
+- ansi_tokens = re.compile('(?:\x1b\[([0-9?;]*)([a-zA-Z])|([^\x1b]+))')
++ ansi_tokens = re.compile(r'(?:\x1b\[([0-9?;]*)([a-zA-Z])|([^\x1b]+))')
+ def write(self, text):
+ try:
+ wlock.acquire()
diff --git a/meta-oe/recipes-multimedia/jack/jack_1.19.21.bb b/meta-oe/recipes-multimedia/jack/jack_1.19.21.bb
deleted file mode 100644
index c9496233f6..0000000000
--- a/meta-oe/recipes-multimedia/jack/jack_1.19.21.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-DESCRIPTION = "jackdmp is a C++ version of the JACK low-latency audio \
-server for multi-processor machines. It is a new implementation of the \
-JACK server core features that aims in removing some limitations of \
-the JACK1 design. The activation system has been changed for a data \
-flow model and lock-free programming techniques for graph access have \
-been used to have a more dynamic and robust system."
-SECTION = "libs/multimedia"
-
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = " \
- file://common/jack/control.h;beginline=2;endline=21;md5=e6df0bf30cde8b3b825451459488195d \
- file://common/jack/jack.h;beginline=1;endline=19;md5=6b736ed6b810592b135480a5e853392e \
-"
-
-DEPENDS = "libsamplerate0 libsndfile1 readline"
-
-SRC_URI = "git://github.com/jackaudio/jack2.git;branch=master;protocol=https"
-SRCREV = "6b3c96d8aeef8aeb4b20f3aa647e6d01b4000ff8"
-
-S = "${WORKDIR}/git"
-
-inherit waf pkgconfig
-
-PACKAGECONFIG ??= "alsa"
-PACKAGECONFIG[alsa] = "--alsa=yes,--alsa=no,alsa-lib"
-# --dbus only stops building jackd -> add --classic
-PACKAGECONFIG[dbus] = "--dbus --classic,,dbus"
-PACKAGECONFIG[opus] = "--opus=yes,--opus=no,libopus"
-
-# portaudio is for windows builds only
-EXTRA_OECONF = "--portaudio=no"
-
-do_install:append() {
- if ! ${@bb.utils.contains('PACKAGECONFIG', 'dbus', True, False, d)}; then
- rm -f ${D}${bindir}/jack_control
- fi
-}
-
-PACKAGES =+ "libjack jack-server jack-utils"
-
-RDEPENDS:jack-dev:remove = "${PN} (= ${EXTENDPKGV})"
-
-FILES:libjack = "${libdir}/*.so.* ${libdir}/jack/*.so"
-FILES:jack-server = " \
- ${datadir}/dbus-1/services \
- ${bindir}/jackdbus \
- ${bindir}/jackd \
-"
-FILES:jack-utils = "${bindir}/*"
-
-FILES:${PN}-doc += " ${datadir}/jack-audio-connection-kit/reference/html/*"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-multimedia/jack/jack_1.9.22.bb b/meta-oe/recipes-multimedia/jack/jack_1.9.22.bb
new file mode 100644
index 0000000000..bb844e4ff1
--- /dev/null
+++ b/meta-oe/recipes-multimedia/jack/jack_1.9.22.bb
@@ -0,0 +1,59 @@
+DESCRIPTION = "jackdmp is a C++ version of the JACK low-latency audio \
+server for multi-processor machines. It is a new implementation of the \
+JACK server core features that aims in removing some limitations of \
+the JACK1 design. The activation system has been changed for a data \
+flow model and lock-free programming techniques for graph access have \
+been used to have a more dynamic and robust system."
+SECTION = "libs/multimedia"
+
+LICENSE = "GPL-2.0-only & GPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = " \
+ file://common/JackControlAPI.cpp;beginline=5;endline=19;md5=9d1921199e203163f160313243f853d6 \
+ file://common/JackControlAPI.h;beginline=4;endline=18;md5=9d1921199e203163f160313243f853d6 \
+ file://common/jack/jack.h;beginline=2;endline=17;md5=0a668d22ce661159cad28d1c3b8e66af \
+ file://common/JackServer.h;beginline=2;endline=17;md5=9bf0870727804a994ee2d19fd368d940 \
+"
+
+DEPENDS = "libsamplerate0 libsndfile1"
+
+SRC_URI = "git://github.com/jackaudio/jack2.git;branch=master;protocol=https \
+ file://0001-Conceal-imp-warnings-in-Python3.patch \
+ file://0002-Fix-all-DeprecationWarning-invalid-escape-sequence.patch \
+"
+SRCREV = "4f58969432339a250ce87fe855fb962c67d00ddb"
+
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+inherit waf pkgconfig
+
+PACKAGECONFIG ??= "alsa"
+PACKAGECONFIG[alsa] = "--alsa=yes,--alsa=no,alsa-lib"
+# --dbus only stops building jackd -> add --classic
+PACKAGECONFIG[dbus] = "--dbus --classic,,dbus"
+PACKAGECONFIG[opus] = "--opus=yes,--opus=no,libopus"
+
+# portaudio is for windows builds only
+EXTRA_OECONF = "--portaudio=no"
+
+do_install:append() {
+ if ! ${@bb.utils.contains('PACKAGECONFIG', 'dbus', True, False, d)}; then
+ rm -f ${D}${bindir}/jack_control
+ fi
+}
+
+PACKAGES =+ "libjack jack-server jack-utils"
+
+RDEPENDS:jack-dev:remove = "${PN} (= ${EXTENDPKGV})"
+
+FILES:libjack = "${libdir}/*.so.* ${libdir}/jack/*.so"
+FILES:jack-server = " \
+ ${datadir}/dbus-1/services \
+ ${bindir}/jackdbus \
+ ${bindir}/jackd \
+"
+FILES:jack-utils = "${bindir}/*"
+
+FILES:${PN}-doc += " ${datadir}/jack-audio-connection-kit/reference/html/*"
+
diff --git a/meta-oe/recipes-multimedia/libass/libass_0.16.0.bb b/meta-oe/recipes-multimedia/libass/libass_0.16.0.bb
deleted file mode 100644
index 6befd31b88..0000000000
--- a/meta-oe/recipes-multimedia/libass/libass_0.16.0.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format. It is mostly compatible with VSFilter."
-HOMEPAGE = "https://github.com/libass/libass"
-SECTION = "libs/multimedia"
-
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a42532a0684420bdb15556c3cdd49a75"
-
-DEPENDS = "fontconfig freetype fribidi harfbuzz"
-
-SRC_URI = "git://github.com/libass/libass.git;protocol=https;branch=master"
-SRCREV = "1af6240c5d1e499326146e0b88c987e626b13c23"
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG[asm] = "--enable-asm,--disable-asm,nasm-native"
-# use larger tiles in the rasterizer (better performance, slightly worse quality)
-PACKAGECONFIG[largetiles] = "--enable-large-tiles,--disable-large-tiles"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG:append:x86-64 = " asm"
-
-PACKAGES =+ "${PN}-tests"
-
-FILES:${PN}-tests = " \
- ${libdir}/test/test \
-"
diff --git a/meta-oe/recipes-multimedia/libass/libass_0.17.1.bb b/meta-oe/recipes-multimedia/libass/libass_0.17.1.bb
new file mode 100644
index 0000000000..800ad1b15e
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libass/libass_0.17.1.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format. It is mostly compatible with VSFilter."
+HOMEPAGE = "https://github.com/libass/libass"
+SECTION = "libs/multimedia"
+
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a42532a0684420bdb15556c3cdd49a75"
+
+DEPENDS = "fontconfig freetype fribidi harfbuzz"
+
+SRC_URI = "git://github.com/libass/libass.git;protocol=https;branch=0.17.1-branch"
+SRCREV = "e8ad72accd3a84268275a9385beb701c9284e5b3"
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG[asm] = "--enable-asm,--disable-asm,nasm-native"
+# use larger tiles in the rasterizer (better performance, slightly worse quality)
+PACKAGECONFIG[largetiles] = "--enable-large-tiles,--disable-large-tiles"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG:append:x86-64 = " asm"
+
+PACKAGES =+ "${PN}-tests"
+
+FILES:${PN}-tests = " \
+ ${libdir}/test/test \
+"
diff --git a/meta-oe/recipes-multimedia/libburn/libburn_1.5.4.bb b/meta-oe/recipes-multimedia/libburn/libburn_1.5.4.bb
deleted file mode 100644
index 99eda69643..0000000000
--- a/meta-oe/recipes-multimedia/libburn/libburn_1.5.4.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Library for reading, mastering and writing optical discs"
-HOMEPAGE = "http://libburnia-project.org/"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
-
-SRC_URI = "http://files.libburnia-project.org/releases/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "454d03ce31addb5b7dca62d213c9660e"
-SRC_URI[sha256sum] = "525059d10759c5cb8148eebc863bb510e311c663603da7bd2d21c46b7cf63b54"
-
-inherit autotools pkgconfig
diff --git a/meta-oe/recipes-multimedia/libcdio/libcdio/Drop-LIBCDIO_SOURCE_PATH-by-dropping-STRIP_FROM_PATH.patch b/meta-oe/recipes-multimedia/libcdio/libcdio/Drop-LIBCDIO_SOURCE_PATH-by-dropping-STRIP_FROM_PATH.patch
new file mode 100644
index 0000000000..0b25dff75e
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libcdio/libcdio/Drop-LIBCDIO_SOURCE_PATH-by-dropping-STRIP_FROM_PATH.patch
@@ -0,0 +1,43 @@
+From 08c1768aaeea86c522c0ef1705b9b6d434ebd3ae Mon Sep 17 00:00:00 2001
+From: Chris Lamb <chris@chris-lamb.co.uk>
+Date: Fri, 28 Jul 2017 11:49:13 +0100
+Subject: [PATCH] Drop LIBCDIO_SOURCE_PATH by dropping STRIP_FROM_PATH Doxygen
+ setup; it's not used as FULL_PATH_NAMES = no
+
+Source: https://sources.debian.org/data/main/libc/libcdio/2.1.0-4/debian/patches/Drop-LIBCDIO_SOURCE_PATH-by-dropping-STRIP_FROM_PATH.patch
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 5 -----
+ doc/doxygen/Doxyfile.in | 2 +-
+ 2 files changed, 1 insertion(+), 6 deletions(-)
+
+Index: b/configure.ac
+===================================================================
+--- a/configure.ac
++++ b/configure.ac
+@@ -557,11 +557,6 @@ AC_SUBST(HAVE_SOLARIS_CDROM)
+ AC_SUBST(HAVE_WIN32_CDROM)
+ AC_SUBST(HAVE_OS2_CDROM)
+
+-LIBCDIO_SOURCE_PATH="`pwd`"
+-AC_DEFINE_UNQUOTED(LIBCDIO_SOURCE_PATH, "$LIBCDIO_SOURCE_PATH",
+- [Full path to libcdio top_sourcedir.])
+-AC_SUBST(LIBCDIO_SOURCE_PATH)
+-
+ AC_CHECK_FUNCS( [chdir drand48 fseeko fseeko64 ftruncate geteuid getgid \
+ getuid getpwuid gettimeofday lseek64 lstat memcpy memset mkstemp rand \
+ seteuid setegid snprintf setenv strndup unsetenv tzset sleep \
+Index: b/doc/doxygen/Doxyfile.in
+===================================================================
+--- a/doc/doxygen/Doxyfile.in
++++ b/doc/doxygen/Doxyfile.in
+@@ -138,7 +138,7 @@ FULL_PATH_NAMES = NO
+ # If left blank the directory from which doxygen is run is used as the
+ # path to strip.
+
+-STRIP_FROM_PATH = @LIBCDIO_SOURCE_PATH@
++STRIP_FROM_PATH =
+
+ # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+ # the path mentioned in the documentation of a class, which tells
diff --git a/meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb b/meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb
index 62004ac440..8562462cba 100644
--- a/meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb
+++ b/meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb
@@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.bz2 \
file://0001-Fix-a-few-Werror-format-security-errors-with-mvprint.patch \
+ file://Drop-LIBCDIO_SOURCE_PATH-by-dropping-STRIP_FROM_PATH.patch \
"
SRC_URI[md5sum] = "aa7629e8f73662a762f64c444b901055"
diff --git a/meta-oe/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb b/meta-oe/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb
index 2f7edfb75c..850918d319 100644
--- a/meta-oe/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb
+++ b/meta-oe/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb
@@ -7,7 +7,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://version.h;beginline=1;endline=8;md5=86ac68b67f054b7afde9e149bbc3fe63"
SECTION = "libs"
DEPENDS = "zlib gperf-native"
-PR = "r7"
SRC_URI = "${SOURCEFORGE_MIRROR}/mad/libid3tag-${PV}.tar.gz \
file://addpkgconfig.patch \
diff --git a/meta-oe/recipes-multimedia/libjxl/libjxl_0.10.2.bb b/meta-oe/recipes-multimedia/libjxl/libjxl_0.10.2.bb
new file mode 100644
index 0000000000..eced6c7726
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libjxl/libjxl_0.10.2.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Reference implementation of JPEG XL (encoder and decoder)"
+HOMEPAGE = "https://github.com/libjxl/libjxl/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6a905a337cc228a1f68f0b5416f52a7f"
+
+inherit cmake pkgconfig mime
+
+DEPENDS = "highway brotli"
+
+SRC_URI = "gitsm://github.com/libjxl/libjxl.git;protocol=https;nobranch=1"
+
+SRCREV = "e1489592a770b989303b0edc5cc1dc447bbe0515"
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = " \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DJPEGXL_ENABLE_PLUGINS=ON \
+ -DBUILD_TESTING=OFF \
+ -DJPEGXL_WARNINGS_AS_ERRORS=OFF \
+ -DJPEGXL_ENABLE_SIZELESS_VECTORS=ON \
+ -DJPEGXL_ENABLE_SJPEG=OFF \
+ -DJPEGXL_ENABLE_BENCHMARK=OFF \
+ -DJPEGXL_ENABLE_EXAMPLES=OFF \
+ -DJPEGXL_ENABLE_MANPAGES=OFF \
+ -DJPEGXL_ENABLE_SKCMS=ON \
+ -DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
+ -DJPEGXL_FORCE_SYSTEM_HWY=ON \
+ -DJPEGXL_ENABLE_JNI=OFF \
+ -DJPEGXL_ENABLE_TCMALLOC=OFF \
+ -DJPEGXL_ENABLE_TOOLS=OFF \
+"
+
+PACKAGECONFIG ?= "mime gdk-pixbuf-loader"
+PACKAGECONFIG[gdk-pixbuf-loader] = "-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=ON,-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=OFF,gdk-pixbuf"
+PACKAGECONFIG[gimp] = "-DJPEGXL_ENABLE_PLUGIN_GIMP210=ON,-DJPEGXL_ENABLE_PLUGIN_GIMP210=OFF,gimp"
+PACKAGECONFIG[mime] = "-DJPEGXL_ENABLE_PLUGIN_MIME=ON,-DJPEGXL_ENABLE_PLUGIN_MIME=OFF"
+
+FILES:${PN} += "${libdir}/gdk-pixbuf-2.0 ${datadir}"
diff --git a/meta-oe/recipes-multimedia/libmad/libmad/0001-configure-Respect-the-cflags-from-environment.patch b/meta-oe/recipes-multimedia/libmad/libmad/0001-configure-Respect-the-cflags-from-environment.patch
new file mode 100644
index 0000000000..586782a348
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libmad/libmad/0001-configure-Respect-the-cflags-from-environment.patch
@@ -0,0 +1,47 @@
+From 26342d1c775205f661f5cf005b7e054a04f5d32e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 16 May 2023 10:14:57 -0700
+Subject: [PATCH] configure: Respect the cflags from environment
+
+This is needed with OE like cross-build envs where certain important
+flags maybe passed as global policy to aid cross compiling or
+reproducibility etc.
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -73,12 +73,9 @@ debug=""
+ optimize=""
+ profile=""
+
+-set -- $CFLAGS
+-CFLAGS=""
+-
+ if test "$GCC" = yes
+ then
+- CFLAGS="-Wall"
++ CFLAGS="$CFLAGS -Wall"
+ fi
+
+ while test $# -gt 0
+@@ -115,10 +112,13 @@ do
+ optimize="$optimize $1"
+ shift
+ ;;
+- *)
++ -*)
+ CFLAGS="$CFLAGS $1"
+ shift
+ ;;
++ *)
++ shift
++ ;;
+ esac
+ done
+
diff --git a/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch b/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch
index 70723f2d08..b9a444dc32 100644
--- a/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch
+++ b/meta-oe/recipes-multimedia/libmad/libmad/0004-Remove-clang-unsupported-compiler-flags.patch
@@ -4,6 +4,8 @@ Date: Tue, 16 Sep 2014 12:28:47 +0300
Subject: [PATCH 4/4] Remove clang unsupported compiler flags
---
+Upstream-Status: Pending
+
configure.ac | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb b/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb
index d3ac85ee0b..e70c8e3ed1 100644
--- a/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb
+++ b/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb
@@ -1,6 +1,6 @@
SUMMARY = "MPEG Audio Decoder library"
-HOMEPAGE = "http://sourceforge.net/projects/mad/"
-BUGTRACKER = "http://sourceforge.net/tracker/?group_id=12349&atid=112349"
+HOMEPAGE = "https://sourceforge.net/projects/mad/"
+BUGTRACKER = "https://sourceforge.net/tracker/?group_id=12349&atid=112349"
LICENSE = "GPL-2.0-or-later"
LICENSE_FLAGS = "commercial"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
@@ -8,18 +8,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://version.h;beginline=1;endline=8;md5=aa07311dd39288d4349f28e1de516454"
SECTION = "libs"
DEPENDS = "libid3tag"
-PR = "r3"
-SRC_URI = "ftp://ftp.mars.org/pub/mpeg/libmad-${PV}.tar.gz \
+SRC_URI = "https://downloads.sourceforge.net/mad/libmad-${PV}.tar.gz \
file://no-force-mem.patch \
file://add-pkgconfig.patch \
file://fix_for_mips_with_gcc-4.5.0.patch \
file://obsolete_automake_macros.patch \
file://automake-foreign.patch \
+ file://0001-configure-Respect-the-cflags-from-environment.patch \
"
SRC_URI:append:toolchain-clang = " file://0004-Remove-clang-unsupported-compiler-flags.patch "
-SRC_URI[md5sum] = "1be543bc30c56fb6bea1d7bf6a64e66c"
SRC_URI[sha256sum] = "bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690"
S = "${WORKDIR}/libmad-${PV}"
diff --git a/meta-oe/recipes-multimedia/libmodplug/libmodplug/0001-fastmix-Drop-register-storage-class-keyword.patch b/meta-oe/recipes-multimedia/libmodplug/libmodplug/0001-fastmix-Drop-register-storage-class-keyword.patch
new file mode 100644
index 0000000000..dfdaf810d8
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libmodplug/libmodplug/0001-fastmix-Drop-register-storage-class-keyword.patch
@@ -0,0 +1,38 @@
+From 7a25d5def379db387de9237f0b03605b3ae277b6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 17 Jan 2023 11:32:59 -0800
+Subject: [PATCH] fastmix: Drop 'register' storage class keyword
+
+It has been dropped from laters C/C++ standards ( c++17 and newer )
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/fastmix.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/fastmix.cpp b/src/fastmix.cpp
+index d693d20..aa51c4a 100644
+--- a/src/fastmix.cpp
++++ b/src/fastmix.cpp
+@@ -288,7 +288,7 @@ CzWINDOWEDFIR sfir;
+ // MIXING MACROS
+ // ----------------------------------------------------------------------------
+ #define SNDMIX_BEGINSAMPLELOOP8\
+- register MODCHANNEL * const pChn = pChannel;\
++ MODCHANNEL * const pChn = pChannel;\
+ nPos = pChn->nPosLo;\
+ const signed char *p = (signed char *)(pChn->pCurrentSample+pChn->nPos);\
+ if (pChn->dwFlags & CHN_STEREO) p += pChn->nPos;\
+@@ -296,7 +296,7 @@ CzWINDOWEDFIR sfir;
+ do {
+
+ #define SNDMIX_BEGINSAMPLELOOP16\
+- register MODCHANNEL * const pChn = pChannel;\
++ MODCHANNEL * const pChn = pChannel;\
+ nPos = pChn->nPosLo;\
+ const signed short *p = (signed short *)(pChn->pCurrentSample+(pChn->nPos*2));\
+ if (pChn->dwFlags & CHN_STEREO) p += pChn->nPos;\
+--
+2.39.0
+
diff --git a/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.9.0.bb b/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.9.0.bb
index 144c737e76..e04e763776 100644
--- a/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.9.0.bb
+++ b/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.9.0.bb
@@ -4,8 +4,9 @@ HOMEPAGE = "http://modplug-xmms.sf.net"
LICENSE = "PD"
LIC_FILES_CHKSUM = "file://COPYING;md5=c9182faa1f7c316f7b97d404bcbe3685"
-SRC_URI = "${SOURCEFORGE_MIRROR}/modplug-xmms/libmodplug-${PV}.tar.gz"
-SRC_URI[md5sum] = "5ba16981e6515975e9a68a58d5ba69d1"
+SRC_URI = "${SOURCEFORGE_MIRROR}/modplug-xmms/libmodplug-${PV}.tar.gz \
+ file://0001-fastmix-Drop-register-storage-class-keyword.patch"
+
SRC_URI[sha256sum] = "457ca5a6c179656d66c01505c0d95fafaead4329b9dbaa0f997d00a3508ad9de"
inherit autotools pkgconfig
diff --git a/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb b/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb
deleted file mode 100644
index 830bc04734..0000000000
--- a/meta-oe/recipes-multimedia/libopus/libopus_1.3.1.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "Opus Audio Codec"
-DESCRIPTION = "The Opus codec is designed for interactive \
-speech and audio transmission over the Internet. It is \
-designed by the IETF Codec Working Group and incorporates \
-technology from Skype's SILK codec and Xiph.Org's CELT codec."
-HOMEPAGE = "http://www.opus-codec.org/"
-SECTION = "libs/multimedia"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e304cdf74c2a1b0a33a5084c128a23a3"
-
-SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz"
-SRC_URI[md5sum] = "d7c07db796d21c9cf1861e0c2b0c0617"
-SRC_URI[sha256sum] = "65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d"
-
-S = "${WORKDIR}/opus-${PV}"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[fixed-point] = "--enable-fixed-point,,"
-PACKAGECONFIG[float-approx] = "--enable-float-approx,,"
-
-EXTRA_OECONF = " \
- --with-NE10-includes=${STAGING_DIR_TARGET}${includedir} \
- --with-NE10-libraries=${STAGING_DIR_TARGET}${libdir} \
- --enable-asm \
- --enable-intrinsics \
- --enable-custom-modes \
-"
-
-# ne10 is available only for armv7a, armv7ve and aarch64
-DEPENDS:append:aarch64 = " ne10"
-DEPENDS:append:armv7a = " ne10"
-DEPENDS:append:armv7ve = " ne10"
-
-python () {
- if d.getVar('TARGET_FPU') in [ 'soft' ]:
- d.appendVar('PACKAGECONFIG', ' fixed-point')
-}
-
-# Fails to build with thumb-1 (qemuarm)
-#| {standard input}: Assembler messages:
-#| {standard input}:389: Error: selected processor does not support Thumb mode `smull r5,r7,r1,r4'
-#| {standard input}:418: Error: selected processor does not support Thumb mode `smull r5,r6,r4,r1'
-#| {standard input}:448: Error: selected processor does not support Thumb mode `smull r4,r5,r1,r0'
-#| {standard input}:474: Error: selected processor does not support Thumb mode `smull r0,r4,r8,r1'
-#| {standard input}:510: Error: selected processor does not support Thumb mode `smull fp,r0,r10,r1'
-#| {standard input}:553: Error: selected processor does not support Thumb mode `smull fp,r1,r10,r3'
-#| {standard input}:741: Error: selected processor does not support Thumb mode `smull r3,r0,r6,r10'
-#| {standard input}:761: Error: selected processor does not support Thumb mode `smull fp,r2,r3,r9'
-#| {standard input}:773: Error: selected processor does not support Thumb mode `smull fp,r3,r5,r8'
-#| make[2]: *** [celt/celt.lo] Error 1
-ARM_INSTRUCTION_SET:armv5 = "arm"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-multimedia/libopus/libopus_1.5.1.bb b/meta-oe/recipes-multimedia/libopus/libopus_1.5.1.bb
new file mode 100644
index 0000000000..4ce6dd2026
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libopus/libopus_1.5.1.bb
@@ -0,0 +1,56 @@
+SUMMARY = "Opus Audio Codec"
+DESCRIPTION = "The Opus codec is designed for interactive \
+speech and audio transmission over the Internet. It is \
+designed by the IETF Codec Working Group and incorporates \
+technology from Skype's SILK codec and Xiph.Org's CELT codec."
+HOMEPAGE = "http://www.opus-codec.org/"
+SECTION = "libs/multimedia"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4b365c2155d66e550e1447075d6744a5"
+
+SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz"
+SRC_URI[sha256sum] = "b84610959b8d417b611aa12a22565e0a3732097c6389d19098d844543e340f85"
+
+S = "${WORKDIR}/opus-${PV}"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[fixed-point] = "--enable-fixed-point,,"
+PACKAGECONFIG[float-approx] = "--enable-float-approx,,"
+
+EXTRA_OECONF = " \
+ --with-NE10-includes=${STAGING_DIR_TARGET}${includedir} \
+ --with-NE10-libraries=${STAGING_DIR_TARGET}${libdir} \
+ --enable-asm \
+ --enable-intrinsics \
+ --enable-custom-modes \
+"
+
+# ne10 is available only for armv7a, armv7ve and aarch64
+DEPENDS:append:aarch64 = " ne10"
+DEPENDS:append:armv7a = "${@bb.utils.contains("TUNE_FEATURES","neon"," ne10","",d)}"
+DEPENDS:append:armv7ve = "${@bb.utils.contains("TUNE_FEATURES","neon"," ne10","",d)}"
+
+python () {
+ if d.getVar('TARGET_FPU') in [ 'soft' ]:
+ d.appendVar('PACKAGECONFIG', ' fixed-point')
+}
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:389: Error: selected processor does not support Thumb mode `smull r5,r7,r1,r4'
+#| {standard input}:418: Error: selected processor does not support Thumb mode `smull r5,r6,r4,r1'
+#| {standard input}:448: Error: selected processor does not support Thumb mode `smull r4,r5,r1,r0'
+#| {standard input}:474: Error: selected processor does not support Thumb mode `smull r0,r4,r8,r1'
+#| {standard input}:510: Error: selected processor does not support Thumb mode `smull fp,r0,r10,r1'
+#| {standard input}:553: Error: selected processor does not support Thumb mode `smull fp,r1,r10,r3'
+#| {standard input}:741: Error: selected processor does not support Thumb mode `smull r3,r0,r6,r10'
+#| {standard input}:761: Error: selected processor does not support Thumb mode `smull fp,r2,r3,r9'
+#| {standard input}:773: Error: selected processor does not support Thumb mode `smull fp,r3,r5,r8'
+#| make[2]: *** [celt/celt.lo] Error 1
+ARM_INSTRUCTION_SET:armv5 = "arm"
+
+BBCLASSEXTEND = "native nativesdk"
+
+CVE_PRODUCT += "opus-codec:opus"
diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.34.1.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.34.1.bb
deleted file mode 100644
index c600e88f88..0000000000
--- a/meta-oe/recipes-multimedia/mplayer/mpv_0.34.1.bb
+++ /dev/null
@@ -1,115 +0,0 @@
-SUMMARY = "Open Source multimedia player"
-DESCRIPTION = "mpv is a fork of mplayer2 and MPlayer. It shares some features with the former projects while introducing many more."
-SECTION = "multimedia"
-HOMEPAGE = "http://www.mpv.io/"
-
-DEPENDS = " \
- zlib \
- ffmpeg \
- jpeg \
- libv4l \
- libass \
-"
-
-DEPENDS += " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' virtual/libx11 xsp libxv libxscrnsaver libxinerama', '', d)} \
-"
-
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRCREV_mpv = "349e437466163cb52f7d0aa227d4606edd9db501"
-SRC_URI = "git://github.com/mpv-player/mpv;name=mpv;branch=release/0.34;protocol=https \
- https://waf.io/waf-2.0.20;name=waf;subdir=git \
- "
-SRC_URI[waf.sha256sum] = "bf971e98edc2414968a262c6aa6b88541a26c3cd248689c89f4c57370955ee7f"
-
-S = "${WORKDIR}/git"
-
-inherit waf pkgconfig mime-xdg
-
-LDFLAGS:append:riscv64 = " -latomic"
-
-LUA ?= "lua"
-LUA:mips64 = ""
-LUA:powerpc64 = ""
-LUA:powerpc64le = ""
-LUA:riscv64 = ""
-LUA:riscv32 = ""
-LUA:powerpc = ""
-
-# Note: lua is required to get on-screen-display (controls)
-PACKAGECONFIG ??= " \
- ${LUA} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \
-"
-
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11"
-PACKAGECONFIG[xv] = "--enable-xv,--disable-xv,libxv"
-PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
-PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl"
-PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
-PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgbm"
-PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit"
-PACKAGECONFIG[libarchive] = "--enable-libarchive,--disable-libarchive,libarchive"
-PACKAGECONFIG[jack] = "--enable-jack, --disable-jack, jack"
-PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
-PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
-PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native libxkbcommon"
-
-python __anonymous() {
- packageconfig = (d.getVar("PACKAGECONFIG") or "").split()
- extras = []
- if "x11" in packageconfig and "opengl" in packageconfig:
- extras.append(" --enable-gl-x11")
- if "x11" in packageconfig and "egl" in packageconfig:
- extras.append(" --enable-egl-x11")
- if "egl" in packageconfig and "drm" in packageconfig:
- extras.append(" --enable-egl-drm")
- if "vaapi" in packageconfig and "x11" in packageconfig:
- extras.append(" --enable-vaapi-x11")
- if "vaapi" in packageconfig and "drm" in packageconfig:
- extras.append(" --enable-vaapi-drm")
- if "vaapi" in packageconfig and "x11" in packageconfig and "egl" in packageconfig:
- extras.append(" --enable-vaapi-x-egl")
- if "vdpau" in packageconfig and "opengl" in packageconfig and "x11" in packageconfig:
- extras.append(" --enable-vdpau-gl-x11")
- if "wayland" in packageconfig and "opengl" in packageconfig:
- extras.append(" --enable-gl-wayland")
- if "wayland" in packageconfig and "vaapi" in packageconfig:
- extras.append(" --enable-vaapi-wayland")
- if extras:
- d.appendVar("EXTRA_OECONF", "".join(extras))
-}
-
-SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}"
-
-EXTRA_OECONF = " \
- --prefix=${prefix} \
- --target=${SIMPLE_TARGET_SYS} \
- --confdir=${sysconfdir} \
- --datadir=${datadir} \
- --disable-manpage-build \
- --disable-libbluray \
- --disable-dvdnav \
- --disable-cdda \
- --disable-uchardet \
- --disable-rubberband \
- --disable-lcms2 \
- --disable-vapoursynth \
- ${PACKAGECONFIG_CONFARGS} \
-"
-
-link_waf() {
- ln -s waf-2.0.20 ${S}/waf
-}
-do_unpack[postfuncs] += "link_waf"
-
-FILES:${PN} += " \
- ${datadir}/icons \
- ${datadir}/zsh \
- ${datadir}/bash-completion \
- "
-EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}"
diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.35.1.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.35.1.bb
new file mode 100644
index 0000000000..0f50a6e8fe
--- /dev/null
+++ b/meta-oe/recipes-multimedia/mplayer/mpv_0.35.1.bb
@@ -0,0 +1,116 @@
+SUMMARY = "Open Source multimedia player"
+DESCRIPTION = "mpv is a fork of mplayer2 and MPlayer. It shares some features with the former projects while introducing many more."
+SECTION = "multimedia"
+HOMEPAGE = "http://www.mpv.io/"
+
+DEPENDS = " \
+ zlib \
+ ffmpeg \
+ jpeg \
+ libv4l \
+ libass \
+"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRCREV_mpv = "140ec21c89d671d392877a7f3b91d67e7d7b9239"
+SRC_URI = "git://github.com/mpv-player/mpv;name=mpv;branch=release/0.35;protocol=https \
+ https://waf.io/waf-2.0.25;name=waf;subdir=git \
+ "
+SRC_URI[waf.sha256sum] = "21199cd220ccf60434133e1fd2ab8c8e5217c3799199c82722543970dc8e38d5"
+
+S = "${WORKDIR}/git"
+
+inherit waf pkgconfig mime-xdg
+
+LDFLAGS:append:riscv64 = " -latomic"
+
+LUA ?= "lua"
+LUA:mips64 = ""
+LUA:powerpc64 = ""
+LUA:powerpc64le = ""
+LUA:riscv64 = ""
+LUA:riscv32 = ""
+LUA:powerpc = ""
+
+# Note: lua is required to get on-screen-display (controls)
+PACKAGECONFIG ??= " \
+ ${LUA} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \
+"
+
+PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 xsp libxv libxscrnsaver libxinerama libxpresent libxext"
+PACKAGECONFIG[xv] = "--enable-xv,--disable-xv,libxv"
+PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
+PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl"
+PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
+PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgbm"
+PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit"
+PACKAGECONFIG[libarchive] = "--enable-libarchive,--disable-libarchive,libarchive"
+PACKAGECONFIG[jack] = "--enable-jack, --disable-jack, jack"
+PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
+PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
+PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native libxkbcommon"
+
+python __anonymous() {
+ packageconfig = (d.getVar("PACKAGECONFIG") or "").split()
+ extras = []
+ if "x11" in packageconfig and "opengl" in packageconfig:
+ extras.append(" --enable-gl-x11")
+ if "x11" in packageconfig and "egl" in packageconfig:
+ extras.append(" --enable-egl-x11")
+ if "egl" in packageconfig and "drm" in packageconfig:
+ extras.append(" --enable-egl-drm")
+ if "vaapi" in packageconfig and "x11" in packageconfig:
+ extras.append(" --enable-vaapi-x11")
+ if "vaapi" in packageconfig and "drm" in packageconfig:
+ extras.append(" --enable-vaapi-drm")
+ if "vaapi" in packageconfig and "x11" in packageconfig and "egl" in packageconfig:
+ extras.append(" --enable-vaapi-x-egl")
+ if "vdpau" in packageconfig and "opengl" in packageconfig and "x11" in packageconfig:
+ extras.append(" --enable-vdpau-gl-x11")
+ if "wayland" in packageconfig and "opengl" in packageconfig:
+ extras.append(" --enable-gl-wayland")
+ if "wayland" in packageconfig and "vaapi" in packageconfig:
+ extras.append(" --enable-vaapi-wayland")
+ if extras:
+ d.appendVar("EXTRA_OECONF", "".join(extras))
+}
+
+SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}"
+
+EXTRA_OECONF = " \
+ --prefix=${prefix} \
+ --target=${SIMPLE_TARGET_SYS} \
+ --confdir=${sysconfdir} \
+ --datadir=${datadir} \
+ --disable-manpage-build \
+ --disable-libbluray \
+ --disable-dvdnav \
+ --disable-cdda \
+ --disable-uchardet \
+ --disable-rubberband \
+ --disable-lcms2 \
+ --disable-vapoursynth \
+ ${PACKAGECONFIG_CONFARGS} \
+"
+
+do_configure:append() {
+ sed -i -e 's#${WORKDIR}#<WORKDIR>#g' ${B}/config.h
+}
+
+link_waf() {
+ ln -s waf-2.0.25 ${S}/waf
+}
+do_unpack[postfuncs] += "link_waf"
+
+FILES:${PN} += " \
+ ${datadir}/icons \
+ ${datadir}/zsh \
+ ${datadir}/bash-completion \
+ ${datadir}/metainfo \
+ "
+EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}"
diff --git a/meta-oe/recipes-multimedia/pulseaudio/paprefs_1.2.bb b/meta-oe/recipes-multimedia/pulseaudio/paprefs_1.2.bb
new file mode 100644
index 0000000000..6e4321dd7d
--- /dev/null
+++ b/meta-oe/recipes-multimedia/pulseaudio/paprefs_1.2.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "PulseAudio Preferences (paprefs) is a simple GTK based configuration dialog for the PulseAudio sound server."
+HOMEPAGE = "https://freedesktop.org/software/pulseaudio/paprefs/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "pulseaudio gtkmm3 gtk+3 libsigc++-3 glibmm"
+
+inherit meson pkgconfig features_check
+
+# paprefs.cc includes gdk/gdkx.h and gdkx.h isn't provided by gtk3 without x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "http://freedesktop.org/software/pulseaudio/paprefs/${BP}.tar.xz"
+
+SRC_URI[sha256sum] = "b3f21e40dc3936d15e3ffc910fb0c07c14b88e8c287715b456a948c17638f633"
+
+EXTRA_OEMESON = "-Dlynx=false"
+
+RDEPENDS:${PN} += "pulseaudio-server"
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch
deleted file mode 100644
index 8ac8fbe19e..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 0d5c0e9a75eca43667b0e29155b635e50622b66a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 27 Feb 2015 21:55:36 +0000
-Subject: [PATCH] Revert "media-ctl: Don't install libmediactl and
-
- libv4l2subdev"
-
-This reverts commit 0911dce53b08b0df3066be2c75f67e8a314d8729.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Conflicts:
- utils/media-ctl/Makefile.am
-
----
- utils/media-ctl/Makefile.am | 10 +++-------
- 1 file changed, 3 insertions(+), 7 deletions(-)
-
-diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am
-index c48c8d6..e255e16 100644
---- a/utils/media-ctl/Makefile.am
-+++ b/utils/media-ctl/Makefile.am
-@@ -1,8 +1,7 @@
--noinst_LTLIBRARIES = libmediactl.la libv4l2subdev.la
--
-+lib_LTLIBRARIES = libmediactl.la libv4l2subdev.la
- libmediactl_la_SOURCES = libmediactl.c mediactl-priv.h
--libmediactl_la_CFLAGS = -static $(LIBUDEV_CFLAGS)
--libmediactl_la_LDFLAGS = -static $(LIBUDEV_LIBS)
-+libmediactl_la_CFLAGS = $(LIBUDEV_CFLAGS)
-+libmediactl_la_LDFLAGS = $(LIBUDEV_LIBS)
-
- media-bus-format-names.h: ../../include/linux/media-bus-format.h
- $(AM_V_GEN) sed -e '/#define MEDIA_BUS_FMT/ ! d; s/.*FMT_//; /FIXED/ d; s/\t.*//; s/.*/{ \"&\", MEDIA_BUS_FMT_& },/;' \
-@@ -18,9 +17,6 @@ CLEANFILES = $(BUILT_SOURCES)
- nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES)
- libv4l2subdev_la_SOURCES = libv4l2subdev.c
- libv4l2subdev_la_LIBADD = libmediactl.la
--libv4l2subdev_la_CFLAGS = -static
--libv4l2subdev_la_LDFLAGS = -static
--
- mediactl_includedir=$(includedir)/mediactl
- noinst_HEADERS = mediactl.h v4l2subdev.h
-
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-keytable-meson-Restrict-the-installation-of-50-rc_ke.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-keytable-meson-Restrict-the-installation-of-50-rc_ke.patch
new file mode 100644
index 0000000000..64c01e4977
--- /dev/null
+++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-keytable-meson-Restrict-the-installation-of-50-rc_ke.patch
@@ -0,0 +1,46 @@
+From 502c0302827cec3d2b2a69fb25189646685ef2ff Mon Sep 17 00:00:00 2001
+From: Fabio Estevam <festevam@denx.de>
+Date: Fri, 12 Jan 2024 00:17:14 -0300
+Subject: [PATCH] keytable: meson: Restrict the installation of
+ 50-rc_keymap.conf
+
+Currently, meson tries to install 50-rc_keymap.conf even if systemd
+is not used.
+
+Commit 01f2c6c58e6f ("keytable: restrict installation of 50-rc_keymap.conf"),
+only allowed 50-rc_keymap.conf to be installed when both BPF and systemd
+were used.
+
+Apply the same logic in meson to fix the problem.
+
+Signed-off-by: Fabio Estevam <festevam@denx.de>
+Signed-off-by: Sean Young <sean@mess.org>
+Upstream-Status: Backport [https://git.linuxtv.org/v4l-utils.git/commit/?id=a21924ec424c4744af6f2a794e0677eba35dd168]
+---
+ utils/keytable/meson.build | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/utils/keytable/meson.build b/utils/keytable/meson.build
+index 4130a4bea514..76ce329eae8e 100644
+--- a/utils/keytable/meson.build
++++ b/utils/keytable/meson.build
+@@ -69,6 +69,8 @@ ir_keytable_udev_rules = files(
+ install_data(ir_keytable_udev_rules,
+ install_dir : ir_keytable_system_dir / 'rules.d')
+
++if ir_bpf_enabled
++if dep_systemd.found()
+ if have_udevdsyscallfilter
+ ir_keytable_systemd_files = files(
+ '50-rc_keymap.conf',
+@@ -76,6 +78,8 @@ if have_udevdsyscallfilter
+ install_data(ir_keytable_systemd_files,
+ install_dir : systemd_systemdir / 'systemd-udevd.service.d')
+ endif
++endif
++endif
+
+ # Install non-existing directory to create empty directory structure
+ # See: https://github.com/mesonbuild/meson/issues/2904
+--
+2.34.1
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch
deleted file mode 100644
index 52fc2d7a8d..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 320b8378ee30eb5e0fe83a8b397f822f2f88a4c1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 1 Mar 2015 22:25:07 +0000
-Subject: [PATCH] %% original patch: mediactl-pkgconfig.patch
-
----
- utils/media-ctl/Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am
-index e255e16..ff7b417 100644
---- a/utils/media-ctl/Makefile.am
-+++ b/utils/media-ctl/Makefile.am
-@@ -20,6 +20,7 @@ libv4l2subdev_la_LIBADD = libmediactl.la
- mediactl_includedir=$(includedir)/mediactl
- noinst_HEADERS = mediactl.h v4l2subdev.h
-
-+pkgconfig_DATA = libmediactl.pc
- bin_PROGRAMS = media-ctl
- media_ctl_SOURCES = media-ctl.c options.c options.h tools.h
- media_ctl_LDADD = libmediactl.la libv4l2subdev.la
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-original-patch-export-mediactl-headers.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-original-patch-export-mediactl-headers.patch
deleted file mode 100644
index 39dc338350..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-original-patch-export-mediactl-headers.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From f7109d6b2fcb291824d795071c04a492d9fbc45b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 1 Mar 2015 22:25:07 +0000
-Subject: [PATCH] %% original patch: export-mediactl-headers.patch
-
----
- utils/media-ctl/Makefile.am | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am
-index ff7b417..6ce656f 100644
---- a/utils/media-ctl/Makefile.am
-+++ b/utils/media-ctl/Makefile.am
-@@ -17,8 +17,8 @@ CLEANFILES = $(BUILT_SOURCES)
- nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES)
- libv4l2subdev_la_SOURCES = libv4l2subdev.c
- libv4l2subdev_la_LIBADD = libmediactl.la
--mediactl_includedir=$(includedir)/mediactl
--noinst_HEADERS = mediactl.h v4l2subdev.h
-+otherincludedir = $(includedir)/mediactl
-+otherinclude_HEADERS = mediactl.h v4l2subdev.h
-
- pkgconfig_DATA = libmediactl.pc
- bin_PROGRAMS = media-ctl
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch
deleted file mode 100644
index d8d1b8d184..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From e4582c11f76b9390a3e172dcf0741dca90a9dc8d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 30 Nov 2019 18:50:34 -0800
-Subject: [PATCH] Do not use getsubopt
-
-POSIX says that behavior when subopts list is empty is undefined.
-musl libs will set value to NULL which leads to crash.
-
-Simply avoid getsubopt, since we cannot rely on it.
-
-Imported from Alpine Linux
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- utils/v4l2-ctl/v4l2-ctl-common.cpp | 18 ++++++++++--------
- 1 file changed, 10 insertions(+), 8 deletions(-)
-
-diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp
-index c940171..49c0f39 100644
---- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
-+++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
-@@ -956,15 +956,17 @@ static bool parse_subset(char *optarg)
-
- static bool parse_next_subopt(char **subs, char **value)
- {
-- static char *const subopts[] = {
-- nullptr
-- };
-- int opt = getsubopt(subs, subopts, value);
-+ char *p = *subs;
-+ *value = *subs;
-
-- if (opt < 0 || *value)
-- return false;
-- fprintf(stderr, "Missing suboption value\n");
-- return true;
-+ while (*p && *p != ',')
-+ p++;
-+
-+ if (*p)
-+ *p++ = '\0';
-+
-+ *subs = p;
-+ return false;
- }
-
- void common_cmd(const std::string &media_bus_info, int ch, char *optarg)
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb
deleted file mode 100644
index 741e1030cf..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "v4l2 and IR applications"
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=48da9957849056017dc568bbc43d8975 \
- file://COPYING.libv4l;md5=d749e86a105281d7a44c2328acebc4b0"
-PROVIDES = "libv4l media-ctl"
-
-DEPENDS = "jpeg \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
-DEPENDS:append:libc-musl = " argp-standalone"
-DEPENDS:append:class-target = " udev"
-LDFLAGS:append = " -pthread"
-
-inherit autotools gettext pkgconfig
-
-PACKAGECONFIG ??= "media-ctl"
-PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,,"
-
-SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \
- file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \
- file://0002-original-patch-mediactl-pkgconfig.patch \
- file://0003-original-patch-export-mediactl-headers.patch \
- file://0007-Do-not-use-getsubopt.patch \
- "
-
-SRC_URI[md5sum] = "8aa73287320a49e9170a8255d7b2c7e6"
-SRC_URI[sha256sum] = "65c6fbe830a44ca105c443b027182c1b2c9053a91d1e72ad849dfab388b94e31"
-
-EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev \
- --disable-v4l2-compliance-32 --disable-v4l2-ctl-32"
-
-VIRTUAL-RUNTIME_ir-keytable-keymaps ?= "rc-keymaps"
-
-PACKAGES =+ "media-ctl ir-keytable rc-keymaps libv4l libv4l-dev"
-
-RPROVIDES:${PN}-dbg += "libv4l-dbg"
-
-FILES:media-ctl = "${bindir}/media-ctl ${libdir}/libmediactl.so.*"
-
-FILES:ir-keytable = "${bindir}/ir-keytable ${base_libdir}/udev/rules.d/*-infrared.rules"
-RDEPENDS:ir-keytable += "${VIRTUAL-RUNTIME_ir-keytable-keymaps}"
-
-FILES:rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*"
-
-FILES:${PN} = "${bindir} ${sbindir}"
-
-FILES:libv4l += "${libdir}/libv4l*${SOLIBS} ${libdir}/libv4l/*.so ${libdir}/libv4l/plugins/*.so \
- ${libdir}/libdvbv5*${SOLIBS} \
- ${libdir}/libv4l/*-decomp"
-
-FILES:libv4l-dev += "${includedir} ${libdir}/pkgconfig \
- ${libdir}/libv4l*${SOLIBSDEV} ${libdir}/*.la \
- ${libdir}/v4l*${SOLIBSDEV} ${libdir}/libv4l/*.la ${libdir}/libv4l/plugins/*.la"
-
-PARALLEL_MAKE:class-native = ""
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.26.1.bb b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.26.1.bb
new file mode 100644
index 0000000000..52759ef18e
--- /dev/null
+++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.26.1.bb
@@ -0,0 +1,85 @@
+SUMMARY = "v4l2 and IR applications"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=48da9957849056017dc568bbc43d8975 \
+ file://COPYING.libv4l;md5=d749e86a105281d7a44c2328acebc4b0"
+PROVIDES = "libv4l media-ctl"
+
+DEPENDS = "jpeg \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa-lib', '', d)} \
+ ${@bb.utils.contains_any('PACKAGECONFIG', 'qv4l2 qvidcap', 'qtbase qtbase-native', '', d)}"
+
+DEPENDS:append:libc-musl = " argp-standalone"
+DEPENDS:append:class-target = " udev"
+LDFLAGS:append = " -pthread"
+# v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to
+# both 32 and 64 bit file APIs. But it does not handle the time side?
+# Needs further investigation
+GLIBC_64BIT_TIME_FLAGS = ""
+
+inherit meson gettext pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[qv4l2] = ",-Dqv4l2=disabled"
+PACKAGECONFIG[qvidcap] = ",-Dqvidcap=disabled"
+PACKAGECONFIG[v4l2-tracer] = ",-Dv4l2-tracer=disabled,json-c"
+
+SRC_URI = "\
+ git://git.linuxtv.org/v4l-utils.git;protocol=https;branch=stable-1.26 \
+ file://0001-keytable-meson-Restrict-the-installation-of-50-rc_ke.patch \
+"
+
+SRCREV = "4aee01a027923cab1e40969f56f8ba58d3e6c0d1"
+
+PV .= "+git"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMESON = "-Dudevdir=${base_libdir}/udev -Dv4l2-compliance-32=false -Dv4l2-ctl-32=false"
+
+# Disable the erroneous installation of gconv-modules that would break glib
+# like it is done in Debian and ArchLinux.
+EXTRA_OEMESON += "-Dgconv=disabled"
+
+VIRTUAL-RUNTIME_ir-keytable-keymaps ?= "rc-keymaps"
+
+PACKAGES =+ "media-ctl ir-keytable rc-keymaps libv4l libv4l-dev qv4l2 qvidcap"
+
+RPROVIDES:${PN}-dbg += "libv4l-dbg"
+
+FILES:media-ctl = "${bindir}/media-ctl ${libdir}/libmediactl.so.*"
+FILES:qv4l2 = "\
+ ${bindir}/qv4l2 \
+ ${datadir}/applications/qv4l2.desktop \
+ ${datadir}/icons/hicolor/*/apps/qv4l2.* \
+"
+FILES:qvidcap = "\
+ ${bindir}/qvidcap \
+ ${datadir}/applications/qvidcap.desktop \
+ ${datadir}/icons/hicolor/*/apps/qvidcap.* \
+"
+
+FILES:ir-keytable = "${bindir}/ir-keytable ${base_libdir}/udev/rules.d/*-infrared.rules"
+RDEPENDS:ir-keytable += "${VIRTUAL-RUNTIME_ir-keytable-keymaps}"
+RDEPENDS:qv4l2 += "\
+ ${@bb.utils.contains('PACKAGECONFIG', 'qv4l2', 'qtbase', '', d)}"
+RDEPENDS:qvidcap += "\
+ ${@bb.utils.contains('PACKAGECONFIG', 'qvidcap', 'qtbase', '', d)}"
+
+FILES:rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*"
+
+FILES:${PN} = "${bindir} ${sbindir}"
+
+FILES:libv4l += "${libdir}/libv4l*${SOLIBS} ${libdir}/libv4l/*.so ${libdir}/libv4l/plugins/*.so \
+ ${libdir}/libdvbv5*${SOLIBS} \
+ ${libdir}/libv4l/*-decomp \
+ ${libdir}/libv4l2tracer.so \
+"
+
+FILES:libv4l-dev += "${includedir} ${libdir}/pkgconfig \
+ ${libdir}/libv4l*${SOLIBSDEV} ${libdir}/*.la \
+ ${libdir}/v4l*${SOLIBSDEV} ${libdir}/libv4l/*.la ${libdir}/libv4l/plugins/*.la"
+
+PARALLEL_MAKE:class-native = ""
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb b/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb
index 10176634bd..3069528301 100644
--- a/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb
+++ b/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb
@@ -7,7 +7,6 @@ SRC_URI = "git://git.ideasonboard.org/yavta.git;branch=master \
SRCREV = "65f740aa1758531fd810339bc1b7d1d33666e28a"
PV = "0.0"
-PR = "r2"
S = "${WORKDIR}/git"
EXTRA_OEMAKE = "-e MAKEFLAGS="
diff --git a/meta-oe/recipes-multimedia/wavpack/files/extract-libtool-and-convert-to-soversion.patch b/meta-oe/recipes-multimedia/wavpack/files/extract-libtool-and-convert-to-soversion.patch
new file mode 100644
index 0000000000..d66ad4f268
--- /dev/null
+++ b/meta-oe/recipes-multimedia/wavpack/files/extract-libtool-and-convert-to-soversion.patch
@@ -0,0 +1,35 @@
+From 25e12cf5918884f232cebc34c92bd548fe40c2b3 Mon Sep 17 00:00:00 2001
+From: Anonymous Maarten <anonymous.maarten@gmail.com>
+Date: Fri, 9 Dec 2022 19:13:09 +0100
+Subject: [PATCH] cmake: extract libtool from configure.ac and convert to
+ SOVERSION
+
+Upstream-Status: Backport [https://github.com/dbry/WavPack/commit/25e12cf5918884f232cebc34c92bd548fe40c2b3]
+Signed-off-by: alperak <alperyasinak1@gmail.com>
+---
+ CMakeLists.txt | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index adc73b09..7ae5043f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -2,6 +2,18 @@ cmake_minimum_required(VERSION 3.2)
+
+ project(WavPack VERSION 5.6.0)
+
++file(READ "${CMAKE_CURRENT_SOURCE_DIR}/configure.ac" CONFIGURE_AC)
++string(REGEX MATCH "LT_CURRENT=([0-9]+)" LT_CURRENT "${CONFIGURE_AC}")
++set(LT_CURRENT "${CMAKE_MATCH_1}")
++string(REGEX MATCH "LT_REVISION=([0-9]+)" LT_REVISION "${CONFIGURE_AC}")
++set(LT_REVISION "${CMAKE_MATCH_1}")
++string(REGEX MATCH "LT_AGE=([0-9]+)" LT_AGE "${CONFIGURE_AC}")
++set(LT_AGE "${CMAKE_MATCH_1}")
++
++math(EXPR SOVERSION_MAJOR "${LT_CURRENT}-${LT_AGE}")
++math(EXPR SOVERSION_MINOR "${LT_AGE}")
++math(EXPR SOVERSION_MICRO "${LT_REVISION}")
++
+ # Languages
+
+ include(CheckLanguage)
diff --git a/meta-oe/recipes-multimedia/wavpack/files/set-soversion-and-version.patch b/meta-oe/recipes-multimedia/wavpack/files/set-soversion-and-version.patch
new file mode 100644
index 0000000000..faddb7b754
--- /dev/null
+++ b/meta-oe/recipes-multimedia/wavpack/files/set-soversion-and-version.patch
@@ -0,0 +1,26 @@
+From 7c1dd729302b7f77f65884df4e79301df1490423 Mon Sep 17 00:00:00 2001
+From: Anonymous Maarten <anonymous.maarten@gmail.com>
+Date: Fri, 9 Dec 2022 19:23:51 +0100
+Subject: [PATCH] cmake: set SOVERSION and VERSION property of wavpack
+
+This is used to version .so libraries on Linux
+
+Upstream-Status: Backport [https://github.com/dbry/WavPack/commit/7c1dd729302b7f77f65884df4e79301df1490423]
+Signed-off-by: alperak <alperyasinak1@gmail.com>
+---
+ CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7ae5043f..285b295b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -361,6 +361,8 @@ if(BUILD_SHARED_LIBS)
+ target_link_directories(wavpack PRIVATE "-Wl,-exported_symbols_list,${CMAKE_CURRENT_BINARY_DIR}/libwavpack.sym")
+ endif()
+ else()
++ set_target_properties(wavpack PROPERTIES SOVERSION "${SOVERSION_MAJOR}")
++ set_target_properties(wavpack PROPERTIES VERSION "${SOVERSION_MAJOR}.${SOVERSION_MINOR}.${SOVERSION_MICRO}")
+ set(CONFTTEST_CONTENTS "VERS_1 {\n global: sym;\n};\n\nVERS_2 {\n global: sym;\n} VERS_1;\n")
+ file(WRITE ${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/conftest.map "${CONFTTEST_CONTENTS}")
+ check_c_linker_flag("-Wl,--version-script=${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/conftest.map" COMPILER_SUPPORTS_SYMBOL_MAPS)
diff --git a/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb b/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb
deleted file mode 100644
index 021496bd43..0000000000
--- a/meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-DESCRIPTION = "WavPack is a completely open audio compression format providing lossless, high-quality lossy, and a unique hybrid compression mode."
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://license.txt;md5=f596650807588c61fcab60bec8242df8"
-
-SRC_URI = "http://wavpack.com/wavpack-${PV}.tar.bz2"
-SRC_URI[md5sum] = "7bb1528f910e4d0003426c02db856063"
-SRC_URI[sha256sum] = "175ee4f2effd6f51e6ec487956f41177256bf892c2e8e07de5d27ed4ee6888c5"
-
-inherit autotools lib_package
-
diff --git a/meta-oe/recipes-multimedia/wavpack/wavpack_5.6.0.bb b/meta-oe/recipes-multimedia/wavpack/wavpack_5.6.0.bb
new file mode 100644
index 0000000000..7384d2892f
--- /dev/null
+++ b/meta-oe/recipes-multimedia/wavpack/wavpack_5.6.0.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "WavPack is a completely open audio compression format providing lossless, high-quality lossy, and a unique hybrid compression mode."
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://license.txt;md5=bb5d037e3ad41a3c84c9f2d8bb65a7b4"
+
+DEPENDS = "openssl"
+
+SRC_URI = "git://github.com/dbry/WavPack.git;branch=master;protocol=https \
+ file://set-soversion-and-version.patch \
+ file://extract-libtool-and-convert-to-soversion.patch \
+ "
+
+SRCREV = "e03e8e29dc618e08e7baba9636e57ba1254874ce"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig lib_package
+
+EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
diff --git a/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch b/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch
index 6ad7f2b478..463651aa4a 100644
--- a/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch
+++ b/meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch
@@ -1,19 +1,20 @@
-From dc0a5c3d2dd4e79d12a150a246a95c4dc88326f1 Mon Sep 17 00:00:00 2001
+From 2829e6998b7595dd2108c1497fdd02485ef99e2c Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Tue, 16 Aug 2011 16:04:35 +0200
Subject: [PATCH] Upstream: not yet
Fix configure to accept "--prefix=" (a blank prefix).
+Upstream-Status: Pending
---
build/make/configure.sh | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/build/make/configure.sh b/build/make/configure.sh
-index 007e020..04d5cbf 100644
+index b645a666f..0b99a8b38 100644
--- a/build/make/configure.sh
+++ b/build/make/configure.sh
-@@ -581,6 +581,8 @@ process_common_cmdline() {
+@@ -658,6 +658,8 @@ process_common_cmdline() {
;;
--prefix=*)
prefix="${optval}"
@@ -22,7 +23,7 @@ index 007e020..04d5cbf 100644
;;
--libdir=*)
libdir="${optval}"
-@@ -614,13 +616,23 @@ process_cmdline() {
+@@ -687,13 +689,23 @@ process_cmdline() {
}
post_process_common_cmdline() {
diff --git a/meta-oe/recipes-multimedia/webm/libvpx_1.12.0.bb b/meta-oe/recipes-multimedia/webm/libvpx_1.12.0.bb
deleted file mode 100644
index 066d7cc815..0000000000
--- a/meta-oe/recipes-multimedia/webm/libvpx_1.12.0.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-SUMMARY = "VPX multi-format codec"
-DESCRIPTION = "The BSD-licensed libvpx reference implementation provides en- and decoders for VP8 and VP9 bitstreams."
-HOMEPAGE = "http://www.webmproject.org/code/"
-BUGTRACKER = "http://code.google.com/p/webm/issues/list"
-SECTION = "libs/multimedia"
-LICENSE = "BSD-3-Clause"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4"
-
-SRCREV = "03265cd42b3783532de72f2ded5436652e6f5ce3"
-SRC_URI += "git://chromium.googlesource.com/webm/libvpx;protocol=https;branch=main \
- file://libvpx-configure-support-blank-prefix.patch \
- "
-
-S = "${WORKDIR}/git"
-
-# ffmpeg links with this and fails
-# sysroots/armv4t-oe-linux-gnueabi/usr/lib/libvpx.a(vpx_encoder.c.o)(.text+0xc4): unresolvable R_ARM_THM_CALL relocation against symbol `memcpy@@GLIBC_2.4'
-ARM_INSTRUCTION_SET = "arm"
-
-CFLAGS += "-fPIC"
-
-export CC
-export LD = "${CC}"
-
-VPXTARGET:armv5te = "armv5te-linux-gcc"
-VPXTARGET:armv6 = "armv6-linux-gcc"
-VPXTARGET:armv7a = "armv7-linux-gcc"
-VPXTARGET ?= "generic-gnu"
-
-CONFIGUREOPTS = " \
- --target=${VPXTARGET} \
- --enable-vp9 \
- --enable-libs \
- --disable-install-docs \
- --disable-static \
- --enable-shared \
- --prefix=${prefix} \
- --libdir=${libdir} \
- --size-limit=16384x16384 \
-"
-
-do_configure() {
- ${S}/configure ${CONFIGUREOPTS}
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D}
- chown -R root:root ${D}
-}
diff --git a/meta-oe/recipes-multimedia/webm/libvpx_1.14.0.bb b/meta-oe/recipes-multimedia/webm/libvpx_1.14.0.bb
new file mode 100644
index 0000000000..b4d49842ea
--- /dev/null
+++ b/meta-oe/recipes-multimedia/webm/libvpx_1.14.0.bb
@@ -0,0 +1,51 @@
+SUMMARY = "VPX multi-format codec"
+DESCRIPTION = "The BSD-licensed libvpx reference implementation provides en- and decoders for VP8 and VP9 bitstreams."
+HOMEPAGE = "http://www.webmproject.org/code/"
+BUGTRACKER = "http://code.google.com/p/webm/issues/list"
+SECTION = "libs/multimedia"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4"
+
+SRCREV = "602e2e8979d111b02c959470da5322797dd96a19"
+SRC_URI += "git://chromium.googlesource.com/webm/libvpx;protocol=https;branch=main \
+ file://libvpx-configure-support-blank-prefix.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+# ffmpeg links with this and fails
+# sysroots/armv4t-oe-linux-gnueabi/usr/lib/libvpx.a(vpx_encoder.c.o)(.text+0xc4): unresolvable R_ARM_THM_CALL relocation against symbol `memcpy@@GLIBC_2.4'
+ARM_INSTRUCTION_SET = "arm"
+
+CFLAGS += "-fPIC"
+BUILD_LDFLAGS += "-pthread"
+
+export CC
+export LD = "${CC}"
+
+VPXTARGET:armv7a = "${@bb.utils.contains("TUNE_FEATURES","neon","armv7-linux-gcc","generic-gnu",d)}"
+VPXTARGET ?= "generic-gnu"
+
+CONFIGUREOPTS = " \
+ --target=${VPXTARGET} \
+ --enable-vp9 \
+ --enable-libs \
+ --disable-install-docs \
+ --disable-static \
+ --enable-shared \
+ --prefix=${prefix} \
+ --libdir=${libdir} \
+ --size-limit=16384x16384 \
+"
+
+do_configure() {
+ ${S}/configure ${CONFIGUREOPTS}
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+ chown -R root:root ${D}
+}
+
+BBCLASSEXTEND += "native"
diff --git a/meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch b/meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch
index da5841a132..ea9326946e 100644
--- a/meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch
+++ b/meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- configure.ac.old 2005-06-03 12:53:28.000000000 +0200
+++ configure.ac 2005-06-03 12:54:29.000000000 +0200
@@ -25,9 +25,9 @@
diff --git a/meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch b/meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch
index 18bc67cdd9..995f03113b 100644
--- a/meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch
+++ b/meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- Xsp/xsp.pc.in~ 2009-01-07 13:06:07.000000000 +0100
+++ Xsp/xsp.pc.in 2009-01-07 13:06:07.000000000 +0100
@@ -6,5 +6,5 @@
diff --git a/meta-oe/recipes-navigation/geoclue/geoclue/0001-libgeoclue-don-t-try-to-use-g-ir-scanner-when-intros.patch b/meta-oe/recipes-navigation/geoclue/geoclue/0001-libgeoclue-don-t-try-to-use-g-ir-scanner-when-intros.patch
new file mode 100644
index 0000000000..18e7185649
--- /dev/null
+++ b/meta-oe/recipes-navigation/geoclue/geoclue/0001-libgeoclue-don-t-try-to-use-g-ir-scanner-when-intros.patch
@@ -0,0 +1,30 @@
+From 6c434bdd31d674f85a82cb83248571813c7a37ff Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 3 May 2023 18:06:46 +0200
+Subject: [PATCH] libgeoclue: don't try to use g-ir-scanner when introspection
+ isn't enabled
+
+* it finds target g-ir-scanner, so gir is found(), but when it tries to call it, it fails:
+ http://errors.yoctoproject.org/Errors/Details/702778/
+ geoclue/2.7.0-r0/recipe-sysroot/usr/bin/g-ir-scanner-wrapper: line 5: g-ir-scanner: command not found
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+Upstream-Status: Pending
+
+ libgeoclue/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libgeoclue/meson.build b/libgeoclue/meson.build
+index 5f05dad..7ed06a1 100644
+--- a/libgeoclue/meson.build
++++ b/libgeoclue/meson.build
+@@ -77,7 +77,7 @@ gir_sources = [ libgeoclue_sources,
+ libgeoclue_headers,
+ libgeoclue_public_api_gen_sources[1] ]
+
+-if gir.found()
++if gir.found() and get_option('introspection')
+ geo_gir = gnome.generate_gir(libgeoclue,
+ sources: gir_sources,
+ namespace: 'Geoclue',
diff --git a/meta-oe/recipes-navigation/geoclue/geoclue_2.5.7.bb b/meta-oe/recipes-navigation/geoclue/geoclue_2.5.7.bb
deleted file mode 100644
index 3abb629446..0000000000
--- a/meta-oe/recipes-navigation/geoclue/geoclue_2.5.7.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-SUMMARY = "The Geolocation Service"
-DESCRIPTION = "Geoclue is a D-Bus service that provides location information. \
-The primary goal of the Geoclue project is to make creating location-aware applications \
-as simple as possible, while the secondary goal is to ensure that no application \
-can access location information without explicit permission from user."
-LICENSE = "GPL-2.0-or-later"
-SECTION = "console/network"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=bdfdd4986a0853eb84eeba85f9d0c4d6"
-
-DEPENDS = "glib-2.0 dbus json-glib libsoup-2.4 intltool-native"
-
-inherit meson pkgconfig gtk-doc gobject-introspection vala
-
-SRCREV = "3bb60dd600a8b247fd6049e7e5b1c73c2c5fc0e8"
-SRC_URI = "git://gitlab.freedesktop.org/geoclue/geoclue.git;protocol=https;nobranch=1"
-
-S = "${WORKDIR}/git"
-
-# Without this line, package is declared a library and named libgeoclue*
-AUTO_LIBNAME_PKGS = ""
-
-PACKAGECONFIG ??= "3g modem-gps cdma nmea lib"
-PACKAGECONFIG[3g] = "-D3g-source=true,-D3g-source=false,modemmanager"
-PACKAGECONFIG[modem-gps] = "-Dmodem-gps-source=true,-Dmodem-gps-source=false,modemmanager"
-PACKAGECONFIG[cdma] = "-Dcdma-source=true,-Dcdma-source=false,modemmanager"
-PACKAGECONFIG[nmea] = "-Dnmea-source=true,-Dnmea-source=false,avahi,avahi-daemon"
-PACKAGECONFIG[lib] = "-Dlibgeoclue=true,-Dlibgeoclue=false,gobject-introspection"
-
-GTKDOC_MESON_OPTION = "gtk-doc"
-
-EXTRA_OEMESON += " \
- -Ddbus-sys-dir=${sysconfdir}/dbus-1/system.d \
- -Ddemo-agent=false \
-"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1/system-services \
- ${libdir} \
- ${systemd_unitdir} \
- ${prefix}/libexec \
-"
-
-FILES:${PN}-dev += " \
- ${datadir}/dbus-1/interfaces \
- ${datadir}/gir-1.0 \
-"
diff --git a/meta-oe/recipes-navigation/geoclue/geoclue_2.7.1.bb b/meta-oe/recipes-navigation/geoclue/geoclue_2.7.1.bb
new file mode 100644
index 0000000000..9fcd1e6f1e
--- /dev/null
+++ b/meta-oe/recipes-navigation/geoclue/geoclue_2.7.1.bb
@@ -0,0 +1,61 @@
+SUMMARY = "The Geolocation Service"
+DESCRIPTION = "Geoclue is a D-Bus service that provides location information. \
+The primary goal of the Geoclue project is to make creating location-aware applications \
+as simple as possible, while the secondary goal is to ensure that no application \
+can access location information without explicit permission from user."
+LICENSE = "GPL-2.0-or-later"
+SECTION = "console/network"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=bdfdd4986a0853eb84eeba85f9d0c4d6"
+
+DEPENDS = "glib-2.0 dbus json-glib libsoup-3.0 intltool-native"
+
+inherit meson pkgconfig gtk-doc gobject-introspection vala useradd
+
+SRCREV = "8a24f60969d4c235d9918796c38a6a9c42e10131"
+SRC_URI = "git://gitlab.freedesktop.org/geoclue/geoclue.git;protocol=https;branch=master \
+ file://0001-libgeoclue-don-t-try-to-use-g-ir-scanner-when-intros.patch \
+"
+
+S = "${WORKDIR}/git"
+
+# Without this line, package is declared a library and named libgeoclue*
+AUTO_LIBNAME_PKGS = ""
+
+PACKAGECONFIG ??= "3g modem-gps cdma nmea lib agent"
+PACKAGECONFIG[3g] = "-D3g-source=true,-D3g-source=false,modemmanager"
+PACKAGECONFIG[modem-gps] = "-Dmodem-gps-source=true,-Dmodem-gps-source=false,modemmanager"
+PACKAGECONFIG[cdma] = "-Dcdma-source=true,-Dcdma-source=false,modemmanager"
+PACKAGECONFIG[nmea] = "-Dnmea-source=true,-Dnmea-source=false,avahi,avahi-daemon"
+PACKAGECONFIG[lib] = "-Dlibgeoclue=true,-Dlibgeoclue=false"
+PACKAGECONFIG[agent] = "-Ddemo-agent=true,-Ddemo-agent=false,libnotify"
+
+GTKDOC_MESON_OPTION = "gtk-doc"
+
+EXTRA_OEMESON += " \
+ -Ddbus-sys-dir=${sysconfdir}/dbus-1/system.d \
+"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 --shell /bin/nologin polkitd"
+
+do_install:append() {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'modem-gps', 'true', 'false', d)}; then
+ # Fix up permissions on polkit rules.d to work with rpm4 constraints
+ chmod 700 ${D}/${datadir}/polkit-1/rules.d
+ chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
+ fi
+}
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1/system-services \
+ ${datadir}/polkit-1/rules.d \
+ ${libdir} \
+ ${systemd_unitdir} \
+ ${prefix}/libexec \
+"
+
+FILES:${PN}-dev += " \
+ ${datadir}/dbus-1/interfaces \
+ ${datadir}/gir-1.0 \
+"
diff --git a/meta-oe/recipes-navigation/geos/geos.inc b/meta-oe/recipes-navigation/geos/geos.inc
deleted file mode 100644
index 484ca9154f..0000000000
--- a/meta-oe/recipes-navigation/geos/geos.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "GEOS - Geometry Engine, Open Source"
-HOMEPAGE = "http://trac.osgeo.org/geos/"
-SECTION = "libs"
-
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI = "http://download.osgeo.org/geos/geos-${PV}.tar.bz2"
-
-inherit autotools pkgconfig binconfig
-
-EXTRA_OECONF += "--enable-inline=no"
-
-PACKAGES =+ "geoslib ${PN}-c1"
-
-DESCRIPTION:${PN}lib = "Geometry engine for Geographic Information Systems - C++ Library"
-FILES:${PN}lib += "${libdir}/libgeos-${PV}.so"
-
-DESCRIPTION:${PN}-c1 = "Geometry engine for Geographic Information Systems - C Library"
-FILES:${PN}-c1 += "${libdir}/libgeos_c.so.*"
-
-ALLOW_EMPTY:${PN} = "1"
-RDEPENDS:${PN} += "geoslib ${PN}-c1"
diff --git a/meta-oe/recipes-navigation/geos/geos_3.12.1.bb b/meta-oe/recipes-navigation/geos/geos_3.12.1.bb
new file mode 100644
index 0000000000..461652a5ad
--- /dev/null
+++ b/meta-oe/recipes-navigation/geos/geos_3.12.1.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "GEOS - Geometry Engine, Open Source"
+HOMEPAGE = "http://trac.osgeo.org/geos/"
+SECTION = "libs"
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "http://download.osgeo.org/${BPN}/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "d6ea7e492224b51193e8244fe3ec17c4d44d0777f3c32ca4fb171140549a0d03"
+
+inherit cmake pkgconfig binconfig
+
+PACKAGES =+ "geoslib ${PN}-c1"
+
+DESCRIPTION:${PN}lib = "Geometry engine for Geographic Information Systems - C++ Library"
+FILES:${PN}lib += "${libdir}/libgeos.so.*"
+
+DESCRIPTION:${PN}-c1 = "Geometry engine for Geographic Information Systems - C Library"
+FILES:${PN}-c1 += "${libdir}/libgeos_c.so.*"
+
+ALLOW_EMPTY:${PN} = "1"
+RDEPENDS:${PN} += "geoslib ${PN}-c1"
diff --git a/meta-oe/recipes-navigation/geos/geos_3.9.3.bb b/meta-oe/recipes-navigation/geos/geos_3.9.3.bb
deleted file mode 100644
index fdb72204ea..0000000000
--- a/meta-oe/recipes-navigation/geos/geos_3.9.3.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require geos.inc
-
-SRC_URI[sha256sum] = "f8b2314e311456f7a449144efb5e3188c2a28774752bc50fc882a3cd5c89ee35"
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb
index 245f8728cb..a755e39ed4 100644
--- a/meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb
+++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb
@@ -143,6 +143,7 @@ FILES:python3-pygps = "${PYTHON_SITEPACKAGES_DIR}/* ${libdir}/gps/*.py ${libdir}
RDEPENDS:python3-pygps = " \
python3-core \
python3-io \
+ python3-pyserial \
python3-threading \
python3-terminal \
gpsd \
diff --git a/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_geos.patch b/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_geos.patch
index 7d8d2c2e46..569ea76bb5 100644
--- a/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_geos.patch
+++ b/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_geos.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -rupN --no-dereference libspatialite-5.0.1/configure.ac libspatialite-5.0.1-new/configure.ac
--- libspatialite-5.0.1/configure.ac 2021-03-08 08:57:19.015858195 +0100
+++ libspatialite-5.0.1-new/configure.ac 2021-03-08 08:57:19.017858195 +0100
diff --git a/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_macros.patch b/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_macros.patch
index 9b71ab7658..6f1c165f58 100644
--- a/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_macros.patch
+++ b/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_macros.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -rupN --no-dereference libspatialite-5.0.1/configure.ac libspatialite-5.0.1-new/configure.ac
--- libspatialite-5.0.1/configure.ac 2021-03-08 08:57:18.748858216 +0100
+++ libspatialite-5.0.1-new/configure.ac 2021-03-08 08:57:18.751858215 +0100
diff --git a/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_pkgconfig.patch b/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_pkgconfig.patch
index 149c126768..de6e50a58d 100644
--- a/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_pkgconfig.patch
+++ b/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_pkgconfig.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -rupN libspatialite-5.0.1/spatialite.pc.in libspatialite-5.0.1-new/spatialite.pc.in
--- libspatialite-5.0.1/spatialite.pc.in 2021-02-07 16:53:46.000000000 +0100
+++ libspatialite-5.0.1-new/spatialite.pc.in 2021-02-10 09:54:09.647552994 +0100
diff --git a/meta-oe/recipes-navigation/orrery/orrery/0001-Append-cflags-instead-of-overriding-in-Makefile.am.patch b/meta-oe/recipes-navigation/orrery/orrery/0001-Append-cflags-instead-of-overriding-in-Makefile.am.patch
new file mode 100644
index 0000000000..829ace09b5
--- /dev/null
+++ b/meta-oe/recipes-navigation/orrery/orrery/0001-Append-cflags-instead-of-overriding-in-Makefile.am.patch
@@ -0,0 +1,28 @@
+From e13f15205425c67e1101031a33107fa9cd2d65f9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 26 May 2023 10:32:53 -0700
+Subject: [PATCH] Append cflags instead of overriding in Makefile.am
+
+Fixes
+WARNING: orrery-2.7-r0 do_package_qa: QA Issue: File /usr/bin/.debug/orrery in package orrery-dbg contains reference to TMPDIR [buildpaths]
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index b64449f..23637b3 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,4 +1,4 @@
+-CFLAGS = -g -O3 -Wall
++CFLAGS += -g -O3 -Wall
+
+ bin_PROGRAMS = orrery
+ orrery_SOURCES = planetInfo.c orrery.c orrery.h phaseConstants.h
+--
+2.40.1
+
diff --git a/meta-oe/recipes-navigation/orrery/orrery/0001-orrery-Fix-sprintf-format.patch b/meta-oe/recipes-navigation/orrery/orrery/0001-orrery-Fix-sprintf-format.patch
index eb6241fdd0..3d5828011a 100644
--- a/meta-oe/recipes-navigation/orrery/orrery/0001-orrery-Fix-sprintf-format.patch
+++ b/meta-oe/recipes-navigation/orrery/orrery/0001-orrery-Fix-sprintf-format.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] orrery: Fix sprintf format
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
orrery.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch b/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch
index 92d194de08..2abb320d83 100644
--- a/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch
+++ b/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
From: Benjamin Deering
Subject: orrery crashing X
Date: Thursday, September 2, 2010 - 5:25 pm
diff --git a/meta-oe/recipes-navigation/orrery/orrery_2.7.bb b/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
index 100ecb1331..96a7018de2 100644
--- a/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
+++ b/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
@@ -13,6 +13,7 @@ SRC_URI = "http://projects.openmoko.org/frs/download.php/923/orrery_2.7_clean.ta
file://orrery.png \
file://use.GdkPixbuf.patch \
file://0001-orrery-Fix-sprintf-format.patch \
+ file://0001-Append-cflags-instead-of-overriding-in-Makefile.am.patch \
"
SRC_URI[md5sum] = "bd62a33e7554ee1030313dfcdefcda8b"
@@ -22,7 +23,7 @@ S = "${WORKDIR}/${BPN}"
do_configure:prepend() {
# fix DSO issue with binutils-2.22
- sed -i 's/ -lrt/ -lrt -lm/g' ${S}/Makefile.am
+ sed -i 's/ -lrt$/ -lrt -lm/g' ${S}/Makefile.am
}
do_install:append() {
install -d ${D}${datadir}/orrery
@@ -30,6 +31,7 @@ do_install:append() {
chown -R root:root ${D}${datadir}/orrery
install -d ${D}${datadir}/icons
install -m 0755 ${WORKDIR}/orrery.png ${D}${datadir}/icons
+ rm -rf ${D}${datadir}/orrery/Makefile*
}
FILES:${PN} += "${datadir}/icons/orrery.png"
diff --git a/meta-oe/recipes-navigation/proj/proj_8.2.1.bb b/meta-oe/recipes-navigation/proj/proj_8.2.1.bb
deleted file mode 100644
index 0c1104926f..0000000000
--- a/meta-oe/recipes-navigation/proj/proj_8.2.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "PROJ.4 - Cartographic Projections library"
-HOMEPAGE = "http://trac.osgeo.org/proj/"
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27445198ba1500f508fce2b183ce0ff"
-
-SRC_URI = "http://download.osgeo.org/${BPN}/${BP}.tar.gz"
-
-SRC_URI[sha256sum] = "76ed3d0c3a348a6693dfae535e5658bbfd47f71cb7ff7eb96d9f12f7e068b1cf"
-
-DEPENDS = "sqlite3 sqlite3-native tiff"
-
-inherit autotools pkgconfig lib_package
-
-PACKAGECONFIG ?= "curl"
-
-PACKAGECONFIG[curl] = ",--without-curl,curl"
-
-FILES:${PN} += "${datadir}/proj"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-navigation/proj/proj_9.3.1.bb b/meta-oe/recipes-navigation/proj/proj_9.3.1.bb
new file mode 100644
index 0000000000..78f4287d63
--- /dev/null
+++ b/meta-oe/recipes-navigation/proj/proj_9.3.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "PROJ.4 - Cartographic Projections library"
+HOMEPAGE = "http://trac.osgeo.org/proj/"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27445198ba1500f508fce2b183ce0ff"
+DEPENDS = "sqlite3 sqlite3-native"
+
+SRC_URI = "http://download.osgeo.org/${BPN}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "b0f919cb9e1f42f803a3e616c2b63a78e4d81ecfaed80978d570d3a5e29d10bc"
+
+inherit cmake lib_package
+
+EXTRA_OECMAKE = "-DBUILD_TESTING=OFF -DSQLITE3_LIBRARY:STRING=sqlite3"
+
+FILES:${PN} += "${datadir}/proj"
+
+BBCLASSEXTEND = "native"
+
+PACKAGECONFIG ?= "curl shared"
+PACKAGECONFIG:append:class-native = " apps"
+
+PACKAGECONFIG[apps] = "-DBUILD_APPS=ON, -DBUILD_APPS=OFF"
+PACKAGECONFIG[curl] = "-DENABLE_CURL=ON,-DENABLE_CURL=OFF,curl"
+PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
+PACKAGECONFIG[tiff] = "-DENABLE_TIFF=ON,-DENABLE_TIFF=OFF,tiff"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-Fix-time.h-check.patch b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-Fix-time.h-check.patch
index a6df213fee..3b7054a799 100644
--- a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-Fix-time.h-check.patch
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-Fix-time.h-check.patch
@@ -28,11 +28,9 @@ Signed-off-by: Sam James <sam@gentoo.org>
plugins/cram.c | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
-diff --git a/configure.ac b/configure.ac
-index e1bf53b6..ad781830 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1290,7 +1290,7 @@ AC_CHECK_HEADERS_ONCE([sys/time.h])
+@@ -1231,7 +1231,7 @@ AC_CHECK_HEADERS_ONCE([sys/time.h])
AC_HEADER_DIRENT
AC_HEADER_SYS_WAIT
@@ -41,8 +39,6 @@ index e1bf53b6..ad781830 100644
IPv6_CHECK_SS_FAMILY()
IPv6_CHECK_SA_LEN()
-diff --git a/plugins/cram.c b/plugins/cram.c
-index d02e9baa..695aaa91 100644
--- a/plugins/cram.c
+++ b/plugins/cram.c
@@ -53,6 +53,10 @@
@@ -56,6 +52,3 @@ index d02e9baa..695aaa91 100644
#include <sasl.h>
#include <saslplug.h>
#include <saslutil.h>
---
-2.37.3
-
diff --git a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/CVE-2019-19906.patch b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/CVE-2019-19906.patch
index 33a9e3f6e6..8c95268bb5 100644
--- a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/CVE-2019-19906.patch
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/CVE-2019-19906.patch
@@ -14,6 +14,8 @@ Upstream-Stauts: Backport [https://github.com/cyrusimap/cyrus-sasl
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
+Upstream-Status: Pending
+
lib/common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch
deleted file mode 100644
index f172362f4e..0000000000
--- a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 188ad4497947259811ad32faeee95c20f9a44046 Mon Sep 17 00:00:00 2001
-From: "Roy.Li" <rongqing.li@windriver.com>
-Date: Fri, 19 Jul 2013 14:29:31 +0800
-Subject: [PATCH] Fix hardcoded libdir.
-
-Upstream-Status: Pending
-
-Signed-off-by: Roy.Li <rongqing.li@windriver.com>
-
----
- plugins/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/plugins/Makefile.am b/plugins/Makefile.am
-index 2b02a52..929f6a4 100644
---- a/plugins/Makefile.am
-+++ b/plugins/Makefile.am
-@@ -65,7 +65,7 @@ LIB_MYSQL = @LIB_MYSQL@
-
- plugindir = @plugindir@
-
--sasldir = $(prefix)/lib/sasl2
-+sasldir = $(libdir)/sasl2
- sasl_LTLIBRARIES = @SASL_MECHS@
- EXTRA_LTLIBRARIES = libplain.la libanonymous.la libkerberos4.la libcrammd5.la \
- libgs2.la libgssapiv2.la libdigestmd5.la liblogin.la libsrp.la libotp.la \
diff --git a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch
index 1e6f99603c..308d88204f 100644
--- a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch
@@ -1,50 +1,39 @@
-From 288430d3c2d3f36a4c9d40c4fffa85288f44549a Mon Sep 17 00:00:00 2001
-From: "Roy.Li" <rongqing.li@windriver.com>
-Date: Tue, 25 Jun 2013 09:22:59 +0800
-Subject: [PATCH] Avoid to call AC_TRY_RUN
+Remove AC_TRY_RUN
-Upstream-Status: Inappropriate [configuration]
+It can not be run during cross compile
-Avoid to call AC_TRY_RUN to check if GSSAPI libraries support SPNEGO
-on cross-compile environment by definition AC_ARG_ENABLE enable-spnego
-
-Signed-off-by: Roy.Li <rongqing.li@windriver.com>
----
- m4/sasl2.m4 | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/m4/sasl2.m4 b/m4/sasl2.m4
-index 80371ef..ff70083 100644
+Upstream-Status: Inappropriate [Cross-compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/m4/sasl2.m4
+++ b/m4/sasl2.m4
-@@ -316,6 +316,18 @@ if test "$gssapi" != no; then
+@@ -316,28 +316,8 @@ if test "$gssapi" != no; then
AC_CACHE_CHECK([for SPNEGO support in GSSAPI libraries],[ac_cv_gssapi_supports_spnego],[
cmu_save_LIBS="$LIBS"
LIBS="$LIBS $GSSAPIBASE_LIBS"
-+ AC_ARG_ENABLE([spnego],
-+ [AC_HELP_STRING([--enable-spnego=<DIR>],
-+ [enable SPNEGO support in GSSAPI libraries [no]])],
-+ [spnego=$enableval],
-+ [spnego=no])
-+
-+ if test "$spnego" = no; then
-+ echo "no"
-+ elif test "$spnego" = yes; then
-+ AC_DEFINE(HAVE_GSS_SPNEGO,,[Define if your GSSAPI implementation supports SPNEGO])
-+ else
-+ AC_MSG_CHECKING([for SPNEGO support in GSSAPI libraries])
- AC_TRY_RUN([
- #ifdef HAVE_GSSAPI_H
- #include <gssapi.h>
-@@ -343,7 +355,7 @@ int main(void)
- AS_IF([test "$ac_cv_gssapi_supports_spnego" = yes],[
- AC_DEFINE(HAVE_GSS_SPNEGO,,[Define if your GSSAPI implementation supports SPNEGO])
- ])
+- AC_TRY_RUN([
+-#ifdef HAVE_GSSAPI_H
+-#include <gssapi.h>
+-#else
+-#include <gssapi/gssapi.h>
+-#endif
-
-+ fi
- else
- AC_MSG_RESULT([disabled])
- fi
---
-2.25.1
-
+-int main(void)
+-{
+- gss_OID_desc spnego_oid = { 6, (void *) "\x2b\x06\x01\x05\x05\x02" };
+- gss_OID_set mech_set;
+- OM_uint32 min_stat;
+- int have_spnego = 0;
+-
+- if (gss_indicate_mechs(&min_stat, &mech_set) == GSS_S_COMPLETE) {
+- gss_test_oid_set_member(&min_stat, &spnego_oid, mech_set, &have_spnego);
+- gss_release_oid_set(&min_stat, &mech_set);
+- }
+-
+- return (!have_spnego); // 0 = success, 1 = failure
+-}
+-],[ac_cv_gssapi_supports_spnego=yes],[ac_cv_gssapi_supports_spnego=no])
++ AC_DEFINE(HAVE_GSS_SPNEGO,,[Define if your GSSAPI implementation supports SPNEGO])
++ AC_MSG_RESULT(yes)
+ LIBS="$cmu_save_LIBS"
+ ])
+ AS_IF([test "$ac_cv_gssapi_supports_spnego" = yes],[
diff --git a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff
index 0479acfb09..a5f2f5dd91 100644
--- a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff
@@ -10,6 +10,8 @@ the non-PIC version in the current directory. This ensures that both non-PIC
and PIC versions are available in the correct locations.
---
+Upstream-Status: Pending
+
lib/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb
index 3277fb1099..d85ef20577 100644
--- a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb
@@ -74,6 +74,7 @@ do_install:append() {
}
USERADD_PACKAGES = "${PN}-bin"
+GROUPADD_PARAM:${PN}-bin = "--system mail"
USERADD_PARAM:${PN}-bin = "--system --home=/var/spool/mail -g mail cyrus"
SYSTEMD_PACKAGES = "${PN}-bin"
@@ -95,6 +96,3 @@ FILES:${PN}-dbg += "${libdir}/sasl2/.debug"
FILES:${PN}-staticdev += "${libdir}/sasl2/*.a"
INSANE_SKIP:${PN} += "dev-so"
-
-# CVE-2020-8032 affects only openSUSE
-CVE_CHECK_IGNORE += "CVE-2020-8032"
diff --git a/meta-oe/recipes-printing/cups/cups-filters.inc b/meta-oe/recipes-printing/cups/cups-filters.inc
deleted file mode 100644
index 5952b5a2a6..0000000000
--- a/meta-oe/recipes-printing/cups/cups-filters.inc
+++ /dev/null
@@ -1,81 +0,0 @@
-DESCRIPTION = "CUPS backends, filters, and other software"
-HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/openprinting/cups-filters"
-
-LICENSE = "GPL-2.0-only & LGPL-2.0-only & MIT & GPL-2.0-or-later & GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d77679ce6a2cc4d873d4ebbf2a401e6"
-
-SECTION = "console/utils"
-
-DEPENDS = "cups glib-2.0 glib-2.0-native dbus dbus-glib lcms ghostscript poppler qpdf libpng"
-DEPENDS:class-native = "poppler-native glib-2.0-native dbus-native pkgconfig-native gettext-native libpng-native"
-
-SRC_URI = "http://openprinting.org/download/cups-filters/cups-filters-${PV}.tar.gz"
-
-inherit autotools-brokensep gettext pkgconfig
-
-EXTRA_OECONF += " --enable-ghostscript --disable-ldap \
- --with-pdftops=hybrid --enable-imagefilters \
- --enable-ghostscript --with-gs-path=${bindir}/gs \
- --with-pdftops-path=${bindir}/gs \
- --with-fontdir=${datadir}/fonts --with-rcdir=no \
- --with-cups-rundir=${localstatedir}/run/cups \
- --localstatedir=${localstatedir}/var \
- --with-rcdir=no \
- --without-php"
-
-EXTRA_OECONF:class-native += " --with-pdftops=pdftops \
- --disable-avahi --disable-ghostscript \
- --disable-ldap \
- --with-png --without-jpeg --without-tiff"
-
-BBCLASSEXTEND = "native"
-
-PACKAGECONFIG[jpeg] = "--with-jpeg,--without-jpeg,jpeg"
-PACKAGECONFIG[png] = "--with-png,--without-png,libpng"
-PACKAGECONFIG[tiff] = "--with-tiff,--without-tiff,tiff"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)}"
-
-PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
-PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
-
-DIRFILES = "1"
-
-PACKAGES =+ "\
- ${PN}-gst \
- ${PN}-data \
- "
-
-FILES:${PN}-gst = "\
- ${libexecdir}/cups/filter/gsto* \
- "
-
-FILES:${PN}-data = "\
- ${datadir}/cups/data \
- "
-
-FILES:${PN}-dbg += "\
- ${libexecdir}/cups/backend/.debug \
- ${libexecdir}/cups/driver/.debug \
- ${libexecdir}/cups/filter/.debug \
- "
-
-FILES:${PN} += "\
- ${libexecdir}/cups \
- ${datadir}/ppd/ \
- ${datadir}/cups/charsets \
- ${datadir}/cups/drv \
- ${datadir}/cups/mime \
- ${datadir}/cups/ppdc \
- ${datadir}/cups/banners \
-"
-
-do_install:append() {
- # remove braille dir
- rm -rf ${D}${datadir}/cups/braille
-
- # remove sysroot path contamination from pkgconfig file
- sed -i -e 's:${STAGING_DIR_TARGET}::' ${D}/${libdir}/pkgconfig/libcupsfilters.pc
-}
-
-RDEPENDS:${PN} += "bash"
diff --git a/meta-oe/recipes-printing/cups/cups-filters/fix-make-race.patch b/meta-oe/recipes-printing/cups/cups-filters/fix-make-race.patch
new file mode 100644
index 0000000000..9a4e31c1d2
--- /dev/null
+++ b/meta-oe/recipes-printing/cups/cups-filters/fix-make-race.patch
@@ -0,0 +1,33 @@
+From 7aba7c690fd84ca1e48d0cb6829410eeb658c594 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Fri, 24 Nov 2023 17:53:49 +0100
+Subject: [PATCH] Fix a Makefile race condition
+
+utils/driverless-fax script may be written before utils directory was created
+
+| make[2]: Entering directory '/home/flk/poky/build/tmp/work/corei7-64-poky-linux/cups-filters/2.0.0/build'
+| sed \
+| -e "s|\@CUPS_SERVERBIN\@|/usr/libexec/cups|" \
+| ../cups-filters-2.0.0/utils/driverless-fax.in > utils/driverless-fax
+| /bin/bash: line 2: utils/driverless-fax: No such file or directory
+
+Upstream-Status: Pending
+---
+ Makefile.am | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+--- a/Makefile.am 2023-09-22 18:14:03.000000000 +0200
++++ b/Makefile.am 2023-11-24 19:09:09.339653936 +0100
+@@ -62,7 +62,7 @@
+ # "driverless" utility
+ # ====================
+ utils/driverless-fax: utils/driverless-fax.in Makefile
+- sed \
++ mkdir -p utils && sed \
+ -e "s|\@CUPS_SERVERBIN\@|$(CUPS_SERVERBIN)|" \
+ $< > $@
+
+
+
+
+
diff --git a/meta-oe/recipes-printing/cups/cups-filters_1.28.11.bb b/meta-oe/recipes-printing/cups/cups-filters_1.28.11.bb
deleted file mode 100644
index bfe5375b28..0000000000
--- a/meta-oe/recipes-printing/cups/cups-filters_1.28.11.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-include cups-filters.inc
-
-SRC_URI[sha256sum] = "472418f1a1e12c9ad91b01caa020eb668626776d85de9da488be38e6663102ca"
diff --git a/meta-oe/recipes-printing/cups/cups-filters_2.0.0.bb b/meta-oe/recipes-printing/cups/cups-filters_2.0.0.bb
new file mode 100644
index 0000000000..efcd1aab8a
--- /dev/null
+++ b/meta-oe/recipes-printing/cups/cups-filters_2.0.0.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "CUPS backends, filters, and other software"
+HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/openprinting/cups-filters"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6d5b952b53dbe7752199903d082e5f07"
+
+DEPENDS = "libcupsfilters libppd glib-2.0 poppler"
+
+SRC_URI = " \
+ https://github.com/OpenPrinting/${BPN}/releases/download/${PV}/${BP}.tar.xz \
+ file://fix-make-race.patch \
+"
+SRC_URI[sha256sum] = "b5152e3dd148ed73835827ac2f219df7cf5808dbf9dbaec2aa0127b44de800d8"
+
+inherit autotools gettext pkgconfig github-releases
+
+EXTRA_OECONF += " \
+ --enable-imagefilters \
+ --enable-ghostscript --with-gs-path=${bindir}/gs \
+ --with-fontdir=${datadir}/fonts \
+ --localstatedir=${localstatedir} \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)}"
+PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
+
+FILES:${PN} += "${datadir}"
+FILES:${PN}-dev += "${datadir}/ppdc"
+
+RDEPENDS:${PN} += "bash"
+RDEPENDS:${PN} += "ghostscript"
diff --git a/meta-oe/recipes-printing/cups/cups-pk-helper/dont-localize-org.opensuse.CupsPkHelper.Mechanism.service.patch b/meta-oe/recipes-printing/cups/cups-pk-helper/dont-localize-org.opensuse.CupsPkHelper.Mechanism.service.patch
new file mode 100644
index 0000000000..371ce01181
--- /dev/null
+++ b/meta-oe/recipes-printing/cups/cups-pk-helper/dont-localize-org.opensuse.CupsPkHelper.Mechanism.service.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Pending
+
+--- a/src/meson.build 2023-01-24 09:22:59.874074134 +0100
++++ b/src/meson.build 2023-01-24 09:27:00.494627305 +0100
+@@ -73,12 +73,12 @@
+
+
+ # Translate and install policy file
+-i18n.merge_file (
+- input: 'org.opensuse.cupspkhelper.mechanism.policy.in',
+- output: 'org.opensuse.cupspkhelper.mechanism.policy',
+- type: 'xml',
+- data_dirs: join_paths (meson.source_root (), 'src'),
+- po_dir: join_paths (meson.source_root (), 'po'),
+- install: true,
+- install_dir: join_paths (prefix, datadir, 'polkit-1', 'actions')
+-)
++#i18n.merge_file (
++# input: 'org.opensuse.cupspkhelper.mechanism.policy.in',
++# output: 'org.opensuse.cupspkhelper.mechanism.policy',
++# type: 'xml',
++# data_dirs: join_paths (meson.source_root (), 'src'),
++# po_dir: join_paths (meson.source_root (), 'po'),
++# install: true,
++# install_dir: join_paths (prefix, datadir, 'polkit-1', 'actions')
++#)
diff --git a/meta-oe/recipes-printing/cups/cups-pk-helper_0.2.7.bb b/meta-oe/recipes-printing/cups/cups-pk-helper_0.2.7.bb
new file mode 100644
index 0000000000..4bf62006f4
--- /dev/null
+++ b/meta-oe/recipes-printing/cups/cups-pk-helper_0.2.7.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "CUPS polkit helper"
+HOMEPAGE = "https://www.freedesktop.org/software/cups-pk-helper/releases/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "cups polkit glib-2.0"
+
+inherit meson pkgconfig gettext features_check
+
+REQUIRED_DISTRO_FEATURES ="polkit"
+
+SRC_URI = " \
+ https://www.freedesktop.org/software/cups-pk-helper/releases/cups-pk-helper-${PV}.tar.xz \
+ file://dont-localize-org.opensuse.CupsPkHelper.Mechanism.service.patch \
+"
+SRC_URI[sha256sum] = "66070ddb448fe9fcee76aa26be2ede5a80f85563e3a4afd59d2bfd79fbe2e831"
+
+do_install:append() {
+ install -d ${D}${datadir}/polkit-1/actions
+ install -m 644 ${S}/src/org.opensuse.cupspkhelper.mechanism.policy.in ${D}${datadir}/polkit-1/actions/org.opensuse.cupspkhelper.mechanism.policy
+}
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-oe/recipes-printing/cups/libcupsfilters/0001-use-noexcept-false-instead-of-throw-from-c-17-onward.patch b/meta-oe/recipes-printing/cups/libcupsfilters/0001-use-noexcept-false-instead-of-throw-from-c-17-onward.patch
new file mode 100644
index 0000000000..72bbf10a14
--- /dev/null
+++ b/meta-oe/recipes-printing/cups/libcupsfilters/0001-use-noexcept-false-instead-of-throw-from-c-17-onward.patch
@@ -0,0 +1,36 @@
+From 104fba23b1c0c67c92777b3165c6dca99558a656 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 6 Feb 2023 18:13:52 -0800
+Subject: [PATCH] use noexcept(false) instead of throw() from c++17 onwards
+
+C++17 removed dynamic exception specifications [1]
+they had been deprecated since C++11, replace
+throw(whatever) with noexcept(false).
+
+[1] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0003r5.html
+
+Upstream-Status: Submitted [https://github.com/OpenPrinting/cups-filters/pull/505]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ filter/pdftoraster.cxx | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/cupsfilters/pdftoraster.cxx b/cupsfilters/pdftoraster.cxx
+index e8af184fb..e91e22459 100755
+@@ -2198,7 +2198,11 @@
+ // For compatibility with g++ >= 4.7 compilers _GLIBCXX_THROW
+ // should be used as a guard, otherwise use traditional definition
+ #ifndef _GLIBCXX_THROW
+-#define _GLIBCXX_THROW throw
++#if __cplusplus < 201703L
++#define _GLIBCXX_THROW throw
++#else
++#define _GLIBCXX_THROW(x) noexcept(false)
++#endif
+ #endif
+
+ void * operator new(size_t size) _GLIBCXX_THROW (std::bad_alloc)
+
+--
+2.39.1
+
diff --git a/meta-oe/recipes-printing/cups/libcupsfilters_2.0.0.bb b/meta-oe/recipes-printing/cups/libcupsfilters_2.0.0.bb
new file mode 100644
index 0000000000..7f7174d940
--- /dev/null
+++ b/meta-oe/recipes-printing/cups/libcupsfilters_2.0.0.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "OpenPrinting libcupsfilters"
+HOMEPAGE = "https://github.com/OpenPrinting"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=aab2024bd2a475438a154cd1640c9684"
+
+DEPENDS = "cups fontconfig libexif dbus lcms qpdf poppler libpng jpeg tiff"
+
+SRC_URI = " \
+ https://github.com/OpenPrinting/${BPN}/releases/download/${PV}/${BP}.tar.xz \
+ file://0001-use-noexcept-false-instead-of-throw-from-c-17-onward.patch \
+"
+SRC_URI[sha256sum] = "542f2bfbc58136a4743c11dc8c86cee03c9aca705612654e36ac34aa0d9aa601"
+
+inherit autotools gettext pkgconfig github-releases
+
+FILES:${PN} += "${datadir}"
+RDEPENDS:${PN} += "ghostscript"
diff --git a/meta-oe/recipes-printing/cups/libppd_2.0.0.bb b/meta-oe/recipes-printing/cups/libppd_2.0.0.bb
new file mode 100644
index 0000000000..99b1f6e730
--- /dev/null
+++ b/meta-oe/recipes-printing/cups/libppd_2.0.0.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "OpenPrinting libppd"
+HOMEPAGE = "https://github.com/OpenPrinting"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c1fca671047153ce6825c4ab06f2ab49"
+
+DEPENDS = "libcupsfilters"
+
+SRC_URI = "https://github.com/OpenPrinting/${BPN}/releases/download/${PV}/${BP}.tar.xz"
+SRC_URI[sha256sum] = "882d3c659a336e91559de8f3c76fc26197fe6e5539d9b484a596e29a5a4e0bc8"
+
+inherit autotools gettext pkgconfig github-releases
+
+do_install:append() {
+ rm -r ${D}${bindir}
+}
+
+FILES:${PN} += "${datadir}"
+
diff --git a/meta-oe/recipes-printing/cups/python3-pycups.bb b/meta-oe/recipes-printing/cups/python3-pycups.bb
new file mode 100644
index 0000000000..6968170d93
--- /dev/null
+++ b/meta-oe/recipes-printing/cups/python3-pycups.bb
@@ -0,0 +1,11 @@
+SUMMARY = "CUPS bindings for Python"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3961efb54421653518521529853444c4"
+
+RDEPENDS:${PN} = "python3"
+
+inherit setuptools3 pypi
+
+PV = "2.0.1"
+
+SRC_URI[sha256sum] = "e880d7d7147959ead5cb34764f08b97b41385b36eb8256e8af1ce163dbcccce8"
diff --git a/meta-oe/recipes-printing/gutenprint/gutenprint-native_git.bb b/meta-oe/recipes-printing/gutenprint/gutenprint-native_git.bb
deleted file mode 100644
index c6e00c340a..0000000000
--- a/meta-oe/recipes-printing/gutenprint/gutenprint-native_git.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-# Recipe for building gutenprint-native
-#
-# Native part is for generating strings - xmli18n-tmp.h used by target recipe
-# We don't depend on cups as this is for generating the string header.
-#
-# Copyright (c) Ambu A/S - All rights reserved
-# SPDX-License-Identifier: MIT
-#
-# Author(s)
-# clst@ambu.com (Claus Stovgaard)
-#
-
-require gutenprint.inc
-
-# We could consider switching to BBCLASSEXTEND native instead of inherit
-# Using devtool with this results in warning, as devtool append externalsrc to
-# inheritance, making native not being inherited last.
-inherit autotools-brokensep pkgconfig native
-
-SECTION = "libs"
-
-# binutils is for xz etc.
-# gettext-native for configuration
-# flex-native is used for compilation
-# byacc-native is for yacc command (compilation)
-DEPENDS += "binutils-native gettext-native flex-native byacc-native"
-
-EXTRA_OECONF = "--without-doc --without-cups"
-
-# gutenprint does not have a configure file in its root folder.
-# Rather it has a autogen.sh in its root folder. We just use it
-do_configure() {
- ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh"
- oe_runconf
-}
-
-# Currently we only uses the string header, even though we compile the complete
-# native version of the library. So we limit the install to the needed.
-do_install() {
- install -d ${D}${datadir}/gutenprint/
- install -m644 ${B}/src/xml/xmli18n-tmp.h ${D}${datadir}/gutenprint/
-} \ No newline at end of file
diff --git a/meta-oe/recipes-printing/gutenprint/gutenprint.inc b/meta-oe/recipes-printing/gutenprint/gutenprint.inc
deleted file mode 100644
index 1f712585f7..0000000000
--- a/meta-oe/recipes-printing/gutenprint/gutenprint.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-# common part for gutenprint-native / gutenprint
-#
-# As we are using the native part for generating string header to the target
-# version, it is important they use the same version.
-# So we set the SRC_URI and SRCREV here.
-#
-# Copyright (c) Ambu A/S - All rights reserved
-# SPDX-License-Identifier: MIT
-#
-# Author(s)
-# clst@ambu.com (Claus Stovgaard)
-#
-
-DESCRIPTION = "Gutenprint printer drivers"
-HOMEPAGE = "http://gimp-print.sourceforge.net/"
-LICENSE = "GPL-2.0-or-later"
-
-SRC_URI = "git://git.code.sf.net/p/gimp-print/source;protocol=https;branch=master"
-SRCREV = "8e47dc44dd7738302ba9e8fbc1f918461fed0236"
-S = "${WORKDIR}/git"
-
-LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" \ No newline at end of file
diff --git a/meta-oe/recipes-printing/gutenprint/gutenprint_5.3.4.bb b/meta-oe/recipes-printing/gutenprint/gutenprint_5.3.4.bb
new file mode 100644
index 0000000000..5263890239
--- /dev/null
+++ b/meta-oe/recipes-printing/gutenprint/gutenprint_5.3.4.bb
@@ -0,0 +1,63 @@
+# Recipe for building gutenprint
+#
+# Uses the gutenprint-native extracted strings and disable local build stuff
+#
+# Copyright (c) Ambu A/S - All rights reserved
+# SPDX-License-Identifier: MIT
+#
+# Author(s)
+# clst@ambu.com (Claus Stovgaard)
+#
+
+DESCRIPTION = "Gutenprint printer drivers"
+HOMEPAGE = "http://gimp-print.sourceforge.net/"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+SRC_URI = "https://downloads.sourceforge.net/gimp-print/${BP}.tar.xz"
+SRC_URI[sha256sum] = "db44a701d2b8e6a8931c83cec06c91226be266d23e5c189d20a39dd175f2023b"
+
+inherit autotools gettext pkgconfig
+
+DEPENDS += "glib-2.0-native cups gutenprint-native tiff libusb libpng libjpeg-turbo ghostscript"
+# autogen.sh needs autopoint
+DEPENDS:class-native = "glib-2.0-native gettext-native"
+
+EXTRA_OECONF = "--without-doc --disable-test PERL=/usr/bin/perl"
+EXTRA_OECONF:append:class-native = " --without-cups"
+
+do_configure:prepend:class-target() {
+ # Disable the xmli18n-tmp.h rule
+ # It depend on the local build extract-strings, we are not able to run this
+ # So we are using the xmli18n-tmp.h created by gutenprint-native
+ sed -i 's/all-local: xmli18n-tmp.h xml-stamp/all-local: xml-stamp/' ${S}/src/xml/Makefile.am
+ sed -i 's/dist-hook: xmli18n-tmp.h xml-stamp/dist-hook: xml-stamp/' ${S}/src/xml/Makefile.am
+ sed -i '/$(AM_TESTS_ENVIRONMENT) .\/check_duplicate_printers.test/d' ${S}/src/xml/printers/Makefile.am
+ # Despite being a generated file, this needs to be in S.
+ cp ${STAGING_DATADIR_NATIVE}/gutenprint/xmli18n-tmp.h ${S}/src/xml/
+}
+
+do_install:append() {
+ # This file contains build paths and isn't very useful, remove it
+ rm -f ${D}${libdir}/gutenprint/*/config.summary
+ # Match ownership to cups
+ chgrp lp ${D}${sysconfdir}/cups
+}
+
+do_compile:class-native() {
+ oe_runmake -C ${B}/src/xml
+}
+
+do_install:class-native() {
+ install -d ${D}${datadir}/gutenprint/
+ install -m644 ${B}/src/xml/xmli18n-tmp.h ${D}${datadir}/gutenprint/
+}
+
+FILES:${PN} += "${datadir}/cups/*"
+RDEPENDS:${PN} = "perl"
+
+BBCLASSEXTEND = "native"
+
+# Pull in base-passwd for the lp user
+DEPENDS:append:class-target = " base-passwd"
+PACKAGE_WRITE_DEPS += "base-passwd"
diff --git a/meta-oe/recipes-printing/gutenprint/gutenprint_git.bb b/meta-oe/recipes-printing/gutenprint/gutenprint_git.bb
deleted file mode 100644
index 7779793948..0000000000
--- a/meta-oe/recipes-printing/gutenprint/gutenprint_git.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-# Recipe for building gutenprint
-#
-# Uses the gutenprint-native extracted strings and disable local build stuff
-#
-# Copyright (c) Ambu A/S - All rights reserved
-# SPDX-License-Identifier: MIT
-#
-# Author(s)
-# clst@ambu.com (Claus Stovgaard)
-#
-
-require gutenprint.inc
-
-inherit autotools-brokensep pkgconfig
-
-DEPENDS += "cups gutenprint-native"
-
-# cups-genppdupdate depend on perl
-# We also set the path to PERL as else the version in hosttools would be used
-# with full path
-RDEPENDS:${PN} = "perl "
-
-EXTRA_OECONF = "--without-doc --disable-test --disable-nls PERL=/usr/bin/perl"
-
-# gutenprint does not have a configure file in its root folder.
-# Rather it has a autogen.sh in its root folder. We just use it
-# together with adapting for cross compilation
-do_configure() {
- # Disable the xmli18n-tmp.h rule
- # It depend on the local build extract-strings, we are not able to run this
- # So we are using the xmli18n-tmp.h created by gutenprint-native
- sed -i 's/all-local: xmli18n-tmp.h xml-stamp/all-local: xml-stamp/' ${S}/src/xml/Makefile.am
- sed -i 's/dist-hook: xmli18n-tmp.h xml-stamp/dist-hook: xml-stamp/' ${S}/src/xml/Makefile.am
- cp ${RECIPE_SYSROOT_NATIVE}${datadir}/gutenprint/xmli18n-tmp.h ${S}/src/xml/
-
- ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh"
- oe_runconf
-}
-
-# gutenprint install the calibrate.ppm and net.sf.gimp-print.usb-quirks in
-# /usr/share/cups
-FILES:${PN} += "${datadir}/cups/*"
-
-# Install in /etc/cups when RPM needs DIRFILES to not conflict
-# https://stackoverflow.com/questions/44762430/why-do-i-get-etc-cups-conflicts-between-attempted-installs-in-yocto
-DIRFILES = "1" \ No newline at end of file
diff --git a/meta-oe/recipes-printing/qpdf/qpdf_10.6.3.bb b/meta-oe/recipes-printing/qpdf/qpdf_10.6.3.bb
deleted file mode 100644
index fa33daf52d..0000000000
--- a/meta-oe/recipes-printing/qpdf/qpdf_10.6.3.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-DESCRIPTION = "PDF transformation/inspection software"
-HOMEPAGE = "http://qpdf.sourceforge.net"
-LICENSE = "Artistic-2.0"
-SECTION = "libs"
-DEPENDS = "libpcre zlib libjpeg-turbo"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/qpdf/qpdf-${PV}.tar.gz"
-SRC_URI[sha256sum] = "e8fc23b2a584ea68c963a897515d3eb3129186741dd19d13c86d31fa33493811"
-
-LIC_FILES_CHKSUM = "file://Artistic-2.0;md5=7806296b9fae874361e6fb10072b7ee3"
-
-inherit autotools-brokensep gettext
-
-# disable random file detection for cross-compile
-EXTRA_OECONF = "--without-random \
- --disable-static \
- --disable-check-autofiles \
- "
-
-LDFLAGS:append:mipsarch = " -latomic"
-LDFLAGS:append:riscv32 = " -latomic"
-
-S="${WORKDIR}/${BPN}-${PV}"
-
-# avoid Makefile returning error on 'make clean' before configure was run
-CLEANBROKEN = "1"
-
-DEBIAN_NOAUTONAME:libqpdf = "1"
-
-PACKAGES =+ "libqpdf"
-FILES:libqpdf = "${libdir}/libqpdf.so.*"
-
-RDEPENDS:${PN} = "libqpdf"
diff --git a/meta-oe/recipes-printing/qpdf/qpdf_11.8.0.bb b/meta-oe/recipes-printing/qpdf/qpdf_11.8.0.bb
new file mode 100644
index 0000000000..a13c9a023a
--- /dev/null
+++ b/meta-oe/recipes-printing/qpdf/qpdf_11.8.0.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "PDF transformation/inspection software"
+HOMEPAGE = "http://qpdf.sourceforge.net"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+DEPENDS = "zlib jpeg ${@bb.utils.contains('PACKAGECONFIG', 'gnutls', 'gnutls', 'openssl', d)}"
+
+SRC_URI = "git://github.com/qpdf/qpdf.git;protocol=https;branch=main"
+SRCREV = "452e1f5c20ec6adf62cd296cb9dddacbc06e6ffa"
+
+inherit cmake pkgconfig gettext
+
+EXTRA_OECMAKE = ' \
+ -DRANDOM_DEVICE="/dev/random" \
+ -DBUILD_STATIC_LIBS=OFF \
+ -DALLOW_CRYPTO_NATIVE=OFF \
+ -DUSE_IMPLICIT_CRYPTO=OFF \
+'
+
+LDFLAGS:append:mipsarch = " -latomic"
+LDFLAGS:append:riscv32 = " -latomic"
+
+S="${WORKDIR}/git"
+
+PACKAGECONFIG ?= "gnutls"
+PACKAGECONFIG[gnutls] = "-DREQUIRE_CRYPTO_GNUTLS=ON,-DREQUIRE_CRYPTO_OPENSSL=ON"
+
+do_install:append() {
+ # Change the fully defined path on the target
+ sed -i -e 's|${STAGING_LIBDIR}|${libdir}|g' ${D}${libdir}/cmake/${BPN}/libqpdfTargets.cmake
+}
diff --git a/meta-oe/recipes-security/audit/audit/0001-Add-substitue-functions-for-strndupa-rawmemchr.patch b/meta-oe/recipes-security/audit/audit/0001-Add-substitue-functions-for-strndupa-rawmemchr.patch
deleted file mode 100644
index ed1c0e2b57..0000000000
--- a/meta-oe/recipes-security/audit/audit/0001-Add-substitue-functions-for-strndupa-rawmemchr.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From d5a4b800a696b8b8d2c0f0bad098b1a8ff94333f Mon Sep 17 00:00:00 2001
-From: Steve Grubb <sgrubb@redhat.com>
-Date: Tue, 26 Feb 2019 18:33:33 -0500
-Subject: [PATCH] Add substitue functions for strndupa & rawmemchr
-
-Upstream-Status: Backport
-[https://github.com/linux-audit/audit-userspace/commit/d579a08bb1cde71f939c13ac6b2261052ae9f77e]
----
- auparse/auparse.c | 12 +++++++++++-
- auparse/interpret.c | 9 ++++++++-
- configure.ac | 14 +++++++++++++-
- src/ausearch-lol.c | 12 +++++++++++-
- 4 files changed, 43 insertions(+), 4 deletions(-)
-
-diff --git a/auparse/auparse.c b/auparse/auparse.c
-index 650db02..2e1c737 100644
---- a/auparse/auparse.c
-+++ b/auparse/auparse.c
-@@ -1,5 +1,5 @@
- /* auparse.c --
-- * Copyright 2006-08,2012-17 Red Hat Inc., Durham, North Carolina.
-+ * Copyright 2006-08,2012-19 Red Hat Inc., Durham, North Carolina.
- * All Rights Reserved.
- *
- * This library is free software; you can redistribute it and/or
-@@ -1118,6 +1118,16 @@ static int str2event(char *s, au_event_t *e)
- return 0;
- }
-
-+#ifndef HAVE_STRNDUPA
-+static inline char *strndupa(const char *old, size_t n)
-+{
-+ size_t len = strnlen(old, n);
-+ char *tmp = alloca(len + 1);
-+ tmp[len] = 0;
-+ return memcpy(tmp, old, len);
-+}
-+#endif
-+
- /* Returns 0 on success and 1 on error */
- static int extract_timestamp(const char *b, au_event_t *e)
- {
-diff --git a/auparse/interpret.c b/auparse/interpret.c
-index 51c4a5e..67b7b77 100644
---- a/auparse/interpret.c
-+++ b/auparse/interpret.c
-@@ -853,6 +853,13 @@ err_out:
- return print_escaped(id->val);
- }
-
-+// rawmemchr is faster. Let's use it if we have it.
-+#ifdef HAVE_RAWMEMCHR
-+#define STRCHR rawmemchr
-+#else
-+#define STRCHR strchr
-+#endif
-+
- static const char *print_proctitle(const char *val)
- {
- char *out = (char *)print_escaped(val);
-@@ -863,7 +870,7 @@ static const char *print_proctitle(const char *val)
- // Proctitle has arguments separated by NUL bytes
- // We need to write over the NUL bytes with a space
- // so that we can see the arguments
-- while ((ptr = rawmemchr(ptr, '\0'))) {
-+ while ((ptr = STRCHR(ptr, '\0'))) {
- if (ptr >= end)
- break;
- *ptr = ' ';
-diff --git a/configure.ac b/configure.ac
-index 6e345f1..6f3007e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1,7 +1,7 @@
- dnl
- define([AC_INIT_NOTICE],
- [### Generated automatically using autoconf version] AC_ACVERSION [
--### Copyright 2005-18 Steve Grubb <sgrubb@redhat.com>
-+### Copyright 2005-19 Steve Grubb <sgrubb@redhat.com>
- ###
- ### Permission is hereby granted, free of charge, to any person obtaining a
- ### copy of this software and associated documentation files (the "Software"),
-@@ -72,6 +72,18 @@ dnl; posix_fallocate is used in audisp-remote
- AC_CHECK_FUNCS([posix_fallocate])
- dnl; signalfd is needed for libev
- AC_CHECK_FUNC([signalfd], [], [ AC_MSG_ERROR([The signalfd system call is necessary for auditd]) ])
-+dnl; check if rawmemchr is available
-+AC_CHECK_FUNCS([rawmemchr])
-+dnl; check if strndupa is available
-+AC_LINK_IFELSE(
-+ [AC_LANG_SOURCE(
-+ [[
-+ #define _GNU_SOURCE
-+ #include <string.h>
-+ int main() { (void) strndupa("test", 10); return 0; }]])],
-+ [AC_DEFINE(HAVE_STRNDUPA, 1, [Let us know if we have it or not])],
-+ []
-+)
-
- ALLWARNS=""
- ALLDEBUG="-g"
-diff --git a/src/ausearch-lol.c b/src/ausearch-lol.c
-index 5d17a72..758c33e 100644
---- a/src/ausearch-lol.c
-+++ b/src/ausearch-lol.c
-@@ -1,6 +1,6 @@
- /*
- * ausearch-lol.c - linked list of linked lists library
--* Copyright (c) 2008,2010,2014,2016 Red Hat Inc., Durham, North Carolina.
-+* Copyright (c) 2008,2010,2014,2016,2019 Red Hat Inc., Durham, North Carolina.
- * All Rights Reserved.
- *
- * This software may be freely redistributed and/or modified under the
-@@ -152,6 +152,16 @@ static int compare_event_time(event *e1, event *e2)
- return 0;
- }
-
-+#ifndef HAVE_STRNDUPA
-+static inline char *strndupa(const char *old, size_t n)
-+{
-+ size_t len = strnlen(old, n);
-+ char *tmp = alloca(len + 1);
-+ tmp[len] = 0;
-+ return memcpy(tmp, old, len);
-+}
-+#endif
-+
- /*
- * This function will look at the line and pick out pieces of it.
- */
---
-2.17.1
-
diff --git a/meta-oe/recipes-security/audit/audit/0001-Fixed-swig-host-contamination-issue.patch b/meta-oe/recipes-security/audit/audit/0001-Fixed-swig-host-contamination-issue.patch
new file mode 100644
index 0000000000..f2755d5c08
--- /dev/null
+++ b/meta-oe/recipes-security/audit/audit/0001-Fixed-swig-host-contamination-issue.patch
@@ -0,0 +1,57 @@
+From 5cdc667aeb7a014cdc1f8c7df8f8080408773dbe Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Sun, 19 Jul 2015 02:42:58 +0900
+Subject: [PATCH] Fixed swig host contamination issue
+
+The audit build uses swig to generate a python wrapper.
+Unfortunately, the swig info file references host include
+directories. Some of these were previously noticed and
+eliminated, but the one fixed here was not.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Anders Hedlund <anders.hedlund@windriver.com>
+Signed-off-by: Joe Slater <jslater@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ bindings/swig/python3/Makefile.am | 3 ++-
+ bindings/swig/src/auditswig.i | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/bindings/swig/python3/Makefile.am b/bindings/swig/python3/Makefile.am
+index c2c6def4..bcc2836c 100644
+--- a/bindings/swig/python3/Makefile.am
++++ b/bindings/swig/python3/Makefile.am
+@@ -23,6 +23,7 @@
+ CONFIG_CLEAN_FILES = *.loT *.rej *.orig
+ AM_CFLAGS = -fPIC -DPIC -fno-strict-aliasing $(PYTHON3_CFLAGS)
+ AM_CPPFLAGS = -I. -I$(top_builddir) -I${top_srcdir}/lib $(PYTHON3_INCLUDES)
++STDINC ?= /usr/include
+ LIBS = $(top_builddir)/lib/libaudit.la
+ SWIG_FLAGS = -python
+ SWIG_INCLUDES = -I. -I$(top_builddir) -I${top_srcdir}/lib $(PYTHON3_INCLUDES)
+@@ -37,7 +38,7 @@ _audit_la_DEPENDENCIES =${top_srcdir}/lib/audit_logging.h ${top_builddir}/lib/li
+ _audit_la_LIBADD = ${top_builddir}/lib/libaudit.la
+ nodist__audit_la_SOURCES = audit_wrap.c
+ audit.py audit_wrap.c: ${srcdir}/../src/auditswig.i
+- swig -o audit_wrap.c ${SWIG_FLAGS} ${SWIG_INCLUDES} ${srcdir}/../src/auditswig.i
++ swig -o audit_wrap.c ${SWIG_FLAGS} ${SWIG_INCLUDES} -I$(STDINC) ${srcdir}/../src/auditswig.i
+
+ CLEANFILES = audit.py* audit_wrap.c *~
+
+diff --git a/bindings/swig/src/auditswig.i b/bindings/swig/src/auditswig.i
+index 6b267844..5a4e442f 100644
+--- a/bindings/swig/src/auditswig.i
++++ b/bindings/swig/src/auditswig.i
+@@ -50,7 +50,7 @@ typedef unsigned uid_t;
+ */
+ %ignore audit_rule_data::buf;
+
+-%include "/usr/include/linux/audit.h"
++%include "../lib/audit.h"
+ #define __extension__ /*nothing*/
+ %include <stdint.i>
+ %include "../lib/audit-records.h"
+--
+2.25.1
+
diff --git a/meta-oe/recipes-security/audit/audit/0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch b/meta-oe/recipes-security/audit/audit/0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch
index c2080e156d..b1f324f22d 100644
--- a/meta-oe/recipes-security/audit/audit/0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch
+++ b/meta-oe/recipes-security/audit/audit/0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch
@@ -1,8 +1,7 @@
-From 79c8d6a2755c9dfa00a5e86378e89a94eef0504d Mon Sep 17 00:00:00 2001
+From 88c9b2c5cebebf13f90890baebbadc60d9fe8d16 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 9 Aug 2022 23:57:03 -0700
-Subject: [PATCH] Replace __attribute_malloc__ with
- __attribute__((__malloc__))
+Subject: [PATCH] Replace __attribute_malloc__ with __attribute__((__malloc__))
__attribute_malloc__ is not available on musl
@@ -11,16 +10,32 @@ Fixes
| __attribute_malloc__ __attr_dealloc (auparse_destroy, 1);
| ^
+Upstream-Status: Pending
+
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- auparse/auparse.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ audisp/plugins/remote/queue.h | 2 +-
+ auparse/auparse.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+diff --git a/audisp/plugins/remote/queue.h b/audisp/plugins/remote/queue.h
+index 36b70d04..031507dc 100644
+--- a/audisp/plugins/remote/queue.h
++++ b/audisp/plugins/remote/queue.h
+@@ -53,7 +53,7 @@ void q_close(struct queue *q);
+ * On error, return NULL and set errno. */
+ struct queue *q_open(int q_flags, const char *path, size_t num_entries,
+ size_t entry_size)
+- __attribute_malloc__ __attr_dealloc (q_close, 1) __wur;
++ __attribute__((__malloc__)) __attr_dealloc (q_close, 1) __wur;
+
+ /* Add DATA to tail of Q. Return 0 on success, -1 on error and set errno. */
+ int q_append(struct queue *q, const char *data);
diff --git a/auparse/auparse.h b/auparse/auparse.h
-index 95cf256d..c7dbe5ff 100644
+index c27f1ff9..87c52965 100644
--- a/auparse/auparse.h
+++ b/auparse/auparse.h
-@@ -51,7 +51,7 @@ typedef void (*auparse_callback_ptr)(auparse_state_t *au,
+@@ -55,7 +55,7 @@ typedef void (*auparse_callback_ptr)(auparse_state_t *au,
void auparse_destroy(auparse_state_t *au);
void auparse_destroy_ext(auparse_state_t *au, auparse_destroy_what_t what);
auparse_state_t *auparse_init(ausource_t source, const void *b)
@@ -30,5 +45,5 @@ index 95cf256d..c7dbe5ff 100644
__attr_access ((__read_only__, 2, 3));
int auparse_feed(auparse_state_t *au, const char *data, size_t data_len)
--
-2.37.1
+2.25.1
diff --git a/meta-oe/recipes-security/audit/audit/0002-Fixed-swig-host-contamination-issue.patch b/meta-oe/recipes-security/audit/audit/0002-Fixed-swig-host-contamination-issue.patch
deleted file mode 100644
index 4a1b979975..0000000000
--- a/meta-oe/recipes-security/audit/audit/0002-Fixed-swig-host-contamination-issue.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 3467abce1f3cfc96f9bdace7c09d95218cbcaeb1 Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Sun, 19 Jul 2015 02:42:58 +0900
-Subject: [PATCH] audit: Fixed swig host contamination issue
-
-The audit build uses swig to generate a python wrapper.
-Unfortunately, the swig info file references host include
-directories. Some of these were previously noticed and
-eliminated, but the one fixed here was not.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Anders Hedlund <anders.hedlund@windriver.com>
-Signed-off-by: Joe Slater <jslater@windriver.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- bindings/swig/python3/Makefile.am | 3 ++-
- bindings/swig/src/auditswig.i | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/bindings/swig/python3/Makefile.am b/bindings/swig/python3/Makefile.am
-index 9938418..fa46aac 100644
---- a/bindings/swig/python3/Makefile.am
-+++ b/bindings/swig/python3/Makefile.am
-@@ -22,6 +22,7 @@
- CONFIG_CLEAN_FILES = *.loT *.rej *.orig
- AM_CFLAGS = -fPIC -DPIC -fno-strict-aliasing $(PYTHON3_CFLAGS)
- AM_CPPFLAGS = -I. -I$(top_builddir) -I${top_srcdir}/lib $(PYTHON3_INCLUDES)
-+STDINC ?= /usr/include
- LIBS = $(top_builddir)/lib/libaudit.la
- SWIG_FLAGS = -python -py3 -modern
- SWIG_INCLUDES = -I. -I$(top_builddir) -I${top_srcdir}/lib $(PYTHON3_INCLUDES)
-@@ -37,7 +38,7 @@ _audit_la_DEPENDENCIES =${top_srcdir}/lib/libaudit.h ${top_builddir}/lib/libaudi
- _audit_la_LIBADD = ${top_builddir}/lib/libaudit.la
- nodist__audit_la_SOURCES = audit_wrap.c
- audit.py audit_wrap.c: ${srcdir}/../src/auditswig.i
-- swig -o audit_wrap.c ${SWIG_FLAGS} ${SWIG_INCLUDES} ${srcdir}/../src/auditswig.i
-+ swig -o audit_wrap.c ${SWIG_FLAGS} ${SWIG_INCLUDES} -I$(STDINC) ${srcdir}/../src/auditswig.i
-
- CLEANFILES = audit.py* audit_wrap.c *~
-
-diff --git a/bindings/swig/src/auditswig.i b/bindings/swig/src/auditswig.i
-index 7ebb373..424fb68 100644
---- a/bindings/swig/src/auditswig.i
-+++ b/bindings/swig/src/auditswig.i
-@@ -39,7 +39,7 @@ signed
- #define __attribute(X) /*nothing*/
- typedef unsigned __u32;
- typedef unsigned uid_t;
--%include "/usr/include/linux/audit.h"
-+%include "linux/audit.h"
- #define __extension__ /*nothing*/
- #include <stdint.h>
- %include "../lib/libaudit.h"
---
-2.17.1
-
diff --git a/meta-oe/recipes-security/audit/audit/0003-Header-definitions-need-to-be-external-when-building.patch b/meta-oe/recipes-security/audit/audit/0003-Header-definitions-need-to-be-external-when-building.patch
deleted file mode 100644
index f209e560bd..0000000000
--- a/meta-oe/recipes-security/audit/audit/0003-Header-definitions-need-to-be-external-when-building.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 2938f46d318df4a09565db837b60bafd0300f858 Mon Sep 17 00:00:00 2001
-From: Steve Grubb <sgrubb@redhat.com>
-Date: Fri, 10 Jan 2020 21:13:50 -0500
-Subject: [PATCH] Header definitions need to be external when building with
- -fno-common (which is default in GCC 10) - Tony Jones
-
-Upstream-Status: Backport
-[https://github.com/linux-audit/audit-userspace/commit/017e6c6ab95df55f34e339d2139def83e5dada1f]
-
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
----
- src/ausearch-common.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/ausearch-common.h b/src/ausearch-common.h
-index 6669203..3040547 100644
---- a/src/ausearch-common.h
-+++ b/src/ausearch-common.h
-@@ -50,7 +50,7 @@ extern pid_t event_pid;
- extern int event_exact_match;
- extern uid_t event_uid, event_euid, event_loginuid;
- extern const char *event_tuid, *event_teuid, *event_tauid;
--slist *event_node_list;
-+extern slist *event_node_list;
- extern const char *event_comm;
- extern const char *event_filename;
- extern const char *event_hostname;
---
-2.17.1
-
diff --git a/meta-oe/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch b/meta-oe/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch
deleted file mode 100644
index b023c80ae4..0000000000
--- a/meta-oe/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 3d13f92c1bb293523670ba01aea7e655b00a6709 Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Sun, 19 Jul 2015 02:42:58 +0900
-Subject: [PATCH] audit: Fixed swig host contamination issue
-
-The audit build uses swig to generate a python wrapper.
-Unfortunately, the swig info file references host include
-directories. Some of these were previously noticed and
-eliminated, but the one fixed here was not.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Anders Hedlund <anders.hedlund@windriver.com>
-Signed-off-by: Joe Slater <jslater@windriver.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- bindings/swig/python3/Makefile.am | 3 ++-
- bindings/swig/src/auditswig.i | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
---- a/bindings/swig/python3/Makefile.am
-+++ b/bindings/swig/python3/Makefile.am
-@@ -23,6 +23,7 @@
- CONFIG_CLEAN_FILES = *.loT *.rej *.orig
- AM_CFLAGS = -fPIC -DPIC -fno-strict-aliasing $(PYTHON3_CFLAGS)
- AM_CPPFLAGS = -I. -I$(top_builddir) -I${top_srcdir}/lib $(PYTHON3_INCLUDES)
-+STDINC ?= /usr/include
- LIBS = $(top_builddir)/lib/libaudit.la
- SWIG_FLAGS = -python -py3 -modern
- SWIG_INCLUDES = -I. -I$(top_builddir) -I${top_srcdir}/lib $(PYTHON3_INCLUDES)
-@@ -37,7 +38,7 @@ _audit_la_DEPENDENCIES =${top_srcdir}/li
- _audit_la_LIBADD = ${top_builddir}/lib/libaudit.la
- nodist__audit_la_SOURCES = audit_wrap.c
- audit.py audit_wrap.c: ${srcdir}/../src/auditswig.i
-- swig -o audit_wrap.c ${SWIG_FLAGS} ${SWIG_INCLUDES} ${srcdir}/../src/auditswig.i
-+ swig -o audit_wrap.c ${SWIG_FLAGS} ${SWIG_INCLUDES} -I$(STDINC) ${srcdir}/../src/auditswig.i
-
- CLEANFILES = audit.py* audit_wrap.c *~
-
---- a/bindings/swig/src/auditswig.i
-+++ b/bindings/swig/src/auditswig.i
-@@ -39,7 +39,7 @@ signed
- #define __attribute(X) /*nothing*/
- typedef unsigned __u32;
- typedef unsigned uid_t;
--%include "/usr/include/linux/audit.h"
-+%include "../lib/audit.h"
- #define __extension__ /*nothing*/
- %include <stdint.i>
- %include "../lib/libaudit.h"
diff --git a/meta-oe/recipes-security/audit/audit/auditd.service b/meta-oe/recipes-security/audit/audit/auditd.service
deleted file mode 100644
index 06c63f0e5e..0000000000
--- a/meta-oe/recipes-security/audit/audit/auditd.service
+++ /dev/null
@@ -1,28 +0,0 @@
-[Unit]
-Description=Security Auditing Service
-DefaultDependencies=no
-After=local-fs.target systemd-tmpfiles-setup.service
-Before=sysinit.target shutdown.target
-Conflicts=shutdown.target
-ConditionKernelCommandLine=!audit=0
-
-[Service]
-Type=forking
-PIDFile=/run/auditd.pid
-ExecStart=/sbin/auditd
-## To use augenrules, uncomment the next line and comment/delete the auditctl line.
-## NOTE: augenrules expect any rules to be added to /etc/audit/rules.d/
-#ExecStartPost=-/sbin/augenrules --load
-ExecStartPost=-/sbin/auditctl -R /etc/audit/audit.rules
-# By default we don't clear the rules on exit.
-# To enable this, uncomment the next line.
-#ExecStopPost=/sbin/auditctl -R /etc/audit/audit-stop.rules
-
-### Security Settings ###
-MemoryDenyWriteExecute=true
-LockPersonality=true
-ProtectControlGroups=true
-ProtectKernelModules=true
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-oe/recipes-security/audit/audit_2.8.5.bb b/meta-oe/recipes-security/audit/audit_2.8.5.bb
deleted file mode 100644
index 347c855063..0000000000
--- a/meta-oe/recipes-security/audit/audit_2.8.5.bb
+++ /dev/null
@@ -1,109 +0,0 @@
-SUMMARY = "User space tools for kernel auditing"
-DESCRIPTION = "The audit package contains the user space utilities for \
-storing and searching the audit records generated by the audit subsystem \
-in the Linux kernel."
-HOMEPAGE = "http://people.redhat.com/sgrubb/audit/"
-SECTION = "base"
-LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SRC_URI = "git://github.com/linux-audit/${BPN}-userspace.git;branch=2.8_maintenance;protocol=https \
- file://0001-Add-substitue-functions-for-strndupa-rawmemchr.patch \
- file://0002-Fixed-swig-host-contamination-issue.patch \
- file://0003-Header-definitions-need-to-be-external-when-building.patch \
- file://auditd \
- file://auditd.service \
- file://audit-volatile.conf \
-"
-
-S = "${WORKDIR}/git"
-SRCREV = "5fae55c1ad15b3cefe6890eba7311af163e9133c"
-
-inherit autotools python3native update-rc.d systemd
-
-UPDATERCPN = "auditd"
-INITSCRIPT_NAME = "auditd"
-INITSCRIPT_PARAMS = "defaults"
-
-SYSTEMD_PACKAGES = "auditd"
-SYSTEMD_SERVICE:auditd = "auditd.service"
-
-DEPENDS = "python3 tcp-wrappers libcap-ng linux-libc-headers swig-native"
-
-EXTRA_OECONF = "--without-prelude \
- --with-libwrap \
- --enable-gssapi-krb5=no \
- --with-libcap-ng=yes \
- --with-python3=yes \
- --libdir=${base_libdir} \
- --sbindir=${base_sbindir} \
- --without-python \
- --without-golang \
- --disable-zos-remote \
- --with-arm=yes \
- --with-aarch64=yes \
- "
-
-EXTRA_OEMAKE = "PYLIBVER='python${PYTHON_BASEVERSION}' \
- PYINC='${STAGING_INCDIR}/$(PYLIBVER)' \
- pyexecdir=${libdir}/python${PYTHON_BASEVERSION}/site-packages \
- STDINC='${STAGING_INCDIR}' \
- pkgconfigdir=${libdir}/pkgconfig \
- "
-
-SUMMARY:audispd-plugins = "Plugins for the audit event dispatcher"
-DESCRIPTION:audispd-plugins = "The audispd-plugins package provides plugins for the real-time \
-interface to the audit system, audispd. These plugins can do things \
-like relay events to remote machines or analyze events for suspicious \
-behavior."
-
-PACKAGES =+ "audispd-plugins"
-PACKAGES += "auditd ${PN}-python"
-
-FILES:${PN} = "${sysconfdir}/libaudit.conf ${base_libdir}/libaudit.so.1* ${base_libdir}/libauparse.so.*"
-FILES:auditd = "${bindir}/* ${base_sbindir}/* ${sysconfdir}/*"
-FILES:audispd-plugins = "${sysconfdir}/audisp/audisp-remote.conf \
- ${sysconfdir}/audisp/plugins.d/au-remote.conf \
- ${base_sbindir}/audisp-remote ${localstatedir}/spool/audit \
- "
-FILES:${PN}-dbg += "${libdir}/python${PYTHON_BASEVERSION}/*/.debug"
-FILES:${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}"
-
-CONFFILES:auditd = "${sysconfdir}/audit/audit.rules"
-RDEPENDS:auditd = "bash"
-
-do_install:append() {
- rm -f ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages/*.a
- rm -f ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages/*.la
-
- # reuse auditd config
- [ ! -e ${D}/etc/default ] && mkdir ${D}/etc/default
- mv ${D}/etc/sysconfig/auditd ${D}/etc/default
- rmdir ${D}/etc/sysconfig/
-
- # replace init.d
- install -D -m 0755 ${WORKDIR}/auditd ${D}/etc/init.d/auditd
- rm -rf ${D}/etc/rc.d
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- # install systemd unit files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/auditd.service ${D}${systemd_unitdir}/system
-
- install -d ${D}${sysconfdir}/tmpfiles.d/
- install -m 0644 ${WORKDIR}/audit-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
- fi
-
- # audit-2.5 doesn't install any rules by default, so we do that here
- mkdir -p ${D}/etc/audit ${D}/etc/audit/rules.d
- cp ${S}/rules/10-base-config.rules ${D}/etc/audit/rules.d/audit.rules
-
- chmod 750 ${D}/etc/audit ${D}/etc/audit/rules.d
- chmod 640 ${D}/etc/audit/auditd.conf ${D}/etc/audit/rules.d/audit.rules
-
- # Based on the audit.spec "Copy default rules into place on new installation"
- cp ${D}/etc/audit/rules.d/audit.rules ${D}/etc/audit/audit.rules
-
- # Create /var/spool/audit directory for audisp-remote
- install -m 0700 -d ${D}${localstatedir}/spool/audit
-}
diff --git a/meta-oe/recipes-security/audit/audit_3.0.8.bb b/meta-oe/recipes-security/audit/audit_3.0.8.bb
deleted file mode 100644
index 78439f66fe..0000000000
--- a/meta-oe/recipes-security/audit/audit_3.0.8.bb
+++ /dev/null
@@ -1,116 +0,0 @@
-SUMMARY = "User space tools for kernel auditing"
-DESCRIPTION = "The audit package contains the user space utilities for \
-storing and searching the audit records generated by the audit subsystem \
-in the Linux kernel."
-HOMEPAGE = "http://people.redhat.com/sgrubb/audit/"
-SECTION = "base"
-LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SRC_URI = "git://github.com/linux-audit/${BPN}-userspace.git;branch=master;protocol=https \
- file://Fixed-swig-host-contamination-issue.patch \
- file://0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch \
- file://auditd \
- file://auditd.service \
- file://audit-volatile.conf \
-"
-
-S = "${WORKDIR}/git"
-SRCREV = "54a62e78792fe583267cf80da717ee480b8f42bc"
-
-inherit autotools python3native update-rc.d systemd
-
-UPDATERCPN = "auditd"
-INITSCRIPT_NAME = "auditd"
-INITSCRIPT_PARAMS = "defaults"
-
-SYSTEMD_PACKAGES = "auditd"
-SYSTEMD_SERVICE:auditd = "auditd.service"
-
-DEPENDS = "python3 tcp-wrappers libcap-ng linux-libc-headers swig-native"
-
-EXTRA_OECONF = " --with-libwrap \
- --enable-gssapi-krb5=no \
- --with-libcap-ng=yes \
- --with-python3=yes \
- --libdir=${base_libdir} \
- --sbindir=${base_sbindir} \
- --without-python \
- --without-golang \
- --disable-zos-remote \
- --with-arm=yes \
- --with-aarch64=yes \
- "
-
-EXTRA_OEMAKE = "PYLIBVER='python${PYTHON_BASEVERSION}' \
- PYINC='${STAGING_INCDIR}/$(PYLIBVER)' \
- pyexecdir=${libdir}/python${PYTHON_BASEVERSION}/site-packages \
- STDINC='${STAGING_INCDIR}' \
- pkgconfigdir=${libdir}/pkgconfig \
- "
-
-SUMMARY:audispd-plugins = "Plugins for the audit event dispatcher"
-DESCRIPTION:audispd-plugins = "The audispd-plugins package provides plugins for the real-time \
-interface to the audit system, audispd. These plugins can do things \
-like relay events to remote machines or analyze events for suspicious \
-behavior."
-
-PACKAGES =+ "audispd-plugins"
-PACKAGES += "auditd ${PN}-python"
-
-FILES:${PN} = "${sysconfdir}/libaudit.conf ${base_libdir}/libaudit.so.1* ${base_libdir}/libauparse.so.*"
-FILES:auditd = "${bindir}/* ${base_sbindir}/* ${sysconfdir}/* ${datadir}/audit/*"
-FILES:audispd-plugins = "${sysconfdir}/audit/audisp-remote.conf \
- ${sysconfdir}/audit/plugins.d/au-remote.conf \
- ${sysconfdir}/audit/plugins.d/syslog.conf \
- ${base_sbindir}/audisp-remote \
- ${base_sbindir}/audisp-syslog \
- ${localstatedir}/spool/audit \
- "
-FILES:${PN}-dbg += "${libdir}/python${PYTHON_BASEVERSION}/*/.debug"
-FILES:${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}"
-
-CONFFILES:auditd = "${sysconfdir}/audit/audit.rules"
-
-do_configure:prepend() {
- sed -e 's|buf\[];|buf[0];|g' ${STAGING_INCDIR}/linux/audit.h > ${S}/lib/audit.h
- sed -i -e 's|#include <linux/audit.h>|#include "audit.h"|g' ${S}/lib/libaudit.h
-}
-
-do_install:append() {
- sed -i -e 's|#include "audit.h"|#include <linux/audit.h>|g' ${D}${includedir}/libaudit.h
-
- rm -f ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages/*.a
- rm -f ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages/*.la
-
- # reuse auditd config
- [ ! -e ${D}/etc/default ] && mkdir ${D}/etc/default
- mv ${D}/etc/sysconfig/auditd ${D}/etc/default
- rmdir ${D}/etc/sysconfig/
-
- # replace init.d
- install -D -m 0755 ${WORKDIR}/auditd ${D}/etc/init.d/auditd
- rm -rf ${D}/etc/rc.d
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- # install systemd unit files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/auditd.service ${D}${systemd_unitdir}/system
-
- install -d ${D}${sysconfdir}/tmpfiles.d/
- install -m 0644 ${WORKDIR}/audit-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
- fi
-
- # audit-2.5 doesn't install any rules by default, so we do that here
- mkdir -p ${D}/etc/audit ${D}/etc/audit/rules.d
- cp ${S}/rules/10-base-config.rules ${D}/etc/audit/rules.d/audit.rules
-
- chmod 750 ${D}/etc/audit ${D}/etc/audit/rules.d
- chmod 640 ${D}/etc/audit/auditd.conf ${D}/etc/audit/rules.d/audit.rules
-
- # Based on the audit.spec "Copy default rules into place on new installation"
- cp ${D}/etc/audit/rules.d/audit.rules ${D}/etc/audit/audit.rules
-
- # Create /var/spool/audit directory for audisp-remote
- install -m 0700 -d ${D}${localstatedir}/spool/audit
-}
diff --git a/meta-oe/recipes-security/audit/audit_4.0.1.bb b/meta-oe/recipes-security/audit/audit_4.0.1.bb
new file mode 100644
index 0000000000..a37ae3bb84
--- /dev/null
+++ b/meta-oe/recipes-security/audit/audit_4.0.1.bb
@@ -0,0 +1,103 @@
+SUMMARY = "User space tools for kernel auditing"
+DESCRIPTION = "The audit package contains the user space utilities for \
+storing and searching the audit records generated by the audit subsystem \
+in the Linux kernel."
+HOMEPAGE = "http://people.redhat.com/sgrubb/audit/"
+SECTION = "base"
+LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "git://github.com/linux-audit/${BPN}-userspace.git;branch=master;protocol=https \
+ file://0001-Fixed-swig-host-contamination-issue.patch \
+ file://auditd \
+ file://audit-volatile.conf \
+ "
+
+SRC_URI:append:libc-musl = " file://0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch"
+
+S = "${WORKDIR}/git"
+SRCREV = "22ccbd984e493524050ac445f796e9a7e90e1149"
+
+inherit autotools python3targetconfig update-rc.d systemd
+
+UPDATERCPN = "auditd"
+INITSCRIPT_NAME = "auditd"
+INITSCRIPT_PARAMS = "defaults"
+
+SYSTEMD_PACKAGES = "auditd"
+SYSTEMD_SERVICE:auditd = "auditd.service audit-rules.service"
+
+DEPENDS = "python3 tcp-wrappers libcap-ng linux-libc-headers swig-native python3-setuptools-native coreutils-native"
+
+EXTRA_OECONF = " \
+ --with-libwrap \
+ --with-libcap-ng \
+ --with-python3 \
+ --with-arm \
+ --with-aarch64 \
+ --without-golang \
+ --disable-gssapi-krb5 \
+ --disable-zos-remote \
+ --sbindir=${base_sbindir} \
+ --runstatedir=/run \
+ "
+
+EXTRA_OEMAKE = " \
+ PYTHON=python3 \
+ pythondir=${PYTHON_SITEPACKAGES_DIR} \
+ pyexecdir=${PYTHON_SITEPACKAGES_DIR} \
+ STDINC='${STAGING_INCDIR}' \
+ "
+
+SUMMARY:audispd-plugins = "Plugins for the audit event dispatcher"
+DESCRIPTION:audispd-plugins = "The audispd-plugins package provides plugins for the real-time \
+interface to the audit system, audispd. These plugins can do things \
+like relay events to remote machines or analyze events for suspicious \
+behavior."
+
+PACKAGES =+ "audispd-plugins"
+PACKAGES += "auditd ${PN}-python"
+
+FILES:${PN} = "${sysconfdir}/libaudit.conf ${libdir}/libau*.so.*"
+FILES:auditd = "${bindir}/* ${base_sbindir}/* ${sysconfdir}/* ${datadir}/audit-rules/* ${libexecdir}/*"
+FILES:audispd-plugins = "${sysconfdir}/audit/audisp-remote.conf \
+ ${sysconfdir}/audit/plugins.d/au-remote.conf \
+ ${sysconfdir}/audit/plugins.d/syslog.conf \
+ ${base_sbindir}/audisp-remote \
+ ${base_sbindir}/audisp-syslog \
+ ${localstatedir}/spool/audit \
+ "
+FILES:${PN}-dbg += "${libdir}/python${PYTHON_BASEVERSION}/*/.debug"
+FILES:${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}"
+
+CONFFILES:auditd = "${sysconfdir}/audit/audit.rules"
+
+do_configure:prepend() {
+ sed -e 's|buf\[];|buf[0];|g' ${STAGING_INCDIR}/linux/audit.h > ${S}/lib/audit.h
+ sed -i -e 's|#include <linux/audit.h>|#include "audit.h"|g' ${S}/lib/libaudit.h
+}
+
+do_install:append() {
+ sed -i -e 's|#include "audit.h"|#include <linux/audit.h>|g' ${D}${includedir}/libaudit.h
+
+ # Install default rules
+ install -d -m 750 ${D}/etc/audit
+ install -d -m 750 ${D}/etc/audit/rules.d
+
+ install -m 0640 ${S}/rules/10-base-config.rules ${D}/etc/audit/rules.d/audit.rules
+
+ # Based on the audit.spec "Copy default rules into place on new installation"
+ install -m 0640 ${D}/etc/audit/rules.d/audit.rules ${D}/etc/audit/audit.rules
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -D -m 0644 ${WORKDIR}/audit-volatile.conf ${D}${sysconfdir}/tmpfiles.d/audit.conf
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -D -m 0755 ${WORKDIR}/auditd ${D}/etc/init.d/auditd
+ rm -rf ${D}${libdir}/systemd
+ fi
+
+ # Create /var/spool/audit directory for audisp-remote
+ install -d -m 0700 ${D}${localstatedir}/spool/audit
+}
diff --git a/meta-oe/recipes-security/bubblewrap/bubblewrap_0.8.0.bb b/meta-oe/recipes-security/bubblewrap/bubblewrap_0.8.0.bb
new file mode 100644
index 0000000000..06c42addbf
--- /dev/null
+++ b/meta-oe/recipes-security/bubblewrap/bubblewrap_0.8.0.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Unprivileged sandboxing tool"
+HOMEPAGE = "https://github.com/containers/bubblewrap"
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+DEPENDS = "libcap"
+
+SRC_URI = "https://github.com/containers/${BPN}/releases/download/v${PV}/${BP}.tar.xz"
+SRC_URI[sha256sum] = "957ad1149db9033db88e988b12bcebe349a445e1efc8a9b59ad2939a113d333a"
+
+inherit autotools bash-completion github-releases manpages pkgconfig
+
+GITHUB_BASE_URI = "https://github.com/containers/${BPN}/releases/"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
+PACKAGECONFIG[manpages] = "--enable-man,--disable-man,libxslt-native docbook-xsl-stylesheets-native xmlto-native"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
+PACKAGECONFIG[setuid] = "--with-priv-mode=setuid,--with-priv-mode=none"
+
+PACKAGES += "${PN}-zsh-completion"
+
+FILES:${PN}-zsh-completion = "${datadir}/zsh/site-functions"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-security/keyutils/files/0001-Adhere-to-the-SOURCE_DATE_EPOCH-standard.patch b/meta-oe/recipes-security/keyutils/files/0001-Adhere-to-the-SOURCE_DATE_EPOCH-standard.patch
new file mode 100644
index 0000000000..ecc5b00967
--- /dev/null
+++ b/meta-oe/recipes-security/keyutils/files/0001-Adhere-to-the-SOURCE_DATE_EPOCH-standard.patch
@@ -0,0 +1,32 @@
+From 3f7f70c746277e1a89978166533374a8b9bd5407 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Wed, 25 Jan 2023 17:05:25 +0000
+Subject: [PATCH] Adhere to the SOURCE_DATE_EPOCH standard
+
+Adhere to the SOURCE_DATE_EPOCH standard and use it's date when set
+otherwise fall back to the default behaviour.
+
+Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+Upstream-Status: Pending
+
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 599b1452a05a..7776b0f0d63d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -109,7 +109,7 @@ all: keyctl request-key key.dns_resolver cxx
+ ###############################################################################
+ #RPATH = -Wl,-rpath,$(LIBDIR)
+
+-VCPPFLAGS := -DPKGBUILD="\"$(shell date -u +%F)\""
++VCPPFLAGS := -DPKGBUILD="\"$(date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%F)\""
+ VCPPFLAGS += -DPKGVERSION="\"keyutils-$(VERSION)\""
+ VCPPFLAGS += -DAPIVERSION="\"libkeyutils-$(APIVERSION)\""
+
+--
+2.39.0
+
diff --git a/meta-oe/recipes-security/keyutils/files/0001-tests-builtin_trusted-Failure-command-is-failed.patch b/meta-oe/recipes-security/keyutils/files/0001-tests-builtin_trusted-Failure-command-is-failed.patch
new file mode 100644
index 0000000000..b78d7f7f28
--- /dev/null
+++ b/meta-oe/recipes-security/keyutils/files/0001-tests-builtin_trusted-Failure-command-is-failed.patch
@@ -0,0 +1,27 @@
+From 714542f009860e1652bc06d05ab939290374a114 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Thu, 26 Jan 2023 08:27:12 +0000
+Subject: [PATCH 1/2] tests: builtin_trusted: Failure command is `failed`
+
+Upstream-Status: Pending
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ tests/features/builtin_trusted/runtest.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/features/builtin_trusted/runtest.sh b/tests/features/builtin_trusted/runtest.sh
+index 27910b5fa8e7..437f5ad1d6b2 100644
+--- a/tests/features/builtin_trusted/runtest.sh
++++ b/tests/features/builtin_trusted/runtest.sh
+@@ -24,7 +24,7 @@ id_key --to=blk %:.blacklist
+ # There should be at least one built-in trusted key for module signing.
+ list_keyring $btk
+ expect_keyring_rlist bkeys
+-if [ `echo $bkeys | wc -w` = 0 ]; then fail; fi
++if [ `echo $bkeys | wc -w` = 0 ]; then failed; fi
+
+ # Check we can't add random keys to those keyrings
+ marker "TRY ADDING USER KEYS"
+--
+2.39.0
+
diff --git a/meta-oe/recipes-security/keyutils/files/0001-tests-toolbox.inc.sh-update-regex-for-getting-endian.patch b/meta-oe/recipes-security/keyutils/files/0001-tests-toolbox.inc.sh-update-regex-for-getting-endian.patch
new file mode 100644
index 0000000000..314487aef6
--- /dev/null
+++ b/meta-oe/recipes-security/keyutils/files/0001-tests-toolbox.inc.sh-update-regex-for-getting-endian.patch
@@ -0,0 +1,35 @@
+From b84ecc2e3e56a25a3efd56c8942ad6bab3ff9ba1 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 2 Dec 2022 15:35:40 +0800
+Subject: [PATCH] tests/toolbox.inc.sh: update regex for getting endian
+
+Update regex for getting endian in following condition:
+/proc/777/exe: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2
+
+Upstream-Status: Submitted [Submitted to keyrings@vger.kernel.org ]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ tests/toolbox.inc.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/toolbox.inc.sh b/tests/toolbox.inc.sh
+index 8bf0db6f6d87..7ea2f253ba7d 100644
+--- a/tests/toolbox.inc.sh
++++ b/tests/toolbox.inc.sh
+@@ -13,10 +13,10 @@
+ echo === $OUTPUTFILE ===
+
+ endian=`file -L /proc/$$/exe`
+-if expr "$endian" : '.* MSB \+\(pie executable\|executable\|shared object\).*' >&/dev/null
++if expr "$endian" : '.* MSB .*\(pie executable\|executable\|shared object\).*' >&/dev/null
+ then
+ endian=BE
+-elif expr "$endian" : '.* LSB \+\(pie executable\|executable\|shared object\).*' >&/dev/null
++elif expr "$endian" : '.* LSB .*\(pie executable\|executable\|shared object\).*' >&/dev/null
+ then
+ endian=LE
+ else
+--
+2.39.0
+
diff --git a/meta-oe/recipes-security/keyutils/files/0002-tests-Use-head-n1-for-busybox-compatibility.patch b/meta-oe/recipes-security/keyutils/files/0002-tests-Use-head-n1-for-busybox-compatibility.patch
new file mode 100644
index 0000000000..900f2f0ec9
--- /dev/null
+++ b/meta-oe/recipes-security/keyutils/files/0002-tests-Use-head-n1-for-busybox-compatibility.patch
@@ -0,0 +1,64 @@
+From 5e660f246bb04560692ac9fc144574732c7e19e7 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Thu, 26 Jan 2023 08:28:16 +0000
+Subject: [PATCH 2/2] tests: Use `head -n1` for busybox compatibility
+
+Upstream-Status: Pending
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ tests/keyctl/session/valid/runtest.sh | 4 ++--
+ tests/keyctl/show/noargs/runtest.sh | 2 +-
+ tests/toolbox.inc.sh | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/tests/keyctl/session/valid/runtest.sh b/tests/keyctl/session/valid/runtest.sh
+index 4c831314c0b0..456e9f32de23 100644
+--- a/tests/keyctl/session/valid/runtest.sh
++++ b/tests/keyctl/session/valid/runtest.sh
+@@ -17,7 +17,7 @@ then
+ expect_key_rdesc rdesc "keyring@.*@.*@.*@_ses[^@]*\$"
+
+ # check the session keyring ID is shown
+- seskeyring="`tail -2 $OUTPUTFILE | head -1`"
++ seskeyring="`tail -2 $OUTPUTFILE | head -n1`"
+ if ! expr "$seskeyring" : "Joined session keyring: [0-9]*" >&/dev/null
+ then
+ failed
+@@ -30,7 +30,7 @@ new_session qwerty keyctl rdescribe @s "@"
+ expect_key_rdesc rdesc "keyring@.*@.*@.*@qwerty"
+
+ # check the session keyring ID is shown
+-seskeyring="`tail -2 $OUTPUTFILE | head -1`"
++seskeyring="`tail -2 $OUTPUTFILE | head -n1`"
+ if ! expr "$seskeyring" : "Joined session keyring: [0-9]*" >&/dev/null
+ then
+ failed
+diff --git a/tests/keyctl/show/noargs/runtest.sh b/tests/keyctl/show/noargs/runtest.sh
+index d5072716c76a..a6d8b6b585c4 100644
+--- a/tests/keyctl/show/noargs/runtest.sh
++++ b/tests/keyctl/show/noargs/runtest.sh
+@@ -31,7 +31,7 @@ then
+ fi
+
+ # the first key listed (line 2) should be a keying (the session keyring) ...
+-keyring1="`grep -n keyring $OUTPUTFILE | cut -d: -f1 | head -1`"
++keyring1="`grep -n keyring $OUTPUTFILE | cut -d: -f1 | head -n1`"
+ if [ "$keyring1" != "4" ]
+ then
+ failed
+diff --git a/tests/toolbox.inc.sh b/tests/toolbox.inc.sh
+index 7ea2f253ba7d..a461a73daaa3 100644
+--- a/tests/toolbox.inc.sh
++++ b/tests/toolbox.inc.sh
+@@ -229,7 +229,7 @@ function check_notify ()
+ if [ "$1" = "-2" ]
+ then
+ shift
+- my_logline="`tail -2 $watch_log | head -1`"
++ my_logline="`tail -2 $watch_log | head -n1`"
+ else
+ my_logline="`tail -1 $watch_log`"
+ fi
+--
+2.39.0
+
diff --git a/meta-oe/recipes-security/keyutils/keyutils_1.6.1.bb b/meta-oe/recipes-security/keyutils/keyutils_1.6.1.bb
deleted file mode 100644
index 8a95a15f6f..0000000000
--- a/meta-oe/recipes-security/keyutils/keyutils_1.6.1.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "Linux Key Management Utilities"
-DESCRIPTION = "\
- Utilities to control the kernel key management facility and to provide \
- a mechanism by which the kernel call back to userspace to get a key \
- instantiated. \
- "
-HOMEPAGE = "http://people.redhat.com/dhowells/keyutils"
-SECTION = "base"
-
-LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
-
-LIC_FILES_CHKSUM = "file://LICENCE.GPL;md5=5f6e72824f5da505c1f4a7197f004b45 \
- file://LICENCE.LGPL;md5=7d1cacaa3ea752b72ea5e525df54a21f"
-
-inherit siteinfo autotools-brokensep ptest
-
-SRC_URI = "http://people.redhat.com/dhowells/keyutils/${BP}.tar.bz2 \
- file://keyutils-test-fix-output-format.patch \
- file://keyutils-fix-error-report-by-adding-default-message.patch \
- file://run-ptest \
- file://fix_library_install_path.patch \
- "
-
-SRC_URI[md5sum] = "919af7f33576816b423d537f8a8692e8"
-SRC_URI[sha256sum] = "c8b15722ae51d95b9ad76cc6d49a4c2cc19b0c60f72f61fb9bf43eea7cbd64ce"
-
-EXTRA_OEMAKE = "'CFLAGS=${CFLAGS} -Wall' \
- NO_ARLIB=1 \
- BINDIR=${base_bindir} \
- SBINDIR=${base_sbindir} \
- LIBDIR=${libdir} \
- USRLIBDIR=${libdir} \
- INCLUDEDIR=${includedir} \
- ETCDIR=${sysconfdir} \
- SHAREDIR=${datadir}/keyutils \
- MANDIR=${datadir}/man \
- BUILDFOR=${SITEINFO_BITS}-bit \
- NO_GLIBC_KEYERR=1 \
- "
-
-do_install () {
- install -d ${D}/${libdir}/pkgconfig
- oe_runmake DESTDIR=${D} install
-}
-
-do_install_ptest () {
- cp -r ${S}/tests ${D}${PTEST_PATH}/
- sed -i -e 's/OSDIST=Unknown/OSDIST=${DISTRO}/' ${D}${PTEST_PATH}/tests/prepare.inc.sh
-}
-
-
-RDEPENDS:${PN}-ptest += "lsb-release"
-RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils"
-RDEPENDS:${PN}-ptest:append:libc-musl = " musl-utils"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb b/meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb
new file mode 100644
index 0000000000..7b3d728216
--- /dev/null
+++ b/meta-oe/recipes-security/keyutils/keyutils_1.6.3.bb
@@ -0,0 +1,62 @@
+SUMMARY = "Linux Key Management Utilities"
+DESCRIPTION = "\
+ Utilities to control the kernel key management facility and to provide \
+ a mechanism by which the kernel call back to userspace to get a key \
+ instantiated. \
+ "
+HOMEPAGE = "http://people.redhat.com/dhowells/keyutils"
+SECTION = "base"
+
+LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
+
+LIC_FILES_CHKSUM = "file://LICENCE.GPL;md5=5f6e72824f5da505c1f4a7197f004b45 \
+ file://LICENCE.LGPL;md5=7d1cacaa3ea752b72ea5e525df54a21f"
+
+inherit manpages ptest
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git;protocol=https;branch=master \
+ file://keyutils-test-fix-output-format.patch \
+ file://keyutils-fix-error-report-by-adding-default-message.patch \
+ file://run-ptest \
+ file://fix_library_install_path.patch \
+ file://0001-tests-toolbox.inc.sh-update-regex-for-getting-endian.patch \
+ file://0001-Adhere-to-the-SOURCE_DATE_EPOCH-standard.patch \
+ file://0001-tests-builtin_trusted-Failure-command-is-failed.patch \
+ file://0002-tests-Use-head-n1-for-busybox-compatibility.patch \
+ "
+SRCREV = "cb3bb194cca88211cbfcdde2f10c0f43c3fb8ec3"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[manpages] = ""
+
+EXTRA_OEMAKE = "'CFLAGS=${CFLAGS} -Wall' \
+ NO_ARLIB=1 \
+ BINDIR=${base_bindir} \
+ SBINDIR=${base_sbindir} \
+ LIBDIR=${libdir} \
+ USRLIBDIR=${libdir} \
+ INCLUDEDIR=${includedir} \
+ ETCDIR=${sysconfdir} \
+ SHAREDIR=${datadir}/keyutils \
+ MANDIR=${datadir}/man \
+ BUILDFOR=${SITEINFO_BITS}-bit \
+ NO_GLIBC_KEYERR=1 \
+ "
+
+do_install () {
+ oe_runmake DESTDIR=${D} install
+}
+
+do_install_ptest () {
+ cp -r ${S}/tests ${D}${PTEST_PATH}/
+ sed -i -e 's/OSDIST=Unknown/OSDIST=${DISTRO}/' ${D}${PTEST_PATH}/tests/prepare.inc.sh
+}
+
+
+RDEPENDS:${PN}-ptest += "bash file lsb-release make"
+RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils"
+RDEPENDS:${PN}-ptest:append:libc-musl = " musl-utils"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-security/nmap/files/0001-Include-time.h-header-to-pass-clang-compilation.patch b/meta-oe/recipes-security/nmap/files/0001-Include-time.h-header-to-pass-clang-compilation.patch
index f93af2d793..5ee28031b8 100644
--- a/meta-oe/recipes-security/nmap/files/0001-Include-time.h-header-to-pass-clang-compilation.patch
+++ b/meta-oe/recipes-security/nmap/files/0001-Include-time.h-header-to-pass-clang-compilation.patch
@@ -4,6 +4,8 @@ Date: Fri, 20 Sep 2019 15:02:45 -0400
Subject: [PATCH] Include time.h header to pass clang compilation
---
+Upstream-Status: Pending
+
nmap_error.cc | 11 +----------
nping/EchoServer.cc | 1 +
osscan2.cc | 1 +
diff --git a/meta-oe/recipes-security/nmap/nmap_7.80.bb b/meta-oe/recipes-security/nmap/nmap_7.80.bb
index 030f033485..f9fe82a91d 100644
--- a/meta-oe/recipes-security/nmap/nmap_7.80.bb
+++ b/meta-oe/recipes-security/nmap/nmap_7.80.bb
@@ -19,7 +19,7 @@ SRC_URI[sha256sum] = "fcfa5a0e42099e12e4bf7a68ebe6fde05553383a682e816a7ec9256ab4
inherit autotools-brokensep pkgconfig python3native
-PACKAGECONFIG ?= "ncat nping ndiff pcap"
+PACKAGECONFIG ?= "ncat nping pcap"
PACKAGECONFIG[pcap] = "--with-pcap=linux, --without-pcap, libpcap, libpcap"
PACKAGECONFIG[pcre] = "--with-libpcre=${STAGING_LIBDIR}/.., --with-libpcre=included, libpcre"
@@ -59,4 +59,8 @@ do_install:append() {
FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR} ${datadir}/ncat"
-RDEPENDS:${PN} += "python3-core"
+RDEPENDS:${PN} += " \
+ python3-difflib \
+ python3-asyncio \
+ python3-xml \
+"
diff --git a/meta-oe/recipes-security/passwdqc/passwdqc/makefile-add-ldflags.patch b/meta-oe/recipes-security/passwdqc/passwdqc/makefile-add-ldflags.patch
index 6e4803f4f3..4e9659aa58 100644
--- a/meta-oe/recipes-security/passwdqc/passwdqc/makefile-add-ldflags.patch
+++ b/meta-oe/recipes-security/passwdqc/passwdqc/makefile-add-ldflags.patch
@@ -3,10 +3,15 @@ Add LDFLAGS variable to Makefile so that extra linker flags can be sent via this
Upstream-Status: Pending
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ Makefile | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+diff --git a/Makefile b/Makefile
+index 404f036..a9b18f0 100644
--- a/Makefile
+++ b/Makefile
-@@ -68,18 +68,17 @@ XGETTEXT = xgettext
+@@ -75,13 +75,12 @@ XGETTEXT = xgettext
XGETTEXT_OPTS = --keyword=_ --keyword=P2_:1,1 --keyword=P3_:1,2 --language=C --add-comments
MSGMERGE = msgmerge
@@ -21,9 +26,15 @@ Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
-Wl,--soname,$(SHARED_LIB),--version-script,$(MAP_LIB)
LDFLAGS_lib_SUN = $(LDFLAGS_shared_SUN)
LDFLAGS_lib_HP = $(LDFLAGS_shared_HP)
+@@ -90,7 +89,7 @@ LDFLAGS_lib_CYGWIN = $(LDFLAGS_shared) \
+ -Wl,--export-all-symbols \
+ -Wl,--enable-auto-import
LDFLAGS_pam = $(LDFLAGS_shared)
-LDFLAGS_pam_LINUX = $(LDFLAGS_shared_LINUX) \
+LDFLAGS_pam_LINUX = $(LDFLAGS) $(LDFLAGS_shared_LINUX) \
-Wl,--version-script,$(MAP_PAM)
LDFLAGS_pam_SUN = $(LDFLAGS_shared_SUN)
LDFLAGS_pam_HP = $(LDFLAGS_shared_HP)
+--
+2.34.1
+
diff --git a/meta-oe/recipes-security/passwdqc/passwdqc_2.0.2.bb b/meta-oe/recipes-security/passwdqc/passwdqc_2.0.2.bb
deleted file mode 100644
index 8462701b31..0000000000
--- a/meta-oe/recipes-security/passwdqc/passwdqc_2.0.2.bb
+++ /dev/null
@@ -1,65 +0,0 @@
-SUMMARY = "A password/passphrase strength checking and enforcement toolset"
-DESCRIPTION = "\
-passwdqc is a password/passphrase strength checking and policy enforcement \
-toolset, including an optional PAM module (pam_passwdqc), command-line \
-programs (pwqcheck and pwqgen), and a library (libpasswdqc). \
-pam_passwdqc is normally invoked on password changes by programs such as \
-passwd(1). It is capable of checking password or passphrase strength, \
-enforcing a policy, and offering randomly-generated passphrases, with \
-all of these features being optional and easily (re-)configurable. \
-\
-pwqcheck and pwqgen are standalone password/passphrase strength checking \
-and random passphrase generator programs, respectively, which are usable \
-from scripts. \
-\
-libpasswdqc is the underlying library, which may also be used from \
-third-party programs. \
-"
-
-HOMEPAGE = "http://www.openwall.com/passwdqc"
-SECTION = "System Environment/Base"
-
-DEPENDS += "libpam"
-
-inherit features_check
-REQUIRED_DISTRO_FEATURES = "pam"
-
-LICENSE = "BSD-1-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ac99c8678577a1c2f9f04cccee411d5d"
-
-SRC_URI = "http://www.openwall.com/${BPN}/${BP}.tar.gz \
- file://makefile-add-ldflags.patch \
- "
-SRC_URI[sha256sum] = "ff1f505764c020f6a4484b1e0cc4fdbf2e3f71b522926d90b4709104ca0604ab"
-
-# explicitly define LINUX_PAM in case DISTRO_FEATURES no pam
-# this package's pam_passwdqc.so needs pam
-CFLAGS:append = " -Wall -fPIC -DHAVE_SHADOW -DLINUX_PAM"
-
-# -e is no longer default setting in bitbake.conf
-EXTRA_OEMAKE = "-e"
-
-do_compile() {
- # make sure sub make use environment to override variables in Makefile
- # Linux) $(MAKE), there is a tab between
- sed -i -e 's/Linux) $(MAKE) CFLAGS_lib/Linux) $(MAKE) -e CFLAGS_lib/' ${S}/Makefile
-
- # LD_lib and LD must be CC because of Makefile
- oe_runmake LD="${CC}"
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D} SHARED_LIBDIR=${base_libdir} \
- DEVEL_LIBDIR=${libdir} SECUREDIR=${base_libdir}/security \
- INSTALL="install -p"
-}
-
-PROVIDES += "pam-${BPN}"
-PACKAGES =+ "lib${BPN} pam-${BPN}"
-
-FILES:lib${BPN} = "${base_libdir}/libpasswdqc.so.1"
-FILES:pam-${BPN} = "${base_libdir}/security/pam_passwdqc.so"
-FILES:${PN}-dbg += "${base_libdir}/security/.debug"
-
-RDEPENDS:${PN} = "lib${BPN} pam-${BPN}"
-RDEPENDS:pam-${BPN} = "lib${BPN}"
diff --git a/meta-oe/recipes-security/passwdqc/passwdqc_2.0.3.bb b/meta-oe/recipes-security/passwdqc/passwdqc_2.0.3.bb
new file mode 100644
index 0000000000..8694052e61
--- /dev/null
+++ b/meta-oe/recipes-security/passwdqc/passwdqc_2.0.3.bb
@@ -0,0 +1,65 @@
+SUMMARY = "A password/passphrase strength checking and enforcement toolset"
+DESCRIPTION = "\
+passwdqc is a password/passphrase strength checking and policy enforcement \
+toolset, including an optional PAM module (pam_passwdqc), command-line \
+programs (pwqcheck and pwqgen), and a library (libpasswdqc). \
+pam_passwdqc is normally invoked on password changes by programs such as \
+passwd(1). It is capable of checking password or passphrase strength, \
+enforcing a policy, and offering randomly-generated passphrases, with \
+all of these features being optional and easily (re-)configurable. \
+\
+pwqcheck and pwqgen are standalone password/passphrase strength checking \
+and random passphrase generator programs, respectively, which are usable \
+from scripts. \
+\
+libpasswdqc is the underlying library, which may also be used from \
+third-party programs. \
+"
+
+HOMEPAGE = "http://www.openwall.com/passwdqc"
+SECTION = "System Environment/Base"
+
+DEPENDS += "libpam"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+LICENSE = "BSD-1-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ac99c8678577a1c2f9f04cccee411d5d"
+
+SRC_URI = "http://www.openwall.com/${BPN}/${BP}.tar.gz \
+ file://makefile-add-ldflags.patch \
+ "
+SRC_URI[sha256sum] = "53b0f4bc49369f06195e9e13abb6cff352d5acb79e861004ec95973896488cf4"
+
+# explicitly define LINUX_PAM in case DISTRO_FEATURES no pam
+# this package's pam_passwdqc.so needs pam
+CFLAGS:append = " -Wall -fPIC -DHAVE_SHADOW -DLINUX_PAM"
+
+# -e is no longer default setting in bitbake.conf
+EXTRA_OEMAKE = "-e"
+
+do_compile() {
+ # make sure sub make use environment to override variables in Makefile
+ # Linux) $(MAKE), there is a tab between
+ sed -i -e 's/Linux) $(MAKE) CFLAGS_lib/Linux) $(MAKE) -e CFLAGS_lib/' ${S}/Makefile
+
+ # LD_lib and LD must be CC because of Makefile
+ oe_runmake LD="${CC}"
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} SHARED_LIBDIR=${base_libdir} \
+ DEVEL_LIBDIR=${libdir} SECUREDIR=${base_libdir}/security \
+ INSTALL="install -p"
+}
+
+PROVIDES += "pam-${BPN}"
+PACKAGES =+ "lib${BPN} pam-${BPN}"
+
+FILES:lib${BPN} = "${base_libdir}/libpasswdqc.so.1"
+FILES:pam-${BPN} = "${base_libdir}/security/pam_passwdqc.so"
+FILES:${PN}-dbg += "${base_libdir}/security/.debug"
+
+RDEPENDS:${PN} = "lib${BPN} pam-${BPN}"
+RDEPENDS:pam-${BPN} = "lib${BPN}"
diff --git a/meta-oe/recipes-security/softhsm/files/0001-avoid-unnecessary-check-for-sqlite3-binary.patch b/meta-oe/recipes-security/softhsm/files/0001-avoid-unnecessary-check-for-sqlite3-binary.patch
new file mode 100644
index 0000000000..7dddcdb78b
--- /dev/null
+++ b/meta-oe/recipes-security/softhsm/files/0001-avoid-unnecessary-check-for-sqlite3-binary.patch
@@ -0,0 +1,40 @@
+From 88d968346184058df18dc69171dcd4fd612c2341 Mon Sep 17 00:00:00 2001
+From: Jan Luebbe <sho@stratum0.net>
+Date: Mon, 30 Jan 2023 12:48:23 +0100
+Subject: [PATCH] avoid unnecessary check for sqlite3 binary
+
+Only the library is used, not the sqlite3 binary. Drop this check to simplify
+cross-compilation (as no native sqlite3 binary is needed).
+
+Upstream-Status: Submitted [https://github.com/opendnssec/SoftHSMv2/pull/694]
+---
+ m4/acx_sqlite3.m4 | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/m4/acx_sqlite3.m4 b/m4/acx_sqlite3.m4
+index fd942a75e1a6..17c126d161f5 100644
+--- a/m4/acx_sqlite3.m4
++++ b/m4/acx_sqlite3.m4
+@@ -4,19 +4,13 @@ AC_DEFUN([ACX_SQLITE3],[
+ [
+ SQLITE3_INCLUDES="-I$withval/include"
+ SQLITE3_LIBDIRS="-L$withval/lib"
+- AC_PATH_PROGS(SQLITE3, sqlite3, sqlite3, $withval/bin)
+
+ ],[
+ SQLITE3_INCLUDES=""
+ SQLITE3_LIBDIRS=""
+- AC_PATH_PROGS(SQLITE3, sqlite3, sqlite3, $PATH)
+ ])
+
+
+- if ! test -x "$SQLITE3"; then
+- AC_MSG_ERROR([sqlite3 command not found])
+- fi
+-
+ AC_MSG_CHECKING(what are the SQLite3 includes)
+ AC_MSG_RESULT($SQLITE3_INCLUDES)
+
+--
+2.30.2
+
diff --git a/meta-oe/recipes-security/softhsm/softhsm_2.6.1.bb b/meta-oe/recipes-security/softhsm/softhsm_2.6.1.bb
index d7bcd4f03b..930bca96ff 100644
--- a/meta-oe/recipes-security/softhsm/softhsm_2.6.1.bb
+++ b/meta-oe/recipes-security/softhsm/softhsm_2.6.1.bb
@@ -5,12 +5,15 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=ef3f77a3507c3d91e75b9f2bdaee4210"
DEPENDS = "sqlite3"
-SRC_URI = "https://dist.opendnssec.org/source/softhsm-2.6.1.tar.gz"
+SRC_URI = "https://dist.opendnssec.org/source/softhsm-2.6.1.tar.gz \
+ file://0001-avoid-unnecessary-check-for-sqlite3-binary.patch \
+"
SRC_URI[sha256sum] = "61249473054bcd1811519ef9a989a880a7bdcc36d317c9c25457fc614df475f2"
inherit autotools pkgconfig siteinfo
EXTRA_OECONF += " --with-sqlite3=${STAGING_DIR_HOST}/usr"
+EXTRA_OECONF += " --with-objectstore-backend-db"
EXTRA_OECONF += "${@oe.utils.conditional('SITEINFO_BITS', '64', ' --enable-64bit', '', d)}"
PACKAGECONFIG ?= "ecc eddsa pk11 openssl"
@@ -24,7 +27,9 @@ PACKAGECONFIG[notvisable] = "--disable-visibility"
PACKAGECONFIG[openssl] = "--with-openssl=${STAGING_DIR_HOST}/usr --with-crypto-backend=openssl, --without-openssl, openssl, openssl"
PACKAGECONFIG[botan] = "--with-botan=${STAGING_DIR_HOST}/usr --with-crypto-backend=botan, --without-botan, botan"
PACKAGECONFIG[migrate] = "--with-migrate"
-PACKAGECONFIG[pk11] = "--enable-p11-kit --with-p11-kit==${STAGING_DIR_HOST}/usr, --without-p11-kit, p11-kit, p11-kit"
+PACKAGECONFIG[pk11] = "--enable-p11-kit --with-p11-kit=${datadir}/p11-kit/modules, --without-p11-kit, p11-kit, p11-kit"
+
+FILES:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'pk11', '${datadir}/p11-kit/modules/softhsm2.module', '', d)}"
RDEPENDS:${PN} = "sqlite3"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-security/tomoyo-tools/tomoyo-tools_2.5.0.bb b/meta-oe/recipes-security/tomoyo-tools/tomoyo-tools_2.5.0.bb
deleted file mode 100644
index 2fcdb6bd61..0000000000
--- a/meta-oe/recipes-security/tomoyo-tools/tomoyo-tools_2.5.0.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "TOMOYO Linux tools"
-DESCRIPTION = "TOMOYO Linux is a Mandatory Access Control (MAC) implementation \
-for Linux that can be used to increase the security of a system, while also \
-being useful purely as a system analysis tool."
-HOMEPAGE = "http://tomoyo.sourceforge.jp/"
-SECTION = "System Environment/Kernel"
-
-SRC_URI = "http://jaist.dl.sourceforge.jp/tomoyo/53357/${BP}-20170102.tar.gz"
-SRC_URI[sha256sum] = "00fedfac5e514321250bbe69eaccc732c8a8158596f77a785c2e3ae9f9968283"
-
-S = "${WORKDIR}/${BPN}"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING.tomoyo;md5=751419260aa954499f7abaabaa882bbe"
-
-FILES:${PN} += "${libdir}/tomoyo"
-FILES:${PN}-dbg += "${libdir}/tomoyo/.debug"
-
-DEPENDS = "linux-libc-headers ncurses"
-
-EXTRA_OEMAKE = "-e USRLIBDIR=${libdir}"
-
-do_compile () {
- oe_runmake 'CC=${CC}'
-}
-
-do_install() {
- oe_runmake install SBINDIR=${base_sbindir} INSTALLDIR=${D}
-}
diff --git a/meta-oe/recipes-security/tomoyo-tools/tomoyo-tools_2.6.1.bb b/meta-oe/recipes-security/tomoyo-tools/tomoyo-tools_2.6.1.bb
new file mode 100644
index 0000000000..86acdc7aa1
--- /dev/null
+++ b/meta-oe/recipes-security/tomoyo-tools/tomoyo-tools_2.6.1.bb
@@ -0,0 +1,29 @@
+SUMMARY = "TOMOYO Linux tools"
+DESCRIPTION = "TOMOYO Linux is a Mandatory Access Control (MAC) implementation \
+for Linux that can be used to increase the security of a system, while also \
+being useful purely as a system analysis tool."
+HOMEPAGE = "http://tomoyo.sourceforge.jp/"
+SECTION = "System Environment/Kernel"
+
+SRC_URI = "http://jaist.dl.sourceforge.jp/tomoyo/70710/${BP}-20210910.tar.gz"
+SRC_URI[sha256sum] = "47a12cdb1fe7bbd0b2e3486150fe1e754fa9c869aeefd42fd311c4022b78010a"
+
+S = "${WORKDIR}/${BPN}"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING.tomoyo;md5=751419260aa954499f7abaabaa882bbe"
+
+FILES:${PN} += "${libdir}/tomoyo"
+FILES:${PN}-dbg += "${libdir}/tomoyo/.debug"
+
+DEPENDS = "linux-libc-headers ncurses"
+
+EXTRA_OEMAKE = "-e USRLIBDIR=${libdir}"
+
+do_compile () {
+ oe_runmake 'CC=${CC}'
+}
+
+do_install() {
+ oe_runmake install SBINDIR=${base_sbindir} INSTALLDIR=${D}
+}
diff --git a/meta-oe/recipes-security/usbguard/usbguard/0001-include-missing-cstdint.patch b/meta-oe/recipes-security/usbguard/usbguard/0001-include-missing-cstdint.patch
new file mode 100644
index 0000000000..5cbe64091c
--- /dev/null
+++ b/meta-oe/recipes-security/usbguard/usbguard/0001-include-missing-cstdint.patch
@@ -0,0 +1,45 @@
+From 1da0cfbb9ae978822d961d8b22d8d5125c11247a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 26 Jan 2023 23:46:56 -0800
+Subject: [PATCH] include missing <cstdint>
+
+gcc 13 moved some includes around and as a result <cstdint> is no
+longer transitively included [1]. Explicitly include it for
+uint8_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Upstream-Status: Submitted [https://github.com/USBGuard/usbguard/pull/583]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/Library/Base64.cpp | 1 -
+ src/Library/Base64.hpp | 1 +
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Library/Base64.cpp b/src/Library/Base64.cpp
+index ddb28dc..0246a13 100644
+--- a/src/Library/Base64.cpp
++++ b/src/Library/Base64.cpp
+@@ -22,7 +22,6 @@
+
+ #include "Base64.hpp"
+ #include <stdexcept>
+-#include <cstdint>
+
+ namespace usbguard
+ {
+diff --git a/src/Library/Base64.hpp b/src/Library/Base64.hpp
+index 0947f21..e0c745c 100644
+--- a/src/Library/Base64.hpp
++++ b/src/Library/Base64.hpp
+@@ -23,6 +23,7 @@
+ #endif
+
+ #include <string>
++#include <cstdint>
+ #include <cstddef>
+
+ namespace usbguard
+--
+2.39.1
+
diff --git a/meta-oe/recipes-security/usbguard/usbguard_1.1.1.bb b/meta-oe/recipes-security/usbguard/usbguard_1.1.1.bb
deleted file mode 100644
index 8df78ec817..0000000000
--- a/meta-oe/recipes-security/usbguard/usbguard_1.1.1.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright (c) 2021 Koninklijke Philips N.V.
-#
-# SPDX-License-Identifier: MIT
-#
-SUMMARY = "USBGuard daemon for blacklisting and whitelisting of USB devices"
-DESCRIPTION = "The USBGuard software framework helps to protect your computer against \
-rogue USB devices (a.k.a. Bad USB) by implementing basic whitelisting and blacklisting \
-capabilities based on device attributes. This recipe takes OpenSSL as crypto-backend for \
-computing device hashes (Supported values are sodium, gcrypt, openssl)."
-HOMEPAGE = "https://usbguard.github.io/"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "https://github.com/USBGuard/usbguard/releases/download/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
- file://0001-Add-and-use-pkgconfig-instead-of-libgcrypt-config.patch"
-
-SRC_URI[sha256sum] = "460ebfb4ffc5609739a202a3a1d9fda1c30de033b634845b8baa136352bfb432"
-
-inherit autotools-brokensep bash-completion pkgconfig systemd
-
-DEPENDS = "glib-2.0-native libcap-ng libqb libxml2-native libxslt-native pegtl protobuf protobuf-native xmlto-native"
-
-S = "${WORKDIR}/${BPN}-${PV}"
-
-EXTRA_OECONF += "\
- --with-bundled-catch \
- --with-bundled-pegtl \
-"
-
-PACKAGECONFIG ?= "\
- openssl \
- ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
-"
-
-# USBGuard has made polkit mandatory to configure with-dbus
-PACKAGECONFIG[dbus] = "--with-dbus,--without-dbus,dbus-glib polkit"
-PACKAGECONFIG[libgcrypt] = "--with-crypto-library=gcrypt,,libgcrypt,,,libsodium openssl"
-PACKAGECONFIG[libsodium] = "--with-crypto-library=sodium,,libsodium,,,libgcrypt openssl"
-PACKAGECONFIG[openssl] = "--with-crypto-library=openssl,,openssl,,,libgcrypt libsodium"
-PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit"
-PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
-PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
-
-SYSTEMD_PACKAGES = "${PN}"
-
-SYSTEMD_SERVICE:${PN} = "usbguard.service ${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'usbguard-dbus.service', '', d)}"
-
-FILES:${PN} += "\
- ${systemd_unitdir}/system/usbguard.service \
- ${systemd_unitdir}/system/usbguard-dbus.service \
- ${datadir}/polkit-1 \
- ${datadir}/dbus-1 \
- ${nonarch_libdir}/tmpfiles.d \
-"
-
-do_install:append() {
-# Create /var/log/usbguard in runtime.
- if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
- install -d ${D}${nonarch_libdir}/tmpfiles.d
- echo "d ${localstatedir}/log/${BPN} 0755 root root -" > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
- fi
- if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then
- install -d ${D}${sysconfdir}/default/volatiles
- echo "d root root 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
- fi
- rm -rf ${D}${localstatedir}/log
-}
diff --git a/meta-oe/recipes-security/usbguard/usbguard_1.1.2.bb b/meta-oe/recipes-security/usbguard/usbguard_1.1.2.bb
new file mode 100644
index 0000000000..c062f27059
--- /dev/null
+++ b/meta-oe/recipes-security/usbguard/usbguard_1.1.2.bb
@@ -0,0 +1,70 @@
+# Copyright (c) 2021 Koninklijke Philips N.V.
+#
+# SPDX-License-Identifier: MIT
+#
+SUMMARY = "USBGuard daemon for blacklisting and whitelisting of USB devices"
+DESCRIPTION = "The USBGuard software framework helps to protect your computer against \
+rogue USB devices (a.k.a. Bad USB) by implementing basic whitelisting and blacklisting \
+capabilities based on device attributes. This recipe takes OpenSSL as crypto-backend for \
+computing device hashes (Supported values are sodium, gcrypt, openssl)."
+HOMEPAGE = "https://usbguard.github.io/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://github.com/USBGuard/usbguard/releases/download/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
+ file://0001-include-missing-cstdint.patch \
+ file://0001-Add-and-use-pkgconfig-instead-of-libgcrypt-config.patch"
+
+SRC_URI[sha256sum] = "dcf5c90f3f93030e04df1baeb8d388b678c40dd48b135ea12a7be7dee8944934"
+
+inherit autotools-brokensep bash-completion pkgconfig systemd github-releases
+
+DEPENDS = "glib-2.0-native libcap-ng libqb libxml2-native libxslt-native protobuf protobuf-native xmlto-native"
+
+UPSTREAM_CHECK_REGEX = "releases/tag/usbguard-(?P<pver>\d+(\.\d+)+)"
+
+EXTRA_OECONF += "\
+ --with-bundled-catch \
+ --with-bundled-pegtl \
+"
+
+PACKAGECONFIG ?= "\
+ openssl \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+"
+
+# USBGuard has made polkit mandatory to configure with-dbus
+PACKAGECONFIG[dbus] = "--with-dbus,--without-dbus,dbus-glib polkit"
+PACKAGECONFIG[libgcrypt] = "--with-crypto-library=gcrypt,,libgcrypt,,,libsodium openssl"
+PACKAGECONFIG[libsodium] = "--with-crypto-library=sodium,,libsodium,,,libgcrypt openssl"
+PACKAGECONFIG[openssl] = "--with-crypto-library=openssl,,openssl,,,libgcrypt libsodium"
+PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit"
+PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
+PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
+
+SYSTEMD_PACKAGES = "${PN}"
+
+SYSTEMD_SERVICE:${PN} = "usbguard.service ${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'usbguard-dbus.service', '', d)}"
+
+FILES:${PN} += "\
+ ${systemd_unitdir}/system/usbguard.service \
+ ${systemd_unitdir}/system/usbguard-dbus.service \
+ ${datadir}/polkit-1 \
+ ${datadir}/dbus-1 \
+ ${nonarch_libdir}/tmpfiles.d \
+"
+
+do_install:append() {
+# Create /var/log/usbguard in runtime.
+ if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
+ install -d ${D}${nonarch_libdir}/tmpfiles.d
+ echo "d ${localstatedir}/log/${BPN} 0755 root root -" > ${D}${nonarch_libdir}/tmpfiles.d/${BPN}.conf
+ fi
+ if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ]; then
+ install -d ${D}${sysconfdir}/default/volatiles
+ echo "d root root 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
+ fi
+ rm -rf ${D}${localstatedir}/log
+}
diff --git a/meta-oe/recipes-shells/dash/dash_0.5.11.5.bb b/meta-oe/recipes-shells/dash/dash_0.5.11.5.bb
deleted file mode 100644
index ad3672f3e4..0000000000
--- a/meta-oe/recipes-shells/dash/dash_0.5.11.5.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Small and fast POSIX-compliant shell"
-HOMEPAGE = "http://gondor.apana.org.au/~herbert/dash/"
-SECTION = "System Environment/Shells"
-
-LICENSE = "BSD-3-Clause & GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b5262b4a1a1bff72b48e935531976d2e"
-
-inherit autotools update-alternatives
-
-SRC_URI = "http://gondor.apana.org.au/~herbert/${BPN}/files/${BP}.tar.gz"
-SRC_URI[sha256sum] = "db778110891f7937985f29bf23410fe1c5d669502760f584e54e0e7b29e123bd"
-
-EXTRA_OECONF += "--bindir=${base_bindir}"
-
-ALTERNATIVE:${PN} = "sh"
-ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
-ALTERNATIVE_TARGET[sh] = "${base_bindir}/dash"
-ALTERNATIVE_PRIORITY = "10"
-
-pkg_postinst:${PN} () {
- grep -q "^${base_bindir}/dash$" $D${sysconfdir}/shells || echo ${base_bindir}/dash >> $D${sysconfdir}/shells
-}
-
-pkg_postrm:${PN} () {
- printf "$(grep -v "^${base_bindir}/dash$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells
-}
diff --git a/meta-oe/recipes-shells/dash/dash_0.5.12.bb b/meta-oe/recipes-shells/dash/dash_0.5.12.bb
new file mode 100644
index 0000000000..947ef702d7
--- /dev/null
+++ b/meta-oe/recipes-shells/dash/dash_0.5.12.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Small and fast POSIX-compliant shell"
+HOMEPAGE = "http://gondor.apana.org.au/~herbert/dash/"
+SECTION = "System Environment/Shells"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b5262b4a1a1bff72b48e935531976d2e"
+
+inherit autotools update-alternatives
+
+SRC_URI = "http://gondor.apana.org.au/~herbert/${BPN}/files/${BP}.tar.gz"
+SRC_URI[sha256sum] = "6a474ac46e8b0b32916c4c60df694c82058d3297d8b385b74508030ca4a8f28a"
+
+EXTRA_OECONF += "--bindir=${base_bindir}"
+
+ALTERNATIVE:${PN} = "sh"
+ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
+ALTERNATIVE_TARGET[sh] = "${base_bindir}/dash"
+ALTERNATIVE_PRIORITY = "10"
+
+pkg_postinst:${PN} () {
+ grep -q "^${base_bindir}/dash$" $D${sysconfdir}/shells || echo ${base_bindir}/dash >> $D${sysconfdir}/shells
+}
+
+pkg_postrm:${PN} () {
+ printf "$(grep -v "^${base_bindir}/dash$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells
+}
diff --git a/meta-oe/recipes-shells/mksh/mksh_59.bb b/meta-oe/recipes-shells/mksh/mksh_59.bb
deleted file mode 100644
index 9cd0fbc255..0000000000
--- a/meta-oe/recipes-shells/mksh/mksh_59.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-DESCRIPTION = "The MirBSD Korn Shell - an enhanced version of the public domain ksh"
-HOMEPAGE = "http://www.mirbsd.org/mksh.htm"
-SECTION = "base/shell"
-
-LICENSE = "${@bb.utils.contains("TCLIBC", "glibc", "MirOS & ISC", "MirOS", d)}"
-LIC_FILES_CHKSUM = "file://main.c;beginline=6;endline=26;md5=6efc2c249328e4d2bd3e595d5b1f9d31 \
- file://strlcpy.c;beginline=1;endline=17;md5=d953f28f0c43ee29e238ec9bc15df2a0 \
- "
-
-SRC_URI = "http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R59b.tgz"
-
-SRC_URI[md5sum] = "dce6abffc2036288540b9ba11dfb2ec8"
-SRC_URI[sha256sum] = "907ed1a9586e7f18bdefdd4a763aaa8397b755e15034aa54f4d753bfb272e0e6"
-
-inherit update-alternatives
-
-S = "${WORKDIR}/${BPN}"
-
-ALTERNATIVE:${PN} = "sh"
-ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
-ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}"
-ALTERNATIVE_PRIORITY = "100"
-
-do_compile() {
- sh ${S}/Build.sh -r
-}
-
-do_install() {
- install -d ${D}${base_bindir}
- install -m 0755 ${S}/mksh ${D}${base_bindir}/mksh
-
- install -d ${D}${sysconfdir}/skel
- install -m 0644 ${S}/dot.mkshrc ${D}${sysconfdir}/skel/.mkshrc
-}
-
-RPROVIDES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sh', '', d)}"
diff --git a/meta-oe/recipes-shells/mksh/mksh_59c.bb b/meta-oe/recipes-shells/mksh/mksh_59c.bb
new file mode 100644
index 0000000000..e3a8ca8b5e
--- /dev/null
+++ b/meta-oe/recipes-shells/mksh/mksh_59c.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "The MirBSD Korn Shell - an enhanced version of the public domain ksh"
+HOMEPAGE = "http://www.mirbsd.org/mksh.htm"
+SECTION = "base/shell"
+
+LICENSE = "${@bb.utils.contains("TCLIBC", "glibc", "MirOS & ISC", "MirOS", d)}"
+LIC_FILES_CHKSUM = "file://main.c;beginline=6;endline=26;md5=6efc2c249328e4d2bd3e595d5b1f9d31 \
+ file://strlcpy.c;beginline=1;endline=17;md5=d953f28f0c43ee29e238ec9bc15df2a0 \
+ "
+
+SRC_URI = "http://www.mirbsd.org/MirOS/dist/mir/${BPN}/${BPN}-R${PV}.tgz"
+
+SRC_URI[sha256sum] = "77ae1665a337f1c48c61d6b961db3e52119b38e58884d1c89684af31f87bc506"
+
+UPSTREAM_CHECK_REGEX = "${BPN}-R(?P<pver>.*)\.tgz"
+
+inherit update-alternatives
+
+S = "${WORKDIR}/${BPN}"
+
+ALTERNATIVE:${PN} = "sh"
+ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
+ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}"
+ALTERNATIVE_PRIORITY = "100"
+
+do_compile() {
+ sh ${S}/Build.sh -r
+}
+
+do_install() {
+ install -d ${D}${base_bindir}
+ install -m 0755 ${S}/mksh ${D}${base_bindir}/mksh
+
+ install -d ${D}${sysconfdir}/skel
+ install -m 0644 ${S}/dot.mkshrc ${D}${sysconfdir}/skel/.mkshrc
+}
+
+RPROVIDES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sh', '', d)}"
diff --git a/meta-oe/recipes-shells/tcsh/tcsh/0001-Enable-system-malloc-on-all-linux.patch b/meta-oe/recipes-shells/tcsh/tcsh/0001-Enable-system-malloc-on-all-linux.patch
index ff2f6a3b68..3a3970ba95 100644
--- a/meta-oe/recipes-shells/tcsh/tcsh/0001-Enable-system-malloc-on-all-linux.patch
+++ b/meta-oe/recipes-shells/tcsh/tcsh/0001-Enable-system-malloc-on-all-linux.patch
@@ -9,22 +9,24 @@ as well. So switch to using system malloc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
config_f.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/config_f.h b/config_f.h
-index 6a632a5..0a66960 100644
+index fb9e69b..c207c25 100644
--- a/config_f.h
+++ b/config_f.h
-@@ -139,7 +139,7 @@
+@@ -147,7 +147,7 @@
* This can be much slower and no memory statistics will be
* provided.
*/
--#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) || defined (__ANDROID__)
-+#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__linux__) || defined(__OpenBSD__) || defined(__APPLE__)
+-#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__GLIBC__) || defined(__OpenBSD__) || defined(__APPLE__) || defined (__ANDROID__) || defined(__NetBSD__) || !defined(HAVE_WORKING_SBRK)
++#if defined(__MACHTEN__) || defined(PURIFY) || defined(MALLOC_TRACE) || defined(_OSD_POSIX) || defined(__MVS__) || defined (__CYGWIN__) || defined(__linux__) || defined(__OpenBSD__) || defined(__APPLE__) || defined (__ANDROID__) || defined(__NetBSD__) || !defined(HAVE_WORKING_SBRK)
# define SYSMALLOC
#else
# undef SYSMALLOC
--
-2.12.1
+2.34.1
diff --git a/meta-oe/recipes-shells/tcsh/tcsh/0002-Add-debian-csh-scripts.patch b/meta-oe/recipes-shells/tcsh/tcsh/0002-Add-debian-csh-scripts.patch
index e4de6f7fe5..63b22075af 100644
--- a/meta-oe/recipes-shells/tcsh/tcsh/0002-Add-debian-csh-scripts.patch
+++ b/meta-oe/recipes-shells/tcsh/tcsh/0002-Add-debian-csh-scripts.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 2/2] Add debian csh scripts
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
csh.cshrc | 15 +++++++++++++++
csh.login | 8 ++++++++
csh.logout | 1 +
diff --git a/meta-oe/recipes-shells/tcsh/tcsh_6.22.04.bb b/meta-oe/recipes-shells/tcsh/tcsh_6.22.04.bb
deleted file mode 100644
index f7282bf1fd..0000000000
--- a/meta-oe/recipes-shells/tcsh/tcsh_6.22.04.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-DESCRIPTION = "TENEX C Shell, an enhanced version of Berkeley csh \
- The TENEX C Shell is an enhanced version of the Berkeley Unix C shell. \
- It includes all features of 4.4BSD C shell, plus a command-line editor, \
- programmable word completion, spelling correction and more."
-
-HOMEPAGE = "http://www.tcsh.org/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://Copyright;md5=575cf2715c3bf894e1f79aec1d4eaaf5"
-SECTION = "base"
-DEPENDS = "ncurses virtual/crypt gettext-native"
-SRC_URI = " \
- https://astron.com/pub/${BPN}/${BP}.tar.gz \
- file://0001-Enable-system-malloc-on-all-linux.patch \
- file://0002-Add-debian-csh-scripts.patch \
-"
-SRC_URI[md5sum] = "fa2b347fa9ae866eb036e6e4bb85fe1a"
-SRC_URI[sha256sum] = "eb16356243218c32f39e07258d72bf8b21e62ce94bb0e8a95e318b151397e231"
-
-EXTRA_OEMAKE += "CC_FOR_GETHOST='${BUILD_CC}'"
-inherit autotools
-
-do_compile:prepend() {
- oe_runmake CC_FOR_GETHOST='${BUILD_CC}' CFLAGS='${BUILD_CFLAGS}' LDFLAGS='${BUILD_LDFLAGS}' gethost
-}
-
-do_install:append () {
- oe_runmake install.man DESTDIR=${D}
-
- install -d ${D}${base_bindir}
- if ! ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
- ln -s /usr/bin/tcsh ${D}${base_bindir}/tcsh
- ln -s /usr/bin/tcsh ${D}${base_bindir}/csh
- fi
- install -d ${D}${sysconfdir}/csh/login.d
- install -m 0644 ${S}/csh.cshrc ${S}/csh.login ${S}/csh.logout ${S}/complete.tcsh ${D}${sysconfdir}
- install -D -m 0644 ${S}/csh-mode.el ${D}${datadir}/emacs/site-lisp/csh-mode.el
-}
-
-FILES:${PN} += "${datadir}/emacs/site-lisp/csh-mode.el"
-
-
-pkg_postinst:${PN} () {
-#!/bin/sh -e
-echo /usr/bin/tcsh >> $D/etc/shells
-echo /usr/bin/csh >> $D/etc/shells
-}
diff --git a/meta-oe/recipes-shells/tcsh/tcsh_6.24.11.bb b/meta-oe/recipes-shells/tcsh/tcsh_6.24.11.bb
new file mode 100644
index 0000000000..d04ba1611d
--- /dev/null
+++ b/meta-oe/recipes-shells/tcsh/tcsh_6.24.11.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "TENEX C Shell, an enhanced version of Berkeley csh \
+ The TENEX C Shell is an enhanced version of the Berkeley Unix C shell. \
+ It includes all features of 4.4BSD C shell, plus a command-line editor, \
+ programmable word completion, spelling correction and more."
+
+HOMEPAGE = "http://www.tcsh.org/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://Copyright;md5=575cf2715c3bf894e1f79aec1d4eaaf5"
+SECTION = "base"
+DEPENDS = "ncurses virtual/crypt gettext-native"
+SRC_URI = " \
+ https://astron.com/pub/${BPN}/${BP}.tar.gz \
+ file://0001-Enable-system-malloc-on-all-linux.patch \
+ file://0002-Add-debian-csh-scripts.patch \
+"
+SRC_URI[sha256sum] = "b5a7b627abb3ef2e8d3a869bb675d0e927d850704447a1b2c77946c0d324799d"
+
+EXTRA_OEMAKE += "CC_FOR_GETHOST='${BUILD_CC}'"
+inherit autotools
+
+do_compile:prepend() {
+ oe_runmake CC_FOR_GETHOST='${BUILD_CC}' CFLAGS='${BUILD_CFLAGS}' LDFLAGS='${BUILD_LDFLAGS}' gethost
+}
+
+do_install:append () {
+ oe_runmake install.man DESTDIR=${D}
+
+ install -d ${D}${base_bindir}
+ if ! ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
+ ln -s /usr/bin/tcsh ${D}${base_bindir}/tcsh
+ ln -s /usr/bin/tcsh ${D}${base_bindir}/csh
+ fi
+ install -d ${D}${sysconfdir}/csh/login.d
+ install -m 0644 ${S}/csh.cshrc ${S}/csh.login ${S}/csh.logout ${S}/complete.tcsh ${D}${sysconfdir}
+ install -D -m 0644 ${S}/csh-mode.el ${D}${datadir}/emacs/site-lisp/csh-mode.el
+}
+
+FILES:${PN} += "${datadir}/emacs/site-lisp/csh-mode.el"
+
+
+pkg_postinst:${PN} () {
+#!/bin/sh -e
+echo /usr/bin/tcsh >> $D/etc/shells
+echo /usr/bin/csh >> $D/etc/shells
+}
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-shells/zsh/zsh/CVE-2021-45444_1.patch b/meta-oe/recipes-shells/zsh/zsh/CVE-2021-45444_1.patch
new file mode 100644
index 0000000000..fb8fa3427f
--- /dev/null
+++ b/meta-oe/recipes-shells/zsh/zsh/CVE-2021-45444_1.patch
@@ -0,0 +1,60 @@
+Origin: commit c187154f47697cdbf822c2f9d714d570ed4a0fd1
+From: Oliver Kiddle <opk@zsh.org>
+Date: Wed, 15 Dec 2021 01:56:40 +0100
+Subject: [PATCH 1/9] security/41: Don't perform PROMPT_SUBST evaluation on
+ %F/%K arguments
+
+Mitigates CVE-2021-45444
+
+https://salsa.debian.org/debian/zsh/-/raw/debian/5.8-6+deb11u1/debian/patches/cherry-pick-CVE-2021-45444_1.patch?inline=false
+Upstream-Status: Backport
+CVE: CVE-2021-45444
+Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
+---
+ ChangeLog | 5 +++++
+ Src/prompt.c | 10 ++++++++++
+ 2 files changed, 15 insertions(+)
+
+diff --git a/ChangeLog b/ChangeLog
+index 8d7dfc169..eb248ec06 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,8 @@
++2022-01-27 dana <dana@dana.is>
++
++ * Oliver Kiddle: security/41: Src/prompt.c: Prevent recursive
++ PROMPT_SUBST
++
+ 2020-02-14 dana <dana@dana.is>
+
+ * unposted: Config/version.mk: Update for 5.8
+diff --git a/Src/prompt.c b/Src/prompt.c
+index b65bfb86b..91e21c8e9 100644
+--- a/Src/prompt.c
++++ b/Src/prompt.c
+@@ -244,6 +244,12 @@ parsecolorchar(zattr arg, int is_fg)
+ bv->fm += 2; /* skip over F{ */
+ if ((ep = strchr(bv->fm, '}'))) {
+ char oc = *ep, *col, *coll;
++ int ops = opts[PROMPTSUBST], opb = opts[PROMPTBANG];
++ int opp = opts[PROMPTPERCENT];
++
++ opts[PROMPTPERCENT] = 1;
++ opts[PROMPTSUBST] = opts[PROMPTBANG] = 0;
++
+ *ep = '\0';
+ /* expand the contents of the argument so you can use
+ * %v for example */
+@@ -252,6 +258,10 @@ parsecolorchar(zattr arg, int is_fg)
+ arg = match_colour((const char **)&coll, is_fg, 0);
+ free(col);
+ bv->fm = ep;
++
++ opts[PROMPTSUBST] = ops;
++ opts[PROMPTBANG] = opb;
++ opts[PROMPTPERCENT] = opp;
+ } else {
+ arg = match_colour((const char **)&bv->fm, is_fg, 0);
+ if (*bv->fm != '}')
+--
+2.34.1
diff --git a/meta-oe/recipes-shells/zsh/zsh/CVE-2021-45444_2.patch b/meta-oe/recipes-shells/zsh/zsh/CVE-2021-45444_2.patch
new file mode 100644
index 0000000000..e5b6d7cdc9
--- /dev/null
+++ b/meta-oe/recipes-shells/zsh/zsh/CVE-2021-45444_2.patch
@@ -0,0 +1,140 @@
+From 8a4d65ef6d0023ab9b238529410afb433553d2fa Mon Sep 17 00:00:00 2001
+From: Marc Cornellà <hello@mcornella.com>
+Date: Mon, 24 Jan 2022 09:43:28 +0100
+Subject: [PATCH 2/9] security/89: Add patch which can optionally be used to
+ work around CVE-2021-45444 in VCS_Info
+Comment: Updated to use the same file name without blanks as actually
+ used in the final 5.8.1 release.
+
+
+https://salsa.debian.org/debian/zsh/-/blob/debian/5.8-6+deb11u1/debian/patches/cherry-pick-CVE-2021-45444_2.patch
+Upstream-Status: Backport
+CVE: CVE-2021-45444
+Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
+---
+ ChangeLog | 5 +
+ Etc/CVE-2021-45444-VCS_Info-workaround.patch | 98 ++++++++++++++++++++
+ 2 files changed, 103 insertions(+)
+ create mode 100644 Etc/CVE-2021-45444-VCS_Info-workaround.patch
+
+diff --git a/ChangeLog b/ChangeLog
+index eb248ec06..9a05a09e1 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,5 +1,10 @@
+ 2022-01-27 dana <dana@dana.is>
+
++ * Marc Cornellà: security/89:
++ Etc/CVE-2021-45444-VCS_Info-workaround.patch: Add patch which
++ can optionally be used to work around recursive PROMPT_SUBST
++ issue in VCS_Info
++
+ * Oliver Kiddle: security/41: Src/prompt.c: Prevent recursive
+ PROMPT_SUBST
+
+diff --git a/Etc/CVE-2021-45444-VCS_Info-workaround.patch b/Etc/CVE-2021-45444-VCS_Info-workaround.patch
+new file mode 100644
+index 000000000..13e54be77
+--- /dev/null
++++ b/Etc/CVE-2021-45444-VCS_Info-workaround.patch
+@@ -0,0 +1,98 @@
++From 972887bbe5eb6a00e5f0e73781d6d73bfdcafb93 Mon Sep 17 00:00:00 2001
++From: =?UTF-8?q?Marc=20Cornell=C3=A0?= <hello@mcornella.com>
++Date: Mon, 24 Jan 2022 09:43:28 +0100
++Subject: [PATCH] security/89: Partially work around CVE-2021-45444 in VCS_Info
++MIME-Version: 1.0
++Content-Type: text/plain; charset=UTF-8
++Content-Transfer-Encoding: 8bit
++
++This patch is a partial, VCS_Info-specific work-around for CVE-2021-45444,
++which is mitigated in the shell itself in 5.8.1 and later versions. It is
++offered for users who are concerned about an exploit but are unable to update
++their binaries to receive the complete fix.
++
++The patch works around the vulnerability by pre-escaping values substituted
++into format strings in VCS_Info. Please note that this may break some user
++configurations that rely on those values being un-escaped (which is why it was
++not included directly in 5.8.1). It may be possible to limit this breakage by
++adjusting exactly which ones are pre-escaped, but of course this may leave
++them vulnerable again.
++
++If applying the patch to the file system is inconvenient or not possible, the
++following script can be used to idempotently patch the relevant function
++running in memory (and thus must be re-run when the shell is restarted):
++
++
++# Impacted versions go from v5.0.3 to v5.8 (v5.8.1 is the first patched version)
++autoload -Uz is-at-least
++if is-at-least 5.8.1 || ! is-at-least 5.0.3; then
++ return
++fi
++
++# Quote necessary $hook_com[<field>] items just before they are used
++# in the line "VCS_INFO_hook 'post-backend'" of the VCS_INFO_formats
++# function, where <field> is:
++#
++# base: the full path of the repository's root directory.
++# base-name: the name of the repository's root directory.
++# branch: the name of the currently checked out branch.
++# revision: an identifier of the currently checked out revision.
++# subdir: the path of the current directory relative to the
++# repository's root directory.
++# misc: a string that may contain anything the vcs_info backend wants.
++#
++# This patch %-quotes these fields previous to their use in vcs_info hooks and
++# the zformat call and, eventually, when they get expanded in the prompt.
++# It's important to quote these here, and not later after hooks have modified the
++# fields, because then we could be quoting % characters from valid prompt sequences,
++# like %F{color}, %B, etc.
++#
++# 32 │ hook_com[subdir]="$(VCS_INFO_reposub ${hook_com[base]})"
++# 33 │ hook_com[subdir_orig]="${hook_com[subdir]}"
++# 34 │
++# 35 + │ for tmp in base base-name branch misc revision subdir; do
++# 36 + │ hook_com[$tmp]="${hook_com[$tmp]//\%/%%}"
++# 37 + │ done
++# 38 + │
++# 39 │ VCS_INFO_hook 'post-backend'
++#
++# This is especially important so that no command substitution is performed
++# due to malicious input as a consequence of CVE-2021-45444, which affects
++# zsh versions from 5.0.3 to 5.8.
++#
++autoload -Uz +X regexp-replace VCS_INFO_formats
++
++# We use $tmp here because it's already a local variable in VCS_INFO_formats
++typeset PATCH='for tmp (base base-name branch misc revision subdir) hook_com[$tmp]="${hook_com[$tmp]//\%/%%}"'
++# Unique string to avoid reapplying the patch if this code gets called twice
++typeset PATCH_ID=vcs_info-patch-9b9840f2-91e5-4471-af84-9e9a0dc68c1b
++# Only patch the VCS_INFO_formats function if not already patched
++if [[ "$functions[VCS_INFO_formats]" != *$PATCH_ID* ]]; then
++ regexp-replace 'functions[VCS_INFO_formats]' \
++ "VCS_INFO_hook 'post-backend'" \
++ ': ${PATCH_ID}; ${PATCH}; ${MATCH}'
++fi
++unset PATCH PATCH_ID
++
++
++---
++ Functions/VCS_Info/VCS_INFO_formats | 4 ++++
++ 1 file changed, 4 insertions(+)
++
++diff --git a/Functions/VCS_Info/VCS_INFO_formats b/Functions/VCS_Info/VCS_INFO_formats
++index e0e1dc738..4d88e28b6 100644
++--- a/Functions/VCS_Info/VCS_INFO_formats
+++++ b/Functions/VCS_Info/VCS_INFO_formats
++@@ -32,6 +32,10 @@ hook_com[base-name_orig]="${hook_com[base_name]}"
++ hook_com[subdir]="$(VCS_INFO_reposub ${hook_com[base]})"
++ hook_com[subdir_orig]="${hook_com[subdir]}"
++
+++for tmp in base base-name branch misc revision subdir; do
+++ hook_com[$tmp]="${hook_com[$tmp]//\%/%%}"
+++done
+++
++ VCS_INFO_hook 'post-backend'
++
++ ## description (for backend authors):
++--
++2.34.1
+--
+2.34.1
diff --git a/meta-oe/recipes-shells/zsh/zsh/CVE-2021-45444_3.patch b/meta-oe/recipes-shells/zsh/zsh/CVE-2021-45444_3.patch
new file mode 100644
index 0000000000..adfc00ae57
--- /dev/null
+++ b/meta-oe/recipes-shells/zsh/zsh/CVE-2021-45444_3.patch
@@ -0,0 +1,77 @@
+From 4abf2fc193fc2f3e680deecbf81289a7b02e245b Mon Sep 17 00:00:00 2001
+From: dana <dana@dana.is>
+Date: Tue, 21 Dec 2021 13:13:33 -0600
+Subject: [PATCH 3/9] CVE-2021-45444: Update NEWS/README
+
+https://salsa.debian.org/debian/zsh/-/blob/debian/5.8-6+deb11u1/debian/patches/cherry-pick-CVE-2021-45444_3.patch
+Upstream-Status: Backport
+CVE: CVE-2021-45444
+Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
+---
+ ChangeLog | 2 ++
+ NEWS | 20 ++++++++++++++++++++
+ README | 6 ++++++
+ 3 files changed, 28 insertions(+)
+
+diff --git a/ChangeLog b/ChangeLog
+index 9a05a09e1..93b0bc337 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,5 +1,7 @@
+ 2022-01-27 dana <dana@dana.is>
+
++ * CVE-2021-45444: NEWS, README: Document preceding two changes
++
+ * Marc Cornellà: security/89:
+ Etc/CVE-2021-45444-VCS_Info-workaround.patch: Add patch which
+ can optionally be used to work around recursive PROMPT_SUBST
+diff --git a/NEWS b/NEWS
+index 964e1633f..d34b3f79e 100644
+--- a/NEWS
++++ b/NEWS
+@@ -4,6 +4,26 @@ CHANGES FROM PREVIOUS VERSIONS OF ZSH
+
+ Note also the list of incompatibilities in the README file.
+
++Changes since 5.8
++-----------------
++
++CVE-2021-45444: Some prompt expansion sequences, such as %F, support
++'arguments' which are themselves expanded in case they contain colour
++values, etc. This additional expansion would trigger PROMPT_SUBST
++evaluation, if enabled. This could be abused to execute code the user
++didn't expect. e.g., given a certain prompt configuration, an attacker
++could trick a user into executing arbitrary code by having them check
++out a Git branch with a specially crafted name.
++
++This is fixed in the shell itself by no longer performing PROMPT_SUBST
++evaluation on these prompt-expansion arguments.
++
++Users who are concerned about an exploit but unable to update their
++binaries may apply the partial work-around described in the file
++'Etc/CVE-2021-45444 VCS_Info workaround.patch' included with the shell
++source. [ Reported by RyotaK <security@ryotak.me>. Additional thanks to
++Marc Cornellà <hello@mcornella.com>. ]
++
+ Changes since 5.7.1-test-3
+ --------------------------
+
+diff --git a/README b/README
+index 7f1dd5f92..c9e994ab3 100644
+--- a/README
++++ b/README
+@@ -31,6 +31,12 @@ Zsh is a shell with lots of features. For a list of some of these, see the
+ file FEATURES, and for the latest changes see NEWS. For more
+ details, see the documentation.
+
++Incompatibilities since 5.8
++---------------------------
++
++PROMPT_SUBST expansion is no longer performed on arguments to prompt-
++expansion sequences such as %F.
++
+ Incompatibilities since 5.7.1
+ -----------------------------
+
+--
+2.34.1
diff --git a/meta-oe/recipes-shells/zsh/zsh_5.8.bb b/meta-oe/recipes-shells/zsh/zsh_5.8.bb
index 0429cb9cc7..7602ff9f64 100644
--- a/meta-oe/recipes-shells/zsh/zsh_5.8.bb
+++ b/meta-oe/recipes-shells/zsh/zsh_5.8.bb
@@ -10,7 +10,11 @@ LIC_FILES_CHKSUM = "file://LICENCE;md5=1a4c4cda3e8096d2fd483ff2f4514fec"
DEPENDS = "ncurses bison-native libcap libpcre gdbm groff-native"
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/5.8/${BP}.tar.xz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/5.8/${BP}.tar.xz \
+ file://CVE-2021-45444_1.patch \
+ file://CVE-2021-45444_2.patch \
+ file://CVE-2021-45444_3.patch \
+ "
SRC_URI[sha256sum] = "dcc4b54cc5565670a65581760261c163d720991f0d06486da61f8d839b52de27"
inherit autotools-brokensep gettext update-alternatives manpages
@@ -18,8 +22,8 @@ inherit autotools-brokensep gettext update-alternatives manpages
EXTRA_OECONF = " \
--bindir=${base_bindir} \
--enable-etcdir=${sysconfdir} \
- --enable-fndir=${datadir}/${PN}/${PV}/functions \
- --enable-site-fndir=${datadir}/${PN}/site-functions \
+ --enable-fndir=${datadir}/${BPN}/${PV}/functions \
+ --enable-site-fndir=${datadir}/${BPN}/site-functions \
--with-term-lib='ncursesw ncurses' \
--with-tcsetpgrp \
--enable-cap \
diff --git a/meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb b/meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb
index 746d4182a9..6d64ab71bf 100644
--- a/meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb
+++ b/meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=794d11c5219c59c9efa2487c2b4066b2"
SRC_URI = "git://github.com/ajaxorg/ace-builds.git;protocol=https;branch=master"
-PV = "02.07.17+git${SRCPV}"
+PV = "02.07.17+git"
SRCREV = "812e2c56aed246931a667f16c28b096e34597016"
FILES:${PN} = "${datadir}/ace-builds"
diff --git a/meta-oe/recipes-support/anthy/anthy/2ch_t.patch b/meta-oe/recipes-support/anthy/anthy/2ch_t.patch
index bf9bdb63d7..a0d3f9c25e 100644
--- a/meta-oe/recipes-support/anthy/anthy/2ch_t.patch
+++ b/meta-oe/recipes-support/anthy/anthy/2ch_t.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
source: shamelessly stolen from debian ;-)
purpose: add some entries particularly useful in Japanese 2channel anonymous website
(at least that is my understanding ;-))
diff --git a/meta-oe/recipes-support/anthy/anthy/native-helpers.patch b/meta-oe/recipes-support/anthy/anthy/native-helpers.patch
index 47ce007b7f..0b2df01aba 100644
--- a/meta-oe/recipes-support/anthy/anthy/native-helpers.patch
+++ b/meta-oe/recipes-support/anthy/anthy/native-helpers.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
upstream: not applicable
author: pH5
comment: Stage the native anthy helpers mkfiledic, mkdepgraph, mkworddic,
diff --git a/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch b/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch
index 1c5c494003..bedb5e0498 100644
--- a/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch
+++ b/meta-oe/recipes-support/anthy/anthy/not_build_elc.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
upstream: not applicable
source: stolen from debian
diff --git a/meta-oe/recipes-support/anthy/anthy/target-helpers.patch b/meta-oe/recipes-support/anthy/anthy/target-helpers.patch
index d22c3562a5..fc5c72c051 100644
--- a/meta-oe/recipes-support/anthy/anthy/target-helpers.patch
+++ b/meta-oe/recipes-support/anthy/anthy/target-helpers.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -Nurp anthy-9100h.org/calctrans/Makefile.am anthy-9100h/calctrans/Makefile.am
--- anthy-9100h.org/calctrans/Makefile.am 2007-10-27 23:02:59.000000000 +0900
+++ anthy-9100h/calctrans/Makefile.am 2014-11-11 17:14:42.152999991 +0900
diff --git a/meta-oe/recipes-support/anthy/anthy_9100h.bb b/meta-oe/recipes-support/anthy/anthy_9100h.bb
index 2a6cfb5715..f2bf52cdbc 100644
--- a/meta-oe/recipes-support/anthy/anthy_9100h.bb
+++ b/meta-oe/recipes-support/anthy/anthy_9100h.bb
@@ -1,5 +1,4 @@
DESCRIPTION="Anthy is a system for Japanese input method. It converts Hiragana text to Kana Kanji mixed text."
-AUTHOR = "Anthy Developers <anthy-dev@lists.sourceforge.jp>"
HOMEPAGE = "http://anthy.sourceforge.jp"
LICENSE = "LGPL-2.1-only & GPL-2.0-only"
diff --git a/meta-oe/recipes-support/asio/asio_1.20.0.bb b/meta-oe/recipes-support/asio/asio_1.20.0.bb
deleted file mode 100644
index cedcf9fee0..0000000000
--- a/meta-oe/recipes-support/asio/asio_1.20.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Asio is C++ library for network and low-level I/O programming"
-DESCRIPTION = "Asio is a cross-platform C++ library for network and low-level \
- I/O programming that provides developers with a consistent asynchronous \
- model using a modern C++ approach."
-AUTHOR = "Christopher M. Kohlhoff (chris at kohlhoff dot com)"
-HOMEPAGE = "http://think-async.com/Asio"
-SECTION = "libs"
-LICENSE = "BSL-1.0"
-
-DEPENDS = "openssl"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
-
-inherit autotools
-
-ALLOW_EMPTY:${PN} = "1"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=416f4cc4f79551b690babb14ef1a5799"
-
-SRC_URI[sha256sum] = "204374d3cadff1b57a63f4c343cbadcee28374c072dc04b549d772dbba9f650c"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
-
-PACKAGECONFIG ??= "boost"
-
-PACKAGECONFIG[boost] = "--with-boost=${STAGING_LIBDIR},--without-boost,boost"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/asio/asio_1.28.0.bb b/meta-oe/recipes-support/asio/asio_1.28.0.bb
new file mode 100644
index 0000000000..84074400a6
--- /dev/null
+++ b/meta-oe/recipes-support/asio/asio_1.28.0.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Asio is C++ library for network and low-level I/O programming"
+DESCRIPTION = "Asio is a cross-platform C++ library for network and low-level \
+ I/O programming that provides developers with a consistent asynchronous \
+ model using a modern C++ approach."
+HOMEPAGE = "http://think-async.com/Asio"
+SECTION = "libs"
+LICENSE = "BSL-1.0"
+
+DEPENDS = "openssl"
+
+SRC_URI = " \
+ ${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2 \
+ file://0001-Add-the-pkgconfigdir-location.patch \
+"
+
+inherit autotools
+
+ALLOW_EMPTY:${PN} = "1"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=ff668366bbdb687b6029d33a5fe4b999"
+
+SRC_URI[sha256sum] = "d0ddc2361abd2f4c823e970aaf8e28b4b31ab21b1a68af16b114fc093661e232"
+
+PACKAGECONFIG ??= "boost"
+
+PACKAGECONFIG[boost] = "--with-boost=${STAGING_LIBDIR},--without-boost,boost"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/asio/files/0001-Add-the-pkgconfigdir-location.patch b/meta-oe/recipes-support/asio/files/0001-Add-the-pkgconfigdir-location.patch
new file mode 100644
index 0000000000..75f083b0ed
--- /dev/null
+++ b/meta-oe/recipes-support/asio/files/0001-Add-the-pkgconfigdir-location.patch
@@ -0,0 +1,30 @@
+From 248e87869d748cfb72d3a5d3b2b91ad178172e30 Mon Sep 17 00:00:00 2001
+From: Vasileios Anagnostopoulos <anagnwstopoulos@hotmail.com>
+Date: Tue, 9 May 2023 12:48:29 +0200
+Subject: [PATCH] Add the pkgconfigdir location
+
+This change is necessary, because while building asio in yocto the
+compilation is failing and is complaining because the variable is
+undefined
+
+Signed-off-by: Vasileios Anagnostopoulos <anagnwstopoulos@hotmail.com>
+Upstream-Status: Submitted [https://github.com/chriskohlhoff/asio/pull/1294]
+---
+ asio/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index b7760851..bc4f75b3 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,6 +1,7 @@
+ AUTOMAKE_OPTIONS = foreign dist-bzip2 dist-zip
+
+ pkgconfig_DATA = asio.pc
++pkgconfigdir = $(libdir)/pkgconfig
+
+ SUBDIRS = include src
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-support/atop/atop_2.4.0.bb b/meta-oe/recipes-support/atop/atop_2.4.0.bb
index b1d2abde73..bb1f53624a 100644
--- a/meta-oe/recipes-support/atop/atop_2.4.0.bb
+++ b/meta-oe/recipes-support/atop/atop_2.4.0.bb
@@ -24,9 +24,7 @@ SRC_URI = "http://www.atoptool.nl/download/${BP}.tar.gz \
SRC_URI[md5sum] = "1077da884ed94f2bc3c81ac3ab970436"
SRC_URI[sha256sum] = "be1c010a77086b7d98376fce96514afcd73c3f20a8d1fe01520899ff69a73d69"
-CVE_CHECK_IGNORE += "\
- CVE-2011-3618 \
-"
+CVE_STATUS[CVE-2011-3618] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
do_compile() {
oe_runmake all
diff --git a/meta-oe/recipes-support/avro/avro-c++/0001-Remove-cpp-unittest-compilation.patch b/meta-oe/recipes-support/avro/avro-c++/0001-Remove-cpp-unittest-compilation.patch
new file mode 100644
index 0000000000..bcfafdda55
--- /dev/null
+++ b/meta-oe/recipes-support/avro/avro-c++/0001-Remove-cpp-unittest-compilation.patch
@@ -0,0 +1,86 @@
+From 6be1c45e1f7ee78499bdca76c25ec23a61317134 Mon Sep 17 00:00:00 2001
+From: Rui Costa <rui.ms.costa@ctw.bmwgroup.com>
+Date: Wed, 20 Mar 2024 14:58:27 +0000
+Subject: [PATCH] Remove cpp unittest compilation
+
+Upstream-Status: Inappropriate [oe-specific]
+
+---
+ lang/c++/CMakeLists.txt | 61 -----------------------------------------
+ 1 file changed, 61 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4a3793152..d94ba42d3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -131,70 +131,9 @@ set_target_properties (avrocpp_s PROPERTIES
+ target_link_libraries (avrocpp ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES})
+ target_include_directories(avrocpp PRIVATE ${SNAPPY_INCLUDE_DIR})
+
+-add_executable (precompile test/precompile.cc)
+-
+-target_link_libraries (precompile avrocpp_s ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES})
+-
+-macro (gen file ns)
+- add_custom_command (OUTPUT ${file}.hh
+- COMMAND avrogencpp
+- -p -
+- -i ${CMAKE_CURRENT_SOURCE_DIR}/jsonschemas/${file}
+- -o ${file}.hh -n ${ns} -U
+- DEPENDS avrogencpp ${CMAKE_CURRENT_SOURCE_DIR}/jsonschemas/${file})
+- add_custom_target (${file}_hh DEPENDS ${file}.hh)
+-endmacro (gen)
+-
+-gen (empty_record empty)
+-gen (bigrecord testgen)
+-gen (bigrecord_r testgen_r)
+-gen (bigrecord2 testgen2)
+-gen (tweet testgen3)
+-gen (union_array_union uau)
+-gen (union_map_union umu)
+-gen (union_conflict uc)
+-gen (recursive rec)
+-gen (reuse ru)
+-gen (circulardep cd)
+-gen (tree1 tr1)
+-gen (tree2 tr2)
+-gen (crossref cr)
+-gen (primitivetypes pt)
+-gen (cpp_reserved_words cppres)
+-
+ add_executable (avrogencpp impl/avrogencpp.cc)
+ target_link_libraries (avrogencpp avrocpp_s ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES})
+
+-enable_testing()
+-
+-macro (unittest name)
+- add_executable (${name} test/${name}.cc)
+- target_link_libraries (${name} avrocpp ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES})
+- add_test (NAME ${name} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+- COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${name})
+-endmacro (unittest)
+-
+-unittest (buffertest)
+-unittest (unittest)
+-unittest (SchemaTests)
+-unittest (LargeSchemaTests)
+-unittest (CodecTests)
+-unittest (StreamTests)
+-unittest (SpecificTests)
+-unittest (DataFileTests)
+-unittest (JsonTests)
+-unittest (AvrogencppTests)
+-unittest (CompilerTests)
+-unittest (AvrogencppTestReservedWords)
+-
+-add_dependencies (AvrogencppTestReservedWords cpp_reserved_words_hh)
+-
+-add_dependencies (AvrogencppTests bigrecord_hh bigrecord_r_hh bigrecord2_hh
+- tweet_hh
+- union_array_union_hh union_map_union_hh union_conflict_hh
+- recursive_hh reuse_hh circulardep_hh tree1_hh tree2_hh crossref_hh
+- primitivetypes_hh empty_record_hh)
+-
+ include (InstallRequiredSystemLibraries)
+
+ set (CPACK_PACKAGE_FILE_NAME "avrocpp-${AVRO_VERSION_MAJOR}")
diff --git a/meta-oe/recipes-support/avro/avro-c++/0002-Add-package-configuration-files.patch b/meta-oe/recipes-support/avro/avro-c++/0002-Add-package-configuration-files.patch
new file mode 100644
index 0000000000..437a3fa138
--- /dev/null
+++ b/meta-oe/recipes-support/avro/avro-c++/0002-Add-package-configuration-files.patch
@@ -0,0 +1,84 @@
+From 86aa3f2333a9b8e6f1c631e6d5cb7296b6e8380b Mon Sep 17 00:00:00 2001
+From: Rui Costa <rui.ms.costa@ctw.bmwgroup.com>
+Date: Fri, 22 Mar 2024 13:27:38 +0000
+Subject: [PATCH] Add package configuration files
+
+Upstream-Status: Pending
+
+---
+ lang/c++/CMakeLists.txt | 45 ++++++++++++++++++++++++------
+ lang/c++/cmake/AvroCppConfig.cmake | 5 ++++
+ 2 files changed, 42 insertions(+), 8 deletions(-)
+ create mode 100644 lang/c++/cmake/AvroCppConfig.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d94ba42d3..4748b111d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -140,14 +140,18 @@ set (CPACK_PACKAGE_FILE_NAME "avrocpp-${AVRO_VERSION_MAJOR}")
+
+ include (CPack)
+
+-install (TARGETS avrocpp avrocpp_s
+- LIBRARY DESTINATION lib
+- ARCHIVE DESTINATION lib
+- RUNTIME DESTINATION lib)
+-
+-install (TARGETS avrogencpp RUNTIME DESTINATION bin)
+-
+-install (DIRECTORY api/ DESTINATION include/avro
++install (TARGETS avrocpp
++ EXPORT AvroCppTargets
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ INCLUDES DESTINATION include)
++
++install (TARGETS avrogencpp
++ EXPORT AvroCppTargets
++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
++
++install (DIRECTORY api/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/avro
+ FILES_MATCHING PATTERN *.hh)
+
+ if (NOT CMAKE_BUILD_TYPE)
+@@ -155,3 +159,28 @@ if (NOT CMAKE_BUILD_TYPE)
+ "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
+ FORCE)
+ endif (NOT CMAKE_BUILD_TYPE)
++
++# Create cmake config files
++include(CMakePackageConfigHelpers)
++write_basic_package_version_file(
++ "${CMAKE_CURRENT_BINARY_DIR}/AvroCppConfigVersion.cmake"
++ VERSION ${AVRO_VERSION_MAJOR}.${AVRO_VERSION_MINOR}.${AVRO_VERSION_PATCH}
++ COMPATIBILITY AnyNewerVersion
++)
++
++configure_file(cmake/AvroCppConfig.cmake
++ "${CMAKE_CURRENT_BINARY_DIR}/AvroCppConfig.cmake"
++ COPYONLY
++)
++
++set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/avrocpp)
++install(EXPORT AvroCppTargets
++ FILE AvroCppTargets.cmake
++ NAMESPACE AvroCpp::
++ DESTINATION ${ConfigPackageLocation}
++)
++install(FILES
++ "cmake/AvroCppConfig.cmake"
++ "${CMAKE_CURRENT_BINARY_DIR}/AvroCppConfigVersion.cmake"
++ DESTINATION ${ConfigPackageLocation}
++ COMPONENT Devel)
+diff --git a/cmake/AvroCppConfig.cmake b/cmake/AvroCppConfig.cmake
+new file mode 100644
+index 000000000..deb8aaa31
+--- /dev/null
++++ b/cmake/AvroCppConfig.cmake
+@@ -0,0 +1,5 @@
++include(CMakeFindDependencyMacro)
++find_dependency(Boost 1.38 REQUIRED
++ COMPONENTS filesystem iostreams program_options regex system)
++
++include("${CMAKE_CURRENT_LIST_DIR}/AvroCppTargets.cmake")
diff --git a/meta-oe/recipes-support/avro/avro-c++/0003-Update-CXX-standard-to-CXX14.patch b/meta-oe/recipes-support/avro/avro-c++/0003-Update-CXX-standard-to-CXX14.patch
new file mode 100644
index 0000000000..3e65cb7a72
--- /dev/null
+++ b/meta-oe/recipes-support/avro/avro-c++/0003-Update-CXX-standard-to-CXX14.patch
@@ -0,0 +1,24 @@
+From 66c08ade24e4472b5af5dca48097ed9a2ec035ec Mon Sep 17 00:00:00 2001
+From: Rui Costa <rui.ms.costa@ctw.bmwgroup.com>
+Date: Fri, 5 Apr 2024 11:33:51 +0000
+Subject: [PATCH] Update CXX standard to CXX14
+
+Upstream-Status: Inappropriate [oe-specific]
+
+---
+ lang/c++/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4748b111d..1e45c13d5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -21,7 +21,7 @@ cmake_minimum_required (VERSION 3.1)
+ set (CMAKE_LEGACY_CYGWIN_WIN32 0)
+
+ if (NOT DEFINED CMAKE_CXX_STANDARD)
+- set(CMAKE_CXX_STANDARD 11)
++ set(CMAKE_CXX_STANDARD 14)
+ endif()
+
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
diff --git a/meta-oe/recipes-support/avro/avro-c++_1.11.3.bb b/meta-oe/recipes-support/avro/avro-c++_1.11.3.bb
new file mode 100644
index 0000000000..6ec25bdd2b
--- /dev/null
+++ b/meta-oe/recipes-support/avro/avro-c++_1.11.3.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Apache Avro data serialization system."
+HOMEPAGE = "https://avro.apache.org/"
+SECTION = "libs"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=43abf34d8b9908494f83c55d213a7f89"
+
+DEPENDS = "boost zlib xz"
+
+BRANCH = "branch-1.11"
+SRCREV = "35ff8b997738e4d983871902d47bfb67b3250734"
+SRC_URI = "git://github.com/apache/avro;branch=${BRANCH};protocol=https \
+ file://0001-Remove-cpp-unittest-compilation.patch \
+ file://0002-Add-package-configuration-files.patch \
+ file://0003-Update-CXX-standard-to-CXX14.patch \
+ "
+
+S = "${WORKDIR}/git/lang/c++"
+
+inherit cmake pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/avro/avro-c_1.11.1.bb b/meta-oe/recipes-support/avro/avro-c_1.11.1.bb
deleted file mode 100644
index bb0bd7d752..0000000000
--- a/meta-oe/recipes-support/avro/avro-c_1.11.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Apache Avro data serialization system."
-HOMEPAGE = "http://apr.apache.org/"
-SECTION = "libs"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6d502b41f76179fc84e536236f359cae"
-
-DEPENDS = "jansson zlib xz"
-
-BRANCH = "branch-1.11"
-SRCREV = "3a9e5a789b5165e0c8c4da799c387fdf84bfb75e"
-SRC_URI = "git://github.com/apache/avro;branch=${BRANCH};protocol=https \
- "
-
-S = "${WORKDIR}/git/lang/c"
-
-inherit cmake pkgconfig
diff --git a/meta-oe/recipes-support/avro/avro-c_1.11.3.bb b/meta-oe/recipes-support/avro/avro-c_1.11.3.bb
new file mode 100644
index 0000000000..bb7f53e459
--- /dev/null
+++ b/meta-oe/recipes-support/avro/avro-c_1.11.3.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Apache Avro data serialization system."
+HOMEPAGE = "https://avro.apache.org/"
+SECTION = "libs"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6d502b41f76179fc84e536236f359cae"
+
+DEPENDS = "jansson zlib xz"
+
+BRANCH = "branch-1.11"
+SRCREV = "35ff8b997738e4d983871902d47bfb67b3250734"
+SRC_URI = "git://github.com/apache/avro;branch=${BRANCH};protocol=https \
+ "
+
+S = "${WORKDIR}/git/lang/c"
+
+inherit cmake pkgconfig
diff --git a/meta-oe/recipes-support/bdwgc/bdwgc_8.2.2.bb b/meta-oe/recipes-support/bdwgc/bdwgc_8.2.2.bb
deleted file mode 100644
index d980eccc3c..0000000000
--- a/meta-oe/recipes-support/bdwgc/bdwgc_8.2.2.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "A garbage collector for C and C++"
-
-DESCRIPTION = "The Boehm-Demers-Weiser conservative garbage collector can be\
- used as a garbage collecting replacement for C malloc or C++ new. It allows\
- you to allocate memory basically as you normally would, without explicitly\
- deallocating memory that is no longer useful. The collector automatically\
- recycles memory when it determines that it can no longer be otherwise\
- accessed.\
- The collector is also used by a number of programming language\
- implementations that either use C as intermediate code, want to facilitate\
- easier interoperation with C libraries, or just prefer the simple collector\
- interface.\
- Alternatively, the garbage collector may be used as a leak detector for C\
- or C++ programs, though that is not its primary goal.\
- Empirically, this collector works with most unmodified C programs, simply\
- by replacing malloc with GC_malloc calls, replacing realloc with GC_realloc\
- calls, and removing free calls."
-
-HOMEPAGE = "http://www.hboehm.info/gc/"
-SECTION = "devel"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://README.QUICK;md5=dd27361ad00943bb27bc3e0589037075"
-
-DEPENDS = "libatomic-ops"
-
-SRCREV = "cd1fbc1dbfd2cc888436944dd2784f39820698d7"
-SRC_URI = "git://github.com/ivmai/bdwgc.git;branch=release-8_2;protocol=https"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "--enable-cplusplus"
-
-FILES:${PN}-doc = "${datadir}"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/bdwgc/bdwgc_8.2.6.bb b/meta-oe/recipes-support/bdwgc/bdwgc_8.2.6.bb
new file mode 100644
index 0000000000..a5a7a63657
--- /dev/null
+++ b/meta-oe/recipes-support/bdwgc/bdwgc_8.2.6.bb
@@ -0,0 +1,37 @@
+SUMMARY = "A garbage collector for C and C++"
+
+DESCRIPTION = "The Boehm-Demers-Weiser conservative garbage collector can be\
+ used as a garbage collecting replacement for C malloc or C++ new. It allows\
+ you to allocate memory basically as you normally would, without explicitly\
+ deallocating memory that is no longer useful. The collector automatically\
+ recycles memory when it determines that it can no longer be otherwise\
+ accessed.\
+ The collector is also used by a number of programming language\
+ implementations that either use C as intermediate code, want to facilitate\
+ easier interoperation with C libraries, or just prefer the simple collector\
+ interface.\
+ Alternatively, the garbage collector may be used as a leak detector for C\
+ or C++ programs, though that is not its primary goal.\
+ Empirically, this collector works with most unmodified C programs, simply\
+ by replacing malloc with GC_malloc calls, replacing realloc with GC_realloc\
+ calls, and removing free calls."
+
+HOMEPAGE = "https://www.hboehm.info/gc/"
+SECTION = "devel"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.QUICK;md5=dd27361ad00943bb27bc3e0589037075"
+
+DEPENDS = "libatomic-ops"
+
+SRCREV = "e340b2e869e02718de9c9d7fa440ef4b35785388"
+SRC_URI = "git://github.com/ivmai/bdwgc.git;branch=release-8_2;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "--enable-cplusplus"
+
+FILES:${PN}-doc = "${datadir}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/boost-sml/boost-sml_1.1.11.bb b/meta-oe/recipes-support/boost-sml/boost-sml_1.1.11.bb
new file mode 100644
index 0000000000..a48195a15d
--- /dev/null
+++ b/meta-oe/recipes-support/boost-sml/boost-sml_1.1.11.bb
@@ -0,0 +1,25 @@
+SUMMARY = "[Boost::ext].SML (State Machine Language)"
+DESCRIPTION = "Your scalable C++14 one header only State Machine Library with no dependencies"
+HOMEPAGE = "https://github.com/boost-ext/sml"
+BUGTRACKER = "https://github.com/boost-ext/sml/issues"
+SECTION = "libs"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=e4224ccaecb14d942c71d31bef20d78c"
+
+DEPENDS += "boost qemu-native"
+
+SRC_URI = "git://github.com/boost-ext/sml.git;protocol=https;branch=master"
+SRCREV = "b7df6180d20422b2724d26007aebb24066f2a6a9"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+# Building benchmarks takes a lot of time and requires additional headers (euml2.hpp)
+# Building examples fail with gcc-12
+EXTRA_OECMAKE:append = " -DSML_BUILD_BENCHMARKS:bool=OFF -DSML_BUILD_EXAMPLES=OFF"
+
+# [boost::ext].XML is a header only C++ library, so the main package will be empty.
+ALLOW_EMPTY:${PN} = "1"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/meta-oe/recipes-support/boost-sml/boost-sml_git.bb b/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
deleted file mode 100644
index c83181cfea..0000000000
--- a/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "[Boost::ext].SML (State Machine Language)"
-DESCRIPTION = "Your scalable C++14 one header only State Machine Library with no dependencies"
-AUTHOR = "Krzysztof Jusiak"
-HOMEPAGE = "https://github.com/boost-ext/sml"
-BUGTRACKER = "https://github.com/boost-ext/sml/issues"
-SECTION = "libs"
-LICENSE = "BSL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=e4224ccaecb14d942c71d31bef20d78c"
-
-DEPENDS += "boost qemu-native"
-
-PV = "1.1.6"
-
-SRC_URI = "git://github.com/boost-ext/sml.git;protocol=https;branch=master"
-SRCREV = "23e9a24e434cac9922039cbb43ca54ab70bef72c"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-# Building benchmarks takes a lot of time and requires additional headers (euml2.hpp)
-# Building examples fail with gcc-12
-EXTRA_OECMAKE:append = " -DSML_BUILD_BENCHMARKS:bool=OFF -DSML_BUILD_EXAMPLES=OFF"
-
-# [boost::ext].XML is a header only C++ library, so the main package will be empty.
-ALLOW_EMPTY:${PN} = "1"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/meta-oe/recipes-support/btop/btop_1.3.2.bb b/meta-oe/recipes-support/btop/btop_1.3.2.bb
new file mode 100644
index 0000000000..c473bf0a35
--- /dev/null
+++ b/meta-oe/recipes-support/btop/btop_1.3.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Resource monitor that shows usage and stats for processor, memory, disks, network and processes."
+HOMEPAGE = "https://github.com/aristocratos/btop"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+SECTION = "console/utils"
+
+SRC_URI = "git://github.com/aristocratos/btop.git;protocol=https;branch=main"
+SRCREV = "fd2a2acdad6fbaad76846cb5e802cf2ae022d670"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+FILES:${PN} += " \
+ ${datadir}/icons \
+ ${datadir}/icons/hicolor \
+ ${datadir}/icons/hicolor/48x48 \
+ ${datadir}/icons/hicolor/scalable \
+ ${datadir}/icons/hicolor/48x48/apps \
+ ${datadir}/icons/hicolor/48x48/apps/btop.png \
+ ${datadir}/icons/hicolor/scalable/apps \
+ ${datadir}/icons/hicolor/scalable/apps/btop.svg \
+"
diff --git a/meta-oe/recipes-support/c-ares/c-ares/run-ptest b/meta-oe/recipes-support/c-ares/c-ares/run-ptest
new file mode 100644
index 0000000000..66ffd53889
--- /dev/null
+++ b/meta-oe/recipes-support/c-ares/c-ares/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+./arestest --gtest_filter=-*.Live* --gtest_print_time=0 | sed -E '/^\[ RUN/d ; s/\[ OK \]/PASS: / ; s/\[ DISABLED \]/SKIP: / ; s/\[ FAILED \]/FAIL: /'
+
diff --git a/meta-oe/recipes-support/c-ares/c-ares_1.18.1.bb b/meta-oe/recipes-support/c-ares/c-ares_1.18.1.bb
deleted file mode 100644
index 2cd00cb578..0000000000
--- a/meta-oe/recipes-support/c-ares/c-ares_1.18.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (c) 2012-2014 LG Electronics, Inc.
-SUMMARY = "c-ares is a C library that resolves names asynchronously."
-HOMEPAGE = "http://daniel.haxx.se/projects/c-ares/"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=fb997454c8d62aa6a47f07a8cd48b006"
-
-SRC_URI = "git://github.com/c-ares/c-ares.git;branch=main;protocol=https"
-SRCREV = "2aa086f822aad5017a6f2061ef656f237a62d0ed"
-
-UPSTREAM_CHECK_GITTAGREGEX = "cares-(?P<pver>\d+_(\d_?)+)"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
-
-PACKAGES =+ "${PN}-utils"
-
-FILES:${PN}-utils = "${bindir}"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/c-ares/c-ares_1.27.0.bb b/meta-oe/recipes-support/c-ares/c-ares_1.27.0.bb
new file mode 100644
index 0000000000..2d91ac1731
--- /dev/null
+++ b/meta-oe/recipes-support/c-ares/c-ares_1.27.0.bb
@@ -0,0 +1,30 @@
+# Copyright (c) 2012-2014 LG Electronics, Inc.
+SUMMARY = "c-ares is a C library that resolves names asynchronously."
+HOMEPAGE = "http://daniel.haxx.se/projects/c-ares/"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=fdbc58a6da11a9f68aa73c453818decc"
+
+SRC_URI = "https://c-ares.org/download/${BPN}-${PV}.tar.gz \
+ file://run-ptest"
+SRC_URI[sha256sum] = "0a72be66959955c43e2af2fbd03418e82a2bd5464604ec9a62147e37aceb420b"
+
+PACKAGECONFIG ?= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
+PACKAGECONFIG[manpages] = ""
+PACKAGECONFIG[tests] = "-DCARES_BUILD_TESTS=ON,-DCARES_BUILD_TESTS=OFF,googletest"
+
+inherit cmake manpages pkgconfig ptest
+
+EXTRA_OECMAKE = "-DCARES_STATIC=${@ 'ON' if d.getVar('DISABLE_STATIC') == '' else 'OFF' }"
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}
+ install -m 0755 ${B}/bin/arestest ${D}${PTEST_PATH}
+ install -m 0755 ${WORKDIR}/run-ptest ${D}${PTEST_PATH}
+}
+
+PACKAGE_BEFORE_PN = "${PN}-utils"
+
+FILES:${PN}-utils = "${bindir}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/c-periphery/c-periphery_2.3.1.bb b/meta-oe/recipes-support/c-periphery/c-periphery_2.3.1.bb
deleted file mode 100644
index b5bdcd5b19..0000000000
--- a/meta-oe/recipes-support/c-periphery/c-periphery_2.3.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "C-Periphery lib used to access GPIO, LED, PWM, SPI, I2C, MMIO, Serial"
-DESCRIPTION = "A C library for peripheral I/O (GPIO, LED, PWM, SPI, I2C, MMIO, Serial) in Linux"
-
-HOMEPAGE = "https://github.com/vsergeev/c-periphery"
-
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4097ec544cf01e9c7cfc4bdf8e4ed887"
-
-SRC_URI = "git://github.com/vsergeev/c-periphery;protocol=https;branch=master"
-SRCREV = "23bfa4ab481edbad82a69ee385fc58ce03b63084"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON"
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/meta-oe/recipes-support/c-periphery/c-periphery_2.4.2.bb b/meta-oe/recipes-support/c-periphery/c-periphery_2.4.2.bb
new file mode 100644
index 0000000000..8e38517448
--- /dev/null
+++ b/meta-oe/recipes-support/c-periphery/c-periphery_2.4.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "C-Periphery lib used to access GPIO, LED, PWM, SPI, I2C, MMIO, Serial"
+DESCRIPTION = "A C library for peripheral I/O (GPIO, LED, PWM, SPI, I2C, MMIO, Serial) in Linux"
+
+HOMEPAGE = "https://github.com/vsergeev/c-periphery"
+
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=be30d45bdc453f70a494c149c2168289"
+
+SRC_URI = "git://github.com/vsergeev/c-periphery;protocol=https;branch=master"
+SRCREV = "91f9678d2a35a3af3c633f20165bdde8bea32209"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON"
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb b/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
index 3ccd9a1371..bf62e8416e 100644
--- a/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
+++ b/meta-oe/recipes-support/canonical-multitouch/frame_2.5.0.bb
@@ -8,7 +8,9 @@ LIC_FILES_CHKSUM = " \
file://COPYING.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
"
-inherit autotools pkgconfig
+inherit autotools pkgconfig features_check
+
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl', '', d)}"
SRC_URI = "https://launchpad.net/${BPN}/trunk/v${PV}/+download/${BPN}-${PV}.tar.gz \
file://pessimizing-move.patch"
diff --git a/meta-oe/recipes-support/canonical-multitouch/geis/0001-libgeis-Compare-the-first-character-of-string-to-nul.patch b/meta-oe/recipes-support/canonical-multitouch/geis/0001-libgeis-Compare-the-first-character-of-string-to-nul.patch
index 3b3acab245..4a9d25f326 100644
--- a/meta-oe/recipes-support/canonical-multitouch/geis/0001-libgeis-Compare-the-first-character-of-string-to-nul.patch
+++ b/meta-oe/recipes-support/canonical-multitouch/geis/0001-libgeis-Compare-the-first-character-of-string-to-nul.patch
@@ -13,6 +13,8 @@ fixes
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
libgeis/geis_v1.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-support/canonical-multitouch/geis/fix-indentation-for-gcc6.patch b/meta-oe/recipes-support/canonical-multitouch/geis/fix-indentation-for-gcc6.patch
index 389e1b3fd7..7f55ed9eaf 100644
--- a/meta-oe/recipes-support/canonical-multitouch/geis/fix-indentation-for-gcc6.patch
+++ b/meta-oe/recipes-support/canonical-multitouch/geis/fix-indentation-for-gcc6.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- geis-2.2.17/libgeis/geis_subscription.c.orig 2016-06-17 12:04:21.062938443 -0400
+++ geis-2.2.17/libgeis/geis_subscription.c 2016-06-17 12:05:02.934939172 -0400
@@ -237,9 +237,10 @@
diff --git a/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb b/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
index e7f3b5131f..139649b975 100644
--- a/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
+++ b/meta-oe/recipes-support/canonical-multitouch/geis_2.2.17.bb
@@ -15,7 +15,7 @@ LIC_FILES_CHKSUM = " \
inherit autotools pkgconfig python3native lib_package features_check
-REQUIRED_DISTRO_FEATURES = "x11"
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
DEPENDS += "grail dbus-glib python3 virtual/libx11 libxext libxi libxcb dbus frame"
@@ -48,12 +48,12 @@ RDEPENDS:${PN}-bin = " \
FILES:${PN} += " \
${datadir}/geisview \
- ${libdir}/${PYTHON_DIR}/site-packages/geis* \
- ${libdir}/${PYTHON_DIR}/site-packages/_*.so \
+ ${PYTHON_SITEPACKAGES_DIR}/geis* \
+ ${PYTHON_SITEPACKAGES_DIR}/_*.so \
"
-FILES:${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug"
+FILES:${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/.debug"
-FILES:${PN}-dev += "${libdir}/${PYTHON_DIR}/site-packages/_*.la"
+FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/_*.la"
-FILES:${PN}-staticdev += "${libdir}/${PYTHON_DIR}/site-packages/_*.a"
+FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/_*.a"
diff --git a/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb b/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb
index 6646c8bfc1..067052c036 100644
--- a/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb
+++ b/meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = " \
file://COPYING.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
"
-inherit autotools pkgconfig
+inherit autotools pkgconfig features_check
DEPENDS = "frame"
CXXFLAGS:append:toolchain-clang = " -Wno-pessimizing-move"
@@ -19,6 +19,8 @@ UPSTREAM_CHECK_URI = "https://launchpad.net/grail/trunk"
SRC_URI[md5sum] = "0df1b3ec6167920f310e2effe6e2ad44"
SRC_URI[sha256sum] = "5eed1f650f042481daa3a2de5e7d43261fe343b2a1b1e240f3b7fc26572c9df3"
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl', '', d)}"
+
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
PACKAGECONFIG[x11] = "--with-x11, --without-x11, libxi"
diff --git a/meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch b/meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch
index 586ff18c32..e39e7ddd3d 100644
--- a/meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch
+++ b/meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch
@@ -1,22 +1,24 @@
+From c82680a21c7411ba63e5815786eeb471720faa29 Mon Sep 17 00:00:00 2001
+From: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+Date: Wed, 6 Nov 2019 20:10:09 +0800
Subject: [PATCH] Add build rule for README.
fix do_configure error:
Makefile.am: required file `./README' not found
+Upstream-Status: Pending
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+
---
Makefile.am | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile.am b/Makefile.am
-index 49574a3..a5a7c2a 100644
+index e77c4c4..fd77ecd 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -26,3 +26,4 @@ libtool: $(LIBTOOL_DEPS)
+@@ -27,3 +27,4 @@ libtool: $(LIBTOOL_DEPS)
ChangeLog:
git log --stat --decorate=short > $@
+README: README.md
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/ccid/ccid_1.5.0.bb b/meta-oe/recipes-support/ccid/ccid_1.5.0.bb
deleted file mode 100644
index 9775d82fae..0000000000
--- a/meta-oe/recipes-support/ccid/ccid_1.5.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Generic USB CCID smart card reader driver"
-HOMEPAGE = "https://ccid.apdu.fr/"
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-DEPENDS = "autoconf-archive-native virtual/libusb0 pcsc-lite"
-RDEPENDS:${PN} = "pcsc-lite"
-
-SRC_URI = "https://ccid.apdu.fr/files/ccid-${PV}.tar.bz2 \
- file://0001-Add-build-rule-for-README.patch \
-"
-
-SRC_URI[md5sum] = "f246d6601856775310c86b841b616de5"
-SRC_URI[sha256sum] = "81549b3422469d503996d03a3aed2ef1375b359167f10d66be9e3844e729322e"
-
-inherit autotools pkgconfig
-
-FILES:${PN} += "${libdir}/pcsc/"
-FILES:${PN}-dbg += "${libdir}/pcsc/drivers/*/*/*/.debug"
diff --git a/meta-oe/recipes-support/ccid/ccid_1.5.5.bb b/meta-oe/recipes-support/ccid/ccid_1.5.5.bb
new file mode 100644
index 0000000000..e76881916e
--- /dev/null
+++ b/meta-oe/recipes-support/ccid/ccid_1.5.5.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Generic USB CCID smart card reader driver"
+HOMEPAGE = "https://ccid.apdu.fr/"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = "autoconf-archive-native virtual/libusb0 pcsc-lite"
+RDEPENDS:${PN} = "pcsc-lite"
+
+SRC_URI = "https://ccid.apdu.fr/files/ccid-${PV}.tar.bz2 \
+ file://0001-Add-build-rule-for-README.patch \
+"
+
+SRC_URI[sha256sum] = "194708f75fe369d45dd7c15e8b3e8a7db8b49cfc5557574ca2a2e76ef12ca0ca"
+
+inherit autotools pkgconfig
+
+FILES:${PN} += "${libdir}/pcsc/"
+FILES:${PN}-dbg += "${libdir}/pcsc/drivers/*/*/*/.debug"
diff --git a/meta-oe/recipes-support/ceres-solver/ceres-solver_2.1.0.bb b/meta-oe/recipes-support/ceres-solver/ceres-solver_2.1.0.bb
deleted file mode 100644
index 2b74ad845b..0000000000
--- a/meta-oe/recipes-support/ceres-solver/ceres-solver_2.1.0.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-DESCRIPTION = "Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems."
-AUTHOR = "Sameer Agarwal and Keir Mierle and Others"
-HOMEPAGE = "http://ceres-solver.org/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bb761279816b72be19d7ce646e4e2a14"
-
-DEPENDS = "libeigen glog"
-
-SRC_URI = "git://github.com/ceres-solver/ceres-solver.git;branch=master;protocol=https"
-SRCREV = "f68321e7de8929fbcdb95dd42877531e64f72f66"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-do_configure:prepend() {
- # otherwise https://github.com/ceres-solver/ceres-solver/blob/0b748597889f460764f6c980a00c6f502caa3875/cmake/AddGerritCommitHook.cmake#L68
- # will try to fetch https://ceres-solver-review.googlesource.com/tools/hooks/commit-msg durind do_configure
- # which sometimes gets stuck (as there is no TIMEOUT set in DOWNLOAD)
- # and we really don't need Gerrit's Change-Id tags when just building this
- touch ${S}/.git/hooks/commit-msg
-}
-
-# We don't want path to eigen3 in ceres-solver RSS to be
-# used by components which use CeresConfig.cmake from their
-# own RSS
-# ceres-solver/1.14-r0/packages-split/ceres-solver-dev/usr/lib/cmake/Ceres/CeresConfig.cmake: set(Eigen3_DIR ceres-solver/1.14-r0/recipe-sysroot/usr/share/eigen3/cmake)
-# ceres-solver/1.14-r0/packages-split/ceres-solver-dev/usr/lib/cmake/Ceres/CeresConfig.cmake: list(APPEND EIGEN_INCLUDE_DIR_HINTS ceres-solver/1.14-r0/recipe-sysroot/usr/include/eigen3)
-# ceres-solver/1.14-r0/packages-split/ceres-solver-dev/usr/lib/cmake/Ceres/CeresConfig.cmake: set(glog_DIR ceres-solver/1.14-r0/recipe-sysroot/usr/lib/cmake/glog)
-SSTATE_SCAN_FILES += "*.cmake"
-
-PACKAGECONFIG ??= ""
-
-# suitesparse* recipes will be in meta-ros layer
-PACKAGECONFIG[suitesparse] = "-DSUITESPARSE=ON,-DSUITESPARSE=OFF,suitesparse-config suitesparse-amd suitesparse-camd suitesparse-colamd suitesparse-ccolamd suitesparse-cholmod suitesparse-metis suitesparse-spqr"
-PACKAGECONFIG[cxsparse] = "-DCXSPARSE=ON,-DCXSPARSE=OFF,suitesparse-cxsparse"
-PACKAGECONFIG[lapack] = "-DLAPACK=ON,-DLAPACK=OFF,lapack"
-
-# Only a static library and headers are created
-RDEPENDS:${PN}-dev = ""
-RRECOMMENDS:${PN}-dev = "${PN}-staticdev"
-RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/meta-oe/recipes-support/ceres-solver/ceres-solver_2.2.0.bb b/meta-oe/recipes-support/ceres-solver/ceres-solver_2.2.0.bb
new file mode 100644
index 0000000000..18db0721de
--- /dev/null
+++ b/meta-oe/recipes-support/ceres-solver/ceres-solver_2.2.0.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems."
+HOMEPAGE = "http://ceres-solver.org/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3585a26c9cd9ec0cb36a7d65542878ca"
+
+DEPENDS = "libeigen glog"
+
+SRC_URI = "git://github.com/ceres-solver/ceres-solver.git;branch=master;protocol=https"
+SRCREV = "85331393dc0dff09f6fb9903ab0c4bfa3e134b01"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+do_configure:prepend() {
+ # otherwise https://github.com/ceres-solver/ceres-solver/blob/0b748597889f460764f6c980a00c6f502caa3875/cmake/AddGerritCommitHook.cmake#L68
+ # will try to fetch https://ceres-solver-review.googlesource.com/tools/hooks/commit-msg durind do_configure
+ # which sometimes gets stuck (as there is no TIMEOUT set in DOWNLOAD)
+ # and we really don't need Gerrit's Change-Id tags when just building this
+ touch ${S}/.git/hooks/commit-msg
+}
+
+# We don't want path to eigen3 in ceres-solver RSS to be
+# used by components which use CeresConfig.cmake from their
+# own RSS
+# ceres-solver/1.14-r0/packages-split/ceres-solver-dev/usr/lib/cmake/Ceres/CeresConfig.cmake: set(Eigen3_DIR ceres-solver/1.14-r0/recipe-sysroot/usr/share/eigen3/cmake)
+# ceres-solver/1.14-r0/packages-split/ceres-solver-dev/usr/lib/cmake/Ceres/CeresConfig.cmake: list(APPEND EIGEN_INCLUDE_DIR_HINTS ceres-solver/1.14-r0/recipe-sysroot/usr/include/eigen3)
+# ceres-solver/1.14-r0/packages-split/ceres-solver-dev/usr/lib/cmake/Ceres/CeresConfig.cmake: set(glog_DIR ceres-solver/1.14-r0/recipe-sysroot/usr/lib/cmake/glog)
+SSTATE_SCAN_FILES += "*.cmake"
+
+PACKAGECONFIG ??= ""
+
+# suitesparse* recipes will be in meta-ros layer
+PACKAGECONFIG[suitesparse] = "-DSUITESPARSE=ON,-DSUITESPARSE=OFF,suitesparse-config suitesparse-amd suitesparse-camd suitesparse-colamd suitesparse-ccolamd suitesparse-cholmod suitesparse-metis suitesparse-spqr"
+PACKAGECONFIG[cxsparse] = "-DCXSPARSE=ON,-DCXSPARSE=OFF,suitesparse-cxsparse"
+PACKAGECONFIG[lapack] = "-DLAPACK=ON,-DLAPACK=OFF,lapack"
+
+# Only a static library and headers are created
+RDEPENDS:${PN}-dev = ""
+RRECOMMENDS:${PN}-dev = "${PN}-staticdev"
+RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/meta-oe/recipes-support/cli11/cli11_2.2.0.bb b/meta-oe/recipes-support/cli11/cli11_2.2.0.bb
deleted file mode 100644
index 53a57489fe..0000000000
--- a/meta-oe/recipes-support/cli11/cli11_2.2.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "C++11 command line parser"
-DESCRIPTION = "A command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface."
-HOMEPAGE = "https://github.com/CLIUtils/CLI11"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9ad746b5f49c0fd53c08ca1faff1922c"
-SRCREV = "b9be5b9444772324459989177108a6a65b8b2769"
-PV .= "+git${SRCPV}"
-
-SRC_URI += "gitsm://github.com/CLIUtils/CLI11;branch=main;protocol=https \
- https://github.com/philsquared/Catch/releases/download/v2.13.7/catch.hpp \
- file://0001-Do-not-download-the-catch-framework-during-configure.patch"
-
-SRC_URI[sha256sum] = "ea379c4a3cb5799027b1eb451163dff065a3d641aaba23bf4e24ee6b536bd9bc"
-S = "${WORKDIR}/git"
-
-do_configure:prepend() {
- mkdir -p ${S}/tests/catch2
- cp ${DL_DIR}/catch.hpp ${S}/tests/catch2/catch.hpp
-}
-
-inherit cmake
-inherit ptest
-
-# cli11 is a header only C++ library, so the main package will be empty.
-RDEPENDS:${PN}-dev = ""
diff --git a/meta-oe/recipes-support/cli11/cli11_2.3.2.bb b/meta-oe/recipes-support/cli11/cli11_2.3.2.bb
new file mode 100644
index 0000000000..ef3c951bbf
--- /dev/null
+++ b/meta-oe/recipes-support/cli11/cli11_2.3.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "C++11 command line parser"
+DESCRIPTION = "A command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface."
+HOMEPAGE = "https://github.com/CLIUtils/CLI11"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=afb20fe5f67e21074b10b864d9563c11"
+SRCREV = "291c58789c031208f08f4f261a858b5b7083e8e2"
+PV .= "+git"
+
+SRC_URI += "gitsm://github.com/CLIUtils/CLI11;branch=main;protocol=https \
+ https://github.com/philsquared/Catch/releases/download/v2.13.7/catch.hpp \
+ file://0001-Do-not-download-the-catch-framework-during-configure.patch"
+
+SRC_URI[sha256sum] = "ea379c4a3cb5799027b1eb451163dff065a3d641aaba23bf4e24ee6b536bd9bc"
+S = "${WORKDIR}/git"
+
+do_configure:prepend() {
+ mkdir -p ${S}/tests/catch2
+ cp ${DL_DIR}/catch.hpp ${S}/tests/catch2/catch.hpp
+}
+
+inherit cmake
+
+# cli11 is a header only C++ library, so the main package will be empty.
+RDEPENDS:${PN}-dev = ""
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/cmark/cmark_0.30.2.bb b/meta-oe/recipes-support/cmark/cmark_0.30.2.bb
deleted file mode 100644
index 6d6d3e5850..0000000000
--- a/meta-oe/recipes-support/cmark/cmark_0.30.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "CommonMark parsing and rendering library and program in C"
-HOMEPAGE = "https://github.com/commonmark/cmark"
-LICENSE = "BSD-2-Clause & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=81f9cae6293cc0345a9144b78152ab62"
-
-SRC_URI = "git://github.com/commonmark/cmark.git;branch=master;protocol=https"
-SRCREV = "a8da5a2f252b96eca60ae8bada1a9ba059a38401"
-S = "${WORKDIR}/git"
-
-inherit cmake lib_package
-
-EXTRA_OECMAKE += " \
- -DCMARK_TESTS=OFF \
- -DCMARK_STATIC=OFF \
-"
diff --git a/meta-oe/recipes-support/cmark/cmark_0.31.0.bb b/meta-oe/recipes-support/cmark/cmark_0.31.0.bb
new file mode 100644
index 0000000000..ce8b4cd493
--- /dev/null
+++ b/meta-oe/recipes-support/cmark/cmark_0.31.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "CommonMark parsing and rendering library and program in C"
+HOMEPAGE = "https://github.com/commonmark/cmark"
+LICENSE = "BSD-2-Clause & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=81f9cae6293cc0345a9144b78152ab62"
+
+SRC_URI = "git://github.com/commonmark/cmark.git;branch=master;protocol=https"
+SRCREV = "8fbf029685482827828b5858444157052f1b0a5f"
+S = "${WORKDIR}/git"
+
+inherit cmake lib_package
+
+EXTRA_OECMAKE += " \
+ -DCMARK_TESTS=OFF \
+ -DCMARK_STATIC=OFF \
+"
diff --git a/meta-oe/recipes-support/colord/colord.inc b/meta-oe/recipes-support/colord/colord.inc
index 41962cd63c..0ae1a30fe6 100644
--- a/meta-oe/recipes-support/colord/colord.inc
+++ b/meta-oe/recipes-support/colord/colord.inc
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = " \
file://meson.build;beginline=3;endline=3;md5=f42198707d793be58b274d34fd5238c3 \
"
-PV = "1.4.5"
+PV = "1.4.6"
SRC_URI = "https://www.freedesktop.org/software/colord/releases/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "b774ea443d239f4a2ee1853bd678426e669ddeda413dcb71cea1638c4d6c5e17"
+SRC_URI[sha256sum] = "7407631a27bfe5d1b672e7ae42777001c105d860b7b7392283c8c6300de88e6f"
diff --git a/meta-oe/recipes-support/consolation/consolation_0.0.8.bb b/meta-oe/recipes-support/consolation/consolation_0.0.8.bb
deleted file mode 100644
index 0936b1ae19..0000000000
--- a/meta-oe/recipes-support/consolation/consolation_0.0.8.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "copy-paste for the Linux console"
-DESCRIPTION = "Consolation is a daemon that provides copy-paste and scrolling \
-support to the Linux console. It is based on the libinput library and \
-supports all pointer devices and settings provided by this library. Similar \
-software include gpm and jamd."
-HOMEPAGE = "https://salsa.debian.org/consolation-team/consolation"
-SECTION = "console/utils"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=73ca626e1d9048abfc7d599370650827"
-
-DEPENDS = " \
- libevdev \
- libinput \
- udev \
-"
-
-SRC_URI = "git://salsa.debian.org/consolation-team/consolation.git;branch=master"
-SRCREV = "4581eaece6e49fa2b687efbdbe23b2de452e7902"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig systemd
-
-do_install:append() {
- install -d ${D}${systemd_system_unitdir}
- install -m 644 ${B}/consolation.service ${D}${systemd_system_unitdir}
-}
-
-SYSTEMD_SERVICE:${PN} = "consolation.service"
diff --git a/meta-oe/recipes-support/consolation/consolation_0.0.9.bb b/meta-oe/recipes-support/consolation/consolation_0.0.9.bb
new file mode 100644
index 0000000000..17981b6e9b
--- /dev/null
+++ b/meta-oe/recipes-support/consolation/consolation_0.0.9.bb
@@ -0,0 +1,29 @@
+SUMMARY = "copy-paste for the Linux console"
+DESCRIPTION = "Consolation is a daemon that provides copy-paste and scrolling \
+support to the Linux console. It is based on the libinput library and \
+supports all pointer devices and settings provided by this library. Similar \
+software include gpm and jamd."
+HOMEPAGE = "https://salsa.debian.org/consolation-team/consolation"
+SECTION = "console/utils"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7df9eea2f4dfdda489c116099e6fc062"
+
+DEPENDS = " \
+ libevdev \
+ libinput \
+ udev \
+"
+
+SRC_URI = "git://salsa.debian.org/consolation-team/consolation.git;branch=master"
+SRCREV = "5ef08f0cd6ede62de14de477b74fc3611108c676"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig systemd
+
+do_install:append() {
+ install -d ${D}${systemd_system_unitdir}
+ install -m 644 ${B}/consolation.service ${D}${systemd_system_unitdir}
+}
+
+SYSTEMD_SERVICE:${PN} = "consolation.service"
diff --git a/meta-oe/recipes-support/cpp-netlib/cpp-netlib/a53f123040998744602f190944464af0e159ea19.patch b/meta-oe/recipes-support/cpp-netlib/cpp-netlib/a53f123040998744602f190944464af0e159ea19.patch
new file mode 100644
index 0000000000..c93b76619c
--- /dev/null
+++ b/meta-oe/recipes-support/cpp-netlib/cpp-netlib/a53f123040998744602f190944464af0e159ea19.patch
@@ -0,0 +1,30 @@
+From a53f123040998744602f190944464af0e159ea19 Mon Sep 17 00:00:00 2001
+From: jjll <jjll@gmv.com>
+Date: Wed, 6 Sep 2023 20:47:41 +0200
+Subject: [PATCH] Compatibility with boost 1.83
+
+Upstream-Status: Backport [https://github.com/cpp-netlib/cpp-netlib/pull/902]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libs/network/src/server_request_parsers_impl.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/boost/network/protocol/http/server/impl/parsers.ipp
++++ b/boost/network/protocol/http/server/impl/parsers.ipp
+@@ -13,6 +13,7 @@
+ #include <tuple>
+ #include <boost/fusion/include/std_tuple.hpp>
+ #include <boost/network/protocol/http/message/header.hpp>
++#include <boost/regex/pending/unicode_iterator.hpp>
+
+ #ifdef BOOST_NETWORK_NO_LIB
+ #ifndef BOOST_NETWORK_INLINE
+@@ -32,7 +33,7 @@ typedef std::basic_string<uint32_t> u32_
+ template <> // <typename Attrib, typename T, typename Enable>
+ struct assign_to_container_from_value<std::string, u32_string, void> {
+ static void call(u32_string const& val, std::string& attr) {
+- u32_to_u8_iterator<u32_string::const_iterator> begin = val.begin(),
++ boost::u32_to_u8_iterator<u32_string::const_iterator> begin = val.begin(),
+ end = val.end();
+ for (; begin != end; ++begin) attr += *begin;
+ }
diff --git a/meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb b/meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb
index 3c271ae5d1..bda5177fc4 100644
--- a/meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb
+++ b/meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb
@@ -8,13 +8,13 @@ DESCRIPTION = "Modern C++ network programming libraries."
SECTION = "libs"
LICENSE = "BSL-1.0 & MIT & Python-2.0"
LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+PV = "0.13.0"
+SRCREV = "31d304cdf52b485f465ada433d8905171b61cbff"
SRC_URI = "\
git://github.com/cpp-netlib/cpp-netlib.git;protocol=https;branch=0.13-release \
+ file://a53f123040998744602f190944464af0e159ea19.patch \
"
-SRC_URI[sha256sum] = "0b9255bb0668d89867a1f367d770f12d7038db4f5b6111774ef032f669cccad4"
-
-SRCREV = "ca95f04d140acf619892ee02a82e930dd91ff7d4"
S = "${WORKDIR}/git"
@@ -24,3 +24,7 @@ DEPENDS = "zlib boost openssl"
EXTRA_OECMAKE:append = " -DCPP-NETLIB_BUILD_TESTS=OFF -DCPP-NETLIB_BUILD_EXAMPLES=OFF"
+do_install:append() {
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/cppnetlib/cppnetlibConfig.cmake
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/cppnetlib/cppnetlibTargets-noconfig.cmake
+}
diff --git a/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch b/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch
index 3ff7f0dd31..b956db22fd 100644
--- a/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch
+++ b/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: new toolchain might have increased the float precision
Author: Gianfranco Costamagna <locutusofborg@debian.org>
Last-Update: 2017-10-28
diff --git a/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch b/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
index 5f1f8a9f9c..961eaf7646 100644
--- a/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
+++ b/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Description: Debian forbids calls to external websites.
Author: Gianfranco Costamagna <locutus@debian.org>
diff --git a/meta-oe/recipes-support/cpprest/cpprest_2.10.18.bb b/meta-oe/recipes-support/cpprest/cpprest_2.10.18.bb
deleted file mode 100644
index 1633412cf5..0000000000
--- a/meta-oe/recipes-support/cpprest/cpprest_2.10.18.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design."
-SECTION = "libs/network"
-HOMEPAGE = "https://github.com/Microsoft/cpprestsdk/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${S}/license.txt;md5=a2e15b954769218ff912468eecd6a02f"
-DEPENDS = "openssl websocketpp zlib boost brotli"
-
-EXTRA_OECMAKE = "-DCPPREST_EXPORT_DIR=cmake/cpprestsdk -DCPPREST_EXCLUDE_BROTLI=OFF -DWERROR=OFF"
-
-SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master \
- file://disable-float-tests.patch \
- file://disable-outside-tests.patch "
-
-# tag 2.10.17
-SRCREV= "122d09549201da5383321d870bed45ecb9e168c5"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
diff --git a/meta-oe/recipes-support/cpprest/cpprest_2.10.19.bb b/meta-oe/recipes-support/cpprest/cpprest_2.10.19.bb
new file mode 100644
index 0000000000..aec7286404
--- /dev/null
+++ b/meta-oe/recipes-support/cpprest/cpprest_2.10.19.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design."
+SECTION = "libs/network"
+HOMEPAGE = "https://github.com/Microsoft/cpprestsdk/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${S}/license.txt;md5=a2e15b954769218ff912468eecd6a02f"
+DEPENDS = "openssl websocketpp zlib boost brotli"
+
+EXTRA_OECMAKE = "-DCPPREST_EXPORT_DIR=cmake/cpprestsdk -DCPPREST_EXCLUDE_BROTLI=OFF -DWERROR=OFF"
+
+SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master \
+ file://disable-float-tests.patch \
+ file://disable-outside-tests.patch "
+
+# tag 2.10.19
+SRCREV= "411a109150b270f23c8c97fa4ec9a0a4a98cdecf"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
diff --git a/meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb b/meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb
index 86a58beda4..f88d3b6ca1 100644
--- a/meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb
+++ b/meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb
@@ -1,10 +1,11 @@
SUMMARY = "cpulimit is a tool which limits the CPU usage of a process"
+DESCRIPTION = "cpulimit is a simple program that attempts to limit the CPU usage of a process (expressed in percentage, not in CPU time). This is useful to control batch jobs, when you don't want them to eat too much CPU. It does not act on the nice value or other priority stuff, but on the real CPU usage. Besides it is able to adapt itself to the overall system load, dynamically and quickly."
HOMEPAGE = "http://cpulimit.sourceforge.net"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86c1c0d961a437e529db93aa3bb32dc4"
SRCREV ?= "f4d2682804931e7aea02a869137344bb5452a3cd"
-SRC_URI = "git://g...@github.com/opsengine/cpulimit.git;protocol=https;branch=master \
+SRC_URI = "git://github.com/opsengine/cpulimit.git;protocol=https;branch=master \
file://0001-Remove-sys-sysctl.h-and-add-missing-libgen.h-include.patch \
"
@@ -15,7 +16,7 @@ do_compile() {
}
do_install() {
install -d ${D}${sbindir}
- install -m 0755 ${B}/src/${PN} ${D}${sbindir}/
+ install -m 0755 ${B}/src/${BPN} ${D}${sbindir}/
}
CFLAGS += "-D_GNU_SOURCE ${LDFLAGS}"
diff --git a/meta-oe/recipes-support/crucible/crucible_2023.11.02.bb b/meta-oe/recipes-support/crucible/crucible_2023.11.02.bb
new file mode 100644
index 0000000000..d53e1a276b
--- /dev/null
+++ b/meta-oe/recipes-support/crucible/crucible_2023.11.02.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Utility that provides userspace support for reading and writing to the i.MX fuses"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=201414b6610203caed355323b1ab3116"
+
+GO_IMPORT = "github.com/usbarmory/crucible"
+SRC_URI = "git://${GO_IMPORT}.git;protocol=https;branch=master"
+
+GO_INSTALL = "\
+ ${GO_IMPORT}/cmd/crucible \
+ ${GO_IMPORT}/cmd/habtool \
+"
+SRCREV = "dec27cd4e0e0db106c0a21d429c04ca8d36bbdd5"
+
+export GOPROXY = "https://proxy.golang.org,direct"
+# Workaround for network access issue during compile step.
+# This needs to be fixed in the recipes buildsystem so that
+# it can be accomplished during do_fetch task.
+do_compile[network] = "1"
+
+inherit go-mod
diff --git a/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb b/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb
index 25d5b09e7f..0e994d8b09 100644
--- a/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb
+++ b/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb
@@ -4,9 +4,8 @@ SECTION = "System Environment/Libraries"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://../ctapi-common.LICENSE;md5=8744cd52545ecb45befebd0da6f70f0a"
-SRC_URI = "http://ftp.riken.jp/Linux/fedora/releases/23/Everything/source/SRPMS/c/${BPN}-${PV}.fc23.src.rpm;extract=ctapi-common.LICENSE \
- http://ftp.riken.jp/Linux/fedora/releases/23/Everything/source/SRPMS/c/${BPN}-${PV}.fc23.src.rpm;extract=ctapi-common.README"
-SRC_URI[md5sum] = "5b7259ef1c8cd9ae801fca7a5cb548c1"
+SRC_URI = "https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/23/Everything/source/SRPMS/c/${BPN}-${PV}.fc23.src.rpm;extract=ctapi-common.LICENSE \
+ https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/23/Everything/source/SRPMS/c/${BPN}-${PV}.fc23.src.rpm;extract=ctapi-common.README"
SRC_URI[sha256sum] = "87a74eb0a66055c34ba2c5c919e74f3211c5950ae1c2cbab967fdf4137f5de91"
do_compile() {
diff --git a/meta-oe/recipes-support/cyaml/cyaml_1.4.1.bb b/meta-oe/recipes-support/cyaml/cyaml_1.4.1.bb
new file mode 100644
index 0000000000..f63348a328
--- /dev/null
+++ b/meta-oe/recipes-support/cyaml/cyaml_1.4.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Cyaml library"
+DESCRIPTION = "LibCYAML is a library for reading and writing structured YAML documents."
+HOMEPAGE = "https://github.com/tlsa/libcyaml"
+SECTION = "libs"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fe6f0e49348c87bddd5d27803dceaaf0"
+DEPENDS = " \
+ libyaml \
+"
+SRCREV = "07ff8654a270ec9b410acd3152b60de9e9f941af"
+
+SRC_URI = "git://github.com/tlsa/libcyaml.git;protocol=https;branch=main"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig
+
+EXTRA_OEMAKE = "'PREFIX=""' 'DESTDIR=${D}' 'CFLAGS=${CFLAGS}' 'LIBDIR=${libdir}' 'INCLUDEDIR=${includedir}' 'VARIANT=release'"
+
+do_compile() {
+ oe_runmake
+}
+do_install() {
+ oe_runmake install
+}
+
+CFLAGS += "-pedantic -Wall -Wextra -O3 -Iinclude" \ No newline at end of file
diff --git a/meta-oe/recipes-support/daemontools/daemontools/0001-Fix-signature-of-main-function.patch b/meta-oe/recipes-support/daemontools/daemontools/0001-Fix-signature-of-main-function.patch
index 19f0ae7f21..4b332a000e 100644
--- a/meta-oe/recipes-support/daemontools/daemontools/0001-Fix-signature-of-main-function.patch
+++ b/meta-oe/recipes-support/daemontools/daemontools/0001-Fix-signature-of-main-function.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix signature of main function
Clang-15 errors out otherewise.
Include needed headers for missing functions
-Upstream-Status:Pending
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/chkshsgr.c | 2 +-
diff --git a/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-Fix-QA-Issue.patch b/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-Fix-QA-Issue.patch
index 30e37cb1d3..139ff30f2e 100644
--- a/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-Fix-QA-Issue.patch
+++ b/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-Fix-QA-Issue.patch
@@ -9,6 +9,8 @@ ERROR: daemontools-0.76-r0 do_package_qa: QA Issue: No GNU_HASH in the elf binar
Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
src/conf-ld | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff b/meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff
index ce1959782a..b5eb7d8b1a 100644
--- a/meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff
+++ b/meta-oe/recipes-support/daemontools/daemontools/0001-error.h-include-errno.h-instead-of-extern-int.diff
@@ -4,6 +4,8 @@ Date: Wed, 12 Dec 2007 13:44:15 +0000
Subject: [PATCH] error.h: '#include <errno.h>' instead of 'extern int errno;'
---
+Upstream-Status: Pending
+
daemontools-0.76/src/error.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff b/meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff
index 73dce90726..16a0148546 100644
--- a/meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff
+++ b/meta-oe/recipes-support/daemontools/daemontools/0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff
@@ -4,6 +4,8 @@ Date: Sun, 24 Feb 2008 10:54:26 +0000
Subject: [PATCH] supervise.c: ./supervise may be a symlink, if it's dangling, create link target
---
+Upstream-Status: Pending
+
daemontools-0.76/src/supervise.c | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch b/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
index 9c07d758ae..98d4a5e45b 100644
--- a/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
+++ b/meta-oe/recipes-support/daemontools/daemontools/cross-compile.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
make sure it can be compiled for cross target
1. never try to compile target binary by native gcc
diff --git a/meta-oe/recipes-support/daemontools/daemontools/warnings.patch b/meta-oe/recipes-support/daemontools/daemontools/warnings.patch
index 2fd18f6f1c..5c9c7114b9 100644
--- a/meta-oe/recipes-support/daemontools/daemontools/warnings.patch
+++ b/meta-oe/recipes-support/daemontools/daemontools/warnings.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Fixup misc warnings
Patch by RiverRat
diff --git a/meta-oe/recipes-support/dc/double-conversion_3.3.0.bb b/meta-oe/recipes-support/dc/double-conversion_3.3.0.bb
new file mode 100644
index 0000000000..a8fd88a9ad
--- /dev/null
+++ b/meta-oe/recipes-support/dc/double-conversion_3.3.0.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Double conversion libraries"
+DESCRIPTION = "This provides binary-decimal and decimal-binary routines for IEEE doubles."
+HOMEPAGE = "https://github.com/google/double-conversion.git"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1ea35644f0ec0d9767897115667e901f"
+
+
+S = "${WORKDIR}/git"
+
+SRC_URI = " \
+ git://github.com/google/double-conversion.git;protocol=https;branch=master \
+ file://run-ptest \
+"
+SRCREV = "4f7a25d8ced8c7cf6eee6fd09d6788eaa23c9afe"
+
+inherit cmake ptest
+
+EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON"
+
+# These ptest use ctest (provided by cmake)
+RDEPENDS:${PN}-ptest += "cmake"
+# Build tests only if ptest is enabled
+EXTRA_OECMAKE += "${@bb.utils.contains('PTEST_ENABLED', '1', '-DBUILD_TESTING=ON', '', d)}"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/test
+ cp -rf ${B}/test ${D}${PTEST_PATH}
+ install -m 0644 ${B}/CTestTestfile.cmake ${D}${PTEST_PATH}/
+ files="
+ CTestTestfile.cmake
+ test/CTestTestfile.cmake
+ test/cmake_install.cmake
+ test/cctest/CTestTestfile.cmake
+ test/cctest/cmake_install.cmake
+ "
+ for file in $files; do
+ sed -i -e "s|${B}|${PTEST_PATH}|g" -e "s|${S}|${PTEST_PATH}|g" -e "s|${WORKDIR}/recipe-sysroot-native||g" "${D}${PTEST_PATH}/${file}"
+ done
+
+}
diff --git a/meta-oe/recipes-support/dc/files/run-ptest b/meta-oe/recipes-support/dc/files/run-ptest
new file mode 100644
index 0000000000..9240a3f851
--- /dev/null
+++ b/meta-oe/recipes-support/dc/files/run-ptest
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+# This script runs tests taken from the github CI for the Double-Conversion library.
+# For more information, please see: https://github.com/google/double-conversion/blob/master/.github/workflows/ci.yml#L60
+
+# Count the number of failed tests
+NUM_FAILS=0
+
+# Run all tests using ctest
+ctest -V
+
+# VCount the number of failed tests by checking the LastTest.log file generated by ctest
+NUM_FAILS=$(grep -c "Failed" Testing/Temporary/LastTest.log)
+
+# Run the tests directly as well, just in case we forgot to add it to ctest
+test/cctest/cctest
+if [ $? -ne 0 ]; then
+ # If the test failed, increment the number of failed tests
+ NUM_FAILS=$(expr $NUM_FAILS + 1)
+fi
+
+# Return the number of failed tests
+exit $NUM_FAILS
diff --git a/meta-oe/recipes-support/dfu-util/dfu-util_0.11.bb b/meta-oe/recipes-support/dfu-util/dfu-util_0.11.bb
index 7f80a30535..17547ca83f 100644
--- a/meta-oe/recipes-support/dfu-util/dfu-util_0.11.bb
+++ b/meta-oe/recipes-support/dfu-util/dfu-util_0.11.bb
@@ -1,5 +1,4 @@
DESCRIPTION = "USB Device Firmware Upgrade utility"
-AUTHOR = "Harald Welte <laforge@openmoko.org>"
HOMEPAGE = "http://dfu-util.sourceforge.net"
SECTION = "devel"
LICENSE = "GPL-2.0-only"
diff --git a/meta-oe/recipes-support/dool/dool/0001-Fix-build-error-as-following.patch b/meta-oe/recipes-support/dool/dool/0001-Fix-build-error-as-following.patch
deleted file mode 100644
index 2324af4997..0000000000
--- a/meta-oe/recipes-support/dool/dool/0001-Fix-build-error-as-following.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From e81feec1ebbc676220cd8759d83f46335602d079 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@fujitsu.com>
-Date: Fri, 7 Jan 2022 14:37:36 +0900
-Subject: [PATCH] Fix build error as following:
-
-*** No rule to make target 'dstat.1', needed by 'docs'. Stop.
-
-Upstream-Status: Pending
-
-Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
----
- docs/Makefile | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/docs/Makefile b/docs/Makefile
-index c031e82..1a85e61 100644
---- a/docs/Makefile
-+++ b/docs/Makefile
-@@ -11,13 +11,13 @@ all:
-
- dist: docs
-
--docs: dstat.1 $(htmltargets)
-+docs: dool.1 $(htmltargets)
-
--install: dstat.1
-- install -Dp -m0644 dstat.1 $(DESTDIR)$(mandir)/man1/dstat.1
-+install: dool.1
-+ install -Dp -m0644 dool.1 $(DESTDIR)$(mandir)/man1/dool.1
-
- clean:
-- rm -f dstat.1 *.html *.xml
-+ rm -f dool.1 *.html *.xml
-
- %.1.html: %.1.adoc
- asciidoc -d manpage $<
---
-2.25.1
-
diff --git a/meta-oe/recipes-support/dool/dool_1.0.0.bb b/meta-oe/recipes-support/dool/dool_1.0.0.bb
deleted file mode 100644
index d34397c12a..0000000000
--- a/meta-oe/recipes-support/dool/dool_1.0.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "versatile resource statics tool"
-DESCRIPTION = "Dstat is a versatile replacement for vmstat, iostat, netstat and ifstat. \
-Dstat overcomes some of their limitations and adds some extra features, more counters \
-and flexibility. Dstat is handy for monitoring systems during performance tuning tests, \
-benchmarks or troubleshooting."
-HOMEPAGE = "http://dag.wiee.rs/home-made/dstat"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS += "asciidoc-native xmlto-native"
-
-SRC_URI = "git://github.com/scottchiefbaker/dool.git;branch=master;protocol=https \
- file://0001-Fix-build-error-as-following.patch \
- "
-
-SRCREV = "34a3244b46aa70a31f871a7ca8ffa8d3a7b950d2"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install
-}
-
-RDEPENDS:${PN} += "python3-core python3-misc python3-resource python3-shell python3-six python3-unixadmin"
diff --git a/meta-oe/recipes-support/dool/dool_1.3.1.bb b/meta-oe/recipes-support/dool/dool_1.3.1.bb
new file mode 100644
index 0000000000..b20f8b4015
--- /dev/null
+++ b/meta-oe/recipes-support/dool/dool_1.3.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Dool is a Python3 compatible fork of Dstat"
+DESCRIPTION = "Dool is a command line tool to monitor many aspects of your system: \
+CPU, Memory, Network, Load Average, etc. It also includes a robust plug-in architecture \
+to allow monitoring other system metrics."
+HOMEPAGE = "http://dag.wiee.rs/home-made/dstat"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+DEPENDS += "asciidoc-native xmlto-native"
+RDEPENDS:${PN} += "python3-core python3-misc python3-resource python3-shell python3-six python3-unixadmin"
+
+SRC_URI = "git://github.com/scottchiefbaker/dool.git;branch=master;protocol=https \
+ "
+
+SRCREV = "30847c748483bc088549486292232d805b086b1f"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+}
+
+
diff --git a/meta-oe/recipes-support/driverctl/driverctl_0.111.bb b/meta-oe/recipes-support/driverctl/driverctl_0.111.bb
deleted file mode 100644
index f5f542c541..0000000000
--- a/meta-oe/recipes-support/driverctl/driverctl_0.111.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "driverctl is a device driver control utility for Linux"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/LGPL-2.1-only;md5=1a6d268fd218675ffea8be556788b780"
-
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-DEPENDS = "systemd"
-RDEPENDS:${PN} += "bash bash-completion"
-
-SRC_URI = " git://gitlab.com/driverctl/driverctl.git;branch=master"
-SRCREV = "fa9dce43d1a667d6e6e26895fbed01b3b04362c9"
-
-S = "${WORKDIR}/git"
-
-inherit pkgconfig systemd features_check
-
-FILES:${PN} += "${libdir}"
-FILES:${PN} += "${libdir}/udev"
-FILES:${PN} += "${libdir}/udev/rules.d"
-FILES:${PN} += "${systemd_unitdir}"
-FILES:${PN} += "${systemd_unitdir}/system"
-FILES:${PN} += "${datadir}"
-FILES:${PN} += "${datadir}/bash-completion"
-FILES:${PN} += "${datadir}/bash-completion/completions"
-
-do_install () {
- oe_runmake install DESTDIR=${D}
-}
diff --git a/meta-oe/recipes-support/driverctl/driverctl_0.115.bb b/meta-oe/recipes-support/driverctl/driverctl_0.115.bb
new file mode 100644
index 0000000000..970844f982
--- /dev/null
+++ b/meta-oe/recipes-support/driverctl/driverctl_0.115.bb
@@ -0,0 +1,26 @@
+SUMMARY = "driverctl is a device driver control utility for Linux"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+DEPENDS = "systemd"
+RDEPENDS:${PN} += "bash bash-completion"
+
+SRC_URI = "git://gitlab.com/driverctl/driverctl.git;branch=master;protocol=https"
+SRCREV = "2ba60536eb20ca0a6a751bd8b6501dba84ec45d3"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig systemd features_check
+
+do_install () {
+ oe_runmake install DESTDIR=${D}
+}
+
+FILES:${PN} += " \
+ ${libdir} \
+ ${datadir} \
+ ${systemd_system_unitdir} \
+"
+
diff --git a/meta-oe/recipes-support/edid-decode/edid-decode_git.bb b/meta-oe/recipes-support/edid-decode/edid-decode_git.bb
new file mode 100644
index 0000000000..6eaec800ca
--- /dev/null
+++ b/meta-oe/recipes-support/edid-decode/edid-decode_git.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Decode EDID data in human-readable format"
+DESCRIPTION = "edid-decode decodes EDID monitor description data in human-readable format."
+HOMEPAGE = "https://hverkuil.home.xs4all.nl/edid-decode/edid-decode.html"
+
+SECTION = "console/utils"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2ef696d66c156139232201f223c22592"
+
+SRC_URI= "git://git.linuxtv.org/edid-decode.git;protocol=https;branch=master"
+SRCREV = "5920bf2a756b2f748c49ff6a08b9f421026473c5"
+PV = "0.0+git"
+S = "${WORKDIR}/git"
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/eject/eject/eject-timeout.patch b/meta-oe/recipes-support/eject/eject/eject-timeout.patch
index de8146f32a..4511e17069 100644
--- a/meta-oe/recipes-support/eject/eject/eject-timeout.patch
+++ b/meta-oe/recipes-support/eject/eject/eject-timeout.patch
@@ -1,6 +1,6 @@
allow a longer timeout
-Upstream-Status: Backport
+Upstream-Status: Backport
Signed-off-by: Morgan Little <morgan.little@windriver.com>
diff --git a/meta-oe/recipes-support/eject/eject_2.1.5.bb b/meta-oe/recipes-support/eject/eject_2.1.5.bb
index 33b31a2b1e..dd5489e7db 100644
--- a/meta-oe/recipes-support/eject/eject_2.1.5.bb
+++ b/meta-oe/recipes-support/eject/eject_2.1.5.bb
@@ -18,7 +18,6 @@ SRC_URI[sha256sum] = "ef9f7906484cfde4ba223b2682a37058f9a3c7d3bb1adda7a34a67402e
S = "${WORKDIR}/${BPN}"
-PR = "r1"
do_compile:prepend() {
# PO subdir must be in build directory
diff --git a/meta-oe/recipes-support/emacs/emacs_28.2.bb b/meta-oe/recipes-support/emacs/emacs_28.2.bb
deleted file mode 100644
index 7b0a422be6..0000000000
--- a/meta-oe/recipes-support/emacs/emacs_28.2.bb
+++ /dev/null
@@ -1,277 +0,0 @@
-SUMMARY = "Emacs is the extensible, customizable, self-documenting real-time display editor"
-HOMEPAGE = "https://www.gnu.org/software/emacs/"
-
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
-
-SRC_URI = "https://ftp.gnu.org/pub/gnu/emacs/emacs-${PV}.tar.xz \
- "
-SRC_URI:append:class-target = " file://usemake-docfile-native.patch"
-
-SRC_URI[sha256sum] = "ee21182233ef3232dc97b486af2d86e14042dbb65bbc535df562c3a858232488"
-
-CVE_CHECK_IGNORE = "\
- CVE-2007-6109 \
-"
-
-PACKAGECONFIG[gnutls] = "--with-gnutls=yes,--with-gnutls=no,gnutls"
-PACKAGECONFIG[kerberos] = "--with-kerberos=yes,--with-kerberos=no,krb5"
-PACKAGECONFIG[libgmp] = "--with-libgmp=yes,--with-libgmp=no,gmp"
-
-PACKAGECONFIG ??= "gnutls kerberos libgmp"
-
-# We could use --without-all but its better to
-# split it into several packages (size of minimal doesnt change)
-EXTRA_OECONF = " --with-x=no --with-dumping=none --disable-build-details"
-
-# Disable seccomp, as its a default dependency for gnutls but it doesnt work when cross-compiling emacs
-EXTRA_OECONF:append = " ${@bb.utils.contains('PACKAGECONFIG', 'gnutls', 'ac_cv_have_decl_SECCOMP_FILTER_FLAG_TSYNC=no ac_cv_have_decl_SECCOMP_SET_MODE_FILTER=no', '', d)}"
-
-
-DEPENDS = "ncurses"
-DEPENDS:append:class-target = " emacs-native"
-
-inherit autotools mime-xdg pkgconfig
-
-# Remove build host references to avoid target pollution
-do_compile:prepend () {
- sed -i -e 's|${TMPDIR}||g' ${B}/src/config.h
- sed -i -e 's|${B}||g' ${B}/src/epaths.h
-}
-
-do_compile:class-native (){
- cd ${B}/lib-src
- oe_runmake make-docfile
- oe_runmake make-fingerprint
-}
-do_install:class-native(){
- install -d ${D}${bindir}
- install -m 755 ${B}/lib-src/make-docfile ${D}/${bindir}/
- install -m 755 ${B}/lib-src/make-fingerprint ${D}/${bindir}/
-}
-
-
-do_install:append(){
- # Delete systemd stuff, extend using DISTRO_FEATURES?
- rm -rf ${D}/${libdir}
- # Extra stuff which isnt needed
- rm -rf ${D}/${datadir}/metainfo
- rm -rf ${D}/${datadir}/info
- # Emacs copies files to ${D} while building, which were unpacked
- # by a different user, we need to restore those
- chown -R root:root ${D}${datadir}
-}
-
-# Use a similar strategy to how we build python:
-# Create three packages
-# minimal - A working lisp based text editor
-# base - What would probably work for most
-# full - A fully working emacs
-# The lists of files are long but are worth it
-# Installing "emacs" installs the base package
-PACKAGE_BEFORE_PN = "${PN}-minimal ${PN}-base ${PN}-full"
-RPROVIDES:${PN}-base = "${PN}"
-RDEPENDS:${PN}-base:class-target = "${PN}-minimal"
-RDEPENDS:${PN}-full:class-target = "${PN}"
-
-
-# A minimal version of emacs that works
-# These are kept sorted in alphabetical order
-FILES:${PN}-minimal = " \
- ${bindir}/emacs* \
- ${datadir}/${BPN}/${PV}/etc/charsets/ \
- ${datadir}/${BPN}/${PV}/lisp/abbrev.elc \
- ${datadir}/${BPN}/${PV}/lisp/bindings.elc \
- ${datadir}/${BPN}/${PV}/lisp/buff-menu.elc \
- ${datadir}/${BPN}/${PV}/lisp/button.elc \
- ${datadir}/${BPN}/${PV}/lisp/case-table.elc \
- ${datadir}/${BPN}/${PV}/lisp/composite.elc \
- ${datadir}/${BPN}/${PV}/lisp/cus-face.elc \
- ${datadir}/${BPN}/${PV}/lisp/cus-start.elc \
- ${datadir}/${BPN}/${PV}/lisp/custom.elc \
- ${datadir}/${BPN}/${PV}/lisp/disp-table.elc \
- ${datadir}/${BPN}/${PV}/lisp/electric.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/backquote.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/byte-opt.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/byte-run.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/bytecomp.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cconv.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-generic.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-preloaded.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/easymenu.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/eldoc.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/float-sup.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/gv.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/lisp-mode.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/lisp.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/macroexp.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/map-ynp.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/map.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/nadvice.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/regexp-opt.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/seq.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/shorthands.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/subr-x.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/syntax.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/tabulated-list.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/timer.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/vc/warnings.elc \
- ${datadir}/${BPN}/${PV}/lisp/env.elc \
- ${datadir}/${BPN}/${PV}/lisp/epa-hook.elc \
- ${datadir}/${BPN}/${PV}/lisp/facemenu.elc \
- ${datadir}/${BPN}/${PV}/lisp/faces.elc \
- ${datadir}/${BPN}/${PV}/lisp/files.elc \
- ${datadir}/${BPN}/${PV}/lisp/font-core.elc \
- ${datadir}/${BPN}/${PV}/lisp/font-lock.elc \
- ${datadir}/${BPN}/${PV}/lisp/format.elc \
- ${datadir}/${BPN}/${PV}/lisp/frame.elc \
- ${datadir}/${BPN}/${PV}/lisp/help.elc \
- ${datadir}/${BPN}/${PV}/lisp/image.elc \
- ${datadir}/${BPN}/${PV}/lisp/indent.elc \
- ${datadir}/${BPN}/${PV}/lisp/international/characters.elc \
- ${datadir}/${BPN}/${PV}/lisp/international/charprop.el \
- ${datadir}/${BPN}/${PV}/lisp/international/charscript.elc \
- ${datadir}/${BPN}/${PV}/lisp/international/cp51932.elc \
- ${datadir}/${BPN}/${PV}/lisp/international/emoji-zwj.elc \
- ${datadir}/${BPN}/${PV}/lisp/international/eucjp-ms.elc \
- ${datadir}/${BPN}/${PV}/lisp/international/iso-transl.elc \
- ${datadir}/${BPN}/${PV}/lisp/international/mule-cmds.elc \
- ${datadir}/${BPN}/${PV}/lisp/international/mule-conf.elc \
- ${datadir}/${BPN}/${PV}/lisp/international/mule.elc \
- ${datadir}/${BPN}/${PV}/lisp/international/uni*.el \
- ${datadir}/${BPN}/${PV}/lisp/isearch.elc \
- ${datadir}/${BPN}/${PV}/lisp/jit-lock.elc \
- ${datadir}/${BPN}/${PV}/lisp/jka-cmpr-hook.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/burmese.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/cham.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/chinese.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/cyrillic.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/czech.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/english.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/ethiopic.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/european.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/georgian.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/greek.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/hebrew.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/indian.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/japanese.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/khmer.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/korean.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/lao.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/misc-lang.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/romanian.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/sinhala.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/slovak.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/tai-viet.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/thai.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/tibetan.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/utf-8-lang.elc \
- ${datadir}/${BPN}/${PV}/lisp/language/vietnamese.elc \
- ${datadir}/${BPN}/${PV}/lisp/ldefs-boot.el \
- ${datadir}/${BPN}/${PV}/lisp/loaddefs.el \
- ${datadir}/${BPN}/${PV}/lisp/loadup.el \
- ${datadir}/${BPN}/${PV}/lisp/menu-bar.elc \
- ${datadir}/${BPN}/${PV}/lisp/minibuffer.elc \
- ${datadir}/${BPN}/${PV}/lisp/mouse.elc \
- ${datadir}/${BPN}/${PV}/lisp/newcomment.elc \
- ${datadir}/${BPN}/${PV}/lisp/obarray.elc \
- ${datadir}/${BPN}/${PV}/lisp/paren.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/elisp-mode.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/prog-mode.elc \
- ${datadir}/${BPN}/${PV}/lisp/register.elc \
- ${datadir}/${BPN}/${PV}/lisp/replace.elc \
- ${datadir}/${BPN}/${PV}/lisp/rfn-eshadow.elc \
- ${datadir}/${BPN}/${PV}/lisp/select.elc \
- ${datadir}/${BPN}/${PV}/lisp/simple.elc \
- ${datadir}/${BPN}/${PV}/lisp/simple.elc \
- ${datadir}/${BPN}/${PV}/lisp/startup.elc \
- ${datadir}/${BPN}/${PV}/lisp/subr.elc \
- ${datadir}/${BPN}/${PV}/lisp/tab-bar.elc \
- ${datadir}/${BPN}/${PV}/lisp/term/tty-colors.elc \
- ${datadir}/${BPN}/${PV}/lisp/term/xterm.elc \
- ${datadir}/${BPN}/${PV}/lisp/textmodes/fill.elc \
- ${datadir}/${BPN}/${PV}/lisp/textmodes/page.elc \
- ${datadir}/${BPN}/${PV}/lisp/textmodes/paragraphs.elc \
- ${datadir}/${BPN}/${PV}/lisp/textmodes/text-mode.elc \
- ${datadir}/${BPN}/${PV}/lisp/tooltip.elc \
- ${datadir}/${BPN}/${PV}/lisp/uniquify.elc \
- ${datadir}/${BPN}/${PV}/lisp/vc/ediff-hook.elc \
- ${datadir}/${BPN}/${PV}/lisp/vc/vc-hooks.elc \
- ${datadir}/${BPN}/${PV}/lisp/version.elc \
- ${datadir}/${BPN}/${PV}/lisp/widget.elc \
- ${datadir}/${BPN}/${PV}/lisp/window.elc \
- ${prefix}/libexec \
-"
-
-# What works for "most" is relative, but this can be easily extended if needed
-FILES:${PN}-base = " \
- ${datadir}/${BPN}/${PV}/etc/e \
- ${datadir}/${BPN}/${PV}/etc/forms \
- ${datadir}/${BPN}/${PV}/etc/srecode \
- ${datadir}/${BPN}/${PV}/etc/themes/adwaita-theme.el \
- ${datadir}/${BPN}/${PV}/etc/themes/deeper-blue-theme.el \
- ${datadir}/${BPN}/${PV}/etc/themes/light-blue-theme.el \
- ${datadir}/${BPN}/${PV}/etc/themes/misterioso-theme.el \
- ${datadir}/${BPN}/${PV}/etc/themes/tango-theme.el \
- ${datadir}/${BPN}/${PV}/etc/themes/wheatgrass-theme.el \
- ${datadir}/${BPN}/${PV}/etc/themes/wombat-theme.el \
- ${datadir}/${BPN}/${PV}/lisp/ansi-color.elc \
- ${datadir}/${BPN}/${PV}/lisp/auth-source.elc \
- ${datadir}/${BPN}/${PV}/lisp/calendar/iso8601.elc \
- ${datadir}/${BPN}/${PV}/lisp/calendar/parse-time.elc \
- ${datadir}/${BPN}/${PV}/lisp/calendar/time-date.elc \
- ${datadir}/${BPN}/${PV}/lisp/cedet \
- ${datadir}/${BPN}/${PV}/lisp/comint.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-lib.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-macs.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-seq.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/eieio-core.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/eieio.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/inline.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/pcase.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/ring.elc \
- ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/smie.elc \
- ${datadir}/${BPN}/${PV}/lisp/files-x.elc \
- ${datadir}/${BPN}/${PV}/lisp/format-spec.elc \
- ${datadir}/${BPN}/${PV}/lisp/json.elc \
- ${datadir}/${BPN}/${PV}/lisp/ls-lisp.elc \
- ${datadir}/${BPN}/${PV}/lisp/net/tramp-compat.elc \
- ${datadir}/${BPN}/${PV}/lisp/net/tramp-integration.elc \
- ${datadir}/${BPN}/${PV}/lisp/net/tramp-loaddefs.el \
- ${datadir}/${BPN}/${PV}/lisp/net/tramp-sh.elc \
- ${datadir}/${BPN}/${PV}/lisp/net/tramp.elc \
- ${datadir}/${BPN}/${PV}/lisp/net/trampver.elc \
- ${datadir}/${BPN}/${PV}/lisp/password-cache.elc \
- ${datadir}/${BPN}/${PV}/lisp/pcomplete.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/*asm* \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/*perl* \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-align.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-cmds.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-defs.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-engine.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-fonts.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-guess.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-menus.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-mode.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-styles.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-vars.elc \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/cpp* \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/executable* \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/make* \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/prog* \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/python* \
- ${datadir}/${BPN}/${PV}/lisp/progmodes/sh-script* \
- ${datadir}/${BPN}/${PV}/lisp/shell.elc \
- ${datadir}/${BPN}/${PV}/lisp/subdirs.el \
- ${datadir}/${BPN}/${PV}/site-lisp/ \
-"
-
-# Restore FILES for the full package to catch everything left
-FILES:${PN}-full = "${FILES:${PN}}"
-FILES:${PN}-full:append = " ${datadir}/icons"
-
-
-# The following does NOT build a native emacs.
-# It only builds some parts of it that are
-# required to by the build for target emacs.
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/emacs/emacs_29.1.bb b/meta-oe/recipes-support/emacs/emacs_29.1.bb
new file mode 100644
index 0000000000..5cbe4551c0
--- /dev/null
+++ b/meta-oe/recipes-support/emacs/emacs_29.1.bb
@@ -0,0 +1,311 @@
+SUMMARY = "Emacs is the extensible, customizable, self-documenting real-time display editor"
+HOMEPAGE = "https://www.gnu.org/software/emacs/"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+SRC_URI = "https://ftp.gnu.org/pub/gnu/emacs/emacs-${PV}.tar.xz \
+ "
+SRC_URI:append:class-target = " \
+ file://use-emacs-native-tools-for-cross-compiling.patch \
+ file://avoid-running-host-binaries-for-sanity.patch \
+"
+
+SRC_URI[sha256sum] = "d2f881a5cc231e2f5a03e86f4584b0438f83edd7598a09d24a21bd8d003e2e01"
+
+CVE_STATUS[CVE-2007-6109] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+
+PACKAGECONFIG[gnutls] = "--with-gnutls=yes,--with-gnutls=no,gnutls"
+PACKAGECONFIG[kerberos] = "--with-kerberos=yes,--with-kerberos=no,krb5"
+PACKAGECONFIG[libgmp] = "--with-libgmp=yes,--with-libgmp=no,gmp"
+PACKAGECONFIG[selinux] = "--with-selinux=yes,--with-selinux=no,libselinux"
+
+PACKAGECONFIG ??= "gnutls kerberos libgmp"
+
+# We could use --without-all but its better to
+# split it into several packages (size of minimal doesnt change)
+EXTRA_OECONF = " --with-x=no --with-dumping=none --disable-build-details"
+
+# Disable seccomp, as its a default dependency for gnutls but it doesnt work when cross-compiling emacs
+EXTRA_OECONF:append = " ${@bb.utils.contains('PACKAGECONFIG', 'gnutls', 'ac_cv_have_decl_SECCOMP_FILTER_FLAG_TSYNC=no ac_cv_have_decl_SECCOMP_SET_MODE_FILTER=no', '', d)}"
+
+
+DEPENDS = "ncurses"
+DEPENDS:append:class-target = " emacs-native"
+
+inherit autotools mime-xdg pkgconfig
+
+
+# Create the required native tools for the target build
+do_compile:class-native (){
+ cd ${B}/lib-src
+ oe_runmake make-docfile
+ oe_runmake make-fingerprint
+ cd ${B}/src
+ oe_runmake bootstrap-emacs
+}
+
+do_install:class-native(){
+ install -d ${D}${bindir}
+ install -m 755 ${B}/lib-src/make-docfile ${D}/${bindir}/
+ install -m 755 ${B}/lib-src/make-fingerprint ${D}/${bindir}/
+ install -m 755 ${B}/src/bootstrap-emacs ${D}/${bindir}/
+}
+
+do_compile:prepend:class-target () {
+ # export EMACS env variables for the native tools to use to allow calling bootstrap-emacs
+ export EMACSLOADPATH=${S}/lisp
+ export EMACSDATA=${S}/etc
+}
+
+
+do_install:prepend:class-target(){
+ # export EMACS env variables for the native tools to use to allow calling bootstrap-emacs
+ export EMACSLOADPATH=${S}/lisp
+ export EMACSDATA=${S}/etc
+}
+
+# Remove build host references to avoid target pollution
+do_compile:prepend () {
+ sed -i -e 's|${TMPDIR}||g' ${B}/src/config.h
+ sed -i -e 's|${B}||g' ${B}/src/epaths.h
+}
+
+do_install:append(){
+ # Delete systemd stuff, extend using DISTRO_FEATURES?
+ rm -rf ${D}/${libdir}
+ # Extra stuff which isnt needed
+ rm -rf ${D}/${datadir}/metainfo
+ rm -rf ${D}/${datadir}/info
+ # Emacs copies files to ${D} while building, which were unpacked
+ # by a different user, we need to restore those
+ chown -R root:root ${D}${datadir}
+}
+
+# Use a similar strategy to how we build python:
+# Create three packages
+# minimal - A working lisp based text editor
+# base - What would probably work for most
+# full - A fully working emacs
+# The lists of files are long but are worth it
+# Installing "emacs" installs the base package
+PACKAGE_BEFORE_PN = "${PN}-minimal ${PN}-base ${PN}-full"
+RPROVIDES:${PN}-base = "${PN}"
+RDEPENDS:${PN}-base:class-target = "${PN}-minimal"
+RDEPENDS:${PN}-full:class-target = "${PN}"
+
+
+# A minimal version of emacs that works
+# These are kept sorted in alphabetical order
+FILES:${PN}-minimal = " \
+ ${bindir}/emacs* \
+ ${datadir}/${BPN}/${PV}/etc/charsets/ \
+ ${datadir}/${BPN}/${PV}/lisp/abbrev.elc \
+ ${datadir}/${BPN}/${PV}/lisp/bindings.elc \
+ ${datadir}/${BPN}/${PV}/lisp/buff-menu.elc \
+ ${datadir}/${BPN}/${PV}/lisp/button.elc \
+ ${datadir}/${BPN}/${PV}/lisp/case-table.elc \
+ ${datadir}/${BPN}/${PV}/lisp/composite.elc \
+ ${datadir}/${BPN}/${PV}/lisp/cus-face.elc \
+ ${datadir}/${BPN}/${PV}/lisp/cus-start.elc \
+ ${datadir}/${BPN}/${PV}/lisp/custom.elc \
+ ${datadir}/${BPN}/${PV}/lisp/disp-table.elc \
+ ${datadir}/${BPN}/${PV}/lisp/electric.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/backquote.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/byte-opt.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/byte-run.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/bytecomp.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cconv.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-generic.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-lib.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-macs.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-preloaded.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-seq.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/debug-early.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/easy-mmode.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/easymenu.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/eldoc.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/float-sup.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/gv.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/inline.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/lisp-mode.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/lisp.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/macroexp.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/map-ynp.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/map.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/nadvice.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/oclosure.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/pcase.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/regexp-opt.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/rmc.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/rx.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/seq.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/shorthands.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/subr-x.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/syntax.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/tabulated-list.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/timer.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/vc/warnings.elc \
+ ${datadir}/${BPN}/${PV}/lisp/env.elc \
+ ${datadir}/${BPN}/${PV}/lisp/epa-hook.elc \
+ ${datadir}/${BPN}/${PV}/lisp/facemenu.elc \
+ ${datadir}/${BPN}/${PV}/lisp/faces.elc \
+ ${datadir}/${BPN}/${PV}/lisp/files.elc \
+ ${datadir}/${BPN}/${PV}/lisp/font-core.elc \
+ ${datadir}/${BPN}/${PV}/lisp/font-lock.elc \
+ ${datadir}/${BPN}/${PV}/lisp/format.elc \
+ ${datadir}/${BPN}/${PV}/lisp/frame.elc \
+ ${datadir}/${BPN}/${PV}/lisp/help.elc \
+ ${datadir}/${BPN}/${PV}/lisp/image.elc \
+ ${datadir}/${BPN}/${PV}/lisp/indent.elc \
+ ${datadir}/${BPN}/${PV}/lisp/international/characters.elc \
+ ${datadir}/${BPN}/${PV}/lisp/international/charprop.el \
+ ${datadir}/${BPN}/${PV}/lisp/international/charscript.elc \
+ ${datadir}/${BPN}/${PV}/lisp/international/cp51932.elc \
+ ${datadir}/${BPN}/${PV}/lisp/international/emoji-zwj.elc \
+ ${datadir}/${BPN}/${PV}/lisp/international/eucjp-ms.elc \
+ ${datadir}/${BPN}/${PV}/lisp/international/iso-transl.elc \
+ ${datadir}/${BPN}/${PV}/lisp/international/mule-cmds.elc \
+ ${datadir}/${BPN}/${PV}/lisp/international/mule-conf.elc \
+ ${datadir}/${BPN}/${PV}/lisp/international/mule.elc \
+ ${datadir}/${BPN}/${PV}/lisp/international/uni*.el \
+ ${datadir}/${BPN}/${PV}/lisp/isearch.elc \
+ ${datadir}/${BPN}/${PV}/lisp/jit-lock.elc \
+ ${datadir}/${BPN}/${PV}/lisp/jka-cmpr-hook.elc \
+ ${datadir}/${BPN}/${PV}/lisp/jka-compr.elc \
+ ${datadir}/${BPN}/${PV}/lisp/keymap.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/burmese.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/cham.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/chinese.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/cyrillic.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/czech.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/english.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/ethiopic.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/european.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/georgian.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/greek.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/hebrew.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/indian.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/indonesian.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/japanese.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/khmer.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/korean.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/lao.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/misc-lang.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/philippine.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/romanian.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/sinhala.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/slovak.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/tai-viet.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/thai.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/tibetan.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/utf-8-lang.elc \
+ ${datadir}/${BPN}/${PV}/lisp/language/vietnamese.elc \
+ ${datadir}/${BPN}/${PV}/lisp/ldefs-boot.el \
+ ${datadir}/${BPN}/${PV}/lisp/loaddefs.el \
+ ${datadir}/${BPN}/${PV}/lisp/loadup.el \
+ ${datadir}/${BPN}/${PV}/lisp/menu-bar.elc \
+ ${datadir}/${BPN}/${PV}/lisp/minibuffer.elc \
+ ${datadir}/${BPN}/${PV}/lisp/mouse.elc \
+ ${datadir}/${BPN}/${PV}/lisp/newcomment.elc \
+ ${datadir}/${BPN}/${PV}/lisp/obarray.elc \
+ ${datadir}/${BPN}/${PV}/lisp/paren.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/elisp-mode.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/prog-mode.elc \
+ ${datadir}/${BPN}/${PV}/lisp/register.elc \
+ ${datadir}/${BPN}/${PV}/lisp/replace.elc \
+ ${datadir}/${BPN}/${PV}/lisp/rfn-eshadow.elc \
+ ${datadir}/${BPN}/${PV}/lisp/select.elc \
+ ${datadir}/${BPN}/${PV}/lisp/simple.elc \
+ ${datadir}/${BPN}/${PV}/lisp/startup.elc \
+ ${datadir}/${BPN}/${PV}/lisp/subr.elc \
+ ${datadir}/${BPN}/${PV}/lisp/tab-bar.elc \
+ ${datadir}/${BPN}/${PV}/lisp/term/tty-colors.elc \
+ ${datadir}/${BPN}/${PV}/lisp/term/xterm.elc \
+ ${datadir}/${BPN}/${PV}/lisp/textmodes/fill.elc \
+ ${datadir}/${BPN}/${PV}/lisp/textmodes/page.elc \
+ ${datadir}/${BPN}/${PV}/lisp/textmodes/paragraphs.elc \
+ ${datadir}/${BPN}/${PV}/lisp/textmodes/text-mode.elc \
+ ${datadir}/${BPN}/${PV}/lisp/thingatpt.elc \
+ ${datadir}/${BPN}/${PV}/lisp/tooltip.elc \
+ ${datadir}/${BPN}/${PV}/lisp/uniquify.elc \
+ ${datadir}/${BPN}/${PV}/lisp/vc/ediff-hook.elc \
+ ${datadir}/${BPN}/${PV}/lisp/vc/vc-hooks.elc \
+ ${datadir}/${BPN}/${PV}/lisp/version.elc \
+ ${datadir}/${BPN}/${PV}/lisp/widget.elc \
+ ${datadir}/${BPN}/${PV}/lisp/window.elc \
+ ${prefix}/libexec \
+"
+
+# What works for "most" is relative, but this can be easily extended if needed
+FILES:${PN}-base = " \
+ ${datadir}/${BPN}/${PV}/etc/e \
+ ${datadir}/${BPN}/${PV}/etc/forms \
+ ${datadir}/${BPN}/${PV}/etc/srecode \
+ ${datadir}/${BPN}/${PV}/etc/themes/adwaita-theme.el \
+ ${datadir}/${BPN}/${PV}/etc/themes/deeper-blue-theme.el \
+ ${datadir}/${BPN}/${PV}/etc/themes/light-blue-theme.el \
+ ${datadir}/${BPN}/${PV}/etc/themes/misterioso-theme.el \
+ ${datadir}/${BPN}/${PV}/etc/themes/tango-theme.el \
+ ${datadir}/${BPN}/${PV}/etc/themes/wheatgrass-theme.el \
+ ${datadir}/${BPN}/${PV}/etc/themes/wombat-theme.el \
+ ${datadir}/${BPN}/${PV}/lisp/ansi-color.elc \
+ ${datadir}/${BPN}/${PV}/lisp/auth-source.elc \
+ ${datadir}/${BPN}/${PV}/lisp/calendar/iso8601.elc \
+ ${datadir}/${BPN}/${PV}/lisp/calendar/parse-time.elc \
+ ${datadir}/${BPN}/${PV}/lisp/calendar/time-date.elc \
+ ${datadir}/${BPN}/${PV}/lisp/cedet \
+ ${datadir}/${BPN}/${PV}/lisp/comint.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-lib.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-macs.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/cl-seq.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/eieio-core.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/eieio.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/inline.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/pcase.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/ring.elc \
+ ${datadir}/${BPN}/${PV}/lisp/emacs-lisp/smie.elc \
+ ${datadir}/${BPN}/${PV}/lisp/files-x.elc \
+ ${datadir}/${BPN}/${PV}/lisp/format-spec.elc \
+ ${datadir}/${BPN}/${PV}/lisp/json.elc \
+ ${datadir}/${BPN}/${PV}/lisp/ls-lisp.elc \
+ ${datadir}/${BPN}/${PV}/lisp/net/tramp-compat.elc \
+ ${datadir}/${BPN}/${PV}/lisp/net/tramp-integration.elc \
+ ${datadir}/${BPN}/${PV}/lisp/net/tramp-loaddefs.el \
+ ${datadir}/${BPN}/${PV}/lisp/net/tramp-sh.elc \
+ ${datadir}/${BPN}/${PV}/lisp/net/tramp.elc \
+ ${datadir}/${BPN}/${PV}/lisp/net/trampver.elc \
+ ${datadir}/${BPN}/${PV}/lisp/password-cache.elc \
+ ${datadir}/${BPN}/${PV}/lisp/pcomplete.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/*asm* \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/*perl* \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-align.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-cmds.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-defs.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-engine.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-fonts.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-guess.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-menus.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-mode.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-styles.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/cc-vars.elc \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/cpp* \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/executable* \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/make* \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/prog* \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/python* \
+ ${datadir}/${BPN}/${PV}/lisp/progmodes/sh-script* \
+ ${datadir}/${BPN}/${PV}/lisp/shell.elc \
+ ${datadir}/${BPN}/${PV}/lisp/subdirs.el \
+ ${datadir}/${BPN}/${PV}/site-lisp/ \
+"
+
+# Restore FILES for the full package to catch everything left
+FILES:${PN}-full = "${FILES:${PN}}"
+FILES:${PN}-full:append = " ${datadir}/icons"
+
+
+# The following does NOT build a native emacs.
+# It only builds some parts of it that are
+# required to by the build for target emacs.
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/emacs/files/avoid-running-host-binaries-for-sanity.patch b/meta-oe/recipes-support/emacs/files/avoid-running-host-binaries-for-sanity.patch
new file mode 100644
index 0000000000..719ee4bce9
--- /dev/null
+++ b/meta-oe/recipes-support/emacs/files/avoid-running-host-binaries-for-sanity.patch
@@ -0,0 +1,38 @@
+Upstream-Status: Inappropriate [OE-Specific]
+
+Emacs introduced a sanity-check for the build artifacts, where it
+runs the newly built emacs to perform some checks.
+
+This is not going to work for us since we are cross-compiling,
+we need to avoid running target binaries on the host
+
+Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
+
+Index: emacs-29.1/Makefile.in
+===================================================================
+--- emacs-29.1.orig/Makefile.in
++++ emacs-29.1/Makefile.in
+@@ -416,19 +416,10 @@ advice-on-failure:
+ @exit ${exit-status}
+
+ sanity-check:
+- @[ -f .no-advice-on-failure ] && exit 0; true
+- @v=$$(src/emacs${EXEEXT} --batch --eval \
+- '(progn (defun f (n) (if (= 0 n) 1 (* n (f (- n 1))))) (princ (f 10)))' \
+- 2> /dev/null); \
+- [ "X$$v" = "X3628800" ] && exit 0; \
+- echo >&2 '***'; \
+- echo >&2 '*** '"\"make ${make-target}\" succeeded, but Emacs is not functional."; \
+- echo >&2 '***'; \
+- cat Makefile | \
+- sed -n '/^# ADVICE-ON-FAILURE-BEGIN:${make-target}/,$${p;/^# ADVICE-ON-FAILURE-END:${make-target}/q;};' | \
+- sed 's/^# /*** /' | grep -v '^\*\*\* ADVICE-ON-FAILURE-' >&2; \
+- echo >&2 '***'; \
+- exit 1
++# The Makefile will try to call the newly built emacs to perform some checks
++# this is not going to work since it was (probably) built for a different architecture.
++# Avoid calling target binaries from the host and simply assume our build artifacts work.
++ exit 0
+
+ .PHONY: all ${SUBDIR} blessmail epaths-force epaths-force-w32 epaths-force-ns-self-contained etc-emacsver
+
diff --git a/meta-oe/recipes-support/emacs/files/use-emacs-native-tools-for-cross-compiling.patch b/meta-oe/recipes-support/emacs/files/use-emacs-native-tools-for-cross-compiling.patch
new file mode 100644
index 0000000000..df5e4bd258
--- /dev/null
+++ b/meta-oe/recipes-support/emacs/files/use-emacs-native-tools-for-cross-compiling.patch
@@ -0,0 +1,106 @@
+Upstream-Status: Inappropriate [OE-Specific]
+
+When building emacs, it builds some tools for the HOST
+that are then used to build for target, such as
+make-fingerprint and make-docfile and bootstrap-emacs,
+this needs to be adapted to be used by bitbake, otherwise
+the compiled executables arent compatible with the HOST.
+
+We also need to be able to use emacs env variables to
+control how bootstrap-emacs is used when cross-compiling.
+
+Use the above mentioned tools provided by the native
+version of the recipe instead.
+
+Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
+
+Index: emacs-29.1/src/Makefile.in
+===================================================================
+--- emacs-29.1.orig/src/Makefile.in
++++ emacs-29.1/src/Makefile.in
+@@ -1,3 +1,4 @@
++
+ ### @configure_input@
+
+ # Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2023 Free Software
+@@ -508,7 +509,7 @@ ifeq ($(CHECK_STRUCTS),true)
+ pdumper.o: dmpstruct.h
+ endif
+ dmpstruct.h: $(srcdir)/dmpstruct.awk
+-dmpstruct.h: $(libsrc)/make-fingerprint$(EXEEXT) $(dmpstruct_headers)
++dmpstruct.h: $(dmpstruct_headers)
+ $(AM_V_GEN)POSIXLY_CORRECT=1 awk -f $(srcdir)/dmpstruct.awk \
+ $(dmpstruct_headers) > $@
+
+@@ -610,8 +611,7 @@ SYSTEM_TYPE = @SYSTEM_TYPE@
+ ## Strictly speaking, emacs does not depend directly on all of $lisp,
+ ## since not all pieces are used on all platforms. But DOC depends
+ ## on all of $lisp, and emacs depends on DOC, so it is ok to use $lisp here.
+-emacs$(EXEEXT): temacs$(EXEEXT) \
+- lisp.mk $(etc)/DOC $(lisp) \
++emacs$(EXEEXT): lisp.mk $(etc)/DOC $(lisp) \
+ $(lispsource)/international/charprop.el ${charsets}
+ ifeq ($(SYSTEM_TYPE),cygwin)
+ find ${top_builddir} -name '*.eln' | rebase -v -O -T -
+@@ -654,7 +654,7 @@ endif
+ $(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(doc_obj)
+ $(AM_V_GEN)$(MKDIR_P) $(etc)
+ $(AM_V_at)rm -f $(etc)/DOC
+- $(AM_V_at)$(libsrc)/make-docfile -d $(srcdir) \
++ make-docfile -d $(srcdir) \
+ $(SOME_MACHINE_OBJECTS) $(doc_obj) > $(etc)/DOC
+
+ $(libsrc)/make-docfile$(EXEEXT) $(libsrc)/make-fingerprint$(EXEEXT): \
+@@ -671,7 +671,7 @@ buildobj.h: Makefile
+ GLOBAL_SOURCES = $(base_obj:.o=.c) $(NS_OBJC_OBJ:.o=.m)
+
+ gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES)
+- $(AM_V_GLOBALS)$(libsrc)/make-docfile -d $(srcdir) -g $(doc_obj) > globals.tmp
++ make-docfile -d $(srcdir) -g $(doc_obj) > globals.tmp
+ $(AM_V_at)$(top_srcdir)/build-aux/move-if-change globals.tmp globals.h
+ $(AM_V_at)echo timestamp > $@
+
+@@ -685,7 +685,7 @@ $(LIBEGNU_ARCHIVE): $(config_h)
+ $(MAKE) -C $(dir $@) all
+
+ ifeq ($(HAVE_PDUMPER),yes)
+-MAKE_PDUMPER_FINGERPRINT = $(libsrc)/make-fingerprint$(EXEEXT)
++MAKE_PDUMPER_FINGERPRINT = make-fingerprint
+ else
+ MAKE_PDUMPER_FINGERPRINT =
+ endif
+Index: emacs-29.1/lisp/Makefile.in
+===================================================================
+--- emacs-29.1.orig/lisp/Makefile.in
++++ emacs-29.1/lisp/Makefile.in
+@@ -53,7 +53,7 @@ FIND_DELETE = @FIND_DELETE@
+ # We never change directory before running Emacs, so a relative file
+ # name is fine, and makes life easier. If we need to change
+ # directory, we can use emacs --chdir.
+-EMACS = ../src/emacs${EXEEXT}
++EMACS = bootstrap-emacs
+
+ # Command line flags for Emacs.
+
+@@ -109,7 +109,7 @@ MAIN_FIRST = ./emacs-lisp/eieio.el ./ema
+ ./org/oc.el ./org/ol.el ./emacs-lisp/cl-lib.el
+
+ # Prevent any settings in the user environment causing problems.
+-unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
++unexport EMACSDOC EMACSPATH
+
+ # The actual Emacs command run in the targets below.
+ emacs = '$(EMACS)' $(EMACSOPT)
+Index: emacs-29.1/Makefile.in
+===================================================================
+--- emacs-29.1.orig/Makefile.in
++++ emacs-29.1/Makefile.in
+@@ -328,7 +328,7 @@ GLIB_COMPILE_SCHEMAS = glib-compile-sche
+ TRANSFORM = @program_transform_name@
+
+ # Prevent any settings in the user environment causing problems.
+-unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
++unexport EMACSDOC EMACSPATH
+
+ # What emacs should be called when installed.
+ EMACS_NAME = `echo emacs | sed '$(TRANSFORM)'`
diff --git a/meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch b/meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch
deleted file mode 100644
index 95b4281836..0000000000
--- a/meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-Upstream-Status: Inappropriate [OE-Specific]
-
-When building emacs, it builds some tools for the HOST
-that are then used to build for target, such as
-make-fingerprint and make-docfile, this needs to be
-adapted to be used by bitbake, otherwise the compiled
-executables arent compatible with the HOST.
-
-Use the above mentioned tools provided by the native
-version of the recipe instead.
-
-Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
-
-Index: emacs-28.2/src/Makefile.in
-===================================================================
---- emacs-28.2.orig/src/Makefile.in
-+++ emacs-28.2/src/Makefile.in
-@@ -462,7 +462,7 @@ ifeq ($(CHECK_STRUCTS),true)
- pdumper.o: dmpstruct.h
- endif
- dmpstruct.h: $(srcdir)/dmpstruct.awk
--dmpstruct.h: $(libsrc)/make-fingerprint$(EXEEXT) $(dmpstruct_headers)
-+dmpstruct.h: $(dmpstruct_headers)
- $(AM_V_GEN)POSIXLY_CORRECT=1 awk -f $(srcdir)/dmpstruct.awk \
- $(dmpstruct_headers) > $@
-
-@@ -563,8 +563,7 @@ SYSTEM_TYPE = @SYSTEM_TYPE@
- ## Strictly speaking, emacs does not depend directly on all of $lisp,
- ## since not all pieces are used on all platforms. But DOC depends
- ## on all of $lisp, and emacs depends on DOC, so it is ok to use $lisp here.
--emacs$(EXEEXT): temacs$(EXEEXT) \
-- lisp.mk $(etc)/DOC $(lisp) \
-+emacs$(EXEEXT): lisp.mk $(etc)/DOC $(lisp) \
- $(lispsource)/international/charprop.el ${charsets}
- ifeq ($(SYSTEM_TYPE),cygwin)
- find ${top_builddir} -name '*.eln' | rebase -v -O -T -
-@@ -597,15 +596,15 @@ endif
- ## for the first time, this prevents any variation between configurations
- ## in the contents of the DOC file.
- ##
--$(etc)/DOC: lisp.mk $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp)
-+$(etc)/DOC: lisp.mk $(obj) $(lisp)
- $(AM_V_GEN)$(MKDIR_P) $(etc)
- $(AM_V_at)rm -f $(etc)/DOC
-- $(AM_V_at)$(libsrc)/make-docfile -d $(srcdir) \
-+ make-docfile -d $(srcdir) \
- $(SOME_MACHINE_OBJECTS) $(obj) > $(etc)/DOC
-- $(AM_V_at)$(libsrc)/make-docfile -a $(etc)/DOC -d $(lispsource) \
-+ make-docfile -a $(etc)/DOC -d $(lispsource) \
- $(shortlisp)
-
--$(libsrc)/make-docfile$(EXEEXT) $(libsrc)/make-fingerprint$(EXEEXT): \
-+$(libsrc)/make-fingerprint$(EXEEXT): \
- $(lib)/libgnu.a
- $(MAKE) -C $(dir $@) $(notdir $@)
-
-@@ -618,8 +617,8 @@ buildobj.h: Makefile
-
- GLOBAL_SOURCES = $(base_obj:.o=.c) $(NS_OBJC_OBJ:.o=.m)
-
--gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES)
-- $(AM_V_GLOBALS)$(libsrc)/make-docfile -d $(srcdir) -g $(obj) > globals.tmp
-+gl-stamp: $(GLOBAL_SOURCES)
-+ make-docfile -d $(srcdir) -g $(obj) > globals.tmp
- $(AM_V_at)$(top_srcdir)/build-aux/move-if-change globals.tmp globals.h
- $(AM_V_at)echo timestamp > $@
-
-@@ -633,7 +632,7 @@ $(LIBEGNU_ARCHIVE): $(config_h)
- $(MAKE) -C $(dir $@) all
-
- ifeq ($(HAVE_PDUMPER),yes)
-- MAKE_PDUMPER_FINGERPRINT = $(libsrc)/make-fingerprint$(EXEEXT)
-+ MAKE_PDUMPER_FINGERPRINT = make-fingerprint
- else
- MAKE_PDUMPER_FINGERPRINT =
- endif
-@@ -643,7 +642,7 @@ endif
- ## This goes on to affect various things, and the emacs binary fails
- ## to start if Vinstallation_directory has the wrong value.
- temacs$(EXEEXT): $(LIBXMENU) $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(EMACSRES) \
-- $(charsets) $(charscript) ${emoji-zwj} $(MAKE_PDUMPER_FINGERPRINT)
-+ $(charsets) $(charscript) ${emoji-zwj}
- $(AM_V_CCLD)$(CC) -o $@.tmp \
- $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \
- $(ALLOBJS) $(LIBEGNU_ARCHIVE) $(W32_RES_LINK) $(LIBES)
diff --git a/meta-oe/recipes-support/enca/enca/0001-Do-not-use-MKTEMP_PROG-in-cross-build.patch b/meta-oe/recipes-support/enca/enca/0001-Do-not-use-MKTEMP_PROG-in-cross-build.patch
new file mode 100644
index 0000000000..32fa239084
--- /dev/null
+++ b/meta-oe/recipes-support/enca/enca/0001-Do-not-use-MKTEMP_PROG-in-cross-build.patch
@@ -0,0 +1,30 @@
+From c6a59d512706978e8c67f9a2d84ec650f8763368 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 8 May 2023 18:02:52 -0700
+Subject: [PATCH] Do not use $MKTEMP_PROG in cross-build
+
+$MKTEMP_PROG points to native location which could be absolute path that
+wont exist on target rootfs. Therefore use it from PATH
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4852a2f..d23b384 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -186,7 +186,7 @@ ye_PATH_LOCALE_ALIAS
+
+ dnl Random filename generation in scripts
+ if test -n "$MKTEMP_PROG"; then
+- SHELL_RANDOM_FILENAME='`'$MKTEMP_PROG' /tmp/enca-$$-XXXXXXXX`'
++ SHELL_RANDOM_FILENAME='`mktemp /tmp/enca-$$-XXXXXXXX`'
+ else
+ SHELL_RANDOM_FILENAME='/tmp/enca-$$-$RANDOM'
+ fi
+--
+2.40.1
+
diff --git a/meta-oe/recipes-support/enca/enca/dont-run-tests.patch b/meta-oe/recipes-support/enca/enca/dont-run-tests.patch
index 321d1e6201..1d0170bd73 100644
--- a/meta-oe/recipes-support/enca/enca/dont-run-tests.patch
+++ b/meta-oe/recipes-support/enca/enca/dont-run-tests.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: enca-1.9/Makefile.am
===================================================================
--- enca-1.9.orig/Makefile.am 2005-11-24 11:21:32.000000000 +0100
diff --git a/meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch b/meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch
index baf5547642..2112d8cfab 100644
--- a/meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch
+++ b/meta-oe/recipes-support/enca/enca/libenca-003-iconv.patch
@@ -8,6 +8,8 @@ This patch come straight from the Buildroot source tree.
Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
---
+Upstream-Status: Pending
+
m4/libiconv.m4 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch b/meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch
index 48497d68c8..756745d839 100644
--- a/meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch
+++ b/meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- enca-1.19/Makefile.am.orig 2006-06-29 15:34:55.000000000 +0100
+++ enca-1.19/Makefile.am 2006-06-29 15:35:20.000000000 +0100
@@ -1,7 +1,7 @@
diff --git a/meta-oe/recipes-support/enca/enca_1.19.bb b/meta-oe/recipes-support/enca/enca_1.19.bb
index eed0ad1b93..774f05f7c4 100644
--- a/meta-oe/recipes-support/enca/enca_1.19.bb
+++ b/meta-oe/recipes-support/enca/enca_1.19.bb
@@ -10,8 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=24b9569831c46d4818450b55282476b4"
SRC_URI = "https://dl.cihar.com/enca/enca-${PV}.tar.gz \
file://dont-run-tests.patch \
file://makefile-remove-tools.patch \
- file://libenca-003-iconv.patch "
-
+ file://libenca-003-iconv.patch \
+ file://0001-Do-not-use-MKTEMP_PROG-in-cross-build.patch"
SRC_URI[sha256sum] = "4c305cc59f3e57f2cfc150a6ac511690f43633595760e1cb266bf23362d72f8a"
inherit autotools
diff --git a/meta-oe/recipes-support/espeak/espeak_1.48.04.bb b/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
index 0dc61c1c30..147a8069fa 100644
--- a/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
+++ b/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
@@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://License.txt;md5=cb7a20edb4c9f5f478de6523dcd7362c"
SRC_URI = "http://downloads.sourceforge.net/espeak/espeak-1.48.04-source.zip \
file://0001-Fix-build-of-shared-library-on-architectures-needing.patch \
file://0002-tr_languages-cast-string_ordinal-init-values.patch \
+ file://0001-Drop-using-register-keyword-for-storage-classifier.patch \
"
SRC_URI[md5sum] = "cadd7482eaafe9239546bdc09fa244c3"
SRC_URI[sha256sum] = "bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659"
diff --git a/meta-oe/recipes-support/espeak/files/0001-Drop-using-register-keyword-for-storage-classifier.patch b/meta-oe/recipes-support/espeak/files/0001-Drop-using-register-keyword-for-storage-classifier.patch
new file mode 100644
index 0000000000..d9c0d08ec9
--- /dev/null
+++ b/meta-oe/recipes-support/espeak/files/0001-Drop-using-register-keyword-for-storage-classifier.patch
@@ -0,0 +1,38 @@
+From bad6131463275bd8013a82c28fb0b27e882bc801 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 18 Jan 2023 16:07:35 -0800
+Subject: [PATCH] Drop using 'register' keyword for storage classifier
+
+Its gone from C++17 and newer
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/klatt.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/klatt.cpp b/src/klatt.cpp
+index b15f77c..9c51bc5 100755
+--- a/src/klatt.cpp
++++ b/src/klatt.cpp
+@@ -167,7 +167,7 @@ Output = (rnz.a * input) + (rnz.b * oldin1) + (rnz.c * oldin2)
+ #ifdef deleted
+ static double antiresonator(resonator_ptr r, double input)
+ {
+- register double x = (double)r->a * (double)input + (double)r->b * (double)r->p1 + (double)r->c * (double)r->p2;
++ double x = (double)r->a * (double)input + (double)r->b * (double)r->p1 + (double)r->c * (double)r->p2;
+ r->p2 = (double)r->p1;
+ r->p1 = (double)input;
+ return (double)x;
+@@ -176,7 +176,7 @@ static double antiresonator(resonator_ptr r, double input)
+
+ static double antiresonator2(resonator_ptr r, double input)
+ {
+- register double x = (double)r->a * (double)input + (double)r->b * (double)r->p1 + (double)r->c * (double)r->p2;
++ double x = (double)r->a * (double)input + (double)r->b * (double)r->p1 + (double)r->c * (double)r->p2;
+ r->p2 = (double)r->p1;
+ r->p1 = (double)input;
+
+--
+2.39.1
+
diff --git a/meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch b/meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch
index 2590e15841..144c30a62f 100644
--- a/meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch
+++ b/meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch
@@ -10,6 +10,8 @@ patch doesn't affect such architectures.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
+Upstream-Status: Pending
+
src/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/evemu-tools/evemu-tools_git.bb b/meta-oe/recipes-support/evemu-tools/evemu-tools_git.bb
index 4501b082de..491f10dda0 100644
--- a/meta-oe/recipes-support/evemu-tools/evemu-tools_git.bb
+++ b/meta-oe/recipes-support/evemu-tools/evemu-tools_git.bb
@@ -11,7 +11,7 @@ SRCREV = "86a5627dbeac8d9d9bc34326a758d6a477e876e4"
SRC_URI = "git://git@gitlab.freedesktop.org/libevdev/evemu.git;protocol=https;branch=master"
S = "${WORKDIR}/git"
-PV = "gitr${SRCPV}"
+PV = "2.7.0+git"
inherit autotools pkgconfig
diff --git a/meta-oe/recipes-support/exiv2/exiv2/0001-Use-compiler-fcf-protection-only-if-compiler-arch-su.patch b/meta-oe/recipes-support/exiv2/exiv2/0001-Use-compiler-fcf-protection-only-if-compiler-arch-su.patch
deleted file mode 100644
index 96146a1957..0000000000
--- a/meta-oe/recipes-support/exiv2/exiv2/0001-Use-compiler-fcf-protection-only-if-compiler-arch-su.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 04d5f4805a86302a0e135a28d58a6c1ff6a68d52 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 30 Jul 2020 23:03:51 +0200
-Subject: [PATCH] Use compiler -fcf-protection only if compiler/arch supports
- it
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-There have been some PRs they were either rejected or some general suggestion
-for more flags suggested. So
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- cmake/compilerFlags.cmake | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/cmake/compilerFlags.cmake b/cmake/compilerFlags.cmake
-index 12caf42..455525e 100644
---- a/cmake/compilerFlags.cmake
-+++ b/cmake/compilerFlags.cmake
-@@ -26,7 +26,12 @@ if ( MINGW OR UNIX OR MSYS ) # MINGW, Linux, APPLE, CYGWIN
- # This fails under Fedora, MinGW GCC 8.3.0 and CYGWIN/MSYS 9.3.0
- if (NOT (MINGW OR CMAKE_HOST_SOLARIS OR CYGWIN OR MSYS) )
- if (COMPILER_IS_GCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0)
-- add_compile_options(-fstack-clash-protection -fcf-protection)
-+ # Gcc does support -fcf-protection on few arches only
-+ CHECK_CXX_COMPILER_FLAG(-fcf-protection COMPILER_SUPPORTS_FCF_PROTECTION)
-+ if (COMPILER_SUPPORTS_FCF_PROTECTION)
-+ add_compile_options(-fcf-protection)
-+ endif()
-+ add_compile_options(-fstack-clash-protection)
- endif()
-
- if( (COMPILER_IS_GCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 5.0) # Not in GCC 4.8
---
-2.21.3
-
diff --git a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29457.patch b/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29457.patch
deleted file mode 100644
index e5d069487c..0000000000
--- a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29457.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 13e5a3e02339b746abcaee6408893ca2fd8e289d Mon Sep 17 00:00:00 2001
-From: Pydera <pydera@mailbox.org>
-Date: Thu, 8 Apr 2021 17:36:16 +0200
-Subject: [PATCH] Fix out of buffer access in #1529
-
----
- src/jp2image.cpp | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/jp2image.cpp b/src/jp2image.cpp
-index 88ab9b2d6..12025f966 100644
---- a/src/jp2image.cpp
-+++ b/src/jp2image.cpp
-@@ -776,9 +776,10 @@ static void boxes_check(size_t b,size_t m)
- #endif
- box.length = (uint32_t) (io_->size() - io_->tell() + 8);
- }
-- if (box.length == 1)
-+ if (box.length < 8)
- {
-- // FIXME. Special case. the real box size is given in another place.
-+ // box is broken, so there is nothing we can do here
-+ throw Error(kerCorruptedMetadata);
- }
-
- // Read whole box : Box header + Box data (not fixed size - can be null).
diff --git a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29458.patch b/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29458.patch
deleted file mode 100644
index 285f6fe4ce..0000000000
--- a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29458.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 9b7a19f957af53304655ed1efe32253a1b11a8d0 Mon Sep 17 00:00:00 2001
-From: Kevin Backhouse <kevinbackhouse@github.com>
-Date: Fri, 9 Apr 2021 13:37:48 +0100
-Subject: [PATCH] Fix integer overflow.
----
- src/crwimage_int.cpp | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/src/crwimage_int.cpp b/src/crwimage_int.cpp
-index aefaf22..2e3e507 100644
---- a/src/crwimage_int.cpp
-+++ b/src/crwimage_int.cpp
-@@ -559,7 +559,7 @@ namespace Exiv2 {
- void CiffComponent::setValue(DataBuf buf)
- {
- if (isAllocated_) {
-- delete pData_;
-+ delete[] pData_;
- pData_ = 0;
- size_ = 0;
- }
-@@ -1167,7 +1167,11 @@ namespace Exiv2 {
- pCrwMapping->crwDir_);
- if (edX != edEnd || edY != edEnd || edO != edEnd) {
- uint32_t size = 28;
-- if (cc && cc->size() > size) size = cc->size();
-+ if (cc) {
-+ if (cc->size() < size)
-+ throw Error(kerCorruptedMetadata);
-+ size = cc->size();
-+ }
- DataBuf buf(size);
- std::memset(buf.pData_, 0x0, buf.size_);
- if (cc) std::memcpy(buf.pData_ + 8, cc->pData() + 8, cc->size() - 8);
---
-2.25.1
-
diff --git a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29463.patch b/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29463.patch
deleted file mode 100644
index 5ab64a7d3e..0000000000
--- a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29463.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From 783b3a6ff15ed6f82a8f8e6c8a6f3b84a9b04d4b Mon Sep 17 00:00:00 2001
-From: Kevin Backhouse <kevinbackhouse@github.com>
-Date: Mon, 19 Apr 2021 18:06:00 +0100
-Subject: [PATCH] Improve bound checking in WebPImage::doWriteMetadata()
-
----
- src/webpimage.cpp | 41 ++++++++++++++++++++++++++++++-----------
- 1 file changed, 30 insertions(+), 11 deletions(-)
-
-diff --git a/src/webpimage.cpp b/src/webpimage.cpp
-index 4ddec544c..fee110bca 100644
---- a/src/webpimage.cpp
-+++ b/src/webpimage.cpp
-@@ -145,7 +145,7 @@ namespace Exiv2 {
- DataBuf chunkId(WEBP_TAG_SIZE+1);
- chunkId.pData_ [WEBP_TAG_SIZE] = '\0';
-
-- io_->read(data, WEBP_TAG_SIZE * 3);
-+ readOrThrow(*io_, data, WEBP_TAG_SIZE * 3, Exiv2::kerCorruptedMetadata);
- uint64_t filesize = Exiv2::getULong(data + WEBP_TAG_SIZE, littleEndian);
-
- /* Set up header */
-@@ -185,13 +185,20 @@ namespace Exiv2 {
- case we have any exif or xmp data, also check
- for any chunks with alpha frame/layer set */
- while ( !io_->eof() && (uint64_t) io_->tell() < filesize) {
-- io_->read(chunkId.pData_, WEBP_TAG_SIZE);
-- io_->read(size_buff, WEBP_TAG_SIZE);
-- long size = Exiv2::getULong(size_buff, littleEndian);
-+ readOrThrow(*io_, chunkId.pData_, WEBP_TAG_SIZE, Exiv2::kerCorruptedMetadata);
-+ readOrThrow(*io_, size_buff, WEBP_TAG_SIZE, Exiv2::kerCorruptedMetadata);
-+ const uint32_t size_u32 = Exiv2::getULong(size_buff, littleEndian);
-+
-+ // Check that `size_u32` is safe to cast to `long`.
-+ enforce(size_u32 <= static_cast<size_t>(std::numeric_limits<unsigned int>::max()),
-+ Exiv2::kerCorruptedMetadata);
-+ const long size = static_cast<long>(size_u32);
- DataBuf payload(size);
-- io_->read(payload.pData_, payload.size_);
-- byte c;
-- if ( payload.size_ % 2 ) io_->read(&c,1);
-+ readOrThrow(*io_, payload.pData_, payload.size_, Exiv2::kerCorruptedMetadata);
-+ if ( payload.size_ % 2 ) {
-+ byte c;
-+ readOrThrow(*io_, &c, 1, Exiv2::kerCorruptedMetadata);
-+ }
-
- /* Chunk with information about features
- used in the file. */
-@@ -199,6 +206,7 @@ namespace Exiv2 {
- has_vp8x = true;
- }
- if (equalsWebPTag(chunkId, WEBP_CHUNK_HEADER_VP8X) && !has_size) {
-+ enforce(size >= 10, Exiv2::kerCorruptedMetadata);
- has_size = true;
- byte size_buf[WEBP_TAG_SIZE];
-
-@@ -227,6 +235,7 @@ namespace Exiv2 {
- }
- #endif
- if (equalsWebPTag(chunkId, WEBP_CHUNK_HEADER_VP8) && !has_size) {
-+ enforce(size >= 10, Exiv2::kerCorruptedMetadata);
- has_size = true;
- byte size_buf[2];
-
-@@ -244,11 +253,13 @@ namespace Exiv2 {
-
- /* Chunk with with lossless image data. */
- if (equalsWebPTag(chunkId, WEBP_CHUNK_HEADER_VP8L) && !has_alpha) {
-+ enforce(size >= 5, Exiv2::kerCorruptedMetadata);
- if ((payload.pData_[4] & WEBP_VP8X_ALPHA_BIT) == WEBP_VP8X_ALPHA_BIT) {
- has_alpha = true;
- }
- }
- if (equalsWebPTag(chunkId, WEBP_CHUNK_HEADER_VP8L) && !has_size) {
-+ enforce(size >= 5, Exiv2::kerCorruptedMetadata);
- has_size = true;
- byte size_buf_w[2];
- byte size_buf_h[3];
-@@ -276,11 +287,13 @@ namespace Exiv2 {
-
- /* Chunk with animation frame. */
- if (equalsWebPTag(chunkId, WEBP_CHUNK_HEADER_ANMF) && !has_alpha) {
-+ enforce(size >= 6, Exiv2::kerCorruptedMetadata);
- if ((payload.pData_[5] & 0x2) == 0x2) {
- has_alpha = true;
- }
- }
- if (equalsWebPTag(chunkId, WEBP_CHUNK_HEADER_ANMF) && !has_size) {
-+ enforce(size >= 12, Exiv2::kerCorruptedMetadata);
- has_size = true;
- byte size_buf[WEBP_TAG_SIZE];
-
-@@ -309,16 +322,22 @@ namespace Exiv2 {
-
- io_->seek(12, BasicIo::beg);
- while ( !io_->eof() && (uint64_t) io_->tell() < filesize) {
-- io_->read(chunkId.pData_, 4);
-- io_->read(size_buff, 4);
-+ readOrThrow(*io_, chunkId.pData_, 4, Exiv2::kerCorruptedMetadata);
-+ readOrThrow(*io_, size_buff, 4, Exiv2::kerCorruptedMetadata);
-+
-+ const uint32_t size_u32 = Exiv2::getULong(size_buff, littleEndian);
-
-- long size = Exiv2::getULong(size_buff, littleEndian);
-+ // Check that `size_u32` is safe to cast to `long`.
-+ enforce(size_u32 <= static_cast<size_t>(std::numeric_limits<unsigned int>::max()),
-+ Exiv2::kerCorruptedMetadata);
-+ const long size = static_cast<long>(size_u32);
-
- DataBuf payload(size);
-- io_->read(payload.pData_, size);
-+ readOrThrow(*io_, payload.pData_, size, Exiv2::kerCorruptedMetadata);
- if ( io_->tell() % 2 ) io_->seek(+1,BasicIo::cur); // skip pad
-
- if (equalsWebPTag(chunkId, WEBP_CHUNK_HEADER_VP8X)) {
-+ enforce(size >= 1, Exiv2::kerCorruptedMetadata);
- if (has_icc){
- payload.pData_[0] |= WEBP_VP8X_ICC_BIT;
- } else {
diff --git a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29464.patch b/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29464.patch
deleted file mode 100644
index f0c482450c..0000000000
--- a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29464.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 61734d8842cb9cc59437463e3bac54d6231d9487 Mon Sep 17 00:00:00 2001
-From: Wang Mingyu <wangmy@fujitsu.com>
-Date: Tue, 18 May 2021 10:52:54 +0900
-Subject: [PATCH] modify
-
-Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
----
- src/jp2image.cpp | 14 +++++++++-----
- 1 file changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/src/jp2image.cpp b/src/jp2image.cpp
-index 52723a4..0ac4f50 100644
---- a/src/jp2image.cpp
-+++ b/src/jp2image.cpp
-@@ -643,11 +643,11 @@ static void boxes_check(size_t b,size_t m)
- void Jp2Image::encodeJp2Header(const DataBuf& boxBuf,DataBuf& outBuf)
- {
- DataBuf output(boxBuf.size_ + iccProfile_.size_ + 100); // allocate sufficient space
-- int outlen = sizeof(Jp2BoxHeader) ; // now many bytes have we written to output?
-- int inlen = sizeof(Jp2BoxHeader) ; // how many bytes have we read from boxBuf?
-+ long outlen = sizeof(Jp2BoxHeader) ; // now many bytes have we written to output?
-+ long inlen = sizeof(Jp2BoxHeader) ; // how many bytes have we read from boxBuf?
- Jp2BoxHeader* pBox = (Jp2BoxHeader*) boxBuf.pData_;
-- int32_t length = getLong((byte*)&pBox->length, bigEndian);
-- int32_t count = sizeof (Jp2BoxHeader);
-+ uint32_t length = getLong((byte*)&pBox->length, bigEndian);
-+ uint32_t count = sizeof (Jp2BoxHeader);
- char* p = (char*) boxBuf.pData_;
- bool bWroteColor = false ;
-
-@@ -664,6 +664,7 @@ static void boxes_check(size_t b,size_t m)
- #ifdef EXIV2_DEBUG_MESSAGES
- std::cout << "Jp2Image::encodeJp2Header subbox: "<< toAscii(subBox.type) << " length = " << subBox.length << std::endl;
- #endif
-+ enforce(subBox.length <= length - count, Exiv2::kerCorruptedMetadata);
- count += subBox.length;
- newBox.type = subBox.type;
- } else {
-@@ -672,12 +673,13 @@ static void boxes_check(size_t b,size_t m)
- count = length;
- }
-
-- int32_t newlen = subBox.length;
-+ uint32_t newlen = subBox.length;
- if ( newBox.type == kJp2BoxTypeColorHeader ) {
- bWroteColor = true ;
- if ( ! iccProfileDefined() ) {
- const char* pad = "\x01\x00\x00\x00\x00\x00\x10\x00\x00\x05\x1cuuid";
- uint32_t psize = 15;
-+ enforce(newlen <= output.size_ - outlen, Exiv2::kerCorruptedMetadata);
- ul2Data((byte*)&newBox.length,psize ,bigEndian);
- ul2Data((byte*)&newBox.type ,newBox.type,bigEndian);
- ::memcpy(output.pData_+outlen ,&newBox ,sizeof(newBox));
-@@ -686,6 +688,7 @@ static void boxes_check(size_t b,size_t m)
- } else {
- const char* pad = "\0x02\x00\x00";
- uint32_t psize = 3;
-+ enforce(newlen <= output.size_ - outlen, Exiv2::kerCorruptedMetadata);
- ul2Data((byte*)&newBox.length,psize+iccProfile_.size_,bigEndian);
- ul2Data((byte*)&newBox.type,newBox.type,bigEndian);
- ::memcpy(output.pData_+outlen ,&newBox ,sizeof(newBox) );
-@@ -694,6 +697,7 @@ static void boxes_check(size_t b,size_t m)
- newlen = psize + iccProfile_.size_;
- }
- } else {
-+ enforce(newlen <= output.size_ - outlen, Exiv2::kerCorruptedMetadata);
- ::memcpy(output.pData_+outlen,boxBuf.pData_+inlen,subBox.length);
- }
-
---
-2.25.1
-
diff --git a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29470.patch b/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29470.patch
deleted file mode 100644
index eedf9d79aa..0000000000
--- a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29470.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 6628a69c036df2aa036290e6cd71767c159c79ed Mon Sep 17 00:00:00 2001
-From: Kevin Backhouse <kevinbackhouse@github.com>
-Date: Wed, 21 Apr 2021 12:06:04 +0100
-Subject: [PATCH] Add more bounds checks in Jp2Image::encodeJp2Header
----
- src/jp2image.cpp | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/jp2image.cpp b/src/jp2image.cpp
-index b424225..349a9f0 100644
---- a/src/jp2image.cpp
-+++ b/src/jp2image.cpp
-@@ -645,13 +645,16 @@ static void boxes_check(size_t b,size_t m)
- DataBuf output(boxBuf.size_ + iccProfile_.size_ + 100); // allocate sufficient space
- long outlen = sizeof(Jp2BoxHeader) ; // now many bytes have we written to output?
- long inlen = sizeof(Jp2BoxHeader) ; // how many bytes have we read from boxBuf?
-+ enforce(sizeof(Jp2BoxHeader) <= static_cast<size_t>(output.size_), Exiv2::kerCorruptedMetadata);
- Jp2BoxHeader* pBox = (Jp2BoxHeader*) boxBuf.pData_;
- uint32_t length = getLong((byte*)&pBox->length, bigEndian);
-+ enforce(length <= static_cast<size_t>(output.size_), Exiv2::kerCorruptedMetadata);
- uint32_t count = sizeof (Jp2BoxHeader);
- char* p = (char*) boxBuf.pData_;
- bool bWroteColor = false ;
-
- while ( count < length || !bWroteColor ) {
-+ enforce(sizeof(Jp2BoxHeader) <= length - count, Exiv2::kerCorruptedMetadata);
- Jp2BoxHeader* pSubBox = (Jp2BoxHeader*) (p+count) ;
-
- // copy data. pointer could be into a memory mapped file which we will decode!
---
-2.25.1
-
diff --git a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29473.patch b/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29473.patch
deleted file mode 100644
index 4afedf8e59..0000000000
--- a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29473.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From e6a0982f7cd9282052b6e3485a458d60629ffa0b Mon Sep 17 00:00:00 2001
-From: Kevin Backhouse <kevinbackhouse@github.com>
-Date: Fri, 23 Apr 2021 11:44:44 +0100
-Subject: [PATCH] Add bounds check in Jp2Image::doWriteMetadata().
-
----
- src/jp2image.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/jp2image.cpp b/src/jp2image.cpp
-index 1694fed27..ca8c9ddbb 100644
---- a/src/jp2image.cpp
-+++ b/src/jp2image.cpp
-@@ -908,6 +908,7 @@ static void boxes_check(size_t b,size_t m)
-
- case kJp2BoxTypeUuid:
- {
-+ enforce(boxBuf.size_ >= 24, Exiv2::kerCorruptedMetadata);
- if(memcmp(boxBuf.pData_ + 8, kJp2UuidExif, 16) == 0)
- {
- #ifdef EXIV2_DEBUG_MESSAGES
diff --git a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-3482.patch b/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-3482.patch
deleted file mode 100644
index e7c5e1b656..0000000000
--- a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-3482.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 22ea582c6b74ada30bec3a6b15de3c3e52f2b4da Mon Sep 17 00:00:00 2001
-From: Robin Mills <robin@clanmills.com>
-Date: Mon, 5 Apr 2021 20:33:25 +0100
-Subject: [PATCH] fix_1522_jp2image_exif_asan
-
----
- src/jp2image.cpp | 9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/src/jp2image.cpp b/src/jp2image.cpp
-index eb31cea4a..88ab9b2d6 100644
---- a/src/jp2image.cpp
-+++ b/src/jp2image.cpp
-@@ -28,6 +28,7 @@
- #include "image.hpp"
- #include "image_int.hpp"
- #include "basicio.hpp"
-+#include "enforce.hpp"
- #include "error.hpp"
- #include "futils.hpp"
- #include "types.hpp"
-@@ -353,7 +354,7 @@ static void boxes_check(size_t b,size_t m)
- if (io_->error()) throw Error(kerFailedToReadImageData);
- if (bufRead != rawData.size_) throw Error(kerInputDataReadFailed);
-
-- if (rawData.size_ > 0)
-+ if (rawData.size_ > 8) // "II*\0long"
- {
- // Find the position of Exif header in bytes array.
- long pos = ( (rawData.pData_[0] == rawData.pData_[1])
-@@ -497,6 +498,7 @@ static void boxes_check(size_t b,size_t m)
- position = io_->tell();
- box.length = getLong((byte*)&box.length, bigEndian);
- box.type = getLong((byte*)&box.type, bigEndian);
-+ enforce(box.length <= io_->size()-io_->tell() , Exiv2::kerCorruptedMetadata);
-
- if (bPrint) {
- out << Internal::stringFormat("%8ld | %8ld | ", (size_t)(position - sizeof(box)),
-@@ -581,12 +583,13 @@ static void boxes_check(size_t b,size_t m)
- throw Error(kerInputDataReadFailed);
-
- if (bPrint) {
-- out << Internal::binaryToString(makeSlice(rawData, 0, 40));
-+ out << Internal::binaryToString(
-+ makeSlice(rawData, 0, rawData.size_>40?40:rawData.size_));
- out.flush();
- }
- lf(out, bLF);
-
-- if (bIsExif && bRecursive && rawData.size_ > 0) {
-+ if (bIsExif && bRecursive && rawData.size_ > 8) { // "II*\0long"
- if ((rawData.pData_[0] == rawData.pData_[1]) &&
- (rawData.pData_[0] == 'I' || rawData.pData_[0] == 'M')) {
- BasicIo::AutoPtr p = BasicIo::AutoPtr(new MemIo(rawData.pData_, rawData.size_));
diff --git a/meta-oe/recipes-support/exiv2/exiv2_0.27.3.bb b/meta-oe/recipes-support/exiv2/exiv2_0.27.3.bb
deleted file mode 100644
index 1380638ba7..0000000000
--- a/meta-oe/recipes-support/exiv2/exiv2_0.27.3.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Exif, Iptc and XMP metadata manipulation library and tools"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=625f055f41728f84a8d7938acc35bdc2"
-
-DEPENDS = "zlib expat"
-
-SRC_URI = "https://exiv2.org/releases/${BPN}-${PV}-Source.tar.gz"
-SRC_URI[sha256sum] = "a79f5613812aa21755d578a297874fb59a85101e793edc64ec2c6bd994e3e778"
-
-# Once patch is obsolete (project should be aware due to PRs), dos2unix can be removed either
-inherit dos2unix
-SRC_URI += "file://0001-Use-compiler-fcf-protection-only-if-compiler-arch-su.patch \
- file://CVE-2021-29457.patch \
- file://CVE-2021-29458.patch \
- file://CVE-2021-29463.patch \
- file://CVE-2021-29464.patch \
- file://CVE-2021-29470.patch \
- file://CVE-2021-29473.patch \
- file://CVE-2021-3482.patch"
-
-S = "${WORKDIR}/${BPN}-${PV}-Source"
-
-inherit cmake gettext
-
-do_install:append:class-target() {
- # reproducibility: remove build host path
- sed -i ${D}${libdir}/cmake/exiv2/exiv2Config.cmake \
- -e 's:${STAGING_DIR_HOST}::g'
-}
-
diff --git a/meta-oe/recipes-support/exiv2/exiv2_0.28.0.bb b/meta-oe/recipes-support/exiv2/exiv2_0.28.0.bb
new file mode 100644
index 0000000000..958810cf7a
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2_0.28.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Exif, Iptc and XMP metadata manipulation library and tools"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=625f055f41728f84a8d7938acc35bdc2"
+
+DEPENDS = "zlib expat brotli libinih"
+
+SRC_URI = "https://github.com/Exiv2/${BPN}/releases/download/v${PV}/${BP}-Source.tar.gz"
+SRC_URI[sha256sum] = "89af3b5ef7277753ef7a7b5374ae017c6b9e304db3b688f1948e73e103491f3d"
+# Once patch is obsolete (project should be aware due to PRs), dos2unix can be removed either
+# inherit dos2unix
+S = "${WORKDIR}/${BP}-Source"
+
+inherit cmake gettext
+
+do_install:append:class-target() {
+ # reproducibility: remove build host path
+ sed -i ${D}${libdir}/cmake/exiv2/exiv2Config.cmake \
+ -e 's:${STAGING_DIR_HOST}::g'
+}
diff --git a/meta-oe/recipes-support/farsight/libnice_0.1.18.bb b/meta-oe/recipes-support/farsight/libnice_0.1.18.bb
deleted file mode 100644
index e7eaf03921..0000000000
--- a/meta-oe/recipes-support/farsight/libnice_0.1.18.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Interactive Connectivity Establishment library"
-DESCRIPTION = "Libnice is an implementation of the IETF's draft Interactive Connectivity Establishment standard (ICE)."
-HOMEPAGE = "http://nice.freedesktop.org/wiki/"
-
-LICENSE = "LGPL-2.1-only & MPL-1.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \
- file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://COPYING.MPL;md5=3c617710e51cdbe0fc00716f056dfb1a \
-"
-
-SRC_URI = "http://nice.freedesktop.org/releases/libnice-${PV}.tar.gz"
-SRC_URI[sha256sum] = "5eabd25ba2b54e817699832826269241abaa1cf78f9b240d1435f936569273f4"
-
-DEPENDS = "glib-2.0 gnutls"
-
-PACKAGECONFIG[gupnp] = "-Dgupnp=enabled,-Dgupnp=disabled,gupnp"
-PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0"
-PACKAGECONFIG[introspection] = "-Dintrospection=enabled,-Dintrospection=disabled,"
-
-EXTRA_OEMESON = "-Dgstreamer=disabled"
-
-GTKDOC_MESON_OPTION = "gtk_doc"
-GTKDOC_MESON_ENABLE_FLAG = "enabled"
-GTKDOC_MESON_DISABLE_FLAG = "disabled"
-
-inherit meson gtk-doc gobject-introspection
-
-FILES:${PN} += "${libdir}/gstreamer-1.0/*.so"
-FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
-FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
-FILES:${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
-
-do_configure:prepend() {
- mkdir ${S}/m4 || true
-}
-
-do_compile:append() {
- for i in $(find ${B} -name "*.pc") ; do
- sed -i -e s:${STAGING_DIR_TARGET}::g \
- -e s:/${TARGET_SYS}::g \
- $i
- done
-}
diff --git a/meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch b/meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch
index 82b1c61e9c..730bb7a965 100644
--- a/meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch
+++ b/meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- fbset-2.1/Makefile.orig 2006-05-28 04:04:27.412095480 +0200
+++ fbset-2.1/Makefile 2006-05-28 04:14:05.379231120 +0200
@@ -2,7 +2,7 @@
diff --git a/meta-oe/recipes-support/fbset/fbset-modes.bb b/meta-oe/recipes-support/fbset/fbset-modes.bb
index 034c2871a9..aa5f631c38 100644
--- a/meta-oe/recipes-support/fbset/fbset-modes.bb
+++ b/meta-oe/recipes-support/fbset/fbset-modes.bb
@@ -4,7 +4,6 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
PV = "0.1.0"
-PR = "r6"
SRC_URI = "file://fb.modes"
S = "${WORKDIR}"
diff --git a/meta-oe/recipes-support/fbset/fbset_2.1.bb b/meta-oe/recipes-support/fbset/fbset_2.1.bb
index 9870ee7379..690fee0df3 100644
--- a/meta-oe/recipes-support/fbset/fbset_2.1.bb
+++ b/meta-oe/recipes-support/fbset/fbset_2.1.bb
@@ -12,7 +12,6 @@ LIC_FILES_CHKSUM = "file://fbset.c;endline=19;md5=bf326f82cdfcac391af208f019c560
RRECOMMENDS:${PN} = "fbset-modes"
DEPENDS = "bison-native flex-native"
-PR = "r4"
SRC_URI = "${DEBIAN_MIRROR}/main/f/fbset/fbset_2.1.orig.tar.gz \
file://makefile.patch \
diff --git a/meta-oe/recipes-support/fftw/fftw/install-bench.patch b/meta-oe/recipes-support/fftw/fftw/install-bench.patch
index ef570b19d8..237c1c0c5c 100644
--- a/meta-oe/recipes-support/fftw/fftw/install-bench.patch
+++ b/meta-oe/recipes-support/fftw/fftw/install-bench.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- ./tests/Makefile.am.orig 2021-03-23 11:45:12.756371739 -0400
+++ ./tests/Makefile.am 2021-03-23 19:29:19.692180793 -0400
@@ -1,21 +1,21 @@
diff --git a/meta-oe/recipes-support/fftw/fftw/run-ptest b/meta-oe/recipes-support/fftw/fftw/run-ptest
index 6d8dd96f02..4d19057975 100644
--- a/meta-oe/recipes-support/fftw/fftw/run-ptest
+++ b/meta-oe/recipes-support/fftw/fftw/run-ptest
@@ -10,21 +10,18 @@ cd ../fftwl
/usr/bin/perl -w ./check.pl -r -c=30 -v `pwd`/benchl
fftwl_result=$?
-echo -n "fftw test result:"
if [ $fftw_result = "0" ]; then
- echo PASSED
+ echo "PASS: fftw"
else
- echo FAILED
+ echo "FAIL: fftw"
fi
-echo -n "fftwf test result:"
if [ $fftwf_result = "0" ]; then
- echo PASSED
+ echo "PASS: fftwf"
else
- echo FAILED
+ echo "FAIL: fftwf"
fi
-echo -n "fftwl test result:"
if [ $fftwl_result = "0" ]; then
- echo PASSED
+ echo "PASS: fftwl"
else
- echo FAILED
+ echo "FAIL: fftwl"
fi
diff --git a/meta-oe/recipes-support/fftw/fftw_3.3.10.bb b/meta-oe/recipes-support/fftw/fftw_3.3.10.bb
index cb45e2b91f..af7117da7b 100644
--- a/meta-oe/recipes-support/fftw/fftw_3.3.10.bb
+++ b/meta-oe/recipes-support/fftw/fftw_3.3.10.bb
@@ -55,6 +55,7 @@ do_configure() {
do_compile() {
for lib in fftw fftwl fftwf; do
cd ${WORKDIR}/build-$lib
+ test -n "${TOOLCHAIN_OPTIONS}" && sed -i -e 's|${TOOLCHAIN_OPTIONS}||g' config.h
autotools_do_compile
done
}
@@ -99,4 +100,4 @@ RDEPENDS:${PN}-dev = "libfftw libfftwl libfftwf"
RDEPENDS:${PN}-ptest += "perl"
RDEPENDS:${PN}-ptest:remove = "fftw"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/fltk/fltk-native.bb b/meta-oe/recipes-support/fltk/fltk-native.bb
index 8d3992a6ec..3e8e2cdf77 100644
--- a/meta-oe/recipes-support/fltk/fltk-native.bb
+++ b/meta-oe/recipes-support/fltk/fltk-native.bb
@@ -2,6 +2,8 @@ require ${BPN}.inc
DEPENDS = "zlib-native jpeg-native libpng-native libxext-native libxft-native"
+SRC_URI += "file://fltk-native-link-libdl.patch"
+
inherit native
EXTRA_OECMAKE += " \
@@ -15,9 +17,6 @@ EXTRA_OECMAKE += " \
-DOPTION_USE_XCURSOR=OFF \
"
-# lib/libfltk.a(Fl_Native_File_Chooser.cxx.o): undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
-LDFLAGS += "-ldl"
-
do_install:append() {
# make sure native fltk-config is not used accidentaly
rm -f ${D}${bindir}/fltk-config
diff --git a/meta-oe/recipes-support/fltk/fltk/0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch b/meta-oe/recipes-support/fltk/fltk/0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch
index e6e68a0cb8..d1cbb35479 100644
--- a/meta-oe/recipes-support/fltk/fltk/0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch
+++ b/meta-oe/recipes-support/fltk/fltk/0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch
@@ -18,6 +18,8 @@ Content-Transfer-Encoding: 8bit
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
+Upstream-Status: Pending
+
src/Fl_Preferences.cxx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/fltk/fltk/disable_test.patch b/meta-oe/recipes-support/fltk/fltk/disable_test.patch
index 1f5fd25e04..fe8be5a652 100644
--- a/meta-oe/recipes-support/fltk/fltk/disable_test.patch
+++ b/meta-oe/recipes-support/fltk/fltk/disable_test.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/Makefile.orig 2015-11-26 15:35:31.485357862 +0800
+++ b/Makefile 2015-11-26 15:35:37.037357764 +0800
@@ -18,7 +18,7 @@
diff --git a/meta-oe/recipes-support/fltk/fltk/fltk-native-link-libdl.patch b/meta-oe/recipes-support/fltk/fltk/fltk-native-link-libdl.patch
new file mode 100644
index 0000000000..e140ce2166
--- /dev/null
+++ b/meta-oe/recipes-support/fltk/fltk/fltk-native-link-libdl.patch
@@ -0,0 +1,44 @@
+Upstream-Status: Inappropriate [cross build specific]
+
+It fails to build fltk-native on Ubuntu 20.04 with glibc 2.31:
+
+| /path_to/tmp/hosttools/ld: lib/libfltk.a(Fl_Native_File_Chooser.cxx.o): in function `fl_dlopen(char const*, char const*)':
+| Fl_Native_File_Chooser.cxx:(.text+0x61a): undefined reference to `dlopen'
+| /path_to/tmp/hosttools/ld: lib/libfltk.a(Fl_Native_File_Chooser.cxx.o): in function `Fl_GTK_File_Chooser::probe_for_GTK_libs()':
+| Fl_Native_File_Chooser.cxx:(.text+0xf92): undefined reference to `dlerror'
+
+The original fix in fltk-native recipe does not work any more because '-ldl'
+appears before lib/libfltk.a and causes dlopen() unresolved. The reason why it
+doesn't fail on other hosts is that the functions dlopen(), dlerror() etc. have
+been moved to libc.so since glibc 2.34 via the commits in glibc:
+
+0c1c3a771e dlfcn: Move dlopen into libc
+add8d7ea01 dlfcn: Move dlvsym into libc
+6dfc0207eb dlfcn: Move dlinfo into libc
+492560a32e dlfcn: Move dladdr1 into libc
+6a1ed32789 dlfcn: Move dlmopen into libc
+77f876c0e3 dlfcn: Move dlsym into libc
+602252b553 dlfcn: Move dladdr into libc
+d8cce17d2a dlfcn: Move dlclose into libc
+
+Append 'dl' to fltk link items explictly to fix the error.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+---
+ src/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index d153b1c..0fe5c11 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -306,7 +306,7 @@ endif (USE_XFT)
+ #######################################################################
+
+ FL_ADD_LIBRARY (fltk STATIC "${STATIC_FILES}")
+-target_link_libraries (fltk ${OPTIONAL_LIBS})
++target_link_libraries (fltk ${OPTIONAL_LIBS} dl)
+
+ #######################################################################
+
diff --git a/meta-oe/recipes-support/fmt/fmt_10.2.1.bb b/meta-oe/recipes-support/fmt/fmt_10.2.1.bb
new file mode 100644
index 0000000000..1437eb4803
--- /dev/null
+++ b/meta-oe/recipes-support/fmt/fmt_10.2.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "open-source formatting library for C++"
+DESCRIPTION = "{fmt} is an open-source formatting library for C++. It can be used as a safe and fast alternative to (s)printf and iostreams."
+HOMEPAGE = "https://fmt.dev"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b9257785fc4f3803a4b71b76c1412729"
+
+SRC_URI = "git://github.com/fmtlib/fmt;branch=10.x;protocol=https"
+SRCREV = "e69e5f977d458f2650bb346dadf2ad30c5320281"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/fmt/fmt_9.1.0.bb b/meta-oe/recipes-support/fmt/fmt_9.1.0.bb
deleted file mode 100644
index 34896153c2..0000000000
--- a/meta-oe/recipes-support/fmt/fmt_9.1.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "open-source formatting library for C++"
-DESCRIPTION = "{fmt} is an open-source formatting library for C++. It can be used as a safe and fast alternative to (s)printf and iostreams."
-HOMEPAGE = "https://fmt.dev"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=af88d758f75f3c5c48a967501f24384b"
-
-SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https"
-SRCREV = "a33701196adfad74917046096bf5a2aa0ab0bb50"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-inherit ptest
-
-EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-const-qualifier-error.patch b/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-const-qualifier-error.patch
new file mode 100644
index 0000000000..87a456d16d
--- /dev/null
+++ b/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-const-qualifier-error.patch
@@ -0,0 +1,57 @@
+From 761b4df04a141cc8c9507c741e4046c6c6b00491 Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@fujitsu.com>
+Date: Mon, 11 Sep 2023 09:00:39 +0000
+Subject: [PATCH] Fix const qualifier error
+
+Fixes clang error
+error: incompatible function pointer types assigning to 'OBJECT_NEW_FN' (aka 'void *(*)(void *)') from 'void *(const void *)' [-Wincompatible-function-pointer-types]
+| obj->fnObjectNew = uwac_event_clone;
+| ^ ~~~~~~~~~~~~~~~~
+
+https://github.com/FreeRDP/FreeRDP/commit/6e3c00725aae99d03a0baa65430eceddebd9dee8
+Upstream-Status: Backport
+
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ libfreerdp/codec/rfx.c | 4 ++--
+ winpr/include/winpr/collections.h | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libfreerdp/codec/rfx.c b/libfreerdp/codec/rfx.c
+index ccbc5af..eec7365 100644
+--- a/libfreerdp/codec/rfx.c
++++ b/libfreerdp/codec/rfx.c
+@@ -153,7 +153,7 @@ static void rfx_tile_init(void* obj)
+ }
+ }
+
+-static void* rfx_decoder_tile_new(void* val)
++static void* rfx_decoder_tile_new(const void* val)
+ {
+ RFX_TILE* tile = NULL;
+ WINPR_UNUSED(val);
+@@ -184,7 +184,7 @@ static void rfx_decoder_tile_free(void* obj)
+ }
+ }
+
+-static void* rfx_encoder_tile_new(void* val)
++static void* rfx_encoder_tile_new(const void* val)
+ {
+ WINPR_UNUSED(val);
+ return calloc(1, sizeof(RFX_TILE));
+diff --git a/winpr/include/winpr/collections.h b/winpr/include/winpr/collections.h
+index 807f011..b8c8d9d 100644
+--- a/winpr/include/winpr/collections.h
++++ b/winpr/include/winpr/collections.h
+@@ -36,7 +36,7 @@ extern "C"
+ {
+ #endif
+
+- typedef void* (*OBJECT_NEW_FN)(void* val);
++ typedef void* (*OBJECT_NEW_FN)(const void* val);
+ typedef void (*OBJECT_INIT_FN)(void* obj);
+ typedef void (*OBJECT_UNINIT_FN)(void* obj);
+ typedef void (*OBJECT_FREE_FN)(void* obj);
+--
+2.34.1
+
diff --git a/meta-oe/recipes-support/freerdp/freerdp/0002-Do-not-install-tools-a-CMake-targets.patch b/meta-oe/recipes-support/freerdp/freerdp/0002-Do-not-install-tools-a-CMake-targets.patch
new file mode 100644
index 0000000000..2e5e6a4240
--- /dev/null
+++ b/meta-oe/recipes-support/freerdp/freerdp/0002-Do-not-install-tools-a-CMake-targets.patch
@@ -0,0 +1,45 @@
+From 0ddaeae351295e48365657482f165652051bbca2 Mon Sep 17 00:00:00 2001
+From: Andreas Cord-Landwehr <cordlandwehr@kde.org>
+Date: Wed, 17 Jan 2024 20:00:58 +0100
+Subject: [PATCH] Do not install tools a CMake targets
+
+The cli tools are installed manually and thus are missing in the sysroot
+folder. Do not export their targets because they do not exist and make
+CMake fail when searching for the library.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Andreas Cord-Landwehr <cordlandwehr@kde.org>
+---
+ winpr/tools/hash-cli/CMakeLists.txt | 2 +-
+ winpr/tools/makecert-cli/CMakeLists.txt | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/winpr/tools/hash-cli/CMakeLists.txt b/winpr/tools/hash-cli/CMakeLists.txt
+index 9f8c7a8a0..b6d048fec 100644
+--- a/winpr/tools/hash-cli/CMakeLists.txt
++++ b/winpr/tools/hash-cli/CMakeLists.txt
+@@ -43,7 +43,7 @@ set(${MODULE_PREFIX}_LIBS winpr)
+
+ target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
+
+-install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT tools EXPORT WinPRTargets)
++install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT tools)
+
+ if (WITH_DEBUG_SYMBOLS AND MSVC)
+ install(FILES ${CMAKE_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT symbols)
+diff --git a/winpr/tools/makecert-cli/CMakeLists.txt b/winpr/tools/makecert-cli/CMakeLists.txt
+index 48fda5b5e..c7cf4bfaf 100644
+--- a/winpr/tools/makecert-cli/CMakeLists.txt
++++ b/winpr/tools/makecert-cli/CMakeLists.txt
+@@ -46,7 +46,7 @@ target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS} winpr)
+
+ set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Tools")
+
+-install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT tools EXPORT WinPRTargets)
++install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT tools)
+ if (WITH_DEBUG_SYMBOLS AND MSVC)
+ install(FILES ${CMAKE_PDB_BINARY_DIR}/${MODULE_NAME}.pdb DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT symbols)
+ endif()
+--
+2.40.1
+
diff --git a/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch b/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch
index 0f6f575d02..914f08087b 100644
--- a/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch
+++ b/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch
@@ -9,6 +9,8 @@ Update it for 2.0.0.
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
winpr/tools/makecert-cli/CMakeLists.txt | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta-oe/recipes-support/freerdp/freerdp3_3.4.0.bb b/meta-oe/recipes-support/freerdp/freerdp3_3.4.0.bb
new file mode 100644
index 0000000000..537d19263d
--- /dev/null
+++ b/meta-oe/recipes-support/freerdp/freerdp3_3.4.0.bb
@@ -0,0 +1,61 @@
+DESCRIPTION = "FreeRDP RDP client & server library"
+HOMEPAGE = "http://www.freerdp.com"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+DEPENDS = "openssl libusb1 uriparser cairo icu pkcs11-helper zlib jpeg"
+
+inherit pkgconfig cmake
+
+SRCREV = "708f3764897e06297469a7b0507b3c9ecc041ad7"
+SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'pam pulseaudio wayland x11', d)} \
+ ${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'ffmpeg', '', d)} \
+ gstreamer cups pcsc \
+"
+
+EXTRA_OECMAKE = " \
+ -DRDTK_FORCE_STATIC_BUILD=ON \
+ -DUWAC_FORCE_STATIC_BUILD=ON \
+ -DWITH_ADD=ON \
+ -DWITH_BINARY_VERSIONING=ON \
+ -DWITH_CHANNELS=ON \
+ -DWITH_CLIENT_CHANNELS=ON \
+ -DWITH_JPEG=ON \
+ -DWITH_PKCS11=ON \
+ -DWITH_SERVER_CHANNELS=ON \
+ -DWITH_SERVER=ON \
+ -DPKG_CONFIG_RELOCATABLE=OFF \
+ -DWITH_ALSA=OFF \
+ -DWITH_CLIENT_SDL=OFF \
+ -DWITH_SAMPLE=OFF \
+ "
+
+X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile"
+PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF -DWITH_SHADOW=OFF,${X11_DEPS}"
+PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland wayland-native libxkbcommon"
+PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam"
+PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio"
+PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER_1_0=ON,-DWITH_GSTREAMER_1_0=OFF,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[cups] = "-DWITH_CUPS=ON,-DWITH_CUPS=OFF,cups"
+PACKAGECONFIG[fuse] = "-DWITH_FUSE=ON,-DWITH_FUSE=OFF,fuse3,fuse3"
+PACKAGECONFIG[pcsc] = "-DWITH_PCSC=ON,-DWITH_PCSC=OFF,pcsc-lite"
+PACKAGECONFIG[manpages] = "-DWITH_MANPAGES=ON,-DWITH_MANPAGES=OFF, libxslt-native docbook-xsl-stylesheets-native"
+PACKAGECONFIG[ffmpeg] = "-DWITH_DSP_FFMPEG=ON -DWITH_FFMPEG=ON -DWITH_SWSCALE=ON, -DWITH_DSP_FFMPEG=OFF -DWITH_FFMPEG=OFF -DWITH_SWSCALE=OFF,ffmpeg"
+PACKAGECONFIG[krb5] = "-DWITH_KRB5=ON -DWITH_KRB5_NO_NTLM_FALLBACK=OFF,-DWITH_KRB5=OFF,krb5"
+PACKAGECONFIG[openh264] = "-DWITH_OPENH264=ON,-DWITH_OPENH264=OFF,openh264"
+PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-icd-loader"
+PACKAGECONFIG[lame] = "-DWITH_LAME=ON,-DWITH_LAME=OFF,lame"
+PACKAGECONFIG[faad] = "-DWITH_FAAD=ON,-DWITH_FAAD=OFF,faad2"
+PACKAGECONFIG[faac] = "-DWITH_FAAC=ON,-DWITH_FAAC=OFF,faac"
+
+do_configure:append() {
+ sed -i -e 's|${WORKDIR}||g' ${B}/include/freerdp/buildflags.h
+ sed -i -e 's|${WORKDIR}||g' ${B}/winpr/include/winpr/buildflags.h
+}
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-oe/recipes-support/freerdp/freerdp_2.11.2.bb b/meta-oe/recipes-support/freerdp/freerdp_2.11.2.bb
new file mode 100644
index 0000000000..8de0e39ad7
--- /dev/null
+++ b/meta-oe/recipes-support/freerdp/freerdp_2.11.2.bb
@@ -0,0 +1,92 @@
+# Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved
+# Released under the MIT license
+
+DESCRIPTION = "FreeRDP RDP client & server library"
+HOMEPAGE = "http://www.freerdp.com"
+DEPENDS = "openssl alsa-lib libusb1"
+SECTION = "net"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+inherit pkgconfig cmake gitpkgv
+
+PE = "1"
+PKGV = "${GITPKGVTAG}"
+
+SRCREV = "a38c1be9eee39a9bc22b511fffe96e63fdf8ebe7"
+SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=stable-2.0;protocol=https \
+ file://winpr-makecert-Build-with-install-RPATH.patch \
+ file://0001-Fix-const-qualifier-error.patch \
+ file://0002-Do-not-install-tools-a-CMake-targets.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE += " \
+ -DWITH_ALSA=ON \
+ -DWITH_FFMPEG=OFF \
+ -DWITH_CUNIT=OFF \
+ -DWITH_NEON=OFF \
+ -DBUILD_STATIC_LIBS=OFF \
+ -DCMAKE_POSITION_INDEPENDANT_CODE=ON \
+ -DWITH_MANPAGES=OFF \
+ -DPROXY_PLUGINDIR=${libdir}/freerdp/proxy/plugins \
+"
+
+PACKAGECONFIG ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'directfb pam pulseaudio wayland x11', d)}\
+ gstreamer cups pcsc server \
+"
+
+X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile"
+PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF,${X11_DEPS}"
+PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland wayland-native libxkbcommon"
+PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb"
+PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam"
+PACKAGECONFIG[pcsc] = "-DWITH_PCSC=ON,-DWITH_PCSC=OFF,pcsc-lite"
+PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio"
+PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER_1_0=ON,-DWITH_GSTREAMER_1_0=OFF,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[cups] = "-DWITH_CUPS=ON,-DWITH_CUPS=OFF,cups"
+PACKAGECONFIG[server] = "-DWITH_SERVER=ON,-DWITH_SERVER=OFF"
+
+PACKAGES =+ "libfreerdp"
+
+LEAD_SONAME = "libfreerdp.so"
+FILES:libfreerdp = "${libdir}/lib*${SOLIBS}"
+
+PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*"
+
+do_configure:append() {
+ sed -i -e 's|${WORKDIR}||g' ${B}/buildflags.h
+}
+
+# we will need winpr-makecert to generate TLS certificates
+do_install:append () {
+ install -d ${D}${bindir}
+ install -m755 winpr/tools/makecert-cli/winpr-makecert ${D}${bindir}
+ rm -rf ${D}${libdir}/freerdp
+}
+
+python populate_packages:prepend () {
+ freerdp_root = d.expand('${libdir}/freerdp')
+
+ do_split_packages(d, freerdp_root, r'^(audin_.*)\.so$',
+ output_pattern='libfreerdp-plugin-%s',
+ description='FreeRDP plugin %s',
+ prepend=True, extra_depends='libfreerdp-plugin-audin')
+
+ do_split_packages(d, freerdp_root, r'^(rdpsnd_.*)\.so$',
+ output_pattern='libfreerdp-plugin-%s',
+ description='FreeRDP plugin %s',
+ prepend=True, extra_depends='libfreerdp-plugin-rdpsnd')
+
+ do_split_packages(d, freerdp_root, r'^(tsmf_.*)\.so$',
+ output_pattern='libfreerdp-plugin-%s',
+ description='FreeRDP plugin %s',
+ prepend=True, extra_depends='libfreerdp-plugin-tsmf')
+
+ do_split_packages(d, freerdp_root, r'^([^-]*)\.so$',
+ output_pattern='libfreerdp-plugin-%s',
+ description='FreeRDP plugin %s',
+ prepend=True, extra_depends='')
+}
diff --git a/meta-oe/recipes-support/freerdp/freerdp_2.8.0.bb b/meta-oe/recipes-support/freerdp/freerdp_2.8.0.bb
deleted file mode 100644
index 33782e56b7..0000000000
--- a/meta-oe/recipes-support/freerdp/freerdp_2.8.0.bb
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright (C) 2010-2012 O.S. Systems Software Ltda. All Rights Reserved
-# Released under the MIT license
-
-DESCRIPTION = "FreeRDP RDP client & server library"
-HOMEPAGE = "http://www.freerdp.com"
-DEPENDS = "openssl alsa-lib libusb1"
-SECTION = "net"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-inherit pkgconfig cmake gitpkgv
-
-PE = "1"
-PKGV = "${GITPKGVTAG}"
-
-SRCREV = "e3fc97feb512053189e276b2ca79762990bb8c4c"
-SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=stable-2.0;protocol=https \
- file://winpr-makecert-Build-with-install-RPATH.patch \
-"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECMAKE += " \
- -DWITH_ALSA=ON \
- -DWITH_FFMPEG=OFF \
- -DWITH_CUNIT=OFF \
- -DWITH_NEON=OFF \
- -DBUILD_STATIC_LIBS=OFF \
- -DCMAKE_POSITION_INDEPENDANT_CODE=ON \
- -DWITH_MANPAGES=OFF \
-"
-
-PACKAGECONFIG ??= " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'directfb pam pulseaudio wayland x11', d)}\
- gstreamer cups pcsc \
-"
-
-X11_DEPS = "virtual/libx11 libxinerama libxext libxcursor libxv libxi libxrender libxfixes libxdamage libxrandr libxkbfile"
-PACKAGECONFIG[x11] = "-DWITH_X11=ON -DWITH_XINERAMA=ON -DWITH_XEXT=ON -DWITH_XCURSOR=ON -DWITH_XV=ON -DWITH_XI=ON -DWITH_XRENDER=ON -DWITH_XFIXES=ON -DWITH_XDAMAGE=ON -DWITH_XRANDR=ON -DWITH_XKBFILE=ON,-DWITH_X11=OFF,${X11_DEPS}"
-PACKAGECONFIG[wayland] = "-DWITH_WAYLAND=ON,-DWITH_WAYLAND=OFF,wayland wayland-native libxkbcommon"
-PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb"
-PACKAGECONFIG[pam] = "-DWITH_PAM=ON,-DWITH_PAM=OFF,libpam"
-PACKAGECONFIG[pcsc] = "-DWITH_PCSC=ON,-DWITH_PCSC=OFF,pcsc-lite"
-PACKAGECONFIG[pulseaudio] = "-DWITH_PULSEAUDIO=ON,-DWITH_PULSEAUDIO=OFF,pulseaudio"
-PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER_1_0=ON,-DWITH_GSTREAMER_1_0=OFF,gstreamer1.0 gstreamer1.0-plugins-base"
-PACKAGECONFIG[cups] = "-DWITH_CUPS=ON,-DWITH_CUPS=OFF,cups"
-
-PACKAGES =+ "libfreerdp"
-
-LEAD_SONAME = "libfreerdp.so"
-FILES:libfreerdp = "${libdir}/lib*${SOLIBS}"
-
-PACKAGES_DYNAMIC += "^libfreerdp-plugin-.*"
-
-# we will need winpr-makecert to generate TLS certificates
-do_install:append () {
- install -d ${D}${bindir}
- install -m755 winpr/tools/makecert-cli/winpr-makecert ${D}${bindir}
- rm -rf ${D}${libdir}/cmake
- rm -rf ${D}${libdir}/freerdp
-}
-
-python populate_packages:prepend () {
- freerdp_root = d.expand('${libdir}/freerdp')
-
- do_split_packages(d, freerdp_root, r'^(audin_.*)\.so$',
- output_pattern='libfreerdp-plugin-%s',
- description='FreeRDP plugin %s',
- prepend=True, extra_depends='libfreerdp-plugin-audin')
-
- do_split_packages(d, freerdp_root, r'^(rdpsnd_.*)\.so$',
- output_pattern='libfreerdp-plugin-%s',
- description='FreeRDP plugin %s',
- prepend=True, extra_depends='libfreerdp-plugin-rdpsnd')
-
- do_split_packages(d, freerdp_root, r'^(tsmf_.*)\.so$',
- output_pattern='libfreerdp-plugin-%s',
- description='FreeRDP plugin %s',
- prepend=True, extra_depends='libfreerdp-plugin-tsmf')
-
- do_split_packages(d, freerdp_root, r'^([^-]*)\.so$',
- output_pattern='libfreerdp-plugin-%s',
- description='FreeRDP plugin %s',
- prepend=True, extra_depends='')
-}
diff --git a/meta-oe/recipes-support/function2/function2_4.2.1.bb b/meta-oe/recipes-support/function2/function2_4.2.1.bb
deleted file mode 100644
index 8e3718102e..0000000000
--- a/meta-oe/recipes-support/function2/function2_4.2.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Improved drop-in replacement for std::function"
-DESCRIPTION = "Provides improved implementations of std::function."
-HOMEPAGE = "https://naios.github.io/function2"
-LICENSE = "BSL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
-SRCREV = "f569a63cfe369df867a1a4d17aaa12269156536c"
-PV .= "+git${SRCPV}"
-
-SRC_URI += "gitsm://github.com/Naios/function2;branch=master;protocol=https"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-inherit ptest
-
-# Installs some data to incorrect top-level /usr directory
-do_install:append() {
- mkdir -p ${D}/${datadir}/function2
- mv ${D}/${prefix}/Readme.md ${D}/${datadir}/function2/
- mv ${D}/${prefix}/LICENSE.txt ${D}/${datadir}/function2/
-}
diff --git a/meta-oe/recipes-support/function2/function2_4.2.4.bb b/meta-oe/recipes-support/function2/function2_4.2.4.bb
new file mode 100644
index 0000000000..98d05f6e25
--- /dev/null
+++ b/meta-oe/recipes-support/function2/function2_4.2.4.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Improved drop-in replacement for std::function"
+DESCRIPTION = "Provides improved implementations of std::function."
+HOMEPAGE = "https://naios.github.io/function2"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+SRCREV = "a354bd093d2b6e50c9325dbce84d20b4e77aabc6"
+PV .= "+git"
+
+SRC_URI += "gitsm://github.com/Naios/function2;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+inherit ptest
+
+# Installs some data to incorrect top-level /usr directory
+do_install:append() {
+ mkdir -p ${D}/${datadir}/function2
+ mv ${D}/${prefix}/Readme.md ${D}/${datadir}/function2/
+ mv ${D}/${prefix}/LICENSE.txt ${D}/${datadir}/function2/
+}
diff --git a/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb b/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb
index 52c1016335..4d97b1a419 100644
--- a/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb
+++ b/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb
@@ -13,4 +13,6 @@ SRC_URI[sha256sum] = "b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab80
inherit autotools texinfo
+CXXFLAGS += "-std=c++14"
+
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/glog/glog/0001-Change-SleepForMilliseconds-parameter-from-unsigned-.patch b/meta-oe/recipes-support/glog/glog/0001-Change-SleepForMilliseconds-parameter-from-unsigned-.patch
new file mode 100644
index 0000000000..3732c62cd0
--- /dev/null
+++ b/meta-oe/recipes-support/glog/glog/0001-Change-SleepForMilliseconds-parameter-from-unsigned-.patch
@@ -0,0 +1,33 @@
+From 176230435cb4b64ff7f2d97f77a04579ad9ca239 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 18 Feb 2023 13:14:14 -0800
+Subject: [PATCH] Change SleepForMilliseconds parameter from unsigned int -> long
+
+Fixes following error on 32bit platforms
+
+src/googletest.h:631:35: error: non-constant-expression cannot be narrowed from type 'unsigned int' to 'long' in initializer list [-Wc++11-narrowing]
+ const struct timespec req = {0, t * 1000 * 1000};
+ ^~~~~~~~~~~~~~~
+
+Upstream-Status: Submitted [https://github.com/google/glog/pull/894]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/googletest.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/googletest.h b/src/googletest.h
+index 5761361..836b06c 100644
+--- a/src/googletest.h
++++ b/src/googletest.h
+@@ -625,7 +625,7 @@ class Thread {
+ #endif
+ };
+
+-static inline void SleepForMilliseconds(unsigned t) {
++static inline void SleepForMilliseconds(long t) {
+ #ifndef GLOG_OS_WINDOWS
+ # if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309L
+ const struct timespec req = {0, t * 1000 * 1000};
+--
+2.39.2
+
diff --git a/meta-oe/recipes-support/glog/glog/libexecinfo.patch b/meta-oe/recipes-support/glog/glog/libexecinfo.patch
index 927c269a6a..a791a40dbc 100644
--- a/meta-oe/recipes-support/glog/glog/libexecinfo.patch
+++ b/meta-oe/recipes-support/glog/glog/libexecinfo.patch
@@ -1,4 +1,8 @@
-Link libexecinfo if its found, this is needed for musl based systems
+From 19d00c15710840910a7397252c14d612746631fe Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 8 Mar 2021 14:58:40 -0800
+Subject: [PATCH] Link libexecinfo if its found, this is needed for musl based
+ systems
Fixes
ld: libglog.so.0.4.0: undefined reference to `backtrace'
@@ -6,17 +10,24 @@ ld: libglog.so.0.4.0: undefined reference to `backtrace'
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 846b444..1553358 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -144,6 +144,7 @@ check_cxx_compiler_flag (-Wunnamed-type-
- check_symbol_exists (snprintf cstdio HAVE_SNPRINTF)
+@@ -162,6 +162,7 @@ cmake_pop_check_state ()
+ check_cxx_symbol_exists (snprintf cstdio HAVE_SNPRINTF)
check_library_exists (dbghelp UnDecorateSymbolName "" HAVE_DBGHELP)
+check_library_exists (execinfo backtrace "" HAVE_EXECINFO)
check_cxx_source_compiles ("
#include <cstdlib>
-@@ -584,6 +585,10 @@ if (Unwind_FOUND)
+@@ -629,6 +630,10 @@ if (Unwind_FOUND)
set (Unwind_DEPENDENCY "find_dependency (Unwind ${Unwind_VERSION})")
endif (Unwind_FOUND)
@@ -25,5 +36,5 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
+endif (HAVE_EXECINFO)
+
if (HAVE_DBGHELP)
- target_link_libraries (glog PUBLIC dbghelp)
- endif (HAVE_DBGHELP)
+ target_link_libraries (glog PRIVATE dbghelp)
+ set (glog_libraries_options_for_static_linking "${glog_libraries_options_for_static_linking} -ldbghelp")
diff --git a/meta-oe/recipes-support/glog/glog_0.5.0.bb b/meta-oe/recipes-support/glog/glog_0.5.0.bb
deleted file mode 100644
index 61581d96d7..0000000000
--- a/meta-oe/recipes-support/glog/glog_0.5.0.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-DESCRIPTION = "The glog library implements application-level logging. This \
-library provides logging APIs based on C++-style streams and various helper \
-macros."
-HOMEPAGE = "https://github.com/google/glog"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b"
-
-SRC_URI = " \
- git://github.com/google/glog.git;nobranch=1;protocol=https \
- file://libexecinfo.patch \
-"
-
-SRCREV = "8f9ccfe770add9e4c64e9b25c102658e3c763b73"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-PACKAGECONFIG ?= "shared unwind"
-PACKAGECONFIG:remove:riscv64 = "unwind"
-PACKAGECONFIG:remove:riscv32 = "unwind"
-PACKAGECONFIG:append:libc-musl:riscv64 = " execinfo"
-PACKAGECONFIG:append:libc-musl:riscv32 = " execinfo"
-
-PACKAGECONFIG[unwind] = "-DWITH_UNWIND=ON,-DWITH_UNWIND=OFF,libunwind,libunwind"
-PACKAGECONFIG[execinfo] = ",,libexecinfo"
-PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
-
-do_configure:append() {
- # remove WORKDIR info to improve reproducibility
- if [ -f "${B}/config.h" ] ; then
- sed -i 's/'$(echo ${WORKDIR} | sed 's_/_\\/_g')'/../g' ${B}/config.h
- fi
-}
diff --git a/meta-oe/recipes-support/glog/glog_0.6.0.bb b/meta-oe/recipes-support/glog/glog_0.6.0.bb
new file mode 100644
index 0000000000..ec39604f44
--- /dev/null
+++ b/meta-oe/recipes-support/glog/glog_0.6.0.bb
@@ -0,0 +1,43 @@
+DESCRIPTION = "The glog library implements application-level logging. This \
+library provides logging APIs based on C++-style streams and various helper \
+macros."
+HOMEPAGE = "https://github.com/google/glog"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dc9db360e0bbd4e46672f3fd91dd6c4b"
+
+SRC_URI = " \
+ git://github.com/google/glog.git;branch=master;protocol=https \
+ file://libexecinfo.patch \
+ file://0001-Change-SleepForMilliseconds-parameter-from-unsigned-.patch \
+"
+
+SRCREV = "b33e3bad4c46c8a6345525fd822af355e5ef9446"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+PACKAGECONFIG ?= "shared unwind 64bit-atomics"
+PACKAGECONFIG:remove:riscv64 = "unwind"
+PACKAGECONFIG:remove:riscv32 = "unwind 64bit-atomics"
+PACKAGECONFIG:remove:mipsarch = "64bit-atomics"
+PACKAGECONFIG:remove:armv5 = "64bit-atomics"
+PACKAGECONFIG:remove:armv6 = "64bit-atomics"
+
+PACKAGECONFIG:append:libc-musl:riscv64 = " execinfo"
+PACKAGECONFIG:append:libc-musl:riscv32 = " execinfo"
+
+PACKAGECONFIG[unwind] = "-DWITH_UNWIND=ON,-DWITH_UNWIND=OFF,libunwind,libunwind"
+PACKAGECONFIG[execinfo] = ",,libexecinfo"
+PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
+PACKAGECONFIG[64bit-atomics] = ",-DCMAKE_CXX_STANDARD_LIBRARIES='-latomic',,"
+
+do_configure:append() {
+ # remove WORKDIR info to improve reproducibility
+ if [ -f "${B}/config.h" ] ; then
+ sed -i 's/'$(echo ${WORKDIR} | sed 's_/_\\/_g')'/../g' ${B}/config.h
+ fi
+}
+
+FILES:${PN}-dev += "${datadir}/${BPN}/cmake"
diff --git a/meta-oe/recipes-support/gnulib/gnulib_2018-03-07.03.bb b/meta-oe/recipes-support/gnulib/gnulib_2018-03-07.03.bb
deleted file mode 100644
index a27968079e..0000000000
--- a/meta-oe/recipes-support/gnulib/gnulib_2018-03-07.03.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "The GNU portability library"
-DESCRIPTION = "A collection of software subroutines which are designed to \
-be usable on many operating systems. The goal of the project \
-is to make it easy for free software authors to make their \
-software run on many operating systems. Since source is designed \
-to be copied from gnulib, it is not a library per-se, as much \
-as a collection of portable idioms to be used in other projects."
-
-HOMEPAGE = "http://www.gnu.org/software/gnulib/"
-SECTION = "devel"
-LICENSE = "LGPL-2.0-or-later"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=56a22a6e5bcce45e2c8ac184f81412b5"
-SRCREV = "0d6e3307bbdb8df4d56043d5f373eeeffe4cbef3"
-
-SRC_URI = "git://git.savannah.gnu.org/git/gnulib.git;branch=master \
-"
-
-S = "${WORKDIR}/git"
-
-do_install () {
- install -d ${D}/${datadir}/gnulib
- cp --no-preserve=ownership --recursive ${S}/* ${D}/${datadir}/gnulib/
- cp --no-preserve=ownership --recursive ${S}/.git ${D}/${datadir}/gnulib/
-}
-
-do_patch[noexec] = "1"
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-do_package[noexec] = "1"
-do_packagedata[noexec] = "1"
-deltask package_write_ipk
-deltask package_write_deb
-deltask package_write_rpm
-deltask do_deploy_archives
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/gnulib/gnulib_202401.bb b/meta-oe/recipes-support/gnulib/gnulib_202401.bb
new file mode 100644
index 0000000000..41675d3587
--- /dev/null
+++ b/meta-oe/recipes-support/gnulib/gnulib_202401.bb
@@ -0,0 +1,37 @@
+SUMMARY = "The GNU portability library"
+DESCRIPTION = "A collection of software subroutines which are designed to \
+be usable on many operating systems. The goal of the project \
+is to make it easy for free software authors to make their \
+software run on many operating systems. Since source is designed \
+to be copied from gnulib, it is not a library per-se, as much \
+as a collection of portable idioms to be used in other projects."
+
+HOMEPAGE = "http://www.gnu.org/software/gnulib/"
+SECTION = "devel"
+LICENSE = "LGPL-2.0-or-later"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=56a22a6e5bcce45e2c8ac184f81412b5"
+SRCREV = "c99c8d491850dc3a6e0b8604a2729d8bc5c0eff1"
+
+SRC_URI = "git://git.savannah.gnu.org/git/gnulib.git;branch=stable-${PV};protocol=https \
+"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+ install -d ${D}/${datadir}/gnulib
+ cp --no-preserve=ownership --recursive ${S}/* ${D}/${datadir}/gnulib/
+ cp --no-preserve=ownership --recursive ${S}/.git ${D}/${datadir}/gnulib/
+}
+
+do_patch[noexec] = "1"
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+do_package[noexec] = "1"
+do_packagedata[noexec] = "1"
+deltask package_write_ipk
+deltask package_write_deb
+deltask package_write_rpm
+deltask do_deploy_archives
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.7.0.bb b/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.7.0.bb
deleted file mode 100644
index 7fc6d64728..0000000000
--- a/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.7.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "A microbenchmark support library"
-HOMEPAGE = "https://github.com/google/benchmark"
-SECTION = "libs"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI = "git://github.com/google/benchmark.git;protocol=https;branch=main"
-SRCREV = "361e8d1cfe0c6c36d30b39f1b61302ece5507320"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECMAKE = " \
- -DBUILD_SHARED_LIBS=yes \
- -DBENCHMARK_ENABLE_TESTING=no \
- -DCMAKE_BUILD_TYPE=Release \
-"
-
-inherit cmake
-
-FILES:${PN}-dev += "${libdir}/cmake"
diff --git a/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.8.3.bb b/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.8.3.bb
new file mode 100644
index 0000000000..f945a30f36
--- /dev/null
+++ b/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.8.3.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "A microbenchmark support library"
+HOMEPAGE = "https://github.com/google/benchmark"
+SECTION = "libs"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "git://github.com/google/benchmark.git;protocol=https;branch=main"
+SRCREV = "344117638c8ff7e239044fd0fa7085839fc03021"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = " \
+ -DBUILD_SHARED_LIBS=yes \
+ -DBENCHMARK_ENABLE_TESTING=no \
+ -DCMAKE_BUILD_TYPE=Release \
+"
+
+inherit cmake
+
+FILES:${PN}-dev += "${libdir}/cmake"
diff --git a/meta-oe/recipes-support/gosu/gosu_1.14.bb b/meta-oe/recipes-support/gosu/gosu_1.14.bb
deleted file mode 100644
index 624adf3099..0000000000
--- a/meta-oe/recipes-support/gosu/gosu_1.14.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Simple Go-based setuid+setgid+setgroups+exec"
-HOMEPAGE = "https://github.com/tianon/gosu"
-DESCRIPTION = "This is a simple tool grown out of the simple fact that su and sudo have very strange and often annoying TTY and signal-forwarding behavior."
-LICENSE = "Apache-2.0 "
-LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-GO_IMPORT = "github.com/tianon/gosu"
-SRC_URI = "git://${GO_IMPORT}.git;branch=master;protocol=https \
- git://github.com/opencontainers/runc;name=runc;destsuffix=${S}/src/github.com/opencontainers/runc;branch=main;protocol=https \
-"
-SRCREV = "9f7cd138a1ebc0684d43ef6046bf723978e8741f"
-SRCREV_runc = "d7f7b22a85a2387557bdcda125710c2506f8d5c5"
-inherit go
-
-do_compile:prepend() {
- # New Go versions has Go modules support enabled by default
- export GO111MODULE=off
-}
-
-RDEPENDS:${PN}-dev += "bash"
diff --git a/meta-oe/recipes-support/gosu/gosu_1.17.bb b/meta-oe/recipes-support/gosu/gosu_1.17.bb
new file mode 100644
index 0000000000..a29d6bce45
--- /dev/null
+++ b/meta-oe/recipes-support/gosu/gosu_1.17.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Simple Go-based setuid+setgid+setgroups+exec"
+HOMEPAGE = "https://github.com/tianon/gosu"
+DESCRIPTION = "This is a simple tool grown out of the simple fact that su and sudo have very strange and often annoying TTY and signal-forwarding behavior."
+LICENSE = "Apache-2.0 "
+LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+GO_IMPORT = "github.com/tianon/gosu"
+SRC_URI = "git://${GO_IMPORT}.git;branch=master;protocol=https \
+ git://github.com/moby/sys;name=user;destsuffix=${S}/src/github.com/moby/sys;branch=main;protocol=https \
+ git://github.com/golang/sys;name=sys;destsuffix=${S}/src/golang.org/x/sys;branch=master;protocol=https \
+"
+SRCREV = "0d1847490b448a17eb347e5e357f2c0478df87ad"
+#v0.1.0
+SRCREV_user = "c0711cde08c8fa33857a2c28721659267f49b5e2"
+#v0.1.0
+SRCREV_sys = "95e765b1cc43ac521bd4fd501e00774e34401449"
+
+SRCREV_FORMAT .= "_user_sys"
+
+inherit go
+
+CGO_ENABLED = "1"
+
+do_compile:prepend() {
+ # New Go versions has Go modules support enabled by default
+ export GO111MODULE=off
+}
+
+RDEPENDS:${PN}-dev += "bash"
diff --git a/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch b/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch
deleted file mode 100644
index 2fd21c2783..0000000000
--- a/meta-oe/recipes-support/gperftools/gperftools/0001-Support-Atomic-ops-on-clang.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From aa0a63209af6813d87255ec3ab339f2dbbf27d6d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 6 Mar 2017 13:38:46 -0800
-Subject: [PATCH] Support Atomic ops on clang
-
-clang pretends to be gcc 4.2 which is a lie
-it actually supports a lot more features then
-gcc 4.2, here it depends on gcc 4.7 to enable
-the atomics and fails for clang
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
-
----
- src/base/atomicops.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/base/atomicops.h b/src/base/atomicops.h
-index dac95be..390733c 100644
---- a/src/base/atomicops.h
-+++ b/src/base/atomicops.h
-@@ -124,7 +124,7 @@
- #include "base/atomicops-internals-linuxppc.h"
- #elif defined(__GNUC__) && defined(__mips__)
- #include "base/atomicops-internals-mips.h"
--#elif defined(__GNUC__) && GCC_VERSION >= 40700
-+#elif defined(__GNUC__) && GCC_VERSION >= 40700 || defined(__clang__)
- #include "base/atomicops-internals-gcc.h"
- #elif defined(__clang__) && CLANG_VERSION >= 30400
- #include "base/atomicops-internals-gcc.h"
diff --git a/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch b/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch
index e3e857f0c2..2ea54e48c9 100644
--- a/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch
+++ b/meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch
@@ -11,12 +11,14 @@ Upstream-Status: Pending
configure.ac | 2 ++
1 file changed, 2 insertions(+)
+diff --git a/configure.ac b/configure.ac
+index 68fd51c..4cb71fe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -53,6 +53,8 @@ case "$host" in
- *-cygwin*) default_enable_heap_checker=no; default_enable_cpu_profiler=no;;
- *-freebsd*) default_enable_heap_checker=no;;
- *-darwin*) default_enable_heap_checker=no;;
+ need_nanosleep=no;;
+ *-cygwin*) default_enable_cpu_profiler=no;;
+ *-linux*) default_enable_heap_checker=yes; heap_checker_supported=yes;;
+ *-musl*) default_enable_heap_checker=no; default_enable_heap_profiler=no;
+ default_enable_debugalloc=no; default_enable_libunwind=no;
esac
diff --git a/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch b/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
deleted file mode 100644
index baaaa4b53b..0000000000
--- a/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 696674a800cb6d2070897a565b92d7e63022a8f1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 15:51:28 -0700
-Subject: [PATCH] fix build with musl libc
-
-Patch from https://github.com/gperftools/gperftools/pull/765/
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/malloc_hook_mmap_linux.h | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
---- a/src/malloc_hook_mmap_linux.h
-+++ b/src/malloc_hook_mmap_linux.h
-@@ -45,6 +45,10 @@
- #include <sys/syscall.h>
- #include <unistd.h>
-
-+#ifndef __GLIBC__
-+typedef off64_t __off64_t;
-+#endif
-+
- // The x86-32 case and the x86-64 case differ:
- // 32b has a mmap2() syscall, 64b does not.
- // 64b and 32b have different calling conventions for mmap().
-@@ -175,7 +179,7 @@ extern "C" void* mmap64(void *start, siz
- return result;
- }
-
--# if !defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH)
-+# if defined(__GLIBC__) && (!defined(__USE_FILE_OFFSET64) || !defined(__REDIRECT_NTH))
-
- extern "C" void* mmap(void *start, size_t length, int prot, int flags,
- int fd, off_t offset) __THROW {
diff --git a/meta-oe/recipes-support/gperftools/gperftools/0001-src-mmap_hook.cc-Fix-build-for-32bit-machine.patch b/meta-oe/recipes-support/gperftools/gperftools/0001-src-mmap_hook.cc-Fix-build-for-32bit-machine.patch
new file mode 100644
index 0000000000..1142df0be9
--- /dev/null
+++ b/meta-oe/recipes-support/gperftools/gperftools/0001-src-mmap_hook.cc-Fix-build-for-32bit-machine.patch
@@ -0,0 +1,59 @@
+From d675808d300278a9e7143428cfecf3fda61cc9a2 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 21 Mar 2024 10:59:29 +0000
+Subject: [PATCH] src/mmap_hook.cc: Fix build for 32bit machine
+
+Fixed build error on 32bit machine:
+
+../git/src/mmap_hook.cc:309:31: error: static assertion failed
+ 309 | static_assert(sizeof(int32_t) == sizeof(off_t), "");
+
+This is because oe's off_t is 64bit on both 32 and 64bit system, which is the
+default value of glibc, so the assertion would be failed on 32bit system, and
+remove mmap() and mmap64() to fix the redefined error.
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ src/mmap_hook.cc | 22 ----------------------
+ 1 file changed, 22 deletions(-)
+
+diff --git a/src/mmap_hook.cc b/src/mmap_hook.cc
+index 0a0f62f..27425e4 100644
+--- a/src/mmap_hook.cc
++++ b/src/mmap_hook.cc
+@@ -302,30 +302,8 @@ void* mmap(void* start, size_t length, int prot, int flags, int fd, off_t off) _
+
+ #define HOOKED_MMAP
+
+-#elif defined(DEFINED_DO_MMAP) && defined(__linux__) && !GOOD_LINUX_SYSTEM
+-// Linuxes with 32-bit off_t. We're being careful with mmap64 being
+-// 64-bit and mmap being 32-bit.
+-
+-static_assert(sizeof(int32_t) == sizeof(off_t), "");
+-
+-extern "C" void* mmap64(void* start, size_t length, int prot, int flags, int fd, int64_t off)
+- __THROW ATTRIBUTE_SECTION(malloc_hook);
+-extern "C" void* mmap(void* start, size_t length, int prot, int flags, int fd, off_t off)
+- __THROW ATTRIBUTE_SECTION(malloc_hook);
+-
+-void* mmap(void *start, size_t length, int prot, int flags, int fd, off_t off) __THROW {
+- return do_mmap_with_hooks(start, length, prot, flags, fd, off);
+-}
+-
+-void* mmap64(void *start, size_t length, int prot, int flags, int fd, int64_t off) __THROW {
+- return do_mmap_with_hooks(start, length, prot, flags, fd, off);
+-}
+-
+-#define HOOKED_MMAP
+-
+ #endif // Linux/32-bit off_t case
+
+-
+ #ifdef HOOKED_MMAP
+
+ extern "C" int munmap(void* start, size_t length) __THROW ATTRIBUTE_SECTION(malloc_hook);
+--
+2.35.5
+
diff --git a/meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch b/meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch
index d06b6af229..800fa3a84f 100644
--- a/meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch
+++ b/meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch
@@ -4,49 +4,29 @@ Date: Sat, 13 Mar 2021 00:42:25 -0800
Subject: [PATCH] Compatibility fixes for musl.
---
- m4/pc_from_ucontext.m4 | 4 +++-
- src/getpc.h | 3 +++
+Upstream-Status: Pending
+
+ src/getpc.h | 4 ++++
src/stacktrace_powerpc-linux-inl.h | 8 ++++++--
- 3 files changed, 12 insertions(+), 3 deletions(-)
+ 2 files changed, 10 insertions(+), 2 deletions(-)
-diff --git a/m4/pc_from_ucontext.m4 b/m4/pc_from_ucontext.m4
-index 7f09dd7..5f4ee8c 100644
---- a/m4/pc_from_ucontext.m4
-+++ b/m4/pc_from_ucontext.m4
-@@ -34,6 +34,7 @@ AC_DEFUN([AC_PC_FROM_UCONTEXT],
- pc_fields="$pc_fields uc_mcontext.gregs[[R15]]" # Linux (arm old [untested])
- pc_fields="$pc_fields uc_mcontext.arm_pc" # Linux (arm arch 5)
- pc_fields="$pc_fields uc_mcontext.gp_regs[[PT_NIP]]" # Suse SLES 11 (ppc64)
-+ pc_fields="$pc_fields uc_mcontext.gregs[[PT_NIP]]"
- pc_fields="$pc_fields uc_mcontext.mc_eip" # FreeBSD (i386)
- pc_fields="$pc_fields uc_mcontext.mc_srr0" # FreeBSD (powerpc, powerpc64)
- pc_fields="$pc_fields uc_mcontext.mc_rip" # FreeBSD (x86_64 [untested])
-@@ -77,7 +78,8 @@ AC_DEFUN([AC_PC_FROM_UCONTEXT],
- pc_field_found=true)
- elif test "x$ac_cv_header_ucontext_h" = xyes; then
- AC_TRY_COMPILE([#define _GNU_SOURCE 1
-- #include <ucontext.h>],
-+ #include <ucontext.h>
-+ #include <asm/ptrace.h>],
- [ucontext_t u; return u.$pc_field == 0;],
- AC_DEFINE_UNQUOTED(PC_FROM_UCONTEXT, $pc_field,
- How to access the PC from a struct ucontext)
diff --git a/src/getpc.h b/src/getpc.h
-index 9605363..cd8ccfa 100644
+index 87d18b6..c569731 100644
--- a/src/getpc.h
+++ b/src/getpc.h
-@@ -68,6 +68,9 @@
+@@ -68,6 +68,10 @@
typedef ucontext ucontext_t;
#endif
+#if defined(__powerpc__) && !defined(PT_NIP)
+#define PT_NIP 32
+#endif
++
+ namespace tcmalloc {
+ namespace getpc {
- // Take the example where function Foo() calls function Bar(). For
- // many architectures, Bar() is responsible for setting up and tearing
diff --git a/src/stacktrace_powerpc-linux-inl.h b/src/stacktrace_powerpc-linux-inl.h
-index a301a46..efca426 100644
+index 883e7d2..212bd25 100644
--- a/src/stacktrace_powerpc-linux-inl.h
+++ b/src/stacktrace_powerpc-linux-inl.h
@@ -186,7 +186,7 @@ static int GET_STACK_TRACE_OR_FRAMES {
diff --git a/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch b/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
deleted file mode 100644
index b01cba39cd..0000000000
--- a/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 259b420444c52463795b4b582a2ab7511149eea7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 16 Oct 2017 21:26:40 -0700
-Subject: [PATCH] sgidef.h does not exist on musl and its not needed to compile
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
----
- src/base/linux_syscall_support.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/base/linux_syscall_support.h
-+++ b/src/base/linux_syscall_support.h
-@@ -164,7 +164,7 @@ extern "C" {
- #include <endian.h>
- #include <fcntl.h>
-
--#ifdef __mips__
-+#if defined(__mips__) && defined(__glibc__)
- /* Include definitions of the ABI currently in use. */
- #include <sgidefs.h>
- #endif
diff --git a/meta-oe/recipes-support/gperftools/gperftools_2.10.bb b/meta-oe/recipes-support/gperftools/gperftools_2.10.bb
deleted file mode 100644
index 602a7e263a..0000000000
--- a/meta-oe/recipes-support/gperftools/gperftools_2.10.bb
+++ /dev/null
@@ -1,67 +0,0 @@
-SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools"
-HOMEPAGE = "https://github.com/gperftools/gperftools"
-DESCRIPTION = "The gperftools, previously called google-perftools, package contains some \
-utilities to improve and analyze the performance of C++ programs. \
-Included are an optimized thread-caching malloc() and cpu and heap profiling utilities. \
-"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
-
-DEPENDS:append:libc-musl = " libucontext"
-
-SRCREV = "bf8b714bf5075d0a6f2f28504b43095e2b1e11c5"
-SRC_URI = "git://github.com/gperftools/gperftools;branch=master;protocol=https \
- file://0001-Support-Atomic-ops-on-clang.patch \
- file://0001-fix-build-with-musl-libc.patch \
- file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \
- file://disable_libunwind_aarch64.patch \
- file://sgidef.patch \
- "
-
-SRC_URI:append:libc-musl = " file://ppc-musl.patch"
-
-inherit autotools
-
-S = "${WORKDIR}/git"
-
-# On mips, we have the following error.
-# do_page_fault(): sending SIGSEGV to ls for invalid read access from 00000008
-# Segmentation fault (core dumped)
-COMPATIBLE_HOST:mipsarch = "null"
-COMPATIBLE_HOST:riscv64 = "null"
-COMPATIBLE_HOST:riscv32 = "null"
-
-# Disable thumb1
-# {standard input}: Assembler messages:
-# {standard input}:434: Error: lo register required -- `ldr pc,[sp]'
-# Makefile:4538: recipe for target 'src/base/libtcmalloc_la-linuxthreads.lo' failed
-ARM_INSTRUCTION_SET:armv5 = "arm"
-ARM_INSTRUCTION_SET:toolchain-clang:arm = "arm"
-
-EXTRA_OECONF:append:libc-musl:powerpc64le = " --disable-cpu-profiler"
-EXTRA_OECONF:append:libc-musl:powerpc = " --disable-cpu-profiler"
-PACKAGECONFIG ?= "libunwind static"
-PACKAGECONFIG:remove:arm:libc-musl = "libunwind"
-PACKAGECONFIG:remove:riscv64 = "libunwind"
-PACKAGECONFIG:remove:riscv32 = "libunwind"
-
-PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind"
-PACKAGECONFIG[static] = "--enable-static,--disable-static,"
-
-PACKAGE_BEFORE_PN += "libtcmalloc-minimal"
-FILES:libtcmalloc-minimal = "${libdir}/libtcmalloc_minimal*${SOLIBS} ${libdir}/libtcmalloc_minimal_debug*${SOLIBS}"
-
-# pprof tool requires Getopt::long and POSIX perl5 modules.
-# Also runs `objdump` on each cpuprofile data file
-RDEPENDS:${PN} += " \
- binutils \
- curl \
- perl-module-carp \
- perl-module-cwd \
- perl-module-getopt-long \
- perl-module-overloading \
- perl-module-posix \
-"
-
-RDEPENDS:${PN} += "libtcmalloc-minimal (= ${EXTENDPKGV})"
diff --git a/meta-oe/recipes-support/gperftools/gperftools_2.15.bb b/meta-oe/recipes-support/gperftools/gperftools_2.15.bb
new file mode 100644
index 0000000000..bd3b2afaea
--- /dev/null
+++ b/meta-oe/recipes-support/gperftools/gperftools_2.15.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools"
+HOMEPAGE = "https://github.com/gperftools/gperftools"
+DESCRIPTION = "The gperftools, previously called google-perftools, package contains some \
+utilities to improve and analyze the performance of C++ programs. \
+Included are an optimized thread-caching malloc() and cpu and heap profiling utilities. \
+"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
+
+DEPENDS:append:libc-musl = " libucontext"
+
+SRCREV = "365060c4213a48adb27f63d5dfad41b3dfbdd62e"
+SRC_URI = "git://github.com/gperftools/gperftools;branch=master;protocol=https \
+ file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \
+ file://disable_libunwind_aarch64.patch \
+ file://0001-src-mmap_hook.cc-Fix-build-for-32bit-machine.patch \
+ "
+
+SRC_URI:append:libc-musl = " file://ppc-musl.patch"
+
+inherit autotools
+
+S = "${WORKDIR}/git"
+
+# On mips, we have the following error.
+# do_page_fault(): sending SIGSEGV to ls for invalid read access from 00000008
+# Segmentation fault (core dumped)
+COMPATIBLE_HOST:mipsarch = "null"
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
+
+# Disable thumb1
+# {standard input}: Assembler messages:
+# {standard input}:434: Error: lo register required -- `ldr pc,[sp]'
+# Makefile:4538: recipe for target 'src/base/libtcmalloc_la-linuxthreads.lo' failed
+ARM_INSTRUCTION_SET:armv5 = "arm"
+ARM_INSTRUCTION_SET:toolchain-clang:arm = "arm"
+
+EXTRA_OECONF:append:libc-musl:powerpc64le = " --disable-cpu-profiler"
+EXTRA_OECONF:append:libc-musl:powerpc = " --disable-cpu-profiler"
+PACKAGECONFIG ?= "libunwind static"
+PACKAGECONFIG:remove:arm:libc-musl = "libunwind"
+PACKAGECONFIG:remove:riscv64 = "libunwind"
+PACKAGECONFIG:remove:riscv32 = "libunwind"
+
+PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind"
+PACKAGECONFIG[static] = "--enable-static,--disable-static,"
+
+PACKAGE_BEFORE_PN += "libtcmalloc-minimal"
+FILES:libtcmalloc-minimal = "${libdir}/libtcmalloc_minimal*${SOLIBS} ${libdir}/libtcmalloc_minimal_debug*${SOLIBS}"
+
+# pprof tool requires Getopt::long and POSIX perl5 modules.
+# Also runs `objdump` on each cpuprofile data file
+RDEPENDS:${PN} += " \
+ binutils \
+ curl \
+ perl-module-carp \
+ perl-module-cwd \
+ perl-module-getopt-long \
+ perl-module-overloading \
+ perl-module-posix \
+"
+
+RDEPENDS:${PN} += "libtcmalloc-minimal (= ${EXTENDPKGV})"
diff --git a/meta-oe/recipes-support/gpm/gpm_git.bb b/meta-oe/recipes-support/gpm/gpm_git.bb
index cbb51d3477..31503e9c62 100644
--- a/meta-oe/recipes-support/gpm/gpm_git.bb
+++ b/meta-oe/recipes-support/gpm/gpm_git.bb
@@ -8,7 +8,6 @@ LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760"
PV = "1.99.7+git${SRCREV}"
-PR = "r2"
SRCREV = "e82d1a653ca94aa4ed12441424da6ce780b1e530"
DEPENDS = "ncurses bison-native"
diff --git a/meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch b/meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch
index 09a60127a4..5ef39ea33d 100644
--- a/meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch
+++ b/meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] Makefile: Append instead of overriding LDFLAGS
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/gsoap/gsoap/0001-Simplify-check-for-gethostbyname_r.patch b/meta-oe/recipes-support/gsoap/gsoap/0001-Simplify-check-for-gethostbyname_r.patch
new file mode 100644
index 0000000000..6ae02deb24
--- /dev/null
+++ b/meta-oe/recipes-support/gsoap/gsoap/0001-Simplify-check-for-gethostbyname_r.patch
@@ -0,0 +1,96 @@
+From fa923a50790c907725c822b2fc7d63b2da62b4ad Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 12 Mar 2023 13:34:55 -0700
+Subject: [PATCH] Simplify check for gethostbyname_r()
+
+This helps build fix with musl.
+
+Imported from Alpine: https://git.alpinelinux.org/aports/tree/community/gsoap/musl-fixes.patch
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ gsoap/stdsoap2.c | 6 ++----
+ gsoap/stdsoap2.cpp | 10 ++--------
+ 2 files changed, 4 insertions(+), 12 deletions(-)
+
+diff --git a/gsoap/stdsoap2.c b/gsoap/stdsoap2.c
+index 654a1e1..fa31d02 100644
+--- a/gsoap/stdsoap2.c
++++ b/gsoap/stdsoap2.c
+@@ -5463,7 +5463,7 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent,
+ hostent = NULL;
+ soap->errnum = h_errno;
+ }
+-#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && defined(HAVE_GETHOSTBYNAME_R)
++#elif defined(HAVE_GETHOSTBYNAME_R)
+ while ((r = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &hostent, &soap->errnum)) < 0)
+ {
+ if (tmpbuf != soap->tmpbuf)
+@@ -5478,8 +5478,6 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent,
+ if (!tmpbuf)
+ break;
+ }
+-#elif defined(HAVE_GETHOSTBYNAME_R)
+- hostent = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &soap->errnum);
+ #elif defined(VXWORKS)
+ /* vxWorks compatible */
+ /* If the DNS resolver library resolvLib has been configured in the vxWorks
+@@ -23112,7 +23110,7 @@ soap_strerror(struct soap *soap)
+ {
+ #ifndef WIN32
+ # ifdef HAVE_STRERROR_R
+-# if !defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)))
++# if 1
+ err = strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */
+ if (err != 0)
+ soap_strcpy(soap->msgbuf, sizeof(soap->msgbuf), "unknown error");
+diff --git a/gsoap/stdsoap2.cpp b/gsoap/stdsoap2.cpp
+index 654a1e1..5fd5fd6 100644
+--- a/gsoap/stdsoap2.cpp
++++ b/gsoap/stdsoap2.cpp
+@@ -5430,7 +5430,7 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent,
+ {
+ #if (defined(_AIX43) || defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R)
+ struct hostent_data ht_data;
+-#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && defined(HAVE_GETHOSTBYNAME_R)
++#elif defined(HAVE_GETHOSTBYNAME_R)
+ int r;
+ char *tmpbuf = soap->tmpbuf;
+ size_t tmplen = sizeof(soap->tmpbuf);
+@@ -5463,7 +5463,7 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent,
+ hostent = NULL;
+ soap->errnum = h_errno;
+ }
+-#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && defined(HAVE_GETHOSTBYNAME_R)
++#elif defined(HAVE_GETHOSTBYNAME_R)
+ while ((r = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &hostent, &soap->errnum)) < 0)
+ {
+ if (tmpbuf != soap->tmpbuf)
+@@ -5478,8 +5478,6 @@ tcp_gethostbyname(struct soap *soap, const char *addr, struct hostent *hostent,
+ if (!tmpbuf)
+ break;
+ }
+-#elif defined(HAVE_GETHOSTBYNAME_R)
+- hostent = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &soap->errnum);
+ #elif defined(VXWORKS)
+ /* vxWorks compatible */
+ /* If the DNS resolver library resolvLib has been configured in the vxWorks
+@@ -23112,13 +23110,9 @@ soap_strerror(struct soap *soap)
+ {
+ #ifndef WIN32
+ # ifdef HAVE_STRERROR_R
+-# if !defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)))
+ err = strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */
+ if (err != 0)
+ soap_strcpy(soap->msgbuf, sizeof(soap->msgbuf), "unknown error");
+-# else
+- return strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* GNU-specific */
+-# endif
+ # else
+ return strerror(err);
+ # endif
+--
+2.39.2
+
diff --git a/meta-oe/recipes-support/gsoap/gsoap_2.8.106.bb b/meta-oe/recipes-support/gsoap/gsoap_2.8.106.bb
deleted file mode 100644
index 15c0f6faf8..0000000000
--- a/meta-oe/recipes-support/gsoap/gsoap_2.8.106.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-DESCRIPTION = "The gSOAP toolkit provides a unique SOAP-to-C/C++ language binding \
-for the development of SOAP Web Services and clients."
-SECTION = "devel"
-LICENSE = "GPL-2.0-with-OpenSSL-exception"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4f40a941379143186f9602242c3fb729 \
- file://GPLv2_license.txt;md5=a33672dbe491b6517750a0389063508b"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}2/${BPN}_${PV}.zip \
- "
-SRC_URI[md5sum] = "0925d25bc455047b01d4fe9814d30173"
-SRC_URI[sha256sum] = "4e74838baf5437e95ae17aa3efb48bd0621f483bff4424f6255fcf327ff80765"
-
-inherit autotools
-
-BBCLASSEXTEND = "native"
-
-S = "${WORKDIR}/${BPN}-2.8"
-
-PARALLEL_MAKE = ""
-
-EXTRA_OEMAKE:class-target = "SOAP=${STAGING_BINDIR_NATIVE}/soapcpp2"
-
-DEPENDS = "openssl zlib flex bison bison-native"
-DEPENDS:append:class-target = " gsoap-native"
-
-do_install:append() {
- install -d ${D}${libdir}
- for lib in libgsoapssl libgsoapssl++ libgsoap libgsoapck++ libgsoap++ libgsoapck
- do
- oe_libinstall -C gsoap $lib ${D}${libdir}
- done
-}
-
-do_install:class-native() {
- oe_runmake DESTDIR=${D} BINDIR=${D}${bindir} install
-}
-
-FILES:${PN} = "${bindir}/wsdl2h ${bindir}/soapcpp2"
-FILES:${PN} += "${datadir}"
-FILES:${PN}-staticdev = "${libdir}"
-FILES:${PN}-dev = "${includedir}"
-RRECOMMENDS:${PN}-dev = "${PN}-staticdev"
diff --git a/meta-oe/recipes-support/gsoap/gsoap_2.8.126.bb b/meta-oe/recipes-support/gsoap/gsoap_2.8.126.bb
new file mode 100644
index 0000000000..6d8b53d308
--- /dev/null
+++ b/meta-oe/recipes-support/gsoap/gsoap_2.8.126.bb
@@ -0,0 +1,42 @@
+DESCRIPTION = "The gSOAP toolkit provides a unique SOAP-to-C/C++ language binding \
+for the development of SOAP Web Services and clients."
+SECTION = "devel"
+LICENSE = "GPL-2.0-with-OpenSSL-exception"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4f40a941379143186f9602242c3fb729 \
+ file://GPLv2_license.txt;md5=a33672dbe491b6517750a0389063508b"
+
+SRC_URI = "https://prdownloads.sourceforge.net/${BPN}2/${BPN}_${PV}.zip"
+SRC_URI:append:libc-musl = " file://0001-Simplify-check-for-gethostbyname_r.patch"
+SRC_URI[sha256sum] = "b65190ebf8c2517d6fafbdc2000bc7bc650d921a02f4aa53eb1e3df267592c4a"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
+
+S = "${WORKDIR}/${BPN}-2.8"
+
+EXTRA_OECONF += "--enable-ipv6 --enable-c-locale"
+PARALLEL_MAKE = ""
+
+EXTRA_OEMAKE:class-target = "SOAP=${STAGING_BINDIR_NATIVE}/soapcpp2"
+
+DEPENDS = "openssl zlib flex bison bison-native"
+DEPENDS:append:class-target = " gsoap-native"
+
+do_install:append() {
+ install -d ${D}${libdir}
+ for lib in libgsoapssl libgsoapssl++ libgsoap libgsoapck++ libgsoap++ libgsoapck
+ do
+ oe_libinstall -C gsoap $lib ${D}${libdir}
+ done
+}
+
+do_install:class-native() {
+ oe_runmake DESTDIR=${D} BINDIR=${D}${bindir} install
+}
+
+FILES:${PN} = "${bindir}/wsdl2h ${bindir}/soapcpp2"
+FILES:${PN} += "${datadir}"
+FILES:${PN}-staticdev = "${libdir}"
+FILES:${PN}-dev = "${includedir}"
+RRECOMMENDS:${PN}-dev = "${PN}-staticdev"
diff --git a/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch b/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch
index 1ec6a61b31..1a541e32fd 100644
--- a/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch
+++ b/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-0.3-beta15-autodetect-717479.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Auto-detect disks if none specified
Refer to:
diff --git a/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch b/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch
index 8f6b9c3c4b..78de64c99d 100644
--- a/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch
+++ b/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp-no-nls-support.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -ru hddtemp-0.3-beta15.orig/configure.in hddtemp-0.3-beta15/configure.in
--- hddtemp-0.3-beta15.orig/configure.in 2005-10-17 20:14:19.000000000 +0100
+++ hddtemp-0.3-beta15/configure.in 2008-06-27 00:00:46.000000000 +0100
diff --git a/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff b/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff
index 057b1fd1d3..60953381a1 100644
--- a/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff
+++ b/meta-oe/recipes-support/hddtemp/hddtemp/hddtemp_0.3-beta15-52.diff
@@ -6,7 +6,7 @@ Filtered with:
filterdiff -p1 -x README -x 'debian/*'
-Upstream-Status: unmaintained
+Upstream-Status: Inappropriate [unmaintained]
Index: hddtemp-0.3-beta15/doc/hddtemp.8
===================================================================
diff --git a/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb b/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
index e9d30977fe..b204ea4dd6 100644
--- a/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
+++ b/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
@@ -2,7 +2,6 @@ SUMMARY = "Hard disk temperature monitor daemon"
SECTION = "console/network"
LICENSE = "GPL-2.0-or-later"
-PR = "r1"
SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/hddtemp/hddtemp-0.3-beta15.tar.bz2 \
file://hddtemp-no-nls-support.patch \
diff --git a/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch b/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch
index b896770d91..68d9c3a3cf 100644
--- a/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch
+++ b/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch
@@ -1,58 +1,96 @@
-From 39572baac462f16b39dc385751d5c642646718d3 Mon Sep 17 00:00:00 2001
+From 4fa437782261c0da785d4574ad3a03700f624e66 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
-Date: Wed, 4 Aug 2021 17:05:10 +0800
+Date: Tue, 19 Sep 2023 02:56:09 +0000
Subject: [PATCH] cmake: remove build flags
-Remove the build flags to improve reproducibility.
+Don't generate the build host related info and reemove the build flags
+to improve reproducibility.
-Upstream-Status: Inappropriate[oe specific]
+Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
- config/cmake/libh5cc.in | 2 +-
- config/cmake/libhdf5.settings.cmake.in | 12 ++++++------
- 2 files changed, 7 insertions(+), 7 deletions(-)
+ config/cmake/libhdf5.settings.cmake.in | 18 +++++++++---------
+ src/H5make_libsettings.c | 17 -----------------
+ 2 files changed, 9 insertions(+), 26 deletions(-)
---- a/config/cmake/libh5cc.in
-+++ b/config/cmake/libh5cc.in
-@@ -45,7 +45,7 @@ for arg in $@ ; do
- exit $status
- ;;
- *)
-- @_PKG_CONFIG_COMPILER@ $@ `pkg-config --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@`
-+ `pkg-config --define-variable=prefix=$dir --cflags --libs @_PKG_CONFIG_LIBNAME@-@_PKG_CONFIG_VERSION@` $@
- status=$?
- exit $status
- ;;
+diff --git a/config/cmake/libhdf5.settings.cmake.in b/config/cmake/libhdf5.settings.cmake.in
+index f60f0de..f4433c0 100644
--- a/config/cmake/libhdf5.settings.cmake.in
+++ b/config/cmake/libhdf5.settings.cmake.in
-@@ -27,14 +27,14 @@ Linking Options:
+@@ -23,23 +23,23 @@ Linking Options:
+ ----------------
+ Libraries: @BUILD_NAME_EXT@
+ Statically Linked Executables: @BUILD_STATIC_EXECS@
+- LDFLAGS: @CMAKE_SHARED_LINKER_FLAGS@
++ LDFLAGS:
H5_LDFLAGS: @H5_LDFLAGS@
AM_LDFLAGS: @AM_LDFLAGS@
Extra libraries: @LINK_LIBS@
- Archiver: @CMAKE_AR@
+- AR_FLAGS:
- Ranlib: @CMAKE_RANLIB@
+ Archiver:
++ AR_FLAGS:
+ Ranlib:
Languages:
----------
C: YES
- C Compiler: @CMAKE_C_COMPILER@ @CMAKE_C_COMPILER_VERSION@
-- CPPFLAGS: @CPPFLAGS@
+ C Compiler:
-+ CPPFLAGS:
+ CPPFLAGS: @CPPFLAGS@
H5_CPPFLAGS: @H5_CPPFLAGS@
AM_CPPFLAGS: @AM_CPPFLAGS@
- CFLAGS: @CMAKE_C_FLAGS@
-@@ -52,8 +52,8 @@ Languages:
- @BUILD_FORTRAN_CONDITIONAL_TRUE@ Static Fortran Library: @H5_ENABLE_STATIC_LIB@
+- CFLAGS: @CMAKE_C_FLAGS@
+- H5_CFLAGS: @HDF5_CMAKE_C_FLAGS@
++ CFLAGS:
++ H5_CFLAGS:
+ AM_CFLAGS: @AM_CFLAGS@
+ Shared C Library: @H5_ENABLE_SHARED_LIB@
+ Static C Library: @H5_ENABLE_STATIC_LIB@
+@@ -51,11 +51,11 @@ Languages:
+ AM Fortran Flags: @AM_FCFLAGS@
+ Shared Fortran Library: @H5_ENABLE_SHARED_LIB@
+ Static Fortran Library: @H5_ENABLE_STATIC_LIB@
+- Module Directory: @CMAKE_Fortran_MODULE_DIRECTORY@
++ Module Directory:
C++: @HDF5_BUILD_CPP_LIB@
--@BUILD_CXX_CONDITIONAL_TRUE@ C++ Compiler: @CMAKE_CXX_COMPILER@ @CMAKE_CXX_COMPILER_VERSION@
--@BUILD_CXX_CONDITIONAL_TRUE@ C++ Flags: @CMAKE_CXX_FLAGS@
-+@BUILD_CXX_CONDITIONAL_TRUE@ C++ Compiler:
-+@BUILD_CXX_CONDITIONAL_TRUE@ C++ Flags:
- @BUILD_CXX_CONDITIONAL_TRUE@ H5 C++ Flags: @HDF5_CMAKE_CXX_FLAGS@
- @BUILD_CXX_CONDITIONAL_TRUE@ AM C++ Flags: @AM_CXXFLAGS@
- @BUILD_CXX_CONDITIONAL_TRUE@ Shared C++ Library: @H5_ENABLE_SHARED_LIB@
+ C++ Compiler: @CMAKE_CXX_COMPILER@ @CMAKE_CXX_COMPILER_VERSION@
+- C++ Flags: @CMAKE_CXX_FLAGS@
++ C++ Flags:
+ H5 C++ Flags: @HDF5_CMAKE_CXX_FLAGS@
+ AM C++ Flags: @AM_CXXFLAGS@
+ Shared C++ Library: @H5_ENABLE_SHARED_LIB@
+diff --git a/src/H5make_libsettings.c b/src/H5make_libsettings.c
+index 2661288..7c0f84f 100644
+--- a/src/H5make_libsettings.c
++++ b/src/H5make_libsettings.c
+@@ -205,23 +205,6 @@ information about the library build configuration\n";
+ fprintf(rawoutstream, "/* Generated automatically by H5make_libsettings -- do not edit */\n\n\n");
+ fputs(FileHeader, rawoutstream); /*the copyright notice--see top of this file */
+
+- fprintf(rawoutstream, " *\n * Created:\t\t%s %2d, %4d\n", month_name[tm->tm_mon], tm->tm_mday,
+- 1900 + tm->tm_year);
+- if (pwd || real_name[0] || host_name[0]) {
+- fprintf(rawoutstream, " *\t\t\t");
+- if (real_name[0])
+- fprintf(rawoutstream, "%s <", real_name);
+-#ifdef H5_HAVE_GETPWUID
+- if (pwd)
+- fputs(pwd->pw_name, rawoutstream);
+-#endif
+- if (host_name[0])
+- fprintf(rawoutstream, "@%s", host_name);
+- if (real_name[0])
+- fprintf(rawoutstream, ">");
+- fputc('\n', rawoutstream);
+- }
+-
+ fprintf(rawoutstream, " *\n * Purpose:\t\t");
+
+ for (s = purpose; *s; s++) {
+--
+2.35.5
+
diff --git a/meta-oe/recipes-support/hdf5/files/0002-Remove-suffix-shared-from-shared-library-name.patch b/meta-oe/recipes-support/hdf5/files/0002-Remove-suffix-shared-from-shared-library-name.patch
index de052451bd..f0eb05a1e7 100644
--- a/meta-oe/recipes-support/hdf5/files/0002-Remove-suffix-shared-from-shared-library-name.patch
+++ b/meta-oe/recipes-support/hdf5/files/0002-Remove-suffix-shared-from-shared-library-name.patch
@@ -12,7 +12,7 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -196,19 +196,19 @@ set (HDF5_HL_F90_C_LIB_TARGET "${HDF
+@@ -191,19 +191,19 @@ set (HDF5_HL_F90_C_LIB_TARGET "${HDF
set (HDF5_JAVA_JNI_LIB_TARGET "${HDF5_JAVA_JNI_LIB_CORENAME}")
set (HDF5_JAVA_HDF5_LIB_TARGET "${HDF5_JAVA_HDF5_LIB_CORENAME}")
set (HDF5_JAVA_TEST_LIB_TARGET "${HDF5_JAVA_TEST_LIB_CORENAME}")
diff --git a/meta-oe/recipes-support/hdf5/hdf5_1.13.2.bb b/meta-oe/recipes-support/hdf5/hdf5_1.13.2.bb
deleted file mode 100644
index 80611c6714..0000000000
--- a/meta-oe/recipes-support/hdf5/hdf5_1.13.2.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "Management suite for extremely large and complex data collections"
-DESCRIPTION = "Unique technology suite that makes possible the management of \
-extremely large and complex data collections"
-HOMEPAGE = "https://www.hdfgroup.org/"
-SECTION = "libs"
-
-LICENSE = "HDF5"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ac1039f6bf7c9ab2b3693836f46d0735"
-
-inherit cmake siteinfo qemu
-
-DEPENDS += "qemu-native"
-
-SRC_URI = " \
- https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.13/hdf5-${PV}/src/${BPN}-${PV}.tar.bz2 \
- file://0002-Remove-suffix-shared-from-shared-library-name.patch \
- file://0001-cmake-remove-build-flags.patch \
-"
-SRC_URI[sha256sum] = "9c51b3da426977ec622a43dca8adaf4e81eabf838c1ff80c6225ad1d3ed54b5c"
-
-FILES:${PN} += "${libdir}/libhdf5.settings ${datadir}/*"
-
-EXTRA_OECMAKE = " \
- -DHDF5_INSTALL_CMAKE_DIR=${libdir}/cmake \
- -DCMAKE_INSTALL_PREFIX='${prefix}' \
- -DHDF5_INSTALL_LIB_DIR='${baselib}' \
-"
-EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper "
-
-gen_emu() {
- # Write out a qemu wrapper that will be used by cmake
- # so that it can run target helper binaries through that.
- qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
- cat > ${WORKDIR}/qemuwrapper << EOF
-#!/bin/sh
-$qemu_binary "\$@"
-EOF
- chmod +x ${WORKDIR}/qemuwrapper
-}
-
-do_unpack[postfuncs] += "gen_emu"
-
-do_install:append() {
- # Used for generating config files on target
- install -m 755 ${B}/bin/H5detect ${D}${bindir}
- install -m 755 ${B}/bin/H5make_libsettings ${D}${bindir}
-}
-
-BBCLASSEXTEND = "native"
-
-SRC_DISTRIBUTE_LICENSES += "HDF5"
-
-# h5fuse.sh script needs bash
-RDEPENDS:${PN} += "bash"
diff --git a/meta-oe/recipes-support/hdf5/hdf5_1.14.2.bb b/meta-oe/recipes-support/hdf5/hdf5_1.14.2.bb
new file mode 100644
index 0000000000..b8a81bb0b7
--- /dev/null
+++ b/meta-oe/recipes-support/hdf5/hdf5_1.14.2.bb
@@ -0,0 +1,62 @@
+SUMMARY = "Management suite for extremely large and complex data collections"
+DESCRIPTION = "Unique technology suite that makes possible the management of \
+extremely large and complex data collections"
+HOMEPAGE = "https://www.hdfgroup.org/"
+SECTION = "libs"
+
+LICENSE = "HDF5"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9ba0f3d878ab6c2403c86e9b0362d998"
+
+inherit cmake siteinfo qemu multilib_header multilib_script
+
+DEPENDS += "qemu-native zlib"
+
+SRC_URI = " \
+ https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-${PV}/src/${BPN}-${PV}.tar.bz2 \
+ file://0002-Remove-suffix-shared-from-shared-library-name.patch \
+ file://0001-cmake-remove-build-flags.patch \
+"
+SRC_URI[sha256sum] = "ea3c5e257ef322af5e77fc1e52ead3ad6bf3bb4ac06480dd17ee3900d7a24cfb"
+
+FILES:${PN} += "${libdir}/libhdf5.settings ${datadir}/*"
+
+EXTRA_OECMAKE = " \
+ -DHDF5_INSTALL_CMAKE_DIR=${libdir}/cmake \
+ -DCMAKE_INSTALL_PREFIX='${prefix}' \
+ -DHDF5_INSTALL_LIB_DIR='${baselib}' \
+"
+EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper "
+
+gen_emu() {
+ # Write out a qemu wrapper that will be used by cmake
+ # so that it can run target helper binaries through that.
+ qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
+ cat > ${WORKDIR}/qemuwrapper << EOF
+#!/bin/sh
+$qemu_binary "\$@"
+EOF
+ chmod +x ${WORKDIR}/qemuwrapper
+}
+
+do_unpack[postfuncs] += "gen_emu"
+
+MULTILIB_SCRIPTS += "${PN}:${bindir}/h5cc \
+ ${PN}:${bindir}/h5hlcc \
+"
+
+do_install:append() {
+ # Used for generating config files on target
+ install -m 755 ${B}/bin/H5detect ${D}${bindir}
+ install -m 755 ${B}/bin/H5make_libsettings ${D}${bindir}
+ oe_multilib_header H5pubconf.h
+ # remove the buildpath
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/pkgconfig/hdf5.pc
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/hdf5-targets.cmake
+ sed -i -e 's|${RECIPE_SYSROOT_NATIVE}||g' ${D}${bindir}/h5hlcc
+ sed -i -e 's|${RECIPE_SYSROOT_NATIVE}||g' ${D}${bindir}/h5cc
+}
+
+BBCLASSEXTEND = "native"
+
+# h5fuse.sh script needs bash
+RDEPENDS:${PN} += "bash"
diff --git a/meta-oe/recipes-support/hidapi/hidapi_0.14.0.bb b/meta-oe/recipes-support/hidapi/hidapi_0.14.0.bb
new file mode 100644
index 0000000000..c7a487ba5c
--- /dev/null
+++ b/meta-oe/recipes-support/hidapi/hidapi_0.14.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A Simple library for communicating with USB and Bluetooth HID devices"
+HOMEPAGE = "http://www.signal11.us/oss/hidapi/"
+SECTION = "libs"
+
+LICENSE = "BSD-3-Clause | GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7c3949a631240cb6c31c50f3eb696077"
+
+DEPENDS = "libusb udev"
+RDEPENDS:${PN}:append:libc-glibc = " glibc-gconv-utf-16"
+
+inherit autotools pkgconfig
+
+SRC_URI = "git://github.com/libusb/hidapi.git;protocol=https;branch=master"
+SRCREV = "d3013f0af3f4029d82872c1a9487ea461a56dee4"
+S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/hidapi/hidapi_git.bb b/meta-oe/recipes-support/hidapi/hidapi_git.bb
deleted file mode 100644
index 4aa58ec7f9..0000000000
--- a/meta-oe/recipes-support/hidapi/hidapi_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "A Simple library for communicating with USB and Bluetooth HID devices"
-AUTHOR = "Alan Ott"
-HOMEPAGE = "http://www.signal11.us/oss/hidapi/"
-SECTION = "libs"
-
-LICENSE = "BSD-3-Clause | GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7c3949a631240cb6c31c50f3eb696077"
-
-DEPENDS = "libusb udev"
-RDEPENDS:${PN}:append:libc-glibc = " glibc-gconv-utf-16"
-
-inherit autotools pkgconfig
-
-SRC_URI = "git://github.com/libusb/hidapi.git;protocol=https;branch=master"
-PV = "0.12.0"
-SRCREV = "76108294092c023a4ece99eb3219559cea0d5066"
-S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/hstr/files/0001-Use-OE-specific-checks-for-ncurses.patch b/meta-oe/recipes-support/hstr/files/0001-Use-OE-specific-checks-for-ncurses.patch
index d7eb558a9f..421d824ee0 100644
--- a/meta-oe/recipes-support/hstr/files/0001-Use-OE-specific-checks-for-ncurses.patch
+++ b/meta-oe/recipes-support/hstr/files/0001-Use-OE-specific-checks-for-ncurses.patch
@@ -3,7 +3,7 @@ From: Changqing Li <changqing.li@windriver.com>
Date: Wed, 2 Mar 2022 06:22:15 +0000
Subject: [PATCH] Use OE-specific checks for ncurses
-Upstream-Status: Inappropriate[oe specific]
+Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
diff --git a/meta-oe/recipes-support/hstr/files/0001-configure.ac-Don-t-use-AC_CHECK_FILE.patch b/meta-oe/recipes-support/hstr/files/0001-configure.ac-Don-t-use-AC_CHECK_FILE.patch
index e9b44c4c91..832d768ff3 100644
--- a/meta-oe/recipes-support/hstr/files/0001-configure.ac-Don-t-use-AC_CHECK_FILE.patch
+++ b/meta-oe/recipes-support/hstr/files/0001-configure.ac-Don-t-use-AC_CHECK_FILE.patch
@@ -7,7 +7,7 @@ AC_CHECK_FILE is not suitable for cross-compile, so
remove it to fix configure error:
cannot check for file existence when cross compiling
-Upstream-Status: Inappropriate[oe specific]
+Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
diff --git a/meta-oe/recipes-support/hstr/hstr_2.5.0.bb b/meta-oe/recipes-support/hstr/hstr_2.5.0.bb
deleted file mode 100644
index 6c9f65e829..0000000000
--- a/meta-oe/recipes-support/hstr/hstr_2.5.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "bash and zsh shell history suggest box - easily view, navigate, search and manage your command history."
-HOMEPAGE = "http://dvorka.github.io/hstr/"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
-
-DEPENDS = "ncurses readline"
-
-SRC_URI = "https://github.com/dvorka/hstr/releases/download/2.5/hstr-${PV}-tarball.tgz \
- file://0001-configure.ac-Don-t-use-AC_CHECK_FILE.patch \
- file://0001-Use-OE-specific-checks-for-ncurses.patch"
-
-S = "${WORKDIR}/${BPN}"
-
-SRC_URI[sha256sum] = "44bb6d93ef064536218f8ae5464772861bfccfe364a436397d9f770207cd306d"
-
-inherit autotools pkgconfig bash-completion
diff --git a/meta-oe/recipes-support/hstr/hstr_3.1.0.bb b/meta-oe/recipes-support/hstr/hstr_3.1.0.bb
new file mode 100644
index 0000000000..a641feef6f
--- /dev/null
+++ b/meta-oe/recipes-support/hstr/hstr_3.1.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "bash and zsh shell history suggest box - easily view, navigate, search and manage your command history."
+HOMEPAGE = "http://dvorka.github.io/hstr/"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
+
+DEPENDS = "ncurses readline"
+
+SRC_URI = "https://github.com/dvorka/hstr/releases/download/3.1/hstr-${PV}-tarball.tgz \
+ file://0001-configure.ac-Don-t-use-AC_CHECK_FILE.patch \
+ file://0001-Use-OE-specific-checks-for-ncurses.patch"
+
+S = "${WORKDIR}/${BPN}"
+
+SRC_URI[sha256sum] = "4dabf61f045f022bac8bc909e5fd96041af6c53df56d97dfa3cfbf49af4453a5"
+
+inherit autotools pkgconfig bash-completion
diff --git a/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch b/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch
index 2760162acf..3d113efa15 100644
--- a/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch
+++ b/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch
@@ -1,4 +1,4 @@
-From 98ed72177c49a8015a443b3ec272fee3fb5a4eb3 Mon Sep 17 00:00:00 2001
+From 0d49ee6416e389b9a7ba693588c2eaf129306a01 Mon Sep 17 00:00:00 2001
From: Paul Barker <pbarker@toganlabs.com>
Date: Sun, 5 Nov 2017 22:07:30 +0000
Subject: [PATCH] htop: Update to v2.0.2
@@ -9,18 +9,17 @@ ncurses*-config applications.
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
-Upstream-status: Inappropriate
- (`ncurses*-config` can be used outside of OpenEmbedded)
+Upstream-Status: Inappropriate [`ncurses*-config` can be used outside of OpenEmbedded]
---
configure.ac | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 0e69096..d20014f 100644
+index e4df238a..2a31b201 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -322,10 +322,10 @@ AC_ARG_ENABLE([unicode],
+@@ -391,10 +391,10 @@ AC_ARG_ENABLE([unicode],
[],
[enable_unicode=yes])
if test "x$enable_unicode" = xyes; then
@@ -35,7 +34,7 @@ index 0e69096..d20014f 100644
HTOP_CHECK_LIB([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW],
HTOP_CHECK_LIB([ncursesw], [addnwstr], [HAVE_LIBNCURSESW],
HTOP_CHECK_LIB([ncurses], [addnwstr], [HAVE_LIBNCURSESW],
-@@ -342,8 +342,8 @@ if test "x$enable_unicode" = xyes; then
+@@ -416,8 +416,8 @@ if test "x$enable_unicode" = xyes; then
# (at this point we already link against a working ncurses library with wide character support)
AC_SEARCH_LIBS([keypad], [tinfow tinfo])
else
diff --git a/meta-oe/recipes-support/htop/htop_3.2.1.bb b/meta-oe/recipes-support/htop/htop_3.2.1.bb
deleted file mode 100644
index 233a1eeb57..0000000000
--- a/meta-oe/recipes-support/htop/htop_3.2.1.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Interactive process viewer"
-HOMEPAGE = "https://htop.dev"
-SECTION = "console/utils"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "ncurses"
-
-SRC_URI = "git://github.com/htop-dev/htop.git;branch=main;protocol=https \
- file://0001-Use-pkg-config.patch \
-"
-SRCREV = "4e6ec4a0873c56ca9de63eadf730c5bd677bd8da"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= " \
- unicode \
- affinity \
- delayacct \
-"
-PACKAGECONFIG[unicode] = "--enable-unicode,--disable-unicode"
-PACKAGECONFIG[affinity] = "--enable-affinity,--disable-affinity,,,,hwloc"
-PACKAGECONFIG[unwind] = "--enable-unwind,--disable-unwind,libunwind"
-PACKAGECONFIG[hwloc] = "--enable-hwloc,--disable-hwloc,hwloc,,,affinity"
-PACKAGECONFIG[openvz] = "--enable-openvz,--disable-openvz"
-PACKAGECONFIG[vserver] = "--enable-vserver,--disable-vserver"
-PACKAGECONFIG[ancient-vserver] = "--enable-ancient-vserver,--disable-ancient-vserver"
-PACKAGECONFIG[capabilities] = "--enable-capabilities,--disable-capabilities,libcap"
-PACKAGECONFIG[delayacct] = "--enable-delayacct,--disable-delayacct,libnl"
-PACKAGECONFIG[sensors] = "--enable-sensors,--disable-sensors,lmsensors,lmsensors-libsensors"
-
-FILES:${PN} += "${datadir}/icons/hicolor/scalable/apps/htop.svg"
-
-RDEPENDS:${PN} += "ncurses-terminfo-base"
diff --git a/meta-oe/recipes-support/htop/htop_3.3.0.bb b/meta-oe/recipes-support/htop/htop_3.3.0.bb
new file mode 100644
index 0000000000..cd5b766f0f
--- /dev/null
+++ b/meta-oe/recipes-support/htop/htop_3.3.0.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Interactive process viewer"
+HOMEPAGE = "https://htop.dev"
+SECTION = "console/utils"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "ncurses"
+
+SRC_URI = "git://github.com/htop-dev/htop.git;branch=main;protocol=https \
+ file://0001-Use-pkg-config.patch \
+"
+SRCREV = "68c970c7ef4a0682760ed570b3d82388ae7ccf54"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= " \
+ unicode \
+ affinity \
+ delayacct \
+"
+PACKAGECONFIG[unicode] = "--enable-unicode,--disable-unicode"
+PACKAGECONFIG[affinity] = "--enable-affinity,--disable-affinity,,,,hwloc"
+PACKAGECONFIG[unwind] = "--enable-unwind,--disable-unwind,libunwind"
+PACKAGECONFIG[hwloc] = "--enable-hwloc,--disable-hwloc,hwloc,,,affinity"
+PACKAGECONFIG[openvz] = "--enable-openvz,--disable-openvz"
+PACKAGECONFIG[vserver] = "--enable-vserver,--disable-vserver"
+PACKAGECONFIG[ancient-vserver] = "--enable-ancient-vserver,--disable-ancient-vserver"
+PACKAGECONFIG[capabilities] = "--enable-capabilities,--disable-capabilities,libcap"
+PACKAGECONFIG[delayacct] = "--enable-delayacct,--disable-delayacct,libnl"
+PACKAGECONFIG[sensors] = "--enable-sensors,--disable-sensors,lmsensors,lmsensors-libsensors"
+
+FILES:${PN} += "${datadir}/icons/hicolor/scalable/apps/htop.svg"
+
+RDEPENDS:${PN} += "ncurses-terminfo-base"
diff --git a/meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb b/meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb
index 047acf28db..0ec426afb9 100644
--- a/meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb
+++ b/meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb
@@ -133,7 +133,7 @@ LIC_FILES_CHKSUM = " \
RDEPENDS:${PN} = "hunspell"
-PV = "0.0.0+git${SRCPV}"
+PV = "0.0.0+git"
SRCREV = "820a65e539e34a3a8c2a855d2450b84745c624ee"
SRC_URI = "git://github.com/wooorm/dictionaries.git;branch=master;protocol=https"
diff --git a/meta-oe/recipes-support/hunspell/hunspell_1.7.1.bb b/meta-oe/recipes-support/hunspell/hunspell_1.7.1.bb
deleted file mode 100644
index 54bbc2f22c..0000000000
--- a/meta-oe/recipes-support/hunspell/hunspell_1.7.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "A spell checker and morphological analyzer library"
-HOMEPAGE = "http://hunspell.github.io/"
-LICENSE = "GPL-2.0-only | LGPL-2.1-only"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=75859989545e37968a99b631ef42722e \
- file://COPYING.LESSER;md5=c96ca6c1de8adc025adfada81d06fba5 \
-"
-
-SRCREV = "1180421f50f211984211e968eb6801ffd3390b8f"
-SRC_URI = "git://github.com/${BPN}/${BPN}.git;branch=master;protocol=https"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig gettext
-
-RDEPENDS:${PN} = "perl"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/hunspell/hunspell_1.7.2.bb b/meta-oe/recipes-support/hunspell/hunspell_1.7.2.bb
new file mode 100644
index 0000000000..afe75472a5
--- /dev/null
+++ b/meta-oe/recipes-support/hunspell/hunspell_1.7.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A spell checker and morphological analyzer library"
+HOMEPAGE = "http://hunspell.github.io/"
+LICENSE = "GPL-2.0-only | LGPL-2.1-only"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=75859989545e37968a99b631ef42722e \
+ file://COPYING.LESSER;md5=c96ca6c1de8adc025adfada81d06fba5 \
+"
+
+SRCREV = "2969be996acad84b91ab3875b1816636fe61a40e"
+SRC_URI = "git://github.com/${BPN}/${BPN}.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig gettext
+
+# ispellaff2myspell: A program to convert ispell affix tables to myspell format
+PACKAGES =+ "${PN}-ispell"
+FILES:${PN}-ispell = "${bindir}/ispellaff2myspell"
+RDEPENDS:${PN}-ispell = "perl"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/hwdata/hwdata_0.362.bb b/meta-oe/recipes-support/hwdata/hwdata_0.362.bb
deleted file mode 100644
index e408c4db5a..0000000000
--- a/meta-oe/recipes-support/hwdata/hwdata_0.362.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "Hardware identification and configuration data"
-HOMEPAGE = "https://github.com/vcrhonek/hwdata"
-SECTION = "System/Base"
-
-LICENSE = "GPL-2.0-or-later | XFree86-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
-
-SRCREV = "8a3647e5da0a157cbf1bff1845b0cdaf1ce1bdb0"
-SRC_URI = "git://github.com/vcrhonek/${BPN}.git;branch=master;protocol=https"
-S = "${WORKDIR}/git"
-
-inherit allarch
-
-do_configure() {
- ${S}/configure --datadir=${datadir} --libdir=${libdir}
-}
-
-do_compile[noexec] = "1"
-
-do_install() {
- oe_runmake install DESTDIR=${D}
-}
-
-FILES:${PN} = "${libdir}/* \
- ${datadir}/* "
diff --git a/meta-oe/recipes-support/hwdata/hwdata_0.380.bb b/meta-oe/recipes-support/hwdata/hwdata_0.380.bb
new file mode 100644
index 0000000000..e9b5afe479
--- /dev/null
+++ b/meta-oe/recipes-support/hwdata/hwdata_0.380.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Hardware identification and configuration data"
+HOMEPAGE = "https://github.com/vcrhonek/hwdata"
+SECTION = "System/Base"
+
+LICENSE = "GPL-2.0-or-later | XFree86-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
+
+SRCREV = "d0cbfddb1fec4bb1a395373396c972e5f210bcf8"
+SRC_URI = "git://github.com/vcrhonek/${BPN}.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit allarch
+
+do_configure() {
+ ${S}/configure --datadir=${datadir} --libdir=${libdir}
+}
+
+do_compile[noexec] = "1"
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
+
+FILES:${PN} = "${libdir}/* \
+ ${datadir}/* "
diff --git a/meta-oe/recipes-support/idevicerestore/idevicerestore_git.bb b/meta-oe/recipes-support/idevicerestore/idevicerestore_git.bb
index d7c76a5971..8218b08084 100644
--- a/meta-oe/recipes-support/idevicerestore/idevicerestore_git.bb
+++ b/meta-oe/recipes-support/idevicerestore/idevicerestore_git.bb
@@ -8,9 +8,9 @@ HOMEPAGE = "http://www.libimobiledevice.org/"
DEPENDS = "libirecovery libimobiledevice libzip curl libimobiledevice-glue openssl"
-PV = "1.0.1+git${SRCPV}"
+PV = "1.0.1+git"
-SRCREV = "7d622d916be16f2df5a72bf53a42f3a326bbfaa4"
+SRCREV = "ecae6c6e8ca6b6bad080a1c73f10ffd0e67d75a7"
SRC_URI = "git://github.com/libimobiledevice/idevicerestore;protocol=https;branch=master"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/iksemel/iksemel_1.5.bb b/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
index e01c0897bb..017e7d26a6 100644
--- a/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
+++ b/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
@@ -5,7 +5,7 @@ LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
SRCREV = "978b733462e41efd5db72bc9974cb3b0d1d5f6fa"
-PV = "1.5+git${SRCPV}"
+PV = "1.5+git"
SRC_URI = "git://github.com/meduketto/iksemel.git;protocol=https;branch=master \
file://fix-configure-option-parsing.patch \
diff --git a/meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb b/meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb
deleted file mode 100644
index 010288b0d6..0000000000
--- a/meta-oe/recipes-support/imagemagick/imagemagick_7.0.10.bb
+++ /dev/null
@@ -1,92 +0,0 @@
-SUMMARY = "ImageMagick is an image conversion toolkit"
-SECTION = "console/utils"
-HOMEPAGE = "https://www.imagemagick.org/"
-DESCRIPTION = "ImageMagick is a collection of tools for displaying, converting, and \
-editing raster and vector image files. It can read and write over 200 image file formats."
-LICENSE = "ImageMagick"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b97c12a9213df1499565d69b92c73dd7 \
- file://NOTICE;md5=d8b9d2ccf273687ad12ebd06e5d8478f"
-# FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results.
-DEPENDS = "lcms bzip2 jpeg libpng tiff zlib fftw freetype libtool"
-
-BASE_PV := "${PV}"
-PV .= "-62"
-SRC_URI = "git://github.com/ImageMagick/ImageMagick.git;branch=main;protocol=https"
-SRCREV = "35b4991eb0939a327f3489988c366e21068b0178"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig update-alternatives
-
-# xml disabled because it's using xml2-config --prefix to determine prefix which returns just /usr with our libxml2
-# if someone needs xml support then fix it first
-EXTRA_OECONF = "--program-prefix= --program-suffix=.im7 --without-perl --disable-openmp --without-xml --disable-opencl"
-
-CACHED_CONFIGUREVARS = "ac_cv_sys_file_offset_bits=yes"
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG[cxx] = "--with-magick-plus-plus,--without-magick-plus-plus"
-PACKAGECONFIG[graphviz] = "--with-gvc,--without-gvc,graphviz"
-PACKAGECONFIG[jp2] = "--with-jp2,,jasper"
-PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz"
-PACKAGECONFIG[openjpeg] = "--with-openjp2,--without-openjp2,openjpeg"
-PACKAGECONFIG[pango] = "--with-pango,--without-pango,pango cairo"
-PACKAGECONFIG[rsvg] = "--with-rsvg,--without-rsvg,librsvg"
-PACKAGECONFIG[tcmalloc] = "--with-tcmalloc=yes,--with-tcmalloc=no,gperftools"
-PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp"
-PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf"
-PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt"
-
-FILES:${PN} += "${libdir}/ImageMagick-${BASE_PV}/config-Q16* \
- ${datadir}/ImageMagick-7"
-
-FILES:${PN}-dev += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/*.a"
-
-FILES:${PN}-dbg += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/.debug/*"
-
-BBCLASSEXTEND = "native"
-
-ALTERNATIVE_PRIORITY = "100"
-
-ALTERNATIVE:${PN} = "animate compare composite conjure convert display \
- identify import magick-script mogrify montage stream"
-
-ALTERNATIVE_TARGET[animate] = "${bindir}/animate.im7"
-ALTERNATIVE_TARGET[compare] = "${bindir}/compare.im7"
-ALTERNATIVE_TARGET[composite] = "${bindir}/composite.im7"
-ALTERNATIVE_TARGET[conjure] = "${bindir}/conjure.im7"
-ALTERNATIVE_TARGET[convert] = "${bindir}/convert.im7"
-ALTERNATIVE_TARGET[display] = "${bindir}/display.im7"
-ALTERNATIVE_TARGET[identify] = "${bindir}/identify.im7"
-ALTERNATIVE_TARGET[import] = "${bindir}/import.im7"
-ALTERNATIVE_TARGET[magick-script] = "${bindir}/magick-script.im7"
-ALTERNATIVE_TARGET[mogrify] = "${bindir}/mogrify.im7"
-ALTERNATIVE_TARGET[montage] = "${bindir}/montage.im7"
-ALTERNATIVE_TARGET[stream] = "${bindir}/stream.im7"
-
-ALTERNATIVE:${PN}-doc = "animate.1 compare.1 composite.1 conjure.1 \
- convert.1 display.1 identify.1 import.1 magick-script.1 mogrify.1 montage.1 stream.1"
-
-ALTERNATIVE_LINK_NAME[animate.1] = "${mandir}/man1/animate.1"
-ALTERNATIVE_TARGET[animate.1] = "${mandir}/man1/animate.im7.1"
-ALTERNATIVE_LINK_NAME[compare.1] = "${mandir}/man1/compare.1"
-ALTERNATIVE_TARGET[compare.1] = "${mandir}/man1/compare.im7.1"
-ALTERNATIVE_LINK_NAME[composite.1] = "${mandir}/man1/composite.1"
-ALTERNATIVE_TARGET[composite.1] = "${mandir}/man1/composite.im7.1"
-ALTERNATIVE_LINK_NAME[conjure.1] = "${mandir}/man1/conjure.1"
-ALTERNATIVE_TARGET[conjure.1] = "${mandir}/man1/conjure.im7.1"
-ALTERNATIVE_LINK_NAME[convert.1] = "${mandir}/man1/convert.1"
-ALTERNATIVE_TARGET[convert.1] = "${mandir}/man1/convert.im7.1"
-ALTERNATIVE_LINK_NAME[display.1] = "${mandir}/man1/display.1"
-ALTERNATIVE_TARGET[display.1] = "${mandir}/man1/display.im7.1"
-ALTERNATIVE_LINK_NAME[identify.1] = "${mandir}/man1/identify.1"
-ALTERNATIVE_TARGET[identify.1] = "${mandir}/man1/identify.im7.1"
-ALTERNATIVE_LINK_NAME[import.1] = "${mandir}/man1/import.1"
-ALTERNATIVE_TARGET[import.1] = "${mandir}/man1/import.im7.1"
-ALTERNATIVE_LINK_NAME[magick-script.1] = "${mandir}/man1/magick-script.1"
-ALTERNATIVE_TARGET[magick-script.1] = "${mandir}/man1/magick-script.im7.1"
-ALTERNATIVE_LINK_NAME[mogrify.1] = "${mandir}/man1/mogrify.1"
-ALTERNATIVE_TARGET[mogrify.1] = "${mandir}/man1/mogrify.im7.1"
-ALTERNATIVE_LINK_NAME[montage.1] = "${mandir}/man1/montage.1"
-ALTERNATIVE_TARGET[montage.1] = "${mandir}/man1/montage.im7.1"
-ALTERNATIVE_LINK_NAME[stream.1] = "${mandir}/man1/stream.1"
-ALTERNATIVE_TARGET[stream.1] = "${mandir}/man1/stream.im7.1"
diff --git a/meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb b/meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb
new file mode 100644
index 0000000000..6ab8a61b9b
--- /dev/null
+++ b/meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb
@@ -0,0 +1,101 @@
+SUMMARY = "ImageMagick is an image conversion toolkit"
+SECTION = "console/utils"
+HOMEPAGE = "https://www.imagemagick.org/"
+DESCRIPTION = "ImageMagick is a collection of tools for displaying, converting, and \
+editing raster and vector image files. It can read and write over 200 image file formats."
+LICENSE = "ImageMagick"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2f9de66264141265b203cde9902819ea \
+ file://NOTICE;md5=bcbf1f1897b40ec8df39700cb560e9ed"
+# FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results.
+DEPENDS = "lcms bzip2 jpeg libpng tiff zlib fftw freetype libtool"
+
+BASE_PV := "${PV}"
+PV .= "-26"
+SRC_URI = "git://github.com/ImageMagick/ImageMagick.git;branch=main;protocol=https"
+SRCREV = "570a9a048bb0e3a5c221ca87be9408ae35f711e2"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig update-alternatives
+export ac_cv_sys_file_offset_bits="64"
+
+EXTRA_OECONF = "--program-prefix= --program-suffix=.im7 --without-perl --enable-largefile"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} cxx webp xml"
+PACKAGECONFIG[cxx] = "--with-magick-plus-plus,--without-magick-plus-plus"
+PACKAGECONFIG[graphviz] = "--with-gvc,--without-gvc,graphviz"
+PACKAGECONFIG[jp2] = "--with-jp2,,jasper"
+PACKAGECONFIG[lzma] = "--with-lzma,--without-lzma,xz"
+PACKAGECONFIG[openjpeg] = "--with-openjp2,--without-openjp2,openjpeg"
+PACKAGECONFIG[pango] = "--with-pango,--without-pango,pango cairo"
+PACKAGECONFIG[rsvg] = "--with-rsvg,--without-rsvg,librsvg"
+PACKAGECONFIG[tcmalloc] = "--with-tcmalloc=yes,--with-tcmalloc=no,gperftools"
+PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp"
+PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf"
+PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt"
+PACKAGECONFIG[xml] = "--with-xml,--without-xml,libxml2"
+
+do_install:append:class-target() {
+ for file in MagickCore-config.im7 MagickWand-config.im7 Magick++-config.im7; do
+ sed -i 's,${STAGING_DIR_TARGET},,g' ${D}${bindir}/"$file"
+ done
+ sed -i 's,${S},,g' ${D}${libdir}/ImageMagick-${BASE_PV}/config-Q16HDRI/configure.xml
+ sed -i 's,${B},,g' ${D}${libdir}/ImageMagick-${BASE_PV}/config-Q16HDRI/configure.xml
+ sed -i 's,${RECIPE_SYSROOT},,g' ${D}${libdir}/ImageMagick-${BASE_PV}/config-Q16HDRI/configure.xml
+ sed -i 's,${HOSTTOOLS_DIR},${bindir},g' ${D}${sysconfdir}/ImageMagick-7/delegates.xml
+}
+
+FILES:${PN} += "${libdir}/ImageMagick-${BASE_PV}/config-Q16* \
+ ${datadir}/ImageMagick-7"
+
+FILES:${PN}-dev += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/*.a"
+
+FILES:${PN}-dbg += "${libdir}/ImageMagick-${BASE_PV}/modules-Q16/*/.debug/*"
+
+BBCLASSEXTEND = "native nativesdk"
+
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE:${PN} = "animate compare composite conjure convert display \
+ identify import magick-script mogrify montage stream"
+
+ALTERNATIVE_TARGET[animate] = "${bindir}/animate.im7"
+ALTERNATIVE_TARGET[compare] = "${bindir}/compare.im7"
+ALTERNATIVE_TARGET[composite] = "${bindir}/composite.im7"
+ALTERNATIVE_TARGET[conjure] = "${bindir}/conjure.im7"
+ALTERNATIVE_TARGET[convert] = "${bindir}/convert.im7"
+ALTERNATIVE_TARGET[display] = "${bindir}/display.im7"
+ALTERNATIVE_TARGET[identify] = "${bindir}/identify.im7"
+ALTERNATIVE_TARGET[import] = "${bindir}/import.im7"
+ALTERNATIVE_TARGET[magick-script] = "${bindir}/magick-script.im7"
+ALTERNATIVE_TARGET[mogrify] = "${bindir}/mogrify.im7"
+ALTERNATIVE_TARGET[montage] = "${bindir}/montage.im7"
+ALTERNATIVE_TARGET[stream] = "${bindir}/stream.im7"
+
+ALTERNATIVE:${PN}-doc = "animate.1 compare.1 composite.1 conjure.1 \
+ convert.1 display.1 identify.1 import.1 magick-script.1 mogrify.1 montage.1 stream.1"
+
+ALTERNATIVE_LINK_NAME[animate.1] = "${mandir}/man1/animate.1"
+ALTERNATIVE_TARGET[animate.1] = "${mandir}/man1/animate.im7.1"
+ALTERNATIVE_LINK_NAME[compare.1] = "${mandir}/man1/compare.1"
+ALTERNATIVE_TARGET[compare.1] = "${mandir}/man1/compare.im7.1"
+ALTERNATIVE_LINK_NAME[composite.1] = "${mandir}/man1/composite.1"
+ALTERNATIVE_TARGET[composite.1] = "${mandir}/man1/composite.im7.1"
+ALTERNATIVE_LINK_NAME[conjure.1] = "${mandir}/man1/conjure.1"
+ALTERNATIVE_TARGET[conjure.1] = "${mandir}/man1/conjure.im7.1"
+ALTERNATIVE_LINK_NAME[convert.1] = "${mandir}/man1/convert.1"
+ALTERNATIVE_TARGET[convert.1] = "${mandir}/man1/convert.im7.1"
+ALTERNATIVE_LINK_NAME[display.1] = "${mandir}/man1/display.1"
+ALTERNATIVE_TARGET[display.1] = "${mandir}/man1/display.im7.1"
+ALTERNATIVE_LINK_NAME[identify.1] = "${mandir}/man1/identify.1"
+ALTERNATIVE_TARGET[identify.1] = "${mandir}/man1/identify.im7.1"
+ALTERNATIVE_LINK_NAME[import.1] = "${mandir}/man1/import.1"
+ALTERNATIVE_TARGET[import.1] = "${mandir}/man1/import.im7.1"
+ALTERNATIVE_LINK_NAME[magick-script.1] = "${mandir}/man1/magick-script.1"
+ALTERNATIVE_TARGET[magick-script.1] = "${mandir}/man1/magick-script.im7.1"
+ALTERNATIVE_LINK_NAME[mogrify.1] = "${mandir}/man1/mogrify.1"
+ALTERNATIVE_TARGET[mogrify.1] = "${mandir}/man1/mogrify.im7.1"
+ALTERNATIVE_LINK_NAME[montage.1] = "${mandir}/man1/montage.1"
+ALTERNATIVE_TARGET[montage.1] = "${mandir}/man1/montage.im7.1"
+ALTERNATIVE_LINK_NAME[stream.1] = "${mandir}/man1/stream.1"
+ALTERNATIVE_TARGET[stream.1] = "${mandir}/man1/stream.im7.1"
diff --git a/meta-oe/recipes-support/imapfilter/imapfilter_2.7.5.bb b/meta-oe/recipes-support/imapfilter/imapfilter_2.7.5.bb
deleted file mode 100644
index 111a8208a9..0000000000
--- a/meta-oe/recipes-support/imapfilter/imapfilter_2.7.5.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "IMAPFilter is a mail filtering utility that processes mailboxes based on IMAP queries"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=db3b99f230f9758fd77e4a0654e2266d"
-
-SRC_URI = "https://codeload.github.com/lefcha/${BPN}/tar.gz/v${PV};downloadfilename=${BP}.tar.gz \
- file://ldflags.patch \
-"
-SRC_URI[sha256sum] = "ab19f840712e6951e51c29e44c43b3b2fa42e93693f98f8969cc763a4fad56bf"
-
-DEPENDS= "openssl lua libpcre2"
-
-EXTRA_OEMAKE:append = " PREFIX=${prefix}"
-
-do_install(){
- oe_runmake DESTDIR=${D} install
-
- # No need for manuals at this point, MANDIR is hardcoded to depend on prefix
- rm -rf ${D}${prefix}/man
-}
-
-ASNEEDED = ""
diff --git a/meta-oe/recipes-support/imapfilter/imapfilter_2.8.2.bb b/meta-oe/recipes-support/imapfilter/imapfilter_2.8.2.bb
new file mode 100644
index 0000000000..422d96359c
--- /dev/null
+++ b/meta-oe/recipes-support/imapfilter/imapfilter_2.8.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "IMAPFilter is a mail filtering utility that processes mailboxes based on IMAP queries"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f8d2fc4954306888fd0e4b27bef83525"
+
+# v2.7.6
+SRCREV = "9e6661278572009a92a8e125c9b339232a9735a1"
+SRC_URI = "git://github.com/lefcha/imapfilter;protocol=https;branch=master \
+ file://ldflags.patch \
+"
+S = "${WORKDIR}/git"
+
+DEPENDS= "openssl lua libpcre2"
+
+EXTRA_OEMAKE:append = " PREFIX=${prefix}"
+
+do_install(){
+ oe_runmake DESTDIR=${D} install
+
+ # No need for manuals at this point, MANDIR is hardcoded to depend on prefix
+ rm -rf ${D}${prefix}/man
+}
+
+ASNEEDED = ""
diff --git a/meta-oe/recipes-support/inih/files/0001-include-install-header-files-without-prefix-dir-inih.patch b/meta-oe/recipes-support/inih/files/0001-include-install-header-files-without-prefix-dir-inih.patch
deleted file mode 100644
index fb7b85cfd4..0000000000
--- a/meta-oe/recipes-support/inih/files/0001-include-install-header-files-without-prefix-dir-inih.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-include: install header files without prefix dir inih
-
-The other flavor of inih which adapted by Fedora and Ubuntu installs
-header files to /usr/include directly. And xfsprogs 5.10.0 also checks
-ini.h without extra search path and fails. So install header files
-without prefix dir inih.
-
-Upstream-Status: Submitted [https://github.com/OSSystems/inih/pull/4]
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
- include/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
-index 7a46ee7..4a9033f 100644
---- a/include/CMakeLists.txt
-+++ b/include/CMakeLists.txt
-@@ -1 +1 @@
--install(FILES ini.h INIReader.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/inih)
-+install(FILES ini.h INIReader.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
---
-2.17.1
-
diff --git a/meta-oe/recipes-support/inih/libinih_58.bb b/meta-oe/recipes-support/inih/libinih_58.bb
new file mode 100644
index 0000000000..2bcf2b4bd4
--- /dev/null
+++ b/meta-oe/recipes-support/inih/libinih_58.bb
@@ -0,0 +1,14 @@
+SUMMARY = "inih (INI Not Invented Here)"
+DESCRIPTION = "A .INI file parser written in C that was designed to be small and simple."
+HOMEPAGE = "https://github.com/benhoyt/inih"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a7a95d2af90376e85a05318794e6f202"
+
+SRC_URI = "git://github.com/benhoyt/inih.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+SRCREV = "5cc5e2c24642513aaa5b19126aad42d0e4e0923e"
+
+inherit meson pkgconfig
diff --git a/meta-oe/recipes-support/inih/libinih_git.bb b/meta-oe/recipes-support/inih/libinih_git.bb
deleted file mode 100644
index cf390800b9..0000000000
--- a/meta-oe/recipes-support/inih/libinih_git.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "C and C++ INI Library"
-HOMEPAGE = "http://code.google.com/p/inih/"
-PV = "0.0+gitr${SRCPV}"
-PKGV = "${GITPKGVTAG}"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dae28cbf28207425e0d0b3eb835f4bde"
-
-PR = "r3"
-
-# The github repository provides a cmake and pkg-config integration
-SRCREV = "c858aff8c31fa63ef4d1e0176c10e5928cde9a23"
-SRC_URI = "git://github.com/OSSystems/inih.git;branch=master;protocol=https \
- file://0001-include-install-header-files-without-prefix-dir-inih.patch \
- "
-
-UPSTREAM_CHECK_COMMITS = "1"
-
-S = "${WORKDIR}/git"
-
-inherit gitpkgv cmake
-
-# We don't have libinih since we only have static libraries
-ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-oe/recipes-support/iniparser/iniparser/Add-CMake-support.patch b/meta-oe/recipes-support/iniparser/iniparser/Add-CMake-support.patch
index b666f00f70..46c1b0f7ac 100644
--- a/meta-oe/recipes-support/iniparser/iniparser/Add-CMake-support.patch
+++ b/meta-oe/recipes-support/iniparser/iniparser/Add-CMake-support.patch
@@ -4,6 +4,8 @@ Date: Thu, 13 Feb 2014 07:03:26 -0500
Subject: Add CMake support.
---
+Upstream-Status: Pending
+
CMakeLists.txt | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
create mode 100644 CMakeLists.txt
diff --git a/meta-oe/recipes-support/iniparser/iniparser/CVE-2023-33461.patch b/meta-oe/recipes-support/iniparser/iniparser/CVE-2023-33461.patch
new file mode 100644
index 0000000000..db5fb06aac
--- /dev/null
+++ b/meta-oe/recipes-support/iniparser/iniparser/CVE-2023-33461.patch
@@ -0,0 +1,48 @@
+CVE: CVE-2023-33461
+Upstream-Status: Backport [https://github.com/ndevilla/iniparser/pull/146/commits/ace9871f65d11b5d73f0b9ee8cf5d2807439442d]
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+
+
+From ace9871f65d11b5d73f0b9ee8cf5d2807439442d Mon Sep 17 00:00:00 2001
+From: Antonio <antoniolrt@gmail.com>
+Date: Fri, 2 Jun 2023 15:03:10 -0300
+Subject: [PATCH] Handle null return from iniparser_getstring
+
+Fix handling of NULL returns from iniparser_getstring in
+iniparser_getboolean, iniparser_getlongint and iniparser_getdouble,
+avoiding a crash.
+---
+ src/iniparser.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/iniparser.c b/src/iniparser.c
+index f1d1658..dbceb20 100644
+--- a/src/iniparser.c
++++ b/src/iniparser.c
+@@ -456,7 +456,7 @@ long int iniparser_getlongint(const dictionary * d, const char * key, long int n
+ const char * str ;
+
+ str = iniparser_getstring(d, key, INI_INVALID_KEY);
+- if (str==INI_INVALID_KEY) return notfound ;
++ if (str==NULL || str==INI_INVALID_KEY) return notfound ;
+ return strtol(str, NULL, 0);
+ }
+
+@@ -511,7 +511,7 @@ double iniparser_getdouble(const dictionary * d, const char * key, double notfou
+ const char * str ;
+
+ str = iniparser_getstring(d, key, INI_INVALID_KEY);
+- if (str==INI_INVALID_KEY) return notfound ;
++ if (str==NULL || str==INI_INVALID_KEY) return notfound ;
+ return atof(str);
+ }
+
+@@ -553,7 +553,7 @@ int iniparser_getboolean(const dictionary * d, const char * key, int notfound)
+ const char * c ;
+
+ c = iniparser_getstring(d, key, INI_INVALID_KEY);
+- if (c==INI_INVALID_KEY) return notfound ;
++ if (c==NULL || c==INI_INVALID_KEY) return notfound ;
+ if (c[0]=='y' || c[0]=='Y' || c[0]=='1' || c[0]=='t' || c[0]=='T') {
+ ret = 1 ;
+ } else if (c[0]=='n' || c[0]=='N' || c[0]=='0' || c[0]=='f' || c[0]=='F') {
diff --git a/meta-oe/recipes-support/iniparser/iniparser_4.1.bb b/meta-oe/recipes-support/iniparser/iniparser_4.1.bb
index 2810a4f651..c80668d279 100644
--- a/meta-oe/recipes-support/iniparser/iniparser_4.1.bb
+++ b/meta-oe/recipes-support/iniparser/iniparser_4.1.bb
@@ -6,11 +6,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e02baf71c76e0650e667d7da133379ac"
DEPENDS = "doxygen-native"
-PV .= "+git${SRCPV}"
+PV .= "+git"
SRC_URI = "git://github.com/ndevilla/iniparser.git;protocol=https;branch=master \
file://0001-iniparser.pc-Make-libpath-a-variable.patch \
- file://Add-CMake-support.patch"
+ file://Add-CMake-support.patch \
+ file://CVE-2023-33461.patch \
+"
SRCREV= "deb85ad4936d4ca32cc2260ce43323d47936410d"
@@ -22,3 +24,5 @@ do_install:append() {
install -Dm 0644 ${S}/iniparser.pc ${D}${libdir}/pkgconfig/iniparser.pc
sed -i -e 's,@baselib@,${baselib},g' ${D}${libdir}/pkgconfig/iniparser.pc
}
+
+BBCLASSEXTEND += "native"
diff --git a/meta-oe/recipes-support/inotify-tools/inotify-tools/0002-configure-Add-AC_SYS_LARGEFILE-autoconf-macro.patch b/meta-oe/recipes-support/inotify-tools/inotify-tools/0002-configure-Add-AC_SYS_LARGEFILE-autoconf-macro.patch
new file mode 100644
index 0000000000..3b195aae4f
--- /dev/null
+++ b/meta-oe/recipes-support/inotify-tools/inotify-tools/0002-configure-Add-AC_SYS_LARGEFILE-autoconf-macro.patch
@@ -0,0 +1,28 @@
+From 6a57ff26d695aaad096b798879a5dbc5af2cedf5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 20 Dec 2022 10:46:50 -0800
+Subject: [PATCH] configure: Add AC_SYS_LARGEFILE autoconf macro
+
+This will define _FILE_OFFSET_BITS to be 64 if off_t is 64bit
+and we do not need to define lfs64 functions
+
+Upstream-Status: Submitted [https://github.com/inotify-tools/inotify-tools/pull/174]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index bddf14d..b89a266 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -17,6 +17,9 @@ AC_PROG_CC
+ AM_INIT_AUTOMAKE
+ LT_INIT
+
++# Add option for largefile support
++AC_SYS_LARGEFILE
++
+ AC_PATH_PROG(DOXYGEN, doxygen, NO_DOXYGEN)
+
+ AC_ARG_ENABLE(doxygen,
diff --git a/meta-oe/recipes-support/inotify-tools/inotify-tools/0003-replace-stat64-lstat64-with-stat-lstat.patch b/meta-oe/recipes-support/inotify-tools/inotify-tools/0003-replace-stat64-lstat64-with-stat-lstat.patch
new file mode 100644
index 0000000000..c0784ecc73
--- /dev/null
+++ b/meta-oe/recipes-support/inotify-tools/inotify-tools/0003-replace-stat64-lstat64-with-stat-lstat.patch
@@ -0,0 +1,119 @@
+From c6093ad63b92f5d25e6826d1c49dc7cee86d3747 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 20 Dec 2022 10:48:10 -0800
+Subject: [PATCH] replace stat64/lstat64 with stat/lstat
+
+lfs64 functions are not needed when off_t is 64-bit
+Additionally this fixes build with musl which does not
+export these functions without defining _LARGEFILE64_SOURCE
+
+Upstream-Status: Submitted [https://github.com/inotify-tools/inotify-tools/pull/174]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libinotifytools/src/inotifytools.c | 8 ++++----
+ libinotifytools/src/inotifytools/inotify-nosys.h | 5 -----
+ libinotifytools/src/inotifytools/inotifytools.h | 5 -----
+ src/common.c | 4 ++--
+ src/common.h | 6 +-----
+ 5 files changed, 7 insertions(+), 21 deletions(-)
+
+diff --git a/libinotifytools/src/inotifytools.c b/libinotifytools/src/inotifytools.c
+index 50f6135..3e17ac6 100644
+--- a/libinotifytools/src/inotifytools.c
++++ b/libinotifytools/src/inotifytools.c
+@@ -1750,14 +1750,14 @@ int inotifytools_watch_recursively_with_exclude(char const* path,
+
+ static struct dirent * ent;
+ char * next_file;
+- static struct stat64 my_stat;
++ static struct stat my_stat;
+ ent = readdir( dir );
+ // Watch each directory within this directory
+ while ( ent ) {
+ if ( (0 != strcmp( ent->d_name, "." )) &&
+ (0 != strcmp( ent->d_name, ".." )) ) {
+ nasprintf(&next_file,"%s%s", my_path, ent->d_name);
+- if ( -1 == lstat64( next_file, &my_stat ) ) {
++ if ( -1 == lstat( next_file, &my_stat ) ) {
+ error = errno;
+ free( next_file );
+ if ( errno != EACCES ) {
+@@ -1840,9 +1840,9 @@ int inotifytools_error() {
+ * @internal
+ */
+ static int isdir( char const * path ) {
+- static struct stat64 my_stat;
++ static struct stat my_stat;
+
+- if ( -1 == lstat64( path, &my_stat ) ) {
++ if ( -1 == lstat( path, &my_stat ) ) {
+ if (errno == ENOENT) return 0;
+ fprintf(stderr, "Stat failed on %s: %s\n", path, strerror(errno));
+ return 0;
+diff --git a/libinotifytools/src/inotifytools/inotify-nosys.h b/libinotifytools/src/inotifytools/inotify-nosys.h
+index 01aa45e..97166d4 100644
+--- a/libinotifytools/src/inotifytools/inotify-nosys.h
++++ b/libinotifytools/src/inotifytools/inotify-nosys.h
+@@ -13,11 +13,6 @@
+ #include <sys/syscall.h>
+ #include <unistd.h>
+
+-#ifdef __FreeBSD__
+-#define stat64 stat
+-#define lstat64 lstat
+-#endif
+-
+ /*
+ * struct inotify_event - structure read from the inotify device for each event
+ *
+diff --git a/libinotifytools/src/inotifytools/inotifytools.h b/libinotifytools/src/inotifytools/inotifytools.h
+index 49936ae..2ec4358 100644
+--- a/libinotifytools/src/inotifytools/inotifytools.h
++++ b/libinotifytools/src/inotifytools/inotifytools.h
+@@ -1,11 +1,6 @@
+ #ifndef _inotifytools_H
+ #define _inotifytools_H
+
+-#ifdef __FreeBSD__
+-#define stat64 stat
+-#define lstat64 lstat
+-#endif
+-
+ #ifdef __cplusplus
+ extern "C"
+ {
+diff --git a/src/common.c b/src/common.c
+index 5a6fda1..885286e 100644
+--- a/src/common.c
++++ b/src/common.c
+@@ -45,9 +45,9 @@ void print_event_descriptions() {
+ }
+
+ int isdir(char const *path) {
+- static struct stat64 my_stat;
++ static struct stat my_stat;
+
+- if (-1 == lstat64(path, &my_stat)) {
++ if (-1 == lstat(path, &my_stat)) {
+ if (errno == ENOENT)
+ return 0;
+ fprintf(stderr, "Stat failed on %s: %s\n", path, strerror(errno));
+diff --git a/src/common.h b/src/common.h
+index 12d3dde..7f1e34a 100644
+--- a/src/common.h
++++ b/src/common.h
+@@ -1,13 +1,9 @@
+ #ifndef COMMON_H
+ #define COMMON_H
+
+-#ifdef __FreeBSD__
+-#define stat64 stat
+-#define lstat64 lstat
+-#ifdef ENABLE_FANOTIFY
++#if defined(__FreeBSD__) && defined(ENABLE_FANOTIFY)
+ #error "FreeBSD does not support fanotify"
+ #endif
+-#endif
+
+ #include <stdbool.h>
+
diff --git a/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb b/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb
index 3d25eecb34..8a0ae17ad7 100644
--- a/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb
+++ b/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb
@@ -1,5 +1,4 @@
SUMMARY = "Command line tools and C library providing a simple interface to inotify"
-AUTHOR = "Rohan McGovern <rohan@mcgovern.id.au>"
HOMEPAGE = "http://wiki.github.com/rvoicilas/inotify-tools"
SECTION = "console/devel"
LICENSE = "GPL-2.0-only"
@@ -9,7 +8,9 @@ SRCREV = "c8bdbc0a2ed822fc7c67c5c3e102d89fe27fb2d0"
SRC_URI = "git://github.com/${BPN}/${BPN};branch=master;protocol=https \
file://0002-libinotifytools-Bridge-differences-between-musl-glib.patch \
- "
+ file://0002-configure-Add-AC_SYS_LARGEFILE-autoconf-macro.patch \
+ file://0003-replace-stat64-lstat64-with-stat-lstat.patch \
+ "
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/lcms/lcms_2.13.1.bb b/meta-oe/recipes-support/lcms/lcms_2.13.1.bb
deleted file mode 100644
index e018c5bff7..0000000000
--- a/meta-oe/recipes-support/lcms/lcms_2.13.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Little cms is a small-footprint, speed optimized color management engine"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ac638b4bc6b67582a11379cfbaeb93dd"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz"
-SRC_URI[sha256sum] = "d473e796e7b27c5af01bd6d1552d42b45b43457e7182ce9903f38bb748203b88"
-
-DEPENDS = "tiff"
-
-BBCLASSEXTEND = "native"
-
-S = "${WORKDIR}/lcms2-${PV}"
-
-inherit autotools
diff --git a/meta-oe/recipes-support/lcms/lcms_2.16.bb b/meta-oe/recipes-support/lcms/lcms_2.16.bb
new file mode 100644
index 0000000000..8135f83a05
--- /dev/null
+++ b/meta-oe/recipes-support/lcms/lcms_2.16.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Little cms is a small-footprint, speed optimized color management engine"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e9ce323c4b71c943a785db90142b228a"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz"
+SRC_URI[sha256sum] = "d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51"
+
+DEPENDS = "tiff"
+
+BBCLASSEXTEND = "native nativesdk"
+
+S = "${WORKDIR}/lcms2-${PV}"
+
+inherit autotools
+
+CVE_PRODUCT += "littlecms:little_cms_color_engine"
diff --git a/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch b/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch
deleted file mode 100644
index 9ac0770f96..0000000000
--- a/meta-oe/recipes-support/lcov/files/0001-geninfo-Add-intermediate-text-format-support.patch
+++ /dev/null
@@ -1,898 +0,0 @@
-From ec3e1f411c332cbc2f2bc7ab7e2175ebf918b37a Mon Sep 17 00:00:00 2001
-From: Peter Oberparleiter <oberpar@linux.ibm.com>
-Date: Fri, 24 May 2019 16:56:52 +0200
-Subject: [PATCH 1/2] geninfo: Add intermediate text format support
-
-This change adds support for parsing the output of gcov's intermediate
-text file format as implemented by GCC versions 5 to 8. The use of the
-gcov intermediate format should increase processing speed. It also
-provides branch coverage data when using the --initial command line
-option.
-
-Users can control whether geninfo uses the intermediate format via the
-geninfo_intermediate configuration file option. Valid values are:
-
- 0: Use normal text format
- 1: Use intermediate format
- auto: Use intermediate format if available. This is the default.
-
-Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
----
- bin/geninfo | 567 ++++++++++++++++++++++++++++++++++++++++++++-------
- lcovrc | 3 +
- man/lcovrc.5 | 24 +++
- 3 files changed, 521 insertions(+), 73 deletions(-)
-
-Upstream-Status: Backport
-Download URL: https://github.com/linux-test-project/lcov/commit/ebfeb3e179e450c69c3532f98cd5ea1fbf6ccba7
-
-diff --git a/bin/geninfo b/bin/geninfo
-index f41eaec..0276666 100755
---- a/bin/geninfo
-+++ b/bin/geninfo
-@@ -54,6 +54,8 @@ use warnings;
- use File::Basename;
- use File::Spec::Functions qw /abs2rel catdir file_name_is_absolute splitdir
- splitpath catpath/;
-+use File::Temp qw(tempfile tempdir);
-+use File::Copy qw(copy);
- use Getopt::Long;
- use Digest::MD5 qw(md5_base64);
- use Cwd qw/abs_path/;
-@@ -163,13 +165,13 @@ sub solve_relative_path($$);
- sub read_gcov_header($);
- sub read_gcov_file($);
- sub info(@);
-+sub process_intermediate($$$);
- sub map_llvm_version($);
- sub version_to_str($);
- sub get_gcov_version();
- sub system_no_output($@);
- sub read_config($);
- sub apply_config($);
--sub get_exclusion_data($);
- sub apply_exclusion_data($$);
- sub process_graphfile($$);
- sub filter_fn_name($);
-@@ -264,6 +266,8 @@ our $gcno_split_crc;
- our $func_coverage = 1;
- our $br_coverage = 0;
- our $rc_auto_base = 1;
-+our $rc_intermediate = "auto";
-+our $intermediate;
- our $excl_line = "LCOV_EXCL_LINE";
- our $excl_br_line = "LCOV_EXCL_BR_LINE";
-
-@@ -331,6 +335,7 @@ if ($config || %opt_rc)
- "geninfo_compat" => \$opt_compat,
- "geninfo_adjust_src_path" => \$rc_adjust_src_path,
- "geninfo_auto_base" => \$rc_auto_base,
-+ "geninfo_intermediate" => \$rc_intermediate,
- "lcov_function_coverage" => \$func_coverage,
- "lcov_branch_coverage" => \$br_coverage,
- "lcov_excl_line" => \$excl_line,
-@@ -460,15 +465,38 @@ if (system_no_output(3, $gcov_tool, "--help") == -1)
- }
-
- ($gcov_version, $gcov_version_string) = get_gcov_version();
-+$gcov_caps = get_gcov_capabilities();
-+
-+# Determine intermediate mode
-+if ($rc_intermediate eq "0") {
-+ $intermediate = 0;
-+} elsif ($rc_intermediate eq "1") {
-+ $intermediate = 1;
-+} elsif (lc($rc_intermediate) eq "auto") {
-+ # Use intermediate format if supported by gcov
-+ $intermediate = $gcov_caps->{'intermediate-format'} ? 1 : 0;
-+} else {
-+ die("ERROR: invalid value for geninfo_intermediate: ".
-+ "'$rc_intermediate'\n");
-+}
-+
-+if ($intermediate) {
-+ info("Using intermediate gcov format\n");
-+ if ($opt_derive_func_data) {
-+ warn("WARNING: --derive-func-data is not compatible with ".
-+ "intermediate format - ignoring\n");
-+ $opt_derive_func_data = 0;
-+ }
-+}
-
- # Determine gcov options
--$gcov_caps = get_gcov_capabilities();
- push(@gcov_options, "-b") if ($gcov_caps->{'branch-probabilities'} &&
- ($br_coverage || $func_coverage));
- push(@gcov_options, "-c") if ($gcov_caps->{'branch-counts'} &&
- $br_coverage);
- push(@gcov_options, "-a") if ($gcov_caps->{'all-blocks'} &&
-- $opt_gcov_all_blocks && $br_coverage);
-+ $opt_gcov_all_blocks && $br_coverage &&
-+ !$intermediate);
- if ($gcov_caps->{'hash-filenames'})
- {
- push(@gcov_options, "-x");
-@@ -599,7 +627,7 @@ foreach my $entry (@data_directory) {
- gen_info($entry);
- }
-
--if ($initial && $br_coverage) {
-+if ($initial && $br_coverage && !$intermediate) {
- warn("Note: --initial does not generate branch coverage ".
- "data\n");
- }
-@@ -768,6 +796,7 @@ sub gen_info($)
- my $prefix;
- my $type;
- my $ext;
-+ my $tempdir;
-
- if ($initial) {
- $type = "graph";
-@@ -798,16 +827,22 @@ sub gen_info($)
- $prefix = "";
- }
-
-+ $tempdir = tempdir(CLEANUP => 1);
-+
- # Process all files in list
- foreach $file (@file_list) {
- # Process file
-- if ($initial) {
-+ if ($intermediate) {
-+ process_intermediate($file, $prefix, $tempdir);
-+ } elsif ($initial) {
- process_graphfile($file, $prefix);
- } else {
- process_dafile($file, $prefix);
- }
- }
-
-+ unlink($tempdir);
-+
- # Report whether files were excluded.
- if (%excluded_files) {
- info("Excluded data for %d files due to include/exclude options\n",
-@@ -1058,10 +1093,12 @@ sub process_dafile($$)
-
- # Try to find base directory automatically if requested by user
- if ($rc_auto_base) {
-- $base_dir = find_base_from_graph($base_dir, $instr, $graph);
-+ $base_dir = find_base_from_source($base_dir,
-+ [ keys(%{$instr}), keys(%{$graph}) ]);
- }
-
-- ($instr, $graph) = adjust_graph_filenames($base_dir, $instr, $graph);
-+ adjust_source_filenames($instr, $base_dir);
-+ adjust_source_filenames($graph, $base_dir);
-
- # Set $object_dir to real location of object files. This may differ
- # from $da_dir if the graph file is just a link to the "real" object
-@@ -2017,6 +2054,299 @@ sub read_gcov_file($)
- }
-
-
-+#
-+# read_intermediate_text(gcov_filename, data)
-+#
-+# Read gcov intermediate text format in GCOV_FILENAME and add the resulting
-+# data to DATA in the following format:
-+#
-+# data: source_filename -> file_data
-+# file_data: concatenated lines of intermediate text data
-+#
-+
-+sub read_intermediate_text($$)
-+{
-+ my ($gcov_filename, $data) = @_;
-+ my $fd;
-+ my $filename;
-+
-+ open($fd, "<", $gcov_filename) or
-+ die("ERROR: Could not read $gcov_filename: $!\n");
-+ while (my $line = <$fd>) {
-+ if ($line =~ /^file:(.*)$/) {
-+ $filename = $1;
-+ chomp($filename);
-+ } elsif (defined($filename)) {
-+ $data->{$filename} .= $line;
-+ }
-+ }
-+ close($fd);
-+}
-+
-+
-+#
-+# intermediate_text_to_info(fd, data, srcdata)
-+#
-+# Write DATA in info format to file descriptor FD.
-+#
-+# data: filename -> file_data:
-+# file_data: concatenated lines of intermediate text data
-+#
-+# srcdata: filename -> [ excl, brexcl, checksums ]
-+# excl: lineno -> 1 for all lines for which to exclude all data
-+# brexcl: lineno -> 1 for all lines for which to exclude branch data
-+# checksums: lineno -> source code checksum
-+#
-+# Note: To simplify processing, gcov data is not combined here, that is counts
-+# that appear multiple times for the same lines/branches are not added.
-+# This is done by lcov/genhtml when reading the data files.
-+#
-+
-+sub intermediate_text_to_info($$$)
-+{
-+ my ($fd, $data, $srcdata) = @_;
-+ my $branch_num = 0;
-+ my $c;
-+
-+ return if (!%{$data});
-+
-+ print($fd "TN:$test_name\n");
-+ for my $filename (keys(%{$data})) {
-+ my ($excl, $brexcl, $checksums);
-+
-+ if (defined($srcdata->{$filename})) {
-+ ($excl, $brexcl, $checksums) = @{$srcdata->{$filename}};
-+ }
-+
-+ print($fd "SF:$filename\n");
-+ for my $line (split(/\n/, $data->{$filename})) {
-+ if ($line =~ /^lcount:(\d+),(\d+),?/) {
-+ # lcount:<line>,<count>
-+ # lcount:<line>,<count>,<has_unexecuted_blocks>
-+ if ($checksum && exists($checksums->{$1})) {
-+ $c = ",".$checksums->{$1};
-+ } else {
-+ $c = "";
-+ }
-+ print($fd "DA:$1,$2$c\n") if (!$excl->{$1});
-+
-+ # Intermediate text format does not provide
-+ # branch numbers, and the same branch may appear
-+ # multiple times on the same line (e.g. in
-+ # template instances). Synthesize a branch
-+ # number based on the assumptions:
-+ # a) the order of branches is fixed across
-+ # instances
-+ # b) an instance starts with an lcount line
-+ $branch_num = 0;
-+ } elsif ($line =~ /^function:(\d+),(\d+),([^,]+)$/) {
-+ next if (!$func_coverage || $excl->{$1});
-+
-+ # function:<line>,<count>,<name>
-+ print($fd "FN:$1,$3\n");
-+ print($fd "FNDA:$2,$3\n");
-+ } elsif ($line =~ /^function:(\d+),\d+,(\d+),([^,]+)$/) {
-+ next if (!$func_coverage || $excl->{$1});
-+
-+ # function:<start_line>,<end_line>,<count>,
-+ # <name>
-+ print($fd "FN:$1,$3\n");
-+ print($fd "FNDA:$2,$3\n");
-+ } elsif ($line =~ /^branch:(\d+),(taken|nottaken|notexec)/) {
-+ next if (!$br_coverage || $excl->{$1} ||
-+ $brexcl->{$1});
-+
-+ # branch:<line>,taken|nottaken|notexec
-+ if ($2 eq "taken") {
-+ $c = 1;
-+ } elsif ($2 eq "nottaken") {
-+ $c = 0;
-+ } else {
-+ $c = "-";
-+ }
-+ print($fd "BRDA:$1,0,$branch_num,$c\n");
-+ $branch_num++;
-+ }
-+ }
-+ print($fd "end_of_record\n");
-+ }
-+}
-+
-+
-+sub get_output_fd($$)
-+{
-+ my ($outfile, $file) = @_;
-+ my $fd;
-+
-+ if (!defined($outfile)) {
-+ open($fd, ">", "$file.info") or
-+ die("ERROR: Cannot create file $file.info: $!\n");
-+ } elsif ($outfile eq "-") {
-+ open($fd, ">&STDOUT") or
-+ die("ERROR: Cannot duplicate stdout: $!\n");
-+ } else {
-+ open($fd, ">>", $outfile) or
-+ die("ERROR: Cannot write to file $outfile: $!\n");
-+ }
-+
-+ return $fd;
-+}
-+
-+
-+#
-+# print_gcov_warnings(stderr_file, is_graph, map)
-+#
-+# Print GCOV warnings in file STDERR_FILE to STDERR. If IS_GRAPH is non-zero,
-+# suppress warnings about missing as these are expected. Replace keys found
-+# in MAP with their values.
-+#
-+
-+sub print_gcov_warnings($$$)
-+{
-+ my ($stderr_file, $is_graph, $map) = @_;
-+ my $fd;
-+
-+ if (!open($fd, "<", $stderr_file)) {
-+ warn("WARNING: Could not open GCOV stderr file ".
-+ "$stderr_file: $!\n");
-+ return;
-+ }
-+ while (my $line = <$fd>) {
-+ next if ($is_graph && $line =~ /cannot open data file/);
-+
-+ for my $key (keys(%{$map})) {
-+ $line =~ s/\Q$key\E/$map->{$key}/g;
-+ }
-+
-+ print(STDERR $line);
-+ }
-+ close($fd);
-+}
-+
-+
-+#
-+# process_intermediate(file, dir, tempdir)
-+#
-+# Create output for a single file (either a data file or a graph file) using
-+# gcov's intermediate option.
-+#
-+
-+sub process_intermediate($$$)
-+{
-+ my ($file, $dir, $tempdir) = @_;
-+ my ($fdir, $fbase, $fext);
-+ my $data_file;
-+ my $errmsg;
-+ my %data;
-+ my $fd;
-+ my $base;
-+ my $srcdata;
-+ my $is_graph = 0;
-+ my ($out, $err, $rc);
-+
-+ info("Processing %s\n", abs2rel($file, $dir));
-+
-+ $file = solve_relative_path($cwd, $file);
-+ ($fdir, $fbase, $fext) = split_filename($file);
-+
-+ $is_graph = 1 if (".$fext" eq $graph_file_extension);
-+
-+ if ($is_graph) {
-+ # Process graph file - copy to temp directory to prevent
-+ # accidental processing of associated data file
-+ $data_file = "$tempdir/$fbase$graph_file_extension";
-+ if (!copy($file, $data_file)) {
-+ $errmsg = "ERROR: Could not copy file $file";
-+ goto err;
-+ }
-+ } else {
-+ # Process data file in place
-+ $data_file = $file;
-+ }
-+
-+ # Change directory
-+ if (!chdir($tempdir)) {
-+ $errmsg = "Could not change to directory $tempdir: $!";
-+ goto err;
-+ }
-+
-+ # Run gcov on data file
-+ ($out, $err, $rc) = system_no_output(1 + 2 + 4, $gcov_tool,
-+ $data_file, @gcov_options, "-i");
-+ defined($out) && unlink($out);
-+ if (defined($err)) {
-+ print_gcov_warnings($err, $is_graph, {
-+ $data_file => $file,
-+ });
-+ unlink($err);
-+ }
-+ if ($rc) {
-+ $errmsg = "GCOV failed for $file";
-+ goto err;
-+ }
-+
-+ if ($is_graph) {
-+ # Remove graph file copy
-+ unlink($data_file);
-+ }
-+
-+ # Parse resulting file(s)
-+ for my $gcov_filename (glob("*.gcov")) {
-+ read_intermediate_text($gcov_filename, \%data);
-+ unlink($gcov_filename);
-+ }
-+
-+ if (!%data) {
-+ warn("WARNING: GCOV did not produce any data for $file\n");
-+ return;
-+ }
-+
-+ # Determine base directory
-+ if (defined($base_directory)) {
-+ $base = $base_directory;
-+ } else {
-+ $base = $fdir;
-+
-+ if (is_compat($COMPAT_MODE_LIBTOOL)) {
-+ # Avoid files from .libs dirs
-+ $base =~ s/\.libs$//;
-+ }
-+
-+ # Try to find base directory automatically if requested by user
-+ if ($rc_auto_base) {
-+ $base = find_base_from_source($base, [ keys(%data) ]);
-+ }
-+ }
-+
-+ # Apply base file name to relative source files
-+ adjust_source_filenames(\%data, $base);
-+
-+ # Remove excluded source files
-+ filter_source_files(\%data);
-+
-+ # Get data on exclusion markers and checksums if requested
-+ if (!$no_markers || $checksum) {
-+ $srcdata = get_all_source_data(keys(%data));
-+ }
-+
-+ # Generate output
-+ $fd = get_output_fd($output_filename, $file);
-+ intermediate_text_to_info($fd, \%data, $srcdata);
-+ close($fd);
-+
-+ chdir($cwd);
-+
-+ return;
-+
-+err:
-+ if ($ignore[$ERROR_GCOV]) {
-+ warn("WARNING: $errmsg!\n");
-+ } else {
-+ die("ERROR: $errmsg!\n")
-+ }
-+}
-+
-+
- # Map LLVM versions to the version of GCC gcov which they emulate.
-
- sub map_llvm_version($)
-@@ -2151,8 +2481,12 @@ sub int_handler()
- #
- # MODE & 1: suppress STDOUT
- # MODE & 2: suppress STDERR
-+# MODE & 4: redirect to temporary files instead of suppressing
- #
--# Return 0 on success, non-zero otherwise.
-+# Return (stdout, stderr, rc):
-+# stdout: path to tempfile containing stdout or undef
-+# stderr: path to tempfile containing stderr or undef
-+# 0 on success, non-zero otherwise
- #
-
- sub system_no_output($@)
-@@ -2161,14 +2495,31 @@ sub system_no_output($@)
- my $result;
- local *OLD_STDERR;
- local *OLD_STDOUT;
-+ my $stdout_file;
-+ my $stderr_file;
-+ my $fd;
-
- # Save old stdout and stderr handles
- ($mode & 1) && open(OLD_STDOUT, ">>&", "STDOUT");
- ($mode & 2) && open(OLD_STDERR, ">>&", "STDERR");
-
-- # Redirect to /dev/null
-- ($mode & 1) && open(STDOUT, ">", "/dev/null");
-- ($mode & 2) && open(STDERR, ">", "/dev/null");
-+ if ($mode & 4) {
-+ # Redirect to temporary files
-+ if ($mode & 1) {
-+ ($fd, $stdout_file) = tempfile(UNLINK => 1);
-+ open(STDOUT, ">", $stdout_file) || warn("$!\n");
-+ close($fd);
-+ }
-+ if ($mode & 2) {
-+ ($fd, $stderr_file) = tempfile(UNLINK => 1);
-+ open(STDERR, ">", $stderr_file) || warn("$!\n");
-+ close($fd);
-+ }
-+ } else {
-+ # Redirect to /dev/null
-+ ($mode & 1) && open(STDOUT, ">", "/dev/null");
-+ ($mode & 2) && open(STDERR, ">", "/dev/null");
-+ }
-
- debug("system(".join(' ', @_).")\n");
- system(@_);
-@@ -2181,8 +2532,18 @@ sub system_no_output($@)
- # Restore old handles
- ($mode & 1) && open(STDOUT, ">>&", "OLD_STDOUT");
- ($mode & 2) && open(STDERR, ">>&", "OLD_STDERR");
-+
-+ # Remove empty output files
-+ if (defined($stdout_file) && -z $stdout_file) {
-+ unlink($stdout_file);
-+ $stdout_file = undef;
-+ }
-+ if (defined($stderr_file) && -z $stderr_file) {
-+ unlink($stderr_file);
-+ $stderr_file = undef;
-+ }
-
-- return $result;
-+ return ($stdout_file, $stderr_file, $result);
- }
-
-
-@@ -2260,23 +2621,28 @@ sub apply_config($)
-
-
- #
--# get_exclusion_data(filename)
-+# get_source_data(filename)
- #
--# Scan specified source code file for exclusion markers and return
--# linenumber -> 1
--# for all lines which should be excluded.
-+# Scan specified source code file for exclusion markers and checksums. Return
-+# ( excl, brexcl, checksums ) where
-+# excl: lineno -> 1 for all lines for which to exclude all data
-+# brexcl: lineno -> 1 for all lines for which to exclude branch data
-+# checksums: lineno -> source code checksum
- #
-
--sub get_exclusion_data($)
-+sub get_source_data($)
- {
- my ($filename) = @_;
- my %list;
- my $flag = 0;
-+ my %brdata;
-+ my $brflag = 0;
-+ my %checksums;
- local *HANDLE;
-
- if (!open(HANDLE, "<", $filename)) {
- warn("WARNING: could not open $filename\n");
-- return undef;
-+ return;
- }
- while (<HANDLE>) {
- if (/$EXCL_STOP/) {
-@@ -2287,14 +2653,62 @@ sub get_exclusion_data($)
- if (/$excl_line/ || $flag) {
- $list{$.} = 1;
- }
-+ if (/$EXCL_BR_STOP/) {
-+ $brflag = 0;
-+ } elsif (/$EXCL_BR_START/) {
-+ $brflag = 1;
-+ }
-+ if (/$excl_br_line/ || $brflag) {
-+ $brdata{$.} = 1;
-+ }
-+ if ($checksum) {
-+ chomp();
-+ $checksums{$.} = md5_base64($_);
-+ }
- }
- close(HANDLE);
-
-- if ($flag) {
-+ if ($flag || $brflag) {
- warn("WARNING: unterminated exclusion section in $filename\n");
- }
-
-- return \%list;
-+ return (\%list, \%brdata, \%checksums);
-+}
-+
-+
-+#
-+# get_all_source_data(filenames)
-+#
-+# Scan specified source code files for exclusion markers and return
-+# filename -> [ excl, brexcl, checksums ]
-+# excl: lineno -> 1 for all lines for which to exclude all data
-+# brexcl: lineno -> 1 for all lines for which to exclude branch data
-+# checksums: lineno -> source code checksum
-+#
-+
-+sub get_all_source_data(@)
-+{
-+ my @filenames = @_;
-+ my %data;
-+ my $failed = 0;
-+
-+ for my $filename (@filenames) {
-+ my @d;
-+ next if (exists($data{$filename}));
-+
-+ @d = get_source_data($filename);
-+ if (@d) {
-+ $data{$filename} = [ @d ];
-+ } else {
-+ $failed = 1;
-+ }
-+ }
-+
-+ if ($failed) {
-+ warn("WARNING: some exclusion markers may be ignored\n");
-+ }
-+
-+ return \%data;
- }
-
-
-@@ -2318,35 +2732,17 @@ sub apply_exclusion_data($$)
- {
- my ($instr, $graph) = @_;
- my $filename;
-- my %excl_data;
-- my $excl_read_failed = 0;
-+ my $excl_data;
-
-- # Collect exclusion marker data
-- foreach $filename (sort_uniq_lex(keys(%{$graph}), keys(%{$instr}))) {
-- my $excl = get_exclusion_data($filename);
--
-- # Skip and note if file could not be read
-- if (!defined($excl)) {
-- $excl_read_failed = 1;
-- next;
-- }
--
-- # Add to collection if there are markers
-- $excl_data{$filename} = $excl if (keys(%{$excl}) > 0);
-- }
--
-- # Warn if not all source files could be read
-- if ($excl_read_failed) {
-- warn("WARNING: some exclusion markers may be ignored\n");
-- }
-+ ($excl_data) = get_all_source_data(keys(%{$graph}), keys(%{$instr}));
-
- # Skip if no markers were found
-- return ($instr, $graph) if (keys(%excl_data) == 0);
-+ return ($instr, $graph) if (!%$excl_data);
-
- # Apply exclusion marker data to graph
-- foreach $filename (keys(%excl_data)) {
-+ foreach $filename (keys(%$excl_data)) {
- my $function_data = $graph->{$filename};
-- my $excl = $excl_data{$filename};
-+ my $excl = $excl_data->{$filename}->[0];
- my $function;
-
- next if (!defined($function_data));
-@@ -2384,9 +2780,9 @@ sub apply_exclusion_data($$)
- }
-
- # Apply exclusion marker data to instr
-- foreach $filename (keys(%excl_data)) {
-+ foreach $filename (keys(%$excl_data)) {
- my $line_data = $instr->{$filename};
-- my $excl = $excl_data{$filename};
-+ my $excl = $excl_data->{$filename}->[0];
- my $line;
- my @new_data;
-
-@@ -2468,10 +2864,12 @@ sub process_graphfile($$)
-
- # Try to find base directory automatically if requested by user
- if ($rc_auto_base) {
-- $base_dir = find_base_from_graph($base_dir, $instr, $graph);
-+ $base_dir = find_base_from_source($base_dir,
-+ [ keys(%{$instr}), keys(%{$graph}) ]);
- }
-
-- ($instr, $graph) = adjust_graph_filenames($base_dir, $instr, $graph);
-+ adjust_source_filenames($instr, $base_dir);
-+ adjust_source_filenames($graph, $base_dir);
-
- if (!$no_markers) {
- # Apply exclusion marker data to graph file data
-@@ -2767,11 +3165,11 @@ sub parent_dir($)
- }
-
- #
--# find_base_from_graph(base_dir, instr, graph)
-+# find_base_from_source(base_dir, source_files)
- #
--# Try to determine the base directory of the graph file specified by INSTR
--# and GRAPH. The base directory is the base for all relative filenames in
--# the graph file. It is defined by the current working directory at time
-+# Try to determine the base directory of the object file built from
-+# SOURCE_FILES. The base directory is the base for all relative filenames in
-+# the gcov data. It is defined by the current working directory at time
- # of compiling the source file.
- #
- # This function implements a heuristic which relies on the following
-@@ -2781,16 +3179,16 @@ sub parent_dir($)
- # - files by the same name are not present in multiple parent directories
- #
-
--sub find_base_from_graph($$$)
-+sub find_base_from_source($$)
- {
-- my ($base_dir, $instr, $graph) = @_;
-+ my ($base_dir, $source_files) = @_;
- my $old_base;
- my $best_miss;
- my $best_base;
- my %rel_files;
-
- # Determine list of relative paths
-- foreach my $filename (keys(%{$instr}), keys(%{$graph})) {
-+ foreach my $filename (@$source_files) {
- next if (file_name_is_absolute($filename));
-
- $rel_files{$filename} = 1;
-@@ -2829,17 +3227,17 @@ sub find_base_from_graph($$$)
- }
-
- #
--# adjust_graph_filenames(base_dir, instr, graph)
-+# adjust_source_filenames(hash, base_dir)
- #
--# Make relative paths in INSTR and GRAPH absolute and apply
--# geninfo_adjust_src_path setting to graph file data.
-+# Transform all keys of HASH to absolute form and apply requested
-+# transformations.
- #
-
--sub adjust_graph_filenames($$$)
-+sub adjust_source_filenames($$$)
- {
-- my ($base_dir, $instr, $graph) = @_;
-+ my ($hash, $base_dir) = @_;
-
-- foreach my $filename (keys(%{$instr})) {
-+ foreach my $filename (keys(%{$hash})) {
- my $old_filename = $filename;
-
- # Convert to absolute canonical form
-@@ -2851,28 +3249,50 @@ sub adjust_graph_filenames($$$)
- }
-
- if ($filename ne $old_filename) {
-- $instr->{$filename} = delete($instr->{$old_filename});
-+ $hash->{$filename} = delete($hash->{$old_filename});
- }
- }
-+}
-
-- foreach my $filename (keys(%{$graph})) {
-- my $old_filename = $filename;
-
-- # Make absolute
-- # Convert to absolute canonical form
-- $filename = solve_relative_path($base_dir, $filename);
-+#
-+# filter_source_files(hash)
-+#
-+# Remove unwanted source file data from HASH.
-+#
-
-- # Apply adjustment
-- if (defined($adjust_src_pattern)) {
-- $filename =~ s/$adjust_src_pattern/$adjust_src_replace/g;
-+sub filter_source_files($)
-+{
-+ my ($hash) = @_;
-+
-+ foreach my $filename (keys(%{$hash})) {
-+ # Skip external files if requested
-+ goto del if (!$opt_external && is_external($filename));
-+
-+ # Apply include patterns
-+ if (@include_patterns) {
-+ my $keep;
-+
-+ foreach my $pattern (@include_patterns) {
-+ if ($filename =~ (/^$pattern$/)) {
-+ $keep = 1;
-+ last;
-+ }
-+ }
-+ goto del if (!$keep);
- }
-
-- if ($filename ne $old_filename) {
-- $graph->{$filename} = delete($graph->{$old_filename});
-+ # Apply exclude patterns
-+ foreach my $pattern (@exclude_patterns) {
-+ goto del if ($filename =~ (/^$pattern$/));
- }
-- }
-+ next;
-
-- return ($instr, $graph);
-+del:
-+ # Remove file data
-+ delete($hash->{$filename});
-+ $excluded_files{$filename} = 1;
-+ }
- }
-
- #
-@@ -3784,6 +4204,7 @@ sub get_gcov_capabilities()
- 'c' => 'branch-counts',
- 'f' => 'function-summaries',
- 'h' => 'help',
-+ 'i' => 'intermediate-format',
- 'l' => 'long-file-names',
- 'n' => 'no-output',
- 'o' => 'object-directory',
-diff --git a/lcovrc b/lcovrc
-index 40f364f..bd4bc3b 100644
---- a/lcovrc
-+++ b/lcovrc
-@@ -134,6 +134,9 @@ genhtml_desc_html=0
- # when collecting coverage data.
- geninfo_auto_base = 1
-
-+# Use gcov intermediate format? Valid values are 0, 1, auto
-+geninfo_intermediate = auto
-+
- # Directory containing gcov kernel files
- # lcov_gcov_dir = /proc/gcov
-
-diff --git a/man/lcovrc.5 b/man/lcovrc.5
-index f20d273..bf0ce7a 100644
---- a/man/lcovrc.5
-+++ b/man/lcovrc.5
-@@ -223,6 +223,11 @@ geninfo_compat_libtool = 0
- geninfo_auto_base = 1
- .br
-
-+# Use gcov intermediate format? Valid values are 0, 1, auto
-+.br
-+geninfo_intermediate = auto
-+.br
-+
- # Directory containing gcov kernel files
- .br
- lcov_gcov_dir = /proc/gcov
-@@ -789,6 +794,25 @@ located, and in addition, is different between files of the same project.
- Default is 1.
- .PP
-
-+.BR geninfo_intermediate " ="
-+.IR 0 | 1 | auto
-+.IP
-+Specify whether to use gcov intermediate format
-+.br
-+
-+Use this option to control whether geninfo should use the gcov intermediate
-+format while collecting coverage data. The use of the gcov intermediate format
-+should increase processing speed. It also provides branch coverage data when
-+using the \-\-initial command line option.
-+.br
-+
-+Valid values are 0 for off, 1 for on, and "auto" to let geninfo automatically
-+use immediate format when supported by gcov.
-+.br
-+
-+Default is "auto".
-+.PP
-+
- .BR lcov_gcov_dir " ="
- .I path_to_kernel_coverage_data
- .IP
---
-2.17.1
-
diff --git a/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch b/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch
deleted file mode 100644
index 7b180635cd..0000000000
--- a/meta-oe/recipes-support/lcov/files/0002-geninfo-Add-intermediate-JSON-format-support.patch
+++ /dev/null
@@ -1,247 +0,0 @@
-From e13b2b6f8443da660cafa0679c3b16240843ce9f Mon Sep 17 00:00:00 2001
-From: Peter Oberparleiter <oberpar@linux.ibm.com>
-Date: Fri, 24 May 2019 17:16:56 +0200
-Subject: [PATCH 2/2] geninfo: Add intermediate JSON format support
-
-This change adds support for parsing the output of gcov's intermediate
-JSON file format as implemented by GCC version 9.
-
-Note: The way that the intermediate file format support is implemented
-in geninfo removes the need to parse .gcno files directly. Since geninfo
-does not include support for parsing GCC 9 .gcno files, using the
-intermediate format is the only option for geninfo to collect coverage
-data generated by GCC version 9.
-
-Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
----
- bin/geninfo | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 160 insertions(+), 2 deletions(-)
-
-Upstream-Status: Backport
-Download URL: https://github.com/linux-test-project/lcov/commit/75fbae1cfc5027f818a0bb865bf6f96fab3202da
-
-diff --git a/bin/geninfo b/bin/geninfo
-index 0276666..cceb782 100755
---- a/bin/geninfo
-+++ b/bin/geninfo
-@@ -59,6 +59,9 @@ use File::Copy qw(copy);
- use Getopt::Long;
- use Digest::MD5 qw(md5_base64);
- use Cwd qw/abs_path/;
-+use PerlIO::gzip;
-+use JSON qw(decode_json);
-+
- if( $^O eq "msys" )
- {
- require File::Spec::Win32;
-@@ -474,7 +477,8 @@ if ($rc_intermediate eq "0") {
- $intermediate = 1;
- } elsif (lc($rc_intermediate) eq "auto") {
- # Use intermediate format if supported by gcov
-- $intermediate = $gcov_caps->{'intermediate-format'} ? 1 : 0;
-+ $intermediate = ($gcov_caps->{'intermediate-format'} ||
-+ $gcov_caps->{'json-format'}) ? 1 : 0;
- } else {
- die("ERROR: invalid value for geninfo_intermediate: ".
- "'$rc_intermediate'\n");
-@@ -2084,6 +2088,48 @@ sub read_intermediate_text($$)
- }
-
-
-+#
-+# read_intermediate_json(gcov_filename, data, basedir_ref)
-+#
-+# Read gcov intermediate JSON format in GCOV_FILENAME and add the resulting
-+# data to DATA in the following format:
-+#
-+# data: source_filename -> file_data
-+# file_data: GCOV JSON data for file
-+#
-+# Also store the value for current_working_directory to BASEDIR_REF.
-+#
-+
-+sub read_intermediate_json($$$)
-+{
-+ my ($gcov_filename, $data, $basedir_ref) = @_;
-+ my $fd;
-+ my $text;
-+ my $json;
-+
-+ open($fd, "<:gzip", $gcov_filename) or
-+ die("ERROR: Could not read $gcov_filename: $!\n");
-+ local $/;
-+ $text = <$fd>;
-+ close($fd);
-+
-+ $json = decode_json($text);
-+ if (!defined($json) || !exists($json->{"files"}) ||
-+ ref($json->{"files"} ne "ARRAY")) {
-+ die("ERROR: Unrecognized JSON output format in ".
-+ "$gcov_filename\n");
-+ }
-+
-+ $$basedir_ref = $json->{"current_working_directory"};
-+
-+ for my $file (@{$json->{"files"}}) {
-+ my $filename = $file->{"file"};
-+
-+ $data->{$filename} = $file;
-+ }
-+}
-+
-+
- #
- # intermediate_text_to_info(fd, data, srcdata)
- #
-@@ -2173,6 +2219,104 @@ sub intermediate_text_to_info($$$)
- }
-
-
-+#
-+# intermediate_json_to_info(fd, data, srcdata)
-+#
-+# Write DATA in info format to file descriptor FD.
-+#
-+# data: filename -> file_data:
-+# file_data: GCOV JSON data for file
-+#
-+# srcdata: filename -> [ excl, brexcl, checksums ]
-+# excl: lineno -> 1 for all lines for which to exclude all data
-+# brexcl: lineno -> 1 for all lines for which to exclude branch data
-+# checksums: lineno -> source code checksum
-+#
-+# Note: To simplify processing, gcov data is not combined here, that is counts
-+# that appear multiple times for the same lines/branches are not added.
-+# This is done by lcov/genhtml when reading the data files.
-+#
-+
-+sub intermediate_json_to_info($$$)
-+{
-+ my ($fd, $data, $srcdata) = @_;
-+ my $branch_num = 0;
-+
-+ return if (!%{$data});
-+
-+ print($fd "TN:$test_name\n");
-+ for my $filename (keys(%{$data})) {
-+ my ($excl, $brexcl, $checksums);
-+ my $file_data = $data->{$filename};
-+
-+ if (defined($srcdata->{$filename})) {
-+ ($excl, $brexcl, $checksums) = @{$srcdata->{$filename}};
-+ }
-+
-+ print($fd "SF:$filename\n");
-+
-+ # Function data
-+ if ($func_coverage) {
-+ for my $d (@{$file_data->{"functions"}}) {
-+ my $line = $d->{"start_line"};
-+ my $count = $d->{"execution_count"};
-+ my $name = $d->{"name"};
-+
-+ next if (!defined($line) || !defined($count) ||
-+ !defined($name) || $excl->{$line});
-+
-+ print($fd "FN:$line,$name\n");
-+ print($fd "FNDA:$count,$name\n");
-+ }
-+ }
-+
-+ # Line data
-+ for my $d (@{$file_data->{"lines"}}) {
-+ my $line = $d->{"line_number"};
-+ my $count = $d->{"count"};
-+ my $c;
-+ my $branches = $d->{"branches"};
-+ my $unexec = $d->{"unexecuted_block"};
-+
-+ next if (!defined($line) || !defined($count) ||
-+ $excl->{$line});
-+
-+ if (defined($unexec) && $unexec && $count == 0) {
-+ $unexec = 1;
-+ } else {
-+ $unexec = 0;
-+ }
-+
-+ if ($checksum && exists($checksums->{$line})) {
-+ $c = ",".$checksums->{$line};
-+ } else {
-+ $c = "";
-+ }
-+ print($fd "DA:$line,$count$c\n");
-+
-+ $branch_num = 0;
-+ # Branch data
-+ if ($br_coverage && !$brexcl->{$line}) {
-+ for my $b (@$branches) {
-+ my $brcount = $b->{"count"};
-+
-+ if (!defined($brcount) || $unexec) {
-+ $brcount = "-";
-+ }
-+ print($fd "BRDA:$line,0,$branch_num,".
-+ "$brcount\n");
-+
-+ $branch_num++;
-+ }
-+ }
-+
-+ }
-+
-+ print($fd "end_of_record\n");
-+ }
-+}
-+
-+
- sub get_output_fd($$)
- {
- my ($outfile, $file) = @_;
-@@ -2243,6 +2387,8 @@ sub process_intermediate($$$)
- my $srcdata;
- my $is_graph = 0;
- my ($out, $err, $rc);
-+ my $json_basedir;
-+ my $json_format;
-
- info("Processing %s\n", abs2rel($file, $dir));
-
-@@ -2296,6 +2442,12 @@ sub process_intermediate($$$)
- unlink($gcov_filename);
- }
-
-+ for my $gcov_filename (glob("*.gcov.json.gz")) {
-+ read_intermediate_json($gcov_filename, \%data, \$json_basedir);
-+ unlink($gcov_filename);
-+ $json_format = 1;
-+ }
-+
- if (!%data) {
- warn("WARNING: GCOV did not produce any data for $file\n");
- return;
-@@ -2304,6 +2456,8 @@ sub process_intermediate($$$)
- # Determine base directory
- if (defined($base_directory)) {
- $base = $base_directory;
-+ } elsif (defined($json_basedir)) {
-+ $base = $json_basedir;
- } else {
- $base = $fdir;
-
-@@ -2331,7 +2485,11 @@ sub process_intermediate($$$)
-
- # Generate output
- $fd = get_output_fd($output_filename, $file);
-- intermediate_text_to_info($fd, \%data, $srcdata);
-+ if ($json_format) {
-+ intermediate_json_to_info($fd, \%data, $srcdata);
-+ } else {
-+ intermediate_text_to_info($fd, \%data, $srcdata);
-+ }
- close($fd);
-
- chdir($cwd);
---
-2.17.1
-
diff --git a/meta-oe/recipes-support/lcov/lcov_1.14.bb b/meta-oe/recipes-support/lcov/lcov_1.14.bb
deleted file mode 100755
index 47062cca52..0000000000
--- a/meta-oe/recipes-support/lcov/lcov_1.14.bb
+++ /dev/null
@@ -1,65 +0,0 @@
-SUMMARY = "A graphical front-end for gcov"
-HOMEPAGE = "http://ltp.sourceforge.net/coverage/lcov.php"
-DESCRIPTION = "LCOV is a graphical front-end for GCC's coverage testing \
-tool gcov. It collects gcov data for multiple source files and creates \
-HTML pages containing the source code annotated with coverage information. \
-It also adds overview pages for easy navigation within the file structure. \
-LCOV supports statement, function and branch coverage measurement."
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-RDEPENDS:${PN} += " \
- libjson-perl \
- libperlio-gzip-perl \
- perl \
- perl-module-filehandle \
- perl-module-getopt-std \
- perl-module-digest-md5 \
- perl-module-digest-sha \
- perl-module-constant \
- perl-module-cwd \
- perl-module-errno \
- perl-module-file-basename \
- perl-module-file-copy \
- perl-module-file-find \
- perl-module-file-path \
- perl-module-file-spec \
- perl-module-file-spec-functions \
- perl-module-file-spec-unix \
- perl-module-file-temp \
- perl-module-getopt-long \
- perl-module-list-util \
- perl-module-mro \
- perl-module-overload \
- perl-module-overloading \
- perl-module-overload-numbers \
- perl-module-parent \
- perl-module-pod-usage \
- perl-module-posix \
- perl-module-re \
- perl-module-safe \
- perl-module-scalar-util \
- perl-module-term-cap \
- perl-module-text-parsewords \
- perl-module-tie-hash \
-"
-
-RDEPENDS:${PN}:append:class-target = " \
- gcov \
- gcov-symlinks \
-"
-
-SRC_URI = " \
- http://downloads.sourceforge.net/ltp/${BP}.tar.gz \
- file://0001-geninfo-Add-intermediate-text-format-support.patch \
- file://0002-geninfo-Add-intermediate-JSON-format-support.patch \
- "
-
-SRC_URI[md5sum] = "0220d01753469f83921f8f41ae5054c1"
-SRC_URI[sha256sum] = "14995699187440e0ae4da57fe3a64adc0a3c5cf14feab971f8db38fb7d8f071a"
-
-do_install() {
- oe_runmake install PREFIX=${D}${prefix} CFG_DIR=${D}${sysconfdir}
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/lcov/lcov_1.16.bb b/meta-oe/recipes-support/lcov/lcov_1.16.bb
new file mode 100755
index 0000000000..22d68814ee
--- /dev/null
+++ b/meta-oe/recipes-support/lcov/lcov_1.16.bb
@@ -0,0 +1,57 @@
+SUMMARY = "A graphical front-end for gcov"
+HOMEPAGE = "https://github.com/linux-test-project/lcov"
+DESCRIPTION = "LCOV is a graphical front-end for GCC's coverage testing \
+tool gcov. It collects gcov data for multiple source files and creates \
+HTML pages containing the source code annotated with coverage information. \
+It also adds overview pages for easy navigation within the file structure. \
+LCOV supports statement, function and branch coverage measurement."
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+RDEPENDS:${PN} += " \
+ perl \
+ perl-module-filehandle \
+ perl-module-getopt-std \
+ perl-module-digest-md5 \
+ perl-module-digest-sha \
+ perl-module-constant \
+ perl-module-cwd \
+ perl-module-errno \
+ perl-module-file-basename \
+ perl-module-file-copy \
+ perl-module-file-find \
+ perl-module-file-path \
+ perl-module-file-spec \
+ perl-module-file-spec-functions \
+ perl-module-file-spec-unix \
+ perl-module-file-temp \
+ perl-module-getopt-long \
+ perl-module-list-util \
+ perl-module-mro \
+ perl-module-overload \
+ perl-module-overloading \
+ perl-module-overload-numbers \
+ perl-module-parent \
+ perl-module-pod-usage \
+ perl-module-posix \
+ perl-module-re \
+ perl-module-safe \
+ perl-module-scalar-util \
+ perl-module-term-cap \
+ perl-module-text-parsewords \
+ perl-module-tie-hash \
+"
+
+RDEPENDS:${PN}:append:class-target = " \
+ gcov \
+ gcov-symlinks \
+"
+SRC_URI = "https://github.com/linux-test-project/lcov/releases/download/v${PV}/lcov-${PV}.tar.gz"
+SRC_URI[md5sum] = "bfee0cef50d7b7bd1df03bfadf68dcef"
+SRC_URI[sha256sum] = "987031ad5528c8a746d4b52b380bc1bffe412de1f2b9c2ba5224995668e3240b"
+
+do_install() {
+ oe_runmake install PREFIX=${D}${prefix} CFG_DIR=${D}${sysconfdir} LCOV_PERL_PATH="/usr/bin/env perl"
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/libb64/libb64/0001-example-Do-not-run-the-tests.patch b/meta-oe/recipes-support/libb64/libb64/0001-example-Do-not-run-the-tests.patch
index ea3ddfb64b..b3ee24d9d5 100644
--- a/meta-oe/recipes-support/libb64/libb64/0001-example-Do-not-run-the-tests.patch
+++ b/meta-oe/recipes-support/libb64/libb64/0001-example-Do-not-run-the-tests.patch
@@ -3,7 +3,7 @@ From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 27 Mar 2021 21:41:04 -0700
Subject: [PATCH] example: Do not run the tests
-Upstream-Status: Inappropritate [Cross-compile specific]
+Upstream-Status: Inappropriate [Cross-compile specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
examples/Makefile | 3 ---
diff --git a/meta-oe/recipes-support/libb64/libb64/0002-use-BUFSIZ-as-buffer-size.patch b/meta-oe/recipes-support/libb64/libb64/0002-use-BUFSIZ-as-buffer-size.patch
new file mode 100644
index 0000000000..f2b8f599c6
--- /dev/null
+++ b/meta-oe/recipes-support/libb64/libb64/0002-use-BUFSIZ-as-buffer-size.patch
@@ -0,0 +1,57 @@
+From 9ec49389f56816d7ac2331296c03d147531a421a Mon Sep 17 00:00:00 2001
+From: Jakub Wilk <jwilk@debian.org>
+Date: Sat, 27 Mar 2021 22:01:13 -0700
+Subject: [PATCH] use BUFSIZ as buffer size
+
+Bug: http://sourceforge.net/tracker/?func=detail&atid=785907&aid=3591336&group_id=152942
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ include/b64/decode.h | 3 ++-
+ include/b64/encode.h | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/include/b64/decode.h b/include/b64/decode.h
+index b2362e5..8db1d09 100644
+--- a/include/b64/decode.h
++++ b/include/b64/decode.h
+@@ -8,6 +8,7 @@ For details, see http://sourceforge.net/projects/libb64
+ #ifndef BASE64_DECODE_H
+ #define BASE64_DECODE_H
+
++#include <cstdio>
+ #include <iostream>
+
+ namespace base64
+@@ -22,7 +23,7 @@ namespace base64
+ base64_decodestate _state;
+ int _buffersize;
+
+- decoder(int buffersize_in = BUFFERSIZE)
++ decoder(int buffersize_in = BUFSIZ)
+ : _buffersize(buffersize_in)
+ {
+ base64_init_decodestate(&_state);
+diff --git a/include/b64/encode.h b/include/b64/encode.h
+index c1a5f88..644e4dd 100644
+--- a/include/b64/encode.h
++++ b/include/b64/encode.h
+@@ -8,6 +8,7 @@ For details, see http://sourceforge.net/projects/libb64
+ #ifndef BASE64_ENCODE_H
+ #define BASE64_ENCODE_H
+
++#include <cstdio>
+ #include <iostream>
+
+ namespace base64
+@@ -22,7 +23,7 @@ namespace base64
+ base64_encodestate _state;
+ int _buffersize;
+
+- encoder(int buffersize_in = BUFFERSIZE)
++ encoder(int buffersize_in = BUFSIZ)
+ : _buffersize(buffersize_in)
+ {
+ base64_init_encodestate(&_state);
diff --git a/meta-oe/recipes-support/libb64/libb64_2.0.0.1.bb b/meta-oe/recipes-support/libb64/libb64_2.0.0.1.bb
index 8122419c5e..e0683b177b 100644
--- a/meta-oe/recipes-support/libb64/libb64_2.0.0.1.bb
+++ b/meta-oe/recipes-support/libb64/libb64_2.0.0.1.bb
@@ -6,11 +6,12 @@ HOMEPAGE = "https://github.com/libb64"
LICENSE = "PD"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=81296a564fa0621472714aae7c763d96"
-PV .= "+2.0.0.2+git${SRCPV}"
+PV .= "+2.0.0.2+git"
SRCREV = "ce864b17ea0e24a91e77c7dd3eb2d1ac4175b3f0"
SRC_URI = "git://github.com/libb64/libb64;protocol=https;branch=master \
file://0001-example-Do-not-run-the-tests.patch \
+ file://0002-use-BUFSIZ-as-buffer-size.patch \
file://0001-Makefile-fix-parallel-build-of-examples.patch \
file://0001-examples-Use-proper-function-prototype-for-main.patch \
"
diff --git a/meta-oe/recipes-support/libbytesize/libbytesize_2.10.bb b/meta-oe/recipes-support/libbytesize/libbytesize_2.10.bb
new file mode 100644
index 0000000000..daa01bfc3d
--- /dev/null
+++ b/meta-oe/recipes-support/libbytesize/libbytesize_2.10.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "The goal of this project is to provide a tiny library that would \
+facilitate the common operations with sizes in bytes."
+HOMEPAGE = "https://github.com/rhinstaller/libbytesize"
+LICENSE = "LGPL-2.0-or-later"
+SECTION = "devel/lib"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
+
+S = "${WORKDIR}/git"
+
+SRCREV = "6e83cc6f6dff4f126fc79284e0c3c1c50123380d"
+SRC_URI = "git://github.com/storaged-project/libbytesize;branch=main;protocol=https"
+
+inherit gettext autotools pkgconfig python3native
+
+DEPENDS += " \
+ libpcre2 \
+ gmp \
+ mpfr \
+ gettext-native \
+"
+
+FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/bytesize"
+
+PACKAGECONFIG ??= "python3"
+PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3-core"
+
+EXTRA_OECONF = "--without-gtk-doc"
+EXTRA_OEMAKE = "py3libdir=${PYTHON_SITEPACKAGES_DIR}"
diff --git a/meta-oe/recipes-support/libbytesize/libbytesize_2.7.bb b/meta-oe/recipes-support/libbytesize/libbytesize_2.7.bb
deleted file mode 100644
index c83ee926d0..0000000000
--- a/meta-oe/recipes-support/libbytesize/libbytesize_2.7.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-DESCRIPTION = "The goal of this project is to provide a tiny library that would \
-facilitate the common operations with sizes in bytes."
-HOMEPAGE = "https://github.com/rhinstaller/libbytesize"
-LICENSE = "LGPL-2.0-or-later"
-SECTION = "devel/lib"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "0f47dde41f92f00b12160387659501edefd05b38"
-SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master;protocol=https"
-
-inherit gettext autotools pkgconfig python3native
-
-DEPENDS += " \
- libpcre2 \
- gmp \
- mpfr \
- gettext-native \
-"
-
-FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/bytesize"
-
-PACKAGECONFIG ??= "python3"
-PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3-core"
-
-EXTRA_OECONF = "--without-gtk-doc"
-EXTRA_OEMAKE = "py3libdir=${PYTHON_SITEPACKAGES_DIR}"
diff --git a/meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch b/meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch
index 4e0984f364..89f31f7946 100644
--- a/meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch
+++ b/meta-oe/recipes-support/libcanberra/files/0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch
@@ -8,6 +8,8 @@ Content-Transfer-Encoding: 8bit
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
+Upstream-Status: Pending
+
src/Makefile.am | 25 +++++++++++++++----------
1 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch b/meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch
index ba6fa2c643..1e45441ff9 100644
--- a/meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch
+++ b/meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] gtk: Don't assume all GdkDisplays are GdkX11Displays:
broadway/wayland
---
+Upstream-Status: Pending
+
src/canberra-gtk-module.c | 15 +++++++++++++++
src/canberra-gtk.c | 5 +++++
2 files changed, 20 insertions(+)
diff --git a/meta-oe/recipes-support/libcanberra/files/0001-remove-dropped-templates.patch b/meta-oe/recipes-support/libcanberra/files/0001-remove-dropped-templates.patch
new file mode 100644
index 0000000000..57f5486084
--- /dev/null
+++ b/meta-oe/recipes-support/libcanberra/files/0001-remove-dropped-templates.patch
@@ -0,0 +1,65 @@
+From dfd3ef4caac300f517f8eeb378f0b0f9ba6a9b06 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Tue, 15 Aug 2023 15:41:03 +0200
+Subject: [PATCH] remove dropped gtkdoc templates
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+
+Upstream-Status: Pending
+---
+--- a/gtkdoc/gtk-doc.make 2011-08-25 23:20:22.000000000 +0200
++++ b/gtkdoc/gtk-doc.make 2023-08-15 18:08:02.430729073 +0200
+@@ -33,9 +33,9 @@
+ $(HTML_IMAGES) \
+ $(SETUP_FILES)
+
+-DOC_STAMPS=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
++DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \
+ html-build.stamp pdf-build.stamp \
+- tmpl.stamp sgml.stamp html.stamp pdf.stamp
++ sgml.stamp html.stamp pdf.stamp
+
+ SCANOBJ_FILES = \
+ $(DOC_MODULE).args \
+@@ -120,27 +120,12 @@
+ $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
+ @true
+
+-#### templates ####
+-
+-tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
+- @echo ' DOC Rebuilding template files'
+- @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
+- @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+- if test -w $(abs_srcdir) ; then \
+- cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
+- fi \
+- fi
+- @touch tmpl-build.stamp
+-
+-tmpl.stamp: tmpl-build.stamp
+- @true
+-
+ $(srcdir)/tmpl/*.sgml:
+ @true
+
+ #### xml ####
+
+-sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
++sgml-build.stamp: $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
+ @echo ' DOC Building XML'
+ @-chmod -R u+w $(srcdir)
+ @_source_dir='' ; \
+ --- a/gtkdoc/Makefile.am 2009-01-21 21:52:46.000000000 +0100
++++ b/gtkdoc/Makefile.am 2023-08-15 17:41:59.002498772 +0200
+@@ -31,10 +31,6 @@
+ # e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
+ MKDB_OPTIONS=--sgml-mode --output-format=xml
+
+-# Extra options to supply to gtkdoc-mktmpl
+-# e.g. MKTMPL_OPTIONS=--only-section-tmpl
+-MKTMPL_OPTIONS=
+-
+ # Extra options to supply to gtkdoc-fixref. Not normally needed.
+ # e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
+ FIXXREF_OPTIONS=
diff --git a/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb b/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
index 20fe910ebe..95c9479588 100644
--- a/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
+++ b/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
@@ -12,6 +12,7 @@ SRC_URI = " \
http://0pointer.de/lennart/projects/${BPN}/${BPN}-${PV}.tar.xz \
file://0001-build-gtk-and-gtk3-version-for-canberra_gtk_play.patch \
file://0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch \
+ file://0001-remove-dropped-templates.patch \
"
SRC_URI[md5sum] = "34cb7e4430afaf6f447c4ebdb9b42072"
SRC_URI[sha256sum] = "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72"
diff --git a/meta-oe/recipes-support/libcereal/files/0001-cmake-Use-idirafter-instead-of-isystem.patch b/meta-oe/recipes-support/libcereal/files/0001-cmake-Use-idirafter-instead-of-isystem.patch
new file mode 100644
index 0000000000..fc30f0ad7c
--- /dev/null
+++ b/meta-oe/recipes-support/libcereal/files/0001-cmake-Use-idirafter-instead-of-isystem.patch
@@ -0,0 +1,52 @@
+From ac70933783a70d5387a2bb2849c568e33ba52558 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 21 Jan 2023 01:41:32 -0800
+Subject: [PATCH] cmake: Use -idirafter instead of -isystem
+
+isystem dirs are searched before the regular system dirs
+this exposes an interesting include ordering problem when using
+clang + libc++, when including C++ headers like <cstdlib>
+
+cstdlib includes stdlib.h and in case of libc++, this should be coming
+from libc++ as well, which is then eventually including system stdlib.h
+
+libc++ has added a check for checking this order recently, which means
+if cstlib ends up including system stdlib.h before libc++ provided
+stdlib.h it errors out
+
+| /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/libcereal/1.3.2+gitAUTOINC+ebef1e9298-r0/recipe-sysroot/usr/include/c++/v1/cwchar:113:5: error: <cwchar> tried including <wchar.h> but didn't find libc++'s <wcha
+r.h> header. This usually means that your header search paths are not configured properly. The header search paths should contain the C++ Standard Library headers before any C Standard
+ Library, and you are probably using compiler flags that make that not be the case. | # error <cwchar> tried including <wchar.h> but didn't find libc++'s <wchar.h> header. \
+| ^
+
+The reason is that include_directories with SYSTEM property adds the
+directory via -system and some of these directories point to sysroot
+e.g. OPENSSL_INCLUDE_DIR which ends up adding -isystem
+<sysroot>/usr/include and causes the system stdlib.h to included before
+libc++ stdlib.h
+
+A fix is to use -idirafter which preserved the effects of system headers
+but instead of prepending, it will append to system headers and the
+issue is addressed
+
+Upstream-Status: Submitted [https://github.com/USCiLab/cereal/pull/777]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ unittests/boost/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/unittests/boost/CMakeLists.txt b/unittests/boost/CMakeLists.txt
+index 1d733bc7..08e6a169 100644
+--- a/unittests/boost/CMakeLists.txt
++++ b/unittests/boost/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ file(GLOB TESTS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp)
+
+-include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -idirafter ${Boost_INCLUDE_DIRS}")
+
+ # Build all of the non-special tests
+ foreach(TEST_SOURCE ${TESTS})
+--
+2.39.1
+
diff --git a/meta-oe/recipes-support/libcereal/files/0001-doctest-Do-not-use-unnamed-class.patch b/meta-oe/recipes-support/libcereal/files/0001-doctest-Do-not-use-unnamed-class.patch
new file mode 100644
index 0000000000..9396cc5d01
--- /dev/null
+++ b/meta-oe/recipes-support/libcereal/files/0001-doctest-Do-not-use-unnamed-class.patch
@@ -0,0 +1,38 @@
+From 03bbb1b055c41ec652470f775b55a7cf80d664ef Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 17 Apr 2023 16:46:12 -0700
+Subject: [PATCH] doctest: Do not use unnamed class
+
+When compiling with clang this results in emitting absolute path into
+debug info, especially .debug_str section has
+
+~(unnamed class at /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/libcereal/1.3.2+gitAUTOINC+ebef1e9298-r0/git/unittests/doctest.h:6428:5)
+(unnamed class at /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/libcereal/1.3.2+gitAUTOINC+ebef1e9298-r0/git/unittests/doctest.h:6428:5)
+
+Therefore use a name for the class instead and help get rid of this
+absolute path in debug info. This fixes
+
+File /usr/lib/libcereal/ptest/tests/.debug/test_unordered_map in package libcereal-dbg contains reference to TMPDIR
+
+Upstream-Status: Submitted [https://github.com/USCiLab/cereal/pull/788]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ unittests/doctest.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/unittests/doctest.h b/unittests/doctest.h
+index cd5b44d6..e6d8f7f9 100644
+--- a/unittests/doctest.h
++++ b/unittests/doctest.h
+@@ -6424,7 +6424,7 @@ void Context::setCout(std::ostream* out) { p->cout = out; }
+ static class DiscardOStream : public std::ostream
+ {
+ private:
+- class : public std::streambuf
++ class discardBufStream: public std::streambuf
+ {
+ private:
+ // allowing some buffering decreases the amount of calls to overflow
+--
+2.40.0
+
diff --git a/meta-oe/recipes-support/libcereal/libcereal_1.3.2.bb b/meta-oe/recipes-support/libcereal/libcereal_1.3.2.bb
index 5248b1e288..6ad20d6370 100644
--- a/meta-oe/recipes-support/libcereal/libcereal_1.3.2.bb
+++ b/meta-oe/recipes-support/libcereal/libcereal_1.3.2.bb
@@ -16,10 +16,12 @@ DEPENDS = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'boost', '', d)} "
PROVIDES += "${PN}-dev"
-PV .= "+git${SRCPV}"
+PV .= "+git"
SRCREV = "ebef1e929807629befafbb2918ea1a08c7194554"
SRC_URI = "git://github.com/USCiLab/cereal.git;branch=master;protocol=https \
file://0001-sandbox-Do-not-use-int8_t-in-std-uniform_int_distrib.patch \
+ file://0001-cmake-Use-idirafter-instead-of-isystem.patch \
+ file://0001-doctest-Do-not-use-unnamed-class.patch \
file://run-ptest \
"
@@ -27,8 +29,11 @@ S = "${WORKDIR}/git"
inherit cmake pkgconfig ptest
+CXXFLAGS:append:toolchain-clang = " -Wno-error=c++11-narrowing-const-reference"
+
LIBATOMIC:mips = "${@bb.utils.contains('PTEST_ENABLED', '1', '-DCEREAL_THREAD_LIBS="-latomic"', '', d)}"
LIBATOMIC:riscv32 = "${@bb.utils.contains('PTEST_ENABLED', '1', '-DCEREAL_THREAD_LIBS="-latomic"', '', d)}"
+LIBATOMIC:powerpc = "${@bb.utils.contains('PTEST_ENABLED', '1', '-DCEREAL_THREAD_LIBS="-latomic"', '', d)}"
PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'with-tests', '', d)}"
PACKAGECONFIG[with-tests] = "-DWITH_WERROR=OFF -DBUILD_TESTS=ON ${LIBATOMIC},,"
diff --git a/meta-oe/recipes-support/libcppkafka/libcppkafka/0001-cmake-Use-CMAKE_INSTALL_LIBDIR.patch b/meta-oe/recipes-support/libcppkafka/libcppkafka/0001-cmake-Use-CMAKE_INSTALL_LIBDIR.patch
deleted file mode 100644
index d78ee7a8df..0000000000
--- a/meta-oe/recipes-support/libcppkafka/libcppkafka/0001-cmake-Use-CMAKE_INSTALL_LIBDIR.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 51ec4c1f533dee9a499490c1c5bbd23d2191a4a7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 20 Mar 2022 11:14:25 -0700
-Subject: [PATCH] cmake: Use CMAKE_INSTALL_LIBDIR
-
-Do not hardcode library path, this helps it install in right location
-independent of platforms, e.g. ppc64 uses lib64 and not lib
-
-Upstream-Status: Submitted [https://github.com/mfontanini/cppkafka/pull/291]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c4e44e6..25ec1ce 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -51,7 +51,7 @@ option(CPPKAFKA_EXPORT_CMAKE_CONFIG "Generate CMake config, target and version f
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
-
- if (NOT CPPKAFKA_CONFIG_DIR)
-- set(CPPKAFKA_CONFIG_DIR lib/cmake/${PROJECT_NAME})
-+ set(CPPKAFKA_CONFIG_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
- endif()
-
- # Maintain previous compatibility
---
-2.35.1
-
diff --git a/meta-oe/recipes-support/libcppkafka/libcppkafka_git.bb b/meta-oe/recipes-support/libcppkafka/libcppkafka_git.bb
index 0cb33fcd50..cf2d933169 100644
--- a/meta-oe/recipes-support/libcppkafka/libcppkafka_git.bb
+++ b/meta-oe/recipes-support/libcppkafka/libcppkafka_git.bb
@@ -9,16 +9,21 @@ file://LICENSE;md5=d8b4ca15d239dc1485ef495c8f1bcc72 \
"
SRC_URI = "git://github.com/mfontanini/cppkafka;protocol=https;branch=master \
- file://0001-cmake-Use-CMAKE_INSTALL_LIBDIR.patch \
"
-SRCREV = "5e4b350806d561473138ce7a982e8f6cf2e77733"
+SRCREV = "91ac543cbd2228588dcf24a6ca357f8be0f4e5ab"
-DEPENDS = "librdkafka boost chrpath-replacement-native"
+BASEPV = "0.4.0"
+PV = "${BASEPV}+git"
+
+DEPENDS = "librdkafka curl boost chrpath-replacement-native"
inherit cmake
+EXTRA_OECMAKE = "-DCPPKAFKA_BUILD_SHARED=ON"
+
S = "${WORKDIR}/git"
do_install:append(){
- chrpath -d ${D}${libdir}/libcppkafka.so.0.3.1
+ chrpath -d ${D}${libdir}/libcppkafka.so.${BASEPV}
+ sed -i -e 's|${STAGING_INCDIR}|\$\{includedir\}|g' ${D}${datadir}/pkgconfig/cppkafka.pc
}
diff --git a/meta-oe/recipes-support/libcyusbserial/libcyusbserial/0001-CMakeLists.txt-don-t-fall-back-CMAKE_INSTALL_LIBDIR-.patch b/meta-oe/recipes-support/libcyusbserial/libcyusbserial/0001-CMakeLists.txt-don-t-fall-back-CMAKE_INSTALL_LIBDIR-.patch
new file mode 100644
index 0000000000..d9e10469d3
--- /dev/null
+++ b/meta-oe/recipes-support/libcyusbserial/libcyusbserial/0001-CMakeLists.txt-don-t-fall-back-CMAKE_INSTALL_LIBDIR-.patch
@@ -0,0 +1,43 @@
+From 655c5c32b37a2bea12389ed69c0869215fcf5abe Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sun, 3 Sep 2023 11:22:35 +0200
+Subject: [PATCH] CMakeLists.txt: don't fall back CMAKE_INSTALL_LIBDIR to lib
+
+* testing ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR} existence
+ doesn't really work in cross compilation and on some hosts was causing:
+
+ ERROR: QA Issue: libcyusbserial: Files/directories were installed but not shipped in any package:
+ /usr/lib/libcyusbserial.so.1
+ /usr/lib/libcyusbserial.so
+ Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
+ libcyusbserial: 2 installed and not shipped files. [installed-vs-shipped]
+
+ with multilib using /usr/lib32 or /usr/lib64 when the same didn't
+ exist on host.
+
+Upstream-Status: Pending
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ lib/CMakeLists.txt | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
+index 2b031cb..53a7263 100644
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -6,15 +6,6 @@ if (NOT CMAKE_INSTALL_LIBDIR)
+ include(GNUInstallDirs)
+ endif (NOT CMAKE_INSTALL_LIBDIR)
+
+-# Fall back to just "lib" if the item provided by GNUInstallDirs doesn't exist
+-# For example, on Ubuntu 13.10 with CMake 2.8.11.2,
+-# /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} doesn't exist.
+-if (NOT EXISTS "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+- message(STATUS "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR} does not exist. Defaulting libcyusbserial install location to ${CMAKE_INSTALL_PREFIX}/lib.")
+- set(CMAKE_INSTALL_LIBDIR lib)
+-endif()
+-
+-
+ ################################################################################
+ # Include paths
+ ################################################################################
diff --git a/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb b/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
index 81453fb888..dd7f457b10 100644
--- a/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
+++ b/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
@@ -5,10 +5,12 @@ LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING.LESSER.txt;md5=4fbd65380cdd255951079008b364516c"
DEPENDS = "libusb udev"
-PV = "1.0.0+git${SRCPV}"
+PV = "1.0.0+git"
SRCREV = "655e2d544183d094f0e2d119c7e0c6206a0ddb3f"
-SRC_URI = "git://github.com/cyrozap/${BPN}.git;branch=master;protocol=https"
+SRC_URI = "git://github.com/cyrozap/${BPN}.git;branch=master;protocol=https \
+ file://0001-CMakeLists.txt-don-t-fall-back-CMAKE_INSTALL_LIBDIR-.patch \
+"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/libee/libee/libee-parallel-make.patch b/meta-oe/recipes-support/libee/libee/libee-parallel-make.patch
index 25e5c6ae02..8bb23aafca 100644
--- a/meta-oe/recipes-support/libee/libee/libee-parallel-make.patch
+++ b/meta-oe/recipes-support/libee/libee/libee-parallel-make.patch
@@ -3,7 +3,7 @@ fix parallel compiling problem
without specifying libee_convert_DEPENDENCIES = libee.la, libee_convert
can't find libee.la when linking as libee is not generated yet.
-Upstream-Status: pending
+Upstream-Status: Pending
Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
---
diff --git a/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb b/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb
index 1cae76b422..72044427dd 100644
--- a/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb
+++ b/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb
@@ -1,7 +1,6 @@
DESCRIPTION = "Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms."
-AUTHOR = "Benoît Jacob and Gaël Guennebaud and others"
HOMEPAGE = "http://eigen.tuxfamily.org/"
-LICENSE = "MPL-2.0 & Apache-2.0 & BSD-3-Clause & GPL-3.0-only & LGPL-2.1-only & MINPACK"
+LICENSE = "MPL-2.0 & Apache-2.0 & BSD-3-Clause & GPL-2.0-only & LGPL-2.1-only & MINPACK"
LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad \
file://COPYING.BSD;md5=2dd0510ee95e59ca28834b875bc96596 \
file://COPYING.GPL;md5=d32239bcb673463ab874e80d47fae504 \
diff --git a/meta-oe/recipes-support/libfann/libfann_git.bb b/meta-oe/recipes-support/libfann/libfann_git.bb
index 2f52a0f3bd..40f91ac43d 100644
--- a/meta-oe/recipes-support/libfann/libfann_git.bb
+++ b/meta-oe/recipes-support/libfann/libfann_git.bb
@@ -12,7 +12,7 @@ SRCREV ?= "7ec1fc7e5bd734f1d3c89b095e630e83c86b9be1"
SRC_URI = "git://github.com/libfann/fann.git;branch=master;protocol=https \
"
-PV = "2.2.0+git${SRCPV}"
+PV = "2.2.0+git"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/libfido2/libfido2_1.14.0.bb b/meta-oe/recipes-support/libfido2/libfido2_1.14.0.bb
new file mode 100644
index 0000000000..08d3f4e84d
--- /dev/null
+++ b/meta-oe/recipes-support/libfido2/libfido2_1.14.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "FIDO 2.0 support library"
+DESCRIPTION = "libfido2 provides library functionality and command-line tools to \
+communicate with a FIDO device over USB, and to verify attestation and \
+assertion signatures."
+HOMEPAGE = "https://developers.yubico.com/libfido2"
+LICENSE = "BSD-2-Clause"
+SECTION = "libs/network"
+DEPENDS = "libcbor openssl zlib udev"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5f14cb32bdf2b87063e0a2d20c4178d0"
+
+SRC_URI = "https://developers.yubico.com/${BPN}/Releases/${BPN}-${PV}.tar.gz"
+SRC_URI[sha256sum] = "3601792e320032d428002c4cce8499a4c7b803319051a25a0c9f1f138ffee45a"
+
+inherit cmake pkgconfig manpages
+
+PACKAGECONFIG[manpages] = "-DBUILD_MANPAGES:BOOL=ON,-DBUILD_MANPAGES:BOOL=OFF"
+
+EXTRA_OECMAKE = "-DUDEV_RULES_DIR=${nonarch_base_libdir}/udev/rules.d -DBUILD_EXAMPLES:BOOL=OFF"
+
+PACKAGE_BEFORE_PN = "${PN}-tools"
+
+FILES:${PN}-tools = "${bindir}/fido2-*"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/libftdi/libftdi_1.5.bb b/meta-oe/recipes-support/libftdi/libftdi_1.5.bb
index bc5897413f..eae1c02f04 100644
--- a/meta-oe/recipes-support/libftdi/libftdi_1.5.bb
+++ b/meta-oe/recipes-support/libftdi/libftdi_1.5.bb
@@ -27,9 +27,14 @@ EXTRA_OECMAKE = "-DSTATICLIBS=off -DEXAMPLES=off \
-DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \
-DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}"
+do_install:append() {
+ # remove absolute paths
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/libftdi1/LibFTDI1Config.cmake
+}
+
BBCLASSEXTEND = "native nativesdk"
PACKAGES =+ "${PN}-python ftdi-eeprom"
FILES:ftdi-eeprom = "${bindir}/ftdi_eeprom"
-FILES:${PN}-python = "${libdir}/${PYTHON_DIR}/site-packages/"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/"
diff --git a/meta-oe/recipes-support/libgpiod/files/run-ptest b/meta-oe/recipes-support/libgpiod/libgpiod-1.x/run-ptest
index 61b9b69fc6..61b9b69fc6 100644
--- a/meta-oe/recipes-support/libgpiod/files/run-ptest
+++ b/meta-oe/recipes-support/libgpiod/libgpiod-1.x/run-ptest
diff --git a/meta-oe/recipes-support/libgpiod/libgpiod-2.x/run-ptest b/meta-oe/recipes-support/libgpiod/libgpiod-2.x/run-ptest
new file mode 100644
index 0000000000..29ec0d1027
--- /dev/null
+++ b/meta-oe/recipes-support/libgpiod/libgpiod-2.x/run-ptest
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+testbins="gpiod-test gpio-tools-test.bash gpiod-cxx-test"
+
+ptestdir=$(dirname "$(readlink -f "$0")")
+cd $ptestdir/tests
+
+# libgpiod v2 uses gpio-sim - a configfs-based testing module. We need to
+# make sure configfs is mounted before running any tests.
+modprobe configfs
+mountpoint /sys/kernel/config > /dev/null || mount -t configfs configfs /sys/kernel/config
+
+for testbin in $testbins; do
+ if test -e ./$testbin; then
+ ./$testbin > ./$testbin.out 2>&1
+ if [ $? -ne 0 ]; then
+ echo "FAIL: $testbin"
+ else
+ echo "PASS: $testbin"
+ fi
+ else
+ echo "SKIP: $testbin"
+ fi
+done
diff --git a/meta-oe/recipes-support/libgpiod/libgpiod.inc b/meta-oe/recipes-support/libgpiod/libgpiod.inc
new file mode 100644
index 0000000000..dc1fb4fe92
--- /dev/null
+++ b/meta-oe/recipes-support/libgpiod/libgpiod.inc
@@ -0,0 +1,60 @@
+SUMMARY = "C library and tools for interacting with the linux GPIO character device"
+RECIPE_MAINTAINER = "Bartosz Golaszewski <brgl@bgdev.pl>"
+
+inherit autotools pkgconfig ptest
+
+SRC_URI += " \
+ https://www.kernel.org/pub/software/libs/libgpiod/libgpiod-${PV}.tar.xz \
+ file://run-ptest \
+"
+
+PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
+
+# Enable cxx bindings by default.
+PACKAGECONFIG ?= " \
+ cxx \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
+"
+
+# Always build tools - they don't have any additional
+# requirements over the library.
+EXTRA_OECONF = "--enable-tools"
+
+DEPENDS += "autoconf-archive-native"
+
+PACKAGES =+ "${PN}-tools libgpiodcxx"
+FILES:${PN}-tools += " \
+ ${bindir}/gpiodetect \
+ ${bindir}/gpioinfo \
+ ${bindir}/gpioget \
+ ${bindir}/gpioset \
+ ${bindir}/gpiomon \
+"
+FILES:libgpiodcxx = "${libdir}/libgpiodcxx.so.*"
+
+RRECOMMENDS:${PN}-ptest += "coreutils"
+
+do_install:append() {
+ rm -f ${D}${bindir}/gpiod-test
+ rm -f ${D}${bindir}/gpio-tools-test
+ rm -f ${D}${bindir}/gpio-tools-test.bats
+ rm -f ${D}${bindir}/gpiod-cxx-test
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests/
+
+ # These are the core C library tests
+ install -m 0755 ${B}/tests/.libs/gpiod-test ${D}${PTEST_PATH}/tests/
+
+ # Tools are always built so let's always install them for ptest even if
+ # we're not selecting libgpiod-tools.
+ for tool in ${FILES:${PN}-tools}; do
+ install ${B}/tools/.libs/$(basename $tool) ${D}${PTEST_PATH}/tests/
+ done
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'cxx', 'true', 'false', d)}; then
+ install -m 0755 ${B}/bindings/cxx/tests/.libs/gpiod-cxx-test ${D}${PTEST_PATH}/tests/
+ fi
+}
+
diff --git a/meta-oe/recipes-support/libgpiod/libgpiod_1.6.3.bb b/meta-oe/recipes-support/libgpiod/libgpiod_1.6.3.bb
deleted file mode 100644
index 3e6e5d567d..0000000000
--- a/meta-oe/recipes-support/libgpiod/libgpiod_1.6.3.bb
+++ /dev/null
@@ -1,81 +0,0 @@
-SUMMARY = "C library and tools for interacting with the linux GPIO character device"
-AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
-
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2caced0b25dfefd4c601d92bd15116de"
-
-SRC_URI = " \
- https://www.kernel.org/pub/software/libs/${BPN}/${BP}.tar.xz \
- file://run-ptest \
-"
-
-SRC_URI[md5sum] = "28e79f6f70fee1da9079558d8b7b3736"
-SRC_URI[sha256sum] = "841be9d788f00bab08ef22c4be5c39866f0e46cb100a3ae49ed816ac9c5dddc7"
-
-inherit autotools pkgconfig python3native ptest
-
-PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev glib-2.0 catch2"
-PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
-PACKAGECONFIG[python3] = "--enable-bindings-python,--disable-bindings-python,python3"
-
-# Enable cxx bindings by default.
-PACKAGECONFIG ?= "cxx \
- ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
-
-# Always build tools - they don't have any additional
-# requirements over the library.
-EXTRA_OECONF = "--enable-tools"
-
-DEPENDS += "autoconf-archive-native"
-
-PACKAGES =+ "${PN}-tools libgpiodcxx ${PN}-python"
-FILES:${PN}-tools = " \
- ${bindir}/gpiodetect \
- ${bindir}/gpioinfo \
- ${bindir}/gpioget \
- ${bindir}/gpioset \
- ${bindir}/gpiofind \
- ${bindir}/gpiomon \
-"
-FILES:${PN}-ptest += " \
- ${bindir}/gpiod-test \
- ${bindir}/gpio-tools-test \
- ${bindir}/gpio-tools-test.bats \
- ${bindir}/gpiod-cxx-test \
- ${bindir}/gpiod_py_test.py \
- ${libdir}/libgpiomockup.so.* \
-"
-FILES:libgpiodcxx = "${libdir}/libgpiodcxx.so.*"
-FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*.so"
-FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
-
-RRECOMMENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'python3', '${PN}-python', '', d)}"
-RRECOMMENDS:${PN}-ptest += " \
- kernel-module-gpio-mockup \
- coreutils \
- ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-unittest', '', d)} \
-"
-RDEPENDS:${PN}-ptest += "bats python3-packaging"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
-
- # These are the core C library tests
- install -m 0755 ${B}/tests/.libs/gpiod-test ${D}${PTEST_PATH}/tests/
-
- # Tools are always built so let's always install them for ptest even if
- # we're not selecting libgpiod-tools.
- install -m 0755 ${S}/tools/gpio-tools-test ${D}${PTEST_PATH}/tests/
- install -m 0755 ${S}/tools/gpio-tools-test.bats ${D}${PTEST_PATH}/tests/
- for tool in ${FILES:${PN}-tools}; do
- install ${B}/tools/.libs/$(basename $tool) ${D}${PTEST_PATH}/tests/
- done
-
- if ${@bb.utils.contains('PACKAGECONFIG', 'cxx', 'true', 'false', d)}; then
- install -m 0755 ${B}/bindings/cxx/tests/.libs/gpiod-cxx-test ${D}${PTEST_PATH}/tests/
- fi
-
- if ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'true', 'false', d)}; then
- install -m 0755 ${S}/bindings/python/tests/gpiod_py_test.py ${D}${PTEST_PATH}/tests/
- fi
-}
diff --git a/meta-oe/recipes-support/libgpiod/libgpiod_1.6.4.bb b/meta-oe/recipes-support/libgpiod/libgpiod_1.6.4.bb
new file mode 100644
index 0000000000..111a5727ba
--- /dev/null
+++ b/meta-oe/recipes-support/libgpiod/libgpiod_1.6.4.bb
@@ -0,0 +1,45 @@
+require libgpiod.inc
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2caced0b25dfefd4c601d92bd15116de"
+
+SRC_URI[sha256sum] = "7b146e12f28fbca3df7557f176eb778c5ccf952ca464698dba8a61b2e1e3f9b5"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-1.x:"
+
+inherit python3native
+
+PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev glib-2.0 catch2"
+PACKAGECONFIG[python3] = "--enable-bindings-python,--disable-bindings-python,python3"
+
+# Always build tools - they don't have any additional
+# requirements over the library.
+EXTRA_OECONF = "--enable-tools"
+
+PACKAGES =+ "${PN}-python"
+FILES:${PN}-tools += "${bindir}/gpiofind"
+FILES:${PN}-ptest += " \
+ ${bindir}/gpiod_py_test.py \
+ ${libdir}/libgpiomockup.so.* \
+"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*.so"
+FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
+
+RRECOMMENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'python3', '${PN}-python', '', d)}"
+RRECOMMENDS:${PN}-ptest += " \
+ kernel-module-gpio-mockup \
+ ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-unittest', '', d)} \
+"
+RDEPENDS:${PN}-ptest += " \
+ python3-packaging \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'bats', '', d)} \
+"
+
+do_install_ptest:append() {
+ install -m 0755 ${S}/tools/gpio-tools-test ${D}${PTEST_PATH}/tests/
+ install -m 0755 ${S}/tools/gpio-tools-test.bats ${D}${PTEST_PATH}/tests/
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'true', 'false', d)}; then
+ install -m 0755 ${S}/bindings/python/tests/gpiod_py_test.py ${D}${PTEST_PATH}/tests/
+ fi
+}
diff --git a/meta-oe/recipes-support/libgpiod/libgpiod_2.1.1.bb b/meta-oe/recipes-support/libgpiod/libgpiod_2.1.1.bb
new file mode 100644
index 0000000000..4c13d67eba
--- /dev/null
+++ b/meta-oe/recipes-support/libgpiod/libgpiod_2.1.1.bb
@@ -0,0 +1,31 @@
+require libgpiod.inc
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0"
+LIC_FILES_CHKSUM = " \
+ file://LICENSES/GPL-2.0-or-later.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSES/LGPL-2.1-or-later.txt;md5=4b54a1fd55a448865a0b32d41598759d \
+ file://LICENSES/CC-BY-SA-4.0.txt;md5=fba3b94d88bfb9b81369b869a1e9a20f \
+"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-2.x:"
+
+SRC_URI[sha256sum] = "b21913f469d3135680d5516f00fdf9f81d5e564e19ffb690927ea7f1d7e312cb"
+
+# Enable all project features for ptest
+PACKAGECONFIG[tests] = "--enable-tests --enable-tools --enable-bindings-cxx --enable-gpioset-interactive,--disable-tests,kmod util-linux glib-2.0 catch2 libedit"
+PACKAGECONFIG[gpioset-interactive] = "--enable-gpioset-interactive,--disable-gpioset-interactive,libedit"
+
+PACKAGES =+ "${PN}-ptest-dev"
+FILES:${PN}-tools += "${bindir}/gpionotify"
+FILES:${PN}-ptest += "${libdir}/libgpiosim.so.*"
+FILES:${PN}-ptest-dev += "${includedir}/gpiosim.h"
+
+RDEPENDS:${PN}-ptest += " \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'shunit2 bash', '', d)} \
+"
+RRECOMMENDS:${PN}-ptest += "kernel-module-gpio-sim kernel-module-configfs"
+
+do_install_ptest:append() {
+ install -m 0755 ${S}/tools/gpio-tools-test.bash ${D}${PTEST_PATH}/tests/
+ install -m 0644 ${S}/tests/gpiosim/gpiosim.h ${D}${includedir}/gpiosim.h
+}
diff --git a/meta-oe/recipes-support/libgusb/libgusb_0.3.10.bb b/meta-oe/recipes-support/libgusb/libgusb_0.3.10.bb
index c208a2090c..491b6a7a1d 100644
--- a/meta-oe/recipes-support/libgusb/libgusb_0.3.10.bb
+++ b/meta-oe/recipes-support/libgusb/libgusb_0.3.10.bb
@@ -6,9 +6,13 @@ DEPENDS = "glib-2.0 libusb"
inherit meson gobject-introspection gtk-doc gettext vala
-PACKAGECONFIG ??= "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vapi', '', d)}"
+PACKAGECONFIG:class-target ??= "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vapi', '', d)}"
PACKAGECONFIG[vapi] = "-Dvapi=true,-Dvapi=false"
+EXTRA_OEMESON:append:class-native = " -Dtests=false -Dintrospection=false"
+
SRC_URI = "git://github.com/hughsie/libgusb.git;branch=main;protocol=https"
SRCREV = "332d5b987ffecb824426e88518e05547faf2b520"
S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/libharu/libharu/0001-Install-static-lib-into-var-libdir-rather-than-hardc.patch b/meta-oe/recipes-support/libharu/libharu/0001-Install-static-lib-into-var-libdir-rather-than-hardc.patch
deleted file mode 100644
index 0947de196c..0000000000
--- a/meta-oe/recipes-support/libharu/libharu/0001-Install-static-lib-into-var-libdir-rather-than-hardc.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 9341ac4f6ae38efe95dfd188105a9ea30941ccf6 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Wed, 18 Nov 2020 23:09:51 +0900
-Subject: [PATCH] Install static lib into var-libdir rather than hardcod lib.
-
-Lei Maohui <leimaohui@cn.fujitsu.com>
-
-Upstream-Status: Pending
----
- src/CMakeLists.txt | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 249916c..fb06ea3 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -75,8 +75,8 @@ if(LIBHPDF_STATIC)
- target_link_libraries(${LIBHPDF_NAME_STATIC} ${ADDITIONAL_LIBRARIES})
- install(
- TARGETS ${LIBHPDF_NAME_STATIC}
-- ARCHIVE DESTINATION lib
-- LIBRARY DESTINATION lib
-+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
-+ LIBRARY DESTINATION ${LIB_INSTALL_DIR}
- RUNTIME DESTINATION bin
- )
- if(WIN32 AND NOT CYGWIN)
---
-2.25.1
-
diff --git a/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch b/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch
deleted file mode 100644
index 332be1b3f7..0000000000
--- a/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Backport from Fedora Project.
-https://src.fedoraproject.org/rpms/libharu
-
-Fix the install destination of some files.
-
-Upstream-Status: inappropriate
-
-Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
-
-diff -urp libharu-RELEASE_2_3_0/CMakeLists.txt libharu-RELEASE_2_3_0_cmake/CMakeLists.txt
---- libharu-RELEASE_2_3_0/CMakeLists.txt 2013-10-30 20:11:59.000000000 +0700
-+++ libharu-RELEASE_2_3_0_cmake/CMakeLists.txt 2017-06-01 15:56:06.533552795 +0700
-@@ -25,7 +25,7 @@ endif(MSVC)
-
- # information about libharu
- set(LIBHPDF_MAJOR 2)
--set(LIBHPDF_MINOR 2)
-+set(LIBHPDF_MINOR 3)
- set(LIBHPDF_PATCH 0)
- set(LIBHPDF_VERSION ${LIBHPDF_MAJOR}.${LIBHPDF_MINOR}.${LIBHPDF_PATCH})
- set(LIBHPDF_DESCRIPTION "libHaru is a free, cross platform, open source library for generating PDF files.")
-@@ -210,9 +210,9 @@ set(
- install(FILES ${haru_HDRS} DESTINATION include)
-
- # install various files
--install(FILES README CHANGES INSTALL DESTINATION .)
-+install(FILES README CHANGES INSTALL DESTINATION ${SHARE_INSTALL_PREFIX}/libharu)
- if(NOT DEVPAK)
-- install(DIRECTORY if DESTINATION .)
-+ install(DIRECTORY if DESTINATION ${SHARE_INSTALL_PREFIX}/libharu)
- endif(NOT DEVPAK)
- if(DEVPAK)
- install(FILES ${CMAKE_BINARY_DIR}/libharu.DevPackage DESTINATION .)
-diff -urp libharu-RELEASE_2_3_0/src/CMakeLists.txt libharu-RELEASE_2_3_0_cmake/src/CMakeLists.txt
---- libharu-RELEASE_2_3_0/src/CMakeLists.txt 2013-10-30 20:11:59.000000000 +0700
-+++ libharu-RELEASE_2_3_0_cmake/src/CMakeLists.txt 2017-06-01 16:08:45.425105746 +0700
-@@ -90,11 +90,13 @@ if(LIBHPDF_SHARED)
- target_link_libraries(${LIBHPDF_NAME} ${ADDITIONAL_LIBRARIES})
- if(WIN32 AND NOT CYGWIN)
- set_target_properties(${LIBHPDF_NAME} PROPERTIES DEFINE_SYMBOL HPDF_DLL_MAKE)
-+ else(WIN32 AND NOT CYGWIN)
-+ set_target_properties(${LIBHPDF_NAME} PROPERTIES SOVERSION ${LIBHPDF_VERSION})
- endif(WIN32 AND NOT CYGWIN)
- install(
- TARGETS ${LIBHPDF_NAME}
-- ARCHIVE DESTINATION lib
-- LIBRARY DESTINATION lib
-+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
-+ LIBRARY DESTINATION ${LIB_INSTALL_DIR}
- RUNTIME DESTINATION bin
- )
- endif(LIBHPDF_SHARED)
diff --git a/meta-oe/recipes-support/libharu/libharu_2.3.0.bb b/meta-oe/recipes-support/libharu/libharu_2.3.0.bb
deleted file mode 100644
index 7477c5f03b..0000000000
--- a/meta-oe/recipes-support/libharu/libharu_2.3.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "free PDF library"
-HOMEPAGE = "http://libharu.org"
-DESCRIPTION = "libHaru is a library for generating PDF files. \
- It is free, open source, written in ANSI C and cross platform. "
-
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://README;md5=3ee6bc1f64d9cc7907f44840c8e50cb1"
-
-SRC_URI = "git://github.com/libharu/libharu.git;branch=2_3;protocol=https \
- file://libharu-RELEASE_2_3_0_cmake.patch \
- file://0001-Install-static-lib-into-var-libdir-rather-than-hardc.patch \
- "
-
-SRCREV = "4ae1d5f4c84459f130bf1b1ef4c5c330af8eca5d"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-DEPENDS += "libpng zlib"
-
-do_install:append() {
- mkdir -p ${D}/${datadir}/libharu
- mv ${D}/libharu ${D}/${datadir}
-}
diff --git a/meta-oe/recipes-support/libharu/libharu_2.4.4.bb b/meta-oe/recipes-support/libharu/libharu_2.4.4.bb
new file mode 100644
index 0000000000..02dc499e03
--- /dev/null
+++ b/meta-oe/recipes-support/libharu/libharu_2.4.4.bb
@@ -0,0 +1,16 @@
+SUMMARY = "free PDF library"
+HOMEPAGE = "http://libharu.org"
+DESCRIPTION = "libHaru is a library for generating PDF files. \
+ It is free, open source, written in ANSI C and cross platform. "
+
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=924546dab2bef90e370d7c0c090ddcf0"
+
+DEPENDS += "libpng zlib"
+
+SRC_URI = "git://github.com/libharu/libharu.git;branch=master;protocol=https"
+SRCREV = "0c598becaadaef8e3d12b883f9fc2864a118c12d"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-oe/recipes-support/libiio/libiio/0001-CMake-Move-include-CheckCSourceCompiles-before-its-m.patch b/meta-oe/recipes-support/libiio/libiio/0001-CMake-Move-include-CheckCSourceCompiles-before-its-m.patch
deleted file mode 100644
index a2cfd47f18..0000000000
--- a/meta-oe/recipes-support/libiio/libiio/0001-CMake-Move-include-CheckCSourceCompiles-before-its-m.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 758ba58c81273d9075a539216f8a322935c2e434 Mon Sep 17 00:00:00 2001
-From: Paul Cercueil <paul@crapouillou.net>
-Date: Fri, 12 Nov 2021 16:49:21 +0000
-Subject: [PATCH] CMake: Move include(CheckCSourceCompiles) before its macros
- are used
-
-Move include(CheckCSourceCompiles) before any of the
-check_c_source_compiles() macros is called.
-
-This fixes a CMake error when compiling with WITH_NETWORK_GET_BUFFER
-disabled.
-
-Upstream-Status: Accepted [https://github.com/analogdevicesinc/libiio/commit/758ba58c81273d9075a539216f8a322935c2e434]
-
-Signed-off-by: Paul Cercueil <paul@crapouillou.net>
----
- CMakeLists.txt | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7437136c8210..05b4feff233b 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -296,9 +296,10 @@ if(WITH_NETWORK_BACKEND)
- endif()
-
- if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-+ include(CheckCSourceCompiles)
-+
- option(WITH_NETWORK_GET_BUFFER "Enable experimental zero-copy transfers" OFF)
- if (WITH_NETWORK_GET_BUFFER)
-- include(CheckCSourceCompiles)
- check_c_source_compiles("#define _GNU_SOURCE=1\n#include <fcntl.h>\nint main(void) { return O_TMPFILE; }"
- HAS_O_TMPFILE)
-
---
-2.34.1
-
diff --git a/meta-oe/recipes-support/libiio/libiio_0.25.bb b/meta-oe/recipes-support/libiio/libiio_0.25.bb
new file mode 100644
index 0000000000..2c6d2b5145
--- /dev/null
+++ b/meta-oe/recipes-support/libiio/libiio_0.25.bb
@@ -0,0 +1,81 @@
+SUMMARY = "Library for interfacing with IIO devices"
+HOMEPAGE = "https://wiki.analog.com/resources/tools-software/linux-software/libiio"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
+
+SRCREV = "b6028fdeef888ab45f7c1dd6e4ed9480ae4b55e3"
+
+SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https;branch=main"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+SETUPTOOLS_SETUP_PATH ?= "${B}/bindings/python/"
+
+DEPENDS = " \
+ flex-native bison-native libaio \
+"
+
+inherit cmake python3native systemd setuptools3 pkgconfig
+
+EXTRA_OECMAKE = " \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCPP_BINDINGS=ON \
+ -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \
+ -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines' \
+ -DUDEV_RULES_INSTALL_DIR=${nonarch_base_libdir}/udev/rules.d \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DWITH_SYSTEMD=ON -DSYSTEMD_UNIT_INSTALL_DIR=${systemd_system_unitdir}', '', d)} \
+"
+
+PACKAGECONFIG ??= " \
+ usb_backend network_backend serial_backend xml_backend \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'dnssd', '', d)} \
+"
+
+# network_backend, serial_backend and usb_backend depend on xml_backend, so don't switch it off
+XML_BACKEND_DISABLE = "${@bb.utils.contains_any('PACKAGECONFIG', 'network_backend serial_backend usb_backend', '', '-DWITH_XML_BACKEND=off', d)}"
+
+PACKAGECONFIG[usb_backend] = "-DWITH_USB_BACKEND=ON -DWITH_XML_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1 libxml2"
+PACKAGECONFIG[network_backend] = "-DWITH_NETWORK_BACKEND=ON -DWITH_XML_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2"
+PACKAGECONFIG[serial_backend] = "-DWITH_SERIAL_BACKEND=ON -DWITH_XML_BACKEND=ON,-DWITH_SERIAL_BACKEND=off,libserialport libxml2"
+PACKAGECONFIG[xml_backend] = "-DWITH_XML_BACKEND=ON,${XML_BACKEND_DISABLE},libxml2"
+PACKAGECONFIG[dnssd] = "-DHAVE_DNS_SD=ON,-DHAVE_DNS_SD=off,avahi"
+PACKAGECONFIG[libiio-python3] = "-DPYTHON_BINDINGS=ON,-DPYTHON_BINDINGS=OFF"
+
+PACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-python3"
+
+# Inheriting setuptools3 incorrectly adds the dependency on python3-core
+# to ${PN} instead of to ${PN}-python3 where it belongs.
+RDEPENDS:${PN}:remove = "python3-core"
+RDEPENDS:${PN}-python3 = "${PN} python3-core python3-ctypes python3-stringold"
+
+FILES:${PN}-iiod = " \
+ ${sbindir}/iiod \
+ ${systemd_system_unitdir}/iiod.service \
+"
+FILES:${PN}-tests = "${bindir}"
+FILES:${PN}-python3 = "${PYTHON_SITEPACKAGES_DIR}"
+
+SYSTEMD_PACKAGES = "${PN}-iiod"
+SYSTEMD_SERVICE:${PN}-iiod = "iiod.service"
+
+# Explicitly define do_configure, do_compile and do_install because both cmake and setuptools3 have
+# EXPORT_FUNCTIONS do_configure do_compile do_install
+do_configure() {
+ cmake_do_configure
+}
+
+do_compile() {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'libiio-python3', 'true', 'false', d)}; then
+ setuptools3_do_compile
+ fi
+ cmake_do_compile
+}
+
+do_install() {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'libiio-python3', 'true', 'false', d)}; then
+ setuptools3_do_install
+ fi
+ cmake_do_install
+}
diff --git a/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-oe/recipes-support/libiio/libiio_git.bb
deleted file mode 100644
index bb253f421a..0000000000
--- a/meta-oe/recipes-support/libiio/libiio_git.bb
+++ /dev/null
@@ -1,82 +0,0 @@
-SUMMARY = "Library for interfacing with IIO devices"
-HOMEPAGE = "https://wiki.analog.com/resources/tools-software/linux-software/libiio"
-SECTION = "libs"
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
-
-SRCREV = "92d6a35f3d8d721cda7d6fe664b435311dd368b4"
-PV = "0.23"
-
-SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https;branch=master \
- file://0001-CMake-Move-include-CheckCSourceCompiles-before-its-m.patch \
-"
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-SETUPTOOLS_SETUP_PATH ?= "${B}/bindings/python/"
-
-DEPENDS = " \
- flex-native bison-native libaio \
-"
-
-inherit cmake python3native systemd setuptools3
-
-EXTRA_OECMAKE = " \
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -DUDEV_RULES_INSTALL_DIR=${nonarch_base_libdir}/udev/rules.d \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DWITH_SYSTEMD=ON -DSYSTEMD_UNIT_INSTALL_DIR=${systemd_system_unitdir}', '', d)} \
-"
-
-PACKAGECONFIG ??= " \
- usb_backend network_backend serial_backend xml_backend \
- ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'dnssd', '', d)} \
-"
-
-# network_backend, serial_backend and usb_backend depend on xml_backend, so don't switch it off
-XML_BACKEND_DISABLE = "${@bb.utils.contains_any('PACKAGECONFIG', 'network_backend serial_backend usb_backend', '', '-DWITH_XML_BACKEND=off', d)}"
-
-PACKAGECONFIG[usb_backend] = "-DWITH_USB_BACKEND=ON -DWITH_XML_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1 libxml2"
-PACKAGECONFIG[network_backend] = "-DWITH_NETWORK_BACKEND=ON -DWITH_XML_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2"
-PACKAGECONFIG[serial_backend] = "-DWITH_SERIAL_BACKEND=ON -DWITH_XML_BACKEND=ON,-DWITH_SERIAL_BACKEND=off,libserialport libxml2"
-PACKAGECONFIG[xml_backend] = "-DWITH_XML_BACKEND=ON,${XML_BACKEND_DISABLE},libxml2"
-PACKAGECONFIG[dnssd] = "-DHAVE_DNS_SD=ON,-DHAVE_DNS_SD=off,avahi"
-PACKAGECONFIG[libiio-python3] = "-DPYTHON_BINDINGS=ON,-DPYTHON_BINDINGS=OFF"
-
-PACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-${PYTHON_PN}"
-
-# Inheriting setuptools3 incorrectly adds the dependency on ${PYTHON_PN}-core
-# to ${PN} instead of to ${PN}-${PYTHON_PN} where it belongs.
-RDEPENDS:${PN}:remove = "${PYTHON_PN}-core"
-RDEPENDS:${PN}-${PYTHON_PN} = "${PN} ${PYTHON_PN}-core ${PYTHON_PN}-ctypes ${PYTHON_PN}-stringold"
-
-FILES:${PN}-iiod = " \
- ${sbindir}/iiod \
- ${systemd_system_unitdir}/iiod.service \
-"
-FILES:${PN}-tests = "${bindir}"
-FILES:${PN}-${PYTHON_PN} = "${PYTHON_SITEPACKAGES_DIR}"
-
-SYSTEMD_PACKAGES = "${PN}-iiod"
-SYSTEMD_SERVICE:${PN}-iiod = "iiod.service"
-
-# Explicitly define do_configure, do_compile and do_install because both cmake and setuptools3 have
-# EXPORT_FUNCTIONS do_configure do_compile do_install
-do_configure() {
- cmake_do_configure
-}
-
-do_compile() {
- if ${@bb.utils.contains('PACKAGECONFIG', 'libiio-python3', 'true', 'false', d)}; then
- setuptools3_do_compile
- fi
- cmake_do_compile
-}
-
-PIP_INSTALL_PACKAGE = "pylibiio"
-do_install() {
- if ${@bb.utils.contains('PACKAGECONFIG', 'libiio-python3', 'true', 'false', d)}; then
- setuptools3_do_install
- fi
- cmake_do_install
-}
diff --git a/meta-oe/recipes-support/libiodbc/libiodbc_3.52.15.bb b/meta-oe/recipes-support/libiodbc/libiodbc_3.52.15.bb
new file mode 100644
index 0000000000..ff976ed975
--- /dev/null
+++ b/meta-oe/recipes-support/libiodbc/libiodbc_3.52.15.bb
@@ -0,0 +1,30 @@
+SUMMARY = "iODBC driver manager maintained by OpenLink Software."
+
+DESCRIPTION = "This kit will provide you with everything you need to \
+develop ODBC-compliant applications under Unix without having to pay \
+royalties to other parties. \
+"
+
+HOMEPAGE = "http://www.iodbc.org/"
+
+LICENSE = "LGPL-2.0-only | BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=8c0138a8701f0e1282f5c8b2c7d39114 \
+ file://LICENSE.BSD;md5=ff3a66a194e500df485da930da7f2c62 \
+ "
+
+SRC_URI = "https://github.com/openlink/iODBC/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "c74541e3327fc9a1c7ccf103645471c67bc014542d70f572476eb07c0b2dd43c"
+
+inherit autotools
+
+EXTRA_OECONF += " --prefix=/usr/local \
+ --includedir=/usr/include/iodbc \
+ --with-iodbc-inidir=/etc \
+ --enable-odbc3 \
+ --enable-pthreads \
+ --disable-libodbc \
+ --disable-static \
+ "
+
+inherit multilib_script
+MULTILIB_SCRIPTS = "${PN}:${bindir}/iodbc-config"
diff --git a/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.1.bb b/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.1.bb
deleted file mode 100644
index 2db16e114e..0000000000
--- a/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "A simple, lightweight JavaScript API for handling cookies."
-HOMEPAGE = "https://github.com/js-cookie/js-cookie"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e16cf0e247d84f8999bf55865a9c98cf"
-
-SRC_URI = "git://github.com/js-cookie/js-cookie.git;protocol=http;branch=master;protocol=https"
-
-SRCREV = "0ba77141dd215782cc7770347a457906908c66ff"
-
-S = "${WORKDIR}/git"
-
-JQUERYCOOKIEDIR = "${datadir}/javascript/jquery-cookie"
-JQUERYCOOKIEDOCDIR = "${docdir}/libjs-jquery-cookie"
-
-do_install() {
- install -d ${D}${JQUERYCOOKIEDIR}
- install -m 0644 ${S}/*.js ${D}${JQUERYCOOKIEDIR}
- install -m 0644 ${S}/src/*.mjs ${D}${JQUERYCOOKIEDIR}
- install -m 0644 ${S}/*.json ${D}${JQUERYCOOKIEDIR}
-
- install -d ${D}${JQUERYCOOKIEDOCDIR}
- install -m 0644 ${S}/*.md ${D}${JQUERYCOOKIEDOCDIR}
-
-}
-
-FILES:${PN} += "${datadir}/javascript/jquery-cookie"
-FILES:${PN}-doc += "${docdir}/libjs-jquery-cookie"
diff --git a/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.5.bb b/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.5.bb
new file mode 100644
index 0000000000..38ffd032ab
--- /dev/null
+++ b/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.5.bb
@@ -0,0 +1,27 @@
+SUMMARY = "A simple, lightweight JavaScript API for handling cookies."
+HOMEPAGE = "https://github.com/js-cookie/js-cookie"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e16cf0e247d84f8999bf55865a9c98cf"
+
+SRC_URI = "git://github.com/js-cookie/js-cookie.git;protocol=https;branch=main"
+
+SRCREV = "ab3f67fc4fad88cdf07b258c08e4164e06bf7506"
+
+S = "${WORKDIR}/git"
+
+JQUERYCOOKIEDIR = "${datadir}/javascript/jquery-cookie"
+JQUERYCOOKIEDOCDIR = "${docdir}/libjs-jquery-cookie"
+
+do_install() {
+ install -d ${D}${JQUERYCOOKIEDIR}
+ install -m 0644 ${S}/*.js ${D}${JQUERYCOOKIEDIR}
+ install -m 0644 ${S}/src/*.mjs ${D}${JQUERYCOOKIEDIR}
+ install -m 0644 ${S}/*.json ${D}${JQUERYCOOKIEDIR}
+
+ install -d ${D}${JQUERYCOOKIEDOCDIR}
+ install -m 0644 ${S}/*.md ${D}${JQUERYCOOKIEDOCDIR}
+
+}
+
+FILES:${PN} += "${datadir}/javascript/jquery-cookie"
+FILES:${PN}-doc += "${docdir}/libjs-jquery-cookie"
diff --git a/meta-oe/recipes-support/libmanette/libmanette_0.2.6.bb b/meta-oe/recipes-support/libmanette/libmanette_0.2.6.bb
deleted file mode 100644
index 5509b0bb09..0000000000
--- a/meta-oe/recipes-support/libmanette/libmanette_0.2.6.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-SUMMARY = "The simple GObject game controller library"
-HOMEPAGE = "https://gnome.pages.gitlab.gnome.org/libmanette/"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "libevdev libgudev"
-
-SRC_URI = "https://download.gnome.org/sources/libmanette/0.2/libmanette-${PV}.tar.xz"
-SRC_URI[sha256sum] = "63653259a821ec7d90d681e52e757e2219d462828c9d74b056a5f53267636bac"
-
-inherit meson pkgconfig gobject-introspection ptest vala
-
-FILES:${PN}-ptest =+ "${bindir}/manette-test"
-FILES:${PN}-dev =+ "${libdir}/girepository-1.0"
diff --git a/meta-oe/recipes-support/libmanette/libmanette_0.2.7.bb b/meta-oe/recipes-support/libmanette/libmanette_0.2.7.bb
new file mode 100644
index 0000000000..db05422699
--- /dev/null
+++ b/meta-oe/recipes-support/libmanette/libmanette_0.2.7.bb
@@ -0,0 +1,16 @@
+# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+SUMMARY = "The simple GObject game controller library"
+HOMEPAGE = "https://gnome.pages.gitlab.gnome.org/libmanette/"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "libevdev libgudev"
+
+SRC_URI = "https://download.gnome.org/sources/libmanette/0.2/libmanette-${PV}.tar.xz"
+SRC_URI[sha256sum] = "cddd5c02a131072c19c6cde6f2cb2cd57eae7dacb50d14c337efd980baa51a51"
+
+inherit meson pkgconfig gobject-introspection ptest vala
+
+FILES:${PN}-ptest =+ "${bindir}/manette-test"
+FILES:${PN}-dev =+ "${libdir}/girepository-1.0"
diff --git a/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch b/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch
index 50cd4d4270..717e3f1f8b 100644
--- a/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch
+++ b/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch
@@ -15,6 +15,8 @@ aarch64-yoe-linux-musl.
Signed-off-by: asmitk01-in <asmitk01@in.ibm.com>
Change-Id: I1822b36ad4a1fa5e7b165d8cac3a6e96aca11c35
---
+Upstream-Status: Pending
+
Makefile.am | 2 +-
mimetic/codec/other_codecs.h | 4 ++++
mimetic/contenttype.cxx | 4 ++++
diff --git a/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
index fc0b1ee495..4d4a5ff109 100644
--- a/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
+++ b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
@@ -2,7 +2,6 @@
SUMMARY = "Mimetic Library for multi-part parsing"
DESCRIPTION = "Email library (MIME) written in C++ designed to be easy to use and integrate but yet fast and efficient."
-AUTHOR = "Stefano Barbato <stefano@codesink.org>"
HOMEPAGE = "http://www.codesink.org/mimetic_mime_library.html"
BUGTRACKER = "https://github.com/LadislavSopko/mimetic/issues"
@@ -19,6 +18,6 @@ UPSTREAM_CHECK_COMMITS = "1"
S = "${WORKDIR}/git"
-CXXFLAGS += "-Wno-narrowing"
+CXXFLAGS += "-Wno-narrowing -std=c++14"
inherit autotools
diff --git a/meta-oe/recipes-support/libmxml/libmxml_3.3.1.bb b/meta-oe/recipes-support/libmxml/libmxml_3.3.1.bb
index b81050b25a..38e270c036 100644
--- a/meta-oe/recipes-support/libmxml/libmxml_3.3.1.bb
+++ b/meta-oe/recipes-support/libmxml/libmxml_3.3.1.bb
@@ -4,18 +4,16 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
HOMEPAGE = "https://www.msweet.org/mxml/"
BUGTRACKER = "https://github.com/michaelrsweet/mxml/issues"
-SRC_URI = "git://github.com/michaelrsweet/mxml.git;nobranch=1;protocol=https"
+SRC_URI = "git://github.com/michaelrsweet/mxml.git;branch=master;protocol=https"
SRCREV = "fd47c7d115191c8a6bce2c781ffee41e179530f2"
S = "${WORKDIR}/git"
-inherit autotools
+# Package does not support out of tree builds.
+inherit autotools-brokensep
PACKAGECONFIG ??= "threads"
PACKAGECONFIG[threads] = "--enable-threads,--disable-threads"
-# Package does not support out of tree builds.
-B = "${S}"
-
# MXML uses autotools but it explicitly states it does not support autoheader.
EXTRA_AUTORECONF = "--exclude=autopoint,autoheader"
diff --git a/meta-oe/recipes-support/libnice/libnice_0.1.22.bb b/meta-oe/recipes-support/libnice/libnice_0.1.22.bb
new file mode 100644
index 0000000000..175e10fdf6
--- /dev/null
+++ b/meta-oe/recipes-support/libnice/libnice_0.1.22.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Interactive Connectivity Establishment library"
+DESCRIPTION = "Libnice is an implementation of the IETF's draft Interactive Connectivity Establishment standard (ICE)."
+HOMEPAGE = "http://nice.freedesktop.org/wiki/"
+
+LICENSE = "LGPL-2.1-only & MPL-1.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \
+ file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://COPYING.MPL;md5=3c617710e51cdbe0fc00716f056dfb1a \
+"
+
+SRC_URI = "http://nice.freedesktop.org/releases/${BP}.tar.gz"
+SRC_URI[sha256sum] = "a5f724cf09eae50c41a7517141d89da4a61ec9eaca32da4a0073faed5417ad7e"
+
+DEPENDS = "glib-2.0 gnutls ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'graphviz-native', '', d)}"
+
+PACKAGECONFIG[gupnp] = "-Dgupnp=enabled,-Dgupnp=disabled,gupnp"
+PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0"
+PACKAGECONFIG[introspection] = "-Dintrospection=enabled,-Dintrospection=disabled,"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+GTKDOC_MESON_ENABLE_FLAG = "enabled"
+GTKDOC_MESON_DISABLE_FLAG = "disabled"
+
+inherit meson gtk-doc gobject-introspection
+
+EXTRA_OEMESON = "-Dexamples=disabled -Dtests=disabled"
+
+FILES:${PN} += "${libdir}/gstreamer-1.0/*.so"
+FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/pkgconfig"
+FILES:${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
diff --git a/meta-oe/recipes-support/libnvme/libnvme_1.8.bb b/meta-oe/recipes-support/libnvme/libnvme_1.8.bb
new file mode 100644
index 0000000000..3894facecb
--- /dev/null
+++ b/meta-oe/recipes-support/libnvme/libnvme_1.8.bb
@@ -0,0 +1,22 @@
+SUMMARY = "libnvme development C library"
+DESCRIPTION = "\
+libnvme provides type definitions for NVMe specification structures, \
+enumerations, and bit fields, helper functions to construct, dispatch, \
+and decode commands and payloads, and utilities to connect, scan, and \
+manage nvme devices on a Linux system."
+HOMEPAGE = "https://github.com/linux-nvme/${BPN}"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only & CC0-1.0 & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://ccan/licenses/CC0;md5=c17af43b05840255a6fedc5eda9d56cc \
+ file://ccan/licenses/BSD-MIT;md5=838c366f69b72c5df05c96dff79b35f2"
+DEPENDS = "json-c"
+SRCREV = "bff7dda7e2a0f883d0b89e23fed725c916de3e61"
+
+SRC_URI = "git://github.com/linux-nvme/libnvme;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON += "-Dkeyutils=disabled -Dopenssl=disabled -Dpython=disabled"
diff --git a/meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch b/meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch
index 8691eae2b5..2631f4ae73 100644
--- a/meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch
+++ b/meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Support OpenSSL 1.1.0
Taken from https://github.com/x42/liboauth/issues/9
-Upstream-Status: Submitted[https://github.com/x42/liboauth/issues/9]
+Upstream-Status: Submitted [https://github.com/x42/liboauth/issues/9]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/hash.c | 65 ++++++++++++++++++++++++++++++++++++------------------
diff --git a/meta-oe/recipes-support/libol/libol/configure.patch b/meta-oe/recipes-support/libol/libol/configure.patch
deleted file mode 100644
index 87695fb06d..0000000000
--- a/meta-oe/recipes-support/libol/libol/configure.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: libol-0.3.18/configure.in
-===================================================================
---- libol-0.3.18.orig/configure.in 2006-03-27 14:44:52.000000000 +0000
-+++ libol-0.3.18/configure.in 2014-07-18 07:05:56.029481372 +0000
-@@ -1,7 +1,7 @@
- dnl Process this file with autoconf to produce a configure script.
--AC_INIT(src/abstract_io.c)
-+AC_INIT(libol, "0.3.18")
-
--AM_INIT_AUTOMAKE(libol, "0.3.18", 1)
-+AM_INIT_AUTOMAKE([foreign])
- if test -n "$SNAPSHOT_VERSION"; then
- VERSION=$VERSION+$SNAPSHOT_VERSION
- fi
diff --git a/meta-oe/recipes-support/libol/libol_0.3.18.bb b/meta-oe/recipes-support/libol/libol_0.3.18.bb
deleted file mode 100644
index 21a56264e4..0000000000
--- a/meta-oe/recipes-support/libol/libol_0.3.18.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A tiny C support library"
-HOMEPAGE = "https://my.balabit.com/downloads/libol"
-SECTION = "libs"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-
-SRC_URI = "http://www.balabit.com/downloads/libol/0.3/${BP}.tar.gz \
- file://configure.patch"
-SRC_URI[md5sum] = "cbadf4b7ea276dfa85acc38a1cc5ff17"
-SRC_URI[sha256sum] = "9de3bf13297ff882e02a1e6e5f6bf760a544aff92a9d8a1cf4328a32005cefe7"
-
-inherit autotools binconfig
-
-do_compile:prepend() {
- install ${S}/utils/make_class.in ${B}/utils
-}
-
-do_install:append() {
- rm -fr ${D}${bindir}
-}
diff --git a/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch b/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch
index e00cf80141..0521aaeaff 100644
--- a/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch
+++ b/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/configure.ac
+++ b/configure.ac
@@ -71,7 +71,7 @@
diff --git a/meta-oe/recipes-support/libosinfo/libosinfo/0001-meson.build-allow-crosscompiling-gir.patch b/meta-oe/recipes-support/libosinfo/libosinfo/0001-meson.build-allow-crosscompiling-gir.patch
new file mode 100644
index 0000000000..778a1f6e1e
--- /dev/null
+++ b/meta-oe/recipes-support/libosinfo/libosinfo/0001-meson.build-allow-crosscompiling-gir.patch
@@ -0,0 +1,28 @@
+From 123b5a4c5e09f4262d4545a0bc5edb01a19b6b76 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 21 Aug 2023 10:06:55 +0200
+Subject: [PATCH] meson.build: allow crosscompiling gir
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 39b739e..46f2252 100644
+--- a/meson.build
++++ b/meson.build
+@@ -29,7 +29,7 @@ libosinfo_pkgconfdir = join_paths(libosinfo_libdir, 'pkgconfig')
+
+ # gobject introspection
+ gir = find_program('g-ir-scanner', required: get_option('enable-introspection'))
+-enable_introspection = gir.found() and not meson.is_cross_build()
++enable_introspection = gir.found()
+
+ # vala
+ vapi_opt = get_option('enable-vala')
+--
+2.41.0
+
diff --git a/meta-oe/recipes-support/libosinfo/libosinfo/0001-osinfo-Make-xmlError-struct-constant-in-propagate_li.patch b/meta-oe/recipes-support/libosinfo/libosinfo/0001-osinfo-Make-xmlError-struct-constant-in-propagate_li.patch
new file mode 100644
index 0000000000..467c6b4baf
--- /dev/null
+++ b/meta-oe/recipes-support/libosinfo/libosinfo/0001-osinfo-Make-xmlError-struct-constant-in-propagate_li.patch
@@ -0,0 +1,32 @@
+From 5bbdd06503456784c5ffa22409e8bab50470d673 Mon Sep 17 00:00:00 2001
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Mon, 27 Nov 2023 15:11:45 +0100
+Subject: [PATCH] osinfo: Make xmlError struct constant in
+ propagate_libxml_error()
+
+In libxml2 commit v2.12.0~14 the API changed so that
+xmlGetLastError() returns pointer to a constant xmlError struct.
+Reflect this change in our code.
+
+Upstream-Status: Backport [https://gitlab.com/libosinfo/libosinfo/-/merge_requests/155]
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ osinfo/osinfo_install_script.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/osinfo/osinfo_install_script.c b/osinfo/osinfo_install_script.c
+index 5800f37..303245a 100644
+--- a/osinfo/osinfo_install_script.c
++++ b/osinfo/osinfo_install_script.c
+@@ -769,7 +769,7 @@ static void propagate_libxml_error(GError **error, const char *format, ...) G_GN
+
+ static void propagate_libxml_error(GError **error, const char *format, ...)
+ {
+- xmlErrorPtr err = xmlGetLastError();
++ const xmlError *err = xmlGetLastError();
+ char *prefix;
+ va_list ap;
+
+--
+2.44.0
+
diff --git a/meta-oe/recipes-support/libosinfo/libosinfo_1.11.0.bb b/meta-oe/recipes-support/libosinfo/libosinfo_1.11.0.bb
new file mode 100644
index 0000000000..8ef7ac3df0
--- /dev/null
+++ b/meta-oe/recipes-support/libosinfo/libosinfo_1.11.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "API for managing information about operating systems, hypervisors and the (virtual) hardware devices."
+HOMEPAGE = "https://libosinfo.org"
+
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2b0e9926530c269f5ae95560370195af"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = " \
+ git://gitlab.com/libosinfo/libosinfo.git;branch=main;protocol=https \
+ file://0001-meson.build-allow-crosscompiling-gir.patch \
+ file://0001-osinfo-Make-xmlError-struct-constant-in-propagate_li.patch \
+"
+
+SRCREV = "ca9dd5b810dc04ea38048ae9be491654c8596ef9"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig gtk-doc gobject-introspection vala
+
+DEPENDS = "glib-2.0 libsoup libxslt"
+
+VALA_MESON_OPTION = 'enable-vala'
+VALA_MESON_ENABLE_FLAG = 'enabled'
+VALA_MESON_DISABLE_FLAG = 'disabled'
+GIR_MESON_OPTION = "enable-introspection"
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_OPTION = "enable-gtk-doc"
+
+EXTRA_OEMESON += " \
+ -Dwith-pci-ids-path=${datadir}/hwdata/pci.ids \
+ -Dwith-usb-ids-path=${datadir}/hwdata/usb.ids \
+"
+
+RDEPENDS:${PN} = "hwdata"
diff --git a/meta-oe/recipes-support/libpaper/libpaper_2.1.2.bb b/meta-oe/recipes-support/libpaper/libpaper_2.1.2.bb
new file mode 100644
index 0000000000..a45ffe1849
--- /dev/null
+++ b/meta-oe/recipes-support/libpaper/libpaper_2.1.2.bb
@@ -0,0 +1,9 @@
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "https://github.com/rrthomas/libpaper/releases/download/v${PV}/libpaper-${PV}.tar.gz"
+SRC_URI[sha256sum] = "1fda0cf64efa46b9684a4ccc17df4386c4cc83254805419222c064bf62ea001f"
+
+inherit perlnative autotools
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/libraw/libraw_0.20.2.bb b/meta-oe/recipes-support/libraw/libraw_0.20.2.bb
deleted file mode 100644
index 1940864a20..0000000000
--- a/meta-oe/recipes-support/libraw/libraw_0.20.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "raw image decoder"
-LICENSE = "LGPL-2.1-only | CDDL-1.0"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=74c9dffdc42805f9c0de2f97df6031fc"
-
-SRC_URI = "git://github.com/LibRaw/LibRaw.git;branch=master;protocol=https"
-SRCREV = "0209b6a2caec189e6d1a9b21c10e9e49f46e5a92"
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-DEPENDS = "jpeg jasper lcms"
diff --git a/meta-oe/recipes-support/libraw/libraw_0.21.2.bb b/meta-oe/recipes-support/libraw/libraw_0.21.2.bb
new file mode 100644
index 0000000000..4d089f3b79
--- /dev/null
+++ b/meta-oe/recipes-support/libraw/libraw_0.21.2.bb
@@ -0,0 +1,11 @@
+SUMMARY = "raw image decoder"
+LICENSE = "LGPL-2.1-only | CDDL-1.0"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=1501ae0aa3c8544e63f08d6f7bf88a6f"
+
+SRC_URI = "git://github.com/LibRaw/LibRaw.git;branch=0.21-stable;protocol=https"
+SRCREV = "1ef70158d7fde1ced6aaddb0b9443c32a7121d3d"
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+DEPENDS = "jpeg jasper lcms"
diff --git a/meta-oe/recipes-support/librsync/librsync_2.3.2.bb b/meta-oe/recipes-support/librsync/librsync_2.3.2.bb
deleted file mode 100644
index ccc68967b9..0000000000
--- a/meta-oe/recipes-support/librsync/librsync_2.3.2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Remote delta-compression library."
-AUTHOR = "Martin Pool, Andrew Tridgell, Donovan Baarda, Adam Schubert"
-
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
-
-SRC_URI = "git://github.com/librsync/librsync.git;branch=master;protocol=https"
-SRCREV = "42b636d2a65ab6914ea7cac50886da28192aaf9b"
-S = "${WORKDIR}/git"
-
-DEPENDS = "popt"
-
-inherit cmake
-
-PACKAGES =+ "rdiff"
-FILES:rdiff = "${bindir}/rdiff"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/librsync/librsync_2.3.4.bb b/meta-oe/recipes-support/librsync/librsync_2.3.4.bb
new file mode 100644
index 0000000000..3cad665389
--- /dev/null
+++ b/meta-oe/recipes-support/librsync/librsync_2.3.4.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Remote delta-compression library."
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
+
+SRC_URI = "git://github.com/librsync/librsync.git;branch=master;protocol=https"
+SRCREV = "e364852674780e43d578e4239128ff7014190ed3"
+S = "${WORKDIR}/git"
+
+DEPENDS = "popt"
+
+inherit cmake
+
+PACKAGES =+ "rdiff"
+FILES:rdiff = "${bindir}/rdiff"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb b/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
index 33e1b6fabd..822b7ffc2b 100644
--- a/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
+++ b/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
@@ -14,13 +14,15 @@ SRC_URI = "https://www.ibr.cs.tu-bs.de/projects/${BPN}/download/${BP}.tar.gz \
SRC_URI[md5sum] = "4bf47483c06c9f07d1b10fbc74eddf11"
SRC_URI[sha256sum] = "f21accdadb1bb328ea3f8a13fc34d715baac6e2db66065898346322c725754d3"
-DEPENDS += "bison-native flex-native"
+DEPENDS += "bison-native flex-native wget-native gawk-native"
-RDEPENDS:${PN} += "wget"
+inherit autotools-brokensep update-alternatives
+ALTERNATIVE_PRIORITY = "50"
+ALTERNATIVE:${PN}-yang = "ietf-interfaces "
+ALTERNATIVE_LINK_NAME[ietf-interfaces] = "${datadir}/yang/ietf-interfaces.yang"
-inherit autotools-brokensep
-
-EXTRA_OECONF = "ac_cv_path_SH=/bin/sh ac_cv_path_WGET=${bindir}/wget ac_cv_path_AWK=${bindir}/awk"
+EXTRA_OECONF:class-native = "ac_cv_path_SH=/bin/sh"
+EXTRA_OECONF:class-target = "ac_cv_path_SH=/bin/sh ac_cv_path_WGET=${bindir}/wget ac_cv_path_AWK=${bindir}/awk"
do_install:append () {
install -d ${D}${sysconfdir}
@@ -34,3 +36,5 @@ FILES:${PN}-pibs += "${datadir}/pibs"
FILES:${PN}-yang += "${datadir}/yang"
RRECOMMENDS:${PN} = "${BPN}-mibs"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb b/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb
index 42b9d7e048..5969220a41 100644
--- a/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb
+++ b/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb
@@ -21,12 +21,12 @@ PACKAGECONFIG ?= ""
PACKAGECONFIG[disabledebug] = "--disable-debug,,"
PACKAGECONFIG[allboardconfigs] = "--with-board-configs,,"
PACKAGECONFIG[enableboardconfig] = "--enable-board=${BOARD},,"
-PACKAGECONFIG[python] = "--enable-python=${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN},,${PYTHON_PN} ${PYTHON_PN}-native"
+PACKAGECONFIG[python] = "--enable-python=${STAGING_BINDIR_NATIVE}/python3-native/python3,,python3 python3-native"
PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'python', \
- '${PYTHON_PN}-libsoc-staticdev ${PYTHON_PN}-libsoc', '', d)}"
+ 'python3-libsoc-staticdev python3-libsoc', '', d)}"
RDEPENDS:${PN} = "libgcc"
-FILES:${PYTHON_PN}-libsoc-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*/*.a"
-FILES:${PYTHON_PN}-libsoc += "${PYTHON_SITEPACKAGES_DIR}"
+FILES:python3-libsoc-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*/*.a"
+FILES:python3-libsoc += "${PYTHON_SITEPACKAGES_DIR}"
diff --git a/meta-oe/recipes-support/libssh/libssh/0001-libgcrypt.c-Fix-prototype-of-des3_encrypt-des3_decry.patch b/meta-oe/recipes-support/libssh/libssh/0001-libgcrypt.c-Fix-prototype-of-des3_encrypt-des3_decry.patch
new file mode 100644
index 0000000000..d2d1fb5955
--- /dev/null
+++ b/meta-oe/recipes-support/libssh/libssh/0001-libgcrypt.c-Fix-prototype-of-des3_encrypt-des3_decry.patch
@@ -0,0 +1,44 @@
+From 49a8ae4d6f77434ed9f7a601b9df488b921e4a22 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 20 Mar 2023 21:59:19 -0700
+Subject: [PATCH] libgcrypt.c: Fix prototype of des3_encrypt/des3_decrypt
+
+This is to match the prototype for callback functions which are now emitted as
+errors by clang16
+
+Fixes
+
+TOPDIR/build/tmp/work/cortexa15t2hf-neon-yoe-linux-gnueabi/libssh/0.10.4-r0/git/src/libgcrypt.c:903:20: error: incompatible function pointer types initializing 'void (*)(struct ssh_cipher_struct *, void *, void *, size_t)' (aka 'void (*)(struct ssh_cipher_struct *, void *, void *, unsigned int)') with an expression of type 'void (struct ssh_cipher_struct *, void *, void *, unsigned long)' [-Wincompatible-function-pointer-types]
+ .encrypt = des3_encrypt,
+ ^~~~~~~~~~~~
+TOPDIR/build/tmp/work/cortexa15t2hf-neon-yoe-linux-gnueabi/libssh/0.10.4-r0/git/src/libgcrypt.c:904:20: error: incompatible function pointer types initializing 'void (*)(struct ssh_cipher_struct *, void *, void *, size_t)' (aka 'void (*)(struct ssh_cipher_struct *, void *, void *, unsigned int)') with an expression of type 'void (struct ssh_cipher_struct *, void *, void *, unsigned long)' [-Wincompatible-function-pointer-types]
+ .decrypt = des3_decrypt
+ ^~~~~~~~~~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ src/libgcrypt.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/libgcrypt.c b/src/libgcrypt.c
+index f410d997..e3f66781 100644
+--- a/src/libgcrypt.c
++++ b/src/libgcrypt.c
+@@ -416,12 +416,12 @@ static int des3_set_key(struct ssh_cipher_struct *cipher, void *key, void *IV) {
+ }
+
+ static void des3_encrypt(struct ssh_cipher_struct *cipher, void *in,
+- void *out, unsigned long len) {
++ void *out, size_t len) {
+ gcry_cipher_encrypt(cipher->key[0], out, len, in, len);
+ }
+
+ static void des3_decrypt(struct ssh_cipher_struct *cipher, void *in,
+- void *out, unsigned long len) {
++ void *out, size_t len) {
+ gcry_cipher_decrypt(cipher->key[0], out, len, in, len);
+ }
+
diff --git a/meta-oe/recipes-support/libssh/libssh/0001-tests-CMakeLists.txt-do-not-search-ssh-sshd-commands.patch b/meta-oe/recipes-support/libssh/libssh/0001-tests-CMakeLists.txt-do-not-search-ssh-sshd-commands.patch
new file mode 100644
index 0000000000..d6bc75c3a6
--- /dev/null
+++ b/meta-oe/recipes-support/libssh/libssh/0001-tests-CMakeLists.txt-do-not-search-ssh-sshd-commands.patch
@@ -0,0 +1,36 @@
+From 69a89e8f015802f61637fed0d3791d20a594f298 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 15 Mar 2023 16:51:58 +0800
+Subject: [PATCH] tests/CMakeLists.txt: do not search ssh/sshd commands on host
+
+It will search ssh/sshd commands on host when configure. Since they are
+not required by unittests, we can skip the search.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+---
+ tests/CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index f5c30061..885c926a 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -86,6 +86,7 @@ set(TEST_TARGET_LIBRARIES
+
+ add_subdirectory(unittests)
+
++if (CLIENT_TESTING OR SERVER_TESTING)
+ # OpenSSH Capabilities are required for all unit tests
+ find_program(SSH_EXECUTABLE NAMES ssh)
+ if (SSH_EXECUTABLE)
+@@ -302,6 +303,7 @@ if (CLIENT_TESTING OR SERVER_TESTING)
+
+ message(STATUS "TORTURE_ENVIRONMENT=${TORTURE_ENVIRONMENT}")
+ endif ()
++endif ()
+
+ configure_file(tests_config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/tests_config.h)
+
diff --git a/meta-oe/recipes-support/libssh/libssh/run-ptest b/meta-oe/recipes-support/libssh/libssh/run-ptest
new file mode 100644
index 0000000000..6346b72d50
--- /dev/null
+++ b/meta-oe/recipes-support/libssh/libssh/run-ptest
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+ptestdir=$(dirname "$(readlink -f "$0")")
+cd "$ptestdir"/tests || exit
+
+tests=$(find * -type f -name 'torture_*')
+
+for f in $tests
+do
+ if test -x ./"$f"; then
+ if ./"$f" > ./"$f".out 2> ./"$f".err; then
+ echo "PASS: $f"
+ else
+ echo "FAIL: $f"
+ fi
+ fi
+done
diff --git a/meta-oe/recipes-support/libssh/libssh_0.10.6.bb b/meta-oe/recipes-support/libssh/libssh_0.10.6.bb
new file mode 100644
index 0000000000..31f29c1b7d
--- /dev/null
+++ b/meta-oe/recipes-support/libssh/libssh_0.10.6.bb
@@ -0,0 +1,48 @@
+SUMMARY = "Multiplatform C library implementing the SSHv2 and SSHv1 protocol"
+HOMEPAGE = "http://www.libssh.org"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dabb4958b830e5df11d2b0ed8ea255a0"
+
+DEPENDS = "zlib openssl"
+
+SRC_URI = "git://git.libssh.org/projects/libssh.git;protocol=https;branch=stable-0.10 \
+ file://0001-tests-CMakeLists.txt-do-not-search-ssh-sshd-commands.patch \
+ file://0001-libgcrypt.c-Fix-prototype-of-des3_encrypt-des3_decry.patch \
+ file://run-ptest \
+ "
+SRCREV = "10e09e273f69e149389b3e0e5d44b8c221c2e7f6"
+
+S = "${WORKDIR}/git"
+
+inherit cmake ptest
+
+PACKAGECONFIG ??= "gcrypt ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
+PACKAGECONFIG[gssapi] = "-DWITH_GSSAPI=1, -DWITH_GSSAPI=0, krb5, "
+PACKAGECONFIG[gcrypt] = "-DWITH_GCRYPT=1, -DWITH_GCRYPT=0, libgcrypt, "
+PACKAGECONFIG[tests] = "-DUNIT_TESTING=1, -DUNIT_TESTING=0, cmocka"
+
+ARM_INSTRUCTION_SET:armv5 = "arm"
+
+EXTRA_OECMAKE = " \
+ -DWITH_PCAP=1 \
+ -DWITH_SFTP=1 \
+ -DWITH_ZLIB=1 \
+ -DWITH_EXAMPLES=0 \
+ "
+
+do_compile:prepend () {
+ if [ ${PTEST_ENABLED} = "1" ]; then
+ sed -i -e 's|${B}|${PTEST_PATH}|g' ${B}/config.h
+ sed -i -e 's|${S}|${PTEST_PATH}|g' ${B}/config.h
+ fi
+}
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -f ${B}/tests/unittests/torture_* ${D}${PTEST_PATH}/tests/
+ install -d ${D}${PTEST_PATH}/tests/unittests
+ cp -f ${S}/tests/unittests/hello*.sh ${D}${PTEST_PATH}/tests/unittests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/libssh/libssh_0.8.9.bb b/meta-oe/recipes-support/libssh/libssh_0.8.9.bb
deleted file mode 100644
index c7e9c3320c..0000000000
--- a/meta-oe/recipes-support/libssh/libssh_0.8.9.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Multiplatform C library implementing the SSHv2 and SSHv1 protocol"
-HOMEPAGE = "http://www.libssh.org"
-SECTION = "libs"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dabb4958b830e5df11d2b0ed8ea255a0"
-
-DEPENDS = "zlib openssl"
-
-SRC_URI = "git://git.libssh.org/projects/libssh.git;protocol=https;branch=stable-0.8"
-SRCREV = "04685a74df9ce1db1bc116a83a0da78b4f4fa1f8"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-PACKAGECONFIG ??= "gcrypt"
-PACKAGECONFIG[gssapi] = "-DWITH_GSSAPI=1, -DWITH_GSSAPI=0, krb5, "
-PACKAGECONFIG[gcrypt] = "-DWITH_GCRYPT=1, -DWITH_GCRYPT=0, libgcrypt, "
-
-ARM_INSTRUCTION_SET:armv5 = "arm"
-
-EXTRA_OECMAKE = " \
- -DWITH_PCAP=1 \
- -DWITH_SFTP=1 \
- -DWITH_ZLIB=1 \
- -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
- "
-
-do_configure:prepend () {
- # Disable building of examples
- sed -i -e '/add_subdirectory(examples)/s/^/#DONOTWANT/' ${S}/CMakeLists.txt \
- || bbfatal "Failed to disable examples"
-}
-
-TOOLCHAIN = "gcc"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch b/meta-oe/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch
new file mode 100644
index 0000000000..2529d5d9d1
--- /dev/null
+++ b/meta-oe/recipes-support/libstemmer/libstemmer/0001-Build-so-lib.patch
@@ -0,0 +1,57 @@
+From eacc9e9c62a3857ce1e2e24b81fc22d8ae91f422 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Thu, 9 May 2019 22:06:48 +0200
+Subject: [PATCH] Build so-lib
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Stolen from [1]
+
+[1] https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/snowball/trunk/dynamiclib.diff
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ GNUmakefile | 7 +++++--
+ libstemmer/symbol.map | 6 ++++++
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+ create mode 100644 libstemmer/symbol.map
+
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -170,12 +170,12 @@ C_OTHER_OBJECTS = $(C_OTHER_SOURCES:.c=.
+ JAVA_CLASSES = $(JAVA_SOURCES:.java=.class)
+ JAVA_RUNTIME_CLASSES=$(JAVARUNTIME_SOURCES:.java=.class)
+
+-CFLAGS=-O2 -W -Wall -Wmissing-prototypes -Wmissing-declarations
++CFLAGS=-O2 -fPIC -W -Wall -Wmissing-prototypes -Wmissing-declarations
+ CPPFLAGS=
+
+ INCLUDES=-Iinclude
+
+-all: snowball$(EXEEXT) libstemmer.a stemwords$(EXEEXT) $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
++all: snowball$(EXEEXT) libstemmer.a libstemmer.so stemwords$(EXEEXT) $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
+
+ algorithms.mk: libstemmer/mkalgorithms.pl libstemmer/modules.txt
+ libstemmer/mkalgorithms.pl algorithms.mk libstemmer/modules.txt
+@@ -225,6 +225,9 @@ libstemmer/libstemmer.o: libstemmer/modu
+ libstemmer.a: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
+ $(AR) -cru $@ $^
+
++libstemmer.so: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
++ $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname,libstemmer.so.0,-version-script,libstemmer/symbol.map -o $@.0.0.0 $^
++
+ examples/%.o: examples/%.c
+ $(CC) $(CFLAGS) $(INCLUDES) $(CPPFLAGS) -c -o $@ $<
+
+--- /dev/null
++++ b/libstemmer/symbol.map
+@@ -0,0 +1,6 @@
++SB_STEMMER_0 {
++ global:
++ sb_stemmer_*;
++ local:
++ *;
++};
diff --git a/meta-oe/recipes-support/libstemmer/libstemmer_2.2.0.bb b/meta-oe/recipes-support/libstemmer/libstemmer_2.2.0.bb
new file mode 100644
index 0000000000..be2935a385
--- /dev/null
+++ b/meta-oe/recipes-support/libstemmer/libstemmer_2.2.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Snowball compiler and stemming algorithms"
+HOMEPAGE = "https://snowballstem.org/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=19139aaf3c8c8fa1ca6edd59c072fb9f"
+
+DEPENDS:append:class-target = " ${BPN}-native"
+
+SRC_URI = "git://github.com/snowballstem/snowball.git;branch=master;protocol=https \
+ file://0001-Build-so-lib.patch \
+ "
+SRCREV = "48a67a2831005f49c48ec29a5837640e23e54e6b"
+S = "${WORKDIR}/git"
+
+LIBVER = "0.0.0"
+
+inherit lib_package
+
+do_compile:prepend:class-target() {
+ # use native tools
+ sed -i 's:./snowball :snowball :g' ${S}/GNUmakefile
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 755 ${S}/snowball ${D}${bindir}
+ install -m 755 ${S}/stemwords ${D}${bindir}
+
+ install -d ${D}${libdir}
+ install -m 755 ${S}/libstemmer.so.${LIBVER} ${D}${libdir}/
+ ln -s libstemmer.so.${LIBVER} ${D}${libdir}/libstemmer.so.0
+ ln -s libstemmer.so.${LIBVER} ${D}${libdir}/libstemmer.so
+
+ install -d ${D}${includedir}
+ install -m 644 ${S}/include/*.h ${D}${includedir}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch b/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch
index 31c0d29e93..4929eece06 100644
--- a/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch
+++ b/meta-oe/recipes-support/libtar/files/0002-Do-not-strip-libtar.patch
@@ -4,6 +4,8 @@ Date: Wed, 2 Nov 2016 05:43:43 -0400
Subject: [PATCH] Do not strip libtar.
---
+Upstream-Status: Pending
+
libtar/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch b/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch
index 178a970299..efde754be7 100644
--- a/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch
+++ b/meta-oe/recipes-support/libtar/files/fix_libtool_sysroot.patch
@@ -1,4 +1,6 @@
---
+Upstream-Status: Pending
+
configure.ac | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch b/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch
index a4a17ed85b..f0bd53ee8e 100644
--- a/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch
+++ b/meta-oe/recipes-support/libteam/libteam/0001-include-sys-select.h-for-fd_set-definition.patch
@@ -8,6 +8,8 @@ teamnl.c:160:2: error: unknown type name 'fd_set'; did you mean 'fpos_t'?
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
utils/teamnl.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch b/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch
index beabf63ca3..ed877a721e 100644
--- a/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch
+++ b/meta-oe/recipes-support/libteam/libteam/0002-teamd-Re-adjust-include-header-order.patch
@@ -12,6 +12,8 @@ tinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
teamd/teamd_runner_lacp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/libteam/libteam_1.31.bb b/meta-oe/recipes-support/libteam/libteam_1.31.bb
index 023cea9039..6fe10abe01 100644
--- a/meta-oe/recipes-support/libteam/libteam_1.31.bb
+++ b/meta-oe/recipes-support/libteam/libteam_1.31.bb
@@ -35,7 +35,13 @@ FILES:${PN}-utils = "${bindir}/bond2team \
"
RDEPENDS:${PN}-utils = "bash"
-RDEPENDS:${PN}-ptest = "python3-core"
+RDEPENDS:${PN}-ptest = "python3-core libteam-utils"
+# Ensure kernel has these mods enabled features/net/team/team.scc
+RRECOMMENDS:${PN} += "kernel-module-team kernel-module-team-mode-activebackup \
+ kernel-module-team-mode-broadcast \
+ kernel-module-team-mode-loadbalance \
+ kernel-module-team-mode-random \
+ kernel-module-team-mode-roundrobin"
do_install_ptest() {
install ${S}/scripts/team_basic_test.py ${D}${PTEST_PATH}/
diff --git a/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb b/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb
index 138df9f300..6fbdd071e8 100644
--- a/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb
+++ b/meta-oe/recipes-support/libtinyxml/libtinyxml_2.6.2.bb
@@ -6,7 +6,6 @@ LICENSE = "Zlib"
LIC_FILES_CHKSUM = "file://readme.txt;md5=f8f366f3370dda889f60faa7db162cf4"
SECTION = "libs"
-PR = "r5"
SRC_URI = "${SOURCEFORGE_MIRROR}/tinyxml/tinyxml_${@'${PV}'.replace('.', '_')}.tar.gz \
file://enforce-use-stl.patch \
diff --git a/meta-oe/recipes-support/libtinyxml2/files/run-ptest b/meta-oe/recipes-support/libtinyxml2/files/run-ptest
new file mode 100644
index 0000000000..870912672e
--- /dev/null
+++ b/meta-oe/recipes-support/libtinyxml2/files/run-ptest
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+for i in `ls xmltest`; do
+ ./$i
+ if [ $? -eq 0 ]; then
+ echo "PASS: $i"
+ else
+ echo "FAIL: $i"
+ fi
+done
diff --git a/meta-oe/recipes-support/libtinyxml2/libtinyxml2_10.0.0.bb b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_10.0.0.bb
new file mode 100644
index 0000000000..bcd309282b
--- /dev/null
+++ b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_10.0.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "TinyXML-2 is a simple, small, efficient, C++ XML parser that can be easily integrating into other programs"
+HOMEPAGE = "https://leethomason.github.io/tinyxml2"
+SECTION = "libs"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=135624eef03e1f1101b9ba9ac9b5fffd"
+
+SRCREV = "321ea883b7190d4e85cae5512a12e5eaa8f8731f"
+SRC_URI = "git://github.com/leethomason/tinyxml2.git;branch=master;protocol=https \
+ file://run-ptest"
+
+S = "${WORKDIR}/git"
+
+inherit meson ptest
+
+EXTRA_OEMESON += " \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', '-Dtests=true', '', d)} \
+ -Ddefault_library=both \
+"
+
+CXXFLAGS:append:libc-musl = " -D_LARGEFILE64_SOURCE"
+
+do_install_ptest() {
+ install -Dm 0755 ${B}/xmltest ${D}${PTEST_PATH}/xmltest
+ install -d ${D}${PTEST_PATH}/resources/out
+ for f in ${S}/resources/*.xml; do
+ install -m 0644 $f ${D}${PTEST_PATH}/resources/
+ done
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/libtinyxml2/libtinyxml2_9.0.0.bb b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_9.0.0.bb
deleted file mode 100644
index 7f205987f4..0000000000
--- a/meta-oe/recipes-support/libtinyxml2/libtinyxml2_9.0.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "TinyXML-2 is a simple, small, efficient, C++ XML parser that can be easily integrating into other programs"
-HOMEPAGE = "http://www.grinninglizard.com/tinyxml2/"
-SECTION = "libs"
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=135624eef03e1f1101b9ba9ac9b5fffd"
-
-SRC_URI = "git://github.com/leethomason/tinyxml2.git;branch=master;protocol=https"
-
-SRCREV = "1dee28e51f9175a31955b9791c74c430fe13dc82"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-BBCLASSEXTEND = "native"
-
-EXTRA_OECMAKE += "-Dtinyxml2_SHARED_LIBS=YES"
diff --git a/meta-oe/recipes-support/libtommath/libtommath_1.3.0.bb b/meta-oe/recipes-support/libtommath/libtommath_1.3.0.bb
new file mode 100644
index 0000000000..4d6c06240d
--- /dev/null
+++ b/meta-oe/recipes-support/libtommath/libtommath_1.3.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "LibTomMath is a number theoretic multiple-precision integer library"
+HOMEPAGE = "https://www.libtom.net/LibTomMath"
+SECTION = "libs"
+LICENSE = "Unlicense"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=23e7e0a32e53a2b1d35f5fd9ef053402"
+
+DEPENDS = "libtool-cross"
+
+SRC_URI = "git://github.com/libtom/libtommath.git;protocol=https;branch=master"
+
+SRCREV = "95d80fd8229d05dd6cb4ec88bc8d4f5377ff00ef"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "'PREFIX=${prefix}' 'DESTDIR=${D}' 'LIBPATH=${libdir}' 'CFLAGS=${CFLAGS}'"
+
+do_compile() {
+ oe_runmake -f makefile.shared
+}
+
+do_install() {
+ oe_runmake -f makefile.shared install
+}
diff --git a/meta-oe/recipes-support/liburing/liburing/0001-do-not-build-examples.patch b/meta-oe/recipes-support/liburing/liburing/0001-do-not-build-examples.patch
deleted file mode 100644
index 03ab075314..0000000000
--- a/meta-oe/recipes-support/liburing/liburing/0001-do-not-build-examples.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 653c39b0b30b2a329db5041e558cfc97c03d6bfb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 17 Feb 2021 19:18:16 -0800
-Subject: [PATCH] do not build examples
-
-examples need ucontext and some architectures on musl do not have it
-implemented e.g. riscv
-
-Upstream-Status: Inappropriate [Arch-Specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 5d9c4dc..53e1615 100644
---- a/Makefile
-+++ b/Makefile
-@@ -11,7 +11,6 @@ default: all
- all:
- @$(MAKE) -C src
- @$(MAKE) -C test
-- @$(MAKE) -C examples
-
- .PHONY: all install default clean test
- .PHONY: FORCE cscope
---
-2.31.1
-
diff --git a/meta-oe/recipes-support/liburing/liburing_2.2.bb b/meta-oe/recipes-support/liburing/liburing_2.2.bb
deleted file mode 100644
index 8cc7d74f9f..0000000000
--- a/meta-oe/recipes-support/liburing/liburing_2.2.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "This is the io_uring library, liburing."
-DESCRIPTION = "liburing provides helpers to setup and teardown io_uring \
-instances, and also a simplified interface for applications that don't need \
-(or want) to deal with the full kernel side implementation."
-HOMEPAGE = "https://github.com/axboe/liburing"
-BUGTRACKER = "https://github.com/axboe/liburing/issues"
-SECTION = "libs"
-
-LICENSE = "LGPL-2.1-only | MIT"
-LIC_FILES_CHKSUM = "file://README;beginline=41;endline=44;md5=2b0e9926530c269f5ae95560370195af"
-
-SRC_URI = "git://github.com/axboe/liburing.git;branch=master;protocol=https"
-SRC_URI:append:libc-musl:riscv64 = " file://0001-do-not-build-examples.patch "
-SRC_URI:append:libc-musl:riscv32 = " file://0001-do-not-build-examples.patch "
-SRCREV = "dda4848a9911120a903bef6284fb88286f4464c9"
-
-S = "${WORKDIR}/git"
-
-DEPENDS:append:libc-musl = " libucontext"
-XCFLAGS = "-pthread"
-XCFLAGS:append:libc-musl = " -lucontext"
-
-EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'LDFLAGS=${LDFLAGS}' 'XCFLAGS=${XCFLAGS}' 'BUILDDIR=${S}'"
-do_configure() {
- ${S}/configure --prefix=${prefix} --libdir=${libdir} --libdevdir=${libdir} --mandir=${mandir} --datadir=${datadir} --includedir=${includedir}
-}
-do_install () {
- oe_runmake install DESTDIR=${D}
-}
diff --git a/meta-oe/recipes-support/liburing/liburing_2.5.bb b/meta-oe/recipes-support/liburing/liburing_2.5.bb
new file mode 100644
index 0000000000..440259ffbd
--- /dev/null
+++ b/meta-oe/recipes-support/liburing/liburing_2.5.bb
@@ -0,0 +1,29 @@
+SUMMARY = "This is the io_uring library, liburing."
+DESCRIPTION = "liburing provides helpers to setup and teardown io_uring \
+instances, and also a simplified interface for applications that don't need \
+(or want) to deal with the full kernel side implementation."
+HOMEPAGE = "https://github.com/axboe/liburing"
+BUGTRACKER = "https://github.com/axboe/liburing/issues"
+SECTION = "libs"
+
+LICENSE = "LGPL-2.1-only | MIT"
+LIC_FILES_CHKSUM = "file://README;beginline=41;endline=44;md5=2b0e9926530c269f5ae95560370195af"
+
+SRC_URI = "git://github.com/axboe/liburing.git;branch=master;protocol=https"
+SRCREV = "f4e42a515cd78c8c9cac2be14222834be5f8df2b"
+
+S = "${WORKDIR}/git"
+
+DEPENDS:append:libc-musl = " libucontext"
+XCFLAGS = "-pthread"
+XCFLAGS:append:libc-musl = " -lucontext"
+
+EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'LDFLAGS=${LDFLAGS}' 'XCFLAGS=${XCFLAGS}' 'BUILDDIR=${S}'"
+do_configure() {
+ ${S}/configure --prefix=${prefix} --libdir=${libdir} --libdevdir=${libdir} --mandir=${mandir} --datadir=${datadir} --includedir=${includedir}
+}
+do_install () {
+ oe_runmake install DESTDIR=${D}
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch b/meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch
index f4f759c85e..7df44737ad 100644
--- a/meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch
+++ b/meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch
@@ -8,21 +8,23 @@ We need the definitions for things like u_intX_t
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---
libusb/usb.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libusb/usb.h b/libusb/usb.h
-index fa0e6c6..4e88eb8 100644
+index ea62543..18b610a 100644
--- a/libusb/usb.h
+++ b/libusb/usb.h
-@@ -45,6 +45,8 @@ typedef unsigned __int32 uint32_t;
+@@ -46,6 +46,8 @@ typedef unsigned __int32 uint32_t;
#include <stdint.h>
#endif
+#include <sys/types.h>
+
- /*
- * USB spec information
- *
+ /* On linux PATH_MAX is defined in linux/limits.h. */
+ #if defined(__linux__)
+ #include <linux/limits.h>
+--
+2.34.1
+
diff --git a/meta-oe/recipes-support/libusb/libusb-compat/0002-automake-make-example-programs-installable.patch b/meta-oe/recipes-support/libusb/libusb-compat/0002-automake-make-example-programs-installable.patch
new file mode 100644
index 0000000000..faf532cad2
--- /dev/null
+++ b/meta-oe/recipes-support/libusb/libusb-compat/0002-automake-make-example-programs-installable.patch
@@ -0,0 +1,24 @@
+From 9dcdfa716e3c3831d9b70472b39dab2fd370f503 Mon Sep 17 00:00:00 2001
+From: Yoann Congal <yoann.congal@smile.fr>
+Date: Sun, 26 Feb 2023 16:04:35 +0100
+Subject: [PATCH] automake: make example programs installable
+
+The example programs are used as tests for ptest, so we need a way to
+install them on the rootfs.
+
+Upstream-Status: Inappropriate [oe-core specific]
+---
+ examples/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/examples/Makefile.am b/examples/Makefile.am
+index 9bd3efc..f4324c2 100644
+--- a/examples/Makefile.am
++++ b/examples/Makefile.am
+@@ -1,5 +1,5 @@
+ AM_CPPFLAGS = -I$(top_srcdir)/libusb
+-noinst_PROGRAMS = lsusb testlibusb
++bin_PROGRAMS = lsusb testlibusb
+
+ lsusb_SOURCES = lsusb.c
+ lsusb_LDADD = ../libusb/libusb.la
diff --git a/meta-oe/recipes-support/libusb/libusb-compat/run-ptest b/meta-oe/recipes-support/libusb/libusb-compat/run-ptest
new file mode 100644
index 0000000000..901662d696
--- /dev/null
+++ b/meta-oe/recipes-support/libusb/libusb-compat/run-ptest
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+rc=0
+for TEST in lsusb testlibusb; do
+ if ! ./$TEST ; then
+ echo "FAIL: $TEST"
+ rc=$((rc + 1))
+ else
+ echo "PASS: $TEST"
+ fi
+done
+
+# return number of failed tests
+exit $rc
diff --git a/meta-oe/recipes-support/libusb/libusb-compat_0.1.7.bb b/meta-oe/recipes-support/libusb/libusb-compat_0.1.7.bb
deleted file mode 100644
index 5ab08f6e50..0000000000
--- a/meta-oe/recipes-support/libusb/libusb-compat_0.1.7.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "libusb-0.1 compatibility layer for libusb1"
-DESCRIPTION = "libusb-0.1 compatible layer for libusb1, a drop-in replacement \
-that aims to look, feel and behave exactly like libusb-0.1"
-HOMEPAGE = "http://www.libusb.org/"
-BUGTRACKER = "http://www.libusb.org/report"
-SECTION = "libs"
-
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f2ac5f3ac4835e8f91324a26a590a423"
-DEPENDS = "libusb1"
-
-# Few packages are known not to work with libusb-compat (e.g. libmtp-1.0.0),
-# so here libusb-0.1 is removed completely instead of adding virtual/libusb0.
-# Besides, libusb-0.1 uses a per 1ms polling that hurts a lot to power
-# consumption.
-PROVIDES = "libusb virtual/libusb0"
-BBCLASSEXTEND = "native nativesdk"
-
-PE = "1"
-
-SRC_URI = " \
- git://github.com/libusb/libusb-compat-0.1.git;protocol=https;branch=master \
- file://0001-usb.h-Include-sys-types.h.patch \
-"
-SRCREV = "4a27760ec5954ec8605e052a3207afbe0979eeef"
-S = "${WORKDIR}/git"
-
-UPSTREAM_CHECK_URI = "https://github.com/libusb/libusb-compat-0.1/releases"
-
-BINCONFIG = "${bindir}/libusb-config"
-
-inherit autotools pkgconfig binconfig-disabled lib_package
-
-EXTRA_OECONF = "--libdir=${base_libdir}"
-
-do_install:append() {
- install -d ${D}${libdir}
- if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
- mv ${D}${base_libdir}/pkgconfig ${D}${libdir}
- fi
-}
diff --git a/meta-oe/recipes-support/libusb/libusb-compat_0.1.8.bb b/meta-oe/recipes-support/libusb/libusb-compat_0.1.8.bb
new file mode 100644
index 0000000000..57f1f54387
--- /dev/null
+++ b/meta-oe/recipes-support/libusb/libusb-compat_0.1.8.bb
@@ -0,0 +1,47 @@
+SUMMARY = "libusb-0.1 compatibility layer for libusb1"
+DESCRIPTION = "libusb-0.1 compatible layer for libusb1, a drop-in replacement \
+that aims to look, feel and behave exactly like libusb-0.1"
+HOMEPAGE = "http://www.libusb.org/"
+BUGTRACKER = "http://www.libusb.org/report"
+SECTION = "libs"
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f2ac5f3ac4835e8f91324a26a590a423"
+DEPENDS = "libusb1"
+
+# libusb-compat dlopen() libusb1 so we need to explicitly RDEPENDS on it
+RDEPENDS:${PN} += "libusb1"
+
+# Few packages are known not to work with libusb-compat (e.g. libmtp-1.0.0),
+# so here libusb-0.1 is removed completely instead of adding virtual/libusb0.
+# Besides, libusb-0.1 uses a per 1ms polling that hurts a lot to power
+# consumption.
+PROVIDES = "libusb virtual/libusb0"
+BBCLASSEXTEND = "native nativesdk"
+
+PE = "1"
+
+SRC_URI = " \
+ git://github.com/libusb/libusb-compat-0.1.git;protocol=https;branch=master \
+ file://0001-usb.h-Include-sys-types.h.patch \
+ file://0002-automake-make-example-programs-installable.patch \
+ file://run-ptest \
+"
+SRCREV = "c497eff1ae8c4cfd4fdff370f04c78fa0584f4f3"
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_URI = "https://github.com/libusb/libusb-compat-0.1/releases"
+
+BINCONFIG = "${bindir}/libusb-config"
+
+inherit autotools pkgconfig binconfig-disabled lib_package ptest
+
+# examples are used as ptest so enable them at configuration if needed
+EXTRA_OECONF += "${@bb.utils.contains('PTEST_ENABLED', '1', '--enable-examples-build', '', d)}"
+
+# Move test binaries out of bindir to avoid clashing with a "real" lsusb.
+do_install_ptest() {
+ for bin in lsusb testlibusb; do
+ mv ${D}${bindir}/$bin ${D}${PTEST_PATH}
+ done
+}
diff --git a/meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch b/meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch
index 6be49fbca4..16506999e2 100644
--- a/meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch
+++ b/meta-oe/recipes-support/libusbg/libusbg/0001-Fix-out-of-tree-builds.patch
@@ -7,7 +7,7 @@ The include flag should point to the source directory, not the build
directory.
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-Upstream-status: Submitted [https://github.com/libusbg/libusbg/pull/9]
+Upstream-Status: Submitted [https://github.com/libusbg/libusbg/pull/9]
---
examples/Makefile.am | 2 +-
src/Makefile.am | 2 +-
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx/0001-fix-stack-buffer-overflow-in-usbg_f_foo_attr_val-pro.patch b/meta-oe/recipes-support/libusbgx/libusbgx/0001-fix-stack-buffer-overflow-in-usbg_f_foo_attr_val-pro.patch
new file mode 100644
index 0000000000..24a2760d11
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx/0001-fix-stack-buffer-overflow-in-usbg_f_foo_attr_val-pro.patch
@@ -0,0 +1,796 @@
+From 421b366cafdf954b7e1cd2bbb78b55e04d73c082 Mon Sep 17 00:00:00 2001
+From: Wlodzimierz Lipert <wlodzimierz.lipert@gmail.com>
+Date: Mon, 28 Nov 2022 08:29:54 +0100
+Subject: [PATCH] fix: stack-buffer-overflow in usbg_f_foo_attr_val processing.
+ Changed ABI version from 2 to 3.
+
+Upstream-Status: Submitted [https://github.com/linux-usb-gadgets/libusbgx/pull/72]
+
+Signed-off-by: Wlodzimierz Lipert <wlodzimierz.lipert@gmail.com>
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ include/usbg/function/hid.h | 28 ++++++++++++----------------
+ include/usbg/function/midi.h | 35 +++++++++++++----------------------
+ include/usbg/function/ms.h | 30 +++++++++++-------------------
+ include/usbg/function/net.h | 34 ++++++++++++++--------------------
+ include/usbg/function/uac2.h | 29 +++++++++++++----------------
+ include/usbg/usbg_internal.h | 10 +++++-----
+ src/Makefile.am | 2 +-
+ src/function/ether.c | 10 +++++-----
+ src/function/hid.c | 12 ++++++------
+ src/function/midi.c | 10 +++++-----
+ src/function/ms.c | 10 +++++-----
+ src/function/uac2.c | 10 +++++-----
+ src/function/uvc.c | 10 +++++-----
+ src/usbg_common.c | 2 +-
+ 14 files changed, 101 insertions(+), 131 deletions(-)
+
+diff --git a/include/usbg/function/hid.h b/include/usbg/function/hid.h
+index 3463140..3b3907b 100644
+--- a/include/usbg/function/hid.h
++++ b/include/usbg/function/hid.h
+@@ -56,11 +56,6 @@ union usbg_f_hid_attr_val {
+ unsigned int subclass;
+ };
+
+-#define USBG_F_HID_UINT_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_hid_attr_val, protocol, WHAT)
+-
+-#define USBG_F_HID_RDESC_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_hid_attr_val, report_desc, WHAT)
+ /**
+ * @brief Cast from generic function to hid function
+ * @param[in] f function to be converted to hid funciton.
+@@ -137,7 +132,7 @@ int usbg_f_hid_get_attr_val(usbg_f_hid *hf, enum usbg_f_hid_attr attr,
+ * @return 0 on success usbg_error if error occurred.
+ */
+ int usbg_f_hid_set_attr_val(usbg_f_hid *hf, enum usbg_f_hid_attr attr,
+- union usbg_f_hid_attr_val val);
++ const union usbg_f_hid_attr_val *val);
+
+ /**
+ * @brief Get the minor and major of corresponding character device
+@@ -173,8 +168,9 @@ static inline int usbg_f_hid_get_protocol(usbg_f_hid *hf,
+ static inline int usbg_f_hid_set_protocol(usbg_f_hid *hf,
+ unsigned int protocol)
+ {
+- return usbg_f_hid_set_attr_val(hf, USBG_F_HID_PROTOCOL,
+- USBG_F_HID_UINT_TO_ATTR_VAL(protocol));
++
++ union usbg_f_hid_attr_val val = {.protocol = protocol};
++ return usbg_f_hid_set_attr_val(hf, USBG_F_HID_PROTOCOL, &val);
+ }
+
+ /**
+@@ -199,8 +195,8 @@ static inline int usbg_f_hid_get_report_desc(usbg_f_hid *hf,
+ static inline int usbg_f_hid_set_report_desc(usbg_f_hid *hf,
+ struct usbg_f_hid_report_desc report_desc)
+ {
+- return usbg_f_hid_set_attr_val(hf, USBG_F_HID_REPORT_DESC,
+- USBG_F_HID_RDESC_TO_ATTR_VAL(report_desc));
++ union usbg_f_hid_attr_val val = {.report_desc = report_desc};
++ return usbg_f_hid_set_attr_val(hf, USBG_F_HID_REPORT_DESC, &val);
+ }
+
+ /**
+@@ -242,8 +238,8 @@ static inline int usbg_f_hid_set_report_desc_raw(usbg_f_hid *hf,
+ .len = len,
+ };
+
+- return usbg_f_hid_set_attr_val(hf, USBG_F_HID_REPORT_DESC,
+- USBG_F_HID_RDESC_TO_ATTR_VAL(report_desc));
++ union usbg_f_hid_attr_val val = {.report_desc = report_desc};
++ return usbg_f_hid_set_attr_val(hf, USBG_F_HID_REPORT_DESC, &val);
+ }
+
+ /**
+@@ -268,8 +264,8 @@ static inline int usbg_f_hid_get_report_length(usbg_f_hid *hf,
+ static inline int usbg_f_hid_set_report_length(usbg_f_hid *hf,
+ unsigned int report_length)
+ {
+- return usbg_f_hid_set_attr_val(hf, USBG_F_HID_REPORT_LENGTH,
+- USBG_F_HID_UINT_TO_ATTR_VAL(report_length));
++ union usbg_f_hid_attr_val val = {.report_length = report_length};
++ return usbg_f_hid_set_attr_val(hf, USBG_F_HID_REPORT_LENGTH, &val);
+ }
+
+ /**
+@@ -294,8 +290,8 @@ static inline int usbg_f_hid_get_subclass(usbg_f_hid *hf,
+ static inline int usbg_f_hid_set_subclass(usbg_f_hid *hf,
+ unsigned int subclass)
+ {
+- return usbg_f_hid_set_attr_val(hf, USBG_F_HID_SUBCLASS,
+- USBG_F_HID_UINT_TO_ATTR_VAL(subclass));
++ union usbg_f_hid_attr_val val = {.subclass = subclass};
++ return usbg_f_hid_set_attr_val(hf, USBG_F_HID_SUBCLASS, &val);
+ }
+
+ #ifdef __cplusplus
+diff --git a/include/usbg/function/midi.h b/include/usbg/function/midi.h
+index 39df047..b9d9d4f 100644
+--- a/include/usbg/function/midi.h
++++ b/include/usbg/function/midi.h
+@@ -53,15 +53,6 @@ union usbg_f_midi_attr_val {
+ unsigned int qlen;
+ };
+
+-#define USBG_F_MIDI_INT_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_midi_attr_val, index, WHAT)
+-
+-#define USBG_F_MIDI_UINT_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_midi_attr_val, qlen, WHAT)
+-
+-#define USBG_F_MIDI_CCHAR_PTR_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_midi_attr_val, id, WHAT)
+-
+ /**
+ * @brief Cast from generic function to midi function
+ * @param[in] f function to be converted to midi funciton.
+@@ -126,7 +117,7 @@ int usbg_f_midi_get_attr_val(usbg_f_midi *mf, enum usbg_f_midi_attr attr,
+ * @return 0 on success usbg_error if error occurred.
+ */
+ int usbg_f_midi_set_attr_val(usbg_f_midi *mf, enum usbg_f_midi_attr attr,
+- union usbg_f_midi_attr_val val);
++ const union usbg_f_midi_attr_val *val);
+
+ /**
+ * @brief Get the index value of MIDI adapter
+@@ -148,8 +139,8 @@ static inline int usbg_f_midi_get_index(usbg_f_midi *mf, int *index)
+ */
+ static inline int usbg_f_midi_set_index(usbg_f_midi *mf, int index)
+ {
+- return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_INDEX,
+- USBG_F_MIDI_INT_TO_ATTR_VAL(index));
++ union usbg_f_midi_attr_val val = {.index = index};
++ return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_INDEX, &val);
+ }
+
+ /**
+@@ -188,8 +179,8 @@ int usbg_f_midi_get_id_s(usbg_f_midi *mf, char *buf, int len);
+ */
+ static inline int usbg_f_midi_set_id(usbg_f_midi *mf, const char *id)
+ {
+- return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_ID,
+- USBG_F_MIDI_CCHAR_PTR_TO_ATTR_VAL(id));
++ union usbg_f_midi_attr_val val = {.id = id};
++ return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_ID, &val);
+ }
+
+ /**
+@@ -212,8 +203,8 @@ static inline int usbg_f_midi_get_in_ports(usbg_f_midi *mf, unsigned *in_ports)
+ */
+ static inline int usbg_f_midi_set_in_ports(usbg_f_midi *mf, unsigned in_ports)
+ {
+- return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_IN_PORTS,
+- USBG_F_MIDI_UINT_TO_ATTR_VAL(in_ports));
++ union usbg_f_midi_attr_val val = {.in_ports = in_ports};
++ return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_IN_PORTS, &val);
+ }
+
+ /**
+@@ -236,8 +227,8 @@ static inline int usbg_f_midi_get_out_ports(usbg_f_midi *mf, unsigned *out_ports
+ */
+ static inline int usbg_f_midi_set_out_ports(usbg_f_midi *mf, unsigned out_ports)
+ {
+- return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_OUT_PORTS,
+- USBG_F_MIDI_UINT_TO_ATTR_VAL(out_ports));
++ union usbg_f_midi_attr_val val = {.out_ports = out_ports};
++ return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_OUT_PORTS, &val);
+ }
+
+ /**
+@@ -264,8 +255,8 @@ static inline int usbg_f_midi_get_buflen(usbg_f_midi *mf, int *buflen)
+ */
+ static inline int usbg_f_midi_set_buflen(usbg_f_midi *mf, unsigned buflen)
+ {
+- return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_BUFLEN,
+- USBG_F_MIDI_UINT_TO_ATTR_VAL(buflen));
++ union usbg_f_midi_attr_val val = {.buflen = buflen};
++ return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_BUFLEN, &val);
+ }
+
+ /**
+@@ -288,8 +279,8 @@ static inline int usbg_f_midi_get_qlen(usbg_f_midi *mf, unsigned *qlen)
+ */
+ static inline int usbg_f_midi_set_qlen(usbg_f_midi *mf, unsigned qlen)
+ {
+- return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_QLEN,
+- USBG_F_MIDI_UINT_TO_ATTR_VAL(qlen));
++ union usbg_f_midi_attr_val val = {.qlen = qlen};
++ return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_QLEN, &val);
+ }
+
+ #ifdef __cplusplus
+diff --git a/include/usbg/function/ms.h b/include/usbg/function/ms.h
+index 780464c..f52eb78 100644
+--- a/include/usbg/function/ms.h
++++ b/include/usbg/function/ms.h
+@@ -56,14 +56,6 @@ union usbg_f_ms_lun_attr_val {
+ const char *file;
+ };
+
+-#define USBG_F_MS_LUN_BOOL_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_ms_lun_attr_val, cdrom, WHAT)
+-
+-#define USBG_F_MS_LUN_CCHAR_PTR_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_ms_lun_attr_val, file, WHAT)
+-
+-
+-
+ /**
+ * @brief Cast from generic function to mass storage function
+ * @param[in] f function to be converted to ms funciton.
+@@ -157,7 +149,7 @@ int usbg_f_ms_get_lun_attr_val(usbg_f_ms *mf, int lun_id,
+ */
+ int usbg_f_ms_set_lun_attr_val(usbg_f_ms *mf, int lun_id,
+ enum usbg_f_ms_lun_attr lattr,
+- const union usbg_f_ms_lun_attr_val val);
++ const union usbg_f_ms_lun_attr_val *val);
+
+ /**
+ * @brief Get the value which determines if lun is visible as a cdrom
+@@ -183,8 +175,8 @@ static inline int usbg_f_ms_get_lun_cdrom(usbg_f_ms *mf, int lun_id,
+ static inline int usbg_f_ms_set_lun_cdrom(usbg_f_ms *mf, int lun_id,
+ bool cdrom)
+ {
+- return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_CDROM,
+- USBG_F_MS_LUN_BOOL_TO_ATTR_VAL(cdrom));
++ union usbg_f_ms_lun_attr_val val = {.cdrom = cdrom};
++ return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_CDROM, &val);
+ }
+
+ /**
+@@ -209,8 +201,8 @@ static inline int usbg_f_ms_get_lun_ro(usbg_f_ms *mf, int lun_id, bool *ro)
+ */
+ static inline int usbg_f_ms_set_lun_ro(usbg_f_ms *mf, int lun_id, bool ro)
+ {
+- return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_RO,
+- USBG_F_MS_LUN_BOOL_TO_ATTR_VAL(ro));
++ union usbg_f_ms_lun_attr_val val = {.ro = ro};
++ return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_RO, &val);
+ }
+
+ /**
+@@ -239,8 +231,8 @@ static inline int usbg_f_ms_get_lun_nofua(usbg_f_ms *mf, int lun_id,
+ static inline int usbg_f_ms_set_lun_nofua(usbg_f_ms *mf, int lun_id,
+ bool nofua)
+ {
+- return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_NOFUA,
+- USBG_F_MS_LUN_BOOL_TO_ATTR_VAL(nofua));
++ union usbg_f_ms_lun_attr_val val = {.nofua = nofua};
++ return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_NOFUA, &val);
+ }
+
+ /**
+@@ -267,8 +259,8 @@ static inline int usbg_f_ms_get_lun_removable(usbg_f_ms *mf, int lun_id,
+ static inline int usbg_f_ms_set_lun_removable(usbg_f_ms *mf, int lun_id,
+ bool removable)
+ {
+- return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_REMOVABLE,
+- USBG_F_MS_LUN_BOOL_TO_ATTR_VAL(removable));
++ union usbg_f_ms_lun_attr_val val = {.removable = removable};
++ return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_REMOVABLE, &val);
+ }
+
+ /**
+@@ -313,8 +305,8 @@ int usbg_f_ms_get_lun_file_s(usbg_f_ms *mf, int lun_id,
+ static inline int usbg_f_ms_set_lun_file(usbg_f_ms *mf, int lun_id,
+ const char *file)
+ {
+- return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_FILE,
+- USBG_F_MS_LUN_CCHAR_PTR_TO_ATTR_VAL(file));
++ union usbg_f_ms_lun_attr_val val = {.file = file};
++ return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_FILE, &val);
+ }
+
+ /**
+diff --git a/include/usbg/function/net.h b/include/usbg/function/net.h
+index b0409f1..06cee30 100644
+--- a/include/usbg/function/net.h
++++ b/include/usbg/function/net.h
+@@ -56,12 +56,6 @@ union usbg_f_net_attr_val {
+ unsigned int protocol;
+ };
+
+-#define USBG_F_NET_ETHER_ADDR_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_net_attr_val, dev_addr, WHAT)
+-
+-#define USBG_F_NET_INT_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_net_attr_val, qmult, WHAT)
+-
+ /**
+ * @brief Cast from generic function to net function
+ * @param[in] f function to be converted to net funciton.
+@@ -125,7 +119,7 @@ int usbg_f_net_get_attr_val(usbg_f_net *nf, enum usbg_f_net_attr attr,
+ * @return 0 on success usbg_error if error occurred.
+ */
+ int usbg_f_net_set_attr_val(usbg_f_net *nf, enum usbg_f_net_attr attr,
+- const union usbg_f_net_attr_val val);
++ const union usbg_f_net_attr_val *val);
+
+ /**
+ * @brief Get the value of device side MAC address
+@@ -136,7 +130,7 @@ int usbg_f_net_set_attr_val(usbg_f_net *nf, enum usbg_f_net_attr attr,
+ static inline int usbg_f_net_get_dev_addr(usbg_f_net *nf,
+ struct ether_addr *addr)
+ {
+- union usbg_f_net_attr_val val = { .dev_addr = *addr, };
++ union usbg_f_net_attr_val val = {.dev_addr = *addr};
+ return usbg_f_net_get_attr_val(nf, USBG_F_NET_DEV_ADDR, &val);
+ }
+
+@@ -149,8 +143,8 @@ static inline int usbg_f_net_get_dev_addr(usbg_f_net *nf,
+ static inline int usbg_f_net_set_dev_addr(usbg_f_net *nf,
+ const struct ether_addr *addr)
+ {
+- return usbg_f_net_set_attr_val(nf, USBG_F_NET_DEV_ADDR,
+- USBG_F_NET_ETHER_ADDR_TO_ATTR_VAL(*addr));
++ union usbg_f_net_attr_val val = {.dev_addr = *addr};
++ return usbg_f_net_set_attr_val(nf, USBG_F_NET_DEV_ADDR, &val);
+ }
+
+ /**
+@@ -175,8 +169,8 @@ static inline int usbg_f_net_get_host_addr(usbg_f_net *nf,
+ static inline int usbg_f_net_set_host_addr(usbg_f_net *nf,
+ const struct ether_addr *addr)
+ {
+- return usbg_f_net_set_attr_val(nf, USBG_F_NET_HOST_ADDR,
+- USBG_F_NET_ETHER_ADDR_TO_ATTR_VAL(*addr));
++ union usbg_f_net_attr_val val = {.host_addr = *addr};
++ return usbg_f_net_set_attr_val(nf, USBG_F_NET_HOST_ADDR, &val);
+ }
+
+ /**
+@@ -226,8 +220,8 @@ static inline int usbg_f_net_get_qmult(usbg_f_net *nf, int *qmult)
+ */
+ static inline int usbg_f_net_set_qmult(usbg_f_net *nf, int qmult)
+ {
+- return usbg_f_net_set_attr_val(nf, USBG_F_NET_QMULT,
+- USBG_F_NET_INT_TO_ATTR_VAL(qmult));
++ union usbg_f_net_attr_val val = {.qmult = qmult};
++ return usbg_f_net_set_attr_val(nf, USBG_F_NET_QMULT, &val);
+ }
+
+ /**
+@@ -250,8 +244,8 @@ static inline int usbg_f_net_get_class(usbg_f_net *nf, unsigned int *class_)
+ */
+ static inline int usbg_f_net_set_class(usbg_f_net *nf, unsigned int class_)
+ {
+- return usbg_f_net_set_attr_val(nf, USBG_F_NET_CLASS,
+- USBG_F_NET_INT_TO_ATTR_VAL(class_));
++ union usbg_f_net_attr_val val = {.class_ = class_};
++ return usbg_f_net_set_attr_val(nf, USBG_F_NET_CLASS, &val);
+ }
+
+ /**
+@@ -274,8 +268,8 @@ static inline int usbg_f_net_get_subclass(usbg_f_net *nf, int *subclass)
+ */
+ static inline int usbg_f_net_set_subclass(usbg_f_net *nf, unsigned int subclass)
+ {
+- return usbg_f_net_set_attr_val(nf, USBG_F_NET_SUBCLASS,
+- USBG_F_NET_INT_TO_ATTR_VAL(subclass));
++ union usbg_f_net_attr_val val = {.subclass = subclass};
++ return usbg_f_net_set_attr_val(nf, USBG_F_NET_SUBCLASS, &val);
+ }
+
+ /**
+@@ -298,8 +292,8 @@ static inline int usbg_f_net_get_protocol(usbg_f_net *nf, int *protocol)
+ */
+ static inline int usbg_f_net_set_protocol(usbg_f_net *nf, unsigned int protocol)
+ {
+- return usbg_f_net_set_attr_val(nf, USBG_F_NET_PROTOCOL,
+- USBG_F_NET_INT_TO_ATTR_VAL(protocol));
++ union usbg_f_net_attr_val val = {.protocol = protocol};
++ return usbg_f_net_set_attr_val(nf, USBG_F_NET_PROTOCOL, &val);
+ }
+
+ #ifdef __cplusplus
+diff --git a/include/usbg/function/uac2.h b/include/usbg/function/uac2.h
+index 6fc4d24..80918ef 100644
+--- a/include/usbg/function/uac2.h
++++ b/include/usbg/function/uac2.h
+@@ -110,9 +110,6 @@ union usbg_f_uac2_attr_val {
+ const char * function_name;
+ };
+
+-#define USBG_F_UAC2_INT_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_uac2_attr_val, c_chmask, WHAT)
+-
+ /**
+ * @brief Cast from generic function to uac2 function
+ * @param[in] f function to be converted to uac2 funciton.
+@@ -172,7 +169,7 @@ int usbg_f_uac2_get_attr_val(usbg_f_uac2 *af, enum usbg_f_uac2_attr attr,
+ * @return 0 on success usbg_error if error occurred.
+ */
+ int usbg_f_uac2_set_attr_val(usbg_f_uac2 *af, enum usbg_f_uac2_attr attr,
+- union usbg_f_uac2_attr_val val);
++ const union usbg_f_uac2_attr_val *val);
+
+ /**
+ * @brief Get the capture channel mask of UAC2 adapter
+@@ -194,8 +191,8 @@ static inline int usbg_f_uac2_get_c_chmask(usbg_f_uac2 *af, int *c_chmask)
+ */
+ static inline int usbg_f_uac2_set_c_chmask(usbg_f_uac2 *af, int c_chmask)
+ {
+- return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_C_CHMASK,
+- USBG_F_UAC2_INT_TO_ATTR_VAL(c_chmask));
++ union usbg_f_uac2_attr_val val = {.c_chmask = c_chmask};
++ return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_C_CHMASK, &val);
+ }
+
+ /**
+@@ -218,8 +215,8 @@ static inline int usbg_f_uac2_get_c_srate(usbg_f_uac2 *af, int *c_srate)
+ */
+ static inline int usbg_f_uac2_set_c_srate(usbg_f_uac2 *af, int c_srate)
+ {
+- return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_C_SRATE,
+- USBG_F_UAC2_INT_TO_ATTR_VAL(c_srate));
++ union usbg_f_uac2_attr_val val = {.c_srate = c_srate};
++ return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_C_SRATE, &val);
+ }
+
+ /**
+@@ -242,8 +239,8 @@ static inline int usbg_f_uac2_get_c_ssize(usbg_f_uac2 *af, int *c_ssize)
+ */
+ static inline int usbg_f_uac2_set_c_ssize(usbg_f_uac2 *af, int c_ssize)
+ {
+- return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_C_SSIZE,
+- USBG_F_UAC2_INT_TO_ATTR_VAL(c_ssize));
++ union usbg_f_uac2_attr_val val = {.c_ssize = c_ssize};
++ return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_C_SSIZE, &val);
+ }
+
+ /**
+@@ -266,8 +263,8 @@ static inline int usbg_f_uac2_get_p_chmask(usbg_f_uac2 *af, int *p_chmask)
+ */
+ static inline int usbg_f_uac2_set_p_chmask(usbg_f_uac2 *af, int p_chmask)
+ {
+- return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_P_CHMASK,
+- USBG_F_UAC2_INT_TO_ATTR_VAL(p_chmask));
++ union usbg_f_uac2_attr_val val = {.p_chmask = p_chmask};
++ return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_P_CHMASK, &val);
+ }
+
+ /**
+@@ -290,8 +287,8 @@ static inline int usbg_f_uac2_get_p_srate(usbg_f_uac2 *af, int *p_srate)
+ */
+ static inline int usbg_f_uac2_set_p_srate(usbg_f_uac2 *af, int p_srate)
+ {
+- return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_P_SRATE,
+- USBG_F_UAC2_INT_TO_ATTR_VAL(p_srate));
++ union usbg_f_uac2_attr_val val = {.p_srate = p_srate};
++ return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_P_SRATE, &val);
+ }
+
+ /**
+@@ -314,8 +311,8 @@ static inline int usbg_f_uac2_get_p_ssize(usbg_f_uac2 *af, int *p_ssize)
+ */
+ static inline int usbg_f_uac2_set_p_ssize(usbg_f_uac2 *af, int p_ssize)
+ {
+- return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_P_SSIZE,
+- USBG_F_UAC2_INT_TO_ATTR_VAL(p_ssize));
++ union usbg_f_uac2_attr_val val = {.p_ssize = p_ssize};
++ return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_P_SSIZE, &val);
+ }
+
+ #ifdef __cplusplus
+diff --git a/include/usbg/usbg_internal.h b/include/usbg/usbg_internal.h
+index 1d8dfe2..d6a3e3a 100644
+--- a/include/usbg/usbg_internal.h
++++ b/include/usbg/usbg_internal.h
+@@ -322,7 +322,7 @@ void usbg_cleanup_function(struct usbg_function *f);
+ }
+
+ typedef int (*usbg_attr_get_func)(const char *, const char *, const char *, void *);
+-typedef int (*usbg_attr_set_func)(const char *, const char *, const char *, void *);
++typedef int (*usbg_attr_set_func)(const char *, const char *, const char *, const void *);
+
+ static inline int usbg_get_dec(const char *path, const char *name,
+ const char *attr, void *val)
+@@ -331,7 +331,7 @@ static inline int usbg_get_dec(const char *path, const char *name,
+ }
+
+ static inline int usbg_set_dec(const char *path, const char *name,
+- const char *attr, void *val)
++ const char *attr, const void *val)
+ {
+ return usbg_write_dec(path, name, attr, *((int *)val));
+ }
+@@ -343,7 +343,7 @@ static inline int usbg_get_bool(const char *path, const char *name,
+ }
+
+ static inline int usbg_set_bool(const char *path, const char *name,
+- const char *attr, void *val)
++ const char *attr, const void *val)
+ {
+ return usbg_write_bool(path, name, attr, *((bool *)val));
+ }
+@@ -355,7 +355,7 @@ static inline int usbg_get_string(const char *path, const char *name,
+ }
+
+ static inline int usbg_set_string(const char *path, const char *name,
+- const char *attr, void *val)
++ const char *attr, const void *val)
+ {
+ return usbg_write_string(path, name, attr, *(char **)val);
+ }
+@@ -364,7 +364,7 @@ int usbg_get_ether_addr(const char *path, const char *name, const char *attr,
+ void *val);
+
+ int usbg_set_ether_addr(const char *path, const char *name, const char *attr,
+- void *val);
++ const void *val);
+
+ int usbg_get_dev(const char *path, const char *name, const char *attr,
+ void *val);
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 634209f..ac97bc8 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -7,6 +7,6 @@ else
+ libusbgx_la_SOURCES += usbg_schemes_none.c
+ endif
+ libusbgx_la_LDFLAGS = $(LIBCONFIG_LIBS)
+-libusbgx_la_LDFLAGS += -version-info 2:0:0
++libusbgx_la_LDFLAGS += -version-info 3:0:0
+ libusbgx_la_CFLAGS = $(LIBCONFIG_CFLAGS)
+ AM_CPPFLAGS=-I$(top_srcdir)/include/ -I$(top_builddir)/include/usbg
+diff --git a/src/function/ether.c b/src/function/ether.c
+index a9eaf33..a1d20f1 100644
+--- a/src/function/ether.c
++++ b/src/function/ether.c
+@@ -124,7 +124,7 @@ static int ether_libconfig_import(struct usbg_function *f,
+ if (ret < 0)
+ break;
+
+- ret = usbg_f_net_set_attr_val(nf, i, val);
++ ret = usbg_f_net_set_attr_val(nf, i, &val);
+ if (ret)
+ break;
+ }
+@@ -258,8 +258,8 @@ int usbg_f_net_set_attrs(usbg_f_net *nf,
+ continue;
+
+ ret = usbg_f_net_set_attr_val(nf, i,
+- *(union usbg_f_net_attr_val *)
+- ((char *)attrs
++ (const union usbg_f_net_attr_val *)
++ ((const char *)attrs
+ + net_attr[i].offset));
+ if (ret)
+ break;
+@@ -277,12 +277,12 @@ int usbg_f_net_get_attr_val(usbg_f_net *nf, enum usbg_f_net_attr attr,
+ }
+
+ int usbg_f_net_set_attr_val(usbg_f_net *nf, enum usbg_f_net_attr attr,
+- union usbg_f_net_attr_val val)
++ const union usbg_f_net_attr_val *val)
+ {
+ return net_attr[attr].ro ?
+ USBG_ERROR_INVALID_PARAM :
+ net_attr[attr].set(nf->func.path, nf->func.name,
+- net_attr[attr].name, &val);
++ net_attr[attr].name, val);
+ }
+
+ int usbg_f_net_get_ifname_s(usbg_f_net *nf, char *buf, int len)
+diff --git a/src/function/hid.c b/src/function/hid.c
+index 4d075cf..895c2c6 100644
+--- a/src/function/hid.c
++++ b/src/function/hid.c
+@@ -69,9 +69,9 @@ static int hid_get_report(const char *path, const char *name, const char *attr,
+ }
+
+ static int hid_set_report(const char *path, const char *name, const char *attr,
+- void *val)
++ const void *val)
+ {
+- struct usbg_f_hid_report_desc *report_desc = val;
++ const struct usbg_f_hid_report_desc *report_desc = val;
+ char *buf = report_desc->desc;
+ int len = report_desc->len;
+ int ret;
+@@ -239,7 +239,7 @@ static int hid_libconfig_import(struct usbg_function *f,
+ if (ret < 0)
+ break;
+
+- ret = usbg_f_hid_set_attr_val(hf, i, val);
++ ret = usbg_f_hid_set_attr_val(hf, i, &val);
+ if (ret)
+ break;
+ }
+@@ -327,7 +327,7 @@ int usbg_f_hid_set_attrs(usbg_f_hid *hf,
+ continue;
+
+ ret = usbg_f_hid_set_attr_val(hf, i,
+- *(union usbg_f_hid_attr_val *)
++ (union usbg_f_hid_attr_val *)
+ ((char *)attrs
+ + hid_attr[i].offset));
+ if (ret)
+@@ -346,11 +346,11 @@ int usbg_f_hid_get_attr_val(usbg_f_hid *hf, enum usbg_f_hid_attr attr,
+ }
+
+ int usbg_f_hid_set_attr_val(usbg_f_hid *hf, enum usbg_f_hid_attr attr,
+- union usbg_f_hid_attr_val val)
++ const union usbg_f_hid_attr_val *val)
+ {
+ return hid_attr[attr].ro ?
+ USBG_ERROR_INVALID_PARAM :
+ hid_attr[attr].set(hf->func.path, hf->func.name,
+- hid_attr[attr].name, &val);
++ hid_attr[attr].name, val);
+ }
+
+diff --git a/src/function/midi.c b/src/function/midi.c
+index 1cedb97..2318b49 100644
+--- a/src/function/midi.c
++++ b/src/function/midi.c
+@@ -100,7 +100,7 @@ static int midi_libconfig_import(struct usbg_function *f,
+ if (ret < 0)
+ break;
+
+- ret = usbg_f_midi_set_attr_val(mf, i, val);
++ ret = usbg_f_midi_set_attr_val(mf, i, &val);
+ if (ret)
+ break;
+ }
+@@ -185,8 +185,8 @@ int usbg_f_midi_set_attrs(usbg_f_midi *mf,
+
+ for (i = USBG_F_MIDI_ATTR_MIN; i < USBG_F_MIDI_ATTR_MAX; ++i) {
+ ret = usbg_f_midi_set_attr_val(mf, i,
+- *(union usbg_f_midi_attr_val *)
+- ((char *)attrs
++ (const union usbg_f_midi_attr_val *)
++ ((const char *)attrs
+ + midi_attr[i].offset));
+ if (ret)
+ break;
+@@ -204,10 +204,10 @@ int usbg_f_midi_get_attr_val(usbg_f_midi *mf, enum usbg_f_midi_attr attr,
+ }
+
+ int usbg_f_midi_set_attr_val(usbg_f_midi *mf, enum usbg_f_midi_attr attr,
+- union usbg_f_midi_attr_val val)
++ const union usbg_f_midi_attr_val *val)
+ {
+ return midi_attr[attr].set(mf->func.path, mf->func.name,
+- midi_attr[attr].name, &val);
++ midi_attr[attr].name, val);
+ }
+
+ int usbg_f_midi_get_id_s(usbg_f_midi *mf, char *buf, int len)
+diff --git a/src/function/ms.c b/src/function/ms.c
+index 519b012..5cdd814 100644
+--- a/src/function/ms.c
++++ b/src/function/ms.c
+@@ -207,7 +207,7 @@ static int ms_import_lun_attrs(struct usbg_f_ms *mf, int lun_id,
+ if (ret < 0)
+ break;
+
+- ret = usbg_f_ms_set_lun_attr_val(mf, lun_id, i, val);
++ ret = usbg_f_ms_set_lun_attr_val(mf, lun_id, i, &val);
+ if (ret)
+ break;
+ }
+@@ -605,8 +605,8 @@ int usbg_f_ms_set_lun_attrs(usbg_f_ms *mf, int lun_id,
+
+ for (i = USBG_F_MS_LUN_ATTR_MIN; i < USBG_F_MS_LUN_ATTR_MAX; ++i) {
+ ret = usbg_f_ms_set_lun_attr_val(mf, lun_id, i,
+- *(union usbg_f_ms_lun_attr_val *)
+- ((char *)lattrs
++ (const union usbg_f_ms_lun_attr_val *)
++ ((const char *)lattrs
+ + ms_lun_attr[i].offset));
+ if (ret)
+ break;
+@@ -633,7 +633,7 @@ int usbg_f_ms_get_lun_attr_val(usbg_f_ms *mf, int lun_id,
+
+ int usbg_f_ms_set_lun_attr_val(usbg_f_ms *mf, int lun_id,
+ enum usbg_f_ms_lun_attr lattr,
+- union usbg_f_ms_lun_attr_val val)
++ const union usbg_f_ms_lun_attr_val *val)
+ {
+ char lpath[USBG_MAX_PATH_LENGTH];
+ int ret;
+@@ -644,7 +644,7 @@ int usbg_f_ms_set_lun_attr_val(usbg_f_ms *mf, int lun_id,
+ return USBG_ERROR_PATH_TOO_LONG;
+
+ return ms_lun_attr[lattr].set(lpath, "",
+- ms_lun_attr[lattr].name, &val);
++ ms_lun_attr[lattr].name, val);
+ }
+
+ int usbg_f_ms_get_lun_file_s(usbg_f_ms *mf, int lun_id,
+diff --git a/src/function/uac2.c b/src/function/uac2.c
+index 9ca8b66..fc06c1d 100644
+--- a/src/function/uac2.c
++++ b/src/function/uac2.c
+@@ -125,7 +125,7 @@ static int uac2_libconfig_import(struct usbg_function *f,
+ if (ret < 0)
+ break;
+
+- ret = usbg_f_uac2_set_attr_val(af, i, val);
++ ret = usbg_f_uac2_set_attr_val(af, i, &val);
+ if (ret)
+ break;
+ }
+@@ -210,8 +210,8 @@ int usbg_f_uac2_set_attrs(usbg_f_uac2 *af,
+
+ for (i = USBG_F_UAC2_ATTR_MIN; i < USBG_F_UAC2_ATTR_MAX; ++i) {
+ ret = usbg_f_uac2_set_attr_val(af, i,
+- *(union usbg_f_uac2_attr_val *)
+- ((char *)attrs
++ (const union usbg_f_uac2_attr_val *)
++ ((const char *)attrs
+ + uac2_attr[i].offset));
+ if (ret)
+ break;
+@@ -229,8 +229,8 @@ int usbg_f_uac2_get_attr_val(usbg_f_uac2 *af, enum usbg_f_uac2_attr attr,
+ }
+
+ int usbg_f_uac2_set_attr_val(usbg_f_uac2 *af, enum usbg_f_uac2_attr attr,
+- union usbg_f_uac2_attr_val val)
++ const union usbg_f_uac2_attr_val *val)
+ {
+ return uac2_attr[attr].set(af->func.path, af->func.name,
+- uac2_attr[attr].name, &val);
++ uac2_attr[attr].name, val);
+ }
+diff --git a/src/function/uvc.c b/src/function/uvc.c
+index f39594b..947b94e 100644
+--- a/src/function/uvc.c
++++ b/src/function/uvc.c
+@@ -303,7 +303,7 @@ int usbg_f_uvc_get_config_attr_val(usbg_f_uvc *uvcf, enum usbg_f_uvc_config_attr
+ }
+
+ int usbg_f_uvc_set_config_attr_val(usbg_f_uvc *uvcf, enum usbg_f_uvc_config_attr iattr,
+- union usbg_f_uvc_config_attr_val val)
++ const union usbg_f_uvc_config_attr_val *val)
+ {
+ char ipath[USBG_MAX_PATH_LENGTH];
+ int nmb;
+@@ -314,7 +314,7 @@ int usbg_f_uvc_set_config_attr_val(usbg_f_uvc *uvcf, enum usbg_f_uvc_config_attr
+ return USBG_ERROR_PATH_TOO_LONG;
+
+ return uvc_config_attr[iattr].set(ipath, "",
+- uvc_config_attr[iattr].name, &val);
++ uvc_config_attr[iattr].name, val);
+ }
+
+ int usbg_f_uvc_get_config_attrs(usbg_f_uvc *uvcf, struct usbg_f_uvc_config_attrs *iattrs)
+@@ -341,8 +341,8 @@ int usbg_f_uvc_set_config_attrs(usbg_f_uvc *uvcf, const struct usbg_f_uvc_config
+
+ for (i = USBG_F_UVC_FRAME_ATTR_MIN; i < USBG_F_UVC_FRAME_ATTR_MAX; ++i) {
+ ret = usbg_f_uvc_set_config_attr_val(uvcf, i,
+- *(union usbg_f_uvc_config_attr_val *)
+- ((char *)iattrs
++ (const union usbg_f_uvc_config_attr_val *)
++ ((const char *)iattrs
+ + uvc_config_attr[i].offset));
+ if (ret)
+ break;
+@@ -774,7 +774,7 @@ static int uvc_import_config(struct usbg_f_uvc *uvcf, config_setting_t *root)
+ if (ret < 0)
+ break;
+
+- ret = usbg_f_uvc_set_config_attr_val(uvcf, i, val);
++ ret = usbg_f_uvc_set_config_attr_val(uvcf, i, &val);
+ if (ret)
+ break;
+ }
+diff --git a/src/usbg_common.c b/src/usbg_common.c
+index 5f7f4e5..7234649 100644
+--- a/src/usbg_common.c
++++ b/src/usbg_common.c
+@@ -337,7 +337,7 @@ int usbg_get_ether_addr(const char *path, const char *name,
+ }
+
+ int usbg_set_ether_addr(const char *path, const char *name,
+- const char *attr, void *val)
++ const char *attr, const void *val)
+ {
+ char str_addr[USBG_MAX_STR_LENGTH];
+
+--
+2.42.0
+
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx/0001-libusbgx-Add-interface-name-for-NCM-Feature-Descript.patch b/meta-oe/recipes-support/libusbgx/libusbgx/0001-libusbgx-Add-interface-name-for-NCM-Feature-Descript.patch
new file mode 100644
index 0000000000..cc122c844c
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx/0001-libusbgx-Add-interface-name-for-NCM-Feature-Descript.patch
@@ -0,0 +1,52 @@
+From 4f3f2ad08e6ca132bd1dd388e02b57223bf4219d Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@gmail.com>
+Date: Sun, 11 Dec 2022 14:11:49 +0100
+Subject: [PATCH] libusbgx: Add interface name for NCM Feature Descriptors
+
+In commit: abf422bffca4a4767e7e242c44910dbf5ef7094f
+[
+Author: Stefan Agner <stefan.agner@toradex.com>
+Date: Tue Jan 24 14:22:25 2017 -0800
+
+ libusbgx: Add interface name for Feature Descriptors
+
+ This adds interface name required for "Feature Descriptors". If
+ specified, we can assume that a Feature Descriptor with the
+ interface name of the specified string is understood by the
+ kernel (e.g. interface.rndis).
+]
+
+it only added Feature Descriptors for RNDIS, NCM also needs that, or
+else it could not be recognized by Windows systems.
+
+Add Feature Descriptors interface name for NCM.
+
+Upstream-Status: Submitted [https://github.com/linux-usb-gadgets/libusbgx/pull/73]
+
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ src/function/ether.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/function/ether.c b/src/function/ether.c
+index b1fe1d2..a9eaf33 100644
+--- a/src/function/ether.c
++++ b/src/function/ether.c
+@@ -184,8 +184,14 @@ struct usbg_function_type usbg_f_type_subset = {
+ ETHER_FUNCTION_OPTS
+ };
+
++static char *ncm_os_desc_ifnames[] = {
++ "ncm",
++ NULL
++};
++
+ struct usbg_function_type usbg_f_type_ncm = {
+ .name = "ncm",
++ .os_desc_iname = ncm_os_desc_ifnames,
+ ETHER_FUNCTION_OPTS
+ };
+
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start b/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start
index 9e22671a9e..e80cb2c340 100755
--- a/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start
+++ b/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start
@@ -6,6 +6,10 @@ for i in $IMPORT_SCHEMAS; do
/usr/bin/gadget-import "$i" /etc/usbgx/"$i".schema
done
+for script in $(find -L /etc/usbgx.d -type f -exec test -e {} \; -print 2>/dev/null); do
+ $script
+done
+
for i in $ENABLED_SCHEMAS; do
configured_udc=$(eval 'echo ${UDC_FOR_SCHEMA_'"$i"'}')
if [ -n "${configured_udc}" ] && [ -e "/sys/class/udc/${configured_udc}" ]; then
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx/gadget-stop b/meta-oe/recipes-support/libusbgx/libusbgx/gadget-stop
new file mode 100755
index 0000000000..24b7caed5e
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx/gadget-stop
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+[ -r /etc/default/usbgx ] && . /etc/default/usbgx
+
+for i in $IMPORT_SCHEMAS; do
+ if [ -e /sys/kernel/config/usb_gadget/"$i"/idVendor ]; then
+ if [ -e /sys/kernel/config/usb_gadget/"$i"/idProduct ]; then
+ idVendor=$(cat /sys/kernel/config/usb_gadget/"$i"/idVendor)
+ idProduct=$(cat /sys/kernel/config/usb_gadget/"$i"/idProduct)
+ /usr/bin/gadget-vid-pid-remove ${idVendor}:${idProduct}
+ fi
+ fi
+done
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service b/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
index 74541d3c2d..7210969d62 100644
--- a/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
+++ b/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
@@ -1,9 +1,13 @@
[Unit]
Description=Load USB gadget schemas
+Requires=sys-kernel-config.mount
+After=sys-kernel-config.mount
[Service]
Type=oneshot
+RemainAfterExit=yes
ExecStart=/usr/bin/gadget-start
+ExecStop=/usr/bin/gadget-stop
[Install]
-WantedBy=multi-user.target
+WantedBy=usb-gadget.target
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx_git.bb b/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
index 16552fd3b9..a20ff4eeab 100644
--- a/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
+++ b/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
@@ -5,12 +5,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
inherit autotools pkgconfig systemd update-rc.d update-alternatives
-PV = "0.2.0+git${SRCPV}"
-SRCREV = "45c14ef4d5d7ced0fbf984208de44ced6d5ed898"
+PV = "0.2.0+git"
+SRCREV = "ec0b01c03fdc7893997b7b32ec1c12c6103f62f3"
SRCBRANCH = "master"
SRC_URI = " \
git://github.com/libusbgx/libusbgx.git;branch=${SRCBRANCH};protocol=https \
+ file://0001-libusbgx-Add-interface-name-for-NCM-Feature-Descript.patch \
+ file://0001-fix-stack-buffer-overflow-in-usbg_f_foo_attr_val-pro.patch \
file://gadget-start \
+ file://gadget-stop \
file://usbgx.initd \
file://usbgx.service \
"
@@ -23,19 +26,23 @@ PACKAGECONFIG[examples] = "--enable-examples,--disable-examples"
PACKAGECONFIG[gadget-schemes] = "--enable-gadget-schemes,--disable-gadget-schemes"
PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,cmocka"
-PACKAGE_BEFORE_PN = "${PN}-examples"
+PACKAGE_BEFORE_PN = "${@bb.utils.contains('PACKAGECONFIG', 'examples', '${PN}-examples', '', d)}"
SYSTEMD_PACKAGES = "${PN}-examples"
SYSTEMD_SERVICE:${PN}-examples = "usbgx.service"
SYSTEMD_AUTO_ENABLE:${PN}-examples = "${@bb.utils.contains('PACKAGECONFIG', 'examples', 'enable', 'disable', d)}"
-INITSCRIPT_PACKAGES = "${PN}-examples"
+INITSCRIPT_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'examples', '${PN}-examples', '', d)}"
INITSCRIPT_NAME = "usbgx"
INITSCRIPT_PARAMS = "defaults"
INHIBIT_UPDATERCD_BBCLASS = "${@bb.utils.contains('PACKAGECONFIG', 'examples', '1', '0', d)}"
do_install:append() {
- install -Dm 0755 ${WORKDIR}/gadget-start ${D}/${bindir}/gadget-start
+ install -Dm 0755 ${WORKDIR}/gadget-start ${D}${bindir}/gadget-start
+ sed -i -e 's,/usr/bin,${bindir},g' -e 's,/etc,${sysconfdir},g' ${D}${bindir}/gadget-start
+ install -m 0755 ${WORKDIR}/gadget-start ${D}${bindir}/gadget-stop
+ sed -i -e 's,/usr/bin,${bindir},g' -e 's,/etc,${sysconfdir},g' ${D}${bindir}/gadget-stop
+
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -Dm 0644 ${WORKDIR}/usbgx.service ${D}${systemd_system_unitdir}/usbgx.service
fi
diff --git a/meta-oe/recipes-support/libutempter/libutempter/0002-Proper-macro-path-generation.patch b/meta-oe/recipes-support/libutempter/libutempter/0002-Proper-macro-path-generation.patch
index 2a866c0796..f43f54eaab 100644
--- a/meta-oe/recipes-support/libutempter/libutempter/0002-Proper-macro-path-generation.patch
+++ b/meta-oe/recipes-support/libutempter/libutempter/0002-Proper-macro-path-generation.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] Proper macro path generation.
Signed-off-by: iddinev <xidinev@gmail.com>
---
+Upstream-Status: Pending
+
libutempter/iface.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/meta-oe/recipes-support/links/files/ac-prog-cxx.patch b/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
index 2dc57a5c83..0406b700d7 100644
--- a/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
+++ b/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
@@ -3,6 +3,8 @@ From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Mon, 30 Jul 2012 23:52:49 +0200
---
+Upstream-Status: Pending
+
configure.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/links/links_2.27.bb b/meta-oe/recipes-support/links/links_2.27.bb
deleted file mode 100644
index 4803353a50..0000000000
--- a/meta-oe/recipes-support/links/links_2.27.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require links.inc
-
-DEPENDS += "gpm"
-RCONFLICTS:${PN} = "links-x11"
-
-EXTRA_OECONF = "--enable-graphics \
- --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
- --without-libtiff --without-svgalib --with-fb \
- --without-directfb --without-pmshell --without-atheos \
- --without-x"
-SRC_URI[sha256sum] = "d8ddcbfcede7cdde80abeb0a236358f57fa6beb2bcf92e109624e9b896f9ebb4"
diff --git a/meta-oe/recipes-support/links/links_2.29.bb b/meta-oe/recipes-support/links/links_2.29.bb
new file mode 100644
index 0000000000..e3a15d1819
--- /dev/null
+++ b/meta-oe/recipes-support/links/links_2.29.bb
@@ -0,0 +1,11 @@
+require links.inc
+
+DEPENDS += "gpm"
+RCONFLICTS:${PN} = "links-x11"
+
+EXTRA_OECONF = "--enable-graphics \
+ --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
+ --without-libtiff --without-svgalib --with-fb \
+ --without-directfb --without-pmshell --without-atheos \
+ --without-x"
+SRC_URI[sha256sum] = "22aa96c0b38e1a6f8f7ed9d7a4167a47fc37246097759ef6059ecf8f9ead7998"
diff --git a/meta-oe/recipes-support/lio-utils/lio-utils/0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch b/meta-oe/recipes-support/lio-utils/lio-utils/0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch
index 9608b7e753..86edcc2e42 100644
--- a/meta-oe/recipes-support/lio-utils/lio-utils/0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch
+++ b/meta-oe/recipes-support/lio-utils/lio-utils/0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch
@@ -8,6 +8,8 @@ Fixes QA errors about GNU_HASH
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
mib-modules/Makefile | 10 +++++-----
tools/Makefile | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb b/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
index 48be8dfa96..844e5acf90 100644
--- a/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
+++ b/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://linux-iscsi.org/index.php/Lio-utils"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=c3ea231a32635cbb5debedf3e88aa3df"
-PV = "4.1+git${SRCPV}"
+PV = "4.1+git"
SRC_URI = "git://github.com/Datera/lio-utils.git;branch=master;protocol=https \
file://0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch \
diff --git a/meta-oe/recipes-support/lockdev/lockdev/build.patch b/meta-oe/recipes-support/lockdev/lockdev/build.patch
index f9fe48b2a6..36daea79af 100644
--- a/meta-oe/recipes-support/lockdev/lockdev/build.patch
+++ b/meta-oe/recipes-support/lockdev/lockdev/build.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
commit 0dd47123655c52d68185f06b9da8fb0e1b925400
Author: Ludwig Nussel <ludwig.nussel@suse.de>
Date: Tue Feb 9 14:56:23 2010 +0100
diff --git a/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch b/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch
index aa8b0f6923..886af121b3 100644
--- a/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch
+++ b/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/Makefile
+++ b/Makefile
@@ -15,17 +15,18 @@ shared = ${libname}.${VER}.so
diff --git a/meta-oe/recipes-support/log4c/log4c/0001-Use-the-API-properly-in-the-example-format-security-.patch b/meta-oe/recipes-support/log4c/log4c/0001-Use-the-API-properly-in-the-example-format-security-.patch
index 9ff9d70025..405104a0fc 100644
--- a/meta-oe/recipes-support/log4c/log4c/0001-Use-the-API-properly-in-the-example-format-security-.patch
+++ b/meta-oe/recipes-support/log4c/log4c/0001-Use-the-API-properly-in-the-example-format-security-.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] Use the API properly in the example (format security error
fixed).
---
+Upstream-Status: Pending
+
examples/helloworld1/mylog.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch b/meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch
index 4872eb4f5e..dadefec33a 100644
--- a/meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch
+++ b/meta-oe/recipes-support/log4c/log4c/fix_configure_with-expat.patch
@@ -1,7 +1,7 @@
The original use of AC_ARG_WITH is buggy and causes expat support
to be *disabled* if "--with-expat" is passed to configure.
-Upstream status: pending
+Upstream-Status: Pending
Index: log4c-1.2.4/configure.in
===================================================================
diff --git a/meta-oe/recipes-support/log4cpp/files/fix-pc.patch b/meta-oe/recipes-support/log4cpp/files/fix-pc.patch
index b8fb42e5fd..b57b5a263c 100644
--- a/meta-oe/recipes-support/log4cpp/files/fix-pc.patch
+++ b/meta-oe/recipes-support/log4cpp/files/fix-pc.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
diff -Nurd ./log4cpp.orig/configure.in ./log4cpp/configure.in
--- ./log4cpp.orig/configure.in 2009-09-07 16:57:46.000000000 -0400
+++ ./log4cpp/configure.in 2016-02-23 12:57:11.567240018 -0500
diff --git a/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb b/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb
deleted file mode 100644
index d9a55dd761..0000000000
--- a/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations."
-HOMEPAGE = "http://sourceforge.net/projects/log4cpp/"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-
-SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}.tar.gz \
- file://fix-pc.patch;striplevel=2 \
- "
-SRC_URI[md5sum] = "b9e2cee932da987212f2c74b767b4d8b"
-SRC_URI[sha256sum] = "2cbbea55a5d6895c9f0116a9a9ce3afb86df383cd05c9d6c1a4238e5e5c8f51d"
-
-S = "${WORKDIR}/${BPN}"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "\
- --enable-doxygen=no \
- --enable-dot=no \
- --enable-html-docs=no \
- --enable-latex-docs=no \
-"
diff --git a/meta-oe/recipes-support/log4cpp/log4cpp_1.1.4.bb b/meta-oe/recipes-support/log4cpp/log4cpp_1.1.4.bb
new file mode 100644
index 0000000000..729857eb62
--- /dev/null
+++ b/meta-oe/recipes-support/log4cpp/log4cpp_1.1.4.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations."
+HOMEPAGE = "http://sourceforge.net/projects/log4cpp/"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}.tar.gz \
+ file://fix-pc.patch;striplevel=2 \
+ "
+SRC_URI[sha256sum] = "696113659e426540625274a8b251052cc04306d8ee5c42a0c7639f39ca90c9d6"
+
+S = "${WORKDIR}/${BPN}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "\
+ --enable-doxygen=no \
+ --enable-dot=no \
+ --enable-html-docs=no \
+ --enable-latex-docs=no \
+"
+
+CXXFLAGS += "-std=c++14"
diff --git a/meta-oe/recipes-support/lvm2/files/0001-configure.ac-check-egrep.patch b/meta-oe/recipes-support/lvm2/files/0001-configure.ac-check-egrep.patch
new file mode 100644
index 0000000000..474c2f8ac7
--- /dev/null
+++ b/meta-oe/recipes-support/lvm2/files/0001-configure.ac-check-egrep.patch
@@ -0,0 +1,33 @@
+configure.ac: check egrep
+
+The macro AC_HEADER_STDC which requires AC_PROG_EGREP has been removed
+from configure.ac, then it fails to substitute '@EGREP@':
+
+| [GEN] command-lines-input.h
+| /bin/bash: line 2: @EGREP@: command not found
+| [GEN] command-count.h
+
+Call AC_PROG_EGREP to fix the error.
+
+Upstream-Status: Submitted [https://gitlab.com/lvmteam/lvm2/-/merge_requests/4]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index 2e52498f9..d9462e22c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -78,6 +78,7 @@ AC_PROG_LN_S
+ AC_PROG_MAKE_SET
+ AC_PROG_MKDIR_P
+ AC_PROG_RANLIB
++AC_PROG_EGREP
+ AC_CHECK_TOOL([READELF], [readelf])
+ AC_CHECK_TOOL(AR, ar)
+ AC_PATH_TOOL(CFLOW_CMD, cflow)
+--
+2.34.1
+
diff --git a/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch b/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
index bb582ed1ff..f46d7f7014 100644
--- a/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
+++ b/meta-oe/recipes-support/lvm2/files/0001-implement-libc-specific-reopen_stream.patch
@@ -15,6 +15,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
+Upstream-Status: Pending
+
lib/log/log.c | 6 ++++++
tools/lvmcmdline.c | 6 +++---
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/meta-oe/recipes-support/lvm2/files/0001-include-libgen.h-for-basename.patch b/meta-oe/recipes-support/lvm2/files/0001-include-libgen.h-for-basename.patch
new file mode 100644
index 0000000000..7add3a7bb1
--- /dev/null
+++ b/meta-oe/recipes-support/lvm2/files/0001-include-libgen.h-for-basename.patch
@@ -0,0 +1,32 @@
+From 1b9677f40ac547ba19d1cdbfd700901eab0a0d0b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Mar 2024 13:07:28 -0700
+Subject: [PATCH] include libgen.h for basename
+
+basename prototype has been removed from string.h from latest musl [1]
+compilers e.g. clang-18 flags the absense of prototype as error. therefore
+include libgen.h for providing it.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [ Sent to maintainer and lvm-devel@redhat.com ]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/device/device_id.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/device/device_id.c b/lib/device/device_id.c
+index 1422f5d05..8215811bd 100644
+--- a/lib/device/device_id.c
++++ b/lib/device/device_id.c
+@@ -25,6 +25,7 @@
+ #include "lib/datastruct/str_list.h"
+ #include "lib/metadata/metadata-exported.h"
+
++#include <libgen.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+--
+2.44.0
+
diff --git a/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch b/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch
deleted file mode 100644
index ce8a97ab6f..0000000000
--- a/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 3ae9c0b607ec33fb07f32a41e9d28cc9068dd39a Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Tue, 25 Oct 2016 11:52:44 +0000
-Subject: [PATCH] Guard use of mallinfo() with __GLIBC__
-
-This API is glibc-only
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
-
----
- lib/mm/memlock.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: LVM2.2.02.177/lib/mm/memlock.c
-===================================================================
---- LVM2.2.02.177.orig/lib/mm/memlock.c
-+++ LVM2.2.02.177/lib/mm/memlock.c
-@@ -151,7 +151,7 @@ static void _touch_memory(void *mem, siz
-
- static void _allocate_memory(void)
- {
--#ifndef VALGRIND_POOL
-+#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
- void *stack_mem;
- struct rlimit limit;
- int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks;
diff --git a/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch b/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch
index 517b9a5f28..ed9972a5f9 100644
--- a/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch
+++ b/meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch
@@ -21,18 +21,18 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
1 file changed, 2 deletions(-)
diff --git a/configure.ac b/configure.ac
-index e427708..aa374ea 100644
+index b43d8b9be..efe3062c1 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1791,8 +1791,6 @@ if test "$BUILD_DMFILEMAPD" = yes; then
- fi
+@@ -1646,8 +1646,6 @@ AS_IF([test "$BUILD_DMFILEMAPD" = "yes"], [
+ ])
################################################################################
-AC_PATH_TOOL(MODPROBE_CMD, modprobe, [], [$PATH_SBIN])
-
- if test -n "$MODPROBE_CMD"; then
+ AS_IF([test -n "$MODPROBE_CMD"], [
AC_DEFINE_UNQUOTED([MODPROBE_CMD], ["$MODPROBE_CMD"], [The path to 'modprobe', if available.])
- fi
+ ])
--
2.7.4
diff --git a/meta-oe/recipes-support/lvm2/libdevmapper_2.03.16.bb b/meta-oe/recipes-support/lvm2/libdevmapper_2.03.22.bb
index be558ce1d2..be558ce1d2 100644
--- a/meta-oe/recipes-support/lvm2/libdevmapper_2.03.16.bb
+++ b/meta-oe/recipes-support/lvm2/libdevmapper_2.03.22.bb
diff --git a/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-oe/recipes-support/lvm2/lvm2.inc
index 277e76f0d2..d95366f97e 100644
--- a/meta-oe/recipes-support/lvm2/lvm2.inc
+++ b/meta-oe/recipes-support/lvm2/lvm2.inc
@@ -10,15 +10,16 @@ DEPENDS += "libaio"
SRC_URI = "git://sourceware.org/git/lvm2.git;branch=main \
file://lvm.conf \
file://0001-implement-libc-specific-reopen_stream.patch \
- file://0002-Guard-use-of-mallinfo-with-__GLIBC__.patch \
file://0004-tweak-MODPROBE_CMD-for-cross-compile.patch \
file://0001-Avoid-bashisms-in-init-scripts.patch \
file://0005-do-not-build-manual.patch \
file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \
file://reproducible-build.patch \
+ file://0001-configure.ac-check-egrep.patch \
+ file://0001-include-libgen.h-for-basename.patch \
"
-SRCREV = "6d1e894a867681af7a811ed63bc435f3aa55fec8"
+SRCREV = "016e469caf856f1eb8dde39df0d1aa2e74225aed"
S = "${WORKDIR}/git"
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\_\d+)+)"
diff --git a/meta-oe/recipes-support/lvm2/lvm2/0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch b/meta-oe/recipes-support/lvm2/lvm2/0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch
index 34e0620a1c..c0cf836ce8 100644
--- a/meta-oe/recipes-support/lvm2/lvm2/0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch
+++ b/meta-oe/recipes-support/lvm2/lvm2/0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch
@@ -15,10 +15,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 4811d4a3d..137b31a82 100644
+index 991a0cf85..e59c82472 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1611,6 +1611,8 @@ fi
+@@ -1660,6 +1660,8 @@ AS_IF([test -n "$MODPROBE_CMD"], [
SYSCONFDIR="$(eval echo $(eval echo $sysconfdir))"
@@ -27,10 +27,10 @@ index 4811d4a3d..137b31a82 100644
SBINDIR="$(eval echo $(eval echo $sbindir))"
LVM_PATH="$SBINDIR/lvm"
AC_DEFINE_UNQUOTED(LVM_PATH, ["$LVM_PATH"], [Path to lvm binary.])
-@@ -1829,6 +1831,7 @@ AC_SUBST(SACKPT_CFLAGS)
- AC_SUBST(SACKPT_LIBS)
- AC_SUBST(SALCK_CFLAGS)
- AC_SUBST(SALCK_LIBS)
+@@ -1886,6 +1888,7 @@ AC_SUBST(PYTHON2DIR)
+ AC_SUBST(PYTHON3)
+ AC_SUBST(PYTHON3DIR)
+ AC_SUBST(RT_LIBS)
+AC_SUBST(BINDIR)
AC_SUBST(SBINDIR)
AC_SUBST(SELINUX_LIBS)
diff --git a/meta-oe/recipes-support/lvm2/lvm2/0001-lvmdbusd-create-dirs-for-lock-file.patch b/meta-oe/recipes-support/lvm2/lvm2/0001-lvmdbusd-create-dirs-for-lock-file.patch
new file mode 100644
index 0000000000..f6b293553d
--- /dev/null
+++ b/meta-oe/recipes-support/lvm2/lvm2/0001-lvmdbusd-create-dirs-for-lock-file.patch
@@ -0,0 +1,29 @@
+lvmdbusd: create dirs for lock file
+
+Create leading dirs for lvmdbusd lock file, otherwise it fails to start:
+
+| systemd[1]: Starting LVM2 D-Bus service...
+| lvmdbusd[1602]: [1602]: Error during creation of lock file(/var/lock/lvm/lvmdbusd): errno(2), exiting!
+
+Upstream-Status: Submitted [https://gitlab.com/lvmteam/lvm2/-/merge_requests/7]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ daemons/lvmdbusd/utils.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/daemons/lvmdbusd/utils.py b/daemons/lvmdbusd/utils.py
+index d479175f6..830648659 100644
+--- a/daemons/lvmdbusd/utils.py
++++ b/daemons/lvmdbusd/utils.py
+@@ -778,6 +778,7 @@ class LockFile(object):
+
+ def __enter__(self):
+ try:
++ os.makedirs(os.path.dirname(self.lock_file))
+ self.fd = os.open(self.lock_file, os.O_CREAT | os.O_RDWR, stat.S_IRUSR | stat.S_IWUSR)
+
+ # Get and set the close on exec and lock the file
+--
+2.34.1
+
diff --git a/meta-oe/recipes-support/lvm2/lvm2/tweak-for-lvmdbusd.patch b/meta-oe/recipes-support/lvm2/lvm2/tweak-for-lvmdbusd.patch
new file mode 100644
index 0000000000..3b85a17b61
--- /dev/null
+++ b/meta-oe/recipes-support/lvm2/lvm2/tweak-for-lvmdbusd.patch
@@ -0,0 +1,55 @@
+Not check python modules pyudev and dbus during configure that they are runtime
+dependencies. Deal with them in the package config setting in the recipe.
+
+Remove $(DESTDIR) from install destination that it is not suitable for oe. And
+no generate python cache files too.
+
+Upstream-Status: Pending [oe specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ configure.ac | 4 ++--
+ daemons/lvmdbusd/Makefile.in | 6 ++----
+ 2 files changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index ee088b3f5..b94ef4e56 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1262,8 +1262,8 @@ AS_IF([test "$BUILD_LVMDBUSD" = "yes"], [
+ AS_IF([test "$PYTHON3_BINDINGS" = "yes"], [PYTHON_BINDINGS="yes"])
+
+ # To get this macro, install autoconf-archive package then run autoreconf
+- AX_PYTHON_MODULE([pyudev], [Required], python3)
+- AX_PYTHON_MODULE([dbus], [Required], python3)
++ # AX_PYTHON_MODULE([pyudev], [Required], python3)
++ # AX_PYTHON_MODULE([dbus], [Required], python3)
+ ])
+
+ ################################################################################
+diff --git a/daemons/lvmdbusd/Makefile.in b/daemons/lvmdbusd/Makefile.in
+index 9c2629279..a79daabf7 100644
+--- a/daemons/lvmdbusd/Makefile.in
++++ b/daemons/lvmdbusd/Makefile.in
+@@ -16,7 +16,7 @@ top_srcdir = @top_srcdir@
+ top_builddir = @top_builddir@
+
+ lvmdbuspydir = $(python3dir)/lvmdbusd
+-lvmdbusdir = $(DESTDIR)$(lvmdbuspydir)
++lvmdbusdir = $(lvmdbuspydir)
+
+ LVMDBUS_SRCDIR_FILES = \
+ automatedproperties.py \
+@@ -55,11 +55,9 @@ install_lvmdbusd: $(LVMDBUSD)
+ @echo " [INSTALL] $<"
+ $(Q) $(INSTALL_DIR) $(sbindir)
+ $(Q) $(INSTALL_SCRIPT) $(LVMDBUSD) $(sbindir)
+- $(Q) $(INSTALL_DIR) $(lvmdbusdir) $(lvmdbusdir)/__pycache__
++ $(Q) $(INSTALL_DIR) $(lvmdbusdir)
+ $(Q) (cd $(srcdir); $(INSTALL_DATA) $(LVMDBUS_SRCDIR_FILES) $(lvmdbusdir))
+ $(Q) $(INSTALL_DATA) $(LVMDBUS_BUILDDIR_FILES) $(lvmdbusdir)
+- $(Q) PYTHON=$(PYTHON3) $(PYCOMPILE) --destdir "$(DESTDIR)" --basedir "$(lvmdbuspydir)" $(LVMDBUS_SRCDIR_FILES) $(LVMDBUS_BUILDDIR_FILES)
+- $(Q) $(CHMOD) 444 $(lvmdbusdir)/__pycache__/*.py[co]
+
+ install_lvm2: install_lvmdbusd
+
diff --git a/meta-oe/recipes-support/lvm2/lvm2_2.03.16.bb b/meta-oe/recipes-support/lvm2/lvm2_2.03.16.bb
deleted file mode 100644
index 6a6cdc7cef..0000000000
--- a/meta-oe/recipes-support/lvm2/lvm2_2.03.16.bb
+++ /dev/null
@@ -1,95 +0,0 @@
-require lvm2.inc
-
-SRC_URI += " \
- file://0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch \
- "
-
-DEPENDS += "autoconf-archive-native"
-
-inherit multilib_script
-
-MULTILIB_SCRIPTS = "${PN}:${sysconfdir}/lvm/lvm.conf"
-
-CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe"
-
-do_install:append() {
- # Install machine specific configuration file
- install -d ${D}${sysconfdir}/lvm
- install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf
- sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf
- # We don't want init scripts/systemd units for native SDK utilities
- if [ "${PN}" != "nativesdk-lvm2" ]; then
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- oe_runmake 'DESTDIR=${D}' install install_systemd_units
- sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service
- else
- oe_runmake 'DESTDIR=${D}' install install_initscripts
- mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
- rm -rf ${D}${sysconfdir}/rc.d
- fi
- fi
-}
-
-PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules"
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \
- blk-availability.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-EXTRA_OECONF:append:class-nativesdk = " --with-confdir=${sysconfdir}"
-
-DEPENDS += "util-linux"
-LVM2_PACKAGECONFIG:append:class-target = " \
- udev \
-"
-PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev,${PN}-udevrules"
-
-PACKAGES =+ "libdevmapper"
-FILES:libdevmapper = " \
- ${libdir}/libdevmapper.so.* \
- ${sbindir}/dmsetup \
- ${sbindir}/dmstats \
-"
-
-FILES:${PN} += " \
- ${libdir}/device-mapper/*.so \
- ${systemd_system_unitdir}/lvm2-pvscan@.service \
-"
-
-FILES:${PN}-scripts = " \
- ${sbindir}/blkdeactivate \
- ${sbindir}/fsadm \
- ${sbindir}/lvmconf \
- ${sbindir}/lvmdump \
-"
-# Specified explicitly for the udev rules, just in case that it does not get picked
-# up automatically:
-FILES:${PN}-udevrules = "${nonarch_base_libdir}/udev/rules.d"
-RDEPENDS:${PN} = "bash"
-RDEPENDS:${PN}-udevrules = "libdevmapper"
-RDEPENDS:${PN}:append:class-target = " libdevmapper"
-RDEPENDS:${PN}:append:class-nativesdk = " libdevmapper"
-
-RDEPENDS:${PN}-scripts = "${PN} (= ${EXTENDPKGV}) \
- bash \
- util-linux-lsblk \
- util-linux-findmnt \
- coreutils \
-"
-RRECOMMENDS:${PN}:class-target = "${PN}-scripts (= ${EXTENDPKGV})"
-
-CONFFILES:${PN} += "${sysconfdir}/lvm/lvm.conf"
-
-SYSROOT_PREPROCESS_FUNCS:append = " remove_libdevmapper_sysroot_preprocess"
-remove_libdevmapper_sysroot_preprocess() {
- rm -f ${SYSROOT_DESTDIR}${libdir}/libdevmapper.so* \
- ${SYSROOT_DESTDIR}${sbindir}/dmsetup \
- ${SYSROOT_DESTDIR}${sbindir}/dmstats \
- ${SYSROOT_DESTDIR}${includedir}/libdevmapper.h \
- ${SYSROOT_DESTDIR}${libdir}/pkgconfig/devmapper.pc
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/lvm2/lvm2_2.03.22.bb b/meta-oe/recipes-support/lvm2/lvm2_2.03.22.bb
new file mode 100644
index 0000000000..c675d3ded8
--- /dev/null
+++ b/meta-oe/recipes-support/lvm2/lvm2_2.03.22.bb
@@ -0,0 +1,110 @@
+require lvm2.inc
+
+SRC_URI += " \
+ file://0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch \
+ file://tweak-for-lvmdbusd.patch \
+ file://0001-lvmdbusd-create-dirs-for-lock-file.patch \
+ "
+
+DEPENDS += "autoconf-archive-native"
+
+inherit multilib_script python3native
+
+MULTILIB_SCRIPTS = "${PN}:${sysconfdir}/lvm/lvm.conf"
+
+CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe"
+
+do_install:append() {
+ # Install machine specific configuration file
+ install -d ${D}${sysconfdir}/lvm
+ install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf
+ sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf
+ # We don't want init scripts/systemd units for native SDK utilities
+ if [ "${PN}" != "nativesdk-lvm2" ]; then
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ oe_runmake 'DESTDIR=${D}' install install_systemd_units
+ sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service
+ else
+ oe_runmake 'DESTDIR=${D}' install install_initscripts
+ mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
+ rm -rf ${D}${sysconfdir}/rc.d
+ fi
+ fi
+
+ # following files only exist when package config `dbus` enabled
+ sed -i -e '1s,#!.*python.*,#!${USRBINPATH}/env python3,' \
+ ${D}${sbindir}/lvmdbusd \
+ ${D}${PYTHON_SITEPACKAGES_DIR}/lvmdbusd/lvmdb.py \
+ ${D}${PYTHON_SITEPACKAGES_DIR}/lvmdbusd/lvm_shell_proxy.py \
+ || true
+}
+
+PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'lvm2-lvmdbusd.service', '', d)} \
+ blk-availability.service \
+ "
+SYSTEMD_AUTO_ENABLE = "disable"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+EXTRA_OECONF:append:class-nativesdk = " --with-confdir=${sysconfdir}"
+
+DEPENDS += "util-linux"
+LVM2_PACKAGECONFIG:append:class-target = " \
+ udev \
+"
+
+PACKAGECONFIG[dbus] = "--enable-dbus-service,--disable-dbus-service,,python3-dbus python3-pyudev"
+PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev,${PN}-udevrules"
+
+PACKAGES =+ "libdevmapper"
+FILES:libdevmapper = " \
+ ${libdir}/libdevmapper.so.* \
+ ${sbindir}/dmsetup \
+ ${sbindir}/dmstats \
+"
+
+FILES:${PN} += " \
+ ${libdir}/device-mapper/*.so \
+ ${systemd_system_unitdir}/lvm2-pvscan@.service \
+ ${PYTHON_SITEPACKAGES_DIR}/lvmdbusd \
+ ${datadir}/dbus-1/system-services/com.redhat.lvmdbus1.service \
+"
+
+FILES:${PN}-scripts = " \
+ ${sbindir}/blkdeactivate \
+ ${sbindir}/fsadm \
+ ${sbindir}/lvmconf \
+ ${sbindir}/lvmdump \
+"
+# Specified explicitly for the udev rules, just in case that it does not get picked
+# up automatically:
+FILES:${PN}-udevrules = "${nonarch_base_libdir}/udev/rules.d"
+RDEPENDS:${PN} = "bash"
+RDEPENDS:${PN}-udevrules = "libdevmapper"
+RDEPENDS:${PN}:append:class-target = " libdevmapper"
+RDEPENDS:${PN}:append:class-nativesdk = " libdevmapper"
+
+RDEPENDS:${PN}-scripts = "${PN} (= ${EXTENDPKGV}) \
+ bash \
+ util-linux-lsblk \
+ util-linux-findmnt \
+ coreutils \
+"
+RRECOMMENDS:${PN}:class-target = "${PN}-scripts (= ${EXTENDPKGV})"
+
+CONFFILES:${PN} += "${sysconfdir}/lvm/lvm.conf"
+
+SYSROOT_PREPROCESS_FUNCS:append = " remove_libdevmapper_sysroot_preprocess"
+remove_libdevmapper_sysroot_preprocess() {
+ rm -f ${SYSROOT_DESTDIR}${libdir}/libdevmapper.so* \
+ ${SYSROOT_DESTDIR}${sbindir}/dmsetup \
+ ${SYSROOT_DESTDIR}${sbindir}/dmstats \
+ ${SYSROOT_DESTDIR}${includedir}/libdevmapper.h \
+ ${SYSROOT_DESTDIR}${libdir}/pkgconfig/devmapper.pc
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/lzop/lzop/acinclude.m4 b/meta-oe/recipes-support/lzop/lzop/acinclude.m4
deleted file mode 100644
index 0029c19c7d..0000000000
--- a/meta-oe/recipes-support/lzop/lzop/acinclude.m4
+++ /dev/null
@@ -1,390 +0,0 @@
-
-AC_DEFUN([mfx_ACC_CHECK_ENDIAN], [
-AC_C_BIGENDIAN([AC_DEFINE(ACC_ABI_BIG_ENDIAN,1,[Define to 1 if your machine is big endian.])],[AC_DEFINE(ACC_ABI_LITTLE_ENDIAN,1,[Define to 1 if your machine is little endian.])])
-])#
-
-AC_DEFUN([mfx_ACC_CHECK_HEADERS], [
-AC_HEADER_TIME
-AC_CHECK_HEADERS([assert.h ctype.h dirent.h errno.h fcntl.h float.h limits.h malloc.h memory.h setjmp.h signal.h stdarg.h stddef.h stdint.h stdio.h stdlib.h string.h strings.h time.h unistd.h utime.h sys/stat.h sys/time.h sys/types.h sys/wait.h])
-])#
-
-AC_DEFUN([mfx_ACC_CHECK_FUNCS], [
-AC_CHECK_FUNCS(access alloca atexit atoi atol chmod chown ctime difftime fstat gettimeofday gmtime localtime longjmp lstat memcmp memcpy memmove memset mktime qsort raise setjmp signal snprintf strcasecmp strchr strdup strerror strftime stricmp strncasecmp strnicmp strrchr strstr time umask utime vsnprintf)
-])#
-
-
-AC_DEFUN([mfx_ACC_CHECK_SIZEOF], [
-AC_CHECK_SIZEOF(short)
-AC_CHECK_SIZEOF(int)
-AC_CHECK_SIZEOF(long)
-
-AC_CHECK_SIZEOF(long long)
-AC_CHECK_SIZEOF(__int16)
-AC_CHECK_SIZEOF(__int32)
-AC_CHECK_SIZEOF(__int64)
-
-AC_CHECK_SIZEOF(void *)
-AC_CHECK_SIZEOF(size_t)
-AC_CHECK_SIZEOF(ptrdiff_t)
-])#
-
-
-# /***********************************************************************
-# // Check for ACC_conformance
-# ************************************************************************/
-
-AC_DEFUN([mfx_ACC_ACCCHK], [
-mfx_tmp=$1
-mfx_save_CPPFLAGS=$CPPFLAGS
-dnl in Makefile.in $(INCLUDES) will be before $(CPPFLAGS), so we mimic this here
-test "X$mfx_tmp" = "X" || CPPFLAGS="$mfx_tmp $CPPFLAGS"
-
-AC_MSG_CHECKING([whether your compiler passes the ACC conformance test])
-
-AC_LANG_CONFTEST([AC_LANG_PROGRAM(
-[[#define ACC_CONFIG_NO_HEADER 1
-#include "acc/acc.h"
-#include "acc/acc_incd.h"
-#undef ACCCHK_ASSERT
-#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr)
-#include "acc/acc_chk.ch"
-#undef ACCCHK_ASSERT
-static void test_acc_compile_time_assert(void) {
-#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT(expr)
-#include "acc/acc_chk.ch"
-#undef ACCCHK_ASSERT
-}
-#undef NDEBUG
-#include <assert.h>
-static int test_acc_run_time_assert(int r) {
-#define ACCCHK_ASSERT(expr) assert(expr);
-#include "acc/acc_chk.ch"
-#undef ACCCHK_ASSERT
-return r;
-}
-]], [[
-test_acc_compile_time_assert();
-if (test_acc_run_time_assert(1) != 1) return 1;
-]]
-)])
-
-mfx_tmp=FAILED
-_AC_COMPILE_IFELSE([], [mfx_tmp=yes])
-rm -f conftest.$ac_ext conftest.$ac_objext
-
-CPPFLAGS=$mfx_save_CPPFLAGS
-
-AC_MSG_RESULT([$mfx_tmp])
-case x$mfx_tmp in
- xpassed | xyes) ;;
- *)
- AC_MSG_NOTICE([])
- AC_MSG_NOTICE([Your compiler failed the ACC conformance test - for details see ])
- AC_MSG_NOTICE([`config.log'. Please check that log file and consider sending])
- AC_MSG_NOTICE([a patch or bug-report to <${PACKAGE_BUGREPORT}>.])
- AC_MSG_NOTICE([Thanks for your support.])
- AC_MSG_NOTICE([])
- AC_MSG_ERROR([ACC conformance test failed. Stop.])
-dnl AS_EXIT
- ;;
-esac
-])# mfx_ACC_ACCCHK
-
-
-# /***********************************************************************
-# // Check for ACC_conformance
-# ************************************************************************/
-
-AC_DEFUN([mfx_MINIACC_ACCCHK], [
-mfx_tmp=$1
-mfx_save_CPPFLAGS=$CPPFLAGS
-dnl in Makefile.in $(INCLUDES) will be before $(CPPFLAGS), so we mimic this here
-test "X$mfx_tmp" = "X" || CPPFLAGS="$mfx_tmp $CPPFLAGS"
-
-AC_MSG_CHECKING([whether your compiler passes the ACC conformance test])
-
-AC_LANG_CONFTEST([AC_LANG_PROGRAM(
-[[#define ACC_CONFIG_NO_HEADER 1
-#define ACC_WANT_ACC_INCD_H 1
-#include $2
-
-#define ACC_WANT_ACC_CHK_CH 1
-#undef ACCCHK_ASSERT
-#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr)
-#include $2
-
-#define ACC_WANT_ACC_CHK_CH 1
-#undef ACCCHK_ASSERT
-#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT(expr)
-static void test_acc_compile_time_assert(void) {
-#include $2
-}
-
-#undef NDEBUG
-#include <assert.h>
-#define ACC_WANT_ACC_CHK_CH 1
-#undef ACCCHK_ASSERT
-#define ACCCHK_ASSERT(expr) assert(expr);
-static int test_acc_run_time_assert(int r) {
-#include $2
-return r;
-}
-]], [[
-test_acc_compile_time_assert();
-if (test_acc_run_time_assert(1) != 1) return 1;
-]]
-)])
-
-mfx_tmp=FAILED
-_AC_COMPILE_IFELSE([], [mfx_tmp=yes])
-rm -f conftest.$ac_ext conftest.$ac_objext
-
-CPPFLAGS=$mfx_save_CPPFLAGS
-
-AC_MSG_RESULT([$mfx_tmp])
-case x$mfx_tmp in
- xpassed | xyes) ;;
- *)
- AC_MSG_NOTICE([])
- AC_MSG_NOTICE([Your compiler failed the ACC conformance test - for details see ])
- AC_MSG_NOTICE([`config.log'. Please check that log file and consider sending])
- AC_MSG_NOTICE([a patch or bug-report to <${PACKAGE_BUGREPORT}>.])
- AC_MSG_NOTICE([Thanks for your support.])
- AC_MSG_NOTICE([])
- AC_MSG_ERROR([ACC conformance test failed. Stop.])
-dnl AS_EXIT
- ;;
-esac
-])# mfx_MINIACC_ACCCHK
-
-
-
-# serial 1
-
-AC_DEFUN([mfx_PROG_CPPFLAGS], [
-AC_MSG_CHECKING([whether the C preprocessor needs special flags])
-
-AC_LANG_CONFTEST([AC_LANG_PROGRAM(
-[[#include <limits.h>
-#if (32767 >= 4294967295ul) || (65535u >= 4294967295ul)
-# include "your C preprocessor is broken 1"
-#elif (0xffffu == 0xfffffffful)
-# include "your C preprocessor is broken 2"
-#elif (32767 >= ULONG_MAX) || (65535u >= ULONG_MAX)
-# include "your C preprocessor is broken 3"
-#endif
-]], [[ ]]
-)])
-
-mfx_save_CPPFLAGS=$CPPFLAGS
-mfx_tmp=ERROR
-for mfx_arg in "" -no-cpp-precomp
-do
- CPPFLAGS="$mfx_arg $mfx_save_CPPFLAGS"
- _AC_COMPILE_IFELSE([],
-[mfx_tmp=$mfx_arg
-break])
-done
-CPPFLAGS=$mfx_save_CPPFLAGS
-rm -f conftest.$ac_ext conftest.$ac_objext
-case x$mfx_tmp in
- x)
- AC_MSG_RESULT([none needed]) ;;
- xERROR)
- AC_MSG_RESULT([ERROR])
- AC_MSG_ERROR([your C preprocessor is broken - for details see config.log])
- ;;
- *)
- AC_MSG_RESULT([$mfx_tmp])
- CPPFLAGS="$mfx_tmp $CPPFLAGS"
- ;;
-esac
-])# mfx_PROG_CPPFLAGS
-
-
-
-# serial 3
-
-AC_DEFUN([mfx_CHECK_HEADER_SANE_LIMITS_H], [
-AC_CACHE_CHECK([whether limits.h is sane],
-mfx_cv_header_sane_limits_h,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <limits.h>
-#if (32767 >= 4294967295ul) || (65535u >= 4294967295ul)
-# if defined(__APPLE__) && defined(__GNUC__)
-# error "your preprocessor is broken - use compiler option -no-cpp-precomp"
-# else
-# include "your preprocessor is broken"
-# endif
-#endif
-#define MFX_0xffff 0xffff
-#define MFX_0xffffffffL 4294967295ul
-#if !defined(CHAR_BIT) || (CHAR_BIT != 8)
-# include "error CHAR_BIT"
-#endif
-#if !defined(UCHAR_MAX)
-# include "error UCHAR_MAX 1"
-#endif
-#if !defined(USHRT_MAX)
-# include "error USHRT_MAX 1"
-#endif
-#if !defined(UINT_MAX)
-# include "error UINT_MAX 1"
-#endif
-#if !defined(ULONG_MAX)
-# include "error ULONG_MAX 1"
-#endif
-#if !defined(SHRT_MAX)
-# include "error SHRT_MAX 1"
-#endif
-#if !defined(INT_MAX)
-# include "error INT_MAX 1"
-#endif
-#if !defined(LONG_MAX)
-# include "error LONG_MAX 1"
-#endif
-#if (UCHAR_MAX < 1)
-# include "error UCHAR_MAX 2"
-#endif
-#if (USHRT_MAX < 1)
-# include "error USHRT_MAX 2"
-#endif
-#if (UINT_MAX < 1)
-# include "error UINT_MAX 2"
-#endif
-#if (ULONG_MAX < 1)
-# include "error ULONG_MAX 2"
-#endif
-#if (UCHAR_MAX < 0xff)
-# include "error UCHAR_MAX 3"
-#endif
-#if (USHRT_MAX < MFX_0xffff)
-# include "error USHRT_MAX 3"
-#endif
-#if (UINT_MAX < MFX_0xffff)
-# include "error UINT_MAX 3"
-#endif
-#if (ULONG_MAX < MFX_0xffffffffL)
-# include "error ULONG_MAX 3"
-#endif
-#if (USHRT_MAX > UINT_MAX)
-# include "error USHRT_MAX vs UINT_MAX"
-#endif
-#if (UINT_MAX > ULONG_MAX)
-# include "error UINT_MAX vs ULONG_MAX"
-#endif
-]], [[
-#if (USHRT_MAX == MFX_0xffff)
-{ typedef char a_short2a[1 - 2 * !(sizeof(short) == 2)]; }
-#elif (USHRT_MAX >= MFX_0xffff)
-{ typedef char a_short2b[1 - 2 * !(sizeof(short) > 2)]; }
-#endif
-#if (UINT_MAX == MFX_0xffff)
-{ typedef char a_int2a[1 - 2 * !(sizeof(int) == 2)]; }
-#elif (UINT_MAX >= MFX_0xffff)
-{ typedef char a_int2b[1 - 2 * !(sizeof(int) > 2)]; }
-#endif
-#if (ULONG_MAX == MFX_0xffff)
-{ typedef char a_long2a[1 - 2 * !(sizeof(long) == 2)]; }
-#elif (ULONG_MAX >= MFX_0xffff)
-{ typedef char a_long2b[1 - 2 * !(sizeof(long) > 2)]; }
-#endif
-#if (USHRT_MAX == MFX_0xffffffffL)
-{ typedef char a_short4a[1 - 2 * !(sizeof(short) == 4)]; }
-#elif (USHRT_MAX >= MFX_0xffffffffL)
-{ typedef char a_short4b[1 - 2 * !(sizeof(short) > 4)]; }
-#endif
-#if (UINT_MAX == MFX_0xffffffffL)
-{ typedef char a_int4a[1 - 2 * !(sizeof(int) == 4)]; }
-#elif (UINT_MAX >= MFX_0xffffffffL)
-{ typedef char a_int4b[1 - 2 * !(sizeof(int) > 4)]; }
-#endif
-#if (ULONG_MAX == MFX_0xffffffffL)
-{ typedef char a_long4a[1 - 2 * !(sizeof(long) == 4)]; }
-#elif (ULONG_MAX >= MFX_0xffffffffL)
-{ typedef char a_long4b[1 - 2 * !(sizeof(long) > 4)]; }
-#endif
-]])],
-[mfx_cv_header_sane_limits_h=yes],
-[mfx_cv_header_sane_limits_h=no])])
-])
-
-# /***********************************************************************
-# // standard
-# ************************************************************************/
-
-AC_DEFUN([mfx_LZO_CHECK_ENDIAN], [
-AC_C_BIGENDIAN([AC_DEFINE(LZO_ABI_BIG_ENDIAN,1,[Define to 1 if your machine is big endian.])],[AC_DEFINE(LZO_ABI_LITTLE_ENDIAN,1,[Define to 1 if your machine is little endian.])])
-])#
-
-
-# /***********************************************************************
-# //
-# ************************************************************************/
-
-dnl more types which are not yet covered by ACC
-
-AC_DEFUN([mfx_CHECK_SIZEOF], [
-AC_CHECK_SIZEOF(__int32)
-AC_CHECK_SIZEOF(intmax_t)
-AC_CHECK_SIZEOF(uintmax_t)
-AC_CHECK_SIZEOF(intptr_t)
-AC_CHECK_SIZEOF(uintptr_t)
-
-AC_CHECK_SIZEOF(float)
-AC_CHECK_SIZEOF(double)
-AC_CHECK_SIZEOF(long double)
-
-AC_CHECK_SIZEOF(dev_t)
-AC_CHECK_SIZEOF(fpos_t)
-AC_CHECK_SIZEOF(mode_t)
-AC_CHECK_SIZEOF(off_t)
-AC_CHECK_SIZEOF(ssize_t)
-AC_CHECK_SIZEOF(time_t)
-])#
-
-
-
-AC_DEFUN([mfx_CHECK_LIB_WINMM], [
-if test "X$GCC" = Xyes; then
-case $host_os in
-cygwin* | mingw* | pw32*)
- test "X$LIBS" != "X" && LIBS="$LIBS "
- LIBS="${LIBS}-lwinmm" ;;
-*)
- ;;
-esac
-fi
-])#
-
-#serial 6
-
-dnl From Paul Eggert.
-
-# Define ST_MTIM_NSEC to be the nanoseconds member of struct stat's st_mtim,
-# if it exists.
-
-AC_DEFUN([AC_STRUCT_ST_MTIM_NSEC],
- [AC_CACHE_CHECK([for nanoseconds member of struct stat.st_mtim],
- ac_cv_struct_st_mtim_nsec,
- [ac_save_CPPFLAGS="$CPPFLAGS"
- ac_cv_struct_st_mtim_nsec=no
- # tv_nsec -- the usual case
- # _tv_nsec -- Solaris 2.6, if
- # (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1
- # && !defined __EXTENSIONS__)
- # st__tim.tv_nsec -- UnixWare 2.1.2
- for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do
- CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val"
- AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/stat.h>], [struct stat s; s.st_mtim.ST_MTIM_NSEC;],
- [ac_cv_struct_st_mtim_nsec=$ac_val; break])
- done
- CPPFLAGS="$ac_save_CPPFLAGS"])
-
- if test $ac_cv_struct_st_mtim_nsec != no; then
- AC_DEFINE_UNQUOTED(ST_MTIM_NSEC, $ac_cv_struct_st_mtim_nsec,
- [Define to be the nanoseconds member of struct stat's st_mtim,
- if it exists.])
- fi
- ]
-)
diff --git a/meta-oe/recipes-support/lzop/lzop_1.04.bb b/meta-oe/recipes-support/lzop/lzop_1.04.bb
deleted file mode 100644
index d9b3524b67..0000000000
--- a/meta-oe/recipes-support/lzop/lzop_1.04.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Real-time file compressor"
-DESCRIPTION = "lzop is a compression utility which is designed to be a companion to gzip. \n\
-It is based on the LZO data compression library and its main advantages over \n\
-gzip are much higher compression and decompression speed at the cost of some \n\
-compression ratio. The lzop compression utility was designed with the goals \n\
-of reliability, speed, portability and with reasonable drop-in compatibility \n\
-to gzip."
-HOMEPAGE = "http://www.lzop.org/"
-DEPENDS += "lzo"
-
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://src/lzop.c;beginline=5;endline=21;md5=23d767de7754eb24b9e900b025cf7fc8"
-
-SRC_URI = "http://www.lzop.org/download/${BP}.tar.gz \
- file://acinclude.m4 \
- "
-SRC_URI[md5sum] = "271eb10fde77a0a96b9cbf745e719ddf"
-SRC_URI[sha256sum] = "7e72b62a8a60aff5200a047eea0773a8fb205caf7acbe1774d95147f305a2f41"
-
-inherit autotools
-
-do_configure:prepend () {
- install -Dm 0644 ${WORKDIR}/acinclude.m4 ${S}/acinclude.m4
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/mailcap/mailcap_2.1.53.bb b/meta-oe/recipes-support/mailcap/mailcap_2.1.53.bb
deleted file mode 100644
index 34588380ae..0000000000
--- a/meta-oe/recipes-support/mailcap/mailcap_2.1.53.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Helper application and MIME type associations for file types"
-HOMEPAGE = "https://pagure.io/mailcap"
-DESCRIPTION = "The mailcap file is used by the metamail program. Metamail reads the \
-mailcap file to determine how it should display non-text or multimedia \
-material. Basically, mailcap associates a particular type of file \
-with a particular program that a mail agent or other program can call \
-in order to handle the file. Mailcap should be installed to allow \
-certain programs to be able to handle non-text files. \
-\
-Also included in this package is the mime.types file which contains a \
-list of MIME types and their filename extension associations, used \
-by several applications e.g. to determine MIME types for filenames."
-
-SECTION = "System Environment/Base"
-
-LICENSE = "PD & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8dce08227d135cfda1f19d4c0c6689de"
-
-SRC_URI = "https://releases.pagure.org/${BPN}/${BP}.tar.xz"
-
-SRC_URI[md5sum] = "ee02da867389d290923cc138487176f9"
-SRC_URI[sha256sum] = "5eea2ef17b304977ba3ecb87afad4319fa0440f825e4f6fba6e8fa2ffeb88785"
-
-inherit update-alternatives
-
-do_install() {
- oe_runmake install DESTDIR=${D} sysconfdir=${sysconfdir} mandir=${mandir}
-}
-
-ALTERNATIVE:${PN} = "mime.types"
-ALTERNATIVE_LINK_NAME[mime.types] = "${sysconfdir}/mime.types"
diff --git a/meta-oe/recipes-support/mailcap/mailcap_2.1.54.bb b/meta-oe/recipes-support/mailcap/mailcap_2.1.54.bb
new file mode 100644
index 0000000000..8385b63543
--- /dev/null
+++ b/meta-oe/recipes-support/mailcap/mailcap_2.1.54.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Helper application and MIME type associations for file types"
+HOMEPAGE = "https://pagure.io/mailcap"
+DESCRIPTION = "The mailcap file is used by the metamail program. Metamail reads the \
+mailcap file to determine how it should display non-text or multimedia \
+material. Basically, mailcap associates a particular type of file \
+with a particular program that a mail agent or other program can call \
+in order to handle the file. Mailcap should be installed to allow \
+certain programs to be able to handle non-text files. \
+\
+Also included in this package is the mime.types file which contains a \
+list of MIME types and their filename extension associations, used \
+by several applications e.g. to determine MIME types for filenames."
+
+SECTION = "System Environment/Base"
+
+LICENSE = "PD & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8dce08227d135cfda1f19d4c0c6689de"
+
+SRC_URI = "https://releases.pagure.org/${BPN}/${BP}.tar.xz"
+
+SRC_URI[sha256sum] = "9a4032202fc0d2b0858f41b167389a9cfe52ac24ec282e6479b90765319de113"
+
+inherit update-alternatives
+
+do_install() {
+ oe_runmake install DESTDIR=${D} sysconfdir=${sysconfdir} mandir=${mandir}
+}
+
+ALTERNATIVE:${PN} = "mime.types"
+ALTERNATIVE_LINK_NAME[mime.types] = "${sysconfdir}/mime.types"
diff --git a/meta-oe/recipes-support/mcelog/mce-inject_git.bb b/meta-oe/recipes-support/mcelog/mce-inject_git.bb
index d440a53d87..a228c3cc06 100644
--- a/meta-oe/recipes-support/mcelog/mce-inject_git.bb
+++ b/meta-oe/recipes-support/mcelog/mce-inject_git.bb
@@ -21,4 +21,4 @@ COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
inherit autotools-brokensep
-EXTRA_OEMAKE = "destdir=${D}"
+EXTRA_OEMAKE = "destdir=${D} CFLAGS='${CFLAGS}'"
diff --git a/meta-oe/recipes-support/mcelog/mce-test_git.bb b/meta-oe/recipes-support/mcelog/mce-test_git.bb
index f4f1b37d78..05e98e86ed 100644
--- a/meta-oe/recipes-support/mcelog/mce-test_git.bb
+++ b/meta-oe/recipes-support/mcelog/mce-test_git.bb
@@ -14,8 +14,8 @@ SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git;protocol=git;
file://makefile-remove-ldflags.patch \
file://0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch \
"
-SRCREV = "7643baf6c3919b3d727e6ba6c2e545dc6a653307"
-PV = "20190917+git${SRCPV}"
+SRCREV = "025014dedca39d2b8a57a82e52286e72e157d73a"
+PV = "20222810+git"
RDEPENDS:${PN} = "mcelog mce-inject dialog bash"
@@ -23,6 +23,8 @@ COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
S ="${WORKDIR}/git"
+EXTRA_OEMAKE += "CFLAGS='${CFLAGS}'"
+
do_install:append(){
install -d ${D}/opt/mce-test
cp -rf ${S}/* ${D}/opt/mce-test/
diff --git a/meta-oe/recipes-support/mcelog/mcelog/run-ptest b/meta-oe/recipes-support/mcelog/mcelog/run-ptest
index ba7a2c7683..320240f276 100644
--- a/meta-oe/recipes-support/mcelog/mcelog/run-ptest
+++ b/meta-oe/recipes-support/mcelog/mcelog/run-ptest
@@ -1,3 +1,9 @@
#!/bin/sh
-make -C tests test
+make -C tests test | sed -e '/\[PASS\]/ s/^/PASS: /g' \
+ -e '/\[FAIL\]/ s/^/FAIL: /g' \
+ -e '/\[IGNORE\]/ s/^/SKIP: /g' \
+ -e 's/IGNORE:/SKIP:/' \
+ -e 's/: \[PASS\]//' \
+ -e 's/: \[FAIL\]//' \
+ -e 's/: \[IGNORE\]//'
diff --git a/meta-oe/recipes-support/mcelog/mcelog_189.bb b/meta-oe/recipes-support/mcelog/mcelog_189.bb
deleted file mode 100644
index 2f8af9aa3f..0000000000
--- a/meta-oe/recipes-support/mcelog/mcelog_189.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "mcelog daemon accounts memory and some other errors in various ways."
-DESCRIPTION = "mcelog is required by both 32bit x86 Linux kernels (since 2.6.30) \
-and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks \
-and should run on all Linux systems that need error handling."
-HOMEPAGE = "https://mcelog.org/"
-SECTION = "System Environment/Base"
-
-SRC_URI = "\
- git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http;;branch=master \
- file://0001-client-Include-string.h-form-mem-function-prototypes.patch \
- file://run-ptest \
-"
-
-SRCREV = "b8dfb1fa34eb627a03adfb315326a29ec51214b3"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-S = "${WORKDIR}/git"
-
-inherit autotools-brokensep ptest
-
-COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
-
-do_install:append() {
- install -d ${D}${sysconfdir}/cron.hourly
- install -m 0755 ${S}/mcelog.cron ${D}${sysconfdir}/cron.hourly/
- sed -i 's/bash/sh/' ${D}${sysconfdir}/cron.hourly/mcelog.cron
-}
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}
- cp -r ${S}/tests ${S}/input ${D}${PTEST_PATH}
- sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test
-}
-
-RDEPENDS:${PN}-ptest += "make bash mce-inject"
diff --git a/meta-oe/recipes-support/mcelog/mcelog_198.bb b/meta-oe/recipes-support/mcelog/mcelog_198.bb
new file mode 100644
index 0000000000..e302f4175d
--- /dev/null
+++ b/meta-oe/recipes-support/mcelog/mcelog_198.bb
@@ -0,0 +1,44 @@
+SUMMARY = "mcelog daemon accounts memory and some other errors in various ways."
+DESCRIPTION = "mcelog is required by both 32bit x86 Linux kernels (since 2.6.30) \
+and 64bit Linux kernels (since early 2.6 kernel releases) to log machine checks \
+and should run on all Linux systems that need error handling."
+HOMEPAGE = "https://mcelog.org/"
+SECTION = "System Environment/Base"
+
+SRC_URI = "\
+ git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http;;branch=master \
+ file://0001-client-Include-string.h-form-mem-function-prototypes.patch \
+ file://run-ptest \
+"
+
+SRCREV = "ab58f07b9b1a4456fca0f5f41639d5cbecc80e36"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+S = "${WORKDIR}/git"
+
+inherit ptest
+
+COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
+
+EXTRA_OEMAKE += "CFLAGS='${CFLAGS}'"
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+ install -d ${D}${sysconfdir}/cron.hourly
+ install -m 0755 ${S}/mcelog.cron ${D}${sysconfdir}/cron.hourly/
+ sed -i 's/bash/sh/' ${D}${sysconfdir}/cron.hourly/mcelog.cron
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}
+ cp -r ${S}/tests ${S}/input ${D}${PTEST_PATH}
+ sed -i 's#../../mcelog#mcelog#' ${D}${PTEST_PATH}/tests/test
+}
+
+RDEPENDS:${PN}-ptest += "make bash mce-inject"
diff --git a/meta-oe/recipes-support/md4c/md4c_0.5.2.bb b/meta-oe/recipes-support/md4c/md4c_0.5.2.bb
new file mode 100644
index 0000000000..6c409666fc
--- /dev/null
+++ b/meta-oe/recipes-support/md4c/md4c_0.5.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Markdown for C"
+DESCRIPTION = "MD4C is Markdown parser implementation in C."
+HOMEPAGE = "http://github.com/mity/md4c"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=383f39920f391605af6e8e46e60e2378"
+
+
+S = "${WORKDIR}/git"
+
+SRC_URI = " \
+ git://github.com/mity/md4c.git;protocol=https;branch=master \
+"
+
+SRCREV = "729e6b8b320caa96328968ab27d7db2235e4fb47"
+
+inherit cmake
diff --git a/meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch b/meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch
index 9c154a1734..ce139a6387 100644
--- a/meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch
+++ b/meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] Undefine REGEX for musl based systems
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
GNUmakefile | 1 -
Makefile | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch b/meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch
index 8e8c2b9025..4eeb1d97dc 100644
--- a/meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch
+++ b/meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 1/2] fileio: Include sys/param.h for MAXNAMLEN
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
fileio.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch b/meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch
index bdd7632be6..ef7811081b 100644
--- a/meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch
+++ b/meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 2/2] fileio: Define DEFFILEMODE if platform is missing
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
fileio.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/meta-oe/recipes-support/mg/mg_20220614.bb b/meta-oe/recipes-support/mg/mg_20220614.bb
deleted file mode 100644
index 01ccef5124..0000000000
--- a/meta-oe/recipes-support/mg/mg_20220614.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "A portable version of the mg maintained by the OpenBSD team"
-HOMEPAGE = "http://homepage.boetes.org/software/mg/"
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://version.c;md5=43616508f42ab3fdb082c5f932bd2eb4"
-DEPENDS = "ncurses libbsd"
-SECTION = "console/editors"
-
-SRCREV = "ea58e622fad20622ac0b723d021baaaf5dc0eb49"
-SRC_URI = "git://github.com/hboetes/mg;branch=master;protocol=https \
- file://0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch \
- file://0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch \
- "
-SRC_URI:append:libc-musl = "\
- file://0001-Undefine-REGEX-for-musl-based-systems.patch \
- "
-
-S = "${WORKDIR}/git"
-
-# CFLAGS isn't in EXTRA_OEMAKE, as the makefile picks it up via ?=
-EXTRA_OEMAKE = "\
- 'CC=${CC}' \
- 'LDFLAGS=${LDFLAGS}' \
- \
- 'prefix=${prefix}' \
- 'bindir=${bindir}' \
- 'libdir=${libdir}' \
- 'includedir=${includedir}' \
- 'mandir=${mandir}' \
- 'PKG_CONFIG=pkg-config' \
-"
-
-CFLAGS += "-I${STAGING_INCDIR}/bsd"
-
-do_install () {
- oe_runmake install DESTDIR=${D}
-}
-
-inherit pkgconfig
diff --git a/meta-oe/recipes-support/mg/mg_20230501.bb b/meta-oe/recipes-support/mg/mg_20230501.bb
new file mode 100644
index 0000000000..ee00003977
--- /dev/null
+++ b/meta-oe/recipes-support/mg/mg_20230501.bb
@@ -0,0 +1,38 @@
+SUMMARY = "A portable version of the mg maintained by the OpenBSD team"
+HOMEPAGE = "http://homepage.boetes.org/software/mg/"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://version.c;md5=a8e0b53d89d277bf3b40878ac568bedd"
+DEPENDS = "ncurses libbsd"
+SECTION = "console/editors"
+
+SRCREV = "f21c2ba36772ffa68d9cfa55305e427d37903b4a"
+SRC_URI = "git://github.com/hboetes/mg;branch=master;protocol=https \
+ file://0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch \
+ file://0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch \
+ "
+SRC_URI:append:libc-musl = "\
+ file://0001-Undefine-REGEX-for-musl-based-systems.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+# CFLAGS isn't in EXTRA_OEMAKE, as the makefile picks it up via ?=
+EXTRA_OEMAKE = "\
+ 'CC=${CC}' \
+ 'LDFLAGS=${LDFLAGS}' \
+ \
+ 'prefix=${prefix}' \
+ 'bindir=${bindir}' \
+ 'libdir=${libdir}' \
+ 'includedir=${includedir}' \
+ 'mandir=${mandir}' \
+ 'PKG_CONFIG=pkg-config' \
+"
+
+CFLAGS += "-I${STAGING_INCDIR}/bsd"
+
+do_install () {
+ oe_runmake install DESTDIR=${D}
+}
+
+inherit pkgconfig
diff --git a/meta-oe/recipes-support/monit/monit_5.32.0.bb b/meta-oe/recipes-support/monit/monit_5.32.0.bb
deleted file mode 100644
index e4ec9d5262..0000000000
--- a/meta-oe/recipes-support/monit/monit_5.32.0.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-DESCRIPTION = "Monit is a free open source utility for managing and monitoring, \
-processes, programs, files, directories and filesystems on a UNIX system. \
-Monit conducts automatic maintenance and repair and can execute meaningful \
-causal actions in error situations."
-
-HOMEPAGE = "http://mmonit.com/monit/"
-
-LICENSE = "AGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ea116a7defaf0e93b3bb73b2a34a3f51 \
- file://libmonit/COPYING;md5=2405f1c59ed1bf3714cebdb40162ce92"
-
-SRC_URI = " \
- https://mmonit.com/monit/dist/monit-${PV}.tar.gz \
- file://monit \
- file://monitrc \
-"
-
-SRC_URI[sha256sum] = "1077052d4c4e848ac47d14f9b37754d46419aecbe8c9a07e1f869c914faf3216"
-
-DEPENDS = "zlib bison-native libnsl2 flex-native openssl virtual/crypt"
-
-inherit autotools-brokensep systemd update-rc.d
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
-PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
-
-EXTRA_OECONF = "\
- libmonit_cv_setjmp_available=no \
- libmonit_cv_vsnprintf_c99_conformant=no \
- --with-ssl-lib-dir=${STAGING_LIBDIR} \
- --with-ssl-incl-dir=${STAGING_INCDIR} \
-"
-
-SYSTEMD_SERVICE:${PN} = "monit.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME:${PN} = "monit"
-INITSCRIPT_PARAMS:${PN} = "defaults 89"
-
-do_configure:prepend() {
- rm -rf ${S}/m4/*
-}
-
-do_install:append() {
-
- # Configuration file
- install -Dm 0600 ${WORKDIR}/monitrc ${D}${sysconfdir}/monitrc
-
- # SystemD
- install -Dm 0644 ${S}/system/startup/monit.service.in ${D}${systemd_system_unitdir}/monit.service
- sed -i -e 's,@prefix@,${exec_prefix},g' ${D}${systemd_unitdir}/system/monit.service
-
- # SysV
- install -Dm 0755 ${WORKDIR}/monit ${D}${sysconfdir}/init.d/monit
-}
diff --git a/meta-oe/recipes-support/monit/monit_5.33.0.bb b/meta-oe/recipes-support/monit/monit_5.33.0.bb
new file mode 100644
index 0000000000..66d4079a94
--- /dev/null
+++ b/meta-oe/recipes-support/monit/monit_5.33.0.bb
@@ -0,0 +1,56 @@
+DESCRIPTION = "Monit is a free open source utility for managing and monitoring, \
+processes, programs, files, directories and filesystems on a UNIX system. \
+Monit conducts automatic maintenance and repair and can execute meaningful \
+causal actions in error situations."
+
+HOMEPAGE = "http://mmonit.com/monit/"
+
+LICENSE = "AGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ea116a7defaf0e93b3bb73b2a34a3f51 \
+ file://libmonit/COPYING;md5=2405f1c59ed1bf3714cebdb40162ce92"
+
+SRC_URI = " \
+ https://mmonit.com/monit/dist/monit-${PV}.tar.gz \
+ file://monit \
+ file://monitrc \
+"
+
+SRC_URI[sha256sum] = "1ace889c0183473a9d70160df6533bb6e1338dc1354f5928507803e1e2a863b5"
+
+DEPENDS = "zlib bison-native libnsl2 flex-native openssl virtual/crypt"
+
+inherit autotools-brokensep systemd update-rc.d
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
+
+EXTRA_OECONF = "\
+ libmonit_cv_setjmp_available=no \
+ libmonit_cv_vsnprintf_c99_conformant=no \
+ --with-ssl-lib-dir=${STAGING_LIBDIR} \
+ --with-ssl-incl-dir=${STAGING_INCDIR} \
+"
+
+SYSTEMD_SERVICE:${PN} = "monit.service"
+SYSTEMD_AUTO_ENABLE = "enable"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "monit"
+INITSCRIPT_PARAMS:${PN} = "defaults 89"
+
+do_configure:prepend() {
+ rm -rf ${S}/m4/*
+}
+
+do_install:append() {
+
+ # Configuration file
+ install -Dm 0600 ${WORKDIR}/monitrc ${D}${sysconfdir}/monitrc
+
+ # SystemD
+ install -Dm 0644 ${S}/system/startup/monit.service.in ${D}${systemd_system_unitdir}/monit.service
+ sed -i -e 's,@prefix@,${exec_prefix},g' ${D}${systemd_unitdir}/system/monit.service
+
+ # SysV
+ install -Dm 0755 ${WORKDIR}/monit ${D}${sysconfdir}/init.d/monit
+}
diff --git a/meta-oe/recipes-support/msktutil/msktutil/0001-configure.ac-Remove-native-include-path.patch b/meta-oe/recipes-support/msktutil/msktutil/0001-configure.ac-Remove-native-include-path.patch
new file mode 100644
index 0000000000..1643c08566
--- /dev/null
+++ b/meta-oe/recipes-support/msktutil/msktutil/0001-configure.ac-Remove-native-include-path.patch
@@ -0,0 +1,31 @@
+From bf9795ffbda7bb241b708ff261976016efb943b1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 25 Jan 2023 23:12:19 -0800
+Subject: [PATCH] configure.ac: Remove native include path
+
+On OE com_err.h is found in /usr/include too, therefore adding new path
+to include search path is not needed. Moreover it fixed QA checks where
+it warns about using build system paths.
+
+Upstream-Status: Inappropriate [Cross-compile specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index eaac16f..d23d0b0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -134,7 +134,6 @@ fi
+ # Fedora, RHEL, Centos has com_err.h in /usr/include/et
+ AC_CHECK_HEADERS([et/com_err.h])
+ if test "$ac_cv_header_et_com_err_h" = "yes"; then
+- CPPFLAGS="-I/usr/include/et $CPPFLAGS"
+ AC_DEFINE(HAVE_COM_ERR_H, 1)
+ fi
+
+--
+2.39.1
+
diff --git a/meta-oe/recipes-support/msktutil/msktutil_1.2.1.bb b/meta-oe/recipes-support/msktutil/msktutil_1.2.1.bb
new file mode 100644
index 0000000000..b4f4651e37
--- /dev/null
+++ b/meta-oe/recipes-support/msktutil/msktutil_1.2.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Program for interoperability with Active Directory"
+DESCRIPTION = "Msktutil creates user or computer accounts in Active Directory, \
+ creates Kerberos keytabs on Unix/Linux systems, adds and removes \
+ principals to and from keytabs and changes the user or computer \
+ account's password."
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a"
+
+SRC_URI = "https://github.com/msktutil/msktutil/releases/download/${PV}/${BP}.tar.bz2 \
+ file://0001-configure.ac-Remove-native-include-path.patch"
+SRC_URI[sha256sum] = "f9686237c4e24414802415f4c8627c7343da365c5a3bcdef7a853fa3cd27b45d"
+
+DEPENDS += "krb5 cyrus-sasl openldap"
+
+inherit autotools
diff --git a/meta-oe/recipes-support/multipath-tools/files/0001-RH-fixup-udev-rules-for-redhat.patch b/meta-oe/recipes-support/multipath-tools/files/0001-RH-fixup-udev-rules-for-redhat.patch
new file mode 100644
index 0000000000..74ae1530cb
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0001-RH-fixup-udev-rules-for-redhat.patch
@@ -0,0 +1,76 @@
+From 1e1ba9ecc16895bf472eae345d44631b65629611 Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Thu, 13 Apr 2017 07:22:23 -0500
+Subject: [PATCH 01/12] RH: fixup udev rules for redhat
+
+The multipath rules need to run after scsi_id is run. This means moving
+them after 60-persistent-storage.rules for redhat. Redhat also uses a
+different naming scheme for partitions than SuSE. Also, there are some
+false warnings that gcc throws because of the changed options. Fix these
+too.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Upstream-Status: Pending
+---
+ Makefile.inc | 2 +-
+ kpartx/kpartx.rules | 2 +-
+ multipath/Makefile | 4 ++--
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index 5668e638..de89b21f 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -59,7 +59,7 @@ tmpfilesdir := $(systemd_prefix)lib/tmpfiles.d
+ modulesloaddir := $(systemd_prefix)lib/modules-load.d
+ libudevdir := $(systemd_prefix)lib/udev
+ udevrulesdir := $(libudevdir)/rules.d
+-bindir := $(exec_prefix)sbin
++bindir := $(exec_prefix)/usr/sbin
+ mandir := $(usr_prefix)share/man
+ LIB := $(if $(shell test -d /lib64 && echo 1),lib64,lib)
+ syslibdir := $(prefix)$(LIB)
+diff --git a/kpartx/kpartx.rules b/kpartx/kpartx.rules
+index 1969dee0..d2b28233 100644
+--- a/kpartx/kpartx.rules
++++ b/kpartx/kpartx.rules
+@@ -39,6 +39,6 @@ LABEL="mpath_kpartx_end"
+ GOTO="kpartx_end"
+
+ LABEL="run_kpartx"
+-RUN+="/sbin/kpartx -un -p -part /dev/$name"
++RUN+="/sbin/kpartx -un /dev/$name"
+
+ LABEL="kpartx_end"
+diff --git a/multipath/Makefile b/multipath/Makefile
+index 67fb5e62..2ea9e528 100644
+--- a/multipath/Makefile
++++ b/multipath/Makefile
+@@ -27,7 +27,7 @@ install:
+ $(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
+ $(Q)$(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
+ $(Q)$(INSTALL_PROGRAM) -m 644 99-z-dm-mpath-late.rules $(DESTDIR)$(udevrulesdir)
+- $(Q)$(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)$(udevrulesdir)/56-multipath.rules
++ $(Q)$(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)$(udevrulesdir)/62-multipath.rules
+ $(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(tmpfilesdir)
+ $(Q)$(INSTALL_PROGRAM) -m 644 tmpfiles.conf $(DESTDIR)$(tmpfilesdir)/multipath.conf
+ $(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)/man8
+@@ -50,7 +50,7 @@ uninstall:
+ $(Q)$(RM) $(DESTDIR)$(udevrulesdir)/99-z-dm-mpath-late.rules
+ $(Q)$(RM) $(DESTDIR)$(modulesloaddir)/multipath.conf
+ $(Q)$(RM) $(DESTDIR)$(modulesloaddir)/scsi_dh.conf
+- $(Q)$(RM) $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
++ $(Q)$(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
+ $(Q)$(RM) $(DESTDIR)$(mandir)/man8/$(EXEC).8
+ $(Q)$(RM) $(DESTDIR)$(mandir)/man5/$(EXEC).conf.5
+ $(Q)$(RM) $(DESTDIR)$(tmpfilesdir)/multipath.conf
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0001-add-explicit-dependency-on-libraries.patch b/meta-oe/recipes-support/multipath-tools/files/0001-add-explicit-dependency-on-libraries.patch
deleted file mode 100644
index 2827bb8745..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0001-add-explicit-dependency-on-libraries.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 04884263d1de8c427a7a15bd1cf6466ea65d3a0b Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 25 May 2020 23:22:55 -0700
-Subject: [PATCH] add explicit dependency on libraries
-
-[snip]
-gcc/i686-overc-linux/10.1.0/ld: cannot find -lmpathpersist
-collect2: error: ld returned 1 exit status
-Makefile:36: recipe for target 'multipathd' failed
-make[1]: *** [multipathd] Error 1
-make[1]: Leaving directory 'git/multipathd'
-Makefile:29: recipe for target 'multipathd' failed
-make: *** [multipathd] Error 2
-ln -sf libmpathpersist.so.0 libmpathpersist.so
-[snip]
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- Makefile | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index bea0a0b2..37a77129 100644
---- a/Makefile
-+++ b/Makefile
-@@ -29,7 +29,8 @@ $(BUILDDIRS):
- $(MAKE) -C $@
-
- multipath multipathd mpathpersist libmpathpersist : libmultipath
--mpathpersist: libmpathpersist
-+mpathpersist multipathd: libmpathpersist
-+libdmmp libmultipath mpathpersist multipath multipathd: libmpathcmd
-
- DEPS_ON_MULTIPATH := \
- multipath \
---
-2.21.0
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0001-fix-boolean-value-with-json-c-0.14.patch b/meta-oe/recipes-support/multipath-tools/files/0001-fix-boolean-value-with-json-c-0.14.patch
deleted file mode 100644
index cf97b491e1..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0001-fix-boolean-value-with-json-c-0.14.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 5ae81386a8cfea4180738c261cd3f7944a631199 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 3 Jun 2020 16:03:56 -0700
-Subject: [PATCH] fix boolean value with json-c 0.14
-
-Patch from Christian Hesse posted here
-https://www.spinics.net/lists/dm-devel/msg40646.html
-
-Upstream json-c 0.14+ removed the TRUE and FALSE defines in commit
-0992aac61f8b087efd7094e9ac2b84fa9c040fcd.
-
-Upstream-Status: Submitted [https://www.spinics.net/lists/dm-devel/msg40646.html]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libdmmp/libdmmp_private.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libdmmp/libdmmp_private.h b/libdmmp/libdmmp_private.h
-index ac85b63f..29400826 100644
---- a/libdmmp/libdmmp_private.h
-+++ b/libdmmp/libdmmp_private.h
-@@ -82,7 +82,7 @@ static out_type func_name(struct dmmp_context *ctx, const char *var_name) { \
- do { \
- json_type j_type = json_type_null; \
- json_object *j_obj_tmp = NULL; \
-- if (json_object_object_get_ex(j_obj, key, &j_obj_tmp) != TRUE) { \
-+ if (json_object_object_get_ex(j_obj, key, &j_obj_tmp) != 1) { \
- _error(ctx, "Invalid JSON output from multipathd IPC: " \
- "key '%s' not found", key); \
- rc = DMMP_ERR_IPC_ERROR; \
-@@ -90,7 +90,7 @@ do { \
- } \
- if (j_obj_tmp == NULL) { \
- _error(ctx, "BUG: Got NULL j_obj_tmp from " \
-- "json_object_object_get_ex() while it return TRUE"); \
-+ "json_object_object_get_ex() while it return 1"); \
- rc = DMMP_ERR_BUG; \
- goto out; \
- } \
---
-2.27.0
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0001-fix-bug-of-do_compile-and-do_install.patch b/meta-oe/recipes-support/multipath-tools/files/0001-fix-bug-of-do_compile-and-do_install.patch
deleted file mode 100644
index ac87337694..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0001-fix-bug-of-do_compile-and-do_install.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From fd90d952edaa4b27e62a29fdba7a201288d440eb Mon Sep 17 00:00:00 2001
-From: Wang Mingyu <wangmy@cn.fujitsu.com>
-Date: Sun, 10 May 2020 21:22:53 +0800
-Subject: [PATCH] fix bug of do_compile and do_install
-
-when multiple processes make run in parallel,
-because of dependency error will occur.
-
-Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
----
- Makefile | 15 ++++++++++++++-
- 1 file changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 1dee3680..bea0a0b2 100644
---- a/Makefile
-+++ b/Makefile
-@@ -28,9 +28,22 @@ all: $(BUILDDIRS)
- $(BUILDDIRS):
- $(MAKE) -C $@
-
--multipath multipathd mpathpersist: libmultipath
-+multipath multipathd mpathpersist libmpathpersist : libmultipath
- mpathpersist: libmpathpersist
-
-+DEPS_ON_MULTIPATH := \
-+ multipath \
-+ libmultipath/prioritizers \
-+ libmultipath/checkers \
-+ libmultipath/foreign \
-+ multipathd \
-+ mpathpersist \
-+ libmpathpersist
-+
-+$(DEPS_ON_MULTIPATH:=.install): libmultipath.install
-+mpathpersist.install: libmpathpersist.install
-+libdmmp.install libmultipath/foreign.install: mpathpersist.install
-+
- $(BUILDDIRS.clean):
- $(MAKE) -C ${@:.clean=} clean
-
---
-2.17.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0001-libmultipath-always-use-glibc-basename.patch b/meta-oe/recipes-support/multipath-tools/files/0001-libmultipath-always-use-glibc-basename.patch
new file mode 100644
index 0000000000..0365a7ef64
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0001-libmultipath-always-use-glibc-basename.patch
@@ -0,0 +1,42 @@
+From 389286b25a903be62ce7f964246824fcc20c4c67 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 26 Mar 2024 18:56:55 -0700
+Subject: [PATCH] libmultipath: always use glibc basename()
+
+There is a use of basename() which expects it to be GNU version of
+basename, which is not available in other libcs e.g. musl on Linux
+therefore provide a version for such cases
+
+Upstream-Status: Submitted [https://github.com/opensvc/multipath-tools/pull/84]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libmultipath/configure.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/libmultipath/configure.c b/libmultipath/configure.c
+index 4ecf6ba4..e81cc67c 100644
+--- a/libmultipath/configure.c
++++ b/libmultipath/configure.c
+@@ -43,6 +43,19 @@
+ #include "sysfs.h"
+ #include "io_err_stat.h"
+
++#ifndef __GLIBC__
++/*
++ * glibc's non-destructive version of basename()
++ * License: LGPL-2.1-or-later
++ */
++static const char *__basename(const char *filename)
++{
++ char *p = strrchr(filename, '/');
++ return p ? p + 1 : filename;
++}
++#define basename(x) __basename(x)
++#endif
++
+ /* group paths in pg by host adapter
+ */
+ int group_by_host_adapter(struct pathgroup *pgp, vector adapters)
+--
+2.44.0
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0001-libmultipath-uevent.c-fix-error-handling-for-udev_mo.patch b/meta-oe/recipes-support/multipath-tools/files/0001-libmultipath-uevent.c-fix-error-handling-for-udev_mo.patch
deleted file mode 100644
index d261b13d91..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0001-libmultipath-uevent.c-fix-error-handling-for-udev_mo.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 8579d8a35886f91974e0ac4dbdf2edb7dac06d52 Mon Sep 17 00:00:00 2001
-From: Joe Slater <joe.slater@windriver.com>
-Date: Fri, 18 Dec 2020 11:17:50 +0800
-Subject: [PATCH] libmultipath/uevent.c: fix error handling for
- udev_monitor_set_receive_buffer_size
-
-Since systemd v246.5[1], udev_monitor_set_receive_buffer_size() will
-return 0 or 1 if successful. We only need to check a negative value for
-the failure.
-
-[1] https://github.com/systemd/systemd-stable/commit/4dcae666889ae9469e4406c0bcaffadbc01c4f66
- https://github.com/systemd/systemd-stable/commit/fe9b92e566f837665cc06c82374e4e42f9295c99
- https://github.com/systemd/systemd-stable/commit/5dd4cc4b10daea5d2ba969425ba02d2098dd06a4
-
-Upstream-Status: Pending
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- libmultipath/uevent.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/libmultipath/uevent.c b/libmultipath/uevent.c
-index d38e8a7f..4b298052 100644
---- a/libmultipath/uevent.c
-+++ b/libmultipath/uevent.c
-@@ -810,7 +810,8 @@ int uevent_listen(struct udev *udev)
- }
- pthread_cleanup_push(monitor_cleanup, monitor);
- #ifdef LIBUDEV_API_RECVBUF
-- if (udev_monitor_set_receive_buffer_size(monitor, 128 * 1024 * 1024))
-+ err = udev_monitor_set_receive_buffer_size(monitor, 128 * 1024 * 1024);
-+ if (err < 0)
- condlog(2, "failed to increase buffer size");
- #endif
- fd = udev_monitor_get_fd(monitor);
---
-2.17.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0002-RH-Remove-the-property-blacklist-exception-builtin.patch b/meta-oe/recipes-support/multipath-tools/files/0002-RH-Remove-the-property-blacklist-exception-builtin.patch
new file mode 100644
index 0000000000..4b24bd2d35
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0002-RH-Remove-the-property-blacklist-exception-builtin.patch
@@ -0,0 +1,65 @@
+From bb6db01cc19940bb5162c1cc0c9b5f8e4c209822 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 1 Mar 2024 10:34:06 +0800
+Subject: [PATCH 02/12] RH: Remove the property blacklist exception builtin
+
+Multipath set the default property blacklist exceptions to
+(ID_SCSI_VPD|ID_WWN). This has the effect of blacklisting some internal
+devices. These devices may never have multiple paths, but it is nice
+to be able to set multipath up on them all the same. This patch simply
+removes the default, and makes it so that if no property
+blacklist_exception is given, then devices aren't failed for not matching
+it.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+
+Upsteam-Status: Pending
+
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Upstream-Status: Pending
+---
+ libmultipath/blacklist.c | 16 +++++-----------
+ 1 file changed, 5 insertions(+), 11 deletions(-)
+
+diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
+index 75100b20..4fdaca76 100644
+--- a/libmultipath/blacklist.c
++++ b/libmultipath/blacklist.c
+@@ -221,15 +221,6 @@ setup_default_blist (struct config * conf)
+ struct hwentry *hwe;
+ int i;
+
+- if (nvme_multipath_enabled()) {
+- if (store_ble(conf->blist_devnode, "!^(sd[a-z]|dasd[a-z])",
+- ORIGIN_DEFAULT))
+- return 1;
+- } else {
+- if (store_ble(conf->blist_devnode, "!^(sd[a-z]|dasd[a-z]|nvme[0-9])",
+- ORIGIN_DEFAULT))
+- return 1;
+- }
+ if (store_ble(conf->elist_property, "(SCSI_IDENT_|ID_WWN)", ORIGIN_DEFAULT))
+ return 1;
+
+@@ -464,8 +455,11 @@ filter_property(const struct config *conf, struct udev_device *udev,
+ r = MATCH_NOTHING;
+ }
+
+- log_filter(devname, NULL, NULL, NULL, env, NULL, r, lvl);
+- return r;
++ if (VECTOR_SIZE(conf->elist_property)) {
++ log_filter(devname, NULL, NULL, NULL, env, NULL, r, lvl);
++ return r;
++ }
++ return 0;
+ }
+
+ static void free_ble(struct blentry *ble)
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0003-RH-don-t-start-without-a-config-file.patch b/meta-oe/recipes-support/multipath-tools/files/0003-RH-don-t-start-without-a-config-file.patch
new file mode 100644
index 0000000000..54b3bdc863
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0003-RH-don-t-start-without-a-config-file.patch
@@ -0,0 +1,117 @@
+From de8ee3480ec7479ed014c197a9d747403f6e0237 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 23 Nov 2018 17:25:15 +0800
+Subject: [PATCH 03/12] RH: don't start without a config file
+
+If /etc/multipath.conf doesn't exist, don't start multipathd and blacklist
+all devices when running multipath. A completely blank configuration file
+is almost never what users want. Also, people may have the multipath
+packages installed but don't want to use them. This patch provides a
+simple way to disable multipath. Simply removing or renaming
+/etc/multipath.conf will keep multipath from doing anything.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+
+Upstream-Status: Pending
+
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ libmultipath/config.c | 18 ++++++++++++++++++
+ libmultipath/config.h | 1 +
+ multipath/multipath.rules.in | 1 +
+ multipathd/multipathd.8.in | 2 ++
+ multipathd/multipathd.service.in | 1 +
+ 5 files changed, 23 insertions(+)
+
+diff --git a/libmultipath/config.c b/libmultipath/config.c
+index 83fa7369..8a3a8f37 100644
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -26,6 +26,7 @@
+ #include "mpath_cmd.h"
+ #include "propsel.h"
+ #include "foreign.h"
++#include "version.h"
+
+ /*
+ * We don't support re-initialization after
+@@ -959,6 +960,23 @@ int _init_config (const char *file, struct config *conf)
+ }
+ factorize_hwtable(conf->hwtable, builtin_hwtable_size, file);
+ validate_pctable(conf->overrides, 0, file);
++ } else {
++ condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
++ if (conf->blist_devnode == NULL) {
++ conf->blist_devnode = vector_alloc();
++ if (!conf->blist_devnode) {
++ conf->blist_devnode = vector_alloc();
++ if (!conf->blist_devnode) {
++ condlog(0, "cannot allocate blacklist\n");
++ goto out;
++ }
++ }
++ if (store_ble(conf->blist_devnode, strdup(".*"),
++ ORIGIN_NO_CONFIG)) {
++ condlog(0, "cannot store default no-config blacklist\n");
++ goto out;
++ }
++ }
+ }
+
+ conf->processed_main_config = 1;
+diff --git a/libmultipath/config.h b/libmultipath/config.h
+index 384193ab..158cebf0 100644
+--- a/libmultipath/config.h
++++ b/libmultipath/config.h
+@@ -10,6 +10,7 @@
+
+ #define ORIGIN_DEFAULT 0
+ #define ORIGIN_CONFIG 1
++#define ORIGIN_NO_CONFIG 2
+
+ enum devtypes {
+ DEV_NONE,
+diff --git a/multipath/multipath.rules.in b/multipath/multipath.rules.in
+index 780bf852..2c518378 100644
+--- a/multipath/multipath.rules.in
++++ b/multipath/multipath.rules.in
+@@ -9,6 +9,7 @@ IMPORT{cmdline}="nompath"
+ ENV{nompath}=="?*", GOTO="end_mpath"
+ IMPORT{cmdline}="multipath"
+ ENV{multipath}=="off", GOTO="end_mpath"
++TEST!="/etc/multipath.conf", GOTO="end_mpath"
+
+ ENV{DEVTYPE}!="partition", GOTO="test_dev"
+ IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH"
+diff --git a/multipathd/multipathd.8.in b/multipathd/multipathd.8.in
+index f1cab3ff..5ae21db1 100644
+--- a/multipathd/multipathd.8.in
++++ b/multipathd/multipathd.8.in
+@@ -49,6 +49,8 @@ map regains its maximum performance and redundancy.
+ With the \fB-k\fR option, \fBmultipathd\fR acts as a client utility that
+ sends commands to a running instance of the multipathd daemon (see
+ \fBCOMMANDS\fR below).
++
++In this Linux distribution, multipathd does not run unless a /etc/multipath.conf file exists.
+ .
+ .
+ .\" ----------------------------------------------------------------------------
+diff --git a/multipathd/multipathd.service.in b/multipathd/multipathd.service.in
+index 6d03ff71..0cd85102 100644
+--- a/multipathd/multipathd.service.in
++++ b/multipathd/multipathd.service.in
+@@ -5,6 +5,7 @@ Before=local-fs-pre.target blk-availability.service shutdown.target
+ Wants=systemd-udevd-kernel.socket @MODPROBE_UNIT@
+ After=systemd-udevd-kernel.socket @MODPROBE_UNIT@
+ After=multipathd.socket systemd-remount-fs.service
++ConditionPathExists=/etc/multipath.conf
+ Before=initrd-cleanup.service
+ DefaultDependencies=no
+ Conflicts=shutdown.target
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0004-RH-use-rpm-optflags-if-present.patch b/meta-oe/recipes-support/multipath-tools/files/0004-RH-use-rpm-optflags-if-present.patch
new file mode 100644
index 0000000000..91477a44cb
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0004-RH-use-rpm-optflags-if-present.patch
@@ -0,0 +1,55 @@
+From f1b74f21875d6d9f0a5ac3d67df40a28b167052a Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 26 Nov 2018 09:19:17 +0800
+Subject: [PATCH 04/12] RH: use rpm optflags if present
+
+Use the passed in optflags when compiling as an RPM, and keep the
+default flags as close as possible to the current fedora flags, while
+still being generic.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+
+Upstream-Status: Pending
+
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ Makefile.inc | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index de89b21f..6ac632ff 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -95,7 +95,15 @@ SYSTEMD_LIBDEPS := $(if $(SYSTEMD),$(if $(shell test $(SYSTEMD) -gt 209 && echo
+ MODPROBE_UNIT := $(shell test "0$(SYSTEMD)" -lt 245 2>/dev/null || \
+ echo "modprobe@dm_multipath.service")
+
+-OPTFLAGS := -O2 -g $(STACKPROT) --param=ssp-buffer-size=4
++ifndef RPM_OPT_FLAGS
++ OPTFLAGS := -O2 -g $(STACKPROT) --param=ssp-buffer-size=4
++else
++ OPTFLAGS = $(RPM_OPT_FLAGS)
++endif
++OPTFLAGS += -Wextra -Wstrict-prototypes -Wformat=0 -Werror=implicit-int \
++ -Werror=implicit-function-declaration -Wno-sign-compare \
++ -Wno-unused-parameter -Werror=cast-qual \
++ -Werror=discarded-qualifiers
+ WARNFLAGS := -Werror -Wall -Wextra -Wformat=2 $(WFORMATOVERFLOW) -Werror=implicit-int \
+ -Werror=implicit-function-declaration -Werror=format-security \
+ $(WNOCLOBBERED) -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS) $(W_URCU_TYPE_LIMITS)
+@@ -105,7 +113,7 @@ CPPFLAGS := $(FORTIFY_OPT) $(CPPFLAGS) $(D_URCU_VERSION) \
+ -DRUNTIME_DIR=\"$(runtimedir)\" -DCONFIG_DIR=\"$(configdir)\" \
+ -DDEFAULT_CONFIGFILE=\"$(configfile)\" -DSTATE_DIR=\"$(statedir)\" \
+ -DEXTRAVERSION=\"$(EXTRAVERSION)\" -MMD -MP
+-CFLAGS := -std=gnu99 $(CFLAGS) $(OPTFLAGS) $(WARNFLAGS) -pipe
++CFLAGS := -std=gnu99 $(CFLAGS) $(OPTFLAGS) -pipe
+ BIN_CFLAGS := -fPIE -DPIE
+ LIB_CFLAGS := -fPIC
+ SHARED_FLAGS := -shared
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch b/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
new file mode 100644
index 0000000000..c6089612b3
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
@@ -0,0 +1,653 @@
+From 8f52504859704466667e042baf437c2b6272ffb9 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 26 Nov 2018 09:55:12 +0800
+Subject: [PATCH 05/12] RH: add mpathconf
+
+mpathconf is a program (largely based on lvmcomf) to help users
+configure /etc/multipath.conf and enable or disable multipathing. It
+has a couple of built-in options that can be set directly from the
+command line. But, mostly it is used to get a multipath.conf file
+with the OS defaults, and to enable and disable multipathing via
+a single command.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+
+Upstream-Status: Pending
+
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ libmultipath/config.c | 1 +
+ multipath/Makefile | 4 +
+ multipath/mpathconf | 464 ++++++++++++++++++++++++++++++++++++++++++
+ multipath/mpathconf.8 | 101 +++++++++
+ 4 files changed, 570 insertions(+)
+ create mode 100644 multipath/mpathconf
+ create mode 100644 multipath/mpathconf.8
+
+diff --git a/libmultipath/config.c b/libmultipath/config.c
+index 8a3a8f37..a40b41ab 100644
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -962,6 +962,7 @@ int _init_config (const char *file, struct config *conf)
+ validate_pctable(conf->overrides, 0, file);
+ } else {
+ condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
++ condlog(0, "You can run /sbin/mpathconf to create or modify /etc/multipath.conf");
+ if (conf->blist_devnode == NULL) {
+ conf->blist_devnode = vector_alloc();
+ if (!conf->blist_devnode) {
+diff --git a/multipath/Makefile b/multipath/Makefile
+index 2ea9e528..6b1fa09e 100644
+--- a/multipath/Makefile
++++ b/multipath/Makefile
+@@ -24,6 +24,7 @@ $(EXEC): $(OBJS) $(multipathdir)/libmultipath.so $(mpathcmddir)/libmpathcmd.so
+ install:
+ $(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
+ $(Q)$(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
++ $(Q)$(INSTALL_PROGRAM) -m 755 mpathconf $(DESTDIR)$(bindir)/
+ $(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
+ $(Q)$(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
+ $(Q)$(INSTALL_PROGRAM) -m 644 99-z-dm-mpath-late.rules $(DESTDIR)$(udevrulesdir)
+@@ -34,6 +35,7 @@ install:
+ $(Q)$(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(mandir)/man8
+ $(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir)/man5
+ $(Q)$(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5 $(DESTDIR)$(mandir)/man5
++ $(Q)$(INSTALL_PROGRAM) -m 644 mpathconf.8 $(DESTDIR)$(mandir)/man8
+ $(Q)$(INSTALL_PROGRAM) -d $(DESTDIR)$(modulesloaddir)
+ ifeq ($(MODPROBE_UNIT),)
+ $(Q)$(INSTALL_PROGRAM) -m 644 modules-load.conf $(DESTDIR)$(modulesloaddir)/multipath.conf
+@@ -51,8 +53,10 @@ uninstall:
+ $(Q)$(RM) $(DESTDIR)$(modulesloaddir)/multipath.conf
+ $(Q)$(RM) $(DESTDIR)$(modulesloaddir)/scsi_dh.conf
+ $(Q)$(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
++ $(Q)$(RM) $(DESTDIR)$(bindir)/mpathconf
+ $(Q)$(RM) $(DESTDIR)$(mandir)/man8/$(EXEC).8
+ $(Q)$(RM) $(DESTDIR)$(mandir)/man5/$(EXEC).conf.5
++ $(Q)$(RM) $(DESTDIR)$(mandir)/man8/mpathconf.8
+ $(Q)$(RM) $(DESTDIR)$(tmpfilesdir)/multipath.conf
+
+ clean: dep_clean
+diff --git a/multipath/mpathconf b/multipath/mpathconf
+new file mode 100644
+index 00000000..e8391347
+--- /dev/null
++++ b/multipath/mpathconf
+@@ -0,0 +1,464 @@
++#!/bin/bash
++#
++# Copyright (C) 2010 Red Hat, Inc. All rights reserved.
++#
++# This file is part of the device-mapper-multipath package.
++#
++# This copyrighted material is made available to anyone wishing to use,
++# modify, copy, or redistribute it subject to the terms and conditions
++# of the GNU General Public License v.2.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software Foundation,
++# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++
++#
++# Simple editting of /etc/multipath.conf
++# This program was largely ripped off from lvmconf
++#
++
++unset ENABLE FIND FRIENDLY MODULE MULTIPATHD HAVE_DISABLE HAVE_WWID_DISABLE HAVE_FIND HAVE_BLACKLIST HAVE_EXCEPTIONS HAVE_DEFAULTS HAVE_FRIENDLY HAVE_MULTIPATHD HAVE_MODULE HAVE_OUTFILE SHOW_STATUS CHANGED_CONFIG WWID_LIST
++
++DEFAULT_CONFIG="# device-mapper-multipath configuration file
++
++# For a complete list of the default configuration values, run either:
++# # multipath -t
++# or
++# # multipathd show config
++
++# For a list of configuration options with descriptions, see the
++# multipath.conf man page.
++
++defaults {
++ user_friendly_names yes
++ find_multipaths yes
++}
++
++blacklist_exceptions {
++ property \"(SCSI_IDENT_|ID_WWN)\"
++}"
++
++CONFIGFILE="/etc/multipath.conf"
++OUTPUTFILE="/etc/multipath.conf"
++MULTIPATHDIR="/etc/multipath"
++TMPFILE="/etc/multipath/.multipath.conf.tmp"
++WWIDS=0
++
++function usage
++{
++ echo "usage: $0 <command>"
++ echo ""
++ echo "Commands:"
++ echo "Enable: --enable "
++ echo "Disable: --disable"
++ echo "Only allow certain wwids (instead of enable): --allow <WWID>"
++ echo "Set user_friendly_names (Default y): --user_friendly_names <y|n>"
++ echo "Set find_multipaths (Default y): --find_multipaths <y|n>"
++ echo "Load the dm-multipath modules on enable (Default y): --with_module <y|n>"
++ echo "start/stop/reload multipathd (Default n): --with_multipathd <y|n>"
++ echo "select output file (Default /etc/multipath.conf): --outfile <FILE>"
++ echo ""
++}
++
++function add_wwid
++{
++ INDEX=0
++ while [ "$INDEX" -lt "$WWIDS" ] ; do
++ if [ "$1" = "${WWID_LIST[$INDEX]}" ] ; then
++ return
++ fi
++ ((INDEX++))
++ done
++ WWID_LIST[$WWIDS]="$1"
++ ((WWIDS++))
++}
++
++function get_dm_deps
++{
++ shift 3
++ while [ -n "$1" -a -n "$2" ]; do
++ MAJOR=$(echo $1 | tr -d '(,')
++ MINOR=$(echo $2 | tr -d ')')
++ UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR 2> /dev/null`
++ if [ -n "$UUID" ] ; then
++ set_dm_wwid $UUID
++ fi
++ shift 2
++ done
++}
++
++function set_dm_wwid
++{
++ if [[ "$1" =~ ^part[[:digit:]]+-mpath- ]] ; then
++ add_wwid "${1##part*-mpath-}"
++ elif [[ "$1" =~ ^mpath- ]] ; then
++ add_wwid "${1##mpath-}"
++ else
++ get_dm_deps `dmsetup deps -u $1`
++ fi
++}
++
++function set_wwid
++{
++ UUID=""
++ if [[ "$1" =~ ^[[:digit:]]+:[[:digit:]]+$ ]] ; then
++ MAJOR=${1%%:*}
++ MINOR=${1##*:}
++ UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR 2> /dev/null`
++ else
++ UUID=`dmsetup info -c --noheadings -o uuid $1 2> /dev/null`
++ fi
++ if [ -n "$UUID" ] ; then
++ set_dm_wwid $UUID
++ else
++ add_wwid "$1"
++ fi
++}
++
++function parse_args
++{
++ while [ -n "$1" ]; do
++ case $1 in
++ --enable)
++ ENABLE=1
++ shift
++ ;;
++ --disable)
++ ENABLE=0
++ shift
++ ;;
++ --allow)
++ ENABLE=2
++ if [ -n "$2" ]; then
++ set_wwid $2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --user_friendly_names)
++ if [ -n "$2" ]; then
++ FRIENDLY=$2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --find_multipaths)
++ if [ -n "$2" ]; then
++ FIND=$2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --with_module)
++ if [ -n "$2" ]; then
++ MODULE=$2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --with_multipathd)
++ if [ -n "$2" ]; then
++ MULTIPATHD=$2
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ --outfile)
++ if [ -n "$2" ]; then
++ OUTPUTFILE=$2
++ HAVE_OUTFILE=1
++ shift 2
++ else
++ usage
++ exit 1
++ fi
++ ;;
++ *)
++ usage
++ exit
++ esac
++ done
++}
++
++function validate_args
++{
++ if [ "$ENABLE" = "0" ] && [ -n "$FRIENDLY" -o -n "$FIND" -o -n "$MODULE" ]; then
++ echo "ignoring extra parameters on disable"
++ FRIENDLY=""
++ FIND=""
++ MODULE=""
++ fi
++ if [ -n "$FRIENDLY" ] && [ "$FRIENDLY" != "y" -a "$FRIENDLY" != "n" ]; then
++ echo "--user_friendly_names must be either 'y' or 'n'"
++ exit 1
++ fi
++ if [ -n "$FIND" ] && [ "$FIND" != "y" -a "$FIND" != "n" ]; then
++ echo "--find_multipaths must be either 'y' or 'n'"
++ exit 1
++ fi
++ if [ -z "$ENABLE" -a -z "$FIND" -a -z "$FRIENDLY" ]; then
++ SHOW_STATUS=1
++ fi
++ if [ -n "$MODULE" ] && [ "$MODULE" != "y" -a "$MODULE" != "n" ]; then
++ echo "--with_module must be either 'y' or 'n'"
++ exit 1
++ fi
++ if [ -n "$MULTIPATHD" ] && [ "$MULTIPATHD" != "y" -a "$MULTIPATHD" != "n" ]; then
++ echo "--with_multipathd must be either 'y' or 'n'"
++ exit 1
++ fi
++ if [ "$ENABLE" = 2 -a -z "$HAVE_OUTFILE" ]; then
++ echo "Because --allow makes changes that cannot be automatically reversed,"
++ echo "you must set --outfile when you set --allow"
++ exit 1
++ fi
++}
++
++function add_blacklist_exceptions
++{
++ INDEX=0
++ while [ "$INDEX" -lt "$WWIDS" ] ; do
++ sed -i '/^blacklist_exceptions[[:space:]]*{/ a\
++ wwid '"\"${WWID_LIST[$INDEX]}\""'
++' $TMPFILE
++ ((INDEX++))
++ done
++}
++
++umask 0077
++
++parse_args "$@"
++
++validate_args
++
++if [ ! -d "$MULTIPATHDIR" ]; then
++ echo "/etc/multipath/ does not exist. failing"
++ exit 1
++fi
++
++rm $TMPFILE 2> /dev/null
++echo "$DEFAULT_CONFIG" > $TMPFILE
++if [ -f "$CONFIGFILE" ]; then
++ cp $CONFIGFILE $TMPFILE
++fi
++
++if grep -q "^blacklist[[:space:]]*{" $TMPFILE ; then
++ HAVE_BLACKLIST=1
++fi
++
++if grep -q "^blacklist_exceptions[[:space:]]*{" $TMPFILE ; then
++ HAVE_EXCEPTIONS=1
++fi
++
++if grep -q "^defaults[[:space:]]*{" $TMPFILE ; then
++ HAVE_DEFAULTS=1
++fi
++
++if [ -z "$MODULE" -o "$MODULE" = "y" ]; then
++ if lsmod | grep -q "dm_multipath" ; then
++ HAVE_MODULE=1
++ else
++ HAVE_MODULE=0
++ fi
++fi
++
++if [ "$MULTIPATHD" = "y" ]; then
++ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
++ HAVE_MULTIPATHD=1
++ else
++ HAVE_MULTIPATHD=0
++ fi
++fi
++
++if [ "$HAVE_BLACKLIST" = "1" ]; then
++ if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*devnode \"\.\?\*\"" ; then
++ HAVE_DISABLE=1
++ elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"" ; then
++ HAVE_DISABLE=0
++ fi
++fi
++
++if [ "$HAVE_BLACKLIST" = "1" ]; then
++ if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*wwid \"\.\?\*\"" ; then
++ HAVE_WWID_DISABLE=1
++ elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"" ; then
++ HAVE_WWID_DISABLE=0
++ fi
++fi
++
++if [ "$HAVE_DEFAULTS" = "1" ]; then
++ if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)" ; then
++ HAVE_FIND=1
++ elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)" ; then
++ HAVE_FIND=0
++ fi
++ if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)" ; then
++ HAVE_FRIENDLY=1
++ elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)" ; then
++ HAVE_FRIENDLY=0
++ fi
++fi
++
++if [ -n "$SHOW_STATUS" ]; then
++ if [ -z "$HAVE_DISABLE" -o "$HAVE_DISABLE" = 0 ]; then
++ echo "multipath is enabled"
++ else
++ echo "multipath is disabled"
++ fi
++ if [ -z "$HAVE_FIND" -o "$HAVE_FIND" = 0 ]; then
++ echo "find_multipaths is disabled"
++ else
++ echo "find_multipaths is enabled"
++ fi
++ if [ -z "$HAVE_FRIENDLY" -o "$HAVE_FRIENDLY" = 0 ]; then
++ echo "user_friendly_names is disabled"
++ else
++ echo "user_friendly_names is enabled"
++ fi
++ if [ -n "$HAVE_MODULE" ]; then
++ if [ "$HAVE_MODULE" = 1 ]; then
++ echo "dm_multipath module is loaded"
++ else
++ echo "dm_multipath module is not loaded"
++ fi
++ fi
++ if [ -z "$HAVE_MULTIPATHD" ]; then
++ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
++ HAVE_MULTIPATHD=1
++ else
++ HAVE_MULTIPATHD=0
++ fi
++ fi
++ if [ "$HAVE_MULTIPATHD" = 1 ]; then
++ echo "multipathd is running"
++ else
++ echo "multipathd is not running"
++ fi
++ exit 0
++fi
++
++if [ -z "$HAVE_BLACKLIST" ]; then
++ cat >> $TMPFILE <<- _EOF_
++
++blacklist {
++}
++_EOF_
++fi
++
++if [ -z "$HAVE_DEFAULTS" ]; then
++ cat >> $TMPFILE <<- _EOF_
++
++defaults {
++}
++_EOF_
++fi
++
++if [ "$ENABLE" = 2 ]; then
++ if [ "$HAVE_DISABLE" = 1 ]; then
++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/# devnode ".*"/' $TMPFILE
++ fi
++ if [ -z "$HAVE_WWID_DISABLE" ]; then
++ sed -i '/^blacklist[[:space:]]*{/ a\
++ wwid ".*"
++' $TMPFILE
++ elif [ "$HAVE_WWID_DISABLE" = 0 ]; then
++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"/ wwid ".*"/' $TMPFILE
++ fi
++ if [ "$HAVE_EXCEPTIONS" = 1 ]; then
++ sed -i '/^blacklist_exceptions[[:space:]]*{/,/^}/ {/^[[:space:]]*wwid/ d}' $TMPFILE
++ else
++ cat >> $TMPFILE <<- _EOF_
++
++blacklist_exceptions {
++}
++_EOF_
++ fi
++ add_blacklist_exceptions
++elif [ "$ENABLE" = 1 ]; then
++ if [ "$HAVE_DISABLE" = 1 ]; then
++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/# devnode ".*"/' $TMPFILE
++ fi
++elif [ "$ENABLE" = 0 ]; then
++ if [ -z "$HAVE_DISABLE" ]; then
++ sed -i '/^blacklist[[:space:]]*{/ a\
++ devnode ".*"
++' $TMPFILE
++ elif [ "$HAVE_DISABLE" = 0 ]; then
++ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"/ devnode ".*"/' $TMPFILE
++ fi
++fi
++
++if [ "$FIND" = "n" ]; then
++ if [ "$HAVE_FIND" = 1 ]; then
++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)/ find_multipaths no/' $TMPFILE
++ CHANGED_CONFIG=1
++ fi
++elif [ "$FIND" = "y" ]; then
++ if [ -z "$HAVE_FIND" ]; then
++ sed -i '/^defaults[[:space:]]*{/ a\
++ find_multipaths yes
++' $TMPFILE
++ CHANGED_CONFIG=1
++ elif [ "$HAVE_FIND" = 0 ]; then
++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)/ find_multipaths yes/' $TMPFILE
++ CHANGED_CONFIG=1
++ fi
++fi
++
++if [ "$FRIENDLY" = "n" ]; then
++ if [ "$HAVE_FRIENDLY" = 1 ]; then
++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)/ user_friendly_names no/' $TMPFILE
++ CHANGED_CONFIG=1
++ fi
++elif [ "$FRIENDLY" = "y" ]; then
++ if [ -z "$HAVE_FRIENDLY" ]; then
++ sed -i '/^defaults[[:space:]]*{/ a\
++ user_friendly_names yes
++' $TMPFILE
++ CHANGED_CONFIG=1
++ elif [ "$HAVE_FRIENDLY" = 0 ]; then
++ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)/ user_friendly_names yes/' $TMPFILE
++ CHANGED_CONFIG=1
++ fi
++fi
++
++if [ -f "$OUTPUTFILE" ]; then
++ cp $OUTPUTFILE $OUTPUTFILE.old
++ if [ $? != 0 ]; then
++ echo "failed to backup old config file, $OUTPUTFILE not updated"
++ exit 1
++ fi
++fi
++
++cp $TMPFILE $OUTPUTFILE
++if [ $? != 0 ]; then
++ echo "failed to copy new config file into place, check $OUTPUTFILE is still OK"
++ exit 1
++fi
++
++rm -f $TMPFILE
++
++if [ "$ENABLE" = 1 ]; then
++ if [ "$HAVE_MODULE" = 0 ]; then
++ modprobe dm_multipath
++ fi
++ if [ "$HAVE_MULTIPATHD" = 0 ]; then
++ systemctl start multipathd.service
++ fi
++elif [ "$ENABLE" = 0 ]; then
++ if [ "$HAVE_MULTIPATHD" = 1 ]; then
++ systemctl stop multipathd.service
++ fi
++elif [ -n "$CHANGED_CONFIG" -a "$HAVE_MULTIPATHD" = 1 ]; then
++ systemctl reload multipathd.service
++fi
+diff --git a/multipath/mpathconf.8 b/multipath/mpathconf.8
+new file mode 100644
+index 00000000..4cd32672
+--- /dev/null
++++ b/multipath/mpathconf.8
+@@ -0,0 +1,101 @@
++.TH MPATHCONF 8 "June 2010" "" "Linux Administrator's Manual"
++.SH NAME
++mpathconf - A tool for configuring device-mapper-multipath
++.SH SYNOPSIS
++.B mpathconf
++.RB [\| commands \|]
++.RB [\| options \|]
++.SH DESCRIPTION
++.B mpathconf
++is a utility that creates or modifies
++.B /etc/multipath.conf.
++It can enable or disable multipathing and configure some common options.
++.B mpathconf
++can also load the
++.B dm_multipath
++module, start and stop the
++.B multipathd
++daemon, and configure the
++.B multipathd
++service to start automatically or not. If
++.B mpathconf
++is called with no commands, it will display the current configuration.
++
++The default options for mpathconf are
++.B --with_module
++The
++.B --with_multipathd
++option is not set by default. Enabling multipathing will load the
++.B dm_multipath
++module but it will not immediately start it. This is so
++that users can manually edit their config file if necessary, before starting
++.B multipathd.
++
++If
++.B /etc/multipath.conf
++already exists, mpathconf will edit it. If it does not exist, mpathconf will
++create a default file with
++.B user_friendly_names
++and
++.B find_multipaths
++set. To disable these, use the
++.B --user_friendly_names n
++and
++.B --find_multipaths n
++options
++.SH COMMANDS
++.TP
++.B --enable
++Removes any line that blacklists all device nodes from the
++.B /etc/multipath.conf
++blacklist section.
++.TP
++.B --disable
++Adds a line that blacklists all device nodes to the
++.B /etc/multipath.conf
++blacklist section. If no blacklist section exists, it will create one.
++.TP
++.B --user_friendly_name \fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this adds the line
++.B user_friendly_names yes
++to the
++.B /etc/multipath.conf
++defaults section. If set to \fBn\fP, this removes the line, if present. This
++command can be used along with any other command.
++.TP
++.B --find_multipaths\fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this adds the line
++.B find_multipaths yes
++to the
++.B /etc/multipath.conf
++defaults section. If set to \fBn\fP, this removes the line, if present. This
++command can be used aldong with any other command.
++.SH OPTIONS
++.TP
++.B --with_module\fP { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this runs
++.B modprobe dm_multipath
++to install the multipath modules. This option only works with the
++.B --enable
++command. This option is set to \fBy\fP by default.
++.TP
++.B --with_multipathd { \fBy\fP | \fBn\fP }
++If set to \fBy\fP, this runs
++.B service multipathd start
++to start the multipathd daemon on \fB--enable\fP,
++.B service multipathd stop
++to stop the multipathd daemon on \fB--disable\fP, and
++.B service multipathd reload
++to reconfigure multipathd on \fB--user_frindly_names\fP and
++\fB--find_multipaths\fP.
++This option is set to \fBn\fP by default.
++.SH FILES
++.BR /etc/multipath.conf
++.SH "SEE ALSO"
++.BR multipath.conf (5),
++.BR modprobe (8),
++.BR multipath (8),
++.BR multipathd (8),
++.BR service (8),
++.SH AUTHOR
++Benjamin Marzinski <bmarzins@redhat.com>
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
new file mode 100644
index 0000000000..8df7de3b48
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
@@ -0,0 +1,95 @@
+From f93248d8e3598ccdc42b6d639107917c9cda268c Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 26 Sep 2019 16:29:48 +0800
+Subject: [PATCH 06/12] RH: add wwids from kernel cmdline mpath.wwids with -A
+
+This patch adds another option to multipath, "-A", which reads
+/proc/cmdline for mpath.wwid=<WWID> options, and adds any wwids it finds
+to /etc/multipath/wwids. While this isn't usually important during
+normal operation, since these wwids should already be added, it can be
+helpful during installation, to make sure that multipath can claim
+devices as its own, before LVM or something else makes use of them. The
+patch also execs "/sbin/multipath -A" before running multipathd in
+multipathd.service
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+
+Upstream-Status: Pending
+
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ libmultipath/wwids.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
+ libmultipath/wwids.h | 1 +
+ 2 files changed, 45 insertions(+)
+
+diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
+index 591cd09b..b01f1b85 100644
+--- a/libmultipath/wwids.c
++++ b/libmultipath/wwids.c
+@@ -439,3 +439,47 @@ int unmark_failed_wwid(const char *wwid)
+ print_failed_wwid_result("unmark_failed", wwid, r);
+ return r;
+ }
++
++int remember_cmdline_wwid(void)
++{
++ FILE *f = NULL;
++ char buf[LINE_MAX], *next, *ptr;
++ int ret = 0;
++
++ f = fopen("/proc/cmdline", "re");
++ if (!f) {
++ condlog(0, "can't open /proc/cmdline : %s", strerror(errno));
++ return -1;
++ }
++
++ if (!fgets(buf, sizeof(buf), f)) {
++ if (ferror(f))
++ condlog(0, "read of /proc/cmdline failed : %s",
++ strerror(errno));
++ else
++ condlog(0, "couldn't read /proc/cmdline");
++ fclose(f);
++ return -1;
++ }
++ fclose(f);
++ next = buf;
++ while((ptr = strstr(next, "mpath.wwid="))) {
++ ptr += 11;
++ next = strpbrk(ptr, " \t\n");
++ if (next) {
++ *next = '\0';
++ next++;
++ }
++ if (strlen(ptr)) {
++ if (remember_wwid(ptr) != 0)
++ ret = -1;
++ }
++ else {
++ condlog(0, "empty mpath.wwid kernel command line option");
++ ret = -1;
++ }
++ if (!next)
++ break;
++ }
++ return ret;
++}
+diff --git a/libmultipath/wwids.h b/libmultipath/wwids.h
+index 0c6ee54d..e32a0b0e 100644
+--- a/libmultipath/wwids.h
++++ b/libmultipath/wwids.h
+@@ -17,6 +17,7 @@ int remember_wwid(char *wwid);
+ int check_wwids_file(char *wwid, int write_wwid);
+ int remove_wwid(char *wwid);
+ int replace_wwids(vector mp);
++int remember_cmdline_wwid(void);
+
+ enum {
+ WWID_IS_NOT_FAILED = 0,
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0007-RH-warn-on-invalid-regex-instead-of-failing.patch b/meta-oe/recipes-support/multipath-tools/files/0007-RH-warn-on-invalid-regex-instead-of-failing.patch
new file mode 100644
index 0000000000..c64b8aeabc
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0007-RH-warn-on-invalid-regex-instead-of-failing.patch
@@ -0,0 +1,105 @@
+From 49d0b0279f54ceb96878e8e72e828efbb84a534c Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 1 Mar 2024 11:45:10 +0800
+Subject: [PATCH 07/12] RH: warn on invalid regex instead of failing
+
+multipath.conf used to allow "*" as a match everything regular expression,
+instead of requiring ".*". Instead of erroring when the old style
+regular expressions are used, it should print a warning and convert
+them.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+
+Upstream-Status: Pending
+
+[OP: Rebase to 0.9.3]
+[OP: adjusted FREE() -> free(), made set_regex_value() static]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ libmultipath/dict.c | 40 ++++++++++++++++++++++++++++++++++------
+ 1 file changed, 34 insertions(+), 6 deletions(-)
+
+diff --git a/libmultipath/dict.c b/libmultipath/dict.c
+index 5af036b7..e494419d 100644
+--- a/libmultipath/dict.c
++++ b/libmultipath/dict.c
+@@ -189,6 +189,34 @@ set_str_noslash(vector strvec, void *ptr, const char *file, int line_nr)
+ return 0;
+ }
+
++static void *
++set_regex_value(vector strvec)
++{
++ char *buff = set_value(strvec);
++
++ if (buff && strcmp("*", buff) == 0) {
++ condlog(0, "Invalid regular expression \"*\" in multipath.conf. Using \".*\"");
++ free(buff);
++ return strdup(".*");
++ }
++ return buff;
++}
++
++static int
++set_regex(vector strvec, void *ptr, const char *file, int line_nr)
++{
++ char **str_ptr = (char **)ptr;
++
++ if (*str_ptr)
++ free(*str_ptr);
++ *str_ptr = set_regex_value(strvec);
++
++ if (!*str_ptr)
++ return 1;
++
++ return 0;
++}
++
+ static int
+ set_yes_no(vector strvec, void *ptr, const char *file, int line_nr)
+ {
+@@ -1798,7 +1826,7 @@ ble_ ## option ## _handler (struct config *conf, vector strvec, \
+ if (!conf->option) \
+ return 1; \
+ \
+- buff = set_value(strvec); \
++ buff = set_regex_value(strvec); \
+ if (!buff) \
+ return 1; \
+ \
+@@ -1818,7 +1846,7 @@ ble_ ## option ## _ ## name ## _handler (struct config *conf, vector strvec, \
+ if (!conf->option) \
+ return 1; \
+ \
+- buff = set_value(strvec); \
++ buff = set_regex_value(strvec); \
+ if (!buff) \
+ return 1; \
+ \
+@@ -1924,16 +1952,16 @@ device_handler(struct config *conf, vector strvec, const char *file,
+ return 0;
+ }
+
+-declare_hw_handler(vendor, set_str)
++declare_hw_handler(vendor, set_regex)
+ declare_hw_snprint(vendor, print_str)
+
+-declare_hw_handler(product, set_str)
++declare_hw_handler(product, set_regex)
+ declare_hw_snprint(product, print_str)
+
+-declare_hw_handler(revision, set_str)
++declare_hw_handler(revision, set_regex)
+ declare_hw_snprint(revision, print_str)
+
+-declare_hw_handler(bl_product, set_str)
++declare_hw_handler(bl_product, set_regex)
+ declare_hw_snprint(bl_product, print_str)
+
+ declare_hw_arg_str_handler(hwhandler, 0)
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0008-RH-reset-default-find_mutipaths-value-to-off.patch b/meta-oe/recipes-support/multipath-tools/files/0008-RH-reset-default-find_mutipaths-value-to-off.patch
new file mode 100644
index 0000000000..1fa1f3be27
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0008-RH-reset-default-find_mutipaths-value-to-off.patch
@@ -0,0 +1,34 @@
+From fcba3e0d4c8448a2510025acb255c7335413bf56 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 26 Nov 2018 11:12:01 +0800
+Subject: [PATCH 08/12] RH: reset default find_mutipaths value to off
+
+Upstream has changed to default find_multipaths to "strict". For now
+Redhat will retain the previous default of "off".
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+
+Upstream-Status: Pending
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ libmultipath/defaults.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h
+index 64b633f2..a06a8a41 100644
+--- a/libmultipath/defaults.h
++++ b/libmultipath/defaults.h
+@@ -23,7 +23,7 @@
+ #define DEFAULT_NO_PATH_RETRY NO_PATH_RETRY_UNDEF
+ #define DEFAULT_VERBOSITY 2
+ #define DEFAULT_REASSIGN_MAPS 0
+-#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_STRICT
++#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_OFF
+ #define DEFAULT_FAST_IO_FAIL 5
+ #define DEFAULT_DEV_LOSS_TMO 600
+ #define DEFAULT_RETAIN_HWHANDLER RETAIN_HWHANDLER_ON
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-modify-create-config.mk-for-cross-co.patch b/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-modify-create-config.mk-for-cross-co.patch
new file mode 100644
index 0000000000..041b79a9af
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-modify-create-config.mk-for-cross-co.patch
@@ -0,0 +1,40 @@
+From 7452549e572b1c40aefe25524bf4bbbf34c952e5 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 4 Jun 2019 11:39:39 +0800
+Subject: [PATCH 09/12] multipath-tools: modify create-config.mk for
+ cross-compilation
+
+Do not look for systemd info on the host, and allow us to pass in CFLAGS
+using the OPTFLAGS variable.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ create-config.mk | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/create-config.mk b/create-config.mk
+index 4d318b96..a65975ba 100644
+--- a/create-config.mk
++++ b/create-config.mk
+@@ -127,10 +127,6 @@ ifeq ($(ENABLE_DMEVENTS_POLL),0)
+ DEFINES += -DNO_DMEVENTS_POLL
+ endif
+
+-SYSTEMD := $(strip $(or $(shell $(PKG_CONFIG) --modversion libsystemd 2>/dev/null | awk '{print $$1}'), \
+- $(shell systemctl --version 2>/dev/null | sed -n 's/systemd \([0-9]*\).*/\1/p')))
+-
+-
+ # $(call TEST_CC_OPTION,option,fallback)
+ # Test if the C compiler supports the option.
+ # Evaluates to "option" if yes, and "fallback" otherwise.
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0010-Subject-PATCH-Always-use-devmapper.patch b/meta-oe/recipes-support/multipath-tools/files/0010-Subject-PATCH-Always-use-devmapper.patch
new file mode 100644
index 0000000000..b48720b8a1
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0010-Subject-PATCH-Always-use-devmapper.patch
@@ -0,0 +1,72 @@
+From 5d2fa3c5975266a6c02214afa6254e6eeeb1baad Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 26 Nov 2018 11:17:41 +0800
+Subject: [PATCH 10/12] Subject: [PATCH] Always use devmapper
+
+Do not try to compute several _API_ make variables
+from host information when cross-compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Rebase to 0.9.8
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ create-config.mk | 36 ++++++++----------------------------
+ 1 file changed, 8 insertions(+), 28 deletions(-)
+
+diff --git a/create-config.mk b/create-config.mk
+index a65975ba..8ba592f4 100644
+--- a/create-config.mk
++++ b/create-config.mk
+@@ -79,34 +79,14 @@ URCU_VERSION = $(shell \
+
+ DEFINES :=
+
+-ifneq ($(call check_func,dm_task_no_flush,$(devmapper_incdir)/libdevmapper.h),0)
+- DEFINES += LIBDM_API_FLUSH
+-endif
+-
+-ifneq ($(call check_func,dm_task_get_errno,$(devmapper_incdir)/libdevmapper.h),0)
+- DEFINES += LIBDM_API_GET_ERRNO
+-endif
+-
+-ifneq ($(call check_func,dm_task_set_cookie,$(devmapper_incdir)/libdevmapper.h),0)
+- DEFINES += LIBDM_API_COOKIE
+-endif
+-
+-ifneq ($(call check_func,udev_monitor_set_receive_buffer_size,$(libudev_incdir)/libudev.h),0)
+- DEFINES += LIBUDEV_API_RECVBUF
+-endif
+-
+-ifneq ($(call check_func,dm_task_deferred_remove,$(devmapper_incdir)/libdevmapper.h),0)
+- DEFINES += LIBDM_API_DEFERRED
+-endif
+-
+-ifneq ($(call check_func,dm_hold_control_dev,$(devmapper_incdir)/libdevmapper.h),0)
+- DEFINES += LIBDM_API_HOLD_CONTROL
+-endif
+-
+-ifneq ($(call check_var,ELS_DTAG_LNK_INTEGRITY,$(kernel_incdir)/scsi/fc/fc_els.h),0)
+- DEFINES += FPIN_EVENT_HANDLER
+- FPIN_SUPPORT = 1
+-endif
++DEFINES += LIBDM_API_FLUSH
++DEFINES += LIBDM_API_GET_ERRNO
++DEFINES += LIBDM_API_COOKIE
++DEFINES += LIBUDEV_API_RECVBUF
++DEFINES += LIBDM_API_DEFERRED
++DEFINES += LIBDM_API_HOLD_CONTROL
++DEFINES += FPIN_EVENT_HANDLER
++FPIN_SUPPORT = 1
+
+ libmount_h := $(shell $(PKG_CONFIG) --variable=includedir mount)/libmount/libmount.h
+ ifneq ($(call check_func,mnt_unref_cache,$(libmount_h)),0)
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0011-fix-bug-of-do_compile-and-do_install.patch b/meta-oe/recipes-support/multipath-tools/files/0011-fix-bug-of-do_compile-and-do_install.patch
new file mode 100644
index 0000000000..abaea2cfb6
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0011-fix-bug-of-do_compile-and-do_install.patch
@@ -0,0 +1,43 @@
+From 949070286692dfff89213792571da233fe82e440 Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Sun, 10 May 2020 21:22:53 +0800
+Subject: [PATCH 11/12] fix bug of do_compile and do_install
+
+when multiple processes make run in parallel,
+because of dependency error will occur.
+
+Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
+
+[OP: Rebase to 0.9.3]
+[OP: Drop dependencies that are already present in the 0.9.3 Makefile]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+Upstream-Status: Pending
+---
+ Makefile | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/Makefile b/Makefile
+index 4df5f161..065249c2 100644
+--- a/Makefile
++++ b/Makefile
+@@ -91,6 +91,16 @@ libmpathpersist libmpathvalid multipath multipathd: libmultipath
+ libmultipath/prioritizers libmultipath/checkers libmultipath/foreign: libmultipath
+ mpathpersist multipathd: libmpathpersist
+
++DEPS_ON_MULTIPATH := \
++ multipath \
++ multipathd \
++ mpathpersist \
++ libmpathpersist
++
++$(DEPS_ON_MULTIPATH:=.install): libmultipath.install
++mpathpersist.install: libmpathpersist.install
++libdmmp.install libmultipath/foreign.install: mpathpersist.install
++
+ libmultipath/checkers.install \
+ libmultipath/prioritizers.install \
+ libmultipath/foreign.install: libmultipath.install
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0012-add-explicit-dependency-on-libraries.patch b/meta-oe/recipes-support/multipath-tools/files/0012-add-explicit-dependency-on-libraries.patch
new file mode 100644
index 0000000000..2f774940d6
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0012-add-explicit-dependency-on-libraries.patch
@@ -0,0 +1,40 @@
+From 7a46f43682641436464579d8bf76c382e71ea557 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 25 May 2020 23:22:55 -0700
+Subject: [PATCH 12/12] add explicit dependency on libraries
+
+[snip]
+gcc/i686-overc-linux/10.1.0/ld: cannot find -lmpathpersist
+collect2: error: ld returned 1 exit status
+Makefile:36: recipe for target 'multipathd' failed
+make[1]: *** [multipathd] Error 1
+make[1]: Leaving directory 'git/multipathd'
+Makefile:29: recipe for target 'multipathd' failed
+make: *** [multipathd] Error 2
+ln -sf libmpathpersist.so.0 libmpathpersist.so
+[snip]
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ Makefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile b/Makefile
+index 065249c2..0444c2ea 100644
+--- a/Makefile
++++ b/Makefile
+@@ -90,6 +90,7 @@ libmultipath: libmpathutil
+ libmpathpersist libmpathvalid multipath multipathd: libmultipath
+ libmultipath/prioritizers libmultipath/checkers libmultipath/foreign: libmultipath
+ mpathpersist multipathd: libmpathpersist
++libmultipath mpathpersist multipath multipathd: libmpathcmd
+
+ DEPS_ON_MULTIPATH := \
+ multipath \
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch b/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch
deleted file mode 100644
index e88e25617d..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Thu, 13 Apr 2017 07:22:23 -0500
-Subject: [PATCH] RH: fixup udev rules for redhat
-
-The multipath rules need to run after scsi_id is run. This means moving
-them after 60-persistent-storage.rules for redhat. Redhat also uses a
-different naming scheme for partitions than SuSE. Also, there are some
-false warnings that gcc throws because of the changed options. Fix these
-too.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
-
-Update patch to 0.8.0
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- Makefile.inc | 2 +-
- kpartx/kpartx.rules | 2 +-
- multipath/Makefile | 4 ++--
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index fc728ca..2f0bcea 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -48,7 +48,7 @@ endif
- prefix =
- exec_prefix = $(prefix)
- usr_prefix = $(prefix)
--bindir = $(exec_prefix)/sbin
-+bindir = $(exec_prefix)/usr/sbin
- libudevdir = $(prefix)/$(SYSTEMDPATH)/udev
- udevrulesdir = $(libudevdir)/rules.d
- multipathdir = $(TOPDIR)/libmultipath
-diff --git a/kpartx/kpartx.rules b/kpartx/kpartx.rules
-index 8f99049..8a3a171 100644
---- a/kpartx/kpartx.rules
-+++ b/kpartx/kpartx.rules
-@@ -32,6 +32,6 @@ LABEL="mpath_kpartx_end"
- GOTO="kpartx_end"
-
- LABEL="run_kpartx"
--RUN+="/sbin/kpartx -un -p -part /dev/$name"
-+RUN+="/sbin/kpartx -un /dev/$name"
-
- LABEL="kpartx_end"
-diff --git a/multipath/Makefile b/multipath/Makefile
-index 0828a8f..b9bbb3c 100644
---- a/multipath/Makefile
-+++ b/multipath/Makefile
-@@ -24,7 +24,7 @@ install:
- $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
- $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
-- $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
-+ $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir)
- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
-@@ -33,7 +33,7 @@ install:
- uninstall:
- $(RM) $(DESTDIR)$(bindir)/$(EXEC)
- $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
-- $(RM) $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
-+ $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
- $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
- $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
-
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch b/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch
deleted file mode 100644
index 21b8ec6b06..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17
-00:00:00 2001 From:Benjamin Marzinski <bmarzins@redhat.com> Date: Wed, 2 Jul
-2014 12:49:53 -0500 Subject: [PATCH] RH: Remove the property blacklist
-exception builtin
-
-Multipath set the default property blacklist exceptions to
-(ID_SCSI_VPD|ID_WWN). This has the effect of blacklisting some internal
-devices. These devices may never have multiple paths, but it is nice
-to be able to set multipath up on them all the same. This patch simply
-removes the default, and makes it so that if no property
-blacklist_exception is given, then devices aren't failed for not matching
-it.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
-
-Upsteam-Status: Pending
-
-Update patch to 0.8.2
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- libmultipath/blacklist.c | 13 +++++--------
- 1 file changed, 5 insertions(+), 8 deletions(-)
-
-diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
-index 00e8dbd..5204501 100644
---- a/libmultipath/blacklist.c
-+++ b/libmultipath/blacklist.c
-@@ -192,12 +192,6 @@ setup_default_blist (struct config * conf)
- char * str;
- int i;
-
-- str = STRDUP("^(ram|zram|raw|loop|fd|md|dm-|sr|scd|st|dcssblk)[0-9]");
-- if (!str)
-- return 1;
-- if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT))
-- return 1;
--
- str = STRDUP("^(td|hd|vd)[a-z]");
- if (!str)
- return 1;
-@@ -437,8 +431,11 @@ filter_property(struct config *conf, struct udev_device *udev, int lvl,
- r = MATCH_NOTHING;
- }
-
-- log_filter(devname, NULL, NULL, NULL, env, NULL, r, lvl);
-- return r;
-+ if (VECTOR_SIZE(conf->elist_property)) {
-+ log_filter(devname, NULL, NULL, NULL, env, NULL, r, lvl);
-+ return r;
-+ }
-+ return 0;
- }
-
- static void free_ble(struct blentry *ble)
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch b/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch
deleted file mode 100644
index ea6137f878..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From 0bf8ff8dab26201b268b419809844c07e168f17d Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Fri, 23 Nov 2018 17:25:15 +0800
-Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17
- 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Wed, 15
- Oct 2014 10:39:30 -0500 Subject: [PATCH] RH: don't start without a config
- file
-
-If /etc/multipath.conf doesn't exist, don't start multipathd and blacklist
-all devices when running multipath. A completely blank configuration file
-is almost never what users want. Also, people may have the multipath
-packages installed but don't want to use them. This patch provides a
-simple way to disable multipath. Simply removing or renaming
-/etc/multipath.conf will keep multipath from doing anything.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
-
-Upstream-Status: Pending
-
-update this patch to new version
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- libmultipath/config.c | 18 ++++++++++++++++++
- libmultipath/config.h | 1 +
- multipath/multipath.rules | 1 +
- multipathd/multipathd.8 | 2 ++
- multipathd/multipathd.service | 1 +
- 5 files changed, 23 insertions(+)
-
-diff --git a/libmultipath/config.c b/libmultipath/config.c
-index 5af7af5..e4233f1 100644
---- a/libmultipath/config.c
-+++ b/libmultipath/config.c
-@@ -26,6 +26,7 @@
- #include "devmapper.h"
- #include "mpath_cmd.h"
- #include "propsel.h"
-+#include "version.h"
-
- static int
- hwe_strmatch (const struct hwentry *hwe1, const struct hwentry *hwe2)
-@@ -743,6 +745,23 @@ load_config (char * file)
- goto out;
- }
- factorize_hwtable(conf->hwtable, builtin_hwtable_size, file);
-+ } else {
-+ condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
-+ if (conf->blist_devnode == NULL) {
-+ conf->blist_devnode = vector_alloc();
-+ if (!conf->blist_devnode) {
-+ conf->blist_devnode = vector_alloc();
-+ if (!conf->blist_devnode) {
-+ condlog(0, "cannot allocate blacklist\n");
-+ goto out;
-+ }
-+ }
-+ if (store_ble(conf->blist_devnode, strdup(".*"),
-+ ORIGIN_NO_CONFIG)) {
-+ condlog(0, "cannot store default no-config blacklist\n");
-+ goto out;
-+ }
-+ }
- }
-
- conf->processed_main_config = 1;
-diff --git a/libmultipath/config.h b/libmultipath/config.h
-index 7d0cd9a..d7fb8e2 100644
---- a/libmultipath/config.h
-+++ b/libmultipath/config.h
-@@ -9,6 +9,7 @@
-
- #define ORIGIN_DEFAULT 0
- #define ORIGIN_CONFIG 1
-+#define ORIGIN_NO_CONFIG 2
-
- /*
- * In kernel, fast_io_fail == 0 means immediate failure on rport delete.
-diff --git a/multipath/multipath.rules b/multipath/multipath.rules
-index 9df11a9..0486bf7 100644
---- a/multipath/multipath.rules
-+++ b/multipath/multipath.rules
-@@ -9,6 +9,7 @@ IMPORT{cmdline}="nompath"
- ENV{nompath}=="?*", GOTO="end_mpath"
- IMPORT{cmdline}="multipath"
- ENV{multipath}=="off", GOTO="end_mpath"
-+TEST!="/etc/multipath.conf", GOTO="end_mpath"
-
- ENV{DEVTYPE}!="partition", GOTO="test_dev"
- IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH"
-diff --git a/multipathd/multipathd.8 b/multipathd/multipathd.8
-index 94c3f97..ed13efd 100644
---- a/multipathd/multipathd.8
-+++ b/multipathd/multipathd.8
-@@ -38,6 +38,8 @@ map regains its maximum performance and redundancy.
- This daemon executes the external \fBmultipath\fR tool when events occur.
- In turn, the multipath tool signals the multipathd daemon when it is done with
- devmap reconfiguration, so that it can refresh its failed path list.
-+
-+In this Linux distribution, multipathd does not run unless a /etc/multipath.conf file exists.
- .
- .
- .\" ----------------------------------------------------------------------------
-diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
-index ba24983..17434ce 100644
---- a/multipathd/multipathd.service
-+++ b/multipathd/multipathd.service
-@@ -4,6 +4,7 @@ Wants=systemd-udev-trigger.service systemd-udev-settle.service
- Before=iscsi.service iscsid.service lvm2-activation-early.service
- Before=local-fs-pre.target blk-availability.service
- After=multipathd.socket systemd-udev-trigger.service systemd-udev-settle.service
-+ConditionPathExists=/etc/multipath.conf
- DefaultDependencies=no
- Conflicts=shutdown.target
- ConditionKernelCommandLine=!nompath
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch b/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch
deleted file mode 100644
index 17542fd4fd..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 436f7594485e35523269e662c4b5dc3a2c10ff9b Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 26 Nov 2018 09:19:17 +0800
-Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep
-17
- 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Wed,
-19
- Apr 2017 06:10:01 -0500 Subject: [PATCH] RH: use rpm optflags if
-present
-
-Use the passed in optflags when compiling as an RPM, and keep the
-default flags as close as possible to the current fedora flags, while
-still being generic.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
-
-Upstream-Status: Pending
-
-update this patch to new version
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- Makefile.inc | 24 ++++++++++++++++--------
- 1 file changed, 16 insertions(+), 8 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 42dbb5bf..55a06c60 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -89,15 +89,23 @@ TEST_CC_OPTION = $(shell \
- echo "$(2)"; \
- fi)
-
--STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
--ERROR_DISCARDED_QUALIFIERS := $(call TEST_CC_OPTION,-Werror=discarded-qualifiers,)
--WNOCLOBBERED := $(call TEST_CC_OPTION,-Wno-clobbered,)
-+ifndef RPM_OPT_FLAGS
-+ STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
-+ OPTFLAGS = -O2 -g -pipe -Wall -Werror=format-security \
-+ -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \
-+ $(STACKPROT) --param=ssp-buffer-size=4 \
-+ -grecord-gcc-switches
-+ ifeq ($(shell test -f /usr/lib/rpm/redhat/redhat-hardened-cc1 && echo 1),1)
-+ OPTFLAGS += -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-+ endif
-+else
-+ OPTFLAGS = $(RPM_OPT_FLAGS)
-+endif
-+OPTFLAGS += -Wextra -Wstrict-prototypes -Wformat=2 -Werror=implicit-int \
-+ -Werror=implicit-function-declaration -Wno-sign-compare \
-+ -Wno-unused-parameter -Werror=cast-qual \
-+ -Werror=discarded-qualifiers
-
--OPTFLAGS = -O2 -g -pipe -Werror -Wall -Wextra -Wformat=2 -Werror=implicit-int \
-- -Werror=implicit-function-declaration -Werror=format-security \
-- $(WNOCLOBBERED) \
-- -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS) \
-- $(STACKPROT) --param=ssp-buffer-size=4
- CPPFLAGS := -Wp,-D_FORTIFY_SOURCE=2
- CFLAGS := $(OPTFLAGS) -DBIN_DIR=\"$(bindir)\" -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\" \
- -MMD -MP $(CFLAGS)
---
-2.17.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch b/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch
deleted file mode 100644
index a1407718d5..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch
+++ /dev/null
@@ -1,656 +0,0 @@
-From eb5a36e6e0caedf06008e48eb77b7bf7c6534ee5 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 26 Nov 2018 09:55:12 +0800
-Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17
- 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Thu, 16
- Oct 2014 15:49:01 -0500 Subject: [PATCH] RH: add mpathconf
-
-mpathconf is a program (largely based on lvmcomf) to help users
-configure /etc/multipath.conf and enable or disable multipathing. It
-has a couple of built-in options that can be set directly from the
-command line. But, mostly it is used to get a multipath.conf file
-with the OS defaults, and to enable and disable multipathing via
-a single command.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
-
-Upstream-Status: Pending
-
-update this patch to new version
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- libmultipath/config.c | 1 +
- multipath/Makefile | 5 +
- multipath/mpathconf | 464 ++++++++++++++++++++++++++++++++++++++++++++++++++
- multipath/mpathconf.8 | 101 +++++++++++
- 4 files changed, 571 insertions(+)
- create mode 100644 multipath/mpathconf
- create mode 100644 multipath/mpathconf.8
-
-diff --git a/libmultipath/config.c b/libmultipath/config.c
-index e4233f1..b779505 100644
---- a/libmultipath/config.c
-+++ b/libmultipath/config.c
-@@ -747,6 +747,7 @@ load_config (char * file)
- factorize_hwtable(conf->hwtable, builtin_hwtable_size, file);
- } else {
- condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
-+ condlog(0, "You can run /sbin/mpathconf to create or modify /etc/multipath.conf");
- if (conf->blist_devnode == NULL) {
- conf->blist_devnode = vector_alloc();
- if (!conf->blist_devnode) {
-diff --git a/multipath/Makefile b/multipath/Makefile
-index b9bbb3c..e720c7f 100644
---- a/multipath/Makefile
-+++ b/multipath/Makefile
-@@ -18,10 +18,12 @@ $(EXEC): $(OBJS) $(multipathdir)/libmultipath.so $(mpathcmddir)/libmpathcmd.so
- $(CC) $(CFLAGS) $(OBJS) -o $(EXEC) $(LDFLAGS) $(LIBDEPS)
- $(GZIP) $(EXEC).8 > $(EXEC).8.gz
- $(GZIP) $(EXEC).conf.5 > $(EXEC).conf.5.gz
-+ $(GZIP) mpathconf.8 > mpathconf.8.gz
-
- install:
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
- $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)/
-+ $(INSTALL_PROGRAM) -m 755 mpathconf $(DESTDIR)$(bindir)/
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(udevrulesdir)
- $(INSTALL_PROGRAM) -m 644 11-dm-mpath.rules $(DESTDIR)$(udevrulesdir)
- $(INSTALL_PROGRAM) -m 644 $(EXEC).rules $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
-@@ -29,13 +31,16 @@ install:
- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
- $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir)
-+ $(INSTALL_PROGRAM) -m 644 mpathconf.8.gz $(DESTDIR)$(man8dir)
-
- uninstall:
- $(RM) $(DESTDIR)$(bindir)/$(EXEC)
- $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
- $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
-+ $(RM) $(DESTDIR)$(bindir)/mpathconf
- $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
- $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
-+ $(RM) $(DESTDIR)$(man8dir)/mpathconf.8.gz
-
- clean: dep_clean
- $(RM) core *.o $(EXEC) *.gz
-diff --git a/multipath/mpathconf b/multipath/mpathconf
-new file mode 100644
-index 0000000..e839134
---- /dev/null
-+++ b/multipath/mpathconf
-@@ -0,0 +1,464 @@
-+#!/bin/bash
-+#
-+# Copyright (C) 2010 Red Hat, Inc. All rights reserved.
-+#
-+# This file is part of the device-mapper-multipath package.
-+#
-+# This copyrighted material is made available to anyone wishing to use,
-+# modify, copy, or redistribute it subject to the terms and conditions
-+# of the GNU General Public License v.2.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software Foundation,
-+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+
-+#
-+# Simple editting of /etc/multipath.conf
-+# This program was largely ripped off from lvmconf
-+#
-+
-+unset ENABLE FIND FRIENDLY MODULE MULTIPATHD HAVE_DISABLE HAVE_WWID_DISABLE HAVE_FIND HAVE_BLACKLIST HAVE_EXCEPTIONS HAVE_DEFAULTS HAVE_FRIENDLY HAVE_MULTIPATHD HAVE_MODULE HAVE_OUTFILE SHOW_STATUS CHANGED_CONFIG WWID_LIST
-+
-+DEFAULT_CONFIG="# device-mapper-multipath configuration file
-+
-+# For a complete list of the default configuration values, run either:
-+# # multipath -t
-+# or
-+# # multipathd show config
-+
-+# For a list of configuration options with descriptions, see the
-+# multipath.conf man page.
-+
-+defaults {
-+ user_friendly_names yes
-+ find_multipaths yes
-+}
-+
-+blacklist_exceptions {
-+ property \"(SCSI_IDENT_|ID_WWN)\"
-+}"
-+
-+CONFIGFILE="/etc/multipath.conf"
-+OUTPUTFILE="/etc/multipath.conf"
-+MULTIPATHDIR="/etc/multipath"
-+TMPFILE="/etc/multipath/.multipath.conf.tmp"
-+WWIDS=0
-+
-+function usage
-+{
-+ echo "usage: $0 <command>"
-+ echo ""
-+ echo "Commands:"
-+ echo "Enable: --enable "
-+ echo "Disable: --disable"
-+ echo "Only allow certain wwids (instead of enable): --allow <WWID>"
-+ echo "Set user_friendly_names (Default y): --user_friendly_names <y|n>"
-+ echo "Set find_multipaths (Default y): --find_multipaths <y|n>"
-+ echo "Load the dm-multipath modules on enable (Default y): --with_module <y|n>"
-+ echo "start/stop/reload multipathd (Default n): --with_multipathd <y|n>"
-+ echo "select output file (Default /etc/multipath.conf): --outfile <FILE>"
-+ echo ""
-+}
-+
-+function add_wwid
-+{
-+ INDEX=0
-+ while [ "$INDEX" -lt "$WWIDS" ] ; do
-+ if [ "$1" = "${WWID_LIST[$INDEX]}" ] ; then
-+ return
-+ fi
-+ ((INDEX++))
-+ done
-+ WWID_LIST[$WWIDS]="$1"
-+ ((WWIDS++))
-+}
-+
-+function get_dm_deps
-+{
-+ shift 3
-+ while [ -n "$1" -a -n "$2" ]; do
-+ MAJOR=$(echo $1 | tr -d '(,')
-+ MINOR=$(echo $2 | tr -d ')')
-+ UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR 2> /dev/null`
-+ if [ -n "$UUID" ] ; then
-+ set_dm_wwid $UUID
-+ fi
-+ shift 2
-+ done
-+}
-+
-+function set_dm_wwid
-+{
-+ if [[ "$1" =~ ^part[[:digit:]]+-mpath- ]] ; then
-+ add_wwid "${1##part*-mpath-}"
-+ elif [[ "$1" =~ ^mpath- ]] ; then
-+ add_wwid "${1##mpath-}"
-+ else
-+ get_dm_deps `dmsetup deps -u $1`
-+ fi
-+}
-+
-+function set_wwid
-+{
-+ UUID=""
-+ if [[ "$1" =~ ^[[:digit:]]+:[[:digit:]]+$ ]] ; then
-+ MAJOR=${1%%:*}
-+ MINOR=${1##*:}
-+ UUID=`dmsetup info -c --noheadings -o uuid -j $MAJOR -m $MINOR 2> /dev/null`
-+ else
-+ UUID=`dmsetup info -c --noheadings -o uuid $1 2> /dev/null`
-+ fi
-+ if [ -n "$UUID" ] ; then
-+ set_dm_wwid $UUID
-+ else
-+ add_wwid "$1"
-+ fi
-+}
-+
-+function parse_args
-+{
-+ while [ -n "$1" ]; do
-+ case $1 in
-+ --enable)
-+ ENABLE=1
-+ shift
-+ ;;
-+ --disable)
-+ ENABLE=0
-+ shift
-+ ;;
-+ --allow)
-+ ENABLE=2
-+ if [ -n "$2" ]; then
-+ set_wwid $2
-+ shift 2
-+ else
-+ usage
-+ exit 1
-+ fi
-+ ;;
-+ --user_friendly_names)
-+ if [ -n "$2" ]; then
-+ FRIENDLY=$2
-+ shift 2
-+ else
-+ usage
-+ exit 1
-+ fi
-+ ;;
-+ --find_multipaths)
-+ if [ -n "$2" ]; then
-+ FIND=$2
-+ shift 2
-+ else
-+ usage
-+ exit 1
-+ fi
-+ ;;
-+ --with_module)
-+ if [ -n "$2" ]; then
-+ MODULE=$2
-+ shift 2
-+ else
-+ usage
-+ exit 1
-+ fi
-+ ;;
-+ --with_multipathd)
-+ if [ -n "$2" ]; then
-+ MULTIPATHD=$2
-+ shift 2
-+ else
-+ usage
-+ exit 1
-+ fi
-+ ;;
-+ --outfile)
-+ if [ -n "$2" ]; then
-+ OUTPUTFILE=$2
-+ HAVE_OUTFILE=1
-+ shift 2
-+ else
-+ usage
-+ exit 1
-+ fi
-+ ;;
-+ *)
-+ usage
-+ exit
-+ esac
-+ done
-+}
-+
-+function validate_args
-+{
-+ if [ "$ENABLE" = "0" ] && [ -n "$FRIENDLY" -o -n "$FIND" -o -n "$MODULE" ]; then
-+ echo "ignoring extra parameters on disable"
-+ FRIENDLY=""
-+ FIND=""
-+ MODULE=""
-+ fi
-+ if [ -n "$FRIENDLY" ] && [ "$FRIENDLY" != "y" -a "$FRIENDLY" != "n" ]; then
-+ echo "--user_friendly_names must be either 'y' or 'n'"
-+ exit 1
-+ fi
-+ if [ -n "$FIND" ] && [ "$FIND" != "y" -a "$FIND" != "n" ]; then
-+ echo "--find_multipaths must be either 'y' or 'n'"
-+ exit 1
-+ fi
-+ if [ -z "$ENABLE" -a -z "$FIND" -a -z "$FRIENDLY" ]; then
-+ SHOW_STATUS=1
-+ fi
-+ if [ -n "$MODULE" ] && [ "$MODULE" != "y" -a "$MODULE" != "n" ]; then
-+ echo "--with_module must be either 'y' or 'n'"
-+ exit 1
-+ fi
-+ if [ -n "$MULTIPATHD" ] && [ "$MULTIPATHD" != "y" -a "$MULTIPATHD" != "n" ]; then
-+ echo "--with_multipathd must be either 'y' or 'n'"
-+ exit 1
-+ fi
-+ if [ "$ENABLE" = 2 -a -z "$HAVE_OUTFILE" ]; then
-+ echo "Because --allow makes changes that cannot be automatically reversed,"
-+ echo "you must set --outfile when you set --allow"
-+ exit 1
-+ fi
-+}
-+
-+function add_blacklist_exceptions
-+{
-+ INDEX=0
-+ while [ "$INDEX" -lt "$WWIDS" ] ; do
-+ sed -i '/^blacklist_exceptions[[:space:]]*{/ a\
-+ wwid '"\"${WWID_LIST[$INDEX]}\""'
-+' $TMPFILE
-+ ((INDEX++))
-+ done
-+}
-+
-+umask 0077
-+
-+parse_args "$@"
-+
-+validate_args
-+
-+if [ ! -d "$MULTIPATHDIR" ]; then
-+ echo "/etc/multipath/ does not exist. failing"
-+ exit 1
-+fi
-+
-+rm $TMPFILE 2> /dev/null
-+echo "$DEFAULT_CONFIG" > $TMPFILE
-+if [ -f "$CONFIGFILE" ]; then
-+ cp $CONFIGFILE $TMPFILE
-+fi
-+
-+if grep -q "^blacklist[[:space:]]*{" $TMPFILE ; then
-+ HAVE_BLACKLIST=1
-+fi
-+
-+if grep -q "^blacklist_exceptions[[:space:]]*{" $TMPFILE ; then
-+ HAVE_EXCEPTIONS=1
-+fi
-+
-+if grep -q "^defaults[[:space:]]*{" $TMPFILE ; then
-+ HAVE_DEFAULTS=1
-+fi
-+
-+if [ -z "$MODULE" -o "$MODULE" = "y" ]; then
-+ if lsmod | grep -q "dm_multipath" ; then
-+ HAVE_MODULE=1
-+ else
-+ HAVE_MODULE=0
-+ fi
-+fi
-+
-+if [ "$MULTIPATHD" = "y" ]; then
-+ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
-+ HAVE_MULTIPATHD=1
-+ else
-+ HAVE_MULTIPATHD=0
-+ fi
-+fi
-+
-+if [ "$HAVE_BLACKLIST" = "1" ]; then
-+ if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*devnode \"\.\?\*\"" ; then
-+ HAVE_DISABLE=1
-+ elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"" ; then
-+ HAVE_DISABLE=0
-+ fi
-+fi
-+
-+if [ "$HAVE_BLACKLIST" = "1" ]; then
-+ if sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*wwid \"\.\?\*\"" ; then
-+ HAVE_WWID_DISABLE=1
-+ elif sed -n '/^blacklist[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"" ; then
-+ HAVE_WWID_DISABLE=0
-+ fi
-+fi
-+
-+if [ "$HAVE_DEFAULTS" = "1" ]; then
-+ if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)" ; then
-+ HAVE_FIND=1
-+ elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)" ; then
-+ HAVE_FIND=0
-+ fi
-+ if sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)" ; then
-+ HAVE_FRIENDLY=1
-+ elif sed -n '/^defaults[[:space:]]*{/,/^}/ p' $TMPFILE | grep -q "^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)" ; then
-+ HAVE_FRIENDLY=0
-+ fi
-+fi
-+
-+if [ -n "$SHOW_STATUS" ]; then
-+ if [ -z "$HAVE_DISABLE" -o "$HAVE_DISABLE" = 0 ]; then
-+ echo "multipath is enabled"
-+ else
-+ echo "multipath is disabled"
-+ fi
-+ if [ -z "$HAVE_FIND" -o "$HAVE_FIND" = 0 ]; then
-+ echo "find_multipaths is disabled"
-+ else
-+ echo "find_multipaths is enabled"
-+ fi
-+ if [ -z "$HAVE_FRIENDLY" -o "$HAVE_FRIENDLY" = 0 ]; then
-+ echo "user_friendly_names is disabled"
-+ else
-+ echo "user_friendly_names is enabled"
-+ fi
-+ if [ -n "$HAVE_MODULE" ]; then
-+ if [ "$HAVE_MODULE" = 1 ]; then
-+ echo "dm_multipath module is loaded"
-+ else
-+ echo "dm_multipath module is not loaded"
-+ fi
-+ fi
-+ if [ -z "$HAVE_MULTIPATHD" ]; then
-+ if /bin/systemctl status multipathd.service > /dev/null 2>&1 ; then
-+ HAVE_MULTIPATHD=1
-+ else
-+ HAVE_MULTIPATHD=0
-+ fi
-+ fi
-+ if [ "$HAVE_MULTIPATHD" = 1 ]; then
-+ echo "multipathd is running"
-+ else
-+ echo "multipathd is not running"
-+ fi
-+ exit 0
-+fi
-+
-+if [ -z "$HAVE_BLACKLIST" ]; then
-+ cat >> $TMPFILE <<- _EOF_
-+
-+blacklist {
-+}
-+_EOF_
-+fi
-+
-+if [ -z "$HAVE_DEFAULTS" ]; then
-+ cat >> $TMPFILE <<- _EOF_
-+
-+defaults {
-+}
-+_EOF_
-+fi
-+
-+if [ "$ENABLE" = 2 ]; then
-+ if [ "$HAVE_DISABLE" = 1 ]; then
-+ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/# devnode ".*"/' $TMPFILE
-+ fi
-+ if [ -z "$HAVE_WWID_DISABLE" ]; then
-+ sed -i '/^blacklist[[:space:]]*{/ a\
-+ wwid ".*"
-+' $TMPFILE
-+ elif [ "$HAVE_WWID_DISABLE" = 0 ]; then
-+ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*wwid \"\.\?\*\"/ wwid ".*"/' $TMPFILE
-+ fi
-+ if [ "$HAVE_EXCEPTIONS" = 1 ]; then
-+ sed -i '/^blacklist_exceptions[[:space:]]*{/,/^}/ {/^[[:space:]]*wwid/ d}' $TMPFILE
-+ else
-+ cat >> $TMPFILE <<- _EOF_
-+
-+blacklist_exceptions {
-+}
-+_EOF_
-+ fi
-+ add_blacklist_exceptions
-+elif [ "$ENABLE" = 1 ]; then
-+ if [ "$HAVE_DISABLE" = 1 ]; then
-+ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*devnode \"\.\?\*\"/# devnode ".*"/' $TMPFILE
-+ fi
-+elif [ "$ENABLE" = 0 ]; then
-+ if [ -z "$HAVE_DISABLE" ]; then
-+ sed -i '/^blacklist[[:space:]]*{/ a\
-+ devnode ".*"
-+' $TMPFILE
-+ elif [ "$HAVE_DISABLE" = 0 ]; then
-+ sed -i '/^blacklist[[:space:]]*{/,/^}/ s/^[[:space:]]*#[[:space:]]*devnode \"\.\?\*\"/ devnode ".*"/' $TMPFILE
-+ fi
-+fi
-+
-+if [ "$FIND" = "n" ]; then
-+ if [ "$HAVE_FIND" = 1 ]; then
-+ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(yes\|1\)/ find_multipaths no/' $TMPFILE
-+ CHANGED_CONFIG=1
-+ fi
-+elif [ "$FIND" = "y" ]; then
-+ if [ -z "$HAVE_FIND" ]; then
-+ sed -i '/^defaults[[:space:]]*{/ a\
-+ find_multipaths yes
-+' $TMPFILE
-+ CHANGED_CONFIG=1
-+ elif [ "$HAVE_FIND" = 0 ]; then
-+ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*find_multipaths[[:space:]]*\(no\|0\)/ find_multipaths yes/' $TMPFILE
-+ CHANGED_CONFIG=1
-+ fi
-+fi
-+
-+if [ "$FRIENDLY" = "n" ]; then
-+ if [ "$HAVE_FRIENDLY" = 1 ]; then
-+ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(yes\|1\)/ user_friendly_names no/' $TMPFILE
-+ CHANGED_CONFIG=1
-+ fi
-+elif [ "$FRIENDLY" = "y" ]; then
-+ if [ -z "$HAVE_FRIENDLY" ]; then
-+ sed -i '/^defaults[[:space:]]*{/ a\
-+ user_friendly_names yes
-+' $TMPFILE
-+ CHANGED_CONFIG=1
-+ elif [ "$HAVE_FRIENDLY" = 0 ]; then
-+ sed -i '/^defaults[[:space:]]*{/,/^}/ s/^[[:space:]]*user_friendly_names[[:space:]]*\(no\|0\)/ user_friendly_names yes/' $TMPFILE
-+ CHANGED_CONFIG=1
-+ fi
-+fi
-+
-+if [ -f "$OUTPUTFILE" ]; then
-+ cp $OUTPUTFILE $OUTPUTFILE.old
-+ if [ $? != 0 ]; then
-+ echo "failed to backup old config file, $OUTPUTFILE not updated"
-+ exit 1
-+ fi
-+fi
-+
-+cp $TMPFILE $OUTPUTFILE
-+if [ $? != 0 ]; then
-+ echo "failed to copy new config file into place, check $OUTPUTFILE is still OK"
-+ exit 1
-+fi
-+
-+rm -f $TMPFILE
-+
-+if [ "$ENABLE" = 1 ]; then
-+ if [ "$HAVE_MODULE" = 0 ]; then
-+ modprobe dm_multipath
-+ fi
-+ if [ "$HAVE_MULTIPATHD" = 0 ]; then
-+ systemctl start multipathd.service
-+ fi
-+elif [ "$ENABLE" = 0 ]; then
-+ if [ "$HAVE_MULTIPATHD" = 1 ]; then
-+ systemctl stop multipathd.service
-+ fi
-+elif [ -n "$CHANGED_CONFIG" -a "$HAVE_MULTIPATHD" = 1 ]; then
-+ systemctl reload multipathd.service
-+fi
-diff --git a/multipath/mpathconf.8 b/multipath/mpathconf.8
-new file mode 100644
-index 0000000..4cd3267
---- /dev/null
-+++ b/multipath/mpathconf.8
-@@ -0,0 +1,101 @@
-+.TH MPATHCONF 8 "June 2010" "" "Linux Administrator's Manual"
-+.SH NAME
-+mpathconf - A tool for configuring device-mapper-multipath
-+.SH SYNOPSIS
-+.B mpathconf
-+.RB [\| commands \|]
-+.RB [\| options \|]
-+.SH DESCRIPTION
-+.B mpathconf
-+is a utility that creates or modifies
-+.B /etc/multipath.conf.
-+It can enable or disable multipathing and configure some common options.
-+.B mpathconf
-+can also load the
-+.B dm_multipath
-+module, start and stop the
-+.B multipathd
-+daemon, and configure the
-+.B multipathd
-+service to start automatically or not. If
-+.B mpathconf
-+is called with no commands, it will display the current configuration.
-+
-+The default options for mpathconf are
-+.B --with_module
-+The
-+.B --with_multipathd
-+option is not set by default. Enabling multipathing will load the
-+.B dm_multipath
-+module but it will not immediately start it. This is so
-+that users can manually edit their config file if necessary, before starting
-+.B multipathd.
-+
-+If
-+.B /etc/multipath.conf
-+already exists, mpathconf will edit it. If it does not exist, mpathconf will
-+create a default file with
-+.B user_friendly_names
-+and
-+.B find_multipaths
-+set. To disable these, use the
-+.B --user_friendly_names n
-+and
-+.B --find_multipaths n
-+options
-+.SH COMMANDS
-+.TP
-+.B --enable
-+Removes any line that blacklists all device nodes from the
-+.B /etc/multipath.conf
-+blacklist section.
-+.TP
-+.B --disable
-+Adds a line that blacklists all device nodes to the
-+.B /etc/multipath.conf
-+blacklist section. If no blacklist section exists, it will create one.
-+.TP
-+.B --user_friendly_name \fP { \fBy\fP | \fBn\fP }
-+If set to \fBy\fP, this adds the line
-+.B user_friendly_names yes
-+to the
-+.B /etc/multipath.conf
-+defaults section. If set to \fBn\fP, this removes the line, if present. This
-+command can be used along with any other command.
-+.TP
-+.B --find_multipaths\fP { \fBy\fP | \fBn\fP }
-+If set to \fBy\fP, this adds the line
-+.B find_multipaths yes
-+to the
-+.B /etc/multipath.conf
-+defaults section. If set to \fBn\fP, this removes the line, if present. This
-+command can be used aldong with any other command.
-+.SH OPTIONS
-+.TP
-+.B --with_module\fP { \fBy\fP | \fBn\fP }
-+If set to \fBy\fP, this runs
-+.B modprobe dm_multipath
-+to install the multipath modules. This option only works with the
-+.B --enable
-+command. This option is set to \fBy\fP by default.
-+.TP
-+.B --with_multipathd { \fBy\fP | \fBn\fP }
-+If set to \fBy\fP, this runs
-+.B service multipathd start
-+to start the multipathd daemon on \fB--enable\fP,
-+.B service multipathd stop
-+to stop the multipathd daemon on \fB--disable\fP, and
-+.B service multipathd reload
-+to reconfigure multipathd on \fB--user_frindly_names\fP and
-+\fB--find_multipaths\fP.
-+This option is set to \fBn\fP by default.
-+.SH FILES
-+.BR /etc/multipath.conf
-+.SH "SEE ALSO"
-+.BR multipath.conf (5),
-+.BR modprobe (8),
-+.BR multipath (8),
-+.BR multipathd (8),
-+.BR service (8),
-+.SH AUTHOR
-+Benjamin Marzinski <bmarzins@redhat.com>
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
deleted file mode 100644
index 5fd6d668e2..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 0f54b3120ca06ff3168cdbf901a27b68c4638398 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Thu, 26 Sep 2019 16:29:48 +0800
-Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep
-17
- 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Fri,
-17
- Oct 2014 11:20:34 -0500 Subject: [PATCH] RH: add wwids from kernel
-cmdline
- mpath.wwids with -A
-
-This patch adds another option to multipath, "-A", which reads
-/proc/cmdline for mpath.wwid=<WWID> options, and adds any wwids it finds
-to /etc/multipath/wwids. While this isn't usually important during
-normal operation, since these wwids should already be added, it can be
-helpful during installation, to make sure that multipath can claim
-devices as its own, before LVM or something else makes use of them. The
-patch also execs "/sbin/multipath -A" before running multipathd in
-multipathd.service
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
-
-Upstream-Status: Pending
-
-Update this patch to new version 0.8.2
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- libmultipath/wwids.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
- libmultipath/wwids.h | 1 +
- 2 files changed, 45 insertions(+)
-
-diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
-index 28a2150d..a0bfa851 100644
---- a/libmultipath/wwids.c
-+++ b/libmultipath/wwids.c
-@@ -454,3 +454,47 @@ int op ## _wwid(const char *wwid) \
- declare_failed_wwid_op(is_failed, false)
- declare_failed_wwid_op(mark_failed, true)
- declare_failed_wwid_op(unmark_failed, true)
-+
-+int remember_cmdline_wwid(void)
-+{
-+ FILE *f = NULL;
-+ char buf[LINE_MAX], *next, *ptr;
-+ int ret = 0;
-+
-+ f = fopen("/proc/cmdline", "re");
-+ if (!f) {
-+ condlog(0, "can't open /proc/cmdline : %s", strerror(errno));
-+ return -1;
-+ }
-+
-+ if (!fgets(buf, sizeof(buf), f)) {
-+ if (ferror(f))
-+ condlog(0, "read of /proc/cmdline failed : %s",
-+ strerror(errno));
-+ else
-+ condlog(0, "couldn't read /proc/cmdline");
-+ fclose(f);
-+ return -1;
-+ }
-+ fclose(f);
-+ next = buf;
-+ while((ptr = strstr(next, "mpath.wwid="))) {
-+ ptr += 11;
-+ next = strpbrk(ptr, " \t\n");
-+ if (next) {
-+ *next = '\0';
-+ next++;
-+ }
-+ if (strlen(ptr)) {
-+ if (remember_wwid(ptr) != 0)
-+ ret = -1;
-+ }
-+ else {
-+ condlog(0, "empty mpath.wwid kernel command line option");
-+ ret = -1;
-+ }
-+ if (!next)
-+ break;
-+ }
-+ return ret;
-+}
-diff --git a/libmultipath/wwids.h b/libmultipath/wwids.h
-index 0c6ee54d..e32a0b0e 100644
---- a/libmultipath/wwids.h
-+++ b/libmultipath/wwids.h
-@@ -17,6 +17,7 @@ int remember_wwid(char *wwid);
- int check_wwids_file(char *wwid, int write_wwid);
- int remove_wwid(char *wwid);
- int replace_wwids(vector mp);
-+int remember_cmdline_wwid(void);
-
- enum {
- WWID_IS_NOT_FAILED = 0,
---
-2.17.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch b/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch
deleted file mode 100644
index c59edbbb27..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17
-00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Mon, 6 Nov
-2017 21:39:28 -0600 Subject: [PATCH] RH: warn on invalid regex instead of
-failing
-
-multipath.conf used to allow "*" as a match everything regular expression,
-instead of requiring ".*". Instead of erroring when the old style
-regular expressions are used, it should print a warning and convert
-them.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
-
-Upstream-Status: Pending
-
-update this patch to 0.8.2
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- libmultipath/dict.c | 29 ++++++++++++++++++++++-------
- libmultipath/parser.c | 13 +++++++++++++
- libmultipath/parser.h | 1 +
- 3 files changed, 36 insertions(+), 7 deletions(-)
-
-diff --git a/libmultipath/dict.c b/libmultipath/dict.c
-index c6eba0f..05ed3d8 100644
---- a/libmultipath/dict.c
-+++ b/libmultipath/dict.c
-@@ -59,6 +59,21 @@ set_str(vector strvec, void *ptr)
- }
-
- static int
-+set_regex(vector strvec, void *ptr)
-+{
-+ char **str_ptr = (char **)ptr;
-+
-+ if (*str_ptr)
-+ FREE(*str_ptr);
-+ *str_ptr = set_regex_value(strvec);
-+
-+ if (!*str_ptr)
-+ return 1;
-+
-+ return 0;
-+}
-+
-+static int
- set_yes_no(vector strvec, void *ptr)
- {
- char * buff;
-@@ -1415,8 +1430,8 @@ ble_ ## option ## _handler (struct config *conf, vector strvec) \
- \
- if (!conf->option) \
- return 1; \
-- \
-- buff = set_value(strvec); \
-+ \
-+ buff = set_regex_value(strvec); \
- if (!buff) \
- return 1; \
- \
-@@ -1432,7 +1447,7 @@ ble_ ## option ## _ ## name ## _handler (struct config *conf, vector strvec) \
- if (!conf->option) \
- return 1; \
- \
-- buff = set_value(strvec); \
-+ buff = set_regex_value(strvec); \
- if (!buff) \
- return 1; \
- \
-@@ -1535,16 +1550,16 @@ device_handler(struct config *conf, vector strvec)
- return 0;
- }
-
--declare_hw_handler(vendor, set_str)
-+declare_hw_handler(vendor, set_regex)
- declare_hw_snprint(vendor, print_str)
-
--declare_hw_handler(product, set_str)
-+declare_hw_handler(product, set_regex)
- declare_hw_snprint(product, print_str)
-
--declare_hw_handler(revision, set_str)
-+declare_hw_handler(revision, set_regex)
- declare_hw_snprint(revision, print_str)
-
--declare_hw_handler(bl_product, set_str)
-+declare_hw_handler(bl_product, set_regex)
- declare_hw_snprint(bl_product, print_str)
-
- declare_hw_handler(hwhandler, set_str)
-diff --git a/libmultipath/parser.c b/libmultipath/parser.c
-index e00c5ff..6ca5842 100644
---- a/libmultipath/parser.c
-+++ b/libmultipath/parser.c
-@@ -382,6 +382,19 @@ oom:
- return NULL;
- }
-
-+void *
-+set_regex_value(vector strvec)
-+{
-+ char *buff = set_value(strvec);
-+
-+ if (buff && strcmp("*", buff) == 0) {
-+ condlog(0, "Invalid regular expression \"*\" in multipath.conf. Using \".*\"");
-+ FREE(buff);
-+ return strdup(".*");
-+ }
-+ return buff;
-+}
-+
- /* non-recursive configuration stream handler */
- static int kw_level = 0;
-
-diff --git a/libmultipath/parser.h b/libmultipath/parser.h
-index 62906e9..b791705 100644
---- a/libmultipath/parser.h
-+++ b/libmultipath/parser.h
-@@ -77,6 +77,7 @@ extern void dump_keywords(vector keydump, int level);
- extern void free_keywords(vector keywords);
- extern vector alloc_strvec(char *string);
- extern void *set_value(vector strvec);
-+extern void *set_regex_value(vector strvec);
- extern int process_file(struct config *conf, char *conf_file);
- extern struct keyword * find_keyword(vector keywords, vector v, char * name);
- int snprint_keyword(char *buff, int len, char *fmt, struct keyword *kw,
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch b/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch
deleted file mode 100644
index ad03b8acc4..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 16900150e02e5b367a8b33621b393975ad011130 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 26 Nov 2018 11:12:01 +0800
-Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17
- 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Thu, 7 Jun
- 2018 17:43:52 -0500 Subject: [PATCH] RH: reset default find_mutipaths value
- to off
-
-Upstream has changed to default find_multipaths to "strict". For now
-Redhat will retain the previous default of "off".
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
-
-Upstream-Status: Pending
-
-Update this patch to new version
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- libmultipath/defaults.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h
-index 6576939..a2404b2 100644
---- a/libmultipath/defaults.h
-+++ b/libmultipath/defaults.h
-@@ -17,7 +17,7 @@
- #define DEFAULT_NO_PATH_RETRY NO_PATH_RETRY_UNDEF
- #define DEFAULT_VERBOSITY 2
- #define DEFAULT_REASSIGN_MAPS 0
--#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_STRICT
-+#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_OFF
- #define DEFAULT_FAST_IO_FAIL 5
- #define DEFAULT_DEV_LOSS_TMO 600
- #define DEFAULT_RETAIN_HWHANDLER RETAIN_HWHANDLER_ON
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
deleted file mode 100644
index 3919f99045..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From c3436ec8a502a40579abf62be0a479fa9d7888ad Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Tue, 4 Jun 2019 11:39:39 +0800
-Subject: [PATCH] multipath-tools: modify Makefile.inc for cross-compilation
-
-Do not look for systemd info on the host, and allow us to pass in CFLAGS
-using the OPTFLAGS variable.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Update for version 0.5.0-144-g770e6d0
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-Update for version 0.7.1
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
-update for version 0.7.7
-
-remove change about CFLAGS part, since patch 0024 already have similar function.
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-
-update for version 0.8.1
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- Makefile.inc | 11 -----------
- 1 file changed, 11 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 661f141..3f9fd28 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -35,17 +35,6 @@ ifndef RUN
- endif
- endif
-
--ifndef SYSTEMD
-- ifeq ($(shell pkg-config --modversion libsystemd >/dev/null 2>&1 && echo 1), 1)
-- SYSTEMD = $(shell pkg-config --modversion libsystemd)
-- else
-- ifeq ($(shell systemctl --version >/dev/null 2>&1 && echo 1), 1)
-- SYSTEMD = $(shell systemctl --version 2> /dev/null | \
-- sed -n 's/systemd \([0-9]*\).*/\1/p')
-- endif
-- endif
--endif
--
- ifndef SYSTEMDPATH
- SYSTEMDPATH=usr/lib
- endif
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch b/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch
deleted file mode 100644
index 3e88b41004..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From e4acb46b10484d1da6f093257e34f269832e6a37 Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 26 Nov 2018 11:17:41 +0800
-Subject: [PATCH] Subject: [PATCH] Always use devmapper
-
-Do not try to compute several _API_ make variables
-from host information when cross-compiling.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Rebase to 0.7.1
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
-Rebase to 0.7.7
-
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-
-Rebase to 0.7.9
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- libmultipath/Makefile | 19 ++++---------------
- 1 file changed, 4 insertions(+), 15 deletions(-)
-
-diff --git a/libmultipath/Makefile b/libmultipath/Makefile
-index 33f5269..adf6f4a 100644
---- a/libmultipath/Makefile
-+++ b/libmultipath/Makefile
-@@ -20,21 +20,10 @@ ifdef SYSTEMD
- endif
- endif
-
--ifneq ($(call check_func,dm_task_no_flush,/usr/include/libdevmapper.h),0)
-- CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
--endif
--
--ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0)
-- CFLAGS += -DLIBDM_API_COOKIE
--endif
--
--ifneq ($(call check_func,udev_monitor_set_receive_buffer_size,/usr/include/libudev.h),0)
-- CFLAGS += -DLIBUDEV_API_RECVBUF
--endif
--
--ifneq ($(call check_func,dm_task_deferred_remove,/usr/include/libdevmapper.h),0)
-- CFLAGS += -DLIBDM_API_DEFERRED
--endif
-+CFLAGS += -DLIBDM_API_FLUSH -D_GNU_SOURCE
-+CFLAGS += -DLIBDM_API_COOKIE
-+CFLAGS += -DLIBUDEV_API_RECVBUF
-+CFLAGS += -DLIBDM_API_DEFERRED
-
- OBJS = memory.o parser.o vector.o devmapper.o callout.o \
- hwtable.o blacklist.o util.o dmparser.o config.o \
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch b/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch
deleted file mode 100644
index 418c0200f4..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 1fe937835311a2d0afbc85ce4a4dbd3c9e0c912f Mon Sep 17 00:00:00 2001
-From: Changqing Li <changqing.li@windriver.com>
-Date: Mon, 26 Nov 2018 11:19:45 +0800
-Subject: [PATCH] Subject: [PATCH] Always use devmapper for kpartx
-
-Do not try to compute the LIBDM_API_COOKIE make variable
-from host information when cross-compiling.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-Rebase to 0.7.1
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
-Rebase to 0.7.7
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
-
-Rebase to 0.7.9
-Signed-off-by: Changqing Li <changqing.li@windriver.com>
----
- kpartx/Makefile | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/kpartx/Makefile b/kpartx/Makefile
-index 7eb467e..c143321 100644
---- a/kpartx/Makefile
-+++ b/kpartx/Makefile
-@@ -8,9 +8,7 @@ LDFLAGS += $(BIN_LDFLAGS)
-
- LIBDEPS += -ldevmapper
-
--ifneq ($(call check_func,dm_task_set_cookie,/usr/include/libdevmapper.h),0)
-- CFLAGS += -DLIBDM_API_COOKIE
--endif
-+CFLAGS += -DLIBDM_API_COOKIE
-
- OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
- gpt.o mac.o ps3.o crc32.o lopart.o xstrncpy.o devmapper.o
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0032-libdmmp-Makefile-replace-perl-with-sed-in-install-ta.patch b/meta-oe/recipes-support/multipath-tools/files/0032-libdmmp-Makefile-replace-perl-with-sed-in-install-ta.patch
deleted file mode 100644
index b35d67cf59..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0032-libdmmp-Makefile-replace-perl-with-sed-in-install-ta.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 35421d03898ac1b38f97a76241e6a29086d0c9f1 Mon Sep 17 00:00:00 2001
-From: Geoff Parker <geoffrey.parker@arthrex.com>
-Date: Fri, 9 Oct 2020 17:48:47 +0000
-Subject: [PATCH] libdmmp/Makefile: replace perl with sed in install target to
- work with pseudo
-
-The multipath-tools libdmmp/Makefile install target uses 'perl -i' instead
-of 'sed -i' for string substitutions. The perl method creates a temporary file
-and overwrites the original which changes the inodes and corrupts the pseudo
-db. Changes to pseduo cause a build abort rather than allow possible bad
-ownership or permissions settings on the files. 'sed -i' is compatible
-with pseudo.
-
-Signed-off-by: Geoff Parker <geoffrey.parker@arthrex.com>
----
- libdmmp/Makefile | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/libdmmp/Makefile b/libdmmp/Makefile
-index 1dd3f340..8166075c 100644
---- a/libdmmp/Makefile
-+++ b/libdmmp/Makefile
-@@ -34,11 +34,11 @@ install:
- $(LN) $(LIBS) $(DESTDIR)$(usrlibdir)/$(DEVLIB)
- $(INSTALL_PROGRAM) -m 644 -D \
- $(PKGFILE).in $(DESTDIR)$(pkgconfdir)/$(PKGFILE)
-- perl -i -pe 's|__VERSION__|$(LIBDMMP_VERSION)|g' \
-+ sed -i 's|__VERSION__|$(LIBDMMP_VERSION)|g' \
- $(DESTDIR)$(pkgconfdir)/$(PKGFILE)
-- perl -i -pe 's|__LIBDIR__|$(usrlibdir)|g' \
-+ sed -i 's|__LIBDIR__|$(usrlibdir)|g' \
- $(DESTDIR)$(pkgconfdir)/$(PKGFILE)
-- perl -i -pe 's|__INCLUDEDIR__|$(includedir)|g' \
-+ sed -i 's|__INCLUDEDIR__|$(includedir)|g' \
- $(DESTDIR)$(pkgconfdir)/$(PKGFILE)
- @for file in docs/man/*.3.gz; do \
- $(INSTALL_PROGRAM) -m 644 -D \
---
-2.20.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.4.bb b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.4.bb
deleted file mode 100644
index 5a8db08771..0000000000
--- a/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.4.bb
+++ /dev/null
@@ -1,122 +0,0 @@
-SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver"
-
-DESCRIPTION = "It provides tools to manage multipath devices \
-by instructing the device-mapper kernel module what to do. These \
-tools include: \
-1. multipath - Scan the system for multipath devices and assemble them.\
-2. multipathd - Detects when paths fail and execs multipath to update \
-things.\
-3. mpathpersist - Persistent reservation management feature allows \
-cluster management software to manage persistent reservation through \
-mpath device. It processes management requests from callers and hides \
-the management task details. It also handles persistent reservation \
-management of data path life cycle and state changes.\
-4. kpartx - This tool, derived from util-linux's partx, reads partition \
-tables on specified device and create device maps over partitions \
-segments detected. It is called from hotplug upon device maps creation \
-and deletion"
-
-HOMEPAGE = "http://christophe.varoqui.free.fr/"
-
-DEPENDS = "libdevmapper \
- lvm2 \
- libaio \
- liburcu \
- readline \
- udev \
- json-c \
- "
-
-LICENSE = "GPL-2.0-only"
-
-SRC_URI = "git://github.com/opensvc/multipath-tools.git;protocol=http;branch=master \
- file://multipathd.oe \
- file://multipath.conf.example \
- file://0021-RH-fixup-udev-rules-for-redhat.patch \
- file://0022-RH-Remove-the-property-blacklist-exception-builtin.patch \
- file://0023-RH-don-t-start-without-a-config-file.patch \
- file://0024-RH-use-rpm-optflags-if-present.patch \
- file://0025-RH-add-mpathconf.patch \
- file://0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \
- file://0027-RH-warn-on-invalid-regex-instead-of-failing.patch \
- file://0028-RH-reset-default-find_mutipaths-value-to-off.patch \
- file://0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \
- file://0030-Always-use-devmapper.patch \
- file://0031-Always-use-devmapper-for-kpartx.patch \
- file://0032-libdmmp-Makefile-replace-perl-with-sed-in-install-ta.patch \
- file://0001-fix-bug-of-do_compile-and-do_install.patch \
- file://0001-add-explicit-dependency-on-libraries.patch \
- file://0001-fix-boolean-value-with-json-c-0.14.patch \
- file://0001-libmultipath-uevent.c-fix-error-handling-for-udev_mo.patch \
- "
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-SRCREV = "d4915917655b3d205aa0e339ca13080ed8182d0d"
-
-S = "${WORKDIR}/git"
-
-inherit systemd pkgconfig
-
-SYSTEMD_SERVICE:${PN} = "multipathd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-# multipath-tools includes a copy of the valgrind.h header
-# file and uses the macros to suppress some false positives. However,
-# that only works on ARM when thumb is disabled. Otherwise one gets:
-# Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3'
-# ../Makefile.inc:66: recipe for target 'debug.o' failed
-ARM_INSTRUCTION_SET:armv4 = "arm"
-ARM_INSTRUCTION_SET:armv5 = "arm"
-
-# The exact version of SYSTEMD does not matter but should be greater than 209.
-#
-EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \
- OPTFLAGS="${CFLAGS}" \
- bindir=${base_sbindir} \
- LIB=${base_libdir} libdir=${base_libdir}/multipath \
- unitdir=${systemd_system_unitdir} \
- libudevdir=${nonarch_base_libdir}/udev \
- ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \
- '
-
-do_install() {
- oe_runmake install
-
- # We copy an initscript, but do not start multipathd at init time.
- #
- if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)};then
- install -d ${D}${sysconfdir}/init.d
- cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd
- fi
-
- sed -i "s:/usr/lib/udev/kpartx_id:${nonarch_base_libdir}/udev/kpartx_id:g" \
- ${D}${nonarch_base_libdir}/udev/rules.d/11-dm-mpath.rules
-
- install -d ${D}${sysconfdir}
- install -m 0644 ${WORKDIR}/multipath.conf.example \
- ${D}${sysconfdir}/multipath.conf.example
-}
-
-FILES:${PN}-dbg += "${base_libdir}/multipath/.debug"
-
-PACKAGES =+ "${PN}-libs"
-FILES:${PN}-libs = "${base_libdir}/lib*.so.* \
- ${base_libdir}/multipath/lib*.so*"
-RDEPENDS:${PN} += "${PN}-libs bash"
-
-PROVIDES += "device-mapper-multipath"
-RPROVIDES:${PN} += "device-mapper-multipath"
-RPROVIDES:${PN}-libs += "device-mapper-multipath-libs"
-
-FILES:${PN}-dev += "${base_libdir}/pkgconfig"
-
-PACKAGES =+ "kpartx"
-FILES:kpartx = "${base_sbindir}/kpartx \
- ${nonarch_base_libdir}/udev/kpartx_id \
- "
-
-RDEPENDS:${PN} += "kpartx"
-PARALLEL_MAKE = ""
diff --git a/meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.8.bb b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.8.bb
new file mode 100644
index 0000000000..e9f01bd1fe
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.8.bb
@@ -0,0 +1,125 @@
+SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver"
+
+DESCRIPTION = "It provides tools to manage multipath devices \
+by instructing the device-mapper kernel module what to do. These \
+tools include: \
+1. multipath - Scan the system for multipath devices and assemble them.\
+2. multipathd - Detects when paths fail and execs multipath to update \
+things.\
+3. mpathpersist - Persistent reservation management feature allows \
+cluster management software to manage persistent reservation through \
+mpath device. It processes management requests from callers and hides \
+the management task details. It also handles persistent reservation \
+management of data path life cycle and state changes.\
+4. kpartx - This tool, derived from util-linux's partx, reads partition \
+tables on specified device and create device maps over partitions \
+segments detected. It is called from hotplug upon device maps creation \
+and deletion"
+
+HOMEPAGE = "http://christophe.varoqui.free.fr/"
+
+DEPENDS = "libdevmapper \
+ lvm2 \
+ libaio \
+ liburcu \
+ readline \
+ udev \
+ json-c \
+ "
+
+LICENSE = "GPL-2.0-only"
+
+SRC_URI = "git://github.com/opensvc/multipath-tools.git;protocol=https;branch=master \
+ file://multipathd.oe \
+ file://multipath.conf.example \
+ file://0001-RH-fixup-udev-rules-for-redhat.patch \
+ file://0002-RH-Remove-the-property-blacklist-exception-builtin.patch \
+ file://0003-RH-don-t-start-without-a-config-file.patch \
+ file://0004-RH-use-rpm-optflags-if-present.patch \
+ file://0005-RH-add-mpathconf.patch \
+ file://0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \
+ file://0007-RH-warn-on-invalid-regex-instead-of-failing.patch \
+ file://0008-RH-reset-default-find_mutipaths-value-to-off.patch \
+ file://0009-multipath-tools-modify-create-config.mk-for-cross-co.patch \
+ file://0010-Subject-PATCH-Always-use-devmapper.patch \
+ file://0011-fix-bug-of-do_compile-and-do_install.patch \
+ file://0012-add-explicit-dependency-on-libraries.patch \
+ file://0001-libmultipath-always-use-glibc-basename.patch \
+ "
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+SRCREV = "3daacfdfd110b24a3a7d5a276dcf8512b7039199"
+
+S = "${WORKDIR}/git"
+
+inherit systemd pkgconfig
+
+SYSTEMD_SERVICE:${PN} = "multipathd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+# multipath-tools includes a copy of the valgrind.h header
+# file and uses the macros to suppress some false positives. However,
+# that only works on ARM when thumb is disabled. Otherwise one gets:
+# Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3'
+# ../Makefile.inc:66: recipe for target 'debug.o' failed
+ARM_INSTRUCTION_SET:armv4 = "arm"
+ARM_INSTRUCTION_SET:armv5 = "arm"
+
+# The exact version of SYSTEMD does not matter but should be greater than 209.
+#
+EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \
+ OPTFLAGS="${CFLAGS}" \
+ prefix=${prefix} \
+ bindir=${base_sbindir} \
+ LIB=${base_libdir} libdir=${base_libdir}/multipath \
+ usrlibdir=${libdir} \
+ plugindir=${base_libdir}/multipath \
+ unitdir=${systemd_system_unitdir} \
+ libudevdir=${nonarch_base_libdir}/udev \
+ modulesloaddir=${sysconfdir}/modules-load.d \
+ tmpfilesdir=${sysconfdir}/tmpfiles.d \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \
+ '
+
+do_install() {
+ oe_runmake install
+
+ # We copy an initscript, but do not start multipathd at init time.
+ #
+ if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)};then
+ install -d ${D}${sysconfdir}/init.d
+ cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd
+ fi
+
+ sed -i "s:/usr/lib/udev/kpartx_id:${nonarch_base_libdir}/udev/kpartx_id:g" \
+ ${D}${nonarch_base_libdir}/udev/rules.d/11-dm-mpath.rules
+
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/multipath.conf.example \
+ ${D}${sysconfdir}/multipath.conf.example
+}
+
+FILES:${PN} += "${systemd_system_unitdir}"
+FILES:${PN}-dbg += "${base_libdir}/multipath/.debug"
+
+PACKAGES =+ "${PN}-libs"
+FILES:${PN}-libs = "${base_libdir}/lib*.so.* \
+ ${base_libdir}/multipath/lib*.so*"
+RDEPENDS:${PN} += "${PN}-libs bash libgcc"
+
+PROVIDES += "device-mapper-multipath"
+RPROVIDES:${PN} += "device-mapper-multipath"
+RPROVIDES:${PN}-libs += "device-mapper-multipath-libs"
+
+FILES:${PN}-dev += "${base_libdir}/pkgconfig"
+
+PACKAGES =+ "kpartx"
+FILES:kpartx = "${base_sbindir}/kpartx \
+ ${nonarch_base_libdir}/udev/kpartx_id \
+ "
+
+RDEPENDS:${PN} += "kpartx"
+PARALLEL_MAKE = ""
diff --git a/meta-oe/recipes-support/nano/nano_6.4.bb b/meta-oe/recipes-support/nano/nano_6.4.bb
deleted file mode 100644
index d499362308..0000000000
--- a/meta-oe/recipes-support/nano/nano_6.4.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Small and friendly console text editor"
-DESCRIPTION = "GNU nano (Nano's ANOther editor, or \
-Not ANOther editor) is an enhanced clone of the \
-Pico text editor."
-HOMEPAGE = "http://www.nano-editor.org/"
-SECTION = "console/utils"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
-
-DEPENDS = "ncurses file"
-RDEPENDS:${PN} = "ncurses-terminfo-base"
-
-PV_MAJOR = "${@d.getVar('PV').split('.')[0]}"
-
-SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
-SRC_URI[sha256sum] = "4199ae8ca78a7796de56de1a41b821dc47912c0307e9816b56cc317df34661c0"
-
-UPSTREAM_CHECK_URI = "https://ftp.gnu.org/gnu/nano"
-
-inherit autotools gettext pkgconfig
-
-PACKAGECONFIG[tiny] = "--enable-tiny,"
diff --git a/meta-oe/recipes-support/nano/nano_7.2.bb b/meta-oe/recipes-support/nano/nano_7.2.bb
new file mode 100644
index 0000000000..0642287c98
--- /dev/null
+++ b/meta-oe/recipes-support/nano/nano_7.2.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Small and friendly console text editor"
+DESCRIPTION = "GNU nano (Nano's ANOther editor, or \
+Not ANOther editor) is an enhanced clone of the \
+Pico text editor."
+HOMEPAGE = "http://www.nano-editor.org/"
+SECTION = "console/utils"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+
+DEPENDS = "ncurses file"
+RDEPENDS:${PN} = "ncurses-terminfo-base"
+
+PV_MAJOR = "${@d.getVar('PV').split('.')[0]}"
+
+SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
+SRC_URI[sha256sum] = "86f3442768bd2873cec693f83cdf80b4b444ad3cc14760b74361474fc87a4526"
+
+UPSTREAM_CHECK_URI = "https://ftp.gnu.org/gnu/nano"
+
+inherit autotools gettext pkgconfig
+
+PACKAGECONFIG[tiny] = "--enable-tiny,"
diff --git a/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch b/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch
index 9f2faaa529..6b51f992f5 100644
--- a/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch
+++ b/meta-oe/recipes-support/ne10/ne10/0001-CMakeLists.txt-Remove-mthumb-interwork.patch
@@ -12,6 +12,8 @@ where this option is absent
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
CMakeLists.txt | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch b/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch
index a8fea82dc3..cb99daf78c 100644
--- a/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch
+++ b/meta-oe/recipes-support/ne10/ne10/0001-Dont-specify-march-explicitly.patch
@@ -15,6 +15,8 @@ Fixes
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
CMakeLists.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-support/ne10/ne10_1.2.1.bb b/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
index 0e16b15c97..b10c23984d 100644
--- a/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
+++ b/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
@@ -11,19 +11,19 @@ SRC_URI = "git://github.com/projectNe10/Ne10.git;branch=master;protocol=https \
SRCREV = "18c4c982a595dad069cd8df4932aefb1d257591f"
S = "${WORKDIR}/git"
-PV .= "gitr+${SRCPV}"
+PV .= "+git"
inherit cmake
# Incompatible with archs other than armv7, armv7ve and aarch64
COMPATIBLE_MACHINE = "(^$)"
COMPATIBLE_MACHINE:aarch64 = "(.*)"
-COMPATIBLE_MACHINE:armv7a = "(.*)"
-COMPATIBLE_MACHINE:armv7ve = "(.*)"
+COMPATIBLE_MACHINE:armv7a = "${@bb.utils.contains("TUNE_FEATURES","neon","(.*)","(^$)",d)}"
+COMPATIBLE_MACHINE:armv7ve = "${@bb.utils.contains("TUNE_FEATURES","neon","(.*)","(^$)",d)}"
NE10_TARGET_ARCH = ""
NE10_TARGET_ARCH:aarch64 = "aarch64"
-NE10_TARGET_ARCH:armv7a = "armv7"
-NE10_TARGET_ARCH:armv7ve = "armv7"
+NE10_TARGET_ARCH:armv7a = "${@bb.utils.contains("TUNE_FEATURES","neon","armv7","",d)}"
+NE10_TARGET_ARCH:armv7ve = "${@bb.utils.contains("TUNE_FEATURES","neon","armv7","",d)}"
EXTRA_OECMAKE = '-DGNULINUX_PLATFORM=ON -DNE10_BUILD_SHARED=ON -DNE10_LINUX_TARGET_ARCH="${NE10_TARGET_ARCH}"'
diff --git a/meta-oe/recipes-support/neon/neon/0001-Disable-installing-documentation.patch b/meta-oe/recipes-support/neon/neon/0001-Disable-installing-documentation.patch
index 1f63df27ac..177a71ec0a 100644
--- a/meta-oe/recipes-support/neon/neon/0001-Disable-installing-documentation.patch
+++ b/meta-oe/recipes-support/neon/neon/0001-Disable-installing-documentation.patch
@@ -7,6 +7,8 @@ It does not build
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/neon/neon_0.32.4.bb b/meta-oe/recipes-support/neon/neon_0.32.4.bb
deleted file mode 100644
index c16a2c10a7..0000000000
--- a/meta-oe/recipes-support/neon/neon_0.32.4.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-SUMMARY = "An HTTP and WebDAV client library with a C interface"
-HOMEPAGE = "http://www.webdav.org/neon/"
-SECTION = "libs"
-LICENSE = "LGPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://src/COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a \
- file://src/ne_utils.h;beginline=1;endline=20;md5=34c8e338bfa0237561e68d30c3c71133"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/n/neon27/neon27_${PV}.orig.tar.gz \
- file://pkgconfig.patch \
- file://0001-Disable-installing-documentation.patch \
- file://run-ptest \
- "
-
-SRC_URI[sha256sum] = "1bcdaabb63206b5e00c9a8c4b3672168b523b49eb559c5a486e3256463af34fd"
-
-inherit autotools-brokensep binconfig-disabled lib_package pkgconfig ptest
-
-# Enable gnutls or openssl, not both
-PACKAGECONFIG ?= "expat gnutls libproxy webdav zlib nls"
-PACKAGECONFIG:class-native = "expat gnutls webdav zlib nls"
-PACKAGECONFIG:remove:libc-musl = "nls"
-
-PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat"
-PACKAGECONFIG[gnutls] = "--with-ssl=gnutls,,gnutls"
-PACKAGECONFIG[gssapi] = "--with-gssapi,--without-gssapi,krb5"
-PACKAGECONFIG[libproxy] = "--with-libproxy,--without-libproxy,libproxy"
-PACKAGECONFIG[libxml2] = "--with-libxml2,--without-libxml2,libxml2"
-PACKAGECONFIG[nls] = ",--disable-nls,gettext-native"
-PACKAGECONFIG[openssl] = "--with-ssl=openssl,,openssl"
-PACKAGECONFIG[webdav] = "--enable-webdav,--disable-webdav,"
-PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
-
-EXTRA_OECONF += "--enable-shared --enable-threadsafe-ssl=posix"
-
-# Do not install into /usr/local
-EXTRA_OEMAKE:append:class-native = "prefix=${prefix_native}"
-
-do_configure:prepend() {
- echo "${PV}" > ${S}/.version
-}
-
-do_compile:append() {
- if ${@bb.utils.contains('PACKAGECONFIG', 'nls', 'true', 'false', d)}; then
- oe_runmake compile-gmo
- fi
- oe_runmake -C test
-}
-
-do_install_ptest(){
- BASIC_TESTS="auth basic redirect request session socket string-tests \
- stubs uri-tests util-tests"
- DAV_TESTS="acl3744 lock oldacl props xml xmlreq"
- mkdir "${D}${PTEST_PATH}/test"
- for i in ${BASIC_TESTS} ${DAV_TESTS}
- do
- install -m 0755 "${B}/test/${i}" \
- "${D}${PTEST_PATH}/test"
- done
-}
-
-BINCONFIG = "${bindir}/neon-config"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/neon/neon_0.33.0.bb b/meta-oe/recipes-support/neon/neon_0.33.0.bb
new file mode 100644
index 0000000000..a0333f4560
--- /dev/null
+++ b/meta-oe/recipes-support/neon/neon_0.33.0.bb
@@ -0,0 +1,63 @@
+SUMMARY = "An HTTP and WebDAV client library with a C interface"
+HOMEPAGE = "http://www.webdav.org/neon/"
+SECTION = "libs"
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://src/COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a \
+ file://src/ne_utils.h;beginline=1;endline=20;md5=34c8e338bfa0237561e68d30c3c71133"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/n/neon27/neon27_${PV}.orig.tar.gz \
+ file://pkgconfig.patch \
+ file://0001-Disable-installing-documentation.patch \
+ file://run-ptest \
+ "
+
+SRC_URI[sha256sum] = "659a5cc9cea05e6e7864094f1e13a77abbbdbab452f04d751a8c16a9447cf4b8"
+
+inherit autotools-brokensep binconfig-disabled lib_package pkgconfig ptest
+
+# Enable gnutls or openssl, not both
+PACKAGECONFIG ?= "expat gnutls libproxy webdav zlib nls"
+PACKAGECONFIG:class-native = "expat gnutls webdav zlib nls"
+PACKAGECONFIG:remove:libc-musl = "nls"
+
+PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat"
+PACKAGECONFIG[gnutls] = "--with-ssl=gnutls,,gnutls"
+PACKAGECONFIG[gssapi] = "--with-gssapi,--without-gssapi,krb5"
+PACKAGECONFIG[libproxy] = "--with-libproxy,--without-libproxy,libproxy"
+PACKAGECONFIG[libxml2] = "--with-libxml2,--without-libxml2,libxml2"
+PACKAGECONFIG[nls] = ",--disable-nls,gettext-native"
+PACKAGECONFIG[openssl] = "--with-ssl=openssl,,openssl"
+PACKAGECONFIG[webdav] = "--enable-webdav,--disable-webdav,"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
+
+EXTRA_OECONF += "--enable-shared --enable-threadsafe-ssl=posix"
+
+# Do not install into /usr/local
+EXTRA_OEMAKE:append:class-native = " prefix=${prefix_native}"
+
+do_configure:prepend() {
+ echo "${PV}" > ${S}/.version
+}
+
+do_compile:append() {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'nls', 'true', 'false', d)}; then
+ oe_runmake compile-gmo
+ fi
+ oe_runmake -C test
+}
+
+do_install_ptest(){
+ BASIC_TESTS="auth basic redirect request session socket string-tests \
+ stubs uri-tests util-tests"
+ DAV_TESTS="acl3744 lock oldacl props xml xmlreq"
+ mkdir "${D}${PTEST_PATH}/test"
+ for i in ${BASIC_TESTS} ${DAV_TESTS}
+ do
+ install -m 0755 "${B}/test/${i}" \
+ "${D}${PTEST_PATH}/test"
+ done
+}
+
+BINCONFIG = "${bindir}/neon-config"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch b/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch
index 5a8b046039..6721d2b5e5 100644
--- a/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch
+++ b/meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch
@@ -9,6 +9,8 @@ defines from sys/cdefs.h is used
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lmon16m.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-support/nspr/nspr/0001-Fix-Wincompatible-function-pointer-types.patch b/meta-oe/recipes-support/nspr/nspr/0001-Fix-Wincompatible-function-pointer-types.patch
new file mode 100644
index 0000000000..8515075fe0
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/0001-Fix-Wincompatible-function-pointer-types.patch
@@ -0,0 +1,39 @@
+From d24dc9bebaefbd8abf32707bad5efc0c811c0cd4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 18 Jan 2023 13:04:56 -0800
+Subject: [PATCH] Fix -Wincompatible-function-pointer-types
+
+Fixes warnings with clang16
+testfile.c:576:31: error: incompatible function pointer types passing 'PRInt32 (void *)' (aka 'int (void *)') to parameter of type 'void (*)(void *)' [-Wincompatible-function-pointe r-types]
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ pr/tests/testfile.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pr/tests/testfile.c b/pr/tests/testfile.c
+index 79d8a05..42aa6a7 100644
+--- a/pr/tests/testfile.c
++++ b/pr/tests/testfile.c
+@@ -123,7 +123,7 @@ PRThread* create_new_thread(PRThreadType type,
+ if (native_thread) {
+ #if defined(_PR_PTHREADS)
+ pthread_t tid;
+- if (!pthread_create(&tid, NULL, start, arg)) {
++ if (!pthread_create(&tid, NULL, (void*(*)(void*))start, arg)) {
+ return((PRThread *) tid);
+ }
+ else {
+@@ -573,7 +573,7 @@ static PRInt32 RunDirTest(void)
+
+ thrarg.done= 0;
+ t = create_new_thread(PR_USER_THREAD,
+- DirTest, &thrarg,
++ (void (*)(void *))DirTest, &thrarg,
+ PR_PRIORITY_NORMAL,
+ PR_LOCAL_THREAD,
+ PR_UNJOINABLE_THREAD,
+--
+2.39.1
+
diff --git a/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch b/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch
index d2b9bf6420..09855a03dc 100644
--- a/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch
+++ b/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch
@@ -1,4 +1,4 @@
-From 147f3c2acbd96d44025cec11800ded0282327764 Mon Sep 17 00:00:00 2001
+From 5f6fcaeb0b7a319c8afd32ddb48b3515b63a6c0c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 18 Sep 2017 17:22:43 -0700
Subject: [PATCH] md: Fix build with musl
@@ -6,24 +6,17 @@ Subject: [PATCH] md: Fix build with musl
The MIPS specific header <sgidefs.h> is not provided by musl
linux kernel headers provide <asm/sgidefs.h> which has same definitions
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
pr/include/md/_linux.cfg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
+diff --git a/pr/include/md/_linux.cfg b/pr/include/md/_linux.cfg
+index aa3af78..899826f 100644
--- a/pr/include/md/_linux.cfg
+++ b/pr/include/md/_linux.cfg
-@@ -499,7 +499,7 @@
- #elif defined(__mips__)
-
- /* For _ABI64 */
--#include <sgidefs.h>
-+#include <asm/sgidefs.h>
-
- #ifdef __MIPSEB__
- #define IS_BIG_ENDIAN 1
@@ -511,7 +511,7 @@
#error "Unknown MIPS endianness."
#endif
diff --git a/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch b/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch
index 3a04d426a8..dab2a4e291 100644
--- a/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch
+++ b/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch
@@ -1,4 +1,4 @@
-From 95bda64fb4cf1825fea745e918cfe8202843f0ba Mon Sep 17 00:00:00 2001
+From 4760065a58153e4dae24e4e437a5136592c624bc Mon Sep 17 00:00:00 2001
From: Marek Vasut <marex@denx.de>
Date: Sat, 30 Jan 2016 07:18:02 +0100
Subject: [PATCH] Add nios2 support
@@ -7,15 +7,14 @@ Add support for the nios2 CPU.
Signed-off-by: Marek Vasut <marex@denx.de>
Upstream-Status: Submitted [ https://bugzilla.mozilla.org/show_bug.cgi?id=1244421 ]
+
---
- nspr/pr/include/md/_linux.cfg | 45 +++++++++++++++++++++++++++++++++++++++++++
- nspr/pr/include/md/_linux.h | 14 ++++++++++++++
- 2 files changed, 59 insertions(+)
+ pr/include/md/_linux.cfg | 45 +++++++++++++++++++++++++++++++++++
+ pr/include/md/_linux.h | 4 +++-
+ 2 files changed, 48 insertions(+), 1 deletion(-)
-Index: nspr/pr/include/md/_linux.cfg
-===================================================================
---- nspr.orig/pr/include/md/_linux.cfg
-+++ nspr/pr/include/md/_linux.cfg
+--- a/pr/include/md/_linux.cfg
++++ b/pr/include/md/_linux.cfg
@@ -975,6 +975,51 @@
#define PR_BYTES_PER_WORD_LOG2 2
#define PR_BYTES_PER_DWORD_LOG2 3
@@ -68,10 +67,8 @@ Index: nspr/pr/include/md/_linux.cfg
#elif defined(__or1k__)
#undef IS_LITTLE_ENDIAN
-Index: nspr/pr/include/md/_linux.h
-===================================================================
---- nspr.orig/pr/include/md/_linux.h
-+++ nspr/pr/include/md/_linux.h
+--- a/pr/include/md/_linux.h
++++ b/pr/include/md/_linux.h
@@ -55,6 +55,8 @@
#define _PR_SI_ARCHITECTURE "avr32"
#elif defined(__m32r__)
@@ -81,22 +78,12 @@ Index: nspr/pr/include/md/_linux.h
#elif defined(__or1k__)
#define _PR_SI_ARCHITECTURE "or1k"
#elif defined(__riscv) && (__riscv_xlen == 32)
-@@ -129,6 +131,18 @@ extern PRInt32 _PR_x86_64_AtomicSet(PRIn
+@@ -143,7 +145,7 @@ extern PRInt32 _PR_x86_64_AtomicSet(PRIn
#define _MD_ATOMIC_SET _PR_x86_64_AtomicSet
#endif
-+#if defined(__nios2__)
-+#if defined(__GNUC__)
-+/* Use GCC built-in functions */
-+#define _PR_HAVE_ATOMIC_OPS
-+#define _MD_INIT_ATOMIC()
-+#define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1)
-+#define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1)
-+#define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i)
-+#define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv)
-+#endif
-+#endif
-+
- #if defined(__or1k__)
+-#if defined(__loongarch__)
++#if defined(__loongarch__) || defined(__nios2__)
#if defined(__GNUC__)
/* Use GCC built-in functions */
+ #define _PR_HAVE_ATOMIC_OPS
diff --git a/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch b/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch
deleted file mode 100644
index bde715c5dc..0000000000
--- a/meta-oe/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-the $srcdir is not defined at the time of gnu-configurize.
-
-Upstream-Status: Inappropriate [OE-Core specific]
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-
-Index: nspr/configure.in
-===================================================================
---- nspr.orig/configure.in
-+++ nspr/configure.in
-@@ -8,7 +8,7 @@ AC_PREREQ(2.61)
- AC_INIT
- AC_CONFIG_SRCDIR([pr/include/nspr.h])
-
--AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
-+AC_CONFIG_AUX_DIR(build/autoconf)
- AC_CANONICAL_TARGET
-
- dnl ========================================================
diff --git a/meta-oe/recipes-support/nspr/nspr_4.29.bb b/meta-oe/recipes-support/nspr/nspr_4.29.bb
deleted file mode 100644
index 92c5234c34..0000000000
--- a/meta-oe/recipes-support/nspr/nspr_4.29.bb
+++ /dev/null
@@ -1,200 +0,0 @@
-SUMMARY = "Netscape Portable Runtime Library"
-HOMEPAGE = "http://www.mozilla.org/projects/nspr/"
-LICENSE = "GPL-2.0-only | MPL-2.0 | LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://configure.in;beginline=3;endline=6;md5=90c2fdee38e45d6302abcfe475c8b5c5 \
- file://Makefile.in;beginline=4;endline=38;md5=beda1dbb98a515f557d3e58ef06bca99"
-SECTION = "libs/network"
-
-SRC_URI = "http://ftp.mozilla.org/pub/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz \
- file://remove-rpath-from-tests.patch \
- file://fix-build-on-x86_64.patch \
- file://remove-srcdir-from-configure-in.patch \
- file://0002-Add-nios2-support.patch \
- file://0001-md-Fix-build-with-musl.patch \
- file://Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch \
- file://0001-config-nspr-config.in-don-t-pass-LDFLAGS.patch \
- file://nspr.pc.in \
-"
-
-CACHED_CONFIGUREVARS:append:libc-musl = " CFLAGS='${CFLAGS} -D_PR_POLL_AVAILABLE \
- -D_PR_HAVE_OFF64_T -D_PR_INET6 -D_PR_HAVE_INET_NTOP \
- -D_PR_HAVE_GETHOSTBYNAME2 -D_PR_HAVE_GETADDRINFO \
- -D_PR_INET6_PROBE -DNO_DLOPEN_NULL'"
-
-UPSTREAM_CHECK_URI = "http://ftp.mozilla.org/pub/nspr/releases/"
-UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+)/"
-
-SRC_URI[md5sum] = "a546926d3c8e887be02c668c1293da92"
-SRC_URI[sha256sum] = "22286bdb8059d74632cc7c2865c139e63953ecfb33bf4362ab58827e86e92582"
-
-CVE_PRODUCT = "netscape_portable_runtime"
-
-S = "${WORKDIR}/nspr-${PV}/nspr"
-
-RDEPENDS:${PN}-dev += "perl"
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-TESTS = " \
- accept \
- acceptread \
- acceptreademu \
- affinity \
- alarm \
- anonfm \
- atomic \
- attach \
- bigfile \
- cleanup \
- cltsrv \
- concur \
- cvar \
- cvar2 \
- dlltest \
- dtoa \
- errcodes \
- exit \
- fdcach \
- fileio \
- foreign \
- formattm \
- fsync \
- gethost \
- getproto \
- i2l \
- initclk \
- inrval \
- instrumt \
- intrio \
- intrupt \
- io_timeout \
- ioconthr \
- join \
- joinkk \
- joinku \
- joinuk \
- joinuu \
- layer \
- lazyinit \
- libfilename \
- lltest \
- lock \
- lockfile \
- logfile \
- logger \
- many_cv \
- multiwait \
- nameshm1 \
- nblayer \
- nonblock \
- ntioto \
- ntoh \
- op_2long \
- op_excl \
- op_filnf \
- op_filok \
- op_nofil \
- parent \
- parsetm \
- peek \
- perf \
- pipeping \
- pipeping2 \
- pipeself \
- poll_nm \
- poll_to \
- pollable \
- prftest \
- primblok \
- provider \
- prpollml \
- ranfile \
- randseed \
- reinit \
- rwlocktest \
- sel_spd \
- selct_er \
- selct_nm \
- selct_to \
- selintr \
- sema \
- semaerr \
- semaping \
- sendzlf \
- server_test \
- servr_kk \
- servr_uk \
- servr_ku \
- servr_uu \
- short_thread \
- sigpipe \
- socket \
- sockopt \
- sockping \
- sprintf \
- stack \
- stdio \
- str2addr \
- strod \
- switch \
- system \
- testbit \
- testfile \
- threads \
- timemac \
- timetest \
- tpd \
- udpsrv \
- vercheck \
- version \
- writev \
- xnotify \
- zerolen"
-
-inherit autotools multilib_script
-
-MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/nspr-config"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
-# Do not install nspr in usr/include, but in usr/include/nspr, the
-# preferred path upstream.
-EXTRA_OECONF += "--includedir=${includedir}/nspr"
-
-EXTRA_OEMAKE:append:class-native = " EXTRA_LIBS='-lpthread -lrt -ldl'"
-
-do_compile:prepend() {
- oe_runmake CROSS_COMPILE=1 CFLAGS="-DXP_UNIX ${BUILD_CFLAGS}" LDFLAGS="" CC="${BUILD_CC}" -C config export
-}
-
-do_compile:append() {
- oe_runmake -C pr/tests
-}
-
-do_install:append() {
- install -D ${WORKDIR}/nspr.pc.in ${D}${libdir}/pkgconfig/nspr.pc
- sed -i \
- -e 's:NSPRVERSION:${PV}:g' \
- -e 's:OEPREFIX:${prefix}:g' \
- -e 's:OELIBDIR:${libdir}:g' \
- -e 's:OEINCDIR:${includedir}:g' \
- -e 's:OEEXECPREFIX:${exec_prefix}:g' \
- ${D}${libdir}/pkgconfig/nspr.pc
-
- mkdir -p ${D}${libdir}/nspr/tests
- install -m 0755 ${S}/pr/tests/runtests.pl ${D}${libdir}/nspr/tests
- install -m 0755 ${S}/pr/tests/runtests.sh ${D}${libdir}/nspr/tests
- cd ${B}/pr/tests
- install -m 0755 ${TESTS} ${D}${libdir}/nspr/tests
-
- # delete compile-et.pl and perr.properties from ${bindir} because these are
- # only used to generate prerr.c and prerr.h files from prerr.et at compile
- # time
- rm ${D}${bindir}/compile-et.pl ${D}${bindir}/prerr.properties
-}
-
-FILES:${PN} = "${libdir}/lib*.so"
-FILES:${PN}-dev = "${bindir}/* ${libdir}/nspr/tests/* ${libdir}/pkgconfig \
- ${includedir}/* ${datadir}/aclocal/* "
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/nspr/nspr_4.35.bb b/meta-oe/recipes-support/nspr/nspr_4.35.bb
new file mode 100644
index 0000000000..f8d329398b
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr_4.35.bb
@@ -0,0 +1,199 @@
+SUMMARY = "Netscape Portable Runtime Library"
+HOMEPAGE = "http://www.mozilla.org/projects/nspr/"
+LICENSE = "GPL-2.0-only | MPL-2.0 | LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://configure.in;beginline=3;endline=6;md5=90c2fdee38e45d6302abcfe475c8b5c5 \
+ file://Makefile.in;beginline=4;endline=38;md5=beda1dbb98a515f557d3e58ef06bca99"
+SECTION = "libs/network"
+
+SRC_URI = "http://ftp.mozilla.org/pub/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz \
+ file://remove-rpath-from-tests.patch \
+ file://fix-build-on-x86_64.patch \
+ file://0002-Add-nios2-support.patch \
+ file://0001-md-Fix-build-with-musl.patch \
+ file://Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch \
+ file://0001-config-nspr-config.in-don-t-pass-LDFLAGS.patch \
+ file://0001-Fix-Wincompatible-function-pointer-types.patch \
+ file://nspr.pc.in \
+ "
+
+CACHED_CONFIGUREVARS:append:libc-musl = " CFLAGS='${CFLAGS} -D_PR_POLL_AVAILABLE \
+ -D_PR_HAVE_LARGE_OFF_T -D_PR_INET6 -D_PR_HAVE_INET_NTOP \
+ -D_PR_HAVE_GETHOSTBYNAME2 -D_PR_HAVE_GETADDRINFO \
+ -D_PR_INET6_PROBE -DNO_DLOPEN_NULL'"
+
+UPSTREAM_CHECK_URI = "http://ftp.mozilla.org/pub/nspr/releases/"
+UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+)/"
+
+SRC_URI[sha256sum] = "7ea3297ea5969b5d25a5dd8d47f2443cda88e9ee746301f6e1e1426f8a6abc8f"
+
+CVE_PRODUCT = "netscape_portable_runtime"
+
+S = "${WORKDIR}/nspr-${PV}/nspr"
+
+RDEPENDS:${PN}-dev += "perl"
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+TESTS = " \
+ accept \
+ acceptread \
+ acceptreademu \
+ affinity \
+ alarm \
+ anonfm \
+ atomic \
+ attach \
+ bigfile \
+ cleanup \
+ cltsrv \
+ concur \
+ cvar \
+ cvar2 \
+ dlltest \
+ dtoa \
+ errcodes \
+ exit \
+ fdcach \
+ fileio \
+ foreign \
+ formattm \
+ fsync \
+ gethost \
+ getproto \
+ i2l \
+ initclk \
+ inrval \
+ instrumt \
+ intrio \
+ intrupt \
+ io_timeout \
+ ioconthr \
+ join \
+ joinkk \
+ joinku \
+ joinuk \
+ joinuu \
+ layer \
+ lazyinit \
+ libfilename \
+ lltest \
+ lock \
+ lockfile \
+ logfile \
+ logger \
+ many_cv \
+ multiwait \
+ nameshm1 \
+ nblayer \
+ nonblock \
+ ntioto \
+ ntoh \
+ op_2long \
+ op_excl \
+ op_filnf \
+ op_filok \
+ op_nofil \
+ parent \
+ parsetm \
+ peek \
+ perf \
+ pipeping \
+ pipeping2 \
+ pipeself \
+ poll_nm \
+ poll_to \
+ pollable \
+ prftest \
+ primblok \
+ provider \
+ prpollml \
+ ranfile \
+ randseed \
+ reinit \
+ rwlocktest \
+ sel_spd \
+ selct_er \
+ selct_nm \
+ selct_to \
+ selintr \
+ sema \
+ semaerr \
+ semaping \
+ sendzlf \
+ server_test \
+ servr_kk \
+ servr_uk \
+ servr_ku \
+ servr_uu \
+ short_thread \
+ sigpipe \
+ socket \
+ sockopt \
+ sockping \
+ sprintf \
+ stack \
+ stdio \
+ str2addr \
+ strod \
+ switch \
+ system \
+ testbit \
+ testfile \
+ threads \
+ timemac \
+ timetest \
+ tpd \
+ udpsrv \
+ vercheck \
+ version \
+ writev \
+ xnotify \
+ zerolen"
+
+inherit autotools multilib_script
+
+MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/nspr-config"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
+# Do not install nspr in usr/include, but in usr/include/nspr, the
+# preferred path upstream.
+EXTRA_OECONF += "--includedir=${includedir}/nspr"
+
+EXTRA_OEMAKE:append:class-native = " EXTRA_LIBS='-lpthread -lrt -ldl'"
+
+do_compile:prepend() {
+ oe_runmake CROSS_COMPILE=1 CFLAGS="-DXP_UNIX ${BUILD_CFLAGS}" LDFLAGS="" CC="${BUILD_CC}" -C config export
+}
+
+do_compile:append() {
+ oe_runmake -C pr/tests
+}
+
+do_install:append() {
+ install -D ${WORKDIR}/nspr.pc.in ${D}${libdir}/pkgconfig/nspr.pc
+ sed -i \
+ -e 's:NSPRVERSION:${PV}:g' \
+ -e 's:OEPREFIX:${prefix}:g' \
+ -e 's:OELIBDIR:${libdir}:g' \
+ -e 's:OEINCDIR:${includedir}:g' \
+ -e 's:OEEXECPREFIX:${exec_prefix}:g' \
+ ${D}${libdir}/pkgconfig/nspr.pc
+
+ mkdir -p ${D}${libdir}/nspr/tests
+ install -m 0755 ${S}/pr/tests/runtests.pl ${D}${libdir}/nspr/tests
+ install -m 0755 ${S}/pr/tests/runtests.sh ${D}${libdir}/nspr/tests
+ cd ${B}/pr/tests
+ install -m 0755 ${TESTS} ${D}${libdir}/nspr/tests
+
+ # delete compile-et.pl and perr.properties from ${bindir} because these are
+ # only used to generate prerr.c and prerr.h files from prerr.et at compile
+ # time
+ rm ${D}${bindir}/compile-et.pl ${D}${bindir}/prerr.properties
+}
+
+FILES:${PN} = "${libdir}/lib*.so"
+FILES:${PN}-dev = "${bindir}/* ${libdir}/nspr/tests/* ${libdir}/pkgconfig \
+ ${includedir}/* ${datadir}/aclocal/* "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch b/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
index 72ee1ee009..b7f1b01a14 100644
--- a/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
+++ b/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
@@ -1,4 +1,4 @@
-From 9937e89c22eb2f2db9a936e7bc4442857b4192f5 Mon Sep 17 00:00:00 2001
+From 7c8f367faf8848a43a414079189e10270d6c0fcc Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 18 Dec 2019 12:29:50 +0100
Subject: [PATCH] freebl: add a configure option to disable ARM HW crypto
@@ -15,10 +15,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
2 files changed, 5 insertions(+)
diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
-index b38889f..4616aac 100644
+index 7ee8736..f9b4925 100644
--- a/nss/lib/freebl/Makefile
+++ b/nss/lib/freebl/Makefile
-@@ -139,6 +139,8 @@ endif
+@@ -142,6 +142,8 @@ endif
endif
endif
endif
@@ -27,16 +27,16 @@ index b38889f..4616aac 100644
ifeq ($(CPU_ARCH),aarch64)
ifdef CC_IS_CLANG
DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2
-@@ -180,6 +182,7 @@ endif
+@@ -183,6 +185,7 @@ endif
endif
endif
endif
+endif
- ifeq ($(OS_TARGET),OSF1)
- DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD
+ ifeq (OS2,$(OS_TARGET))
+ ASFILES = mpi_x86_os2.s
diff --git a/nss/lib/freebl/gcm.c b/nss/lib/freebl/gcm.c
-index ac461b4..04cb180 100644
+index 2dae724..9ee7fc8 100644
--- a/nss/lib/freebl/gcm.c
+++ b/nss/lib/freebl/gcm.c
@@ -18,6 +18,7 @@
diff --git a/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch b/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
index eb6174a7b0..2385fd3b9d 100644
--- a/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
+++ b/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
@@ -1,4 +1,4 @@
-From 919fc5d674fae99fe21ba1351d98b75e466f425f Mon Sep 17 00:00:00 2001
+From 46ab1ca6e6fb8e1196e0665a54506dff370f8f2a Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 22 Feb 2017 11:36:11 +0200
Subject: [PATCH] nss: fix support cross compiling
@@ -10,15 +10,20 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
- nss/coreconf/arch.mk | 2 +-
+ nss/coreconf/arch.mk | 4 ++--
nss/lib/freebl/Makefile | 6 ++++++
- 2 files changed, 7 insertions(+), 1 deletion(-)
+ 2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/nss/coreconf/arch.mk b/nss/coreconf/arch.mk
-index 2012d18..78fca62 100644
+index 17e9fae..bc4180a 100644
--- a/nss/coreconf/arch.mk
+++ b/nss/coreconf/arch.mk
-@@ -30,7 +30,7 @@ OS_TEST := $(shell uname -m)
+@@ -26,11 +26,11 @@ OS_ARCH := $(subst /,_,$(shell uname -s))
+ # Attempt to differentiate between sparc and x86 Solaris
+ #
+
+-OS_TEST := $(shell uname -m)
++OS_TEST ?= $(shell uname -m)
ifeq ($(OS_TEST),i86pc)
OS_RELEASE := $(shell uname -r)_$(OS_TEST)
else
@@ -26,9 +31,9 @@ index 2012d18..78fca62 100644
+ OS_RELEASE ?= $(shell uname -r)
endif
- #
+
diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
-index 0b8c6f4..b38889f 100644
+index eeee90a..7ee8736 100644
--- a/nss/lib/freebl/Makefile
+++ b/nss/lib/freebl/Makefile
@@ -36,6 +36,12 @@ ifdef USE_64
diff --git a/meta-oe/recipes-support/nss/nss_3.74.bb b/meta-oe/recipes-support/nss/nss_3.74.bb
deleted file mode 100644
index 333bbdfef0..0000000000
--- a/meta-oe/recipes-support/nss/nss_3.74.bb
+++ /dev/null
@@ -1,284 +0,0 @@
-SUMMARY = "Mozilla's SSL and TLS implementation"
-DESCRIPTION = "Network Security Services (NSS) is a set of libraries \
-designed to support cross-platform development of \
-security-enabled client and server applications. \
-Applications built with NSS can support SSL v2 and v3, \
-TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 \
-v3 certificates, and other security standards."
-HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/"
-SECTION = "libs"
-
-DEPENDS = "sqlite3 nspr zlib nss-native"
-DEPENDS:class-native = "sqlite3-native nspr-native zlib-native"
-
-LICENSE = "(MPL-2.0 & MIT) | (MPL-2.0 & GPL-2.0-or-later & MIT) | (MPL-2.0 & LGPL-2.1-or-later & MIT)"
-
-LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \
- file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
- file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132 \
- file://nss/lib/freebl/verified/Hacl_Poly1305_256.c;beginline=1;endline=22;md5=d4096c1e4421ee56e9e0f441a8161f78"
-
-VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') + '_RTM'}"
-
-SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz \
- file://nss.pc.in \
- file://0001-nss-fix-support-cross-compiling.patch \
- file://nss-no-rpath-for-cross-compiling.patch \
- file://nss-fix-incorrect-shebang-of-perl.patch \
- file://disable-Wvarargs-with-clang.patch \
- file://pqg.c-ULL_addend.patch \
- file://blank-cert9.db \
- file://blank-key4.db \
- file://system-pkcs11.txt \
- file://nss-fix-nsinstall-build.patch \
- file://0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch \
- "
-SRC_URI[sha256sum] = "88928811f9f40f87d42e2eaccdf6e454562e51486067f2ddbe90aa47ea6cd056"
-
-UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases"
-UPSTREAM_CHECK_REGEX = "NSS_(?P<pver>.+)_release_notes"
-
-inherit siteinfo
-
-TD = "${S}/tentative-dist"
-TDS = "${S}/tentative-dist-staging"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-CFLAGS:append:class-native = " -D_XOPEN_SOURCE "
-
-do_configure:prepend:libc-musl () {
- sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk
-}
-
-do_configure:prepend:powerpc64le:toolchain-clang () {
- sed -i -e 's/\-std=c99/\-std=gnu99/g' ${S}/nss/coreconf/command.mk
-}
-
-do_configure:prepend:powerpc64:toolchain-clang () {
- sed -i -e 's/\-std=c99/\-std=gnu99/g' ${S}/nss/coreconf/command.mk
-}
-
-do_compile:prepend:class-native() {
- export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE}/nspr
- export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE}
-}
-
-do_compile:prepend:class-nativesdk() {
- export LDFLAGS=""
-}
-
-do_compile:prepend:class-native() {
- # Need to set RPATH so that chrpath will do its job correctly
- RPATH="-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE}"
-}
-
-do_compile() {
- export NSPR_INCLUDE_DIR=${STAGING_INCDIR}/nspr
-
- export CROSS_COMPILE=1
- export NATIVE_CC="${BUILD_CC}"
- # Additional defines needed on Centos 7
- export NATIVE_FLAGS="${BUILD_CFLAGS} -DLINUX -Dlinux"
- export BUILD_OPT=1
-
- # POSIX.1-2001 states that the behaviour of getcwd() when passing a null
- # pointer as the buf argument, is unspecified.
- export NATIVE_FLAGS="${NATIVE_FLAGS} -DGETCWD_CANT_MALLOC"
-
- export FREEBL_NO_DEPEND=1
- export FREEBL_LOWHASH=1
-
- export LIBDIR=${libdir}
- export MOZILLA_CLIENT=1
- export NS_USE_GCC=1
- export NSS_USE_SYSTEM_SQLITE=1
- export NSS_ENABLE_ECC=1
- export NSS_ENABLE_WERROR=0
-
- ${@bb.utils.contains("TUNE_FEATURES", "crypto", "export NSS_USE_ARM_HW_CRYPTO=1", "", d)}
-
- export OS_RELEASE=3.4
- export OS_TARGET=Linux
- export OS_ARCH=Linux
-
- if [ "${TARGET_ARCH}" = "powerpc" ]; then
- OS_TEST=ppc
- elif [ "${TARGET_ARCH}" = "powerpc64" -o "${TARGET_ARCH}" = "powerpc64le" ]; then
- OS_TEST=ppc64
- elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
- OS_TEST=mips
- elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
- OS_TEST="aarch64"
- else
- OS_TEST="${TARGET_ARCH}"
- fi
-
- if [ "${SITEINFO_BITS}" = "64" ]; then
- export USE_64=1
- elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
- export USE_X32=1
- fi
-
- export NSS_DISABLE_GTESTS=1
- # We can modify CC in the environment, but if we set it via an
- # argument to make, nsinstall, a host program, will also build with it!
- #
- # nss pretty much does its own thing with CFLAGS, so we put them into CC.
- # Optimization will get clobbered, but most of the stuff will survive.
- # The motivation for this is to point to the correct place for debug
- # source files and CFLAGS does that. Nothing uses CCC.
- #
- export CC="${CC} ${CFLAGS}"
- make -C ./nss CCC="${CXX} -g" \
- OS_TEST=${OS_TEST} \
- RPATH="${RPATH}" \
- autobuild
-}
-
-do_compile[vardepsexclude] += "SITEINFO_BITS"
-
-do_install:prepend:class-nativesdk() {
- export LDFLAGS=""
-}
-
-do_install() {
- export CROSS_COMPILE=1
- export NATIVE_CC="${BUILD_CC}"
- export BUILD_OPT=1
-
- export FREEBL_NO_DEPEND=1
-
- export LIBDIR=${libdir}
- export MOZILLA_CLIENT=1
- export NS_USE_GCC=1
- export NSS_USE_SYSTEM_SQLITE=1
- export NSS_ENABLE_ECC=1
-
- export OS_RELEASE=3.4
- export OS_TARGET=Linux
- export OS_ARCH=Linux
-
- if [ "${TARGET_ARCH}" = "powerpc" ]; then
- OS_TEST=ppc
- elif [ "${TARGET_ARCH}" = "powerpc64" -o "${TARGET_ARCH}" = "powerpc64le" ]; then
- OS_TEST=ppc64
- elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
- OS_TEST=mips
- elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
- CPU_ARCH=aarch64
- OS_TEST="aarch64"
- else
- OS_TEST="${TARGET_ARCH}"
- fi
- if [ "${SITEINFO_BITS}" = "64" ]; then
- export USE_64=1
- elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
- export USE_X32=1
- fi
-
- export NSS_DISABLE_GTESTS=1
-
- make -C ./nss \
- CCC="${CXX}" \
- OS_TEST=${OS_TEST} \
- SOURCE_LIB_DIR="${TD}/${libdir}" \
- SOURCE_BIN_DIR="${TD}/${bindir}" \
- install
-
- install -d ${D}/${libdir}/
- for file in ${S}/dist/*.OBJ/lib/*.so; do
- echo "Installing `basename $file`..."
- cp $file ${D}/${libdir}/
- done
-
- for shared_lib in ${TD}/${libdir}/*.so.*; do
- if [ -f $shared_lib ]; then
- cp $shared_lib ${D}/${libdir}
- ln -sf $(basename $shared_lib) ${D}/${libdir}/$(basename $shared_lib .1oe)
- fi
- done
- for shared_lib in ${TD}/${libdir}/*.so; do
- if [ -f $shared_lib -a ! -e ${D}/${libdir}/$shared_lib ]; then
- cp $shared_lib ${D}/${libdir}
- fi
- done
-
- install -d ${D}/${includedir}/nss3
- install -m 644 -t ${D}/${includedir}/nss3 dist/public/nss/*
-
- install -d ${D}/${bindir}
- for binary in ${TD}/${bindir}/*; do
- install -m 755 -t ${D}/${bindir} $binary
- done
-}
-
-do_install[vardepsexclude] += "SITEINFO_BITS"
-
-do_install:append() {
- # Create empty .chk files for the NSS libraries at build time. They could
- # be regenerated at target's boot time.
- for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do
- touch ${D}/${libdir}/$file
- chmod 755 ${D}/${libdir}/$file
- done
-
- install -d ${D}${libdir}/pkgconfig/
- sed 's/%NSS_VERSION%/${PV}/' ${WORKDIR}/nss.pc.in | sed 's/%NSPR_VERSION%/4.9.2/' > ${D}${libdir}/pkgconfig/nss.pc
- sed -i s:OEPREFIX:${prefix}:g ${D}${libdir}/pkgconfig/nss.pc
- sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc
- sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc
- sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc
-}
-
-do_install:append:class-target() {
- # It used to call certutil to create a blank certificate with empty password at
- # build time, but the checksum of key4.db changes every time when certutil is called.
- # It causes non-determinism issue, so provide databases with a blank certificate
- # which are originally from output of nss in qemux86-64 build. You can get these
- # databases by:
- # certutil -N -d sql:/database/path/ --empty-password
- install -d ${D}${sysconfdir}/pki/nssdb/
- install -m 0644 ${WORKDIR}/blank-cert9.db ${D}${sysconfdir}/pki/nssdb/cert9.db
- install -m 0644 ${WORKDIR}/blank-key4.db ${D}${sysconfdir}/pki/nssdb/key4.db
- install -m 0644 ${WORKDIR}/system-pkcs11.txt ${D}${sysconfdir}/pki/nssdb/pkcs11.txt
-}
-
-PACKAGE_WRITE_DEPS += "nss-native"
-
-pkg_postinst:${PN} () {
- for I in $D${libdir}/lib*.chk; do
- DN=`dirname $I`
- BN=`basename $I .chk`
- FN=$DN/$BN.so
- shlibsign -i $FN
- if [ $? -ne 0 ]; then
- echo "shlibsign -i $FN failed"
- fi
- done
-}
-
-PACKAGES =+ "${PN}-smime"
-FILES:${PN}-smime = "\
- ${bindir}/smime \
-"
-
-FILES:${PN} = "\
- ${sysconfdir} \
- ${bindir} \
- ${libdir}/lib*.chk \
- ${libdir}/lib*.so \
- "
-
-FILES:${PN}-dev = "\
- ${libdir}/nss \
- ${libdir}/pkgconfig/* \
- ${includedir}/* \
- "
-
-RDEPENDS:${PN}-smime = "perl"
-
-BBCLASSEXTEND = "native nativesdk"
-
-# CVE-2006-5201 affects only Sun Solaris
-CVE_CHECK_IGNORE += "CVE-2006-5201"
diff --git a/meta-oe/recipes-support/nss/nss_3.98.bb b/meta-oe/recipes-support/nss/nss_3.98.bb
new file mode 100644
index 0000000000..01501362e2
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss_3.98.bb
@@ -0,0 +1,289 @@
+SUMMARY = "Mozilla's SSL and TLS implementation"
+DESCRIPTION = "Network Security Services (NSS) is a set of libraries \
+designed to support cross-platform development of \
+security-enabled client and server applications. \
+Applications built with NSS can support SSL v2 and v3, \
+TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 \
+v3 certificates, and other security standards."
+HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/"
+SECTION = "libs"
+
+DEPENDS = "sqlite3 nspr zlib nss-native"
+DEPENDS:class-native = "sqlite3-native nspr-native zlib-native"
+
+LICENSE = "(MPL-2.0 & MIT) | (MPL-2.0 & GPL-2.0-or-later & MIT) | (MPL-2.0 & LGPL-2.1-or-later & MIT)"
+
+LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \
+ file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
+ file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132 \
+ file://nss/lib/freebl/verified/Hacl_Poly1305_256.c;beginline=1;endline=22;md5=cc22f07b95d28d56baeb757df46ee7c8"
+
+VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') + '_RTM'}"
+
+SRC_URI = "http://ftp.mozilla.org/pub/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz \
+ file://nss.pc.in \
+ file://0001-nss-fix-support-cross-compiling.patch \
+ file://nss-no-rpath-for-cross-compiling.patch \
+ file://nss-fix-incorrect-shebang-of-perl.patch \
+ file://disable-Wvarargs-with-clang.patch \
+ file://pqg.c-ULL_addend.patch \
+ file://blank-cert9.db \
+ file://blank-key4.db \
+ file://system-pkcs11.txt \
+ file://nss-fix-nsinstall-build.patch \
+ file://0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch \
+ "
+SRC_URI[sha256sum] = "f549cc33d35c0601674bfacf7c6ad683c187595eb4125b423238d3e9aa4209ce"
+
+UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases"
+UPSTREAM_CHECK_REGEX = "NSS_(?P<pver>.+)_release_notes"
+
+inherit siteinfo
+
+TD = "${S}/tentative-dist"
+TDS = "${S}/tentative-dist-staging"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+CFLAGS:append:class-native = " -D_XOPEN_SOURCE "
+
+do_configure:prepend:libc-musl () {
+ sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk
+}
+
+do_configure:prepend:powerpc64le:toolchain-clang () {
+ sed -i -e 's/\-std=c99/\-std=gnu99/g' ${S}/nss/coreconf/command.mk
+}
+
+do_configure:prepend:powerpc64:toolchain-clang () {
+ sed -i -e 's/\-std=c99/\-std=gnu99/g' ${S}/nss/coreconf/command.mk
+}
+
+do_compile:prepend:class-native() {
+ export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE}/nspr
+ export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE}
+}
+
+do_compile:prepend:class-nativesdk() {
+ export LDFLAGS=""
+}
+
+do_compile:prepend:class-native() {
+ # Need to set RPATH so that chrpath will do its job correctly
+ RPATH="-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE}"
+}
+
+do_compile() {
+ export NSPR_INCLUDE_DIR=${STAGING_INCDIR}/nspr
+
+ export CROSS_COMPILE=1
+ export NATIVE_CC="${BUILD_CC}"
+ # Additional defines needed on Centos 7
+ export NATIVE_FLAGS="${BUILD_CFLAGS} -DLINUX -Dlinux"
+ export BUILD_OPT=1
+
+ # POSIX.1-2001 states that the behaviour of getcwd() when passing a null
+ # pointer as the buf argument, is unspecified.
+ export NATIVE_FLAGS="${NATIVE_FLAGS} -DGETCWD_CANT_MALLOC"
+
+ export FREEBL_NO_DEPEND=1
+ export FREEBL_LOWHASH=1
+
+ export LIBDIR=${libdir}
+ export MOZILLA_CLIENT=1
+ export NS_USE_GCC=1
+ export NSS_USE_SYSTEM_SQLITE=1
+ export NSS_ENABLE_ECC=1
+ export NSS_ENABLE_WERROR=0
+
+ ${@bb.utils.contains("TUNE_FEATURES", "crypto", "export NSS_USE_ARM_HW_CRYPTO=1", "", d)}
+
+ export OS_RELEASE=3.4
+ export OS_TARGET=Linux
+ export OS_ARCH=Linux
+
+ if [ "${TARGET_ARCH}" = "powerpc" ]; then
+ OS_TEST=ppc
+ elif [ "${TARGET_ARCH}" = "powerpc64" -o "${TARGET_ARCH}" = "powerpc64le" ]; then
+ OS_TEST=ppc64
+ elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
+ OS_TEST=mips
+ elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
+ OS_TEST="aarch64"
+ else
+ OS_TEST="${TARGET_ARCH}"
+ fi
+
+ if [ "${SITEINFO_BITS}" = "64" ]; then
+ export USE_64=1
+ elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
+ export USE_X32=1
+ fi
+
+ export NSS_DISABLE_GTESTS=1
+ # We can modify CC in the environment, but if we set it via an
+ # argument to make, nsinstall, a host program, will also build with it!
+ #
+ # nss pretty much does its own thing with CFLAGS, so we put them into CC.
+ # Optimization will get clobbered, but most of the stuff will survive.
+ # The motivation for this is to point to the correct place for debug
+ # source files and CFLAGS does that. Nothing uses CCC.
+ #
+ export CC="${CC} ${CFLAGS}"
+ make -C ./nss CCC="${CXX} -g" \
+ OS_TEST=${OS_TEST} \
+ RPATH="${RPATH}" \
+ autobuild
+}
+
+do_compile[vardepsexclude] += "SITEINFO_BITS"
+
+do_install:prepend:class-nativesdk() {
+ export LDFLAGS=""
+}
+
+do_install() {
+ export CROSS_COMPILE=1
+ export NATIVE_CC="${BUILD_CC}"
+ export BUILD_OPT=1
+
+ export FREEBL_NO_DEPEND=1
+
+ export LIBDIR=${libdir}
+ export MOZILLA_CLIENT=1
+ export NS_USE_GCC=1
+ export NSS_USE_SYSTEM_SQLITE=1
+ export NSS_ENABLE_ECC=1
+
+ export OS_RELEASE=3.4
+ export OS_TARGET=Linux
+ export OS_ARCH=Linux
+
+ if [ "${TARGET_ARCH}" = "powerpc" ]; then
+ OS_TEST=ppc
+ elif [ "${TARGET_ARCH}" = "powerpc64" -o "${TARGET_ARCH}" = "powerpc64le" ]; then
+ OS_TEST=ppc64
+ elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
+ OS_TEST=mips
+ elif [ "${TARGET_ARCH}" = "aarch64_be" ]; then
+ CPU_ARCH=aarch64
+ OS_TEST="aarch64"
+ else
+ OS_TEST="${TARGET_ARCH}"
+ fi
+ if [ "${SITEINFO_BITS}" = "64" ]; then
+ export USE_64=1
+ elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
+ export USE_X32=1
+ fi
+
+ export NSS_DISABLE_GTESTS=1
+
+ make -C ./nss \
+ CCC="${CXX}" \
+ OS_TEST=${OS_TEST} \
+ SOURCE_LIB_DIR="${TD}/${libdir}" \
+ SOURCE_BIN_DIR="${TD}/${bindir}" \
+ install
+
+ install -d ${D}/${libdir}/
+ for file in ${S}/dist/*.OBJ/lib/*.so; do
+ echo "Installing `basename $file`..."
+ cp $file ${D}/${libdir}/
+ done
+
+ for shared_lib in ${TD}/${libdir}/*.so.*; do
+ if [ -f $shared_lib ]; then
+ cp $shared_lib ${D}/${libdir}
+ ln -sf $(basename $shared_lib) ${D}/${libdir}/$(basename $shared_lib .1oe)
+ fi
+ done
+ for shared_lib in ${TD}/${libdir}/*.so; do
+ if [ -f $shared_lib -a ! -e ${D}/${libdir}/$shared_lib ]; then
+ cp $shared_lib ${D}/${libdir}
+ fi
+ done
+
+ install -d ${D}/${includedir}/nss3
+ install -m 644 -t ${D}/${includedir}/nss3 dist/public/nss/*
+
+ install -d ${D}/${bindir}
+ for binary in ${TD}/${bindir}/*; do
+ install -m 755 -t ${D}/${bindir} $binary
+ done
+}
+
+do_install[vardepsexclude] += "SITEINFO_BITS"
+
+do_install:append() {
+ # Create empty .chk files for the NSS libraries at build time. They could
+ # be regenerated at target's boot time.
+ for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do
+ touch ${D}/${libdir}/$file
+ chmod 755 ${D}/${libdir}/$file
+ done
+
+ install -d ${D}${libdir}/pkgconfig/
+ sed 's/%NSS_VERSION%/${PV}/' ${WORKDIR}/nss.pc.in | sed 's/%NSPR_VERSION%/4.9.2/' > ${D}${libdir}/pkgconfig/nss.pc
+ sed -i s:OEPREFIX:${prefix}:g ${D}${libdir}/pkgconfig/nss.pc
+ sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc
+ sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc
+ sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc
+}
+
+do_install:append:class-target() {
+ # It used to call certutil to create a blank certificate with empty password at
+ # build time, but the checksum of key4.db changes every time when certutil is called.
+ # It causes non-determinism issue, so provide databases with a blank certificate
+ # which are originally from output of nss in qemux86-64 build. You can get these
+ # databases by:
+ # certutil -N -d sql:/database/path/ --empty-password
+ install -d ${D}${sysconfdir}/pki/nssdb/
+ install -m 0644 ${WORKDIR}/blank-cert9.db ${D}${sysconfdir}/pki/nssdb/cert9.db
+ install -m 0644 ${WORKDIR}/blank-key4.db ${D}${sysconfdir}/pki/nssdb/key4.db
+ install -m 0644 ${WORKDIR}/system-pkcs11.txt ${D}${sysconfdir}/pki/nssdb/pkcs11.txt
+}
+
+PACKAGE_WRITE_DEPS += "nss-native"
+
+pkg_postinst:${PN} () {
+ for I in $D${libdir}/lib*.chk; do
+ DN=`dirname $I`
+ BN=`basename $I .chk`
+ FN=$DN/$BN.so
+ shlibsign -i $FN
+ if [ $? -ne 0 ]; then
+ echo "shlibsign -i $FN failed"
+ fi
+ done
+}
+
+PACKAGES =+ "${PN}-smime"
+FILES:${PN}-smime = "\
+ ${bindir}/smime \
+"
+
+FILES:${PN} = "\
+ ${sysconfdir} \
+ ${bindir} \
+ ${libdir}/lib*.chk \
+ ${libdir}/lib*.so \
+ "
+
+FILES:${PN}-dev = "\
+ ${libdir}/nss \
+ ${libdir}/pkgconfig/* \
+ ${includedir}/* \
+ "
+
+RDEPENDS:${PN}-smime = "perl"
+
+BBCLASSEXTEND = "native nativesdk"
+
+CVE_PRODUCT += "network_security_services"
+
+CVE_STATUS_GROUPS += "CVE_STATUS_NSS"
+CVE_STATUS_NSS[status] = "not-applicable-config: This only affect the legacy db (libnssdbm), only compiled with --enable-legacy-db"
+CVE_STATUS_NSS = "CVE-2017-11695 CVE-2017-11696 CVE-2017-11697 CVE-2017-11698"
+
+CVE_STATUS[CVE-2022-3479] = "not-applicable-config: vulnerability was introduced in 3.77 and fixed in 3.87"
diff --git a/meta-oe/recipes-support/onig/onig/0002-build-enable-serial-tests-automake-option-for-ptest.patch b/meta-oe/recipes-support/onig/onig/0002-build-enable-serial-tests-automake-option-for-ptest.patch
index a7a28536fb..096b8baa79 100644
--- a/meta-oe/recipes-support/onig/onig/0002-build-enable-serial-tests-automake-option-for-ptest.patch
+++ b/meta-oe/recipes-support/onig/onig/0002-build-enable-serial-tests-automake-option-for-ptest.patch
@@ -15,6 +15,8 @@ former being what we want.
Signed-off-by: André Draszik <git@andred.net>
---
+Upstream-Status: Pending
+
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/onig/onig/run-ptest b/meta-oe/recipes-support/onig/onig/run-ptest
index 2574d7efa5..fbce336990 100755
--- a/meta-oe/recipes-support/onig/onig/run-ptest
+++ b/meta-oe/recipes-support/onig/onig/run-ptest
@@ -17,7 +17,7 @@ workdir=$(mktemp -d -t onig.ptest.XXXXXX)
status="${workdir}/failed"
touch "${status}"
-find tests/ -perm -111 -type f -exec sh -c '
+find tests/ -perm -111 -type f ! -path "tests/.debug/*" -exec sh -c '
workdir="${1}"
status="${2}"
t="${3}"
diff --git a/meta-oe/recipes-support/onig/onig_6.9.8.bb b/meta-oe/recipes-support/onig/onig_6.9.8.bb
deleted file mode 100644
index 2144592286..0000000000
--- a/meta-oe/recipes-support/onig/onig_6.9.8.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Regular expressions library"
-DESCRIPTION = "Oniguruma is a modern and flexible regular expressions library. \
-It encompasses features from different regular expression \
-implementations that traditionally exist in different languages. \
-Character encoding can be specified per regular expression object."
-HOMEPAGE = "https://github.com/kkos/oniguruma"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e6365c225bb5cc4321d0913f0baffa04"
-
-SRC_URI = "\
- https://github.com/kkos/oniguruma/releases/download/v${PV}/${BP}.tar.gz \
- file://0001-build-don-t-link-against-host-system-libraries.patch \
- file://0002-build-enable-serial-tests-automake-option-for-ptest.patch \
- file://run-ptest \
-"
-
-SRC_URI[sha256sum] = "28cd62c1464623c7910565fb1ccaaa0104b2fe8b12bcd646e81f73b47535213e"
-
-BINCONFIG = "${bindir}/onig-config"
-
-inherit autotools binconfig-disabled ptest
-
-BBCLASSEXTEND = "native"
-
-do_compile_ptest() {
- oe_runmake -C test buildtest-TESTS
-}
-
-do_install_ptest() {
- mkdir -p ${D}${PTEST_PATH}/tests
- install -m 0755 -t ${D}${PTEST_PATH}/tests/ ${B}/test/.libs/*
-}
-
-PROVIDES += "oniguruma"
diff --git a/meta-oe/recipes-support/onig/onig_6.9.9.bb b/meta-oe/recipes-support/onig/onig_6.9.9.bb
new file mode 100644
index 0000000000..b29437db1e
--- /dev/null
+++ b/meta-oe/recipes-support/onig/onig_6.9.9.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Regular expressions library"
+DESCRIPTION = "Oniguruma is a modern and flexible regular expressions library. \
+It encompasses features from different regular expression \
+implementations that traditionally exist in different languages. \
+Character encoding can be specified per regular expression object."
+HOMEPAGE = "https://github.com/kkos/oniguruma"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6365c225bb5cc4321d0913f0baffa04"
+
+SRC_URI = "\
+ https://github.com/kkos/oniguruma/releases/download/v${PV}/${BP}.tar.gz \
+ file://0001-build-don-t-link-against-host-system-libraries.patch \
+ file://0002-build-enable-serial-tests-automake-option-for-ptest.patch \
+ file://run-ptest \
+"
+
+SRC_URI[sha256sum] = "60162bd3b9fc6f4886d4c7a07925ffd374167732f55dce8c491bfd9cd818a6cf"
+
+BINCONFIG = "${bindir}/onig-config"
+
+inherit autotools binconfig-disabled ptest
+
+BBCLASSEXTEND = "native"
+
+do_compile_ptest() {
+ oe_runmake -C test buildtest-TESTS
+}
+
+do_install_ptest() {
+ mkdir -p ${D}${PTEST_PATH}/tests
+ install -m 0755 -t ${D}${PTEST_PATH}/tests/ ${B}/test/.libs/*
+}
+
+PROVIDES += "oniguruma"
diff --git a/meta-oe/recipes-support/opencl/clinfo_3.0.21.02.21.bb b/meta-oe/recipes-support/opencl/clinfo_3.0.21.02.21.bb
deleted file mode 100644
index 781e698cbf..0000000000
--- a/meta-oe/recipes-support/opencl/clinfo_3.0.21.02.21.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Enumerate all known properties of OpenCL platform and devices."
-DESCRIPTION = "clinfo is a simple command-line application that enumerates \
-all possible (known) properties of the OpenCL platform and devices \
-available on the system."
-HOMEPAGE = "https://github.com/Oblomov/clinfo"
-
-LICENSE = "CC0-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fd8857f774dfb0eefe1e80c8f9240a7e"
-
-SRC_URI = "git://github.com/Oblomov/clinfo.git;protocol=https;branch=master"
-
-SRCREV = "d34bc1a3bdc148e2e1fe64998398e1a0552ab04c"
-
-S = "${WORKDIR}/git"
-
-DEPENDS += "opencl-headers virtual/opencl-icd"
-
-do_install() {
- install -D -m 755 clinfo ${D}${bindir}/clinfo
-}
diff --git a/meta-oe/recipes-support/opencl/clinfo_3.0.23.01.25.bb b/meta-oe/recipes-support/opencl/clinfo_3.0.23.01.25.bb
new file mode 100644
index 0000000000..6cacd3722c
--- /dev/null
+++ b/meta-oe/recipes-support/opencl/clinfo_3.0.23.01.25.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Enumerate all known properties of OpenCL platform and devices."
+DESCRIPTION = "clinfo is a simple command-line application that enumerates \
+all possible (known) properties of the OpenCL platform and devices \
+available on the system."
+HOMEPAGE = "https://github.com/Oblomov/clinfo"
+
+LICENSE = "CC0-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fd8857f774dfb0eefe1e80c8f9240a7e"
+
+SRC_URI = "git://github.com/Oblomov/clinfo.git;protocol=https;branch=master"
+
+SRCREV = "748c3930a9b9cb826e631d77439e2cb8f84f5bcf"
+
+S = "${WORKDIR}/git"
+
+DEPENDS += "opencl-headers virtual/opencl-icd"
+
+do_install() {
+ oe_runmake install PREFIX=${D}${prefix} MANDIR=${D}${mandir}
+}
diff --git a/meta-oe/recipes-support/openct/openct/0001-m4-Just-emit-the-first-line-of-compiler-version.patch b/meta-oe/recipes-support/openct/openct/0001-m4-Just-emit-the-first-line-of-compiler-version.patch
new file mode 100644
index 0000000000..9bd3d18d6e
--- /dev/null
+++ b/meta-oe/recipes-support/openct/openct/0001-m4-Just-emit-the-first-line-of-compiler-version.patch
@@ -0,0 +1,31 @@
+From 146b5116140d719e4e9ae19748c0b6dee7d82f96 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 22 May 2023 22:01:28 -0700
+Subject: [PATCH] m4: Just emit the first line of compiler version
+
+Avoids emitting buildpaths into comments
+Fixes
+WARNING: openct-0.6.20-r0 do_package_qa: QA Issue: File /usr/include/openct/types.h in package openct-dev contains reference to TMPDIR [buildpaths]
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ m4/ac_create_stdint_h.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4/ac_create_stdint_h.m4 b/m4/ac_create_stdint_h.m4
+index 66de704..4b7223a 100644
+--- a/m4/ac_create_stdint_h.m4
++++ b/m4/ac_create_stdint_h.m4
+@@ -110,7 +110,7 @@ echo "#define" $_ac_stdint_h "1" >>$ac_stdint_h
+ echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint_h
+ echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint_h
+ if test "$GCC" = "yes" ; then
+- echo "/* generated using a gnu compiler version" `$CC --version` "*/" \
++ echo "/* generated using a gnu compiler version" `$CC --version|head -1` "*/" \
+ >>$ac_stdint_h
+ else
+ echo "/* generated using $CC */" >>$ac_stdint_h
+--
+2.40.1
+
diff --git a/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch b/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch
index 745f923af1..e2401bb31b 100644
--- a/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch
+++ b/meta-oe/recipes-support/openct/openct/etc-openct.udev.in-disablePROGRAM.patch
@@ -5,7 +5,7 @@ Subject: [PATCH 1/2] etc/openct.udev.in: disablePROGRAM
Bug fix: https://bugzilla.redhat.com/show_bug.cgi?id=287871
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
diff --git a/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch b/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch
index d5e3fe5753..22eda729fb 100644
--- a/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch
+++ b/meta-oe/recipes-support/openct/openct/etc-openct_usb.in-modify-UDEVINFO.patch
@@ -5,7 +5,7 @@ Subject: [PATCH 2/2] etc/openct_usb.in: modify UDEVINFO
this patch is from Fedora
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
diff --git a/meta-oe/recipes-support/openct/openct_0.6.20.bb b/meta-oe/recipes-support/openct/openct_0.6.20.bb
index a873da6339..4a1a0f568d 100644
--- a/meta-oe/recipes-support/openct/openct_0.6.20.bb
+++ b/meta-oe/recipes-support/openct/openct_0.6.20.bb
@@ -1,4 +1,4 @@
-Summanry = "Middleware framework for smart card terminals"
+SUMMARY = "Middleware framework for smart card terminals"
HOMEPAGE = "https://github.com/OpenSC/openct/wiki"
DESCRIPTION = " \
OpenCT implements drivers for several smart card readers. \
@@ -14,6 +14,7 @@ SRC_URI = " \
https://downloads.sourceforge.net/project/opensc/${BPN}/${BPN}-${PV}.tar.gz \
file://etc-openct.udev.in-disablePROGRAM.patch \
file://etc-openct_usb.in-modify-UDEVINFO.patch \
+ file://0001-m4-Just-emit-the-first-line-of-compiler-version.patch \
file://openct.init \
file://openct.sysconfig \
file://openct.service \
diff --git a/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch b/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
deleted file mode 100644
index 9e6a613713..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 9b4959b97d2e95d4b49cf6ca2a3fce3cdb484f2d Mon Sep 17 00:00:00 2001
-From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
-Date: Thu, 31 Mar 2016 00:20:15 +0200
-Subject: [PATCH] 3rdparty/ippicv: Use pre-downloaded ipp
-
-Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
-Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
-
----
- 3rdparty/ippicv/ippicv.cmake | 15 +--------------
- 1 file changed, 1 insertion(+), 14 deletions(-)
-
-diff --git a/3rdparty/ippicv/ippicv.cmake b/3rdparty/ippicv/ippicv.cmake
-index 257af6fcc6..f88460450f 100644
---- a/3rdparty/ippicv/ippicv.cmake
-+++ b/3rdparty/ippicv/ippicv.cmake
-@@ -34,18 +34,5 @@ function(download_ippicv root_var)
- endif()
-
- set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv")
-- ocv_download(FILENAME ${OPENCV_ICV_NAME}
-- HASH ${OPENCV_ICV_HASH}
-- URL
-- "${OPENCV_IPPICV_URL}"
-- "$ENV{OPENCV_IPPICV_URL}"
-- "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
-- DESTINATION_DIR "${THE_ROOT}"
-- ID IPPICV
-- STATUS res
-- UNPACK RELATIVE_URL)
--
-- if(res)
-- set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE)
-- endif()
-+ set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE)
- endfunction()
diff --git a/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch b/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch
index 1e47f8b162..a3bbefaabe 100644
--- a/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch
+++ b/meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch
@@ -7,6 +7,8 @@ Subject: [PATCH] Temporarliy work around deprecated ffmpeg RAW function
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
+Upstream-Status: Pending
+
modules/videoio/src/cap_ffmpeg_impl.hpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch b/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
index bb47ef2bab..9df419d0b8 100644
--- a/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
+++ b/meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch
@@ -15,6 +15,8 @@ ts module.
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
---
+Upstream-Status: Pending
+
modules/ts/include/opencv2/ts.hpp | 4 ++--
modules/ts/include/opencv2/ts/ocl_test.hpp | 2 +-
modules/ts/include/opencv2/ts/ts_ext.hpp | 2 +-
diff --git a/meta-oe/recipes-support/opencv/opencv/0008-Do-not-embed-build-directory-in-binaries.patch b/meta-oe/recipes-support/opencv/opencv/0008-Do-not-embed-build-directory-in-binaries.patch
new file mode 100644
index 0000000000..8fda857080
--- /dev/null
+++ b/meta-oe/recipes-support/opencv/opencv/0008-Do-not-embed-build-directory-in-binaries.patch
@@ -0,0 +1,138 @@
+From: Victor Westerhuis <victor@westerhu.is>
+Date: Sat, 19 Nov 2022 21:45:39 +0100
+Subject: Do not embed build directory in binaries
+
+This makes the opencv core module build reproducibly.
+
+https://salsa.debian.org/science-team/opencv/-/raw/master/debian/patches/0008-Do-not-embed-build-directory-in-binaries.patch
+Upstream-Status: Backport
+Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
+---
+ modules/core/CMakeLists.txt | 10 ------
+ modules/core/include/opencv2/core/private.hpp | 4 +--
+ modules/core/include/opencv2/core/utility.hpp | 4 +--
+ modules/core/src/utils/datafile.cpp | 48 +--------------------------
+ 4 files changed, 5 insertions(+), 61 deletions(-)
+
+diff --git a/modules/core/CMakeLists.txt b/modules/core/CMakeLists.txt
+index b78bb98..d96b669 100644
+--- a/modules/core/CMakeLists.txt
++++ b/modules/core/CMakeLists.txt
+@@ -188,16 +188,6 @@ if(OPENCV_OTHER_INSTALL_PATH)
+ ")
+ endif()
+
+-set(OPENCV_DATA_CONFIG_STR "${OPENCV_DATA_CONFIG_STR}
+-#define OPENCV_BUILD_DIR \"${CMAKE_BINARY_DIR}\"
+-")
+-
+-file(RELATIVE_PATH SOURCE_DIR_RELATIVE ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR})
+-set(OPENCV_DATA_CONFIG_STR "${OPENCV_DATA_CONFIG_STR}
+-#define OPENCV_DATA_BUILD_DIR_SEARCH_PATHS \\
+- \"${SOURCE_DIR_RELATIVE}/\"
+-")
+-
+ if(WIN32)
+ file(RELATIVE_PATH INSTALL_DATA_DIR_RELATIVE "${CMAKE_INSTALL_PREFIX}/${OPENCV_BIN_INSTALL_PATH}" "${CMAKE_INSTALL_PREFIX}/${OPENCV_OTHER_INSTALL_PATH}")
+ else()
+diff --git a/modules/core/include/opencv2/core/private.hpp b/modules/core/include/opencv2/core/private.hpp
+index 146d37f..dd675bc 100644
+--- a/modules/core/include/opencv2/core/private.hpp
++++ b/modules/core/include/opencv2/core/private.hpp
+@@ -818,10 +818,10 @@ Search directories:
+ 2. Check path specified by configuration parameter with "_HINT" suffix (name of environment variable).
+ 3. Check path specified by configuration parameter (name of environment variable).
+ If parameter value is not empty and nothing is found then stop searching.
+-4. Detects build/install path based on:
++4. Detects install path based on:
+ a. current working directory (CWD)
+ b. and/or binary module location (opencv_core/opencv_world, doesn't work with static linkage)
+-5. Scan `<source>/{,data}` directories if build directory is detected or the current directory is in source tree.
++5. Scan `<source>/{,data}` directories if the current directory is in source tree.
+ 6. Scan `<install>/share/OpenCV` directory if install directory is detected.
+
+ @param relative_path Relative path to data file
+diff --git a/modules/core/include/opencv2/core/utility.hpp b/modules/core/include/opencv2/core/utility.hpp
+index 108c0d9..f15d9ea 100644
+--- a/modules/core/include/opencv2/core/utility.hpp
++++ b/modules/core/include/opencv2/core/utility.hpp
+@@ -1163,10 +1163,10 @@ Search directories:
+ 2. OPENCV_SAMPLES_DATA_PATH_HINT environment variable
+ 3. OPENCV_SAMPLES_DATA_PATH environment variable
+ If parameter value is not empty and nothing is found then stop searching.
+-4. Detects build/install path based on:
++4. Detects install path based on:
+ a. current working directory (CWD)
+ b. and/or binary module location (opencv_core/opencv_world, doesn't work with static linkage)
+-5. Scan `<source>/{,data,samples/data}` directories if build directory is detected or the current directory is in source tree.
++5. Scan `<source>/{,data,samples/data}` directories if the current directory is in source tree.
+ 6. Scan `<install>/share/OpenCV` directory if install directory is detected.
+
+ @see cv::utils::findDataFile
+diff --git a/modules/core/src/utils/datafile.cpp b/modules/core/src/utils/datafile.cpp
+index 3af83a5..6bda857 100644
+--- a/modules/core/src/utils/datafile.cpp
++++ b/modules/core/src/utils/datafile.cpp
+@@ -280,32 +280,8 @@ cv::String findDataFile(const cv::String& relative_path,
+
+
+ // Steps: 4, 5, 6
+- cv::String cwd = utils::fs::getcwd();
+- cv::String build_dir(OPENCV_BUILD_DIR);
+- bool has_tested_build_directory = false;
+- if (isSubDirectory(build_dir, cwd) || isSubDirectory(utils::fs::canonical(build_dir), utils::fs::canonical(cwd)))
+- {
+- CV_LOG_DEBUG(NULL, "utils::findDataFile(): the current directory is build sub-directory: " << cwd);
+- const char* build_subdirs[] = { OPENCV_DATA_BUILD_DIR_SEARCH_PATHS };
+- for (size_t k = 0; k < sizeof(build_subdirs)/sizeof(build_subdirs[0]); k++)
+- {
+- CV_LOG_DEBUG(NULL, "utils::findDataFile(): <build>/" << build_subdirs[k]);
+- cv::String datapath = utils::fs::join(build_dir, build_subdirs[k]);
+- if (utils::fs::isDirectory(datapath))
+- {
+- for(size_t i = search_subdir.size(); i > 0; i--)
+- {
+- const cv::String& subdir = search_subdir[i - 1];
+- cv::String prefix = utils::fs::join(datapath, subdir);
+- TRY_FILE_WITH_PREFIX(prefix);
+- }
+- }
+- }
+- has_tested_build_directory = true;
+- }
+-
+ cv::String source_dir;
+- cv::String try_source_dir = cwd;
++ cv::String try_source_dir = utils::fs::getcwd();
+ for (int levels = 0; levels < 3; ++levels)
+ {
+ if (utils::fs::exists(utils::fs::join(try_source_dir, "modules/core/include/opencv2/core/version.hpp")))
+@@ -341,28 +317,6 @@ cv::String findDataFile(const cv::String& relative_path,
+ CV_LOG_INFO(NULL, "Can't detect module binaries location");
+ }
+
+- if (!has_tested_build_directory &&
+- (isSubDirectory(build_dir, module_path) || isSubDirectory(utils::fs::canonical(build_dir), utils::fs::canonical(module_path)))
+- )
+- {
+- CV_LOG_DEBUG(NULL, "utils::findDataFile(): the binary module directory is build sub-directory: " << module_path);
+- const char* build_subdirs[] = { OPENCV_DATA_BUILD_DIR_SEARCH_PATHS };
+- for (size_t k = 0; k < sizeof(build_subdirs)/sizeof(build_subdirs[0]); k++)
+- {
+- CV_LOG_DEBUG(NULL, "utils::findDataFile(): <build>/" << build_subdirs[k]);
+- cv::String datapath = utils::fs::join(build_dir, build_subdirs[k]);
+- if (utils::fs::isDirectory(datapath))
+- {
+- for(size_t i = search_subdir.size(); i > 0; i--)
+- {
+- const cv::String& subdir = search_subdir[i - 1];
+- cv::String prefix = utils::fs::join(datapath, subdir);
+- TRY_FILE_WITH_PREFIX(prefix);
+- }
+- }
+- }
+- }
+-
+ #if defined OPENCV_INSTALL_DATA_DIR_RELATIVE
+ if (!module_path.empty()) // require module path
+ {
diff --git a/meta-oe/recipes-support/opencv/opencv_4.6.0.bb b/meta-oe/recipes-support/opencv/opencv_4.6.0.bb
deleted file mode 100644
index f6c10054c2..0000000000
--- a/meta-oe/recipes-support/opencv/opencv_4.6.0.bb
+++ /dev/null
@@ -1,241 +0,0 @@
-SUMMARY = "Opencv : The Open Computer Vision Library"
-HOMEPAGE = "http://opencv.org/"
-SECTION = "libs"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-ARM_INSTRUCTION_SET:armv4 = "arm"
-ARM_INSTRUCTION_SET:armv5 = "arm"
-
-DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
-
-SRCREV_opencv = "b0dc474160e389b9c9045da5db49d03ae17c6a6b"
-SRCREV_contrib = "7b77c355a8fdc97667b3fa1e7a0d37e4973fc868"
-SRCREV_ipp = "a56b6ac6f030c312b2dce17430eef13aed9af274"
-SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
-SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
-SRCREV_face = "8afa57abc8229d611c4937165d20e2a2d9fc5a12"
-SRCREV_wechat-qrcode = "a8b69ccc738421293254aec5ddb38bd523503252"
-
-def ipp_filename(d):
- import re
- arch = d.getVar('TARGET_ARCH')
- if re.match("i.86$", arch):
- return "ippicv_2020_lnx_ia32_20191018_general.tgz"
- else:
- return "ippicv_2020_lnx_intel64_20191018_general.tgz"
-
-def ipp_md5sum(d):
- import re
- arch = d.getVar('TARGET_ARCH')
- if re.match("i.86$", arch):
- return "ad189a940fb60eb71f291321322fe3e8"
- else:
- return "7421de0095c7a39162ae13a6098782f9"
-
-IPP_FILENAME = "${@ipp_filename(d)}"
-IPP_MD5 = "${@ipp_md5sum(d)}"
-
-SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg"
-SRC_URI = "git://github.com/opencv/opencv.git;name=opencv;branch=master;protocol=https \
- git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib;branch=master;protocol=https \
- git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20191018;destsuffix=ipp;name=ipp;protocol=https \
- git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc;protocol=https \
- git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg;protocol=https \
- git://github.com/opencv/opencv_3rdparty.git;branch=contrib_face_alignment_20170818;destsuffix=face;name=face;protocol=https \
- git://github.com/WeChatCV/opencv_3rdparty.git;branch=wechat_qrcode;destsuffix=wechat_qrcode;name=wechat-qrcode;protocol=https \
- file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
- file://0003-To-fix-errors-as-following.patch \
- file://0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch \
- file://0001-Dont-use-isystem.patch \
- file://download.patch \
- file://0001-Make-ts-module-external.patch \
- "
-SRC_URI:append:riscv64 = " file://0001-Use-Os-to-compile-tinyxml2.cpp.patch;patchdir=../contrib"
-
-S = "${WORKDIR}/git"
-
-# OpenCV wants to download more files during configure. We download these in
-# do_fetch and construct a source cache in the format it expects
-OPENCV_DLDIR = "${WORKDIR}/downloads"
-
-do_unpack_extra() {
- tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR}
-
- md5() {
- # Return the MD5 of $1
- echo $(md5sum $1 | cut -d' ' -f1)
- }
- cache() {
- TAG=$1
- shift
- mkdir --parents ${OPENCV_DLDIR}/$TAG
- for F in $*; do
- DEST=${OPENCV_DLDIR}/$TAG/$(md5 $F)-$(basename $F)
- test -e $DEST || ln -s $F $DEST
- done
- }
- cache xfeatures2d/boostdesc ${WORKDIR}/boostdesc/*.i
- cache xfeatures2d/vgg ${WORKDIR}/vgg/*.i
- cache data ${WORKDIR}/face/*.dat
- cache wechat_qrcode ${WORKDIR}/wechat_qrcode/*.caffemodel
- cache wechat_qrcode ${WORKDIR}/wechat_qrcode/*.prototxt
-}
-addtask unpack_extra after do_unpack before do_patch
-
-CMAKE_VERBOSE = "VERBOSE=1"
-
-EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
- -DWITH_1394=OFF \
- -DENABLE_PRECOMPILED_HEADERS=OFF \
- -DCMAKE_SKIP_RPATH=ON \
- -DOPENCV_ICV_HASH=${IPP_MD5} \
- -DIPPROOT=${WORKDIR}/ippicv_lnx \
- -DOPENCV_GENERATE_PKGCONFIG=ON \
- -DOPENCV_DOWNLOAD_PATH=${OPENCV_DLDIR} \
- -DOPENCV_ALLOW_DOWNLOADS=OFF \
- ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
- ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
- ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
-"
-LDFLAGS:append:mips = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
-LDFLAGS:append:riscv32 = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
-
-EXTRA_OECMAKE:append:x86 = " -DX86=ON"
-# disable sse4.1 and sse4.2 to fix 32bit build failure
-# https://github.com/opencv/opencv/issues/21597
-EXTRA_OECMAKE:remove:x86 = " -DENABLE_SSE41=1 -DENABLE_SSE42=1"
-
-PACKAGECONFIG ??= "gapi python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \
- ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
- ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}"
-
-# TBB does not build for powerpc so disable that package config
-PACKAGECONFIG:remove:powerpc = "tbb"
-# tbb now needs getcontect/setcontext which is not there for all arches on musl
-PACKAGECONFIG:remove:libc-musl:riscv64 = "tbb"
-PACKAGECONFIG:remove:libc-musl:riscv32 = "tbb"
-
-PACKAGECONFIG[gapi] = "-DWITH_ADE=ON -Dade_DIR=${STAGING_LIBDIR},-DWITH_ADE=OFF,ade"
-PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas,"
-PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft,"
-PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
-PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog,"
-PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype,"
-PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2,"
-PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base,"
-PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3,"
-PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper,"
-PACKAGECONFIG[java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native fastjar-native openjdk-8-native,"
-PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
-PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
-PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils,"
-PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers virtual/opencl-icd,"
-PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${ORACLE_JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native,"
-PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
-PACKAGECONFIG[python2] = "-DPYTHON2_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python-numpy,"
-PACKAGECONFIG[python3] = "-DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python3-numpy,"
-PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,,"
-PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb,"
-PACKAGECONFIG[tests] = "-DBUILD_TESTS=ON,-DBUILD_TESTS=OFF,,"
-PACKAGECONFIG[text] = "-DBUILD_opencv_text=ON,-DBUILD_opencv_text=OFF,tesseract,"
-PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
-PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
-
-inherit pkgconfig cmake
-
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'setuptools3-base', '', d)}
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)}
-
-export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
-export PYTHON="${STAGING_BINDIR_NATIVE}/${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3', 'python', d)}"
-export ORACLE_JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java"
-export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/lib/jvm/openjdk-8-native"
-export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/"
-
-TARGET_CC_ARCH += "-I${S}/include "
-
-PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'java', '${PN}-java', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python-${BPN}', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \
- ${PN}-apps"
-
-python populate_packages:prepend () {
- cv_libdir = d.expand('${libdir}')
- do_split_packages(d, cv_libdir, r'^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
- do_split_packages(d, cv_libdir, r'^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
- do_split_packages(d, cv_libdir, r'^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
- do_split_packages(d, cv_libdir, r'^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
-
- pn = d.getVar('PN')
- metapkg = pn + '-dev'
- d.setVar('ALLOW_EMPTY:' + metapkg, "1")
- blacklist = [ metapkg ]
- metapkg_rdepends = [ ]
- packages = d.getVar('PACKAGES').split()
- for pkg in packages[1:]:
- if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
- metapkg_rdepends.append(pkg)
- d.setVar('RRECOMMENDS:' + metapkg, ' '.join(metapkg_rdepends))
-
- metapkg = pn
- d.setVar('ALLOW_EMPTY:' + metapkg, "1")
- blacklist = [ metapkg, "libopencv-ts" ]
- metapkg_rdepends = [ ]
- for pkg in packages[1:]:
- if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'):
- metapkg_rdepends.append(pkg)
- d.setVar('RDEPENDS:' + metapkg, ' '.join(metapkg_rdepends))
-}
-
-PACKAGES_DYNAMIC += "^libopencv-.*"
-
-FILES:${PN} = ""
-FILES:${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*"
-FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig ${libdir}/cmake/opencv4/*.cmake"
-FILES:${PN}-staticdev += "${libdir}/opencv4/3rdparty/*.a"
-FILES:${PN}-apps = "${bindir}/* ${datadir}/opencv4 ${datadir}/licenses"
-FILES:${PN}-java = "${datadir}/OpenCV/java"
-FILES:${PN}-samples = "${datadir}/opencv4/samples/"
-
-INSANE_SKIP:${PN}-java = "libdir"
-INSANE_SKIP:${PN}-dbg = "libdir"
-
-ALLOW_EMPTY:${PN} = "1"
-
-SUMMARY:python-opencv = "Python bindings to opencv"
-FILES:python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
-RDEPENDS:python-opencv = "python-core python-numpy"
-
-SUMMARY:python3-opencv = "Python bindings to opencv"
-FILES:python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
-RDEPENDS:python3-opencv = "python3-core python3-numpy"
-
-RDEPENDS:${PN}-apps = "bash"
-
-do_compile:prepend() {
- # remove the build host info to improve reproducibility
- if [ -f ${WORKDIR}/build/modules/core/version_string.inc ]; then
- sed -i "s#${WORKDIR}#/workdir#g" ${WORKDIR}/build/modules/core/version_string.inc
- fi
-}
-
-do_install:append() {
- # Move Python files into correct library folder (for multilib build)
- if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then
- mv ${D}/usr/lib/* ${D}/${libdir}/
- rm -rf ${D}/usr/lib
- fi
- # remove build host path to improve reproducibility
- if [ -f ${D}${libdir}/cmake/opencv4/OpenCVModules.cmake ]; then
- sed -e 's@${STAGING_DIR_HOST}@@g' \
- -i ${D}${libdir}/cmake/opencv4/OpenCVModules.cmake
- fi
- # remove setup_vars_opencv4.sh as its content is confusing and useless
- if [ -f ${D}${bindir}/setup_vars_opencv4.sh ]; then
- rm -rf ${D}${bindir}/setup_vars_opencv4.sh
- fi
-}
diff --git a/meta-oe/recipes-support/opencv/opencv_4.9.0.bb b/meta-oe/recipes-support/opencv/opencv_4.9.0.bb
new file mode 100644
index 0000000000..cf836d3ecf
--- /dev/null
+++ b/meta-oe/recipes-support/opencv/opencv_4.9.0.bb
@@ -0,0 +1,210 @@
+SUMMARY = "Opencv : The Open Computer Vision Library"
+HOMEPAGE = "http://opencv.org/"
+SECTION = "libs"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+ARM_INSTRUCTION_SET:armv4 = "arm"
+ARM_INSTRUCTION_SET:armv5 = "arm"
+
+DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
+
+SRCREV_opencv = "dad8af6b17f8e60d7b95a1203a1b4d22f56574cf"
+SRCREV_contrib = "c7602a8f74205e44389bd6a4e8d727d32e7e27b4"
+SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
+SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
+SRCREV_face = "8afa57abc8229d611c4937165d20e2a2d9fc5a12"
+SRCREV_wechat-qrcode = "a8b69ccc738421293254aec5ddb38bd523503252"
+
+
+SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg"
+SRC_URI = "git://github.com/opencv/opencv.git;name=opencv;branch=4.x;protocol=https \
+ git://github.com/opencv/opencv_contrib.git;destsuffix=git/contrib;name=contrib;branch=4.x;protocol=https \
+ git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=git/boostdesc;name=boostdesc;protocol=https \
+ git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=git/vgg;name=vgg;protocol=https \
+ git://github.com/opencv/opencv_3rdparty.git;branch=contrib_face_alignment_20170818;destsuffix=git/face;name=face;protocol=https \
+ git://github.com/WeChatCV/opencv_3rdparty.git;branch=wechat_qrcode;destsuffix=git/wechat_qrcode;name=wechat-qrcode;protocol=https \
+ file://0003-To-fix-errors-as-following.patch \
+ file://0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch \
+ file://0001-Dont-use-isystem.patch \
+ file://download.patch \
+ file://0001-Make-ts-module-external.patch \
+ file://0008-Do-not-embed-build-directory-in-binaries.patch \
+ "
+SRC_URI:append:riscv64 = " file://0001-Use-Os-to-compile-tinyxml2.cpp.patch;patchdir=contrib"
+
+S = "${WORKDIR}/git"
+
+# OpenCV wants to download more files during configure. We download these in
+# do_fetch and construct a source cache in the format it expects
+OPENCV_DLDIR = "${WORKDIR}/downloads"
+
+do_unpack_extra() {
+
+ md5() {
+ # Return the MD5 of $1
+ echo $(md5sum $1 | cut -d' ' -f1)
+ }
+ cache() {
+ TAG=$1
+ shift
+ mkdir --parents ${OPENCV_DLDIR}/$TAG
+ for F in $*; do
+ DEST=${OPENCV_DLDIR}/$TAG/$(md5 $F)-$(basename $F)
+ test -e $DEST || ln -s $F $DEST
+ done
+ }
+ cache xfeatures2d/boostdesc ${S}/boostdesc/*.i
+ cache xfeatures2d/vgg ${S}/vgg/*.i
+ cache data ${S}/face/*.dat
+ cache wechat_qrcode ${S}/wechat_qrcode/*.caffemodel
+ cache wechat_qrcode ${S}/wechat_qrcode/*.prototxt
+}
+addtask unpack_extra after do_unpack before do_patch
+
+CMAKE_VERBOSE = "VERBOSE=1"
+
+EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${S}/contrib/modules \
+ -DWITH_1394=OFF \
+ -DENABLE_PRECOMPILED_HEADERS=OFF \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DWITH_IPP=OFF \
+ -DOPENCV_GENERATE_PKGCONFIG=ON \
+ -DOPENCV_DOWNLOAD_PATH=${OPENCV_DLDIR} \
+ -DOPENCV_ALLOW_DOWNLOADS=OFF \
+ ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \
+ ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
+ ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \
+"
+LDFLAGS:append:mips = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
+LDFLAGS:append:riscv32 = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
+
+EXTRA_OECMAKE:append:x86 = " -DX86=ON"
+# disable sse4.1 and sse4.2 to fix 32bit build failure
+# https://github.com/opencv/opencv/issues/21597
+EXTRA_OECMAKE:remove:x86 = " -DENABLE_SSE41=1 -DENABLE_SSE42=1"
+
+PACKAGECONFIG ??= "gapi python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
+ ${@bb.utils.contains_any("LICENSE_FLAGS_ACCEPTED", "commercial_ffmpeg commercial", "libav", "", d)}"
+
+# TBB does not build for powerpc so disable that package config
+PACKAGECONFIG:remove:powerpc = "tbb"
+# tbb now needs getcontect/setcontext which is not there for all arches on musl
+PACKAGECONFIG:remove:libc-musl:riscv64 = "tbb"
+PACKAGECONFIG:remove:libc-musl:riscv32 = "tbb"
+
+PACKAGECONFIG[gapi] = "-DWITH_ADE=ON -Dade_DIR=${STAGING_LIBDIR},-DWITH_ADE=OFF,ade"
+PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas,"
+PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft,"
+PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF -DCMAKE_CXX_STANDARD=17,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
+PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog,"
+PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype,"
+PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2,"
+PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base,"
+PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3,"
+PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper,"
+PACKAGECONFIG[java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native fastjar-native openjdk-8-native,"
+PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg,"
+PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav,"
+PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils,"
+PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers virtual/opencl-icd,"
+PACKAGECONFIG[openvino] = "-DWITH_OPENVINO=ON,-DWITH_OPENVINO=OFF,openvino-inference-engine,openvino-inference-engine"
+PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${ORACLE_JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native,"
+PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,"
+PACKAGECONFIG[python3] = "-DPYTHON3_INCLUDE_PATH=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI} -DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python3-numpy,"
+PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,,"
+PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb,"
+PACKAGECONFIG[tests] = "-DBUILD_TESTS=ON,-DBUILD_TESTS=OFF,,"
+PACKAGECONFIG[text] = "-DBUILD_opencv_text=ON,-DBUILD_opencv_text=OFF,tesseract,"
+PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff,"
+PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils,"
+
+inherit pkgconfig cmake setuptools3-base python3native
+
+export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}"
+export ORACLE_JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java"
+export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/lib/jvm/openjdk-8-native"
+export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/"
+
+TARGET_CC_ARCH += "-I${S}/include "
+
+PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'java', '${PN}-java', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \
+ ${PN}-apps"
+
+python populate_packages:prepend () {
+ cv_libdir = d.expand('${libdir}')
+ do_split_packages(d, cv_libdir, r'^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
+ do_split_packages(d, cv_libdir, r'^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
+ do_split_packages(d, cv_libdir, r'^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
+ do_split_packages(d, cv_libdir, r'^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True)
+
+ pn = d.getVar('PN')
+ metapkg = pn + '-dev'
+ d.setVar('ALLOW_EMPTY:' + metapkg, "1")
+ blacklist = [ metapkg ]
+ metapkg_rdepends = [ ]
+ packages = d.getVar('PACKAGES').split()
+ for pkg in packages[1:]:
+ if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
+ metapkg_rdepends.append(pkg)
+ d.setVar('RRECOMMENDS:' + metapkg, ' '.join(metapkg_rdepends))
+
+ metapkg = pn
+ d.setVar('ALLOW_EMPTY:' + metapkg, "1")
+ blacklist = [ metapkg ]
+ metapkg_rdepends = [ ]
+ for pkg in packages[1:]:
+ if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'):
+ metapkg_rdepends.append(pkg)
+ d.setVar('RDEPENDS:' + metapkg, ' '.join(metapkg_rdepends))
+}
+
+PACKAGES_DYNAMIC += "^libopencv-.*"
+
+FILES:${PN} = ""
+FILES:${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*"
+FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig ${libdir}/cmake/opencv4/*.cmake"
+FILES:${PN}-staticdev += "${libdir}/opencv4/3rdparty/*.a"
+FILES:${PN}-apps = "${bindir}/* ${datadir}/opencv4 ${datadir}/licenses"
+FILES:${PN}-java = "${datadir}/OpenCV/java"
+FILES:${PN}-samples = "${datadir}/opencv4/samples/"
+
+INSANE_SKIP:${PN}-java = "libdir"
+INSANE_SKIP:${PN}-dbg = "libdir"
+
+ALLOW_EMPTY:${PN} = "1"
+
+SUMMARY:python3-opencv = "Python bindings to opencv"
+FILES:python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS:python3-opencv = "python3-core python3-numpy"
+
+RDEPENDS:${PN}-apps = "bash"
+
+do_compile:prepend() {
+ # remove the build host info to improve reproducibility
+ if [ -f ${WORKDIR}/build/modules/core/version_string.inc ]; then
+ sed -i "s#${WORKDIR}#/workdir#g" ${WORKDIR}/build/modules/core/version_string.inc
+ fi
+}
+
+do_install:append() {
+ # Move Python files into correct library folder (for multilib build)
+ if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then
+ mv ${D}/usr/lib/* ${D}/${libdir}/
+ rm -rf ${D}/usr/lib
+ fi
+ # remove build host path to improve reproducibility
+ if [ -f ${D}${libdir}/cmake/opencv4/OpenCVModules.cmake ]; then
+ sed -e 's@${STAGING_DIR_HOST}@@g' \
+ -i ${D}${libdir}/cmake/opencv4/OpenCVModules.cmake
+ fi
+ # remove setup_vars_opencv4.sh as its content is confusing and useless
+ if [ -f ${D}${bindir}/setup_vars_opencv4.sh ]; then
+ rm -rf ${D}${bindir}/setup_vars_opencv4.sh
+ fi
+}
diff --git a/meta-oe/recipes-support/openldap/openldap/0001-configure-Pass-pthread_t-to-pthread_detach.patch b/meta-oe/recipes-support/openldap/openldap/0001-configure-Pass-pthread_t-to-pthread_detach.patch
deleted file mode 100644
index 6e73f8b382..0000000000
--- a/meta-oe/recipes-support/openldap/openldap/0001-configure-Pass-pthread_t-to-pthread_detach.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 7577b120acda087bf3f5f613c2c72663b3864ad8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 4 Sep 2022 09:43:06 -0700
-Subject: [PATCH] configure: Pass pthread_t to pthread_detach
-
-This helps compilers when using C2X standard
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 0978eeb..58d15f8 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1467,10 +1467,7 @@ pthread_rwlock_t rwlock;
- dnl save the flags
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[
- #include <pthread.h>
--#ifndef NULL
--#define NULL (void*)0
--#endif
--]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
-+]], [[pthread_detach((pthread_t)-1);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
- ])
-
- if test $ol_cv_func_pthread_detach = no ; then
---
-2.37.3
-
diff --git a/meta-oe/recipes-support/openldap/openldap/0001-ldif-filter-fix-parallel-build-failure.patch b/meta-oe/recipes-support/openldap/openldap/0001-ldif-filter-fix-parallel-build-failure.patch
deleted file mode 100644
index b42bd9764f..0000000000
--- a/meta-oe/recipes-support/openldap/openldap/0001-ldif-filter-fix-parallel-build-failure.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 9e4ccd1e78ceac8de1ab66ee62ee216f1fbd4956 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Thu, 2 Dec 2021 11:38:15 +0800
-Subject: [PATCH] ldif-filter: fix parallel build failure
-
-Add slapd-common.o as dependency for ldif-filter to fix the parallel
-build failure:
- ld: cannot find slapd-common.o: No such file or directory
-
-Upstream-Status: Pending
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- tests/progs/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/progs/Makefile.in b/tests/progs/Makefile.in
-index 13f1e8be2..e4f4ccf98 100644
---- a/tests/progs/Makefile.in
-+++ b/tests/progs/Makefile.in
-@@ -56,7 +56,7 @@ slapd-modify: slapd-modify.o $(OBJS) $(XLIBS)
- slapd-bind: slapd-bind.o $(OBJS) $(XLIBS)
- $(LTLINK) -o $@ slapd-bind.o $(OBJS) $(LIBS)
-
--ldif-filter: ldif-filter.o $(XLIBS)
-+ldif-filter: ldif-filter.o $(OBJS) $(XLIBS)
- $(LTLINK) -o $@ ldif-filter.o $(OBJS) $(LIBS)
-
- slapd-mtread: slapd-mtread.o $(OBJS) $(XLIBS)
---
-2.25.1
-
diff --git a/meta-oe/recipes-support/openldap/openldap/0001-libraries-Makefile.in-ignore-the-mkdir-errors.patch b/meta-oe/recipes-support/openldap/openldap/0001-libraries-Makefile.in-ignore-the-mkdir-errors.patch
deleted file mode 100644
index 552726bb0a..0000000000
--- a/meta-oe/recipes-support/openldap/openldap/0001-libraries-Makefile.in-ignore-the-mkdir-errors.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 690f69791eb6cd0d7e94b4d73219ee864de27f62 Mon Sep 17 00:00:00 2001
-From: Yi Zhao <yi.zhao@windriver.com>
-Date: Mon, 10 Jan 2022 10:13:51 +0800
-Subject: [PATCH] libraries/Makefile.in: ignore the mkdir errors
-
-Ignore the mkdir errors to fix the parallel build failure:
-
-../../build/shtool mkdir -p TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-wrs-linux-gnueabi/openldap/2.5.9-r0/image/usr/lib
-mkdir: cannot create directory 'TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-wrs-linux-gnueabi/openldap/2.5.9-r0/image/usr/lib': File exists
-
-Upstream-Status: Pending
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- libraries/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libraries/Makefile.in b/libraries/Makefile.in
-index d9cb2ff..c6b251f 100644
---- a/libraries/Makefile.in
-+++ b/libraries/Makefile.in
-@@ -24,7 +24,7 @@ PKGCONFIG_DIR=$(DESTDIR)$(libdir)/pkgconfig
- PKGCONFIG_SRCDIRS=liblber libldap
-
- install-local:
-- @$(MKDIR) $(PKGCONFIG_DIR)
-+ @-$(MKDIR) $(PKGCONFIG_DIR)
- @for i in $(PKGCONFIG_SRCDIRS); do \
- $(INSTALL_DATA) $$i/*.pc $(PKGCONFIG_DIR); \
- done
---
-2.17.1
-
diff --git a/meta-oe/recipes-support/openldap/openldap/0001-librewrite-include-ldap_pvt_thread.h-before-redefini.patch b/meta-oe/recipes-support/openldap/openldap/0001-librewrite-include-ldap_pvt_thread.h-before-redefini.patch
deleted file mode 100644
index bcd1525b67..0000000000
--- a/meta-oe/recipes-support/openldap/openldap/0001-librewrite-include-ldap_pvt_thread.h-before-redefini.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 79381ab335898c9184e22dd25b544adefa9bf6c5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 7 Feb 2022 16:26:57 -0800
-Subject: [PATCH] librewrite: include ldap_pvt_thread.h before redefining
- calloc
-
-This helps compiling with musl, where sched.h is included by
-ldap_pvt_thread.h which provides prototype for calloc() and conflicts
-
-/usr/include/sched.h:84:7: error: conflicting types for 'ber_memcalloc'
-| void *calloc(size_t, size_t);
-| ^1
-| warning and 1 error generated.
-| ./rewrite-int.h:44:21: note: expanded from macro 'calloc'
-| #define calloc(x,y) ber_memcalloc(x,y)
-| ^
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libraries/librewrite/rewrite-int.h | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/libraries/librewrite/rewrite-int.h b/libraries/librewrite/rewrite-int.h
-index 4481dd3..5ec226d 100644
---- a/libraries/librewrite/rewrite-int.h
-+++ b/libraries/librewrite/rewrite-int.h
-@@ -40,6 +40,11 @@
-
- #include <rewrite.h>
-
-+#ifndef NO_THREADS
-+#define USE_REWRITE_LDAP_PVT_THREADS
-+#include <ldap_pvt_thread.h>
-+#endif
-+
- #define malloc(x) ber_memalloc(x)
- #define calloc(x,y) ber_memcalloc(x,y)
- #define realloc(x,y) ber_memrealloc(x,y)
-@@ -47,11 +52,6 @@
- #undef strdup
- #define strdup(x) ber_strdup(x)
-
--#ifndef NO_THREADS
--#define USE_REWRITE_LDAP_PVT_THREADS
--#include <ldap_pvt_thread.h>
--#endif
--
- /*
- * For details, see RATIONALE.
- */
---
-2.35.1
-
diff --git a/meta-oe/recipes-support/openldap/openldap_2.5.12.bb b/meta-oe/recipes-support/openldap/openldap_2.5.12.bb
deleted file mode 100644
index a8ea84d70f..0000000000
--- a/meta-oe/recipes-support/openldap/openldap_2.5.12.bb
+++ /dev/null
@@ -1,241 +0,0 @@
-SUMMARY = "OpenLDAP Directory Service"
-DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol."
-HOMEPAGE = "http://www.OpenLDAP.org/license.html"
-# The OpenLDAP Public License - see the HOMEPAGE - defines
-# the license. www.openldap.org claims this is Open Source
-# (see http://www.openldap.org), the license appears to be
-# basically BSD. opensource.org does not record this license
-# at present (so it is apparently not OSI certified).
-LICENSE = "OpenLDAP"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=beceb5ac7100b6430640c61655b25c1f \
- file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
- "
-SECTION = "libs"
-
-LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
-
-SRC_URI = "http://www.openldap.org/software/download/OpenLDAP/openldap-release/${BP}.tgz \
- file://initscript \
- file://slapd.service \
- file://remove-user-host-pwd-from-version.patch \
- file://0001-ldif-filter-fix-parallel-build-failure.patch \
- file://0001-build-top.mk-unset-STRIP_OPTS.patch \
- file://0001-libraries-Makefile.in-ignore-the-mkdir-errors.patch \
- file://0001-librewrite-include-ldap_pvt_thread.h-before-redefini.patch \
- file://0001-configure-Pass-pthread_t-to-pthread_detach.patch \
-"
-
-SRC_URI[sha256sum] = "d5086cbfc49597fa7d0670a429a9054552d441b16ee8b2435412797ab0e37b96"
-
-DEPENDS = "util-linux groff-native"
-
-inherit autotools-brokensep update-rc.d systemd pkgconfig
-
-# CV SETTINGS
-# Required to work round AC_FUNC_MEMCMP which gets the wrong answer
-# when cross compiling (should be in site?)
-EXTRA_OECONF += "ac_cv_func_memcmp_working=yes"
-
-# CONFIG DEFINITIONS
-# The following is necessary because it cannot be determined for a
-# cross compile automagically. Select should yield fine on all OE
-# systems...
-EXTRA_OECONF += "--with-yielding-select=yes"
-# Shared libraries are nice...
-EXTRA_OECONF += "--enable-dynamic"
-
-PACKAGECONFIG ??= "asyncmeta gnutls modules \
- mdb ldap meta null passwd proxycache dnssrv \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
-"
-#--with-tls with TLS/SSL support auto|openssl|gnutls [auto]
-PACKAGECONFIG[gnutls] = "--with-tls=gnutls,,gnutls"
-PACKAGECONFIG[openssl] = "--with-tls=openssl,,openssl"
-
-PACKAGECONFIG[sasl] = "--with-cyrus-sasl,--without-cyrus-sasl,cyrus-sasl"
-PACKAGECONFIG[modules] = "lt_cv_dlopen_self=yes --enable-modules,--disable-modules,libtool"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
-
-# SLAPD options
-#
-# UNIX crypt(3) passwd support:
-EXTRA_OECONF += "--enable-crypt"
-
-# SLAPD BACKEND
-#
-# The backend must be set by the configuration. This controls the
-# required database.
-#
-# Backends="asyncmeta dnssrv ldap mdb meta ndb null passwd perl relay sock sql wt"
-#
-# Note that multiple backends can be built. The ldbm backend requires a
-# build-time choice of database API. To use the gdbm (or other) API the
-# Berkely database module must be removed from the build.
-md = "${libexecdir}/openldap"
-#
-
-#--enable-asyncmeta enable asyncmeta backend no|yes|mod no
-PACKAGECONFIG[asyncmeta] = "--enable-asyncmeta=mod,--enable-asyncmeta=no"
-
-#--enable-dnssrv enable dnssrv backend no|yes|mod no
-PACKAGECONFIG[dnssrv] = "--enable-dnssrv=mod,--enable-dnssrv=no"
-
-#--enable-ldap enable ldap backend no|yes|mod no
-PACKAGECONFIG[ldap] = "--enable-ldap=mod,--enable-ldap=no,"
-
-#--enable-mdb enable mdb database backend no|yes|mod [yes]
-PACKAGECONFIG[mdb] = "--enable-mdb=yes,--enable-mdb=no,"
-
-#--enable-meta enable metadirectory backend no|yes|mod no
-PACKAGECONFIG[meta] = "--enable-meta=mod,--enable-meta=no,"
-
-#--enable-ndb enable MySQL NDB Cluster backend no|yes|mod [no]
-PACKAGECONFIG[ndb] = "--enable-ndb=mod,--enable-ndb=no,"
-
-#--enable-null enable null backend no|yes|mod no
-PACKAGECONFIG[null] = "--enable-null=mod,--enable-null=no,"
-
-#--enable-passwd enable passwd backend no|yes|mod no
-PACKAGECONFIG[passwd] = "--enable-passwd=mod,--enable-passwd=no,"
-
-#--enable-perl enable perl backend no|yes|mod no
-# This requires a loadable perl dynamic library, if enabled without
-# doing something appropriate (building perl?) the build will pick
-# up the build machine perl - not good (inherit perlnative?)
-PACKAGECONFIG[perl] = "--enable-perl=mod,--enable-perl=no,perl"
-
-#--enable-relay enable relay backend no|yes|mod [yes]
-PACKAGECONFIG[relay] = "--enable-relay=mod,--enable-relay=no,"
-
-#--enable-sock enable sock backend no|yes|mod [no]
-PACKAGECONFIG[sock] = "--enable-sock=mod,--enable-sock=no,"
-
-#--enable-sql enable sql backend no|yes|mod no
-# sql requires some sql backend which provides sql.h, sqlite* provides
-# sqlite.h (which may be compatible but hasn't been tried.)
-PACKAGECONFIG[sql] = "--enable-sql=mod,--enable-sql=no,sqlite3"
-
-#--enable-wt enable wt backend no|yes|mod no
-# back-wt is marked currently as experimental
-PACKAGECONFIG[wt] = "--enable-wt=mod,--enable-wt=no"
-
-#--enable-dyngroup Dynamic Group overlay no|yes|mod no
-# This is a demo, Proxy Cache defines init_module which conflicts with the
-# same symbol in dyngroup
-PACKAGECONFIG[dyngroup] = "--enable-dyngroup=mod,--enable-dyngroup=no,"
-
-#--enable-proxycache Proxy Cache overlay no|yes|mod no
-PACKAGECONFIG[proxycache] = "--enable-proxycache=mod,--enable-proxycache=no,"
-FILES:${PN}-overlay-proxycache = "${md}/pcache-*.so.*"
-PACKAGES += "${PN}-overlay-proxycache"
-
-# Append URANDOM_DEVICE='/dev/urandom' to CPPFLAGS:
-# This allows tls to obtain random bits from /dev/urandom, by default
-# it was disabled for cross-compiling.
-CPPFLAGS:append = " -D_GNU_SOURCE -DURANDOM_DEVICE=\\"/dev/urandom\\" -fPIC"
-
-LDFLAGS:append = " -pthread"
-
-do_configure() {
- rm -f ${S}/libtool
- aclocal
- libtoolize --force --copy
- gnu-configize
- cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/ltmain.sh ${S}/build
- cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/missing ${S}/build
- cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/compile ${S}/build
- autoconf
- oe_runconf
-}
-
-LEAD_SONAME = "libldap-${LDAP_VER}.so.*"
-
-# The executables go in a separate package. This allows the
-# installation of the libraries with no daemon support.
-# Each module also has its own package - see above.
-PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin"
-
-# Package contents - shift most standard contents to -bin
-FILES:${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data"
-FILES:${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \
- ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \
- ${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*"
-FILES:${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp"
-FILES:${PN}-bin = "${bindir}"
-FILES:${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so ${libdir}/pkgconfig/*.pc"
-FILES:${PN}-dbg += "${libexecdir}/openldap/.debug"
-
-do_install:append() {
- install -d ${D}${sysconfdir}/init.d
- cat ${WORKDIR}/initscript > ${D}${sysconfdir}/init.d/openldap
- chmod 755 ${D}${sysconfdir}/init.d/openldap
- # This is duplicated in /etc/openldap and is for slapd
- rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example
-
- # Installing slapd under ${sbin} is more FHS and LSB compliance
- mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd
- rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
- SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema slapmodify"
- cd ${D}/${sbindir}/
- rm -f ${SLAPTOOLS}
- for i in ${SLAPTOOLS}; do ln -sf slapd $i; done
-
- rmdir "${D}${localstatedir}/run"
- rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/slapd.service ${D}${systemd_unitdir}/system/
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/*.service
-
- # Uses mdm as the database
- # and localstatedir as data directory ...
- sed -e 's/# modulepath/modulepath/' \
- -e 's/# moduleload\s*back_bdb.*/moduleload back_mdb/' \
- -e 's/database\s*bdb/database mdb/' \
- -e 's%^directory\s*.*%directory ${localstatedir}/${BPN}/data/%' \
- -i ${D}${sysconfdir}/openldap/slapd.conf
-
- mkdir -p ${D}${localstatedir}/${BPN}/data
-}
-
-INITSCRIPT_PACKAGES = "${PN}-slapd"
-INITSCRIPT_NAME:${PN}-slapd = "openldap"
-INITSCRIPT_PARAMS:${PN}-slapd = "defaults"
-SYSTEMD_PACKAGES = "${PN}-slapd"
-SYSTEMD_SERVICE:${PN}-slapd = "slapd.service"
-SYSTEMD_AUTO_ENABLE:${PN}-slapd ?= "disable"
-
-PACKAGES_DYNAMIC += "^${PN}-backends.* ^${PN}-backend-.*"
-
-# The modules require their .so to be dynamicaly loaded
-INSANE_SKIP:${PN}-backend-asyncmeta += "dev-so"
-INSANE_SKIP:${PN}-backend-dnssrv += "dev-so"
-INSANE_SKIP:${PN}-backend-ldap += "dev-so"
-INSANE_SKIP:${PN}-backend-meta += "dev-so"
-INSANE_SKIP:${PN}-backend-mdb += "dev-so"
-INSANE_SKIP:${PN}-backend-null += "dev-so"
-INSANE_SKIP:${PN}-backend-passwd += "dev-so"
-
-python populate_packages:prepend () {
- backend_dir = d.expand('${libexecdir}/openldap')
- do_split_packages(d, backend_dir, r'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True)
- do_split_packages(d, backend_dir, r'back_([a-z]*)\-.*\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True)
-
- metapkg = "${PN}-backends"
- d.setVar('ALLOW_EMPTY:' + metapkg, "1")
- d.setVar('FILES:' + metapkg, "")
- metapkg_rdepends = []
- packages = d.getVar('PACKAGES').split()
- for pkg in packages[1:]:
- if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"):
- metapkg_rdepends.append(pkg)
- d.setVar('RDEPENDS:' + metapkg, ' '.join(metapkg_rdepends))
- d.setVar('DESCRIPTION:' + metapkg, 'OpenLDAP backends meta package')
- packages.append(metapkg)
- d.setVar('PACKAGES', ' '.join(packages))
-}
-
-BBCLASSEXTEND = "native"
-
-# CVE-2015-3276 has no target code.
-CVE_CHECK_IGNORE += "CVE-2015-3276"
diff --git a/meta-oe/recipes-support/openldap/openldap_2.6.7.bb b/meta-oe/recipes-support/openldap/openldap_2.6.7.bb
new file mode 100644
index 0000000000..e807fdef16
--- /dev/null
+++ b/meta-oe/recipes-support/openldap/openldap_2.6.7.bb
@@ -0,0 +1,231 @@
+SUMMARY = "OpenLDAP Directory Service"
+DESCRIPTION = "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol."
+HOMEPAGE = "http://www.OpenLDAP.org/license.html"
+# The OpenLDAP Public License - see the HOMEPAGE - defines
+# the license. www.openldap.org claims this is Open Source
+# (see http://www.openldap.org), the license appears to be
+# basically BSD. opensource.org does not record this license
+# at present (so it is apparently not OSI certified).
+LICENSE = "OpenLDAP"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=beceb5ac7100b6430640c61655b25c1f \
+ file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
+ "
+SECTION = "libs"
+
+LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
+
+SRC_URI = "http://www.openldap.org/software/download/OpenLDAP/openldap-release/${BP}.tgz \
+ file://initscript \
+ file://slapd.service \
+ file://remove-user-host-pwd-from-version.patch \
+ file://0001-build-top.mk-unset-STRIP_OPTS.patch \
+"
+
+SRC_URI[sha256sum] = "cd775f625c944ed78a3da18a03b03b08eea73c8aabc97b41bb336e9a10954930"
+
+DEPENDS = "util-linux groff-native"
+
+inherit autotools-brokensep update-rc.d systemd pkgconfig
+
+# CV SETTINGS
+# Required to work round AC_FUNC_MEMCMP which gets the wrong answer
+# when cross compiling (should be in site?)
+EXTRA_OECONF += "ac_cv_func_memcmp_working=yes"
+
+# CONFIG DEFINITIONS
+# The following is necessary because it cannot be determined for a
+# cross compile automagically. Select should yield fine on all OE
+# systems...
+EXTRA_OECONF += "--with-yielding-select=yes"
+# Shared libraries are nice...
+EXTRA_OECONF += "--enable-dynamic"
+
+PACKAGECONFIG ??= "asyncmeta gnutls modules \
+ mdb ldap meta null passwd proxycache dnssrv \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
+"
+#--with-tls with TLS/SSL support auto|openssl|gnutls [auto]
+PACKAGECONFIG[gnutls] = "--with-tls=gnutls,,gnutls"
+PACKAGECONFIG[openssl] = "--with-tls=openssl,,openssl"
+
+PACKAGECONFIG[sasl] = "--with-cyrus-sasl,--without-cyrus-sasl,cyrus-sasl"
+PACKAGECONFIG[modules] = "lt_cv_dlopen_self=yes --enable-modules,--disable-modules,libtool"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
+
+# SLAPD options
+#
+# UNIX crypt(3) passwd support:
+EXTRA_OECONF += "--enable-crypt"
+
+# SLAPD BACKEND
+#
+# The backend must be set by the configuration. This controls the
+# required database.
+#
+# Backends="asyncmeta dnssrv ldap mdb meta null passwd perl relay sock sql wt"
+#
+# Note that multiple backends can be built. The ldbm backend requires a
+# build-time choice of database API. To use the gdbm (or other) API the
+# Berkely database module must be removed from the build.
+md = "${libexecdir}/openldap"
+#
+
+#--enable-asyncmeta enable asyncmeta backend no|yes|mod no
+PACKAGECONFIG[asyncmeta] = "--enable-asyncmeta=mod,--enable-asyncmeta=no"
+
+#--enable-dnssrv enable dnssrv backend no|yes|mod no
+PACKAGECONFIG[dnssrv] = "--enable-dnssrv=mod,--enable-dnssrv=no"
+
+#--enable-ldap enable ldap backend no|yes|mod no
+PACKAGECONFIG[ldap] = "--enable-ldap=mod,--enable-ldap=no,"
+
+#--enable-mdb enable mdb database backend no|yes|mod [yes]
+PACKAGECONFIG[mdb] = "--enable-mdb=yes,--enable-mdb=no,"
+
+#--enable-meta enable metadirectory backend no|yes|mod no
+PACKAGECONFIG[meta] = "--enable-meta=mod,--enable-meta=no,"
+
+#--enable-null enable null backend no|yes|mod no
+PACKAGECONFIG[null] = "--enable-null=mod,--enable-null=no,"
+
+#--enable-passwd enable passwd backend no|yes|mod no
+PACKAGECONFIG[passwd] = "--enable-passwd=mod,--enable-passwd=no,"
+
+#--enable-perl enable perl backend no|yes|mod no
+# This requires a loadable perl dynamic library, if enabled without
+# doing something appropriate (building perl?) the build will pick
+# up the build machine perl - not good (inherit perlnative?)
+PACKAGECONFIG[perl] = "--enable-perl=mod,--enable-perl=no,perl"
+
+#--enable-relay enable relay backend no|yes|mod [yes]
+PACKAGECONFIG[relay] = "--enable-relay=mod,--enable-relay=no,"
+
+#--enable-sock enable sock backend no|yes|mod [no]
+PACKAGECONFIG[sock] = "--enable-sock=mod,--enable-sock=no,"
+
+#--enable-sql enable sql backend no|yes|mod no
+# sql requires some sql backend which provides sql.h, sqlite* provides
+# sqlite.h (which may be compatible but hasn't been tried.)
+PACKAGECONFIG[sql] = "--enable-sql=mod,--enable-sql=no,sqlite3"
+
+#--enable-wt enable wt backend no|yes|mod no
+# back-wt is marked currently as experimental
+PACKAGECONFIG[wt] = "--enable-wt=mod,--enable-wt=no"
+
+#--enable-dyngroup Dynamic Group overlay no|yes|mod no
+# This is a demo, Proxy Cache defines init_module which conflicts with the
+# same symbol in dyngroup
+PACKAGECONFIG[dyngroup] = "--enable-dyngroup=mod,--enable-dyngroup=no,"
+
+#--enable-proxycache Proxy Cache overlay no|yes|mod no
+PACKAGECONFIG[proxycache] = "--enable-proxycache=mod,--enable-proxycache=no,"
+FILES:${PN}-overlay-proxycache = "${md}/pcache.so.*"
+PACKAGES += "${PN}-overlay-proxycache"
+
+# Append URANDOM_DEVICE='/dev/urandom' to CPPFLAGS:
+# This allows tls to obtain random bits from /dev/urandom, by default
+# it was disabled for cross-compiling.
+CPPFLAGS:append = " -D_GNU_SOURCE -DURANDOM_DEVICE=\\"/dev/urandom\\" -fPIC"
+
+LDFLAGS:append = " -pthread"
+
+do_configure() {
+ rm -f ${S}/libtool
+ aclocal
+ libtoolize --force --copy
+ gnu-configize
+ cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/ltmain.sh ${S}/build
+ cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/missing ${S}/build
+ cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/compile ${S}/build
+ autoconf
+ oe_runconf
+}
+
+LEAD_SONAME = "libldap-${LDAP_VER}.so.*"
+
+# The executables go in a separate package. This allows the
+# installation of the libraries with no daemon support.
+# Each module also has its own package - see above.
+PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin"
+
+# Package contents - shift most standard contents to -bin
+FILES:${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data"
+FILES:${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \
+ ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \
+ ${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*"
+FILES:${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp"
+FILES:${PN}-bin = "${bindir}"
+FILES:${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so ${libdir}/pkgconfig/*.pc"
+FILES:${PN}-dbg += "${libexecdir}/openldap/.debug"
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/init.d
+ cat ${WORKDIR}/initscript > ${D}${sysconfdir}/init.d/openldap
+ chmod 755 ${D}${sysconfdir}/init.d/openldap
+ # This is duplicated in /etc/openldap and is for slapd
+ rm -f ${D}${localstatedir}/openldap-data/DB_CONFIG.example
+
+ # Installing slapd under ${sbin} is more FHS and LSB compliance
+ mv ${D}${libexecdir}/slapd ${D}/${sbindir}/slapd
+ rmdir --ignore-fail-on-non-empty ${D}${libexecdir}
+ SLAPTOOLS="slapadd slapcat slapdn slapindex slappasswd slaptest slapauth slapacl slapschema slapmodify"
+ cd ${D}/${sbindir}/
+ rm -f ${SLAPTOOLS}
+ for i in ${SLAPTOOLS}; do ln -sf slapd $i; done
+
+ rmdir "${D}${localstatedir}/run"
+ rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/slapd.service ${D}${systemd_unitdir}/system/
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/*.service
+
+ # Uses mdm as the database
+ # and localstatedir as data directory ...
+ sed -e 's/# modulepath/modulepath/' \
+ -e 's/# moduleload\s*back_bdb.*/moduleload back_mdb/' \
+ -e 's/database\s*bdb/database mdb/' \
+ -e 's%^directory\s*.*%directory ${localstatedir}/${BPN}/data/%' \
+ -i ${D}${sysconfdir}/openldap/slapd.conf
+
+ mkdir -p ${D}${localstatedir}/${BPN}/data
+}
+
+INITSCRIPT_PACKAGES = "${PN}-slapd"
+INITSCRIPT_NAME:${PN}-slapd = "openldap"
+INITSCRIPT_PARAMS:${PN}-slapd = "defaults"
+SYSTEMD_PACKAGES = "${PN}-slapd"
+SYSTEMD_SERVICE:${PN}-slapd = "slapd.service"
+SYSTEMD_AUTO_ENABLE:${PN}-slapd ?= "disable"
+
+PACKAGES_DYNAMIC += "^${PN}-backends.* ^${PN}-backend-.*"
+
+# The modules require their .so to be dynamicaly loaded
+INSANE_SKIP:${PN}-backend-asyncmeta += "dev-so"
+INSANE_SKIP:${PN}-backend-dnssrv += "dev-so"
+INSANE_SKIP:${PN}-backend-ldap += "dev-so"
+INSANE_SKIP:${PN}-backend-meta += "dev-so"
+INSANE_SKIP:${PN}-backend-mdb += "dev-so"
+INSANE_SKIP:${PN}-backend-null += "dev-so"
+INSANE_SKIP:${PN}-backend-passwd += "dev-so"
+
+python populate_packages:prepend () {
+ backend_dir = d.expand('${libexecdir}/openldap')
+ do_split_packages(d, backend_dir, r'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True)
+ do_split_packages(d, backend_dir, r'back_([a-z]*)\.so\..*$', 'openldap-backend-%s', 'OpenLDAP %s backend', extra_depends='', allow_links=True)
+
+ metapkg = "${PN}-backends"
+ d.setVar('ALLOW_EMPTY:' + metapkg, "1")
+ d.setVar('FILES:' + metapkg, "")
+ metapkg_rdepends = []
+ packages = d.getVar('PACKAGES').split()
+ for pkg in packages[1:]:
+ if pkg.count("openldap-backend-") and not pkg in metapkg_rdepends and not pkg.count("-dev") and not pkg.count("-dbg") and not pkg.count("static") and not pkg.count("locale"):
+ metapkg_rdepends.append(pkg)
+ d.setVar('RDEPENDS:' + metapkg, ' '.join(metapkg_rdepends))
+ d.setVar('DESCRIPTION:' + metapkg, 'OpenLDAP backends meta package')
+ packages.append(metapkg)
+ d.setVar('PACKAGES', ' '.join(packages))
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/opensc/opensc_0.22.0.bb b/meta-oe/recipes-support/opensc/opensc_0.22.0.bb
deleted file mode 100644
index f8b4af0c4f..0000000000
--- a/meta-oe/recipes-support/opensc/opensc_0.22.0.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "Smart card library and applications"
-DESCRIPTION = "OpenSC is a tool for accessing smart card devices. Basic\
-functionality (e.g. SELECT FILE, READ BINARY) should work on any ISO\
-7816-4 compatible smart card. Encryption and decryption using private\
-keys on the smart card is possible with PKCS\
-such as the FINEID (Finnish Electronic IDentity) card. Swedish Posten\
-eID cards have also been confirmed to work."
-
-HOMEPAGE = "http://www.opensc-project.org/opensc/"
-SECTION = "System Environment/Libraries"
-LICENSE = "LGPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=cb8aedd3bced19bd8026d96a8b6876d7"
-
-#v0.21.0
-SRCREV = "c902e1992195e00ada12d71beb1029287cd72037"
-SRC_URI = "git://github.com/OpenSC/OpenSC;branch=master;protocol=https \
- "
-DEPENDS = "virtual/libiconv openssl"
-
-S = "${WORKDIR}/git"
-inherit autotools pkgconfig bash-completion
-
-EXTRA_OECONF = " \
- --disable-static \
- --disable-ctapi \
- --disable-doc \
- --disable-strict \
-"
-EXTRA_OEMAKE = "DESTDIR=${D}"
-
-PACKAGECONFIG ??= "pcsc"
-
-PACKAGECONFIG[openct] = "--enable-openct,--disable-openct,openct"
-PACKAGECONFIG[pcsc] = "--enable-pcsc,--disable-pcsc,pcsc-lite,pcsc-lite pcsc-lite-lib"
-
-RDEPENDS:${PN} = "readline"
-
-FILES:${PN} += "\
- ${libdir}/opensc-pkcs11.so \
- ${libdir}/onepin-opensc-pkcs11.so \
- ${libdir}/pkcs11-spy.so \
-"
-FILES:${PN}-dev += "\
- ${libdir}/pkcs11/opensc-pkcs11.so \
- ${libdir}/pkcs11/onepin-opensc-pkcs11.so \
- ${libdir}/pkcs11/pkcs11-spy.so \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/opensc/opensc_0.25.0.bb b/meta-oe/recipes-support/opensc/opensc_0.25.0.bb
new file mode 100644
index 0000000000..02c9c7e806
--- /dev/null
+++ b/meta-oe/recipes-support/opensc/opensc_0.25.0.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Smart card library and applications"
+DESCRIPTION = "OpenSC is a tool for accessing smart card devices. Basic\
+functionality (e.g. SELECT FILE, READ BINARY) should work on any ISO\
+7816-4 compatible smart card. Encryption and decryption using private\
+keys on the smart card is possible with PKCS\
+such as the FINEID (Finnish Electronic IDentity) card. Swedish Posten\
+eID cards have also been confirmed to work."
+
+HOMEPAGE = "https://github.com/OpenSC/OpenSC/wiki"
+SECTION = "System Environment/Libraries"
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cb8aedd3bced19bd8026d96a8b6876d7"
+
+#v0.21.0
+SRCREV = "67986eda93a3a359a897f0b0be97f4315dde8d42"
+SRC_URI = "git://github.com/OpenSC/OpenSC;branch=master;protocol=https \
+ "
+DEPENDS = "virtual/libiconv openssl"
+
+S = "${WORKDIR}/git"
+inherit autotools pkgconfig bash-completion
+
+EXTRA_OECONF = " \
+ --disable-static \
+ --disable-ctapi \
+ --disable-doc \
+ --disable-strict \
+"
+EXTRA_OEMAKE = "DESTDIR=${D}"
+
+PACKAGECONFIG ??= "pcsc"
+
+PACKAGECONFIG[openct] = "--enable-openct,--disable-openct,openct"
+PACKAGECONFIG[pcsc] = "--enable-pcsc,--disable-pcsc,pcsc-lite,pcsc-lite pcsc-lite-lib"
+
+RDEPENDS:${PN} = "readline"
+
+FILES:${PN} += "\
+ ${libdir}/opensc-pkcs11.so \
+ ${libdir}/onepin-opensc-pkcs11.so \
+ ${libdir}/pkcs11-spy.so \
+"
+FILES:${PN}-dev += "\
+ ${libdir}/onepin-opensc-pkcs11.so \
+ ${libdir}/pkcs11/opensc-pkcs11.so \
+ ${libdir}/pkcs11/onepin-opensc-pkcs11.so \
+ ${libdir}/pkcs11/pkcs11-spy.so \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/p910nd/p910nd_0.97.bb b/meta-oe/recipes-support/p910nd/p910nd_0.97.bb
index a27edb1410..c6a3079ea2 100644
--- a/meta-oe/recipes-support/p910nd/p910nd_0.97.bb
+++ b/meta-oe/recipes-support/p910nd/p910nd_0.97.bb
@@ -2,21 +2,27 @@ DESCRIPTION = "A small network printer daemon for embedded situations that passe
HOMEPAGE = "http://p910nd.sourceforge.net/"
SECTION = "console/utils"
LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=3d82780e8917b360cbee7b9ec3e40734"
-PR = "r2"
-SRC_URI = "${SOURCEFORGE_MIRROR}/p910nd/p910nd-${PV}.tar.bz2 \
+# v0.97
+SRCREV = "57ebc07ad8723ea4106090536c58c7f7160743e2"
+SRC_URI = "git://github.com/kenyapcomau/p910nd;protocol=https;branch=master \
file://fix-var-lock.patch"
-SRC_URI[md5sum] = "69461a6c54dca0b13ecad5b83864b43e"
-SRC_URI[sha256sum] = "4ac980a3ae24babae6f70f0a692625ece03a4a92c357fbb10d2e368386c3c26f"
+S = "${WORKDIR}/git"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "p910nd"
+INITSCRIPT_PARAMS = "start 90 2 3 4 5 . stop 60 0 1 6 ."
do_compile () {
- ${CC} ${LDFLAGS} -o p910nd p910nd.c
+ ${CC} ${CFLAGS} ${LDFLAGS} -o p910nd p910nd.c
}
do_install () {
install -D -m 0755 ${S}/p910nd ${D}${sbindir}/p910nd
- install -D -m 0644 ${S}/p910nd.conf ${D}${sysconfdir}/p910nd.conf
+ install -D -m 0644 ${S}/aux/p910nd.conf ${D}${sysconfdir}/sysconfig/p910nd.conf
+ install -D -m 0644 ${S}/aux/p910nd.init ${D}${sysconfdir}/init.d/p910nd
}
diff --git a/meta-oe/recipes-support/pcp/pcp-native_5.3.6.bb b/meta-oe/recipes-support/pcp/pcp-native_5.3.6.bb
deleted file mode 100644
index 5f3c9b6f00..0000000000
--- a/meta-oe/recipes-support/pcp/pcp-native_5.3.6.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-require pcp.inc
-inherit python3native native
-#autotools-brokensep
-DEPENDS = "python3-native python3-setuptools-native flex-native bison-native"
-
-export PCP_DIR = "${D}"
-export PCP_TMP_DIR = "${D}/tmp"
-export PCP_BIN_DIR = "${D}/usr/bin"
-
-B = "${S}"
-
-do_configure:prepend() {
- export SED=${TMPDIR}/hosttools/sed
- export AR=${TMPDIR}/hosttools/ar
-# export PYTHON=python3
-
- rm -rf ${S}/include/pcp/configsz.h
- rm -rf ${S}/include/pcp/platformsz.h
-
-}
-do_compile:prepend() {
- sed -i -e "s,#undef HAVE_64BIT_LONG,,g" \
- -e "s,#undef HAVE_64BIT_PTR,,g" \
- -e "s,#undef PM_SIZEOF_SUSECONDS_T,,g" \
- -e "s,#undef PM_SIZEOF_TIME_T,,g" \
- ${S}/src/include/pcp/config.h.in
-
- export AR=${TMPDIR}/hosttools/ar
-# export PYTHON=python3
-}
-
-do_compile() {
- oe_runmake default_pcp
-}
-
-do_install () {
- oe_runmake install \
- PCP_ETC_DIR=${D}/${sysconfdir} \
- PCP_SYSCONF_DIR=${D}/${sysconfdir} \
- PCP_VAR_DIR=${D}/${localstatedir} \
- PCP_SHARE_DIR=${D}/${datadir} \
- PCP_BIN_DIR=${D}/${bindir} \
- PCP_BINADM_DIR=${D}/${libexecdir}/pcp/bin \
- PCP_LIBADM_DIR=${D}/${libdir} \
- PCP_LIB_DIR=${D}/${libdir} \
- PCP_MAN_DIR=${D}/${mandir} \
- PCP_DOC_DIR=${D}/${docdir}
-}
-#| chkacc1.c:8:10: fatal error: localconfig.h: No such file or directory
-#| 8 | #include "localconfig.h"
-#| | ^~~~~~~~~~~~~~~
-PARALLEL_MAKE = ""
-
diff --git a/meta-oe/recipes-support/pcp/pcp-native_6.0.5.bb b/meta-oe/recipes-support/pcp/pcp-native_6.0.5.bb
new file mode 100644
index 0000000000..2f37b099b4
--- /dev/null
+++ b/meta-oe/recipes-support/pcp/pcp-native_6.0.5.bb
@@ -0,0 +1,48 @@
+require pcp.inc
+inherit python3native native
+#autotools-brokensep
+DEPENDS = "python3-native python3-setuptools-native flex-native bison-native"
+
+export PCP_DIR = "${D}"
+export PCP_TMP_DIR = "${D}/tmp"
+export PCP_BIN_DIR = "${D}/usr/bin"
+
+B = "${S}"
+
+do_configure:prepend() {
+ export SED=${TMPDIR}/hosttools/sed
+ export AR=${TMPDIR}/hosttools/ar
+# export PYTHON=python3
+
+ rm -rf ${S}/include/pcp/configsz.h
+ rm -rf ${S}/include/pcp/platformsz.h
+
+}
+do_compile:prepend() {
+ sed -i -e "s,#undef HAVE_64BIT_LONG,,g" \
+ -e "s,#undef HAVE_64BIT_PTR,,g" \
+ -e "s,#undef PM_SIZEOF_SUSECONDS_T,,g" \
+ -e "s,#undef PM_SIZEOF_TIME_T,,g" \
+ ${S}/src/include/pcp/config.h.in
+
+ export AR=${TMPDIR}/hosttools/ar
+# export PYTHON=python3
+}
+
+do_compile() {
+ oe_runmake default_pcp
+}
+
+do_install () {
+ oe_runmake install \
+ PCP_ETC_DIR=${D}/${sysconfdir} \
+ PCP_SYSCONF_DIR=${D}/${sysconfdir} \
+ PCP_VAR_DIR=${D}/${localstatedir} \
+ PCP_SHARE_DIR=${D}/${datadir} \
+ PCP_BIN_DIR=${D}/${bindir} \
+ PCP_BINADM_DIR=${D}/${libexecdir}/pcp/bin \
+ PCP_LIBADM_DIR=${D}/${libdir} \
+ PCP_LIB_DIR=${D}/${libdir} \
+ PCP_MAN_DIR=${D}/${mandir} \
+ PCP_DOC_DIR=${D}/${docdir}
+}
diff --git a/meta-oe/recipes-support/pcp/pcp.inc b/meta-oe/recipes-support/pcp/pcp.inc
index 708ebfe7ab..4cafa7234b 100644
--- a/meta-oe/recipes-support/pcp/pcp.inc
+++ b/meta-oe/recipes-support/pcp/pcp.inc
@@ -9,24 +9,32 @@ COMPATIBLE_HOST:libc-musl = "null"
SRC_URI = "https://performancecopilot.jfrog.io/artifactory/pcp-source-release/${BP}.src.tar.gz \
file://0001-configure-Limit-the-header-search-to-sysroot.patch \
+ file://0001-htop-Change-dependency-order-of-header-and-sourcefil.patch \
file://config.linux \
"
-SRC_URI[sha256sum] = "6ef33b7aa14c09860ba7cd8873e76d38ccd24eab0c94a50e235f813e77fe3610"
+SRC_URI[sha256sum] = "dacf92ba195f1f2ea8f40bf0c455d2cd2456273a1e30dcc3ee5b5bfd099a99ee"
inherit setuptools3-base pkgconfig autotools-brokensep
# Specify any options you want to pass to the configure script using EXTRA_OECONF:
CACHED_CONFIGUREVARS = "PACKAGE_DISTRIBUTION=arch"
-EXTRA_OECONF:append = " --with-dstat-symlink=yes --with-infiniband=no \
- --with-pmdapodman=no --with-python=no --with-python3=yes --with-perl=no \
- --with-pmdabcc=no --with-pmdajson=no --with-perfevent=no \
- --with-pmdabcc=yes \
- --with-rundir=${localstatedir}/run \
- --with-sysconfigdir=${sysconfdir} \
- --with-logdir=${localstatedir}/log \
- --with-docdir=${docdir} \
- "
+EXTRA_OECONF:append = "\
+ --with-dstat-symlink=yes \
+ --with-infiniband=no \
+ --with-python=no \
+ --with-perl=no \
+ --with-python3=yes \
+ --with-pmdajson=no \
+ --with-perfevent=no \
+ --with-pmdabcc=yes \
+ --with-rundir=${localstatedir}/run \
+ --with-sysconfigdir=${sysconfdir} \
+ --with-logdir=${localstatedir}/log \
+ --with-docdir=${docdir} \
+ "
PACKAGECONFIG[qt5] = "--with-qt=yes --with-qt3d=yes,--with-qt=no --with-qt3d=no,qtbase qt3d"
PACKAGECONFIG ?= ""
+
+PARALLEL_MAKE = ""
diff --git a/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch b/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch
index 292499850e..abf4aee61d 100644
--- a/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch
+++ b/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch
@@ -11,11 +11,9 @@ Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
src/libpcp/src/GNUmakefile | 1 -
2 files changed, 7 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index 5b25382..5d24714 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -623,12 +623,6 @@ fi
+@@ -607,12 +607,6 @@ fi
which=$WHICH
AC_SUBST(which)
@@ -28,18 +26,14 @@ index 5b25382..5d24714 100644
ar=$AR
AC_SUBST(ar)
-diff --git a/src/libpcp/src/GNUmakefile b/src/libpcp/src/GNUmakefile
-index 3c4ccd6..d1eba19 100644
--- a/src/libpcp/src/GNUmakefile
+++ b/src/libpcp/src/GNUmakefile
-@@ -176,7 +176,6 @@ exports: exports.in mk.exports
- # cases
+@@ -179,8 +179,6 @@ exports: exports.in mk.exports
+ # consistent in all placess.
#
check.done: $(OBJECTS)
- ./check-statics
+- ./check-errorcodes
touch check.done
ifneq ($(LIBTARGET),)
---
-2.25.1
-
diff --git a/meta-oe/recipes-support/pcp/pcp/0001-configure-Limit-the-header-search-to-sysroot.patch b/meta-oe/recipes-support/pcp/pcp/0001-configure-Limit-the-header-search-to-sysroot.patch
index 591f94f374..b03c48e581 100644
--- a/meta-oe/recipes-support/pcp/pcp/0001-configure-Limit-the-header-search-to-sysroot.patch
+++ b/meta-oe/recipes-support/pcp/pcp/0001-configure-Limit-the-header-search-to-sysroot.patch
@@ -14,11 +14,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
configure.ac | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index 5d24714..4e2d8ec 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -913,7 +913,7 @@ AC_DEFUN([PCP_CHECK_PYTHON_HEADER],
+@@ -907,7 +907,7 @@ AC_DEFUN([PCP_CHECK_PYTHON_HEADER],
[ PY_MAJOR="$1"
PY_MINOR="$2"
PY_VERSION="python$PY_MAJOR.$PY_MINOR"
@@ -27,7 +25,7 @@ index 5d24714..4e2d8ec 100644
saved_CFLAGS="$CFLAGS"
saved_CPPFLAGS="$CPPFLAGS"
CFLAGS="$CFLAGS $PY_INCLUDE_DIRS"
-@@ -1524,7 +1524,7 @@ AC_SUBST(qmake)
+@@ -1603,7 +1603,7 @@ AC_SUBST(qmake)
enable_qt3d=false
AS_IF([test "x$do_qt3d" != "xno"], [
@@ -36,45 +34,7 @@ index 5d24714..4e2d8ec 100644
then
enable_qt3d=$enable_qt
elif test x"$do_qt3d" = x"yes"
-@@ -3810,13 +3810,13 @@ then
-
- saved_CFLAGS="$CFLAGS"
- saved_CPPFLAGS="$CPPFLAGS"
-- NSS_INC_DIRS="-I/usr/include/nss -I/usr/include/nss3"
-- NSPR_INC_DIRS="-I/usr/include/nspr -I/usr/include/nspr4"
-+ NSS_INC_DIRS="-I${STAGING_INCDIR}/nss -I${STAGING_INCDIR}/nss3"
-+ NSPR_INC_DIRS="-I${STAGING_INCDIR}/nspr -I${STAGING_INCDIR}/nspr4"
- CFLAGS="$CFLAGS $NSS_INC_DIRS $NSPR_INC_DIRS"
- CPPFLAGS="$CPPFLAGS $NSS_INC_DIRS $NSPR_INC_DIRS"
-
-- AC_CHECK_HEADERS([nss/nss.h], [NSSCFLAGS=-I/usr/include/nss], [
-- AC_CHECK_HEADERS([nss3/nss.h], [NSSCFLAGS=-I/usr/include/nss3], [
-+ AC_CHECK_HEADERS([nss/nss.h], [NSSCFLAGS=-I${STAGING_INCDIR}/nss], [
-+ AC_CHECK_HEADERS([nss3/nss.h], [NSSCFLAGS=-I${STAGING_INCDIR}/nss3], [
- enable_secure=false
- if test "$do_secure" = "yes"
- then
-@@ -3826,8 +3826,8 @@ then
- ])
- AC_SUBST(NSSCFLAGS)
-
-- AC_CHECK_HEADERS([nspr/nspr.h], [NSPRCFLAGS=-I/usr/include/nspr], [
-- AC_CHECK_HEADERS([nspr4/nspr.h], [NSPRCFLAGS=-I/usr/include/nspr4], [
-+ AC_CHECK_HEADERS([nspr/nspr.h], [NSPRCFLAGS=-I${STAGING_INCDIR}/nspr], [
-+ AC_CHECK_HEADERS([nspr4/nspr.h], [NSPRCFLAGS=-I${STAGING_INCDIR}/nspr4], [
- enable_secure=false
- if test "$do_secure" = "yes"
- then
-@@ -3837,7 +3837,7 @@ then
- ])
- AC_SUBST(NSPRCFLAGS)
-
-- AC_CHECK_HEADERS([sasl/sasl.h], [SASLCFLAGS=-I/usr/include/sasl], [
-+ AC_CHECK_HEADERS([sasl/sasl.h], [SASLCFLAGS=-I${STAGING_INCDIR}/sasl], [
- enable_secure=false
- if test "$do_secure" = "yes"
- then
-@@ -3938,7 +3938,7 @@ AC_SUBST(enable_decompression)
+@@ -3699,7 +3699,7 @@ AC_SUBST(enable_decompression)
AC_SUBST(enable_lzma)
dnl check for array sessions
@@ -83,6 +43,3 @@ index 5d24714..4e2d8ec 100644
then
pcp_mpi_dirs=libpcp_mpi\ libpcp_mpiread
else
---
-2.35.1
-
diff --git a/meta-oe/recipes-support/pcp/pcp/0001-htop-Change-dependency-order-of-header-and-sourcefil.patch b/meta-oe/recipes-support/pcp/pcp/0001-htop-Change-dependency-order-of-header-and-sourcefil.patch
new file mode 100644
index 0000000000..009dfe2d04
--- /dev/null
+++ b/meta-oe/recipes-support/pcp/pcp/0001-htop-Change-dependency-order-of-header-and-sourcefil.patch
@@ -0,0 +1,36 @@
+From c123980d6bf1bc2bf93ee0dd0d7f8fee3d4ddc96 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Jul 2023 08:45:14 -0700
+Subject: [PATCH] htop: Change dependency order of header and sourcefiles
+
+Fixes build race
+| pcp/Platform.h:29:10: fatal error: DiskIOMeter.h: No such file or directory
+| 29 | #include "DiskIOMeter.h"
+| | ^~~~~~~~~~~~~~~
+| compilation terminated.
+| make[3]: *** [<builtin>: pcp-htop.o] Error 1
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/pcp/htop/GNUmakefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/pcp/htop/GNUmakefile b/src/pcp/htop/GNUmakefile
+index 6b7c0c5..5153c63 100644
+--- a/src/pcp/htop/GNUmakefile
++++ b/src/pcp/htop/GNUmakefile
+@@ -186,8 +186,8 @@ CFGMETERS = $(patsubst %,pcp/meters/%,$(METERS))
+ CFGCOLUMNS = $(patsubst %,pcp/columns/%,$(COLUMNS))
+
+ CFGXFILES = $(CFGMETERS) $(CFGCOLUMNS)
+-TOPXFILES = $(TOPCFILES) $(TOPHFILES) $(DOCFILES)
+-SUBXFILES = $(SUBCFILES) $(SUBHFILES)
++TOPXFILES = $(TOPHFILES) $(TOPCFILES) $(DOCFILES)
++SUBXFILES = $(SUBHFILES) $(SUBCFILES)
+ CFILES = $(TOPCFILES) $(SUBCFILES)
+ HFILES = $(TOPHFILES) $(SUBHFILES)
+ LDIRT = $(TOPXFILES) $(SUBXFILES) $(CFGXFILES) \
+--
+2.41.0
+
diff --git a/meta-oe/recipes-support/pcp/pcp/fix_parallel_make.patch b/meta-oe/recipes-support/pcp/pcp/fix_parallel_make.patch
index 630f51a494..9cb649a594 100644
--- a/meta-oe/recipes-support/pcp/pcp/fix_parallel_make.patch
+++ b/meta-oe/recipes-support/pcp/pcp/fix_parallel_make.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- a/qa/src/GNUlocaldefs
+++ b/qa/src/GNUlocaldefs
@@ -728,7 +728,7 @@ scale.o: localconfig.h
diff --git a/meta-oe/recipes-support/pcp/pcp_5.3.6.bb b/meta-oe/recipes-support/pcp/pcp_5.3.6.bb
deleted file mode 100644
index 0543d77a78..0000000000
--- a/meta-oe/recipes-support/pcp/pcp_5.3.6.bb
+++ /dev/null
@@ -1,228 +0,0 @@
-require pcp.inc
-#inherit perlnative
-
-# NOTE: the following prog dependencies are unknown, ignoring: gtar gzip pkgmk xmlto lzma qshape md5sum pod2man publican git makedepend qmake-qt4 xconfirm true gmake xz dblatex hdiutil rpm bzip2 which mkinstallp dtrace seinfo qmake-qt5 gawk dlltool rpmbuild dpkg makepkg qmake echo
-# NOTE: unable to map the following pkg-config dependencies: libmicrohttpd libsystemd-journal
-# (this is based on recipes that have previously been built and packaged)
-# NOTE: the following library dependencies are unknown, ignoring: nspr gen ibumad regex sasl2 pfm nss papi ibmad
-# (this is based on recipes that have previously been built and packaged)
-DEPENDS += "perl-native bison-native flex-native python3-native python3-setuptools python3 \
- pcp-native cairo zlib ncurses readline libx11 avahi openssl"
-
-
-SRC_URI += "file://0001-Remove-unsuitble-part-for-cross-compile.patch \
- file://pass-options-to-AR.patch \
- file://fix_parallel_make.patch \
- "
-
-export PCP_DIR="${RECIPE_SYSROOT_NATIVE}"
-#export PCP_RUN_DIR="${RECIPE_SYSROOT_NATIVE}"
-EXTRA_OEMAKE = "CC="${CC}" LD="${LD}""
-inherit useradd systemd features_check
-
-# Needs libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SYSTEMD_AUTO_ENABLE:${PN} = "enable"
-SYSTEMD_SERVICE:${PN} = "pmcd.service pmcd.service pmie_check.service pmie_farm_check.service \
- pmlogger_daily.service pmlogger_farm_check.service pmfind.service \
- pmie_daily.service pmlogger.service pmlogger_daily_report.service \
- pmproxy.service pmie.service pmie_farm.service pmlogger_check.service \
- pmlogger_farm.service"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --home ${localstatedir}/lib/pcp --no-create-home \
- --user-group pcp"
-
-USERADD_PACKAGES += "${PN}-testsuite"
-USERADD_PARAM:${PN}-testsuite = "--system --home ${localstatedir}/lib/pcp/testsuite --no-create-home \
- --user-group pcpqa"
-
-RDEPENDS:${PN} += "perl"
-RDEPENDS:${PN}-testsuite += "${PN} bash perl"
-RDEPENDS:python3-${PN} += "${PN} python3"
-
-do_configure:prepend () {
- cp ${WORKDIR}/config.linux ${B}
- rm -rf ${S}/include/pcp/configsz.h
- rm -rf ${S}/include/pcp/platformsz.h
- export SED=${TMPDIR}/hosttools/sed
- export PYTHON=python3
-}
-
-do_compile:prepend() {
- sed -i -e "s,#undef HAVE_64BIT_LONG,,g" \
- -e "s,#undef HAVE_64BIT_PTR,,g" \
- -e "s,#undef PM_SIZEOF_SUSECONDS_T,,g" \
- -e "s,#undef PM_SIZEOF_TIME_T,,g" \
- ${S}/src/include/pcp/config.h.in
- sed -i -e "s,HAVE_PYTHON_ORDEREDDICT = false,HAVE_PYTHON_ORDEREDDICT = true,g" \
- ${S}/src/include/builddefs
- sed -i -e "s,TOPDIR)/python3-pcp.list,TOPDIR)/python3-pcp.list --install-lib=${PYTHON_SITEPACKAGES_DIR},g" ${S}/src/python/GNUmakefile
- export PYTHON=python3
- #export PYTHON3=${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN}
-}
-
-do_compile() {
- oe_runmake default_pcp
-}
-
-do_install () {
- export NO_CHOWN=true
- oe_runmake install DIST_ROOT=${D}\
- install_pcp
-
- rm -rf ${D}${localstatedir}/log
- rm -rf ${D}${localstatedir}/lib/pcp/pmcd
- rm -rf ${D}${localstatedir}/lib/pcp/tmp
- rm -rf ${D}${localstatedir}/run
- mv ${D}${docdir}/C* ${D}${docdir}/pcp-doc/
- mv ${D}${docdir}/I* ${D}${docdir}/pcp-doc/
- mv ${D}${docdir}/R* ${D}${docdir}/pcp-doc/
- mv ${D}${docdir}/V* ${D}${docdir}/pcp-doc/
- sed -i "s#PCP_AWK_PROG=.*#PCP_AWK_PROG=awk#" ${D}/${sysconfdir}/pcp.conf
- sed -i "s#PCP_SORT_PROG=.*#PCP_SORT_PROG=sort#" ${D}/${sysconfdir}/pcp.conf
- sed -i "s#PCP_ECHO_PROG=.*#PCP_ECHO_PROG=echo#" ${D}/${sysconfdir}/pcp.conf
- sed -i "s#PCP_WHICH_PROG=.*#PCP_WHICH_PROG=which#" ${D}/${sysconfdir}/pcp.conf
-}
-
-PACKAGES += " ${PN}-export-zabbix-agent ${PN}-testsuite \
- libpcp-gui2 libpcp-gui2-dev \
- libpcp-import1 \
- libpcp-mmv1 libpcp-mmv1-dev \
- libpcp-pmda3 libpcp-pmda3-dev \
- libpcp-trace2 libpcp-trace2-dev \
- libpcp-web1 libpcp-web1-dev \
- libpcp3 libpcp3-dev python3-${PN}\
-"
-FILES:libpcp-gui2 = "${libdir}/libpcp_gui.so.2 \
-"
-FILES:libpcp-gui2-dev = " \
- ${libdir}/libpcp_gui.so \
- ${libdir}/libpcp_gui.a \
- ${includedir}/pmafm.h \
- ${includedir}/pmtime.h \
-"
-FILES:libpcp-mmv1 = " \
- ${libdir}/libpcp_mmv.so.1 \
-"
-FILES:libpcp-mmv1-dev = " \
- ${libdir}/libpcp_mmv.a \
- ${libdir}/libpcp_mmv.so \
- ${libdir}/libpcp_mmv.so \
- ${includedir}/mmv_stats.h \
- ${includedir}/mmv_dev.h \
- ${datadir}/man/man3/mmv_* \
- ${datadir}/man/man5/mmv.5.gz \
-"
-FILES:libpcp-import1 = " \
- ${libdir}/libpcp_import.so.1 \
-"
-FILES:libpcp-pmda3 = " \
- ${libdir}/libpcp_pmda.so.3 \
-"
-FILES:libpcp-pmda3-dev = " \
- ${includedir}/pmda.h \
- ${includedir}/pmdaroot.h \
- ${libdir}/libpcp_pmda.a \
- ${libdir}/libpcp_pmda.so \
- ${libdir}/pkgconfig/libpcp_pmda.pc \
- ${datadir}/man/man3/PMDA.3.gz \
- ${datadir}/man/man3/pmda* \
-"
-FILES:libpcp-trace2 = " \
- ${libdir}/libpcp_trace.so.2 \
-"
-FILES:libpcp-trace2-dev = " \
- ${includedir}/trace.h \
- ${includedir}/trace_dev.h \
- ${libdir}/libpcp_trace.a \
- ${libdir}/libpcp_trace.so \
- ${datadir}/man/man3/pmtrace* \
-"
-FILES:libpcp-web1 = " \
- ${libdir}/libpcp_web.so.1 \
-"
-FILES:libpcp-web1-dev = " \
- ${includedir}/pmhttp.h \
- ${includedir}/pmjson.h \
- ${libdir}/libpcp_web.a \
- ${libdir}/libpcp_web.so \
- ${datadir}/man/man3/pmhttp* \
- ${datadir}/man/man3/pmjson* \
-"
-FILES:libpcp3 = " \
- ${libdir}/libpcp.so.3 \
-"
-
-FILES:${PN} = " \
- ${sysconfdir}/pcp \
- ${sysconfdir}/cron.d \
- ${sysconfdir}/init.d \
- ${libexecdir} \
- ${bindir} \
- ${datadir}/bash-completion \
- ${datadir}/pcp-gui \
- ${datadir}/zsh \
- ${systemd_system_unitdir}/ \
- ${libdir}/pcp/ \
- ${datadir}/pcp \
- ${libdir}/*.sh \
- ${datadir}/man \
- ${libdir}/rc-proc.sh.minimal \
- ${sysconfdir}/p* \
- ${sysconfdir}/s* \
- ${localstatedir}/lib/pcp/config \
- ${localstatedir}/lib/pcp/pmdas/ \
- ${localstatedir}/lib/pcp/pmns \
- ${libdir}/libpcp_fault.so.3 \
-"
-
-FILES:${PN}-export-zabbix-agent += " \
- ${libdir}/zabbix \
- ${sysconfdir}/zabbix \
- ${mandir}/man3/zbxpcp.3.gz \
- ${libdir}/zabbix \
-"
-FILES:${PN}-testsuite = "${localstatedir}/lib/pcp/testsuite/"
-FILES:python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}"
-FILES:${PN}-dev += " \
- ${includedir}/pcp \
- ${libdir}/libpcp.a \
- ${libdir}/libpcp.so \
- ${localstatedir}/lib/pcp/pmdas/*/*.so \
- ${libexecdir}/pcp/bin/install-sh \
- ${libdir}/pkgconfig/libpcp.pc \
- ${libdir}/zabbix/modules/*.so \
- ${datadir}/man/man3/LOGIMPORT.3.gz \
- ${datadir}/man/man3/P* \
- ${datadir}/man/man3/Q* \
- ${datadir}/man/man3/__pm* \
- ${datadir}/man/man3/pmA* \
- ${datadir}/man/man3/pmC* \
- ${datadir}/man/man3/pmD* \
- ${datadir}/man/man3/pmE* \
- ${datadir}/man/man3/pmF* \
- ${datadir}/man/man3/pmG* \
- ${datadir}/man/man3/pmH* \
- ${datadir}/man/man3/pmI* \
- ${datadir}/man/man3/pmL* \
- ${datadir}/man/man3/pmM* \
- ${datadir}/man/man3/pmN* \
- ${datadir}/man/man3/pmO* \
- ${datadir}/man/man3/pmP* \
- ${datadir}/man/man3/pmR* \
- ${datadir}/man/man3/pmS* \
- ${datadir}/man/man3/pmT* \
- ${datadir}/man/man3/pmU* \
- ${datadir}/man/man3/pmW* \
- ${datadir}/man/man3/pmf* \
- ${datadir}/man/man3/pmg* \
- ${datadir}/man/man3/pmi* \
- ${datadir}/man/man3/pms* \
- ${datadir}/man/man3/pmt* \
-"
-#| chkacc1.c:8:10: fatal error: localconfig.h: No such file or directory
-#| 8 | #include "localconfig.h"
-#| | ^~~~~~~~~~~~~~~
-PARALLEL_MAKE = ""
diff --git a/meta-oe/recipes-support/pcp/pcp_6.0.5.bb b/meta-oe/recipes-support/pcp/pcp_6.0.5.bb
new file mode 100644
index 0000000000..6a93b2ec90
--- /dev/null
+++ b/meta-oe/recipes-support/pcp/pcp_6.0.5.bb
@@ -0,0 +1,236 @@
+require pcp.inc
+#inherit perlnative
+
+# NOTE: the following prog dependencies are unknown, ignoring: gtar gzip pkgmk xmlto lzma qshape md5sum pod2man publican git makedepend qmake-qt4 xconfirm true gmake xz dblatex hdiutil rpm bzip2 which mkinstallp dtrace seinfo qmake-qt5 gawk dlltool rpmbuild dpkg makepkg qmake echo
+# NOTE: unable to map the following pkg-config dependencies: libmicrohttpd libsystemd-journal
+# (this is based on recipes that have previously been built and packaged)
+# NOTE: the following library dependencies are unknown, ignoring: nspr gen ibumad regex sasl2 pfm nss papi ibmad
+# (this is based on recipes that have previously been built and packaged)
+DEPENDS += "perl-native bison-native flex-native python3-native python3-setuptools python3 \
+ pcp-native cairo zlib ncurses readline libx11 avahi openssl"
+
+
+SRC_URI += "file://0001-Remove-unsuitble-part-for-cross-compile.patch \
+ file://pass-options-to-AR.patch \
+ file://fix_parallel_make.patch \
+ "
+
+export PCP_DIR="${RECIPE_SYSROOT_NATIVE}"
+#export PCP_RUN_DIR="${RECIPE_SYSROOT_NATIVE}"
+EXTRA_OEMAKE = "CC="${CC}" LD="${LD}""
+inherit useradd systemd features_check python3targetconfig
+
+# Needs libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
+SYSTEMD_SERVICE:${PN} = "\
+ pmie_farm_check.service \
+ pmie_farm.service \
+ pmfind.service \
+ pmlogger_farm_check.service \
+ pmcd.service \
+ pmie.service \
+ pmlogger_daily.service \
+ pmlogger.service \
+ pmlogger_farm.service \
+ pmie_check.service \
+ pmproxy.service \
+ pmlogger_check.service \
+ pmie_daily.service"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --home ${localstatedir}/lib/pcp --no-create-home \
+ --user-group pcp"
+
+USERADD_PACKAGES += "${PN}-testsuite"
+USERADD_PARAM:${PN}-testsuite = "--system --home ${localstatedir}/lib/pcp/testsuite --no-create-home \
+ --user-group pcpqa"
+
+RDEPENDS:${PN} += "perl"
+RDEPENDS:${PN}-testsuite += "${PN} bash perl"
+RDEPENDS:python3-${PN} += "${PN} python3"
+
+do_configure:prepend () {
+ cp ${WORKDIR}/config.linux ${B}
+ rm -rf ${S}/include/pcp/configsz.h
+ rm -rf ${S}/include/pcp/platformsz.h
+ export SED=${TMPDIR}/hosttools/sed
+ export PYTHON=python3
+}
+
+do_compile:prepend() {
+ sed -i -e "s,#undef HAVE_64BIT_LONG,,g" \
+ -e "s,#undef HAVE_64BIT_PTR,,g" \
+ -e "s,#undef PM_SIZEOF_SUSECONDS_T,,g" \
+ -e "s,#undef PM_SIZEOF_TIME_T,,g" \
+ ${S}/src/include/pcp/config.h.in
+ sed -i -e "s,HAVE_PYTHON_ORDEREDDICT = false,HAVE_PYTHON_ORDEREDDICT = true,g" \
+ ${S}/src/include/builddefs
+ sed -i -e "s,TOPDIR)/python3-pcp.list,TOPDIR)/python3-pcp.list --install-lib=${PYTHON_SITEPACKAGES_DIR},g" ${S}/src/python/GNUmakefile
+ export PYTHON=python3
+ #export PYTHON3=${STAGING_BINDIR_NATIVE}/python3-native/python3
+}
+
+do_compile() {
+ oe_runmake default_pcp
+}
+
+do_install () {
+ export NO_CHOWN=true
+ oe_runmake install DIST_ROOT=${D}\
+ install_pcp
+
+ rm -rf ${D}${localstatedir}/log
+ rm -rf ${D}${localstatedir}/lib/pcp/pmcd
+ rm -rf ${D}${localstatedir}/lib/pcp/tmp
+ rm -rf ${D}${localstatedir}/run
+ mv ${D}${docdir}/C* ${D}${docdir}/pcp-doc/
+ mv ${D}${docdir}/I* ${D}${docdir}/pcp-doc/
+ mv ${D}${docdir}/R* ${D}${docdir}/pcp-doc/
+ mv ${D}${docdir}/V* ${D}${docdir}/pcp-doc/
+ sed -i "s#PCP_AWK_PROG=.*#PCP_AWK_PROG=awk#" ${D}/${sysconfdir}/pcp.conf
+ sed -i "s#PCP_SORT_PROG=.*#PCP_SORT_PROG=sort#" ${D}/${sysconfdir}/pcp.conf
+ sed -i "s#PCP_ECHO_PROG=.*#PCP_ECHO_PROG=echo#" ${D}/${sysconfdir}/pcp.conf
+ sed -i "s#PCP_WHICH_PROG=.*#PCP_WHICH_PROG=which#" ${D}/${sysconfdir}/pcp.conf
+}
+
+PACKAGES += " ${PN}-export-zabbix-agent ${PN}-testsuite \
+ libpcp-gui2 libpcp-gui2-dev \
+ libpcp-import1 libpcp-archive1 \
+ libpcp-mmv1 libpcp-mmv1-dev \
+ libpcp-pmda3 libpcp-pmda3-dev \
+ libpcp-trace2 libpcp-trace2-dev \
+ libpcp-web1 libpcp-web1-dev \
+ libpcp3 libpcp3-dev python3-${PN}\
+"
+FILES:libpcp-gui2 = "${libdir}/libpcp_gui.so.2 \
+"
+FILES:libpcp-archive1 = "${libdir}/libpcp_archive.so.1 \
+"
+FILES:libpcp-gui2-dev = " \
+ ${libdir}/libpcp_gui.so \
+ ${libdir}/libpcp_gui.a \
+ ${includedir}/pmafm.h \
+ ${includedir}/pmtime.h \
+"
+FILES:libpcp-mmv1 = " \
+ ${libdir}/libpcp_mmv.so.1 \
+"
+FILES:libpcp-mmv1-dev = " \
+ ${libdir}/libpcp_mmv.a \
+ ${libdir}/libpcp_mmv.so \
+ ${libdir}/libpcp_mmv.so \
+ ${includedir}/mmv_stats.h \
+ ${includedir}/mmv_dev.h \
+ ${datadir}/man/man3/mmv_* \
+ ${datadir}/man/man5/mmv.5.gz \
+"
+FILES:libpcp-import1 = " \
+ ${libdir}/libpcp_import.so.1 \
+"
+FILES:libpcp-pmda3 = " \
+ ${libdir}/libpcp_pmda.so.3 \
+"
+FILES:libpcp-pmda3-dev = " \
+ ${includedir}/pmda.h \
+ ${includedir}/pmdaroot.h \
+ ${libdir}/libpcp_pmda.a \
+ ${libdir}/libpcp_pmda.so \
+ ${libdir}/pkgconfig/libpcp_pmda.pc \
+ ${datadir}/man/man3/PMDA.3.gz \
+ ${datadir}/man/man3/pmda* \
+"
+FILES:libpcp-trace2 = " \
+ ${libdir}/libpcp_trace.so.2 \
+"
+FILES:libpcp-trace2-dev = " \
+ ${includedir}/trace.h \
+ ${includedir}/trace_dev.h \
+ ${libdir}/libpcp_trace.a \
+ ${libdir}/libpcp_trace.so \
+ ${datadir}/man/man3/pmtrace* \
+"
+FILES:libpcp-web1 = " \
+ ${libdir}/libpcp_web.so.1 \
+"
+FILES:libpcp-web1-dev = " \
+ ${includedir}/pmhttp.h \
+ ${includedir}/pmjson.h \
+ ${libdir}/libpcp_web.a \
+ ${libdir}/libpcp_web.so \
+ ${datadir}/man/man3/pmhttp* \
+ ${datadir}/man/man3/pmjson* \
+"
+FILES:libpcp3 = " \
+ ${libdir}/libpcp.so.3 \
+"
+
+FILES:${PN} = " \
+ ${sysconfdir}/pcp \
+ ${sysconfdir}/cron.d \
+ ${sysconfdir}/init.d \
+ ${libexecdir} \
+ ${bindir} \
+ ${datadir}/bash-completion \
+ ${datadir}/pcp-gui \
+ ${datadir}/zsh \
+ ${systemd_system_unitdir}/ \
+ ${libdir}/pcp/ \
+ ${libdir}/sysusers.d/pcp.conf \
+ ${datadir}/pcp \
+ ${libdir}/*.sh \
+ ${datadir}/man \
+ ${libdir}/rc-proc.sh.minimal \
+ ${sysconfdir}/p* \
+ ${sysconfdir}/s* \
+ ${localstatedir}/lib/pcp/config \
+ ${localstatedir}/lib/pcp/pmdas/ \
+ ${localstatedir}/lib/pcp/pmns \
+ ${libdir}/libpcp_fault.so.3 \
+"
+
+FILES:${PN}-export-zabbix-agent += " \
+ ${libdir}/zabbix \
+ ${sysconfdir}/zabbix \
+ ${mandir}/man3/zbxpcp.3.gz \
+ ${libdir}/zabbix \
+"
+FILES:${PN}-testsuite = "${localstatedir}/lib/pcp/testsuite/ ${libdir}/sysusers.d/pcp-testsuite.conf"
+FILES:python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}"
+FILES:${PN}-dev += " \
+ ${includedir}/pcp \
+ ${libdir}/libpcp.a \
+ ${libdir}/libpcp.so \
+ ${localstatedir}/lib/pcp/pmdas/*/*.so \
+ ${libexecdir}/pcp/bin/install-sh \
+ ${libdir}/pkgconfig/libpcp.pc \
+ ${libdir}/zabbix/modules/*.so \
+ ${datadir}/man/man3/LOGIMPORT.3.gz \
+ ${datadir}/man/man3/P* \
+ ${datadir}/man/man3/Q* \
+ ${datadir}/man/man3/__pm* \
+ ${datadir}/man/man3/pmA* \
+ ${datadir}/man/man3/pmC* \
+ ${datadir}/man/man3/pmD* \
+ ${datadir}/man/man3/pmE* \
+ ${datadir}/man/man3/pmF* \
+ ${datadir}/man/man3/pmG* \
+ ${datadir}/man/man3/pmH* \
+ ${datadir}/man/man3/pmI* \
+ ${datadir}/man/man3/pmL* \
+ ${datadir}/man/man3/pmM* \
+ ${datadir}/man/man3/pmN* \
+ ${datadir}/man/man3/pmO* \
+ ${datadir}/man/man3/pmP* \
+ ${datadir}/man/man3/pmR* \
+ ${datadir}/man/man3/pmS* \
+ ${datadir}/man/man3/pmT* \
+ ${datadir}/man/man3/pmU* \
+ ${datadir}/man/man3/pmW* \
+ ${datadir}/man/man3/pmf* \
+ ${datadir}/man/man3/pmg* \
+ ${datadir}/man/man3/pmi* \
+ ${datadir}/man/man3/pms* \
+ ${datadir}/man/man3/pmt* \
+"
diff --git a/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.9.8.bb b/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.9.8.bb
deleted file mode 100644
index 64c9c2a9da..0000000000
--- a/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.9.8.bb
+++ /dev/null
@@ -1,57 +0,0 @@
-SUMMARY = "PC/SC Lite smart card framework and applications"
-HOMEPAGE = "http://pcsclite.alioth.debian.org/"
-LICENSE = "BSD-3-Clause & GPL-3.0-or-later"
-LICENSE:${PN} = "BSD-3-Clause"
-LICENSE:${PN}-lib = "BSD-3-Clause"
-LICENSE:${PN}-doc = "BSD-3-Clause"
-LICENSE:${PN}-dev = "BSD-3-Clause"
-LICENSE:${PN}-dbg = "BSD-3-Clause & GPL-3.0-or-later"
-LICENSE:${PN}-spy = "GPL-3.0-or-later"
-LICENSE:${PN}-spy-dev = "GPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=628c01ba985ecfa21677f5ee2d5202f6"
-DEPENDS = "autoconf-archive-native"
-
-SRC_URI = "https://pcsclite.apdu.fr/files/${BP}.tar.bz2"
-SRC_URI[md5sum] = "d063c6ca17c17fab39a85132811e155d"
-SRC_URI[sha256sum] = "502d80c557ecbee285eb99fe8703eeb667bcfe067577467b50efe3420d1b2289"
-
-inherit autotools systemd pkgconfig perlnative
-
-EXTRA_OECONF = " \
- --disable-libusb \
- --enable-usbdropdir=${libdir}/pcsc/drivers \
-"
-
-S = "${WORKDIR}/pcsc-lite-${PV}"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} udev"
-PACKAGECONFIG:class-native ??= ""
-
-PACKAGECONFIG[systemd] = ",--disable-libsystemd,systemd,"
-PACKAGECONFIG[udev] = "--enable-libudev,--disable-libudev,udev"
-
-PACKAGES = "${PN} ${PN}-dbg ${PN}-dev ${PN}-lib ${PN}-doc ${PN}-spy ${PN}-spy-dev"
-
-RRECOMMENDS:${PN} = "ccid"
-RRECOMMENDS:${PN}:class-native = ""
-RPROVIDES:${PN}:class-native += "pcsc-lite-lib-native"
-
-FILES:${PN} = "${sbindir}/pcscd"
-FILES:${PN}-lib = "${libdir}/libpcsclite*${SOLIBS}"
-FILES:${PN}-dev = "${includedir} \
- ${libdir}/pkgconfig \
- ${libdir}/libpcsclite.la \
- ${libdir}/libpcsclite.so"
-
-FILES:${PN}-spy = "${bindir}/pcsc-spy \
- ${libdir}/libpcscspy*${SOLIBS}"
-FILES:${PN}-spy-dev = "${libdir}/libpcscspy.la \
- ${libdir}/libpcscspy.so "
-
-RPROVIDES:${PN} += "${PN}-systemd"
-RREPLACES:${PN} += "${PN}-systemd"
-RCONFLICTS:${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE:${PN} = "pcscd.socket"
-RDEPENDS:${PN}-spy += "python3-core"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/pcsc-lite/pcsc-lite_2.0.3.bb b/meta-oe/recipes-support/pcsc-lite/pcsc-lite_2.0.3.bb
new file mode 100644
index 0000000000..d5a560a6a0
--- /dev/null
+++ b/meta-oe/recipes-support/pcsc-lite/pcsc-lite_2.0.3.bb
@@ -0,0 +1,58 @@
+SUMMARY = "PC/SC Lite smart card framework and applications"
+HOMEPAGE = "https://pcsclite.apdu.fr/"
+LICENSE = "BSD-3-Clause & GPL-3.0-or-later"
+LICENSE:${PN} = "BSD-3-Clause"
+LICENSE:${PN}-lib = "BSD-3-Clause"
+LICENSE:${PN}-doc = "BSD-3-Clause"
+LICENSE:${PN}-dev = "BSD-3-Clause"
+LICENSE:${PN}-dbg = "BSD-3-Clause & GPL-3.0-or-later"
+LICENSE:${PN}-spy = "GPL-3.0-or-later"
+LICENSE:${PN}-spy-dev = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=628c01ba985ecfa21677f5ee2d5202f6"
+DEPENDS = "autoconf-archive-native flex-native"
+
+SRC_URI = "https://pcsclite.apdu.fr/files/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "f42ee9efa489e9ff5d328baefa26f9c515be65021856e78d99ad1f0ead9ec85d"
+
+inherit autotools systemd pkgconfig perlnative
+
+EXTRA_OECONF = " \
+ --disable-libusb \
+ --enable-usbdropdir=${libdir}/pcsc/drivers \
+"
+
+S = "${WORKDIR}/pcsc-lite-${PV}"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd polkit', d)} udev"
+PACKAGECONFIG:class-native ??= ""
+
+PACKAGECONFIG[systemd] = ",--disable-libsystemd,systemd,"
+PACKAGECONFIG[udev] = "--enable-libudev,--disable-libudev,udev"
+PACKAGECONFIG[polkit] = ",--disable-polkit,polkit"
+
+PACKAGES = "${PN} ${PN}-dbg ${PN}-dev ${PN}-lib ${PN}-doc ${PN}-spy ${PN}-spy-dev"
+
+RRECOMMENDS:${PN} = "ccid"
+RRECOMMENDS:${PN}:class-native = ""
+RPROVIDES:${PN}:class-native += "pcsc-lite-lib-native"
+
+FILES:${PN} = "${sbindir}/pcscd \
+ ${datadir}/polkit-1"
+FILES:${PN}-lib = "${libdir}/libpcsclite*${SOLIBS}"
+FILES:${PN}-dev = "${includedir} \
+ ${libdir}/pkgconfig \
+ ${libdir}/libpcsclite.la \
+ ${libdir}/libpcsclite.so"
+
+FILES:${PN}-spy = "${bindir}/pcsc-spy \
+ ${libdir}/libpcscspy*${SOLIBS}"
+FILES:${PN}-spy-dev = "${libdir}/libpcscspy.la \
+ ${libdir}/libpcscspy.so "
+
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = "pcscd.socket"
+RDEPENDS:${PN}-spy += "python3-core"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.6.0.bb b/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.6.0.bb
deleted file mode 100644
index c9e7eae279..0000000000
--- a/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.6.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Some tools to be used with smart cards and PC/SC"
-HOMEPAGE = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SRC_URI = "git://github.com/LudovicRousseau/pcsc-tools;protocol=https;branch=master"
-
-SRCREV = "c6e9fa746d00e08fc71c57c79e305669ff2e3106"
-
-inherit autotools pkgconfig
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "pcsc-lite"
-
-FILES:${PN} += "${datadir}/pcsc/smartcard_list.txt"
diff --git a/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.7.1.bb b/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.7.1.bb
new file mode 100644
index 0000000000..97a94ec973
--- /dev/null
+++ b/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.7.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Some tools to be used with smart cards and PC/SC"
+HOMEPAGE = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "git://github.com/LudovicRousseau/pcsc-tools;protocol=https;branch=master"
+
+SRCREV = "53834cd33155ae1f0332102b1baca6ce63660fc5"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "pcsc-lite autoconf-archive-native"
+
+RDEPENDS:${PN} += " \
+ ${@bb.utils.contains('DISTRO_FEATURES','systemd','pcsc-lite-systemd', 'pcsc-lite', d)} \
+ perl \
+ perl-module-getopt-std \
+ perl-module-file-stat \
+ libpcsc-perl \
+"
+
+FILES:${PN} += "${datadir}/pcsc/smartcard_list.txt \
+ ${datadir}/pcsc/gscriptor.png"
diff --git a/meta-oe/recipes-support/picocom/picocom/0001-Fix-building-with-musl.patch b/meta-oe/recipes-support/picocom/picocom/0001-Fix-building-with-musl.patch
deleted file mode 100644
index 5b344b9e83..0000000000
--- a/meta-oe/recipes-support/picocom/picocom/0001-Fix-building-with-musl.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 9664809da36bd7bada3e44f50cfc042539fb61ee Mon Sep 17 00:00:00 2001
-From: Paul Eggleton <paul.eggleton@linux.intel.com>
-Date: Sun, 14 Jul 2019 19:13:21 -0700
-Subject: [PATCH] Fix building with musl
-
-Upstream-status: Pending
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
----
- termios2.c | 27 +++++++++++++++++++++++++++
- termios2.h | 5 +++++
- 2 files changed, 32 insertions(+)
-
-diff --git a/termios2.c b/termios2.c
-index 97c3be0..88ff6fc 100644
---- a/termios2.c
-+++ b/termios2.c
-@@ -37,6 +37,7 @@
- #include <errno.h>
- #include <termios.h>
- #include <sys/ioctl.h>
-+#include <asm/ioctls.h>
-
- /* Contains the definition of the termios2 structure and some related
- constants that we should normally include from system
-@@ -53,6 +54,10 @@
- */
- #define IBAUD0 020000000000
-
-+#if !defined(__GLIBC__)
-+#define __MAX_BAUD B4000000
-+#endif
-+
- int
- tc2setattr(int fd, int optional_actions, const struct termios *tios)
- {
-@@ -79,8 +84,13 @@ tc2setattr(int fd, int optional_actions, const struct termios *tios)
- t2.c_cflag = tios->c_cflag;
- t2.c_lflag = tios->c_lflag;
- t2.c_line = tios->c_line;
-+#if !defined(__GLIBC__)
-+ t2.c_ispeed = tios->__c_ispeed;
-+ t2.c_ospeed = tios->__c_ospeed;
-+#else
- t2.c_ispeed = tios->c_ispeed;
- t2.c_ospeed = tios->c_ospeed;
-+#endif
- memcpy(&t2.c_cc[0], &tios->c_cc[0], K_NCCS * sizeof (cc_t));
-
- return ioctl(fd, cmd, &t2);
-@@ -101,8 +111,13 @@ tc2getattr(int fd, struct termios *tios)
- tios->c_cflag = t2.c_cflag;
- tios->c_lflag = t2.c_lflag;
- tios->c_line = t2.c_line;
-+#if !defined(__GLIBC__)
-+ tios->__c_ispeed = t2.c_ispeed;
-+ tios->__c_ospeed = t2.c_ospeed;
-+#else
- tios->c_ispeed = t2.c_ispeed;
- tios->c_ospeed = t2.c_ospeed;
-+#endif
- memcpy(&tios->c_cc[0], &t2.c_cc[0], K_NCCS * sizeof (cc_t));
-
- for (i = K_NCCS; i < NCCS; i++)
-@@ -131,7 +146,11 @@ cf2setispeed(struct termios *tios, speed_t speed)
- errno = EINVAL;
- return -1;
- }
-+#if !defined(__GLIBC__)
-+ tios->__c_ispeed = speed;
-+#else
- tios->c_ispeed = speed;
-+#endif
- tios->c_cflag &= ~((CBAUD | CBAUDEX) << IBSHIFT);
- tios->c_cflag |= (speed << IBSHIFT);
-
-@@ -156,7 +175,11 @@ cf2setospeed_custom(struct termios *tios, int speed)
- }
- tios->c_cflag &= ~(CBAUD | CBAUDEX);
- tios->c_cflag |= BOTHER;
-+#if !defined(__GLIBC__)
-+ tios->__c_ospeed = speed;
-+#else
- tios->c_ospeed = speed;
-+#endif
-
- return 0;
- }
-@@ -177,7 +200,11 @@ cf2setispeed_custom(struct termios *tios, int speed)
- } else {
- tios->c_cflag &= ~((CBAUD | CBAUDEX) << IBSHIFT);
- tios->c_cflag |= (BOTHER << IBSHIFT);
-+#if !defined(__GLIBC__)
-+ tios->__c_ispeed = speed;
-+#else
- tios->c_ispeed = speed;
-+#endif
- }
-
- return 0;
-diff --git a/termios2.h b/termios2.h
-index e13b0e3..63dd0ce 100644
---- a/termios2.h
-+++ b/termios2.h
-@@ -37,8 +37,13 @@
- /* And define these new ones */
- #define cfsetospeed_custom cf2setospeed_custom
- #define cfsetispeed_custom cf2setispeed_custom
-+#if defined(__linux__) && !defined(__GLIBC__)
-+#define cfgetospeed_custom(tiop) ((tiop)->__c_ospeed)
-+#define cfgetispeed_custom(tiop) ((tiop)->__c_ispeed)
-+#else
- #define cfgetospeed_custom(tiop) ((tiop)->c_ospeed)
- #define cfgetispeed_custom(tiop) ((tiop)->c_ispeed)
-+#endif
-
- /* Replacements for the standard tcsetattr(3), tcgetattr(3)
- * functions. Same user interface, but these use the new termios2
diff --git a/meta-oe/recipes-support/picocom/picocom_git.bb b/meta-oe/recipes-support/picocom/picocom_git.bb
index 55dc292710..cc0d88faca 100644
--- a/meta-oe/recipes-support/picocom/picocom_git.bb
+++ b/meta-oe/recipes-support/picocom/picocom_git.bb
@@ -1,16 +1,15 @@
SUMMARY = "Lightweight and minimal dumb-terminal emulation program"
SECTION = "console/utils"
LICENSE = "GPL-2.0-or-later"
-HOMEPAGE = "https://github.com/npat-efault/picocom"
+HOMEPAGE = "https://gitlab.com/wsakernel/picocom"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3000e4830620e310fe65c0eb69df9e8a"
-BASEPV = "3.1"
-PV = "${BASEPV}+git${SRCPV}"
+BASEPV = "2023-04"
+PV = "${BASEPV}+git"
-SRCREV = "90385aabe2b51f39fa130627d46b377569f82d4a"
+SRCREV = "12537df0314767d5af35bddddbbca3694e6a0342"
-SRC_URI = "git://github.com/npat-efault/picocom;branch=master;protocol=https \
- file://0001-Fix-building-with-musl.patch \
+SRC_URI = "git://gitlab.com/wsakernel/picocom;branch=master;protocol=https \
"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/pidgin/icyque_git.bb b/meta-oe/recipes-support/pidgin/icyque_git.bb
index fe75415de2..ed58c4a76f 100644
--- a/meta-oe/recipes-support/pidgin/icyque_git.bb
+++ b/meta-oe/recipes-support/pidgin/icyque_git.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1ebbd3e34237af26da5dc08a4e440464"
DEPENDS = "pidgin json-glib"
-PV = "0.1+gitr${SRCPV}"
+PV = "0.1+git"
inherit pkgconfig
diff --git a/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb b/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb
index c0e1790ec2..6ce42ec187 100644
--- a/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb
+++ b/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb
@@ -25,6 +25,8 @@ PACKAGECONFIG[krb5] = "--with-krb5=yes,--with-krb5=no,krb5"
PACKAGECONFIG[telepathy] = "--enable-telepathy=yes,--enable-telepathy=no,telepathy-glib"
#PACKAGECONFIG[gssapi_only] = "--enable-gssapi-only=yes,--enable-gssapi-only=no,krb5"
PACKAGECONFIG[debug] = "--enable-debug=yes,--enable-debug=no,valgrind"
+# disable Werror by default, useful for dev mode
+PACKAGECONFIG[quality] = "--enable-quality-check=yes,--enable-quality-check=no,"
FILES:${PN}-dev += " \
${libdir}/purple-2/*.la \
diff --git a/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch b/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
index 0a1baa9183..1c4daa9f67 100644
--- a/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
+++ b/meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch
@@ -3,6 +3,8 @@ From: Herrie <github.com@herrie.org>
Date: Mon, 24 Jul 2017 21:30:16 +0200
---
+Upstream-Status: Pending
+
libpurple/protocols/irc/irc.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch b/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch
index 84dbcdc276..cf6207423d 100644
--- a/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch
+++ b/meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch
@@ -3,6 +3,8 @@ From: Herrie <github.com@herrie.org>
Date: Mon, 24 Jul 2017 21:30:16 +0200
---
+Upstream-Status: Pending
+
configure.ac | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb b/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb
index 3d8a45786d..ae251b5a08 100644
--- a/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb
+++ b/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb
@@ -15,10 +15,8 @@ SRC_URI = "\
SRC_URI[sha256sum] = "19654ad276b149646371fbdac21bc7620742f2975f7399fed0ffc1a18fbaf603"
-CVE_CHECK_IGNORE += "\
- CVE-2010-1624 \
- CVE-2011-3594 \
-"
+CVE_STATUS[CVE-2010-1624] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+CVE_STATUS[CVE-2011-3594] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
PACKAGECONFIG ??= "gnutls consoleui avahi dbus idn nss \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 gtk startup-notification', '', d)} \
diff --git a/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb b/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
index 96b97b6744..1981f1ee9c 100644
--- a/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
+++ b/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
@@ -11,7 +11,7 @@ SRC_URI = "git://github.com/EionRobb/skype4pidgin;branch=master;protocol=https"
SRCREV = "b226d1c457d73900ae89b8a7469247fbe33677a6"
S = "${WORKDIR}/git"
-PV = "1.7+git${SRCPV}"
+PV = "1.7+git"
do_compile() {
oe_runmake -C skypeweb;
diff --git a/meta-oe/recipes-support/pkcs11-provider/pkcs11-provider_0.3.bb b/meta-oe/recipes-support/pkcs11-provider/pkcs11-provider_0.3.bb
new file mode 100644
index 0000000000..816ee967c1
--- /dev/null
+++ b/meta-oe/recipes-support/pkcs11-provider/pkcs11-provider_0.3.bb
@@ -0,0 +1,27 @@
+SUMMARY = "An OpenSSL provider that allows direct interfacing with pkcs11 drivers"
+DESCRIPTION = "\
+This is an Openssl 3.x provider to access Hardware or Software Tokens using \
+the PKCS#11 Cryptographic Token Interface\
+\
+This code targets version 3.1 of the interface but should be backwards \
+compatible to previous versions as well.\
+"
+HOMEPAGE = "https://github.com/latchset/pkcs11-provider"
+SECTION = "libs"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b53b787444a60266932bd270d1cf2d45"
+DEPENDS = "\
+ autoconf-archive \
+ openssl \
+ p11-kit \
+"
+
+SRCREV = "58040b4e32975cc1d7f39e424ee7b0097cd11311"
+
+SRC_URI = "git://github.com/latchset/${BPN}.git;branch=main;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+FILES:${PN} += "${libdir}/ossl-modules/pkcs11.so"
diff --git a/meta-oe/recipes-support/pngcheck/pngcheck/0001-make-Respect-variables-from-environement.patch b/meta-oe/recipes-support/pngcheck/pngcheck/0001-make-Respect-variables-from-environement.patch
index 2d0ea0252c..12333cc1f1 100644
--- a/meta-oe/recipes-support/pngcheck/pngcheck/0001-make-Respect-variables-from-environement.patch
+++ b/meta-oe/recipes-support/pngcheck/pngcheck/0001-make-Respect-variables-from-environement.patch
@@ -7,6 +7,8 @@ link with shared zlib
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
Makefile.unx | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/meta-oe/recipes-support/pngcheck/pngcheck/0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch b/meta-oe/recipes-support/pngcheck/pngcheck/0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch
index 6d4465fbed..0fc5a8e0d2 100644
--- a/meta-oe/recipes-support/pngcheck/pngcheck/0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch
+++ b/meta-oe/recipes-support/pngcheck/pngcheck/0001-png-fix-IDAT-windowsize-Fix-format-string-errors-in-.patch
@@ -6,6 +6,8 @@ Subject: [PATCH 1/2] png-fix-IDAT-windowsize: Fix format string errors in
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
gpl/png-fix-IDAT-windowsize.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-support/pngcheck/pngcheck/10-pngsplit-format-strings.patch b/meta-oe/recipes-support/pngcheck/pngcheck/10-pngsplit-format-strings.patch
index f2c86689ec..2ff6d664c0 100644
--- a/meta-oe/recipes-support/pngcheck/pngcheck/10-pngsplit-format-strings.patch
+++ b/meta-oe/recipes-support/pngcheck/pngcheck/10-pngsplit-format-strings.patch
@@ -2,6 +2,8 @@ From: Jari Aalto <jari.aalto@cante.net>
Subject: Correct fomat strings fro hardened build flags
---
+Upstream-Status: Pending
+
gpl/pngsplit.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/meta-oe/recipes-support/poco/poco/0001-Use-std-atomic-int-instead-of-std-atomic-bool.patch b/meta-oe/recipes-support/poco/poco/0001-Use-std-atomic-int-instead-of-std-atomic-bool.patch
new file mode 100644
index 0000000000..b06135222a
--- /dev/null
+++ b/meta-oe/recipes-support/poco/poco/0001-Use-std-atomic-int-instead-of-std-atomic-bool.patch
@@ -0,0 +1,60 @@
+From 4cbb225811205b51b65371d0d8abc2d2af8233b6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 26 Jan 2023 14:56:36 -0800
+Subject: [PATCH] Use std::atomic<int> instead of std::atomic<bool>
+
+GCC on RISCV does not yet support inline subword atomics [1]
+Therefore avoid them until fixed
+
+Upstream-Status: Pending
+
+[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104338
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Foundation/include/Poco/AsyncChannel.h | 2 +-
+ Foundation/src/AsyncChannel.cpp | 5 ++---
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/Foundation/include/Poco/AsyncChannel.h b/Foundation/include/Poco/AsyncChannel.h
+index 190bae7dd..d73ea6c72 100644
+--- a/Foundation/include/Poco/AsyncChannel.h
++++ b/Foundation/include/Poco/AsyncChannel.h
+@@ -111,7 +111,7 @@ private:
+ NotificationQueue _queue;
+ std::size_t _queueSize = 0;
+ std::size_t _dropCount = 0;
+- std::atomic<bool> _closed;
++ std::atomic<int> _closed;
+ };
+
+
+diff --git a/Foundation/src/AsyncChannel.cpp b/Foundation/src/AsyncChannel.cpp
+index 37cdec477..e829b180c 100644
+--- a/Foundation/src/AsyncChannel.cpp
++++ b/Foundation/src/AsyncChannel.cpp
+@@ -48,11 +48,10 @@ private:
+ Message _msg;
+ };
+
+-
+ AsyncChannel::AsyncChannel(Channel::Ptr pChannel, Thread::Priority prio):
+ _pChannel(pChannel),
+ _thread("AsyncChannel"),
+- _closed(false)
++ _closed(0)
+ {
+ _thread.setPriority(prio);
+ }
+@@ -95,7 +94,7 @@ void AsyncChannel::open()
+
+ void AsyncChannel::close()
+ {
+- if (!_closed.exchange(true))
++ if (!_closed.exchange(1))
+ {
+ if (_thread.isRunning())
+ {
+--
+2.39.1
+
diff --git a/meta-oe/recipes-support/poco/poco/0001-cppignore.lnx-Ignore-PKCS12-and-testLaunch-test.patch b/meta-oe/recipes-support/poco/poco/0001-cppignore.lnx-Ignore-PKCS12-and-testLaunch-test.patch
new file mode 100644
index 0000000000..f70e8bcc74
--- /dev/null
+++ b/meta-oe/recipes-support/poco/poco/0001-cppignore.lnx-Ignore-PKCS12-and-testLaunch-test.patch
@@ -0,0 +1,66 @@
+From 879ddb725823c78c9510cfd39786adb16f3726c8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 16 Sep 2023 19:52:56 -0700
+Subject: [PATCH] cppignore.lnx: Ignore PKCS12 and testLaunch test
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+These tests fail on Linux
+
+There were 4 failures:
+ 1: N7CppUnit10TestCallerI11ProcessTestEE.testLaunch
+ "rc == 3"
+ in "/usr/src/debug/poco/1.12.4-r0/Foundation/testsuite/src/ProcessTest.cpp", line 79
+ 2: N7CppUnit10TestCallerI11ProcessTestEE.testLaunchRedirectIn
+ "rc == 100"
+ in "/usr/src/debug/poco/1.12.4-r0/Foundation/testsuite/src/ProcessTest.cpp", line 106
+ 3: N7CppUnit10TestCallerI11ProcessTestEE.testLaunchRedirectOut
+ "s == "Hello, world!""
+ in "/usr/src/debug/poco/1.12.4-r0/Foundation/testsuite/src/ProcessTest.cpp", line 134
+ 4: N7CppUnit10TestCallerI11ProcessTestEE.testLaunchEnv
+ "s == "test""
+ in "/usr/src/debug/poco/1.12.4-r0/Foundation/testsuite/src/ProcessTest.cpp", line 166
+
+ There were 4 errors:-
+ 1: N7CppUnit10TestCallerI7EVPTestEE.testRSAEVPKeyFromPKCS12
+ │ │ "N4Poco17NotFoundExceptionE:
+ Not found: POCO_BASE"
+ │ │ in "<unknown>", line -1
+ 2: N7CppUnit10TestCallerI19PKCS12ContainerTestEE.testFullPKCS12
+ │ │ "N4Poco17NotFoundExceptionE:
+ Not found: POCO_BASE"
+ │ │ in "<unknown>", line -1
+ 3: N7CppUnit10TestCallerI19PKCS12ContainerTestEE.testCertsOnlyPKCS12
+ │ │ "N4Poco17NotFoundExceptionE:
+ Not found: POCO_BASE"
+ │ │ in "<unknown>", line -1
+ 4: N7CppUnit10TestCallerI19PKCS12ContainerTestEE.testPEMReadWrite
+ │ │ "N4Poco17NotFoundExceptionE:
+ Not found: POCO_BASE"
+ │ │ in "<unknown>", line -1
+
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Patrick Wicki <patrick.wicki@siemens.com>
+---
+ cppignore.lnx | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/cppignore.lnx b/cppignore.lnx
+index 2c2376526..65df4af08 100644
+--- a/cppignore.lnx
++++ b/cppignore.lnx
+@@ -28,3 +28,12 @@ CppUnit::TestCaller<HTTPSClientSessionTest>.testProxy
+ CppUnit::TestCaller<HTTPSStreamFactoryTest>.testProxy
+ CppUnit::TestCaller<DNSTest>.testHostByAddress
+ CppUnit::TestCaller<DNSTest>.testHostByName
++CppUnit::TestCaller<ProcessTest>.testLaunch
++CppUnit::TestCaller<ProcessTest>.testLaunchRedirectIn
++CppUnit::TestCaller<ProcessTest>.testLaunchRedirectOut
++CppUnit::TestCaller<ProcessTest>.testLaunchEnv
++CppUnit::TestCaller<EVPTest>.testRSAEVPKeyFromPKCS12
++CppUnit::TestCaller<PKCS12ContainerTest>.testFullPKCS12
++CppUnit::TestCaller<PKCS12ContainerTest>.testCertsOnlyPKCS12
++CppUnit::TestCaller<PKCS12ContainerTest>.testPEMReadWrite
++CppUnit::TestCaller<MongoDBTest>.testArray
diff --git a/meta-oe/recipes-support/poco/poco/0002-fix-build-Install-cmake-files-with-resolved-ENABLE_J.patch b/meta-oe/recipes-support/poco/poco/0002-fix-build-Install-cmake-files-with-resolved-ENABLE_J.patch
new file mode 100644
index 0000000000..427cb9723a
--- /dev/null
+++ b/meta-oe/recipes-support/poco/poco/0002-fix-build-Install-cmake-files-with-resolved-ENABLE_J.patch
@@ -0,0 +1,32 @@
+From e54478c936493c0ed87e875f04127bd13642de44 Mon Sep 17 00:00:00 2001
+From: tyler92 <tyler92@inbox.ru>
+Date: Tue, 21 Nov 2023 05:07:24 +0300
+Subject: [PATCH] fix(build): Install cmake files with resolved ENABLE_JSON and
+ ENABLE_XML (#4227)
+
+Upstream-Status: Backport [https://github.com/pocoproject/poco/pull/4227]
+Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
+
+---
+ Util/cmake/PocoUtilConfig.cmake | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Util/cmake/PocoUtilConfig.cmake b/Util/cmake/PocoUtilConfig.cmake
+index 90c1eab1c..8186435e1 100644
+--- a/Util/cmake/PocoUtilConfig.cmake
++++ b/Util/cmake/PocoUtilConfig.cmake
+@@ -1,9 +1,9 @@
+ include(CMakeFindDependencyMacro)
+ find_dependency(PocoFoundation)
+-if(ENABLE_XML)
++if(@ENABLE_XML@)
+ find_dependency(PocoXML)
+ endif()
+-if(ENABLE_JSON)
++if(@ENABLE_JSON@)
+ find_dependency(PocoJSON)
+ endif()
+ include("${CMAKE_CURRENT_LIST_DIR}/PocoUtilTargets.cmake")
+--
+2.43.0
+
diff --git a/meta-oe/recipes-support/poco/poco/run-ptest b/meta-oe/recipes-support/poco/poco/run-ptest
index c479f7ac10..c8e50fc967 100644
--- a/meta-oe/recipes-support/poco/poco/run-ptest
+++ b/meta-oe/recipes-support/poco/poco/run-ptest
@@ -1,9 +1,21 @@
#!/bin/sh
+export POCO_BASE=/usr/lib/poco/ptest
+export LD_LIBRARY_PATH=${POCO_BASE}/bin:${LD_LIBRARY_PATH}
+i=0
while read runner; do
- pushd . >/dev/null
+ oldpath=`pwd` >/dev/null
cd bin
echo Testing $runner
- ./$runner-testrunner -all
- popd >/dev/null
+ ./$runner -ignore $oldpath/cppignore.lnx -all
+ export res$((i++))=$?
+ cd $oldpath >/dev/null
+done < testrunners
+i=0
+while read runner; do
+ eval assign=\$res$((i++))
+ if [ $assign -ne 0 ]; then
+ echo "FAIL: $runner"
+ else
+ echo "PASS: $runner"
+ fi
done < testrunners
-
diff --git a/meta-oe/recipes-support/poco/poco_1.12.2.bb b/meta-oe/recipes-support/poco/poco_1.12.2.bb
deleted file mode 100644
index 5ecc5b8dee..0000000000
--- a/meta-oe/recipes-support/poco/poco_1.12.2.bb
+++ /dev/null
@@ -1,106 +0,0 @@
-SUMMARY = "Modern, powerful open source cross-platform C++ class libraries"
-DESCRIPTION = "Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems."
-HOMEPAGE = "http://pocoproject.org/"
-SECTION = "libs"
-LICENSE = "BSL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc"
-
-# These dependencies are required by Foundation
-DEPENDS = "libpcre2 zlib"
-
-SRC_URI = "git://github.com/pocoproject/poco.git;branch=master;protocol=https \
- file://run-ptest \
- "
-SRCREV = "be19dc4a2f30eb97cc9bdd7551460db11cc27353"
-
-UPSTREAM_CHECK_GITTAGREGEX = "poco-(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-inherit cmake ptest
-
-# By default the most commonly used poco components are built
-# Foundation is built anyway and doesn't need to be listed explicitly
-# these don't have dependencies outside oe-core
-PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto JWT Data DataSQLite Zip Encodings Redis Prometheus"
-
-PACKAGECONFIG[XML] = "-DENABLE_XML=ON,-DENABLE_XML=OFF,expat"
-PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF"
-PACKAGECONFIG[MongoDB] = "-DENABLE_MONGODB=ON,-DENABLE_MONGODB=OFF"
-PACKAGECONFIG[PDF] = "-DENABLE_PDF=ON,-DENABLE_PDF=OFF,zlib"
-PACKAGECONFIG[Util] = "-DENABLE_UTIL=ON,-DENABLE_UTIL=OFF"
-PACKAGECONFIG[Net] = "-DENABLE_NET=ON,-DENABLE_NET=OFF"
-PACKAGECONFIG[NetSSL] = "-DENABLE_NETSSL=ON,-DENABLE_NETSSL=OFF,openssl"
-PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON,-DENABLE_CRYPTO=OFF,openssl"
-PACKAGECONFIG[JWT] = "-DENABLE_JWT=ON,-DENABLE_JWT=OFF,openssl"
-PACKAGECONFIG[Data] = "-DENABLE_DATA=ON,-DENABLE_DATA=OFF"
-PACKAGECONFIG[DataSQLite] = "-DENABLE_DATA_SQLITE=ON -DSQLITE3_LIBRARY:STRING=sqlite3,-DENABLE_DATA_SQLITE=OFF,sqlite3"
-PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF"
-PACKAGECONFIG[Encodings] = "-DENABLE_ENCODINGS=ON,-DENABLE_ENCODINGS=OFF"
-PACKAGECONFIG[Redis] = "-DENABLE_REDIS=ON,-DENABLE_REDIS=OFF"
-PACKAGECONFIG[Prometheus] = "-DENABLE_PROMETHEUS=ON,-DENABLE_PROMETHEUS=OFF"
-
-# Additional components not build by default,
-# they might have dependencies not included in oe-core
-# or they don't work on all architectures
-PACKAGECONFIG[mod_poco] = "-DENABLE_APACHECONNECTOR=ON,-DENABLE_APACHECONNECTOR=OFF,apr apache2"
-PACKAGECONFIG[CppParser] = "-DENABLE_CPPPARSER=ON,-DENABLE_CPPPARSER=OFF"
-PACKAGECONFIG[DataMySQL] = "-DENABLE_DATA_MYSQL=ON -DMYSQL_LIB:STRING=mysqlclient_r,-DENABLE_DATA_MYSQL=OFF,mariadb"
-PACKAGECONFIG[DataODBC] = "-DENABLE_DATA_ODBC=ON,-DENABLE_DATA_ODBC=OFF,libiodbc"
-PACKAGECONFIG[ActiveRecord] = "-DENABLE_ACTIVERECORD=ON,-DENABLE_ACTIVERECORD=OFF"
-PACKAGECONFIG[ActiveRecordCompiler] = "-DENABLE_ACTIVERECORD_COMPILER=ON,-DENABLE_ACTIVERECORD_COMPILER=OFF"
-PACKAGECONFIG[PageCompiler] = "-DENABLE_PAGECOMPILER=ON,-DENABLE_PAGECOMPILER=OFF"
-PACKAGECONFIG[PageCompilerFile2Page] = "-DENABLE_PAGECOMPILER_FILE2PAGE=ON,-DENABLE_PAGECOMPILER_FILE2PAGE=OFF"
-PACKAGECONFIG[SevenZip] = "-DENABLE_SEVENZIP=ON,-DENABLE_SEVENZIP=OFF"
-
-EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \
- -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
- ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}"
-
-# For the native build we want to use the bundled version
-EXTRA_OECMAKE:append:class-native = " -DPOCO_UNBUNDLED=OFF"
-
-# do not use rpath
-EXTRA_OECMAKE:append = " -DCMAKE_SKIP_RPATH=ON"
-
-LDFLAGS:append:riscv32 = "${@bb.utils.contains('PACKAGECONFIG', 'Prometheus', ' -Wl,--no-as-needed -latomic -Wl,--as-needed', '', d)}"
-LDFLAGS:append:mips = "${@bb.utils.contains('PACKAGECONFIG', 'Prometheus', ' -Wl,--no-as-needed -latomic -Wl,--as-needed', '', d)}"
-
-python populate_packages:prepend () {
- poco_libdir = d.expand('${libdir}')
- pn = d.getVar("PN")
- packages = []
- testrunners = []
-
- def hook(f, pkg, file_regex, output_pattern, modulename):
- packages.append(pkg)
- testrunners.append(modulename)
-
- do_split_packages(d, poco_libdir, r'^libPoco(.*)\.so\..*$',
- 'poco-%s', 'Poco %s component', extra_depends='', prepend=True, hook=hook)
-
- d.setVar("RRECOMMENDS:%s" % pn, " ".join(packages))
- d.setVar("POCO_TESTRUNNERS", "\n".join(testrunners))
-}
-
-do_install_ptest () {
- cp -rf ${B}/bin/ ${D}${PTEST_PATH}
- cp -f ${B}/lib/libCppUnit.so* ${D}${libdir}
- cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/
- find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \;
- echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners"
-}
-
-PACKAGES_DYNAMIC = "poco-.*"
-
-# "poco" is a metapackage which pulls in all Poco components
-ALLOW_EMPTY:${PN} = "1"
-
-# cppunit is only built if tests are enabled
-PACKAGES =+ "${PN}-cppunit"
-FILES:${PN}-cppunit += "${libdir}/libCppUnit.so*"
-ALLOW_EMPTY:${PN}-cppunit = "1"
-
-RDEPENDS:${PN}-ptest += "${PN}-cppunit"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/poco/poco_1.12.5p2.bb b/meta-oe/recipes-support/poco/poco_1.12.5p2.bb
new file mode 100644
index 0000000000..a0bb0b5d96
--- /dev/null
+++ b/meta-oe/recipes-support/poco/poco_1.12.5p2.bb
@@ -0,0 +1,119 @@
+SUMMARY = "Modern, powerful open source cross-platform C++ class libraries"
+DESCRIPTION = "Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems."
+HOMEPAGE = "http://pocoproject.org/"
+SECTION = "libs"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc"
+
+# These dependencies are required by Foundation
+DEPENDS = "libpcre2 zlib"
+
+SRC_URI = "git://github.com/pocoproject/poco.git;branch=master;protocol=https \
+ file://0001-Use-std-atomic-int-instead-of-std-atomic-bool.patch \
+ file://0001-cppignore.lnx-Ignore-PKCS12-and-testLaunch-test.patch \
+ file://run-ptest \
+ file://0002-fix-build-Install-cmake-files-with-resolved-ENABLE_J.patch \
+ "
+SRCREV = "1d6fb3e1383e559cacbada5e3f861c0dafaf5d30"
+
+UPSTREAM_CHECK_GITTAGREGEX = "poco-(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+inherit cmake ptest
+
+# By default the most commonly used poco components are built
+# Foundation is built anyway and doesn't need to be listed explicitly
+# these don't have dependencies outside oe-core
+PACKAGECONFIG ??= "XML JSON PDF Util Net NetSSL Crypto JWT Data DataSQLite Zip Encodings Redis Prometheus"
+# MongoDB does not build for all architectures yet keep in sync with COMPATIBLE_HOST list in mongodb recipe
+# and mongodb needs meta-python enabled as well
+PACKAGECONFIG:remove:riscv32 = "MongoDB"
+PACKAGECONFIG:remove:riscv64 = "MongoDB"
+PACKAGECONFIG:remove:mipsarch = "MongoDB"
+PACKAGECONFIG:remove:powerpc = "MongoDB"
+
+PACKAGECONFIG[XML] = "-DENABLE_XML=ON,-DENABLE_XML=OFF,expat"
+PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF"
+PACKAGECONFIG[MongoDB] = "-DENABLE_MONGODB=ON,-DENABLE_MONGODB=OFF"
+PACKAGECONFIG[PDF] = "-DENABLE_PDF=ON,-DENABLE_PDF=OFF,zlib"
+PACKAGECONFIG[Util] = "-DENABLE_UTIL=ON,-DENABLE_UTIL=OFF"
+PACKAGECONFIG[Net] = "-DENABLE_NET=ON,-DENABLE_NET=OFF"
+PACKAGECONFIG[NetSSL] = "-DENABLE_NETSSL=ON,-DENABLE_NETSSL=OFF,openssl"
+PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON,-DENABLE_CRYPTO=OFF,openssl"
+PACKAGECONFIG[JWT] = "-DENABLE_JWT=ON,-DENABLE_JWT=OFF,openssl"
+PACKAGECONFIG[Data] = "-DENABLE_DATA=ON,-DENABLE_DATA=OFF"
+PACKAGECONFIG[DataSQLite] = "-DENABLE_DATA_SQLITE=ON -DSQLITE3_LIBRARY:STRING=sqlite3,-DENABLE_DATA_SQLITE=OFF,sqlite3"
+PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF"
+PACKAGECONFIG[Encodings] = "-DENABLE_ENCODINGS=ON,-DENABLE_ENCODINGS=OFF"
+PACKAGECONFIG[Redis] = "-DENABLE_REDIS=ON,-DENABLE_REDIS=OFF"
+PACKAGECONFIG[Prometheus] = "-DENABLE_PROMETHEUS=ON,-DENABLE_PROMETHEUS=OFF"
+
+# Additional components not build by default,
+# they might have dependencies not included in oe-core
+# or they don't work on all architectures
+PACKAGECONFIG[mod_poco] = "-DENABLE_APACHECONNECTOR=ON,-DENABLE_APACHECONNECTOR=OFF,apr apache2"
+PACKAGECONFIG[CppParser] = "-DENABLE_CPPPARSER=ON,-DENABLE_CPPPARSER=OFF"
+PACKAGECONFIG[DataMySQL] = "-DENABLE_DATA_MYSQL=ON -DMYSQL_LIB:STRING=mysqlclient_r,-DENABLE_DATA_MYSQL=OFF,mariadb"
+PACKAGECONFIG[DataODBC] = "-DENABLE_DATA_ODBC=ON,-DENABLE_DATA_ODBC=OFF,libiodbc"
+PACKAGECONFIG[ActiveRecord] = "-DENABLE_ACTIVERECORD=ON,-DENABLE_ACTIVERECORD=OFF"
+PACKAGECONFIG[ActiveRecordCompiler] = "-DENABLE_ACTIVERECORD_COMPILER=ON,-DENABLE_ACTIVERECORD_COMPILER=OFF"
+PACKAGECONFIG[PageCompiler] = "-DENABLE_PAGECOMPILER=ON,-DENABLE_PAGECOMPILER=OFF"
+PACKAGECONFIG[PageCompilerFile2Page] = "-DENABLE_PAGECOMPILER_FILE2PAGE=ON,-DENABLE_PAGECOMPILER_FILE2PAGE=OFF"
+PACKAGECONFIG[SevenZip] = "-DENABLE_SEVENZIP=ON,-DENABLE_SEVENZIP=OFF"
+
+EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \
+ -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}"
+
+# For the native build we want to use the bundled version
+EXTRA_OECMAKE:append:class-native = " -DPOCO_UNBUNDLED=OFF"
+
+# do not use rpath
+EXTRA_OECMAKE:append = " -DCMAKE_SKIP_RPATH=ON"
+
+LDFLAGS:append:riscv32 = "${@bb.utils.contains('PACKAGECONFIG', 'Prometheus', ' -Wl,--no-as-needed -latomic -Wl,--as-needed', '', d)}"
+LDFLAGS:append:mips = "${@bb.utils.contains('PACKAGECONFIG', 'Prometheus', ' -Wl,--no-as-needed -latomic -Wl,--as-needed', '', d)}"
+LDFLAGS:append:powerpc = "${@bb.utils.contains('PACKAGECONFIG', 'Prometheus', ' -Wl,--no-as-needed -latomic -Wl,--as-needed', '', d)}"
+
+python populate_packages:prepend () {
+ poco_libdir = d.expand('${libdir}')
+ pn = d.getVar("PN")
+ packages = []
+
+ def hook(f, pkg, file_regex, output_pattern, modulename):
+ packages.append(pkg)
+
+ do_split_packages(d, poco_libdir, r'^libPoco(.*)\.so\..*$',
+ 'poco-%s', 'Poco %s component', extra_depends='', prepend=True, hook=hook)
+
+ d.setVar("RRECOMMENDS:%s" % pn, " ".join(packages))
+}
+
+do_install_ptest () {
+ cp -rf ${B}/bin/ ${D}${PTEST_PATH}
+ cp -f ${B}/lib/libCppUnit.so* ${D}${libdir}
+ cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/
+ find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \;
+ rm -f ${D}${PTEST_PATH}/testrunners
+ for f in ${D}${PTEST_PATH}/bin/*-testrunner; do
+ echo `basename $f` >> ${D}${PTEST_PATH}/testrunners
+ done
+ install -Dm 0644 ${S}/cppignore.lnx ${D}${PTEST_PATH}/cppignore.lnx
+}
+
+PACKAGES_DYNAMIC = "poco-.*"
+
+# "poco" is a metapackage which pulls in all Poco components
+ALLOW_EMPTY:${PN} = "1"
+
+# cppunit is only built if tests are enabled
+PACKAGES =+ "${PN}-cppunit"
+FILES:${PN}-cppunit += "${libdir}/libCppUnit.so*"
+ALLOW_EMPTY:${PN}-cppunit = "1"
+
+RDEPENDS:${PN}-ptest += "${PN}-cppunit"
+RDEPENDS:${PN}-ptest += "${@bb.utils.contains('PACKAGECONFIG', 'MongoDB', 'mongodb', '', d)}"
+RDEPENDS:${PN}-ptest += "${@bb.utils.contains('PACKAGECONFIG', 'Redis', 'redis', '', d)}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/poppler/poppler-data_0.4.11.bb b/meta-oe/recipes-support/poppler/poppler-data_0.4.11.bb
deleted file mode 100644
index b0c0869a04..0000000000
--- a/meta-oe/recipes-support/poppler/poppler-data_0.4.11.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Encoding files for Poppler"
-DESCRIPTION = "Encoding files for use with poppler that enable poppler to \
- correctly render CJK and Cyrrilic."
-HOMEPAGE = "https://poppler.freedesktop.org/"
-LICENSE = "BSD-3-Clause & GPL-2.0-only & GPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=96287d49ec274d9c3222b5f966c132fd \
- file://COPYING.adobe;md5=a790726a74164c30b5de1ef93fd69e99 \
- file://COPYING.gpl2;md5=751419260aa954499f7abaabaa882bbe \
-"
-
-inherit allarch
-
-INHIBIT_DEFAULT_DEPS = "1"
-
-CMAP_RESOURCES_BASE = "https://github.com/adobe-type-tools/cmap-resources/raw/0561ebca035813ed04c3485bca636a0aa7abdc1d/cmapresources_identity-0/CMap"
-
-SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.gz \
- ${CMAP_RESOURCES_BASE}/Identity-H;name=idh \
- ${CMAP_RESOURCES_BASE}/Identity-V;name=idv"
-
-SRC_URI[sha256sum] = "2cec05cd1bb03af98a8b06a1e22f6e6e1a65b1e2f3816cb3069bb0874825f08c"
-SRC_URI[idh.md5sum] = "009c93cf0141ab7bd6acb7eea14306cc"
-SRC_URI[idh.sha256sum] = "ae702c203a82ea124e9b96590f821db6fbf8754e2c4547a9dba0e82f94739e95"
-SRC_URI[idv.md5sum] = "2f32a45d43d001c26eeac6b878855fbf"
-SRC_URI[idv.sha256sum] = "89a85daf7031e93c883e76b9168a226dfd585bf5506e9e1956772163f15cb082"
-
-do_compile() {
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D} prefix=${prefix} datadir=${datadir}
- install -d ${D}${datadir}/poppler/cMap
- install -m644 ${WORKDIR}/Identity-* ${D}${datadir}/poppler/cMap/
-}
-
-FILES:${PN} += "${datadir}"
diff --git a/meta-oe/recipes-support/poppler/poppler-data_0.4.12.bb b/meta-oe/recipes-support/poppler/poppler-data_0.4.12.bb
new file mode 100644
index 0000000000..eed21ad54a
--- /dev/null
+++ b/meta-oe/recipes-support/poppler/poppler-data_0.4.12.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Encoding files for Poppler"
+DESCRIPTION = "Encoding files for use with poppler that enable poppler to \
+ correctly render CJK and Cyrrilic."
+HOMEPAGE = "https://poppler.freedesktop.org/"
+LICENSE = "BSD-3-Clause & GPL-2.0-only & GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=96287d49ec274d9c3222b5f966c132fd \
+ file://COPYING.adobe;md5=a790726a74164c30b5de1ef93fd69e99 \
+ file://COPYING.gpl2;md5=751419260aa954499f7abaabaa882bbe \
+"
+
+inherit allarch
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+CMAP_RESOURCES_BASE = "https://github.com/adobe-type-tools/cmap-resources/raw/0561ebca035813ed04c3485bca636a0aa7abdc1d/cmapresources_identity-0/CMap"
+
+SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.gz \
+ ${CMAP_RESOURCES_BASE}/Identity-H;name=idh \
+ ${CMAP_RESOURCES_BASE}/Identity-V;name=idv"
+
+SRC_URI[sha256sum] = "c835b640a40ce357e1b83666aabd95edffa24ddddd49b8daff63adb851cdab74"
+SRC_URI[idh.md5sum] = "009c93cf0141ab7bd6acb7eea14306cc"
+SRC_URI[idh.sha256sum] = "ae702c203a82ea124e9b96590f821db6fbf8754e2c4547a9dba0e82f94739e95"
+SRC_URI[idv.md5sum] = "2f32a45d43d001c26eeac6b878855fbf"
+SRC_URI[idv.sha256sum] = "89a85daf7031e93c883e76b9168a226dfd585bf5506e9e1956772163f15cb082"
+
+do_compile() {
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} prefix=${prefix} datadir=${datadir}
+ install -d ${D}${datadir}/poppler/cMap
+ install -m644 ${WORKDIR}/Identity-* ${D}${datadir}/poppler/cMap/
+}
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-oe/recipes-support/poppler/poppler/0001-cmake-Do-not-use-isystem.patch b/meta-oe/recipes-support/poppler/poppler/0001-cmake-Do-not-use-isystem.patch
new file mode 100644
index 0000000000..adbe82263f
--- /dev/null
+++ b/meta-oe/recipes-support/poppler/poppler/0001-cmake-Do-not-use-isystem.patch
@@ -0,0 +1,192 @@
+From 04686340c4cd375a17d60d31bf6943367cc33214 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 21 Jan 2023 03:09:08 -0800
+Subject: [PATCH] cmake: Do not use -isystem
+
+isystem dirs are searched before the regular system dirs
+this exposes an interesting include ordering problem when using
+clang + libc++, when including C++ headers like <cstdlib>
+
+cstdlib includes stdlib.h and in case of libc++, this should be coming
+from libc++ as well, which is then eventually including system stdlib.h
+
+libc++ has added a check for checking this order recently, which means
+if cstlib ends up including system stdlib.h before libc++ provided
+stdlib.h it errors out
+
+/mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/thrift/0.17.0-r0/recipe-sysroot/usr/include/c++/v1/cstdlib:90:5: error: <cstdlib> tried including <stdlib.h> but didn't find libc++'s <stdlib.h> header. This usually means that your header search paths are not configured properly. The header search paths should contain the C++ Standard Library headers before any C Standard Library, and you are probably using compiler flags that make that not be the case.
+ ^
+
+The reason is that include_directories with SYSTEM property adds the
+directory via -system and some of these directories point to sysroot
+e.g. OPENSSL_INCLUDE_DIR which ends up adding -isystem
+<sysroot>/usr/include and causes the system stdlib.h to included before
+libc++ stdlib.h
+
+A fix is to use -idirafter which preserved the effects of system headers
+but instead of prepending, it will append to system headers and the
+issue is addressed
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+Upstream-Status: Pending
+
+ CMakeLists.txt | 4 ++--
+ glib/CMakeLists.txt | 4 ++--
+ qt5/src/CMakeLists.txt | 4 ++--
+ qt6/src/CMakeLists.txt | 4 ++--
+ test/CMakeLists.txt | 6 +++---
+ utils/CMakeLists.txt | 10 +++++-----
+ 6 files changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c6c757c..5f1c540 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -603,10 +603,10 @@ add_library(poppler ${poppler_SRCS})
+ if (OpenJPEG_FOUND)
+ # check if we can remove this when we depend on newer openjpeg versions, 2.5 seems fixed
+ # target openjp2 may lack interface include directories
+- target_include_directories(poppler SYSTEM PRIVATE ${OPENJPEG_INCLUDE_DIRS})
++ target_include_directories(poppler PRIVATE ${OPENJPEG_INCLUDE_DIRS})
+ endif()
+ if(USE_CMS)
+- target_include_directories(poppler SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR})
++ target_include_directories(poppler PRIVATE ${LCMS2_INCLUDE_DIR})
+ endif()
+ generate_export_header(poppler BASE_NAME poppler-private EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/poppler_private_export.h")
+ set_target_properties(poppler PROPERTIES VERSION 127.0.0 SOVERSION 127)
+diff --git a/glib/CMakeLists.txt b/glib/CMakeLists.txt
+index 52e8687..08ab39a 100644
+--- a/glib/CMakeLists.txt
++++ b/glib/CMakeLists.txt
+@@ -4,7 +4,7 @@ include_directories(
+ )
+
+ include_directories(
+- SYSTEM
++
+ ${GLIB2_INCLUDE_DIRS}
+ ${CAIRO_INCLUDE_DIRS}
+ )
+@@ -96,7 +96,7 @@ if(MINGW AND BUILD_SHARED_LIBS)
+ set_target_properties(poppler-glib PROPERTIES SUFFIX "-${POPPLER_GLIB_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}")
+ endif()
+ target_link_libraries(poppler-glib poppler PkgConfig::GLIB2 ${CAIRO_LIBRARIES} Freetype::Freetype)
+-target_include_directories(poppler-glib SYSTEM PRIVATE ${CAIRO_INCLUDE_DIRS})
++target_include_directories(poppler-glib PRIVATE ${CAIRO_INCLUDE_DIRS})
+ install(TARGETS poppler-glib RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+ install(FILES
+diff --git a/qt5/src/CMakeLists.txt b/qt5/src/CMakeLists.txt
+index 5db3a6c..f242d29 100644
+--- a/qt5/src/CMakeLists.txt
++++ b/qt5/src/CMakeLists.txt
+@@ -45,11 +45,11 @@ if(MINGW AND BUILD_SHARED_LIBS)
+ endif()
+ target_link_libraries(poppler-qt5 poppler Qt5::Core Qt5::Gui Qt5::Xml Freetype::Freetype)
+ if (ENABLE_NSS3)
+- target_include_directories(poppler-qt5 SYSTEM PRIVATE ${NSS3_INCLUDE_DIRS})
++ target_include_directories(poppler-qt5 PRIVATE ${NSS3_INCLUDE_DIRS})
+ endif()
+ if(USE_CMS)
+ target_link_libraries(poppler-qt5 poppler ${LCMS2_LIBRARIES})
+- target_include_directories(poppler-qt5 SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR})
++ target_include_directories(poppler-qt5 PRIVATE ${LCMS2_INCLUDE_DIR})
+ endif()
+ install(TARGETS poppler-qt5 RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+diff --git a/qt6/src/CMakeLists.txt b/qt6/src/CMakeLists.txt
+index cd91975..6c42e12 100644
+--- a/qt6/src/CMakeLists.txt
++++ b/qt6/src/CMakeLists.txt
+@@ -45,11 +45,11 @@ if(MINGW AND BUILD_SHARED_LIBS)
+ endif()
+ target_link_libraries(poppler-qt6 poppler Qt6::Core Qt6::Gui Freetype::Freetype)
+ if (ENABLE_NSS3)
+- target_include_directories(poppler-qt6 SYSTEM PRIVATE ${NSS3_INCLUDE_DIRS})
++ target_include_directories(poppler-qt6 PRIVATE ${NSS3_INCLUDE_DIRS})
+ endif()
+ if(USE_CMS)
+ target_link_libraries(poppler-qt6 poppler ${LCMS2_LIBRARIES})
+- target_include_directories(poppler-qt6 SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR})
++ target_include_directories(poppler-qt6 PRIVATE ${LCMS2_INCLUDE_DIR})
+ endif()
+ install(TARGETS poppler-qt6 RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index afa1352..9bd3b9a 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -23,7 +23,7 @@ if (GTK_FOUND)
+ )
+ poppler_add_test(gtk-test BUILD_GTK_TESTS ${gtk_splash_test_SRCS})
+ target_link_libraries(gtk-test ${CAIRO_LIBRARIES} poppler-glib PkgConfig::GTK3)
+- target_include_directories(gtk-test SYSTEM PRIVATE ${CAIRO_INCLUDE_DIRS})
++ target_include_directories(gtk-test PRIVATE ${CAIRO_INCLUDE_DIRS})
+
+ if (HAVE_CAIRO)
+
+@@ -35,7 +35,7 @@ if (GTK_FOUND)
+ )
+ poppler_add_test(pdf-inspector BUILD_GTK_TESTS ${pdf_inspector_SRCS})
+ target_link_libraries(pdf-inspector ${CAIRO_LIBRARIES} Freetype::Freetype ${common_libs} PkgConfig::GTK3 poppler)
+- target_include_directories(pdf-inspector SYSTEM PRIVATE ${CAIRO_INCLUDE_DIRS})
++ target_include_directories(pdf-inspector PRIVATE ${CAIRO_INCLUDE_DIRS})
+ target_compile_definitions(pdf-inspector PRIVATE -DSRC_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
+ endif ()
+
+@@ -59,7 +59,7 @@ if (HAVE_CAIRO)
+ )
+ add_executable(cairo-thread-test ${cairo_thread_test_SRCS})
+ target_link_libraries(cairo-thread-test ${CAIRO_LIBRARIES} Freetype::Freetype Threads::Threads poppler)
+- target_include_directories(cairo-thread-test SYSTEM PRIVATE ${CAIRO_INCLUDE_DIRS})
++ target_include_directories(cairo-thread-test PRIVATE ${CAIRO_INCLUDE_DIRS})
+ endif ()
+ endif ()
+
+diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
+index 1c3ebcb..bc1840a 100644
+--- a/utils/CMakeLists.txt
++++ b/utils/CMakeLists.txt
+@@ -16,7 +16,7 @@ add_executable(pdftoppm ${pdftoppm_SOURCES})
+ target_link_libraries(pdftoppm ${common_libs})
+ if(LCMS2_FOUND)
+ target_link_libraries(pdftoppm ${LCMS2_LIBRARIES})
+- target_include_directories(pdftoppm SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR})
++ target_include_directories(pdftoppm PRIVATE ${LCMS2_INCLUDE_DIR})
+ endif()
+ install(TARGETS pdftoppm DESTINATION bin)
+ install(FILES pdftoppm.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+@@ -37,10 +37,10 @@ if (HAVE_CAIRO)
+ add_definitions(${CAIRO_CFLAGS})
+ add_executable(pdftocairo ${pdftocairo_SOURCES})
+ target_link_libraries(pdftocairo ${CAIRO_LIBRARIES} Freetype::Freetype ${common_libs})
+- target_include_directories(pdftocairo SYSTEM PRIVATE ${CAIRO_INCLUDE_DIRS})
++ target_include_directories(pdftocairo PRIVATE ${CAIRO_INCLUDE_DIRS})
+ if(LCMS2_FOUND)
+ target_link_libraries(pdftocairo ${LCMS2_LIBRARIES})
+- target_include_directories(pdftocairo SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR})
++ target_include_directories(pdftocairo PRIVATE ${LCMS2_INCLUDE_DIR})
+ endif()
+ install(TARGETS pdftocairo DESTINATION bin)
+ install(FILES pdftocairo.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+@@ -99,7 +99,7 @@ if (ENABLE_NSS3)
+ pdfsig.cc
+ )
+ add_executable(pdfsig ${pdfsig_SOURCES})
+- target_include_directories(pdfsig SYSTEM PRIVATE ${NSS3_INCLUDE_DIRS})
++ target_include_directories(pdfsig PRIVATE ${NSS3_INCLUDE_DIRS})
+ target_link_libraries(pdfsig ${common_libs})
+ install(TARGETS pdfsig DESTINATION bin)
+ install(FILES pdfsig.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+@@ -114,7 +114,7 @@ add_executable(pdftops ${pdftops_SOURCES})
+ target_link_libraries(pdftops ${common_libs})
+ if(LCMS2_FOUND)
+ target_link_libraries(pdftops ${LCMS2_LIBRARIES})
+- target_include_directories(pdftops SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR})
++ target_include_directories(pdftops PRIVATE ${LCMS2_INCLUDE_DIR})
+ endif()
+ install(TARGETS pdftops DESTINATION bin)
+ install(FILES pdftops.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
diff --git a/meta-oe/recipes-support/poppler/poppler/CVE-2023-34872.patch b/meta-oe/recipes-support/poppler/poppler/CVE-2023-34872.patch
new file mode 100644
index 0000000000..cc942fad77
--- /dev/null
+++ b/meta-oe/recipes-support/poppler/poppler/CVE-2023-34872.patch
@@ -0,0 +1,46 @@
+From 591235c8b6c65a2eee88991b9ae73490fd9afdfe Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <aacid@kde.org>
+Date: Fri, 18 Aug 2023 11:36:06 +0000
+Subject: [PATCH] OutlineItem::open: Fix crash on malformed files
+
+Fixes #1399
+
+CVE: CVE-2023-34872
+
+Upstream-Status: Backport [https://gitlab.freedesktop.org/poppler/poppler/-/commit/591235c8b6c65a2eee88991b9ae73490fd9afdfe]
+
+Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
+---
+ poppler/Outline.cc | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/poppler/Outline.cc b/poppler/Outline.cc
+index cbb6cb4..4c68be9 100644
+--- a/poppler/Outline.cc
++++ b/poppler/Outline.cc
+@@ -14,7 +14,7 @@
+ // under GPL version 2 or later
+ //
+ // Copyright (C) 2005 Marco Pesenti Gritti <mpg@redhat.com>
+-// Copyright (C) 2008, 2016-2019, 2021 Albert Astals Cid <aacid@kde.org>
++// Copyright (C) 2008, 2016-2019, 2021, 2023 Albert Astals Cid <aacid@kde.org>
+ // Copyright (C) 2009 Nick Jones <nick.jones@network-box.com>
+ // Copyright (C) 2016 Jason Crain <jason@aquaticape.us>
+ // Copyright (C) 2017 Adrian Johnson <ajohnson@redneon.com>
+@@ -483,8 +483,12 @@ void OutlineItem::open()
+ {
+ if (!kids) {
+ Object itemDict = xref->fetch(ref);
+- const Object &firstRef = itemDict.dictLookupNF("First");
+- kids = readItemList(this, &firstRef, xref, doc);
++ if (itemDict.isDict()) {
++ const Object &firstRef = itemDict.dictLookupNF("First");
++ kids = readItemList(this, &firstRef, xref, doc);
++ } else {
++ kids = new std::vector<OutlineItem *>();
++ }
+ }
+ }
+
+--
+2.35.5
diff --git a/meta-oe/recipes-support/poppler/poppler/jpeg-stdio.patch b/meta-oe/recipes-support/poppler/poppler/jpeg-stdio.patch
new file mode 100644
index 0000000000..70ba1cf123
--- /dev/null
+++ b/meta-oe/recipes-support/poppler/poppler/jpeg-stdio.patch
@@ -0,0 +1,41 @@
+From 2986f06c7cc9d64a506ebe861b8bf38f73386e86 Mon Sep 17 00:00:00 2001
+From: Jordan Abrahams-Whitehead <ajordanr@google.com>
+Date: Tue, 16 May 2023 18:52:19 +0000
+Subject: [PATCH] Add missing #include <cstdio> prior to jpeglib.h
+
+Fixes #1398
+
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ goo/JpegWriter.cc | 2 +-
+ poppler/ImageEmbeddingUtils.cc | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/goo/JpegWriter.cc b/goo/JpegWriter.cc
+index ca69fd055..566ee38f8 100644
+--- a/goo/JpegWriter.cc
++++ b/goo/JpegWriter.cc
+@@ -23,7 +23,7 @@
+ #ifdef ENABLE_LIBJPEG
+
+ # include "poppler/Error.h"
+-
++# include <cstdio>
+ extern "C" {
+ # include <jpeglib.h>
+ }
+diff --git a/poppler/ImageEmbeddingUtils.cc b/poppler/ImageEmbeddingUtils.cc
+index 0c13fe968..07b9dfb62 100644
+--- a/poppler/ImageEmbeddingUtils.cc
++++ b/poppler/ImageEmbeddingUtils.cc
+@@ -14,6 +14,7 @@
+
+ #include <memory>
+ #ifdef ENABLE_LIBJPEG
++# include <cstdio>
+ extern "C" {
+ # include <jpeglib.h>
+ }
+--
+GitLab
diff --git a/meta-oe/recipes-support/poppler/poppler_22.09.0.bb b/meta-oe/recipes-support/poppler/poppler_22.09.0.bb
deleted file mode 100644
index 2cae897d7a..0000000000
--- a/meta-oe/recipes-support/poppler/poppler_22.09.0.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base"
-HOMEPAGE = "https://poppler.freedesktop.org/"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \
- file://0001-Do-not-overwrite-all-our-build-flags.patch \
- file://basename-include.patch \
- "
-SRC_URI[sha256sum] = "d7a8f748211359cadb774ba3e18ecda6464b34027045c0648eb30d5852a41e2e"
-
-DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
-
-inherit cmake pkgconfig gobject-introspection
-
-PACKAGECONFIG ??= "jpeg openjpeg png tiff nss splash"
-PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON -DENABLE_DCTDECODER=libjpeg,-DWITH_JPEG=OFF -DENABLE_DCTDECODER=none,jpeg"
-PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng"
-PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff"
-PACKAGECONFIG[curl] = "-DENABLE_LIBCURL=ON,-DENABLE_LIBCURL=OFF,curl"
-PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg"
-PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native"
-PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss"
-PACKAGECONFIG[splash] = "-DENABLE_SPLASH=ON -DENABLE_BOOST=ON,-DENABLE_SPLASH=OFF -DENABLE_BOOST=OFF,boost"
-
-# surprise - did not expect this to work :)
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
-
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
-
-EXTRA_OECMAKE += " \
- -DENABLE_CMS=lcms2 \
- -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
- -DBUILD_GTK_TESTS=OFF \
- -DENABLE_ZLIB=ON \
- -DRUN_GPERF_IF_PRESENT=OFF \
- -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}' \
- ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_GOBJECT_INTROSPECTION=ON', '-DENABLE_GOBJECT_INTROSPECTION=OFF', d)} \
-"
-EXTRA_OECMAKE:append:class-native = " -DENABLE_CPP=OFF"
-
-do_configure:append() {
- # poppler macro uses pkg-config to check for g-ir runtimes. Something
- # makes them point to /usr/bin. Align them to sysroot - that's where the
- # gir-wrappers are:
- sed -i 's: ${bindir}/g-ir: ${STAGING_BINDIR}/g-ir:' ${B}/build.ninja
-}
-
-PACKAGES =+ "libpoppler libpoppler-glib"
-FILES:libpoppler = "${libdir}/libpoppler.so.*"
-FILES:libpoppler-glib = "${libdir}/libpoppler-glib.so.*"
-
-RDEPENDS:libpoppler = "poppler-data"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/poppler/poppler_23.04.0.bb b/meta-oe/recipes-support/poppler/poppler_23.04.0.bb
new file mode 100644
index 0000000000..f4411e1163
--- /dev/null
+++ b/meta-oe/recipes-support/poppler/poppler_23.04.0.bb
@@ -0,0 +1,58 @@
+SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base"
+HOMEPAGE = "https://poppler.freedesktop.org/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \
+ file://0001-Do-not-overwrite-all-our-build-flags.patch \
+ file://basename-include.patch \
+ file://0001-cmake-Do-not-use-isystem.patch \
+ file://jpeg-stdio.patch \
+ file://CVE-2023-34872.patch \
+ "
+SRC_URI[sha256sum] = "b6d893dc7dcd4138b9e9df59a13c59695e50e80dc5c2cacee0674670693951a1"
+
+DEPENDS = "fontconfig zlib cairo lcms glib-2.0 glib-2.0-native"
+
+inherit cmake pkgconfig gobject-introspection
+
+PACKAGECONFIG ??= "jpeg openjpeg png tiff nss splash"
+PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON -DENABLE_DCTDECODER=libjpeg,-DWITH_JPEG=OFF -DENABLE_DCTDECODER=none,jpeg"
+PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng"
+PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff"
+PACKAGECONFIG[curl] = "-DENABLE_LIBCURL=ON,-DENABLE_LIBCURL=OFF,curl"
+PACKAGECONFIG[openjpeg] = "-DENABLE_LIBOPENJPEG=openjpeg2,-DENABLE_LIBOPENJPEG=none,openjpeg"
+PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF,qtbase qttools-native"
+PACKAGECONFIG[nss] = "-DWITH_NSS3=ON,-DWITH_NSS3=OFF,nss"
+PACKAGECONFIG[splash] = "-DENABLE_SPLASH=ON -DENABLE_BOOST=ON,-DENABLE_SPLASH=OFF -DENABLE_BOOST=OFF,boost"
+
+# surprise - did not expect this to work :)
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'cmake_qt5', '', d)}
+
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
+
+EXTRA_OECMAKE += " \
+ -DENABLE_CMS=lcms2 \
+ -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
+ -DBUILD_GTK_TESTS=OFF \
+ -DENABLE_ZLIB=ON \
+ -DRUN_GPERF_IF_PRESENT=OFF \
+ -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}' \
+ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_GOBJECT_INTROSPECTION=ON', '-DENABLE_GOBJECT_INTROSPECTION=OFF', d)} \
+"
+EXTRA_OECMAKE:append:class-native = " -DENABLE_CPP=OFF"
+
+do_configure:append() {
+ # poppler macro uses pkg-config to check for g-ir runtimes. Something
+ # makes them point to /usr/bin. Align them to sysroot - that's where the
+ # gir-wrappers are:
+ sed -i 's: ${bindir}/g-ir: ${STAGING_BINDIR}/g-ir:' ${B}/build.ninja
+}
+
+PACKAGES =+ "libpoppler libpoppler-glib"
+FILES:libpoppler = "${libdir}/libpoppler.so.*"
+FILES:libpoppler-glib = "${libdir}/libpoppler-glib.so.*"
+
+RDEPENDS:libpoppler = "poppler-data"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/portaudio/portaudio-v19/0001-Find-jack.patch b/meta-oe/recipes-support/portaudio/portaudio-v19/0001-Find-jack.patch
deleted file mode 100644
index d6c6300ecd..0000000000
--- a/meta-oe/recipes-support/portaudio/portaudio-v19/0001-Find-jack.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8ec1b100afda5b3e31f9d44af04b04b16dfff2e4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Tue, 18 May 2021 00:15:46 +0200
-Subject: [PATCH] Find jack with pkgconfig
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 122fe93..ab7d7f5 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -274,7 +274,8 @@ ELSE()
-
- ELSEIF(UNIX)
-
-- FIND_PACKAGE(Jack)
-+ find_package(PkgConfig REQUIRED)
-+ pkg_check_modules (JACK jack)
- IF(JACK_FOUND)
- OPTION(PA_USE_JACK "Enable support for Jack" ON)
- ELSE()
---
-2.31.1
-
diff --git a/meta-oe/recipes-support/portaudio/portaudio-v19/0001-cmake-Use-GNUInstallDirs.patch b/meta-oe/recipes-support/portaudio/portaudio-v19/0001-cmake-Use-GNUInstallDirs.patch
deleted file mode 100644
index 892399de70..0000000000
--- a/meta-oe/recipes-support/portaudio/portaudio-v19/0001-cmake-Use-GNUInstallDirs.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From ced7af0420c1df0ac02f0c25e7c3534431ebd7fd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 4 Jul 2021 17:09:49 -0700
-Subject: [PATCH] cmake: Use GNUInstallDirs
-
-Helps install cmakefiles in right libdir
-
-Upstream-Status: Submitted [https://github.com/PortAudio/portaudio/pull/610]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -6,6 +6,8 @@
-
- CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-
-+include(GNUInstallDirs)
-+
- # Check if the user is building PortAudio stand-alone or as part of a larger
- # project. If this is part of a larger project (i.e. the CMakeLists.txt has
- # been imported by some other CMakeLists.txt), we don't want to trump over
-@@ -452,18 +454,18 @@ IF(NOT PA_OUTPUT_OSX_FRAMEWORK AND NOT P
- CONFIGURE_FILE(cmake_support/portaudio-2.0.pc.in ${CMAKE_CURRENT_BINARY_DIR}/portaudio-2.0.pc @ONLY)
- INSTALL(FILES README.md DESTINATION share/doc/portaudio)
- INSTALL(FILES LICENSE.txt DESTINATION share/doc/portaudio)
-- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/portaudio-2.0.pc DESTINATION lib/pkgconfig)
-+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/portaudio-2.0.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
- INSTALL(FILES ${PA_PUBLIC_INCLUDES} DESTINATION include)
- INSTALL(TARGETS ${PA_TARGETS}
- EXPORT portaudio-targets
-- RUNTIME DESTINATION bin
-- LIBRARY DESTINATION lib
-- ARCHIVE DESTINATION lib)
-- INSTALL(EXPORT portaudio-targets FILE "portaudioTargets.cmake" DESTINATION "lib/cmake/portaudio")
-+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+ INSTALL(EXPORT portaudio-targets FILE "portaudioTargets.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/portaudio")
- EXPORT(TARGETS ${PA_TARGETS} FILE "${PROJECT_BINARY_DIR}/cmake/portaudio/portaudioTargets.cmake")
- INSTALL(FILES "${CMAKE_BINARY_DIR}/cmake/portaudio/portaudioConfig.cmake"
- "${CMAKE_BINARY_DIR}/cmake/portaudio/portaudioConfigVersion.cmake"
-- DESTINATION "lib/cmake/portaudio")
-+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/portaudio")
-
- IF (NOT TARGET uninstall)
- CONFIGURE_FILE(
diff --git a/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb b/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb
index f34912ed28..2bf4d0a449 100644
--- a/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb
+++ b/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb
@@ -3,18 +3,17 @@ SECTION = "libs/multimedia"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26107732c2ab637c5710446fcfaf02df"
-PV = "v190700"
+PV .= "+git"
+
+SRC_URI = "git://github.com/PortAudio/portaudio.git;branch=master;protocol=https"
+SRCREV = "929e2e8f7af281c5eb4fa07758930d542ec43d97"
-SRC_URI = " \
- git://github.com/PortAudio/portaudio.git;branch=master;protocol=https \
- file://0001-Find-jack.patch \
- file://0001-cmake-Use-GNUInstallDirs.patch \
-"
-SRCREV = "147dd722548358763a8b649b3e4b41dfffbcfbb6"
S = "${WORKDIR}/git"
inherit cmake pkgconfig
+EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
+
PACKAGECONFIG ??= "alsa jack"
PACKAGECONFIG[alsa] = ",,alsa-lib"
PACKAGECONFIG[jack] = ",,jack"
@@ -28,6 +27,3 @@ do_install:append() {
done
fi
}
-
-FILES_SOLIBSDEV = ""
-FILES:${PN} += "${libdir}/libportaudio.so"
diff --git a/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch b/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch
index 8341a8ecde..c1f9ce7eca 100644
--- a/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch
+++ b/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-compile-errors.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 1/3] From debian to fix compile errors
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
src/Makefile.0 | 7 +++----
src/autoconf | 64 +++++++++++++-------------------------------------------
src/comsat.c | 65 +++++++++++++++++++--------------------------------------
diff --git a/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch b/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch
index 7b3c643b2b..78ac6241d0 100644
--- a/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch
+++ b/meta-oe/recipes-support/procmail/procmail/from-debian-to-fix-man-file.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 2/3] From debian to fix man file
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
man/procmail.man | 24 +++++++++++++++++-------
man/procmailrc.man | 2 +-
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch b/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch
index a94e436703..2bebccc0b2 100644
--- a/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch
+++ b/meta-oe/recipes-support/procmail/procmail/from-debian-to-modify-parameters.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 3/3] From debian to modify parameters
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
Makefile | 16 ++++++++--------
config.h | 13 +++++++------
2 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch b/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch
index 46d973e060..72fa27a834 100644
--- a/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch
+++ b/meta-oe/recipes-support/procmail/procmail/man-file-mailstat.1-from-debian.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] man file mailstat.1 from debian
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
debian/mailstat.1 | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 debian/mailstat.1
diff --git a/meta-oe/recipes-support/psutils/psutils_2.10.bb b/meta-oe/recipes-support/psutils/psutils_2.10.bb
new file mode 100644
index 0000000000..1f1894a5f2
--- /dev/null
+++ b/meta-oe/recipes-support/psutils/psutils_2.10.bb
@@ -0,0 +1,24 @@
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=87212b5f1ae096371049a12f80034f32"
+
+SRC_URI = "https://github.com/rrthomas/psutils/releases/download/v${PV}/psutils-${PV}.tar.gz"
+SRC_URI[sha256sum] = "6f8339fd5322df5c782bfb355d9f89e513353220fca0700a5a28775404d7e98b"
+
+inherit perlnative autotools
+
+export PERL="/usr/bin/env perl"
+
+DEPENDS += "libpaper-native"
+
+do_install:append() {
+ sed -i -e 's|${STAGING_BINDIR_NATIVE}/perl-native/|/usr/bin/env |g' ${D}${bindir}/pstops
+ for f in psbook psresize psnup psselect; do
+ grep -v '${B}' ${D}${bindir}/$f > ${D}${bindir}/$f.temp
+ install -m 0755 ${D}${bindir}/$f.temp ${D}${bindir}/$f
+ rm -f ${D}${bindir}/$f.temp
+ done
+}
+
+BBCLASSEXTEND += "native"
+# /usr/bin/pstops contained in package psutils requires perl
+RDEPENDS:${PN} += "perl"
diff --git a/meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch b/meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch
new file mode 100644
index 0000000000..c51fb1cfdb
--- /dev/null
+++ b/meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch
@@ -0,0 +1,40 @@
+From c5cd932fb08e7ce90cdbf9ae6c5cc7e65ac0738e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michael=20Wei=C3=9F?= <michael.weiss@aisec.fraunhofer.de>
+Date: Tue, 9 May 2023 20:00:26 +0200
+Subject: [PATCH] pv/display: handle error of tcgetpgrp() in pv_in_foreground()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Show pv progress bar even if no terminal is set, e.g., in a busybox
+init script. The description of pv_in_forground() states it will
+return true "if we aren't outputting to a terminal". However, this
+is not the case since tcgetpgrg() will return an error and set ERRNO
+to ENOTTY if the output fd is not an tty. We now handle this error
+correctly and pv_in_foreground() returns also true in that case.
+
+Signed-off-by: Michael Weiß <michael.weiss@aisec.fraunhofer.de>
+---
+Upstream-Status: Pending
+
+ src/pv/display.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/pv/display.c b/src/pv/display.c
+index aff643b..8d1f4c9 100644
+--- a/src/pv/display.c
++++ b/src/pv/display.c
+@@ -48,6 +48,10 @@ bool pv_in_foreground(void)
+
+ our_process_group = getpgrp();
+ tty_process_group = tcgetpgrp(STDERR_FILENO);
++
++ if (tty_process_group == -1 && errno == ENOTTY)
++ return true;
++
+ if (our_process_group == tty_process_group)
+ return true;
+
+--
+2.30.2
+
diff --git a/meta-oe/recipes-support/pv/pv_1.6.20.bb b/meta-oe/recipes-support/pv/pv_1.6.20.bb
index 867a621d1a..6a739af927 100644
--- a/meta-oe/recipes-support/pv/pv_1.6.20.bb
+++ b/meta-oe/recipes-support/pv/pv_1.6.20.bb
@@ -5,6 +5,7 @@ LICENSE = "Artistic-2.0"
LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02"
SRC_URI = "https://www.ivarch.com/programs/sources/${BP}.tar.bz2 \
+ file://0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch \
file://run-ptest \
"
SRC_URI[sha256sum] = "e831951eff0718fba9b1ef286128773b9d0e723e1fbfae88d5a3188814fdc603"
@@ -17,7 +18,7 @@ inherit autotools ptest
LDEMULATION:mipsarchn32 = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'elf32btsmipn32', 'elf32ltsmipn32', d)}"
export LDEMULATION
-RDEPENDS:${PN}-ptest = "coreutils"
+RDEPENDS:${PN}-ptest += "coreutils ${PN}"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/tests
diff --git a/meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch b/meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch
index 36983ec479..2b5b5caa6f 100644
--- a/meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch
+++ b/meta-oe/recipes-support/pxaregs/pxaregs-1.14/i2c.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: pxaregs-1.14/pxaregs.c
===================================================================
--- pxaregs-1.14.orig/pxaregs.c
diff --git a/meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch b/meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch
index a9c4b95cf0..c0f81725d9 100644
--- a/meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch
+++ b/meta-oe/recipes-support/pxaregs/pxaregs-1.14/munmap.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: pxaregs-1.14/pxaregs.c
===================================================================
--- pxaregs-1.14.orig/pxaregs.c
diff --git a/meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch b/meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch
index 06853851d0..fba2e7f513 100644
--- a/meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch
+++ b/meta-oe/recipes-support/pxaregs/pxaregs-1.14/serial.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: pxaregs-1.14/pxaregs.c
===================================================================
--- pxaregs-1.14.orig/pxaregs.c
diff --git a/meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch b/meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch
index 59f21fe3c1..91ca0a7742 100644
--- a/meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch
+++ b/meta-oe/recipes-support/pxaregs/pxaregs-1.14/usb.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
Index: pxaregs-1.14/pxaregs.c
===================================================================
--- pxaregs-1.14.orig/pxaregs.c
diff --git a/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb b/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb
index 2405839110..b61fb026ca 100644
--- a/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb
+++ b/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb
@@ -1,7 +1,6 @@
SUMMARY = "Tool to display and modify PXA registers at runtime"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://pxaregs.c;endline=12;md5=668d061b7637acc68cb8071c9be372e6"
-AUTHOR = "Holger Schurig <hs4233@mail.mn-solutions.de>"
HOMEPAGE = "http://www.mn-logistik.de/unsupported/pxa250/"
SRC_URI = "file://pxaregs.c \
diff --git a/meta-oe/recipes-support/raptor2/files/0001-Match-reutrn-type-from-RAPTOR_ASSERT_OBJECT_POINTER_.patch b/meta-oe/recipes-support/raptor2/files/0001-Match-reutrn-type-from-RAPTOR_ASSERT_OBJECT_POINTER_.patch
deleted file mode 100644
index 4c1afb46eb..0000000000
--- a/meta-oe/recipes-support/raptor2/files/0001-Match-reutrn-type-from-RAPTOR_ASSERT_OBJECT_POINTER_.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 97b5dcaa6b221eb403cc92e953225d38aee18f70 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 1 Sep 2022 14:48:39 -0700
-Subject: [PATCH] Match reutrn type from
- RAPTOR_ASSERT_OBJECT_POINTER_RETURN_VALUE
-
-This ensures that integer type 0 is returned and not NULL
-Fixes
-raptor_serialize.c:243:66: error: incompatible pointer to integer conversion returning 'void *' from a function with result type 'int' [-Wint-conversion]
- RAPTOR_ASSERT_OBJECT_POINTER_RETURN_VALUE(world, raptor_world, NULL);
- ^~~~
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/raptor_parse.c | 2 +-
- src/raptor_serialize.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/raptor_parse.c b/src/raptor_parse.c
-index 26911f4..0091e1e 100644
---- a/src/raptor_parse.c
-+++ b/src/raptor_parse.c
-@@ -257,7 +257,7 @@ raptor_world_get_parser_factory(raptor_world *world, const char *name)
- int
- raptor_world_get_parsers_count(raptor_world* world)
- {
-- RAPTOR_ASSERT_OBJECT_POINTER_RETURN_VALUE(world, raptor_world, NULL);
-+ RAPTOR_ASSERT_OBJECT_POINTER_RETURN_VALUE(world, raptor_world, 0);
-
- raptor_world_open(world);
-
-diff --git a/src/raptor_serialize.c b/src/raptor_serialize.c
-index a1f29d7..2bf4ab2 100644
---- a/src/raptor_serialize.c
-+++ b/src/raptor_serialize.c
-@@ -240,7 +240,7 @@ raptor_get_serializer_factory(raptor_world* world, const char *name)
- int
- raptor_world_get_serializers_count(raptor_world* world)
- {
-- RAPTOR_ASSERT_OBJECT_POINTER_RETURN_VALUE(world, raptor_world, NULL);
-+ RAPTOR_ASSERT_OBJECT_POINTER_RETURN_VALUE(world, raptor_world, 0);
-
- raptor_world_open(world);
-
---
-2.37.3
-
diff --git a/meta-oe/recipes-support/raptor2/files/0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch b/meta-oe/recipes-support/raptor2/files/0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch
deleted file mode 100644
index 7faeb130a7..0000000000
--- a/meta-oe/recipes-support/raptor2/files/0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 3f97aac5a1f43ef57b02fb9ccdcadd41a6b69fa9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Tue, 27 Oct 2015 10:21:24 +0100
-Subject: [PATCH] configure.ac: do additional checks on libxml2 also when
- detected by pkg-config
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Applied [1]
-
-[1] https://github.com/dajobe/raptor/pull/33
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 10ff870..35fa08e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -601,7 +601,7 @@ have_libxml=0
- need_libxml=0
-
- oCPPFLAGS="$CPPFLAGS"
--if test "X$XML_CONFIG" != X; then
-+if test "X$libxml_source" != X; then
- CPPFLAGS="$LIBXML_CFLAGS $CPPFLAGS"
- LIBS="$LIBS $LIBXML_LIBS"
- AC_CHECK_FUNC(xmlCreatePushParserCtxt, have_xmlCreatePushParserCtxt=yes, have_xmlCreatePushParserCtxt=no)
---
-2.1.0
-
diff --git a/meta-oe/recipes-support/raptor2/raptor2/0001-Remove-the-access-to-entities-checked-private-symbol.patch b/meta-oe/recipes-support/raptor2/raptor2/0001-Remove-the-access-to-entities-checked-private-symbol.patch
new file mode 100644
index 0000000000..e709616797
--- /dev/null
+++ b/meta-oe/recipes-support/raptor2/raptor2/0001-Remove-the-access-to-entities-checked-private-symbol.patch
@@ -0,0 +1,34 @@
+From da171e12d961b41b89196627ef5e5baae1e637ce Mon Sep 17 00:00:00 2001
+From: David Anes <david.anes@suse.com>
+Date: Thu, 4 May 2023 11:54:02 +0200
+Subject: [PATCH] Remove the access to entities 'checked' private symbol for
+ libxml2 2.11.0
+
+Since version 2.11.0, some private symbols that were never intended
+as public API/ABI have been removed from libxml2, therefore the field
+'checked' is no longer present and raptor fails to build in this
+scenario.
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Backport [https://github.com/dajobe/raptor/commit/ac914399b9013c54572833d4818e6ce008136dc9]
+---
+ src/raptor_libxml.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/raptor_libxml.c b/src/raptor_libxml.c
+index 538c2c8..8bcee13 100644
+--- a/src/raptor_libxml.c
++++ b/src/raptor_libxml.c
+@@ -246,10 +246,11 @@ raptor_libxml_getEntity(void* user_data, const xmlChar *name)
+
+ ret->owner = 1;
+
+-#if LIBXML_VERSION >= 20627
++#if LIBXML_VERSION >= 20627 && LIBXML_VERSION < 21100
+ /* Checked field was released in 2.6.27 on 2006-10-25
+ * http://git.gnome.org/browse/libxml2/commit/?id=a37a6ad91a61d168ecc4b29263def3363fff4da6
+ *
++ * and was later removed in version 2.11.0
+ */
+
+ /* Mark this entity as having been checked - never do this again */
diff --git a/meta-oe/recipes-support/raptor2/raptor2_2.0.15.bb b/meta-oe/recipes-support/raptor2/raptor2_2.0.15.bb
deleted file mode 100644
index 22306a5c1b..0000000000
--- a/meta-oe/recipes-support/raptor2/raptor2_2.0.15.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Library for parsing and serializing RDF syntaxes"
-LICENSE = "GPL-2.0-only | LGPL-2.1-only | Apache-2.0"
-LIC_FILES_CHKSUM = " \
- file://LICENSE.txt;md5=b840e5ae3aeb897f45b473341348cd9c \
- file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
- file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \
-"
-
-DEPENDS = "libxml2 libxslt curl yajl"
-
-SRC_URI = " \
- http://download.librdf.org/source/${BPN}-${PV}.tar.gz \
- file://0001-configure.ac-do-additional-checks-on-libxml2-also-wh.patch \
- file://0001-Match-reutrn-type-from-RAPTOR_ASSERT_OBJECT_POINTER_.patch \
-"
-SRC_URI[md5sum] = "a39f6c07ddb20d7dd2ff1f95fa21e2cd"
-SRC_URI[sha256sum] = "ada7f0ba54787b33485d090d3d2680533520cd4426d2f7fb4782dd4a6a1480ed"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = " \
- --without-xml2-config \
- --without-curl-config \
- --without-xslt-config \
-"
diff --git a/meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb b/meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb
new file mode 100644
index 0000000000..85012bcfb3
--- /dev/null
+++ b/meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Library for parsing and serializing RDF syntaxes"
+LICENSE = "GPL-2.0-only | LGPL-2.1-only | Apache-2.0"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE.txt;md5=f7fed8b6ab9289b77f5c14f3f79572cc \
+ file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+ file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+"
+
+DEPENDS = "libxml2 libxslt curl yajl"
+
+SRC_URI = " \
+ http://download.librdf.org/source/${BPN}-${PV}.tar.gz \
+ file://0001-Remove-the-access-to-entities-checked-private-symbol.patch \
+"
+SRC_URI[sha256sum] = "089db78d7ac982354bdbf39d973baf09581e6904ac4c92a98c5caadb3de44680"
+
+inherit autotools pkgconfig gtk-doc
+
+EXTRA_OECONF = " \
+ --without-xml2-config \
+ --without-curl-config \
+ --without-xslt-config \
+"
diff --git a/meta-oe/recipes-support/rdfind/rdfind/0001-configure-Fix-check-for-AC_CHECK_LIB.patch b/meta-oe/recipes-support/rdfind/rdfind/0001-configure-Fix-check-for-AC_CHECK_LIB.patch
deleted file mode 100644
index af69c02173..0000000000
--- a/meta-oe/recipes-support/rdfind/rdfind/0001-configure-Fix-check-for-AC_CHECK_LIB.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 823a4deb61f6f9b91b0cfc4a7e7b20922c635777 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 1 Sep 2022 13:13:50 -0700
-Subject: [PATCH] configure: Fix check for AC_CHECK_LIB
-
-Check for nettle_pbkdf2_hmac_sha256 from libnettle instead of main()
-which is not in nettle library
-
-Upstream-Status: Submitted [https://github.com/pauldreik/rdfind/pull/115]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -46,7 +46,7 @@ AC_CHECK_HEADER(nettle/sha.h,,[AC_MSG_ER
- On Debian-ish systems, use \"apt-get install nettle-dev\" to get a system
- wide nettle install.
- ])])
--AC_CHECK_LIB(nettle,main,,[AC_MSG_ERROR([
-+AC_CHECK_LIB(nettle,nettle_pbkdf2_hmac_sha256,,[AC_MSG_ERROR([
- Could not link to libnettle. Please install nettle
- first. If you have already done so; please run ldconfig
- as root or check whether the path libnettle was installed
diff --git a/meta-oe/recipes-support/rdfind/rdfind_1.4.1.bb b/meta-oe/recipes-support/rdfind/rdfind_1.4.1.bb
deleted file mode 100644
index f8eb5d38d4..0000000000
--- a/meta-oe/recipes-support/rdfind/rdfind_1.4.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Rdfind is a program that finds duplicate files"
-HOMEPAGE = "https://rdfind.pauldreik.se/"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fa22e16ebbe6638b2bd253338fbded9f"
-
-DEPENDS = "nettle autoconf-archive"
-
-SRC_URI = "https://rdfind.pauldreik.se/${BP}.tar.gz \
- file://0001-configure-Fix-check-for-AC_CHECK_LIB.patch \
-"
-
-SRC_URI[md5sum] = "180418c863b861d1df221bc486a07ce7"
-SRC_URI[sha256sum] = "30c613ec26eba48b188d2520cfbe64244f3b1a541e60909ce9ed2efb381f5e8c"
-
-inherit autotools
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/rdfind/rdfind_1.6.0.bb b/meta-oe/recipes-support/rdfind/rdfind_1.6.0.bb
new file mode 100644
index 0000000000..3a15fe6c9a
--- /dev/null
+++ b/meta-oe/recipes-support/rdfind/rdfind_1.6.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Rdfind is a program that finds duplicate files"
+HOMEPAGE = "https://rdfind.pauldreik.se/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fa22e16ebbe6638b2bd253338fbded9f"
+
+DEPENDS = "nettle autoconf-archive"
+
+SRC_URI = "https://rdfind.pauldreik.se/${BP}.tar.gz"
+SRC_URI[sha256sum] = "7a406e8ef1886a5869655604618dd98f672f12c6a6be4926d053be65070f3279"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/re2/re2/run-ptest b/meta-oe/recipes-support/re2/re2/run-ptest
new file mode 100644
index 0000000000..8bd5fd1efb
--- /dev/null
+++ b/meta-oe/recipes-support/re2/re2/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+ctest --force-new-ctest-process | sed -u 's/\*\*\*/ /g' | awk '/Test +#/{gsub(/Passed/,"PASS"); gsub(/Failed/,"FAIL"); gsub(/Skipped/,"SKIP"); print $6": "$4; fflush();}'
diff --git a/meta-oe/recipes-support/re2/re2_2020.11.01.bb b/meta-oe/recipes-support/re2/re2_2020.11.01.bb
deleted file mode 100644
index 698fe7e497..0000000000
--- a/meta-oe/recipes-support/re2/re2_2020.11.01.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "A regular expression library"
-HOMEPAGE = "https://github.com/google/re2/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b5c31eb512bdf3cb11ffd5713963760"
-
-SRCREV = "166dbbeb3b0ab7e733b278e8f42a84f6882b8a25"
-
-SRC_URI = "git://github.com/google/re2.git;branch=master;protocol=https"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE += " \
- -DBUILD_SHARED_LIBS=ON \
- -DRE2_BUILD_TESTING=OFF \
-"
-
-# Don't include so files in dev package
-FILES:${PN} = "${libdir}"
-FILES:${PN}-dev = "${includedir} ${libdir}/cmake"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/re2/re2_2024.03.01.bb b/meta-oe/recipes-support/re2/re2_2024.03.01.bb
new file mode 100644
index 0000000000..192fe265f1
--- /dev/null
+++ b/meta-oe/recipes-support/re2/re2_2024.03.01.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "A regular expression library"
+HOMEPAGE = "https://github.com/google/re2/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b5c31eb512bdf3cb11ffd5713963760"
+
+# tag 2024-03-01
+SRCREV = "2d866a3d0753f4f4fce93cccc6c59c4b052d7db4"
+
+SRC_URI = "git://github.com/google/re2.git;branch=main;protocol=https \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'file://run-ptest', '', d)} \
+ "
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "abseil-cpp ${@bb.utils.contains('PTEST_ENABLED', '1', 'gtest googlebenchmark', '', d)}"
+
+inherit cmake ptest
+RDEPENDS:${PN}-ptest += "cmake sed"
+RDEPENDS:${PN} += "abseil-cpp-dev"
+
+INSANE_SKIP:${PN} += "dev-deps"
+
+EXTRA_OECMAKE += " \
+ -DBUILD_SHARED_LIBS=ON \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', '-DRE2_BUILD_TESTING=ON', '-DRE2_BUILD_TESTING=OFF', d)} \
+"
+
+do_install_ptest () {
+ cp -r ${B}/*_test ${D}${PTEST_PATH}
+ cp -r ${B}/CTestTestfile.cmake ${D}${PTEST_PATH}
+ sed -i -e 's#${B}#${PTEST_PATH}#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+ sed -i -e 's#${S}#${PTEST_PATH}#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+ # ERROR: re2-2024.03.01-r0 do_package_qa: QA Issue: /usr/lib64/re2/ptest/string_generator_test contained in package re2-ptest requires libtesting.so()(64bit), but no providers found in RDEPENDS:re2-ptest? [file-rdeps]
+ cp -r ${B}/libtesting.so ${D}${PTEST_PATH}
+}
+
+# ignore .so in /usr/lib64
+FILES:${PN} = "${libdir}"
+INSANE_SKIP:${PN} += "dev-so"
+
+# Don't include so files in dev package
+FILES:${PN}-dev = "${includedir} ${libdir}/cmake"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb b/meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb
index 1aa492c31b..28da51a21c 100644
--- a/meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb
+++ b/meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb
@@ -3,7 +3,6 @@ DESCRIPTION = "read-edid is a set of two tools - get-edid, which gets the raw \
EDID information from the monitor, and parse-edid, which turns \
the raw binary information into a xorg.conf-compatible monitor \
section."
-AUTHOR = "Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>"
HOMEPAGE = "http://www.polypux.org/projects/read-edid/"
SECTION = "console/utils"
LICENSE = "read-edid"
diff --git a/meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb b/meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb
new file mode 100644
index 0000000000..c038966ba8
--- /dev/null
+++ b/meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Reboot the device to a specific mode."
+
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
+
+SRC_URI = "git://gitlab.com/postmarketOS/reboot-mode.git;protocol=http;branch=master"
+SRCREV = "84831b20512abd9033414ca5f5a023f333525335"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} ${S}/reboot-mode.c -o ${B}/reboot-mode
+}
+
+do_install() {
+ install -D -m 0755 ${B}/reboot-mode ${D}${bindir}/reboot-mode
+}
diff --git a/meta-oe/recipes-support/remmina/remmina_1.4.24.bb b/meta-oe/recipes-support/remmina/remmina_1.4.24.bb
deleted file mode 100644
index 23cafa7e48..0000000000
--- a/meta-oe/recipes-support/remmina/remmina_1.4.24.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-DESCRIPTION = "A feature rich Remote Desktop Application written in GTK+"
-HOMEPAGE = "https://remmina.org"
-SECTION = "Support"
-LICENSE = "GPL-2.0-only & OpenSSL"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dab7215512044d49037272ce1ac4ea8f file://LICENSE.OpenSSL;md5=c1eb3cee0a4dea27503c531267a69769"
-
-DEPENDS = " \
- glib-2.0-native \
- openssl \
- freerdp \
- gtk+3 \
- gdk-pixbuf \
- atk \
- libgcrypt \
- libsodium \
- libssh \
- vte \
- json-glib \
- libsoup-2.4 \
- libvncserver \
- libsecret \
- libxkbfile \
-"
-
-DEPENDS:append:libc-musl = " libexecinfo"
-LDFLAGS:append:libc-musl = " -lexecinfo"
-
-SRCREV = "ffa6a7ef9c6be7951bac23d14df148098fd2d3fa"
-SRC_URI = "git://gitlab.com/Remmina/Remmina;protocol=https;branch=master"
-S = "${WORKDIR}/git"
-
-inherit cmake features_check mime mime-xdg gtk-icon-cache pkgconfig
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OECMAKE += "-DWITH_APPINDICATOR=OFF -DWITH_GETTEXT=OFF -DWITH_TRANSLATIONS=OFF -DHAVE_LIBAPPINDICATOR=OFF"
-
-PACKAGECONFIG[spice] = "-DWITH_SPICE=ON, -DWITH_SPICE=OFF, spice spice-protocol"
-# Switch on gtk support in avahi recipe if you want to enable avahi support
-PACKAGECONFIG[avahi] = "-DWITH_AVAHI=ON, -DWITH_AVAHI=OFF, avahi"
-
-RDEPENDS:${PN} = "bash"
-
-FILES:${PN}+= " \
- ${datadir}/metainfo \
- ${datadir}/mime \
-"
diff --git a/meta-oe/recipes-support/remmina/remmina_1.4.34.bb b/meta-oe/recipes-support/remmina/remmina_1.4.34.bb
new file mode 100644
index 0000000000..921d34d9fd
--- /dev/null
+++ b/meta-oe/recipes-support/remmina/remmina_1.4.34.bb
@@ -0,0 +1,50 @@
+DESCRIPTION = "A feature rich Remote Desktop Application written in GTK+"
+HOMEPAGE = "https://remmina.org"
+SECTION = "Support"
+LICENSE = "GPL-2.0-only & OpenSSL"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dab7215512044d49037272ce1ac4ea8f file://LICENSE.OpenSSL;md5=c1eb3cee0a4dea27503c531267a69769"
+
+DEPENDS = " \
+ glib-2.0-native \
+ openssl \
+ freerdp \
+ gtk+3 \
+ gdk-pixbuf \
+ atk \
+ libgcrypt \
+ libsodium \
+ libssh \
+ vte \
+ json-glib \
+ libsoup-3.0 \
+ libvncserver \
+ libsecret \
+ libxkbfile \
+"
+
+DEPENDS:append:libc-musl = " libexecinfo"
+LDFLAGS:append:libc-musl = " -lexecinfo"
+
+SRCREV = "75a0bdb795d99e052690178ae0d81ebdbd2cbdd3"
+SRC_URI = "git://gitlab.com/Remmina/Remmina;protocol=https;branch=master"
+S = "${WORKDIR}/git"
+
+inherit cmake features_check mime mime-xdg gtk-icon-cache pkgconfig
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OECMAKE += "-DWITH_APPINDICATOR=OFF -DWITH_GETTEXT=OFF -DWITH_TRANSLATIONS=OFF -DHAVE_LIBAPPINDICATOR=OFF -DWITH_WEBKIT2GTK=OFF"
+
+PACKAGECONFIG[spice] = "-DWITH_SPICE=ON, -DWITH_SPICE=OFF, spice spice-protocol"
+# Switch on gtk support in avahi recipe if you want to enable avahi support
+PACKAGECONFIG[avahi] = "-DWITH_AVAHI=ON, -DWITH_AVAHI=OFF, avahi"
+
+do_configure:append() {
+ sed -i -e 's|${WORKDIR}|<WORKDIR>|g' ${B}/generated/buildflags.h
+}
+
+RDEPENDS:${PN} = "bash"
+
+FILES:${PN}+= " \
+ ${datadir}/metainfo \
+ ${datadir}/mime \
+"
diff --git a/meta-oe/recipes-support/reptyr/reptyr_0.10.0.bb b/meta-oe/recipes-support/reptyr/reptyr_0.10.0.bb
new file mode 100644
index 0000000000..57b31a78d9
--- /dev/null
+++ b/meta-oe/recipes-support/reptyr/reptyr_0.10.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Reparent a running program to a new terminal"
+DESCRIPTION = "reptyr is a utility for taking an existing running program and \
+attaching it to a new terminal. Started a long-running process over ssh, but \
+have to leave and don't want to interrupt it? Just start a screen, use reptyr \
+to grab it, and then kill the ssh session and head on home."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=25a0555028c71837623fa6dfa4cc45c0"
+
+SRC_URI = "git://github.com/nelhage/reptyr.git;protocol=https;branch=master"
+SRCREV = "1238097fc2cd15db058d2185cc4985daa87bcd41"
+
+S = "${WORKDIR}/git"
+
+inherit bash-completion github-releases manpages pkgconfig
+
+GITHUB_BASE_URI = "https://github.com/nelhage/${BPN}/releases/"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[manpages] = ""
+
+EXTRA_OEMAKE = "'BINDIR=${bindir}' 'MANDIR=${mandir}' 'PKG_CONFIG=${STAGING_BINDIR_NATIVE}/pkg-config'"
+
+do_compile () {
+ oe_runmake
+}
+
+do_install () {
+ oe_runmake install 'DESTDIR=${D}'
+}
diff --git a/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb b/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
index 2203663c17..3cbd04bd5c 100644
--- a/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
+++ b/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
@@ -22,8 +22,8 @@ RDEPENDS:${PN} = "rsync \
perl-module-ipc-open3 \
"
-SRCREV = "4dc82bfe6be3f83fcfa94946dcf6accfd6a18031"
-PV = "1.4.4+git${SRCPV}"
+SRCREV = "1b943dbc7695d62fac5c0f9549ec696a538be19c"
+PV = "1.4.5"
SRC_URI = "git://github.com/DrHyde/${BPN};branch=master;protocol=https \
file://configure-fix-cmd_rsync.patch \
diff --git a/meta-oe/recipes-support/rtkit/rtkit_0.13.bb b/meta-oe/recipes-support/rtkit/rtkit_0.13.bb
new file mode 100644
index 0000000000..4f06e55e8e
--- /dev/null
+++ b/meta-oe/recipes-support/rtkit/rtkit_0.13.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "REALTIMEKIT Realtime Policy and Watchdog Daemon"
+LICENSE = "GPL-3.0-only & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a8e768468b658b3ed44971b53d4a6716"
+
+SRC_URI = "git://github.com/heftig/rtkit.git;protocol=https;branch=master"
+
+SRCREV = "b9169402fe5e82d20efb754509eb0b191f214599"
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig features_check useradd
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+DEPENDS = "dbus libcap polkit xxd-native"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = ",,systemd"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --user-group --shell /bin/nologin rtkit"
+
+FILES:${PN} += "${libdir} ${datadir} ${systemd_system_unitdir}"
+
diff --git a/meta-oe/recipes-support/sass/libsass_git.bb b/meta-oe/recipes-support/sass/libsass_git.bb
index 4d709fc526..f0824944b9 100644
--- a/meta-oe/recipes-support/sass/libsass_git.bb
+++ b/meta-oe/recipes-support/sass/libsass_git.bb
@@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=8f34396ca205f5e119ee77aae91fa27d"
inherit autotools
SRC_URI = "git://github.com/sass/libsass.git;branch=master;protocol=https"
-SRCREV = "f6afdbb9288d20d1257122e71d88e53348a53af3"
-PV = "3.6.5"
+SRCREV = "7037f03fabeb2b18b5efa84403f5a6d7a990f460"
+PV = "3.6.6"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/satyr/files/0001-py_base_stacktrace.c-include-glib.h.patch b/meta-oe/recipes-support/satyr/files/0001-py_base_stacktrace.c-include-glib.h.patch
deleted file mode 100644
index fe3b1c12d2..0000000000
--- a/meta-oe/recipes-support/satyr/files/0001-py_base_stacktrace.c-include-glib.h.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 3b84fe4375292d00ebb605a5917e66129fe5f0cb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 24 Aug 2022 23:26:46 -0700
-Subject: [PATCH] py_base_stacktrace.c: include glib.h
-
-This file has references to g_free from glib-2.0 which needs this header
-
-Upstream-Status: Submitted [https://github.com/abrt/satyr/pull/333]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- python/py_base_stacktrace.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/python/py_base_stacktrace.c b/python/py_base_stacktrace.c
-index b9bd16c..301db84 100644
---- a/python/py_base_stacktrace.c
-+++ b/python/py_base_stacktrace.c
-@@ -17,7 +17,7 @@
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
--
-+#include <glib.h>
- #include "py_common.h"
- #include "py_base_thread.h"
- #include "py_base_stacktrace.h"
---
-2.37.2
-
diff --git a/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch b/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
index b6c32c4bd5..24efc13560 100644
--- a/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
+++ b/meta-oe/recipes-support/satyr/files/0002-fix-compile-failure-against-musl-C-library.patch
@@ -10,19 +10,17 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
lib/rpm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/lib/rpm.c b/lib/rpm.c
-index 920e145..58140bf 100644
--- a/lib/rpm.c
+++ b/lib/rpm.c
-@@ -191,7 +191,7 @@ sr_rpm_package_sort(struct sr_rpm_package *packages)
- }
+@@ -34,6 +34,11 @@
+ #include <assert.h>
+ #include <string.h>
- /* Sort the array. */
-- qsort(array, count, sizeof(struct sr_rpm_package*), (comparison_fn_t)cmp_nevra_qsort_wrapper);
-+ qsort(array, count, sizeof(struct sr_rpm_package*), cmp_nevra_qsort_wrapper);
-
- /* Create a linked list from the sorted array. */
- for (size_t loop = 0; loop < count; ++loop)
---
-2.8.1
-
++#if !defined(__GLIBC__)
++typedef int (*__compar_fn_t) (const void*, const void*);
++typedef __compar_fn_t comparison_fn_t;
++#endif
++
+ struct sr_rpm_package *
+ sr_rpm_package_new()
+ {
diff --git a/meta-oe/recipes-support/satyr/satyr_0.39.bb b/meta-oe/recipes-support/satyr/satyr_0.39.bb
deleted file mode 100644
index be1ef3f790..0000000000
--- a/meta-oe/recipes-support/satyr/satyr_0.39.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-DESCRIPTION = "Satyr is a collection of low-level algorithms for program \
-failure processing, analysis, and reporting supporting kernel space, user \
-space, Python, and Java programs"
-
-HOMEPAGE = "https://github.com/abrt/satyr"
-LICENSE = "GPL-2.0-only"
-
-inherit autotools-brokensep python3native pkgconfig
-
-SRC_URI = "git://github.com/abrt/satyr.git;branch=master;protocol=https \
- file://0002-fix-compile-failure-against-musl-C-library.patch \
- file://0001-py_base_stacktrace.c-include-glib.h.patch \
-"
-SRCREV = "f8a0dbfe7fcc6e44f03d66ca5c81363aea318380"
-S = "${WORKDIR}/git"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS += " \
- gdb \
- gperf-native \
- json-c \
- nettle \
- glib-2.0 \
-"
-
-PACKAGES += "python3-${BPN}"
-FILES:python3-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}"
-
-PACKAGECONFIG ??= "python3 rpm"
-PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
-PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm"
-
-do_configure:prepend() {
- ${S}/gen-version
-}
diff --git a/meta-oe/recipes-support/satyr/satyr_0.43.bb b/meta-oe/recipes-support/satyr/satyr_0.43.bb
new file mode 100644
index 0000000000..9e6d701c7f
--- /dev/null
+++ b/meta-oe/recipes-support/satyr/satyr_0.43.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Satyr is a collection of low-level algorithms for program \
+failure processing, analysis, and reporting supporting kernel space, user \
+space, Python, and Java programs"
+
+HOMEPAGE = "https://github.com/abrt/satyr"
+LICENSE = "GPL-2.0-only"
+
+inherit autotools-brokensep python3native python3targetconfig pkgconfig
+
+SRC_URI = "git://github.com/abrt/satyr.git;branch=master;protocol=https \
+ file://0002-fix-compile-failure-against-musl-C-library.patch \
+ "
+SRCREV = "5891618d6a95afc4cde6757374485adf9bf0e9a5"
+S = "${WORKDIR}/git"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS += " \
+ gdb \
+ gperf-native \
+ json-c \
+ nettle \
+ glib-2.0 \
+"
+
+PACKAGES += "python3-${BPN}"
+FILES:python3-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}"
+
+PACKAGECONFIG ??= "python3 rpm"
+PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
+PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm"
+
+do_configure:prepend() {
+ ${S}/gen-version
+}
diff --git a/meta-oe/recipes-support/sdmon/sdmon_git.bb b/meta-oe/recipes-support/sdmon/sdmon_git.bb
new file mode 100644
index 0000000000..522539a67b
--- /dev/null
+++ b/meta-oe/recipes-support/sdmon/sdmon_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Get SD card health data"
+HOMEPAGE = "https://github.com/Ognian/sdmon"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://github.com/Ognian/sdmon;protocol=https;branch=master"
+
+PV = "0.8.1+git"
+SRCREV = "ef1aec457f04a50721f0259651cca9c946f11390"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+ oe_runmake -C ${S}/src CC="${CC}" CFLAGS="${CFLAGS} -D_REENTRANT -DVERSION=\"\\\"${PV}\\\"\"" LDFLAGS="${LDFLAGS}"
+}
+
+do_install() {
+ install -Dm 0755 ${S}/src/sdmon ${D}${bindir}/sdmon
+}
diff --git a/meta-oe/recipes-support/serial-utils/pty-forward-native.bb b/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
index 71588abd3f..82994331ee 100644
--- a/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
+++ b/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
@@ -1,10 +1,9 @@
SUMMARY = "Receive a forwarded serial from serial-forward and provide a PTY"
-AUTHOR = "Holger 'Zecke' Freyther"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
SECTION = "console/network"
SRCREV = "00dbec2636ae0385ad028587e20e446272ff97ec"
-PV = "1.1+gitr${SRCPV}"
+PV = "1.1+git"
SRC_URI = "git://github.com/freesmartphone/cornucopia.git;protocol=https;branch=master"
S = "${WORKDIR}/git/tools/serial_forward"
diff --git a/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch b/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch
index 7dcc67d114..a3fb678965 100644
--- a/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch
+++ b/meta-oe/recipes-support/serial-utils/serial-forward/0001-serial_forward-Disable-default-static-linking.patch
@@ -7,6 +7,8 @@ This does not work with ssp turned on with hardening flags on musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
tools/serial_forward/src/Makefile.am | 3 ---
1 file changed, 3 deletions(-)
diff --git a/meta-oe/recipes-support/serial-utils/serial-forward_git.bb b/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
index fe5cfc0f45..541ae84a93 100644
--- a/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
+++ b/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
@@ -1,10 +1,9 @@
SUMMARY = "Forward a serial using TCP/IP"
-AUTHOR = "Holger 'Zecke' Freyther'"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
SECTION = "console/devel"
SRCREV = "07c6fdede0870edc37a8d51d033b6e7e29aa7c91"
-PV = "1.1+gitr${SRCPV}"
+PV = "1.1+git"
SRC_URI = "git://github.com/freesmartphone/cornucopia.git;branch=master;protocol=https \
file://0001-serial_forward-Disable-default-static-linking.patch;striplevel=3 \
diff --git a/meta-oe/recipes-support/serial/serial/Findcatkin.cmake b/meta-oe/recipes-support/serial/serial/Findcatkin.cmake
new file mode 100644
index 0000000000..2f93564be3
--- /dev/null
+++ b/meta-oe/recipes-support/serial/serial/Findcatkin.cmake
@@ -0,0 +1,5 @@
+# Work-around for https://github.com/wjwwood/serial/issues/135
+
+function(catkin_package)
+endfunction()
+
diff --git a/meta-oe/recipes-support/serial/serial_1.2.1.bb b/meta-oe/recipes-support/serial/serial_1.2.1.bb
new file mode 100644
index 0000000000..8c1fb063b3
--- /dev/null
+++ b/meta-oe/recipes-support/serial/serial_1.2.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Cross-platform library for interfacing with rs-232 serial like ports"
+HOMEPAGE = "http://wjwwood.io/serial/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.md;beginline=53;endline=62;md5=049c68d559533f90250404746e6a1045"
+
+SRC_URI = " \
+ git://github.com/wjwwood/${BPN}.git;protocol=https;branch=main \
+ file://Findcatkin.cmake \
+"
+SRCREV = "10ac4e1c25c2cda1dc0a32a8e12b87fd89f3bb4f"
+SRC_URI[sha256sum] = "c8cd235dda2ef7d977ba06dfcb35c35e42f45cfd9149ba3ad257756123d8ff96"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+# Work-around for https://github.com/wjwwood/serial/issues/135
+EXTRA_OECMAKE = " \
+ -DCMAKE_MODULE_PATH=${WORKDIR} \
+ -DCATKIN_PACKAGE_LIB_DESTINATION=${libdir} \
+ -DCATKIN_PACKAGE_BIN_DESTINATION=${bindir} \
+ -DCATKIN_GLOBAL_INCLUDE_DESTINATION=${includedir} \
+ -DCATKIN_ENABLE_TESTING=OFF \
+"
+
+# Do not depend on the main package since it will be empty
+RDEPENDS:${PN}-dev = ""
+
diff --git a/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb b/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb
deleted file mode 100644
index ac12f9561d..0000000000
--- a/meta-oe/recipes-support/sg3-utils/sg3-utils_1.45.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Utilities for working with generic SCSI devices"
-
-DESCRIPTION = "This package contains low level utilities for devices that use the SCSI command set"
-
-HOMEPAGE = "http://sg.danny.cz/sg/sg3_utils.html"
-SECTION = "console/admin"
-
-LICENSE = "GPL-2.0-or-later & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f90da7fc52172599dbf082d7620f18ca"
-
-SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz \
-"
-MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
-
-UPSTREAM_CHECK_REGEX = "sg3_utils-(?P<pver>\d+(\.\d+)+)\.tgz"
-
-SRC_URI[md5sum] = "2e71d7cd925dcc48acb24afaaaac7990"
-SRC_URI[sha256sum] = "0b87c971af52af7cebebcce343eac6bd3d73febb3c72af9ce41a4552f1605a61"
-
-inherit autotools-brokensep
-
-S = "${WORKDIR}/sg3_utils-${PV}"
-
-RDEPENDS:${PN} += "bash"
diff --git a/meta-oe/recipes-support/sg3-utils/sg3-utils_1.48.bb b/meta-oe/recipes-support/sg3-utils/sg3-utils_1.48.bb
new file mode 100644
index 0000000000..6c3d813983
--- /dev/null
+++ b/meta-oe/recipes-support/sg3-utils/sg3-utils_1.48.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Utilities for working with generic SCSI devices"
+
+DESCRIPTION = "This package contains low level utilities for devices that use the SCSI command set"
+
+HOMEPAGE = "http://sg.danny.cz/sg/sg3_utils.html"
+SECTION = "console/admin"
+
+LICENSE = "GPL-2.0-or-later & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f685699d3ac82f108aa880043fa3feb7"
+
+SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz"
+MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
+
+UPSTREAM_CHECK_REGEX = "sg3_utils-(?P<pver>\d+(\.\d+)+)\.tgz"
+
+SRC_URI[sha256sum] = "d62b6c3cf20390fa7357044390084166d25f1d932a1135c450b69fe5c283d773"
+
+inherit autotools-brokensep
+
+S = "${WORKDIR}/sg3_utils-${PV}"
+
+RDEPENDS:${PN} += "bash"
diff --git a/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-clang.patch b/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-clang.patch
index 7b627c16dd..583fe33ece 100644
--- a/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-clang.patch
+++ b/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-clang.patch
@@ -8,6 +8,8 @@ whereas it does support format attribute, we hard code it
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/shar-opts.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-building-with-GCC-10.patch b/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-building-with-GCC-10.patch
index 9e2ebe7564..0d9978a214 100644
--- a/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-building-with-GCC-10.patch
+++ b/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-building-with-GCC-10.patch
@@ -21,6 +21,8 @@ declarations.
Signed-off-by: Petr Písař <address@hidden>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/shar-opts.h | 2 +-
src/shar-std.def | 2 +-
src/unshar-opts.h | 2 +-
diff --git a/meta-oe/recipes-support/sharutils/sharutils/0001-configure.ac-Check-and-define-intmax_t-type.patch b/meta-oe/recipes-support/sharutils/sharutils/0001-configure.ac-Check-and-define-intmax_t-type.patch
new file mode 100644
index 0000000000..32562a08bc
--- /dev/null
+++ b/meta-oe/recipes-support/sharutils/sharutils/0001-configure.ac-Check-and-define-intmax_t-type.patch
@@ -0,0 +1,32 @@
+From ea6f7a4c22f1b6f28cf426566cccd65eb9a0e9de Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 10 Sep 2023 13:52:31 -0700
+Subject: [PATCH] configure.ac: Check and define intmax_t type
+
+If stdint.h or inttypes.h defines the type intmax_t, define HAVE_INTMAX_T.
+Otherwise, define intmax_t to the widest signed integer type.
+
+intmax_t is defined in lib/system.h if system is not providing it but it
+needs to be checked by configure for existence first.
+
+Upstream-Status: Submitted [https://savannah.gnu.org/bugs/index.php?64653]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index 1242cb7..2ccaac9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -72,6 +72,7 @@ AC_HEADER_STAT
+ AC_HEADER_STDC
+ AC_STRUCT_TIMEZONE
+ AC_TYPE_SIZE_T
++AC_TYPE_INTMAX_T
+ AC_CHECK_FUNCS([fchmod isascii strchr])
+ AC_FUNC_CLOSEDIR_VOID
+ AC_FUNC_FSEEKO
+--
+2.42.0
+
diff --git a/meta-oe/recipes-support/sharutils/sharutils/0002-Do-not-include-lib-md5.c-into-src-shar.c.patch b/meta-oe/recipes-support/sharutils/sharutils/0002-Do-not-include-lib-md5.c-into-src-shar.c.patch
index d4a8d6fbae..5932ddf1c0 100644
--- a/meta-oe/recipes-support/sharutils/sharutils/0002-Do-not-include-lib-md5.c-into-src-shar.c.patch
+++ b/meta-oe/recipes-support/sharutils/sharutils/0002-Do-not-include-lib-md5.c-into-src-shar.c.patch
@@ -20,6 +20,8 @@ shar.o:shar.c:(.text+0x28): first defined here
Signed-off-by: Petr Písař <address@hidden>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/shar.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch b/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch
index 99dc4e3046..47eb9cfd64 100644
--- a/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch
+++ b/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch
@@ -36,7 +36,7 @@ This was reported in
<http://lists.gnu.org/archive/html/bug-gnu-utils/2018-02/msg00004.html>.
CVE: CVE-2018-1000097
-Upstream-Status: no upstream [http://lists.gnu.org/archive/html/bug-gnu-utils/2018-02/msg00004.html]
+Upstream-Status: Inappropriate [no upstream]
Signed-off-by: Petr Písař <ppisar@redhat.com>
Signed-off-by: Sinan Kaya <okaya@kernel.org>
---
diff --git a/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb b/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
index bd2776e1bc..2a16b18288 100644
--- a/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
+++ b/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
@@ -12,6 +12,7 @@ SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
file://0001-Fix-build-with-recent-gettext.patch \
file://0001-Fix-building-with-GCC-10.patch \
file://0002-Do-not-include-lib-md5.c-into-src-shar.c.patch \
+ file://0001-configure.ac-Check-and-define-intmax_t-type.patch \
"
SRC_URI[md5sum] = "32a51b23e25ad5e6af4b89f228be1800"
SRC_URI[sha256sum] = "ee336e68549664e7a19b117adf02edfdeac6307f22e5ba78baca457116914637"
diff --git a/meta-oe/recipes-support/smarty/smarty_4.2.1.bb b/meta-oe/recipes-support/smarty/smarty_4.2.1.bb
deleted file mode 100644
index 71040d0164..0000000000
--- a/meta-oe/recipes-support/smarty/smarty_4.2.1.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "the compiling PHP template engine"
-SECTION = "console/network"
-HOMEPAGE = "https://www.smarty.net/"
-
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2c0f216b2120ffc367e20f2b56df51b3"
-
-DEPENDS += "php"
-
-SRC_URI = "git://github.com/smarty-php/smarty.git;protocol=https;branch=master"
-
-SRCREV = "ffa2b81a8e354a49fd8a2f24742dc9dc399e8007"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- install -d ${D}${datadir}/php/smarty3/libs/
- install -m 0644 ${S}/libs/*.php ${D}${datadir}/php/smarty3/libs/
-
- install -d ${D}${datadir}/php/smarty3/libs/plugins
- install -m 0644 ${S}/libs/plugins/*.php ${D}${datadir}/php/smarty3/libs/plugins/
-
- install -d ${D}${datadir}/php/smarty3/libs/sysplugins
- install -m 0644 ${S}/libs/sysplugins/*.php ${D}${datadir}/php/smarty3/libs/sysplugins/
-}
-FILES:${PN} = "${datadir}/php/smarty3/"
diff --git a/meta-oe/recipes-support/smarty/smarty_4.4.1.bb b/meta-oe/recipes-support/smarty/smarty_4.4.1.bb
new file mode 100644
index 0000000000..1caa4cd1bb
--- /dev/null
+++ b/meta-oe/recipes-support/smarty/smarty_4.4.1.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "the compiling PHP template engine"
+SECTION = "console/network"
+HOMEPAGE = "https://www.smarty.net/"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2c0f216b2120ffc367e20f2b56df51b3"
+
+DEPENDS += "php"
+
+SRC_URI = "git://github.com/smarty-php/smarty.git;protocol=https;branch=support/4.3"
+
+SRCREV = "f4152e9b814ae2369b6e4935c05e1e0c3654318d"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -d ${D}${datadir}/php/smarty3/libs/
+ install -m 0644 ${S}/libs/*.php ${D}${datadir}/php/smarty3/libs/
+
+ install -d ${D}${datadir}/php/smarty3/libs/plugins
+ install -m 0644 ${S}/libs/plugins/*.php ${D}${datadir}/php/smarty3/libs/plugins/
+
+ install -d ${D}${datadir}/php/smarty3/libs/sysplugins
+ install -m 0644 ${S}/libs/sysplugins/*.php ${D}${datadir}/php/smarty3/libs/sysplugins/
+}
+FILES:${PN} = "${datadir}/php/smarty3/"
diff --git a/meta-oe/recipes-support/span-lite/span-lite_0.10.3.bb b/meta-oe/recipes-support/span-lite/span-lite_0.10.3.bb
deleted file mode 100644
index 0d9a8c93d2..0000000000
--- a/meta-oe/recipes-support/span-lite/span-lite_0.10.3.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "single-file header-only version of a C++20-like span for C++98, C++11 and later"
-HOMEPAGE = "https://github.com/martinmoene/span-lite"
-LICENSE = "BSL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
-
-SRC_URI += "git://github.com/martinmoene/span-lite;branch=master;protocol=https"
-SRCREV = "cbb9c3c5162a0d7018c7b3e053153a04d4fbbbb9"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-inherit ptest
diff --git a/meta-oe/recipes-support/span-lite/span-lite_0.11.0.bb b/meta-oe/recipes-support/span-lite/span-lite_0.11.0.bb
new file mode 100644
index 0000000000..9dc393fd08
--- /dev/null
+++ b/meta-oe/recipes-support/span-lite/span-lite_0.11.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "single-file header-only version of a C++20-like span for C++98, C++11 and later"
+HOMEPAGE = "https://github.com/martinmoene/span-lite"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+
+SRC_URI += "git://github.com/martinmoene/span-lite;branch=master;protocol=https"
+SRCREV = "50f55c59d1b66910837313c40d11328d03447a41"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-oe/recipes-support/spdlog/spdlog_1.10.0.bb b/meta-oe/recipes-support/spdlog/spdlog_1.10.0.bb
deleted file mode 100644
index a7d9263513..0000000000
--- a/meta-oe/recipes-support/spdlog/spdlog_1.10.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "Very fast, header only, C++ logging library."
-HOMEPAGE = "https://github.com/gabime/spdlog/wiki"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-SRCREV = "76fb40d95455f249bd70824ecfcae7a8f0930fa3"
-SRC_URI = "git://github.com/gabime/spdlog.git;protocol=https;branch=v1.x"
-
-DEPENDS += "fmt"
-
-S = "${WORKDIR}/git"
-
-BBCLASSEXTEND = "native"
-# no need to build example & tests & benchmarks on pure yocto
-EXTRA_OECMAKE += "-DSPDLOG_INSTALL=on -DSPDLOG_BUILD_SHARED=on -DSPDLOG_BUILD_EXAMPLE=off -DSPDLOG_BUILD_TESTS=off -DSPDLOG_BUILD_BENCH=off -DSPDLOG_FMT_EXTERNAL=on"
-
-inherit cmake
diff --git a/meta-oe/recipes-support/spdlog/spdlog_1.13.0.bb b/meta-oe/recipes-support/spdlog/spdlog_1.13.0.bb
new file mode 100644
index 0000000000..c6a0881db9
--- /dev/null
+++ b/meta-oe/recipes-support/spdlog/spdlog_1.13.0.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Very fast, header only, C++ logging library."
+HOMEPAGE = "https://github.com/gabime/spdlog/wiki"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9573510928429ad0cbe5ba4de77546e9"
+
+SRCREV = "7c02e204c92545f869e2f04edaab1f19fe8b19fd"
+SRC_URI = "git://github.com/gabime/spdlog.git;protocol=https;branch=v1.x"
+
+DEPENDS = "fmt"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+# no need to build example & tests & benchmarks on pure yocto
+EXTRA_OECMAKE += "-DSPDLOG_INSTALL=on -DSPDLOG_BUILD_SHARED=on -DSPDLOG_BUILD_EXAMPLE=off -DSPDLOG_FMT_EXTERNAL=on"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/spitools/spitools_git.bb b/meta-oe/recipes-support/spitools/spitools_git.bb
index 9dfb23cc7c..1e3d6beaf4 100644
--- a/meta-oe/recipes-support/spitools/spitools_git.bb
+++ b/meta-oe/recipes-support/spitools/spitools_git.bb
@@ -1,10 +1,8 @@
DESCRIPTION = "This package contains some simple command line tools to help using Linux spidev devices"
HOMEPAGE = "https://github.com/cpb-/spi-tools"
-AUTHOR = "Christophe BLAESS"
LICENSE="GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381"
-BPV = "1.0.0"
PV = "1.0.2"
SRCREV = "1748e092425a4a0ff693aa347062a57fc1ffdd00"
diff --git a/meta-oe/recipes-support/srecord/files/0001-Disable-doxygen.patch b/meta-oe/recipes-support/srecord/files/0001-Disable-doxygen.patch
new file mode 100644
index 0000000000..0ed9e87771
--- /dev/null
+++ b/meta-oe/recipes-support/srecord/files/0001-Disable-doxygen.patch
@@ -0,0 +1,85 @@
+From d75193671c235e4b3bd02417b40516f3bfeb55b6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 30 Apr 2023 14:09:21 -0700
+Subject: [PATCH] Disable doxygen
+
+doxygen (dot) detect does not work in cross environment here with cmake
+
+Upstream-Status: Inappropriate [Cross-compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ etc/configure.cmake | 2 +-
+ srecord/CMakeLists.txt | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+--- a/etc/configure.cmake
++++ b/etc/configure.cmake
+@@ -103,32 +103,3 @@ option(_TANDEM_SOURCE ON)
+ # Enable general extensions on Solaris.
+ option(__EXTENSIONS__ ON)
+
+-# Doxygen configuration
+-find_package(Doxygen REQUIRED doxygen dot)
+-
+-set(DOXYGEN_DOT_GRAPH_MAX_NODES 150)
+-set(DOXYGEN_ALPHABETICAL_INDEX NO)
+-set(DOXYGEN_BUILTIN_STL_SUPPORT YES)
+-set(DOXYGEN_CASE_SENSE_NAMES NO)
+-set(DOXYGEN_CLASS_DIAGRAMS YES)
+-set(DOXYGEN_DISTRIBUTE_GROUP_DOC YES)
+-set(DOXYGEN_EXCLUDE bin)
+-set(DOXYGEN_EXTRACT_ALL YES)
+-set(DOXYGEN_EXTRACT_LOCAL_CLASSES NO)
+-set(DOXYGEN_FILE_PATTERNS *.h)
+-set(DOXYGEN_GENERATE_TREEVIEW YES)
+-set(DOXYGEN_HIDE_FRIEND_COMPOUNDS YES)
+-set(DOXYGEN_HIDE_IN_BODY_DOCS YES)
+-set(DOXYGEN_HIDE_UNDOC_CLASSES YES)
+-set(DOXYGEN_HIDE_UNDOC_MEMBERS YES)
+-set(DOXYGEN_JAVADOC_AUTOBRIEF YES)
+-set(DOXYGEN_QT_AUTOBRIEF YES)
+-set(DOXYGEN_QUIET YES)
+-set(DOXYGEN_RECURSIVE YES)
+-set(DOXYGEN_REFERENCED_BY_RELATION YES)
+-set(DOXYGEN_REFERENCES_RELATION YES)
+-set(DOXYGEN_SORT_BY_SCOPE_NAME YES)
+-set(DOXYGEN_SORT_MEMBER_DOCS NO)
+-set(DOXYGEN_SOURCE_BROWSER YES)
+-set(DOXYGEN_STRIP_CODE_COMMENTS NO)
+-set(DOXYGEN_GENERATE_HTML YES)
+--- a/srecord/CMakeLists.txt
++++ b/srecord/CMakeLists.txt
+@@ -34,9 +34,9 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE
+ FILES_MATCHING PATTERN "*.h")
+
+ # Install the Doxygen output for the website
+-install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
+- DESTINATION ${CMAKE_INSTALL_DOCDIR}/htdocs/srecord
+- COMPONENT website)
++#install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
++# DESTINATION ${CMAKE_INSTALL_DOCDIR}/htdocs/srecord
++# COMPONENT website)
+
+ # Generate config.h to suit local environment
+ configure_file(config.h.in config.h @ONLY)
+@@ -44,6 +44,6 @@ configure_file(patchlevel.h.in patchleve
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+ # Generate doxygen content
+-doxygen_add_docs(doxygen
+- ${LIB_SRECORD_HDR}
+- ALL)
++#doxygen_add_docs(doxygen
++# ${LIB_SRECORD_HDR}
++# ALL)
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -55,7 +55,7 @@ enable_testing()
+ add_subdirectory(test)
+
+ # Documentation & Man Pages
+-add_subdirectory(doc)
++# add_subdirectory(doc)
+
+ # Package SRecord
+ include(CPack)
diff --git a/meta-oe/recipes-support/srecord/files/0001-cmake-Do-not-try-to-compute-library-dependencies-dur.patch b/meta-oe/recipes-support/srecord/files/0001-cmake-Do-not-try-to-compute-library-dependencies-dur.patch
new file mode 100644
index 0000000000..524dc74611
--- /dev/null
+++ b/meta-oe/recipes-support/srecord/files/0001-cmake-Do-not-try-to-compute-library-dependencies-dur.patch
@@ -0,0 +1,45 @@
+From 756169511ed13e4c7adc06c7c108d365ac66b9f8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 30 Apr 2023 22:58:47 -0700
+Subject: [PATCH] cmake: Do not try to compute library dependencies during
+ install
+
+Since we are cross-building the dependencies are not in final install
+location but in a staging area in recipe specific sysroot and it wont be
+able to resolve the libraries all the time
+
+Fixes
+| CMake Error at srec_cat/cmake_install.cmake:66 (file):
+| file Could not resolve runtime dependencies:
+|
+| libc++.so.1
+| libc.so
+| Call Stack (most recent call first):
+| cmake_install.cmake:52 (include)
+
+Upstream-Status: Inappropriate [OE-specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ etc/packaging.cmake | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/etc/packaging.cmake b/etc/packaging.cmake
+index ee2a32c..9804fd8 100644
+--- a/etc/packaging.cmake
++++ b/etc/packaging.cmake
+@@ -45,12 +45,6 @@ FUNCTION(INSTALL_SRECORD_EXECUTABLE_TARGET target)
+
+ install(IMPORTED_RUNTIME_ARTIFACTS ${target}
+ RUNTIME_DEPENDENCY_SET ${PROJECT_NAME}_dlls COMPONENT ${target})
+- install(RUNTIME_DEPENDENCY_SET ${PROJECT_NAME}_dlls
+- PRE_EXCLUDE_REGEXES "api-ms-" "ext-ms-"
+- POST_EXCLUDE_REGEXES ".*system32/.*\\.dll"
+- DIRECTORIES ${DLL_SEARCH_DIRS}
+- COMPONENT ${target}
+- )
+ ENDFUNCTION()
+
+ # Packaging
+--
+2.40.1
+
diff --git a/meta-oe/recipes-support/srecord/files/0001-cmake-respect-explicit-install-prefix.patch b/meta-oe/recipes-support/srecord/files/0001-cmake-respect-explicit-install-prefix.patch
new file mode 100644
index 0000000000..64584656fa
--- /dev/null
+++ b/meta-oe/recipes-support/srecord/files/0001-cmake-respect-explicit-install-prefix.patch
@@ -0,0 +1,31 @@
+From 4aa8cf8c93e1fa6ffeb40fc3473f32b1b83af141 Mon Sep 17 00:00:00 2001
+From: "Ilya A. Kriveshko" <iillyyaa@gmail.com>
+Date: Tue, 2 Jan 2024 15:37:10 -0500
+Subject: [PATCH] cmake: respect explicit install prefix
+
+If CMAKE_INSTALL_PREFIX was supplied externally, use it. This follows
+the pattern suggested by cmake documentation in:
+https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.html
+
+Upstream-Status: Submitted [https://github.com/sierrafoxtrot/srecord/pull/68]
+---
+ CMakeLists.txt | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 74b8108c..ac9f464e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -30,9 +30,9 @@ include(InstallRequiredSystemLibraries)
+ include(GNUInstallDirs)
+
+ # FHS compliant paths for Linux installation
+-if(NOT WIN32 AND CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+-# set(CMAKE_INSTALL_PREFIX "/opt/${PROJECT_NAME}")
+- set(CMAKE_INSTALL_PREFIX "/usr")
++if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT
++ AND NOT WIN32 AND CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
++ set(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "Install prefix" FORCE)
+ endif()
+
+ # Pull in the rest of the pieces
diff --git a/meta-oe/recipes-support/srecord/files/0001-configure-Fix-AC_CHECK_LIB-test-for-gpg-error.patch b/meta-oe/recipes-support/srecord/files/0001-configure-Fix-AC_CHECK_LIB-test-for-gpg-error.patch
deleted file mode 100644
index 9a411f05d4..0000000000
--- a/meta-oe/recipes-support/srecord/files/0001-configure-Fix-AC_CHECK_LIB-test-for-gpg-error.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From f9e50aba10f9d2c58e5d88f51810ca7143f4372b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 1 Sep 2022 13:20:01 -0700
-Subject: [PATCH] configure: Fix AC_CHECK_LIB test for gpg-error
-
-Use check function which is found in libgpg-error
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- etc/configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/etc/configure.ac b/etc/configure.ac
-index d4ae290..ea0936d 100644
---- a/etc/configure.ac
-+++ b/etc/configure.ac
-@@ -30,7 +30,7 @@ AC_CHECK_PROGS(SOELIM, gsoelim soelim roffpp)
- AC_CHECK_FUNCS(snprintf vsnprintf)
-
- dnl! This is needed for MingGW build, but not for Unix or Linux, etc.
--AC_CHECK_LIB(gpg-error, main)
-+AC_CHECK_LIB(gpg-error, gpg_strerror_r)
-
- dnl! @synopsis AC_ADD_CFLAGS
- dnl!
---
-2.37.3
-
diff --git a/meta-oe/recipes-support/srecord/files/add-option-to-remove-docs.patch b/meta-oe/recipes-support/srecord/files/add-option-to-remove-docs.patch
deleted file mode 100644
index 9b2bd99795..0000000000
--- a/meta-oe/recipes-support/srecord/files/add-option-to-remove-docs.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Add option to build this utility without a documentation.
-
-For full documentation building are necessary utilities like
-groff and ps2pdf. Full documentation can takes a lot of space.
-So it can be disabled by overloading makefile variable WITHOUT_DOC.
-
-Upstream-Status: Inappropriate [Other]
-Workaround specific to our build system.
-
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-
-diff --git a/Makefile.in b/Makefile.in
-index 9bdd8f1..a2b5494 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -141,6 +141,14 @@ GROFF = @GROFF@
- #
- SOELIM = @SOELIM@
-
-+# Option to build this utility without building and installing the documentation.
-+WITHOUT_DOC ?= 0
-+ifeq ($(WITHOUT_DOC),0)
-+ BUILD_DOC = all-doc
-+ INST_DOC = install-doc
-+ CLR_DOC = clean-doc
-+endif
-+
- # ---------------------------------------------------------
- # You should not need to change anything below this line.
-
-@@ -4090,7 +4098,7 @@ bin/test_url_decode: $(test_url_decode_obj) .bin srecord/libsrecord.la
- $(LIBTOOL) --mode=link --tag=CXX $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ \
- $(test_url_decode_obj) srecord/libsrecord.la $(LDFLAGS) $(LIBS)
-
--all: all-bin all-doc
-+all: all-bin $(BUILD_DOC)
-
- all-bin: bin/srec_cat bin/srec_cmp bin/srec_info bin/test_arglex_ambiguous \
- bin/test_crc16 bin/test_fletcher16 bin/test_gecos \
-@@ -4156,7 +4164,7 @@ test_files = t0001a t0002a t0003a t0004a t0005a t0006a t0007a t0008a t0009a \
- sure: $(test_files)
- @echo Passed All Tests
-
--clean: clean-bin clean-doc clean-misc clean-obj
-+clean: clean-bin $(CLR_DOC) clean-misc clean-obj
-
- clean-bin:
- rm -f bin/srec_cat bin/srec_cmp bin/srec_info bin/test_arglex_ambiguous
-@@ -4443,7 +4451,7 @@ distclean-directories:
- rm -rf test/fletcher16/.libs test/gecos/.libs test/hyphen/.libs
- rm -rf test/url_decode/.libs
-
--install: install-bin install-doc install-include install-libdir install-man
-+install: install-bin $(INST_DOC) install-include install-libdir install-man
-
- install-bin: $(bindir)/srec_cat $(bindir)/srec_cmp $(bindir)/srec_info
-
diff --git a/meta-oe/recipes-support/srecord/files/libtool.patch b/meta-oe/recipes-support/srecord/files/libtool.patch
deleted file mode 100644
index 95063cea59..0000000000
--- a/meta-oe/recipes-support/srecord/files/libtool.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Instead of just looking for a libtool binary, actually configure libtool.
-
-As the build doesn't use automake we need to manually set top_builddir in the Makefile.
-
-Upstream-Status: Inactive-Upstream [2014]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-diff --git a/Makefile.in b/Makefile.in
-index a2b5494..aa0b8ca 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -36,6 +36,7 @@
- #
- srcdir = @srcdir@
- VPATH = @srcdir@
-+top_builddir = @srcdir@
-
- #
- # the name of the install program to use
-diff --git a/etc/configure.ac b/etc/configure.ac
-index e444543..b137443 100644
---- a/etc/configure.ac
-+++ b/etc/configure.ac
-@@ -161,42 +161,7 @@ AS_IF([test "x$with_gcrypt" != xno], AC_GCRYPT_SETUP())
- dnl!
- dnl! Now look for libtool.
- dnl!
--AC_CHECK_PROGS(LIBTOOL, libtool)
--if test -z "$LIBTOOL"
--then
-- AC_MSG_RESULT([
-- You must have GNU Libtool installed to build srecord.
-- Homepage: http://www.gnu.org/software/libtool/])
-- OK=no
-- if apt-get --version > /dev/null 2> /dev/null; then
-- AC_MSG_RESULT([
-- The following command may be used to install it:
-- sudo apt-get install libtool
-- ])
-- OK=yes
-- fi
-- if yum --version > /dev/null 2> /dev/null; then
-- AC_MSG_RESULT([
-- The following command may be used to install it:
-- sudo yum install libtool
-- ])
-- OK=yes
-- fi
-- if pkg_info -a > /dev/null 2> /dev/null; then
-- AC_MSG_RESULT([
-- The following command may be used to install it:
-- sudo pkg_add -r libtool
-- ])
-- OK=yes
-- fi
-- if test "$OK" != "yes"; then
-- AC_MSG_RESULT([
-- If you are using a package based install, you will need the
-- libtool package.
-- ])
-- fi
-- exit 1
--fi
-+LT_INIT
-
- dnl
- dnl If the soelim program exists, and understands the -I option,
diff --git a/meta-oe/recipes-support/srecord/srecord_1.64.bb b/meta-oe/recipes-support/srecord/srecord_1.64.bb
deleted file mode 100644
index 0629c0f648..0000000000
--- a/meta-oe/recipes-support/srecord/srecord_1.64.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "A collection of powerful tools for manipulating EPROM load files."
-SECTION = "devel"
-LICENSE = "GPL-3.0-or-later & LGPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8dfcbf2f0a144b97f0931b6394debea7"
-
-SRC_URI = " \
- http://srecord.sourceforge.net/srecord-${PV}.tar.gz \
- file://add-option-to-remove-docs.patch \
- file://libtool.patch \
- file://0001-configure-Fix-AC_CHECK_LIB-test-for-gpg-error.patch \
-"
-
-SRC_URI[md5sum] = "4de4a7497472d7972645c2af91313769"
-SRC_URI[sha256sum] = "49a4418733c508c03ad79a29e95acec9a2fbc4c7306131d2a8f5ef32012e67e2"
-
-UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/srecord/files/releases"
-
-DEPENDS = "boost groff-native"
-
-inherit autotools-brokensep
-
-do_configure:prepend() {
- # To autoreconf we need the script in ${S}, we can't tell autotools to use
- # etc/ because then it can't find the Makefile.in
- ln -sf ${S}/etc/configure.ac ${S}
-}
-
-PACKAGECONFIG ??= "gcrypt"
-PACKAGECONFIG[gcrypt] = "--with-gcrypt,--without-gcrypt,libgcrypt"
-
-# Set variable WITHOUT_DOC=0 to enable documentation generation
-EXTRA_OEMAKE = "WITHOUT_DOC=1"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/srecord/srecord_1.65.0.bb b/meta-oe/recipes-support/srecord/srecord_1.65.0.bb
new file mode 100644
index 0000000000..3e8a87d07f
--- /dev/null
+++ b/meta-oe/recipes-support/srecord/srecord_1.65.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A collection of powerful tools for manipulating EPROM load files."
+SECTION = "devel"
+LICENSE = "GPL-3.0-or-later & LGPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = " \
+ https://sourceforge.net/projects/${BPN}/files/srecord/${@oe.utils.trim_version('${PV}', 2)}/${BP}-Source.tar.gz \
+ file://0001-Disable-doxygen.patch \
+ file://0001-cmake-Do-not-try-to-compute-library-dependencies-dur.patch \
+ file://0001-cmake-respect-explicit-install-prefix.patch"
+SRC_URI[sha256sum] = "81c3d07cf15ce50441f43a82cefd0ac32767c535b5291bcc41bd2311d1337644"
+S = "${WORKDIR}/${BP}-Source"
+
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/srecord/files/releases"
+
+DEPENDS = "boost libgcrypt"
+
+inherit cmake
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch
index d9190e5bdf..5842ff1f36 100644
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch
@@ -10,6 +10,8 @@ availability first
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lib/efi/efi.h | 4 ++--
lib/engine/pragma.h | 4 ++--
lib/log/log.h | 4 ++--
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch
index fd44571b69..b522146602 100644
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch
@@ -9,6 +9,8 @@ would be upstreams choice to make
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
tools/ssieventmonitor.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch
index 8fdbf3e60e..c01c7e5ccd 100644
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 1/4] log: Avoid shadowing functions from std lib
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lib/log/log.c | 2 +-
lib/log/log.h | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch
index acc718d23d..390faeb77b 100644
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch
@@ -10,6 +10,8 @@ error: unknown type name '__uint8_t'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lib/engine/end_device.cpp | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch
index 2eeab54e53..aabbc04e57 100644
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch
@@ -7,6 +7,8 @@ backport headers from boost 1.59
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lib/boost/config/compiler/clang.hpp | 272 +++++++++
lib/boost/config/stdlib/libcpp.hpp | 80 +++
lib/boost/cstdint.hpp | 542 ++++++++++++++++++
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch
index 261358459e..e5e257b49a 100644
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch
@@ -11,6 +11,8 @@ Remove ununsed orom_vmd
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lib/engine/storage_object.h | 3 +++
lib/engine/vmd_raid_info.h | 2 --
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch
index 848d38b223..d70be51ee6 100644
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch
@@ -11,6 +11,8 @@ error: use of undeclared identifier 'canonicalize_file_name'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lib/engine/filesystem.cpp | 2 +-
tools/ssieventmonitor.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch
index ca2ffc56b1..56e3c658a4 100644
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch
@@ -8,6 +8,8 @@ without this change, the build would fail
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
configure.ac | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch
index d63eb50619..005a35e5a4 100644
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch
@@ -8,6 +8,8 @@ error: use of undeclared identifier 'PATH_MAX'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
tools/ssieventmonitor.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch
index c516f65252..6dd7fc735e 100644
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] enable out of source tree builds
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
lib/efi/Makefile.am | 2 +-
lib/engine/Makefile.am | 2 +-
lib/orom/Makefile.am | 2 +-
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb b/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb
index 13ed7570b1..bf9de31f84 100644
--- a/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb
+++ b/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb
@@ -29,6 +29,8 @@ S ="${WORKDIR}/${BPN}.${PV}"
inherit autotools
+CXXFLAGS += "-std=gnu++14"
+
do_configure:prepend(){
${S}/autogen.sh
}
diff --git a/meta-oe/recipes-support/switchtec-user/switchtec-user_4.2.bb b/meta-oe/recipes-support/switchtec-user/switchtec-user_4.2.bb
new file mode 100644
index 0000000000..17f54dcf4c
--- /dev/null
+++ b/meta-oe/recipes-support/switchtec-user/switchtec-user_4.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Easy to use CLI and C library for communicating with Microsemi's Switchtec management interface"
+HOMEPAGE = "https://github.com/Microsemi/switchtec-user"
+SECTION = "console/utils"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3d6b07c89629cff2990d2e8e1f4c2382"
+
+DEPENDS = "ncurses openssl"
+
+SRCREV = "e7c351c6c722336b3c79b79cd002c7c2986eefb0"
+SRC_URI = "git://github.com/Microsemi/switchtec-user.git;protocol=https;branch=master"
+SRC_URI[sha256sum] = "a715e46d8498418dbb8a2519318ba0714ee148151d7e4a7fa5e27770a2f6888f"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep pkgconfig
+
+EXTRA_OEMAKE = "DESTDIR='${D}' PREFIX='${prefix}' LDCONFIG='true' LIBDIR='${D}${libdir}'"
+
+do_install () {
+ oe_runmake install
+}
diff --git a/meta-oe/recipes-support/synergy/synergy_git.bb b/meta-oe/recipes-support/synergy/synergy_git.bb
index f2e7a91618..fb767942fe 100644
--- a/meta-oe/recipes-support/synergy/synergy_git.bb
+++ b/meta-oe/recipes-support/synergy/synergy_git.bb
@@ -13,7 +13,7 @@ SRC_URI = "git://github.com/symless/synergy-core;protocol=https;nobranch=1"
# Version 1.10.1-stable
SRCREV ?= "1b4c076127687aceac931d269e898beaac1cad9f"
-PV = "1.10.1+git${SRCPV}"
+PV = "1.10.1+git"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/syslog-ng/files/0001-Fix-buildpaths-warning.patch b/meta-oe/recipes-support/syslog-ng/files/0001-Fix-buildpaths-warning.patch
new file mode 100644
index 0000000000..c7bb4a64d9
--- /dev/null
+++ b/meta-oe/recipes-support/syslog-ng/files/0001-Fix-buildpaths-warning.patch
@@ -0,0 +1,55 @@
+From d85a7a3ae2bb9f5267b2af43784633ae8f011f21 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Mon, 13 Mar 2023 09:50:15 +0800
+Subject: [PATCH] Fix buildpaths warning
+
+Fix buildpath warning:
+WARNING: syslog-ng-4.0.1-r0 do_package_qa: QA Issue: File /usr/include/syslog-ng/syslog-ng-config-64.h in package syslog-ng-dev contains reference to TMPDIR [buildpaths]
+WARNING: syslog-ng-4.0.1-r0 do_package_qa: QA Issue: File /usr/bin/syslog-ng-update-virtualenv in package syslog-ng contains reference to TMPDIR
+File /usr/bin/pdbtool in package syslog-ng contains reference to TMPDIR [buildpaths]
+WARNING: syslog-ng-4.0.1-r0 do_package_qa: QA Issue: File /usr/lib/syslog-ng/libdbparser.so in package syslog-ng-libs contains reference to TMPDIR [buildpaths]
+
+* SYSLOG_NG_PATH_TOPSRC_DIR is /yocto/build/tmp/work/core2-64-poky-linux/syslog-ng/4.0.1-r0,
+ which is used to get xsd dir in build SYSLOG_NG_PATH_TOPSRC_DIR/doc/xsd,
+ which is not suitable for target, set it to "/source" for fixing this buildpath warning
+
+* SYSTEM_PYTHON is /yocto/build/tmp/hosttools/python3, set to python3
+ for target.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ configure.ac | 2 +-
+ scripts/syslog-ng-update-virtualenv.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 79a1502..1ad6508 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1930,7 +1930,7 @@ AC_DEFINE_UNQUOTED(PYTHON_SYSCONF_MODULE_DIR, "$python_sysconf_moduledir", [Pyth
+ AC_DEFINE_UNQUOTED(PATH_LOGGENPLUGINDIR, "$loggenplugindir", [loggenplugin installation directory])
+ AC_DEFINE_UNQUOTED(MODULE_PATH, "$module_path", [module search path])
+ AC_DEFINE_UNQUOTED(JAVA_MODULE_PATH, "$java_module_path", [java module search path])
+-AC_DEFINE_UNQUOTED(PATH_TOPSRC_DIR, "$abs_topsrcdir", [self-defined top_srcdir path])
++AC_DEFINE_UNQUOTED(PATH_TOPSRC_DIR, "/source", [self-defined top_srcdir path])
+ AC_DEFINE_UNQUOTED(PACKAGE_NAME, "$PACKAGE_NAME", [package name])
+
+
+diff --git a/scripts/syslog-ng-update-virtualenv.in b/scripts/syslog-ng-update-virtualenv.in
+index ed85baf..b1a9e34 100755
+--- a/scripts/syslog-ng-update-virtualenv.in
++++ b/scripts/syslog-ng-update-virtualenv.in
+@@ -62,7 +62,7 @@ done
+ set -e
+
+ REQUIREMENTS_FILE=${python_moduledir}/requirements.txt
+-SYSTEM_PYTHON=@PYTHON@
++SYSTEM_PYTHON=python3
+ VENV_PYTHON=${python_venvdir}/bin/python
+
+ if [ "$display_prompt" -ne 0 ]; then
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/syslog-ng/files/0001-macros-guard-ipv6-code-with-SYSLOG_NG_ENABLE_IPV6.patch b/meta-oe/recipes-support/syslog-ng/files/0001-macros-guard-ipv6-code-with-SYSLOG_NG_ENABLE_IPV6.patch
new file mode 100644
index 0000000000..f21ad5d70f
--- /dev/null
+++ b/meta-oe/recipes-support/syslog-ng/files/0001-macros-guard-ipv6-code-with-SYSLOG_NG_ENABLE_IPV6.patch
@@ -0,0 +1,40 @@
+From 896d77dd949b52d6ea5798e5a038ba97d6b802be Mon Sep 17 00:00:00 2001
+From: Peter Marko <peter.marko@siemens.com>
+Date: Thu, 4 Apr 2024 15:44:18 +0200
+Subject: [PATCH] macros: guard ipv6 code with SYSLOG_NG_ENABLE_IPV6
+
+With ipv6 disabled, there are linking errors currently.
+This fixes it by not using the symbols when IPv6 is disabled.
+
+Solves #4810 with my config options
+https://github.com/openembedded/meta-openembedded/blob/2487e65ee3842b6ae0c7a2628985be6189ed9ebf/meta-oe/recipes-support/syslog-ng/syslog-ng_4.6.0.bb
+
+Upstream-Status: Submitted [https://github.com/syslog-ng/syslog-ng/pull/4880]
+
+Signed-off-by: Peter Marko <peter.marko@siemens.com>
+---
+ lib/template/macros.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/template/macros.c b/lib/template/macros.c
+index 54142706c..fcb83637f 100644
+--- a/lib/template/macros.c
++++ b/lib/template/macros.c
+@@ -277,12 +277,14 @@ _get_originating_ip_protocol(const LogMessage *msg)
+ return 0;
+ if (g_sockaddr_inet_check(msg->saddr))
+ return 4;
++#if SYSLOG_NG_ENABLE_IPV6
+ if (g_sockaddr_inet6_check(msg->saddr))
+ {
+ if (g_sockaddr_inet6_is_v4_mapped(msg->saddr))
+ return 4;
+ return 6;
+ }
++#endif
+ return 0;
+ }
+
+--
+2.30.2
+
diff --git a/meta-oe/recipes-support/syslog-ng/files/0001-plugin.c-workaround-powerpc64le-segfaults-error.patch b/meta-oe/recipes-support/syslog-ng/files/0001-plugin.c-workaround-powerpc64le-segfaults-error.patch
new file mode 100644
index 0000000000..343e6fdade
--- /dev/null
+++ b/meta-oe/recipes-support/syslog-ng/files/0001-plugin.c-workaround-powerpc64le-segfaults-error.patch
@@ -0,0 +1,46 @@
+From 616446afab61ab98b28c81605e2efd4a689f37d1 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Fri, 20 Jan 2023 14:59:14 +0800
+Subject: [PATCH] plugin.c: workaround powerpc64le segfaults error
+
+syslog-ng segfaults on powerpc64le, workaround this error.
+See https://github.com/syslog-ng/syslog-ng/issues/4285 and
+https://sourceware.org/bugzilla/show_bug.cgi?id=30062 for more details.
+This patch should be dropped once the above issues are fixed.
+
+Upstream-Status: Inappropriate [OE Specific]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ lib/plugin.c | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/lib/plugin.c b/lib/plugin.c
+index fbbfb92..3a03617 100644
+--- a/lib/plugin.c
++++ b/lib/plugin.c
+@@ -528,10 +528,7 @@ plugin_discover_candidate_modules(PluginContext *context)
+ }
+ }
+ g_free(module_name);
+- if (mod)
+- g_module_close(mod);
+- else
+- mod = NULL;
++ mod = NULL;
+ }
+ }
+ g_dir_close(dir);
+@@ -663,8 +660,7 @@ plugin_list_modules(FILE *out, gboolean verbose)
+ first = FALSE;
+ }
+ g_free(module_name);
+- if (mod)
+- g_module_close(mod);
++ mod = NULL;
+ }
+ }
+ g_dir_close(dir);
+--
+2.17.1
+
diff --git a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
index 7334800304..c80e91244f 100644
--- a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
+++ b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch
@@ -1,7 +1,7 @@
Subject: [PATCH] syslog-ng.service: the syslog-ng service can not start
successfully,so modify it.
-Upstream-Status: pending
+Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
Updated-by: Andrej Valek <andrej.valek@siemens.com>
diff --git a/meta-oe/recipes-support/syslog-ng/syslog-ng_3.38.1.bb b/meta-oe/recipes-support/syslog-ng/syslog-ng_3.38.1.bb
deleted file mode 100644
index 76945095ac..0000000000
--- a/meta-oe/recipes-support/syslog-ng/syslog-ng_3.38.1.bb
+++ /dev/null
@@ -1,140 +0,0 @@
-SUMMARY = "Alternative system logger daemon"
-DESCRIPTION = "syslog-ng, as the name shows, is a syslogd replacement, \
-but with new functionality for the new generation. The original syslogd \
-allows messages only to be sorted based on priority/facility pairs; \
-syslog-ng adds the possibility to filter based on message contents using \
-regular expressions. The new configuration scheme is intuitive and powerful. \
-Forwarding logs over TCP and remembering all forwarding hops makes it \
-ideal for firewalled environments. \
-"
-HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system"
-
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=71d15c2fb22f43e1a380f3f799ebde30"
-
-# util-linux added to get libuuid
-DEPENDS = "libpcre flex glib-2.0 openssl util-linux bison-native"
-
-SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \
- file://syslog-ng.conf.systemd \
- file://syslog-ng.conf.sysvinit \
- file://initscript \
- file://volatiles.03_syslog-ng \
- file://syslog-ng-tmp.conf \
- file://syslog-ng.service-the-syslog-ng-service.patch \
-"
-
-SRC_URI[sha256sum] = "5491f686d0b829b69b2e0fc0d66a62f51991aafaee005475bfa38fab399441f7"
-
-UPSTREAM_CHECK_URI = "https://github.com/balabit/syslog-ng/releases"
-
-inherit autotools gettext systemd pkgconfig update-rc.d multilib_header
-
-EXTRA_OECONF = " \
- --enable-dynamic-linking \
- --disable-sub-streams \
- --disable-pacct \
- --localstatedir=${localstatedir}/lib/${BPN} \
- --sysconfdir=${sysconfdir}/${BPN} \
- --with-module-dir=${libdir}/${BPN} \
- --with-sysroot=${STAGING_DIR_HOST} \
- --without-mongoc --disable-mongodb \
- --with-librabbitmq-client=no \
- --disable-python \
- --disable-java --disable-java-modules \
- --with-pidfile-dir=${localstatedir}/run/${BPN} \
-"
-
-PACKAGECONFIG ??= " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} \
-"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,,"
-PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_unitdir}/system/,--disable-systemd --without-systemdsystemunitdir,systemd,"
-PACKAGECONFIG[linux-caps] = "--enable-linux-caps,--disable-linux-caps,libcap,"
-PACKAGECONFIG[dbi] = "--enable-sql,--disable-sql,libdbi,"
-PACKAGECONFIG[spoof-source] = "--enable-spoof-source --with-libnet=${STAGING_BINDIR_CROSS},--disable-spoof-source,libnet,"
-PACKAGECONFIG[http] = "--enable-http,--disable-http,curl,"
-PACKAGECONFIG[smtp] = "--enable-smtp --with-libesmtp=${STAGING_LIBDIR},--disable-smtp,libesmtp,"
-PACKAGECONFIG[json] = "--enable-json,--disable-json,json-c,"
-PACKAGECONFIG[tcp-wrapper] = "--enable-tcp-wrapper,--disable-tcp-wrapper,tcp-wrappers,"
-PACKAGECONFIG[geoip] = "--enable-geoip,--disable-geoip,geoip,"
-PACKAGECONFIG[native] = "--enable-native,--disable-native,,"
-
-do_configure:prepend() {
- olddir=$(pwd)
- cd ${AUTOTOOLS_SCRIPT_PATH}
-
- ACLOCAL="$ACLOCAL" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} -I ${S}/m4 ${ACLOCALEXTRAPATH} || die "extra autoreconf execution failed."
-
- cd $olddir
-}
-
-do_install:append() {
- install -d ${D}${sysconfdir}/${BPN}
- install -d ${D}${sysconfdir}/init.d
- install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog
-
- install -d ${D}${sysconfdir}/default/volatiles/
- install -m 644 ${WORKDIR}/volatiles.03_syslog-ng ${D}${sysconfdir}/default/volatiles/03_syslog-ng
- install -d ${D}${sysconfdir}/tmpfiles.d/
- install -m 644 ${WORKDIR}/syslog-ng-tmp.conf ${D}${sysconfdir}/tmpfiles.d/syslog-ng.conf
-
- install -d ${D}${localstatedir}/lib/${BPN}
- # Remove /var/run as it is created on startup
- rm -rf ${D}${localstatedir}/run
-
- # support for systemd
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -m 644 ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
- install -m 644 ${S}/contrib/systemd/${BPN}@default ${D}${sysconfdir}/default/${BPN}@default
-
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
- sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
- sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
-
- install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
- ln -sf ../${BPN}@.service ${D}${systemd_unitdir}/system/multi-user.target.wants/${BPN}@default.service
- else
- install -m 644 ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf
- fi
-
- oe_multilib_header syslog-ng/syslog-ng-config.h
-}
-
-FILES:${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools ${systemd_unitdir}/system/multi-user.target.wants/*"
-RDEPENDS:${PN} += "gawk ${@bb.utils.contains('PACKAGECONFIG','json','${PN}-jconf','',d)}"
-
-FILES:${PN}-jconf += " \
-${datadir}/${BPN}/include/scl/cim \
-${datadir}/${BPN}/include/scl/elasticsearch \
-${datadir}/${BPN}/include/scl/ewmm \
-${datadir}/${BPN}/include/scl/graylog2 \
-${datadir}/${BPN}/include/scl/loggly \
-${datadir}/${BPN}/include/scl/logmatic \
-"
-
-# This overcomes the syslog-ng rdepends on syslog-ng-dev QA Error
-PACKAGES =+ "${PN}-jconf ${PN}-libs ${PN}-libs-dev"
-RPROVIDES:${PN}-dbg += "${PN}-libs-dbg"
-FILES:${PN}-libs = "${libdir}/${BPN}/*.so ${libdir}/libsyslog-ng-*.so*"
-FILES:${PN}-libs-dev = "${libdir}/${BPN}/lib*.la"
-FILES:${PN}-staticdev += "${libdir}/${BPN}/libtest/*.a"
-FILES:${PN} += "${systemd_unitdir}/system/*.service"
-INSANE_SKIP:${PN}-libs = "dev-so"
-RDEPENDS:${PN} += "${PN}-libs"
-
-CONFFILES:${PN} = "${sysconfdir}/${BPN}.conf ${sysconfdir}/scl.conf"
-
-RCONFLICTS:${PN} = "busybox-syslog sysklogd rsyslog"
-RCONFLICTS:${PN}-libs = "busybox-syslog sysklogd rsyslog"
-
-RPROVIDES:${PN} += "${PN}-systemd"
-RREPLACES:${PN} += "${PN}-systemd"
-RCONFLICTS:${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE:${PN} = "${BPN}@.service"
-
-INITSCRIPT_NAME = "syslog"
-INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 90 0 1 6 ."
diff --git a/meta-oe/recipes-support/syslog-ng/syslog-ng_4.6.0.bb b/meta-oe/recipes-support/syslog-ng/syslog-ng_4.6.0.bb
new file mode 100644
index 0000000000..4584944150
--- /dev/null
+++ b/meta-oe/recipes-support/syslog-ng/syslog-ng_4.6.0.bb
@@ -0,0 +1,149 @@
+SUMMARY = "Alternative system logger daemon"
+DESCRIPTION = "syslog-ng, as the name shows, is a syslogd replacement, \
+but with new functionality for the new generation. The original syslogd \
+allows messages only to be sorted based on priority/facility pairs; \
+syslog-ng adds the possibility to filter based on message contents using \
+regular expressions. The new configuration scheme is intuitive and powerful. \
+Forwarding logs over TCP and remembering all forwarding hops makes it \
+ideal for firewalled environments. \
+"
+HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system"
+
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=924958cefc9f7de3e0b818832b8a1cec"
+
+# util-linux added to get libuuid
+DEPENDS = "libpcre flex glib-2.0 openssl util-linux bison-native curl"
+
+SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \
+ file://syslog-ng.conf.systemd \
+ file://syslog-ng.conf.sysvinit \
+ file://initscript \
+ file://volatiles.03_syslog-ng \
+ file://syslog-ng-tmp.conf \
+ file://syslog-ng.service-the-syslog-ng-service.patch \
+ file://0001-Fix-buildpaths-warning.patch \
+ file://0001-macros-guard-ipv6-code-with-SYSLOG_NG_ENABLE_IPV6.patch \
+"
+SRC_URI:append:powerpc64le = " file://0001-plugin.c-workaround-powerpc64le-segfaults-error.patch"
+
+SRC_URI[sha256sum] = "b69e3360dfb96a754a4e1cbead4daef37128b1152a23572356db4ab64a475d4f"
+
+UPSTREAM_CHECK_URI = "https://github.com/balabit/syslog-ng/releases"
+
+CVE_STATUS[CVE-2022-38725] = "cpe-incorrect: cve-check wrongly matches cpe:2.3:a:oneidentity:syslog-ng:*:*:*:*:premium:*:*:* < 7.0.32"
+
+inherit autotools gettext systemd pkgconfig update-rc.d multilib_header
+
+EXTRA_OECONF = " \
+ --enable-dynamic-linking \
+ --disable-sub-streams \
+ --disable-pacct \
+ --localstatedir=${localstatedir}/lib/${BPN} \
+ --sysconfdir=${sysconfdir}/${BPN} \
+ --with-module-dir=${libdir}/${BPN} \
+ --with-sysroot=${STAGING_DIR_HOST} \
+ --without-mongoc --disable-mongodb \
+ --with-librabbitmq-client=no \
+ --disable-python \
+ --disable-java --disable-java-modules \
+ --with-pidfile-dir=${localstatedir}/run/${BPN} \
+"
+
+PACKAGECONFIG ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} \
+"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,,"
+PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_unitdir}/system/,--disable-systemd --without-systemdsystemunitdir,systemd,"
+PACKAGECONFIG[linux-caps] = "--enable-linux-caps,--disable-linux-caps,libcap,"
+PACKAGECONFIG[dbi] = "--enable-sql,--disable-sql,libdbi,"
+PACKAGECONFIG[spoof-source] = "--enable-spoof-source --with-libnet=${STAGING_BINDIR_CROSS},--disable-spoof-source,libnet,"
+PACKAGECONFIG[http] = "--enable-http,--disable-http,curl,"
+PACKAGECONFIG[smtp] = "--enable-smtp --with-libesmtp=${STAGING_LIBDIR},--disable-smtp,libesmtp,"
+PACKAGECONFIG[json] = "--enable-json,--disable-json,json-c,"
+PACKAGECONFIG[tcp-wrapper] = "--enable-tcp-wrapper,--disable-tcp-wrapper,tcp-wrappers,"
+PACKAGECONFIG[geoip] = "--enable-geoip,--disable-geoip,geoip,"
+PACKAGECONFIG[native] = "--enable-native,--disable-native,,"
+
+do_configure:prepend() {
+ olddir=$(pwd)
+ cd ${AUTOTOOLS_SCRIPT_PATH}
+
+ ACLOCAL="$ACLOCAL" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} -I ${S}/m4 ${ACLOCALEXTRAPATH} || die "extra autoreconf execution failed."
+
+ cd $olddir
+}
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/${BPN}
+ install -d ${D}${sysconfdir}/init.d
+ install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog
+
+ install -d ${D}${sysconfdir}/default/volatiles/
+ install -m 644 ${WORKDIR}/volatiles.03_syslog-ng ${D}${sysconfdir}/default/volatiles/03_syslog-ng
+ install -d ${D}${sysconfdir}/tmpfiles.d/
+ install -m 644 ${WORKDIR}/syslog-ng-tmp.conf ${D}${sysconfdir}/tmpfiles.d/syslog-ng.conf
+
+ install -d ${D}${localstatedir}/lib/${BPN}
+ # Remove /var/run as it is created on startup
+ rm -rf ${D}${localstatedir}/run
+
+ # it causes install conflict when multilib enabled
+ # since python support is disabled, not deliver it
+ rm -f ${D}${bindir}/syslog-ng-update-virtualenv
+
+ # support for systemd
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -m 644 ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
+ install -m 644 ${S}/contrib/systemd/${BPN}@default ${D}${sysconfdir}/default/${BPN}@default
+
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
+ sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
+ sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
+
+ install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
+ ln -sf ../${BPN}@.service ${D}${systemd_unitdir}/system/multi-user.target.wants/${BPN}@default.service
+ else
+ install -m 644 ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf
+ fi
+
+ oe_multilib_header syslog-ng/syslog-ng-config.h
+}
+
+FILES:${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools ${systemd_unitdir}/system/multi-user.target.wants/*"
+RDEPENDS:${PN} += "gawk ${@bb.utils.contains('PACKAGECONFIG','json','${PN}-jconf','',d)}"
+
+FILES:${PN}-jconf += " \
+${datadir}/${BPN}/include/scl/cim \
+${datadir}/${BPN}/include/scl/elasticsearch \
+${datadir}/${BPN}/include/scl/ewmm \
+${datadir}/${BPN}/include/scl/graylog2 \
+${datadir}/${BPN}/include/scl/loggly \
+${datadir}/${BPN}/include/scl/logmatic \
+"
+
+# This overcomes the syslog-ng rdepends on syslog-ng-dev QA Error
+PACKAGES =+ "${PN}-jconf ${PN}-libs ${PN}-libs-dev"
+RPROVIDES:${PN}-dbg += "${PN}-libs-dbg"
+FILES:${PN}-libs = "${libdir}/${BPN}/*.so ${libdir}/libsyslog-ng-*.so*"
+FILES:${PN}-libs-dev = "${libdir}/${BPN}/lib*.la"
+FILES:${PN}-staticdev += "${libdir}/${BPN}/libtest/*.a"
+FILES:${PN} += "${systemd_unitdir}/system/*.service"
+INSANE_SKIP:${PN}-libs = "dev-so"
+RDEPENDS:${PN} += "${PN}-libs"
+
+CONFFILES:${PN} = "${sysconfdir}/${BPN}.conf ${sysconfdir}/scl.conf"
+
+RCONFLICTS:${PN} = "busybox-syslog sysklogd rsyslog"
+RCONFLICTS:${PN}-libs = "busybox-syslog sysklogd rsyslog"
+
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = "${BPN}@.service"
+
+INITSCRIPT_NAME = "syslog"
+INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 90 0 1 6 ."
diff --git a/meta-oe/recipes-support/tbb/tbb/0001-CMakeLists.txt-exclude-riscv64-riscv32.patch b/meta-oe/recipes-support/tbb/tbb/0001-CMakeLists.txt-exclude-riscv64-riscv32.patch
deleted file mode 100644
index b34762710d..0000000000
--- a/meta-oe/recipes-support/tbb/tbb/0001-CMakeLists.txt-exclude-riscv64-riscv32.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From cb9e9b5b1ad05dd9de07a65ee7147cdb3433746a Mon Sep 17 00:00:00 2001
-From: Naveen Saini <naveen.kumar.saini@intel.com>
-Date: Fri, 9 Apr 2021 15:41:35 +0800
-Subject: [PATCH] CMakeLists.txt: exclude riscv64 & riscv32
-
-Upstream-Status: Pending
-
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
----
- src/tbb/CMakeLists.txt | 2 +-
- src/tbbmalloc/CMakeLists.txt | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
---- a/src/tbb/CMakeLists.txt
-+++ b/src/tbb/CMakeLists.txt
-@@ -58,7 +58,7 @@ target_compile_definitions(tbb
- $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:__TBB_DYNAMIC_LOAD_ENABLED=0>
- $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:__TBB_SOURCE_DIRECTLY_INCLUDED=1>)
-
--if (NOT ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(armv7-a|aarch64|mips|arm64)" OR
-+if (NOT ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(armv7-a|aarch64|mips|arm64|riscv64|riscv32)" OR
- "${CMAKE_OSX_ARCHITECTURES}" MATCHES "arm64" OR
- WINDOWS_STORE OR
- TBB_WINDOWS_DRIVER))
---- a/src/tbbmalloc/CMakeLists.txt
-+++ b/src/tbbmalloc/CMakeLists.txt
-@@ -30,7 +30,7 @@ target_compile_definitions(tbbmalloc
- $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:__TBB_DYNAMIC_LOAD_ENABLED=0>
- $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:__TBB_SOURCE_DIRECTLY_INCLUDED=1>)
-
--if (NOT ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(armv7-a|aarch64|mips|arm64)" OR
-+if (NOT ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "(armv7-a|aarch64|mips|arm64|riscv64|riscv32)" OR
- "${CMAKE_OSX_ARCHITECTURES}" MATCHES "arm64" OR
- WINDOWS_STORE OR
- TBB_WINDOWS_DRIVER OR
diff --git a/meta-oe/recipes-support/tbb/tbb/0001-Disable-LTO-on-clang-riscv32.patch b/meta-oe/recipes-support/tbb/tbb/0001-Disable-LTO-on-clang-riscv32.patch
deleted file mode 100644
index 662065635d..0000000000
--- a/meta-oe/recipes-support/tbb/tbb/0001-Disable-LTO-on-clang-riscv32.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 95a5c97122b7c5bdeba61f2e890bae9a961dd4bf Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 8 Dec 2021 10:01:22 -0800
-Subject: [PATCH] Disable LTO on clang/riscv
-
-With clang in OE LTO does not work as it does not seem to carry right
-target info and mixes ABIs
-
-| Hard-float 'd' ABI can't be used for a target that doesn't support the D instruction set extension (ignoring target-abi)
-| /mnt/b/yoe/master/build/tmp/work/riscv32-yoe-linux/tbb/1_2021.4.0-r0/recipe-sysroot-native/usr/bin/riscv32-yoe-linux/riscv32-yoe-linux-ld: /tmp/lto-llvm-3fb1bf.o: can't link soft-float modules with double-float modules
-| /mnt/b/yoe/master/build/tmp/work/riscv32-yoe-linux/tbb/1_2021.4.0-r0/recipe-sysroot-native/usr/bin/riscv32-yoe-linux/riscv32-yoe-linux-ld: failed to merge target specific data of file /tmp/lto-llvm-3fb1bf.o
-
-Upstream-Status: Inappropriate [ OE-Specific ]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- cmake/compilers/Clang.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/cmake/compilers/Clang.cmake
-+++ b/cmake/compilers/Clang.cmake
-@@ -60,7 +60,7 @@ endif()
-
- # Enabling LTO on Android causes the NDK bug.
- # NDK throws the warning: "argument unused during compilation: '-Wa,--noexecstack'"
--if (NOT ANDROID_PLATFORM AND BUILD_SHARED_LIBS)
-+if (NOT ANDROID_PLATFORM AND BUILD_SHARED_LIBS AND NOT CMAKE_SYSTEM_PROCESSOR MATCHES "(riscv32|riscv64|arm)")
- set(TBB_IPO_COMPILE_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
- set(TBB_IPO_LINK_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
- endif()
diff --git a/meta-oe/recipes-support/tbb/tbb/0001-Disable-use-of-_tpause-instruction.patch b/meta-oe/recipes-support/tbb/tbb/0001-Disable-use-of-_tpause-instruction.patch
deleted file mode 100644
index 78051d7eef..0000000000
--- a/meta-oe/recipes-support/tbb/tbb/0001-Disable-use-of-_tpause-instruction.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 26bc87fdad9f29c00a5e37d6d9aed7f6dc7ff416 Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Mon, 12 Apr 2021 14:15:53 +0800
-Subject: [PATCH] Disable use of _tpause instruction
-
-It is assuming right now that WAITPKG instructions are available when using
-gcc 11 or clang 12. It's possible that we are building for a
-CPU where it's not available - in this case anything older than Alder Lake.
-
-Disable for now until the detection isn't fixed upstream.
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- src/tbb/scheduler_common.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/tbb/scheduler_common.h
-+++ b/src/tbb/scheduler_common.h
-@@ -220,7 +220,7 @@ inline void prolonged_pause_impl() {
- #endif
-
- inline void prolonged_pause() {
--#if __TBB_WAITPKG_INTRINSICS_PRESENT && (_WIN32 || _WIN64 || __unix__) && (__TBB_x86_32 || __TBB_x86_64)
-+#if 0
- if (governor::wait_package_enabled()) {
- std::uint64_t time_stamp = machine_time_stamp();
- // _tpause function directs the processor to enter an implementation-dependent optimized state
diff --git a/meta-oe/recipes-support/tbb/tbb/0001-Musl-linux-can-not-use-RTLD_DEEPBIND.patch b/meta-oe/recipes-support/tbb/tbb/0001-Musl-linux-can-not-use-RTLD_DEEPBIND.patch
deleted file mode 100644
index 355cf2e0bb..0000000000
--- a/meta-oe/recipes-support/tbb/tbb/0001-Musl-linux-can-not-use-RTLD_DEEPBIND.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a7289eeff4ac9e3ca2d2289672c923518433124c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 8 Dec 2021 09:26:58 -0800
-Subject: [PATCH] Musl/linux can not use RTLD_DEEPBIND
-
-Exclude non-glibc linux systems along with android
-Fixes
-src/tbb/dynamic_link.cpp:417:29: error: use
- of undeclared identifier 'RTLD_DEEPBIND' | flags = flags | RTLD_DEEPBIND;
-| ^
-
-Upstream-Status: Submitted [https://github.com/oneapi-src/oneTBB/pull/684]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/tbb/dynamic_link.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/tbb/dynamic_link.cpp b/src/tbb/dynamic_link.cpp
-index 12f35cfd..942c1c64 100644
---- a/src/tbb/dynamic_link.cpp
-+++ b/src/tbb/dynamic_link.cpp
-@@ -413,7 +413,7 @@ namespace r1 {
- int flags = RTLD_NOW;
- if (local_binding) {
- flags = flags | RTLD_LOCAL;
--#if __linux__ && !__ANDROID__ && !__TBB_USE_SANITIZERS
-+#if (__linux__ && __GLIBC__) && !__TBB_USE_SANITIZERS
- flags = flags | RTLD_DEEPBIND;
- #endif
- } else {
---
-2.34.1
-
diff --git a/meta-oe/recipes-support/tbb/tbb/0001-hwloc_detection.cmake-remove-cross-compiation-check.patch b/meta-oe/recipes-support/tbb/tbb/0001-hwloc_detection.cmake-remove-cross-compiation-check.patch
new file mode 100644
index 0000000000..640b131703
--- /dev/null
+++ b/meta-oe/recipes-support/tbb/tbb/0001-hwloc_detection.cmake-remove-cross-compiation-check.patch
@@ -0,0 +1,33 @@
+From 7ffc1eba8596544d6e3af0fd5f4004fff6d56f84 Mon Sep 17 00:00:00 2001
+From: Naveen Saini <naveen.kumar.saini@intel.com>
+Date: Wed, 29 Nov 2023 15:48:57 +0800
+Subject: [PATCH] hwloc_detection.cmake: remove cross-compiation check
+
+This check is preventing pkgconfig to
+search for hwloc under cross-compilation.
+
+pkgconfig able to find hwloc pkg from sysroot.
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
+---
+ cmake/hwloc_detection.cmake | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/cmake/hwloc_detection.cmake b/cmake/hwloc_detection.cmake
+index 47233b17..5a7e84c3 100644
+--- a/cmake/hwloc_detection.cmake
++++ b/cmake/hwloc_detection.cmake
+@@ -46,8 +46,6 @@ endforeach()
+ unset(HWLOC_TARGET_NAME)
+
+ if (NOT HWLOC_TARGET_EXPLICITLY_DEFINED AND
+- # No hwloc auto detection for cross compilation
+- NOT CMAKE_CROSSCOMPILING AND
+ NOT TBB_DISABLE_HWLOC_AUTOMATIC_SEARCH
+ )
+ find_package(PkgConfig QUIET)
+--
+2.37.3
+
diff --git a/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch b/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch
deleted file mode 100644
index 9af37ebc64..0000000000
--- a/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 52c1586bff0ecb418ac21d6678f8963d70959f04 Mon Sep 17 00:00:00 2001
-From: Naveen Saini <naveen.kumar.saini@intel.com>
-Date: Wed, 7 Apr 2021 11:14:13 +0800
-Subject: [PATCH] mallinfo() is glibc specific API mark it so
-
-Helps compiling with musl
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
----
- src/tbbmalloc_proxy/proxy.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/src/tbbmalloc_proxy/proxy.cpp
-+++ b/src/tbbmalloc_proxy/proxy.cpp
-@@ -260,6 +260,7 @@ int mallopt(int /*param*/, int /*value*/
- return 1;
- }
-
-+#ifdef __GLIBC__
- struct mallinfo mallinfo() __THROW
- {
- struct mallinfo m;
-@@ -267,6 +268,7 @@ struct mallinfo mallinfo() __THROW
-
- return m;
- }
-+#endif
-
- #if __ANDROID__
- // Android doesn't have malloc_usable_size, provide it to be compatible
diff --git a/meta-oe/recipes-support/tbb/tbb_2021.11.0.bb b/meta-oe/recipes-support/tbb/tbb_2021.11.0.bb
new file mode 100644
index 0000000000..f834726bd6
--- /dev/null
+++ b/meta-oe/recipes-support/tbb/tbb_2021.11.0.bb
@@ -0,0 +1,62 @@
+DESCRIPTION = "Parallelism library for C++ - runtime files \
+ TBB is a library that helps you leverage multi-core processor \
+ performance without having to be a threading expert. It represents a \
+ higher-level, task-based parallelism that abstracts platform details \
+ and threading mechanism for performance and scalability."
+HOMEPAGE = "https://software.intel.com/en-us/tbb"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327"
+
+DEPENDS:append:libc-musl = " libucontext"
+DEPENDS:append:class-target = " hwloc"
+
+PE = "1"
+
+BRANCH = "onetbb_2021"
+SRCREV = "8b829acc65569019edb896c5150d427f288e8aba"
+SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \
+ file://0001-hwloc_detection.cmake-remove-cross-compiation-check.patch \
+"
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+# test build fails, error: 'mallinfo mallinfo()' is deprecated
+EXTRA_OECMAKE += " \
+ -DTBB_TEST=OFF \
+ -DCMAKE_BUILD_TYPE=Release \
+ "
+
+# Hard-float 'd' ABI can't be used for a target that doesn't support the D instruction set extension (ignoring target-abi)
+# tmp-glibc/work/riscv64-oe-linux/tbb/1_2021.7.0-r0/recipe-sysroot-native/usr/bin/riscv64-oe-linux/riscv64-oe-linux-ld: /tmp/lto-llvm-264bc2.o: can't link soft-float modules with double-float modules
+# tmp-glibc/work/riscv64-oe-linux/tbb/1_2021.7.0-r0/recipe-sysroot-native/usr/bin/riscv64-oe-linux/riscv64-oe-linux-ld: failed to merge target specific data of file /tmp/lto-llvm-264bc2.o
+EXTRA_OECMAKE:append:riscv32:toolchain-clang = " -DTBB_ENABLE_IPO=OFF "
+EXTRA_OECMAKE:append:riscv64:toolchain-clang = " -DTBB_ENABLE_IPO=OFF "
+
+# fails with thumb enabled:
+# | arm-oe-linux-gnueabi-g++ -march=armv7-a -mthumb -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a9 -mcpu=cortex-a9 -D__ARM__ -D__LINUX_ARM_ARCH__=7 -funwind-tables -mvectorize-with-neon-quad -rdynamic --sysroot=/OE/sysroots/m14tv -c -MMD -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_queue.cpp
+# | {standard input}: Assembler messages:
+# | {standard input}:250: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r3,[r4]'
+# ...
+# | make[1]: *** [concurrent_queue.o] Error 1
+ARM_INSTRUCTION_SET = "arm"
+
+ASNEEDED = ""
+
+LDFLAGS:append:mips = " -latomic"
+LDFLAGS:append:mipsel = " -latomic"
+LDFLAGS:append:riscv32:toolchain-clang = " -latomic"
+
+LDFLAGS:append:libc-musl = " -lucontext"
+
+# The latest version of oneTBB does not support PPC
+COMPATIBLE_MACHINE:powerpc = "(!.*ppc).*"
+
+
+do_install:append:class-target() {
+ # fix for qa check buildpaths
+ sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/TBB/TBBTargets.cmake
+}
+
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/tbb/tbb_2021.5.0.bb b/meta-oe/recipes-support/tbb/tbb_2021.5.0.bb
deleted file mode 100644
index 0d108f21ad..0000000000
--- a/meta-oe/recipes-support/tbb/tbb_2021.5.0.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-DESCRIPTION = "Parallelism library for C++ - runtime files \
- TBB is a library that helps you leverage multi-core processor \
- performance without having to be a threading expert. It represents a \
- higher-level, task-based parallelism that abstracts platform details \
- and threading mechanism for performance and scalability."
-HOMEPAGE = "https://software.intel.com/en-us/tbb"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327"
-
-DEPENDS:append:libc-musl = " libucontext"
-
-PE = "1"
-
-BRANCH = "onetbb_2021"
-SRCREV = "3df08fe234f23e732a122809b40eb129ae22733f"
-SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \
- file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \
- file://0001-CMakeLists.txt-exclude-riscv64-riscv32.patch \
- file://0001-Disable-use-of-_tpause-instruction.patch \
- file://0001-Musl-linux-can-not-use-RTLD_DEEPBIND.patch \
- file://0001-Disable-LTO-on-clang-riscv32.patch \
-"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-# test build fails, error: 'mallinfo mallinfo()' is deprecated
-EXTRA_OECMAKE += " \
- -DTBB_TEST=OFF \
- -DCMAKE_BUILD_TYPE=Release \
- "
-
-
-# fails with thumb enabled:
-# | arm-oe-linux-gnueabi-g++ -march=armv7-a -mthumb -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a9 -mcpu=cortex-a9 -D__ARM__ -D__LINUX_ARM_ARCH__=7 -funwind-tables -mvectorize-with-neon-quad -rdynamic --sysroot=/OE/sysroots/m14tv -c -MMD -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_queue.cpp
-# | {standard input}: Assembler messages:
-# | {standard input}:250: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r3,[r4]'
-# ...
-# | make[1]: *** [concurrent_queue.o] Error 1
-ARM_INSTRUCTION_SET = "arm"
-
-ASNEEDED = ""
-
-LDFLAGS:append:mips = " -latomic"
-LDFLAGS:append:mipsel = " -latomic"
-LDFLAGS:append:riscv32:toolchain-clang = " -latomic"
-
-LDFLAGS:append:libc-musl = " -lucontext"
-
-# The latest version of oneTBB does not support PPC
-COMPATIBLE_MACHINE:powerpc = "(!.*ppc).*"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch b/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch
deleted file mode 100644
index 547949dd60..0000000000
--- a/meta-oe/recipes-support/thin-provisioning-tools/files/0001-do-not-strip-pdata_tools-at-do_install.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From de869ad2cb19d81257a159770ebe27593a71593c Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 31 Jul 2018 11:29:51 +0800
-Subject: [PATCH] do not strip pdata_tools at do_install
-
-It caused QA Issue:
---------------
-|ERROR: QA Issue: File '/usr/sbin/pdata_tools' from thin-provisioning-tools
-was already stripped, this will prevent future debugging! [already-stripped]
---------------
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- Makefile.in | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 02b75dd..df590b4 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -267,7 +267,6 @@ MANPAGES:=$(patsubst %,man8/%.8,$(TOOLS))
- install: bin/pdata_tools $(MANPAGES)
- $(INSTALL_DIR) $(BINDIR)
- $(INSTALL_PROGRAM) bin/pdata_tools $(BINDIR)
-- $(STRIP) $(BINDIR)/pdata_tools
- ln -s -f pdata_tools $(BINDIR)/cache_check
- ln -s -f pdata_tools $(BINDIR)/cache_dump
- ln -s -f pdata_tools $(BINDIR)/cache_metadata_size
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch b/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch
deleted file mode 100644
index de934c19a8..0000000000
--- a/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 38397b42e2c3450c2aee20e6fb92f362db4e35ef Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 2 Jul 2019 13:20:39 +0800
-Subject: [PATCH] thin-provisioning-tools: use sh on path when invoking txt2man
-
-txt2man contains a test which might try to use ksh to run the script, so we
-avoid running /bin/sh.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: joe.slater <joe.slater@windriver.com>
-
-Rebase to 0.8.5
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 7c867b2..5303994 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -223,7 +223,7 @@ endif
- %.8: %.txt bin/txt2man
- @echo " [txt2man] $<"
- @mkdir -p $(dir $@)
-- $(V) bin/txt2man -p -t $(basename $(notdir $<)) $< > $@
-+ $(V) sh bin/txt2man -p -t $(basename $(notdir $<)) $< > $@
-
- #----------------------------------------------------------------
-
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-crates.inc b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-crates.inc
new file mode 100644
index 0000000000..d71aa442fa
--- /dev/null
+++ b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-crates.inc
@@ -0,0 +1,214 @@
+# Autogenerated with 'bitbake -c update_crates thin-provisioning-tools'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/adler/1.0.2 \
+ crate://crates.io/aho-corasick/1.1.2 \
+ crate://crates.io/anstyle/1.0.6 \
+ crate://crates.io/anyhow/1.0.80 \
+ crate://crates.io/atty/0.2.14 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/base64/0.21.7 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bitflags/2.4.2 \
+ crate://crates.io/bytemuck/1.14.3 \
+ crate://crates.io/byteorder/1.5.0 \
+ crate://crates.io/cassowary/0.3.0 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clap/4.5.1 \
+ crate://crates.io/clap_builder/4.5.1 \
+ crate://crates.io/clap_lex/0.7.0 \
+ crate://crates.io/console/0.15.8 \
+ crate://crates.io/crc32c/0.6.5 \
+ crate://crates.io/crc32fast/1.4.0 \
+ crate://crates.io/data-encoding/2.5.0 \
+ crate://crates.io/downcast/0.11.0 \
+ crate://crates.io/duct/0.13.7 \
+ crate://crates.io/encode_unicode/0.3.6 \
+ crate://crates.io/env_logger/0.8.4 \
+ crate://crates.io/errno/0.3.8 \
+ crate://crates.io/exitcode/1.1.2 \
+ crate://crates.io/fastrand/2.0.1 \
+ crate://crates.io/fixedbitset/0.4.2 \
+ crate://crates.io/flate2/1.0.28 \
+ crate://crates.io/fragile/2.0.0 \
+ crate://crates.io/getrandom/0.2.12 \
+ crate://crates.io/hermit-abi/0.1.19 \
+ crate://crates.io/hermit-abi/0.3.6 \
+ crate://crates.io/indicatif/0.17.8 \
+ crate://crates.io/instant/0.1.12 \
+ crate://crates.io/iovec/0.1.4 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.153 \
+ crate://crates.io/linux-raw-sys/0.4.13 \
+ crate://crates.io/log/0.4.20 \
+ crate://crates.io/memchr/2.7.1 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/miniz_oxide/0.7.2 \
+ crate://crates.io/mockall/0.12.1 \
+ crate://crates.io/mockall_derive/0.12.1 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/num-derive/0.4.2 \
+ crate://crates.io/num-traits/0.2.18 \
+ crate://crates.io/num_cpus/1.16.0 \
+ crate://crates.io/number_prefix/0.4.0 \
+ crate://crates.io/numtoa/0.1.0 \
+ crate://crates.io/once_cell/1.19.0 \
+ crate://crates.io/os_pipe/1.1.5 \
+ crate://crates.io/portable-atomic/1.6.0 \
+ crate://crates.io/ppv-lite86/0.2.17 \
+ crate://crates.io/predicates/3.1.0 \
+ crate://crates.io/predicates-core/1.0.6 \
+ crate://crates.io/predicates-tree/1.0.9 \
+ crate://crates.io/proc-macro2/1.0.78 \
+ crate://crates.io/quick-xml/0.31.0 \
+ crate://crates.io/quickcheck/1.0.3 \
+ crate://crates.io/quickcheck_macros/1.0.0 \
+ crate://crates.io/quote/1.0.35 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_chacha/0.3.1 \
+ crate://crates.io/rand_core/0.6.4 \
+ crate://crates.io/rangemap/1.5.0 \
+ crate://crates.io/redox_syscall/0.2.16 \
+ crate://crates.io/redox_termios/0.1.3 \
+ crate://crates.io/regex/1.10.3 \
+ crate://crates.io/regex-automata/0.4.5 \
+ crate://crates.io/regex-syntax/0.8.2 \
+ crate://crates.io/roaring/0.10.3 \
+ crate://crates.io/rustc_version/0.4.0 \
+ crate://crates.io/rustix/0.38.31 \
+ crate://crates.io/safemem/0.3.3 \
+ crate://crates.io/semver/1.0.22 \
+ crate://crates.io/shared_child/1.0.0 \
+ crate://crates.io/strsim/0.11.0 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.50 \
+ crate://crates.io/tempfile/3.10.0 \
+ crate://crates.io/termion/1.5.6 \
+ crate://crates.io/termtree/0.4.1 \
+ crate://crates.io/thiserror/1.0.57 \
+ crate://crates.io/thiserror-impl/1.0.57 \
+ crate://crates.io/threadpool/1.8.1 \
+ crate://crates.io/tui/0.19.0 \
+ crate://crates.io/unicode-ident/1.0.12 \
+ crate://crates.io/unicode-segmentation/1.11.0 \
+ crate://crates.io/unicode-width/0.1.11 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.52.0 \
+ crate://crates.io/windows-targets/0.52.3 \
+ crate://crates.io/windows_aarch64_gnullvm/0.52.3 \
+ crate://crates.io/windows_aarch64_msvc/0.52.3 \
+ crate://crates.io/windows_i686_gnu/0.52.3 \
+ crate://crates.io/windows_i686_msvc/0.52.3 \
+ crate://crates.io/windows_x86_64_gnu/0.52.3 \
+ crate://crates.io/windows_x86_64_gnullvm/0.52.3 \
+ crate://crates.io/windows_x86_64_msvc/0.52.3 \
+"
+
+SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+SRC_URI[aho-corasick-1.1.2.sha256sum] = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+SRC_URI[anstyle-1.0.6.sha256sum] = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+SRC_URI[anyhow-1.0.80.sha256sum] = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[base64-0.21.7.sha256sum] = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.4.2.sha256sum] = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+SRC_URI[bytemuck-1.14.3.sha256sum] = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+SRC_URI[byteorder-1.5.0.sha256sum] = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+SRC_URI[cassowary-0.3.0.sha256sum] = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-4.5.1.sha256sum] = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da"
+SRC_URI[clap_builder-4.5.1.sha256sum] = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb"
+SRC_URI[clap_lex-0.7.0.sha256sum] = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+SRC_URI[console-0.15.8.sha256sum] = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
+SRC_URI[crc32c-0.6.5.sha256sum] = "89254598aa9b9fa608de44b3ae54c810f0f06d755e24c50177f1f8f31ff50ce2"
+SRC_URI[crc32fast-1.4.0.sha256sum] = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+SRC_URI[data-encoding-2.5.0.sha256sum] = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+SRC_URI[downcast-0.11.0.sha256sum] = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1"
+SRC_URI[duct-0.13.7.sha256sum] = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c"
+SRC_URI[encode_unicode-0.3.6.sha256sum] = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+SRC_URI[errno-0.3.8.sha256sum] = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+SRC_URI[exitcode-1.1.2.sha256sum] = "de853764b47027c2e862a995c34978ffa63c1501f2e15f987ba11bd4f9bba193"
+SRC_URI[fastrand-2.0.1.sha256sum] = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+SRC_URI[fixedbitset-0.4.2.sha256sum] = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+SRC_URI[flate2-1.0.28.sha256sum] = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+SRC_URI[fragile-2.0.0.sha256sum] = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
+SRC_URI[getrandom-0.2.12.sha256sum] = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[hermit-abi-0.3.6.sha256sum] = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
+SRC_URI[indicatif-0.17.8.sha256sum] = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[iovec-0.1.4.sha256sum] = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.153.sha256sum] = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+SRC_URI[linux-raw-sys-0.4.13.sha256sum] = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+SRC_URI[memchr-2.7.1.sha256sum] = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[miniz_oxide-0.7.2.sha256sum] = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+SRC_URI[mockall-0.12.1.sha256sum] = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48"
+SRC_URI[mockall_derive-0.12.1.sha256sum] = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[num-derive-0.4.2.sha256sum] = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
+SRC_URI[num-traits-0.2.18.sha256sum] = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+SRC_URI[num_cpus-1.16.0.sha256sum] = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+SRC_URI[numtoa-0.1.0.sha256sum] = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"
+SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+SRC_URI[os_pipe-1.1.5.sha256sum] = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9"
+SRC_URI[portable-atomic-1.6.0.sha256sum] = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[predicates-3.1.0.sha256sum] = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8"
+SRC_URI[predicates-core-1.0.6.sha256sum] = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
+SRC_URI[predicates-tree-1.0.9.sha256sum] = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
+SRC_URI[proc-macro2-1.0.78.sha256sum] = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+SRC_URI[quick-xml-0.31.0.sha256sum] = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+SRC_URI[quickcheck-1.0.3.sha256sum] = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
+SRC_URI[quickcheck_macros-1.0.0.sha256sum] = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9"
+SRC_URI[quote-1.0.35.sha256sum] = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[rangemap-1.5.0.sha256sum] = "795915a3930a5d6bafd9053d37602fea3e61be2e5d4d788983a8ba9654c1c6f2"
+SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+SRC_URI[redox_termios-0.1.3.sha256sum] = "20145670ba436b55d91fc92d25e71160fbfbdd57831631c8d7d36377a476f1cb"
+SRC_URI[regex-1.10.3.sha256sum] = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+SRC_URI[regex-automata-0.4.5.sha256sum] = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+SRC_URI[regex-syntax-0.8.2.sha256sum] = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+SRC_URI[roaring-0.10.3.sha256sum] = "a1c77081a55300e016cb86f2864415b7518741879db925b8d488a0ee0d2da6bf"
+SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+SRC_URI[rustix-0.38.31.sha256sum] = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+SRC_URI[safemem-0.3.3.sha256sum] = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+SRC_URI[semver-1.0.22.sha256sum] = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+SRC_URI[shared_child-1.0.0.sha256sum] = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef"
+SRC_URI[strsim-0.11.0.sha256sum] = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.50.sha256sum] = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb"
+SRC_URI[tempfile-3.10.0.sha256sum] = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
+SRC_URI[termion-1.5.6.sha256sum] = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e"
+SRC_URI[termtree-0.4.1.sha256sum] = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
+SRC_URI[thiserror-1.0.57.sha256sum] = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+SRC_URI[thiserror-impl-1.0.57.sha256sum] = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+SRC_URI[threadpool-1.8.1.sha256sum] = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+SRC_URI[tui-0.19.0.sha256sum] = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1"
+SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+SRC_URI[unicode-segmentation-1.11.0.sha256sum] = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+SRC_URI[unicode-width-0.1.11.sha256sum] = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+SRC_URI[windows-targets-0.52.3.sha256sum] = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f"
+SRC_URI[windows_aarch64_gnullvm-0.52.3.sha256sum] = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6"
+SRC_URI[windows_aarch64_msvc-0.52.3.sha256sum] = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f"
+SRC_URI[windows_i686_gnu-0.52.3.sha256sum] = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb"
+SRC_URI[windows_i686_msvc-0.52.3.sha256sum] = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58"
+SRC_URI[windows_x86_64_gnu-0.52.3.sha256sum] = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614"
+SRC_URI[windows_x86_64_gnullvm-0.52.3.sha256sum] = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c"
+SRC_URI[windows_x86_64_msvc-0.52.3.sha256sum] = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6"
diff --git a/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-git-crates.inc b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-git-crates.inc
new file mode 100644
index 0000000000..ceea67c364
--- /dev/null
+++ b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-git-crates.inc
@@ -0,0 +1,6 @@
+SRC_URI += "\
+ git://github.com/jthornber/rio;protocol=https;nobranch=1;name=rio;destsuffix=rio;type=git-dependency \
+"
+
+SRCREV_FORMAT .= "_rio"
+SRCREV_rio = "2979a720f671e836302c01546f9cc9f7988610c8"
diff --git a/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.9.0.bb b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.9.0.bb
deleted file mode 100644
index 25d72006fd..0000000000
--- a/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.9.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Tools of dm-thin device-mapper"
-DESCRIPTION = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target."
-HOMEPAGE = "https://github.com/jthornber/thin-provisioning-tools"
-LICENSE = "GPL-3.0-only"
-SECTION = "devel"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://github.com/jthornber/thin-provisioning-tools;branch=main;protocol=https \
- file://0001-do-not-strip-pdata_tools-at-do_install.patch \
- file://use-sh-on-path.patch \
-"
-
-SRCREV = "d6d93c3157631b242a13a81d30f75453e576c55a"
-
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
-
-DEPENDS += "expat libaio boost"
-
-inherit autotools-brokensep
diff --git a/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.12.bb b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.12.bb
new file mode 100644
index 0000000000..09b91f6b37
--- /dev/null
+++ b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.12.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Tools of dm-thin device-mapper"
+DESCRIPTION = "A suite of tools for manipulating the metadata of the dm-thin device-mapper target."
+HOMEPAGE = "https://github.com/jthornber/thin-provisioning-tools"
+LICENSE = "GPL-3.0-only"
+SECTION = "devel"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+S = "${WORKDIR}/git"
+
+SRC_URI = " \
+ git://github.com/jthornber/thin-provisioning-tools;branch=main;protocol=https \
+ "
+
+SRCREV = "b2d57dad4c3378544d7b36f3fc61e60989c5c092"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+inherit cargo cargo-update-recipe-crates
+
+require ${BPN}-crates.inc
+require ${BPN}-git-crates.inc
+
+do_install:append() {
+ install -d ${D}${sbindir}
+ mv ${D}${bindir}/pdata_tools ${D}${sbindir}/pdata_tools
+ rmdir --ignore-fail-on-non-empty ${D}${bindir}
+
+ for tool in cache_check \
+ cache_dump \
+ cache_metadata_size \
+ cache_repair \
+ cache_restore \
+ cache_writeback \
+ thin_check \
+ thin_delta \
+ thin_dump \
+ thin_ls \
+ thin_repair \
+ thin_restore \
+ thin_rmap \
+ thin_metadata_size \
+ thin_metadata_pack \
+ thin_metadata_unpack \
+ thin_trim \
+ era_check \
+ era_dump \
+ era_invalidate \
+ era_restore; do
+ ln -sf pdata_tools ${D}${sbindir}/$tool
+ done
+}
diff --git a/meta-oe/recipes-support/tio/tio_2.0.bb b/meta-oe/recipes-support/tio/tio_2.0.bb
deleted file mode 100644
index 3cc510081c..0000000000
--- a/meta-oe/recipes-support/tio/tio_2.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "tio - a simple serial device I/O tool"
-DESCRIPTION = "tio is a simple serial device tool which features a \
- straightforward command-line and configuration file interface to easily \
- connect to serial TTY devices for basic I/O operations."
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0e1a95b7892d3015ecd6d0016f601f2c"
-
-SRC_URI = "git://github.com/tio/tio;protocol=https;nobranch=1"
-SRCREV = "6618642acf28fec6d3e70ed75b50d4ce138ea08a"
-
-S = "${WORKDIR}/git"
-
-inherit meson pkgconfig
-
-DEPENDS += " libinih"
-RDEPENDS:${PN} += " libinih"
-
-FILES:${PN} += " /usr/share/bash-completion/completions/tio "
diff --git a/meta-oe/recipes-support/tio/tio_2.7.bb b/meta-oe/recipes-support/tio/tio_2.7.bb
new file mode 100644
index 0000000000..59c772b5d0
--- /dev/null
+++ b/meta-oe/recipes-support/tio/tio_2.7.bb
@@ -0,0 +1,19 @@
+SUMMARY = "tio - a simple serial device I/O tool"
+DESCRIPTION = "tio is a simple serial device tool which features a \
+ straightforward command-line and configuration file interface to easily \
+ connect to serial TTY devices for basic I/O operations."
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0e1a95b7892d3015ecd6d0016f601f2c"
+
+SRC_URI = "git://github.com/tio/tio;protocol=https;branch=master"
+SRCREV = "1c32555c2a4f26b60f94757656825fc6684d6892"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+DEPENDS += " libinih"
+RDEPENDS:${PN} += " libinih"
+
+FILES:${PN} += " /usr/share/bash-completion/completions/tio "
diff --git a/meta-oe/recipes-support/toscoterm/toscoterm_git.bb b/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
deleted file mode 100644
index b9f26051a1..0000000000
--- a/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "A very small and simple terminal emulator"
-SECTION = "x11/applications"
-DEPENDS = "vte9"
-
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://main.c;start_line=5;end_line=16;md5=9ae4bf20caf291afa94530026bd15229"
-
-# 0.2 version
-SRCREV = "8586d617aed19fc75f5ae1e07270752c1b2f9a30"
-SRC_URI = "git://github.com/OSSystems/toscoterm.git;branch=master;protocol=https"
-
-S = "${WORKDIR}/git"
-
-inherit features_check gitpkgv pkgconfig
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-do_compile() {
- oe_runmake \
- CC="${CC}" \
- CFLAGS="`pkg-config --cflags vte`${CFLAGS}" \
- LDFLAGS="`pkg-config --libs vte` ${LDFLAGS}"
-}
-
-do_install() {
- oe_runmake PREFIX="${prefix}" DESTDIR="${D}" install
-}
-
-RDEPENDS:${PN}:append:libc-glibc = " glibc-gconv-ibm437"
diff --git a/meta-oe/recipes-support/tree/tree_2.0.4.bb b/meta-oe/recipes-support/tree/tree_2.0.4.bb
deleted file mode 100644
index 5ef5336835..0000000000
--- a/meta-oe/recipes-support/tree/tree_2.0.4.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A recursive directory listing command"
-HOMEPAGE = "http://mama.indstate.edu/users/ice/tree/"
-SECTION = "console/utils"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
-
-SRC_URI = "http://mama.indstate.edu/users/ice/tree/src/${BP}.tgz"
-SRC_URI[sha256sum] = "b0ea92197849579a3f09a50dbefc3d4708caf555d304a830e16e20b73b4ffa74"
-
-# tree's default CFLAGS for Linux
-CFLAGS += "-Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
-
-EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
-
-do_configure[noexec] = "1"
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 ${S}/${BPN} ${D}${bindir}/
-}
diff --git a/meta-oe/recipes-support/tree/tree_2.1.1.bb b/meta-oe/recipes-support/tree/tree_2.1.1.bb
new file mode 100644
index 0000000000..0b61149609
--- /dev/null
+++ b/meta-oe/recipes-support/tree/tree_2.1.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A recursive directory listing command"
+HOMEPAGE = "http://mama.indstate.edu/users/ice/tree/"
+SECTION = "console/utils"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
+
+SRC_URI = "http://mama.indstate.edu/users/ice/tree/src/${BP}.tgz"
+SRC_URI[sha256sum] = "d3c3d55f403af7c76556546325aa1eca90b918cbaaf6d3ab60a49d8367ab90d5"
+
+# tree's default CFLAGS for Linux
+CFLAGS += "-Wall -DLINUX -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
+
+EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
+
+do_configure[noexec] = "1"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/${BPN} ${D}${bindir}/
+}
diff --git a/meta-oe/recipes-support/uchardet/uchardet_0.0.7.bb b/meta-oe/recipes-support/uchardet/uchardet_0.0.7.bb
deleted file mode 100644
index 9087c8b298..0000000000
--- a/meta-oe/recipes-support/uchardet/uchardet_0.0.7.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "uchardet is an encoding detector library"
-LICENSE = "MPL-1.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6ecda54f6f525388d71d6b3cd92f7474"
-
-inherit cmake
-
-SRC_URI = "https://www.freedesktop.org/software/uchardet/releases/uchardet-0.0.7.tar.xz"
-SRC_URI[md5sum] = "623406dac5c5ad89e40eedd7f279efae"
-SRC_URI[sha256sum] = "3fc79408ae1d84b406922fa9319ce005631c95ca0f34b205fad867e8b30e45b1"
diff --git a/meta-oe/recipes-support/uchardet/uchardet_0.0.8.bb b/meta-oe/recipes-support/uchardet/uchardet_0.0.8.bb
new file mode 100644
index 0000000000..3e164cc26f
--- /dev/null
+++ b/meta-oe/recipes-support/uchardet/uchardet_0.0.8.bb
@@ -0,0 +1,8 @@
+SUMMARY = "uchardet is an encoding detector library"
+LICENSE = "MPL-1.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ecda54f6f525388d71d6b3cd92f7474"
+
+inherit cmake
+
+SRC_URI = "https://www.freedesktop.org/software/uchardet/releases/uchardet-0.0.8.tar.xz"
+SRC_URI[sha256sum] = "e97a60cfc00a1c147a674b097bb1422abd9fa78a2d9ce3f3fdcc2e78a34ac5f0"
diff --git a/meta-oe/recipes-support/udisks/udisks2/0001-Makefile.am-Dont-include-buildpath.patch b/meta-oe/recipes-support/udisks/udisks2/0001-Makefile.am-Dont-include-buildpath.patch
new file mode 100644
index 0000000000..727c5a32fc
--- /dev/null
+++ b/meta-oe/recipes-support/udisks/udisks2/0001-Makefile.am-Dont-include-buildpath.patch
@@ -0,0 +1,47 @@
+From b1b58f122a3e05b5689358fdd3203ba110cca567 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Sun, 24 Sep 2023 22:20:42 +0200
+Subject: [PATCH] Reproducibility fix
+
+This fixes:
+WARNING: udisks2-2.10.1-r0 do_package_qa: QA Issue: File /usr/lib/udisks2/modules/libudisks2_btrfs.so in package udisks2 contains reference to TMPDIR
+File /usr/lib/udisks2/modules/libudisks2_lvm2.so in package udisks2 contains reference to TMPDIR
+File /usr/libexec/udisks2/udisksd in package udisks2 contains reference to TMPDIR [buildpaths]
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ modules/lvm2/Makefile.am | 2 +-
+ src/Makefile.am | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/lvm2/Makefile.am b/modules/lvm2/Makefile.am
+index 67b8aa6b3..e4ae462e7 100644
+--- a/modules/lvm2/Makefile.am
++++ b/modules/lvm2/Makefile.am
+@@ -16,7 +16,7 @@ CPPFLAGS = \
+ -DLVM_HELPER_DIR=\""$(prefix)/lib/udisks2/"\" \
+ -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
+ -DUDISKS_COMPILATION \
+- -DBUILD_DIR=\"$(abs_top_builddir)/\" \
++ -DBUILD_DIR=\"/usr/src/\" \
+ $(POLKIT_GOBJECT_1_CFLAGS) \
+ $(GLIB_CFLAGS) \
+ $(GIO_CFLAGS) \
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 5a174d1ab..0da3a497b 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -20,7 +20,7 @@ CPPFLAGS = \
+ -DUDISKS_MODULE_DIR=\"$(libdir)/udisks2/modules\" \
+ -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
+ -DUDISKS_COMPILATION \
+- -DBUILD_DIR=\"$(abs_top_builddir)/\" \
++ -DBUILD_DIR=\"/usr/src/\" \
+ $(POLKIT_GOBJECT_1_CFLAGS) \
+ $(GUDEV_CFLAGS) \
+ $(GLIB_CFLAGS) \
+--
+2.42.0
+
diff --git a/meta-oe/recipes-support/udisks/udisks2_2.10.1.bb b/meta-oe/recipes-support/udisks/udisks2_2.10.1.bb
new file mode 100644
index 0000000000..cb1cbe670d
--- /dev/null
+++ b/meta-oe/recipes-support/udisks/udisks2_2.10.1.bb
@@ -0,0 +1,63 @@
+SUMMARY = "udisks provides dbus interfaces for disks and storage devices"
+LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43"
+
+DEPENDS = " \
+ glib-2.0-native \
+ libxslt-native \
+ acl \
+ libatasmart \
+ polkit \
+ libgudev \
+ glib-2.0 \
+ dbus-glib \
+ libblockdev \
+"
+DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+RDEPENDS:${PN} = "acl"
+
+SRC_URI = " \
+ git://github.com/storaged-project/udisks.git;branch=2.10.x-branch;protocol=https \
+ file://0001-Makefile.am-Dont-include-buildpath.patch \
+"
+SRCREV = "18c9faf089e306ad6f3f51f5cb887a6b9aa08350"
+S = "${WORKDIR}/git"
+
+CVE_PRODUCT = "udisks"
+
+inherit autotools-brokensep systemd gtk-doc gobject-introspection gettext features_check
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+EXTRA_OECONF = "--disable-man --disable-gtk-doc"
+
+do_configure:prepend() {
+ # | configure.ac:656: error: required file 'build-aux/config.rpath' not found
+ mkdir -p ${S}/build-aux
+ touch ${S}/build-aux/config.rpath
+}
+
+PACKAGECONFIG ?= ""
+
+PACKAGECONFIG[lvm2] = "--enable-lvm2,--disable-lvm2,lvm2"
+PACKAGECONFIG[btrfs] = "--enable-btrfs,--disable-btrfs,,btrfs-tools"
+PACKAGECONFIG[lsm] = "--enable-lsm,--disable-lsm,libstoragemgmt"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1/ \
+ ${datadir}/polkit-1 \
+ ${datadir}/bash-completion \
+ ${datadir}/zsh \
+ ${libdir}/polkit-1/extensions/*.so \
+ ${nonarch_base_libdir}/udev/* \
+ ${exec_prefix}${nonarch_base_libdir}/udisks2/* \
+ ${systemd_system_unitdir} \
+"
+
+PACKAGES =+ "${PN}-libs"
+FILES:${PN}-libs = "${libdir}/lib*${SOLIBS}"
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
+
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-oe/recipes-support/udisks/udisks2_2.9.4.bb b/meta-oe/recipes-support/udisks/udisks2_2.9.4.bb
deleted file mode 100644
index 3de5557238..0000000000
--- a/meta-oe/recipes-support/udisks/udisks2_2.9.4.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "udisks provides dbus interfaces for disks and storage devices"
-LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43"
-
-DEPENDS = " \
- glib-2.0-native \
- libxslt-native \
- acl \
- libatasmart \
- polkit \
- libgudev \
- glib-2.0 \
- dbus-glib \
- libblockdev \
-"
-DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-RDEPENDS:${PN} = "acl"
-
-SRC_URI = "git://github.com/storaged-project/udisks.git;branch=2.9.x-branch;protocol=https"
-SRCREV = "001c486e6d099ed33e2de4f5c73c03e3ee180f81"
-S = "${WORKDIR}/git"
-
-CVE_PRODUCT = "udisks"
-
-inherit autotools-brokensep systemd gtk-doc gobject-introspection gettext features_check
-
-REQUIRED_DISTRO_FEATURES = "polkit"
-
-EXTRA_OECONF = "--disable-man --disable-gtk-doc"
-
-do_configure:prepend() {
- # | configure.ac:656: error: required file 'build-aux/config.rpath' not found
- mkdir -p ${S}/build-aux
- touch ${S}/build-aux/config.rpath
-}
-
-FILES:${PN} += " \
- ${datadir}/dbus-1/ \
- ${datadir}/polkit-1 \
- ${datadir}/bash-completion \
- ${libdir}/polkit-1/extensions/*.so \
- ${nonarch_base_libdir}/udev/* \
- ${exec_prefix}${nonarch_base_libdir}/udisks2/* \
- ${systemd_system_unitdir} \
-"
-
-PACKAGES =+ "${PN}-libs"
-FILES:${PN}-libs = "${libdir}/lib*${SOLIBS}"
-FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
-
-SYSTEMD_SERVICE:${PN} = "${BPN}.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-oe/recipes-support/uhubctl/uhubctl_2.4.0.bb b/meta-oe/recipes-support/uhubctl/uhubctl_2.4.0.bb
deleted file mode 100644
index b40fa5255c..0000000000
--- a/meta-oe/recipes-support/uhubctl/uhubctl_2.4.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "USB hub per-port power control"
-HOMEPAGE = "https://github.com/mvp/uhubctl"
-BUGTRACKER = "https://github.com/mvp/uhubctl/issues"
-DEPENDS = "libusb1"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRCREV = "014b55ac5d1d7fb46a8f1eefe9fc3b87ea65a75f"
-SRC_URI = "git://github.com/mvp/${BPN};branch=master;protocol=https"
-S = "${WORKDIR}/git"
-
-# uhubctl gets its program version from "git describe". As we use the source
-# archive do reduce download size replace the call with our hardcoded version.
-do_configure:append() {
- sed -i "s/^\(GIT_VERSION :=\).*$/\1 ${PV}/g" ${S}/Makefile
-}
-
-do_install () {
- oe_runmake install DESTDIR=${D}
-}
diff --git a/meta-oe/recipes-support/uhubctl/uhubctl_2.5.0.bb b/meta-oe/recipes-support/uhubctl/uhubctl_2.5.0.bb
new file mode 100644
index 0000000000..8b334dbdec
--- /dev/null
+++ b/meta-oe/recipes-support/uhubctl/uhubctl_2.5.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "USB hub per-port power control"
+HOMEPAGE = "https://github.com/mvp/uhubctl"
+BUGTRACKER = "https://github.com/mvp/uhubctl/issues"
+DEPENDS = "libusb1"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRCREV = "20276ad5ced147d018e2b3fccedabd94597aa25e"
+SRC_URI = "git://github.com/mvp/${BPN};branch=master;protocol=https"
+S = "${WORKDIR}/git"
+
+# uhubctl gets its program version from "git describe". As we use the source
+# archive do reduce download size replace the call with our hardcoded version.
+do_configure:append() {
+ sed -i "s/^\(GIT_VERSION :=\).*$/\1 ${PV}/g" ${S}/Makefile
+}
+
+do_install () {
+ oe_runmake install DESTDIR=${D}
+}
diff --git a/meta-oe/recipes-support/uim/uim/uim-module-manager.patch b/meta-oe/recipes-support/uim/uim/uim-module-manager.patch
index 0fafc8533e..0e2fb687b6 100644
--- a/meta-oe/recipes-support/uim/uim/uim-module-manager.patch
+++ b/meta-oe/recipes-support/uim/uim/uim-module-manager.patch
@@ -3,6 +3,8 @@ From: Bian Naimeng <biannm@cn.fujitsu.com>
Date: Fri, 26 Jun 2015 12:57:48 +0900
---
+Upstream-Status: Pending
+
scm/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/unicode-ucd/unicode-ucd_14.0.0.bb b/meta-oe/recipes-support/unicode-ucd/unicode-ucd_14.0.0.bb
index f0f3a66e07..7970cd953f 100644
--- a/meta-oe/recipes-support/unicode-ucd/unicode-ucd_14.0.0.bb
+++ b/meta-oe/recipes-support/unicode-ucd/unicode-ucd_14.0.0.bb
@@ -1,14 +1,14 @@
SUMMARY = "Unicode Character Database"
HOMEPAGE = "https://unicode.org/ucd/"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/license.html;beginline=43;endline=83;md5=cf6c4777b109bcee78b6083a21be6192"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/license.txt;md5=4b11b5cbb0a24df9f4e7db63db98f22f"
SRC_URI = " \
https://www.unicode.org/Public/zipped/${PV}/UCD.zip;name=ucd;subdir=ucd;downloadfilename=unicode-ucd-${PV}.zip \
- https://www.unicode.org/license.html;name=license \
+ https://www.unicode.org/license.txt;name=ucd-license \
"
SRC_URI[ucd.sha256sum] = "033a5276b5d7af8844589f8e3482f3977a8385e71d107d375055465178c23600"
-SRC_URI[license.sha256sum] = "e415e1f2188ef2b1a5f7e6ee8c60cefe8a49dacd8b96c9025cad5013985129e4"
+SRC_URI[ucd-license.sha256sum] = "f7830d126f59d83842565d3dddedc79db4ca978ed52aee0ebcc040ea76a85519"
inherit allarch
diff --git a/meta-oe/recipes-support/unixodbc/files/0001-exe-Makefile.am-add-CROSS_LAUNCHER-to-run-odbc_confi.patch b/meta-oe/recipes-support/unixodbc/files/0001-exe-Makefile.am-add-CROSS_LAUNCHER-to-run-odbc_confi.patch
new file mode 100644
index 0000000000..c763a9feb6
--- /dev/null
+++ b/meta-oe/recipes-support/unixodbc/files/0001-exe-Makefile.am-add-CROSS_LAUNCHER-to-run-odbc_confi.patch
@@ -0,0 +1,54 @@
+From e886222c70d4b251f0785f670477b7aee938e5af Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 21 Feb 2024 13:55:41 +0800
+Subject: [PATCH] exe/Makefile.am: add CROSS_LAUNCHER to run odbc_config
+
+In case of cross compilation, the odbc_config cannot run, the error message
+would be like below:
+
+ /bin/bash: line 1: ../exe/odbc_config: cannot execute binary file: Exec format error
+
+Add CROSS_LAUNCHER to allow the possibility of running odbc_config correctly in
+case of cross compilation.
+
+For example, here's a possible value for it (Yocto project environment, aarch64 target).
+ export CROSS_LAUNCHER="PSEUDO_UNLOAD=1 qemu-aarch64 -r 5.15 \
+ -L /PATH/TO/unixodbc/2.3.11/recipe-sysroot \
+ -E LD_LIBRARY_PATH=/PATH/TO/unixodbc/2.3.11/recipe-sysroot//usr/lib:/PATH/TO/unixodbc/2.3.11/recipe-sysroot//usr/lib "
+
+Other projects can use the launcher they like to allow correct generation of
+the odbc.pc file in cross compilation environment.
+
+Upstream-Status: Submitted [Personal Email, nick.gorham@easysoft.com]
+
+As said in the official website, https://www.unixodbc.org/, the way to report bug and send
+out patch is via personal email. So there's a public link above.
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ exe/Makefile.am | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/exe/Makefile.am b/exe/Makefile.am
+index 03f3d5a..5f33cf2 100644
+--- a/exe/Makefile.am
++++ b/exe/Makefile.am
+@@ -59,11 +59,13 @@ slencheck_SOURCES = slencheck.c
+ dltest_DEPENDENCIES = $(LTDLDEPS)
+ dltest_LDADD = $(LIBLTDL)
+
++CROSS_LAUNCHER ?= ""
++
+ all-am:
+- @sed "s![@]ODBC_ULEN[@]!`$(top_builddir)/exe/odbc_config$(EXEEXT) --ulen`!" \
++ @sed "s![@]ODBC_ULEN[@]!`$(CROSS_LAUNCHER)$(top_builddir)/exe/odbc_config$(EXEEXT) --ulen`!" \
+ $(top_builddir)/DriverManager/odbc.pc > $(top_builddir)/exe/odbc.pc.tmp
+ @mv -f $(top_builddir)/exe/odbc.pc.tmp $(top_builddir)/DriverManager/odbc.pc
+- @sed "s![@]ODBC_CFLAGS[@]!`$(top_builddir)/exe/odbc_config$(EXEEXT) --cflags | sed 's/ -I.*//'`!" \
++ @sed "s![@]ODBC_CFLAGS[@]!`$(CROSS_LAUNCHER)$(top_builddir)/exe/odbc_config$(EXEEXT) --cflags | sed 's/ -I.*//'`!" \
+ $(top_builddir)/DriverManager/odbc.pc > $(top_builddir)/exe/odbc.pc.tmp
+ @mv -f $(top_builddir)/exe/odbc.pc.tmp $(top_builddir)/DriverManager/odbc.pc
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb
deleted file mode 100644
index c7d23d1202..0000000000
--- a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "An Open Source ODBC sub-system"
-DESCRIPTION = "unixODBC is an Open Source ODBC sub-system and an ODBC SDK \
-for Linux, Mac OSX, and UNIX."
-
-HOMEPAGE = "http://www.unixodbc.org/"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7b37bf80a3df5a65b355433ae36d206"
-
-DEPENDS = "libtool readline"
-
-SRC_URI = "http://ftp.unixodbc.org/unixODBC-${PV}.tar.gz \
- file://do-not-use-libltdl-source-directory.patch \
-"
-SRC_URI[sha256sum] = "d9e55c8e7118347e3c66c87338856dad1516b490fb7c756c1562a2c267c73b5c"
-
-UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar"
-
-inherit autotools-brokensep
-
-S = "${WORKDIR}/unixODBC-${PV}"
-
-EXTRA_OEMAKE += "LIBS=-lltdl"
-
-do_configure:prepend() {
- # old m4 files will cause libtool version don't match
- rm -rf m4/*
- rm -fr libltdl
-}
diff --git a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.12.bb b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.12.bb
new file mode 100644
index 0000000000..7819387c39
--- /dev/null
+++ b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.12.bb
@@ -0,0 +1,48 @@
+SUMMARY = "An Open Source ODBC sub-system"
+DESCRIPTION = "unixODBC is an Open Source ODBC sub-system and an ODBC SDK \
+for Linux, Mac OSX, and UNIX."
+
+HOMEPAGE = "http://www.unixodbc.org/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d7b37bf80a3df5a65b355433ae36d206"
+
+DEPENDS = "libtool readline"
+
+SRC_URI = "https://www.unixodbc.org/unixODBC-${PV}.tar.gz \
+ file://do-not-use-libltdl-source-directory.patch \
+ file://0001-exe-Makefile.am-add-CROSS_LAUNCHER-to-run-odbc_confi.patch \
+"
+SRC_URI[sha256sum] = "f210501445ce21bf607ba51ef8c125e10e22dffdffec377646462df5f01915ec"
+
+UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar"
+
+inherit autotools-brokensep multilib_header qemu
+
+S = "${WORKDIR}/unixODBC-${PV}"
+
+EXTRA_OEMAKE += "LIBS=-lltdl"
+EXTRA_OECONF += "--enable-utf8ini"
+DEPENDS:append:class-target = "${@' qemu-native' if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) else ''}"
+QEMU_WRAPPER = "${@qemu_wrapper_cmdline(d, '${STAGING_DIR_HOST}', ['${STAGING_DIR_HOST}/${libdir}','${STAGING_DIR_HOST}/${base_libdir}'])}"
+
+do_configure:prepend() {
+ # old m4 files will cause libtool version don't match
+ rm -rf m4/*
+ rm -fr libltdl
+}
+
+do_compile:prepend() {
+ if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then
+ export CROSS_LAUNCHER="${QEMU_WRAPPER} "
+ fi
+}
+
+do_install:prepend() {
+ if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then
+ export CROSS_LAUNCHER="${QEMU_WRAPPER} "
+ fi
+}
+
+do_install:append() {
+ oe_multilib_header unixodbc.h unixODBC/unixodbc_conf.h
+}
diff --git a/meta-oe/recipes-support/uriparser/uriparser_0.9.6.bb b/meta-oe/recipes-support/uriparser/uriparser_0.9.6.bb
deleted file mode 100644
index 0d45a15595..0000000000
--- a/meta-oe/recipes-support/uriparser/uriparser_0.9.6.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "RFC 3986 compliant URI parsing library"
-HOMEPAGE = "https://uriparser.github.io"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fcc5a53146c2401f4b4f6a3bdf3f0168"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${BP}/${BP}.tar.gz"
-SRC_URI[sha256sum] = "10e6f90d359c1087c45f907f95e527a8aca84422251081d1533231e031a084ff"
-
-UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
-
-inherit cmake
-
-EXTRA_OECMAKE += "-DURIPARSER_BUILD_DOCS:BOOL=OFF -DURIPARSER_BUILD_TESTS:BOOL=OFF"
-
-BBCLASSEXTEND += "native"
diff --git a/meta-oe/recipes-support/uriparser/uriparser_0.9.7.bb b/meta-oe/recipes-support/uriparser/uriparser_0.9.7.bb
new file mode 100644
index 0000000000..421263e62b
--- /dev/null
+++ b/meta-oe/recipes-support/uriparser/uriparser_0.9.7.bb
@@ -0,0 +1,16 @@
+SUMMARY = "RFC 3986 compliant URI parsing library"
+HOMEPAGE = "https://uriparser.github.io"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fcc5a53146c2401f4b4f6a3bdf3f0168"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${BP}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "11553b2abd2b5728a6c88e35ab08e807d0a0f23c44920df937778ce8cc4d40ff"
+
+inherit cmake github-releases
+
+UPSTREAM_CHECK_REGEX = "releases/tag/${BPN}-(?P<pver>\d+(\.\d+)+)"
+
+EXTRA_OECMAKE += "-DURIPARSER_BUILD_DOCS:BOOL=OFF -DURIPARSER_BUILD_TESTS:BOOL=OFF"
+
+BBCLASSEXTEND += "native"
diff --git a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.0.bb b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.0.bb
deleted file mode 100644
index 1474ca615e..0000000000
--- a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.0.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "A mode switching tool for controlling 'flip flop' (multiple device) USB gear"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=091556bd6d0154cd4c2d17a1bfc7380a"
-
-DEPENDS = "libusb1"
-
-SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
-SRC_URI[md5sum] = "be73dcc84025794081a1d4d4e5a75e4c"
-SRC_URI[sha256sum] = "c215236e6bada6e659fc195a31d611ea298a4bdb4d57a0d68c553b56585f8ba3"
-
-inherit pkgconfig systemd
-
-SYSTEMD_SERVICE:${PN} = "usb_modeswitch@.service"
-
-EXTRA_OEMAKE = "TCL=${bindir}/tclsh"
-
-FILES:${PN} = "${bindir} ${sysconfdir} ${nonarch_base_libdir}/udev/usb_modeswitch ${sbindir} ${localstatedir}/lib/usb_modeswitch"
-RDEPENDS:${PN} = "tcl"
-RRECOMMENDS:${PN} = "usb-modeswitch-data"
-
-do_install() {
- oe_runmake DESTDIR=${D} UDEVDIR=${D}/${nonarch_base_libdir}/udev install
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}/${systemd_unitdir}/system
- install -m 644 ${S}/usb_modeswitch@.service ${D}/${systemd_unitdir}/system
- fi
-}
diff --git a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.1.bb b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.1.bb
new file mode 100644
index 0000000000..cd3840feab
--- /dev/null
+++ b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.1.bb
@@ -0,0 +1,31 @@
+SUMMARY = "A mode switching tool for controlling 'flip flop' (multiple device) USB gear"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=091556bd6d0154cd4c2d17a1bfc7380a"
+
+DEPENDS = "libusb1"
+
+SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "5195d9e136e52f658f19e9f93e4f982b1b67bffac197d0a455cd8c2cd245fa34"
+
+inherit pkgconfig systemd
+
+SYSTEMD_SERVICE:${PN} = "usb_modeswitch@.service"
+
+EXTRA_OEMAKE = "TCL=${bindir}/tclsh"
+
+FILES:${PN} = " \
+ ${bindir} \
+ ${sysconfdir} \
+ ${nonarch_base_libdir}/udev/usb_modeswitch \
+ ${sbindir} ${localstatedir}/lib/usb_modeswitch \
+"
+RDEPENDS:${PN} = "tcl"
+RRECOMMENDS:${PN} = "usb-modeswitch-data"
+
+do_install() {
+ oe_runmake DESTDIR=${D} UDEVDIR=${D}/${nonarch_base_libdir}/udev install
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}/${systemd_unitdir}/system
+ install -m 644 ${S}/usb_modeswitch@.service ${D}/${systemd_unitdir}/system
+ fi
+}
diff --git a/meta-oe/recipes-support/usbids/usbids_2023.01.16.bb b/meta-oe/recipes-support/usbids/usbids_2023.01.16.bb
new file mode 100644
index 0000000000..b0dd72fb25
--- /dev/null
+++ b/meta-oe/recipes-support/usbids/usbids_2023.01.16.bb
@@ -0,0 +1,18 @@
+SUMMARY = "usb device database."
+HOMEPAGE = "https://github.com/usbids/usbids"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
+
+SRC_URI = "git://github.com/usbids/usbids.git;branch=master;protocol=https"
+
+SRCREV = "7963233faf69eb9c80ffca8dfc1f31940f75999f"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -d ${D}${datadir}
+ install -m0644 ${S}/usb.ids ${D}${datadir}
+}
+
+FILES:${PN} = "${datadir}"
diff --git a/meta-oe/recipes-support/utouch/utouch-evemu_git.bb b/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
index a6d09f69e9..bd69dbb11c 100644
--- a/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
+++ b/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
@@ -12,7 +12,7 @@ SRC_URI = "git://bitmath.org/git/evemu.git;protocol=http;branch=master \
"
SRCREV = "9752b50e922572e4cd214ac45ed95e4ee410fe24"
-PV = "1.0.6+git${SRCPV}"
+PV = "1.0.6+git"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/utouch/utouch-frame/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch b/meta-oe/recipes-support/utouch/utouch-frame/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch
index f3c8eeb418..f0860fcd90 100644
--- a/meta-oe/recipes-support/utouch/utouch-frame/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch
+++ b/meta-oe/recipes-support/utouch/utouch-frame/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch
@@ -9,6 +9,8 @@ error: field has incomplete
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
tools/utouch-frame-test-mtdev.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-support/utouch/utouch-frame_git.bb b/meta-oe/recipes-support/utouch/utouch-frame_git.bb
index 3b1cf60c27..ddd27a7e30 100644
--- a/meta-oe/recipes-support/utouch/utouch-frame_git.bb
+++ b/meta-oe/recipes-support/utouch/utouch-frame_git.bb
@@ -16,6 +16,6 @@ SRC_URI = "git://bitmath.org/git/frame.git;protocol=http;branch=master \
"
SRCREV = "95363d5a1f7394d71144bf3b408ef4e6db4350fc"
-PV = "1.1.2+git${SRCPV}"
+PV = "1.1.2+git"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/utouch/utouch-mtview_git.bb b/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
index e348e39bba..d964d7f263 100644
--- a/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
+++ b/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
@@ -14,6 +14,6 @@ SRCREV = "ad437c38dc111cf3990a03abf14efe1b5d89604b"
DEPENDS += "mtdev utouch-frame utouch-evemu libx11"
-PV = "1.1.7+git${SRCPV}"
+PV = "1.1.7+git"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.38.bb b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.38.bb
deleted file mode 100644
index 235bc30614..0000000000
--- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.38.bb
+++ /dev/null
@@ -1,91 +0,0 @@
-SUMMARY = "VirtualBox Linux Guest Drivers"
-SECTION = "core"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=e197d5641bb35b29d46ca8c4bf7f2660"
-
-DEPENDS = "virtual/kernel"
-
-inherit module kernel-module-split
-
-COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
-
-VBOX_NAME = "VirtualBox-${PV}"
-
-SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
- file://Makefile.utils \
-"
-
-SRC_URI[sha256sum] = "56d997b58154df3974ce040a64970fa774add41e84b23dfb84b279b24545d7e4"
-
-S ?= "${WORKDIR}/vbox_module"
-S:task-patch = "${WORKDIR}/${VBOX_NAME}"
-
-export VBOX_KBUILD_TARGET_ARCH="${ARCH}"
-export VBOX_KBUILD_TARGET_ARCH:x86-64="amd64"
-
-EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build' KBUILD_VERBOSE=1"
-
-# otherwise 5.2.22 builds just vboxguest
-MAKE_TARGETS = "all"
-
-addtask export_sources after do_patch before do_configure
-do_export_sources[depends] += "virtual/kernel:do_shared_workdir"
-
-do_export_sources() {
- mkdir -p "${S}"
- ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules.sh ${T}/vbox_modules.tar.gz
- tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
-
- # add a mount utility to use shared folder from VBox Addition Source Code
- mkdir -p "${S}/utils"
- install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils
- install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils
- install ${S}/../Makefile.utils ${S}/utils/Makefile
-
- # some kernel versions have issues with stdarg.h and compatibility with
- # the sysroot and libc-headers/uapi. If we include the file directly from
- # the kernel source (STAGING_KERNEL_DIR) we get conflicting types on many
- # structures, due to kernel .h files being found before libc .h files.
- # if we grab just this one file from the source, and put it into our
- # file structure, everything holds together
- mkdir -p ${S}/vboxsf/include/linux
- install ${STAGING_KERNEL_DIR}/include/linux/stdarg.h ${S}/vboxsf/include/linux
-}
-
-do_configure:prepend() {
- # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:99: *** The variable KERN_DIR must be a kernel build folder and end with /build without a trailing slash, or KERN_VER must be set. Stop.
- # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:108: *** The kernel build folder path must end in <version>/build, or the variable KERN_VER must be set. Stop.
- mkdir -p ${WORKDIR}/${KERNEL_VERSION}
- ln -snf ${STAGING_KERNEL_DIR} ${WORKDIR}/${KERNEL_VERSION}/build
-}
-
-# compile and install mount utility
-do_compile() {
- oe_runmake all
- oe_runmake 'LD=${CC}' 'EXTRA_CFLAGS=-I${STAGING_KERNEL_BUILDDIR}/include/' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
- if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then
- echo "ERROR: One of vbox*.ko modules wasn't built"
- exit 1
- fi
-}
-
-module_do_install() {
- MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc
- install -d $MODULE_DIR
- install -m 644 vboxguest.ko $MODULE_DIR
- install -m 644 vboxsf.ko $MODULE_DIR
- install -m 644 vboxvideo.ko $MODULE_DIR
-}
-
-do_install:append() {
- install -d ${D}${base_sbindir}
- install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir}
-}
-
-PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
-RRECOMMENDS:${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
-
-FILES:${PN} = "${base_sbindir}"
-
-# autoload if installed
-KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo"
diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.14.bb b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.14.bb
new file mode 100644
index 0000000000..208b1bb6e5
--- /dev/null
+++ b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.14.bb
@@ -0,0 +1,91 @@
+SUMMARY = "VirtualBox Linux Guest Drivers"
+SECTION = "core"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/${VBOX_NAME}/COPYING;md5=fff5fe1c81dd6dc3d522e7862e44881e"
+
+DEPENDS = "virtual/kernel"
+
+inherit module kernel-module-split
+
+COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
+
+VBOX_NAME = "VirtualBox-${PV}"
+
+SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
+ file://Makefile.utils \
+"
+
+SRC_URI[sha256sum] = "45860d834804a24a163c1bb264a6b1cb802a5bc7ce7e01128072f8d6a4617ca9"
+
+S ?= "${WORKDIR}/vbox_module"
+S:task-patch = "${WORKDIR}/${VBOX_NAME}"
+
+export VBOX_KBUILD_TARGET_ARCH="${ARCH}"
+export VBOX_KBUILD_TARGET_ARCH:x86-64="amd64"
+
+EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build' KBUILD_VERBOSE=1 CC='${CC} ${DEBUG_PREFIX_MAP} -fdebug-prefix-map=${STAGING_KERNEL_DIR}=${KERNEL_SRC_PATH} -fdebug-prefix-map=${STAGING_KERNEL_BUILDDIR}=${KERNEL_SRC_PATH}'"
+
+# otherwise 5.2.22 builds just vboxguest
+MAKE_TARGETS = "all"
+
+addtask export_sources after do_patch before do_configure
+do_export_sources[depends] += "virtual/kernel:do_shared_workdir"
+
+do_export_sources() {
+ mkdir -p "${S}"
+ ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/export_modules.sh ${T}/vbox_modules.tar.gz
+ tar -C "${S}" -xzf ${T}/vbox_modules.tar.gz
+
+ # add a mount utility to use shared folder from VBox Addition Source Code
+ mkdir -p "${S}/utils"
+ install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c ${S}/utils
+ install ${WORKDIR}/${VBOX_NAME}/src/VBox/Additions/linux/sharedfolders/vbsfmount.c ${S}/utils
+ install ${S}/../Makefile.utils ${S}/utils/Makefile
+
+ # some kernel versions have issues with stdarg.h and compatibility with
+ # the sysroot and libc-headers/uapi. If we include the file directly from
+ # the kernel source (STAGING_KERNEL_DIR) we get conflicting types on many
+ # structures, due to kernel .h files being found before libc .h files.
+ # if we grab just this one file from the source, and put it into our
+ # file structure, everything holds together
+ mkdir -p ${S}/vboxsf/include/linux
+ install ${STAGING_KERNEL_DIR}/include/linux/stdarg.h ${S}/vboxsf/include/linux
+}
+
+do_configure:prepend() {
+ # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:99: *** The variable KERN_DIR must be a kernel build folder and end with /build without a trailing slash, or KERN_VER must be set. Stop.
+ # vboxguestdrivers/5.2.6-r0/vbox_module/vboxguest/Makefile.include.header:108: *** The kernel build folder path must end in <version>/build, or the variable KERN_VER must be set. Stop.
+ mkdir -p ${WORKDIR}/${KERNEL_VERSION}
+ ln -snf ${STAGING_KERNEL_DIR} ${WORKDIR}/${KERNEL_VERSION}/build
+}
+
+# compile and install mount utility
+do_compile() {
+ oe_runmake all
+ oe_runmake 'LD=${CC}' 'EXTRA_CFLAGS=-I${STAGING_KERNEL_BUILDDIR}/include/' 'LDFLAGS=${LDFLAGS}' -C ${S}/utils
+ if ! [ -e vboxguest.ko -a -e vboxsf.ko -a -e vboxvideo.ko ] ; then
+ echo "ERROR: One of vbox*.ko modules wasn't built"
+ exit 1
+ fi
+}
+
+module_do_install() {
+ MODULE_DIR=${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/kernel/misc
+ install -d $MODULE_DIR
+ install -m 644 vboxguest.ko $MODULE_DIR
+ install -m 644 vboxsf.ko $MODULE_DIR
+ install -m 644 vboxvideo.ko $MODULE_DIR
+}
+
+do_install:append() {
+ install -d ${D}${base_sbindir}
+ install -m 755 ${S}/utils/mount.vboxsf ${D}${base_sbindir}
+}
+
+PACKAGES += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
+RRECOMMENDS:${PN} += "kernel-module-vboxguest kernel-module-vboxsf kernel-module-vboxvideo"
+
+FILES:${PN} = "${base_sbindir}"
+
+# autoload if installed
+KERNEL_MODULE_AUTOLOAD += "vboxguest vboxsf vboxvideo"
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
new file mode 100644
index 0000000000..06030c047c
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
@@ -0,0 +1,29 @@
+From e68e87c14243b1c8707c56883a53e841310974a1 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 27 Oct 2015 16:02:19 +0200
+Subject: [PATCH] FindGObjectIntrospection.cmake: prefix variables obtained
+ from pkg-config with PKG_CONFIG_SYSROOT_DIR
+
+See discussion at https://bugs.webkit.org/show_bug.cgi?id=232933 for
+reasons why this is not approproiate for upstream submission.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Source/cmake/FindGI.cmake | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/Source/cmake/FindGI.cmake b/Source/cmake/FindGI.cmake
+index fdc56b21..d42eca52 100644
+--- a/Source/cmake/FindGI.cmake
++++ b/Source/cmake/FindGI.cmake
+@@ -72,6 +72,9 @@ if (PKG_CONFIG_FOUND)
+ endif ()
+ endif ()
+
++set(_GI_SCANNER_EXE "$ENV{PKG_CONFIG_SYSROOT_DIR}${_GI_SCANNER_EXE}")
++set(_GI_COMPILER_EXE "$ENV{PKG_CONFIG_SYSROOT_DIR}${_GI_COMPILER_EXE}")
++
+ find_program(GI_SCANNER_EXE NAMES ${_GI_SCANNER_EXE} g-ir-scanner)
+ find_program(GI_COMPILER_EXE NAMES ${_GI_COMPILER_EXE} g-ir-compiler)
+
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch
new file mode 100644
index 0000000000..e6a43c2fff
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch
@@ -0,0 +1,35 @@
+From fb81a5de7798eb7f68e0de1c281671553e1aa19d Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro@redhat.com>
+Date: Mon, 5 Feb 2024 11:00:49 -0600
+Subject: [PATCH] =?UTF-8?q?LowLevelInterpreter.cpp:339:21:=20error:=20?=
+ =?UTF-8?q?=E2=80=98t6=E2=80=99=20was=20not=20declared=20in=20this=20scope?=
+ =?UTF-8?q?=20https://bugs.webkit.org/show=5Fbug.cgi=3Fid=3D268739?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Unreviewed build fix. Seems a backport went badly, and we didn't notice
+because the code is architecture-specific.
+
+* Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:
+(JSC::CLoop::execute):
+
+Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/3d5373575695b293b8559155431d0079a6153aff]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Source/JavaScriptCore/llint/LowLevelInterpreter.cpp | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
+index 75cecbbd..b1020ea4 100644
+--- a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
++++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
+@@ -336,8 +336,6 @@ JSValue CLoop::execute(OpcodeID entryOpcodeID, void* executableAddress, VM* vm,
+ UNUSED_VARIABLE(t2);
+ UNUSED_VARIABLE(t3);
+ UNUSED_VARIABLE(t5);
+- UNUSED_VARIABLE(t6);
+- UNUSED_VARIABLE(t7);
+
+ struct StackPointerScope {
+ StackPointerScope(CLoopStack& stack)
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/2922af379dc70b4b1a63b01d67179eb431f03ac4.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/2922af379dc70b4b1a63b01d67179eb431f03ac4.patch
new file mode 100644
index 0000000000..0f6b9a6335
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/2922af379dc70b4b1a63b01d67179eb431f03ac4.patch
@@ -0,0 +1,36 @@
+From 2922af379dc70b4b1a63b01d67179eb431f03ac4 Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro@redhat.com>
+Date: Mon, 18 Mar 2024 11:14:54 -0700
+Subject: [PATCH] REGRESSION(274077@main): failure to build on i586 (and likely
+ other 32bit arches): static assertion failed: Timer should stay small
+ https://bugs.webkit.org/show_bug.cgi?id=271108
+
+Unreviewed build fix. This changes SameSizeOfTimer to ensure it matches
+the size of Timer on 32-bit platforms.
+
+* Source/WebCore/platform/Timer.cpp:
+
+Canonical link: https://commits.webkit.org/276282@main
+
+Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/2922af379dc70b4b1a63b01d67179eb431f03ac4]
+---
+ Source/WebCore/platform/Timer.cpp | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/Source/WebCore/platform/Timer.cpp b/Source/WebCore/platform/Timer.cpp
+index 4f7c0f5c39ca9..0f3734cca2474 100644
+--- a/Source/WebCore/platform/Timer.cpp
++++ b/Source/WebCore/platform/Timer.cpp
+@@ -263,7 +263,11 @@ struct SameSizeAsTimer {
+
+ WeakPtr<TimerAlignment> timerAlignment;
+ double times[2];
+- void* pointers[3];
++ void* pointers[2];
++#if CPU(ADDRESS32)
++ uint8_t bitfields;
++#endif
++ void* pointer;
+ };
+
+ static_assert(sizeof(Timer) == sizeof(SameSizeAsTimer), "Timer should stay small");
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch
new file mode 100644
index 0000000000..b2e40a88c8
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch
@@ -0,0 +1,65 @@
+From 1523e00a2a76e285262c8aa3721b5d99f3f2d612 Mon Sep 17 00:00:00 2001
+From: Thomas Devoogdt <thomas.devoogdt@barco.com>
+Date: Mon, 16 Jan 2023 17:03:30 +0100
+Subject: [PATCH] REGRESSION(257865@main): B3Validate.cpp: fix
+
+ !ENABLE(WEBASSEMBLY_B3JIT)
+
+https://bugs.webkit.org/show_bug.cgi?id=250681
+
+Reviewed by NOBODY (OOPS!).
+
+WasmTypeDefinition.h isn't included if not ENABLE(WEBASSEMBLY_B3JIT).
+Also, toB3Type and simdScalarType are not defined if it is included.
+
+Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
+
+Upstream-Status: Inappropriate [https://bugs.launchpad.net/ubuntu/+source/webkit2gtk/+bug/2008798]
+---
+ Source/JavaScriptCore/b3/B3Validate.cpp | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/Source/JavaScriptCore/b3/B3Validate.cpp b/Source/JavaScriptCore/b3/B3Validate.cpp
+index eaaa3749..1d089783 100644
+--- a/Source/JavaScriptCore/b3/B3Validate.cpp
++++ b/Source/JavaScriptCore/b3/B3Validate.cpp
+@@ -47,6 +47,12 @@
+ #include <wtf/StringPrintStream.h>
+ #include <wtf/text/CString.h>
+
++#if ENABLE(WEBASSEMBLY) && ENABLE(WEBASSEMBLY_B3JIT)
++#define simdScalarTypeToB3Type(type) toB3Type(Wasm::simdScalarType(type))
++#else
++#define simdScalarTypeToB3Type(type) B3::Type()
++#endif
++
+ namespace JSC { namespace B3 {
+
+ namespace {
+@@ -454,7 +460,7 @@ public:
+ case VectorExtractLane:
+ VALIDATE(!value->kind().hasExtraBits(), ("At ", *value));
+ VALIDATE(value->numChildren() == 1, ("At ", *value));
+- VALIDATE(value->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value));
++ VALIDATE(value->type() == simdScalarTypeToB3Type(value->asSIMDValue()->simdLane()), ("At ", *value));
+ VALIDATE(value->child(0)->type() == V128, ("At ", *value));
+ break;
+ case VectorReplaceLane:
+@@ -462,7 +468,7 @@ public:
+ VALIDATE(value->numChildren() == 2, ("At ", *value));
+ VALIDATE(value->type() == V128, ("At ", *value));
+ VALIDATE(value->child(0)->type() == V128, ("At ", *value));
+- VALIDATE(value->child(1)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value));
++ VALIDATE(value->child(1)->type() == simdScalarTypeToB3Type(value->asSIMDValue()->simdLane()), ("At ", *value));
+ break;
+ case VectorDupElement:
+ VALIDATE(!value->kind().hasExtraBits(), ("At ", *value));
+@@ -484,7 +490,7 @@ public:
+ VALIDATE(!value->kind().hasExtraBits(), ("At ", *value));
+ VALIDATE(value->numChildren() == 1, ("At ", *value));
+ VALIDATE(value->type() == V128, ("At ", *value));
+- VALIDATE(value->child(0)->type() == toB3Type(Wasm::simdScalarType(value->asSIMDValue()->simdLane())), ("At ", *value));
++ VALIDATE(value->child(0)->type() == simdScalarTypeToB3Type(value->asSIMDValue()->simdLane()), ("At ", *value));
+ break;
+
+ case VectorPopcnt:
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/no-musttail-arm.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/no-musttail-arm.patch
new file mode 100644
index 0000000000..37bc6538c3
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/no-musttail-arm.patch
@@ -0,0 +1,30 @@
+From c50f2277509f2e6f087cda2eaf323eaf569aad8d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Sep 2023 12:42:06 -0700
+Subject: [PATCH] clang/arm: Do not use MUST_TAIL_CALL
+
+This causes clang-17 to crash see [1]
+this code is new in webkit 2.42[2] thats why we do not see the crash in older webkit
+
+[1] https://github.com/llvm/llvm-project/issues/67767
+[2] https://github.com/WebKit/WebKit/commit/4d816460b765acd8aef90ab474615850b91ecc35
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Source/WTF/wtf/Compiler.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Source/WTF/wtf/Compiler.h b/Source/WTF/wtf/Compiler.h
+index 449ca502..daac29d7 100644
+--- a/Source/WTF/wtf/Compiler.h
++++ b/Source/WTF/wtf/Compiler.h
+@@ -321,7 +321,7 @@
+ /* MUST_TAIL_CALL */
+
+ #if !defined(MUST_TAIL_CALL) && defined(__cplusplus) && defined(__has_cpp_attribute)
+-#if __has_cpp_attribute(clang::musttail)
++#if __has_cpp_attribute(clang::musttail) && !defined(__arm__)
+ #define MUST_TAIL_CALL [[clang::musttail]]
+ #endif
+ #endif
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch
new file mode 100644
index 0000000000..0a5720c99e
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch
@@ -0,0 +1,30 @@
+From 7336dfd02c20ec9b2a984e1e42d17201af55c8f5 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Thu, 27 Jul 2023 22:09:06 +0200
+Subject: [PATCH] webkitgtk3: add recipe
+
+Injection a year based on the current date isn't reproducible. Hack this
+to a specific year for now for reproducibilty and to avoid autobuilder failures.
+
+The correct fix would be to use SOURCE_DATE_EPOCH from the environment and
+then this could be submitted upstream, sadly my ruby isn't up to that.
+
+Upstream-Status: Pending [could be reworked]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+---
+ Source/JavaScriptCore/generator/GeneratedFile.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Source/JavaScriptCore/generator/GeneratedFile.rb b/Source/JavaScriptCore/generator/GeneratedFile.rb
+index 6ed2b6e4..86a28286 100644
+--- a/Source/JavaScriptCore/generator/GeneratedFile.rb
++++ b/Source/JavaScriptCore/generator/GeneratedFile.rb
+@@ -25,7 +25,7 @@ require 'date'
+ require 'digest'
+
+ $LICENSE = <<-EOF
+-Copyright (C) #{Date.today.year} Apple Inc. All rights reserved.
++Copyright (C) 2021 Apple Inc. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.0.bb b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.0.bb
new file mode 100644
index 0000000000..34afaed9d8
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.44.0.bb
@@ -0,0 +1,189 @@
+SUMMARY = "WebKit web rendering engine for the GTK+ platform"
+HOMEPAGE = "https://www.webkitgtk.org/"
+BUGTRACKER = "https://bugs.webkit.org/"
+
+LICENSE = "BSD-2-Clause & LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \
+ file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \
+ file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
+ file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
+ "
+
+SRC_URI = "https://www.webkitgtk.org/releases/webkitgtk-${PV}.tar.xz \
+ file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
+ file://reproducibility.patch \
+ file://no-musttail-arm.patch \
+ file://0001-LowLevelInterpreter.cpp-339-21-error-t6-was-not-decl.patch \
+ file://30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch \
+ file://2922af379dc70b4b1a63b01d67179eb431f03ac4.patch \
+ "
+SRC_URI[sha256sum] = "c66530e41ba59b1edba4ee89ef20b2188e273bed0497e95084729e3cfbe30c87"
+
+inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen
+
+S = "${WORKDIR}/webkitgtk-${PV}"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'opengl', '', d)}"
+
+CVE_PRODUCT = "webkitgtk webkitgtk\+"
+
+DEPENDS += " \
+ ruby-native \
+ gperf-native \
+ unifdef-native \
+ cairo \
+ harfbuzz \
+ jpeg \
+ atk \
+ libwebp \
+ gtk+3 \
+ libxslt \
+ libtasn1 \
+ libnotify \
+ gstreamer1.0 \
+ gstreamer1.0-plugins-base \
+ glib-2.0-native \
+ gettext-native \
+ "
+
+PACKAGECONFIG_SOUP ?= "soup3"
+PACKAGECONFIG ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd wayland x11', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl-or-es', '', d)} \
+ enchant \
+ libsecret \
+ ${PACKAGECONFIG_SOUP} \
+ "
+
+PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe wpebackend-fdo wayland-native"
+PACKAGECONFIG[angle] = "-DUSE_ANGLE_WEBGL=ON,-DUSE_ANGLE_WEBGL=OFF"
+PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11 libxcomposite libxdamage libxrender libxt"
+PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue"
+PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2"
+PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2"
+PACKAGECONFIG[jpegxl] = " -DUSE_JPEGXL=ON,-DUSE_JPEGXL=OFF,libjxl"
+PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/egl"
+PACKAGECONFIG[opengl] = "-DENABLE_GRAPHICS_CONTEXT_GL=ON,-DENABLE_GRAPHICS_CONTEXT_GL=OFF,virtual/egl"
+PACKAGECONFIG[opengl-or-es] = "-DUSE_OPENGL_OR_ES=ON,-DUSE_OPENGL_OR_ES=OFF"
+PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret"
+PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen"
+PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2"
+PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg"
+PACKAGECONFIG[systemd] = "-DUSE_SYSTEMD=ON,-DUSE_SYSTEMD=off,systemd"
+PACKAGECONFIG[reduce-size] = "-DCMAKE_BUILD_TYPE=MinSizeRel,-DCMAKE_BUILD_TYPE=Release,,"
+PACKAGECONFIG[lcms] = "-DUSE_LCMS=ON,-DUSE_LCMS=OFF,lcms"
+PACKAGECONFIG[soup2] = "-DUSE_SOUP2=ON,-DUSE_SOUP2=OFF,libsoup-2.4,,,soup3"
+PACKAGECONFIG[soup3] = ",,libsoup,,,soup2"
+PACKAGECONFIG[journald] = "-DENABLE_JOURNALD_LOG=ON,-DENABLE_JOURNALD_LOG=OFF,systemd"
+PACKAGECONFIG[avif] = "-DUSE_AVIF_LOG=ON,-DUSE_AVIF=OFF,libavif"
+PACKAGECONFIG[media-recorder] = "-DENABLE_MEDIA_RECORDER=ON,-DENABLE_MEDIA_RECORDER=OFF,gstreamer1.0-plugins-bad"
+PACKAGECONFIG[gamepad] = "-DENABLE_GAMEPAD=ON,-DENABLE_GAMEPAD=OFF,libmanette"
+PACKAGECONFIG[webrtc] = "-DENABLE_WEB_RTC=ON,-DENABLE_WEB_RTC=OFF"
+PACKAGECONFIG[bubblewrap] = "-DENABLE_BUBBLEWRAP_SANDBOX=ON -DBWRAP_EXECUTABLE=${bindir}/bwrap -DDBUS_PROXY_EXECUTABLE=${bindir}/xdg-dbus-proxy,-DENABLE_BUBBLEWRAP_SANDBOX=OFF,,bubblewrap xdg-dbus-proxy"
+PACKAGECONFIG[backtrace] = "-DUSE_LIBBACKTRACE=ON,-DUSE_LIBBACKTRACE=OFF,libbacktrace"
+
+EXTRA_OECMAKE = " \
+ -DPORT=GTK \
+ -DUSE_GTK4=OFF \
+ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \
+ ${@bb.utils.contains('GIDOCGEN_ENABLED', 'True', '-DENABLE_DOCUMENTATION=ON', '-DENABLE_DOCUMENTATION=OFF', d)} \
+ -DENABLE_MINIBROWSER=ON \
+ -DCMAKE_EXPORT_COMPILE_COMMANDS=OFF \
+ "
+# Unless DEBUG_BUILD is enabled, pass -g1 to massively reduce the size of the
+# debug symbols (4.3GB to 700M at time of writing)
+DEBUG_FLAGS:append = "${@oe.utils.vartrue('DEBUG_BUILD', '', ' -g1', d)}"
+
+# Javascript JIT is not supported on ARC
+EXTRA_OECMAKE:append:arc = " -DENABLE_JIT=OFF "
+# By default 25-bit "medium" calls are used on ARC
+# which is not enough for binaries larger than 32 MiB
+CFLAGS:append:arc = " -mlong-calls"
+CXXFLAGS:append:arc = " -mlong-calls"
+
+# Needed for non-mesa graphics stacks when x11 is disabled
+CXXFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}"
+
+# Javascript JIT is not supported on powerpc
+EXTRA_OECMAKE:append:powerpc = " -DENABLE_JIT=OFF "
+EXTRA_OECMAKE:append:powerpc64 = " -DENABLE_JIT=OFF "
+
+# ARM JIT code does not build on ARMv4/5/6 anymore
+EXTRA_OECMAKE:append:armv4 = " -DENABLE_JIT=OFF "
+EXTRA_OECMAKE:append:armv5 = " -DENABLE_JIT=OFF "
+EXTRA_OECMAKE:append:armv6 = " -DENABLE_JIT=OFF "
+
+# And for armv7* don't enable it for softfp, because after:
+# https://github.com/WebKit/WebKit/commit/a2ec4ef1997d6fafa6ffc607bffb54e76168a918
+# https://bugs.webkit.org/show_bug.cgi?id=242172
+# softfp armv7* fails because WEBASSEMBLY is left enabled by default and JIT gets
+# explicitly disabled causing:
+# http://errors.yoctoproject.org/Errors/Details/734587/
+# PR was sent upstream, but the end result is the same both JIT and WEBASSEMBLY disabled
+# https://github.com/WebKit/WebKit/pull/17447
+EXTRA_OECMAKE:append:armv7a = " -DENABLE_JIT=${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'ON', 'OFF', d)}"
+EXTRA_OECMAKE:append:armv7r = " -DENABLE_JIT=${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'ON', 'OFF', d)}"
+EXTRA_OECMAKE:append:armv7ve = " -DENABLE_JIT=${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'ON', 'OFF', d)}"
+
+EXTRA_OECMAKE:append:mipsarch = " -DUSE_LD_GOLD=OFF "
+EXTRA_OECMAKE:append:powerpc = " -DUSE_LD_GOLD=OFF "
+
+# JIT and gold linker does not work on RISCV
+EXTRA_OECMAKE:append:riscv32 = " -DUSE_LD_GOLD=OFF -DENABLE_JIT=OFF"
+EXTRA_OECMAKE:append:riscv64 = " -DUSE_LD_GOLD=OFF"
+
+# JIT not supported on MIPS either
+EXTRA_OECMAKE:append:mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON "
+
+# JIT not supported on X32
+# An attempt was made to upstream JIT support for x32 in
+# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed as
+# unresolved due to limited X32 adoption.
+EXTRA_OECMAKE:append:x86-x32 = " -DENABLE_JIT=OFF "
+
+SECURITY_CFLAGS:remove:aarch64 = "-fpie"
+SECURITY_CFLAGS:append:aarch64 = " -fPIE"
+
+FILES:${PN} += "${libdir}/webkit2gtk-4.*/injected-bundle/libwebkit2gtkinjectedbundle.so"
+
+RRECOMMENDS:${PN} += "ca-certificates shared-mime-info"
+
+# http://errors.yoctoproject.org/Errors/Details/20370/
+ARM_INSTRUCTION_SET:armv4 = "arm"
+ARM_INSTRUCTION_SET:armv5 = "arm"
+ARM_INSTRUCTION_SET:armv6 = "arm"
+
+# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474
+# https://bugs.webkit.org/show_bug.cgi?id=159880
+# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime.
+# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb).
+ARM_INSTRUCTION_SET:armv7a = "thumb"
+ARM_INSTRUCTION_SET:armv7r = "thumb"
+ARM_INSTRUCTION_SET:armv7ve = "thumb"
+
+# ANGLE requires SSE support as of webkit 2.40.x on 32 bit x86
+COMPATIBLE_HOST:x86 = "${@bb.utils.contains_any('TUNE_FEATURES', 'core2 corei7', '.*', 'null', d)}"
+
+# introspection inside qemu-arm hangs forever on musl/arm builds
+# therefore disable GI_DATA
+GI_DATA_ENABLED:libc-musl:armv7a = "False"
+GI_DATA_ENABLED:libc-musl:armv7ve = "False"
+
+do_install:append() {
+ mv ${D}${bindir}/WebKitWebDriver ${D}${bindir}/WebKitWebDriver3
+}
+
+PACKAGE_PREPROCESS_FUNCS += "src_package_preprocess"
+src_package_preprocess () {
+ # Trim build paths from comments in generated sources to ensure reproducibility
+ sed -i -e "s,${WORKDIR},,g" \
+ ${B}/JavaScriptCore/DerivedSources/*.h \
+ ${B}/JavaScriptCore/DerivedSources/yarr/*.h \
+ ${B}/JavaScriptCore/PrivateHeaders/JavaScriptCore/*.h \
+ ${B}/WebCore/DerivedSources/*.cpp \
+ ${B}/WebKitGTK/DerivedSources/webkit/*.cpp
+}
+
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/1024.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/1024.patch
index 7506d8bb26..12613f8b19 100644
--- a/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/1024.patch
+++ b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/1024.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] SCons 4.2.0 no longer has env_cpp11.has_key() Check env_cpp11
This fixes https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1003022
---
+Upstream-Status: Pending
+
examples/broadcast_server/SConscript | 2 +-
examples/debug_client/SConscript | 2 +-
examples/debug_server/SConscript | 2 +-
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch
index 3245d941b0..68cb645b40 100644
--- a/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch
+++ b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch
@@ -5,6 +5,8 @@ Subject: [PATCH] Fix cmake find boost with version >= 1.71
For some reasons "system;thread;random;unit_test_framework" was seen as a single module, because of the quotes.
---
+Upstream-Status: Pending
+
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/857.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/857.patch
index f221cd6999..401a614dc1 100644
--- a/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/857.patch
+++ b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/857.patch
@@ -8,6 +8,8 @@ Subject: [PATCH] Update SConstruct with new Python3 syntax: - new raise
This should fix FTBFS against new scons 3.1.2
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=947584
---
+Upstream-Status: Pending
+
SConstruct | 45 +++++++++++++++++++++++----------------------
1 file changed, 23 insertions(+), 22 deletions(-)
diff --git a/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.5.bb b/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.5.bb
new file mode 100644
index 0000000000..e10ccd04ea
--- /dev/null
+++ b/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.5.bb
@@ -0,0 +1,19 @@
+SUMMARY = "xdg-dbus-proxy is a filtering proxy for D-Bus connections"
+HOMEPAGE = "https://github.com/flatpak/xdg-dbus-proxy"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = " \
+ glib-2.0 \
+ libxslt-native \
+ docbook-xsl-stylesheets-native \
+"
+
+inherit meson pkgconfig
+
+SRC_URI = "git://github.com/flatpak/xdg-dbus-proxy.git;protocol=https;branch=main"
+
+S = "${WORKDIR}/git"
+SRCREV = "7466c8137fc06f863fde8486521984e43a26cd10"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-meson.build-add-a-hack-for-crosscompile.patch b/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-meson.build-add-a-hack-for-crosscompile.patch
new file mode 100644
index 0000000000..3410a88310
--- /dev/null
+++ b/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-meson.build-add-a-hack-for-crosscompile.patch
@@ -0,0 +1,28 @@
+From 7abb3840ac2870fcfc174fbbd81c4209c838e1a9 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 18 Sep 2023 22:22:17 +0200
+Subject: [PATCH] meson.build: add a hack for cross-compiling
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+
+Upstream-Status: Inappropriate [cross-compile specific]
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 760613a..d339d26 100644
+--- a/meson.build
++++ b/meson.build
+@@ -168,7 +168,7 @@ pkgconfig.generate(
+ 'prefix': get_option('prefix'),
+ 'datarootdir': dataroot_dir,
+ 'datadir': '${prefix}/@0@'.format(get_option('datadir')),
+- 'interfaces_dir': '${datadir}/dbus-1/interfaces/',
++ 'interfaces_dir': '${pc_sysrootdir}${datadir}/dbus-1/interfaces/',
+ },
+ )
+
+--
+2.41.0
+
diff --git a/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.18.1.bb b/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.18.1.bb
new file mode 100644
index 0000000000..0aa8724281
--- /dev/null
+++ b/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.18.1.bb
@@ -0,0 +1,49 @@
+SUMMARY = "A portal frontend service for Flatpak and possibly other desktop containment frameworks."
+HOMEPAGE = "https://github.com/flatpak/xdg-desktop-portal"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+DEPENDS = " \
+ json-glib \
+ glib-2.0 \
+ glib-2.0-native \
+ flatpak \
+ libportal \
+ geoclue \
+ pipewire \
+ fuse3 \
+ xmlto-native \
+"
+
+PORTAL_BACKENDS ?= " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'gtk+3', 'xdg-desktop-portal-gtk', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'gtk4', 'xdg-desktop-portal-gtk', '', d)} \
+"
+
+RDEPENDS:${PN} = "bubblewrap rtkit ${PORTAL_BACKENDS}"
+
+inherit meson pkgconfig python3native features_check
+
+SRC_URI = " \
+ git://github.com/flatpak/xdg-desktop-portal.git;protocol=https;branch=main \
+ file://0001-meson.build-add-a-hack-for-crosscompile.patch \
+"
+
+S = "${WORKDIR}/git"
+SRCREV = "37a6f7c8b8e08b9861f05e172cd4e0d07a832c4d"
+
+FILES:${PN} += "${libdir}/systemd ${datadir}/dbus-1"
+
+EXTRA_OEMESON += " \
+ --cross-file=${WORKDIR}/meson-${PN}.cross \
+ -Ddbus-service-dir=${datadir}/dbus-1/services \
+"
+
+do_write_config:append() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+bwrap = '${bindir}/bwrap'
+EOF
+}
diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch b/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch
index 53c119765a..f107f42dab 100644
--- a/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch
@@ -1,4 +1,4 @@
-From 9ed3b4e628f9254d5c86006fe63c33a1eb02aee5 Mon Sep 17 00:00:00 2001
+From 4d73b85fb1b794c649359bc8a774b0111d36994a Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Tue, 4 Feb 2020 23:39:49 -0800
Subject: [PATCH] nss/nspr: fix for multilib
@@ -6,15 +6,16 @@ Subject: [PATCH] nss/nspr: fix for multilib
Upstream-Status: Pending
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
---
configure.ac | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/configure.ac b/configure.ac
-index b46d97d..39f4318 100644
+index 51621d6..3d23683 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -920,24 +920,24 @@ fi
+@@ -960,24 +960,24 @@ fi
dnl Priority 1: User specifies the path to installation
if test "z$NSPR_FOUND" = "zno" -a "z$with_nspr" != "z" -a "z$with_nspr" != "zyes" ; then
AC_MSG_CHECKING(for nspr library installation in "$with_nspr" folder)
@@ -47,6 +48,3 @@ index b46d97d..39f4318 100644
fi
fi
---
-2.21.0
-
diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch b/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch
index 1451ff5647..3a1531deb1 100644
--- a/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch
@@ -1,4 +1,4 @@
-From c1c980a95d85bcaf8802524d6148783522b300d7 Mon Sep 17 00:00:00 2001
+From 9c861646e034b1c80fafd389279b0a7da90a8ba7 Mon Sep 17 00:00:00 2001
From: Yulong Pei <Yulong.pei@windriver.com>
Date: Wed, 21 Jul 2010 22:33:43 +0800
Subject: [PATCH] change finding path of nss and nspr
@@ -8,20 +8,21 @@ Upstream-Status: Pending
Signed-off-by: Yulong Pei <Yulong.pei@windriver.com>
Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
---
- configure.ac | 20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index 951b3eb..1fdeb0f 100644
+index ce8a278..51621d6 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -866,7 +866,7 @@ MOZILLA_MIN_VERSION="1.4"
+@@ -935,7 +935,7 @@ NSS_PACKAGE=mozilla-nss
NSPR_INCLUDE_MARKER="nspr/nspr.h"
NSPR_LIB_MARKER="libnspr4$shrext"
NSPR_LIBS_LIST="-lnspr4 -lplds4 -lplc4"
-NSS_INCLUDE_MARKER="nss/nss.h"
+NSS_INCLUDE_MARKER="nss3/nss.h"
NSS_LIB_MARKER="libnss3$shrext"
- NSS_LIBS_LIST="-lnss3 -lsmime3"
+ NSS_LIBS_LIST="-lnss3 -lsmime3 -lnssutil3"
diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1/ensure-search-path-non-host.patch b/meta-oe/recipes-support/xmlsec1/xmlsec1/ensure-search-path-non-host.patch
index a5a298af0d..7b07628e5f 100644
--- a/meta-oe/recipes-support/xmlsec1/xmlsec1/ensure-search-path-non-host.patch
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/ensure-search-path-non-host.patch
@@ -1,4 +1,7 @@
-xmlsec1: Fix configure QA error caused by host lookup path
+From c16d384fb64cf53351e150fb9e9b99cc6ba970b2 Mon Sep 17 00:00:00 2001
+From: Anatol Belski <anbelski@linux.microsoft.com>
+Date: Thu, 14 Jan 2021 17:36:23 +0000
+Subject: [PATCH] xmlsec1: Fix configure QA error caused by host lookup path
ERROR: mc:my-sdk:xmlsec1-1.2.30-r0 do_configure: QA Issue: This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities.
@@ -7,9 +10,15 @@ It will eventually arise after the configure QA as the configure script should o
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
---- a/configure.ac.orig 2021-01-13 14:37:42.254991177 +0000
-+++ b/configure.ac 2021-01-13 14:40:56.546269330 +0000
-@@ -250,8 +250,8 @@
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 3d23683..baf27b7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -286,8 +286,8 @@ fi
dnl ==========================================================================
dnl Common installation locations
dnl ==========================================================================
diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1/fix-ltmain.sh.patch b/meta-oe/recipes-support/xmlsec1/xmlsec1/fix-ltmain.sh.patch
index af598fe749..73c6ddb027 100644
--- a/meta-oe/recipes-support/xmlsec1/xmlsec1/fix-ltmain.sh.patch
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/fix-ltmain.sh.patch
@@ -1,4 +1,4 @@
-From 847dc52f5a50e34ee4d6e3dc2c708711747a58ca Mon Sep 17 00:00:00 2001
+From 1b9701faf22f5a17a81a2a2732794d9627499fcb Mon Sep 17 00:00:00 2001
From: Yulong Pei <Yulong.pei@windriver.com>
Date: Thu, 21 Jan 2010 14:11:20 +0800
Subject: [PATCH] force to use our own libtool
@@ -12,10 +12,10 @@ Signed-off-by: Yulong Pei <Yulong.pei@windriver.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ltmain.sh b/ltmain.sh
-index 147d758..a61f16b 100644
+index 1dea62a..bfb9784 100755
--- a/ltmain.sh
+++ b/ltmain.sh
-@@ -6969,7 +6969,7 @@ func_mode_link ()
+@@ -7225,7 +7225,7 @@ func_mode_link ()
dir=$func_resolve_sysroot_result
# We need an absolute path.
case $dir in
diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1/makefile-ptest.patch b/meta-oe/recipes-support/xmlsec1/xmlsec1/makefile-ptest.patch
index d45356924b..26ebce343d 100644
--- a/meta-oe/recipes-support/xmlsec1/xmlsec1/makefile-ptest.patch
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/makefile-ptest.patch
@@ -9,13 +9,12 @@ and it's installed as ptest.
Upstream-Status: Inappropriate [ OE ptest specific ]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
---
examples/Makefile | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/examples/Makefile b/examples/Makefile
-index 89b1d61..c1cbcca 100644
+index 02480c2..cbc2661 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -8,9 +8,17 @@ PROGRAMS = \
@@ -24,12 +23,12 @@ index 89b1d61..c1cbcca 100644
+ifndef CC
CC = gcc
--CFLAGS += -g $(shell xmlsec1-config --cflags) -DUNIX_SOCKETS
+-CFLAGS += -g $(shell xmlsec1-config --cflags) -DUNIX_SOCKETS -Wall -Wextra
-LDLIBS += -g $(shell xmlsec1-config --libs)
+endif
+
-+CFLAGS += -I../include -g $(shell PKG_CONFIG_PATH=.. pkg-config --cflags xmlsec1 ) -DUNIX_SOCKETS
-+LDLIBS += -L../src/.libs -g $(shell PKG_CONFIG_PATH=.. pkg-config --libs xmlsec1 )
++CFLAGS += -I../include -g $(shell PKG_CONFIG_PATH=.. pkg-config --cflags xmlsec1 ) -DUNIX_SOCKETS -Wall -Wextra
++LDLIBS += -L../src/.libs -g $(shell PKG_CONFIG_PATH=.. pkg-config --libs xmlsec1 )
+
+DESTDIR = /usr/share/xmlsec1
+install-ptest:
@@ -38,3 +37,6 @@ index 89b1d61..c1cbcca 100644
all: $(PROGRAMS)
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1/run-ptest b/meta-oe/recipes-support/xmlsec1/xmlsec1/run-ptest
index a203c38f27..afd8c69853 100755
--- a/meta-oe/recipes-support/xmlsec1/xmlsec1/run-ptest
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/run-ptest
@@ -34,8 +34,8 @@ check_return verify-single-key
echo "---------------------------------------------------"
echo "Verifying a signature with keys manager..."
-./verify2 sign1-res.xml rsapub.pem
-./verify2 sign2-res.xml rsapub.pem
+./verify2 sign1-res.xml rsakey.pem
+./verify2 sign2-res.xml rsakey.pem
check_return verify-keys-manager
echo "---------------------------------------------------"
diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1/xmlsec1-examples-allow-build-in-separate-dir.patch b/meta-oe/recipes-support/xmlsec1/xmlsec1/xmlsec1-examples-allow-build-in-separate-dir.patch
index 8b2533ed9e..9e6a6a840f 100644
--- a/meta-oe/recipes-support/xmlsec1/xmlsec1/xmlsec1-examples-allow-build-in-separate-dir.patch
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/xmlsec1-examples-allow-build-in-separate-dir.patch
@@ -6,25 +6,27 @@ Subject: [PATCH] examples: allow build in separate dir
Upstream-Status: Inappropriate [ OE specific ]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
---
examples/Makefile | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/examples/Makefile b/examples/Makefile
-index c1cbcca..3f1bd14 100644
+index cbc2661..e882b61 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -12,8 +12,10 @@ ifndef CC
CC = gcc
endif
--CFLAGS += -I../include -g $(shell PKG_CONFIG_PATH=.. pkg-config --cflags xmlsec1 ) -DUNIX_SOCKETS
--LDLIBS += -L../src/.libs -g $(shell PKG_CONFIG_PATH=.. pkg-config --libs xmlsec1 )
+-CFLAGS += -I../include -g $(shell PKG_CONFIG_PATH=.. pkg-config --cflags xmlsec1 ) -DUNIX_SOCKETS -Wall -Wextra
+-LDLIBS += -L../src/.libs -g $(shell PKG_CONFIG_PATH=.. pkg-config --libs xmlsec1 )
+top_srcdir = ..
+top_builddir = ..
-+CFLAGS += -I$(top_srcdir)/include -g $(shell PKG_CONFIG_PATH=$(top_srcdir) pkg-config --cflags xmlsec1 ) -DUNIX_SOCKETS
++CFLAGS += -I$(top_srcdir)/include -g $(shell PKG_CONFIG_PATH=$(top_srcdir) pkg-config --cflags xmlsec1 ) -DUNIX_SOCKETS -Wall -Wextra
+LDLIBS += -L$(top_builddir)/src/.libs -g $(shell PKG_CONFIG_PATH=$(top_srcdir) pkg-config --libs xmlsec1 )
DESTDIR = /usr/share/xmlsec1
install-ptest:
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.34.bb b/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.34.bb
deleted file mode 100644
index 3e8772ed69..0000000000
--- a/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.34.bb
+++ /dev/null
@@ -1,67 +0,0 @@
-SUMMARY = "XML Security Library is a C library based on LibXML2"
-DESCRIPTION = "\
- XML Security Library is a C library based on \
- LibXML2 and OpenSSL. The library was created with a goal to support major \
- XML security standards "XML Digital Signature" and "XML Encryption". \
- "
-HOMEPAGE = "http://www.aleksey.com/xmlsec/"
-DEPENDS = "libtool libxml2 libxslt zlib"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=352791d62092ea8104f085042de7f4d0"
-
-SECTION = "libs"
-
-SRC_URI = "http://www.aleksey.com/xmlsec/download/${BP}.tar.gz \
- file://fix-ltmain.sh.patch \
- file://change-finding-path-of-nss.patch \
- file://makefile-ptest.patch \
- file://xmlsec1-examples-allow-build-in-separate-dir.patch \
- file://0001-nss-nspr-fix-for-multilib.patch \
- file://run-ptest \
- file://ensure-search-path-non-host.patch \
- "
-
-SRC_URI[sha256sum] = "52ced4943f35bd7d0818a38298c1528ca4ac8a54440fd71134a07d2d1370a262"
-
-inherit autotools-brokensep ptest pkgconfig
-
-#CFLAGS += "-I${STAGING_INCDIR}/nss3"
-#CPPFLAGS += "-I${STAGING_INCDIR}/nss3"
-
-PACKAGECONFIG ??= "gnutls libgcrypt nss openssl des"
-PACKAGECONFIG[gnutls] = ",,gnutls"
-PACKAGECONFIG[libgcrypt] = ",,libgcrypt"
-PACKAGECONFIG[nss] = "--with-nss=${STAGING_DIR_HOST} --with-nspr=${STAGING_DIR_HOST},--with-nss=no --with-nspr=no,nss nspr"
-PACKAGECONFIG[openssl] = ",,openssl"
-PACKAGECONFIG[des] = ",--disable-des,,"
-
-# these can be dynamically loaded with xmlSecCryptoDLLoadLibrary()
-FILES_SOLIBSDEV = "${libdir}/libxmlsec1.so"
-FILES:${PN} += "${libdir}/libxmlsec1-*.so"
-INSANE_SKIP:${PN} = "dev-so"
-
-FILES:${PN}-dev += "${libdir}/xmlsec1Conf.sh"
-FILES:${PN}-dbg += "${PTEST_PATH}/.debug/*"
-
-RDEPENDS:${PN}-ptest += "${PN}-dev"
-INSANE_SKIP:${PN}-ptest += "dev-deps"
-
-PTEST_EXTRA_ARGS = "top_srcdir=${S} top_builddir=${B}"
-
-do_compile_ptest () {
- oe_runmake -C ${S}/examples ${PTEST_EXTRA_ARGS} all
-}
-
-do_install:append() {
- for i in ${bindir}/xmlsec1-config ${libdir}/xmlsec1Conf.sh \
- ${libdir}/pkgconfig/xmlsec1-openssl.pc; do
- sed -i -e "s@${RECIPE_SYSROOT}@@g" ${D}$i
- done
-}
-
-do_install_ptest () {
- oe_runmake -C ${S}/examples DESTDIR=${D}${PTEST_PATH} ${PTEST_EXTRA_ARGS} install-ptest
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1_1.3.3.bb b/meta-oe/recipes-support/xmlsec1/xmlsec1_1.3.3.bb
new file mode 100644
index 0000000000..7a5f01e4fd
--- /dev/null
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1_1.3.3.bb
@@ -0,0 +1,67 @@
+SUMMARY = "XML Security Library is a C library based on LibXML2"
+DESCRIPTION = "\
+ XML Security Library is a C library based on \
+ LibXML2 and OpenSSL. The library was created with a goal to support major \
+ XML security standards "XML Digital Signature" and "XML Encryption". \
+ "
+HOMEPAGE = "http://www.aleksey.com/xmlsec/"
+DEPENDS = "libtool libxml2 libxslt zlib"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=352791d62092ea8104f085042de7f4d0"
+
+SECTION = "libs"
+
+SRC_URI = "http://www.aleksey.com/xmlsec/download/${BP}.tar.gz \
+ file://fix-ltmain.sh.patch \
+ file://change-finding-path-of-nss.patch \
+ file://makefile-ptest.patch \
+ file://xmlsec1-examples-allow-build-in-separate-dir.patch \
+ file://0001-nss-nspr-fix-for-multilib.patch \
+ file://run-ptest \
+ file://ensure-search-path-non-host.patch \
+ "
+
+SRC_URI[sha256sum] = "ab5b9a9ffd6960f46f7466d9d91f174ec37e8c31989237ba6b9eacdd816464f2"
+
+inherit autotools-brokensep ptest pkgconfig
+
+#CFLAGS += "-I${STAGING_INCDIR}/nss3"
+#CPPFLAGS += "-I${STAGING_INCDIR}/nss3"
+
+PACKAGECONFIG ??= "gnutls libgcrypt nss openssl des"
+PACKAGECONFIG[gnutls] = ",,gnutls"
+PACKAGECONFIG[libgcrypt] = ",,libgcrypt"
+PACKAGECONFIG[nss] = "--with-nss=${STAGING_DIR_HOST} --with-nspr=${STAGING_DIR_HOST},--with-nss=no --with-nspr=no,nss nspr"
+PACKAGECONFIG[openssl] = ",,openssl"
+PACKAGECONFIG[des] = ",--disable-des,,"
+
+# these can be dynamically loaded with xmlSecCryptoDLLoadLibrary()
+FILES_SOLIBSDEV = "${libdir}/libxmlsec1.so"
+FILES:${PN} += "${libdir}/libxmlsec1-*.so"
+INSANE_SKIP:${PN} = "dev-so"
+
+FILES:${PN}-dev += "${libdir}/xmlsec1Conf.sh"
+FILES:${PN}-dbg += "${PTEST_PATH}/.debug/*"
+
+RDEPENDS:${PN}-ptest += "${PN}-dev"
+INSANE_SKIP:${PN}-ptest += "dev-deps"
+
+PTEST_EXTRA_ARGS = "top_srcdir=${S} top_builddir=${B}"
+
+do_compile_ptest () {
+ oe_runmake -C ${S}/examples ${PTEST_EXTRA_ARGS} all
+}
+
+do_install:append() {
+ for i in ${bindir}/xmlsec1-config ${libdir}/xmlsec1Conf.sh \
+ ${libdir}/pkgconfig/xmlsec1-openssl.pc; do
+ sed -i -e "s@${RECIPE_SYSROOT}@@g" ${D}$i
+ done
+}
+
+do_install_ptest () {
+ oe_runmake -C ${S}/examples DESTDIR=${D}${PTEST_PATH} ${PTEST_EXTRA_ARGS} install-ptest
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/xmlstarlet/files/0001-Fix-hash_key_put-signature.patch b/meta-oe/recipes-support/xmlstarlet/files/0001-Fix-hash_key_put-signature.patch
new file mode 100644
index 0000000000..2a766dbb87
--- /dev/null
+++ b/meta-oe/recipes-support/xmlstarlet/files/0001-Fix-hash_key_put-signature.patch
@@ -0,0 +1,33 @@
+From 64cb138aaaafc87c8462885d502c9323be86a003 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 18 Jan 2023 14:50:08 -0800
+Subject: [PATCH] Fix hash_key_put() signature
+
+Fixes
+
+../xmlstarlet-1.6.1/src/xml_elem.c:271:27: error: incompatible function pointer types passing 'void (void *, void *, xmlChar *)' (aka 'void (void *, void *, unsigned char *)') to parameter of type 'xmlHashScanner' (aka 'void (*)(void *, void *, const unsigned char *)') [-Wincompatible-function-pointer-types]
+ xmlHashScan(uniq, hash_key_put, &lines);
+ ^~~~~~~~~~~~
+
+Upstream-Status: Submitted [https://sourceforge.net/p/xmlstar/code/merge-requests/6/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/xml_elem.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/xml_elem.c b/src/xml_elem.c
+index 024e62a..a73038a 100644
+--- a/src/xml_elem.c
++++ b/src/xml_elem.c
+@@ -186,7 +186,7 @@ typedef struct {
+ * put @name into @data->array[@data->offset]
+ */
+ static void
+-hash_key_put(void *payload, void *data, xmlChar *name)
++hash_key_put(void *payload, void *data, const xmlChar *name)
+ {
+ ArrayDest *dest = data;
+ dest->array[dest->offset++] = name;
+--
+2.39.1
+
diff --git a/meta-oe/recipes-support/xmlstarlet/files/0001-Make-xmlError-struct-constant.patch b/meta-oe/recipes-support/xmlstarlet/files/0001-Make-xmlError-struct-constant.patch
new file mode 100644
index 0000000000..a9d98db69c
--- /dev/null
+++ b/meta-oe/recipes-support/xmlstarlet/files/0001-Make-xmlError-struct-constant.patch
@@ -0,0 +1,45 @@
+From f7a5ebc3a673b246a64c9a664df304c1520a3951 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 7 Mar 2024 12:35:17 -0800
+Subject: [PATCH] Make xmlError struct constant
+
+In libxml2 commit v2.12.0~14 the API changed so that
+xmlGetLastError() returns pointer to a constant xmlError struct.
+Reflect this change in our code.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/xml.c | 2 +-
+ src/xmlstar.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/xml.c b/src/xml.c
+index cf47cc2..e6f19c1 100644
+--- a/src/xml.c
++++ b/src/xml.c
+@@ -104,7 +104,7 @@ void reportGenericError(void* ctx, const char * msg, ...) {
+ /* by default all errors are reported */
+ static ErrorInfo errorInfo = { NULL, NULL, VERBOSE, CONTINUE };
+
+-void reportError(void *ptr, xmlErrorPtr error)
++void reportError(void *ptr, const xmlError *error)
+ {
+ ErrorInfo *errorInfo = (ErrorInfo*) ptr;
+ assert(errorInfo);
+diff --git a/src/xmlstar.h b/src/xmlstar.h
+index 3e1eed3..7e41ac4 100644
+--- a/src/xmlstar.h
++++ b/src/xmlstar.h
+@@ -32,7 +32,7 @@ typedef struct _errorInfo {
+ ErrorStop stop;
+ } ErrorInfo;
+
+-void reportError(void *ptr, xmlErrorPtr error);
++void reportError(void *ptr, const xmlError* error);
+ void suppressErrors(void);
+
+ typedef struct _gOptions {
+--
+2.44.0
+
diff --git a/meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch b/meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch
index e55f4f3b13..7e13110a3b 100644
--- a/meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch
+++ b/meta-oe/recipes-support/xmlstarlet/files/configure.ac.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
configure.ac: don't use xml-config if --with-libxml-prefix is specified to configure
Same behavior for xslt-config.
diff --git a/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb b/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb
index e28fd61a03..61eeaaa095 100644
--- a/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb
+++ b/meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb
@@ -14,8 +14,9 @@ DEPENDS = "libxml2 libxslt"
SRC_URI = "${SOURCEFORGE_MIRROR}/xmlstar/${BP}.tar.gz \
file://configure.ac.patch \
- file://0001-usage2c.awk-fix-wrong-basename-regexp.patch"
-SRC_URI[md5sum] = "f3c5dfa3b1a2ee06cd57c255cc8b70a0"
+ file://0001-usage2c.awk-fix-wrong-basename-regexp.patch \
+ file://0001-Make-xmlError-struct-constant.patch \
+ file://0001-Fix-hash_key_put-signature.patch"
SRC_URI[sha256sum] = "15d838c4f3375332fd95554619179b69e4ec91418a3a5296e7c631b7ed19e7ca"
inherit autotools
diff --git a/meta-oe/recipes-support/xrdp/xrdp/0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch b/meta-oe/recipes-support/xrdp/xrdp/0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch
index 5e7fca02a5..05803266cb 100644
--- a/meta-oe/recipes-support/xrdp/xrdp/0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch
+++ b/meta-oe/recipes-support/xrdp/xrdp/0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch
@@ -6,6 +6,8 @@ Subject: [PATCH] Added req_distinguished_name in /etc/xrdp/openssl.conf,
Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
keygen/openssl.conf | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch b/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch
index 82b2790856..e8b4ffa6bf 100644
--- a/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch
+++ b/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch
@@ -5,6 +5,8 @@ Fix the compile error:
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
xrdp/Makefile.am | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.7.0.bb b/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.7.0.bb
deleted file mode 100644
index d3984abe8b..0000000000
--- a/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.7.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "yaml-cpp parser and emitter library"
-DESCRIPTION = "yaml-cpp is a YAML parser and emitter in C++ matching the YAML 1.2 spec."
-HOMEPAGE = "https://github.com/jbeder/yaml-cpp"
-SECTION = "devel"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6a8aaf0595c2efc1a9c2e0913e9c1a2c"
-
-# yaml-cpp releases are stored as archive files in github.
-# download the exact revision of release
-SRC_URI = "git://github.com/jbeder/yaml-cpp.git;branch=master;protocol=https"
-SRCREV = "0579ae3d976091d7d664aa9d2527e0d0cff25763"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE = "-DYAML_CPP_BUILD_TESTS=OFF -DYAML_BUILD_SHARED_LIBS=ON -DYAML_CPP_BUILD_TOOLS=OFF"
diff --git a/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.8.0.bb b/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.8.0.bb
new file mode 100644
index 0000000000..44ac0687a7
--- /dev/null
+++ b/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.8.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "yaml-cpp parser and emitter library"
+DESCRIPTION = "yaml-cpp is a YAML parser and emitter in C++ matching the YAML 1.2 spec."
+HOMEPAGE = "https://github.com/jbeder/yaml-cpp"
+SECTION = "devel"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6a8aaf0595c2efc1a9c2e0913e9c1a2c"
+
+# yaml-cpp releases are stored as archive files in github.
+# download the exact revision of release
+SRC_URI = "git://github.com/jbeder/yaml-cpp.git;branch=master;protocol=https"
+SRCREV = "f7320141120f720aecc4c32be25586e7da9eb978"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DYAML_CPP_BUILD_TESTS=OFF -DYAML_BUILD_SHARED_LIBS=ON -DYAML_CPP_BUILD_TOOLS=OFF"
diff --git a/meta-oe/recipes-support/zbar/zbar/0001-qt-Create-subdir-in-Makefile.patch b/meta-oe/recipes-support/zbar/zbar/0001-qt-Create-subdir-in-Makefile.patch
index d7ca152074..3d8c07f02b 100644
--- a/meta-oe/recipes-support/zbar/zbar/0001-qt-Create-subdir-in-Makefile.patch
+++ b/meta-oe/recipes-support/zbar/zbar/0001-qt-Create-subdir-in-Makefile.patch
@@ -17,6 +17,8 @@ make: *** [Makefile:2459: qt/moc_QZBar.cpp] Error 1
Signed-off-by: Daniel Gomez <dagmcr@gmail.com>
---
+Upstream-Status: Pending
+
qt/Makefile.am.inc | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-support/zbar/zbar/0002-zbarcam-Create-subdir-in-Makefile.patch b/meta-oe/recipes-support/zbar/zbar/0002-zbarcam-Create-subdir-in-Makefile.patch
index a1c27b8b43..9030ed88f2 100644
--- a/meta-oe/recipes-support/zbar/zbar/0002-zbarcam-Create-subdir-in-Makefile.patch
+++ b/meta-oe/recipes-support/zbar/zbar/0002-zbarcam-Create-subdir-in-Makefile.patch
@@ -20,6 +20,8 @@ make: *** [Makefile:2438: zbarcam/moc_zbarcam_qt.h] Error 1
Signed-off-by: Daniel Gomez <dagmcr@gmail.com>
---
+Upstream-Status: Pending
+
zbarcam/Makefile.am.inc | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-oe/recipes-support/zbar/zbar_git.bb b/meta-oe/recipes-support/zbar/zbar_git.bb
index 3be1f27a6f..975779cd18 100644
--- a/meta-oe/recipes-support/zbar/zbar_git.bb
+++ b/meta-oe/recipes-support/zbar/zbar_git.bb
@@ -16,7 +16,7 @@ SRC_URI = "git://github.com/mchehab/zbar.git;branch=master;protocol=https \
SRCREV = "89e7900d85dd54ef351a7ed582aec6a5a5d7fa37"
S = "${WORKDIR}/git"
-PV = "0.23.1+git${SRCPV}"
+PV = "0.23.1+git"
DEPENDS += "xmlto-native"
diff --git a/meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb b/meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb
deleted file mode 100644
index 0baea5032a..0000000000
--- a/meta-oe/recipes-support/zchunk/zchunk_1.2.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "A file format designed for highly efficient deltas while maintaining good compression"
-AUTHOR = "Jonathan Dieter"
-
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=daf6e68539f564601a5a5869c31e5242"
-
-SRC_URI = "git://github.com/zchunk/zchunk.git;protocol=https;branch=main"
-
-SRCREV = "dd6a30a1e4e8b738b0cafc682f3c00e7706134e5"
-S = "${WORKDIR}/git"
-
-DEPENDS = "\
- curl \
- zstd \
- "
-
-DEPENDS:append:libc-musl = " argp-standalone"
-LDFLAGS:append:libc-musl = " -largp"
-
-inherit meson pkgconfig
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/zchunk/zchunk_1.4.0.bb b/meta-oe/recipes-support/zchunk/zchunk_1.4.0.bb
new file mode 100644
index 0000000000..0c8a9c7a5f
--- /dev/null
+++ b/meta-oe/recipes-support/zchunk/zchunk_1.4.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "A file format designed for highly efficient deltas while maintaining good compression"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=daf6e68539f564601a5a5869c31e5242"
+
+SRC_URI = "git://github.com/zchunk/zchunk.git;protocol=https;branch=main"
+
+SRCREV = "4dd91d31157ede4a1b092721d944ae2fdd161cd9"
+S = "${WORKDIR}/git"
+
+DEPENDS = "zstd"
+DEPENDS:append:libc-musl = " argp-standalone"
+
+inherit meson pkgconfig lib_package
+
+PACKAGECONFIG ??= "openssl zckdl"
+
+# zckdl gets packaged into zchunk-bin
+PACKAGECONFIG[zckdl] = "-Dwith-curl=enabled,-Dwith-curl=disabled,curl"
+# Use OpenSSL primitives for SHA
+PACKAGECONFIG[openssl] = "-Dwith-openssl=enabled,-Dwith-openssl=disabled,openssl"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-test/bats/bats_1.11.0.bb b/meta-oe/recipes-test/bats/bats_1.11.0.bb
new file mode 100644
index 0000000000..f0615f7b79
--- /dev/null
+++ b/meta-oe/recipes-test/bats/bats_1.11.0.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Bash Automated Testing System"
+DESCRIPTION = "Bats is a TAP-compliant testing framework for Bash. It \
+provides a simple way to verify that the UNIX programs you write behave as expected."
+HOMEPAGE = "https://github.com/bats-core/bats-core"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=2970203aedf9e829edb96a137a4fe81b"
+
+SRC_URI = "\
+ git://github.com/bats-core/bats-core.git;branch=master;protocol=https \
+ "
+
+# v1.10.0
+SRCREV = "7531b575bb81487553553aecb654c41b237ae96c"
+
+S = "${WORKDIR}/git"
+
+# Numerous scripts assume ${baselib} == lib, which is not true.
+#
+do_configure:prepend() {
+ for f in ${S}/libexec/bats-core/* ${S}/lib/bats-core/* ; do
+ sed -i 's:\$BATS_ROOT/lib/:\$BATS_ROOT/${baselib}/:g' $f
+ done
+}
+
+do_install() {
+ # Just a bunch of bash scripts to install
+ ${S}/install.sh ${D}${prefix} ${baselib}
+}
+
+RDEPENDS:${PN} = "bash"
+FILES:${PN} += "${libdir}/bats-core/*"
+
+PACKAGECONFIG ??= "pretty"
+PACKAGECONFIG[pretty] = ",,,ncurses"
diff --git a/meta-oe/recipes-test/bats/bats_1.8.0.bb b/meta-oe/recipes-test/bats/bats_1.8.0.bb
deleted file mode 100644
index 4b90dcc579..0000000000
--- a/meta-oe/recipes-test/bats/bats_1.8.0.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Bash Automated Testing System"
-DESCRIPTION = "Bats is a TAP-compliant testing framework for Bash. It \
-provides a simple way to verify that the UNIX programs you write behave as expected."
-AUTHOR = "Sam Stephenson & bats-core organization"
-HOMEPAGE = "https://github.com/bats-core/bats-core"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=2970203aedf9e829edb96a137a4fe81b"
-
-SRC_URI = "\
- git://github.com/bats-core/bats-core.git;branch=master;protocol=https \
- "
-
-# v1.7.0
-SRCREV = "e9b286bb39ad7b0cb7b7d2e819d44d1aff387522"
-
-S = "${WORKDIR}/git"
-
-do_configure:prepend() {
- sed -i 's:\$BATS_ROOT/lib:\$BATS_ROOT/${baselib}:g' ${S}/libexec/bats-core/bats
- sed -i 's:\$BATS_ROOT/lib:\$BATS_ROOT/${baselib}:g' ${S}/libexec/bats-core/bats-exec-file
- sed -i 's:\$BATS_ROOT/lib:\$BATS_ROOT/${baselib}:g' ${S}/libexec/bats-core/bats-exec-test
-}
-
-do_install() {
- # Just a bunch of bash scripts to install
- ${S}/install.sh ${D}${prefix} ${baselib}
-}
-
-RDEPENDS:${PN} = "bash"
-FILES:${PN} += "${libdir}/bats-core/*"
-
-PACKAGECONFIG ??= "pretty"
-PACKAGECONFIG[pretty] = ",,,ncurses"
diff --git a/meta-oe/recipes-test/catch2/catch2_2.13.10.bb b/meta-oe/recipes-test/catch2/catch2_2.13.10.bb
new file mode 100644
index 0000000000..8512a0f30a
--- /dev/null
+++ b/meta-oe/recipes-test/catch2/catch2_2.13.10.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "A modern, C++-native, header-only, test framework for unit-tests, \
+TDD and BDD - using C++11, C++14, C++17 and later."
+HOMEPAGE = "https://github.com/catchorg/Catch2"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+
+SRC_URI = "git://github.com/catchorg/Catch2.git;branch=v2.x;protocol=https"
+SRCREV = "182c910b4b63ff587a3440e08f84f70497e49a81"
+
+S = "${WORKDIR}/git"
+
+inherit cmake python3native
+
+do_install:append() {
+ rm ${D}${datadir}/Catch2/lldbinit
+ rm ${D}${datadir}/Catch2/gdbinit
+ rmdir ${D}${datadir}/Catch2/
+}
+# Header-only library
+RDEPENDS:${PN}-dev = ""
+RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/meta-oe/recipes-test/catch2/catch2_2.13.7.bb b/meta-oe/recipes-test/catch2/catch2_2.13.7.bb
deleted file mode 100644
index ed50f659d3..0000000000
--- a/meta-oe/recipes-test/catch2/catch2_2.13.7.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "A modern, C++-native, header-only, test framework for unit-tests, \
-TDD and BDD - using C++11, C++14, C++17 and later."
-AUTHOR = "Phil Nash, Martin Horenovsky and others"
-HOMEPAGE = "https://github.com/catchorg/Catch2"
-LICENSE = "BSL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
-
-SRC_URI = "git://github.com/catchorg/Catch2.git;branch=v2.x;protocol=https"
-SRCREV = "c4e3767e265808590986d5db6ca1b5532a7f3d13"
-
-S = "${WORKDIR}/git"
-
-inherit cmake python3native
-
-do_install:append() {
- rm ${D}${datadir}/Catch2/lldbinit
- rm ${D}${datadir}/Catch2/gdbinit
- rmdir ${D}${datadir}/Catch2/
-}
-# Header-only library
-RDEPENDS:${PN}-dev = ""
-RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb b/meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb
deleted file mode 100644
index 554d582a57..0000000000
--- a/meta-oe/recipes-test/cmocka/cmocka_1.1.5.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-DESCRIPTION = "cmocka is an elegant unit testing framework for C with support for mock \
-objects. It only requires the standard C library, works on a range of computing \
-platforms (including embedded) and with different compilers."
-HOMEPAGE = "https://cmocka.org/"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRCREV = "a4fc3dd7705c277e3a57432895e9852ea105dac9"
-PV .= "+git${SRCPV}"
-SRC_URI = "git://git.cryptomilk.org/projects/cmocka.git;protocol=https;branch=master \
- file://run-ptest \
- "
-
-S = "${WORKDIR}/git"
-
-inherit cmake ptest
-
-EXTRA_OECMAKE += "${@bb.utils.contains('PTEST_ENABLED', '1', '-DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=ON', '', d)}"
-# Use -Wl,wrap linker flag, which does not work with LTO
-LTO = ""
-
-do_install:append () {
- install -d ${D}${datadir}/${BPN}/example
- install -d ${D}${datadir}/${BPN}/example/mock/chef_wrap
- install -d ${D}${datadir}/${BPN}/example/mock/uptime
-
- install -m 0755 ${B}/example/*_test ${D}/${datadir}/${BPN}/example
- install -m 0755 ${B}/example/mock/chef_wrap/waiter_test_wrap ${D}/${datadir}/${BPN}/example/mock/chef_wrap
- install -m 0755 ${B}/example/mock/uptime/uptime ${D}/${datadir}/${BPN}/example/mock/uptime
- install -m 0755 ${B}/example/mock/uptime/test_uptime ${D}/${datadir}/${BPN}/example/mock/uptime
- install -m 0644 ${B}/example/mock/uptime/libproc_uptime.so ${D}/${datadir}/${BPN}/example/mock/libproc_uptime.so
-}
-
-do_install_ptest () {
- install -d ${D}${PTEST_PATH}/tests
- install -m 0755 ${B}/tests/test_* ${D}${PTEST_PATH}/tests
-}
-
-PACKAGE_BEFORE_PN += "${PN}-examples"
-
-FILES:${PN}-examples = "${datadir}/${BPN}/example"
-INSANE_SKIP:${PN}-examples = "libdir"
diff --git a/meta-oe/recipes-test/cmocka/cmocka_1.1.7.bb b/meta-oe/recipes-test/cmocka/cmocka_1.1.7.bb
new file mode 100644
index 0000000000..6c94e9e275
--- /dev/null
+++ b/meta-oe/recipes-test/cmocka/cmocka_1.1.7.bb
@@ -0,0 +1,43 @@
+DESCRIPTION = "cmocka is an elegant unit testing framework for C with support for mock \
+objects. It only requires the standard C library, works on a range of computing \
+platforms (including embedded) and with different compilers."
+HOMEPAGE = "https://cmocka.org/"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRCREV = "a01cc69ee9536f90e57c61a198f2d1944d3d4313"
+PV .= "+git"
+SRC_URI = "git://git.cryptomilk.org/projects/cmocka.git;protocol=https;branch=stable-1.1 \
+ file://0001-include-Check-for-previous-declaration-of-uintptr_t.patch \
+ file://run-ptest \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit cmake ptest
+
+EXTRA_OECMAKE += "${@bb.utils.contains('PTEST_ENABLED', '1', '-DCMAKE_BUILD_TYPE=Debug -DUNIT_TESTING=ON', '', d)}"
+# Use -Wl,wrap linker flag, which does not work with LTO
+LTO = ""
+
+do_install:append () {
+ install -d ${D}${libdir}/${BPN}/example
+ install -d ${D}${libdir}/${BPN}/example/mock/chef_wrap
+ install -d ${D}${libdir}/${BPN}/example/mock/uptime
+
+ install -m 0755 ${B}/example/*_test ${D}/${libdir}/${BPN}/example
+ install -m 0755 ${B}/example/mock/chef_wrap/waiter_test_wrap ${D}/${libdir}/${BPN}/example/mock/chef_wrap
+ install -m 0755 ${B}/example/mock/uptime/uptime ${D}/${libdir}/${BPN}/example/mock/uptime
+ install -m 0755 ${B}/example/mock/uptime/test_uptime ${D}/${libdir}/${BPN}/example/mock/uptime
+ install -m 0644 ${B}/example/mock/uptime/libproc_uptime.so ${D}/${libdir}/${BPN}/example/mock/libproc_uptime.so
+}
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/tests
+ install -m 0755 ${B}/tests/test_* ${D}${PTEST_PATH}/tests
+}
+
+PACKAGE_BEFORE_PN += "${PN}-examples"
+
+FILES:${PN}-examples = "${libdir}/${BPN}/example"
diff --git a/meta-oe/recipes-test/cmocka/files/0001-include-Check-for-previous-declaration-of-uintptr_t.patch b/meta-oe/recipes-test/cmocka/files/0001-include-Check-for-previous-declaration-of-uintptr_t.patch
new file mode 100644
index 0000000000..65d30ea993
--- /dev/null
+++ b/meta-oe/recipes-test/cmocka/files/0001-include-Check-for-previous-declaration-of-uintptr_t.patch
@@ -0,0 +1,43 @@
+From a54e035f802e79e3292d8ad39a14bd7c060eb7b1 Mon Sep 17 00:00:00 2001
+From: Breno Leitao <breno.leitao@gmail.com>
+Date: Tue, 21 Mar 2023 21:58:28 -0700
+Subject: [PATCH] include: Check for previous declaration of uintptr_t
+
+Adding a extra check before declaring uintptr_t. Currently musl uses
+macro __DEFINED_uintptr_t once it defines uintptr_t type. Checking
+this macro before defining it, and, defining it when uintptr_t is
+defined.
+
+Taken from Alpine
+
+Upstream-Status: Pending
+Signed-off-by: Breno Leitao <breno.leitao@gmail.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/cmocka.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/include/cmocka.h b/include/cmocka.h
+index a21d965..f540793 100644
+--- a/include/cmocka.h
++++ b/include/cmocka.h
+@@ -121,7 +121,7 @@ typedef uintmax_t LargestIntegralType;
+ ((LargestIntegralType)(value))
+
+ /* Smallest integral type capable of holding a pointer. */
+-#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(HAVE_UINTPTR_T)
++#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(HAVE_UINTPTR_T) && !defined(__DEFINED_uintptr_t)
+ # if defined(_WIN32)
+ /* WIN32 is an ILP32 platform */
+ typedef unsigned int uintptr_t;
+@@ -147,6 +147,7 @@ typedef uintmax_t LargestIntegralType;
+
+ # define _UINTPTR_T
+ # define _UINTPTR_T_DEFINED
++# define __DEFINED_uintptr_t
+ #endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */
+
+ /* Perform an unsigned cast to uintptr_t. */
+--
+2.40.0
+
diff --git a/meta-oe/recipes-test/cpputest/cpputest_4.0.bb b/meta-oe/recipes-test/cpputest/cpputest_4.0.bb
index 921143a74c..5536cf07b6 100644
--- a/meta-oe/recipes-test/cpputest/cpputest_4.0.bb
+++ b/meta-oe/recipes-test/cpputest/cpputest_4.0.bb
@@ -15,7 +15,11 @@ inherit cmake
EXTRA_OECMAKE = "-DLONGLONG=ON \
-DC++11=ON \
-DTESTS=OFF \
- -DEXTENSIONS=OFF \
"
+DEV_PKG_DEPENDENCY = ""
+
FILES:${PN}-dev += "${libdir}/CppUTest/cmake/*"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[extensions] = "-DEXTENSIONS=ON,-DEXTENSIONS=OFF"
diff --git a/meta-oe/recipes-test/cukinia/cukinia_0.6.0.bb b/meta-oe/recipes-test/cukinia/cukinia_0.6.0.bb
deleted file mode 100644
index 229aee6d7e..0000000000
--- a/meta-oe/recipes-test/cukinia/cukinia_0.6.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Linux firmware validation framework"
-DESCRIPTION = "Cukinia is designed to help Linux-based embedded firmware \
-developers run simple system-level validation tests on their firmware."
-HOMEPAGE = "https://github.com/savoirfairelinux/cukinia"
-LICENSE = "GPL-3.0-only & Apache-2.0"
-
-LIC_FILES_CHKSUM = "file://LICENSE.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
- file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
-
-SRC_URI = "git://github.com/savoirfairelinux/cukinia.git;protocol=https;branch=master"
-
-SRCREV = "3fd9db9838ef3de20965aa5f7657c363b679a995"
-
-S = "${WORKDIR}/git"
-
-do_install () {
- install -d ${D}${sbindir}
- install -m 0755 ${S}/cukinia ${D}${sbindir}
-}
diff --git a/meta-oe/recipes-test/cukinia/cukinia_0.6.2.bb b/meta-oe/recipes-test/cukinia/cukinia_0.6.2.bb
new file mode 100644
index 0000000000..1bcfb0a9bf
--- /dev/null
+++ b/meta-oe/recipes-test/cukinia/cukinia_0.6.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Linux firmware validation framework"
+DESCRIPTION = "Cukinia is designed to help Linux-based embedded firmware \
+developers run simple system-level validation tests on their firmware."
+HOMEPAGE = "https://github.com/savoirfairelinux/cukinia"
+LICENSE = "GPL-3.0-only | Apache-2.0"
+
+LIC_FILES_CHKSUM = "file://LICENSE.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+SRC_URI = "git://github.com/savoirfairelinux/cukinia.git;protocol=https;branch=master"
+
+SRCREV = "a290f2dbb813ce12ba407962655a5d8b57322221"
+
+S = "${WORKDIR}/git"
+
+RRECOMMENDS:${PN} = "libgpiod-tools"
+
+do_install () {
+ install -d ${D}${sbindir}
+ install -m 0755 ${S}/cukinia ${D}${sbindir}
+}
diff --git a/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb b/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb
index ef1b6e537b..c5dfff2259 100644
--- a/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb
+++ b/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb
@@ -10,8 +10,6 @@ SRC_URI[sha256sum] = "1c154fef91c65dbf1cd4519af7ade70a61d85a923b6e0c0b007dc7f489
inherit setuptools3
-PIP_INSTALL_DIST_PATH = "${B}/python/python3/dist"
-
SETUPTOOLS_SETUP_PATH = "${S}/python"
do_install:append() {
diff --git a/meta-oe/recipes-test/evtest/evtest_1.35.bb b/meta-oe/recipes-test/evtest/evtest_1.35.bb
index 51af9997f9..52f684ce5f 100644
--- a/meta-oe/recipes-test/evtest/evtest_1.35.bb
+++ b/meta-oe/recipes-test/evtest/evtest_1.35.bb
@@ -1,6 +1,5 @@
SUMMARY = "Simple tool for input event debugging"
HOMEPAGE = "http://people.freedesktop.org/~whot/evtest/"
-AUTHOR = "Vojtech Pavlik <vojtech@suse.cz>"
SECTION = "console/utils"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
diff --git a/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch b/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch
index 0d73d73109..41eaa239d1 100644
--- a/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch
+++ b/meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch
@@ -5,6 +5,8 @@ Subject: [PATCH 1/6] Add correct printf qualifier for off_t
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/bios/ebda_region/ebda_region.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/meta-oe/recipes-test/fwts/fwts/0001-Makefile.am-Add-missing-link-with-zlib.patch b/meta-oe/recipes-test/fwts/fwts/0001-Makefile.am-Add-missing-link-with-zlib.patch
new file mode 100644
index 0000000000..358f7c424d
--- /dev/null
+++ b/meta-oe/recipes-test/fwts/fwts/0001-Makefile.am-Add-missing-link-with-zlib.patch
@@ -0,0 +1,43 @@
+From dd97e711b13af6f770db27abec316d5c9271c777 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 12 Jun 2023 10:25:55 -0700
+Subject: [PATCH] Makefile.am: Add missing link with zlib
+
+It uses functions e.g. gzopen/gzclone/gzgets which are provided by zlib
+therefore add it to linker flags.
+
+Fixes
+| aarch64-yoe-linux-ld.lld: error: undefined reference due to --no-allow-shlib-undefined: gzgets
+| >>> referenced by ../src/lib/src/.libs/libfwts.so
+|
+| aarch64-yoe-linux-ld.lld: error: undefined reference due to --no-allow-shlib-undefined: gzopen
+| >>> referenced by ../src/lib/src/.libs/libfwts.so
+|
+| aarch64-yoe-linux-ld.lld: error: undefined reference due to --no-allow-shlib-undefined: gzclose
+| >>> referenced by ../src/lib/src/.libs/libfwts.so
+| clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
+| make[3]: *** [Makefile:2301: fwts] Error 1
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib/src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/lib/src/Makefile.am b/src/lib/src/Makefile.am
+index 76c48d4..45eea88 100644
+--- a/src/lib/src/Makefile.am
++++ b/src/lib/src/Makefile.am
+@@ -30,7 +30,7 @@ pkglib_LTLIBRARIES = libfwts.la
+ libfwts_la_LDFLAGS = -version-info 1:0:0
+
+ libfwts_la_LIBADD = \
+- -lm -lpthread -lbsd \
++ -lm -lpthread -lbsd -lz \
+ @GIO_LIBS@ \
+ @GLIB_LIBS@
+
+--
+2.41.0
+
diff --git a/meta-oe/recipes-test/fwts/fwts/0001-libfwtsiasl-Disable-parallel-builds-of-lex-bison-fil.patch b/meta-oe/recipes-test/fwts/fwts/0001-libfwtsiasl-Disable-parallel-builds-of-lex-bison-fil.patch
new file mode 100644
index 0000000000..90bee3e722
--- /dev/null
+++ b/meta-oe/recipes-test/fwts/fwts/0001-libfwtsiasl-Disable-parallel-builds-of-lex-bison-fil.patch
@@ -0,0 +1,68 @@
+From 6135a318dd48787f1b6e1296c755d67575f44dc1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Dec 2022 15:18:55 -0800
+Subject: [PATCH] libfwtsiasl: Disable parallel builds of lex/bison files
+
+Since they are using mv cmds they maybe conflicting with each other in
+highly parallelized build resulting in errors like
+
+| mv dtcompilerparser.tab.c dtcompilerparser.c
+| mv dtcompilerparser.tab.c dtcompilerparser.c
+| cp dtcompilerparser.tab.h dtcompilerparser.y.h
+| mv dtcompilerparser.tab.c dtcompilerparser.c
+| mv: cannot stat 'dtcompilerparser.tab.c': No such file or directory
+| make[3]: *** [Makefile:4196: dtcompilerparser.c] Error 1
+| make[3]: *** Waiting for unfinished jobs....
+| mv: cannot stat 'dtcompilerparser.tab.c': No such file or directory
+| make[3]: *** [Makefile:4194: dtcompilerparser.y.h] Error 1
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libfwtsiasl/Makefile.am | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/src/libfwtsiasl/Makefile.am
++++ b/src/libfwtsiasl/Makefile.am
+@@ -58,32 +58,24 @@ aslcompiler.y: $(ASL_PARSER)
+ aslcompilerlex.c: $(ASL_LEXER)
+ ${LEX} ${AM_LFLAGS} -PAslCompiler -o$@ $(top_srcdir)/src/acpica/source/compiler/aslcompiler.l
+
+-.NOTPARALLEL: aslcompiler.c
++.NOTPARALLEL: aslcompiler.c aslcompiler.y.h
+ aslcompiler.c aslcompiler.y.h: aslcompiler.y
+- ${YACC} ${AM_YFLAGS} -d -baslcompiler -pAslCompiler $^
+- mv aslcompiler.tab.c aslcompiler.c
+- cp aslcompiler.tab.h aslcompiler.y.h
++ ${YACC} ${AM_YFLAGS} -d -baslcompiler -pAslCompiler --header=aslcompiler.y.h --output=aslcompiler.c $^
+
+-.NOTPARALLEL: dtcompilerparserlex.c
++.NOTPARALLEL: dtcompilerparserlex.c dtcompilerparser.c dtcompilerparser.y.h
+ dtcompilerparserlex.c dtcompilerparser.c dtcompilerparser.y.h: $(top_srcdir)/src/acpica/source/compiler/dtcompilerparser.l $(top_srcdir)/src/acpica/source/compiler/dtcompilerparser.y
+ ${LEX} ${AM_LFLAGS} -PDtCompilerParser -odtcompilerparserlex.c $<
+- ${YACC} ${AM_YFLAGS} -bdtcompilerparser -pDtCompilerParser $(top_srcdir)/src/acpica/source/compiler/dtcompilerparser.y
+- mv dtcompilerparser.tab.c dtcompilerparser.c
+- cp dtcompilerparser.tab.h dtcompilerparser.y.h
++ ${YACC} ${AM_YFLAGS} -bdtcompilerparser -pDtCompilerParser --header=dtcompilerparser.y.h --output=dtcompilerparser.c $(top_srcdir)/src/acpica/source/compiler/dtcompilerparser.y
+
+-.NOTPARALLEL: dtparserlex.c
++.NOTPARALLEL: dtparserlex.c dtparser.c dtparser.y.h
+ dtparserlex.c dtparser.c dtparser.y.h: $(top_srcdir)/src/acpica/source/compiler/dtparser.l $(top_srcdir)/src/acpica/source/compiler/dtparser.y
+ ${LEX} ${AM_LFLAGS} -PDtParser -odtparserlex.c $<
+- ${YACC} ${AM_YFLAGS} -bdtparser -pDtParser $(top_srcdir)/src/acpica/source/compiler/dtparser.y
+- mv dtparser.tab.c dtparser.c
+- cp dtparser.tab.h dtparser.y.h
++ ${YACC} ${AM_YFLAGS} -bdtparser -pDtParser --header=dtparser.y.h --output=dtparser.c $(top_srcdir)/src/acpica/source/compiler/dtparser.y
+
+-.NOTPARALLEL: prparserlex.c
++.NOTPARALLEL: prparserlex.c prparser.c prparser.y.h
+ prparserlex.c prparser.c prparser.y.h: $(top_srcdir)/src/acpica/source/compiler/prparser.l $(top_srcdir)/src/acpica/source/compiler/prparser.y
+ ${LEX} ${AM_LFLAGS} -PPrParser -oprparserlex.c $<
+- ${YACC} ${AM_YFLAGS} -bprparser -pPrParser $(top_srcdir)/src/acpica/source/compiler/prparser.y
+- mv prparser.tab.c prparser.c
+- cp prparser.tab.h prparser.y.h
++ ${YACC} ${AM_YFLAGS} -bprparser -pPrParser --header=prparser.y.h --output=prparser.c $(top_srcdir)/src/acpica/source/compiler/prparser.y
+
+ pkglib_LTLIBRARIES = libfwtsiasl.la
+
diff --git a/meta-oe/recipes-test/fwts/fwts/0003-Remove-Werror-from-build.patch b/meta-oe/recipes-test/fwts/fwts/0003-Remove-Werror-from-build.patch
index 6dc45ba84b..610113e6fe 100644
--- a/meta-oe/recipes-test/fwts/fwts/0003-Remove-Werror-from-build.patch
+++ b/meta-oe/recipes-test/fwts/fwts/0003-Remove-Werror-from-build.patch
@@ -15,7 +15,7 @@ Upstream-Status: Pending
@@ -13,7 +13,7 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/efi_runtime \
-I$(top_srcdir)/smccc_test \
- -pthread `pkg-config --cflags glib-2.0 gio-2.0` \
+ -pthread \
- -Wall -Werror -Wextra \
+ -Wall -Wextra \
-Wno-address-of-packed-member \
@@ -23,9 +23,9 @@ Upstream-Status: Pending
-Wno-long-long -Wredundant-decls -Wshadow \
--- a/src/lib/src/Makefile.am
+++ b/src/lib/src/Makefile.am
-@@ -25,7 +25,7 @@ AM_CPPFLAGS = \
- `pkg-config --silence-errors --cflags json-c` \
- `pkg-config --cflags glib-2.0 gio-2.0` \
+@@ -22,7 +22,7 @@ AM_CPPFLAGS = \
+ -I$(top_srcdir)/src/acpica/source/include \
+ -I$(top_srcdir)/src/acpica/source/compiler \
-DDATAROOTDIR=\"$(datarootdir)\" \
- -Wall -Werror -Wextra \
+ -Wall -Wextra \
diff --git a/meta-oe/recipes-test/fwts/fwts/0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch b/meta-oe/recipes-test/fwts/fwts/0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch
index b5c265ec2b..b723b87c7a 100644
--- a/meta-oe/recipes-test/fwts/fwts/0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch
+++ b/meta-oe/recipes-test/fwts/fwts/0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch
@@ -9,6 +9,8 @@ will yield the original pointer value
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
src/lib/src/fwts_acpi_tables.c | 4 ++--
src/lib/src/fwts_mmap.c | 2 +-
src/lib/src/fwts_smbios.c | 2 +-
diff --git a/meta-oe/recipes-test/fwts/fwts_22.01.00.bb b/meta-oe/recipes-test/fwts/fwts_22.01.00.bb
deleted file mode 100644
index 1f2d3e0521..0000000000
--- a/meta-oe/recipes-test/fwts/fwts_22.01.00.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Firmware testsuite"
-DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)."
-HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts"
-
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519"
-
-SRC_URI = "http://fwts.ubuntu.com/release/fwts-V${PV}.tar.gz;subdir=${BP} \
- file://0001-Add-correct-printf-qualifier-for-off_t.patch \
- file://0003-Remove-Werror-from-build.patch \
- file://0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \
- file://0005-Undefine-PAGE_SIZE.patch \
- file://0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \
- "
-SRC_URI[sha256sum] = "45045a095d9933d9ff39712372ab1f3078ca8e29c007b3f97b810cdb8c27b5c3"
-
-COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux"
-
-DEPENDS = "libpcre glib-2.0 dtc bison-native libbsd"
-DEPENDS:append:libc-musl = " libexecinfo"
-
-inherit autotools bash-completion pkgconfig
-
-LDFLAGS:append:libc-musl = " -lexecinfo"
-
-# We end up linker barfing with undefined symbols on ppc64 but not on other arches
-# surprisingly
-ASNEEDED:powerpc64le = ""
-
-FILES:${PN} += "${libdir}/fwts/lib*${SOLIBS}"
-FILES:${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la"
-FILES:${PN}-staticdev += "${libdir}/fwts/lib*a"
-
-RDEPENDS:${PN} += "dtc"
diff --git a/meta-oe/recipes-test/fwts/fwts_22.11.00.bb b/meta-oe/recipes-test/fwts/fwts_22.11.00.bb
new file mode 100644
index 0000000000..2448082620
--- /dev/null
+++ b/meta-oe/recipes-test/fwts/fwts_22.11.00.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Firmware testsuite"
+DESCRIPTION = "The tool fwts comprises of over fifty tests that are designed to exercise and test different aspects of a machine's firmware. Many of these tests need super user access to read BIOS data and ACPI tables, so the tool requires running with super user privileges (e.g. with sudo)."
+HOMEPAGE = "https://wiki.ubuntu.com/Kernel/Reference/fwts"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519"
+
+SRC_URI = "http://fwts.ubuntu.com/release/fwts-V${PV}.tar.gz;subdir=${BP} \
+ file://0001-Add-correct-printf-qualifier-for-off_t.patch \
+ file://0003-Remove-Werror-from-build.patch \
+ file://0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \
+ file://0005-Undefine-PAGE_SIZE.patch \
+ file://0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \
+ file://0001-libfwtsiasl-Disable-parallel-builds-of-lex-bison-fil.patch \
+ file://0001-Makefile.am-Add-missing-link-with-zlib.patch \
+ "
+SRC_URI[sha256sum] = "4af4e1e0f1ae9313297af722d744ba47a81c81bc5bdeab3f4f40837a39e4b808"
+
+COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux"
+
+DEPENDS = "libpcre glib-2.0 dtc bison-native flex-native libbsd"
+DEPENDS:append:libc-musl = " libexecinfo"
+
+inherit autotools bash-completion pkgconfig
+
+LDFLAGS:append:libc-musl = " -lexecinfo"
+
+# We end up linker barfing with undefined symbols on ppc64 but not on other arches
+# surprisingly
+ASNEEDED:powerpc64le = ""
+
+FILES:${PN} += "${libdir}/fwts/lib*${SOLIBS}"
+FILES:${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la"
+FILES:${PN}-staticdev += "${libdir}/fwts/lib*a"
+
+RDEPENDS:${PN} += "dtc"
diff --git a/meta-oe/recipes-test/googletest/googletest_1.14.0.bb b/meta-oe/recipes-test/googletest/googletest_1.14.0.bb
new file mode 100644
index 0000000000..6546845715
--- /dev/null
+++ b/meta-oe/recipes-test/googletest/googletest_1.14.0.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "Google's framework for writing C++ tests"
+HOMEPAGE = "https://github.com/google/googletest"
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cbbd27594afd089daa160d3a16dd515a"
+
+PROVIDES += "gmock gtest"
+
+S = "${WORKDIR}/git"
+SRCREV = "f8d7d77c06936315286eb55f8de22cd23c188571"
+SRC_URI = "git://github.com/google/googletest.git;branch=main;protocol=https"
+
+inherit cmake pkgconfig
+
+# allow for shared libraries, but do not default to them
+#
+PACKAGECONFIG[shared] = "-DBUILD_SHARED_LIBS=ON,-DBUILD_SHARED_LIBS=OFF,,"
+
+CXXFLAGS:append = " -fPIC"
+
+ALLOW_EMPTY:${PN} = "1"
+ALLOW_EMPTY:${PN}-dbg = "1"
+
+# -staticdev will not be implicitly put into an SDK, so we add an rdepend
+# if we are not building shared libraries
+#
+RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG","shared","","${PN}-staticdev",d)}"
+
+BBCLASSEXTEND = "native nativesdk"
+
+do_configure:prepend() {
+ # explicitly use python3
+ # the scripts are already python3 compatible since https://github.com/google/googletest/commit/d404af0d987a9c38cafce82a7e26ec8468c88361 and other fixes like this
+ # but since this oe-core change http://git.openembedded.org/openembedded-core/commit/?id=5f8f16b17f66966ae91aeabc23e97de5ecd17447
+ # there isn't python in HOSTTOOLS so "env python" fails
+ sed -i 's@^#!/usr/bin/env python$@#!/usr/bin/env python3@g' ${S}/googlemock/test/*py ${S}/googletest/test/*py
+}
diff --git a/meta-oe/recipes-test/googletest/googletest_git.bb b/meta-oe/recipes-test/googletest/googletest_git.bb
deleted file mode 100644
index edca0bc462..0000000000
--- a/meta-oe/recipes-test/googletest/googletest_git.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-DESCRIPTION = "Google's framework for writing C++ tests"
-HOMEPAGE = "https://github.com/google/googletest"
-SECTION = "libs"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=cbbd27594afd089daa160d3a16dd515a"
-
-PV = "1.12.1"
-
-PROVIDES += "gmock gtest"
-
-S = "${WORKDIR}/git"
-SRCREV = "58d77fa8070e8cec2dc1ed015d66b454c8d78850"
-SRC_URI = "git://github.com/google/googletest.git;branch=v1.12.x;protocol=https"
-
-inherit cmake
-
-ALLOW_EMPTY:${PN} = "1"
-ALLOW_EMPTY:${PN}-dbg = "1"
-
-RDEPENDS:${PN}-dev += "${PN}-staticdev"
-
-BBCLASSEXTEND = "native nativesdk"
-
-do_configure:prepend() {
- # explicitly use python3
- # the scripts are already python3 compatible since https://github.com/google/googletest/commit/d404af0d987a9c38cafce82a7e26ec8468c88361 and other fixes like this
- # but since this oe-core change http://git.openembedded.org/openembedded-core/commit/?id=5f8f16b17f66966ae91aeabc23e97de5ecd17447
- # there isn't python in HOSTTOOLS so "env python" fails
- sed -i 's@^#!/usr/bin/env python$@#!/usr/bin/env python3@g' ${S}/googlemock/test/*py ${S}/googletest/test/*py
-}
diff --git a/meta-oe/recipes-test/libfaketime/libfaketime/0001-Makefile-Detect-compiler-in-makefile.patch b/meta-oe/recipes-test/libfaketime/libfaketime/0001-Makefile-Detect-compiler-in-makefile.patch
new file mode 100644
index 0000000000..ff04837652
--- /dev/null
+++ b/meta-oe/recipes-test/libfaketime/libfaketime/0001-Makefile-Detect-compiler-in-makefile.patch
@@ -0,0 +1,45 @@
+From 735bb5d053efad274aa4ea5a6682e656ff792909 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 24 Aug 2023 01:49:48 -0700
+Subject: [PATCH] Makefile: Detect compiler in makefile
+
+Add compiler specific options based on detected compiler gcc/clang
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/Makefile | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 62e924c..c15eb33 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -110,7 +110,23 @@ PREFIX ?= /usr/local
+ LIBDIRNAME ?= /lib/faketime
+ PLATFORM ?=$(shell uname)
+
+-CFLAGS += -std=gnu99 -Wall -Wextra -Werror -Wno-nonnull-compare -DFAKE_PTHREAD -DFAKE_STAT -DFAKE_UTIME -DFAKE_SLEEP -DFAKE_TIMERS -DFAKE_INTERNAL_CALLS -fPIC -DPREFIX='"'$(PREFIX)'"' -DLIBDIRNAME='"'$(LIBDIRNAME)'"' $(FAKETIME_COMPILE_CFLAGS)
++ifeq ($(shell $(CC) -v 2>&1 | grep -c "clang version"), 1)
++COMPILER := clang
++else
++COMPILER := gcc
++endif
++export COMPILER
++
++CFLAGS += -std=gnu99 -Wall -Wextra -Werror -DFAKE_PTHREAD -DFAKE_STAT -DFAKE_UTIME -DFAKE_SLEEP -DFAKE_TIMERS -DFAKE_INTERNAL_CALLS -fPIC -DPREFIX='"'$(PREFIX)'"' -DLIBDIRNAME='"'$(LIBDIRNAME)'"' $(FAKETIME_COMPILE_CFLAGS)
++
++ifeq ($(COMPILER),clang)
++CFLAGS += -Wno-tautological-pointer-compare
++endif
++
++ifeq ($(COMPILER),gcc)
++CFLAGS += -Wno-nonnull-compare
++endif
++
+ ifeq ($(PLATFORM),SunOS)
+ CFLAGS += -D__EXTENSIONS__ -D_XOPEN_SOURCE=600
+ endif
+--
+2.42.0
+
diff --git a/meta-oe/recipes-test/libfaketime/libfaketime_0.9.10.bb b/meta-oe/recipes-test/libfaketime/libfaketime_0.9.10.bb
new file mode 100644
index 0000000000..f13925ee18
--- /dev/null
+++ b/meta-oe/recipes-test/libfaketime/libfaketime_0.9.10.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "A library for faking the system time in user-space programs"
+SECTION = "libs"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRCREV = "d475b925943ad404c6c728ac868dc73949e7281c"
+
+SRC_URI = "git://github.com/wolfcw/libfaketime.git;branch=master;protocol=https \
+ file://0001-Makefile-Detect-compiler-in-makefile.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+CFLAGS:append:libc-musl = " -D_LARGEFILE64_SOURCE"
+
+do_configure[noexec] = "1"
+do_compile () {
+ oe_runmake
+}
+do_install () {
+ install -d ${D}${libdir}/faketime
+ oe_libinstall -C src libfaketime ${D}${libdir}/faketime
+ install -d ${D}${bindir}
+ install -m 0755 src/faketime ${D}${bindir}
+}
+
+FILES:${PN} = "${bindir}/faketime ${libdir}/faketime/lib*${SOLIBS}"
+FILES:${PN}-dev += "${libdir}/faketime/lib*${SOLIBSDEV}"
diff --git a/meta-oe/recipes-test/linux-serial-test/linux-serial-test_git.bb b/meta-oe/recipes-test/linux-serial-test/linux-serial-test_git.bb
new file mode 100644
index 0000000000..e909676abc
--- /dev/null
+++ b/meta-oe/recipes-test/linux-serial-test/linux-serial-test_git.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Linux Serial Test Application"
+HOMEPAGE = "https://github.com/cbrake/linux-serial-test"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSES/MIT;md5=544799d0b492f119fa04641d1b8868ed"
+
+SRC_URI = "git://github.com/cbrake/linux-serial-test.git;protocol=https;branch=master"
+
+PV = "0+git"
+SRCREV = "2ee61484167eab846f7b7c565284d7c350d738d3"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-oe/recipes-test/shunit2/shunit2_2.1.8.bb b/meta-oe/recipes-test/shunit2/shunit2_2.1.8.bb
new file mode 100644
index 0000000000..683600f712
--- /dev/null
+++ b/meta-oe/recipes-test/shunit2/shunit2_2.1.8.bb
@@ -0,0 +1,13 @@
+SUMMARY = "shUnit2 is a xUnit based unit test framework for Bourne based shell scripts"
+HOMEPAGE = "https://github.com/kward/shunit2"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+SRC_URI = " git://github.com/kward/shunit2.git;branch=master;protocol=https"
+SRCREV = "080159b303537888c5d41910b4d47a5002638e30"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -D -m 0755 ${S}/shunit2 ${D}${bindir}/shunit2
+}
diff --git a/meta-oe/recipes-test/syzkaller/syzkaller/0001-executor-Include-missing-linux-falloc.h.patch b/meta-oe/recipes-test/syzkaller/syzkaller/0001-executor-Include-missing-linux-falloc.h.patch
new file mode 100644
index 0000000000..23bfb9a5e2
--- /dev/null
+++ b/meta-oe/recipes-test/syzkaller/syzkaller/0001-executor-Include-missing-linux-falloc.h.patch
@@ -0,0 +1,37 @@
+From 9db789b4498d4130450e988757914c03e42b40f5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 19 Jun 2023 18:33:36 -0700
+Subject: [PATCH] executor: Include missing linux/falloc.h
+
+Its needed for FALLOC_FL_ZERO_RANGE which needs this header, it works
+with glibc because fcntl.h includes this header indirectly, however the
+failure comes to fore with musl C library where this header is not
+included indirectly by other system headers, therefore include it as
+required.
+
+Fixes
+In file included from executor/common.h:505:
+executor/common_linux.h:5604:16: error: use of undeclared identifier 'FALLOC_FL_ZERO_RANGE'
+ fallocate(fd, FALLOC_FL_ZERO_RANGE, 0, SWAP_FILE_SIZE);
+ ^
+Upstream-Status: Submitted [https://github.com/google/syzkaller/pull/3974]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ executor/common_linux.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/executor/common_linux.h b/executor/common_linux.h
+index d5152e058..9ae3fb159 100644
+--- a/executor/common_linux.h
++++ b/executor/common_linux.h
+@@ -5585,6 +5585,7 @@ static long syz_pkey_set(volatile long pkey, volatile long val)
+ #include <sys/stat.h>
+ #include <sys/swap.h>
+ #include <sys/types.h>
++#include <linux/falloc.h>
+
+ #define SWAP_FILE "./swap-file"
+ #define SWAP_FILE_SIZE (128 * 1000 * 1000) // 128 MB.
+--
+2.41.0
+
diff --git a/meta-oe/recipes-test/syzkaller/syzkaller/0001-sys-targets-targets.go-allow-users-to-override-hardc.patch b/meta-oe/recipes-test/syzkaller/syzkaller/0001-sys-targets-targets.go-allow-users-to-override-hardc.patch
new file mode 100644
index 0000000000..61f4351651
--- /dev/null
+++ b/meta-oe/recipes-test/syzkaller/syzkaller/0001-sys-targets-targets.go-allow-users-to-override-hardc.patch
@@ -0,0 +1,62 @@
+From aca1030d29f627314d13884ebc7b2c313d718df7 Mon Sep 17 00:00:00 2001
+From: Ovidiu Panait <ovidiu.panait@windriver.com>
+Date: Wed, 13 Apr 2022 17:17:54 +0300
+Subject: [PATCH] sys/targets/targets.go: allow users to override hardcoded
+ cross-compilers
+
+Currently, cross compiler names are hardcoded for each os/arch combo. However,
+toolchain tuples differ, especially when using vendor provided toolchains.
+Allow users to specify the cross compiler for an os/arch combo using
+SYZ_CC_<os>_<arch> environment variables.
+
+Also, remove hardcoded "-march=armv6" flag to fix compilation on arm.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ sys/targets/targets.go | 19 +++++++++++--------
+ 1 file changed, 11 insertions(+), 8 deletions(-)
+
+--- a/sys/targets/targets.go
++++ b/sys/targets/targets.go
+@@ -262,7 +262,6 @@ var List = map[string]map[string]*Target
+ PtrSize: 4,
+ PageSize: 4 << 10,
+ LittleEndian: true,
+- CFlags: []string{"-D__LINUX_ARM_ARCH__=6", "-march=armv6"},
+ Triple: "arm-linux-gnueabi",
+ KernelArch: "arm",
+ KernelHeaderArch: "arm",
+@@ -700,12 +699,16 @@ func initTarget(target *Target, OS, arch
+ for i := range target.CFlags {
+ target.replaceSourceDir(&target.CFlags[i], sourceDir)
+ }
+- if OS == Linux && arch == runtime.GOARCH {
+- // Don't use cross-compiler for native compilation, there are cases when this does not work:
+- // https://github.com/google/syzkaller/pull/619
+- // https://github.com/google/syzkaller/issues/387
+- // https://github.com/google/syzkaller/commit/06db3cec94c54e1cf720cdd5db72761514569d56
+- target.Triple = ""
++ if OS == Linux {
++ if cc := os.Getenv("SYZ_CC_" + OS + "_" + arch); cc != "" {
++ target.CCompiler = cc
++ } else if arch == runtime.GOARCH {
++ // Don't use cross-compiler for native compilation, there are cases when this does not work:
++ // https://github.com/google/syzkaller/pull/619
++ // https://github.com/google/syzkaller/issues/387
++ // https://github.com/google/syzkaller/commit/06db3cec94c54e1cf720cdd5db72761514569d56
++ target.Triple = ""
++ }
+ }
+ if target.CCompiler == "" {
+ target.setCompiler(useClang)
+@@ -839,7 +842,7 @@ func (target *Target) lazyInit() {
+ // On CI we want to fail loudly if cross-compilation breaks.
+ // Also fail if SOURCEDIR_GOOS is set b/c in that case user probably assumes it will work.
+ if (target.OS != runtime.GOOS || !runningOnCI) && getSourceDir(target) == "" {
+- if _, err := exec.LookPath(target.CCompiler); err != nil {
++ if _, err := exec.LookPath(strings.Fields(target.CCompiler)[0]); err != nil {
+ target.BrokenCompiler = fmt.Sprintf("%v is missing (%v)", target.CCompiler, err)
+ return
+ }
diff --git a/meta-oe/recipes-test/syzkaller/syzkaller_git.bb b/meta-oe/recipes-test/syzkaller/syzkaller_git.bb
new file mode 100644
index 0000000000..b43207f2a7
--- /dev/null
+++ b/meta-oe/recipes-test/syzkaller/syzkaller_git.bb
@@ -0,0 +1,82 @@
+DESCRIPTION = "syzkaller is an unsupervised coverage-guided kernel fuzzer"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=5335066555b14d832335aa4660d6c376"
+
+inherit go-mod
+
+GO_IMPORT = "github.com/google/syzkaller"
+
+SRC_URI = "git://${GO_IMPORT};protocol=https;destsuffix=${BPN}-${PV}/src/${GO_IMPORT};branch=master \
+ file://0001-sys-targets-targets.go-allow-users-to-override-hardc.patch;patchdir=src/${GO_IMPORT} \
+ file://0001-executor-Include-missing-linux-falloc.h.patch;patchdir=src/${GO_IMPORT} \
+ "
+SRCREV = "25905f5d0a2a7883bd33491997556193582c6059"
+
+export GOPROXY = "https://proxy.golang.org,direct"
+# Workaround for network access issue during compile step.
+# This needs to be fixed in the recipes buildsystem so that
+# it can be accomplished during do_fetch task.
+do_compile[network] = "1"
+
+COMPATIBLE_HOST = "(x86_64|i.86|arm|aarch64).*-linux"
+
+B = "${S}/src/${GO_IMPORT}/bin"
+
+GO_EXTRA_LDFLAGS += ' -X ${GO_IMPORT}/prog.GitRevision=${SRCREV}'
+
+export GOHOSTFLAGS="${GO_LINKSHARED} ${GOBUILDFLAGS}"
+export GOTARGETFLAGS="${GO_LINKSHARED} ${GOBUILDFLAGS}"
+export TARGETOS = '${GOOS}'
+export TARGETARCH = '${GOARCH}'
+export TARGETVMARCH = '${GOARCH}'
+
+CGO_ENABLED = "1"
+
+LDFLAGS:append:class-target = "${@bb.utils.contains_any("TC_CXX_RUNTIME", "llvm android", " -lc++", " -lstdc++", d)}"
+
+DEPENDS:class-native += "qemu-system-native"
+
+do_compile:class-native() {
+ export HOSTOS="${GOHOSTOS}"
+ export HOSTARCH="${GOHOSTARCH}"
+
+ oe_runmake HOSTGO="${GO}" host
+}
+
+do_compile:class-target() {
+ export HOSTOS="${GOOS}"
+ export HOSTARCH="${GOARCH}"
+ export SYZ_CC_${TARGETOS}_${TARGETARCH}="${CC}"
+
+ # Unset GOOS and GOARCH so that the correct syz-sysgen binary can be
+ # generated. Fixes:
+ # go install: cannot install cross-compiled binaries when GOBIN is set
+ unset GOOS
+ unset GOARCH
+
+ oe_runmake GO="${GO}" CFLAGS="${CXXFLAGS} ${LDFLAGS}" REV=${SRCREV} target
+}
+
+do_install:class-native() {
+ SYZ_BINS_NATIVE="syz-manager syz-runtest syz-repro syz-mutate syz-prog2c \
+ syz-db syz-upgrade"
+
+ install -d ${D}${bindir}
+
+ for i in ${SYZ_BINS_NATIVE}; do
+ install -m 0755 ${B}/${i} ${D}${bindir}
+ done
+}
+
+do_install:class-target() {
+ SYZ_TARGET_DIR="${TARGETOS}_${TARGETARCH}"
+ SYZ_BINS_TARGET="syz-fuzzer syz-execprog syz-stress syz-executor"
+
+ install -d ${D}${bindir}/${SYZ_TARGET_DIR}
+
+ for i in ${SYZ_BINS_TARGET}; do
+ install -m 0755 ${B}/${SYZ_TARGET_DIR}/${i} ${D}${bindir}/${SYZ_TARGET_DIR}
+ done
+}
+
+BBCLASSEXTEND += "native"
diff --git a/meta-oe/recipes-test/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch b/meta-oe/recipes-test/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch
index 9f41bf2da0..908a352d0b 100644
--- a/meta-oe/recipes-test/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch
+++ b/meta-oe/recipes-test/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch
@@ -9,6 +9,8 @@ from Fabio Berton <fabio.berton@ossystems.com.br>.
Signed-off-by: Zong Li <zongbox@gmail.com>
---
+Upstream-Status: Pending
+
SoftFloat-3e/build/Linux-Cross-Compile/Makefile | 325 ++++++++++++++++++++++
SoftFloat-3e/build/Linux-Cross-Compile/platform.h | 52 ++++
2 files changed, 377 insertions(+)
diff --git a/meta-oe/recipes-test/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch b/meta-oe/recipes-test/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch
index b7d861f8fc..c99ba71b37 100644
--- a/meta-oe/recipes-test/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch
+++ b/meta-oe/recipes-test/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch
@@ -9,6 +9,8 @@ from Fabio Berton <fabio.berton@ossystems.com.br>.
Signed-off-by: Zong Li <zongbox@gmail.com>
---
+Upstream-Status: Pending
+
TestFloat-3e/build/Linux-Cross-Compile/Makefile | 353 ++++++++++++++++++++++
TestFloat-3e/build/Linux-Cross-Compile/platform.h | 48 +++
2 files changed, 401 insertions(+)
diff --git a/meta-perl/README b/meta-perl/README.md
index 13014b0ff3..13014b0ff3 100644
--- a/meta-perl/README
+++ b/meta-perl/README.md
diff --git a/meta-perl/conf/include/ptest-packagelists-meta-perl.inc b/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
new file mode 100644
index 0000000000..842f817f1f
--- /dev/null
+++ b/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
@@ -0,0 +1,52 @@
+#
+# Lists of the ptest in meta-perl, sorted into two sets by the time they take
+# Please keep these sorted in alphabetical order
+#
+# A first pass at getting all meta-perl recipes which inherit ptest
+# meta_perl_ptest_recipes=$(bitbake-layers show-recipes --recipes-only --layer meta-perl --inherits ptest --bare | tr '\n' ' ' | pcregrep -o1 '^NOTE:.+===(.+)$')
+#
+# ptests which take less than ~30s each
+PTESTS_FAST_META_PERL = "\
+ libcapture-tiny-perl \
+ libcgi-perl \
+ libcrypt-openssl-random-perl \
+ libdigest-hmac-perl \
+ liberror-perl \
+ libextutils-config-perl \
+ libextutils-installpaths-perl \
+ libhtml-tagset-perl \
+ libmozilla-ca-perl \
+ libmodule-build-tiny-perl \
+ libstrictures-perl \
+ libterm-readkey-perl \
+ libtest-nowarnings-perl \
+ libtext-diff-perl \
+"
+
+PTESTS_SLOW_META_PERL = "\
+ libio-socket-ssl-perl \
+"
+
+PTESTS_PROBLEMS_META_PERL ="\
+ libauthen-sasl-perl \
+ libconfig-autoconf-perl \
+ libcrypt-openssl-guess-perl \
+ libcrypt-openssl-rsa-perl \
+ libdata-hexdump-perl \
+ libdbd-sqlite-perl \
+ libdigest-sha1-perl \
+ libnet-dns-perl \
+ libnet-dns-sec-perl \
+ libnet-ldap-perl \
+ libfile-slurper-perl \
+ libhtml-parser-perl \
+ libmime-types-perl \
+ libnet-ssleay-perl \
+ libsub-uplevel-perl \
+ libtest-deep-perl \
+ libtest-harness-perl \
+ libtest-warn-perl \
+ libunicode-linebreak-perl \
+ libunix-statgrab \
+ libxml-libxml-perl \
+"
diff --git a/meta-perl/conf/layer.conf b/meta-perl/conf/layer.conf
index 007ae2fbd5..20a6a4239f 100644
--- a/meta-perl/conf/layer.conf
+++ b/meta-perl/conf/layer.conf
@@ -15,4 +15,4 @@ LAYERVERSION_perl-layer = "1"
LAYERDEPENDS_perl-layer = "core openembedded-layer"
-LAYERSERIES_COMPAT_perl-layer = "kirkstone langdale"
+LAYERSERIES_COMPAT_perl-layer = "scarthgap"
diff --git a/meta-perl/files/static-group-meta-perl b/meta-perl/files/static-group-meta-perl
new file mode 100644
index 0000000000..7dd58bbbda
--- /dev/null
+++ b/meta-perl/files/static-group-meta-perl
@@ -0,0 +1 @@
+logcheck:x:670: \ No newline at end of file
diff --git a/meta-perl/files/static-passwd-meta-perl b/meta-perl/files/static-passwd-meta-perl
new file mode 100644
index 0000000000..7b3591ac50
--- /dev/null
+++ b/meta-perl/files/static-passwd-meta-perl
@@ -0,0 +1 @@
+logcheck:x:670:670::/:/bin/nologin \ No newline at end of file
diff --git a/meta-perl/recipes-core/images/meta-perl-image-all.bb b/meta-perl/recipes-core/images/meta-perl-image-all.bb
new file mode 100644
index 0000000000..c46cba21cd
--- /dev/null
+++ b/meta-perl/recipes-core/images/meta-perl-image-all.bb
@@ -0,0 +1,5 @@
+require recipes-core/images/core-image-base.bb
+
+SUMMARY = "meta-perl build test image"
+
+IMAGE_INSTALL += "packagegroup-meta-perl packagegroup-meta-perl-extended"
diff --git a/meta-perl/recipes-core/images/meta-perl-image-ptest-all.bb b/meta-perl/recipes-core/images/meta-perl-image-ptest-all.bb
new file mode 100644
index 0000000000..9efe5087f0
--- /dev/null
+++ b/meta-perl/recipes-core/images/meta-perl-image-ptest-all.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Recipe to trigger execution of all meta-perl ptest images."
+HOMEPAGE = "https://www.openembedded.org/"
+
+LICENSE = "MIT"
+
+inherit features_check nopackages
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-perl.inc
+
+# Include the full set of ptests
+PTESTS_META_PERL = "${PTESTS_FAST_META_PERL} ${PTESTS_SLOW_META_PERL} ${PTESTS_PROBLEMS_META_PERL}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-perl-image-ptest-'+x+':do_testimage' for x in d.getVar('PTESTS_META_PERL').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-perl-image-ptest-'+x+':do_build' for x in d.getVar('PTESTS_META_PERL').split()])}"
+
+# normally image.bbclass would do this
+EXCLUDE_FROM_WORLD = "1"
+
+python () {
+ if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
+ bb.build.addtask("do_testimage", "", "", d)
+}
diff --git a/meta-perl/recipes-core/images/meta-perl-image-ptest-fast.bb b/meta-perl/recipes-core/images/meta-perl-image-ptest-fast.bb
new file mode 100644
index 0000000000..1ac78f30b7
--- /dev/null
+++ b/meta-perl/recipes-core/images/meta-perl-image-ptest-fast.bb
@@ -0,0 +1,6 @@
+require meta-perl-image-ptest-all.bb
+
+DESCRIPTION = "Recipe to trigger execution of all fast meta-perl ptest images."
+
+PTESTS_META_PERL = "${PTESTS_FAST_META_PERL}"
+
diff --git a/meta-perl/recipes-core/images/meta-perl-image-ptest.bb b/meta-perl/recipes-core/images/meta-perl-image-ptest.bb
new file mode 100644
index 0000000000..94d77b97f0
--- /dev/null
+++ b/meta-perl/recipes-core/images/meta-perl-image-ptest.bb
@@ -0,0 +1,40 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES += "ptest"
+
+SUMMARY = "meta-perl build ptest image"
+
+require recipes-core/images/core-image-minimal.bb
+require conf/include/ptest-packagelists-meta-perl.inc
+
+DESCRIPTION += "Also including the ${MCNAME} ptest package."
+HOMEPAGE = "https://www.openembedded.org/"
+
+PTESTS_META_PERL = "${PTESTS_SLOW_META_PERL} ${PTESTS_FAST_META_PERL} ${PTESTS_PROBLEMS_META_PERL}"
+
+IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
+
+BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_PERL').split()])}"
+
+# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
+# box) and explicitly add up to 1500MB.
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "324288"
+# If a particular ptest needs more space, it can be customized:
+#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
+
+# ptests need more memory than standard to avoid the OOM killer
+QB_MEM = "-m 1024"
+# If a particular ptest needs more memory, it can be customized:
+#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
+
+TEST_SUITES = "ping ssh parselogs ptest"
+
+# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
+
+python () {
+ if not d.getVar("MCNAME"):
+ raise bb.parse.SkipRecipe("No class extension set")
+}
+
diff --git a/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb b/meta-perl/recipes-core/packagegroups/packagegroup-meta-perl.bb
index 4b2f5cc029..c49b3b5a27 100644
--- a/meta-perl/recipes-perl/packagegroups/packagegroup-meta-perl.bb
+++ b/meta-perl/recipes-core/packagegroups/packagegroup-meta-perl.bb
@@ -11,14 +11,14 @@ PACKAGES = "\
RDEPENDS:packagegroup-meta-perl = "\
adduser \
- compress-raw-bzip2-perl \
- compress-raw-lzma-perl \
- compress-raw-zlib-perl \
libalgorithm-diff-perl \
libauthen-sasl-perl \
libauthen-radius-perl \
libcapture-tiny-perl \
libcgi-perl \
+ libcompress-raw-bzip2-perl \
+ libcompress-raw-lzma-perl \
+ libcompress-raw-zlib-perl \
libdbd-sqlite-perl \
libclass-method-modifiers-perl \
libdigest-hmac-perl \
@@ -78,9 +78,7 @@ RDEPENDS:packagegroup-meta-perl = "\
libtest-harness-perl \
libtest-nowarnings-perl \
libtest-warn-perl \
- libtest-warnings-perl \
libunicode-linebreak-perl \
- po4a \
"
RDEPENDS:packagegroup-meta-perl-extended = "\
@@ -102,6 +100,3 @@ RDEPENDS:packagegroup-meta-perl-ptest-packages = "\
"
EXCLUDE_FROM_WORLD = "1"
-
-# perl-module-encode is preferred over libencode-perl
-# libencode-locale-perl depends on libencode-perl
diff --git a/meta-perl/recipes-extended/logcheck/logcheck_1.3.24.bb b/meta-perl/recipes-extended/logcheck/logcheck_1.3.24.bb
deleted file mode 100644
index ea3dd5a4c9..0000000000
--- a/meta-perl/recipes-extended/logcheck/logcheck_1.3.24.bb
+++ /dev/null
@@ -1,77 +0,0 @@
-SUMMARY = "Analyzes log files and sends noticeable events as email"
-DESCRIPTION = "\
-Logcheck is a simple utility which is designed to allow a system administrator \
-to view the log-files which are produced upon hosts under their control. \
-It does this by mailing summaries of the log-files to them, after first \
-filtering out "normal" entries. \
-Normal entries are entries which match one of the many included regular \
-expression files contain in the database."
-SECTION = "Applications/System"
-HOMEPAGE = "http://logcheck.org/"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c93c0550bd3173f4504b2cbd8991e50b"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/l/${BPN}/${BPN}_${PV}.tar.xz \
- file://99_logcheck \
-"
-SRC_URI[sha256sum] = "5e304adf2880967c3b155bcf98e4f0809417a16bf91adb372fa065f38ab2c0cf"
-
-inherit useradd
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "-m -g ${BPN} -G adm -r -d ${localstatedir}/lib/${BPN} \
- -s /bin/false -c 'logcheck account' ${BPN}"
-GROUPADD_PARAM:${PN} = "-r ${BPN}"
-
-do_install() {
- # Fix QA Issue
- sed -i '/install -d $(DESTDIR)\/var\/lock\/logcheck/s/^/#/' Makefile
-
- # "make install" do not install the manpages. Install them manually.
- install -m 755 -d ${D}${mandir}/man1
- install -m 755 -d ${D}${mandir}/man8
- install -m 644 docs/logcheck-test.1 ${D}${mandir}/man1/
- install -m 644 docs/logtail.8 ${D}${mandir}/man8/
- install -m 644 docs/logtail2.8 ${D}${mandir}/man8/
-
- install -m 755 -d ${D}${sysconfdir}/cron.d
- install -m 644 debian/logcheck.cron.d ${D}${sysconfdir}/cron.d/logcheck
- install -m 755 -d ${D}/var/lib/logcheck
-
- oe_runmake install DESTDIR=${D}
-
- # install header.txt for generated mails
- install -m 0644 ${S}/debian/header.txt ${D}${sysconfdir}/${BPN}
-
- chown -R ${BPN}:${BPN} ${D}${localstatedir}/lib/${BPN}
- chown -R root:${BPN} ${D}${sysconfdir}/${BPN}
-
- # Don't install /var/lock when populating rootfs. Do it through volatile
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 0644 ${WORKDIR}/99_logcheck ${D}${sysconfdir}/default/volatiles
- fi
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /var/lock/logcheck 0755 logcheck logcheck -" \
- > ${D}${sysconfdir}/tmpfiles.d/logcheck.conf
- fi
-}
-
-VIRTUAL-RUNTIME_syslog ??= "rsyslog"
-
-RDEPENDS:${PN} = "\
- bash \
- cronie \
- debianutils-run-parts \
- grep \
- lockfile-progs \
- mime-construct \
- perl \
- perl-module-file-basename \
- perl-module-getopt-std \
- perl-module-file-glob \
- ${VIRTUAL-RUNTIME_syslog} \
-"
-
-FILES:${PN} += "${datadir}/logtail"
diff --git a/meta-perl/recipes-extended/logcheck/logcheck_1.4.3.bb b/meta-perl/recipes-extended/logcheck/logcheck_1.4.3.bb
new file mode 100644
index 0000000000..c13bd940ea
--- /dev/null
+++ b/meta-perl/recipes-extended/logcheck/logcheck_1.4.3.bb
@@ -0,0 +1,77 @@
+SUMMARY = "Analyzes log files and sends noticeable events as email"
+DESCRIPTION = "\
+Logcheck is a simple utility which is designed to allow a system administrator \
+to view the log-files which are produced upon hosts under their control. \
+It does this by mailing summaries of the log-files to them, after first \
+filtering out "normal" entries. \
+Normal entries are entries which match one of the many included regular \
+expression files contain in the database."
+SECTION = "Applications/System"
+HOMEPAGE = "http://logcheck.org/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c93c0550bd3173f4504b2cbd8991e50b"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/l/${BPN}/${BPN}_${PV}.tar.xz \
+ file://99_logcheck \
+"
+SRC_URI[sha256sum] = "ad83ae80bd780bdae5eefd40ad59a3e97b85ad3a4962aa7c00d98ed3bdffcdd0"
+
+inherit useradd
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "-m -g ${BPN} -G adm -r -d ${localstatedir}/lib/${BPN} \
+ -s /bin/false -c 'logcheck account' ${BPN}"
+GROUPADD_PARAM:${PN} = "-r ${BPN}"
+
+do_install() {
+ # Fix QA Issue
+ sed -i '/install -d $(DESTDIR)\/var\/lock\/logcheck/s/^/#/' Makefile
+
+ # "make install" do not install the manpages. Install them manually.
+ install -m 755 -d ${D}${mandir}/man1
+ install -m 755 -d ${D}${mandir}/man8
+ install -m 644 docs/logcheck-test.1 ${D}${mandir}/man1/
+ install -m 644 docs/logtail.8 ${D}${mandir}/man8/
+ install -m 644 docs/logtail2.8 ${D}${mandir}/man8/
+
+ install -m 755 -d ${D}${sysconfdir}/cron.d
+ install -m 644 debian/logcheck.cron.d ${D}${sysconfdir}/cron.d/logcheck
+ install -m 755 -d ${D}/var/lib/logcheck
+
+ oe_runmake install DESTDIR=${D}
+
+ # install header.txt for generated mails
+ install -m 0644 ${S}/debian/header.txt ${D}${sysconfdir}/${BPN}
+
+ chown -R ${BPN}:${BPN} ${D}${localstatedir}/lib/${BPN}
+ chown -R root:${BPN} ${D}${sysconfdir}/${BPN}
+
+ # Don't install /var/lock when populating rootfs. Do it through volatile
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/99_logcheck ${D}${sysconfdir}/default/volatiles
+ fi
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /var/lock/logcheck 0755 logcheck logcheck -" \
+ > ${D}${sysconfdir}/tmpfiles.d/logcheck.conf
+ fi
+}
+
+VIRTUAL-RUNTIME_syslog ??= "rsyslog"
+
+RDEPENDS:${PN} = "\
+ bash \
+ cronie \
+ debianutils-run-parts \
+ grep \
+ lockfile-progs \
+ mime-construct \
+ perl \
+ perl-module-file-basename \
+ perl-module-getopt-std \
+ perl-module-file-glob \
+ ${VIRTUAL-RUNTIME_syslog} \
+"
+
+FILES:${PN} += "${datadir}/logtail"
diff --git a/meta-perl/recipes-perl/images/meta-perl-base.bb b/meta-perl/recipes-perl/images/meta-perl-base.bb
deleted file mode 100644
index ec671020d8..0000000000
--- a/meta-perl/recipes-perl/images/meta-perl-base.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-SUMMARY = "meta-per build test image"
-
-IMAGE_INSTALL = "packagegroup-core-boot"
-
-LICENSE = "MIT"
-
-inherit core-image
diff --git a/meta-perl/recipes-perl/images/meta-perl-image.bb b/meta-perl/recipes-perl/images/meta-perl-image.bb
deleted file mode 100644
index b8d3a76e6a..0000000000
--- a/meta-perl/recipes-perl/images/meta-perl-image.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require meta-perl-base.bb
-
-SUMMARY = "meta-perl build test image"
-
-IMAGE_INSTALL += "packagegroup-meta-perl packagegroup-meta-perl-extended"
diff --git a/meta-perl/recipes-perl/images/meta-perl-ptest-image.bb b/meta-perl/recipes-perl/images/meta-perl-ptest-image.bb
deleted file mode 100644
index a9b4cc3c7d..0000000000
--- a/meta-perl/recipes-perl/images/meta-perl-ptest-image.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require meta-perl-base.bb
-
-SUMMARY = "meta-perl build ptest image"
-
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES += "ptest"
-
-IMAGE_INSTALL += "packagegroup-meta-perl-ptest"
diff --git a/meta-perl/recipes-perl/libcgi/libcgi-perl_4.54.bb b/meta-perl/recipes-perl/libcgi/libcgi-perl_4.54.bb
deleted file mode 100644
index 4c9864094d..0000000000
--- a/meta-perl/recipes-perl/libcgi/libcgi-perl_4.54.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-DESCRIPTION = "CGI.pm is a stable, complete and mature solution for processing and preparing \
-HTTP requests and responses. Major features including processing form \
-submissions, file uploads, reading and writing cookies, query string generation \
-and manipulation, and processing and preparing HTTP headers."
-HOMEPAGE = "http://search.cpan.org/~leejo/CGI-4.28/lib/CGI.pod"
-SECTION = "libs"
-LICENSE = "Artistic-2.0 | GPL-2.0-only"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=415fc49abed2728f9480cd32c8d67beb"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/L/LE/LEEJO/CGI-${PV}.tar.gz"
-
-SRC_URI[sha256sum] = "9608a044ae2e87cefae8e69b113e3828552ddaba0d596a02f9954c6ac17fa294"
-
-S = "${WORKDIR}/CGI-${PV}"
-
-inherit cpan ptest-perl
-
-RDEPENDS:${PN} += "\
- libhtml-parser-perl \
- perl-module-base \
- perl-module-deprecate \
- perl-module-if \
-"
-
-do_install:prepend() {
- # requires "-T" (taint) command line option
- rm -rf ${B}/t/push.t
- rm -rf ${B}/t/utf8.t
- # tests building of docs
- rm -rf ${B}/t/compiles_pod.t
-}
-
-RDEPENDS:${PN}-ptest += " \
- libtest-deep-perl \
- libtest-warn-perl \
- perl-module-bytes \
- perl-module-file-find \
- perl-module-filehandle \
- perl-module-findbin \
- perl-module-lib \
- perl-module-perlio \
- perl-module-perlio-scalar \
- perl-module-test-more \
- perl-module-utf8 \
-"
-
-RPROVIDES:${PN} += "perl-module-cgi"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libcgi/libcgi-perl_4.60.bb b/meta-perl/recipes-perl/libcgi/libcgi-perl_4.60.bb
new file mode 100644
index 0000000000..7e330c3704
--- /dev/null
+++ b/meta-perl/recipes-perl/libcgi/libcgi-perl_4.60.bb
@@ -0,0 +1,50 @@
+DESCRIPTION = "CGI.pm is a stable, complete and mature solution for processing and preparing \
+HTTP requests and responses. Major features including processing form \
+submissions, file uploads, reading and writing cookies, query string generation \
+and manipulation, and processing and preparing HTTP headers."
+HOMEPAGE = "http://search.cpan.org/~leejo/CGI-4.28/lib/CGI.pod"
+SECTION = "libs"
+LICENSE = "Artistic-2.0 | GPL-2.0-only"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=415fc49abed2728f9480cd32c8d67beb"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/L/LE/LEEJO/CGI-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "c2f6330bcc7cacda0c905f57ca0d31da1b19a2e4e5babede648c49b13803ee11"
+
+S = "${WORKDIR}/CGI-${PV}"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} += "\
+ libhtml-parser-perl \
+ perl-module-base \
+ perl-module-deprecate \
+ perl-module-if \
+"
+
+do_install:prepend() {
+ # requires "-T" (taint) command line option
+ rm -rf ${B}/t/push.t
+ rm -rf ${B}/t/utf8.t
+ # tests building of docs
+ rm -rf ${B}/t/compiles_pod.t
+}
+
+RDEPENDS:${PN}-ptest += " \
+ libtest-deep-perl \
+ libtest-warn-perl \
+ perl-module-bytes \
+ perl-module-file-find \
+ perl-module-filehandle \
+ perl-module-findbin \
+ perl-module-lib \
+ perl-module-perlio \
+ perl-module-perlio-scalar \
+ perl-module-test-more \
+ perl-module-utf8 \
+"
+
+RPROVIDES:${PN} += "perl-module-cgi"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.13.bb b/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.13.bb
deleted file mode 100644
index 4cd6343878..0000000000
--- a/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.13.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Class::Method::Modifiers - provides Moose-like method modifiers"
-DESCRIPTION = "Method modifiers are a convenient feature from the CLOS \
-(Common Lisp Object System) world."
-
-SECTION = "libs"
-
-HOMEPAGE = "https://github.com/moose/Class-Method-Modifiers/"
-
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=16fd0ec7b73c0e158426f753943f1058"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Class-Method-Modifiers-${PV}.tar.gz"
-SRC_URI[md5sum] = "b1398e3682aa2e075b913b9f9000b596"
-SRC_URI[sha256sum] = "ab5807f71018a842de6b7a4826d6c1f24b8d5b09fcce5005a3309cf6ea40fd63"
-
-S = "${WORKDIR}/Class-Method-Modifiers-${PV}"
-
-inherit cpan
-
-RDEPENDS:${PN} = " perl-module-b \
- perl-module-base \
- perl-module-carp \
- perl-module-exporter \
- perl-module-strict \
- perl-module-warnings \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.15.bb b/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.15.bb
new file mode 100644
index 0000000000..f6ed718239
--- /dev/null
+++ b/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.15.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Class::Method::Modifiers - provides Moose-like method modifiers"
+DESCRIPTION = "Method modifiers are a convenient feature from the CLOS \
+(Common Lisp Object System) world."
+
+SECTION = "libs"
+
+HOMEPAGE = "https://github.com/moose/Class-Method-Modifiers/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d49d07ae038f38923335ac8cc301e1ba"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Class-Method-Modifiers-${PV}.tar.gz"
+SRC_URI[sha256sum] = "65cd85bfe475d066e9186f7a8cc636070985b30b0ebb1cde8681cf062c2e15fc"
+
+S = "${WORKDIR}/Class-Method-Modifiers-${PV}"
+
+inherit cpan
+
+RDEPENDS:${PN} = " perl-module-b \
+ perl-module-base \
+ perl-module-carp \
+ perl-module-exporter \
+ perl-module-strict \
+ perl-module-warnings \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libcompress/libcompress-raw-bzip2-perl_2.206.bb b/meta-perl/recipes-perl/libcompress/libcompress-raw-bzip2-perl_2.206.bb
new file mode 100644
index 0000000000..2bd98e73b4
--- /dev/null
+++ b/meta-perl/recipes-perl/libcompress/libcompress-raw-bzip2-perl_2.206.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Low-Level Interface to bzip2 compression library"
+DESCRIPTION = ""Compress::Raw::Bzip2" provides an interface to the in-memory \
+compression/uncompression functions from the bzip2 compression library."
+HOMEPAGE = "https://metacpan.org/release/Compress-Raw-Bzip2"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+LIC_FILES_CHKSUM = "file://README;beginline=8;endline=10;md5=85ab0f65a47c4c0f72dd6d033ff74ece"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "212b81db1c0ae822d19928619a603bd108cb5d5c4700fc67dc7cb169e0cc6525"
+
+DEPENDS += "bzip2"
+
+S = "${WORKDIR}/Compress-Raw-Bzip2-${PV}"
+
+inherit cpan
+
+export BUILD_BZIP2="0"
+export BZIP2_INCLUDE="-I${STAGING_DIR_HOST}${includedir}"
+
+do_compile() {
+ export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+ cpan_do_compile
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.206.bb b/meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.206.bb
new file mode 100644
index 0000000000..cdabdb1390
--- /dev/null
+++ b/meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.206.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Low-Level Interface to lzma compresion library."
+DESCRIPTION = "This module provides a Perl interface to allow reading and \
+wrting of lzma, lzip and xz files/buffers."
+HOMEPAGE = "https://metacpan.org/release/Compress-Raw-Lzma"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+LIC_FILES_CHKSUM = "file://README;beginline=8;endline=10;md5=b95311d4a7dbf3d0d3663edc094aced6"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/P/PM/PMQS/Compress-Raw-Lzma-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "e01a7040b84bdc67592d13eec0c788590e1f696d1d4f07c7097bd72a4f886eb4"
+
+DEPENDS += "xz"
+
+S = "${WORKDIR}/Compress-Raw-Lzma-${PV}"
+
+inherit cpan
+
+RDEPENDS:${PN} += "\
+ perl-module-universal \
+"
+
+export LIBLZMA_INCLUDE="-I${STAGING_DIR_HOST}${includedir}"
+export LIBLZMA_LIB="-I${STAGING_DIR_HOST}${libdir}"
+
+do_compile() {
+ export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+ cpan_do_compile
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.206.bb b/meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.206.bb
new file mode 100644
index 0000000000..47fe8e0035
--- /dev/null
+++ b/meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.206.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Perl interface to the zlib compression library."
+DESCRIPTION = "The Compress::Raw::Zlib module provides a Perl interface \
+to the zlib compression library (see 'AUTHOR' for details about where to \
+get zlib)."
+HOMEPAGE = "https://metacpan.org/release/Compress-Raw-Zlib"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+LIC_FILES_CHKSUM = "file://README;beginline=8;endline=17;md5=45bba5fa4937353fd4f505fa2108a6bf"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/P/PM/PMQS/Compress-Raw-Zlib-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "46785a6a383a1c843895b7f9f25d5d759e7c305159f9d1e04a3604eb74c77374"
+
+DEPENDS += "zlib"
+
+S = "${WORKDIR}/Compress-Raw-Zlib-${PV}"
+
+inherit cpan
+
+export BUILD_ZLIB="0"
+
+do_compile() {
+ export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+ cpan_do_compile
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.28.bb b/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.28.bb
deleted file mode 100644
index ff28c7663e..0000000000
--- a/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.28.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Perl module for read/write .ini style files"
-DESCRIPTION = "Config::Tiny is a Perl class to read and write .ini \
-configuration files with as little code as possible, reducing load time and \
-memory overhead."
-
-HOMEPAGE = "https://search.cpan.org/dist/Config-Tiny"
-SECTION = "libraries"
-
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ab27c3cedbdb0eb6e656a8722476191a"
-
-RDEPENDS:${PN} += "perl"
-
-S = "${WORKDIR}/Config-Tiny-${PV}"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RS/RSAVAGE/Config-Tiny-${PV}.tgz"
-
-SRC_URI[sha256sum] = "12df843a0d29d48f61bcc14c4f18f0858fd27a8dd829a00319529d654fe01500"
-
-inherit cpan
diff --git a/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.30.bb b/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.30.bb
new file mode 100644
index 0000000000..ccdc1e0cb8
--- /dev/null
+++ b/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.30.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Perl module for read/write .ini style files"
+DESCRIPTION = "Config::Tiny is a Perl class to read and write .ini \
+configuration files with as little code as possible, reducing load time and \
+memory overhead."
+
+HOMEPAGE = "https://search.cpan.org/dist/Config-Tiny"
+SECTION = "libraries"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ab27c3cedbdb0eb6e656a8722476191a"
+
+RDEPENDS:${PN} += "perl"
+
+S = "${WORKDIR}/Config-Tiny-${PV}"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RS/RSAVAGE/Config-Tiny-${PV}.tgz"
+
+SRC_URI[sha256sum] = "b2f7345619b3b8e636dd39ea010731c9dc2bfb8f022bcbd86ae6ad17866e110d"
+
+inherit cpan
diff --git a/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.319.bb b/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.319.bb
index 5db0bb4269..5c3701f16b 100644
--- a/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.319.bb
+++ b/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.319.bb
@@ -38,4 +38,4 @@ S = "${WORKDIR}/Config-AutoConf-${PV}"
inherit cpan ptest-perl
-BBCLASSEXTEND = "native nativesdk"
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.70.bb b/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.70.bb
deleted file mode 100644
index 17ec3298c8..0000000000
--- a/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.70.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "A Perl DBI driver for SQLite"
-DESCRIPTION = "DBD::SQLite is a Perl DBI driver for SQLite, that includes the entire \
-thing in the distribution. So in order to get a fast transaction capable \
-RDBMS working for your perl project you simply have to install this \
-module, and nothing else. \
-"
-HOMEPAGE = "https://metacpan.org/release/DBD-SQLite"
-
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1726e2117494ba3e13e1c3d93f795360"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/I/IS/ISHIGAKI/DBD-SQLite-${PV}.tar.gz \
- file://sqlite-perl-test.pl \
-"
-
-SRC_URI[sha256sum] = "40fd8ddf539e0e773a7a4e6d376794c3301459f9ab0050978bdcf97113dafe3e"
-
-UPSTREAM_CHECK_REGEX = "DBD\-SQLite\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
-
-S = "${WORKDIR}/DBD-SQLite-${PV}"
-
-DEPENDS += "libdbi-perl-native"
-
-inherit cpan ptest-perl
-
-RDEPENDS:${PN} += "libdbi-perl \
- sqlite3 \
- perl-module-constant \
- perl-module-locale \
- perl-module-tie-hash \
-"
-
-do_install:append() {
- if [ ${PERL_DBM_TEST} = "1" ]; then
- install -m 755 -D ${WORKDIR}/sqlite-perl-test.pl ${D}/${bindir}/sqlite-perl-test.pl
- fi
-}
-
-do_install_ptest() {
- cp -r ${B}/MANIFEST ${D}${PTEST_PATH}
- chown -R root:root ${D}${PTEST_PATH}
-}
-
-RDEPENDS:${PN}-ptest += " \
- libtest-nowarnings-perl \
- perl-module-lib \
- perl-module-encode \
- perl-module-file-spec \
- perl-module-file-spec-functions \
- perl-module-findbin \
- perl-module-test-more \
- "
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.74.bb b/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.74.bb
new file mode 100644
index 0000000000..7e38da8836
--- /dev/null
+++ b/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.74.bb
@@ -0,0 +1,55 @@
+SUMMARY = "A Perl DBI driver for SQLite"
+DESCRIPTION = "DBD::SQLite is a Perl DBI driver for SQLite, that includes the entire \
+thing in the distribution. So in order to get a fast transaction capable \
+RDBMS working for your perl project you simply have to install this \
+module, and nothing else. \
+"
+HOMEPAGE = "https://metacpan.org/release/DBD-SQLite"
+
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1726e2117494ba3e13e1c3d93f795360"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/I/IS/ISHIGAKI/DBD-SQLite-${PV}.tar.gz \
+ file://sqlite-perl-test.pl \
+"
+
+SRC_URI[sha256sum] = "8994997d84b9feb4547795f78746c661fb72e3cb6a25dbdd789b731f5688a4dd"
+
+UPSTREAM_CHECK_REGEX = "DBD\-SQLite\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/DBD-SQLite-${PV}"
+
+DEPENDS += "libdbi-perl-native"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} += "libdbi-perl \
+ sqlite3 \
+ perl-module-constant \
+ perl-module-locale \
+ perl-module-tie-hash \
+"
+
+do_install:append() {
+ if [ ${PERL_DBM_TEST} = "1" ]; then
+ install -m 755 -D ${WORKDIR}/sqlite-perl-test.pl ${D}/${bindir}/sqlite-perl-test.pl
+ fi
+}
+
+do_install_ptest() {
+ cp -r ${B}/MANIFEST ${D}${PTEST_PATH}
+ chown -R root:root ${D}${PTEST_PATH}
+}
+
+RDEPENDS:${PN}-ptest += " \
+ libtest-nowarnings-perl \
+ perl-module-lib \
+ perl-module-encode \
+ perl-module-file-spec \
+ perl-module-file-spec-functions \
+ perl-module-findbin \
+ perl-module-test-more \
+ "
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb b/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb
deleted file mode 100644
index ae193dbc6a..0000000000
--- a/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Encode::Locale - Determine the locale encoding"
-AUTHOR = "Gisle Aas <gisle@activestate.com>"
-HOMEPAGE = "https://metacpan.org/module/Encode::Locale"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://README;md5=14e8006c2134045725fd81292a323d24"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/G/GA/GAAS/Encode-Locale-${PV}.tar.gz"
-SRC_URI[md5sum] = "fcfdb8e4ee34bcf62aed429b4a23db27"
-SRC_URI[sha256sum] = "176fa02771f542a4efb1dbc2a4c928e8f4391bf4078473bd6040d8f11adb0ec1"
-
-S = "${WORKDIR}/Encode-Locale-${PV}"
-
-inherit cpan
-
-RDEPENDS:${PN} += "libencode-perl \
- libencode-alias-perl \
- perl-module-base \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libencode/libencode-perl_3.19.bb b/meta-perl/recipes-perl/libencode/libencode-perl_3.19.bb
deleted file mode 100644
index 352517ca67..0000000000
--- a/meta-perl/recipes-perl/libencode/libencode-perl_3.19.bb
+++ /dev/null
@@ -1,105 +0,0 @@
-# NOTE:
-# You should use perl-module-encode rather than this package
-# unless you specifically need a version newer than what is
-# provided by perl.
-
-SUMMARY = "Encode - character encodings"
-DESCRIPTION = "The \"Encode\" module provides the interfaces between \
-Perl's strings and the rest of the system. Perl strings are sequences \
-of characters."
-
-AUTHOR = "Dan Kogai <dankogai+cpan@gmail.com>"
-HOMEPAGE = "https://metacpan.org/release/Encode"
-SECTION = "lib"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://META.json;beginline=8;endline=10;md5=b12e3be1e17a7e99ca4f429ff32c28b5"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/DANKOGAI/Encode-${PV}.tar.gz"
-SRC_URI[sha256sum] = "9163f848eef69e4d4cc8838397f0861fd9ea7ede001117dbd9694f8d95052ef5"
-
-UPSTREAM_CHECK_REGEX = "Encode\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
-
-S = "${WORKDIR}/Encode-${PV}"
-
-inherit cpan ptest-perl
-
-do_install:prepend() {
- # Requires "-T" (taint) option on command line
- rm -rf ${B}/t/taint.t
- # Circular dependency of perl-module-open on perl-module-encode
- # and we cannot load perl-module-encode because we are providing
- # an alternative
- rm -rf ${B}/t/use-Encode-Alias.t
-}
-
-do_install_ptest() {
- mkdir ${D}${PTEST_PATH}/bin
- cp -r ${B}/bin/piconv ${D}${PTEST_PATH}/bin
- cp -r ${B}/blib ${D}${PTEST_PATH}
- chown -R root:root ${D}${PTEST_PATH}
-}
-
-# file /usr/bin/enc2xs from install of perl-misc-5.24.1-r0.i586 conflicts with file from package libencode-perl-2.94-r0.i586
-# file /usr/bin/encguess from install of perl-misc-5.24.1-r0.i586 conflicts with file from package libencode-perl-2.94-r0.i586
-# file /usr/bin/piconv from install of perl-misc-5.24.1-r0.i586 conflicts with file from package libencode-perl-2.94-r0.i586
-RCONFLICTS:${PN} = "perl-misc perl-module-encode"
-
-RDEPENDS:${PN} += " \
- perl-module-bytes \
- perl-module-constant \
- perl-module-parent \
- perl-module-storable \
- perl-module-xsloader \
- "
-
-RPROVIDES:${PN} += " \
- libencode-alias-perl \
- libencode-byte-perl \
- libencode-cjkconstants-perl \
- libencode-cn-perl \
- libencode-cn-hz-perl \
- libencode-config-perl \
- libencode-ebcdic-perl \
- libencode-encoder-perl \
- libencode-encoding-perl \
- libencode-gsm0338-perl \
- libencode-guess-perl \
- libencode-jp-perl \
- libencode-jp-h2z-perl \
- libencode-jp-jis7-perl \
- libencode-kr-perl \
- libencode-kr-2022_kr-perl \
- libencode-mime-header-perl \
- libencode-mime-name-perl \
- libencode-symbol-perl \
- libencode-tw-perl \
- libencode-unicode-perl \
- libencode-unicode-utf7-perl \
- libencoding-perl \
- libencode-internal-perl \
- libencode-mime-header-iso_2022_jp-perl \
- libencode-utf8-perl \
- libencode-utf_ebcdic-perl \
- "
-
-RDEPENDS:${PN}-ptest += " \
- perl-module-blib \
- perl-module-charnames \
- perl-module-file-compare \
- perl-module-file-copy \
- perl-module-filehandle \
- perl-module-findbin \
- perl-module-integer \
- perl-module-io-select \
- perl-module-ipc-open3 \
- perl-module-mime-base64 \
- perl-module-perlio \
- perl-module-perlio-encoding \
- perl-module-perlio-scalar \
- perl-module-test-more \
- perl-module-tie-scalar \
- perl-module-unicore \
- perl-module-utf8 \
- "
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/liberror/liberror-perl_0.17029.bb b/meta-perl/recipes-perl/liberror/liberror-perl_0.17029.bb
new file mode 100644
index 0000000000..e54bb11ccd
--- /dev/null
+++ b/meta-perl/recipes-perl/liberror/liberror-perl_0.17029.bb
@@ -0,0 +1,48 @@
+SUMMARY = "Error - Error/exception handling in an OO-ish way"
+DESCRIPTION = "The Error package provides two interfaces. Firstly \
+Error provides a procedural interface to exception handling. \
+Secondly Error is a base class for errors/exceptions that can \
+either be thrown, for subsequent catch, or can simply be recorded."
+HOMEPAGE = "https://github.com/shlomif/perl-error.pm"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8f3499d09ee74a050c0319391ff9d100"
+
+
+DEPENDS += "perl"
+
+RDEPENDS:${PN} += " \
+ perl-module-carp \
+ perl-module-exporter \
+ perl-module-scalar-util \
+ perl-module-overload \
+ perl-module-strict \
+ perl-module-vars \
+ perl-module-warnings \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ perl-module-base \
+ perl-module-file-spec \
+ perl-module-io-handle \
+ perl-module-ipc-open3 \
+ perl-module-lib \
+ perl-module-test-more \
+"
+
+SRC_URI = "http://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Error-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "6732b1c6207e4a9a3e2987c88368039a"
+SRC_URI[sha256sum] = "1a23f7913032aed6d4b68321373a3899ca66590f4727391a091ec19c95bf7adc"
+
+S = "${WORKDIR}/Error-${PV}"
+
+inherit cpan ptest-perl
+
+do_install:prepend() {
+ # test requires "-T" (taint) command line option
+ rm -rf ${B}/t/pod-coverage.t
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.26.bb b/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.26.bb
deleted file mode 100644
index 04a29fdc21..0000000000
--- a/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.26.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "ExtUtils::CppGuess - guess C++ compiler and flags"
-DESCRIPTION = "ExtUtils::CppGuess attempts to guess the system's C++ \
-compiler that is compatible with the C compiler that your perl was built \
-with. \
-It can generate the necessary options to the Module::Build constructor or \
-to ExtUtils::MakeMaker's WriteMakefile function."
-SECTION = "libs"
-
-HOMEPAGE = "http://search.cpan.org/~smueller/ExtUtils-CppGuess/"
-
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://README;beginline=81;endline=84;md5=84c0390b90ea8c6702ce659b67bed699"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETJ/ExtUtils-CppGuess-${PV}.tar.gz"
-SRC_URI[sha256sum] = "c8b362b860172a4076acee00438f52b86464f2c500702cfcf7527811ff9a683e"
-
-S = "${WORKDIR}/ExtUtils-CppGuess-${PV}"
-
-inherit cpan
-
-do_install () {
- cpan_do_install
-}
-
-RDEPENDS:${PN} = " libcapture-tiny-perl \
- perl-module-scalar-util \
- perl-module-io-file \
- perl-module-extutils-makemaker \
- perl-module-file-spec \
- perl-module-exporter \
- perl-module-carp \
- perl-module-file-temp \
- perl-module-lib \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.27.bb b/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.27.bb
new file mode 100644
index 0000000000..45b7726509
--- /dev/null
+++ b/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.27.bb
@@ -0,0 +1,36 @@
+SUMMARY = "ExtUtils::CppGuess - guess C++ compiler and flags"
+DESCRIPTION = "ExtUtils::CppGuess attempts to guess the system's C++ \
+compiler that is compatible with the C compiler that your perl was built \
+with. \
+It can generate the necessary options to the Module::Build constructor or \
+to ExtUtils::MakeMaker's WriteMakefile function."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~smueller/ExtUtils-CppGuess/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;beginline=81;endline=84;md5=84c0390b90ea8c6702ce659b67bed699"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETJ/ExtUtils-CppGuess-${PV}.tar.gz"
+SRC_URI[sha256sum] = "b2c7b581901054a32dfcea12536fda8626457ed0bfbc02600bd354bde7e2a9b4"
+
+S = "${WORKDIR}/ExtUtils-CppGuess-${PV}"
+
+inherit cpan
+
+do_install () {
+ cpan_do_install
+}
+
+RDEPENDS:${PN} = " libcapture-tiny-perl \
+ perl-module-scalar-util \
+ perl-module-io-file \
+ perl-module-extutils-makemaker \
+ perl-module-file-spec \
+ perl-module-exporter \
+ perl-module-carp \
+ perl-module-file-temp \
+ perl-module-lib \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.013.bb b/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.013.bb
deleted file mode 100644
index 3fa4fb17b4..0000000000
--- a/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.013.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "A simple, sane and efficient module to slurp a file"
-DESCRIPTION = "This module provides functions for fast and correct slurping and spewing. \
-All functions are optionally exported. All functions throw exceptions on \
-errors, write functions don't return any meaningful value."
-
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-
-HOMEPAGE= "https://metacpan.org/release/File-Slurper"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
-file://${COMMON_LICENSE_DIR}/GPL-1.0-or-later;md5=30c0b8a5048cc2f4be5ff15ef0d8cf61"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/File-Slurper-${PV}.tar.gz"
-
-SRC_URI[sha256sum] = "e2f6a4029a6a242d50054044f1fb86770b9b5cc4daeb1a967f91ffb42716a8c5"
-RDEPENDS:${PN} = " \
- perl-module-carp \
- perl-module-encode \
- perl-module-exporter \
- perl-module-perlio \
- perl-module-perlio-encoding \
- perl-module-strict \
- perl-module-warnings \
-"
-
-RDEPENDS:${PN}-ptest += "libtest-warnings-perl \
- perl-module-test-more \
- "
-
-S = "${WORKDIR}/File-Slurper-${PV}"
-
-inherit cpan ptest-perl
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.014.bb b/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.014.bb
new file mode 100644
index 0000000000..e29abb3e31
--- /dev/null
+++ b/meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.014.bb
@@ -0,0 +1,35 @@
+SUMMARY = "A simple, sane and efficient module to slurp a file"
+DESCRIPTION = "This module provides functions for fast and correct slurping and spewing. \
+All functions are optionally exported. All functions throw exceptions on \
+errors, write functions don't return any meaningful value."
+
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+HOMEPAGE= "https://metacpan.org/release/File-Slurper"
+
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
+file://${COMMON_LICENSE_DIR}/GPL-1.0-or-later;md5=30c0b8a5048cc2f4be5ff15ef0d8cf61"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/File-Slurper-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "d5a36487339888c3cd758e648160ee1d70eb4153cacbaff57846dbcefb344b0c"
+RDEPENDS:${PN} = " \
+ perl-module-carp \
+ perl-module-encode \
+ perl-module-exporter \
+ perl-module-perlio \
+ perl-module-perlio-encoding \
+ perl-module-strict \
+ perl-module-warnings \
+"
+
+RDEPENDS:${PN}-ptest += "libtest-warnings-perl \
+ perl-module-test-more \
+ "
+
+S = "${WORKDIR}/File-Slurper-${PV}"
+
+inherit cpan ptest-perl
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libio/compress-raw-bzip2-perl_2.096.bb b/meta-perl/recipes-perl/libio/compress-raw-bzip2-perl_2.096.bb
deleted file mode 100644
index ef69987ea3..0000000000
--- a/meta-perl/recipes-perl/libio/compress-raw-bzip2-perl_2.096.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-DESCRIPTION = ""Compress::Raw::Bzip2" provides an interface to the in-memory \
-compression/uncompression functions from the bzip2 compression library."
-
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-
-MAINTAINER= "Poky <poky@yoctoproject.org>"
-HOMEPAGE= "https://metacpan.org/release/Compress-Raw-Bzip2"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
-file://${COMMON_LICENSE_DIR}/GPL-1.0-only;md5=e9e36a9de734199567a4d769498f743d"
-
-SRC_URI = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.096.tar.gz"
-
-SRC_URI[md5sum] = "4fdb7ea5071e4b774c52c37331386355"
-SRC_URI[sha256sum] = "a564e7634eca7740c5487d01effe1461e9e51b8909e69b3d8f5be98997958cbe"
-
-DEPENDS += "bzip2"
-
-S = "${WORKDIR}/Compress-Raw-Bzip2-${PV}"
-
-inherit cpan
-
-export BUILD_BZIP2="0"
-export BZIP2_INCLUDE="-I${STAGING_DIR_HOST}${includedir}"
-
-do_compile() {
- export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
- cpan_do_compile
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libio/compress-raw-lzma-perl_2.096.bb b/meta-perl/recipes-perl/libio/compress-raw-lzma-perl_2.096.bb
deleted file mode 100644
index 04295cd3c6..0000000000
--- a/meta-perl/recipes-perl/libio/compress-raw-lzma-perl_2.096.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-DESCRIPTION = ""Compress::Raw::Lzma" provides an interface to the in-memory \
-compression/uncompression functions from the lzma compression library."
-
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-
-MAINTAINER= "Poky <poky@yoctoproject.org>"
-HOMEPAGE= "https://metacpan.org/release/Compress-Raw-Lzma"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
-file://${COMMON_LICENSE_DIR}/GPL-1.0-only;md5=e9e36a9de734199567a4d769498f743d"
-
-SRC_URI = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/Compress-Raw-Lzma-2.096.tar.gz"
-
-SRC_URI[md5sum] = "b5079bb43712fcd1e74b80777fa376ed"
-SRC_URI[sha256sum] = "f3afb267b1303b0f125976e9e4a70c6a4a205e35e7c99b408911f5e5c6578217"
-
-DEPENDS += "xz"
-
-S = "${WORKDIR}/Compress-Raw-Lzma-${PV}"
-
-inherit cpan
-
-export LIBLZMA_INCLUDE="-I${STAGING_DIR_HOST}${includedir}"
-export LIBLZMA_LIB="-I${STAGING_DIR_HOST}${libdir}"
-
-do_compile() {
- export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
- cpan_do_compile
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libio/compress-raw-zlib-perl_2.096.bb b/meta-perl/recipes-perl/libio/compress-raw-zlib-perl_2.096.bb
deleted file mode 100644
index 81c370df2a..0000000000
--- a/meta-perl/recipes-perl/libio/compress-raw-zlib-perl_2.096.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-DESCRIPTION = "The *Compress::Raw::Zlib* module provides a Perl interface to the *zlib* \
-compression library (see "AUTHOR" for details about where to get *zlib*)."
-
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-
-MAINTAINER= "Poky <poky@yoctoproject.org>"
-HOMEPAGE= "https://metacpan.org/release/Compress-Raw-Zlib"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
-file://${COMMON_LICENSE_DIR}/GPL-1.0-only;md5=e9e36a9de734199567a4d769498f743d"
-
-SRC_URI = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/Compress-Raw-Zlib-2.096.tar.gz"
-
-SRC_URI[md5sum] = "4144ecdd901231553447998cf8035e4a"
-SRC_URI[sha256sum] = "cd4cba20c159a7748b8bc91278524a7da70573d9531fde62298609a5f1c65912"
-
-DEPENDS += "zlib"
-
-S = "${WORKDIR}/Compress-Raw-Zlib-${PV}"
-
-inherit cpan
-
-export BUILD_ZLIB="0"
-
-do_compile() {
- export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
- cpan_do_compile
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libio/files/run-ptest b/meta-perl/recipes-perl/libio/files/run-ptest
deleted file mode 100644
index c9f9ca94d0..0000000000
--- a/meta-perl/recipes-perl/libio/files/run-ptest
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-for case in `find t -type f -name '*.t'`; do
- perl $case >$case.output 2>&1
- ret=$?
- cat $case.output
- if [ $ret -ne 0 ]; then
- echo "FAIL: ${case%.t}"
- elif grep -i 'SKIP' $case.output; then
- echo "SKIP: ${case%.t}"
- else
- echo "PASS: ${case%.t}"
- fi
-
- rm -f $case.output
-done
diff --git a/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.096.bb b/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.096.bb
deleted file mode 100644
index 15952f17e6..0000000000
--- a/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.096.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "This module provides a Perl interface that allows writing lzma compressed \
-data to files or buffer."
-
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-
-MAINTAINER= "Poky <poky@yoctoproject.org>"
-HOMEPAGE= "https://metacpan.org/release/IO-Compress-Lzma"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
-file://${COMMON_LICENSE_DIR}/GPL-1.0-only;md5=e9e36a9de734199567a4d769498f743d"
-
-SRC_URI = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/IO-Compress-Lzma-2.096.tar.gz"
-
-SRC_URI[md5sum] = "6c1b70740605b8073e4fbb5ba1e7bbdb"
-SRC_URI[sha256sum] = "2f29125f19bb41d29c4b5a2467e3560b7bce5d428176a046b7c8a51609dce6e8"
-RDEPENDS:${PN} += "compress-raw-lzma-perl"
-RDEPENDS:${PN} += "libio-compress-perl"
-
-S = "${WORKDIR}/IO-Compress-Lzma-${PV}"
-
-inherit cpan
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.206.bb b/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.206.bb
new file mode 100644
index 0000000000..1959df5e04
--- /dev/null
+++ b/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.206.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Perl interface to allow reading and writing of lzma files/buffers."
+DESCRIPTION = "This module provides a Perl interface to allow reading and \
+writing of lzma files/buffers."
+HOMEPAGE = "https://metacpan.org/release/IO-Compress-Lzma"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+LIC_FILES_CHKSUM = "file://README;beginline=8;endline=10;md5=b95311d4a7dbf3d0d3663edc094aced6"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/P/PM/PMQS/IO-Compress-Lzma-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "6c600f9bbb1a2d834b1decd0bd5863dcea52e0ac17de101b5085e0e3cb27285c"
+
+S = "${WORKDIR}/IO-Compress-Lzma-${PV}"
+
+inherit cpan
+
+RDEPENDS:${PN} += "\
+ perl-module-autoloader \
+ libcompress-raw-lzma-perl \
+ libio-compress-perl \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libio/libio-compress-perl_2.096.bb b/meta-perl/recipes-perl/libio/libio-compress-perl_2.096.bb
deleted file mode 100644
index c00d8945b7..0000000000
--- a/meta-perl/recipes-perl/libio/libio-compress-perl_2.096.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "This module is not intended for direct use in application code. Its sole \
-purpose is to be sub-classed by IO::Compress modules."
-
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-
-MAINTAINER= "Poky <poky@yoctoproject.org>"
-HOMEPAGE= "https://metacpan.org/release/IO-Compress"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
-file://${COMMON_LICENSE_DIR}/GPL-1.0-only;md5=e9e36a9de734199567a4d769498f743d"
-
-SRC_URI = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/IO-Compress-2.096.tar.gz"
-
-SRC_URI[md5sum] = "18ad197cad5ca87bc3a7d2538998e017"
-SRC_URI[sha256sum] = "9d219fd5df4b490b5d2f847921e3cb1c3392758fa0bae9b05a8992b3620ba572"
-RDEPENDS:${PN} += "compress-raw-bzip2-perl"
-RDEPENDS:${PN} += "compress-raw-zlib-perl"
-
-S = "${WORKDIR}/IO-Compress-${PV}"
-
-inherit cpan
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libio/libio-compress-perl_2.206.bb b/meta-perl/recipes-perl/libio/libio-compress-perl_2.206.bb
new file mode 100644
index 0000000000..c58e3fa30c
--- /dev/null
+++ b/meta-perl/recipes-perl/libio/libio-compress-perl_2.206.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Perl interface to allow reading and writing of compressed data."
+DESCRIPTION = "This distribution provides a Perl interface to allow reading \
+and writing of compressed data created with the zlib and bzip2. \
+\
+IO-Compress supports reading and writing of the following compressed data \
+formats \
+ * bzip2 \
+ * RFC 1950 \
+ * RFC 1951 \
+ * RFC 1952 (i.e. gzip) \
+ * zip \
+"
+HOMEPAGE = "https://metacpan.org/release/IO-Compress"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+LIC_FILES_CHKSUM = "file://README;beginline=8;endline=10;md5=8e78b88f9c8ac08ae03e8ea81195ca45"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/P/PM/PMQS/IO-Compress-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "7d3062b9a494f757e8d0614f220d83f22731bbda1aeb5f7cff0e72a83f433d35"
+
+S = "${WORKDIR}/IO-Compress-${PV}"
+
+inherit cpan
+
+RDEPENDS:${PN} += "\
+ perl-module-bytes \
+ perl-module-cwd \
+ perl-module-encode \
+ perl-module-file-glob \
+ perl-module-file-spec \
+ perl-module-posix \
+ perl-module-scalar-util \
+ perl-module-time-local \
+ perl-module-utf8 \
+ libcompress-raw-bzip2-perl \
+ libcompress-raw-zlib-perl \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.075.bb b/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.075.bb
deleted file mode 100644
index 0a88d93056..0000000000
--- a/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.075.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Perl library for transparent SSL"
-DESCRIPTION = "This module is a true drop-in replacement for IO::Socket::INET that \
-uses SSL to encrypt data before it is transferred to a remote server \
-or client. IO::Socket::SSL supports all the extra features that one \
-needs to write a full-featured SSL client or server application: \
-multiple SSL contexts, cipher selection, certificate verification, and \
-SSL version selection. As an extra bonus, it works perfectly with \
-mod_perl."
-HOMEPAGE = "http://search.cpan.org/dist/IO-Socket-SSL/"
-SECTION = "libs"
-
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://META.yml;beginline=12;endline=12;md5=963ce28228347875ace682de56eef8e8"
-
-RDEPENDS:${PN} += "\
- libnet-ssleay-perl \
- perl-module-autoloader \
- perl-module-scalar-util \
- perl-module-io-socket \
-"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SU/SULLR/IO-Socket-SSL-${PV}.tar.gz \
- file://run-ptest \
- "
-SRC_URI[sha256sum] = "c30ee2220b1e181a968ebbc81861d0cadf334b001377a44105ae5a8637ddae8c"
-
-S = "${WORKDIR}/IO-Socket-SSL-${PV}"
-
-inherit cpan ptest
-
-do_install:append () {
- mkdir -p ${D}${docdir}/${PN}/
- cp ${S}/BUGS ${D}${docdir}/${PN}/
- cp ${S}/Changes ${D}${docdir}/${PN}/
- cp ${S}/README ${D}${docdir}/${PN}/
- cp -pRP ${S}/docs ${D}${docdir}/${PN}/
- cp -pRP ${S}/certs ${D}${docdir}/${PN}/
- cp -pRP ${S}/example ${D}${docdir}/${PN}/
-}
-
-do_install_ptest () {
- cp -r ${B}/t ${D}${PTEST_PATH}
- cp -r ${B}/certs ${D}${PTEST_PATH}
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.085.bb b/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.085.bb
new file mode 100644
index 0000000000..f7b3d416df
--- /dev/null
+++ b/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.085.bb
@@ -0,0 +1,54 @@
+SUMMARY = "Perl library for transparent SSL"
+DESCRIPTION = "This module is a true drop-in replacement for IO::Socket::INET that \
+uses SSL to encrypt data before it is transferred to a remote server \
+or client. IO::Socket::SSL supports all the extra features that one \
+needs to write a full-featured SSL client or server application: \
+multiple SSL contexts, cipher selection, certificate verification, and \
+SSL version selection. As an extra bonus, it works perfectly with \
+mod_perl."
+HOMEPAGE = "http://search.cpan.org/dist/IO-Socket-SSL/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://META.yml;beginline=12;endline=12;md5=963ce28228347875ace682de56eef8e8"
+
+RDEPENDS:${PN} += "\
+ libmozilla-ca-perl \
+ libnet-ssleay-perl \
+ perl-module-autoloader \
+ perl-module-io-socket \
+ perl-module-scalar-util \
+"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/S/SU/SULLR/IO-Socket-SSL-${PV}.tar.gz"
+SRC_URI[sha256sum] = "95b2f7c0628a7e246a159665fbf0620d0d7835e3a940f22d3fdd47c3aa799c2e"
+
+S = "${WORKDIR}/IO-Socket-SSL-${PV}"
+
+inherit cpan ptest-perl
+
+do_install:append () {
+ mkdir -p ${D}${docdir}/${PN}/
+ cp ${S}/BUGS ${D}${docdir}/${PN}/
+ cp ${S}/Changes ${D}${docdir}/${PN}/
+ cp ${S}/README ${D}${docdir}/${PN}/
+ cp -pRP ${S}/docs ${D}${docdir}/${PN}/
+ cp -pRP ${S}/t/certs ${D}${docdir}/${PN}/
+ cp -pRP ${S}/example ${D}${docdir}/${PN}/
+}
+
+RDEPENDS:${PN}-ptest += "\
+ libnet-idn-encode \
+ liburi-perl \
+ perl-module-file-glob \
+ perl-module-findbin \
+ perl-module-io-socket-inet \
+ perl-module-io-socket-ip \
+ perl-module-perlio \
+ perl-module-perlio-scalar \
+ perl-module-test-more \
+"
+
+do_install_ptest:append () {
+ cp -r ${B}/t/certs ${D}${PTEST_PATH}
+}
diff --git a/meta-perl/recipes-perl/libmime/libmime-types-perl_2.17.bb b/meta-perl/recipes-perl/libmime/libmime-types-perl_2.17.bb
deleted file mode 100644
index d1f6f8c59c..0000000000
--- a/meta-perl/recipes-perl/libmime/libmime-types-perl_2.17.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "MIME::Types - Definition of MIME types"
-DESCRIPTION = "MIME types are used in MIME compliant lines, for instance \
-as part of e-mail and HTTP traffic, to indicate the type of content which \
-is transmitted. Sometimes real knowledge about a mime-type is need.\
-\n\
-This module maintains a set of MIME::Type objects, which each describe \
-one known mime type."
-HOMEPAGE = "http://search.cpan.org/~markov/MIME-Types-${PV}"
-SECTION = "libraries"
-
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=11;md5=963ce28228347875ace682de56eef8e8"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MARKOV/MIME-Types-${PV}.tar.gz \
- file://run-ptest \
- "
-SRC_URI[md5sum] = "6f1441addab947137bac92c379a47ba3"
-SRC_URI[sha256sum] = "e04ed7d42f1ff3150a303805f2689c28f80b92c511784d4641cb7f040d3e8ff6"
-
-S = "${WORKDIR}/MIME-Types-${PV}"
-
-inherit cpan ptest
-
-RDEPENDS:${PN} = "\
- perl-module-base \
- perl-module-file-basename \
- perl-module-file-spec \
- perl-module-overload \
-"
-
-RDEPENDS:${PN}-ptest = "perl-module-lib perl-module-test-more"
-#RSUGGESTS:${PN}-ptest = "libmojo-base-perl"
-
-do_install () {
- cpan_do_install
- install -d ${D}${bindir}
- install -m 755 ${S}/bin/collect-types ${D}${bindir}/collect-types
-}
-
-do_install_ptest () {
- cp -r ${B}/t ${D}${PTEST_PATH}
-}
diff --git a/meta-perl/recipes-perl/libmime/libmime-types-perl_2.26.bb b/meta-perl/recipes-perl/libmime/libmime-types-perl_2.26.bb
new file mode 100644
index 0000000000..fa4ad6fc4c
--- /dev/null
+++ b/meta-perl/recipes-perl/libmime/libmime-types-perl_2.26.bb
@@ -0,0 +1,46 @@
+SUMMARY = "MIME::Types - Definition of MIME types"
+DESCRIPTION = "MIME types are used in MIME compliant lines, for instance \
+as part of e-mail and HTTP traffic, to indicate the type of content which \
+is transmitted. Sometimes real knowledge about a mime-type is need.\
+\n\
+This module maintains a set of MIME::Type objects, which each describe \
+one known mime type."
+HOMEPAGE = "http://search.cpan.org/~markov/MIME-Types-${PV}"
+SECTION = "libraries"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=11;md5=963ce28228347875ace682de56eef8e8"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MARKOV/MIME-Types-${PV}.tar.gz \
+ file://run-ptest \
+ "
+SRC_URI[sha256sum] = "bc738483cb4cdb47d61e85fe9304fa929aa9ab927e3171ec2ba2ab1cd7cefdff"
+
+S = "${WORKDIR}/MIME-Types-${PV}"
+
+inherit cpan ptest
+
+RDEPENDS:${PN} = "\
+ perl-module-base \
+ perl-module-carp \
+ perl-module-constant \
+ perl-module-cwd \
+ perl-module-encode-encoding \
+ perl-module-file-basename \
+ perl-module-file-spec \
+ perl-module-list-util \
+ perl-module-overload \
+ perl-module-perlio \
+ perl-module-perlio-encoding \
+"
+
+RDEPENDS:${PN}-ptest = "\
+ perl-module-lib \
+ perl-module-test-more \
+"
+
+#RSUGGESTS:${PN}-ptest = "libmojo-base-perl"
+
+do_install_ptest () {
+ cp -r ${B}/t ${D}${PTEST_PATH}
+}
diff --git a/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb b/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb
deleted file mode 100644
index ff3f4d6944..0000000000
--- a/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.039.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "Module::Build::Tiny - A tiny replacement for Module::Build"
-DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \
-Makefile.PL file to drive distribution configuration, build, test and \
-installation. Traditionally, Build.PL uses Module::Build as the underlying \
-build system. This module provides a simple, lightweight, drop-in replacement. \
-Whereas Module::Build has over 6,700 lines of code; this module has less than \
-120, yet supports the features needed by most distributions."
-SECTION = "libs"
-
-HOMEPAGE = "http://search.cpan.org/~leont/Module-Build-Tiny/"
-
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=57b8100f0b648cd37fbc3725fe3c111a"
-
-DEPENDS = "libextutils-config-perl-native libextutils-helpers-perl-native libextutils-installpaths-perl-native"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-Tiny-${PV}.tar.gz"
-SRC_URI[md5sum] = "2332c90c17454107fea3f2614e11a3a9"
-SRC_URI[sha256sum] = "7d580ff6ace0cbe555bf36b86dc8ea232581530cbeaaea09bccb57b55797f11c"
-
-S = "${WORKDIR}/Module-Build-Tiny-${PV}"
-
-inherit cpan_build
-
-do_install () {
- cpan_build_do_install
-}
-
-RDEPENDS:${PN} = " libextutils-config-perl \
- libextutils-helpers-perl \
- libextutils-installpaths-perl \
- perl-module-xsloader \
- perl-module-file-spec \
- perl-module-io-handle \
- perl-module-tap-harness-env \
- perl-module-ipc-open3 \
- perl-module-file-path \
- perl-module-cpan \
- perl-module-extutils-cbuilder \
- perl-module-getopt-long \
- perl-module-extutils-makemaker \
- perl-module-exporter \
- perl-module-carp \
- perl-module-test-more \
- perl-module-text-parsewords \
- perl-module-load \
- perl-module-file-temp \
- perl-module-data-dumper \
- perl-module-extutils-parsexs \
- perl-module-pod-man \
- perl-module-json-pp \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.047.bb b/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.047.bb
new file mode 100644
index 0000000000..db765b88f1
--- /dev/null
+++ b/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.047.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Module::Build::Tiny - A tiny replacement for Module::Build"
+DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \
+Makefile.PL file to drive distribution configuration, build, test and \
+installation. Traditionally, Build.PL uses Module::Build as the underlying \
+build system. This module provides a simple, lightweight, drop-in replacement. \
+Whereas Module::Build has over 6,700 lines of code; this module has less than \
+120, yet supports the features needed by most distributions."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~leont/Module-Build-Tiny/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2b9e8b5e2bd19fcc97ac84b78a271a64"
+
+DEPENDS = "libextutils-config-perl-native libextutils-helpers-perl-native libextutils-installpaths-perl-native"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-Tiny-${PV}.tar.gz"
+SRC_URI[sha256sum] = "71260e9421b93c33dd1b3e7d0cf15f759c0ca7c753fa840279ec3be70f8f8c9d"
+
+S = "${WORKDIR}/Module-Build-Tiny-${PV}"
+
+inherit cpan_build ptest-perl
+
+RDEPENDS:${PN} += " \
+ libextutils-config-perl \
+ libextutils-helpers-perl \
+ libextutils-installpaths-perl \
+ perl-module-carp \
+ perl-module-cpan \
+ perl-module-data-dumper \
+ perl-module-encode-encoding \
+ perl-module-exporter \
+ perl-module-extutils-cbuilder \
+ perl-module-extutils-cbuilder-base \
+ perl-module-extutils-install \
+ perl-module-extutils-makemaker \
+ perl-module-extutils-parsexs \
+ perl-module-file-path \
+ perl-module-file-spec \
+ perl-module-file-temp \
+ perl-module-getopt-long \
+ perl-module-io-handle \
+ perl-module-ipc-cmd \
+ perl-module-json-pp \
+ perl-module-load \
+ perl-module-metadata \
+ perl-module-parse-cpan-meta \
+ perl-module-perl-ostype \
+ perl-module-pod-man \
+ perl-module-tap-harness-env \
+ perl-module-test-more \
+ perl-module-text-parsewords \
+ perl-module-xsloader \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ packagegroup-core-buildessential \
+ perl-dev \
+ perl-module-blib \
+ perl-module-ipc-open2 \
+"
+
+INSANE_SKIP:${PN}-ptest += "dev-deps"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb b/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb
index 6f3d5ba59d..538fa30d3f 100644
--- a/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb
+++ b/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb
@@ -10,7 +10,6 @@ names.\
Optionally it instantiates those classes for you."
SECTION = "libs"
-AUTHOR = "Simon Wistow <simon@thegestalt.org>"
HOMEPAGE = "https://github.com/simonwistow/Module-Pluggable"
LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
@@ -21,7 +20,6 @@ SRC_URI = "${CPAN_MIRROR}/authors/id/S/SI/SIMONW/${SRCNAME}-${PV}.tar.gz"
SRC_URI[md5sum] = "87ce2971662efd0b69a81bb4dc9ea76c"
SRC_URI[sha256sum] = "b3f2ad45e4fd10b3fb90d912d78d8b795ab295480db56dc64e86b9fa75c5a6df"
-PR = "r1"
UPSTREAM_CHECK_REGEX = "Module\-Pluggable\-(?P<pver>(\d+\.\d+))"
UPSTREAM_CHECK_URI = "https://metacpan.org/release/${SRCNAME}"
diff --git a/meta-perl/recipes-perl/libmoo/libmoo-perl_2.005004.bb b/meta-perl/recipes-perl/libmoo/libmoo-perl_2.005004.bb
deleted file mode 100644
index 5480b9069f..0000000000
--- a/meta-perl/recipes-perl/libmoo/libmoo-perl_2.005004.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Moo - Minimalist Object Orientation (with Moose compatibility)"
-DESCRIPTION = "This module us an extremely light-weight subset of \"Moose\" \
-optimised for rapid startup and \"pay only for what you use\"."
-
-SECTION = "libs"
-
-HOMEPAGE = "http://metapan.org/release/Moo/"
-
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://README;beginline=742;endline=787;md5=0e7ee44f5ce5e9b84619cd198caad1d6"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Moo-${PV}.tar.gz"
-SRC_URI[sha256sum] = "e3030b80bd554a66f6b3c27fd53b1b5909d12af05c4c11ece9a58f8d1e478928"
-
-S = "${WORKDIR}/Moo-${PV}"
-
-inherit cpan
-
-RDEPENDS:${PN} = " libclass-method-modifiers-perl \
- libdevel-globaldestruction-perl \
- libmodule-runtime-perl \
- librole-tiny-perl \
- perl-module-constant \
- perl-module-exporter \
- perl-module-mro \
- perl-module-scalar-util \
-"
-
-RPROVIDES:${PN} = " libmethod-inliner-perl \
- libmethod-generate-accessor-perl \
- libmethod-generate-buildall-perl \
- libmethod-generate-constructor-perl \
- libmethod-generate-demolishall-perl \
- libmoo-perl \
- libmoo-handlemoose-perl \
- libmoo-handlemoose-fakemetaclass-perl \
- libmoo-object-perl \
- libmoo-role-perl \
- libsub-defer-perl \
- libsub-quote-perl \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libmoo/libmoo-perl_2.005005.bb b/meta-perl/recipes-perl/libmoo/libmoo-perl_2.005005.bb
new file mode 100644
index 0000000000..e92d793d9c
--- /dev/null
+++ b/meta-perl/recipes-perl/libmoo/libmoo-perl_2.005005.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Moo - Minimalist Object Orientation (with Moose compatibility)"
+DESCRIPTION = "This module us an extremely light-weight subset of \"Moose\" \
+optimised for rapid startup and \"pay only for what you use\"."
+
+SECTION = "libs"
+
+HOMEPAGE = "http://metapan.org/release/Moo/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;beginline=742;endline=787;md5=74f4de483dce5aa45ed6da875f11258a"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Moo-${PV}.tar.gz"
+SRC_URI[sha256sum] = "fb5a2952649faed07373f220b78004a9c6aba387739133740c1770e9b1f4b108"
+
+S = "${WORKDIR}/Moo-${PV}"
+
+inherit cpan
+
+RDEPENDS:${PN} = " libclass-method-modifiers-perl \
+ libdevel-globaldestruction-perl \
+ libmodule-runtime-perl \
+ librole-tiny-perl \
+ perl-module-constant \
+ perl-module-exporter \
+ perl-module-mro \
+ perl-module-scalar-util \
+"
+
+RPROVIDES:${PN} = " libmethod-inliner-perl \
+ libmethod-generate-accessor-perl \
+ libmethod-generate-buildall-perl \
+ libmethod-generate-constructor-perl \
+ libmethod-generate-demolishall-perl \
+ libmoo-perl \
+ libmoo-handlemoose-perl \
+ libmoo-handlemoose-fakemetaclass-perl \
+ libmoo-object-perl \
+ libmoo-role-perl \
+ libsub-defer-perl \
+ libsub-quote-perl \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libmozilla/libmozilla-ca-perl_20221114.bb b/meta-perl/recipes-perl/libmozilla/libmozilla-ca-perl_20221114.bb
new file mode 100644
index 0000000000..c5839b9b67
--- /dev/null
+++ b/meta-perl/recipes-perl/libmozilla/libmozilla-ca-perl_20221114.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Mozilla's CA cert bundle in PEM format"
+DESCRIPTION = "Mozilla::CA provides a copy of Mozilla's bundle of \
+Certificate Authority certificates in a form that can be consumed by \
+modules and libraries based on OpenSSL."
+HOMEPAGE = "https://metacpan.org/pod/Mozilla::CA"
+BUGTRACKER = "https://github.com/libwww-perl/Mozilla-CA/issues"
+SECTION = "libs"
+
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://README;beginline=32;endline=39;md5=51e666dce556490a1132e937ad3f8729"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Mozilla-CA-${PV}.tar.gz"
+SRC_URI[sha256sum] = "701bea67be670add5a102f9f8c879402b4983096b1cb0e20dd47d52d7a10666b"
+
+S = "${WORKDIR}/Mozilla-CA-${PV}"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN}-ptest += "\
+ perl-module-test-more \
+"
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.34.bb b/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.34.bb
deleted file mode 100644
index 69afe6eef2..0000000000
--- a/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.34.bb
+++ /dev/null
@@ -1,65 +0,0 @@
-DESCRIPTION = "This package contains the DNS.pm module with friends."
-HOMEPAGE = "http://www.net-dns.org/"
-SECTION = "libs"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://README;beginline=252;endline=269;md5=de95b6a896d5f861d724ea854d316a0b"
-
-DEPENDS += "perl"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz"
-
-SRC_URI[sha256sum] = "de756e3fb6addbd32beafc869c4dd1c6a0b3783c5ef56dbefc6809443a4b1d15"
-
-UPSTREAM_CHECK_REGEX = "Net\-DNS\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
-
-S = "${WORKDIR}/Net-DNS-${PV}"
-
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
-inherit cpan ptest-perl
-
-RDEPENDS:${PN} = " \
- libdigest-hmac-perl \
- perl-module-base \
- perl-module-constant \
- perl-module-digest-md5 \
- perl-module-digest-sha \
- perl-module-file-spec \
- perl-module-integer \
- perl-module-io-file \
- perl-module-io-select \
- perl-module-io-socket \
- perl-module-io-socket-ip \
- perl-module-mime-base64 \
- perl-module-scalar-util \
- perl-module-test-more \
- perl-module-time-local \
-"
-
-RRECOMMENDS:${PN} += " \
- libnet-dns-sec-perl \
-"
-
-RDEPENDS:${PN}-ptest += " \
- perl-module-encode \
- perl-module-encode-byte \
- perl-module-extutils-mm \
- perl-module-extutils-mm-unix \
- perl-module-overload \
-"
-
-python __anonymous () {
- # rather than use "find" to determine libc-*.so,
- # statically export the known paths for glibc and musl
- import os
- if d.getVar('TCLIBC') == "glibc":
- os.environ["LIBC"] = "${STAGING_BASELIBDIR}/libc.so.6"
- elif d.getVar('TCLIBC') == "musl":
- os.environ["LIBC"] = "${STAGING_LIBDIR}/libc.so"
- else:
- raise bb.parse.SkipRecipe("incompatible with %s C library" %
- d.getVar('TCLIBC'))
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.40.bb b/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.40.bb
new file mode 100644
index 0000000000..e30125ab7b
--- /dev/null
+++ b/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.40.bb
@@ -0,0 +1,64 @@
+DESCRIPTION = "This package contains the DNS.pm module with friends."
+HOMEPAGE = "http://www.net-dns.org/"
+SECTION = "libs"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://README;beginline=252;endline=269;md5=de95b6a896d5f861d724ea854d316a0b"
+
+DEPENDS += "perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "209bbd40de8d48c1bd7aade48da237fe0a499f89d279baa2e1a99bd5ec922ddc"
+
+UPSTREAM_CHECK_REGEX = "Net\-DNS\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/Net-DNS-${PV}"
+
+EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} = " \
+ libdigest-hmac-perl \
+ perl-module-base \
+ perl-module-constant \
+ perl-module-digest-md5 \
+ perl-module-digest-sha \
+ perl-module-file-spec \
+ perl-module-integer \
+ perl-module-io-file \
+ perl-module-io-select \
+ perl-module-io-socket \
+ perl-module-io-socket-ip \
+ perl-module-mime-base64 \
+ perl-module-scalar-util \
+ perl-module-test-more \
+ perl-module-time-local \
+"
+
+RRECOMMENDS:${PN} += " \
+ libnet-dns-sec-perl \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ perl-module-encode \
+ perl-module-encode-byte \
+ perl-module-extutils-mm \
+ perl-module-extutils-mm-unix \
+ perl-module-overload \
+"
+
+python __anonymous () {
+ # rather than use "find" to determine libc-*.so,
+ # statically export the known paths for glibc and musl
+ import os
+ if d.getVar('TCLIBC') == "glibc":
+ os.environ["LIBC"] = "${STAGING_BASELIBDIR}/libc.so.6"
+ elif d.getVar('TCLIBC') == "musl":
+ os.environ["LIBC"] = "${STAGING_LIBDIR}/libc.so"
+ else:
+ raise bb.parse.SkipRecipe("incompatible with %s C library" %
+ d.getVar('TCLIBC'))
+}
+
diff --git a/meta-perl/recipes-perl/libnet/libnet-idn-encode/Net-IDN-Encode-2.500-use_uvchr_to_utf8_flags_instead_of_uvuni_to_utf8_flags.patch b/meta-perl/recipes-perl/libnet/libnet-idn-encode/Net-IDN-Encode-2.500-use_uvchr_to_utf8_flags_instead_of_uvuni_to_utf8_flags.patch
new file mode 100644
index 0000000000..f0e9010bf4
--- /dev/null
+++ b/meta-perl/recipes-perl/libnet/libnet-idn-encode/Net-IDN-Encode-2.500-use_uvchr_to_utf8_flags_instead_of_uvuni_to_utf8_flags.patch
@@ -0,0 +1,36 @@
+Subject: [PATCH] use uvchr_to_utf8_flags instead of uvuni_to_utf8_flags (which is removed in perl 5.38.0)
+
+https://perldoc.perl.org/5.36.0/perlintern#uvuni_to_utf8_flags
+Signed-off-by: Shin Kojima <shin@kojima.org>
+Upstream-Status: Submitted [https://github.com/cfaerber/Net-IDN-Encode/pull/11]
+---
+ lib/Net/IDN/Punycode.xs | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/lib/Net/IDN/Punycode.xs b/lib/Net/IDN/Punycode.xs
+index 211ef9c..36530dd 100644
+--- a/lib/Net/IDN/Punycode.xs
++++ b/lib/Net/IDN/Punycode.xs
+@@ -24,6 +24,10 @@
+ #define utf8_to_uvchr_buf(in_p,in_e,u8) utf8_to_uvchr(in_p,u8);
+ #endif
+
++#ifndef uvchr_to_utf8_flags
++#define uvchr_to_utf8_flags(d, uv, flags) uvuni_to_utf8_flags(d, uv, flags);
++#endif
++
+ static char enc_digit[BASE] = {
+ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+ 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+@@ -253,7 +257,7 @@ decode_punycode(input)
+ if(skip_p < re_p) /* move succeeding chars */
+ Move(skip_p, skip_p + u8, re_p - skip_p, char);
+ re_p += u8;
+- uvuni_to_utf8_flags((U8*)skip_p, n, UNICODE_ALLOW_ANY);
++ uvchr_to_utf8_flags((U8*)skip_p, n, UNICODE_ALLOW_ANY);
+ }
+
+ if(!first) SvUTF8_on(RETVAL); /* UTF-8 chars have been inserted */
+--
+2.41.0
+
diff --git a/meta-perl/recipes-perl/libnet/libnet-idn-encode_2.500.bb b/meta-perl/recipes-perl/libnet/libnet-idn-encode_2.500.bb
new file mode 100644
index 0000000000..7f33fd2b1f
--- /dev/null
+++ b/meta-perl/recipes-perl/libnet/libnet-idn-encode_2.500.bb
@@ -0,0 +1,25 @@
+SUMMARY = "IDN Perl module"
+DESCRIPTION = "This module provides an easy-to-use interface for encoding \
+ and decoding Internationalized Domain Names (IDNs)."
+
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8ea5704cf65ca4ec6e9e167fb94f14dd"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/C/CF/CFAERBER/Net-IDN-Encode-${PV}.tar.gz \
+ file://Net-IDN-Encode-2.500-use_uvchr_to_utf8_flags_instead_of_uvuni_to_utf8_flags.patch \
+"
+SRC_URI[sha256sum] = "55453633e3ff24ce325b34bc2c8157b9859962a31ab5cf28bf7ccc1c9b3a3eaa"
+
+S = "${WORKDIR}/Net-IDN-Encode-${PV}"
+
+inherit cpan ptest-perl
+
+do_configure:prepend() {
+ perl -pi -e 's/auto_install_now.*//g' Makefile.PL
+}
+
+BBCLASSEXTEND = "native"
+
+RDEPENDS:${PN} += "perl-module-unicode-normalize perl-module-encode-encoding"
diff --git a/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.68.bb b/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.68.bb
index dcc5ea88b1..a77381dce8 100644
--- a/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.68.bb
+++ b/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.68.bb
@@ -41,5 +41,3 @@ RDEPENDS:${PN}-ptest += " \
perl-module-perlio \
perl-module-test-more \
"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch b/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch
index 6efa7d8f95..9620df5ece 100644
--- a/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch
+++ b/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch
@@ -1,3 +1,7 @@
+Avoid running target binaries during in cross build
+
+Upstream-Status: Inappropriate [Cross-compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/inc/Module/Install/PRIVATE/Net/SSLeay.pm 2018-08-27 14:56:24.788544991 +0200
+++ b/inc/Module/Install/PRIVATE/Net/SSLeay.pm 2018-08-27 15:00:12.847266331 +0200
@@ -24,20 +24,7 @@
diff --git a/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb b/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb
index c568ade997..cf290d9908 100644
--- a/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb
+++ b/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb
@@ -37,4 +37,3 @@ export LD = "${CCLD}"
inherit cpan pkgconfig ptest-perl
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libtest/libtest-deep-perl_1.130.bb b/meta-perl/recipes-perl/libtest/libtest-deep-perl_1.130.bb
deleted file mode 100644
index 6252bc3351..0000000000
--- a/meta-perl/recipes-perl/libtest/libtest-deep-perl_1.130.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "Test::Deep - Extremely flexible deep comparison"
-DESCRIPTION = "If you don't know anything about automated testing in Perl \
-then you should probably read about Test::Simple and Test::More before \
-preceding. Test::Deep uses the Test::Builder framework. \
-\
-Test::Deep gives you very flexible ways to check that the result you got is \
-the result you were expecting. At its simplest it compares two structures \
-by going through each level, ensuring that the values match, that arrays and \
-hashes have the same elements and that references are blessed into the \
-correct class. It also handles circular data structures without getting \
-caught in an infinite loop. \
-\
-Where it becomes more interesting is in allowing you to do something besides \
-simple exact comparisons. With strings, the \'eq\' operator checks that 2 \
-strings are exactly equal but sometimes that's not what you want. When you \
-don't know exactly what the string should be but you do know some things \
-about how it should look, \'eq\' is no good and you must use pattern matching \
-instead. Test::Deep provides pattern matching for complex data structures \
-distribution."
-
-SECTION = "libs"
-
-HOMEPAGE = "http://github.com/rjbs/Test-Deep/"
-
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://lib/Test/Deep.pm;beginline=1817;endline=1826;md5=a897a42bafc3422cab17c2eb94f87a7c"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/R/RJ/RJBS/Test-Deep-${PV}.tar.gz"
-SRC_URI[md5sum] = "d466e471108f7f7a5df3802cb13761ac"
-SRC_URI[sha256sum] = "4064f494f5f62587d0ae501ca439105821ee5846c687dc6503233f55300a7c56"
-
-UPSTREAM_CHECK_REGEX = "Test\-Deep\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
-
-S = "${WORKDIR}/Test-Deep-${PV}"
-
-inherit cpan ptest-perl
-
-RDEPENDS:${PN} += " \
- perl-module-dynaloader \
- perl-module-exporter \
- perl-module-fcntl \
- perl-module-list-util \
- perl-module-scalar-util \
- perl-module-strict \
- perl-module-vars \
- perl-module-warnings \
-"
-
-RDEPENDS:${PN}-ptest += " \
- perl-module-if \
- perl-module-lib \
- perl-module-test-more \
- perl-module-test-tester \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libtest/libtest-deep-perl_1.204.bb b/meta-perl/recipes-perl/libtest/libtest-deep-perl_1.204.bb
new file mode 100644
index 0000000000..d7f6166b4b
--- /dev/null
+++ b/meta-perl/recipes-perl/libtest/libtest-deep-perl_1.204.bb
@@ -0,0 +1,55 @@
+SUMMARY = "Test::Deep - Extremely flexible deep comparison"
+DESCRIPTION = "If you don't know anything about automated testing in Perl \
+then you should probably read about Test::Simple and Test::More before \
+preceding. Test::Deep uses the Test::Builder framework. \
+\
+Test::Deep gives you very flexible ways to check that the result you got is \
+the result you were expecting. At its simplest it compares two structures \
+by going through each level, ensuring that the values match, that arrays and \
+hashes have the same elements and that references are blessed into the \
+correct class. It also handles circular data structures without getting \
+caught in an infinite loop. \
+\
+Where it becomes more interesting is in allowing you to do something besides \
+simple exact comparisons. With strings, the \'eq\' operator checks that 2 \
+strings are exactly equal but sometimes that's not what you want. When you \
+don't know exactly what the string should be but you do know some things \
+about how it should look, \'eq\' is no good and you must use pattern matching \
+instead. Test::Deep provides pattern matching for complex data structures \
+distribution."
+
+SECTION = "libs"
+
+HOMEPAGE = "http://github.com/rjbs/Test-Deep/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://lib/Test/Deep.pm;beginline=1817;endline=1826;md5=d3ed382cc19bae8ead6076df35a43cbf"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/R/RJ/RJBS/Test-Deep-${PV}.tar.gz"
+SRC_URI[sha256sum] = "b6591f6ccdd853c7efc9ff3c5756370403211cffe46047f082b1cd1611a84e5f"
+
+UPSTREAM_CHECK_REGEX = "Test\-Deep\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/Test-Deep-${PV}"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} += " \
+ perl-module-dynaloader \
+ perl-module-exporter \
+ perl-module-fcntl \
+ perl-module-list-util \
+ perl-module-scalar-util \
+ perl-module-strict \
+ perl-module-vars \
+ perl-module-warnings \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ perl-module-if \
+ perl-module-lib \
+ perl-module-test-more \
+ perl-module-test-tester \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.44.bb b/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.44.bb
deleted file mode 100644
index 58ca70b9e1..0000000000
--- a/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.44.bb
+++ /dev/null
@@ -1,119 +0,0 @@
-# NOTE:
-# You should use perl-module-test-harness instead of this package,
-# unless you specifically need a newer version than what is provided
-# by perl in oe-core.
-
-SUMMARY = "Test::Harness - Run Perl standard test scripts with statistics"
-DESCRIPTION = "Although, for historical reasons, the Test::Harness \
-distribution takes its name from this module it now exists only to provide \
-TAP::Harness with an interface that is somewhat backwards compatible \
-with Test::Harness 2.xx. If you're writing new code consider using \
-TAP::Harness directly instead. \
-\
-Emulation is provided for runtests and execute_tests but the \
-pluggable 'Straps' interface that previous versions of Test::Harness \
-supported is not reproduced here. Straps is now available as a stand \
-alone module: Test::Harness::Straps. \
-\
-See TAP::Parser, TAP::Harness for the main documentation for this \
-distribution."
-
-SECTION = "libs"
-
-HOMEPAGE = "http://testanything.org"
-
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://README;beginline=29;endline=30;md5=d41d8cd98f00b204e9800998ecf8427e"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Test-Harness-${PV}.tar.gz"
-SRC_URI[sha256sum] = "7eb591ea6b499ece6745ff3e80e60cee669f0037f9ccbc4e4511425f593e5297"
-
-UPSTREAM_CHECK_REGEX = "Test\-Harness\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
-
-S = "${WORKDIR}/Test-Harness-${PV}"
-
-inherit cpan ptest-perl
-
-RDEPENDS:${PN} += "\
- perl-module-benchmark \
-"
-
-RPROVIDES:${PN} += "libapp-prove-perl \
- libapp-prove-state-perl \
- libapp-prove-state-result-perl \
- libapp-prove-state-result-test-perl \
- libtap-base-perl \
- libtap-formatter-base-perl \
- libtap-formatter-color-perl \
- libtap-formatter-console-perl \
- libtap-formatter-console-parallelsession-perl \
- libtap-formatter-console-session-perl \
- libtap-formatter-file-perl \
- libtap-formatter-file-session-perl \
- libtap-formatter-session-perl \
- libtap-harness-perl \
- libtap-harness-env-perl \
- libtap-object-perl \
- libtap-parser-perl \
- libtap-parser-aggregator-perl \
- libtap-parser-grammar-perl \
- libtap-parser-iterator-perl \
- libtap-parser-iterator-array-perl \
- libtap-parser-iterator-process-perl \
- libtap-parser-iterator-stream-perl \
- libtap-parser-iteratorfactory-perl \
- libtap-parser-multiplexer-perl \
- libtap-parser-result-perl \
- libtap-parsser-result-bailout-perl \
- libtap-parser-result-comment-perl \
- libtap-parser-result-plan-perl \
- libtap-parser-result-pragma-perl \
- libtap-parser-result-test-perl \
- libtap-parser-result-unknown-perl \
- libtap-parser-result-version-perl \
- libtap-parser-result-yaml-perl \
- libtap-parser-resultfactory-perl \
- libtap-parser-scheduler-perl \
- libtap-parser-scheduler-job-perl \
- libtap-parser-scheduler-spinner-perl \
- libtap-parser-source-perl \
- libtap-parser-sourcehandler-perl \
- libtap-parser-sourcehandler-executable-perl \
- libtap-parser-sourcehandler-file-perl \
- libtap-parser-sourcehandler-handle-perl \
- libtap-parser-sourcehandler-perl-perl \
- libtap-parser-sourcehandler-rawtap-perl \
- libtap-parser-yamlish-reader-perl \
- libtap-parser-yamlish-writer-perl \
- "
-
-do_install:prepend() {
- # these tests are inappropriate on target
- rm -rf ${B}/t/000-load.t
- rm -rf ${B}/t/state.t
- # these tests require "-T" (taint) option on command line
- rm -rf ${B}/t/aggregator.t
- rm -rf ${B}/t/bailout.t
- rm -rf ${B}/t/base.t
- rm -rf ${B}/t/callbacks.t
- rm -rf ${B}/t/errors.t
- rm -rf ${B}/t/nested.t
- rm -rf ${B}/t/object.t
- rm -rf ${B}/t/premature-bailout.t
- rm -rf ${B}/t/results.t
- rm -rf ${B}/t/streams.t
- rm -rf ${B}/t/yamlish-output.t
- rm -rf ${B}/t/compat/version.t
-}
-
-do_install:append() {
- install -d ${D}/usr/local/bin
- # do not clobber perl-misc /usr/bin/prove
- install -m 0755 ${B}/bin/prove ${D}/usr/local/bin/
- rm -rf ${D}${bindir}/prove
- rm -rf ${D}${bindir}
-}
-
-FILES:${PN} += "/usr/local/bin/prove"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.48.bb b/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.48.bb
new file mode 100644
index 0000000000..b14fc95f1c
--- /dev/null
+++ b/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.48.bb
@@ -0,0 +1,119 @@
+# NOTE:
+# You should use perl-module-test-harness instead of this package,
+# unless you specifically need a newer version than what is provided
+# by perl in oe-core.
+
+SUMMARY = "Test::Harness - Run Perl standard test scripts with statistics"
+DESCRIPTION = "Although, for historical reasons, the Test::Harness \
+distribution takes its name from this module it now exists only to provide \
+TAP::Harness with an interface that is somewhat backwards compatible \
+with Test::Harness 2.xx. If you're writing new code consider using \
+TAP::Harness directly instead. \
+\
+Emulation is provided for runtests and execute_tests but the \
+pluggable 'Straps' interface that previous versions of Test::Harness \
+supported is not reproduced here. Straps is now available as a stand \
+alone module: Test::Harness::Straps. \
+\
+See TAP::Parser, TAP::Harness for the main documentation for this \
+distribution."
+
+SECTION = "libs"
+
+HOMEPAGE = "http://testanything.org"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;beginline=29;endline=30;md5=d41d8cd98f00b204e9800998ecf8427e"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Test-Harness-${PV}.tar.gz"
+SRC_URI[sha256sum] = "e73ff89c81c1a53f6baeef6816841b89d3384403ad97422a7da9d1eeb20ef9c5"
+
+UPSTREAM_CHECK_REGEX = "Test\-Harness\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/Test-Harness-${PV}"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} += "\
+ perl-module-benchmark \
+"
+
+RPROVIDES:${PN} += "libapp-prove-perl \
+ libapp-prove-state-perl \
+ libapp-prove-state-result-perl \
+ libapp-prove-state-result-test-perl \
+ libtap-base-perl \
+ libtap-formatter-base-perl \
+ libtap-formatter-color-perl \
+ libtap-formatter-console-perl \
+ libtap-formatter-console-parallelsession-perl \
+ libtap-formatter-console-session-perl \
+ libtap-formatter-file-perl \
+ libtap-formatter-file-session-perl \
+ libtap-formatter-session-perl \
+ libtap-harness-perl \
+ libtap-harness-env-perl \
+ libtap-object-perl \
+ libtap-parser-perl \
+ libtap-parser-aggregator-perl \
+ libtap-parser-grammar-perl \
+ libtap-parser-iterator-perl \
+ libtap-parser-iterator-array-perl \
+ libtap-parser-iterator-process-perl \
+ libtap-parser-iterator-stream-perl \
+ libtap-parser-iteratorfactory-perl \
+ libtap-parser-multiplexer-perl \
+ libtap-parser-result-perl \
+ libtap-parsser-result-bailout-perl \
+ libtap-parser-result-comment-perl \
+ libtap-parser-result-plan-perl \
+ libtap-parser-result-pragma-perl \
+ libtap-parser-result-test-perl \
+ libtap-parser-result-unknown-perl \
+ libtap-parser-result-version-perl \
+ libtap-parser-result-yaml-perl \
+ libtap-parser-resultfactory-perl \
+ libtap-parser-scheduler-perl \
+ libtap-parser-scheduler-job-perl \
+ libtap-parser-scheduler-spinner-perl \
+ libtap-parser-source-perl \
+ libtap-parser-sourcehandler-perl \
+ libtap-parser-sourcehandler-executable-perl \
+ libtap-parser-sourcehandler-file-perl \
+ libtap-parser-sourcehandler-handle-perl \
+ libtap-parser-sourcehandler-perl-perl \
+ libtap-parser-sourcehandler-rawtap-perl \
+ libtap-parser-yamlish-reader-perl \
+ libtap-parser-yamlish-writer-perl \
+ "
+
+do_install:prepend() {
+ # these tests are inappropriate on target
+ rm -rf ${B}/t/000-load.t
+ rm -rf ${B}/t/state.t
+ # these tests require "-T" (taint) option on command line
+ rm -rf ${B}/t/aggregator.t
+ rm -rf ${B}/t/bailout.t
+ rm -rf ${B}/t/base.t
+ rm -rf ${B}/t/callbacks.t
+ rm -rf ${B}/t/errors.t
+ rm -rf ${B}/t/nested.t
+ rm -rf ${B}/t/object.t
+ rm -rf ${B}/t/premature-bailout.t
+ rm -rf ${B}/t/results.t
+ rm -rf ${B}/t/streams.t
+ rm -rf ${B}/t/yamlish-output.t
+ rm -rf ${B}/t/compat/version.t
+}
+
+do_install:append() {
+ install -d ${D}/usr/local/bin
+ # do not clobber perl-misc /usr/bin/prove
+ install -m 0755 ${B}/bin/prove ${D}/usr/local/bin/
+ rm -rf ${D}${bindir}/prove
+ rm -rf ${D}${bindir}
+}
+
+FILES:${PN} += "/usr/local/bin/prove"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.031.bb b/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.031.bb
deleted file mode 100644
index d1c0d95fd3..0000000000
--- a/meta-perl/recipes-perl/libtest/libtest-warnings-perl_0.031.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (C) 2020 Jens Rehsack <sno@netbsd.org>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-DESCRIPTION = "If you've ever tried to use Test::NoWarnings to confirm there are no \
-warnings generated by your tests, combined with the convenience of \
-\\"done_testing\\" to not have to declare a test count, you'll have discovered \
-that these two features do not play well together, as the test count will \
-be calculated *before* the warnings test is run, resulting in a TAP error. \
-(See "examples/test_nowarnings.pl" in this distribution for a \
-demonstration.)"
-
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-
-HOMEPAGE= "https://metacpan.org/release/Test-Warnings"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
-file://${COMMON_LICENSE_DIR}/GPL-1.0-or-later;md5=30c0b8a5048cc2f4be5ff15ef0d8cf61"
-
-SRC_URI = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/Test-Warnings-${PV}.tar.gz"
-
-SRC_URI[sha256sum] = "1e542909fef305e45563e9878ea1c3b0c7cef1b28bb7ae07eba2e1efabec477b"
-
-S = "${WORKDIR}/Test-Warnings-${PV}"
-
-inherit cpan ptest-perl
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-perl/recipes-perl/libtext/libtext-diff-perl/run-ptest b/meta-perl/recipes-perl/libtext/libtext-diff-perl/run-ptest
new file mode 100644
index 0000000000..c65b6cf8e0
--- /dev/null
+++ b/meta-perl/recipes-perl/libtext/libtext-diff-perl/run-ptest
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+for case in `find t -type f -name '*.t'`; do
+ perl $case >$case.output 2>&1
+ ret=$?
+ cat $case.output
+ if [ $ret -ne 0 ]; then
+ echo "FAIL: ${case%.t}"
+ elif grep -i 'SKIP' $case.output; then
+ echo "SKIP: ${case%.t}"
+ else
+ echo "PASS: ${case%.t}"
+ fi
+
+ rm -f $case.output
+done
+
+
+
diff --git a/meta-perl/recipes-perl/libtext/libtext-diff-perl_1.41.bb b/meta-perl/recipes-perl/libtext/libtext-diff-perl_1.41.bb
index afdf63ede4..9dfadde8e5 100644
--- a/meta-perl/recipes-perl/libtext/libtext-diff-perl_1.41.bb
+++ b/meta-perl/recipes-perl/libtext/libtext-diff-perl_1.41.bb
@@ -11,17 +11,24 @@ HOMEPAGE = "http://search.cpan.org/~ovid/Text-Diff/"
LICENSE = "Artistic-1.0 | GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=385c55653886acac3821999a3ccd17b3"
-SRC_URI = "${CPAN_MIRROR}/authors/id/O/OV/OVID/Text-Diff-${PV}.tar.gz"
+SRC_URI = "${CPAN_MIRROR}/authors/id/O/OV/OVID/Text-Diff-${PV}.tar.gz \
+ file://run-ptest \
+ "
SRC_URI[md5sum] = "30d56e6dd5551ca16b8e16cc7299dc21"
SRC_URI[sha256sum] = "a67f50a48e313c1680cc662109ce5f913ea71454db355d0cf4db87ac89d2d2fa"
S = "${WORKDIR}/Text-Diff-${PV}"
-inherit cpan
+inherit cpan ptest
+RDEPENDS:${PN}-ptest += "perl-module-test perl-module-test-more"
RDEPENDS:${PN} = " libalgorithm-diff-perl \
perl-module-extutils-makemaker \
perl-module-exporter \
"
+do_install_ptest () {
+ cp -r ${B}/t ${D}${PTEST_PATH}
+}
+
BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libxml/libxml-libxml-perl/0001-libxml-mm-Fix-function-prototypes-in-function-pointe.patch b/meta-perl/recipes-perl/libxml/libxml-libxml-perl/0001-libxml-mm-Fix-function-prototypes-in-function-pointe.patch
new file mode 100644
index 0000000000..7ff61c5709
--- /dev/null
+++ b/meta-perl/recipes-perl/libxml/libxml-libxml-perl/0001-libxml-mm-Fix-function-prototypes-in-function-pointe.patch
@@ -0,0 +1,51 @@
+From 25451c0a56ef8d3b32fd23847bef516486bd8ed4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 16 Jan 2023 18:50:10 -0800
+Subject: [PATCH] libxml-mm: Fix function prototypes in function pointers
+
+This is now detected with latest clang16+
+
+Fixes
+error: incompatible function pointer types passing 'void (void *, void *, xmlChar *)' (aka 'void (void *, void *, unsigned char *)') to parameter of type 'xmlHashScanner' (aka 'void (*)(void *, void *, const unsigned char *)') [-Wincompatible-function-pointer-types]
+ xmlHashScan(r, PmmRegistryDumpHashScanner, NULL);
+
+Upstream-Status: Submitted [https://github.com/shlomif/perl-XML-LibXML/pull/75]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ perl-libxml-mm.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/perl-libxml-mm.c b/perl-libxml-mm.c
+index a3e78a2..ec2b5ea 100644
+--- a/perl-libxml-mm.c
++++ b/perl-libxml-mm.c
+@@ -121,7 +121,7 @@ PmmFreeHashTable(xmlHashTablePtr table)
+ extern SV* PROXY_NODE_REGISTRY_MUTEX;
+
+ /* Utility method used by PmmDumpRegistry */
+-void PmmRegistryDumpHashScanner(void * payload, void * data, xmlChar * name)
++void PmmRegistryDumpHashScanner(void * payload, void * data, const xmlChar * name)
+ {
+ LocalProxyNodePtr lp = (LocalProxyNodePtr) payload;
+ ProxyNodePtr node = (ProxyNodePtr) lp->proxy;
+@@ -215,7 +215,7 @@ PmmRegisterProxyNode(ProxyNodePtr proxy)
+ /* PP: originally this was static inline void, but on AIX the compiler
+ did not chew it, so I'm removing the inline */
+ static void
+-PmmRegistryHashDeallocator(void *payload, xmlChar *name)
++PmmRegistryHashDeallocator(void *payload, const xmlChar *name)
+ {
+ Safefree((LocalProxyNodePtr) payload);
+ }
+@@ -279,7 +279,7 @@ PmmRegistryREFCNT_dec(ProxyNodePtr proxy)
+ * internal, used by PmmCloneProxyNodes
+ */
+ void *
+-PmmRegistryHashCopier(void *payload, xmlChar *name)
++PmmRegistryHashCopier(void *payload, const xmlChar *name)
+ {
+ ProxyNodePtr proxy = ((LocalProxyNodePtr) payload)->proxy;
+ LocalProxyNodePtr lp;
+--
+2.39.0
+
diff --git a/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0134.bb b/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0134.bb
index c2ea47ae5b..f184b89e59 100644
--- a/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0134.bb
+++ b/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0134.bb
@@ -26,6 +26,7 @@ SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/XML-LibXML-${PV}.
file://disable-libxml2-check.patch \
file://fix-CATALOG-conditional-compile.patch \
file://using-DOCB-conditional.patch \
+ file://0001-libxml-mm-Fix-function-prototypes-in-function-pointe.patch \
"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=64eda1bc135f0ece1d1187f2a8ac82c1 \
file://LICENSE;md5=97871bde150daeb5e61ad95137ff2446 \
diff --git a/meta-perl/recipes-perl/po4a/po4a_0.49.bb b/meta-perl/recipes-perl/po4a/po4a_0.49.bb
deleted file mode 100644
index 679ea0fb44..0000000000
--- a/meta-perl/recipes-perl/po4a/po4a_0.49.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "PO for anything"
-DESCRIPTION = "The po4a (PO for anything) project goal is to ease translations \
-(and more interestingly, the maintenance of translations) using gettext tools \
-on areas where they were not expected like documentation."
-HOMEPAGE = "https://po4a.alioth.debian.org"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a96fc9b4cc36d80659e694ea109f0325"
-
-SRC_URI = "git://github.com/mquinson/po4a.git;protocol=https;branch=master"
-
-# v0.49
-SRCREV = "79ed87a577a543538fe39c7b60079981f5997072"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = " \
- libmodule-build-perl-native \
- libtext-wrapi18n-perl \
- libterm-readkey-perl \
- liblocale-gettext-perl \
- libunicode-linebreak-perl \
-"
-
-RRECOMMENDS:${PN} = " \
- libtext-wrapi18n-perl \
- libterm-readkey-perl \
- liblocale-gettext-perl \
- libunicode-linebreak-perl \
-"
-
-inherit cpan_build
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/README b/meta-python/README.md
index 36c193957c..36c193957c 100644
--- a/meta-python/README
+++ b/meta-python/README.md
diff --git a/meta-python/classes/distutils3-base.bbclass b/meta-python/classes/distutils3-base.bbclass
index 850c535bb1..d36b4c4a3e 100644
--- a/meta-python/classes/distutils3-base.bbclass
+++ b/meta-python/classes/distutils3-base.bbclass
@@ -1,9 +1,9 @@
-DEPENDS:append:class-target = " ${PYTHON_PN}-native ${PYTHON_PN}"
-DEPENDS:append:class-nativesdk = " ${PYTHON_PN}-native ${PYTHON_PN}"
-RDEPENDS:${PN} += "${@['', '${PYTHON_PN}-core']['${CLASSOVERRIDE}' == 'class-target']}"
+DEPENDS:append:class-target = " python3-native python3"
+DEPENDS:append:class-nativesdk = " python3-native python3"
+RDEPENDS:${PN} += "${@['', 'python3-core']['${CLASSOVERRIDE}' == 'class-target']}"
inherit distutils-common-base python3native python3targetconfig
python __anonymous() {
bb.warn("distutils3-base.bbclass is deprecated, please use setuptools3-base.bbclass instead")
-
+}
diff --git a/meta-python/classes/distutils3.bbclass b/meta-python/classes/distutils3.bbclass
index a6d8e8763f..909415efa0 100644
--- a/meta-python/classes/distutils3.bbclass
+++ b/meta-python/classes/distutils3.bbclass
@@ -27,9 +27,9 @@ distutils3_do_compile() {
NO_FETCH_BUILD=1 \
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
+ ${STAGING_BINDIR_NATIVE}/python3-native/python3 setup.py \
build --build-base=${B} ${DISTUTILS_BUILD_ARGS} || \
- bbfatal_log "'${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS}' execution failed."
+ bbfatal_log "'python3 setup.py build ${DISTUTILS_BUILD_ARGS}' execution failed."
}
distutils3_do_compile[vardepsexclude] = "MACHINE"
@@ -39,9 +39,9 @@ distutils3_do_install() {
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \
- ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
+ ${STAGING_BINDIR_NATIVE}/python3-native/python3 setup.py \
build --build-base=${B} install --skip-build ${DISTUTILS_INSTALL_ARGS} || \
- bbfatal_log "'${PYTHON_PN} setup.py install ${DISTUTILS_INSTALL_ARGS}' execution failed."
+ bbfatal_log "'python3 setup.py install ${DISTUTILS_INSTALL_ARGS}' execution failed."
# support filenames with *spaces*
find ${D} -name "*.py" -exec grep -q ${D} {} \; \
diff --git a/meta-python/conf/include/ptest-packagelists-meta-python.inc b/meta-python/conf/include/ptest-packagelists-meta-python.inc
new file mode 100644
index 0000000000..c54df50906
--- /dev/null
+++ b/meta-python/conf/include/ptest-packagelists-meta-python.inc
@@ -0,0 +1,108 @@
+#
+# Lists of the ptest in meta-python, sorted into two sets by the time they take
+# Please keep these sorted in alphabetical order
+#
+# A first pass at getting all meta-python recipes which inherit ptest
+# meta_python_ptest_recipes=$(bitbake-layers show-recipes --recipes-only --layer meta-python --inherits ptest --bare | tr '\n' ' ' | pcregrep -o1 '^NOTE:.+===(.+)$')
+#
+# ptests which take less than ~30s each
+PTESTS_FAST_META_PYTHON = "\
+ python3-a2wsgi \
+ python3-appdirs \
+ python3-ansicolors \
+ python3-asgiref \
+ python3-aspectlib \
+ python3-bleak \
+ python3-blinker \
+ python3-cachetools \
+ python3-cbor2 \
+ python3-click \
+ python3-dominate \
+ python3-execnet \
+ python3-flexcache \
+ python3-flexparser \
+ python3-freezegun \
+ python3-geojson \
+ python3-google-auth-oauthlib \
+ python3-gpiod \
+ python3-gunicorn \
+ python3-html2text \
+ python3-httptools \
+ python3-inflection \
+ python3-inotify \
+ python3-intervals \
+ python3-ipy \
+ python3-iso3166 \
+ python3-jdcal \
+ python3-jsmin \
+ python3-msgpack \
+ python3-multidict \
+ python3-netaddr \
+ python3-ordered-set \
+ python3-parse \
+ python3-parse-type \
+ python3-platformdirs \
+ python3-polyline \
+ python3-portalocker \
+ python3-precise-runner \
+ python3-prettytable \
+ python3-pydantic \
+ python3-pydantic-core \
+ python3-pylint \
+ python3-ptyprocess \
+ python3-py-cpuinfo \
+ python3-pyasn1-modules \
+ python3-pyroute2 \
+ python3-pyserial \
+ python3-pytest-mock \
+ python3-pytoml \
+ python3-pyyaml-include \
+ python3-pydbus \
+ python3-rapidjson \
+ python3-requests-file \
+ python3-requests-toolbelt \
+ python3-semver \
+ python3-serpent \
+ python3-service-identity \
+ python3-simpleeval \
+ python3-smpplib \
+ python3-soupsieve \
+ python3-sqlparse \
+ python3-tomli-w \
+ python3-tomlkit \
+ python3-trustme \
+ python3-typeguard \
+ python3-ujson \
+ python3-u-msgpack-python \
+ python3-unidiff \
+ python3-uritemplate \
+ python3-validators \
+ python3-wrapt \
+ python3-wsproto \
+ python3-xlrd \
+ python3-xmltodict \
+ python3-xxhash \
+ python3-yarl \
+"
+
+PTESTS_SLOW_META_PYTHON = "\
+ python3-arrow \
+ python3-ecdsa \
+ python3-google-auth \
+ python3-lz4 \
+ python3-marshmallow \
+ python3-pillow \
+ python3-pytest-localserver \
+ python3-traitlets \
+ python3-yappi \
+"
+
+PTESTS_PROBLEMS_META_PYTHON ="\
+ python3-betamax \
+ python3-dnspython \
+ python3-fastjsonschema \
+ python3-pint \
+ python3-pyzmq \
+ python3-scrypt \
+ python3-whoosh \
+"
diff --git a/meta-python/conf/layer.conf b/meta-python/conf/layer.conf
index 481e4ea2cc..f48b28b958 100644
--- a/meta-python/conf/layer.conf
+++ b/meta-python/conf/layer.conf
@@ -14,6 +14,6 @@ LAYERVERSION_meta-python = "1"
LAYERDEPENDS_meta-python = "core (>= 12) openembedded-layer"
-LAYERSERIES_COMPAT_meta-python = "kirkstone langdale"
+LAYERSERIES_COMPAT_meta-python = "scarthgap"
LICENSE_PATH += "${LAYERDIR}/licenses"
diff --git a/meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb b/meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb
index a5581c252b..60ac18155f 100644
--- a/meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb
+++ b/meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb
@@ -3,8 +3,11 @@ DESCRIPTION = "creates a pool of connections that can be used with gevent"
HOMEPAGE = "https://github.com/studio-ousia/gsocketpool"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4ba825394aec026b5f94edca44426859"
-DEPENDS += "${PYTHON_PN}-gevent"
-RDEPENDS:${PN} += "${PYTHON_PN}-gevent"
+
+RDEPENDS:${PN} += " \
+ python3-gevent \
+ python3-logging \
+"
SRC_URI[md5sum] = "49f5f292ef1b60944ae92ca426a5e550"
SRC_URI[sha256sum] = "f2e2749aceadce6b27ca52e2b0a64af99797746a8681e1a2963f72007c14cb14"
diff --git a/meta-python/recipes-connectivity/python-h2/python3-h2_4.1.0.bb b/meta-python/recipes-connectivity/python-h2/python3-h2_4.1.0.bb
index c2d58846df..6b3ce25371 100644
--- a/meta-python/recipes-connectivity/python-h2/python3-h2_4.1.0.bb
+++ b/meta-python/recipes-connectivity/python-h2/python3-h2_4.1.0.bb
@@ -8,4 +8,4 @@ SRC_URI[sha256sum] = "a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c2
inherit pypi setuptools3
-RDEPENDS:${PN} += "${PYTHON_PN}-hpack ${PYTHON_PN}-hyperframe"
+RDEPENDS:${PN} += "python3-hpack python3-hyperframe"
diff --git a/meta-python/recipes-connectivity/python-hpack/python3-hpack_4.0.0.bb b/meta-python/recipes-connectivity/python-hpack/python3-hpack_4.0.0.bb
index afba98e4b3..0297cb8c27 100644
--- a/meta-python/recipes-connectivity/python-hpack/python3-hpack_4.0.0.bb
+++ b/meta-python/recipes-connectivity/python-hpack/python3-hpack_4.0.0.bb
@@ -8,3 +8,5 @@ SRC_URI[md5sum] = "27e01514ef06dc9fa0798d3dcb7de47c"
SRC_URI[sha256sum] = "fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095"
inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-logging"
diff --git a/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.82.bb b/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.82.bb
index a7ed75f018..c49e67c919 100644
--- a/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.82.bb
+++ b/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.82.bb
@@ -9,7 +9,7 @@ PYPI_PACKAGE = "Pyro4"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-serpent \
- ${PYTHON_PN}-threading \
+ python3-logging \
+ python3-serpent \
+ python3-threading \
"
diff --git a/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.16.0.bb b/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.16.0.bb
deleted file mode 100644
index 6eb896d1d2..0000000000
--- a/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.16.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Python bindings for the Apache Thrift RPC system"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515"
-
-SRC_URI[sha256sum] = "2b5b6488fcded21f9d312aa23c9ff6a0195d0f6ae26ddbd5ad9e3e25dfc14408"
-
-inherit pypi setuptools3
-
-# Use different filename to prevent conflicts with thrift itself
-PYPI_SRC_URI:append = ";downloadfilename=${BP}.${PYPI_PACKAGE_EXT}"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-stringold \
- ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.20.0.bb b/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.20.0.bb
new file mode 100644
index 0000000000..6a0a66aef5
--- /dev/null
+++ b/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.20.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Python bindings for the Apache Thrift RPC system"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515"
+
+SRC_URI[sha256sum] = "4dd662eadf6b8aebe8a41729527bd69adf6ceaa2a8681cbef64d1273b3e8feba"
+
+inherit pypi setuptools3
+
+# Use different filename to prevent conflicts with thrift itself
+PYPI_SRC_URI:append = ";downloadfilename=${BP}.${PYPI_PACKAGE_EXT}"
+
+RDEPENDS:${PN} += "\
+ python3-logging \
+ python3-scons \
+ python3-six \
+ python3-stringold \
+ python3-threading \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb b/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
index c075e42700..ab39606bdb 100644
--- a/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
+++ b/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
@@ -6,11 +6,14 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=76699830db7fa9e897f6a1ad05f98ec8"
DEPENDS = "python3-twisted python3-six python3-vcversioner python3-six-native python3-vcversioner-native"
+RDEPENDS:${PN} += " \
+ python3-six \
+ python3-twisted \
+"
+
SRC_URI = "git://github.com/MostAwesomeDude/txWS.git;branch=master;protocol=https"
SRCREV= "88cf6d9b9b685ffa1720644bd53c742afb10a414"
S = "${WORKDIR}/git"
inherit setuptools3
-
-PIP_INSTALL_PACKAGE = "txWS"
diff --git a/meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/remove_duplicate_install.patch b/meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/remove_duplicate_install.patch
index df95a4c138..04d2da8ef2 100644
--- a/meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/remove_duplicate_install.patch
+++ b/meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/remove_duplicate_install.patch
@@ -2,14 +2,14 @@ commit f6c67662145de889055a86a6b3b12c70a45fc8d5
Author: Dongxiao Xu <dongxiao.xu@intel.com>
Date: Wed Sep 7 16:02:20 2011 +0800
- Avoid duplicated installation of errors.py
+Avoid duplicated installation of errors.py
- newer version of autotools don't seem to like listing files to install
- twice. Remove one errors.py from the installation list.
+newer version of autotools don't seem to like listing files to install
+twice. Remove one errors.py from the installation list.
- Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
+Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
- Upstream-Status: Inappropirate [upstream inactive]
+Upstream-Status: Inappropriate [upstream inactive]
diff --git a/src/Makefile.am b/src/Makefile.am
index 5c27dfe..7536e43 100644
diff --git a/meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/telepathy-python_fix_for_automake_1.12.patch b/meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/telepathy-python_fix_for_automake_1.12.patch
index f613fdce4d..0498f3ddd0 100644
--- a/meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/telepathy-python_fix_for_automake_1.12.patch
+++ b/meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/telepathy-python_fix_for_automake_1.12.patch
@@ -9,7 +9,7 @@ of warning-errors.
| make[1]: Leaving directory `/srv/home/nitin/builds2/build0/tmp/work/i586-poky-linux/telepathy-python-0.15.19-r4/telepathy-python-0.15.19/src'
| make: *** [all-recursive] Error 1
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/07/10
Index: telepathy-python-0.15.19/src/Makefile.am
===================================================================
diff --git a/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb b/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb
index f5e2f67b35..23c2165047 100644
--- a/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb
+++ b/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb
@@ -11,7 +11,6 @@ SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-python/telepathy-
file://remove_duplicate_install.patch \
file://telepathy-python_fix_for_automake_1.12.patch"
-PR = "r6"
S = "${WORKDIR}/telepathy-python-${PV}"
@@ -21,14 +20,14 @@ SRC_URI[md5sum] = "f7ca25ab3c88874015b7e9728f7f3017"
SRC_URI[sha256sum] = "244c0e1bf4bbd78ae298ea659fe10bf3a73738db550156767cc2477aedf72376"
FILES:${PN} += "\
- ${libdir}/python*/site-packages/telepathy/*.py \
- ${libdir}/python*/site-packages/telepathy/*/*.py \
+ ${PYTHON_SITEPACKAGES_DIR}/telepathy/*.py \
+ ${PYTHON_SITEPACKAGES_DIR}/telepathy/*/*.py \
"
do_install:append () {
- rm -fr ${D}${libdir}/python*/site-packages/telepathy/__pycache__
- rm -fr ${D}${libdir}/python*/site-packages/telepathy/__pycache__
- rm -fr ${D}${libdir}/python*/site-packages/telepathy/*/__pycache__
- rm -fr ${D}${libdir}/python*/site-packages/telepathy/*/__pycache__
+ rm -fr ${D}${PYTHON_SITEPACKAGES_DIR}/telepathy/__pycache__
+ rm -fr ${D}${PYTHON_SITEPACKAGES_DIR}/telepathy/__pycache__
+ rm -fr ${D}${PYTHON_SITEPACKAGES_DIR}/telepathy/*/__pycache__
+ rm -fr ${D}${PYTHON_SITEPACKAGES_DIR}/telepathy/*/__pycache__
}
RDEPENDS:${PN} += "python3-dbus"
diff --git a/meta-python/recipes-core/images/meta-python-image-all.bb b/meta-python/recipes-core/images/meta-python-image-all.bb
new file mode 100644
index 0000000000..fbe3efc600
--- /dev/null
+++ b/meta-python/recipes-core/images/meta-python-image-all.bb
@@ -0,0 +1,5 @@
+require recipes-core/images/core-image-base.bb
+
+SUMMARY = "meta-python build test image"
+
+IMAGE_INSTALL += "packagegroup-meta-python3"
diff --git a/meta-python/recipes-core/images/meta-python-image-base.bb b/meta-python/recipes-core/images/meta-python-image-base.bb
deleted file mode 100644
index 81081e61b2..0000000000
--- a/meta-python/recipes-core/images/meta-python-image-base.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-SUMMARY = "meta-python build test image"
-
-IMAGE_INSTALL = "packagegroup-core-boot"
-
-LICENSE = "MIT"
-
-inherit core-image
diff --git a/meta-python/recipes-core/images/meta-python-image-ptest-all.bb b/meta-python/recipes-core/images/meta-python-image-ptest-all.bb
new file mode 100644
index 0000000000..d6708c5fd0
--- /dev/null
+++ b/meta-python/recipes-core/images/meta-python-image-ptest-all.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Recipe to trigger execution of all meta-python ptest images."
+HOMEPAGE = "https://www.openembedded.org/"
+
+LICENSE = "MIT"
+
+inherit features_check nopackages
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-python.inc
+
+# Include the full set of ptests
+PTESTS_META_PYTHON = "${PTESTS_FAST_META_PYTHON} ${PTESTS_SLOW_META_PYTHON} ${PTESTS_PROBLEMS_META_PYTHON}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-python-image-ptest-'+x+':do_testimage' for x in d.getVar('PTESTS_META_PYTHON').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-python-image-ptest-'+x+':do_build' for x in d.getVar('PTESTS_META_PYTHON').split()])}"
+
+# normally image.bbclass would do this
+EXCLUDE_FROM_WORLD = "1"
+
+python () {
+ if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
+ bb.build.addtask("do_testimage", "", "", d)
+}
diff --git a/meta-python/recipes-core/images/meta-python-image-ptest-fast.bb b/meta-python/recipes-core/images/meta-python-image-ptest-fast.bb
new file mode 100644
index 0000000000..bb6e8213fe
--- /dev/null
+++ b/meta-python/recipes-core/images/meta-python-image-ptest-fast.bb
@@ -0,0 +1,6 @@
+require meta-python-image-ptest-all.bb
+
+DESCRIPTION = "Recipe to trigger execution of all fast meta-python ptest images."
+
+PTESTS_META_PYTHON = "${PTESTS_FAST_META_PYTHON}"
+
diff --git a/meta-python/recipes-core/images/meta-python-image-ptest.bb b/meta-python/recipes-core/images/meta-python-image-ptest.bb
new file mode 100644
index 0000000000..002bd7a39e
--- /dev/null
+++ b/meta-python/recipes-core/images/meta-python-image-ptest.bb
@@ -0,0 +1,44 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require recipes-core/images/core-image-minimal.bb
+require conf/include/ptest-packagelists-meta-python.inc
+
+SUMMARY = "meta-python ptest test image"
+
+DESCRIPTION += "Also including the ${MCNAME} ptest package."
+HOMEPAGE = "https://www.openembedded.org/"
+
+PTESTS_META_PYTHON = "${PTESTS_SLOW_META_PYTHON} ${PTESTS_FAST_META_PYTHON} ${PTESTS_PROBLEMS_META_PYTHON}"
+
+IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
+
+BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_PYTHON').split()])}"
+
+# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
+# box) and explicitly add up to 1500MB.
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "324288"
+# If a particular ptest needs more space, it can be customized:
+#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
+
+# ptests need more memory than standard to avoid the OOM killer
+QB_MEM = "-m 1024"
+# If a particular ptest needs more memory, it can be customized:
+#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
+# python3-scrypt ptests run into OOMs on RISCV64 qemu
+QB_MEM:virtclass-mcextend-python3-scrypt = "-m 2048"
+QB_MEM:virtclass-mcextend-python3-fastjsonschema = "-m 2048"
+QB_MEM:virtclass-mcextend-python3-pillow = "-m 2048"
+
+TEST_SUITES = "ping ssh parselogs ptest"
+
+# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
+
+python () {
+ if not d.getVar("MCNAME"):
+ raise bb.parse.SkipRecipe("No class extension set")
+}
+
diff --git a/meta-python/recipes-core/images/meta-python-image.bb b/meta-python/recipes-core/images/meta-python-image.bb
deleted file mode 100644
index 6353d389b5..0000000000
--- a/meta-python/recipes-core/images/meta-python-image.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require meta-python-image-base.bb
-
-SUMMARY = "meta-python build test image"
-
-IMAGE_INSTALL += "packagegroup-meta-python3"
diff --git a/meta-python/recipes-core/images/meta-python-ptest-image.bb b/meta-python/recipes-core/images/meta-python-ptest-image.bb
deleted file mode 100644
index d497016d41..0000000000
--- a/meta-python/recipes-core/images/meta-python-ptest-image.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require meta-python-image-base.bb
-
-SUMMARY = "meta-python ptest test image"
-
-IMAGE_INSTALL += "packagegroup-meta-python3-ptest"
diff --git a/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
index 1d2a9952cf..8850f8eb9a 100644
--- a/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
+++ b/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -137,7 +137,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-flask-nav \
python3-flask-pymongo \
python3-flask-restful \
- python3-flask-script \
python3-flask-sijax \
python3-flask-socketio \
python3-flask-sqlalchemy \
@@ -157,6 +156,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-gmqtt \
python3-gnupg \
python3-google-api-python-client \
+ python3-gpiod \
python3-gpsd-py3 \
python3-graphviz \
python3-greenlet \
@@ -210,7 +210,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-jsonpath-rw \
python3-jsonpointer \
python3-jsonref \
- python3-jsonrpcserver \
python3-jsonschema \
python3-jstyleson \
python3-kconfiglib \
@@ -313,7 +312,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-pyconnman \
python3-pycurl \
python3-pydbus \
- python3-pydbus-manager \
python3-pydicti \
python3-pyephem \
python3-pyexpect \
@@ -322,7 +320,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-pyflakes \
python3-pyhamcrest \
python3-pyiface \
- python3-pyinotify \
python3-pyjks \
python3-pyjwt \
python3-pykickstart \
@@ -352,7 +349,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-pytest-forked \
python3-pytest-helpers-namespace \
python3-pytest-html \
- python3-pytest-lazy-fixture \
+ python3-pytest-lazy-fixtures \
python3-pytest-metadata \
python3-pytest-tempdir \
python3-pytest-timeout \
@@ -361,7 +358,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-python-vlc \
python3-pytoml \
python3-pytun \
- python3-pytz-deprecation-shim \
python3-pyudev \
python3-pyusb \
python3-pywbem \
@@ -392,8 +388,8 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-send2trash \
python3-sentry-sdk \
python3-serpent \
+ python3-service-identity \
python3-setuptools-declarative-requirements \
- python3-setuptools-scm-git-archive \
python3-sh \
python3-sijax \
python3-simpleeval \
@@ -413,7 +409,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-sqlparse \
python3-sqlsoup \
python3-stevedore \
- python3-strict-rfc3339 \
python3-supervisor \
python3-sympy \
python3-tabulate \
@@ -430,6 +425,7 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-trafaret-config \
python3-traitlets \
python3-transitions \
+ python3-trustme \
python3-twine \
python3-twisted \
python3-twitter \
@@ -437,24 +433,23 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-txaio \
python3-txdbus \
python3-txws \
- python3-typed-ast \
python3-typeguard \
python3-tzlocal \
python3-u-msgpack-python \
- python3-uinput \
python3-ujson \
python3-unidiff \
python3-uritemplate \
python3-vcversioner \
+ python3-versioneer \
python3-versiontools \
python3-visitor \
python3-waitress \
python3-watchdog \
+ python3-watchdogdev \
python3-web3 \
python3-webcolors \
python3-webencodings \
python3-websocket-client \
- python3-websockets \
python3-werkzeug \
python3-werkzeug \
python3-whoosh \
@@ -462,7 +457,6 @@ RDEPENDS:packagegroup-meta-python3 = "\
python3-wtforms \
python3-xlrd \
python3-xlsxwriter \
- python3-xmlrunner \
python3-xmltodict \
python3-xmodem \
python3-xstatic \
@@ -513,7 +507,6 @@ RDEPENDS:packagegroup-meta-python3-ptest = "\
python3-pyasn1-modules-ptest \
python3-pyroute2-ptest \
python3-pyserial-ptest \
- python3-pytest-lazy-fixture-ptest \
python3-pytoml-ptest \
python3-pyzmq-ptest \
python3-requests-file-ptest \
diff --git a/meta-python/recipes-devtools/gyp/gyp/0001-Fix-for-Python-3.10-compatibility.patch b/meta-python/recipes-devtools/gyp/gyp/0001-Fix-for-Python-3.10-compatibility.patch
deleted file mode 100644
index 1848654404..0000000000
--- a/meta-python/recipes-devtools/gyp/gyp/0001-Fix-for-Python-3.10-compatibility.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From bfe579283e5fcab60172818bfe4e6e1d40c2bed0 Mon Sep 17 00:00:00 2001
-From: Kurt Kiefer <kurt.kiefer@arthrex.com>
-Date: Mon, 18 Oct 2021 11:21:14 -0700
-Subject: [PATCH] Fix for Python 3.10 compatibility
-
-The collections.abc module replaces collections for Python 3.10
-
-Signed-off-by: Kurt Kiefer <kurt.kiefer@arthrex.com>
----
- pylib/gyp/common.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pylib/gyp/common.py b/pylib/gyp/common.py
-index b268d229..4f9cb0ec 100644
---- a/pylib/gyp/common.py
-+++ b/pylib/gyp/common.py
-@@ -4,7 +4,7 @@
-
- from __future__ import with_statement
-
--import collections
-+import collections.abc
- import errno
- import filecmp
- import os.path
-@@ -494,7 +494,7 @@ def uniquer(seq, idfun=None):
-
-
- # Based on http://code.activestate.com/recipes/576694/.
--class OrderedSet(collections.MutableSet):
-+class OrderedSet(collections.abc.MutableSet):
- def __init__(self, iterable=None):
- self.end = end = []
- end += [None, end, end] # sentinel node for doubly linked list
diff --git a/meta-python/recipes-devtools/gyp/gyp_git.bb b/meta-python/recipes-devtools/gyp/gyp_git.bb
index 38906de759..6ac4228a8b 100644
--- a/meta-python/recipes-devtools/gyp/gyp_git.bb
+++ b/meta-python/recipes-devtools/gyp/gyp_git.bb
@@ -5,12 +5,11 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=ab828cb8ce4c62ee82945a11247b6bbd"
SECTION = "devel"
SRC_URI = "git://chromium.googlesource.com/external/gyp;protocol=https;branch=master \
- file://0001-Fix-for-Python-3.10-compatibility.patch \
"
-SRCREV = "caa60026e223fc501e8b337fd5086ece4028b1c6"
+SRCREV = "a03d7413becefc8d55c8aa3df58b55b9bd0e9052"
S = "${WORKDIR}/git"
-PV = "0.1+git${SRCPV}"
+PV = "0.1+git"
inherit setuptools3
diff --git a/meta-python/recipes-devtools/python-jsonref/files/migrate-to-pdm-backend.patch b/meta-python/recipes-devtools/python-jsonref/files/migrate-to-pdm-backend.patch
new file mode 100644
index 0000000000..709a38c4aa
--- /dev/null
+++ b/meta-python/recipes-devtools/python-jsonref/files/migrate-to-pdm-backend.patch
@@ -0,0 +1,28 @@
+From 1b594cf12e5a69aa25f49f532c1201a6b39e280d Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Tue, 7 Nov 2023 10:43:32 +0000
+Subject: [PATCH] Migrate to pdm-backend
+
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+Upstream-Status: Pending
+---
+ pyproject.toml | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index f549376..c608213 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -36,7 +36,5 @@ includes = [
+ profile = "black"
+
+ [build-system]
+-requires = [
+- "pdm-pep517>=1.0.0",
+-]
+-build-backend = "pdm.pep517.api"
++requires = ["pdm-backend"]
++build-backend = "pdm.backend"
+--
+2.39.2
+
diff --git a/meta-python/recipes-devtools/python-jsonref/python3-jsonref_0.2.bb b/meta-python/recipes-devtools/python-jsonref/python3-jsonref_0.2.bb
deleted file mode 100644
index 45deb09c72..0000000000
--- a/meta-python/recipes-devtools/python-jsonref/python3-jsonref_0.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "jsonref is a library for automatic dereferencing of JSON Reference objects for Python"
-HOMEPAGE = "https://github.com/gazpachoking/jsonref"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a34264f25338d41744dca1abfe4eb18f"
-
-SRC_URI[md5sum] = "42b518b9ccd6852d1d709749bc96cb70"
-SRC_URI[sha256sum] = "f3c45b121cf6257eafabdc3a8008763aed1cd7da06dbabc59a9e4d2a5e4e6697"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python-jsonref/python3-jsonref_1.1.0.bb b/meta-python/recipes-devtools/python-jsonref/python3-jsonref_1.1.0.bb
new file mode 100644
index 0000000000..4272fc4f24
--- /dev/null
+++ b/meta-python/recipes-devtools/python-jsonref/python3-jsonref_1.1.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "jsonref is a library for automatic dereferencing of JSON Reference objects for Python"
+HOMEPAGE = "https://github.com/gazpachoking/jsonref"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4ac1cccee5d43e11fc4eddcf445be64a"
+
+SRC_URI[sha256sum] = "32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552"
+
+SRC_URI += "file://migrate-to-pdm-backend.patch"
+
+inherit pypi python_setuptools_build_meta
+
+BBCLASSEXTEND = "native nativesdk"
+
+DEPENDS += " \
+ python3-pdm-native \
+ python3-pdm-backend-native \
+"
+
+RDEPENDS:${PN} += " \
+ python3-core \
+ python3-json \
+ python3-netclient \
+"
diff --git a/meta-python/recipes-devtools/python/files/0001-versioneer.py-do-not-use-SafeConfigParser.patch b/meta-python/recipes-devtools/python/files/0001-versioneer.py-do-not-use-SafeConfigParser.patch
new file mode 100644
index 0000000000..34caaca982
--- /dev/null
+++ b/meta-python/recipes-devtools/python/files/0001-versioneer.py-do-not-use-SafeConfigParser.patch
@@ -0,0 +1,29 @@
+From 0920bd21ceab75bc4b655c571a37835526dd2468 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 27 Dec 2023 15:12:19 +0100
+Subject: [PATCH] versioneer.py: do not use SafeConfigParser
+
+This has been deprecated for a long time, and finally removed in python 3.12
+
+Upstream-Status: Submitted [https://github.com/rsokl/custom_inherit/pull/49]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ versioneer.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/versioneer.py b/versioneer.py
+index 64fea1c..3aa5da3 100644
+--- a/versioneer.py
++++ b/versioneer.py
+@@ -339,9 +339,9 @@ def get_config_from_root(root):
+ # configparser.NoOptionError (if it lacks "VCS="). See the docstring at
+ # the top of versioneer.py for instructions on writing your setup.cfg .
+ setup_cfg = os.path.join(root, "setup.cfg")
+- parser = configparser.SafeConfigParser()
++ parser = configparser.ConfigParser()
+ with open(setup_cfg, "r") as f:
+- parser.readfp(f)
++ parser.read_file(f)
+ VCS = parser.get("versioneer", "VCS") # mandatory
+
+ def get(parser, name):
diff --git a/meta-python/recipes-devtools/python/pamela_1.0.0.bb b/meta-python/recipes-devtools/python/pamela_1.0.0.bb
deleted file mode 100644
index 369ed78ca7..0000000000
--- a/meta-python/recipes-devtools/python/pamela_1.0.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "Pamela: yet another Python wrapper for PAM"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=3f9b78307cdde4e6a4976bfd82a0e7f3"
-
-SRC_URI[md5sum] = "5fc14f5275383ed8bdd509007af0323d"
-SRC_URI[sha256sum] = "65c9389bef7d1bb0b168813b6be21964df32016923aac7515bdf05366acbab6c"
-
-PYPI_PACKAGE = "pamela"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "libpam"
-
-inherit features_check
-REQUIRED_DISTRO_FEATURES = "pam"
diff --git a/meta-python/recipes-devtools/python/pamela_1.1.0.bb b/meta-python/recipes-devtools/python/pamela_1.1.0.bb
new file mode 100644
index 0000000000..3573de551d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/pamela_1.1.0.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Pamela: yet another Python wrapper for PAM"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=6b706db92112b8384848de3e5c6adaa3"
+
+SRC_URI[sha256sum] = "d4b139fe600e192e176a2a368059207a6bffa0e7879879b13f4fcba0163481be"
+
+PYPI_PACKAGE = "pamela"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "libpam"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "pam"
diff --git a/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb b/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb
index 71e932bb0c..ed4e588509 100644
--- a/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb
+++ b/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb
@@ -1,5 +1,4 @@
SUMMARY = "Python interface for Remember The Milk API"
-AUTHOR = "Sridhar Ratnakumar / srid"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=a53cbc7cb75660694e138ba973c148df"
@@ -21,9 +20,9 @@ FILES:${PN}-tests += " \
"
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-netclient \
+ python3-json \
+ python3-logging \
+ python3-netclient \
"
RDEPENDS:${PN}-samples += " \
@@ -32,5 +31,5 @@ RDEPENDS:${PN}-samples += " \
RDEPENDS:${PN}-tests += " \
${PN} \
- ${PYTHON_PN}-unittest \
+ python3-unittest \
"
diff --git a/meta-python/recipes-devtools/python/python-daemon/0001-Workaround-for-issue-2-1.patch b/meta-python/recipes-devtools/python/python-daemon/0001-Workaround-for-issue-2-1.patch
deleted file mode 100644
index dbb8407186..0000000000
--- a/meta-python/recipes-devtools/python/python-daemon/0001-Workaround-for-issue-2-1.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 0981eee9f0198c2045dc0eaa78a005d06fc7bfe4 Mon Sep 17 00:00:00 2001
-From: Carlos Eduardo Moreira dos Santos <cems@cemshost.com.br>
-Date: Tue, 28 Mar 2017 18:23:44 -0300
-Subject: [PATCH] Workaround for issue 2 [1]
-
-[1] https://pagure.io/python-daemon/issue/2
----
- version.py | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/version.py b/version.py
-index d58422a377ee..293e2d64c2b7 100644
---- a/version.py
-+++ b/version.py
-@@ -648,9 +648,10 @@ class ChangelogAwareDistribution(distutils.dist.Distribution, object):
-
- @lru_cache(maxsize=128)
- def get_version_info(self):
-- changelog_path = get_changelog_path(self)
-- version_info = generate_version_info_from_changelog(changelog_path)
-- return version_info
-+ return {
-+ 'version': '2.1.2',
-+ 'maintainer': 'Ben Finney'
-+ }
-
- def get_version(self):
- version_info = self.get_version_info()
---
-2.7.4
-
diff --git a/meta-python/recipes-devtools/python/python-django-south.inc b/meta-python/recipes-devtools/python/python-django-south.inc
index 4a376391aa..28eb84c563 100644
--- a/meta-python/recipes-devtools/python/python-django-south.inc
+++ b/meta-python/recipes-devtools/python/python-django-south.inc
@@ -13,5 +13,5 @@ inherit pypi
BBCLASSEXTEND = "native nativesdk"
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-django \
+ python3-django \
"
diff --git a/meta-python/recipes-devtools/python/python-django.inc b/meta-python/recipes-devtools/python/python-django.inc
index e030ff4087..d9ab3fd21f 100644
--- a/meta-python/recipes-devtools/python/python-django.inc
+++ b/meta-python/recipes-devtools/python/python-django.inc
@@ -13,22 +13,21 @@ FILES:${PN} += "${datadir}/django"
BBCLASSEXTEND = "native nativesdk"
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-email \
- ${PYTHON_PN}-html \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-multiprocessing \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-pkgutil \
- ${PYTHON_PN}-pytz \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-unixadmin \
- ${PYTHON_PN}-xml \
- ${PYTHON_PN}-distutils \
+ python3-compression \
+ python3-ctypes \
+ python3-datetime \
+ python3-email \
+ python3-html \
+ python3-json \
+ python3-logging \
+ python3-multiprocessing \
+ python3-netserver \
+ python3-numbers \
+ python3-pkgutil \
+ python3-pytz \
+ python3-threading \
+ python3-unixadmin \
+ python3-xml \
"
CVE_PRODUCT = "django"
diff --git a/meta-python/recipes-devtools/python/python-flask-bootstrap.inc b/meta-python/recipes-devtools/python/python-flask-bootstrap.inc
index 1a729c975b..24c76ce942 100644
--- a/meta-python/recipes-devtools/python/python-flask-bootstrap.inc
+++ b/meta-python/recipes-devtools/python/python-flask-bootstrap.inc
@@ -8,7 +8,7 @@ SRC_URI[sha256sum] = "cb08ed940183f6343a64e465e83b3a3f13c53e1baabb8d72b5da4545ef
PYPI_PACKAGE = "Flask-Bootstrap"
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-dominate \
- ${PYTHON_PN}-flask \
- ${PYTHON_PN}-visitor \
+ python3-dominate \
+ python3-flask \
+ python3-visitor \
"
diff --git a/meta-python/recipes-devtools/python/python-flask-script.inc b/meta-python/recipes-devtools/python/python-flask-script.inc
deleted file mode 100644
index 3a7adb32ca..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-script.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "Scripting support for flask"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e686048adb69341fc8a08caeda528b41"
-
-SRC_URI[md5sum] = "3fbd91fe13cebedfb2431331f6eabb68"
-SRC_URI[sha256sum] = "6425963d91054cfcc185807141c7314a9c5ad46325911bd24dcb489bd0161c65"
-
-PYPI_PACKAGE = "Flask-Script"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-flask \
- "
diff --git a/meta-python/recipes-devtools/python/python-flask-sijax.inc b/meta-python/recipes-devtools/python/python-flask-sijax.inc
index 4264f8f6d5..239c843fce 100644
--- a/meta-python/recipes-devtools/python/python-flask-sijax.inc
+++ b/meta-python/recipes-devtools/python/python-flask-sijax.inc
@@ -5,4 +5,8 @@ LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=266adc7b911b7c84b837bf77196e1ba6"
PYPI_PACKAGE = "Flask-Sijax"
-RDEPENDS:${PN} = "${PYTHON_PN}-sijax" \ No newline at end of file
+RDEPENDS:${PN} += " \
+ python3-flask \
+ python3-sijax \
+ python3-werkzeug \
+"
diff --git a/meta-python/recipes-devtools/python/python-flask-xstatic.inc b/meta-python/recipes-devtools/python/python-flask-xstatic.inc
index 5f4e0858f8..8434d2610b 100644
--- a/meta-python/recipes-devtools/python/python-flask-xstatic.inc
+++ b/meta-python/recipes-devtools/python/python-flask-xstatic.inc
@@ -11,6 +11,6 @@ SRC_URI += "file://remove-pip-requires.patch"
PYPI_PACKAGE = "Flask-XStatic"
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-flask \
- ${PYTHON_PN}-xstatic \
+ python3-flask \
+ python3-xstatic \
"
diff --git a/meta-python/recipes-devtools/python/python-flask-xstatic/remove-pip-requires.patch b/meta-python/recipes-devtools/python/python-flask-xstatic/remove-pip-requires.patch
index a2d620ad06..ba06d670e3 100644
--- a/meta-python/recipes-devtools/python/python-flask-xstatic/remove-pip-requires.patch
+++ b/meta-python/recipes-devtools/python/python-flask-xstatic/remove-pip-requires.patch
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- Flask-XStatic-0.0.1/setup.py.orig 2015-01-30 08:01:56.000000000 -0800
+++ Flask-XStatic-0.0.1/setup.py 2017-04-17 21:40:32.570181626 -0700
@@ -1,4 +1,3 @@
diff --git a/meta-python/recipes-devtools/python/python-idna-ssl.inc b/meta-python/recipes-devtools/python/python-idna-ssl.inc
deleted file mode 100644
index e74bbd7c65..0000000000
--- a/meta-python/recipes-devtools/python/python-idna-ssl.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Patch ssl.match_hostname for Unicode(idna) domains support"
-HOMEPAGE = "https://github.com/aio-libs/idna-ssl"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a61b9c5aec8796b64a6bf15d42605073"
-
-SRC_URI[md5sum] = "dd44ec53bac36e68446766fd8d3835bd"
-SRC_URI[sha256sum] = "a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c"
-
-PYPI_PACKAGE = "idna-ssl"
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-imaging/0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch b/meta-python/recipes-devtools/python/python-imaging/0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch
deleted file mode 100644
index 2575306bec..0000000000
--- a/meta-python/recipes-devtools/python/python-imaging/0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 07d4f095a9e22ae676a8d68073101131e65012dc Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Tue, 15 Nov 2011 13:16:54 +0100
-Subject: [PATCH] python imaging setup.py: force paths for zlib, freetype and jpeg and don't add host paths
-
-Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- setup.py | 14 +++-----------
- 1 files changed, 3 insertions(+), 11 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 5d4d53a..b1a22ec 100644
---- a/setup.py
-+++ b/setup.py
-@@ -34,10 +34,10 @@ def libinclude(root):
- # TIFF_ROOT = libinclude("/opt/tiff")
-
- TCL_ROOT = None
--JPEG_ROOT = None
--ZLIB_ROOT = None
-+JPEG_ROOT = os.environ['STAGING_LIBDIR']
-+ZLIB_ROOT = os.environ['STAGING_LIBDIR']
- TIFF_ROOT = None
--FREETYPE_ROOT = None
-+FREETYPE_ROOT = os.environ['STAGING_LIBDIR'], os.environ['STAGING_INCDIR']
- LCMS_ROOT = None
-
- # FIXME: add mechanism to explicitly *disable* the use of a library
-@@ -147,7 +147,6 @@ class pil_build_ext(build_ext):
- add_directory(library_dirs, "/opt/local/lib")
- add_directory(include_dirs, "/opt/local/include")
-
-- add_directory(library_dirs, "/usr/local/lib")
- # FIXME: check /opt/stuff directories here?
-
- prefix = sysconfig.get_config_var("prefix")
-@@ -207,13 +206,6 @@ class pil_build_ext(build_ext):
- if os.path.isfile(os.path.join(tcl_dir, "tk.h")):
- add_directory(include_dirs, tcl_dir)
-
-- # standard locations
-- add_directory(library_dirs, "/usr/local/lib")
-- add_directory(include_dirs, "/usr/local/include")
--
-- add_directory(library_dirs, "/usr/lib")
-- add_directory(include_dirs, "/usr/include")
--
- #
- # insert new dirs *before* default libs, to avoid conflicts
- # between Python PYD stub libs and real libraries
---
-1.7.2.5
-
diff --git a/meta-python/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch b/meta-python/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch
deleted file mode 100644
index 4960ed4661..0000000000
--- a/meta-python/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-At least lcms wasn't deterministicly detected from sysroot.
-
-This will allow to export LCMS_ENABLED=False when lcms isn't in PACKAGECONFIG.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
-diff -uNr Imaging-1.1.7.orig/setup.py Imaging-1.1.7/setup.py
---- Imaging-1.1.7.orig/setup.py 2013-07-22 10:17:02.081457075 +0200
-+++ Imaging-1.1.7/setup.py 2013-07-22 13:10:09.029707492 +0200
-@@ -39,6 +39,12 @@
- TIFF_ROOT = None
- FREETYPE_ROOT = os.environ['STAGING_LIBDIR'], os.environ['STAGING_INCDIR']
- LCMS_ROOT = None
-+TCL_ENABLED = os.getenv('TCL_ENABLED', "True")
-+JPEG_ENABLED = os.getenv('JPEG_ENABLED', "True")
-+ZLIB_ENABLED = os.getenv('ZLIB_ENABLED', "True")
-+TIFF_ENABLED = os.getenv('TIFF_ENABLED', "True")
-+FREETYPE_ENABLED = os.getenv('FREETYPE_ENABLED', "True")
-+LCMS_ENABLED = os.getenv('LCMS_ENABLED', "True")
-
- # FIXME: add mechanism to explicitly *disable* the use of a library
-
-@@ -220,22 +226,22 @@
- zlib = jpeg = tiff = freetype = tcl = tk = lcms = None
- feature = feature()
-
-- if find_include_file(self, "zlib.h"):
-+ if ZLIB_ENABLED == 'True' and find_include_file(self, "zlib.h"):
- if find_library_file(self, "z"):
- feature.zlib = "z"
- elif sys.platform == "win32" and find_library_file(self, "zlib"):
- feature.zlib = "zlib" # alternative name
-
-- if find_include_file(self, "jpeglib.h"):
-+ if JPEG_ENABLED == 'True' and find_include_file(self, "jpeglib.h"):
- if find_library_file(self, "jpeg"):
- feature.jpeg = "jpeg"
- elif sys.platform == "win32" and find_library_file(self, "libjpeg"):
- feature.jpeg = "libjpeg" # alternative name
-
-- if find_library_file(self, "tiff"):
-+ if TIFF_ENABLED == 'True' and find_library_file(self, "tiff"):
- feature.tiff = "tiff"
-
-- if find_library_file(self, "freetype"):
-+ if FREETYPE_ENABLED == 'True' and find_library_file(self, "freetype"):
- # look for freetype2 include files
- freetype_version = 0
- for dir in self.compiler.include_dirs:
-@@ -256,11 +262,11 @@
- if dir:
- add_directory(self.compiler.include_dirs, dir, 0)
-
-- if find_include_file(self, "lcms.h"):
-+ if LCMS_ENABLED == 'True' and find_include_file(self, "lcms.h"):
- if find_library_file(self, "lcms"):
- feature.lcms = "lcms"
-
-- if _tkinter and find_include_file(self, "tk.h"):
-+ if TCL_ENABLED == 'True' and _tkinter and find_include_file(self, "tk.h"):
- # the library names may vary somewhat (e.g. tcl84 or tcl8.4)
- version = TCL_VERSION[0] + TCL_VERSION[2]
- if find_library_file(self, "tcl" + version):
diff --git a/meta-python/recipes-devtools/python/python-imaging/fix-freetype-includes.patch b/meta-python/recipes-devtools/python/python-imaging/fix-freetype-includes.patch
deleted file mode 100644
index 9ecc63a0d6..0000000000
--- a/meta-python/recipes-devtools/python/python-imaging/fix-freetype-includes.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From c6040f618d8f2706a7b46d1cdf37d1a587f9701f Mon Sep 17 00:00:00 2001
-From: Andrew Stromnov <stromnov@gmail.com>
-Date: Thu, 28 Nov 2013 16:58:43 +0400
-Subject: [PATCH] fix compiling with FreeType 2.5.1
-
----
- _imagingft.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/_imagingft.c b/_imagingft.c
-index 47d50bd..f19555b 100644
---- a/_imagingft.c
-+++ b/_imagingft.c
-@@ -59,7 +59,11 @@ struct {
- const char* message;
- } ft_errors[] =
-
-+#if defined(USE_FREETYPE_2_1)
-+#include FT_ERRORS_H
-+#else
- #include <freetype/fterrors.h>
-+#endif
-
- /* -------------------------------------------------------------------- */
- /* font objects */
---
-1.8.5.1
diff --git a/meta-python/recipes-devtools/python/python-imaging/python-imaging-CVE-2016-2533.patch b/meta-python/recipes-devtools/python/python-imaging/python-imaging-CVE-2016-2533.patch
deleted file mode 100644
index b01136f9ac..0000000000
--- a/meta-python/recipes-devtools/python/python-imaging/python-imaging-CVE-2016-2533.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-python-imaging: CVE-2016-2533
-
-the patch comes from:
-https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-2533
-https://github.com/python-pillow/Pillow/commit/ae453aa18b66af54e7ff716f4ccb33adca60afd4#diff-8ff6909c159597e22288ad818938fd6b
-
-PCD decoder overruns the shuffle buffer, Fixes #568
-
-Signed-off-by: Li Wang <li.wang@windriver.com>
----
- libImaging/PcdDecode.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libImaging/PcdDecode.c b/libImaging/PcdDecode.c
-index b6898e3..c02d005 100644
---- a/libImaging/PcdDecode.c
-+++ b/libImaging/PcdDecode.c
-@@ -47,7 +47,7 @@ ImagingPcdDecode(Imaging im, ImagingCodecState state, UINT8* buf, int bytes)
- out[0] = ptr[x];
- out[1] = ptr[(x+4*state->xsize)/2];
- out[2] = ptr[(x+5*state->xsize)/2];
-- out += 4;
-+ out += 3;
- }
-
- state->shuffle((UINT8*) im->image[state->y],
-@@ -62,7 +62,7 @@ ImagingPcdDecode(Imaging im, ImagingCodecState state, UINT8* buf, int bytes)
- out[0] = ptr[x+state->xsize];
- out[1] = ptr[(x+4*state->xsize)/2];
- out[2] = ptr[(x+5*state->xsize)/2];
-- out += 4;
-+ out += 3;
- }
-
- state->shuffle((UINT8*) im->image[state->y],
---
-1.7.9.5
-
diff --git a/meta-python/recipes-devtools/python/python-imaging/remove-host-libdir.patch b/meta-python/recipes-devtools/python/python-imaging/remove-host-libdir.patch
deleted file mode 100644
index 028a51ad59..0000000000
--- a/meta-python/recipes-devtools/python/python-imaging/remove-host-libdir.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Avoid getting host sysroot paths in the library paths to fix issue like:
-
-| /home/andrei/work/yocto/build-rpi-master/tmp/sysroots/x86_64-linux/usr/lib/libz.so: file not recognized: File format not recognized
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-
-
-Index: Imaging-1.1.7/setup.py
-===================================================================
---- Imaging-1.1.7.orig/setup.py
-+++ Imaging-1.1.7/setup.py
-@@ -155,11 +155,6 @@ class pil_build_ext(build_ext):
-
- # FIXME: check /opt/stuff directories here?
-
-- prefix = sysconfig.get_config_var("prefix")
-- if prefix:
-- add_directory(library_dirs, os.path.join(prefix, "lib"))
-- add_directory(include_dirs, os.path.join(prefix, "include"))
--
- #
- # locate tkinter libraries
-
diff --git a/meta-python/recipes-devtools/python/python-libusb1_3.1.0.bb b/meta-python/recipes-devtools/python/python-libusb1_3.1.0.bb
new file mode 100644
index 0000000000..a045dfa8bc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-libusb1_3.1.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Pure-python wrapper for libusb-1.0"
+HOMEPAGE = "http://github.com/vpelletier/python-libusb1"
+AUTHOR = "Vincent Pelletier <plr.vincent@gmail.com>"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+ file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \
+"
+
+SRC_URI = "https://github.com/vpelletier/${BPN}/releases/download/${PV}/libusb1-${PV}.tar.gz"
+SRC_URI[md5sum] = "7b4f094786d1dfc8d011c7649d8ccb97"
+SRC_URI[sha256sum] = "4ee9b0a55f8bd0b3ea7017ae919a6c1f439af742c4a4b04543c5fd7af89b828c"
+
+S = "${WORKDIR}/libusb1-${PV}"
+
+RDEPENDS:${PN} = "libusb1"
+
+inherit setuptools3
diff --git a/meta-python/recipes-devtools/python/python-mccabe/0001-python-mccabe-remove-unnecessary-setup_requires-pyte.patch b/meta-python/recipes-devtools/python/python-mccabe/0001-python-mccabe-remove-unnecessary-setup_requires-pyte.patch
deleted file mode 100644
index 941bed3d73..0000000000
--- a/meta-python/recipes-devtools/python/python-mccabe/0001-python-mccabe-remove-unnecessary-setup_requires-pyte.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 3484bdfa7adbaebcf8bb8e7d4820f64b12717932 Mon Sep 17 00:00:00 2001
-From: Mingli Yu <mingli.yu@windriver.com>
-Date: Fri, 29 Jul 2016 15:37:18 +0800
-Subject: [PATCH] python-mccabe: remove unnecessary setup_requires
- pytest-runner
-
-* Remove setup_requires pytest-runner as the
- setup_requires pytest-runner actually is not
- used for pytest which only in do_compile phase
- via setup.py build
-
-Upstream-Status: Pending
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- setup.py | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index e59903d..bf2aaba 100644
---- a/setup.py
-+++ b/setup.py
-@@ -33,7 +33,6 @@ setup(
- license='Expat license',
- py_modules=['mccabe'],
- zip_safe=False,
-- setup_requires=['pytest-runner'],
- tests_require=['pytest'],
- entry_points={
- 'flake8.extension': [
---
-2.8.1
-
diff --git a/meta-python/recipes-devtools/python/python-numeric/0001-it-tries-to-define-this-function-differently-than-it.patch b/meta-python/recipes-devtools/python/python-numeric/0001-it-tries-to-define-this-function-differently-than-it.patch
deleted file mode 100644
index 81ed744cbd..0000000000
--- a/meta-python/recipes-devtools/python/python-numeric/0001-it-tries-to-define-this-function-differently-than-it.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 322e781c67d7a78fc2cfc3d377f50b825fc64abb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Jun 2017 20:21:01 -0700
-Subject: [PATCH] it tries to define this function differently than it is
- defined in sys/time.h.
-
-Use the definition from system
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Packages/RNG/Src/ranf.c | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/Packages/RNG/Src/ranf.c b/Packages/RNG/Src/ranf.c
-index 5ca7dc5..e669fa8 100644
---- a/Packages/RNG/Src/ranf.c
-+++ b/Packages/RNG/Src/ranf.c
-@@ -149,9 +149,6 @@ void Mixranf(int *s,u32 s48[2])
- #else
- struct timeval tv;
- struct timezone tz;
--#if !defined(__sgi)
-- int gettimeofday(struct timeval *, struct timezone *);
--#endif
-
- (void)gettimeofday(&tv,&tz);
- s48[0] = (u32)tv.tv_sec;
---
-2.13.0
-
diff --git a/meta-python/recipes-devtools/python/python-pygpgme/0001-reflect-2.1-reporting-for-key-imports.patch b/meta-python/recipes-devtools/python/python-pygpgme/0001-reflect-2.1-reporting-for-key-imports.patch
deleted file mode 100644
index 1f31cb805e..0000000000
--- a/meta-python/recipes-devtools/python/python-pygpgme/0001-reflect-2.1-reporting-for-key-imports.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From ed44474c11f577c1644910964a917a4cf701bb0f Mon Sep 17 00:00:00 2001
-From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-Date: Tue, 26 Jan 2016 14:24:26 -0500
-Subject: [PATCH] reflect 2.1 reporting for key imports
-
-GnuPG 2.1 changes how it reports key imports. These changes should
-make the pygpgme test suite compatible with GnuPG 2.1.
-
-See also:
-https://lists.gnupg.org/pipermail/gnupg-devel/2016-January/030718.html
-
-Upstream-Status: Backport
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
-
----
- tests/test_import.py | 22 +++++++++++-----------
- 1 file changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/tests/test_import.py b/tests/test_import.py
-index 10eb816..597eb47 100644
---- a/tests/test_import.py
-+++ b/tests/test_import.py
-@@ -55,7 +55,7 @@ class ImportTestCase(GpgHomeTestCase):
- ctx = gpgme.Context()
- with self.keyfile('key1.sec') as fp:
- result = ctx.import_(fp)
-- self.assertEqual(result.considered, 1)
-+ self.assertEqual(result.considered, 3)
- self.assertEqual(result.no_user_id, 0)
- self.assertEqual(result.imported, 1)
- self.assertEqual(result.imported_rsa, 0)
-@@ -64,18 +64,18 @@ class ImportTestCase(GpgHomeTestCase):
- self.assertEqual(result.new_sub_keys, 0)
- self.assertEqual(result.new_signatures, 0)
- self.assertEqual(result.new_revocations, 0)
-- self.assertEqual(result.secret_read, 1)
-- self.assertEqual(result.secret_imported, 1)
-+ self.assertEqual(result.secret_read, 3)
-+ self.assertEqual(result.secret_imported, 2)
- self.assertEqual(result.secret_unchanged, 0)
- self.assertEqual(result.skipped_new_keys, 0)
- self.assertEqual(result.not_imported, 0)
- self.assertEqual(len(result.imports), 2)
- self.assertEqual(result.imports[0],
- ('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
-- None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
-+ None, gpgme.IMPORT_NEW))
- self.assertEqual(result.imports[1],
- ('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
-- None, gpgme.IMPORT_NEW))
-+ None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
- # can we get the public key?
- key = ctx.get_key('E79A842DA34A1CA383F64A1546BB55F0885C65A4')
- # can we get the secret key?
-@@ -102,17 +102,17 @@ class ImportTestCase(GpgHomeTestCase):
- fp = BytesIO(b'\n'.join(keys))
- ctx = gpgme.Context()
- result = ctx.import_(fp)
-- self.assertEqual(result.considered, 3)
-+ self.assertEqual(result.considered, 5)
- self.assertEqual(result.no_user_id, 0)
- self.assertEqual(result.imported, 2)
-- self.assertEqual(result.imported_rsa, 1)
-+ self.assertEqual(result.imported_rsa, 0)
- self.assertEqual(result.unchanged, 0)
- self.assertEqual(result.new_user_ids, 0)
- self.assertEqual(result.new_sub_keys, 0)
- self.assertEqual(result.new_signatures, 1)
- self.assertEqual(result.new_revocations, 0)
-- self.assertEqual(result.secret_read, 1)
-- self.assertEqual(result.secret_imported, 1)
-+ self.assertEqual(result.secret_read, 3)
-+ self.assertEqual(result.secret_imported, 2)
- self.assertEqual(result.secret_unchanged, 0)
- self.assertEqual(result.skipped_new_keys, 0)
- self.assertEqual(result.not_imported, 0)
-@@ -122,10 +122,10 @@ class ImportTestCase(GpgHomeTestCase):
- None, gpgme.IMPORT_NEW))
- self.assertEqual(result.imports[1],
- ('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
-- None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
-+ None, gpgme.IMPORT_SIG))
- self.assertEqual(result.imports[2],
- ('E79A842DA34A1CA383F64A1546BB55F0885C65A4',
-- None, gpgme.IMPORT_SIG))
-+ None, gpgme.IMPORT_NEW | gpgme.IMPORT_SECRET))
- self.assertEqual(result.imports[3],
- ('93C2240D6B8AA10AB28F701D2CF46B7FC97E6B0F',
- None, gpgme.IMPORT_NEW))
diff --git a/meta-python/recipes-devtools/python/python-pygpgme/0002-passphrase_cb-is-deprecated.patch b/meta-python/recipes-devtools/python/python-pygpgme/0002-passphrase_cb-is-deprecated.patch
deleted file mode 100644
index c18cf3feba..0000000000
--- a/meta-python/recipes-devtools/python/python-pygpgme/0002-passphrase_cb-is-deprecated.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From ba0dc8273e4f83bcd2d43baa5910aae34b93048c Mon Sep 17 00:00:00 2001
-From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-Date: Mon, 1 Feb 2016 19:25:12 -0500
-Subject: [PATCH] passphrase_cb is deprecated
-
-https://bugs.gnupg.org/gnupg/issue767 indicates that
-gpgme_set_passphrase_cb is a deprecated corner of the API and that
-developers using gpgme should really rely on the gpg-agent to handle
-this stuff. This should actually simplify things for most
-installations -- just strip out all passphrase handling from your
-application entirely, relying on gpg to figure out how to find the
-agent, and relying on the agent figuring out how to prompt the user
-(if necessary).
-
-However, if a developer really wants to use the passphrase callback
-approach, they'll have to use loopback pinentry. This sets up the
-test suite to be able to make those tests.
-
-Upstream-Status: Backport
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
-
----
- tests/util.py | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/tests/util.py b/tests/util.py
-index cd803c2..86892ca 100644
---- a/tests/util.py
-+++ b/tests/util.py
-@@ -28,7 +28,9 @@ keydir = os.path.join(os.path.dirname(__file__), 'keys')
-
- class GpgHomeTestCase(unittest.TestCase):
-
-- gpg_conf_contents = ''
-+ gpg_conf_contents = 'pinentry-mode loopback'
-+ gpg_agent_conf_contents = 'allow-loopback-pinentry'
-+
- import_keys = []
-
- def keyfile(self, key):
-@@ -41,6 +43,10 @@ class GpgHomeTestCase(unittest.TestCase):
- fp.write(self.gpg_conf_contents.encode('UTF-8'))
- fp.close()
-
-+ fp = open(os.path.join(self._gpghome, 'gpg-agent.conf'), 'wb')
-+ fp.write(self.gpg_agent_conf_contents.encode('UTF-8'))
-+ fp.close()
-+
- # import requested keys into the keyring
- ctx = gpgme.Context()
- for key in self.import_keys:
diff --git a/meta-python/recipes-devtools/python/python-pygpgme/0003-handle-generic-error-when-no-passphrase-callback-pre.patch b/meta-python/recipes-devtools/python/python-pygpgme/0003-handle-generic-error-when-no-passphrase-callback-pre.patch
deleted file mode 100644
index 6acb68bfe7..0000000000
--- a/meta-python/recipes-devtools/python/python-pygpgme/0003-handle-generic-error-when-no-passphrase-callback-pre.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 579b5930e15de8855bf63b3c20b6c3aaf894c3eb Mon Sep 17 00:00:00 2001
-From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-Date: Mon, 1 Feb 2016 19:27:59 -0500
-Subject: [PATCH] handle generic error when no passphrase callback present
-
-apparently gpg 2.1 returns ERR_GENERAL right now if the pinentry was
-in loopback mode and no passphrase callback was supplied. Earlier
-versions supplied ERR_BAD_PASSPHRASE.
-
-Upstream-Status: Backport
-
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
-
----
- tests/test_passphrase.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/test_passphrase.py b/tests/test_passphrase.py
-index 0a235e9..35b3c59 100644
---- a/tests/test_passphrase.py
-+++ b/tests/test_passphrase.py
-@@ -41,7 +41,7 @@ class PassphraseTestCase(GpgHomeTestCase):
- new_sigs = ctx.sign(plaintext, signature, gpgme.SIG_MODE_CLEAR)
- except gpgme.GpgmeError as exc:
- self.assertEqual(exc.args[0], gpgme.ERR_SOURCE_GPGME)
-- self.assertEqual(exc.args[1], gpgme.ERR_BAD_PASSPHRASE)
-+ self.assertEqual(exc.args[1], gpgme.ERR_GENERAL)
- else:
- self.fail('gpgme.GpgmeError not raised')
-
diff --git a/meta-python/recipes-devtools/python/python-pygpgme/run-ptest b/meta-python/recipes-devtools/python/python-pygpgme/run-ptest
deleted file mode 100644
index ce2abb66a5..0000000000
--- a/meta-python/recipes-devtools/python/python-pygpgme/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-GPG_AGENT_INFO= python test_all.py -v 2>&1 | sed -e '/\.\.\. ok/ s/^/PASS: /g' -e '/\.\.\. [ERROR|FAIL]/ s/^/FAIL: /g' -e '/\.\.\. skipped/ s/^/SKIP: /g' -e 's/ \.\.\. ok//g' -e 's/ \.\.\. ERROR//g' -e 's/ \.\.\. FAIL//g' -e 's/ \.\.\. skipped//g'
diff --git a/meta-python/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch b/meta-python/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch
deleted file mode 100644
index c58c3280e2..0000000000
--- a/meta-python/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Pending
-
-Index: Pyrex-0.9.8.4/Pyrex/Distutils/extension.py
-===================================================================
---- Pyrex-0.9.8.4.orig/Pyrex/Distutils/extension.py
-+++ Pyrex-0.9.8.4/Pyrex/Distutils/extension.py
-@@ -15,7 +15,7 @@ except ImportError:
- warnings = None
-
- class Extension(_Extension.Extension):
-- _Extension.Extension.__doc__ + \
-+ _Extension.Extension.__doc__ or "" + \
- """pyrex_include_dirs : [string]
- list of directories to search for Pyrex header files (.pxd) (in
- Unix form for portability)
diff --git a/meta-python/recipes-devtools/python/python-systemd/0002-setup.py-switch-from-distutils-to-setuptools.patch b/meta-python/recipes-devtools/python/python-systemd/0002-setup.py-switch-from-distutils-to-setuptools.patch
deleted file mode 100644
index b3180f29f2..0000000000
--- a/meta-python/recipes-devtools/python/python-systemd/0002-setup.py-switch-from-distutils-to-setuptools.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From a681a79472df85cdc8c052bc61fb8b9e7b9a6495 Mon Sep 17 00:00:00 2001
-From: Tim Orling <tim.orling@konsulko.com>
-Date: Sun, 27 Feb 2022 11:50:36 -0800
-Subject: [PATCH] setup.py: switch from distutils to setuptools
-
-In Python 3.10, distutils is deprecated and slated for removal in Python
-3.12. It also prevents 'setup.py bdist_wheel' from building a wheel.
-
-Upstream-Status: Submitted
-[https://github.com/systemd/python-systemd/pull/103]
-
-Signed-off-by: Tim Orling <tim.orling@konsulko.com>
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 099819b..fe9c03a 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1,5 +1,5 @@
- import sys, os
--from distutils.core import setup, Extension
-+from setuptools import setup, Extension
- from subprocess import Popen, PIPE, check_output
-
- def call(*cmd):
---
-2.30.2
-
diff --git a/meta-python/recipes-devtools/python/python-systemd/endian.patch b/meta-python/recipes-devtools/python/python-systemd/endian.patch
deleted file mode 100644
index e09aea7336..0000000000
--- a/meta-python/recipes-devtools/python/python-systemd/endian.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Include endian.h for missing definitions of htobe16
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/systemd/util.c
-+++ b/systemd/util.c
-@@ -28,6 +28,7 @@
- #include <stdbool.h>
- #include <assert.h>
- #include <errno.h>
-+#include <endian.h>
- #include <fcntl.h>
- #include <unistd.h>
- #include <net/if.h>
diff --git a/meta-python/recipes-devtools/python/python3-a2wsgi/run-ptest b/meta-python/recipes-devtools/python/python3-a2wsgi/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-a2wsgi/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-a2wsgi_1.10.4.bb b/meta-python/recipes-devtools/python/python3-a2wsgi_1.10.4.bb
new file mode 100644
index 0000000000..e6b980266e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-a2wsgi_1.10.4.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Convert WSGI app to ASGI app or ASGI app to WSGI app."
+HOMEPAGE = "https://github.com/abersheeran/a2wsgi"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e10d05d29ec6d8be8bfc503683f1bc9a"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI[sha256sum] = "50e81ac55aa609fa2c666e42bacc25c424c8884ce6072f1a7e902114b7ee5d63"
+
+DEPENDS += " \
+ python3-pdm-native \
+ python3-pdm-backend-native \
+"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-httpx \
+ python3-pytest \
+ python3-pytest-asyncio \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+"
diff --git a/meta-python/recipes-devtools/python/python3-absl_1.2.0.bb b/meta-python/recipes-devtools/python/python3-absl_1.2.0.bb
deleted file mode 100644
index 42b3ddc93a..0000000000
--- a/meta-python/recipes-devtools/python/python3-absl_1.2.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Abseil Python Common Libraries"
-HOMEPAGE = "https://github.com/abseil/abseil-py"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI[sha256sum] = "f568809938c49abbda89826223c992b630afd23c638160ad7840cfe347710d97"
-
-PYPI_PACKAGE = "absl-py"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-absl_2.1.0.bb b/meta-python/recipes-devtools/python/python3-absl_2.1.0.bb
new file mode 100644
index 0000000000..5bdb83175d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-absl_2.1.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Abseil Python Common Libraries"
+HOMEPAGE = "https://github.com/abseil/abseil-py"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff"
+
+PYPI_PACKAGE = "absl-py"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-aenum_3.1.11.bb b/meta-python/recipes-devtools/python/python3-aenum_3.1.11.bb
deleted file mode 100644
index b2fba6f010..0000000000
--- a/meta-python/recipes-devtools/python/python3-aenum_3.1.11.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Advanced Enumerations library"
-HOMEPAGE = "https://pypi.org/project/aenum/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://aenum/LICENSE;md5=c6a85477543f8b8591b9c1f82abebbe9"
-
-SRC_URI[sha256sum] = "aed2c273547ae72a0d5ee869719c02a643da16bf507c80958faadc7e038e3f73"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-pprint \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-aenum_3.1.15.bb b/meta-python/recipes-devtools/python/python3-aenum_3.1.15.bb
new file mode 100644
index 0000000000..3769be0d5d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aenum_3.1.15.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Advanced Enumerations library"
+HOMEPAGE = "https://pypi.org/project/aenum/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://aenum/LICENSE;md5=c6a85477543f8b8591b9c1f82abebbe9"
+
+SRC_URI[sha256sum] = "8cbd76cd18c4f870ff39b24284d3ea028fbe8731a58df3aa581e434c575b9559"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-pprint \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-aiodns_3.0.0.bb b/meta-python/recipes-devtools/python/python3-aiodns_3.0.0.bb
deleted file mode 100644
index 64599d43c3..0000000000
--- a/meta-python/recipes-devtools/python/python3-aiodns_3.0.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Simple DNS resolver for asyncio"
-DESCRIPTION = "aiodns provides a simple way for doing asynchronous DNS resolutions using pycares."
-HOMEPAGE = "https://github.com/saghul/aiodns"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a565d8b5d06b9620968a135a2657b093"
-
-SRC_URI[md5sum] = "181e11935c78965de2b2b7b0e5efba8d"
-SRC_URI[sha256sum] = "946bdfabe743fceeeb093c8a010f5d1645f708a241be849e17edfb0e49e08cd6"
-
-PYPI_PACKAGE = "aiodns"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-asyncio \
- ${PYTHON_PN}-pycares \
-"
diff --git a/meta-python/recipes-devtools/python/python3-aiodns_3.1.1.bb b/meta-python/recipes-devtools/python/python3-aiodns_3.1.1.bb
new file mode 100644
index 0000000000..ec7d62ee2c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aiodns_3.1.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Simple DNS resolver for asyncio"
+DESCRIPTION = "aiodns provides a simple way for doing asynchronous DNS resolutions using pycares."
+HOMEPAGE = "https://github.com/saghul/aiodns"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a565d8b5d06b9620968a135a2657b093"
+
+SRC_URI[sha256sum] = "1073eac48185f7a4150cad7f96a5192d6911f12b4fb894de80a088508c9b3a99"
+
+PYPI_PACKAGE = "aiodns"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-pycares \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-aiofiles_22.1.0.bb b/meta-python/recipes-devtools/python/python3-aiofiles_22.1.0.bb
deleted file mode 100644
index 40ac76efd5..0000000000
--- a/meta-python/recipes-devtools/python/python3-aiofiles_22.1.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "File support for asyncio"
-DESCRIPTION = "Asynchronous local file IO library for asyncio and Python"
-HOMEPAGE = "https://github.com/aio-libs/aiohttp"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
-
-SRC_URI[sha256sum] = "9107f1ca0b2a5553987a94a3c9959fe5b491fdf731389aa5b7b1bd0733e32de6"
-
-PYPI_PACKAGE = "aiofiles"
-
-inherit pypi python_poetry_core
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-asyncio \
-"
diff --git a/meta-python/recipes-devtools/python/python3-aiofiles_23.2.1.bb b/meta-python/recipes-devtools/python/python3-aiofiles_23.2.1.bb
new file mode 100644
index 0000000000..73dc17423e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aiofiles_23.2.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "File support for asyncio"
+DESCRIPTION = "Asynchronous local file IO library for asyncio and Python"
+HOMEPAGE = "https://github.com/aio-libs/aiohttp"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
+
+SRC_URI[sha256sum] = "84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a"
+
+PYPI_PACKAGE = "aiofiles"
+
+inherit pypi python_hatchling
+
+RDEPENDS:${PN} = "\
+ python3-asyncio \
+"
diff --git a/meta-python/recipes-devtools/python/python3-aiohappyeyeballs_2.3.2.bb b/meta-python/recipes-devtools/python/python3-aiohappyeyeballs_2.3.2.bb
new file mode 100644
index 0000000000..edad28e772
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aiohappyeyeballs_2.3.2.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Happy Eyeballs"
+DESCRIPTION = "This library exists to allow connecting with Happy Eyeballs when you already have a list of addrinfo and not a DNS name."
+HOMEPAGE = "https://github.com/aio-libs/aiohappyeyeballs"
+LICENSE = "PSF-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fcf6b249c2641540219a727f35d8d2c2"
+
+SRC_URI[sha256sum] = "77e15a733090547a1f5369a1287ddfc944bd30df0eb8993f585259c34b405f4e"
+
+inherit pypi python_poetry_core
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.bb b/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.bb
deleted file mode 100644
index c86ec092a6..0000000000
--- a/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "jinja2 template renderer for aiohttp.web (http server for asyncio)"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=29dca541e03964615590ca7b50392d97"
-
-SRC_URI[sha256sum] = "7c3ba5eac060b691f4e50534af2d79fca2a75712ebd2b25e6fcb1295859f910b"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-jinja2 \
- ${PYTHON_PN}-aiohttp \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.6.bb b/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.6.bb
new file mode 100644
index 0000000000..df4a0adcaf
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.6.bb
@@ -0,0 +1,13 @@
+SUMMARY = "jinja2 template renderer for aiohttp.web (http server for asyncio)"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=29dca541e03964615590ca7b50392d97"
+
+SRC_URI[sha256sum] = "a3a7ff5264e5bca52e8ae547bbfd0761b72495230d438d05b6c0915be619b0e2"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-jinja2 \
+ python3-aiohttp \
+"
diff --git a/meta-python/recipes-devtools/python/python3-aiohttp_3.8.3.bb b/meta-python/recipes-devtools/python/python3-aiohttp_3.8.3.bb
deleted file mode 100644
index b233b3ac9a..0000000000
--- a/meta-python/recipes-devtools/python/python3-aiohttp_3.8.3.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Async http client/server framework"
-DESCRIPTION = "Asynchronous HTTP client/server framework for asyncio and Python"
-HOMEPAGE = "https://github.com/aio-libs/aiohttp"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=748073912af33aa59430d3702aa32d41"
-
-SRC_URI[sha256sum] = "3828fb41b7203176b82fe5d699e0d845435f2374750a44b480ea6b930f6be269"
-
-PYPI_PACKAGE = "aiohttp"
-inherit python_setuptools_build_meta pypi
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-async-timeout \
- ${PYTHON_PN}-attrs \
- ${PYTHON_PN}-chardet \
- ${PYTHON_PN}-html \
- ${PYTHON_PN}-idna-ssl \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-multidict \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-typing-extensions \
- ${PYTHON_PN}-yarl \
- ${PYTHON_PN}-cchardet \
- ${PYTHON_PN}-charset-normalizer \
- ${PYTHON_PN}-aiosignal \
-"
diff --git a/meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb b/meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb
new file mode 100644
index 0000000000..10a3085ef2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aiohttp_3.9.3.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Async http client/server framework"
+DESCRIPTION = "Asynchronous HTTP client/server framework for asyncio and Python"
+HOMEPAGE = "https://github.com/aio-libs/aiohttp"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=748073912af33aa59430d3702aa32d41"
+
+SRC_URI[sha256sum] = "90842933e5d1ff760fae6caca4b2b3edba53ba8f4b71e95dacf2818a2aca06f7"
+
+PYPI_PACKAGE = "aiohttp"
+inherit python_setuptools_build_meta pypi
+
+RDEPENDS:${PN} = "\
+ python3-aiohappyeyeballs \
+ python3-aiosignal \
+ python3-async-timeout \
+ python3-attrs \
+ python3-frozenlist \
+ python3-misc \
+ python3-multidict \
+ python3-yarl \
+ python3-aiodns \
+"
diff --git a/meta-python/recipes-devtools/python/python3-aiohue_4.5.0.bb b/meta-python/recipes-devtools/python/python3-aiohue_4.5.0.bb
deleted file mode 100644
index 7507b8ffd0..0000000000
--- a/meta-python/recipes-devtools/python/python3-aiohue_4.5.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Asynchronous library to control Philips Hue"
-HOMEPAGE = "https://pypi.org/project/aiohue/"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dab31a1d28183826937f4b152143a33f"
-
-SRC_URI[sha256sum] = "9a5aaf2fa97a889746142093e74143d5e3e02209fae428d1e2dbcc34a5c36efd"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-aiohttp \
- ${PYTHON_PN}-asyncio-throttle \
- ${PYTHON_PN}-profile \
- ${PYTHON_PN}-awesomeversion \
-"
diff --git a/meta-python/recipes-devtools/python/python3-aiohue_4.7.1.bb b/meta-python/recipes-devtools/python/python3-aiohue_4.7.1.bb
new file mode 100644
index 0000000000..438c771dbc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aiohue_4.7.1.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Asynchronous library to control Philips Hue"
+HOMEPAGE = "https://pypi.org/project/aiohue/"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dab31a1d28183826937f4b152143a33f"
+
+SRC_URI[sha256sum] = "29b5e5ae05938cac195b1969e70bd6ad4e4e2e105d0e565849803d2a99ff47d1"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += " \
+ python3-aiohttp \
+ python3-asyncio-throttle \
+ python3-profile \
+ python3-awesomeversion \
+"
diff --git a/meta-python/recipes-devtools/python/python3-aioredis_2.0.1.bb b/meta-python/recipes-devtools/python/python3-aioredis_2.0.1.bb
new file mode 100644
index 0000000000..d8a8f2d033
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aioredis_2.0.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "The library is intended to provide simple and clear interface to Redis based on asyncio."
+HOMEPAGE = "https://github.com/aio-libs/aioredis-py"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bf9085f32a671dfa86ee69fe0fff7b95"
+
+SRC_URI[sha256sum] = "eaa51aaf993f2d71f54b70527c440437ba65340588afeb786cd87c55c89cd98e"
+
+PYPI_PACKAGE = "aioredis"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-core (>=3.6) \
+ python3-async-timeout \
+ python3-typing-extensions \
+"
diff --git a/meta-python/recipes-devtools/python/python3-aioserial_1.3.1.bb b/meta-python/recipes-devtools/python/python3-aioserial_1.3.1.bb
new file mode 100755
index 0000000000..8279f27044
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aioserial_1.3.1.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "An asynchronous serial port library for Python"
+HOMEPAGE = "https://github.com/changyuheng/aioserial.py"
+SECTION = "devel/python"
+
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=650b9179efef1ea560df5c08bc32b494"
+
+PYPI_PACKAGE = "aioserial"
+
+SRC_URI[sha256sum] = "702bf03b0eb84b8ef2d8dac5cb925e1e685dce98f77b125569bc6fd2b3b58228"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-pyserial \
+"
diff --git a/meta-python/recipes-devtools/python/python3-aiosignal_1.2.0.bb b/meta-python/recipes-devtools/python/python3-aiosignal_1.2.0.bb
deleted file mode 100644
index efd94f7934..0000000000
--- a/meta-python/recipes-devtools/python/python3-aiosignal_1.2.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "A list of registered asynchronous callbacks"
-HOMEPAGE = "https://github.com/aio-libs/aiosignal"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=cf056e8e7a0a5477451af18b7b5aa98c"
-
-SRC_URI[sha256sum] = "78ed67db6c7b7ced4f98e495e572106d5c432a93e1ddd1bf475e1dc05f5b7df2"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-frozenlist \
-"
diff --git a/meta-python/recipes-devtools/python/python3-aiosignal_1.3.1.bb b/meta-python/recipes-devtools/python/python3-aiosignal_1.3.1.bb
new file mode 100644
index 0000000000..fd4ec767c0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aiosignal_1.3.1.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A list of registered asynchronous callbacks"
+HOMEPAGE = "https://github.com/aio-libs/aiosignal"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cf056e8e7a0a5477451af18b7b5aa98c"
+
+SRC_URI[sha256sum] = "54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} = "\
+ python3-frozenlist \
+"
diff --git a/meta-python/recipes-devtools/python/python3-alembic_1.13.1.bb b/meta-python/recipes-devtools/python/python3-alembic_1.13.1.bb
new file mode 100644
index 0000000000..c4853c4437
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-alembic_1.13.1.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "A database migration tool for SQLAlchemy"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e3023b042cb6002cb398344b51c67093"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "4932c8558bf68f2ee92b9bbcb8218671c627064d5b08939437af6d77dc05e595"
+
+PYPI_PACKAGE = "alembic"
+
+RDEPENDS:${PN} += "\
+ python3-dateutil \
+ python3-editor \
+ python3-mako \
+ python3-sqlalchemy \
+ python3-misc \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-alembic_1.8.1.bb b/meta-python/recipes-devtools/python/python3-alembic_1.8.1.bb
deleted file mode 100644
index 3e31158835..0000000000
--- a/meta-python/recipes-devtools/python/python3-alembic_1.8.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "A database migration tool for SQLAlchemy"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f5a8522010db1a393833988dbe2c7f0b"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "cd0b5e45b14b706426b833f06369b9a6d5ee03f826ec3238723ce8caaf6e5ffa"
-
-PYPI_PACKAGE = "alembic"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-dateutil \
- ${PYTHON_PN}-editor \
- ${PYTHON_PN}-mako \
- ${PYTHON_PN}-sqlalchemy \
- ${PYTHON_PN}-misc \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-aniso8601_9.0.1.bb b/meta-python/recipes-devtools/python/python3-aniso8601_9.0.1.bb
new file mode 100644
index 0000000000..3d99e48c26
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aniso8601_9.0.1.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "A library for parsing ISO 8601 strings."
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6d91d56f51a54389d95526eefe039b1c"
+
+SRC_URI[sha256sum] = "72e3117667eedf66951bb2d93f4296a56b94b078a8a95905a052611fb3f1b973"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-annotated-types_0.6.0.bb b/meta-python/recipes-devtools/python/python3-annotated-types_0.6.0.bb
new file mode 100644
index 0000000000..79cbb66bc0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-annotated-types_0.6.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Reusable constraint types to use with typing.Annotated"
+DESCRIPTION = ""
+HOMEPAGE = ""
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c6afb13fdc220497ee5cded1e717ed67"
+
+SRC_URI[sha256sum] = "563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"
+
+S = "${WORKDIR}/annotated_types-${PV}"
+PYPI_PACKAGE = "annotated_types"
+
+inherit pypi python_hatchling
+
+RDEPENDS:${PN} = "python3-typing-extensions"
diff --git a/meta-python/recipes-devtools/python/python3-ansi2html_1.8.0.bb b/meta-python/recipes-devtools/python/python3-ansi2html_1.8.0.bb
deleted file mode 100644
index 8dcd7b0d5d..0000000000
--- a/meta-python/recipes-devtools/python/python3-ansi2html_1.8.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRPTION = "ansi2html - Convert text with ANSI color codes to HTML or to LaTeX"
-HOMEPAGE = "https://github.com/ralphbean/ansi2html"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3000208d539ec061b899bce1d9ce9404"
-LICENSE = "GPL-3.0-only"
-
-PYPI_PACKAGE = "ansi2html"
-
-SRC_URI[sha256sum] = "38b82a298482a1fa2613f0f9c9beb3db72a8f832eeac58eb2e47bf32cd37f6d5"
-
-inherit pypi python_setuptools_build_meta
-
-DEPENDS += " \
- ${PYTHON_PN}-setuptools-scm-native \
- ${PYTHON_PN}-setuptools-scm-git-archive-native \
-"
-
-RDEPENDS:${PN} = " \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-compression \
-"
diff --git a/meta-python/recipes-devtools/python/python3-ansi2html_1.9.1.bb b/meta-python/recipes-devtools/python/python3-ansi2html_1.9.1.bb
new file mode 100644
index 0000000000..6af8989177
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ansi2html_1.9.1.bb
@@ -0,0 +1,19 @@
+DESCRPTION = "ansi2html - Convert text with ANSI color codes to HTML or to LaTeX"
+HOMEPAGE = "https://github.com/ralphbean/ansi2html"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3000208d539ec061b899bce1d9ce9404"
+LICENSE = "GPL-3.0-only"
+
+PYPI_PACKAGE = "ansi2html"
+
+SRC_URI[sha256sum] = "5c6837a13ecc1903aab7a545353312049dfedfe5105362ad3a8d9d207871ec71"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += " \
+ python3-setuptools-scm-native \
+"
+
+RDEPENDS:${PN} = " \
+ python3-six \
+ python3-compression \
+"
diff --git a/meta-python/recipes-devtools/python/python3-ansicolors/run-ptest b/meta-python/recipes-devtools/python/python3-ansicolors/run-ptest
index 7dc3ef32be..922353a1f3 100644
--- a/meta-python/recipes-devtools/python/python3-ansicolors/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-ansicolors/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO test.py| sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake test.py
diff --git a/meta-python/recipes-devtools/python/python3-ansicolors_1.1.8.bb b/meta-python/recipes-devtools/python/python3-ansicolors_1.1.8.bb
index 0e32443992..b63cc32a23 100644
--- a/meta-python/recipes-devtools/python/python3-ansicolors_1.1.8.bb
+++ b/meta-python/recipes-devtools/python/python3-ansicolors_1.1.8.bb
@@ -14,7 +14,8 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.11.1.bb b/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.11.1.bb
deleted file mode 100644
index 535dc022da..0000000000
--- a/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.11.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "ANTLR runtime for Python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=9a0a1d20e667cf7ab7c59357cf8b4812"
-
-SRC_URI[sha256sum] = "a53de701312f9bdacc5258a6872cd6c62b90d3a90ae25e494026f76267333b60"
-
-PYPI_PACKAGE = "antlr4-python3-runtime"
-
-inherit pypi python_setuptools_build_meta
-
-BBCLASSEXTEND = "nativesdk native"
diff --git a/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.1.bb b/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.1.bb
new file mode 100644
index 0000000000..431d37c7d7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "ANTLR runtime for Python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=4b18e4a9f93178eaa50a9a37f26da7f7"
+
+SRC_URI[sha256sum] = "3cd282f5ea7cfb841537fe01f143350fdb1c0b1ce7981443a2fa8513fddb6d1a"
+
+PYPI_PACKAGE = "antlr4-python3-runtime"
+
+inherit pypi python_setuptools_build_meta
+
+BBCLASSEXTEND = "nativesdk native"
diff --git a/meta-python/recipes-devtools/python/python3-anyio_4.3.0.bb b/meta-python/recipes-devtools/python/python3-anyio_4.3.0.bb
new file mode 100644
index 0000000000..2c7a9f8cab
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-anyio_4.3.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "High level compatibility layer for multiple asynchronous event loop implementations"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c0a769411d2af7894099e8ff75058c9f"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"
+
+DEPENDS += " \
+ python3-setuptools-scm-native \
+"
+
+# Don't provide "trio" PACKAGECONFIG as nothing provides "python3-trio" currently.
+# If somebody needs this please feel free to add python3-trio and enable the
+# packageconfig below:
+#PACKAGECONFIG ??= ""
+#PACKAGECONFIG[trio] = ",,,python3-trio"
+
+RDEPENDS:${PN} += "\
+ python3-idna \
+ python3-sniffio \
+ python3-core \
+ python3-numbers \
+ python3-io \
+ python3-asyncio \
+"
diff --git a/meta-python/recipes-devtools/python/python3-anyjson/0001-setup.py-Do-not-use-2to3.patch b/meta-python/recipes-devtools/python/python3-anyjson/0001-setup.py-Do-not-use-2to3.patch
deleted file mode 100644
index 2b9e6e52e8..0000000000
--- a/meta-python/recipes-devtools/python/python3-anyjson/0001-setup.py-Do-not-use-2to3.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 4fb61d7c621599b0db9c2c45f4243f07936c5953 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 13 Oct 2021 08:20:00 -0700
-Subject: [PATCH] setup.py: Do not use 2to3
-
-This helps compiling with setuptools 0.58+
-and it seems to compile fine with python3
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- setup.py | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 9fe4902..f2098e1 100644
---- a/setup.py
-+++ b/setup.py
-@@ -2,8 +2,6 @@ import os
- import sys
-
- extra = {}
--if sys.version_info >= (3, 0):
-- extra.update(use_2to3=True)
-
- try:
- from setuptools import setup, find_packages
---
-2.33.0
-
diff --git a/meta-python/recipes-devtools/python/python3-anyjson/run-ptest b/meta-python/recipes-devtools/python/python3-anyjson/run-ptest
deleted file mode 100644
index b63c4de0d9..0000000000
--- a/meta-python/recipes-devtools/python/python3-anyjson/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta-python/recipes-devtools/python/python3-apiflask_2.1.1.bb b/meta-python/recipes-devtools/python/python3-apiflask_2.1.1.bb
new file mode 100644
index 0000000000..94f2e37a89
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-apiflask_2.1.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "APIFlask is a lightweight Python web API framework based on Flask and marshmallow-code projects."
+HOMEPAGE = "https://github.com/apiflask/apiflask"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5f89d1b0dec37448d4f4163dc3c40e64"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "APIFlask"
+
+SRC_URI[sha256sum] = "88db5a539cc155e35d9636d99b434d00ca6c0b23e7c87c8321ec9dc980535366"
+
+RDEPENDS:${PN} += "\
+ python3-flask \
+ python3-flask-marshmallow \
+ python3-webargs \
+ python3-flask-httpauth \
+ python3-apispec \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-apispec_6.4.0.bb b/meta-python/recipes-devtools/python/python3-apispec_6.4.0.bb
new file mode 100644
index 0000000000..a48e1cfaee
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-apispec_6.4.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification)."
+HOMEPAGE = "https://github.com/marshmallow-code/apispec"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3d9c303644a2e62578f0347748a80358"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "42b8a6833cf154c9dbd22d006b56bf9c49c972d32d24fe716fd734e0f6b739b8"
+
+RDEPENDS:${PN} += "python3-packaging"
diff --git a/meta-python/recipes-devtools/python/python3-appdirs/run-ptest b/meta-python/recipes-devtools/python/python3-appdirs/run-ptest
index 5287f3e035..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-appdirs/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-appdirs/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest | sed -e 's/\[100%\]//g' | sed -e 's/\.\.F/: FAIL/g' | sed -e 's/\.\.\./: PASS/g'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-appdirs_1.4.4.bb b/meta-python/recipes-devtools/python/python3-appdirs_1.4.4.bb
index 977999bfe5..ad07b3b082 100644
--- a/meta-python/recipes-devtools/python/python3-appdirs_1.4.4.bb
+++ b/meta-python/recipes-devtools/python/python3-appdirs_1.4.4.bb
@@ -12,10 +12,13 @@ SRC_URI[sha256sum] = "7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27
inherit pypi setuptools3 ptest
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
install -d ${D}${PTEST_PATH}/test
cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-argcomplete_2.0.0.bb b/meta-python/recipes-devtools/python/python3-argcomplete_2.0.0.bb
deleted file mode 100644
index 4eab34f488..0000000000
--- a/meta-python/recipes-devtools/python/python3-argcomplete_2.0.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Argcomplete provides easy, extensible command line tab completion of arguments for your Python script."
-HOMEPAGE = "https://github.com/kislyuk/argcomplete"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2ee41112a44fe7014dce33e26468ba93"
-
-SRC_URI[sha256sum] = "6372ad78c89d662035101418ae253668445b391755cfe94ea52f1b9d22425b20"
-
-PYPI_PACKAGE = "argcomplete"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-io \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/meta-python/recipes-devtools/python/python3-argcomplete_3.2.3.bb b/meta-python/recipes-devtools/python/python3-argcomplete_3.2.3.bb
new file mode 100644
index 0000000000..8d8c8a4e2e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-argcomplete_3.2.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Argcomplete provides easy, extensible command line tab completion of arguments for your Python script."
+HOMEPAGE = "https://github.com/kislyuk/argcomplete"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2ee41112a44fe7014dce33e26468ba93"
+
+SRC_URI[sha256sum] = "bf7900329262e481be5a15f56f19736b376df6f82ed27576fa893652c5de6c23"
+
+PYPI_PACKAGE = "argcomplete"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-io \
+"
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-python/recipes-devtools/python/python3-argh_0.26.2.bb b/meta-python/recipes-devtools/python/python3-argh_0.26.2.bb
deleted file mode 100644
index c02e31a9a1..0000000000
--- a/meta-python/recipes-devtools/python/python3-argh_0.26.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Pattern matching and various utilities for file systems paths."
-
-LICENSE = "LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=cede70b648dcc81baf5b431d38905bad"
-
-SRC_URI[sha256sum] = "e9535b8c84dc9571a48999094fda7f33e63c3f1b74f3e5f3ac0105a58405bb65"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-logging \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-argh_0.31.2.bb b/meta-python/recipes-devtools/python/python3-argh_0.31.2.bb
new file mode 100644
index 0000000000..afcd7d9665
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-argh_0.31.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "An unobtrusive argparse wrapper with natural syntax"
+DESCRIPTION = "Building a command-line interface? Found yourself uttering \
+'argh!' while struggling with the API of argparse? Don't like the complexity \
+but need the power? \
+\
+Everything should be made as simple as possible, but no simpler. \
+\
+—Albert Einstein (probably) \
+\
+Argh is a smart wrapper for argparse. Argparse is a very powerful \
+tool; Argh just makes it easy to use."
+
+LICENSE = "LGPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \
+ "
+
+SRC_URI[sha256sum] = "db1c34885804f7d4646c385dc2fb19b45298561322f4c15eae1b133993f9e323"
+
+inherit pypi python_flit_core
+
+RDEPENDS:${PN} += " \
+ python3-argcomplete \
+ python3-logging \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-arpeggio_2.0.0.bb b/meta-python/recipes-devtools/python/python3-arpeggio_2.0.0.bb
deleted file mode 100644
index 96d6de6a69..0000000000
--- a/meta-python/recipes-devtools/python/python3-arpeggio_2.0.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Arpeggio is a recursive descent parser with memoization based on PEG grammars (aka Packrat parser)"
-HOMEPAGE = "https://pypi.org/project/Arpeggio/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=33b8d1ba459a2fa4d801acfd1d1b7ceb"
-
-SRC_URI[sha256sum] = "d6b03839019bb8a68785f9292ee6a36b1954eb84b925b84a6b8a5e1e26d3ed3d"
-
-PYPI_PACKAGE = "Arpeggio"
-inherit pypi setuptools3
-
-# setup.py of Arpeggio needs this.
-DEPENDS += "\
- ${PYTHON_PN}-pytest-runner-native \
- ${PYTHON_PN}-wheel-native \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-arpeggio_2.0.2.bb b/meta-python/recipes-devtools/python/python3-arpeggio_2.0.2.bb
new file mode 100644
index 0000000000..3130e2cb96
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-arpeggio_2.0.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Arpeggio is a recursive descent parser with memoization based on PEG grammars (aka Packrat parser)"
+HOMEPAGE = "https://pypi.org/project/Arpeggio/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=33b8d1ba459a2fa4d801acfd1d1b7ceb"
+
+SRC_URI[sha256sum] = "c790b2b06e226d2dd468e4fbfb5b7f506cec66416031fde1441cf1de2a0ba700"
+
+PYPI_PACKAGE = "Arpeggio"
+inherit pypi setuptools3
+
+# setup.py of Arpeggio needs this.
+DEPENDS += "\
+ python3-pytest-runner-native \
+ python3-wheel-native \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-arrow/run-ptest b/meta-python/recipes-devtools/python/python3-arrow/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-arrow/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-arrow_1.3.0.bb b/meta-python/recipes-devtools/python/python3-arrow_1.3.0.bb
new file mode 100644
index 0000000000..c1b7c1a433
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-arrow_1.3.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Better dates and times for Python"
+HOMEPAGE = "https://github.com/arrow-py/arrow"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=14a2e29a9d542fb9052d75344d67619d"
+
+SRC_URI[sha256sum] = "d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85"
+
+inherit pypi python_flit_core ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-dateutil-zoneinfo \
+ python3-pytest \
+ python3-pytest-mock \
+ python3-pytz \
+ python3-simplejson \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-dateutil \
+ python3-dateutil-zoneinfo \
+ python3-json \
+ python3-types-python-dateutil \
+"
diff --git a/meta-python/recipes-devtools/python/python3-asgiref/run-ptest b/meta-python/recipes-devtools/python/python3-asgiref/run-ptest
index 3385d68939..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-asgiref/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-asgiref/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-asgiref_3.5.2.bb b/meta-python/recipes-devtools/python/python3-asgiref_3.5.2.bb
deleted file mode 100644
index 8604791992..0000000000
--- a/meta-python/recipes-devtools/python/python3-asgiref_3.5.2.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-DESCRIPTION = "ASGI is a standard for Python asynchronous web apps and servers to communicate with each other, and positioned as an asynchronous successor to WSGI."
-HOMEPAGE = "https://pypi.org/project/asgiref/"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f09eb47206614a4954c51db8a94840fa"
-
-SRC_URI += "file://run-ptest \
- "
-
-SRC_URI[sha256sum] = "4a29362a6acebe09bf1d6640db38c1dc3d9217c68e6f9f6204d72667fc19a424"
-
-export BUILD_SYS
-export HOST_SYS
-
-inherit pypi ptest setuptools3
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-asyncio \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-multiprocessing \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-asgiref_3.8.1.bb b/meta-python/recipes-devtools/python/python3-asgiref_3.8.1.bb
new file mode 100644
index 0000000000..3b90eda5bb
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-asgiref_3.8.1.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "ASGI is a standard for Python asynchronous web apps and servers to communicate with each other, and positioned as an asynchronous successor to WSGI."
+HOMEPAGE = "https://pypi.org/project/asgiref/"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f09eb47206614a4954c51db8a94840fa"
+
+SRC_URI += "file://run-ptest \
+ "
+
+SRC_URI[sha256sum] = "c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590"
+
+export BUILD_SYS
+export HOST_SYS
+
+inherit pypi ptest setuptools3
+
+RDEPENDS:${PN}-ptest += " \
+ python3-asyncio \
+ python3-io \
+ python3-multiprocessing \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-aspectlib/0001-Remove-tornado-6-test-constraint.-Ref-15.patch b/meta-python/recipes-devtools/python/python3-aspectlib/0001-Remove-tornado-6-test-constraint.-Ref-15.patch
deleted file mode 100644
index 174f088e9e..0000000000
--- a/meta-python/recipes-devtools/python/python3-aspectlib/0001-Remove-tornado-6-test-constraint.-Ref-15.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From d3ae6ac951cc5bbce29b9c987741e0a557c9b777 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ionel=20Cristian=20M=C4=83rie=C8=99?= <contact@ionelmc.ro>
-Date: Sun, 2 May 2021 09:50:43 +0300
-Subject: [PATCH] Remove tornado<6 test constraint. Ref #15.
-
-Upstream-Status: Backport [https://github.com/ionelmc/python-aspectlib/commit/7dccb198dfb426f529b81a28a755f3c02f8b50cb]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/test_integrations_py3.py | 5 ++++-
- tox.ini | 3 ++-
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/tests/test_integrations_py3.py b/tests/test_integrations_py3.py
-index e025eac..596589d 100644
---- a/tests/test_integrations_py3.py
-+++ b/tests/test_integrations_py3.py
-@@ -36,7 +36,10 @@ def test_decorate_tornado_coroutine():
- @gen.coroutine
- @debug.log(print_to=buf, module=False, stacktrace=2, result_repr=repr)
- def coro():
-- yield gen.Task(loop.add_timeout, timedelta(microseconds=10))
-+ if hasattr(gen, 'Task'):
-+ yield gen.Task(loop.add_timeout, timedelta(microseconds=10))
-+ else:
-+ yield gen.sleep(0.01)
- return "result"
-
- loop = ioloop.IOLoop.current()
-diff --git a/tox.ini b/tox.ini
-index 8c607de..08c31b3 100644
---- a/tox.ini
-+++ b/tox.ini
-@@ -55,7 +55,8 @@ deps =
- pytest-clarity
- pytest-cov
- pytest-travis-fold
-- tornado<6.0
-+ six
-+ tornado
- commands =
- {posargs:pytest --cov --cov-report=term-missing -vv --ignore=src}
-
---
-2.32.0
-
diff --git a/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest b/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-aspectlib_1.5.2.bb b/meta-python/recipes-devtools/python/python3-aspectlib_1.5.2.bb
deleted file mode 100644
index 71f3d3594e..0000000000
--- a/meta-python/recipes-devtools/python/python3-aspectlib_1.5.2.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "An aspect-oriented programming, monkey-patch and decorators library."
-DESCRIPTION = " It is useful when changing behavior in existing code is desired. \
-It includes tools for debugging and testing: simple mock/record and a complete capture/replay framework."
-HOMEPAGE = "https://github.com/ionelmc/python-aspectlib"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d58b3f20fd10347a9458b8a03793b62e"
-
-SRC_URI[sha256sum] = "d275ec82c4c2712e564bb760e4accff8f061f648e38774feabeb8b241cf3a4aa"
-
-inherit ptest pypi setuptools3
-
-SRC_URI += "file://run-ptest \
- file://0001-Remove-tornado-6-test-constraint.-Ref-15.patch \
- "
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN}-ptest += "\
- python3-tornado \
- python3-process-tests \
-"
-
-RDEPENDS:${PN} += "python3-core python3-fields"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-aspectlib_2.0.0.bb b/meta-python/recipes-devtools/python/python3-aspectlib_2.0.0.bb
new file mode 100644
index 0000000000..1341513289
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aspectlib_2.0.0.bb
@@ -0,0 +1,35 @@
+# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "An aspect-oriented programming, monkey-patch and decorators library."
+DESCRIPTION = " It is useful when changing behavior in existing code is desired. \
+It includes tools for debugging and testing: simple mock/record and a complete capture/replay framework."
+HOMEPAGE = "https://github.com/ionelmc/python-aspectlib"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=80721ace117fd1f814049ecb81c6be76"
+
+SRC_URI[sha256sum] = "a4b461b9da0b531aebcb93efcde3de808a72c60226dd8d902c467d13faf7ce92"
+
+inherit ptest pypi setuptools3
+
+SRC_URI += "file://run-ptest \
+ "
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN}-ptest += "\
+ python3-process-tests \
+ python3-pytest \
+ python3-tornado \
+ python3-unittest-automake-output \
+"
+
+RDEPENDS:${PN} += " \
+ python3-fields \
+ python3-logging \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb b/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
index 54e43e3754..bc3315f751 100644
--- a/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
+++ b/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
@@ -10,7 +10,6 @@ SRC_URI = "git://github.com/berkerpeksag/astor.git;branch=master;protocol=https
SRCREV ?= "c7553c79f9222e20783fe9bd8a553f932e918072"
inherit setuptools3
-PIP_INSTALL_PACKAGE = "astor"
S = "${WORKDIR}/git"
diff --git a/meta-python/recipes-devtools/python/python3-astroid_2.12.10.bb b/meta-python/recipes-devtools/python/python3-astroid_2.12.10.bb
deleted file mode 100644
index c1d746b89c..0000000000
--- a/meta-python/recipes-devtools/python/python3-astroid_2.12.10.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "An abstract syntax tree for Python with inference support."
-HOMEPAGE = "https://pypi.python.org/pypi/astroid"
-SECTION = "devel/python"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
-
-SRC_URI[sha256sum] = "81f870105d892e73bf535da77a8261aa5bde838fa4ed12bb2f435291a098c581"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-pytest-runner-native"
-
-PACKAGES =+ "${PN}-tests"
-
-FILES:${PN}-tests += " \
- ${PYTHON_SITEPACKAGES_DIR}/astroid/test* \
- ${PYTHON_SITEPACKAGES_DIR}/astroid/__pycache__/test* \
-"
-
-RDEPENDS:${PN}:class-target += "\
- ${PYTHON_PN}-distutils \
- ${PYTHON_PN}-lazy-object-proxy \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-wrapt \
- ${PYTHON_PN}-setuptools \
-"
-
-RDEPENDS:${PN}-tests:class-target += "\
- ${PYTHON_PN}-unittest \
- ${PYTHON_PN}-xml \
-"
diff --git a/meta-python/recipes-devtools/python/python3-astroid_3.1.0.bb b/meta-python/recipes-devtools/python/python3-astroid_3.1.0.bb
new file mode 100644
index 0000000000..3c68f1e583
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-astroid_3.1.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "An abstract syntax tree for Python with inference support."
+HOMEPAGE = "https://pypi.python.org/pypi/astroid"
+SECTION = "devel/python"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a70cf540abf41acb644ac3b621b2fad1"
+
+SRC_URI[sha256sum] = "ac248253bfa4bd924a0de213707e7ebeeb3138abeb48d798784ead1e56d419d4"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "\
+ python3-pytest-runner-native \
+ python3-wheel-native \
+"
+
+PACKAGES =+ "${PN}-tests"
+
+FILES:${PN}-tests += " \
+ ${PYTHON_SITEPACKAGES_DIR}/astroid/test* \
+ ${PYTHON_SITEPACKAGES_DIR}/astroid/__pycache__/test* \
+"
+
+RDEPENDS:${PN}:class-target += "\
+ python3-lazy-object-proxy \
+ python3-logging \
+ python3-six \
+ python3-wrapt \
+ python3-setuptools \
+ python3-typing-extensions \
+"
+
+RDEPENDS:${PN}-tests:class-target += "\
+ python3-unittest \
+ python3-xml \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-asttokens_2.0.8.bb b/meta-python/recipes-devtools/python/python3-asttokens_2.0.8.bb
deleted file mode 100644
index 973c57661b..0000000000
--- a/meta-python/recipes-devtools/python/python3-asttokens_2.0.8.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "The asttokens module annotates Python abstract syntax trees (ASTs)"
-HOMEPAGE = "https://github.com/gristlabs/asttokens"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
-
-PYPI_PACKAGE = "asttokens"
-
-inherit pypi python_setuptools_build_meta
-
-SRC_URI[sha256sum] = "c61e16246ecfb2cde2958406b4c8ebc043c9e6d73aaa83c941673b35e5d3a76b"
-
-DEPENDS += "python3-setuptools-scm-native"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-six \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-asttokens_2.4.1.bb b/meta-python/recipes-devtools/python/python3-asttokens_2.4.1.bb
new file mode 100644
index 0000000000..dbb2fc0ebe
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-asttokens_2.4.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "The asttokens module annotates Python abstract syntax trees (ASTs)"
+HOMEPAGE = "https://github.com/gristlabs/asttokens"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+PYPI_PACKAGE = "asttokens"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+ python3-six \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-async-timeout_4.0.0.bb b/meta-python/recipes-devtools/python/python3-async-timeout_4.0.0.bb
deleted file mode 100644
index ca61490fac..0000000000
--- a/meta-python/recipes-devtools/python/python3-async-timeout_4.0.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "asyncio-compatible timeout context manager"
-DESCRIPTION = "\
-The context manager is useful in cases when you want to apply \
-timeout logic around block of code or in cases when asyncio.wait_for() \
-is not suitable. Also it's much faster than asyncio.wait_for() because \
-timeout doesn't create a new task."
-HOMEPAGE = "https://github.com/aio-libs/async-timeout"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4fa41f15bb5f23b6d3560c5845eb8d57"
-
-SRC_URI[sha256sum] = "7d87a4e8adba8ededb52e579ce6bc8276985888913620c935094c2276fd83382"
-
-PYPI_PACKAGE = "async-timeout"
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-asyncio \
-"
diff --git a/meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.bb b/meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.bb
deleted file mode 100644
index b1d19ce619..0000000000
--- a/meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "asyncio-compatible timeout context manager"
-DESCRIPTION = "\
-The context manager is useful in cases when you want to apply \
-timeout logic around block of code or in cases when asyncio.wait_for() \
-is not suitable. Also it's much faster than asyncio.wait_for() because \
-timeout doesn't create a new task."
-HOMEPAGE = "https://github.com/aio-libs/async-timeout"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4fa41f15bb5f23b6d3560c5845eb8d57"
-
-SRC_URI[sha256sum] = "2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"
-
-PYPI_PACKAGE = "async-timeout"
-inherit pypi python_setuptools_build_meta
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-asyncio \
-"
diff --git a/meta-python/recipes-devtools/python/python3-async-timeout_4.0.3.bb b/meta-python/recipes-devtools/python/python3-async-timeout_4.0.3.bb
new file mode 100644
index 0000000000..3d35780b65
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-async-timeout_4.0.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "asyncio-compatible timeout context manager"
+DESCRIPTION = "\
+The context manager is useful in cases when you want to apply \
+timeout logic around block of code or in cases when asyncio.wait_for() \
+is not suitable. Also it's much faster than asyncio.wait_for() because \
+timeout doesn't create a new task."
+HOMEPAGE = "https://github.com/aio-libs/async-timeout"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4fa41f15bb5f23b6d3560c5845eb8d57"
+
+SRC_URI[sha256sum] = "4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"
+
+PYPI_PACKAGE = "async-timeout"
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} = "\
+ python3-asyncio \
+"
diff --git a/meta-python/recipes-devtools/python/python3-asyncinotify_2.0.5.bb b/meta-python/recipes-devtools/python/python3-asyncinotify_2.0.5.bb
deleted file mode 100644
index 4c64508752..0000000000
--- a/meta-python/recipes-devtools/python/python3-asyncinotify_2.0.5.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A simple optionally-async python inotify library, focused on simplicity of use and operation, and leveraging modern Python features"
-HOMEPAGE = "https://gitlab.com/Taywee/asyncinotify"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec941a1cd6616454970d03cb9c9e8f8"
-
-SRC_URI[sha256sum] = "e4d95cba362f10d33b6fdd558afd39f0ea7a5be1a9694434e738141cbed366d9"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- python3-asyncio \
- python3-core \
- python3-ctypes \
- python3-io \
-"
diff --git a/meta-python/recipes-devtools/python/python3-asyncinotify_4.0.6.bb b/meta-python/recipes-devtools/python/python3-asyncinotify_4.0.6.bb
new file mode 100644
index 0000000000..34f7187d46
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-asyncinotify_4.0.6.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A simple optionally-async python inotify library, focused on simplicity of use and operation, and leveraging modern Python features"
+HOMEPAGE = "https://gitlab.com/Taywee/asyncinotify"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f75d2927d3c1ed2414ef72048f5ad640"
+
+SRC_URI[sha256sum] = "c03fdb1a7dbb6bed8ede763e4e0ac224a2a3157bdc51e4ba3832588a3c29904d"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-core \
+ python3-ctypes \
+ python3-io \
+"
diff --git a/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb b/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb
index 2314f72845..01dfe51543 100644
--- a/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb
+++ b/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb
@@ -1,9 +1,10 @@
SUMMARY = "An implementation of the Python 3 asyncio event loop on top of GLib"
-AUTHOR = "James Henstridge"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
-inherit setuptools3 pypi
+inherit setuptools3 pypi features_check
+
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
SRC_URI[md5sum] = "60153055e76ceaacdfbaeafb03d61dd9"
SRC_URI[sha256sum] = "fe3ceb2ba5f541330c07ca1bd7ae792468d625bad1acf5354a3a7a0b9fd87521"
diff --git a/meta-python/recipes-devtools/python/python3-asyncio-throttle_1.0.2.bb b/meta-python/recipes-devtools/python/python3-asyncio-throttle_1.0.2.bb
index 1f907511a6..040e70940b 100644
--- a/meta-python/recipes-devtools/python/python3-asyncio-throttle_1.0.2.bb
+++ b/meta-python/recipes-devtools/python/python3-asyncio-throttle_1.0.2.bb
@@ -7,3 +7,5 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c7906e56b70808e1ade6ca05e0bb48d5"
SRC_URI[sha256sum] = "2675282e99d9129ecc446f917e174bc205c65e36c602aa18603b4948567fcbd4"
inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-asyncio"
diff --git a/meta-python/recipes-devtools/python/python3-autobahn_22.7.1.bb b/meta-python/recipes-devtools/python/python3-autobahn_22.7.1.bb
deleted file mode 100644
index 09957ad003..0000000000
--- a/meta-python/recipes-devtools/python/python3-autobahn_22.7.1.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "WebSocket client & server library, WAMP real-time framework"
-HOMEPAGE = "http://crossbar.io/autobahn"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=97c0bda20ad1d845c6369c0e47a1cd98"
-
-SRC_URI[sha256sum] = "8b462ea2e6aad6b4dc0ed45fb800b6cbfeb0325e7fe6983907f122f2be4a1fe9"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-twisted \
- ${PYTHON_PN}-zopeinterface \
- ${PYTHON_PN}-py-ubjson \
- ${PYTHON_PN}-cbor2 \
- ${PYTHON_PN}-u-msgpack-python \
- ${PYTHON_PN}-lz4 \
- ${PYTHON_PN}-snappy \
- ${PYTHON_PN}-pyopenssl \
- ${PYTHON_PN}-txaio \
- ${PYTHON_PN}-six \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-autobahn_23.6.2.bb b/meta-python/recipes-devtools/python/python3-autobahn_23.6.2.bb
new file mode 100644
index 0000000000..d9cc40b1b4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-autobahn_23.6.2.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "WebSocket client & server library, WAMP real-time framework"
+HOMEPAGE = "http://crossbar.io/autobahn"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3e2c2c2cc2915edc5321b0e6b1d3f5f8"
+
+SRC_URI[sha256sum] = "ec9421c52a2103364d1ef0468036e6019ee84f71721e86b36fe19ad6966c1181"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-twisted \
+ python3-zopeinterface \
+ python3-py-ubjson \
+ python3-cbor2 \
+ python3-u-msgpack-python \
+ python3-lz4 \
+ python3-snappy \
+ python3-pyopenssl \
+ python3-txaio \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-autoflake_2.2.1.bb b/meta-python/recipes-devtools/python/python3-autoflake_2.2.1.bb
new file mode 100644
index 0000000000..7b74308666
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-autoflake_2.2.1.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Removes unused imports and unused variables"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=88246be6a34c1496c253f58599f3db85"
+
+SRC_URI[sha256sum] = "62b7b6449a692c3c9b0c916919bbc21648da7281e8506bcf8d3f8280e431ebc1"
+
+inherit pypi python_hatchling
+
+RDEPENDS:${PN} += "python3-pyflakes"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-automat/0001-setup.py-remove-the-dependency-on-m2r.patch b/meta-python/recipes-devtools/python/python3-automat/0001-setup.py-remove-the-dependency-on-m2r.patch
deleted file mode 100644
index b83b7f3808..0000000000
--- a/meta-python/recipes-devtools/python/python3-automat/0001-setup.py-remove-the-dependency-on-m2r.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 4fb6bbfbc53428fe5d38ec3e04bb4fd187b2fd45 Mon Sep 17 00:00:00 2001
-From: Derek Straka <derek@asterius.io>
-Date: Fri, 22 Dec 2017 09:07:00 -0500
-Subject: [PATCH] setup.py: remove the dependency on m2r
-
-The dependency on m2r is removed here as it only provides the
-long_description value that is optional. This item is just the
-text that would be present on PyPi, so it doesn't provide much
-value in this case
-
-Upstream-Status: Inappropriate (OE specific)
-
-Signed-off-by: Derek Straka <derek@asterius.io>
-Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
----
- setup.py | 10 ----------
- 1 file changed, 10 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 3fb7fdb..245d69a 100644
---- a/setup.py
-+++ b/setup.py
-@@ -4,14 +4,6 @@ Setup file for automat
-
- from setuptools import setup, find_packages
-
--try:
-- from m2r import parse_from_file
-- long_description = parse_from_file('README.md')
--except(IOError, ImportError):
-- print("\n\n!!! m2r not found, long_description is bad, don't upload this to PyPI !!!\n\n")
-- import io
-- long_description = io.open('README.md', encoding="utf-8").read()
--
- setup(
- name='Automat',
- use_scm_version=True,
-@@ -19,12 +11,10 @@ setup(
- description="""
- Self-service finite-state machines for the programmer on the go.
- """.strip(),
-- long_description=long_description,
- packages=find_packages(exclude=[]),
- package_dir={'automat': 'automat'},
- setup_requires=[
- 'setuptools-scm',
-- 'm2r',
- ],
- install_requires=[
- "attrs>=19.2.0",
---
-2.17.1
-
diff --git a/meta-python/recipes-devtools/python/python3-automat_20.2.0.bb b/meta-python/recipes-devtools/python/python3-automat_20.2.0.bb
deleted file mode 100644
index dbba97e76d..0000000000
--- a/meta-python/recipes-devtools/python/python3-automat_20.2.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "Self-service finite-state machines for the programmer on the go"
-HOMEPAGE = "https://github.com/glyph/Automat"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4ad213bcca81688e94593e5f60c87477"
-
-SRC_URI[md5sum] = "d6cef9886b037b8857bfbc686f3ae30a"
-SRC_URI[sha256sum] = "7979803c74610e11ef0c0d68a2942b152df52da55336e0c9d58daf1831cbdf33"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-SRC_URI:append = " \
- file://0001-setup.py-remove-the-dependency-on-m2r.patch \
-"
-
-PYPI_PACKAGE = "Automat"
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-attrs \
- ${PYTHON_PN}-six \
-"
diff --git a/meta-python/recipes-devtools/python/python3-automat_22.10.0.bb b/meta-python/recipes-devtools/python/python3-automat_22.10.0.bb
new file mode 100644
index 0000000000..9e33fe7831
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-automat_22.10.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Self-service finite-state machines for the programmer on the go"
+HOMEPAGE = "https://github.com/glyph/Automat"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4ad213bcca81688e94593e5f60c87477"
+
+SRC_URI[sha256sum] = "e56beb84edad19dcc11d30e8d9b895f75deeb5ef5e96b84a467066b3b84bb04e"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+PYPI_PACKAGE = "Automat"
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-attrs \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-awesomeversion_22.9.0.bb b/meta-python/recipes-devtools/python/python3-awesomeversion_22.9.0.bb
deleted file mode 100644
index 20ed1890db..0000000000
--- a/meta-python/recipes-devtools/python/python3-awesomeversion_22.9.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "One version package to rule them all, One version package to find them, One version package to bring them all, and in the darkness bind them."
-HOMEPAGE = "https://pypi.org/project/awesomeversion/"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE.md;md5=92622b5a8e216099be741d78328bae5d"
-
-SRC_URI[sha256sum] = "2f4190d333e81e10b2a4e156150ddb3596f5f11da67e9d51ba39057aa7a17f7e"
-
-RDEPENDS:${PN} += "python3-profile python3-logging"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-awesomeversion_24.2.0.bb b/meta-python/recipes-devtools/python/python3-awesomeversion_24.2.0.bb
new file mode 100644
index 0000000000..8b19605b1e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-awesomeversion_24.2.0.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "One version package to rule them all, One version package to find them, One version package to bring them all, and in the darkness bind them."
+HOMEPAGE = "https://pypi.org/project/awesomeversion/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE.md;md5=92622b5a8e216099be741d78328bae5d"
+
+SRC_URI[sha256sum] = "47a6dcbbe2921b725f75106a66ab30f26f1f33dbc5e07bc8e1e39d8eb921f53c"
+
+RDEPENDS:${PN} += "python3-profile python3-logging"
+
+inherit pypi python_poetry_core
diff --git a/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.5.2.bb b/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.5.2.bb
index 35d061f5e6..bdadf7c774 100644
--- a/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.5.2.bb
+++ b/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.5.2.bb
@@ -27,15 +27,15 @@ do_install:append() {
PACKAGES =+ "${PN}-examples"
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-crypt \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-math \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-threading \
+ python3-crypt \
+ python3-datetime \
+ python3-io \
+ python3-json \
+ python3-logging \
+ python3-math \
+ python3-netclient \
+ python3-numbers \
+ python3-threading \
"
RDEPENDS:${PN}-examples += "${PN}"
diff --git a/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb b/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb
index 434ab57c50..d1ac486c05 100644
--- a/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb
+++ b/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb
@@ -1,6 +1,5 @@
SUMMARY = "Specifications for callback functions passed in to an API"
HOMEPAGE = "https://github.com/takluyver/backcall"
-AUTHOR = "Thomas Kluyver <thomas@kluyver.me.uk>"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=40e56b724d016484a7f790ec826d3ffc"
diff --git a/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache/run-ptest b/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache/run-ptest
deleted file mode 100644
index b63c4de0d9..0000000000
--- a/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta-python/recipes-devtools/python/python3-bandit_1.7.4.bb b/meta-python/recipes-devtools/python/python3-bandit_1.7.4.bb
deleted file mode 100644
index cfdbde9689..0000000000
--- a/meta-python/recipes-devtools/python/python3-bandit_1.7.4.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Security oriented static analyser for python code."
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
-
-SRC_URI[sha256sum] = "2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"
-
-DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
-
-inherit setuptools3 pypi
-
-RDEPENDS:${PN} += "python3-modules python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-bandit_1.7.8.bb b/meta-python/recipes-devtools/python/python3-bandit_1.7.8.bb
new file mode 100644
index 0000000000..8b0968857f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bandit_1.7.8.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Security oriented static analyser for python code."
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
+
+SRC_URI[sha256sum] = "36de50f720856ab24a24dbaa5fee2c66050ed97c1477e0a1159deab1775eab6b"
+
+DEPENDS = "python3-pbr-native python3-git python3-pbr python3-pyyaml python3-six python3-stevedore"
+
+inherit setuptools3 pypi
+
+RDEPENDS:${PN} += "\
+ python3-git \
+ python3-modules \
+ python3-pbr \
+ python3-pyyaml \
+ python3-rich \
+ python3-six \
+ python3-stevedore \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.11.1.bb b/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.11.1.bb
deleted file mode 100644
index 3037ea83c0..0000000000
--- a/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.11.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Screen-scraping library"
-HOMEPAGE = " https://www.crummy.com/software/BeautifulSoup/bs4"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=15a76c7c51ecfc5c094d04f3ccd41a09"
-
-SRC_URI[sha256sum] = "ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-html5lib \
- ${PYTHON_PN}-lxml \
- ${PYTHON_PN}-soupsieve \
- ${PYTHON_PN}-html \
- ${PYTHON_PN}-logging \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.12.3.bb b/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.12.3.bb
new file mode 100644
index 0000000000..14dedba922
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.12.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Screen-scraping library"
+HOMEPAGE = " https://www.crummy.com/software/BeautifulSoup/bs4"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=96e0034f7c9443910c486773aa1ed9ac"
+
+SRC_URI[sha256sum] = "74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"
+
+inherit pypi python_hatchling
+
+RDEPENDS:${PN} = "\
+ python3-html5lib \
+ python3-lxml \
+ python3-soupsieve \
+ python3-html \
+ python3-logging \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb b/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb
index 1dcc7d218e..da4f3047f9 100644
--- a/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb
+++ b/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb
@@ -12,7 +12,7 @@ S = "${WORKDIR}/git"
inherit setuptools3
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-parse-type \
- ${PYTHON_PN}-setuptools \
- ${PYTHON_PN}-six \
+ python3-parse-type \
+ python3-setuptools \
+ python3-six \
"
diff --git a/meta-python/recipes-devtools/python/python3-betamax/0001-Drop-ptests-fixtures-and-recorde_modes.patch b/meta-python/recipes-devtools/python/python3-betamax/0001-Drop-ptests-fixtures-and-recorde_modes.patch
new file mode 100644
index 0000000000..52745a9373
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-betamax/0001-Drop-ptests-fixtures-and-recorde_modes.patch
@@ -0,0 +1,343 @@
+From e5aa66b1af2d49f159c4daefc598f96744ee988d Mon Sep 17 00:00:00 2001
+From: Zhixiong Chi <zhixiong.chi@windriver.com>
+Date: Thu, 29 Feb 2024 12:31:58 -0800
+Subject: [PATCH] [PATCH] Drop ptests fixtures and recorde_modes
+
+The usage of fixture in test_fixtures has been deprecated.
+See https://docs.pytest.org/en/stable/explanation/fixtures.html and
+https://docs.pytest.org/en/stable/deprecations.html#calling-fixtures-directly
+for more information about fixtures.
+Meanwhile the test_record_modes relies on httpbin.org which has been sold and
+re-sold several times, and it adds X-Amzn-Trace-Id header that can possibly
+diff for each request.
+It leads to ptest failure, so drop it now until we find the solution.
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/integration/test_fixtures.py | 60 -----------
+ tests/integration/test_record_modes.py | 141 -------------------------
+ tests/unit/test_fixtures.py | 94 -----------------
+ 3 files changed, 295 deletions(-)
+ delete mode 100644 tests/integration/test_fixtures.py
+ delete mode 100644 tests/integration/test_record_modes.py
+ delete mode 100644 tests/unit/test_fixtures.py
+
+diff --git a/tests/integration/test_fixtures.py b/tests/integration/test_fixtures.py
+deleted file mode 100644
+index fc3d1e7..0000000
+--- a/tests/integration/test_fixtures.py
++++ /dev/null
+@@ -1,60 +0,0 @@
+-import os.path
+-
+-import pytest
+-
+-
+-@pytest.mark.usefixtures('betamax_session')
+-class TestPyTestFixtures:
+- @pytest.fixture(autouse=True)
+- def setup(self, request):
+- """After test hook to assert everything."""
+- def finalizer():
+- test_dir = os.path.abspath('.')
+- cassette_name = ('tests.integration.test_fixtures.' # Module name
+- 'TestPyTestFixtures.' # Class name
+- 'test_pytest_fixture' # Test function name
+- '.json')
+- file_name = os.path.join(test_dir, 'tests', 'cassettes',
+- cassette_name)
+- assert os.path.exists(file_name) is True
+-
+- request.addfinalizer(finalizer)
+-
+- def test_pytest_fixture(self, betamax_session):
+- """Exercise the fixture itself."""
+- resp = betamax_session.get('https://httpbin.org/get')
+- assert resp.ok
+-
+-
+-@pytest.mark.usefixtures('betamax_parametrized_session')
+-class TestPyTestParametrizedFixtures:
+- @pytest.fixture(autouse=True)
+- def setup(self, request):
+- """After test hook to assert everything."""
+- def finalizer():
+- test_dir = os.path.abspath('.')
+- cassette_name = ('tests.integration.test_fixtures.' # Module name
+- 'TestPyTestParametrizedFixtures.' # Class name
+- 'test_pytest_fixture' # Test function name
+- '[https---httpbin.org-get]' # Parameter
+- '.json')
+- file_name = os.path.join(test_dir, 'tests', 'cassettes',
+- cassette_name)
+- assert os.path.exists(file_name) is True
+-
+- request.addfinalizer(finalizer)
+-
+- @pytest.mark.parametrize('url', ('https://httpbin.org/get',))
+- def test_pytest_fixture(self, betamax_parametrized_session, url):
+- """Exercise the fixture itself."""
+- resp = betamax_parametrized_session.get(url)
+- assert resp.ok
+-
+-
+-@pytest.mark.parametrize('problematic_arg', [r'aaa\bbb', 'ccc:ddd', 'eee*fff'])
+-def test_pytest_parametrize_with_filesystem_problematic_chars(
+- betamax_parametrized_session, problematic_arg):
+- """
+- Exercice parametrized args containing characters which might cause
+- problems when getting translated into file names. """
+- assert True
+diff --git a/tests/integration/test_record_modes.py b/tests/integration/test_record_modes.py
+deleted file mode 100644
+index 988b851..0000000
+--- a/tests/integration/test_record_modes.py
++++ /dev/null
+@@ -1,141 +0,0 @@
+-import re
+-
+-from betamax import Betamax, BetamaxError
+-
+-from tests.integration.helper import IntegrationHelper
+-
+-
+-class TestRecordOnce(IntegrationHelper):
+- def test_records_new_interaction(self):
+- s = self.session
+- with Betamax(s).use_cassette('test_record_once') as betamax:
+- self.cassette_path = betamax.current_cassette.cassette_path
+- assert betamax.current_cassette.is_empty() is True
+- r = s.get('http://httpbin.org/get')
+- assert r.status_code == 200
+- assert betamax.current_cassette.is_empty() is True
+- assert betamax.current_cassette.interactions != []
+-
+- def test_replays_response_from_cassette(self):
+- s = self.session
+- with Betamax(s).use_cassette('test_replays_response') as betamax:
+- self.cassette_path = betamax.current_cassette.cassette_path
+- assert betamax.current_cassette.is_empty() is True
+- r0 = s.get('http://httpbin.org/get')
+- assert r0.status_code == 200
+- assert betamax.current_cassette.interactions != []
+- assert len(betamax.current_cassette.interactions) == 1
+- r1 = s.get('http://httpbin.org/get')
+- assert len(betamax.current_cassette.interactions) == 2
+- assert r1.status_code == 200
+- r0_headers = r0.headers.copy()
+- r0_headers.pop('Date')
+- r0_headers.pop('Age', None)
+- r0_headers.pop('X-Processed-Time', None)
+- r1_headers = r1.headers.copy()
+- r1_headers.pop('Date')
+- r1_headers.pop('Age', None)
+- r1_headers.pop('X-Processed-Time', None)
+- # NOTE(sigmavirus24): This fails if the second request is
+- # technically a second later. Ignoring the Date headers allows
+- # this test to succeed.
+- # NOTE(hroncok): httpbin.org added X-Processed-Time header that
+- # can possibly differ (and often does)
+- r0_content = r0.content.decode(encoding='utf-8', errors='strict')
+- r1_content = r1.content.decode(encoding='utf-8', errors='strict')
+- r0_content = re.sub('"X-Amzn-Trace-Id": "[^"]+"', '"X-Amzn-Trace-Id": ""', r0_content)
+- r1_content = re.sub('"X-Amzn-Trace-Id": "[^"]+"', '"X-Amzn-Trace-Id": ""', r1_content)
+- # NOTE(jhatler): httpbin.org added "X-Amzn-Trace-Id" to their
+- # response, which is a unique ID that will differ between requests.
+- # We remove it from the response body before comparing.
+- assert r0_headers == r1_headers
+- assert r0_content == r1_content
+-
+-
+-class TestRecordNone(IntegrationHelper):
+- def test_raises_exception_when_no_interactions_present(self):
+- s = self.session
+- with Betamax(s) as betamax:
+- betamax.use_cassette('test', record='none')
+- self.cassette_created = False
+- assert betamax.current_cassette is not None
+- self.assertRaises(BetamaxError, s.get, 'http://httpbin.org/get')
+-
+- def test_record_none_does_not_create_cassettes(self):
+- s = self.session
+- with Betamax(s) as betamax:
+- self.assertRaises(ValueError, betamax.use_cassette,
+- 'test_record_none', record='none')
+- self.cassette_created = False
+-
+-
+-class TestRecordNewEpisodes(IntegrationHelper):
+- def setUp(self):
+- super(TestRecordNewEpisodes, self).setUp()
+- with Betamax(self.session).use_cassette('test_record_new'):
+- self.session.get('http://httpbin.org/get')
+- self.session.get('http://httpbin.org/redirect/2')
+-
+- def test_records_new_events_with_existing_cassette(self):
+- s = self.session
+- opts = {'record': 'new_episodes'}
+- with Betamax(s).use_cassette('test_record_new', **opts) as betamax:
+- cassette = betamax.current_cassette
+- self.cassette_path = cassette.cassette_path
+- assert cassette.interactions != []
+- assert len(cassette.interactions) == 4
+- assert cassette.is_empty() is False
+- s.get('https://httpbin.org/get')
+- assert len(cassette.interactions) == 5
+-
+- with Betamax(s).use_cassette('test_record_new') as betamax:
+- cassette = betamax.current_cassette
+- assert len(cassette.interactions) == 5
+- r = s.get('https://httpbin.org/get')
+- assert r.status_code == 200
+-
+-
+-class TestRecordNewEpisodesCreatesCassettes(IntegrationHelper):
+- def test_creates_new_cassettes(self):
+- recorder = Betamax(self.session)
+- opts = {'record': 'new_episodes'}
+- cassette_name = 'test_record_new_makes_new_cassettes'
+- with recorder.use_cassette(cassette_name, **opts) as betamax:
+- self.cassette_path = betamax.current_cassette.cassette_path
+- self.session.get('https://httpbin.org/get')
+-
+-
+-class TestRecordAll(IntegrationHelper):
+- def setUp(self):
+- super(TestRecordAll, self).setUp()
+- with Betamax(self.session).use_cassette('test_record_all'):
+- self.session.get('http://httpbin.org/get')
+- self.session.get('http://httpbin.org/redirect/2')
+- self.session.get('http://httpbin.org/get')
+-
+- def test_records_new_interactions(self):
+- s = self.session
+- opts = {'record': 'all'}
+- with Betamax(s).use_cassette('test_record_all', **opts) as betamax:
+- cassette = betamax.current_cassette
+- self.cassette_path = cassette.cassette_path
+- assert cassette.interactions != []
+- assert len(cassette.interactions) == 5
+- assert cassette.is_empty() is False
+- s.post('http://httpbin.org/post', data={'foo': 'bar'})
+- assert len(cassette.interactions) == 6
+-
+- with Betamax(s).use_cassette('test_record_all') as betamax:
+- assert len(betamax.current_cassette.interactions) == 6
+-
+- def test_replaces_old_interactions(self):
+- s = self.session
+- opts = {'record': 'all'}
+- with Betamax(s).use_cassette('test_record_all', **opts) as betamax:
+- cassette = betamax.current_cassette
+- self.cassette_path = cassette.cassette_path
+- assert cassette.interactions != []
+- assert len(cassette.interactions) == 5
+- assert cassette.is_empty() is False
+- s.get('http://httpbin.org/get')
+- assert len(cassette.interactions) == 5
+diff --git a/tests/unit/test_fixtures.py b/tests/unit/test_fixtures.py
+deleted file mode 100644
+index 41f33eb..0000000
+--- a/tests/unit/test_fixtures.py
++++ /dev/null
+@@ -1,94 +0,0 @@
+-try:
+- import unittest.mock as mock
+-except ImportError:
+- import mock
+-
+-import pytest
+-import unittest
+-
+-import requests
+-
+-import betamax
+-from betamax.fixtures import pytest as pytest_fixture
+-from betamax.fixtures import unittest as unittest_fixture
+-
+-
+-class TestPyTestFixture(unittest.TestCase):
+- def setUp(self):
+- self.mocked_betamax = mock.MagicMock()
+- self.patched_betamax = mock.patch.object(
+- betamax.recorder, 'Betamax', return_value=self.mocked_betamax)
+- self.patched_betamax.start()
+-
+- def tearDown(self):
+- self.patched_betamax.stop()
+-
+- def test_adds_stop_as_a_finalizer(self):
+- # Mock a pytest request object
+- request = mock.MagicMock()
+- request.cls = request.module = None
+- request.node.name = request.function.__name__ = 'test'
+-
+- pytest_fixture._betamax_recorder(request)
+- assert request.addfinalizer.called is True
+- request.addfinalizer.assert_called_once_with(self.mocked_betamax.stop)
+-
+- def test_auto_starts_the_recorder(self):
+- # Mock a pytest request object
+- request = mock.MagicMock()
+- request.cls = request.module = None
+- request.node.name = request.function.__name__ = 'test'
+-
+- pytest_fixture._betamax_recorder(request)
+- self.mocked_betamax.start.assert_called_once_with()
+-
+-
+-class FakeBetamaxTestCase(unittest_fixture.BetamaxTestCase):
+- def test_fake(self):
+- pass
+-
+-
+-class TestUnittestFixture(unittest.TestCase):
+- def setUp(self):
+- self.mocked_betamax = mock.MagicMock()
+- self.patched_betamax = mock.patch.object(
+- betamax.recorder, 'Betamax', return_value=self.mocked_betamax)
+- self.betamax = self.patched_betamax.start()
+- self.fixture = FakeBetamaxTestCase(methodName='test_fake')
+-
+- def tearDown(self):
+- self.patched_betamax.stop()
+-
+- def test_setUp(self):
+- self.fixture.setUp()
+-
+- self.mocked_betamax.use_cassette.assert_called_once_with(
+- 'FakeBetamaxTestCase.test_fake'
+- )
+- self.mocked_betamax.start.assert_called_once_with()
+-
+- def test_setUp_rejects_arbitrary_session_classes(self):
+- self.fixture.SESSION_CLASS = object
+-
+- with pytest.raises(AssertionError):
+- self.fixture.setUp()
+-
+- def test_setUp_accepts_session_subclasses(self):
+- class TestSession(requests.Session):
+- pass
+-
+- self.fixture.SESSION_CLASS = TestSession
+-
+- self.fixture.setUp()
+-
+- assert self.betamax.called is True
+- call_kwargs = self.betamax.call_args[-1]
+- assert isinstance(call_kwargs['session'], TestSession)
+-
+- def test_tearDown_calls_stop(self):
+- recorder = mock.Mock()
+- self.fixture.recorder = recorder
+-
+- self.fixture.tearDown()
+-
+- recorder.stop.assert_called_once_with()
+--
+2.44.0
+
diff --git a/meta-python/recipes-devtools/python/python3-betamax/run-ptest b/meta-python/recipes-devtools/python/python3-betamax/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-betamax/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-betamax/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-betamax_0.8.1.bb b/meta-python/recipes-devtools/python/python3-betamax_0.8.1.bb
deleted file mode 100644
index 2caeb5afa2..0000000000
--- a/meta-python/recipes-devtools/python/python3-betamax_0.8.1.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "VCR imitation for python requests"
-HOMEPAGE = "https://github.com/betamaxpy/betamax"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=61c15f0c146c5fb1a8ce8ba2f310d73c"
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-SRC_URI[md5sum] = "b8182d43a200fc126a3bf7555626f964"
-SRC_URI[sha256sum] = "5bf004ceffccae881213fb722f34517166b84a34919b92ffc14d1dbd050b71c2"
-
-inherit pypi setuptools3 ptest
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-requests \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-python/recipes-devtools/python/python3-betamax_0.9.0.bb b/meta-python/recipes-devtools/python/python3-betamax_0.9.0.bb
new file mode 100644
index 0000000000..a0454686ee
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-betamax_0.9.0.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "VCR imitation for python requests"
+HOMEPAGE = "https://github.com/betamaxpy/betamax"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=61c15f0c146c5fb1a8ce8ba2f310d73c"
+
+SRC_URI += " \
+ file://run-ptest \
+ file://0001-Drop-ptests-fixtures-and-recorde_modes.patch \
+"
+SRC_URI[sha256sum] = "82316e1679bc6879e3c83318d016b54b7c9225ff08c4462de4813e22038d5f94"
+
+inherit pypi setuptools3 ptest
+
+RDEPENDS:${PN} += " \
+ python3-requests \
+ python3-unittest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-bidict_0.22.0.bb b/meta-python/recipes-devtools/python/python3-bidict_0.22.0.bb
deleted file mode 100644
index 088931d148..0000000000
--- a/meta-python/recipes-devtools/python/python3-bidict_0.22.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "The bidirectional mapping library for Python."
-DESCRIPTION = "The bidirectional mapping library for Python."
-HOMEPAGE = "https://bidict.readthedocs.io/"
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=858e74278ef3830d46481172ae03c819"
-
-SRC_URI[sha256sum] = "5c826b3e15e97cc6e615de295756847c282a79b79c5430d3bfc909b1ac9f5bd8"
-
-inherit pypi python_setuptools_build_meta
-
-DEPENDS += "python3-setuptools-scm-native"
diff --git a/meta-python/recipes-devtools/python/python3-bidict_0.23.0.bb b/meta-python/recipes-devtools/python/python3-bidict_0.23.0.bb
new file mode 100644
index 0000000000..5667e4927f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bidict_0.23.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "The bidirectional mapping library for Python."
+DESCRIPTION = "The bidirectional mapping library for Python."
+HOMEPAGE = "https://bidict.readthedocs.io/"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e907308cc9356afa99ac0eec6b20211b"
+
+SRC_URI[sha256sum] = "3959ca59d4d6997702d642bf1e5fd93cba299863723fc289545198f70c468578"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "python3-setuptools-scm-native"
diff --git a/meta-python/recipes-devtools/python/python3-binwalk_2.3.4.bb b/meta-python/recipes-devtools/python/python3-binwalk_2.3.4.bb
new file mode 100644
index 0000000000..45b1ff5145
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-binwalk_2.3.4.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Firmware analysis tool"
+DESCRIPTION = "This package contains Python Binwalk tool. Binwalk is a fast, \
+easy to use tool for analyzing, reverse engineering, and extracting firmware \
+images."
+HOMEPAGE = "https://github.com/ReFirmLabs/binwalk"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=65bbee055d3ea3bfc475f07aecf4de64"
+
+SRC_URI = "git://github.com/ReFirmLabs/binwalk;protocol=https;branch=master"
+
+SRCREV = "cddfede795971045d99422bd7a9676c8803ec5ee"
+
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+inherit setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-logging \
+ python3-netserver \
+ python3-setuptools \
+ python3-stringold \
+"
diff --git a/meta-python/recipes-devtools/python/python3-bitarray_2.6.0.bb b/meta-python/recipes-devtools/python/python3-bitarray_2.6.0.bb
deleted file mode 100644
index 507c0bc51a..0000000000
--- a/meta-python/recipes-devtools/python/python3-bitarray_2.6.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "A high-level Python efficient arrays of booleans -- C extension"
-HOMEPAGE = "https://github.com/ilanschnell/bitarray"
-LICENSE = "PSF-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
-
-SRC_URI[sha256sum] = "56d3f16dd807b1c56732a244ce071c135ee973d3edc9929418c1b24c5439a0fd"
-
-inherit setuptools3 pypi
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-bitarray_2.9.2.bb b/meta-python/recipes-devtools/python/python3-bitarray_2.9.2.bb
new file mode 100644
index 0000000000..7d7be0b1aa
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bitarray_2.9.2.bb
@@ -0,0 +1,11 @@
+SUMMARY = "efficient arrays of booleans -- C extension"
+DESCRIPTION = "A high-level Python efficient arrays of booleans -- C extension"
+HOMEPAGE = "https://github.com/ilanschnell/bitarray"
+LICENSE = "PSF-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
+
+SRC_URI[sha256sum] = "a8f286a51a32323715d77755ed959f94bef13972e9a2fe71b609e40e6d27957e"
+
+inherit setuptools3 pypi
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-bitstring_3.1.9.bb b/meta-python/recipes-devtools/python/python3-bitstring_3.1.9.bb
deleted file mode 100644
index 94dbae2afc..0000000000
--- a/meta-python/recipes-devtools/python/python3-bitstring_3.1.9.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Simple construction, analysis and modification of binary data."
-HOMEPAGE = "https://github.com/scott-griffiths/bitstring"
-AUTHOR = "Scott Griffiths <dr.scottgriffiths@gmail.com>"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f7f2fd3f1cd52b5ccd39d76fb3568d3f"
-
-SRC_URI[sha256sum] = "a5848a3f63111785224dca8bb4c0a75b62ecdef56a042c8d6be74b16f7e860e7"
-
-PYPI_PACKAGE = "bitstring"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-mmap \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-bitstring_4.1.4.bb b/meta-python/recipes-devtools/python/python3-bitstring_4.1.4.bb
new file mode 100644
index 0000000000..0777b6cffb
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bitstring_4.1.4.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Simple construction, analysis and modification of binary data."
+HOMEPAGE = "https://github.com/scott-griffiths/bitstring"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=661f450e2c0aef39b4b15597333444a7"
+
+SRC_URI[sha256sum] = "94f3f1c45383ebe8fd4a359424ffeb75c2f290760ae8fcac421b44f89ac85213"
+
+PYPI_PACKAGE = "bitstring"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} = "\
+ python3-core \
+ python3-io \
+ python3-mmap \
+ python3-numbers \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-bitstruct_8.15.1.bb b/meta-python/recipes-devtools/python/python3-bitstruct_8.15.1.bb
deleted file mode 100644
index fe3aeb7b58..0000000000
--- a/meta-python/recipes-devtools/python/python3-bitstruct_8.15.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "This module performs conversions between Python values and C bit field structs represented as Python byte strings."
-HOMEPAGE = "https://github.com/eerimoq/bitstruct"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
-
-SRC_URI[sha256sum] = "6fa6adbfb8f3b8cb68c21b13aa65d23eb2c3ac32419ab926f3fd1fff717a9125"
-
-PYPI_PACKAGE = "bitstruct"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
diff --git a/meta-python/recipes-devtools/python/python3-bitstruct_8.19.0.bb b/meta-python/recipes-devtools/python/python3-bitstruct_8.19.0.bb
new file mode 100644
index 0000000000..6401322e2c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bitstruct_8.19.0.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "This module performs conversions between Python values and C bit field structs represented as Python byte strings."
+HOMEPAGE = "https://github.com/eerimoq/bitstruct"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
+
+SRC_URI[sha256sum] = "d75ba9dded85c17e885a209a00eb8e248ee40762149f2f2a79360ca857467dac"
+
+PYPI_PACKAGE = "bitstruct"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
diff --git a/meta-python/recipes-devtools/python/python3-bleak/run-ptest b/meta-python/recipes-devtools/python/python3-bleak/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bleak/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-bleak_0.21.1.bb b/meta-python/recipes-devtools/python/python3-bleak_0.21.1.bb
new file mode 100644
index 0000000000..96f3fcbcfe
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bleak_0.21.1.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Bleak is a GATT client software, capable of connecting to BLE devices acting as GATT servers."
+HOMEPAGE = "https://github.com/hbldh/bleak"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bcbc2069a86cba1b5e47253679f66ed7"
+
+SRCREV = "054b092e19c7a45d5ea07d8948022f54117fe5e8"
+PYPI_SRC_URI = "git://github.com/hbldh/bleak.git;protocol=https;branch=develop"
+
+inherit pypi python_poetry_core ptest
+
+S = "${WORKDIR}/git"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-pytest-asyncio \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-core (>3.7) \
+ python3-async-timeout \
+ python3-dbus-fast \
+ python3-xml \
+"
diff --git a/meta-python/recipes-devtools/python/python3-blinker/run-ptest b/meta-python/recipes-devtools/python/python3-blinker/run-ptest
index 15c3f6282d..69cd362f69 100644
--- a/meta-python/recipes-devtools/python/python3-blinker/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-blinker/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-blinker_1.5.bb b/meta-python/recipes-devtools/python/python3-blinker_1.5.bb
deleted file mode 100644
index dae1e39437..0000000000
--- a/meta-python/recipes-devtools/python/python3-blinker_1.5.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "Fast, simple object-to-object and broadcast signaling."
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=42cd19c88fc13d1307a4efd64ee90e4e"
-
-SRC_URI[sha256sum] = "923e5e2f69c155f2cc42dafbbd70e16e3fde24d2d4aa2ab72fbe386238892462"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += "file://run-ptest"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-python/recipes-devtools/python/python3-blinker_1.7.0.bb b/meta-python/recipes-devtools/python/python3-blinker_1.7.0.bb
new file mode 100644
index 0000000000..8f2cf4883d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-blinker_1.7.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Fast, simple object-to-object and broadcast signaling."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=42cd19c88fc13d1307a4efd64ee90e4e"
+
+SRC_URI[sha256sum] = "e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += "file://run-ptest"
+
+RDEPENDS:${PN} += "\
+ python3-asyncio \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb b/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb
deleted file mode 100644
index 41fd3d960a..0000000000
--- a/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL"
-HOMEPAGE = "https://github.com/bastikr/boolean.py"
-
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d118b5feceee598ebeca76e13395c2bd"
-
-SRC_URI[sha256sum] = "17b9a181630e43dde1851d42bef546d616d5d9b4480357514597e78b203d06e4"
-
-PYPI_PACKAGE = "boolean.py"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-brotli_1.1.0.bb b/meta-python/recipes-devtools/python/python3-brotli_1.1.0.bb
new file mode 100644
index 0000000000..678f12b730
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-brotli_1.1.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Brotli compression format"
+HOMEPAGE = "https://pypi.org/project/Brotli/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=941ee9cd1609382f946352712a319b4b"
+
+PYPI_PACKAGE = "Brotli"
+
+SRC_URI[sha256sum] = "81de08ac11bcb85841e440c13611c00b67d3bf82698314928d0b676362546724"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+ python3-cffi \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.12.bb b/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.12.bb
deleted file mode 100644
index 8f7185b8f5..0000000000
--- a/meta-python/recipes-devtools/python/python3-cachecontrol_0.12.12.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "httplib2 caching for requests"
-HOMEPAGE = "https://pypi.org/project/CacheControl/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=12;endline=12;md5=942a721dac34d073453642ffe5fcf546"
-
-# On PyPi, this is "CacheControl", rather than "cachecontrol", so we need to
-# override PYPI_PACKAGE so fetch succeeds.
-PYPI_PACKAGE = "CacheControl"
-
-SRC_URI[sha256sum] = "9c2e5208ea76ebd9921176569743ddf6d7f3bb4188dbf61806f0f8fc48ecad38"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- python3-crypt \
- python3-datetime \
- python3-email \
- python3-lockfile \
- python3-json \
- python3-logging \
- python3-msgpack \
- python3-netclient \
- python3-pickle \
- python3-requests \
- python3-urllib3 \
- python3-mmap \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cachecontrol_0.14.0.bb b/meta-python/recipes-devtools/python/python3-cachecontrol_0.14.0.bb
new file mode 100644
index 0000000000..1e374529cc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cachecontrol_0.14.0.bb
@@ -0,0 +1,28 @@
+SUMMARY = "httplib2 caching for requests"
+HOMEPAGE = "https://pypi.org/project/CacheControl/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=12;endline=12;md5=e2fd6ddcf506e08972d5ba4b93c0022e"
+
+SRC_URI[sha256sum] = "7db1195b41c81f8274a7bbd97c956f44e8348265a1bc7641c37dfebc39f0c938"
+
+inherit pypi python_poetry_core
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/CacheControl/"
+UPSTREAM_CHECK_REGEX = "/CacheControl/(?P<pver>(\d+[\.\-_]*)+)"
+
+RDEPENDS:${PN} += "\
+ python3-crypt \
+ python3-datetime \
+ python3-email \
+ python3-lockfile \
+ python3-json \
+ python3-logging \
+ python3-msgpack \
+ python3-netclient \
+ python3-pickle \
+ python3-requests \
+ python3-urllib3 \
+ python3-mmap \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cachetools/run-ptest b/meta-python/recipes-devtools/python/python3-cachetools/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-cachetools/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-cachetools/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-cachetools_5.2.0.bb b/meta-python/recipes-devtools/python/python3-cachetools_5.2.0.bb
deleted file mode 100644
index 35b338ca8f..0000000000
--- a/meta-python/recipes-devtools/python/python3-cachetools_5.2.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Extensible memoizing collections and decorators"
-HOMEPAGE = "https://github.com/tkem/cachetools"
-DESCRIPTION = "This module provides various memoizing \
-collections and decorators, including variants of the \
-Python 3 Standard Library @lru_cache function decorator."
-SECTION = "devel/python"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1ec55353c80c662e4255f8889a0ca558"
-
-inherit pypi python_setuptools_build_meta ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-math \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-SRC_URI[sha256sum] = "6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cachetools_5.3.3.bb b/meta-python/recipes-devtools/python/python3-cachetools_5.3.3.bb
new file mode 100644
index 0000000000..3ef75d4703
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cachetools_5.3.3.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Extensible memoizing collections and decorators"
+HOMEPAGE = "https://github.com/tkem/cachetools"
+DESCRIPTION = "This module provides various memoizing \
+collections and decorators, including variants of the \
+Python 3 Standard Library @lru_cache function decorator."
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=539275e657c6b7af026bb908356f7541"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+ python3-math \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+SRC_URI[sha256sum] = "ba29e2dfa0b8b556606f097407ed1aa62080ee108ab0dc5ec9d6a723a007d105"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-can_4.0.0.bb b/meta-python/recipes-devtools/python/python3-can_4.0.0.bb
deleted file mode 100644
index b1ba6849be..0000000000
--- a/meta-python/recipes-devtools/python/python3-can_4.0.0.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Controller Area Network (CAN) interface module for Python"
-SECTION = "devel/python"
-LICENSE = "LGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02"
-
-SRC_URI[sha256sum] = "59d92846ffb981e634e9e0f2d14a6b4967a875e3869bd2ba168c92c4db6b8b5d"
-
-PYPI_PACKAGE="python-can"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN}:class-target += "\
- ${PYTHON_PN}-aenum \
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-fcntl \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-sqlite3 \
- ${PYTHON_PN}-wrapt \
- ${PYTHON_PN}-pkg-resources \
- ${PYTHON_PN}-typing-extensions \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-can_4.2.2.bb b/meta-python/recipes-devtools/python/python3-can_4.2.2.bb
new file mode 100644
index 0000000000..9ca926d66c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-can_4.2.2.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Controller Area Network (CAN) interface module for Python"
+SECTION = "devel/python"
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+SRC_URI[sha256sum] = "6ad50f4613289f3c4d276b6d2ac8901d776dcb929994cce93f55a69e858c595f"
+
+PYPI_PACKAGE="python-can"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-aenum \
+ python3-asyncio \
+ python3-codecs \
+ python3-compression \
+ python3-ctypes \
+ python3-fcntl \
+ python3-json \
+ python3-logging \
+ python3-misc \
+ python3-netserver \
+ python3-packaging \
+ python3-pkg-resources \
+ python3-setuptools \
+ python3-sqlite3 \
+ python3-typing-extensions \
+ python3-wrapt \
+"
diff --git a/meta-python/recipes-devtools/python/python3-cantools_37.2.0.bb b/meta-python/recipes-devtools/python/python3-cantools_37.2.0.bb
deleted file mode 100644
index 7d159340c5..0000000000
--- a/meta-python/recipes-devtools/python/python3-cantools_37.2.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "CAN BUS tools in Python 3."
-HOMEPAGE = "https://github.com/eerimoq/cantools"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
-
-SRC_URI[sha256sum] = "bbb0e802af02a1dc792c32d10b61b51deaefc1c8e9c776b50d2d2e194b702fac"
-
-PYPI_PACKAGE = "cantools"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-can \
- ${PYTHON_PN}-bitstruct \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-textparser \
- ${PYTHON_PN}-typing-extensions \
- ${PYTHON_PN}-diskcache \
- ${PYTHON_PN}-asyncio \
-"
-
-CLEANBROKEN = "1"
diff --git a/meta-python/recipes-devtools/python/python3-cantools_39.4.4.bb b/meta-python/recipes-devtools/python/python3-cantools_39.4.4.bb
new file mode 100644
index 0000000000..ebae6b63e6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cantools_39.4.4.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "CAN BUS tools in Python 3."
+HOMEPAGE = "https://github.com/eerimoq/cantools"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d9aa4ec07de78abae21c490c9ffe61bd"
+
+SRC_URI[sha256sum] = "6e8e918b6671a62a9f3990546ece5623e1deb71defb1cef85a9955ac301da99e"
+
+PYPI_PACKAGE = "cantools"
+
+inherit pypi python_poetry_core
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} += "\
+ python3-can \
+ python3-bitstruct \
+ python3-core \
+ python3-textparser \
+ python3-typing-extensions \
+ python3-diskcache \
+ python3-asyncio \
+"
+
+CLEANBROKEN = "1"
diff --git a/meta-python/recipes-devtools/python/python3-cassandra-driver_3.25.0.bb b/meta-python/recipes-devtools/python/python3-cassandra-driver_3.25.0.bb
deleted file mode 100644
index cf27f7f476..0000000000
--- a/meta-python/recipes-devtools/python/python3-cassandra-driver_3.25.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "DataStax Python Driver for Apache Cassandra"
-DESCRIPTION = "A modern, feature-rich and highly-tunable Python client \
-library for Apache Cassandra (1.2+) and DataStax Enterprise (3.1+) using \
-exclusively Cassandra's binary protocol and Cassandra Query Language v3."
-HOMEPAGE = "https://github.com/datastax/python-driver"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
-SRCNAME = "cassandra-driver"
-
-SRC_URI[sha256sum] = "8ad7d7c090eb1cac6110b3bfc1fd2d334ac62f415aac09350ebb8d241b7aa7ee"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-cython \
- ${PYTHON_PN}-geomet \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-multiprocessing \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-six \
- libevent \
-"
-
-DEPENDS += "\
- ${PYTHON_PN}-cython \
-"
diff --git a/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.1.bb b/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.1.bb
new file mode 100644
index 0000000000..3003e84acf
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cassandra-driver_3.29.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "DataStax Python Driver for Apache Cassandra"
+DESCRIPTION = "A modern, feature-rich and highly-tunable Python client \
+library for Apache Cassandra (1.2+) and DataStax Enterprise (3.1+) using \
+exclusively Cassandra's binary protocol and Cassandra Query Language v3."
+HOMEPAGE = "https://github.com/datastax/python-driver"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+SRCNAME = "cassandra-driver"
+
+SRC_URI[sha256sum] = "38e9c2a2f2a9664bb03f1f852d5fccaeff2163942b5db35dffcf8bf32a51cfe5"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-cython \
+ python3-geomet \
+ python3-json \
+ python3-misc \
+ python3-multiprocessing \
+ python3-numbers \
+ python3-six \
+ libevent \
+"
+
+DEPENDS += "\
+ python3-cython \
+"
diff --git a/meta-python/recipes-devtools/python/python3-casttube_0.2.1.bb b/meta-python/recipes-devtools/python/python3-casttube_0.2.1.bb
new file mode 100644
index 0000000000..af3daf016e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-casttube_0.2.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "YouTube Chromecast API"
+HOMEPAGE = "https://github.com/ur1katz/casttube"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d3aafde5479a4102b867156e2527a34e"
+
+SRC_URI[sha256sum] = "54d2af8c7949aa9c5db87fb11ef0a478a5d3e7ac6d2d2ac8dd1711e3a516fc82"
+
+inherit pypi setuptools3
+
+FILES:${PN} += "\
+ /usr/LICENSE \
+"
+
+RDEPENDS:${PN} = "\
+ python3-requests \
+"
diff --git a/meta-python/recipes-devtools/python/python3-cbor2/run-ptest b/meta-python/recipes-devtools/python/python3-cbor2/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-cbor2/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-cbor2/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-cbor2_5.4.3.bb b/meta-python/recipes-devtools/python/python3-cbor2_5.4.3.bb
deleted file mode 100644
index bbb57a4a9f..0000000000
--- a/meta-python/recipes-devtools/python/python3-cbor2_5.4.3.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-DESCRIPTION = "An implementation of RFC 7049 - Concise Binary Object Representation (CBOR)."
-DEPENDS +="${PYTHON_PN}-setuptools-scm-native"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI[sha256sum] = "62b863c5ee6ced4032afe948f3c1484f375550995d3b8498145237fe28e546c2"
-
-inherit pypi python_setuptools_build_meta ptest
-
-DEPENDS += "python3-setuptools-scm-native"
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-unixadmin \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-datetime \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cbor2_5.6.2.bb b/meta-python/recipes-devtools/python/python3-cbor2_5.6.2.bb
new file mode 100644
index 0000000000..c0987a9a15
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cbor2_5.6.2.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "An implementation of RFC 7049 - Concise Binary Object Representation (CBOR)."
+DEPENDS +="python3-setuptools-scm-native"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+SRC_URI[sha256sum] = "b7513c2dea8868991fad7ef8899890ebcf8b199b9b4461c3c11d7ad3aef4820d"
+
+inherit pypi python_setuptools_build_meta ptest
+
+DEPENDS += "python3-setuptools-scm-native"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-hypothesis \
+ python3-pytest \
+ python3-unittest-automake-output \
+ python3-unixadmin \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-datetime \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb b/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb
index d6d96965eb..3d9194c219 100644
--- a/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb
+++ b/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb
@@ -8,3 +8,5 @@ SRC_URI[sha256sum] = "c428b6336545053c2589f6caf24ea32276c6664cb86db817e03a94c60a
inherit pypi setuptools3
BBCLASSEXTEND = "native nativesdk"
+
+DEPENDS += "python3-cython-native"
diff --git a/meta-python/recipes-devtools/python/python3-cerberus_1.3.4.bb b/meta-python/recipes-devtools/python/python3-cerberus_1.3.4.bb
deleted file mode 100644
index f9f8853495..0000000000
--- a/meta-python/recipes-devtools/python/python3-cerberus_1.3.4.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Lightweight, extensible schema and data validation tool for Python dictionaries."
-HOMEPAGE = "http://docs.python-cerberus.org/"
-SECTION = "devel/python"
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=48f8e9432d0dac5e0e7a18211a0bacdb"
-
-RDEPENDS:${PN} += "python3-setuptools"
-
-# The PyPI package uses a capital letter so we have to specify this explicitly
-PYPI_PACKAGE = "Cerberus"
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "d1b21b3954b2498d9a79edf16b3170a3ac1021df88d197dc2ce5928ba519237c"
diff --git a/meta-python/recipes-devtools/python/python3-cerberus_1.3.5.bb b/meta-python/recipes-devtools/python/python3-cerberus_1.3.5.bb
new file mode 100644
index 0000000000..eb3453aeef
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cerberus_1.3.5.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Lightweight, extensible schema and data validation tool for Python dictionaries."
+HOMEPAGE = "http://docs.python-cerberus.org/"
+SECTION = "devel/python"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=48f8e9432d0dac5e0e7a18211a0bacdb"
+
+# The PyPI package uses a capital letter so we have to specify this explicitly
+PYPI_PACKAGE = "Cerberus"
+inherit pypi python_poetry_core
+
+SRC_URI[sha256sum] = "81011e10266ef71b6ec6d50e60171258a5b134d69f8fb387d16e4936d0d47642"
diff --git a/meta-python/recipes-devtools/python/python3-charset-normalizer_2.1.1.bb b/meta-python/recipes-devtools/python/python3-charset-normalizer_2.1.1.bb
deleted file mode 100644
index 1ab72e53d1..0000000000
--- a/meta-python/recipes-devtools/python/python3-charset-normalizer_2.1.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
-HOMEPAGE = "https://github.com/ousret/charset_normalizer"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0974a390827087287db39928f7c524b5"
-
-SRC_URI[sha256sum] = "5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-json \
-"
diff --git a/meta-python/recipes-devtools/python/python3-charset-normalizer_3.3.2.bb b/meta-python/recipes-devtools/python/python3-charset-normalizer_3.3.2.bb
new file mode 100644
index 0000000000..ca9a88ccfb
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-charset-normalizer_3.3.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
+HOMEPAGE = "https://github.com/ousret/charset_normalizer"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0974a390827087287db39928f7c524b5"
+
+SRC_URI[sha256sum] = "f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-core \
+ python3-logging \
+ python3-codecs \
+ python3-json \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cheetah_3.2.6.bb b/meta-python/recipes-devtools/python/python3-cheetah_3.2.6.bb
deleted file mode 100644
index 802eab2a07..0000000000
--- a/meta-python/recipes-devtools/python/python3-cheetah_3.2.6.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Python template engine and code generation tool"
-HOMEPAGE = "https://cheetahtemplate.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=15e13a4ed0e5880e3e55ec88b0921181"
-
-PYPI_PACKAGE = "Cheetah3"
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "python3-pickle python3-pprint"
-RDEPENDS:${PN}:class-native = ""
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI[sha256sum] = "f1c2b693cdcac2ded2823d363f8459ae785261e61c128d68464c8781dba0466b"
diff --git a/meta-python/recipes-devtools/python/python3-cheetah_3.2.6.post1.bb b/meta-python/recipes-devtools/python/python3-cheetah_3.2.6.post1.bb
new file mode 100644
index 0000000000..448772960b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cheetah_3.2.6.post1.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Python template engine and code generation tool"
+HOMEPAGE = "https://cheetahtemplate.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=15e13a4ed0e5880e3e55ec88b0921181"
+
+PYPI_PACKAGE = "Cheetah3"
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "python3-pickle python3-pprint"
+RDEPENDS:${PN}:class-native = ""
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI[sha256sum] = "58b5d84e5fbff6cf8e117414b3ea49ef51654c02ee887d155113c5b91d761967"
diff --git a/meta-python/recipes-devtools/python/python3-classes_0.4.1.bb b/meta-python/recipes-devtools/python/python3-classes_0.4.1.bb
new file mode 100644
index 0000000000..d9240e1383
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-classes_0.4.1.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Smart, pythonic, ad-hoc, typed polymorphism for Python."
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=155fbcc756c8ae5265d252d23e20908f"
+
+SRC_URI[sha256sum] = "4de4fdd6c5c38607bbd8ad76703d7cc4dbe007cfa78e8ef1f62fc6ac55303e23"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-typing-extensions"
diff --git a/meta-python/recipes-devtools/python/python3-click-repl_0.2.0.bb b/meta-python/recipes-devtools/python/python3-click-repl_0.2.0.bb
deleted file mode 100644
index cf5ba988b4..0000000000
--- a/meta-python/recipes-devtools/python/python3-click-repl_0.2.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "REPL plugin for Click"
-HOMEPAGE = "https://github.com/untitaker/click-repl"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fee2943fdd4d8afbac9ccc1c8ac137d5"
-
-SRC_URI[sha256sum] = "cd12f68d745bf6151210790540b4cb064c7b13e571bc64b6957d98d120dacfd8"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "${PYTHON_PN}-click"
diff --git a/meta-python/recipes-devtools/python/python3-click-repl_0.3.0.bb b/meta-python/recipes-devtools/python/python3-click-repl_0.3.0.bb
new file mode 100644
index 0000000000..b773ed6b8b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-click-repl_0.3.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "REPL plugin for Click"
+HOMEPAGE = "https://github.com/untitaker/click-repl"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=580facc4832cac548fad94845542da44"
+
+SRC_URI[sha256sum] = "17849c23dba3d667247dc4defe1757fff98694e90fe37474f3feebb69ced26a9"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "python3-click python3-prompt-toolkit"
diff --git a/meta-python/recipes-devtools/python/python3-click-spinner/0001-Update-Versioneer-to-0.22.patch b/meta-python/recipes-devtools/python/python3-click-spinner/0001-Update-Versioneer-to-0.22.patch
new file mode 100644
index 0000000000..4edb5da9ef
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-click-spinner/0001-Update-Versioneer-to-0.22.patch
@@ -0,0 +1,2489 @@
+From 739f9da6bf0d2d9f0de624aee2ec71c65f62c275 Mon Sep 17 00:00:00 2001
+From: Hugo van Kemenade <hugovk@users.noreply.github.com>
+Date: Tue, 10 May 2022 18:17:50 +0300
+Subject: [PATCH] Update Versioneer to 0.22
+
+Upstream-Status: Backport [https://github.com/click-contrib/click-spinner/commit/5622ab0a0b4296dc8f10863f268ed98dccf4b642]
+
+Signed-off-by: Ny Antra Ranaivoarison <nyantra.ranaivoarison@smile.fr>
+---
+ click_spinner/__init__.py | 5 +-
+ click_spinner/_version.py | 665 +++++++++++++++++++++-
+ versioneer.py | 1128 ++++++++++++++++++++++++-------------
+ 3 files changed, 1400 insertions(+), 398 deletions(-)
+
+diff --git a/click_spinner/__init__.py b/click_spinner/__init__.py
+index aeec089..8e9f4f9 100644
+--- a/click_spinner/__init__.py
++++ b/click_spinner/__init__.py
+@@ -77,6 +77,5 @@ def spinner(beep=False, disable=False, force=False, stream=sys.stdout):
+ return Spinner(beep, disable, force, stream)
+
+
+-from ._version import get_versions
+-__version__ = get_versions()['version']
+-del get_versions
++from . import _version
++__version__ = _version.get_versions()['version']
+diff --git a/click_spinner/_version.py b/click_spinner/_version.py
+index 5ae340e..d44565d 100644
+--- a/click_spinner/_version.py
++++ b/click_spinner/_version.py
+@@ -1,21 +1,658 @@
+
+-# This file was generated by 'versioneer.py' (0.16) from
+-# revision-control system data, or from the parent directory name of an
+-# unpacked source archive. Distribution tarballs contain a pre-generated copy
+-# of this file.
++# This file helps to compute a version number in source trees obtained from
++# git-archive tarball (such as those provided by githubs download-from-tag
++# feature). Distribution tarballs (built by setup.py sdist) and build
++# directories (produced by setup.py build) will contain a much shorter file
++# that just contains the computed version number.
+
+-import json
++# This file is released into the public domain. Generated by
++# versioneer-0.22 (https://github.com/python-versioneer/python-versioneer)
++
++"""Git implementation of _version.py."""
++
++import errno
++import os
++import re
++import subprocess
+ import sys
++from typing import Callable, Dict
++import functools
++
++
++def get_keywords():
++ """Get the keywords needed to look up the version information."""
++ # these strings will be replaced by git during git-archive.
++ # setup.py/versioneer.py will grep for the variable names, so they must
++ # each be defined on a line of their own. _version.py will just call
++ # get_keywords().
++ git_refnames = "$Format:%d$"
++ git_full = "$Format:%H$"
++ git_date = "$Format:%ci$"
++ keywords = {"refnames": git_refnames, "full": git_full, "date": git_date}
++ return keywords
++
++
++class VersioneerConfig:
++ """Container for Versioneer configuration parameters."""
++
++
++def get_config():
++ """Create, populate and return the VersioneerConfig() object."""
++ # these strings are filled in when 'setup.py versioneer' creates
++ # _version.py
++ cfg = VersioneerConfig()
++ cfg.VCS = "git"
++ cfg.style = "pep440"
++ cfg.tag_prefix = "v"
++ cfg.parentdir_prefix = "click-spinner-"
++ cfg.versionfile_source = "click_spinner/_version.py"
++ cfg.verbose = False
++ return cfg
++
++
++class NotThisMethod(Exception):
++ """Exception raised if a method is not valid for the current scenario."""
++
++
++LONG_VERSION_PY: Dict[str, str] = {}
++HANDLERS: Dict[str, Dict[str, Callable]] = {}
++
++
++def register_vcs_handler(vcs, method): # decorator
++ """Create decorator to mark a method as the handler of a VCS."""
++ def decorate(f):
++ """Store f in HANDLERS[vcs][method]."""
++ if vcs not in HANDLERS:
++ HANDLERS[vcs] = {}
++ HANDLERS[vcs][method] = f
++ return f
++ return decorate
++
++
++def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False,
++ env=None):
++ """Call the given command(s)."""
++ assert isinstance(commands, list)
++ process = None
++
++ popen_kwargs = {}
++ if sys.platform == "win32":
++ # This hides the console window if pythonw.exe is used
++ startupinfo = subprocess.STARTUPINFO()
++ startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
++ popen_kwargs["startupinfo"] = startupinfo
++
++ for command in commands:
++ try:
++ dispcmd = str([command] + args)
++ # remember shell=False, so use git.cmd on windows, not just git
++ process = subprocess.Popen([command] + args, cwd=cwd, env=env,
++ stdout=subprocess.PIPE,
++ stderr=(subprocess.PIPE if hide_stderr
++ else None), **popen_kwargs)
++ break
++ except OSError:
++ e = sys.exc_info()[1]
++ if e.errno == errno.ENOENT:
++ continue
++ if verbose:
++ print("unable to run %s" % dispcmd)
++ print(e)
++ return None, None
++ else:
++ if verbose:
++ print("unable to find command, tried %s" % (commands,))
++ return None, None
++ stdout = process.communicate()[0].strip().decode()
++ if process.returncode != 0:
++ if verbose:
++ print("unable to run %s (error)" % dispcmd)
++ print("stdout was %s" % stdout)
++ return None, process.returncode
++ return stdout, process.returncode
++
++
++def versions_from_parentdir(parentdir_prefix, root, verbose):
++ """Try to determine the version from the parent directory name.
++
++ Source tarballs conventionally unpack into a directory that includes both
++ the project name and a version string. We will also support searching up
++ two directory levels for an appropriately named parent directory
++ """
++ rootdirs = []
++
++ for _ in range(3):
++ dirname = os.path.basename(root)
++ if dirname.startswith(parentdir_prefix):
++ return {"version": dirname[len(parentdir_prefix):],
++ "full-revisionid": None,
++ "dirty": False, "error": None, "date": None}
++ rootdirs.append(root)
++ root = os.path.dirname(root) # up a level
++
++ if verbose:
++ print("Tried directories %s but none started with prefix %s" %
++ (str(rootdirs), parentdir_prefix))
++ raise NotThisMethod("rootdir doesn't start with parentdir_prefix")
++
++
++@register_vcs_handler("git", "get_keywords")
++def git_get_keywords(versionfile_abs):
++ """Extract version information from the given file."""
++ # the code embedded in _version.py can just fetch the value of these
++ # keywords. When used from setup.py, we don't want to import _version.py,
++ # so we do it with a regexp instead. This function is not used from
++ # _version.py.
++ keywords = {}
++ try:
++ with open(versionfile_abs, "r") as fobj:
++ for line in fobj:
++ if line.strip().startswith("git_refnames ="):
++ mo = re.search(r'=\s*"(.*)"', line)
++ if mo:
++ keywords["refnames"] = mo.group(1)
++ if line.strip().startswith("git_full ="):
++ mo = re.search(r'=\s*"(.*)"', line)
++ if mo:
++ keywords["full"] = mo.group(1)
++ if line.strip().startswith("git_date ="):
++ mo = re.search(r'=\s*"(.*)"', line)
++ if mo:
++ keywords["date"] = mo.group(1)
++ except OSError:
++ pass
++ return keywords
++
++
++@register_vcs_handler("git", "keywords")
++def git_versions_from_keywords(keywords, tag_prefix, verbose):
++ """Get version information from git keywords."""
++ if "refnames" not in keywords:
++ raise NotThisMethod("Short version file found")
++ date = keywords.get("date")
++ if date is not None:
++ # Use only the last line. Previous lines may contain GPG signature
++ # information.
++ date = date.splitlines()[-1]
++
++ # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant
++ # datestamp. However we prefer "%ci" (which expands to an "ISO-8601
++ # -like" string, which we must then edit to make compliant), because
++ # it's been around since git-1.5.3, and it's too difficult to
++ # discover which version we're using, or to work around using an
++ # older one.
++ date = date.strip().replace(" ", "T", 1).replace(" ", "", 1)
++ refnames = keywords["refnames"].strip()
++ if refnames.startswith("$Format"):
++ if verbose:
++ print("keywords are unexpanded, not using")
++ raise NotThisMethod("unexpanded keywords, not a git-archive tarball")
++ refs = {r.strip() for r in refnames.strip("()").split(",")}
++ # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of
++ # just "foo-1.0". If we see a "tag: " prefix, prefer those.
++ TAG = "tag: "
++ tags = {r[len(TAG):] for r in refs if r.startswith(TAG)}
++ if not tags:
++ # Either we're using git < 1.8.3, or there really are no tags. We use
++ # a heuristic: assume all version tags have a digit. The old git %d
++ # expansion behaves like git log --decorate=short and strips out the
++ # refs/heads/ and refs/tags/ prefixes that would let us distinguish
++ # between branches and tags. By ignoring refnames without digits, we
++ # filter out many common branch names like "release" and
++ # "stabilization", as well as "HEAD" and "master".
++ tags = {r for r in refs if re.search(r'\d', r)}
++ if verbose:
++ print("discarding '%s', no digits" % ",".join(refs - tags))
++ if verbose:
++ print("likely tags: %s" % ",".join(sorted(tags)))
++ for ref in sorted(tags):
++ # sorting will prefer e.g. "2.0" over "2.0rc1"
++ if ref.startswith(tag_prefix):
++ r = ref[len(tag_prefix):]
++ # Filter out refs that exactly match prefix or that don't start
++ # with a number once the prefix is stripped (mostly a concern
++ # when prefix is '')
++ if not re.match(r'\d', r):
++ continue
++ if verbose:
++ print("picking %s" % r)
++ return {"version": r,
++ "full-revisionid": keywords["full"].strip(),
++ "dirty": False, "error": None,
++ "date": date}
++ # no suitable tags, so version is "0+unknown", but full hex is still there
++ if verbose:
++ print("no suitable tags, using unknown + full revision id")
++ return {"version": "0+unknown",
++ "full-revisionid": keywords["full"].strip(),
++ "dirty": False, "error": "no suitable tags", "date": None}
++
++
++@register_vcs_handler("git", "pieces_from_vcs")
++def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command):
++ """Get version from 'git describe' in the root of the source tree.
++
++ This only gets called if the git-archive 'subst' keywords were *not*
++ expanded, and _version.py hasn't already been rewritten with a short
++ version string, meaning we're inside a checked out source tree.
++ """
++ GITS = ["git"]
++ if sys.platform == "win32":
++ GITS = ["git.cmd", "git.exe"]
++
++ # GIT_DIR can interfere with correct operation of Versioneer.
++ # It may be intended to be passed to the Versioneer-versioned project,
++ # but that should not change where we get our version from.
++ env = os.environ.copy()
++ env.pop("GIT_DIR", None)
++ runner = functools.partial(runner, env=env)
++
++ _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root,
++ hide_stderr=True)
++ if rc != 0:
++ if verbose:
++ print("Directory %s not under git control" % root)
++ raise NotThisMethod("'git rev-parse --git-dir' returned error")
++
++ MATCH_ARGS = ["--match", "%s*" % tag_prefix] if tag_prefix else []
++
++ # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty]
++ # if there isn't one, this yields HEX[-dirty] (no NUM)
++ describe_out, rc = runner(GITS, ["describe", "--tags", "--dirty",
++ "--always", "--long", *MATCH_ARGS],
++ cwd=root)
++ # --long was added in git-1.5.5
++ if describe_out is None:
++ raise NotThisMethod("'git describe' failed")
++ describe_out = describe_out.strip()
++ full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root)
++ if full_out is None:
++ raise NotThisMethod("'git rev-parse' failed")
++ full_out = full_out.strip()
++
++ pieces = {}
++ pieces["long"] = full_out
++ pieces["short"] = full_out[:7] # maybe improved later
++ pieces["error"] = None
++
++ branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"],
++ cwd=root)
++ # --abbrev-ref was added in git-1.6.3
++ if rc != 0 or branch_name is None:
++ raise NotThisMethod("'git rev-parse --abbrev-ref' returned error")
++ branch_name = branch_name.strip()
++
++ if branch_name == "HEAD":
++ # If we aren't exactly on a branch, pick a branch which represents
++ # the current commit. If all else fails, we are on a branchless
++ # commit.
++ branches, rc = runner(GITS, ["branch", "--contains"], cwd=root)
++ # --contains was added in git-1.5.4
++ if rc != 0 or branches is None:
++ raise NotThisMethod("'git branch --contains' returned error")
++ branches = branches.split("\n")
++
++ # Remove the first line if we're running detached
++ if "(" in branches[0]:
++ branches.pop(0)
++
++ # Strip off the leading "* " from the list of branches.
++ branches = [branch[2:] for branch in branches]
++ if "master" in branches:
++ branch_name = "master"
++ elif not branches:
++ branch_name = None
++ else:
++ # Pick the first branch that is returned. Good or bad.
++ branch_name = branches[0]
++
++ pieces["branch"] = branch_name
++
++ # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty]
++ # TAG might have hyphens.
++ git_describe = describe_out
++
++ # look for -dirty suffix
++ dirty = git_describe.endswith("-dirty")
++ pieces["dirty"] = dirty
++ if dirty:
++ git_describe = git_describe[:git_describe.rindex("-dirty")]
++
++ # now we have TAG-NUM-gHEX or HEX
++
++ if "-" in git_describe:
++ # TAG-NUM-gHEX
++ mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe)
++ if not mo:
++ # unparsable. Maybe git-describe is misbehaving?
++ pieces["error"] = ("unable to parse git-describe output: '%s'"
++ % describe_out)
++ return pieces
++
++ # tag
++ full_tag = mo.group(1)
++ if not full_tag.startswith(tag_prefix):
++ if verbose:
++ fmt = "tag '%s' doesn't start with prefix '%s'"
++ print(fmt % (full_tag, tag_prefix))
++ pieces["error"] = ("tag '%s' doesn't start with prefix '%s'"
++ % (full_tag, tag_prefix))
++ return pieces
++ pieces["closest-tag"] = full_tag[len(tag_prefix):]
++
++ # distance: number of commits since tag
++ pieces["distance"] = int(mo.group(2))
++
++ # commit: short hex revision ID
++ pieces["short"] = mo.group(3)
++
++ else:
++ # HEX: no tags
++ pieces["closest-tag"] = None
++ count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root)
++ pieces["distance"] = int(count_out) # total number of commits
+
+-version_json = '''
+-{
+- "dirty": false,
+- "error": null,
+- "full-revisionid": "7cadb31e3e257c64a47a67255547f0a746e1a465",
+- "version": "0.1.10"
+-}
+-''' # END VERSION_JSON
++ # commit date: see ISO-8601 comment in git_versions_from_keywords()
++ date = runner(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip()
++ # Use only the last line. Previous lines may contain GPG signature
++ # information.
++ date = date.splitlines()[-1]
++ pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1)
++
++ return pieces
++
++
++def plus_or_dot(pieces):
++ """Return a + if we don't already have one, else return a ."""
++ if "+" in pieces.get("closest-tag", ""):
++ return "."
++ return "+"
++
++
++def render_pep440(pieces):
++ """Build up version string, with post-release "local version identifier".
++
++ Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you
++ get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty
++
++ Exceptions:
++ 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty]
++ """
++ if pieces["closest-tag"]:
++ rendered = pieces["closest-tag"]
++ if pieces["distance"] or pieces["dirty"]:
++ rendered += plus_or_dot(pieces)
++ rendered += "%d.g%s" % (pieces["distance"], pieces["short"])
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ else:
++ # exception #1
++ rendered = "0+untagged.%d.g%s" % (pieces["distance"],
++ pieces["short"])
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ return rendered
++
++
++def render_pep440_branch(pieces):
++ """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] .
++
++ The ".dev0" means not master branch. Note that .dev0 sorts backwards
++ (a feature branch will appear "older" than the master branch).
++
++ Exceptions:
++ 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty]
++ """
++ if pieces["closest-tag"]:
++ rendered = pieces["closest-tag"]
++ if pieces["distance"] or pieces["dirty"]:
++ if pieces["branch"] != "master":
++ rendered += ".dev0"
++ rendered += plus_or_dot(pieces)
++ rendered += "%d.g%s" % (pieces["distance"], pieces["short"])
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ else:
++ # exception #1
++ rendered = "0"
++ if pieces["branch"] != "master":
++ rendered += ".dev0"
++ rendered += "+untagged.%d.g%s" % (pieces["distance"],
++ pieces["short"])
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ return rendered
++
++
++def pep440_split_post(ver):
++ """Split pep440 version string at the post-release segment.
++
++ Returns the release segments before the post-release and the
++ post-release version number (or -1 if no post-release segment is present).
++ """
++ vc = str.split(ver, ".post")
++ return vc[0], int(vc[1] or 0) if len(vc) == 2 else None
++
++
++def render_pep440_pre(pieces):
++ """TAG[.postN.devDISTANCE] -- No -dirty.
++
++ Exceptions:
++ 1: no tags. 0.post0.devDISTANCE
++ """
++ if pieces["closest-tag"]:
++ if pieces["distance"]:
++ # update the post release segment
++ tag_version, post_version = pep440_split_post(pieces["closest-tag"])
++ rendered = tag_version
++ if post_version is not None:
++ rendered += ".post%d.dev%d" % (post_version+1, pieces["distance"])
++ else:
++ rendered += ".post0.dev%d" % (pieces["distance"])
++ else:
++ # no commits, use the tag as the version
++ rendered = pieces["closest-tag"]
++ else:
++ # exception #1
++ rendered = "0.post0.dev%d" % pieces["distance"]
++ return rendered
++
++
++def render_pep440_post(pieces):
++ """TAG[.postDISTANCE[.dev0]+gHEX] .
++
++ The ".dev0" means dirty. Note that .dev0 sorts backwards
++ (a dirty tree will appear "older" than the corresponding clean one),
++ but you shouldn't be releasing software with -dirty anyways.
++
++ Exceptions:
++ 1: no tags. 0.postDISTANCE[.dev0]
++ """
++ if pieces["closest-tag"]:
++ rendered = pieces["closest-tag"]
++ if pieces["distance"] or pieces["dirty"]:
++ rendered += ".post%d" % pieces["distance"]
++ if pieces["dirty"]:
++ rendered += ".dev0"
++ rendered += plus_or_dot(pieces)
++ rendered += "g%s" % pieces["short"]
++ else:
++ # exception #1
++ rendered = "0.post%d" % pieces["distance"]
++ if pieces["dirty"]:
++ rendered += ".dev0"
++ rendered += "+g%s" % pieces["short"]
++ return rendered
++
++
++def render_pep440_post_branch(pieces):
++ """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] .
++
++ The ".dev0" means not master branch.
++
++ Exceptions:
++ 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty]
++ """
++ if pieces["closest-tag"]:
++ rendered = pieces["closest-tag"]
++ if pieces["distance"] or pieces["dirty"]:
++ rendered += ".post%d" % pieces["distance"]
++ if pieces["branch"] != "master":
++ rendered += ".dev0"
++ rendered += plus_or_dot(pieces)
++ rendered += "g%s" % pieces["short"]
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ else:
++ # exception #1
++ rendered = "0.post%d" % pieces["distance"]
++ if pieces["branch"] != "master":
++ rendered += ".dev0"
++ rendered += "+g%s" % pieces["short"]
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ return rendered
++
++
++def render_pep440_old(pieces):
++ """TAG[.postDISTANCE[.dev0]] .
++
++ The ".dev0" means dirty.
++
++ Exceptions:
++ 1: no tags. 0.postDISTANCE[.dev0]
++ """
++ if pieces["closest-tag"]:
++ rendered = pieces["closest-tag"]
++ if pieces["distance"] or pieces["dirty"]:
++ rendered += ".post%d" % pieces["distance"]
++ if pieces["dirty"]:
++ rendered += ".dev0"
++ else:
++ # exception #1
++ rendered = "0.post%d" % pieces["distance"]
++ if pieces["dirty"]:
++ rendered += ".dev0"
++ return rendered
++
++
++def render_git_describe(pieces):
++ """TAG[-DISTANCE-gHEX][-dirty].
++
++ Like 'git describe --tags --dirty --always'.
++
++ Exceptions:
++ 1: no tags. HEX[-dirty] (note: no 'g' prefix)
++ """
++ if pieces["closest-tag"]:
++ rendered = pieces["closest-tag"]
++ if pieces["distance"]:
++ rendered += "-%d-g%s" % (pieces["distance"], pieces["short"])
++ else:
++ # exception #1
++ rendered = pieces["short"]
++ if pieces["dirty"]:
++ rendered += "-dirty"
++ return rendered
++
++
++def render_git_describe_long(pieces):
++ """TAG-DISTANCE-gHEX[-dirty].
++
++ Like 'git describe --tags --dirty --always -long'.
++ The distance/hash is unconditional.
++
++ Exceptions:
++ 1: no tags. HEX[-dirty] (note: no 'g' prefix)
++ """
++ if pieces["closest-tag"]:
++ rendered = pieces["closest-tag"]
++ rendered += "-%d-g%s" % (pieces["distance"], pieces["short"])
++ else:
++ # exception #1
++ rendered = pieces["short"]
++ if pieces["dirty"]:
++ rendered += "-dirty"
++ return rendered
++
++
++def render(pieces, style):
++ """Render the given version pieces into the requested style."""
++ if pieces["error"]:
++ return {"version": "unknown",
++ "full-revisionid": pieces.get("long"),
++ "dirty": None,
++ "error": pieces["error"],
++ "date": None}
++
++ if not style or style == "default":
++ style = "pep440" # the default
++
++ if style == "pep440":
++ rendered = render_pep440(pieces)
++ elif style == "pep440-branch":
++ rendered = render_pep440_branch(pieces)
++ elif style == "pep440-pre":
++ rendered = render_pep440_pre(pieces)
++ elif style == "pep440-post":
++ rendered = render_pep440_post(pieces)
++ elif style == "pep440-post-branch":
++ rendered = render_pep440_post_branch(pieces)
++ elif style == "pep440-old":
++ rendered = render_pep440_old(pieces)
++ elif style == "git-describe":
++ rendered = render_git_describe(pieces)
++ elif style == "git-describe-long":
++ rendered = render_git_describe_long(pieces)
++ else:
++ raise ValueError("unknown style '%s'" % style)
++
++ return {"version": rendered, "full-revisionid": pieces["long"],
++ "dirty": pieces["dirty"], "error": None,
++ "date": pieces.get("date")}
+
+
+ def get_versions():
+- return json.loads(version_json)
++ """Get version information or return default if unable to do so."""
++ # I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have
++ # __file__, we can work backwards from there to the root. Some
++ # py2exe/bbfreeze/non-CPython implementations don't do __file__, in which
++ # case we can only use expanded keywords.
++
++ cfg = get_config()
++ verbose = cfg.verbose
++
++ try:
++ return git_versions_from_keywords(get_keywords(), cfg.tag_prefix,
++ verbose)
++ except NotThisMethod:
++ pass
++
++ try:
++ root = os.path.realpath(__file__)
++ # versionfile_source is the relative path from the top of the source
++ # tree (where the .git directory might live) to this file. Invert
++ # this to find the root from __file__.
++ for _ in cfg.versionfile_source.split('/'):
++ root = os.path.dirname(root)
++ except NameError:
++ return {"version": "0+unknown", "full-revisionid": None,
++ "dirty": None,
++ "error": "unable to find root of source tree",
++ "date": None}
++
++ try:
++ pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose)
++ return render(pieces, cfg.style)
++ except NotThisMethod:
++ pass
++
++ try:
++ if cfg.parentdir_prefix:
++ return versions_from_parentdir(cfg.parentdir_prefix, root, verbose)
++ except NotThisMethod:
++ pass
++
++ return {"version": "0+unknown", "full-revisionid": None,
++ "dirty": None,
++ "error": "unable to compute version", "date": None}
+diff --git a/versioneer.py b/versioneer.py
+index 7ed2a21..a142bf5 100644
+--- a/versioneer.py
++++ b/versioneer.py
+@@ -1,5 +1,5 @@
+
+-# Version: 0.16
++# Version: 0.22
+
+ """The Versioneer - like a rocketeer, but for versions.
+
+@@ -7,18 +7,14 @@ The Versioneer
+ ==============
+
+ * like a rocketeer, but for versions!
+-* https://github.com/warner/python-versioneer
++* https://github.com/python-versioneer/python-versioneer
+ * Brian Warner
+ * License: Public Domain
+-* Compatible With: python2.6, 2.7, 3.3, 3.4, 3.5, and pypy
+-* [![Latest Version]
+-(https://pypip.in/version/versioneer/badge.svg?style=flat)
+-](https://pypi.python.org/pypi/versioneer/)
+-* [![Build Status]
+-(https://travis-ci.org/warner/python-versioneer.png?branch=master)
+-](https://travis-ci.org/warner/python-versioneer)
+-
+-This is a tool for managing a recorded version number in distutils-based
++* Compatible with: Python 3.6, 3.7, 3.8, 3.9, 3.10 and pypy3
++* [![Latest Version][pypi-image]][pypi-url]
++* [![Build Status][travis-image]][travis-url]
++
++This is a tool for managing a recorded version number in distutils/setuptools-based
+ python projects. The goal is to remove the tedious and error-prone "update
+ the embedded version string" step from your release process. Making a new
+ release should be as easy as recording a new tag in your version-control
+@@ -27,9 +23,10 @@ system, and maybe making new tarballs.
+
+ ## Quick Install
+
+-* `pip install versioneer` to somewhere to your $PATH
+-* add a `[versioneer]` section to your setup.cfg (see below)
++* `pip install versioneer` to somewhere in your $PATH
++* add a `[versioneer]` section to your setup.cfg (see [Install](INSTALL.md))
+ * run `versioneer install` in your source tree, commit the results
++* Verify version information with `python setup.py version`
+
+ ## Version Identifiers
+
+@@ -61,7 +58,7 @@ version 1.3). Many VCS systems can report a description that captures this,
+ for example `git describe --tags --dirty --always` reports things like
+ "0.7-1-g574ab98-dirty" to indicate that the checkout is one revision past the
+ 0.7 tag, has a unique revision id of "574ab98", and is "dirty" (it has
+-uncommitted changes.
++uncommitted changes).
+
+ The version identifier is used for multiple purposes:
+
+@@ -88,127 +85,7 @@ the generated version data.
+
+ ## Installation
+
+-First, decide on values for the following configuration variables:
+-
+-* `VCS`: the version control system you use. Currently accepts "git".
+-
+-* `style`: the style of version string to be produced. See "Styles" below for
+- details. Defaults to "pep440", which looks like
+- `TAG[+DISTANCE.gSHORTHASH[.dirty]]`.
+-
+-* `versionfile_source`:
+-
+- A project-relative pathname into which the generated version strings should
+- be written. This is usually a `_version.py` next to your project's main
+- `__init__.py` file, so it can be imported at runtime. If your project uses
+- `src/myproject/__init__.py`, this should be `src/myproject/_version.py`.
+- This file should be checked in to your VCS as usual: the copy created below
+- by `setup.py setup_versioneer` will include code that parses expanded VCS
+- keywords in generated tarballs. The 'build' and 'sdist' commands will
+- replace it with a copy that has just the calculated version string.
+-
+- This must be set even if your project does not have any modules (and will
+- therefore never import `_version.py`), since "setup.py sdist" -based trees
+- still need somewhere to record the pre-calculated version strings. Anywhere
+- in the source tree should do. If there is a `__init__.py` next to your
+- `_version.py`, the `setup.py setup_versioneer` command (described below)
+- will append some `__version__`-setting assignments, if they aren't already
+- present.
+-
+-* `versionfile_build`:
+-
+- Like `versionfile_source`, but relative to the build directory instead of
+- the source directory. These will differ when your setup.py uses
+- 'package_dir='. If you have `package_dir={'myproject': 'src/myproject'}`,
+- then you will probably have `versionfile_build='myproject/_version.py'` and
+- `versionfile_source='src/myproject/_version.py'`.
+-
+- If this is set to None, then `setup.py build` will not attempt to rewrite
+- any `_version.py` in the built tree. If your project does not have any
+- libraries (e.g. if it only builds a script), then you should use
+- `versionfile_build = None`. To actually use the computed version string,
+- your `setup.py` will need to override `distutils.command.build_scripts`
+- with a subclass that explicitly inserts a copy of
+- `versioneer.get_version()` into your script file. See
+- `test/demoapp-script-only/setup.py` for an example.
+-
+-* `tag_prefix`:
+-
+- a string, like 'PROJECTNAME-', which appears at the start of all VCS tags.
+- If your tags look like 'myproject-1.2.0', then you should use
+- tag_prefix='myproject-'. If you use unprefixed tags like '1.2.0', this
+- should be an empty string, using either `tag_prefix=` or `tag_prefix=''`.
+-
+-* `parentdir_prefix`:
+-
+- a optional string, frequently the same as tag_prefix, which appears at the
+- start of all unpacked tarball filenames. If your tarball unpacks into
+- 'myproject-1.2.0', this should be 'myproject-'. To disable this feature,
+- just omit the field from your `setup.cfg`.
+-
+-This tool provides one script, named `versioneer`. That script has one mode,
+-"install", which writes a copy of `versioneer.py` into the current directory
+-and runs `versioneer.py setup` to finish the installation.
+-
+-To versioneer-enable your project:
+-
+-* 1: Modify your `setup.cfg`, adding a section named `[versioneer]` and
+- populating it with the configuration values you decided earlier (note that
+- the option names are not case-sensitive):
+-
+- ````
+- [versioneer]
+- VCS = git
+- style = pep440
+- versionfile_source = src/myproject/_version.py
+- versionfile_build = myproject/_version.py
+- tag_prefix =
+- parentdir_prefix = myproject-
+- ````
+-
+-* 2: Run `versioneer install`. This will do the following:
+-
+- * copy `versioneer.py` into the top of your source tree
+- * create `_version.py` in the right place (`versionfile_source`)
+- * modify your `__init__.py` (if one exists next to `_version.py`) to define
+- `__version__` (by calling a function from `_version.py`)
+- * modify your `MANIFEST.in` to include both `versioneer.py` and the
+- generated `_version.py` in sdist tarballs
+-
+- `versioneer install` will complain about any problems it finds with your
+- `setup.py` or `setup.cfg`. Run it multiple times until you have fixed all
+- the problems.
+-
+-* 3: add a `import versioneer` to your setup.py, and add the following
+- arguments to the setup() call:
+-
+- version=versioneer.get_version(),
+- cmdclass=versioneer.get_cmdclass(),
+-
+-* 4: commit these changes to your VCS. To make sure you won't forget,
+- `versioneer install` will mark everything it touched for addition using
+- `git add`. Don't forget to add `setup.py` and `setup.cfg` too.
+-
+-## Post-Installation Usage
+-
+-Once established, all uses of your tree from a VCS checkout should get the
+-current version string. All generated tarballs should include an embedded
+-version string (so users who unpack them will not need a VCS tool installed).
+-
+-If you distribute your project through PyPI, then the release process should
+-boil down to two steps:
+-
+-* 1: git tag 1.0
+-* 2: python setup.py register sdist upload
+-
+-If you distribute it through github (i.e. users use github to generate
+-tarballs with `git archive`), the process is:
+-
+-* 1: git tag 1.0
+-* 2: git push; git push --tags
+-
+-Versioneer will report "0+untagged.NUMCOMMITS.gHASH" until your tree has at
+-least one tag in its history.
++See [INSTALL.md](./INSTALL.md) for detailed installation instructions.
+
+ ## Version-String Flavors
+
+@@ -229,6 +106,10 @@ information:
+ * `['full-revisionid']`: detailed revision identifier. For Git, this is the
+ full SHA1 commit id, e.g. "1076c978a8d3cfc70f408fe5974aa6c092c949ac".
+
++* `['date']`: Date and time of the latest `HEAD` commit. For Git, it is the
++ commit date in ISO 8601 format. This will be None if the date is not
++ available.
++
+ * `['dirty']`: a boolean, True if the tree has uncommitted changes. Note that
+ this is only accurate if run in a VCS checkout, otherwise it is likely to
+ be False or None
+@@ -267,8 +148,8 @@ that this commit is two revisions ("+2") beyond the "0.11" tag. For released
+ software (exactly equal to a known tag), the identifier will only contain the
+ stripped tag, e.g. "0.11".
+
+-Other styles are available. See details.md in the Versioneer source tree for
+-descriptions.
++Other styles are available. See [details.md](details.md) in the Versioneer
++source tree for descriptions.
+
+ ## Debugging
+
+@@ -278,51 +159,83 @@ version`, which will run the version-lookup code in a verbose mode, and will
+ display the full contents of `get_versions()` (including the `error` string,
+ which may help identify what went wrong).
+
+-## Updating Versioneer
++## Known Limitations
+
+-To upgrade your project to a new release of Versioneer, do the following:
++Some situations are known to cause problems for Versioneer. This details the
++most significant ones. More can be found on Github
++[issues page](https://github.com/python-versioneer/python-versioneer/issues).
+
+-* install the new Versioneer (`pip install -U versioneer` or equivalent)
+-* edit `setup.cfg`, if necessary, to include any new configuration settings
+- indicated by the release notes
+-* re-run `versioneer install` in your source tree, to replace
+- `SRC/_version.py`
+-* commit any changed files
++### Subprojects
++
++Versioneer has limited support for source trees in which `setup.py` is not in
++the root directory (e.g. `setup.py` and `.git/` are *not* siblings). The are
++two common reasons why `setup.py` might not be in the root:
++
++* Source trees which contain multiple subprojects, such as
++ [Buildbot](https://github.com/buildbot/buildbot), which contains both
++ "master" and "slave" subprojects, each with their own `setup.py`,
++ `setup.cfg`, and `tox.ini`. Projects like these produce multiple PyPI
++ distributions (and upload multiple independently-installable tarballs).
++* Source trees whose main purpose is to contain a C library, but which also
++ provide bindings to Python (and perhaps other languages) in subdirectories.
++
++Versioneer will look for `.git` in parent directories, and most operations
++should get the right version string. However `pip` and `setuptools` have bugs
++and implementation details which frequently cause `pip install .` from a
++subproject directory to fail to find a correct version string (so it usually
++defaults to `0+unknown`).
+
+-### Upgrading to 0.16
++`pip install --editable .` should work correctly. `setup.py install` might
++work too.
+
+-Nothing special.
++Pip-8.1.1 is known to have this problem, but hopefully it will get fixed in
++some later version.
+
+-### Upgrading to 0.15
++[Bug #38](https://github.com/python-versioneer/python-versioneer/issues/38) is tracking
++this issue. The discussion in
++[PR #61](https://github.com/python-versioneer/python-versioneer/pull/61) describes the
++issue from the Versioneer side in more detail.
++[pip PR#3176](https://github.com/pypa/pip/pull/3176) and
++[pip PR#3615](https://github.com/pypa/pip/pull/3615) contain work to improve
++pip to let Versioneer work correctly.
+
+-Starting with this version, Versioneer is configured with a `[versioneer]`
+-section in your `setup.cfg` file. Earlier versions required the `setup.py` to
+-set attributes on the `versioneer` module immediately after import. The new
+-version will refuse to run (raising an exception during import) until you
+-have provided the necessary `setup.cfg` section.
++Versioneer-0.16 and earlier only looked for a `.git` directory next to the
++`setup.cfg`, so subprojects were completely unsupported with those releases.
+
+-In addition, the Versioneer package provides an executable named
+-`versioneer`, and the installation process is driven by running `versioneer
+-install`. In 0.14 and earlier, the executable was named
+-`versioneer-installer` and was run without an argument.
++### Editable installs with setuptools <= 18.5
+
+-### Upgrading to 0.14
++`setup.py develop` and `pip install --editable .` allow you to install a
++project into a virtualenv once, then continue editing the source code (and
++test) without re-installing after every change.
+
+-0.14 changes the format of the version string. 0.13 and earlier used
+-hyphen-separated strings like "0.11-2-g1076c97-dirty". 0.14 and beyond use a
+-plus-separated "local version" section strings, with dot-separated
+-components, like "0.11+2.g1076c97". PEP440-strict tools did not like the old
+-format, but should be ok with the new one.
++"Entry-point scripts" (`setup(entry_points={"console_scripts": ..})`) are a
++convenient way to specify executable scripts that should be installed along
++with the python package.
+
+-### Upgrading from 0.11 to 0.12
++These both work as expected when using modern setuptools. When using
++setuptools-18.5 or earlier, however, certain operations will cause
++`pkg_resources.DistributionNotFound` errors when running the entrypoint
++script, which must be resolved by re-installing the package. This happens
++when the install happens with one version, then the egg_info data is
++regenerated while a different version is checked out. Many setup.py commands
++cause egg_info to be rebuilt (including `sdist`, `wheel`, and installing into
++a different virtualenv), so this can be surprising.
+
+-Nothing special.
++[Bug #83](https://github.com/python-versioneer/python-versioneer/issues/83) describes
++this one, but upgrading to a newer version of setuptools should probably
++resolve it.
+
+-### Upgrading from 0.10 to 0.11
+
+-You must add a `versioneer.VCS = "git"` to your `setup.py` before re-running
+-`setup.py setup_versioneer`. This will enable the use of additional
+-version-control systems (SVN, etc) in the future.
++## Updating Versioneer
++
++To upgrade your project to a new release of Versioneer, do the following:
++
++* install the new Versioneer (`pip install -U versioneer` or equivalent)
++* edit `setup.cfg`, if necessary, to include any new configuration settings
++ indicated by the release notes. See [UPGRADING](./UPGRADING.md) for details.
++* re-run `versioneer install` in your source tree, to replace
++ `SRC/_version.py`
++* commit any changed files
+
+ ## Future Directions
+
+@@ -337,6 +250,14 @@ installation by editing setup.py . Alternatively, it might go the other
+ direction and include code from all supported VCS systems, reducing the
+ number of intermediate scripts.
+
++## Similar projects
++
++* [setuptools_scm](https://github.com/pypa/setuptools_scm/) - a non-vendored build-time
++ dependency
++* [minver](https://github.com/jbweston/miniver) - a lightweight reimplementation of
++ versioneer
++* [versioningit](https://github.com/jwodder/versioningit) - a PEP 518-based setuptools
++ plugin
+
+ ## License
+
+@@ -346,19 +267,28 @@ Specifically, both are released under the Creative Commons "Public Domain
+ Dedication" license (CC0-1.0), as described in
+ https://creativecommons.org/publicdomain/zero/1.0/ .
+
++[pypi-image]: https://img.shields.io/pypi/v/versioneer.svg
++[pypi-url]: https://pypi.python.org/pypi/versioneer/
++[travis-image]:
++https://img.shields.io/travis/com/python-versioneer/python-versioneer.svg
++[travis-url]: https://travis-ci.com/github/python-versioneer/python-versioneer
++
+ """
++# pylint:disable=invalid-name,import-outside-toplevel,missing-function-docstring
++# pylint:disable=missing-class-docstring,too-many-branches,too-many-statements
++# pylint:disable=raise-missing-from,too-many-lines,too-many-locals,import-error
++# pylint:disable=too-few-public-methods,redefined-outer-name,consider-using-with
++# pylint:disable=attribute-defined-outside-init,too-many-arguments
+
+-from __future__ import print_function
+-try:
+- import configparser
+-except ImportError:
+- import ConfigParser as configparser
++import configparser
+ import errno
+ import json
+ import os
+ import re
+ import subprocess
+ import sys
++from typing import Callable, Dict
++import functools
+
+
+ class VersioneerConfig:
+@@ -393,10 +323,12 @@ def get_root():
+ # module-import table will cache the first one. So we can't use
+ # os.path.dirname(__file__), as that will find whichever
+ # versioneer.py was first imported, even in later projects.
+- me = os.path.realpath(os.path.abspath(__file__))
+- if os.path.splitext(me)[0] != os.path.splitext(versioneer_py)[0]:
++ my_path = os.path.realpath(os.path.abspath(__file__))
++ me_dir = os.path.normcase(os.path.splitext(my_path)[0])
++ vsr_dir = os.path.normcase(os.path.splitext(versioneer_py)[0])
++ if me_dir != vsr_dir:
+ print("Warning: build in %s is using versioneer.py from %s"
+- % (os.path.dirname(me), versioneer_py))
++ % (os.path.dirname(my_path), versioneer_py))
+ except NameError:
+ pass
+ return root
+@@ -404,85 +336,94 @@ def get_root():
+
+ def get_config_from_root(root):
+ """Read the project setup.cfg file to determine Versioneer config."""
+- # This might raise EnvironmentError (if setup.cfg is missing), or
++ # This might raise OSError (if setup.cfg is missing), or
+ # configparser.NoSectionError (if it lacks a [versioneer] section), or
+ # configparser.NoOptionError (if it lacks "VCS="). See the docstring at
+ # the top of versioneer.py for instructions on writing your setup.cfg .
+ setup_cfg = os.path.join(root, "setup.cfg")
+- parser = configparser.SafeConfigParser()
+- with open(setup_cfg, "r") as f:
+- parser.readfp(f)
++ parser = configparser.ConfigParser()
++ with open(setup_cfg, "r") as cfg_file:
++ parser.read_file(cfg_file)
+ VCS = parser.get("versioneer", "VCS") # mandatory
+
+- def get(parser, name):
+- if parser.has_option("versioneer", name):
+- return parser.get("versioneer", name)
+- return None
++ # Dict-like interface for non-mandatory entries
++ section = parser["versioneer"]
++
+ cfg = VersioneerConfig()
+ cfg.VCS = VCS
+- cfg.style = get(parser, "style") or ""
+- cfg.versionfile_source = get(parser, "versionfile_source")
+- cfg.versionfile_build = get(parser, "versionfile_build")
+- cfg.tag_prefix = get(parser, "tag_prefix")
++ cfg.style = section.get("style", "")
++ cfg.versionfile_source = section.get("versionfile_source")
++ cfg.versionfile_build = section.get("versionfile_build")
++ cfg.tag_prefix = section.get("tag_prefix")
+ if cfg.tag_prefix in ("''", '""'):
+ cfg.tag_prefix = ""
+- cfg.parentdir_prefix = get(parser, "parentdir_prefix")
+- cfg.verbose = get(parser, "verbose")
++ cfg.parentdir_prefix = section.get("parentdir_prefix")
++ cfg.verbose = section.get("verbose")
+ return cfg
+
+
+ class NotThisMethod(Exception):
+ """Exception raised if a method is not valid for the current scenario."""
+
++
+ # these dictionaries contain VCS-specific tools
+-LONG_VERSION_PY = {}
+-HANDLERS = {}
++LONG_VERSION_PY: Dict[str, str] = {}
++HANDLERS: Dict[str, Dict[str, Callable]] = {}
+
+
+ def register_vcs_handler(vcs, method): # decorator
+- """Decorator to mark a method as the handler for a particular VCS."""
++ """Create decorator to mark a method as the handler of a VCS."""
+ def decorate(f):
+ """Store f in HANDLERS[vcs][method]."""
+- if vcs not in HANDLERS:
+- HANDLERS[vcs] = {}
+- HANDLERS[vcs][method] = f
++ HANDLERS.setdefault(vcs, {})[method] = f
+ return f
+ return decorate
+
+
+-def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False):
++def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False,
++ env=None):
+ """Call the given command(s)."""
+ assert isinstance(commands, list)
+- p = None
+- for c in commands:
++ process = None
++
++ popen_kwargs = {}
++ if sys.platform == "win32":
++ # This hides the console window if pythonw.exe is used
++ startupinfo = subprocess.STARTUPINFO()
++ startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
++ popen_kwargs["startupinfo"] = startupinfo
++
++ for command in commands:
+ try:
+- dispcmd = str([c] + args)
++ dispcmd = str([command] + args)
+ # remember shell=False, so use git.cmd on windows, not just git
+- p = subprocess.Popen([c] + args, cwd=cwd, stdout=subprocess.PIPE,
+- stderr=(subprocess.PIPE if hide_stderr
+- else None))
++ process = subprocess.Popen([command] + args, cwd=cwd, env=env,
++ stdout=subprocess.PIPE,
++ stderr=(subprocess.PIPE if hide_stderr
++ else None), **popen_kwargs)
+ break
+- except EnvironmentError:
++ except OSError:
+ e = sys.exc_info()[1]
+ if e.errno == errno.ENOENT:
+ continue
+ if verbose:
+ print("unable to run %s" % dispcmd)
+ print(e)
+- return None
++ return None, None
+ else:
+ if verbose:
+ print("unable to find command, tried %s" % (commands,))
+- return None
+- stdout = p.communicate()[0].strip()
+- if sys.version_info[0] >= 3:
+- stdout = stdout.decode()
+- if p.returncode != 0:
++ return None, None
++ stdout = process.communicate()[0].strip().decode()
++ if process.returncode != 0:
+ if verbose:
+ print("unable to run %s (error)" % dispcmd)
+- return None
+- return stdout
+-LONG_VERSION_PY['git'] = '''
++ print("stdout was %s" % stdout)
++ return None, process.returncode
++ return stdout, process.returncode
++
++
++LONG_VERSION_PY['git'] = r'''
+ # This file helps to compute a version number in source trees obtained from
+ # git-archive tarball (such as those provided by githubs download-from-tag
+ # feature). Distribution tarballs (built by setup.py sdist) and build
+@@ -490,7 +431,7 @@ LONG_VERSION_PY['git'] = '''
+ # that just contains the computed version number.
+
+ # This file is released into the public domain. Generated by
+-# versioneer-0.16 (https://github.com/warner/python-versioneer)
++# versioneer-0.22 (https://github.com/python-versioneer/python-versioneer)
+
+ """Git implementation of _version.py."""
+
+@@ -499,6 +440,8 @@ import os
+ import re
+ import subprocess
+ import sys
++from typing import Callable, Dict
++import functools
+
+
+ def get_keywords():
+@@ -509,7 +452,8 @@ def get_keywords():
+ # get_keywords().
+ git_refnames = "%(DOLLAR)sFormat:%%d%(DOLLAR)s"
+ git_full = "%(DOLLAR)sFormat:%%H%(DOLLAR)s"
+- keywords = {"refnames": git_refnames, "full": git_full}
++ git_date = "%(DOLLAR)sFormat:%%ci%(DOLLAR)s"
++ keywords = {"refnames": git_refnames, "full": git_full, "date": git_date}
+ return keywords
+
+
+@@ -535,12 +479,12 @@ class NotThisMethod(Exception):
+ """Exception raised if a method is not valid for the current scenario."""
+
+
+-LONG_VERSION_PY = {}
+-HANDLERS = {}
++LONG_VERSION_PY: Dict[str, str] = {}
++HANDLERS: Dict[str, Dict[str, Callable]] = {}
+
+
+ def register_vcs_handler(vcs, method): # decorator
+- """Decorator to mark a method as the handler for a particular VCS."""
++ """Create decorator to mark a method as the handler of a VCS."""
+ def decorate(f):
+ """Store f in HANDLERS[vcs][method]."""
+ if vcs not in HANDLERS:
+@@ -550,55 +494,71 @@ def register_vcs_handler(vcs, method): # decorator
+ return decorate
+
+
+-def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False):
++def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False,
++ env=None):
+ """Call the given command(s)."""
+ assert isinstance(commands, list)
+- p = None
+- for c in commands:
++ process = None
++
++ popen_kwargs = {}
++ if sys.platform == "win32":
++ # This hides the console window if pythonw.exe is used
++ startupinfo = subprocess.STARTUPINFO()
++ startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
++ popen_kwargs["startupinfo"] = startupinfo
++
++ for command in commands:
+ try:
+- dispcmd = str([c] + args)
++ dispcmd = str([command] + args)
+ # remember shell=False, so use git.cmd on windows, not just git
+- p = subprocess.Popen([c] + args, cwd=cwd, stdout=subprocess.PIPE,
+- stderr=(subprocess.PIPE if hide_stderr
+- else None))
++ process = subprocess.Popen([command] + args, cwd=cwd, env=env,
++ stdout=subprocess.PIPE,
++ stderr=(subprocess.PIPE if hide_stderr
++ else None), **popen_kwargs)
+ break
+- except EnvironmentError:
++ except OSError:
+ e = sys.exc_info()[1]
+ if e.errno == errno.ENOENT:
+ continue
+ if verbose:
+ print("unable to run %%s" %% dispcmd)
+ print(e)
+- return None
++ return None, None
+ else:
+ if verbose:
+ print("unable to find command, tried %%s" %% (commands,))
+- return None
+- stdout = p.communicate()[0].strip()
+- if sys.version_info[0] >= 3:
+- stdout = stdout.decode()
+- if p.returncode != 0:
++ return None, None
++ stdout = process.communicate()[0].strip().decode()
++ if process.returncode != 0:
+ if verbose:
+ print("unable to run %%s (error)" %% dispcmd)
+- return None
+- return stdout
++ print("stdout was %%s" %% stdout)
++ return None, process.returncode
++ return stdout, process.returncode
+
+
+ def versions_from_parentdir(parentdir_prefix, root, verbose):
+ """Try to determine the version from the parent directory name.
+
+- Source tarballs conventionally unpack into a directory that includes
+- both the project name and a version string.
++ Source tarballs conventionally unpack into a directory that includes both
++ the project name and a version string. We will also support searching up
++ two directory levels for an appropriately named parent directory
+ """
+- dirname = os.path.basename(root)
+- if not dirname.startswith(parentdir_prefix):
+- if verbose:
+- print("guessing rootdir is '%%s', but '%%s' doesn't start with "
+- "prefix '%%s'" %% (root, dirname, parentdir_prefix))
+- raise NotThisMethod("rootdir doesn't start with parentdir_prefix")
+- return {"version": dirname[len(parentdir_prefix):],
+- "full-revisionid": None,
+- "dirty": False, "error": None}
++ rootdirs = []
++
++ for _ in range(3):
++ dirname = os.path.basename(root)
++ if dirname.startswith(parentdir_prefix):
++ return {"version": dirname[len(parentdir_prefix):],
++ "full-revisionid": None,
++ "dirty": False, "error": None, "date": None}
++ rootdirs.append(root)
++ root = os.path.dirname(root) # up a level
++
++ if verbose:
++ print("Tried directories %%s but none started with prefix %%s" %%
++ (str(rootdirs), parentdir_prefix))
++ raise NotThisMethod("rootdir doesn't start with parentdir_prefix")
+
+
+ @register_vcs_handler("git", "get_keywords")
+@@ -610,18 +570,21 @@ def git_get_keywords(versionfile_abs):
+ # _version.py.
+ keywords = {}
+ try:
+- f = open(versionfile_abs, "r")
+- for line in f.readlines():
+- if line.strip().startswith("git_refnames ="):
+- mo = re.search(r'=\s*"(.*)"', line)
+- if mo:
+- keywords["refnames"] = mo.group(1)
+- if line.strip().startswith("git_full ="):
+- mo = re.search(r'=\s*"(.*)"', line)
+- if mo:
+- keywords["full"] = mo.group(1)
+- f.close()
+- except EnvironmentError:
++ with open(versionfile_abs, "r") as fobj:
++ for line in fobj:
++ if line.strip().startswith("git_refnames ="):
++ mo = re.search(r'=\s*"(.*)"', line)
++ if mo:
++ keywords["refnames"] = mo.group(1)
++ if line.strip().startswith("git_full ="):
++ mo = re.search(r'=\s*"(.*)"', line)
++ if mo:
++ keywords["full"] = mo.group(1)
++ if line.strip().startswith("git_date ="):
++ mo = re.search(r'=\s*"(.*)"', line)
++ if mo:
++ keywords["date"] = mo.group(1)
++ except OSError:
+ pass
+ return keywords
+
+@@ -629,18 +592,31 @@ def git_get_keywords(versionfile_abs):
+ @register_vcs_handler("git", "keywords")
+ def git_versions_from_keywords(keywords, tag_prefix, verbose):
+ """Get version information from git keywords."""
+- if not keywords:
+- raise NotThisMethod("no keywords at all, weird")
++ if "refnames" not in keywords:
++ raise NotThisMethod("Short version file found")
++ date = keywords.get("date")
++ if date is not None:
++ # Use only the last line. Previous lines may contain GPG signature
++ # information.
++ date = date.splitlines()[-1]
++
++ # git-2.2.0 added "%%cI", which expands to an ISO-8601 -compliant
++ # datestamp. However we prefer "%%ci" (which expands to an "ISO-8601
++ # -like" string, which we must then edit to make compliant), because
++ # it's been around since git-1.5.3, and it's too difficult to
++ # discover which version we're using, or to work around using an
++ # older one.
++ date = date.strip().replace(" ", "T", 1).replace(" ", "", 1)
+ refnames = keywords["refnames"].strip()
+ if refnames.startswith("$Format"):
+ if verbose:
+ print("keywords are unexpanded, not using")
+ raise NotThisMethod("unexpanded keywords, not a git-archive tarball")
+- refs = set([r.strip() for r in refnames.strip("()").split(",")])
++ refs = {r.strip() for r in refnames.strip("()").split(",")}
+ # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of
+ # just "foo-1.0". If we see a "tag: " prefix, prefer those.
+ TAG = "tag: "
+- tags = set([r[len(TAG):] for r in refs if r.startswith(TAG)])
++ tags = {r[len(TAG):] for r in refs if r.startswith(TAG)}
+ if not tags:
+ # Either we're using git < 1.8.3, or there really are no tags. We use
+ # a heuristic: assume all version tags have a digit. The old git %%d
+@@ -649,56 +625,72 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose):
+ # between branches and tags. By ignoring refnames without digits, we
+ # filter out many common branch names like "release" and
+ # "stabilization", as well as "HEAD" and "master".
+- tags = set([r for r in refs if re.search(r'\d', r)])
++ tags = {r for r in refs if re.search(r'\d', r)}
+ if verbose:
+- print("discarding '%%s', no digits" %% ",".join(refs-tags))
++ print("discarding '%%s', no digits" %% ",".join(refs - tags))
+ if verbose:
+ print("likely tags: %%s" %% ",".join(sorted(tags)))
+ for ref in sorted(tags):
+ # sorting will prefer e.g. "2.0" over "2.0rc1"
+ if ref.startswith(tag_prefix):
+ r = ref[len(tag_prefix):]
++ # Filter out refs that exactly match prefix or that don't start
++ # with a number once the prefix is stripped (mostly a concern
++ # when prefix is '')
++ if not re.match(r'\d', r):
++ continue
+ if verbose:
+ print("picking %%s" %% r)
+ return {"version": r,
+ "full-revisionid": keywords["full"].strip(),
+- "dirty": False, "error": None
+- }
++ "dirty": False, "error": None,
++ "date": date}
+ # no suitable tags, so version is "0+unknown", but full hex is still there
+ if verbose:
+ print("no suitable tags, using unknown + full revision id")
+ return {"version": "0+unknown",
+ "full-revisionid": keywords["full"].strip(),
+- "dirty": False, "error": "no suitable tags"}
++ "dirty": False, "error": "no suitable tags", "date": None}
+
+
+ @register_vcs_handler("git", "pieces_from_vcs")
+-def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command):
++def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command):
+ """Get version from 'git describe' in the root of the source tree.
+
+ This only gets called if the git-archive 'subst' keywords were *not*
+ expanded, and _version.py hasn't already been rewritten with a short
+ version string, meaning we're inside a checked out source tree.
+ """
+- if not os.path.exists(os.path.join(root, ".git")):
+- if verbose:
+- print("no .git in %%s" %% root)
+- raise NotThisMethod("no .git directory")
+-
+ GITS = ["git"]
+ if sys.platform == "win32":
+ GITS = ["git.cmd", "git.exe"]
++
++ # GIT_DIR can interfere with correct operation of Versioneer.
++ # It may be intended to be passed to the Versioneer-versioned project,
++ # but that should not change where we get our version from.
++ env = os.environ.copy()
++ env.pop("GIT_DIR", None)
++ runner = functools.partial(runner, env=env)
++
++ _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root,
++ hide_stderr=True)
++ if rc != 0:
++ if verbose:
++ print("Directory %%s not under git control" %% root)
++ raise NotThisMethod("'git rev-parse --git-dir' returned error")
++
++ MATCH_ARGS = ["--match", "%%s*" %% tag_prefix] if tag_prefix else []
++
+ # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty]
+ # if there isn't one, this yields HEX[-dirty] (no NUM)
+- describe_out = run_command(GITS, ["describe", "--tags", "--dirty",
+- "--always", "--long",
+- "--match", "%%s*" %% tag_prefix],
+- cwd=root)
++ describe_out, rc = runner(GITS, ["describe", "--tags", "--dirty",
++ "--always", "--long", *MATCH_ARGS],
++ cwd=root)
+ # --long was added in git-1.5.5
+ if describe_out is None:
+ raise NotThisMethod("'git describe' failed")
+ describe_out = describe_out.strip()
+- full_out = run_command(GITS, ["rev-parse", "HEAD"], cwd=root)
++ full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root)
+ if full_out is None:
+ raise NotThisMethod("'git rev-parse' failed")
+ full_out = full_out.strip()
+@@ -708,6 +700,39 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command):
+ pieces["short"] = full_out[:7] # maybe improved later
+ pieces["error"] = None
+
++ branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"],
++ cwd=root)
++ # --abbrev-ref was added in git-1.6.3
++ if rc != 0 or branch_name is None:
++ raise NotThisMethod("'git rev-parse --abbrev-ref' returned error")
++ branch_name = branch_name.strip()
++
++ if branch_name == "HEAD":
++ # If we aren't exactly on a branch, pick a branch which represents
++ # the current commit. If all else fails, we are on a branchless
++ # commit.
++ branches, rc = runner(GITS, ["branch", "--contains"], cwd=root)
++ # --contains was added in git-1.5.4
++ if rc != 0 or branches is None:
++ raise NotThisMethod("'git branch --contains' returned error")
++ branches = branches.split("\n")
++
++ # Remove the first line if we're running detached
++ if "(" in branches[0]:
++ branches.pop(0)
++
++ # Strip off the leading "* " from the list of branches.
++ branches = [branch[2:] for branch in branches]
++ if "master" in branches:
++ branch_name = "master"
++ elif not branches:
++ branch_name = None
++ else:
++ # Pick the first branch that is returned. Good or bad.
++ branch_name = branches[0]
++
++ pieces["branch"] = branch_name
++
+ # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty]
+ # TAG might have hyphens.
+ git_describe = describe_out
+@@ -724,7 +749,7 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command):
+ # TAG-NUM-gHEX
+ mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe)
+ if not mo:
+- # unparseable. Maybe git-describe is misbehaving?
++ # unparsable. Maybe git-describe is misbehaving?
+ pieces["error"] = ("unable to parse git-describe output: '%%s'"
+ %% describe_out)
+ return pieces
+@@ -749,10 +774,16 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command):
+ else:
+ # HEX: no tags
+ pieces["closest-tag"] = None
+- count_out = run_command(GITS, ["rev-list", "HEAD", "--count"],
+- cwd=root)
++ count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root)
+ pieces["distance"] = int(count_out) # total number of commits
+
++ # commit date: see ISO-8601 comment in git_versions_from_keywords()
++ date = runner(GITS, ["show", "-s", "--format=%%ci", "HEAD"], cwd=root)[0].strip()
++ # Use only the last line. Previous lines may contain GPG signature
++ # information.
++ date = date.splitlines()[-1]
++ pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1)
++
+ return pieces
+
+
+@@ -788,19 +819,67 @@ def render_pep440(pieces):
+ return rendered
+
+
+-def render_pep440_pre(pieces):
+- """TAG[.post.devDISTANCE] -- No -dirty.
++def render_pep440_branch(pieces):
++ """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] .
++
++ The ".dev0" means not master branch. Note that .dev0 sorts backwards
++ (a feature branch will appear "older" than the master branch).
+
+ Exceptions:
+- 1: no tags. 0.post.devDISTANCE
++ 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty]
+ """
+ if pieces["closest-tag"]:
+ rendered = pieces["closest-tag"]
++ if pieces["distance"] or pieces["dirty"]:
++ if pieces["branch"] != "master":
++ rendered += ".dev0"
++ rendered += plus_or_dot(pieces)
++ rendered += "%%d.g%%s" %% (pieces["distance"], pieces["short"])
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ else:
++ # exception #1
++ rendered = "0"
++ if pieces["branch"] != "master":
++ rendered += ".dev0"
++ rendered += "+untagged.%%d.g%%s" %% (pieces["distance"],
++ pieces["short"])
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ return rendered
++
++
++def pep440_split_post(ver):
++ """Split pep440 version string at the post-release segment.
++
++ Returns the release segments before the post-release and the
++ post-release version number (or -1 if no post-release segment is present).
++ """
++ vc = str.split(ver, ".post")
++ return vc[0], int(vc[1] or 0) if len(vc) == 2 else None
++
++
++def render_pep440_pre(pieces):
++ """TAG[.postN.devDISTANCE] -- No -dirty.
++
++ Exceptions:
++ 1: no tags. 0.post0.devDISTANCE
++ """
++ if pieces["closest-tag"]:
+ if pieces["distance"]:
+- rendered += ".post.dev%%d" %% pieces["distance"]
++ # update the post release segment
++ tag_version, post_version = pep440_split_post(pieces["closest-tag"])
++ rendered = tag_version
++ if post_version is not None:
++ rendered += ".post%%d.dev%%d" %% (post_version+1, pieces["distance"])
++ else:
++ rendered += ".post0.dev%%d" %% (pieces["distance"])
++ else:
++ # no commits, use the tag as the version
++ rendered = pieces["closest-tag"]
+ else:
+ # exception #1
+- rendered = "0.post.dev%%d" %% pieces["distance"]
++ rendered = "0.post0.dev%%d" %% pieces["distance"]
+ return rendered
+
+
+@@ -831,12 +910,41 @@ def render_pep440_post(pieces):
+ return rendered
+
+
++def render_pep440_post_branch(pieces):
++ """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] .
++
++ The ".dev0" means not master branch.
++
++ Exceptions:
++ 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty]
++ """
++ if pieces["closest-tag"]:
++ rendered = pieces["closest-tag"]
++ if pieces["distance"] or pieces["dirty"]:
++ rendered += ".post%%d" %% pieces["distance"]
++ if pieces["branch"] != "master":
++ rendered += ".dev0"
++ rendered += plus_or_dot(pieces)
++ rendered += "g%%s" %% pieces["short"]
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ else:
++ # exception #1
++ rendered = "0.post%%d" %% pieces["distance"]
++ if pieces["branch"] != "master":
++ rendered += ".dev0"
++ rendered += "+g%%s" %% pieces["short"]
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ return rendered
++
++
+ def render_pep440_old(pieces):
+ """TAG[.postDISTANCE[.dev0]] .
+
+ The ".dev0" means dirty.
+
+- Eexceptions:
++ Exceptions:
+ 1: no tags. 0.postDISTANCE[.dev0]
+ """
+ if pieces["closest-tag"]:
+@@ -899,17 +1007,22 @@ def render(pieces, style):
+ return {"version": "unknown",
+ "full-revisionid": pieces.get("long"),
+ "dirty": None,
+- "error": pieces["error"]}
++ "error": pieces["error"],
++ "date": None}
+
+ if not style or style == "default":
+ style = "pep440" # the default
+
+ if style == "pep440":
+ rendered = render_pep440(pieces)
++ elif style == "pep440-branch":
++ rendered = render_pep440_branch(pieces)
+ elif style == "pep440-pre":
+ rendered = render_pep440_pre(pieces)
+ elif style == "pep440-post":
+ rendered = render_pep440_post(pieces)
++ elif style == "pep440-post-branch":
++ rendered = render_pep440_post_branch(pieces)
+ elif style == "pep440-old":
+ rendered = render_pep440_old(pieces)
+ elif style == "git-describe":
+@@ -920,7 +1033,8 @@ def render(pieces, style):
+ raise ValueError("unknown style '%%s'" %% style)
+
+ return {"version": rendered, "full-revisionid": pieces["long"],
+- "dirty": pieces["dirty"], "error": None}
++ "dirty": pieces["dirty"], "error": None,
++ "date": pieces.get("date")}
+
+
+ def get_versions():
+@@ -944,12 +1058,13 @@ def get_versions():
+ # versionfile_source is the relative path from the top of the source
+ # tree (where the .git directory might live) to this file. Invert
+ # this to find the root from __file__.
+- for i in cfg.versionfile_source.split('/'):
++ for _ in cfg.versionfile_source.split('/'):
+ root = os.path.dirname(root)
+ except NameError:
+ return {"version": "0+unknown", "full-revisionid": None,
+ "dirty": None,
+- "error": "unable to find root of source tree"}
++ "error": "unable to find root of source tree",
++ "date": None}
+
+ try:
+ pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose)
+@@ -965,7 +1080,7 @@ def get_versions():
+
+ return {"version": "0+unknown", "full-revisionid": None,
+ "dirty": None,
+- "error": "unable to compute version"}
++ "error": "unable to compute version", "date": None}
+ '''
+
+
+@@ -978,18 +1093,21 @@ def git_get_keywords(versionfile_abs):
+ # _version.py.
+ keywords = {}
+ try:
+- f = open(versionfile_abs, "r")
+- for line in f.readlines():
+- if line.strip().startswith("git_refnames ="):
+- mo = re.search(r'=\s*"(.*)"', line)
+- if mo:
+- keywords["refnames"] = mo.group(1)
+- if line.strip().startswith("git_full ="):
+- mo = re.search(r'=\s*"(.*)"', line)
+- if mo:
+- keywords["full"] = mo.group(1)
+- f.close()
+- except EnvironmentError:
++ with open(versionfile_abs, "r") as fobj:
++ for line in fobj:
++ if line.strip().startswith("git_refnames ="):
++ mo = re.search(r'=\s*"(.*)"', line)
++ if mo:
++ keywords["refnames"] = mo.group(1)
++ if line.strip().startswith("git_full ="):
++ mo = re.search(r'=\s*"(.*)"', line)
++ if mo:
++ keywords["full"] = mo.group(1)
++ if line.strip().startswith("git_date ="):
++ mo = re.search(r'=\s*"(.*)"', line)
++ if mo:
++ keywords["date"] = mo.group(1)
++ except OSError:
+ pass
+ return keywords
+
+@@ -997,18 +1115,31 @@ def git_get_keywords(versionfile_abs):
+ @register_vcs_handler("git", "keywords")
+ def git_versions_from_keywords(keywords, tag_prefix, verbose):
+ """Get version information from git keywords."""
+- if not keywords:
+- raise NotThisMethod("no keywords at all, weird")
++ if "refnames" not in keywords:
++ raise NotThisMethod("Short version file found")
++ date = keywords.get("date")
++ if date is not None:
++ # Use only the last line. Previous lines may contain GPG signature
++ # information.
++ date = date.splitlines()[-1]
++
++ # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant
++ # datestamp. However we prefer "%ci" (which expands to an "ISO-8601
++ # -like" string, which we must then edit to make compliant), because
++ # it's been around since git-1.5.3, and it's too difficult to
++ # discover which version we're using, or to work around using an
++ # older one.
++ date = date.strip().replace(" ", "T", 1).replace(" ", "", 1)
+ refnames = keywords["refnames"].strip()
+ if refnames.startswith("$Format"):
+ if verbose:
+ print("keywords are unexpanded, not using")
+ raise NotThisMethod("unexpanded keywords, not a git-archive tarball")
+- refs = set([r.strip() for r in refnames.strip("()").split(",")])
++ refs = {r.strip() for r in refnames.strip("()").split(",")}
+ # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of
+ # just "foo-1.0". If we see a "tag: " prefix, prefer those.
+ TAG = "tag: "
+- tags = set([r[len(TAG):] for r in refs if r.startswith(TAG)])
++ tags = {r[len(TAG):] for r in refs if r.startswith(TAG)}
+ if not tags:
+ # Either we're using git < 1.8.3, or there really are no tags. We use
+ # a heuristic: assume all version tags have a digit. The old git %d
+@@ -1017,56 +1148,72 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose):
+ # between branches and tags. By ignoring refnames without digits, we
+ # filter out many common branch names like "release" and
+ # "stabilization", as well as "HEAD" and "master".
+- tags = set([r for r in refs if re.search(r'\d', r)])
++ tags = {r for r in refs if re.search(r'\d', r)}
+ if verbose:
+- print("discarding '%s', no digits" % ",".join(refs-tags))
++ print("discarding '%s', no digits" % ",".join(refs - tags))
+ if verbose:
+ print("likely tags: %s" % ",".join(sorted(tags)))
+ for ref in sorted(tags):
+ # sorting will prefer e.g. "2.0" over "2.0rc1"
+ if ref.startswith(tag_prefix):
+ r = ref[len(tag_prefix):]
++ # Filter out refs that exactly match prefix or that don't start
++ # with a number once the prefix is stripped (mostly a concern
++ # when prefix is '')
++ if not re.match(r'\d', r):
++ continue
+ if verbose:
+ print("picking %s" % r)
+ return {"version": r,
+ "full-revisionid": keywords["full"].strip(),
+- "dirty": False, "error": None
+- }
++ "dirty": False, "error": None,
++ "date": date}
+ # no suitable tags, so version is "0+unknown", but full hex is still there
+ if verbose:
+ print("no suitable tags, using unknown + full revision id")
+ return {"version": "0+unknown",
+ "full-revisionid": keywords["full"].strip(),
+- "dirty": False, "error": "no suitable tags"}
++ "dirty": False, "error": "no suitable tags", "date": None}
+
+
+ @register_vcs_handler("git", "pieces_from_vcs")
+-def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command):
++def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command):
+ """Get version from 'git describe' in the root of the source tree.
+
+ This only gets called if the git-archive 'subst' keywords were *not*
+ expanded, and _version.py hasn't already been rewritten with a short
+ version string, meaning we're inside a checked out source tree.
+ """
+- if not os.path.exists(os.path.join(root, ".git")):
+- if verbose:
+- print("no .git in %s" % root)
+- raise NotThisMethod("no .git directory")
+-
+ GITS = ["git"]
+ if sys.platform == "win32":
+ GITS = ["git.cmd", "git.exe"]
++
++ # GIT_DIR can interfere with correct operation of Versioneer.
++ # It may be intended to be passed to the Versioneer-versioned project,
++ # but that should not change where we get our version from.
++ env = os.environ.copy()
++ env.pop("GIT_DIR", None)
++ runner = functools.partial(runner, env=env)
++
++ _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root,
++ hide_stderr=True)
++ if rc != 0:
++ if verbose:
++ print("Directory %s not under git control" % root)
++ raise NotThisMethod("'git rev-parse --git-dir' returned error")
++
++ MATCH_ARGS = ["--match", "%s*" % tag_prefix] if tag_prefix else []
++
+ # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty]
+ # if there isn't one, this yields HEX[-dirty] (no NUM)
+- describe_out = run_command(GITS, ["describe", "--tags", "--dirty",
+- "--always", "--long",
+- "--match", "%s*" % tag_prefix],
+- cwd=root)
++ describe_out, rc = runner(GITS, ["describe", "--tags", "--dirty",
++ "--always", "--long", *MATCH_ARGS],
++ cwd=root)
+ # --long was added in git-1.5.5
+ if describe_out is None:
+ raise NotThisMethod("'git describe' failed")
+ describe_out = describe_out.strip()
+- full_out = run_command(GITS, ["rev-parse", "HEAD"], cwd=root)
++ full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root)
+ if full_out is None:
+ raise NotThisMethod("'git rev-parse' failed")
+ full_out = full_out.strip()
+@@ -1076,6 +1223,39 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command):
+ pieces["short"] = full_out[:7] # maybe improved later
+ pieces["error"] = None
+
++ branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"],
++ cwd=root)
++ # --abbrev-ref was added in git-1.6.3
++ if rc != 0 or branch_name is None:
++ raise NotThisMethod("'git rev-parse --abbrev-ref' returned error")
++ branch_name = branch_name.strip()
++
++ if branch_name == "HEAD":
++ # If we aren't exactly on a branch, pick a branch which represents
++ # the current commit. If all else fails, we are on a branchless
++ # commit.
++ branches, rc = runner(GITS, ["branch", "--contains"], cwd=root)
++ # --contains was added in git-1.5.4
++ if rc != 0 or branches is None:
++ raise NotThisMethod("'git branch --contains' returned error")
++ branches = branches.split("\n")
++
++ # Remove the first line if we're running detached
++ if "(" in branches[0]:
++ branches.pop(0)
++
++ # Strip off the leading "* " from the list of branches.
++ branches = [branch[2:] for branch in branches]
++ if "master" in branches:
++ branch_name = "master"
++ elif not branches:
++ branch_name = None
++ else:
++ # Pick the first branch that is returned. Good or bad.
++ branch_name = branches[0]
++
++ pieces["branch"] = branch_name
++
+ # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty]
+ # TAG might have hyphens.
+ git_describe = describe_out
+@@ -1092,7 +1272,7 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command):
+ # TAG-NUM-gHEX
+ mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe)
+ if not mo:
+- # unparseable. Maybe git-describe is misbehaving?
++ # unparsable. Maybe git-describe is misbehaving?
+ pieces["error"] = ("unable to parse git-describe output: '%s'"
+ % describe_out)
+ return pieces
+@@ -1117,10 +1297,16 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command):
+ else:
+ # HEX: no tags
+ pieces["closest-tag"] = None
+- count_out = run_command(GITS, ["rev-list", "HEAD", "--count"],
+- cwd=root)
++ count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root)
+ pieces["distance"] = int(count_out) # total number of commits
+
++ # commit date: see ISO-8601 comment in git_versions_from_keywords()
++ date = runner(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip()
++ # Use only the last line. Previous lines may contain GPG signature
++ # information.
++ date = date.splitlines()[-1]
++ pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1)
++
+ return pieces
+
+
+@@ -1128,7 +1314,7 @@ def do_vcs_install(manifest_in, versionfile_source, ipy):
+ """Git-specific installation logic for Versioneer.
+
+ For Git, this means creating/changing .gitattributes to mark _version.py
+- for export-time keyword substitution.
++ for export-subst keyword substitution.
+ """
+ GITS = ["git"]
+ if sys.platform == "win32":
+@@ -1137,27 +1323,26 @@ def do_vcs_install(manifest_in, versionfile_source, ipy):
+ if ipy:
+ files.append(ipy)
+ try:
+- me = __file__
+- if me.endswith(".pyc") or me.endswith(".pyo"):
+- me = os.path.splitext(me)[0] + ".py"
+- versioneer_file = os.path.relpath(me)
++ my_path = __file__
++ if my_path.endswith(".pyc") or my_path.endswith(".pyo"):
++ my_path = os.path.splitext(my_path)[0] + ".py"
++ versioneer_file = os.path.relpath(my_path)
+ except NameError:
+ versioneer_file = "versioneer.py"
+ files.append(versioneer_file)
+ present = False
+ try:
+- f = open(".gitattributes", "r")
+- for line in f.readlines():
+- if line.strip().startswith(versionfile_source):
+- if "export-subst" in line.strip().split()[1:]:
+- present = True
+- f.close()
+- except EnvironmentError:
++ with open(".gitattributes", "r") as fobj:
++ for line in fobj:
++ if line.strip().startswith(versionfile_source):
++ if "export-subst" in line.strip().split()[1:]:
++ present = True
++ break
++ except OSError:
+ pass
+ if not present:
+- f = open(".gitattributes", "a+")
+- f.write("%s export-subst\n" % versionfile_source)
+- f.close()
++ with open(".gitattributes", "a+") as fobj:
++ fobj.write(f"{versionfile_source} export-subst\n")
+ files.append(".gitattributes")
+ run_command(GITS, ["add", "--"] + files)
+
+@@ -1165,27 +1350,34 @@ def do_vcs_install(manifest_in, versionfile_source, ipy):
+ def versions_from_parentdir(parentdir_prefix, root, verbose):
+ """Try to determine the version from the parent directory name.
+
+- Source tarballs conventionally unpack into a directory that includes
+- both the project name and a version string.
++ Source tarballs conventionally unpack into a directory that includes both
++ the project name and a version string. We will also support searching up
++ two directory levels for an appropriately named parent directory
+ """
+- dirname = os.path.basename(root)
+- if not dirname.startswith(parentdir_prefix):
+- if verbose:
+- print("guessing rootdir is '%s', but '%s' doesn't start with "
+- "prefix '%s'" % (root, dirname, parentdir_prefix))
+- raise NotThisMethod("rootdir doesn't start with parentdir_prefix")
+- return {"version": dirname[len(parentdir_prefix):],
+- "full-revisionid": None,
+- "dirty": False, "error": None}
++ rootdirs = []
++
++ for _ in range(3):
++ dirname = os.path.basename(root)
++ if dirname.startswith(parentdir_prefix):
++ return {"version": dirname[len(parentdir_prefix):],
++ "full-revisionid": None,
++ "dirty": False, "error": None, "date": None}
++ rootdirs.append(root)
++ root = os.path.dirname(root) # up a level
++
++ if verbose:
++ print("Tried directories %s but none started with prefix %s" %
++ (str(rootdirs), parentdir_prefix))
++ raise NotThisMethod("rootdir doesn't start with parentdir_prefix")
++
+
+ SHORT_VERSION_PY = """
+-# This file was generated by 'versioneer.py' (0.16) from
++# This file was generated by 'versioneer.py' (0.22) from
+ # revision-control system data, or from the parent directory name of an
+ # unpacked source archive. Distribution tarballs contain a pre-generated copy
+ # of this file.
+
+ import json
+-import sys
+
+ version_json = '''
+ %s
+@@ -1202,10 +1394,13 @@ def versions_from_file(filename):
+ try:
+ with open(filename) as f:
+ contents = f.read()
+- except EnvironmentError:
++ except OSError:
+ raise NotThisMethod("unable to read _version.py")
+ mo = re.search(r"version_json = '''\n(.*)''' # END VERSION_JSON",
+ contents, re.M | re.S)
++ if not mo:
++ mo = re.search(r"version_json = '''\r\n(.*)''' # END VERSION_JSON",
++ contents, re.M | re.S)
+ if not mo:
+ raise NotThisMethod("no version_json in _version.py")
+ return json.loads(mo.group(1))
+@@ -1254,19 +1449,67 @@ def render_pep440(pieces):
+ return rendered
+
+
+-def render_pep440_pre(pieces):
+- """TAG[.post.devDISTANCE] -- No -dirty.
++def render_pep440_branch(pieces):
++ """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] .
++
++ The ".dev0" means not master branch. Note that .dev0 sorts backwards
++ (a feature branch will appear "older" than the master branch).
+
+ Exceptions:
+- 1: no tags. 0.post.devDISTANCE
++ 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty]
+ """
+ if pieces["closest-tag"]:
+ rendered = pieces["closest-tag"]
++ if pieces["distance"] or pieces["dirty"]:
++ if pieces["branch"] != "master":
++ rendered += ".dev0"
++ rendered += plus_or_dot(pieces)
++ rendered += "%d.g%s" % (pieces["distance"], pieces["short"])
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ else:
++ # exception #1
++ rendered = "0"
++ if pieces["branch"] != "master":
++ rendered += ".dev0"
++ rendered += "+untagged.%d.g%s" % (pieces["distance"],
++ pieces["short"])
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ return rendered
++
++
++def pep440_split_post(ver):
++ """Split pep440 version string at the post-release segment.
++
++ Returns the release segments before the post-release and the
++ post-release version number (or -1 if no post-release segment is present).
++ """
++ vc = str.split(ver, ".post")
++ return vc[0], int(vc[1] or 0) if len(vc) == 2 else None
++
++
++def render_pep440_pre(pieces):
++ """TAG[.postN.devDISTANCE] -- No -dirty.
++
++ Exceptions:
++ 1: no tags. 0.post0.devDISTANCE
++ """
++ if pieces["closest-tag"]:
+ if pieces["distance"]:
+- rendered += ".post.dev%d" % pieces["distance"]
++ # update the post release segment
++ tag_version, post_version = pep440_split_post(pieces["closest-tag"])
++ rendered = tag_version
++ if post_version is not None:
++ rendered += ".post%d.dev%d" % (post_version+1, pieces["distance"])
++ else:
++ rendered += ".post0.dev%d" % (pieces["distance"])
++ else:
++ # no commits, use the tag as the version
++ rendered = pieces["closest-tag"]
+ else:
+ # exception #1
+- rendered = "0.post.dev%d" % pieces["distance"]
++ rendered = "0.post0.dev%d" % pieces["distance"]
+ return rendered
+
+
+@@ -1297,12 +1540,41 @@ def render_pep440_post(pieces):
+ return rendered
+
+
++def render_pep440_post_branch(pieces):
++ """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] .
++
++ The ".dev0" means not master branch.
++
++ Exceptions:
++ 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty]
++ """
++ if pieces["closest-tag"]:
++ rendered = pieces["closest-tag"]
++ if pieces["distance"] or pieces["dirty"]:
++ rendered += ".post%d" % pieces["distance"]
++ if pieces["branch"] != "master":
++ rendered += ".dev0"
++ rendered += plus_or_dot(pieces)
++ rendered += "g%s" % pieces["short"]
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ else:
++ # exception #1
++ rendered = "0.post%d" % pieces["distance"]
++ if pieces["branch"] != "master":
++ rendered += ".dev0"
++ rendered += "+g%s" % pieces["short"]
++ if pieces["dirty"]:
++ rendered += ".dirty"
++ return rendered
++
++
+ def render_pep440_old(pieces):
+ """TAG[.postDISTANCE[.dev0]] .
+
+ The ".dev0" means dirty.
+
+- Eexceptions:
++ Exceptions:
+ 1: no tags. 0.postDISTANCE[.dev0]
+ """
+ if pieces["closest-tag"]:
+@@ -1365,17 +1637,22 @@ def render(pieces, style):
+ return {"version": "unknown",
+ "full-revisionid": pieces.get("long"),
+ "dirty": None,
+- "error": pieces["error"]}
++ "error": pieces["error"],
++ "date": None}
+
+ if not style or style == "default":
+ style = "pep440" # the default
+
+ if style == "pep440":
+ rendered = render_pep440(pieces)
++ elif style == "pep440-branch":
++ rendered = render_pep440_branch(pieces)
+ elif style == "pep440-pre":
+ rendered = render_pep440_pre(pieces)
+ elif style == "pep440-post":
+ rendered = render_pep440_post(pieces)
++ elif style == "pep440-post-branch":
++ rendered = render_pep440_post_branch(pieces)
+ elif style == "pep440-old":
+ rendered = render_pep440_old(pieces)
+ elif style == "git-describe":
+@@ -1386,7 +1663,8 @@ def render(pieces, style):
+ raise ValueError("unknown style '%s'" % style)
+
+ return {"version": rendered, "full-revisionid": pieces["long"],
+- "dirty": pieces["dirty"], "error": None}
++ "dirty": pieces["dirty"], "error": None,
++ "date": pieces.get("date")}
+
+
+ class VersioneerBadRootError(Exception):
+@@ -1465,7 +1743,8 @@ def get_versions(verbose=False):
+ print("unable to compute version")
+
+ return {"version": "0+unknown", "full-revisionid": None,
+- "dirty": None, "error": "unable to compute version"}
++ "dirty": None, "error": "unable to compute version",
++ "date": None}
+
+
+ def get_version():
+@@ -1473,8 +1752,12 @@ def get_version():
+ return get_versions()["version"]
+
+
+-def get_cmdclass():
+- """Get the custom setuptools/distutils subclasses used by Versioneer."""
++def get_cmdclass(cmdclass=None):
++ """Get the custom setuptools/distutils subclasses used by Versioneer.
++
++ If the package uses a different cmdclass (e.g. one from numpy), it
++ should be provide as an argument.
++ """
+ if "versioneer" in sys.modules:
+ del sys.modules["versioneer"]
+ # this fixes the "python setup.py develop" case (also 'install' and
+@@ -1488,12 +1771,15 @@ def get_cmdclass():
+ # parent is protected against the child's "import versioneer". By
+ # removing ourselves from sys.modules here, before the child build
+ # happens, we protect the child from the parent's versioneer too.
+- # Also see https://github.com/warner/python-versioneer/issues/52
++ # Also see https://github.com/python-versioneer/python-versioneer/issues/52
+
+- cmds = {}
++ cmds = {} if cmdclass is None else cmdclass.copy()
+
+ # we add "version" to both distutils and setuptools
+- from distutils.core import Command
++ try:
++ from setuptools import Command
++ except ImportError:
++ from distutils.core import Command
+
+ class cmd_version(Command):
+ description = "report generated version string"
+@@ -1511,6 +1797,7 @@ def get_cmdclass():
+ print("Version: %s" % vers["version"])
+ print(" full-revisionid: %s" % vers.get("full-revisionid"))
+ print(" dirty: %s" % vers.get("dirty"))
++ print(" date: %s" % vers.get("date"))
+ if vers["error"]:
+ print(" error: %s" % vers["error"])
+ cmds["version"] = cmd_version
+@@ -1524,9 +1811,16 @@ def get_cmdclass():
+ # setuptools/bdist_egg -> distutils/install_lib -> build_py
+ # setuptools/install -> bdist_egg ->..
+ # setuptools/develop -> ?
++ # pip install:
++ # copies source tree to a tempdir before running egg_info/etc
++ # if .git isn't copied too, 'git describe' will fail
++ # then does setup.py bdist_wheel, or sometimes setup.py install
++ # setup.py egg_info -> ?
+
+ # we override different "build_py" commands for both environments
+- if "setuptools" in sys.modules:
++ if 'build_py' in cmds:
++ _build_py = cmds['build_py']
++ elif "setuptools" in sys.modules:
+ from setuptools.command.build_py import build_py as _build_py
+ else:
+ from distutils.command.build_py import build_py as _build_py
+@@ -1546,8 +1840,41 @@ def get_cmdclass():
+ write_to_version_file(target_versionfile, versions)
+ cmds["build_py"] = cmd_build_py
+
++ if 'build_ext' in cmds:
++ _build_ext = cmds['build_ext']
++ elif "setuptools" in sys.modules:
++ from setuptools.command.build_ext import build_ext as _build_ext
++ else:
++ from distutils.command.build_ext import build_ext as _build_ext
++
++ class cmd_build_ext(_build_ext):
++ def run(self):
++ root = get_root()
++ cfg = get_config_from_root(root)
++ versions = get_versions()
++ _build_ext.run(self)
++ if self.inplace:
++ # build_ext --inplace will only build extensions in
++ # build/lib<..> dir with no _version.py to write to.
++ # As in place builds will already have a _version.py
++ # in the module dir, we do not need to write one.
++ return
++ # now locate _version.py in the new build/ directory and replace
++ # it with an updated value
++ target_versionfile = os.path.join(self.build_lib,
++ cfg.versionfile_build)
++ print("UPDATING %s" % target_versionfile)
++ write_to_version_file(target_versionfile, versions)
++ cmds["build_ext"] = cmd_build_ext
++
+ if "cx_Freeze" in sys.modules: # cx_freeze enabled?
+ from cx_Freeze.dist import build_exe as _build_exe
++ # nczeczulin reports that py2exe won't like the pep440-style string
++ # as FILEVERSION, but it can be used for PRODUCTVERSION, e.g.
++ # setup(console=[{
++ # "version": versioneer.get_version().split("+", 1)[0], # FILEVERSION
++ # "product_version": versioneer.get_version(),
++ # ...
+
+ class cmd_build_exe(_build_exe):
+ def run(self):
+@@ -1572,8 +1899,35 @@ def get_cmdclass():
+ cmds["build_exe"] = cmd_build_exe
+ del cmds["build_py"]
+
++ if 'py2exe' in sys.modules: # py2exe enabled?
++ from py2exe.distutils_buildexe import py2exe as _py2exe
++
++ class cmd_py2exe(_py2exe):
++ def run(self):
++ root = get_root()
++ cfg = get_config_from_root(root)
++ versions = get_versions()
++ target_versionfile = cfg.versionfile_source
++ print("UPDATING %s" % target_versionfile)
++ write_to_version_file(target_versionfile, versions)
++
++ _py2exe.run(self)
++ os.unlink(target_versionfile)
++ with open(cfg.versionfile_source, "w") as f:
++ LONG = LONG_VERSION_PY[cfg.VCS]
++ f.write(LONG %
++ {"DOLLAR": "$",
++ "STYLE": cfg.style,
++ "TAG_PREFIX": cfg.tag_prefix,
++ "PARENTDIR_PREFIX": cfg.parentdir_prefix,
++ "VERSIONFILE_SOURCE": cfg.versionfile_source,
++ })
++ cmds["py2exe"] = cmd_py2exe
++
+ # we override different "sdist" commands for both environments
+- if "setuptools" in sys.modules:
++ if 'sdist' in cmds:
++ _sdist = cmds['sdist']
++ elif "setuptools" in sys.modules:
+ from setuptools.command.sdist import sdist as _sdist
+ else:
+ from distutils.command.sdist import sdist as _sdist
+@@ -1640,21 +1994,26 @@ SAMPLE_CONFIG = """
+
+ """
+
+-INIT_PY_SNIPPET = """
++OLD_SNIPPET = """
+ from ._version import get_versions
+ __version__ = get_versions()['version']
+ del get_versions
+ """
+
++INIT_PY_SNIPPET = """
++from . import {0}
++__version__ = {0}.get_versions()['version']
++"""
++
+
+ def do_setup():
+- """Main VCS-independent setup function for installing Versioneer."""
++ """Do main VCS-independent setup function for installing Versioneer."""
+ root = get_root()
+ try:
+ cfg = get_config_from_root(root)
+- except (EnvironmentError, configparser.NoSectionError,
++ except (OSError, configparser.NoSectionError,
+ configparser.NoOptionError) as e:
+- if isinstance(e, (EnvironmentError, configparser.NoSectionError)):
++ if isinstance(e, (OSError, configparser.NoSectionError)):
+ print("Adding sample versioneer config to setup.cfg",
+ file=sys.stderr)
+ with open(os.path.join(root, "setup.cfg"), "a") as f:
+@@ -1678,12 +2037,18 @@ def do_setup():
+ try:
+ with open(ipy, "r") as f:
+ old = f.read()
+- except EnvironmentError:
++ except OSError:
+ old = ""
+- if INIT_PY_SNIPPET not in old:
++ module = os.path.splitext(os.path.basename(cfg.versionfile_source))[0]
++ snippet = INIT_PY_SNIPPET.format(module)
++ if OLD_SNIPPET in old:
++ print(" replacing boilerplate in %s" % ipy)
++ with open(ipy, "w") as f:
++ f.write(old.replace(OLD_SNIPPET, snippet))
++ elif snippet not in old:
+ print(" appending to %s" % ipy)
+ with open(ipy, "a") as f:
+- f.write(INIT_PY_SNIPPET)
++ f.write(snippet)
+ else:
+ print(" %s unmodified" % ipy)
+ else:
+@@ -1702,7 +2067,7 @@ def do_setup():
+ if line.startswith("include "):
+ for include in line.split()[1:]:
+ simple_includes.add(include)
+- except EnvironmentError:
++ except OSError:
+ pass
+ # That doesn't cover everything MANIFEST.in can do
+ # (http://docs.python.org/2/distutils/sourcedist.html#commands), so
+@@ -1723,7 +2088,7 @@ def do_setup():
+ print(" versionfile_source already in MANIFEST.in")
+
+ # Make VCS-specific changes. For git, this means creating/changing
+- # .gitattributes to mark _version.py for export-time keyword
++ # .gitattributes to mark _version.py for export-subst keyword
+ # substitution.
+ do_vcs_install(manifest_in, cfg.versionfile_source, ipy)
+ return 0
+@@ -1765,6 +2130,7 @@ def scan_setup_py():
+ errors += 1
+ return errors
+
++
+ if __name__ == "__main__":
+ cmd = sys.argv[1]
+ if cmd == "setup":
diff --git a/meta-python/recipes-devtools/python/python3-click-spinner_0.1.10.bb b/meta-python/recipes-devtools/python/python3-click-spinner_0.1.10.bb
index 418f8a32a7..b3e1328c75 100644
--- a/meta-python/recipes-devtools/python/python3-click-spinner_0.1.10.bb
+++ b/meta-python/recipes-devtools/python/python3-click-spinner_0.1.10.bb
@@ -3,7 +3,10 @@ HOMEPAGE = "https://github.com/click-contrib/click-spinner"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
+SRC_URI += "file://0001-Update-Versioneer-to-0.22.patch"
SRC_URI[md5sum] = "ab68ed404401421819c81cc6c0677a87"
SRC_URI[sha256sum] = "87eacf9d7298973a25d7615ef57d4782aebf913a532bba4b28a37e366e975daf"
inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-json"
diff --git a/meta-python/recipes-devtools/python/python3-click/run-ptest b/meta-python/recipes-devtools/python/python3-click/run-ptest
deleted file mode 100644
index b63c4de0d9..0000000000
--- a/meta-python/recipes-devtools/python/python3-click/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta-python/recipes-devtools/python/python3-click_8.1.3.bb b/meta-python/recipes-devtools/python/python3-click_8.1.3.bb
deleted file mode 100644
index 006742f153..0000000000
--- a/meta-python/recipes-devtools/python/python3-click_8.1.3.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "A simple wrapper around optparse for powerful command line utilities."
-DESCRIPTION = "\
-Click is a Python package for creating beautiful command line interfaces \
-in a composable way with as little code as necessary. It's the "Command \
-Line Interface Creation Kit". It's highly configurable but comes with \
-sensible defaults out of the box."
-HOMEPAGE = "http://click.pocoo.org/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=1fa98232fd645608937a0fdc82e999b8"
-
-SRC_URI[sha256sum] = "7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-terminal \
- ${PYTHON_PN}-unixadmin \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
- cp -rf ${S}/setup.cfg ${D}${PTEST_PATH}/
- cp -rf ${S}/docs ${D}${PTEST_PATH}/
-}
-
-UPSTREAM_CHECK_REGEX = "click/(?P<pver>\d+(\.\d+)+)/"
-
-CLEANBROKEN = "1"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-threading \
- "
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cloudpickle_3.0.0.bb b/meta-python/recipes-devtools/python/python3-cloudpickle_3.0.0.bb
new file mode 100644
index 0000000000..25c379590f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cloudpickle_3.0.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Pickler class to extend the standard pickle.Pickler functionality"
+DESCRIPTION = "cloudpickle makes it possible to serialize Python constructs \
+not supported by the default pickle module from the Python standard library.\
+\
+cloudpickle is especially useful for cluster computing where Python code is \
+shipped over the network to execute on remote hosts, possibly close to the \
+data."
+HOMEPAGE = "https://github.com/cloudpipe/cloudpickle"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE.cloudpickle;md5=b4d59aa5e2cc777722aac17841237931"
+
+inherit pypi python_flit_core
+
+SRC_URI += "https://raw.githubusercontent.com/cloudpipe/cloudpickle/v${PV}/LICENSE;downloadfilename=LICENSE.cloudpickle;name=license"
+
+SRC_URI[sha256sum] = "996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882"
+SRC_URI[license.sha256sum] = "3029ea34173e9fdc233ad315dc6b100bd1ea71f529b1c1af97664a272fdc55f5"
diff --git a/meta-python/recipes-devtools/python/python3-cmake/CMakeLists.txt b/meta-python/recipes-devtools/python/python3-cmake/CMakeLists.txt
new file mode 100644
index 0000000000..8ba81970ff
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cmake/CMakeLists.txt
@@ -0,0 +1,11 @@
+cmake_minimum_required(VERSION 3.6)
+
+#
+# For more details, see docs/building.rst
+#
+
+project(CMakePythonDistributions NONE)
+
+install(CODE "
+ message(STATUS \"Install CMake project\")
+")
diff --git a/meta-python/recipes-devtools/python/python3-cmake/run-cmake-from-path.patch b/meta-python/recipes-devtools/python/python3-cmake/run-cmake-from-path.patch
new file mode 100644
index 0000000000..d4d2903d5e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cmake/run-cmake-from-path.patch
@@ -0,0 +1,13 @@
+Upstream-Status: Pending
+
+--- cmake-3.25.2/src/cmake/__init__.py.old 2023-03-10 09:40:43.582315753 +0100
++++ cmake-3.25.2/src/cmake/__init__.py 2023-03-10 09:41:38.030874047 +0100
+@@ -36,7 +36,7 @@
+
+
+ def _program(name, args):
+- return subprocess.call([os.path.join(CMAKE_BIN_DIR, name)] + args, close_fds=False)
++ return subprocess.call([name] + args, close_fds=False)
+
+
+ def cmake():
diff --git a/meta-python/recipes-devtools/python/python3-cmake_3.28.3.bb b/meta-python/recipes-devtools/python/python3-cmake_3.28.3.bb
new file mode 100644
index 0000000000..6b31d0b4f5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cmake_3.28.3.bb
@@ -0,0 +1,37 @@
+SUMMARY = "CMake is an open-source, cross-platform family of tools designed to build, test and package software"
+LICENSE = "BSD-3-Clause & Apache-2.0"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE_BSD_3;md5=9134cb61aebbdd79dd826ccb9ae6afcd \
+ file://LICENSE_Apache_20;md5=19cbd64715b51267a47bf3750cc6a8a5 \
+"
+
+DEPENDS = "ninja-native cmake-native python3-scikit-build-native"
+
+PYPI_PACKAGE = "cmake"
+PYPI_ARCHIVE_NAME_PREFIX = "pypi-"
+
+inherit pypi python_setuptools_build_meta
+SRC_URI[sha256sum] = "a8092815c739da7d6775c26ec30c2645f0fca9527a29e36a682faec7d39cde89"
+
+SRC_URI += " \
+ file://CMakeLists.txt \
+ file://run-cmake-from-path.patch \
+"
+
+addtask do_patchbuild after do_patch before do_configure
+
+do_patchbuild () {
+ rm -f ${S}/CMakeLists.txt
+ cp ${WORKDIR}/CMakeLists.txt ${S}/
+}
+
+do_install:append () {
+ rm -rf ${D}${bindir}
+}
+
+RDEPENDS:${PN} = " \
+ cmake \
+ python3-scikit-build \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cmd2_2.4.2.bb b/meta-python/recipes-devtools/python/python3-cmd2_2.4.2.bb
deleted file mode 100644
index d2434b626f..0000000000
--- a/meta-python/recipes-devtools/python/python3-cmd2_2.4.2.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Extra features for standard library's cmd module"
-HOMEPAGE = "https://github.com/python-cmd2/cmd2"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=209e288518b0668115f58c3929af9ff1"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-SRC_URI[sha256sum] = "073e555c05853b0f6965f3d03329babdf9e38a5f2cea028e61a64cd7eeb74ad5"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-attrs \
- ${PYTHON_PN}-colorama \
- ${PYTHON_PN}-pyperclip \
- ${PYTHON_PN}-wcwidth \
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-pydoc \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-numbers \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cmd2_2.4.3.bb b/meta-python/recipes-devtools/python/python3-cmd2_2.4.3.bb
new file mode 100644
index 0000000000..3d37e8b3c7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cmd2_2.4.3.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Extra features for standard library's cmd module"
+HOMEPAGE = "https://github.com/python-cmd2/cmd2"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fad7740aa21780c8b9a214f5b320b4ad"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+SRC_URI[sha256sum] = "71873c11f72bd19e2b1db578214716f0d4f7c8fa250093c601265a9a717dee52"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-attrs \
+ python3-colorama \
+ python3-pyperclip \
+ python3-wcwidth \
+ python3-compression \
+ python3-pydoc \
+ python3-json \
+ python3-numbers \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-colorama_0.4.5.bb b/meta-python/recipes-devtools/python/python3-colorama_0.4.5.bb
deleted file mode 100644
index 122ae53991..0000000000
--- a/meta-python/recipes-devtools/python/python3-colorama_0.4.5.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Cross-platform colored terminal text."
-HOMEPAGE = "https://github.com/tartley/colorama"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b4936429a56a652b84c5c01280dcaa26"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-colorama_0.4.6.bb b/meta-python/recipes-devtools/python/python3-colorama_0.4.6.bb
new file mode 100644
index 0000000000..0f364c424d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-colorama_0.4.6.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Cross-platform colored terminal text."
+HOMEPAGE = "https://github.com/tartley/colorama"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b4936429a56a652b84c5c01280dcaa26"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"
+
+DEPENDS += " \
+ python3-hatchling-native \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-colorclass_2.2.2.bb b/meta-python/recipes-devtools/python/python3-colorclass_2.2.2.bb
new file mode 100644
index 0000000000..ff72f4c2f6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-colorclass_2.2.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Colorful worry-free console applications for Linux, Mac OS X, and Windows."
+HOMEPAGE = "https://github.com/matthewdeanmartin/colorclass"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1b2a533055839e54558a727657c1c73e"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "6d4fe287766166a98ca7bc6f6312daf04a0481b1eda43e7173484051c0ab4366"
+
+PYPI_PACKAGE="colorclass"
+
+RDEPENDS:${PN} += "\
+ python3-ctypes \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb b/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb
index d17ab87525..31f75eef62 100644
--- a/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb
+++ b/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb
@@ -13,7 +13,7 @@ do_install:append() {
}
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-humanfriendly \
+ python3-humanfriendly \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-colorlog_6.7.0.bb b/meta-python/recipes-devtools/python/python3-colorlog_6.7.0.bb
deleted file mode 100644
index 84b67e784a..0000000000
--- a/meta-python/recipes-devtools/python/python3-colorlog_6.7.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-DESCRIPTION = "A colored formatter for the python logging module"
-HOMEPAGE = "https://github.com/borntyping/python-colorlog"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5c3c6ebdec7792ae12df8d1c0a46b26a"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "colorlog"
-
-SRC_URI[sha256sum] = "bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5"
diff --git a/meta-python/recipes-devtools/python/python3-colorlog_6.8.2.bb b/meta-python/recipes-devtools/python/python3-colorlog_6.8.2.bb
new file mode 100644
index 0000000000..c26f4bb70e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-colorlog_6.8.2.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "A colored formatter for the python logging module"
+HOMEPAGE = "https://github.com/borntyping/python-colorlog"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5c3c6ebdec7792ae12df8d1c0a46b26a"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "colorlog"
+
+SRC_URI[sha256sum] = "3e3e079a41feb5a1b64f978b5ea4f46040a94f11f0e8bbb8261e3dbbeca64d44"
+
+RDEPENDS:${PN} += "python3-logging"
diff --git a/meta-python/recipes-devtools/python/python3-colorzero_2.0.bb b/meta-python/recipes-devtools/python/python3-colorzero_2.0.bb
index 1a331d13fd..fc1615e670 100644
--- a/meta-python/recipes-devtools/python/python3-colorzero_2.0.bb
+++ b/meta-python/recipes-devtools/python/python3-colorzero_2.0.bb
@@ -7,7 +7,10 @@ HOMEPAGE = " https://github.com/waveform80/colorzero "
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ae6c62710c0646f3c60d1ad812ea9bf9"
-RDEPENDS:${PN} = "python3-image"
+RDEPENDS:${PN} += " \
+ python3-image \
+ python3-numbers \
+"
SRC_URI[sha256sum] = "e7d5a5c26cd0dc37b164ebefc609f388de24f8593b659191e12d85f8f9d5eb58"
diff --git a/meta-python/recipes-devtools/python/python3-configargparse_1.5.3.bb b/meta-python/recipes-devtools/python/python3-configargparse_1.5.3.bb
deleted file mode 100644
index 7d21375548..0000000000
--- a/meta-python/recipes-devtools/python/python3-configargparse_1.5.3.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables."
-HOMEPAGE = "https://github.com/bw2/ConfigArgParse"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=da746463714cc35999ed9a42339f2943"
-
-SRC_URI[sha256sum] = "1b0b3cbf664ab59dada57123c81eff3d9737e0d11d8cf79e3d6eb10823f1739f"
-
-PYPI_PACKAGE = "ConfigArgParse"
-
-inherit pypi setuptools3
-
-PACKAGECONFIG ?= "yaml"
-PACKAGECONFIG[yaml] = ",,,${PYTHON_PN}-pyyaml"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-json \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-configargparse_1.7.bb b/meta-python/recipes-devtools/python/python3-configargparse_1.7.bb
new file mode 100644
index 0000000000..1c49d891d2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-configargparse_1.7.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables."
+HOMEPAGE = "https://github.com/bw2/ConfigArgParse"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=da746463714cc35999ed9a42339f2943"
+
+SRC_URI[sha256sum] = "e7067471884de5478c58a511e529f0f9bd1c66bfef1dea90935438d6c23306d1"
+
+PYPI_PACKAGE = "ConfigArgParse"
+
+inherit pypi setuptools3
+
+PACKAGECONFIG ?= "yaml"
+PACKAGECONFIG[yaml] = ",,,python3-pyyaml"
+
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-shell \
+ python3-json \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-configobj/0001-Switch-from-using-distutils-to-setuptools.patch b/meta-python/recipes-devtools/python/python3-configobj/0001-Switch-from-using-distutils-to-setuptools.patch
deleted file mode 100644
index ed6ceca8e1..0000000000
--- a/meta-python/recipes-devtools/python/python3-configobj/0001-Switch-from-using-distutils-to-setuptools.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From ad9024e50a9df4a2b8a1a019e07bb133c3df31bf Mon Sep 17 00:00:00 2001
-From: Daniel Watkins <daniel@daniel-watkins.co.uk>
-Date: Thu, 28 Aug 2014 18:49:04 +0200
-Subject: [PATCH] Switch from using distutils to setuptools.
-
-Upstream-Status: Backport
-
-Signed-off-by: Tim Orling <tim.orling@konsulko.com>
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index c6d57a6..6755ab4 100644
---- a/setup.py
-+++ b/setup.py
-@@ -12,7 +12,7 @@
- # http://opensource.org/licenses/BSD-3-Clause
- import os
- import sys
--from distutils.core import setup
-+from setuptools import setup
- # a simple import wouldn't work if we moved towards a package with __init__
- from _version import __version__
-
---
-2.30.2
-
diff --git a/meta-python/recipes-devtools/python/python3-configobj_5.0.6.bb b/meta-python/recipes-devtools/python/python3-configobj_5.0.6.bb
deleted file mode 100644
index 1125a6389d..0000000000
--- a/meta-python/recipes-devtools/python/python3-configobj_5.0.6.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Config file reading, writing and validation."
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://configobj.py;md5=a7c3968dd866dfd23e91e125b669ab21"
-
-PYPI_PACKAGE = "configobj"
-SRC_URI[sha256sum] = "a2f5650770e1c87fb335af19a9b7eb73fc05ccf22144eb68db7d00cd2bcb0902"
-
-SRC_URI += "file://0001-Switch-from-using-distutils-to-setuptools.patch"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-configobj_5.0.8.bb b/meta-python/recipes-devtools/python/python3-configobj_5.0.8.bb
new file mode 100644
index 0000000000..8dc706fdfd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-configobj_5.0.8.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Config file reading, writing and validation."
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3d6f99b84d9a94610c62e48fa2e59e72"
+
+PYPI_PACKAGE = "configobj"
+SRC_URI[sha256sum] = "6f704434a07dc4f4dc7c9a745172c1cad449feb548febd9f7fe362629c627a97"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-pprint \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb b/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb
deleted file mode 100644
index 2bb196c209..0000000000
--- a/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "A Python library for building configuration shells"
-DESCRIPTION = "configshell-fb is a Python library that provides a framework for \
-building simple but nice CLI-based applications. This runs with Python 2 and \
-2to3 is run by setup.py to run on Python 3."
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1dece7821bf3fd70fe1309eaa37d52a2"
-
-SRC_URI = "git://github.com/open-iscsi/configshell-fb.git;protocol=https;branch=master"
-SRCREV = "d74a33b69f688ed9b8b28033835303604639d4eb"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-PIP_INSTALL_PACKAGE = "configshell_fb"
-
-RDEPENDS:${PN} += "python3-modules python3-fcntl python3-six"
diff --git a/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.30.bb b/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.30.bb
new file mode 100644
index 0000000000..aa14c99e8b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.30.bb
@@ -0,0 +1,18 @@
+SUMMARY = "A Python library for building configuration shells"
+DESCRIPTION = "configshell-fb is a Python library that provides a framework for \
+building simple but nice CLI-based applications. This runs with Python 2 and \
+2to3 is run by setup.py to run on Python 3."
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1dece7821bf3fd70fe1309eaa37d52a2"
+
+SRC_URI[sha256sum] = "41f6b7eaa7c9ff422acdc910762fd39ef3333a365918463fef8b398d857170fe"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} += " \
+ python3-fcntl \
+ python3-modules \
+ python3-pyparsing \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb b/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb
deleted file mode 100644
index 7f9b0326fa..0000000000
--- a/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Symbolic constants in Python"
-HOMEPAGE = "https://github.com/twisted/constantly"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e393e4ddd223e3a74982efa784f89fd7"
-
-SRC_URI[md5sum] = "f0762f083d83039758e53f8cf0086eef"
-SRC_URI[sha256sum] = "586372eb92059873e29eba4f9dec8381541b4d3834660707faf8ba59146dfc35"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "${PYTHON_PN}-json"
diff --git a/meta-python/recipes-devtools/python/python3-constantly_23.10.4.bb b/meta-python/recipes-devtools/python/python3-constantly_23.10.4.bb
new file mode 100644
index 0000000000..2df501aaa6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-constantly_23.10.4.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Symbolic constants in Python"
+HOMEPAGE = "https://github.com/twisted/constantly"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e393e4ddd223e3a74982efa784f89fd7"
+
+SRC_URI[sha256sum] = "aa92b70a33e2ac0bb33cd745eb61776594dc48764b06c35e0efd050b7f1c7cbd"
+
+inherit pypi python_poetry_core
+
+DEPENDS += "python3-versioneer-native"
+
+RDEPENDS:${PN} += "python3-json"
diff --git a/meta-python/recipes-devtools/python/python3-covdefaults/run-ptest b/meta-python/recipes-devtools/python/python3-covdefaults/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-covdefaults/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-covdefaults_2.3.0.bb b/meta-python/recipes-devtools/python/python3-covdefaults_2.3.0.bb
new file mode 100644
index 0000000000..7391c3ae2e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-covdefaults_2.3.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "A coverage plugin to provide sensible default settings"
+HOMEPAGE = "https://github.com/asottile/covdefaults"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a3da826da635201a80d2fb40f3034929"
+
+# Use GitHub SRC_URI, as pypi package does not include tests
+SRC_URI += " \
+ git://github.com/asottile/covdefaults.git;branch=main;protocol=https \
+ file://run-ptest \
+"
+
+SRCREV = "007f5aff5d1c817883385a5f61f742dd11776dc6"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3 ptest
+
+RDEPENDS:${PN} += " \
+ python3-coverage \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}
+ cp -rf ${S}/tests ${D}${PTEST_PATH}
+}
diff --git a/meta-python/recipes-devtools/python/python3-coverage_6.4.4.bb b/meta-python/recipes-devtools/python/python3-coverage_6.4.4.bb
deleted file mode 100644
index 5bff96901c..0000000000
--- a/meta-python/recipes-devtools/python/python3-coverage_6.4.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Code coverage measurement for Python"
-HOMEPAGE = "https://coverage.readthedocs.io"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93"
-
-SRC_URI[sha256sum] = "e16c45b726acb780e1e6f88b286d3c10b3914ab03438f32117c4aa52d7f30d58"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-sqlite3 \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-xml \
- ${PYTHON_PN}-crypt \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-io \
-"
diff --git a/meta-python/recipes-devtools/python/python3-coverage_7.4.1.bb b/meta-python/recipes-devtools/python/python3-coverage_7.4.1.bb
new file mode 100644
index 0000000000..b3da5d5716
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-coverage_7.4.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Code coverage measurement for Python"
+HOMEPAGE = "https://coverage.readthedocs.io"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93"
+
+SRC_URI[sha256sum] = "1ed4b95480952b1a26d863e546fa5094564aa0065e1e5f0d4d0041f293251d04"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-crypt \
+ python3-io \
+ python3-json \
+ python3-multiprocessing \
+ python3-pprint \
+ python3-shell \
+ python3-sqlite3 \
+ python3-tomllib \
+ python3-xml \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cppy_1.2.1.bb b/meta-python/recipes-devtools/python/python3-cppy_1.2.1.bb
index 270f74963d..7817401fa4 100644
--- a/meta-python/recipes-devtools/python/python3-cppy_1.2.1.bb
+++ b/meta-python/recipes-devtools/python/python3-cppy_1.2.1.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=0bfb3e39b13587f0028f17baf0e42371"
SRC_URI[sha256sum] = "83b43bf17b1085ac15c5debdb42154f138b928234b21447358981f69d0d6fe1b"
-RDEPENDS:${PN} += "python3-setuptools python3-distutils"
+RDEPENDS:${PN} += "python3-setuptools"
inherit pypi python_setuptools_build_meta
diff --git a/meta-python/recipes-devtools/python/python3-crc32c_2.3.bb b/meta-python/recipes-devtools/python/python3-crc32c_2.3.bb
index 2032568950..da756ea074 100644
--- a/meta-python/recipes-devtools/python/python3-crc32c_2.3.bb
+++ b/meta-python/recipes-devtools/python/python3-crc32c_2.3.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = " \
file://LICENSE;md5=4fbd65380cdd255951079008b364516c \
file://LICENSE.google-crc32c;md5=e9ed01b5e5ac9eae23fc2bb33701220c \
file://LICENSE.slice-by-8;md5=6b3bc7709d6b2db6646ec2467310ff6b \
- file://crc32c_adler.c;startline=9;endline=24;md5=c60e6e55d0e5d95effa6fad27db0711a \
+ file://crc32c_adler.c;beginline=9;endline=24;md5=9c8bd2afd2d340fd37c038759cd4eff8 \
"
SRC_URI[sha256sum] = "17ce6c596ad0d53df52dcd72defb66984aeabd98fbefea7ba848a6b6bdece36a"
diff --git a/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb b/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb
index f8f1683601..11d36b53ec 100644
--- a/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb
+++ b/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb
@@ -9,6 +9,6 @@ SRC_URI[sha256sum] = "dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f2
inherit pypi setuptools3
-RDEPENDS:${PN} += "${PYTHON_PN}-unittest"
+RDEPENDS:${PN} += "python3-unittest"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-croniter_1.3.7.bb b/meta-python/recipes-devtools/python/python3-croniter_1.3.7.bb
deleted file mode 100644
index c84affa851..0000000000
--- a/meta-python/recipes-devtools/python/python3-croniter_1.3.7.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "croniter provides iteration for datetime object with cron like format"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=b8ee59850b882cbf623188489ea748e2"
-
-PYPI_PACKAGE = "croniter"
-
-SRC_URI[sha256sum] = "72ef78d0f8337eb35393b8893ebfbfbeb340f2d2ae47e0d2d78130e34b0dd8b9"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " python3-dateutil python3-natsort"
diff --git a/meta-python/recipes-devtools/python/python3-croniter_2.0.3.bb b/meta-python/recipes-devtools/python/python3-croniter_2.0.3.bb
new file mode 100644
index 0000000000..ad80574a95
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-croniter_2.0.3.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "croniter provides iteration for datetime object with cron like format"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b8ee59850b882cbf623188489ea748e2"
+
+PYPI_PACKAGE = "croniter"
+
+SRC_URI[sha256sum] = "28763ad39c404e159140874f08010cfd8a18f4c2a7cea1ce73e9506a4380cfc1"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-dateutil \
+ python3-natsort \
+ python3-pytz \
+"
diff --git a/meta-python/recipes-devtools/python/python3-custom-inherit_2.3.1.bb b/meta-python/recipes-devtools/python/python3-custom-inherit_2.3.1.bb
deleted file mode 100644
index c0e10448ea..0000000000
--- a/meta-python/recipes-devtools/python/python3-custom-inherit_2.3.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "A Python package that provides customized docstring inheritance schemes between derived classes and their parents."
-HOMEPAGE = "https://github.com/rsokl/custom_inherit"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=f910a85a4c3da51edf780f17a7608434"
-
-PYPI_PACKAGE = "custom_inherit"
-
-SRC_URI[sha256sum] = "a0d104847b4cc1ae24e00061fc2e11da8766b019bf4c8c753822347366c8c49f"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb b/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb
new file mode 100644
index 0000000000..e7409f77e6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-custom-inherit_2.4.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "A Python package that provides customized docstring inheritance schemes between derived classes and their parents."
+HOMEPAGE = "https://github.com/rsokl/custom_inherit"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=f910a85a4c3da51edf780f17a7608434"
+
+PYPI_PACKAGE = "custom_inherit"
+
+SRC_URI += "file://0001-versioneer.py-do-not-use-SafeConfigParser.patch"
+SRC_URI[sha256sum] = "7052eb337bcce83551815264391cc4efc2bf70b295a3c52aba64f1ab57c3a8a2"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-json \
+ python3-stringold \
+"
diff --git a/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb b/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
deleted file mode 100644
index 70e9831770..0000000000
--- a/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Convex optimization package"
-HOMEPAGE = "http://cvxopt.org"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ba1a8a73d8ebea5c47a1173aaf476ddd"
-
-SRC_URI = "git://github.com/cvxopt/cvxopt;protocol=https;branch=master"
-
-SRCREV = "d5a21cf1da62e4269176384b1ff62edac5579f94"
-
-S = "${WORKDIR}/git"
-
-RDEPENDS:${PN} += "lapack suitesparse"
-DEPENDS += "lapack suitesparse"
-
-inherit setuptools3
-
-export CVXOPT_BLAS_LIB_DIR = "${STAGING_LIBDIR}"
-export CVXOPT_SUITESPARSE_LIB_DIR = "${STAGING_LIBDIR}"
-export CVXOPT_SUITESPARSE_INC_DIR = "${STAGING_INCDIR}"
-
-EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-python/recipes-devtools/python/python3-cvxopt_1.3.2.bb b/meta-python/recipes-devtools/python/python3-cvxopt_1.3.2.bb
new file mode 100644
index 0000000000..d7d4b22fbd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cvxopt_1.3.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Convex optimization package"
+HOMEPAGE = "http://cvxopt.org"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=66ec4f8e53d3e733a8c26d5ca3830fba"
+
+SRC_URI = "git://github.com/cvxopt/cvxopt;protocol=https;branch=master"
+
+SRCREV = "3b718ee560b3b97d6255c55f0ed7f64cb4b72082"
+
+S = "${WORKDIR}/git"
+
+RDEPENDS:${PN} += "lapack suitesparse"
+DEPENDS += "lapack suitesparse"
+
+inherit setuptools3
+
+export CVXOPT_BLAS_LIB_DIR = "${STAGING_LIBDIR}"
+export CVXOPT_SUITESPARSE_LIB_DIR = "${STAGING_LIBDIR}"
+export CVXOPT_SUITESPARSE_INC_DIR = "${STAGING_INCDIR}"
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-python/recipes-devtools/python/python3-cycler_0.11.0.bb b/meta-python/recipes-devtools/python/python3-cycler_0.11.0.bb
deleted file mode 100644
index 59492e8bfa..0000000000
--- a/meta-python/recipes-devtools/python/python3-cycler_0.11.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Composable style cycles"
-HOMEPAGE = "http://github.com/matplotlib/cycler"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7713fe42cd766b15c710e19392bfa811"
-
-SRC_URI[sha256sum] = "9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- python3-core \
- python3-six \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cycler_0.12.1.bb b/meta-python/recipes-devtools/python/python3-cycler_0.12.1.bb
new file mode 100644
index 0000000000..574083b61f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cycler_0.12.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Composable style cycles"
+HOMEPAGE = "http://github.com/matplotlib/cycler"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7713fe42cd766b15c710e19392bfa811"
+
+SRC_URI[sha256sum] = "88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-six \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cytoolz_0.12.0.bb b/meta-python/recipes-devtools/python/python3-cytoolz_0.12.0.bb
deleted file mode 100644
index b6977b029a..0000000000
--- a/meta-python/recipes-devtools/python/python3-cytoolz_0.12.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Cython implementation of the toolz package, which provides high \
-performance utility functions for iterables, functions, and dictionaries."
-HOMEPAGE = "https://github.com/pytoolz/cytoolz"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=efbcddfa5610ca0c07ecfa274a82b373"
-
-SRC_URI[sha256sum] = "c105b05f85e03fbcd60244375968e62e44fe798c15a3531c922d531018d22412"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-cython-native"
-RDEPENDS:${PN} += "${PYTHON_PN}-toolz"
diff --git a/meta-python/recipes-devtools/python/python3-cytoolz_0.12.3.bb b/meta-python/recipes-devtools/python/python3-cytoolz_0.12.3.bb
new file mode 100644
index 0000000000..f9c9704d7f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cytoolz_0.12.3.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Cython implementation of the toolz package, which provides high \
+performance utility functions for iterables, functions, and dictionaries."
+HOMEPAGE = "https://github.com/pytoolz/cytoolz"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d422ebce3e9c6447563bd410e9b22f2e"
+
+SRC_URI[sha256sum] = "4503dc59f4ced53a54643272c61dc305d1dbbfbd7d6bdf296948de9f34c3a282"
+
+inherit pypi setuptools3
+
+DEPENDS += "python3-cython-native"
+RDEPENDS:${PN} += "python3-toolz"
diff --git a/meta-python/recipes-devtools/python/python3-daemon_3.0.1.bb b/meta-python/recipes-devtools/python/python3-daemon_3.0.1.bb
new file mode 100644
index 0000000000..715d3bf120
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-daemon_3.0.1.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Library to implement a well-behaved Unix daemon process"
+HOMEPAGE = "https://pagure.io/python-daemon/"
+SECTION = "devel/python"
+
+DEPENDS += "python3-docutils-native"
+RDEPENDS:${PN} = "python3-docutils \
+ python3-lockfile (>= 0.10) \
+ python3-resource \
+"
+
+LICENSE = "Apache-2.0 & GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://README;md5=a3a94c615dc969a70525f1eebbacf235"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "6c57452372f7eaff40934a1c03ad1826bf5e793558e87fef49131e6464b4dae5"
+
+PYPI_PACKAGE = "python-daemon"
diff --git a/meta-python/recipes-devtools/python/python3-dateparser_1.1.0.bb b/meta-python/recipes-devtools/python/python3-dateparser_1.1.0.bb
deleted file mode 100644
index 5b661a0863..0000000000
--- a/meta-python/recipes-devtools/python/python3-dateparser_1.1.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "Provides modules to easily parse localized dates in almost any string formats commonly found on web pages"
-HOMEPAGE = "https://github.com/scrapinghub/dateparser"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3d3ed25571191e7aa3f55d0a6efe0051"
-
-SRC_URI[sha256sum] = "faa2b97f51f3b5ff1ba2f17be90de2b733fb6191f89b4058787473e8202f3044"
-
-PYPI_PACKAGE = "dateparser"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-dateutil \
- ${PYTHON_PN}-tzlocal \
- ${PYTHON_PN}-ruamel-yaml \
-"
-
-# Ommitted ${PYTHON_PN}-convertdate, ${PYTHON_PN}-jdatetime ${PYTHON_PN}-umalqurra
diff --git a/meta-python/recipes-devtools/python/python3-dateparser_1.2.0.bb b/meta-python/recipes-devtools/python/python3-dateparser_1.2.0.bb
new file mode 100644
index 0000000000..a08564b3f5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dateparser_1.2.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Provides modules to easily parse localized dates in almost any string formats commonly found on web pages"
+HOMEPAGE = "https://github.com/scrapinghub/dateparser"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3d3ed25571191e7aa3f55d0a6efe0051"
+
+SRC_URI[sha256sum] = "7975b43a4222283e0ae15be7b4999d08c9a70e2d378ac87385b1ccf2cffbbb30"
+
+PYPI_PACKAGE = "dateparser"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
+RDEPENDS:${PN} += " \
+ python3-dateutil \
+ python3-logging \
+ python3-pytz \
+ python3-regex \
+ python3-ruamel-yaml \
+ python3-tzlocal \
+"
+
+# Ommitted python3-convertdate, python3-jdatetime python3-umalqurra
diff --git a/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb b/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb
deleted file mode 100644
index e281f0f285..0000000000
--- a/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Extensions to the standard Python datetime module"
-DESCRIPTION = "The dateutil module provides powerful extensions to the datetime module available in the Python standard library."
-HOMEPAGE = "https://dateutil.readthedocs.org"
-LICENSE = "BSD-3-Clause & Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e3155c7bdc71f66e02678411d2abf996"
-
-SRC_URI[sha256sum] = "0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"
-
-PYPI_PACKAGE = "python-dateutil"
-PIP_INSTALL_PACKAGE = "python_dateutil"
-inherit pypi python_setuptools_build_meta
-
-PACKAGES =+ "${PN}-zoneinfo"
-FILES:${PN}-zoneinfo = "${libdir}/${PYTHON_DIR}/site-packages/dateutil/zoneinfo"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-stringold \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb b/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb
new file mode 100644
index 0000000000..1f7a4a03fd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dateutil_2.9.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Extensions to the standard Python datetime module"
+DESCRIPTION = "The dateutil module provides powerful extensions to the datetime module available in the Python standard library."
+HOMEPAGE = "https://dateutil.readthedocs.org"
+LICENSE = "BSD-3-Clause & Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e3155c7bdc71f66e02678411d2abf996"
+
+SRC_URI[sha256sum] = "78e73e19c63f5b20ffa567001531680d939dc042bf7850431877645523c66709"
+
+PYPI_PACKAGE = "python-dateutil"
+inherit pypi python_setuptools_build_meta
+
+PACKAGES =+ "${PN}-zoneinfo"
+FILES:${PN}-zoneinfo = "${PYTHON_SITEPACKAGES_DIR}/dateutil/zoneinfo"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} = "\
+ python3-datetime \
+ python3-numbers \
+ python3-six \
+ python3-stringold \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-dbus-fast_2.21.1.bb b/meta-python/recipes-devtools/python/python3-dbus-fast_2.21.1.bb
new file mode 100644
index 0000000000..9e2566175d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dbus-fast_2.21.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A faster version of dbus-next originally from the great DBus next library."
+HOMEPAGE = "https://github.com/bluetooth-devices/dbus-fast"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=729e372b5ea0168438e4fd4a00a04947"
+
+SRC_URI[sha256sum] = "87b852d2005f1d59399ca51c5f3538f28a4742d739d7abe82b7ae8d01d8a5d02"
+
+PYPI_PACKAGE = "dbus_fast"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-core (>=3.7) \
+ python3-async-timeout \
+"
diff --git a/meta-python/recipes-devtools/python/python3-dbus-next_0.2.3.bb b/meta-python/recipes-devtools/python/python3-dbus-next_0.2.3.bb
index 3ee11b9d55..9f6aa7ed7f 100644
--- a/meta-python/recipes-devtools/python/python3-dbus-next_0.2.3.bb
+++ b/meta-python/recipes-devtools/python/python3-dbus-next_0.2.3.bb
@@ -10,3 +10,8 @@ PYPI_PACKAGE = "dbus_next"
inherit pypi setuptools3
BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-xml \
+"
diff --git a/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb b/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
index b1ba953922..59da4545aa 100644
--- a/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
+++ b/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
@@ -12,8 +12,6 @@ S = "${WORKDIR}/git"
inherit setuptools3
-PIP_INSTALL_PACKAGE = "DBussy"
-
RDEPENDS:${PN} += "\
python3-asyncio \
python3-core \
diff --git a/meta-python/recipes-devtools/python/python3-decorator_5.1.1.bb b/meta-python/recipes-devtools/python/python3-decorator_5.1.1.bb
index c9c6f9a62e..f330376243 100644
--- a/meta-python/recipes-devtools/python/python3-decorator_5.1.1.bb
+++ b/meta-python/recipes-devtools/python/python3-decorator_5.1.1.bb
@@ -14,5 +14,7 @@ SRC_URI[sha256sum] = "637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253a
inherit pypi setuptools3
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-stringold \
+ python3-stringold \
"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-decouple_3.6.bb b/meta-python/recipes-devtools/python/python3-decouple_3.6.bb
deleted file mode 100644
index 772ee7faf9..0000000000
--- a/meta-python/recipes-devtools/python/python3-decouple_3.6.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Strict separation of settings from code."
-HOMEPAGE = "https://github.com/henriquebastos/python-decouple/"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a46375b26bb7d7603565d829a2a51782"
-
-SRC_URI[sha256sum] = "2838cdf77a5cf127d7e8b339ce14c25bceb3af3e674e039d4901ba16359968c7"
-
-PYPI_PACKAGE = "python-decouple"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- python3-shell \
- python3-stringold \
-"
diff --git a/meta-python/recipes-devtools/python/python3-decouple_3.8.bb b/meta-python/recipes-devtools/python/python3-decouple_3.8.bb
new file mode 100644
index 0000000000..20d614a423
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-decouple_3.8.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Strict separation of settings from code."
+HOMEPAGE = "https://github.com/henriquebastos/python-decouple/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a46375b26bb7d7603565d829a2a51782"
+
+SRC_URI[sha256sum] = "ba6e2657d4f376ecc46f77a3a615e058d93ba5e465c01bbe57289bfb7cce680f"
+
+PYPI_PACKAGE = "python-decouple"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-shell \
+ python3-stringold \
+"
diff --git a/meta-python/recipes-devtools/python/python3-defusedxml_0.7.1.bb b/meta-python/recipes-devtools/python/python3-defusedxml_0.7.1.bb
index 3396c7262d..8ec6680d8f 100644
--- a/meta-python/recipes-devtools/python/python3-defusedxml_0.7.1.bb
+++ b/meta-python/recipes-devtools/python/python3-defusedxml_0.7.1.bb
@@ -10,3 +10,5 @@ SRC_URI[sha256sum] = "1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51
inherit pypi setuptools3
BBCLASSEXTEND = "native"
+
+RDEPENDS:${PN} += "python3-xml"
diff --git a/meta-python/recipes-devtools/python/python3-deprecated_1.2.13.bb b/meta-python/recipes-devtools/python/python3-deprecated_1.2.13.bb
deleted file mode 100644
index 6ea47f4292..0000000000
--- a/meta-python/recipes-devtools/python/python3-deprecated_1.2.13.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Python @deprecated decorator to deprecate old python classes, functions or methods."
-HOMEPAGE = "https://deprecated.readthedocs.io/en/latest/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=44288e26f4896bdab14072d4fa35ff01"
-
-PYPI_PACKAGE = "Deprecated"
-SRC_URI[sha256sum] = "43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-wrapt \
-"
diff --git a/meta-python/recipes-devtools/python/python3-deprecated_1.2.14.bb b/meta-python/recipes-devtools/python/python3-deprecated_1.2.14.bb
new file mode 100644
index 0000000000..49d5f01c8f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-deprecated_1.2.14.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Python @deprecated decorator to deprecate old python classes, functions or methods."
+HOMEPAGE = "https://deprecated.readthedocs.io/en/latest/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=44288e26f4896bdab14072d4fa35ff01"
+
+PYPI_PACKAGE = "Deprecated"
+SRC_URI[sha256sum] = "e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-wrapt \
+"
diff --git a/meta-python/recipes-devtools/python/python3-dill_0.3.5.1.bb b/meta-python/recipes-devtools/python/python3-dill_0.3.5.1.bb
deleted file mode 100644
index d9110e3fd4..0000000000
--- a/meta-python/recipes-devtools/python/python3-dill_0.3.5.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Serialize all of python"
-HOMEPAGE = "https://pypi.org/project/dill/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=61f24e44fc855bde43ed5a1524a37bc4"
-
-SRC_URI[sha256sum] = "d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE_EXT = "tar.gz"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-multiprocessing \
- ${PYTHON_PN}-logging \
-"
diff --git a/meta-python/recipes-devtools/python/python3-dill_0.3.8.bb b/meta-python/recipes-devtools/python/python3-dill_0.3.8.bb
new file mode 100644
index 0000000000..04e7f4bfb8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dill_0.3.8.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Serialize all of python"
+HOMEPAGE = "https://pypi.org/project/dill/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a41509b57cc475ed93f8cb1dbbfaeec1"
+
+SRC_URI[sha256sum] = "3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE_EXT = "tar.gz"
+
+RDEPENDS:${PN} += "\
+ python3-multiprocessing \
+ python3-logging \
+ python3-profile \
+ python3-core \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-dirty-equals_0.7.1.bb b/meta-python/recipes-devtools/python/python3-dirty-equals_0.7.1.bb
new file mode 100644
index 0000000000..ea9303b17e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dirty-equals_0.7.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Doing dirty (but extremely useful) things with equals."
+DESCRIPTION = "dirty-equals is a python library that (mis)uses the \
+__eq__ method to make python code (generally unit tests) more \
+declarative and therefore easier to read and write.\
+\
+dirty-equals can be used in whatever context you like, but it comes \
+into its own when writing unit tests for applications where you're \
+commonly checking the response to API calls and the contents of a database."
+HOMEPAGE = "https://github.com/samuelcolvin/dirty-equals"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ab599c188b4a314d2856b3a55030c75c"
+
+SRC_URI[sha256sum] = "a580513f3285e93656a770a04e428f8bfc513848877bf278282dbfbb907fdbb4"
+
+S = "${WORKDIR}/dirty_equals-${PV}"
+
+inherit pypi python_hatchling
+
+PYPI_PACKAGE = "dirty_equals"
+
+RDEPENDS:${PN} += "python3-pytz"
diff --git a/meta-python/recipes-devtools/python/python3-diskcache_5.4.0.bb b/meta-python/recipes-devtools/python/python3-diskcache_5.4.0.bb
deleted file mode 100644
index 84d42e5722..0000000000
--- a/meta-python/recipes-devtools/python/python3-diskcache_5.4.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "Disk Cache -- Disk and file backed persistent cache."
-HOMEPAGE = "http://www.grantjenks.com/docs/diskcache/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c60ef82f0f40155453f6d5f2c94b6e8e"
-
-SRC_URI[sha256sum] = "8879eb8c9b4a2509a5e633d2008634fb2b0b35c2b36192d89655dbde02419644"
-
-PYPI_PACKAGE = "diskcache"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-sqlite3 \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-threading \
-"
-
-CLEANBROKEN = "1"
diff --git a/meta-python/recipes-devtools/python/python3-diskcache_5.6.3.bb b/meta-python/recipes-devtools/python/python3-diskcache_5.6.3.bb
new file mode 100644
index 0000000000..09b06553df
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-diskcache_5.6.3.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Disk Cache -- Disk and file backed persistent cache."
+HOMEPAGE = "http://www.grantjenks.com/docs/diskcache/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c60ef82f0f40155453f6d5f2c94b6e8e"
+
+SRC_URI[sha256sum] = "2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc"
+
+PYPI_PACKAGE = "diskcache"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+ python3-json \
+ python3-pickle \
+ python3-sqlite3 \
+ python3-core \
+ python3-io \
+ python3-compression \
+ python3-threading \
+"
+
+CLEANBROKEN = "1"
diff --git a/meta-python/recipes-devtools/python/python3-distlib_0.3.8.bb b/meta-python/recipes-devtools/python/python3-distlib_0.3.8.bb
new file mode 100644
index 0000000000..41a66479cc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-distlib_0.3.8.bb
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: MIT
+# Copyright (C) 2023 iris-GmbH infrared & intelligent sensors
+
+SUMMARY = "A library which implements low-level functions that relate to packaging and distribution of Python software."
+HOMEPAGE = "https://github.com/pypa/distlib"
+LICENSE = "PSF-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f6a11430d5cd6e2cd3832ee94f22ddfc"
+
+SRC_URI[sha256sum] = "1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_setuptools_build_meta
diff --git a/meta-python/recipes-devtools/python/python3-distro_1.7.0.bb b/meta-python/recipes-devtools/python/python3-distro_1.7.0.bb
deleted file mode 100644
index f069234d1b..0000000000
--- a/meta-python/recipes-devtools/python/python3-distro_1.7.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Distro is an OS platform information API"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
-
-PYPI_PACKAGE = "distro"
-
-SRC_URI[sha256sum] = "151aeccf60c216402932b52e40ee477a939f8d58898927378a02abbe852c1c39"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-shell \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-distro_1.9.0.bb b/meta-python/recipes-devtools/python/python3-distro_1.9.0.bb
new file mode 100644
index 0000000000..08a9526783
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-distro_1.9.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Distro is an OS platform information API"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
+
+PYPI_PACKAGE = "distro"
+
+SRC_URI[sha256sum] = "2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} = "\
+ python3-core \
+ python3-json \
+ python3-logging \
+ python3-shell \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-django_4.0.2.bb b/meta-python/recipes-devtools/python/python3-django_4.0.2.bb
deleted file mode 100644
index 7f933d1a37..0000000000
--- a/meta-python/recipes-devtools/python/python3-django_4.0.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require python-django.inc
-inherit setuptools3
-
-SRC_URI[sha256sum] = "110fb58fb12eca59e072ad59fc42d771cd642dd7a2f2416582aa9da7a8ef954a"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-sqlparse \
- ${PYTHON_PN}-asgiref \
-"
-
-# Set DEFAULT_PREFERENCE so that the LTS version of django is built by
-# default. To build the 4.x branch,
-# PREFERRED_VERSION_python3-django = "4.0.2" can be added to local.conf
-DEFAULT_PREFERENCE = "-1"
diff --git a/meta-python/recipes-devtools/python/python3-django_4.1.bb b/meta-python/recipes-devtools/python/python3-django_4.1.bb
deleted file mode 100644
index 44ea5394da..0000000000
--- a/meta-python/recipes-devtools/python/python3-django_4.1.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require python-django.inc
-inherit setuptools3
-
-SRC_URI[sha256sum] = "032f8a6fc7cf05ccd1214e4a2e21dfcd6a23b9d575c6573cacc8c67828dbe642"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-sqlparse \
- ${PYTHON_PN}-asgiref \
-"
diff --git a/meta-python/recipes-devtools/python/python3-django_4.2.11.bb b/meta-python/recipes-devtools/python/python3-django_4.2.11.bb
new file mode 100644
index 0000000000..0642b7e7c3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-django_4.2.11.bb
@@ -0,0 +1,14 @@
+require python-django.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "6e6ff3db2d8dd0c986b4eec8554c8e4f919b5c1ff62a5b4390c17aff2ed6e5c4"
+
+RDEPENDS:${PN} += "\
+ python3-sqlparse \
+ python3-asgiref \
+"
+
+# Set DEFAULT_PREFERENCE so that the LTS version of django is built by
+# default. To build the 4.x branch,
+# PREFERRED_VERSION_python3-django = "4.2.11" can be added to local.conf
+DEFAULT_PREFERENCE = "-1"
diff --git a/meta-python/recipes-devtools/python/python3-django_5.0.3.bb b/meta-python/recipes-devtools/python/python3-django_5.0.3.bb
new file mode 100644
index 0000000000..14c41a626f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-django_5.0.3.bb
@@ -0,0 +1,9 @@
+require python-django.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "5fb37580dcf4a262f9258c1f4373819aacca906431f505e4688e37f3a99195df"
+
+RDEPENDS:${PN} += "\
+ python3-sqlparse \
+ python3-asgiref \
+"
diff --git a/meta-python/recipes-devtools/python/python3-djangorestframework_3.14.0.bb b/meta-python/recipes-devtools/python/python3-djangorestframework_3.14.0.bb
deleted file mode 100644
index fee8a3a029..0000000000
--- a/meta-python/recipes-devtools/python/python3-djangorestframework_3.14.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "djangorestframework"
-DESCRIPTION = "pip3 install djangorestframework"
-HOMEPAGE = "https://pypi.python.org/pypi/djangorestframework"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7879a5a716147a784f7e524c9cf103c1"
-
-SRC_URI[sha256sum] = "579a333e6256b09489cbe0a067e66abe55c6595d8926be6b99423786334350c8"
-
-PYPI_PACKAGE = "djangorestframework"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-django \
-"
diff --git a/meta-python/recipes-devtools/python/python3-djangorestframework_3.15.1.bb b/meta-python/recipes-devtools/python/python3-djangorestframework_3.15.1.bb
new file mode 100644
index 0000000000..9515aa2296
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-djangorestframework_3.15.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "djangorestframework"
+DESCRIPTION = "pip3 install djangorestframework"
+HOMEPAGE = "https://pypi.python.org/pypi/djangorestframework"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7879a5a716147a784f7e524c9cf103c1"
+
+SRC_URI[sha256sum] = "f88fad74183dfc7144b2756d0d2ac716ea5b4c7c9840995ac3bfd8ec034333c1"
+
+PYPI_PACKAGE = "djangorestframework"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-django \
+"
diff --git a/meta-python/recipes-devtools/python/python3-dnspython/run-ptest b/meta-python/recipes-devtools/python/python3-dnspython/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-dnspython/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-dnspython/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-dnspython_2.2.1.bb b/meta-python/recipes-devtools/python/python3-dnspython_2.2.1.bb
deleted file mode 100644
index 67158fbdad..0000000000
--- a/meta-python/recipes-devtools/python/python3-dnspython_2.2.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-DESCRIPTION = "DNS toolkit for Python"
-HOMEPAGE = "http://www.dnspython.org/"
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5af50906b5929837f667dfe31052bd34"
-
-SRC_URI[sha256sum] = "0f7569a4a6ff151958b64304071d370daa3243d15941a7beedf0c9fe5105603e"
-
-inherit pypi python_poetry_core ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-DEPENDS += "\
- ${PYTHON_PN}-wheel-native \
- ${PYTHON_PN}-setuptools-scm-native \
-"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-crypt \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-math \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-threading \
-"
diff --git a/meta-python/recipes-devtools/python/python3-dnspython_2.6.1.bb b/meta-python/recipes-devtools/python/python3-dnspython_2.6.1.bb
new file mode 100644
index 0000000000..13e31afe79
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dnspython_2.6.1.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "DNS toolkit for Python"
+HOMEPAGE = "http://www.dnspython.org/"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5af50906b5929837f667dfe31052bd34"
+
+SRC_URI[sha256sum] = "e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"
+
+inherit pypi python_hatchling ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+DEPENDS += "\
+ python3-wheel-native \
+ python3-setuptools-scm-native \
+"
+
+RDEPENDS:${PN} += " \
+ python3-crypt \
+ python3-io \
+ python3-math \
+ python3-netclient \
+ python3-numbers \
+ python3-threading \
+"
diff --git a/meta-python/recipes-devtools/python/python3-dominate/run-ptest b/meta-python/recipes-devtools/python/python3-dominate/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-dominate/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-dominate/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-dominate_2.7.0.bb b/meta-python/recipes-devtools/python/python3-dominate_2.7.0.bb
deleted file mode 100644
index bee89ed754..0000000000
--- a/meta-python/recipes-devtools/python/python3-dominate_2.7.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Dominate is a Python library for creating and manipulating HTML documents using an elegant DOM API."
-LICENSE = "LGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b52f2d57d10c4f7ee67a7eb9615d5d24"
-
-SRC_URI[sha256sum] = "520101360892ebf9d0553f67d37e359ff92403d8a1e33814030503088a05da49"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-threading \
- "
diff --git a/meta-python/recipes-devtools/python/python3-dominate_2.9.1.bb b/meta-python/recipes-devtools/python/python3-dominate_2.9.1.bb
new file mode 100644
index 0000000000..054d5236e5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dominate_2.9.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Dominate is a Python library for creating and manipulating HTML documents using an elegant DOM API."
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b52f2d57d10c4f7ee67a7eb9615d5d24"
+
+SRC_URI[sha256sum] = "558284687d9b8aae1904e3d6051ad132dd4a8c0cf551b37ea4e7e42a31d19dc4"
+
+inherit pypi ptest python_setuptools_build_meta
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += "\
+ python3-numbers \
+ python3-threading \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb b/meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb
index 9e4a13cff4..eeb013d4fe 100644
--- a/meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb
+++ b/meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb
@@ -5,11 +5,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=ea70b07c354e36056bd35e17c9c3face"
inherit pypi setuptools3
-SRC_URI[md5sum] = "6bd3cc24427de753eed0656e89d5302c"
SRC_URI[sha256sum] = "fbc676aaedc8ec542056c21e5e206b8b62b8d11c3f3c5cfb32b273936da89604"
PYPI_PACKAGE = "dynamic_dispatch"
+UPSTREAM_CHECK_URI = "https://pypi.org/project/dynamic-dispatch/"
+UPSTREAM_CHECK_REGEX = "/dynamic-dispatch/(?P<pver>(\d+[\.\-_]*)+)"
+
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += "\
python3-typeguard \
diff --git a/meta-python/recipes-devtools/python/python3-ecdsa/run-ptest b/meta-python/recipes-devtools/python/python3-ecdsa/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ecdsa/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb b/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb
deleted file mode 100644
index 6a399a96fe..0000000000
--- a/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "ECDSA cryptographic signature library (pure python)"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=66ffc5e30f76cbb5358fe54b645e5a1d"
-
-DEPENDS += "python3-pip python3-pbr"
-
-PYPI_PACKAGE = "ecdsa"
-SRC_URI[sha256sum] = "190348041559e21b22a1d65cee485282ca11a6f81d503fddb84d5017e9ed1e49"
-
-inherit pypi setuptools3 python3native
-
-RDEPENDS:${PN} += "python3-six python3-gmpy2 python3-pbr"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-ecdsa_0.19.0.bb b/meta-python/recipes-devtools/python/python3-ecdsa_0.19.0.bb
new file mode 100644
index 0000000000..8e967f9259
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ecdsa_0.19.0.bb
@@ -0,0 +1,36 @@
+SUMMARY = "ECDSA cryptographic signature library (pure python)"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=66ffc5e30f76cbb5358fe54b645e5a1d"
+
+PYPI_PACKAGE = "ecdsa"
+SRC_URI[sha256sum] = "60eaad1199659900dd0af521ed462b793bbdf867432b3948e87416ae4caf6bf8"
+
+inherit pypi setuptools3 python3native ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-hypothesis \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/src/ecdsa/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-gmpy2 \
+ python3-json \
+ python3-six \
+"
+
+do_install:append() {
+ rm ${D}${PYTHON_SITEPACKAGES_DIR}/ecdsa/test_*.py
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-editor_1.0.4.bb b/meta-python/recipes-devtools/python/python3-editor_1.0.4.bb
index dffc36169e..335461c435 100644
--- a/meta-python/recipes-devtools/python/python3-editor_1.0.4.bb
+++ b/meta-python/recipes-devtools/python/python3-editor_1.0.4.bb
@@ -10,3 +10,8 @@ PYPI_PACKAGE = "python-editor"
inherit pypi setuptools3
BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+ python3-io \
+ python3-setuptools \
+"
diff --git a/meta-python/recipes-devtools/python/python3-elementpath_3.0.2.bb b/meta-python/recipes-devtools/python/python3-elementpath_3.0.2.bb
deleted file mode 100644
index 661259f467..0000000000
--- a/meta-python/recipes-devtools/python/python3-elementpath_3.0.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Provide XPath 1.0 and 2.0 selectors for Python's ElementTree XML data structures, both for the standard ElementTree library and for the lxml.etree library."
-HOMEPAGE = "https://github.com/sissaschool/elementpath"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf"
-
-SRC_URI[sha256sum] = "cca18742dc0f354f79874c41a906e6ce4cc15230b7858d22a861e1ec5946940f"
-
-PYPI_PACKAGE = "elementpath"
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-xml \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-stringold \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-elementpath_4.4.0.bb b/meta-python/recipes-devtools/python/python3-elementpath_4.4.0.bb
new file mode 100644
index 0000000000..e095cb8a32
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-elementpath_4.4.0.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Provide XPath 1.0 and 2.0 selectors for Python's ElementTree XML data structures, both for the standard ElementTree library and for the lxml.etree library."
+HOMEPAGE = "https://github.com/sissaschool/elementpath"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf"
+
+SRC_URI[sha256sum] = "dfc4b8ca3d87966dcb0df40b5b6d04a98f053683271930fad9e7fa000924dfb2"
+
+PYPI_PACKAGE = "elementpath"
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-xml \
+ python3-core \
+ python3-numbers \
+ python3-datetime \
+ python3-stringold \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-email-validator_1.3.0.bb b/meta-python/recipes-devtools/python/python3-email-validator_1.3.0.bb
deleted file mode 100644
index 76dfdd6018..0000000000
--- a/meta-python/recipes-devtools/python/python3-email-validator_1.3.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "A robust email address syntax and deliverability validation library."
-SECTION = "devel/python"
-LICENSE = "CC0-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=65d3616852dbf7b1a6d4b53b00626032"
-
-SRC_URI[sha256sum] = "553a66f8be2ec2dea641ae1d3f29017ab89e9d603d4a25cdaac39eefa283d769"
-
-PYPI_PACKAGE = "email_validator"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "python3-dnspython python3-idna"
diff --git a/meta-python/recipes-devtools/python/python3-email-validator_2.1.0.bb b/meta-python/recipes-devtools/python/python3-email-validator_2.1.0.bb
new file mode 100644
index 0000000000..7daf548cb1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-email-validator_2.1.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "A robust email address syntax and deliverability validation library."
+SECTION = "devel/python"
+LICENSE = "CC0-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=65d3616852dbf7b1a6d4b53b00626032"
+
+SRC_URI[sha256sum] = "5f511cca8856bb03251d6292ba59e7f98978aae13fa5823ddd8bf885c56a6260"
+
+PYPI_PACKAGE = "email_validator"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-dnspython python3-idna"
diff --git a/meta-python/recipes-devtools/python/python3-engineio_4.3.4.bb b/meta-python/recipes-devtools/python/python3-engineio_4.3.4.bb
deleted file mode 100644
index d89a54dc3d..0000000000
--- a/meta-python/recipes-devtools/python/python3-engineio_4.3.4.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Engine.IO server"
-HOMEPAGE = "https://github.com/miguelgrinberg/python-engineio/"
-SECTION = "devel/python"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=42d0a9e728978f0eeb759c3be91536b8"
-
-inherit pypi python_setuptools_build_meta
-
-PYPI_PACKAGE = "python-engineio"
-
-RDEPENDS:${PN} += " \
- python3-netclient \
- python3-json \
- python3-logging \
- python3-compression \
- python3-asyncio \
-"
-
-SRC_URI[sha256sum] = "d8d8b072799c36cadcdcc2b40d2a560ce09797ab3d2d596b2ad519a5e4df19ae"
diff --git a/meta-python/recipes-devtools/python/python3-engineio_4.9.0.bb b/meta-python/recipes-devtools/python/python3-engineio_4.9.0.bb
new file mode 100644
index 0000000000..790d1b44cf
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-engineio_4.9.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Engine.IO server"
+HOMEPAGE = "https://github.com/miguelgrinberg/python-engineio/"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=42d0a9e728978f0eeb759c3be91536b8"
+
+inherit pypi python_setuptools_build_meta
+
+PYPI_PACKAGE = "python-engineio"
+
+RDEPENDS:${PN} += " \
+ python3-netclient \
+ python3-json \
+ python3-logging \
+ python3-compression \
+ python3-asyncio \
+"
+
+SRC_URI[sha256sum] = "e87459c15638e567711fd156e6f9c4a402668871bed79523f0ecfec744729ec7"
diff --git a/meta-python/recipes-devtools/python/python3-et-xmlfile_1.1.0.bb b/meta-python/recipes-devtools/python/python3-et-xmlfile_1.1.0.bb
index 7c66342ec4..50ae7fa5e4 100644
--- a/meta-python/recipes-devtools/python/python3-et-xmlfile_1.1.0.bb
+++ b/meta-python/recipes-devtools/python/python3-et-xmlfile_1.1.0.bb
@@ -10,7 +10,13 @@ LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148
SRC_URI[sha256sum] = "8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"
-RDEPENDS:${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell"
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-io \
+ python3-pprint \
+ python3-shell \
+ python3-xml \
+"
inherit setuptools3 pypi
diff --git a/meta-python/recipes-devtools/python/python3-eth-abi_3.0.1.bb b/meta-python/recipes-devtools/python/python3-eth-abi_3.0.1.bb
deleted file mode 100644
index 3d8a67ba56..0000000000
--- a/meta-python/recipes-devtools/python/python3-eth-abi_3.0.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Python utilities for working with Ethereum ABI definitions, especially encoding and decoding."
-HOMEPAGE = "https://github.com/ethereum/eth-abi"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bf9691ead96f1163622689e47ce3f366"
-
-SRC_URI[sha256sum] = "c3872e3ac1e9ef3f8c6599aaca4ee536d536eefca63a6892ab937f0560edb656"
-
-PYPI_PACKAGE = "eth_abi"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- python3-eth-typing \
- python3-eth-utils \
- python3-parsimonious \
- python3-setuptools \
-"
diff --git a/meta-python/recipes-devtools/python/python3-eth-abi_5.0.1.bb b/meta-python/recipes-devtools/python/python3-eth-abi_5.0.1.bb
new file mode 100644
index 0000000000..a56296188c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-abi_5.0.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Python utilities for working with Ethereum ABI definitions, especially encoding and decoding."
+HOMEPAGE = "https://github.com/ethereum/eth-abi"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=731f4de9c79bfeba6d8d55f83d0d2423"
+
+SRC_URI[sha256sum] = "e9425110c6120c585c9f0db2e8a33d76c4b886b148a65e68fc0035d3917a3b9c"
+
+PYPI_PACKAGE = "eth_abi"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-eth-typing \
+ python3-eth-utils \
+ python3-parsimonious \
+ python3-setuptools \
+"
diff --git a/meta-python/recipes-devtools/python/python3-eth-account_0.11.0.bb b/meta-python/recipes-devtools/python/python3-eth-account_0.11.0.bb
new file mode 100644
index 0000000000..ce48d9dcf9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-account_0.11.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Assign Ethereum transactions and messages with local private keys."
+HOMEPAGE = "https://github.com/ethereum/eth-account"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=16ffc86adf4293d4cfb204e77d62cfe6"
+
+SRC_URI[sha256sum] = "2ffc7a0c7538053a06a7d11495c16c7ad9897dd42be0f64ca7551e9f6e0738c3"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-bitarray \
+ python3-eth-abi \
+ python3-eth-keyfile \
+ python3-eth-keys \
+ python3-eth-rlp \
+ python3-eth-utils \
+ python3-hexbytes \
+ python3-rlp \
+"
diff --git a/meta-python/recipes-devtools/python/python3-eth-account_0.7.0.bb b/meta-python/recipes-devtools/python/python3-eth-account_0.7.0.bb
deleted file mode 100644
index 5b8c34ec8d..0000000000
--- a/meta-python/recipes-devtools/python/python3-eth-account_0.7.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Assign Ethereum transactions and messages with local private keys."
-HOMEPAGE = "https://github.com/ethereum/eth-account"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
-
-SRC_URI[sha256sum] = "61360e9e514e09e49929ed365ca0e1656758ecbd11248c629ad85b4335c2661a"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- python3-bitarray \
- python3-cytoolz \
- python3-eth-abi \
- python3-eth-keyfile \
- python3-eth-rlp \
- python3-hexbytes \
-"
diff --git a/meta-python/recipes-devtools/python/python3-eth-hash_0.5.0.bb b/meta-python/recipes-devtools/python/python3-eth-hash_0.5.0.bb
deleted file mode 100644
index 73072706e0..0000000000
--- a/meta-python/recipes-devtools/python/python3-eth-hash_0.5.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "The Ethereum hashing function, keccak256, sometimes (erroneously) called sha3."
-HOMEPAGE = "https://github.com/ethereum/eth-hash"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
-
-SRC_URI[sha256sum] = "ea0fd4e264c97c8aa739ae1cea7199db2e1f3bdf387cc9b81ef03c660f871335"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-pycryptodome \
-"
diff --git a/meta-python/recipes-devtools/python/python3-eth-hash_0.6.0.bb b/meta-python/recipes-devtools/python/python3-eth-hash_0.6.0.bb
new file mode 100644
index 0000000000..8464dbe403
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-hash_0.6.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "The Ethereum hashing function, keccak256, sometimes (erroneously) called sha3."
+HOMEPAGE = "https://github.com/ethereum/eth-hash"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3d7bdfe69b1ffbde073ca6e96f5c53f7"
+
+SRC_URI[sha256sum] = "ae72889e60db6acbb3872c288cfa02ed157f4c27630fcd7f9c8442302c31e478"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+ python3-logging \
+ python3-pycryptodome \
+"
diff --git a/meta-python/recipes-devtools/python/python3-eth-keyfile/0001-setup-don-t-use-setuptools-markdown.patch b/meta-python/recipes-devtools/python/python3-eth-keyfile/0001-setup-don-t-use-setuptools-markdown.patch
deleted file mode 100644
index 7b81203807..0000000000
--- a/meta-python/recipes-devtools/python/python3-eth-keyfile/0001-setup-don-t-use-setuptools-markdown.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 4348c72877e049804c7cdb7eec7a6bcd7ac2ea1d Mon Sep 17 00:00:00 2001
-From: Bartosz Golaszewski <brgl@bgdev.pl>
-Date: Wed, 11 May 2022 13:21:30 +0200
-Subject: [PATCH] setup: don't use setuptools-markdown
-
-This project is deprecated and irrelevant for the functionality of
-eth-keyfile. We don't support it in meta-python so just drop it from
-the dependencies.
-
-Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
----
- setup.py | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index cbb7f4c..7702aa4 100644
---- a/setup.py
-+++ b/setup.py
-@@ -51,14 +51,12 @@ setup(
- "A library for handling the encrypted keyfiles used to store ethereum "
- "private keys."
- ),
-- long_description_markdown_filename='README.md',
- author='Piper Merriam',
- author_email='pipermerriam@gmail.com',
- url='https://github.com/ethereum/eth-keyfile',
- include_package_data=True,
- install_requires=install_requires,
- extras_require=deps,
-- setup_requires=['setuptools-markdown'],
- py_modules=['eth_keyfile'],
- license="MIT",
- zip_safe=False,
---
-2.34.1
-
diff --git a/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.0.bb b/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.0.bb
deleted file mode 100644
index 9477632e2f..0000000000
--- a/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "A library for handling the encrypted keyfiles used to store ethereum private keys."
-HOMEPAGE = "https://github.com/ethereum/eth-keyfile"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2beaef1b1764f4d6b46084c885b4bcad"
-
-SRC_URI[sha256sum] = "d30597cdecb8ccd3b56bb275cd86fcdc7a279f86eafa92ddc49f66512f0bff67"
-SRC_URI += "file://0001-setup-don-t-use-setuptools-markdown.patch"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- python3-eth-keys \
- python3-pycryptodome \
- python3-setuptools \
-"
diff --git a/meta-python/recipes-devtools/python/python3-eth-keyfile_0.7.0.bb b/meta-python/recipes-devtools/python/python3-eth-keyfile_0.7.0.bb
new file mode 100644
index 0000000000..2afc288bce
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-keyfile_0.7.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A library for handling the encrypted keyfiles used to store ethereum private keys."
+HOMEPAGE = "https://github.com/ethereum/eth-keyfile"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6749008d847c14b9718949c2e24d5c0a"
+
+SRC_URI[sha256sum] = "6bdb8110c3a50439deb68a04c93c9d5ddd5402353bfae1bf4cfca1d6dff14fcf"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-eth-keys \
+ python3-pycryptodome \
+ python3-setuptools \
+"
diff --git a/meta-python/recipes-devtools/python/python3-eth-keys_0.4.0.bb b/meta-python/recipes-devtools/python/python3-eth-keys_0.4.0.bb
deleted file mode 100644
index b0b1aad76d..0000000000
--- a/meta-python/recipes-devtools/python/python3-eth-keys_0.4.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "A common API for Ethereum key operations with pluggable backends."
-HOMEPAGE = "https://github.com/ethereum/eth-keys"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2beaef1b1764f4d6b46084c885b4bcad"
-
-SRC_URI[sha256sum] = "7d18887483bc9b8a3fdd8e32ddcb30044b9f08fcb24a380d93b6eee3a5bb3216"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "python3-eth-utils"
diff --git a/meta-python/recipes-devtools/python/python3-eth-keys_0.5.0.bb b/meta-python/recipes-devtools/python/python3-eth-keys_0.5.0.bb
new file mode 100644
index 0000000000..aabfff1b1d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-keys_0.5.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A common API for Ethereum key operations with pluggable backends."
+HOMEPAGE = "https://github.com/ethereum/eth-keys"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6749008d847c14b9718949c2e24d5c0a"
+
+SRC_URI[sha256sum] = "a0abccb83f3d84322591a2c047a1e3aa52ea86b185fa3e82ce311d120ca2791e"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-eth-utils"
diff --git a/meta-python/recipes-devtools/python/python3-eth-rlp_0.3.0.bb b/meta-python/recipes-devtools/python/python3-eth-rlp_0.3.0.bb
deleted file mode 100644
index d19a657557..0000000000
--- a/meta-python/recipes-devtools/python/python3-eth-rlp_0.3.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "RLP definitions for common Ethereum objects in Python"
-HOMEPAGE = "https://github.com/ethereum/eth-rlp"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
-
-SRC_URI[sha256sum] = "f3263b548df718855d9a8dbd754473f383c0efc82914b0b849572ce3e06e71a6"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = " \
- python3-eth-utils \
- python3-hexbytes \
- python3-rlp \
-"
diff --git a/meta-python/recipes-devtools/python/python3-eth-rlp_2.1.0.bb b/meta-python/recipes-devtools/python/python3-eth-rlp_2.1.0.bb
new file mode 100644
index 0000000000..4bdc0c8873
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-rlp_2.1.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "RLP definitions for common Ethereum objects in Python"
+HOMEPAGE = "https://github.com/ethereum/eth-rlp"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3d7bdfe69b1ffbde073ca6e96f5c53f7"
+
+SRC_URI[sha256sum] = "d5b408a8cd20ed496e8e66d0559560d29bc21cee482f893936a1f05d0dddc4a0"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = " \
+ python3-eth-utils \
+ python3-hexbytes \
+ python3-rlp \
+ python3-typing-extensions \
+"
diff --git a/meta-python/recipes-devtools/python/python3-eth-typing_3.2.0.bb b/meta-python/recipes-devtools/python/python3-eth-typing_3.2.0.bb
deleted file mode 100644
index b810341d2b..0000000000
--- a/meta-python/recipes-devtools/python/python3-eth-typing_3.2.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Common type annotations for ethereum python packages."
-HOMEPAGE = "https://github.com/ethereum/eth-typing"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bf9691ead96f1163622689e47ce3f366"
-
-SRC_URI[sha256sum] = "177e2070da9bf557fe0fd46ee467a7be2d0b6476aa4dc18680603e7da1fc5690"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-eth-typing_4.0.0.bb b/meta-python/recipes-devtools/python/python3-eth-typing_4.0.0.bb
new file mode 100644
index 0000000000..3ca311db5c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-typing_4.0.0.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Common type annotations for ethereum python packages."
+HOMEPAGE = "https://github.com/ethereum/eth-typing"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3d7bdfe69b1ffbde073ca6e96f5c53f7"
+
+SRC_URI[sha256sum] = "9af0b6beafbc5c2e18daf19da5f5a68315023172c4e79d149e12ad10a3d3f731"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch b/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch
deleted file mode 100644
index 3c3c5270a3..0000000000
--- a/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From bc86d603e632ce61de4ae7a5d4bcef080cbdb160 Mon Sep 17 00:00:00 2001
-From: Bartosz Golaszewski <brgl@bgdev.pl>
-Date: Wed, 11 May 2022 13:45:06 +0200
-Subject: [PATCH] setup: don't use setuptools-markdown
-
-This project is deprecated and irrelevant for the functionality of
-eth-utils. We don't support it in meta-python so just drop it from
-the dependencies.
-
-Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
----
- setup.py | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 5717d5b..cb62132 100644
---- a/setup.py
-+++ b/setup.py
-@@ -37,7 +37,6 @@ setup(
- # *IMPORTANT*: Don't manually change the version here. Use the 'bumpversion' utility.
- version='1.1.2',
- description="""Common utility functions for ethereum codebases.""",
-- long_description_markdown_filename='README.md',
- author='Piper Merriam',
- author_email='pipermerriam@gmail.com',
- url='https://github.com/ethereum/eth_utils',
-@@ -48,7 +47,6 @@ setup(
- "toolz>0.8.2,<1;implementation_name=='pypy'",
- "cytoolz>=0.8.2,<1.0.0;implementation_name=='cpython'",
- ],
-- setup_requires=['setuptools-markdown'],
- extras_require=extras_require,
- py_modules=['eth_utils'],
- license="MIT",
---
-2.34.1
-
diff --git a/meta-python/recipes-devtools/python/python3-eth-utils_2.0.0.bb b/meta-python/recipes-devtools/python/python3-eth-utils_2.0.0.bb
deleted file mode 100644
index ff7caf5bf2..0000000000
--- a/meta-python/recipes-devtools/python/python3-eth-utils_2.0.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Common utility functions for codebases which interact with ethereum."
-HOMEPAGE = "https://github.com/ethereum/eth-utils"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
-
-SRC_URI[sha256sum] = "32f50edb14c5be0c4f0e8c2e6117286ccc5dfda21d170f358add554a048398e3"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- python3-eth-hash \
- python3-eth-typing \
- python3-setuptools \
- python3-toolz \
-"
diff --git a/meta-python/recipes-devtools/python/python3-eth-utils_3.0.0.bb b/meta-python/recipes-devtools/python/python3-eth-utils_3.0.0.bb
new file mode 100644
index 0000000000..faca03865b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-utils_3.0.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Common utility functions for codebases which interact with ethereum."
+HOMEPAGE = "https://github.com/ethereum/eth-utils"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6749008d847c14b9718949c2e24d5c0a"
+
+SRC_URI[sha256sum] = "8721869568448349bceae63c277b75758d11e0dc190e7ef31e161b89619458f1"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-eth-hash \
+ python3-eth-typing \
+ python3-setuptools \
+ python3-toolz \
+"
diff --git a/meta-python/recipes-devtools/python/python3-evdev_1.6.0.bb b/meta-python/recipes-devtools/python/python3-evdev_1.6.0.bb
deleted file mode 100644
index 659a86dae3..0000000000
--- a/meta-python/recipes-devtools/python/python3-evdev_1.6.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Python evdev lib"
-HOMEPAGE = "https://github.com/gvalkov/python-evdev"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=18debddbb3f52c661a129724a883a8e2"
-
-SRC_URI[sha256sum] = "ecfa01b5c84f7e8c6ced3367ac95288f43cd84efbfd7dd7d0cdbfc0d18c87a6a"
-
-inherit pypi setuptools3
-
-do_compile:prepend() {
- rm -rf ${S}/evdev/ecodes.c
-}
-
-SETUPTOOLS_BUILD_ARGS = "build_ecodes --evdev-headers ${STAGING_DIR_TARGET}/usr/include/linux/input.h:${STAGING_DIR_TARGET}/usr/include/linux/input-event-codes.h"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-fcntl \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-stringold \
- "
diff --git a/meta-python/recipes-devtools/python/python3-evdev_1.6.1.bb b/meta-python/recipes-devtools/python/python3-evdev_1.6.1.bb
new file mode 100644
index 0000000000..be6f9611e7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-evdev_1.6.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Python evdev lib"
+HOMEPAGE = "https://github.com/gvalkov/python-evdev"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0ff275b442f45fc06287544cf713016f"
+
+SRC_URI[sha256sum] = "299db8628cc73b237fc1cc57d3c2948faa0756e2a58b6194b5bf81dc2081f1e3"
+
+inherit pypi setuptools3
+
+do_compile:prepend() {
+ rm -rf ${S}/evdev/ecodes.c
+}
+
+SETUPTOOLS_BUILD_ARGS = "build_ecodes --evdev-headers ${STAGING_DIR_TARGET}/usr/include/linux/input.h:${STAGING_DIR_TARGET}/usr/include/linux/input-event-codes.h"
+
+RDEPENDS:${PN} += "\
+ python3-ctypes \
+ python3-fcntl \
+ python3-io \
+ python3-shell \
+ python3-stringold \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-eventlet_0.33.1.bb b/meta-python/recipes-devtools/python/python3-eventlet_0.33.1.bb
deleted file mode 100644
index afaaf4a978..0000000000
--- a/meta-python/recipes-devtools/python/python3-eventlet_0.33.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Highly concurrent networking library"
-HOMEPAGE = "http://pypi.python.org/pypi/eventlet"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=56472ad6de4caf50e05332a34b66e778"
-
-SRC_URI[sha256sum] = "afbe17f06a58491e9aebd7a4a03e70b0b63fd4cf76d8307bae07f280479b1515"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-dnspython \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-distutils \
- ${PYTHON_PN}-greenlet \
-"
diff --git a/meta-python/recipes-devtools/python/python3-eventlet_0.36.1.bb b/meta-python/recipes-devtools/python/python3-eventlet_0.36.1.bb
new file mode 100644
index 0000000000..f70099ab94
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eventlet_0.36.1.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Highly concurrent networking library"
+HOMEPAGE = "http://pypi.python.org/pypi/eventlet"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=56472ad6de4caf50e05332a34b66e778"
+
+SRC_URI[sha256sum] = "d227fe76a63d9e6a6cef53beb8ad0b2dc40a5e7737c801f4b474cfae1db07bc5"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-dnspython \
+ python3-six \
+ python3-greenlet \
+"
diff --git a/meta-python/recipes-devtools/python/python3-execnet/run-ptest b/meta-python/recipes-devtools/python/python3-execnet/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-execnet/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-execnet/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb b/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb
deleted file mode 100644
index ea17e84143..0000000000
--- a/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "execnet: rapid multi-Python deployment"
-HOMEPAGE = "https://execnet.readthedocs.io/en/latest/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=772fcdaca14b378878d05c7d857e6c3e"
-
-DEPENDS += "\
- python3-pip-native \
- python3-setuptools-scm-native \
-"
-
-SRC_URI += "file://run-ptest \
- "
-SRC_URI[sha256sum] = "8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5"
-
-inherit ptest pypi setuptools3
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/testing/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN}-ptest += "\
- python3-pytest \
-"
-
-RDEPENDS:${PN} += "python3-core python3-crypt python3-ctypes python3-fcntl python3-io python3-shell python3-threading"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-execnet_2.0.2.bb b/meta-python/recipes-devtools/python/python3-execnet_2.0.2.bb
new file mode 100644
index 0000000000..78a15d3572
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-execnet_2.0.2.bb
@@ -0,0 +1,32 @@
+# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "execnet: rapid multi-Python deployment"
+HOMEPAGE = "https://execnet.readthedocs.io/en/latest/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=772fcdaca14b378878d05c7d857e6c3e"
+
+DEPENDS += "\
+ python3-pip-native \
+ python3-hatch-vcs-native \
+"
+
+SRC_URI += "file://run-ptest \
+ "
+SRC_URI[sha256sum] = "cc59bc4423742fd71ad227122eb0dd44db51efb3dc4095b45ac9a08c770096af"
+
+inherit ptest pypi python_hatchling
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/testing/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN}-ptest += "\
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+RDEPENDS:${PN} += "python3-core python3-crypt python3-ctypes python3-fcntl python3-io python3-shell python3-threading"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-executing_2.0.1.bb b/meta-python/recipes-devtools/python/python3-executing_2.0.1.bb
new file mode 100644
index 0000000000..3ee1e66f97
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-executing_2.0.1.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Get the currently executing AST node of a frame, and other information"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a3d6c15f7859ae235a78f2758e5a48cf"
+
+DEPENDS = "python3-setuptools-scm-native"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"
diff --git a/meta-python/recipes-devtools/python/python3-expandvars_0.12.0.bb b/meta-python/recipes-devtools/python/python3-expandvars_0.12.0.bb
new file mode 100644
index 0000000000..6183c310ed
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-expandvars_0.12.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Expand system variables Unix style"
+HOMEPAGE = "https://github.com/sayanarijit/expandvars"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8b2e744064bd184728ac09dbfb52aaf4"
+
+SRC_URI[sha256sum] = "7d1adfa55728cf4b5d812ece3d087703faea953e0c0a1a78415de9df5024d844"
+
+inherit pypi python_hatchling python_setuptools_build_meta
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-fasteners_0.18.bb b/meta-python/recipes-devtools/python/python3-fasteners_0.18.bb
deleted file mode 100644
index 5f63891748..0000000000
--- a/meta-python/recipes-devtools/python/python3-fasteners_0.18.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "A python package that provides useful locks."
-HOMEPAGE = "https://github.com/harlowja/fasteners"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4476c4be31402271e101d9a4a3430d52"
-
-SRC_URI[sha256sum] = "cb7c13ef91e0c7e4fe4af38ecaf6b904ec3f5ce0dda06d34924b6b74b869d953"
-
-inherit pypi python_setuptools_build_meta
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-fcntl \
-"
diff --git a/meta-python/recipes-devtools/python/python3-fasteners_0.19.bb b/meta-python/recipes-devtools/python/python3-fasteners_0.19.bb
new file mode 100644
index 0000000000..22e58c5668
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-fasteners_0.19.bb
@@ -0,0 +1,13 @@
+SUMMARY = "A python package that provides useful locks."
+HOMEPAGE = "https://github.com/harlowja/fasteners"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4476c4be31402271e101d9a4a3430d52"
+
+SRC_URI[sha256sum] = "b4f37c3ac52d8a445af3a66bce57b33b5e90b97c696b7b984f530cf8f0ded09c"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += "\
+ python3-logging \
+ python3-fcntl \
+"
diff --git a/meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest b/meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-fastjsonschema_2.16.2.bb b/meta-python/recipes-devtools/python/python3-fastjsonschema_2.16.2.bb
deleted file mode 100644
index a1d3392e19..0000000000
--- a/meta-python/recipes-devtools/python/python3-fastjsonschema_2.16.2.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Fastest Python implementation of JSON schema"
-HOMEPAGE = "https://github.com/seznam/python-fastjsonschema"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=18950e8362b69c0c617b42b8bd8e7532"
-
-SRCREV = "1aad747bab39d4b1201ab99917463f4079955ecd"
-PYPI_SRC_URI = "git://github.com/horejsek/python-fastjsonschema;protocol=https;branch=master"
-
-SRC_URI += "file://run-ptest"
-
-inherit ptest pypi setuptools3
-
-S = "${WORKDIR}/git"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN}-ptest += "\
- python3-colorama \
- python3-jsonschema \
- python3-pylint \
- python3-pytest \
- python3-pytest-benchmark \
- python3-pytest-cache \
-"
-RDEPENDS:${PN} += "\
- python3-core \
- python3-urllib3 \
- python3-numbers \
- python3-pickle \
- python3-json \
- "
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb b/meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb
new file mode 100644
index 0000000000..b2e969c5c1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb
@@ -0,0 +1,41 @@
+# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Fastest Python implementation of JSON schema"
+HOMEPAGE = "https://github.com/seznam/python-fastjsonschema"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=18950e8362b69c0c617b42b8bd8e7532"
+
+SRCREV = "756540088687cda351390f687b92e602feaa7dc6"
+PYPI_SRC_URI = "git://github.com/horejsek/python-fastjsonschema;protocol=https;branch=master"
+
+SRC_URI += "file://run-ptest"
+
+inherit ptest pypi setuptools3
+
+S = "${WORKDIR}/git"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN}-ptest += "\
+ python3-colorama \
+ python3-jsonschema \
+ python3-pylint \
+ python3-pytest \
+ python3-pytest-benchmark \
+ python3-pytest-cache \
+ python3-statistics \
+ python3-unittest-automake-output \
+"
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-urllib3 \
+ python3-numbers \
+ python3-pickle \
+ python3-json \
+ "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-fastnumbers_3.2.1.bb b/meta-python/recipes-devtools/python/python3-fastnumbers_3.2.1.bb
deleted file mode 100644
index 0db33052ff..0000000000
--- a/meta-python/recipes-devtools/python/python3-fastnumbers_3.2.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Super-fast and clean conversions to numbers."
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6a96e5ad780a0eea866ecccec4463517"
-
-PYPI_PACKAGE = "fastnumbers"
-
-SRC_URI[sha256sum] = "44f92b42e7e9f2ed77ba5cb7d664f05c17e43d4586718ed6cd3b3fffa0e67f33"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-fastnumbers_5.1.0.bb b/meta-python/recipes-devtools/python/python3-fastnumbers_5.1.0.bb
new file mode 100644
index 0000000000..01aa8b3b44
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-fastnumbers_5.1.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Super-fast and clean conversions to numbers."
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32431d1b650010945da4e078011c8fa"
+
+PYPI_PACKAGE = "fastnumbers"
+
+SRC_URI[sha256sum] = "e092d33f8b95c3171a2fb34e579efe0c54b0290dd7f96ffaa2762437601d90a7"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-file-magic_0.4.1.bb b/meta-python/recipes-devtools/python/python3-file-magic_0.4.1.bb
new file mode 100644
index 0000000000..5289ad3745
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-file-magic_0.4.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Python front end for libmagic"
+DESCRIPTION = "This library is a Python ctypes interface to libmagic."
+HOMEPAGE = "https://darwinsys.com/file/"
+LICENSE = "BSD-2-Clause"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0e949c0b3fb4fd86232f00c6ee0bdef3"
+
+SRC_URI[sha256sum] = "a91d1483117f7ed48cd0238ad9be36b04824d57e9c38ea7523113989e81b9c53"
+
+PYPI_PACKAGE="file-magic"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ file \
+ python3-core \
+ python3-ctypes \
+ python3-threading \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-filelock_3.13.3.bb b/meta-python/recipes-devtools/python/python3-filelock_3.13.3.bb
new file mode 100644
index 0000000000..f1477d1dcd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-filelock_3.13.3.bb
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: MIT
+# Copyright (C) 2023 iris-GmbH infrared & intelligent sensors
+
+SUMMARY = "A single module, which implements a platform independent file lock in Python, which provides a simple way of inter-process communication"
+HOMEPAGE = "https://py-filelock.readthedocs.io/"
+LICENSE = "Unlicense"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=911690f51af322440237a253d695d19f"
+
+SRC_URI[sha256sum] = "a79895a25bbefdf55d1a2a0a80968f7dbb28edcd6d4234a0afb3f37ecde4b546"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_hatchling
+
+DEPENDS += "\
+ python3-hatch-vcs-native \
+"
diff --git a/meta-python/recipes-devtools/python/python3-flask-babel_2.0.0.bb b/meta-python/recipes-devtools/python/python3-flask-babel_2.0.0.bb
deleted file mode 100644
index 657c190ec5..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-babel_2.0.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "i18n and l10n support for Flask based on babel and pytz"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=51917f3e8e858f5ae295a7d0e2eb3cc9"
-
-SRC_URI[md5sum] = "50d5e92d96ef58787bf85b5a1b0a5567"
-SRC_URI[sha256sum] = "f9faf45cdb2e1a32ea2ec14403587d4295108f35017a7821a2b1acb8cfd9257d"
-
-PYPI_PACKAGE = "Flask-Babel"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-speaklater \
- ${PYTHON_PN}-babel \
- ${PYTHON_PN}-flask \
- "
diff --git a/meta-python/recipes-devtools/python/python3-flask-babel_4.0.0.bb b/meta-python/recipes-devtools/python/python3-flask-babel_4.0.0.bb
new file mode 100644
index 0000000000..b445ec0e1c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-babel_4.0.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "i18n and l10n support for Flask based on babel and pytz"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=51917f3e8e858f5ae295a7d0e2eb3cc9"
+
+SRC_URI[sha256sum] = "dbeab4027a3f4a87678a11686496e98e1492eb793cbdd77ab50f4e9a2602a593"
+
+PYPI_PACKAGE = "flask_babel"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} += "\
+ python3-speaklater \
+ python3-babel \
+ python3-flask \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-flask-cors_4.0.0.bb b/meta-python/recipes-devtools/python/python3-flask-cors_4.0.0.bb
new file mode 100644
index 0000000000..1d0d86b4e7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-cors_4.0.0.bb
@@ -0,0 +1,16 @@
+HOMEPAGE = "https://pypi.python.org/pypi/Flask-Cors/"
+SUMMARY = "A Flask extension adding a decorator for CORS support"
+DESCRIPTION = "\
+ A Flask extension for handling Cross Origin Resource Sharing (CORS), making cross-origin AJAX possible \
+ "
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=118fecaa576ab51c1520f95e98db61ce"
+
+PYPI_PACKAGE = "Flask-Cors"
+
+SRC_URI[sha256sum] = "f268522fcb2f73e2ecdde1ef45e2fd5c71cc48fe03cffb4b441c6d1b40684eb0"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-flask"
diff --git a/meta-python/recipes-devtools/python/python3-flask-httpauth_4.8.0.bb b/meta-python/recipes-devtools/python/python3-flask-httpauth_4.8.0.bb
new file mode 100644
index 0000000000..51b907e6db
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-httpauth_4.8.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Simple extension that provides Basic and Digest HTTP authentication for Flask routes."
+HOMEPAGE = "https://github.com/miguelgrinberg/flask-httpauth"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85"
+
+inherit pypi python_setuptools_build_meta
+
+PYPI_PACKAGE = "Flask-HTTPAuth"
+
+SRC_URI[sha256sum] = "66568a05bc73942c65f1e2201ae746295816dc009edd84b482c44c758d75097a"
+
+RDEPENDS:${PN} += "\
+ python3-flask \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-flask-jsonpify_1.5.0.bb b/meta-python/recipes-devtools/python/python3-flask-jsonpify_1.5.0.bb
index 68eb2cefe7..76c6fb7731 100644
--- a/meta-python/recipes-devtools/python/python3-flask-jsonpify_1.5.0.bb
+++ b/meta-python/recipes-devtools/python/python3-flask-jsonpify_1.5.0.bb
@@ -11,4 +11,4 @@ SRC_URI[sha256sum] = "8ac4c732aa5b11d9f6c2de58065d3b669f139518ca8f529bce943817e2
inherit pypi setuptools3
-RDEPENDS:${PN} += "${PYTHON_PN}-flask"
+RDEPENDS:${PN} += "python3-flask"
diff --git a/meta-python/recipes-devtools/python/python3-flask-jwt-extended_4.6.0.bb b/meta-python/recipes-devtools/python/python3-flask-jwt-extended_4.6.0.bb
new file mode 100644
index 0000000000..cc07c92f47
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-jwt-extended_4.6.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Extended JWT integration with Flask"
+HOMEPAGE = "https://github.com/vimalloc/flask-jwt-extended"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9166295d7c482b9440bbb2b5c0fa43ac"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "Flask-JWT-Extended"
+
+SRC_URI[sha256sum] = "9215d05a9413d3855764bcd67035e75819d23af2fafb6b55197eb5a3313fdfb2"
+
+RDEPENDS:${PN} += "\
+ python3-werkzeug \
+ python3-flask \
+ python3-pyjwt \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-flask-jwt_0.3.2.bb b/meta-python/recipes-devtools/python/python3-flask-jwt_0.3.2.bb
index f2eb34d0f7..35bcbc00ae 100644
--- a/meta-python/recipes-devtools/python/python3-flask-jwt_0.3.2.bb
+++ b/meta-python/recipes-devtools/python/python3-flask-jwt_0.3.2.bb
@@ -11,4 +11,4 @@ SRC_URI[sha256sum] = "49c0672fbde0f1cd3374bd834918d28956e3c521c7e00089cdc5380d32
inherit pypi setuptools3
-RDEPENDS:${PN} += "${PYTHON_PN}-pyjwt ${PYTHON_PN}-flask"
+RDEPENDS:${PN} += "python3-pyjwt python3-flask"
diff --git a/meta-python/recipes-devtools/python/python3-flask-login_0.6.2.bb b/meta-python/recipes-devtools/python/python3-flask-login_0.6.2.bb
deleted file mode 100644
index 97d7bce359..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-login_0.6.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "User session management for Flask"
-DESCRIPTION = "Flask-Login provides user session management for Flask. \
-It handles the common tasks of logging in, logging out, and remembering \
-your users’ sessions over extended periods of time."
-HOMEPAGE = " https://github.com/maxcountryman/flask-login"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8aa87a1cd9fa41d969ad32cfdac2c596"
-
-SRC_URI[sha256sum] = "c0a7baa9fdc448cdd3dd6f0939df72eec5177b2f7abe6cb82fc934d29caac9c3"
-
-PYPI_PACKAGE = "Flask-Login"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN}:class-target = "${PYTHON_PN}-flask"
diff --git a/meta-python/recipes-devtools/python/python3-flask-login_0.6.3.bb b/meta-python/recipes-devtools/python/python3-flask-login_0.6.3.bb
new file mode 100644
index 0000000000..d990d4e80b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-login_0.6.3.bb
@@ -0,0 +1,15 @@
+SUMMARY = "User session management for Flask"
+DESCRIPTION = "Flask-Login provides user session management for Flask. \
+It handles the common tasks of logging in, logging out, and remembering \
+your users’ sessions over extended periods of time."
+HOMEPAGE = " https://github.com/maxcountryman/flask-login"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8aa87a1cd9fa41d969ad32cfdac2c596"
+
+SRC_URI[sha256sum] = "5e23d14a607ef12806c699590b89d0f0e0d67baeec599d75947bf9c147330333"
+
+PYPI_PACKAGE = "Flask-Login"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN}:class-target = "python3-flask"
diff --git a/meta-python/recipes-devtools/python/python3-flask-mail_0.9.1.bb b/meta-python/recipes-devtools/python/python3-flask-mail_0.9.1.bb
index e568f7fac2..1aca3a1619 100644
--- a/meta-python/recipes-devtools/python/python3-flask-mail_0.9.1.bb
+++ b/meta-python/recipes-devtools/python/python3-flask-mail_0.9.1.bb
@@ -11,4 +11,7 @@ PYPI_PACKAGE = "Flask-Mail"
inherit pypi setuptools3
-RDEPENDS:${PN} = "${PYTHON_PN}-flask"
+RDEPENDS:${PN} = " \
+ python3-blinker \
+ python3-flask \
+"
diff --git a/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.1.bb b/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.1.bb
new file mode 100644
index 0000000000..8408ebd7b0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-marshmallow_1.2.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Flask + marshmallow for beautiful APIs"
+HOMEPAGE = "https://github.com/marshmallow-code/flask-marshmallow"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=27586b20700d7544c06933afe56f7df4"
+
+inherit pypi python_setuptools_build_meta
+
+PYPI_PACKAGE = "flask_marshmallow"
+
+SRC_URI[sha256sum] = "00ee96399ed664963afff3b5d6ee518640b0f91dbc2aace2b5abcf32f40ef23a"
+
+RDEPENDS:${PN} += "\
+ python3-flask \
+ python3-marshmallow \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-flask-migrate_3.1.0.bb b/meta-python/recipes-devtools/python/python3-flask-migrate_3.1.0.bb
deleted file mode 100644
index 8153156458..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-migrate_3.1.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "SQLAlchemy database migrations for Flask applications using Alembic"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85"
-
-SRC_URI[sha256sum] = "57d6060839e3a7f150eaab6fe4e726d9e3e7cffe2150fb223d73f92421c6d1d9"
-
-PYPI_PACKAGE = "Flask-Migrate"
-
-inherit pypi python_setuptools_build_meta
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-flask-sqlalchemy \
- ${PYTHON_PN}-alembic \
- ${PYTHON_PN}-flask \
- "
diff --git a/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.7.bb b/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.7.bb
new file mode 100644
index 0000000000..bfd854ac05
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.7.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "SQLAlchemy database migrations for Flask applications using Alembic"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85"
+
+SRC_URI[sha256sum] = "dff7dd25113c210b069af280ea713b883f3840c1e3455274745d7355778c8622"
+
+PYPI_PACKAGE = "Flask-Migrate"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += "\
+ python3-flask-sqlalchemy \
+ python3-alembic \
+ python3-flask \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-flask-nav_0.6.bb b/meta-python/recipes-devtools/python/python3-flask-nav_0.6.bb
index d7edba25c1..3855909fbc 100644
--- a/meta-python/recipes-devtools/python/python3-flask-nav_0.6.bb
+++ b/meta-python/recipes-devtools/python/python3-flask-nav_0.6.bb
@@ -10,6 +10,6 @@ PYPI_PACKAGE = "flask-nav"
inherit pypi setuptools3
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-blinker \
- ${PYTHON_PN}-flask \
+ python3-blinker \
+ python3-flask \
"
diff --git a/meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb b/meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb
index a995a2ea39..1cd4a4b699 100644
--- a/meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb
+++ b/meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb
@@ -12,6 +12,6 @@ PYPI_PACKAGE = "Flask-PyMongo"
inherit pypi setuptools3
-DEPENDS = "${PYTHON_PN}-vcversioner ${PYTHON_PN}-vcversioner-native"
+DEPENDS = "python3-vcversioner python3-vcversioner-native"
-RDEPENDS:${PN} = "${PYTHON_PN}-pymongo ${PYTHON_PN}-flask"
+RDEPENDS:${PN} = "python3-pymongo python3-flask"
diff --git a/meta-python/recipes-devtools/python/python3-flask-restful_0.3.10.bb b/meta-python/recipes-devtools/python/python3-flask-restful_0.3.10.bb
new file mode 100644
index 0000000000..8ea455c633
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-restful_0.3.10.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Simple framework for creating REST APIs"
+DESCRIPTION = "\
+Flask-RESTful is an extension for Flask that adds support for quickly building \
+REST APIs"
+HOMEPAGE = "https://github.com/flask-restful/flask-restful"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=685bb55ed99a366bb431995f5eef2783"
+
+SRC_URI[sha256sum] = "fe4af2ef0027df8f9b4f797aba20c5566801b6ade995ac63b588abf1a59cec37"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "Flask-RESTful"
+
+RDEPENDS:${PN} = "python3-flask"
diff --git a/meta-python/recipes-devtools/python/python3-flask-restful_0.3.9.bb b/meta-python/recipes-devtools/python/python3-flask-restful_0.3.9.bb
deleted file mode 100644
index 294e3b0928..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-restful_0.3.9.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Simple framework for creating REST APIs"
-DESCRIPTION = "\
-Flask-RESTful is an extension for Flask that adds support for quickly building \
-REST APIs"
-HOMEPAGE = "https://github.com/flask-restful/flask-restful"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=685bb55ed99a366bb431995f5eef2783"
-
-SRC_URI[sha256sum] = "ccec650b835d48192138c85329ae03735e6ced58e9b2d9c2146d6c84c06fa53e"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "Flask-RESTful"
-
-RDEPENDS:${PN} = "${PYTHON_PN}-flask"
diff --git a/meta-python/recipes-devtools/python/python3-flask-restx_1.3.0.bb b/meta-python/recipes-devtools/python/python3-flask-restx_1.3.0.bb
new file mode 100644
index 0000000000..9c2a1e9a8b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-restx_1.3.0.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Fully featured framework for fast, easy and documented API development with Flask"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c96dd911c6d9e32868b6bc667a38a3e2"
+
+SRC_URI[sha256sum] = "4f3d3fa7b6191fcc715b18c201a12cd875176f92ba4acc61626ccfd571ee1728"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-aniso8601 \
+ python3-jsonschema \
+ python3-pytz \
+"
diff --git a/meta-python/recipes-devtools/python/python3-flask-script_2.0.6.bb b/meta-python/recipes-devtools/python/python3-flask-script_2.0.6.bb
deleted file mode 100644
index 9f885191be..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-script_2.0.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-flask-script.inc
diff --git a/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.1.bb b/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.1.bb
deleted file mode 100644
index 50e820ba37..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Socket.IO integration for Flask applications"
-HOMEPAGE = "https://github.com/miguelgrinberg/Flask-SocketIO/"
-SECTION = "devel/python"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=38cc21254909604298ce763a6e4440a0"
-
-inherit pypi python_setuptools_build_meta
-
-PYPI_PACKAGE = "Flask-SocketIO"
-
-SRC_URI[sha256sum] = "fd0ed0fc1341671d92d5f5b2f5503916deb7aa7e2940e6636cfa2c087c828bf9"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-flask \
- ${PYTHON_PN}-socketio \
- "
diff --git a/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.6.bb b/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.6.bb
new file mode 100644
index 0000000000..6b76e03f8d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.6.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Socket.IO integration for Flask applications"
+HOMEPAGE = "https://github.com/miguelgrinberg/Flask-SocketIO/"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=38cc21254909604298ce763a6e4440a0"
+
+inherit pypi python_setuptools_build_meta
+
+PYPI_PACKAGE = "Flask-SocketIO"
+
+SRC_URI[sha256sum] = "bb8f9f9123ef47632f5ce57a33514b0c0023ec3696b2384457f0fcaa5b70501c"
+
+RDEPENDS:${PN} += "\
+ python3-flask \
+ python3-socketio \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.5.1.bb b/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.5.1.bb
deleted file mode 100644
index 3aa6303da7..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.5.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Adds SQLAlchemy support to your Flask application."
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
-
-SRC_URI[sha256sum] = "2bda44b43e7cacb15d4e05ff3cc1f8bc97936cc464623424102bfc2c35e95912"
-
-PYPI_PACKAGE = "Flask-SQLAlchemy"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "${PYTHON_PN}-sqlalchemy ${PYTHON_PN}-flask"
diff --git a/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_3.1.1.bb b/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_3.1.1.bb
new file mode 100644
index 0000000000..f5fe1cc446
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_3.1.1.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Adds SQLAlchemy support to your Flask application."
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
+
+SRC_URI[sha256sum] = "e4b68bb881802dda1a7d878b2fc84c06d1ee57fb40b874d3dc97dabfa36b8312"
+
+PYPI_PACKAGE = "flask_sqlalchemy"
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/Flask-SQLAlchemy"
+UPSTREAM_CHECK_REGEX = "/Flask-SQLAlchemy/(?P<pver>(\d+[\.\-_]*)+)"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} = "python3-sqlalchemy python3-flask"
diff --git a/meta-python/recipes-devtools/python/python3-flask-uploads_0.2.1.bb b/meta-python/recipes-devtools/python/python3-flask-uploads_0.2.1.bb
index 388e257a8b..9ac321dec7 100644
--- a/meta-python/recipes-devtools/python/python3-flask-uploads_0.2.1.bb
+++ b/meta-python/recipes-devtools/python/python3-flask-uploads_0.2.1.bb
@@ -10,5 +10,5 @@ PYPI_PACKAGE = "Flask-Uploads"
inherit pypi setuptools3
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-flask \
+ python3-flask \
"
diff --git a/meta-python/recipes-devtools/python/python3-flask-user_0.6.19.bb b/meta-python/recipes-devtools/python/python3-flask-user_0.6.19.bb
index fbacf2e996..ac449361a4 100644
--- a/meta-python/recipes-devtools/python/python3-flask-user_0.6.19.bb
+++ b/meta-python/recipes-devtools/python/python3-flask-user_0.6.19.bb
@@ -13,7 +13,12 @@ PYPI_PACKAGE = "Flask-User"
inherit pypi setuptools3
-RDEPENDS:${PN} = "${PYTHON_PN}-flask \
- ${PYTHON_PN}-flask-login \
- ${PYTHON_PN}-flask-mail \
- ${PYTHON_PN}-babel"
+RDEPENDS:${PN} = " \
+ python3-babel \
+ python3-blinker \
+ python3-flask \
+ python3-flask-login \
+ python3-flask-mail \
+ python3-flask-wtf \
+ python3-passlib \
+"
diff --git a/meta-python/recipes-devtools/python/python3-flask-wtf_1.0.1.bb b/meta-python/recipes-devtools/python/python3-flask-wtf_1.0.1.bb
deleted file mode 100644
index 678588265d..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-wtf_1.0.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Simple integration of Flask and WTForms."
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=d98d089889e14b227732d45dac3aacc4"
-
-SRC_URI[sha256sum] = "34fe5c6fee0f69b50e30f81a3b7ea16aa1492a771fe9ad0974d164610c09a6c9"
-
-PYPI_PACKAGE = "Flask-WTF"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-flask \
- ${PYTHON_PN}-itsdangerous \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-wtforms \
-"
diff --git a/meta-python/recipes-devtools/python/python3-flask-wtf_1.2.1.bb b/meta-python/recipes-devtools/python/python3-flask-wtf_1.2.1.bb
new file mode 100644
index 0000000000..509be463f8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-wtf_1.2.1.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Simple integration of Flask and WTForms."
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=d98d089889e14b227732d45dac3aacc4"
+
+SRC_URI[sha256sum] = "8bb269eb9bb46b87e7c8233d7e7debdf1f8b74bf90cc1789988c29b37a97b695"
+
+PYPI_PACKAGE = "flask_wtf"
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/Flask-WTF"
+UPSTREAM_CHECK_REGEX = "/Flask-WTF/(?P<pver>(\d+[\.\-_]*)+)"
+
+inherit pypi python_hatchling
+
+RDEPENDS:${PN} = "\
+ python3-flask \
+ python3-itsdangerous \
+ python3-json \
+ python3-wtforms \
+"
diff --git a/meta-python/recipes-devtools/python/python3-flask_2.2.2.bb b/meta-python/recipes-devtools/python/python3-flask_2.2.2.bb
deleted file mode 100644
index cceab72ede..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask_2.2.2.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "A microframework based on Werkzeug, Jinja2 and good intentions"
-DESCRIPTION = "\
-Flask is a microframework for Python based on Werkzeug, Jinja 2 and good \
-intentions. And before you ask: It’s BSD licensed!"
-HOMEPAGE = "https://github.com/mitsuhiko/flask/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
-
-SRC_URI[sha256sum] = "642c450d19c4ad482f96729bd2a8f6d32554aa1e231f4f6b4e7e5264b16cca2b"
-
-PYPI_PACKAGE = "Flask"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
-RDEPENDS:${PN} = " \
- ${PYTHON_PN}-werkzeug \
- ${PYTHON_PN}-jinja2 \
- ${PYTHON_PN}-itsdangerous \
- ${PYTHON_PN}-click \
- ${PYTHON_PN}-profile \
-"
diff --git a/meta-python/recipes-devtools/python/python3-flask_3.0.2.bb b/meta-python/recipes-devtools/python/python3-flask_3.0.2.bb
new file mode 100644
index 0000000000..300ca99ddc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask_3.0.2.bb
@@ -0,0 +1,25 @@
+SUMMARY = "A microframework based on Werkzeug, Jinja2 and good intentions"
+DESCRIPTION = "\
+Flask is a microframework for Python based on Werkzeug, Jinja 2 and good \
+intentions. And before you ask: It’s BSD licensed!"
+HOMEPAGE = "https://github.com/mitsuhiko/flask/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
+
+SRC_URI[sha256sum] = "822c03f4b799204250a7ee84b1eddc40665395333973dfb9deebfe425fefcb7d"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/Flask"
+UPSTREAM_CHECK_REGEX = "/Flask/(?P<pver>(\d+[\.\-_]*)+)"
+
+inherit pypi python_setuptools_build_meta
+
+CLEANBROKEN = "1"
+
+RDEPENDS:${PN} = " \
+ python3-blinker \
+ python3-click \
+ python3-itsdangerous \
+ python3-jinja2 \
+ python3-profile \
+ python3-werkzeug \
+"
diff --git a/meta-python/recipes-devtools/python/python3-flexcache/run-ptest b/meta-python/recipes-devtools/python/python3-flexcache/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flexcache/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-flexcache_0.3.bb b/meta-python/recipes-devtools/python/python3-flexcache_0.3.bb
new file mode 100644
index 0000000000..1bee774022
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flexcache_0.3.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Saves and loads to the cache a transformed versions of a source object."
+HOMEPAGE = "https://github.com/hgrecco/flexcache"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=32f547dac365c355d2cdbcd7ebea9144"
+DEPENDS += "python3-setuptools-scm-native"
+SRC_URI[sha256sum] = "18743bd5a0621bfe2cf8d519e4c3bfdf57a269c15d1ced3fb4b64e0ff4600656"
+
+inherit pypi python_setuptools_build_meta ptest
+PYPI_PACKAGE = "flexcache"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/testsuite
+ cp -rf ${S}/flexcache/testsuite/* ${D}${PTEST_PATH}/testsuite/
+}
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-email \
+ python3-json \
+ python3-pickle \
+ python3-typing-extensions \
+"
diff --git a/meta-python/recipes-devtools/python/python3-flexparser/run-ptest b/meta-python/recipes-devtools/python/python3-flexparser/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flexparser/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-flexparser_0.3.bb b/meta-python/recipes-devtools/python/python3-flexparser_0.3.bb
new file mode 100644
index 0000000000..e45175f5a5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flexparser_0.3.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Parsing made fun ... using typing."
+HOMEPAGE = "https://github.com/hgrecco/flexparser"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=32f547dac365c355d2cdbcd7ebea9144"
+
+DEPENDS += "python3-setuptools-scm-native"
+SRC_URI[sha256sum] = "692e7524d9e14b2b1231b772b091d7d6296951deb383f5a67bfbd0ecb0b9fa9a"
+
+inherit pypi python_setuptools_build_meta ptest
+
+PYPI_PACKAGE = "flexparser"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/testsuite
+ cp -rf ${S}/flexparser/testsuite/* ${D}${PTEST_PATH}/testsuite/
+}
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-email \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-freezegun/run-ptest b/meta-python/recipes-devtools/python/python3-freezegun/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-freezegun/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-freezegun_1.4.0.bb b/meta-python/recipes-devtools/python/python3-freezegun_1.4.0.bb
new file mode 100644
index 0000000000..15c0bf06ba
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-freezegun_1.4.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "FreezeGun is a library that allows your Python tests to travel through time by mocking the datetime module."
+HOMEPAGE = "https://github.com/spulec/freezegun"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=acf1d209bb6eddae4cbe6ffd6a0144fe"
+
+SRC_URI[sha256sum] = "10939b0ba0ff5adaecf3b06a5c2f73071d9678e507c5eaedb23c761d56ac774b"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-sqlite3 \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} = "\
+ python3-asyncio \
+ python3-dateutil \
+ python3-unittest \
+"
diff --git a/meta-python/recipes-devtools/python/python3-frozenlist_1.3.1.bb b/meta-python/recipes-devtools/python/python3-frozenlist_1.3.1.bb
deleted file mode 100644
index b95a014f55..0000000000
--- a/meta-python/recipes-devtools/python/python3-frozenlist_1.3.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "A list-like structure which implements collections.abc.MutableSequence, and which can be made immutable."
-HOMEPAGE = "https://github.com/aio-libs/frozenlist"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=cf056e8e7a0a5477451af18b7b5aa98c"
-
-SRC_URI[sha256sum] = "3a735e4211a04ccfa3f4833547acdf5d2f863bfeb01cfd3edaffbc251f15cec8"
-
-inherit pypi python_setuptools_build_meta
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/meta-python/recipes-devtools/python/python3-frozenlist_1.4.1.bb b/meta-python/recipes-devtools/python/python3-frozenlist_1.4.1.bb
new file mode 100644
index 0000000000..4288f2922e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-frozenlist_1.4.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A list-like structure which implements collections.abc.MutableSequence, and which can be made immutable."
+HOMEPAGE = "https://github.com/aio-libs/frozenlist"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cf056e8e7a0a5477451af18b7b5aa98c"
+
+SRC_URI[sha256sum] = "c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += " \
+ python3-expandvars-native \
+ python3-cython-native \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-future_0.18.2.bb b/meta-python/recipes-devtools/python/python3-future_0.18.2.bb
deleted file mode 100644
index 90d1661d40..0000000000
--- a/meta-python/recipes-devtools/python/python3-future_0.18.2.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "Clean single-source support for Python 3 and 2"
-HOMEPAGE = "https://python-future.org"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a253924061f8ecc41ad7a2ba1560e8e7"
-
-SRC_URI[md5sum] = "e4579c836b9c025872efe230f6270349"
-SRC_URI[sha256sum] = "b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"
-
-PYPI_PACKAGE_HASH = "99abde815842bc6e97d5a7806ad51236630da14ca2f3b1fce94c0bb94d3d"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-future_0.18.3.bb b/meta-python/recipes-devtools/python/python3-future_0.18.3.bb
new file mode 100644
index 0000000000..e4a4b5c197
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-future_0.18.3.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Clean single-source support for Python 3 and 2"
+HOMEPAGE = "https://python-future.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a253924061f8ecc41ad7a2ba1560e8e7"
+
+SRC_URI[sha256sum] = "34a17436ed1e96697a86f9de3d15a3b0be01d8bc8de9c1dffd59fb8234ed5307"
+
+PYPI_PACKAGE_HASH = "99abde815842bc6e97d5a7806ad51236630da14ca2f3b1fce94c0bb94d3d"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-gast_0.5.3.bb b/meta-python/recipes-devtools/python/python3-gast_0.5.3.bb
deleted file mode 100644
index 7fd49456d2..0000000000
--- a/meta-python/recipes-devtools/python/python3-gast_0.5.3.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "A generic AST to represent Python2 and Python3's Abstract Syntax Tree(AST)."
-HOMEPAGE = "https://github.com/serge-sans-paille/gast"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a3ad9b6802e713fc5e307e1230f1ea90"
-
-SRC_URI[sha256sum] = "cfbea25820e653af9c7d1807f659ce0a0a9c64f2439421a7bba4f0983f532dea"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-gast_0.5.4.bb b/meta-python/recipes-devtools/python/python3-gast_0.5.4.bb
new file mode 100644
index 0000000000..9c750ea3b0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gast_0.5.4.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A generic AST to represent Python2 and Python3's Abstract Syntax Tree(AST)."
+HOMEPAGE = "https://github.com/serge-sans-paille/gast"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a3ad9b6802e713fc5e307e1230f1ea90"
+
+SRC_URI[sha256sum] = "9c270fe5f4b130969b54174de7db4e764b09b4f7f67ccfc32480e29f78348d97"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-gcovr_5.2.bb b/meta-python/recipes-devtools/python/python3-gcovr_5.2.bb
deleted file mode 100644
index 03231f926a..0000000000
--- a/meta-python/recipes-devtools/python/python3-gcovr_5.2.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "generate GCC code coverage reports"
-HOMEPAGE = "https://gcovr.com"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e59af597b3484fa3b52c0fbfd5d17611"
-
-SRC_URI = "git://github.com/gcovr/gcovr.git;branch=master;protocol=https"
-SRCREV = "1040a85ecfb3ef0d01635df9d50a3cae5059d566"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-PIP_INSTALL_PACKAGE = "gcovr"
-
-RDEPENDS:${PN} += "${PYTHON_PN}-jinja2 ${PYTHON_PN}-lxml ${PYTHON_PN}-setuptools ${PYTHON_PN}-pygments"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-gcovr_7.2.bb b/meta-python/recipes-devtools/python/python3-gcovr_7.2.bb
new file mode 100644
index 0000000000..8a61a2de05
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gcovr_7.2.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "generate GCC code coverage reports"
+HOMEPAGE = "https://gcovr.com"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c5a58ca91c1758a53f896ba89d8aaac2"
+
+SRC_URI = "git://github.com/gcovr/gcovr.git;branch=main;protocol=https"
+SRCREV = "c4b74b0859611283be646d590c7915e787911b6f"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+RDEPENDS:${PN} += "python3-jinja2 python3-lxml python3-setuptools python3-pygments python3-multiprocessing"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-geojson/run-ptest b/meta-python/recipes-devtools/python/python3-geojson/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-geojson/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-geojson/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-geojson_2.5.0.bb b/meta-python/recipes-devtools/python/python3-geojson_2.5.0.bb
deleted file mode 100644
index 40cf8bda76..0000000000
--- a/meta-python/recipes-devtools/python/python3-geojson_2.5.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Python bindings and utilities for GeoJSON"
-HOMEPAGE = "https://pypi.org/project/geojson/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=f48972abe5cddee79e301574742ed745"
-
-SRC_URI[md5sum] = "14753ed28678828b1de73f68b04e2324"
-SRC_URI[sha256sum] = "6e4bb7ace4226a45d9c8c8b1348b3fc43540658359f93c3f7e03efa9f15f658a"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN} += "python3-simplejson python3-math"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-geojson_3.1.0.bb b/meta-python/recipes-devtools/python/python3-geojson_3.1.0.bb
new file mode 100644
index 0000000000..742f921e59
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-geojson_3.1.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Python bindings and utilities for GeoJSON"
+HOMEPAGE = "https://pypi.org/project/geojson/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=f77f2ed49768c8d4c79ba874c0f94d8a"
+
+SRC_URI[sha256sum] = "58a7fa40727ea058efc28b0e9ff0099eadf6d0965e04690830208d3ef571adac"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += "python3-simplejson python3-math"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb b/meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb
deleted file mode 100644
index 8e907462ae..0000000000
--- a/meta-python/recipes-devtools/python/python3-geomet_0.3.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Convert GeoJSON to WKT/WKB (Well-Known Text/Binary), and vice versa."
-DESCRIPTION = "Convert GeoJSON to WKT/WKB (Well-Known Text/Binary), and vice versa."
-HOMEPAGE = "https://github.com/geomet/geomet"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
-SRCNAME = "geomet"
-
-SRC_URI[sha256sum] = "cb52411978ee01ff104ab48f108d7333b14423ae7a15a65fee25b7d29bda2e1b"
-
-S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/geomet/geomet.git;protocol=https;branch=release-${PV} \
- "
-SRCREV = "73ec5ec96cca32f2e2461d3964fc3d4ab80248f9"
-
-inherit setuptools3
-PIP_INSTALL_PACKAGE = "geomet"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-click \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-six \
-"
diff --git a/meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb b/meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb
new file mode 100644
index 0000000000..ceba10b65b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-geomet_1.1.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Convert GeoJSON to WKT/WKB (Well-Known Text/Binary), and vice versa."
+DESCRIPTION = "Convert GeoJSON to WKT/WKB (Well-Known Text/Binary), and vice versa."
+HOMEPAGE = "https://github.com/geomet/geomet"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
+SRCNAME = "geomet"
+
+SRC_URI[sha256sum] = "cb52411978ee01ff104ab48f108d7333b14423ae7a15a65fee25b7d29bda2e1b"
+
+S = "${WORKDIR}/git"
+SRC_URI = "git://github.com/geomet/geomet.git;protocol=https;branch=master"
+SRCREV = "6ac73c312b52aca328db2e61d90c5e363b62639f"
+
+inherit setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-click \
+ python3-core \
+ python3-io \
+ python3-json \
+ python3-logging \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-gevent/0001-_setuputils.py-Do-not-add-sys_inc_dir.patch b/meta-python/recipes-devtools/python/python3-gevent/0001-_setuputils.py-Do-not-add-sys_inc_dir.patch
new file mode 100644
index 0000000000..49903d6ce8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gevent/0001-_setuputils.py-Do-not-add-sys_inc_dir.patch
@@ -0,0 +1,38 @@
+From 9eb453283a7ac8a9b1dd3eac86d936c7a430476b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 11 Oct 2022 17:37:01 -0700
+Subject: [PATCH] _setuputils.py: Do not add sys_inc_dir
+
+sys_inc_dir computes to ignore sysroot and ends with paths into host
+system include area, which is then flagged by OE gcc since it finds
+the host include path poisoning. Since we are adding the syroot anyway
+we really do not need setuptools to deduce it for us.
+
+Upstream-Status: Inappropriate [ Cross-compile specific ]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ _setuputils.py | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/_setuputils.py b/_setuputils.py
+index 4c25e00..23fdfe1 100644
+--- a/_setuputils.py
++++ b/_setuputils.py
+@@ -164,7 +164,6 @@ def get_include_dirs(*extra_paths):
+ # Neither sysconfig dir is not enough if we're in a virtualenv; the greenlet.h
+ # header goes into a site/ subdir. See https://github.com/pypa/pip/issues/4610
+ dist_inc_dir = os.path.abspath(dist_sysconfig.get_python_inc()) # 1
+- sys_inc_dir = os.path.abspath(sysconfig.get_path("include")) # 2
+ venv_include_dir = os.path.join(
+ sys.prefix, 'include', 'site',
+ 'python' + sysconfig.get_python_version()
+@@ -178,7 +177,7 @@ def get_include_dirs(*extra_paths):
+
+ return [
+ p
+- for p in (dist_inc_dir, sys_inc_dir, dep_inc_dir) + extra_paths
++ for p in (dist_inc_dir, dep_inc_dir) + extra_paths
+ if os.path.exists(p)
+ ]
+
diff --git a/meta-python/recipes-devtools/python/python3-gevent_21.12.0.bb b/meta-python/recipes-devtools/python/python3-gevent_21.12.0.bb
deleted file mode 100644
index 5cbb3268b0..0000000000
--- a/meta-python/recipes-devtools/python/python3-gevent_21.12.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "A coroutine-based Python networking library"
-DESCRIPTION = "gevent is a coroutine-based Python networking library that uses greenlet to provide \
-a high-level synchronous API on top of the libevent event loop."
-HOMEPAGE = "http://www.gevent.org"
-LICENSE = "MIT & Python-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4de99aac27b470c29c6c309e0c279b65"
-DEPENDS += "${PYTHON_PN}-greenlet libev libuv c-ares"
-
-RDEPENDS:${PN} = "${PYTHON_PN}-greenlet \
- ${PYTHON_PN}-mime \
- ${PYTHON_PN}-pprint \
- "
-
-SRC_URI[sha256sum] = "f48b64578c367b91fa793bf8eaaaf4995cb93c8bc45860e473bf868070ad094e"
-
-inherit pypi setuptools3
-
-# Don't embed libraries, link to the system provided libs instead
-export GEVENTSETUP_EMBED_CARES = "0"
-export GEVENTSETUP_EMBED_LIBEV = "0"
-export GEVENTSETUP_EMBED_LIBUV = "0"
-
-# Delete the embedded copies of libraries so we can't accidentally link to them
-do_configure:append() {
- rm -rf ${S}/deps
-}
diff --git a/meta-python/recipes-devtools/python/python3-gevent_24.2.1.bb b/meta-python/recipes-devtools/python/python3-gevent_24.2.1.bb
new file mode 100644
index 0000000000..fbdbf8ccc7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gevent_24.2.1.bb
@@ -0,0 +1,37 @@
+SUMMARY = "A coroutine-based Python networking library"
+DESCRIPTION = "gevent is a coroutine-based Python networking library that uses greenlet to provide \
+a high-level synchronous API on top of the libevent event loop."
+HOMEPAGE = "http://www.gevent.org"
+LICENSE = "MIT & Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4de99aac27b470c29c6c309e0c279b65"
+DEPENDS += "python3-greenlet libev libuv c-ares python3-cython-native"
+
+RDEPENDS:${PN} = "python3-greenlet \
+ python3-mime \
+ python3-pprint \
+ python3-zopeevent \
+ python3-zopeinterface \
+ "
+
+SRC_URI += "file://0001-_setuputils.py-Do-not-add-sys_inc_dir.patch"
+
+SRC_URI[sha256sum] = "432fc76f680acf7cf188c2ee0f5d3ab73b63c1f03114c7cd8a34cebbe5aa2056"
+
+inherit pypi setuptools3
+
+# Don't embed libraries, link to the system provided libs instead
+export GEVENTSETUP_EMBED_CARES = "0"
+export GEVENTSETUP_EMBED_LIBEV = "0"
+export GEVENTSETUP_EMBED_LIBUV = "0"
+
+do_configure:append() {
+ # Delete the embedded copies of libraries so we can't accidentally link to them
+ rm -rf ${S}/deps
+
+ # Delete the generated cython files, as they are all out of date with python 3.11
+ rm -rf ${S}/src/gevent/*.c
+}
+
+do_compile:append() {
+ sed -i -e 's#${WORKDIR}##g' ${S}/src/gevent/*.c ${S}/src/gevent/libev/*.c ${S}/src/gevent/resolver/*.c
+}
diff --git a/meta-python/recipes-devtools/python/python3-git-pw_2.6.0.bb b/meta-python/recipes-devtools/python/python3-git-pw_2.6.0.bb
new file mode 100644
index 0000000000..c0b6a60814
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-git-pw_2.6.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A tool for integrating Git with Patchwork"
+HOMEPAGE = "https://github.com/getpatchwork/git-pw"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=26e1a171d943c64f00c51f90c256b9d4"
+
+SRC_URI[sha256sum] = "e118e31bbe259ed9ae540d627cc563a6ece553d02aed11b1a92bbac408a0da0e"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += " \
+ python3-pbr-native \
+"
+
+RDEPENDS:${PN} += " \
+ python3-arrow \
+ python3-click \
+ python3-pyyaml \
+ python3-requests \
+ python3-tabulate \
+"
diff --git a/meta-python/recipes-devtools/python/python3-gmpy2/0001-src-fix-python-3.12-builds.patch b/meta-python/recipes-devtools/python/python3-gmpy2/0001-src-fix-python-3.12-builds.patch
new file mode 100644
index 0000000000..1171322e26
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gmpy2/0001-src-fix-python-3.12-builds.patch
@@ -0,0 +1,263 @@
+From 43f132103cedfd92b85173bcdacfbabd5916d9fc Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 27 Dec 2023 14:52:16 +0100
+Subject: [PATCH] src: fix python 3.12 builds
+
+This is a backport for 3.1.x versions provided separately in https://github.com/aleaxit/gmpy/issues/446
+
+Upstream-Status: Inappropriate [can be dropped when 2.2.x is released]
+
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ src/gmpy2_convert.h | 21 +++++++
+ src/gmpy2_convert_gmp.c | 129 +++++++++++++-------------------------
+ src/gmpy2_convert_utils.c | 2 +-
+ 3 files changed, 65 insertions(+), 87 deletions(-)
+
+diff --git a/src/gmpy2_convert.h b/src/gmpy2_convert.h
+index f887d47..3e8cb2b 100644
+--- a/src/gmpy2_convert.h
++++ b/src/gmpy2_convert.h
+@@ -142,6 +142,27 @@ extern "C" {
+ #define IS_TYPE_COMPLEX_ONLY(x) ((x > OBJ_TYPE_REAL) && \
+ (x < OBJ_TYPE_COMPLEX))
+
++/* Compatibility macros (to work with PyLongObject internals).
++ */
++
++#if PY_VERSION_HEX >= 0x030C0000
++# define TAG_FROM_SIGN_AND_SIZE(is_neg, size) ((is_neg?2:(size==0)) | (((size_t)size) << 3))
++# define _PyLong_SetSignAndDigitCount(obj, is_neg, size) (obj->long_value.lv_tag = TAG_FROM_SIGN_AND_SIZE(is_neg, size))
++#elif PY_VERSION_HEX >= 0x030900A4
++# define _PyLong_SetSignAndDigitCount(obj, is_neg, size) (Py_SET_SIZE(obj, (is_neg?-1:1)*size))
++#else
++# define _PyLong_SetSignAndDigitCount(obj, is_neg, size) (Py_SIZE(obj) = (is_neg?-1:1)*size)
++#endif
++
++#if PY_VERSION_HEX >= 0x030C0000
++# define GET_OB_DIGIT(obj) obj->long_value.ob_digit
++# define _PyLong_IsNegative(obj) ((obj->long_value.lv_tag & 3) == 2)
++# define _PyLong_DigitCount(obj) (obj->long_value.lv_tag >> 3)
++#else
++# define GET_OB_DIGIT(obj) obj->ob_digit
++# define _PyLong_IsNegative(obj) (Py_SIZE(obj) < 0)
++# define _PyLong_DigitCount(obj) (_PyLong_IsNegative(obj)? -Py_SIZE(obj):Py_SIZE(obj))
++#endif
+
+ /* Since the macros are used in gmpy2's codebase, these functions are skipped
+ * until they are needed for the C API in the future.
+diff --git a/src/gmpy2_convert_gmp.c b/src/gmpy2_convert_gmp.c
+index cf0891e..8b8df81 100644
+--- a/src/gmpy2_convert_gmp.c
++++ b/src/gmpy2_convert_gmp.c
+@@ -59,33 +59,24 @@ GMPy_MPZ_From_PyIntOrLong(PyObject *obj, CTXT_Object *context)
+ }
+ #endif
+
+- switch (Py_SIZE(templong)) {
+- case -1:
+- mpz_set_si(result->z, -(sdigit)templong->ob_digit[0]);
++ len = _PyLong_DigitCount(templong);
++ negative = _PyLong_IsNegative(templong);
++
++ switch (len) {
++ case 1:
++ mpz_set_si(result->z, (sdigit)GET_OB_DIGIT(templong)[0]);
+ break;
+ case 0:
+ mpz_set_si(result->z, 0);
+ break;
+- case 1:
+- mpz_set_si(result->z, templong->ob_digit[0]);
+- break;
+ default:
+- mpz_set_si(result->z, 0);
+-
+- if (Py_SIZE(templong) < 0) {
+- len = - Py_SIZE(templong);
+- negative = 1;
+- } else {
+- len = Py_SIZE(templong);
+- negative = 0;
+- }
+-
+- mpz_import(result->z, len, -1, sizeof(templong->ob_digit[0]), 0,
+- sizeof(templong->ob_digit[0])*8 - PyLong_SHIFT, templong->ob_digit);
++ mpz_import(result->z, len, -1, sizeof(GET_OB_DIGIT(templong)[0]), 0,
++ sizeof(GET_OB_DIGIT(templong)[0])*8 - PyLong_SHIFT,
++ GET_OB_DIGIT(templong));
++ }
+
+- if (negative) {
+- mpz_neg(result->z, result->z);
+- }
++ if (negative) {
++ mpz_neg(result->z, result->z);
+ }
+ return result;
+ }
+@@ -105,33 +96,24 @@ mpz_set_PyIntOrLong(mpz_t z, PyObject *obj)
+ }
+ #endif
+
+- switch (Py_SIZE(templong)) {
+- case -1:
+- mpz_set_si(z, -(sdigit)templong->ob_digit[0]);
++ len = _PyLong_DigitCount(templong);
++ negative = _PyLong_IsNegative(templong);
++
++ switch (len) {
++ case 1:
++ mpz_set_si(z, (sdigit)GET_OB_DIGIT(templong)[0]);
+ break;
+ case 0:
+ mpz_set_si(z, 0);
+ break;
+- case 1:
+- mpz_set_si(z, templong->ob_digit[0]);
+- break;
+ default:
+- mpz_set_si(z, 0);
+-
+- if (Py_SIZE(templong) < 0) {
+- len = - Py_SIZE(templong);
+- negative = 1;
+- } else {
+- len = Py_SIZE(templong);
+- negative = 0;
+- }
+-
+- mpz_import(z, len, -1, sizeof(templong->ob_digit[0]), 0,
+- sizeof(templong->ob_digit[0])*8 - PyLong_SHIFT, templong->ob_digit);
++ mpz_import(z, len, -1, sizeof(GET_OB_DIGIT(templong)[0]), 0,
++ sizeof(GET_OB_DIGIT(templong)[0])*8 - PyLong_SHIFT,
++ GET_OB_DIGIT(templong));
++ }
+
+- if (negative) {
+- mpz_neg(z, z);
+- }
++ if (negative) {
++ mpz_neg(z, z);
+ }
+ return;
+ }
+@@ -186,12 +168,7 @@ GMPy_PyLong_From_MPZ(MPZ_Object *obj, CTXT_Object *context)
+
+ /* Assume gmp uses limbs as least as large as the builtin longs do */
+
+- if (mpz_sgn(obj->z) < 0) {
+- negative = 1;
+- } else {
+- negative = 0;
+- }
+-
++ negative = mpz_sgn(obj->z) < 0;
+ size = (mpz_sizeinbase(obj->z, 2) + PyLong_SHIFT - 1) / PyLong_SHIFT;
+
+ if (!(result = _PyLong_New(size))) {
+@@ -200,31 +177,20 @@ GMPy_PyLong_From_MPZ(MPZ_Object *obj, CTXT_Object *context)
+ /* LCOV_EXCL_STOP */
+ }
+
+- mpz_export(result->ob_digit, &count, -1, sizeof(result->ob_digit[0]), 0,
+- sizeof(result->ob_digit[0])*8 - PyLong_SHIFT, obj->z);
++ mpz_export(GET_OB_DIGIT(result), &count, -1, sizeof(GET_OB_DIGIT(result)[0]), 0,
++ sizeof(GET_OB_DIGIT(result)[0])*8 - PyLong_SHIFT, obj->z);
+
+ if (count == 0) {
+- result->ob_digit[0] = 0;
++ GET_OB_DIGIT(result)[0] = 0;
+ }
+
+ /* long_normalize() is file-static so we must reimplement it */
+ /* longobjp = long_normalize(longobjp); */
+- while ((size>0) && (result->ob_digit[size-1] == 0)) {
++ while ((size>0) && (GET_OB_DIGIT(result)[size-1] == 0)) {
+ size--;
+ }
+-#if PY_VERSION_HEX >= 0x030900A4
+- Py_SET_SIZE(result, size);
+-#else
+- Py_SIZE(result) = size;
+-#endif
+
+- if (negative) {
+-#if PY_VERSION_HEX >= 0x030900A4
+- Py_SET_SIZE(result, - Py_SIZE(result));
+-#else
+- Py_SIZE(result) = - Py_SIZE(result);
+-#endif
+- }
++ _PyLong_SetSignAndDigitCount(result, negative, size);
+ return (PyObject*)result;
+ }
+
+@@ -476,33 +442,24 @@ GMPy_XMPZ_From_PyIntOrLong(PyObject *obj, CTXT_Object *context)
+ }
+ #endif
+
+- switch (Py_SIZE(templong)) {
+- case -1:
+- mpz_set_si(result->z, -(sdigit)templong->ob_digit[0]);
++ len = _PyLong_DigitCount(templong);
++ negative = _PyLong_IsNegative(templong);
++
++ switch (len) {
++ case 1:
++ mpz_set_si(result->z, (sdigit)GET_OB_DIGIT(templong)[0]);
+ break;
+ case 0:
+ mpz_set_si(result->z, 0);
+ break;
+- case 1:
+- mpz_set_si(result->z, templong->ob_digit[0]);
+- break;
+ default:
+- mpz_set_si(result->z, 0);
+-
+- if (Py_SIZE(templong) < 0) {
+- len = - Py_SIZE(templong);
+- negative = 1;
+- } else {
+- len = Py_SIZE(templong);
+- negative = 0;
+- }
+-
+- mpz_import(result->z, len, -1, sizeof(templong->ob_digit[0]), 0,
+- sizeof(templong->ob_digit[0])*8 - PyLong_SHIFT, templong->ob_digit);
++ mpz_import(result->z, len, -1, sizeof(GET_OB_DIGIT(templong)[0]), 0,
++ sizeof(GET_OB_DIGIT(templong)[0])*8 - PyLong_SHIFT,
++ GET_OB_DIGIT(templong));
++ }
+
+- if (negative) {
+- mpz_neg(result->z, result->z);
+- }
++ if (negative) {
++ mpz_neg(result->z, result->z);
+ }
+ return result;
+ }
+@@ -639,7 +596,7 @@ GMPy_MPQ_From_PyStr(PyObject *s, int base, CTXT_Object *context)
+ }
+
+ cp = PyBytes_AsString(ascii_str);
+-
++
+ {
+ char *whereslash = strchr((char*)cp, '/');
+ char *wheredot = strchr((char*)cp, '.');
+diff --git a/src/gmpy2_convert_utils.c b/src/gmpy2_convert_utils.c
+index d676eaf..8908d17 100644
+--- a/src/gmpy2_convert_utils.c
++++ b/src/gmpy2_convert_utils.c
+@@ -123,7 +123,7 @@ static unsigned long
+ GMPy_Integer_AsUnsignedLongWithType_v2(PyObject *x, int xtype)
+ {
+ if IS_TYPE_PyInteger(xtype) {
+- if (Py_SIZE(x) < 0) {
++ if (_PyLong_IsNegative(((PyLongObject*)x))) {
+ VALUE_ERROR("n must be > 0");
+ return (unsigned long)-1;
+ }
diff --git a/meta-python/recipes-devtools/python/python3-gmpy2_2.1.2.bb b/meta-python/recipes-devtools/python/python3-gmpy2_2.1.2.bb
deleted file mode 100644
index 274f24090b..0000000000
--- a/meta-python/recipes-devtools/python/python3-gmpy2_2.1.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x"
-SECTION = "devel/python"
-LICENSE = "GPL-3.0-only | LGPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
-
-DEPENDS += "gmp mpfr libmpc"
-
-PYPI_PACKAGE = "gmpy2"
-SRC_URI[sha256sum] = "da75140bca128ece795895477e53b43773e3748aa90ba6170eae7ca2c74b82d1"
-
-inherit pypi setuptools3 python3native
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb b/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb
new file mode 100644
index 0000000000..d9e9bd50e5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb
@@ -0,0 +1,15 @@
+SUMMARY = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x"
+SECTION = "devel/python"
+LICENSE = "GPL-3.0-only | LGPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+DEPENDS += "gmp mpfr libmpc"
+
+PYPI_PACKAGE = "gmpy2"
+SRC_URI[sha256sum] = "bc297f1fd8c377ae67a4f493fc0f926e5d1b157e5c342e30a4d84dc7b9f95d96"
+
+inherit pypi setuptools3 python3native
+SRC_URI += "file://0001-src-fix-python-3.12-builds.patch"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-gmqtt_0.6.11.bb b/meta-python/recipes-devtools/python/python3-gmqtt_0.6.11.bb
deleted file mode 100644
index 0e6670b906..0000000000
--- a/meta-python/recipes-devtools/python/python3-gmqtt_0.6.11.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Client for MQTT protocol"
-HOMEPAGE = "https://github.com/wialon/gmqtt"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=903f1792621a3b35ee546da75d139177"
-
-SRC_URI[sha256sum] = "0be6d57841538abc3ae0a41131c6d53314e0705b74876a6f94bc903df1209fb6"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- python3-asyncio \
- python3-core \
- python3-datetime \
- python3-json \
- python3-logging \
- python3-netclient \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-gmqtt_0.6.14.bb b/meta-python/recipes-devtools/python/python3-gmqtt_0.6.14.bb
new file mode 100644
index 0000000000..5d8a3ba51c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gmqtt_0.6.14.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Client for MQTT protocol"
+HOMEPAGE = "https://github.com/wialon/gmqtt"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=903f1792621a3b35ee546da75d139177"
+
+SRC_URI[sha256sum] = "45b0f7794247455b9163155eeedf41c86e303c72b79056bf65d33038b17443a3"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-asyncio \
+ python3-core \
+ python3-datetime \
+ python3-json \
+ python3-logging \
+ python3-netclient \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-gnupg_0.5.0.bb b/meta-python/recipes-devtools/python/python3-gnupg_0.5.0.bb
deleted file mode 100644
index b97c4f3f5d..0000000000
--- a/meta-python/recipes-devtools/python/python3-gnupg_0.5.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "A wrapper for the Gnu Privacy Guard (GPG or GnuPG)"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5dabe659eadd6d97325b1582e41cfc11"
-
-PYPI_PACKAGE = "python-gnupg"
-SRC_URI[sha256sum] = "70758e387fc0e0c4badbcb394f61acbe68b34970a8fed7e0f7c89469fe17912a"
-
-inherit pypi python_setuptools_build_meta
-
-RDEPENDS:${PN} += " \
- gnupg-gpg \
- python3-logging \
-"
diff --git a/meta-python/recipes-devtools/python/python3-gnupg_0.5.2.bb b/meta-python/recipes-devtools/python/python3-gnupg_0.5.2.bb
new file mode 100644
index 0000000000..b69e2c465e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gnupg_0.5.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A wrapper for the Gnu Privacy Guard (GPG or GnuPG)"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5dabe659eadd6d97325b1582e41cfc11"
+
+PYPI_PACKAGE = "python-gnupg"
+SRC_URI[sha256sum] = "01d8013931c9fa3f45824bbea7054c03d6e11f258a72e7e086e168dbcb91854c"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += " \
+ gnupg-gpg \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-google-api-core_2.10.1.bb b/meta-python/recipes-devtools/python/python3-google-api-core_2.10.1.bb
deleted file mode 100644
index c7ded90984..0000000000
--- a/meta-python/recipes-devtools/python/python3-google-api-core_2.10.1.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "Google API client core library"
-HOMEPAGE = "https://github.com/googleapis/python-api-core"
-AUTHOR = "Google LLC"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "e16c15a11789bc5a3457afb2818a3540a03f341e6e710d7f9bbf6cde2ef4a7c8"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-asyncio \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-math \
-"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-googleapis-common-protos \
- ${PYTHON_PN}-google-auth \
- ${PYTHON_PN}-grpcio \
- ${PYTHON_PN}-protobuf \
- ${PYTHON_PN}-pytz \
- ${PYTHON_PN}-requests \
- ${PYTHON_PN}-six \
-"
diff --git a/meta-python/recipes-devtools/python/python3-google-api-core_2.18.0.bb b/meta-python/recipes-devtools/python/python3-google-api-core_2.18.0.bb
new file mode 100644
index 0000000000..b4cbafa85d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-google-api-core_2.18.0.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Google API client core library"
+HOMEPAGE = "https://github.com/googleapis/python-api-core"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "62d97417bfc674d6cef251e5c4d639a9655e00c45528c4364fbfebb478ce72a9"
+
+RDEPENDS:${PN} += "\
+ python3-asyncio \
+ python3-datetime \
+ python3-logging \
+ python3-math \
+"
+
+RDEPENDS:${PN} += "\
+ python3-googleapis-common-protos \
+ python3-google-auth \
+ python3-grpcio \
+ python3-protobuf \
+ python3-pytz \
+ python3-requests \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-google-api-python-client_2.124.0.bb b/meta-python/recipes-devtools/python/python3-google-api-python-client_2.124.0.bb
new file mode 100644
index 0000000000..99b07d3e86
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-google-api-python-client_2.124.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "The Google API Client for Python is a client library for accessing the Plus, \
+Moderator, and many other Google APIs."
+HOMEPAGE = "https://github.com/googleapis/google-api-python-client"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI[sha256sum] = "f6d3258420f7c76b0f5266b5e402e6f804e30351b018a10083f4a46c3ec33773"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-logging \
+ python3-six \
+ python3-json \
+ python3-core \
+ python3-netclient \
+ python3-httplib2 \
+ python3-uritemplate \
+ python3-google-api-core \
+"
diff --git a/meta-python/recipes-devtools/python/python3-google-api-python-client_2.62.0.bb b/meta-python/recipes-devtools/python/python3-google-api-python-client_2.62.0.bb
deleted file mode 100644
index abceda8d02..0000000000
--- a/meta-python/recipes-devtools/python/python3-google-api-python-client_2.62.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "The Google API Client for Python is a client library for accessing the Plus, \
-Moderator, and many other Google APIs."
-HOMEPAGE = "https://github.com/googleapis/google-api-python-client"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRC_URI[sha256sum] = "8307b85f0b8f84252747326de50eda279220cc1a3966d6b82e94486618275637"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-httplib2 \
- ${PYTHON_PN}-uritemplate \
- ${PYTHON_PN}-google-api-core \
-"
diff --git a/meta-python/recipes-devtools/python/python3-google-auth-oauthlib/run-ptest b/meta-python/recipes-devtools/python/python3-google-auth-oauthlib/run-ptest
new file mode 100644
index 0000000000..f1c8729f0e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-google-auth-oauthlib/run-ptest
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+pytest --automake
+
diff --git a/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb b/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb
new file mode 100644
index 0000000000..70e843a094
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-google-auth-oauthlib_1.2.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Google Authentication Library"
+DESCRIPTION = "This library provides oauthlib integration with google-auth"
+HOMEPAGE = "https://github.com/googleapis/google-auth-library-python-oauthlib"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "292d2d3783349f2b0734a0a0207b1e1e322ac193c2c09d8f7c613fb7cc501ea8"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-click \
+ python3-mock \
+ python3-pytest \
+ python3-unittest-automake-output \
+ python3-unixadmin \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-google-auth \
+ python3-requests-oauthlib \
+"
diff --git a/meta-python/recipes-devtools/python/python3-google-auth/run-ptest b/meta-python/recipes-devtools/python/python3-google-auth/run-ptest
new file mode 100644
index 0000000000..f1c8729f0e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-google-auth/run-ptest
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+pytest --automake
+
diff --git a/meta-python/recipes-devtools/python/python3-google-auth_2.11.1.bb b/meta-python/recipes-devtools/python/python3-google-auth_2.11.1.bb
deleted file mode 100644
index 747a57e814..0000000000
--- a/meta-python/recipes-devtools/python/python3-google-auth_2.11.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "Google Authentication Library"
-HOMEPAGE = "https://github.com/googleapis/google-auth-library-python"
-AUTHOR = "Google Cloud Platform"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "516e6623038b81430dd062a1a25ecd24f173d7c15cdf4e48a9e78bc87e97aeec"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-asyncio \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
-"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-aiohttp \
- ${PYTHON_PN}-cachetools \
- ${PYTHON_PN}-pyasn1-modules \
- ${PYTHON_PN}-rsa \
- ${PYTHON_PN}-six \
-"
diff --git a/meta-python/recipes-devtools/python/python3-google-auth_2.29.0.bb b/meta-python/recipes-devtools/python/python3-google-auth_2.29.0.bb
new file mode 100644
index 0000000000..e8d438df02
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-google-auth_2.29.0.bb
@@ -0,0 +1,41 @@
+DESCRIPTION = "Google Authentication Library"
+HOMEPAGE = "https://github.com/googleapis/google-auth-library-python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI[sha256sum] = "672dff332d073227550ffc7457868ac4218d6c500b155fe6cc17d2b13602c360"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-cryptography \
+ python3-flask \
+ python3-freezegun \
+ python3-grpcio \
+ python3-mock \
+ python3-oauth2client \
+ python3-pyopenssl \
+ python3-pytest \
+ python3-pytest-localserver \
+ python3-pyu2f \
+ python3-requests \
+ python3-responses \
+ python3-unittest-automake-output \
+ python3-unixadmin \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += "\
+ python3-cachetools \
+ python3-json \
+ python3-pyasn1-modules \
+ python3-rsa \
+"
diff --git a/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.56.4.bb b/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.56.4.bb
deleted file mode 100644
index 3f03933e06..0000000000
--- a/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.56.4.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "Common protobufs used in Google APIs"
-HOMEPAGE = "https://github.com/googleapis/python-api-common-protos"
-AUTHOR = "Google LLC"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "c25873c47279387cfdcbdafa36149887901d36202cb645a0e4f29686bf6e4417"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-grpcio \
- ${PYTHON_PN}-protobuf \
-"
diff --git a/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.63.0.bb b/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.63.0.bb
new file mode 100644
index 0000000000..aee2337267
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.63.0.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Common protobufs used in Google APIs"
+HOMEPAGE = "https://github.com/googleapis/python-api-common-protos"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "17ad01b11d5f1d0171c06d3ba5c04c54474e883b66b949722b4938ee2694ef4e"
+
+RDEPENDS:${PN} += "\
+ python3-grpcio \
+ python3-protobuf \
+"
diff --git a/meta-python/recipes-devtools/python/python3-gpiod/run-ptest b/meta-python/recipes-devtools/python/python3-gpiod/run-ptest
new file mode 100644
index 0000000000..bf1244b07c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gpiod/run-ptest
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+cd $(dirname "$(readlink -f "$0")")
+
+# python3-gpiod uses gpio-sim - a configfs-based testing module. We need to
+# make sure configfs is mounted before running any tests.
+modprobe configfs
+mountpoint /sys/kernel/config > /dev/null || mount -t configfs configfs /sys/kernel/config
+
+python3 -m gpiod-test -v > ./python3-gpiod.out 2>&1
+if [ $? -ne 0 ]; then
+ echo "FAIL: python3-gpiod"
+else
+ echo "PASS: python3-gpiod"
+fi
diff --git a/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb b/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb
new file mode 100644
index 0000000000..d8c8628daa
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gpiod_2.1.3.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Python bindings for libgpiod."
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0"
+# The actual license files live in the upstream libgpiod from which the pypi
+# package is spun out.
+LIC_FILES_CHKSUM = "file://setup.py;beginline=237;endline=237;md5=f5ddb56912b7f20bf94aa4d1bdcd3533"
+
+SRC_URI += "file://run-ptest"
+
+SRC_URI[sha256sum] = "a33193d6cab79d252329f71666a35a3668e04f1f82bf9b93ee2c9ae852398b20"
+
+inherit setuptools3-base python_pep517 ptest pypi
+
+DEPENDS += " \
+ libgpiod \
+ python3-setuptools-native \
+"
+RDEPENDS:${PN} += " \
+ libgpiod (>= 2.1) \
+ python3-datetime \
+ python3-profile \
+"
+RDEPENDS:${PN}-ptest += " \
+ libgpiod-ptest \
+ python3-setuptools \
+"
+RRECOMMENDS:${PN}-ptest += "kernel-module-configfs"
+
+export LINK_SYSTEM_LIBGPIOD = "1"
+
+do_compile_ptest() {
+ setup_target_config
+ nativepython3 build_tests.py
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/gpiod-test/gpiosim
+ install -d ${D}${PTEST_PATH}/gpiod-test/procname
+ install -m 0644 ${S}/tests/*.py ${D}${PTEST_PATH}/gpiod-test/
+ install -m 0644 ${B}/tests/gpiosim/_ext* ${D}${PTEST_PATH}/gpiod-test/gpiosim
+ install -m 0644 ${S}/tests/gpiosim/*.py ${D}${PTEST_PATH}/gpiod-test/gpiosim
+ install -m 0644 ${B}/tests/procname/_ext* ${D}${PTEST_PATH}/gpiod-test/procname
+ install -m 0644 ${S}/tests/procname/*.py ${D}${PTEST_PATH}/gpiod-test/procname
+}
+
+INSANE_SKIP:${PN}-ptest += "buildpaths"
diff --git a/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb b/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb
deleted file mode 100644
index 506c738133..0000000000
--- a/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Graphviz protocol implementation"
-HOMEPAGE = "https://graphviz.readthedocs.io/en/stable/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=951dd0868a9606c867ffda0ea3ea6da2"
-
-SRC_URI[sha256sum] = "8c58f14adaa3b947daf26c19bc1e98c4e0702cdc31cf99153e6f06904d492bf8"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE_EXT = "zip"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-logging \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-graphviz_0.20.3.bb b/meta-python/recipes-devtools/python/python3-graphviz_0.20.3.bb
new file mode 100644
index 0000000000..0fd81b0ee6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-graphviz_0.20.3.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Graphviz protocol implementation"
+HOMEPAGE = "https://graphviz.readthedocs.io/en/stable/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=bcdc1cf20245c598f9a563b550605785"
+
+SRC_URI[sha256sum] = "09d6bc81e6a9fa392e7ba52135a9d49f1ed62526f96499325930e87ca1b5925d"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE_EXT = "zip"
+
+RDEPENDS:${PN} += " \
+ python3-logging \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-greenlet_1.1.3.bb b/meta-python/recipes-devtools/python/python3-greenlet_1.1.3.bb
deleted file mode 100644
index 5175212a71..0000000000
--- a/meta-python/recipes-devtools/python/python3-greenlet_1.1.3.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Python lightweight in-process concurrent programming"
-HOMEPAGE = "https://greenlet.readthedocs.io/en/latest/"
-LICENSE = "MIT & PSF-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e95668d68e4329085c7ab3535e6a7aee \
- file://LICENSE.PSF;md5=c106931d9429eda0492617f037b8f69a"
-
-SRC_URI[sha256sum] = "bcb6c6dd1d6be6d38d6db283747d07fda089ff8c559a835236560a4410340455"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-greenlet_3.0.3.bb b/meta-python/recipes-devtools/python/python3-greenlet_3.0.3.bb
new file mode 100644
index 0000000000..abd6c49caf
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-greenlet_3.0.3.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Python lightweight in-process concurrent programming"
+HOMEPAGE = "https://greenlet.readthedocs.io/en/latest/"
+LICENSE = "MIT & PSF-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e95668d68e4329085c7ab3535e6a7aee \
+ file://LICENSE.PSF;md5=c106931d9429eda0492617f037b8f69a"
+
+SRC_URI[sha256sum] = "43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-greenstalk_2.0.0.bb b/meta-python/recipes-devtools/python/python3-greenstalk_2.0.0.bb
deleted file mode 100644
index 841b84ddf6..0000000000
--- a/meta-python/recipes-devtools/python/python3-greenstalk_2.0.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "A Python 3 client for the beanstalkd work queue"
-HOMEPAGE = "https://github.com/mayhewj/greenstalk"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8f98432ba1fce3933c556430fd47298f"
-
-SRC_URI[sha256sum] = "0020970abdb6f400586938573cbbec80410e83805d61e46cf76ea3ed71129257"
-
-RDEPENDS:${PN} += "python3-io python3-core"
-
-inherit pypi
-inherit setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-greenstalk_2.0.2.bb b/meta-python/recipes-devtools/python/python3-greenstalk_2.0.2.bb
new file mode 100644
index 0000000000..33eb62d5d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-greenstalk_2.0.2.bb
@@ -0,0 +1,10 @@
+SUMMARY = "A Python 3 client for the beanstalkd work queue"
+HOMEPAGE = "https://github.com/mayhewj/greenstalk"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8f98432ba1fce3933c556430fd47298f"
+
+SRC_URI[sha256sum] = "3ebde5fc9ecf986f96f6779fd6d15a53f33d432c52a2e28012e100a99ee154a4"
+
+RDEPENDS:${PN} += "python3-io python3-core"
+
+inherit pypi python_setuptools_build_meta
diff --git a/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-protobuf-Disable-musttail-attribute-on-mips.patch b/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-protobuf-Disable-musttail-attribute-on-mips.patch
index 8b13d7ae21..67505d0ce1 100644
--- a/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-protobuf-Disable-musttail-attribute-on-mips.patch
+++ b/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-protobuf-Disable-musttail-attribute-on-mips.patch
@@ -14,11 +14,11 @@ Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
--- a/third_party/protobuf/src/google/protobuf/port_def.inc
+++ b/third_party/protobuf/src/google/protobuf/port_def.inc
-@@ -255,6 +255,7 @@
+@@ -298,6 +298,7 @@
#error PROTOBUF_TAILCALL was previously defined
#endif
- #if __has_cpp_attribute(clang::musttail) && !defined(__arm__) && \
-+ !defined(__mips__) && \
- !defined(_ARCH_PPC) && !defined(__wasm__) && \
- !(defined(_MSC_VER) && defined(_M_IX86)) && \
- !(defined(__NDK_MAJOR__) && __NDK_MAJOR <= 24)
+ #if ABSL_HAVE_CPP_ATTRIBUTE(clang::musttail) && !defined(__arm__) && \
++ !defined(__mips__) && \
+ !defined(_ARCH_PPC) && !defined(__wasm__) && \
+ !(defined(_MSC_VER) && defined(_M_IX86)) && !defined(__i386__)
+ // Compilation fails on ARM32: b/195943306
diff --git a/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
index 4aa11bd57a..07276c17f6 100644
--- a/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
+++ b/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
@@ -30,29 +30,30 @@ diff --git a/setup.py b/setup.py
index cc53e79..be3bc78 100644
--- a/setup.py
+++ b/setup.py
-@@ -87,8 +87,11 @@ def check_linker_need_libatomic():
- """Test if linker on system needs libatomic."""
- code_test = (b'#include <atomic>\n' +
- b'int main() { return std::atomic<int64_t>{}; }')
-- cxx = os.environ.get('CXX', 'c++')
-- cpp_test = subprocess.Popen([cxx, '-x', 'c++', '-std=c++14', '-'],
+@@ -88,9 +88,11 @@
+ b"#include <atomic>\n"
+ + b"int main() { return std::atomic<int64_t>{}; }"
+ )
+- cxx = os.environ.get("CXX", "c++")
+- cpp_test = subprocess.Popen(
+- [cxx, "-x", "c++", "-std=c++14", "-"],
+ cxx, cxx_args = os.environ.get('CXX').split(' ', 1) or 'c++'
+ if not cxx_args:
+ cxx_args = "-g"
+
+ cpp_test = subprocess.Popen([cxx, cxx_args, '-x', 'c++', '-std=c++14', '-'],
- stdin=PIPE,
- stdout=PIPE,
- stderr=PIPE)
-@@ -98,7 +101,7 @@ def check_linker_need_libatomic():
+ stdin=PIPE,
+ stdout=PIPE,
+ stderr=PIPE,
+@@ -101,7 +103,7 @@
# Double-check to see if -latomic actually can solve the problem.
# https://github.com/grpc/grpc/issues/22491
cpp_test = subprocess.Popen(
-- [cxx, '-x', 'c++', '-std=c++14', '-', '-latomic'],
+- [cxx, "-x", "c++", "-std=c++14", "-", "-latomic"],
+ [cxx, cxx_args, '-x', 'c++', '-std=c++14', '-', '-latomic'],
stdin=PIPE,
stdout=PIPE,
- stderr=PIPE)
+ stderr=PIPE,
--
2.25.1
diff --git a/meta-python/recipes-devtools/python/python3-grpcio-tools_1.49.1.bb b/meta-python/recipes-devtools/python/python3-grpcio-tools_1.49.1.bb
deleted file mode 100644
index e1b8a755d5..0000000000
--- a/meta-python/recipes-devtools/python/python3-grpcio-tools_1.49.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Google gRPC tools"
-HOMEPAGE = "http://www.grpc.io/"
-SECTION = "devel/python"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-grpcio"
-
-SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch \
- file://0001-protobuf-Disable-musttail-attribute-on-mips.patch \
- "
-SRC_URI[sha256sum] = "84cc64e5b46bad43d5d7bd2fd772b656eba0366961187a847e908e2cb735db91"
-
-RDEPENDS:${PN} = "${PYTHON_PN}-grpcio"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.1.bb b/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.1.bb
new file mode 100644
index 0000000000..ffa2f843c7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio-tools_1.62.1.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Google gRPC tools"
+HOMEPAGE = "http://www.grpc.io/"
+SECTION = "devel/python"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=7145f7cdd263359b62d342a02f005515"
+
+inherit pypi setuptools3
+
+DEPENDS += "python3-grpcio"
+
+SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch \
+ file://0001-protobuf-Disable-musttail-attribute-on-mips.patch \
+ "
+SRC_URI[sha256sum] = "a4991e5ee8a97ab791296d3bf7e8700b1445635cc1828cc98df945ca1802d7f2"
+
+RDEPENDS:${PN} = "python3-grpcio"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-grpcio/0001-Include-missing-cstdint-header.patch b/meta-python/recipes-devtools/python/python3-grpcio/0001-Include-missing-cstdint-header.patch
new file mode 100644
index 0000000000..5cd94dee9c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio/0001-Include-missing-cstdint-header.patch
@@ -0,0 +1,30 @@
+From 252aa78526287fe033c5656cd166e551fa5daa88 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 30 Jan 2023 10:31:10 -0800
+Subject: [PATCH] Include missing <cstdint> header
+
+gcc 13 moved some includes around and as a result <cstdint> is
+no longer transitively included [1]. Explicitly include it for
+int32_t.
+
+[1] https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
+
+Upstream-Status: Submitted [https://code-review.googlesource.com/c/re2/+/60970]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ third_party/re2/util/pcre.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/third_party/re2/util/pcre.h b/third_party/re2/util/pcre.h
+index 896b0bd..271a005 100644
+--- a/third_party/re2/util/pcre.h
++++ b/third_party/re2/util/pcre.h
+@@ -163,6 +163,7 @@
+
+ #include "util/util.h"
+ #include "re2/stringpiece.h"
++#include <cstdint>
+
+ #ifdef USEPCRE
+ #include <pcre.h>
diff --git a/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
deleted file mode 100644
index 1f465dbb6e..0000000000
--- a/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From de10fbc2386dcac3ab810c49b6977b2ee01bf426 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 17 Feb 2021 13:30:23 -0800
-Subject: [PATCH] setup.py: Do not mix C and C++ compiler options
-
-EXTRA_ENV_COMPILE_ARGS is used both with CC and CXX
-so using -std=c++11 or -std=gnu99 together will cause
-build time errors espcially with clang
-
-Keep '-std=c++11' to fix native build error
-with old gcc (such as gcc 5.4.0 on ubuntu 16.04), for clang
-we will remove them through GRPC_PYTHON_CFLAGS at do_compile
-in bb recipe.
-
-While export CC="gcc ", cc_args is None, it will
-cause subprocess.Popen always return 1. On centos 8, if you don't
-install package libatomic, there will be a native build error
-`cannot find /usr/lib64/libatomic.so.1.2.0'.
-
-Add no harm '-g' to cc_args if cc_args is empty.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
----
- setup.py | 11 +++++++----
- src/python/grpcio/commands.py | 5 ++++-
- 2 files changed, 11 insertions(+), 5 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 3a50c97..bb2386d 100644
---- a/setup.py
-+++ b/setup.py
-@@ -205,8 +205,11 @@ def check_linker_need_libatomic():
- """Test if linker on system needs libatomic."""
- code_test = (b'#include <atomic>\n' +
- b'int main() { return std::atomic<int64_t>{}; }')
-- cxx = shlex.split(os.environ.get('CXX', 'c++'))
-- cpp_test = subprocess.Popen(cxx + ['-x', 'c++', '-std=c++14', '-'],
-+ cxx, cxx_args = os.environ.get('CXX').split(' ', 1) or 'c++'
-+ if not cxx_args:
-+ cxx_args = "-g"
-+
-+ cpp_test = subprocess.Popen([cxx, cxx_args, '-x', 'c++', '-std=c++14', '-'],
- stdin=PIPE,
- stdout=PIPE,
- stderr=PIPE)
-@@ -215,8 +218,8 @@ def check_linker_need_libatomic():
- return False
- # Double-check to see if -latomic actually can solve the problem.
- # https://github.com/grpc/grpc/issues/22491
-- cpp_test = subprocess.Popen(cxx +
-- ['-x', 'c++', '-std=c++14', '-', '-latomic'],
-+ cpp_test = subprocess.Popen(
-+ [cxx, cxx_args, '-x', 'c++', '-std=c++14', '-', '-latomic'],
- stdin=PIPE,
- stdout=PIPE,
- stderr=PIPE)
-diff --git a/src/python/grpcio/commands.py b/src/python/grpcio/commands.py
-index d93b6c7..a8c4a51 100644
---- a/src/python/grpcio/commands.py
-+++ b/src/python/grpcio/commands.py
-@@ -228,7 +228,10 @@ class BuildExt(build_ext.build_ext):
- """
- try:
- # TODO(lidiz) Remove the generated a.out for success tests.
-- cc_test = subprocess.Popen(['cc', '-x', 'c', '-std=c++14', '-'],
-+ cc_test, cc_args = os.environ.get('CC').split(' ', 1) or 'gcc'
-+ if not cc_args:
-+ cc_args = "-g"
-+ cc_test = subprocess.Popen([cc_test, cc_args, '-x', 'c', '-std=c++14', '-'],
- stdin=subprocess.PIPE,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
---
-2.25.1
-
diff --git a/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch b/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch
new file mode 100644
index 0000000000..34ef7874e8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch
@@ -0,0 +1,24 @@
+From 671618df3e48619f0c7a5a3acd8982374a5e43db Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 12 Feb 2023 21:25:04 -0800
+Subject: [PATCH] zlib: Include unistd.h for open/close C APIs
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ third_party/zlib/gzguts.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/third_party/zlib/gzguts.h b/third_party/zlib/gzguts.h
+index f937504..341a68d 100644
+--- a/third_party/zlib/gzguts.h
++++ b/third_party/zlib/gzguts.h
+@@ -18,6 +18,7 @@
+ #endif
+
+ #include <stdio.h>
++#include <unistd.h>
+ #include "zlib.h"
+ #ifdef STDC
+ # include <string.h>
diff --git a/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch b/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
index c5fdcd63d2..f39a9616d9 100644
--- a/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
+++ b/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
@@ -1,4 +1,7 @@
-An all-in-one patch that fixes several issues:
+From 102dcce6610e6606fffd3a4986f84eb52177f8c8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 13 Mar 2021 10:26:25 -0800
+Subject: [PATCH] An all-in-one patch that fixes several issues:
1) UnscaledCycleClock not fully implemented for ppc*-musl (disabled on musl)
2) powerpc stacktrace implementation only works on glibc (disabled on musl)
@@ -7,19 +10,20 @@ An all-in-one patch that fixes several issues:
Sourced from void linux
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Xu Huan <xuhuan.fnst@fujitsu.com>
---
- absl/base/internal/unscaledcycleclock.cc | 4 ++--
- absl/base/internal/unscaledcycleclock.h | 3 ++-
- absl/debugging/internal/examine_stack.cc | 8 +++++++-
- absl/debugging/internal/stacktrace_config.h | 2 +-
+ .../abseil-cpp/absl/base/internal/unscaledcycleclock.cc | 4 ++--
+ .../absl/base/internal/unscaledcycleclock_config.h | 3 ++-
+ .../abseil-cpp/absl/debugging/internal/examine_stack.cc | 8 +++++++-
+ .../absl/debugging/internal/stacktrace_config.h | 2 +-
4 files changed, 12 insertions(+), 5 deletions(-)
-diff --git a/absl/base/internal/unscaledcycleclock.cc b/absl/base/internal/unscaledcycleclock.cc
-index b1c396c..d62bfd6 100644
---- a/absl/base/internal/unscaledcycleclock.cc
-+++ b/absl/base/internal/unscaledcycleclock.cc
+diff --git a/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc b/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
+index 05e0e7b..f11fecb 100644
+--- a/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
++++ b/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc
@@ -20,7 +20,7 @@
#include <intrin.h>
#endif
@@ -38,11 +42,11 @@ index b1c396c..d62bfd6 100644
int64_t UnscaledCycleClock::Now() {
#ifdef __GLIBC__
-diff --git a/absl/base/internal/unscaledcycleclock.h b/absl/base/internal/unscaledcycleclock.h
-index 2cbeae3..683a5ef 100644
---- a/absl/base/internal/unscaledcycleclock.h
-+++ b/absl/base/internal/unscaledcycleclock.h
-@@ -46,7 +46,8 @@
+diff --git a/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h b/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h
+index 24b324a..5e232c1 100644
+--- a/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h
++++ b/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h
+@@ -21,7 +21,8 @@
// The following platforms have an implementation of a hardware counter.
#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
@@ -52,11 +56,11 @@ index 2cbeae3..683a5ef 100644
defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
#else
-diff --git a/absl/debugging/internal/examine_stack.cc b/absl/debugging/internal/examine_stack.cc
-index 5bdd341..a784e0d 100644
---- a/absl/debugging/internal/examine_stack.cc
-+++ b/absl/debugging/internal/examine_stack.cc
-@@ -33,6 +33,10 @@
+diff --git a/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc b/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc
+index 3dd6ba1..9f0601c 100644
+--- a/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc
++++ b/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc
+@@ -36,6 +36,10 @@
#include <csignal>
#include <cstdio>
@@ -67,7 +71,7 @@ index 5bdd341..a784e0d 100644
#include "absl/base/attributes.h"
#include "absl/base/internal/raw_logging.h"
#include "absl/base/macros.h"
-@@ -174,8 +178,10 @@ void* GetProgramCounter(void* const vuc) {
+@@ -177,8 +181,10 @@ void* GetProgramCounter(void* const vuc) {
return reinterpret_cast<void*>(context->uc_mcontext.pc);
#elif defined(__powerpc64__)
return reinterpret_cast<void*>(context->uc_mcontext.gp_regs[32]);
@@ -79,10 +83,10 @@ index 5bdd341..a784e0d 100644
#elif defined(__riscv)
return reinterpret_cast<void*>(context->uc_mcontext.__gregs[REG_PC]);
#elif defined(__s390__) && !defined(__s390x__)
-diff --git a/absl/debugging/internal/stacktrace_config.h b/absl/debugging/internal/stacktrace_config.h
+diff --git a/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h b/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h
index 3929b1b..23d5e50 100644
---- a/absl/debugging/internal/stacktrace_config.h
-+++ b/absl/debugging/internal/stacktrace_config.h
+--- a/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h
++++ b/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h
@@ -60,7 +60,7 @@
#elif defined(__i386__) || defined(__x86_64__)
#define ABSL_STACKTRACE_INL_HEADER \
@@ -92,6 +96,3 @@ index 3929b1b..23d5e50 100644
#define ABSL_STACKTRACE_INL_HEADER \
"absl/debugging/internal/stacktrace_powerpc-inl.inc"
#elif defined(__aarch64__)
---
-2.25.1
-
diff --git a/meta-python/recipes-devtools/python/python3-grpcio/boring_ssl.patch b/meta-python/recipes-devtools/python/python3-grpcio/boring_ssl.patch
deleted file mode 100644
index d12e35a993..0000000000
--- a/meta-python/recipes-devtools/python/python3-grpcio/boring_ssl.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From f71b32eb8a5c173fc5733847437b9485d75bb2e5 Mon Sep 17 00:00:00 2001
-From: Leon Anavi <leon.anavi@konsulko.com>
-Date: Fri, 9 Apr 2021 14:06:36 +0300
-Subject: [PATCH] setup.py: Fix determining target platform
-
-Do not poke at the build machine to determine target platform or architecture
-pass it from environment instead for cross compiling to work
-
-Upstream-Status: Inappropriate [OE-Specific]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
----
- setup.py | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index c93d419f32..71a944a9d0 100644
---- a/setup.py
-+++ b/setup.py
-@@ -116,6 +116,9 @@ def _env_bool_value(env_name, default):
- BUILD_WITH_BORING_SSL_ASM = _env_bool_value('GRPC_BUILD_WITH_BORING_SSL_ASM',
- 'True')
-
-+BORING_SSL_PLATFORM = os.environ.get('GRPC_BORING_SSL_PLATFORM',
-+ 'True')
-+
- # Export this environment variable to override the platform variant that will
- # be chosen for boringssl assembly optimizations. This option is useful when
- # crosscompiling and the host platform as obtained by distutils.utils.get_platform()
-@@ -336,13 +339,13 @@ if BUILD_WITH_BORING_SSL_ASM and not BUILD_WITH_SYSTEM_OPENSSL:
- LINUX_X86_64 = 'linux-x86_64'
- LINUX_ARM = 'linux-arm'
- LINUX_AARCH64 = 'linux-aarch64'
-- if LINUX_X86_64 == boringssl_asm_platform:
-+ if LINUX_X86_64 == BORING_SSL_PLATFORM:
- asm_key = 'crypto_linux_x86_64'
-- elif LINUX_ARM == boringssl_asm_platform:
-+ elif LINUX_ARM == BORING_SSL_PLATFORM:
- asm_key = 'crypto_linux_arm'
-- elif LINUX_AARCH64 == boringssl_asm_platform:
-+ elif LINUX_AARCH64 == BORING_SSL_PLATFORM:
- asm_key = 'crypto_linux_aarch64'
-- elif "mac" in boringssl_asm_platform and "x86_64" in boringssl_asm_platform:
-+ elif "mac" in boringssl_asm_platform and "x86_64" in BORING_SSL_PLATFORM:
- asm_key = 'crypto_mac_x86_64'
- else:
- print("ASM Builds for BoringSSL currently not supported on:",
---
-2.17.1
-
diff --git a/meta-python/recipes-devtools/python/python3-grpcio/mips_bigendian.patch b/meta-python/recipes-devtools/python/python3-grpcio/mips_bigendian.patch
deleted file mode 100644
index 775afa415c..0000000000
--- a/meta-python/recipes-devtools/python/python3-grpcio/mips_bigendian.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/third_party/boringssl-with-bazel/src/include/openssl/base.h
-+++ b/third_party/boringssl-with-bazel/src/include/openssl/base.h
-@@ -102,10 +102,10 @@ extern "C" {
- #elif (defined(__PPC__) || defined(__powerpc__))
- #define OPENSSL_32_BIT
- #define OPENSSL_PPC
--#elif defined(__MIPSEL__) && !defined(__LP64__)
-+#elif defined(__mips__) && !defined(__LP64__)
- #define OPENSSL_32_BIT
- #define OPENSSL_MIPS
--#elif defined(__MIPSEL__) && defined(__LP64__)
-+#elif defined(__mips__) && defined(__LP64__)
- #define OPENSSL_64_BIT
- #define OPENSSL_MIPS64
- #elif defined(__riscv) && __SIZEOF_POINTER__ == 8
diff --git a/meta-python/recipes-devtools/python/python3-grpcio/ppc-boringssl-support.patch b/meta-python/recipes-devtools/python/python3-grpcio/ppc-boringssl-support.patch
deleted file mode 100644
index 5c9be443d8..0000000000
--- a/meta-python/recipes-devtools/python/python3-grpcio/ppc-boringssl-support.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Let boringSSL compile on ppc32 bit
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/third_party/boringssl-with-bazel/src/include/openssl/base.h
-+++ b/third_party/boringssl-with-bazel/src/include/openssl/base.h
-@@ -99,6 +99,9 @@ extern "C" {
- #elif (defined(__PPC64__) || defined(__powerpc64__)) && defined(_LITTLE_ENDIAN)
- #define OPENSSL_64_BIT
- #define OPENSSL_PPC64LE
-+#elif (defined(__PPC__) || defined(__powerpc__))
-+#define OPENSSL_32_BIT
-+#define OPENSSL_PPC
- #elif defined(__MIPSEL__) && !defined(__LP64__)
- #define OPENSSL_32_BIT
- #define OPENSSL_MIPS
diff --git a/meta-python/recipes-devtools/python/python3-grpcio_1.49.1.bb b/meta-python/recipes-devtools/python/python3-grpcio_1.49.1.bb
deleted file mode 100644
index 8efcfdc375..0000000000
--- a/meta-python/recipes-devtools/python/python3-grpcio_1.49.1.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-DESCRIPTION = "Google gRPC"
-HOMEPAGE = "http://www.grpc.io/"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0 & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=731e401b36f8077ae0c134b59be5c906"
-
-DEPENDS += "${PYTHON_PN}-protobuf"
-
-SRC_URI += "file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch"
-SRC_URI:append:class-target = " file://ppc-boringssl-support.patch \
- file://boring_ssl.patch \
- file://mips_bigendian.patch \
- file://abseil-ppc-fixes.patch;patchdir=third_party/abseil-cpp \
-"
-SRC_URI[sha256sum] = "d4725fc9ec8e8822906ae26bb26f5546891aa7fbc3443de970cc556d43a5c99f"
-
-RDEPENDS:${PN} = "${PYTHON_PN}-protobuf \
- ${PYTHON_PN}-setuptools \
- ${PYTHON_PN}-six \
-"
-
-inherit setuptools3
-inherit pypi
-
-CFLAGS += "-D_LARGEFILE64_SOURCE"
-
-export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY = "1"
-
-BORING_SSL_PLATFORM:arm = "linux-arm"
-BORING_SSL_PLATFORM:x86-64 = "linux-x86_64"
-BORING_SSL_PLATFORM ?= "unsupported"
-export GRPC_BORING_SSL_PLATFORM = "${BORING_SSL_PLATFORM}"
-
-BORING_SSL:x86-64 = "1"
-BORING_SSL:arm = "1"
-BORING_SSL ?= "0"
-export GRPC_BUILD_WITH_BORING_SSL_ASM = "${BORING_SSL}"
-
-GRPC_CFLAGS ?= ""
-GRPC_CFLAGS:append:toolchain-clang = " -fvisibility=hidden -fno-wrapv -fno-exceptions"
-export GRPC_PYTHON_CFLAGS = "${GRPC_CFLAGS}"
-
-CLEANBROKEN = "1"
-
-BBCLASSEXTEND = "native nativesdk"
-
-CCACHE_DISABLE = "1"
diff --git a/meta-python/recipes-devtools/python/python3-grpcio_1.62.1.bb b/meta-python/recipes-devtools/python/python3-grpcio_1.62.1.bb
new file mode 100644
index 0000000000..8405ebed02
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio_1.62.1.bb
@@ -0,0 +1,45 @@
+DESCRIPTION = "Google gRPC"
+HOMEPAGE = "http://www.grpc.io/"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0 & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=731e401b36f8077ae0c134b59be5c906"
+
+DEPENDS += "python3-protobuf"
+
+SRC_URI += "file://0001-Include-missing-cstdint-header.patch \
+ file://abseil-ppc-fixes.patch \
+ file://0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch \
+ "
+SRC_URI[sha256sum] = "6c455e008fa86d9e9a9d85bb76da4277c0d7d9668a3bfa70dbe86e9f3c759947"
+
+RDEPENDS:${PN} = "python3-protobuf"
+
+inherit setuptools3
+inherit pypi
+
+CFLAGS:append:libc-musl = " -D_LARGEFILE64_SOURCE"
+
+export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY = "1"
+
+BORING_SSL_PLATFORM:arm = "linux-arm"
+BORING_SSL_PLATFORM:x86-64 = "linux-x86_64"
+BORING_SSL_PLATFORM:aarch64 = "linux-aarch64"
+BORING_SSL_PLATFORM ?= "unsupported"
+export GRPC_BORING_SSL_PLATFORM = "${BORING_SSL_PLATFORM}"
+export GRPC_BUILD_OVERRIDE_BORING_SSL_ASM_PLATFORM = "${BORING_SSL_PLATFORM}"
+
+BORING_SSL:arm = "1"
+BORING_SSL:x86-64 = "1"
+BORING_SSL:aarch64 = "1"
+BORING_SSL ?= "0"
+export GRPC_BUILD_WITH_BORING_SSL_ASM = "${BORING_SSL}"
+
+GRPC_CFLAGS ?= ""
+GRPC_CFLAGS:append:toolchain-clang = " -fvisibility=hidden -fno-wrapv -fno-exceptions"
+export GRPC_PYTHON_CFLAGS = "${GRPC_CFLAGS}"
+
+CLEANBROKEN = "1"
+
+BBCLASSEXTEND = "native nativesdk"
+
+CCACHE_DISABLE = "1"
diff --git a/meta-python/recipes-devtools/python/python3-gunicorn/run-ptest b/meta-python/recipes-devtools/python/python3-gunicorn/run-ptest
index 98d73fa037..5ca7e26e8a 100644
--- a/meta-python/recipes-devtools/python/python3-gunicorn/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-gunicorn/run-ptest
@@ -4,4 +4,4 @@
# ptests to work, so make sure there's at least one nameserver line
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-gunicorn_20.1.0.bb b/meta-python/recipes-devtools/python/python3-gunicorn_20.1.0.bb
deleted file mode 100644
index f381b9df2b..0000000000
--- a/meta-python/recipes-devtools/python/python3-gunicorn_20.1.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "WSGI HTTP Server for UNIX"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f75f3fb94cdeab1d607e2adaa6077752"
-
-SRC_URI[sha256sum] = "e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-eventlet \
- ${PYTHON_PN}-gevent \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN} += "${PYTHON_PN}-setuptools ${PYTHON_PN}-fcntl"
diff --git a/meta-python/recipes-devtools/python/python3-gunicorn_21.2.0.bb b/meta-python/recipes-devtools/python/python3-gunicorn_21.2.0.bb
new file mode 100644
index 0000000000..9fd601c999
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gunicorn_21.2.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "WSGI HTTP Server for UNIX"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=302423eeae97079c633da81b6a5fe35e"
+
+SRC_URI[sha256sum] = "88ec8bff1d634f98e61b9f65bc4bf3cd918a90806c6f5c48bc5603849ec81033"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-eventlet \
+ python3-gevent \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += "python3-setuptools python3-fcntl"
diff --git a/meta-python/recipes-devtools/python/python3-h11_0.14.0.bb b/meta-python/recipes-devtools/python/python3-h11_0.14.0.bb
index 7bda0eae18..2bddefa3f0 100644
--- a/meta-python/recipes-devtools/python/python3-h11_0.14.0.bb
+++ b/meta-python/recipes-devtools/python/python3-h11_0.14.0.bb
@@ -6,3 +6,5 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f5501d19c3116f4aaeef89369f458693"
inherit pypi setuptools3
SRC_URI[sha256sum] = "8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"
+
+RDEPENDS:${PN} += "python3-profile"
diff --git a/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch b/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch
new file mode 100644
index 0000000000..aba62ddf14
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch
@@ -0,0 +1,796 @@
+From 1e02dbe5533d679b9ef064078a303607a7d0542a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 29 Dec 2023 14:33:38 +0100
+Subject: [PATCH] Fix Cython 3 compatibility
+
+Upstream-Status: Backport [https://github.com/h5py/h5py/pull/2345/commits]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ benchmarks/benchmark_slicing.py | 12 ++++----
+ docs/conf.py | 2 +-
+ docs/high/dataset.rst | 4 +--
+ docs/high/file.rst | 6 ++--
+ docs/requirements-rtd.txt | 5 ++--
+ docs/vds.rst | 2 +-
+ docs/whatsnew/3.0.rst | 2 +-
+ docs/whatsnew/3.7.rst | 4 +--
+ h5py/_errors.pxd | 10 +++----
+ h5py/_errors.pyx | 4 +--
+ h5py/_hl/base.py | 4 +--
+ h5py/_hl/dataset.py | 8 ++---
+ h5py/_hl/dims.py | 3 +-
+ h5py/_hl/files.py | 2 +-
+ h5py/_locks.pxi | 6 ++--
+ h5py/_proxy.pyx | 4 +--
+ h5py/_selector.pyx | 2 +-
+ h5py/api_compat.h | 13 ++++----
+ h5py/api_types_hdf5.pxd | 48 +++++++++++++++---------------
+ h5py/h5fd.pyx | 38 ++++++++++++++++-------
+ h5py/h5p.pyx | 4 +--
+ h5py/h5t.pyx | 2 +-
+ h5py/tests/test_attrs_data.py | 2 +-
+ h5py/tests/test_big_endian_file.py | 4 +--
+ h5py/tests/test_dataset.py | 4 +--
+ h5py/tests/test_file.py | 6 ++--
+ h5py/tests/test_file_alignment.py | 4 +--
+ h5py/tests/test_group.py | 4 +--
+ h5py/tests/test_selections.py | 2 +-
+ pylintrc | 2 +-
+ pyproject.toml | 2 +-
+ setup_configure.py | 2 +-
+ tox.ini | 2 +-
+ 33 files changed, 116 insertions(+), 103 deletions(-)
+
+diff --git a/benchmarks/benchmark_slicing.py b/benchmarks/benchmark_slicing.py
+index e9a34dad..b833f012 100644
+--- a/benchmarks/benchmark_slicing.py
++++ b/benchmarks/benchmark_slicing.py
+@@ -7,7 +7,7 @@ import logging
+ logger = logging.getLogger(__name__)
+ import h5py
+
+-#Needed for mutithreading:
++#Needed for multithreading:
+ from queue import Queue
+ from threading import Thread, Event
+ import multiprocessing
+@@ -173,8 +173,8 @@ class SlicingBenchmark:
+
+ if __name__ == "__main__":
+ logging.basicConfig(level=logging.INFO)
+- benckmark = SlicingBenchmark()
+- benckmark.setup()
+- benckmark.time_sequential_reads()
+- benckmark.time_threaded_reads()
+- benckmark.teardown()
++ benchmark = SlicingBenchmark()
++ benchmark.setup()
++ benchmark.time_sequential_reads()
++ benchmark.time_threaded_reads()
++ benchmark.teardown()
+diff --git a/docs/conf.py b/docs/conf.py
+index 93b23939..a0f6c1ac 100644
+--- a/docs/conf.py
++++ b/docs/conf.py
+@@ -109,7 +109,7 @@ pygments_style = 'sphinx'
+
+ # The theme to use for HTML and HTML Help pages. See the documentation for
+ # a list of builtin themes.
+-html_theme = 'default'
++html_theme = 'sphinx_rtd_theme'
+
+ # Theme options are theme-specific and customize the look and feel of a theme
+ # further. For a list of options available for each theme, see the
+diff --git a/docs/high/dataset.rst b/docs/high/dataset.rst
+index 0f27284f..cb75fffe 100644
+--- a/docs/high/dataset.rst
++++ b/docs/high/dataset.rst
+@@ -58,7 +58,7 @@ the requested ``dtype``.
+ Reading & writing data
+ ----------------------
+
+-HDF5 datasets re-use the NumPy slicing syntax to read and write to the file.
++HDF5 datasets reuse the NumPy slicing syntax to read and write to the file.
+ Slice specifications are translated directly to HDF5 "hyperslab"
+ selections, and are a fast and efficient way to access data in the file. The
+ following slicing arguments are recognized:
+@@ -464,7 +464,7 @@ Reference
+ >>> dset = f["MyDS"]
+ >>> f.close()
+ >>> if dset:
+- ... print("datset accessible")
++ ... print("dataset accessible")
+ ... else:
+ ... print("dataset inaccessible")
+ dataset inaccessible
+diff --git a/docs/high/file.rst b/docs/high/file.rst
+index 484498ce..e757fe1a 100644
+--- a/docs/high/file.rst
++++ b/docs/high/file.rst
+@@ -392,7 +392,7 @@ Data alignment
+ When creating datasets within files, it may be advantageous to align the offset
+ within the file itself. This can help optimize read and write times if the data
+ become aligned with the underlying hardware, or may help with parallelism with
+-MPI. Unfortunately, aligning small variables to large blocks can leave alot of
++MPI. Unfortunately, aligning small variables to large blocks can leave a lot of
+ empty space in a file. To this effect, application developers are left with two
+ options to tune the alignment of data within their file. The two variables
+ ``alignment_threshold`` and ``alignment_interval`` in the :class:`File`
+@@ -415,7 +415,7 @@ number of regions. Setting a small value can reduce the overall file size,
+ especially in combination with the ``libver`` option. This controls how the
+ overall data and metadata are laid out within the file.
+
+-For more information, see the offical HDF5 documentation `H5P_SET_META_BLOCK_SIZE
++For more information, see the official HDF5 documentation `H5P_SET_META_BLOCK_SIZE
+ <https://portal.hdfgroup.org/display/HDF5/H5P_SET_META_BLOCK_SIZE>`_.
+
+ Reference
+@@ -497,7 +497,7 @@ Reference
+ Only available with HDF5 >= 1.12.1 or 1.10.x >= 1.10.7.
+ :param alignment_threshold: Together with ``alignment_interval``, this
+ property ensures that any file object greater than or equal
+- in size to the alignement threshold (in bytes) will be
++ in size to the alignment threshold (in bytes) will be
+ aligned on an address which is a multiple of alignment interval.
+ :param alignment_interval: This property should be used in conjunction with
+ ``alignment_threshold``. See the description above. For more
+diff --git a/docs/requirements-rtd.txt b/docs/requirements-rtd.txt
+index e67a3eee..52096927 100644
+--- a/docs/requirements-rtd.txt
++++ b/docs/requirements-rtd.txt
+@@ -1,3 +1,2 @@
+-sphinx==4.3.0
+-sphinx_rtd_theme==1.0.0
+-readthedocs-sphinx-search==0.1.1
++sphinx==7.2.6
++sphinx_rtd_theme==1.3.0
+diff --git a/docs/vds.rst b/docs/vds.rst
+index a9a7c7f6..bd47ad1c 100644
+--- a/docs/vds.rst
++++ b/docs/vds.rst
+@@ -124,7 +124,7 @@ Reference
+ slice it to indicate which regions should be used in the virtual dataset.
+
+ When `creating a virtual dataset <creating_vds_>`_, paths to sources present
+- in the same file are changed to a ".", refering to the current file (see
++ in the same file are changed to a ".", referring to the current file (see
+ `H5Pset_virtual <https://portal.hdfgroup.org/display/HDF5/H5P_SET_VIRTUAL>`_).
+ This will keep such sources valid in case the file is renamed.
+
+diff --git a/docs/whatsnew/3.0.rst b/docs/whatsnew/3.0.rst
+index db30ad66..ff3c2bef 100644
+--- a/docs/whatsnew/3.0.rst
++++ b/docs/whatsnew/3.0.rst
+@@ -44,7 +44,7 @@ New features
+ See also the deprecation related to the ``external`` argument.
+ * Support for setting file space strategy at file creation. Includes option to
+ persist empty space tracking between sessions. See :class:`.File` for details.
+-* More efficient writing when assiging a scalar to a chunked dataset, when the
++* More efficient writing when assigning a scalar to a chunked dataset, when the
+ number of elements to write is no more than the size of one chunk.
+ * Introduced support for the split :ref:`file driver <file_driver>`
+ (:pr:`1468`).
+diff --git a/docs/whatsnew/3.7.rst b/docs/whatsnew/3.7.rst
+index 27790254..2e822d68 100644
+--- a/docs/whatsnew/3.7.rst
++++ b/docs/whatsnew/3.7.rst
+@@ -19,7 +19,7 @@ New features
+ include it. Alternatively, you can :ref:`build h5py from source <source_install>`
+ against an HDF5 build with the direct driver enabled.
+ * The :class:`.File` constructor contains two new parameters ``alignment_threshold``,
+- and ``alignment_interval`` controling the data alignment within the HDF5
++ and ``alignment_interval`` controlling the data alignment within the HDF5
+ file (:pr:`2040`).
+ * :meth:`~.Group.create_dataset` and :meth:`~.Group.require_dataset` now accept
+ parameters ``efile_prefix`` and ``virtual_prefix`` to set a filesystem path
+@@ -40,7 +40,7 @@ Bug fixes
+ attributes with ``track_order=True``.
+ * Fix for building with mpi4py on Python 3.10 (:pr:`2101`).
+ * Fixed fancy indexing with a boolean array for a single dimension (:pr:`2079`).
+-* Avoid returning unitialised memory when reading from a chunked dataset with
++* Avoid returning uninitialised memory when reading from a chunked dataset with
+ missing chunks and no fill value (:pr:`2076`).
+ * Enable setting of fillvalue for datasets with variable length string dtype
+ (:pr:`2044`).
+diff --git a/h5py/_errors.pxd b/h5py/_errors.pxd
+index df9c1bbe..3cba6307 100644
+--- a/h5py/_errors.pxd
++++ b/h5py/_errors.pxd
+@@ -23,7 +23,7 @@ cdef extern from "hdf5.h":
+ H5E_ARGS, # invalid arguments to routine
+ H5E_RESOURCE, # resource unavailable
+ H5E_INTERNAL, # Internal error (too specific to document)
+- H5E_FILE, # file Accessability
++ H5E_FILE, # file Accessibility
+ H5E_IO, # Low-level I/O
+ H5E_FUNC, # function Entry/Exit
+ H5E_ATOM, # object Atom
+@@ -121,7 +121,7 @@ cdef extern from "hdf5.h":
+ # No error
+ H5E_NONE_MINOR # No error
+
+- # File accessability errors
++ # File accessibility errors
+ H5E_FILEEXISTS # File already exists
+ H5E_FILEOPEN # File already open
+ H5E_CANTCREATE # Unable to create file
+@@ -207,7 +207,7 @@ cdef extern from "hdf5.h":
+ H5E_ARGS, # invalid arguments to routine
+ H5E_RESOURCE, # resource unavailable
+ H5E_INTERNAL, # Internal error (too specific to document)
+- H5E_FILE, # file Accessability
++ H5E_FILE, # file Accessibility
+ H5E_IO, # Low-level I/O
+ H5E_FUNC, # function Entry/Exit
+ H5E_ID, # object ID
+@@ -305,7 +305,7 @@ cdef extern from "hdf5.h":
+ # No error
+ H5E_NONE_MINOR # No error
+
+- # File accessability errors
++ # File accessibility errors
+ H5E_FILEEXISTS # File already exists
+ H5E_FILEOPEN # File already open
+ H5E_CANTCREATE # Unable to create file
+@@ -425,4 +425,4 @@ ctypedef struct err_cookie:
+ cdef err_cookie set_error_handler(err_cookie handler)
+
+ # Set the default error handler set by silence_errors/unsilence_errors
+-cdef void set_default_error_handler() nogil
++cdef void set_default_error_handler() noexcept nogil
+diff --git a/h5py/_errors.pyx b/h5py/_errors.pyx
+index c3bd184e..2a7524b2 100644
+--- a/h5py/_errors.pyx
++++ b/h5py/_errors.pyx
+@@ -94,7 +94,7 @@ cdef struct err_data_t:
+ H5E_error_t err
+ int n
+
+-cdef herr_t walk_cb(unsigned int n, const H5E_error_t *desc, void *e) nogil noexcept:
++cdef herr_t walk_cb(unsigned int n, const H5E_error_t *desc, void *e) noexcept nogil:
+
+ cdef err_data_t *ee = <err_data_t*>e
+
+@@ -168,7 +168,7 @@ cdef err_cookie _error_handler # Store error handler used by h5py
+ _error_handler.func = NULL
+ _error_handler.data = NULL
+
+-cdef void set_default_error_handler() nogil:
++cdef void set_default_error_handler() noexcept nogil:
+ """Set h5py's current default error handler"""
+ H5Eset_auto(<hid_t>H5E_DEFAULT, _error_handler.func, _error_handler.data)
+
+diff --git a/h5py/_hl/base.py b/h5py/_hl/base.py
+index cad37053..9d261c90 100644
+--- a/h5py/_hl/base.py
++++ b/h5py/_hl/base.py
+@@ -20,7 +20,7 @@ import posixpath
+ import numpy as np
+
+ # The high-level interface is serialized; every public API function & method
+-# is wrapped in a lock. We re-use the low-level lock because (1) it's fast,
++# is wrapped in a lock. We reuse the low-level lock because (1) it's fast,
+ # and (2) it eliminates the possibility of deadlocks due to out-of-order
+ # lock acquisition.
+ from .._objects import phil, with_phil
+@@ -524,7 +524,7 @@ def product(nums):
+ # Daniel Greenfeld, BSD license), where it is attributed to bottle (Copyright
+ # (c) 2009-2022, Marcel Hellkamp, MIT license).
+
+-class cached_property(object):
++class cached_property:
+ def __init__(self, func):
+ self.__doc__ = getattr(func, "__doc__")
+ self.func = func
+diff --git a/h5py/_hl/dataset.py b/h5py/_hl/dataset.py
+index b69aba48..77b202d2 100644
+--- a/h5py/_hl/dataset.py
++++ b/h5py/_hl/dataset.py
+@@ -334,10 +334,10 @@ class ChunkIterator:
+ self._layout = dset.chunks
+ if source_sel is None:
+ # select over entire dataset
+- slices = []
+- for dim in range(rank):
+- slices.append(slice(0, self._shape[dim]))
+- self._sel = tuple(slices)
++ self._sel = tuple(
++ slice(0, self._shape[dim])
++ for dim in range(rank)
++ )
+ else:
+ if isinstance(source_sel, slice):
+ self._sel = (source_sel,)
+diff --git a/h5py/_hl/dims.py b/h5py/_hl/dims.py
+index d3c9206b..0cf4c9f3 100644
+--- a/h5py/_hl/dims.py
++++ b/h5py/_hl/dims.py
+@@ -53,8 +53,7 @@ class DimensionProxy(base.CommonStateObject):
+
+ @with_phil
+ def __iter__(self):
+- for k in self.keys():
+- yield k
++ yield from self.keys()
+
+ @with_phil
+ def __len__(self):
+diff --git a/h5py/_hl/files.py b/h5py/_hl/files.py
+index aa4fb78d..bfcf3098 100644
+--- a/h5py/_hl/files.py
++++ b/h5py/_hl/files.py
+@@ -480,7 +480,7 @@ class File(Group):
+
+ alignment_threshold
+ Together with ``alignment_interval``, this property ensures that
+- any file object greater than or equal in size to the alignement
++ any file object greater than or equal in size to the alignment
+ threshold (in bytes) will be aligned on an address which is a
+ multiple of alignment interval.
+
+diff --git a/h5py/_locks.pxi b/h5py/_locks.pxi
+index bc8b2dd9..1ec4e2fc 100644
+--- a/h5py/_locks.pxi
++++ b/h5py/_locks.pxi
+@@ -63,7 +63,7 @@ cdef class FastRLock:
+ return self._owner == pythread.PyThread_get_thread_ident()
+
+
+-cdef inline bint lock_lock(FastRLock lock, long current_thread, bint blocking) nogil:
++cdef inline bint lock_lock(FastRLock lock, long current_thread, bint blocking) noexcept nogil:
+ # Note that this function *must* hold the GIL when being called.
+ # We just use 'nogil' in the signature to make sure that no Python
+ # code execution slips in that might free the GIL
+@@ -83,7 +83,7 @@ cdef inline bint lock_lock(FastRLock lock, long current_thread, bint blocking) n
+ lock, current_thread,
+ pythread.WAIT_LOCK if blocking else pythread.NOWAIT_LOCK)
+
+-cdef bint _acquire_lock(FastRLock lock, long current_thread, int wait) nogil:
++cdef bint _acquire_lock(FastRLock lock, long current_thread, int wait) noexcept nogil:
+ # Note that this function *must* hold the GIL when being called.
+ # We just use 'nogil' in the signature to make sure that no Python
+ # code execution slips in that might free the GIL
+@@ -111,7 +111,7 @@ cdef bint _acquire_lock(FastRLock lock, long current_thread, int wait) nogil:
+ lock._count = 1
+ return 1
+
+-cdef inline void unlock_lock(FastRLock lock) nogil:
++cdef inline void unlock_lock(FastRLock lock) noexcept nogil:
+ # Note that this function *must* hold the GIL when being called.
+ # We just use 'nogil' in the signature to make sure that no Python
+ # code execution slips in that might free the GIL
+diff --git a/h5py/_proxy.pyx b/h5py/_proxy.pyx
+index 46b4fe0d..e40504f5 100644
+--- a/h5py/_proxy.pyx
++++ b/h5py/_proxy.pyx
+@@ -241,7 +241,7 @@ ctypedef struct h5py_scatter_t:
+ void* buf
+
+ cdef herr_t h5py_scatter_cb(void* elem, hid_t type_id, unsigned ndim,
+- const hsize_t *point, void *operator_data) nogil except -1:
++ const hsize_t *point, void *operator_data) except -1 nogil:
+ cdef h5py_scatter_t* info = <h5py_scatter_t*>operator_data
+
+ memcpy(elem, (<char*>info[0].buf)+((info[0].i)*(info[0].elsize)),
+@@ -252,7 +252,7 @@ cdef herr_t h5py_scatter_cb(void* elem, hid_t type_id, unsigned ndim,
+ return 0
+
+ cdef herr_t h5py_gather_cb(void* elem, hid_t type_id, unsigned ndim,
+- const hsize_t *point, void *operator_data) nogil except -1:
++ const hsize_t *point, void *operator_data) except -1 nogil:
+ cdef h5py_scatter_t* info = <h5py_scatter_t*>operator_data
+
+ memcpy((<char*>info[0].buf)+((info[0].i)*(info[0].elsize)), elem,
+diff --git a/h5py/_selector.pyx b/h5py/_selector.pyx
+index 8b858c82..69970176 100644
+--- a/h5py/_selector.pyx
++++ b/h5py/_selector.pyx
+@@ -341,7 +341,7 @@ cdef class Reader:
+
+ arr = PyArray_ZEROS(arr_rank, arr_shape, self.np_typenum, 0)
+ if not self.native_byteorder:
+- arr = arr.newbyteorder()
++ arr = arr.view(arr.dtype.newbyteorder())
+ finally:
+ efree(arr_shape)
+
+diff --git a/h5py/api_compat.h b/h5py/api_compat.h
+index 52917f4d..a359e827 100644
+--- a/h5py/api_compat.h
++++ b/h5py/api_compat.h
+@@ -24,7 +24,6 @@ typedef void *PyMPI_MPI_Message;
+ #include <stddef.h>
+ #include "Python.h"
+ #include "numpy/arrayobject.h"
+-#include "hdf5.h"
+
+ /* The HOFFSET macro can't be used from Cython. */
+
+@@ -35,14 +34,14 @@ typedef void *PyMPI_MPI_Message;
+ #define h5py_size_n256 (sizeof(npy_complex256))
+ #endif
+
+-#define h5py_offset_n64_real (HOFFSET(npy_complex64, real))
+-#define h5py_offset_n64_imag (HOFFSET(npy_complex64, imag))
+-#define h5py_offset_n128_real (HOFFSET(npy_complex128, real))
+-#define h5py_offset_n128_imag (HOFFSET(npy_complex128, imag))
++#define h5py_offset_n64_real (0)
++#define h5py_offset_n64_imag (sizeof(float))
++#define h5py_offset_n128_real (0)
++#define h5py_offset_n128_imag (sizeof(double))
+
+ #ifdef NPY_COMPLEX256
+-#define h5py_offset_n256_real (HOFFSET(npy_complex256, real))
+-#define h5py_offset_n256_imag (HOFFSET(npy_complex256, imag))
++#define h5py_offset_n256_real (0)
++#define h5py_offset_n256_imag (sizeof(long double))
+ #endif
+
+ #endif
+diff --git a/h5py/api_types_hdf5.pxd b/h5py/api_types_hdf5.pxd
+index a198f105..099e0f58 100644
+--- a/h5py/api_types_hdf5.pxd
++++ b/h5py/api_types_hdf5.pxd
+@@ -257,27 +257,27 @@ cdef extern from "hdf5.h":
+ herr_t (*sb_encode)(H5FD_t *file, char *name, unsigned char *p)
+ herr_t (*sb_decode)(H5FD_t *f, const char *name, const unsigned char *p)
+ size_t fapl_size
+- void * (*fapl_get)(H5FD_t *file)
+- void * (*fapl_copy)(const void *fapl)
+- herr_t (*fapl_free)(void *fapl)
++ void * (*fapl_get)(H5FD_t *file) except *
++ void * (*fapl_copy)(const void *fapl) except *
++ herr_t (*fapl_free)(void *fapl) except -1
+ size_t dxpl_size
+ void * (*dxpl_copy)(const void *dxpl)
+ herr_t (*dxpl_free)(void *dxpl)
+- H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr)
+- herr_t (*close)(H5FD_t *file)
++ H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) except *
++ herr_t (*close)(H5FD_t *file) except -1
+ int (*cmp)(const H5FD_t *f1, const H5FD_t *f2)
+ herr_t (*query)(const H5FD_t *f1, unsigned long *flags)
+ herr_t (*get_type_map)(const H5FD_t *file, H5FD_mem_t *type_map)
+ haddr_t (*alloc)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size)
+ herr_t (*free)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, hsize_t size)
+- haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type)
+- herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr)
+- haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type)
++ haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type) noexcept
++ herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr) noexcept
++ haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type) except -1
+ herr_t (*get_handle)(H5FD_t *file, hid_t fapl, void**file_handle)
+- herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer)
+- herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer)
+- herr_t (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing)
+- herr_t (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing)
++ herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer) except *
++ herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer) except *
++ herr_t (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1
++ herr_t (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1
+ herr_t (*lock)(H5FD_t *file, hbool_t rw)
+ herr_t (*unlock)(H5FD_t *file)
+ H5FD_mem_t fl_map[<int>H5FD_MEM_NTYPES]
+@@ -295,27 +295,27 @@ cdef extern from "hdf5.h":
+ herr_t (*sb_encode)(H5FD_t *file, char *name, unsigned char *p)
+ herr_t (*sb_decode)(H5FD_t *f, const char *name, const unsigned char *p)
+ size_t fapl_size
+- void * (*fapl_get)(H5FD_t *file)
+- void * (*fapl_copy)(const void *fapl)
+- herr_t (*fapl_free)(void *fapl)
++ void * (*fapl_get)(H5FD_t *file) except *
++ void * (*fapl_copy)(const void *fapl) except *
++ herr_t (*fapl_free)(void *fapl) except -1
+ size_t dxpl_size
+ void * (*dxpl_copy)(const void *dxpl)
+ herr_t (*dxpl_free)(void *dxpl)
+- H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr)
+- herr_t (*close)(H5FD_t *file)
++ H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) except *
++ herr_t (*close)(H5FD_t *file) except -1
+ int (*cmp)(const H5FD_t *f1, const H5FD_t *f2)
+ herr_t (*query)(const H5FD_t *f1, unsigned long *flags)
+ herr_t (*get_type_map)(const H5FD_t *file, H5FD_mem_t *type_map)
+ haddr_t (*alloc)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size)
+ herr_t (*free)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, hsize_t size)
+- haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type)
+- herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr)
+- haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type)
++ haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type) noexcept
++ herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr) noexcept
++ haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type) except -1
+ herr_t (*get_handle)(H5FD_t *file, hid_t fapl, void**file_handle)
+- herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer)
+- herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer)
+- herr_t (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing)
+- herr_t (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing)
++ herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer) except *
++ herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer) except *
++ herr_t (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1
++ herr_t (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1
+ herr_t (*lock)(H5FD_t *file, hbool_t rw)
+ herr_t (*unlock)(H5FD_t *file)
+ H5FD_mem_t fl_map[<int>H5FD_MEM_NTYPES]
+diff --git a/h5py/h5fd.pyx b/h5py/h5fd.pyx
+index e9746057..d39cf68f 100644
+--- a/h5py/h5fd.pyx
++++ b/h5py/h5fd.pyx
+@@ -144,10 +144,10 @@ cdef herr_t H5FD_fileobj_close(H5FD_fileobj_t *f) except -1 with gil:
+ stdlib_free(f)
+ return 0
+
+-cdef haddr_t H5FD_fileobj_get_eoa(const H5FD_fileobj_t *f, H5FD_mem_t type):
++cdef haddr_t H5FD_fileobj_get_eoa(const H5FD_fileobj_t *f, H5FD_mem_t type) noexcept nogil:
+ return f.eoa
+
+-cdef herr_t H5FD_fileobj_set_eoa(H5FD_fileobj_t *f, H5FD_mem_t type, haddr_t addr):
++cdef herr_t H5FD_fileobj_set_eoa(H5FD_fileobj_t *f, H5FD_mem_t type, haddr_t addr) noexcept nogil:
+ f.eoa = addr
+ return 0
+
+@@ -191,22 +191,38 @@ cdef herr_t H5FD_fileobj_flush(H5FD_fileobj_t *f, hid_t dxpl, hbool_t closing) e
+ cdef H5FD_class_t info
+ memset(&info, 0, sizeof(info))
+
++# Cython doesn't support "except X" in casting definition currently
++ctypedef herr_t (*file_free_func_ptr)(void *) except -1
++
++ctypedef herr_t (*file_close_func_ptr)(H5FD_t *) except -1
++ctypedef haddr_t (*file_get_eoa_func_ptr)(const H5FD_t *, H5FD_mem_t) noexcept
++ctypedef herr_t (*file_set_eof_func_ptr)(H5FD_t *, H5FD_mem_t, haddr_t) noexcept
++ctypedef haddr_t (*file_get_eof_func_ptr)(const H5FD_t *, H5FD_mem_t) except -1
++ctypedef herr_t (*file_read_func_ptr)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, void*) except -1
++ctypedef herr_t (*file_write_func_ptr)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, const void*) except -1
++ctypedef herr_t (*file_truncate_func_ptr)(H5FD_t *, hid_t, hbool_t) except -1
++ctypedef herr_t (*file_flush_func_ptr)(H5FD_t *, hid_t, hbool_t) except -1
++
++
+ info.name = 'fileobj'
+ info.maxaddr = libc.stdint.SIZE_MAX - 1
+ info.fc_degree = H5F_CLOSE_WEAK
+ info.fapl_size = sizeof(PyObject *)
+ info.fapl_get = <void *(*)(H5FD_t *)>H5FD_fileobj_fapl_get
+ info.fapl_copy = <void *(*)(const void *)>H5FD_fileobj_fapl_copy
+-info.fapl_free = <herr_t (*)(void *)>H5FD_fileobj_fapl_free
++
++info.fapl_free = <file_free_func_ptr>H5FD_fileobj_fapl_free
++
+ info.open = <H5FD_t *(*)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr)>H5FD_fileobj_open
+-info.close = <herr_t (*)(H5FD_t *)>H5FD_fileobj_close
+-info.get_eoa = <haddr_t (*)(const H5FD_t *, H5FD_mem_t)>H5FD_fileobj_get_eoa
+-info.set_eoa = <herr_t (*)(H5FD_t *, H5FD_mem_t, haddr_t)>H5FD_fileobj_set_eoa
+-info.get_eof = <haddr_t (*)(const H5FD_t *, H5FD_mem_t)>H5FD_fileobj_get_eof
+-info.read = <herr_t (*)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, void *)>H5FD_fileobj_read
+-info.write = <herr_t (*)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, const void *)>H5FD_fileobj_write
+-info.truncate = <herr_t (*)(H5FD_t *, hid_t, hbool_t)>H5FD_fileobj_truncate
+-info.flush = <herr_t (*)(H5FD_t *, hid_t, hbool_t)>H5FD_fileobj_flush
++
++info.close = <file_close_func_ptr>H5FD_fileobj_close
++info.get_eoa = <file_get_eoa_func_ptr>H5FD_fileobj_get_eoa
++info.set_eoa = <file_set_eof_func_ptr>H5FD_fileobj_set_eoa
++info.get_eof = <file_get_eof_func_ptr>H5FD_fileobj_get_eof
++info.read = <file_read_func_ptr>H5FD_fileobj_read
++info.write = <file_write_func_ptr>H5FD_fileobj_write
++info.truncate = <file_truncate_func_ptr>H5FD_fileobj_truncate
++info.flush = <file_flush_func_ptr>H5FD_fileobj_flush
+ # H5FD_FLMAP_DICHOTOMY
+ info.fl_map = [H5FD_MEM_SUPER, # default
+ H5FD_MEM_SUPER, # super
+diff --git a/h5py/h5p.pyx b/h5py/h5p.pyx
+index 779ea1b5..dc8bf65a 100644
+--- a/h5py/h5p.pyx
++++ b/h5py/h5p.pyx
+@@ -1177,7 +1177,7 @@ cdef class PropFAID(PropInstanceID):
+ size_t block_size IN: File system block size
+ size_t cbuf_size IN: Copy buffer size
+
+- Properites with value of 0 indicate that the HDF5 library should
++ Properties with value of 0 indicate that the HDF5 library should
+ choose the value.
+ """
+ H5Pset_fapl_direct(self.id, alignment, block_size, cbuf_size)
+@@ -1761,7 +1761,7 @@ cdef class PropOCID(PropCreateID):
+
+ max_compact -- maximum number of attributes to be stored in compact storage(default:8)
+ must be greater than or equal to min_dense
+- min_dense -- minmum number of attributes to be stored in dense storage(default:6)
++ min_dense -- minimum number of attributes to be stored in dense storage(default:6)
+
+ """
+ H5Pset_attr_phase_change(self.id, max_compact, min_dense)
+diff --git a/h5py/h5t.pyx b/h5py/h5t.pyx
+index e7aae14f..b9d7e74d 100644
+--- a/h5py/h5t.pyx
++++ b/h5py/h5t.pyx
+@@ -1938,7 +1938,7 @@ def check_dtype(**kwds):
+
+ vlen = dtype
+ If the dtype represents an HDF5 vlen, returns the Python base class.
+- Currently only builting string vlens (str) are supported. Returns
++ Currently only built-in string vlens (str) are supported. Returns
+ None if the dtype does not represent an HDF5 vlen.
+
+ enum = dtype
+diff --git a/h5py/tests/test_attrs_data.py b/h5py/tests/test_attrs_data.py
+index 56481ca0..5083a1aa 100644
+--- a/h5py/tests/test_attrs_data.py
++++ b/h5py/tests/test_attrs_data.py
+@@ -262,7 +262,7 @@ class TestEmpty(BaseAttrs):
+ self.assertTrue(is_empty_dataspace(h5a.open(self.f.id, b'y')))
+
+ def test_modify(self):
+- with self.assertRaises(IOError):
++ with self.assertRaises(OSError):
+ self.f.attrs.modify('x', 1)
+
+ def test_values(self):
+diff --git a/h5py/tests/test_big_endian_file.py b/h5py/tests/test_big_endian_file.py
+index 4d81de01..170b5bcc 100644
+--- a/h5py/tests/test_big_endian_file.py
++++ b/h5py/tests/test_big_endian_file.py
+@@ -24,14 +24,14 @@ def test_vlen_big_endian():
+ assert dset[4] == 1.2
+ assert dset.dtype == "<f8"
+
+- # Same float values with big endianess
++ # Same float values with big endianness
+ assert f["DSBEfloat"][0] == 3.14
+ assert f["DSBEfloat"].dtype == ">f8"
+
+ assert f["DSLEint"][0] == 1
+ assert f["DSLEint"].dtype == "<u8"
+
+- # Same int values with big endianess
++ # Same int values with big endianness
+ assert f["DSBEint"][0] == 1
+ assert f["DSBEint"].dtype == ">i8"
+
+diff --git a/h5py/tests/test_dataset.py b/h5py/tests/test_dataset.py
+index e104dd53..0ffa5c80 100644
+--- a/h5py/tests/test_dataset.py
++++ b/h5py/tests/test_dataset.py
+@@ -1939,9 +1939,9 @@ class TestCommutative(BaseDataset):
+ dset = self.f.create_dataset("test", shape, dtype=float,
+ data=np.random.rand(*shape))
+
+- # grab a value from the elements, ie dset[0]
++ # grab a value from the elements, ie dset[0, 0]
+ # check that mask arrays are commutative wrt ==, !=
+- val = np.float64(dset[0])
++ val = np.float64(dset[0, 0])
+
+ assert np.all((val == dset) == (dset == val))
+ assert np.all((val != dset) == (dset != val))
+diff --git a/h5py/tests/test_file.py b/h5py/tests/test_file.py
+index b47d408e..1aa38731 100644
+--- a/h5py/tests/test_file.py
++++ b/h5py/tests/test_file.py
+@@ -326,7 +326,7 @@ class TestDrivers(TestCase):
+ # could be an integer multiple of 512
+ #
+ # To allow HDF5 to do the heavy lifting for different platform,
+- # We didn't provide any argumnets to the first call
++ # We didn't provide any arguments to the first call
+ # and obtained HDF5's default values there.
+
+ # Testing creation with a few different property lists
+@@ -639,9 +639,9 @@ class TestUnicode(TestCase):
+ Modes 'r' and 'r+' do not create files even when given unicode names
+ """
+ fname = self.mktemp(prefix=chr(0x201a))
+- with self.assertRaises(IOError):
++ with self.assertRaises(OSError):
+ File(fname, 'r')
+- with self.assertRaises(IOError):
++ with self.assertRaises(OSError):
+ File(fname, 'r+')
+
+
+diff --git a/h5py/tests/test_file_alignment.py b/h5py/tests/test_file_alignment.py
+index c280bb76..da13ee04 100644
+--- a/h5py/tests/test_file_alignment.py
++++ b/h5py/tests/test_file_alignment.py
+@@ -50,7 +50,7 @@ class TestFileAlignment(TestCase):
+ alignment_interval = 4096
+
+ for shape in [
+- (1033,), # A prime number above the thresold
++ (1033,), # A prime number above the threshold
+ (1000,), # Exactly equal to the threshold
+ (1001,), # one above the threshold
+ ]:
+@@ -75,7 +75,7 @@ class TestFileAlignment(TestCase):
+ alignment_interval = 1024
+
+ for shape in [
+- (881,), # A prime number below the thresold
++ (881,), # A prime number below the threshold
+ (999,), # Exactly one below the threshold
+ ]:
+ fname = self.mktemp()
+diff --git a/h5py/tests/test_group.py b/h5py/tests/test_group.py
+index 328c352a..4af1fb1f 100644
+--- a/h5py/tests/test_group.py
++++ b/h5py/tests/test_group.py
+@@ -771,7 +771,7 @@ class TestExternalLinks(TestCase):
+ with self.assertRaises(KeyError):
+ self.f['ext']
+
+- # I would prefer IOError but there's no way to fix this as the exception
++ # I would prefer OSError but there's no way to fix this as the exception
+ # class is determined by HDF5.
+ def test_exc_missingfile(self):
+ """ KeyError raised when attempting to open missing file """
+@@ -844,7 +844,7 @@ class TestExtLinkBugs(TestCase):
+ try:
+ if x:
+ x.close()
+- except IOError:
++ except OSError:
+ pass
+ return w
+ orig_name = self.mktemp()
+diff --git a/h5py/tests/test_selections.py b/h5py/tests/test_selections.py
+index 0b1722d7..01f6dcb7 100644
+--- a/h5py/tests/test_selections.py
++++ b/h5py/tests/test_selections.py
+@@ -65,7 +65,7 @@ class TestTypeGeneration(BaseSelection):
+ self.assertEqual(out, np.dtype('i'))
+ self.assertEqual(format, np.dtype( [('a','i')] ))
+
+- # Field does not apear in named typed
++ # Field does not appear in named typed
+ with self.assertRaises(ValueError):
+ out, format = sel2.read_dtypes(dt, ('j', 'k'))
+
+diff --git a/pylintrc b/pylintrc
+index 045df2f7..2401d3b0 100644
+--- a/pylintrc
++++ b/pylintrc
+@@ -44,7 +44,7 @@ confidence=
+ # can either give multiple identifiers separated by comma (,) or put this
+ # option multiple times (only on the command line, not in the configuration
+ # file where it should appear only once).You can also use "--disable=all" to
+-# disable everything first and then reenable specific checks. For example, if
++# disable everything first and then re-enable specific checks. For example, if
+ # you want to run only the similarities checker, you can use "--disable=all
+ # --enable=similarities". If you want to run only the classes checker, but have
+ # no Warning level messages displayed, use"--disable=all --enable=classes
+diff --git a/pyproject.toml b/pyproject.toml
+index ee573d2f..717200ef 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,6 +1,6 @@
+ [build-system]
+ requires = [
+- "Cython >=0.29.31,<1",
++ "Cython >=0.29.31,<4",
+ "oldest-supported-numpy",
+ "pkgconfig",
+ "setuptools >=61",
+diff --git a/setup_configure.py b/setup_configure.py
+index 0fba53ba..c3b86a64 100644
+--- a/setup_configure.py
++++ b/setup_configure.py
+@@ -165,7 +165,7 @@ class BuildConfig:
+ try:
+ if pkgconfig.exists(pc_name):
+ pc = pkgconfig.parse(pc_name)
+- except EnvironmentError:
++ except OSError:
+ if os.name != 'nt':
+ print(
+ "Building h5py requires pkg-config unless the HDF5 path "
+diff --git a/tox.ini b/tox.ini
+index 0efb88a6..86a176dd 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -65,7 +65,7 @@ skip_install=True
+ package_env = DUMMY NON-EXISTENT ENV NAME
+ changedir=docs
+ deps=
+- sphinx
++ -r docs/requirements-rtd.txt
+ commands=
+ sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html
+
diff --git a/meta-python/recipes-devtools/python/python3-h5py/0001-fix-wrong-file-driver-version.patch b/meta-python/recipes-devtools/python/python3-h5py/0001-fix-wrong-file-driver-version.patch
deleted file mode 100644
index 2692acde75..0000000000
--- a/meta-python/recipes-devtools/python/python3-h5py/0001-fix-wrong-file-driver-version.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 5b0b1d0b941ba338d449f9261bdf4cb2b679d048 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 20 Sep 2022 02:53:11 -0700
-Subject: [PATCH] fix wrong file driver version
-
-Due to commit [1] applied in hdf5 (1.13.2), import hdf5 failed
-
-|>>> import h5py
-|Traceback (most recent call last):
-| File "<stdin>", line 1, in <module>
-| File "/usr/lib/python3.10/site-packages/h5py/__init__.py", line 56, in <module>
-| from . import h5a, h5d, h5ds, h5f, h5fd, h5g, h5r, h5s, h5t, h5p, h5z, h5pl
-| File "h5py/h5fd.pyx", line 220, in init h5py.h5fd
-|RuntimeError: Wrong file driver version # (wrong file driver version #)
-
-Initial driver version to fix the error
-
-[1] https://github.com/HDFGroup/hdf5/commit/42b767fc67ad1e13735e3cee2077f2e108f9463e
-
-Upstream-Status: Submitted [https://github.com/h5py/h5py/pull/2153]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- h5py/api_types_hdf5.pxd | 1 +
- h5py/h5fd.pyx | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/h5py/api_types_hdf5.pxd b/h5py/api_types_hdf5.pxd
-index 6977f1a7..312fdaa0 100644
---- a/h5py/api_types_hdf5.pxd
-+++ b/h5py/api_types_hdf5.pxd
-@@ -237,6 +237,7 @@ cdef extern from "hdf5.h":
-
- # Class information for each file driver
- ctypedef struct H5FD_class_t:
-+ unsigned version;
- const char *name
- haddr_t maxaddr
- H5F_close_degree_t fc_degree
-diff --git a/h5py/h5fd.pyx b/h5py/h5fd.pyx
-index 04aff077..d41953d0 100644
---- a/h5py/h5fd.pyx
-+++ b/h5py/h5fd.pyx
-@@ -191,6 +191,7 @@ cdef herr_t H5FD_fileobj_flush(H5FD_fileobj_t *f, hid_t dxpl, hbool_t closing) e
- cdef H5FD_class_t info
- memset(&info, 0, sizeof(info))
-
-+info.version = 0x01
- info.name = 'fileobj'
- info.maxaddr = libc.stdint.SIZE_MAX - 1
- info.fc_degree = H5F_CLOSE_WEAK
---
-2.37.1
-
diff --git a/meta-python/recipes-devtools/python/python3-h5py/0001-setup.py-Fix-numpy-version.patch b/meta-python/recipes-devtools/python/python3-h5py/0001-setup.py-Fix-numpy-version.patch
deleted file mode 100644
index 9b79cc5395..0000000000
--- a/meta-python/recipes-devtools/python/python3-h5py/0001-setup.py-Fix-numpy-version.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From b1d4d171fd13624f3d8bb917f716b62494066501 Mon Sep 17 00:00:00 2001
-From: Leon Anavi <leon.anavi@konsulko.com>
-Date: Mon, 22 Feb 2021 18:42:43 +0200
-Subject: [PATCH] setup.py: Fix numpy version
-
-Fix numpy version to ensure bitbake will find the pip package.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
-
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 4b2890c..42ba21b 100755
---- a/setup.py
-+++ b/setup.py
-@@ -49,7 +49,7 @@ SETUP_REQUIRES = [
- "Cython >=0.29.14; python_version=='3.8'",
- "Cython >=0.29.15; python_version>='3.9'",
- ] + [
-- f"numpy =={np_min}; python_version{py_condition}"
-+ f"numpy >={np_min}; python_version{py_condition}"
- for np_min, py_condition in NUMPY_MIN_VERSIONS
- ]
-
diff --git a/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb b/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb
new file mode 100644
index 0000000000..8a9158525e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Provides both a high- and low-level interface to the HDF5 library from Python."
+HOMEPAGE = "https://www.h5py.org/"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=113251d71fb0384712c719b567261c5c"
+
+SRC_URI[sha256sum] = "d93adc48ceeb33347eb24a634fb787efc7ae4644e6ea4ba733d099605045c049"
+
+SRC_URI += "file://0001-setup_build.py-avoid-absolute-path.patch \
+ file://0001-Fix-Cython-3-compatibility.patch"
+
+inherit pkgconfig pypi setuptools3
+
+BBCLASSEXTEND = "native"
+
+DEPENDS = "python3-pkgconfig-native \
+ python3-cython-native \
+ python3-numpy-native \
+ python3-six-native \
+ hdf5-native \
+ python3 \
+ hdf5 \
+ "
+
+PACKAGESPLITFUNCS =+ "fix_cythonized_sources"
+
+fix_cythonized_sources() {
+ for f in `grep -l -r -e '\/* Generated by Cython.*/$' ${PKGD}${TARGET_DBGSRC_DIR}`; do
+ if [ -e $f ]; then
+ sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' $f
+ fi
+ done
+}
+
+RDEPENDS:${PN} = "python3-numpy \
+ python3-six \
+ python3-json \
+ "
+
+export HDF5_VERSION="1.14.0"
diff --git a/meta-python/recipes-devtools/python/python3-h5py_3.7.0.bb b/meta-python/recipes-devtools/python/python3-h5py_3.7.0.bb
deleted file mode 100644
index ce4f05dbed..0000000000
--- a/meta-python/recipes-devtools/python/python3-h5py_3.7.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Provides both a high- and low-level interface to the HDF5 library from Python."
-HOMEPAGE = "https://www.h5py.org/"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=113251d71fb0384712c719b567261c5c"
-
-SRC_URI[sha256sum] = "3fcf37884383c5da64846ab510190720027dca0768def34dd8dcb659dbe5cbf3"
-
-SRC_URI:append = " \
- file://0001-setup_build.py-avoid-absolute-path.patch \
- file://0001-fix-wrong-file-driver-version.patch \
- "
-
-inherit pkgconfig pypi setuptools3
-
-BBCLASSEXTEND = "native"
-
-DEPENDS = "python3-pkgconfig-native \
- python3-cython-native \
- python3-numpy-native \
- python3-six-native \
- hdf5-native \
- python3 \
- hdf5 \
- "
-
-RDEPENDS:${PN} = "python3-numpy \
- python3-six \
- python3-json \
- "
-
-export HDF5_VERSION="1.13.2"
diff --git a/meta-python/recipes-devtools/python/python3-haversine_2.7.0.bb b/meta-python/recipes-devtools/python/python3-haversine_2.7.0.bb
deleted file mode 100644
index bfe36b0b80..0000000000
--- a/meta-python/recipes-devtools/python/python3-haversine_2.7.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Calculate the distance between 2 points on Earth"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-SRC_URI[sha256sum] = "9dd62c95bff9c43eb898604625e80db68b8b9e91a5111338f55ebcf470dd5a3d"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "python3-numpy"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-haversine_2.8.1.bb b/meta-python/recipes-devtools/python/python3-haversine_2.8.1.bb
new file mode 100644
index 0000000000..e45ae79860
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-haversine_2.8.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Calculate the distance between 2 points on Earth"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+SRC_URI[sha256sum] = "ab750caa0c8f2168bd7b00a429757a83a8393be1aa30f91c2becf6b523189e2a"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-numpy"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-hexbytes_0.3.0.bb b/meta-python/recipes-devtools/python/python3-hexbytes_0.3.0.bb
deleted file mode 100644
index 8402ddecd9..0000000000
--- a/meta-python/recipes-devtools/python/python3-hexbytes_0.3.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Python bytes subclass that decodes hex, with a readable console output."
-HOMEPAGE = "https://github.com/ethereum/hexbytes"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=287820ad3553117aa2f92bf84c219324"
-
-SRC_URI[sha256sum] = "afeebfb800f5f15a3ca5bab52e49eabcb4b6dac06ec8ff01a94fdb890c6c0712"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-hexbytes_1.0.0.bb b/meta-python/recipes-devtools/python/python3-hexbytes_1.0.0.bb
new file mode 100644
index 0000000000..951998b5a1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-hexbytes_1.0.0.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Python bytes subclass that decodes hex, with a readable console output."
+HOMEPAGE = "https://github.com/ethereum/hexbytes"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=16ffc86adf4293d4cfb204e77d62cfe6"
+
+SRC_URI[sha256sum] = "18e6e3279a13878b93fb85da77822dc506b7048065a588e74141c2468a65ad8c"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-html2text/run-ptest b/meta-python/recipes-devtools/python/python3-html2text/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-html2text/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-html2text/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-html2text_2020.1.16.bb b/meta-python/recipes-devtools/python/python3-html2text_2020.1.16.bb
index 64873d2464..d96f61bdc7 100644
--- a/meta-python/recipes-devtools/python/python3-html2text_2020.1.16.bb
+++ b/meta-python/recipes-devtools/python/python3-html2text_2020.1.16.bb
@@ -14,9 +14,12 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
+RDEPENDS:${PN} += "python3-cgitb"
+
do_install_ptest() {
install -d ${D}${PTEST_PATH}/test
cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
diff --git a/meta-python/recipes-devtools/python/python3-html5lib_1.1.bb b/meta-python/recipes-devtools/python/python3-html5lib_1.1.bb
index ee44e837e1..d6272a07c3 100644
--- a/meta-python/recipes-devtools/python/python3-html5lib_1.1.bb
+++ b/meta-python/recipes-devtools/python/python3-html5lib_1.1.bb
@@ -8,10 +8,10 @@ SRC_URI[sha256sum] = "b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c1
inherit pypi setuptools3
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-lxml \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-webencodings \
- ${PYTHON_PN}-xml \
+ python3-lxml \
+ python3-six \
+ python3-webencodings \
+ python3-xml \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-httpcore_1.0.3.bb b/meta-python/recipes-devtools/python/python3-httpcore_1.0.3.bb
new file mode 100644
index 0000000000..203bfd48a1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-httpcore_1.0.3.bb
@@ -0,0 +1,26 @@
+SUMMARY = "A minimal low-level HTTP client."
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=1c1f23b073da202e1f4f9e426490210c"
+
+inherit pypi python_hatchling
+
+SRC_URI[sha256sum] = "5c0f9546ad17dac4d0772b0808856eb616eb8b48ce94f49ed819fd6982a8a544"
+
+DEPENDS += "\
+ python3-hatch-fancy-pypi-readme-native \
+"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[http2] = ",,,python3-h2"
+PACKAGECONFIG[socks] = ",,,python3-socksio"
+PACKAGECONFIG[asyncio] = ",,,python3-anyio"
+# Don't provide "trio" PACKAGECONFIG as nothing provides "python3-trio" currently.
+# If somebody needs this please feel free to add python3-trio and enable the
+# packageconfig below:
+#PACKAGECONFIG[trio] = ",,,python3-trio"
+
+RDEPENDS:${PN} += "\
+ python3-certifi \
+ python3-h11 \
+"
diff --git a/meta-python/recipes-devtools/python/python3-httplib2_0.20.4.bb b/meta-python/recipes-devtools/python/python3-httplib2_0.20.4.bb
deleted file mode 100644
index 52fd88ddf5..0000000000
--- a/meta-python/recipes-devtools/python/python3-httplib2_0.20.4.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A comprehensive HTTP client library, httplib2 supports many features left out of other HTTP libraries."
-HOMEPAGE = "https://github.com/httplib2/httplib2"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=56e5e931172b6164b62dc7c4aba6c8cf"
-
-SRC_URI[sha256sum] = "58a98e45b4b1a48273073f905d2961666ecf0fbac4250ea5b47aef259eb5c585"
-
-inherit pypi python_setuptools_build_meta
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-pyparsing \
-"
diff --git a/meta-python/recipes-devtools/python/python3-httplib2_0.22.0.bb b/meta-python/recipes-devtools/python/python3-httplib2_0.22.0.bb
new file mode 100644
index 0000000000..9318ad9182
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-httplib2_0.22.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A comprehensive HTTP client library, httplib2 supports many features left out of other HTTP libraries."
+HOMEPAGE = "https://github.com/httplib2/httplib2"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=56e5e931172b6164b62dc7c4aba6c8cf"
+
+SRC_URI[sha256sum] = "d7a10bc5ef5ab08322488bde8c726eeee5c8618723fdb399597ec58f3d82df81"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += "\
+ python3-compression \
+ python3-netclient \
+ python3-pyparsing \
+"
diff --git a/meta-python/recipes-devtools/python/python3-httptools/run-ptest b/meta-python/recipes-devtools/python/python3-httptools/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-httptools/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-httptools_0.6.1.bb b/meta-python/recipes-devtools/python/python3-httptools_0.6.1.bb
new file mode 100644
index 0000000000..4192697df2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-httptools_0.6.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A collection of framework independent HTTP protocol utils."
+HOMEPAGE = "https://github.com/MagicStack/httptools"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0a2d82955bf3facdf04cb882655e840e"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI[sha256sum] = "c6e26c30455600b95d94b1b836085138e82f177351454ee841c148f93a9bad5a"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-httpx_0.27.0.bb b/meta-python/recipes-devtools/python/python3-httpx_0.27.0.bb
new file mode 100644
index 0000000000..e4d3cbeee8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-httpx_0.27.0.bb
@@ -0,0 +1,48 @@
+SUMMARY = "A next generation HTTP client for Python."
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c624803bdf6fc1c4ce39f5ae11d7bd05"
+
+inherit pypi python_hatchling
+
+SRC_URI[sha256sum] = "a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"
+
+DEPENDS += "\
+ python3-hatch-fancy-pypi-readme-native \
+"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[brotli] = ",,,python3-brotli"
+PACKAGECONFIG[http2] = ",,,python3-h2"
+PACKAGECONFIG[socks] = ",,,python3-socksio"
+
+RDEPENDS:${PN} += "\
+ python3-anyio \
+ python3-certifi \
+ python3-httpcore \
+ python3-idna \
+ python3-sniffio \
+ python3-json \
+ python3-core \
+ python3-netclient \
+ python3-compression \
+"
+
+PACKAGES += "\
+ ${PN}-cli \
+"
+
+RDEPENDS:${PN}-cli += "\
+ ${PN} \
+ python3-click \
+ python3-pygments \
+ python3-rich \
+"
+
+FILES:${PN} = "\
+ ${libdir}/${PYTHON_DIR} \
+"
+
+FILES:${PN}-cli = "\
+ ${bindir}/httpx \
+"
diff --git a/meta-python/recipes-devtools/python/python3-huey_2.4.3.bb b/meta-python/recipes-devtools/python/python3-huey_2.4.3.bb
deleted file mode 100644
index f8f4062a64..0000000000
--- a/meta-python/recipes-devtools/python/python3-huey_2.4.3.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "a little task queue for python"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5cac039fcc82f01141cc170b48f315d4"
-
-PYPI_PACKAGE = "huey"
-
-SRC_URI[sha256sum] = "4fa2f6055d581778c3bcf93fc8c9ce87aecc2a345d5ff35bd955da152c02ef37"
-
-RDEPENDS:${PN} += " \
- python3-datetime \
- python3-logging \
- python3-multiprocessing \
- python3-json \
-"
-
-inherit pypi setuptools3
-
diff --git a/meta-python/recipes-devtools/python/python3-huey_2.5.0.bb b/meta-python/recipes-devtools/python/python3-huey_2.5.0.bb
new file mode 100644
index 0000000000..c6e5606090
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-huey_2.5.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "a little task queue for python"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5cac039fcc82f01141cc170b48f315d4"
+
+PYPI_PACKAGE = "huey"
+
+SRC_URI[sha256sum] = "2ffb52fb5c46a1b0d53c79d59df3622312b27e2ab68d81a580985a8ea4ca3480"
+
+RDEPENDS:${PN} += " \
+ python3-datetime \
+ python3-logging \
+ python3-multiprocessing \
+ python3-json \
+"
+
+inherit pypi setuptools3
+
diff --git a/meta-python/recipes-devtools/python/python3-humanfriendly_10.0.bb b/meta-python/recipes-devtools/python/python3-humanfriendly_10.0.bb
index 7d185989d9..b32fe2e1d0 100644
--- a/meta-python/recipes-devtools/python/python3-humanfriendly_10.0.bb
+++ b/meta-python/recipes-devtools/python/python3-humanfriendly_10.0.bb
@@ -11,14 +11,14 @@ SRC_URI[sha256sum] = "6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2
inherit pypi setuptools3
RDEPENDS:${PN}:class-target += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-fcntl \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-math \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-stringold \
+ python3-datetime \
+ python3-fcntl \
+ python3-io \
+ python3-logging \
+ python3-math \
+ python3-numbers \
+ python3-shell \
+ python3-stringold \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-humanize_4.4.0.bb b/meta-python/recipes-devtools/python/python3-humanize_4.4.0.bb
deleted file mode 100644
index 7bb03b75f2..0000000000
--- a/meta-python/recipes-devtools/python/python3-humanize_4.4.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Python humanize utilities"
-HOMEPAGE = "http://github.com/jmoiron/humanize"
-SECTION = "devel/python"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=4ecc42519e84f6f3e23529464df7bd1d"
-
-SRC_URI[sha256sum] = "efb2584565cc86b7ea87a977a15066de34cdedaf341b11c851cfcfd2b964779c"
-
-inherit pypi python_setuptools_build_meta
-
-DEPENDS += "\
- ${PYTHON_PN}-setuptools-scm-native \
-"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-setuptools \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-humanize_4.9.0.bb b/meta-python/recipes-devtools/python/python3-humanize_4.9.0.bb
new file mode 100644
index 0000000000..da1eea4cf7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-humanize_4.9.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Python humanize utilities"
+HOMEPAGE = "http://github.com/jmoiron/humanize"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=4ecc42519e84f6f3e23529464df7bd1d"
+
+SRC_URI[sha256sum] = "582a265c931c683a7e9b8ed9559089dea7edcf6cc95be39a3cbc2c5d5ac2bcfa"
+
+inherit pypi python_hatchling
+
+DEPENDS += "\
+ python3-setuptools-scm-native \
+ python3-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += "\
+ python3-datetime \
+ python3-setuptools \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-hyperlink_21.0.0.bb b/meta-python/recipes-devtools/python/python3-hyperlink_21.0.0.bb
index 7cdecf1094..a3fae39c7f 100644
--- a/meta-python/recipes-devtools/python/python3-hyperlink_21.0.0.bb
+++ b/meta-python/recipes-devtools/python/python3-hyperlink_21.0.0.bb
@@ -7,7 +7,7 @@ SRC_URI[sha256sum] = "427af957daa58bc909471c6c40f74c5450fa123dd093fc53efd2e91d27
inherit pypi python_setuptools_build_meta
-RDEPENDS:${PN} += "${PYTHON_PN}-stringold ${PYTHON_PN}-netclient ${PYTHON_PN}-idna"
+RDEPENDS:${PN} += "python3-stringold python3-netclient python3-idna"
PACKAGES =. "${PN}-test "
diff --git a/meta-python/recipes-devtools/python/python3-icecream_2.1.3.bb b/meta-python/recipes-devtools/python/python3-icecream_2.1.3.bb
new file mode 100644
index 0000000000..ec3a4b90f1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-icecream_2.1.3.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Never use print() to debug again; inspect variables, expressions, and program execution with a single, simple function call."
+HOMEPAGE = "https://github.com/gruns/icecream"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=eca5ce1610d64ed40920efdce85ff8d1"
+
+SRC_URI[sha256sum] = "0aa4a7c3374ec36153a1d08f81e3080e83d8ac1eefd97d2f4fe9544e8f9b49de"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-asttokens \
+ python3-colorama \
+ python3-executing \
+ python3-numbers \
+ python3-pygments \
+ python3-pprint \
+"
diff --git a/meta-python/recipes-devtools/python/python3-icu/0001-Fix-host-contamination-of-include-files.patch b/meta-python/recipes-devtools/python/python3-icu/0001-Fix-host-contamination-of-include-files.patch
index 36485d56ce..7bb5ee58cc 100644
--- a/meta-python/recipes-devtools/python/python3-icu/0001-Fix-host-contamination-of-include-files.patch
+++ b/meta-python/recipes-devtools/python/python3-icu/0001-Fix-host-contamination-of-include-files.patch
@@ -10,25 +10,25 @@ Also, don't use icu-config
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
setup.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/setup.py b/setup.py
-index d308b80..56e9c74 100644
+index 176c9ab..0a10268 100644
--- a/setup.py
+++ b/setup.py
-@@ -81,7 +81,7 @@ Building PyICU %s for ICU %s (max ICU major version supported: %s)
+@@ -68,7 +68,7 @@ elif platform.startswith('freebsd'):
CONFIGURE_WITH_ICU_CONFIG = {
- 'darwin': True,
+ 'darwin': False,
- 'linux': True,
+ 'linux': False,
'freebsd': False, # not tested
'win32': False, # no icu-config
'sunos5': False, # not tested
-@@ -273,7 +273,6 @@ setup(name="PyICU",
+@@ -277,7 +277,6 @@ setup(name="PyICU",
ext_modules=[Extension('icu._icu_',
[filename for filename in sorted(os.listdir(os.curdir))
if filename.endswith('.cpp')],
@@ -36,3 +36,6 @@ index d308b80..56e9c74 100644
extra_compile_args=_cflags,
extra_link_args=_lflags,
libraries=_libraries)],
+--
+2.34.1
+
diff --git a/meta-python/recipes-devtools/python/python3-icu_2.12.bb b/meta-python/recipes-devtools/python/python3-icu_2.12.bb
new file mode 100644
index 0000000000..6394db4e9e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-icu_2.12.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Python extension wrapping the ICU C++ API"
+HOMEPAGE = "https://gitlab.pyicu.org/main/pyicu"
+BUGTRACKER = "https://gitlab.pyicu.org/main/pyicu/-/issues"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0724597863f1581ab01429e0423e779f"
+
+DEPENDS += "icu"
+
+PYPI_PACKAGE = "PyICU"
+SRC_URI[sha256sum] = "bd7ab5efa93ad692e6daa29cd249364e521218329221726a113ca3cb281c8611"
+
+SRC_URI += "file://0001-Fix-host-contamination-of-include-files.patch"
+
+inherit pkgconfig pypi python_setuptools_build_meta
diff --git a/meta-python/recipes-devtools/python/python3-icu_2.8.1.bb b/meta-python/recipes-devtools/python/python3-icu_2.8.1.bb
deleted file mode 100644
index 027ef129ee..0000000000
--- a/meta-python/recipes-devtools/python/python3-icu_2.8.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Python extension wrapping the ICU C++ API"
-HOMEPAGE = "https://gitlab.pyicu.org/main/pyicu"
-BUGTRACKER = "https://gitlab.pyicu.org/main/pyicu/-/issues"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0724597863f1581ab01429e0423e779f"
-
-DEPENDS += "icu"
-
-PYPI_PACKAGE = "PyICU"
-SRC_URI[sha256sum] = "f0b9549a87f87ba7c413f13679d137271e0b37f1f39b0109ace38257d4d148d6"
-
-SRC_URI += "file://0001-Fix-host-contamination-of-include-files.patch"
-
-inherit pkgconfig pypi python_setuptools_build_meta
diff --git a/meta-python/recipes-devtools/python/python3-idna-ssl_1.1.0.bb b/meta-python/recipes-devtools/python/python3-idna-ssl_1.1.0.bb
index 3643fcfd30..503b79d667 100644
--- a/meta-python/recipes-devtools/python/python3-idna-ssl_1.1.0.bb
+++ b/meta-python/recipes-devtools/python/python3-idna-ssl_1.1.0.bb
@@ -1,2 +1,17 @@
-inherit setuptools3
-require python-idna-ssl.inc
+SUMMARY = "Patch ssl.match_hostname for Unicode(idna) domains support"
+HOMEPAGE = "https://github.com/aio-libs/idna-ssl"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a61b9c5aec8796b64a6bf15d42605073"
+
+SRC_URI[sha256sum] = "a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c"
+
+PYPI_PACKAGE = "idna-ssl"
+inherit pypi setuptools3
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/idna_ssl/"
+UPSTREAM_CHECK_REGEX = "/idna_ssl/(?P<pver>(\d+[\.\-_]*)+)"
+
+RDEPENDS:${PN} += " \
+ python3-idna \
+ python3-io \
+"
diff --git a/meta-python/recipes-devtools/python/python3-ifaddr_0.2.0.bb b/meta-python/recipes-devtools/python/python3-ifaddr_0.2.0.bb
index 6c97c374e0..371bbf2ab5 100644
--- a/meta-python/recipes-devtools/python/python3-ifaddr_0.2.0.bb
+++ b/meta-python/recipes-devtools/python/python3-ifaddr_0.2.0.bb
@@ -10,5 +10,5 @@ SRC_URI[sha256sum] = "cc0cbfcaabf765d44595825fb96a99bb12c79716b73b44330ea38ee2b0
inherit pypi setuptools3
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-ctypes \
+ python3-ctypes \
"
diff --git a/meta-python/recipes-devtools/python/python3-imageio_2.22.0.bb b/meta-python/recipes-devtools/python/python3-imageio_2.22.0.bb
deleted file mode 100644
index 6bc7b60f90..0000000000
--- a/meta-python/recipes-devtools/python/python3-imageio_2.22.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Python library that provides an easy interface to read and \
-write a wide range of image data, including animated images, video, \
-volumetric data, and scientific formats."
-SECTION = "devel/python"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=24cb9a367a9e641b459a01c4d15256ba"
-
-SRC_URI[sha256sum] = "a332d127ec387b2d3dca967fd065a90f1c1a4ba2343570b03fe2cebb6ed064ea"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "python3-numpy python3-pillow"
diff --git a/meta-python/recipes-devtools/python/python3-imageio_2.34.0.bb b/meta-python/recipes-devtools/python/python3-imageio_2.34.0.bb
new file mode 100644
index 0000000000..e38d694408
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-imageio_2.34.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Python library that provides an easy interface to read and \
+write a wide range of image data, including animated images, video, \
+volumetric data, and scientific formats."
+SECTION = "devel/python"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=24cb9a367a9e641b459a01c4d15256ba"
+
+SRC_URI[sha256sum] = "ae9732e10acf807a22c389aef193f42215718e16bd06eed0c5bb57e1034a4d53"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "python3-numpy python3-pillow"
diff --git a/meta-python/recipes-devtools/python/python3-imgtool_1.9.0.bb b/meta-python/recipes-devtools/python/python3-imgtool_1.9.0.bb
deleted file mode 100644
index 1e5efbe187..0000000000
--- a/meta-python/recipes-devtools/python/python3-imgtool_1.9.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "MCUboot's image signing and key management tool"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://imgtool/main.py;beginline=3;endline=18;md5=9965f09ae52c04886a1f04e13ccdce57"
-
-SRC_URI[sha256sum] = "7fa7f6bd6bf069b5ffa07ea47478e16b6206bd2fc5b7607def999de0e9134a43"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "python3-cbor2 python3-click python3-cryptography python3-intelhex"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-imgtool_2.0.0.bb b/meta-python/recipes-devtools/python/python3-imgtool_2.0.0.bb
new file mode 100644
index 0000000000..a25e6a61a8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-imgtool_2.0.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "MCUboot's image signing and key management tool"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://imgtool/main.py;beginline=3;endline=18;md5=0645fb61e2f961a110302fbfdb227446"
+
+SRC_URI[sha256sum] = "7a541255e69eec1f12aa38dce1f1d4fe20d8212677c68a9b6ec634ca91a06612"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "python3-cbor2 python3-click python3-cryptography python3-intelhex"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-incremental_21.3.0.bb b/meta-python/recipes-devtools/python/python3-incremental_21.3.0.bb
deleted file mode 100644
index 60c80a2c85..0000000000
--- a/meta-python/recipes-devtools/python/python3-incremental_21.3.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Incremental is a small library that versions your Python projects"
-HOMEPAGE = "https://github.com/twisted/incremental"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6ca9b07f08e2c72d48c74d363d1e0e15"
-
-SRC_URI[sha256sum] = "02f5de5aff48f6b9f665d99d48bfc7ec03b6e3943210de7cfc88856d755d6f57"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-twisted \
- ${PYTHON_PN}-click \
-"
-
-# -native is needed to build python[3]-twisted, however, we need to take steps to
-# prevent a circular dependency. The build apparently does not use the part of
-# python-incremental which uses python-twisted, so this hack is OK.
-RDEPENDS:${PYTHON_PN}-incremental-native:remove = "${PYTHON_PN}-twisted-native"
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-incremental_22.10.0.bb b/meta-python/recipes-devtools/python/python3-incremental_22.10.0.bb
new file mode 100644
index 0000000000..3d93cc05e9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-incremental_22.10.0.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Incremental is a small library that versions your Python projects"
+HOMEPAGE = "https://github.com/twisted/incremental"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6ca9b07f08e2c72d48c74d363d1e0e15"
+
+SRC_URI[sha256sum] = "912feeb5e0f7e0188e6f42241d2f450002e11bbc0937c65865045854c24c0bd0"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-twisted \
+ python3-click \
+"
+
+# -native is needed to build python[3]-twisted, however, we need to take steps to
+# prevent a circular dependency. The build apparently does not use the part of
+# python-incremental which uses python-twisted, so this hack is OK.
+RDEPENDS:python3-incremental-native:remove = "python3-twisted-native"
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-inflate64_1.0.0.bb b/meta-python/recipes-devtools/python/python3-inflate64_1.0.0.bb
new file mode 100644
index 0000000000..2ccc98e36b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-inflate64_1.0.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "deflate64 compression/decompression library"
+HOMEPAGE = "https://codeberg.org/miurahr/inflate64"
+LICENSE = "LGPL-2.1-or-later"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+inherit setuptools3 pypi
+
+SRC_URI[sha256sum] = "3278827b803cf006a1df251f3e13374c7d26db779e5a33329cc11789b804bc2d"
+
+PYPI_PACKAGE = "inflate64"
+
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-importlib-metadata \
+"
diff --git a/meta-python/recipes-devtools/python/python3-inflection/run-ptest b/meta-python/recipes-devtools/python/python3-inflection/run-ptest
index 0caffb794c..f1c8729f0e 100644
--- a/meta-python/recipes-devtools/python/python3-inflection/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-inflection/run-ptest
@@ -1,4 +1,4 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO test_inflection.py | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-inflection_0.5.1.bb b/meta-python/recipes-devtools/python/python3-inflection_0.5.1.bb
index ea3b76d511..5c6f4e2356 100644
--- a/meta-python/recipes-devtools/python/python3-inflection_0.5.1.bb
+++ b/meta-python/recipes-devtools/python/python3-inflection_0.5.1.bb
@@ -13,8 +13,9 @@ SRC_URI +=" \
file://run-ptest \
"
-RDEPENDS:${PN}_ptest +=" \
- ${PYTHON_PN}_pytest \
+RDEPENDS:${PN}-ptest +=" \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
@@ -22,6 +23,6 @@ do_install_ptest() {
}
-RDEPENDS:${PN} += "${PYTHON_PN}-pytest"
+RDEPENDS:${PN} += "python3-pytest"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-inotify/new-test-inotify.patch b/meta-python/recipes-devtools/python/python3-inotify/new-test-inotify.patch
new file mode 100644
index 0000000000..e462615e14
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-inotify/new-test-inotify.patch
@@ -0,0 +1,620 @@
+From 80010e27d774e8b722d569384492eaab2bc4ac61 Mon Sep 17 00:00:00 2001
+From: Joe Slater <joe.slater@windriver.com>
+Date: Thu, 27 Jul 2023 15:01:04 +0000
+Subject: [PATCH] working commit
+
+It is not safe to assume the values returned by add_watch(),
+so we add a local helper get_wd() to retrieve them. This fixes
+a problem in TestInotifyTree.test__cycle() where the
+wd's for the 'aa' and 'bb' paths are not '2' and '3',
+respectively.
+
+A second issue is that Inotify._get_event_names() should
+return a set or sorted list to avoid comparison problems,
+but that is not addressed here since it could be viewed as
+changing the API.
+
+This test_inotify.py is based on the version in the fix_tests branch of
+pyinotify as of commit d7d3c58...
+
+Upstream-Status: Submitted [github.com/dsoprea/PyInotify/pull/104]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+---
+ tests/test_inotify.py | 346 ++++++++++++++++++++++++++++++++----------
+ 1 file changed, 262 insertions(+), 84 deletions(-)
+
+diff --git a/tests/test_inotify.py b/tests/test_inotify.py
+index d9f1f84..d89a49e 100644
+--- a/tests/test_inotify.py
++++ b/tests/test_inotify.py
+@@ -2,6 +2,7 @@
+
+ import os
+ import unittest
++import time
+
+ import inotify.constants
+ import inotify.calls
+@@ -15,6 +16,11 @@ except NameError:
+ else:
+ _HAS_PYTHON2_UNICODE_SUPPORT = True
+
++# Inotify does not have a get for watch descriptors
++#
++def get_wd(i, path):
++ return i._Inotify__watches[path]
++
+
+ class TestInotify(unittest.TestCase):
+ def __init__(self, *args, **kwargs):
+@@ -29,11 +35,11 @@ class TestInotify(unittest.TestCase):
+ @unittest.skipIf(_HAS_PYTHON2_UNICODE_SUPPORT is True, "Not in Python 3")
+ def test__international_naming_python3(self):
+ with inotify.test_support.temp_path() as path:
+- inner_path = os.path.join(path, '新增資料夾')
++ inner_path = os.path.join(path, u'新增資料夾')
+ os.mkdir(inner_path)
+
+ i = inotify.adapters.Inotify()
+- i.add_watch(inner_path)
++ wd = i.add_watch(inner_path)
+
+ with open(os.path.join(inner_path, 'filename'), 'w'):
+ pass
+@@ -41,12 +47,27 @@ class TestInotify(unittest.TestCase):
+ events = self.__read_all_events(i)
+
+ expected = [
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=256, cookie=0, len=16), ['IN_CREATE'], inner_path, 'filename'),
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=32, cookie=0, len=16), ['IN_OPEN'], inner_path, 'filename'),
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], inner_path, 'filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd, mask=256, cookie=0, len=16), ['IN_CREATE'], inner_path, 'filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd, mask=32, cookie=0, len=16), ['IN_OPEN'], inner_path, 'filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], inner_path, 'filename'),
+ ]
+
+- self.assertEquals(events, expected)
++ if events != expected:
++ print("ACTUAL:")
++ print("")
++
++ for i, event in enumerate(events):
++ print(event)
++
++ print("")
++
++ print("EXPECTED:")
++ print("")
++
++ for i, event in enumerate(expected):
++ print(event)
++
++ raise Exception("Events not correct.")
+
+ @unittest.skipIf(_HAS_PYTHON2_UNICODE_SUPPORT is False, "Not in Python 2")
+ def test__international_naming_python2(self):
+@@ -55,7 +76,7 @@ class TestInotify(unittest.TestCase):
+ os.mkdir(inner_path)
+
+ i = inotify.adapters.Inotify()
+- i.add_watch(inner_path)
++ wd = i.add_watch(inner_path)
+
+ with open(os.path.join(inner_path, u'filename料夾'), 'w'):
+ pass
+@@ -63,12 +84,28 @@ class TestInotify(unittest.TestCase):
+ events = self.__read_all_events(i)
+
+ expected = [
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=256, cookie=0, len=16), ['IN_CREATE'], inner_path, u'filename料夾'),
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=32, cookie=0, len=16), ['IN_OPEN'], inner_path, u'filename料夾'),
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], inner_path, u'filename料夾'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd, mask=256, cookie=0, len=16), ['IN_CREATE'], inner_path, u'filename料夾'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd, mask=32, cookie=0, len=16), ['IN_OPEN'], inner_path, u'filename料夾'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], inner_path, u'filename料夾'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd, mask=16, cookie=0, len=16), ['IN_CLOSE_NOWRITE'], inner_path, u'filename料夾'),
+ ]
+
+- self.assertEquals(events, expected)
++ if events != expected:
++ print("ACTUAL:")
++ print("")
++
++ for i, event in enumerate(events):
++ print(event)
++
++ print("")
++
++ print("EXPECTED:")
++ print("")
++
++ for i, event in enumerate(expected):
++ print(event)
++
++ raise Exception("Events not correct.")
+
+ def test__cycle(self):
+ with inotify.test_support.temp_path() as path:
+@@ -79,7 +116,7 @@ class TestInotify(unittest.TestCase):
+ os.mkdir(path2)
+
+ i = inotify.adapters.Inotify()
+- i.add_watch(path1)
++ wd = i.add_watch(path1)
+
+ with open('ignored_new_file', 'w'):
+ pass
+@@ -96,32 +133,47 @@ class TestInotify(unittest.TestCase):
+
+ expected = [
+ (
+- inotify.adapters._INOTIFY_EVENT(wd=1, mask=256, cookie=0, len=16),
++ inotify.adapters._INOTIFY_EVENT(wd=wd, mask=256, cookie=0, len=16),
+ ['IN_CREATE'],
+ path1,
+ 'seen_new_file'
+ ),
+ (
+- inotify.adapters._INOTIFY_EVENT(wd=1, mask=32, cookie=0, len=16),
++ inotify.adapters._INOTIFY_EVENT(wd=wd, mask=32, cookie=0, len=16),
+ ['IN_OPEN'],
+ path1,
+ 'seen_new_file'
+ ),
+ (
+- inotify.adapters._INOTIFY_EVENT(wd=1, mask=8, cookie=0, len=16),
++ inotify.adapters._INOTIFY_EVENT(wd=wd, mask=8, cookie=0, len=16),
+ ['IN_CLOSE_WRITE'],
+ path1,
+ 'seen_new_file'
+ ),
+ (
+- inotify.adapters._INOTIFY_EVENT(wd=1, mask=512, cookie=0, len=16),
++ inotify.adapters._INOTIFY_EVENT(wd=wd, mask=512, cookie=0, len=16),
+ ['IN_DELETE'],
+ path1,
+ 'seen_new_file'
+ )
+ ]
+
+- self.assertEquals(events, expected)
++ if events != expected:
++ print("ACTUAL:")
++ print("")
++
++ for i, event in enumerate(events):
++ print(event)
++
++ print("")
++
++ print("EXPECTED:")
++ print("")
++
++ for i, event in enumerate(expected):
++ print(event)
++
++ raise Exception("Events not correct.")
+
+ # This can't be removed until *after* we've read the events because
+ # they'll be flushed the moment we remove the watch.
+@@ -131,7 +183,7 @@ class TestInotify(unittest.TestCase):
+ pass
+
+ events = self.__read_all_events(i)
+- self.assertEquals(events, [])
++ self.assertEqual(events, [])
+
+ @staticmethod
+ def _open_write_close(*args):
+@@ -167,23 +219,47 @@ class TestInotify(unittest.TestCase):
+ with inotify.test_support.temp_path() as path:
+ path1 = TestInotify._make_temp_path(path, 'aa')
+ path2 = TestInotify._make_temp_path(path, 'bb')
++
+ i = inotify.adapters.Inotify([path1, path2])
++
+ TestInotify._open_write_close('ignored_new_file')
+ TestInotify._open_write_close(path1, 'seen_new_file')
+ TestInotify._open_write_close(path2, 'seen_new_file2')
++
++ wd_path1 = get_wd(i, path1)
++ wd_path2 = get_wd(i, path2)
++
++
+ os.remove(os.path.join(path1, 'seen_new_file'))
++
+ events = self.__read_all_events(i)
++
+ expected = [
+- TestInotify._event_create(wd=1, path=path1, filename='seen_new_file'),
+- TestInotify._event_open(wd=1, path=path1, filename='seen_new_file'),
+- TestInotify._event_close_write(wd=1, path=path1, filename='seen_new_file'),
+- TestInotify._event_create(wd=2, path=path2, filename='seen_new_file2'),
+- TestInotify._event_open(wd=2, path=path2, filename='seen_new_file2'),
+- TestInotify._event_close_write(wd=2, path=path2, filename='seen_new_file2'),
+- TestInotify._event_general(wd=1, mask=512, type_name='IN_DELETE',
+- path=path1, filename='seen_new_file')
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=256, cookie=0, len=16), ['IN_CREATE'], path1, u'seen_new_file'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=32, cookie=0, len=16), ['IN_OPEN'], path1, u'seen_new_file'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path1, u'seen_new_file'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=256, cookie=0, len=16), ['IN_CREATE'], path2, u'seen_new_file2'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=32, cookie=0, len=16), ['IN_OPEN'], path2, u'seen_new_file2'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path2, u'seen_new_file2'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=512, cookie=0, len=16), ['IN_DELETE'], path1, u'seen_new_file'),
+ ]
+- self.assertEquals(events, expected)
++
++ if events != expected:
++ print("ACTUAL:")
++ print("")
++
++ for i, event in enumerate(events):
++ print(event)
++
++ print("")
++
++ print("EXPECTED:")
++ print("")
++
++ for i, event in enumerate(expected):
++ print(event)
++
++ raise Exception("Events not correct.")
+
+ def test__error_on_watch_nonexistent_folder(self):
+ i = inotify.adapters.Inotify()
+@@ -201,7 +277,7 @@ class TestInotify(unittest.TestCase):
+ i = inotify.adapters.Inotify()
+ names = i._get_event_names(all_mask)
+
+- self.assertEquals(names, all_names)
++ self.assertEqual(names, all_names)
+
+
+ class TestInotifyTree(unittest.TestCase):
+@@ -219,56 +295,101 @@ class TestInotifyTree(unittest.TestCase):
+ path1 = os.path.join(path, 'aa')
+ os.mkdir(path1)
+
++ time.sleep(.10)
++
+ path2 = os.path.join(path, 'bb')
+ os.mkdir(path2)
+
++ time.sleep(.10)
++
+ i = inotify.adapters.InotifyTree(path)
+
+ with open('seen_new_file1', 'w'):
+ pass
+
++ time.sleep(.10)
++
+ with open(os.path.join(path1, 'seen_new_file2'), 'w'):
+ pass
+
++ time.sleep(.10)
++
+ with open(os.path.join(path2, 'seen_new_file3'), 'w'):
+ pass
+
++ time.sleep(.10)
++
++ wd_path = get_wd(i.inotify, path)
++ wd_path1 = get_wd(i.inotify, path1)
++ wd_path2 = get_wd(i.inotify, path2)
++
+ os.remove(os.path.join(path, 'seen_new_file1'))
++
++ time.sleep(.10)
++
+ os.remove(os.path.join(path1, 'seen_new_file2'))
++
++ time.sleep(.10)
++
+ os.remove(os.path.join(path2, 'seen_new_file3'))
+
++ time.sleep(.10)
++
+ os.rmdir(path1)
++
++ time.sleep(.10)
++
+ os.rmdir(path2)
+
+- events = self.__read_all_events(i)
++ time.sleep(.10)
+
++ events = self.__read_all_events(i)
++ events = sorted(events)
++
+ expected = [
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=256, cookie=0, len=16), ['IN_CREATE'], path, 'seen_new_file1'),
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=32, cookie=0, len=16), ['IN_OPEN'], path, 'seen_new_file1'),
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path, 'seen_new_file1'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path, mask=256, cookie=0, len=16), ['IN_CREATE'], path, 'seen_new_file1'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path, mask=32, cookie=0, len=16), ['IN_OPEN'], path, 'seen_new_file1'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path, 'seen_new_file1'),
+
+- (inotify.adapters._INOTIFY_EVENT(wd=2, mask=256, cookie=0, len=16), ['IN_CREATE'], path1, 'seen_new_file2'),
+- (inotify.adapters._INOTIFY_EVENT(wd=2, mask=32, cookie=0, len=16), ['IN_OPEN'], path1, 'seen_new_file2'),
+- (inotify.adapters._INOTIFY_EVENT(wd=2, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path1, 'seen_new_file2'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=256, cookie=0, len=16), ['IN_CREATE'], path1, 'seen_new_file2'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=32, cookie=0, len=16), ['IN_OPEN'], path1, 'seen_new_file2'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path1, 'seen_new_file2'),
+
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=256, cookie=0, len=16), ['IN_CREATE'], path2, 'seen_new_file3'),
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=32, cookie=0, len=16), ['IN_OPEN'], path2, 'seen_new_file3'),
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path2, 'seen_new_file3'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=256, cookie=0, len=16), ['IN_CREATE'], path2, 'seen_new_file3'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=32, cookie=0, len=16), ['IN_OPEN'], path2, 'seen_new_file3'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path2, 'seen_new_file3'),
+
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=512, cookie=0, len=16), ['IN_DELETE'], path, 'seen_new_file1'),
+- (inotify.adapters._INOTIFY_EVENT(wd=2, mask=512, cookie=0, len=16), ['IN_DELETE'], path1, 'seen_new_file2'),
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=512, cookie=0, len=16), ['IN_DELETE'], path2, 'seen_new_file3'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path, mask=512, cookie=0, len=16), ['IN_DELETE'], path, 'seen_new_file1'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=512, cookie=0, len=16), ['IN_DELETE'], path1, 'seen_new_file2'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=512, cookie=0, len=16), ['IN_DELETE'], path2, 'seen_new_file3'),
+
+- (inotify.adapters._INOTIFY_EVENT(wd=2, mask=1024, cookie=0, len=0), ['IN_DELETE_SELF'], path1, ''),
+- (inotify.adapters._INOTIFY_EVENT(wd=2, mask=32768, cookie=0, len=0), ['IN_IGNORED'], path1, ''),
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=1073742336, cookie=0, len=16), ['IN_ISDIR', 'IN_DELETE'], path, 'aa'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=1024, cookie=0, len=0), ['IN_DELETE_SELF'], path1, ''),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=32768, cookie=0, len=0), ['IN_IGNORED'], path1, ''),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path, mask=1073742336, cookie=0, len=16), ['IN_DELETE', 'IN_ISDIR'], path, 'aa'),
+
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=1024, cookie=0, len=0), ['IN_DELETE_SELF'], path2, ''),
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=32768, cookie=0, len=0), ['IN_IGNORED'], path2, ''),
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=1073742336, cookie=0, len=16), ['IN_ISDIR', 'IN_DELETE'], path, 'bb'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=1024, cookie=0, len=0), ['IN_DELETE_SELF'], path2, ''),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=32768, cookie=0, len=0), ['IN_IGNORED'], path2, ''),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path, mask=1073742336, cookie=0, len=16), ['IN_DELETE', 'IN_ISDIR'], path, 'bb'),
+ ]
+
+- self.assertEquals(events, expected)
++ expected = sorted(expected)
++
++ if events != expected:
++ print("ACTUAL:")
++ print("")
++
++ for i, event in enumerate(events):
++ print(event)
++
++ print("")
++
++ print("EXPECTED:")
++ print("")
++
++ for i, event in enumerate(expected):
++ print(event)
++
++ raise Exception("Events not correct.")
+
+ def test__renames(self):
+
+@@ -283,26 +404,30 @@ class TestInotifyTree(unittest.TestCase):
+ new_path = os.path.join(path, 'new_folder')
+
+ os.mkdir(old_path)
++
++ wd_path = get_wd(i.inotify, path)
+
+ events1 = self.__read_all_events(i)
+
+ expected = [
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=1073742080, cookie=events1[0][0].cookie, len=16), ['IN_ISDIR', 'IN_CREATE'], path, 'old_folder'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path, mask=1073742080, cookie=events1[0][0].cookie, len=16), ['IN_CREATE', 'IN_ISDIR'], path, 'old_folder'),
+ ]
+
+- self.assertEquals(events1, expected)
+-
++ self.assertEqual(events1, expected)
+
+ os.rename(old_path, new_path)
+
++ wd_old_path = get_wd(i.inotify, old_path)
++
+ events2 = self.__read_all_events(i)
+
+ expected = [
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=1073741888, cookie=events2[0][0].cookie, len=16), ['IN_MOVED_FROM', 'IN_ISDIR'], path, 'old_folder'),
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=1073741952, cookie=events2[1][0].cookie, len=16), ['IN_MOVED_TO', 'IN_ISDIR'], path, 'new_folder'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path, mask=1073741888, cookie=events2[0][0].cookie, len=16), ['IN_MOVED_FROM', 'IN_ISDIR'], path, 'old_folder'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path, mask=1073741952, cookie=events2[1][0].cookie, len=16), ['IN_MOVED_TO', 'IN_ISDIR'], path, 'new_folder'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_old_path, mask=2048, cookie=0, len=0), ['IN_MOVE_SELF'], new_path, '')
+ ]
+
+- self.assertEquals(events2, expected)
++ self.assertEqual(events2, expected)
+
+
+ with open(os.path.join(new_path, 'old_filename'), 'w'):
+@@ -318,21 +443,33 @@ class TestInotifyTree(unittest.TestCase):
+ events3 = self.__read_all_events(i)
+
+ expected = [
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=256, cookie=0, len=16), ['IN_CREATE'], new_path, 'old_filename'),
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=32, cookie=0, len=16), ['IN_OPEN'], new_path, 'old_filename'),
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], new_path, 'old_filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_old_path, mask=256, cookie=0, len=16), ['IN_CREATE'], new_path, 'old_filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_old_path, mask=32, cookie=0, len=16), ['IN_OPEN'], new_path, 'old_filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_old_path, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], new_path, 'old_filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_old_path, mask=64, cookie=events3[3][0].cookie, len=16), ['IN_MOVED_FROM'], new_path, 'old_filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_old_path, mask=128, cookie=events3[4][0].cookie, len=16), ['IN_MOVED_TO'], new_path, 'new_filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_old_path, mask=512, cookie=0, len=16), ['IN_DELETE'], new_path, 'new_filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_old_path, mask=1024, cookie=0, len=0), ['IN_DELETE_SELF'], new_path, ''),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_old_path, mask=32768, cookie=0, len=0), ['IN_IGNORED'], new_path, ''),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path, mask=1073742336, cookie=0, len=16), ['IN_DELETE', 'IN_ISDIR'], path, 'new_folder'),
++ ]
+
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=64, cookie=events3[3][0].cookie, len=16), ['IN_MOVED_FROM'], new_path, 'old_filename'),
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=128, cookie=events3[4][0].cookie, len=16), ['IN_MOVED_TO'], new_path, 'new_filename'),
++ if events3 != expected:
++ print("ACTUAL:")
++ print("")
+
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=512, cookie=0, len=16), ['IN_DELETE'], new_path, 'new_filename'),
++ for i, event in enumerate(events3):
++ print(event)
+
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=1024, cookie=0, len=0), ['IN_DELETE_SELF'], new_path, ''),
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=32768, cookie=0, len=0), ['IN_IGNORED'], new_path, ''),
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=1073742336, cookie=0, len=16), ['IN_ISDIR', 'IN_DELETE'], path, 'new_folder'),
+- ]
++ print("")
++
++ print("EXPECTED:")
++ print("")
+
+- self.assertEquals(events3, expected)
++ for i, event in enumerate(expected):
++ print(event)
++
++ raise Exception("Events not correct.")
+
+ def test__automatic_new_watches_on_new_paths(self):
+
+@@ -346,39 +483,60 @@ class TestInotifyTree(unittest.TestCase):
+ path2 = os.path.join(path1, 'folder2')
+
+ os.mkdir(path1)
++
++ wd_path = get_wd(i.inotify, path)
+
+ events = self.__read_all_events(i)
+
+ expected = [
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=1073742080, cookie=0, len=16), ['IN_ISDIR', 'IN_CREATE'], path, 'folder1'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path, mask=1073742080, cookie=0, len=16), ['IN_CREATE', 'IN_ISDIR'], path, 'folder1'),
+ ]
+
+- self.assertEquals(events, expected)
++ self.assertEqual(events, expected)
+
+
+ os.mkdir(path2)
+
++ wd_path1 = get_wd(i.inotify, path1)
++
+ events = self.__read_all_events(i)
+
+ expected = [
+- (inotify.adapters._INOTIFY_EVENT(wd=2, mask=1073742080, cookie=0, len=16), ['IN_ISDIR', 'IN_CREATE'], path1, 'folder2'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=1073742080, cookie=0, len=16), ['IN_CREATE', 'IN_ISDIR'], path1, 'folder2'),
+ ]
+
+- self.assertEquals(events, expected)
++ self.assertEqual(events, expected)
+
+
+ with open(os.path.join(path2,'filename'), 'w'):
+ pass
+
++ wd_path2 = get_wd(i.inotify, path2)
++
+ events = self.__read_all_events(i)
+
+ expected = [
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=256, cookie=0, len=16), ['IN_CREATE'], path2, 'filename'),
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=32, cookie=0, len=16), ['IN_OPEN'], path2, 'filename'),
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path2, 'filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=256, cookie=0, len=16), ['IN_CREATE'], path2, 'filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=32, cookie=0, len=16), ['IN_OPEN'], path2, 'filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path2, 'filename'),
+ ]
+
+- self.assertEquals(events, expected)
++ if events != expected:
++ print("ACTUAL:")
++ print("")
++
++ for i, event in enumerate(events):
++ print(event)
++
++ print("")
++
++ print("EXPECTED:")
++ print("")
++
++ for i, event in enumerate(expected):
++ print(event)
++
++ raise Exception("Events not correct.")
+
+ def test__automatic_new_watches_on_existing_paths(self):
+
+@@ -396,16 +554,33 @@ class TestInotifyTree(unittest.TestCase):
+
+ with open(os.path.join(path2,'filename'), 'w'):
+ pass
++
++ wd = get_wd(i.inotify, path2)
+
+ events = self.__read_all_events(i)
+
+ expected = [
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=256, cookie=0, len=16), ['IN_CREATE'], path2, 'filename'),
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=32, cookie=0, len=16), ['IN_OPEN'], path2, 'filename'),
+- (inotify.adapters._INOTIFY_EVENT(wd=3, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path2, 'filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd, mask=256, cookie=0, len=16), ['IN_CREATE'], path2, 'filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd, mask=32, cookie=0, len=16), ['IN_OPEN'], path2, 'filename'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path2, 'filename'),
+ ]
+
+- self.assertEquals(events, expected)
++ if events != expected:
++ print("ACTUAL:")
++ print("")
++
++ for i, event in enumerate(events):
++ print(event)
++
++ print("")
++
++ print("EXPECTED:")
++ print("")
++
++ for i, event in enumerate(expected):
++ print(event)
++
++ raise Exception("Events not correct.")
+
+
+ class TestInotifyTrees(unittest.TestCase):
+@@ -428,6 +603,9 @@ class TestInotifyTrees(unittest.TestCase):
+
+ i = inotify.adapters.InotifyTrees([path1, path2])
+
++ wd_path1 = get_wd(i.inotify, path1)
++ wd_path2 = get_wd(i.inotify, path2)
++
+ with open(os.path.join(path1, 'seen_new_file1'), 'w'):
+ pass
+
+@@ -437,13 +615,13 @@ class TestInotifyTrees(unittest.TestCase):
+ events = self.__read_all_events(i)
+
+ expected = [
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=256, cookie=0, len=16), ['IN_CREATE'], path1, 'seen_new_file1'),
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=32, cookie=0, len=16), ['IN_OPEN'], path1, 'seen_new_file1'),
+- (inotify.adapters._INOTIFY_EVENT(wd=1, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path1, 'seen_new_file1'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=256, cookie=0, len=16), ['IN_CREATE'], path1, 'seen_new_file1'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=32, cookie=0, len=16), ['IN_OPEN'], path1, 'seen_new_file1'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path1, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path1, 'seen_new_file1'),
+
+- (inotify.adapters._INOTIFY_EVENT(wd=2, mask=256, cookie=0, len=16), ['IN_CREATE'], path2, 'seen_new_file2'),
+- (inotify.adapters._INOTIFY_EVENT(wd=2, mask=32, cookie=0, len=16), ['IN_OPEN'], path2, 'seen_new_file2'),
+- (inotify.adapters._INOTIFY_EVENT(wd=2, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path2, 'seen_new_file2'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=256, cookie=0, len=16), ['IN_CREATE'], path2, 'seen_new_file2'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=32, cookie=0, len=16), ['IN_OPEN'], path2, 'seen_new_file2'),
++ (inotify.adapters._INOTIFY_EVENT(wd=wd_path2, mask=8, cookie=0, len=16), ['IN_CLOSE_WRITE'], path2, 'seen_new_file2'),
+ ]
+
+- self.assertEquals(events, expected)
++ self.assertEqual(events, expected)
+--
+2.35.5
+
diff --git a/meta-python/recipes-devtools/python/python3-inotify/run-ptest b/meta-python/recipes-devtools/python/python3-inotify/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-inotify/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-inotify_0.2.10.bb b/meta-python/recipes-devtools/python/python3-inotify_0.2.10.bb
deleted file mode 100644
index 524c3a0d29..0000000000
--- a/meta-python/recipes-devtools/python/python3-inotify_0.2.10.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "An adapter to Linux kernel support for inotify directory-watching."
-AUTHOR = "Dustin Oprea"
-HOMEPAGE = "https://pypi.org/project/inotify/"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://setup.py;md5=79b7ec72aa0d446a552d3cceb5799e41;beginline=28;endline=28"
-
-SRC_URI[sha256sum] = "974a623a338482b62e16d4eb705fb863ed33ec178680fc3e96ccdf0df6c02a07"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- python3-ctypes \
- python3-logging \
-"
diff --git a/meta-python/recipes-devtools/python/python3-inotify_git.bb b/meta-python/recipes-devtools/python/python3-inotify_git.bb
new file mode 100644
index 0000000000..582599bca8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-inotify_git.bb
@@ -0,0 +1,33 @@
+SUMMARY = "An adapter to Linux kernel support for inotify directory-watching."
+HOMEPAGE = "https://pypi.org/project/inotify/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://setup.py;md5=79b7ec72aa0d446a552d3cceb5799e41;beginline=28;endline=28"
+
+SRC_URI[sha256sum] = "974a623a338482b62e16d4eb705fb863ed33ec178680fc3e96ccdf0df6c02a07"
+
+SRC_URI = " \
+ git://github.com/dsoprea/pyinotify.git;branch=master;protocol=https \
+ file://new-test-inotify.patch \
+ file://run-ptest \
+"
+
+SRCREV = "9be6a51d1660991562eefaaddefa757ca0e0e00f"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3 ptest
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+ python3-logging \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-intervals/run-ptest b/meta-python/recipes-devtools/python/python3-intervals/run-ptest
index 357d8cb987..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-intervals/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-intervals/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO test_intervals.py| sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb b/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb
index abf87c597c..3c5be47806 100644
--- a/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb
+++ b/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb
@@ -14,7 +14,8 @@ SRC_URI += " \
inherit pypi setuptools3 ptest
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-invoke_2.2.0.bb b/meta-python/recipes-devtools/python/python3-invoke_2.2.0.bb
new file mode 100644
index 0000000000..3f2e6232d6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-invoke_2.2.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Pythonic task execution"
+HOMEPAGE = "https://www.pyinvoke.org/"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a8815068973f31b78c328dc067e297ab"
+
+SRC_URI[sha256sum] = "ee6cbb101af1a859c7fe84f2a264c059020b0cb7fe3535f9424300ab568f6bd5"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-fcntl \
+ python3-json \
+ python3-logging \
+ python3-pprint \
+ python3-terminal \
+ python3-unittest \
+ python3-unixadmin \
+"
diff --git a/meta-python/recipes-devtools/python/python3-iperf_0.1.11.bb b/meta-python/recipes-devtools/python/python3-iperf_0.1.11.bb
index 36d6463051..58af7b77ac 100644
--- a/meta-python/recipes-devtools/python/python3-iperf_0.1.11.bb
+++ b/meta-python/recipes-devtools/python/python3-iperf_0.1.11.bb
@@ -1,6 +1,5 @@
SUMMARY = "Python wrapper around iperf3"
HOMEPAGE = "https://github.com/thiezn/iperf3-python"
-AUTHOR = "Mathijs Mortimer <mathijs@mortimer.nl>"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f7d0900b3d30647cdda002c9549ca40f"
@@ -9,3 +8,9 @@ PYPI_PACKAGE = "iperf3"
SRC_URI[sha256sum] = "d50eebbf2dcf445a173f98a82f9c433e0302d3dfb7987e1f21b86b35ef63ce26"
inherit setuptools3 pypi
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+ python3-json \
+ python3-threading \
+"
diff --git a/meta-python/recipes-devtools/python/python3-ipy/run-ptest b/meta-python/recipes-devtools/python/python3-ipy/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-ipy/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-ipy/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-ipy_1.01.bb b/meta-python/recipes-devtools/python/python3-ipy_1.01.bb
index 8e7b5b987e..36d0b9ae27 100644
--- a/meta-python/recipes-devtools/python/python3-ipy_1.01.bb
+++ b/meta-python/recipes-devtools/python/python3-ipy_1.01.bb
@@ -19,7 +19,8 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-ipython-genutils_0.2.0.bb b/meta-python/recipes-devtools/python/python3-ipython-genutils_0.2.0.bb
index 2a28cf9ecb..3261d80474 100644
--- a/meta-python/recipes-devtools/python/python3-ipython-genutils_0.2.0.bb
+++ b/meta-python/recipes-devtools/python/python3-ipython-genutils_0.2.0.bb
@@ -1,11 +1,13 @@
SUMMARY = "Vestigial utilities from IPython"
HOMEPAGE = "http://ipython.org"
-AUTHOR = "IPython Development Team <ipython-dev@scipy.org>"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING.md;md5=f7c3032c3ac398265224533a0a333a35"
PYPI_PACKAGE = "ipython_genutils"
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/ipython_genutils"
+UPSTREAM_CHECK_REGEX = "/ipython_genutils/(?P<pver>(\d+[\.\-_]*)+)"
+
SRC_URI[md5sum] = "5a4f9781f78466da0ea1a648f3e1f79f"
SRC_URI[sha256sum] = "eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"
diff --git a/meta-python/recipes-devtools/python/python3-ipython_8.2.0.bb b/meta-python/recipes-devtools/python/python3-ipython_8.2.0.bb
deleted file mode 100644
index 35af7dd4d8..0000000000
--- a/meta-python/recipes-devtools/python/python3-ipython_8.2.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "IPython: Productive Interactive Computing"
-HOMEPAGE = "https://ipython.org"
-AUTHOR = "The IPython Development Team <ipython-dev@python.org>"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING.rst;md5=59b20262b8663cdd094005bddf47af5f"
-
-PYPI_PACKAGE = "ipython"
-
-SRC_URI[sha256sum] = "70e5eb132cac594a34b5f799bd252589009905f05104728aea6a403ec2519dc1"
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-setuptools \
- ${PYTHON_PN}-jedi \
- ${PYTHON_PN}-decorator \
- ${PYTHON_PN}-pickleshare \
- ${PYTHON_PN}-traitlets \
- ${PYTHON_PN}-prompt-toolkit \
- ${PYTHON_PN}-pygments \
- ${PYTHON_PN}-backcall \
- ${PYTHON_PN}-pydoc \
- ${PYTHON_PN}-debugger \
- ${PYTHON_PN}-pexpect \
- ${PYTHON_PN}-unixadmin \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-sqlite3 \
-"
-
-inherit setuptools3 pypi
diff --git a/meta-python/recipes-devtools/python/python3-ipython_8.22.2.bb b/meta-python/recipes-devtools/python/python3-ipython_8.22.2.bb
new file mode 100644
index 0000000000..b8595fe9ca
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ipython_8.22.2.bb
@@ -0,0 +1,28 @@
+SUMMARY = "IPython: Productive Interactive Computing"
+HOMEPAGE = "https://ipython.org"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING.rst;md5=59b20262b8663cdd094005bddf47af5f"
+
+PYPI_PACKAGE = "ipython"
+
+SRC_URI[sha256sum] = "2dcaad9049f9056f1fef63514f176c7d41f930daa78d05b82a176202818f2c14"
+
+RDEPENDS:${PN} = "\
+ python3-setuptools \
+ python3-jedi \
+ python3-decorator \
+ python3-pickleshare \
+ python3-traitlets \
+ python3-prompt-toolkit \
+ python3-pygments \
+ python3-backcall \
+ python3-pydoc \
+ python3-debugger \
+ python3-pexpect \
+ python3-unixadmin \
+ python3-misc \
+ python3-sqlite3 \
+ python3-stack-data \
+"
+
+inherit setuptools3 pypi
diff --git a/meta-python/recipes-devtools/python/python3-iso3166/run-ptest b/meta-python/recipes-devtools/python/python3-iso3166/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-iso3166/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-iso3166/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-iso3166_2.1.1.bb b/meta-python/recipes-devtools/python/python3-iso3166_2.1.1.bb
index b32cfe5956..3aa084d10a 100644
--- a/meta-python/recipes-devtools/python/python3-iso3166_2.1.1.bb
+++ b/meta-python/recipes-devtools/python/python3-iso3166_2.1.1.bb
@@ -12,7 +12,8 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-isodate_0.6.1.bb b/meta-python/recipes-devtools/python/python3-isodate_0.6.1.bb
deleted file mode 100644
index 2a5dcfca3c..0000000000
--- a/meta-python/recipes-devtools/python/python3-isodate_0.6.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "ISO 8601 date/time parser"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
-
-SRC_URI[sha256sum] = "48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-six \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-isort_5.10.1.bb b/meta-python/recipes-devtools/python/python3-isort_5.10.1.bb
deleted file mode 100644
index 27977821c6..0000000000
--- a/meta-python/recipes-devtools/python/python3-isort_5.10.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A Python utility / library to sort Python imports."
-HOMEPAGE = "https://pypi.python.org/pypi/isort"
-LICENSE = "MIT"
-SECTION = "devel/python"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=8227180126797a0148f94f483f3e1489"
-
-SRC_URI[sha256sum] = "e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"
-
-inherit pypi python_poetry_core
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-profile \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-difflib \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-isort_5.13.2.bb b/meta-python/recipes-devtools/python/python3-isort_5.13.2.bb
new file mode 100644
index 0000000000..60d44181c0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-isort_5.13.2.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A Python utility / library to sort Python imports."
+HOMEPAGE = "https://pypi.python.org/pypi/isort"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=8227180126797a0148f94f483f3e1489"
+
+SRC_URI[sha256sum] = "48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-datetime \
+ python3-difflib \
+ python3-email \
+ python3-numbers \
+ python3-pprint \
+ python3-profile \
+ python3-shell \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-itsdangerous_2.1.2.bb b/meta-python/recipes-devtools/python/python3-itsdangerous_2.1.2.bb
index 2e8c7e7802..5af1d594b3 100644
--- a/meta-python/recipes-devtools/python/python3-itsdangerous_2.1.2.bb
+++ b/meta-python/recipes-devtools/python/python3-itsdangerous_2.1.2.bb
@@ -10,8 +10,8 @@ inherit pypi setuptools3
CLEANBROKEN = "1"
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-simplejson \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-json \
+ python3-simplejson \
+ python3-netclient \
+ python3-compression \
+ python3-json \
"
diff --git a/meta-python/recipes-devtools/python/python3-janus_1.0.0.bb b/meta-python/recipes-devtools/python/python3-janus_1.0.0.bb
new file mode 100644
index 0000000000..c709bcfbff
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-janus_1.0.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Mixed sync-async queue to interoperate between asyncio tasks and classic threads"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=23878c357ebb4c8ce1109be365043349"
+
+SRC_URI[sha256sum] = "df976f2cdcfb034b147a2d51edfc34ff6bfb12d4e2643d3ad0e10de058cb1612"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += "\
+ python3-asyncio \
+ python3-threading \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-javaobj-py3_0.4.3.bb b/meta-python/recipes-devtools/python/python3-javaobj-py3_0.4.3.bb
index eb93e71733..5555a12563 100644
--- a/meta-python/recipes-devtools/python/python3-javaobj-py3_0.4.3.bb
+++ b/meta-python/recipes-devtools/python/python3-javaobj-py3_0.4.3.bb
@@ -12,3 +12,8 @@ SRC_URI[sha256sum] = "38f74db3a57e9998a9774e3614afb95cb396f139f29b3fdb130c5af554
inherit pypi setuptools3
BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-jdatetime_4.1.0.bb b/meta-python/recipes-devtools/python/python3-jdatetime_4.1.0.bb
deleted file mode 100644
index c96e5c39ed..0000000000
--- a/meta-python/recipes-devtools/python/python3-jdatetime_4.1.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "Jalali implementation of Python's datetime module"
-HOMEPAGE = "https://github.com/slashmili/python-jalali"
-LICENSE = "Python-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c80be45b33471b4a23cf53d06a8172be"
-
-SRC_URI[sha256sum] = "4a67a82ee57e35b5f6f9f7fbe6a0eda63f56ce1dd8af409b4c2a26a3340457db"
-
-PYPI_PACKAGE = "jdatetime"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-modules \
-"
-
diff --git a/meta-python/recipes-devtools/python/python3-jdatetime_5.0.0.bb b/meta-python/recipes-devtools/python/python3-jdatetime_5.0.0.bb
new file mode 100644
index 0000000000..f1dd368ea0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jdatetime_5.0.0.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Jalali implementation of Python's datetime module"
+HOMEPAGE = "https://github.com/slashmili/python-jalali"
+LICENSE = "Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c80be45b33471b4a23cf53d06a8172be"
+
+SRC_URI[sha256sum] = "2cc603d913c0d8e328928454d3d295261cb037e9950227f67c9629ab4710fdf9"
+
+PYPI_PACKAGE = "jdatetime"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
+RDEPENDS:${PN} += " \
+ python3-modules \
+"
+
diff --git a/meta-python/recipes-devtools/python/python3-jdcal/run-ptest b/meta-python/recipes-devtools/python/python3-jdcal/run-ptest
index 5cec711696..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-jdcal/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-jdcal/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-jdcal_1.4.1.bb b/meta-python/recipes-devtools/python/python3-jdcal_1.4.1.bb
index 8655150b03..afabe14a8a 100644
--- a/meta-python/recipes-devtools/python/python3-jdcal_1.4.1.bb
+++ b/meta-python/recipes-devtools/python/python3-jdcal_1.4.1.bb
@@ -12,14 +12,15 @@ inherit pypi setuptools3 ptest
SRC_URI[md5sum] = "e05bdb60fa80f25bc60e73e0c6b7c5dc"
SRC_URI[sha256sum] = "472872e096eb8df219c23f2689fc336668bdb43d194094b5cc1707e1640acfc8"
-RDEPENDS:${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell"
+RDEPENDS:${PN} += "python3-compression python3-io python3-pprint python3-shell"
SRC_URI += " \
file://run-ptest \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-jedi_0.18.1.bb b/meta-python/recipes-devtools/python/python3-jedi_0.18.1.bb
deleted file mode 100644
index fb582c54bc..0000000000
--- a/meta-python/recipes-devtools/python/python3-jedi_0.18.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "An autocompletion tool for Python that can be used for text editors."
-HOMEPAGE = "https://github.com/davidhalter/jedi"
-AUTHOR = "David Halter <davidhalter88@gmail.com>"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5ed06eebfcb244cd66ebf6cef9c23ab4"
-
-PYPI_PACKAGE = "jedi"
-
-SRC_URI[sha256sum] = "74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab"
-
-RDEPENDS:${PN} = " \
- ${PYTHON_PN}-parso \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-pydoc \
- ${PYTHON_PN}-compile \
- ${PYTHON_PN}-json \
-"
-
-inherit setuptools3 pypi
diff --git a/meta-python/recipes-devtools/python/python3-jedi_0.19.1.bb b/meta-python/recipes-devtools/python/python3-jedi_0.19.1.bb
new file mode 100644
index 0000000000..56395c3b5d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jedi_0.19.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "An autocompletion tool for Python that can be used for text editors."
+HOMEPAGE = "https://github.com/davidhalter/jedi"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5ed06eebfcb244cd66ebf6cef9c23ab4"
+
+PYPI_PACKAGE = "jedi"
+
+SRC_URI[sha256sum] = "cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"
+
+RDEPENDS:${PN} = " \
+ python3-parso \
+ python3-core \
+ python3-compression \
+ python3-pydoc \
+ python3-compile \
+ python3-json \
+"
+
+inherit setuptools3 pypi
diff --git a/meta-python/recipes-devtools/python/python3-joblib_1.2.0.bb b/meta-python/recipes-devtools/python/python3-joblib_1.2.0.bb
deleted file mode 100644
index ec02265d1e..0000000000
--- a/meta-python/recipes-devtools/python/python3-joblib_1.2.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Joblib is a set of tools to provide lightweight pipelining in Python."
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2e481820abf0a70a18011a30153df066"
-
-inherit setuptools3 pypi
-
-SRC_URI[sha256sum] = "e1cee4a79e4af22881164f218d4311f60074197fb707e082e803b61f6d137018"
-
-RDEPENDS:${PN} += " \
- python3-asyncio \
- python3-distutils \
- python3-json \
- python3-multiprocessing \
- python3-pprint \
- python3-pydoc \
-"
diff --git a/meta-python/recipes-devtools/python/python3-joblib_1.3.2.bb b/meta-python/recipes-devtools/python/python3-joblib_1.3.2.bb
new file mode 100644
index 0000000000..d68b40e384
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-joblib_1.3.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Joblib is a set of tools to provide lightweight pipelining in Python."
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2e481820abf0a70a18011a30153df066"
+
+inherit setuptools3 pypi
+
+SRC_URI[sha256sum] = "92f865e621e17784e7955080b6d042489e3b8e294949cc44c6eac304f59772b1"
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-json \
+ python3-multiprocessing \
+ python3-pprint \
+ python3-pydoc \
+"
diff --git a/meta-python/recipes-devtools/python/python3-jsbeautifier_1.15.1.bb b/meta-python/recipes-devtools/python/python3-jsbeautifier_1.15.1.bb
new file mode 100644
index 0000000000..5a0e5a8499
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jsbeautifier_1.15.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "JavaScript unobfuscator and beautifier."
+HOMEPAGE = "https://beautifier.io/"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "ebd733b560704c602d744eafc839db60a1ee9326e30a2a80c4adb8718adc1b24"
+
+PYPI_PACKAGE="jsbeautifier"
+
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-stringold \
+ python3-shell \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-jsmin/7a75d76c2d6bfb917f30ced8f5c0a9a4157f7819.patch b/meta-python/recipes-devtools/python/python3-jsmin/7a75d76c2d6bfb917f30ced8f5c0a9a4157f7819.patch
new file mode 100644
index 0000000000..2646e2f5a0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jsmin/7a75d76c2d6bfb917f30ced8f5c0a9a4157f7819.patch
@@ -0,0 +1,82 @@
+From 7a75d76c2d6bfb917f30ced8f5c0a9a4157f7819 Mon Sep 17 00:00:00 2001
+From: aekoroglu <ali.erdinc.koroglu@intel.com>
+Date: Fri, 24 Jun 2022 14:12:59 +0300
+Subject: [PATCH] DeprecationWarning invalid escape sequence fix
+
+Upstream-Status: Submitted [https://github.com/tikitu/jsmin/pull/38]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ jsmin/test.py | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/jsmin/test.py b/jsmin/test.py
+index 173ac65..afea4e7 100644
+--- a/jsmin/test.py
++++ b/jsmin/test.py
+@@ -337,8 +337,8 @@ def testImplicitSemicolon3(self):
+ self.assertMinified("return//comment...\r\na", "return\na")
+
+ def testSingleComment2(self):
+- self.assertMinified('x.replace(/\//, "_")// slash to underscore',
+- 'x.replace(/\//,"_")')
++ self.assertMinified('x.replace(/\\//, "_")// slash to underscore',
++ 'x.replace(/\\//,"_")')
+
+ def testSlashesNearComments(self):
+ original = '''
+@@ -383,8 +383,8 @@ def test_space_in_regex(self):
+ self.assertMinified(original, original)
+
+ def test_brackets_around_slashed_regex(self):
+- original = 'function a() { /\//.test("a") }'
+- expected = 'function a(){/\//.test("a")}'
++ original = 'function a() { /\\//.test("a") }'
++ expected = 'function a(){/\\//.test("a")}'
+ self.assertMinified(original, expected)
+
+ def test_angular_1(self):
+@@ -455,12 +455,12 @@ def testBackticksTagged(self):
+ def test_issue_bitbucket_16(self):
+ original = """
+ f = function() {
+- return /DataTree\/(.*)\//.exec(this._url)[1];
++ return /DataTree\\/(.*)\\//.exec(this._url)[1];
+ }
+ """
+ self.assertMinified(
+ original,
+- 'f=function(){return /DataTree\/(.*)\//.exec(this._url)[1];}')
++ 'f=function(){return /DataTree\\/(.*)\\//.exec(this._url)[1];}')
+
+ def test_issue_bitbucket_17(self):
+ original = "// hi\n/^(get|post|head|put)$/i.test('POST')"
+@@ -470,7 +470,7 @@ def test_issue_bitbucket_17(self):
+ def test_issue_6(self):
+ original = '''
+ respond.regex = {
+- comments: /\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,
++ comments: /\\/\\*[^*]*\\*+([^/][^*]*\\*+)*\\//gi,
+ urls: 'whatever'
+ };
+ '''
+@@ -548,16 +548,16 @@ def test_issue_9_multi_comments(self):
+
+ def test_issue_12_re_nl_if(self):
+ original = '''
+- var re = /\d{4}/
++ var re = /\\d{4}/
+ if (1) { console.log(2); }'''
+ self.assertMinified(
+- original, 'var re=/\d{4}/\nif(1){console.log(2);}')
++ original, 'var re=/\\d{4}/\nif(1){console.log(2);}')
+
+ def test_issue_12_re_nl_other(self):
+ original = '''
+- var re = /\d{4}/
++ var re = /\\d{4}/
+ g = 10'''
+- self.assertMinified(original , 'var re=/\d{4}/\ng=10')
++ self.assertMinified(original , 'var re=/\\d{4}/\ng=10')
+
+ def test_preserve_copyright(self):
+ original = '''
diff --git a/meta-python/recipes-devtools/python/python3-jsmin/run-ptest b/meta-python/recipes-devtools/python/python3-jsmin/run-ptest
index cbcfffda5b..586608d7b2 100644
--- a/meta-python/recipes-devtools/python/python3-jsmin/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-jsmin/run-ptest
@@ -1,3 +1,2 @@
#!/bin/sh
-
-python3 test.py
+pytest -vv test.py | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta-python/recipes-devtools/python/python3-jsmin_3.0.1.bb b/meta-python/recipes-devtools/python/python3-jsmin_3.0.1.bb
index 51b17066ee..c3129e7b53 100644
--- a/meta-python/recipes-devtools/python/python3-jsmin_3.0.1.bb
+++ b/meta-python/recipes-devtools/python/python3-jsmin_3.0.1.bb
@@ -10,11 +10,12 @@ SRC_URI[sha256sum] = "c0959a121ef94542e807a674142606f7e90214a2b3d1eb17300244bbb5
BBCLASSEXTEND = "native nativesdk"
SRC_URI += " \
+ file://7a75d76c2d6bfb917f30ced8f5c0a9a4157f7819.patch \
file://run-ptest \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-jsonpatch_1.32.bb b/meta-python/recipes-devtools/python/python3-jsonpatch_1.32.bb
deleted file mode 100644
index 2a653cce88..0000000000
--- a/meta-python/recipes-devtools/python/python3-jsonpatch_1.32.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Appling JSON patches in Python 2.6+ and 3.x"
-HOMEPAGE = "https://github.com/stefankoegl/python-json-patch"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=32b15c843b7a329130f4e266a281ebb3"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "b6ddfe6c3db30d81a96aaeceb6baf916094ffa23d7dd5fa2c13e13f8b6e600c2"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-jsonpointer \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-stringold \
-"
diff --git a/meta-python/recipes-devtools/python/python3-jsonpatch_1.33.bb b/meta-python/recipes-devtools/python/python3-jsonpatch_1.33.bb
new file mode 100644
index 0000000000..6a1715c6df
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jsonpatch_1.33.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Appling JSON patches in Python 2.6+ and 3.x"
+HOMEPAGE = "https://github.com/stefankoegl/python-json-patch"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4f81c84f9a053e31fe9402a2a4e78864"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c"
+
+RDEPENDS:${PN} += " \
+ python3-json \
+ python3-jsonpointer \
+ python3-netclient \
+ python3-stringold \
+"
diff --git a/meta-python/recipes-devtools/python/python3-jsonpath-rw_1.4.0.bb b/meta-python/recipes-devtools/python/python3-jsonpath-rw_1.4.0.bb
index b1af0f0336..4cc39a286a 100644
--- a/meta-python/recipes-devtools/python/python3-jsonpath-rw_1.4.0.bb
+++ b/meta-python/recipes-devtools/python/python3-jsonpath-rw_1.4.0.bb
@@ -8,4 +8,9 @@ SRC_URI[sha256sum] = "05c471281c45ae113f6103d1268ec7a4831a2e96aa80de45edc89b11fa
inherit pypi setuptools3
-RDEPENDS:${PN} += " python3-decorator"
+RDEPENDS:${PN} += " \
+ python3-decorator \
+ python3-logging \
+ python3-ply \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.2.bb b/meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.2.bb
deleted file mode 100644
index 26ee3786b4..0000000000
--- a/meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Generate JSON-RPC requests and parse responses in Python"
-HOMEPAGE = "https://github.com/explodinglabs/jsonrpcclient"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=10f3d7679914df805c98fb351172e677"
-
-SRC_URI[sha256sum] = "c0d475494b3e1b591ecdee7883739accaf5695edb673f16b7383b8c6bbdb1ca3"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- python3-core \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.3.bb b/meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.3.bb
new file mode 100644
index 0000000000..459726199e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.3.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Generate JSON-RPC requests and parse responses in Python"
+HOMEPAGE = "https://github.com/explodinglabs/jsonrpcclient"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=10f3d7679914df805c98fb351172e677"
+
+SRCREV = "e5dd11736925a9a8e463fc9420eab95235f181e3"
+SRC_URI = "git://github.com/explodinglabs/jsonrpcclient.git;branch=main;protocol=https"
+
+inherit python_setuptools_build_meta
+
+S = "${WORKDIR}/git"
+
+RDEPENDS:${PN} += "\
+ python3-json \
+ python3-math \
+ python3-netclient \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb b/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb
deleted file mode 100644
index 7e058a757b..0000000000
--- a/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Library to process JSON-RPC requests"
-HOMEPAGE = "https://github.com/explodinglabs/jsonrpcserver"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=61b63ea9d36f6fb63ddaaaac8265304f"
-
-SRC_URI[sha256sum] = "a71fb2cfa18541c80935f60987f92755d94d74141248c7438847b96eee5c4482"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- python3-apply-defaults \
- python3-asyncio \
- python3-core \
- python3-json \
- python3-jsonschema \
- python3-logging \
- python3-netclient \
- python3-pkgutil \
- python3-oslash \
- python3-typing-extensions \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-jstyleson_0.0.2.bb b/meta-python/recipes-devtools/python/python3-jstyleson_0.0.2.bb
index e70ce33efc..237713bf12 100644
--- a/meta-python/recipes-devtools/python/python3-jstyleson_0.0.2.bb
+++ b/meta-python/recipes-devtools/python/python3-jstyleson_0.0.2.bb
@@ -13,3 +13,5 @@ inherit pypi setuptools3
SRC_URI[sha256sum] = "680003f3b15a2959e4e6a351f3b858e3c07dd3e073a0d54954e34d8ea5e1308e"
BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += "python3-json"
diff --git a/meta-python/recipes-devtools/python/python3-kconfiglib_14.1.0.bb b/meta-python/recipes-devtools/python/python3-kconfiglib_14.1.0.bb
index ec09cfc58e..b9c1c4e384 100644
--- a/meta-python/recipes-devtools/python/python3-kconfiglib_14.1.0.bb
+++ b/meta-python/recipes-devtools/python/python3-kconfiglib_14.1.0.bb
@@ -8,3 +8,9 @@ SRC_URI[sha256sum] = "bed2cc2216f538eca4255a83a4588d8823563cdd50114f86cf1a2674e6
inherit pypi setuptools3
BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+ python3-curses \
+ python3-shell \
+ python3-tkinter \
+"
diff --git a/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb b/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
index 6c2af0d4ea..ba1819979b 100644
--- a/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
+++ b/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
@@ -7,11 +7,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=366e2fd3c9714f162d3663b6f97cfe41"
SRC_URI = "git://github.com/keras-team/keras-applications.git;branch=master;protocol=https"
SRCREV ?= "3b180cb10eda683dda7913ecee2e6487288d292d"
-
inherit setuptools3
-PIP_INSTALL_PACKAGE = "Keras_Applications"
-
S = "${WORKDIR}/git"
BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-kivy/0001-add-support-for-glesv2.patch b/meta-python/recipes-devtools/python/python3-kivy/0001-add-support-for-glesv2.patch
index bb236b4195..e38b31d34d 100644
--- a/meta-python/recipes-devtools/python/python3-kivy/0001-add-support-for-glesv2.patch
+++ b/meta-python/recipes-devtools/python/python3-kivy/0001-add-support-for-glesv2.patch
@@ -1,6 +1,19 @@
+From 98224fec48d6e0f32b28d81220bf1ee1637ce045 Mon Sep 17 00:00:00 2001
+From: William Huang <whuang8933@gmail.com>
+Date: Thu, 2 Sep 2021 07:25:07 -0400
+Subject: [PATCH] recipes-devtools: python: add support for Kivy
+
+Upstream-Status: Pending
+
+---
+ setup.py | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 35e34afdd..0ba3aca72 100644
--- a/setup.py
+++ b/setup.py
-@@ -695,7 +695,18 @@ def determine_gl_flags():
+@@ -730,7 +730,18 @@ def determine_gl_flags():
c_options['use_x11'] = True
c_options['use_egl'] = True
else:
@@ -20,7 +33,7 @@
return flags, base_flags
-@@ -723,14 +734,13 @@ def determine_sdl2():
+@@ -774,14 +785,13 @@ def determine_sdl2():
sdl_inc = join(include, 'SDL2')
if isdir(sdl_inc):
sdl2_paths.append(sdl_inc)
@@ -34,5 +47,5 @@
- ['/usr/local/lib/'])
+ [''])
- if sdl2_flags:
- flags = merge(flags, sdl2_flags)
+ if kivy_sdl2_path:
+ # If we have a custom path, we need to add the rpath to the linker
diff --git a/meta-python/recipes-devtools/python/python3-kivy_2.1.0..bb b/meta-python/recipes-devtools/python/python3-kivy_2.1.0..bb
deleted file mode 100644
index 684bca03e1..0000000000
--- a/meta-python/recipes-devtools/python/python3-kivy_2.1.0..bb
+++ /dev/null
@@ -1,74 +0,0 @@
-SUMMARY = "Open source Python library for rapid development of applications \
- that make use of innovative user interfaces, such as multi-touch apps."
-HOMEPAGE = "https://kivy.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=22e7b4dd8140eec57fd7edfd9fa23dfc"
-
-inherit setuptools3 pkgconfig features_check
-PIP_INSTALL_PACKAGE = "Kivy"
-
-SRC_URI = "\
- git://github.com/kivy/kivy.git;protocol=https;branch=master \
-"
-
-# Kivy's setup files only look for GLES libraries for Android, iOS, RPi,
-# and mali-based OS's. We need to patch the setup file to tell Kivy setup
-# that our machine has GLES libaries installed as well
-# Also, if using SDL2 as backend, SDL2 needs to be configured wth gles
-SRC_URI += " \
- file://0001-add-support-for-glesv2.patch \
-"
-SRCREV = "960b95dc666753f59eff1b449124490fbec10184"
-
-S = "${WORKDIR}/git"
-
-PACKAGES += "${PN}-examples"
-FILES:${PN}-examples = "/usr/share/kivy-examples"
-
-USE_WAYLAND = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '1', '0', d)}"
-export USE_WAYLAND
-
-# if using Wayland, let's use pure Wayland (and not XWayland)
-# so do not build using X11 flag when we detect Wayland
-USE_X11 = " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '0', \
- bb.utils.contains('DISTRO_FEATURES', 'x11', '1', \
- '0', d), d)}"
-export USE_X11
-
-# Use OpenGL ES 2.0 library
-KIVY_GRAPHICS = "gles"
-export KIVY_GRAPHICS
-
-KIVY_CROSS_SYSROOT="${RECIPE_SYSROOT}"
-export KIVY_CROSS_SYSROOT
-
-REQUIRED_DISTRO_FEATURES += "x11 opengl"
-
-DEPENDS += " \
- gstreamer1.0 \
- gstreamer1.0-python \
- libsdl2 \
- libsdl2-ttf \
- libsdl2-image \
- libsdl2-mixer \
- pango \
- python3 \
- python3-cython-native \
-"
-
-RDEPENDS:${PN} = " \
- gstreamer1.0 \
- gstreamer1.0-python \
- libsdl2 \
- libsdl2-ttf \
- libsdl2-image \
- libsdl2-mixer \
- pango \
- python3 \
- python3-docutils \
- python3-fcntl \
- python3-image \
- python3-pillow \
- python3-pygments \
-"
diff --git a/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb b/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb
new file mode 100644
index 0000000000..991aa0f7d8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb
@@ -0,0 +1,72 @@
+SUMMARY = "Open source Python library for rapid development of applications \
+ that make use of innovative user interfaces, such as multi-touch apps."
+HOMEPAGE = "https://kivy.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6d3bc49400e35d5a2279d14c40dcfb09"
+
+inherit setuptools3 pkgconfig features_check
+
+# Kivy's setup files only look for GLES libraries for Android, iOS, RPi,
+# and mali-based OS's. We need to patch the setup file to tell Kivy setup
+# that our machine has GLES libaries installed as well
+# Also, if using SDL2 as backend, SDL2 needs to be configured with gles
+SRC_URI = "git://github.com/kivy/kivy.git;protocol=https;branch=stable \
+ file://0001-add-support-for-glesv2.patch \
+ "
+
+SRCREV = "9ef218027178115a66b417ae34b21f488bdd3617"
+
+S = "${WORKDIR}/git"
+
+PACKAGES += "${PN}-examples"
+FILES:${PN}-examples = "/usr/share/kivy-examples"
+
+USE_WAYLAND = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '1', '0', d)}"
+export USE_WAYLAND
+
+# if using Wayland, let's use pure Wayland (and not XWayland)
+# so do not build using X11 flag when we detect Wayland
+USE_X11 = " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '0', \
+ bb.utils.contains('DISTRO_FEATURES', 'x11', '1', \
+ '0', d), d)}"
+export USE_X11
+
+# Use OpenGL ES 2.0 library
+KIVY_GRAPHICS = "gles"
+export KIVY_GRAPHICS
+
+KIVY_CROSS_SYSROOT="${RECIPE_SYSROOT}"
+export KIVY_CROSS_SYSROOT
+
+REQUIRED_DISTRO_FEATURES += "opengl gobject-introspection-data"
+
+ANY_OF_DISTRO_FEATURES = "x11 wayland"
+
+DEPENDS += " \
+ gstreamer1.0 \
+ gstreamer1.0-python \
+ libsdl2 \
+ libsdl2-ttf \
+ libsdl2-image \
+ libsdl2-mixer \
+ pango \
+ python3 \
+ python3-cython-native \
+"
+
+RDEPENDS:${PN} = " \
+ gstreamer1.0 \
+ gstreamer1.0-python \
+ libsdl2 \
+ libsdl2-ttf \
+ libsdl2-image \
+ libsdl2-mixer \
+ pango \
+ python3 \
+ python3-docutils \
+ python3-fcntl \
+ python3-image \
+ python3-pillow \
+ python3-pygments \
+"
diff --git a/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.4.bb b/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.4.bb
deleted file mode 100644
index acc8bd5b6f..0000000000
--- a/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "A fast implementation of the Cassowary constraint solver"
-HOMEPAGE = "https://github.com/nucleic/kiwi"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f137eeae9cf8004d06830f6ab25b2d52"
-
-SRC_URI[sha256sum] = "d41997519fcba4a1e46eb4a2fe31bc12f0ff957b2b81bac28db24744f333e955"
-
-inherit pypi python_setuptools_build_meta
-
-DEPENDS += "\
- python3-cppy-native \
-"
-
-RDEPENDS:${PN} += "\
- python3-core \
- python3-setuptools \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.5.bb b/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.5.bb
new file mode 100644
index 0000000000..a1949b1138
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.5.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A fast implementation of the Cassowary constraint solver"
+HOMEPAGE = "https://github.com/nucleic/kiwi"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f137eeae9cf8004d06830f6ab25b2d52"
+
+SRC_URI[sha256sum] = "e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "\
+ python3-cppy-native \
+"
+
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-setuptools \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-langtable_0.0.60.bb b/meta-python/recipes-devtools/python/python3-langtable_0.0.60.bb
deleted file mode 100644
index eac069f041..0000000000
--- a/meta-python/recipes-devtools/python/python3-langtable_0.0.60.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "langtable is used to guess reasonable defaults for locale,\
-keyboard, territory"
-HOMEPAGE = "https://github.com/mike-fabian/langtable/"
-LICENSE = "GPL-3.0-or-later"
-SECTION = "devel/python"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI[sha256sum] = "ae77d62fe6002308ce6197310c4a933c4e13632bbaf7219a3533dc45d36223f8"
-
-inherit pypi setuptools3 python3native
-
-DISTUTILS_INSTALL_ARGS += " \
- --install-data=${datadir}/langtable"
-
-FILES:${PN} += "${datadir}/*"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-doctest \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-xml \
-"
diff --git a/meta-python/recipes-devtools/python/python3-langtable_0.0.65.bb b/meta-python/recipes-devtools/python/python3-langtable_0.0.65.bb
new file mode 100644
index 0000000000..fa9edc67d4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-langtable_0.0.65.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "langtable is used to guess reasonable defaults for locale,\
+keyboard, territory"
+HOMEPAGE = "https://github.com/mike-fabian/langtable/"
+LICENSE = "GPL-3.0-or-later"
+SECTION = "devel/python"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI[sha256sum] = "791ec5403859704e1dee4d2a056a30ec21d1e7bc040658ce62c40e0427ba4333"
+
+inherit pypi setuptools3 python3native
+
+DISTUTILS_INSTALL_ARGS += " \
+ --install-data=${datadir}/langtable"
+
+FILES:${PN} += "${datadir}/*"
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-doctest \
+ python3-logging \
+ python3-xml \
+"
diff --git a/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.10.0.bb b/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.10.0.bb
new file mode 100644
index 0000000000..263c46869f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.10.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A fast and thorough lazy object proxy"
+HOMEPAGE = "https://python-lazy-object-proxy.readthedocs.io/"
+LICENSE = "BSD-2-Clause"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d606e94f56c21c8e0cdde0b622dcdf57"
+
+DEPENDS += "python3-setuptools-scm-native python3-pip-native"
+
+SRC_URI[sha256sum] = "78247b6d45f43a52ef35c25b5581459e85117225408a4128a3daf8bf9648ac69"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.7.1.bb b/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.7.1.bb
deleted file mode 100644
index 4c20fcc861..0000000000
--- a/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.7.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "A fast and thorough lazy object proxy"
-HOMEPAGE = "https://python-lazy-object-proxy.readthedocs.io/"
-LICENSE = "BSD-2-Clause"
-SECTION = "devel/python"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9c5c2c74370826468065c5702b8a1fcf"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-pip-native"
-
-SRC_URI[sha256sum] = "d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-lazy_1.6.bb b/meta-python/recipes-devtools/python/python3-lazy_1.6.bb
new file mode 100644
index 0000000000..97517f89a6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lazy_1.6.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Lazy attributes are computed attributes that are evaluated only once, the first time they are used."
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7df3865e8640604acfa474235d2db76b"
+
+SRC_URI[sha256sum] = "7127324ec709e8324f08cb4611c1abe01776bda53bb9ce68dc5dfa46ca0ed3e9"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-libevdev_0.11.bb b/meta-python/recipes-devtools/python/python3-libevdev_0.11.bb
new file mode 100644
index 0000000000..27e336710c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-libevdev_0.11.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "python-libevdev is a Python wrapper around the libevdev C library."
+HOMEPAGE = "https://gitlab.freedesktop.org/libevdev/python-libevdev"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+SRC_URI[md5sum] = "34b48098c1fba26de79a0d67a17a588a"
+SRC_URI[sha256sum] = "e9ca006a4df2488a60bd9a740011ee948d81904be2364f017e560169508f560f"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "libevdev"
+
+RDEPENDS:${PN} += " \
+ libevdev \
+ python3-ctypes \
+"
diff --git a/meta-python/recipes-devtools/python/python3-license-expression/run-ptest b/meta-python/recipes-devtools/python/python3-license-expression/run-ptest
deleted file mode 100644
index 5cec711696..0000000000
--- a/meta-python/recipes-devtools/python/python3-license-expression/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-pytest
diff --git a/meta-python/recipes-devtools/python/python3-license-expression_30.0.0.bb b/meta-python/recipes-devtools/python/python3-license-expression_30.0.0.bb
deleted file mode 100644
index eeb91723e3..0000000000
--- a/meta-python/recipes-devtools/python/python3-license-expression_30.0.0.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Utility library to parse, compare, simplify and normalize license expressions"
-HOMEPAGE = "https://github.com/nexB/license-expression"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://apache-2.0.LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRC_URI[sha256sum] = "ad638292aa8493f84354909b517922cb823582c2ce2c4d880e42544a86bea8dd"
-
-inherit pypi ptest python_setuptools_build_meta
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-booleanpy \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-stringold \
- ${PYTHON_PN}-logging \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- install -d ${D}${PTEST_PATH}/src
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
- cp -rf ${S}/src/* ${D}${PTEST_PATH}/src/
-}
diff --git a/meta-python/recipes-devtools/python/python3-linux-procfs_0.7.3.bb b/meta-python/recipes-devtools/python/python3-linux-procfs_0.7.3.bb
new file mode 100644
index 0000000000..8c53d38ce3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-linux-procfs_0.7.3.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Python classes to extract information from the Linux kernel /proc files."
+HOMEPAGE = "https://git.kernel.org/pub/scm/libs/python/python-linux-procfs/python-linux-procfs.git/"
+SECTION = "devel/python"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6a6855782848d572347212f667a2d637"
+
+SRC_URI = "git://git.kernel.org/pub/scm/libs/python/python-linux-procfs/python-linux-procfs.git;branch=main"
+SRCREV = "59ecd1ba018141a02ffe59c16a9346991dfd0d48"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+RDEPENDS:${PN} += "python3-six"
diff --git a/meta-python/recipes-devtools/python/python3-lockfile_0.12.2.bb b/meta-python/recipes-devtools/python/python3-lockfile_0.12.2.bb
index b9dc4722af..af738e08ec 100644
--- a/meta-python/recipes-devtools/python/python3-lockfile_0.12.2.bb
+++ b/meta-python/recipes-devtools/python/python3-lockfile_0.12.2.bb
@@ -12,6 +12,9 @@ SRC_URI[sha256sum] = "6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361
inherit pypi setuptools3
DEPENDS += "python3-distutils-extra-native python3-pbr-native"
-RDEPENDS:${PN} += "python3-sqlite3"
+RDEPENDS:${PN} += " \
+ python3-io \
+ python3-sqlite3 \
+"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-lorem/run-ptest b/meta-python/recipes-devtools/python/python3-lorem/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lorem/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-lorem_0.1.1.bb b/meta-python/recipes-devtools/python/python3-lorem_0.1.1.bb
index 9ce7a6293c..97b3e72364 100644
--- a/meta-python/recipes-devtools/python/python3-lorem_0.1.1.bb
+++ b/meta-python/recipes-devtools/python/python3-lorem_0.1.1.bb
@@ -5,12 +5,25 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=5301c01b2bcdeedba23645f94db2f179"
SRC_URI[md5sum] = "e3f0064a94c13e19780eb724affdb426"
SRC_URI[sha256sum] = "785f4109a241fc2891e59705e85d065f6e6d3ed6ad91750a8cb54d4f3e59d934"
+SRC_URI += "\
+ file://run-ptest \
+"
+
PYPI_PACKAGE = "lorem"
-inherit pypi setuptools3
+inherit pypi setuptools3 ptest
CLEANBROKEN = "1"
RDEPENDS:${PN} += " \
python3 \
"
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb b/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
index 673d32c2d4..8cd60d3a0f 100644
--- a/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
+++ b/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
@@ -17,7 +17,6 @@ RDEPENDS:${PN} = " \
"
inherit setuptools3
-PIP_INSTALL_PACKAGE = "lrparsing"
S = "${WORKDIR}/lrparsing-${PV}"
diff --git a/meta-python/recipes-devtools/python/python3-lru-dict_1.1.8.bb b/meta-python/recipes-devtools/python/python3-lru-dict_1.1.8.bb
deleted file mode 100644
index b870bc0889..0000000000
--- a/meta-python/recipes-devtools/python/python3-lru-dict_1.1.8.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "A fixed size dict like container which evicts Least Recently Used (LRU) items once size limit is exceeded."
-HOMEPAGE = "https://github.com/amitdev/lru-dict"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9d10a486ee04034fdef5162fd791f153"
-
-SRC_URI[sha256sum] = "878bc8ef4073e5cfb953dfc1cf4585db41e8b814c0106abde34d00ee0d0b3115"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-lru-dict_1.3.0.bb b/meta-python/recipes-devtools/python/python3-lru-dict_1.3.0.bb
new file mode 100644
index 0000000000..e9535fa6f1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lru-dict_1.3.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A fixed size dict like container which evicts Least Recently Used (LRU) items once size limit is exceeded."
+HOMEPAGE = "https://github.com/amitdev/lru-dict"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9d10a486ee04034fdef5162fd791f153"
+
+SRC_URI[sha256sum] = "54fd1966d6bd1fcde781596cb86068214edeebff1db13a2cea11079e3fd07b6b"
+
+inherit pypi setuptools3
+
+SRC_URI += "${PYPI_SRC_URI}"
diff --git a/meta-python/recipes-devtools/python/python3-luma-core_2.3.1.bb b/meta-python/recipes-devtools/python/python3-luma-core_2.3.1.bb
deleted file mode 100644
index 1d5b146fa9..0000000000
--- a/meta-python/recipes-devtools/python/python3-luma-core_2.3.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "A component library to support SBC display drivers"
-DESCRIPTION = "A component library to support SBC display drivers"
-HOMEPAGE = "https://github.com/rm-hull/luma.core"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=3b1d500f5911ec7522f1f790d616e0ee"
-
-inherit pypi python_setuptools_build_meta
-
-SRC_URI[sha256sum] = "f293f5fff8946eea62af3a5d5d7da55c37d2b64aac6c9c90180a385da9f7d003"
-
-PYPI_PACKAGE = "luma.core"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-pillow \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-smbus2 \
-"
diff --git a/meta-python/recipes-devtools/python/python3-luma-core_2.4.2.bb b/meta-python/recipes-devtools/python/python3-luma-core_2.4.2.bb
new file mode 100644
index 0000000000..90967f8e56
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-luma-core_2.4.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "A component library to support SBC display drivers"
+DESCRIPTION = "A component library to support SBC display drivers"
+HOMEPAGE = "https://github.com/rm-hull/luma.core"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=2083293a38df91b8d470d3fe30069262"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "963c264164d4374f549d57db09599e0ca458cea1bd05e16939897619be4e6dbd"
+
+PYPI_PACKAGE = "luma.core"
+
+RDEPENDS:${PN} += " \
+ python3-pillow \
+ python3-threading \
+ python3-smbus2 \
+"
diff --git a/meta-python/recipes-devtools/python/python3-luma-oled_3.13.0.bb b/meta-python/recipes-devtools/python/python3-luma-oled_3.13.0.bb
new file mode 100644
index 0000000000..95f066affe
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-luma-oled_3.13.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A small library to drive an OLED device"
+DESCRIPTION = "\
+A small library to drive an OLED device with either SSD1306 , SSD1309, SSD1322, \
+SSD1325, SSD1327, SSD1331, SSD1351 or SH1106 chipset"
+HOMEPAGE = "https://github.com/rm-hull/luma.oled"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5ec447eb69733e20a55838de7e8cb991"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "7e2a0d6a4c968c64980255d681ec27914d9abd5a66a9019b289bf3ad050c2125"
+
+CLEANBROKEN = "1"
+
+PYPI_PACKAGE = "luma.oled"
+
+RDEPENDS:${PN} += " \
+ python3-luma-core \
+"
diff --git a/meta-python/recipes-devtools/python/python3-luma-oled_3.8.1.bb b/meta-python/recipes-devtools/python/python3-luma-oled_3.8.1.bb
deleted file mode 100644
index a551e46fcb..0000000000
--- a/meta-python/recipes-devtools/python/python3-luma-oled_3.8.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "A small library to drive an OLED device"
-DESCRIPTION = "\
-A small library to drive an OLED device with either SSD1306 , SSD1309, SSD1322, \
-SSD1325, SSD1327, SSD1331, SSD1351 or SH1106 chipset"
-HOMEPAGE = "https://github.com/rm-hull/luma.oled"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=c328c862c3335ad464e1c9a3ba574249"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "a9b445ecc686e9413ddac655544da21d801bbc6b94612736cf59283e6b92bcbb"
-
-CLEANBROKEN = "1"
-
-PYPI_PACKAGE = "luma.oled"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-luma-core \
-"
diff --git a/meta-python/recipes-devtools/python/python3-lz4/run-ptest b/meta-python/recipes-devtools/python/python3-lz4/run-ptest
index 1b245bcd8f..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-lz4/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-lz4/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -v
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-lz4_4.0.2.bb b/meta-python/recipes-devtools/python/python3-lz4_4.0.2.bb
deleted file mode 100644
index ad006e61b1..0000000000
--- a/meta-python/recipes-devtools/python/python3-lz4_4.0.2.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "python bindings for the lz4 compression library by Yann Collet"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6231efa4dd4811e62407314d90a57573"
-
-DEPENDS += " \
- lz4 \
- ${PYTHON_PN}-setuptools-scm-native \
- ${PYTHON_PN}-pkgconfig-native \
-"
-
-SRC_URI += "file://run-ptest"
-
-SRC_URI[sha256sum] = "083b7172c2938412ae37c3a090250bfdd9e4a6e855442594f86c3608ed12729b"
-
-inherit pkgconfig pypi python_setuptools_build_meta ptest
-
-RDEPENDS:${PN}-ptest += "${PYTHON_PN}-pytest ${PYTHON_PN}-multiprocessing ${PYTHON_PN}-psutil"
-
-do_install_ptest() {
- cp -rf ${S}/tests/ ${D}${PTEST_PATH}/
- # The stream API is experimental and not enabled yet, so don't ship the test suite
- rm -rf ${D}${PTEST_PATH}/tests/stream
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-lz4_4.3.3.bb b/meta-python/recipes-devtools/python/python3-lz4_4.3.3.bb
new file mode 100644
index 0000000000..746926da4e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lz4_4.3.3.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "python bindings for the lz4 compression library by Yann Collet"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6231efa4dd4811e62407314d90a57573"
+
+DEPENDS += " \
+ lz4 \
+ python3-setuptools-scm-native \
+ python3-pkgconfig-native \
+"
+
+SRC_URI += "file://run-ptest"
+
+SRC_URI[sha256sum] = "01fe674ef2889dbb9899d8a67361e0c4a2c833af5aeb37dd505727cf5d2a131e"
+
+inherit pkgconfig pypi python_setuptools_build_meta ptest
+
+RDEPENDS:${PN}-ptest += "\
+ python3-coverage \
+ python3-pytest \
+ python3-pytest-cov \
+ python3-pytest-runner \
+ python3-multiprocessing \
+ python3-psutil \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ cp -rf ${S}/tests/ ${D}${PTEST_PATH}/
+ # The stream API is experimental and not enabled yet, so don't ship the test suite
+ rm -rf ${D}${PTEST_PATH}/tests/stream
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch b/meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch
index f4c74384f9..0baadfcaa5 100644
--- a/meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch
+++ b/meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] setup.py: link in sysroot, not in host directories
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-Upstream-status: Unknown
+Upstream-Status: Pending [Unknown]
---
setup.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/meta-python/recipes-devtools/python/python3-m2crypto/avoid-host-contamination.patch b/meta-python/recipes-devtools/python/python3-m2crypto/avoid-host-contamination.patch
index 9d9b8449ba..3cd6f7c276 100644
--- a/meta-python/recipes-devtools/python/python3-m2crypto/avoid-host-contamination.patch
+++ b/meta-python/recipes-devtools/python/python3-m2crypto/avoid-host-contamination.patch
@@ -1,6 +1,6 @@
Filter out '/usr/include' for swig to avoid host contamination issue.
-Upstream-Status: Upstream-Status: Inappropriate [cross compile specific]
+Upstream-Status: Inappropriate [cross compile specific]
Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
diff --git a/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb b/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb
deleted file mode 100644
index 51a0dd676e..0000000000
--- a/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-SUMMARY = "A Python crypto and SSL toolkit"
-HOMEPAGE = "https://gitlab.com/m2crypto/m2crypto"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=b0e1f0b7d0ce8a62c18b1287b991800e"
-
-FILESEXTRAPATHS:prepend := "${THISDIR}/python-m2crypto:"
-
-SRC_URI += "file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch \
- file://cross-compile-platform.patch \
- file://avoid-host-contamination.patch \
- file://0001-setup.py-address-openssl-3.x-build-issue.patch \
- "
-SRC_URI[sha256sum] = "99f2260a30901c949a8dc6d5f82cd5312ffb8abc92e76633baf231bbbcb2decb"
-
-PYPI_PACKAGE = "M2Crypto"
-inherit pypi siteinfo setuptools3
-
-DEPENDS += "openssl swig-native"
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-distutils \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-smtpd \
- ${PYTHON_PN}-xmlrpc \
-"
-
-DISTUTILS_BUILD_ARGS += "build_ext --openssl=${STAGING_EXECPREFIXDIR} -I${STAGING_INCDIR}"
-DISTUTILS_INSTALL_ARGS += "build_ext --openssl=${STAGING_EXECPREFIXDIR}"
-
-SWIG_FEATURES:x86 = "-D__i386__"
-SWIG_FEATURES:x32 = "-D__ILP32__"
-
-SWIG_FEATURES ?= "-D__${HOST_ARCH}__ ${@['-D__ILP32__','-D__LP64__'][d.getVar('SITEINFO_BITS') != '32']}"
-
-SWIG_FEATURES:append:riscv64 = " -D__SIZEOF_POINTER__=${SITEINFO_BITS}/8 -D__riscv_xlen=${SITEINFO_BITS}"
-SWIG_FEATURES:append:riscv32 = " -D__SIZEOF_POINTER__=${SITEINFO_BITS}/8 -D__riscv_xlen=${SITEINFO_BITS}"
-SWIG_FEATURES:append:mipsarch = " -D_MIPS_SZPTR=${SITEINFO_BITS}"
-SWIG_FEATURES:append:powerpc64le = " -D__powerpc64__"
-export SWIG_FEATURES
-
-export STAGING_DIR
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-m2crypto_0.40.1.bb b/meta-python/recipes-devtools/python/python3-m2crypto_0.40.1.bb
new file mode 100644
index 0000000000..1d8c22d196
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-m2crypto_0.40.1.bb
@@ -0,0 +1,51 @@
+SUMMARY = "A Python crypto and SSL toolkit"
+HOMEPAGE = "https://gitlab.com/m2crypto/m2crypto"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=b0e1f0b7d0ce8a62c18b1287b991800e"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/python-m2crypto:"
+
+SRC_URI += "file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch \
+ file://cross-compile-platform.patch \
+ file://avoid-host-contamination.patch \
+ file://0001-setup.py-address-openssl-3.x-build-issue.patch \
+ "
+SRC_URI[sha256sum] = "bbfd113ec55708c05816252a4f09e4237df4f3bbfc8171cbbc33057d257bbb30"
+
+PYPI_PACKAGE = "M2Crypto"
+inherit pypi siteinfo setuptools3
+
+DEPENDS += "openssl swig-native"
+RDEPENDS:${PN} += "\
+ python3-datetime \
+ python3-setuptools \
+ python3-logging \
+ python3-netclient \
+ python3-netserver \
+ python3-numbers \
+ python3-xmlrpc \
+"
+
+DISTUTILS_BUILD_ARGS += "build_ext --openssl=${STAGING_EXECPREFIXDIR} -I${STAGING_INCDIR}"
+DISTUTILS_INSTALL_ARGS += "build_ext --openssl=${STAGING_EXECPREFIXDIR}"
+
+SWIG_FEATURES ?= "-D__${HOST_ARCH}__ ${@['-D__ILP32__','-D__LP64__'][d.getVar('SITEINFO_BITS') != '32']} -DOPENSSL_NO_FILENAMES"
+
+SWIG_FEATURES:append:riscv64 = " -D__SIZEOF_POINTER__=${SITEINFO_BITS}/8 -D__riscv_xlen=${SITEINFO_BITS}"
+SWIG_FEATURES:append:riscv32 = " -D__SIZEOF_POINTER__=${SITEINFO_BITS}/8 -D__riscv_xlen=${SITEINFO_BITS}"
+SWIG_FEATURES:append:mipsarch = " -D_MIPS_SZPTR=${SITEINFO_BITS}"
+SWIG_FEATURES:append:powerpc64le = " -D__powerpc64__"
+SWIG_FEATURES:append:x86 = " -D__i386__"
+SWIG_FEATURES:append:x32 = " -D__ILP32__"
+
+export SWIG_FEATURES
+
+export STAGING_DIR
+
+do_install:append() {
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/M2Crypto/SSL/__pycache__/*.cpython-*.pyc
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/M2Crypto/__pycache__/*.cpython-*.pyc
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-marshmallow/run-ptest b/meta-python/recipes-devtools/python/python3-marshmallow/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-marshmallow/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-marshmallow_3.18.0.bb b/meta-python/recipes-devtools/python/python3-marshmallow_3.18.0.bb
deleted file mode 100644
index c52ff30fda..0000000000
--- a/meta-python/recipes-devtools/python/python3-marshmallow_3.18.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Simplified object serialization in python"
-DESCRIPTION = "Marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes."
-AUTHOR = "Marius Kriegerowski <mk@quakesaver.net>"
-HOMEPAGE = "https://github.com/marshmallow-code/marshmallow"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "\
- file://LICENSE;md5=5bccd400dedfa74364481e56aacc0b4a \
- file://docs/license.rst;md5=13da439ad060419fb7cf364523017cfb"
-
-SRC_URI = "git://github.com/marshmallow-code/marshmallow.git;protocol=https;branch=dev"
-
-SRCREV = "2805f32461fc7801a5f7b6d83facf7cbb8bca278"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-
-PIP_INSTALL_PACKAGE = "marshmallow"
-
-RDEPENDS:${PN} += " \
- python3-core \
- python3-datetime \
- python3-netclient \
- python3-numbers \
- python3-json \
- python3-pprint \
- python3-packaging \
-"
diff --git a/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb b/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb
new file mode 100644
index 0000000000..bf1d8dd290
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-marshmallow_3.21.1.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Simplified object serialization in python"
+DESCRIPTION = "Marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes."
+HOMEPAGE = "https://github.com/marshmallow-code/marshmallow"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "\
+ file://LICENSE;md5=27586b20700d7544c06933afe56f7df4 \
+ file://docs/license.rst;md5=13da439ad060419fb7cf364523017cfb"
+
+SRC_URI[sha256sum] = "4e65e9e0d80fc9e609574b9983cf32579f305c718afb30d7233ab818571768c3"
+
+inherit python_flit_core pypi ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-pytz \
+ python3-simplejson \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ rm -rf ${S}/tests/mypy_test_cases
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-datetime \
+ python3-email \
+ python3-json \
+ python3-numbers \
+ python3-pprint \
+ python3-packaging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-matplotlib-inline_0.1.2.bb b/meta-python/recipes-devtools/python/python3-matplotlib-inline_0.1.2.bb
deleted file mode 100644
index f060f93337..0000000000
--- a/meta-python/recipes-devtools/python/python3-matplotlib-inline_0.1.2.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Inline Matplotlib backend for Jupyter"
-HOMEPAGE = "https://pypi.org/project/matplotlib-inline/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c2728819a4288030f51c594327977be0"
-
-SRC_URI[sha256sum] = "f41d5ff73c9f5385775d5c0bc13b424535c8402fe70ea8210f93e11f3683993e"
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python3-matplotlib-inline_0.1.6.bb b/meta-python/recipes-devtools/python/python3-matplotlib-inline_0.1.6.bb
new file mode 100644
index 0000000000..13210b9060
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-matplotlib-inline_0.1.6.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Inline Matplotlib backend for Jupyter"
+HOMEPAGE = "https://pypi.org/project/matplotlib-inline/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d4692a0eb42ca54892399db2cb35e61e"
+
+SRC_URI[sha256sum] = "f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"
+
+inherit pypi
diff --git a/meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch b/meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch
index 25c49afb97..aea8f62ea7 100644
--- a/meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch
+++ b/meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch
@@ -4,20 +4,34 @@ Upstream-Status: Inappropriate [disable feature]
Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
+Update patch to fit on 3.7.2.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+
+diff --git a/setup.py b/setup.py
+index 0bea13fa6f..f39d8fc871 100644
--- a/setup.py
+++ b/setup.py
-@@ -316,8 +316,6 @@ setup( # Finally, pass this all along t
- setup_requires=[
- "certifi>=2020.06.20",
- "numpy>=1.17",
-- "setuptools_scm>=4,<7",
-- "setuptools_scm_git_archive",
- ],
- install_requires=[
- "cycler>=0.10",
+@@ -327,13 +327,7 @@ setup( # Finally, pass this all along to setuptools to do the heavy lifting.
+ "pillow>=6.2.0",
+ "pyparsing>=2.3.1,<3.1",
+ "python-dateutil>=2.7",
+- ] + (
+- # Installing from a git checkout that is not producing a wheel.
+- ["setuptools_scm>=7"] if (
+- Path(__file__).with_name(".git").exists() and
+- os.environ.get("CIBUILDWHEEL", "0") != "1"
+- ) else []
+- ),
++ ],
+ extras_require={
+ ':python_version<"3.10"': [
+ "importlib-resources>=3.2.0",
+diff --git a/setupext.py b/setupext.py
+index a898d642d6..474172ff8f 100644
--- a/setupext.py
+++ b/setupext.py
-@@ -64,40 +64,7 @@ def get_from_cache_or_download(url, sha)
+@@ -66,40 +66,7 @@ def get_from_cache_or_download(url, sha):
BytesIO
The file loaded into memory.
"""
diff --git a/meta-python/recipes-devtools/python/python3-matplotlib_3.5.3.bb b/meta-python/recipes-devtools/python/python3-matplotlib_3.5.3.bb
deleted file mode 100644
index 1a0b93b030..0000000000
--- a/meta-python/recipes-devtools/python/python3-matplotlib_3.5.3.bb
+++ /dev/null
@@ -1,66 +0,0 @@
-SUMMARY = "matplotlib: plotting with Python"
-DESCRIPTION = "\
-Matplotlib is a Python 2D plotting library which produces \
-publication-quality figures in a variety of hardcopy formats \
-and interactive environments across platforms."
-HOMEPAGE = "https://github.com/matplotlib/matplotlib"
-SECTION = "devel/python"
-LICENSE = "PSF-2.0"
-LIC_FILES_CHKSUM = "\
- file://setup.py;beginline=296;endline=296;md5=20e7ab4d2b2b1395a0e4ab800181eb96 \
- file://LICENSE/LICENSE;md5=afec61498aa5f0c45936687da9a53d74 \
-"
-
-DEPENDS = "\
- freetype \
- libpng \
- python3-numpy-native \
- python3-pip-native \
- python3-dateutil-native \
- python3-pytz-native \
- python3-certifi-native \
- python3-setuptools-scm-native \
-"
-SRC_URI[sha256sum] = "339cac48b80ddbc8bfd05daae0a3a73414651a8596904c2a881cfd1edb65f26c"
-
-inherit pypi setuptools3 pkgconfig
-
-# Stop the component from attempting to download when it detects a missing
-# dependency
-SRC_URI += "file://matplotlib-disable-download.patch"
-
-# This python module requires a full copy of freetype-2.6.1
-SRC_URI += "https://downloads.sourceforge.net/project/freetype/freetype2/2.6.1/freetype-2.6.1.tar.gz;name=freetype;subdir=matplotlib-${PV}/build"
-SRC_URI[freetype.sha256sum] = "0a3c7dfbda6da1e8fce29232e8e96d987ababbbf71ebc8c75659e4132c367014"
-
-# This python module requires a full copy of 'qhull-2020'
-SRC_URI += "http://www.qhull.org/download/qhull-2020-src-8.0.2.tgz;name=qhull;subdir=matplotlib-${PV}/build"
-SRC_URI[qhull.sha256sum] = "b5c2d7eb833278881b952c8a52d20179eab87766b00b865000469a45c1838b7e"
-
-# LTO with clang needs lld
-LDFLAGS:append:toolchain-clang = " -fuse-ld=lld"
-LDFLAGS:remove:toolchain-clang:mips = "-fuse-ld=lld"
-RDEPENDS:${PN} = "\
- freetype \
- libpng \
- python3-numpy \
- python3-pyparsing \
- python3-cycler \
- python3-dateutil \
- python3-kiwisolver \
- python3-pytz \
- python3-pillow \
- python3-packaging \
-"
-
-ENABLELTO:toolchain-clang:riscv64 = "echo enable_lto = False >> ${S}/mplsetup.cfg"
-ENABLELTO:toolchain-clang:riscv32 = "echo enable_lto = False >> ${S}/mplsetup.cfg"
-ENABLELTO:toolchain-clang:mips = "echo enable_lto = False >> ${S}/mplsetup.cfg"
-
-do_compile:prepend() {
- echo [libs] > ${S}/mplsetup.cfg
- echo system_freetype = True >> ${S}/mplsetup.cfg
- ${ENABLELTO}
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb b/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
new file mode 100644
index 0000000000..72c369100a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
@@ -0,0 +1,70 @@
+SUMMARY = "matplotlib: plotting with Python"
+DESCRIPTION = "\
+Matplotlib is a Python 2D plotting library which produces \
+publication-quality figures in a variety of hardcopy formats \
+and interactive environments across platforms."
+HOMEPAGE = "https://github.com/matplotlib/matplotlib"
+SECTION = "devel/python"
+LICENSE = "PSF-2.0"
+LIC_FILES_CHKSUM = "\
+ file://setup.py;beginline=293;endline=293;md5=20e7ab4d2b2b1395a0e4ab800181eb96 \
+ file://LICENSE/LICENSE;md5=afec61498aa5f0c45936687da9a53d74 \
+"
+
+DEPENDS = "\
+ freetype \
+ libpng \
+ python3-numpy-native \
+ python3-pip-native \
+ python3-dateutil-native \
+ python3-pytz-native \
+ python3-certifi-native \
+ python3-setuptools-scm-native \
+ python3-pybind11-native \
+"
+SRC_URI[sha256sum] = "a8cdb91dddb04436bd2f098b8fdf4b81352e68cf4d2c6756fcc414791076569b"
+
+inherit pypi setuptools3 pkgconfig
+
+# Stop the component from attempting to download when it detects a missing
+# dependency
+SRC_URI += "file://matplotlib-disable-download.patch \
+"
+
+# This python module requires a full copy of freetype-2.6.1
+SRC_URI += "https://downloads.sourceforge.net/project/freetype/freetype2/2.6.1/freetype-2.6.1.tar.gz;name=freetype;subdir=matplotlib-${PV}/build"
+SRC_URI[freetype.sha256sum] = "0a3c7dfbda6da1e8fce29232e8e96d987ababbbf71ebc8c75659e4132c367014"
+
+# This python module requires a full copy of 'qhull-2020'
+SRC_URI += "http://www.qhull.org/download/qhull-2020-src-8.0.2.tgz;name=qhull;subdir=matplotlib-${PV}/build"
+SRC_URI[qhull.sha256sum] = "b5c2d7eb833278881b952c8a52d20179eab87766b00b865000469a45c1838b7e"
+
+# LTO with clang needs lld
+LDFLAGS:append:toolchain-clang = " -fuse-ld=lld"
+LDFLAGS:remove:toolchain-clang:mips = "-fuse-ld=lld"
+LDFLAGS:remove:toolchain-clang:riscv64 = "-fuse-ld=lld"
+LDFLAGS:remove:toolchain-clang:riscv32 = "-fuse-ld=lld"
+RDEPENDS:${PN} = "\
+ freetype \
+ libpng \
+ python3-numpy \
+ python3-pyparsing \
+ python3-cycler \
+ python3-dateutil \
+ python3-kiwisolver \
+ python3-pytz \
+ python3-pillow \
+ python3-packaging \
+"
+
+ENABLELTO:toolchain-clang:riscv64 = "echo enable_lto = False >> ${S}/mplsetup.cfg"
+ENABLELTO:toolchain-clang:riscv32 = "echo enable_lto = False >> ${S}/mplsetup.cfg"
+ENABLELTO:toolchain-clang:mips = "echo enable_lto = False >> ${S}/mplsetup.cfg"
+
+do_compile:prepend() {
+ echo [libs] > ${S}/mplsetup.cfg
+ echo system_freetype = True >> ${S}/mplsetup.cfg
+ ${ENABLELTO}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-mccabe_0.7.0.bb b/meta-python/recipes-devtools/python/python3-mccabe_0.7.0.bb
index a2c72fcc99..5304917842 100644
--- a/meta-python/recipes-devtools/python/python3-mccabe_0.7.0.bb
+++ b/meta-python/recipes-devtools/python/python3-mccabe_0.7.0.bb
@@ -8,4 +8,6 @@ SRC_URI[sha256sum] = "348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f
inherit pypi setuptools3
-DEPENDS += "${PYTHON_PN}-pytest-runner-native"
+DEPENDS += "python3-pytest-runner-native"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-meld3_2.0.1.bb b/meta-python/recipes-devtools/python/python3-meld3_2.0.1.bb
index 1223ae9532..7ebf9f1411 100644
--- a/meta-python/recipes-devtools/python/python3-meld3_2.0.1.bb
+++ b/meta-python/recipes-devtools/python/python3-meld3_2.0.1.bb
@@ -12,3 +12,8 @@ SRC_URI[md5sum] = "1add16caefc9e6b82ef4f40532cb4918"
SRC_URI[sha256sum] = "3ea266994f1aa83507679a67b493b852c232a7905e29440a6b868558cad5e775"
inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-cgitb \
+ python3-xml \
+"
diff --git a/meta-python/recipes-devtools/python/python3-mock_4.0.3.bb b/meta-python/recipes-devtools/python/python3-mock_4.0.3.bb
deleted file mode 100644
index 8f2305b50b..0000000000
--- a/meta-python/recipes-devtools/python/python3-mock_4.0.3.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "A Python Mocking and Patching Library for Testing"
-HOMEPAGE = "https://pypi.python.org/pypi/mock"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=de9dfbf780446b18aab11f00baaf5b7e"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "${PYTHON_PN}-prettytable \
- ${PYTHON_PN}-cmd2 \
- ${PYTHON_PN}-pyparsing \
- ${PYTHON_PN}-mccabe \
- ${PYTHON_PN}-pep8 \
- ${PYTHON_PN}-pyflakes"
-
-SRC_URI[sha256sum] = "7d3fbbde18228f4ff2f1f119a45cdffa458b4c0dee32eb4d2bb2f82554bac7bc"
diff --git a/meta-python/recipes-devtools/python/python3-mock_5.1.0.bb b/meta-python/recipes-devtools/python/python3-mock_5.1.0.bb
new file mode 100644
index 0000000000..d9ecb9d4c8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-mock_5.1.0.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "A Python Mocking and Patching Library for Testing"
+HOMEPAGE = "https://pypi.python.org/pypi/mock"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=de9dfbf780446b18aab11f00baaf5b7e"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-cmd2 \
+ python3-mccabe \
+ python3-pep8 \
+ python3-prettytable \
+ python3-pyflakes \
+ python3-pyparsing \
+ python3-unittest \
+"
+
+SRC_URI[sha256sum] = "5e96aad5ccda4718e0a229ed94b2024df75cc2d55575ba5762d31f5767b8767d"
diff --git a/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb b/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
index 2af7b57921..aacc32a6d6 100644
--- a/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
+++ b/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
@@ -11,5 +11,3 @@ SRC_URI = "git://github.com/atdt/monotonic.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
inherit setuptools3
-
-PIP_INSTALL_PACKAGE = "monotonic"
diff --git a/meta-python/recipes-devtools/python/python3-moteus/0001-lib-python-remove-self-import-from-setup.py.patch b/meta-python/recipes-devtools/python/python3-moteus/0001-lib-python-remove-self-import-from-setup.py.patch
new file mode 100644
index 0000000000..10acd7b8c1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-moteus/0001-lib-python-remove-self-import-from-setup.py.patch
@@ -0,0 +1,32 @@
+From 7490ac4629c7fe0dc329647e6e000d4bc13c610d Mon Sep 17 00:00:00 2001
+From: Richard Leitner <dev@g0hl1n.net>
+Date: Wed, 24 Jan 2024 00:49:45 +0100
+Subject: [PATCH] lib: python: remove self-import from setup.py
+
+Importing moteus itself within the setup.py creates some kind of a
+chicken-and-egg problem. Furthermore it isn't used anywhere within
+setup.py. Therefore remove the corresponding import.
+
+Signed-off-by: Richard Leitner <dev@g0hl1n.net>
+
+Upstream-Status: Backport [https://github.com/mjbots/moteus/commit/7490ac4629c7fe0dc329647e6e000d4bc13c610d]
+---
+ setup.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 2731685..6c6064d 100644
+--- a/setup.py
++++ b/setup.py
+@@ -17,8 +17,6 @@
+ import setuptools
+ import pathlib
+
+-import moteus
+-
+ here = pathlib.Path(__file__).parent.resolve()
+
+ # Get the long description from the README file
+--
+2.40.1
+
diff --git a/meta-python/recipes-devtools/python/python3-moteus_0.3.67.bb b/meta-python/recipes-devtools/python/python3-moteus_0.3.67.bb
new file mode 100644
index 0000000000..3c93ee44ff
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-moteus_0.3.67.bb
@@ -0,0 +1,19 @@
+SUMMARY = "moteus brushless controller library and tools"
+HOMEPAGE = "https://github.com/mjbots/moteus"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=3;endline=9;md5=24025d3c660abfc62a83f0e709a45e76"
+
+inherit pypi setuptools3
+
+SRC_URI += "file://0001-lib-python-remove-self-import-from-setup.py.patch"
+
+SRC_URI[sha256sum] = "a2122f20f59b8962057cf8d3fb583e0aa19006eaf2cde49e30027a4d1b8bf925"
+
+S = "${WORKDIR}/moteus-${PV}"
+
+RDEPENDS:${PN} += "\
+ python3-can \
+ python3-importlib-metadata \
+ python3-pyelftools \
+ python3-pyserial \
+"
diff --git a/meta-python/recipes-devtools/python/python3-mpmath_1.2.1.bb b/meta-python/recipes-devtools/python/python3-mpmath_1.2.1.bb
deleted file mode 100644
index 3337df4903..0000000000
--- a/meta-python/recipes-devtools/python/python3-mpmath_1.2.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-# This recipe is adapted from one in meta-jupyter:
-# https://github.com/Xilinx/meta-jupyter/blob/master/recipes-python/python3-mpmath_0.19.bb
-
-SUMMARY = "Python library for arbitrary-precision floating-point arithmetic"
-HOMEPAGE = "https://pypi.org/project/mpmath/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=71970bd3749eebe1bfef9f1efff5b37a"
-
-SRC_URI[sha256sum] = "79ffb45cf9f4b101a807595bcb3e72e0396202e0b1d25d689134b48c4216a81a"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-RDEPENDS:${PN} += "python3-image"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-mpmath_1.3.0.bb b/meta-python/recipes-devtools/python/python3-mpmath_1.3.0.bb
new file mode 100644
index 0000000000..236fbd85bc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-mpmath_1.3.0.bb
@@ -0,0 +1,19 @@
+# This recipe is adapted from one in meta-jupyter:
+# https://github.com/Xilinx/meta-jupyter/blob/master/recipes-python/python3-mpmath_0.19.bb
+
+SUMMARY = "Python library for arbitrary-precision floating-point arithmetic"
+HOMEPAGE = "https://pypi.org/project/mpmath/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bde3c575382996b75d85702949512751"
+
+SRC_URI[sha256sum] = "7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f"
+
+inherit pypi setuptools3
+
+DEPENDS += "python3-setuptools-scm-native"
+RDEPENDS:${PN} += " \
+ python3-image \
+ python3-math \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-msgpack/run-ptest b/meta-python/recipes-devtools/python/python3-msgpack/run-ptest
index 5cec711696..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-msgpack/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-msgpack/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-msgpack_1.0.4.bb b/meta-python/recipes-devtools/python/python3-msgpack_1.0.4.bb
deleted file mode 100644
index a796d7cb57..0000000000
--- a/meta-python/recipes-devtools/python/python3-msgpack_1.0.4.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "MessagePack (de)serializer"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751"
-
-PYPI_PACKAGE = "msgpack"
-inherit pypi setuptools3 ptest
-
-SRC_URI[sha256sum] = "f5d869c18f030202eb412f08b28d2afeea553d6613aee89e200d7aca7ef01f5f"
-
-RDEPENDS:${PN}:class-target += "\
- ${PYTHON_PN}-io \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/test
- cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
-}
diff --git a/meta-python/recipes-devtools/python/python3-msgpack_1.0.7.bb b/meta-python/recipes-devtools/python/python3-msgpack_1.0.7.bb
new file mode 100644
index 0000000000..5180301f7b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-msgpack_1.0.7.bb
@@ -0,0 +1,27 @@
+SUMMARY = "MessagePack (de)serializer"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI[sha256sum] = "572efc93db7a4d27e404501975ca6d2d9775705c2d922390d878fcf768d92c87"
+
+RDEPENDS:${PN}:class-target += "\
+ python3-io \
+"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/test
+ cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
+}
diff --git a/meta-python/recipes-devtools/python/python3-msm_0.8.8.bb b/meta-python/recipes-devtools/python/python3-msm_0.8.8.bb
index 848b25dae8..966ff86dee 100644
--- a/meta-python/recipes-devtools/python/python3-msm_0.8.8.bb
+++ b/meta-python/recipes-devtools/python/python3-msm_0.8.8.bb
@@ -8,10 +8,18 @@ SRC_URI[sha256sum] = "a502aee54917cd394217b31c977a1ba3d9541a0120e0a045c49fd77b32
inherit pypi setuptools3
-RDEPENDS:${PN} += "\
- python3-pako \
- python3-monotonic \
+RDEPENDS:${PN} += " \
python3-appdirs \
+ python3-git \
+ python3-fasteners \
+ python3-io \
+ python3-json \
+ python3-lazy \
+ python3-monotonic \
+ python3-multiprocessing \
+ python3-pako \
+ python3-pyyaml \
+ python3-requests \
"
do_install:append() {
diff --git a/meta-python/recipes-devtools/python/python3-multidict/run-ptest b/meta-python/recipes-devtools/python/python3-multidict/run-ptest
index 5cec711696..d74acaf564 100644
--- a/meta-python/recipes-devtools/python/python3-multidict/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-multidict/run-ptest
@@ -1,3 +1,2 @@
#!/bin/sh
-
-pytest
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-multidict_6.0.2.bb b/meta-python/recipes-devtools/python/python3-multidict_6.0.2.bb
deleted file mode 100644
index b0e111d643..0000000000
--- a/meta-python/recipes-devtools/python/python3-multidict_6.0.2.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Multidicts are useful for working with HTTP headers, URL query args etc."
-HOMEPAGE = "https://github.com/aio-libs/multidict/"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=84c63e2bcd84e619d249af5181e2147f"
-
-SRC_URI[sha256sum] = "5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-multidict_6.0.5.bb b/meta-python/recipes-devtools/python/python3-multidict_6.0.5.bb
new file mode 100644
index 0000000000..b12e180d02
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-multidict_6.0.5.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Multidicts are useful for working with HTTP headers, URL query args etc."
+HOMEPAGE = "https://github.com/aio-libs/multidict/"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b4fef6e4b0828c2401fb983363985b39"
+
+inherit pypi setuptools3 ptest
+
+PV .= "+git"
+
+SRCREV = "a9b281b2ef4ab25d95d6b268aa88c428e75c3696"
+PYPI_SRC_URI = "git://github.com/aio-libs/multidict;branch=master;protocol=https"
+S = "${WORKDIR}/git"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-pytest-cov \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-multivolumefile_0.2.3.bb b/meta-python/recipes-devtools/python/python3-multivolumefile_0.2.3.bb
new file mode 100644
index 0000000000..2fd698138e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-multivolumefile_0.2.3.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Multi volume file wrapper library"
+HOMEPAGE = "https://codeberg.org/miurahr/multivolume"
+LICENSE = "LGPL-2.1-or-later"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI[sha256sum] = "a0648d0aafbc96e59198d5c17e9acad7eb531abea51035d08ce8060dcad709d6"
+
+inherit python_setuptools_build_meta pypi
+
+DEPENDS += " \
+ python3-setuptools-scm-native \
+ python3-toml-native \
+ python3-wheel-native \
+"
+
+RDEPENDS:${PN} += "\
+ python3-io \
+ python3-core \
+ python3-mmap \
+"
diff --git a/meta-python/recipes-devtools/python/python3-mypy-extensions_0.4.3.bb b/meta-python/recipes-devtools/python/python3-mypy-extensions_0.4.3.bb
deleted file mode 100644
index 83ac5362d6..0000000000
--- a/meta-python/recipes-devtools/python/python3-mypy-extensions_0.4.3.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Experimental type system extensions for programs checked with the mypy typechecker"
-HOMEPAGE = "https://github.com/python/mypy_extensions"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0fe3219e2470a78c0d1837019b8b426e"
-
-PYPI_PACKAGE = "mypy_extensions"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-mypy-extensions_1.0.0.bb b/meta-python/recipes-devtools/python/python3-mypy-extensions_1.0.0.bb
new file mode 100644
index 0000000000..4c431431c2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-mypy-extensions_1.0.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Experimental type system extensions for programs checked with the mypy typechecker"
+HOMEPAGE = "https://github.com/python/mypy_extensions"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0fe3219e2470a78c0d1837019b8b426e"
+
+PYPI_PACKAGE = "mypy_extensions"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-mypy_0.971.bb b/meta-python/recipes-devtools/python/python3-mypy_0.971.bb
deleted file mode 100644
index 31fcb06c9e..0000000000
--- a/meta-python/recipes-devtools/python/python3-mypy_0.971.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Optional static typing for Python 3 and 2 (PEP 484)"
-HOMEPAGE = "https://github.com/python/mypy"
-LICENSE = "MIT & Python-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6ba8ec528da02073b7e1f4124c0f836f"
-
-PYPI_PACKAGE = "mypy"
-
-inherit pypi python_setuptools_build_meta
-
-SRC_URI[sha256sum] = "40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56"
-
-BBCLASSEXTEND = "native"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-mypy-extensions \
- ${PYTHON_PN}-typed-ast \
- ${PYTHON_PN}-typing-extensions \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-difflib \
- ${PYTHON_PN}-toml \
-"
diff --git a/meta-python/recipes-devtools/python/python3-mypy_1.9.0.bb b/meta-python/recipes-devtools/python/python3-mypy_1.9.0.bb
new file mode 100644
index 0000000000..e51264f8a9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-mypy_1.9.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Optional static typing for Python 3 and 2 (PEP 484)"
+HOMEPAGE = "https://github.com/python/mypy"
+LICENSE = "MIT & Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8d62fd8f8648cb018e52857347e340b9"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974"
+
+BBCLASSEXTEND = "native"
+
+DEPENDS += " \
+ python3-mypy-extensions-native \
+ python3-types-psutil-native \
+ python3-types-setuptools-native \
+ python3-typing-extensions-native \
+"
+
+RDEPENDS:${PN} += " \
+ python3-modules \
+ python3-mypy-extensions \
+ python3-typing-extensions \
+"
diff --git a/meta-python/recipes-devtools/python/python3-natsort_8.2.0.bb b/meta-python/recipes-devtools/python/python3-natsort_8.2.0.bb
deleted file mode 100644
index bc142195ed..0000000000
--- a/meta-python/recipes-devtools/python/python3-natsort_8.2.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Simple yet flexible natural sorting in Python."
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=58db8ac9e152dd9b700f4d39ff40a31a"
-
-PYPI_PACKAGE = "natsort"
-SRC_URI[sha256sum] = "57f85b72c688b09e053cdac302dd5b5b53df5f73ae20b4874fcbffd8bf783d11"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "python3-fastnumbers python3-icu"
diff --git a/meta-python/recipes-devtools/python/python3-natsort_8.4.0.bb b/meta-python/recipes-devtools/python/python3-natsort_8.4.0.bb
new file mode 100644
index 0000000000..206e322fbd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-natsort_8.4.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Simple yet flexible natural sorting in Python."
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32431d1b650010945da4e078011c8fa"
+
+PYPI_PACKAGE = "natsort"
+SRC_URI[sha256sum] = "45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "python3-fastnumbers python3-icu"
diff --git a/meta-python/recipes-devtools/python/python3-netaddr/run-ptest b/meta-python/recipes-devtools/python/python3-netaddr/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-netaddr/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-netaddr_0.8.0.bb b/meta-python/recipes-devtools/python/python3-netaddr_0.8.0.bb
deleted file mode 100644
index ad03eec851..0000000000
--- a/meta-python/recipes-devtools/python/python3-netaddr_0.8.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "A network address manipulation library for Python."
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e6345d695ffe3776f68a56fe7962db44"
-
-SRC_URI[md5sum] = "34cad578473b66ad77bc3b2a7613ed4a"
-SRC_URI[sha256sum] = "d6cc57c7a07b1d9d2e917aa8b36ae8ce61c35ba3fcd1b83ca31c5a0ee2b5a243"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-xml \
-"
diff --git a/meta-python/recipes-devtools/python/python3-netaddr_1.2.1.bb b/meta-python/recipes-devtools/python/python3-netaddr_1.2.1.bb
new file mode 100644
index 0000000000..bedf0dab01
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-netaddr_1.2.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "A network address manipulation library for Python."
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=8afa43eca873b71d5d85dd0be1f707fa"
+
+SRC_URI[sha256sum] = "6eb8fedf0412c6d294d06885c110de945cf4d22d2b510d0404f4e06950857987"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/netaddr/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+do_install_ptest:append:libc-musl () {
+ sed -i -e "/--automake/ s/$/ -k 'not test_strategy_ipv6'/" ${D}${PTEST_PATH}/run-ptest
+}
diff --git a/meta-python/recipes-devtools/python/python3-networkx_2.8.6.bb b/meta-python/recipes-devtools/python/python3-networkx_2.8.6.bb
deleted file mode 100644
index 3eebfcf983..0000000000
--- a/meta-python/recipes-devtools/python/python3-networkx_2.8.6.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "Python package for creating and manipulating graphs and networks"
-HOMEPAGE = "http://networkx.github.io/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=44614b6df7cf3c19be69d0a945e29904"
-
-SRC_URI[sha256sum] = "bd2b7730300860cbd2dafe8e5af89ff5c9a65c3975b352799d87a6238b4301a6"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-decorator \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-html \
- ${PYTHON_PN}-xml \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-profile \
- ${PYTHON_PN}-threading \
- "
diff --git a/meta-python/recipes-devtools/python/python3-networkx_3.1.bb b/meta-python/recipes-devtools/python/python3-networkx_3.1.bb
new file mode 100644
index 0000000000..2f2c3cfc3d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-networkx_3.1.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Python package for creating and manipulating graphs and networks"
+HOMEPAGE = "http://networkx.github.io/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4266362445d56549f7b8973d02e5f22a"
+
+SRC_URI[sha256sum] = "de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-decorator \
+ python3-netclient \
+ python3-compression \
+ python3-numbers \
+ python3-pickle \
+ python3-html \
+ python3-xml \
+ python3-json \
+ python3-profile \
+ python3-threading \
+ "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-ninja-syntax_1.7.2.bb b/meta-python/recipes-devtools/python/python3-ninja-syntax_1.7.2.bb
new file mode 100644
index 0000000000..2f94f7a6a5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ninja-syntax_1.7.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Python module for generating .ninja files."
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=38;endline=38;md5=f5441d6119564d4094cf77bee7cf7b0a"
+
+SRC_URI[sha256sum] = "342dc97b9e88a6495bae22953ee6063f91d2f03db6f727b62ba5c3092a18ef1f"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "ninja_syntax"
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/ninja_syntax/"
+UPSTREAM_CHECK_REGEX = "/ninja_syntax/(?P<pver>(\d+[\.\-_]*)+)"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-ninja/CMakeLists.txt b/meta-python/recipes-devtools/python/python3-ninja/CMakeLists.txt
new file mode 100644
index 0000000000..04fa451e72
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ninja/CMakeLists.txt
@@ -0,0 +1,9 @@
+cmake_minimum_required(VERSION 3.15)
+
+project(NinjaPythonDistributions)
+
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_MODULE_PATH})
+
+install(CODE "
+ message(STATUS \"Install ninja project\")
+")
diff --git a/meta-python/recipes-devtools/python/python3-ninja/no-scikit-build.patch b/meta-python/recipes-devtools/python/python3-ninja/no-scikit-build.patch
new file mode 100644
index 0000000000..b7d191e244
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ninja/no-scikit-build.patch
@@ -0,0 +1,31 @@
+We don't need to build ninja so there's no need to use scikit-build,
+as we just need the python module with it's one ninja() function.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/pyproject.toml b/pyproject.toml
+index b895c20..577b642 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -2,7 +2,6 @@
+ requires = [
+ "setuptools >=42",
+ "setuptools-scm[toml]",
+- "scikit-build",
+ ]
+ build-backend = "setuptools.build_meta"
+
+diff --git a/setup.py b/setup.py
+index dbe1fbc..3259754 100755
+--- a/setup.py
++++ b/setup.py
+@@ -5,7 +5,7 @@ import os
+ import sys
+ from distutils.text_file import TextFile
+
+-from skbuild import setup
++from setuptools import setup
+
+ # Add current folder to path
+ # This is required to import versioneer in an isolated pip build
diff --git a/meta-python/recipes-devtools/python/python3-ninja/run-ninja-from-path.patch b/meta-python/recipes-devtools/python/python3-ninja/run-ninja-from-path.patch
new file mode 100644
index 0000000000..0068efcc3a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ninja/run-ninja-from-path.patch
@@ -0,0 +1,44 @@
+There's no need to hunt around source or install trees when we're just running ninja
+from PATH.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/src/ninja/__init__.py b/src/ninja/__init__.py
+index f83767e..31bb926 100644
+--- a/src/ninja/__init__.py
++++ b/src/ninja/__init__.py
+@@ -19,32 +19,9 @@ except ImportError:
+ os.path.dirname(__file__), '../../Ninja-src/misc')))
+ from ninja_syntax import Writer, escape, expand # noqa: F401
+
+-DATA = os.path.join(os.path.dirname(__file__), 'data')
+-
+-# Support running tests from the source tree
+-if not os.path.exists(DATA):
+- from skbuild.constants import CMAKE_INSTALL_DIR as SKBUILD_CMAKE_INSTALL_DIR
+- from skbuild.constants import set_skbuild_plat_name
+-
+- if platform.system().lower() == "darwin":
+- # Since building the project specifying --plat-name or CMAKE_OSX_* variables
+- # leads to different SKBUILD_DIR, the code below attempt to guess the most
+- # likely plat-name.
+- _skbuild_dirs = os.listdir(os.path.join(os.path.dirname(__file__), '..', '..', '_skbuild'))
+- if _skbuild_dirs:
+- _likely_plat_name = '-'.join(_skbuild_dirs[0].split('-')[:3])
+- set_skbuild_plat_name(_likely_plat_name)
+-
+- _data = os.path.abspath(os.path.join(
+- os.path.dirname(__file__), '..', '..', SKBUILD_CMAKE_INSTALL_DIR(), 'src/ninja/data'))
+- if os.path.exists(_data):
+- DATA = _data
+-
+-BIN_DIR = os.path.join(DATA, 'bin')
+-
+
+ def _program(name, args):
+- return subprocess.call([os.path.join(BIN_DIR, name)] + args, close_fds=False)
++ return subprocess.call([name] + args, close_fds=False)
+
+
+ def ninja():
diff --git a/meta-python/recipes-devtools/python/python3-ninja_1.11.1.1.bb b/meta-python/recipes-devtools/python/python3-ninja_1.11.1.1.bb
new file mode 100644
index 0000000000..8f2e6528db
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ninja_1.11.1.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Ninja is a small build system with a focus on speed"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE_Apache_20;md5=19cbd64715b51267a47bf3750cc6a8a5"
+
+PYPI_PACKAGE = "ninja"
+PYPI_ARCHIVE_NAME_PREFIX = "pypi-"
+
+inherit pypi python_setuptools_build_meta
+SRC_URI[sha256sum] = "9d793b08dd857e38d0b6ffe9e6b7145d7c485a42dcfea04905ca0cdb6017cc3c"
+
+SRC_URI += "file://no-scikit-build.patch \
+ file://run-ninja-from-path.patch"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+do_install:append () {
+ rm -rf ${D}${bindir}
+}
+
+RDEPENDS:${PN} = " \
+ ninja \
+ python3-io \
+ python3-json \
+ python3-ninja-syntax \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-nmap_1.5.4.bb b/meta-python/recipes-devtools/python/python3-nmap_1.5.4.bb
deleted file mode 100644
index 828d7089b2..0000000000
--- a/meta-python/recipes-devtools/python/python3-nmap_1.5.4.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "python-nmap is a python library which helps in using nmap port scanner"
-HOMEPAGE = "https://www.nmmapper.com/"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-DEPENDS += "${PYTHON_PN}-wheel-native"
-
-PYPI_PACKAGE = "python3-nmap"
-
-SRC_URI[sha256sum] = "cd5b0180d4d8cfe96c33e5e7956fa011379af108e2e8291b84e933b6385856e9"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "nmap \
- ${PYTHON_PN}-requests \
- ${PYTHON_PN}-simplejson \
-"
diff --git a/meta-python/recipes-devtools/python/python3-nmap_1.6.0.bb b/meta-python/recipes-devtools/python/python3-nmap_1.6.0.bb
new file mode 100644
index 0000000000..5fe9ab4e39
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-nmap_1.6.0.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "python-nmap is a python library which helps in using nmap port scanner"
+HOMEPAGE = "https://www.nmmapper.com/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+DEPENDS += "python3-wheel-native"
+
+PYPI_PACKAGE = "python3-nmap"
+
+SRC_URI[sha256sum] = "892b5091cde429fabfb8ba63382b2db8fd795193ba147558d0a7d5534c956255"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "nmap \
+ python3-requests \
+ python3-simplejson \
+"
diff --git a/meta-python/recipes-devtools/python/python3-nocasedict_1.0.4.bb b/meta-python/recipes-devtools/python/python3-nocasedict_1.0.4.bb
deleted file mode 100644
index 006799c8bf..0000000000
--- a/meta-python/recipes-devtools/python/python3-nocasedict_1.0.4.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "A case-insensitive ordered dictionary for Python"
-HOMEPAGE = "https://github.com/pywbem/nocasedict"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
-
-SRC_URI[sha256sum] = "7c111da4cefd244433cb63377aff081a40f84bddae9e6f376c67f086c0f806da"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-six \
-"
diff --git a/meta-python/recipes-devtools/python/python3-nocasedict_2.0.1.bb b/meta-python/recipes-devtools/python/python3-nocasedict_2.0.1.bb
new file mode 100644
index 0000000000..5a29858177
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-nocasedict_2.0.1.bb
@@ -0,0 +1,12 @@
+SUMMARY = "A case-insensitive ordered dictionary for Python"
+HOMEPAGE = "https://github.com/pywbem/nocasedict"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742"
+
+SRC_URI[sha256sum] = "960cb699f1209da80ac39e3ab50aa7342fe8ca9f70606c23447a510550435e50"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-nocaselist_1.0.6.bb b/meta-python/recipes-devtools/python/python3-nocaselist_1.0.6.bb
deleted file mode 100644
index 9e6842961d..0000000000
--- a/meta-python/recipes-devtools/python/python3-nocaselist_1.0.6.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "A case-insensitive list for Python"
-HOMEPAGE = "https://nocaselist.readthedocs.io/en/latest/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRC_URI[sha256sum] = "48f067f8cb841245f34d03120bc1ba9900f13b19cb51bcc6c7bee017f7c874da"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-nocaselist_2.0.0.bb b/meta-python/recipes-devtools/python/python3-nocaselist_2.0.0.bb
new file mode 100644
index 0000000000..2ad42247d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-nocaselist_2.0.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "A case-insensitive list for Python"
+HOMEPAGE = "https://nocaselist.readthedocs.io/en/latest/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI[sha256sum] = "456aa000c6777c5d21b029c52e532f94328d4fb4f15ad2a4dd3dd62db30b3892"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb b/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb
index d78bec046f..d0a8d7a823 100644
--- a/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb
+++ b/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb
@@ -8,4 +8,4 @@ SRC_URI[sha256sum] = "899d8fb5f8c2555213aea95efca02934c7343df6ace9d7628a5176b176
inherit pypi setuptools3
-RDEPENDS:${PN} += "${PYTHON_PN}-datetime ${PYTHON_PN}-io"
+RDEPENDS:${PN} += "python3-datetime python3-io"
diff --git a/meta-python/recipes-devtools/python/python3-oauthlib_3.2.1.bb b/meta-python/recipes-devtools/python/python3-oauthlib_3.2.1.bb
deleted file mode 100644
index 8cc30489bf..0000000000
--- a/meta-python/recipes-devtools/python/python3-oauthlib_3.2.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic"
-HOMEPAGE = "https://github.com/idan/oauthlib"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=abd2675e944a2011aed7e505290ba482"
-
-SRC_URI[sha256sum] = "1565237372795bf6ee3e5aba5e2a85bd5a65d0e2aa5c628b9a97b7d7a0da3721"
-
-inherit pypi setuptools3
-
-# The following configs & dependencies are from setuptools extras_require.
-# These dependencies are optional, hence can be controlled via PACKAGECONFIG.
-# The upstream names may not correspond exactly to bitbake package names.
-#
-# Uncomment this line to enable all the optional features.
-#PACKAGECONFIG ?= "test signedtoken signals rsa"
-PACKAGECONFIG[test] = ",,,${PYTHON_PN}-blinker ${PYTHON_PN}-cryptography ${PYTHON_PN}-pytest ${PYTHON_PN}-pyjwt"
-PACKAGECONFIG[signedtoken] = ",,,${PYTHON_PN}-cryptography ${PYTHON_PN}-pyjwt"
-PACKAGECONFIG[signals] = ",,,${PYTHON_PN}-blinker"
-PACKAGECONFIG[rsa] = ",,,${PYTHON_PN}-cryptography"
-
-RDEPENDS:${PN} += "${PYTHON_PN}-core ${PYTHON_PN}-crypt ${PYTHON_PN}-datetime ${PYTHON_PN}-json ${PYTHON_PN}-logging ${PYTHON_PN}-math ${PYTHON_PN}-netclient ${PYTHON_PN}-unittest"
diff --git a/meta-python/recipes-devtools/python/python3-oauthlib_3.2.2.bb b/meta-python/recipes-devtools/python/python3-oauthlib_3.2.2.bb
new file mode 100644
index 0000000000..833fdbcc58
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-oauthlib_3.2.2.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic"
+HOMEPAGE = "https://github.com/idan/oauthlib"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=abd2675e944a2011aed7e505290ba482"
+
+SRC_URI[sha256sum] = "9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"
+
+inherit pypi setuptools3
+
+# The following configs & dependencies are from setuptools extras_require.
+# These dependencies are optional, hence can be controlled via PACKAGECONFIG.
+# The upstream names may not correspond exactly to bitbake package names.
+#
+# Uncomment this line to enable all the optional features.
+#PACKAGECONFIG ?= "test signedtoken signals rsa"
+PACKAGECONFIG[test] = ",,,python3-blinker python3-cryptography python3-pytest python3-pyjwt"
+PACKAGECONFIG[signedtoken] = ",,,python3-cryptography python3-pyjwt"
+PACKAGECONFIG[signals] = ",,,python3-blinker"
+PACKAGECONFIG[rsa] = ",,,python3-cryptography"
+
+RDEPENDS:${PN} += "python3-core python3-crypt python3-datetime python3-json python3-logging python3-math python3-netclient python3-unittest"
diff --git a/meta-python/recipes-devtools/python/python3-obd_0.7.1.bb b/meta-python/recipes-devtools/python/python3-obd_0.7.1.bb
deleted file mode 100644
index 0cb1b85e5a..0000000000
--- a/meta-python/recipes-devtools/python/python3-obd_0.7.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-DESCRIPTION = "A python module for handling realtime sensor data from OBD-II vehicle ports"HOMEPAGE = "https://github.com/brendan-w/python-OBD"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://README.md;md5=58ba896fa086c96ad23317cebfeab277"
-
-SRC_URI[md5sum] = "305efcb6c650db7b9583532355ebeb7c"
-SRC_URI[sha256sum] = "8b81ea5896157b6e861af12e173c10b001cb6cca6ebb04db2c01d326812ad77b"
-
-inherit setuptools3 pypi
-
-RDEPENDS:${PN} += "${PYTHON_PN}-pyserial ${PYTHON_PN}-pint ${PYTHON_PN}-setuptools ${PYTHON_PN}-packaging"
diff --git a/meta-python/recipes-devtools/python/python3-obd_0.7.2.bb b/meta-python/recipes-devtools/python/python3-obd_0.7.2.bb
new file mode 100644
index 0000000000..cf3daae6ac
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-obd_0.7.2.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "A python module for handling realtime sensor data from OBD-II vehicle ports"HOMEPAGE = "https://github.com/brendan-w/python-OBD"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://README.md;md5=176d0f9ad45c10895296260d426fa862"
+
+SRC_URI[sha256sum] = "20d38c9ded3daad1e8affab3ff367a70788d4f29ac77ab7aacddc6a6d2a43d61"
+
+inherit setuptools3 pypi
+
+RDEPENDS:${PN} += "python3-pyserial python3-pint python3-setuptools python3-packaging"
diff --git a/meta-python/recipes-devtools/python/python3-objectpath_0.6.1.bb b/meta-python/recipes-devtools/python/python3-objectpath_0.6.1.bb
new file mode 100644
index 0000000000..6e82dc13b9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-objectpath_0.6.1.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "The agile NoSQL query language for semi-structured data"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=a53cbc7cb75660694e138ba973c148df"
+
+DEPENDS += "dtc-native"
+
+SRC_URI[sha256sum] = "461263136c79292e42431fbb85cdcaac4c6a256f6b1aa5b3ae9316e4965ad819"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-olefile_0.47.bb b/meta-python/recipes-devtools/python/python3-olefile_0.47.bb
new file mode 100644
index 0000000000..bb6fa7a8cc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-olefile_0.47.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Python package to parse, read and write Microsoft OLE2 files"
+HOMEPAGE = "https://github.com/decalage2/olefile"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f18814bd70fd28e11a4545145dcb3822"
+
+SRC_URI[sha256sum] = "599383381a0bf3dfbd932ca0ca6515acd174ed48870cbf7fee123d698c192c1c"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "olefile"
+PYPI_PACKAGE_EXT = "zip"
+
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-datetime \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-oletools_0.60.1.bb b/meta-python/recipes-devtools/python/python3-oletools_0.60.1.bb
new file mode 100644
index 0000000000..fbb7955d6f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-oletools_0.60.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Python tools to analyze security characteristics of MS Office and OLE files"
+HOMEPAGE = "https://github.com/decalage2/olefile"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=d7dd4b0d1f7153322a546e89b5a0a632"
+
+SRC_URI[sha256sum] = "67a796da4c4b8e2feb9a6b2495bef8798a3323a75512de4e5669d9dc9d1fae31"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "oletools"
+PYPI_PACKAGE_EXT = "zip"
diff --git a/meta-python/recipes-devtools/python/python3-openpyxl_3.0.10.bb b/meta-python/recipes-devtools/python/python3-openpyxl_3.0.10.bb
deleted file mode 100644
index 447c86ddb7..0000000000
--- a/meta-python/recipes-devtools/python/python3-openpyxl_3.0.10.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files"
-DESCRIPTION = "It was born from lack of existing library to read/write natively \
-from Python the Office Open XML format. All kudos to the PHPExcel team as openpyxl \
-was initially based on PHPExcel."
-
-HOMEPAGE = "http://www.python-excel.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "e47805627aebcf860edb4edf7987b1309c1b3632f3750538ed962bbcc3bd7449"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-jdcal \
- ${PYTHON_PN}-et-xmlfile \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-xml \
-"
diff --git a/meta-python/recipes-devtools/python/python3-openpyxl_3.1.2.bb b/meta-python/recipes-devtools/python/python3-openpyxl_3.1.2.bb
new file mode 100644
index 0000000000..4a3254cc53
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-openpyxl_3.1.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files"
+DESCRIPTION = "It was born from lack of existing library to read/write natively \
+from Python the Office Open XML format. All kudos to the PHPExcel team as openpyxl \
+was initially based on PHPExcel."
+
+HOMEPAGE = "http://www.python-excel.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "a6f5977418eff3b2d5500d54d9db50c8277a368436f4e4f8ddb1be3422870184"
+
+RDEPENDS:${PN} += "\
+ python3-compression \
+ python3-io \
+ python3-pprint \
+ python3-shell \
+ python3-jdcal \
+ python3-et-xmlfile \
+ python3-numbers \
+ python3-xml \
+"
diff --git a/meta-python/recipes-devtools/python/python3-ordered-set/run-ptest b/meta-python/recipes-devtools/python/python3-ordered-set/run-ptest
index c27a6c3c57..64799ba008 100644
--- a/meta-python/recipes-devtools/python/python3-ordered-set/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-ordered-set/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest test_ordered_set.py
+pytest --automake test_ordered_set.py
diff --git a/meta-python/recipes-devtools/python/python3-ordered-set_4.1.0.bb b/meta-python/recipes-devtools/python/python3-ordered-set_4.1.0.bb
index f2f1cf8e45..64637b858d 100644
--- a/meta-python/recipes-devtools/python/python3-ordered-set_4.1.0.bb
+++ b/meta-python/recipes-devtools/python/python3-ordered-set_4.1.0.bb
@@ -14,7 +14,8 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb b/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb
deleted file mode 100644
index d9d977b705..0000000000
--- a/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Functors, Applicatives, And Monads in Python"
-HOMEPAGE = "https://github.com/dbrattli/oslash"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://README.md;md5=ed79d2637878dfe97de89e357b5c02dd"
-
-DEPENDS += "\
- ${PYTHON_PN}-pip-native \
- ${PYTHON_PN}-pytest-runner-native\
-"
-
-SRC_URI[sha256sum] = "868aeb58a656f2ed3b73d9dd6abe387b20b74fc9413d3e8653b615b15bf728f3"
-
-PYPI_PACKAGE = "OSlash"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- python3-core \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-padaos_0.1.10.bb b/meta-python/recipes-devtools/python/python3-padaos_0.1.10.bb
index f506a78636..3af9349d44 100644
--- a/meta-python/recipes-devtools/python/python3-padaos_0.1.10.bb
+++ b/meta-python/recipes-devtools/python/python3-padaos_0.1.10.bb
@@ -7,3 +7,5 @@ SRC_URI[md5sum] = "dbf852015ef87a6694549779fb475b52"
SRC_URI[sha256sum] = "2ac05fcbc826873c574568aa5ce09945d6ea987bee10399e766eb8f7c6356d72"
inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-logging"
diff --git a/meta-python/recipes-devtools/python/python3-padatious_0.4.8.bb b/meta-python/recipes-devtools/python/python3-padatious_0.4.8.bb
index 404a0170dc..fef6376ef7 100644
--- a/meta-python/recipes-devtools/python/python3-padatious_0.4.8.bb
+++ b/meta-python/recipes-devtools/python/python3-padatious_0.4.8.bb
@@ -7,3 +7,11 @@ SRC_URI[md5sum] = "7dd2f1830737dc142aa199f77dacf32e"
SRC_URI[sha256sum] = "e471f251b94e8cadf6e4214f0f3b7b36678848aaa8c51cd5638ab23ecb716f75"
inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-fann2 \
+ python3-json \
+ python3-multiprocessing \
+ python3-padaos \
+ python3-xxhash \
+"
diff --git a/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb b/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb
deleted file mode 100644
index 81a6d0a9c9..0000000000
--- a/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "MQTT version 3.1/3.1.1 client library"
-LICENSE = "EPL-1.0 | EDL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8e5f264c6988aec56808a3a11e77b913 \
- file://edl-v10;md5=c09f121939f063aeb5235972be8c722c \
-"
-SRCNAME = "paho-mqtt"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "2a8291c81623aec00372b5a85558a372c747cbca8e9934dfe218638b8eefc26f"
-
-DEPENDS += "${PYTHON_PN}-pytest-runner-native"
-
-do_install:append() {
- install -d -m0755 ${D}${datadir}/${BPN}/examples
- cp --preserve=mode,timestamps -R ${S}/examples/* ${D}${datadir}/${BPN}/examples
-}
-
-PACKAGES =+ "${PN}-examples"
-
-RDEPENDS:${PN}-examples += "${PN} ${PYTHON_PN}-core"
-
-FILES:${PN}-examples = "${datadir}/${BPN}/examples"
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-math \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb b/meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb
new file mode 100644
index 0000000000..e4cf77a134
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "MQTT version 3.1/3.1.1 client library"
+LICENSE = "EPL-1.0 | EDL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8e5f264c6988aec56808a3a11e77b913 \
+ file://edl-v10;md5=c09f121939f063aeb5235972be8c722c \
+"
+SRCNAME = "paho-mqtt"
+
+inherit pypi python_hatchling python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "13b205f29251e4f2c66a6c923c31fc4fd780561e03b2d775cff8e4f2915cf947"
+
+PYPI_SRC_URI = "https://files.pythonhosted.org/packages/73/b7/a4df0f93bbdae237e16ba402752151eceee576cbe80c235a2475fbf81eea/paho_mqtt-${PV}.tar.gz"
+
+S = "${WORKDIR}/paho_mqtt-${PV}"
+
+DEPENDS += "python3-pytest-runner-native"
+
+do_install:append() {
+ install -d -m0755 ${D}${datadir}/${BPN}/examples
+ cp --preserve=mode,timestamps -R ${S}/examples/* ${D}${datadir}/${BPN}/examples
+}
+
+PACKAGES =+ "${PN}-examples"
+
+RDEPENDS:${PN}-examples += "${PN} python3-core"
+
+FILES:${PN}-examples = "${datadir}/${BPN}/examples"
+
+RDEPENDS:${PN} = "\
+ python3-io \
+ python3-logging \
+ python3-math \
+ python3-netclient \
+ python3-threading \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pako_0.3.1.bb b/meta-python/recipes-devtools/python/python3-pako_0.3.1.bb
index 34cd096c9d..046e6571ea 100644
--- a/meta-python/recipes-devtools/python/python3-pako_0.3.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pako_0.3.1.bb
@@ -11,3 +11,10 @@ do_install:append() {
rm -rf ${D}${prefix}/pako/LICENSE
rm -rf ${D}${prefix}/pako
}
+
+RDEPENDS:${PN} += " \
+ python3-appdirs \
+ python3-io \
+ python3-json \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pandas_1.5.0.bb b/meta-python/recipes-devtools/python/python3-pandas_1.5.0.bb
deleted file mode 100644
index 998aa123cd..0000000000
--- a/meta-python/recipes-devtools/python/python3-pandas_1.5.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "pandas library for high-performance data analysis tools"
-DESCRIPTION = "pandas is an open source, BSD-licensed library providing \
-high-performance, easy-to-use data structures and data analysis tools for \
-the Python programming language."
-HOMEPAGE = "http://pandas.pydata.org/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c1cc9ab35a8b2aabf933cd6d245b5db3"
-
-SRC_URI[sha256sum] = "3ee61b881d2f64dd90c356eb4a4a4de75376586cd3c9341c6c0fcaae18d52977"
-
-inherit pypi setuptools3
-
-DEPENDS += " \
- ${PYTHON_PN}-numpy-native ${PYTHON_PN}-cython-native \
-"
-
-CFLAGS:append:toolchain-clang = " -Wno-error=deprecated-declarations"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-numpy \
- ${PYTHON_PN}-dateutil \
- ${PYTHON_PN}-dateutil-zoneinfo \
- ${PYTHON_PN}-pytz \
- ${PYTHON_PN}-profile \
-"
diff --git a/meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb b/meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb
new file mode 100644
index 0000000000..91e76d9919
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb
@@ -0,0 +1,38 @@
+SUMMARY = "pandas library for high-performance data analysis tools"
+DESCRIPTION = "pandas is an open source, BSD-licensed library providing \
+high-performance, easy-to-use data structures and data analysis tools for \
+the Python programming language."
+HOMEPAGE = "http://pandas.pydata.org/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cb819092901ddb13a7d0a4f5e05f098a"
+
+SRC_URI[sha256sum] = "c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c"
+
+inherit pypi setuptools3
+
+DEPENDS += " \
+ python3-cython-native \
+ python3-numpy-native \
+ python3-versioneer-native \
+"
+
+PACKAGESPLITFUNCS =+ "fix_cythonized_sources"
+
+fix_cythonized_sources() {
+ for f in `grep -l -r -e '\/* Generated by Cython.*/$' ${PKGD}${TARGET_DBGSRC_DIR}`; do
+ if [ -e $f ]; then
+ sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' $f
+ fi
+ done
+}
+
+CFLAGS:append:toolchain-clang = " -Wno-error=deprecated-declarations"
+
+RDEPENDS:${PN} += " \
+ python3-json \
+ python3-numpy \
+ python3-dateutil \
+ python3-dateutil-zoneinfo \
+ python3-pytz \
+ python3-profile \
+"
diff --git a/meta-python/recipes-devtools/python/python3-parallax_1.0.6.bb b/meta-python/recipes-devtools/python/python3-parallax_1.0.6.bb
index 14c90ffb58..1fc967d953 100644
--- a/meta-python/recipes-devtools/python/python3-parallax_1.0.6.bb
+++ b/meta-python/recipes-devtools/python/python3-parallax_1.0.6.bb
@@ -8,6 +8,6 @@ SRC_URI[sha256sum] = "c16703202ff67aed4740c0727df304abe9f3e7851e653533b24de21b33
inherit pypi setuptools3
-RDEPENDS:${PN} += "${PYTHON_PN}-fcntl ${PYTHON_PN}-threading ${PYTHON_PN}-unixadmin"
+RDEPENDS:${PN} += "python3-fcntl python3-threading python3-unixadmin"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-paramiko_2.11.0.bb b/meta-python/recipes-devtools/python/python3-paramiko_2.11.0.bb
deleted file mode 100644
index 5c0cb1e1a6..0000000000
--- a/meta-python/recipes-devtools/python/python3-paramiko_2.11.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "The leading native Python SSHv2 protocol library."
-HOMEPAGE = "https://github.com/paramiko/paramiko/"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fd0120fc2e9f841c73ac707a30389af5"
-
-SRC_URI[sha256sum] = "003e6bee7c034c21fbb051bf83dc0a9ee4106204dd3c53054c71452cc4ec3938"
-
-PYPI_PACKAGE = "paramiko"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-bcrypt \
- ${PYTHON_PN}-cryptography \
- ${PYTHON_PN}-pynacl \
- ${PYTHON_PN}-unixadmin \
-"
diff --git a/meta-python/recipes-devtools/python/python3-paramiko_3.4.0.bb b/meta-python/recipes-devtools/python/python3-paramiko_3.4.0.bb
new file mode 100644
index 0000000000..0d32d361cf
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-paramiko_3.4.0.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "The leading native Python SSHv2 protocol library."
+HOMEPAGE = "https://github.com/paramiko/paramiko/"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fd0120fc2e9f841c73ac707a30389af5"
+
+SRC_URI[sha256sum] = "aac08f26a31dc4dffd92821527d1682d99d52f9ef6851968114a8728f3c274d3"
+
+PYPI_PACKAGE = "paramiko"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
+RDEPENDS:${PN} += " \
+ python3-bcrypt \
+ python3-cryptography \
+ python3-logging \
+ python3-pynacl \
+ python3-unixadmin \
+"
diff --git a/meta-python/recipes-devtools/python/python3-parse-type/run-ptest b/meta-python/recipes-devtools/python/python3-parse-type/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-parse-type/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-parse-type/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-parse-type_0.5.2.bb b/meta-python/recipes-devtools/python/python3-parse-type_0.5.2.bb
deleted file mode 100644
index 7eebbfb503..0000000000
--- a/meta-python/recipes-devtools/python/python3-parse-type_0.5.2.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Simplifies building parse types based on the parse module"
-HOMEPAGE = "https://github.com/jenisys/parse_type"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=16374dbaeaca1890153edb3f41371222"
-
-SRC_URI[md5sum] = "b954062f14ab723a91fe1e2be15e859d"
-SRC_URI[sha256sum] = "7f690b18d35048c15438d6d0571f9045cffbec5907e0b1ccf006f889e3a38c0b"
-
-PYPI_PACKAGE = "parse_type"
-inherit pypi ptest setuptools3
-
-RDEPENDS:${PN} += "${PYTHON_PN}-parse ${PYTHON_PN}-six"
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_configure:prepend() {
- sed -i -e "/python_version >= 3.0/d" ${S}/setup.py
- sed -i -e "/use_2to3/d" ${S}/setup.py
-}
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-python/recipes-devtools/python/python3-parse-type_0.6.2.bb b/meta-python/recipes-devtools/python/python3-parse-type_0.6.2.bb
new file mode 100644
index 0000000000..a7d8cd86ce
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-parse-type_0.6.2.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Simplifies building parse types based on the parse module"
+HOMEPAGE = "https://github.com/jenisys/parse_type"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2e469278ace89c246d52505acc39c3da"
+
+SRC_URI[sha256sum] = "79b1f2497060d0928bc46016793f1fca1057c4aacdf15ef876aa48d75a73a355"
+
+PYPI_PACKAGE = "parse_type"
+inherit pypi ptest setuptools3
+
+RDEPENDS:${PN} += "python3-parse"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-parse/run-ptest b/meta-python/recipes-devtools/python/python3-parse/run-ptest
index 40c284799d..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-parse/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-parse/run-ptest
@@ -1,2 +1,3 @@
#!/bin/sh
-pytest
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-parse_1.19.0.bb b/meta-python/recipes-devtools/python/python3-parse_1.19.0.bb
deleted file mode 100644
index 2bf55cbaff..0000000000
--- a/meta-python/recipes-devtools/python/python3-parse_1.19.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Parse strings using a specification based on the Python format() syntax"
-HOMEPAGE = "https://github.com/r1chardj0n3s/parse"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8ab458ad281b60e6f1b39b3feafbfc05"
-
-SRC_URI[sha256sum] = "9ff82852bcb65d139813e2a5197627a94966245c897796760a3a2a8eb66f020b"
-
-inherit pypi setuptools3 ptest
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-logging \
- "
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- cp -f ${S}/test_parse.py ${D}${PTEST_PATH}/
-}
diff --git a/meta-python/recipes-devtools/python/python3-parse_1.20.1.bb b/meta-python/recipes-devtools/python/python3-parse_1.20.1.bb
new file mode 100644
index 0000000000..d2b91b3f30
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-parse_1.20.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Parse strings using a specification based on the Python format() syntax"
+HOMEPAGE = "https://github.com/r1chardj0n3s/parse"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8ab458ad281b60e6f1b39b3feafbfc05"
+
+SRC_URI[sha256sum] = "09002ca350ad42e76629995f71f7b518670bcf93548bdde3684fd55d2be51975"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+inherit pypi python_setuptools_build_meta ptest
+
+RDEPENDS:${PN} += "\
+ python3-datetime \
+ python3-logging \
+ python3-numbers \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ cp -f ${S}/tests/test*.py ${D}${PTEST_PATH}/
+}
diff --git a/meta-python/recipes-devtools/python/python3-parso_0.8.3.bb b/meta-python/recipes-devtools/python/python3-parso_0.8.3.bb
index e14f28ad03..217c821fb4 100644
--- a/meta-python/recipes-devtools/python/python3-parso_0.8.3.bb
+++ b/meta-python/recipes-devtools/python/python3-parso_0.8.3.bb
@@ -1,6 +1,5 @@
SUMMARY = "A Python Parser"
HOMEPAGE = "https://github.com/davidhalter/parso"
-AUTHOR = "David Halter <davidhalter88@gmail.com>"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cbaa2675b2424d771451332a7a69503f"
@@ -11,7 +10,7 @@ SRC_URI[sha256sum] = "8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f9170
inherit setuptools3 pypi
RDEPENDS:${PN} = " \
- ${PYTHON_PN}-crypt \
- ${PYTHON_PN}-difflib \
- ${PYTHON_PN}-logging \
+ python3-crypt \
+ python3-difflib \
+ python3-logging \
"
diff --git a/meta-python/recipes-devtools/python/python3-passlib_1.7.4.bb b/meta-python/recipes-devtools/python/python3-passlib_1.7.4.bb
index dc692303fe..8b66e25922 100644
--- a/meta-python/recipes-devtools/python/python3-passlib_1.7.4.bb
+++ b/meta-python/recipes-devtools/python/python3-passlib_1.7.4.bb
@@ -15,7 +15,7 @@ SRC_URI[sha256sum] = "defd50f72b65c5402ab2c573830a6978e5f202ad0d984793c8dde2c415
inherit pypi setuptools3
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-crypt \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-netclient \
+ python3-crypt \
+ python3-logging \
+ python3-netclient \
"
diff --git a/meta-python/recipes-devtools/python/python3-pastedeploy_2.1.1.bb b/meta-python/recipes-devtools/python/python3-pastedeploy_2.1.1.bb
deleted file mode 100644
index 86f29e119d..0000000000
--- a/meta-python/recipes-devtools/python/python3-pastedeploy_2.1.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Load, configure, and compose WSGI applications and servers"
-HOMEPAGE = "https://pylonsproject.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://license.txt;md5=1798f29d55080c60365e6283cb49779c"
-
-inherit pypi
-PYPI_PACKAGE = "PasteDeploy"
-
-SRC_URI[sha256sum] = "6dead6ab9823a85d585ef27f878bc647f787edb9ca8da0716aa9f1261b464817"
-
-S = "${WORKDIR}/PasteDeploy-${PV}"
-
-inherit setuptools3
-
-# Uncomment this line to enable all the optional features.
-#PACKAGECONFIG ?= "paste docs"
-PACKAGECONFIG[paste] = ",,,python3-paste"
-PACKAGECONFIG[docs] = ",,,python3-sphinx python3-pylons-sphinx-themes"
-
-DEPENDS= "python3 python3-setuptools-scm-native python3-pytest-runner-native"
-RDEPENDS:${PN} += "python3-core python3-misc python3-netclient python3-pkgutil python3-setuptools python3-threading python3-core"
diff --git a/meta-python/recipes-devtools/python/python3-pastedeploy_3.1.0.bb b/meta-python/recipes-devtools/python/python3-pastedeploy_3.1.0.bb
new file mode 100644
index 0000000000..27f32bf1af
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pastedeploy_3.1.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Load, configure, and compose WSGI applications and servers"
+HOMEPAGE = "https://pylonsproject.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://license.txt;md5=1798f29d55080c60365e6283cb49779c"
+
+inherit pypi
+PYPI_PACKAGE = "PasteDeploy"
+
+SRC_URI[sha256sum] = "9ddbaf152f8095438a9fe81f82c78a6714b92ae8e066bed418b6a7ff6a095a95"
+
+S = "${WORKDIR}/PasteDeploy-${PV}"
+
+inherit setuptools3
+
+# Uncomment this line to enable all the optional features.
+#PACKAGECONFIG ?= "paste docs"
+PACKAGECONFIG[paste] = ",,,python3-paste"
+PACKAGECONFIG[docs] = ",,,python3-sphinx python3-pylons-sphinx-themes"
+
+DEPENDS= "python3 python3-setuptools-scm-native python3-pytest-runner-native"
+RDEPENDS:${PN} += "python3-core python3-misc python3-netclient python3-pkgutil python3-setuptools python3-threading python3-core"
diff --git a/meta-python/recipes-devtools/python/python3-path/run-ptest b/meta-python/recipes-devtools/python/python3-path/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-path/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-path_16.10.0.bb b/meta-python/recipes-devtools/python/python3-path_16.10.0.bb
new file mode 100644
index 0000000000..f95fce3b08
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-path_16.10.0.bb
@@ -0,0 +1,34 @@
+SUMMARY = "A module wrapper for os.path"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=141643e11c48898150daa83802dbc65f"
+
+SRC_URI[sha256sum] = "b32b22b76fe810a8ded6d136268cc8b6698ae7c47c29b94a9ea12623f3051e46"
+
+SRC_URI += "\
+ file://run-ptest \
+"
+
+inherit pypi python_setuptools_build_meta ptest
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+ python3-appdirs \
+ python3-crypt \
+ python3-io \
+ python3-numbers \
+ python3-shell \
+"
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+BBCLASSEXTEND = "nativesdk native"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/test
+ cp -rf ${S}/test_* ${D}${PTEST_PATH}/test/
+ install -d ${D}${PTEST_PATH}/path
+ cp -rf ${S}/path/* ${D}${PTEST_PATH}/path/
+}
diff --git a/meta-python/recipes-devtools/python/python3-path_16.5.0.bb b/meta-python/recipes-devtools/python/python3-path_16.5.0.bb
deleted file mode 100644
index 3dc5d7cdec..0000000000
--- a/meta-python/recipes-devtools/python/python3-path_16.5.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "A module wrapper for os.path"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6"
-
-SRC_URI[sha256sum] = "2722e500b370bc00d5934d2207e26b17a09ee73eb0150f651d5a255d8be935a2"
-
-inherit pypi python_setuptools_build_meta
-
-DEPENDS += "python3-setuptools-scm-native"
-
-BBCLASSEXTEND = "nativesdk native"
diff --git a/meta-python/recipes-devtools/python/python3-pcodedmp_1.2.6.bb b/meta-python/recipes-devtools/python/python3-pcodedmp_1.2.6.bb
new file mode 100644
index 0000000000..185597dea1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pcodedmp_1.2.6.bb
@@ -0,0 +1,12 @@
+SUMMARY = "A VBA p-code disassembler"
+HOMEPAGE = "https://github.com/bontchev/pcodedmp"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
+
+SRC_URI[sha256sum] = "025f8c809a126f45a082ffa820893e6a8d990d9d7ddb68694b5a9f0a6dbcd955"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE="pcodedmp"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pdm-backend_2.1.8.bb b/meta-python/recipes-devtools/python/python3-pdm-backend_2.1.8.bb
new file mode 100644
index 0000000000..f1f507243e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pdm-backend_2.1.8.bb
@@ -0,0 +1,13 @@
+SUMMARY = "The build backend used by PDM that supports latest packaging standards"
+HOMEPAGE = "https://github.com/pdm-project/pdm-backend"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4a564297b3c5b629a528b92fd8ff61ea"
+
+SRC_URI[sha256sum] = "2487dfbd13f69d80fb4e6a08006a3ee68272833970813047dc5fcfacdfdc0151"
+
+inherit pypi python_setuptools_build_meta
+
+PYPI_PACKAGE= "pdm_backend"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pdm_2.13.2.bb b/meta-python/recipes-devtools/python/python3-pdm_2.13.2.bb
new file mode 100644
index 0000000000..387f14b0ea
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pdm_2.13.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A modern Python package and dependency manager supporting the latest PEP standards"
+HOMEPAGE = "https://pdm-project.org/latest/"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2eb31a2cc1a758c34b499f287dd04ef2"
+
+SRC_URI[sha256sum] = "e282bf1caf0a083fc0fb5e89ad6f79d7c579ff52c7bb58ee8587ea3d5bb9e14a"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += " \
+ python3-pdm-backend-native \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb b/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb
new file mode 100644
index 0000000000..50dae7b407
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Python PE parsing module"
+DESCRIPTION = "A multi-platform Python module to parse and work with Portable Executable (PE) files."
+HOMEPAGE = "https://github.com/erocarrera/pefile"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=38066667888b01d8118ff9cc23da1873"
+
+inherit setuptools3 pypi ptest
+SRC_URI[sha256sum] = "82e6114004b3d6911c77c3953e3838654b04511b8b66e8583db70c65998017dc"
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+ python3-mmap \
+ python3-netclient \
+ python3-stringold \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pep8_1.7.1.bb b/meta-python/recipes-devtools/python/python3-pep8_1.7.1.bb
index f3e03ed309..68507e2482 100644
--- a/meta-python/recipes-devtools/python/python3-pep8_1.7.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pep8_1.7.1.bb
@@ -9,9 +9,9 @@ SRC_URI[sha256sum] = "603a46e5c358ce20ac4807a0eeafac7505d1125a4c1bd8378757ada06f
inherit pypi setuptools3
-RDEPENDS:${PN} += "${PYTHON_PN}-prettytable \
- ${PYTHON_PN}-cmd2 \
- ${PYTHON_PN}-pyparsing"
+RDEPENDS:${PN} += "python3-prettytable \
+ python3-cmd2 \
+ python3-pyparsing"
SRC_URI[md5sum] = "603821d06db945c71d811b5a8d78423c"
SRC_URI[sha256sum] = "fe249b52e20498e59e0b5c5256aa52ee99fc295b26ec9eaa85776ffdb9fe6374"
diff --git a/meta-python/recipes-devtools/python/python3-periphery_2.3.0.bb b/meta-python/recipes-devtools/python/python3-periphery_2.3.0.bb
deleted file mode 100644
index 4d81b8d244..0000000000
--- a/meta-python/recipes-devtools/python/python3-periphery_2.3.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "A pure Python 2/3 library for peripheral I/O (GPIO, LED, PWM, SPI, I2C, MMIO, Serial) in Linux."
-HOMEPAGE = "http://pythonhosted.org/python-periphery/"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fed1784a083509430580a913df680706"
-
-SRC_URI[sha256sum] = "8a8ec019d9b330a6a6f69a7de61d14b4c98b102d76359047c5ce0263e12246a6"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "python-periphery"
-
-RDEPENDS:${PN} += "${PYTHON_PN}-mmap \
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-fcntl"
diff --git a/meta-python/recipes-devtools/python/python3-periphery_2.4.1.bb b/meta-python/recipes-devtools/python/python3-periphery_2.4.1.bb
new file mode 100644
index 0000000000..c2764b27d2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-periphery_2.4.1.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "A pure Python 2/3 library for peripheral I/O (GPIO, LED, PWM, SPI, I2C, MMIO, Serial) in Linux."
+HOMEPAGE = "http://pythonhosted.org/python-periphery/"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=30fe6f023a80fb33989fb3b9d773fea0"
+
+SRC_URI[sha256sum] = "61d461d736982a6f766e878720ab10a68151e2e8c1086600d9389ac47e40e88a"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "python-periphery"
+
+RDEPENDS:${PN} += "python3-mmap \
+ python3-ctypes \
+ python3-fcntl"
diff --git a/meta-python/recipes-devtools/python/python3-petact_0.1.2.bb b/meta-python/recipes-devtools/python/python3-petact_0.1.2.bb
index 58cd05e222..b7fa69ffa8 100644
--- a/meta-python/recipes-devtools/python/python3-petact_0.1.2.bb
+++ b/meta-python/recipes-devtools/python/python3-petact_0.1.2.bb
@@ -7,3 +7,9 @@ SRC_URI[md5sum] = "47e9a6abc91b4022953e4007ddae9e68"
SRC_URI[sha256sum] = "5dcb0d44f86a601e41a2def9770993cd0ea45c76d37eb3f35e3dd61aa50350e6"
inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-crypt \
+ python3-io \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pexpect_4.8.0.bb b/meta-python/recipes-devtools/python/python3-pexpect_4.8.0.bb
deleted file mode 100644
index ed25406085..0000000000
--- a/meta-python/recipes-devtools/python/python3-pexpect_4.8.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "A Pure Python Expect like Module for Python"
-HOMEPAGE = "http://pexpect.readthedocs.org/"
-SECTION = "devel/python"
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1c7a725251880af8c6a148181665385b"
-
-SRC_URI += "file://0001-FSM.py-change-shebang-from-python-to-python3.patch"
-
-SRC_URI[md5sum] = "153eb25184249d6a85fde9acf4804085"
-SRC_URI[sha256sum] = "fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"
-
-inherit pypi setuptools3
-
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/pexpect"
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-terminal \
- ${PYTHON_PN}-resource \
- ${PYTHON_PN}-fcntl \
- ${PYTHON_PN}-ptyprocess \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pexpect_4.9.0.bb b/meta-python/recipes-devtools/python/python3-pexpect_4.9.0.bb
new file mode 100644
index 0000000000..521df9dcd4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pexpect_4.9.0.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A Pure Python Expect like Module for Python"
+HOMEPAGE = "http://pexpect.readthedocs.org/"
+SECTION = "devel/python"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1c7a725251880af8c6a148181665385b"
+
+SRC_URI += "file://0001-FSM.py-change-shebang-from-python-to-python3.patch"
+
+SRC_URI[sha256sum] = "ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"
+
+inherit pypi setuptools3
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/pexpect"
+
+RDEPENDS:${PN} = "\
+ python3-core \
+ python3-io \
+ python3-terminal \
+ python3-resource \
+ python3-fcntl \
+ python3-ptyprocess \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pickleshare_0.7.5.bb b/meta-python/recipes-devtools/python/python3-pickleshare_0.7.5.bb
index 9d67e4f338..bb16c78ce8 100644
--- a/meta-python/recipes-devtools/python/python3-pickleshare_0.7.5.bb
+++ b/meta-python/recipes-devtools/python/python3-pickleshare_0.7.5.bb
@@ -1,6 +1,5 @@
SUMMARY = "Tiny 'shelve'-like database with concurrency support"
HOMEPAGE = "https://github.com/pickleshare/pickleshare"
-AUTHOR = "Ville Vainio <vivainio@gmail.com>"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=905c08218089ffebea3a64c82fc4d7d0"
@@ -10,3 +9,5 @@ SRC_URI[md5sum] = "44ab782615894a812ab96669a122a634"
SRC_URI[sha256sum] = "87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"
inherit setuptools3 pypi
+
+RDEPENDS:${PN} += "python3-pickle"
diff --git a/meta-python/recipes-devtools/python/python3-pid_3.0.4.bb b/meta-python/recipes-devtools/python/python3-pid_3.0.4.bb
index 412dcfce40..c90f551056 100644
--- a/meta-python/recipes-devtools/python/python3-pid_3.0.4.bb
+++ b/meta-python/recipes-devtools/python/python3-pid_3.0.4.bb
@@ -9,4 +9,4 @@ SRC_URI[sha256sum] = "0e33670e83f6a33ebb0822e43a609c3247178d4a375ff50a4689e266d8
inherit pypi setuptools3
-RDEPENDS:${PN} += "${PYTHON_PN}-fcntl ${PYTHON_PN}-logging ${PYTHON_PN}-io"
+RDEPENDS:${PN} += "python3-fcntl python3-logging python3-io"
diff --git a/meta-python/recipes-devtools/python/python3-pika_1.3.0.bb b/meta-python/recipes-devtools/python/python3-pika_1.3.0.bb
deleted file mode 100644
index 7ffec26e55..0000000000
--- a/meta-python/recipes-devtools/python/python3-pika_1.3.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Pika is a RabbitMQ (AMQP 0-9-1) client library for Python."
-DESCRIPTION = " \
-Pika is a pure-Python implementation of the AMQP 0-9-1 protocol \
-including RabbitMQ's extensions. \
-"
-SECTION = "devel/python"
-HOMEPAGE = "https://pika.readthedocs.io"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=678ec81495ba50edf81e84e4f1aa69f3"
-
-SRC_URI[sha256sum] = "15357ddc47a5c28f0b07d80e93d504cbbf7a1ad5e1cd129ecd27afe76472c529"
-
-inherit pypi python_setuptools_build_meta
-
-PYPI_PACKAGE = "pika"
-
-DEPENDS += " \
- ${PYTHON_PN}-setuptools-scm-native \
- ${PYTHON_PN}-toml-native \
-"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-tornado \
- ${PYTHON_PN}-twisted \
-"
diff --git a/meta-python/recipes-devtools/python/python3-pika_1.3.2.bb b/meta-python/recipes-devtools/python/python3-pika_1.3.2.bb
new file mode 100644
index 0000000000..865accc595
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pika_1.3.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Pika is a RabbitMQ (AMQP 0-9-1) client library for Python."
+DESCRIPTION = " \
+Pika is a pure-Python implementation of the AMQP 0-9-1 protocol \
+including RabbitMQ's extensions. \
+"
+SECTION = "devel/python"
+HOMEPAGE = "https://pika.readthedocs.io"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=678ec81495ba50edf81e84e4f1aa69f3"
+
+SRC_URI[sha256sum] = "b2a327ddddf8570b4965b3576ac77091b850262d34ce8c1d8cb4e4146aa4145f"
+
+inherit pypi python_setuptools_build_meta
+
+PYPI_PACKAGE = "pika"
+
+DEPENDS += " \
+ python3-setuptools-scm-native \
+ python3-toml-native \
+"
+
+RDEPENDS:${PN} += " \
+ python3-logging \
+ python3-tornado \
+ python3-twisted \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch b/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch
deleted file mode 100644
index 005fea5c66..0000000000
--- a/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 27bfa4028453dc79a72569823e97da8fd1994ffc Mon Sep 17 00:00:00 2001
-From: Leon Anavi <leon.anavi@konsulko.com>
-Date: Tue, 1 Sep 2020 11:53:53 +0000
-Subject: [PATCH] explicitly set compile options
-
-OE does not support to install egg package, so
-explicitly set build_ext options for oe-core's
-`setup.py install'
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
----
- setup.cfg | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/setup.cfg b/setup.cfg
-index 19979cf7..ed27dfe1 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -11,3 +11,15 @@ multi_line_output = 3
- [tool:pytest]
- addopts = -ra --color=yes
- testpaths = Tests
-+
-+[build_ext]
-+disable-platform-guessing = 1
-+enable-zlib = 1
-+enable-jpeg = 1
-+enable-tiff = 1
-+enable-freetype = 1
-+enable-lcms = 1
-+enable-jpeg2000 = 1
-+disable-webp = 1
-+disable-webpmux = 1
-+disable-imagequant = 1
---
-2.17.1
-
diff --git a/meta-python/recipes-devtools/python/python3-pillow/run-ptest b/meta-python/recipes-devtools/python/python3-pillow/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pillow/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-pillow_10.3.0.bb b/meta-python/recipes-devtools/python/python3-pillow_10.3.0.bb
new file mode 100644
index 0000000000..debf488154
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pillow_10.3.0.bb
@@ -0,0 +1,72 @@
+SUMMARY = "Python Imaging Library (Fork). Pillow is the friendly PIL fork by Alex \
+Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and \
+Contributors."
+HOMEPAGE = "https://pillow.readthedocs.io"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c349a4b4b9ec2377a8fd6a7df87dbffe"
+
+SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=main;protocol=https \
+ file://0001-support-cross-compiling.patch \
+ file://run-ptest \
+ "
+SRCREV = "5c89d88eee199ba53f64581ea39b6a1bc52feb1a"
+
+inherit python_setuptools_build_meta ptest
+
+PEP517_BUILD_OPTS += " \
+ -C platform-guessing=disable \
+ -C zlib=enable \
+ -C jpeg=enable \
+ -C tiff=enable \
+ -C freetype=enable \
+ -C lcms=enable \
+ -C jpeg2000=enable \
+ -C webp=disable \
+ -C webpmux=disable \
+ -C imagequant=disable \
+"
+
+DEPENDS += " \
+ zlib \
+ jpeg \
+ tiff \
+ freetype \
+ lcms \
+ openjpeg \
+"
+
+RDEPENDS:${PN} += " \
+ python3-misc \
+ python3-logging \
+ python3-numbers \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcb', '', d)} \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ bash \
+ ghostscript \
+ jpeg-tools \
+ libwebp \
+ python3-core \
+ python3-image \
+ python3-mmap \
+ python3-pytest \
+ python3-pytest-timeout \
+ python3-resource \
+ python3-unittest-automake-output \
+ python3-unixadmin\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'tk', '', d)} \
+"
+
+CVE_PRODUCT = "pillow"
+
+S = "${WORKDIR}/git"
+
+RPROVIDES:${PN} += "python3-imaging"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/Tests
+ cp -rf ${S}/Tests ${D}${PTEST_PATH}/
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-pillow_9.2.0.bb b/meta-python/recipes-devtools/python/python3-pillow_9.2.0.bb
deleted file mode 100644
index 454d61a48e..0000000000
--- a/meta-python/recipes-devtools/python/python3-pillow_9.2.0.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Python Imaging Library (Fork). Pillow is the friendly PIL fork by Alex \
-Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and \
-Contributors."
-HOMEPAGE = "https://pillow.readthedocs.io"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ad081a0aede51e89f8da13333a8fb849"
-
-SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=9.2.x;protocol=https \
- file://0001-support-cross-compiling.patch \
- file://0001-explicitly-set-compile-options.patch \
- "
-SRCREV ?= "82541b6dec8452cb612067fcebba1c5a1a2bfdc8"
-
-inherit setuptools3
-
-PIP_INSTALL_PACKAGE = "Pillow"
-PIP_INSTALL_DIST_PATH = "${S}/dist"
-
-DEPENDS += " \
- zlib \
- jpeg \
- tiff \
- freetype \
- lcms \
- openjpeg \
-"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-numbers \
-"
-
-CVE_PRODUCT = "pillow"
-
-S = "${WORKDIR}/git"
-
-RPROVIDES:${PN} += "python3-imaging"
-
-BBCLASSEXTEND = "native"
-
-SRCREV = "58acec3312fb8671c9d84829197e1c8150085589"
diff --git a/meta-python/recipes-devtools/python/python3-pint_0.19.2.bb b/meta-python/recipes-devtools/python/python3-pint_0.19.2.bb
deleted file mode 100644
index 06337edb62..0000000000
--- a/meta-python/recipes-devtools/python/python3-pint_0.19.2.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Physical quantities module"
-DESCRIPTION = "Physical quantities Python module"
-HOMEPAGE = "https://github.com/hgrecco/pint"
-SECTION = "devel/python"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bccf824202692270a1e0829a62e3f47b"
-
-PYPI_PACKAGE := "Pint"
-
-inherit pypi ptest python_setuptools_build_meta
-
-SRC_URI[sha256sum] = "e1d4989ff510b378dad64f91711e7bdabe5ca78d75b06a18569ac454678c4baf"
-
-DEPENDS += "python3-setuptools-scm-native"
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-setuptools \
- ${PYTHON_PN}-packaging \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/testsuite
- cp -rf ${S}/pint/testsuite/* ${D}${PTEST_PATH}/testsuite/
-}
diff --git a/meta-python/recipes-devtools/python/python3-pint_0.23.bb b/meta-python/recipes-devtools/python/python3-pint_0.23.bb
new file mode 100644
index 0000000000..370cd7017b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pint_0.23.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Physical quantities module"
+DESCRIPTION = "Physical quantities Python module"
+HOMEPAGE = "https://github.com/hgrecco/pint"
+SECTION = "devel/python"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bccf824202692270a1e0829a62e3f47b"
+
+PYPI_PACKAGE := "Pint"
+
+inherit ptest python_setuptools_build_meta
+
+SRCREV = "f2e4081aee38f850938048beac7fb69c4908bc5e"
+SRC_URI = "git://github.com/hgrecco/pint;protocol=https;branch=master"
+S = "${WORKDIR}/git"
+#SRC_URI[sha256sum] = "e1509b91606dbc52527c600a4ef74ffac12fff70688aff20e9072409346ec9b4"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+ python3-setuptools \
+ python3-packaging \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-appdirs \
+ python3-flexcache \
+ python3-flexparser \
+ python3-pytest \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/testsuite
+ cp -rf ${S}/pint/* ${D}${PTEST_PATH}/
+}
diff --git a/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb b/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb
index 1aa91deac5..9ff4d1318d 100644
--- a/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb
+++ b/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=faa7f82be8f220bff6156be4790344fc"
SRC_URI[sha256sum] = "deb4163ef11f75b520d822d9505c1f462761b4309b1bb713d08689759ea8b899"
RDEPENDS:${PN} = "pkgconfig \
- ${PYTHON_PN}-shell \
+ python3-shell \
"
inherit pypi python_poetry_core
diff --git a/meta-python/recipes-devtools/python/python3-platformdirs/run-ptest b/meta-python/recipes-devtools/python/python3-platformdirs/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-platformdirs/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-platformdirs_4.2.0.bb b/meta-python/recipes-devtools/python/python3-platformdirs_4.2.0.bb
new file mode 100644
index 0000000000..19c95b374a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-platformdirs_4.2.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "A small Python module for determining appropriate platform-specific dirs"
+HOMEPAGE = "https://github.com/platformdirs/platformdirs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ea4f5a41454746a9ed111e3d8723d17a"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+SRC_URI[sha256sum] = "ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"
+
+inherit pypi python_hatchling ptest
+
+DEPENDS += " \
+ python3-hatch-vcs-native \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-appdirs \
+ python3-covdefaults \
+ python3-pytest \
+ python3-pytest-cov \
+ python3-pytest-mock \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}
+ cp -rf ${S}/tests ${D}${PTEST_PATH}/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pocketsphinx/0001-cython-Use-cythyon3-in-cmake-check.patch b/meta-python/recipes-devtools/python/python3-pocketsphinx/0001-cython-Use-cythyon3-in-cmake-check.patch
new file mode 100644
index 0000000000..40b2544d55
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pocketsphinx/0001-cython-Use-cythyon3-in-cmake-check.patch
@@ -0,0 +1,29 @@
+From 5e6eb640f54a0d716d62ab4db8d96d3b6f3aa7bc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 19 Feb 2024 22:11:41 -0800
+Subject: [PATCH] cython: Use cythyon3 in cmake check
+
+OE does not install cython anymore, it only has cython3
+therefore point the build system to find cython3
+
+Upstream-Status: Inappropriate [ OE-Specific ]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cython/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cython/CMakeLists.txt b/cython/CMakeLists.txt
+index daa4f76..93dd030 100644
+--- a/cython/CMakeLists.txt
++++ b/cython/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ find_package(Python COMPONENTS Interpreter Development.Module REQUIRED)
+-find_program(CYTHON "cython")
++find_program(CYTHON "cython3")
+
+ if(NOT USE_INSTALLED_POCKETSPHINX)
+ set_property(TARGET pocketsphinx PROPERTY POSITION_INDEPENDENT_CODE on)
+--
+2.43.2
+
diff --git a/meta-python/recipes-devtools/python/python3-pocketsphinx_0.1.15.bb b/meta-python/recipes-devtools/python/python3-pocketsphinx_0.1.15.bb
deleted file mode 100644
index f7ffd9d268..0000000000
--- a/meta-python/recipes-devtools/python/python3-pocketsphinx_0.1.15.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "This package provides a python interface to CMU Sphinxbase and Pocketsphinx libraries created with SWIG and Setuptools."
-DESCRIPTION = "Python interface to CMU Sphinxbase and Pocketsphinx libraries"
-HOMEPAGE = "https://github.com/bambocher/pocketsphinx-python"
-SECTION = "devel/python"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=826ebda787eb48e78aec2624f9faba72"
-
-SRC_URI[md5sum] = "94d008eebea16acb60a9ffe614575dee"
-SRC_URI[sha256sum] = "34d290745c7dbe6fa2cac9815b5c19d10f393e528ecd70e779c21ebc448f9b63"
-
-inherit pypi setuptools3 features_check
-
-DEPENDS += "swig-native pulseaudio"
-REQUIRED_DISTRO_FEATURES += "pulseaudio"
diff --git a/meta-python/recipes-devtools/python/python3-pocketsphinx_5.0.3.bb b/meta-python/recipes-devtools/python/python3-pocketsphinx_5.0.3.bb
new file mode 100644
index 0000000000..4ffcb4db82
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pocketsphinx_5.0.3.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Python interface to Pocketsphinx libraries."
+DESCRIPTION = "Pythonsphinx is an Open source large vocabulary, speaker-independent continuous speech recognition engines."
+HOMEPAGE = "https://github.com/cmusphinx/pocketsphinx"
+SECTION = "devel/python"
+LICENSE = "BSD-2-Clause | BSD-3-Clause | MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c4d720cdc9c6953091f65e8b01524bb4"
+
+SRC_URI += "file://0001-cython-Use-cythyon3-in-cmake-check.patch"
+SRC_URI[sha256sum] = "27f4de0ca2d2bce391ce87eaab84fe6f0bc059b306fd1702d5fe6549b66e1586"
+
+inherit cmake pkgconfig pypi python3native
+
+DEPENDS += "swig-native python3-cython-native python3-scikit-build-native gstreamer1.0 gstreamer1.0-plugins-base"
+
+EXTRA_OECMAKE += "-DBUILD_GSTREAMER=ON"
+
+PACKAGES += "${PN}-models ${MLPREFIX}gstreamer1.0-pocketsphinx"
+
+FILES:${MLPREFIX}gstreamer1.0-pocketsphinx = "${libdir}/gstreamer-1.0/"
+FILES:${PN}-models = "${datadir}/pocketsphinx/model"
diff --git a/meta-python/recipes-devtools/python/python3-polyline/run-ptest b/meta-python/recipes-devtools/python/python3-polyline/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-polyline/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-polyline/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-polyline_1.4.0.bb b/meta-python/recipes-devtools/python/python3-polyline_1.4.0.bb
deleted file mode 100644
index 486e70c8fd..0000000000
--- a/meta-python/recipes-devtools/python/python3-polyline_1.4.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "A Python implementation of Google's Encoded Polyline Algorithm Format"
-HOMEPAGE = "https://pypi.org/project/polyline/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0fbd13500cabd06dd751ba6b2be304c6"
-
-SRC_URI[md5sum] = "b97c57378605c4a856c437569f95a0cb"
-SRC_URI[sha256sum] = "7c7f89d09a09c7b6161bdbfb4fd304b186fc7a2060fa4f31cb3f61c646a5c074"
-
-inherit pypi setuptools3 ptest
-
-RDEPENDS:${PN} += "python3-six"
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/test
- cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
-}
diff --git a/meta-python/recipes-devtools/python/python3-polyline_2.0.2.bb b/meta-python/recipes-devtools/python/python3-polyline_2.0.2.bb
new file mode 100644
index 0000000000..00cb51be41
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-polyline_2.0.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "A Python implementation of Google's Encoded Polyline Algorithm Format"
+HOMEPAGE = "https://github.com/frederickjansen/polyline"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1fb8d1dc685695195bb3c1e48adfef48"
+
+SRC_URI[sha256sum] = "10541e759c5fd51f746ee304e9af94744089a4055b6257b293b3afd1df64e369"
+
+inherit pypi python_setuptools_build_meta ptest
+
+RDEPENDS:${PN} += "python3-six"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/test
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/test/
+}
diff --git a/meta-python/recipes-devtools/python/python3-portion_2.3.0.bb b/meta-python/recipes-devtools/python/python3-portion_2.3.0.bb
deleted file mode 100644
index 1638d64c32..0000000000
--- a/meta-python/recipes-devtools/python/python3-portion_2.3.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Python data structure and operations for intervals"
-HOMEPAGE = "https://github.com/AlexandreDecan/portion"
-SECTION = "devel/python"
-
-LICENSE = "LGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=05f1e16a8e59ce3e9a979e881816c2ab"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "0e9d42838099263201b25517e4c1bd57042b5fe44432d6df38cef72d84d1eb1f"
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-sortedcontainers \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-portion_2.4.2.bb b/meta-python/recipes-devtools/python/python3-portion_2.4.2.bb
new file mode 100644
index 0000000000..3af94b48f1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-portion_2.4.2.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Python data structure and operations for intervals"
+HOMEPAGE = "https://github.com/AlexandreDecan/portion"
+SECTION = "devel/python"
+
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=05f1e16a8e59ce3e9a979e881816c2ab"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "5289b40d98959b16b3f6927781678935d3df1b7c14947f5d7778e5e04dd9a065"
+
+RDEPENDS:${PN} = "\
+ python3-sortedcontainers \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb b/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb
deleted file mode 100644
index d66ef0e3c4..0000000000
--- a/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "POSIX IPC primitives (semaphores, shared memory and message queues) for Python"
-HOMEPAGE = "http://semanchuk.com/philip/posix_ipc/"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dc089fb2f37e90799a54c19a20c9880f"
-
-PYPI_PACKAGE = "posix_ipc"
-
-# Archived version so we need to overwrite what the pypi class will derive
-PYPI_SRC_URI = "https://pypi.python.org/packages/source/p/${PYPI_PACKAGE}/${PYPI_PACKAGE}-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "8c9443859492ecf3aae9182aa6b5c78c"
-SRC_URI[sha256sum] = "6cddb1ce2cf4aae383f2a0079c26c69bee257fe2720f372201ef047f8ceb8b97"
-
-inherit setuptools3 pypi
diff --git a/meta-python/recipes-devtools/python/python3-posix-ipc_1.1.1.bb b/meta-python/recipes-devtools/python/python3-posix-ipc_1.1.1.bb
new file mode 100644
index 0000000000..a71187399b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-posix-ipc_1.1.1.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "POSIX IPC primitives (semaphores, shared memory and message queues) for Python"
+HOMEPAGE = "http://semanchuk.com/philip/posix_ipc/"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=513d94a7390d4d72f3475e2d45c739b5"
+
+PYPI_PACKAGE = "posix_ipc"
+
+SRC_URI[sha256sum] = "e2456ba0cfb2ee5ba14121450e8d825b3c4a1461fca0761220aab66d4111cbb7"
+
+inherit setuptools3 pypi
diff --git a/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb b/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
index a45ef45f32..a4732993f8 100644
--- a/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
+++ b/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
@@ -15,7 +15,6 @@ SRC_URI = "git://github.com/seveas/python-prctl;protocol=https;branch=main \
file://0001-support-cross-complication.patch \
"
inherit setuptools3 python3native
-PIP_INSTALL_PACKAGE = "python_prctl"
DEPENDS += "libcap"
diff --git a/meta-python/recipes-devtools/python/python3-precise-runner/run-ptest b/meta-python/recipes-devtools/python/python3-precise-runner/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-precise-runner/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-precise-runner/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-precise-runner_0.3.1.bb b/meta-python/recipes-devtools/python/python3-precise-runner_0.3.1.bb
index 9e5435bada..1fb72de126 100644
--- a/meta-python/recipes-devtools/python/python3-precise-runner_0.3.1.bb
+++ b/meta-python/recipes-devtools/python/python3-precise-runner_0.3.1.bb
@@ -13,7 +13,8 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-prettytable/run-ptest b/meta-python/recipes-devtools/python/python3-prettytable/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-prettytable/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-prettytable/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-prettytable_3.10.0.bb b/meta-python/recipes-devtools/python/python3-prettytable_3.10.0.bb
new file mode 100644
index 0000000000..35e9ab1798
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-prettytable_3.10.0.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Python library for displaying tabular data in a ASCII table format"
+HOMEPAGE = "http://code.google.com/p/prettytable"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c9a6829fcd174d9535b46211917c7671"
+
+
+SRC_URI[sha256sum] = "9665594d137fb08a1117518c25551e0ede1687197cf353a4fdc78d27e1073568"
+SRC_URI += " \
+ file://run-ptest \
+"
+inherit pypi ptest python_hatchling
+
+do_install:append() {
+ perm_files=`find "${D}${PYTHON_SITEPACKAGES_DIR}/" -name "*.txt" -o -name "PKG-INFO"`
+ for f in $perm_files; do
+ chmod 644 "${f}"
+ done
+}
+
+DEPENDS += "\
+ python3-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-html \
+ python3-importlib-metadata \
+ python3-json \
+ python3-math \
+ python3-wcwidth \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-pytest-lazy-fixtures \
+ python3-sqlite3 \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-prettytable_3.4.1.bb b/meta-python/recipes-devtools/python/python3-prettytable_3.4.1.bb
deleted file mode 100644
index c8b50f0b2d..0000000000
--- a/meta-python/recipes-devtools/python/python3-prettytable_3.4.1.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Python library for displaying tabular data in a ASCII table format"
-HOMEPAGE = "http://code.google.com/p/prettytable"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c9a6829fcd174d9535b46211917c7671"
-
-SRC_URI[sha256sum] = "7d7dd84d0b206f2daac4471a72f299d6907f34516064feb2838e333a4e2567bd"
-
-do_install:append() {
- perm_files=`find "${D}${PYTHON_SITEPACKAGES_DIR}/" -name "*.txt" -o -name "PKG-INFO"`
- for f in $perm_files; do
- chmod 644 "${f}"
- done
-}
-
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/PrettyTable/"
-UPSTREAM_CHECK_REGEX = "/PrettyTable/(?P<pver>(\d+[\.\-_]*)+)"
-
-BBCLASSEXTEND = "native nativesdk"
-inherit pypi ptest setuptools3
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-math \
- ${PYTHON_PN}-html \
- ${PYTHON_PN}-wcwidth \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-importlib-metadata \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-pytest-lazy-fixture \
- ${PYTHON_PN}-sqlite3 \
-"
-
-do_install_ptest() {
- cp -f ${S}/tests/test_prettytable.py ${D}${PTEST_PATH}/
-}
diff --git a/meta-python/recipes-devtools/python/python3-process-tests_2.1.2.bb b/meta-python/recipes-devtools/python/python3-process-tests_2.1.2.bb
deleted file mode 100644
index 24ab0399f9..0000000000
--- a/meta-python/recipes-devtools/python/python3-process-tests_2.1.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Tools for testing processes."
-HOMEPAGE = "https://github.com/ionelmc/python-process-tests"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=37031056aff37e4b3310872a9a3d0b1e"
-
-SRC_URI[sha256sum] = "a3747ad947bdfc93e5c986bdb17a6d718f3f26e8577a0807a00962f29e26deba"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "python3-core"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-process-tests_3.0.0.bb b/meta-python/recipes-devtools/python/python3-process-tests_3.0.0.bb
new file mode 100644
index 0000000000..a16497b984
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-process-tests_3.0.0.bb
@@ -0,0 +1,21 @@
+# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Tools for testing processes."
+HOMEPAGE = "https://github.com/ionelmc/python-process-tests"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aea36d49429f53e06868d87cd9d62349"
+
+SRC_URI[sha256sum] = "e5d57dea7161251e91cadb84bf3ecc85275fb121fd478e579f800777b1d424bd"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-core"
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+ python3-io \
+ python3-logging \
+ python3-unittest \
+"
diff --git a/meta-python/recipes-devtools/python/python3-progress_1.6.bb b/meta-python/recipes-devtools/python/python3-progress_1.6.bb
index 1333da98da..59d1f90e98 100644
--- a/meta-python/recipes-devtools/python/python3-progress_1.6.bb
+++ b/meta-python/recipes-devtools/python/python3-progress_1.6.bb
@@ -8,8 +8,8 @@ SRC_URI[sha256sum] = "c9c86e98b5c03fa1fe11e3b67c1feda4788b8d0fe7336c2ff7d5644ccf
inherit pypi setuptools3
RDEPENDS:${PN}:class-target += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-math \
+ python3-datetime \
+ python3-math \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.31.bb b/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.31.bb
deleted file mode 100644
index 0b8962dedf..0000000000
--- a/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.31.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Library for building powerful interactive command lines in Python"
-HOMEPAGE = "https://python-prompt-toolkit.readthedocs.io/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f"
-
-SRC_URI[sha256sum] = "9ada952c9d1787f52ff6d5f3484d0b4df8952787c087edf6a1f7c2cb1ea88148"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "prompt_toolkit"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-terminal \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-wcwidth \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-image \
- ${PYTHON_PN}-asyncio \
- ${PYTHON_PN}-xml \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.43.bb b/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.43.bb
new file mode 100644
index 0000000000..8b3b709763
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.43.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Library for building powerful interactive command lines in Python"
+HOMEPAGE = "https://python-prompt-toolkit.readthedocs.io/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f"
+
+SRC_URI[sha256sum] = "3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "prompt_toolkit"
+
+RDEPENDS:${PN} += " \
+ python3-core \
+ python3-six \
+ python3-terminal \
+ python3-threading \
+ python3-wcwidth \
+ python3-datetime \
+ python3-shell \
+ python3-image \
+ python3-asyncio \
+ python3-xml \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-protobuf_4.21.6.bb b/meta-python/recipes-devtools/python/python3-protobuf_4.21.6.bb
deleted file mode 100644
index 96b3d02120..0000000000
--- a/meta-python/recipes-devtools/python/python3-protobuf_4.21.6.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-DESCRIPTION = "Protocol Buffers"
-HOMEPAGE = "https://developers.google.com/protocol-buffers/"
-SECTION = "devel/python"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=53dbfa56f61b90215a9f8f0d527c043d"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "6b1040a5661cd5f6e610cbca9cfaa2a17d60e2bb545309bc1b278bb05be44bdd"
-
-# http://errors.yoctoproject.org/Errors/Details/184715/
-# Can't find required file: ../src/google/protobuf/descriptor.proto
-CLEANBROKEN = "1"
-
-UPSTREAM_CHECK_REGEX = "protobuf/(?P<pver>\d+(\.\d+)+)/"
-
-DEPENDS += "protobuf"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-pkgutil \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-unittest \
-"
-
-# For usage in other recipies when compiling protobuf files (e.g. by grpcio-tools)
-BBCLASSEXTEND = "native nativesdk"
-
-DISTUTILS_BUILD_ARGS += "--cpp_implementation"
-DISTUTILS_INSTALL_ARGS += "--cpp_implementation"
-
-do_compile:prepend:class-native () {
- export KOKORO_BUILD_NUMBER="1"
-}
diff --git a/meta-python/recipes-devtools/python/python3-protobuf_4.25.3.bb b/meta-python/recipes-devtools/python/python3-protobuf_4.25.3.bb
new file mode 100644
index 0000000000..8bb8a93f76
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-protobuf_4.25.3.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "Protocol Buffers"
+HOMEPAGE = "https://developers.google.com/protocol-buffers/"
+SECTION = "devel/python"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=53dbfa56f61b90215a9f8f0d527c043d"
+
+inherit pypi setuptools3
+SRC_URI[sha256sum] = "25b5d0b42fd000320bd7830b349e3b696435f3b329810427a6bcce6a5492cc5c"
+
+# http://errors.yoctoproject.org/Errors/Details/184715/
+# Can't find required file: ../src/google/protobuf/descriptor.proto
+CLEANBROKEN = "1"
+
+UPSTREAM_CHECK_REGEX = "protobuf/(?P<pver>\d+(\.\d+)+)/"
+
+DEPENDS += "protobuf"
+
+RDEPENDS:${PN} += " \
+ python3-datetime \
+ python3-json \
+ python3-logging \
+ python3-netclient \
+ python3-numbers \
+ python3-pkgutil \
+ python3-six \
+ python3-unittest \
+"
+
+# For usage in other recipies when compiling protobuf files (e.g. by grpcio-tools)
+BBCLASSEXTEND = "native nativesdk"
+
+DISTUTILS_BUILD_ARGS += "--cpp_implementation"
+DISTUTILS_INSTALL_ARGS += "--cpp_implementation"
+
+do_compile:prepend:class-native () {
+ export KOKORO_BUILD_NUMBER="1"
+}
diff --git a/meta-python/recipes-devtools/python/python3-ptyprocess/run-ptest b/meta-python/recipes-devtools/python/python3-ptyprocess/run-ptest
index 15c3f6282d..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-ptyprocess/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-ptyprocess/run-ptest
@@ -1,3 +1,3 @@
-#!/bin/sh
+#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb b/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb
index 2a8b8730c4..4abec0a01c 100644
--- a/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb
+++ b/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb
@@ -15,10 +15,10 @@ UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/ptyprocess"
S = "${WORKDIR}/${SRCNAME}-${PV}"
RDEPENDS:${PN} = "\
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-fcntl \
- ${PYTHON_PN}-terminal \
- ${PYTHON_PN}-resource \
+ python3-core \
+ python3-fcntl \
+ python3-terminal \
+ python3-resource \
"
BBCLASSEXTEND = "native nativesdk"
@@ -30,11 +30,12 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-fcntl \
- ${PYTHON_PN}-terminal \
- ${PYTHON_PN}-resource \
- bash \
+ bash \
+ python3-fcntl \
+ python3-pytest \
+ python3-resource \
+ python3-terminal \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-pulsectl_22.3.2.bb b/meta-python/recipes-devtools/python/python3-pulsectl_22.3.2.bb
deleted file mode 100644
index c13c677899..0000000000
--- a/meta-python/recipes-devtools/python/python3-pulsectl_22.3.2.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Python (3.x and 2.x) high-level interface and ctypes-based bindings for PulseAudio (libpulse), mostly focused on mixer-like controls and introspection-related operations (as opposed to e.g. submitting sound samples to play, player-like client)."
-HOMEPAGE = "https://github.com/mk-fg/python-pulse-control"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f1d10048469ff90123263eb5e214061d"
-
-SRC_URI[sha256sum] = "cc174e1ceebd4e6222c5b78f4f415f12e80753c9ab75ab354159b4cb5950b084"
-
-RDEPENDS:${PN} += " \
- libpulse \
- python3-ctypes \
-"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-pulsectl_23.5.2.bb b/meta-python/recipes-devtools/python/python3-pulsectl_23.5.2.bb
new file mode 100644
index 0000000000..4da72904f1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pulsectl_23.5.2.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Python (3.x and 2.x) high-level interface and ctypes-based bindings for PulseAudio (libpulse), mostly focused on mixer-like controls and introspection-related operations (as opposed to e.g. submitting sound samples to play, player-like client)."
+HOMEPAGE = "https://github.com/mk-fg/python-pulse-control"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f1d10048469ff90123263eb5e214061d"
+
+SRC_URI[sha256sum] = "e911d398eaf0539cf3c63b4217357b51a3d1b7e4a50607d1591cf2b49f5d2c6a"
+
+RDEPENDS:${PN} += " \
+ libpulse \
+ python3-ctypes \
+"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-pure-eval_0.2.2.bb b/meta-python/recipes-devtools/python/python3-pure-eval_0.2.2.bb
new file mode 100644
index 0000000000..66e4673a70
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pure-eval_0.2.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Safely evaluate AST nodes without side effects"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a3d6c15f7859ae235a78f2758e5a48cf"
+
+DEPENDS = "python3-setuptools-scm-native"
+
+PYPI_PACKAGE = "pure_eval"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"
+
+RDEPENDS:${PN} += " \
+ python3-datetime \
+ python3-numbers \
+"
diff --git a/meta-python/recipes-devtools/python/python3-py-cpuinfo/0001-test_cli.py-disable.patch b/meta-python/recipes-devtools/python/python3-py-cpuinfo/0001-test_cli.py-disable.patch
new file mode 100644
index 0000000000..e4165d2d66
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-py-cpuinfo/0001-test_cli.py-disable.patch
@@ -0,0 +1,32 @@
+From 620cb80b0bb5ec58fe15592f033487a4e1cd3859 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Thu, 12 Oct 2023 16:46:53 -0400
+Subject: [PATCH] test_cli.py: disable
+
+These tests fail if .../site-packages/cpuinfo/cpuinfo.py isn't
+executable, but setting it so during do_install doesn't seem to work.
+Disable them for now so that the ptests work with the remaining ~150
+successes.
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ tests/test_cli.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/test_cli.py b/tests/test_cli.py
+index a6b1985..43c4334 100644
+--- a/tests/test_cli.py
++++ b/tests/test_cli.py
+@@ -6,6 +6,7 @@ import helpers
+
+
+
++@unittest.skip("Disable while permissions issues are figured out")
+ class TestCLI(unittest.TestCase):
+ def setUp(self):
+ helpers.backup_data_source(cpuinfo)
+--
+2.41.0
+
diff --git a/meta-python/recipes-devtools/python/python3-py-cpuinfo/run-ptest b/meta-python/recipes-devtools/python/python3-py-cpuinfo/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-py-cpuinfo/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-py-cpuinfo/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-py-cpuinfo_8.0.0.bb b/meta-python/recipes-devtools/python/python3-py-cpuinfo_8.0.0.bb
deleted file mode 100644
index 6de2f17459..0000000000
--- a/meta-python/recipes-devtools/python/python3-py-cpuinfo_8.0.0.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Get CPU info with pure Python 2 & 3"
-HOMEPAGE = "https://github.com/workhorsy/py-cpuinfo"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b0b97c022f12b14d9e02de0b283ee9e9"
-
-SRC_URI[sha256sum] = "5f269be0e08e33fd959de96b34cd4aeeeacac014dd8305f70eb28d06de2345c5"
-
-inherit ptest pypi setuptools3
-
-SRC_URI += "file://run-ptest \
- "
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN}-ptest += "\
- python3-pytest \
-"
-
-RDEPENDS:${PN} += "python3-core python3-ctypes python3-datetime python3-json python3-io python3-mmap python3-multiprocessing python3-netclient python3-pickle python3-pprint python3-shell"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-py-cpuinfo_9.0.0.bb b/meta-python/recipes-devtools/python/python3-py-cpuinfo_9.0.0.bb
new file mode 100644
index 0000000000..857afd1db7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-py-cpuinfo_9.0.0.bb
@@ -0,0 +1,36 @@
+# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Get CPU info with pure Python 2 & 3"
+HOMEPAGE = "https://github.com/workhorsy/py-cpuinfo"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2379ecb0d7a8299101b1e4c160cd1f7"
+
+SRC_URI[sha256sum] = "3cdbbf3fac90dc6f118bfd64384f309edeadd902d7c8fb17f02ffa1fc3f49690"
+
+inherit ptest pypi setuptools3
+
+SRC_URI += "file://run-ptest \
+ file://0001-test_cli.py-disable.patch \
+ "
+
+do_install:append() {
+ # Make sure we use /usr/bin/env python3
+ for PYTHSCRIPT in `grep -rIl '^#!.*python' ${D}`; do
+ sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT
+ done
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN}-ptest += "\
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+RDEPENDS:${PN} += "python3-core python3-ctypes python3-datetime python3-json python3-io python3-mmap python3-multiprocessing python3-netclient python3-pickle python3-pprint python3-shell"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-py-ubjson_0.16.1.bb b/meta-python/recipes-devtools/python/python3-py-ubjson_0.16.1.bb
index 222eb1e0e8..0db9d65fd3 100644
--- a/meta-python/recipes-devtools/python/python3-py-ubjson_0.16.1.bb
+++ b/meta-python/recipes-devtools/python/python3-py-ubjson_0.16.1.bb
@@ -8,7 +8,7 @@ SRC_URI[sha256sum] = "b9bfb8695a1c7e3632e800fb83c943bf67ed45ddd87cd0344851610c69
inherit pypi setuptools3
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-numbers \
+ python3-numbers \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-py7zr_0.20.8.bb b/meta-python/recipes-devtools/python/python3-py7zr_0.20.8.bb
new file mode 100644
index 0000000000..3d48b5116f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-py7zr_0.20.8.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Pure Python 7-zip library"
+HOMEPAGE = "https://py7zr.readthedocs.io/en/latest/"
+LICENSE = "LGPL-2.1-or-later"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI[sha256sum] = "2a6b0db0441e63a2dd74cbd18f5d9ae7e08dc0e54685aa486361d0db6a0b4f78"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += " \
+ python3-setuptools-scm-native \
+ python3-toml-native \
+ python3-wheel-native \
+"
+
+RDEPENDS:${PN} += "\
+ python3-pycryptodomex \
+ python3-multivolumefile \
+ python3-pybcj \
+ python3-inflate64 \
+ python3-pyppmd \
+ python3-pyzstd \
+ python3-brotli \
+ python3-multiprocessing \
+ python3-datetime \
+ python3-core \
+ python3-threading \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.10.0.bb b/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.10.0.bb
new file mode 100644
index 0000000000..8b22faad3a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.10.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "ALSA bindings"
+SECTION = "devel/python"
+LICENSE = "PSF-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1a3b161aa0fcec32a0c8907a2219ad9d"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "e21175500a2bd310ae3867e7991639defc1e2a5c92cf1b9f7083296b346738ab"
+
+DEPENDS += "alsa-lib"
+
+RDEPENDS:${PN} += "libasound"
diff --git a/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.2.bb b/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.2.bb
deleted file mode 100644
index e7e706c6cf..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.9.2.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "ALSA bindings"
-SECTION = "devel/python"
-LICENSE = "PSF-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1a3b161aa0fcec32a0c8907a2219ad9d"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "e74a66d6c7a6bcceb990df66d3ebc0fe382fc9d765f35f050f9d98c695304b36"
-
-DEPENDS += "alsa-lib"
-
-RDEPENDS:${PN} += "libasound"
diff --git a/meta-python/recipes-devtools/python/python3-pyasn1-modules/run-ptest b/meta-python/recipes-devtools/python/python3-pyasn1-modules/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-pyasn1-modules/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-pyasn1-modules/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.8.bb b/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.8.bb
deleted file mode 100644
index d6a2749c24..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.8.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "A collection of ASN.1-based protocols modules."
-DESCRIPTION = "A collection of ASN.1 modules expressed in form of pyasn1\
- classes. Includes protocols PDUs definition (SNMP, LDAP etc.) and various\
- data structures (X.509, PKCS etc.)."
-HOMEPAGE = "https://github.com/etingof/pyasn1-modules"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a14482d15c2249de3b6f0e8a47e021fd"
-
-SRC_URI[md5sum] = "107e1ece7d0a41d782f69f8a95a4d9bc"
-SRC_URI[sha256sum] = "905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e"
-
-inherit pypi ptest setuptools3
-
-RDEPENDS:${PN} = "${PYTHON_PN}-pyasn1"
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.4.0.bb b/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.4.0.bb
new file mode 100644
index 0000000000..34f3639e53
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.4.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "A collection of ASN.1-based protocols modules."
+DESCRIPTION = "A collection of ASN.1 modules expressed in form of pyasn1\
+ classes. Includes protocols PDUs definition (SNMP, LDAP etc.) and various\
+ data structures (X.509, PKCS etc.)."
+HOMEPAGE = "https://github.com/etingof/pyasn1-modules"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=190f79253908c986e6cacf380c3a5f6d"
+
+SRC_URI[sha256sum] = "831dbcea1b177b28c9baddf4c6d1013c24c3accd14a1873fffaa6a2e905f17b6"
+
+PYPI_PACKAGE = "pyasn1_modules"
+
+inherit pypi ptest setuptools3
+
+RDEPENDS:${PN} = "python3-pyasn1"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-pyatspi_2.38.2.bb b/meta-python/recipes-devtools/python/python3-pyatspi_2.38.2.bb
deleted file mode 100644
index 7c822ac23f..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyatspi_2.38.2.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Python bindings for DBus AT-SPI2 accessibility"
-DESCRIPTION = "AT-SPI2 is a protocol over DBus, toolkit widgets use to provide content to screen readers such as Orca"
-SECTION = "devel/python"
-HOMEPAGE = "https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=db29218e6ba3794c56df7d4987dc7e4d \
- file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "python3-dbus-native glib-2.0 dbus-glib libxml2 atk gtk+ python3-pygobject"
-
-SRC_URI = "git://github.com/GNOME/pyatspi2.git;protocol=https;branch=master"
-SRCREV = "141a53029b3e16bfa5f100ae54a77234a9bf3426"
-
-S = "${WORKDIR}/git"
-
-# Same restriction as gtk+
-inherit features_check setuptools3
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-
-inherit pkgconfig autotools python3native
-
-FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/pyatspi/*"
diff --git a/meta-python/recipes-devtools/python/python3-pyatspi_2.46.1.bb b/meta-python/recipes-devtools/python/python3-pyatspi_2.46.1.bb
new file mode 100644
index 0000000000..2b6a6c2c0e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyatspi_2.46.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Python bindings for DBus AT-SPI2 accessibility"
+DESCRIPTION = "AT-SPI2 is a protocol over DBus, toolkit widgets use to provide content to screen readers such as Orca"
+SECTION = "devel/python"
+HOMEPAGE = "https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=db29218e6ba3794c56df7d4987dc7e4d \
+ file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
+DEPENDS = "python3-dbus-native glib-2.0 dbus-glib libxml2 atk gtk+ python3-pygobject"
+
+SRC_URI = "git://github.com/GNOME/pyatspi2.git;protocol=https;branch=master"
+SRCREV = "8c69016b38d0e4caaf4c986938ea3410fb7351b6"
+
+S = "${WORKDIR}/git"
+
+# Same restriction as gtk+
+inherit features_check setuptools3
+ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+
+inherit pkgconfig autotools python3native
+
+FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/pyatspi/*"
+
+RDEPENDS:${PN} += "python3-pygobject"
diff --git a/meta-python/recipes-devtools/python/python3-pyaudio/0001-Remove-absolute-paths-into-build-machine-system-dirs.patch b/meta-python/recipes-devtools/python/python3-pyaudio/0001-Remove-absolute-paths-into-build-machine-system-dirs.patch
new file mode 100644
index 0000000000..a71902a362
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyaudio/0001-Remove-absolute-paths-into-build-machine-system-dirs.patch
@@ -0,0 +1,28 @@
+From d94518b558c1812aecb87d8ef19d75c2df1b98a5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 26 Jul 2023 19:54:19 -0700
+Subject: [PATCH] Remove absolute paths into build machine system dirs
+
+This ensures that it does not add /usr/include and /usr/local/include/
+into cflags
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ setup.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/setup.py
++++ b/setup.py
+@@ -111,11 +111,6 @@ def setup_extension():
+ # the standard portaudio cmake settings. For details, see:
+ # https://devblogs.microsoft.com/cppblog/vcpkg-updates-static-linking-is-now-available/
+ extra_compile_args += ["/MT"]
+- else:
+- # GNU/Linux and other posix-like OSes will dynamically link to
+- # portaudio, installed by the package manager.
+- include_dirs += ['/usr/local/include', '/usr/include']
+- external_libraries_path += ['/usr/local/lib', '/usr/lib']
+
+ return Extension(
+ 'pyaudio._portaudio',
diff --git a/meta-python/recipes-devtools/python/python3-pyaudio_0.2.11.bb b/meta-python/recipes-devtools/python/python3-pyaudio_0.2.11.bb
deleted file mode 100644
index 802ca35100..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyaudio_0.2.11.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "PyAudio provides Python bindings for PortAudio, the cross-platform audio I/O library"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://README;md5=288793c2b9b05bd67abbd2a8f5d144f7"
-
-PYPI_PACKAGE = "PyAudio"
-
-SRC_URI[md5sum] = "7e4c88139284033f67b4336c74eda3b8"
-SRC_URI[sha256sum] = "93bfde30e0b64e63a46f2fd77e85c41fd51182a4a3413d9edfaf9ffaa26efb74"
-
-inherit pypi setuptools3
-
-DEPENDS += "portaudio-v19"
-
-RDEPENDS:${PN} += "portaudio-v19"
diff --git a/meta-python/recipes-devtools/python/python3-pyaudio_0.2.14.bb b/meta-python/recipes-devtools/python/python3-pyaudio_0.2.14.bb
new file mode 100644
index 0000000000..1599ea8347
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyaudio_0.2.14.bb
@@ -0,0 +1,16 @@
+SUMMARY = "PyAudio provides Python bindings for PortAudio, the cross-platform audio I/O library"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7c3152b432b96d6dc4a1cb35397da9ec"
+
+PYPI_PACKAGE = "PyAudio"
+
+SRC_URI[sha256sum] = "78dfff3879b4994d1f4fc6485646a57755c6ee3c19647a491f790a0895bd2f87"
+
+inherit pypi setuptools3
+
+SRC_URI += "file://0001-Remove-absolute-paths-into-build-machine-system-dirs.patch"
+
+DEPENDS += "portaudio-v19"
+
+RDEPENDS:${PN} += "portaudio-v19"
diff --git a/meta-python/recipes-devtools/python/python3-pybcj_1.0.2.bb b/meta-python/recipes-devtools/python/python3-pybcj_1.0.2.bb
new file mode 100644
index 0000000000..8cb176f2b5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pybcj_1.0.2.bb
@@ -0,0 +1,24 @@
+SUMMARY = "bcj filter library"
+HOMEPAGE = "https://codeberg.org/miurahr/pybcj"
+LICENSE = "LGPL-2.1-or-later"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI[sha256sum] = "c7f5bef7f47723c53420e377bc64d2553843bee8bcac5f0ad076ab1524780018"
+
+inherit pypi python_setuptools_build_meta pypi
+
+#PROVIDES = "python3-pybcj"
+
+DEPENDS += " \
+ python3-setuptools-scm-native \
+ python3-toml-native \
+ python3-wheel-native \
+"
+
+RDEPENDS:${PN} += "\
+ python3-email \
+ python3-importlib-metadata \
+ python3-core \
+ python3-compression \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.11.bb b/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.11.bb
deleted file mode 100644
index e06579a6cc..0000000000
--- a/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.11.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Using nlohmann::json with pybind11"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0e25ff0ec476d06d366439e1120cce98"
-
-SRCREV = "0fbbe3bbb27bd07a5ec7d71cbb1f17eaf4d37702"
-SRC_URI = "git://github.com/pybind/pybind11_json;branch=master;protocol=https"
-
-DEPENDS += "nlohmann-json python3-pybind11"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
diff --git a/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.13.bb b/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.13.bb
new file mode 100644
index 0000000000..67bd2a33a7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pybind11-json_0.2.13.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Using nlohmann::json with pybind11"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0e25ff0ec476d06d366439e1120cce98"
+
+SRCREV = "b02a2ad597d224c3faee1f05a56d81d4c4453092"
+SRC_URI = "git://github.com/pybind/pybind11_json;branch=master;protocol=https"
+
+DEPENDS += "nlohmann-json python3-pybind11"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch b/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch
index 699eb61550..91575d2712 100644
--- a/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch
+++ b/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch
@@ -7,20 +7,24 @@ Subject: [PATCH] Do not strip binaries.
Signed-off-by: Philip Balister <philip@balister.org>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+
+Upstream-Status: Pending
---
- tools/pybind11NewTools.cmake | 5 -----
- tools/pybind11Tools.cmake | 4 ----
- 2 files changed, 9 deletions(-)
+ tools/pybind11NewTools.cmake | 7 -------
+ tools/pybind11Tools.cmake | 6 ------
+ 2 files changed, 13 deletions(-)
diff --git a/tools/pybind11NewTools.cmake b/tools/pybind11NewTools.cmake
-index 18da8be1..82ebf5e7 100644
+index 7d7424a7..accd90c4 100644
--- a/tools/pybind11NewTools.cmake
+++ b/tools/pybind11NewTools.cmake
-@@ -246,11 +246,6 @@ function(pybind11_add_module target_name)
+@@ -233,13 +233,6 @@ function(pybind11_add_module target_name)
endif()
endif()
-- if(NOT MSVC AND NOT ${CMAKE_BUILD_TYPE} MATCHES Debug|RelWithDebInfo)
+- # Use case-insensitive comparison to match the result of $<CONFIG:cfgs>
+- string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
+- if(NOT MSVC AND NOT "${uppercase_CMAKE_BUILD_TYPE}" MATCHES DEBUG|RELWITHDEBINFO)
- # Strip unnecessary sections of the binary on Linux/macOS
- pybind11_strip(${target_name})
- endif()
@@ -29,14 +33,16 @@ index 18da8be1..82ebf5e7 100644
target_link_libraries(${target_name} PRIVATE pybind11::windows_extras)
endif()
diff --git a/tools/pybind11Tools.cmake b/tools/pybind11Tools.cmake
-index 32313539..a7d81012 100644
+index 66ad00a4..855ede41 100644
--- a/tools/pybind11Tools.cmake
+++ b/tools/pybind11Tools.cmake
-@@ -201,10 +201,6 @@ function(pybind11_add_module target_name)
+@@ -212,12 +212,6 @@ function(pybind11_add_module target_name)
endif()
endif()
-- if(NOT MSVC AND NOT ${CMAKE_BUILD_TYPE} MATCHES Debug|RelWithDebInfo)
+- # Use case-insensitive comparison to match the result of $<CONFIG:cfgs>
+- string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
+- if(NOT MSVC AND NOT "${uppercase_CMAKE_BUILD_TYPE}" MATCHES DEBUG|RELWITHDEBINFO)
- pybind11_strip(${target_name})
- endif()
-
@@ -44,5 +50,5 @@ index 32313539..a7d81012 100644
target_link_libraries(${target_name} PRIVATE pybind11::windows_extras)
endif()
--
-2.17.1
+2.39.2
diff --git a/meta-python/recipes-devtools/python/python3-pybind11_2.10.0.bb b/meta-python/recipes-devtools/python/python3-pybind11_2.10.0.bb
deleted file mode 100644
index 66aefac3d6..0000000000
--- a/meta-python/recipes-devtools/python/python3-pybind11_2.10.0.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Seamless operability between C++11 and Python"
-HOMEPAGE = "https://github.com/wjakob/pybind11"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=774f65abd8a7fe3124be2cdf766cd06f"
-
-DEPENDS = "boost"
-
-SRC_URI = "git://github.com/pybind/pybind11.git;branch=stable;protocol=https \
- file://0001-Do-not-strip-binaries.patch \
-"
-
-SRCREV = "aa304c9c7d725ffb9d10af08a3b34cb372307020"
-
-S = "${WORKDIR}/git"
-
-BBCLASSEXTEND = "native"
-
-EXTRA_OECMAKE = "-DPYBIND11_TEST=OFF"
-
-inherit cmake setuptools3 python3native
-
-PIP_INSTALL_DIST_PATH = "${S}/dist"
-PIP_INSTALL_PACKAGE = "pybind11"
-
-do_configure() {
- cmake_do_configure
-}
-
-do_compile() {
- setuptools3_do_compile
- cmake_do_compile
-}
-
-do_install() {
- setuptools3_do_install
- cmake_do_install
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb b/meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb
new file mode 100644
index 0000000000..78662fe3cd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Seamless operability between C++11 and Python"
+HOMEPAGE = "https://github.com/pybind/pybind11"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=774f65abd8a7fe3124be2cdf766cd06f"
+DEPENDS = "\
+ python3-cmake-native \
+ python3-ninja-native \
+"
+
+SRCREV = "8a099e44b3d5f85b20f05828d919d2332a8de841"
+SRC_URI = "\
+ git://github.com/pybind/pybind11.git;branch=stable;protocol=https \
+ file://0001-Do-not-strip-binaries.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit cmake python_setuptools_build_meta
+
+EXTRA_OECMAKE = "-DPYBIND11_TEST=OFF"
+
+do_configure:append() {
+ cmake_do_configure
+}
+
+do_compile:append() {
+ cmake_do_compile
+}
+
+do_install:append() {
+ cmake_do_install
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pybluez/0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch b/meta-python/recipes-devtools/python/python3-pybluez/0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch
index 9126aba8d3..fea87a2ff0 100644
--- a/meta-python/recipes-devtools/python/python3-pybluez/0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch
+++ b/meta-python/recipes-devtools/python/python3-pybluez/0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch
@@ -19,9 +19,10 @@ From python 3.8 changes:
> values for detail. (Contributed by Inada Naoki in bpo-36381.)
Fixes https://github.com/pybluez/pybluez/issues/426
----
-Upstream-Status: Accepted
+Upstream-Status: Backport [https://github.com/pybluez/pybluez/pull/427]
+Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
+---
bluez/btmodule.c | 23 ++++++++++++++---------
msbt/_msbt.c | 6 ++++--
2 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/meta-python/recipes-devtools/python/python3-pybluez/py-3.11.patch b/meta-python/recipes-devtools/python/python3-pybluez/py-3.11.patch
new file mode 100644
index 0000000000..af4869f735
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pybluez/py-3.11.patch
@@ -0,0 +1,454 @@
+From f83d38687fec2239c517037453ed4a2191279796 Mon Sep 17 00:00:00 2001
+From: Victor Stinner <vstinner@python.org>
+Date: Fri, 28 Jan 2022 00:14:04 +0100
+Subject: [PATCH] Port to Python 3.11 (#410)
+
+* Replace "arg == Py_None" with Py_IsNone(arg)
+* Replace arg->ob_type with Py_TYPE(arg)
+* Replace "Py_TYPE(obj) = type" with Py_SET_TYPE(obj, type).
+* Copy pythoncapi_compat.h from:
+ https://github.com/pythoncapi/pythoncapi_compat
+* pythoncapi_compat.h provides Py_SET_TYPE() and Py_IsNone() to old
+ Python versions.
+
+Upstream-Status: Backport [https://github.com/pybluez/pybluez/commit/5096047f90a1f6a74ceb250aef6243e144170f92]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ bluez/btmodule.c | 14 +-
+ bluez/pythoncapi_compat.h | 364 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 372 insertions(+), 6 deletions(-)
+ create mode 100644 bluez/pythoncapi_compat.h
+
+diff --git a/bluez/btmodule.c b/bluez/btmodule.c
+index 912a489..b61f74a 100644
+--- a/bluez/btmodule.c
++++ b/bluez/btmodule.c
+@@ -21,6 +21,8 @@ Local naming conventions:
+ #include "btmodule.h"
+ #include "structmember.h"
+
++#include "pythoncapi_compat.h"
++
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <stdlib.h>
+@@ -678,7 +680,7 @@ sock_settimeout(PySocketSockObject *s, PyObject *arg)
+ {
+ double timeout;
+
+- if (arg == Py_None)
++ if (Py_IsNone(arg))
+ timeout = -1.0;
+ else {
+ timeout = PyFloat_AsDouble(arg);
+@@ -1752,7 +1754,7 @@ bt_btohl(PyObject *self, PyObject *args)
+ else
+ return PyErr_Format(PyExc_TypeError,
+ "expected int/long, %s found",
+- arg->ob_type->tp_name);
++ Py_TYPE(arg)->tp_name);
+ if (x == (unsigned long) -1 && PyErr_Occurred())
+ return NULL;
+ return PyInt_FromLong(btohl(x));
+@@ -1816,7 +1818,7 @@ bt_htobl(PyObject *self, PyObject *args)
+ else
+ return PyErr_Format(PyExc_TypeError,
+ "expected int/long, %s found",
+- arg->ob_type->tp_name);
++ Py_TYPE(arg)->tp_name);
+ return PyInt_FromLong(htobl(x));
+ }
+
+@@ -1889,7 +1891,7 @@ bt_setdefaulttimeout(PyObject *self, PyObject *arg)
+ {
+ double timeout;
+
+- if (arg == Py_None)
++ if (Py_IsNone(arg))
+ timeout = -1.0;
+ else {
+ timeout = PyFloat_AsDouble(arg);
+@@ -2980,8 +2982,8 @@ PyMODINIT_FUNC
+ init_bluetooth(void)
+ #endif
+ {
+- Py_TYPE(&sock_type) = &PyType_Type;
+- Py_TYPE(&sdp_session_type) = &PyType_Type;
++ Py_SET_TYPE(&sock_type, &PyType_Type);
++ Py_SET_TYPE(&sdp_session_type, &PyType_Type);
+ #if PY_MAJOR_VERSION >= 3
+ PyObject *m = PyModule_Create(&moduledef);
+ #else
+diff --git a/bluez/pythoncapi_compat.h b/bluez/pythoncapi_compat.h
+new file mode 100644
+index 0000000..e660b61
+--- /dev/null
++++ b/bluez/pythoncapi_compat.h
+@@ -0,0 +1,364 @@
++// Header file providing new functions of the Python C API to old Python
++// versions.
++//
++// File distributed under the MIT license.
++// Copyright Contributors to the pythoncapi_compat project.
++//
++// Homepage:
++// https://github.com/pythoncapi/pythoncapi_compat
++//
++// Latest version:
++// https://raw.githubusercontent.com/pythoncapi/pythoncapi_compat/master/pythoncapi_compat.h
++//
++// SPDX-License-Identifier: MIT
++
++#ifndef PYTHONCAPI_COMPAT
++#define PYTHONCAPI_COMPAT
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#include <Python.h>
++#include "frameobject.h" // PyFrameObject, PyFrame_GetBack()
++
++
++// Compatibility with Visual Studio 2013 and older which don't support
++// the inline keyword in C (only in C++): use __inline instead.
++#if (defined(_MSC_VER) && _MSC_VER < 1900 \
++ && !defined(__cplusplus) && !defined(inline))
++# define inline __inline
++# define PYTHONCAPI_COMPAT_MSC_INLINE
++ // These two macros are undefined at the end of this file
++#endif
++
++
++// Cast argument to PyObject* type.
++#ifndef _PyObject_CAST
++# define _PyObject_CAST(op) ((PyObject*)(op))
++#endif
++#ifndef _PyObject_CAST_CONST
++# define _PyObject_CAST_CONST(op) ((const PyObject*)(op))
++#endif
++
++
++// bpo-42262 added Py_NewRef() to Python 3.10.0a3
++#if PY_VERSION_HEX < 0x030A00A3 && !defined(Py_NewRef)
++static inline PyObject* _Py_NewRef(PyObject *obj)
++{
++ Py_INCREF(obj);
++ return obj;
++}
++#define Py_NewRef(obj) _Py_NewRef(_PyObject_CAST(obj))
++#endif
++
++
++// bpo-42262 added Py_XNewRef() to Python 3.10.0a3
++#if PY_VERSION_HEX < 0x030A00A3 && !defined(Py_XNewRef)
++static inline PyObject* _Py_XNewRef(PyObject *obj)
++{
++ Py_XINCREF(obj);
++ return obj;
++}
++#define Py_XNewRef(obj) _Py_XNewRef(_PyObject_CAST(obj))
++#endif
++
++
++// See https://bugs.python.org/issue42522
++#if !defined(_Py_StealRef)
++static inline PyObject* __Py_StealRef(PyObject *obj)
++{
++ Py_DECREF(obj);
++ return obj;
++}
++#define _Py_StealRef(obj) __Py_StealRef(_PyObject_CAST(obj))
++#endif
++
++
++// See https://bugs.python.org/issue42522
++#if !defined(_Py_XStealRef)
++static inline PyObject* __Py_XStealRef(PyObject *obj)
++{
++ Py_XDECREF(obj);
++ return obj;
++}
++#define _Py_XStealRef(obj) __Py_XStealRef(_PyObject_CAST(obj))
++#endif
++
++
++// bpo-39573 added Py_SET_REFCNT() to Python 3.9.0a4
++#if PY_VERSION_HEX < 0x030900A4 && !defined(Py_SET_REFCNT)
++static inline void _Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt)
++{
++ ob->ob_refcnt = refcnt;
++}
++#define Py_SET_REFCNT(ob, refcnt) _Py_SET_REFCNT(_PyObject_CAST(ob), refcnt)
++#endif
++
++
++// Py_SETREF() and Py_XSETREF() were added to Python 3.5.2.
++// It is excluded from the limited C API.
++#if (PY_VERSION_HEX < 0x03050200 && !defined(Py_SETREF)) && !defined(Py_LIMITED_API)
++#define Py_SETREF(op, op2) \
++ do { \
++ PyObject *_py_tmp = _PyObject_CAST(op); \
++ (op) = (op2); \
++ Py_DECREF(_py_tmp); \
++ } while (0)
++
++#define Py_XSETREF(op, op2) \
++ do { \
++ PyObject *_py_tmp = _PyObject_CAST(op); \
++ (op) = (op2); \
++ Py_XDECREF(_py_tmp); \
++ } while (0)
++#endif
++
++
++// bpo-43753 added Py_Is(), Py_IsNone(), Py_IsTrue() and Py_IsFalse()
++// to Python 3.10.0b1.
++#if PY_VERSION_HEX < 0x030A00B1 && !defined(Py_Is)
++# define Py_Is(x, y) ((x) == (y))
++#endif
++#if PY_VERSION_HEX < 0x030A00B1 && !defined(Py_IsNone)
++# define Py_IsNone(x) Py_Is(x, Py_None)
++#endif
++#if PY_VERSION_HEX < 0x030A00B1 && !defined(Py_IsTrue)
++# define Py_IsTrue(x) Py_Is(x, Py_True)
++#endif
++#if PY_VERSION_HEX < 0x030A00B1 && !defined(Py_IsFalse)
++# define Py_IsFalse(x) Py_Is(x, Py_False)
++#endif
++
++
++// bpo-39573 added Py_SET_TYPE() to Python 3.9.0a4
++#if PY_VERSION_HEX < 0x030900A4 && !defined(Py_SET_TYPE)
++static inline void
++_Py_SET_TYPE(PyObject *ob, PyTypeObject *type)
++{
++ ob->ob_type = type;
++}
++#define Py_SET_TYPE(ob, type) _Py_SET_TYPE(_PyObject_CAST(ob), type)
++#endif
++
++
++// bpo-39573 added Py_SET_SIZE() to Python 3.9.0a4
++#if PY_VERSION_HEX < 0x030900A4 && !defined(Py_SET_SIZE)
++static inline void
++_Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size)
++{
++ ob->ob_size = size;
++}
++#define Py_SET_SIZE(ob, size) _Py_SET_SIZE((PyVarObject*)(ob), size)
++#endif
++
++
++// bpo-40421 added PyFrame_GetCode() to Python 3.9.0b1
++#if PY_VERSION_HEX < 0x030900B1
++static inline PyCodeObject*
++PyFrame_GetCode(PyFrameObject *frame)
++{
++ assert(frame != NULL);
++ assert(frame->f_code != NULL);
++ return (PyCodeObject*)Py_NewRef(frame->f_code);
++}
++#endif
++
++static inline PyCodeObject*
++_PyFrame_GetCodeBorrow(PyFrameObject *frame)
++{
++ return (PyCodeObject *)_Py_StealRef(PyFrame_GetCode(frame));
++}
++
++
++// bpo-40421 added PyFrame_GetCode() to Python 3.9.0b1
++#if PY_VERSION_HEX < 0x030900B1 && !defined(PYPY_VERSION)
++static inline PyFrameObject*
++PyFrame_GetBack(PyFrameObject *frame)
++{
++ assert(frame != NULL);
++ return (PyFrameObject*)Py_XNewRef(frame->f_back);
++}
++#endif
++
++#if !defined(PYPY_VERSION)
++static inline PyFrameObject*
++_PyFrame_GetBackBorrow(PyFrameObject *frame)
++{
++ return (PyFrameObject *)_Py_XStealRef(PyFrame_GetBack(frame));
++}
++#endif
++
++
++// bpo-39947 added PyThreadState_GetInterpreter() to Python 3.9.0a5
++#if PY_VERSION_HEX < 0x030900A5
++static inline PyInterpreterState *
++PyThreadState_GetInterpreter(PyThreadState *tstate)
++{
++ assert(tstate != NULL);
++ return tstate->interp;
++}
++#endif
++
++
++// bpo-40429 added PyThreadState_GetFrame() to Python 3.9.0b1
++#if PY_VERSION_HEX < 0x030900B1 && !defined(PYPY_VERSION)
++static inline PyFrameObject*
++PyThreadState_GetFrame(PyThreadState *tstate)
++{
++ assert(tstate != NULL);
++ return (PyFrameObject *)Py_XNewRef(tstate->frame);
++}
++#endif
++
++#if !defined(PYPY_VERSION)
++static inline PyFrameObject*
++_PyThreadState_GetFrameBorrow(PyThreadState *tstate)
++{
++ return (PyFrameObject *)_Py_XStealRef(PyThreadState_GetFrame(tstate));
++}
++#endif
++
++
++// bpo-39947 added PyInterpreterState_Get() to Python 3.9.0a5
++#if PY_VERSION_HEX < 0x030900A5
++static inline PyInterpreterState *
++PyInterpreterState_Get(void)
++{
++ PyThreadState *tstate;
++ PyInterpreterState *interp;
++
++ tstate = PyThreadState_GET();
++ if (tstate == NULL) {
++ Py_FatalError("GIL released (tstate is NULL)");
++ }
++ interp = tstate->interp;
++ if (interp == NULL) {
++ Py_FatalError("no current interpreter");
++ }
++ return interp;
++}
++#endif
++
++
++// bpo-39947 added PyInterpreterState_Get() to Python 3.9.0a6
++#if 0x030700A1 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x030900A6 && !defined(PYPY_VERSION)
++static inline uint64_t
++PyThreadState_GetID(PyThreadState *tstate)
++{
++ assert(tstate != NULL);
++ return tstate->id;
++}
++#endif
++
++
++// bpo-37194 added PyObject_CallNoArgs() to Python 3.9.0a1
++#if PY_VERSION_HEX < 0x030900A1
++static inline PyObject*
++PyObject_CallNoArgs(PyObject *func)
++{
++ return PyObject_CallFunctionObjArgs(func, NULL);
++}
++#endif
++
++
++// bpo-39245 made PyObject_CallOneArg() public (previously called
++// _PyObject_CallOneArg) in Python 3.9.0a4
++#if PY_VERSION_HEX < 0x030900A4
++static inline PyObject*
++PyObject_CallOneArg(PyObject *func, PyObject *arg)
++{
++ return PyObject_CallFunctionObjArgs(func, arg, NULL);
++}
++#endif
++
++
++// bpo-1635741 added PyModule_AddObjectRef() to Python 3.10.0a3
++#if PY_VERSION_HEX < 0x030A00A3
++static inline int
++PyModule_AddObjectRef(PyObject *module, const char *name, PyObject *value)
++{
++ Py_XINCREF(value);
++ int res = PyModule_AddObject(module, name, value);
++ if (res < 0) {
++ Py_XDECREF(value);
++ }
++ return res;
++}
++#endif
++
++
++// bpo-40024 added PyModule_AddType() to Python 3.9.0a5
++#if PY_VERSION_HEX < 0x030900A5
++static inline int
++PyModule_AddType(PyObject *module, PyTypeObject *type)
++{
++ const char *name, *dot;
++
++ if (PyType_Ready(type) < 0) {
++ return -1;
++ }
++
++ // inline _PyType_Name()
++ name = type->tp_name;
++ assert(name != NULL);
++ dot = strrchr(name, '.');
++ if (dot != NULL) {
++ name = dot + 1;
++ }
++
++ return PyModule_AddObjectRef(module, name, (PyObject *)type);
++}
++#endif
++
++
++// bpo-40241 added PyObject_GC_IsTracked() to Python 3.9.0a6.
++// bpo-4688 added _PyObject_GC_IS_TRACKED() to Python 2.7.0a2.
++#if PY_VERSION_HEX < 0x030900A6 && !defined(PYPY_VERSION)
++static inline int
++PyObject_GC_IsTracked(PyObject* obj)
++{
++ return (PyObject_IS_GC(obj) && _PyObject_GC_IS_TRACKED(obj));
++}
++#endif
++
++// bpo-40241 added PyObject_GC_IsFinalized() to Python 3.9.0a6.
++// bpo-18112 added _PyGCHead_FINALIZED() to Python 3.4.0 final.
++#if PY_VERSION_HEX < 0x030900A6 && PY_VERSION_HEX >= 0x030400F0 && !defined(PYPY_VERSION)
++static inline int
++PyObject_GC_IsFinalized(PyObject *obj)
++{
++ return (PyObject_IS_GC(obj) && _PyGCHead_FINALIZED((PyGC_Head *)(obj)-1));
++}
++#endif
++
++
++// bpo-39573 added Py_IS_TYPE() to Python 3.9.0a4
++#if PY_VERSION_HEX < 0x030900A4 && !defined(Py_IS_TYPE)
++static inline int
++_Py_IS_TYPE(const PyObject *ob, const PyTypeObject *type) {
++ return ob->ob_type == type;
++}
++#define Py_IS_TYPE(ob, type) _Py_IS_TYPE(_PyObject_CAST_CONST(ob), type)
++#endif
++
++
++// Py_UNUSED() was added to Python 3.4.0b2.
++#if PY_VERSION_HEX < 0x030400B2 && !defined(Py_UNUSED)
++# if defined(__GNUC__) || defined(__clang__)
++# define Py_UNUSED(name) _unused_ ## name __attribute__((unused))
++# else
++# define Py_UNUSED(name) _unused_ ## name
++# endif
++#endif
++
++
++#ifdef PYTHONCAPI_COMPAT_MSC_INLINE
++# undef inline
++# undef PYTHONCAPI_COMPAT_MSC_INLINE
++#endif
++
++#ifdef __cplusplus
++}
++#endif
++#endif // PYTHONCAPI_COMPAT
+--
+2.30.2
+
diff --git a/meta-python/recipes-devtools/python/python3-pybluez_0.23.bb b/meta-python/recipes-devtools/python/python3-pybluez_0.23.bb
index 6a1df273a2..a38e10eec0 100644
--- a/meta-python/recipes-devtools/python/python3-pybluez_0.23.bb
+++ b/meta-python/recipes-devtools/python/python3-pybluez_0.23.bb
@@ -7,7 +7,8 @@ DEPENDS = "bluez5"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=8a71d0475d08eee76d8b6d0c6dbec543"
-SRC_URI += "file://0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch"
+SRC_URI += "file://0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch \
+ file://py-3.11.patch "
SRC_URI[md5sum] = "afbe8429bb82d2c46a3d0f5f4f898f9d"
SRC_URI[sha256sum] = "c8f04d2e78951eaa9de486b4d49381704e8943d0a6e6e58f55fcd7b8582e90de"
@@ -21,5 +22,5 @@ do_configure:prepend() {
RDEPENDS:${PN} += "\
bluez5 \
- ${PYTHON_PN}-fcntl \
+ python3-fcntl \
"
diff --git a/meta-python/recipes-devtools/python/python3-pycares_4.2.2.bb b/meta-python/recipes-devtools/python/python3-pycares_4.2.2.bb
deleted file mode 100644
index d2de4d3b74..0000000000
--- a/meta-python/recipes-devtools/python/python3-pycares_4.2.2.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Python interface for c-ares"
-DESCRIPTION = "\
-pycares is a Python module which provides an interface to c-ares. c-ares is \
-a C library that performs DNS requests and name resolutions asynchronously."
-HOMEPAGE = "https://github.com/saghul/pycares"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b1538fcaea82ebf2313ed648b96c69b1"
-
-SRC_URI[sha256sum] = "e1f57a8004370080694bd6fb969a1ffc9171a59c6824d54f791c1b2e4d298385"
-
-PYPI_PACKAGE = "pycares"
-
-inherit pypi setuptools3
-
-DEPENDS += "${PYTHON_PN}-cffi-native"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-cffi \
- ${PYTHON_PN}-idna \
-"
diff --git a/meta-python/recipes-devtools/python/python3-pycares_4.4.0.bb b/meta-python/recipes-devtools/python/python3-pycares_4.4.0.bb
new file mode 100644
index 0000000000..b6b0de8809
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pycares_4.4.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Python interface for c-ares"
+DESCRIPTION = "\
+pycares is a Python module which provides an interface to c-ares. c-ares is \
+a C library that performs DNS requests and name resolutions asynchronously."
+HOMEPAGE = "https://github.com/saghul/pycares"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b1538fcaea82ebf2313ed648b96c69b1"
+
+SRC_URI[sha256sum] = "f47579d508f2f56eddd16ce72045782ad3b1b3b678098699e2b6a1b30733e1c2"
+
+PYPI_PACKAGE = "pycares"
+
+inherit pypi setuptools3
+
+DEPENDS += "python3-cffi-native"
+
+RDEPENDS:${PN} += " \
+ python3-cffi \
+ python3-idna \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pychromecast/0001-Allow-newer-version-of-wheel-and-setuptools.patch b/meta-python/recipes-devtools/python/python3-pychromecast/0001-Allow-newer-version-of-wheel-and-setuptools.patch
new file mode 100644
index 0000000000..447f679070
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pychromecast/0001-Allow-newer-version-of-wheel-and-setuptools.patch
@@ -0,0 +1,22 @@
+From 5ee73f91b7f13dd5c700c69e7fc43cecab5868da Mon Sep 17 00:00:00 2001
+From: Tom Geelen <t.f.g.geelen@gmail.com>
+Date: Sun, 7 Apr 2024 22:39:35 +0000
+Subject: [PATCH] Allow newer version of wheel and setuptools
+
+Upstream-Status: Pending
+Signed-off-by: Tom Geelen <t.f.g.geelen@gmail.com>
+---
+ pyproject.toml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 56df5bd..17ca62d 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,5 +1,5 @@
+ [build-system]
+-requires = ["setuptools~=65.6", "wheel~=0.37.1"]
++requires = ["setuptools>=65.6", "wheel>=0.37.1"]
+ build-backend = "setuptools.build_meta"
+
+ [project]
diff --git a/meta-python/recipes-devtools/python/python3-pychromecast_12.1.4.bb b/meta-python/recipes-devtools/python/python3-pychromecast_12.1.4.bb
deleted file mode 100644
index 69372060bc..0000000000
--- a/meta-python/recipes-devtools/python/python3-pychromecast_12.1.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Library for Python 3.6+ to communicate with the Google Chromecast."
-HOMEPAGE = "https://github.com/balloob/pychromecast"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5"
-
-SRC_URI[sha256sum] = "9e57dc985a4a05db5bdcd5da219cbf6ced25548ca093f8d74bc107b3c554ec00"
-
-PYPI_PACKAGE = "PyChromecast"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-zeroconf \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-requests \
- ${PYTHON_PN}-protobuf \
- ${PYTHON_PN}-compression \
-"
diff --git a/meta-python/recipes-devtools/python/python3-pychromecast_14.0.1.bb b/meta-python/recipes-devtools/python/python3-pychromecast_14.0.1.bb
new file mode 100644
index 0000000000..dee4bf6ebe
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pychromecast_14.0.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Library for Python 3.6+ to communicate with the Google Chromecast."
+HOMEPAGE = "https://github.com/balloob/pychromecast"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5"
+
+SRC_URI += "file://0001-Allow-newer-version-of-wheel-and-setuptools.patch"
+SRC_URI[sha256sum] = "e16e0a7f9488319191b8b4fa21ca0beb4bf12eeda5c9bf640241188f2bea0a3e"
+
+PYPI_PACKAGE = "PyChromecast"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += "\
+ python3-zeroconf (>=0.131.0) \
+ python3-protobuf (>=4.25.2) \
+ python3-casttube (>=0.2.1) \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pycocotools_2.0.5.bb b/meta-python/recipes-devtools/python/python3-pycocotools_2.0.5.bb
deleted file mode 100644
index 234942bfe0..0000000000
--- a/meta-python/recipes-devtools/python/python3-pycocotools_2.0.5.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "COCO is a large image dataset designed for object detection, segmentation, \
- person keypoints detection, stuff segmentation, and caption generation."
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://pycocotools/coco.py;beginline=45;endline=45;md5=12cb539683cf245df8b6ce782d78f647"
-
-inherit setuptools3 pypi
-
-SRC_URI[sha256sum] = "41d1fb062df5bab5ebc3e92971455aa089479e7cd10553278ca54628b9dc9bf5"
-
-DEPENDS = "python3-cython-native python3-numpy-native virtual/crypt"
-RDEPENDS:${PN} = "python3-matplotlib python3-pillow python3-profile"
diff --git a/meta-python/recipes-devtools/python/python3-pycocotools_2.0.7.bb b/meta-python/recipes-devtools/python/python3-pycocotools_2.0.7.bb
new file mode 100644
index 0000000000..bebfb128f2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pycocotools_2.0.7.bb
@@ -0,0 +1,11 @@
+SUMMARY = "COCO is a large image dataset designed for object detection, segmentation, \
+ person keypoints detection, stuff segmentation, and caption generation."
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://pycocotools/coco.py;beginline=45;endline=45;md5=12cb539683cf245df8b6ce782d78f647"
+
+inherit setuptools3 pypi
+
+SRC_URI[sha256sum] = "da8b7815196eebf0adabf67fcc459126cbc6498bbc6ab1fd144c371465d86879"
+
+DEPENDS = "python3-cython-native python3-numpy-native virtual/crypt"
+RDEPENDS:${PN} = "python3-matplotlib python3-pillow python3-profile"
diff --git a/meta-python/recipes-devtools/python/python3-pycodestyle_2.11.1.bb b/meta-python/recipes-devtools/python/python3-pycodestyle_2.11.1.bb
new file mode 100644
index 0000000000..a282afb466
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pycodestyle_2.11.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Python style guide checker (formly called pep8)"
+HOMEPAGE = "https://pypi.org/project/pycodestyle"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a8546d0e77f416fb05a26acd89c8b3bd"
+
+SRC_URI[sha256sum] = "41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pycodestyle_2.9.1.bb b/meta-python/recipes-devtools/python/python3-pycodestyle_2.9.1.bb
deleted file mode 100644
index 928e2b2ae7..0000000000
--- a/meta-python/recipes-devtools/python/python3-pycodestyle_2.9.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Python style guide checker (formly called pep8)"
-HOMEPAGE = "https://pypi.org/project/pycodestyle"
-LICENSE = "MIT"
-SECTION = "devel/python"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a8546d0e77f416fb05a26acd89c8b3bd"
-
-SRC_URI[sha256sum] = "2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pycurl_7.45.1.bb b/meta-python/recipes-devtools/python/python3-pycurl_7.45.1.bb
deleted file mode 100644
index 407c264845..0000000000
--- a/meta-python/recipes-devtools/python/python3-pycurl_7.45.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "A Python Interface To The cURL library"
-DESCRIPTION = "\
-PycURL is a Python interface to libcurl, the multiprotocol file \
-transfer library. Similarly to the urllib Python module, PycURL can \
-be used to fetch objects identified by a URL from a Python program \
-"
-SECTION = "devel/python"
-HOMEPAGE = "http://pycurl.io/"
-
-LICENSE = "LGPL-2.0-only | MIT"
-LIC_FILES_CHKSUM = "file://COPYING-LGPL;md5=4fbd65380cdd255951079008b364516c \
- file://COPYING-MIT;md5=be42e1b1e58c8d59c2901fd747bfc55d \
- "
-
-SRC_URI[sha256sum] = "a863ad18ff478f5545924057887cdae422e1b2746e41674615f687498ea5b88a"
-
-DEPENDS = "curl"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-pycurl_7.45.2.bb b/meta-python/recipes-devtools/python/python3-pycurl_7.45.2.bb
new file mode 100644
index 0000000000..a6863e21ff
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pycurl_7.45.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A Python Interface To The cURL library"
+DESCRIPTION = "\
+PycURL is a Python interface to libcurl, the multiprotocol file \
+transfer library. Similarly to the urllib Python module, PycURL can \
+be used to fetch objects identified by a URL from a Python program \
+"
+SECTION = "devel/python"
+HOMEPAGE = "http://pycurl.io/"
+
+LICENSE = "LGPL-2.0-only | MIT"
+LIC_FILES_CHKSUM = "file://COPYING-LGPL;md5=4fbd65380cdd255951079008b364516c \
+ file://COPYING-MIT;md5=be42e1b1e58c8d59c2901fd747bfc55d \
+ "
+
+SRC_URI[sha256sum] = "5730590be0271364a5bddd9e245c9cc0fb710c4cbacbdd95264a3122d23224ca"
+
+DEPENDS = "curl"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pydantic-core-crates.inc b/meta-python/recipes-devtools/python/python3-pydantic-core-crates.inc
new file mode 100644
index 0000000000..dd2027948c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pydantic-core-crates.inc
@@ -0,0 +1,170 @@
+# Autogenerated with 'bitbake -c update_crates python3-pydantic-core'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/ahash/0.8.7 \
+ crate://crates.io/aho-corasick/1.0.2 \
+ crate://crates.io/allocator-api2/0.2.16 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/base64/0.21.7 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/enum_dispatch/0.3.12 \
+ crate://crates.io/equivalent/1.0.1 \
+ crate://crates.io/form_urlencoded/1.2.1 \
+ crate://crates.io/getrandom/0.2.10 \
+ crate://crates.io/hashbrown/0.14.3 \
+ crate://crates.io/heck/0.4.1 \
+ crate://crates.io/idna/0.5.0 \
+ crate://crates.io/indexmap/2.0.0 \
+ crate://crates.io/indoc/2.0.4 \
+ crate://crates.io/itoa/1.0.8 \
+ crate://crates.io/jiter/0.0.6 \
+ crate://crates.io/lexical-core/0.8.5 \
+ crate://crates.io/lexical-parse-float/0.8.5 \
+ crate://crates.io/lexical-parse-integer/0.8.6 \
+ crate://crates.io/lexical-util/0.8.5 \
+ crate://crates.io/lexical-write-float/0.8.5 \
+ crate://crates.io/lexical-write-integer/0.8.5 \
+ crate://crates.io/libc/0.2.147 \
+ crate://crates.io/lock_api/0.4.10 \
+ crate://crates.io/memchr/2.6.3 \
+ crate://crates.io/memoffset/0.9.0 \
+ crate://crates.io/num-bigint/0.4.4 \
+ crate://crates.io/num-integer/0.1.45 \
+ crate://crates.io/num-traits/0.2.16 \
+ crate://crates.io/once_cell/1.18.0 \
+ crate://crates.io/parking_lot/0.12.1 \
+ crate://crates.io/parking_lot_core/0.9.8 \
+ crate://crates.io/percent-encoding/2.3.1 \
+ crate://crates.io/portable-atomic/1.6.0 \
+ crate://crates.io/proc-macro2/1.0.76 \
+ crate://crates.io/pyo3/0.20.3 \
+ crate://crates.io/pyo3-build-config/0.20.3 \
+ crate://crates.io/pyo3-ffi/0.20.3 \
+ crate://crates.io/pyo3-macros/0.20.3 \
+ crate://crates.io/pyo3-macros-backend/0.20.3 \
+ crate://crates.io/python3-dll-a/0.2.9 \
+ crate://crates.io/quote/1.0.35 \
+ crate://crates.io/redox_syscall/0.3.5 \
+ crate://crates.io/regex/1.10.2 \
+ crate://crates.io/regex-automata/0.4.3 \
+ crate://crates.io/regex-syntax/0.8.2 \
+ crate://crates.io/rustversion/1.0.13 \
+ crate://crates.io/ryu/1.0.14 \
+ crate://crates.io/scopeguard/1.1.0 \
+ crate://crates.io/serde/1.0.195 \
+ crate://crates.io/serde_derive/1.0.195 \
+ crate://crates.io/serde_json/1.0.109 \
+ crate://crates.io/smallvec/1.11.2 \
+ crate://crates.io/speedate/0.13.0 \
+ crate://crates.io/static_assertions/1.1.0 \
+ crate://crates.io/strum/0.25.0 \
+ crate://crates.io/strum_macros/0.25.3 \
+ crate://crates.io/syn/2.0.48 \
+ crate://crates.io/target-lexicon/0.12.9 \
+ crate://crates.io/tinyvec/1.6.0 \
+ crate://crates.io/tinyvec_macros/0.1.1 \
+ crate://crates.io/unicode-bidi/0.3.13 \
+ crate://crates.io/unicode-ident/1.0.10 \
+ crate://crates.io/unicode-normalization/0.1.22 \
+ crate://crates.io/unindent/0.2.3 \
+ crate://crates.io/url/2.5.0 \
+ crate://crates.io/uuid/1.6.1 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/windows-targets/0.48.1 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.48.0 \
+ crate://crates.io/windows_x86_64_gnu/0.48.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+ crate://crates.io/zerocopy/0.7.32 \
+ crate://crates.io/zerocopy-derive/0.7.32 \
+"
+
+SRC_URI[ahash-0.8.7.sha256sum] = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+SRC_URI[allocator-api2-0.2.16.sha256sum] = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[base64-0.21.7.sha256sum] = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[enum_dispatch-0.3.12.sha256sum] = "8f33313078bb8d4d05a2733a94ac4c2d8a0df9a2b84424ebf4f33bfc224a890e"
+SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+SRC_URI[getrandom-0.2.10.sha256sum] = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+SRC_URI[hashbrown-0.14.3.sha256sum] = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+SRC_URI[idna-0.5.0.sha256sum] = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+SRC_URI[indexmap-2.0.0.sha256sum] = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+SRC_URI[indoc-2.0.4.sha256sum] = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+SRC_URI[itoa-1.0.8.sha256sum] = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
+SRC_URI[jiter-0.0.6.sha256sum] = "87db066a99f69382be06d02313f8ce989996b53a04a8a70cfd1a6483a56227f7"
+SRC_URI[lexical-core-0.8.5.sha256sum] = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
+SRC_URI[lexical-parse-float-0.8.5.sha256sum] = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
+SRC_URI[lexical-parse-integer-0.8.6.sha256sum] = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
+SRC_URI[lexical-util-0.8.5.sha256sum] = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
+SRC_URI[lexical-write-float-0.8.5.sha256sum] = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
+SRC_URI[lexical-write-integer-0.8.5.sha256sum] = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[lock_api-0.4.10.sha256sum] = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+SRC_URI[memchr-2.6.3.sha256sum] = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
+SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+SRC_URI[num-bigint-0.4.4.sha256sum] = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+SRC_URI[num-traits-0.2.16.sha256sum] = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+SRC_URI[parking_lot_core-0.9.8.sha256sum] = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+SRC_URI[portable-atomic-1.6.0.sha256sum] = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+SRC_URI[proc-macro2-1.0.76.sha256sum] = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
+SRC_URI[pyo3-0.20.3.sha256sum] = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
+SRC_URI[pyo3-build-config-0.20.3.sha256sum] = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
+SRC_URI[pyo3-ffi-0.20.3.sha256sum] = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
+SRC_URI[pyo3-macros-0.20.3.sha256sum] = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
+SRC_URI[pyo3-macros-backend-0.20.3.sha256sum] = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
+SRC_URI[python3-dll-a-0.2.9.sha256sum] = "d5f07cd4412be8fa09a721d40007c483981bbe072cd6a21f2e83e04ec8f8343f"
+SRC_URI[quote-1.0.35.sha256sum] = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[regex-1.10.2.sha256sum] = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+SRC_URI[regex-automata-0.4.3.sha256sum] = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+SRC_URI[regex-syntax-0.8.2.sha256sum] = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+SRC_URI[rustversion-1.0.13.sha256sum] = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f"
+SRC_URI[ryu-1.0.14.sha256sum] = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[serde-1.0.195.sha256sum] = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+SRC_URI[serde_derive-1.0.195.sha256sum] = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+SRC_URI[serde_json-1.0.109.sha256sum] = "cb0652c533506ad7a2e353cce269330d6afd8bdfb6d75e0ace5b35aacbd7b9e9"
+SRC_URI[smallvec-1.11.2.sha256sum] = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+SRC_URI[speedate-0.13.0.sha256sum] = "242f76c50fd18cbf098607090ade73a08d39cfd84ea835f3796a2c855223b19b"
+SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+SRC_URI[strum-0.25.0.sha256sum] = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+SRC_URI[strum_macros-0.25.3.sha256sum] = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+SRC_URI[syn-2.0.48.sha256sum] = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+SRC_URI[target-lexicon-0.12.9.sha256sum] = "df8e77cb757a61f51b947ec4a7e3646efd825b73561db1c232a8ccb639e611a0"
+SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+SRC_URI[unicode-ident-1.0.10.sha256sum] = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73"
+SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+SRC_URI[unindent-0.2.3.sha256sum] = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
+SRC_URI[url-2.5.0.sha256sum] = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+SRC_URI[uuid-1.6.1.sha256sum] = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+SRC_URI[zerocopy-0.7.32.sha256sum] = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+SRC_URI[zerocopy-derive-0.7.32.sha256sum] = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
diff --git a/meta-python/recipes-devtools/python/python3-pydantic-core/0001-Bumps-pyo3-https-github.com-pyo3-pyo3-from-0.20.2-to.patch b/meta-python/recipes-devtools/python/python3-pydantic-core/0001-Bumps-pyo3-https-github.com-pyo3-pyo3-from-0.20.2-to.patch
new file mode 100644
index 0000000000..32777e1d03
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pydantic-core/0001-Bumps-pyo3-https-github.com-pyo3-pyo3-from-0.20.2-to.patch
@@ -0,0 +1,126 @@
+From a5690f973384bf8cbf4deb3b83d822b7aaefbdd8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 27 Feb 2024 11:00:46 -0800
+Subject: [PATCH] Bumps [pyo3](https://github.com/pyo3/pyo3) from 0.20.2 to
+ 0.20.3.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Cargo.lock | 26 +++++++++++++++++---------
+ Cargo.toml | 2 +-
+ 2 files changed, 18 insertions(+), 10 deletions(-)
+
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -322,6 +322,12 @@ source = "registry+https://github.com/ru
+ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+ [[package]]
++name = "portable-atomic"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
++
++[[package]]
+ name = "proc-macro2"
+ version = "1.0.76"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -357,9 +363,9 @@ dependencies = [
+
+ [[package]]
+ name = "pyo3"
+-version = "0.20.2"
++version = "0.20.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0"
++checksum = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
+ dependencies = [
+ "cfg-if",
+ "indoc",
+@@ -367,6 +373,7 @@ dependencies = [
+ "memoffset",
+ "num-bigint",
+ "parking_lot",
++ "portable-atomic",
+ "pyo3-build-config",
+ "pyo3-ffi",
+ "pyo3-macros",
+@@ -375,9 +382,9 @@ dependencies = [
+
+ [[package]]
+ name = "pyo3-build-config"
+-version = "0.20.2"
++version = "0.20.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be"
++checksum = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
+ dependencies = [
+ "once_cell",
+ "python3-dll-a",
+@@ -386,9 +393,9 @@ dependencies = [
+
+ [[package]]
+ name = "pyo3-ffi"
+-version = "0.20.2"
++version = "0.20.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1"
++checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
+ dependencies = [
+ "libc",
+ "pyo3-build-config",
+@@ -396,9 +403,9 @@ dependencies = [
+
+ [[package]]
+ name = "pyo3-macros"
+-version = "0.20.2"
++version = "0.20.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3"
++checksum = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
+ dependencies = [
+ "proc-macro2",
+ "pyo3-macros-backend",
+@@ -408,12 +415,13 @@ dependencies = [
+
+ [[package]]
+ name = "pyo3-macros-backend"
+-version = "0.20.2"
++version = "0.20.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f"
++checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
+ dependencies = [
+ "heck",
+ "proc-macro2",
++ "pyo3-build-config",
+ "quote",
+ "syn",
+ ]
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -26,7 +26,7 @@ include = [
+ ]
+
+ [dependencies]
+-pyo3 = { version = "0.20.2", features = ["generate-import-lib", "num-bigint"] }
++pyo3 = { version = "0.20.3", features = ["generate-import-lib", "num-bigint"] }
+ regex = "1.10.2"
+ strum = { version = "0.25.0", features = ["derive"] }
+ strum_macros = "0.25.3"
+@@ -70,12 +70,12 @@ debug = true
+ strip = false
+
+ [dev-dependencies]
+-pyo3 = { version = "0.20.2", features = ["auto-initialize"] }
++pyo3 = { version = "0.20.3", features = ["auto-initialize"] }
+
+ [build-dependencies]
+ version_check = "0.9.4"
+ # used where logic has to be version/distribution specific, e.g. pypy
+-pyo3-build-config = { version = "0.20.2" }
++pyo3-build-config = { version = "0.20.3" }
+
+ [lints.clippy]
+ dbg_macro = "warn"
diff --git a/meta-python/recipes-devtools/python/python3-pydantic-core/run-ptest b/meta-python/recipes-devtools/python/python3-pydantic-core/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pydantic-core/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb b/meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb
new file mode 100644
index 0000000000..faa291ea6d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pydantic-core_2.16.3.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Provides the core functionality for pydantic validation and serialization."
+DESCRIPTION = "This package provides the core functionality for \
+pydantic validation and serialization.\
+\
+Pydantic-core is currently around 17x faster than pydantic V1."
+HOMEPAGE = "https://github.com/pydantic/pydantic-core"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ab599c188b4a314d2856b3a55030c75c"
+
+SRC_URI += "file://0001-Bumps-pyo3-https-github.com-pyo3-pyo3-from-0.20.2-to.patch"
+SRC_URI[sha256sum] = "1cac689f80a3abab2d3c0048b29eea5751114054f032a941a32de4c852c59cad"
+
+DEPENDS = "python3-maturin-native python3-typing-extensions"
+
+require ${BPN}-crates.inc
+
+inherit pypi cargo-update-recipe-crates python_maturin
+
+PYPI_PACKAGE = "pydantic_core"
+
+RDEPENDS:${PN} += "python3-typing-extensions"
+
+INSANE_SKIP:${PN} = "already-stripped"
+
+inherit ptest
+SRC_URI += "file://run-ptest"
+RDEPENDS:${PN}-ptest += "\
+ python3-dirty-equals \
+ python3-hypothesis \
+ python3-pytest \
+ python3-pytest-mock \
+ python3-pytest-timeout \
+ python3-pytest-benchmark \
+ python3-unittest-automake-output \
+"
+
+do_install:append() {
+ for f in ${D}/${PYTHON_SITEPACKAGES_DIR}/pydantic_core/_pydantic_core.*.so
+ do
+ fname=`basename $f`
+ lname=`echo $fname | sed 's/musl/gnu/'`
+ if [ "$fname" != "$lname" ]; then
+ mv $f ${D}/${PYTHON_SITEPACKAGES_DIR}/pydantic_core/$lname
+ fi
+ done
+}
+
+do_install_ptest() {
+ cp -rf ${S}/tests/ ${D}${PTEST_PATH}/
+ sed -i -e "/--automake/ s/$/ -k 'not test_model_class_root_validator_wrap and not test_model_class_root_validator_before and not test_model_class_root_validator_after'/" ${D}${PTEST_PATH}/run-ptest
+}
diff --git a/meta-python/recipes-devtools/python/python3-pydantic/run-ptest b/meta-python/recipes-devtools/python/python3-pydantic/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pydantic/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-pydantic_1.10.2.bb b/meta-python/recipes-devtools/python/python3-pydantic_1.10.2.bb
deleted file mode 100644
index 16bb1f6ae6..0000000000
--- a/meta-python/recipes-devtools/python/python3-pydantic_1.10.2.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Data validation and settings management using Python type hinting"
-HOMEPAGE = "https://github.com/samuelcolvin/pydantic"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2c02ea30650b91528657db64baea1757"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "91b8e218852ef6007c2b98cd861601c6a09f1aa32bbbb74fab5b1c33d4a1e410"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-typing-extensions \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-image \
- ${PYTHON_PN}-logging \
-"
diff --git a/meta-python/recipes-devtools/python/python3-pydantic_2.6.4.bb b/meta-python/recipes-devtools/python/python3-pydantic_2.6.4.bb
new file mode 100644
index 0000000000..9c52564121
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pydantic_2.6.4.bb
@@ -0,0 +1,53 @@
+SUMMARY = "Data validation using Python type hinting"
+DESCRIPTION = "Data validation and settings management using Python \
+type hints.\
+\
+Fast and extensible, Pydantic plays nicely with your linters/IDE/brain. \
+Define how data should be in pure, canonical Python 3.7+; validate it with \
+Pydantic."
+HOMEPAGE = "https://github.com/samuelcolvin/pydantic"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=09280955509d1c4ca14bae02f21d49a6"
+
+inherit pypi python_hatchling
+
+SRC_URI[sha256sum] = "b1704e0847db01817624a6b86766967f552dd9dbf3afba4004409f908dcc84e6"
+
+DEPENDS += "python3-hatch-fancy-pypi-readme-native"
+
+RDEPENDS:${PN} += "\
+ python3-annotated-types \
+ python3-core \
+ python3-datetime \
+ python3-image \
+ python3-io \
+ python3-json \
+ python3-logging \
+ python3-netclient \
+ python3-numbers \
+ python3-profile \
+ python3-pydantic-core \
+ python3-typing-extensions \
+"
+
+inherit ptest
+SRC_URI += "file://run-ptest"
+RDEPENDS:${PN}-ptest += "\
+ python3-cloudpickle \
+ python3-dirty-equals \
+ python3-pytest \
+ python3-pytest-mock \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ cp -rf ${S}/tests/ ${D}${PTEST_PATH}/
+ # Requires 'ruff' (python3-ruff) which we cannot build
+ # until we have Rust 1.71+ in oe-core
+ rm -f ${D}${PTEST_PATH}/tests/test_docs.py
+ # We are not trying to support mypy
+ rm -f ${D}${PTEST_PATH}/tests/test_mypy.py
+ # We are not trying to run benchmarks
+ rm -rf ${D}${PTEST_PATH}/tests/benchmarks
+ sed -i -e "/--automake/ s/$/ -k 'not test_config_validation_error_cause and not test_dataclass_config_validate_default and not test_annotated_validator_nested and not test_use_bare and not test_use_no_fields and not test_validator_bad_fields_throws_configerror and not test_assert_raises_validation_error and not test_model_config_validate_default'/" ${D}${PTEST_PATH}/run-ptest
+}
diff --git a/meta-python/recipes-devtools/python/python3-pydbus-manager_git.bb b/meta-python/recipes-devtools/python/python3-pydbus-manager_git.bb
deleted file mode 100644
index 796f7219ac..0000000000
--- a/meta-python/recipes-devtools/python/python3-pydbus-manager_git.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "DBus.ObjectManager implementation for pydbus"
-AUTHOR = "Sébastien Corne"
-
-LICENSE = "WTFPL"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0fd5bb1dae91ba145745db55870be6a7"
-
-inherit setuptools3
-
-SRC_URI = "git://github.com/seebz/pydbus-manager.git;branch=master;protocol=https"
-SRCREV = "6b576b969cbda50521dca62a7df929167207f9fc"
-PV = "git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-RDEPENDS:${PN} += "python3-pydbus"
diff --git a/meta-python/recipes-devtools/python/python3-pydbus/0001-Support-asynchronous-calls-58.patch b/meta-python/recipes-devtools/python/python3-pydbus/0001-Support-asynchronous-calls-58.patch
deleted file mode 100644
index c5cb9a8780..0000000000
--- a/meta-python/recipes-devtools/python/python3-pydbus/0001-Support-asynchronous-calls-58.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 39a7d79ee6c548902fbac8b95c934af7e4c69260 Mon Sep 17 00:00:00 2001
-From: Vendula Poncova <vponcova@redhat.com>
-Date: Thu, 2 Aug 2018 15:30:45 +0800
-Subject: [PATCH 1/2] 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))
-
-Upstream-Status: Cherry-pick [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- pydbus/proxy_method.py | 44 ++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 38 insertions(+), 6 deletions(-)
-
-diff --git a/pydbus/proxy_method.py b/pydbus/proxy_method.py
-index 8798edd..4ea4304 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
---
-2.7.4
-
diff --git a/meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch b/meta-python/recipes-devtools/python/python3-pydbus/0001-make-direction-attribute-conforming-to-introspect.dt.patch
new file mode 100644
index 0000000000..1bd17986e6
--- /dev/null
+++ b/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-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch b/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-asynchronous-calls-58.patch
new file mode 100644
index 0000000000..b3c57edade
--- /dev/null
+++ b/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-python/recipes-devtools/python/python3-pydbus/0002-Support-transformation-between-D-Bus-errors-and-exce.patch b/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-transformation-between-D-Bus-errors-and-exce.patch
deleted file mode 100644
index f5c0390c54..0000000000
--- a/meta-python/recipes-devtools/python/python3-pydbus/0002-Support-transformation-between-D-Bus-errors-and-exce.patch
+++ /dev/null
@@ -1,203 +0,0 @@
-From 69968dec867053e38de0b91d76ac41d5a5735e36 Mon Sep 17 00:00:00 2001
-From: Vendula Poncova <vponcova@redhat.com>
-Date: Thu, 2 Aug 2018 15:31:56 +0800
-Subject: [PATCH 2/2] 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.
-
-Upstream-Status: Cherry-pick [https://src.fedoraproject.org/cgit/rpms/python-pydbus.git/]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- pydbus/error.py | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++
- pydbus/proxy_method.py | 18 ++++++++--
- pydbus/registration.py | 16 ++++++---
- 3 files changed, 123 insertions(+), 8 deletions(-)
- create mode 100644 pydbus/error.py
-
-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 4ea4304..e9496f5 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]
---
-2.7.4
-
diff --git a/meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch b/meta-python/recipes-devtools/python/python3-pydbus/0003-Support-transformation-between-D-Bus-errors-and-exce.patch
new file mode 100644
index 0000000000..a1b8a6c38c
--- /dev/null
+++ b/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-python/recipes-devtools/python/python3-pydbus/run-ptest b/meta-python/recipes-devtools/python/python3-pydbus/run-ptest
new file mode 100644
index 0000000000..782ceed3bb
--- /dev/null
+++ b/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
diff --git a/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb b/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
index a1b9fffea6..5754fd2adf 100644
--- a/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
+++ b/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
@@ -3,17 +3,26 @@ HOMEPAGE = "https://pypi.python.org/pypi/pydbus/"
LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a916467b91076e631dd8edb7424769c7"
-SRC_URI += "file://0001-Support-asynchronous-calls-58.patch \
- file://0002-Support-transformation-between-D-Bus-errors-and-exce.patch \
+SRCREV = "f2e6355a88351e7d644ccb2b4d67b19305507312"
+SRC_URI = " \
+ git://github.com/LEW21/pydbus.git;protocol=https;branch=master \
+ file://0001-make-direction-attribute-conforming-to-introspect.dt.patch \
+ file://0002-Support-asynchronous-calls-58.patch \
+ file://0003-Support-transformation-between-D-Bus-errors-and-exce.patch \
+ file://run-ptest \
"
-SRC_URI[md5sum] = "c6abd44862322679bd4e907bebc3e0d0"
-SRC_URI[sha256sum] = "4207162eff54223822c185da06c1ba8a34137a9602f3da5a528eedf3f78d0f2c"
+inherit ptest setuptools3
-inherit pypi setuptools3
+S = "${WORKDIR}/git"
-S = "${WORKDIR}/pydbus-${PV}"
+RDEPENDS:${PN} = "python3-pygobject \
+ python3-io \
+ python3-logging"
-RDEPENDS:${PN} = "${PYTHON_PN}-pygobject \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-logging"
+RDEPENDS:${PN}-ptest += "bash"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-pydicti_1.1.6.bb b/meta-python/recipes-devtools/python/python3-pydicti_1.1.6.bb
deleted file mode 100644
index 17c52881ed..0000000000
--- a/meta-python/recipes-devtools/python/python3-pydicti_1.1.6.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Case insensitive derivable dictionary"
-HOMEPAGE = "https://github.com/coldfix/pydicti"
-LICENSE = "WTFPL"
-LIC_FILES_CHKSUM = "file://COPYING;md5=389a9e29629d1f05e115f8f05c283df5"
-
-SRC_URI[sha256sum] = "32eb329de2023c92158ac6c2d67837adf96195f188ba8d768b3248a0218b5a65"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-pydicti_1.2.1.bb b/meta-python/recipes-devtools/python/python3-pydicti_1.2.1.bb
new file mode 100644
index 0000000000..2363c29059
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pydicti_1.2.1.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Case insensitive derivable dictionary"
+HOMEPAGE = "https://github.com/coldfix/pydicti"
+LICENSE = "WTFPL"
+LIC_FILES_CHKSUM = "file://COPYING;md5=389a9e29629d1f05e115f8f05c283df5"
+
+SRC_URI[sha256sum] = "63e0756ff27a335e92916ff40be589a21a58894b3a93099edf0f3cbf695690dc"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-pyexpect_1.0.21.bb b/meta-python/recipes-devtools/python/python3-pyexpect_1.0.21.bb
deleted file mode 100644
index 1b80770d73..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyexpect_1.0.21.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Python expectaton library"
-DESCRIPTION = "Minimal but very flexible implementation of the expect pattern"
-SECTION = "devel/python"
-HOMEPAGE = " https://bitbucket.org/dwt/pyexpect"
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://README.md;md5=a6aa1e7097aca5955f9a2e1c8b0ce158"
-
-inherit pypi setuptools3
-
-SRC_URI[md5sum] = "c661939158d6a1acbcc2191bedc47751"
-SRC_URI[sha256sum] = "96e900d6af928a94c2a75b4935ddda44872c218121d0467c549ae19e7608a9a2"
diff --git a/meta-python/recipes-devtools/python/python3-pyexpect_1.0.22.bb b/meta-python/recipes-devtools/python/python3-pyexpect_1.0.22.bb
new file mode 100644
index 0000000000..1cbd2384a3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyexpect_1.0.22.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Python expectaton library"
+DESCRIPTION = "Minimal but very flexible implementation of the expect pattern"
+SECTION = "devel/python"
+HOMEPAGE = " https://bitbucket.org/dwt/pyexpect"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://README.md;md5=a6aa1e7097aca5955f9a2e1c8b0ce158"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "659351e7ee8923b42de8a774fabfc806acf07377d7fd19f2ea4412ef8f619c6a"
+
+RDEPENDS:${PN} += "python3-numbers"
diff --git a/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch b/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch
index 933e086265..4c279bbcda 100644
--- a/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch
+++ b/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch
@@ -1,31 +1,29 @@
-From 9e7894b97ae7afe43a9901b774de5aef401549ac Mon Sep 17 00:00:00 2001
+From 87f1bf7d1e0ca2a841706d1c41d14382f11264db Mon Sep 17 00:00:00 2001
From: Bartosz Golaszewski <brgl@bgdev.pl>
Date: Thu, 28 Apr 2022 16:32:06 +0200
Subject: [PATCH] ext: define FNM_EXTMATCH if not already defined
On musl this constant is not defined. Define it locally if not present.
-Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
----
Upstream-Status: Inappropriate
+Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
+
+---
src/ext.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/ext.c b/src/ext.c
-index 2ba9a14..98ffc20 100644
+index fb33de1..fa01a81 100644
--- a/src/ext.c
+++ b/src/ext.c
-@@ -18,6 +18,9 @@
- #include <sys/un.h>
+@@ -19,6 +19,9 @@
+ #include <sys/vfs.h>
#include <unistd.h>
+#ifndef FNM_EXTMATCH
+#define FNM_EXTMATCH 0
+#endif
- PyDoc_STRVAR(ext__doc__,
- "Wrapper for fanotify.\n"
---
-2.32.0
-
+ #define FUNUSED __attribute__((unused))
+
diff --git a/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb b/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb
deleted file mode 100644
index d887901443..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Python wrapper for Linux fanotify."
-HOMEPAGE = "https://github.com/baskiton/pyfanotify"
-AUTHOR = "Alexander Baskikh"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=636a36c9df04efcfacf839b8866d9a37"
-
-SRC_URI += "file://0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch"
-SRC_URI[sha256sum] = "1ec1c61fba9dea96cf8eac7f1a0cca2517613da20d156b7da2a06f9d63c77aca"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- python3-crypt \
- python3-datetime \
- python3-logging \
- python3-multiprocessing \
-"
diff --git a/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.2.bb b/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.2.bb
new file mode 100644
index 0000000000..292ceab2e3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Python wrapper for Linux fanotify."
+HOMEPAGE = "https://github.com/baskiton/pyfanotify"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=636a36c9df04efcfacf839b8866d9a37"
+
+SRC_URI += "file://0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch"
+SRC_URI[sha256sum] = "90219aa9f8b78fa732f24aa7b21c7bb6ac97a6eb47f1763c899b8194e23af1df"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-crypt \
+ python3-datetime \
+ python3-logging \
+ python3-multiprocessing \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pyfirmata_1.1.0.bb b/meta-python/recipes-devtools/python/python3-pyfirmata_1.1.0.bb
index 5bbc33ade0..02ebeaad79 100644
--- a/meta-python/recipes-devtools/python/python3-pyfirmata_1.1.0.bb
+++ b/meta-python/recipes-devtools/python/python3-pyfirmata_1.1.0.bb
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=84ddcef430b7c44caa22b2ff4b37a3df"
PYPI_PACKAGE = "pyFirmata"
RDEPENDS:${PN} = "\
- ${PYTHON_PN}-pyserial \
+ python3-pyserial \
"
SRC_URI[md5sum] = "159673cfb56c72ceafc30fe91eedd847"
diff --git a/meta-python/recipes-devtools/python/python3-pyflakes_2.5.0.bb b/meta-python/recipes-devtools/python/python3-pyflakes_2.5.0.bb
deleted file mode 100644
index 5c75ea48aa..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyflakes_2.5.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "passive checker of Python programs"
-HOMEPAGE = "https://github.com/PyCQA/pyflakes"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=690c2d09203dc9e07c4083fc45ea981f"
-
-SRC_URI[sha256sum] = "491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pyflakes_3.2.0.bb b/meta-python/recipes-devtools/python/python3-pyflakes_3.2.0.bb
new file mode 100644
index 0000000000..b7ee20ebe4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyflakes_3.2.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "passive checker of Python programs"
+HOMEPAGE = "https://github.com/PyCQA/pyflakes"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=690c2d09203dc9e07c4083fc45ea981f"
+
+SRC_URI[sha256sum] = "1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.4.bb b/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.4.bb
deleted file mode 100644
index 888278af80..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.4.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Hamcrest framework for matcher objects"
-HOMEPAGE = "https://github.com/hamcrest/PyHamcrest"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=79391bf1501c898472d043f36e960612"
-
-SRC_URI[sha256sum] = "b5d9ce6b977696286cf232ce2adf8969b4d0b045975b0936ac9005e84e67e9c1"
-
-inherit pypi python_setuptools_build_meta
-
-DEPENDS += "${PYTHON_PN}-hatch-vcs-native"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-numbers \
-"
diff --git a/meta-python/recipes-devtools/python/python3-pyhamcrest_2.1.0.bb b/meta-python/recipes-devtools/python/python3-pyhamcrest_2.1.0.bb
new file mode 100644
index 0000000000..eaa24eefe5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyhamcrest_2.1.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Hamcrest framework for matcher objects"
+HOMEPAGE = "https://github.com/hamcrest/PyHamcrest"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=79391bf1501c898472d043f36e960612"
+
+SRC_URI[sha256sum] = "c6acbec0923d0cb7e72c22af1926f3e7c97b8e8d69fc7498eabacaf7c975bd9c"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "python3-hatch-vcs-native"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/PyHamcrest/"
+UPSTREAM_CHECK_REGEX = "/PyHamcrest/(?P<pver>(\d+[\.\-_]*)+)"
+
+RDEPENDS:${PN} += " \
+ python3-six \
+ python3-numbers \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb b/meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb
new file mode 100644
index 0000000000..b5bd89de76
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyiface_0.0.11.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Pyiface is a package that exposes the network interfaces of the operating system in a easy to use and transparent way"
+HOMEPAGE = "https://pypi.python.org/pypi/pyiface/"
+SECTION = "devel/python"
+LICENSE = "GPL-3.0-or-later"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fe869ee987a340198fb0d54c55c47f1"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+SRC_URI[sha256sum] = "e231e5735d329c5b2d4fc8854f069fdaa5436d3ef91ed64ee49e41e3f5e8a3f5"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+ python3-fcntl \
+ python3-io \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pyiface_git.bb b/meta-python/recipes-devtools/python/python3-pyiface_git.bb
deleted file mode 100644
index 5e0d2de916..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyiface_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Pyiface is a package that exposes the network interfaces of the operating system in a easy to use and transparent way"
-SECTION = "devel/python"
-HOMEPAGE = "https://pypi.python.org/pypi/pyiface/"
-LICENSE = "GPL-3.0-or-later"
-
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fe869ee987a340198fb0d54c55c47f1"
-
-DEPENDS += "python3-setuptools-scm-native"
-
-inherit setuptools3
-
-SRC_URI = "git://github.com/bat-serjo/PyIface.git;protocol=https;branch=master"
-SRCREV = "4557dbda96d2e4b1142c60603d4a27d007a9ffe6"
-PV = "0.1.dev33+g4557dbd"
-
-PIP_INSTALL_PACKAGE = "pyiface"
-
-S = "${WORKDIR}/git"
diff --git a/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb b/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb
deleted file mode 100644
index 8dd5e1580a..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Python pyinotify: Linux filesystem events monitoring"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ab173cade7965b411528464589a08382"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-fcntl \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-smtpd \
- ${PYTHON_PN}-threading \
-"
-
-SRC_URI[md5sum] = "8e580fa1ff3971f94a6f81672b76c406"
-SRC_URI[sha256sum] = "9c998a5d7606ca835065cdabc013ae6c66eb9ea76a00a1e3bc6e0cfe2b4f71f4"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-pyjks_20.0.0.bb b/meta-python/recipes-devtools/python/python3-pyjks_20.0.0.bb
index 87e212d9dc..c0cca98ff6 100644
--- a/meta-python/recipes-devtools/python/python3-pyjks_20.0.0.bb
+++ b/meta-python/recipes-devtools/python/python3-pyjks_20.0.0.bb
@@ -11,12 +11,12 @@ SRC_URI[sha256sum] = "0378cec15fb11b2ed27ba54dad9fd987d48e6f62f49fcff138f5f7a8b3
inherit pypi setuptools3
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-javaobj-py3 \
- ${PYTHON_PN}-pyasn1 \
- ${PYTHON_PN}-pyasn1-modules \
- ${PYTHON_PN}-pycryptodome \
- ${PYTHON_PN}-twofish\
+RDEPENDS:${PN} = " \
+ python3-javaobj-py3 \
+ python3-pyasn1 \
+ python3-pyasn1-modules \
+ python3-pycryptodomex \
+ python3-twofish \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pyjwt_2.5.0.bb b/meta-python/recipes-devtools/python/python3-pyjwt_2.5.0.bb
deleted file mode 100644
index f587e5c0de..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyjwt_2.5.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "JSON Web Token implementation in Python"
-DESCRIPTION = "A Python implementation of JSON Web Token draft 32.\
- Original implementation was written by https://github.com/progrium"
-HOMEPAGE = "http://github.com/jpadilla/pyjwt"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e4b56d2c9973d8cf54655555be06e551"
-
-SRC_URI[sha256sum] = "e77ab89480905d86998442ac5788f35333fa85f65047a534adc38edf3c88fc3b"
-
-PYPI_PACKAGE = "PyJWT"
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "${PYTHON_PN}-cryptography"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pyjwt_2.8.0.bb b/meta-python/recipes-devtools/python/python3-pyjwt_2.8.0.bb
new file mode 100644
index 0000000000..92a8f44c6b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyjwt_2.8.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "JSON Web Token implementation in Python"
+DESCRIPTION = "A Python implementation of JSON Web Token draft 32.\
+ Original implementation was written by https://github.com/progrium"
+HOMEPAGE = "http://github.com/jpadilla/pyjwt"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e4b56d2c9973d8cf54655555be06e551"
+
+SRC_URI[sha256sum] = "57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de"
+
+PYPI_PACKAGE = "PyJWT"
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = " \
+ python3-json \
+ python3-cryptography \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pykwalify_1.8.0.bb b/meta-python/recipes-devtools/python/python3-pykwalify_1.8.0.bb
index 6d93f384e0..d94051df89 100644
--- a/meta-python/recipes-devtools/python/python3-pykwalify_1.8.0.bb
+++ b/meta-python/recipes-devtools/python/python3-pykwalify_1.8.0.bb
@@ -11,9 +11,10 @@ PYPI_PACKAGE = "pykwalify"
inherit setuptools3 pypi
RDEPENDS:${PN} = "\
- ${PYTHON_PN}-docopt \
- ${PYTHON_PN}-dateutil \
- ${PYTHON_PN}-ruamel-yaml \
+ python3-dateutil \
+ python3-docopt \
+ python3-logging \
+ python3-ruamel-yaml \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pylint/0001-Adjust-test-expectations-for-ptest.patch b/meta-python/recipes-devtools/python/python3-pylint/0001-Adjust-test-expectations-for-ptest.patch
new file mode 100644
index 0000000000..8edecbf1bd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pylint/0001-Adjust-test-expectations-for-ptest.patch
@@ -0,0 +1,44 @@
+From f3a213cf4922c122e554277ea2031c0c54cd3fe5 Mon Sep 17 00:00:00 2001
+From: Dan McGregor <dan.mcgregor@vecima.com>
+Date: Wed, 13 Mar 2024 14:08:25 -0600
+Subject: [PATCH] Adjust test expectations for ptest
+
+Because of the way we install ptests, some first party imports
+became third party. Reflect that in the test case.
+
+Upstream-Status: Inappropriate (embedded specific)
+Signed-off-by: Dan McGregor <dan.mcgregor@vecima.com>
+---
+ tests/functional/w/wrong_import_order.txt | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/tests/functional/w/wrong_import_order.txt b/tests/functional/w/wrong_import_order.txt
+index 068d2140d..9594ff9e0 100644
+--- a/tests/functional/w/wrong_import_order.txt
++++ b/tests/functional/w/wrong_import_order.txt
+@@ -3,14 +3,14 @@ wrong-import-order:14:0:14:10::"standard import ""sys"" should be placed before
+ wrong-import-order:15:0:15:15::"standard import ""datetime"" should be placed before third party imports ""six"", ""astroid.are_exclusive""":UNDEFINED
+ wrong-import-order:18:0:18:22::"third party import ""totally_missing"" should be placed before local import ""package.Class""":UNDEFINED
+ wrong-import-order:20:0:20:14::"third party import ""astroid"" should be placed before local imports ""package.Class"", "".package""":UNDEFINED
+-wrong-import-order:22:0:22:22::"first party import ""pylint.checkers"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
+-wrong-import-order:23:0:23:25::"first party import ""pylint.config"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
+-wrong-import-order:24:0:24:17::"first party import ""pylint.sys"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
+-wrong-import-order:25:0:25:28::"first party import ""pylint.pyreverse"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
+-wrong-import-order:30:0:30:40::"third party import ""six.moves.urllib.parse.quote"" should be placed before first party imports ""pylint.checkers"", ""pylint.config"", ""pylint.sys"", ""pylint.pyreverse"" and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
+-wrong-import-order:31:0:31:23::"first party import ""pylint.constants"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
+-wrong-import-order:32:0:32:19::"standard import ""re"" should be placed before third party imports ""six"", ""astroid.are_exclusive"", ""unused_import"", ""totally_missing"", ""astroid"", ""six.moves.urllib.parse.quote"", first party imports ""pylint.checkers"", ""pylint.config"", ""pylint.sys"", ""pylint.pyreverse"", ""pylint.constants"", and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
+-wrong-import-order:32:0:32:19::"third party import ""requests"" should be placed before first party imports ""pylint.checkers"", ""pylint.config"", ""pylint.sys"", ""pylint.pyreverse"", ""pylint.constants"" and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
+-wrong-import-order:33:0:33:24::"first party import ""pylint.exceptions"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
+-wrong-import-order:34:0:34:21::"first party import ""pylint.message"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
+-wrong-import-order:35:0:35:11::"standard import ""time"" should be placed before third party imports ""six"", ""astroid.are_exclusive"", ""unused_import"" (...) ""astroid"", ""six.moves.urllib.parse.quote"", ""requests"", first party imports ""pylint.checkers"", ""pylint.config"", ""pylint.sys"" (...) ""pylint.constants"", ""pylint.exceptions"", ""pylint.message"", and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:22:0:22:22::"third party import ""pylint.checkers"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
++wrong-import-order:23:0:23:25::"third party import ""pylint.config"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
++wrong-import-order:24:0:24:17::"third party import ""pylint.sys"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
++wrong-import-order:25:0:25:28::"third party import ""pylint.pyreverse"" should be placed before local imports ""package.Class"", "".package"", "".package2""":UNDEFINED
++wrong-import-order:30:0:30:40::"third party import ""six.moves.urllib.parse.quote"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:31:0:31:23::"third party import ""pylint.constants"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:32:0:32:19::"standard import ""re"" should be placed before third party imports ""six"", ""astroid.are_exclusive"", ""unused_import"" (...) ""pylint.pyreverse"", ""six.moves.urllib.parse.quote"", ""pylint.constants"" and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:32:0:32:19::"third party import ""requests"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:33:0:33:24::"third party import ""pylint.exceptions"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:34:0:34:21::"third party import ""pylint.message"" should be placed before local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
++wrong-import-order:35:0:35:11::"standard import ""time"" should be placed before third party imports ""six"", ""astroid.are_exclusive"", ""unused_import"" (...) ""requests"", ""pylint.exceptions"", ""pylint.message"" and local imports ""package.Class"", "".package"", "".package2"" (...) ""package3.Class3"", "".package4"", ""package4.Class4""":UNDEFINED
diff --git a/meta-python/recipes-devtools/python/python3-pylint/run-ptest b/meta-python/recipes-devtools/python/python3-pylint/run-ptest
new file mode 100644
index 0000000000..ed424cb879
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pylint/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --benchmark-disable -vv --minimal-messages-config --automake tests/test_functional.py
diff --git a/meta-python/recipes-devtools/python/python3-pylint_2.14.5.bb b/meta-python/recipes-devtools/python/python3-pylint_2.14.5.bb
deleted file mode 100644
index 738b9250c0..0000000000
--- a/meta-python/recipes-devtools/python/python3-pylint_2.14.5.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY="Pylint is a Python source code analyzer"
-HOMEPAGE= "http://www.pylint.org/"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c107cf754550e65755c42985a5d4e9c9"
-
-SRC_URI[sha256sum] = "487ce2192eee48211269a0e976421f334cf94de1806ca9d0a99449adcdf0285e"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "${PYTHON_PN}-astroid \
- ${PYTHON_PN}-isort \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-pkgutil \
- ${PYTHON_PN}-difflib \
- ${PYTHON_PN}-netserver \
- "
diff --git a/meta-python/recipes-devtools/python/python3-pylint_3.1.0.bb b/meta-python/recipes-devtools/python/python3-pylint_3.1.0.bb
new file mode 100644
index 0000000000..12f4f908af
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pylint_3.1.0.bb
@@ -0,0 +1,57 @@
+SUMMARY="Pylint is a Python source code analyzer"
+HOMEPAGE= "http://www.pylint.org/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c107cf754550e65755c42985a5d4e9c9"
+
+SRC_URI += "git://github.com/pylint-dev/pylint;branch=maintenance/3.1.x;protocol=https \
+ file://0001-Adjust-test-expectations-for-ptest.patch \
+ file://run-ptest \
+ "
+SRCREV = "053c2c3a25f97f043e10cdd41d2609e495a68f57"
+
+inherit python_setuptools_build_meta ptest
+
+RDEPENDS:${PN} += "\
+ python3-astroid \
+ python3-difflib \
+ python3-dill \
+ python3-isort \
+ python3-json \
+ python3-mccabe \
+ python3-netserver \
+ python3-numbers \
+ python3-pkgutil \
+ python3-platformdirs \
+ python3-shell \
+ python3-tomlkit \
+ "
+
+RDEPENDS:${PN}-ptest += " \
+ python3-core \
+ python3-git \
+ python3-py \
+ python3-pytest \
+ python3-pytest-benchmark \
+ python3-pytest-runner \
+ python3-pytest-timeout \
+ python3-pytest-xdist \
+ python3-requests \
+ python3-statistics \
+ python3-tomllib \
+ python3-typing-extensions \
+ python3-unittest-automake-output \
+ "
+
+S = "${WORKDIR}/git"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+ install -Dm 0644 ${S}/tests/.pylint_primer_tests/.gitkeep ${D}${PTEST_PATH}/tests/.pylint_primer_tests/.gitkeep
+ sed -i 's#/usr/bin/python$#/usr/bin/python3#g' ${D}${PTEST_PATH}/tests/data/ascript
+ # regression_distutil_import_error_73.py fails to run see
+ # https://lists.openembedded.org/g/openembedded-devel/topic/103181847
+ rm ${D}${PTEST_PATH}/tests/functional/r/regression_02/regression_distutil_import_error_73.py
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pylyrics_1.1.0.bb b/meta-python/recipes-devtools/python/python3-pylyrics_1.1.0.bb
index 207751c451..1ac95e8be3 100644
--- a/meta-python/recipes-devtools/python/python3-pylyrics_1.1.0.bb
+++ b/meta-python/recipes-devtools/python/python3-pylyrics_1.1.0.bb
@@ -9,4 +9,10 @@ SRC_URI[sha256sum] = "c5f36e8ef0ed3b487a9242ce34c19f9684e418a5bbffd5d367dc1d1604
PYPI_PACKAGE = "PyLyrics"
PYPI_PACKAGE_EXT = "zip"
-inherit pypi setuptools3 \ No newline at end of file
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-beautifulsoup4 \
+ python3-classes \
+ python3-requests \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pymemcache_4.0.0.bb b/meta-python/recipes-devtools/python/python3-pymemcache_4.0.0.bb
new file mode 100644
index 0000000000..8d966cfb63
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pymemcache_4.0.0.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "A comprehensive, fast, pure Python memcached client"
+HOMEPAGE = "https://github.com/pinterest/pymemcache"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+PYPI_PACKAGE = "pymemcache"
+
+SRC_URI[sha256sum] = "27bf9bd1bbc1e20f83633208620d56de50f14185055e49504f4f5e94e94aff94"
+
+inherit pypi setuptools3
+
+DEPENDS += " \
+ python3-setuptools-scm-native \
+ python3-six-native \
+"
+
+RDEPENDS:${PN} += "\
+ python3-io \
+ python3-core \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pymetno_0.10.0.bb b/meta-python/recipes-devtools/python/python3-pymetno_0.10.0.bb
deleted file mode 100644
index c5ab635927..0000000000
--- a/meta-python/recipes-devtools/python/python3-pymetno_0.10.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Python library to talk to the met.no api"
-HOMEPAGE = "https://github.com/Danielhiversen/pyMetno"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5d503272f52c35147ec960cb56a03bf4"
-
-SRC_URI = "git://github.com/Danielhiversen/pyMetno.git;protocol=https;branch=master"
-SRCREV = "5fc18d7c5d627a9d9b2529db98d4e7e01a37dbf9"
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-
-PIP_INSTALL_PACKAGE = "PyMetno"
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-aiohttp (>=3.6.1) \
- ${PYTHON_PN}-async-timeout (>=3.0.1) \
- ${PYTHON_PN}-pytz (>=2019.3) \
-"
diff --git a/meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb b/meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb
new file mode 100644
index 0000000000..5be6e6319b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pymetno_0.12.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Python library to talk to the met.no api"
+HOMEPAGE = "https://github.com/Danielhiversen/pyMetno"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5d503272f52c35147ec960cb56a03bf4"
+
+SRC_URI = "git://github.com/Danielhiversen/pyMetno.git;protocol=https;branch=master"
+SRCREV = "50f427aad264a4793abb94a3c8cbf987fadcd4ae"
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+RDEPENDS:${PN} = "\
+ python3-aiohttp (>=3.6.1) \
+ python3-async-timeout (>=3.0.1) \
+ python3-pytz (>=2019.3) \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pymisp_2.4.157.bb b/meta-python/recipes-devtools/python/python3-pymisp_2.4.157.bb
deleted file mode 100644
index a900e70279..0000000000
--- a/meta-python/recipes-devtools/python/python3-pymisp_2.4.157.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "Python API for MISP"
-HOMEPAGE = "https://github.com/MISP/PyMISP"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
-
-SRC_URI = "git://github.com/MISP/PyMISP.git;protocol=https;branch=main"
-SRCREV = "b1892efb6a078d1370cee51c9103f3a591c628d2"
-S = "${WORKDIR}/git"
-
-inherit python_poetry_core
-
-PIP_INSTALL_PACKAGE = "pymisp"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-dateutil \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-jsonschema \
- ${PYTHON_PN}-requests \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-deprecated \
- ${PYTHON_PN}-wrapt \
-"
-
-# Fixes: python3-pymisp requires /bin/bash, but no
-# providers found in RDEPENDS:python3-pymisp? [file-rdep]
-RDEPENDS:${PN} += "bash"
diff --git a/meta-python/recipes-devtools/python/python3-pymisp_2.4.188.bb b/meta-python/recipes-devtools/python/python3-pymisp_2.4.188.bb
new file mode 100644
index 0000000000..59a00be154
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pymisp_2.4.188.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Python API for MISP"
+HOMEPAGE = "https://github.com/MISP/PyMISP"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
+
+SRC_URI[sha256sum] = "c2313d059a9f4d1221243fcda64fb8ae11603c1745e92d57c4071aad04336696"
+
+inherit python_poetry_core pypi
+
+RDEPENDS:${PN} += " \
+ python3-dateutil \
+ python3-json \
+ python3-jsonschema \
+ python3-requests \
+ python3-six \
+ python3-deprecated \
+ python3-wrapt \
+"
+
+# Fixes: python3-pymisp requires /bin/bash, but no
+# providers found in RDEPENDS:python3-pymisp? [file-rdep]
+RDEPENDS:${PN} += "bash"
diff --git a/meta-python/recipes-devtools/python/python3-pymodbus_2.5.3.bb b/meta-python/recipes-devtools/python/python3-pymodbus_2.5.3.bb
deleted file mode 100644
index 46565876fe..0000000000
--- a/meta-python/recipes-devtools/python/python3-pymodbus_2.5.3.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "A fully featured modbus protocol stack in python"
-HOMEPAGE = "https://github.com/riptideio/pymodbus/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2c2223d66c7e674b40527b5a4c35bd76"
-DEPENDS += "python3-six-native"
-
-SRC_URI[sha256sum] = "5ef68c1a109bdb467c830ef003ef2db6494349a5248e4af946fe21c9eefe7e74"
-S = "${WORKDIR}/pymodbus-${PV}"
-
-inherit pypi setuptools3
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[repl] = ",,,python3-aiohttp python3-click python3-prompt-toolkit python3-pygments python3-pyserial-asyncio"
-PACKAGECONFIG[asyncio] = ",,,python3-pyserial-asyncio"
-PACKAGECONFIG[tornado] = ",,,python3-tornado"
-PACKAGECONFIG[twisted] = ",,,python3-twisted-conch"
-PACKAGECONFIG[redis] = ",,,python3-redis"
-PACKAGECONFIG[sql] = ",,,python3-sqlalchemy"
-
-RDEPENDS:${PN} += " \
- python3-asyncio \
- python3-core \
- python3-io \
- python3-json \
- python3-logging \
- python3-math \
- python3-netserver \
-"
-
-RDEPENDS:${PN} += " \
- python3-pyserial \
- python3-six \
-"
-
-
diff --git a/meta-python/recipes-devtools/python/python3-pymodbus_3.6.6.bb b/meta-python/recipes-devtools/python/python3-pymodbus_3.6.6.bb
new file mode 100644
index 0000000000..8e181640b6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pymodbus_3.6.6.bb
@@ -0,0 +1,31 @@
+SUMMARY = "A fully featured modbus protocol stack in python"
+HOMEPAGE = "https://github.com/riptideio/pymodbus/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eba8057aa82c058d2042b4b0a0e9cc63"
+
+SRC_URI[sha256sum] = "c4d556a0954d00a9e1c8f1d0de03f41c4800336e6d785e820f2917eeb4ee7736"
+
+inherit pypi python_setuptools_build_meta
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[repl] = ",,,python3-aiohttp python3-click python3-prompt-toolkit python3-pygments python3-pyserial-asyncio"
+PACKAGECONFIG[asyncio] = ",,,python3-pyserial-asyncio"
+PACKAGECONFIG[tornado] = ",,,python3-tornado"
+PACKAGECONFIG[twisted] = ",,,python3-twisted-conch"
+PACKAGECONFIG[redis] = ",,,python3-redis"
+PACKAGECONFIG[sql] = ",,,python3-sqlalchemy"
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-core \
+ python3-io \
+ python3-json \
+ python3-logging \
+ python3-math \
+ python3-netserver \
+"
+
+RDEPENDS:${PN} += " \
+ python3-pyserial \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pymongo_4.2.0.bb b/meta-python/recipes-devtools/python/python3-pymongo_4.2.0.bb
deleted file mode 100644
index 62b6a941b0..0000000000
--- a/meta-python/recipes-devtools/python/python3-pymongo_4.2.0.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Python driver for MongoDB <http://www.mongodb.org>"
-DESCRIPTION = "\
-The PyMongo distribution contains tools for interacting with MongoDB \
-database from Python. The bson package is an implementation of the BSON \
-format for Python. The pymongo package is a native Python driver for \
-MongoDB. The gridfs package is a gridfs implementation on top of pymongo."
-HOMEPAGE = "http://github.com/mongodb/mongo-python-driver"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-
-SRC_URI[sha256sum] = "72f338f6aabd37d343bd9d1fdd3de921104d395766bcc5cdc4039e4c2dd97766"
-
-inherit pypi setuptools3
-
-PACKAGES =+ "${PYTHON_PN}-bson"
-
-FILES:${PYTHON_PN}-bson = "${PYTHON_SITEPACKAGES_DIR}/bson/*"
-
-RDEPENDS:${PYTHON_PN}-bson += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-threading \
-"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-bson \
- ${PYTHON_PN}-pprint \
-"
diff --git a/meta-python/recipes-devtools/python/python3-pymongo_4.6.1.bb b/meta-python/recipes-devtools/python/python3-pymongo_4.6.1.bb
new file mode 100644
index 0000000000..260e134cd2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pymongo_4.6.1.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Python driver for MongoDB <http://www.mongodb.org>"
+DESCRIPTION = "\
+The PyMongo distribution contains tools for interacting with MongoDB \
+database from Python. The bson package is an implementation of the BSON \
+format for Python. The pymongo package is a native Python driver for \
+MongoDB. The gridfs package is a gridfs implementation on top of pymongo."
+HOMEPAGE = "http://github.com/mongodb/mongo-python-driver"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI[sha256sum] = "31dab1f3e1d0cdd57e8df01b645f52d43cc1b653ed3afd535d2891f4fc4f9712"
+
+inherit pypi setuptools3
+
+PACKAGES =+ "python3-bson"
+
+FILES:python3-bson = "${PYTHON_SITEPACKAGES_DIR}/bson/*"
+
+RDEPENDS:python3-bson += " \
+ python3-datetime \
+ python3-json \
+ python3-netclient \
+ python3-numbers \
+ python3-threading \
+"
+
+RDEPENDS:${PN} += " \
+ python3-bson \
+ python3-pprint \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pymysql_1.0.2.bb b/meta-python/recipes-devtools/python/python3-pymysql_1.0.2.bb
deleted file mode 100644
index 1f6fbd3bb1..0000000000
--- a/meta-python/recipes-devtools/python/python3-pymysql_1.0.2.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "A pure-Python MySQL client library"
-DESCRIPTION = " \
- This package contains a pure-Python MySQL client library, based on PEP 249 \
- Most public APIs are compatible with mysqlclient and MySQLdb. \
- "
-SECTION = "devel/python"
-HOMEPAGE = "https://pymysql.readthedocs.io"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=528175c84163bb800d23ad835c7fa0fc"
-
-SRC_URI[sha256sum] = "816927a350f38d56072aeca5dfb10221fe1dc653745853d30a216637f5d7ad36"
-
-PYPI_PACKAGE = "PyMySQL"
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "${PYTHON_PN}-cryptography"
diff --git a/meta-python/recipes-devtools/python/python3-pymysql_1.1.0.bb b/meta-python/recipes-devtools/python/python3-pymysql_1.1.0.bb
new file mode 100644
index 0000000000..5e56a64aa1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pymysql_1.1.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A pure-Python MySQL client library"
+DESCRIPTION = " \
+ This package contains a pure-Python MySQL client library, based on PEP 249 \
+ Most public APIs are compatible with mysqlclient and MySQLdb. \
+ "
+SECTION = "devel/python"
+HOMEPAGE = "https://pymysql.readthedocs.io"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=528175c84163bb800d23ad835c7fa0fc"
+
+SRC_URI[sha256sum] = "4f13a7df8bf36a51e81dd9f3605fede45a4878fe02f9236349fd82a3f0612f96"
+
+PYPI_PACKAGE = "PyMySQL"
+inherit pypi python_setuptools_build_meta
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/pymysql/"
+UPSTREAM_CHECK_REGEX = "/pymysql/(?P<pver>(\d+[\.\-_]*)+)"
+
+RDEPENDS:${PN} += "python3-cryptography"
diff --git a/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb b/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb
index 6e53461979..a2f2ab4df4 100644
--- a/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb
+++ b/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb
@@ -11,13 +11,7 @@ PYPI_PACKAGE = "PyNaCl"
inherit pypi python_setuptools_build_meta
DEPENDS += "\
- ${PYTHON_PN}-cffi-native \
- libsodium \
-"
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-cffi \
+ python3-cffi-native \
libsodium \
"
@@ -28,3 +22,17 @@ do_compile:prepend() {
do_install:prepend() {
export SODIUM_INSTALL=system
}
+
+RDEPENDS:${PN} = "\
+ python3-six \
+ python3-cffi \
+ libsodium \
+"
+
+RPROVIDES:${PN} = "python3-nacl"
+
+# in meta-virtualization layer
+#
+RCONFLICTS:${PN} = "python3-nacl"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pynetlinux/0002-Fixed-relative-imports.patch b/meta-python/recipes-devtools/python/python3-pynetlinux/0002-Fixed-relative-imports.patch
new file mode 100644
index 0000000000..65f38814c3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pynetlinux/0002-Fixed-relative-imports.patch
@@ -0,0 +1,60 @@
+From afb778669efbc658a29e6bdb1c4834fee42931aa Mon Sep 17 00:00:00 2001
+From: Robert Grant <rgrant@mdi.us.com>
+Date: Wed, 10 Sep 2014 14:56:33 -0400
+Subject: [PATCH] Fixed relative imports
+
+Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
+
+---
+Upstream-Status: Backport [https://github.com/rlisagor/pynetlinux/commit/afb778669efbc658a29e6bdb1c4834fee42931aa]
+
+ pynetlinux/__init__.py | 8 ++++----
+ pynetlinux/brctl.py | 2 +-
+ pynetlinux/tap.py | 2 +-
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/pynetlinux/__init__.py b/pynetlinux/__init__.py
+index dbbf392..b6e1b8e 100644
+--- a/pynetlinux/__init__.py
++++ b/pynetlinux/__init__.py
+@@ -2,7 +2,7 @@
+ # import pylinux
+ # does a reasonable thing.
+
+-import brctl
+-import ifconfig
+-import tap
+-import route
++from . import brctl
++from . import ifconfig
++from . import tap
++from . import route
+diff --git a/pynetlinux/brctl.py b/pynetlinux/brctl.py
+index f54d176..a8b926e 100644
+--- a/pynetlinux/brctl.py
++++ b/pynetlinux/brctl.py
+@@ -3,7 +3,7 @@ import fcntl
+ import os
+ import struct
+
+-import ifconfig
++from . import ifconfig
+
+ SYSFS_NET_PATH = "/sys/class/net"
+
+diff --git a/pynetlinux/tap.py b/pynetlinux/tap.py
+index 0a0d59c..3f8ad3a 100644
+--- a/pynetlinux/tap.py
++++ b/pynetlinux/tap.py
+@@ -2,7 +2,7 @@ import fcntl
+ import os
+ import struct
+
+-import ifconfig
++from . import ifconfig
+
+ # From linux/if_tun.h
+
+--
+2.39.2
+
diff --git a/meta-python/recipes-devtools/python/python3-pynetlinux_1.1.bb b/meta-python/recipes-devtools/python/python3-pynetlinux_1.1.bb
index a5ac74fd68..b1abac17aa 100644
--- a/meta-python/recipes-devtools/python/python3-pynetlinux_1.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pynetlinux_1.1.bb
@@ -7,6 +7,15 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=74e1861736ee959824fe7542323c12e9"
SRC_URI[sha256sum] = "4ad08298c9f5ba15a11cddc639ba8778cabdfc402b51066d9e0a325e5a5b391c"
-SRC_URI += "file://0001-setup.py-switch-to-setuptools.patch"
+SRC_URI += " \
+ file://0001-setup.py-switch-to-setuptools.patch \
+ file://0002-Fixed-relative-imports.patch \
+"
inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+ python3-fcntl \
+ python3-io \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pyperclip_1.8.2.bb b/meta-python/recipes-devtools/python/python3-pyperclip_1.8.2.bb
index 2870ec9c01..dcf0015c59 100644
--- a/meta-python/recipes-devtools/python/python3-pyperclip_1.8.2.bb
+++ b/meta-python/recipes-devtools/python/python3-pyperclip_1.8.2.bb
@@ -8,7 +8,7 @@ SRC_URI[sha256sum] = "105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107
inherit pypi setuptools3
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-ctypes \
+ python3-ctypes \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pyperf_2.4.1.bb b/meta-python/recipes-devtools/python/python3-pyperf_2.4.1.bb
deleted file mode 100644
index cb8282566a..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyperf_2.4.1.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "A toolkit to write, run and analyze benchmarks"
-DESCRIPTION = " \
-The Python pyperf module is a toolkit to write, run and analyze benchmarks. \
-Features: \
- * Simple API to run reliable benchmarks \
- * Automatically calibrate a benchmark for a time budget. \
- * Spawn multiple worker processes. \
- * Compute the mean and standard deviation. \
- * Detect if a benchmark result seems unstable. \
- * JSON format to store benchmark results. \
- * Support multiple units: seconds, bytes and integer. \
-"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=78bc2e6e87c8c61272937b879e6dc2f8"
-
-SRC_URI[sha256sum] = "38cf5e90c56f906a8320ce82a50bfa92c902b93affd72e4dc81580115f355853"
-
-DEPENDS += "${PYTHON_PN}-six-native"
-
-PYPI_PACKAGE = "pyperf"
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "${PYTHON_PN}-misc ${PYTHON_PN}-statistics"
diff --git a/meta-python/recipes-devtools/python/python3-pyperf_2.6.3.bb b/meta-python/recipes-devtools/python/python3-pyperf_2.6.3.bb
new file mode 100644
index 0000000000..6b37e1864a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyperf_2.6.3.bb
@@ -0,0 +1,23 @@
+SUMMARY = "A toolkit to write, run and analyze benchmarks"
+DESCRIPTION = " \
+The Python pyperf module is a toolkit to write, run and analyze benchmarks. \
+Features: \
+ * Simple API to run reliable benchmarks \
+ * Automatically calibrate a benchmark for a time budget. \
+ * Spawn multiple worker processes. \
+ * Compute the mean and standard deviation. \
+ * Detect if a benchmark result seems unstable. \
+ * JSON format to store benchmark results. \
+ * Support multiple units: seconds, bytes and integer. \
+"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=78bc2e6e87c8c61272937b879e6dc2f8"
+
+SRC_URI[sha256sum] = "9752fe749c21e460a564bb3f52fc319b892c62ee61c5138b4a9bbf94ad2755e6"
+
+DEPENDS += "python3-six-native"
+
+PYPI_PACKAGE = "pyperf"
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += "python3-misc python3-statistics"
diff --git a/meta-python/recipes-devtools/python/python3-pypng_0.20220715.0.bb b/meta-python/recipes-devtools/python/python3-pypng_0.20220715.0.bb
new file mode 100644
index 0000000000..9e30f67dc6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pypng_0.20220715.0.bb
@@ -0,0 +1,8 @@
+SUMMARY = "PNG module for Python."
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=5b60f319c8cf51f825b4f40aadee3243"
+
+SRC_URI[sha256sum] = "739c433ba96f078315de54c0db975aee537cbc3e1d0ae4ed9aab0ca1e427e2c1"
+
+inherit pypi python_setuptools_build_meta
diff --git a/meta-python/recipes-devtools/python/python3-pyppmd_1.1.0.bb b/meta-python/recipes-devtools/python/python3-pyppmd_1.1.0.bb
new file mode 100644
index 0000000000..cec21007a2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyppmd_1.1.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "PPMd compression/decompression library"
+HOMEPAGE = "https://pyppmd.readthedocs.io/en/latest/"
+LICENSE = "LGPL-2.1-or-later"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "1d38ce2e4b7eb84b53bc8a52380b94f66ba6c39328b8800b30c2b5bf31693973"
+
+DEPENDS += " \
+ python3-setuptools-scm-native \
+ python3-toml-native \
+ python3-wheel-native \
+"
+
+RDEPENDS:${PN} += "\
+ python3-email \
+ python3-importlib-metadata \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pyproj_3.4.0.bb b/meta-python/recipes-devtools/python/python3-pyproj_3.4.0.bb
deleted file mode 100644
index 62eceb2c09..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyproj_3.4.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Python interface to PROJ (cartographic projections and coordinate transformations library)"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dc4bb2668871655e24030dfe8d2a7ce7"
-DEPENDS = "python3-cython proj"
-DEPENDS:append:class-target = " python3-cython-native proj-native"
-
-PYPI_PACKAGE = "pyproj"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "a708445927ace9857f52c3ba67d2915da7b41a8fdcd9b8f99a4c9ed60a75eb33"
-
-RDEPENDS:${PN} = "${PYTHON_PN}-certifi proj"
-
-export PROJ_INCDIR = "${STAGING_INCDIR}"
-export PROJ_LIBDIR = "${STAGING_LIBDIR}"
diff --git a/meta-python/recipes-devtools/python/python3-pyproj_3.6.1.bb b/meta-python/recipes-devtools/python/python3-pyproj_3.6.1.bb
new file mode 100644
index 0000000000..a4121c3934
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyproj_3.6.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Python interface to PROJ (cartographic projections and coordinate transformations library)"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=873757af01d2d221eedb422c4c1dd163"
+DEPENDS = "python3-cython proj"
+DEPENDS:append:class-target = " python3-cython-native proj-native"
+
+PYPI_PACKAGE = "pyproj"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "44aa7c704c2b7d8fb3d483bbf75af6cb2350d30a63b144279a09b75fead501bf"
+
+RDEPENDS:${PN} = " \
+ python3-certifi \
+ python3-compression \
+ python3-json \
+ python3-logging \
+ python3-profile \
+"
+
+export PROJ_INCDIR = "${STAGING_INCDIR}"
+export PROJ_LIBDIR = "${STAGING_LIBDIR}"
+export PROJ_DIR = "${STAGING_BINDIR_NATIVE}/.."
diff --git a/meta-python/recipes-devtools/python/python3-pyproject-api_1.6.1.bb b/meta-python/recipes-devtools/python/python3-pyproject-api_1.6.1.bb
new file mode 100644
index 0000000000..aec19949d2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyproject-api_1.6.1.bb
@@ -0,0 +1,23 @@
+# SPDX-License-Identifier: MIT
+# Copyright (C) 2023 iris-GmbH infrared & intelligent sensors
+
+SUMMARY = "pyproject-api aims to abstract away interaction with pyproject.toml style projects in a flexible way."
+HOMEPAGE = "https://pyproject-api.readthedocs.io"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=11610a9d8fd95649cf8159be12b98cb7"
+
+SRC_URI[sha256sum] = "1817dc018adc0d1ff9ca1ed8c60e1623d5aaca40814b953af14a9cf9a5cae538"
+
+PYPI_PACKAGE = "pyproject_api"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_hatchling
+
+DEPENDS += "\
+ python3-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += "\
+ python3-packaging \
+ python3-tomli \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb b/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb
index bce1e2fd14..801233a026 100644
--- a/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb
+++ b/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb
@@ -9,3 +9,11 @@ SRC_URI[sha256sum] = "057de4b7e89d8da57ba782c1bde45c63ebee720ae2c0b0a69beaff15c4
SRC_URI += "file://use-poetry-core.patch"
inherit pypi python_poetry_core
+
+RDEPENDS:${PN} += " \
+ python3-crypt \
+ python3-io \
+ python3-logging \
+ python3-netaddr \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pyroute2/run-ptest b/meta-python/recipes-devtools/python/python3-pyroute2/run-ptest
index ea429ba21e..f1c8729f0e 100644
--- a/meta-python/recipes-devtools/python/python3-pyroute2/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-pyroute2/run-ptest
@@ -1,4 +1,4 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-pyroute2_0.5.19.bb b/meta-python/recipes-devtools/python/python3-pyroute2_0.5.19.bb
deleted file mode 100644
index fa5b3a522a..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyroute2_0.5.19.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "A pure Python netlink and Linux network configuration library"
-LICENSE = "GPL-2.0-only & Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.GPL.v2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://LICENSE.Apache.v2;md5=34281e312165f843a2b7d1f114fe65ce"
-
-SRC_URI[sha256sum] = "45460d12ed2a5caf272a357a3360b36d1e346f17afe1425b66fc21d70f462b29"
-
-inherit setuptools3 pypi ptest
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-distutils \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-multiprocessing \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-pkgutil \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-unixadmin \
-"
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-fcntl \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-python/recipes-devtools/python/python3-pyroute2_0.7.10.bb b/meta-python/recipes-devtools/python/python3-pyroute2_0.7.10.bb
new file mode 100644
index 0000000000..740a6d7f73
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyroute2_0.7.10.bb
@@ -0,0 +1,41 @@
+SUMMARY = "A pure Python netlink and Linux network configuration library"
+LICENSE = "GPL-2.0-or-later | Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dccbff78d7d79ae7e53953d43445c6e6 \
+ file://LICENSE.GPL-2.0-or-later;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSE.Apache-2.0;md5=34281e312165f843a2b7d1f114fe65ce"
+
+SRC_URI[sha256sum] = "cc2f90aad1517cb0b301041f678cc8d3c3427c26e53f15c78c93c67928d89a02"
+
+inherit setuptools3 pypi ptest
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+ python3-io \
+ python3-json \
+ python3-fcntl \
+ python3-logging \
+ python3-multiprocessing \
+ python3-pickle \
+ python3-pkgutil \
+ python3-pprint \
+ python3-shell \
+ python3-unixadmin \
+"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-fcntl \
+ python3-pytest \
+ python3-sqlite3 \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+ sed -e "s|'test_unit|'tests/test_unit|g" -i ${D}${PTEST_PATH}/tests/test_unit/test_nlmsg/test_marshal.py \
+ ${D}${PTEST_PATH}/tests/test_unit/test_iproute_match/test_match.py
+}
diff --git a/meta-python/recipes-devtools/python/python3-pyruvate-crates.inc b/meta-python/recipes-devtools/python/python3-pyruvate-crates.inc
new file mode 100644
index 0000000000..b8a74e617f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyruvate-crates.inc
@@ -0,0 +1,216 @@
+# Autogenerated with 'bitbake -c update_crates python3-pyruvate'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/aho-corasick/0.7.20 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/block-buffer/0.10.3 \
+ crate://crates.io/cc/1.0.78 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/cpufeatures/0.2.5 \
+ crate://crates.io/cpython/0.7.1 \
+ crate://crates.io/crossbeam/0.8.2 \
+ crate://crates.io/crossbeam-channel/0.5.6 \
+ crate://crates.io/crossbeam-deque/0.8.2 \
+ crate://crates.io/crossbeam-epoch/0.9.13 \
+ crate://crates.io/crossbeam-queue/0.3.8 \
+ crate://crates.io/crossbeam-utils/0.8.14 \
+ crate://crates.io/crypto-common/0.1.6 \
+ crate://crates.io/digest/0.10.6 \
+ crate://crates.io/encoding/0.2.33 \
+ crate://crates.io/encoding-index-japanese/1.20141219.5 \
+ crate://crates.io/encoding-index-korean/1.20141219.5 \
+ crate://crates.io/encoding-index-simpchinese/1.20141219.5 \
+ crate://crates.io/encoding-index-singlebyte/1.20141219.5 \
+ crate://crates.io/encoding-index-tradchinese/1.20141219.5 \
+ crate://crates.io/encoding_index_tests/0.1.4 \
+ crate://crates.io/env_logger/0.10.0 \
+ crate://crates.io/errno/0.2.8 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/fastrand/1.8.0 \
+ crate://crates.io/generic-array/0.14.6 \
+ crate://crates.io/getrandom/0.2.8 \
+ crate://crates.io/hermit-abi/0.1.19 \
+ crate://crates.io/hermit-abi/0.2.6 \
+ crate://crates.io/hmac/0.12.1 \
+ crate://crates.io/httparse/1.8.0 \
+ crate://crates.io/humantime/2.1.0 \
+ crate://crates.io/instant/0.1.12 \
+ crate://crates.io/io-lifetimes/1.0.3 \
+ crate://crates.io/is-terminal/0.4.1 \
+ crate://crates.io/itoa/1.0.5 \
+ crate://crates.io/libc/0.2.138 \
+ crate://crates.io/libsystemd/0.5.0 \
+ crate://crates.io/linux-raw-sys/0.1.4 \
+ crate://crates.io/log/0.4.17 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/memoffset/0.6.5 \
+ crate://crates.io/memoffset/0.7.1 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/mio/0.8.5 \
+ crate://crates.io/nix/0.23.2 \
+ crate://crates.io/nix/0.26.1 \
+ crate://crates.io/nom/7.1.1 \
+ crate://crates.io/num-traits/0.2.15 \
+ crate://crates.io/num_cpus/1.14.0 \
+ crate://crates.io/num_threads/0.1.6 \
+ crate://crates.io/once_cell/1.16.0 \
+ crate://crates.io/paste/1.0.11 \
+ crate://crates.io/pin-utils/0.1.0 \
+ crate://crates.io/ppv-lite86/0.2.17 \
+ crate://crates.io/proc-macro2/1.0.49 \
+ crate://crates.io/python3-sys/0.7.1 \
+ crate://crates.io/quote/1.0.23 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_chacha/0.3.1 \
+ crate://crates.io/rand_core/0.6.4 \
+ crate://crates.io/redox_syscall/0.2.16 \
+ crate://crates.io/regex/1.7.0 \
+ crate://crates.io/regex-syntax/0.6.28 \
+ crate://crates.io/remove_dir_all/0.5.3 \
+ crate://crates.io/rustix/0.36.5 \
+ crate://crates.io/scopeguard/1.1.0 \
+ crate://crates.io/serde/1.0.151 \
+ crate://crates.io/serde_derive/1.0.151 \
+ crate://crates.io/sha2/0.10.6 \
+ crate://crates.io/signal-hook/0.3.14 \
+ crate://crates.io/signal-hook-registry/1.4.0 \
+ crate://crates.io/simplelog/0.12.0 \
+ crate://crates.io/spmc/0.3.0 \
+ crate://crates.io/static_assertions/1.1.0 \
+ crate://crates.io/subtle/2.4.1 \
+ crate://crates.io/syn/1.0.107 \
+ crate://crates.io/tempfile/3.3.0 \
+ crate://crates.io/termcolor/1.1.3 \
+ crate://crates.io/thiserror/1.0.38 \
+ crate://crates.io/thiserror-impl/1.0.38 \
+ crate://crates.io/threadpool/1.8.1 \
+ crate://crates.io/time/0.3.17 \
+ crate://crates.io/time-core/0.1.0 \
+ crate://crates.io/time-macros/0.2.6 \
+ crate://crates.io/typenum/1.16.0 \
+ crate://crates.io/unicode-ident/1.0.6 \
+ crate://crates.io/urlencoding/2.1.2 \
+ crate://crates.io/uuid/0.8.2 \
+ crate://crates.io/version_check/0.9.4 \
+ crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
+ crate://crates.io/winapi/0.3.9 \
+ crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+ crate://crates.io/winapi-util/0.1.5 \
+ crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+ crate://crates.io/windows-sys/0.42.0 \
+ crate://crates.io/windows_aarch64_gnullvm/0.42.0 \
+ crate://crates.io/windows_aarch64_msvc/0.42.0 \
+ crate://crates.io/windows_i686_gnu/0.42.0 \
+ crate://crates.io/windows_i686_msvc/0.42.0 \
+ crate://crates.io/windows_x86_64_gnu/0.42.0 \
+ crate://crates.io/windows_x86_64_gnullvm/0.42.0 \
+ crate://crates.io/windows_x86_64_msvc/0.42.0 \
+"
+
+SRC_URI[aho-corasick-0.7.20.sha256sum] = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[block-buffer-0.10.3.sha256sum] = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
+SRC_URI[cc-1.0.78.sha256sum] = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[cpufeatures-0.2.5.sha256sum] = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+SRC_URI[cpython-0.7.1.sha256sum] = "3052106c29da7390237bc2310c1928335733b286287754ea85e6093d2495280e"
+SRC_URI[crossbeam-0.8.2.sha256sum] = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
+SRC_URI[crossbeam-channel-0.5.6.sha256sum] = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
+SRC_URI[crossbeam-deque-0.8.2.sha256sum] = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
+SRC_URI[crossbeam-epoch-0.9.13.sha256sum] = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"
+SRC_URI[crossbeam-queue-0.3.8.sha256sum] = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+SRC_URI[crossbeam-utils-0.8.14.sha256sum] = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"
+SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+SRC_URI[digest-0.10.6.sha256sum] = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+SRC_URI[encoding-0.2.33.sha256sum] = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
+SRC_URI[encoding-index-japanese-1.20141219.5.sha256sum] = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
+SRC_URI[encoding-index-korean-1.20141219.5.sha256sum] = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
+SRC_URI[encoding-index-simpchinese-1.20141219.5.sha256sum] = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
+SRC_URI[encoding-index-singlebyte-1.20141219.5.sha256sum] = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
+SRC_URI[encoding-index-tradchinese-1.20141219.5.sha256sum] = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
+SRC_URI[encoding_index_tests-0.1.4.sha256sum] = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
+SRC_URI[env_logger-0.10.0.sha256sum] = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+SRC_URI[errno-0.2.8.sha256sum] = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[fastrand-1.8.0.sha256sum] = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+SRC_URI[generic-array-0.14.6.sha256sum] = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+SRC_URI[getrandom-0.2.8.sha256sum] = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[hermit-abi-0.2.6.sha256sum] = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+SRC_URI[hmac-0.12.1.sha256sum] = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+SRC_URI[httparse-1.8.0.sha256sum] = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.3.sha256sum] = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c"
+SRC_URI[is-terminal-0.4.1.sha256sum] = "927609f78c2913a6f6ac3c27a4fe87f43e2a35367c0c4b0f8265e8f49a104330"
+SRC_URI[itoa-1.0.5.sha256sum] = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
+SRC_URI[libc-0.2.138.sha256sum] = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
+SRC_URI[libsystemd-0.5.0.sha256sum] = "8144587c71c16756b1055d3dcb0c75cb605a10ecd6523cc33702d5f90902bf6d"
+SRC_URI[linux-raw-sys-0.1.4.sha256sum] = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[memoffset-0.6.5.sha256sum] = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+SRC_URI[memoffset-0.7.1.sha256sum] = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[mio-0.8.5.sha256sum] = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de"
+SRC_URI[nix-0.23.2.sha256sum] = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
+SRC_URI[nix-0.26.1.sha256sum] = "46a58d1d356c6597d08cde02c2f09d785b09e28711837b1ed667dc652c08a694"
+SRC_URI[nom-7.1.1.sha256sum] = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[num_cpus-1.14.0.sha256sum] = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
+SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+SRC_URI[once_cell-1.16.0.sha256sum] = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+SRC_URI[paste-1.0.11.sha256sum] = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba"
+SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[proc-macro2-1.0.49.sha256sum] = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5"
+SRC_URI[python3-sys-0.7.1.sha256sum] = "49f8b50d72fb3015735aa403eebf19bbd72c093bfeeae24ee798be5f2f1aab52"
+SRC_URI[quote-1.0.23.sha256sum] = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+SRC_URI[regex-1.7.0.sha256sum] = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
+SRC_URI[regex-syntax-0.6.28.sha256sum] = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+SRC_URI[remove_dir_all-0.5.3.sha256sum] = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+SRC_URI[rustix-0.36.5.sha256sum] = "a3807b5d10909833d3e9acd1eb5fb988f79376ff10fce42937de71a449c4c588"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[serde-1.0.151.sha256sum] = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0"
+SRC_URI[serde_derive-1.0.151.sha256sum] = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8"
+SRC_URI[sha2-0.10.6.sha256sum] = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+SRC_URI[signal-hook-0.3.14.sha256sum] = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d"
+SRC_URI[signal-hook-registry-1.4.0.sha256sum] = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+SRC_URI[simplelog-0.12.0.sha256sum] = "48dfff04aade74dd495b007c831cd6f4e0cee19c344dd9dc0884c0289b70a786"
+SRC_URI[spmc-0.3.0.sha256sum] = "02a8428da277a8e3a15271d79943e80ccc2ef254e78813a166a08d65e4c3ece5"
+SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+SRC_URI[subtle-2.4.1.sha256sum] = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+SRC_URI[syn-1.0.107.sha256sum] = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+SRC_URI[tempfile-3.3.0.sha256sum] = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+SRC_URI[termcolor-1.1.3.sha256sum] = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+SRC_URI[thiserror-1.0.38.sha256sum] = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
+SRC_URI[thiserror-impl-1.0.38.sha256sum] = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
+SRC_URI[threadpool-1.8.1.sha256sum] = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+SRC_URI[time-0.3.17.sha256sum] = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
+SRC_URI[time-core-0.1.0.sha256sum] = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+SRC_URI[time-macros-0.2.6.sha256sum] = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2"
+SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+SRC_URI[unicode-ident-1.0.6.sha256sum] = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+SRC_URI[urlencoding-2.1.2.sha256sum] = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9"
+SRC_URI[uuid-0.8.2.sha256sum] = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+SRC_URI[windows-sys-0.42.0.sha256sum] = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+SRC_URI[windows_aarch64_gnullvm-0.42.0.sha256sum] = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
+SRC_URI[windows_aarch64_msvc-0.42.0.sha256sum] = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
+SRC_URI[windows_i686_gnu-0.42.0.sha256sum] = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
+SRC_URI[windows_i686_msvc-0.42.0.sha256sum] = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
+SRC_URI[windows_x86_64_gnu-0.42.0.sha256sum] = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
+SRC_URI[windows_x86_64_gnullvm-0.42.0.sha256sum] = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
+SRC_URI[windows_x86_64_msvc-0.42.0.sha256sum] = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
diff --git a/meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch b/meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch
index f41e6cf116..3f8256b027 100644
--- a/meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch
+++ b/meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch
@@ -19,7 +19,9 @@ currently the build fails on mips archirecture with type mismatches
296 | device: stat.st_dev,
| ^^^^^^^^^^^ expected `u64`, found `u32`
-Upstream-Status: Submitted [https://github.com/lucab/libsystemd-rs/pull/103]
+Drop this patch when libsystemd-rs crate bumps to 0.6.0+
+
+Upstream-Status: Backport [https://github.com/lucab/libsystemd-rs/pull/104]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/logging.rs | 3 +++
diff --git a/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-O_LARGEFILE-for-riscv32.patch b/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-O_LARGEFILE-for-riscv32.patch
new file mode 100644
index 0000000000..621249c483
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-O_LARGEFILE-for-riscv32.patch
@@ -0,0 +1,21 @@
+From fdf98602ad20d06ebf65574541caac68ca421ac4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Apr 2023 09:19:53 -0700
+Subject: [PATCH] musl: Define O_LARGEFILE for riscv32
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/3191]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unix/linux_like/linux/musl/b32/riscv32/mod.rs | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
+@@ -370,6 +370,7 @@ pub const __SIZEOF_PTHREAD_CONDATTR_T: u
+ pub const __SIZEOF_PTHREAD_MUTEXATTR_T: usize = 4;
+ pub const O_DIRECT: ::c_int = 16384;
+ pub const O_DIRECTORY: ::c_int = 65536;
++pub const O_LARGEFILE: ::c_int = 0o0100000;
+ pub const O_NOFOLLOW: ::c_int = 131072;
+ pub const MAP_HUGETLB: ::c_int = 262144;
+ pub const MAP_LOCKED: ::c_int = 8192;
diff --git a/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_NONBLOCK-with-O_NONBLOCK.patch b/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_NONBLOCK-with-O_NONBLOCK.patch
new file mode 100644
index 0000000000..e19b50d30d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_NONBLOCK-with-O_NONBLOCK.patch
@@ -0,0 +1,99 @@
+From f2b06fa4ea6ec9a33f8b269f0a1730a26276c5b0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Apr 2023 08:25:46 -0700
+Subject: [PATCH] musl: Define SOCK_NONBLOCK with O_NONBLOCK
+
+Much like glibc, these defines are same on musl [1] [2]
+therefore consolidate the definition in one place
+for SOCK_NONBLOCK
+
+[1] https://github.com/search?q=repo%3Abminor%2Fmusl++%22%23define+SOCK_NONBLOCK%22&type=code
+[2] https://github.com/search?q=repo%3Abminor%2Fmusl++%22%23define+O_NONBLOCK%22&type=code
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/3191]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unix/linux_like/linux/musl/b32/arm/mod.rs | 2 --
+ src/unix/linux_like/linux/musl/b32/hexagon.rs | 1 -
+ src/unix/linux_like/linux/musl/b32/mips/mod.rs | 2 --
+ src/unix/linux_like/linux/musl/b32/powerpc.rs | 2 --
+ src/unix/linux_like/linux/musl/b32/x86/mod.rs | 2 --
+ src/unix/linux_like/linux/musl/b64/mod.rs | 2 --
+ src/unix/linux_like/linux/musl/mod.rs | 1 +
+ 7 files changed, 1 insertion(+), 11 deletions(-)
+
+--- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs
+@@ -311,8 +311,6 @@ pub const O_SYNC: ::c_int = 1052672;
+ pub const O_RSYNC: ::c_int = 1052672;
+ pub const O_DSYNC: ::c_int = 4096;
+
+-pub const SOCK_NONBLOCK: ::c_int = 2048;
+-
+ pub const MAP_ANON: ::c_int = 0x0020;
+ pub const MAP_GROWSDOWN: ::c_int = 0x0100;
+ pub const MAP_DENYWRITE: ::c_int = 0x0800;
+--- a/src/unix/linux_like/linux/musl/b32/hexagon.rs
++++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs
+@@ -295,7 +295,6 @@ pub const SIG_SETMASK: ::c_int = 2; // F
+ pub const SIG_BLOCK: ::c_int = 0x000000;
+ pub const SIG_UNBLOCK: ::c_int = 0x01;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_NONBLOCK: ::c_int = 2048;
+ pub const SOCK_SEQPACKET: ::c_int = 5;
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOL_CAIF: ::c_int = 278;
+--- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs
+@@ -250,8 +250,6 @@ pub const O_SYNC: ::c_int = 0o40020;
+ pub const O_RSYNC: ::c_int = 0o40020;
+ pub const O_DSYNC: ::c_int = 0o020;
+
+-pub const SOCK_NONBLOCK: ::c_int = 0o200;
+-
+ pub const MAP_ANON: ::c_int = 0x800;
+ pub const MAP_GROWSDOWN: ::c_int = 0x1000;
+ pub const MAP_DENYWRITE: ::c_int = 0x2000;
+--- a/src/unix/linux_like/linux/musl/b32/powerpc.rs
++++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs
+@@ -243,8 +243,6 @@ pub const O_SYNC: ::c_int = 1052672;
+ pub const O_RSYNC: ::c_int = 1052672;
+ pub const O_DSYNC: ::c_int = 4096;
+
+-pub const SOCK_NONBLOCK: ::c_int = 2048;
+-
+ pub const MAP_ANON: ::c_int = 0x0020;
+ pub const MAP_GROWSDOWN: ::c_int = 0x0100;
+ pub const MAP_DENYWRITE: ::c_int = 0x0800;
+--- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs
+@@ -300,8 +300,6 @@ pub const O_SYNC: ::c_int = 1052672;
+ pub const O_RSYNC: ::c_int = 1052672;
+ pub const O_DSYNC: ::c_int = 4096;
+
+-pub const SOCK_NONBLOCK: ::c_int = 2048;
+-
+ pub const MAP_ANON: ::c_int = 0x0020;
+ pub const MAP_GROWSDOWN: ::c_int = 0x0100;
+ pub const MAP_DENYWRITE: ::c_int = 0x0800;
+--- a/src/unix/linux_like/linux/musl/b64/mod.rs
++++ b/src/unix/linux_like/linux/musl/b64/mod.rs
+@@ -133,8 +133,6 @@ s! {
+ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
+
+-pub const SOCK_NONBLOCK: ::c_int = 2048;
+-
+ pub const SOCK_SEQPACKET: ::c_int = 5;
+
+ extern "C" {
+--- a/src/unix/linux_like/linux/musl/mod.rs
++++ b/src/unix/linux_like/linux/musl/mod.rs
+@@ -527,6 +527,7 @@ pub const POSIX_MADV_DONTNEED: ::c_int =
+ pub const MAP_ANONYMOUS: ::c_int = MAP_ANON;
+
+ pub const SOCK_DCCP: ::c_int = 6;
++pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK;
+ pub const SOCK_PACKET: ::c_int = 10;
+
+ pub const SOMAXCONN: ::c_int = 128;
diff --git a/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch b/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch
new file mode 100644
index 0000000000..2da3a43154
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch
@@ -0,0 +1,92 @@
+From e00da82cd46221bfb650895c9cea65082da66b4e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Apr 2023 09:25:31 -0700
+Subject: [PATCH] musl: Define SOCK_SEQPACKET in common place
+
+This define is not architecture specific in musl [1]
+
+[1] https://git.musl-libc.org/cgit/musl/tree/include/sys/socket.h#n90
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/3191]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unix/linux_like/linux/musl/b32/arm/mod.rs | 1 -
+ src/unix/linux_like/linux/musl/b32/hexagon.rs | 1 -
+ src/unix/linux_like/linux/musl/b32/mips/mod.rs | 1 -
+ src/unix/linux_like/linux/musl/b32/powerpc.rs | 1 -
+ src/unix/linux_like/linux/musl/b32/x86/mod.rs | 1 -
+ src/unix/linux_like/linux/musl/b64/mod.rs | 2 --
+ src/unix/linux_like/linux/musl/mod.rs | 1 +
+ 7 files changed, 1 insertion(+), 7 deletions(-)
+
+--- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs
+@@ -324,7 +324,6 @@ pub const MAP_SYNC: ::c_int = 0x080000;
+
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+
+ pub const EDEADLK: ::c_int = 35;
+ pub const ENAMETOOLONG: ::c_int = 36;
+--- a/src/unix/linux_like/linux/musl/b32/hexagon.rs
++++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs
+@@ -292,7 +292,6 @@ pub const SIG_SETMASK: ::c_int = 2; // F
+ pub const SIG_BLOCK: ::c_int = 0x000000;
+ pub const SIG_UNBLOCK: ::c_int = 0x01;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOL_CAIF: ::c_int = 278;
+ pub const SOL_IUCV: ::c_int = 277;
+--- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs
+@@ -348,7 +348,6 @@ pub const ERFKILL: ::c_int = 167;
+
+ pub const SOCK_STREAM: ::c_int = 2;
+ pub const SOCK_DGRAM: ::c_int = 1;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+
+ pub const SA_ONSTACK: ::c_int = 0x08000000;
+ pub const SA_SIGINFO: ::c_int = 8;
+--- a/src/unix/linux_like/linux/musl/b32/powerpc.rs
++++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs
+@@ -255,7 +255,6 @@ pub const MAP_STACK: ::c_int = 0x020000;
+
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+
+ pub const EDEADLK: ::c_int = 35;
+ pub const ENAMETOOLONG: ::c_int = 36;
+--- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs
+@@ -313,7 +313,6 @@ pub const MAP_SYNC: ::c_int = 0x080000;
+
+ pub const SOCK_STREAM: ::c_int = 1;
+ pub const SOCK_DGRAM: ::c_int = 2;
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+
+ pub const EDEADLK: ::c_int = 35;
+ pub const ENAMETOOLONG: ::c_int = 36;
+--- a/src/unix/linux_like/linux/musl/b64/mod.rs
++++ b/src/unix/linux_like/linux/musl/b64/mod.rs
+@@ -133,8 +133,6 @@ s! {
+ pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
+ pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
+
+-pub const SOCK_SEQPACKET: ::c_int = 5;
+-
+ extern "C" {
+ pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
+ }
+--- a/src/unix/linux_like/linux/musl/mod.rs
++++ b/src/unix/linux_like/linux/musl/mod.rs
+@@ -530,6 +530,7 @@ pub const POSIX_MADV_DONTNEED: ::c_int =
+
+ pub const MAP_ANONYMOUS: ::c_int = MAP_ANON;
+
++pub const SOCK_SEQPACKET: ::c_int = 5;
+ pub const SOCK_DCCP: ::c_int = 6;
+ pub const SOCK_NONBLOCK: ::c_int = O_NONBLOCK;
+ pub const SOCK_PACKET: ::c_int = 10;
diff --git a/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Move-F_OFD_GETLK-F_OFD_SETLK-and-F_OFD_SETLKW-t.patch b/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Move-F_OFD_GETLK-F_OFD_SETLK-and-F_OFD_SETLKW-t.patch
new file mode 100644
index 0000000000..9c93434e03
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-Move-F_OFD_GETLK-F_OFD_SETLK-and-F_OFD_SETLKW-t.patch
@@ -0,0 +1,140 @@
+From e4f6d7b6d57e83633814c54d93dff292ed0e4609 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Apr 2023 09:01:54 -0700
+Subject: [PATCH] musl: Move F_OFD_GETLK, F_OFD_SETLK and F_OFD_SETLKW to
+ common location
+
+These defines are not architecture specific in musl [1] therefore move them
+to be common
+
+[1] https://git.musl-libc.org/cgit/musl/tree/include/fcntl.h#n48
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/3191]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unix/linux_like/linux/musl/b32/arm/mod.rs | 3 ---
+ src/unix/linux_like/linux/musl/b32/hexagon.rs | 3 ---
+ src/unix/linux_like/linux/musl/b32/mips/mod.rs | 3 ---
+ src/unix/linux_like/linux/musl/b32/powerpc.rs | 3 ---
+ src/unix/linux_like/linux/musl/b32/x86/mod.rs | 3 ---
+ src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 3 ---
+ src/unix/linux_like/linux/musl/b64/mips64.rs | 3 ---
+ src/unix/linux_like/linux/musl/mod.rs | 4 ++++
+ 8 files changed, 4 insertions(+), 21 deletions(-)
+
+diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs
+index c47fa2c4c..3c8978e4f 100644
+--- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs
+@@ -451,9 +451,6 @@ pub const F_GETOWN: ::c_int = 9;
+ pub const F_SETLK: ::c_int = 13;
+ pub const F_SETLKW: ::c_int = 14;
+ pub const F_SETOWN: ::c_int = 8;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+
+ pub const VEOF: usize = 4;
+ pub const VEOL: usize = 11;
+diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs
+index f83d208d5..720c603da 100644
+--- a/src/unix/linux_like/linux/musl/b32/hexagon.rs
++++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs
+@@ -225,9 +225,6 @@ pub const F_GETOWN_EX: ::c_int = 16;
+ pub const F_GETSIG: ::c_int = 11;
+ pub const F_LINUX_SPECIFIC_BASE: ::c_int = 1024;
+ pub const FLUSHO: ::c_int = 4096;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+ pub const F_OWNER_PGRP: ::c_int = 2;
+ pub const F_OWNER_PID: ::c_int = 1;
+ pub const F_OWNER_TID: ::c_int = 0;
+diff --git a/src/unix/linux_like/linux/musl/b32/mips/mod.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs
+index d09b8278e..69e20ce32 100644
+--- a/src/unix/linux_like/linux/musl/b32/mips/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs
+@@ -388,9 +388,6 @@ pub const F_GETOWN: ::c_int = 23;
+ pub const F_SETLK: ::c_int = 34;
+ pub const F_SETLKW: ::c_int = 35;
+ pub const F_SETOWN: ::c_int = 24;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+
+ pub const VEOF: usize = 16;
+ pub const VEOL: usize = 17;
+diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs
+index 3b998329b..63bc9163d 100644
+--- a/src/unix/linux_like/linux/musl/b32/powerpc.rs
++++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs
+@@ -384,9 +384,6 @@ pub const F_GETOWN: ::c_int = 9;
+ pub const F_SETLK: ::c_int = 13;
+ pub const F_SETLKW: ::c_int = 14;
+ pub const F_SETOWN: ::c_int = 8;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+
+ pub const VEOF: usize = 4;
+ pub const VEOL: usize = 6;
+diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs
+index c319b91b6..52ecf3c7e 100644
+--- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs
+@@ -441,9 +441,6 @@ pub const F_GETOWN: ::c_int = 9;
+ pub const F_SETLK: ::c_int = 13;
+ pub const F_SETLKW: ::c_int = 14;
+ pub const F_SETOWN: ::c_int = 8;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+
+ pub const VEOF: usize = 4;
+ pub const VEOL: usize = 11;
+diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs
+index 14b4bc6d6..522493ff3 100644
+--- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs
++++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs
+@@ -250,9 +250,6 @@ pub const F_GETOWN: ::c_int = 9;
+ pub const F_SETLK: ::c_int = 6;
+ pub const F_SETLKW: ::c_int = 7;
+ pub const F_SETOWN: ::c_int = 8;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+
+ pub const VEOF: usize = 4;
+
+diff --git a/src/unix/linux_like/linux/musl/b64/mips64.rs b/src/unix/linux_like/linux/musl/b64/mips64.rs
+index 22ac91690..c7f041260 100644
+--- a/src/unix/linux_like/linux/musl/b64/mips64.rs
++++ b/src/unix/linux_like/linux/musl/b64/mips64.rs
+@@ -612,9 +612,6 @@ pub const F_GETOWN: ::c_int = 23;
+ pub const F_SETOWN: ::c_int = 24;
+ pub const F_SETLK: ::c_int = 6;
+ pub const F_SETLKW: ::c_int = 7;
+-pub const F_OFD_GETLK: ::c_int = 36;
+-pub const F_OFD_SETLK: ::c_int = 37;
+-pub const F_OFD_SETLKW: ::c_int = 38;
+
+ pub const MCL_CURRENT: ::c_int = 0x0001;
+ pub const MCL_FUTURE: ::c_int = 0x0002;
+diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs
+index 37a8ca2af..9a4fa7ca7 100644
+--- a/src/unix/linux_like/linux/musl/mod.rs
++++ b/src/unix/linux_like/linux/musl/mod.rs
+@@ -506,6 +506,10 @@ pub const ECOMM: ::c_int = 70;
+ pub const EPROTO: ::c_int = 71;
+ pub const EDOTDOT: ::c_int = 73;
+
++pub const F_OFD_GETLK: ::c_int = 36;
++pub const F_OFD_SETLK: ::c_int = 37;
++pub const F_OFD_SETLKW: ::c_int = 38;
++
+ pub const F_RDLCK: ::c_int = 0;
+ pub const F_WRLCK: ::c_int = 1;
+ pub const F_UNLCK: ::c_int = 2;
+--
+2.40.0
+
diff --git a/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-riscv32-Define-F_SETLK-F_SETLKW-and-fix-F_GETLK.patch b/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-riscv32-Define-F_SETLK-F_SETLKW-and-fix-F_GETLK.patch
new file mode 100644
index 0000000000..47969542c8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyruvate/0001-musl-riscv32-Define-F_SETLK-F_SETLKW-and-fix-F_GETLK.patch
@@ -0,0 +1,35 @@
+From b87552c504b53a5e5df2438adfe24e35b0168aba Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Apr 2023 08:51:02 -0700
+Subject: [PATCH] musl/riscv32: Define F_SETLK, F_SETLKW and fix F_GETLK
+
+F_SETLK and F_SETLKW were not defined therefore define them
+and F_GETLK value was not matching the musl port hence fixed
+
+Upstream-Status: Submitted [https://github.com/rust-lang/libc/pull/3191]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/unix/linux_like/linux/musl/b32/riscv32/mod.rs | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
+index 9ce6a9fd3..e56ff4853 100644
+--- a/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
++++ b/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs
+@@ -339,9 +339,11 @@ pub const POLLWRBAND: ::c_short = 512;
+ pub const O_ASYNC: ::c_int = 8192;
+ pub const O_NDELAY: ::c_int = 2048;
+ pub const EFD_NONBLOCK: ::c_int = 2048;
+-pub const F_GETLK: ::c_int = 5;
+-pub const F_GETOWN: ::c_int = 9;
+ pub const F_SETOWN: ::c_int = 8;
++pub const F_GETOWN: ::c_int = 9;
++pub const F_GETLK: ::c_int = 12;
++pub const F_SETLK: ::c_int = 13;
++pub const F_SETLKW: ::c_int = 14;
+ pub const SFD_NONBLOCK: ::c_int = 2048;
+ pub const TCSANOW: ::c_int = 0;
+ pub const TCSADRAIN: ::c_int = 1;
+--
+2.40.0
+
diff --git a/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb b/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb
deleted file mode 100644
index 1f1c186d31..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb
+++ /dev/null
@@ -1,133 +0,0 @@
-SUMMARY = "WSGI server implemented in Rust."
-DESCRIPTION = "Pyruvate is a reasonably fast, multithreaded, non-blocking \
-WSGI server implemented in Rust."
-HOMEPAGE = "https://gitlab.com/tschorr/pyruvate"
-BUGTRACKER = "https://gitlab.com/tschorr/pyruvate/-/issues"
-
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=051b48e640a6e2d795eac75542d9417c \
- file://LICENSE.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI[sha256sum] = "10befedd97e73fc18b902d02aa3b24e8978aa162242c1b664849c886c0675899"
-
-S = "${WORKDIR}/pyruvate-${PV}"
-
-inherit pypi python_setuptools3_rust
-
-PIP_INSTALL_DIST_PATH = "${S}/dist"
-
-# crossbeam-* -> std::sync::atomic AtomicI64, AtomicU64
-# not supported on mips/powerpc with 32-bit pointers
-# https://doc.rust-lang.org/std/sync/atomic/#portability
-RUSTFLAGS:append:mips = " --cfg crossbeam_no_atomic_64"
-RUSTFLAGS:append:mipsel = " --cfg crossbeam_no_atomic_64"
-RUSTFLAGS:append:powerpc = " --cfg crossbeam_no_atomic_64"
-RUSTFLAGS:append:riscv32 = " --cfg crossbeam_no_atomic_64"
-
-SRC_URI += " \
- crate://crates.io/aho-corasick/0.7.18 \
- crate://crates.io/atty/0.2.14 \
- crate://crates.io/autocfg/1.0.1 \
- crate://crates.io/bitflags/1.3.2 \
- crate://crates.io/block-buffer/0.9.0 \
- crate://crates.io/cc/1.0.72 \
- crate://crates.io/cfg-if/1.0.0 \
- crate://crates.io/chrono/0.4.19 \
- crate://crates.io/cpufeatures/0.2.1 \
- crate://crates.io/cpython/0.7.0 \
- crate://crates.io/crossbeam-channel/0.5.2 \
- crate://crates.io/crossbeam-deque/0.8.1 \
- crate://crates.io/crossbeam-epoch/0.9.6 \
- crate://crates.io/crossbeam-queue/0.3.3 \
- crate://crates.io/crossbeam-utils/0.8.6 \
- crate://crates.io/crossbeam/0.8.1 \
- crate://crates.io/crypto-mac/0.11.1 \
- crate://crates.io/ctrlc/3.2.1 \
- crate://crates.io/digest/0.9.0 \
- crate://crates.io/encoding-index-japanese/1.20141219.5 \
- crate://crates.io/encoding-index-korean/1.20141219.5 \
- crate://crates.io/encoding-index-simpchinese/1.20141219.5 \
- crate://crates.io/encoding-index-singlebyte/1.20141219.5 \
- crate://crates.io/encoding-index-tradchinese/1.20141219.5 \
- crate://crates.io/encoding/0.2.33 \
- crate://crates.io/encoding_index_tests/0.1.4 \
- crate://crates.io/env_logger/0.9.0 \
- crate://crates.io/errno-dragonfly/0.1.2 \
- crate://crates.io/errno/0.2.8 \
- crate://crates.io/fastrand/1.6.0 \
- crate://crates.io/generic-array/0.14.5 \
- crate://crates.io/getrandom/0.2.3 \
- crate://crates.io/hermit-abi/0.1.19 \
- crate://crates.io/hmac/0.11.0 \
- crate://crates.io/httparse/1.5.1 \
- crate://crates.io/humantime/2.1.0 \
- crate://crates.io/instant/0.1.12 \
- crate://crates.io/lazy_static/1.4.0 \
- crate://crates.io/libc/0.2.120 \
- crate://crates.io/libsystemd/0.4.1 \
- crate://crates.io/log/0.4.14 \
- crate://crates.io/memchr/2.4.1 \
- crate://crates.io/memoffset/0.6.5 \
- crate://crates.io/mio/0.8.0 \
- crate://crates.io/miow/0.3.7 \
- crate://crates.io/nix/0.23.1 \
- crate://crates.io/ntapi/0.3.6 \
- crate://crates.io/num-integer/0.1.44 \
- crate://crates.io/num-traits/0.2.14 \
- crate://crates.io/num_cpus/1.13.1 \
- crate://crates.io/once_cell/1.9.0 \
- crate://crates.io/opaque-debug/0.3.0 \
- crate://crates.io/paste/1.0.6 \
- crate://crates.io/ppv-lite86/0.2.16 \
- crate://crates.io/proc-macro2/1.0.36 \
- crate://crates.io/python3-sys/0.7.0 \
- crate://crates.io/quote/1.0.14 \
- crate://crates.io/rand/0.8.4 \
- crate://crates.io/rand_chacha/0.3.1 \
- crate://crates.io/rand_core/0.6.3 \
- crate://crates.io/rand_hc/0.3.1 \
- crate://crates.io/redox_syscall/0.2.10 \
- crate://crates.io/regex-syntax/0.6.25 \
- crate://crates.io/regex/1.5.4 \
- crate://crates.io/remove_dir_all/0.5.3 \
- crate://crates.io/scopeguard/1.1.0 \
- crate://crates.io/serde/1.0.133 \
- crate://crates.io/serde_derive/1.0.133 \
- crate://crates.io/sha2/0.9.9 \
- crate://crates.io/simplelog/0.11.1 \
- crate://crates.io/spmc/0.3.0 \
- crate://crates.io/subtle/2.4.1 \
- crate://crates.io/syn/1.0.85 \
- crate://crates.io/tempfile/3.3.0 \
- crate://crates.io/termcolor/1.1.2 \
- crate://crates.io/thiserror-impl/1.0.30 \
- crate://crates.io/thiserror/1.0.30 \
- crate://crates.io/threadpool/1.8.1 \
- crate://crates.io/time/0.1.44 \
- crate://crates.io/typenum/1.15.0 \
- crate://crates.io/unicode-xid/0.2.2 \
- crate://crates.io/urlencoding/2.1.0 \
- crate://crates.io/uuid/0.8.2 \
- crate://crates.io/version_check/0.9.4 \
- crate://crates.io/wasi/0.10.0+wasi-snapshot-preview1 \
- crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
- crate://crates.io/winapi-util/0.1.5 \
- crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
- crate://crates.io/winapi/0.3.9 \
-"
-SRC_URI += "\
- file://0001-linux.rs-Define-consts-for-rv32-architecture.patch;patchdir=../cargo_home/bitbake/nix-0.23.1/ \
- "
-SRC_URI:append:mips = " file://0001-check-for-mips-targets-for-stat.st_dev-definitions.patch;patchdir=../cargo_home/bitbake/libsystemd-0.4.1/"
-
-# The following configs & dependencies are from setuptools extras_require.
-# These dependencies are optional, hence can be controlled via PACKAGECONFIG.
-# The upstream names may not correspond exactly to bitbake package names.
-#
-# Uncomment this line to enable all the optional features.
-#PACKAGECONFIG ?= "test"
-PACKAGECONFIG[test] = ",,,python3-pytest python3-requests"
-
-# WARNING: the following rdepends are determined through basic analysis of the
-# python sources, and might not be 100% accurate.
-RDEPENDS:${PN} += "python3-core"
diff --git a/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb b/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
new file mode 100644
index 0000000000..2807c054d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
@@ -0,0 +1,47 @@
+SUMMARY = "WSGI server implemented in Rust."
+DESCRIPTION = "Pyruvate is a reasonably fast, multithreaded, non-blocking \
+WSGI server implemented in Rust."
+HOMEPAGE = "https://gitlab.com/tschorr/pyruvate"
+BUGTRACKER = "https://gitlab.com/tschorr/pyruvate/-/issues"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI += "\
+ git://gitlab.com/tschorr/pyruvate.git;protocol=https;branch=main \
+ file://0001-linux.rs-Define-consts-for-rv32-architecture.patch;patchdir=../cargo_home/bitbake/nix-0.23.2/ \
+ file://0001-musl-Define-SOCK_NONBLOCK-with-O_NONBLOCK.patch;patchdir=../cargo_home/bitbake/libc-0.2.138/ \
+ file://0001-musl-riscv32-Define-F_SETLK-F_SETLKW-and-fix-F_GETLK.patch;patchdir=../cargo_home/bitbake/libc-0.2.138/ \
+ file://0001-musl-Move-F_OFD_GETLK-F_OFD_SETLK-and-F_OFD_SETLKW-t.patch;patchdir=../cargo_home/bitbake/libc-0.2.138/ \
+ file://0001-musl-Define-O_LARGEFILE-for-riscv32.patch;patchdir=../cargo_home/bitbake/libc-0.2.138/ \
+ file://0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch;patchdir=../cargo_home/bitbake/libc-0.2.138/ \
+"
+SRCREV = "57db64c9f65ced05c71b8d786c1cedfaa2991597"
+
+SRC_URI:append:mips = " file://0001-check-for-mips-targets-for-stat.st_dev-definitions.patch;patchdir=../cargo_home/bitbake/libsystemd-0.5.0/"
+
+S = "${WORKDIR}/git"
+
+inherit python_setuptools3_rust cargo-update-recipe-crates
+
+# crossbeam-* -> std::sync::atomic AtomicI64, AtomicU64
+# not supported on mips/powerpc with 32-bit pointers
+# https://doc.rust-lang.org/std/sync/atomic/#portability
+RUSTFLAGS:append:mips = " --cfg crossbeam_no_atomic_64"
+RUSTFLAGS:append:mipsel = " --cfg crossbeam_no_atomic_64"
+RUSTFLAGS:append:powerpc = " --cfg crossbeam_no_atomic_64"
+RUSTFLAGS:append:riscv32 = " --cfg crossbeam_no_atomic_64"
+
+require ${BPN}-crates.inc
+
+# The following configs & dependencies are from setuptools extras_require.
+# These dependencies are optional, hence can be controlled via PACKAGECONFIG.
+# The upstream names may not correspond exactly to bitbake package names.
+#
+# Uncomment this line to enable all the optional features.
+#PACKAGECONFIG ?= "test"
+PACKAGECONFIG[test] = ",,,python3-pytest python3-requests"
+
+# WARNING: the following rdepends are determined through basic analysis of the
+# python sources, and might not be 100% accurate.
+RDEPENDS:${PN} += "python3-core"
diff --git a/meta-python/recipes-devtools/python/python3-pyscaffold_4.3.1.bb b/meta-python/recipes-devtools/python/python3-pyscaffold_4.3.1.bb
deleted file mode 100644
index a19e38770a..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyscaffold_4.3.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Python project template generator with batteries included"
-DESCRIPTION = "PyScaffold package helps to setup a new Python project. \
-After installation, it provides a new command [putup], which could be \
-used to create template Projects."
-
-HOMEPAGE = "https://github.com/pyscaffold/pyscaffold"
-SECTION = "devel/python"
-LICENSE = "0BSD & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=14a49c74a1d91829908ac756c07e6b91"
-DEPENDS += "python3-setuptools-scm-native"
-
-SRC_URI[sha256sum] = "50cb1f910163204caec30c7c6bbe70f1a81c377538b8c8340d23abe31f5ca5b4"
-
-inherit pypi python_setuptools_build_meta
-PYPI_PACKAGE = "PyScaffold"
-
-RDEPENDS:${PN} += " \
- python3-email \
- python3-compression \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pyscaffold_4.5.bb b/meta-python/recipes-devtools/python/python3-pyscaffold_4.5.bb
new file mode 100644
index 0000000000..dda81e2256
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyscaffold_4.5.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Python project template generator with batteries included"
+DESCRIPTION = "PyScaffold package helps to setup a new Python project. \
+After installation, it provides a new command [putup], which could be \
+used to create template Projects."
+
+HOMEPAGE = "https://github.com/pyscaffold/pyscaffold"
+SECTION = "devel/python"
+LICENSE = "0BSD & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=14a49c74a1d91829908ac756c07e6b91"
+DEPENDS += "python3-setuptools-scm-native"
+
+SRC_URI[sha256sum] = "d849f9a2e15bdcf165e19f96835f0b17e1a2d59d4c561c445b827a081de6d262"
+
+inherit pypi python_setuptools_build_meta
+PYPI_PACKAGE = "PyScaffold"
+
+RDEPENDS:${PN} += " \
+ python3-email \
+ python3-compression \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pyserial/run-ptest b/meta-python/recipes-devtools/python/python3-pyserial/run-ptest
index e301963f96..b651411db7 100644
--- a/meta-python/recipes-devtools/python/python3-pyserial/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-pyserial/run-ptest
@@ -1,4 +1,4 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-pyserial_3.5.bb b/meta-python/recipes-devtools/python/python3-pyserial_3.5.bb
index 15646235df..ade137a385 100644
--- a/meta-python/recipes-devtools/python/python3-pyserial_3.5.bb
+++ b/meta-python/recipes-devtools/python/python3-pyserial_3.5.bb
@@ -37,14 +37,14 @@ FILES:${PN}-win32 = " \
"
RDEPENDS:${PN} = "\
- ${PYTHON_PN}-fcntl \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-stringold \
- ${PYTHON_PN}-threading \
+ python3-fcntl \
+ python3-io \
+ python3-logging \
+ python3-netclient \
+ python3-numbers \
+ python3-shell \
+ python3-stringold \
+ python3-threading \
"
BBCLASSEXTEND = "native nativesdk"
@@ -54,7 +54,8 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-pysonos_0.0.54.bb b/meta-python/recipes-devtools/python/python3-pysonos_0.0.54.bb
index e8d75e9d75..6a484b8ae9 100644
--- a/meta-python/recipes-devtools/python/python3-pysonos_0.0.54.bb
+++ b/meta-python/recipes-devtools/python/python3-pysonos_0.0.54.bb
@@ -9,7 +9,7 @@ SRC_URI[sha256sum] = "2a72897cfd342382573632d80d38776884a38c8d02353d9d5da4e9e8e8
inherit pypi setuptools3
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-ifaddr \
- ${PYTHON_PN}-requests \
- ${PYTHON_PN}-xmltodict \
+ python3-ifaddr \
+ python3-requests \
+ python3-xmltodict \
"
diff --git a/meta-python/recipes-devtools/python/python3-pystemd_0.10.0.bb b/meta-python/recipes-devtools/python/python3-pystemd_0.10.0.bb
deleted file mode 100644
index da263fe94e..0000000000
--- a/meta-python/recipes-devtools/python/python3-pystemd_0.10.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Python bindings for interacting with systemd over DBus"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI[sha256sum] = "d74a814bfda01085db1a8ad90be3cb27daf23a51ab6b03e7e29ec811fa2ae859"
-
-DEPENDS = "systemd"
-RDEPENDS:${PN} += "python3-xml python3-pprint"
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-inherit pypi setuptools3 features_check pkgconfig
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-pystemd_0.13.2.bb b/meta-python/recipes-devtools/python/python3-pystemd_0.13.2.bb
new file mode 100644
index 0000000000..3bfa20fcd9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pystemd_0.13.2.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Python bindings for interacting with systemd over DBus"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI[sha256sum] = "4dcfa4b13a55685c49d3d17c10631eca18c33770f66316f8ef2337b8951cc144"
+
+DEPENDS = "systemd python3-cython-native"
+RDEPENDS:${PN} += "\
+ python3-xml \
+ python3-lxml \
+ python3-pprint \
+ python3-core \
+ python3-shell \
+ python3-io \
+"
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+inherit pypi setuptools3 features_check pkgconfig
+
+do_configure:prepend() {
+ rm -rf ${S}/pystemd/*.c
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.16.0.bb b/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.16.0.bb
deleted file mode 100644
index 1dfeab6332..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.16.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
-
-SRC_URI[sha256sum] = "7496c5977ce88c34379df64a66459fe395cd05543f0a2f837016e7144391fcfb"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-pytest \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.6.bb b/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.6.bb
new file mode 100644
index 0000000000..492020477e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.23.6.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "pytest-asyncio is an Apache2 licensed library, written in Python, for testing asyncio code with pytest"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=136e4f49dbf29942c572a3a8f6e88a77"
+
+SRC_URI[sha256sum] = "ffe523a89c1c222598c76856e76852b787504ddb72dd5d9b6617ffa8aa2cde5f"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+ python3-pytest \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-benchmark_3.4.1.bb b/meta-python/recipes-devtools/python/python3-pytest-benchmark_3.4.1.bb
deleted file mode 100644
index bde9935ffe..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytest-benchmark_3.4.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "A ``pytest`` fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer."
-HOMEPAGE = "https://github.com/ionelmc/pytest-benchmark"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9c5c2c74370826468065c5702b8a1fcf"
-
-SRC_URI[sha256sum] = "40e263f912de5a81d891619032983557d62a3d85843f9a9f30b98baea0cd7b47"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "python3-core python3-py-cpuinfo python3-pytest python3-aspectlib"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-benchmark_4.0.0.bb b/meta-python/recipes-devtools/python/python3-pytest-benchmark_4.0.0.bb
new file mode 100644
index 0000000000..98ba6c3822
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-benchmark_4.0.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "A ``pytest`` fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer."
+HOMEPAGE = "https://github.com/ionelmc/pytest-benchmark"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c7d2e9d24c2b5bad57ca894da972e22e"
+
+SRC_URI[sha256sum] = "fb0785b83efe599a6a956361c0691ae1dbb5318018561af10f3e915caa0048d1"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-core python3-py-cpuinfo python3-pytest python3-aspectlib"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-cov_5.0.0.bb b/meta-python/recipes-devtools/python/python3-pytest-cov_5.0.0.bb
new file mode 100644
index 0000000000..e3e4affb9d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-cov_5.0.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Pytest plugin for measuring coverage."
+HOMEPAGE = "https://github.com/pytest-dev/pytest-cov"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=cbc4e25353c748c817db2daffe605e43 \
+"
+
+SRC_URI[sha256sum] = "5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"
+
+inherit pypi setuptools3
+
+DEPENDS += "python3-setuptools-scm-native"
+RDEPENDS:${PN} += "python3-coverage python3-pytest"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb b/meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb
deleted file mode 100644
index 34dd9c407e..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytest-forked_1.4.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "run tests in isolated forked subprocesses"
-HOMEPAGE = "https://github.com/pytest-dev/pytest-forked"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=772fcdaca14b378878d05c7d857e6c3e"
-
-SRC_URI[sha256sum] = "8b67587c8f98cbbadfdd804539ed5455b6ed03802203485dd2f53c1422d7440e"
-
-inherit pypi python_setuptools_build_meta
-
-PEP517_PICOBUILD_OPTS = "--loose-depends"
-
-DEPENDS += "python3-setuptools-scm-native"
-
-RDEPENDS:${PN} += " \
- python3-py \
- python3-pytest \
-"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-forked_1.6.0.bb b/meta-python/recipes-devtools/python/python3-pytest-forked_1.6.0.bb
new file mode 100644
index 0000000000..f573bf0523
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-forked_1.6.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "run tests in isolated forked subprocesses"
+HOMEPAGE = "https://github.com/pytest-dev/pytest-forked"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=772fcdaca14b378878d05c7d857e6c3e"
+
+SRC_URI[sha256sum] = "4dafd46a9a600f65d822b8f605133ecf5b3e1941ebb3588e943b4e3eb71a5a3f"
+
+inherit pypi python_setuptools_build_meta
+
+PEP517_BUILD_OPTS = "--skip-dependency-check"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+ python3-py \
+ python3-pytest \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.12.29.bb b/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.12.29.bb
index cf62e1f03b..6698b6dde3 100644
--- a/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.12.29.bb
+++ b/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.12.29.bb
@@ -11,5 +11,5 @@ inherit pypi python_setuptools_build_meta
DEPENDS += "python3-setuptools-scm-native python3-setuptools-declarative-requirements-native"
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-html/no-pip.patch b/meta-python/recipes-devtools/python/python3-pytest-html/no-pip.patch
deleted file mode 100644
index e120498846..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytest-html/no-pip.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Upstream-Status: Submitted [https://github.com/pytest-dev/pytest-html/pull/516]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From d7fbc79d428323c838ce68a51e1e1806c2096a76 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Mon, 23 May 2022 13:46:50 +0100
-Subject: [PATCH] pip isn't a build dependency
-
-It's possible, and even desirable, to build modern Python code without pip, for example by using the `build` and `installer` packages.
----
- pyproject.toml | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/pyproject.toml b/pyproject.toml
-index 2683f072..e3f25bf7 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -1,6 +1,5 @@
- [build-system]
- requires = [
-- "pip >= 19.3.1",
- "setuptools >= 42",
- "setuptools_scm[toml] >= 3.5.0",
- "setuptools_scm_git_archive >= 1.1",
diff --git a/meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb b/meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb
deleted file mode 100644
index 1bbdfb633b..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytest-html_3.1.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "pytest plugin for generating html reports from test results"
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5d425c8f3157dbf212db2ec53d9e5132"
-
-SRC_URI[sha256sum] = "3ee1cf319c913d19fe53aeb0bc400e7b0bc2dbeb477553733db1dad12eb75ee3"
-
-PYPI_PACKAGE = "pytest-html"
-
-inherit pypi python_setuptools_build_meta
-
-DEPENDS += "python3-setuptools-scm-git-archive-native"
-
-SRC_URI += "file://no-pip.patch"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-pytest \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-html_4.1.1.bb b/meta-python/recipes-devtools/python/python3-pytest-html_4.1.1.bb
new file mode 100644
index 0000000000..37478ee0ae
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-html_4.1.1.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "pytest plugin for generating html reports from test results"
+DEPENDS += "python3-setuptools-scm-native"
+
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5d425c8f3157dbf212db2ec53d9e5132"
+
+SRC_URI[sha256sum] = "70a01e8ae5800f4a074b56a4cb1025c8f4f9b038bba5fe31e3c98eb996686f07"
+
+PYPI_PACKAGE = "pytest_html"
+
+inherit pypi python_hatchling
+
+DEPENDS += "\
+ python3-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += " \
+ python3-pytest \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-json-report_1.5.0.bb b/meta-python/recipes-devtools/python/python3-pytest-json-report_1.5.0.bb
new file mode 100644
index 0000000000..6b108a2d0a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-json-report_1.5.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "pytest-json-report is a plugin that creates test reports as JSON"
+HOMEPAGE = "https://github.com/numirias/pytest-json-report"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8b4ca2f2ad5aaaebd8eb24f262f8fe60"
+
+SRC_URI[sha256sum] = "2dde3c647851a19b5f3700729e8310a6e66efb2077d674f27ddea3d34dc615de"
+
+PYPI_PACKAGE = "pytest-json-report"
+
+inherit pypi setuptools3
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} = "\
+ python3-pytest \
+ python3-pytest-metadata \
+"
+
diff --git a/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture/run-ptest b/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture/run-ptest
deleted file mode 100644
index b63c4de0d9..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture_0.6.3.bb b/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture_0.6.3.bb
deleted file mode 100644
index 32b5677f1a..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture_0.6.3.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright (C) 2022 Wind River Systems
-
-SUMMARY = "Use your fixtures in @pytest.mark.parametrize."
-HOMEPAGE = "https://github.com/tvorog/pytest-lazy-fixture"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=aae6f2b7c9b3ced83e0b5bb42346d4dd"
-
-SRC_URI[sha256sum] = "0e7d0c7f74ba33e6e80905e9bfd81f9d15ef9a790de97993e34213deb5ad10ac"
-
-SRC_URI += "file://run-ptest \
- "
-
-
-inherit ptest pypi setuptools3
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-
-RDEPENDS:${PN} += "python3-core python3-pytest"
-RDEPENDS:${PN}-ptest = " python3-unixadmin"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.7.bb b/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.7.bb
new file mode 100644
index 0000000000..f5e6dbfcd2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-lazy-fixtures_1.0.7.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Allows you to use fixtures in @pytest.mark.parametrize."
+DESCRIPTION = "Use your fixtures in @pytest.mark.parametrize. \
+\
+This project was inspired by pytest-lazy-fixture.\
+\
+Improvements that have been made in this project:\
+\
+* You can use fixtures in any data structures\
+* You can access the attributes of fixtures\
+* You can use functions in fixtures"
+HOMEPAGE = "https://github.com/dev-petrov/pytest-lazy-fixtures"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4475e66fcfabe27395e6764c8f69c876"
+
+SRC_URI[sha256sum] = "87ef7424dc0229ff9cb72d482f49b7806535c3500641f612c13ddf243c9adacb"
+
+inherit pypi python_poetry_core
+
+PYPI_PACKAGE = "pytest_lazy_fixtures"
+
+RDEPENDS:${PN} = "python3-pytest"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-localserver/run-ptest b/meta-python/recipes-devtools/python/python3-pytest-localserver/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-localserver/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-pytest-localserver_0.8.1.bb b/meta-python/recipes-devtools/python/python3-pytest-localserver_0.8.1.bb
new file mode 100644
index 0000000000..669817829d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-localserver_0.8.1.bb
@@ -0,0 +1,29 @@
+SUMMARY = "pytest plugin to test server connections locally."
+HOMEPAGE = "https://github.com/pytest-dev/pytest-localserver"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b8da7a541d738b054dcbf70c31530432"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI[sha256sum] = "66569c34fef31a5750b16effd1cd1288a7a90b59155d005e7f916accd3dee4f1"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-requests \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-werkzeug \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.2.bb b/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.2.bb
index e82213cbe5..163a363f82 100644
--- a/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.2.bb
+++ b/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.2.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "pytest-metadata is a plugin that allowed for accessing pytest metadata"
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+DEPENDS += "python3-setuptools-scm-native"
LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5d425c8f3157dbf212db2ec53d9e5132"
@@ -11,7 +11,7 @@ PYPI_PACKAGE = "pytest-metadata"
inherit pypi setuptools3
RDEPENDS:${PN} = " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-mock/0001-test_pytest_mock-skip-args-introspection-tests.patch b/meta-python/recipes-devtools/python/python3-pytest-mock/0001-test_pytest_mock-skip-args-introspection-tests.patch
new file mode 100644
index 0000000000..f024e79d93
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-mock/0001-test_pytest_mock-skip-args-introspection-tests.patch
@@ -0,0 +1,38 @@
+From e184fb950ad3b52c5c16438d39fe4d516c784e30 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Thu, 12 Oct 2023 17:32:40 -0400
+Subject: [PATCH] test_pytest_mock: skip args introspection tests
+
+Disable these two tests for now so that python3-pytest-mock can have
+successful ptest runs.
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ tests/test_pytest_mock.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/tests/test_pytest_mock.py b/tests/test_pytest_mock.py
+index 3d53241..157b6c3 100644
+--- a/tests/test_pytest_mock.py
++++ b/tests/test_pytest_mock.py
+@@ -581,6 +581,7 @@ def test_assert_called_wrapper(mocker: MockerFixture) -> None:
+ stub.assert_called()
+
+
++@pytest.mark.skip("Async not correctly detected, skip for now")
+ @pytest.mark.usefixtures("needs_assert_rewrite")
+ def test_assert_called_args_with_introspection(mocker: MockerFixture) -> None:
+ stub = mocker.stub()
+@@ -597,6 +598,7 @@ def test_assert_called_args_with_introspection(mocker: MockerFixture) -> None:
+ stub.assert_called_once_with(*wrong_args)
+
+
++@pytest.mark.skip("Async not correctly detected, skip for now")
+ @pytest.mark.usefixtures("needs_assert_rewrite")
+ def test_assert_called_kwargs_with_introspection(mocker: MockerFixture) -> None:
+ stub = mocker.stub()
+--
+2.41.0
+
diff --git a/meta-python/recipes-devtools/python/python3-pytest-mock/403.patch b/meta-python/recipes-devtools/python/python3-pytest-mock/403.patch
new file mode 100644
index 0000000000..6787c2a3dc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-mock/403.patch
@@ -0,0 +1,92 @@
+From 8480bb6d0500f933be039cfec65e04157e6ecffe Mon Sep 17 00:00:00 2001
+From: Bruno Oliveira <nicoddemus@gmail.com>
+Date: Tue, 19 Dec 2023 08:24:23 -0300
+Subject: [PATCH 1/3] Fix tests for Python 3.11 and 3.12
+
+Fixes #401.
+Upstream-Status: Backport [https://github.com/pytest-dev/pytest-mock/pull/403]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/test_pytest_mock.py | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/tests/test_pytest_mock.py b/tests/test_pytest_mock.py
+index 3ee00da..7acb361 100644
+--- a/tests/test_pytest_mock.py
++++ b/tests/test_pytest_mock.py
+@@ -246,9 +246,8 @@ def __test_failure_message(self, mocker: MockerFixture, **kwargs: Any) -> None:
+ msg = "Expected call: {0}()\nNot called"
+ expected_message = msg.format(expected_name)
+ stub = mocker.stub(**kwargs)
+- with pytest.raises(AssertionError) as exc_info:
++ with pytest.raises(AssertionError, match=re.escape(expected_message)) as exc_info:
+ stub.assert_called_with()
+- assert str(exc_info.value) == expected_message
+
+ def test_failure_message_with_no_name(self, mocker: MagicMock) -> None:
+ self.__test_failure_message(mocker)
+
+From c596504e062be06475b03122c9c0cc732ae87840 Mon Sep 17 00:00:00 2001
+From: "pre-commit-ci[bot]"
+ <66853113+pre-commit-ci[bot]@users.noreply.github.com>
+Date: Tue, 19 Dec 2023 11:24:38 +0000
+Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks
+
+for more information, see https://pre-commit.ci
+---
+ tests/test_pytest_mock.py | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/tests/test_pytest_mock.py b/tests/test_pytest_mock.py
+index 7acb361..c185f2a 100644
+--- a/tests/test_pytest_mock.py
++++ b/tests/test_pytest_mock.py
+@@ -246,7 +246,9 @@ def __test_failure_message(self, mocker: MockerFixture, **kwargs: Any) -> None:
+ msg = "Expected call: {0}()\nNot called"
+ expected_message = msg.format(expected_name)
+ stub = mocker.stub(**kwargs)
+- with pytest.raises(AssertionError, match=re.escape(expected_message)) as exc_info:
++ with pytest.raises(
++ AssertionError, match=re.escape(expected_message)
++ ) as exc_info:
+ stub.assert_called_with()
+
+ def test_failure_message_with_no_name(self, mocker: MagicMock) -> None:
+
+From 6da5b0506d6378a8dbe5ae314d5134e6868aeabd Mon Sep 17 00:00:00 2001
+From: danigm <daniel.garcia@suse.com>
+Date: Wed, 20 Dec 2023 16:02:13 +0100
+Subject: [PATCH 3/3] Update expected message to match python 3.11.7 (#404)
+
+https://github.com/python/cpython/issues/111019
+
+Fixes #401.
+Closes #403.
+---
+ tests/test_pytest_mock.py | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/tests/test_pytest_mock.py b/tests/test_pytest_mock.py
+index c185f2a..01534a4 100644
+--- a/tests/test_pytest_mock.py
++++ b/tests/test_pytest_mock.py
+@@ -25,6 +25,8 @@
+
+ # Python 3.8 changed the output formatting (bpo-35500), which has been ported to mock 3.0
+ NEW_FORMATTING = sys.version_info >= (3, 8)
++# Python 3.11.7 changed the output formatting, https://github.com/python/cpython/issues/111019
++NEWEST_FORMATTING = sys.version_info >= (3, 11, 7)
+
+ if sys.version_info[:2] >= (3, 8):
+ from unittest.mock import AsyncMock
+@@ -240,7 +242,9 @@ def test_repr_with_name(self, mocker: MockerFixture) -> None:
+
+ def __test_failure_message(self, mocker: MockerFixture, **kwargs: Any) -> None:
+ expected_name = kwargs.get("name") or "mock"
+- if NEW_FORMATTING:
++ if NEWEST_FORMATTING:
++ msg = "expected call not found.\nExpected: {0}()\n Actual: not called."
++ elif NEW_FORMATTING:
+ msg = "expected call not found.\nExpected: {0}()\nActual: not called."
+ else:
+ msg = "Expected call: {0}()\nNot called"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-mock/run-ptest b/meta-python/recipes-devtools/python/python3-pytest-mock/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-mock/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-pytest-mock_3.12.0.bb b/meta-python/recipes-devtools/python/python3-pytest-mock_3.12.0.bb
new file mode 100644
index 0000000000..e9a9a4fbc5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-mock_3.12.0.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Thin-wrapper around the mock package for easier use with pytest"
+HOMEPAGE = "https://github.com/pytest-dev/pytest-mock/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=b2ddb1e69238461b7e4ef2a84d874109 \
+"
+
+SRC_URI = " \
+ git://github.com/pytest-dev/pytest-mock;branch=main;protocol=https \
+ file://run-ptest \
+ file://0001-test_pytest_mock-skip-args-introspection-tests.patch \
+ file://403.patch \
+"
+SRCREV = "69adc6f76c1a7baf4e7a728da9eec38741d5783e"
+
+inherit setuptools3 ptest
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-pytest \
+ python3-pytest-asyncio \
+ python3-unittest \
+ python3-unittest-automake-output \
+"
+
+S = "${WORKDIR}/git"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests ${D}${PTEST_PATH}/
+}
diff --git a/meta-python/recipes-devtools/python/python3-pytest-tempdir_2019.10.12.bb b/meta-python/recipes-devtools/python/python3-pytest-tempdir_2019.10.12.bb
index 972c99e38f..dff6af4e0a 100644
--- a/meta-python/recipes-devtools/python/python3-pytest-tempdir_2019.10.12.bb
+++ b/meta-python/recipes-devtools/python/python3-pytest-tempdir_2019.10.12.bb
@@ -10,5 +10,5 @@ SRC_URI[sha256sum] = "e7d91813a9aa991db87dacdef8cfd3f1657632d731d56d06238c5ffb63
inherit pypi setuptools3
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-timeout_2.1.0.bb b/meta-python/recipes-devtools/python/python3-pytest-timeout_2.1.0.bb
deleted file mode 100644
index c4faec6c61..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytest-timeout_2.1.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "py.test plugin to abort hanging tests"
-HOMEPAGE = "https://github.com/pytest-dev/pytest-timeout/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d8048cd156eda3df2e7f111b0ae9ceff"
-
-PYPI_PACKAGE = "pytest-timeout"
-
-SRC_URI[sha256sum] = "c07ca07404c612f8abbe22294b23c368e2e5104b521c1790195561f37e1ac3d9"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "${PYTHON_PN}-pytest"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-timeout_2.3.1.bb b/meta-python/recipes-devtools/python/python3-pytest-timeout_2.3.1.bb
new file mode 100644
index 0000000000..b56c26aada
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-timeout_2.3.1.bb
@@ -0,0 +1,12 @@
+SUMMARY = "py.test plugin to abort hanging tests"
+HOMEPAGE = "https://github.com/pytest-dev/pytest-timeout/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d8048cd156eda3df2e7f111b0ae9ceff"
+
+PYPI_PACKAGE = "pytest-timeout"
+
+SRC_URI[sha256sum] = "12397729125c6ecbdaca01035b9e5239d4db97352320af155b3f5de1ba5165d9"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "python3-pytest"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-xdist_2.5.0.bb b/meta-python/recipes-devtools/python/python3-pytest-xdist_2.5.0.bb
deleted file mode 100644
index c3e69e3e0a..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytest-xdist_2.5.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "pytest xdist plugin for distributed testing and loop-on-failing modes"
-HOMEPAGE = "https://github.com/pytest-dev/pytest-xdist"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=772fcdaca14b378878d05c7d857e6c3e"
-
-SRC_URI[sha256sum] = "4580deca3ff04ddb2ac53eba39d76cb5dd5edeac050cb6fbc768b0dd712b4edf"
-
-inherit pypi python_setuptools_build_meta
-
-DEPENDS += "python3-setuptools-scm-native"
-
-# Note that the dependency on pytest-forked is scheduled to be dropped in 3.0
-RDEPENDS:${PN} += " \
- python3-execnet \
- python3-pytest \
- python3-pytest-forked \
-"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-xdist_3.5.0.bb b/meta-python/recipes-devtools/python/python3-pytest-xdist_3.5.0.bb
new file mode 100644
index 0000000000..89b5039571
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-xdist_3.5.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "pytest xdist plugin for distributed testing and loop-on-failing modes"
+HOMEPAGE = "https://github.com/pytest-dev/pytest-xdist"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=772fcdaca14b378878d05c7d857e6c3e"
+
+SRC_URI[sha256sum] = "cbb36f3d67e0c478baa57fa4edc8843887e0f6cfc42d677530a36d7472b32d8a"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "python3-setuptools-scm-native"
+
+# Note that the dependency on pytest-forked is scheduled to be dropped in 3.0
+RDEPENDS:${PN} += " \
+ python3-execnet \
+ python3-pytest \
+ python3-pytest-forked \
+"
diff --git a/meta-python/recipes-devtools/python/python3-python-vlc_3.0.16120.bb b/meta-python/recipes-devtools/python/python3-python-vlc_3.0.16120.bb
deleted file mode 100644
index a4d21a50e8..0000000000
--- a/meta-python/recipes-devtools/python/python3-python-vlc_3.0.16120.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "This module provides ctypes-based bindings for the native libvlc API of the VLC video player."
-HOMEPAGE = "wiki.videolan.org/PythonBinding"
-LICENSE = "LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI[sha256sum] = "92f98fee088f72bd6d063b3b3312d0bd29b37e7ad65ddeb3a7303320300c2807"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-python-vlc_3.0.20123.bb b/meta-python/recipes-devtools/python/python3-python-vlc_3.0.20123.bb
new file mode 100644
index 0000000000..960da1437c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-python-vlc_3.0.20123.bb
@@ -0,0 +1,13 @@
+SUMMARY = "This module provides ctypes-based bindings for the native libvlc API of the VLC video player."
+HOMEPAGE = "wiki.videolan.org/PythonBinding"
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI[sha256sum] = "244fbb9e392a0326841fca926d6d12a2a36c546982191f493f148fa19e66b1d4"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pythonping_1.1.3.bb b/meta-python/recipes-devtools/python/python3-pythonping_1.1.3.bb
deleted file mode 100644
index 5e016fb928..0000000000
--- a/meta-python/recipes-devtools/python/python3-pythonping_1.1.3.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "PythonPing is simple way to ping in Python."
-HOMEPAGE = "https://pypi.org/project/pythonping/"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://setup.py;beginline=12;endline=12;md5=2d33c00f47720c7e35e1fdb4b9fab027"
-
-SRC_URI[sha256sum] = "3555a03439eb48d5e0e8c201f7c334c1e13b997d744f93453d4d601c0fc8330f"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "python3-io"
diff --git a/meta-python/recipes-devtools/python/python3-pythonping_1.1.4.bb b/meta-python/recipes-devtools/python/python3-pythonping_1.1.4.bb
new file mode 100644
index 0000000000..62f5c0caad
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pythonping_1.1.4.bb
@@ -0,0 +1,11 @@
+SUMMARY = "PythonPing is simple way to ping in Python."
+HOMEPAGE = "https://pypi.org/project/pythonping/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=12;endline=12;md5=2d33c00f47720c7e35e1fdb4b9fab027"
+
+SRC_URI[sha256sum] = "acef84640fee6f20b725f2a1d2392771f2845554cfabcef30b1fdea5030161af"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-io"
diff --git a/meta-python/recipes-devtools/python/python3-pytoml/run-ptest b/meta-python/recipes-devtools/python/python3-pytoml/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-pytoml/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-pytoml/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-pytoml_0.1.21.bb b/meta-python/recipes-devtools/python/python3-pytoml_0.1.21.bb
index 0f04a12039..1717085967 100644
--- a/meta-python/recipes-devtools/python/python3-pytoml_0.1.21.bb
+++ b/meta-python/recipes-devtools/python/python3-pytoml_0.1.21.bb
@@ -16,12 +16,13 @@ SRC_URI += " \
"
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-stringold \
+ python3-datetime \
+ python3-stringold \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb b/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb
deleted file mode 100644
index 022cf39ac0..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Shims to help you safely remove pytz"
-HOMEPAGE = "https://github.com/pganssle/pytz-deprecation-shim"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fca9fd5c15a28eb874ba38577a585d48"
-
-SRC_URI[sha256sum] = "af097bae1b616dde5c5744441e2ddc69e74dfdcb0c263129610d85b87445a59d"
-
-PYPI_PACKAGE = "pytz_deprecation_shim"
-PYPI_SRC_URI = "https://files.pythonhosted.org/packages/94/f0/909f94fea74759654390a3e1a9e4e185b6cd9aa810e533e3586f39da3097/${PYPI_PACKAGE}-${PV}.tar.gz"
-
-inherit pypi python_setuptools_build_meta
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-zoneinfo \
-"
diff --git a/meta-python/recipes-devtools/python/python3-pyu2f_0.1.5.bb b/meta-python/recipes-devtools/python/python3-pyu2f_0.1.5.bb
new file mode 100644
index 0000000000..5a2899e132
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyu2f_0.1.5.bb
@@ -0,0 +1,20 @@
+SUMMARY = "U2F host library for interacting with a U2F device over USB."
+HOMEPAGE = "https://github.com/google/pyu2f/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "a3caa3a11842fc7d5746376f37195e6af5f17c0a15737538bb1cebf656fb306b"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-core \
+ python3-crypt \
+ python3-ctypes \
+ python3-io \
+ python3-json \
+ python3-logging \
+ python3-netclient \
+ python3-threading \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pyudev_0.24.0.bb b/meta-python/recipes-devtools/python/python3-pyudev_0.24.0.bb
deleted file mode 100644
index 84154641ff..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyudev_0.24.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "A libudev binding"
-
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
-
-SRC_URI[sha256sum] = "b2a3afe1c99ea751f8296652557eac559874da2a1b1ec0625178706ec5a345f3"
-
-inherit pypi setuptools3
-
-do_configure:prepend() {
- sed -i "/import pyudev/d" ${S}/setup.py
- sed -i "s/str(pyudev.__version__)/'${PV}'/g" ${S}/setup.py
-}
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-fcntl \
- libudev \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pyudev_0.24.1.bb b/meta-python/recipes-devtools/python/python3-pyudev_0.24.1.bb
new file mode 100644
index 0000000000..ed5175fcf7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyudev_0.24.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A libudev binding"
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
+
+SRC_URI[sha256sum] = "75e54d37218f5ac45b0da1f0fd9cc5e526a3cac3ef1cfad410cf7ab338b01471"
+
+inherit pypi setuptools3
+
+do_configure:prepend() {
+ sed -i "/import pyudev/d" ${S}/setup.py
+ sed -i "s/str(pyudev.__version__)/'${PV}'/g" ${S}/setup.py
+}
+
+RDEPENDS:${PN} = "\
+ python3-ctypes \
+ python3-misc \
+ python3-six \
+ python3-threading \
+ python3-fcntl \
+ libudev \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pyunormalize_15.1.0.bb b/meta-python/recipes-devtools/python/python3-pyunormalize_15.1.0.bb
new file mode 100644
index 0000000000..6992ca24cc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyunormalize_15.1.0.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Unicode normalization forms (NFC, NFKC, NFD, NFKD). A library independent from the Python core Unicode database."
+HOMEPAGE = "https://github.com/mlodewijck/pyunormalize"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dc15b678c3bac1f5b2c873591a330eae"
+
+SRC_URI[sha256sum] = "cf4a87451a0f1cb76911aa97f432f4579e1f564a2f0c84ce488c73a73901b6c1"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-pyusb_1.2.1.bb b/meta-python/recipes-devtools/python/python3-pyusb_1.2.1.bb
index 286e9672b1..2282e0300b 100644
--- a/meta-python/recipes-devtools/python/python3-pyusb_1.2.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pyusb_1.2.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://pyusb.sourceforge.net/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e64a29fcd3c3dd356a24e235dfcb3905"
-DEPENDS += "libusb1 ${PYTHON_PN}-setuptools-scm-native"
+DEPENDS += "libusb1 python3-setuptools-scm-native"
RDEPENDS:${PN} += " \
python3-logging \
@@ -13,6 +13,6 @@ SRC_URI[sha256sum] = "a4cc7404a203144754164b8b40994e2849fde1cfff06b08492f12fff9d
inherit pypi setuptools3
-RDEPENDS:${PN} += "libusb1"
+RDEPENDS:${PN} += "python3-ctypes"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pyyaml-include/run-ptest b/meta-python/recipes-devtools/python/python3-pyyaml-include/run-ptest
new file mode 100755
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyyaml-include/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-pyyaml-include_1.3.2.bb b/meta-python/recipes-devtools/python/python3-pyyaml-include_1.3.2.bb
new file mode 100644
index 0000000000..3a5bd99a78
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyyaml-include_1.3.2.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Extending PyYAML with a custom constructor for including YAML files within YAML files"
+HOMEPAGE = "https://github.com/tanbro/pyyaml-include"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
+DEPENDS += "python3-setuptools-scm-native"
+SRCREV = "36b6975aa8fc7a6cbf37de40aa2ed6d996b2f7be"
+
+SRC_URI = " \
+ git://github.com/tanbro/pyyaml-include;protocol=https;branch=main \
+ file://run-ptest \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit python_setuptools_build_meta ptest
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-pyyaml \
+"
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
diff --git a/meta-python/recipes-devtools/python/python3-pyzmq/run-ptest b/meta-python/recipes-devtools/python/python3-pyzmq/run-ptest
index b63c4de0d9..beefefa663 100644
--- a/meta-python/recipes-devtools/python/python3-pyzmq/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-pyzmq/run-ptest
@@ -1,3 +1,4 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake \
+-k 'not test_callable_check and not test_on_recv_basic and not test_on_recv_wake and not test_on_recv_async and not test_on_recv_async_error and not test_curve'
diff --git a/meta-python/recipes-devtools/python/python3-pyzmq_24.0.1.bb b/meta-python/recipes-devtools/python/python3-pyzmq_24.0.1.bb
deleted file mode 100644
index b3b0aefe1f..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyzmq_24.0.1.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "PyZMQ: Python bindings for ZMQ"
-DESCRIPTION = "This package contains Python bindings for ZeroMQ. ZMQ is a lightweight and fast messaging implementation."
-HOMEPAGE = "http://zeromq.org/bindings:python"
-LICENSE = "BSD-3-Clause & LGPL-3.0-only"
-LIC_FILES_CHKSUM = "\
- file://COPYING.BSD;md5=11c65680f637c3df7f58bbc8d133e96e \
- file://COPYING.LESSER;md5=12c592fa0bcfff3fb0977b066e9cb69e \
-"
-
-DEPENDS = "python3-packaging-native zeromq"
-
-SRC_URI:append = " \
- file://club-rpath-out.patch \
- file://run-ptest \
-"
-SRC_URI[sha256sum] = "216f5d7dbb67166759e59b0479bca82b8acf9bed6015b526b8eb10143fb08e77"
-
-inherit pypi pkgconfig python_setuptools_build_meta ptest
-
-PACKAGES =+ "\
- ${PN}-test \
-"
-
-FILES:${PN}-test += "\
- ${libdir}/${PYTHON_DIR}/site-packages/*/tests \
-"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-multiprocessing \
-"
-
-RDEPENDS:${PN}-ptest += "\
- ${PN}-test \
- ${PYTHON_PN}-pytest \
-"
-
-do_compile:prepend() {
- echo [global] > ${S}/setup.cfg
- echo zmq_prefix = ${STAGING_DIR_HOST} >> ${S}/setup.cfg
- echo have_sys_un_h = True >> ${S}/setup.cfg
- echo skip_check_zmq = True >> ${S}/setup.cfg
- echo libzmq_extension = False >> ${S}/setup.cfg
- echo no_libzmq_extension = True >> ${S}/setup.cfg
-}
-
-do_install:append() {
- sed -i -e 's#${RECIPE_SYSROOT}##g' ${D}${PYTHON_SITEPACKAGES_DIR}/zmq/utils/config.json
- sed -i -e 's#${RECIPE_SYSROOT}##g' ${D}${PYTHON_SITEPACKAGES_DIR}/zmq/utils/compiler.json
-}
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/zmq/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-python/recipes-devtools/python/python3-pyzmq_25.1.2.bb b/meta-python/recipes-devtools/python/python3-pyzmq_25.1.2.bb
new file mode 100644
index 0000000000..2a6993c141
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyzmq_25.1.2.bb
@@ -0,0 +1,58 @@
+SUMMARY = "PyZMQ: Python bindings for ZMQ"
+DESCRIPTION = "This package contains Python bindings for ZeroMQ. ZMQ is a lightweight and fast messaging implementation."
+HOMEPAGE = "http://zeromq.org/bindings:python"
+LICENSE = "BSD-3-Clause & LGPL-3.0-only"
+LIC_FILES_CHKSUM = "\
+ file://LICENSE.BSD;md5=1787206f198344195a671b60326c59dc \
+ file://LICENSE.LESSER;md5=0e99bfbdd8b9d33b0221986fe3be89ed \
+"
+
+DEPENDS = "python3-packaging-native python3-cython-native python3-setuptools-scm-native zeromq"
+
+SRC_URI:append = " \
+ file://club-rpath-out.patch \
+ file://run-ptest \
+"
+SRC_URI[sha256sum] = "93f1aa311e8bb912e34f004cf186407a4e90eec4f0ecc0efd26056bf7eda0226"
+
+inherit pypi pkgconfig python_setuptools_build_meta ptest
+
+PACKAGES =+ "\
+ ${PN}-test \
+"
+
+FILES:${PN}-test += "\
+ ${PYTHON_SITEPACKAGES_DIR}/*/tests \
+"
+
+RDEPENDS:${PN} += "\
+ python3-json \
+ python3-multiprocessing \
+ python3-tornado \
+"
+
+RDEPENDS:${PN}-ptest += "\
+ ${PN}-test \
+ python3-pytest \
+ python3-unittest-automake-output \
+ python3-unixadmin \
+"
+
+do_compile:prepend() {
+ echo [global] > ${S}/setup.cfg
+ echo zmq_prefix = ${STAGING_DIR_HOST} >> ${S}/setup.cfg
+ echo have_sys_un_h = True >> ${S}/setup.cfg
+ echo skip_check_zmq = True >> ${S}/setup.cfg
+ echo libzmq_extension = False >> ${S}/setup.cfg
+ echo no_libzmq_extension = True >> ${S}/setup.cfg
+}
+
+do_install:append() {
+ sed -i -e 's#${RECIPE_SYSROOT}##g' ${D}${PYTHON_SITEPACKAGES_DIR}/zmq/utils/config.json
+ sed -i -e 's#${RECIPE_SYSROOT}##g' ${D}${PYTHON_SITEPACKAGES_DIR}/zmq/utils/compiler.json
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/zmq/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-pyzstd_0.15.10.bb b/meta-python/recipes-devtools/python/python3-pyzstd_0.15.10.bb
new file mode 100644
index 0000000000..c094a8d6f0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyzstd_0.15.10.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Pyzstd module provides classes and functions for compressing and \
+decompressing data, using Facebook’s Zstandard (or zstd as short name) algorithm."
+HOMEPAGE = "https://github.com/animalize/pyzstd"
+SECTION = "devel/python"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aedb5a2679cd1552fb61c181ef974b9e"
+
+PYPI_PACKAGE = "pyzstd"
+
+SRC_URI[sha256sum] = "83603a97fdbcf2139f475c940789f09e32703f931f29f4a8ddf3551e6700108b"
+
+inherit pypi setuptools3
+
+# clang-16 with -flto segfaults on arm, therefore ignore flto for now
+do_configure:append:arm:toolchain-clang() {
+ sed -i -e "s|'-flto'|''|" ${S}/setup.py
+}
diff --git a/meta-python/recipes-devtools/python/python3-qrcode_7.3.1.bb b/meta-python/recipes-devtools/python/python3-qrcode_7.3.1.bb
deleted file mode 100644
index f6de60e1a9..0000000000
--- a/meta-python/recipes-devtools/python/python3-qrcode_7.3.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "QR Code image generator"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4b802d2a65df4626623c79757f486af9"
-
-PYPI_PACKAGE = "qrcode"
-SRC_URI[sha256sum] = "375a6ff240ca9bd41adc070428b5dfc1dcfbb0f2507f1ac848f6cded38956578"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "python3-six python3-pillow"
diff --git a/meta-python/recipes-devtools/python/python3-qrcode_7.4.2.bb b/meta-python/recipes-devtools/python/python3-qrcode_7.4.2.bb
new file mode 100644
index 0000000000..204f4eceec
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-qrcode_7.4.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "QR Code image generator"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4b802d2a65df4626623c79757f486af9"
+
+PYPI_PACKAGE = "qrcode"
+SRC_URI[sha256sum] = "9dd969454827e127dbd93696b20747239e6d540e082937c90f14ac95b30f5845"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = " \
+ python3-six \
+ python3-pillow \
+ python3-pypng \
+ python3-typing-extensions \
+"
diff --git a/meta-python/recipes-devtools/python/python3-rapidjson/run-ptest b/meta-python/recipes-devtools/python/python3-rapidjson/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-rapidjson/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-rapidjson_1.14.bb b/meta-python/recipes-devtools/python/python3-rapidjson_1.14.bb
new file mode 100644
index 0000000000..22868d8df0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-rapidjson_1.14.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Python wrapper around rapidjson"
+HOMEPAGE = "https://github.com/python-rapidjson/python-rapidjson"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4daf3929156304df67003c33274a98bd"
+
+SRC_URI[sha256sum] = "26806f0a658c34b48d2951d8d3f846ca9deb93a34e664ef436db632a188b6779"
+
+# Inheriting ptest provides functionality for packaging and installing runtime tests for this recipe
+inherit setuptools3 pypi ptest
+
+PYPI_PACKAGE = "python-rapidjson"
+
+SETUPTOOLS_BUILD_ARGS += " --rj-include-dir=${RECIPE_SYSROOT}${includedir}"
+
+# run-ptest is a shell script that starts the test suite
+SRC_URI += " \
+ file://run-ptest \
+"
+
+DEPENDS += " \
+ rapidjson \
+"
+
+# Adding required python package for the ptest (pytest and pytest->automake report translation)
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+ python3-pytz \
+"
+
+RDEPENDS:${PN} += " \
+ python3-core \
+"
+
+# Installing the test suite on the target
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-rarfile_4.1.bb b/meta-python/recipes-devtools/python/python3-rarfile_4.1.bb
new file mode 100644
index 0000000000..8f5ef415c6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-rarfile_4.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "RAR archive reader for Python"
+HOMEPAGE = "https://github.com/markokr/rarfile"
+LICENSE = "ISC"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2f31e224cbf0c29cb6c55f2bae0e165f"
+
+inherit setuptools3
+
+SRC_URI[sha256sum] = "db60b3b5bc1c4bdeb941427d50b606d51df677353385255583847639473eda48"
+
+inherit pypi
+
+PYPI_PACKAGE="rarfile"
+
+RDEPENDS:${PN} += "\
+ p7zip \
+ python3-core \
+ python3-datetime \
+ python3-crypt \
+ python3-io \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-raven_6.10.0.bb b/meta-python/recipes-devtools/python/python3-raven_6.10.0.bb
index b0d19c31ad..79a38983de 100644
--- a/meta-python/recipes-devtools/python/python3-raven_6.10.0.bb
+++ b/meta-python/recipes-devtools/python/python3-raven_6.10.0.bb
@@ -11,3 +11,8 @@ SRC_URI[sha256sum] = "3fa6de6efa2493a7c827472e984ce9b020797d0da16f1db67197bcc23c
PYPI_PACKAGE = "raven"
inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-json \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-rdflib_6.1.1.bb b/meta-python/recipes-devtools/python/python3-rdflib_6.1.1.bb
deleted file mode 100644
index 27f65dced0..0000000000
--- a/meta-python/recipes-devtools/python/python3-rdflib_6.1.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "RDFLib is a pure Python package for working with RDF"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b6cde159c801514e0e45a40cf0a9d3d9"
-
-SRC_URI[sha256sum] = "8dbfa0af2990b98471dacbc936d6494c997ede92fd8ed693fb84ee700ef6f754"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-isodate \
- ${PYTHON_PN}-pyparsing \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-xml \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-redis_4.3.4.bb b/meta-python/recipes-devtools/python/python3-redis_4.3.4.bb
deleted file mode 100644
index e0f953ca4e..0000000000
--- a/meta-python/recipes-devtools/python/python3-redis_4.3.4.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Python client for Redis key-value store"
-DESCRIPTION = "The Python interface to the Redis key-value store."
-HOMEPAGE = "http://github.com/andymccurdy/redis-py"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=51d9ad56299ab60ba7be65a621004f27"
-
-SRC_URI[sha256sum] = "ddf27071df4adf3821c4f2ca59d67525c3a82e5f268bed97b813cb4fabf87880"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-cryptography \
- ${PYTHON_PN}-packaging \
- ${PYTHON_PN}-asyncio \
-"
diff --git a/meta-python/recipes-devtools/python/python3-redis_5.0.1.bb b/meta-python/recipes-devtools/python/python3-redis_5.0.1.bb
new file mode 100644
index 0000000000..2c473c03ea
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-redis_5.0.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Python client for Redis key-value store"
+DESCRIPTION = "The Python interface to the Redis key-value store."
+HOMEPAGE = "http://github.com/andymccurdy/redis-py"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=609ded3add9111c4c6e102f1d421d3f8"
+
+SRC_URI[sha256sum] = "0dab495cd5753069d3bc650a0dde8a8f9edde16fc5691b689a566eda58100d0f"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-compression \
+ python3-cryptography \
+ python3-datetime \
+ python3-json \
+ python3-packaging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-regex_2022.9.13.bb b/meta-python/recipes-devtools/python/python3-regex_2022.9.13.bb
deleted file mode 100644
index 886acd7387..0000000000
--- a/meta-python/recipes-devtools/python/python3-regex_2022.9.13.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Alternative regular expression module, to replace re."
-HOMEPAGE = "https://bitbucket.org/mrabarnett/mrab-regex/src"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7b5751ddd6b643203c31ff873051d069"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "f07373b6e56a6f3a0df3d75b651a278ca7bd357a796078a26a958ea1ce0588fd"
-
-RDEPENDS:${PN} += " \
- python3-stringold \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-regex_2023.12.25.bb b/meta-python/recipes-devtools/python/python3-regex_2023.12.25.bb
new file mode 100644
index 0000000000..d7ac616083
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-regex_2023.12.25.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Alternative regular expression module, to replace re."
+HOMEPAGE = "https://bitbucket.org/mrabarnett/mrab-regex/src"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7b5751ddd6b643203c31ff873051d069"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "29171aa128da69afdf4bde412d5bedc335f2ca8fcfe4489038577d05f16181e5"
+
+RDEPENDS:${PN} += " \
+ python3-stringold \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-requests-file/run-ptest b/meta-python/recipes-devtools/python/python3-requests-file/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-requests-file/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-requests-file/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-requests-file_1.5.1.bb b/meta-python/recipes-devtools/python/python3-requests-file_1.5.1.bb
index 21cdb8c127..7ff984a933 100644
--- a/meta-python/recipes-devtools/python/python3-requests-file_1.5.1.bb
+++ b/meta-python/recipes-devtools/python/python3-requests-file_1.5.1.bb
@@ -13,7 +13,8 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-requests-futures_1.0.0.bb b/meta-python/recipes-devtools/python/python3-requests-futures_1.0.0.bb
deleted file mode 100644
index 4b57e13a9a..0000000000
--- a/meta-python/recipes-devtools/python/python3-requests-futures_1.0.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Small add-on for the python requests http library. Makes use of python 3.2’s concurrent.futures or the backport for prior versions of python."
-HOMEPAGE = "https://github.com/ross/requests-futures"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e1e50798d0afe0e1f87594c6619a2fa5"
-
-SRC_URI[md5sum] = "601b5e90413bb00e06148752d31f0cc7"
-SRC_URI[sha256sum] = "35547502bf1958044716a03a2f47092a89efe8f9789ab0c4c528d9c9c30bc148"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- python3-requests \
-"
-
diff --git a/meta-python/recipes-devtools/python/python3-requests-futures_1.0.1.bb b/meta-python/recipes-devtools/python/python3-requests-futures_1.0.1.bb
new file mode 100644
index 0000000000..28f034f7e3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-requests-futures_1.0.1.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Small add-on for the python requests http library. Makes use of python 3.2’s concurrent.futures or the backport for prior versions of python."
+HOMEPAGE = "https://github.com/ross/requests-futures"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e1e50798d0afe0e1f87594c6619a2fa5"
+
+SRC_URI[sha256sum] = "f55a4ef80070e2858e7d1e73123d2bfaeaf25b93fd34384d8ddf148e2b676373"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-requests \
+"
+
diff --git a/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.1.bb b/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.1.bb
deleted file mode 100644
index e02ff7911e..0000000000
--- a/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=22d117a849df10d047ed9b792838e863"
-
-SRC_URI[sha256sum] = "75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "${PYTHON_PN}-requests ${PYTHON_PN}-oauthlib"
diff --git a/meta-python/recipes-devtools/python/python3-requests-oauthlib_2.0.0.bb b/meta-python/recipes-devtools/python/python3-requests-oauthlib_2.0.0.bb
new file mode 100644
index 0000000000..71cafb513d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-requests-oauthlib_2.0.0.bb
@@ -0,0 +1,8 @@
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=22d117a849df10d047ed9b792838e863"
+
+SRC_URI[sha256sum] = "b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-requests python3-oauthlib"
diff --git a/meta-python/recipes-devtools/python/python3-requests-toolbelt/090856f4159c40a2927fb88546419f2e1697ad5f.patch b/meta-python/recipes-devtools/python/python3-requests-toolbelt/090856f4159c40a2927fb88546419f2e1697ad5f.patch
new file mode 100644
index 0000000000..948dd2ad55
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-requests-toolbelt/090856f4159c40a2927fb88546419f2e1697ad5f.patch
@@ -0,0 +1,1492 @@
+From 090856f4159c40a2927fb88546419f2e1697ad5f Mon Sep 17 00:00:00 2001
+From: Quentin Pradet <quentin.pradet@gmail.com>
+Date: Fri, 28 Apr 2023 22:03:46 +0400
+Subject: [PATCH] Indent cassettes files to help track changes in git
+
+Upstream-Status: Submitted [https://github.com/requests/toolbelt/pull/356]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/cassettes/file_for_download.json | 56 ++++-
+ tests/cassettes/http2bin_cookies.json | 133 +++++++++-
+ tests/cassettes/http2bin_fingerprint.json | 65 ++++-
+ tests/cassettes/httpbin_guess_auth_basic.json | 115 ++++++++-
+ .../cassettes/httpbin_guess_auth_digest.json | 124 +++++++++-
+ tests/cassettes/httpbin_guess_auth_none.json | 59 ++++-
+ tests/cassettes/klevas_vu_lt_ssl3.json | 36 ++-
+ .../redirect_request_for_dump_all.json | 233 +++++++++++++++++-
+ tests/cassettes/simple_get_request.json | 65 ++++-
+ tests/cassettes/stream_response_to_file.json | 181 +++++++++++++-
+ ...sponse_without_content_length_to_file.json | 175 ++++++++++++-
+ tests/cassettes/test_x509_adapter_der.json | 69 +++++-
+ tests/cassettes/test_x509_adapter_pem.json | 69 +++++-
+ 13 files changed, 1367 insertions(+), 13 deletions(-)
+
+diff --git a/tests/cassettes/file_for_download.json b/tests/cassettes/file_for_download.json
+index 9e4bb8f..d171443 100644
+--- a/tests/cassettes/file_for_download.json
++++ b/tests/cassettes/file_for_download.json
+@@ -1 +1,55 @@
+-{"http_interactions": [{"request": {"uri": "https://stxnext.com/static/img/logo.830ebe551641.svg", "body": {"encoding": "utf-8", "string": ""}, "method": "GET", "headers": {"User-Agent": ["python-requests/2.2.1 CPython/3.5.2 Darwin/17.3.0"], "Accept-Encoding": ["gzip, deflate, compress"], "Accept": ["*/*"]}}, "recorded_at": "2018-01-04T23:00:12", "response": {"url": "https://stxnext.com/static/img/logo.830ebe551641.svg", "status": {"message": "OK", "code": 200}, "body": {"encoding": null, "string": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"-16169 -10492.84 144.98 39.947\"><defs><style>.a{fill:url(#a);}</style><linearGradient id=\"a\" x2=\"1\" y2=\"1\" gradientUnits=\"objectBoundingBox\"><stop offset=\"0\" stop-color=\"#15c9c2\"/><stop offset=\"1\" stop-color=\"#39769b\"/></linearGradient></defs><path class=\"a\" d=\"M88.841,54.948V48.514a3.665,3.665,0,0,1,1.541-.336,2.169,2.169,0,0,1,2.266,2.435A2.182,2.182,0,0,1,90.435,53.1a2.9,2.9,0,0,1-.85-.125v1.974Zm.744-6.019v3.46a2.558,2.558,0,0,0,.8.125c1,0,1.523-.807,1.523-1.9s-.525-1.84-1.506-1.84h-.041A1.986,1.986,0,0,0,89.585,48.929ZM62.838,54.948l.717-1.9-1.788-4.769h.805l1.187,3.472a5.008,5.008,0,0,1,.167.682h.019a5.01,5.01,0,0,1,.167-.682l1.177-3.472h.815l-2.5,6.672Zm-5.749,0V48.514a3.669,3.669,0,0,1,1.541-.336A2.169,2.169,0,0,1,60.9,50.613,2.185,2.185,0,0,1,58.683,53.1a2.9,2.9,0,0,1-.85-.125v1.974Zm.74-6.019v3.46a2.558,2.558,0,0,0,.8.125c1,0,1.523-.807,1.523-1.9s-.529-1.84-1.513-1.84H58.6A1.986,1.986,0,0,0,57.829,48.929Zm79.213,4.213a2.19,2.19,0,0,1-2.282-2.487c0-1.462.788-2.478,2.08-2.478a1.825,1.825,0,0,1,1.9,2.044c0,.1,0,.205-.008.318l-3.257.469a1.5,1.5,0,0,0,1.6,1.532,2.886,2.886,0,0,0,1.3-.292l.23.557a3.431,3.431,0,0,1-1.484.336ZM135.432,50.5l2.6-.366c-.011-.944-.488-1.386-1.2-1.386C135.989,48.744,135.45,49.416,135.432,50.5ZM130.4,52.8l.265-.567a2.665,2.665,0,0,0,1.143.3c.611,0,1.018-.3,1.018-.77,0-.5-.407-.7-.965-.9-.673-.248-1.336-.549-1.336-1.408,0-.744.575-1.279,1.585-1.279a2.6,2.6,0,0,1,1.327.336l-.257.523a2.054,2.054,0,0,0-1-.283c-.576,0-.9.309-.9.707,0,.5.388.682.913.875.708.265,1.4.549,1.4,1.434.006.823-.649,1.372-1.772,1.372A3.261,3.261,0,0,1,130.4,52.8Zm-3.008.34c-1.187,0-1.841-.523-1.841-1.672V48.276h.744v3.2c0,.707.366,1.043,1.1,1.043a2.914,2.914,0,0,0,1.008-.158V48.276h.73V52.8a4.263,4.263,0,0,1-1.664.34Zm-7.256-2.487c0-1.417.708-2.478,2.028-2.478s2.026,1.061,2.026,2.478-.709,2.487-2.026,2.487S120.14,52.071,120.14,50.655Zm.735-.007c0,1.1.424,1.884,1.292,1.884s1.291-.788,1.291-1.884-.425-1.866-1.291-1.866v0C121.3,48.779,120.875,49.549,120.875,50.648Zm-12.187,2.494a2.19,2.19,0,0,1-2.282-2.487c0-1.462.788-2.478,2.08-2.478a1.825,1.825,0,0,1,1.9,2.044c0,.1,0,.205-.009.318l-3.256.469a1.494,1.494,0,0,0,1.6,1.532,2.886,2.886,0,0,0,1.3-.292l.23.557a3.431,3.431,0,0,1-1.484.336ZM107.079,50.5l2.6-.366c-.01-.944-.488-1.386-1.2-1.386C107.636,48.744,107.1,49.416,107.079,50.5Zm-13.249.159c0-1.417.708-2.478,2.028-2.478s2.026,1.061,2.026,2.478-.707,2.487-2.026,2.487S93.83,52.071,93.83,50.655Zm.735-.007c0,1.1.424,1.884,1.292,1.884s1.291-.788,1.291-1.884-.424-1.866-1.291-1.866v0C94.989,48.779,94.565,49.549,94.565,50.648Zm-18.973.007c0-1.417.708-2.478,2.028-2.478s2.032,1.061,2.032,2.478-.715,2.487-2.032,2.487S75.592,52.071,75.592,50.655Zm.735-.007c0,1.1.424,1.884,1.292,1.884s1.292-.788,1.292-1.884-.426-1.866-1.292-1.866v0C76.752,48.779,76.328,49.549,76.328,50.648ZM68.85,53.1a1.149,1.149,0,0,1-1.257-1.292V48.833H66.9v-.557h.688V47.123l.716-.239v1.389h1.027v.557H68.306v2.939a.634.634,0,0,0,.716.673,1.006,1.006,0,0,0,.309-.044v.619a1.308,1.308,0,0,1-.453.081Zm15.078-.053V49.823c0-.638-.39-1.044-1.158-1.044a2.968,2.968,0,0,0-1.018.169v4.1h-.745V48.513a4.5,4.5,0,0,1,1.753-.336c1.257,0,1.9.584,1.9,1.585v3.289Zm34.114-3.212c0-.7-.461-1.037-1.187-1.037a2.036,2.036,0,0,0-.989.265v3.983h-.744V46.1h.744v2.376A2.616,2.616,0,0,1,117,48.191c1.1,0,1.778.557,1.778,1.585v3.265l-.734,0Zm-6.285,3.212V48.513a4.493,4.493,0,0,1,1.743-.336,3.273,3.273,0,0,1,.47.034l-.143.621a2.031,2.031,0,0,0-.424-.034,2.461,2.461,0,0,0-.9.15v4.1Zm-8.485,0-.974-3.327a5.884,5.884,0,0,1-.14-.654h-.019s-.062.354-.15.654l-.974,3.327h-.753l-1.45-4.769h.744l.93,3.371a7.42,7.42,0,0,1,.15.732h.019s.07-.407.158-.732l.974-3.371h.709l.966,3.371c.088.318.167.732.167.732h.019a6.418,6.418,0,0,1,.143-.732l.947-3.371h.731l-1.442,4.769ZM73.5,49.833c0-.7-.461-1.037-1.187-1.037a2.044,2.044,0,0,0-.991.265v3.983h-.744V46.1h.744v2.376a2.612,2.612,0,0,1,1.133-.283c1.1,0,1.778.557,1.778,1.585v3.265l-.734,0Zm-27.141-6,8.837-14.534L46.91,15.475h7.926l7.925,13.819L54.32,43.828Zm-15.478,0V21.688H23.911V15.474H44.819v6.213H37.846V43.828ZM0,40.086l4.455-4.463c1.473,1.473,4.064,1.99,6.331,1.99,2.741,0,4.062-.913,4.062-2.548a2.4,2.4,0,0,0-.548-1.671,3.133,3.133,0,0,0-1.872-.757L9,32.158A9.631,9.631,0,0,1,3.31,29.651a7.847,7.847,0,0,1-1.953-5.7C1.358,18.778,5.26,15,11.712,15c4.06,0,7.127.956,9.558,3.385l-4.387,4.385C15.092,20.98,12.742,21.1,11.506,21.1c-2.429,0-3.424,1.394-3.424,2.63a1.868,1.868,0,0,0,.557,1.315,3.179,3.179,0,0,0,1.952.836l3.426.48a9.569,9.569,0,0,1,5.576,2.348c1.513,1.473,2.111,3.584,2.111,6.213,0,5.761-4.982,8.907-10.95,8.907C6.412,43.828,2.866,43.031,0,40.086Zm111.6,3.73,6.958-11.665-6.518-11.076h2.81l5.048,8.975,5.046-8.975h2.812L121.2,32.15l7.027,11.658-2.812.006L119.9,34.265l-5.558,9.55Zm24.376,0V23.245h-6.579V21.074h15.588v2.171H138.4V43.814ZM95.878,21.074H109.99v2.173h-11.7v8.018h9.966v2.165H98.3v8.21H110v2.173l-14.123,0ZM90.192,43.814,78.12,25.571V43.808H75.692V21.074h2.3L90.069,39.247V21.074H92.5V43.814ZM63.528,43.8l-2.683-5.029,3.7-6.344,6.611,11.379Zm-2.7-24.291,2.094-4.046h7.919L64.668,26.125Z\" transform=\"translate(-16169 -10507.84)\"/></svg>"}, "headers": {"date": ["Thu, 04 Jan 2018 23:00:15 GMT"], "strict-transport-security": ["max-age=0; includeSubdomains; preload"], "last-modified": ["Wed, 22 Nov 2017 09:22:00 GMT"], "content-type": ["image/svg+xml"], "content-length": ["5177"]}}}], "recorded_with": "betamax/0.8.0"}
+\ No newline at end of file
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2018-01-04T23:00:12",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate, compress"
++ ],
++ "User-Agent": [
++ "python-requests/2.2.1 CPython/3.5.2 Darwin/17.3.0"
++ ]
++ },
++ "method": "GET",
++ "uri": "https://stxnext.com/static/img/logo.830ebe551641.svg"
++ },
++ "response": {
++ "body": {
++ "encoding": null,
++ "string": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"-16169 -10492.84 144.98 39.947\"><defs><style>.a{fill:url(#a);}</style><linearGradient id=\"a\" x2=\"1\" y2=\"1\" gradientUnits=\"objectBoundingBox\"><stop offset=\"0\" stop-color=\"#15c9c2\"/><stop offset=\"1\" stop-color=\"#39769b\"/></linearGradient></defs><path class=\"a\" d=\"M88.841,54.948V48.514a3.665,3.665,0,0,1,1.541-.336,2.169,2.169,0,0,1,2.266,2.435A2.182,2.182,0,0,1,90.435,53.1a2.9,2.9,0,0,1-.85-.125v1.974Zm.744-6.019v3.46a2.558,2.558,0,0,0,.8.125c1,0,1.523-.807,1.523-1.9s-.525-1.84-1.506-1.84h-.041A1.986,1.986,0,0,0,89.585,48.929ZM62.838,54.948l.717-1.9-1.788-4.769h.805l1.187,3.472a5.008,5.008,0,0,1,.167.682h.019a5.01,5.01,0,0,1,.167-.682l1.177-3.472h.815l-2.5,6.672Zm-5.749,0V48.514a3.669,3.669,0,0,1,1.541-.336A2.169,2.169,0,0,1,60.9,50.613,2.185,2.185,0,0,1,58.683,53.1a2.9,2.9,0,0,1-.85-.125v1.974Zm.74-6.019v3.46a2.558,2.558,0,0,0,.8.125c1,0,1.523-.807,1.523-1.9s-.529-1.84-1.513-1.84H58.6A1.986,1.986,0,0,0,57.829,48.929Zm79.213,4.213a2.19,2.19,0,0,1-2.282-2.487c0-1.462.788-2.478,2.08-2.478a1.825,1.825,0,0,1,1.9,2.044c0,.1,0,.205-.008.318l-3.257.469a1.5,1.5,0,0,0,1.6,1.532,2.886,2.886,0,0,0,1.3-.292l.23.557a3.431,3.431,0,0,1-1.484.336ZM135.432,50.5l2.6-.366c-.011-.944-.488-1.386-1.2-1.386C135.989,48.744,135.45,49.416,135.432,50.5ZM130.4,52.8l.265-.567a2.665,2.665,0,0,0,1.143.3c.611,0,1.018-.3,1.018-.77,0-.5-.407-.7-.965-.9-.673-.248-1.336-.549-1.336-1.408,0-.744.575-1.279,1.585-1.279a2.6,2.6,0,0,1,1.327.336l-.257.523a2.054,2.054,0,0,0-1-.283c-.576,0-.9.309-.9.707,0,.5.388.682.913.875.708.265,1.4.549,1.4,1.434.006.823-.649,1.372-1.772,1.372A3.261,3.261,0,0,1,130.4,52.8Zm-3.008.34c-1.187,0-1.841-.523-1.841-1.672V48.276h.744v3.2c0,.707.366,1.043,1.1,1.043a2.914,2.914,0,0,0,1.008-.158V48.276h.73V52.8a4.263,4.263,0,0,1-1.664.34Zm-7.256-2.487c0-1.417.708-2.478,2.028-2.478s2.026,1.061,2.026,2.478-.709,2.487-2.026,2.487S120.14,52.071,120.14,50.655Zm.735-.007c0,1.1.424,1.884,1.292,1.884s1.291-.788,1.291-1.884-.425-1.866-1.291-1.866v0C121.3,48.779,120.875,49.549,120.875,50.648Zm-12.187,2.494a2.19,2.19,0,0,1-2.282-2.487c0-1.462.788-2.478,2.08-2.478a1.825,1.825,0,0,1,1.9,2.044c0,.1,0,.205-.009.318l-3.256.469a1.494,1.494,0,0,0,1.6,1.532,2.886,2.886,0,0,0,1.3-.292l.23.557a3.431,3.431,0,0,1-1.484.336ZM107.079,50.5l2.6-.366c-.01-.944-.488-1.386-1.2-1.386C107.636,48.744,107.1,49.416,107.079,50.5Zm-13.249.159c0-1.417.708-2.478,2.028-2.478s2.026,1.061,2.026,2.478-.707,2.487-2.026,2.487S93.83,52.071,93.83,50.655Zm.735-.007c0,1.1.424,1.884,1.292,1.884s1.291-.788,1.291-1.884-.424-1.866-1.291-1.866v0C94.989,48.779,94.565,49.549,94.565,50.648Zm-18.973.007c0-1.417.708-2.478,2.028-2.478s2.032,1.061,2.032,2.478-.715,2.487-2.032,2.487S75.592,52.071,75.592,50.655Zm.735-.007c0,1.1.424,1.884,1.292,1.884s1.292-.788,1.292-1.884-.426-1.866-1.292-1.866v0C76.752,48.779,76.328,49.549,76.328,50.648ZM68.85,53.1a1.149,1.149,0,0,1-1.257-1.292V48.833H66.9v-.557h.688V47.123l.716-.239v1.389h1.027v.557H68.306v2.939a.634.634,0,0,0,.716.673,1.006,1.006,0,0,0,.309-.044v.619a1.308,1.308,0,0,1-.453.081Zm15.078-.053V49.823c0-.638-.39-1.044-1.158-1.044a2.968,2.968,0,0,0-1.018.169v4.1h-.745V48.513a4.5,4.5,0,0,1,1.753-.336c1.257,0,1.9.584,1.9,1.585v3.289Zm34.114-3.212c0-.7-.461-1.037-1.187-1.037a2.036,2.036,0,0,0-.989.265v3.983h-.744V46.1h.744v2.376A2.616,2.616,0,0,1,117,48.191c1.1,0,1.778.557,1.778,1.585v3.265l-.734,0Zm-6.285,3.212V48.513a4.493,4.493,0,0,1,1.743-.336,3.273,3.273,0,0,1,.47.034l-.143.621a2.031,2.031,0,0,0-.424-.034,2.461,2.461,0,0,0-.9.15v4.1Zm-8.485,0-.974-3.327a5.884,5.884,0,0,1-.14-.654h-.019s-.062.354-.15.654l-.974,3.327h-.753l-1.45-4.769h.744l.93,3.371a7.42,7.42,0,0,1,.15.732h.019s.07-.407.158-.732l.974-3.371h.709l.966,3.371c.088.318.167.732.167.732h.019a6.418,6.418,0,0,1,.143-.732l.947-3.371h.731l-1.442,4.769ZM73.5,49.833c0-.7-.461-1.037-1.187-1.037a2.044,2.044,0,0,0-.991.265v3.983h-.744V46.1h.744v2.376a2.612,2.612,0,0,1,1.133-.283c1.1,0,1.778.557,1.778,1.585v3.265l-.734,0Zm-27.141-6,8.837-14.534L46.91,15.475h7.926l7.925,13.819L54.32,43.828Zm-15.478,0V21.688H23.911V15.474H44.819v6.213H37.846V43.828ZM0,40.086l4.455-4.463c1.473,1.473,4.064,1.99,6.331,1.99,2.741,0,4.062-.913,4.062-2.548a2.4,2.4,0,0,0-.548-1.671,3.133,3.133,0,0,0-1.872-.757L9,32.158A9.631,9.631,0,0,1,3.31,29.651a7.847,7.847,0,0,1-1.953-5.7C1.358,18.778,5.26,15,11.712,15c4.06,0,7.127.956,9.558,3.385l-4.387,4.385C15.092,20.98,12.742,21.1,11.506,21.1c-2.429,0-3.424,1.394-3.424,2.63a1.868,1.868,0,0,0,.557,1.315,3.179,3.179,0,0,0,1.952.836l3.426.48a9.569,9.569,0,0,1,5.576,2.348c1.513,1.473,2.111,3.584,2.111,6.213,0,5.761-4.982,8.907-10.95,8.907C6.412,43.828,2.866,43.031,0,40.086Zm111.6,3.73,6.958-11.665-6.518-11.076h2.81l5.048,8.975,5.046-8.975h2.812L121.2,32.15l7.027,11.658-2.812.006L119.9,34.265l-5.558,9.55Zm24.376,0V23.245h-6.579V21.074h15.588v2.171H138.4V43.814ZM95.878,21.074H109.99v2.173h-11.7v8.018h9.966v2.165H98.3v8.21H110v2.173l-14.123,0ZM90.192,43.814,78.12,25.571V43.808H75.692V21.074h2.3L90.069,39.247V21.074H92.5V43.814ZM63.528,43.8l-2.683-5.029,3.7-6.344,6.611,11.379Zm-2.7-24.291,2.094-4.046h7.919L64.668,26.125Z\" transform=\"translate(-16169 -10507.84)\"/></svg>"
++ },
++ "headers": {
++ "content-length": [
++ "5177"
++ ],
++ "content-type": [
++ "image/svg+xml"
++ ],
++ "date": [
++ "Thu, 04 Jan 2018 23:00:15 GMT"
++ ],
++ "last-modified": [
++ "Wed, 22 Nov 2017 09:22:00 GMT"
++ ],
++ "strict-transport-security": [
++ "max-age=0; includeSubdomains; preload"
++ ]
++ },
++ "status": {
++ "code": 200,
++ "message": "OK"
++ },
++ "url": "https://stxnext.com/static/img/logo.830ebe551641.svg"
++ }
++ }
++ ],
++ "recorded_with": "betamax/0.8.0"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/http2bin_cookies.json b/tests/cassettes/http2bin_cookies.json
+index a8368ed..3d907da 100644
+--- a/tests/cassettes/http2bin_cookies.json
++++ b/tests/cassettes/http2bin_cookies.json
+@@ -1 +1,132 @@
+-{"recorded_with": "betamax/0.5.1", "http_interactions": [{"response": {"status": {"code": 302, "message": "FOUND"}, "body": {"string": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to target URL: <a href=\"/cookies\">/cookies</a>. If not click the link.", "encoding": "utf-8"}, "url": "https://httpbin.org/cookies/set?cookie0=value0", "headers": {"Location": ["/cookies"], "Content-Length": ["223"], "Date": ["Fri, 13 Nov 2015 00:23:20 GMT"], "Access-Control-Allow-Credentials": ["true"], "Access-Control-Allow-Origin": ["*"], "Connection": ["keep-alive"], "Server": ["nginx"], "Set-Cookie": ["cookie0=value0; Path=/"], "Content-Type": ["text/html; charset=utf-8"]}}, "recorded_at": "2015-11-13T00:23:19", "request": {"uri": "https://httpbin.org/cookies/set?cookie0=value0", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": ["keep-alive"], "User-Agent": ["python-requests/2.8.1"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"]}}}, {"response": {"status": {"code": 200, "message": "OK"}, "body": {"string": "{\n \"cookies\": {\n \"cookie0\": \"value0\"\n }\n}\n", "encoding": null}, "url": "https://httpbin.org/cookies", "headers": {"Access-Control-Allow-Credentials": ["true"], "Content-Length": ["47"], "Date": ["Fri, 13 Nov 2015 00:23:20 GMT"], "Content-Type": ["application/json"], "Connection": ["keep-alive"], "Server": ["nginx"], "Access-Control-Allow-Origin": ["*"]}}, "recorded_at": "2015-11-13T00:23:19", "request": {"uri": "https://httpbin.org/cookies", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": ["keep-alive"], "User-Agent": ["python-requests/2.8.1"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "Cookie": ["cookie0=value0"]}}}]}
+\ No newline at end of file
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2015-11-13T00:23:19",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.8.1"
++ ]
++ },
++ "method": "GET",
++ "uri": "https://httpbin.org/cookies/set?cookie0=value0"
++ },
++ "response": {
++ "body": {
++ "encoding": "utf-8",
++ "string": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to target URL: <a href=\"/cookies\">/cookies</a>. If not click the link."
++ },
++ "headers": {
++ "Access-Control-Allow-Credentials": [
++ "true"
++ ],
++ "Access-Control-Allow-Origin": [
++ "*"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "Content-Length": [
++ "223"
++ ],
++ "Content-Type": [
++ "text/html; charset=utf-8"
++ ],
++ "Date": [
++ "Fri, 13 Nov 2015 00:23:20 GMT"
++ ],
++ "Location": [
++ "/cookies"
++ ],
++ "Server": [
++ "nginx"
++ ],
++ "Set-Cookie": [
++ "cookie0=value0; Path=/"
++ ]
++ },
++ "status": {
++ "code": 302,
++ "message": "FOUND"
++ },
++ "url": "https://httpbin.org/cookies/set?cookie0=value0"
++ }
++ },
++ {
++ "recorded_at": "2015-11-13T00:23:19",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "Cookie": [
++ "cookie0=value0"
++ ],
++ "User-Agent": [
++ "python-requests/2.8.1"
++ ]
++ },
++ "method": "GET",
++ "uri": "https://httpbin.org/cookies"
++ },
++ "response": {
++ "body": {
++ "encoding": null,
++ "string": "{\n \"cookies\": {\n \"cookie0\": \"value0\"\n }\n}\n"
++ },
++ "headers": {
++ "Access-Control-Allow-Credentials": [
++ "true"
++ ],
++ "Access-Control-Allow-Origin": [
++ "*"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "Content-Length": [
++ "47"
++ ],
++ "Content-Type": [
++ "application/json"
++ ],
++ "Date": [
++ "Fri, 13 Nov 2015 00:23:20 GMT"
++ ],
++ "Server": [
++ "nginx"
++ ]
++ },
++ "status": {
++ "code": 200,
++ "message": "OK"
++ },
++ "url": "https://httpbin.org/cookies"
++ }
++ }
++ ],
++ "recorded_with": "betamax/0.5.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/http2bin_fingerprint.json b/tests/cassettes/http2bin_fingerprint.json
+index fd2fd35..75eb143 100644
+--- a/tests/cassettes/http2bin_fingerprint.json
++++ b/tests/cassettes/http2bin_fingerprint.json
+@@ -1 +1,64 @@
+-{"recorded_with": "betamax/0.4.1", "http_interactions": [{"response": {"status": {"message": "OK", "code": 200}, "body": {"string": "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\": \"gzip, deflate\", \n \"Connection\": \"keep-alive\", \n \"Host\": \"http2bin.org\", \n \"User-Agent\": \"python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0\"\n }, \n \"origin\": \"77.99.146.203\", \n \"url\": \"https://http2bin.org/get\"\n}\n", "encoding": null}, "headers": {"access-control-allow-origin": ["*"], "date": ["Tue, 03 Mar 2015 21:29:55 GMT"], "server": ["h2o/1.0.2-alpha1"], "content-length": ["301"], "access-control-allow-credentials": ["true"], "connection": ["keep-alive"], "content-type": ["application/json"]}, "url": "https://http2bin.org/get"}, "recorded_at": "2015-03-03T21:29:55", "request": {"method": "GET", "uri": "https://http2bin.org/get", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Accept-Encoding": ["gzip, deflate"], "Connection": ["keep-alive"], "User-Agent": ["python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"]}}}]}
+\ No newline at end of file
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2015-03-03T21:29:55",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"
++ ]
++ },
++ "method": "GET",
++ "uri": "https://http2bin.org/get"
++ },
++ "response": {
++ "body": {
++ "encoding": null,
++ "string": "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\": \"gzip, deflate\", \n \"Connection\": \"keep-alive\", \n \"Host\": \"http2bin.org\", \n \"User-Agent\": \"python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0\"\n }, \n \"origin\": \"77.99.146.203\", \n \"url\": \"https://http2bin.org/get\"\n}\n"
++ },
++ "headers": {
++ "access-control-allow-credentials": [
++ "true"
++ ],
++ "access-control-allow-origin": [
++ "*"
++ ],
++ "connection": [
++ "keep-alive"
++ ],
++ "content-length": [
++ "301"
++ ],
++ "content-type": [
++ "application/json"
++ ],
++ "date": [
++ "Tue, 03 Mar 2015 21:29:55 GMT"
++ ],
++ "server": [
++ "h2o/1.0.2-alpha1"
++ ]
++ },
++ "status": {
++ "code": 200,
++ "message": "OK"
++ },
++ "url": "https://http2bin.org/get"
++ }
++ }
++ ],
++ "recorded_with": "betamax/0.4.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/httpbin_guess_auth_basic.json b/tests/cassettes/httpbin_guess_auth_basic.json
+index db72722..2daca54 100644
+--- a/tests/cassettes/httpbin_guess_auth_basic.json
++++ b/tests/cassettes/httpbin_guess_auth_basic.json
+@@ -1 +1,114 @@
+-{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate, compress"], "Accept": ["*/*"], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/basic-auth/user/passwd"}, "response": {"body": {"string": "", "encoding": null}, "headers": {"content-length": ["0"], "server": ["gunicorn/0.17.4"], "connection": ["keep-alive"], "date": ["Sat, 03 May 2014 17:23:06 GMT"], "access-control-allow-origin": ["*"], "www-authenticate": ["Basic realm=\"Fake Realm\""]}, "status": {"message": "UNAUTHORIZED", "code": 401}, "url": "http://httpbin.org/basic-auth/user/passwd"}, "recorded_at": "2014-05-03T17:23:06"}, {"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Accept-Encoding": ["gzip, deflate, compress"], "Authorization": ["Basic dXNlcjpwYXNzd2Q="], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/basic-auth/user/passwd"}, "response": {"body": {"string": "{\n \"user\": \"user\",\n \"authenticated\": true\n}", "encoding": null}, "headers": {"content-length": ["45"], "server": ["gunicorn/0.17.4"], "connection": ["keep-alive"], "date": ["Sat, 03 May 2014 17:23:06 GMT"], "access-control-allow-origin": ["*"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "http://httpbin.org/basic-auth/user/passwd"}, "recorded_at": "2014-05-03T17:23:06"}], "recorded_with": "betamax/{version}"}
+\ No newline at end of file
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2014-05-03T17:23:06",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate, compress"
++ ],
++ "User-Agent": [
++ "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"
++ ]
++ },
++ "method": "GET",
++ "uri": "http://httpbin.org/basic-auth/user/passwd"
++ },
++ "response": {
++ "body": {
++ "encoding": null,
++ "string": ""
++ },
++ "headers": {
++ "access-control-allow-origin": [
++ "*"
++ ],
++ "connection": [
++ "keep-alive"
++ ],
++ "content-length": [
++ "0"
++ ],
++ "date": [
++ "Sat, 03 May 2014 17:23:06 GMT"
++ ],
++ "server": [
++ "gunicorn/0.17.4"
++ ],
++ "www-authenticate": [
++ "Basic realm=\"Fake Realm\""
++ ]
++ },
++ "status": {
++ "code": 401,
++ "message": "UNAUTHORIZED"
++ },
++ "url": "http://httpbin.org/basic-auth/user/passwd"
++ }
++ },
++ {
++ "recorded_at": "2014-05-03T17:23:06",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate, compress"
++ ],
++ "Authorization": [
++ "Basic dXNlcjpwYXNzd2Q="
++ ],
++ "User-Agent": [
++ "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"
++ ]
++ },
++ "method": "GET",
++ "uri": "http://httpbin.org/basic-auth/user/passwd"
++ },
++ "response": {
++ "body": {
++ "encoding": null,
++ "string": "{\n \"user\": \"user\",\n \"authenticated\": true\n}"
++ },
++ "headers": {
++ "access-control-allow-origin": [
++ "*"
++ ],
++ "connection": [
++ "keep-alive"
++ ],
++ "content-length": [
++ "45"
++ ],
++ "content-type": [
++ "application/json"
++ ],
++ "date": [
++ "Sat, 03 May 2014 17:23:06 GMT"
++ ],
++ "server": [
++ "gunicorn/0.17.4"
++ ]
++ },
++ "status": {
++ "code": 200,
++ "message": "OK"
++ },
++ "url": "http://httpbin.org/basic-auth/user/passwd"
++ }
++ }
++ ],
++ "recorded_with": "betamax/{version}"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/httpbin_guess_auth_digest.json b/tests/cassettes/httpbin_guess_auth_digest.json
+index 94cf3a3..3b46fac 100644
+--- a/tests/cassettes/httpbin_guess_auth_digest.json
++++ b/tests/cassettes/httpbin_guess_auth_digest.json
+@@ -1 +1,123 @@
+-{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate, compress"], "Accept": ["*/*"], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/digest-auth/auth/user/passwd"}, "response": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"content-length": ["0"], "set-cookie": ["fake=fake_value"], "server": ["gunicorn/0.17.4"], "connection": ["keep-alive"], "date": ["Sat, 03 May 2014 17:23:07 GMT"], "access-control-allow-origin": ["*"], "content-type": ["text/html; charset=utf-8"], "www-authenticate": ["Digest qop=auth, nonce=\"713b4eb6d0ad0ac25d75b50c4d044d5e\", realm=\"me@kennethreitz.com\", opaque=\"d0033bc1960ca78a2fc4497c1e8a8cbd\""]}, "status": {"message": "UNAUTHORIZED", "code": 401}, "url": "http://httpbin.org/digest-auth/auth/user/passwd"}, "recorded_at": "2014-05-03T17:23:07"}, {"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept": ["*/*"], "Cookie": ["fake=fake_value"], "Accept-Encoding": ["gzip, deflate, compress"], "Authorization": ["Digest username=\"user\", realm=\"me@kennethreitz.com\", nonce=\"713b4eb6d0ad0ac25d75b50c4d044d5e\", uri=\"/digest-auth/auth/user/passwd\", response=\"30276b25ef0031e65e3bccc719031388\", opaque=\"d0033bc1960ca78a2fc4497c1e8a8cbd\", qop=\"auth\", nc=00000001, cnonce=\"e94e00be64d66bcb\""], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/digest-auth/auth/user/passwd"}, "response": {"body": {"string": "{\n \"user\": \"user\",\n \"authenticated\": true\n}", "encoding": null}, "headers": {"content-length": ["45"], "server": ["gunicorn/0.17.4"], "connection": ["keep-alive"], "date": ["Sat, 03 May 2014 17:23:07 GMT"], "access-control-allow-origin": ["*"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "http://httpbin.org/digest-auth/auth/user/passwd"}, "recorded_at": "2014-05-03T17:23:07"}], "recorded_with": "betamax/{version}"}
+\ No newline at end of file
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2014-05-03T17:23:07",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate, compress"
++ ],
++ "User-Agent": [
++ "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"
++ ]
++ },
++ "method": "GET",
++ "uri": "http://httpbin.org/digest-auth/auth/user/passwd"
++ },
++ "response": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "access-control-allow-origin": [
++ "*"
++ ],
++ "connection": [
++ "keep-alive"
++ ],
++ "content-length": [
++ "0"
++ ],
++ "content-type": [
++ "text/html; charset=utf-8"
++ ],
++ "date": [
++ "Sat, 03 May 2014 17:23:07 GMT"
++ ],
++ "server": [
++ "gunicorn/0.17.4"
++ ],
++ "set-cookie": [
++ "fake=fake_value"
++ ],
++ "www-authenticate": [
++ "Digest qop=auth, nonce=\"713b4eb6d0ad0ac25d75b50c4d044d5e\", realm=\"me@kennethreitz.com\", opaque=\"d0033bc1960ca78a2fc4497c1e8a8cbd\""
++ ]
++ },
++ "status": {
++ "code": 401,
++ "message": "UNAUTHORIZED"
++ },
++ "url": "http://httpbin.org/digest-auth/auth/user/passwd"
++ }
++ },
++ {
++ "recorded_at": "2014-05-03T17:23:07",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate, compress"
++ ],
++ "Authorization": [
++ "Digest username=\"user\", realm=\"me@kennethreitz.com\", nonce=\"713b4eb6d0ad0ac25d75b50c4d044d5e\", uri=\"/digest-auth/auth/user/passwd\", response=\"30276b25ef0031e65e3bccc719031388\", opaque=\"d0033bc1960ca78a2fc4497c1e8a8cbd\", qop=\"auth\", nc=00000001, cnonce=\"e94e00be64d66bcb\""
++ ],
++ "Cookie": [
++ "fake=fake_value"
++ ],
++ "User-Agent": [
++ "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"
++ ]
++ },
++ "method": "GET",
++ "uri": "http://httpbin.org/digest-auth/auth/user/passwd"
++ },
++ "response": {
++ "body": {
++ "encoding": null,
++ "string": "{\n \"user\": \"user\",\n \"authenticated\": true\n}"
++ },
++ "headers": {
++ "access-control-allow-origin": [
++ "*"
++ ],
++ "connection": [
++ "keep-alive"
++ ],
++ "content-length": [
++ "45"
++ ],
++ "content-type": [
++ "application/json"
++ ],
++ "date": [
++ "Sat, 03 May 2014 17:23:07 GMT"
++ ],
++ "server": [
++ "gunicorn/0.17.4"
++ ]
++ },
++ "status": {
++ "code": 200,
++ "message": "OK"
++ },
++ "url": "http://httpbin.org/digest-auth/auth/user/passwd"
++ }
++ }
++ ],
++ "recorded_with": "betamax/{version}"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/httpbin_guess_auth_none.json b/tests/cassettes/httpbin_guess_auth_none.json
+index 2ebbb0f..4ddfbc5 100644
+--- a/tests/cassettes/httpbin_guess_auth_none.json
++++ b/tests/cassettes/httpbin_guess_auth_none.json
+@@ -1 +1,58 @@
+-{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate, compress"], "Accept": ["*/*"], "User-Agent": ["python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"]}, "method": "GET", "uri": "http://httpbin.org/get?a=1"}, "response": {"body": {"string": "{\n \"args\": {\n \"a\": \"1\"\n },\n \"url\": \"http://httpbin.org/get?a=1\",\n \"headers\": {\n \"Connection\": \"close\",\n \"Host\": \"httpbin.org\",\n \"Accept-Encoding\": \"gzip, deflate, compress\",\n \"X-Request-Id\": \"f9f71f12-5705-4a0f-85d4-3d63f9140b1f\",\n \"User-Agent\": \"python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH\",\n \"Accept\": \"*/*\"\n },\n \"origin\": \"62.47.252.115\"\n}", "encoding": null}, "headers": {"content-length": ["381"], "server": ["gunicorn/0.17.4"], "connection": ["keep-alive"], "date": ["Sat, 03 May 2014 17:23:07 GMT"], "access-control-allow-origin": ["*"], "content-type": ["application/json"]}, "status": {"message": "OK", "code": 200}, "url": "http://httpbin.org/get?a=1"}, "recorded_at": "2014-05-03T17:23:07"}], "recorded_with": "betamax/{version}"}
+\ No newline at end of file
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2014-05-03T17:23:07",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate, compress"
++ ],
++ "User-Agent": [
++ "python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH"
++ ]
++ },
++ "method": "GET",
++ "uri": "http://httpbin.org/get?a=1"
++ },
++ "response": {
++ "body": {
++ "encoding": null,
++ "string": "{\n \"args\": {\n \"a\": \"1\"\n },\n \"url\": \"http://httpbin.org/get?a=1\",\n \"headers\": {\n \"Connection\": \"close\",\n \"Host\": \"httpbin.org\",\n \"Accept-Encoding\": \"gzip, deflate, compress\",\n \"X-Request-Id\": \"f9f71f12-5705-4a0f-85d4-3d63f9140b1f\",\n \"User-Agent\": \"python-requests/2.2.1 CPython/2.7.6 Linux/3.14.1-1-ARCH\",\n \"Accept\": \"*/*\"\n },\n \"origin\": \"62.47.252.115\"\n}"
++ },
++ "headers": {
++ "access-control-allow-origin": [
++ "*"
++ ],
++ "connection": [
++ "keep-alive"
++ ],
++ "content-length": [
++ "381"
++ ],
++ "content-type": [
++ "application/json"
++ ],
++ "date": [
++ "Sat, 03 May 2014 17:23:07 GMT"
++ ],
++ "server": [
++ "gunicorn/0.17.4"
++ ]
++ },
++ "status": {
++ "code": 200,
++ "message": "OK"
++ },
++ "url": "http://httpbin.org/get?a=1"
++ }
++ }
++ ],
++ "recorded_with": "betamax/{version}"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/klevas_vu_lt_ssl3.json b/tests/cassettes/klevas_vu_lt_ssl3.json
+index 3c667ba..1608e48 100644
+--- a/tests/cassettes/klevas_vu_lt_ssl3.json
++++ b/tests/cassettes/klevas_vu_lt_ssl3.json
+@@ -1 +1,35 @@
+-{"http_interactions": [{"request": {"body": "", "headers": {"Accept-Encoding": "gzip, deflate, compress", "Accept": "*/*", "User-Agent": "python-requests/2.1.0 CPython/2.7.3 Linux/3.2.29"}, "method": "GET", "uri": "https://klevas.vu.lt/"}, "response": {"body": {"string": "<html>\n<title>\nKlevas\n</title>\n<head>\n<script language=\"javascript\" type=\"text/javascript\">\n <!--\n window.location=\"https://klevas.vu.lt/pls/klevas/logon\";\n // -->\n </script>\n</head>\n</html>\n\n", "encoding": "ISO-8859-1"}, "headers": {"content-length": "204", "accept-ranges": "bytes", "server": "Oracle-Application-Server-10g/10.1.3.1.0 Oracle-HTTP-Server", "last-modified": "Wed, 13 Apr 2011 05:00:23 GMT", "etag": "\"7f9b-cc-4da52de7\"", "date": "Sun, 05 Jan 2014 01:35:40 GMT", "content-type": "text/html"}, "url": "https://klevas.vu.lt/", "status_code": 200}, "recorded_at": "2014-01-05T01:34:40"}], "recorded_with": "betamax"}
+\ No newline at end of file
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2014-01-05T01:34:40",
++ "request": {
++ "body": "",
++ "headers": {
++ "Accept": "*/*",
++ "Accept-Encoding": "gzip, deflate, compress",
++ "User-Agent": "python-requests/2.1.0 CPython/2.7.3 Linux/3.2.29"
++ },
++ "method": "GET",
++ "uri": "https://klevas.vu.lt/"
++ },
++ "response": {
++ "body": {
++ "encoding": "ISO-8859-1",
++ "string": "<html>\n<title>\nKlevas\n</title>\n<head>\n<script language=\"javascript\" type=\"text/javascript\">\n <!--\n window.location=\"https://klevas.vu.lt/pls/klevas/logon\";\n // -->\n </script>\n</head>\n</html>\n\n"
++ },
++ "headers": {
++ "accept-ranges": "bytes",
++ "content-length": "204",
++ "content-type": "text/html",
++ "date": "Sun, 05 Jan 2014 01:35:40 GMT",
++ "etag": "\"7f9b-cc-4da52de7\"",
++ "last-modified": "Wed, 13 Apr 2011 05:00:23 GMT",
++ "server": "Oracle-Application-Server-10g/10.1.3.1.0 Oracle-HTTP-Server"
++ },
++ "status_code": 200,
++ "url": "https://klevas.vu.lt/"
++ }
++ }
++ ],
++ "recorded_with": "betamax"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/redirect_request_for_dump_all.json b/tests/cassettes/redirect_request_for_dump_all.json
+index 38b037d..f713ff3 100644
+--- a/tests/cassettes/redirect_request_for_dump_all.json
++++ b/tests/cassettes/redirect_request_for_dump_all.json
+@@ -1 +1,232 @@
+-{"recorded_with": "betamax/0.5.1", "http_interactions": [{"recorded_at": "2015-11-14T22:53:20", "request": {"uri": "https://httpbin.org/redirect/5", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": "keep-alive", "Accept": "*/*", "User-Agent": "python-requests/2.8.1", "Accept-Encoding": "gzip, deflate"}}, "response": {"url": "https://httpbin.org/redirect/5", "status": {"code": 302, "message": "FOUND"}, "body": {"string": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to target URL: <a href=\"/relative-redirect/4\">/relative-redirect/4</a>. If not click the link.", "encoding": "utf-8"}, "headers": {"Location": "/relative-redirect/4", "Access-Control-Allow-Credentials": "true", "Server": "nginx", "Date": "Sat, 14 Nov 2015 22:53:18 GMT", "Content-Length": "247", "Connection": "keep-alive", "Access-Control-Allow-Origin": "*", "Content-Type": "text/html; charset=utf-8"}}}, {"recorded_at": "2015-11-14T22:53:20", "request": {"uri": "https://httpbin.org/relative-redirect/4", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": "keep-alive", "Accept": "*/*", "User-Agent": "python-requests/2.8.1", "Accept-Encoding": "gzip, deflate"}}, "response": {"url": "https://httpbin.org/relative-redirect/4", "status": {"code": 302, "message": "FOUND"}, "body": {"string": "", "encoding": "utf-8"}, "headers": {"Location": "/relative-redirect/3", "Access-Control-Allow-Credentials": "true", "Server": "nginx", "Date": "Sat, 14 Nov 2015 22:53:18 GMT", "Content-Length": "0", "Connection": "keep-alive", "Access-Control-Allow-Origin": "*", "Content-Type": "text/html; charset=utf-8"}}}, {"recorded_at": "2015-11-14T22:53:20", "request": {"uri": "https://httpbin.org/relative-redirect/3", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": "keep-alive", "Accept": "*/*", "User-Agent": "python-requests/2.8.1", "Accept-Encoding": "gzip, deflate"}}, "response": {"url": "https://httpbin.org/relative-redirect/3", "status": {"code": 302, "message": "FOUND"}, "body": {"string": "", "encoding": "utf-8"}, "headers": {"Location": "/relative-redirect/2", "Access-Control-Allow-Credentials": "true", "Server": "nginx", "Date": "Sat, 14 Nov 2015 22:53:18 GMT", "Content-Length": "0", "Connection": "keep-alive", "Access-Control-Allow-Origin": "*", "Content-Type": "text/html; charset=utf-8"}}}, {"recorded_at": "2015-11-14T22:53:20", "request": {"uri": "https://httpbin.org/relative-redirect/2", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": "keep-alive", "Accept": "*/*", "User-Agent": "python-requests/2.8.1", "Accept-Encoding": "gzip, deflate"}}, "response": {"url": "https://httpbin.org/relative-redirect/2", "status": {"code": 302, "message": "FOUND"}, "body": {"string": "", "encoding": "utf-8"}, "headers": {"Location": "/relative-redirect/1", "Access-Control-Allow-Credentials": "true", "Server": "nginx", "Date": "Sat, 14 Nov 2015 22:53:18 GMT", "Content-Length": "0", "Connection": "keep-alive", "Access-Control-Allow-Origin": "*", "Content-Type": "text/html; charset=utf-8"}}}, {"recorded_at": "2015-11-14T22:53:20", "request": {"uri": "https://httpbin.org/relative-redirect/1", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": "keep-alive", "Accept": "*/*", "User-Agent": "python-requests/2.8.1", "Accept-Encoding": "gzip, deflate"}}, "response": {"url": "https://httpbin.org/relative-redirect/1", "status": {"code": 302, "message": "FOUND"}, "body": {"string": "", "encoding": "utf-8"}, "headers": {"Location": "/get", "Access-Control-Allow-Credentials": "true", "Server": "nginx", "Date": "Sat, 14 Nov 2015 22:53:18 GMT", "Content-Length": "0", "Connection": "keep-alive", "Access-Control-Allow-Origin": "*", "Content-Type": "text/html; charset=utf-8"}}}, {"recorded_at": "2015-11-14T22:53:20", "request": {"uri": "https://httpbin.org/get", "method": "GET", "body": {"string": "", "encoding": "utf-8"}, "headers": {"Connection": "keep-alive", "Accept": "*/*", "User-Agent": "python-requests/2.8.1", "Accept-Encoding": "gzip, deflate"}}, "response": {"url": "https://httpbin.org/get", "status": {"code": 200, "message": "OK"}, "body": {"string": "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\": \"gzip, deflate\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"python-requests/2.8.1\"\n }, \n \"origin\": \"<IPADDR>\", \n \"url\": \"https://httpbin.org/get\"\n}\n", "encoding": null}, "headers": {"Access-Control-Allow-Credentials": "true", "Server": "nginx", "Date": "Sat, 14 Nov 2015 22:53:18 GMT", "Content-Length": "239", "Connection": "keep-alive", "Access-Control-Allow-Origin": "*", "Content-Type": "application/json"}}}]}
+\ No newline at end of file
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2015-11-14T22:53:20",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": "*/*",
++ "Accept-Encoding": "gzip, deflate",
++ "Connection": "keep-alive",
++ "User-Agent": "python-requests/2.8.1"
++ },
++ "method": "GET",
++ "uri": "https://httpbin.org/redirect/5"
++ },
++ "response": {
++ "body": {
++ "encoding": "utf-8",
++ "string": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to target URL: <a href=\"/relative-redirect/4\">/relative-redirect/4</a>. If not click the link."
++ },
++ "headers": {
++ "Access-Control-Allow-Credentials": "true",
++ "Access-Control-Allow-Origin": "*",
++ "Connection": "keep-alive",
++ "Content-Length": "247",
++ "Content-Type": "text/html; charset=utf-8",
++ "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
++ "Location": "/relative-redirect/4",
++ "Server": "nginx"
++ },
++ "status": {
++ "code": 302,
++ "message": "FOUND"
++ },
++ "url": "https://httpbin.org/redirect/5"
++ }
++ },
++ {
++ "recorded_at": "2015-11-14T22:53:20",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": "*/*",
++ "Accept-Encoding": "gzip, deflate",
++ "Connection": "keep-alive",
++ "User-Agent": "python-requests/2.8.1"
++ },
++ "method": "GET",
++ "uri": "https://httpbin.org/relative-redirect/4"
++ },
++ "response": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Access-Control-Allow-Credentials": "true",
++ "Access-Control-Allow-Origin": "*",
++ "Connection": "keep-alive",
++ "Content-Length": "0",
++ "Content-Type": "text/html; charset=utf-8",
++ "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
++ "Location": "/relative-redirect/3",
++ "Server": "nginx"
++ },
++ "status": {
++ "code": 302,
++ "message": "FOUND"
++ },
++ "url": "https://httpbin.org/relative-redirect/4"
++ }
++ },
++ {
++ "recorded_at": "2015-11-14T22:53:20",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": "*/*",
++ "Accept-Encoding": "gzip, deflate",
++ "Connection": "keep-alive",
++ "User-Agent": "python-requests/2.8.1"
++ },
++ "method": "GET",
++ "uri": "https://httpbin.org/relative-redirect/3"
++ },
++ "response": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Access-Control-Allow-Credentials": "true",
++ "Access-Control-Allow-Origin": "*",
++ "Connection": "keep-alive",
++ "Content-Length": "0",
++ "Content-Type": "text/html; charset=utf-8",
++ "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
++ "Location": "/relative-redirect/2",
++ "Server": "nginx"
++ },
++ "status": {
++ "code": 302,
++ "message": "FOUND"
++ },
++ "url": "https://httpbin.org/relative-redirect/3"
++ }
++ },
++ {
++ "recorded_at": "2015-11-14T22:53:20",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": "*/*",
++ "Accept-Encoding": "gzip, deflate",
++ "Connection": "keep-alive",
++ "User-Agent": "python-requests/2.8.1"
++ },
++ "method": "GET",
++ "uri": "https://httpbin.org/relative-redirect/2"
++ },
++ "response": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Access-Control-Allow-Credentials": "true",
++ "Access-Control-Allow-Origin": "*",
++ "Connection": "keep-alive",
++ "Content-Length": "0",
++ "Content-Type": "text/html; charset=utf-8",
++ "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
++ "Location": "/relative-redirect/1",
++ "Server": "nginx"
++ },
++ "status": {
++ "code": 302,
++ "message": "FOUND"
++ },
++ "url": "https://httpbin.org/relative-redirect/2"
++ }
++ },
++ {
++ "recorded_at": "2015-11-14T22:53:20",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": "*/*",
++ "Accept-Encoding": "gzip, deflate",
++ "Connection": "keep-alive",
++ "User-Agent": "python-requests/2.8.1"
++ },
++ "method": "GET",
++ "uri": "https://httpbin.org/relative-redirect/1"
++ },
++ "response": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Access-Control-Allow-Credentials": "true",
++ "Access-Control-Allow-Origin": "*",
++ "Connection": "keep-alive",
++ "Content-Length": "0",
++ "Content-Type": "text/html; charset=utf-8",
++ "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
++ "Location": "/get",
++ "Server": "nginx"
++ },
++ "status": {
++ "code": 302,
++ "message": "FOUND"
++ },
++ "url": "https://httpbin.org/relative-redirect/1"
++ }
++ },
++ {
++ "recorded_at": "2015-11-14T22:53:20",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": "*/*",
++ "Accept-Encoding": "gzip, deflate",
++ "Connection": "keep-alive",
++ "User-Agent": "python-requests/2.8.1"
++ },
++ "method": "GET",
++ "uri": "https://httpbin.org/get"
++ },
++ "response": {
++ "body": {
++ "encoding": null,
++ "string": "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\": \"gzip, deflate\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"python-requests/2.8.1\"\n }, \n \"origin\": \"<IPADDR>\", \n \"url\": \"https://httpbin.org/get\"\n}\n"
++ },
++ "headers": {
++ "Access-Control-Allow-Credentials": "true",
++ "Access-Control-Allow-Origin": "*",
++ "Connection": "keep-alive",
++ "Content-Length": "239",
++ "Content-Type": "application/json",
++ "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
++ "Server": "nginx"
++ },
++ "status": {
++ "code": 200,
++ "message": "OK"
++ },
++ "url": "https://httpbin.org/get"
++ }
++ }
++ ],
++ "recorded_with": "betamax/0.5.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/simple_get_request.json b/tests/cassettes/simple_get_request.json
+index a61fb5f..68378cd 100644
+--- a/tests/cassettes/simple_get_request.json
++++ b/tests/cassettes/simple_get_request.json
+@@ -1 +1,64 @@
+-{"recorded_with": "betamax/0.5.1", "http_interactions": [{"request": {"body": {"encoding": "utf-8", "string": ""}, "uri": "https://httpbin.org/get", "headers": {"Connection": ["keep-alive"], "User-Agent": ["python-requests/2.8.1"], "Accept": ["*/*"], "Accept-Encoding": ["gzip, deflate"]}, "method": "GET"}, "recorded_at": "2015-11-14T22:33:32", "response": {"status": {"code": 200, "message": "OK"}, "url": "https://httpbin.org/get", "body": {"encoding": null, "string": "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\": \"gzip, deflate\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"python-requests/2.8.1\"\n }, \n \"origin\": \"<IPADDR>\", \n \"url\": \"https://httpbin.org/get\"\n}\n"}, "headers": {"Content-Type": ["application/json"], "Date": ["Sat, 14 Nov 2015 22:33:30 GMT"], "Connection": ["keep-alive"], "Server": ["nginx"], "Access-Control-Allow-Credentials": ["true"], "Content-Length": ["239"], "Access-Control-Allow-Origin": ["*"]}}}]}
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2015-11-14T22:33:32",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.8.1"
++ ]
++ },
++ "method": "GET",
++ "uri": "https://httpbin.org/get"
++ },
++ "response": {
++ "body": {
++ "encoding": null,
++ "string": "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\": \"gzip, deflate\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"python-requests/2.8.1\"\n }, \n \"origin\": \"<IPADDR>\", \n \"url\": \"https://httpbin.org/get\"\n}\n"
++ },
++ "headers": {
++ "Access-Control-Allow-Credentials": [
++ "true"
++ ],
++ "Access-Control-Allow-Origin": [
++ "*"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "Content-Length": [
++ "239"
++ ],
++ "Content-Type": [
++ "application/json"
++ ],
++ "Date": [
++ "Sat, 14 Nov 2015 22:33:30 GMT"
++ ],
++ "Server": [
++ "nginx"
++ ]
++ },
++ "status": {
++ "code": 200,
++ "message": "OK"
++ },
++ "url": "https://httpbin.org/get"
++ }
++ }
++ ],
++ "recorded_with": "betamax/0.5.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/stream_response_to_file.json b/tests/cassettes/stream_response_to_file.json
+index 9807e41..ff407da 100644
+--- a/tests/cassettes/stream_response_to_file.json
++++ b/tests/cassettes/stream_response_to_file.json
+@@ -1 +1,180 @@
+-{"recorded_with": "betamax/0.4.1", "http_interactions": [{"request": {"uri": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944", "method": "GET", "headers": {"Accept": ["application/octet-stream"], "Accept-Encoding": ["gzip, deflate"], "Connection": ["keep-alive"], "User-Agent": ["python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"]}, "body": {"base64_string": "", "encoding": "utf-8"}}, "response": {"status": {"code": 302, "message": "Found"}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944", "headers": {"access-control-allow-credentials": ["true"], "x-xss-protection": ["1; mode=block"], "vary": ["Accept-Encoding"], "location": ["https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"], "x-content-type-options": ["nosniff"], "content-security-policy": ["default-src 'none'"], "x-ratelimit-limit": ["60"], "content-length": ["0"], "status": ["302 Found"], "x-frame-options": ["deny"], "x-served-by": ["8dd185e423974a7e13abbbe6e060031e"], "server": ["GitHub.com"], "access-control-allow-origin": ["*"], "strict-transport-security": ["max-age=31536000; includeSubdomains; preload"], "x-github-request-id": ["48A0C951:54E7:48B5311:55019319"], "date": ["Thu, 12 Mar 2015 13:22:33 GMT"], "access-control-expose-headers": ["ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"], "x-ratelimit-remaining": ["58"], "content-type": ["text/html;charset=utf-8"], "x-ratelimit-reset": ["1426170017"]}, "body": {"base64_string": "", "encoding": "utf-8"}}, "recorded_at": "2015-03-12T13:22:33"}, {"request": {"uri": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D", "method": "GET", "headers": {"Accept": ["application/octet-stream"], "Accept-Encoding": ["gzip, deflate"], "Connection": ["keep-alive"], "User-Agent": ["python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"]}, "body": {"base64_string": "", "encoding": "utf-8"}}, "response": {"status": {"code": 200, "message": "OK"}, "url": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D", "headers": {"accept-ranges": ["bytes"], "content-disposition": ["attachment; filename=github3.py-0.7.1-py2.py3-none-any.whl"], "x-amz-id-2": ["9+TuHhbd7y2BUJaEV+mFpaDgjl1g9uSAPiZxwc6b2cYydhlhZSyKSuB7PQyiPBPD"], "content-length": ["117140"], "x-amz-meta-surrogate-key": ["repository-3710711 user-240830"], "x-amz-request-id": ["4B4BFE6BF5135B8D"], "last-modified": ["Fri, 15 Nov 2013 22:35:23 GMT"], "x-amz-meta-surrogate-control": ["max-age=31557600"], "etag": ["\"6550854f02f7bf10b944070b84f38313\""], "date": ["Thu, 12 Mar 2015 13:22:35 GMT"], "cache-control": ["max-age=31557600"], "content-type": ["application/octet-stream"], "server": ["AmazonS3"]}, "body": {"base64_string": "UEsDBBQAAAAIADSXPkONiblWuBEAAIKCAAAUAAAAdGVzdHMvdGVzdF9naXRodWIucHntHf1v27j19/wVQu8H2Zkr22kPK4JLcbdDbyu23R1yLXBYEBiyRctqZEkTpaRpkP99fCQlkRQlUbLsbtgZyIct8n2/x0fykQ72SZxmFn7EZ8EW/jj3KMVBHK2CaBtb31mTVzNrMb08s8grYI3zKMgyhLMLy8XlmzMUYqRtdsbf+0G2y9evzrZpvLf28eauaJi42WY3s/5JPmIPoRd28iwIcdFm8hcXox/Jz8wKY9ebnp2dbUIXY+sDafvXIPtbvi6bcGo9tKWQCCdBNsEo3PIH8PKtq4Igh3e3t3Fszyx77ab2tGxIcCCCP0VJOvGnDoo8/ED6Tewb0vz2LWnZBjOL71B0RSEbgHxaXH5+fms72zjdu9kk8MjjKUdQcrOJowx9zlZ7N3J9lKqMASSViikoyt9VjSi1O2e1Qp+DbLUidIPwJ1OpASczwEGEMzfaoIlPtCSDFrmv4Dms62rjhiHyJioHbp7t4jT44mbEzlT64a2TIpzEEUYTW2oryJA281E2sXdZluDL+dxNAocR52zi/VzqiOfLhdqZ0XjtBhjhiczVuzSN0xnH4UiQZtZyUdMkp/nfOeHOYUwTsVk/ucQlzmSsYewHkSBol8heh2eiQSNowq0UAd2w84PYWeEUfG3FYIAsGvWBeuliZl0slgKmTZwgTLi5sem/S3Al+t+FfasIoeIVTX6OI+LT7DeDoVAfxaohNciNUJgTHgFvQrh9iFPPrsMcLst2ZX9Ic1XXRSMiQUT8lXlYb3PQieiq4EoJDTsEmu7hXlSLiz5ulSRhsOFOtXXv0Crw5jTK4bkthQ/6st3NBmG8oi1UDySRbEv4fZK6Ed2l7h7bl9aTvQkDFJH47ZF3jP3iI4w2Kcr4x88zGQIIgDwiAZ3RBxZB/+W9plX75zOten1HJ0rANa0c28BKOTBQf8lLM1k9SGmVa5e/E2xuhlZ+gGvDomIe0KRwdGmYK0gTINkewps0SHhwsLdBiHCdKXE4qRwPIGASfXHW399UvgKM865QRtvUONO6ZFBjlyEQvZJaRo1TIBOeDBsumvCWQY7kDzRf0cj4MMw0haBJmROvP6FNpgyPHDcOsjh9tGlyAe/l9AI+IaiyPI1W926YIyE5or2d6xLGpBY4IMebMA6nxUAsZyfG4vkQZCES07S6IQaVIVIg2HkPfw43xTv02GGIpIXeDI3TkwqVbI3fiNK6q0kLSGtszvm9O8yOtO6kp8T+2d2DP9p/J/Jo1dVdpSvQNHZIj8MVBcbSoSluT3LSo+MwrXFIodvXgs+0MJjOGv3kAD49FCITg2QmcbF43RUWm4MEzxbKWAEmToME+UeOEeSDphBR6nbCQgEFoo8E8mgpMEpS6FIaHWglIzcBqph6b31s4zCMH4x1ITVI8ub8DOQ2Z8CDyJ/jwN+790Ga44vXTemX7bmZW6RSQ6MQQwkpv4yxI92VpMxl0pBmadsq6GrqNsqH+iRCfXJlmtSwmWeLv3OGKBHEuNpzIkN+ssCP4hStMrRPQhKBOrgrmvWZX5dI5kVvPP/1keSokchu8awKiRri7Ho/LqaiiUNklWZ8leTcSR5vNrF32zfvraPGhoLBB0rG0ALq5BFzCPsbQIBXZQgYFmLa+FNCDPXpmqcbBw6RVhI+9NDa44bErkH06ExcWsCXBPZVCFhwSmaHx1EHh87esLT5AIVwaEQdUjLdpJVmuRVMC4nm2KopUCikDhsJAF6+hmns+niqYggStoQyksJKok111izPiv9jaq3CotLbU2F95vp9Bm+ae0v507xQQvKoXepiU8f5UhPsS8bVhQOWTErZp3liPfIkXJxzN8619ZPs5WHTayNVm82l+3oj6aOmaP28j867R94TkIwG+H65rNvJEAesJx18StM6qTbzxAylK4KeTna78ipuNrTTFYTpvo4JFhvU0zKY0jh54kFWydaRr56eBdVCX2LLEfqcFQJQ6J62Ts1JE5PZeZvAvrI0yISJcEJme8sFvJ6nPWRDu16xjqPIifWkzZ3As95yoswF2U1zQt4lrk/JnprIp+jARPR8bHOo+w91wA7/4eF3kMVQ+GM6DiO4h0GwEPOR/B5H04yA02m6L/2KjqWN6Z5broM0LmM0UD1bER6ajtaZHHVwJJC1hiCLtdUcoe2YG+iUALR3g7BLn6zRIa475yBOoUWGakztUYg69XHp1dVGH9wwwdm31tWVZfupu92SBDkO92RKHt9/78NDkJA9RG/3KMo69QaNhqqNYeivMdpPKyxGcquN0zaVkbMuzjv4M8S62QrICUYmecpVoj2JvZfYBDDm0zHKOi+1gv/Vciv4rH27A4YUPg1jwORpWK6zhUoxylp4VzFX3j6gCZ0a/L22r9I1hpdt1KgAr/t25jrZue9mp8/KpmxyIwtD51qdS7XHcS2C9oSuRbANHE3+N9yQrhCP7obH8iug9tR+JdtbP0ehG2JmG3VjOQlF2d9BfJ3QGfmN5tG7PspolUE1CW3uzChrpWVnQEvnXmjv1V0gLoqzYFuUHHZoX2w71AokfCeJjRJGFZRUWNiq2myXItfT6VcWYaueGZBK2VJX5wN92tMEtZNvwhGZd4NqhIl3B+FUkWMgJ/9kwSYgwwmEo75kSL2vehAl23Wc+mz7osuoi/2LQdZMsOBi4yJ5nDOEfVd/Bth0xR0Zkkv8ndtRgc58BUmJoNrM+KAtB3gxMdDymG0QEiqImdikaeBHiFbuEkQZLB3ZmzDG7KPQXaMQKpftde7bclEye9k4TjPaiRaG0V5ekJJ0BgIWxbBp6MiXbe2LxfLi5eLblxeLDxevLpeLy4s//8t+7tQn+1Px/8lc0DPr/Jx3bxP5p1F2eSgdx3eLk/kBQ2S4CytIs6YbLpPp9A/Lbrdsc1lWZj2e6UIOeQL7pRn1yYxYYGoESxZF9Ic5j2DOokCPYdOw+3ECmx5acWEbrdadompCZxCGLyadetlFTdmiMuS5ZJVoOSw9OmZ+RAVdDyW/ZXHynpDJdlFksbayItQaaW0Q6jSMjlIMD6eA4iTzPUA0QhylIpmOVboBE4UOAZMmhy2tUCbplKS9IFaXmOKy9FLgGD53fkl9N+q1cWduE5zWQ1VF6R+B8HpcPmalTVmbeIocg+IZwSuKMp4x6nSM0amLeqMVCWmXL7LHhGYYsIai5iVwCNMWVdFEMetc9r1iPQetZND84xTGqGQHxqZ5oMQE/moj7kFibCX6BaSgLy6tFzwFffE8jrR6Z5Z6zoG6q5K2aWvuM2aJFIWxAuwHGpupzNsj0rAgahxYvpaUjU4rHD64cDSDhpcBY0PB1THlCK8hm5X1rcqDNyqHRIm6RnrKtjYUdsyJuqXdJXHFcsXjFUe3XxHZwLnDEDuWePzDmhutWbNoAC+7SW+D5P8VLZ7Zjs7IfW5X9Stx9AUYvrMiaTpc/OWwCssrS9tXj4Vfc/WTe4d+gULKD8q1JLxoU8W0Q64Hmqda/aHhpidOZUGVTXFZCipG1zfWx+ghhVvHIiqfmRXFmYWijKRn4aOF8xRZu/jBymJ2/1i2C7As0L2b3nnxQ+etVOlmF9zXzssSTTabZwG64Ri2FxDHkiwAjmVfPdWMyYbbvyBx/YldV7aPPZrb+ts9vOXXg8Enkitstr7sDdVSZON5pVIaUscCMUfYjGUqHttdF0Jb0ePmPRNkI8nOU/dBJ90bdsL9lkiZ0q7acMkm54yA0Y0G3RNFFR47OgdGq+Cs3xZUWSDK3A7rgyZ9Djop7eFt5YwUX9voAw1m1Dx7JpLxJos3blea3uBKrXvaDHBjJCsQH25/FS/CUo3BKtngDXqhJ3lQaUnCb+ua1xVH+oy34JSQIS9fE1DrfG1yp1jtzoo2ByZ/BU7WsfcI98iR5uQ5DW+zcsheI90yO2uaxUmwgbYFGgHFNo7nazfltdjzJMe7ZkDgmmt3cyfCColJhTvCxRxYsae32ij+NPgCDVHAcKlT8dPvAK+kJgFIr1vL2kDyOzILqaDP7j4JEa29hzu/4rgnLq8Y+m4mdzevL29n1v3U2sapdUf+s4KIWsOtEbvn51792PdqZt09uMT4C18SK01X8KDGNxstADfrqT5n9nnFnxaDi/FY4d3Y/MI3OiDx/yXrd9wkQZE3YdbIW8zKtvUyjCZx9BHD6aQgBBV6To9S0hFUoGmfsKrZTNTtIAobjIABz5dvBCxJWlwNNGAydLLT2Ylw4ZQk0bbtwZm1fNO6FpgI91BR0Ti/kt/XDLQalLoUXcnCZEZescdP/XHmBCgt1+7RPuph6ZYINMSUxH3WbmJbt2lbVDDq+VKMIP8x28YPke9uHlnbPk7H+s2fFs/zpyX5uSA/r8jP62et8z19+1zedVzs5dMoB5SqUwtttYUETrJuodqDuwOurcqLCzRPwr2jz8JKOyOrUqssxnYPK2nooLzkoKK0de+e4r5Z3Fa2wQTv/IP+0d9dSG+bLrtKqbH9HetovdcpvM/ehShFm2IoTthefH2hkrR0mM+YbG1xl9HdYdLmMYqrlO6g8RaGobh0Q/EUufCjUT/VLQCibvjVuqEb+Xn1iXI1QF1dfF+oRzBrMVqIa3qbLTrqTfZaFrgwBkAfuGomSYN74J1OxMsH/FNjUzcVAd8Yg5UE+R758RDEqYfSARiarUHQvJ2wu9hY4VxlI0v1qggzWitwyx7XOrTYLS/LA9pwjUhqyN1xYQRLL9TM6DiGlkX4ZrFufLugEMtqx68obM4akNEQo01uzeAxmm0uHDlGF0vnDcnMkFSEslgTF2NcvXaz6KM5bwjtm+OwfLpPjMNFR30c/qgRaovNmfMyOKD2QTGa6xgmQCY0GSYrBmTwmPkpDqAkui8dTPy887FEJUWavhRK0cGEHjV40MslzIIHu4fiVNGDYZu1XnkxlSNEzeIZc60QOsKFUagwlLf4RQiKwPkmIZkKer8Lr2rh63flVVOD8kUL5wCxc7uTWeGN8GUT9JYR6EuiXc/e1coeh7C81YiAllWRsBDVVr1yl25SuXeIRlTrB59eHaLjUwCSu51c8q3WGxvAvqRgGZW5W9vTVaBrV1l6w68EQKLioB2ErluviztQu1dqpBX7Ua6/Btx8/bv8Bqk+6/ZUKMb3bfL2ZutKZo5Z7K4cRzPSlae6paCvorOC54MUVwquj/bKTiOqMI9M7pTXa5Ddb29647O+qqYpBR1ne6zgrthk6qWkUjRG2ilbt3LUrY6hgc5EGUWsM1CFgTsdoJVDAx8XUw/n4T1G9ZyDwp+Rvroi4Im1NkboE8XWT39HCX90VkHzFq0Sa7ywzdCJ/d6NrB/JFIJMH6gg+Jb292V6TD57eHhw1gRC8Z78SdzoUbMwY4cxLJXAHjQINZBC1TiVlM1QqjpKAEEFwoEk3mWN1AEVmfovYKHAEk+FVbsSS2MLgtLOQSN1wLwDJZZt3jU2ISQ0tIBHrBXfAFzR1QuOUjGkJgtSbuI66DSG0RdCUEqUQeiwW1SNKO1/3k2k9wAKKxVk2zdGeija9VeGG6JPbuSlsR/v0RdRHXk1g2YKaG6apY+1Hf10klfEoM8blGTWxyjYxB56F9HfEIvlbhTdlk7Tr5GfsimVtXFzf5c51m8IWb9eW998e+FY8DVZ2NrnOLPWyCL8v3zTUONs2Rai+Mqq3VK8X9DA+tY2sX5Bui9w4YIEjIdV49W+7fddlKE0Sclgp/veXzKF/ZjUmMwTok8dCBbXpg7rpnJd+1pfAbdaayYURF2+WbxZzGvSd719EMEsuPMus07LbsJJVDO/fzVHJZlzim7u0hqagVmDQHdReSFDMr+pqjGCiLKhR+umgypPqRuqq0vCUjYfxOSFbMazVem2prlxayA7lDduTaRmyt1Fx9eqmKx9q8zIJYJlu/+qmjjK6P91ZWAtwv9GwkCOB0d31r1nZOc4lXbEJUEhhWFj2kgc/OxhAYgeDSgCD0P9VgVFcA8cJkrS/2TZMFh/wrpzNZogTDAOi7tMMOOQW0jZlGqOexjhxPLg5AXGrt+1BGBKPoB8yUEaMyHRMYwV3nssLRTgjFko8ZuS/x9QSwMEFAAAAAgA2pkyQ09Xx/3OAgAAzwsAABsAAAB0ZXN0cy90ZXN0X25vdGlmaWNhdGlvbnMucHm1Vctu2zAQvOsrWF8ooQ4V2YmRGE0PLdBjLvWpQSDQEh0z0avk6hAE+feSkiyRtOzGqCskgCXuzO7MkkueV6UA9MRhW6/nHm9fUwoMeM68jShzBEyCJDXwTKIu4BuV7Lv6n6KspKnneUlGpUQrFbnaCkZTfxcRLD2knpRtUBzzgkMc+5JlmynKGWzL9J7m7A6LutBY3EXrR9YVE/7AOEUaFpCeZcAHA0iFEGji0d1OFSlK4BueUOBlIUlXoC7cx+YSDhwiWnHF4k+2AJVchqF6Jy0nSco8tGjDNqsMF9Hidr6IJoHXC9cGxux3TTMOr416Qyf8W6HKdqYaYgm/QzDQE66tiI4BPmmAXa1qJ8R6MabgVvwsy0JRGgwEylh/9QNlTPXqB1bsAzbZ8KPC4tllNL+IZhfzaDWbL69v1d8v/HFPNO2eB1zyQgItEuYDMVNO+w1Ndj/c7ghWCVdnR9svdWIDbTD+0laCHt4u3x+/YrIpRa6s6sHObiSyXj+zBMgTAx8Dh4zpLtpFpCxjwGIVKhPBK63YramhFExWygzmYzxFs8srZ9u2NH6/hT8jHJqcuMs7vhvIWBVOhrxMXuIWqrviu0K4jOuiadS4pWa6IbYx1lxqvzvcORUvH3Hl2qm5opBse1OcxaQsNmrPvb0fdaZJfaIVksEpDXX6ZCuo4WhTRxVhteMpXqofXfSapep1JWo1vDF/KkrRfPhBM8ne9/Ubh8razq6slrBhCaYHDu9PA3CqjeexUJ++U87FIfXW2TiPXOMKNYHnvEhN3o9fp6bYg3PZKtkagu31Zft8jnv2+mZxFd3chBMr2+6ZmAn37uIj097o+DD4TTLVbglifHSfYVofmM1mBTvI6UO5O+7HprKVyIAMw9mOaJf3Ux09sPVaTSE0ytcj1zrpXokdcgw64PZH8Jmm7n+asSNaVMnmRFXbEt2XBftbx/8AUEsDBBQAAAAIANqZMkP5xhXWngIAAG4IAAAUAAAAdGVzdHMvdGVzdF9tb2RlbHMucHmtVFFvmzAQfudXWLyYaBSxtttDtfShVbVN2lop6p6iCDnhoO4wzmyjtYvy32tjIOBAN1WLFAnsu+++77vjKNtyoVBO1UO1PvOofRXwqwKppJcJzpAyj1GlaCFRE3BFJFzrf4ju9aV9WjRJV8864etdiKhMts9nnudtCiJlHfmZqi/V+m79CBsVtKmzCw/pXwpZXSoxRZNHyctAQpE1t+bH0bxlGjGeQiGjPmB0SNztZ12Wrg2aMpW0lIqUGwh4+BrMbITxNRcQtKJ7fCWoH1uXpqy2IIJhcojqoMgmHMiZ0yif0lWXNVqGBgnYCreowbBgrvA6Op+h+RzhT02Zk41GRkSh+GkXXzztL3GUccGICmiqY92CY80QumA7J9EC5JaXEnrKRPQAJAUhl/gbkerkO09pRiHFK52IM87xWOjNPcltxJqIfoQgv/WpM2MB3u1xBOVGmxbMEM2amUPaQkDmss9Hd19VMjHBGuo0jr3u0gjsDIysXhGamKM5MncjklxNg+hWVStr6O6a8wLIGwweCvrw/vR/+DUcTStjQagEGbQzaofzRgguws6zRkWIrG8hOo/PjwaXKCgoo2aEGaElLfOjj8fAiVYt7jKw+82ACuxDTSqpRIHeoTo+aRPcZjRUR1iY1nyMhxUY3/xMbCbVZIKxvVB7MLbIkkTjqiSpOYaIgXrg6S1hMMeiKk0CfmVj9KydRR3UAcTx4m+TYoOccTmPD3oZSElyc4p3fvPiXyCf+SHywZCR+nXpg7/aYxd2fNIalMlha+4dknWtqW1ozbZV/2Ul9vffAb1ZhD1ItGSrS/ejlGoKr73pw2kzEXMhGolTMB1E1Nk/H5zK3AEkjPx5yyKebvxU9w7Z8Ho3xNF+hL4cvLzlbatX2HsBUEsDBBQAAAAIAG2jI0OJaPDq+QAAAPoBAAARAAAAdGVzdHMvZml4dHVyZXMucHldUMFqwzAMvfsrdIsNwS30NugOu+3UDyiluI3MPBIryO6glP77nERJl/mkJz+9Jz3P1EEgCF1PnOHjnjF9HpRASnOV7kkp1aCH3uUvHV2HNXTU4L7iyrwpKI8x3zgC9Rh1VXRy2nwnipvH9llZT9y5PA6aadKI4JVixpj1IHwe/yc56cN+snx9W0bXaGNT5tBrM5JDRnaXFgu7OhbD0+IoMkLzwyX2BzkFiucQPcE76F0NW3FdO0tlMV7LxuL1z28u1yQJQwJdtqiXzjwmMbhbOxg+nuqPdEHlCvChoFCSTbYNKTeBV/nO+YvKcaCf6mWvCb+O0QM26hdQSwMEFAAAAAgA2pkyQ6jYMBFCBAAAMxIAABMAAAB0ZXN0cy90ZXN0X3B1bGxzLnB5tVhRb9s2EH73r+DyQhkzpKbNgC1YHrZg3fawYgi6p6IQaOlks5VFjqTSBYX/e4+kZEmUbclpZyCIJd19/O7j3fEsvpNCGbLhZluvXy0KJXZkJ7KPhPsHkpls628b0EbHteGlbp/+yjTc49+KlILli8UiK5nW5C1a/l2X5QP8W+PXqDVb3i4IfnIoSJryips0jTSUxYrswGxF/obt4I6qurIAtLG2H11LUFEAuyLWdxkfoDqQZeeJJrFEJ3LXBukuddwnaNlH1N6ny8CXSY6u0dXWGKlvkwSvYw8UZ2KXKJBCJ5pvduyRq1q/vEkOyzwlVwes/ufKEUiuf7xaLg6CaDD/SKfG3Li9x6WhHqxiI9IPWlTR0gPGmx4bu9cperCSm6eQlXyGlpgWgAnT43hHZIcY8xxBaSEEDUjkLekegQYMtVe9eNY2w2JtmDL6E9KL6M828WgY1sFtCjEAs0GSJsoRaFYKDaPtcwnkoB8Y16CjVrbfufmjXv+mlFCrTpTYoTTQB4BSbDjuUnfX8vGFGYv1B8hMdHI3VoTWMmcGVcAYSS1vBxlZy1iBqVWVPrKyBtyCt6qGgUm4cZ5jL+0aHG+XZqwsIU9FlUHqdBtVQC8BuSmhH/5a5E/I2K2QjyTOeVEcVViBlqJCUpSpbMsf7ZYPDDbQ5D0Wb/AoE1WBYX8e0KRbYDkoTW+DB+7hL1kG0uAzyqQsecYMF1XyWOVtX7BE6cBvv+i+nSwJ5xctyXdYCHTI0nbk1NvjWjoKpeE63YHaQD6hD12Rly9uzqhDvic0cVB0eYZpt95yFtHjVG76VM6tQbgmr1mp4UJVDKgUm/QOKqMnlFHwyOFTa43knPedLYcpudoV+oplmFMV/Ndvt0M249bINa+w32DhRNkq6K8Pjt29d54veb+rZUE385CkwRwVm2PLta7hpIIXnKrXP43O1U56bzBXeqdlyauP+h09KP/+mPSd6kEcc7V3bjpu/OI/7eU33QOHeH4LcHE+mbyWIb88afkwZ8danMpg7kTshML/8b27P0+XYYgFL2EqQru+M7woSIfcD7E4UZaewtm8KMKatJn+Gv2elwrFmeGCWNhROrhmOCGT79y2yb8YzYUnmvzAqj0NKY4MDE+4N6KCfdDCL5ln3CLhGVCJdkwIT4920gkEC/AuPXNsUO98RO9dcD6FUVCtGWqAB/lf7qCh+6mVW8ML09zNajNHl2ObN2N+6Y8s0xOKI0T354YRz/lZ04gCIaH66mHYw5yahtub324YDlf+X2dcu8CoxD27Ga3weIkfsuxcnjSV/Zk6ZjZH7MFBLS17sbYX2JmMe+RY7r+mA/iQpjZxlH2NEqcmv0ELmURpIqSd7BelM57NoKTi4993c0afnrudgYLGYA2U9/FTynjKUjNnrBZn/AbDhWbPy0gqP9SktSpRjfadRu99xqk3GXaF5PrVDyjeF1BLAwQUAAAACAA0lz5DaMYr1+QDAADdCwAADgAAAHRlc3RzL3V0aWxzLnB5nVZLb9s4EL7rV/BGKVDltLkURr1A23jbAgu0SN1TEAiMRNmMZVJLUjbSIP+9Q5HUO113dbApcr5vnpwRO1RCaqQeVcDs8kEJHrDCbCVHKhUTPGW8EOgdCq9idBktAwSPk64505oq/QYR1b4EtFR0VswrkfTfGl5bpVumd/X9VVBIcUAHke09sCI629ltJvzmh0fg+vLVbntqf7iB9UeiqD31ihKlZZ3pWlLlBY3QF64oV0yzI71mmQ4CptLq8Qqtpu7/5dwPgiCnBSoFyUNODtTF4wQeGGt3dtOEo7An5nkARhPYpIEVUXMgKdjD0YNjbMExRCCnKyyx43aCoqI8xMZXtTBki6fLZ5wUQh6Itlot0piYlUQp9AFcNG6GPkiJj45jtnFPa1mCgXindaWWiwWpWGJPkkwcFjhoZI2NiuofVahoWUSdc+Y12QKBy2LyienP9X0YDSWI3CoQGm9nghew/YRJWYpTKmnOJM20wku0kTV9Hko3tbGyZZGI+weQDLscU2XypZLvdhEj7M7wSKnbNnn2rFAhRGqwrnVWUyKvxYnP+usgouojSrFl8+LbxJ7hWlGJwbAK8nMSMsc9uOFMYZ9KbdwYE9mTgQNJBlGjOWKqCVYr6oLaBhh+qsde5E0uYrQ/uZxMKFNzEMxqtpAVGkpAw8A50QQjxju1ne1OhinGIc48o2ErdGuBdzHK4QpGQ4x5oMLRPkZHQ10ypafQhGl6UGE0A24y4G9fXh8qFT7tl+j4HN2+Xr56fTcL8P4ajTZIXtNAvGtzc+CxkSZoI7IBNqflFNSJNFH4TXSd2n1n89xxp2DfN2jfUzQoBuiXVKemMF+4t+avq2AQr6BybXbjpqWltqVB1nWt0sx0tjeXlzGiPFvhWhev3uJ4moQUMipXfxOIcIwuLnaU5NCMe/mVoLu9+DdebWejTHoaTYl3bz0ZMELkjJvmBctBObe2D8Pc9flWYNzs/QOh0ZSbJmPiCX0/MlOItR2jp6xx93cM+Baa/V3b7d1BNEHIRJITyN+40LhR6QHWYYhTNCrk5m6a0Tc14v9Szt2N/+DqKKbwl6DRIGuuUMZQtw3wmakf+up68Q6Y8ZseSVmbSpJducOVpdoXOwzRcdf3Iw9fr/9Zb9bYCs3Pv+eOdkv1GZyf1htP2CKbuXgG9tv7zcfPU7RQ5yj+9vX7jOb6LOiPKZILndox9mcDr2kOHY0Vtp8eaymFvCFMOc4YFTXPoJHYuXdxYdtev53YTyxrbcPUwFU4/KZpiC1bOCbrPrvGJer+nTrbJ4m3LNvVfJ8q9pOeY19dURmO+OPG7Mj2mI4uCn4BUEsDBBQAAAAIANqZMkPatWq6QAIAAFMHAAATAAAAdGVzdHMvdGVzdF9hdXRocy5weaVVy47aMBTd5yvc2dgZocC0XaGyoFVfm6qq2hVClkku4NaJXT/6FP8+dkJehqFUEwmR2OeenHvOjcxLJbVFO273bvMs2WpZIgvGmsxZLgzizT55yQy88r8JEpIVaZIkuWDGoM8eu3R2LzX/wyyXVYdM5wnyVwFbRCmvuKWUGBDbCSrB44sPrIQF1q4KFPiIDpdxCjQ5IZ6gUJ1mHVlPk/a1HpIxX4YWbU/1o8nGIkMTBLPhGk5jGsU9y83eWmXm06l/zBrKLJfldFRrpnezm6Tr14D9oupmr2+rqfn/TjpcZiX9avxK2lBmu7RXFCKl8N0xwe3vWBl7nFl+DMCPyEDwArF+N+OF5797GP4kwMdKNSh9orKp67bqYu+bZdqan14+wS+WY40RawECLJzkErg0GOVjBILxBD2dPY9yGFSGsTgS9zHV0j4xbsCQ1sm33L5zm9daSz3puz1SRfyVtDRnQkBBYm4hd7wiD7vdaosYS5l/ow02zCeJvXCqYP/0Yhx5MGYWvUZJYwe2tHueOwzV324hXNjkUoHBc7TCzgvD6277MGbNZbUN5TjweHz4OzzC86bZgbP1R+o2NFhBBv2fNfho1e1tkJGOsJesvj7B4wtSxA16w4SBq4ajkz9sS5AgctVavR5HssKsKGi75x1eYf85yUEQl1mH1TGzLsfEUcJdrqsm1HWdr4ZS/gB6MhiHc4IuUYWbc4oHqmLB3laoa3EzNWj58T0+g6FOiwYXTgJ/EMAvVioB4RTA53TeA1BLAwQUAAAACACHtdZCGY8HIS0EAABCFQAAEQAAAHRlc3RzL3Rlc3RfYXBpLnB5vZjdb9s2EMDf/VcI2IOUwVPsOXVTA30o2m7rw4YAzZ6KwKCls8RGFlWSapYM+993JK1vkZY9YAYSKb6v3/HIIxl6KBiXXkJlWu5Wsz1nB6/MqZQgpEeN8B7f3xMBRnpg0WMlKYiM0rn3B8vfkywjuwx+R+lsNosyIoQ2fHf3KagcXG1mHn5i2HsC5J9FICDbH79UH/VnqP2/Na4D/wgWkoKGSerPPVJKJgqI3laSX6n8rdxddZ0kKbqo3YVCEi6Dq1kdXgLhH9hTbiVAE1Z0LYTcYvCUcfoCfTvCE4ERAz9jCc0R0y9wAJ4Yj/H9iy8iVsDSf8DvcybBPz63Jc/CiB3U3/68dlZ9fL/Jqh6HmuBHFXOQdqMQIgBwuY2wMhBvn9BBZdNNSiOflRDWG5rIyrMpV8h2XyGSQbtopjxobxxdeUR4+nXTyTfBYJWZAerlp6F0Rh4VNMeK5hEEyby2Ms/BdGjZ4ZBPsf2YS+AFpwK6XjTW5FGF2suFA4zfpFIWm+vrJIWQ5t9JRuNr/7xxb3L5vytw2Sh+2awe+iOZUCFto7f8eTUfLhJtYVkfSja5iOiQJjnjsJVwKDIi7Qv/7hnXHdZxjGbgxMrW1/wPpKKPaucRQcNyrLAdSYQGBieBd89L6IFQLPsWFbYcCmZl6GkNh6KrMDYMPy2rRmQBKNHkNIDRcgBohbMB4Ds2AHf0o4oltJGeHXfPsow9nUq80aqawjhErTfGUXeuCUA0TyYAKa0pQKh3OZBqAO7RMRoWAi0ci256tjO0mstbKkQ5XJx1H8FDCXC1HeiJTyXjz/WG4Pw9OD60NRqs0YzbYJbe1Nc71ZmcMRq00XFi6ObkfnkiJe3DlYtSmNxetYXqBONtbQA3rNEJ3JZv9wpoFM+uQCuGdejVSZlD7FwflY4b9Kh1+UIV5S7itJCU5e71ioqi0TxB1da9iC3igLug81Tix1AHQU9/+3uagfA3eBMwbw//DKdB269l3rZUps9cteKmdRt8Lkemp3ZgW0lKOJnlQPhjPHLrqnEk/CXNZUj//EIyMbJgajcWqEo+mYtFkkVkUM4qXiW2HpKOCu6DEfYbktMXoiaFNVJbxzqR21qOKdzPsij1ceobNmD7zJ0wITp+LCVo60wuQ7PjTcQbsrVcWMgajclcAgiP0rM2bvXEBmiu+o/wrO91Q9yuZwtxR+lcaPd2VZGN3Fo69m6ySbtRH2z0dN7fR61YxtqNZT24u7DgQGhmxdJSB5axdmNpnclYKglbt9Aya5dQ0jO6A8fJmtEDVcsQCfORE/sP3n2Kva3g5m7iEY9DwkEI7EMezT2Zgvfu7lNL/zOAd7uMbheL9avbeHez2t+ub5Zvdm+ixev1zT5argmJV/F6sVi8Hq7UIREWofe/xmCkB4xk0s/2Baw9WImsnR6F/S7/L1BLAwQUAAAACADamTJDtCBoQp0CAACaCgAAFQAAAHRlc3RzL3Rlc3Rfc3RydWN0cy5wec2WTU/cMBCG7/kVFpckUjAL3BDbQ3toObSHFk5VFXnDJDFN4sjjlFaI/95xnOxi71JKKbSR9sP2zOuZZyZOZNsrbRj+wEiW9od/A41SdbnsSsVOWXKcsUV6EjG6pDMeOmkMoDliAteDCBqEnWbRNK6kqYfVcVRq1c4DjkYPhcHZ560074bVmQEtjNLO1GogH4xs1mavBcIb+jiDVhVf55VemKKOoqhoBCI7J1dfMpldp5QugbIGc9EnCE05TdoLhx50si2QsdGQO6d0Y0+zXPQyH3TDliyujenx5OCAprhLlheqPRiQ8Ma+Vze05HG48GclzQWxz9aZt1u2hjmK8wv6ztZa912jQpVGawoWc16DuCSNEMZ9sUjKaejMFI/kYzTzSoPT/+qX0YAR1TLeK5VaCb1S1YB78QYrVRGorJJPkfEKTBKflfsfVAf7722145QtCbivEOSloddhUpP0eolLJ3TqZ8o+3yxuM+Yq9+VVzEulW2ESL6e5MiHPDr6bLZqjsQbsVYeQxFY4zlguacPluR4gaCqb8d16B8uF6koqz03cCy1ajE+YRZNRBzpiNHFze+v7XL1MbwWk3dbcMklS3qhKdhb4OJ4K4Gb9YO3tnTsJOpcwCRkXtgly20aPJp090H1/kf9WR6Ps0IiugOQugF3Ad4OU3Ma+q/X/gJ4N+QF4BO5osXheNk5qDPajkAiYfDKqdz1K0Wdjr8wnTBo9LlPojNSQX9eygbxRavvI/xf35ZP64mXAjWc8HaGiqAHzxX+BzfPZ8Xg6/I1zzH8GPvXefNYSaCiJcB2iv6Z43CsPV6srKEwSvqzE+ViIPKenJL2tyY3vhh6f1VNvUfLZd0qLzoqmgcvkTvDOjpzB5DaHQCLQ97vhgT1+AlBLAwQUAAAACACHtdZCAAAAAAIAAAAAAAAAEQAAAHRlc3RzL19faW5pdF9fLnB5AwBQSwMEFAAAAAgA2pkyQ0yVvcy8AQAA3gQAACwAAAB0ZXN0cy90ZXN0X2lzc3VlX2F1dGhvcml6ZV9vcHRpb25hbF9zY29wZS5wed1STW/UMBC9+1eMtock0sbZdiUQlXqAHuAEB3pDKHKT2cQi8aSeSVfLr8f5ol2Cqh44YSmRZb95894b27YjL1BZqfv7vTp4akGQhXUvtmGw0/0Hw3gbPqU2m42qRbrrLJuLupP2aEqpsaSCNfkqQ5ft9Fu9myG6lra5mOF6Pvto5VN/r9icGLigDhmMR/D40FuPJQhBEXgFwTgwvdTk7U8jlpxWi4ISH7EJpX4hLajNHvcZDfjsYqpPTerwmJ5RQGwExLYIdFBHb8W6ClK42l3u0927dPcmgdKyqTwij5aVKhrDDHchmy/dQGGar4PqeIkmuVYQVomHMcB86Yf5MWjLR4sxY3OYgcMKzHBL3akzLMHymP7QYcoGxsYLdigNQXNHjjGOzuxE20F68oSd8ryBb9G4vQyAaXcVff+DstK/lcafyeEWpv/EkZyDHUlemKbBMk6eeEzotOKKekY/9A3m+Ei+jNac4QbD67JsHYtxBcZmu7zFkYr1++c+V5VzKA99CE1PwgIb3PkeV8lNoJAgSt5S8eO5gxHSUGVdnLxsax3RzeLqpflTL39/Aq8Z62sG9i8H9Z8MKFG/AFBLAwQUAAAACADamTJD4pIpIFocAACbuAAAEwAAAHRlc3RzL3Rlc3RfcmVwb3MucHntXemX2zaS/+6/gnE+UJ3I1H10v3R2xh7n2E0y+xJnPkyvnwKSkMRYIjUk1R2nX//vi8JBgiBIghTtZI9O3K0DKFT9qlAoHAUGx1MUp1aUPAvYq+Q9ebmFP849jpMgCjdBuI2sL6zBbGiNr26eWeSHFz6HQZriJJ1aKMnePMOHBGuLiTZ2Qbo/u7Nn2zg6ijeibIxPhBn6jY9SnAZHLL4S79m3QDBxzmlwSESBwUuU4Ffk39A6RMi/YgWPkfdOlDih1NsP6Ueb6ITDZ8+eeQeUJNYbQu1HaDpIo/h9RoiL6+OttSE4BOlmM0jwYUtI4HQf+T+gI76143MI9W1eGn6S8wnHgyLVoQVVr5yMUk7jKq9IijgAgnXLsHAktkCqgQ0f21dXzzLWEpz+fKJ8GXLAKhg2mn3ppNHm1yQKB1eMjrNTKKBTQAjY+zQ9JTejEXnrMO06XnQcUcKjJNgd0X0Qn5PpfMR175zej+xcHNDsBvn+xosOB+RGMSJ8lMRjXCWnKEzwwLaH1nQ8V/g5ndNBxtjnli3TK3JiKzW9KNwSUR5tYnPIvrF+iEL89EyRNklwnP6IggQnAyHJ10H6zdl9HcdRPMxhdVRphpa9jYgSFZKHaBeEkl5YEzV0BsDYlRUk1leI9LoWFe068Wn/YDSIA0gGV6pyYm8f3GNVJ3uMfOIzKHAEwRSH6Qs/SKglEToER3sbHHAInQbEf6rSJqdPlToeWp99xikrbO5wUb8pil10OIyOKElxrNOpcz6BFxk82kkaY3QkLL2Jz/hJUkQZOi6sArVagXQa4l32TpCAjAOmXxPNcPKCe7ukfi3lrBD59hwegvCd+kWdJiXM/3UmGiV/03Mcbu7R4YydGD0QF4HfDcYlF6EpveGqhr/J+Yh9on8ziODNhjgVeNcNK9KPikTaNakDUSnxR8ClNe7fgxM17hiFfnSM8bYsrAYoXosARWqQkUpTuWRAf4TIMPJko7LkAR+IX2Wj9sB+HD858LXtbKP4iNLBZgOuZLMh41E0tDzSoVN8C/1Z8kkZEUpY8iz2g/s5MToSuGz9YnFJGL3NbX0JpIgPBBuPfIn9TRR6eAMtlhvL6mwBgWggf+A8xEGKK2m5gtiGjkiqQ3YPkdswQkIR2TvsEYzVMw+768UST7eTOb5eLq+32F/O1nO8WHvXaLK4HqPpbDLf2vXGSYa/ETSQjGzyltCWAILPSVM5ooxZKKPYb5AEYZIiIvQAygxFbAhRhPOSfFKqQejFtCyJaYh+0oQB/8VLRViTQc0lnYOYWQOKtJBKWoWDlcJJPhLlaBShYG3apRFLg8iQh2asjvOS/jF39wXErqxbovwv8ijPYuSsO8bJ2y/VeIxEcMcgbUCHFSpb2Wrpe97Sc+fu9Xo5Hs/mLl5P3BUxMuR70/USTSYLhK5XDVbGyOtsrAxXjrHgnFQQELKPaJD7ir5saSqsPv1D3JoRKKKwBA7/ZBOAN5jM1uP1bNoMAKmRjIgrzLxgTuaqFSIZ+xKBYckR5j85dKRwhh153R68E4oxBzFpRo+UDsi0Q0LOJVMzsCu0nkzwBE1X4+1ygbHnLherxQJ7aLb21+u15+Kt546RZFcQSPZrkSAL6MNxnMdJrhWXTkOhuRZaKeAiUTBSC4fJeZW9bK0YOko3a4QVk8czHtUDsmRueT6RGV0jcowK7cyivjFSnNGsnglArA6Bh71oHShLU825PNUsBV9l9iC0helDJc0M06G1IWFAzKKYAr5JYeAot1GDHK0+tPzAS1WxTG1iQ2LGP9IuCnWy2Tmxc3RMyCTu0YaY9obNqp+eOpoRD5JpFPzBLCqHlsarxqEbzIUn8uBBGwVk//H1P373X70M3K+vg/8Kc3xx6EV+EO6gDDiT5VzCnod/4+3UW84XM+ItZ9PtauzPVsiduvMVdq8xWkyJR0R45SlKI+JXxH9NCynZwgB5zV+R6FhwSj4UL58uWW6RoB3mzQjSrVddZE1BNx5abC0AYijbrFqZCahNtNDJZjoFHooBuZH/nmhmYH9HKFphsNunFh96LDIMWSG+x7GFrF0U+VbgY+RY30L/QB6JF8kUDll2qYvYLomqrF9+Jvz/YkXur9gDYqFv/fL3eIfC4HcEYuVfEflJS8g6RKmOWrSlHEWhhdI0DtwzwQC4gKkl4SDdRyQMKJWwgjCNtORCbP0CK7t/9bzoHKa/WGztl5Q+oneY0CN6IUwFx9MBx45VjmP9+WSxXI6vx5PJHK0WU+zO0Hrlu952Ol/NsDsn/WU73s6auosIZEnYMBIxXRY5QKDa2ItAe+QF/CH9h8zeMXk36aPTcH6GnHYxzm7VX4SVyl1GDISmdTMmhhYIeTuuJKF38RXUPk6gmzduOnNS+iiom+r9iJME7UDH9vfveTe1xIdlWWx0Jp0jBkvRymnDaAfEvkWh9SqKfZR4kYYOLYuPKDjwsfUv+DcEvQPQqSoPC6xQfDoer1+MVy/G128my5vJ7GY2/nwyvRmPNRWfNDIwKWFaTMTQFYBoGTrOjXWn52TlT9zZBK/mGM9mS3+y8Fx/OlnNJ663XqPFbIX98XKGxmVf8VbTXBpjKtcaOrm39BfL9fXKHc/X3mpFPMF8vF5t14v5dr6cLpaT2VQnZn23hj9PDa4DRlruPkpLdR17e5DCEjs0fklPD+SO3tDdm/oqocUZKq4BdZusM7rEu75r6IR0Yw264NRoO6heUdBeLyoCQoaKqcOVyp+tgOQrPy3nQQDFHcPhLYUkkkZ26B5cKBLoP7VmT6rcmVNV7/soatI7FFFdr16pULIyxi1092yoLjsS4Xy/IcToa63zC7fBrtqBwxzlBsL6uOy8np7p3/UQHID8hR7e0WFQpTAyj7IsT+YRAiXBsGwbXBSq0nbLdWmlMBJL8XI/2Bdn4hLNzz4r9ZG6ProXNg6VHTCHbiYeJMm5tBmr2Dgtoxp5GqQHOjknU9gkjc9eam3A0rNg2iKRdXSOreghbIppaQMG8z/aJnlF//YRsNKGh4xeV3tkCHYes1h1xkE+YjFEnG/hj7mX5fMy+yuYktAwP/vq05J1if1sKHcLv1oNCRLbLNy/mHnyabALMSF3DIDoAbn4kNDlH/m4wdCaDK072z3vbDr73wN/dJL61kDYR1s0Q8wob9GGJpM0olMh2nxOy6r8sRmLpAp78XQZgsMKCC5CVu3v7/D7ht5OSpgNaKSgQZ8FcsRDJ8n+RZwgizhs4jTdaHdOKiYBEr6ivzODBkp9dHpCB4JWjbvt5gAA0rrAtTwctLASIK7jNbeJM6GROP+BO8Y41MYaTIKWMTMK3iUazUIEMjCAD+nxKjrntLfjMfm/Fz1TVnrVNMPqg+maka/XNvcAtKjzHfzupvbM4TWoPneMRurPircYzUsL710VnjXeq9JzpD6AynPifOtAVXRWwPlevOqm8NP50NTNoYiZmqFkGw1T/83eDdmGAnzKTy40DgOwj0nthAhyjjE/bdGLyYAgvVoLhbl5MeMio6Ft1LsJqiDnP8nvH9mpqu5Gs4GT0EbzhN7th008biDi+7MZjYRK7/YjIz4eZmOk6WSzpSXJrWmNqgbpns2teaMYtmqNLAzWOklhAyPju79QeARGk528IpAne0RtiLgveNmH8ZB2FJV2tBQAC+iMgMgFi6ZAp6ved/Qk1BbHmJDupnPCVnpuOjfCCplpnpXFyUhordECoAb1LcnZ83CS9KJnxsYwN55hTr+ryjlWtQOLboGJ19OzUmMqYo2J1Xd+on/0BymTK+tLeUe7jQmkaNegf1LCvNuTwrJcYiOsuMQKFInGx84M0JD2yGiokm2PWTbbb5a9wFCh9P5EK2bbcEB7h/U7aBW7Z/nO1w9RaiHr5zevaMqSbnk321PbxWi7RSmZOh2DcBfd/2UH39DttcpV3AJ6uj0k8uHp/eDqqQDfHaCwoYLCwj37iL1VygE+eRGOnVSIzG/k2kOlYA9bHgR8OfQq/27qfPmxcYexNVA3E2C+mvlOWzkwXtV3wcgr2GoIZfIffZeHH0Jd1/GhUbE9p2FS6usUNtmtv0E7bR3a20lp5dQ0Kd4if6Q1xnDW3ouLSGul5a4CTtrJ7o79awb6AGdZHjD8Vs7RwY8XVx/Yp/EDuJ4R5yAffvROL8ZN8TTdNTZ3e6S0zu+Jzee7R5qfIjKpJtTvRT71OpPxeLVY1AKU+TnGVV1JHjWtFu5svppNr/Fs661XyFut19cLD01cvFj7xHeR96spmthPui1ziPc3Yt9cTffS735f7jtijC/dz6Z6bbenRKs07WVdFOfTFrTb4m/INy0DN+LEcdpku9qkSqkmWO7dzYvJ24ro7BJtsmZaK5Bz1wkNg3V1E0TEsvpoWhW1Xo4LW/+edoSHCvpiqsm4azRQLSn1uEQj3NFDSFOZ68EWxZqybUQ5hngNx6JZLnoPXTMjOc3OK4iPnL/xFy3BwX7jYTGWAK4MJzRHzqRX6tfvL5ouAc9kJPqqS0ozlbcijbmFOVIyXTJg5fky+YsTLw5O9DDLW3ZwOq454ktbrd31N9J5kFyc614+Ry/nusP+Um3fUDm4XCEqRZvz0AqYXWCYeZYXbPIW0gG6kRLeaeWQWOhzGVgim0eZPZx2Mz3u1IASPehU9KetvQI7LNR+kKIi9OejKbncP3c9a0PsWWzt99E/Ba1kRPFo6pxZ0710zIyaLRpvCYXpeaMGENj+WMOwzVrrzx4YvWk/JzLMjmI0wJBFi937Wsd4UAoEe0CWxYKXn2owP87QACw7yDCicU6dieVnAvqCglFkEVafO/+QHJh136YVdzri6jMK631S5XJ7lnCnXIhzJt+G+LdU7mZFTq/qcDurNgMZRF2QEYn3Zln8LaARhFsj41Ygk3FaC8wlSf9FZESakcHUQsoYM8Yny2Jqi49XgU/Gby0+3rC3bJ1Cq5soNIs7L8FLikBHHww/SZI8zvzYkBql+bONl7YINgP2+GQIV9DK2jrcH1HHpLpNzW82go9GMDk3FUAmMLLVRMI6xgIiItv1obfsDabjyWxoLelZ3TH7P6d2DtPgoC091ZSuFhoaZclik9mL8fLFePJmPL6h/xss9duUjUL9aV6/BWqUj1v6e8hku6W/O+CnFaWEm5bh/zN4qR4iZOkGUdx3RCOTbukpqkKaArcfKqqpNQIU0kwrenFdrrJGXilc5s030rNTQtCiN3yZ+pmi3rN1W9N14BaKz2i3HlD9Cr3n3NYq3e9rHZg2iu8NYjZaqA04jGprZHAFMpzJWlhw3hdYcef1fceAgiZWmmVyGiMikjWb+p7sIOIKOBh/tWjEPaVhcsbe3tlJFKdswTrED3AXbW0/ZiwW1q0FqU49ma4WmiVZGqukNtWy0kZbL5zk/Dctnuwr9M2Er9X3xYl+tCG2eGCY52eMcylvj0HL9ikbwGcvJPiDCow467UgBZcmnzFu7qR0B9Yh4FVtd+DcsZIthkjRIDt7SBuj91OaNPbZZ6x2p/5GaZgNDlLR9lYx6nmkKPBtOl5wY6C1mEl0HjpgodUoc84YJ54/d6H/ASpN7uddBaZUplos312+IktbYquphmlmxghmyWZZsUOFpLz9WlkPfa+1HlC4O6Nd2e9+esN8+uiGamp0A+9GWXFYR/71nMBBULh3jTSA6P3rEUdGs30jg8ioNK9v89bM4BOSNCGYnk+HthshtIk8c6xFRpqxpRTy0rKixwpxJV5q5T1+gHQtykCI0wcSZ32AGB6kPCCPx7lwpN7mjcHryVUhxm90ygqfHyuMD6M02AYeYkXq0ZHLtrGYQht198Gzgez28eliV15ossmnh1UqKWBTq5Ew10ihlvNmH+Nuk06aCGSWJmasicpksToNnCrgYQzWwnK6OI2O6qeycXbSqMOkTZU3T1yhoaN0/UBN43+Hor20LjLsIDC4Eel1JjxAxdtCtV74ERmCbViBOrd2Oy6KFg/nvo2S1oztXUpda1wwoK03rRdckK3VyOQoObvJiQwoUgetZdbOK3w4tosqgkSFHfod975EnBOWdVW1+iux8XF2tAFpLw7cDyB4TtlIcomRjyQ6TwI0zStso3I1uzCrQLNaykP/T2l0+paQp4Orki1UYSeMd3qoROFHf61UUm1yjJTZ/m1Twp85/pAIY5TTZww8z+rLCqUVItOWa6VMhZSkKF1FLaQ6NXnDQhqUkgSVL8laxXwocWoohTosUVIHGiYDWRNq8OShNrABzctXGSgZM1PUBauVyqISN2lLMBjFOxKbkiotLfKIyBSlzZyBnsJcKK2oTwRrnCCoaeY0WuI7b93VURamu1pKh9k0SLXuGbXU+Obx5MVk/WZyfbOY3Yzn/9SBlx+rPyCiQkBvg/g2hZZGS5PA8a7pGKr+Xl1mC6V7b4CegRWot1jk91TQS85G/LaKy1IqKDPqJQMX2oj2pCJDURKmKIThTcmXnobJTYXfWi6yt9+y6wkLFx6rym6WYlii0db9dLpqST0CU72i1XAGOm9ecwF2jTXUKj6jqTkLffkaGLudWYULnh9ZSHLOninJk9YLJe/4Hc/UCuADtVCse2Dlr4VHn2imJQ6jqtuEVWSAq1X4I83MFkSadU7nrA3qLrTbn8YLZKc93jQEnv3Y1DVYISOMeFFDsXjr0tOdLnswh/kNNk1yZBNsk0QjaNb0CLohLtvK3KKuc/EYH6N7fHG2miZltpiwVkqKaT2AajgVd0cY4GoWaunQME7QaUe2W6YOneEo+pEnP1mb5QfC3VU8qbf8aLgkOsdeqfe39fSMSt+enlFt9vQJTsUKB03+bFpzkIqWMnHP2nUWbVnNPUZimUVMNEjoEuxCeOQK+YDa1EVxpSrokDdCKXfvGsUri0poatvQrl3oNzN+koi17AI9abVi9UyUvUAh1aJ1x1+W+WMDbnYTlMHISS9iMRk5xbU8vY2c9BKaipHTeKEpB8TwlhgTSOB+GDNMqq8w6QoKUKxEpf0VJGzrp3uyX/HGAynd7+W5ZF7Vdx+4wW7D7yHP7y9G8N9l83dZur6m8UY3LnGs4LKlQ3Gd+uDIT2UmcJRuoCpZUUFHpTssixFOg0R9M199zGdAb+QQtLhS9BdhVUkqWQU3BlU3jdd4/OuMDkFayg5WG4a4qxTXMAHoIeYrlbB4Xgo8zrxh7Us8UIc9cE+7BqbEKtnTF7OnNTZ2JPnavSiy6EWWNUtG8CM9A9D+5/H6/tuv/33vBS8Dd+pPvIfb22YCfLOX1PfxPT5Ep+Yq+SOx5Pv76PMHpAdc2ZoHTZWYl55LVU+rjzsot/QpAk0X4GkTlAtOJI+kcaq7Zo4aVP6UzqGkTssFceC1ZXbpP0fKVDfs50K9GBGpnSzgVDwjtbaQWKKEmw/rruuorMxs/21fyxXcc3VzCOoKRmeHUNBOzcOPJHdBh5NyifbOQeROIjye+q5SoJ/nH0kgm95JeUGXlFVa6JJsBO7YHTk8/xv7AL+MrJ8+oF2cumRc5HFT0UovGhskeYeWbCGXmGOVNcrgaqzR2K4uvtvoAeN3h/eb7Lm258ZH4GpqEI5fkzncrf1ceozNc1WffJW8EHQ6sM2H4+TO/g4l6YvvI59MmLHPtqgAi4YVgxQRAzohIpwXnJC6cPBQwFwn6pXOXmBlZfBAG7OjhxDz0JxoW7fYWa5DLEKtYaQUDdjqoxM7SvQaIufBw9B6fGppH1KK8gZ5aXCvib9Vd1As3fYUUTJSCSgarU6izjmsPTrx0O257Wq6Lj1FFCTE9JpvYtBV6gJMIfW6sFLVkFssM2t+1okNHpwEnHoqHb82BM0nvo72/9BrNh+5cBeQCvWNYCqw1wTPIUhMbOcZexL2G4KCGIEH8KTsV+Qflx5Q2myCkFjuhjI1tI6YTKn8H0jAfWvH5xBqyzdpJ+cTjgcyTTaEXTkZnZxCeTylNbJV/1KEkE2S2Vah6kpOgfA+WU14tGGucTKQ/XwqqbeSZVa8PZdFFrI9EPP7wotWZLrMcAF+8gpFTuY2I1lqw+FPRxdLg/WUPpEoFWWBKxHPcWktUEfFOQThOzIQ7wJ6NkDVNKek0N+nx0PbBqCOrgVBq8t+myDC99y4Qqy7x/HT2y+zx8DbP77+69++f+3E0Km04W7vke4Hn9qxCLiIJDzbvd8JW0aaiXfx7MwreRKOm3LdbNkBez0EvTxDoteZ/Z93Dv/RbIPB2v/8XWlgUDFl/yCTJWkUF5eO9DmKC5rmo7h/yMaf0nUofPzJL/nWjuCD5/s0PSU3oxHkPTJQ4MDhiOXeVpxRGD3XDq/P85vCZ7P1+nr2/Mo4HlCF18YDtfLyElIMUDGmGw0i/oEPH4K+dfcudk7hrnw+o7e7/jtucxOZxW3+1R2sfklCHqIzcobHmvOTAOgeo6bpD4q9fXDfcEyNsCACAInziCif8gCZfNptu4FNxniHJvqJYX6zgQXrzYZYQzS0mB9n84fi/hclQglLLNoP7udst2zr35RMXgGNi7/1ZZarn4WitpLV2cINSdFA/sB5iMnkpJKWK4ht6JjS8niwdikmRg+kC+J3A1VH2tJiYIS/yfmIQQK2ean2X4FSyfRIl4b7+JwgyRYZoXhYcHqk0DmEyLHiewNa+b7qnwAFOz2eykOVwr5SKMegRe1qqSX/NJf9k964ZULSaAg37vQ5En5DbzY3HQXh0p9sXMhuAOLjH7uM/SOMffxG9+vp/HraYtyTRdWOeRXSZd81j3dVc9i9MWiyMTB+bq19TscJwNQn1cU/geIdBmGozIdh4M66g9l0usd+5CV/vnGYotjnSCwRbDsW8z2FFofzTM8Rj/o4mSdJtunngF4FbpuKo3pGIBo8KobfuqaZDhZOT+Vf6p+0CDPEYEf3tU7nhB68AN9EXBP+DR1PB0yfWKjs0Ys7SG6sO1ZLeUSYjXx/I5WB9SPyvlQsPpqUosvpWByaleaJBbGNHpeYlcyzkviRbM5H/nTEnLfiAxJ1JPKil1gle9aO2fPNaoy0ZI/8UTbF5wwam+FmiwJoobEPz0t9uMoSC/pSp/uN3YuKU3UOv/HEpibf51Prq3MYvrcgShtaYfRvrRxVKdlwBG1UJht2XN1g4205f+cSP0WxaLX2IBIBIf2rx6BLIttmH4FWkJbBS5eaS6ftspvcP0ZAJm5oH01m6/F61iYo00BRsT/RLL1c8JL9iYrg7o8OeoRk+ucJtljjK+4SyETbDtuGmwTsxv3KywleCVM1Xy8uOKHSjLHikQbl0EGTER357yEmeLMP6MV3yBKWR7/petRFwCzWavl6u7kDKxK4MDVLIVYlbCdXGXwQTxm0dJRB0VMUcrq5lxTPWPtI/hEekbFa+p639Ny5e71ejsezuYvXE3eFF2vke9P1Ek0mC4SuV89N55VeBylVQwCobi0vpylvglbtgNJqsP/Z1SEEDf4g0GwVBtumbFajJU99aCY6Az8Zdfto/9Xz8Ilu/KDT6cDziUb3oS/sARiyn2r6GFEIZbogaqclRCkXXYSYfxYUKEdNMDC2L8OhcLLjeEJxAON7r2c7BNVWzuYkd0JOwJE4zDoi/+BjuRy4GmCE1pMJnqDparxdLjD23OVitVhgD83W/nq99ly89dwxWjmOU0Gps9My9QUnxRPk0FklH1B9SOQiNSgWe2KHRI6nAn1uywkJPk7yMnWp8ie88v9w93X6f+cFIPTguv4bUEsDBBQAAAAIANqZMkMZQq1OWgYAADgsAAASAAAAdGVzdHMvdGVzdF9vcmdzLnB51VpLj9s2EL77V6i5UEZd2ZvmkqB7aZC2l6ZAsDktFgItcW0mkqiK1KabYP97Z0i9JetleZEIWNtrDoffNxySM0PzMBaJsg5cHdP9r6v7RIRWKLzPFjcNMVXecWP9DV+ZRsWkkk6qeCBzmd+pZG/hb2MFgvqr1coLqJTWDUjeMBraefv6zcqCx2f3luvyiCvXtSUL7jdWyNRR+O9pyK5JkkbYk2TS+Mg0Zomd69tY2GntFDrK3uuyC4g4CqSt65ycI5KDdDQixGkTbCbrRh8ac+jy4qhULN9st/CvY/o7ngi32EVur17vdrvXL1YFHcnUx1hzGURtRMcCLVodJdxPUkT22ihyDutyeJwTN2Fx0oQA08BggoomrQowKJoo+QVGs8lvN9oKDWXs35QGXD02FaoJ5swGrxC8tlSpyeE+KCP3QpDTXX7CLnVo1PfdkIV71mKruyVMxiKSzCZkY73cvWpYOk6VXczzzxbZGlVyizgasp6I7gHiN+JTRckb672I2NOq4S4a8QfKJZN2bpk/ufor3b9LEpFsSjJOiXxjeK8byiKhXI8GAfObDhKIA4/s07at6LZJBxVc0q7pxME6dnO+sTt4iVjEpKhI6tfnsCiOA/bMhlvUoNoipIvIkD19FjDF5liz0hMN2mQ0xTpG1YI2ybBNtAXzuRqwhN460Bq7pm/h8VMxRq83fSMRnAHwgbwVQUD3oJHAFhxyKQEYfk/9kEfk6RyXQzYb7bhNww6aTxtC97S4tP6ggWQ9UzOgp8LRsJo4K0cqZ6/4A+tb8aeBF2POWlNcjt73Xw1Dzvf9FMbrBV0OS4zsickbhK9YkmmSAwz0OBtLd7m+SdJmXHOKTAcPLnkEx33kMTti/6lKQFHDs4awInd8HF06H+F16gShRu0KA/z07E/hp5VOZ2ewALeiX/vJWWtZ5wO+ciWSx4ncExaKB3ZGYNLY93t9dPKmVUPXvXudcSzUuWerZJb55m5IXcbr3pPmms5EGZcx3KQtsZJc/ZMcaMS/UmxbMsmq6h2fbEE60EwOagBNkgDfT0y5UNM2Uxs/jk+6ulh0Jl9DwHOhhVIw0NTIwKqjWa1UDDC76jFuBZMIBXC30YHV4scKSVgcWviWoBpyVzSIXtrYpeW7wkEdmMmRqjCZlqONXH/Iqpoz4eobF3qhYU3pwhH7T8xT9kmeED/ps0Jn9nC4U2lxVeLFhytYqSpNIveBBimwt7CHfXu3rolVl3cduknJYKQ97Ywf8MlKAFhosdetFgcjW0yXUUO7tRyqiRRP11FkUM9MQr14jJJsh3QFHNWucftKAjwuDZ3oNeWO/YP5jDkOnsFjcKBL+0ubTA+WSb7iJYyqUSFDFm6+3F01s0shTwSaNbE8z6whL5LOVmxZZKFm3Ha7z6SX8FhlSSn+2yV2FCGL6UGr6mqPE/4AFoBm7RtdGiDfguQ3ZRKEcGZPyHzhn3m/hC++RHiA9yiiKZxAGCT0AMLpdrkPElcdrbDe+CESCYOFFcaB4dak/rQqP83eHyq+s1BQV8lEukYpnDCbbSuzxPXVcyQnHi4lGiycncTpPuCeu0SSoq1VA7lkrN3WPi9JyeZT5YX5EfWs4R0nO0OW2XHMuO129B8XhXD93t51bSZFnQxFSJzKI7nYulP6PuTS607PUz4VFX7Xht2ohVfccSxf88RMaHbJc6xj7HkQ8OjgspDyACdWn8RtOUi0Yho99kgMaQiER/MT7YRI7qXt5kWcC20+pSab97Hnl2MLFXmEc/Ltu691IpXFSp3SrR0Oi9SYB46bDi51DBVKtSB3fGmTPbBIDdU2tdCk4qZRO7a6qblV0FQrt+Yr5x2+zandfh/V6YLh8sXpug8tzbOufTLdBrhxZevvuFhfkyru6mKaYMADp1X1Gm6UgS5fzp8IxezsF8ZTmO82t92dNqQu5uGdZhCQp1noseezXI6UxZJxcfN4X8uj59lBQwltyVC0w+aGfnUrmxtbmn2Cfz3ntqn1m43u07Xlg+h5Z4RoTejTL9K7tJx15TQ/zLrUjR1SvNiFXUv5maHe0MXddM4/ZN22dpN34dJtZaxLVm97KbUGaiGbVMsdW1I5dRyYGXfTJMBVmP1I85z1ZyoUu6k7k+bxy5U2EfruhHyyq5Ch1V0tcGSc+jlnAz/e6428wP0fUEsDBBQAAAAIAG2jI0PL4EsAfAEAAEEFAAATAAAAdGVzdHMvdGVzdF91dGlscy5weaVTy27CMBC8+yvcE4maINsBKkXi0ooeq6qKeugFmcYBS86jtkPVv+8amjRAQEGskkN2Z2dnx3Gmyxyvpd3Uq2hcW6kMlnlVaoutzIWxPK+WFdc8F1ZolDm0hbQ5xD5yI57g3QNSboXrbqrNN0LoU3FjcAIMSUP/2rB7DYsfI4QhUpHthi0bAuMZoTIo479oNeJ5O8VjhJIAzwJM4WHwTgMcEb9tchxjkCG0XXzVXHkj1xGSWUhoQllMp3FERkGfAV6b8/0jjVuuZLpTaqyWxfpEKuQBY0Cp1yZddKaPgnOVjq6LkAlAxpRFjN4TFpPh8HAwnFE6/egA/43NSt05EVm0O8cHrCf+tz3Xei6Lm1xnIYXVJj1Ls/3S27vjWibN5pojuIx9IGewt3j6xqWBm/LOVS0WWpe619VO8tjVoizEcsOLVPUY2hmU6Fp4fQf2AgQB5kqV3zuyuUP6WBrsKr0XcajoPfXB6i46s57BG3HuR7E/1aDVhsqhPvoFUEsDBBQAAAAIANqZMkMW9uuPlQcAAJAnAAAUAAAAdGVzdHMvdGVzdF9pc3N1ZXMucHnFWl9z2zYMf/enYN0HyjdXjpNu3XzLHtrrtt5tfdh1L/P5XEWiEzaSqIpU0qyX7z6QFCVSf2xLyVLX7VkSAAI/gAABlSYZywW6pOKquDib7HKWmAufcl4Q7ocsSUgqENWk7+TdN/peJz25aVK/vemjjYMLEhvaP+RFJ1lCY8IFS4kh/dPc6CJ31p6UF1EgiKBJySCAm/uFoHFF/Trg5A38naOYBZEmS1h4bZ5ngQivJpNJGAecow8gQOnrGb7ZaoLgE5Ed2m5pSsV263ES7+YoIeKKRe+DhJzjvEglKy6p5YcXGcm9SuAcSa6ZXwmp2Wc1D5D4MTrXmHlSYw8rMPGsQRVkFOi86ZUQGV8tFnDta7ykZxc5yRhfcHqZBDc0L/jpy4VBM7tbTCtZ9meqVuKL18XldDapzOZE/J0pmw9bp2l7DdKXvmDbT5yl3kyz+ZfWatKFW/K5CGIq7pqrHoQGfEjAqWbZcxTXvP720TEziN2yVOzol2mfIs+kIq6JsFjeNK9kqh758UzagH9WNqP115P7zS/Y37E8CYQBM1UR5Arnok+2eVKKtmQ0REQkJoK03C7pc8IzlnLiYTxHpycvG+62OGWUlrrVgasU+SugnHDP4PsbFb8XF2/znOVzo5SW02RPmdiGQRyTqBVm7JKmXo8LjFZNpIpMZpADZuowk7aeNNZU2cMy1XkYsnQH8fYVwxIBXsEPiTP8wCm5VT/nCIcsZrm8F+zkH3x/PxYvbcocvYf8qf9tYrcfoRIKix1Rjn4NYk72uGC/MNvS0sAGSDIXbzUvBbQHSXx+tEgrvVc15jFTfCX0+DSfQGjUuuh8VhXEcen+mqQpLJcTKv6FW58LWQ77kn21Fl8sfxyQ71umduZ81zp963DePyopJmVSrMSj9c3SP/FPIDcOz4OlNC2hyf+tk2DyqEkwqZPgMVuwRqEgW/BaAwXpSXSOmq6FcMzurBXk3TXWIvAGGPDpyfL0BXzPlh9Oz1bf/wTff3BF7waO5G4ZQzlNuQjSkHhgkpI8rw6CvvnRtIIKkm91vT4y3SuW8w950dy6l0RUnkXfIbzQYrHlJlpDYy+8zxY6rw68EJ1FCCdZHRHvQEAgWL6P2UvJF+HRGWwtdVgY6OKjymCdnUaXQicVVXWxlaCwoCJWlXLHGJ63n4PVQj0PY8ZJ1EUSER7mNJP2SsIVz4L8GgxYdRLr+Fyp6Dzrj075uZ/Uv0buartUDynSiV2kx5fnSoyGt0bxAEwuZp1IDSrFqpN7zDKsBB5fguUm1Tro8qv6zCfptHRHu1gOqLuObZ01tzZHX47vsw4CY0cTlQWU1rw+jYB92UP7TNKOqPq0rPpKLbTuwRs9X7ZPAUEUDUv8kNz2ZH9wd1/6d+iax3+8npL0SmZrOWOZbvDI9EH92qC5zpDjzwdajClWtmgPW9rilutLRnDnerOnLmmy9clmXF2CR/SydfQYiJaS0YOUwaO6ewuS9FDIZxefSCi8cuNhElHAAWxEJFo525pEEESiyNPtTRBDdJ4jGTYOibMJSpX6svh+N/ZKw/aewC5DWnu4quJ+WiQXJEd013qEwGdEVSdHShUsa3l8jmdox3IUI5oaAZpg0wRHq1uaAnU2JFsJs9fKjSZvyepf+e+CRXcAv2Nd9VAdBOYobRcrrYtzuxldquw9LLiUiOHb72nDTdvpRkRh7XkVP4Ro7ax4MA90OGD8f4RUFU0qO+iI0tPjp4iqoh1I1siwM2b0iPxAJVEF09A2C4PdPqxXL5YbWURKWr54+eoH+NqJKqyRNqvjiqrhcSv1hnNnqN8iVbU1nEnLc8EVdKa8vulW/FC2DnMCII6CSBbd5cFCa0A6VGq/Yule1R+UbznU9djZGuDuWAa7s7eQNEDu5K8Tv7MfDp/eLe92C3btnfVFwFHelAnoGB8+xmC06vdScov0xXhnScWHuUeZOr6fKgVYyg+EmnJdi6K+aZVepSZrmlfm+GgbCADWiarjRagUKCc0LCMpPiygxqtj0mK26sAscPzMxcoFB+ciRndHsdnsYftDSVNvRY8zUpEOMlELtw2U7mlZVOrQbs8sHMjcemfbXQpIZylQDEPjOScJuyG6kXiE6anVZC3U7H/kOJX6tmKQxTuFjRuuurI9I3oMbLD2vn51qLG1uAc0PxAhcRCW1nF9Ls1j91yax81z6do9tHXiZVmrWvwGDwjtO+itNx3vDywtHzrmzYqxfT50mtM5ml4E+UPafNeaOarsHRCqvY1+A6q1GQWCznjzeN1+0z+ytDw0qqWMQ/X94d3J8AZJsT9tZ1cC6rZ237JNh4ZKHx90K3W4B4fqQvIsp+1GvDWAtGjlLLJ5hJIUy7NXTTHTaT2D1fGEOEvUKyJIYQptjj5mRRx/lC7JoAIitpNfcUXQxyuRxNsih4cSRf1/j4w484rV71ysc4gqNWxPmBXwb+Uw1gWb+mZ5d75RzaKtOXTfBFpapgbNvUuqZMA4FSwHD3pTW5JMY7WwqYS9NcFXR4SuMf4xE23FvHesTW4MkHohJyL06eTYuTY5QpKhtTeaVOEc1Y4nqhGnEHVy1I13wTXpPi8D4zPJ+B9QSwMEFAAAAAgA2pkyQ8FaZVzsBAAAARkAABMAAAB0ZXN0cy90ZXN0X2dpc3RzLnB5tVndb9s2EH/XX8F0D5Q6Q07ipOuCesBWrO1e+tB2T0FgKBJlcZVFTaTWBUX+9/FI6sOUZEuyJyAJRd4d7373QepCdzkrBOJP3KEx/PH/IQWnLNvQLGboDXJXC3Tp3TlIPlQTlxkVgnBxjQJevzgk5aSXzDHvWyqS8nHlxAXbVS+oXuOC6xVg4X4paMqrVfe3gJO38meBUhZEnuM4YRpwjr5I2veStSYwikYkRhtpARWbjctJGi/QjoiERR+DHVnjosyAExtqeHiZk8Kt5C0QMHl+LaPh9hoWSeKD4mit9feVKqChi2ECexZxkFNJixMhcn63XMpXX+Pgh2y3VDKWq9dXq9evrrFTG8KJ+DNXVhzVV5MeVbGe9gXb/MVZ5noLQ+s1+4IjNlwU9tYSeAIhY1aUIA+t1/szPo1sWQXJh4TVS400/AZ0RfffL58ffsF+zIpd0FLdFh4WJBBkI4HckUx04AK2gvCcZZxo71SkeIGuL68szHJWwQQ++xHhpaHm2KIMWRZLdL/jKBABvpODRxY9yQF+DAr8/OxYIaDs/RRQTrhrkkA6RXwoH38vClYsGp/5+yZZ+6ZsS6XfnI5bBtjdjywjHqIcwWA0F8ZdHkWcMYlgkKYkasWbkUY5zbgIspC4w4IBHhl2OizNrArPt7327lj4daPly+rEXdv/EUmJIEf8rnx9Y0lucYK3B/x7iiP1Dp4zAsE93w46yag8ESIS0TGJoUC6tBMiEGFyDKN6Fp46IfZm9QrhYUFz0BISBV7xoksW05RwlVIwulIjuZWApJVsMWPI5FibrXk7xWWAle2wo25RAKt8eRfI0/CAu4/IePmyxvVe4/gw0deyXH4d6+vjxQ+kDVa+U2AGwSfnRW+5UQDU9eW9OjEmIUj5Ji8fUxoOnX/NSVdT6mOwXtCzXblS2aKQ5s0oVltiuQZkYRvCKS5o9DljgWoZORV2QYrqkODTjnHFu/5SlJ1Lmg3a0cM8D4pgB7UHDr5WgIdyNSP/tq9Q+wp73dxuhWd4vvOu3paOgymRv1jxNBkmOgOl5ABKVIM0jFFSYWQ0Vhh90OM5GKlTxEZIQQIrA5pqpq6eLb52omv6+8uHA3bVrJV9MFbGvZODzk7qRlzzyKu9TCfBv8lcds3NGNhwv8lQrnuDYq8wfBYs/0PSB4DeQuGwVxgaUV73Kh/L+Erm3ibakXboMKy2UWdqPT0tCAC4OZU2L/srbW8qnHIGgtwzll5l78REKbO5KFmX5/8VKK3lGaEyZo8D6wf0K0csl5cjEiHBkPqeodkWBRmS28v0+YZ0V0LmDBKyeu1jbMqZDXKiv84bpQxdu5hMSatE1aPevGoXWdU0GFFn+1lhpw1wz7lhtcSqIgcC++qb0aVT4sjfZZBS0UFyO6YPY8cA1PFtI8KnkZRyNUx+AeR2+8mc4OfuQhmx45tR5lZR49Bzy2jBUt+c+ttULw62qW5W11ern2/qm9Ty1e3tT9e3Lya1rSwDe7tXY2xqE7ZaWp0vyqOP9vPYgAtPALodWLWJaxQ2wg+FYsVxARwzmmxVSwkEYGybO65NsNc/m9Uu6GmZwd+5PbPKCVM/3dt8TZds1hf8nihtzfGaaBUTU/bOXUyM2PHFJGm3jXvOiHaAVx8XnXviUOokMyT3AZ6YEp40kqt/YECnPWYMD/NdAN9/UEsDBBQAAAAIANqZMkNhqRrc5AIAABILAAARAAAAdGVzdHMvdGVzdF9naXQucHmtVk1v2kAQvfMrfFtbsuwEiCCouTRqm1MrReQUVdZij2ET22vtrFNVVf57Z/2FWUggEZYQNvPmzZvZmcEiL6XSzlroTbWajFIlc0cDagwqLTJ0RGN3v3KEW/r4TiZ54o1GozjjiM6SsLcyz4XuId5i5NCVQOpEkSiEjiIXIUt9Jwe9kclPnsMNU1VhfFmLNhdWJSh3y+g7xs0Lepatv7d1IkgQ13jnpssjoO+glWX0uqxBMI+Ud+JMmpGCUtXqBjooL6Cce1NL7wWoudL4h2K47Mtty2gR8oo0qohj9EAsNnVFGgeUgYX2bA0CRUFRixjcyu+zq8iGgfGwoze0Gk4WsO/wGQ2DZriHFBQY8Bn7oSc9vSUUhdvth62ypiUIYfphx4uXgrxcttG6xEUY0nPQcJhKhdQSEkMU65y/CFXheBp2Ecq/Ieu5hhcjBDmmGG6AJxjmHKncw75B0A+lfVDvJN/gP5BvBwi0jJ5QFq7XUAXrT40DMVmz0Idie92z4xbI1RPE9iT9oNH9VRv2pimBDDTs1aahw1IWCC5jvjO+mFr1GHiaU22Jtwddq7vnAgHdrmok5K5afVNKKr+vastkExSSpo1nGST2SWRyLYr9MbL4bK9cxs9RAxWUlmtXoioTfrQSpqVNMS4s8pLreDOoxY4xloVpnX873csoGmcL69faghtjYCl/BnPr7yNSqagVFs5SVbBrfh1t7z59IE0p/EYCO9/BtCXeZlYncNo5HTgM8p8O2/LEcLRvne88Qzgad7B1lwrOunAN3+m7VhPaWj61oGbPGut5F63ZqG8sWxMMw9nVajKdTcbXMEnj+YzHs/n8+irmlyu4mic8Tel5NuaXH9jCw4ocXMBvFaE3nrJ940rhsSGv63loytegj804K7niOZrBZk008WImlV2y18FE6u4todbdyXrvzUD7e5kf/iuwl/+y7o6TZ+xA5Frk48XvXQV3HDdvKOgcLCXGg5T8B1BLAwQUAAAACADamTJDK4aMZdUGAAAQIwAAEwAAAHRlc3RzL3Rlc3RfdXNlcnMucHnlWl9v2zYQf/enYAMEsltHdhK3a4N6KDZ0bVGkGNr0YQgCgZZom40saiSVNBv63XdHSZZMSbHkOH2ZgcSReHe8u9/x/kjhq1hITdSd6vE5frk3TCouIo9Hc0Fek/7pkIwHZz0CH54SJxHXmil9QqhaX/RYqFgtWS+7XnC9TGanvbkUK7IS/nVOGFPtL9PbSK/cRPNQ5av936hiv8PPkISCBoOUMKCaab5iOVV+3ev1/JAqRS5A0kd2t+bOTAjYnHhgG9ee11csnA/JiumlCD7RFZs6MomQ0cmo8aOSmMl+Jm5IkGfgrkUUzIOCA0jca3ZHprnNbqLAqy7qgzb0HVh1BhYHjTlwHCy1jtXZaASXbsru+mI1QgkjYFOj4/FBb22LYvprbAzZpnJK2VLLfNHVwvumRNQfpGLcxaDYG8Hy2N8JDbm+s3W4bim3UAhQYxiKa72m5LoQ5/KAPJuS40byJ0i+qZvS0lYr58pWkHOAO60Vgx+bWLK4RO0qTaVWt2Bb33n9FSjIR0TT2jtgIdOsggxKkUzFIlKs7zhDcjKeWJiUODEmMsFFmBilPlOumOrnHn7H9ftk9lZKIYeFLakkW0AktOfTMGSBHQ2hWPCo34hIrpnFhUfZS0khb6i+7YkkxsO5xRN4INAZY0u4yQ0lX2ws+iKaQ5j9u76LHwd2o86Zddes4CZnxJnTa2b2q1JorkOGNJ/YLUkvNql+9Iq/dsYl9ciQfBJR9tvGKEeiEYrMqSUJhCvyB4Uk3ALtBmlPn67depm68Wo71qV8+2dIo30mXJTXPuPGQF1JOkYlK0Ai4DVxIJkNr6Ni6uPiZDy2VnwRhnQmJNVCKqA4tgliyW/Aix6kC4EEJyWCH/ahaJGa0J4iN+GVi5o3Z6c1g/MazSaXaODVr04t7EYeVx7SWDBiTtsnjCivPYyIWwVGo1JaOvHGDrVTjRRfrOgNl4k6mbSvoGXla0tos77r5boqmsuArmtJFdW6TI84DyGTMV8ErOzUjV0NGZlaN9yUCxyl50cvK3VJMkBcLW2DDw4OLpaQQRQ2UyKlVQTyBuERFLzIZwpvZ9xkLiRZCBFAEFCVSOYC/z1F7rRS5BZMN2V1YwkEo/ZWIuBzzgKw0b7O+z3Ib7d9rMlyjpf9zSN5SIfkMCCHM3L4Fzl8f3Z4fnb4hbw7vyjORN3mTNMF7JF9OS8mk9nz2fj4+XP2YjKe0Fe+P5kFr4KXs2PKfjkdO0WaZt9j5msWeEtGAwiEanX6MD86z8w4+sIjk2w2jCsljV6Nbjl+FzKxT46EXgxgyypRlvW9tFF59/bCGa7PSrXyNX0yO6a2Ye0lgBbiFsIu4BIkqGmqeAvIsap1cyxyHJ1jxwBORfT+h64szp1JlHU91YbxHZu5FnULxadlqJxxK1WoqFsFQ9pOX5b5zj5AJftdyIAqX2Ax29SHBoHHVpSH+BcYpGr7zJa9mXFMRSIk4rkQzu5tNIZNOuS6YvYNkOtXiwVsUtmYKWeAI3bclP+rxmealsljK4gF5Jw0ki8N9ZUNcY0eW5p3Q61MrB0Picc1k9OaQwVtUZb0U/u9RIbkGTGBOspkdOnwncsDMODNjEqs8gdXTnPqfFAAMAiBy6vu+NecujrfGhhyK9p03BtopTPZns9AndCfdQzq9t56Emq9sI/DUK/NQ8f6R4r/vYR/vcW7nYD8ZnnwuGeTBx4FmGZglS8ixgDY7RhNmrvSTYDMRDeiM38Ee43yPTYnCqdhWDfmWpo5IMoxoT53mub2FsbOBfYDPFrsEo7lBhxtHK2lja5ZFMF0JhnX/2wzq9DBsdi6WQMlw2M3LNJbaw0SpW3NPaWmYl0qu8YarvIBpx+x77o0hJV1GsDklp+b9Jb7Fr/amblNrVGczELul5x2jyopbWr0Ll5OEYOEu8XRRfvYxc9r6d1dXShW9nZRG3Y3dvsReYixIH1XY1Gx/Rkr5OInnKERbKNGVitganu11HzRIv4A4ilqbT3GqPNKyQLzTLNVxWnn8JLotC8Y3Dd37X7WNyGBOY3xG2g0HhMXa5PuwWhr+Vi+aW1Cu4Roq/3QzIgvdmC43gISNgPdMcpkd8cmV6odJqZTcT/jb66FvNvJDclM+ZLHKcmjOKO8ww4u2VDw5zkG3762fY3VxR0ot7sXjDbV4vGRdbWt1fu5xodJ6Qs6554n751mmpq3dvnrmvKDoLp3d2aYQEJOoze+gCGDusp3a2lnMKEgKaoNWrPvdBWHzKhslmpYllwyOjNvBxHUPb8WNLimSOxxzHrIe72N9ea5qcuexaizGYFN/0OQdHkPZCuCDxSTQtS9/z9g6J8g/X9QSwMEFAAAAAgA2pkyQ0ZxxoFHAwAACQ0AABQAAAB0ZXN0cy90ZXN0X2V2ZW50cy5weaVWS2+cMBC+76+gJ0BaWap6i5pL06jtpY2i5IQiRJZZ4sZggs2utlX/e8cvHuaxWxUpLJ7HN9+MZ+zQsuaNDAoqX9rnD5t9w8tAgpCCtJIyEVCj/5QJuMG/bcB4lhuztqJSmTqbB/xWNpvNZscyIbTg9gCVjJx7fLUJ8MlhH6QpRf80jQSw/TYoQb7w/HtWwnXYtJVyDa21ekRbQxN1gNtAecWkA+nd494HTQgcgmuXHS7QVxDDSSUShVoUxp4XRyej500RxpuOtQD5WGvK58kZ24v5WDWRPP0peBXFg7CqzCm8tRmj8uSHh3/MELcGcLs6OtcB9FiE5gj3fsn4nTIe08IK+YwUf0SZZER2vD4NKqKkiS7xkzPnPZXFSim3STpU0ErIrNpBhCERc9s540KQH02RVfRXJqlyHqfQQN34OVjYToUUcEtl1khxRNwo/HhrCuthMYoveapB+Ii2OV6yKmfQCMwumktv2znMPJ5DWmcntcupA52URUOSAalYbbjAeYU8cl7kFU5i2nBUpHX7zOhuoTZuf3s7A27FRjY6De4M3a82buSOjMG5oCPveFlSqd5uMgbRrRjr9zu03+GVHVfcLp46Yfxnxsev4DiU/V3rLmuSdLGf+k5T4QWxCnKPqxsHOE4w58dKM/Zyy5lOy6m7vDrBICdt66fTAedsLYmcJT3mJAGnIZ/th09/zxnjR5/8XnPHESmg35EWQw9Z+4Qt1H6N7T5xqAOqCliQR3xP2TWvcJhnp3Uw6pd1dhrqHDuLOimk6gBBJW9OPscCJ9JnWGiGStPx04sVfhqmWGNXJAZkwE2tBfmC7+nEixZU+05mTlPT6o6bWcXbYDKFWjM3hj79Pt5udeQSG2yQhBYI8k39nPGdGVTr7SZVoyyMqjaFw9xBtFyUMykbuP/MeUyzhPIZJrdYqSka3cUjaaHKNXpl4lAvGsm6ZayBt+lU1pqgUuMt/NbCoPeVcI1mj1mvMa2TMfyAr5ILcofve6NcoD03EfXC/XOgcLyk9YfQ5/jPNLChfq/DLTSuhAyhzY07IG4uTqXsWOuFGmR9HI7PRpTqfrm0eXTU1QsUr04d8Mn7D+0BhWf8NKXVU3bVXXNf6Ne/UEsDBBQAAAAIAG2jI0OcuQUE+wMAAC8NAAAQAAAAZ2l0aHViMy9hdXRocy5webVWTW/cNhC961eMnYO0wEbrJj4JVVCjRdtDkEPqnAxD4UqzXsaSKJOUF6jh/94hqQ9yV2l8cHTZ5XDmzczT8FHn5+fRHdf7fvs+Zb3eqyj3nyi63nMFjaj6GqEUrWa8VaD3CFfkLST/l2kuWhDbb1jqNIrOCTDaSdHACFthKSTTQirgTSekBokPPZeoii1TvCxM3jCE8mE9uf/F9d/99nchMYqismZKhcmT2WGVRRHQQ1VcU42Z9c6+hrX+Giw/fJ2LN6HXBwEs8KeONWtLVFCyFrbEwx7Le6yg5vcISmRDUvOwXyDPgb3zDWfWYC1XbQXEp+n/kdXYatBH4SmvHAL9OTKfjWZr/wcRWE3ZYa91l202FT5iLTqUqaMxLUWzeXy/EaabzRv78zboTL1lHZ8Ic38q3EFR8JbrokgU1ru1ZWMNCpWimPyTaA3NY2mqp4xJwKjxrXerdIIJAFZT6JsM/kAaKHrTbCt6bceKdV3NS0d80rIG19DLeg4y0Ck5QW7rSu9QJzGt4zU8PQfYn1H3cnFYtbjHNkS0pgDTWgg1jgPUK0ptygrDjYWix+IcgjGeAnz5/NFrtxX6GIosBbUcFDMa4xUISYg+4Cfa8wn0Wz2FPoFdgvzIlQaxA1XSPBkGaWbtizELEYIOPj6sM1HrN7dh6y1/6BFolAn7B7WaY+BB8orgLo7GoKDxHVkvtj2vK8MRjUMw5BSotEwG1FVQUcU0ak7vzkkAKVNHukTnkrd3cNjTSJyUCQdGQiCRIqs0rGewFkxTVeacTNt85/Uyu8XeQVpGcb1R/Z0pM1kG+Ykt9V31kpZmt8WWApTvtuSDrHw1Mi0MauShS3u+IQ7lHG6eLp5vP8TpTsiG6WQ6ngEiPkzqJogOeQo7DWHuPCbddQAtvhTgbBHA9eorrK+plqFj9bSsjRpqfX9bukjHFHSDosZj0kjn3cZwqH3qzB2w1ESxFaJG1jouCw/YnsDVGt5dXK7h8uLyJXW5zofGnVLkN7fEQVUV3lI2/soIVR7H62C06Bl1kfbCJr/YLAtNpvNlm3VMsoZucRI7lyuDRHTGi9XUFY1dzUpUCwdmEL0DHxobH/JUuJhgbi9MMkqsMB8W5ITVYvhEx/9ES2zE42k8nTTLUxjZ4sFah5tjWYmPEAzT30Hxb7Vjymc4N1XUg5moyH9f3vdESZSb++RP+rqZufymRLsgQQMpwUswN8fTeAllg8tz4DKguRk2i2GcO6H0PNlrI6Ysr+yEe5ePkb75dS7knncp/7x45RrmmVgowQ3DXMXk/MpF2LcvvPlYqMV+ZmTWhT6Hpm+ZbAp6jZr8okzQwjU0qa7ZX4X709hdyx6jEx1029F/UEsDBBQAAAAIAH2YPkNM4vwfzAUAAAsVAAARAAAAZ2l0aHViMy9ldmVudHMucHm1V1Fv2zYQfvevuKYPloFU7lZsD0JTLGjWLsC2BkGKPQSBTVt0zEUSFZGy4xX97zseKZqSZbsNNj/Y1t3x43fHu+Pp5ORkcC/0sp69ifmKF1oNzlqfweBmKRTkMq0zDnNZaCYKBXqJDxlTKuJqBBXPmOYpaAm/WpDBCQIPFpXMoYFHCJ4pEHkpKw0fhf6tnn2a/c3nejAYEJZdHIWqUTIYAH4Q7ga3TMgumZIhvKWfd1OQZBvDpQalq3qu64orYEUKS/zKuOWbMs0IrOJoUCDf2QZWgpHSQip4u9S6TMbjFKORyZJXseUfz2U+Xr0Z2yC9m04ISeG2QhYgFwRimcP51WVsad+sJdgVMGcFzEwE85JVuHcmHjgomTgHzYf/AGdnwH8MBS9IQJJz9EcvmQY8D/5YixXLTBR0ByMWqYXBPx3xi0bcxNT+SfkCJhNRCD2ZRIpni1NLGoPfrFc1hiKiGJ2CMRnFfoW19aatQ68Vr/yZf8aHfjNZ3XurT9U9K8Q/zATWW79M/NkbFHjb2iA2Mp8HeL4lnj+SEsU9nQuba1nFW2eQf0wyOCNS1oX4nutoSPLhaARiAbtiwBTm8KcseEgNM4trkfNeAuslL4gFocGaYS5U3NRLh5GTTvCEz6xkgtlcGuCQ4NYMWYYsPhfiseaA5+zSkRa19zC5Ebol0mEL43ehNLAsg1IqJWZY8npTYv0goqvsFhyeG+K1wtEOGxoMgzTqLAyPOuquavGyBW+4wJECxYMSK6E3rlLHxH/cpk04rTgYSRAJ2zZMekxKtskkSydOpMjeo5xiuM05602L7oWgvsCqDayRHZ2GA4rhyv7ZtipT0FiDwrUkgzvZ5sZLgIkRJcc8Dx1u++u2RnecF2GwnbIT8GvqkTCd6rrMeCTXBa9OTWJLJbASNpOC5Xw0nbY3Mvp2YI0kCCxmx9YQ3S6kpvTpSRGHZff3ktuh2Xh4F6syE4g/7vC+LFIxx/pQpu4w7BXF3qYP7lfWs0zMASsfd+7Un9O16FsZOhA0SlPdrlEGqW0vFRjaSwluv7z+evduGC9klbMgYW6TVz/dteD4o++60hDexfSVe2YtfAe3AAX/VoAXXYBflMbim+cYKZl6yAybAKWcigIsvC5sd1gxkTHTGpq0IlNzm3S3xXbO02i3hB74BqGDKAg1sZHuRhVRv+9E/co4xlZbFdiBkwRohlkL7Gt4BaemO89pYBEFvI5/3i5KLHOVwEzKDF69gpvKtFTX09x+Yn4KH5i5CCiaa6F4SLg3+pYmTjp0ZlixudDm2ww8Lj7O7dbFSAUXO8PmhrxG4XsrGriiapqLvSGsLmy8Tn/rdXeY5wFOtGtwSoU5CiamBqXxIsWuYJ6PO9BYNh5cuOde+o1xL3+vNA5cdAiE6uP0FzLL5PoQ+f7ppctXswp/e9k61V0zZ+wovoVl9cBXR0Mc5obt0L1cCY33cnWqJjEsSLSjPs74HrvEIb5GH7wHqP4kNla9PElhWH4M9mnEx9kJpWpukvwQRTLyHC/N0z6jbnGS8aHqpGW9nlmNcY1Aoq4idO65NR/Se1bRExfqhs8J4P8TjH6mOc9n25p7fn1bnF6STrVb343iOMuyzrKKPx4ucWPkiV7hwzW+API9lWOMcUghg17WLQPDPUCM9lh9syPHSqvlyjVfCb7+b+6yAOlZia05O0g8fEe9Qdvva8TPuVdwk/5bxSiM0zcB5UZ8qEnYYbwHkRT7Or9VHsI1/vTikmK3Oqz46JE0r1bRk8N2Vk+o3xkqcZMvZDR8T8OVSwWaE4dJZ+Q6dZb0Kt2YNNs55QXP+H6lmzM8fDN4OP0Hmi281o4aXlc9BBpzvQea87LMNnt2NTeeX2kuvEaO8HW+Z1HY8f1ifwuGRqqtpibv9H9QP/N6296c7opG20aXsXyWMnhKYDj0Br69eATf9nZtWqXcXRBwvqrVco/PpjDO0+3pmNJwqr+Ynvcs+zr4F1BLAwQUAAAACADamTJDDVfjmTAiAABruwAAEQAAAGdpdGh1YjMvZ2l0aHViLnB57T39c9s2sr/7r+CkP1C+yrSba++90dWdy7S5Nnft5U2Szs27JCNTEiyhoUgeSVlRM/7f334AIECCFCU718yrNa0jkcACWOwXFovFo0ePTpayWm1mf4z435NL53Ny8moly2CdLTaJCOZZWsUyLYNqJYI1fAu+l9UPm1lQirKUWRpks1/EvIpOTh4B4JPrIlsHv5TwXK7zrKiCxWadl/y4EP/eiLIq9SsFgV/qLsWbamVKPIEfWSF/jatWOXEj0hrUU/zlFlhKq6nv4Yf7WpYldEa/f4a/xgE9nOZxEa9Lt3gilvF8p4v/SL9UJf7xQuSZ/v5zKQq3OiBTJFZvEIPfZoVwS2XF0pR5Xizj1DvyAloyxbDZUlZZsXMLbaALphD2Zxz8XTTKLMQ8K2KoawriDMlClFOchXH9cxaXck4PXQhpVslrOadOGiCvVoWIFycnJ/MkLks12FE95tPJSQAfIJeX0DbMQZwkRF2aomR6nRVrAgpkhWVfrUQhghj+r7ZZsI13QI5ZkGRLKAtfsLKiyif/84yrTCb8L37sPuteQmWZmhLL4JKfjDaEqxx6vs2KxamnRJW9E+kl/fW9ZgBOISqVFcM6xgNxACsU9nVNFensmwOi3TniePivhE4A08/i+bttXCyA+9c5TMRMJrLawdt0LmAgEsYJk7ZDxMOcbOMySGlaADKBm+spVbPCMiLYwkgDpCJgVkU1ATGbqIBaI00W9O9CXAfTqUxlNZ2OSpFcjxm/l2FY44B+8GjCUNEVfspNLgpFcuMAa59GBtiH2xo18pqr11WpOlSIeDbpbwNjuphIoDoVCOJ0YTq1D1Y9gdZAgakLNVBrHACf6k8Va5B0dOEXotoUaRB+rVD9+sPF64u3t2+/CSPmolEbQj2EZu24Ci7ef7iYvL+t68sFd8vpL8yg8HRYwcOnTun31jT+IQYxZ9VBfHDhvzjyp64vsa3rLEmyrYKxXck5CKh0s54hQYsqXloQN0UCJM/jnm1kspjCk1GIxB+qui0UcGlsaaShQqWxkp3YwCW10uypJRp1f2Nba6kOy8UUwFp9BDr/XlS2rAviWbap3NrB1ZVcXF1FtciYEMOg3FMwJ8FIdWZxCn1OJShZeBVk18SBDrgaCo+6nAQTktKTK0fVBl87P7+5srttvpOavwz+kaXCpljo2kgNN/gmuHDJtWNqnF6WMEllVWggpw4A1ShDwB+KvpeiGgEoQMHji4vW7DrDGWE1JRawwwQS1LPgobTmUdjyp+ZfgDDPclFeYi2gxawSJI/wC44Kfzhd5888kcA8U8nCS/0qxRx66goxQPXzGdpeIF0aVEGCiLWHq/sCoCbrkYEFr9o0BDjmMdkk5CtkJFtPuQQsLIUQKJbl2M8YpwO0NuiHXbYBBQFEW6Gm4f6D5o7zHNVI5iJKRiIaByFacIAi5ltfvxDTbmP4RPFRD/G7EHCuXChIpBqR2EOlq3wAzGy6EB5fBPMVFJqDPAmeI/WpksE7sUPYznhJIiE6gAhiHAAjqKc9phe3zS872+TSTpM4vGazONxGwx9LTODEGC62VRNYF8GorVMdjd1WgsOkiitIFnEVQ6UPIdJAOCFSAGLTFKGe4FcfFwdBaKYeiprvY/OckV6/49+3LqFfa5ZpNYHdex3y2/Atjo6+tqrvMQ+sCWiJTFg5kMwcU2OX+IdI9wsXUSgZ20ChSYJJDY9Ofe8jNcttw2dID8uo2T9cSY6ol81u3kXKz1di/m7q09nxfA7Dm7LV58pl4i5LNJRg8qYBCCqWb2DQrrIFsRZCV/LuJk7kAuxoAwntYRRVK1lVMl0CwYEpkAQFMmMi1xLWrzMxjxEsaPPrWCZioQ3OqhLrvFJGM36eXdcMjKY8tQaGB5rdYI0rFL0qcMmaoeG+lQDXfW2A/TUGRNkawwiCWZYlXjbPW/ys1tG6gKaGPEJdbbEPzKb7TLHOqcv11myQbBguBqx5UqYF1gUzGVoOCWDpVdUtmsaaNlG4lAzmYI0EZY+MqZuXvJ5mhFx+aDXlyBI2J1pixJGf+Llttm7ZsThLIk5H2CWyiFA9fNliGJpmixVID0xR7yoWWIhyXkjSMePgGuivhFFsZoDOS6Qklyu+1dorFdsAgVgEBNSZZop2cb2YF9mNXAiLQGdQM83S3TrblH5bxeqMa/RaL5BRsOlm/YWE9ScNwK2Kj4IUVqClWp2WZTaXMIwFVUHdWsiG2EXdiW4xmB5YGUTLCKz0D2GZx+uoeo9T9SFUr+F7+FepvGjor3LgRFEU3t5eXTX7ipOnsOxq+HX8jrU0jlCVQNbAqejR2ej8Cr52/GIRPuvQ1zB7RAKkHC3UwmAccgi5A/CYv3SoSUI6FKJ/a/XXwavUO0tTD9Rdus8digFHO0QfdCxAFV+Qd5AZwy8ssm0Ki0X/u8I46joKVLJKRMe7WbbY8TLD/x6mWS5TIfrKrBH/FbzvK5TEM0DJ5eu3fs5O2UMa4BIEyBCYmPw6YT24kJCwCGa7ICR01IY78ReNEoQu/hNabI4jHJtxjOvejlWfyPuHbiXND34ZQW26LM5CRy2H6b2vYj0Et3b9nMSEryoNxq31ioYJbTK+wBAA8cZktPCBwOG7vP4Kdbl4X+mOS3Y2r+Pi3QIG0RRIazQIvKA1Tl3wP2qk5KIoM16LUUEHsGlYO/YasM0sucD/SQsL8/II4LSa5Ilv9BtfQLfpHQvuqEf0kYu+ln3s9I/oaYf0w/n2ODWIbsjssAgCf/LkNzQxgSBBVZcesXSw6p+e2C3gc69rD19EjghiUbGfZ6wGPgteiGVcLKAEqPAyQwsVTc4trg+3RZaCFvungJ/AZZs0niXCXRhagKgPTQk7VIbC8leZFmoQ8KDHilCrZbOYV45jEDDoFPCLAA87Ihh63CwPL9ySsHregAmOFbTO5oUA2Npgv5GFAH2DdgB7zmxBL1HFnSUSlDQ7vHsI8+/QwNfOZk0EjzpoUgkOTZY21bA8RULEoQyxhpUXNITyzSUx4MHUaCjYD0pkT/S8YX34BX9v9znoAKxnWalUcHtlWY8WMGJr7SbNaXk6gOyQh3o0N8oR/xvL4unw5wXBCrgpj5eis0BeyBvoxSWZ2x0w4pKZuyTDurvQVr6Te4qgfkiyeNEHCpCU0YZIX6eAPkG0ZIWY4mIzicnB2cGtllg8lGER+y4X4hOt+GrA+9cERlH4iupp2ldOzZard2D9cnWF6Ly6Ghs3nYM0Vc3qb0QeWaDCeJNUE6hPqO6w92sC6GlYkGR22Yj3sRnnsOzvaZ6hdLaOlLW3bUcX4Adr3UfrhmgPG76pdtc+GIZoeK/hcYCPZZzIX8UAimwzTcNFbdE2lA10KdsKwg/wy58DhrRQXk/uIAhG5Z4xrbfUSx0WUGsZ6nZUvwFlYyBEEazKixR0GqIJu3h1FZSrbJMs0HKlpXu6FIhhWAR8cWG5mktbHOxb3mnlQ32xtE/tjIWm0fWKAjnoWX22XSiavaGg/oprVOZKXKTyN19Nw3pY1/wY8xskcPUcv3bUN3SoiprfAMXMHLwz3z1w2pQDFdoP6zX0HRy7SoXW1HCH5fFCJMIx7eDbVC5cRfEdFSItQNZVnskU1QIujXZAc1yna6uT33ZtdQJQWnF+z+FMbbbodFpiTxQCsfuq47aB1TKrFObgecQDH/ndamgqj/4BNnR2IwogxtbOsYNDZ3ebVqwu+n7Srp+2UlV1udbAXb4x1wTkc+VDcKbcnOw7tDDFjRxignLbIHRCPeZuf6r2aCoK39S7vV/6fZtYu3ZtWj7Njq34svasbUpcGlFIUi7m8lqiBF6oaIM77MW7jsm7+ul6PWgdO+jH7Z4PdZ8xopvyShN1nC43yAcO4l8wEnjrQmtCVOW6uHcTAsZ2GEpUn5DodCuII9OnOyIIC/IORpltijm1E572IaVsRs40cJEoP0d8E8uEDS9d04sRXd7gkFwj94CkjkCZTtTgOvj1215ZJ8up4fxuifct7ZzJ6y6pJ8vAQDlQ9jkeQS0I51Z7jhjyt03FbR/AAMmpiOvjS06Hil3Jac9Wh+TE2vsmsKziApDpRsagVXfYJCowDOCcPF1DJ5E9ctn1HnOc3GrexaWv3h3n0DgID5pMhYTQxeN/ekI3M7SuZ3efUwwjNcBUnO7veHIZFbneff7oU8zzaXaqgpbbWYdNurP6V1HNV8of/9mES0w4xGxVVXk5OT9nyySaZ+vzCe+znE+sbZOh+zFmbvevpbs2ZYb5h9Au0wOxa/Mg+U2TOu5h62CA398irX63P0+kmq/mnLuGFwXJxklCvs5STT7XvDz7YszB2ypWkcJZ+WsOtch5iT9dkngGENGUwAVMIODPzvbySd4DzIoFuQVgIUWbB8op67eSzWzY/hB65vCsFBTfz8OMHOR8p505OCTF0LwtSNSw9rVKI3cbhSmunMEsYNpEGoxi1KtlYz5QQFe8JMAweUILQPJ6DxG1bltPX8VLZqQ4yAtxI7NNqc/CBOr0QmlvLeJHpAtaIfvGo6dsKB7JNsxF0RgVdcAjHZciFXQsBGEd6FDysUWHgLR72WVlUjg2xhMrDlAx2XWTfVE7OtompPkPJ0wH6BNS+EOnkPp62weoGfztcBvt3bS57WgOYxXa4i3a4wMFm9PiiKN7j+ExPhdUM5fDUB4x1Mtcnwi9mzFpQj+UuDHGv7kbh88OI2iqdyAl0+mCITTspdnDjiUwyTohsT1020OoLoy+7R4+V4ThXU2sxGjFoP7DwHAM7WCfS6xD27OicVDoGGJvdHS/SnGIvl56u3D+o1zQT7j90dhvgoMcAJ3R0kMI2Wm6jzDbJCnWgOcjSZHqBvFiAaBL0UuLR9BPE/rRBNQA9AlQEAY3HrVzw7N1IHVga22iqCmAzvIeRwEqCpJBHDXJfJDYrxI7NaI1tzdOYOdvLxToLHStzhRm6OnBMoErHzjb1FTPdLPzqjab+FynOkW1f/b1cly6UcS2gnIRY9pjOyauMcmAcDX5Zysm3qioPijuWZYhYQ7azWEvQzodkYfTcd0/Dyk7BNUQU6biJ0TD3RZZFwH73ag2uSIUPopyGjXosIe+9bnT0JQGKejQ/B46bzi5PyKdsx08E7ZXWvWatkcJ3H5Cz0WGZ8CtmgbaIVE9H5ncVS8PFNuqFhqdzY3P3xPNI00Op3neZhhG87T7qOgdG0fZegjJp5mpRo5kvf86Dr5/+io4J/D2+SV4aiCcE87OJxoAl/4tiJNzjxxtUnC/Px3K7N6Y7qFMPQuDveUoWHUldfrXtjzaxxAHHiEZYrLgaA5btTipT/SBwSRR4ZS4cAcRKTF5RrrUD2sO6FnyD7J6NY2GmHmj7khbEnNsW9I44OxqEaA9ZzReGM6AXGhZmuxckH5wRBipPnasuQzVmw17KLetsm2wjtOd21jNdL89/zh1NC9xdpyam5zeR/y2w+/EziDP4QScX6cxU/JDCO8w7CxJbi1OgjrufHbVdkqh78n+fVtTWwcrOoM7kCUZFfrQ5GHMmRVLFcSnF5UkU65lAm8p70JZxSpdgzryRA+zouoM4qYGoL25jgV3dlQOXLWyd3cZpzrFU1jqSN7OjVUDDPqbpUsidVkdE1Kd2bmlPLUZTxN17gGav4mTTfOQ+ihUJ09w4zpU2z74dY3dztTzeie4cdYgzuWZicytQfm6Q3PV7g30IMtFSq0nWbmnBSrqNQXUKaN5tl7HZ6XAN9hK0j5pxKc9XfIIZ5vleCPHf1nJ5crffaAqb+8tnG3yhf6K/Wgsuluj6TlJZkjU22RczkMVV9sHH9+3gLd30Z6T4Geyja8roQKwcSiu05epVrG9WCi/MB6Zx1O/wRXWqORaXGH0EDx99vL5f//p4gvPwTb8EHw+gaNmBGNbH59dfHX2+OLV4z9OvriYPP6vf9UDqHa50P3XTWFLjVM8g807NeT96+xxh4HHAH57DXWHze4OiY8p7EItb0MVVV1T2mdOij0++L2K0wUfLFAJxkxKsLbms2uPWEwpWa4FOUvxcc0HSk4fpnxUaj9b9wxQO47KuZOyuYuioSOS9a6dR5OAshlhMIutB8LyVJGlX6M86IQHnfCgEw7QCU73uraI/v8qgt+Z6Eexeo/yn2n6rkqAFuadKkDNbfBPyQ4Akm4GhqsbNKE+aIYHzdCC/6AZHjSDBnJAJMH/Qw1h1AEGN7rqwBOGPSgjD35Yf7Dod1P9BEZ87oOhNA/XIt3DX2slo17VaqYb2ED9oygfs3Lh6M/tk9kkDfxZVQo7uwg7sHqT/bQT/BweXT48otzKeaMytf0BqBl45dl3CMC8/s/rpjrTD3QJe9Ta0vLVMhQ0GVb+QQO24T9owN+9BuzZCfVJuWMzRrm1rIMilv/JygOltJ+VI0pz+5B8l8EetWkSsA+CxXqy0XlSsa/fDlhhYb6iO4UIIoB7DhAlkAdu8++yDWVA+JQouysb1YHRgh2ppYbYVNBcT1QJepWPC6Ly0IG9smWCUHFW1ybOygqSqhnZA4pSVKu8P22wLTqr8XdI1BTtkm9XWUltqFTqslzpEw+Hk63b1aOjmh0wvz01O3U0ZdvX6NQkjniM7FeHxljtCWNRhzx5N+SIEBbNSKr+QZxkD+uwXXP74CCaAPsXC/0BLX1LA8VAzlG1QbI5igJgQMwvPYe14RLM1klwEf3Jbv+FWAOTLjiPArG2WTSq3L0FDiMVZRnhCRzLg0f9sWHJtKzoNiMPeSOOGtmi9rjAkoRmlfKi1gl0rTRF5BBDnDasTSePFcHptpwP6JDfos435Yq/XW+SZEopmfq6o6HsMa8PQZRtdo+bo4eHIA9Fqs4MWb1sLDWovkeUf6wTqY6ctOv+9sLx2IOc+OFklnfK89V21ny4tUUsrTiAUQ/kEV/cUsSUPCIJhn+c49bIItzQAbTf1wxJR/zjNGPIXg3Kpuc+aLWANd8OFP/W2dheD5Ungcdd5f2w0EWHp3T+D0oBRp24ojXtYNPJrw6+srv3ZAEWHU882mv11BitUFpsiPldcxWhxSAD6eQt5rO3Ybn/Th1P0j/LlsOh2/fiZHgCfZhUFxJFWi14gxGJQ5IPABUT7Dvzo8pRbh5D7FYly/mGufnpcDwzAnTLe8q9Q6zrjpGIxsaI4jvCY/jlg1C+2+n6I84AGNZ3F/VeKR1iITw7T2VDUxjTMervtSRnyVSQ/TVNQQ6MGNLpUH2hU+EcnQ+gX+bZuVjuvp50JZmT8sYjzwyYOxyg8YkRe0xGnDjE4BctD4z28RnNobfTveHS/pxBx/NCpz+lXuu4yZ4Grfo6nX0Dd4X6ln51vkXDPl5lH6NOVyu/Pt5pJLzsvMHhriu5h0Xbw6Lt0xFb+Dly0WZ7r+6+eHtYpx1rs3T46eocy71ZbL3xXpjruJavs50CcYd8tgDRQ8FHXXFxj3fJOrsQ936TbONOir5UuHzrs/csrLnAmn/y9dIefZktS+ukHN51ru56RYWZF1kFtAeTibIW79zuiN02RzH33XxQ3/PaW46vzPYV6jgDuu9+bPcK0MtgVJ8DbV8aScfXum7tNpBWIl4gySmG9dy556SswZvaOPVQGHzO0G8tq0lfu6S94+I9rIbW2YKjOummmPcUzRkU8ZaPezZz+6YL2gQO4mImqyIGUa6BBotsvsGN2Y77bAC0y4hV424oXZ+1HTbkg4PddXVXqHvAi/Xl9dprDqjh+Q590pX16L6wVDu2w8BczV6pO+YbHoeKTnyj24VcLtyWMQh5OJ6oAzqUCsh2e8XF8YYegxO6jycOXjx98t1PT6P1Ai8JdvoFPcVnummPREMknJ0FP7z66cc6xCJwCtuEry4zcGSZN7OootGWQsVhDZF0ZvpQWcdb/wW3TjetVl/rSwrPUPnSFbMhlj3Pk1haAUaDN61Mb/z37FqnRdUwiahafMkX3+I76hN1v1mTSIw0to0CJLnTLoBYhQDilxZATeIdldVrqt8kE/yo2aV7GB3zAmo314udVyzhnzGBumQFoybqUv3buj4JYEXZu3afTVzIvyM1xU0lFoYdtxOQrAMzpCc7OYmwIt5RgjWTGgsm49tn371Q7KHsjJ1Ko1+7PupUWquYr+iW6TxbYzmQ+DdyLoJVlr1TwZ8gnUGDUkZ4MLD3LAS/8vJiF63CGA9ObV6jKJtXGdhWShuU8c6juy18ibjEvUexXGqJ7fMdl7wcjBsXAaIC5GPzgLFdtgkXLNKecx/IuxP77DAwZqWEuSI1oUofgiM1SAdNNfGa+21znaIQrz6Bnty20GoRYk22bDCFoYVUa+O6Oy28Qauz0a2WO0Zt1ImdDssJ3zgl3WPdDg4sOAjlfHqykdH9OEPV7sUdLnfJN7NyM4PBzTYzNSsoQdFmzeV8TGbnLJ6/G6tb5jtuCDtnOwwXyRZAYna/1aOsFedqvlZ4pnG6Np0Im7R+1WHC5nS7rn0VMIguV5j6El+jZcppr885Odr5hP71Gk4KN23r7ecXz1gEwuJRyBuhrHzCkdfxwMh1JUO5inHvjF/xHYcIUnkQMMbUGc3LH558Efzw05NvNYHn8Q6vKNIXHfruk+rMlE4ej0IoCxBM2Wq+Mi/XqGbxySjUKHz9Zvtm8ebsTfRm8vbz8zfbz+lJND2DXwqP8DBUZFVPGQYwbkpfTnayAegGTqxB3zS+6UdjLpUZ8hq6BFNJ1gBTMiCSnxEc0wO/m5NL6nbCmvxP3za1s5oxr0URxXkOluqIwakrvjUHNZapHaICKjYMrc84SlhSSpjgby+f/4PbCp5hJD6odbXNOKMLVtb0sgHAuin9/P3Zdrs9w5Jn0KAANY3bqLAUA+18LVNQ1KIQZDinAl5AwQaw9SapJCYMOScgrebM1Hov+Om0jXhxxanwvXPU+Piy5XPTJ5aQo7zp5LQ7Jm2+Xb+ZPd+TKv8hU/5hwc7ajoiceVLTQSaFz/1iwe6Y0i7LwnK3NuyK2n8GymCGtikZH3XsoS/We9h0D5/VHqvkDvtbHR64/cHrffndQx/W78ELd9i9dUgNpYiL+arzTJYJlQc1iu4m+l1UnLj9osHzErChzjTMdlxRX8GLdQfeTN414fvKqENEe0yjzgNFFiTVXxcWrTNoyxgR5sh1+04Fg53mamVJSRlh+hBqCTqgRF4ReGnkee7ctdW+vUqT8Y9iGc93DbmS0MPIetcdtWsHMJiewvoE/cn1g9Nb7WO2nqGfmQnIcsp00Dh3yTrMiJu3hDeX8PcpKpf2Blv+ZvGloiwavKJI9NK6nsx0E49cNHjqtYXZUaJZiuLjA0pDilXftjjK3kY2zKMvVtObyTUv9WwhW1vOdPOBZ1H9komyuVWHbNjLfB5K964LVbebl4XwU7oukY6V2jlR75sp+naGMecdsiaa3KzRCdaf923NUqwZ3xsG5pu9leZtmLDfWGtgk3wfhcQrefH31RUQRRpWdXpap9nBx+n2yQEU9h1iAF8dfEyl5lqto2qmbbGgJUk0HYAc0V9VyJKRL/UPx6Fb72b2zIRvv/E1x1+h3xG/OIqZJ6O1bUmaCFcARD5emFSVgNK3exI3hExH2jhXvPTJHJzGUWGLHBoZ1W9LHPvKFa+6Hh8oSlTi5LvLkE9aCNgJrMNfMqlybnTcw/PpigM3T7IjDvrTJd+3UeAw9iDs/vYsvlckmhg0LRFx/1xLxfuyTJjhbFGhY0+6ZQTO7Whjy4gNooYqtmUEXVOhZAR99zK/YXwq4md7ejVw+TWQQI9TVs4NHKEe1rFe4k0L/QDyQ9t570M+7uz711jVdJ5IkVZTuTBxKsav5czAE7pojbevxY1IspwzbgMMfCiLwEBi3x7/Us5Oe1XCpZ/jdr7twPLPJl4i/vjizNxeH6zEe5BVc7mOE6tFLcLUreI/2LeKt52yX+4BqDptAXV4ttGATRRuTIMlwExXUX4taJ1nNYWWCH25dSeH4j5BnqWVFZbCDzpnR6dCrycGQxboKVVUWQEoG+0Cg46ud8FWVit7frrPStQdmAQvGRDd5m5DoxPTzsza2PtRziiawsQaPtKcl+/OP6htwttHOvOB/fYi+uqRF+3ymsSr1TmnyUaC6f7AkxB55+wJQoFpqUHe9kd6ofLZdxPrSzzs4VywevD9qtovOMQZ0fYmtn2Cx90a/9Huzb2vK+S7JklvMu2dKV3w9zxdQ2/C/ciTtknV9Rade8w/xe9E943VWd68eHzYNHrshuPQf583hffgeiESAQLs7ugeIsp+plK/Z+64kzC7v7kaKtF+rov+nmftHmTafc0d2Rtk4lmXHugLn3GtoL7PoJM9bth5ts7jdKcKJxnbXOrnCtrF3B/6RpOZzPz3+LiSk4I7ZUkSdKx6qqK/OGAMd9FaRqP90tjO6mrc+uxuFDxJEvssr50/Trss+m5JYLsw/Fu2SoOXa+gE5i/HdKh1DJGnrloWqsq/QOWoxMp/Ee/jdZ4IjBbxRtMi+k09DI+YnJ9vt9vIqnf+C4E6x6IdEbk0RxP9pbOXevomGKBbCHPbKj1vJ0SjoFo9xxNtUtMpGpdr7PFI4FAdlZ7ENxnGpOiwzEN0HqnXS+soXYsH6Kyksqs5OpxmgUl6rJFRE21Nr70bMDACK7bPYqD6bGjXTjEt9Tv3iK2YMllvEWtSjgK+78ouZV/1Vum7c/Xwubmatt1mjz5W2uPPOPBi5ONz5RybI8c6dHPcRjI5NuotZLOM691L/lWkfQGywb83mYpZpZn5l6CkiurS7uB/BSYioANudHDjKUeHPl0uTzxTAVN2iLsIuuYEbFpaRyPCp1nc+Ez4zREyUwz6CS4vEXV1wOYJUYcaz1OoV+SFLMWIHyik4D65uak8qEuxz01RtyJhIvIYvqhDAOqEKCKnYgVPLgDMxROncwEoBDG23pTGpaJi6n5EQeUUBV2jrriRqaxknMhfY1llqQoXSx0AhSjNkQpmyoWo8Lbb4Bdsi6JuVS4ILFLfjkZD/Jr//eZKjUpx3yuSuxSUxYFS0EW7UZGa41Q4pSNWDOdxLs9v/nhO4YJxVWeHRGsrxmMqcxTjUHGGV8ZHJzZ5IIlOpzjg6VT7edAly+IMD6mY40dhqA8fOWGb5SYHtmhOsHL/RQa2snY0NAXKCt5juiPxMWWChb9RgR6jfBSeh6fB50GoxmpFAk9xU7lQnbe6paPXv25T1euLCEC//SaM2Gbgqr0GU7xYyxSTIZgLC1kkulytY+rioJSon4NtvNPbOFhXliBy4fUs21RMe+UO+NlzrI62UnJ1rLY/eEOdo1Tbk440DCk+no5AxkuOOFBRw0aihhgmVdpRCS4Ekx+SyvB1ef5EqrUYwhuc/R5KxF/rBAuPM6IdkdGpczjU7Ll2DaRPVWP3u4fpDm0fHM/ABykeYahOrdsIijti1/jXODpQN1G1hrh9SXJZsea3YGvV4vZJUCZCvMOtK1Fcx3Ohjx8rbnlJdBkwBPLIcsAoH7XA41ziRpkXqgNYmeJI1WHiQCekRalj3Lo2RbRET4dQ4U60BIq9/+ARHiaamLVTVMdlHyE8uAvf2DULMNxyvfL9QwzUaNX3UwOXOkLhEhWccqCwvSbEl0QOvAw0m4612Mqlx/ig21HhFcF1F73W0RY1wFAXDC27l3HaA1pjfWgLmjtUFbstzDA0XYOlBZzf1yKWO1PlDmq3VTF0DjjR896x6jIHtepUghb/D1BLAwQUAAAACACOtdZCD75/OqIFAABVFQAAGAAAAGdpdGh1YjMvbm90aWZpY2F0aW9ucy5weeVXS2/bRhC+81dsnAMlQKbcxL2okYHAQdscGhS1gB6Kgl6RI2ttkstwl1YMw/+9sy9yl6LkuG3QQ3WxNZr95v3t7MnJSXTD5LZdv00qLtmGZVQyXoloOfaJotWWCVLyvC2AZLySlFWCyC1+KagQIEgDBSJUN0RyEiAmUXQFQGgh+IJspawX83kO91DwGprEOJFkvJzfv53TTLJ7Jh/mAcI8OkF3o03DS3IreEVYWfNGkrwta2HELhb0EArhFH5i8ud2fckbiKJIO0pW2wZoPul/mS4igh+0sMJoFlprcW3UyDvz9+Ka8PUtZJLsGlqLID5MglIRCVEp0lhdfli14U1p1Oiat1JnrIGaCyZ580BuoILGpg1/8XFnSqLhRKttzwitcgtAMQuYV/XrasetC2hOSFplWIyMVmSNtdlCdgc5KdgdEEz/whxRH/kdWS6JfOMLXmmBlrxHU1hw+Nyye1pAhZ4PjicsNwj4z0D8yom1vCu+/vb3GuD1PYPdKT0VmKkCTk28rm76bw4bkqasYjJNJwKKzcxkc0awOQWCLD/xyhXbZBWtT0x9lVKxmSYdQHh02h9CtSSlNSNLA5/cgJzEbVPEvdLrBbnkZamS1oCo0X+2xqnBVtgrcgic2VMBthXGM/L4FNhYuaJ3PRai2aYIwIzMYnXqwQTp7nQD9FvXqr7lXmoYwLq9o8gQNAcy9MRr+KV3eOI51qsY52xFfKu/b6HS9mxgyhwOqyRtnVMJeWjTClOq0mnKJmRTS1aCb7dXi6eBtY854RvPXIjOBnlleVj/DyxTBaEYMaJge4iu/GNwWmHYUSKEVH4q7x0TYcawuzDvjjx0LrSG+tYKaIjO0yGjSj9VYpMjz7j/i+cE2+wf7OfpEO4g93sqg5527EYeeItdgd8yQEYYIchhj+lTQRxGFqbxypCpK+6ngHEhuUlmZLdl2RbZT7Qwr9uimOdss1FsKNUdyCofztx66hbg5gJQepTkXf1DLy2Vh25aYTygmbban18ji+3sGs5TjWA5z6O3BmTbVCS2Nxj54/Hs6c+LODFkMfG9sdTAZAFqCDxo+NyRKcdsNfv43TQsjUbH+gaggq8FeDUGgHc5SEjRT5E1rFYpHcaJ/P9BaxFfy06brpkKP+nJbmEMiwVZc174ON3/OHxd465bVuQpSnSdOgPIUmsqQP2w7C6F6WhwqbID1HiepCamCR5Ekntzdj4j52fnXtaZSE2VRyJdQYFEgZOhZtGjQozTdguGje2S+NH4vhit3lhJm7sRO7+g2Mengrw8i0dyUFOZbSd93lQivh8mQoDcr/zMlXkNeGuzmwo3uDx0/gpkx4CxONoWXjw1bWipg/EsLMikUSuQsjFDpyQ0Jatwv8L0BwsKEVveFnlAhmtHXriA6Rs26Mcxwzacl1pFS4FhC3PMaFc9s+/+cH3lZ+md/+3i+hvNCKoiwmPcpzteBNWNbSAotv89dYdvDdkbWPXFdVYr1WjN1HVJl/qBMEHMqW6xs70B9QOdKBi7d6hUaxP4mFCXRAVeXx5no0u1c5unEW7jshXuqhnrR8mfZSn3IvkPKnQoyeq+cPz1z3JqH2XBkeeeZscSET7THHtVZjC9NTQogrdBJ2NPlpe+VTA9+FQxxk99S889WFD3meeKH+3eo8U/Pv5kQY0DDxa7PumtkQlvDActOm/2XwTh/tXZGNu+uiW2217N9oQjsnPrfVAbteRniLS331vh+I7pXOiVBtv9+18/6vng4TWKt68k8IUJKcbeUqkdKQffS+Nj6F7fHbbQKw2thL8Mt0RH9t4BR5sz8iM2MQwOeKX1zngk3B37+h0zGMkDm6aFnw63uwOgR1ancG8YW6BsBo5BW5XgWO/lsZO9VrCr/KvrScAa/9Mlxb/Lvtmu0PXSsxuD0XRc299ryDuOcv8CUEsDBBQAAAAIAG2jI0Oi6PERzwEAAAUEAAAQAAAAZ2l0aHViMy91dGlscy5weYVSTY/TMBC9+1eMAivZLGna7oIgUpUD4rAXOFBxoJTKJNPWkNjBdlmttvx3xk6bdJetyMHxfL15bzxraxqopEevGgTVtMb63mbrELX4a4fOu1Fpmlb6Y9J36chrld6wg8ciY8/gVvkt+K3UPx14A1vvW5dnWWkqHG2M2dQYgLI2+0Gw9i6tTSnr0C1TzlGjrEIvVV2oanbNbj59XL15PZ7AjNAjAVUjT77xtOBFvpikb5eLMR0vRBH/99d/RMondJ8u9+MYJ/uK7AnZCYMnvyQm7umcdnCCz/mUblfkDKWdM+f0f3VinMXrs/jXUbxcioJ/2S8u0yXRfgK5Az6LF5MKUTxPBGOswjWEgTkvm3bVSisb9Gh573sJsq7N7UobjbO53aHIWYRWJ4WgHHyghLxvStGhLn/AxaLfWR3ze7+VyiF8lvUO31trLE/mPfbv4IVSam1oUzAWBu6HNsopTYm6xFPSx7UTQ+9D3z5ppJxZG9tIz/+HNuyneCAxMDqu1YiAyu1QJR6pfqyQJzeapKlqYJTDhQujDLASuiDBpwH+3Hv27wqdFo9VFJ8IuBiQxdkpdMr/nf+7bt6yLLH14O9aDOSox1CahA4UONEs2F9QSwMEFAAAAAgA2pkyQ73wA4W/DAAAWDYAABAAAABnaXRodWIzL3B1bGxzLnB57Vtfc9s2En/Xp0CcB0oTWU7SPmmi9tqkuXim/yZx5h7sjEyRkIWEIlgStJtJ891vdwGQAAjJlpPe9OH0YIuLxW8XwGKxu4SOjo5GV0Jt2tU3s6otima0cD+j0dlGNGwr87bgLJOlSkXZsLQomNoAoUibhjes5kWqRHnFlGSIAoQ/Wt6oZjYaHYGE0bqWWyAysa1krdg2VdlGE983srTkvN1WjSZbneC/bX0ut1uh/GZQjBeN5fi3UK/a1W+r9zxTU/P0XNZ8yn5MG479eRkAtA2vu/5v4cFvznkm61TJngdHJmreLNNWbXxm0TQw6Fmm5dgOp0j1ZLe1UHxbwZR1E/L29emZIY1GI5pW9jtM5AuYRFHC3Mpy3I9nMh+NGHxgas9gFebEP78MOrBnAeG7SyZpbma6+xvOYSUbOWcbpar5yUnOr3khK17P9JBwKCfX35yQYZw8vOLqOD1uYJ0Lfoy0Y7PMnTb6S87XbLkUpVDL5bjhxXoKpAZWJIeJy1ATGAAzn6YFeeNA0ynDbpNZh/KrLPmk6/Nwzl5YKCbXZIpbXl9xdgN6wxI1FTSiMSq03rwH7sUC/qzThy163VwpL7Utr3nNy4yzRtVo5EainksfEXgRCwTOYLbGCTwnnt5FuuKFRdipmOZygYjiQ9llR6tlzzyDniENlrvmFUwGGB7tTdT5pgQT92RhBxCFM9w1iLUjGhkSZ8XCnihrHLJP2WDJ3rz6wQ48o63MUkVPG57mvk7NJvVGD8/O2IllCWOTyzLdcuBMklgjDdZv9QaGTNGBedjIf6553+l+2OCos0Oq2+88IaoFKOSVKMMBISd0G4dQ01CnibvLcIXNLnNGUnPV1iVLnn16/Jmdf3ry+d13yWwta/C7Y9/yp47BTTzX81IUfOx6VIMfcTrIqr0NfvtSN1OIRnnupTleA2zTOZl+9J6PqZAr6llQq4FL0ex7DTRmlNQtZpUA8CtajEFANr8/UoxNOSCW6iO9UalqGxdryqDDbMqSNM95Hth7o9l97YgWKNhuV2CcAAsoAtcfZJTaSw4V7nk84I68CxuOZH4bds/jYXfkXdjZJi2vIOLYpjnvHPwQ3rJ54IboQ799/TPiXAt+Q3O9KuSKwVbZhYzty7YufGhL3Y9dpzdwzqzXel2j8MAyRDdEH/x3jKHYFQcXAVFDzlYfNaYbf/nYFfXwkImUHOJRcD+x1xqe0cY/BycT+hdr1b5LMd38SMbs6tCnWBHPnIfQs5zd+OEmg9hUpXBSNyxLS7aCfbzh2QeYnEJ8gONbzk3ghJ/qCVvAXDx1CQ+IQJQfypzBbGK0d50WGM+poPtM5BoBvgTkB5Z8Hwd4q58DLvRmTQMbZUHHbMzpmTkb+j23e3ioppVAAwEWc5iD1YHP8S0Pg2kv7Ap2CDYvBuFrD4oMGCEkP9IXD1rmHy20t7Jb0DcdSEJuV10kRPTdBZo27NXZLz8PQZcbtS0GyEQ9DB4iegE+kP+pIkKQPBSC1KGQfZ579473PHgn5h4OfLcIz5F3Ilw/3vFnhWxgL7p8mrRMlasKO41M5gZmc8V5aVBcxXPwf0psbUTuR703G172aDeAEgDo88LqAdrpnQCxfoWgY900wdDRDAAyTu7Hy/4RpXO9JpBgqP7wDdFfiOeWFQ+CcSnBkphNGCdxVHtmDJCH54avqIjpKSJqilBL7cSRn/Ts8Zi41WgMZ1RrEVP60CWuOZ6JgVBNjC6yo0LHlUz2HuZ0kMNxJTNB5y+lnlaLMM9crwdjtUR/oHgMliABcyKWrhWvB1vBxybGfd4WGcjbvqIvoTAcVsR5BULA8Q0GYIlDzLYUAMLgILwVWfj+QOzX0JluKrYEWEgaqNlRXVf0EJFhF6c1J+BClB/AYGt5LXIbS+ESU46U1h+1TXNdrcrSonA9EEuW1D+ZsVOVNFgmaDMIlzgGEBtZ12ItMjhyJdrPNv3A9fYopPwAO7uQyoHKCp5S0ncK85WBAyUsNK+NyZa1qjeyLUBPPnf6smN2eYkzcXmJkt+3je6BhzqM32QQbgdGEUkDIQnwuMEIJpvNyRxz+ZM5PpjYZF6S9wiFWm8TF0zhdOf/pJ5JWpYvU0nX26xOJwO/a5QjNq1ZqNTfokgoH/dJMDHdfkqVqsWqVTzsVHN0NMs7TKzdX19xeSNTiRW3bjPAbtQWH1StyDIX7JNXGkmwLZn3AebUb+7OwDlLTpLZeynK8XnHjGWRIs04pCqoIQZGerbBpXk48U+P/i7g1zCuXncWRZ7P9rRLGbAE6+fKYY9goF1D1+3zyJ3tAw88CsN7l6QfPTe4bZF0UKQVgNIANC16huomCpSM/Gig9J8NB5HOsUYVWr4FfuqWriCnBAes44uIdGLwhmapsGQvIdHyqzpWnlCd0wSvS37WFI1hE5VS7ZC0xDrKDnm6bRisO4UkLSFWTqKWpW5ZmtqSL8JpDGSYymvAny9XHw8uEd9spF2uLmiLLvnqo631Yn+TVuJikzK3xMR2sbWrtGcAuSGhZP3Rl6i9kDdATdofvtBLJQ+ISIOIoKN6yUksPvd38TDYeU3tti8pY1/jzNhPf1ZpmTc6MLy81CO4vAyrvqEEnOX+bdDY6qUTEKvkLdNde3p1Z+7uMCxwV3smYX8WgAdSKHx/BhOgDxYr0u4u2xaY6W0ixqP6rDu/uLnIL44vZhfzd49OxhdvHk3s3+/n2qP/hfiT708u8kdJ7Bjxw8lgybEQBqMyJf0pS3ozTiZ6E2krR8eMhTAIg8vZsNivu6D+s6tatlUzHli39j3O/hmWfX3XpB3SAEcJVXQ4UQPQHC4UUQ7Iwig2TTFAQY7+BZlOyKj0GpwlbZXfISHruYKE7A7ObZeelORJL1K7NVMZ+Fz9oqtjgu3Z8d3ysqwjGC963/Lr+cNI6VX7GQ+T/9EVDyWehUPgLhdbaI6udqkBSn5XgAdRAL2GbgHTLVnSyoflSbIGW6Qk3n/5r94tOBVlwvk6Ojp6jvRG70dv1tAfy1bRqQcGMeudyVwPppmzlZSFCxYdrh7VuN8/0764B25BV4vc4jqm/BFNtUvpigq+uKbqNgda3Y4o2vtgxg+bYPEp+SHLeKUwsk6rqhAZ1QZOrsvcJgMoL/k8CYeHYmd424PuMRjDXuKkQNQ0xtYpe/r48ZR9+/jbiXMYdSMVzVKHDbGFwZp8g7lwwzmiDyLQPqI9bHH02WGUbUWRo/c2wRE4aqw7I2XRTeJg4P5A+2nHUwCH/K0esjNQxevucDL2rXfg4vgJpGQqvQpL9KDxqaKXNkxem0DYP6mD2pk7CVVap1smYFm0lDkby4ryMlSwHBQhcZr12GbsBV+nbaF853T8xLTrWz3pdSoKirAtwiwUDj6axuWL/uksvWJ0vSVlFR7asm26BaUXdXCcpVvuCedlXkG+pyKLbF5sSRqNdfU63jL1UfbMe/zu8oI1h5hFF9AcYBm43GNQeGy87FQXVjxFzKrjn5ihiMPtpPENRXxlOxFfaibin2Ul+qJYHxLA/5mm3ctGxFcxEa3AHtugOw739yDUPVKP/go2oqHvbSHU/Z9kH7ErKwfaBY3pK1hFfztlp13oNOTLjxidk/z/oLmTibiXNtkz9+lQU/EthEqk525V8iBzcRUZmsyOAJnCH2M3pqJk3qYvksQ3ml+oWnUHu8Cl8bH8RTJEXI8VxwpRbmvV3rJEq2N3CPQg7k4jdxYDjTxRpgtdMR5/SnxWiJB9ghMSf0FQSW+LbF98MBFl1VJEOSWlFviHgsvHQWkkUiFEkHO6ePYuNBzdpMNmaO2Wn6pd+7MOYvlfph362tFXzjt2mH/NZcXL6AQcYwsVg+m9vpsl/m1ZIYpM9m9YB2GqSzfk38HWAMJ8pUJPxO2/pb533cIE7u9cr1TklZycfqiI32214xJMrDfp7ncf63lxs+YDpt/s7U+mZjVnZt71faA5M1Ovi2NzLf9zuEs9Z2Kv3G7h+FyW0DKmXTpyvQ1SfB+zc793W1DvIbPvyRURrt3+Ljz2j91NtrUUbPcvIRsrPKudF+OGRq9Furt4Xroydn4bEb+Otz/rslfy2JmufGpvr+RIizeVNy/wCH8igpx4l6/75cQB1/gyusaXPXUJD4hAlNuu8WX2Gl/mXePL7DW+7N7X+OyAb73Pl9nzfO+VviDFDC71hRjuVYe7vwaiO7V9NSJa/4yducB7wE8FIj28OqhR+rdaXAnwDowq5fgjDTALYTQcXpyVhn3ZsS983QYMiS/v9xTzJbkDvsLWABFpwZ1cKxuTL3NlJPbub5eOvWr4UvKxCz389YSzUmji4W9ITNxAF2w8IV3DQfd+zasu6wVil35xLWf024bJ6L9QSwMEFAAAAAgAbaMjQ5oOioPbDAAAzjgAABAAAABnaXRodWIzL3VzZXJzLnB55Vtfk9u2EX/Xp4CdB0odHc9O0heN5YkbO4mTjuOxz9PpuB4JIiEJPopQCPKUq8ffvbsLkARI8E46O2nS3nh8JIBdLBa//YMl7v79+6ONLLfV6qu40qLQo7n7MxpdbKVmO5VWmWCJyksuc83ElSiuy63MN6wQGS/xoVTsDTKIR6P7wHS0LtSOvdcqZ3K3V0XJ0mq316a5KmQpdnugFHXvm1fPL2yTGVNLBXPlpa6HPcM3fwAIJ7JmwPey/KFa/bx6L5Jyat++VYWYsr9xLZ4kiaq6DFKRqIKXqmiYFOKXShZCL3hVbkejUZJxrdlP4nrcMpzMRgx+YK0XW8FmNGS2hDHsEfz3eMkUyRCzl5mAmZkWwooTaUbjnqqk2sFyQH8qJ2aPtmW5n52fp7DoTO1FERsZ40Ttzq++OqcdOr8U1/r88XLB1qqArSlAhzk87ogPqB85XRwUg3HQo0ueJ0KzhOdsBXu4FcmlSFkmL0EmNZuZ8fhz+ZDN5+zyS7fhHjVQy5M8ZYAFVM0Vz0Bu2HKfPJap4QAPneZ7bjPiA3+nYs0WC5nLcrEYa5GtpyjzFFSlNSxl/kLltZrxR1egkfFPZkS2nsQNrUs1acfDoHjB95LNkW+8EeU4qoosmrIoaod9MWO4g6X4tWRqzUp45klZ8QyJfGaoUYcXPPT5VLn8pYItSWtmSMRrYPr8UF8tO5kGpJIlGB6ywb1nG34l0NIsX5+bGeswpAbg6Si7EPvCKtvRbCHKqshZ9AgtGHHO3n548PHd4yg2uBq3/D1uuhxmVivMHS9+aTZawRKKASoDIxqBkHEY5OJYBveCDKp9Cg7GAZsLL4JLB1LY1ACLhn7jO4eaNfggUYquLgDpT6kDdkySB6mx3xV5sVIKHEVuVL1w2BGEJ1P25YOvp+zrB1/fLIdZoV0g7Vh3nSDBGxpkZEK0tEY82/OC7xhsrCGesbGdJ51Yfg6uQ2TQ3CFyDAttYS0z0RIaHegZw/W7MjbPFEPmDJ1B0ybXVhYOTglnbHpID7zkQPHBGsCs1gMZ7AzHf/TG2xmMsvHF6n3Py2Tb7sGUGM8pjo3xcUK78mDiioXkvjSGvkYe9k+8fouCi6ISXWR8xzMtmvjzMgN4uPEtHIJwGHuE/ztByIRxfgmBQOalKMDDYdA+QHihjYHAa0KQE0oYX6mqZNy4HghiEswpHM6eAAQhIsgE1phSHnBCPPsCnNUZ0J9xl8sZdkKUM8h2Q2Ub9/ReJHItE0g6XNQE4gqurxdKUEe9WEIjXTf8otqtYP2A4ERlGejE5Aq+3/C6AEvIxThhr8d38C/4rrGmZgMaljn2upywIRoQbV9AUAaTBv+uOqLZrgV1eQy9Hp/z6z1PwLqyTB1E6vPT1OXyoZaT4gxhNBRjcI0TkICNXyjQN+SZfHNizEEWLYHUi3UhQo75W8yENLkSNA74xxkONQsbneKiutNj+IqQVxRYirVmNJKxk5NObCrVsWaKyBSXu9a8Bd+XgT2jCwSlVJCzFGTejQFbgyZ8GUYayNGCjjNMsD4nnSQvcEo+WVE+WX3pNtyjhqPyyarOJysvn6zqfNI0N4Y/ZPko9i0p5Rs7xPMDHp3n4nNV2oTrei8Cvh6bwT4iZBuNXKt6/rQ2d+Qe4XkDMMFgQ74vOJgiL3xT29jWBSWKSGMMzmkPJLMQSNjZGXnJrcSTD4URbELJ62Z/JmzhK0of22nqxsiymDiL+YLS07x1QNUqk8liI3WpB1wUjWD+COOhHFpPALcDhHjgCsBeWpfXBbyd+Ad1YLsq2bJU6ks8umqIIClbXTf694XAYYtK4364IrTNXQEG3S9Th7yeCQDen4r6F12/3M4Z6DeT3zi3Ud9tc5eq5FnDu6/yQH9v7gsc4+79cPDx2fWXGujv6/kfWwn7iG65XRW6DtWJmDRibvIkB0TwCjw/fJw4XE1VYQGnQU+ctrlvV89MIeLNq7+zulIRs2e/7sH/apNILZe0kOR6ufQFa9mWMJ1T6hi3PRN0LY5YAm2Wkl5XiO8UheTCyDFGg+asrqV0jr7remxvmV6PXWlDuw6PhnQxrJfv6u6bVUOnsQVy7WrH499V0LpWzXpAKQTR3gqb1r683xPmb5QVqcG3dgVtmHaFbDpI0lai8B7+XGx4Lv9NHuuYfVTu+N5Ke73d/YQZX4lEyCvwCw6Gb56zsBSLAUMJ9AfnBXuGvFeK4+aE0YGZbGuXPyQiBZwwewROe3/zX5vOW6AKPhRQSpnVcokCdJHgzNHFgtNFaHDFDOPhdbXSSSH3x+JBu+P7y+/2uno7MoXO1Ebmg2UTnGuwblI1udSRhROeAoh2XGYLeIJebWexb37O/iRNKXxr8BaQrBBdPbKui3mnSJtoNTy4SbbDFQ/LyC9f9OaAx8DZIAOjx1joDRfaFT6o6t7yhR6/tY/vTtSc6OhO6Pnbd2EFdsTEU8Jy2bwC9kPKbHNwk70OKpOU0XADfSqCI8+6+hSkUThGwLv4VLXaMs7bd26y3krhJerGamzlrZIZ2ec4ooWBvdB07pHY4d8vE4GPGwO5rQ81M1J16OGku+1IeUQp8XijaCqMXYOgrxzOaeMzgN/IdtezcWhlx+N9gPo2yA+pJ4T6WmOtvwg4k8+J+0Ls1FUQ+YMKPRW6t1eZW+ya2maL4MnUs4DeT6cmbQsuHNz+JhdiYU1kyiigTM0BQUJCcH1jKYbye1tfsLxS1JfUuhKY9ht+5y27YLmmLqHgmpenqLI+hvSkBvXWa4P+m1XjRNKj9gKDN+YMvUJ/XcWqs2RXpberEX43lAB2olouwy6AOl0HMATL25TpZ/SxoPRq3J4A5p9LLSUwNBloXeelisGcyhVTe0Sdnz0E8yv5plv9AemfYy0cvAOW5+zpi+1FgRWFzjG6rzIU1E7om7rKs2vjC2zNwzLG0ovrXPCn72C608i8tAvxZ2nP35Y9WIhRZMyeijWvsnLGzh56s9ltxMIu41fgKKjmY+jjECRQbf60zy74xvhJDgd/cSVVpemDudBlnTVoLMG684o83StYyA0RvrZWOqKwR/7n/5haHy//xcKhf88hcYfQbw/wkZcC2C3yBEKCmO/3IFhdZnJcZtgv/AWJpmzFtcD3eftxLgxkROcYFj02OwW6I0dLS7GAxP+6eG4O5xbSJ4IY9d+wMOXGQQTfDq2WUwBdnkbPHobR9d9B1Ubkgj65uNBya+lDSBoICY0eok8HgCk337L/raO/w/5T+R6iJ/p8K/ltzux2KBimd3Yy5nbR/xAYQLm/PRjwrs/dcWDDDzIZ8gRxzGA0HtPpCDabsQfxX++ADprjzuBA6j8QNtpbXCciA9fxGUBBd5wGMaGKjZ/0QMNdcx2uUWPXDEMhLzC1ds6LbmmxYZRyvV0pXqQx+6eq2K4Cva+6VRfYiCspDoS4cK4JvP2jZu58DA9O/DunQ3/ibMiAM4rcJAj1fUwFxCZQcNIBCvxN4Pqtc55OOfkzJvPllpft/bktx90xc8XsefstFs9JN5/7p+wa4H6QABW8+1J/88IasZfl25tpB6lbbg0lnQyI3CU54WiRwnm92Mlc2GNeqNzpbTNMBpkAiBSSGLze+6o5pvxella7nj9ghvhph48Oiv/UpxD72cJaolZFSQYHCAR/TZdI7PuJZtkUU/CbkJ1kKDVtc5Nky/NNk504GnyCSQuJR7huhGMEJTQW7aAIw93e5kaGJYDcZdfcaHvy8vldcuR6QeZDd2sX3q47NjIdCEH+l3THLnClnbqiRHfDoqQQ6AEiNj6APzDmANKwA9fe7HbcBI0/Mh92PKK22oWkDOwC/YPeUlSfhGRqlB4WjOskoslSAU8Dp0fT+QfyBK9aNTTugFQTtz2Pw1VF748LDBLs3xW0pCPHe8BKNV1Xxc2NZrTHEH8btUJT89xeXDXWberHixyMbmw4Bf2H+72yKcfhV05rxCilsdyTnMgrpzJqZjdOoOdM3G+SdzvO+H7D8FuZTPNTD7aedHc32v8j8AYQ5uaQnkI/w3HIhVk3YB1zDR6PFhbo9HXEPq8ytbGPidqBTVybt25dP1MJdwJefSuuzktXUoXAu+5kZnTSsiidWvlot90b13gBoeHS7dwX6kpiuLNXOtsQFz5i4bJnTMSbGLzJj2qbs9c74A8bgtcLqARPY4LART01xO+BONZI/I34le/2mcCLokF3jUpt6Owt08PhEDt05++J1TkODfKwuzEL9dWb0euklLnemxmCAO2V7Nlcow8JK9XMxny2zviVwti948VlCs5x6ONHyGroCIEunO5oz0it9bc4eKXf8E4rnpGO+l+PIrtsGGCfgKJeLjTWjwHK5qLmrNEAziYVTibVTUGDLnPcZtBUD2hH3fz3Et2viTTD7/OXEv8BUEsDBBQAAAAIAIWYPkOZqSJPLAEAABoCAAATAAAAZ2l0aHViMy9fX2luaXRfXy5weV2RTW6DMBCF9z7FiC6AKnX+Fq2QsmmK2khtNxwAGTBhVPC49lApty8JpCL1wpbf55n3Rg6CQByRm77Yit24hMi0hobZJsvlxOxJOq4rSe64hJocVFT2nTasGMlIIZKS7MnhseEEojKGzWq9eRi2LRQnOCgDe3KV8iWJpMVSG68T+KAKa9QVPGcvC/CD6fthn35m6cWhI6eh0qyw9UIEQ06R54zc6jyHHYRTsnBQVc8NuVGee53Z5DbCueMZ/oUe8f56ncX/3+9HOz+MPBas5KNcz1U0NV0Q97bVERqOML6Mg4AGZuXS2xY5CmUYx0LUjjqYJpLKDo87S47h/paM5xW+Ir/1xWI6U8PaWYdeX5Vs+J3e33boqNKtv+2QOkdOiDuoW/WlnxIw9K3EL1BLAwQUAAAACABtoyNDG1tndmIDAACICQAAFQAAAGdpdGh1YjMvZGVjb3JhdG9ycy5wed1WTW/bMAy961cQ6cFOkXqfh6FAgH11XQ9Lga49B4pNx1psyZXkptmw/z5KthK7XrcdtsuMALEk6pF8fJQ8mUzYWtiiWb1IMkyV5lZpw+ajh7HrQhioVNaUCLVWdyJDA4c9YBXYAkGjsaBy/16KleZ6x9iE3LBcqwryRqZWqdKAqGqlLWw1r027pvG2od0mIS94sLhCUytpkHVjZRizencKcATxQkGq7lDzNU4ZgJurd7ZQ8rkfedzPVgu5vrgMgPvxCADvU6wtXHi7M62V/o2XFwcvQgX8tzuLhuC52btijKUlN4aSaXMMC3F4mZ56qAxz4oFnscEyn4GcnzybwTHXa0N/x5ute+tM2zgOyRngElSZnRi7oxp5fzMwFDqXkYXGIJimRr3frNE2Wu4Rkr7fKUXcxnLbCKrpkje2iF31Ou9U0veh+K72UlmEbSHSAtTqC6YWKiSGMhMgwCEoLb5yK5RMnCQczmsvgBZ5z4AzXboFCreL6HEOnDHM4QMvSSNhUuRQcMOtDfujpUFjyHPU29rb7s2SYJT4WaUHluEZWhbEGmqTrNHG0Zt+jtGUWOwF5DCHvrsKuOQfSXNvTg2Bw81edaF5hy1zLuzHZuUFPNhyBJ9UugEOL58+c53a9tUgIqJijZKkbnGZ8w0u0aEsg3E8YiT6NqmICmqNySlMrjq9+GRRWpF6KibfowRlSkHG0wHCcKS5IJX2oo91a9AR1dfFQ4GuuBHpz2T6ucZU5CKF2JtMH4R2OMOStlr+oKMfNUz2Z8omSy15hU9qarmt0hkLwtprgXozg61yjUgGG9hS3Qh8gxIoKnI07A4Wgv9LPfKrdvChjdX//yk1fkSqo/KNxTs+B6b/SM+/TKkyazrRLbeNWTrnc2JnBj4QOsLnUWPzk1fhgHMEhbuzi1Invc203Bt16wGLFsNrt6L51gM+uL8opIBNONISbe7fNBWJeg7XusEHyzTr0dr7ZsAHkXAEN0RZ5Yrf+7jYUjkCNS66TKXkQFpfH3/J8bJsPy6EVGDEWlJmxBvhcerQTJi65DsKiSA19XC5Y9QTyh/bKO/i6PxscXb15vpicb58f/nu5tPZ4ppGl4toBgslcQrzOUSdhqOO4P7d6LIaH0U0W/JqlXG4P4V7J2upbvn4m+IHUEsDBBQAAAAIANqZMkOjFt/WMAQAAMALAAASAAAAZ2l0aHViMy9zdHJ1Y3RzLnB5jVZNb+M2EL37VwySg6TCEZz2ZlR7WWy7AbbbokjRw2KhpS3KYiOTLknFDYL8986QEk1KSdEgiB1x5s2brye2Wh1hr/qe761Q0oA4npS2cGe5ZlbpVUsGB2G7YfdDeVQN74PNz8J+HHbvleZrGHR/Ytrw1Wq175kx4+EEk8e208NiuwL8ubq6uu84bJ3f9lvq+A083EmduTbA+h5UCxbtBVrU38GR2041pkQUh9bwFupaSGHrOje8b9eY3iCto4jfe7MGw43BZNeAlNnRVJ+VRFrcsoP7OvKinwvtcgb6/BJwimB+vYVftTgIyXqQw3HHNbFFpkcDmv89cGN5E6wJqFSTfeV5xlifZxA9by0IGdJ3DUrQHMRrUH/8/sm5+WoOhjdgFRzZAyFlBlqhDXb0w32KhzVDNPybPq7ZSeDzySQO9N4F2HEhDyHMniE2tc6nYdWMNI5URZ2JcX6j1nBLTR8bjuXTT2CsRugUwLcRMfyXGVfNj+qR1xI7m0fmUdfgTw6NAqksulgMJrAgNPcU9jQRwTNpS7I9MzlaRalcY4dPmpOR8/twzw7Qcdagp+Z20BKLsXsaRwqDYfUtwZ47hrDXcNd6TPwlJn4oEUli2eCsZGaxrI5g4IbhTri0HJhsIiIWETOPQuBw9pTLuL73E8WPnuIj6wf+CtG0mLQjWGfiFoN5DAMHLmkq0b9V2jHEiZomP0XqRpcKN2nOq6d5CbkZzmXqS+d1OF/S+UT+xjI7GNyEhtLac/E4Xz0HM5pVsFmFU9E6MbjIwGuss7v2hgLf/MLsvsu2zuVlFYkQzcOoF5GknJjt/E45wcynJSpKOglmvhOQ/ZjqIXx53qDyPN++fH2XlVhlHKL8svprB1/ELJxOLlg4MfSL4EQx2uZ1vFTrsKLB9VKDuCSX6p070XPIYz2q4OYWlI416h1sChpbYpIWOmqsX+ADt3nEt5qYjZGr8bNYtms+KNPXNyzDLEx2pX9S0xAlPjghnkVK3fd3FCMaDi8LfS35P6SAGpk+QcfMRVmiwo3AXoamZaMSBTpjpiVVJKPtzYolgXhR/8szDfyXUTJUnP7JJ981fL/ZFAuazgG1itJckthhqg+pzzXutTwM7MDNON34PgeDao7j0oh9oq3cvyvKeVSB9tgUuec5EVg7x1eKMKZDH6VDymcZkEAJepmSydL/SfC+ocXIhV+Bwkc3w869QnN3kbhcDwrAixH3DsXrLfFzf1PBLUGlq+C9NwvH1BD3aLOk+ka5w9hFU9AL+TDOAB1ldI1J2foX/uTrTfEZWmZZIit0vJSVcXxxwvHdpserUoYiVNfzUfWTRidh7CatKuYqSMHyi0NERPMWs+vCTU82gu6xrK9+YljSKGZyP0quXjH7COFt+f8y0/6vEyJt3ez28f8SpONLUiHdiH5kWIbqF6t/AVBLAwQUAAAACABtoyNDA4G9gHgHAADVGgAADgAAAGdpdGh1YjMvZ2l0LnB5pRnfb9M4+D1/hTUe0kgl3Y6Jh2pFN+BgSOgOjfGEUHEbtw0kcc52hnbT/vf7Pttx7DRd25GHLrG/37/tnZycROtcbZrFixT+RrPuiaKbTS5JybOmYGTJK0XzShJaFERtYKGgUjJJBCuoyqs1UZy8zxV5SxVNo+gzYwAq+ZRslKqnk0nGblnBayZSwy9d8nJy+2ICX5PoBMSIVoKX5IfkFcnLmgtFsqaspVleUMlenrcbi5fnGVvyjJnNVgEQlRWyBQJhrprFP4sfbKnG9usNF2xMXgOxN7wsQd8Av5FMOPQv8BFuI0tBFe9gBPu3yQWTc9qoTRRF2ibkdcEXI597Mo0iAg9oeQOWm2qw6XeEIxf4++o74RoyNYBHGW8BBOTEcTAvGVuR+TyvcjWfjyQrVmOCcCAJsY9sgNwIuY8JAiSpg9eQHSBspnNa52SmaaRrpkZxI4p4TOI4iRzgsym5pr90pLBKEb7ScaJRQmIthE/PrsVJyir07Cgk/BcuYpRZqqJj1CPOWkifervYE/etDqLsAJEzCzkLNHAw+arPfEZiE7NxZ/IBai6SRz7dUMrP+X/MF43kFVncKSZDESWC+UrjQpwElK4uz3xKPQIbGuJvaGsvE06C1cKGkxdIgqlGVCTWkUy+3p9O07PTh2+v4nTFRUnVqCWeuAyB5MAyMeqSckeKWEByYV+6RCG6OOWyiqFOQA4uVXFnRQHDKq6poZ6Y1GTkEigh8CYcOm4jOKkFrFdYc+oiX0JFgzIElpK8ZJoUJFyJlUmxEmogvEIoAnnhap4VTKb7MzEDcEw6KYHL7G9esa28tPpupWaA2vdt61ojyZBzEd137lCOdzBejlvHmao56groDr+ZTXJh/va9hnHEJFgbLKkNC6AlzRgGNo1MTNVc5lBq755SEQ3JQ2qigdzjizcOKHBFDzfM2SxfqrZnYj2gihSMSqX9U9ESuhAraV4QWmVocWZ6qrHFL9ql9jMIPcEAIAudhR2HC3CXwTEOM4vgs/uHhMDu/YNH58OKvL+yKSJJlRcT1Bb5VmD9nwy0FWBkQzdH16AS/RDR23PUoK2FZskIgOsDbaFvDZmXeUGBS2VKBCYb5CCawPKnSol80SjW7xyorGJ9xd36Dt0XBa1+avoY3ViufVNwvRr1VDU0A1Udm0e1bZPgRkDQXuAvJIDn3gUEbrWWoHGvyShEmBF0i99ZfEURJE4GWorFRW6jbYSx1SmM1YOquk1lqOsP0/uzrbruR8SYeKW+ZWD3qZzjRNVnA8l5CQYta4UBYJkOxQGh0tYGfFoTI0lyEcxvKa69+p6CGcm6oYJCR4UxlUJs6xpDF7zRaeiI3dIiz3J1Z8onRD63M2OesnRMNvRWZzAp+BoKFAhlE3IOSR2MbW216dnQ6W1TZbczXHwdba4uMZ5sMVejhw3nKDkD7jLcodZwMm8bxLaba7ZiAmYqtn9ScKDkwr0+2ndEC2Xau3EpgUJEf7P7AOFDWg+A7ek7To+t1uPjDjdxgOj3cK9CoeGc/qSmagPtKF2nWio52TCayYlcTlZgFGgKlyELgPE5wEtI3RvezPlHj2/m1VZCjznP0R92YHM8jN+AjcMcOYZmz1T6YypZFyJYzPqFDMj7xJoau7LnLN892tA9Z2xn9J/h8bAlDWdUpthAZr/VGyaTnIG8ZJrahjUlC86LR5PMiINgjFa2UHt8dZRAU/jj9HxMzk/PHxfYmMJaAor7mIDdlmz2DlKChSp8qe0ss0uFGupKSaQSSGhKRpZjlmjK7nQX5KaHiBoZ7oDLaxwcaJFYgcy4bySAKl1xdZTp9GQwI/d6NJ4aRWNNGL70326i0LcUdiiY44c1K6TSctOZ2Iz6M32PoUf3RBv9tEsXaO+IPtDQXQTifhLsWyffiIb1Ha994p+zbPLY88TuY9ZQptri+VgVA5Chs0t769KrWwA91uPNVjVSd7U+47YdJDCF3pzhnp1p4Puokyme0ayCQ6kfnE1v6HqPtQACxjq6/q1bG0XXh3QJANuyL7DesqzCtS3LfoZRoLszAZieXSneksCvNStdh4Xcjn4lVDW6ZpgDw3RaAI+WXQrp9Y8B7VlIH4LMcciKCmpC1G9Ju9aDvy8wrBzVfHbqMNBwHJ+nNhwMlKF4Q6d28YYT+56A8w8SvxFyQOCgmAO4PaPJjQUJY9DHC5xS5FJfrrUKXVG5IRf46xTqXWbZ48xXhBmpxPgN7wdwwzvZjMnXb8m3Y3yChHcXgZaOYMtGyKEufW12QBZ7YtUSDXXpIfcNdp5d3QTV9HqJboFydh8b4fJbbEzxWfyQjIP2ED5Bu3GdA2IOGfUHl7YfEQZtxBxE2zjVnjjgVnvAt08P1mdmLn9On+P3/tDFC4WtYEVZtoJVQ/ox+gmmYDxUrfKid+mA8zG4BzFM5OFCWHXeARL+p6SHiSsBJi70RnHb+DZaSDOEb1/N2g7YEbIt0CPU3hIjod7Vn7kY7pAHL4bb0juAr68OPfTg6hCwv1x/7B0BdaYCMRMv5PLTh5AknEoCknhKOaay6iDbmcX/A1BLAwQUAAAACACOtdZCOLuwWkoGAADiGQAAEQAAAGdpdGh1YjMvbGVnYWN5LnB5pVhLb9s4EL7rVxDpwQmQKl30ZjQBdgu0WyDoFk2CPRSFQku0zYYWtSQVr7fof98ZPixSkl+tL7aHw29mOMOZTzo7O8sW3Czb2etcsAUtN9l18smy+yXXZCWrVjBSytpQXmvidImcfWOl0WQuFWk1I2uAImbJyB2jqlwWRMMylzWRcxRnv3/6kGdZnpPCKUzJ0phmenVVsWcmZMNU7rzJS7m6en59pa3aVZadgaPZXMkVycEXJjThq0YqQ95z82c7eysVy7KsFFRrcmud+6B1y8675YtpRuADQPfg4NSqTh8jXfIm+nPz6IPLiT0A94fgr1psLBK4rDYYdkV4jUfzrXXBbk9hOm/rcvrogig44mq79U04cx+t8zJPFG8ec/JQw8matqaGic2lj5Usqa4nxgK1TQVrlbXmdhO0iW5Qwc2GGGkTg+shWVTj3w1h/3JtSC3XkBLEumOMUKHlsUl54b5fRnFhlvC7YnNSFLzmpijONRPzS2K1LsFJrcG564+yDhnBj27BzHl0/qgp5hf5FiXdf7Hd+WJKeOXriywUfaaGKkLLUra16fABLA+rBWy4dg7lC2bOJ9HC5JJMJgn6J6k5nmeK1XhpChSkgPIqAXEFVrerGVMpkJOlME42APnoVCHWZ2kYViIEDRXpdpJPSs7oTEBi53O8dpC8DWSiUazEGknNOoTEqhUNjGJ9Gb4K5UMUAmpWG14v7JmXitHojjvE1JhVYVVBDVi0kkIb1SDseeRApza5OM0HuMuGWI2tB2QNde6vR+qNFzpvOvORI51Gz5EuA3AVVuCAT8J41EElOeUgHRz0H7La7DnDGS4nSCgZlus9N9Cod+MYu54AWdEQ6eHz7R6cpVmJolUihQrSETQNFQ2DQy547ypBf+rVP0qGCALbFTgk6Az7P20awbH1yegWpMheM8F2MkD/8jVBvzOQ8iRe6Fk5yy8JdEAobkVKIXW/lrTdlRiwIu991AyxZn0zjPqeYqZVNZn40eP7xJfvr35Mv//24+vNJIcBsKLmfHtSl3HbuOjNvM+skUeOPFQNEw9/9wfeWtFG482j3kkfeqvDpUunG8Qn9YHBZnVuHn9t3FgQbqTih4cO6h41cz57xWTkJLtPa0iVL6a0OcKxIubxzRG1k954amM83Y/gROdWYpDpUvFmAGUTskkBY91r0oUSyYeXvOuwcymEXDOlU9StOMHcStO26o4TrtBTT1s9geI7KD+207p60gdDdFp96LHeLgWjNXlJ1ksGeVE2OR0qUjpSyXUtJK00Npta9sgLaBSdRmwyWRkN6yjzjsbttO2X+4ad+OetUmDLT3ynVbvYt4nCUYvRxFqzGVhh9slkbwqXcsUaumCpFS8c1uctrRctqgfevxdcBO0YPAhHip+u2MGaq1EpxkPBvotk51dE0rdIuDCW10g+qOS/1rVD3eujtFoJJkqGXv49XhkA3Sj+bJvXSGWEtdiAl43WxYn8EUEtfWxavbQMo2feifd0a6fxy0T2OEeiyeEECa0p8ck42aVRlJydlWCq8zTZd/y/LSUaDgyNqwkMCAYFc79pLIaLuMdFcS1GQAEWCUpOpI8dCArG70TUHxolbQZgNjmO0gO1xDbCHKO03RVrmGwEPnKYculSaStYDkO2Kv3pFYTu8E4mjZbKIWe8GuGM9uJddq0jwue68LembwEo1dslK2G28cFNjy5nYF6RU/H97JFTTOGR5BRVAznF331yuqR1JaBr8dqFGh7PA1Mls02PnmJRHKKnVufm8RdfhzhL4KBFOXIvW1EuXrp/h0hteAo4SGofto8LEalNdh/fnGCEuwdd/2bFtiXPEffyyK49ouWfJrMn24+6YlDrjBGNQ5TqjmQW6fuiU5loF9sOJnoSoHMmuD/UBrB3rRCkjvkCutDDAx3PFiL/vHDYzt6Hl2e86mjTEDV9i9YB732J9lDzf+DBNrypGwXu4Y3BBPa1k2V123ezrFtZps9CQ1dEUEkQvXCIGCaOPzY2igiDqwcHkiHWMYk9IanRjGpngpeukROcCrZL7rDglO0D+7YYO3OD1T21PrA3djpOKTZhJQPYPWym27qLzQQmMjTveUgHEXiIfREVgWwzPd12kJSRHGQqg9T12MrJw9+OShz+/cFvHbjI/gdQSwMEFAAAAAgAbaMjQwN5KSnCDwAAQDYAABEAAABnaXRodWIzL21vZGVscy5wec0bXXPbNvJdvwJ1xkOplWn30rvpaOpO3dRNfJOviZ25ufN4ZIiEJNQUyZKgHNfj/367C4AEQMpOci+nB0cCFruLxX4D2dvbG62kWjeL5/GmSEVWj469z2h0sZY1g7kmE6ysiq1MRc3UWrAFr2XC9CrW1CJlMmcWWXk3Gu0B8tGyKjbsj7rImdyURaVY2mzKWg9X4s9G1Kq2U7Woa1nk/mScFJuSKwvTVFnJq1poIEsuFUlRcVVULS5cLitRz3mj1ho45UoouREtJ+a3h8pOzudbUSE387mez4rVSuYrO78S6jWMiGo0ms+BqXnCk7WYz9kxu3+AIUS8LKoNVzQW7f/7YH9zsJ9e7L+a7b+Z7Z//JwIoQFrTfItuPJ+XPLnhK8A1GY1GScbrmr2U6lWzeLf4QyRqXNA/k9mIwQeEfAGHMSO42bULyH5yf/18zfTCmJ2Ys9O4VcEWgnDVzYKG4CgXd4bmi6ISjOcpK+DMK72EFACO5LZoMjNxK2vRridkhhgqAf5MxRJkKnMJ8hjXIltOSSvMLjT1ErbvsjxlCDiJ23WTFlgujVLVLC8Ue1vkosNE2GBlLBRfgXARMi6LchydXvBVNCXwSR8ceFdzUGi5lCACd91rmDl4Y2Z6CGjxHKHnoFPcrBy1+1YFTdK2nQ2DaD4I1VQ5mRNtpxIl6KzIFWqaQssLxIifSi8KqHbk5rWqStQ/I2f8imM+6RdFDhoOxsdzdnb+jv34j6PvmdZYBbsHeNL2HNSDd6YzwA4chaXgH4Hh066NW7Ys+JT5djIJt4hi1vv6hRRrI9S6SNuNol1qySZZ3dOnTrywQ5nXiucJbGDJrq8B/PqaNgs7Jeu+vsbV19dDggboMeEOzBFNw9PXx0yS7Oin7rtjjuRhNeLWwdbFRtuktlQ4k0ouGiXIXAdMkQN2OM47dMTLJkOoNd+K2DL0mA2imdXHpNLD1oj89mxRS8RRgjWvkU1ADGcRzY0zjya+UjxjMhaxdfVovzxRDc+yO1AzTc4IJrDPGswK/sYWcTstMiCO84BryA+YhbhmHNqsZYMg2rm14Ck4f3TlAe/vcuQzSUSp2D/P370FFanLIncX4yc6IZBoxiJelplMuAIqh9s8jXWYibfPYzim7DuUYjR9hMrHi98PfmQiTyDOpowMfYDSwYs1BkWi2KjlwY89nCfZLb8DvRJ5inaNzPuIwB8ocDwHF3elADR7LuPI5V6I8VwoVjQVK27BRJpagRV9rEV1cLICNMZ/+CS6aeSzSxUO748eolh7gbETeCcdyYfR8MnF5qzipkQ/MzY/Jx34M1gA9sFqngu0AN5kKsClOcEojpF6rVRZzw4PeSntaUEKEjn+dY5u2piQo97GXUQ/mZ0dJBQ7FTv6dH80+/Twc7tHmeq1EwdpJTbFVsxz0GBjm3jYDnrQcgx1ODrkZ9shoMHGN1O2nWBClslajXFNLJXY1ONJYI+AdTtsOZqzjBZf3ly5vLbRbNoaAPgHxVVTz1FRfaGAUMmR2yGb9sQyXxbj6ATizabUEa/AREhbFk6isNA8yUVz9sHQYlGPUaNhtyB5wwhDRth+ysSnErwJot9PA7NwZahRx84u/C2556DVZlEUmeD5eFAEU/bD0Q8Typxa3Ik2sd7pgYBaGBKtn5t07qiFMkPhSY6t/scgxjBrmTBQDG+esqEJMTkoFlnbsAl7hGwslRDjJn0tgcnLgNjVALdEdJBQL7+K+ic8GSZLe9hJzSZ8UTTZpX6kbLe8Zvu1NiTNAJpahDLF8zH2AaEGlS/q5Snwj2MdVi9CA1FVI4xuLDlgCk2FiBkN353XdirmbtoZDpXCW3HccTF4jribC4B4DMk3xw7/pOHu7M/HoPlHA8g5lgg6wp9WVVG1dtMT5++I3REoeCGhrFcELz1l3357c8urVe1Irz3WVCya1Tj67fT16cUpnCojp7BfR2atWTmcTtuwYkj6xByWULm+jJ+XpxdfywwS28kJ1MbJ+gt5eX9y8eLV13KjCe7mp6g90WD4oORSJ5vHqF2DTJqSztccU09R04Ai0QThaNQxEW2YXnJEWWFkfEGEkVATDLPRd5BtVJByUw3m5kDGVXrgGsVli/bKph33YfqEXD0M+Bx7AO/OXW2YOmeAu/jck0BRO4sGj6P5UkV9//GrFRWJ7VSMRSOzFJMsw8+3CDDIEdQrvyIw1AYsF7fs5P0ZMqHTgDqpUAG9Qq3kWMges0uNSrt+qJwEktOBL8z0rvzFsfgEx5eO/U22eCGbHZcTSq1K1CWa6FDciDuAUk2ZiTFN7Yw2tC/MRXi3IxIyoPBSDFRtRAvEvP6Sr78B9jeSmjeoygTOFpYcDpEsguUO5ksgh4E0OoziPwqZhzsxJ95fYyp0qF2hZFR33YlDBr0jR967P4prwLARD5Bpw49cqKxIHuAbuJf1w57NlPWxNZU0mvQLIo0ho1fGND1CqKvSLWLtatiWbRyOO2S0FtLiyixOiiZXRt+powAL+KY23gubSWGVDEr4UuSighId8WAHkpSEWjcgECrwu1pkRgixqaJpzdir4pZteH7HKDvHBFhLKB5aA4zN2O+yqqEs/PAagSHwVopMNYTX/QTYxQz/dIixGaLra1Ysw0V6v5Tnzdi4KDH55tmEvcdxiIeQhOrdCdueDTGAoZCg3OVThlmY1nVcim020M8sc8XYlS9uXxfQNUnXINbZw5mRdKhU/uy4d5r6kPUe9XFOdqkuYIAAspEKyzIuczChge7d22azEBW2lNpO9gKbWTbNIbaxAcE7hK42aL7hhOBwR4PCoKbgsdPqMwZh0w+vdv0OTBfpzIlQBHL/29FR2PFo92P7m+QrcRk4ofuHifltoWDwaIfTb2E6Y6rEEpK6dWtOeSq1DhxTShc25w4AXyXFVgdfr+CzNmRUVZdRJC2EdRgignT3oCuVvrVhOu7yMmNnS6azEECVs1sBBpRlsCteJWsizUGP4Rj9qkgHfdZvBsMCU0qxQvdyHa6x4UItOg8XlBupgEgmF/raBBddv+h4hFJXK9T1HDAkJBNQMwRLi6QeUCEUebf1C7JQDueLJ93ZLB3flmcNVRg4tiyyrLhFKPGJbyCAzdhsNvKYrQRoMUbBKrYHrENhRTc+2Fio5gQ0jm5EDq58XQmp/oomVx2if4GeFo3q8TF1rxIWWE4wXlX8Tjdq0d1eX0c1ifKuaFp04dUDNjvRyaXFY/wT1/Jprt3Vw7umhe721hJ0B2QKUqdeJjpaJQ9K7KajO28h45iZBley5vlKpLMZO4r/7gHMh1TBj/zYpYLQmYL1ZOi8nFbV4fb54TNH4Q+sdxp0MU6z88FNQFyL6VWDvduSfr1n8F5GZ8vWWA7OJZgolet9FB4G09Q1dziPY0clOXiDSWGHGVeNBvZov8E5ej2ppx0t5BhTu/zYthkDF/t5t1JeC33qp9CDvra9d/gVUtoXxWYDhYbTmh++dnBg2U/Oj533gKjbL2WtdIvsrK4bXdy/b7JWCZlBUj92r5domKntuvduFRxuetcKvcVdI3fGPuYS2GBnv1lnaKC7bImEKfHyzk5RPJNp5CH6tUjvQhxsfAJVTyXBYHO8/3TmRBWE0QWuD2jg2JNUnBs2iAFlBhH0QEHtAdTPIRaWJUzAig2vbtLiNu/alc/AJlQSD/Axx/VDzNDEF3K0VpssHqCB44M0cMKnEdwV+neatxhxXerYeUvAaQL9gK4ZnXPVGmZ7g+jx0QFGk/+RE13Oh5yY0ac56QCjySS8sQAHEkoQKzK/Oandosxv6hB2TqO+qC90VadPFC8RzVa4TZV9vHhW9pYj2olHsBIt3gSNKTo1qSA7kG4EIXwINzdwfbxtnEC+B9ygw00Hp/caKNVjBMOlLkjk1nlz8WfroShv6FelrfM41hDw3UWQi89F8M0gAq0dgZfsVasDjtCLD7pi8Z+3WBJOo9TPtX+jCU9JBgsRzJUHswQv83cb3LHbnSUlp6D4g77/eJRbAfmFEQa6Ep/jU5jcyW9Xa+JCqDUNgRRoY8No0XdzU/bG+FRPrVrn9yXCAM0muh6mXRlE15/VOUQvlfE/1C7V7c57HVJmROxhEiYbhpN+zxQ/pvNhNM6/qw/O1Gv3+x34IO2Qn591SCfpkCp87FCLaotlcfuQDOsQXc/jwJZXsmhg8q4EqGJJZwgYNY6a2XsaG6VP3p89+dBBo3g6J5HDKYkcykhCvy53unXwseevTjw/LcOspV7zAA+M+DiMZDfACF8Jf7kZDFCYUR/Na3DlyAuYEeZyWDftZssC+XjNKGzz8spP0XRjaivBDK354dHlT0UkF7sdDqRo2qJWWkFZ0hofdgirpczTcXQ4FEW0oFvYS8m+Y9/Prr4iVhAm6+vhx1dEC0TxjYfCMbqThJpYn2V1BlabnfkR2p00DzWpUG4bKVDMbO8YFFzKNgss3nfViufyL92Tsc8a4gJb7O4UkLFXyHYlPvXoVgDRqo5xrOWoftJieZI8Ya9mlz2D9Vd6iY7IshobCZD+QZKEDgYNgRvZKS0kX0cJKHjCIGmN0VYECJ85uStDyEH/0QF1eh/alYlofAsxosIkb1Xp7z5GPWbMqsPbDfedk4N9kRUrHx+OeJhwoI/jLd8IJ+iWPL8LEno96KEyYwMbfjR5p0YYV7pxaE/PKSUeqSR2n6NbRwyc5mP1yDASf0OnBxsuM8bTFPZRW0mhaRyCRfkcCwJ1BUUjnoieUdqetz3oUhRl5jb0SJsRg3dKLbwGdF+REOl22CPfjuqG8JNctLQNmXqYhxZaCwIdVMv/EFu6bx2y1fapH+0VGDUZaBV0+GTqN7wxWBb6EdzjB5ZZKBebHezbChiQzFnuWMwutAjn44SRnrk8YyJexWyJd0NzQkutNfzmkv0gePYZVAnCJYoD+hrVqe9c0PZ7rF8qjs0rxEc1pVlkMtEt2B3aQRCmfwuZe5fxDfPtYvT4dyf6Ckyis6/+nDaqtnES+A5fadmI6LJvKbMgJ3PSm46ZILlxUdsSxenJLGQBXr5cB74Uhn2XLIv/s2r3qUeS9zXFxwd2Cd9IyA8z+IZK9HDVPZWsjwnBzjIaRbCzhraJgF9Ae4+49VOk00/4irbLMwbSEXyttON9NOHoZSG0wLc+87iL3knRtYeqJP6nD3NnLxCPv5X2QZh+6xUG1PYR2OADMB1KECldf3T3GqoKilcCsqgGniCibpr6AkRXJBJjnH4i0me8Jb2p0VvT5K5qxCC3FYlh1jyDd/4bSlj1Okj1mjBk9/c/sKRdIej8Z/RQesP/Aj9+/vzxXZGkzINOcoyXbwtbmF19yWNhR4XAFI483bfk7PsV/RDVwQ0JyG7UgIzdf//gozMPWw3mnRfgZic7UNvlo/8CUEsDBBQAAAAIAG2jI0OYqP+DjgsAAP4zAAAOAAAAZ2l0aHViMy9hcGkucHntW1tzG7cVfuevwLgPpDzURlbStLMTdarGcqIZ2/LITmeaTIYCd8El6uVivdgVzXTy33sObgvshSLVtE460UO8xO3cPpwLgDx58mSS8XrdLD+PaMknF+3fZBInotxVPFvXMZklJ+T87Nk5We7IW55t6N951cjzLyZxzhNWSBaTVyLlK85S8re3z+dEMkZeXn999frtFVmJimxExUjKaspzOZk8AbqTVSU2JNLkCd+UoqrJN7z+tlnOzb9XRc2qsuKSTSbZmlyY5tnJZDJJ2YrQpl6Liv/EZrnIeDEnJZVyK6oU6APzTM5JIWp2MZ3qj0VT5epHknNW1Aue4q8JCf5Mn2RJxWroP4nVAGD5ZgnsF4QWjjCtuShILd6zQklZr5nhkVy+uY4mamZc0opuiKwrotgEbVbsQ8Mrlp50B1gBxsbkXNZGNn/InNCKUUl2oiFbWtTACJeGr1oQWpb5Dj5aUXnEojmZZrAcqGPaSFZNu7ygxoCIKFFImp9oHRK6FE2tJA20MDQb9R2uAA1OUcgVTwYnO/uEs8/PSLKGQQnAgtxcAnkzkrxnO7Xuds2TtZMSRAcjUmRaK2OEjrZ1SOuLUVp6NJJzhBRZjxyK5xGE4U1VgMXiJAcDx3eXAX6+Cn7+5W5iAaf+1ZNJto4OhHuLdQ/oXZSP4N3uLEVghrAo6IZdvBYFa8mZn0pA840bC7/azfK1KEDDTVLDfkmtEGbrAD00PPgKs1kkkxJENxvmHYJ3y/PcTev5AzuDcPACClUwpazEPU9Z2t93VpBYC0bwe3zr2S+HVDWpO16JHxtoDKKrh/7vbl8SsXLiEE8eDtqiRcJGAGMmfGWdtf430s1dxGTgKdEYuhU05AypbGHFOyHCSuHAkTkn2/I2AzlOcBmjZkCXWp6wXLLWJbslohA8PkwVtZNJgGuDOHRFM54uimbTguiW1RVn93pD4QgC9gXwqDgDoejuTs+4uwttzgsciT2hl2wK/qEBZadoBrvmqMqBnKdwWcsI28b3py+Ck6rmWQGxb1GzTZkD5mc5LbKGZiyQEldQTsOMUtCzI61sjkUA1zgP4wRHeZKzQWZUsEG83kPUpsu8ZU/2WLJjnQBoenk4l9IFdQ64W9A8X1SsFHIGylyy6uL02ZxA9pB1vMw1DEZq4h68NACl2hE1jdcCPrmWA6DH1EbekS2DNEQ76bQPGU2rE/NUG4rmFuYMY6sRJ3LAf85WtMkhjCCvRjEEBDFY23TdA4oT0rp6RzOi0iIKzozdc9FIgvBloFygiMJI67rwjxVpKYDzjjEyVqBahGLb4vm21YtDtRIpanvGsT1oFW2SnuFw5z/CcDhtwGQSkAK7vSnVntDu5ljTKY48mwW2ctr89dnsO1SJs5aSIsK2A+zkG2HATqDyoj7KSGWzhHSN6InHGkDPGrHAoAFap6PnfmJLXCETrSmMFlTrA8YIND1giZXIc7FFY7URc79ZXqKvRWncVOT07s7O70bDMAPy46HOhkwsLGEhVc1oZx4QcDoTq+MM37LobD/ft/t++5tv3J7G+CqVsgmZyqF++LEPCF5kxwOiZKKEHeNDwVhAPgoSOOQxnnbJgH1re5WpWWJ+bTbkjP/PYDBkxQNhoDLObgl2vL9Wy2Cmrz9sSWNrJcfCXnx4ugau7dw5KKx2abRdGyoEBxv8w8qGUZdxh/UfjoyOQ5imdVgs/xXB6PhyYgAFHQj5cMG8bMGlBGZnYlvgmDYTnpMNz0EKQIsBElSbtfkePhkApjHxsuM3aDP4ssU/hGbArF1MVPW+tVLwLQlOt+M5VLrHI1pLRyBGKQE/a+Xrg1eNiENvptrsj3Zyd2rbE6sqZv8MBKxTbky0UNOn0znuuevnONl1dykpI8SEJgkrcTfc07xRB3tTUbICD+aSXEiWTtvqmpb8NLWA18O6q1rLxcgGcrHXpeMMZ9z44bHa8DFJxGZDTyXDHuTdFoCqX1d/YNEoi1pMTJdNNm/4/K9rnq17bCOIBnVhyjV1Tlmm9hPpY2I1phszq0vFQXGQFJUJrp0y+HdkXewLFkUsh37kpsh3Fqx0VTPjFZF1dazlFl4ys92hGNWnXgktsJWSOxxdc4jgaEFovX578+cvz56hk93Q2kqmdheuC7JBrDEaV0f1p2d/PD0/e3f+efzsLD7/0/ea6XpXMsuzJYEU9PzjPLERcX8pHCT1esYn9sTXyETrijVPkWrtOmMIdtpp6DNM5xe6YcZ660OdsPG/44ey3p/dzp4Ptu5Xe96DVnG4N963G0k8YVCS2Q8/BtFFVNkj6hOYRQtzrC1REJFw5Sy2oPv/vGA5PjtFMY5PHT4pbN1YC98bT6ktilGyyO96IK8YNOiBmSn2mXMgcxGBXqWXC/TCfouaQcSOIckkssHxm01jZckSfRp8d6d4cVCKIgI5A94R0BRy1TgmZ9GXrkvdbcXa58LCOU1gUecR7FaWx1/goSZCUHTDjJMdwk2eY7hRngI/NgwV5EWeyzfXpI32OHw4ah5IbziSlo1c669Vk+cLtPooC3aFPWH1UNn9UDvvSgqNZAt1AuAQK0mPMy+dUHOJABxUW7wjPsoVHHGaG4Qwf95v40TXLi2W/wQbyV6E05geC2nDm91EHj+sHBVPIPxVsH0ODilBHRCYzqykb4MODCg+IEyCrw6ft2uBV4uwon+VLvAxw+/gOv66YMzIA9WrbJYyqbiS7fBEYw8q9HpLAAYo4hfEhs+nw4h/qPU7Vh6Hlb0ACBGjg5A6GplhDDDT5mSF+bX3BMG8/cB3B6LYbVBk71SsDwNvsTDtlGt8nOR19++P9SopT2rNRrgANumiWOe+bS7clnFcOVLq8ptEFDVk/Lqmc8P+NZUl3UT1x3oaww8zCL6nL5CG+S0hyYmmP//csd7jD6Me0DkhfyCz1wLIw1b07ppV5jxUCmm7tra6tBaC0jljwL+aSWK7TwoS60Of+IBTH1/z3nWw6t132jMyr/taJNjT3hTNsu4ZUfwRtae3QR5QotH1hlbvUxg1q9lHQM1GpPrlm4LEx1p9V3R78YJCSu9f+BepqnAJrZa8rihIbJciqUgaLDv7qsYlQ/H1+4WPtd0bdq52akikd+4ELIZuamopq4Orabba9FJNI044T6gjF/WGEGO2lzoiDb1Qmzmq4xh8IBec6iGf4Hhgb6oOQ8eVGlqEziHJUogclRpyo4eCm251kPP3eKxze3X5/NVVtEnxkRYBrlqmCmFJdrCDQp+ekm/fvXrZnv4oTY8BZgAJDgYKAxYyIqlFQuuZpLtOaL11D7YYlXiExTITP1AX3ceNUtcidBfqAR/+4I3+dk1rDJbTVOvhRpNV4ZLuOuJC7s85YFHhyIwcE9Tj34nk1cA6YzVCebP6QyZ+W7RYgN0WC3LRHW17DK2yUQ8iVBA91slV9mkTLuIi8W/K3wWc73V7b2DkrRnonB9Ol5HXNe4BD1S0MUvb0x/bA8PewRNP+QEo+u2GtmS0StYDZ4D2yA+fqqrXdw4VL3iR2rNUyFTVMHXgaEYeYPYhI+/rNxcPwQPiAy8hvFUMf+E6aq+rPBgV4V7JelDCsqBelJAldL1Fhq9m1aUirCgh6ZV4zcDIs7Ozz0qVVYTwsncOFmYvWUaTXSfG5qox8vrGcXa49UJz6/rY9M3J06faK7Y2fqu10c3b0d6jVh5Qb/8yRj/tCxVpW1GZkJ6h91727qz+21bAzH/ECNj1oA3GVBoqXr9y6m0pT93mQcLj9fy/UFb4xiBQ1v6nBoNqCFXENpTnM/XfnoKcclR3XzWqua+Ynn//ZaTwOTUyIIMjUdzrmqhnBIGD9ltsWIANnPMNrwFbQKPAtxmtRr4xTxlcX1Ciq8ij6m580NJ7/Yp18ohsA1QNPz+xov/ulpIPDf5fFi7V+p6pYtO8eyT/YPigXp15qjPTK52dXWXZMa+EFenJvwFQSwMEFAAAAAgAbaMjQyrxn6DDDAAAtEMAAA8AAABnaXRodWIzL29yZ3MucHntW19z2zYSf/enQNIHSjMKbad50kWZc5PcnWeubSbnPOUyEiTCEhqKYAjQrpPJd79dAAQBEfprNXVuqgebAheLxWJ3sfhh9fjx45M5V4t6+mMqqrk8GXmfk5OrBZdkKbI6Z2QmCkV5IQnNcyKuiVpAW06lZJJULKeKZUQJAlxowT9TxUUh05OTxzDCyXUlluQ3KQrCl6WoFMnqZSlNczM8u2GFkg3Ba/wWEoAcLHcEP1HJLmYzURdqQP7J1b/q6UtRsbBLxUrherzFL1yJ6i4kqiWrHNE7+BK+zthMVBS6OZqKfap5xeSY1mphiOuKK7YsUQuO09vLK9t0cnKiNUWuGF32WmH7w5MTAh/Q0RVoc6iJhhOkIs/x74sJEdPf2EylhvDqVhCFb2EdFC1moPoZLcgUVmLBZh9hBXL+kREphpYzftQ5GY2Ieuo3PNINuuWiyAisMs7phuagdVjFsHvKM8MBHlaaHzXNuv0/jIF1wOhkoVQ5PD3NYFFzUbIqNdpMZ2J5evPjKZraKU5EnjoNmIeMXZPxmBdcjcc9yfLrgZ7wgICZSTCp0S+iQL01YsgauPeuLEl+3U9d76Bfv+0BVOmYlpyMNOt0zlQvqas8GZAkael+GBJt/kiTSFLQJUtDJtgUMMGGkMO7gn+qGbl81XiMJg7ZoHY9JjwLWbxh1ZLrOZAc1NkwmleiLkNGZUvpM2ybQ8a/1Mspq5DfkuET2HcBrO2UV4S0JGPtcAH74I03QsM0RovaDmT52RK/e/tv0nhNSl7/XtIik+QWjIdMJqb3ZBKXDHiiYJ7b9eyrPuHtHCGEMIJGFFeFiRjitgBfmt6tVYcmiyjDaw8n6IIPB58FUUmvEIpQ0kSNfoS/JceZdQfxXsJInu/A28r6jucnFVN1VZBEhxXy/svZ1w8vkvRaVEuqes6aA0bsk3NBARZXdbk58x0ZChcIDIOC7crgUZRBXWagGT8M+I6v3XjV17HNebym/XsYrRvmNMvGxiQs+1zMeeHxh4h0kWVgdfrFZIJ7m2cNjm5opiKHZCpE7nd3z2b9jHDTmucZLppzhsSOPSBT2NLw1ciFqH5UYWMcidHCrNu4rFUPevUH5OnZswF5dvZs+9TRhOzE8TE2b2zfMO2SVmBIUlWawZD07GAZyIFmNSQJbqyn+DY5gra00SdG3G+mKkg4GMSRFV8CaV/pF4caxAYJvRHNtHYVlWVc2RVFTx6QNuyPYFsLpH8NtNtWFZn4qxqjaYcASlFiykdRubDn1LneT8taLvA/zZbc3352UBLEbC2Da9AzpYqCdXwxW+3QTtXf4oaeVF+Dvjr/bCwLvzRGQdVs0Wp8oAcZ6Qy1h499vQZn/YAZSIcsQunwY/g0oQtp+h0au/5XVc1WbeIfkD+xNgYuqNzsqy8x75MojltP7EToDJJDid7bePL37ru49UV9F/XE5dZorjWFimpDOiiM2sTApFUbPUL3CpWlm7QRNmkZ6u0B7Q2blaZYZdUmm9ChE6HRk/MBYYrOV7NtkPwSOuEpR9yA0nDGTWK1WYEcEiXDPAwVhcu8zDEMDJZ7I6SB77xi17TO1ZA8OW+opBEEz6RweqmZjK0cTiUc9vUVnRN9cqOkrNgNF7XU5zomldny4BQFyxoMz4qsFDCRyPrOWcH0IRFn0pzj8CxJngfHzBTbXkz+S+Rh1rCzGaB6eiBrzygYpgy9Bvp4a5cW/6wag3bUw03BT0zXxaNDTMMk5f9PptFiEa2B6Fmm7ZsXk2AIAwTsZTdN3L2v1bQydW1nTTpSsSVof2tQfqvJvJCsFX9oILYx2EZ0WCsjxQOKxza92ycHtZrcmAU4NdqkfRctfkdb/zqtWVTtVw9y7Hm44Bp4zScnz/1vMbjNxzP3gt2Eht3EU7/hkW7YCXYTDewmAthNNLCbOBR22w64AdkWvM1XWgd387u3y4vpvFBmedVduZLXu2awocTnnrQa+WFoUOFd8BMDJlvkBAQywEnbug4JKytYDRXuZCvQjyUxe6XPPXgBJn/Wb2VvwTBH/qCwsE2ClvU057PxWnnf6Pf3Ebs7wsFI3iE426qZuMbkEAypg1TFkKTJBIngGZSDe1bFEGy0UIsfcrzYfVHc6SQZiKjC2AH0EIJACnPzAhFJBH65rCFjaSgcG6Q0eRmkZaXN3MydBIGA7A2YpuiybBi6qrkTYmohdAADp4HoUubsd67uyK+9op8akm4WpgF/iKEBuztRV2GQRZWIIr9DuaU7VJHbBSschK7PXAGfJZ7imWwp9E4H2waMPQURUnJ5jYORWwqxdiZ0JIegyxFAgPYwHC1EnWe4JYEd3bCWKco2w7lMJu3qwzKKwqwKEoWABZjNTOV39zxS+msdY4Tjhny6WtphE4cMgCi8BjDALB4J9KL1+qENINyA/PFWKO2iNPix27lKPS8xCeAGyGN3xHK9l7W4ZeNkD9GkUcoHadJWfQca9F5J5X7m+y3sVBuZTq/3N9JZxZrd39hpZyj8aMAy+iZjclZxfQ4dJUmcZiGWrKRztpbA5iAjLe4aHlSOuZRwnB0hALme6JZ/5FtIMnFb5IJmm1jhAox5NjqLvwYdCp05bpIZ0lg+L0TFxs0+3sG0X2r1w9ZWtUdrbSarO6rBShkODO6n+ExXLgS4nYcL7gaOD4KA3UoQ6+utsw88xEib5d5Eh7G8WfYQyLhEqBPXZTIZWOvUkIYmDdTcCpySizeXaM4GTJlM9KJ4+Zo/amtJGwZmBZ3mjBg6XJFgZL06G4Y3XNaOjia6fWxcE6Q89ujO+reL4EiD8Z197i0DYmbWscLB4XDoVRqYGH7LIbpPsWQAtgcvf9Du5+4JVgSJzto5azgoNhNs5jTnn9mKE6Qx0+569Ar45/lTQ/E3LWMY4GHz1WwydGsrHh4etN16I7vcZ08Ezs8cbmlV8GKOq4LiwS5pN1XQbSEgcyvmJjsvyPnZGZktYLYz2JuOjtmtuQXzIgs0et+6QTVpQgsQNo94j2aCA16imadYT+f12Nd9GZg36Ge2HR/X9HfuYEndd7wqbGwM3rnnCJ+uBUGHbmN7B2iTAXAZ8oKcde8VU3Np1/uSWDLgZ5++trpfe4sopL5qMdeHGqc672QRrWnpm0ELnTSXiavn8XWJhihmjObbL7wMXXvwTGRzdl7w0hX7rDltHg75haf5PwMytakYLl5wJY6+NcZHOXr/wb8hl5104gKMegnOviZVwAoh2dVfa6bNfltkzdwoKdjtHhfuNgaag9+c3+BRQbjIvsoh51J58/ODaQBmwY6UzsOrk/eJiX+nmVDXPAe//hCTz9NWGKrNo/SwS/w8AbvDKgCIkk+ekJ7d0foOvUEAFaEZrBAAHRJdIQCTYFXH1YNrJbNhcdxU/fqsyNhyYcb2R9Sj4aKgaGRaKy3DscfW/OKDD8zIKMJ9R92wufkVpFHXXbODtAYEbe2XSPT1rCEouZBft4UHfVDbssHdK8jqIts2vLYFYXvG2baiJpz+FNIpiAxjtqQ81/j4CgGCB7S4i71a2ycXMx1BYu9wDSLXr20Vz7oQ3jpvIHMQHH4yb4xkiE9UmA/27P4fPZbY+W07vXTHskhxMFQcFjPK2DaCDZkRmu2blzWxAD92XhGoC+w7+A5+YjUAb+xTxEOavk2fZlLQ1DxCq+d/recYs7UXfwVIaOqQ2pUFQ8aWMIe5d32Tz75b3LStsGn3oqZ9inVa+BcvEAw4Gi3geVAlmdtqlYIU6ThaMCyPqYwj53HbS5HM9dxh5Sf21yM+4nNIpYllo0sHcCapX1gSnjw7WLDtS2/A3/HQHz33/kn1JvritD3oGlFT3bp3NZLpfISyEj38hmqke5WmrZalbd4jt1tGwy9iGmH+d27wlibrx2TvIVrE91ecFsajw6wiiJJ/GccfbhydPeQbFjBiOQlelOxrI6awI3p3EE+udTlLCIjCka1ErMAUHoZG0EtoUxyPysEno5/EQ+DgEST4iCpLpKgrOAImwPjizWWIWzW7k+b5l+HuWVd5JDxWTxtrZr6EaCPWM0GmdviCh4tghnmfIN/kA/4kDB728h6/kNNwMy6xGU7z7lcPKw3Wl+T6KoJWDAdWR4u8lvf2fM3aTWi6pvtDMmAfudkz1u4CrOxiJObHtDvW+RqT5p+3l/r+TD+yfbBoy/ohHmX2/RnZfsXQmw97rrTX9Tw6gP/gip1jxT7RkudIxc/xi1P20fAfUaji6+jAWhXvZsTecK0q1wRLHY1MSbSxRl6YnwzroqapqM0tNJElm/Frrn8z7fiYxQDesfUIL7C9JanNL+Z5ZjOw1euO/bHuGNIH+sbA10y+eyG4JcaCXbjOIQy2DoXz4Y+ze2HW/wNQSwMEFAAAAAgAbaMjQ7HF7AvHAQAAqgMAABgAAABnaXRodWIzL2dpc3RzL2NvbW1lbnQucHltU7Fu2zAQ3fkVF3ewDKRU22xCHKDt0KlZmkxF4dDUSWJDkS6Psoei/96jLCmMEU7k8e69u/fI1WolWhO7YX8jW0ORpPZ9jy6K928tIb77erAI2ruojDOuhdghWN8aDY0PoOAbw3ydQMSK8UUTfA8zS+9rtASmP/gQ4YsinJNfpQ2EYcl65IMQQltFlOMXWfmmEgJ4MeNDZwj8/jfqCAEPAYnviVubZgPv+JDGleeah5Nf7oyjqJxGAq0c7HnUDvUz1mDNMwL5auJJS3+E7Rb0pzxwNQbGyGdXA3eCfwZzVDaBx4tyaeozAm8uwldzeIz/QARlmR26GA9VWdZ4ROsPGORZseRbebwpRxPLaRgqF03Omxob2O3Yt7jbFYS2uZ7nvgZCIuPd9t47ZDHnbmhgkiITPWXaZiMXnEuEzcuE7yqoRteqp+Qh3L6yV6bY3ROcOg+9qnF8SvP7yyAenWVkMDGp6XwEBvTaqMiunBgQ2CiltR+ystTjyAJbSBMtF6aZKWSLsVinnHU272Vx6rF4o2KSgRuE4j49nyMG1eImFzo9vknojCFgHIKD9W0SFSZV4effD/9+3a0lf6JexWJpQaa/xZr+B1BLAwQUAAAACABtoyNDOYYWb8MCAACLBwAAGAAAAGdpdGh1YjMvZ2lzdHMvaGlzdG9yeS5weZVVPW/bMBDd9Ssu7iAJcAW33dw4QNChWdqhTaeiUGjpbDGRSIekbBRB/nuPpPVBRR6qQRDJu/d47z60WCyiPTdVu/2U7bk2OqvoLdXf6P3cE0XfZNnWCIUUhnHBxR5MhVDLPS9gJ5VbfSWIOw8DcvuIhcmiaEFM0U7JBjq+RpZYa+DNQSpDTuau3X6RCkOrVqPqjX7RIoqiomZaj2mSwTtdRxHQQ3z3FIvnB4UHhRqF0SAFwpEwuRSQ0I0VHrldpCB3wMCqkHmI+5OEsxzAhTZMFKihYAK2pECFxROWUPMnBC3XZ1r7VB9gs4Hq43jjym24nVtRAteAzy0/spruBGbinnX3czDdas7gKjDoAvcfJe4gzylJJs8TjfVu2UWzBI3aemy+kxqkWIes2wOqZCSstax3adbjTBHSwZcMs5wdOGw6nmyPJolbVcdLiON0CPHdGn7e3VrBbb0Usmm4AcqpLDgzJOqJkk9HpNI0dsfSyxMSnbdnyGwRwamS0LASLae2CWRijzpEdoYbV2dJGATtxFQiCl5eR8GPSUpOhTZpDE8CVDum1Z/JD4HVVC2UnBoNQeglsLLk/nOMZqRhdXg5D5Z7sGnwwSFJ8PIa3k60zZZiszXe8Tk1QorhbDPD6Zl6G2JZXSLp45shGc4uk/Q2b0mcMiOqcyJniLzlZRJ3/pagpBo0vMFhajB7Fct1qlCMa/bE5nj9IRVyzkxHT8TqYFHDuhqbxmk67lzLfu7cUYsqNK0SEF/bLoVuzP5+Wb3+uYkzGsENM8m4SwJMfO5ngaQw1FvgsME23iycMB5K4H9BXV2EIh1yO3WnkdIg+4FGcTy6lnWTGUjQ8VzIhsStPatew9r9H9YPTqHr8Pfmxrs9uHmIxkz9d/DzGXyG35Q2ve2jdkPI59cuvPC5zWw/DtMlfFyt0qk4FiixPucRG/0DUEsDBBQAAAAIAG2jI0Ni40CMiQEAAAoEAAAVAAAAZ2l0aHViMy9naXN0cy9maWxlLnB5lZNLS8QwEMfv+RRDPbSFNQjeFvXoAxRB1pNISdu0G2mTJZmwqPjdnaaPLVsUNqckM/nNfx6JoojVCrc+v+S1cuh4pRrJzheLsSdT+kZCYTQKpZWuAbcSGlOrAipjw+mOELcEAJN/yAI5i4jPKmtaGKO0ppSNA9XujEV6gPc+fw7ejLGiEc5NlGRuTdeMAS0ibrbKgZU7K53U6ELk6hCVTOitliXkn6A0SisK7PTuSQL0WfasBwSHhjABYcUevG3AVBNxdWBr0dKxEbr2oqadU18ShC4DqCsKSeGTxH5TygqyjIqFWZY42VQrEIhW5R6lo4RgWM7vpE3GtIlNrimfXs7esOnN2Ro2g+jXl8epA0GrGAvLDyEIyck56zK8nsngtcQkHixxeszv0p5X5IjYXQWXJXI0ncw8mTc2BWh4TKEEUutDr/8IMPkvg4ymZZDQ779FB/OS110vWcO4/IMbPZbEwRKn8xHrPsMwYrOx6v8BxFfdZEH4l2/fFz/vNzGncWkFJlO9U/YLUEsDBBQAAAAIAG2jI0NOb4oviAgAAPkeAAAVAAAAZ2l0aHViMy9naXN0cy9naXN0LnB51Vndb9s2EH/3X8GmD7YBR0nWYg9eXbRLP4GiGNYUwxAENm3RFhtZdEUqQVDkf9/dkZRIWXbcrsAwP7QSdfzd8b6POTo66q2kyar5k2QltdH0b2+y9ev1LjKp2VqlVS7YQhWGy0Izkwn2FnawRc61ZjxXhWBLVTIt15tcLqS5S3q9I+CyLNWafdGqYPBFlYal1Xqj7bKXANBFrj3BW2neVfNzVYqYKhULVXKjypqyFF8rWQo95ZXJYmJ7qIVar0VhGmRtzu1SF/VSwhED0jfw3kUHCgEp7kLSd3Yppq60aGT9DC+9Xs/qC7cMmnMOx70egx/oi7St5l/EwrBM5SnqNid1ywL0u+ZGgipLYaqyECmb36G6gBvjc1UZxhmKmFi4v+ALk4bdqYoteMG8NgAALAVo1wSMO9gAxKrWslgRNQfdIwLqFXbIBTciHY6YSAEO9oK5hBG7dqtbMLYZJoz9bTlbrFwrdqQNL48Q4qgq7HMAsgLfYhFUxm9ESwp3uItbZbdJxCkWQtMZ5+CkmVhcg25yeS2YVmOnXPytzthkwla/hAuPaIFWXhYpA/WjV93wHFVlWtsTmVoEeGgtP/LLtP5JCDrxmGXGbMYnJ6m4EbnaiDKx7oG+eXLz5IRc6qS2v31IxZJNp7KQZjodaJEvRyzlho+YFlqDA0w+QryB13gJdAXAA/QqJMmXw6TeHe0b1jsej9nHaj0XJVNL7xgaPcOgA1IyqMEBMKlJJiRJshJm0PeL/RE7HfZC7M+F/FqBz6aUFGrMJAZFZbL+t9P7fmJ9e9BgyxRQ+/1hjPtK6EUpNxQEILj3nRg2DYhCcYN1ix1AM5GsErKVBmPxjQzNZG10FnOZAlEEX5X5Fixo4s8PVlKnAsaNC9kR8RzVTElBAdcWv8ys8ynwiHj6xX5k2d+VygUEgz3wHINJNspCF99Uc8jSGIebEnzdiJiX+xxyskvh4awWMI3EXkEroInLq0ioC2Bf1C5nt4WKafmGx4UwHAScYuWCIknBRsGJKE86MK9bUGeXZvElZgcLU4TY0nD4ocO8kQQ6w/9b/F8czF1nO7jbDx3cgVAYuRa+YpRiA+UQcyWY/BaSZmP0Ww4JshSYQluadqtTcMyJM6o25QZxg3hsqNoxuVcI5A8lDzIpUjRRgOJUm7RDHLf6gDgNVSQOlB7wr1CDtBKHx5iK8HiGJZk9i6p1gmvPZzuPYvHVMkgctYpb5/CiIOKAXlxuxli0H6HpEQxT+VZQQeeBzn/p2xA6+WWf1vtXl8urISXWJVQ/Fn266s7wFlAWu8PNcQzCDVdiS7suJwrbEdRZsCcsebUG/RB7Frw8n7USmqNxx3RUg8yrCQ+Y+QO6dGdpbHK5CmR7zD6KWwZBoiOBz33VwhAdFAobJCOgQwXfGbaiwJFuhWD4oSMEkYU8mIPcwUDuxH9DefBhdMqOW9j1aohsuwvxte4tFLhwGbQTtr1savTEUtTNjQUoxKEAj7oBIKwdws6tITkG4076Pnkau4Rm4up53U44lPDcNnGEXVXYR5Hnt1snSkG+gSLaF/Hk4cFtjpw6j3Es5iq9C1hAj3dOZGDKoCEP4rImHW94ydcM1EQgYzZwbLEVxxXfAjmcZqNVih5HMemCocl40YyUBCQQqaG89TONcRObsfwaJDMSrl7An3VDq7l5JfMUXTDqF+dcC1yc1L3UMEJwrOxXfHFZaaNgcoJ91nSTb31k3h+TDPegll9Oz4Zt3whONkCoIA8Tm1Ya3mFcO/O03Q/U88oPQx0WrA0xh5aMHR9jUcZIILMRIjapWAx1tYAZRi+rvFv3YVxM57bBczoJJLOaRDU8HbGnp0/3+yuOcz4Qmt540gf7UPaffLuPj/oa578HXDVAAo9V9MDzYcSis3d3GKmEwkvs4+22QpkM+oI1h8mu2jSS/IZokf9ci7uBHjKdqSpPcSpEdjTgFxwaCfjEYdjDRZj0KgBuKHlBySqCawQh+fARKtctDtjBJ2AKQvfxlgR8rY8sIhQq0si/j35QOqEgVYFDSO1CmfZ6BZHETtIICiqAaXYVUPwQN9yWHOiFNNMf4oEYcBCS3+4fygehB0RC204lHMOusFo17yGKdYGO/a7TgZ30FHEGgvFheYSbRdaEjEsndDdFeX9IQXQ6DNFxe4xu9/uSgt/jLOaC9qKsRDuQ33DIOnujE2t3R7p5Y+9t9iWbMOvbFgxaWjhAY+ERm83QbLOZrcy3Uotuq+9I5X7I25fHH8rhe9L1IXkadST11A6mHYo6x3sgHMi0EHb+9cNHNABDtO/N2Gg83G53jKzhaMFNzg+ma7tzr63hHHgbBqX9ew/ituFNIEZzdFfGcKY56HAyxPJn/DHPQJAHHGNPLcOu1btGVMJIS5DyfHelXeGyVwqT4zMYuQ1ftW/GQOAPdE/ddcW1XcAkpF6LGBefYvuuDOyB8mAnp25QzSz4vRJLXuVmzI7PoErkeURKV7qxQN2lEMspHiqW5fUFXzG6aObgg+JGqkrTVbjAMVsRmoZiEAkkinSjZGePuBKFoHv1cK4lkp/aPP67njByGVTmAA4zsGYBnVBHGAjhnAH/6fIfue0+sc+8x+JKtvL9tdztOxeZ0A0RmRvaCGcRiEKyFeK8/OM9FfO4K0FbMd7UsVtscSRN6zPSvZ+UZ7OAaZIwEA9nEp6mIh2P2Wny6w/6s/w57oww4DBqISn5UHeE+oqg4ruH7/TC+lqh8w8ySXzZ8L1eKH+aEzoZ2p5H7UpHfn9v/Mm9w9leF0FAj3JHxupUnVPXzF8ctVVFnaH/uEtJ7px0wu3LoOY82APsPU/3Pe9hR4jbl4MFpUtivJcbfFTglaBRvhL7xyCsWB3H+ATLB051voyGDdZ/V0M31Y4auuP89i9xHRr4XBzr/6sS3FDc1sM/UEsDBBQAAAAIAI611kJ6g6BWqgAAACUBAAAZAAAAZ2l0aHViMy9naXN0cy9fX2luaXRfXy5weW2PsQrDMAxEd32F8N54yBbI3KlTx1KMkyixwY6DraT072u7Swu54YaDJ90JIWCxbPahbRabOEH/K4BbmHZH+DJ2NDiGlbVdE2rnkA1hQTCS00wT+uzRatcA3Pfh4iuZOsCsvx/VT+LZOjqJx+A9rWeAyR7iO/8jyp1S6NAwb52UEx3kwkax+RLliDxaWTkJIs+GOQaP9RJav4XIeC29QKk8Tyns8VGCJ3wAUEsDBBQAAAAIANqZMkNNQLAYEwsAAMUoAAAXAAAAZ2l0aHViMy9pc3N1ZXMvaXNzdWUucHntWt1v2zgSf89fwbYPlq+u8rFZ7EFoctdtsrsB2t6iTZ+SwKYlOmYrS6pIJQ16/d9vZkhJpEw7yd7eAQdcHhKbGg6H8/mbURZ1uWK1YHJVlbVmK67T5c4CFz+psmiXs2ZVKbN8LfWymf8QZyIta67LWrVEtfjSyFqoKW/00ieWSjVCxWm5WolCtxvOcPW1WQvSi5sh9enNJtqcz0Xe0r7BL0GylcyF0mXR3fhtu+CTr8pM5N3VfpX6t2b+uqwHVI0S/f0/whfzuKmlFqsq57o75uP7s3O7tLOzk+ZcKXOjqOc9TnZ2GPw8ffr0fClYQlTJjMjYS/pzPGPl/JNIdczONFO6blLdgM4ZLzK2hF9wGaZhc8Y1J2a1AIJCZOxGcnpi+Cn2cql1lezuZqDlvKxEHZtboZV2b37YNQo7nk2ZgvNkWRC7ckFMjNDs1e9nsZH5/LZktIPJQmlepHBCygs2FyxdivQzCJDLz4KpMrG3xB+5z46OmDxwF57QAq28gktJxdCvbniOvqAH22OZGQ7wYbD8pF1udWo+ZGLBplNZSD2dRkrki4mRewLXVAquefQOnAFM0XJTDegmOmtp8sU47vb7O8f9HiCLp7yS7Mhwj6+FjkZNnY8mbDTqCZ8lnZnRfdhLz7NiXAOT16ICG8P9ZXFN6sen9IGY99wYu+XgCyDNNZpcl7Evkn0ifLHaVUcuufA39OoI8UIxoyDDiVXFmobg4j+X2R2LMqHSWlboYOPWuwwrX/Q5Unti48q6On87f/uGLcoaMpkGFdC2e9hOl3qVr/Om5fUDfs+5LJgWX/Vjj6E968fgsj3GseTZAmK6DSkFoS7znEGYFhM4BBYWUuQZu8VViDH0WVdICH+h5UrYbOF70O1SFL2k5DJpXiqRDYQ2i1OOQnsHgHc4l+jIRuOAm7hMrC/oukLZojAPVwsJe9es5uDroFpbPBQrC6OBkJ47Ik/N7apvyNctLYQli4pSM0iQNkePw2ynSBpkjU989o82QS1gx5oNzOq9+uvIUIGOFFQwH3JFqrWBC/br/vU+vn8D+QWqirh1LsLbWjm4BobSOu92dcC5kF+A1dkJxtfGiMLE7/KSmc/lPdU9UwxzqTS6UJtqCR6wl/TneHbJtvsUIQv0qAvaEOXDpEZyAvYoXHnMrtH4qmNmVta10K/7N3hjzkVFt9AhZqdfKyz1t1Am2GxW8JWYzULiIjt0GQd3RP2TMYawIw/8Xc8hrbY6hMRedh+hKPX6uqfo9JBraxrpyIJpxGXSSRGFt28rOgZMFSarRLA3Zs/2fxzEgn3sWcms+RY6kQSMeH2HVlKdv1YNZGWEwyARiySVhTsmvoIbDk5CymlL6Z3nPnFOXQEVgXSMHl0pAHAXl7eX2eWLy/gyuXq+G11+eD5uf/8tMSjun8htvHuZPR9NPN0GQjQYRdGovC3g+lCmII+VSgLwvxuNh06wACNkEEwDD+i3oPTxdV02lYq8gz5oBMtuBZ0wtM7E1jxTIHy2ivZ4WqMl30jnUudiW23WROCxoaVHpHNKMhxMSBR+Xm+qLJDX7ep9eb0nG+T1B6DG22VJysOY3HB1wpHr+A2X2zByyrEt0vMBDuuWH41rUUKze6OE7pkkZrdgxcMs0hP1icwB++JLB/VLOKd28ovpjvqKcmQourbBMCjEQxk8CTNAZ7Es1veOTGvHLr7VF3tX33fhz/7Vd/bsW/H96ngUG5AZ1UeDUAoF8gN+iiMnxY0dIY2reT2R2wWRi671PV6aJeK/+2OAlj3PsqkpOPaAv/D6WjkHQIP2KstsUUJk4dbjjiqpeM1X2Pgy3J+wyB6XgbtiNVRtpFtGd2UDxVItkSPI0DMyygcOQXCAoMAVrftsqre5+LyReYYps6v2EzbnSuDSUdcC9kFBE5V2M36JzEewqI5gz4S69iNSzIQd7O2Nh67iIxAHeCC3KwwFOoOi4OJqu0GoXltj5OW1LAbGoOfKtJqzGVHMZgPDsHPzGWClWuKYI22oK+oYzWaGUGRSz2ZhQxLrhA5CC7YGhK4b74J2I1HcWqPLgCHnZZkHbQZqQehrzvGixqr1Fw4K6x501d8HHi0qaFvjHpGso6ceMsIFo9wxlAPRroJJBDUV9XVp0veP1kwTp/hNrLBbcoE5a3twUv4cZifQ4Gtc3xCI96vdGRB4A4OYrrE2YjBqHI3+B+zQigxoyJSeIKryrjHxDUFaN61jm3CzKVD6+v9VYMOmAGEAQGmHp1DlJHR0MnOsgePCFFEhg9pD8wK9BGQhaXz27h/nxAW6gA75QlSVc81lEbOzRceGkiUygMd5WX7Gdg5D0W29TQACZgYt9tVBXq/4jawbdXC4e15mZay/6hfVnV6WNK8QgAxrSLOW0UhZ0Q73f9z76a8/recFiXNf0oif4rsJcoYGAZN/5XQtPi9vRMA5vRmqbfjtKNV+O54Fndfm6rV+BexlLcWO2V6Ck5q38noJdlKgOoD9NO206seLUrmWjnD4Q2B6ghiybP27L+we5YZ6Q9RQbhxG4IwG7CNI7yYeD0EJGBv2UmOPfFPBQtiHnUK4SLnajXDX2C9MPTzblI5omDH14wMjb5CdiAxcu3WKQRMfqjXIJexR+OS/4EAkwEMs3FtwK6bYZqYBrvhmJqYJyfB9fJ9nHOzt329aB4Q/wsBdboXcgMmVRu7GxPZjm2HtVyp25rMvdZf8LaFJssMRPtjlFI681ztImFDHuNmVVrz+nEEUDmfBm+faQSzbjtlNiWctDvLn/IixmjzDeW87bfG04aKinjfpLmE8TUWF4t3wHJJEgi09NIejvoaNQ0m4U3BCcrz7+Pbn0/dmlEja6u7Wl2FHDPxx0RvUFehtpsODCIIb0/V4vO8EeFXldy2DTQikW49jPKMfEtmSh206qKKGKgapeR8Kbgz4tS9NvfxQBYehYTISVqx9U86USEvzcupgwoRO4wfnAAxFWPtmZwwJs/DCDU741r1CSXq0sRawdtyRMAsGnSFY0l8I1m17klilfh+0dbVYQfmcFjhSQ/m890C4kDws39BcqktSNu3Qu2PDdlgwbNYIjPu6bpTqRwizn9dOKHk4vkszUk2Na4egLZZpxaQTmGjN9j3II9uLwZsOAJmRO6E66mMs2H885C5a1G1FbFto49hHL/b9q50BKQ3Tbmzy2PTmJBTvhidkh5JSF8ciX6y/g4GolM4xAXWZx2XtttaPLqL/Xm104fwU5YkQvtnJx4RRZXSFGA/UbV59PELZZgMGbJlKnNuZOb3TuJZFfvdHFG85g9rNpWJ2Iha8yXXCXuwHXAqEACzaynPDJQR+7szWejtdi2KDoejVkTUTfT5+7FTEnP9nWYlk2N7I2kRGWa61G5RS32TviUiZXNi9RGH0nxv3IQSkXR86eTMnY6RVuB/ZmETumyvhMdv1+IydlKliimN/6EKFrqLCBaAKqu5fQiasqnmqZSpwF9xbO8xAD58ahf3nwd7h7uHeIWxTVVkoqJpnI9CUKDj2NVCZ0yUvrs0YHHY1hZY5O3NYLQUHuMShLSIdf2gq/JeYOOwBqCHB25KSiVxo0TUbhxMGkjzIB8D/3YFjyAUoRizM2GL9zngc8O2q0ndGoZj2GwBVSi2asE2fsde4ReJAGG4HeOHk9M3p+SnWh4ur3k8cOYI6ge4u56lor3NxdZ8CPHI74TPTh4EWiNBVg1ch2reM5llofOcDN/J+GsL+mZ7/hyaqjdv4GARiNfCfn6zWAoF10Ote4BPsWM1Lj/8P1cJDNdOYPHyk9i9QSwMEFAAAAAgAbaMjQxc71v22AQAAigMAABkAAABnaXRodWIzL2lzc3Vlcy9jb21tZW50LnB5XVI9b9wwDN39K5jrYBsI5KbZjFyApFOXLr1MReHoZPqsRJZcSb6gKPrfS8kfUU6LpefHRz6SnTUDnKTvp+MtG0yLyoEcRmM9PHKHX80woPZZl9Imh3ZjPdEjyzKhuHPwzblpjSmS+LLOgM5utzv0CHUk188pG+7S1/0zmOMLCs/g0EsHzttJ+MmiA67bqNXTRdHbk6CYoxwYDTLIUMSIQnZScKX+sCxGHN7MygSpnedaEFFwDUeS6FG8YgtKviI4U9dzTDjiBvZ7EF9S4CoCEXnQLSUF/D3JM1dB3F+EM9nOCnS5gK9WOOI/EIEryg6992NdVS2eUZkRLZt7z6j+6nxbzSar1Xe1djd+W+ygaaSWvmkKh6q7Xm1fg0PnpNH770bjMpRw3EQ5inQCgaq6km1ClxLlu8OwD7Bfk7AT+iIPWF5ulE/1NvWwMHD3YZdYwGjmb72BgbeYDvW9RqqHLakCvwj3pUyQ3VwFrS9CMJelqaMxmKyCQhsPHDwOo+Iey4/qsa1N4F242X7ki+25xxZHu/Q4aaZF2lQN+bzRsC74z7+f//26z1ln7MB9sdlhypwktfM/UEsDBBQAAAAIAI611kITpTA5fAIAAKUGAAAXAAAAZ2l0aHViMy9pc3N1ZXMvbGFiZWwucHmVVEtvm0AQvvMrps4BkBB2E6sHVEeVUrU9RLkkOUWWs4bB3gh2yT7SRlH+e/cBNlvbVQsHxMw333w7j60Fb+FJcga07bhQUOm2k1FtzRuqtnp9kVdYckEUF3IACXzWVKBcEa22IbjlFTY74Heqfuj1FRcYRVHZECnhmqyxSfaOtIjAPJPJ5G6LUDhQ8ehQ8Nl9Lh+Br5+wVDnc6rKkTDWvRkJnBCBTEgg0Dq22RDku/EWlsVNmXAbHJTXiX/PIOW8RgTSSF7BVqium0wpfsOEdityfIS95O325mFIpNcqp45bTQaT7VljDakUZVatVIrGpMy8hA4lSUs4WN5wNJ7OP1IY/uR4wTZ3mu/gwMt3HGFi+Ih2FhWfPN6iSWIsmziCO98CzAq54wwXw2tQABymYb/IMPp3bNyQtHTpgdaaQ84a0eJQyXutNHDIyiw0IrcXwjcqFz2GxRuURqLRg4xMPXPZvTMLw30k+nCKxs9PTHMbHfujg4W32vryM85qLligPHpNIdZpjV5NRgO4qovCUeK/6YCSscTcYDvwl3L2B3iwdKvxTjpnXr85hmkhlX41o5y68XFnAmvNmHHW8qBaFhCX+b5TSVTjN4Hw2z2A+m/9dq69EXwhbpQzc+IXC7x3qhPCOCNKCaYGLLyDpM1VGBMOfzhrM7rFQlzSM9ZtRmjss3B/DysGcvaJsA/FZ/D8ldLfrAuyNsD8Brb1Gwqpex87Vu531Yba0u2Ayhn77DFvsgR+LZYDos/ru2J++UR1R5XbftAxMlcnC3frJ20EOv8ZF36X+lih8yvfUdXyWBqeyqUKtPtcw/tafBv5+xO6EHtWnN34zNzVGvwFQSwMEFAAAAAgAbaMjQ+Ezu8pjAQAAIgMAABoAAABnaXRodWIzL2lzc3Vlcy9fX2luaXRfXy5weW2SwW6DMAyG73kKiwudVMGht0p9gJ23W1WhAKZECgmKQy/T3n1OXOimkQv+Lefzb4eiKNTdxHFpT5UhWpDU5c9R6nM0BJPvF4vQeRe1cQRxZGE1ERIEtDpiD9GDICqlPhBBW/JnGGOcz3Xd4wOtnzFU0q7q/FQ/TrXcqFXBRtQQ/ASrnSUaS2Cm2YcI0UxIUU9zM+ugJ4wYpFpcr2XvSSjVNNrapoELXHPmppTqcRB7QqDDYCxTjsDYiEewukVLLJlzhN4E7KLxjhPGdfh2VsBHrjL36ztrM4BgwDg4lLwPc3fYl0cou4BpKymc0CWUCFpa6oJpWT2hL/C1FFp54xYSqrVPtilteI0ut7Ce9jG5OFNytEFkyP/1ks8XJHy1TWvNXX8NtMz9GvIzpvFo1wXfFRMcbMRttevOusTpkb87jK06gzYltPw0nN75Ow7ybNsYSe04TGmxmCKhBoxLcM8a9QNQSwMEFAAAAAgAjrXWQkpHv8ZXBAAA1AwAABsAAABnaXRodWIzL2lzc3Vlcy9taWxlc3RvbmUucHmVV0tv4zYQvvtXDNKDZMCRnd2gKIQ4KNCgTYBm95DsoS8otDWOuZBElaRiLBb73zt8SCJtuWh1sUjNfPP+SO+kqOGzEg3wuhVSQ9nVrZrtzPYr1/tu8z4rcSsk00KqXkji3x2XqArW6X0szJXqUGUV22DVi/9qFrFYLUqsBrxfuL7vNj8JibFUp3A0+okWs9lsWzGl4JFXqLRoMB115/kM6Lm4uHjeI+RWMH8ZJOFmeL19AbH5jFudwfOekwUFDFTNqgocvBYWas+askLgzU7ImmlOaWIb0WmoeyQFtCexFYpTgjitSQV8EmYW5AkRWKVEDnut23y5LPENK9GizFyc2VbUy7f3S6e1HLGXfTz2t8QdFAVvuC6KVGG1W1g3FqBQKXJt/YF0fA7MozoykQ4xG7lqN88GiEh5PqqRVFawlsPa4mevqNOkk1WygCQZ5b7L4aHERvPdF968QtPVG5RAyRNbzjSWcKDgxkRlsQEvHppwW7GFJ01QIHagqaL1GAqpZAugHDYgJNVMKCyPLCirGhqwOzH+M9fVefxV9u4IVFv5ENTuxKB3qLaSt7ZdLDS117k8lIFsCBvsx+B9W5tpgJtoUDKzN7S26UoaUVMhKo+JbyvRTPGIBieRH3nnNcgzA52O7vkPyXzh++WkjcjVD67GZMN19klzxJmBw55v98AkgtK8qiI/qdJHvpmtwgOHmQv2j2pNgTaDS65n/ptnx1mxqlO2oy+x9ZLANa9xsjqHPTVyVAg4MOUKdtLYfrdgmmz77GvZGvDjClmpZD7tyJQHUT1oUXYnDdthYXvVsM3wie/C3rUiSUBFp9pn/e6V57OA9IyrnvQCVIm6kw0kI6/DH19X3/66TTLH104hBCKDZ3HGAQ80utbkK+TbkGFtEMd8Go2Dlf0xPi97cDoBUeOxN0T3d/bDSRMOIrnzWOWwEaIKNSdjKowUsiZ1q8Cs5Xma4Xer6wVcr66DXHGNsrCnuPLBu9lZX17Fzj6QoCXpNxos08NOCagEQAed/OJmbHLEBpzJKFsmWU2Hr/amc0iFZURWzRfBKHuDWvioM2LgHesqncPlVdSDPm9gDnr2xjhpVr3D2UR6X7FBe/MxZnrmtbcZuLE/ty9/gposAB2YQ5tvOl6VBe2kibNFR+mGKTRb67EO08UzhUgpCakLmCInrYW7U/17f7ne9dWzjU3tac7AdUIOBCeMW9vBo9e4vJ8syPletIAR2sJegfykGzbvi3ZSWppG5xdV1odQmsriwW2fHE9TANaBuDXcIWDuK46QAyYOFAOXQ/VJURtMbOTh6SP88P3qCiyZOsKJGe83ei4fHy/v7p7v7/PHx/zp6ff/M8OUeEY99NXfMfK+hv4ik/vcRzbNE10e8rg0Pb/mPqZvg7b9E+BpPeR1V6DIiBd1/WkWnkxaprf7kVgWNoK1/UeRmte5pZrVPIQ36hMHxUC85vt8YojhWXZ4PDE/0z0bZ/8AUEsDBBQAAAAIAI611kJpDdH5vQIAAOYGAAAXAAAAZ2l0aHViMy9pc3N1ZXMvZXZlbnQucHmVVUtP3DAQvu+vGOCQXWnrhXKL2JVQiwoXVKnc2irkMdm4JHawHVYI8d87trMbZ9NWqi9JZr755u2USjaw5abqskvWyAJrDbxppTLwhZvbLvskFc5ms7xOtYY7rTu8eUFh5oN2Ec+Azunp6UOFEDtk/DhA4Wp43zyCzH5hbhg8VFyDbjHnJc/Tun6FAtNaO64dBQRoDTRJda54hgVwAaZCB/D0+sfmxoOuKmPaeLUqyKiWLSrmc2K5bFYvlyvu4CtPuXlMQFMMXAqQpeMj3j5fuP56x2ZO+LCTPgjyrE0qctSQpwIyhLzC/IlCqvkTgpZx7C3swQtYrwE/hoITJ3CSa0GJaMDnjr+ktSU3R+Y25oabhBeeaPj+M+jkCLTvhnsWWEKScEGqZK6xLpc+pSW4kqzvpdg30B7dUe3mQ7+WYG0W7EDRGzuzg9UZ2M6b1xapnp4/DpQA8yivpcYiWkKkkPoj/Lvusr659qtBtd1jSlRIBaevEZEFCds4j6NJ41v7HsQST4OhnNmWLcEHMSRLqTHf4LUHsi2aeeRex5Tfbq8tmx0TX2g2ZglaFjIdxAGbwydpy8fQTtU2IwKGfkfbBFf7RXW9Y05IG7WrqFgUG42VdWjz2aUamrTAozCdHfl1z4OKl2EgThcFM2FPGV4Tfpn218TdiGviyqnnU/5+skbZ3ndNhsoWus9DT6vs1n1SZCul8p2P+YrUoOEN9ncOKGwVajtAYmur5u6TfsVtxXKFZFEc99ZLk9SOie+eNqq1xGFeAyxajMP4zN1dk6pXm1rNxZOGUirnvO3qmuJ6poKasVurSXrNOOFQQ0m/vffu/K7j82HTJXlQQScVmk6JycSuPfD4CvF0Av+T7uSfdLYFPeGUKfJ/CvC/je9nb+fv8AHeLt5/biJGFWtSM//LpDHhZmcZLPUBuZj9BlBLAwQUAAAACACOtdZCADdUsAkDAAB4CAAAGAAAAGdpdGh1YjMvcmVwb3MvY29tbWVudC5weZVVTW/bMAy9+1dw2cEOEHhtdxhgLMU+gG2HYociPRWFq9h0rNa2PEleURT976Pkj8iKB2y+xKbI98gnklmtVsGB67Lbv48ltkLFmahrbHSwXXqCYFdyBbXIuwohE41mvFGgS4Rriv7ax0JWMaWCYEXghRQ1jAw5ZkIyLaQCXrdCapD4q+MSVco6Xc6diQSryfELUzjAz906hUe4G/oIgsDyuxlFTvg6CYAeSm5HaSfWN7l30//ofFzeg9g/YKZjsKUryh5txRaFN4WQNdNcNMD2otPAYFAQjAkKTkJx82bl5RT+HAc2dvckJl9SUbMmI+SMNbAnbUvMHjGHij8iKJEkfYx5snPYbiG7cA1vrMFaPjc5UKJG2N+sMuDaC4953iPQi2d+M5pHjexvjgWkKW+4TtNIYVVsxsQ3oFApqn77UzQ4SGse1bUoI0dI41kV63jC8RHWU+zbBEwQJ1lyo+JTybPSNtko1xOjJmQ5xkc+Are9S9imvNE1PqCOwukgnLHcXF+BKGbIRPed6x/d3oMudV2lnax85NE+BzadVfEGoenqPUqqACXOeOiGKpExjblHZMM8EmM7JWiZJlWEhbVtdsryF51spMdhbAscpmVNc1MLG+CcF8V/8IzRPtdgn/PlpIbmNQ4DZwaGRo2CeHMwnM0JZdfmCwoO1pRpn/d44jDzwg87dvEyprWkSsvWpBt5DrOarsSBlBt6zKwqKkRAhYV2i/ELMH5bMBPlZjkvhXzC9VKmfbDZhNFCxDCGgTPXRudhrh1AibqTDYR2GfZ7C8YFefty9vru5fz17jKM+/0XnSYyzdxt8uFuc0wurnpNJIThFOUm1EvpLZp/Wi1j5Bgzl3Vp89iLHPePdf80/0sas+qhh5z2In92EqI1eWOP6U5prqdLnRySlklW03+HtKEJRANJfkwx6QVXCbmIysWe3h+UHSW/LyzkTP/BsS/PfPQ9mtJF6uGVtXxjJo5tX0IDECYW55Ua5OLsbB24BAZhodMmuc35enY+NM9Odug31DdWKQz+AFBLAwQUAAAACABtoyNDZfcLCQszAACWFAEAFQAAAGdpdGh1YjMvcmVwb3MvcmVwby5wee09a5PbNpLf/St4yQdp7jTyI9nc3qwnt17bu3ZdnKQyzl7t+lwjSqQkrilSS1Izmbj8369fAAEQpEhpxnbdRa7ySCTQaACNRnej0f3FF1/cWyXVejf/alrE27yk/++dNz737r1eJ2WwyaNdGgeLPKvCJCuDah0HP2G9pMqLmyCf/yNeVMH1OlmsAyi+K+MoqPIgXCzikktfhUWS78p727CoyiBfBn9Jqhe7+ag04Tz58eX03r0vALl7yyLfBP8o8yxINtu8qIJot9mW/HgelvE3X6sX82++jrNFHsX8cpGnKSCT5ICmlHgapmk4T6WA6ncUL/IihHZ1uSL+5y4p4vIy3FVru3B8FWeVLvgcf9kF4K96+6c0n0+Cp/lmk1QT6N4yLgDBeBK8DlfwXxE7iCRluYs1bPp1CcMUbspJ8BJ/+YozRqoSFfNgJWWh93Gqyn6HP7zFNkkal1WexaroK/XALg7UEKcaYZ7Ip3nhlMryKlkmi9CaiovdvFwUyRYfwlisiziM7GrbXVrD/hF+/ASzAljYpZho50WYIcXJuNMvX7kFzIUxWkhxT/lRW+mkUThpKwtTlRh0+lQ/8ZfPKpOSnsrvCSyQNInCKr7E5qG1Ki58AKL8OkvzMFIAnslvX9l1nr9T5V7Ad1+ZsgqrXT099KutnIV1kcx3sHiwhrdCFa7MIQTat0sBj6hX3s/wYxL8V3zjlKmSmhaqZANkEG62vDhiPUC7IqnizTaFwdPwfnr5Wh7du3dvkYalyWfGNcmenN27F8AHeM5r4FJnVPRsZvCkx/X3b2fC6abBS+QWW+AVNJnr/FqWAQGDhxGgnS3zYkPkH4TzfEc1GFICi43bfX2d149voA70EHhFGSzCLJgDx13Hi3fATNPkXRyU+Zmgi5/iYXB+HhSPzAf/Qg/oyZMsQlaMLA1IC6m/cqpPk4ghwBfn8b+ox/T8Io6DMIXWg3VVbc/u34+A+aT5Ni6mPFO4DO5ffXWfenJfjyh/ieJlcHmZZEl1eTku43Q5oR5PYJjKEgbn/HtgMDAPCoNyB4DH9ahjwXR5MtUwrNonut6XZzDt3+m9Z5EiI7tKwuDF69c/Xkxr+ABtSm8vd0UanBM201VcjUf66WgSjEYW6NkMFyfS4ExRQU0BSbaCzS/O3H3xOoSJBBZXxZHbPj+9DCtAgJ5cllWxRfhjAx9danRiYfMs1lwU91JstqYip6nIKGt21ngu3a1bCHAxZLvNPC4QPhDyu9Js3/M62IRRzMgA2bViw2VNPOgJYPDAROAMtjQXUhBSS//ZBNiAN7Jh/Rm2kSADnhHAhKT5Ksnu4y8HEBS6pEIWNPW0OUZPicKQhnYlUsAKt/t4upriN1glxtook9UmvEqKXfno6/t6p7sxcfwxBckKaxJE6EQAHCDM8uxmA3ITk7MzllC4QcLyrEnA/72OgUxgvooAdubG2K5hZNTeAlwjQ3kpspuDIpd1EbNR683gZqGfJIAEVRECsyuarYqE5DbJjwe3h6vlOnmXtPeS3rqt4UObAGiukSWWMNvmFJts0T/byKlk4a5zILltuIpp0vHJtshpl3EQg3JUzEJMHjap00JuGCkayAkqQajkPBepapM2aFA9bBLhz1kCwlwAO8w+roV7kwEyiZhDGLC+C7PVDscDcIQdo3IhpOq9CUc9bKL2KikKGP8WYBt62+hp/bg5AcY+gPyjZg2eEf8e2c6+IWnwJj9b+l7zZeiJLC2LeXsLBHnW3TqW9S1E47nLxC0V8TqLC9D2LL4LyCiJCyXA4LElHE7x2bf+3RZQNdoxVzg15OKOzwBrBGhsr4zTJHj/4WSiNmElVezZirYFSFVV7OxF8tQaH3k2UJrAqYCBYak3YI2kDK5Bkwy2u3JtMC3oPUg7nVPHNfbIGrqQI2pcJL/uJ80SC5m9xgcNcri4eEGbm1oIfxzOlrRgZ6NDch6Ad9Eq140lK8+aDODlMoDNN/4lKVEdw2qdjf31e7exq6zZGD87QJy0CcBBAORKc/5328gjYsrTPdNelzLnnYuHW3sX9LI5WxS8DitQWYoWfsM6H5VRfWwlKQXJwkA9bIqLP4YF6jhK/kQhcBIkxpQKp/mDodvNnAnMd8XCIWN6ZEwdQDTK1kpLE4ihbhovRJk5CPWzdtS3DMLiO/TIgzq/8KCugbio8wsf6qDbhbu0CsQQowSYelJdVYSKX0pxWxsxXzXI7AzUixI0/mAsBU/6tsn1fE1abzwtvo7DTUmMYIyiZBgoK4OzTios11j6+qkHMhpj+kBGA04Tsn7qgfyc7ZT7QbNBswG7fuwbkHDVazygWHM45KEHrBLk+sBW8luzAeuNp5WLKixW4a/IUfY3U1LhAks3eboG1NKSYR3r09bCKN60SDgvfR1jk+q8Z8/q0s2e2e/a22JjQu/GqHhba/qlp7lXcdGPLDZUsCme68ce4M+0KrsfvlJuGy1ordfbCOyOyjAJwstFzYrJyHRpM2w2/BsL0JZOSEOWYwiUhBTkafD8l22YRaDSVmuQK3gvnjkbhAscmzaMpGOF0QltPAq9OC3jAM1zdZ9gH0pWWewoAfppE/EnukIX1igZuDhbQF2E9UvCuMbKgzIzeAdj9bCJ8J9U8S58ubqLsQnURVi9I3w1Sj5003zu4IpPPIhSwS4sy3XYQFHBauCHLxg5guvBDG1LyMcbBifN3C38/gICDBUfiKIJ0cVSvSNENT4tuBbxsokrPvTjSsUPwFVB9OGK7zSu1IAH16pw1xM9aWL5uij20KUHRQ3LxY9eEHKMgAczPh1ykFMPm/hdqOIDUTQhuliqd4SoxseDq1KS7e2TnjUxfSqFByJqwHPxlFeEpkKlJ5ZIG62YImUuDsPWgXsExrTruAPr36iequLDNykTqA9ZfKexpTb6osvbn7xq21zVKfGhu6sB/gjs5XzYFQLbBluKd+G8DavGTmWCbCLL7wRZacE/1KgauoSBz7x0oU7KOzfWsESTCD6ZzdZxGHmIRDXgGWV8pQaZcPOJMMVinVzZaMszj/gihbtwVpX5vFdjD+y+IdLUzTQEGn7F4ow06kHeY4HlRy1UfbCw6BcT6Q0LiQzdgyJ7cFi2CHzSRBC9OwJx7zgETw3WRZNe7MGSnF0cY754u3hQ1Z4wh+BpA3aRpbeELKPkwZVcaWzTv+lc00T3e8v3pnPbSLIFLLgJknGawhfbSonuWskiARaSZCu3Xw0k3K5RAeoa98DTNXJNsueBHzU79R0X7Rz/EA2qrslAgXPR4zeEn6DhIMiuC/E/LccFw1WhiKtdkdUHVtIL5TfB1dGsKwCaVUeGe0nw5v2DD2+/HU2Zj4wNcxtDKqt2QPYRtlGLDbwtHWA7r+tY0TwIIUjsjXCJi0ugAeSwAa2INzmwuAxGcUwF9Hty5zvn8VXPYOyxkG2OZC2bwc13SUp6t7ARULJxj8An59pMfWJVl3b4Lf5gM+YlDHQ1hnqM+DkhNwkePXh44o6m4Xc2RgDuqCDa1IpDMH+0XQjV0IVRdIl+ieGcPQ5l+MgTwRi/L7744kmEOwe9wH2kDMLArEhOlZbNXFc+I68okJALhnsWjAWZ6ESaUsc4qGzX9bjL5Vkwz/M0OD0FLQOPaEHY3pH7JhDVJPhziB3N8Wj9OiljE2Vj7MotDDsVNeeX0ekzwWZXcaKp5v75loYFHPQiDvWU72jGaZq/ngRfP/i6MddYu6Zy2XplhnglTgIUoc5HI1w/y3MxHI/smftLXNHgVmExB06KDgi/Jlv6qrZzNlXLQSIeqQM0YwYv4rinh5USyu5/CQzzVMCfpkn2zksP3AubINA1d1vFEfodApnDy5FgPppYgzuSXhi8WEDjoEC9nCx4IY4xPkFHqIJPrJawnwXlOt+lEfqyleGVcW6JnwrYjTpCSEpdhw66t0V+lUSAYMIH0ygLoomTuT2M6jy2YF0X6DOZqeKLXUGnGRH0d2EfLxFZVuRhV4XvYnQrgkZPycVOjuJCPGtN07rH1c02lg7DiE6ohm+oYUbNITlylXUtM4uLqs57Vh9PPg6LMcPGrPZZmGoZQO8Grkbc0InjQlv5NewNPB/lOXZ/gkMWhxv6YdhNtyDeo1tBHPk6RPCRCuz1jo9xlT/gVW53axm5IybAaEqth/IiKZUv5hj6EFZVMcayMHI41ni2TW6LE+1cftIE0+gL9tNbivBD+I23uMH4IVMdBK0Rm4/smfDX5YVEEle5ncqyeqOUzNMoKWl3QbfAt82RgXpcZbpMsmg8Uuv1fHQS/FsA361Hjfo10gzlTXL2VqFuzxjwysV6l71DyiVMEzysEyzH9OoSvQzOf/fwkWfsl9GUJopLOsBZIDXmxlt/keZlPHaq1ivNmkzZS+RtvZ2gLVX2knId+ncMLAO9jFCSBjKZ3yhrjn93h1c2K4cHamdHUB6eo86P0WJcO9nA3yk++Xbm8qHmPo8fa/2YHKllNwf4yGnInDwiNLuZR5vYJjyE9vAHje0be0AyWqtQRvNABneZCSTOlqngU2KlSHjdWX1zgsXtSRFIlrsT7yJcFmp1TRTXfsx/v515h71FnCb4faQtdQgxmoiD2qFy9Z4J4qGvxejOiWJDZNeSCQP0tgXJgvSVE6kxJS/1s+UuW5zNasPnTPsHoB31GUj8GhybgIevMQbcMXn1jRG+PMDf72qVieX27hZY3YVhc6jsoTKXyjqaRB1TKldvpGxzbpKsMgDZU1Q7lSpDLl0FAHZqXM3onjGs9Nj4cZdzhvL7iCSgsTE0dzmBOBf9Z5CMrEJcMoWI2oS2f3sKn4qttbrO1UGCf1khAIdNwhO9ROvLVL7K2K5dWdl4iUWHK7yZWBHEjqk2zNCP6+/Nia4HZdi8IkJiogB5aDSdTkfwF3G31arm5/Ynvu7f/g1SqZQy1SxSorbr3M4xNkt9NCDLjtS9bQ5rlG/gkCDDhw8GObwUx3JUFWsdD+ZvUe1AlMZbHlpnmwQ3+Y61PXgSow5d82+Ql0jLKm5g6BbvNBagq5j3nPDzvjH0WkidbqJRfY4yhpEMvsRLBEBW+nAFLyiIMtAEJPr59sYGYxX84F0Noj8bBE2DAiOHyLG/uAVGBDcyApi+se3654SGBF6gu2UmTuahLNL7LADcr0KnnWeskiufu87VJEP0WH1Df+2C5sa3oo7kmtzESJHnESsGQeAN2/P3IxgymDr4/4O7jGw1kFkn9sxRN/Rqk8k3eKwuF6c+YGlStgDDZsbjfxh+/qhq6hYE/Amxzn+gikQL3GUAew2TYtI1tBQZZJguvFMNZOOweqoAJERKi1jdpU6bwiKvXd5ND/2KS11XYWFXBtmVroCjerGrlqe/H/ksLUL20sLFiycyLIYRyqQ6FPHOg9HInH7VPJtPGo2SGUJ1r4/I7ahE+wRutFADmPeK9IFO9fyMFG7wUH390Etc72EGl+5jpaZqzAOF78QfZB2OGqQHD/tQni0jzvPoRuRYsrgi/cJXMUfIzzTJ4vOHLWSpRD+8c6s0A78oAk05ogg8UcSyAaYVrrwWvoZqoK6LR77STRtpEadhhTsZMXtz66xyhb415H5pSA2KDRzHBk0J8S/KDholy6UB2QMNZWqs54FU+/V7kARQ9i4XqW3j4S2I2r6zwh7KL00iGQeBSPHvmDqC36Cf9OMk+DZ44HBdvdCw/uhMCHGExeEX/oFfOGHwi/Yeryw30oazMz0/9pLcd0KGn356nqFD7JEr8XP3J2YDlYz9XEEbAWQtTshLjfZtDpiAFfPi/P0HtQRBVIFfHYwhqfiWWw+DjjTqXekdzAFRtOvgtiPrB1+qAwZEwpoBgU3icwmrzIWOooLqe6OF0rZN4ElKWMltMa5icxSxainLCYjk8WZb3UwMGOqMRRs85eJskeeVB/FpQFcPyJmQhOcEbxSCNI/Xp9T9EWq0Pg8KMwtQWBShcUoj/SZJkqfaZlDQUk6THk1EwSeU7aVU8kEU1sd7VWxgxePPEV3Mj/BhmPKhknFqZAHBC1PT4M9yhvaepbGzYPRUER3d3sRtPd6ESTqyOQsV/2P8S7jZpjGe4mFBPJFHEH+Dz+mrV6fPnr1+8eLs1auzi4t/gy8PHow+eMdB07lnKDxjofpvDzONZaBjaJTT4EJPCWkLqCbIqZFMOtexwOj60w5mr6xgpsW5zRrWXz1oYf2yLHkucakR069Fbs04PFJ3t7hWs97eApsgA5Os2Rc59cIDZmNyP6ukDYUR8+8pPPZQjL9odPAE+qymiFsT/WrbQU+LXzcrR6HBsino8dCSLKuhLN15x6Bm7ywBCudvWiY0tydRJeni9QNjmtQn7tyv0/CUjoAH6PWmFJW4l61vaQ+a31QYO8ancNE6JhsLU6mg0HaQzZNi8xk500ARkAfa2C5AGfDZEEp1Odm5Kdi4UDyQ32W5FV8HZnmVXHEAlga3a3B+s6ba5tBWPA3+lu+CzQ522nIbL5LljQVrnsMshhJHBHgLsftDNiwmS9UyzEDKbg6oTnv2VtxiDJRpv94Cf0Vuf+Mg7CJpgXMR1vzato8Z2mbTzuMPZzWVAt/OziYuLOzCqN+e8MEv69duyDTueHRr8PWajyDxu+aUMAFm9Vf0cXmOoRrGaN4bf49KzFVcwApqHlGr7vO4zsnYQcuKRTfQ+hsg9m1NtP4RdXOPGmI3GGT6YsrhPpzX4fHUQJ1Q5Dv43TCd4KdzB/OZIeT67Jms7JZdzNyzPJHOxvr9yb5t0FebX54M17Va98mdtU1i6EGu3WIo0SOjTHE0w4r41cOmKQWfateL0VtAxbIiGq9cg6ILgRpiAHrjrp+7tWWTx0K9NvG8eCebeF6swiz5NdQGmbYdGMMy9T0+N4H6/BbRymmWqbcgW1Jn8/+7YJdFnWbr1vBut3EIpOJZdS1R3AvMPjsmYMOBypHY3o/MerAczJ8fTHuz6/rjhdplL1cOVY8M/mYo+xIg4GgBEW+zG34ZJBcuk9VE7rqev6HIJEjCIL3AHs/OYn6io4CHfVX8ps9GZkThQVAtMgmiZ1d8F9+ckh8lcOcEI1xQINSQHQnLuELneVsF166gvnZI1+fu2yKEXP9V+JHPZJGsVqBwRwiyIQ6iryEPmw3oWqJkmZDUAZy9pBT4jtWE0QyCx/j/0BXU4cGitkgYa1eRUwTiOYppWZIUMWGI+iY6PhPkiBvkXY9aljAJaHm/6lLdaORRdaMvt62i4Ygfv/7ohgwvQL8hsUqqtEUxIztph+Km72V3ldG3Y7oK8f2M1g3HCCLXd/lTtxwVCR8pBkDQOk4OTL3IODloraaGwjGzu3755OFPRRu6jATJa5gG0YCvB9HROSLHhl+H+DXg0ExVHGdCvClUW8GYgjXNZpvZjJiEXvV1bGATjBbrJaSwLqXjeOFNo81UXZRCmNdorERFBpUaCxpaEqcNv3OmBWcc+f4ODt52m96w1umYWJ2pIWc8BYtYbr6UM8Oyg9vxXVG3n/T0GKMWDzjyHqJCtBPRugucIwlFRshV5KtnydR32VB+V9/xRIP6i2ca9KVmSU1pmTDyX94xmTUV68WFdZC4WzqNYASFN7rMkSbkeO4IO7sIJzId8KBF+IjibZrfYIHhDAcq+arA44agEVTxL13eh/8FRZw4evDolnZmRhj3Y0TNv3e69Asl4Rf8/6EPkUC5j3PFCwblePKgVeRIryloon4K4TDs1i2gAwRUYG1o61KGNQLqq06Y2PVZRtVnRWlubTd5Y8ch2OyIBBP55TLEfyN08Bmp72PGgY1UwsvxlAcNDR1USnc5G1yU2pvSuwbB2pasI8VKHJl+kl+as5kd/k5xc9iOR1+OTnqRsvDaj0HMNGTHk7PeKWyeh1E3RDoLjKjRXfIaAd7Fl91Ggloa6b0o9oltm4ZYYvpuYEdswYEeNSrX9+Os7tV35fDaCB0N4R2RCJ2ztPcDv/M1b4ydjUTUDOfd2Q8eWRvGy4sfgt9/8+ChHN2hmRmKIeV0ucNq+axTcjt4JbasjPpC/H47CU8Q2Xwzz8A7cQwrDr9qIdS6M1Hp0RnXahKyFSH9zJwkPMKlKcDH9KVLkDrwEvTxXEFP4fGcwbj0LaNXO4NPajWwZZ1j7aDg+9QSLF15KlAGBxXpQ7gzeS1nKw1KuXar6CA9OYNXeWt4oMvmhpISbbg6HCRGYCc3Ng+Ypi+6gJGrwd21mxrkJizeYSg5c/HW5Naxfo2L6vUKpnvyU+MVLWF7ofSWBFtXj62X4MDiL6SK5krC8YK3+OeDS6VM1Sad8YLpSZWXSEGmFYM1ko7bCl6qJDpkJezL2Yy++AgNdW3WeOy7J1SRldrPjOw+AcmgVphVokCit12LrEUFgCxkwiwaaqGZHnTjFOvL4Yp4qWNk+K6eabIpVEKnbgeDhlO+MWsYp+Mm+OcuTJNlAmvdNDxr8M4+y2YYDCF3H4ekvM9zDkQqkaujPC6zUYW7WVEp12wsz3zVgiaJvDAGQRpTlOnrPCiBPtZxOalTcz358aW6fUFea0nVOO72usRevHjyUJQN0CpKuS9SD5xpw/Iczqhi1hmxfuzKI8crBgXGfYCdB8MxLPIdkO7o/ggI9zx4pHxJWyhY3x1AaWIdoiyxDnspB+JahPPzUTQEPXzHywIchK++oilC9ARDX6xiin9GsTJMVWE0allNkn9K3CL3um37SM12fnTcUxR8rxO10gfMi56mPlABI/wD+zHy2SIGMTAlE/zgDTSlLYD0D/IpeeUjRTCNkmsgOh/gl2WYpLsi9uoH9fjZ0oEEvofVkS8SRI8WN3tTUve8q7JV2yjXlE+vqXMwsK6V8/6DuW6UjzUPo3+F2DJ2MKr7iKKE/tFygtIqgfdaYypaZJ+7sbezyjgAZvdtu+7FVYUrJWdjtkDte0EdgFVyiWZrermKC++opclqXV3H+P85Bc9oWXmUoK3vYUm4aj8qhZe+Ol73NWx0yOUKY3ljaiTDe5oOP2EUzOVouhTIUDnNo80fE58wnHlMaQhwLCORpawRVf4TynlTru40Fi8dDPOUNG85wT6rkh1IHhh0w5JeWc0xBO2MjKo7buyYRYxxdNul811jvhsOZzT/E8UPKaEUaNKha9cgUtNXm3VxEzTN3Dis95ETnyMZSCJmnXMJ31Jv7q8BirWtw4OeoubUAx19ATySgwXssSE5tImrJlga/nDl3/lN2dMQHGkfx4uU5X287kvjiRLkXs8w1ZDpGKbYqiJh+oGRVZg+TrDjX7UZ38MV8VU8pPZ5cIkPG8kpLTwXm0THEs1rRtwuw125rsbd8g0Oyd3KNzKQLVfV+s6TM79AlUcxcWAWiouTtzf1H7+2C0J8O6QHP6ajyuZFE3YATeKyvmsCfHC3gP7Etmuuusrw5r260kR/76MrMM4Zpnd1bzHgO3o+0QRCrBAVTsUaWQAeff31fLn4JsKb7x/e+lizHgybXZHSYF6VobvfoXsbI5d0NywEZfE1kUaHPoEJdx2eA09u60DMc9GAp9xzy6BepdZNAD0eovvS90GLDMN3fxQtAkfuoIURxWlcxW7sShjgZ/Sii+pvMT6hYTewwwQa6PG4mfEC9/er45YDC57GDQf3NoOXCbfecNDDJRcJ0pw928PKF2vhtchJGMVVLS3tyv20+PlZMBb+8zOvKQZ/Qom48YqEhjTwkgQPi1ySoMOdDeaH1gvH8GYfGBpB95xlN7aze6/e9rg+oSOPEL5Ji5LoyqTE94yAQP3Q8V2o0HHIOAzGJKDY9vbFiJHtxGLfo/AKor/dmvg4tyaG33IbdJXZe2mgIZDe1oWBTr9/bdr6v+rvL/y/3eX/gVfgHODl3+aZP9wnX7ac2jMJvjWiahn7BPoMicEo1lJihK6BdOYBa6EwfJdKElzuZP+VYwFBN3h87h4MyAjYET+7/YQwfJYA7Kbx/Zu/Gya4HnDJ8aSOl6LLbLfpCGKmymsrw02AJ51JZIzqdAqibYGGATdW0Q8ZSl6PTh98dfrwoX2dd44b1baIF6FOEVknsaIt+7Xr87iJYaVIwFzg/mmeoYXhOi/etZxtUefaAqupnnUwQ4VQ8Fh9uyVJm06UeOibR0otRFLnpGZKkfp3GTGhOyKXGpMjjPBxpCIj2L0g25L9aI+vjsod7XsnWWu91XTm7ba3mCm77Z2eEl8BOwmkR/x9HiWNnN6H3O7ovnjbajl/yfLabIaYYdKExTqEBdWQn0zbus+ziQ7WtMOQAhec4mHclQ2KT9F2GbcUeS39aiJ7I6trWE0Nx3QvdrRlCC01sJvNcCdBzDYYhrtlXgxqnHIt2h9aqgXb3TxNFjbeFqzD+lATfUc3OJ+8yjmydCImNIbW7kyUlE7tJqGb4G5hYtRa3d8lHGQseWinzPpNx/xbpjeLzezvmy66fzH4O6cB3HXvmDeZLPJQ9uTJ2nsHHOrWJEfc8zzeuV3+eYrDoQeJfPX4Jank7GeKxWBNvdSxrv7h82qS9SPl8KvUrwWPM5scvV6GVubjM2eKuzwLcVz2ehZioZ6ehZhduzaCWaoQNeVThbi4yjJjhyHEj7YcNqOls6CvJZuk7Jkk5ek6XrxjzxIipzphStJImNL3OlhrzhRlIrqjpCkfJz9Kq+5jiqst+VGcWapja/cL0g3lT4a5dAyJtT0gwpA1JPVh5z49pOHycFjkoKMcEPaG+T0uVI9xBXuvcotlD1Ed7XvOd3+H+BB1UV0TNlXFO5qzvnd3hS+qq377eGJiXCQlXghMr0xQSFEQiJ+5l2UN7DpPYNRsIQ9pPUtHEcTD0oYYd3Q65348biB/Mwa2dhpm311/oGseq9p0RoGt1Q1W/2Lgt44Cat3Ebbut3DHsd3T1tGMFyaj0XkH6iicuIal8V0vo2BuetQG1jenZBtOu+537+Z91w9N/afP2rmkewvwMg+od876eNy9xjtz7lf454nuV7vrkVJDDbUPOhcrP5upir1nUdw7vMqNL79uGxGQxbZNm6Ba3PT99CARehSuPpe8lVCNP3Cv0iMMkeldhQom29FZG1/0l1Ira0DbhjZkYTopGe5i0oUPXTNpqhns+1aHxrVE8fSjvyzZMfVQYs1Ol0fZz9I6jQ5kQc1NdJfmu1BdU5Oy7NBMKET1lEQWN9VDsKs5i0YKWmnx/RtnAuSCOz76d/U/g9/3tsUn33p2RGsbGzjIJ6MwNERBSwP9OHPJRmYoOo546sVNc9vJ43U8bGtxA0lD1PiN6cFNN/U8QDyIDI4vUsVTAKHTQAYatu1zSCGSLm8OpAeEEGk6wxSOxODb1mp/UpNELzEqyWhXxyrgbYDCKKEo40TIeBytXknoQMX4VZ0S5BcpDdLxkB6TmkbeZ7KjSZ0BzeLRcwt78powXeRaVfHcPxgNnXQ+jG1VexvOtuZtPp6hnxGdnwRPoHzr6A+hkUcqBZ0kbgdBciEHMpniwCq/QILNYhGWzIf7ohDOoxuikM9mNHOaW7O0iQaxL6Bf5KRYeSEklHadLrWyyQrqJr9FgFZaVXKTB61kq+I7c5fJBK7kfhKA0fx0m6MO+RCSK+FRmCfR0+6AZqB67C+MbRzBgD6b/7vdD6bhFUbIxw1x9t7DekRw6VztHuD9snavadKcI5lNdOG6E3j1kFWrgA/m/qvcZrMX9CRkGygNGUrNjCcNAowd9XOZZwyKpyWUotSz5Bq2Zjs5jttxrssTpIUdtgwxrKOTVT0CsNJC/Ud9x1OdPj/ERqTGpLinUX1IdKJzgthDcxKGeZqAkBRHVWkdK6Z8xvN4h79+i0OHKHHJXmHfdVN1x4ure08yPTHU6ZVwCMu5vssQnlSWs1XILqxTndu/yNG4tq+RSdZ4pw+neXLieAUSSU6t5gpvFQoVH2mVVkvbZbLQo0uNskrcb6wZviBdv6nj8fOcfNxwjtoqFOC4pH+xmgiqFnXV3kS4RVGvlh2iBxmb9Pu8+h25xaBSzfhGHqdiqoEN8M9KJTLlM0soYNOCCYzOEjDTSiPbyf2wblSaQ1Gz4P+DtdDU44bKKxZlD7kg5GXHmcaCS4LG3aLAIMw5yP8MamOyGMjjC09nLix8wotSsjkpja2bYAgfMNJg7yzaMp4KIALmg2yFaLx0dEo706XskiHp6NFTUcdNCtwk6nKCSL9Eb/vdmFrJmdhgPsxrRZFDgng3QXLjZXurkPWN653WIHVGPW6rRuxMjXUPTN4XRP9m3I/TLrTNETEsqldyTt4PmTpDxDpkXajsIAeNzuSt9kDmphtjLzMNxuTPXvZR8SNhGgi9vNsgqLOChzdSvY2MxDOB7NrrC+yzIhlXJ4X113c9AoLt1o7bZvz00Wa9Py0OEptXqjLGQ8SUsKZzoljhYnQbynmR9Wcuwx9hIDSpx7oQMTJ70m/IByFh1zLw6MsgYOqSRX4fk5alb6tvfDKGfWHnpzST6rG13eju0GO1HeuA5qj6ZbPos+zesz/WeUjfLqHt38NFt0yv80+9yvrtVA/c380bUsXSrkOigV06PcRixSrKTPg68+ylCZU4Zdm5WkwPX/4xoAbOtGn6vjN+Ung4mCslmcjxFUPMd5ECpkZQJJi8qChM3kCwIRu/MUtiKPTsqVJsK5mzNwngEuxJME3L5PI3k2zX6xcPegWGerXsRqvRweuReDCRHqvQZ0WBbGq0htNcnW1aLpI1zy0GhuyetVRpHAKhXw59h0njdWa9M3uJwSEuAfIwPY4hUFfBbob0NMz7dDmtc58MpkVD5jCjRdB8fyPz65IbqQxPYeAfrYzfBjjxLfdIgGYH4ve97pFtCyyVMTRx1lDGSLbXggby7/XUEtL/YkyHAMJp73++xv/dZL3KT0lwlNMtRsNvCwzoDtsQF8S+elsxKIzRyccDl0b96o3l6kg24e48nnr3XjO5NHaUwgOYJDb6ulJlLyYqGI/NuA5HYLt11fQmX0G4XnpYxlsIeqQRKXJaDKVozN5rvVpNdMvnjOlmtRxo87c979mSOqhZhX/meWTSyT3h1Ce/waXLcOxlhuRjJvUIPqBbbu5DZpzK9qxjgrIz97vTRg9ePvjp7+ODs0b///VCrfNum8b3eNKTTLdbDP93oO6a4W6gRKuoR+Iz2js5bFQM3k84UVz7Lvi+dF0ZulMVKUXjkuyX71JlTSABCFsD84ARn1QhGZ6Q0gTHxykJvjGxhmEG2mXpkv3Wff095eY6tRmhM+OygHMuJKQcDVrwCmcCkXqYd4Tn4uEK/b6b96tyiX3Kc+S4rKiN7mNpaGtvOb9prbxsozYqjzpqL8DCdVq/E29Nua2yacl6XyI83aw6kJTMu0+2QEoE6mJCw9qcno7257gbSSo+cc33oA5ruUACY2R1IB5Le8nZIoM6VeRgRcP3PiAx63MgaSBG9Urf1oYnvJINeO1Vkq124OuZqy7bIVzABGzS1a3AUmfF2fJ1rmAON6YSCrv0Z0Eu126bDLrdo7G+BFKj1DlKok6IpC6mRdq/WuHtp1/gZymOsrHP9eM2gnHrl4KR6/Qy66/yaXODQGjiwQczdhgKrqJNbjAOYYcaOIXqkftyGhdX4UK1z//o05mygM0dd89MvTq9o2Cs74UDW3jv3oJ4pM42JJ/OjdwEq23IXjbXlPFH0NGoQR60CmlZsJ8OKYdWe2ND09xoOnv6O302CqxPcLNCII6rdFHgS6GsnjsYo8R3GV3SYD38wiZQM1Jt3b6F4EHypspJRpljrKrP6RLBfi/L5ro4Rr8Ih04sWq70Frg/bfVUrwF2KXxZXeNp8nOpXK31hIABxhWoWmgDl/j9W/447vMS1qhc0rFR0kUnDRYxJHWB8yQLCY47fH+71PGzqhfjl4APPHoogEHeyxKDa6HOjXA/TVHkeYpT2ZJFsyWtCPdxnJ5fPIZu9hU6/DLzsuJg6HrslbsEhuwrVENHgtEh3mAwrsPYY/GDCSwxbj82F/rw21nB4GtRpuex+uMHuVCwcCxyyLeaGaTMCaNPOyy7oMHS7ilyg7BbFJu0Ye8VvOVYh1pNN3N/sa8EycoLerdn3E3KE12ukg5olWCM85bfDDpYtCL0PmO0jC6BpNMymTgiPkUVL5Ixt/HbK7ve+1uWP3pavmrHH/TttH97Gg969a1LaUI+6ghkq5SuOe687NS186zs8WDJTtdL+eoBWcuDhm+Rc9XAD6jzeR8EizGdQKHIyM+CHwsuIMs6rOZjNsAKsiuUpR6pRC3o2K2FnCsuzKJ4nYTab+ZCSfLINpGqcaLeUC0LYgK0RPP8lREkUI3uK6y4GsnIa2i+YcGsHyyXWrH56ZuRVQfpmyx2ohRCEA91eKs7lJnkXp2l+Dev3pE96dHXewyoDnvVYIJyW1WkOLWZJ9I2L2RaT9p8N9WE2xlh2cxxM4KUYzm5ebkEAHOZFJgKQTkbbU/IhpiIN2iRJmXlVojMc2pKjoeAOBF+Gryrs4uGLCmt/+rU0IJtv28qhGFoy4LYJpVjhqnBz6KrCNeFhNKoeVfdpCv+KtW7jfpJK7NxuA8R7nKvw17jor4HS/khnH8H1Og/WGEgawRQqY85x1t8ao6HWJZyPRZHMsaomz8+IMm/tzlA9RHcfCcsY1ANtFEwqGs5txSUyZ/v/DaEMopK6lx+BTCTzsScgyiATgYKjwqJwiMUF5mrsuKruzcnNaStNmIbEtYfMZER2WwQkNKfADL3Yoet9RhTGaaODx/y3k65GtUAxIBz1kEzYfciPEe0gQBSHDmRQWPWok26LWkDV2uSlKkjA+3GlmmLsOp+eWtD7HNt5LF8Gb1jV/qS8fb3gX2MG3SHOMFWMbmAHUgbW5VxmIQVXPWrv8jGV19hCP4mbi35GZIEI1dtUDjLrFB+1UwchZJYPks0Wzy+x2l4awu7fAhFhW70pCK3GXis63SJFc1Ujv/IrqNK0TXtCryhbdEt6CNWAPbHPYt7TS4kcjKYqnDP4GdqXV+3mQd2O+SosOgM/yW4AmWylLMlssWUEyWLb8CVGYx+m3+TyBsF+n19Pg+e/wD5dsf/Hy4sfAjQpi93JzYX0N/icvnp1+uzZ6xcvzl69Oru4+PtsNq0NRF+Qgfnhg9MH/4EG5q/+4+zBw79/0Zbk5a4MtDjxdNiJU9C4QI85NPT8NI4Z3oz0y8uwIquHfuAnVTuE/HZXNRJDItyTfXnkHj34XY8Mwpu4WKkg9DgEbDzVGYQbBP1jXOBUAiehmryKZzOshAlQMmAnsxkC8oWmN2yHRvS663XMt7dheAkqn5AYcXia9tB91dviDdVZeY1lpDKcAu6SVFanXdmbAaQtrMoQUqSR3EeDOkMqFpJU3ZjuhykS/9ge2tJRi0YQhsr9eakyrZLPNX/XhY9P1V2PRd9I3dozokdKBNP/PJI8wQemRdhlyT8xd07kJEhouqE3J7+Xg4iXEm4x6YHlUWImPuhmD/S5mwDtuvN9px7N0ZcikPSYfdNwfzwB2NNuwu7KutzXMH/Xs68s+R8h44XRr74Ti5vchhe0fyp/ev7k2avn+2zgjdHXWeQfq2/DOC7jtYfjHpoOiRHqP0RLIXn45st8pI8KWLZjkxnROryxCP01sq1cor4aadJ1uHg8tSF1MvgzGVQkh7ZOSK4hqcTktL2U97kcZb8jGGyOqVD5Im3uPvxHb0FyK0u8MQQi703NgEjBuCmreKNCpqiQMNmN0T9EQ5LRg7amTiwRMFnWa3i1ZwcdcqjTKDz5CMYqnT1WvgniX+hmIIMq4wIUuRO/YAJ4mIyhLkJeDPTWCpfrEQX2nTUMYQbYYB8GYJ9CwJ+7Wv66H0ckvZFzun559n6iwnY+vTrXHgme+9zLO1PrmVlXzEaGKBfQwy0MpZ1W6uMk1aOGfRpDS0JxZzoRQOdclXGl7P0kKhvHnmy6nwTJKstxRK1puxDWLnd7TRA+Pu938qpbsWcuQseVTYLexux0Ymi1zFqsUaJLrxQ7KlIE05LT1mxcujW0ZTcwqYDZ17DDR/4wuzBH7LH5q4WDwGCxK64eNHTANeZpJKjAY/lW6wrd5wWc3fSwfdKnuQLYRhpPIUizo0ewmAbJukyFNW0vVf7UT/qwJ8jvM9Zj2u5u5LsZ+dCBxlGFDb4z3yZu5TAAJIdDWWP4JEQf8KciM8PzbVFoQF19uq426eDUnBwGrp46ANYxY2SvNjdlslsP2Y4HZt4UG/cdpt2EHnC6285pK3TSxpY8qVhieGLUxugDlK7hh9fO+MOTu52AIu533nTEDODgHs6oJGfxEpRlmSIOqiu2mAmFwCT/bu4DyeBd0VfM+OFs44Edy3Oq8TM1zN6A0DjIVNgwiFR0tDGbSbuOagGzLG7Migi0Eva0+PlZMH5KQTACgf6MhJATjrd3YVBHr5CdgkJ5/0sepdPwlFBFgtvA/mVoAmxYBlbmp2IJMG6QMQUSl1MPAjqPDeN3t9HQACNHy67lzKgmnXDMTWJjVz1Ug4mY9FqF8zSfm0uxXxd8+drpFBxBOAnZWVlypE19TqFuyYiW1ZCgMBC+N/I6VMyJJsUxSGmn0IGUDwuQ/qxmNRVb84yxOTlkTq25ao11nuPxHMv2oBZa4Ci+u0/yei820VG/zM6Oi7VM5chnnrDjqapJn9ZWCyOIteN9JoVJucURN6JqaM4wvwH11/GyLELMK/1X9DJ+XhSgYOGVqPH3OQAE5Rdo9aTBPlQXeCjpcgBBFj4/OmmC2MeuaZUh6sq4TtFXjS715edqzEaKP+5j5qqR82D+zdegr+aRHrCTaRTT79GuWp7+fmRX1BZ2ZRk/q3mxMcl68I246F6GPNLkC6WuwjQhfo8P+elYv2+7i6fDq/tqS+KBD1bVpjss2eh77XY+eZ1qu/ufTLEeE1y7BBTnVS0l9bB5JwCfvtGV8fjBspkZr2RjbYVADTEAfdJQP3dry7aNhfpszG7yV2T5aV5MMHLwJT5onI0ZGyvnhFVpYP1b06A8sOa2kuaFuxfBI0or6G1H8HV85+LrXnlnW00f3EWhIx4sypG73zaCZZ21v43oXBRDJvDw+4wd8GasOiOdJqFLPWPBi0oZJdoNHzjZnF9RpU9a5LusatUaebesQM1R+dwCqlA6Nlid50eFvobtbR1C7es8iDHYMl7/mM3CNMWY07BmZrP8OqNTi+B5aFzewEohbJDL6uaUKqcxparC+MQ65JmNCbLpKtbgHZOpbPjU2vQEr1+8oVtGb988eEsCIG/JVIZCWdL41NzJqPC7h24NMj2juSWrvOozDstRkcNh39cnLTcOgZCRR8XmVu4VCzojhcGxgrODgL6ptjfGNNkuWUZgcbw8R33DuKsh9JCGv8KNcLPFGOYkPuG+Qab1dYzkZQE71edUVXCVhIwXd9GKc31bwcGNu2B7zQeWDVHpOrYNutxO2XmPkp8G5+c4vo68wcNq3BJpbjAIyNlERFmaYrsj9FByb4vg1TFm6PT2rb/md2FZnb7KI0q93Q7CLta4iUZ7wv8CUEsDBBQAAAAIAI611kJcGomyCgMAAIgJAAAXAAAAZ2l0aHViMy9yZXBvcy9jb21taXQucHm9Vt9r2zAQfvdfcc0enEDQsq4wMHWh23sfSvcUSqrY51qrY3mW3FBK//edJP+QXbcUNmYCcU53333f6XTKYrEI7oXOm/1XVmMlFUvk4SB0EM88QXCTCwUHmTYFQiJLzUWpQOcI1xT7w0ZCUnClgBeyxCBYEH6Q1fIAXRb6BnGoZK3BBYyXCRwL1Xl85wrnvBqFde/0k34EQeDyDkSWQ/AqCoAeInNDXCPrGd15nM+H94s7kPtfmGgGVi1VpUaFpSZN4IoDXFm8R4FHTGH/RCs+qBJa1k93LQB9UpFlWBMGWBW8Vd4mslg16qYuCc16mJKaQqVcc1DkI2TJAut4c5QdDSq+5mWCChJewp62JMfkgTAK8YCgZBS5EPMkXyCOITn1DSfWYC2XZWqI4u9GPPLCMNWTcKZy7iDM23ThpF/oKm2/U8xgtxOl0LvdUmGRrVvua1KlFKmKr6hP2v0xj2oqrJfDdhjHIluxHmUSv+ojP0X9JpiOgPNRszBjo7095hJ4o3NZU51MmR0eGwhQOuY8IO5W71EvQ2cMh4wi870HDa9hTPKlZ3Kq2O4vRDhm+j0VnctUSG+f0dKvzcjx8QZFvfUjorrz5k0D1p27Wfaz1N/k/SZpgmmngmd8RXhMwDb8KDtZwpEsM07K5rCnksgMeJoKc1JpRPIU6Xi+02C9awybtxFpFuIHEQfXKaLUvPAwk5yX9zQzWrBMFKgmWNqG+DhU5lEhNNcqXM21vCfMRWxb79v2FHUOXiVnRcxG9w5z0R3t2Ui7GHp73Bbb6qdKcA1HmtHmdhOZcGNdm/k9W20XNe4OawvXsL1ts7jpZy6Qdvp5BXPzHsLz4cLoboXt8+bl9iJkmawPvG1Y6rxt9M0HNnfKFJTG7rXDNTtrPLpB7FKqiii7njeM3RuvxHpUy9GTIzVereLn8DJJsNJhBCGvqkIk3OzD58cyZe4wM5MvfFlNJZq0zPxZMLdKd1x3eykL5OXSrK7hdLNZw9nmbAV0+SNc2f8OndKK6yR/X6p1+Z9abcJ/KPYPUEsDBBQAAAAIAG2jI0P5qRtwjAYAAO0VAAAZAAAAZ2l0aHViMy9yZXBvcy9jb250ZW50cy5wee1YbY8TNxD+nl9hrh82kcLe9aCoWhHUK6CCRCmCo1KFUOLsOlnD7nqxvXdNEf+9M37Z2E6uvVaqVFXdL0m842fGM48fj3NycjLZcl0P63u5ZL1QeSk6zTqtJoujz2RyWXNFWlENDSNoTHmniK4ZeexmErH+wEpNeibxJe+2RAvy+unFkx+fKkK7iggwl2TDG6YmuqaalLQja0ZoWTKlWEWuODWQP3D9bFiTi1fP88nkBGKdbKRoyQclOsLbXkhNqqHtlR1eU8Ue3Pcv1g/uV6wUFZvjV9bhV2vnFwyf3vixaFuu49ewRtYob2FDeSxkAoI+JNVCjpaSfRq4ZGpJB11PJpOyoUqN2ZnugWbFhMAD67qEtRbGrliNaXzovz1auZTm5LkmtWgqm3DebYRsqeaiM0BQjZJJk3Da7YirJJgRSkxxOYS5M/ExpYM02/wixOW1COYpTQFR+fKUNSs/wrSGf2REiaKwc4zrr8liQcrzcOCOGTAjF1B0YA0m5oo2CK6T6bmqqYXAb+mLO+ML8+YNA640EAGpte6L09OKXbFGAOFyWxZgcXt6de/UrPrUU/rUp9t8VmxDlkvgp14up4o1m7lf+ZwooCFkdfFSdL5K+KgBXEx9WdCs2czyESSdPhsnfgU56z6qPRBMzJe052ThneZbpqfZIJssmFaQJ7zE+lKom9gcQzFDKczSjAJSCPX29QvEwILbzUhgF+3zFcPWum2WEE2K7MePYAMZDThuK1xavP/3bmNHYH3MjxtO3MAoVDtcyUjWDcHdDPoCVVpbeYodjcPLG1weGETOiarF0FTAu2u6U7gdMqs3WRjga6YHCXpo5AZXPqCcQZ6DWPM4rtE0CcePZ3OSxZGMPHOCZ7WtMtJqJa8KY/reWN31Vj5jLoGowklE3iIJyP04iAdIym6EJhRLst5ppvYitiHXjGigNPDCBhyiwWBZU0lLDYeEYtoQayeGOc5q+bbWZsVDh+9BmdivJetxk5Drmpd1CHXNm4b0EtQBJQdCckeTPS4YZr2UjIIW5uSnjvQ7XYvuHCyBSNyIbIimaOvWo7SEuVCAQWNx7bx7GKSnSUnBM3q06yMtA5Mqjk3XlhbRYhHjmqsa0wDkmROWb/N5OHG18mVxxXafoB56c/fbbLZa5aF9npMrJlGQwFO3ZVVRkLP8m/w8rroDg6pne0rDtkpIuhh5b/gWEmYvlEdAx+N4Gk6xwGw6iwhuiNNBtuekp7qeW0/8t6gaL7EasQokPEaElMQ45hgcYL2iuvYidRwL40ixcOwQ6w3EmcSVCBEapNoDYwB1FiM9u3BMS4IxZ2UCUNPDUC53vQnFW5JphqlFQ7Vr8YwwX73uBZONG43TEz84dsQRlfDWbjfRNTuURyQzpgFBrC5blzm5dNvrGls/TBMOh3C94NgAaZHEY72kEZnRUJXsyQ5nv3Qne3CESyPQJPPNFXn3+ezL+0dZblup6VjsCIt9GnsE07seAsZsX1izEKJjt4Jw3U4w/bu4n/SI0JsyzRxiCw0H3TLsYLCPBS0xrQtsHJgiZNrHQAv0xEy3SmePgPFt0YMetcg8j1uQqQuimnkf/p3VcFVKvmammJK1Apq8FK6CRmYfHiAKo9m0AURQmU6E7SyyY8tBtSMJxgcXBGXjJYo2CqTMVDTTcBBCwYM3J7+AmraD0kT1rOSbXYS1hiwDL41MoMKwlvImPxq4zeNB1MKsprJp9J4hnQ2M8c5IfORxXH8YsjkQe4oXn7mR/zDgNMgILg3YEkkVwV3ClOphcOPJ7dij1SSkw/jdXK0WBAkTHgKeCJH7imrUoc+Ze5sVeyIaQSpGTs+jif7JxnyAKXCGAyJb4qAdnY7vZzcA2LrcMNu+nH05PJaWhqRs2cEyp7iMWWTjkmBN8YeVhWWw50z3PjcpWJgrqIUBWpyfncVokD630AxJgXjFwWqcS1ucKf565ye9dxeNVC/Q6A8lYugxI4cS4brHW2vFW4PzT2iFjfAYmm8pEjSr2dga+Zhcmxlttf8lZ//8+yWHjw2KSUkn8B7n/3zYX6rNHWIW7xxJuWLkZ9oM7KmUQk6xe5y+xP8woOUFxs0ONpq/xtgl459O0e0kmx1C3FIcTfRHW+H9hWr8J8qva5Y277dXWH8fK/Zb+j+puv2g/57k2vR4zTXl+XMhtp78XzpeiC3UgRInof919Z6gTh/LYuWYDitxF/vg/jILR8yOzA7bSbtv3Q9D2d8BUEsDBBQAAAAIAI611kIWe9MwgwQAAOANAAAVAAAAZ2l0aHViMy9yZXBvcy9ob29rLnB5rVdLb+M2EL7rV0zSg23AldPdnIRq0UV32/RSFKiLHoJAS0tjixtZVEjKgRHkv3dI6kE62tQpqkMiDYffvD/Sl5eX0Y7rst28jyU2QsWlEPdR+uKJonXJFexF0VYIuag147UCUVdH0CXCDW0DsfmKuYatkPAr1zftZqbcwsc/fouj6JKMRVsp9vBViRr4vhFSQ9HuG+XEvScF5kIyLaTqlSQ+tFyiyliry1CZXMJqUHR2fxYSoyjKK6acB/NRvkgioIecWZPfidVJvlg3fzR/P3zp4ojBhlyyuqhQ2Sh5TbHtmebkvkTdyhoLi7Y5dpaBbUSrwWRRgUJNGQIGNrWcAjpSGoz++lFYHUJUmtU54eeshg2ltsT8Hguo+D2CEkniNpin/AHSFMp3vuDCCqzkY10A+WsydWAV1hr0yfaYFw6BXk7EF73Yyv9EBFaRdSi1bpLVqsADVqJBGbu0x7nYrw7vVzawlY121afV/i9wC1nGa66zbK6w2i5tvEvKiVKUvvR3UfelMI9qCXx+06lU20U87A72LcYdpBVnrOGQWuh4h3o+a2U1W8JsNup9l0DBNGq+x75ByWvqJcoQr3fwWGJNxTWVNgV5ZAqoJTS0jdlWxKHBTpoxTWZNDMMy3/puDGozL8hpFBeI0rIxPs6nQc6Px/SpUbAvQ0i5xIloOum/+DFqnfhhBqhmxo/tYO3Egl32C2QEYXU+H8hzRXXgeQla8t0O5bfg0On6gE4UQv5dIgFIICKqhXbVtRNuKIxJM1+UE5ZrfkAzoW52Q1Pdqm/KiUJTn3hu6IDJY8+KfRHoc8t3rXR0YUixJ8rTKljFwJIThZb+qvlDSxxUvJJuM+AeDC8IwptH0yjdPHpt6ZgMZpb+4Pbp6vnuwyx2TDcfqhgA4cMw1sJk+iXa4E7qNAZucQA1ngtwMQngZsOnFp9MbCef8oft7p5FrO5P4bHSg9N5ghpPs0TM9skujGQRj+SaOK9VAhshKn/TZFyZ0UJWu/RmnkVLaYslvLu6XsL11fU5rmaq3ahc8sZ02mt+I7QKJZ3K/gY6JlxIL06pMwMjzh3oY9PyqshIMp/5NoiTN0yhWUjHKN+QGtp4dlKw4LprDDdH6dPzEhxPpLd3S2BFkXmfcu99BWTdUUS6li2GKf1MNqYboWGS7aEgWuisJzAXNgnMhHCPx+/peKZBbhinCw7NMl0TDHOrjiO4CnywF7IT9IrTAeV8DtEdiXYsqUrRVoXzkm4WHbViEcCTzUn0MUehhQ6beoYgSYmo1PYPum1i66P3yiXzktU7or5peyjIK6Yl7g+CjNu7YG8+iIwy+3b7pvm6qofG/WRaWBu/VXzLrBBrMRqWp57hk65J6M7SnS5Jh/rs3yy6dATxGajb/vi7I1D3Gvn7vCpO7B1X7f7xM8AYqzEBQWUQB/RRBvURxF73e4YwH91sN0zn5ch6S4uZ2h8Ec/O6sCN/tQjcMfsnrlTDiWDWF8F6xy5miKNTyvmFrrn4KptoVHqCU9ckHnvq/+BLY0j9d6Ik7tYvaPIfUEsDBBQAAAAIAI611kJK2warjgAAAMcAAAAZAAAAZ2l0aHViMy9yZXBvcy9fX2luaXRfXy5weU2OwQrDMAxD7/4Kkw9IDr0V+hPbbmOEtPWaQFKH2C3s71c6xqabBHqSMQaWpHEbO9uossDwL4BbTIKF5y0TTrxqSKugxsPkIEKCjXLQtC6ojCchKbdEYgGuRBiycI9RtfbOzbRT5krNfjbtxMXtnTt7DsxxBp6NC55fMJXKTfHypb4AvA85e48D3n/xA95QSwMEFAAAAAgAjrXWQuNmkdLkAwAAOAoAABkAAABnaXRodWIzL3JlcG9zL2Rvd25sb2FkLnB5hVZdb9s2FH33r7hIHywDiuA02YswFx0SbA0wZMOaPg2DSkmUxZUiVZKqkRX977uXkmh9GK3gB5k8POd+U5XRDRyFq7v8Nml0yaUF0bTaOPhNuHddfq8N31RTVMkLbZjTJiAN/9wJw23GOlf34EJLyQsntAqoeyYlyyXfbDaFZNbCgz4pqVkZnZV26Qbwubq6eq45pB6XfhyB8PP49uYj6PxfFEjgkfRbVOfKWaj1aTAccKG0nk6oSpuGkTXAct05qITkFrqWuHgJToNDvXJgt3jW2w66Akb02gp0+CXZeL4kgRMzSqhjmvYr9Pyh4PX+5vZ6f3t9cxMjobDwy5+PCEW+rm11L5SjDtlbMIcL+ctgbgLPeCCQNZxh5FzNHNBPvYATDY9H3wrdyfLM04u1DKOMFpMrJMxcoBsJ4IRJ9AHoDMIMKO1EwRP4oJyQ8IiBUSUQQDio0fCccxVYznYP7p2ElBiehgm1VI+BSZI61kTlgTkPTJ3yETFIlYwZ7yNZ8gqyTCjhsiyyXFZxSEuMabEW03J40mosFXqQi5voYQKT1S4JLKvzu/NJRCYZawUcgkxy5C7adkZuY9huz9hXKXz46/fRxRFN6RkyOGetXSMzZFkxjxsX6JX43HEQ5UoES/GiCEKX9KJE4v2M94lh5heUCyJFkCUVLa6tfOC2MKId++M7pOUEueSe7K0l3ov/fmSwJciSlBZX3r/DkdCMDWDPrSKKTjLjR0Eo9cDHV74MGxm2nnJrd2bbKxvutXI4n8C9tD9yrOihmYcuZaabQ9gmXUNzcOiaSXcY7jqjYBuGJ/z9df/tnzfbpJ+KUSiAgeztfJ6P/Hg3cMeX7Ni4D36jD2yoWIGTE0+jscJPDGrwhUV98+VaSxx2vRXZRMT35S7GoXoXw93+buKqZV84s8N4aJmrDxiJmU3vEbGwaBjyBAfb8kJUgrIcTqVYFKwB64zHpBBpX55MohHojtL9WeQMx+NLw82nEvUxCMpLFp0xlP0Sg1rQPeLHsN/yfRfoJtfBjA1FCoZc7BPH+4gq9loKfO/vQMDiPXEpz570AbYpUHCnYQnv3h/XOzqT8i4ezkNhM8mabcedjKpxNuZo3kt9whrsvbSHZ9PhhYXh5Kzxf3ZT9XnyiZsyve8zPTcJ0cIKZR1TBY9QmTlnIjIUO+BkhKNW8FdCHD4yFhT0UNgyH7YDkDlrAA1Top3t4BcR/z7Zrwwhl9l0y1WwNJ8MOY/QBoq6U5+oTigCCbpisqHHo59uXl/yoky8y5E/uVsGipIabLt4upDa8mh+cGjIWVSGNe8czjCInjR+dnzhhh0xk/8DUEsDBBQAAAAIAI611kKPFA3FwAEAAOcDAAAUAAAAZ2l0aHViMy9yZXBvcy90YWcucHmVUk1r3DAQvetXDJuDd2ErF3IzTSBQaAqlLcn2VIKjtce2iiwt0jghDfnvHcn21lnIIbrsembee/PxVquVaDV1w/5cejy4IEm14uL0CbHrdIDe1YNBqJwlpW0A6hBuGLVTLbj9H6wIGufhi6brYZ9xnuNXP79KIVasIxrvepjVmAtNAN0fnKcJ8iNxCCEqo0KYqdfL5KYQwI/5dixepMLifm7i0/Tn8n7qR0JqPJDzOParLbfYK9LOJiaemlNoSdsWVGqZOkXwqAJUHhVhDc5yJq1HM9ETzxORt4igTHAFdESHIs9rfEDjDujlOKSsXJ8/nOcJmZ8ZHegD84d5gvRbYwNlqa2mslwHNM029jCNGV8YmHE9DbaFWLKRR0SsPZaeFfBd9QiuSaNyTv6nYZy0MXuREi3SOovf2Sv8r5tv6YYRP+4dWrTo0x7+6sNeGQO8c1fpFHrkSd8Qm6rLwZul5iL8DmlS/h3SU/Wp9CL8WvqzrqIhlH+azR3dELlvr69A2To1N62Vr9prOlEcg0uxMZJt4fllIxanjoabTr24skcavIUsOXi0GURH/37++HJ3mcnRtCNqyRbobbLjycU/UEsDBBQAAAAIAI611kIYnSlMewMAAKUKAAAbAAAAZ2l0aHViMy9yZXBvcy9jb21wYXJpc29uLnB5vVZRb9Q4EH7Pr5iWh+xKS7YHPK1YpF4f7k5CCJXyhFBwkknja9YOsbMVQvx3Zpw4idMt3EmIvOxmPPN9843H45yfn0e30lZd9jxpsdEmyfWhEa00WkX7R54ouqmkgYMuuhoh18oKqQzYCuFqjAad/Yu5hVK3MGCqW7D3mt8O0ho4SsEx0V/S/t1lcPn2nySKzimhqGz1AXxaRIO1AXlodGuhd77SLYZeY/IE7X2vyXblLFEU5bUwZpbfakJa7yKgh6hvSMLOee4+zaS8nP6/+jQIS8AVAVUuGtPVwqKrgEOSilQfhJUU26LtWoUFZF+G5E+WY0AlnQqEA3GKpNXtFyoLG256Z58UldwKlRNtLhRktBEV5ndEVMs7BKN3uz6Mn/wP2O8hfzY3nDmDs1yqAljL504eRY3Kgl2EJ37THIx/O+VwFjg4j3eIIGrKyL1V1ja77bbAI9a6wTbpt5BDtsfnWyd7O8Rvn/SC8SlV6umclfuEfwssIU2lkjZNVwbrcjPUyO8qP6YjntW0iRtgz3UyBvqQKYLWk1Q0EvYeL7lFu4q7to43EMeT65MdvL9+TRWjhsZ7dwpmuyR8y4bQlT3UKWEt4b09xH+L1E2K96WW6o6pLPfeRJOE6A37s+spimDxpA5D+8UyClmW1Fj2HlE5w+z0LhjZ9RSZty/0CJtXjm0sj5sTYe2WojjopCC/EJL4czxNAXg5/R/PMZ+zFg0V1x1IyiATBkGXExY8nhT7psMJ3s8GzirIcOYVrzfwRisMUv0TK0lHkCogKhTFgoOOue3MUnVvDSW/6Q4ZtpT7OGMdHo2eBaQzpzSRFqDe/jPYrE/4AW5vPwE8LvwMmRsGW5qqyJPwhw1htRV1Og6mkDBYDElfS2OZ8j82yLLVJ8IP4X6v/V3HmQfJjGl8PJVHIXnuF2jyVma+CUtZo7tiZSlx2RH94kKxM9Js+vBxHc1GI7f3MBpnE7G/lSCe3WycyteLb34nXsVJf4mtHhY7IMDP4+TVlHn7kCUs2753C6+IHkrh/4I6exSKu2gpmW6M6x7EzzZ/h/T4pqGK9nOf6zneAJvR58HDpwVbs/8aX+Y5NjbeQSyappa5u/u3R1X424354m/rpR6mTfgLioe7LAf+TOsahVrx6gaeXVxs4MXFizXQdxC66TEpdcPvx1Kdy+/U6gh/odjvUEsDBBQAAAAIAI611kLiJpm6NQIAAJwFAAAXAAAAZ2l0aHViMy9yZXBvcy9zdGF0dXMucHmVVE2L2zAQvetXDOnBCQT5sDezWSgU2oXSls3uqRSvY49jFdsyGjk5LPvfO5KcxEq3LdXFtvTmvTcf8mKxEHtlm3F3Iw0OmiTZwo4kNm8sIR4bRdDpamwRSt3bQvUEtkHY+ijQu59YWqi1gY/Kfhp3CTGu65SFwAvvv90LsWBVURvdwUmbObElUN2gjZ1iv3qyGDcSmjPsiT+EEGVbEE0OlvPQVSaAF6s9ssXM47LnyepteN49T6Yl+OS4CAYJe8sqPefRFVbpHpwJT+aSfeBCnTLmfKTwJ1tEKFrSGTTWDlmaVnjAVg9oZHAvuRLp4Sb1dU5DPZDSk0f/rLCGPFe9snm+JGzr9VS4KRe3aGTOZdDnYwat5CUmoM/gdxlUhUWrOjx155yi6vc+n9JgyFLX/pvmzbzIspD0UKzywsIm7ORkzeDoJ2m5R7tMLrhkFZk5dcH1Dm6jtkq3x/04NhqmeG/njz54yjZ+CH6X1uZKd9u4iamQSqOGebKhjjH7HLaBOfnsJIn4w9zB/Qc//P+ooqquaFUVszlTGLdjDSj3cg0JjWWJRAm/DthX3ET3Wheqxcq9oTGcfSxIni/W9Hux7NPDZ7AaDgqPfMsNRleg2OnRzgzFCrYwzJqPpr2SuRwk/zeVPCcs5xCzah4LgnFwsVWsP22GwfyiezwfqzrycwEmszv1Ns9fBnxOsxKzu+vymO7ujN+gHU0PyfTXge8vxFPwmr2EHy6+/rhLZKj1kjY+WPwCUEsDBBQAAAAIAG2jI0NYjldIbwEAAE0DAAAXAAAAZ2l0aHViMy9yZXBvcy9icmFuY2gucHltUrFugzAQ3f0Vp3QApMiq1A3RDMnQdskQdasqMMQObsGO7GOoovx7AQMGWg8Y3b17fvfuhNE1XCSWTf5Ea33mlQVZX7VBeJH42uQHbTgRc5ThV21poeta4og9tbFDHyGEFBWzFvaGqaIMPUsUE2jPZrN5LznEPSrOHAwSd+8y0PkXL5DCG0Kpq7MFbNFSCW1qhlKrQVfPZTg2RllguW4QGOSOrAWxPj8+0smzErX5gWTZRvelPr3L6Ciyv89cQJpKJTFNQ8srsR3e2ILl1rZyno9aja11xzZXbsL9BKpERCeGVW00VT3EcGQ1By36dh2OetKWhqoO8DzmLhzDoAsFC5bT4IhnCezCBjclSPx/57nxHABZ1vWUZav3h4kvFbjgTIMUc7T35S+NVxDOEs4zmv5n0dhckFZSfdsAGKKReYN8JbVPr5QONVu43SMyG267AWYY7myMbrMgSGarM6zqx+3x/rkLqNvIcJpNRH4BUEsDBBQAAAAIAG2jI0MiTP/4YgIAAHMFAAAWAAAAZ2l0aHViMy9yZXBvcy9zdGF0cy5weW1UTYvbMBC951cM6cE2pE5hb6FZWPbQFkopZHsKwVHs8UZd2TLSOCGE/PeOJCe20/hgPJ7Rm6/3VBpdQSEISVYIsmq0oZs9KZ33XdK+3T2llS5Q2WvMN0nf292rNndRrUVzC/rDxmQyKbAEoQhNzcDZEfEjdq9kMQF+DFJrajh7wz2RJcGHdQkuKlrc6kldJvfBAVUTy5o8zjo6RpskmfUAoigkSV1bPhwiRLQZ+LkRHPuLkT/XVSWp9+ZX74W7yZWwFl51TUbuWtJmRYJs3A+E+/LB0+n0bS8t6N1fzAkaow+yQAso7AlEniPDkAZZl9pUwtXTzQIL2J2A9uhhuFmSlmRuwTKOC+PRsBdefv9IQ6oVIuyJmsV8XuABlW7QpGElKTczPzzNDTbaznuwOXBasA3msmQzvdUcPtzOskzWkrIstqjKmS/EZqEbtrh8rmX5S9fYbdJX23Lq+H46LlyVSdojPsJKbiifFsMB84igYUrIvFXCcOuC+MWTNaiYGm6KfX7Ok4qW9nxs6Qk4ypW+I8VR8EczOF+Sx9nfNAkFdVvt0Lhxd4yAcDIsaLsN1nabjtOTP7yE/xN7TzTK9JPXceW6OkEh/YqFkWjvYF2EfQjrPdzOejOCfuk0Jw/IDSjVs+dBslH3brg3vor+guioLOoisJjpa7BCP6UPPFnPKRT5fojGYquwJrdFx1rFDafAmoXPz/dan7F2w/9ewrMhFgvVu3sF85E8/Luq9o4LirLr5Nb3t1DiCz660voRb4YKYNmYTgEDlnd3VvR1yNJVL9T1+ctl8xylQdnxgJTJ5B9QSwMEFAAAAAgAs5g+Q8EfbAg/FwAAhUgAACoAAABnaXRodWIzLnB5LTAuNy4xLmRpc3QtaW5mby9ERVNDUklQVElPTi5yc3StXG132kqS/u5f0Xu998TOAQG2k0y8mzkhNrHZ69hewDeTT0agBnQtJEYtmZB77v72faq6JbVA2CYzPjMTQN1V1dX18lR1a+aR50/8sZv4UVgTbizFQsZzP0mkJxZx9Oh7+JDM3AT/I8UkCoJo6YdTMY5Cz6dJiiftzWVyurfXckRPer5KYn+U6qfRRKgojccSUzwp5qlKRCwT1w+ZojuKHunRYhX701ki9sIo8ceyhoe+EgFIEQWbW+itiQJ+48D15zJ29o42BQCjkR+68QpT4nkmANbmpRDq3y6DMAvb86JxOpdhwqqlKY0oFhEexWLuJjL23UAVKl76yYzn2cI7e8eOGODH0J1LkoGlTZNZRDRWAnKKkRSpoj2KhAy9KFYYGBPdeZRIoZeZKIgDjo8YN8ETvTAVTZIlbR7xjtJEqIUckzFglg8ay5jMINQGoRTLsze47PZF/+bz4Gu71xH4fNu7+b173jkXn76JwWVHtO8Glzc9MRy2+3j86pVoX5/jv99E5x+3vU6/L/Bwr/vl9qqLOSDSa18Pup1+TXSvz67uzrvXFzXx6W4grm8G4qr7pTvAsMFNjWln0/aKeeLms/jS6Z1d4mv7U/eqO/jGHD93B9fE7TPYtcVtuzfont1dtXvi9q53e9OHnBB/77zbP7tqd790zh3wB0/R+b1zPRD9y/bVlb2cTx0I0/501dEEsZzzbq9zNqhhLdfZR6wAmoAcVzXRv+2cdelD5x8dSN3ufavRys9urvud/73DIDwU5+0v7QusYe/gmcVDyWd3vc4Xkg0L7t996g+6g7tBR1zc3JxrnfY7vd+7Z53+f4mrmz7r5a7fqYHHoM2sQQNKwWNazl2/y+rpXg86vd7d7aB7c30o9i5vvkIBELONueesyJtrXi50cdP7RlRJD6znmvh62cHvPVIdFjbotVkh/UGvezawx4Hj4KY3EMUyxXXn4qp70bk+69DTGyLztdvvHGJfun0aAJp7xPhrG1zveNm0H5BLf7TMsMa7JrqfRfv89y4JbgbvYaf7XWMVrLezS6N0mPK5VOPYX5CjnQrHEf7cncrT0z1h/c2SZKFOG43YXTpTuEk6csbRvKH86dx99ONUHZ009O/HzmLV8OSjDKJFg0mpxnR2XA+iaeQswmlONv9QzBPwRhcBZr6I5UyGCo6KWDxO8G+wEoYofJfijvyexG4UexTSfDxViTsKZEF1GbsLeCyicpSaMHXhJ5fpSLRvu+Lg8fjQ2RSlL6WARrFJ35wY4Q6REsxW4pdRLN0HBLhfxHjmhlhTxeRuCBmCgONc/mPd+tucYmm5pO7/FAt/gQjKBC0FbY4+lwuEOxmOfaleyLSOsP/PVKpE3QsxWonfZBhKRN2e9JMf1qgUcU/OF1iQBOt7Gtp1Q3EGpbtqHG0Shu3cZ6RPc5OxzOVBc4qJUSMbWZpe5llJpGRz1vhNec6i0KQQy+ye1s1tIF1kDuy2Npkh+3MXsQi+OLwXWTKr2H4S3x79vPCWw4yCaJR7jU2FzHCT1wCKsxf1f/pvc+C3KBVjbFqchgJap6Q7HNq2VY/ZGvxY0rKUk3xPhkNKotkAzuEZuSLRjyR8A7BBC0KpVvnYhxXIz90H/aDuyYUaDpFSEvJslU7hOASoVpDKiwqynIaBF1wB1SSpGyCF41PEmqbEjy0JpU7uyPNGNEri4EsCEjdFT7HOiq2pI1ogpwNssBVfEAj6JONw5sZeYo2aR+MHHvHFh5vLQHyOYOzWgDEAUoyQxoOuIcAnNxnPZABQUW0QGd9KY5hCjlEmRiMbWpqfMdTzMT2U3ijnyVQITjaycY3SbFpPPpO+OGTYUBjMWDlRPG3IsEG+o5LGpvxXwH6hkuuesznwC2Nn0kb/HDCRZ91X68M8/XnfuEJqB3TYpN757sL+KoJgdZRniAkt3LMNzcmWpaGwxbdpdK5MI95i9YRGfcTl784smQf7RL8u1yXc3Z27llN6VuTXaHbdkYV0pk5FhtmWdZ6JC6Wx+4Kxt+3pL2eUz6uY02ZYv7aLFZqwMpE4sE3nsDoRAEaIGwY51XlyS6r8LBEGJjFZTEQFhs4KhXUiJyQu4l8o+mDxcAM3nCBE5siBcxwXS5YGKP5R3TJzHy33Et2Jjoy+CnwoqEzQ5xgKYDSRcZzVojRcwQrASsi56wckpcWokPNj4APDUA1HvmYx/WZkQRUWUW3Hijp49F1N8NCutTyYwzhBkOcqzeKTr7Jhgjx/BiM2HjIVX69t6auZzi7jIEUZrAjlEb4Tnpu4WzyvWEXuf4p0ExndcPQoRMB+TKXXeAo15R8uoZAoXjXOGNUBo+ZPPqz/bU5uOu+c1qk4araO68339ePmNsOqNq225xVOvCITWkdcUJSLQXe97sD8zEkO0RZGAM0K1NpKIWKV/MsKb1bhzQaZaDwEMssZUhy3LDKOVXEP9u9/h7Gh7E0xMl5RrocEC5fq6+GQghswWwDIABa3KQJHz8A62FIag+qK6nVLuo9xNJXxLK3k1pNzakEMh1kyBGGXagIKFraybOIfpYLNygfljp5dwn7rpGWtY+Jr3+k8kjbZpbxIqvAVYud38pVqg/y3olSyomZmRW/qrfe7WRFWB311aXXOOIiUHA5r+Q+xRL0U0i9UMmW/wmb8aUjA7KBrtNJ8WxE2tYkOh0AbwEU6Bvg/2Jw0RuRYODRlFdui/p3RiH4ayiVZS2KbgGngUB3238afs9outqvLx+NGRFwb+yxB3Q3rJSH+Pryv3HAjNTJzIu8nfmBUki688g+eDKT1gyXhcOgTWBxnBUQU3yvyI0SYsdKTzYD53E/uuUT1k9U2Kh6YcLkD0yWL5r1YSvkQrDISMOgwsbXak4sIoRHBCb/ayhv9Ac94Yt16mTkbvUh8naPyijxVcKCsSOGZnPc5or66z7G/LeWdYh99dv4MKEnrbeSSiZJNuJBIxiyQvVyHlbZALKHaoYokdQLJgt0kjbkdOBxeRtGDIz2fVDhDxNBVuodhITc34dgIHYvIh5vbzy3F4telDAKH4ufpZhKtNNGPo/dvJkfvW+7Ju/dvTlpvTty37t/G3rvx0dH7t2PPc9+P3raarbcnVcsY5jBCexBEp1ItRLLPmpmu7odgn4Dm5m4IhB/XGNbVLAG3wSz8caI28mouB4dEdTo7XR9Kf6n4gEcOeMcHr+wQ9qoiPDSdt0X6O6k33+6e/uATbgDH4ewUuCMZlPNGO5B/wIzjSFygGPwhDj662S9T+mGLVE1Lqje7SzUcqihOcg8CymQjXzfZ8u45SrrxeHZPulNmbikWVA+Pye632LlxvSLQmPBa0JoiIilQVEmWKOfS1YcNKDhMh4VynSXJH9T4J++daeyjawcTxElqYujqqp7CuL/dr+d+6M9RrQM3TWn8AVsm5DM/OFOZXOEjWZMR+dXhcFiZanqyjvLJDf0fGr0QXqU63RUjSCAO+gsYikgXgjWGtFvTKV1/1IpYrHgBrr3cCRIQnzZQhwHKU+moPo+8NKCqiWqYlVDgmqycSrHOUAzR0oZDIO9YqtnBIE7loQY8rrUVKonpgMFsb5d1GDF+GVNHA6DZEmoZxQ+KNszgHI+8vlrNSJLGBqwYTjHCHY/lIjFxWAL0Eq94ypCPSONByf6M3a2T8qJKvl+oRCtWF42TaOwWPlEYoBVarFEjqByqXizgSJYUVKuQNudSKeoMkzXrYhCruNGzsR0r6giFU+DagwE+PCAmLPHrFrthyPjIhz6yjKgn4nbVv/nb22arco3apMqaMf6obaX8iDw7f77h3hVEHNE28Vvp5G9rtMxNb2llvNjgXZ1LGMmd6YrLyTHAknJdFMfayFjbCXC/FvaVKtcITycp+LRPuK+wPToAFBHX1AgCQB5cCORhkt2Lw2GG+CoU1kFuixexz6AAxl4rxf/fYoJc4HJB4BLh34t8NUeWHqVxCAuptIi+pF5YkBVHWmDCLiSDH+sWBzZDmXYinTe4cXb2OBx++FC1v//xgTuZoZhHiJ9jlyhz33Lpo+phgMprTEMfey1869iYWo7aOmi+jeU4LtWotreo9C/b+miV+gf6oHSaQqnQFNUx83mqjzpoiOFmw5isxtMnpqwE2uY6HafCp0gV3HiAHugg2BzLjujgk9dDZD06mA5KPQs9YgYtUlvoEXmY7BnjPdprZALpVThZ03njHGfZ+Hjn4kYnGZQrlIwyQysMDPtn4caxwbO0cDdEfP2YLGRS0ZgloY4KoZpHuwnVT6KFVUN6kg/0ae9HqwTI1Og5loCnod5+wN63J3ogWRFVpErsvzuqli0HVUf1o9Zusl1GCYra7+SYuuBdziTlKXLDvLTl3XfpkCPQJ+pKVpwxQJJCjtZWcFclRavZ/FUcUMP5UFfuWXt62x6bTJH3890wRD00lt495Sn3PgfvW6GITSG/oYD1mayNHVnHzS8C0P6cqZoYuG0Uw2YTJl+GnfXfvlBAsSLx8T/UHKiwVcPAydDHIc36SsGiffW1/a1v2n/iojPIjvXYgxHusOMrxFIBICIDH/BxK1GGNDlhpsjnpaDJMdEVVL+BnkrHM11N+RO6dTGzu9Zb/vbtgquIdXRng4te4U5dCslPC1tBlkPjEpmDZr6ic1Kp4ZDOfp42+mdK0212wyB4RKcB4qu+9YNQp8G1r4rmKxVsXlRpPv+qUfmWUTEGQODWEOCg1dxqUrQOGkTHaX5VjbdPJ28qSSeTn2IMLwLU/OA79E+lFG1jPUqSPqEh7AzveBQCBE+p10uaoyHUHIqzAE7HGFm5Tu6gSj0jY9sU22kjYCFjheSNUEZXdLDYIWDfdLkKwwah0Ac/GVYcQW3uOZd6nE4BClC4VXeUkLZt/1YO9T3yLtCDXKkMGBHOUHqBkamkpK6jXr9GPn/92l4U0QIIo/mOuI50MPat1EESShc+hyFm6Wx9skjCyVp/9dGnhno4Pc3KfuqknRInh/g8szpdXBVJlda4SEcomvB4xD0K8uaRRFaJGXl7joAyqg4ditqA/rGpMARDRHlGGHfh5zomwe51wTccvlJW/yeXJ8e5T7eW6Qzk/k/dbCC0qc8oYNfUA1Z/WaURF8a5J+hik2H2C+gXdE3pXhPUZ9ykX6E47n051E03zfRn9FR0ASpDTt3UiKnu1eUAURcHphGWY1TdAtCoWc+LliFPLIWJnMpTHLHngT8u8cyuDHJLMX+uNWLsXkcPcoUSRwuuamhrJnFsGcnMHLN7hyG1zOB3+r7eE0JCDnJ9FACFILR4c/yp+PALW2kuh24n5cmJmwZJ0Soo6LE+kZOh6pijQT32PRSpXBC4ZhNQm3kbazYXLWoYNZXYB39cRZ920vU8U+JRgaLTnjJBo0SUBpMMWoRMXxd+Pos3aRmlAUVvOvMsMm0a5h2LEk2Ig6VXHyEVJaR2MYdPW5x8/w8ON9oKpYG5layVyOvWUjKQ7qYV1Mxd1Zhup2ZWU6Kn49kz3vZ0INALxl7c6whjxNayKtPZ0hdpr3S/M9KSarhuAiM9dssaHkVRAPixxZTJJkh6zdViSrd0XzqX8nwutd4QhN3AHcuqxfA6lHZFo9SSwGrGFmQG8wH1IlmZ1ZPVA0yiCFeTNGCQoCkBBlNlZyav2ZimlCvQ6pHwudaVWXtm+1UbeQ35lwh9ERVCBBjVIo39KFUm/HXiOIp5U06aJwjaDFrwTdfhVcYv9YzlDAVzwp0RXa/Spv6holBfbIKDLKgP5Ig2DC8/iyEcWWjIbg1oT8wOBF5nXcTX2fDrKJSEwn1eBu0yBLbth/u8tnm7PstFO/Gd2jfsJwfdUC38WGeA/ZP3lR0VrZp+goSruCNJInEPc8sBaV6/VZ6NjoJo2midoKxMF/gOoermVmU9iep6YB3J6tEfy/L1QCoG8zsA284MaVD5HlQZ423ebN1GzEjV4CoYRfBxPaNUZ0plLusAtHLt64Oq6u6TrO5u7Vh3W1EqkFN3vHKu+B/Cc9t8H/Dp/k8POT6IXE/VdHSrLf0H/y9uKEuNa/ObA87afArjMaBoIvM4bpK//rWU/ddDNheQZS/foJhFak8uAO+4sLNTfCz5yuZzUXsd2G5TBx90xg/M2aCgMuOJ+0jvL0zMKmmwvcSntfMSihV6e9Ha6Aj0iVXpa9QvlkIP30GIF4DWXBbkiqkkN3qxOPmMHXBoSTx6lSV7v0c5g1lcWX7kEqYhDXixeHr4tta8XfrYJEFQcQEXlm5S5BlM47CtQCV7hWXjtoCZXeElVfK9a/76XJOuWfRwW/jPT4akl7lg7oC8evpYHTXWJ+VuxvPMty0Bxxz1l0hQHCzCIH81sZA/U0DMo6FKkEzpDakiLP6LLmo5qG7985cN8VHxV1efuzti2Q2Zaf49X2jGuDQz79isStDWFUm6CPLXs/i4iMnaL21Zc/2k7MnAbhH1zZOKVPWTrmw5sjkt4Yv9W1f3RHldzYCKps8o6x2q7XmdxCb/lX95okzZoOVkZ/IkHuPr0km9USIJtDHV3GTkV2jCLATQ+30cY/gAJZSmGUEXMk1RlNE0LEpk85cHJKwc+EifssPoCbxn78hldLhRbAlCZ//3NOGgElLmB8vxVDk3+uBfl27FwWj5qJGuPa8WUlW29bjp8jrH1ZDHpplVBBpvLyX2n06VZGEK+pZUZUOqTy36jACN5eOT4fD+HmHg3jpKd3KFMcXIHGILusy7U4d4S3+Y/l580kB/sTW4cLyDtCZe5cFiVX060Q4rXWpHiV8iTXkBLxBN5DdWQfCXX37h/Xmgi5xkytmj5Yx2mS9ak/lziuXOah5/SiT/bP4FUtXskEvC5CC/8Km99yA+LCt7X/ykIGtUtrwFUSXaWRrzLeCsHs6M1LxDCy4TyT3SLW3BzZa2OEj1uXYWvymCHT4x6Te5suY84BtdVXtqRpH/15k1OFwuXD9+bv7AnVqT6f79c3Jmdx2tafo41hPm2LgySr1dx0Zat3SyaY26W0xjat3R+0fZ7eeW03S+VxfHHMWerWLZQBr7tLfZxSiOZXX7wKQKqumTbVSrrSdOj6sW+6X9P/ROL8p7eov4otPfYjbluy5AtvT66Ijbp/X636sf6xcvLIBMhD7F0YMMs5b5a8yfpOE4f1vdOgbQMdecOtBee9kVVNP0Xy8hifVrq9UehRa8LpewPYOmK8VgiF2G1zWmRDfuamtc7ZRT3LkuXZGtxIlt7tz+kJyMTRdeC+7Y25O9b2e9vyLOTPueVLF0V+WLtOY+rL5stv1ajbWKJy7YFLxKPMbFJWJzGpfG5tLB2KAO3Zqyl/Jmw63ofRPyqm1vBTXNpQg269bxLmZNJ35k1HSWZpRbXDoS4xRoZU4hopLpyPKm1o7vd1xi/4GH3zSbWY9wJKm5+bNXnHKK2S067i7qS0u/DoVazUdR8BIm9p5q9wnoXSSmHSLCZBf6GSvyfVcuSfjqfdmQbt00EP2lGyc/RMmMFnig+PfDSm6er5AeV9n5RX6ax45ffnHF5nfwUSFcuqry3m9rlNtIs36848WZNAQs1q+R0nus/NYbXyHg64pkmVZrdQa1ZC1e+6Xy/eN39nLjZyOLmaxjgzXz2i5xmPZTxXlr1CwWvus17P7a1Ru6DUdYuLQwgHD62Vcz6VWCMt1Y53fIzKtdOsnqnrHkNZSGt/XrZo98m1q/YRbd+7QJ5WvW9MyCDPxSB1lFKfRqK4qAIsoFzBVdJOE7c2ZHTTUwMSfzEV8KZh58zEFPGEzl21TZVnz/t1+LyDVaWbZTjL4F+COkeCrurn+7vvl6vXdGrkfvycan4lwnfb6qa9rqp6fiDWjf6v+jEvBu9LnTXJpnXsmlwTf9rmgv6I4hyhZ7TJcCMiWUdur5fEnvNGcIpZbGghugy5xa8OIK0T2lFWH47QoKDXcYSp+Odh3vvN15xrsdZxzvOt7ZdRXHzq48umVrxC9nRt//D1BLAwQUAAAACACzmD5Dxycf1sABAAAVAwAAJgAAAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL3B5ZGlzdC5qc29uhVLRitswEPwVoacEDiWXcBQOXK5cSy8vbbj2rYQg25tErSW5q1VyIeTfuyvnIC2Fe7K9szuzs+OT7lwDIYG+V/oZWpcIXZ3JxaBsaFVOoFxQKWZsoFRqFywe1SaiTzfq4GinIpZnzKT0jdJtbLKHQOtgPSQmPukWUoOuF1oR+vjp2+PzYvl98fWLwUT6zFPSLNiWmXI9N/1RuDyQbS3Z9R4wXaZnZipQEwPZhkTgx0lj7Mq4zbwICg7euq4wot1sLDWx8y5s4/5hK4hpotdXugsb1GPE1qYm6vOKkS0EQEvMxnAtp1kfdgCdGk3N7NZMxzJOwGWE39khvK5y9aV9bH5VFXebW2mv2Y+3L/LaH2W2qmZmbu6kkIMjKc2qamruuH9V1kjZe764LLE8srmgDmj7HlAyULQD9dnRU67Vh+VitCPq7yeTFvbQRe4xwznF7GQ/Lxv3GH9CQ+uM3RDOUxwuILOJhy8J9EeDYFsW4ECTibgtOWEOb/lVo4vj8X8tC1xMj/9yLeXie6zFNrwQWllLQFH+R0g+GElq9J7FmG9gQ0fg+84S8B8kGGclUQ23vPqLpubdEEkRGjiL1Or8B1BLAwQUAAAACACzmD5DpfomWhAAAAAOAAAAKAAAAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL3RvcF9sZXZlbC50eHQrSS0uKeZKzyzJKE0y5gIAUEsDBBQAAAAIALOYPkOFog2xXgAAAG4AAAAgAAAAZ2l0aHViMy5weS0wLjcuMS5kaXN0LWluZm8vV0hFRUwLz0hNzdENSy0qzszPs1Iw1DPgck/NSy1KLMkvslJISsksLokvB6lR0DDQMwJKa3IF5eeX6HoW6waUFqXmZCZZKZQUlaZyhSSmWykUVBrp5uXnpeom5lXCRIwRIlwAUEsDBBQAAAAIALOYPkNR7Iu7JRgAANpKAAAjAAAAZ2l0aHViMy5weS0wLjcuMS5kaXN0LWluZm8vTUVUQURBVEGtXG132siS/s6v6J3snOAcEGA7ycR3MyfEJjE7ju0FPLn5ZARqQGMhsWrJhMyZ/e37VHVLaoHwy9zrc+8Yo+7qqup6eaq6lS8ycT03cZu/y1j5UXgiDp127dJdyhMx95NFOjlyVpta/rTtvHU6tWG6XLrx5kRcb5JFFIp17K5WMhazKBbJQorPfnKeTkT3ul9fJMnqpNXy5L0MIoxxNFVnGi1b90cHtfNoKZsrd471aKjCWLPuauPE0vVAz4umyoniea2bYrn4RPTdUJxGseeqaWS+bMql6wdgOnZnMzeZRsHSD+fR/Yc5fU/L1S78qQwVFhpIz1dJ7E/SBEIJN/REqqTwQ6GiNJ5K/mbihxCRRFqqhliDJwHp6HeUJqI2kP+b+rFUzTOQOhEx/pQqUaL+6/uOc+hAsq0RaewncrkK3ERCozSujXHtg9p1HN37Hsb1viexeyIS0NmevIymd6L+HqTbTufgH0LSUPH+vXhJo19uD59gV5fu90fHrTb0NREGx87rxwmnoZ/Qg0Oa03ZeVzJTW0aeP/OnLmm3IdxYCmz8kmZ6YqWl9WAnbsLGMouCIFpjs8Q0Cj2fJimeVFvK5KRW6zhbG6ZENMt2ahp5UixTCBFDZuwgUXQn0T09Wm1if77AZoVRgr1v4KGvRABSRMFeLfS2WMF608D1lzDY2uEuA1jIso+MAcjmpWDq386DMILV4AnpUoaJmxluCzYZ4VEsljCs2HcDVaiYjZbm2cw7tSNHjPBlCCcnHphb9iHQ2AjwCfshhwA/kZChF8VwDjwF3WWUSKHFhK3XPKx4j3EzPNGCqWiWrGnzMkdRKzklY8Asn/wnJjMItUEoxfzURuf9oRhefRp97Q56Ap+vB1e/9896Z+LjNzE674nuzej8aiDG4+4Qj1++FN3LM/z/m+j983rQGw4FHtb6X64v+pgDIoPu5ajfGzZE//L04uasf/m5IT7ejMTl1Uhc9L/0Rxg2umow7WxarZgnrj6JL73B6Tn+7H7sX/RH33jFT/3RJa32Cct1xXV3MOqf3lx0B+L6ZnB9NQSfYL921h+eXnT7X3pnDtbHmqL3e+9yJIbn3YsLW5yPPTDT/XjR0wQhzll/0DsdNSDLZfYREkAT4OOiIYbXvdM+fej9sweuu4NvDZL89Opy2PufGwzCQ3HW/dL9DBlq9UeEh5JPbwa9L8QbBB7efByO+qObUU98vro60zod9ga/9097w3+Ii6sh6+Vm2GtgjVGXlwYNKAWPSZybYZ/V078c9QaDm+tR/+ryQNTOr75CAWCzi7lnrMirSxYXurgafCOqpAfWc0N8Pe/h+wGpDoKNBl1WyHA06J+O7HFYcXQ1GIlCTHHZ+3zR/9y7PO3R0ysi87U/7B1gX/pDGgCaNVr4axer3rDYtB/gS3+0zLDBuyb6n0T37Pc+MW4G17DTw76xCtbb6blROkz5TKpp7K8STpaOI/wlpbaTmrB+sjwXu2s7Gyofqerej1N1eNwqcm+WOltMSrXmi6NmEM0jZxXOc7L5h2KegDe6CDDLVSwXyHtwVMTiaYLfwUZk+djjuMMRHPmUQpqPpypxJ4EsqGb53Y2j1ISpIsWLOvK4s8vKUEoBjWKTvjkxwh2BAzfciJ8mSOt3CHA/ienCDSFTxeR+CB6CgONc/mXT+tmdYmm5pO7/FCt/hQjKBG1QszP6TK4Q7mQ49aV64qLNPPPfCjHZiN9kGEpE3YH0kx/WqHL2v6WhJRCzQxi2c5uR3oZGbC53eqWYFmplI0vTy2tWEinZnDV+l5/TKDQpxDK7h3VzHUgXmYNAHJvMmP25j1gEXxzfiiyZVWw/sW+Pfpx5y2EmQTTJvcamQma4u9YIirOF+j/9szvwW5SKKTYtTkMBrVPSHY9t22rGbA3ASySWcpLvyXhMSTQbwDk8I1ck+omEb0gGfvQn/ET52IcNyC/dO/2g6cmVGo+RUhLybJXO4TgEqDbgyosKspyGgRdcAdUkqRsgheNTxJqmxI8tCaVO7hOZsUZJ3ID3hHEsnkLOiq1pIlogpwNssBV/JhD0Ucbhwo29xBpFkJVHfPHh5jIQnyIYuzVgCoAUI6TxoEsw8BGwfSEDgIpqg8jWrTSGOfiYZGy0sqGl+dmCej6mh9Kb5GsyFYKTrWxcqzSb5Mln0h/b1UlLhi3yHZW0dvk3tce25+wO/MLYmbQxPANM5Fm31foIsnrm7/rGBVI7oMMu9d53F/ZXEQSrozxDTGjhlm1oSbYsDYU9vk2jc2XurfcsjfqIy9+dRbIMXhD9ptzm8Pnu3Lec0rMiv0az244spDN3KjLMvqzzSFwojX0hGHvbnv70hfJ5FXN0aby1ixWasDKRqNumc1CdCAAjxBWDnOo8uSdVfpIIA7OYLCbiipuzQmGdyAmJi/gXiiGWuLuCG84QInPkwDmOiyVLAxT/qG5ZuPeWe4n+TEdGXwU+FFQm6HMMBTCayTjOalEarmAFWEpwM4G4tBYq+PwQ+MAwVMNxX6FY9JvhBVVYRLUdK6p+77ua4IFda3kwh2mCIM9VmrVOLmXLBHn+jIXYeMhUfC3b2lcLnV2mQYoyWBHKI3wnqKOzx/MKKXL/U6SbyOiGo0fBAvZjLr3WQ6gp/3AOhUTxpnXKqA4YNX/yfvtndzI3lk7EYbtz1Gy/ax619xlWtWl1Pa9w4g2Z0DbigqJcDLoZ9Efma05yiLYwAmhWoNZWChGr5F9WeLMKbzbIROMhkFkvkOK4ZZGtWBX3YP/+dxgbyt4UI+MN5XpwsHKpvh6PKbgBswWADFjiOkXgGGRdpWmUxqC6oXrd4u5DHM1lvEgrVxvIJbUgxuMsGYKwSzUB93wsZdnEP0gFm5V3yp08KsKLznHHkmPma9/p3ZM22aW8SKrwJWLnd/KVaoP8t6JUsqJ2ZkWvm513z7MiSAd99Uk6ZxpESo7HjfyLWKJeCukbKpmyb2Ez/jwkYFbvG62031SETW2i4zHQBnCRjgH+DzYnjRE5Fo5NWcW2qL9nNKKfhnJN1pLYJmAaOFSH/dfDvdZWRKu2XjAHTTdslpj4dXxbueGGa2TmRN7O/MCoJF155S88GUjrC4vD8dgnsDjNCogovlXkR4gwU6UnmwHLpZ/cconqJ5t9VDwswuUOTJcsmvdiLeVdsMlIwKDDxNbqQK4ihEYEJ3xrK2/yBzzjAbm1mPkyWkj8uUTlFXmqWIGyIoVnct7HiPrqNsf+Npc3in300fkLoCStt4lLJko24YIjGTNDtrgOK22FWEK1QxVJ6gSSBbtJGnM7cDw+j6I7R3o+qXCBiKGrdA/DQm5uwrEROlaRDze3n1uKxbdrGQQOxc+T3SRaaaIfJu9ezw7fddzjt+9eH3deH7tv3F+m3tvp4eG7N1PPc99N3nTanTfHVWKMcxihPQisU6kWItlnzUxX90OwT0BzSzcEwo8bDOsaFoP7YBZ+OFEbfvUq9QOiOl+cbA+ln1S8xyMHa8f1l3YIe1kRHtrOmyL9HTfbb56f/uATbgDH4ewUuBMZlPNGN5B/wIzjSHxGMfhD1D+42Tdz+mIPV22Lq9fP52o8VlGc5B4ElMlGvm2y5d1zlHTj6eKWdKfM3FIsqB4ek93vsXPjekWgMeG1oDVHRFKgqJIsUS6lqw8bUHCYDgvlOouTP6jxT9670NhH1w4miBPXtKCrq3oK4/5+v176ob9EtQ7cNKfxdbZM8Ge+cOYyucBHsibD8suD8bgy1QxkE+WTG/o/NHohvEp1uism4EDUhysYikhXgjWGtNvQKV1/1IpYbVgA1xZ3hgTEpw3UYYDyVDppLiMvDahqohpmIxRWTTZOJVunKIZItPEYyDuWalEfxak80IDHtbZCJTEdMJjt7bMOI8YvU+poADRbTK2j+E7Rhhmc45HXV6sZSdLYgBXDKUa406lcJSYOS4BeWiueM+Qj0nhQsj9jd9ukvKhy3S9UohXSRdMkmrqFTxQGaIUWa9QEKoeqVys4ksUF1SqkzaVUijrDZM26GIQUV3o2tmNDHaFwDlxbH+HDHWLCGt/usRuGjPd86CPLiHomrjfDq1/etDuVMmqTKmvG+KO2lfIj8uz8+Y57VxBxRNfEb6WTv63R8mp6Syvjxc7a1bmEkdyprricHAOsKddFcayNjLWdAPdrZl+qco3wcJKCT/uE+wrbowNAEXFNjSAA5MGFQB4m2b04HGaIr0JhPeS2eBX7DApg7I1S/P8tJsiFVT4TuET49yJfLZGlJ2kcwkIqLWIoqRcWZMWRZpiwC/Hgx7rFgc1Qpp1I5w1unJ09jsfv31ft73+8505mKJYR4ufUJcrct1z7qHoYoLKMaehjr4VvHRtTy1FbB823sRzHpQbV9haV4XlXH61S/0AflM5TKBWaojpmuUz1UQffAdCr2TAmq/H0iSkrgba5Scep8ClSBTceoAc6CDbHshM6+GR5iKxHB9NBqWehRyygRWoL3SMPkz1jvEd7jUwgvQono/P2oywbHz27uNFJBuUKJaPM0AoDw/5ZuHFq8CwJ7oaIrx+SlUwqGrPE1GHBVPvweUwNk2hl1ZCe5AN92vvJJgEyNXqOJeBpqLcfsPfNsR5IVkQVqRIv3h5W85aDqsPmYed5vJ1HCYra7+SYuuBdLyTlKXLDvLTl3XfpkCPQJ+pKVpwxgJOCj85ecFfFRafd/lnUqeF8oCv3rD29b49Npsj7+W4Yoh6aSu+W8pR7m4P3vVDEppDfUIB8JmtjR7Zx85MAtL9kqiYG7hvFsNmEyadhZ/3zQiigWJH4+A81Byps1SzgZOjjgGZ9pWDRvfja/TY07T/xuTfKjvXYgxHusOMbxFIBICIDH/BxL1GGNDlhpsjnpaDJMdEVVL+BnkqnC11N+TO6dbGwu9Z7fl7YBVcR6+jOBhe9wp27FJIfZraCLIfGNTIHzXxJ56RSwyGd/Txt9I+UpvvshkHwhE4DxFd96wehToNrXxXNVyrYvKjSfP5Vo/Ito2IMgMCtIUC9095rUiQHDaLjNL+qxntBJ28qSWezv7UwvAhQ873v0K9KLrrGepQkfUJD2Bne8SgECJ5Tr5c0R0OoORRnAZyOMbJyndxBlXpGxrYpttNGwEKmCskboYyu6EDYMWDffL0Jwxah0Ds/GVccQe3uOZd6nE4BClC4VXeUkLZt/1YO9T3yLtCd3KgMGBHOUFrAyFRSUtdRr14hn796ZQtFtADCaL4jLiMdjH0rdRCH0oXPYYgRna1PFkk42eqv3vvUUA/n2V1I7qSd0EoOrfOIdLq4KpIqybhKJyia8HjCPQry5olEVokZeXuOgDKqDh2K2oB+2VQYgiGiPMKMu/JzHRNjt7rgG49fKqv/k/OT49yHW8t0BnL7p242ENrUZxSwa+oBq7+s0ogL49wTdLHJMPsJ9Au6pnRvCOoz7tKvUBz3vhzqpptm+iN6KroAlSGnaWrEVPfqcoCoiwPTCMsxqm4BaNSs50XrkCeWwkRO5aEVseeBPy2tmV0Z5JZi/lxrxNi9jh7kCqUVLbiqoa2ZxLFlIjNzzO4dhtQyu9d3gCsMomASfJDrowAoGCHhzfGn4sMvbKW5HLqflCdnbhokRaugoMf6RE6GqmOOBs3Y91CkckHgmk1AbebtyGwuWjQwai6xD/60ij7tpOt5psSjAkWnPWWCRokoDSYeNAuZvj77+SzepHWUBhS96cyzyLRpmHcsSjTBDkSvPkIqSkjtYg6ftjj5/tcPdtoKpYG5lWyVyNvWUjKQ/q4VNMxd1Zhup2ZWU6Kn49kj3vZwINACYy9udYQxbGtelels6Yu0F7rfGWlONVw3gZEeu2UNT6IoAPzYY8pkE8S9XtValG7pPnUu5fmca70hCLuBO5VVwrAcSruiUWqJYbVgCzKD+YB6lWyM9GT1AJMowtUsDRgkaEqAwVTZmclbNqYp5Qq0eiR8rnVhZM9sv2ojL8H/GqEvokKIAKNapbEfpcqEv14cRzFvynH7GEGbQQv+0nV4lfFLPWO9QMGccGdE16u0qX+oKNQXm+AgK+oDOaILw8vPYghHFhqyWwPaE7MDgVdZF/FVNvwyCiWhcJ/FoF0Gw7b9cJ/XNm/XZ75oJ75T+4b9pN4P1cqPdQZ4cfyusqOiVTNMkHAVdySJJe5h7jkgzeu3yrPRSRDNW51jlJXpCn+Dqaa5VdlMoqYe2ESyuvensnw9kIrB/A7AvjNDGlS+B1XGeLs3W/cRM1y1uApGEXzUzCg1mVJ5lW0AWin79qCquvs4q7s7z6y7rSgVyLk73TgX/Ivw3D7fB3y6/dNDjg8i11MNHd0aa//O/4sbylLj2vzmgLM1n8J4DCiayDyOm+Svvy1l/+2QzQVk2ct3KGaR2pMrwDsu7OwUH0u+svlY1N4GtvvUwQed8R2vbFBQeeGZe0/vL8yMlDTYFvFh7TyFYoXeniQbHYE+IJW+Rv1kLvTwZzDxBNCa84JcMZfkRk9mJ5/xDBxaYo9eZcne71HOaBFXlh85h2lIA57Mnh6+rzVvlz42SRBUXMCFpZsUeQbTOGwvUMleYdm5LWBmV3hJFX9v2z8/1qRrFz3cDv73N0PS01wwd0CWnj5WR43tSbmb8Tzz156AY476SyQoDhZhkP80sZA/U0DMo6FKkEzpDakiLP6LLmo5qG798x877KPir64+n++IZTfkRfO/c0GzhUsz847NpgRtXZGkqyB/PYuPi5is/dKWNddPyp4M7BZR3zypSFV/05UtRzanJXyxf690D5TX1QtQ0fQJZb1DtT3LScvk3/I3D5QpO7Sc7Eye2GN8XTqpN0okhnammpuM/ApNmIUAer+PYwwfoITSNCPoQqYpijKaZokS2fzlAQkrBz7Sp+wwegLv2TtyGR1uFFuM0Nn/LU2oV0LK/GA5nivnSh/869KtOBgtHzXStefNSqrKth43XV7luBr82DSzikDj7bXE/tOpkixMQd+SqmxIDalFnxGgsXx8Mh7f3iIM3FpH6U6uMKYYmUNsQZd5n9Uh3tMfpp8nnzTQT2wNLhyvnjbEyzxYbKpPJ7phpUs9k+OncFMW4AmsifzGKgj+9NNPvD93dJGTTDl7tF7QLvNFazJ/TrHcWc3jT4nkn+2/QKp6OeSSMKnnFz6199bjg7KyX4i/ycgWlT1vQVSxdprGfAs4q4czIzXv0GKVmeQe6Z624G5LW9RTfa6dxW+KYAcPTPpNbqw5d/iLrqo9NKPI/9uLtThcrlw/fmz+yJ1bk+n+/WN8ZncdrWn6ONYT5ti4Mkq92cZGWrd0smmNulnNY2rd0ftH2e1neuv9e3VxzFHs0SqWDaT1gvY2uxjFsaxpH5hUQTV9so1qtfPA6XGVsF+6/03v9KK8p7eIP/eGe8ymfNcFyJZeH51w+7TZ/LX6sX7xwgLIROhjHN3JMGuZv8L8WRpO87fVrWMAHXPNqQPttZddQTVN/+0SkpZ+ZbXao9CC1+USdmDQdCUbDLHL8LrBlOjGXWNrVTvlFHeuS1dkK3Filzu3PyQnY9OF14w79vZk79tZ76+IU9O+J1Ws3U35Iq25D6svm+2/VmNJ8cAFm2Kt0hrT4hKxOY1LY3PpYGpQh25N2aK83nEret+E/8GIPW8Ftc2lCDbrztFzzJpO/Mio6SzNKLe4dCSmKdDKkkJE5aITy5s6z3y/4xz7Dzz8ut3OeoQTSc3Nv3vFKaeY3aLj7qK+tPTzWKjNchIFT1nE3lPtPgG9i8S0Q0SY7EI/Y0W+78olCV+9LxvStZsGYrh24+SHKJnRCg8Uf39QuZrnK6THTXZ+kZ/mseOXX1yx16t/UAiXrqq899uZ5DbSbh498+IM/Ssh5jVSeo+V33rjKwR8XZEs02qtLqCWrMVrv1T+4uitLW78aGQxk3VssGZe2iUO036oOO9M2oXgz72GPdy6ekO34QgLlwQDCKevfbWQXiUo0411fofMvNqlk6zuGUuWoTS8q183u+fb1PoNs+jWp00oX7OmZxZk4Jc6yCpKoVdbUQQUUS5gLugiCd+ZMztqqoGZOZmP+FIwr8HHHPSEwVS+TZVtxXe//FxErsnGsp1i9DXAHyHFE3Fz+dvl1dfL2im5Hr0nG5+IM530+aquaaufnIjXoH2t/6ESrN0acqe5NM+8kkuDr4Z90V3RHUOULfaYPgVkSijd1PP5kt5JviCUWhqL1QBdltSCFxeI7ilJdJL9G0nPGEqfDp873nnz7Blvnznj6LnjnedKceQ8d41+2RrxzanR9/8DUEsDBBQAAAAIALOYPkO1QxFBDgsAAIoTAAAhAAAAZ2l0aHViMy5weS0wLjcuMS5kaXN0LWluZm8vUkVDT1JEfZfHlqNak4XnvVa/iajCm0EPJISQsMKbCQsPEt6jp//Jezs7UWZ1TcgcaH3Eidjs2GeI+6H/PWxPL82HbAx+Neuhz3wYw/9HE/oamdAEPmcoAJ3IxBAe+slkNQZM42ekGfhAkVHQ4F19QBAUAv/7v4YvXFUPeZKH/pDXVb+jsjodoGN5086hViyo45CCBcAaONfYKtkPsgdqZfTwcQmYAwLCyBu0rKO42NOWG0dJWas2CL6yQSxgecIat0yLszkYiiRAQHXFc70TFeYAQxj5SUvyZRi7eI/q0yq1zITHaq28LGSseYBMoYQozwikPxw/6EWeBVoPmcIDBuJvdTVj8VYWOPXO7XiEVAefavtlCagmcqwgC/fXpWXbRMbuzjhivb70BxTHqE/YOORvnNV/TJepuy71AJe8q60cHz4nK1pC1rAUupgm+1I+uOj4um3NQoi3ovxxyPawAA0r6JiqM4JBCoKuF0F0EUJc/deotLqtEWfc93NFY5j6AJEE9g5r8h3qfFrE181S5pWTwsC48+TFXa8uHIRpcDnzxmscC5dTwGlwDhiKwm+ofujGcNhXZkQTFmXFdH/MtuRBpE7aaRKWctgaqiHrAj5dAnQyV9YWDzABoZ84z8urfPC8HQolzozSPMjrSfMBT7+VFoBxdDwqsfosMUlsOMtlkUwbL8bhXbB534/xP02ru/wVe3XzIV2/8PqwbuLdK+pScxvDvfYuwRSQ8lwcnSSDWDFnWQtH+0xmOsKw/msqmQMEo+9K6eKm3h/dwYZ5XrXX5XpVRga/1uw9BzOFtV88OqBqlTGcDoNzXxLhASXgL6n8Q6u7dA8DKsIHaym9eSd2Dq+6g7rEFRxwrwm0V+xa6lXEGneeJVM8QBACvzfgu/gqHk7TY7ZkGi0SFxLpnmtsC1mmXpexsrlnoeuuq51W0rwdIATFfnZzTytFQ5H55UkhyQXCeq0LKowUV1yRn/du9sRnMSgJJ66gsakPhGDyDZfm/ZtilhSIhGPRUIvmqeESXU7LUUdg6UmEFHFup7szjKGlQgypHHAUhL7Bhh1quJ7gmMKDmnO9+XSDFtkvyGkCxxOYo6seX8JM81HrYgmbhZAI+t6zPu72dUl5IsVsxOsSIwqSx6HmtXslHkBaYq7N62WhaYVgj0mg9QeSIt61EU9x9XbKkbiKTKANORHYy5Afn7HGn6EYMrhmgh1rhSlZWwm1Ga10c+CPz/9fE0c2BgD+In5Bv6KtcUBeJfVv68owwidZxC7R06Jr8Tne0YJMR9cWJ5FAhfMVjGak4ZNrdq/njk3JTSngX8Eiox/PR/34yfbWzdcChbaANdNKhJKaLAAzzqFyHpJN3S5zj6P06wXqlANEQTj8V7rK0LJ6Phz++qMzo9Hq7a7fZOlX1w+flcz+M3jdaLtu2dU6QRcmL3xvvHVjEPkh4DonoOjn2c2bbbQQieHYX1/SrB///3r0dfX5gmcKwIJ874o1MgpGCOBaANk+B12vk2qQk7oi5UJd9CneORAk9Vf8UDdesUmg+DUs/3cCKsrzEzBWYyg2OMY2A2I7BmPR40owpNhgTElOLuI/8z48fPji//J/f/d+e8XPABtbd0Gd/bBzZ+JMVo+b68fPVHk2gAVS5mqrT2maNyURX434/UOU5cKfu9NL9JsVz25iYjppqeFY5g30tc6uKQ2/XKkPWO5IHjCE/BLl7x8J46WDaIGNGBTLZBCBZxsvIYnEJYeObSa4nlPN4zHwjjPkczM/ivhq4O//L16QauTzSupQkI00cEqLQfVgL15rT+tDxBvpyp79KodVh5u3zYRDX8Tv9of7HW+VgCh027ISvYhYxj4/0/ykAyeXov02d45uSxRLamyGBe9q+54GWhGdO8qsee9YjD4FXbCqpaTnAzScQDLVLFLadYwqis82GSIUBO+K+uYvNRGRw1BT6dFLraVe6K4pDTNy7L5MB9afKd4FfR99gNBz0wOG7lB/WJZ6pqOqpbBGe8I7l4E5wp0u55vO5/xwvjTyBKIcdzXG1kI/RvnFiuKw7vyhfqvNxRcSj1knLzkYdE3k/AReEC0fZUl6XDHMuKs3Jh0Ar23SA4yiX6by+2ciYBq9RpUugBYJDe9uQDesQxYzOIt4xvLHIN3Ef9LuvjqTW/AByTeR7TixLlyruB0Mwky5AXSwwPMnZ1JYhJsHC0iPi4gdIWeEU+aAk/huiEWc+uG6QzUx6nbgJSZPWBAOJqb6ZdU3utkR43yVC/iGjXJulhIH1Qcch/Ev1I/UWkc9YVfr9VrXD47Uee/iMVqF8N61n64Q6WA+ek70oQ3NdBMESe6O957DcOyMPj2aETRgQdUrTZ6elaFoj9eRjobLMMWE9Bp9x3TjzWoRZGfkv79FB7cNbsFsbVEJq8IlsxFUW5lAP6qtLtiPkBRIWL529AzbW0kEgsD7jn9ssLAuy80pdkghdYBxLuntJFbNG1IKCbSf2BxmRkfltC0xh1kpK4tkaD5QCPkdmG3PuttPIH86cxBBDAjRbpoAlalFL8cIgAeVaNOlxjgCFOjJyUMJ3RYLAn0nJnmxz3EnR8aTBTInWBDRO/88RS+0rm1rBniCW41H0Pe3sjcXvdqODCLod9zHc4ebHwPbXjGPHZmTAJzKJH9OrEIPNQ1YSxohTG17bSDniDYfCGrvF//i/vB90kEEg33FzZ1JRL4UUIWrlPczFryms+krKYzALqPQD5TaogmFfBH/TV///tnxurh9Eklup4SzzQpa5T6Z1tbAzY4vPCr24qA4g3VS9dVmRCC6CxSfxJ9TlicVhy4O00fAnUTqRTf4V92bSkwl2AoCdOubCXEGZVsFDxSI/yAWfrCtvF0cU54c+mj72ifaCJel5IFfhPUxXxKDxlag4eYrl8mLZBjgJkQQ+gH8Qx9FZjluV4xLqbSv8lGtgpUQyTlWiUczuBchp8SE1Dt/0Yv0QILwD2S5CWcTY7Xv5QuqqanSFIyd0c5HTc9F9WpuNM259uVHuBkx6og5z47dHAom0R/Qfxbr/q7HPzWUYIGojbJkmaL7emxRKhcAUxLuy0tFMNq8twP3mpzt4Piuk//cKf4wGnXC4m5VI9mF0RNwY8918Gwl1z8+6mMVuBBEQ1EZXUyE+bgc4+R34sdz30WHhM65fOaMDEHZkwetUHQUaSx/uFxMpxxG2IxGvpAPLyVAEvxjhW/ubHdgUgN+10FIhWt2rGHDI3JcfWCmvgJXp1QFhsIjNCi+b4xPYDV8SycgmFAUyIiZkJGgJ5/WktFldpHHhCf4O1BE69AJZmsp8HYzxSHkOzKr6+f+o7aZVOcnIrS5tCvVM3SqBXhOJCdO/DZmG5t12A7TJq/fEjiGwd9xfxBjUNkP5wFnozpeUANjTBhfg9nD8q5G0CMI9Atfu5ipVuY2Z4r6TozquSpqP9p/1tg9cYTti+hVVoXzJVP92cACo7+dUjfvJrsmOYdz4PqOHmAc+jGXwU/3l46iGVNXeDU0xiVqd7nzzfGkAqJbmVKRIap0z7XSkvBxs0XqZ33bkBu/y7eQvF94EMR1NZ76zfJY9GPmA0ZY1NbtdlIeVtSQ0kMj3ZDXINLYLvgw9h3aD/4wvoUzA599B3zKj9xTLIMCWUl3IIzEnsb5Vr3gPiJVIXgRmnDcchDy48hB51dhtr9Q6oaGoZaHc8d4OldcfOpulOglIbCGkzbbcYvTY3nMwmQ+kOgfC3y7n4IeiswpUOWYVXS5Sh2zuY1GNKup8XEXq3imei2d+dMmwy3ybbz/AFBLAQIUAxQAAAAIADSXPkONiblWuBEAAIKCAAAUAAAAAAAAAAAAAACkgQAAAAB0ZXN0cy90ZXN0X2dpdGh1Yi5weVBLAQIUAxQAAAAIANqZMkNPV8f9zgIAAM8LAAAbAAAAAAAAAAAAAACkgeoRAAB0ZXN0cy90ZXN0X25vdGlmaWNhdGlvbnMucHlQSwECFAMUAAAACADamTJD+cYV1p4CAABuCAAAFAAAAAAAAAAAAAAApIHxFAAAdGVzdHMvdGVzdF9tb2RlbHMucHlQSwECFAMUAAAACABtoyNDiWjw6vkAAAD6AQAAEQAAAAAAAAAAAAAApIHBFwAAdGVzdHMvZml4dHVyZXMucHlQSwECFAMUAAAACADamTJDqNgwEUIEAAAzEgAAEwAAAAAAAAAAAAAApIHpGAAAdGVzdHMvdGVzdF9wdWxscy5weVBLAQIUAxQAAAAIADSXPkNoxivX5AMAAN0LAAAOAAAAAAAAAAAAAACkgVwdAAB0ZXN0cy91dGlscy5weVBLAQIUAxQAAAAIANqZMkPatWq6QAIAAFMHAAATAAAAAAAAAAAAAACkgWwhAAB0ZXN0cy90ZXN0X2F1dGhzLnB5UEsBAhQDFAAAAAgAh7XWQhmPByEtBAAAQhUAABEAAAAAAAAAAAAAAKSB3SMAAHRlc3RzL3Rlc3RfYXBpLnB5UEsBAhQDFAAAAAgA2pkyQ7QgaEKdAgAAmgoAABUAAAAAAAAAAAAAAKSBOSgAAHRlc3RzL3Rlc3Rfc3RydWN0cy5weVBLAQIUAxQAAAAIAIe11kIAAAAAAgAAAAAAAAARAAAAAAAAAAAAAACkgQkrAAB0ZXN0cy9fX2luaXRfXy5weVBLAQIUAxQAAAAIANqZMkNMlb3MvAEAAN4EAAAsAAAAAAAAAAAAAACkgTorAAB0ZXN0cy90ZXN0X2lzc3VlX2F1dGhvcml6ZV9vcHRpb25hbF9zY29wZS5weVBLAQIUAxQAAAAIANqZMkPikikgWhwAAJu4AAATAAAAAAAAAAAAAACkgUAtAAB0ZXN0cy90ZXN0X3JlcG9zLnB5UEsBAhQDFAAAAAgA2pkyQxlCrU5aBgAAOCwAABIAAAAAAAAAAAAAAKSBy0kAAHRlc3RzL3Rlc3Rfb3Jncy5weVBLAQIUAxQAAAAIAG2jI0PL4EsAfAEAAEEFAAATAAAAAAAAAAAAAACkgVVQAAB0ZXN0cy90ZXN0X3V0aWxzLnB5UEsBAhQDFAAAAAgA2pkyQxb264+VBwAAkCcAABQAAAAAAAAAAAAAAKSBAlIAAHRlc3RzL3Rlc3RfaXNzdWVzLnB5UEsBAhQDFAAAAAgA2pkyQ8FaZVzsBAAAARkAABMAAAAAAAAAAAAAAKSByVkAAHRlc3RzL3Rlc3RfZ2lzdHMucHlQSwECFAMUAAAACADamTJDYaka3OQCAAASCwAAEQAAAAAAAAAAAAAApIHmXgAAdGVzdHMvdGVzdF9naXQucHlQSwECFAMUAAAACADamTJDK4aMZdUGAAAQIwAAEwAAAAAAAAAAAAAApIH5YQAAdGVzdHMvdGVzdF91c2Vycy5weVBLAQIUAxQAAAAIANqZMkNGccaBRwMAAAkNAAAUAAAAAAAAAAAAAACkgf9oAAB0ZXN0cy90ZXN0X2V2ZW50cy5weVBLAQIUAxQAAAAIAG2jI0OcuQUE+wMAAC8NAAAQAAAAAAAAAAAAAACkgXhsAABnaXRodWIzL2F1dGhzLnB5UEsBAhQDFAAAAAgAfZg+Q0zi/B/MBQAACxUAABEAAAAAAAAAAAAAAKSBoXAAAGdpdGh1YjMvZXZlbnRzLnB5UEsBAhQDFAAAAAgA2pkyQw1X45kwIgAAa7sAABEAAAAAAAAAAAAAAKSBnHYAAGdpdGh1YjMvZ2l0aHViLnB5UEsBAhQDFAAAAAgAjrXWQg++fzqiBQAAVRUAABgAAAAAAAAAAAAAAKSB+5gAAGdpdGh1YjMvbm90aWZpY2F0aW9ucy5weVBLAQIUAxQAAAAIAG2jI0Oi6PERzwEAAAUEAAAQAAAAAAAAAAAAAACkgdOeAABnaXRodWIzL3V0aWxzLnB5UEsBAhQDFAAAAAgA2pkyQ73wA4W/DAAAWDYAABAAAAAAAAAAAAAAAKSB0KAAAGdpdGh1YjMvcHVsbHMucHlQSwECFAMUAAAACABtoyNDmg6Kg9sMAADOOAAAEAAAAAAAAAAAAAAApIG9rQAAZ2l0aHViMy91c2Vycy5weVBLAQIUAxQAAAAIAIWYPkOZqSJPLAEAABoCAAATAAAAAAAAAAAAAACkgca6AABnaXRodWIzL19faW5pdF9fLnB5UEsBAhQDFAAAAAgAbaMjQxtbZ3ZiAwAAiAkAABUAAAAAAAAAAAAAAKSBI7wAAGdpdGh1YjMvZGVjb3JhdG9ycy5weVBLAQIUAxQAAAAIANqZMkOjFt/WMAQAAMALAAASAAAAAAAAAAAAAACkgbi/AABnaXRodWIzL3N0cnVjdHMucHlQSwECFAMUAAAACABtoyNDA4G9gHgHAADVGgAADgAAAAAAAAAAAAAApIEYxAAAZ2l0aHViMy9naXQucHlQSwECFAMUAAAACACOtdZCOLuwWkoGAADiGQAAEQAAAAAAAAAAAAAApIG8ywAAZ2l0aHViMy9sZWdhY3kucHlQSwECFAMUAAAACABtoyNDA3kpKcIPAABANgAAEQAAAAAAAAAAAAAApIE10gAAZ2l0aHViMy9tb2RlbHMucHlQSwECFAMUAAAACABtoyNDmKj/g44LAAD+MwAADgAAAAAAAAAAAAAApIEm4gAAZ2l0aHViMy9hcGkucHlQSwECFAMUAAAACABtoyNDKvGfoMMMAAC0QwAADwAAAAAAAAAAAAAApIHg7QAAZ2l0aHViMy9vcmdzLnB5UEsBAhQDFAAAAAgAbaMjQ7HF7AvHAQAAqgMAABgAAAAAAAAAAAAAAKSB0PoAAGdpdGh1YjMvZ2lzdHMvY29tbWVudC5weVBLAQIUAxQAAAAIAG2jI0M5hhZvwwIAAIsHAAAYAAAAAAAAAAAAAACkgc38AABnaXRodWIzL2dpc3RzL2hpc3RvcnkucHlQSwECFAMUAAAACABtoyNDYuNAjIkBAAAKBAAAFQAAAAAAAAAAAAAApIHG/wAAZ2l0aHViMy9naXN0cy9maWxlLnB5UEsBAhQDFAAAAAgAbaMjQ05vii+ICAAA+R4AABUAAAAAAAAAAAAAAKSBggEBAGdpdGh1YjMvZ2lzdHMvZ2lzdC5weVBLAQIUAxQAAAAIAI611kJ6g6BWqgAAACUBAAAZAAAAAAAAAAAAAACkgT0KAQBnaXRodWIzL2dpc3RzL19faW5pdF9fLnB5UEsBAhQDFAAAAAgA2pkyQ01AsBgTCwAAxSgAABcAAAAAAAAAAAAAAKSBHgsBAGdpdGh1YjMvaXNzdWVzL2lzc3VlLnB5UEsBAhQDFAAAAAgAbaMjQxc71v22AQAAigMAABkAAAAAAAAAAAAAAKSBZhYBAGdpdGh1YjMvaXNzdWVzL2NvbW1lbnQucHlQSwECFAMUAAAACACOtdZCE6UwOXwCAAClBgAAFwAAAAAAAAAAAAAApIFTGAEAZ2l0aHViMy9pc3N1ZXMvbGFiZWwucHlQSwECFAMUAAAACABtoyND4TO7ymMBAAAiAwAAGgAAAAAAAAAAAAAApIEEGwEAZ2l0aHViMy9pc3N1ZXMvX19pbml0X18ucHlQSwECFAMUAAAACACOtdZCSke/xlcEAADUDAAAGwAAAAAAAAAAAAAApIGfHAEAZ2l0aHViMy9pc3N1ZXMvbWlsZXN0b25lLnB5UEsBAhQDFAAAAAgAjrXWQmkN0fm9AgAA5gYAABcAAAAAAAAAAAAAAKSBLyEBAGdpdGh1YjMvaXNzdWVzL2V2ZW50LnB5UEsBAhQDFAAAAAgAjrXWQgA3VLAJAwAAeAgAABgAAAAAAAAAAAAAAKSBISQBAGdpdGh1YjMvcmVwb3MvY29tbWVudC5weVBLAQIUAxQAAAAIAG2jI0Nl9wsJCzMAAJYUAQAVAAAAAAAAAAAAAACkgWAnAQBnaXRodWIzL3JlcG9zL3JlcG8ucHlQSwECFAMUAAAACACOtdZCXBqJsgoDAACICQAAFwAAAAAAAAAAAAAApIGeWgEAZ2l0aHViMy9yZXBvcy9jb21taXQucHlQSwECFAMUAAAACABtoyND+akbcIwGAADtFQAAGQAAAAAAAAAAAAAApIHdXQEAZ2l0aHViMy9yZXBvcy9jb250ZW50cy5weVBLAQIUAxQAAAAIAI611kIWe9MwgwQAAOANAAAVAAAAAAAAAAAAAACkgaBkAQBnaXRodWIzL3JlcG9zL2hvb2sucHlQSwECFAMUAAAACACOtdZCStsGq44AAADHAAAAGQAAAAAAAAAAAAAApIFWaQEAZ2l0aHViMy9yZXBvcy9fX2luaXRfXy5weVBLAQIUAxQAAAAIAI611kLjZpHS5AMAADgKAAAZAAAAAAAAAAAAAACkgRtqAQBnaXRodWIzL3JlcG9zL2Rvd25sb2FkLnB5UEsBAhQDFAAAAAgAjrXWQo8UDcXAAQAA5wMAABQAAAAAAAAAAAAAAKSBNm4BAGdpdGh1YjMvcmVwb3MvdGFnLnB5UEsBAhQDFAAAAAgAjrXWQhidKUx7AwAApQoAABsAAAAAAAAAAAAAAKSBKHABAGdpdGh1YjMvcmVwb3MvY29tcGFyaXNvbi5weVBLAQIUAxQAAAAIAI611kLiJpm6NQIAAJwFAAAXAAAAAAAAAAAAAACkgdxzAQBnaXRodWIzL3JlcG9zL3N0YXR1cy5weVBLAQIUAxQAAAAIAG2jI0NYjldIbwEAAE0DAAAXAAAAAAAAAAAAAACkgUZ2AQBnaXRodWIzL3JlcG9zL2JyYW5jaC5weVBLAQIUAxQAAAAIAG2jI0MiTP/4YgIAAHMFAAAWAAAAAAAAAAAAAACkgep3AQBnaXRodWIzL3JlcG9zL3N0YXRzLnB5UEsBAhQDFAAAAAgAs5g+Q8EfbAg/FwAAhUgAACoAAAAAAAAAAAAAAKSBgHoBAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL0RFU0NSSVBUSU9OLnJzdFBLAQIUAxQAAAAIALOYPkPHJx/WwAEAABUDAAAmAAAAAAAAAAAAAACkgQeSAQBnaXRodWIzLnB5LTAuNy4xLmRpc3QtaW5mby9weWRpc3QuanNvblBLAQIUAxQAAAAIALOYPkOl+iZaEAAAAA4AAAAoAAAAAAAAAAAAAACkgQuUAQBnaXRodWIzLnB5LTAuNy4xLmRpc3QtaW5mby90b3BfbGV2ZWwudHh0UEsBAhQDFAAAAAgAs5g+Q4WiDbFeAAAAbgAAACAAAAAAAAAAAAAAAKSBYZQBAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL1dIRUVMUEsBAhQDFAAAAAgAs5g+Q1Hsi7slGAAA2koAACMAAAAAAAAAAAAAAKSB/ZQBAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL01FVEFEQVRBUEsBAhQDFAAAAAgAs5g+Q7VDEUEOCwAAihMAACEAAAAAAAAAAAAAAKSBY60BAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL1JFQ09SRFBLBQYAAAAAPwA/AM4QAACwuAEAAAA=", "encoding": null}}, "recorded_at": "2015-03-12T13:22:34"}]}
+\ No newline at end of file
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2015-03-12T13:22:33",
++ "request": {
++ "body": {
++ "base64_string": "",
++ "encoding": "utf-8"
++ },
++ "headers": {
++ "Accept": [
++ "application/octet-stream"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"
++ ]
++ },
++ "method": "GET",
++ "uri": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944"
++ },
++ "response": {
++ "body": {
++ "base64_string": "",
++ "encoding": "utf-8"
++ },
++ "headers": {
++ "access-control-allow-credentials": [
++ "true"
++ ],
++ "access-control-allow-origin": [
++ "*"
++ ],
++ "access-control-expose-headers": [
++ "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"
++ ],
++ "content-length": [
++ "0"
++ ],
++ "content-security-policy": [
++ "default-src 'none'"
++ ],
++ "content-type": [
++ "text/html;charset=utf-8"
++ ],
++ "date": [
++ "Thu, 12 Mar 2015 13:22:33 GMT"
++ ],
++ "location": [
++ "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"
++ ],
++ "server": [
++ "GitHub.com"
++ ],
++ "status": [
++ "302 Found"
++ ],
++ "strict-transport-security": [
++ "max-age=31536000; includeSubdomains; preload"
++ ],
++ "vary": [
++ "Accept-Encoding"
++ ],
++ "x-content-type-options": [
++ "nosniff"
++ ],
++ "x-frame-options": [
++ "deny"
++ ],
++ "x-github-request-id": [
++ "48A0C951:54E7:48B5311:55019319"
++ ],
++ "x-ratelimit-limit": [
++ "60"
++ ],
++ "x-ratelimit-remaining": [
++ "58"
++ ],
++ "x-ratelimit-reset": [
++ "1426170017"
++ ],
++ "x-served-by": [
++ "8dd185e423974a7e13abbbe6e060031e"
++ ],
++ "x-xss-protection": [
++ "1; mode=block"
++ ]
++ },
++ "status": {
++ "code": 302,
++ "message": "Found"
++ },
++ "url": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944"
++ }
++ },
++ {
++ "recorded_at": "2015-03-12T13:22:34",
++ "request": {
++ "body": {
++ "base64_string": "",
++ "encoding": "utf-8"
++ },
++ "headers": {
++ "Accept": [
++ "application/octet-stream"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"
++ ]
++ },
++ "method": "GET",
++ "uri": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"
++ },
++ "response": {
++ "body": {
++ "base64_string": "UEsDBBQAAAAIADSXPkONiblWuBEAAIKCAAAUAAAAdGVzdHMvdGVzdF9naXRodWIucHntHf1v27j19/wVQu8H2Zkr22kPK4JLcbdDbyu23R1yLXBYEBiyRctqZEkTpaRpkP99fCQlkRQlUbLsbtgZyIct8n2/x0fykQ72SZxmFn7EZ8EW/jj3KMVBHK2CaBtb31mTVzNrMb08s8grYI3zKMgyhLMLy8XlmzMUYqRtdsbf+0G2y9evzrZpvLf28eauaJi42WY3s/5JPmIPoRd28iwIcdFm8hcXox/Jz8wKY9ebnp2dbUIXY+sDafvXIPtbvi6bcGo9tKWQCCdBNsEo3PIH8PKtq4Igh3e3t3Fszyx77ab2tGxIcCCCP0VJOvGnDoo8/ED6Tewb0vz2LWnZBjOL71B0RSEbgHxaXH5+fms72zjdu9kk8MjjKUdQcrOJowx9zlZ7N3J9lKqMASSViikoyt9VjSi1O2e1Qp+DbLUidIPwJ1OpASczwEGEMzfaoIlPtCSDFrmv4Dms62rjhiHyJioHbp7t4jT44mbEzlT64a2TIpzEEUYTW2oryJA281E2sXdZluDL+dxNAocR52zi/VzqiOfLhdqZ0XjtBhjhiczVuzSN0xnH4UiQZtZyUdMkp/nfOeHOYUwTsVk/ucQlzmSsYewHkSBol8heh2eiQSNowq0UAd2w84PYWeEUfG3FYIAsGvWBeuliZl0slgKmTZwgTLi5sem/S3Al+t+FfasIoeIVTX6OI+LT7DeDoVAfxaohNciNUJgTHgFvQrh9iFPPrsMcLst2ZX9Ic1XXRSMiQUT8lXlYb3PQieiq4EoJDTsEmu7hXlSLiz5ulSRhsOFOtXXv0Crw5jTK4bkthQ/6st3NBmG8oi1UDySRbEv4fZK6Ed2l7h7bl9aTvQkDFJH47ZF3jP3iI4w2Kcr4x88zGQIIgDwiAZ3RBxZB/+W9plX75zOten1HJ0rANa0c28BKOTBQf8lLM1k9SGmVa5e/E2xuhlZ+gGvDomIe0KRwdGmYK0gTINkewps0SHhwsLdBiHCdKXE4qRwPIGASfXHW399UvgKM865QRtvUONO6ZFBjlyEQvZJaRo1TIBOeDBsumvCWQY7kDzRf0cj4MMw0haBJmROvP6FNpgyPHDcOsjh9tGlyAe/l9AI+IaiyPI1W926YIyE5or2d6xLGpBY4IMebMA6nxUAsZyfG4vkQZCES07S6IQaVIVIg2HkPfw43xTv02GGIpIXeDI3TkwqVbI3fiNK6q0kLSGtszvm9O8yOtO6kp8T+2d2DP9p/J/Jo1dVdpSvQNHZIj8MVBcbSoSluT3LSo+MwrXFIodvXgs+0MJjOGv3kAD49FCITg2QmcbF43RUWm4MEzxbKWAEmToME+UeOEeSDphBR6nbCQgEFoo8E8mgpMEpS6FIaHWglIzcBqph6b31s4zCMH4x1ITVI8ub8DOQ2Z8CDyJ/jwN+790Ga44vXTemX7bmZW6RSQ6MQQwkpv4yxI92VpMxl0pBmadsq6GrqNsqH+iRCfXJlmtSwmWeLv3OGKBHEuNpzIkN+ssCP4hStMrRPQhKBOrgrmvWZX5dI5kVvPP/1keSokchu8awKiRri7Ho/LqaiiUNklWZ8leTcSR5vNrF32zfvraPGhoLBB0rG0ALq5BFzCPsbQIBXZQgYFmLa+FNCDPXpmqcbBw6RVhI+9NDa44bErkH06ExcWsCXBPZVCFhwSmaHx1EHh87esLT5AIVwaEQdUjLdpJVmuRVMC4nm2KopUCikDhsJAF6+hmns+niqYggStoQyksJKok111izPiv9jaq3CotLbU2F95vp9Bm+ae0v507xQQvKoXepiU8f5UhPsS8bVhQOWTErZp3liPfIkXJxzN8619ZPs5WHTayNVm82l+3oj6aOmaP28j867R94TkIwG+H65rNvJEAesJx18StM6qTbzxAylK4KeTna78ipuNrTTFYTpvo4JFhvU0zKY0jh54kFWydaRr56eBdVCX2LLEfqcFQJQ6J62Ts1JE5PZeZvAvrI0yISJcEJme8sFvJ6nPWRDu16xjqPIifWkzZ3As95yoswF2U1zQt4lrk/JnprIp+jARPR8bHOo+w91wA7/4eF3kMVQ+GM6DiO4h0GwEPOR/B5H04yA02m6L/2KjqWN6Z5broM0LmM0UD1bER6ajtaZHHVwJJC1hiCLtdUcoe2YG+iUALR3g7BLn6zRIa475yBOoUWGakztUYg69XHp1dVGH9wwwdm31tWVZfupu92SBDkO92RKHt9/78NDkJA9RG/3KMo69QaNhqqNYeivMdpPKyxGcquN0zaVkbMuzjv4M8S62QrICUYmecpVoj2JvZfYBDDm0zHKOi+1gv/Vciv4rH27A4YUPg1jwORpWK6zhUoxylp4VzFX3j6gCZ0a/L22r9I1hpdt1KgAr/t25jrZue9mp8/KpmxyIwtD51qdS7XHcS2C9oSuRbANHE3+N9yQrhCP7obH8iug9tR+JdtbP0ehG2JmG3VjOQlF2d9BfJ3QGfmN5tG7PspolUE1CW3uzChrpWVnQEvnXmjv1V0gLoqzYFuUHHZoX2w71AokfCeJjRJGFZRUWNiq2myXItfT6VcWYaueGZBK2VJX5wN92tMEtZNvwhGZd4NqhIl3B+FUkWMgJ/9kwSYgwwmEo75kSL2vehAl23Wc+mz7osuoi/2LQdZMsOBi4yJ5nDOEfVd/Bth0xR0Zkkv8ndtRgc58BUmJoNrM+KAtB3gxMdDymG0QEiqImdikaeBHiFbuEkQZLB3ZmzDG7KPQXaMQKpftde7bclEye9k4TjPaiRaG0V5ekJJ0BgIWxbBp6MiXbe2LxfLi5eLblxeLDxevLpeLy4s//8t+7tQn+1Px/8lc0DPr/Jx3bxP5p1F2eSgdx3eLk/kBQ2S4CytIs6YbLpPp9A/Lbrdsc1lWZj2e6UIOeQL7pRn1yYxYYGoESxZF9Ic5j2DOokCPYdOw+3ECmx5acWEbrdadompCZxCGLyadetlFTdmiMuS5ZJVoOSw9OmZ+RAVdDyW/ZXHynpDJdlFksbayItQaaW0Q6jSMjlIMD6eA4iTzPUA0QhylIpmOVboBE4UOAZMmhy2tUCbplKS9IFaXmOKy9FLgGD53fkl9N+q1cWduE5zWQ1VF6R+B8HpcPmalTVmbeIocg+IZwSuKMp4x6nSM0amLeqMVCWmXL7LHhGYYsIai5iVwCNMWVdFEMetc9r1iPQetZND84xTGqGQHxqZ5oMQE/moj7kFibCX6BaSgLy6tFzwFffE8jrR6Z5Z6zoG6q5K2aWvuM2aJFIWxAuwHGpupzNsj0rAgahxYvpaUjU4rHD64cDSDhpcBY0PB1THlCK8hm5X1rcqDNyqHRIm6RnrKtjYUdsyJuqXdJXHFcsXjFUe3XxHZwLnDEDuWePzDmhutWbNoAC+7SW+D5P8VLZ7Zjs7IfW5X9Stx9AUYvrMiaTpc/OWwCssrS9tXj4Vfc/WTe4d+gULKD8q1JLxoU8W0Q64Hmqda/aHhpidOZUGVTXFZCipG1zfWx+ghhVvHIiqfmRXFmYWijKRn4aOF8xRZu/jBymJ2/1i2C7As0L2b3nnxQ+etVOlmF9zXzssSTTabZwG64Ri2FxDHkiwAjmVfPdWMyYbbvyBx/YldV7aPPZrb+ts9vOXXg8Enkitstr7sDdVSZON5pVIaUscCMUfYjGUqHttdF0Jb0ePmPRNkI8nOU/dBJ90bdsL9lkiZ0q7acMkm54yA0Y0G3RNFFR47OgdGq+Cs3xZUWSDK3A7rgyZ9Djop7eFt5YwUX9voAw1m1Dx7JpLxJos3blea3uBKrXvaDHBjJCsQH25/FS/CUo3BKtngDXqhJ3lQaUnCb+ua1xVH+oy34JSQIS9fE1DrfG1yp1jtzoo2ByZ/BU7WsfcI98iR5uQ5DW+zcsheI90yO2uaxUmwgbYFGgHFNo7nazfltdjzJMe7ZkDgmmt3cyfCColJhTvCxRxYsae32ij+NPgCDVHAcKlT8dPvAK+kJgFIr1vL2kDyOzILqaDP7j4JEa29hzu/4rgnLq8Y+m4mdzevL29n1v3U2sapdUf+s4KIWsOtEbvn51792PdqZt09uMT4C18SK01X8KDGNxstADfrqT5n9nnFnxaDi/FY4d3Y/MI3OiDx/yXrd9wkQZE3YdbIW8zKtvUyjCZx9BHD6aQgBBV6To9S0hFUoGmfsKrZTNTtIAobjIABz5dvBCxJWlwNNGAydLLT2Ylw4ZQk0bbtwZm1fNO6FpgI91BR0Ti/kt/XDLQalLoUXcnCZEZescdP/XHmBCgt1+7RPuph6ZYINMSUxH3WbmJbt2lbVDDq+VKMIP8x28YPke9uHlnbPk7H+s2fFs/zpyX5uSA/r8jP62et8z19+1zedVzs5dMoB5SqUwtttYUETrJuodqDuwOurcqLCzRPwr2jz8JKOyOrUqssxnYPK2nooLzkoKK0de+e4r5Z3Fa2wQTv/IP+0d9dSG+bLrtKqbH9HetovdcpvM/ehShFm2IoTthefH2hkrR0mM+YbG1xl9HdYdLmMYqrlO6g8RaGobh0Q/EUufCjUT/VLQCibvjVuqEb+Xn1iXI1QF1dfF+oRzBrMVqIa3qbLTrqTfZaFrgwBkAfuGomSYN74J1OxMsH/FNjUzcVAd8Yg5UE+R758RDEqYfSARiarUHQvJ2wu9hY4VxlI0v1qggzWitwyx7XOrTYLS/LA9pwjUhqyN1xYQRLL9TM6DiGlkX4ZrFufLugEMtqx68obM4akNEQo01uzeAxmm0uHDlGF0vnDcnMkFSEslgTF2NcvXaz6KM5bwjtm+OwfLpPjMNFR30c/qgRaovNmfMyOKD2QTGa6xgmQCY0GSYrBmTwmPkpDqAkui8dTPy887FEJUWavhRK0cGEHjV40MslzIIHu4fiVNGDYZu1XnkxlSNEzeIZc60QOsKFUagwlLf4RQiKwPkmIZkKer8Lr2rh63flVVOD8kUL5wCxc7uTWeGN8GUT9JYR6EuiXc/e1coeh7C81YiAllWRsBDVVr1yl25SuXeIRlTrB59eHaLjUwCSu51c8q3WGxvAvqRgGZW5W9vTVaBrV1l6w68EQKLioB2ErluviztQu1dqpBX7Ua6/Btx8/bv8Bqk+6/ZUKMb3bfL2ZutKZo5Z7K4cRzPSlae6paCvorOC54MUVwquj/bKTiOqMI9M7pTXa5Ddb29647O+qqYpBR1ne6zgrthk6qWkUjRG2ilbt3LUrY6hgc5EGUWsM1CFgTsdoJVDAx8XUw/n4T1G9ZyDwp+Rvroi4Im1NkboE8XWT39HCX90VkHzFq0Sa7ywzdCJ/d6NrB/JFIJMH6gg+Jb292V6TD57eHhw1gRC8Z78SdzoUbMwY4cxLJXAHjQINZBC1TiVlM1QqjpKAEEFwoEk3mWN1AEVmfovYKHAEk+FVbsSS2MLgtLOQSN1wLwDJZZt3jU2ISQ0tIBHrBXfAFzR1QuOUjGkJgtSbuI66DSG0RdCUEqUQeiwW1SNKO1/3k2k9wAKKxVk2zdGeija9VeGG6JPbuSlsR/v0RdRHXk1g2YKaG6apY+1Hf10klfEoM8blGTWxyjYxB56F9HfEIvlbhTdlk7Tr5GfsimVtXFzf5c51m8IWb9eW998e+FY8DVZ2NrnOLPWyCL8v3zTUONs2Rai+Mqq3VK8X9DA+tY2sX5Bui9w4YIEjIdV49W+7fddlKE0Sclgp/veXzKF/ZjUmMwTok8dCBbXpg7rpnJd+1pfAbdaayYURF2+WbxZzGvSd719EMEsuPMus07LbsJJVDO/fzVHJZlzim7u0hqagVmDQHdReSFDMr+pqjGCiLKhR+umgypPqRuqq0vCUjYfxOSFbMazVem2prlxayA7lDduTaRmyt1Fx9eqmKx9q8zIJYJlu/+qmjjK6P91ZWAtwv9GwkCOB0d31r1nZOc4lXbEJUEhhWFj2kgc/OxhAYgeDSgCD0P9VgVFcA8cJkrS/2TZMFh/wrpzNZogTDAOi7tMMOOQW0jZlGqOexjhxPLg5AXGrt+1BGBKPoB8yUEaMyHRMYwV3nssLRTgjFko8ZuS/x9QSwMEFAAAAAgA2pkyQ09Xx/3OAgAAzwsAABsAAAB0ZXN0cy90ZXN0X25vdGlmaWNhdGlvbnMucHm1Vctu2zAQvOsrWF8ooQ4V2YmRGE0PLdBjLvWpQSDQEh0z0avk6hAE+feSkiyRtOzGqCskgCXuzO7MkkueV6UA9MRhW6/nHm9fUwoMeM68jShzBEyCJDXwTKIu4BuV7Lv6n6KspKnneUlGpUQrFbnaCkZTfxcRLD2knpRtUBzzgkMc+5JlmynKGWzL9J7m7A6LutBY3EXrR9YVE/7AOEUaFpCeZcAHA0iFEGji0d1OFSlK4BueUOBlIUlXoC7cx+YSDhwiWnHF4k+2AJVchqF6Jy0nSco8tGjDNqsMF9Hidr6IJoHXC9cGxux3TTMOr416Qyf8W6HKdqYaYgm/QzDQE66tiI4BPmmAXa1qJ8R6MabgVvwsy0JRGgwEylh/9QNlTPXqB1bsAzbZ8KPC4tllNL+IZhfzaDWbL69v1d8v/HFPNO2eB1zyQgItEuYDMVNO+w1Ndj/c7ghWCVdnR9svdWIDbTD+0laCHt4u3x+/YrIpRa6s6sHObiSyXj+zBMgTAx8Dh4zpLtpFpCxjwGIVKhPBK63YramhFExWygzmYzxFs8srZ9u2NH6/hT8jHJqcuMs7vhvIWBVOhrxMXuIWqrviu0K4jOuiadS4pWa6IbYx1lxqvzvcORUvH3Hl2qm5opBse1OcxaQsNmrPvb0fdaZJfaIVksEpDXX6ZCuo4WhTRxVhteMpXqofXfSapep1JWo1vDF/KkrRfPhBM8ne9/Ubh8razq6slrBhCaYHDu9PA3CqjeexUJ++U87FIfXW2TiPXOMKNYHnvEhN3o9fp6bYg3PZKtkagu31Zft8jnv2+mZxFd3chBMr2+6ZmAn37uIj097o+DD4TTLVbglifHSfYVofmM1mBTvI6UO5O+7HprKVyIAMw9mOaJf3Ux09sPVaTSE0ytcj1zrpXokdcgw64PZH8Jmm7n+asSNaVMnmRFXbEt2XBftbx/8AUEsDBBQAAAAIANqZMkP5xhXWngIAAG4IAAAUAAAAdGVzdHMvdGVzdF9tb2RlbHMucHmtVFFvmzAQfudXWLyYaBSxtttDtfShVbVN2lop6p6iCDnhoO4wzmyjtYvy32tjIOBAN1WLFAnsu+++77vjKNtyoVBO1UO1PvOofRXwqwKppJcJzpAyj1GlaCFRE3BFJFzrf4ju9aV9WjRJV8864etdiKhMts9nnudtCiJlHfmZqi/V+m79CBsVtKmzCw/pXwpZXSoxRZNHyctAQpE1t+bH0bxlGjGeQiGjPmB0SNztZ12Wrg2aMpW0lIqUGwh4+BrMbITxNRcQtKJ7fCWoH1uXpqy2IIJhcojqoMgmHMiZ0yif0lWXNVqGBgnYCreowbBgrvA6Op+h+RzhT02Zk41GRkSh+GkXXzztL3GUccGICmiqY92CY80QumA7J9EC5JaXEnrKRPQAJAUhl/gbkerkO09pRiHFK52IM87xWOjNPcltxJqIfoQgv/WpM2MB3u1xBOVGmxbMEM2amUPaQkDmss9Hd19VMjHBGuo0jr3u0gjsDIysXhGamKM5MncjklxNg+hWVStr6O6a8wLIGwweCvrw/vR/+DUcTStjQagEGbQzaofzRgguws6zRkWIrG8hOo/PjwaXKCgoo2aEGaElLfOjj8fAiVYt7jKw+82ACuxDTSqpRIHeoTo+aRPcZjRUR1iY1nyMhxUY3/xMbCbVZIKxvVB7MLbIkkTjqiSpOYaIgXrg6S1hMMeiKk0CfmVj9KydRR3UAcTx4m+TYoOccTmPD3oZSElyc4p3fvPiXyCf+SHywZCR+nXpg7/aYxd2fNIalMlha+4dknWtqW1ozbZV/2Ul9vffAb1ZhD1ItGSrS/ejlGoKr73pw2kzEXMhGolTMB1E1Nk/H5zK3AEkjPx5yyKebvxU9w7Z8Ho3xNF+hL4cvLzlbatX2HsBUEsDBBQAAAAIAG2jI0OJaPDq+QAAAPoBAAARAAAAdGVzdHMvZml4dHVyZXMucHldUMFqwzAMvfsrdIsNwS30NugOu+3UDyiluI3MPBIryO6glP77nERJl/mkJz+9Jz3P1EEgCF1PnOHjnjF9HpRASnOV7kkp1aCH3uUvHV2HNXTU4L7iyrwpKI8x3zgC9Rh1VXRy2nwnipvH9llZT9y5PA6aadKI4JVixpj1IHwe/yc56cN+snx9W0bXaGNT5tBrM5JDRnaXFgu7OhbD0+IoMkLzwyX2BzkFiucQPcE76F0NW3FdO0tlMV7LxuL1z28u1yQJQwJdtqiXzjwmMbhbOxg+nuqPdEHlCvChoFCSTbYNKTeBV/nO+YvKcaCf6mWvCb+O0QM26hdQSwMEFAAAAAgA2pkyQ6jYMBFCBAAAMxIAABMAAAB0ZXN0cy90ZXN0X3B1bGxzLnB5tVhRb9s2EH73r+DyQhkzpKbNgC1YHrZg3fawYgi6p6IQaOlks5VFjqTSBYX/e4+kZEmUbclpZyCIJd19/O7j3fEsvpNCGbLhZluvXy0KJXZkJ7KPhPsHkpls628b0EbHteGlbp/+yjTc49+KlILli8UiK5nW5C1a/l2X5QP8W+PXqDVb3i4IfnIoSJryips0jTSUxYrswGxF/obt4I6qurIAtLG2H11LUFEAuyLWdxkfoDqQZeeJJrFEJ3LXBukuddwnaNlH1N6ny8CXSY6u0dXWGKlvkwSvYw8UZ2KXKJBCJ5pvduyRq1q/vEkOyzwlVwes/ufKEUiuf7xaLg6CaDD/SKfG3Li9x6WhHqxiI9IPWlTR0gPGmx4bu9cperCSm6eQlXyGlpgWgAnT43hHZIcY8xxBaSEEDUjkLekegQYMtVe9eNY2w2JtmDL6E9KL6M828WgY1sFtCjEAs0GSJsoRaFYKDaPtcwnkoB8Y16CjVrbfufmjXv+mlFCrTpTYoTTQB4BSbDjuUnfX8vGFGYv1B8hMdHI3VoTWMmcGVcAYSS1vBxlZy1iBqVWVPrKyBtyCt6qGgUm4cZ5jL+0aHG+XZqwsIU9FlUHqdBtVQC8BuSmhH/5a5E/I2K2QjyTOeVEcVViBlqJCUpSpbMsf7ZYPDDbQ5D0Wb/AoE1WBYX8e0KRbYDkoTW+DB+7hL1kG0uAzyqQsecYMF1XyWOVtX7BE6cBvv+i+nSwJ5xctyXdYCHTI0nbk1NvjWjoKpeE63YHaQD6hD12Rly9uzqhDvic0cVB0eYZpt95yFtHjVG76VM6tQbgmr1mp4UJVDKgUm/QOKqMnlFHwyOFTa43knPedLYcpudoV+oplmFMV/Ndvt0M249bINa+w32DhRNkq6K8Pjt29d54veb+rZUE385CkwRwVm2PLta7hpIIXnKrXP43O1U56bzBXeqdlyauP+h09KP/+mPSd6kEcc7V3bjpu/OI/7eU33QOHeH4LcHE+mbyWIb88afkwZ8danMpg7kTshML/8b27P0+XYYgFL2EqQru+M7woSIfcD7E4UZaewtm8KMKatJn+Gv2elwrFmeGCWNhROrhmOCGT79y2yb8YzYUnmvzAqj0NKY4MDE+4N6KCfdDCL5ln3CLhGVCJdkwIT4920gkEC/AuPXNsUO98RO9dcD6FUVCtGWqAB/lf7qCh+6mVW8ML09zNajNHl2ObN2N+6Y8s0xOKI0T354YRz/lZ04gCIaH66mHYw5yahtub324YDlf+X2dcu8CoxD27Ga3weIkfsuxcnjSV/Zk6ZjZH7MFBLS17sbYX2JmMe+RY7r+mA/iQpjZxlH2NEqcmv0ELmURpIqSd7BelM57NoKTi4993c0afnrudgYLGYA2U9/FTynjKUjNnrBZn/AbDhWbPy0gqP9SktSpRjfadRu99xqk3GXaF5PrVDyjeF1BLAwQUAAAACAA0lz5DaMYr1+QDAADdCwAADgAAAHRlc3RzL3V0aWxzLnB5nVZLb9s4EL7rV/BGKVDltLkURr1A23jbAgu0SN1TEAiMRNmMZVJLUjbSIP+9Q5HUO113dbApcr5vnpwRO1RCaqQeVcDs8kEJHrDCbCVHKhUTPGW8EOgdCq9idBktAwSPk64505oq/QYR1b4EtFR0VswrkfTfGl5bpVumd/X9VVBIcUAHke09sCI629ltJvzmh0fg+vLVbntqf7iB9UeiqD31ihKlZZ3pWlLlBY3QF64oV0yzI71mmQ4CptLq8Qqtpu7/5dwPgiCnBSoFyUNODtTF4wQeGGt3dtOEo7An5nkARhPYpIEVUXMgKdjD0YNjbMExRCCnKyyx43aCoqI8xMZXtTBki6fLZ5wUQh6Itlot0piYlUQp9AFcNG6GPkiJj45jtnFPa1mCgXindaWWiwWpWGJPkkwcFjhoZI2NiuofVahoWUSdc+Y12QKBy2LyienP9X0YDSWI3CoQGm9nghew/YRJWYpTKmnOJM20wku0kTV9Hko3tbGyZZGI+weQDLscU2XypZLvdhEj7M7wSKnbNnn2rFAhRGqwrnVWUyKvxYnP+usgouojSrFl8+LbxJ7hWlGJwbAK8nMSMsc9uOFMYZ9KbdwYE9mTgQNJBlGjOWKqCVYr6oLaBhh+qsde5E0uYrQ/uZxMKFNzEMxqtpAVGkpAw8A50QQjxju1ne1OhinGIc48o2ErdGuBdzHK4QpGQ4x5oMLRPkZHQ10ypafQhGl6UGE0A24y4G9fXh8qFT7tl+j4HN2+Xr56fTcL8P4ajTZIXtNAvGtzc+CxkSZoI7IBNqflFNSJNFH4TXSd2n1n89xxp2DfN2jfUzQoBuiXVKemMF+4t+avq2AQr6BybXbjpqWltqVB1nWt0sx0tjeXlzGiPFvhWhev3uJ4moQUMipXfxOIcIwuLnaU5NCMe/mVoLu9+DdebWejTHoaTYl3bz0ZMELkjJvmBctBObe2D8Pc9flWYNzs/QOh0ZSbJmPiCX0/MlOItR2jp6xx93cM+Baa/V3b7d1BNEHIRJITyN+40LhR6QHWYYhTNCrk5m6a0Tc14v9Szt2N/+DqKKbwl6DRIGuuUMZQtw3wmakf+up68Q6Y8ZseSVmbSpJducOVpdoXOwzRcdf3Iw9fr/9Zb9bYCs3Pv+eOdkv1GZyf1htP2CKbuXgG9tv7zcfPU7RQ5yj+9vX7jOb6LOiPKZILndox9mcDr2kOHY0Vtp8eaymFvCFMOc4YFTXPoJHYuXdxYdtev53YTyxrbcPUwFU4/KZpiC1bOCbrPrvGJer+nTrbJ4m3LNvVfJ8q9pOeY19dURmO+OPG7Mj2mI4uCn4BUEsDBBQAAAAIANqZMkPatWq6QAIAAFMHAAATAAAAdGVzdHMvdGVzdF9hdXRocy5weaVVy47aMBTd5yvc2dgZocC0XaGyoFVfm6qq2hVClkku4NaJXT/6FP8+dkJehqFUEwmR2OeenHvOjcxLJbVFO273bvMs2WpZIgvGmsxZLgzizT55yQy88r8JEpIVaZIkuWDGoM8eu3R2LzX/wyyXVYdM5wnyVwFbRCmvuKWUGBDbCSrB44sPrIQF1q4KFPiIDpdxCjQ5IZ6gUJ1mHVlPk/a1HpIxX4YWbU/1o8nGIkMTBLPhGk5jGsU9y83eWmXm06l/zBrKLJfldFRrpnezm6Tr14D9oupmr2+rqfn/TjpcZiX9avxK2lBmu7RXFCKl8N0xwe3vWBl7nFl+DMCPyEDwArF+N+OF5797GP4kwMdKNSh9orKp67bqYu+bZdqan14+wS+WY40RawECLJzkErg0GOVjBILxBD2dPY9yGFSGsTgS9zHV0j4xbsCQ1sm33L5zm9daSz3puz1SRfyVtDRnQkBBYm4hd7wiD7vdaosYS5l/ow02zCeJvXCqYP/0Yhx5MGYWvUZJYwe2tHueOwzV324hXNjkUoHBc7TCzgvD6277MGbNZbUN5TjweHz4OzzC86bZgbP1R+o2NFhBBv2fNfho1e1tkJGOsJesvj7B4wtSxA16w4SBq4ajkz9sS5AgctVavR5HssKsKGi75x1eYf85yUEQl1mH1TGzLsfEUcJdrqsm1HWdr4ZS/gB6MhiHc4IuUYWbc4oHqmLB3laoa3EzNWj58T0+g6FOiwYXTgJ/EMAvVioB4RTA53TeA1BLAwQUAAAACACHtdZCGY8HIS0EAABCFQAAEQAAAHRlc3RzL3Rlc3RfYXBpLnB5vZjdb9s2EMDf/VcI2IOUwVPsOXVTA30o2m7rw4YAzZ6KwKCls8RGFlWSapYM+993JK1vkZY9YAYSKb6v3/HIIxl6KBiXXkJlWu5Wsz1nB6/MqZQgpEeN8B7f3xMBRnpg0WMlKYiM0rn3B8vfkywjuwx+R+lsNosyIoQ2fHf3KagcXG1mHn5i2HsC5J9FICDbH79UH/VnqP2/Na4D/wgWkoKGSerPPVJKJgqI3laSX6n8rdxddZ0kKbqo3YVCEi6Dq1kdXgLhH9hTbiVAE1Z0LYTcYvCUcfoCfTvCE4ERAz9jCc0R0y9wAJ4Yj/H9iy8iVsDSf8DvcybBPz63Jc/CiB3U3/68dlZ9fL/Jqh6HmuBHFXOQdqMQIgBwuY2wMhBvn9BBZdNNSiOflRDWG5rIyrMpV8h2XyGSQbtopjxobxxdeUR4+nXTyTfBYJWZAerlp6F0Rh4VNMeK5hEEyby2Ms/BdGjZ4ZBPsf2YS+AFpwK6XjTW5FGF2suFA4zfpFIWm+vrJIWQ5t9JRuNr/7xxb3L5vytw2Sh+2awe+iOZUCFto7f8eTUfLhJtYVkfSja5iOiQJjnjsJVwKDIi7Qv/7hnXHdZxjGbgxMrW1/wPpKKPaucRQcNyrLAdSYQGBieBd89L6IFQLPsWFbYcCmZl6GkNh6KrMDYMPy2rRmQBKNHkNIDRcgBohbMB4Ds2AHf0o4oltJGeHXfPsow9nUq80aqawjhErTfGUXeuCUA0TyYAKa0pQKh3OZBqAO7RMRoWAi0ci256tjO0mstbKkQ5XJx1H8FDCXC1HeiJTyXjz/WG4Pw9OD60NRqs0YzbYJbe1Nc71ZmcMRq00XFi6ObkfnkiJe3DlYtSmNxetYXqBONtbQA3rNEJ3JZv9wpoFM+uQCuGdejVSZlD7FwflY4b9Kh1+UIV5S7itJCU5e71ioqi0TxB1da9iC3igLug81Tix1AHQU9/+3uagfA3eBMwbw//DKdB269l3rZUps9cteKmdRt8Lkemp3ZgW0lKOJnlQPhjPHLrqnEk/CXNZUj//EIyMbJgajcWqEo+mYtFkkVkUM4qXiW2HpKOCu6DEfYbktMXoiaFNVJbxzqR21qOKdzPsij1ceobNmD7zJ0wITp+LCVo60wuQ7PjTcQbsrVcWMgajclcAgiP0rM2bvXEBmiu+o/wrO91Q9yuZwtxR+lcaPd2VZGN3Fo69m6ySbtRH2z0dN7fR61YxtqNZT24u7DgQGhmxdJSB5axdmNpnclYKglbt9Aya5dQ0jO6A8fJmtEDVcsQCfORE/sP3n2Kva3g5m7iEY9DwkEI7EMezT2Zgvfu7lNL/zOAd7uMbheL9avbeHez2t+ub5Zvdm+ixev1zT5argmJV/F6sVi8Hq7UIREWofe/xmCkB4xk0s/2Baw9WImsnR6F/S7/L1BLAwQUAAAACADamTJDtCBoQp0CAACaCgAAFQAAAHRlc3RzL3Rlc3Rfc3RydWN0cy5wec2WTU/cMBCG7/kVFpckUjAL3BDbQ3toObSHFk5VFXnDJDFN4sjjlFaI/95xnOxi71JKKbSR9sP2zOuZZyZOZNsrbRj+wEiW9od/A41SdbnsSsVOWXKcsUV6EjG6pDMeOmkMoDliAteDCBqEnWbRNK6kqYfVcVRq1c4DjkYPhcHZ560074bVmQEtjNLO1GogH4xs1mavBcIb+jiDVhVf55VemKKOoqhoBCI7J1dfMpldp5QugbIGc9EnCE05TdoLhx50si2QsdGQO6d0Y0+zXPQyH3TDliyujenx5OCAprhLlheqPRiQ8Ma+Vze05HG48GclzQWxz9aZt1u2hjmK8wv6ztZa912jQpVGawoWc16DuCSNEMZ9sUjKaejMFI/kYzTzSoPT/+qX0YAR1TLeK5VaCb1S1YB78QYrVRGorJJPkfEKTBKflfsfVAf7722145QtCbivEOSloddhUpP0eolLJ3TqZ8o+3yxuM+Yq9+VVzEulW2ESL6e5MiHPDr6bLZqjsQbsVYeQxFY4zlguacPluR4gaCqb8d16B8uF6koqz03cCy1ajE+YRZNRBzpiNHFze+v7XL1MbwWk3dbcMklS3qhKdhb4OJ4K4Gb9YO3tnTsJOpcwCRkXtgly20aPJp090H1/kf9WR6Ps0IiugOQugF3Ad4OU3Ma+q/X/gJ4N+QF4BO5osXheNk5qDPajkAiYfDKqdz1K0Wdjr8wnTBo9LlPojNSQX9eygbxRavvI/xf35ZP64mXAjWc8HaGiqAHzxX+BzfPZ8Xg6/I1zzH8GPvXefNYSaCiJcB2iv6Z43CsPV6srKEwSvqzE+ViIPKenJL2tyY3vhh6f1VNvUfLZd0qLzoqmgcvkTvDOjpzB5DaHQCLQ97vhgT1+AlBLAwQUAAAACACHtdZCAAAAAAIAAAAAAAAAEQAAAHRlc3RzL19faW5pdF9fLnB5AwBQSwMEFAAAAAgA2pkyQ0yVvcy8AQAA3gQAACwAAAB0ZXN0cy90ZXN0X2lzc3VlX2F1dGhvcml6ZV9vcHRpb25hbF9zY29wZS5wed1STW/UMBC9+1eMtock0sbZdiUQlXqAHuAEB3pDKHKT2cQi8aSeSVfLr8f5ol2Cqh44YSmRZb95894b27YjL1BZqfv7vTp4akGQhXUvtmGw0/0Hw3gbPqU2m42qRbrrLJuLupP2aEqpsaSCNfkqQ5ft9Fu9myG6lra5mOF6Pvto5VN/r9icGLigDhmMR/D40FuPJQhBEXgFwTgwvdTk7U8jlpxWi4ISH7EJpX4hLajNHvcZDfjsYqpPTerwmJ5RQGwExLYIdFBHb8W6ClK42l3u0927dPcmgdKyqTwij5aVKhrDDHchmy/dQGGar4PqeIkmuVYQVomHMcB86Yf5MWjLR4sxY3OYgcMKzHBL3akzLMHymP7QYcoGxsYLdigNQXNHjjGOzuxE20F68oSd8ryBb9G4vQyAaXcVff+DstK/lcafyeEWpv/EkZyDHUlemKbBMk6eeEzotOKKekY/9A3m+Ei+jNac4QbD67JsHYtxBcZmu7zFkYr1++c+V5VzKA99CE1PwgIb3PkeV8lNoJAgSt5S8eO5gxHSUGVdnLxsax3RzeLqpflTL39/Aq8Z62sG9i8H9Z8MKFG/AFBLAwQUAAAACADamTJD4pIpIFocAACbuAAAEwAAAHRlc3RzL3Rlc3RfcmVwb3MucHntXemX2zaS/+6/gnE+UJ3I1H10v3R2xh7n2E0y+xJnPkyvnwKSkMRYIjUk1R2nX//vi8JBgiBIghTtZI9O3K0DKFT9qlAoHAUGx1MUp1aUPAvYq+Q9ebmFP849jpMgCjdBuI2sL6zBbGiNr26eWeSHFz6HQZriJJ1aKMnePMOHBGuLiTZ2Qbo/u7Nn2zg6ijeibIxPhBn6jY9SnAZHLL4S79m3QDBxzmlwSESBwUuU4Ffk39A6RMi/YgWPkfdOlDih1NsP6Ueb6ITDZ8+eeQeUJNYbQu1HaDpIo/h9RoiL6+OttSE4BOlmM0jwYUtI4HQf+T+gI76143MI9W1eGn6S8wnHgyLVoQVVr5yMUk7jKq9IijgAgnXLsHAktkCqgQ0f21dXzzLWEpz+fKJ8GXLAKhg2mn3ppNHm1yQKB1eMjrNTKKBTQAjY+zQ9JTejEXnrMO06XnQcUcKjJNgd0X0Qn5PpfMR175zej+xcHNDsBvn+xosOB+RGMSJ8lMRjXCWnKEzwwLaH1nQ8V/g5ndNBxtjnli3TK3JiKzW9KNwSUR5tYnPIvrF+iEL89EyRNklwnP6IggQnAyHJ10H6zdl9HcdRPMxhdVRphpa9jYgSFZKHaBeEkl5YEzV0BsDYlRUk1leI9LoWFe068Wn/YDSIA0gGV6pyYm8f3GNVJ3uMfOIzKHAEwRSH6Qs/SKglEToER3sbHHAInQbEf6rSJqdPlToeWp99xikrbO5wUb8pil10OIyOKElxrNOpcz6BFxk82kkaY3QkLL2Jz/hJUkQZOi6sArVagXQa4l32TpCAjAOmXxPNcPKCe7ukfi3lrBD59hwegvCd+kWdJiXM/3UmGiV/03Mcbu7R4YydGD0QF4HfDcYlF6EpveGqhr/J+Yh9on8ziODNhjgVeNcNK9KPikTaNakDUSnxR8ClNe7fgxM17hiFfnSM8bYsrAYoXosARWqQkUpTuWRAf4TIMPJko7LkAR+IX2Wj9sB+HD858LXtbKP4iNLBZgOuZLMh41E0tDzSoVN8C/1Z8kkZEUpY8iz2g/s5MToSuGz9YnFJGL3NbX0JpIgPBBuPfIn9TRR6eAMtlhvL6mwBgWggf+A8xEGKK2m5gtiGjkiqQ3YPkdswQkIR2TvsEYzVMw+768UST7eTOb5eLq+32F/O1nO8WHvXaLK4HqPpbDLf2vXGSYa/ETSQjGzyltCWAILPSVM5ooxZKKPYb5AEYZIiIvQAygxFbAhRhPOSfFKqQejFtCyJaYh+0oQB/8VLRViTQc0lnYOYWQOKtJBKWoWDlcJJPhLlaBShYG3apRFLg8iQh2asjvOS/jF39wXErqxbovwv8ijPYuSsO8bJ2y/VeIxEcMcgbUCHFSpb2Wrpe97Sc+fu9Xo5Hs/mLl5P3BUxMuR70/USTSYLhK5XDVbGyOtsrAxXjrHgnFQQELKPaJD7ir5saSqsPv1D3JoRKKKwBA7/ZBOAN5jM1uP1bNoMAKmRjIgrzLxgTuaqFSIZ+xKBYckR5j85dKRwhh153R68E4oxBzFpRo+UDsi0Q0LOJVMzsCu0nkzwBE1X4+1ygbHnLherxQJ7aLb21+u15+Kt546RZFcQSPZrkSAL6MNxnMdJrhWXTkOhuRZaKeAiUTBSC4fJeZW9bK0YOko3a4QVk8czHtUDsmRueT6RGV0jcowK7cyivjFSnNGsnglArA6Bh71oHShLU825PNUsBV9l9iC0helDJc0M06G1IWFAzKKYAr5JYeAot1GDHK0+tPzAS1WxTG1iQ2LGP9IuCnWy2Tmxc3RMyCTu0YaY9obNqp+eOpoRD5JpFPzBLCqHlsarxqEbzIUn8uBBGwVk//H1P373X70M3K+vg/8Kc3xx6EV+EO6gDDiT5VzCnod/4+3UW84XM+ItZ9PtauzPVsiduvMVdq8xWkyJR0R45SlKI+JXxH9NCynZwgB5zV+R6FhwSj4UL58uWW6RoB3mzQjSrVddZE1BNx5abC0AYijbrFqZCahNtNDJZjoFHooBuZH/nmhmYH9HKFphsNunFh96LDIMWSG+x7GFrF0U+VbgY+RY30L/QB6JF8kUDll2qYvYLomqrF9+Jvz/YkXur9gDYqFv/fL3eIfC4HcEYuVfEflJS8g6RKmOWrSlHEWhhdI0DtwzwQC4gKkl4SDdRyQMKJWwgjCNtORCbP0CK7t/9bzoHKa/WGztl5Q+oneY0CN6IUwFx9MBx45VjmP9+WSxXI6vx5PJHK0WU+zO0Hrlu952Ol/NsDsn/WU73s6auosIZEnYMBIxXRY5QKDa2ItAe+QF/CH9h8zeMXk36aPTcH6GnHYxzm7VX4SVyl1GDISmdTMmhhYIeTuuJKF38RXUPk6gmzduOnNS+iiom+r9iJME7UDH9vfveTe1xIdlWWx0Jp0jBkvRymnDaAfEvkWh9SqKfZR4kYYOLYuPKDjwsfUv+DcEvQPQqSoPC6xQfDoer1+MVy/G128my5vJ7GY2/nwyvRmPNRWfNDIwKWFaTMTQFYBoGTrOjXWn52TlT9zZBK/mGM9mS3+y8Fx/OlnNJ663XqPFbIX98XKGxmVf8VbTXBpjKtcaOrm39BfL9fXKHc/X3mpFPMF8vF5t14v5dr6cLpaT2VQnZn23hj9PDa4DRlruPkpLdR17e5DCEjs0fklPD+SO3tDdm/oqocUZKq4BdZusM7rEu75r6IR0Yw264NRoO6heUdBeLyoCQoaKqcOVyp+tgOQrPy3nQQDFHcPhLYUkkkZ26B5cKBLoP7VmT6rcmVNV7/soatI7FFFdr16pULIyxi1092yoLjsS4Xy/IcToa63zC7fBrtqBwxzlBsL6uOy8np7p3/UQHID8hR7e0WFQpTAyj7IsT+YRAiXBsGwbXBSq0nbLdWmlMBJL8XI/2Bdn4hLNzz4r9ZG6ProXNg6VHTCHbiYeJMm5tBmr2Dgtoxp5GqQHOjknU9gkjc9eam3A0rNg2iKRdXSOreghbIppaQMG8z/aJnlF//YRsNKGh4xeV3tkCHYes1h1xkE+YjFEnG/hj7mX5fMy+yuYktAwP/vq05J1if1sKHcLv1oNCRLbLNy/mHnyabALMSF3DIDoAbn4kNDlH/m4wdCaDK072z3vbDr73wN/dJL61kDYR1s0Q8wob9GGJpM0olMh2nxOy6r8sRmLpAp78XQZgsMKCC5CVu3v7/D7ht5OSpgNaKSgQZ8FcsRDJ8n+RZwgizhs4jTdaHdOKiYBEr6ivzODBkp9dHpCB4JWjbvt5gAA0rrAtTwctLASIK7jNbeJM6GROP+BO8Y41MYaTIKWMTMK3iUazUIEMjCAD+nxKjrntLfjMfm/Fz1TVnrVNMPqg+maka/XNvcAtKjzHfzupvbM4TWoPneMRurPircYzUsL710VnjXeq9JzpD6AynPifOtAVXRWwPlevOqm8NP50NTNoYiZmqFkGw1T/83eDdmGAnzKTy40DgOwj0nthAhyjjE/bdGLyYAgvVoLhbl5MeMio6Ft1LsJqiDnP8nvH9mpqu5Gs4GT0EbzhN7th008biDi+7MZjYRK7/YjIz4eZmOk6WSzpSXJrWmNqgbpns2teaMYtmqNLAzWOklhAyPju79QeARGk528IpAne0RtiLgveNmH8ZB2FJV2tBQAC+iMgMgFi6ZAp6ved/Qk1BbHmJDupnPCVnpuOjfCCplpnpXFyUhordECoAb1LcnZ83CS9KJnxsYwN55hTr+ryjlWtQOLboGJ19OzUmMqYo2J1Xd+on/0BymTK+tLeUe7jQmkaNegf1LCvNuTwrJcYiOsuMQKFInGx84M0JD2yGiokm2PWTbbb5a9wFCh9P5EK2bbcEB7h/U7aBW7Z/nO1w9RaiHr5zevaMqSbnk321PbxWi7RSmZOh2DcBfd/2UH39DttcpV3AJ6uj0k8uHp/eDqqQDfHaCwoYLCwj37iL1VygE+eRGOnVSIzG/k2kOlYA9bHgR8OfQq/27qfPmxcYexNVA3E2C+mvlOWzkwXtV3wcgr2GoIZfIffZeHH0Jd1/GhUbE9p2FS6usUNtmtv0E7bR3a20lp5dQ0Kd4if6Q1xnDW3ouLSGul5a4CTtrJ7o79awb6AGdZHjD8Vs7RwY8XVx/Yp/EDuJ4R5yAffvROL8ZN8TTdNTZ3e6S0zu+Jzee7R5qfIjKpJtTvRT71OpPxeLVY1AKU+TnGVV1JHjWtFu5svppNr/Fs661XyFut19cLD01cvFj7xHeR96spmthPui1ziPc3Yt9cTffS735f7jtijC/dz6Z6bbenRKs07WVdFOfTFrTb4m/INy0DN+LEcdpku9qkSqkmWO7dzYvJ24ro7BJtsmZaK5Bz1wkNg3V1E0TEsvpoWhW1Xo4LW/+edoSHCvpiqsm4azRQLSn1uEQj3NFDSFOZ68EWxZqybUQ5hngNx6JZLnoPXTMjOc3OK4iPnL/xFy3BwX7jYTGWAK4MJzRHzqRX6tfvL5ouAc9kJPqqS0ozlbcijbmFOVIyXTJg5fky+YsTLw5O9DDLW3ZwOq454ktbrd31N9J5kFyc614+Ry/nusP+Um3fUDm4XCEqRZvz0AqYXWCYeZYXbPIW0gG6kRLeaeWQWOhzGVgim0eZPZx2Mz3u1IASPehU9KetvQI7LNR+kKIi9OejKbncP3c9a0PsWWzt99E/Ba1kRPFo6pxZ0710zIyaLRpvCYXpeaMGENj+WMOwzVrrzx4YvWk/JzLMjmI0wJBFi937Wsd4UAoEe0CWxYKXn2owP87QACw7yDCicU6dieVnAvqCglFkEVafO/+QHJh136YVdzri6jMK631S5XJ7lnCnXIhzJt+G+LdU7mZFTq/qcDurNgMZRF2QEYn3Zln8LaARhFsj41Ygk3FaC8wlSf9FZESakcHUQsoYM8Yny2Jqi49XgU/Gby0+3rC3bJ1Cq5soNIs7L8FLikBHHww/SZI8zvzYkBql+bONl7YINgP2+GQIV9DK2jrcH1HHpLpNzW82go9GMDk3FUAmMLLVRMI6xgIiItv1obfsDabjyWxoLelZ3TH7P6d2DtPgoC091ZSuFhoaZclik9mL8fLFePJmPL6h/xss9duUjUL9aV6/BWqUj1v6e8hku6W/O+CnFaWEm5bh/zN4qR4iZOkGUdx3RCOTbukpqkKaArcfKqqpNQIU0kwrenFdrrJGXilc5s030rNTQtCiN3yZ+pmi3rN1W9N14BaKz2i3HlD9Cr3n3NYq3e9rHZg2iu8NYjZaqA04jGprZHAFMpzJWlhw3hdYcef1fceAgiZWmmVyGiMikjWb+p7sIOIKOBh/tWjEPaVhcsbe3tlJFKdswTrED3AXbW0/ZiwW1q0FqU49ma4WmiVZGqukNtWy0kZbL5zk/Dctnuwr9M2Er9X3xYl+tCG2eGCY52eMcylvj0HL9ikbwGcvJPiDCow467UgBZcmnzFu7qR0B9Yh4FVtd+DcsZIthkjRIDt7SBuj91OaNPbZZ6x2p/5GaZgNDlLR9lYx6nmkKPBtOl5wY6C1mEl0HjpgodUoc84YJ54/d6H/ASpN7uddBaZUplos312+IktbYquphmlmxghmyWZZsUOFpLz9WlkPfa+1HlC4O6Nd2e9+esN8+uiGamp0A+9GWXFYR/71nMBBULh3jTSA6P3rEUdGs30jg8ioNK9v89bM4BOSNCGYnk+HthshtIk8c6xFRpqxpRTy0rKixwpxJV5q5T1+gHQtykCI0wcSZ32AGB6kPCCPx7lwpN7mjcHryVUhxm90ygqfHyuMD6M02AYeYkXq0ZHLtrGYQht198Gzgez28eliV15ossmnh1UqKWBTq5Ew10ihlvNmH+Nuk06aCGSWJmasicpksToNnCrgYQzWwnK6OI2O6qeycXbSqMOkTZU3T1yhoaN0/UBN43+Hor20LjLsIDC4Eel1JjxAxdtCtV74ERmCbViBOrd2Oy6KFg/nvo2S1oztXUpda1wwoK03rRdckK3VyOQoObvJiQwoUgetZdbOK3w4tosqgkSFHfod975EnBOWdVW1+iux8XF2tAFpLw7cDyB4TtlIcomRjyQ6TwI0zStso3I1uzCrQLNaykP/T2l0+paQp4Orki1UYSeMd3qoROFHf61UUm1yjJTZ/m1Twp85/pAIY5TTZww8z+rLCqUVItOWa6VMhZSkKF1FLaQ6NXnDQhqUkgSVL8laxXwocWoohTosUVIHGiYDWRNq8OShNrABzctXGSgZM1PUBauVyqISN2lLMBjFOxKbkiotLfKIyBSlzZyBnsJcKK2oTwRrnCCoaeY0WuI7b93VURamu1pKh9k0SLXuGbXU+Obx5MVk/WZyfbOY3Yzn/9SBlx+rPyCiQkBvg/g2hZZGS5PA8a7pGKr+Xl1mC6V7b4CegRWot1jk91TQS85G/LaKy1IqKDPqJQMX2oj2pCJDURKmKIThTcmXnobJTYXfWi6yt9+y6wkLFx6rym6WYlii0db9dLpqST0CU72i1XAGOm9ecwF2jTXUKj6jqTkLffkaGLudWYULnh9ZSHLOninJk9YLJe/4Hc/UCuADtVCse2Dlr4VHn2imJQ6jqtuEVWSAq1X4I83MFkSadU7nrA3qLrTbn8YLZKc93jQEnv3Y1DVYISOMeFFDsXjr0tOdLnswh/kNNk1yZBNsk0QjaNb0CLohLtvK3KKuc/EYH6N7fHG2miZltpiwVkqKaT2AajgVd0cY4GoWaunQME7QaUe2W6YOneEo+pEnP1mb5QfC3VU8qbf8aLgkOsdeqfe39fSMSt+enlFt9vQJTsUKB03+bFpzkIqWMnHP2nUWbVnNPUZimUVMNEjoEuxCeOQK+YDa1EVxpSrokDdCKXfvGsUri0poatvQrl3oNzN+koi17AI9abVi9UyUvUAh1aJ1x1+W+WMDbnYTlMHISS9iMRk5xbU8vY2c9BKaipHTeKEpB8TwlhgTSOB+GDNMqq8w6QoKUKxEpf0VJGzrp3uyX/HGAynd7+W5ZF7Vdx+4wW7D7yHP7y9G8N9l83dZur6m8UY3LnGs4LKlQ3Gd+uDIT2UmcJRuoCpZUUFHpTssixFOg0R9M199zGdAb+QQtLhS9BdhVUkqWQU3BlU3jdd4/OuMDkFayg5WG4a4qxTXMAHoIeYrlbB4Xgo8zrxh7Us8UIc9cE+7BqbEKtnTF7OnNTZ2JPnavSiy6EWWNUtG8CM9A9D+5/H6/tuv/33vBS8Dd+pPvIfb22YCfLOX1PfxPT5Ep+Yq+SOx5Pv76PMHpAdc2ZoHTZWYl55LVU+rjzsot/QpAk0X4GkTlAtOJI+kcaq7Zo4aVP6UzqGkTssFceC1ZXbpP0fKVDfs50K9GBGpnSzgVDwjtbaQWKKEmw/rruuorMxs/21fyxXcc3VzCOoKRmeHUNBOzcOPJHdBh5NyifbOQeROIjye+q5SoJ/nH0kgm95JeUGXlFVa6JJsBO7YHTk8/xv7AL+MrJ8+oF2cumRc5HFT0UovGhskeYeWbCGXmGOVNcrgaqzR2K4uvtvoAeN3h/eb7Lm258ZH4GpqEI5fkzncrf1ceozNc1WffJW8EHQ6sM2H4+TO/g4l6YvvI59MmLHPtqgAi4YVgxQRAzohIpwXnJC6cPBQwFwn6pXOXmBlZfBAG7OjhxDz0JxoW7fYWa5DLEKtYaQUDdjqoxM7SvQaIufBw9B6fGppH1KK8gZ5aXCvib9Vd1As3fYUUTJSCSgarU6izjmsPTrx0O257Wq6Lj1FFCTE9JpvYtBV6gJMIfW6sFLVkFssM2t+1okNHpwEnHoqHb82BM0nvo72/9BrNh+5cBeQCvWNYCqw1wTPIUhMbOcZexL2G4KCGIEH8KTsV+Qflx5Q2myCkFjuhjI1tI6YTKn8H0jAfWvH5xBqyzdpJ+cTjgcyTTaEXTkZnZxCeTylNbJV/1KEkE2S2Vah6kpOgfA+WU14tGGucTKQ/XwqqbeSZVa8PZdFFrI9EPP7wotWZLrMcAF+8gpFTuY2I1lqw+FPRxdLg/WUPpEoFWWBKxHPcWktUEfFOQThOzIQ7wJ6NkDVNKek0N+nx0PbBqCOrgVBq8t+myDC99y4Qqy7x/HT2y+zx8DbP77+69++f+3E0Km04W7vke4Hn9qxCLiIJDzbvd8JW0aaiXfx7MwreRKOm3LdbNkBez0EvTxDoteZ/Z93Dv/RbIPB2v/8XWlgUDFl/yCTJWkUF5eO9DmKC5rmo7h/yMaf0nUofPzJL/nWjuCD5/s0PSU3oxHkPTJQ4MDhiOXeVpxRGD3XDq/P85vCZ7P1+nr2/Mo4HlCF18YDtfLyElIMUDGmGw0i/oEPH4K+dfcudk7hrnw+o7e7/jtucxOZxW3+1R2sfklCHqIzcobHmvOTAOgeo6bpD4q9fXDfcEyNsCACAInziCif8gCZfNptu4FNxniHJvqJYX6zgQXrzYZYQzS0mB9n84fi/hclQglLLNoP7udst2zr35RMXgGNi7/1ZZarn4WitpLV2cINSdFA/sB5iMnkpJKWK4ht6JjS8niwdikmRg+kC+J3A1VH2tJiYIS/yfmIQQK2ean2X4FSyfRIl4b7+JwgyRYZoXhYcHqk0DmEyLHiewNa+b7qnwAFOz2eykOVwr5SKMegRe1qqSX/NJf9k964ZULSaAg37vQ5En5DbzY3HQXh0p9sXMhuAOLjH7uM/SOMffxG9+vp/HraYtyTRdWOeRXSZd81j3dVc9i9MWiyMTB+bq19TscJwNQn1cU/geIdBmGozIdh4M66g9l0usd+5CV/vnGYotjnSCwRbDsW8z2FFofzTM8Rj/o4mSdJtunngF4FbpuKo3pGIBo8KobfuqaZDhZOT+Vf6p+0CDPEYEf3tU7nhB68AN9EXBP+DR1PB0yfWKjs0Ys7SG6sO1ZLeUSYjXx/I5WB9SPyvlQsPpqUosvpWByaleaJBbGNHpeYlcyzkviRbM5H/nTEnLfiAxJ1JPKil1gle9aO2fPNaoy0ZI/8UTbF5wwam+FmiwJoobEPz0t9uMoSC/pSp/uN3YuKU3UOv/HEpibf51Prq3MYvrcgShtaYfRvrRxVKdlwBG1UJht2XN1g4205f+cSP0WxaLX2IBIBIf2rx6BLIttmH4FWkJbBS5eaS6ftspvcP0ZAJm5oH01m6/F61iYo00BRsT/RLL1c8JL9iYrg7o8OeoRk+ucJtljjK+4SyETbDtuGmwTsxv3KywleCVM1Xy8uOKHSjLHikQbl0EGTER357yEmeLMP6MV3yBKWR7/petRFwCzWavl6u7kDKxK4MDVLIVYlbCdXGXwQTxm0dJRB0VMUcrq5lxTPWPtI/hEekbFa+p639Ny5e71ejsezuYvXE3eFF2vke9P1Ek0mC4SuV89N55VeBylVQwCobi0vpylvglbtgNJqsP/Z1SEEDf4g0GwVBtumbFajJU99aCY6Az8Zdfto/9Xz8Ilu/KDT6cDziUb3oS/sARiyn2r6GFEIZbogaqclRCkXXYSYfxYUKEdNMDC2L8OhcLLjeEJxAON7r2c7BNVWzuYkd0JOwJE4zDoi/+BjuRy4GmCE1pMJnqDparxdLjD23OVitVhgD83W/nq99ly89dwxWjmOU0Gps9My9QUnxRPk0FklH1B9SOQiNSgWe2KHRI6nAn1uywkJPk7yMnWp8ie88v9w93X6f+cFIPTguv4bUEsDBBQAAAAIANqZMkMZQq1OWgYAADgsAAASAAAAdGVzdHMvdGVzdF9vcmdzLnB51VpLj9s2EL77V6i5UEZd2ZvmkqB7aZC2l6ZAsDktFgItcW0mkqiK1KabYP97Z0i9JetleZEIWNtrDoffNxySM0PzMBaJsg5cHdP9r6v7RIRWKLzPFjcNMVXecWP9DV+ZRsWkkk6qeCBzmd+pZG/hb2MFgvqr1coLqJTWDUjeMBraefv6zcqCx2f3luvyiCvXtSUL7jdWyNRR+O9pyK5JkkbYk2TS+Mg0Zomd69tY2GntFDrK3uuyC4g4CqSt65ycI5KDdDQixGkTbCbrRh8ac+jy4qhULN9st/CvY/o7ngi32EVur17vdrvXL1YFHcnUx1hzGURtRMcCLVodJdxPUkT22ihyDutyeJwTN2Fx0oQA08BggoomrQowKJoo+QVGs8lvN9oKDWXs35QGXD02FaoJ5swGrxC8tlSpyeE+KCP3QpDTXX7CLnVo1PfdkIV71mKruyVMxiKSzCZkY73cvWpYOk6VXczzzxbZGlVyizgasp6I7gHiN+JTRckb672I2NOq4S4a8QfKJZN2bpk/ufor3b9LEpFsSjJOiXxjeK8byiKhXI8GAfObDhKIA4/s07at6LZJBxVc0q7pxME6dnO+sTt4iVjEpKhI6tfnsCiOA/bMhlvUoNoipIvIkD19FjDF5liz0hMN2mQ0xTpG1YI2ybBNtAXzuRqwhN460Bq7pm/h8VMxRq83fSMRnAHwgbwVQUD3oJHAFhxyKQEYfk/9kEfk6RyXQzYb7bhNww6aTxtC97S4tP6ggWQ9UzOgp8LRsJo4K0cqZ6/4A+tb8aeBF2POWlNcjt73Xw1Dzvf9FMbrBV0OS4zsickbhK9YkmmSAwz0OBtLd7m+SdJmXHOKTAcPLnkEx33kMTti/6lKQFHDs4awInd8HF06H+F16gShRu0KA/z07E/hp5VOZ2ewALeiX/vJWWtZ5wO+ciWSx4ncExaKB3ZGYNLY93t9dPKmVUPXvXudcSzUuWerZJb55m5IXcbr3pPmms5EGZcx3KQtsZJc/ZMcaMS/UmxbMsmq6h2fbEE60EwOagBNkgDfT0y5UNM2Uxs/jk+6ulh0Jl9DwHOhhVIw0NTIwKqjWa1UDDC76jFuBZMIBXC30YHV4scKSVgcWviWoBpyVzSIXtrYpeW7wkEdmMmRqjCZlqONXH/Iqpoz4eobF3qhYU3pwhH7T8xT9kmeED/ps0Jn9nC4U2lxVeLFhytYqSpNIveBBimwt7CHfXu3rolVl3cduknJYKQ97Ywf8MlKAFhosdetFgcjW0yXUUO7tRyqiRRP11FkUM9MQr14jJJsh3QFHNWucftKAjwuDZ3oNeWO/YP5jDkOnsFjcKBL+0ubTA+WSb7iJYyqUSFDFm6+3F01s0shTwSaNbE8z6whL5LOVmxZZKFm3Ha7z6SX8FhlSSn+2yV2FCGL6UGr6mqPE/4AFoBm7RtdGiDfguQ3ZRKEcGZPyHzhn3m/hC++RHiA9yiiKZxAGCT0AMLpdrkPElcdrbDe+CESCYOFFcaB4dak/rQqP83eHyq+s1BQV8lEukYpnDCbbSuzxPXVcyQnHi4lGiycncTpPuCeu0SSoq1VA7lkrN3WPi9JyeZT5YX5EfWs4R0nO0OW2XHMuO129B8XhXD93t51bSZFnQxFSJzKI7nYulP6PuTS607PUz4VFX7Xht2ohVfccSxf88RMaHbJc6xj7HkQ8OjgspDyACdWn8RtOUi0Yho99kgMaQiER/MT7YRI7qXt5kWcC20+pSab97Hnl2MLFXmEc/Ltu691IpXFSp3SrR0Oi9SYB46bDi51DBVKtSB3fGmTPbBIDdU2tdCk4qZRO7a6qblV0FQrt+Yr5x2+zandfh/V6YLh8sXpug8tzbOufTLdBrhxZevvuFhfkyru6mKaYMADp1X1Gm6UgS5fzp8IxezsF8ZTmO82t92dNqQu5uGdZhCQp1noseezXI6UxZJxcfN4X8uj59lBQwltyVC0w+aGfnUrmxtbmn2Cfz3ntqn1m43u07Xlg+h5Z4RoTejTL9K7tJx15TQ/zLrUjR1SvNiFXUv5maHe0MXddM4/ZN22dpN34dJtZaxLVm97KbUGaiGbVMsdW1I5dRyYGXfTJMBVmP1I85z1ZyoUu6k7k+bxy5U2EfruhHyyq5Ch1V0tcGSc+jlnAz/e6428wP0fUEsDBBQAAAAIAG2jI0PL4EsAfAEAAEEFAAATAAAAdGVzdHMvdGVzdF91dGlscy5weaVTy27CMBC8+yvcE4maINsBKkXi0ooeq6qKeugFmcYBS86jtkPVv+8amjRAQEGskkN2Z2dnx3Gmyxyvpd3Uq2hcW6kMlnlVaoutzIWxPK+WFdc8F1ZolDm0hbQ5xD5yI57g3QNSboXrbqrNN0LoU3FjcAIMSUP/2rB7DYsfI4QhUpHthi0bAuMZoTIo479oNeJ5O8VjhJIAzwJM4WHwTgMcEb9tchxjkCG0XXzVXHkj1xGSWUhoQllMp3FERkGfAV6b8/0jjVuuZLpTaqyWxfpEKuQBY0Cp1yZddKaPgnOVjq6LkAlAxpRFjN4TFpPh8HAwnFE6/egA/43NSt05EVm0O8cHrCf+tz3Xei6Lm1xnIYXVJj1Ls/3S27vjWibN5pojuIx9IGewt3j6xqWBm/LOVS0WWpe619VO8tjVoizEcsOLVPUY2hmU6Fp4fQf2AgQB5kqV3zuyuUP6WBrsKr0XcajoPfXB6i46s57BG3HuR7E/1aDVhsqhPvoFUEsDBBQAAAAIANqZMkMW9uuPlQcAAJAnAAAUAAAAdGVzdHMvdGVzdF9pc3N1ZXMucHnFWl9z2zYMf/enYN0HyjdXjpNu3XzLHtrrtt5tfdh1L/P5XEWiEzaSqIpU0qyX7z6QFCVSf2xLyVLX7VkSAAI/gAABlSYZywW6pOKquDib7HKWmAufcl4Q7ocsSUgqENWk7+TdN/peJz25aVK/vemjjYMLEhvaP+RFJ1lCY8IFS4kh/dPc6CJ31p6UF1EgiKBJySCAm/uFoHFF/Trg5A38naOYBZEmS1h4bZ5ngQivJpNJGAecow8gQOnrGb7ZaoLgE5Ed2m5pSsV263ES7+YoIeKKRe+DhJzjvEglKy6p5YcXGcm9SuAcSa6ZXwmp2Wc1D5D4MTrXmHlSYw8rMPGsQRVkFOi86ZUQGV8tFnDta7ykZxc5yRhfcHqZBDc0L/jpy4VBM7tbTCtZ9meqVuKL18XldDapzOZE/J0pmw9bp2l7DdKXvmDbT5yl3kyz+ZfWatKFW/K5CGIq7pqrHoQGfEjAqWbZcxTXvP720TEziN2yVOzol2mfIs+kIq6JsFjeNK9kqh758UzagH9WNqP115P7zS/Y37E8CYQBM1UR5Arnok+2eVKKtmQ0REQkJoK03C7pc8IzlnLiYTxHpycvG+62OGWUlrrVgasU+SugnHDP4PsbFb8XF2/znOVzo5SW02RPmdiGQRyTqBVm7JKmXo8LjFZNpIpMZpADZuowk7aeNNZU2cMy1XkYsnQH8fYVwxIBXsEPiTP8wCm5VT/nCIcsZrm8F+zkH3x/PxYvbcocvYf8qf9tYrcfoRIKix1Rjn4NYk72uGC/MNvS0sAGSDIXbzUvBbQHSXx+tEgrvVc15jFTfCX0+DSfQGjUuuh8VhXEcen+mqQpLJcTKv6FW58LWQ77kn21Fl8sfxyQ71umduZ81zp963DePyopJmVSrMSj9c3SP/FPIDcOz4OlNC2hyf+tk2DyqEkwqZPgMVuwRqEgW/BaAwXpSXSOmq6FcMzurBXk3TXWIvAGGPDpyfL0BXzPlh9Oz1bf/wTff3BF7waO5G4ZQzlNuQjSkHhgkpI8rw6CvvnRtIIKkm91vT4y3SuW8w950dy6l0RUnkXfIbzQYrHlJlpDYy+8zxY6rw68EJ1FCCdZHRHvQEAgWL6P2UvJF+HRGWwtdVgY6OKjymCdnUaXQicVVXWxlaCwoCJWlXLHGJ63n4PVQj0PY8ZJ1EUSER7mNJP2SsIVz4L8GgxYdRLr+Fyp6Dzrj075uZ/Uv0buartUDynSiV2kx5fnSoyGt0bxAEwuZp1IDSrFqpN7zDKsBB5fguUm1Tro8qv6zCfptHRHu1gOqLuObZ01tzZHX47vsw4CY0cTlQWU1rw+jYB92UP7TNKOqPq0rPpKLbTuwRs9X7ZPAUEUDUv8kNz2ZH9wd1/6d+iax3+8npL0SmZrOWOZbvDI9EH92qC5zpDjzwdajClWtmgPW9rilutLRnDnerOnLmmy9clmXF2CR/SydfQYiJaS0YOUwaO6ewuS9FDIZxefSCi8cuNhElHAAWxEJFo525pEEESiyNPtTRBDdJ4jGTYOibMJSpX6svh+N/ZKw/aewC5DWnu4quJ+WiQXJEd013qEwGdEVSdHShUsa3l8jmdox3IUI5oaAZpg0wRHq1uaAnU2JFsJs9fKjSZvyepf+e+CRXcAv2Nd9VAdBOYobRcrrYtzuxldquw9LLiUiOHb72nDTdvpRkRh7XkVP4Ro7ax4MA90OGD8f4RUFU0qO+iI0tPjp4iqoh1I1siwM2b0iPxAJVEF09A2C4PdPqxXL5YbWURKWr54+eoH+NqJKqyRNqvjiqrhcSv1hnNnqN8iVbU1nEnLc8EVdKa8vulW/FC2DnMCII6CSBbd5cFCa0A6VGq/Yule1R+UbznU9djZGuDuWAa7s7eQNEDu5K8Tv7MfDp/eLe92C3btnfVFwFHelAnoGB8+xmC06vdScov0xXhnScWHuUeZOr6fKgVYyg+EmnJdi6K+aZVepSZrmlfm+GgbCADWiarjRagUKCc0LCMpPiygxqtj0mK26sAscPzMxcoFB+ciRndHsdnsYftDSVNvRY8zUpEOMlELtw2U7mlZVOrQbs8sHMjcemfbXQpIZylQDEPjOScJuyG6kXiE6anVZC3U7H/kOJX6tmKQxTuFjRuuurI9I3oMbLD2vn51qLG1uAc0PxAhcRCW1nF9Ls1j91yax81z6do9tHXiZVmrWvwGDwjtO+itNx3vDywtHzrmzYqxfT50mtM5ml4E+UPafNeaOarsHRCqvY1+A6q1GQWCznjzeN1+0z+ytDw0qqWMQ/X94d3J8AZJsT9tZ1cC6rZ237JNh4ZKHx90K3W4B4fqQvIsp+1GvDWAtGjlLLJ5hJIUy7NXTTHTaT2D1fGEOEvUKyJIYQptjj5mRRx/lC7JoAIitpNfcUXQxyuRxNsih4cSRf1/j4w484rV71ysc4gqNWxPmBXwb+Uw1gWb+mZ5d75RzaKtOXTfBFpapgbNvUuqZMA4FSwHD3pTW5JMY7WwqYS9NcFXR4SuMf4xE23FvHesTW4MkHohJyL06eTYuTY5QpKhtTeaVOEc1Y4nqhGnEHVy1I13wTXpPi8D4zPJ+B9QSwMEFAAAAAgA2pkyQ8FaZVzsBAAAARkAABMAAAB0ZXN0cy90ZXN0X2dpc3RzLnB5tVndb9s2EH/XX8F0D5Q6Q07ipOuCesBWrO1e+tB2T0FgKBJlcZVFTaTWBUX+9/FI6sOUZEuyJyAJRd4d7373QepCdzkrBOJP3KEx/PH/IQWnLNvQLGboDXJXC3Tp3TlIPlQTlxkVgnBxjQJevzgk5aSXzDHvWyqS8nHlxAXbVS+oXuOC6xVg4X4paMqrVfe3gJO38meBUhZEnuM4YRpwjr5I2veStSYwikYkRhtpARWbjctJGi/QjoiERR+DHVnjosyAExtqeHiZk8Kt5C0QMHl+LaPh9hoWSeKD4mit9feVKqChi2ECexZxkFNJixMhcn63XMpXX+Pgh2y3VDKWq9dXq9evrrFTG8KJ+DNXVhzVV5MeVbGe9gXb/MVZ5noLQ+s1+4IjNlwU9tYSeAIhY1aUIA+t1/szPo1sWQXJh4TVS400/AZ0RfffL58ffsF+zIpd0FLdFh4WJBBkI4HckUx04AK2gvCcZZxo71SkeIGuL68szHJWwQQ++xHhpaHm2KIMWRZLdL/jKBABvpODRxY9yQF+DAr8/OxYIaDs/RRQTrhrkkA6RXwoH38vClYsGp/5+yZZ+6ZsS6XfnI5bBtjdjywjHqIcwWA0F8ZdHkWcMYlgkKYkasWbkUY5zbgIspC4w4IBHhl2OizNrArPt7327lj4daPly+rEXdv/EUmJIEf8rnx9Y0lucYK3B/x7iiP1Dp4zAsE93w46yag8ESIS0TGJoUC6tBMiEGFyDKN6Fp46IfZm9QrhYUFz0BISBV7xoksW05RwlVIwulIjuZWApJVsMWPI5FibrXk7xWWAle2wo25RAKt8eRfI0/CAu4/IePmyxvVe4/gw0deyXH4d6+vjxQ+kDVa+U2AGwSfnRW+5UQDU9eW9OjEmIUj5Ji8fUxoOnX/NSVdT6mOwXtCzXblS2aKQ5s0oVltiuQZkYRvCKS5o9DljgWoZORV2QYrqkODTjnHFu/5SlJ1Lmg3a0cM8D4pgB7UHDr5WgIdyNSP/tq9Q+wp73dxuhWd4vvOu3paOgymRv1jxNBkmOgOl5ABKVIM0jFFSYWQ0Vhh90OM5GKlTxEZIQQIrA5pqpq6eLb52omv6+8uHA3bVrJV9MFbGvZODzk7qRlzzyKu9TCfBv8lcds3NGNhwv8lQrnuDYq8wfBYs/0PSB4DeQuGwVxgaUV73Kh/L+Erm3ibakXboMKy2UWdqPT0tCAC4OZU2L/srbW8qnHIGgtwzll5l78REKbO5KFmX5/8VKK3lGaEyZo8D6wf0K0csl5cjEiHBkPqeodkWBRmS28v0+YZ0V0LmDBKyeu1jbMqZDXKiv84bpQxdu5hMSatE1aPevGoXWdU0GFFn+1lhpw1wz7lhtcSqIgcC++qb0aVT4sjfZZBS0UFyO6YPY8cA1PFtI8KnkZRyNUx+AeR2+8mc4OfuQhmx45tR5lZR49Bzy2jBUt+c+ttULw62qW5W11ern2/qm9Ty1e3tT9e3Lya1rSwDe7tXY2xqE7ZaWp0vyqOP9vPYgAtPALodWLWJaxQ2wg+FYsVxARwzmmxVSwkEYGybO65NsNc/m9Uu6GmZwd+5PbPKCVM/3dt8TZds1hf8nihtzfGaaBUTU/bOXUyM2PHFJGm3jXvOiHaAVx8XnXviUOokMyT3AZ6YEp40kqt/YECnPWYMD/NdAN9/UEsDBBQAAAAIANqZMkNhqRrc5AIAABILAAARAAAAdGVzdHMvdGVzdF9naXQucHmtVk1v2kAQvfMrfFtbsuwEiCCouTRqm1MrReQUVdZij2ET22vtrFNVVf57Z/2FWUggEZYQNvPmzZvZmcEiL6XSzlroTbWajFIlc0cDagwqLTJ0RGN3v3KEW/r4TiZ54o1GozjjiM6SsLcyz4XuId5i5NCVQOpEkSiEjiIXIUt9Jwe9kclPnsMNU1VhfFmLNhdWJSh3y+g7xs0Lepatv7d1IkgQ13jnpssjoO+glWX0uqxBMI+Ud+JMmpGCUtXqBjooL6Cce1NL7wWoudL4h2K47Mtty2gR8oo0qohj9EAsNnVFGgeUgYX2bA0CRUFRixjcyu+zq8iGgfGwoze0Gk4WsO/wGQ2DZriHFBQY8Bn7oSc9vSUUhdvth62ypiUIYfphx4uXgrxcttG6xEUY0nPQcJhKhdQSEkMU65y/CFXheBp2Ecq/Ieu5hhcjBDmmGG6AJxjmHKncw75B0A+lfVDvJN/gP5BvBwi0jJ5QFq7XUAXrT40DMVmz0Idie92z4xbI1RPE9iT9oNH9VRv2pimBDDTs1aahw1IWCC5jvjO+mFr1GHiaU22Jtwddq7vnAgHdrmok5K5afVNKKr+vastkExSSpo1nGST2SWRyLYr9MbL4bK9cxs9RAxWUlmtXoioTfrQSpqVNMS4s8pLreDOoxY4xloVpnX873csoGmcL69faghtjYCl/BnPr7yNSqagVFs5SVbBrfh1t7z59IE0p/EYCO9/BtCXeZlYncNo5HTgM8p8O2/LEcLRvne88Qzgad7B1lwrOunAN3+m7VhPaWj61oGbPGut5F63ZqG8sWxMMw9nVajKdTcbXMEnj+YzHs/n8+irmlyu4mic8Tel5NuaXH9jCw4ocXMBvFaE3nrJ940rhsSGv63loytegj804K7niOZrBZk008WImlV2y18FE6u4todbdyXrvzUD7e5kf/iuwl/+y7o6TZ+xA5Frk48XvXQV3HDdvKOgcLCXGg5T8B1BLAwQUAAAACADamTJDK4aMZdUGAAAQIwAAEwAAAHRlc3RzL3Rlc3RfdXNlcnMucHnlWl9v2zYQf/enYAMEsltHdhK3a4N6KDZ0bVGkGNr0YQgCgZZom40saiSVNBv63XdHSZZMSbHkOH2ZgcSReHe8u9/x/kjhq1hITdSd6vE5frk3TCouIo9Hc0Fek/7pkIwHZz0CH54SJxHXmil9QqhaX/RYqFgtWS+7XnC9TGanvbkUK7IS/nVOGFPtL9PbSK/cRPNQ5av936hiv8PPkISCBoOUMKCaab5iOVV+3ev1/JAqRS5A0kd2t+bOTAjYnHhgG9ee11csnA/JiumlCD7RFZs6MomQ0cmo8aOSmMl+Jm5IkGfgrkUUzIOCA0jca3ZHprnNbqLAqy7qgzb0HVh1BhYHjTlwHCy1jtXZaASXbsru+mI1QgkjYFOj4/FBb22LYvprbAzZpnJK2VLLfNHVwvumRNQfpGLcxaDYG8Hy2N8JDbm+s3W4bim3UAhQYxiKa72m5LoQ5/KAPJuS40byJ0i+qZvS0lYr58pWkHOAO60Vgx+bWLK4RO0qTaVWt2Bb33n9FSjIR0TT2jtgIdOsggxKkUzFIlKs7zhDcjKeWJiUODEmMsFFmBilPlOumOrnHn7H9ftk9lZKIYeFLakkW0AktOfTMGSBHQ2hWPCo34hIrpnFhUfZS0khb6i+7YkkxsO5xRN4INAZY0u4yQ0lX2ws+iKaQ5j9u76LHwd2o86Zddes4CZnxJnTa2b2q1JorkOGNJ/YLUkvNql+9Iq/dsYl9ciQfBJR9tvGKEeiEYrMqSUJhCvyB4Uk3ALtBmlPn67depm68Wo71qV8+2dIo30mXJTXPuPGQF1JOkYlK0Ai4DVxIJkNr6Ni6uPiZDy2VnwRhnQmJNVCKqA4tgliyW/Aix6kC4EEJyWCH/ahaJGa0J4iN+GVi5o3Z6c1g/MazSaXaODVr04t7EYeVx7SWDBiTtsnjCivPYyIWwVGo1JaOvHGDrVTjRRfrOgNl4k6mbSvoGXla0tos77r5boqmsuArmtJFdW6TI84DyGTMV8ErOzUjV0NGZlaN9yUCxyl50cvK3VJMkBcLW2DDw4OLpaQQRQ2UyKlVQTyBuERFLzIZwpvZ9xkLiRZCBFAEFCVSOYC/z1F7rRS5BZMN2V1YwkEo/ZWIuBzzgKw0b7O+z3Ib7d9rMlyjpf9zSN5SIfkMCCHM3L4Fzl8f3Z4fnb4hbw7vyjORN3mTNMF7JF9OS8mk9nz2fj4+XP2YjKe0Fe+P5kFr4KXs2PKfjkdO0WaZt9j5msWeEtGAwiEanX6MD86z8w4+sIjk2w2jCsljV6Nbjl+FzKxT46EXgxgyypRlvW9tFF59/bCGa7PSrXyNX0yO6a2Ye0lgBbiFsIu4BIkqGmqeAvIsap1cyxyHJ1jxwBORfT+h64szp1JlHU91YbxHZu5FnULxadlqJxxK1WoqFsFQ9pOX5b5zj5AJftdyIAqX2Ax29SHBoHHVpSH+BcYpGr7zJa9mXFMRSIk4rkQzu5tNIZNOuS6YvYNkOtXiwVsUtmYKWeAI3bclP+rxmealsljK4gF5Jw0ki8N9ZUNcY0eW5p3Q61MrB0Picc1k9OaQwVtUZb0U/u9RIbkGTGBOspkdOnwncsDMODNjEqs8gdXTnPqfFAAMAiBy6vu+NecujrfGhhyK9p03BtopTPZns9AndCfdQzq9t56Emq9sI/DUK/NQ8f6R4r/vYR/vcW7nYD8ZnnwuGeTBx4FmGZglS8ixgDY7RhNmrvSTYDMRDeiM38Ee43yPTYnCqdhWDfmWpo5IMoxoT53mub2FsbOBfYDPFrsEo7lBhxtHK2lja5ZFMF0JhnX/2wzq9DBsdi6WQMlw2M3LNJbaw0SpW3NPaWmYl0qu8YarvIBpx+x77o0hJV1GsDklp+b9Jb7Fr/amblNrVGczELul5x2jyopbWr0Ll5OEYOEu8XRRfvYxc9r6d1dXShW9nZRG3Y3dvsReYixIH1XY1Gx/Rkr5OInnKERbKNGVitganu11HzRIv4A4ilqbT3GqPNKyQLzTLNVxWnn8JLotC8Y3Dd37X7WNyGBOY3xG2g0HhMXa5PuwWhr+Vi+aW1Cu4Roq/3QzIgvdmC43gISNgPdMcpkd8cmV6odJqZTcT/jb66FvNvJDclM+ZLHKcmjOKO8ww4u2VDw5zkG3762fY3VxR0ot7sXjDbV4vGRdbWt1fu5xodJ6Qs6554n751mmpq3dvnrmvKDoLp3d2aYQEJOoze+gCGDusp3a2lnMKEgKaoNWrPvdBWHzKhslmpYllwyOjNvBxHUPb8WNLimSOxxzHrIe72N9ea5qcuexaizGYFN/0OQdHkPZCuCDxSTQtS9/z9g6J8g/X9QSwMEFAAAAAgA2pkyQ0ZxxoFHAwAACQ0AABQAAAB0ZXN0cy90ZXN0X2V2ZW50cy5weaVWS2+cMBC+76+gJ0BaWap6i5pL06jtpY2i5IQiRJZZ4sZggs2utlX/e8cvHuaxWxUpLJ7HN9+MZ+zQsuaNDAoqX9rnD5t9w8tAgpCCtJIyEVCj/5QJuMG/bcB4lhuztqJSmTqbB/xWNpvNZscyIbTg9gCVjJx7fLUJ8MlhH6QpRf80jQSw/TYoQb7w/HtWwnXYtJVyDa21ekRbQxN1gNtAecWkA+nd494HTQgcgmuXHS7QVxDDSSUShVoUxp4XRyej500RxpuOtQD5WGvK58kZ24v5WDWRPP0peBXFg7CqzCm8tRmj8uSHh3/MELcGcLs6OtcB9FiE5gj3fsn4nTIe08IK+YwUf0SZZER2vD4NKqKkiS7xkzPnPZXFSim3STpU0ErIrNpBhCERc9s540KQH02RVfRXJqlyHqfQQN34OVjYToUUcEtl1khxRNwo/HhrCuthMYoveapB+Ii2OV6yKmfQCMwumktv2znMPJ5DWmcntcupA52URUOSAalYbbjAeYU8cl7kFU5i2nBUpHX7zOhuoTZuf3s7A27FRjY6De4M3a82buSOjMG5oCPveFlSqd5uMgbRrRjr9zu03+GVHVfcLp46Yfxnxsev4DiU/V3rLmuSdLGf+k5T4QWxCnKPqxsHOE4w58dKM/Zyy5lOy6m7vDrBICdt66fTAedsLYmcJT3mJAGnIZ/th09/zxnjR5/8XnPHESmg35EWQw9Z+4Qt1H6N7T5xqAOqCliQR3xP2TWvcJhnp3Uw6pd1dhrqHDuLOimk6gBBJW9OPscCJ9JnWGiGStPx04sVfhqmWGNXJAZkwE2tBfmC7+nEixZU+05mTlPT6o6bWcXbYDKFWjM3hj79Pt5udeQSG2yQhBYI8k39nPGdGVTr7SZVoyyMqjaFw9xBtFyUMykbuP/MeUyzhPIZJrdYqSka3cUjaaHKNXpl4lAvGsm6ZayBt+lU1pqgUuMt/NbCoPeVcI1mj1mvMa2TMfyAr5ILcofve6NcoD03EfXC/XOgcLyk9YfQ5/jPNLChfq/DLTSuhAyhzY07IG4uTqXsWOuFGmR9HI7PRpTqfrm0eXTU1QsUr04d8Mn7D+0BhWf8NKXVU3bVXXNf6Ne/UEsDBBQAAAAIAG2jI0OcuQUE+wMAAC8NAAAQAAAAZ2l0aHViMy9hdXRocy5webVWTW/cNhC961eMnYO0wEbrJj4JVVCjRdtDkEPqnAxD4UqzXsaSKJOUF6jh/94hqQ9yV2l8cHTZ5XDmzczT8FHn5+fRHdf7fvs+Zb3eqyj3nyi63nMFjaj6GqEUrWa8VaD3CFfkLST/l2kuWhDbb1jqNIrOCTDaSdHACFthKSTTQirgTSekBokPPZeoii1TvCxM3jCE8mE9uf/F9d/99nchMYqismZKhcmT2WGVRRHQQ1VcU42Z9c6+hrX+Giw/fJ2LN6HXBwEs8KeONWtLVFCyFrbEwx7Le6yg5vcISmRDUvOwXyDPgb3zDWfWYC1XbQXEp+n/kdXYatBH4SmvHAL9OTKfjWZr/wcRWE3ZYa91l202FT5iLTqUqaMxLUWzeXy/EaabzRv78zboTL1lHZ8Ic38q3EFR8JbrokgU1ru1ZWMNCpWimPyTaA3NY2mqp4xJwKjxrXerdIIJAFZT6JsM/kAaKHrTbCt6bceKdV3NS0d80rIG19DLeg4y0Ck5QW7rSu9QJzGt4zU8PQfYn1H3cnFYtbjHNkS0pgDTWgg1jgPUK0ptygrDjYWix+IcgjGeAnz5/NFrtxX6GIosBbUcFDMa4xUISYg+4Cfa8wn0Wz2FPoFdgvzIlQaxA1XSPBkGaWbtizELEYIOPj6sM1HrN7dh6y1/6BFolAn7B7WaY+BB8orgLo7GoKDxHVkvtj2vK8MRjUMw5BSotEwG1FVQUcU0ak7vzkkAKVNHukTnkrd3cNjTSJyUCQdGQiCRIqs0rGewFkxTVeacTNt85/Uyu8XeQVpGcb1R/Z0pM1kG+Ykt9V31kpZmt8WWApTvtuSDrHw1Mi0MauShS3u+IQ7lHG6eLp5vP8TpTsiG6WQ6ngEiPkzqJogOeQo7DWHuPCbddQAtvhTgbBHA9eorrK+plqFj9bSsjRpqfX9bukjHFHSDosZj0kjn3cZwqH3qzB2w1ESxFaJG1jouCw/YnsDVGt5dXK7h8uLyJXW5zofGnVLkN7fEQVUV3lI2/soIVR7H62C06Bl1kfbCJr/YLAtNpvNlm3VMsoZucRI7lyuDRHTGi9XUFY1dzUpUCwdmEL0DHxobH/JUuJhgbi9MMkqsMB8W5ITVYvhEx/9ES2zE42k8nTTLUxjZ4sFah5tjWYmPEAzT30Hxb7Vjymc4N1XUg5moyH9f3vdESZSb++RP+rqZufymRLsgQQMpwUswN8fTeAllg8tz4DKguRk2i2GcO6H0PNlrI6Ysr+yEe5ePkb75dS7knncp/7x45RrmmVgowQ3DXMXk/MpF2LcvvPlYqMV+ZmTWhT6Hpm+ZbAp6jZr8okzQwjU0qa7ZX4X709hdyx6jEx1029F/UEsDBBQAAAAIAH2YPkNM4vwfzAUAAAsVAAARAAAAZ2l0aHViMy9ldmVudHMucHm1V1Fv2zYQfvevuKYPloFU7lZsD0JTLGjWLsC2BkGKPQSBTVt0zEUSFZGy4xX97zseKZqSZbsNNj/Y1t3x43fHu+Pp5ORkcC/0sp69ifmKF1oNzlqfweBmKRTkMq0zDnNZaCYKBXqJDxlTKuJqBBXPmOYpaAm/WpDBCQIPFpXMoYFHCJ4pEHkpKw0fhf6tnn2a/c3nejAYEJZdHIWqUTIYAH4Q7ga3TMgumZIhvKWfd1OQZBvDpQalq3qu64orYEUKS/zKuOWbMs0IrOJoUCDf2QZWgpHSQip4u9S6TMbjFKORyZJXseUfz2U+Xr0Z2yC9m04ISeG2QhYgFwRimcP51WVsad+sJdgVMGcFzEwE85JVuHcmHjgomTgHzYf/AGdnwH8MBS9IQJJz9EcvmQY8D/5YixXLTBR0ByMWqYXBPx3xi0bcxNT+SfkCJhNRCD2ZRIpni1NLGoPfrFc1hiKiGJ2CMRnFfoW19aatQ68Vr/yZf8aHfjNZ3XurT9U9K8Q/zATWW79M/NkbFHjb2iA2Mp8HeL4lnj+SEsU9nQuba1nFW2eQf0wyOCNS1oX4nutoSPLhaARiAbtiwBTm8KcseEgNM4trkfNeAuslL4gFocGaYS5U3NRLh5GTTvCEz6xkgtlcGuCQ4NYMWYYsPhfiseaA5+zSkRa19zC5Ebol0mEL43ehNLAsg1IqJWZY8npTYv0goqvsFhyeG+K1wtEOGxoMgzTqLAyPOuquavGyBW+4wJECxYMSK6E3rlLHxH/cpk04rTgYSRAJ2zZMekxKtskkSydOpMjeo5xiuM05602L7oWgvsCqDayRHZ2GA4rhyv7ZtipT0FiDwrUkgzvZ5sZLgIkRJcc8Dx1u++u2RnecF2GwnbIT8GvqkTCd6rrMeCTXBa9OTWJLJbASNpOC5Xw0nbY3Mvp2YI0kCCxmx9YQ3S6kpvTpSRGHZff3ktuh2Xh4F6syE4g/7vC+LFIxx/pQpu4w7BXF3qYP7lfWs0zMASsfd+7Un9O16FsZOhA0SlPdrlEGqW0vFRjaSwluv7z+evduGC9klbMgYW6TVz/dteD4o++60hDexfSVe2YtfAe3AAX/VoAXXYBflMbim+cYKZl6yAybAKWcigIsvC5sd1gxkTHTGpq0IlNzm3S3xXbO02i3hB74BqGDKAg1sZHuRhVRv+9E/co4xlZbFdiBkwRohlkL7Gt4BaemO89pYBEFvI5/3i5KLHOVwEzKDF69gpvKtFTX09x+Yn4KH5i5CCiaa6F4SLg3+pYmTjp0ZlixudDm2ww8Lj7O7dbFSAUXO8PmhrxG4XsrGriiapqLvSGsLmy8Tn/rdXeY5wFOtGtwSoU5CiamBqXxIsWuYJ6PO9BYNh5cuOde+o1xL3+vNA5cdAiE6uP0FzLL5PoQ+f7ppctXswp/e9k61V0zZ+wovoVl9cBXR0Mc5obt0L1cCY33cnWqJjEsSLSjPs74HrvEIb5GH7wHqP4kNla9PElhWH4M9mnEx9kJpWpukvwQRTLyHC/N0z6jbnGS8aHqpGW9nlmNcY1Aoq4idO65NR/Se1bRExfqhs8J4P8TjH6mOc9n25p7fn1bnF6STrVb343iOMuyzrKKPx4ucWPkiV7hwzW+API9lWOMcUghg17WLQPDPUCM9lh9syPHSqvlyjVfCb7+b+6yAOlZia05O0g8fEe9Qdvva8TPuVdwk/5bxSiM0zcB5UZ8qEnYYbwHkRT7Or9VHsI1/vTikmK3Oqz46JE0r1bRk8N2Vk+o3xkqcZMvZDR8T8OVSwWaE4dJZ+Q6dZb0Kt2YNNs55QXP+H6lmzM8fDN4OP0Hmi281o4aXlc9BBpzvQea87LMNnt2NTeeX2kuvEaO8HW+Z1HY8f1ifwuGRqqtpibv9H9QP/N6296c7opG20aXsXyWMnhKYDj0Br69eATf9nZtWqXcXRBwvqrVco/PpjDO0+3pmNJwqr+Ynvcs+zr4F1BLAwQUAAAACADamTJDDVfjmTAiAABruwAAEQAAAGdpdGh1YjMvZ2l0aHViLnB57T39c9s2sr/7r+CkP1C+yrSba++90dWdy7S5Nnft5U2Szs27JCNTEiyhoUgeSVlRM/7f334AIECCFCU718yrNa0jkcACWOwXFovFo0ePTpayWm1mf4z435NL53Ny8moly2CdLTaJCOZZWsUyLYNqJYI1fAu+l9UPm1lQirKUWRpks1/EvIpOTh4B4JPrIlsHv5TwXK7zrKiCxWadl/y4EP/eiLIq9SsFgV/qLsWbamVKPIEfWSF/jatWOXEj0hrUU/zlFlhKq6nv4Yf7WpYldEa/f4a/xgE9nOZxEa9Lt3gilvF8p4v/SL9UJf7xQuSZ/v5zKQq3OiBTJFZvEIPfZoVwS2XF0pR5Xizj1DvyAloyxbDZUlZZsXMLbaALphD2Zxz8XTTKLMQ8K2KoawriDMlClFOchXH9cxaXck4PXQhpVslrOadOGiCvVoWIFycnJ/MkLks12FE95tPJSQAfIJeX0DbMQZwkRF2aomR6nRVrAgpkhWVfrUQhghj+r7ZZsI13QI5ZkGRLKAtfsLKiyif/84yrTCb8L37sPuteQmWZmhLL4JKfjDaEqxx6vs2KxamnRJW9E+kl/fW9ZgBOISqVFcM6xgNxACsU9nVNFensmwOi3TniePivhE4A08/i+bttXCyA+9c5TMRMJrLawdt0LmAgEsYJk7ZDxMOcbOMySGlaADKBm+spVbPCMiLYwkgDpCJgVkU1ATGbqIBaI00W9O9CXAfTqUxlNZ2OSpFcjxm/l2FY44B+8GjCUNEVfspNLgpFcuMAa59GBtiH2xo18pqr11WpOlSIeDbpbwNjuphIoDoVCOJ0YTq1D1Y9gdZAgakLNVBrHACf6k8Va5B0dOEXotoUaRB+rVD9+sPF64u3t2+/CSPmolEbQj2EZu24Ci7ef7iYvL+t68sFd8vpL8yg8HRYwcOnTun31jT+IQYxZ9VBfHDhvzjyp64vsa3rLEmyrYKxXck5CKh0s54hQYsqXloQN0UCJM/jnm1kspjCk1GIxB+qui0UcGlsaaShQqWxkp3YwCW10uypJRp1f2Nba6kOy8UUwFp9BDr/XlS2rAviWbap3NrB1ZVcXF1FtciYEMOg3FMwJ8FIdWZxCn1OJShZeBVk18SBDrgaCo+6nAQTktKTK0fVBl87P7+5srttvpOavwz+kaXCpljo2kgNN/gmuHDJtWNqnF6WMEllVWggpw4A1ShDwB+KvpeiGgEoQMHji4vW7DrDGWE1JRawwwQS1LPgobTmUdjyp+ZfgDDPclFeYi2gxawSJI/wC44Kfzhd5888kcA8U8nCS/0qxRx66goxQPXzGdpeIF0aVEGCiLWHq/sCoCbrkYEFr9o0BDjmMdkk5CtkJFtPuQQsLIUQKJbl2M8YpwO0NuiHXbYBBQFEW6Gm4f6D5o7zHNVI5iJKRiIaByFacIAi5ltfvxDTbmP4RPFRD/G7EHCuXChIpBqR2EOlq3wAzGy6EB5fBPMVFJqDPAmeI/WpksE7sUPYznhJIiE6gAhiHAAjqKc9phe3zS872+TSTpM4vGazONxGwx9LTODEGC62VRNYF8GorVMdjd1WgsOkiitIFnEVQ6UPIdJAOCFSAGLTFKGe4FcfFwdBaKYeiprvY/OckV6/49+3LqFfa5ZpNYHdex3y2/Atjo6+tqrvMQ+sCWiJTFg5kMwcU2OX+IdI9wsXUSgZ20ChSYJJDY9Ofe8jNcttw2dID8uo2T9cSY6ol81u3kXKz1di/m7q09nxfA7Dm7LV58pl4i5LNJRg8qYBCCqWb2DQrrIFsRZCV/LuJk7kAuxoAwntYRRVK1lVMl0CwYEpkAQFMmMi1xLWrzMxjxEsaPPrWCZioQ3OqhLrvFJGM36eXdcMjKY8tQaGB5rdYI0rFL0qcMmaoeG+lQDXfW2A/TUGRNkawwiCWZYlXjbPW/ys1tG6gKaGPEJdbbEPzKb7TLHOqcv11myQbBguBqx5UqYF1gUzGVoOCWDpVdUtmsaaNlG4lAzmYI0EZY+MqZuXvJ5mhFx+aDXlyBI2J1pixJGf+Llttm7ZsThLIk5H2CWyiFA9fNliGJpmixVID0xR7yoWWIhyXkjSMePgGuivhFFsZoDOS6Qklyu+1dorFdsAgVgEBNSZZop2cb2YF9mNXAiLQGdQM83S3TrblH5bxeqMa/RaL5BRsOlm/YWE9ScNwK2Kj4IUVqClWp2WZTaXMIwFVUHdWsiG2EXdiW4xmB5YGUTLCKz0D2GZx+uoeo9T9SFUr+F7+FepvGjor3LgRFEU3t5eXTX7ipOnsOxq+HX8jrU0jlCVQNbAqejR2ej8Cr52/GIRPuvQ1zB7RAKkHC3UwmAccgi5A/CYv3SoSUI6FKJ/a/XXwavUO0tTD9Rdus8digFHO0QfdCxAFV+Qd5AZwy8ssm0Ki0X/u8I46joKVLJKRMe7WbbY8TLD/x6mWS5TIfrKrBH/FbzvK5TEM0DJ5eu3fs5O2UMa4BIEyBCYmPw6YT24kJCwCGa7ICR01IY78ReNEoQu/hNabI4jHJtxjOvejlWfyPuHbiXND34ZQW26LM5CRy2H6b2vYj0Et3b9nMSEryoNxq31ioYJbTK+wBAA8cZktPCBwOG7vP4Kdbl4X+mOS3Y2r+Pi3QIG0RRIazQIvKA1Tl3wP2qk5KIoM16LUUEHsGlYO/YasM0sucD/SQsL8/II4LSa5Ilv9BtfQLfpHQvuqEf0kYu+ln3s9I/oaYf0w/n2ODWIbsjssAgCf/LkNzQxgSBBVZcesXSw6p+e2C3gc69rD19EjghiUbGfZ6wGPgteiGVcLKAEqPAyQwsVTc4trg+3RZaCFvungJ/AZZs0niXCXRhagKgPTQk7VIbC8leZFmoQ8KDHilCrZbOYV45jEDDoFPCLAA87Ihh63CwPL9ySsHregAmOFbTO5oUA2Npgv5GFAH2DdgB7zmxBL1HFnSUSlDQ7vHsI8+/QwNfOZk0EjzpoUgkOTZY21bA8RULEoQyxhpUXNITyzSUx4MHUaCjYD0pkT/S8YX34BX9v9znoAKxnWalUcHtlWY8WMGJr7SbNaXk6gOyQh3o0N8oR/xvL4unw5wXBCrgpj5eis0BeyBvoxSWZ2x0w4pKZuyTDurvQVr6Te4qgfkiyeNEHCpCU0YZIX6eAPkG0ZIWY4mIzicnB2cGtllg8lGER+y4X4hOt+GrA+9cERlH4iupp2ldOzZard2D9cnWF6Ly6Ghs3nYM0Vc3qb0QeWaDCeJNUE6hPqO6w92sC6GlYkGR22Yj3sRnnsOzvaZ6hdLaOlLW3bUcX4Adr3UfrhmgPG76pdtc+GIZoeK/hcYCPZZzIX8UAimwzTcNFbdE2lA10KdsKwg/wy58DhrRQXk/uIAhG5Z4xrbfUSx0WUGsZ6nZUvwFlYyBEEazKixR0GqIJu3h1FZSrbJMs0HKlpXu6FIhhWAR8cWG5mktbHOxb3mnlQ32xtE/tjIWm0fWKAjnoWX22XSiavaGg/oprVOZKXKTyN19Nw3pY1/wY8xskcPUcv3bUN3SoiprfAMXMHLwz3z1w2pQDFdoP6zX0HRy7SoXW1HCH5fFCJMIx7eDbVC5cRfEdFSItQNZVnskU1QIujXZAc1yna6uT33ZtdQJQWnF+z+FMbbbodFpiTxQCsfuq47aB1TKrFObgecQDH/ndamgqj/4BNnR2IwogxtbOsYNDZ3ebVqwu+n7Srp+2UlV1udbAXb4x1wTkc+VDcKbcnOw7tDDFjRxignLbIHRCPeZuf6r2aCoK39S7vV/6fZtYu3ZtWj7Njq34svasbUpcGlFIUi7m8lqiBF6oaIM77MW7jsm7+ul6PWgdO+jH7Z4PdZ8xopvyShN1nC43yAcO4l8wEnjrQmtCVOW6uHcTAsZ2GEpUn5DodCuII9OnOyIIC/IORpltijm1E572IaVsRs40cJEoP0d8E8uEDS9d04sRXd7gkFwj94CkjkCZTtTgOvj1215ZJ8up4fxuifct7ZzJ6y6pJ8vAQDlQ9jkeQS0I51Z7jhjyt03FbR/AAMmpiOvjS06Hil3Jac9Wh+TE2vsmsKziApDpRsagVXfYJCowDOCcPF1DJ5E9ctn1HnOc3GrexaWv3h3n0DgID5pMhYTQxeN/ekI3M7SuZ3efUwwjNcBUnO7veHIZFbneff7oU8zzaXaqgpbbWYdNurP6V1HNV8of/9mES0w4xGxVVXk5OT9nyySaZ+vzCe+znE+sbZOh+zFmbvevpbs2ZYb5h9Au0wOxa/Mg+U2TOu5h62CA398irX63P0+kmq/mnLuGFwXJxklCvs5STT7XvDz7YszB2ypWkcJZ+WsOtch5iT9dkngGENGUwAVMIODPzvbySd4DzIoFuQVgIUWbB8op67eSzWzY/hB65vCsFBTfz8OMHOR8p505OCTF0LwtSNSw9rVKI3cbhSmunMEsYNpEGoxi1KtlYz5QQFe8JMAweUILQPJ6DxG1bltPX8VLZqQ4yAtxI7NNqc/CBOr0QmlvLeJHpAtaIfvGo6dsKB7JNsxF0RgVdcAjHZciFXQsBGEd6FDysUWHgLR72WVlUjg2xhMrDlAx2XWTfVE7OtompPkPJ0wH6BNS+EOnkPp62weoGfztcBvt3bS57WgOYxXa4i3a4wMFm9PiiKN7j+ExPhdUM5fDUB4x1Mtcnwi9mzFpQj+UuDHGv7kbh88OI2iqdyAl0+mCITTspdnDjiUwyTohsT1020OoLoy+7R4+V4ThXU2sxGjFoP7DwHAM7WCfS6xD27OicVDoGGJvdHS/SnGIvl56u3D+o1zQT7j90dhvgoMcAJ3R0kMI2Wm6jzDbJCnWgOcjSZHqBvFiAaBL0UuLR9BPE/rRBNQA9AlQEAY3HrVzw7N1IHVga22iqCmAzvIeRwEqCpJBHDXJfJDYrxI7NaI1tzdOYOdvLxToLHStzhRm6OnBMoErHzjb1FTPdLPzqjab+FynOkW1f/b1cly6UcS2gnIRY9pjOyauMcmAcDX5Zysm3qioPijuWZYhYQ7azWEvQzodkYfTcd0/Dyk7BNUQU6biJ0TD3RZZFwH73ag2uSIUPopyGjXosIe+9bnT0JQGKejQ/B46bzi5PyKdsx08E7ZXWvWatkcJ3H5Cz0WGZ8CtmgbaIVE9H5ncVS8PFNuqFhqdzY3P3xPNI00Op3neZhhG87T7qOgdG0fZegjJp5mpRo5kvf86Dr5/+io4J/D2+SV4aiCcE87OJxoAl/4tiJNzjxxtUnC/Px3K7N6Y7qFMPQuDveUoWHUldfrXtjzaxxAHHiEZYrLgaA5btTipT/SBwSRR4ZS4cAcRKTF5RrrUD2sO6FnyD7J6NY2GmHmj7khbEnNsW9I44OxqEaA9ZzReGM6AXGhZmuxckH5wRBipPnasuQzVmw17KLetsm2wjtOd21jNdL89/zh1NC9xdpyam5zeR/y2w+/EziDP4QScX6cxU/JDCO8w7CxJbi1OgjrufHbVdkqh78n+fVtTWwcrOoM7kCUZFfrQ5GHMmRVLFcSnF5UkU65lAm8p70JZxSpdgzryRA+zouoM4qYGoL25jgV3dlQOXLWyd3cZpzrFU1jqSN7OjVUDDPqbpUsidVkdE1Kd2bmlPLUZTxN17gGav4mTTfOQ+ihUJ09w4zpU2z74dY3dztTzeie4cdYgzuWZicytQfm6Q3PV7g30IMtFSq0nWbmnBSrqNQXUKaN5tl7HZ6XAN9hK0j5pxKc9XfIIZ5vleCPHf1nJ5crffaAqb+8tnG3yhf6K/Wgsuluj6TlJZkjU22RczkMVV9sHH9+3gLd30Z6T4Geyja8roQKwcSiu05epVrG9WCi/MB6Zx1O/wRXWqORaXGH0EDx99vL5f//p4gvPwTb8EHw+gaNmBGNbH59dfHX2+OLV4z9OvriYPP6vf9UDqHa50P3XTWFLjVM8g807NeT96+xxh4HHAH57DXWHze4OiY8p7EItb0MVVV1T2mdOij0++L2K0wUfLFAJxkxKsLbms2uPWEwpWa4FOUvxcc0HSk4fpnxUaj9b9wxQO47KuZOyuYuioSOS9a6dR5OAshlhMIutB8LyVJGlX6M86IQHnfCgEw7QCU73uraI/v8qgt+Z6Eexeo/yn2n6rkqAFuadKkDNbfBPyQ4Akm4GhqsbNKE+aIYHzdCC/6AZHjSDBnJAJMH/Qw1h1AEGN7rqwBOGPSgjD35Yf7Dod1P9BEZ87oOhNA/XIt3DX2slo17VaqYb2ED9oygfs3Lh6M/tk9kkDfxZVQo7uwg7sHqT/bQT/BweXT48otzKeaMytf0BqBl45dl3CMC8/s/rpjrTD3QJe9Ta0vLVMhQ0GVb+QQO24T9owN+9BuzZCfVJuWMzRrm1rIMilv/JygOltJ+VI0pz+5B8l8EetWkSsA+CxXqy0XlSsa/fDlhhYb6iO4UIIoB7DhAlkAdu8++yDWVA+JQouysb1YHRgh2ppYbYVNBcT1QJepWPC6Ly0IG9smWCUHFW1ybOygqSqhnZA4pSVKu8P22wLTqr8XdI1BTtkm9XWUltqFTqslzpEw+Hk63b1aOjmh0wvz01O3U0ZdvX6NQkjniM7FeHxljtCWNRhzx5N+SIEBbNSKr+QZxkD+uwXXP74CCaAPsXC/0BLX1LA8VAzlG1QbI5igJgQMwvPYe14RLM1klwEf3Jbv+FWAOTLjiPArG2WTSq3L0FDiMVZRnhCRzLg0f9sWHJtKzoNiMPeSOOGtmi9rjAkoRmlfKi1gl0rTRF5BBDnDasTSePFcHptpwP6JDfos435Yq/XW+SZEopmfq6o6HsMa8PQZRtdo+bo4eHIA9Fqs4MWb1sLDWovkeUf6wTqY6ctOv+9sLx2IOc+OFklnfK89V21ny4tUUsrTiAUQ/kEV/cUsSUPCIJhn+c49bIItzQAbTf1wxJR/zjNGPIXg3Kpuc+aLWANd8OFP/W2dheD5Ungcdd5f2w0EWHp3T+D0oBRp24ojXtYNPJrw6+srv3ZAEWHU882mv11BitUFpsiPldcxWhxSAD6eQt5rO3Ybn/Th1P0j/LlsOh2/fiZHgCfZhUFxJFWi14gxGJQ5IPABUT7Dvzo8pRbh5D7FYly/mGufnpcDwzAnTLe8q9Q6zrjpGIxsaI4jvCY/jlg1C+2+n6I84AGNZ3F/VeKR1iITw7T2VDUxjTMervtSRnyVSQ/TVNQQ6MGNLpUH2hU+EcnQ+gX+bZuVjuvp50JZmT8sYjzwyYOxyg8YkRe0xGnDjE4BctD4z28RnNobfTveHS/pxBx/NCpz+lXuu4yZ4Grfo6nX0Dd4X6ln51vkXDPl5lH6NOVyu/Pt5pJLzsvMHhriu5h0Xbw6Lt0xFb+Dly0WZ7r+6+eHtYpx1rs3T46eocy71ZbL3xXpjruJavs50CcYd8tgDRQ8FHXXFxj3fJOrsQ936TbONOir5UuHzrs/csrLnAmn/y9dIefZktS+ukHN51ru56RYWZF1kFtAeTibIW79zuiN02RzH33XxQ3/PaW46vzPYV6jgDuu9+bPcK0MtgVJ8DbV8aScfXum7tNpBWIl4gySmG9dy556SswZvaOPVQGHzO0G8tq0lfu6S94+I9rIbW2YKjOummmPcUzRkU8ZaPezZz+6YL2gQO4mImqyIGUa6BBotsvsGN2Y77bAC0y4hV424oXZ+1HTbkg4PddXVXqHvAi/Xl9dprDqjh+Q590pX16L6wVDu2w8BczV6pO+YbHoeKTnyj24VcLtyWMQh5OJ6oAzqUCsh2e8XF8YYegxO6jycOXjx98t1PT6P1Ai8JdvoFPcVnummPREMknJ0FP7z66cc6xCJwCtuEry4zcGSZN7OootGWQsVhDZF0ZvpQWcdb/wW3TjetVl/rSwrPUPnSFbMhlj3Pk1haAUaDN61Mb/z37FqnRdUwiahafMkX3+I76hN1v1mTSIw0to0CJLnTLoBYhQDilxZATeIdldVrqt8kE/yo2aV7GB3zAmo314udVyzhnzGBumQFoybqUv3buj4JYEXZu3afTVzIvyM1xU0lFoYdtxOQrAMzpCc7OYmwIt5RgjWTGgsm49tn371Q7KHsjJ1Ko1+7PupUWquYr+iW6TxbYzmQ+DdyLoJVlr1TwZ8gnUGDUkZ4MLD3LAS/8vJiF63CGA9ObV6jKJtXGdhWShuU8c6juy18ibjEvUexXGqJ7fMdl7wcjBsXAaIC5GPzgLFdtgkXLNKecx/IuxP77DAwZqWEuSI1oUofgiM1SAdNNfGa+21znaIQrz6Bnty20GoRYk22bDCFoYVUa+O6Oy28Qauz0a2WO0Zt1ImdDssJ3zgl3WPdDg4sOAjlfHqykdH9OEPV7sUdLnfJN7NyM4PBzTYzNSsoQdFmzeV8TGbnLJ6/G6tb5jtuCDtnOwwXyRZAYna/1aOsFedqvlZ4pnG6Np0Im7R+1WHC5nS7rn0VMIguV5j6El+jZcppr885Odr5hP71Gk4KN23r7ecXz1gEwuJRyBuhrHzCkdfxwMh1JUO5inHvjF/xHYcIUnkQMMbUGc3LH558Efzw05NvNYHn8Q6vKNIXHfruk+rMlE4ej0IoCxBM2Wq+Mi/XqGbxySjUKHz9Zvtm8ebsTfRm8vbz8zfbz+lJND2DXwqP8DBUZFVPGQYwbkpfTnayAegGTqxB3zS+6UdjLpUZ8hq6BFNJ1gBTMiCSnxEc0wO/m5NL6nbCmvxP3za1s5oxr0URxXkOluqIwakrvjUHNZapHaICKjYMrc84SlhSSpjgby+f/4PbCp5hJD6odbXNOKMLVtb0sgHAuin9/P3Zdrs9w5Jn0KAANY3bqLAUA+18LVNQ1KIQZDinAl5AwQaw9SapJCYMOScgrebM1Hov+Om0jXhxxanwvXPU+Piy5XPTJ5aQo7zp5LQ7Jm2+Xb+ZPd+TKv8hU/5hwc7ajoiceVLTQSaFz/1iwe6Y0i7LwnK3NuyK2n8GymCGtikZH3XsoS/We9h0D5/VHqvkDvtbHR64/cHrffndQx/W78ELd9i9dUgNpYiL+arzTJYJlQc1iu4m+l1UnLj9osHzErChzjTMdlxRX8GLdQfeTN414fvKqENEe0yjzgNFFiTVXxcWrTNoyxgR5sh1+04Fg53mamVJSRlh+hBqCTqgRF4ReGnkee7ctdW+vUqT8Y9iGc93DbmS0MPIetcdtWsHMJiewvoE/cn1g9Nb7WO2nqGfmQnIcsp00Dh3yTrMiJu3hDeX8PcpKpf2Blv+ZvGloiwavKJI9NK6nsx0E49cNHjqtYXZUaJZiuLjA0pDilXftjjK3kY2zKMvVtObyTUv9WwhW1vOdPOBZ1H9komyuVWHbNjLfB5K964LVbebl4XwU7oukY6V2jlR75sp+naGMecdsiaa3KzRCdaf923NUqwZ3xsG5pu9leZtmLDfWGtgk3wfhcQrefH31RUQRRpWdXpap9nBx+n2yQEU9h1iAF8dfEyl5lqto2qmbbGgJUk0HYAc0V9VyJKRL/UPx6Fb72b2zIRvv/E1x1+h3xG/OIqZJ6O1bUmaCFcARD5emFSVgNK3exI3hExH2jhXvPTJHJzGUWGLHBoZ1W9LHPvKFa+6Hh8oSlTi5LvLkE9aCNgJrMNfMqlybnTcw/PpigM3T7IjDvrTJd+3UeAw9iDs/vYsvlckmhg0LRFx/1xLxfuyTJjhbFGhY0+6ZQTO7Whjy4gNooYqtmUEXVOhZAR99zK/YXwq4md7ejVw+TWQQI9TVs4NHKEe1rFe4k0L/QDyQ9t570M+7uz711jVdJ5IkVZTuTBxKsav5czAE7pojbevxY1IspwzbgMMfCiLwEBi3x7/Us5Oe1XCpZ/jdr7twPLPJl4i/vjizNxeH6zEe5BVc7mOE6tFLcLUreI/2LeKt52yX+4BqDptAXV4ttGATRRuTIMlwExXUX4taJ1nNYWWCH25dSeH4j5BnqWVFZbCDzpnR6dCrycGQxboKVVUWQEoG+0Cg46ud8FWVit7frrPStQdmAQvGRDd5m5DoxPTzsza2PtRziiawsQaPtKcl+/OP6htwttHOvOB/fYi+uqRF+3ymsSr1TmnyUaC6f7AkxB55+wJQoFpqUHe9kd6ofLZdxPrSzzs4VywevD9qtovOMQZ0fYmtn2Cx90a/9Huzb2vK+S7JklvMu2dKV3w9zxdQ2/C/ciTtknV9Rade8w/xe9E943VWd68eHzYNHrshuPQf583hffgeiESAQLs7ugeIsp+plK/Z+64kzC7v7kaKtF+rov+nmftHmTafc0d2Rtk4lmXHugLn3GtoL7PoJM9bth5ts7jdKcKJxnbXOrnCtrF3B/6RpOZzPz3+LiSk4I7ZUkSdKx6qqK/OGAMd9FaRqP90tjO6mrc+uxuFDxJEvssr50/Trss+m5JYLsw/Fu2SoOXa+gE5i/HdKh1DJGnrloWqsq/QOWoxMp/Ee/jdZ4IjBbxRtMi+k09DI+YnJ9vt9vIqnf+C4E6x6IdEbk0RxP9pbOXevomGKBbCHPbKj1vJ0SjoFo9xxNtUtMpGpdr7PFI4FAdlZ7ENxnGpOiwzEN0HqnXS+soXYsH6Kyksqs5OpxmgUl6rJFRE21Nr70bMDACK7bPYqD6bGjXTjEt9Tv3iK2YMllvEWtSjgK+78ouZV/1Vum7c/Xwubmatt1mjz5W2uPPOPBi5ONz5RybI8c6dHPcRjI5NuotZLOM691L/lWkfQGywb83mYpZpZn5l6CkiurS7uB/BSYioANudHDjKUeHPl0uTzxTAVN2iLsIuuYEbFpaRyPCp1nc+Ez4zREyUwz6CS4vEXV1wOYJUYcaz1OoV+SFLMWIHyik4D65uak8qEuxz01RtyJhIvIYvqhDAOqEKCKnYgVPLgDMxROncwEoBDG23pTGpaJi6n5EQeUUBV2jrriRqaxknMhfY1llqQoXSx0AhSjNkQpmyoWo8Lbb4Bdsi6JuVS4ILFLfjkZD/Jr//eZKjUpx3yuSuxSUxYFS0EW7UZGa41Q4pSNWDOdxLs9v/nhO4YJxVWeHRGsrxmMqcxTjUHGGV8ZHJzZ5IIlOpzjg6VT7edAly+IMD6mY40dhqA8fOWGb5SYHtmhOsHL/RQa2snY0NAXKCt5juiPxMWWChb9RgR6jfBSeh6fB50GoxmpFAk9xU7lQnbe6paPXv25T1euLCEC//SaM2Gbgqr0GU7xYyxSTIZgLC1kkulytY+rioJSon4NtvNPbOFhXliBy4fUs21RMe+UO+NlzrI62UnJ1rLY/eEOdo1Tbk440DCk+no5AxkuOOFBRw0aihhgmVdpRCS4Ekx+SyvB1ef5EqrUYwhuc/R5KxF/rBAuPM6IdkdGpczjU7Ll2DaRPVWP3u4fpDm0fHM/ABykeYahOrdsIijti1/jXODpQN1G1hrh9SXJZsea3YGvV4vZJUCZCvMOtK1Fcx3Ohjx8rbnlJdBkwBPLIcsAoH7XA41ziRpkXqgNYmeJI1WHiQCekRalj3Lo2RbRET4dQ4U60BIq9/+ARHiaamLVTVMdlHyE8uAvf2DULMNxyvfL9QwzUaNX3UwOXOkLhEhWccqCwvSbEl0QOvAw0m4612Mqlx/ig21HhFcF1F73W0RY1wFAXDC27l3HaA1pjfWgLmjtUFbstzDA0XYOlBZzf1yKWO1PlDmq3VTF0DjjR896x6jIHtepUghb/D1BLAwQUAAAACACOtdZCD75/OqIFAABVFQAAGAAAAGdpdGh1YjMvbm90aWZpY2F0aW9ucy5weeVXS2/bRhC+81dsnAMlQKbcxL2okYHAQdscGhS1gB6Kgl6RI2ttkstwl1YMw/+9sy9yl6LkuG3QQ3WxNZr95v3t7MnJSXTD5LZdv00qLtmGZVQyXoloOfaJotWWCVLyvC2AZLySlFWCyC1+KagQIEgDBSJUN0RyEiAmUXQFQGgh+IJspawX83kO91DwGprEOJFkvJzfv53TTLJ7Jh/mAcI8OkF3o03DS3IreEVYWfNGkrwta2HELhb0EArhFH5i8ud2fckbiKJIO0pW2wZoPul/mS4igh+0sMJoFlprcW3UyDvz9+Ka8PUtZJLsGlqLID5MglIRCVEp0lhdfli14U1p1Oiat1JnrIGaCyZ580BuoILGpg1/8XFnSqLhRKttzwitcgtAMQuYV/XrasetC2hOSFplWIyMVmSNtdlCdgc5KdgdEEz/whxRH/kdWS6JfOMLXmmBlrxHU1hw+Nyye1pAhZ4PjicsNwj4z0D8yom1vCu+/vb3GuD1PYPdKT0VmKkCTk28rm76bw4bkqasYjJNJwKKzcxkc0awOQWCLD/xyhXbZBWtT0x9lVKxmSYdQHh02h9CtSSlNSNLA5/cgJzEbVPEvdLrBbnkZamS1oCo0X+2xqnBVtgrcgic2VMBthXGM/L4FNhYuaJ3PRai2aYIwIzMYnXqwQTp7nQD9FvXqr7lXmoYwLq9o8gQNAcy9MRr+KV3eOI51qsY52xFfKu/b6HS9mxgyhwOqyRtnVMJeWjTClOq0mnKJmRTS1aCb7dXi6eBtY854RvPXIjOBnlleVj/DyxTBaEYMaJge4iu/GNwWmHYUSKEVH4q7x0TYcawuzDvjjx0LrSG+tYKaIjO0yGjSj9VYpMjz7j/i+cE2+wf7OfpEO4g93sqg5527EYeeItdgd8yQEYYIchhj+lTQRxGFqbxypCpK+6ngHEhuUlmZLdl2RbZT7Qwr9uimOdss1FsKNUdyCofztx66hbg5gJQepTkXf1DLy2Vh25aYTygmbban18ji+3sGs5TjWA5z6O3BmTbVCS2Nxj54/Hs6c+LODFkMfG9sdTAZAFqCDxo+NyRKcdsNfv43TQsjUbH+gaggq8FeDUGgHc5SEjRT5E1rFYpHcaJ/P9BaxFfy06brpkKP+nJbmEMiwVZc174ON3/OHxd465bVuQpSnSdOgPIUmsqQP2w7C6F6WhwqbID1HiepCamCR5Ekntzdj4j52fnXtaZSE2VRyJdQYFEgZOhZtGjQozTdguGje2S+NH4vhit3lhJm7sRO7+g2Mengrw8i0dyUFOZbSd93lQivh8mQoDcr/zMlXkNeGuzmwo3uDx0/gpkx4CxONoWXjw1bWipg/EsLMikUSuQsjFDpyQ0Jatwv8L0BwsKEVveFnlAhmtHXriA6Rs26Mcxwzacl1pFS4FhC3PMaFc9s+/+cH3lZ+md/+3i+hvNCKoiwmPcpzteBNWNbSAotv89dYdvDdkbWPXFdVYr1WjN1HVJl/qBMEHMqW6xs70B9QOdKBi7d6hUaxP4mFCXRAVeXx5no0u1c5unEW7jshXuqhnrR8mfZSn3IvkPKnQoyeq+cPz1z3JqH2XBkeeeZscSET7THHtVZjC9NTQogrdBJ2NPlpe+VTA9+FQxxk99S889WFD3meeKH+3eo8U/Pv5kQY0DDxa7PumtkQlvDActOm/2XwTh/tXZGNu+uiW2217N9oQjsnPrfVAbteRniLS331vh+I7pXOiVBtv9+18/6vng4TWKt68k8IUJKcbeUqkdKQffS+Nj6F7fHbbQKw2thL8Mt0RH9t4BR5sz8iM2MQwOeKX1zngk3B37+h0zGMkDm6aFnw63uwOgR1ancG8YW6BsBo5BW5XgWO/lsZO9VrCr/KvrScAa/9Mlxb/Lvtmu0PXSsxuD0XRc299ryDuOcv8CUEsDBBQAAAAIAG2jI0Oi6PERzwEAAAUEAAAQAAAAZ2l0aHViMy91dGlscy5weYVSTY/TMBC9+1eMAivZLGna7oIgUpUD4rAXOFBxoJTKJNPWkNjBdlmttvx3xk6bdJetyMHxfL15bzxraxqopEevGgTVtMb63mbrELX4a4fOu1Fpmlb6Y9J36chrld6wg8ciY8/gVvkt+K3UPx14A1vvW5dnWWkqHG2M2dQYgLI2+0Gw9i6tTSnr0C1TzlGjrEIvVV2oanbNbj59XL15PZ7AjNAjAVUjT77xtOBFvpikb5eLMR0vRBH/99d/RMondJ8u9+MYJ/uK7AnZCYMnvyQm7umcdnCCz/mUblfkDKWdM+f0f3VinMXrs/jXUbxcioJ/2S8u0yXRfgK5Az6LF5MKUTxPBGOswjWEgTkvm3bVSisb9Gh573sJsq7N7UobjbO53aHIWYRWJ4WgHHyghLxvStGhLn/AxaLfWR3ze7+VyiF8lvUO31trLE/mPfbv4IVSam1oUzAWBu6HNsopTYm6xFPSx7UTQ+9D3z5ppJxZG9tIz/+HNuyneCAxMDqu1YiAyu1QJR6pfqyQJzeapKlqYJTDhQujDLASuiDBpwH+3Hv27wqdFo9VFJ8IuBiQxdkpdMr/nf+7bt6yLLH14O9aDOSox1CahA4UONEs2F9QSwMEFAAAAAgA2pkyQ73wA4W/DAAAWDYAABAAAABnaXRodWIzL3B1bGxzLnB57Vtfc9s2En/Xp0CcB0oTWU7SPmmi9tqkuXim/yZx5h7sjEyRkIWEIlgStJtJ891vdwGQAAjJlpPe9OH0YIuLxW8XwGKxu4SOjo5GV0Jt2tU3s6otima0cD+j0dlGNGwr87bgLJOlSkXZsLQomNoAoUibhjes5kWqRHnFlGSIAoQ/Wt6oZjYaHYGE0bqWWyAysa1krdg2VdlGE983srTkvN1WjSZbneC/bX0ut1uh/GZQjBeN5fi3UK/a1W+r9zxTU/P0XNZ8yn5MG479eRkAtA2vu/5v4cFvznkm61TJngdHJmreLNNWbXxm0TQw6Fmm5dgOp0j1ZLe1UHxbwZR1E/L29emZIY1GI5pW9jtM5AuYRFHC3Mpy3I9nMh+NGHxgas9gFebEP78MOrBnAeG7SyZpbma6+xvOYSUbOWcbpar5yUnOr3khK17P9JBwKCfX35yQYZw8vOLqOD1uYJ0Lfoy0Y7PMnTb6S87XbLkUpVDL5bjhxXoKpAZWJIeJy1ATGAAzn6YFeeNA0ynDbpNZh/KrLPmk6/Nwzl5YKCbXZIpbXl9xdgN6wxI1FTSiMSq03rwH7sUC/qzThy163VwpL7Utr3nNy4yzRtVo5EainksfEXgRCwTOYLbGCTwnnt5FuuKFRdipmOZygYjiQ9llR6tlzzyDniENlrvmFUwGGB7tTdT5pgQT92RhBxCFM9w1iLUjGhkSZ8XCnihrHLJP2WDJ3rz6wQ48o63MUkVPG57mvk7NJvVGD8/O2IllCWOTyzLdcuBMklgjDdZv9QaGTNGBedjIf6553+l+2OCos0Oq2+88IaoFKOSVKMMBISd0G4dQ01CnibvLcIXNLnNGUnPV1iVLnn16/Jmdf3ry+d13yWwta/C7Y9/yp47BTTzX81IUfOx6VIMfcTrIqr0NfvtSN1OIRnnupTleA2zTOZl+9J6PqZAr6llQq4FL0ex7DTRmlNQtZpUA8CtajEFANr8/UoxNOSCW6iO9UalqGxdryqDDbMqSNM95Hth7o9l97YgWKNhuV2CcAAsoAtcfZJTaSw4V7nk84I68CxuOZH4bds/jYXfkXdjZJi2vIOLYpjnvHPwQ3rJ54IboQ799/TPiXAt+Q3O9KuSKwVbZhYzty7YufGhL3Y9dpzdwzqzXel2j8MAyRDdEH/x3jKHYFQcXAVFDzlYfNaYbf/nYFfXwkImUHOJRcD+x1xqe0cY/BycT+hdr1b5LMd38SMbs6tCnWBHPnIfQs5zd+OEmg9hUpXBSNyxLS7aCfbzh2QeYnEJ8gONbzk3ghJ/qCVvAXDx1CQ+IQJQfypzBbGK0d50WGM+poPtM5BoBvgTkB5Z8Hwd4q58DLvRmTQMbZUHHbMzpmTkb+j23e3ioppVAAwEWc5iD1YHP8S0Pg2kv7Ap2CDYvBuFrD4oMGCEkP9IXD1rmHy20t7Jb0DcdSEJuV10kRPTdBZo27NXZLz8PQZcbtS0GyEQ9DB4iegE+kP+pIkKQPBSC1KGQfZ579473PHgn5h4OfLcIz5F3Ilw/3vFnhWxgL7p8mrRMlasKO41M5gZmc8V5aVBcxXPwf0psbUTuR703G172aDeAEgDo88LqAdrpnQCxfoWgY900wdDRDAAyTu7Hy/4RpXO9JpBgqP7wDdFfiOeWFQ+CcSnBkphNGCdxVHtmDJCH54avqIjpKSJqilBL7cSRn/Ts8Zi41WgMZ1RrEVP60CWuOZ6JgVBNjC6yo0LHlUz2HuZ0kMNxJTNB5y+lnlaLMM9crwdjtUR/oHgMliABcyKWrhWvB1vBxybGfd4WGcjbvqIvoTAcVsR5BULA8Q0GYIlDzLYUAMLgILwVWfj+QOzX0JluKrYEWEgaqNlRXVf0EJFhF6c1J+BClB/AYGt5LXIbS+ESU46U1h+1TXNdrcrSonA9EEuW1D+ZsVOVNFgmaDMIlzgGEBtZ12ItMjhyJdrPNv3A9fYopPwAO7uQyoHKCp5S0ncK85WBAyUsNK+NyZa1qjeyLUBPPnf6smN2eYkzcXmJkt+3je6BhzqM32QQbgdGEUkDIQnwuMEIJpvNyRxz+ZM5PpjYZF6S9wiFWm8TF0zhdOf/pJ5JWpYvU0nX26xOJwO/a5QjNq1ZqNTfokgoH/dJMDHdfkqVqsWqVTzsVHN0NMs7TKzdX19xeSNTiRW3bjPAbtQWH1StyDIX7JNXGkmwLZn3AebUb+7OwDlLTpLZeynK8XnHjGWRIs04pCqoIQZGerbBpXk48U+P/i7g1zCuXncWRZ7P9rRLGbAE6+fKYY9goF1D1+3zyJ3tAw88CsN7l6QfPTe4bZF0UKQVgNIANC16huomCpSM/Gig9J8NB5HOsUYVWr4FfuqWriCnBAes44uIdGLwhmapsGQvIdHyqzpWnlCd0wSvS37WFI1hE5VS7ZC0xDrKDnm6bRisO4UkLSFWTqKWpW5ZmtqSL8JpDGSYymvAny9XHw8uEd9spF2uLmiLLvnqo631Yn+TVuJikzK3xMR2sbWrtGcAuSGhZP3Rl6i9kDdATdofvtBLJQ+ISIOIoKN6yUksPvd38TDYeU3tti8pY1/jzNhPf1ZpmTc6MLy81CO4vAyrvqEEnOX+bdDY6qUTEKvkLdNde3p1Z+7uMCxwV3smYX8WgAdSKHx/BhOgDxYr0u4u2xaY6W0ixqP6rDu/uLnIL44vZhfzd49OxhdvHk3s3+/n2qP/hfiT708u8kdJ7Bjxw8lgybEQBqMyJf0pS3ozTiZ6E2krR8eMhTAIg8vZsNivu6D+s6tatlUzHli39j3O/hmWfX3XpB3SAEcJVXQ4UQPQHC4UUQ7Iwig2TTFAQY7+BZlOyKj0GpwlbZXfISHruYKE7A7ObZeelORJL1K7NVMZ+Fz9oqtjgu3Z8d3ysqwjGC963/Lr+cNI6VX7GQ+T/9EVDyWehUPgLhdbaI6udqkBSn5XgAdRAL2GbgHTLVnSyoflSbIGW6Qk3n/5r94tOBVlwvk6Ojp6jvRG70dv1tAfy1bRqQcGMeudyVwPppmzlZSFCxYdrh7VuN8/0764B25BV4vc4jqm/BFNtUvpigq+uKbqNgda3Y4o2vtgxg+bYPEp+SHLeKUwsk6rqhAZ1QZOrsvcJgMoL/k8CYeHYmd424PuMRjDXuKkQNQ0xtYpe/r48ZR9+/jbiXMYdSMVzVKHDbGFwZp8g7lwwzmiDyLQPqI9bHH02WGUbUWRo/c2wRE4aqw7I2XRTeJg4P5A+2nHUwCH/K0esjNQxevucDL2rXfg4vgJpGQqvQpL9KDxqaKXNkxem0DYP6mD2pk7CVVap1smYFm0lDkby4ryMlSwHBQhcZr12GbsBV+nbaF853T8xLTrWz3pdSoKirAtwiwUDj6axuWL/uksvWJ0vSVlFR7asm26BaUXdXCcpVvuCedlXkG+pyKLbF5sSRqNdfU63jL1UfbMe/zu8oI1h5hFF9AcYBm43GNQeGy87FQXVjxFzKrjn5ihiMPtpPENRXxlOxFfaibin2Ul+qJYHxLA/5mm3ctGxFcxEa3AHtugOw739yDUPVKP/go2oqHvbSHU/Z9kH7ErKwfaBY3pK1hFfztlp13oNOTLjxidk/z/oLmTibiXNtkz9+lQU/EthEqk525V8iBzcRUZmsyOAJnCH2M3pqJk3qYvksQ3ml+oWnUHu8Cl8bH8RTJEXI8VxwpRbmvV3rJEq2N3CPQg7k4jdxYDjTxRpgtdMR5/SnxWiJB9ghMSf0FQSW+LbF98MBFl1VJEOSWlFviHgsvHQWkkUiFEkHO6ePYuNBzdpMNmaO2Wn6pd+7MOYvlfph362tFXzjt2mH/NZcXL6AQcYwsVg+m9vpsl/m1ZIYpM9m9YB2GqSzfk38HWAMJ8pUJPxO2/pb533cIE7u9cr1TklZycfqiI32214xJMrDfp7ncf63lxs+YDpt/s7U+mZjVnZt71faA5M1Ovi2NzLf9zuEs9Z2Kv3G7h+FyW0DKmXTpyvQ1SfB+zc793W1DvIbPvyRURrt3+Ljz2j91NtrUUbPcvIRsrPKudF+OGRq9Furt4Xroydn4bEb+Otz/rslfy2JmufGpvr+RIizeVNy/wCH8igpx4l6/75cQB1/gyusaXPXUJD4hAlNuu8WX2Gl/mXePL7DW+7N7X+OyAb73Pl9nzfO+VviDFDC71hRjuVYe7vwaiO7V9NSJa/4yducB7wE8FIj28OqhR+rdaXAnwDowq5fgjDTALYTQcXpyVhn3ZsS983QYMiS/v9xTzJbkDvsLWABFpwZ1cKxuTL3NlJPbub5eOvWr4UvKxCz389YSzUmji4W9ITNxAF2w8IV3DQfd+zasu6wVil35xLWf024bJ6L9QSwMEFAAAAAgAbaMjQ5oOioPbDAAAzjgAABAAAABnaXRodWIzL3VzZXJzLnB55Vtfk9u2EX/Xp4CdB0odHc9O0heN5YkbO4mTjuOxz9PpuB4JIiEJPopQCPKUq8ffvbsLkARI8E46O2nS3nh8JIBdLBa//YMl7v79+6ONLLfV6qu40qLQo7n7MxpdbKVmO5VWmWCJyksuc83ElSiuy63MN6wQGS/xoVTsDTKIR6P7wHS0LtSOvdcqZ3K3V0XJ0mq316a5KmQpdnugFHXvm1fPL2yTGVNLBXPlpa6HPcM3fwAIJ7JmwPey/KFa/bx6L5Jyat++VYWYsr9xLZ4kiaq6DFKRqIKXqmiYFOKXShZCL3hVbkejUZJxrdlP4nrcMpzMRgx+YK0XW8FmNGS2hDHsEfz3eMkUyRCzl5mAmZkWwooTaUbjnqqk2sFyQH8qJ2aPtmW5n52fp7DoTO1FERsZ40Ttzq++OqcdOr8U1/r88XLB1qqArSlAhzk87ogPqB85XRwUg3HQo0ueJ0KzhOdsBXu4FcmlSFkmL0EmNZuZ8fhz+ZDN5+zyS7fhHjVQy5M8ZYAFVM0Vz0Bu2HKfPJap4QAPneZ7bjPiA3+nYs0WC5nLcrEYa5GtpyjzFFSlNSxl/kLltZrxR1egkfFPZkS2nsQNrUs1acfDoHjB95LNkW+8EeU4qoosmrIoaod9MWO4g6X4tWRqzUp45klZ8QyJfGaoUYcXPPT5VLn8pYItSWtmSMRrYPr8UF8tO5kGpJIlGB6ywb1nG34l0NIsX5+bGeswpAbg6Si7EPvCKtvRbCHKqshZ9AgtGHHO3n548PHd4yg2uBq3/D1uuhxmVivMHS9+aTZawRKKASoDIxqBkHEY5OJYBveCDKp9Cg7GAZsLL4JLB1LY1ACLhn7jO4eaNfggUYquLgDpT6kDdkySB6mx3xV5sVIKHEVuVL1w2BGEJ1P25YOvp+zrB1/fLIdZoV0g7Vh3nSDBGxpkZEK0tEY82/OC7xhsrCGesbGdJ51Yfg6uQ2TQ3CFyDAttYS0z0RIaHegZw/W7MjbPFEPmDJ1B0ybXVhYOTglnbHpID7zkQPHBGsCs1gMZ7AzHf/TG2xmMsvHF6n3Py2Tb7sGUGM8pjo3xcUK78mDiioXkvjSGvkYe9k+8fouCi6ISXWR8xzMtmvjzMgN4uPEtHIJwGHuE/ztByIRxfgmBQOalKMDDYdA+QHihjYHAa0KQE0oYX6mqZNy4HghiEswpHM6eAAQhIsgE1phSHnBCPPsCnNUZ0J9xl8sZdkKUM8h2Q2Ub9/ReJHItE0g6XNQE4gqurxdKUEe9WEIjXTf8otqtYP2A4ERlGejE5Aq+3/C6AEvIxThhr8d38C/4rrGmZgMaljn2upywIRoQbV9AUAaTBv+uOqLZrgV1eQy9Hp/z6z1PwLqyTB1E6vPT1OXyoZaT4gxhNBRjcI0TkICNXyjQN+SZfHNizEEWLYHUi3UhQo75W8yENLkSNA74xxkONQsbneKiutNj+IqQVxRYirVmNJKxk5NObCrVsWaKyBSXu9a8Bd+XgT2jCwSlVJCzFGTejQFbgyZ8GUYayNGCjjNMsD4nnSQvcEo+WVE+WX3pNtyjhqPyyarOJysvn6zqfNI0N4Y/ZPko9i0p5Rs7xPMDHp3n4nNV2oTrei8Cvh6bwT4iZBuNXKt6/rQ2d+Qe4XkDMMFgQ74vOJgiL3xT29jWBSWKSGMMzmkPJLMQSNjZGXnJrcSTD4URbELJ62Z/JmzhK0of22nqxsiymDiL+YLS07x1QNUqk8liI3WpB1wUjWD+COOhHFpPALcDhHjgCsBeWpfXBbyd+Ad1YLsq2bJU6ks8umqIIClbXTf694XAYYtK4364IrTNXQEG3S9Th7yeCQDen4r6F12/3M4Z6DeT3zi3Ud9tc5eq5FnDu6/yQH9v7gsc4+79cPDx2fWXGujv6/kfWwn7iG65XRW6DtWJmDRibvIkB0TwCjw/fJw4XE1VYQGnQU+ctrlvV89MIeLNq7+zulIRs2e/7sH/apNILZe0kOR6ufQFa9mWMJ1T6hi3PRN0LY5YAm2Wkl5XiO8UheTCyDFGg+asrqV0jr7remxvmV6PXWlDuw6PhnQxrJfv6u6bVUOnsQVy7WrH499V0LpWzXpAKQTR3gqb1r683xPmb5QVqcG3dgVtmHaFbDpI0lai8B7+XGx4Lv9NHuuYfVTu+N5Ke73d/YQZX4lEyCvwCw6Gb56zsBSLAUMJ9AfnBXuGvFeK4+aE0YGZbGuXPyQiBZwwewROe3/zX5vOW6AKPhRQSpnVcokCdJHgzNHFgtNFaHDFDOPhdbXSSSH3x+JBu+P7y+/2uno7MoXO1Ebmg2UTnGuwblI1udSRhROeAoh2XGYLeIJebWexb37O/iRNKXxr8BaQrBBdPbKui3mnSJtoNTy4SbbDFQ/LyC9f9OaAx8DZIAOjx1joDRfaFT6o6t7yhR6/tY/vTtSc6OhO6Pnbd2EFdsTEU8Jy2bwC9kPKbHNwk70OKpOU0XADfSqCI8+6+hSkUThGwLv4VLXaMs7bd26y3krhJerGamzlrZIZ2ec4ooWBvdB07pHY4d8vE4GPGwO5rQ81M1J16OGku+1IeUQp8XijaCqMXYOgrxzOaeMzgN/IdtezcWhlx+N9gPo2yA+pJ4T6WmOtvwg4k8+J+0Ls1FUQ+YMKPRW6t1eZW+ya2maL4MnUs4DeT6cmbQsuHNz+JhdiYU1kyiigTM0BQUJCcH1jKYbye1tfsLxS1JfUuhKY9ht+5y27YLmmLqHgmpenqLI+hvSkBvXWa4P+m1XjRNKj9gKDN+YMvUJ/XcWqs2RXpberEX43lAB2olouwy6AOl0HMATL25TpZ/SxoPRq3J4A5p9LLSUwNBloXeelisGcyhVTe0Sdnz0E8yv5plv9AemfYy0cvAOW5+zpi+1FgRWFzjG6rzIU1E7om7rKs2vjC2zNwzLG0ovrXPCn72C608i8tAvxZ2nP35Y9WIhRZMyeijWvsnLGzh56s9ltxMIu41fgKKjmY+jjECRQbf60zy74xvhJDgd/cSVVpemDudBlnTVoLMG684o83StYyA0RvrZWOqKwR/7n/5haHy//xcKhf88hcYfQbw/wkZcC2C3yBEKCmO/3IFhdZnJcZtgv/AWJpmzFtcD3eftxLgxkROcYFj02OwW6I0dLS7GAxP+6eG4O5xbSJ4IY9d+wMOXGQQTfDq2WUwBdnkbPHobR9d9B1Ubkgj65uNBya+lDSBoICY0eok8HgCk337L/raO/w/5T+R6iJ/p8K/ltzux2KBimd3Yy5nbR/xAYQLm/PRjwrs/dcWDDDzIZ8gRxzGA0HtPpCDabsQfxX++ADprjzuBA6j8QNtpbXCciA9fxGUBBd5wGMaGKjZ/0QMNdcx2uUWPXDEMhLzC1ds6LbmmxYZRyvV0pXqQx+6eq2K4Cva+6VRfYiCspDoS4cK4JvP2jZu58DA9O/DunQ3/ibMiAM4rcJAj1fUwFxCZQcNIBCvxN4Pqtc55OOfkzJvPllpft/bktx90xc8XsefstFs9JN5/7p+wa4H6QABW8+1J/88IasZfl25tpB6lbbg0lnQyI3CU54WiRwnm92Mlc2GNeqNzpbTNMBpkAiBSSGLze+6o5pvxella7nj9ghvhph48Oiv/UpxD72cJaolZFSQYHCAR/TZdI7PuJZtkUU/CbkJ1kKDVtc5Nky/NNk504GnyCSQuJR7huhGMEJTQW7aAIw93e5kaGJYDcZdfcaHvy8vldcuR6QeZDd2sX3q47NjIdCEH+l3THLnClnbqiRHfDoqQQ6AEiNj6APzDmANKwA9fe7HbcBI0/Mh92PKK22oWkDOwC/YPeUlSfhGRqlB4WjOskoslSAU8Dp0fT+QfyBK9aNTTugFQTtz2Pw1VF748LDBLs3xW0pCPHe8BKNV1Xxc2NZrTHEH8btUJT89xeXDXWberHixyMbmw4Bf2H+72yKcfhV05rxCilsdyTnMgrpzJqZjdOoOdM3G+SdzvO+H7D8FuZTPNTD7aedHc32v8j8AYQ5uaQnkI/w3HIhVk3YB1zDR6PFhbo9HXEPq8ytbGPidqBTVybt25dP1MJdwJefSuuzktXUoXAu+5kZnTSsiidWvlot90b13gBoeHS7dwX6kpiuLNXOtsQFz5i4bJnTMSbGLzJj2qbs9c74A8bgtcLqARPY4LART01xO+BONZI/I34le/2mcCLokF3jUpt6Owt08PhEDt05++J1TkODfKwuzEL9dWb0euklLnemxmCAO2V7Nlcow8JK9XMxny2zviVwti948VlCs5x6ONHyGroCIEunO5oz0it9bc4eKXf8E4rnpGO+l+PIrtsGGCfgKJeLjTWjwHK5qLmrNEAziYVTibVTUGDLnPcZtBUD2hH3fz3Et2viTTD7/OXEv8BUEsDBBQAAAAIAIWYPkOZqSJPLAEAABoCAAATAAAAZ2l0aHViMy9fX2luaXRfXy5weV2RTW6DMBCF9z7FiC6AKnX+Fq2QsmmK2khtNxwAGTBhVPC49lApty8JpCL1wpbf55n3Rg6CQByRm77Yit24hMi0hobZJsvlxOxJOq4rSe64hJocVFT2nTasGMlIIZKS7MnhseEEojKGzWq9eRi2LRQnOCgDe3KV8iWJpMVSG68T+KAKa9QVPGcvC/CD6fthn35m6cWhI6eh0qyw9UIEQ06R54zc6jyHHYRTsnBQVc8NuVGee53Z5DbCueMZ/oUe8f56ncX/3+9HOz+MPBas5KNcz1U0NV0Q97bVERqOML6Mg4AGZuXS2xY5CmUYx0LUjjqYJpLKDo87S47h/paM5xW+Ir/1xWI6U8PaWYdeX5Vs+J3e33boqNKtv+2QOkdOiDuoW/WlnxIw9K3EL1BLAwQUAAAACABtoyNDG1tndmIDAACICQAAFQAAAGdpdGh1YjMvZGVjb3JhdG9ycy5wed1WTW/bMAy961cQ6cFOkXqfh6FAgH11XQ9Lga49B4pNx1psyZXkptmw/z5KthK7XrcdtsuMALEk6pF8fJQ8mUzYWtiiWb1IMkyV5lZpw+ajh7HrQhioVNaUCLVWdyJDA4c9YBXYAkGjsaBy/16KleZ6x9iE3LBcqwryRqZWqdKAqGqlLWw1r027pvG2od0mIS94sLhCUytpkHVjZRizencKcATxQkGq7lDzNU4ZgJurd7ZQ8rkfedzPVgu5vrgMgPvxCADvU6wtXHi7M62V/o2XFwcvQgX8tzuLhuC52btijKUlN4aSaXMMC3F4mZ56qAxz4oFnscEyn4GcnzybwTHXa0N/x5ute+tM2zgOyRngElSZnRi7oxp5fzMwFDqXkYXGIJimRr3frNE2Wu4Rkr7fKUXcxnLbCKrpkje2iF31Ou9U0veh+K72UlmEbSHSAtTqC6YWKiSGMhMgwCEoLb5yK5RMnCQczmsvgBZ5z4AzXboFCreL6HEOnDHM4QMvSSNhUuRQcMOtDfujpUFjyHPU29rb7s2SYJT4WaUHluEZWhbEGmqTrNHG0Zt+jtGUWOwF5DCHvrsKuOQfSXNvTg2Bw81edaF5hy1zLuzHZuUFPNhyBJ9UugEOL58+c53a9tUgIqJijZKkbnGZ8w0u0aEsg3E8YiT6NqmICmqNySlMrjq9+GRRWpF6KibfowRlSkHG0wHCcKS5IJX2oo91a9AR1dfFQ4GuuBHpz2T6ucZU5CKF2JtMH4R2OMOStlr+oKMfNUz2Z8omSy15hU9qarmt0hkLwtprgXozg61yjUgGG9hS3Qh8gxIoKnI07A4Wgv9LPfKrdvChjdX//yk1fkSqo/KNxTs+B6b/SM+/TKkyazrRLbeNWTrnc2JnBj4QOsLnUWPzk1fhgHMEhbuzi1Invc203Bt16wGLFsNrt6L51gM+uL8opIBNONISbe7fNBWJeg7XusEHyzTr0dr7ZsAHkXAEN0RZ5Yrf+7jYUjkCNS66TKXkQFpfH3/J8bJsPy6EVGDEWlJmxBvhcerQTJi65DsKiSA19XC5Y9QTyh/bKO/i6PxscXb15vpicb58f/nu5tPZ4ppGl4toBgslcQrzOUSdhqOO4P7d6LIaH0U0W/JqlXG4P4V7J2upbvn4m+IHUEsDBBQAAAAIANqZMkOjFt/WMAQAAMALAAASAAAAZ2l0aHViMy9zdHJ1Y3RzLnB5jVZNb+M2EL37VwySg6TCEZz2ZlR7WWy7AbbbokjRw2KhpS3KYiOTLknFDYL8986QEk1KSdEgiB1x5s2brye2Wh1hr/qe761Q0oA4npS2cGe5ZlbpVUsGB2G7YfdDeVQN74PNz8J+HHbvleZrGHR/Ytrw1Wq175kx4+EEk8e208NiuwL8ubq6uu84bJ3f9lvq+A083EmduTbA+h5UCxbtBVrU38GR2041pkQUh9bwFupaSGHrOje8b9eY3iCto4jfe7MGw43BZNeAlNnRVJ+VRFrcsoP7OvKinwvtcgb6/BJwimB+vYVftTgIyXqQw3HHNbFFpkcDmv89cGN5E6wJqFSTfeV5xlifZxA9by0IGdJ3DUrQHMRrUH/8/sm5+WoOhjdgFRzZAyFlBlqhDXb0w32KhzVDNPybPq7ZSeDzySQO9N4F2HEhDyHMniE2tc6nYdWMNI5URZ2JcX6j1nBLTR8bjuXTT2CsRugUwLcRMfyXGVfNj+qR1xI7m0fmUdfgTw6NAqksulgMJrAgNPcU9jQRwTNpS7I9MzlaRalcY4dPmpOR8/twzw7Qcdagp+Z20BKLsXsaRwqDYfUtwZ47hrDXcNd6TPwlJn4oEUli2eCsZGaxrI5g4IbhTri0HJhsIiIWETOPQuBw9pTLuL73E8WPnuIj6wf+CtG0mLQjWGfiFoN5DAMHLmkq0b9V2jHEiZomP0XqRpcKN2nOq6d5CbkZzmXqS+d1OF/S+UT+xjI7GNyEhtLac/E4Xz0HM5pVsFmFU9E6MbjIwGuss7v2hgLf/MLsvsu2zuVlFYkQzcOoF5GknJjt/E45wcynJSpKOglmvhOQ/ZjqIXx53qDyPN++fH2XlVhlHKL8svprB1/ELJxOLlg4MfSL4EQx2uZ1vFTrsKLB9VKDuCSX6p070XPIYz2q4OYWlI416h1sChpbYpIWOmqsX+ADt3nEt5qYjZGr8bNYtms+KNPXNyzDLEx2pX9S0xAlPjghnkVK3fd3FCMaDi8LfS35P6SAGpk+QcfMRVmiwo3AXoamZaMSBTpjpiVVJKPtzYolgXhR/8szDfyXUTJUnP7JJ981fL/ZFAuazgG1itJckthhqg+pzzXutTwM7MDNON34PgeDao7j0oh9oq3cvyvKeVSB9tgUuec5EVg7x1eKMKZDH6VDymcZkEAJepmSydL/SfC+ocXIhV+Bwkc3w869QnN3kbhcDwrAixH3DsXrLfFzf1PBLUGlq+C9NwvH1BD3aLOk+ka5w9hFU9AL+TDOAB1ldI1J2foX/uTrTfEZWmZZIit0vJSVcXxxwvHdpserUoYiVNfzUfWTRidh7CatKuYqSMHyi0NERPMWs+vCTU82gu6xrK9+YljSKGZyP0quXjH7COFt+f8y0/6vEyJt3ez28f8SpONLUiHdiH5kWIbqF6t/AVBLAwQUAAAACABtoyNDA4G9gHgHAADVGgAADgAAAGdpdGh1YjMvZ2l0LnB5pRnfb9M4+D1/hTUe0kgl3Y6Jh2pFN+BgSOgOjfGEUHEbtw0kcc52hnbT/vf7Pttx7DRd25GHLrG/37/tnZycROtcbZrFixT+RrPuiaKbTS5JybOmYGTJK0XzShJaFERtYKGgUjJJBCuoyqs1UZy8zxV5SxVNo+gzYwAq+ZRslKqnk0nGblnBayZSwy9d8nJy+2ICX5PoBMSIVoKX5IfkFcnLmgtFsqaspVleUMlenrcbi5fnGVvyjJnNVgEQlRWyBQJhrprFP4sfbKnG9usNF2xMXgOxN7wsQd8Av5FMOPQv8BFuI0tBFe9gBPu3yQWTc9qoTRRF2ibkdcEXI597Mo0iAg9oeQOWm2qw6XeEIxf4++o74RoyNYBHGW8BBOTEcTAvGVuR+TyvcjWfjyQrVmOCcCAJsY9sgNwIuY8JAiSpg9eQHSBspnNa52SmaaRrpkZxI4p4TOI4iRzgsym5pr90pLBKEb7ScaJRQmIthE/PrsVJyir07Cgk/BcuYpRZqqJj1CPOWkifervYE/etDqLsAJEzCzkLNHAw+arPfEZiE7NxZ/IBai6SRz7dUMrP+X/MF43kFVncKSZDESWC+UrjQpwElK4uz3xKPQIbGuJvaGsvE06C1cKGkxdIgqlGVCTWkUy+3p9O07PTh2+v4nTFRUnVqCWeuAyB5MAyMeqSckeKWEByYV+6RCG6OOWyiqFOQA4uVXFnRQHDKq6poZ6Y1GTkEigh8CYcOm4jOKkFrFdYc+oiX0JFgzIElpK8ZJoUJFyJlUmxEmogvEIoAnnhap4VTKb7MzEDcEw6KYHL7G9esa28tPpupWaA2vdt61ojyZBzEd137lCOdzBejlvHmao56groDr+ZTXJh/va9hnHEJFgbLKkNC6AlzRgGNo1MTNVc5lBq755SEQ3JQ2qigdzjizcOKHBFDzfM2SxfqrZnYj2gihSMSqX9U9ESuhAraV4QWmVocWZ6qrHFL9ql9jMIPcEAIAudhR2HC3CXwTEOM4vgs/uHhMDu/YNH58OKvL+yKSJJlRcT1Bb5VmD9nwy0FWBkQzdH16AS/RDR23PUoK2FZskIgOsDbaFvDZmXeUGBS2VKBCYb5CCawPKnSol80SjW7xyorGJ9xd36Dt0XBa1+avoY3ViufVNwvRr1VDU0A1Udm0e1bZPgRkDQXuAvJIDn3gUEbrWWoHGvyShEmBF0i99ZfEURJE4GWorFRW6jbYSx1SmM1YOquk1lqOsP0/uzrbruR8SYeKW+ZWD3qZzjRNVnA8l5CQYta4UBYJkOxQGh0tYGfFoTI0lyEcxvKa69+p6CGcm6oYJCR4UxlUJs6xpDF7zRaeiI3dIiz3J1Z8onRD63M2OesnRMNvRWZzAp+BoKFAhlE3IOSR2MbW216dnQ6W1TZbczXHwdba4uMZ5sMVejhw3nKDkD7jLcodZwMm8bxLaba7ZiAmYqtn9ScKDkwr0+2ndEC2Xau3EpgUJEf7P7AOFDWg+A7ek7To+t1uPjDjdxgOj3cK9CoeGc/qSmagPtKF2nWio52TCayYlcTlZgFGgKlyELgPE5wEtI3RvezPlHj2/m1VZCjznP0R92YHM8jN+AjcMcOYZmz1T6YypZFyJYzPqFDMj7xJoau7LnLN892tA9Z2xn9J/h8bAlDWdUpthAZr/VGyaTnIG8ZJrahjUlC86LR5PMiINgjFa2UHt8dZRAU/jj9HxMzk/PHxfYmMJaAor7mIDdlmz2DlKChSp8qe0ss0uFGupKSaQSSGhKRpZjlmjK7nQX5KaHiBoZ7oDLaxwcaJFYgcy4bySAKl1xdZTp9GQwI/d6NJ4aRWNNGL70326i0LcUdiiY44c1K6TSctOZ2Iz6M32PoUf3RBv9tEsXaO+IPtDQXQTifhLsWyffiIb1Ha994p+zbPLY88TuY9ZQptri+VgVA5Chs0t769KrWwA91uPNVjVSd7U+47YdJDCF3pzhnp1p4Puokyme0ayCQ6kfnE1v6HqPtQACxjq6/q1bG0XXh3QJANuyL7DesqzCtS3LfoZRoLszAZieXSneksCvNStdh4Xcjn4lVDW6ZpgDw3RaAI+WXQrp9Y8B7VlIH4LMcciKCmpC1G9Ju9aDvy8wrBzVfHbqMNBwHJ+nNhwMlKF4Q6d28YYT+56A8w8SvxFyQOCgmAO4PaPJjQUJY9DHC5xS5FJfrrUKXVG5IRf46xTqXWbZ48xXhBmpxPgN7wdwwzvZjMnXb8m3Y3yChHcXgZaOYMtGyKEufW12QBZ7YtUSDXXpIfcNdp5d3QTV9HqJboFydh8b4fJbbEzxWfyQjIP2ED5Bu3GdA2IOGfUHl7YfEQZtxBxE2zjVnjjgVnvAt08P1mdmLn9On+P3/tDFC4WtYEVZtoJVQ/ox+gmmYDxUrfKid+mA8zG4BzFM5OFCWHXeARL+p6SHiSsBJi70RnHb+DZaSDOEb1/N2g7YEbIt0CPU3hIjod7Vn7kY7pAHL4bb0juAr68OPfTg6hCwv1x/7B0BdaYCMRMv5PLTh5AknEoCknhKOaay6iDbmcX/A1BLAwQUAAAACACOtdZCOLuwWkoGAADiGQAAEQAAAGdpdGh1YjMvbGVnYWN5LnB5pVhLb9s4EL7rVxDpwQmQKl30ZjQBdgu0WyDoFk2CPRSFQku0zYYWtSQVr7fof98ZPixSkl+tL7aHw29mOMOZTzo7O8sW3Czb2etcsAUtN9l18smy+yXXZCWrVjBSytpQXmvidImcfWOl0WQuFWk1I2uAImbJyB2jqlwWRMMylzWRcxRnv3/6kGdZnpPCKUzJ0phmenVVsWcmZMNU7rzJS7m6en59pa3aVZadgaPZXMkVycEXJjThq0YqQ95z82c7eysVy7KsFFRrcmud+6B1y8675YtpRuADQPfg4NSqTh8jXfIm+nPz6IPLiT0A94fgr1psLBK4rDYYdkV4jUfzrXXBbk9hOm/rcvrogig44mq79U04cx+t8zJPFG8ec/JQw8matqaGic2lj5Usqa4nxgK1TQVrlbXmdhO0iW5Qwc2GGGkTg+shWVTj3w1h/3JtSC3XkBLEumOMUKHlsUl54b5fRnFhlvC7YnNSFLzmpijONRPzS2K1LsFJrcG564+yDhnBj27BzHl0/qgp5hf5FiXdf7Hd+WJKeOXriywUfaaGKkLLUra16fABLA+rBWy4dg7lC2bOJ9HC5JJMJgn6J6k5nmeK1XhpChSkgPIqAXEFVrerGVMpkJOlME42APnoVCHWZ2kYViIEDRXpdpJPSs7oTEBi53O8dpC8DWSiUazEGknNOoTEqhUNjGJ9Gb4K5UMUAmpWG14v7JmXitHojjvE1JhVYVVBDVi0kkIb1SDseeRApza5OM0HuMuGWI2tB2QNde6vR+qNFzpvOvORI51Gz5EuA3AVVuCAT8J41EElOeUgHRz0H7La7DnDGS4nSCgZlus9N9Cod+MYu54AWdEQ6eHz7R6cpVmJolUihQrSETQNFQ2DQy547ypBf+rVP0qGCALbFTgk6Az7P20awbH1yegWpMheM8F2MkD/8jVBvzOQ8iRe6Fk5yy8JdEAobkVKIXW/lrTdlRiwIu991AyxZn0zjPqeYqZVNZn40eP7xJfvr35Mv//24+vNJIcBsKLmfHtSl3HbuOjNvM+skUeOPFQNEw9/9wfeWtFG482j3kkfeqvDpUunG8Qn9YHBZnVuHn9t3FgQbqTih4cO6h41cz57xWTkJLtPa0iVL6a0OcKxIubxzRG1k954amM83Y/gROdWYpDpUvFmAGUTskkBY91r0oUSyYeXvOuwcymEXDOlU9StOMHcStO26o4TrtBTT1s9geI7KD+207p60gdDdFp96LHeLgWjNXlJ1ksGeVE2OR0qUjpSyXUtJK00Npta9sgLaBSdRmwyWRkN6yjzjsbttO2X+4ad+OetUmDLT3ynVbvYt4nCUYvRxFqzGVhh9slkbwqXcsUaumCpFS8c1uctrRctqgfevxdcBO0YPAhHip+u2MGaq1EpxkPBvotk51dE0rdIuDCW10g+qOS/1rVD3eujtFoJJkqGXv49XhkA3Sj+bJvXSGWEtdiAl43WxYn8EUEtfWxavbQMo2feifd0a6fxy0T2OEeiyeEECa0p8ck42aVRlJydlWCq8zTZd/y/LSUaDgyNqwkMCAYFc79pLIaLuMdFcS1GQAEWCUpOpI8dCArG70TUHxolbQZgNjmO0gO1xDbCHKO03RVrmGwEPnKYculSaStYDkO2Kv3pFYTu8E4mjZbKIWe8GuGM9uJddq0jwue68LembwEo1dslK2G28cFNjy5nYF6RU/H97JFTTOGR5BRVAznF331yuqR1JaBr8dqFGh7PA1Mls02PnmJRHKKnVufm8RdfhzhL4KBFOXIvW1EuXrp/h0hteAo4SGofto8LEalNdh/fnGCEuwdd/2bFtiXPEffyyK49ouWfJrMn24+6YlDrjBGNQ5TqjmQW6fuiU5loF9sOJnoSoHMmuD/UBrB3rRCkjvkCutDDAx3PFiL/vHDYzt6Hl2e86mjTEDV9i9YB732J9lDzf+DBNrypGwXu4Y3BBPa1k2V123ezrFtZps9CQ1dEUEkQvXCIGCaOPzY2igiDqwcHkiHWMYk9IanRjGpngpeukROcCrZL7rDglO0D+7YYO3OD1T21PrA3djpOKTZhJQPYPWym27qLzQQmMjTveUgHEXiIfREVgWwzPd12kJSRHGQqg9T12MrJw9+OShz+/cFvHbjI/gdQSwMEFAAAAAgAbaMjQwN5KSnCDwAAQDYAABEAAABnaXRodWIzL21vZGVscy5wec0bXXPbNvJdvwJ1xkOplWn30rvpaOpO3dRNfJOviZ25ufN4ZIiEJNQUyZKgHNfj/367C4AEQMpOci+nB0cCFruLxX4D2dvbG62kWjeL5/GmSEVWj469z2h0sZY1g7kmE6ysiq1MRc3UWrAFr2XC9CrW1CJlMmcWWXk3Gu0B8tGyKjbsj7rImdyURaVY2mzKWg9X4s9G1Kq2U7Woa1nk/mScFJuSKwvTVFnJq1poIEsuFUlRcVVULS5cLitRz3mj1ho45UoouREtJ+a3h8pOzudbUSE387mez4rVSuYrO78S6jWMiGo0ms+BqXnCk7WYz9kxu3+AIUS8LKoNVzQW7f/7YH9zsJ9e7L+a7b+Z7Z//JwIoQFrTfItuPJ+XPLnhK8A1GY1GScbrmr2U6lWzeLf4QyRqXNA/k9mIwQeEfAGHMSO42bULyH5yf/18zfTCmJ2Ys9O4VcEWgnDVzYKG4CgXd4bmi6ISjOcpK+DMK72EFACO5LZoMjNxK2vRridkhhgqAf5MxRJkKnMJ8hjXIltOSSvMLjT1ErbvsjxlCDiJ23WTFlgujVLVLC8Ue1vkosNE2GBlLBRfgXARMi6LchydXvBVNCXwSR8ceFdzUGi5lCACd91rmDl4Y2Z6CGjxHKHnoFPcrBy1+1YFTdK2nQ2DaD4I1VQ5mRNtpxIl6KzIFWqaQssLxIifSi8KqHbk5rWqStQ/I2f8imM+6RdFDhoOxsdzdnb+jv34j6PvmdZYBbsHeNL2HNSDd6YzwA4chaXgH4Hh066NW7Ys+JT5djIJt4hi1vv6hRRrI9S6SNuNol1qySZZ3dOnTrywQ5nXiucJbGDJrq8B/PqaNgs7Jeu+vsbV19dDggboMeEOzBFNw9PXx0yS7Oin7rtjjuRhNeLWwdbFRtuktlQ4k0ouGiXIXAdMkQN2OM47dMTLJkOoNd+K2DL0mA2imdXHpNLD1oj89mxRS8RRgjWvkU1ADGcRzY0zjya+UjxjMhaxdfVovzxRDc+yO1AzTc4IJrDPGswK/sYWcTstMiCO84BryA+YhbhmHNqsZYMg2rm14Ck4f3TlAe/vcuQzSUSp2D/P370FFanLIncX4yc6IZBoxiJelplMuAIqh9s8jXWYibfPYzim7DuUYjR9hMrHi98PfmQiTyDOpowMfYDSwYs1BkWi2KjlwY89nCfZLb8DvRJ5inaNzPuIwB8ocDwHF3elADR7LuPI5V6I8VwoVjQVK27BRJpagRV9rEV1cLICNMZ/+CS6aeSzSxUO748eolh7gbETeCcdyYfR8MnF5qzipkQ/MzY/Jx34M1gA9sFqngu0AN5kKsClOcEojpF6rVRZzw4PeSntaUEKEjn+dY5u2piQo97GXUQ/mZ0dJBQ7FTv6dH80+/Twc7tHmeq1EwdpJTbFVsxz0GBjm3jYDnrQcgx1ODrkZ9shoMHGN1O2nWBClslajXFNLJXY1ONJYI+AdTtsOZqzjBZf3ly5vLbRbNoaAPgHxVVTz1FRfaGAUMmR2yGb9sQyXxbj6ATizabUEa/AREhbFk6isNA8yUVz9sHQYlGPUaNhtyB5wwhDRth+ysSnErwJot9PA7NwZahRx84u/C2556DVZlEUmeD5eFAEU/bD0Q8Typxa3Ik2sd7pgYBaGBKtn5t07qiFMkPhSY6t/scgxjBrmTBQDG+esqEJMTkoFlnbsAl7hGwslRDjJn0tgcnLgNjVALdEdJBQL7+K+ic8GSZLe9hJzSZ8UTTZpX6kbLe8Zvu1NiTNAJpahDLF8zH2AaEGlS/q5Snwj2MdVi9CA1FVI4xuLDlgCk2FiBkN353XdirmbtoZDpXCW3HccTF4jribC4B4DMk3xw7/pOHu7M/HoPlHA8g5lgg6wp9WVVG1dtMT5++I3REoeCGhrFcELz1l3357c8urVe1Irz3WVCya1Tj67fT16cUpnCojp7BfR2atWTmcTtuwYkj6xByWULm+jJ+XpxdfywwS28kJ1MbJ+gt5eX9y8eLV13KjCe7mp6g90WD4oORSJ5vHqF2DTJqSztccU09R04Ai0QThaNQxEW2YXnJEWWFkfEGEkVATDLPRd5BtVJByUw3m5kDGVXrgGsVli/bKph33YfqEXD0M+Bx7AO/OXW2YOmeAu/jck0BRO4sGj6P5UkV9//GrFRWJ7VSMRSOzFJMsw8+3CDDIEdQrvyIw1AYsF7fs5P0ZMqHTgDqpUAG9Qq3kWMges0uNSrt+qJwEktOBL8z0rvzFsfgEx5eO/U22eCGbHZcTSq1K1CWa6FDciDuAUk2ZiTFN7Yw2tC/MRXi3IxIyoPBSDFRtRAvEvP6Sr78B9jeSmjeoygTOFpYcDpEsguUO5ksgh4E0OoziPwqZhzsxJ95fYyp0qF2hZFR33YlDBr0jR967P4prwLARD5Bpw49cqKxIHuAbuJf1w57NlPWxNZU0mvQLIo0ho1fGND1CqKvSLWLtatiWbRyOO2S0FtLiyixOiiZXRt+powAL+KY23gubSWGVDEr4UuSighId8WAHkpSEWjcgECrwu1pkRgixqaJpzdir4pZteH7HKDvHBFhLKB5aA4zN2O+yqqEs/PAagSHwVopMNYTX/QTYxQz/dIixGaLra1Ysw0V6v5Tnzdi4KDH55tmEvcdxiIeQhOrdCdueDTGAoZCg3OVThlmY1nVcim020M8sc8XYlS9uXxfQNUnXINbZw5mRdKhU/uy4d5r6kPUe9XFOdqkuYIAAspEKyzIuczChge7d22azEBW2lNpO9gKbWTbNIbaxAcE7hK42aL7hhOBwR4PCoKbgsdPqMwZh0w+vdv0OTBfpzIlQBHL/29FR2PFo92P7m+QrcRk4ofuHifltoWDwaIfTb2E6Y6rEEpK6dWtOeSq1DhxTShc25w4AXyXFVgdfr+CzNmRUVZdRJC2EdRgignT3oCuVvrVhOu7yMmNnS6azEECVs1sBBpRlsCteJWsizUGP4Rj9qkgHfdZvBsMCU0qxQvdyHa6x4UItOg8XlBupgEgmF/raBBddv+h4hFJXK9T1HDAkJBNQMwRLi6QeUCEUebf1C7JQDueLJ93ZLB3flmcNVRg4tiyyrLhFKPGJbyCAzdhsNvKYrQRoMUbBKrYHrENhRTc+2Fio5gQ0jm5EDq58XQmp/oomVx2if4GeFo3q8TF1rxIWWE4wXlX8Tjdq0d1eX0c1ifKuaFp04dUDNjvRyaXFY/wT1/Jprt3Vw7umhe721hJ0B2QKUqdeJjpaJQ9K7KajO28h45iZBley5vlKpLMZO4r/7gHMh1TBj/zYpYLQmYL1ZOi8nFbV4fb54TNH4Q+sdxp0MU6z88FNQFyL6VWDvduSfr1n8F5GZ8vWWA7OJZgolet9FB4G09Q1dziPY0clOXiDSWGHGVeNBvZov8E5ej2ppx0t5BhTu/zYthkDF/t5t1JeC33qp9CDvra9d/gVUtoXxWYDhYbTmh++dnBg2U/Oj533gKjbL2WtdIvsrK4bXdy/b7JWCZlBUj92r5domKntuvduFRxuetcKvcVdI3fGPuYS2GBnv1lnaKC7bImEKfHyzk5RPJNp5CH6tUjvQhxsfAJVTyXBYHO8/3TmRBWE0QWuD2jg2JNUnBs2iAFlBhH0QEHtAdTPIRaWJUzAig2vbtLiNu/alc/AJlQSD/Axx/VDzNDEF3K0VpssHqCB44M0cMKnEdwV+neatxhxXerYeUvAaQL9gK4ZnXPVGmZ7g+jx0QFGk/+RE13Oh5yY0ac56QCjySS8sQAHEkoQKzK/Oandosxv6hB2TqO+qC90VadPFC8RzVa4TZV9vHhW9pYj2olHsBIt3gSNKTo1qSA7kG4EIXwINzdwfbxtnEC+B9ygw00Hp/caKNVjBMOlLkjk1nlz8WfroShv6FelrfM41hDw3UWQi89F8M0gAq0dgZfsVasDjtCLD7pi8Z+3WBJOo9TPtX+jCU9JBgsRzJUHswQv83cb3LHbnSUlp6D4g77/eJRbAfmFEQa6Ep/jU5jcyW9Xa+JCqDUNgRRoY8No0XdzU/bG+FRPrVrn9yXCAM0muh6mXRlE15/VOUQvlfE/1C7V7c57HVJmROxhEiYbhpN+zxQ/pvNhNM6/qw/O1Gv3+x34IO2Qn591SCfpkCp87FCLaotlcfuQDOsQXc/jwJZXsmhg8q4EqGJJZwgYNY6a2XsaG6VP3p89+dBBo3g6J5HDKYkcykhCvy53unXwseevTjw/LcOspV7zAA+M+DiMZDfACF8Jf7kZDFCYUR/Na3DlyAuYEeZyWDftZssC+XjNKGzz8spP0XRjaivBDK354dHlT0UkF7sdDqRo2qJWWkFZ0hofdgirpczTcXQ4FEW0oFvYS8m+Y9/Prr4iVhAm6+vhx1dEC0TxjYfCMbqThJpYn2V1BlabnfkR2p00DzWpUG4bKVDMbO8YFFzKNgss3nfViufyL92Tsc8a4gJb7O4UkLFXyHYlPvXoVgDRqo5xrOWoftJieZI8Ya9mlz2D9Vd6iY7IshobCZD+QZKEDgYNgRvZKS0kX0cJKHjCIGmN0VYECJ85uStDyEH/0QF1eh/alYlofAsxosIkb1Xp7z5GPWbMqsPbDfedk4N9kRUrHx+OeJhwoI/jLd8IJ+iWPL8LEno96KEyYwMbfjR5p0YYV7pxaE/PKSUeqSR2n6NbRwyc5mP1yDASf0OnBxsuM8bTFPZRW0mhaRyCRfkcCwJ1BUUjnoieUdqetz3oUhRl5jb0SJsRg3dKLbwGdF+REOl22CPfjuqG8JNctLQNmXqYhxZaCwIdVMv/EFu6bx2y1fapH+0VGDUZaBV0+GTqN7wxWBb6EdzjB5ZZKBebHezbChiQzFnuWMwutAjn44SRnrk8YyJexWyJd0NzQkutNfzmkv0gePYZVAnCJYoD+hrVqe9c0PZ7rF8qjs0rxEc1pVlkMtEt2B3aQRCmfwuZe5fxDfPtYvT4dyf6Ckyis6/+nDaqtnES+A5fadmI6LJvKbMgJ3PSm46ZILlxUdsSxenJLGQBXr5cB74Uhn2XLIv/s2r3qUeS9zXFxwd2Cd9IyA8z+IZK9HDVPZWsjwnBzjIaRbCzhraJgF9Ae4+49VOk00/4irbLMwbSEXyttON9NOHoZSG0wLc+87iL3knRtYeqJP6nD3NnLxCPv5X2QZh+6xUG1PYR2OADMB1KECldf3T3GqoKilcCsqgGniCibpr6AkRXJBJjnH4i0me8Jb2p0VvT5K5qxCC3FYlh1jyDd/4bSlj1Okj1mjBk9/c/sKRdIej8Z/RQesP/Aj9+/vzxXZGkzINOcoyXbwtbmF19yWNhR4XAFI483bfk7PsV/RDVwQ0JyG7UgIzdf//gozMPWw3mnRfgZic7UNvlo/8CUEsDBBQAAAAIAG2jI0OYqP+DjgsAAP4zAAAOAAAAZ2l0aHViMy9hcGkucHntW1tzG7cVfuevwLgPpDzURlbStLMTdarGcqIZ2/LITmeaTIYCd8El6uVivdgVzXTy33sObgvshSLVtE460UO8xO3cPpwLgDx58mSS8XrdLD+PaMknF+3fZBInotxVPFvXMZklJ+T87Nk5We7IW55t6N951cjzLyZxzhNWSBaTVyLlK85S8re3z+dEMkZeXn999frtFVmJimxExUjKaspzOZk8AbqTVSU2JNLkCd+UoqrJN7z+tlnOzb9XRc2qsuKSTSbZmlyY5tnJZDJJ2YrQpl6Liv/EZrnIeDEnJZVyK6oU6APzTM5JIWp2MZ3qj0VT5epHknNW1Aue4q8JCf5Mn2RJxWroP4nVAGD5ZgnsF4QWjjCtuShILd6zQklZr5nhkVy+uY4mamZc0opuiKwrotgEbVbsQ8Mrlp50B1gBxsbkXNZGNn/InNCKUUl2oiFbWtTACJeGr1oQWpb5Dj5aUXnEojmZZrAcqGPaSFZNu7ygxoCIKFFImp9oHRK6FE2tJA20MDQb9R2uAA1OUcgVTwYnO/uEs8/PSLKGQQnAgtxcAnkzkrxnO7Xuds2TtZMSRAcjUmRaK2OEjrZ1SOuLUVp6NJJzhBRZjxyK5xGE4U1VgMXiJAcDx3eXAX6+Cn7+5W5iAaf+1ZNJto4OhHuLdQ/oXZSP4N3uLEVghrAo6IZdvBYFa8mZn0pA840bC7/azfK1KEDDTVLDfkmtEGbrAD00PPgKs1kkkxJENxvmHYJ3y/PcTev5AzuDcPACClUwpazEPU9Z2t93VpBYC0bwe3zr2S+HVDWpO16JHxtoDKKrh/7vbl8SsXLiEE8eDtqiRcJGAGMmfGWdtf430s1dxGTgKdEYuhU05AypbGHFOyHCSuHAkTkn2/I2AzlOcBmjZkCXWp6wXLLWJbslohA8PkwVtZNJgGuDOHRFM54uimbTguiW1RVn93pD4QgC9gXwqDgDoejuTs+4uwttzgsciT2hl2wK/qEBZadoBrvmqMqBnKdwWcsI28b3py+Ck6rmWQGxb1GzTZkD5mc5LbKGZiyQEldQTsOMUtCzI61sjkUA1zgP4wRHeZKzQWZUsEG83kPUpsu8ZU/2WLJjnQBoenk4l9IFdQ64W9A8X1SsFHIGylyy6uL02ZxA9pB1vMw1DEZq4h68NACl2hE1jdcCPrmWA6DH1EbekS2DNEQ76bQPGU2rE/NUG4rmFuYMY6sRJ3LAf85WtMkhjCCvRjEEBDFY23TdA4oT0rp6RzOi0iIKzozdc9FIgvBloFygiMJI67rwjxVpKYDzjjEyVqBahGLb4vm21YtDtRIpanvGsT1oFW2SnuFw5z/CcDhtwGQSkAK7vSnVntDu5ljTKY48mwW2ctr89dnsO1SJs5aSIsK2A+zkG2HATqDyoj7KSGWzhHSN6InHGkDPGrHAoAFap6PnfmJLXCETrSmMFlTrA8YIND1giZXIc7FFY7URc79ZXqKvRWncVOT07s7O70bDMAPy46HOhkwsLGEhVc1oZx4QcDoTq+MM37LobD/ft/t++5tv3J7G+CqVsgmZyqF++LEPCF5kxwOiZKKEHeNDwVhAPgoSOOQxnnbJgH1re5WpWWJ+bTbkjP/PYDBkxQNhoDLObgl2vL9Wy2Cmrz9sSWNrJcfCXnx4ugau7dw5KKx2abRdGyoEBxv8w8qGUZdxh/UfjoyOQ5imdVgs/xXB6PhyYgAFHQj5cMG8bMGlBGZnYlvgmDYTnpMNz0EKQIsBElSbtfkePhkApjHxsuM3aDP4ssU/hGbArF1MVPW+tVLwLQlOt+M5VLrHI1pLRyBGKQE/a+Xrg1eNiENvptrsj3Zyd2rbE6sqZv8MBKxTbky0UNOn0znuuevnONl1dykpI8SEJgkrcTfc07xRB3tTUbICD+aSXEiWTtvqmpb8NLWA18O6q1rLxcgGcrHXpeMMZ9z44bHa8DFJxGZDTyXDHuTdFoCqX1d/YNEoi1pMTJdNNm/4/K9rnq17bCOIBnVhyjV1Tlmm9hPpY2I1phszq0vFQXGQFJUJrp0y+HdkXewLFkUsh37kpsh3Fqx0VTPjFZF1dazlFl4ys92hGNWnXgktsJWSOxxdc4jgaEFovX578+cvz56hk93Q2kqmdheuC7JBrDEaV0f1p2d/PD0/e3f+efzsLD7/0/ea6XpXMsuzJYEU9PzjPLERcX8pHCT1esYn9sTXyETrijVPkWrtOmMIdtpp6DNM5xe6YcZ660OdsPG/44ey3p/dzp4Ptu5Xe96DVnG4N963G0k8YVCS2Q8/BtFFVNkj6hOYRQtzrC1REJFw5Sy2oPv/vGA5PjtFMY5PHT4pbN1YC98bT6ktilGyyO96IK8YNOiBmSn2mXMgcxGBXqWXC/TCfouaQcSOIckkssHxm01jZckSfRp8d6d4cVCKIgI5A94R0BRy1TgmZ9GXrkvdbcXa58LCOU1gUecR7FaWx1/goSZCUHTDjJMdwk2eY7hRngI/NgwV5EWeyzfXpI32OHw4ah5IbziSlo1c669Vk+cLtPooC3aFPWH1UNn9UDvvSgqNZAt1AuAQK0mPMy+dUHOJABxUW7wjPsoVHHGaG4Qwf95v40TXLi2W/wQbyV6E05geC2nDm91EHj+sHBVPIPxVsH0ODilBHRCYzqykb4MODCg+IEyCrw6ft2uBV4uwon+VLvAxw+/gOv66YMzIA9WrbJYyqbiS7fBEYw8q9HpLAAYo4hfEhs+nw4h/qPU7Vh6Hlb0ACBGjg5A6GplhDDDT5mSF+bX3BMG8/cB3B6LYbVBk71SsDwNvsTDtlGt8nOR19++P9SopT2rNRrgANumiWOe+bS7clnFcOVLq8ptEFDVk/Lqmc8P+NZUl3UT1x3oaww8zCL6nL5CG+S0hyYmmP//csd7jD6Me0DkhfyCz1wLIw1b07ppV5jxUCmm7tra6tBaC0jljwL+aSWK7TwoS60Of+IBTH1/z3nWw6t132jMyr/taJNjT3hTNsu4ZUfwRtae3QR5QotH1hlbvUxg1q9lHQM1GpPrlm4LEx1p9V3R78YJCSu9f+BepqnAJrZa8rihIbJciqUgaLDv7qsYlQ/H1+4WPtd0bdq52akikd+4ELIZuamopq4Orabba9FJNI044T6gjF/WGEGO2lzoiDb1Qmzmq4xh8IBec6iGf4Hhgb6oOQ8eVGlqEziHJUogclRpyo4eCm251kPP3eKxze3X5/NVVtEnxkRYBrlqmCmFJdrCDQp+ekm/fvXrZnv4oTY8BZgAJDgYKAxYyIqlFQuuZpLtOaL11D7YYlXiExTITP1AX3ceNUtcidBfqAR/+4I3+dk1rDJbTVOvhRpNV4ZLuOuJC7s85YFHhyIwcE9Tj34nk1cA6YzVCebP6QyZ+W7RYgN0WC3LRHW17DK2yUQ8iVBA91slV9mkTLuIi8W/K3wWc73V7b2DkrRnonB9Ol5HXNe4BD1S0MUvb0x/bA8PewRNP+QEo+u2GtmS0StYDZ4D2yA+fqqrXdw4VL3iR2rNUyFTVMHXgaEYeYPYhI+/rNxcPwQPiAy8hvFUMf+E6aq+rPBgV4V7JelDCsqBelJAldL1Fhq9m1aUirCgh6ZV4zcDIs7Ozz0qVVYTwsncOFmYvWUaTXSfG5qox8vrGcXa49UJz6/rY9M3J06faK7Y2fqu10c3b0d6jVh5Qb/8yRj/tCxVpW1GZkJ6h91727qz+21bAzH/ECNj1oA3GVBoqXr9y6m0pT93mQcLj9fy/UFb4xiBQ1v6nBoNqCFXENpTnM/XfnoKcclR3XzWqua+Ynn//ZaTwOTUyIIMjUdzrmqhnBIGD9ltsWIANnPMNrwFbQKPAtxmtRr4xTxlcX1Ciq8ij6m580NJ7/Yp18ohsA1QNPz+xov/ulpIPDf5fFi7V+p6pYtO8eyT/YPigXp15qjPTK52dXWXZMa+EFenJvwFQSwMEFAAAAAgAbaMjQyrxn6DDDAAAtEMAAA8AAABnaXRodWIzL29yZ3MucHntW19z2zYSf/enQNIHSjMKbad50kWZc5PcnWeubSbnPOUyEiTCEhqKYAjQrpPJd79dAAQBEfprNXVuqgebAheLxWJ3sfhh9fjx45M5V4t6+mMqqrk8GXmfk5OrBZdkKbI6Z2QmCkV5IQnNcyKuiVpAW06lZJJULKeKZUQJAlxowT9TxUUh05OTxzDCyXUlluQ3KQrCl6WoFMnqZSlNczM8u2GFkg3Ba/wWEoAcLHcEP1HJLmYzURdqQP7J1b/q6UtRsbBLxUrherzFL1yJ6i4kqiWrHNE7+BK+zthMVBS6OZqKfap5xeSY1mphiOuKK7YsUQuO09vLK9t0cnKiNUWuGF32WmH7w5MTAh/Q0RVoc6iJhhOkIs/x74sJEdPf2EylhvDqVhCFb2EdFC1moPoZLcgUVmLBZh9hBXL+kREphpYzftQ5GY2Ieuo3PNINuuWiyAisMs7phuagdVjFsHvKM8MBHlaaHzXNuv0/jIF1wOhkoVQ5PD3NYFFzUbIqNdpMZ2J5evPjKZraKU5EnjoNmIeMXZPxmBdcjcc9yfLrgZ7wgICZSTCp0S+iQL01YsgauPeuLEl+3U9d76Bfv+0BVOmYlpyMNOt0zlQvqas8GZAkael+GBJt/kiTSFLQJUtDJtgUMMGGkMO7gn+qGbl81XiMJg7ZoHY9JjwLWbxh1ZLrOZAc1NkwmleiLkNGZUvpM2ybQ8a/1Mspq5DfkuET2HcBrO2UV4S0JGPtcAH74I03QsM0RovaDmT52RK/e/tv0nhNSl7/XtIik+QWjIdMJqb3ZBKXDHiiYJ7b9eyrPuHtHCGEMIJGFFeFiRjitgBfmt6tVYcmiyjDaw8n6IIPB58FUUmvEIpQ0kSNfoS/JceZdQfxXsJInu/A28r6jucnFVN1VZBEhxXy/svZ1w8vkvRaVEuqes6aA0bsk3NBARZXdbk58x0ZChcIDIOC7crgUZRBXWagGT8M+I6v3XjV17HNebym/XsYrRvmNMvGxiQs+1zMeeHxh4h0kWVgdfrFZIJ7m2cNjm5opiKHZCpE7nd3z2b9jHDTmucZLppzhsSOPSBT2NLw1ciFqH5UYWMcidHCrNu4rFUPevUH5OnZswF5dvZs+9TRhOzE8TE2b2zfMO2SVmBIUlWawZD07GAZyIFmNSQJbqyn+DY5gra00SdG3G+mKkg4GMSRFV8CaV/pF4caxAYJvRHNtHYVlWVc2RVFTx6QNuyPYFsLpH8NtNtWFZn4qxqjaYcASlFiykdRubDn1LneT8taLvA/zZbc3352UBLEbC2Da9AzpYqCdXwxW+3QTtXf4oaeVF+Dvjr/bCwLvzRGQdVs0Wp8oAcZ6Qy1h499vQZn/YAZSIcsQunwY/g0oQtp+h0au/5XVc1WbeIfkD+xNgYuqNzsqy8x75MojltP7EToDJJDid7bePL37ru49UV9F/XE5dZorjWFimpDOiiM2sTApFUbPUL3CpWlm7QRNmkZ6u0B7Q2blaZYZdUmm9ChE6HRk/MBYYrOV7NtkPwSOuEpR9yA0nDGTWK1WYEcEiXDPAwVhcu8zDEMDJZ7I6SB77xi17TO1ZA8OW+opBEEz6RweqmZjK0cTiUc9vUVnRN9cqOkrNgNF7XU5zomldny4BQFyxoMz4qsFDCRyPrOWcH0IRFn0pzj8CxJngfHzBTbXkz+S+Rh1rCzGaB6eiBrzygYpgy9Bvp4a5cW/6wag3bUw03BT0zXxaNDTMMk5f9PptFiEa2B6Fmm7ZsXk2AIAwTsZTdN3L2v1bQydW1nTTpSsSVof2tQfqvJvJCsFX9oILYx2EZ0WCsjxQOKxza92ycHtZrcmAU4NdqkfRctfkdb/zqtWVTtVw9y7Hm44Bp4zScnz/1vMbjNxzP3gt2Eht3EU7/hkW7YCXYTDewmAthNNLCbOBR22w64AdkWvM1XWgd387u3y4vpvFBmedVduZLXu2awocTnnrQa+WFoUOFd8BMDJlvkBAQywEnbug4JKytYDRXuZCvQjyUxe6XPPXgBJn/Wb2VvwTBH/qCwsE2ClvU057PxWnnf6Pf3Ebs7wsFI3iE426qZuMbkEAypg1TFkKTJBIngGZSDe1bFEGy0UIsfcrzYfVHc6SQZiKjC2AH0EIJACnPzAhFJBH65rCFjaSgcG6Q0eRmkZaXN3MydBIGA7A2YpuiybBi6qrkTYmohdAADp4HoUubsd67uyK+9op8akm4WpgF/iKEBuztRV2GQRZWIIr9DuaU7VJHbBSschK7PXAGfJZ7imWwp9E4H2waMPQURUnJ5jYORWwqxdiZ0JIegyxFAgPYwHC1EnWe4JYEd3bCWKco2w7lMJu3qwzKKwqwKEoWABZjNTOV39zxS+msdY4Tjhny6WtphE4cMgCi8BjDALB4J9KL1+qENINyA/PFWKO2iNPix27lKPS8xCeAGyGN3xHK9l7W4ZeNkD9GkUcoHadJWfQca9F5J5X7m+y3sVBuZTq/3N9JZxZrd39hpZyj8aMAy+iZjclZxfQ4dJUmcZiGWrKRztpbA5iAjLe4aHlSOuZRwnB0hALme6JZ/5FtIMnFb5IJmm1jhAox5NjqLvwYdCp05bpIZ0lg+L0TFxs0+3sG0X2r1w9ZWtUdrbSarO6rBShkODO6n+ExXLgS4nYcL7gaOD4KA3UoQ6+utsw88xEib5d5Eh7G8WfYQyLhEqBPXZTIZWOvUkIYmDdTcCpySizeXaM4GTJlM9KJ4+Zo/amtJGwZmBZ3mjBg6XJFgZL06G4Y3XNaOjia6fWxcE6Q89ujO+reL4EiD8Z197i0DYmbWscLB4XDoVRqYGH7LIbpPsWQAtgcvf9Du5+4JVgSJzto5azgoNhNs5jTnn9mKE6Qx0+569Ar45/lTQ/E3LWMY4GHz1WwydGsrHh4etN16I7vcZ08Ezs8cbmlV8GKOq4LiwS5pN1XQbSEgcyvmJjsvyPnZGZktYLYz2JuOjtmtuQXzIgs0et+6QTVpQgsQNo94j2aCA16imadYT+f12Nd9GZg36Ge2HR/X9HfuYEndd7wqbGwM3rnnCJ+uBUGHbmN7B2iTAXAZ8oKcde8VU3Np1/uSWDLgZ5++trpfe4sopL5qMdeHGqc672QRrWnpm0ELnTSXiavn8XWJhihmjObbL7wMXXvwTGRzdl7w0hX7rDltHg75haf5PwMytakYLl5wJY6+NcZHOXr/wb8hl5104gKMegnOviZVwAoh2dVfa6bNfltkzdwoKdjtHhfuNgaag9+c3+BRQbjIvsoh51J58/ODaQBmwY6UzsOrk/eJiX+nmVDXPAe//hCTz9NWGKrNo/SwS/w8AbvDKgCIkk+ekJ7d0foOvUEAFaEZrBAAHRJdIQCTYFXH1YNrJbNhcdxU/fqsyNhyYcb2R9Sj4aKgaGRaKy3DscfW/OKDD8zIKMJ9R92wufkVpFHXXbODtAYEbe2XSPT1rCEouZBft4UHfVDbssHdK8jqIts2vLYFYXvG2baiJpz+FNIpiAxjtqQ81/j4CgGCB7S4i71a2ycXMx1BYu9wDSLXr20Vz7oQ3jpvIHMQHH4yb4xkiE9UmA/27P4fPZbY+W07vXTHskhxMFQcFjPK2DaCDZkRmu2blzWxAD92XhGoC+w7+A5+YjUAb+xTxEOavk2fZlLQ1DxCq+d/recYs7UXfwVIaOqQ2pUFQ8aWMIe5d32Tz75b3LStsGn3oqZ9inVa+BcvEAw4Gi3geVAlmdtqlYIU6ThaMCyPqYwj53HbS5HM9dxh5Sf21yM+4nNIpYllo0sHcCapX1gSnjw7WLDtS2/A3/HQHz33/kn1JvritD3oGlFT3bp3NZLpfISyEj38hmqke5WmrZalbd4jt1tGwy9iGmH+d27wlibrx2TvIVrE91ecFsajw6wiiJJ/GccfbhydPeQbFjBiOQlelOxrI6awI3p3EE+udTlLCIjCka1ErMAUHoZG0EtoUxyPysEno5/EQ+DgEST4iCpLpKgrOAImwPjizWWIWzW7k+b5l+HuWVd5JDxWTxtrZr6EaCPWM0GmdviCh4tghnmfIN/kA/4kDB728h6/kNNwMy6xGU7z7lcPKw3Wl+T6KoJWDAdWR4u8lvf2fM3aTWi6pvtDMmAfudkz1u4CrOxiJObHtDvW+RqT5p+3l/r+TD+yfbBoy/ohHmX2/RnZfsXQmw97rrTX9Tw6gP/gip1jxT7RkudIxc/xi1P20fAfUaji6+jAWhXvZsTecK0q1wRLHY1MSbSxRl6YnwzroqapqM0tNJElm/Frrn8z7fiYxQDesfUIL7C9JanNL+Z5ZjOw1euO/bHuGNIH+sbA10y+eyG4JcaCXbjOIQy2DoXz4Y+ze2HW/wNQSwMEFAAAAAgAbaMjQ7HF7AvHAQAAqgMAABgAAABnaXRodWIzL2dpc3RzL2NvbW1lbnQucHltU7Fu2zAQ3fkVF3ewDKRU22xCHKDt0KlZmkxF4dDUSWJDkS6Psoei/96jLCmMEU7k8e69u/fI1WolWhO7YX8jW0ORpPZ9jy6K928tIb77erAI2ruojDOuhdghWN8aDY0PoOAbw3ydQMSK8UUTfA8zS+9rtASmP/gQ4YsinJNfpQ2EYcl65IMQQltFlOMXWfmmEgJ4MeNDZwj8/jfqCAEPAYnviVubZgPv+JDGleeah5Nf7oyjqJxGAq0c7HnUDvUz1mDNMwL5auJJS3+E7Rb0pzxwNQbGyGdXA3eCfwZzVDaBx4tyaeozAm8uwldzeIz/QARlmR26GA9VWdZ4ROsPGORZseRbebwpRxPLaRgqF03Omxob2O3Yt7jbFYS2uZ7nvgZCIuPd9t47ZDHnbmhgkiITPWXaZiMXnEuEzcuE7yqoRteqp+Qh3L6yV6bY3ROcOg+9qnF8SvP7yyAenWVkMDGp6XwEBvTaqMiunBgQ2CiltR+ystTjyAJbSBMtF6aZKWSLsVinnHU272Vx6rF4o2KSgRuE4j49nyMG1eImFzo9vknojCFgHIKD9W0SFSZV4effD/9+3a0lf6JexWJpQaa/xZr+B1BLAwQUAAAACABtoyNDOYYWb8MCAACLBwAAGAAAAGdpdGh1YjMvZ2lzdHMvaGlzdG9yeS5weZVVPW/bMBDd9Ssu7iAJcAW33dw4QNChWdqhTaeiUGjpbDGRSIekbBRB/nuPpPVBRR6qQRDJu/d47z60WCyiPTdVu/2U7bk2OqvoLdXf6P3cE0XfZNnWCIUUhnHBxR5MhVDLPS9gJ5VbfSWIOw8DcvuIhcmiaEFM0U7JBjq+RpZYa+DNQSpDTuau3X6RCkOrVqPqjX7RIoqiomZaj2mSwTtdRxHQQ3z3FIvnB4UHhRqF0SAFwpEwuRSQ0I0VHrldpCB3wMCqkHmI+5OEsxzAhTZMFKihYAK2pECFxROWUPMnBC3XZ1r7VB9gs4Hq43jjym24nVtRAteAzy0/spruBGbinnX3czDdas7gKjDoAvcfJe4gzylJJs8TjfVu2UWzBI3aemy+kxqkWIes2wOqZCSstax3adbjTBHSwZcMs5wdOGw6nmyPJolbVcdLiON0CPHdGn7e3VrBbb0Usmm4AcqpLDgzJOqJkk9HpNI0dsfSyxMSnbdnyGwRwamS0LASLae2CWRijzpEdoYbV2dJGATtxFQiCl5eR8GPSUpOhTZpDE8CVDum1Z/JD4HVVC2UnBoNQeglsLLk/nOMZqRhdXg5D5Z7sGnwwSFJ8PIa3k60zZZiszXe8Tk1QorhbDPD6Zl6G2JZXSLp45shGc4uk/Q2b0mcMiOqcyJniLzlZRJ3/pagpBo0vMFhajB7Fct1qlCMa/bE5nj9IRVyzkxHT8TqYFHDuhqbxmk67lzLfu7cUYsqNK0SEF/bLoVuzP5+Wb3+uYkzGsENM8m4SwJMfO5ngaQw1FvgsME23iycMB5K4H9BXV2EIh1yO3WnkdIg+4FGcTy6lnWTGUjQ8VzIhsStPatew9r9H9YPTqHr8Pfmxrs9uHmIxkz9d/DzGXyG35Q2ve2jdkPI59cuvPC5zWw/DtMlfFyt0qk4FiixPucRG/0DUEsDBBQAAAAIAG2jI0Ni40CMiQEAAAoEAAAVAAAAZ2l0aHViMy9naXN0cy9maWxlLnB5lZNLS8QwEMfv+RRDPbSFNQjeFvXoAxRB1pNISdu0G2mTJZmwqPjdnaaPLVsUNqckM/nNfx6JoojVCrc+v+S1cuh4pRrJzheLsSdT+kZCYTQKpZWuAbcSGlOrAipjw+mOELcEAJN/yAI5i4jPKmtaGKO0ppSNA9XujEV6gPc+fw7ejLGiEc5NlGRuTdeMAS0ibrbKgZU7K53U6ELk6hCVTOitliXkn6A0SisK7PTuSQL0WfasBwSHhjABYcUevG3AVBNxdWBr0dKxEbr2oqadU18ShC4DqCsKSeGTxH5TygqyjIqFWZY42VQrEIhW5R6lo4RgWM7vpE3GtIlNrimfXs7esOnN2Ro2g+jXl8epA0GrGAvLDyEIyck56zK8nsngtcQkHixxeszv0p5X5IjYXQWXJXI0ncw8mTc2BWh4TKEEUutDr/8IMPkvg4ymZZDQ779FB/OS110vWcO4/IMbPZbEwRKn8xHrPsMwYrOx6v8BxFfdZEH4l2/fFz/vNzGncWkFJlO9U/YLUEsDBBQAAAAIAG2jI0NOb4oviAgAAPkeAAAVAAAAZ2l0aHViMy9naXN0cy9naXN0LnB51Vndb9s2EH/3X8GmD7YBR0nWYg9eXbRLP4GiGNYUwxAENm3RFhtZdEUqQVDkf9/dkZRIWXbcrsAwP7QSdfzd8b6POTo66q2kyar5k2QltdH0b2+y9ev1LjKp2VqlVS7YQhWGy0Izkwn2FnawRc61ZjxXhWBLVTIt15tcLqS5S3q9I+CyLNWafdGqYPBFlYal1Xqj7bKXANBFrj3BW2neVfNzVYqYKhULVXKjypqyFF8rWQo95ZXJYmJ7qIVar0VhGmRtzu1SF/VSwhED0jfw3kUHCgEp7kLSd3Yppq60aGT9DC+9Xs/qC7cMmnMOx70egx/oi7St5l/EwrBM5SnqNid1ywL0u+ZGgipLYaqyECmb36G6gBvjc1UZxhmKmFi4v+ALk4bdqYoteMG8NgAALAVo1wSMO9gAxKrWslgRNQfdIwLqFXbIBTciHY6YSAEO9oK5hBG7dqtbMLYZJoz9bTlbrFwrdqQNL48Q4qgq7HMAsgLfYhFUxm9ESwp3uItbZbdJxCkWQtMZ5+CkmVhcg25yeS2YVmOnXPytzthkwla/hAuPaIFWXhYpA/WjV93wHFVlWtsTmVoEeGgtP/LLtP5JCDrxmGXGbMYnJ6m4EbnaiDKx7oG+eXLz5IRc6qS2v31IxZJNp7KQZjodaJEvRyzlho+YFlqDA0w+QryB13gJdAXAA/QqJMmXw6TeHe0b1jsej9nHaj0XJVNL7xgaPcOgA1IyqMEBMKlJJiRJshJm0PeL/RE7HfZC7M+F/FqBz6aUFGrMJAZFZbL+t9P7fmJ9e9BgyxRQ+/1hjPtK6EUpNxQEILj3nRg2DYhCcYN1ix1AM5GsErKVBmPxjQzNZG10FnOZAlEEX5X5Fixo4s8PVlKnAsaNC9kR8RzVTElBAdcWv8ys8ynwiHj6xX5k2d+VygUEgz3wHINJNspCF99Uc8jSGIebEnzdiJiX+xxyskvh4awWMI3EXkEroInLq0ioC2Bf1C5nt4WKafmGx4UwHAScYuWCIknBRsGJKE86MK9bUGeXZvElZgcLU4TY0nD4ocO8kQQ6w/9b/F8czF1nO7jbDx3cgVAYuRa+YpRiA+UQcyWY/BaSZmP0Ww4JshSYQluadqtTcMyJM6o25QZxg3hsqNoxuVcI5A8lDzIpUjRRgOJUm7RDHLf6gDgNVSQOlB7wr1CDtBKHx5iK8HiGJZk9i6p1gmvPZzuPYvHVMkgctYpb5/CiIOKAXlxuxli0H6HpEQxT+VZQQeeBzn/p2xA6+WWf1vtXl8urISXWJVQ/Fn266s7wFlAWu8PNcQzCDVdiS7suJwrbEdRZsCcsebUG/RB7Frw8n7USmqNxx3RUg8yrCQ+Y+QO6dGdpbHK5CmR7zD6KWwZBoiOBz33VwhAdFAobJCOgQwXfGbaiwJFuhWD4oSMEkYU8mIPcwUDuxH9DefBhdMqOW9j1aohsuwvxte4tFLhwGbQTtr1savTEUtTNjQUoxKEAj7oBIKwdws6tITkG4076Pnkau4Rm4up53U44lPDcNnGEXVXYR5Hnt1snSkG+gSLaF/Hk4cFtjpw6j3Es5iq9C1hAj3dOZGDKoCEP4rImHW94ydcM1EQgYzZwbLEVxxXfAjmcZqNVih5HMemCocl40YyUBCQQqaG89TONcRObsfwaJDMSrl7An3VDq7l5JfMUXTDqF+dcC1yc1L3UMEJwrOxXfHFZaaNgcoJ91nSTb31k3h+TDPegll9Oz4Zt3whONkCoIA8Tm1Ya3mFcO/O03Q/U88oPQx0WrA0xh5aMHR9jUcZIILMRIjapWAx1tYAZRi+rvFv3YVxM57bBczoJJLOaRDU8HbGnp0/3+yuOcz4Qmt540gf7UPaffLuPj/oa578HXDVAAo9V9MDzYcSis3d3GKmEwkvs4+22QpkM+oI1h8mu2jSS/IZokf9ci7uBHjKdqSpPcSpEdjTgFxwaCfjEYdjDRZj0KgBuKHlBySqCawQh+fARKtctDtjBJ2AKQvfxlgR8rY8sIhQq0si/j35QOqEgVYFDSO1CmfZ6BZHETtIICiqAaXYVUPwQN9yWHOiFNNMf4oEYcBCS3+4fygehB0RC204lHMOusFo17yGKdYGO/a7TgZ30FHEGgvFheYSbRdaEjEsndDdFeX9IQXQ6DNFxe4xu9/uSgt/jLOaC9qKsRDuQ33DIOnujE2t3R7p5Y+9t9iWbMOvbFgxaWjhAY+ERm83QbLOZrcy3Uotuq+9I5X7I25fHH8rhe9L1IXkadST11A6mHYo6x3sgHMi0EHb+9cNHNABDtO/N2Gg83G53jKzhaMFNzg+ma7tzr63hHHgbBqX9ew/ituFNIEZzdFfGcKY56HAyxPJn/DHPQJAHHGNPLcOu1btGVMJIS5DyfHelXeGyVwqT4zMYuQ1ftW/GQOAPdE/ddcW1XcAkpF6LGBefYvuuDOyB8mAnp25QzSz4vRJLXuVmzI7PoErkeURKV7qxQN2lEMspHiqW5fUFXzG6aObgg+JGqkrTVbjAMVsRmoZiEAkkinSjZGePuBKFoHv1cK4lkp/aPP67njByGVTmAA4zsGYBnVBHGAjhnAH/6fIfue0+sc+8x+JKtvL9tdztOxeZ0A0RmRvaCGcRiEKyFeK8/OM9FfO4K0FbMd7UsVtscSRN6zPSvZ+UZ7OAaZIwEA9nEp6mIh2P2Wny6w/6s/w57oww4DBqISn5UHeE+oqg4ruH7/TC+lqh8w8ySXzZ8L1eKH+aEzoZ2p5H7UpHfn9v/Mm9w9leF0FAj3JHxupUnVPXzF8ctVVFnaH/uEtJ7px0wu3LoOY82APsPU/3Pe9hR4jbl4MFpUtivJcbfFTglaBRvhL7xyCsWB3H+ATLB051voyGDdZ/V0M31Y4auuP89i9xHRr4XBzr/6sS3FDc1sM/UEsDBBQAAAAIAI611kJ6g6BWqgAAACUBAAAZAAAAZ2l0aHViMy9naXN0cy9fX2luaXRfXy5weW2PsQrDMAxEd32F8N54yBbI3KlTx1KMkyixwY6DraT072u7Swu54YaDJ90JIWCxbPahbRabOEH/K4BbmHZH+DJ2NDiGlbVdE2rnkA1hQTCS00wT+uzRatcA3Pfh4iuZOsCsvx/VT+LZOjqJx+A9rWeAyR7iO/8jyp1S6NAwb52UEx3kwkax+RLliDxaWTkJIs+GOQaP9RJav4XIeC29QKk8Tyns8VGCJ3wAUEsDBBQAAAAIANqZMkNNQLAYEwsAAMUoAAAXAAAAZ2l0aHViMy9pc3N1ZXMvaXNzdWUucHntWt1v2zgSf89fwbYPlq+u8rFZ7EFoctdtsrsB2t6iTZ+SwKYlOmYrS6pIJQ16/d9vZkhJpEw7yd7eAQdcHhKbGg6H8/mbURZ1uWK1YHJVlbVmK67T5c4CFz+psmiXs2ZVKbN8LfWymf8QZyIta67LWrVEtfjSyFqoKW/00ieWSjVCxWm5WolCtxvOcPW1WQvSi5sh9enNJtqcz0Xe0r7BL0GylcyF0mXR3fhtu+CTr8pM5N3VfpX6t2b+uqwHVI0S/f0/whfzuKmlFqsq57o75uP7s3O7tLOzk+ZcKXOjqOc9TnZ2GPw8ffr0fClYQlTJjMjYS/pzPGPl/JNIdczONFO6blLdgM4ZLzK2hF9wGaZhc8Y1J2a1AIJCZOxGcnpi+Cn2cql1lezuZqDlvKxEHZtboZV2b37YNQo7nk2ZgvNkWRC7ckFMjNDs1e9nsZH5/LZktIPJQmlepHBCygs2FyxdivQzCJDLz4KpMrG3xB+5z46OmDxwF57QAq28gktJxdCvbniOvqAH22OZGQ7wYbD8pF1udWo+ZGLBplNZSD2dRkrki4mRewLXVAquefQOnAFM0XJTDegmOmtp8sU47vb7O8f9HiCLp7yS7Mhwj6+FjkZNnY8mbDTqCZ8lnZnRfdhLz7NiXAOT16ICG8P9ZXFN6sen9IGY99wYu+XgCyDNNZpcl7Evkn0ifLHaVUcuufA39OoI8UIxoyDDiVXFmobg4j+X2R2LMqHSWlboYOPWuwwrX/Q5Unti48q6On87f/uGLcoaMpkGFdC2e9hOl3qVr/Om5fUDfs+5LJgWX/Vjj6E968fgsj3GseTZAmK6DSkFoS7znEGYFhM4BBYWUuQZu8VViDH0WVdICH+h5UrYbOF70O1SFL2k5DJpXiqRDYQ2i1OOQnsHgHc4l+jIRuOAm7hMrC/oukLZojAPVwsJe9es5uDroFpbPBQrC6OBkJ47Ik/N7apvyNctLYQli4pSM0iQNkePw2ynSBpkjU989o82QS1gx5oNzOq9+uvIUIGOFFQwH3JFqrWBC/br/vU+vn8D+QWqirh1LsLbWjm4BobSOu92dcC5kF+A1dkJxtfGiMLE7/KSmc/lPdU9UwxzqTS6UJtqCR6wl/TneHbJtvsUIQv0qAvaEOXDpEZyAvYoXHnMrtH4qmNmVta10K/7N3hjzkVFt9AhZqdfKyz1t1Am2GxW8JWYzULiIjt0GQd3RP2TMYawIw/8Xc8hrbY6hMRedh+hKPX6uqfo9JBraxrpyIJpxGXSSRGFt28rOgZMFSarRLA3Zs/2fxzEgn3sWcms+RY6kQSMeH2HVlKdv1YNZGWEwyARiySVhTsmvoIbDk5CymlL6Z3nPnFOXQEVgXSMHl0pAHAXl7eX2eWLy/gyuXq+G11+eD5uf/8tMSjun8htvHuZPR9NPN0GQjQYRdGovC3g+lCmII+VSgLwvxuNh06wACNkEEwDD+i3oPTxdV02lYq8gz5oBMtuBZ0wtM7E1jxTIHy2ivZ4WqMl30jnUudiW23WROCxoaVHpHNKMhxMSBR+Xm+qLJDX7ep9eb0nG+T1B6DG22VJysOY3HB1wpHr+A2X2zByyrEt0vMBDuuWH41rUUKze6OE7pkkZrdgxcMs0hP1icwB++JLB/VLOKd28ovpjvqKcmQourbBMCjEQxk8CTNAZ7Es1veOTGvHLr7VF3tX33fhz/7Vd/bsW/H96ngUG5AZ1UeDUAoF8gN+iiMnxY0dIY2reT2R2wWRi671PV6aJeK/+2OAlj3PsqkpOPaAv/D6WjkHQIP2KstsUUJk4dbjjiqpeM1X2Pgy3J+wyB6XgbtiNVRtpFtGd2UDxVItkSPI0DMyygcOQXCAoMAVrftsqre5+LyReYYps6v2EzbnSuDSUdcC9kFBE5V2M36JzEewqI5gz4S69iNSzIQd7O2Nh67iIxAHeCC3KwwFOoOi4OJqu0GoXltj5OW1LAbGoOfKtJqzGVHMZgPDsHPzGWClWuKYI22oK+oYzWaGUGRSz2ZhQxLrhA5CC7YGhK4b74J2I1HcWqPLgCHnZZkHbQZqQehrzvGixqr1Fw4K6x501d8HHi0qaFvjHpGso6ceMsIFo9wxlAPRroJJBDUV9XVp0veP1kwTp/hNrLBbcoE5a3twUv4cZifQ4Gtc3xCI96vdGRB4A4OYrrE2YjBqHI3+B+zQigxoyJSeIKryrjHxDUFaN61jm3CzKVD6+v9VYMOmAGEAQGmHp1DlJHR0MnOsgePCFFEhg9pD8wK9BGQhaXz27h/nxAW6gA75QlSVc81lEbOzRceGkiUygMd5WX7Gdg5D0W29TQACZgYt9tVBXq/4jawbdXC4e15mZay/6hfVnV6WNK8QgAxrSLOW0UhZ0Q73f9z76a8/recFiXNf0oif4rsJcoYGAZN/5XQtPi9vRMA5vRmqbfjtKNV+O54Fndfm6rV+BexlLcWO2V6Ck5q38noJdlKgOoD9NO206seLUrmWjnD4Q2B6ghiybP27L+we5YZ6Q9RQbhxG4IwG7CNI7yYeD0EJGBv2UmOPfFPBQtiHnUK4SLnajXDX2C9MPTzblI5omDH14wMjb5CdiAxcu3WKQRMfqjXIJexR+OS/4EAkwEMs3FtwK6bYZqYBrvhmJqYJyfB9fJ9nHOzt329aB4Q/wsBdboXcgMmVRu7GxPZjm2HtVyp25rMvdZf8LaFJssMRPtjlFI681ztImFDHuNmVVrz+nEEUDmfBm+faQSzbjtlNiWctDvLn/IixmjzDeW87bfG04aKinjfpLmE8TUWF4t3wHJJEgi09NIejvoaNQ0m4U3BCcrz7+Pbn0/dmlEja6u7Wl2FHDPxx0RvUFehtpsODCIIb0/V4vO8EeFXldy2DTQikW49jPKMfEtmSh206qKKGKgapeR8Kbgz4tS9NvfxQBYehYTISVqx9U86USEvzcupgwoRO4wfnAAxFWPtmZwwJs/DCDU741r1CSXq0sRawdtyRMAsGnSFY0l8I1m17klilfh+0dbVYQfmcFjhSQ/m890C4kDws39BcqktSNu3Qu2PDdlgwbNYIjPu6bpTqRwizn9dOKHk4vkszUk2Na4egLZZpxaQTmGjN9j3II9uLwZsOAJmRO6E66mMs2H885C5a1G1FbFto49hHL/b9q50BKQ3Tbmzy2PTmJBTvhidkh5JSF8ciX6y/g4GolM4xAXWZx2XtttaPLqL/Xm104fwU5YkQvtnJx4RRZXSFGA/UbV59PELZZgMGbJlKnNuZOb3TuJZFfvdHFG85g9rNpWJ2Iha8yXXCXuwHXAqEACzaynPDJQR+7szWejtdi2KDoejVkTUTfT5+7FTEnP9nWYlk2N7I2kRGWa61G5RS32TviUiZXNi9RGH0nxv3IQSkXR86eTMnY6RVuB/ZmETumyvhMdv1+IydlKliimN/6EKFrqLCBaAKqu5fQiasqnmqZSpwF9xbO8xAD58ahf3nwd7h7uHeIWxTVVkoqJpnI9CUKDj2NVCZ0yUvrs0YHHY1hZY5O3NYLQUHuMShLSIdf2gq/JeYOOwBqCHB25KSiVxo0TUbhxMGkjzIB8D/3YFjyAUoRizM2GL9zngc8O2q0ndGoZj2GwBVSi2asE2fsde4ReJAGG4HeOHk9M3p+SnWh4ur3k8cOYI6ge4u56lor3NxdZ8CPHI74TPTh4EWiNBVg1ch2reM5llofOcDN/J+GsL+mZ7/hyaqjdv4GARiNfCfn6zWAoF10Ote4BPsWM1Lj/8P1cJDNdOYPHyk9i9QSwMEFAAAAAgAbaMjQxc71v22AQAAigMAABkAAABnaXRodWIzL2lzc3Vlcy9jb21tZW50LnB5XVI9b9wwDN39K5jrYBsI5KbZjFyApFOXLr1MReHoZPqsRJZcSb6gKPrfS8kfUU6LpefHRz6SnTUDnKTvp+MtG0yLyoEcRmM9PHKHX80woPZZl9Imh3ZjPdEjyzKhuHPwzblpjSmS+LLOgM5utzv0CHUk188pG+7S1/0zmOMLCs/g0EsHzttJ+MmiA67bqNXTRdHbk6CYoxwYDTLIUMSIQnZScKX+sCxGHN7MygSpnedaEFFwDUeS6FG8YgtKviI4U9dzTDjiBvZ7EF9S4CoCEXnQLSUF/D3JM1dB3F+EM9nOCnS5gK9WOOI/EIEryg6992NdVS2eUZkRLZt7z6j+6nxbzSar1Xe1djd+W+ygaaSWvmkKh6q7Xm1fg0PnpNH770bjMpRw3EQ5inQCgaq6km1ClxLlu8OwD7Bfk7AT+iIPWF5ulE/1NvWwMHD3YZdYwGjmb72BgbeYDvW9RqqHLakCvwj3pUyQ3VwFrS9CMJelqaMxmKyCQhsPHDwOo+Iey4/qsa1N4F242X7ki+25xxZHu/Q4aaZF2lQN+bzRsC74z7+f//26z1ln7MB9sdlhypwktfM/UEsDBBQAAAAIAI611kITpTA5fAIAAKUGAAAXAAAAZ2l0aHViMy9pc3N1ZXMvbGFiZWwucHmVVEtvm0AQvvMrps4BkBB2E6sHVEeVUrU9RLkkOUWWs4bB3gh2yT7SRlH+e/cBNlvbVQsHxMw333w7j60Fb+FJcga07bhQUOm2k1FtzRuqtnp9kVdYckEUF3IACXzWVKBcEa22IbjlFTY74Heqfuj1FRcYRVHZECnhmqyxSfaOtIjAPJPJ5G6LUDhQ8ehQ8Nl9Lh+Br5+wVDnc6rKkTDWvRkJnBCBTEgg0Dq22RDku/EWlsVNmXAbHJTXiX/PIOW8RgTSSF7BVqium0wpfsOEdityfIS95O325mFIpNcqp45bTQaT7VljDakUZVatVIrGpMy8hA4lSUs4WN5wNJ7OP1IY/uR4wTZ3mu/gwMt3HGFi+Ih2FhWfPN6iSWIsmziCO98CzAq54wwXw2tQABymYb/IMPp3bNyQtHTpgdaaQ84a0eJQyXutNHDIyiw0IrcXwjcqFz2GxRuURqLRg4xMPXPZvTMLw30k+nCKxs9PTHMbHfujg4W32vryM85qLligPHpNIdZpjV5NRgO4qovCUeK/6YCSscTcYDvwl3L2B3iwdKvxTjpnXr85hmkhlX41o5y68XFnAmvNmHHW8qBaFhCX+b5TSVTjN4Hw2z2A+m/9dq69EXwhbpQzc+IXC7x3qhPCOCNKCaYGLLyDpM1VGBMOfzhrM7rFQlzSM9ZtRmjss3B/DysGcvaJsA/FZ/D8ldLfrAuyNsD8Brb1Gwqpex87Vu531Yba0u2Ayhn77DFvsgR+LZYDos/ru2J++UR1R5XbftAxMlcnC3frJ20EOv8ZF36X+lih8yvfUdXyWBqeyqUKtPtcw/tafBv5+xO6EHtWnN34zNzVGvwFQSwMEFAAAAAgAbaMjQ+Ezu8pjAQAAIgMAABoAAABnaXRodWIzL2lzc3Vlcy9fX2luaXRfXy5weW2SwW6DMAyG73kKiwudVMGht0p9gJ23W1WhAKZECgmKQy/T3n1OXOimkQv+Lefzb4eiKNTdxHFpT5UhWpDU5c9R6nM0BJPvF4vQeRe1cQRxZGE1ERIEtDpiD9GDICqlPhBBW/JnGGOcz3Xd4wOtnzFU0q7q/FQ/TrXcqFXBRtQQ/ASrnSUaS2Cm2YcI0UxIUU9zM+ugJ4wYpFpcr2XvSSjVNNrapoELXHPmppTqcRB7QqDDYCxTjsDYiEewukVLLJlzhN4E7KLxjhPGdfh2VsBHrjL36ztrM4BgwDg4lLwPc3fYl0cou4BpKymc0CWUCFpa6oJpWT2hL/C1FFp54xYSqrVPtilteI0ut7Ce9jG5OFNytEFkyP/1ks8XJHy1TWvNXX8NtMz9GvIzpvFo1wXfFRMcbMRttevOusTpkb87jK06gzYltPw0nN75Ow7ybNsYSe04TGmxmCKhBoxLcM8a9QNQSwMEFAAAAAgAjrXWQkpHv8ZXBAAA1AwAABsAAABnaXRodWIzL2lzc3Vlcy9taWxlc3RvbmUucHmVV0tv4zYQvvtXDNKDZMCRnd2gKIQ4KNCgTYBm95DsoS8otDWOuZBElaRiLBb73zt8SCJtuWh1sUjNfPP+SO+kqOGzEg3wuhVSQ9nVrZrtzPYr1/tu8z4rcSsk00KqXkji3x2XqArW6X0szJXqUGUV22DVi/9qFrFYLUqsBrxfuL7vNj8JibFUp3A0+okWs9lsWzGl4JFXqLRoMB115/kM6Lm4uHjeI+RWMH8ZJOFmeL19AbH5jFudwfOekwUFDFTNqgocvBYWas+askLgzU7ImmlOaWIb0WmoeyQFtCexFYpTgjitSQV8EmYW5AkRWKVEDnut23y5LPENK9GizFyc2VbUy7f3S6e1HLGXfTz2t8QdFAVvuC6KVGG1W1g3FqBQKXJt/YF0fA7MozoykQ4xG7lqN88GiEh5PqqRVFawlsPa4mevqNOkk1WygCQZ5b7L4aHERvPdF968QtPVG5RAyRNbzjSWcKDgxkRlsQEvHppwW7GFJ01QIHagqaL1GAqpZAugHDYgJNVMKCyPLCirGhqwOzH+M9fVefxV9u4IVFv5ENTuxKB3qLaSt7ZdLDS117k8lIFsCBvsx+B9W5tpgJtoUDKzN7S26UoaUVMhKo+JbyvRTPGIBieRH3nnNcgzA52O7vkPyXzh++WkjcjVD67GZMN19klzxJmBw55v98AkgtK8qiI/qdJHvpmtwgOHmQv2j2pNgTaDS65n/ptnx1mxqlO2oy+x9ZLANa9xsjqHPTVyVAg4MOUKdtLYfrdgmmz77GvZGvDjClmpZD7tyJQHUT1oUXYnDdthYXvVsM3wie/C3rUiSUBFp9pn/e6V57OA9IyrnvQCVIm6kw0kI6/DH19X3/66TTLH104hBCKDZ3HGAQ80utbkK+TbkGFtEMd8Go2Dlf0xPi97cDoBUeOxN0T3d/bDSRMOIrnzWOWwEaIKNSdjKowUsiZ1q8Cs5Xma4Xer6wVcr66DXHGNsrCnuPLBu9lZX17Fzj6QoCXpNxos08NOCagEQAed/OJmbHLEBpzJKFsmWU2Hr/amc0iFZURWzRfBKHuDWvioM2LgHesqncPlVdSDPm9gDnr2xjhpVr3D2UR6X7FBe/MxZnrmtbcZuLE/ty9/gposAB2YQ5tvOl6VBe2kibNFR+mGKTRb67EO08UzhUgpCakLmCInrYW7U/17f7ne9dWzjU3tac7AdUIOBCeMW9vBo9e4vJ8syPletIAR2sJegfykGzbvi3ZSWppG5xdV1odQmsriwW2fHE9TANaBuDXcIWDuK46QAyYOFAOXQ/VJURtMbOTh6SP88P3qCiyZOsKJGe83ei4fHy/v7p7v7/PHx/zp6ff/M8OUeEY99NXfMfK+hv4ik/vcRzbNE10e8rg0Pb/mPqZvg7b9E+BpPeR1V6DIiBd1/WkWnkxaprf7kVgWNoK1/UeRmte5pZrVPIQ36hMHxUC85vt8YojhWXZ4PDE/0z0bZ/8AUEsDBBQAAAAIAI611kJpDdH5vQIAAOYGAAAXAAAAZ2l0aHViMy9pc3N1ZXMvZXZlbnQucHmVVUtP3DAQvu+vGOCQXWnrhXKL2JVQiwoXVKnc2irkMdm4JHawHVYI8d87trMbZ9NWqi9JZr755u2USjaw5abqskvWyAJrDbxppTLwhZvbLvskFc5ms7xOtYY7rTu8eUFh5oN2Ec+Azunp6UOFEDtk/DhA4Wp43zyCzH5hbhg8VFyDbjHnJc/Tun6FAtNaO64dBQRoDTRJda54hgVwAaZCB/D0+sfmxoOuKmPaeLUqyKiWLSrmc2K5bFYvlyvu4CtPuXlMQFMMXAqQpeMj3j5fuP56x2ZO+LCTPgjyrE0qctSQpwIyhLzC/IlCqvkTgpZx7C3swQtYrwE/hoITJ3CSa0GJaMDnjr+ktSU3R+Y25oabhBeeaPj+M+jkCLTvhnsWWEKScEGqZK6xLpc+pSW4kqzvpdg30B7dUe3mQ7+WYG0W7EDRGzuzg9UZ2M6b1xapnp4/DpQA8yivpcYiWkKkkPoj/Lvusr659qtBtd1jSlRIBaevEZEFCds4j6NJ41v7HsQST4OhnNmWLcEHMSRLqTHf4LUHsi2aeeRex5Tfbq8tmx0TX2g2ZglaFjIdxAGbwydpy8fQTtU2IwKGfkfbBFf7RXW9Y05IG7WrqFgUG42VdWjz2aUamrTAozCdHfl1z4OKl2EgThcFM2FPGV4Tfpn218TdiGviyqnnU/5+skbZ3ndNhsoWus9DT6vs1n1SZCul8p2P+YrUoOEN9ncOKGwVajtAYmur5u6TfsVtxXKFZFEc99ZLk9SOie+eNqq1xGFeAyxajMP4zN1dk6pXm1rNxZOGUirnvO3qmuJ6poKasVurSXrNOOFQQ0m/vffu/K7j82HTJXlQQScVmk6JycSuPfD4CvF0Av+T7uSfdLYFPeGUKfJ/CvC/je9nb+fv8AHeLt5/biJGFWtSM//LpDHhZmcZLPUBuZj9BlBLAwQUAAAACACOtdZCADdUsAkDAAB4CAAAGAAAAGdpdGh1YjMvcmVwb3MvY29tbWVudC5weZVVTW/bMAy9+1dw2cEOEHhtdxhgLMU+gG2HYociPRWFq9h0rNa2PEleURT976Pkj8iKB2y+xKbI98gnklmtVsGB67Lbv48ltkLFmahrbHSwXXqCYFdyBbXIuwohE41mvFGgS4Rriv7ax0JWMaWCYEXghRQ1jAw5ZkIyLaQCXrdCapD4q+MSVco6Xc6diQSryfELUzjAz906hUe4G/oIgsDyuxlFTvg6CYAeSm5HaSfWN7l30//ofFzeg9g/YKZjsKUryh5txRaFN4WQNdNcNMD2otPAYFAQjAkKTkJx82bl5RT+HAc2dvckJl9SUbMmI+SMNbAnbUvMHjGHij8iKJEkfYx5snPYbiG7cA1vrMFaPjc5UKJG2N+sMuDaC4953iPQi2d+M5pHjexvjgWkKW+4TtNIYVVsxsQ3oFApqn77UzQ4SGse1bUoI0dI41kV63jC8RHWU+zbBEwQJ1lyo+JTybPSNtko1xOjJmQ5xkc+Are9S9imvNE1PqCOwukgnLHcXF+BKGbIRPed6x/d3oMudV2lnax85NE+BzadVfEGoenqPUqqACXOeOiGKpExjblHZMM8EmM7JWiZJlWEhbVtdsryF51spMdhbAscpmVNc1MLG+CcF8V/8IzRPtdgn/PlpIbmNQ4DZwaGRo2CeHMwnM0JZdfmCwoO1pRpn/d44jDzwg87dvEyprWkSsvWpBt5DrOarsSBlBt6zKwqKkRAhYV2i/ELMH5bMBPlZjkvhXzC9VKmfbDZhNFCxDCGgTPXRudhrh1AibqTDYR2GfZ7C8YFefty9vru5fz17jKM+/0XnSYyzdxt8uFuc0wurnpNJIThFOUm1EvpLZp/Wi1j5Bgzl3Vp89iLHPePdf80/0sas+qhh5z2In92EqI1eWOP6U5prqdLnRySlklW03+HtKEJRANJfkwx6QVXCbmIysWe3h+UHSW/LyzkTP/BsS/PfPQ9mtJF6uGVtXxjJo5tX0IDECYW55Ua5OLsbB24BAZhodMmuc35enY+NM9Odug31DdWKQz+AFBLAwQUAAAACABtoyNDZfcLCQszAACWFAEAFQAAAGdpdGh1YjMvcmVwb3MvcmVwby5wee09a5PbNpLf/St4yQdp7jTyI9nc3qwnt17bu3ZdnKQyzl7t+lwjSqQkrilSS1Izmbj8369fAAEQpEhpxnbdRa7ySCTQaACNRnej0f3FF1/cWyXVejf/alrE27yk/++dNz737r1eJ2WwyaNdGgeLPKvCJCuDah0HP2G9pMqLmyCf/yNeVMH1OlmsAyi+K+MoqPIgXCzikktfhUWS78p727CoyiBfBn9Jqhe7+ag04Tz58eX03r0vALl7yyLfBP8o8yxINtu8qIJot9mW/HgelvE3X6sX82++jrNFHsX8cpGnKSCT5ICmlHgapmk4T6WA6ncUL/IihHZ1uSL+5y4p4vIy3FVru3B8FWeVLvgcf9kF4K96+6c0n0+Cp/lmk1QT6N4yLgDBeBK8DlfwXxE7iCRluYs1bPp1CcMUbspJ8BJ/+YozRqoSFfNgJWWh93Gqyn6HP7zFNkkal1WexaroK/XALg7UEKcaYZ7Ip3nhlMryKlkmi9CaiovdvFwUyRYfwlisiziM7GrbXVrD/hF+/ASzAljYpZho50WYIcXJuNMvX7kFzIUxWkhxT/lRW+mkUThpKwtTlRh0+lQ/8ZfPKpOSnsrvCSyQNInCKr7E5qG1Ki58AKL8OkvzMFIAnslvX9l1nr9T5V7Ad1+ZsgqrXT099KutnIV1kcx3sHiwhrdCFa7MIQTat0sBj6hX3s/wYxL8V3zjlKmSmhaqZANkEG62vDhiPUC7IqnizTaFwdPwfnr5Wh7du3dvkYalyWfGNcmenN27F8AHeM5r4FJnVPRsZvCkx/X3b2fC6abBS+QWW+AVNJnr/FqWAQGDhxGgnS3zYkPkH4TzfEc1GFICi43bfX2d149voA70EHhFGSzCLJgDx13Hi3fATNPkXRyU+Zmgi5/iYXB+HhSPzAf/Qg/oyZMsQlaMLA1IC6m/cqpPk4ghwBfn8b+ox/T8Io6DMIXWg3VVbc/u34+A+aT5Ni6mPFO4DO5ffXWfenJfjyh/ieJlcHmZZEl1eTku43Q5oR5PYJjKEgbn/HtgMDAPCoNyB4DH9ahjwXR5MtUwrNonut6XZzDt3+m9Z5EiI7tKwuDF69c/Xkxr+ABtSm8vd0UanBM201VcjUf66WgSjEYW6NkMFyfS4ExRQU0BSbaCzS/O3H3xOoSJBBZXxZHbPj+9DCtAgJ5cllWxRfhjAx9danRiYfMs1lwU91JstqYip6nIKGt21ngu3a1bCHAxZLvNPC4QPhDyu9Js3/M62IRRzMgA2bViw2VNPOgJYPDAROAMtjQXUhBSS//ZBNiAN7Jh/Rm2kSADnhHAhKT5Ksnu4y8HEBS6pEIWNPW0OUZPicKQhnYlUsAKt/t4upriN1glxtook9UmvEqKXfno6/t6p7sxcfwxBckKaxJE6EQAHCDM8uxmA3ITk7MzllC4QcLyrEnA/72OgUxgvooAdubG2K5hZNTeAlwjQ3kpspuDIpd1EbNR683gZqGfJIAEVRECsyuarYqE5DbJjwe3h6vlOnmXtPeS3rqt4UObAGiukSWWMNvmFJts0T/byKlk4a5zILltuIpp0vHJtshpl3EQg3JUzEJMHjap00JuGCkayAkqQajkPBepapM2aFA9bBLhz1kCwlwAO8w+roV7kwEyiZhDGLC+C7PVDscDcIQdo3IhpOq9CUc9bKL2KikKGP8WYBt62+hp/bg5AcY+gPyjZg2eEf8e2c6+IWnwJj9b+l7zZeiJLC2LeXsLBHnW3TqW9S1E47nLxC0V8TqLC9D2LL4LyCiJCyXA4LElHE7x2bf+3RZQNdoxVzg15OKOzwBrBGhsr4zTJHj/4WSiNmElVezZirYFSFVV7OxF8tQaH3k2UJrAqYCBYak3YI2kDK5Bkwy2u3JtMC3oPUg7nVPHNfbIGrqQI2pcJL/uJ80SC5m9xgcNcri4eEGbm1oIfxzOlrRgZ6NDch6Ad9Eq140lK8+aDODlMoDNN/4lKVEdw2qdjf31e7exq6zZGD87QJy0CcBBAORKc/5328gjYsrTPdNelzLnnYuHW3sX9LI5WxS8DitQWYoWfsM6H5VRfWwlKQXJwkA9bIqLP4YF6jhK/kQhcBIkxpQKp/mDodvNnAnMd8XCIWN6ZEwdQDTK1kpLE4ihbhovRJk5CPWzdtS3DMLiO/TIgzq/8KCugbio8wsf6qDbhbu0CsQQowSYelJdVYSKX0pxWxsxXzXI7AzUixI0/mAsBU/6tsn1fE1abzwtvo7DTUmMYIyiZBgoK4OzTios11j6+qkHMhpj+kBGA04Tsn7qgfyc7ZT7QbNBswG7fuwbkHDVazygWHM45KEHrBLk+sBW8luzAeuNp5WLKixW4a/IUfY3U1LhAks3eboG1NKSYR3r09bCKN60SDgvfR1jk+q8Z8/q0s2e2e/a22JjQu/GqHhba/qlp7lXcdGPLDZUsCme68ce4M+0KrsfvlJuGy1ordfbCOyOyjAJwstFzYrJyHRpM2w2/BsL0JZOSEOWYwiUhBTkafD8l22YRaDSVmuQK3gvnjkbhAscmzaMpGOF0QltPAq9OC3jAM1zdZ9gH0pWWewoAfppE/EnukIX1igZuDhbQF2E9UvCuMbKgzIzeAdj9bCJ8J9U8S58ubqLsQnURVi9I3w1Sj5003zu4IpPPIhSwS4sy3XYQFHBauCHLxg5guvBDG1LyMcbBifN3C38/gICDBUfiKIJ0cVSvSNENT4tuBbxsokrPvTjSsUPwFVB9OGK7zSu1IAH16pw1xM9aWL5uij20KUHRQ3LxY9eEHKMgAczPh1ykFMPm/hdqOIDUTQhuliqd4SoxseDq1KS7e2TnjUxfSqFByJqwHPxlFeEpkKlJ5ZIG62YImUuDsPWgXsExrTruAPr36iequLDNykTqA9ZfKexpTb6osvbn7xq21zVKfGhu6sB/gjs5XzYFQLbBluKd+G8DavGTmWCbCLL7wRZacE/1KgauoSBz7x0oU7KOzfWsESTCD6ZzdZxGHmIRDXgGWV8pQaZcPOJMMVinVzZaMszj/gihbtwVpX5vFdjD+y+IdLUzTQEGn7F4ow06kHeY4HlRy1UfbCw6BcT6Q0LiQzdgyJ7cFi2CHzSRBC9OwJx7zgETw3WRZNe7MGSnF0cY754u3hQ1Z4wh+BpA3aRpbeELKPkwZVcaWzTv+lc00T3e8v3pnPbSLIFLLgJknGawhfbSonuWskiARaSZCu3Xw0k3K5RAeoa98DTNXJNsueBHzU79R0X7Rz/EA2qrslAgXPR4zeEn6DhIMiuC/E/LccFw1WhiKtdkdUHVtIL5TfB1dGsKwCaVUeGe0nw5v2DD2+/HU2Zj4wNcxtDKqt2QPYRtlGLDbwtHWA7r+tY0TwIIUjsjXCJi0ugAeSwAa2INzmwuAxGcUwF9Hty5zvn8VXPYOyxkG2OZC2bwc13SUp6t7ARULJxj8An59pMfWJVl3b4Lf5gM+YlDHQ1hnqM+DkhNwkePXh44o6m4Xc2RgDuqCDa1IpDMH+0XQjV0IVRdIl+ieGcPQ5l+MgTwRi/L7744kmEOwe9wH2kDMLArEhOlZbNXFc+I68okJALhnsWjAWZ6ESaUsc4qGzX9bjL5Vkwz/M0OD0FLQOPaEHY3pH7JhDVJPhziB3N8Wj9OiljE2Vj7MotDDsVNeeX0ekzwWZXcaKp5v75loYFHPQiDvWU72jGaZq/ngRfP/i6MddYu6Zy2XplhnglTgIUoc5HI1w/y3MxHI/smftLXNHgVmExB06KDgi/Jlv6qrZzNlXLQSIeqQM0YwYv4rinh5USyu5/CQzzVMCfpkn2zksP3AubINA1d1vFEfodApnDy5FgPppYgzuSXhi8WEDjoEC9nCx4IY4xPkFHqIJPrJawnwXlOt+lEfqyleGVcW6JnwrYjTpCSEpdhw66t0V+lUSAYMIH0ygLoomTuT2M6jy2YF0X6DOZqeKLXUGnGRH0d2EfLxFZVuRhV4XvYnQrgkZPycVOjuJCPGtN07rH1c02lg7DiE6ohm+oYUbNITlylXUtM4uLqs57Vh9PPg6LMcPGrPZZmGoZQO8Grkbc0InjQlv5NewNPB/lOXZ/gkMWhxv6YdhNtyDeo1tBHPk6RPCRCuz1jo9xlT/gVW53axm5IybAaEqth/IiKZUv5hj6EFZVMcayMHI41ni2TW6LE+1cftIE0+gL9tNbivBD+I23uMH4IVMdBK0Rm4/smfDX5YVEEle5ncqyeqOUzNMoKWl3QbfAt82RgXpcZbpMsmg8Uuv1fHQS/FsA361Hjfo10gzlTXL2VqFuzxjwysV6l71DyiVMEzysEyzH9OoSvQzOf/fwkWfsl9GUJopLOsBZIDXmxlt/keZlPHaq1ivNmkzZS+RtvZ2gLVX2knId+ncMLAO9jFCSBjKZ3yhrjn93h1c2K4cHamdHUB6eo86P0WJcO9nA3yk++Xbm8qHmPo8fa/2YHKllNwf4yGnInDwiNLuZR5vYJjyE9vAHje0be0AyWqtQRvNABneZCSTOlqngU2KlSHjdWX1zgsXtSRFIlrsT7yJcFmp1TRTXfsx/v515h71FnCb4faQtdQgxmoiD2qFy9Z4J4qGvxejOiWJDZNeSCQP0tgXJgvSVE6kxJS/1s+UuW5zNasPnTPsHoB31GUj8GhybgIevMQbcMXn1jRG+PMDf72qVieX27hZY3YVhc6jsoTKXyjqaRB1TKldvpGxzbpKsMgDZU1Q7lSpDLl0FAHZqXM3onjGs9Nj4cZdzhvL7iCSgsTE0dzmBOBf9Z5CMrEJcMoWI2oS2f3sKn4qttbrO1UGCf1khAIdNwhO9ROvLVL7K2K5dWdl4iUWHK7yZWBHEjqk2zNCP6+/Nia4HZdi8IkJiogB5aDSdTkfwF3G31arm5/Ynvu7f/g1SqZQy1SxSorbr3M4xNkt9NCDLjtS9bQ5rlG/gkCDDhw8GObwUx3JUFWsdD+ZvUe1AlMZbHlpnmwQ3+Y61PXgSow5d82+Ql0jLKm5g6BbvNBagq5j3nPDzvjH0WkidbqJRfY4yhpEMvsRLBEBW+nAFLyiIMtAEJPr59sYGYxX84F0Noj8bBE2DAiOHyLG/uAVGBDcyApi+se3654SGBF6gu2UmTuahLNL7LADcr0KnnWeskiufu87VJEP0WH1Df+2C5sa3oo7kmtzESJHnESsGQeAN2/P3IxgymDr4/4O7jGw1kFkn9sxRN/Rqk8k3eKwuF6c+YGlStgDDZsbjfxh+/qhq6hYE/Amxzn+gikQL3GUAew2TYtI1tBQZZJguvFMNZOOweqoAJERKi1jdpU6bwiKvXd5ND/2KS11XYWFXBtmVroCjerGrlqe/H/ksLUL20sLFiycyLIYRyqQ6FPHOg9HInH7VPJtPGo2SGUJ1r4/I7ahE+wRutFADmPeK9IFO9fyMFG7wUH390Etc72EGl+5jpaZqzAOF78QfZB2OGqQHD/tQni0jzvPoRuRYsrgi/cJXMUfIzzTJ4vOHLWSpRD+8c6s0A78oAk05ogg8UcSyAaYVrrwWvoZqoK6LR77STRtpEadhhTsZMXtz66xyhb415H5pSA2KDRzHBk0J8S/KDholy6UB2QMNZWqs54FU+/V7kARQ9i4XqW3j4S2I2r6zwh7KL00iGQeBSPHvmDqC36Cf9OMk+DZ44HBdvdCw/uhMCHGExeEX/oFfOGHwi/Yeryw30oazMz0/9pLcd0KGn356nqFD7JEr8XP3J2YDlYz9XEEbAWQtTshLjfZtDpiAFfPi/P0HtQRBVIFfHYwhqfiWWw+DjjTqXekdzAFRtOvgtiPrB1+qAwZEwpoBgU3icwmrzIWOooLqe6OF0rZN4ElKWMltMa5icxSxainLCYjk8WZb3UwMGOqMRRs85eJskeeVB/FpQFcPyJmQhOcEbxSCNI/Xp9T9EWq0Pg8KMwtQWBShcUoj/SZJkqfaZlDQUk6THk1EwSeU7aVU8kEU1sd7VWxgxePPEV3Mj/BhmPKhknFqZAHBC1PT4M9yhvaepbGzYPRUER3d3sRtPd6ESTqyOQsV/2P8S7jZpjGe4mFBPJFHEH+Dz+mrV6fPnr1+8eLs1auzi4t/gy8PHow+eMdB07lnKDxjofpvDzONZaBjaJTT4EJPCWkLqCbIqZFMOtexwOj60w5mr6xgpsW5zRrWXz1oYf2yLHkucakR069Fbs04PFJ3t7hWs97eApsgA5Os2Rc59cIDZmNyP6ukDYUR8+8pPPZQjL9odPAE+qymiFsT/WrbQU+LXzcrR6HBsino8dCSLKuhLN15x6Bm7ywBCudvWiY0tydRJeni9QNjmtQn7tyv0/CUjoAH6PWmFJW4l61vaQ+a31QYO8ancNE6JhsLU6mg0HaQzZNi8xk500ARkAfa2C5AGfDZEEp1Odm5Kdi4UDyQ32W5FV8HZnmVXHEAlga3a3B+s6ba5tBWPA3+lu+CzQ522nIbL5LljQVrnsMshhJHBHgLsftDNiwmS9UyzEDKbg6oTnv2VtxiDJRpv94Cf0Vuf+Mg7CJpgXMR1vzato8Z2mbTzuMPZzWVAt/OziYuLOzCqN+e8MEv69duyDTueHRr8PWajyDxu+aUMAFm9Vf0cXmOoRrGaN4bf49KzFVcwApqHlGr7vO4zsnYQcuKRTfQ+hsg9m1NtP4RdXOPGmI3GGT6YsrhPpzX4fHUQJ1Q5Dv43TCd4KdzB/OZIeT67Jms7JZdzNyzPJHOxvr9yb5t0FebX54M17Va98mdtU1i6EGu3WIo0SOjTHE0w4r41cOmKQWfateL0VtAxbIiGq9cg6ILgRpiAHrjrp+7tWWTx0K9NvG8eCebeF6swiz5NdQGmbYdGMMy9T0+N4H6/BbRymmWqbcgW1Jn8/+7YJdFnWbr1vBut3EIpOJZdS1R3AvMPjsmYMOBypHY3o/MerAczJ8fTHuz6/rjhdplL1cOVY8M/mYo+xIg4GgBEW+zG34ZJBcuk9VE7rqev6HIJEjCIL3AHs/OYn6io4CHfVX8ps9GZkThQVAtMgmiZ1d8F9+ckh8lcOcEI1xQINSQHQnLuELneVsF166gvnZI1+fu2yKEXP9V+JHPZJGsVqBwRwiyIQ6iryEPmw3oWqJkmZDUAZy9pBT4jtWE0QyCx/j/0BXU4cGitkgYa1eRUwTiOYppWZIUMWGI+iY6PhPkiBvkXY9aljAJaHm/6lLdaORRdaMvt62i4Ygfv/7ohgwvQL8hsUqqtEUxIztph+Km72V3ldG3Y7oK8f2M1g3HCCLXd/lTtxwVCR8pBkDQOk4OTL3IODloraaGwjGzu3755OFPRRu6jATJa5gG0YCvB9HROSLHhl+H+DXg0ExVHGdCvClUW8GYgjXNZpvZjJiEXvV1bGATjBbrJaSwLqXjeOFNo81UXZRCmNdorERFBpUaCxpaEqcNv3OmBWcc+f4ODt52m96w1umYWJ2pIWc8BYtYbr6UM8Oyg9vxXVG3n/T0GKMWDzjyHqJCtBPRugucIwlFRshV5KtnydR32VB+V9/xRIP6i2ca9KVmSU1pmTDyX94xmTUV68WFdZC4WzqNYASFN7rMkSbkeO4IO7sIJzId8KBF+IjibZrfYIHhDAcq+arA44agEVTxL13eh/8FRZw4evDolnZmRhj3Y0TNv3e69Asl4Rf8/6EPkUC5j3PFCwblePKgVeRIryloon4K4TDs1i2gAwRUYG1o61KGNQLqq06Y2PVZRtVnRWlubTd5Y8ch2OyIBBP55TLEfyN08Bmp72PGgY1UwsvxlAcNDR1USnc5G1yU2pvSuwbB2pasI8VKHJl+kl+as5kd/k5xc9iOR1+OTnqRsvDaj0HMNGTHk7PeKWyeh1E3RDoLjKjRXfIaAd7Fl91Ggloa6b0o9oltm4ZYYvpuYEdswYEeNSrX9+Os7tV35fDaCB0N4R2RCJ2ztPcDv/M1b4ydjUTUDOfd2Q8eWRvGy4sfgt9/8+ChHN2hmRmKIeV0ucNq+axTcjt4JbasjPpC/H47CU8Q2Xwzz8A7cQwrDr9qIdS6M1Hp0RnXahKyFSH9zJwkPMKlKcDH9KVLkDrwEvTxXEFP4fGcwbj0LaNXO4NPajWwZZ1j7aDg+9QSLF15KlAGBxXpQ7gzeS1nKw1KuXar6CA9OYNXeWt4oMvmhpISbbg6HCRGYCc3Ng+Ypi+6gJGrwd21mxrkJizeYSg5c/HW5Naxfo2L6vUKpnvyU+MVLWF7ofSWBFtXj62X4MDiL6SK5krC8YK3+OeDS6VM1Sad8YLpSZWXSEGmFYM1ko7bCl6qJDpkJezL2Yy++AgNdW3WeOy7J1SRldrPjOw+AcmgVphVokCit12LrEUFgCxkwiwaaqGZHnTjFOvL4Yp4qWNk+K6eabIpVEKnbgeDhlO+MWsYp+Mm+OcuTJNlAmvdNDxr8M4+y2YYDCF3H4ekvM9zDkQqkaujPC6zUYW7WVEp12wsz3zVgiaJvDAGQRpTlOnrPCiBPtZxOalTcz358aW6fUFea0nVOO72usRevHjyUJQN0CpKuS9SD5xpw/Iczqhi1hmxfuzKI8crBgXGfYCdB8MxLPIdkO7o/ggI9zx4pHxJWyhY3x1AaWIdoiyxDnspB+JahPPzUTQEPXzHywIchK++oilC9ARDX6xiin9GsTJMVWE0allNkn9K3CL3um37SM12fnTcUxR8rxO10gfMi56mPlABI/wD+zHy2SIGMTAlE/zgDTSlLYD0D/IpeeUjRTCNkmsgOh/gl2WYpLsi9uoH9fjZ0oEEvofVkS8SRI8WN3tTUve8q7JV2yjXlE+vqXMwsK6V8/6DuW6UjzUPo3+F2DJ2MKr7iKKE/tFygtIqgfdaYypaZJ+7sbezyjgAZvdtu+7FVYUrJWdjtkDte0EdgFVyiWZrermKC++opclqXV3H+P85Bc9oWXmUoK3vYUm4aj8qhZe+Ol73NWx0yOUKY3ljaiTDe5oOP2EUzOVouhTIUDnNo80fE58wnHlMaQhwLCORpawRVf4TynlTru40Fi8dDPOUNG85wT6rkh1IHhh0w5JeWc0xBO2MjKo7buyYRYxxdNul811jvhsOZzT/E8UPKaEUaNKha9cgUtNXm3VxEzTN3Dis95ETnyMZSCJmnXMJ31Jv7q8BirWtw4OeoubUAx19ATySgwXssSE5tImrJlga/nDl3/lN2dMQHGkfx4uU5X287kvjiRLkXs8w1ZDpGKbYqiJh+oGRVZg+TrDjX7UZ38MV8VU8pPZ5cIkPG8kpLTwXm0THEs1rRtwuw125rsbd8g0Oyd3KNzKQLVfV+s6TM79AlUcxcWAWiouTtzf1H7+2C0J8O6QHP6ajyuZFE3YATeKyvmsCfHC3gP7Etmuuusrw5r260kR/76MrMM4Zpnd1bzHgO3o+0QRCrBAVTsUaWQAeff31fLn4JsKb7x/e+lizHgybXZHSYF6VobvfoXsbI5d0NywEZfE1kUaHPoEJdx2eA09u60DMc9GAp9xzy6BepdZNAD0eovvS90GLDMN3fxQtAkfuoIURxWlcxW7sShjgZ/Sii+pvMT6hYTewwwQa6PG4mfEC9/er45YDC57GDQf3NoOXCbfecNDDJRcJ0pw928PKF2vhtchJGMVVLS3tyv20+PlZMBb+8zOvKQZ/Qom48YqEhjTwkgQPi1ySoMOdDeaH1gvH8GYfGBpB95xlN7aze6/e9rg+oSOPEL5Ji5LoyqTE94yAQP3Q8V2o0HHIOAzGJKDY9vbFiJHtxGLfo/AKor/dmvg4tyaG33IbdJXZe2mgIZDe1oWBTr9/bdr6v+rvL/y/3eX/gVfgHODl3+aZP9wnX7ac2jMJvjWiahn7BPoMicEo1lJihK6BdOYBa6EwfJdKElzuZP+VYwFBN3h87h4MyAjYET+7/YQwfJYA7Kbx/Zu/Gya4HnDJ8aSOl6LLbLfpCGKmymsrw02AJ51JZIzqdAqibYGGATdW0Q8ZSl6PTh98dfrwoX2dd44b1baIF6FOEVknsaIt+7Xr87iJYaVIwFzg/mmeoYXhOi/etZxtUefaAqupnnUwQ4VQ8Fh9uyVJm06UeOibR0otRFLnpGZKkfp3GTGhOyKXGpMjjPBxpCIj2L0g25L9aI+vjsod7XsnWWu91XTm7ba3mCm77Z2eEl8BOwmkR/x9HiWNnN6H3O7ovnjbajl/yfLabIaYYdKExTqEBdWQn0zbus+ziQ7WtMOQAhec4mHclQ2KT9F2GbcUeS39aiJ7I6trWE0Nx3QvdrRlCC01sJvNcCdBzDYYhrtlXgxqnHIt2h9aqgXb3TxNFjbeFqzD+lATfUc3OJ+8yjmydCImNIbW7kyUlE7tJqGb4G5hYtRa3d8lHGQseWinzPpNx/xbpjeLzezvmy66fzH4O6cB3HXvmDeZLPJQ9uTJ2nsHHOrWJEfc8zzeuV3+eYrDoQeJfPX4Jank7GeKxWBNvdSxrv7h82qS9SPl8KvUrwWPM5scvV6GVubjM2eKuzwLcVz2ehZioZ6ehZhduzaCWaoQNeVThbi4yjJjhyHEj7YcNqOls6CvJZuk7Jkk5ek6XrxjzxIipzphStJImNL3OlhrzhRlIrqjpCkfJz9Kq+5jiqst+VGcWapja/cL0g3lT4a5dAyJtT0gwpA1JPVh5z49pOHycFjkoKMcEPaG+T0uVI9xBXuvcotlD1Ed7XvOd3+H+BB1UV0TNlXFO5qzvnd3hS+qq377eGJiXCQlXghMr0xQSFEQiJ+5l2UN7DpPYNRsIQ9pPUtHEcTD0oYYd3Q65348biB/Mwa2dhpm311/oGseq9p0RoGt1Q1W/2Lgt44Cat3Ebbut3DHsd3T1tGMFyaj0XkH6iicuIal8V0vo2BuetQG1jenZBtOu+537+Z91w9N/afP2rmkewvwMg+od876eNy9xjtz7lf454nuV7vrkVJDDbUPOhcrP5upir1nUdw7vMqNL79uGxGQxbZNm6Ba3PT99CARehSuPpe8lVCNP3Cv0iMMkeldhQom29FZG1/0l1Ira0DbhjZkYTopGe5i0oUPXTNpqhns+1aHxrVE8fSjvyzZMfVQYs1Ol0fZz9I6jQ5kQc1NdJfmu1BdU5Oy7NBMKET1lEQWN9VDsKs5i0YKWmnx/RtnAuSCOz76d/U/g9/3tsUn33p2RGsbGzjIJ6MwNERBSwP9OHPJRmYoOo546sVNc9vJ43U8bGtxA0lD1PiN6cFNN/U8QDyIDI4vUsVTAKHTQAYatu1zSCGSLm8OpAeEEGk6wxSOxODb1mp/UpNELzEqyWhXxyrgbYDCKKEo40TIeBytXknoQMX4VZ0S5BcpDdLxkB6TmkbeZ7KjSZ0BzeLRcwt78powXeRaVfHcPxgNnXQ+jG1VexvOtuZtPp6hnxGdnwRPoHzr6A+hkUcqBZ0kbgdBciEHMpniwCq/QILNYhGWzIf7ohDOoxuikM9mNHOaW7O0iQaxL6Bf5KRYeSEklHadLrWyyQrqJr9FgFZaVXKTB61kq+I7c5fJBK7kfhKA0fx0m6MO+RCSK+FRmCfR0+6AZqB67C+MbRzBgD6b/7vdD6bhFUbIxw1x9t7DekRw6VztHuD9snavadKcI5lNdOG6E3j1kFWrgA/m/qvcZrMX9CRkGygNGUrNjCcNAowd9XOZZwyKpyWUotSz5Bq2Zjs5jttxrssTpIUdtgwxrKOTVT0CsNJC/Ud9x1OdPj/ERqTGpLinUX1IdKJzgthDcxKGeZqAkBRHVWkdK6Z8xvN4h79+i0OHKHHJXmHfdVN1x4ure08yPTHU6ZVwCMu5vssQnlSWs1XILqxTndu/yNG4tq+RSdZ4pw+neXLieAUSSU6t5gpvFQoVH2mVVkvbZbLQo0uNskrcb6wZviBdv6nj8fOcfNxwjtoqFOC4pH+xmgiqFnXV3kS4RVGvlh2iBxmb9Pu8+h25xaBSzfhGHqdiqoEN8M9KJTLlM0soYNOCCYzOEjDTSiPbyf2wblSaQ1Gz4P+DtdDU44bKKxZlD7kg5GXHmcaCS4LG3aLAIMw5yP8MamOyGMjjC09nLix8wotSsjkpja2bYAgfMNJg7yzaMp4KIALmg2yFaLx0dEo706XskiHp6NFTUcdNCtwk6nKCSL9Eb/vdmFrJmdhgPsxrRZFDgng3QXLjZXurkPWN653WIHVGPW6rRuxMjXUPTN4XRP9m3I/TLrTNETEsqldyTt4PmTpDxDpkXajsIAeNzuSt9kDmphtjLzMNxuTPXvZR8SNhGgi9vNsgqLOChzdSvY2MxDOB7NrrC+yzIhlXJ4X113c9AoLt1o7bZvz00Wa9Py0OEptXqjLGQ8SUsKZzoljhYnQbynmR9Wcuwx9hIDSpx7oQMTJ70m/IByFh1zLw6MsgYOqSRX4fk5alb6tvfDKGfWHnpzST6rG13eju0GO1HeuA5qj6ZbPos+zesz/WeUjfLqHt38NFt0yv80+9yvrtVA/c380bUsXSrkOigV06PcRixSrKTPg68+ylCZU4Zdm5WkwPX/4xoAbOtGn6vjN+Ung4mCslmcjxFUPMd5ECpkZQJJi8qChM3kCwIRu/MUtiKPTsqVJsK5mzNwngEuxJME3L5PI3k2zX6xcPegWGerXsRqvRweuReDCRHqvQZ0WBbGq0htNcnW1aLpI1zy0GhuyetVRpHAKhXw59h0njdWa9M3uJwSEuAfIwPY4hUFfBbob0NMz7dDmtc58MpkVD5jCjRdB8fyPz65IbqQxPYeAfrYzfBjjxLfdIgGYH4ve97pFtCyyVMTRx1lDGSLbXggby7/XUEtL/YkyHAMJp73++xv/dZL3KT0lwlNMtRsNvCwzoDtsQF8S+elsxKIzRyccDl0b96o3l6kg24e48nnr3XjO5NHaUwgOYJDb6ulJlLyYqGI/NuA5HYLt11fQmX0G4XnpYxlsIeqQRKXJaDKVozN5rvVpNdMvnjOlmtRxo87c979mSOqhZhX/meWTSyT3h1Ce/waXLcOxlhuRjJvUIPqBbbu5DZpzK9qxjgrIz97vTRg9ePvjp7+ODs0b///VCrfNum8b3eNKTTLdbDP93oO6a4W6gRKuoR+Iz2js5bFQM3k84UVz7Lvi+dF0ZulMVKUXjkuyX71JlTSABCFsD84ARn1QhGZ6Q0gTHxykJvjGxhmEG2mXpkv3Wff095eY6tRmhM+OygHMuJKQcDVrwCmcCkXqYd4Tn4uEK/b6b96tyiX3Kc+S4rKiN7mNpaGtvOb9prbxsozYqjzpqL8DCdVq/E29Nua2yacl6XyI83aw6kJTMu0+2QEoE6mJCw9qcno7257gbSSo+cc33oA5ruUACY2R1IB5Le8nZIoM6VeRgRcP3PiAx63MgaSBG9Urf1oYnvJINeO1Vkq124OuZqy7bIVzABGzS1a3AUmfF2fJ1rmAON6YSCrv0Z0Eu126bDLrdo7G+BFKj1DlKok6IpC6mRdq/WuHtp1/gZymOsrHP9eM2gnHrl4KR6/Qy66/yaXODQGjiwQczdhgKrqJNbjAOYYcaOIXqkftyGhdX4UK1z//o05mygM0dd89MvTq9o2Cs74UDW3jv3oJ4pM42JJ/OjdwEq23IXjbXlPFH0NGoQR60CmlZsJ8OKYdWe2ND09xoOnv6O302CqxPcLNCII6rdFHgS6GsnjsYo8R3GV3SYD38wiZQM1Jt3b6F4EHypspJRpljrKrP6RLBfi/L5ro4Rr8Ih04sWq70Frg/bfVUrwF2KXxZXeNp8nOpXK31hIABxhWoWmgDl/j9W/447vMS1qhc0rFR0kUnDRYxJHWB8yQLCY47fH+71PGzqhfjl4APPHoogEHeyxKDa6HOjXA/TVHkeYpT2ZJFsyWtCPdxnJ5fPIZu9hU6/DLzsuJg6HrslbsEhuwrVENHgtEh3mAwrsPYY/GDCSwxbj82F/rw21nB4GtRpuex+uMHuVCwcCxyyLeaGaTMCaNPOyy7oMHS7ilyg7BbFJu0Ye8VvOVYh1pNN3N/sa8EycoLerdn3E3KE12ukg5olWCM85bfDDpYtCL0PmO0jC6BpNMymTgiPkUVL5Ixt/HbK7ve+1uWP3pavmrHH/TttH97Gg969a1LaUI+6ghkq5SuOe687NS186zs8WDJTtdL+eoBWcuDhm+Rc9XAD6jzeR8EizGdQKHIyM+CHwsuIMs6rOZjNsAKsiuUpR6pRC3o2K2FnCsuzKJ4nYTab+ZCSfLINpGqcaLeUC0LYgK0RPP8lREkUI3uK6y4GsnIa2i+YcGsHyyXWrH56ZuRVQfpmyx2ohRCEA91eKs7lJnkXp2l+Dev3pE96dHXewyoDnvVYIJyW1WkOLWZJ9I2L2RaT9p8N9WE2xlh2cxxM4KUYzm5ebkEAHOZFJgKQTkbbU/IhpiIN2iRJmXlVojMc2pKjoeAOBF+Gryrs4uGLCmt/+rU0IJtv28qhGFoy4LYJpVjhqnBz6KrCNeFhNKoeVfdpCv+KtW7jfpJK7NxuA8R7nKvw17jor4HS/khnH8H1Og/WGEgawRQqY85x1t8ao6HWJZyPRZHMsaomz8+IMm/tzlA9RHcfCcsY1ANtFEwqGs5txSUyZ/v/DaEMopK6lx+BTCTzsScgyiATgYKjwqJwiMUF5mrsuKruzcnNaStNmIbEtYfMZER2WwQkNKfADL3Yoet9RhTGaaODx/y3k65GtUAxIBz1kEzYfciPEe0gQBSHDmRQWPWok26LWkDV2uSlKkjA+3GlmmLsOp+eWtD7HNt5LF8Gb1jV/qS8fb3gX2MG3SHOMFWMbmAHUgbW5VxmIQVXPWrv8jGV19hCP4mbi35GZIEI1dtUDjLrFB+1UwchZJYPks0Wzy+x2l4awu7fAhFhW70pCK3GXis63SJFc1Ujv/IrqNK0TXtCryhbdEt6CNWAPbHPYt7TS4kcjKYqnDP4GdqXV+3mQd2O+SosOgM/yW4AmWylLMlssWUEyWLb8CVGYx+m3+TyBsF+n19Pg+e/wD5dsf/Hy4sfAjQpi93JzYX0N/icvnp1+uzZ6xcvzl69Oru4+PtsNq0NRF+Qgfnhg9MH/4EG5q/+4+zBw79/0Zbk5a4MtDjxdNiJU9C4QI85NPT8NI4Z3oz0y8uwIquHfuAnVTuE/HZXNRJDItyTfXnkHj34XY8Mwpu4WKkg9DgEbDzVGYQbBP1jXOBUAiehmryKZzOshAlQMmAnsxkC8oWmN2yHRvS663XMt7dheAkqn5AYcXia9tB91dviDdVZeY1lpDKcAu6SVFanXdmbAaQtrMoQUqSR3EeDOkMqFpJU3ZjuhykS/9ge2tJRi0YQhsr9eakyrZLPNX/XhY9P1V2PRd9I3dozokdKBNP/PJI8wQemRdhlyT8xd07kJEhouqE3J7+Xg4iXEm4x6YHlUWImPuhmD/S5mwDtuvN9px7N0ZcikPSYfdNwfzwB2NNuwu7KutzXMH/Xs68s+R8h44XRr74Ti5vchhe0fyp/ev7k2avn+2zgjdHXWeQfq2/DOC7jtYfjHpoOiRHqP0RLIXn45st8pI8KWLZjkxnROryxCP01sq1cor4aadJ1uHg8tSF1MvgzGVQkh7ZOSK4hqcTktL2U97kcZb8jGGyOqVD5Im3uPvxHb0FyK0u8MQQi703NgEjBuCmreKNCpqiQMNmN0T9EQ5LRg7amTiwRMFnWa3i1ZwcdcqjTKDz5CMYqnT1WvgniX+hmIIMq4wIUuRO/YAJ4mIyhLkJeDPTWCpfrEQX2nTUMYQbYYB8GYJ9CwJ+7Wv66H0ckvZFzun559n6iwnY+vTrXHgme+9zLO1PrmVlXzEaGKBfQwy0MpZ1W6uMk1aOGfRpDS0JxZzoRQOdclXGl7P0kKhvHnmy6nwTJKstxRK1puxDWLnd7TRA+Pu938qpbsWcuQseVTYLexux0Ymi1zFqsUaJLrxQ7KlIE05LT1mxcujW0ZTcwqYDZ17DDR/4wuzBH7LH5q4WDwGCxK64eNHTANeZpJKjAY/lW6wrd5wWc3fSwfdKnuQLYRhpPIUizo0ewmAbJukyFNW0vVf7UT/qwJ8jvM9Zj2u5u5LsZ+dCBxlGFDb4z3yZu5TAAJIdDWWP4JEQf8KciM8PzbVFoQF19uq426eDUnBwGrp46ANYxY2SvNjdlslsP2Y4HZt4UG/cdpt2EHnC6285pK3TSxpY8qVhieGLUxugDlK7hh9fO+MOTu52AIu533nTEDODgHs6oJGfxEpRlmSIOqiu2mAmFwCT/bu4DyeBd0VfM+OFs44Edy3Oq8TM1zN6A0DjIVNgwiFR0tDGbSbuOagGzLG7Migi0Eva0+PlZMH5KQTACgf6MhJATjrd3YVBHr5CdgkJ5/0sepdPwlFBFgtvA/mVoAmxYBlbmp2IJMG6QMQUSl1MPAjqPDeN3t9HQACNHy67lzKgmnXDMTWJjVz1Ug4mY9FqF8zSfm0uxXxd8+drpFBxBOAnZWVlypE19TqFuyYiW1ZCgMBC+N/I6VMyJJsUxSGmn0IGUDwuQ/qxmNRVb84yxOTlkTq25ao11nuPxHMv2oBZa4Ci+u0/yei820VG/zM6Oi7VM5chnnrDjqapJn9ZWCyOIteN9JoVJucURN6JqaM4wvwH11/GyLELMK/1X9DJ+XhSgYOGVqPH3OQAE5Rdo9aTBPlQXeCjpcgBBFj4/OmmC2MeuaZUh6sq4TtFXjS715edqzEaKP+5j5qqR82D+zdegr+aRHrCTaRTT79GuWp7+fmRX1BZ2ZRk/q3mxMcl68I246F6GPNLkC6WuwjQhfo8P+elYv2+7i6fDq/tqS+KBD1bVpjss2eh77XY+eZ1qu/ufTLEeE1y7BBTnVS0l9bB5JwCfvtGV8fjBspkZr2RjbYVADTEAfdJQP3dry7aNhfpszG7yV2T5aV5MMHLwJT5onI0ZGyvnhFVpYP1b06A8sOa2kuaFuxfBI0or6G1H8HV85+LrXnlnW00f3EWhIx4sypG73zaCZZ21v43oXBRDJvDw+4wd8GasOiOdJqFLPWPBi0oZJdoNHzjZnF9RpU9a5LusatUaebesQM1R+dwCqlA6Nlid50eFvobtbR1C7es8iDHYMl7/mM3CNMWY07BmZrP8OqNTi+B5aFzewEohbJDL6uaUKqcxparC+MQ65JmNCbLpKtbgHZOpbPjU2vQEr1+8oVtGb988eEsCIG/JVIZCWdL41NzJqPC7h24NMj2juSWrvOozDstRkcNh39cnLTcOgZCRR8XmVu4VCzojhcGxgrODgL6ptjfGNNkuWUZgcbw8R33DuKsh9JCGv8KNcLPFGOYkPuG+Qab1dYzkZQE71edUVXCVhIwXd9GKc31bwcGNu2B7zQeWDVHpOrYNutxO2XmPkp8G5+c4vo68wcNq3BJpbjAIyNlERFmaYrsj9FByb4vg1TFm6PT2rb/md2FZnb7KI0q93Q7CLta4iUZ7wv8CUEsDBBQAAAAIAI611kJcGomyCgMAAIgJAAAXAAAAZ2l0aHViMy9yZXBvcy9jb21taXQucHm9Vt9r2zAQfvdfcc0enEDQsq4wMHWh23sfSvcUSqrY51qrY3mW3FBK//edJP+QXbcUNmYCcU53333f6XTKYrEI7oXOm/1XVmMlFUvk4SB0EM88QXCTCwUHmTYFQiJLzUWpQOcI1xT7w0ZCUnClgBeyxCBYEH6Q1fIAXRb6BnGoZK3BBYyXCRwL1Xl85wrnvBqFde/0k34EQeDyDkSWQ/AqCoAeInNDXCPrGd15nM+H94s7kPtfmGgGVi1VpUaFpSZN4IoDXFm8R4FHTGH/RCs+qBJa1k93LQB9UpFlWBMGWBW8Vd4mslg16qYuCc16mJKaQqVcc1DkI2TJAut4c5QdDSq+5mWCChJewp62JMfkgTAK8YCgZBS5EPMkXyCOITn1DSfWYC2XZWqI4u9GPPLCMNWTcKZy7iDM23ThpF/oKm2/U8xgtxOl0LvdUmGRrVvua1KlFKmKr6hP2v0xj2oqrJfDdhjHIluxHmUSv+ojP0X9JpiOgPNRszBjo7095hJ4o3NZU51MmR0eGwhQOuY8IO5W71EvQ2cMh4wi870HDa9hTPKlZ3Kq2O4vRDhm+j0VnctUSG+f0dKvzcjx8QZFvfUjorrz5k0D1p27Wfaz1N/k/SZpgmmngmd8RXhMwDb8KDtZwpEsM07K5rCnksgMeJoKc1JpRPIU6Xi+02C9awybtxFpFuIHEQfXKaLUvPAwk5yX9zQzWrBMFKgmWNqG+DhU5lEhNNcqXM21vCfMRWxb79v2FHUOXiVnRcxG9w5z0R3t2Ui7GHp73Bbb6qdKcA1HmtHmdhOZcGNdm/k9W20XNe4OawvXsL1ts7jpZy6Qdvp5BXPzHsLz4cLoboXt8+bl9iJkmawPvG1Y6rxt9M0HNnfKFJTG7rXDNTtrPLpB7FKqiii7njeM3RuvxHpUy9GTIzVereLn8DJJsNJhBCGvqkIk3OzD58cyZe4wM5MvfFlNJZq0zPxZMLdKd1x3eykL5OXSrK7hdLNZw9nmbAV0+SNc2f8OndKK6yR/X6p1+Z9abcJ/KPYPUEsDBBQAAAAIAG2jI0P5qRtwjAYAAO0VAAAZAAAAZ2l0aHViMy9yZXBvcy9jb250ZW50cy5wee1YbY8TNxD+nl9hrh82kcLe9aCoWhHUK6CCRCmCo1KFUOLsOlnD7nqxvXdNEf+9M37Z2E6uvVaqVFXdL0m842fGM48fj3NycjLZcl0P63u5ZL1QeSk6zTqtJoujz2RyWXNFWlENDSNoTHmniK4ZeexmErH+wEpNeibxJe+2RAvy+unFkx+fKkK7iggwl2TDG6YmuqaalLQja0ZoWTKlWEWuODWQP3D9bFiTi1fP88nkBGKdbKRoyQclOsLbXkhNqqHtlR1eU8Ue3Pcv1g/uV6wUFZvjV9bhV2vnFwyf3vixaFuu49ewRtYob2FDeSxkAoI+JNVCjpaSfRq4ZGpJB11PJpOyoUqN2ZnugWbFhMAD67qEtRbGrliNaXzovz1auZTm5LkmtWgqm3DebYRsqeaiM0BQjZJJk3Da7YirJJgRSkxxOYS5M/ExpYM02/wixOW1COYpTQFR+fKUNSs/wrSGf2REiaKwc4zrr8liQcrzcOCOGTAjF1B0YA0m5oo2CK6T6bmqqYXAb+mLO+ML8+YNA640EAGpte6L09OKXbFGAOFyWxZgcXt6de/UrPrUU/rUp9t8VmxDlkvgp14up4o1m7lf+ZwooCFkdfFSdL5K+KgBXEx9WdCs2czyESSdPhsnfgU56z6qPRBMzJe052ThneZbpqfZIJssmFaQJ7zE+lKom9gcQzFDKczSjAJSCPX29QvEwILbzUhgF+3zFcPWum2WEE2K7MePYAMZDThuK1xavP/3bmNHYH3MjxtO3MAoVDtcyUjWDcHdDPoCVVpbeYodjcPLG1weGETOiarF0FTAu2u6U7gdMqs3WRjga6YHCXpo5AZXPqCcQZ6DWPM4rtE0CcePZ3OSxZGMPHOCZ7WtMtJqJa8KY/reWN31Vj5jLoGowklE3iIJyP04iAdIym6EJhRLst5ppvYitiHXjGigNPDCBhyiwWBZU0lLDYeEYtoQayeGOc5q+bbWZsVDh+9BmdivJetxk5Drmpd1CHXNm4b0EtQBJQdCckeTPS4YZr2UjIIW5uSnjvQ7XYvuHCyBSNyIbIimaOvWo7SEuVCAQWNx7bx7GKSnSUnBM3q06yMtA5Mqjk3XlhbRYhHjmqsa0wDkmROWb/N5OHG18mVxxXafoB56c/fbbLZa5aF9npMrJlGQwFO3ZVVRkLP8m/w8rroDg6pne0rDtkpIuhh5b/gWEmYvlEdAx+N4Gk6xwGw6iwhuiNNBtuekp7qeW0/8t6gaL7EasQokPEaElMQ45hgcYL2iuvYidRwL40ixcOwQ6w3EmcSVCBEapNoDYwB1FiM9u3BMS4IxZ2UCUNPDUC53vQnFW5JphqlFQ7Vr8YwwX73uBZONG43TEz84dsQRlfDWbjfRNTuURyQzpgFBrC5blzm5dNvrGls/TBMOh3C94NgAaZHEY72kEZnRUJXsyQ5nv3Qne3CESyPQJPPNFXn3+ezL+0dZblup6VjsCIt9GnsE07seAsZsX1izEKJjt4Jw3U4w/bu4n/SI0JsyzRxiCw0H3TLsYLCPBS0xrQtsHJgiZNrHQAv0xEy3SmePgPFt0YMetcg8j1uQqQuimnkf/p3VcFVKvmammJK1Apq8FK6CRmYfHiAKo9m0AURQmU6E7SyyY8tBtSMJxgcXBGXjJYo2CqTMVDTTcBBCwYM3J7+AmraD0kT1rOSbXYS1hiwDL41MoMKwlvImPxq4zeNB1MKsprJp9J4hnQ2M8c5IfORxXH8YsjkQe4oXn7mR/zDgNMgILg3YEkkVwV3ClOphcOPJ7dij1SSkw/jdXK0WBAkTHgKeCJH7imrUoc+Ze5sVeyIaQSpGTs+jif7JxnyAKXCGAyJb4qAdnY7vZzcA2LrcMNu+nH05PJaWhqRs2cEyp7iMWWTjkmBN8YeVhWWw50z3PjcpWJgrqIUBWpyfncVokD630AxJgXjFwWqcS1ucKf565ye9dxeNVC/Q6A8lYugxI4cS4brHW2vFW4PzT2iFjfAYmm8pEjSr2dga+Zhcmxlttf8lZ//8+yWHjw2KSUkn8B7n/3zYX6rNHWIW7xxJuWLkZ9oM7KmUQk6xe5y+xP8woOUFxs0ONpq/xtgl459O0e0kmx1C3FIcTfRHW+H9hWr8J8qva5Y277dXWH8fK/Zb+j+puv2g/57k2vR4zTXl+XMhtp78XzpeiC3UgRInof919Z6gTh/LYuWYDitxF/vg/jILR8yOzA7bSbtv3Q9D2d8BUEsDBBQAAAAIAI611kIWe9MwgwQAAOANAAAVAAAAZ2l0aHViMy9yZXBvcy9ob29rLnB5rVdLb+M2EL7rV0zSg23AldPdnIRq0UV32/RSFKiLHoJAS0tjixtZVEjKgRHkv3dI6kE62tQpqkMiDYffvD/Sl5eX0Y7rst28jyU2QsWlEPdR+uKJonXJFexF0VYIuag147UCUVdH0CXCDW0DsfmKuYatkPAr1zftZqbcwsc/fouj6JKMRVsp9vBViRr4vhFSQ9HuG+XEvScF5kIyLaTqlSQ+tFyiyliry1CZXMJqUHR2fxYSoyjKK6acB/NRvkgioIecWZPfidVJvlg3fzR/P3zp4ojBhlyyuqhQ2Sh5TbHtmebkvkTdyhoLi7Y5dpaBbUSrwWRRgUJNGQIGNrWcAjpSGoz++lFYHUJUmtU54eeshg2ltsT8Hguo+D2CEkniNpin/AHSFMp3vuDCCqzkY10A+WsydWAV1hr0yfaYFw6BXk7EF73Yyv9EBFaRdSi1bpLVqsADVqJBGbu0x7nYrw7vVzawlY121afV/i9wC1nGa66zbK6w2i5tvEvKiVKUvvR3UfelMI9qCXx+06lU20U87A72LcYdpBVnrOGQWuh4h3o+a2U1W8JsNup9l0DBNGq+x75ByWvqJcoQr3fwWGJNxTWVNgV5ZAqoJTS0jdlWxKHBTpoxTWZNDMMy3/puDGozL8hpFBeI0rIxPs6nQc6Px/SpUbAvQ0i5xIloOum/+DFqnfhhBqhmxo/tYO3Egl32C2QEYXU+H8hzRXXgeQla8t0O5bfg0On6gE4UQv5dIgFIICKqhXbVtRNuKIxJM1+UE5ZrfkAzoW52Q1Pdqm/KiUJTn3hu6IDJY8+KfRHoc8t3rXR0YUixJ8rTKljFwJIThZb+qvlDSxxUvJJuM+AeDC8IwptH0yjdPHpt6ZgMZpb+4Pbp6vnuwyx2TDcfqhgA4cMw1sJk+iXa4E7qNAZucQA1ngtwMQngZsOnFp9MbCef8oft7p5FrO5P4bHSg9N5ghpPs0TM9skujGQRj+SaOK9VAhshKn/TZFyZ0UJWu/RmnkVLaYslvLu6XsL11fU5rmaq3ahc8sZ02mt+I7QKJZ3K/gY6JlxIL06pMwMjzh3oY9PyqshIMp/5NoiTN0yhWUjHKN+QGtp4dlKw4LprDDdH6dPzEhxPpLd3S2BFkXmfcu99BWTdUUS6li2GKf1MNqYboWGS7aEgWuisJzAXNgnMhHCPx+/peKZBbhinCw7NMl0TDHOrjiO4CnywF7IT9IrTAeV8DtEdiXYsqUrRVoXzkm4WHbViEcCTzUn0MUehhQ6beoYgSYmo1PYPum1i66P3yiXzktU7or5peyjIK6Yl7g+CjNu7YG8+iIwy+3b7pvm6qofG/WRaWBu/VXzLrBBrMRqWp57hk65J6M7SnS5Jh/rs3yy6dATxGajb/vi7I1D3Gvn7vCpO7B1X7f7xM8AYqzEBQWUQB/RRBvURxF73e4YwH91sN0zn5ch6S4uZ2h8Ec/O6sCN/tQjcMfsnrlTDiWDWF8F6xy5miKNTyvmFrrn4KptoVHqCU9ckHnvq/+BLY0j9d6Ik7tYvaPIfUEsDBBQAAAAIAI611kJK2warjgAAAMcAAAAZAAAAZ2l0aHViMy9yZXBvcy9fX2luaXRfXy5weU2OwQrDMAxD7/4Kkw9IDr0V+hPbbmOEtPWaQFKH2C3s71c6xqabBHqSMQaWpHEbO9uossDwL4BbTIKF5y0TTrxqSKugxsPkIEKCjXLQtC6ojCchKbdEYgGuRBiycI9RtfbOzbRT5krNfjbtxMXtnTt7DsxxBp6NC55fMJXKTfHypb4AvA85e48D3n/xA95QSwMEFAAAAAgAjrXWQuNmkdLkAwAAOAoAABkAAABnaXRodWIzL3JlcG9zL2Rvd25sb2FkLnB5hVZdb9s2FH33r7hIHywDiuA02YswFx0SbA0wZMOaPg2DSkmUxZUiVZKqkRX977uXkmh9GK3gB5k8POd+U5XRDRyFq7v8Nml0yaUF0bTaOPhNuHddfq8N31RTVMkLbZjTJiAN/9wJw23GOlf34EJLyQsntAqoeyYlyyXfbDaFZNbCgz4pqVkZnZV26Qbwubq6eq45pB6XfhyB8PP49uYj6PxfFEjgkfRbVOfKWaj1aTAccKG0nk6oSpuGkTXAct05qITkFrqWuHgJToNDvXJgt3jW2w66Akb02gp0+CXZeL4kgRMzSqhjmvYr9Pyh4PX+5vZ6f3t9cxMjobDwy5+PCEW+rm11L5SjDtlbMIcL+ctgbgLPeCCQNZxh5FzNHNBPvYATDY9H3wrdyfLM04u1DKOMFpMrJMxcoBsJ4IRJ9AHoDMIMKO1EwRP4oJyQ8IiBUSUQQDio0fCccxVYznYP7p2ElBiehgm1VI+BSZI61kTlgTkPTJ3yETFIlYwZ7yNZ8gqyTCjhsiyyXFZxSEuMabEW03J40mosFXqQi5voYQKT1S4JLKvzu/NJRCYZawUcgkxy5C7adkZuY9huz9hXKXz46/fRxRFN6RkyOGetXSMzZFkxjxsX6JX43HEQ5UoES/GiCEKX9KJE4v2M94lh5heUCyJFkCUVLa6tfOC2MKId++M7pOUEueSe7K0l3ov/fmSwJciSlBZX3r/DkdCMDWDPrSKKTjLjR0Eo9cDHV74MGxm2nnJrd2bbKxvutXI4n8C9tD9yrOihmYcuZaabQ9gmXUNzcOiaSXcY7jqjYBuGJ/z9df/tnzfbpJ+KUSiAgeztfJ6P/Hg3cMeX7Ni4D36jD2yoWIGTE0+jscJPDGrwhUV98+VaSxx2vRXZRMT35S7GoXoXw93+buKqZV84s8N4aJmrDxiJmU3vEbGwaBjyBAfb8kJUgrIcTqVYFKwB64zHpBBpX55MohHojtL9WeQMx+NLw82nEvUxCMpLFp0xlP0Sg1rQPeLHsN/yfRfoJtfBjA1FCoZc7BPH+4gq9loKfO/vQMDiPXEpz570AbYpUHCnYQnv3h/XOzqT8i4ezkNhM8mabcedjKpxNuZo3kt9whrsvbSHZ9PhhYXh5Kzxf3ZT9XnyiZsyve8zPTcJ0cIKZR1TBY9QmTlnIjIUO+BkhKNW8FdCHD4yFhT0UNgyH7YDkDlrAA1Top3t4BcR/z7Zrwwhl9l0y1WwNJ8MOY/QBoq6U5+oTigCCbpisqHHo59uXl/yoky8y5E/uVsGipIabLt4upDa8mh+cGjIWVSGNe8czjCInjR+dnzhhh0xk/8DUEsDBBQAAAAIAI611kKPFA3FwAEAAOcDAAAUAAAAZ2l0aHViMy9yZXBvcy90YWcucHmVUk1r3DAQvetXDJuDd2ErF3IzTSBQaAqlLcn2VIKjtce2iiwt0jghDfnvHcn21lnIIbrsembee/PxVquVaDV1w/5cejy4IEm14uL0CbHrdIDe1YNBqJwlpW0A6hBuGLVTLbj9H6wIGufhi6brYZ9xnuNXP79KIVasIxrvepjVmAtNAN0fnKcJ8iNxCCEqo0KYqdfL5KYQwI/5dixepMLifm7i0/Tn8n7qR0JqPJDzOParLbfYK9LOJiaemlNoSdsWVGqZOkXwqAJUHhVhDc5yJq1HM9ETzxORt4igTHAFdESHIs9rfEDjDujlOKSsXJ8/nOcJmZ8ZHegD84d5gvRbYwNlqa2mslwHNM029jCNGV8YmHE9DbaFWLKRR0SsPZaeFfBd9QiuSaNyTv6nYZy0MXuREi3SOovf2Sv8r5tv6YYRP+4dWrTo0x7+6sNeGQO8c1fpFHrkSd8Qm6rLwZul5iL8DmlS/h3SU/Wp9CL8WvqzrqIhlH+azR3dELlvr69A2To1N62Vr9prOlEcg0uxMZJt4fllIxanjoabTr24skcavIUsOXi0GURH/37++HJ3mcnRtCNqyRbobbLjycU/UEsDBBQAAAAIAI611kIYnSlMewMAAKUKAAAbAAAAZ2l0aHViMy9yZXBvcy9jb21wYXJpc29uLnB5vVZRb9Q4EH7Pr5iWh+xKS7YHPK1YpF4f7k5CCJXyhFBwkknja9YOsbMVQvx3Zpw4idMt3EmIvOxmPPN9843H45yfn0e30lZd9jxpsdEmyfWhEa00WkX7R54ouqmkgYMuuhoh18oKqQzYCuFqjAad/Yu5hVK3MGCqW7D3mt8O0ho4SsEx0V/S/t1lcPn2nySKzimhqGz1AXxaRIO1AXlodGuhd77SLYZeY/IE7X2vyXblLFEU5bUwZpbfakJa7yKgh6hvSMLOee4+zaS8nP6/+jQIS8AVAVUuGtPVwqKrgEOSilQfhJUU26LtWoUFZF+G5E+WY0AlnQqEA3GKpNXtFyoLG256Z58UldwKlRNtLhRktBEV5ndEVMs7BKN3uz6Mn/wP2O8hfzY3nDmDs1yqAljL504eRY3Kgl2EJ37THIx/O+VwFjg4j3eIIGrKyL1V1ja77bbAI9a6wTbpt5BDtsfnWyd7O8Rvn/SC8SlV6umclfuEfwssIU2lkjZNVwbrcjPUyO8qP6YjntW0iRtgz3UyBvqQKYLWk1Q0EvYeL7lFu4q7to43EMeT65MdvL9+TRWjhsZ7dwpmuyR8y4bQlT3UKWEt4b09xH+L1E2K96WW6o6pLPfeRJOE6A37s+spimDxpA5D+8UyClmW1Fj2HlE5w+z0LhjZ9RSZty/0CJtXjm0sj5sTYe2WojjopCC/EJL4czxNAXg5/R/PMZ+zFg0V1x1IyiATBkGXExY8nhT7psMJ3s8GzirIcOYVrzfwRisMUv0TK0lHkCogKhTFgoOOue3MUnVvDSW/6Q4ZtpT7OGMdHo2eBaQzpzSRFqDe/jPYrE/4AW5vPwE8LvwMmRsGW5qqyJPwhw1htRV1Og6mkDBYDElfS2OZ8j82yLLVJ8IP4X6v/V3HmQfJjGl8PJVHIXnuF2jyVma+CUtZo7tiZSlx2RH94kKxM9Js+vBxHc1GI7f3MBpnE7G/lSCe3WycyteLb34nXsVJf4mtHhY7IMDP4+TVlHn7kCUs2753C6+IHkrh/4I6exSKu2gpmW6M6x7EzzZ/h/T4pqGK9nOf6zneAJvR58HDpwVbs/8aX+Y5NjbeQSyappa5u/u3R1X424354m/rpR6mTfgLioe7LAf+TOsahVrx6gaeXVxs4MXFizXQdxC66TEpdcPvx1Kdy+/U6gh/odjvUEsDBBQAAAAIAI611kLiJpm6NQIAAJwFAAAXAAAAZ2l0aHViMy9yZXBvcy9zdGF0dXMucHmVVE2L2zAQvetXDOnBCQT5sDezWSgU2oXSls3uqRSvY49jFdsyGjk5LPvfO5KcxEq3LdXFtvTmvTcf8mKxEHtlm3F3Iw0OmiTZwo4kNm8sIR4bRdDpamwRSt3bQvUEtkHY+ijQu59YWqi1gY/Kfhp3CTGu65SFwAvvv90LsWBVURvdwUmbObElUN2gjZ1iv3qyGDcSmjPsiT+EEGVbEE0OlvPQVSaAF6s9ssXM47LnyepteN49T6Yl+OS4CAYJe8sqPefRFVbpHpwJT+aSfeBCnTLmfKTwJ1tEKFrSGTTWDlmaVnjAVg9oZHAvuRLp4Sb1dU5DPZDSk0f/rLCGPFe9snm+JGzr9VS4KRe3aGTOZdDnYwat5CUmoM/gdxlUhUWrOjx155yi6vc+n9JgyFLX/pvmzbzIspD0UKzywsIm7ORkzeDoJ2m5R7tMLrhkFZk5dcH1Dm6jtkq3x/04NhqmeG/njz54yjZ+CH6X1uZKd9u4iamQSqOGebKhjjH7HLaBOfnsJIn4w9zB/Qc//P+ooqquaFUVszlTGLdjDSj3cg0JjWWJRAm/DthX3ET3Wheqxcq9oTGcfSxIni/W9Hux7NPDZ7AaDgqPfMsNRleg2OnRzgzFCrYwzJqPpr2SuRwk/zeVPCcs5xCzah4LgnFwsVWsP22GwfyiezwfqzrycwEmszv1Ns9fBnxOsxKzu+vymO7ujN+gHU0PyfTXge8vxFPwmr2EHy6+/rhLZKj1kjY+WPwCUEsDBBQAAAAIAG2jI0NYjldIbwEAAE0DAAAXAAAAZ2l0aHViMy9yZXBvcy9icmFuY2gucHltUrFugzAQ3f0Vp3QApMiq1A3RDMnQdskQdasqMMQObsGO7GOoovx7AQMGWg8Y3b17fvfuhNE1XCSWTf5Ea33mlQVZX7VBeJH42uQHbTgRc5ThV21poeta4og9tbFDHyGEFBWzFvaGqaIMPUsUE2jPZrN5LznEPSrOHAwSd+8y0PkXL5DCG0Kpq7MFbNFSCW1qhlKrQVfPZTg2RllguW4QGOSOrAWxPj8+0smzErX5gWTZRvelPr3L6Ciyv89cQJpKJTFNQ8srsR3e2ILl1rZyno9aja11xzZXbsL9BKpERCeGVW00VT3EcGQ1By36dh2OetKWhqoO8DzmLhzDoAsFC5bT4IhnCezCBjclSPx/57nxHABZ1vWUZav3h4kvFbjgTIMUc7T35S+NVxDOEs4zmv5n0dhckFZSfdsAGKKReYN8JbVPr5QONVu43SMyG267AWYY7myMbrMgSGarM6zqx+3x/rkLqNvIcJpNRH4BUEsDBBQAAAAIAG2jI0MiTP/4YgIAAHMFAAAWAAAAZ2l0aHViMy9yZXBvcy9zdGF0cy5weW1UTYvbMBC951cM6cE2pE5hb6FZWPbQFkopZHsKwVHs8UZd2TLSOCGE/PeOJCe20/hgPJ7Rm6/3VBpdQSEISVYIsmq0oZs9KZ33XdK+3T2llS5Q2WvMN0nf292rNndRrUVzC/rDxmQyKbAEoQhNzcDZEfEjdq9kMQF+DFJrajh7wz2RJcGHdQkuKlrc6kldJvfBAVUTy5o8zjo6RpskmfUAoigkSV1bPhwiRLQZ+LkRHPuLkT/XVSWp9+ZX74W7yZWwFl51TUbuWtJmRYJs3A+E+/LB0+n0bS8t6N1fzAkaow+yQAso7AlEniPDkAZZl9pUwtXTzQIL2J2A9uhhuFmSlmRuwTKOC+PRsBdefv9IQ6oVIuyJmsV8XuABlW7QpGElKTczPzzNDTbaznuwOXBasA3msmQzvdUcPtzOskzWkrIstqjKmS/EZqEbtrh8rmX5S9fYbdJX23Lq+H46LlyVSdojPsJKbiifFsMB84igYUrIvFXCcOuC+MWTNaiYGm6KfX7Ok4qW9nxs6Qk4ypW+I8VR8EczOF+Sx9nfNAkFdVvt0Lhxd4yAcDIsaLsN1nabjtOTP7yE/xN7TzTK9JPXceW6OkEh/YqFkWjvYF2EfQjrPdzOejOCfuk0Jw/IDSjVs+dBslH3brg3vor+guioLOoisJjpa7BCP6UPPFnPKRT5fojGYquwJrdFx1rFDafAmoXPz/dan7F2w/9ewrMhFgvVu3sF85E8/Luq9o4LirLr5Nb3t1DiCz660voRb4YKYNmYTgEDlnd3VvR1yNJVL9T1+ctl8xylQdnxgJTJ5B9QSwMEFAAAAAgAs5g+Q8EfbAg/FwAAhUgAACoAAABnaXRodWIzLnB5LTAuNy4xLmRpc3QtaW5mby9ERVNDUklQVElPTi5yc3StXG132kqS/u5f0Xu998TOAQG2k0y8mzkhNrHZ69hewDeTT0agBnQtJEYtmZB77v72faq6JbVA2CYzPjMTQN1V1dX18lR1a+aR50/8sZv4UVgTbizFQsZzP0mkJxZx9Oh7+JDM3AT/I8UkCoJo6YdTMY5Cz6dJiiftzWVyurfXckRPer5KYn+U6qfRRKgojccSUzwp5qlKRCwT1w+ZojuKHunRYhX701ki9sIo8ceyhoe+EgFIEQWbW+itiQJ+48D15zJ29o42BQCjkR+68QpT4nkmANbmpRDq3y6DMAvb86JxOpdhwqqlKY0oFhEexWLuJjL23UAVKl76yYzn2cI7e8eOGODH0J1LkoGlTZNZRDRWAnKKkRSpoj2KhAy9KFYYGBPdeZRIoZeZKIgDjo8YN8ETvTAVTZIlbR7xjtJEqIUckzFglg8ay5jMINQGoRTLsze47PZF/+bz4Gu71xH4fNu7+b173jkXn76JwWVHtO8Glzc9MRy2+3j86pVoX5/jv99E5x+3vU6/L/Bwr/vl9qqLOSDSa18Pup1+TXSvz67uzrvXFzXx6W4grm8G4qr7pTvAsMFNjWln0/aKeeLms/jS6Z1d4mv7U/eqO/jGHD93B9fE7TPYtcVtuzfont1dtXvi9q53e9OHnBB/77zbP7tqd790zh3wB0/R+b1zPRD9y/bVlb2cTx0I0/501dEEsZzzbq9zNqhhLdfZR6wAmoAcVzXRv+2cdelD5x8dSN3ufavRys9urvud/73DIDwU5+0v7QusYe/gmcVDyWd3vc4Xkg0L7t996g+6g7tBR1zc3JxrnfY7vd+7Z53+f4mrmz7r5a7fqYHHoM2sQQNKwWNazl2/y+rpXg86vd7d7aB7c30o9i5vvkIBELONueesyJtrXi50cdP7RlRJD6znmvh62cHvPVIdFjbotVkh/UGvezawx4Hj4KY3EMUyxXXn4qp70bk+69DTGyLztdvvHGJfun0aAJp7xPhrG1zveNm0H5BLf7TMsMa7JrqfRfv89y4JbgbvYaf7XWMVrLezS6N0mPK5VOPYX5CjnQrHEf7cncrT0z1h/c2SZKFOG43YXTpTuEk6csbRvKH86dx99ONUHZ009O/HzmLV8OSjDKJFg0mpxnR2XA+iaeQswmlONv9QzBPwRhcBZr6I5UyGCo6KWDxO8G+wEoYofJfijvyexG4UexTSfDxViTsKZEF1GbsLeCyicpSaMHXhJ5fpSLRvu+Lg8fjQ2RSlL6WARrFJ35wY4Q6REsxW4pdRLN0HBLhfxHjmhlhTxeRuCBmCgONc/mPd+tucYmm5pO7/FAt/gQjKBC0FbY4+lwuEOxmOfaleyLSOsP/PVKpE3QsxWonfZBhKRN2e9JMf1qgUcU/OF1iQBOt7Gtp1Q3EGpbtqHG0Shu3cZ6RPc5OxzOVBc4qJUSMbWZpe5llJpGRz1vhNec6i0KQQy+ye1s1tIF1kDuy2Npkh+3MXsQi+OLwXWTKr2H4S3x79vPCWw4yCaJR7jU2FzHCT1wCKsxf1f/pvc+C3KBVjbFqchgJap6Q7HNq2VY/ZGvxY0rKUk3xPhkNKotkAzuEZuSLRjyR8A7BBC0KpVvnYhxXIz90H/aDuyYUaDpFSEvJslU7hOASoVpDKiwqynIaBF1wB1SSpGyCF41PEmqbEjy0JpU7uyPNGNEri4EsCEjdFT7HOiq2pI1ogpwNssBVfEAj6JONw5sZeYo2aR+MHHvHFh5vLQHyOYOzWgDEAUoyQxoOuIcAnNxnPZABQUW0QGd9KY5hCjlEmRiMbWpqfMdTzMT2U3ijnyVQITjaycY3SbFpPPpO+OGTYUBjMWDlRPG3IsEG+o5LGpvxXwH6hkuuesznwC2Nn0kb/HDCRZ91X68M8/XnfuEJqB3TYpN757sL+KoJgdZRniAkt3LMNzcmWpaGwxbdpdK5MI95i9YRGfcTl784smQf7RL8u1yXc3Z27llN6VuTXaHbdkYV0pk5FhtmWdZ6JC6Wx+4Kxt+3pL2eUz6uY02ZYv7aLFZqwMpE4sE3nsDoRAEaIGwY51XlyS6r8LBEGJjFZTEQFhs4KhXUiJyQu4l8o+mDxcAM3nCBE5siBcxwXS5YGKP5R3TJzHy33Et2Jjoy+CnwoqEzQ5xgKYDSRcZzVojRcwQrASsi56wckpcWokPNj4APDUA1HvmYx/WZkQRUWUW3Hijp49F1N8NCutTyYwzhBkOcqzeKTr7Jhgjx/BiM2HjIVX69t6auZzi7jIEUZrAjlEb4Tnpu4WzyvWEXuf4p0ExndcPQoRMB+TKXXeAo15R8uoZAoXjXOGNUBo+ZPPqz/bU5uOu+c1qk4araO68339ePmNsOqNq225xVOvCITWkdcUJSLQXe97sD8zEkO0RZGAM0K1NpKIWKV/MsKb1bhzQaZaDwEMssZUhy3LDKOVXEP9u9/h7Gh7E0xMl5RrocEC5fq6+GQghswWwDIABa3KQJHz8A62FIag+qK6nVLuo9xNJXxLK3k1pNzakEMh1kyBGGXagIKFraybOIfpYLNygfljp5dwn7rpGWtY+Jr3+k8kjbZpbxIqvAVYud38pVqg/y3olSyomZmRW/qrfe7WRFWB311aXXOOIiUHA5r+Q+xRL0U0i9UMmW/wmb8aUjA7KBrtNJ8WxE2tYkOh0AbwEU6Bvg/2Jw0RuRYODRlFdui/p3RiH4ayiVZS2KbgGngUB3238afs9outqvLx+NGRFwb+yxB3Q3rJSH+Pryv3HAjNTJzIu8nfmBUki688g+eDKT1gyXhcOgTWBxnBUQU3yvyI0SYsdKTzYD53E/uuUT1k9U2Kh6YcLkD0yWL5r1YSvkQrDISMOgwsbXak4sIoRHBCb/ayhv9Ac94Yt16mTkbvUh8naPyijxVcKCsSOGZnPc5or66z7G/LeWdYh99dv4MKEnrbeSSiZJNuJBIxiyQvVyHlbZALKHaoYokdQLJgt0kjbkdOBxeRtGDIz2fVDhDxNBVuodhITc34dgIHYvIh5vbzy3F4telDAKH4ufpZhKtNNGPo/dvJkfvW+7Ju/dvTlpvTty37t/G3rvx0dH7t2PPc9+P3raarbcnVcsY5jBCexBEp1ItRLLPmpmu7odgn4Dm5m4IhB/XGNbVLAG3wSz8caI28mouB4dEdTo7XR9Kf6n4gEcOeMcHr+wQ9qoiPDSdt0X6O6k33+6e/uATbgDH4ewUuCMZlPNGO5B/wIzjSFygGPwhDj662S9T+mGLVE1Lqje7SzUcqihOcg8CymQjXzfZ8u45SrrxeHZPulNmbikWVA+Pye632LlxvSLQmPBa0JoiIilQVEmWKOfS1YcNKDhMh4VynSXJH9T4J++daeyjawcTxElqYujqqp7CuL/dr+d+6M9RrQM3TWn8AVsm5DM/OFOZXOEjWZMR+dXhcFiZanqyjvLJDf0fGr0QXqU63RUjSCAO+gsYikgXgjWGtFvTKV1/1IpYrHgBrr3cCRIQnzZQhwHKU+moPo+8NKCqiWqYlVDgmqycSrHOUAzR0oZDIO9YqtnBIE7loQY8rrUVKonpgMFsb5d1GDF+GVNHA6DZEmoZxQ+KNszgHI+8vlrNSJLGBqwYTjHCHY/lIjFxWAL0Eq94ypCPSONByf6M3a2T8qJKvl+oRCtWF42TaOwWPlEYoBVarFEjqByqXizgSJYUVKuQNudSKeoMkzXrYhCruNGzsR0r6giFU+DagwE+PCAmLPHrFrthyPjIhz6yjKgn4nbVv/nb22arco3apMqaMf6obaX8iDw7f77h3hVEHNE28Vvp5G9rtMxNb2llvNjgXZ1LGMmd6YrLyTHAknJdFMfayFjbCXC/FvaVKtcITycp+LRPuK+wPToAFBHX1AgCQB5cCORhkt2Lw2GG+CoU1kFuixexz6AAxl4rxf/fYoJc4HJB4BLh34t8NUeWHqVxCAuptIi+pF5YkBVHWmDCLiSDH+sWBzZDmXYinTe4cXb2OBx++FC1v//xgTuZoZhHiJ9jlyhz33Lpo+phgMprTEMfey1869iYWo7aOmi+jeU4LtWotreo9C/b+miV+gf6oHSaQqnQFNUx83mqjzpoiOFmw5isxtMnpqwE2uY6HafCp0gV3HiAHugg2BzLjujgk9dDZD06mA5KPQs9YgYtUlvoEXmY7BnjPdprZALpVThZ03njHGfZ+Hjn4kYnGZQrlIwyQysMDPtn4caxwbO0cDdEfP2YLGRS0ZgloY4KoZpHuwnVT6KFVUN6kg/0ae9HqwTI1Og5loCnod5+wN63J3ogWRFVpErsvzuqli0HVUf1o9Zusl1GCYra7+SYuuBdziTlKXLDvLTl3XfpkCPQJ+pKVpwxQJJCjtZWcFclRavZ/FUcUMP5UFfuWXt62x6bTJH3890wRD00lt495Sn3PgfvW6GITSG/oYD1mayNHVnHzS8C0P6cqZoYuG0Uw2YTJl+GnfXfvlBAsSLx8T/UHKiwVcPAydDHIc36SsGiffW1/a1v2n/iojPIjvXYgxHusOMrxFIBICIDH/BxK1GGNDlhpsjnpaDJMdEVVL+BnkrHM11N+RO6dTGzu9Zb/vbtgquIdXRng4te4U5dCslPC1tBlkPjEpmDZr6ic1Kp4ZDOfp42+mdK0212wyB4RKcB4qu+9YNQp8G1r4rmKxVsXlRpPv+qUfmWUTEGQODWEOCg1dxqUrQOGkTHaX5VjbdPJ28qSSeTn2IMLwLU/OA79E+lFG1jPUqSPqEh7AzveBQCBE+p10uaoyHUHIqzAE7HGFm5Tu6gSj0jY9sU22kjYCFjheSNUEZXdLDYIWDfdLkKwwah0Ac/GVYcQW3uOZd6nE4BClC4VXeUkLZt/1YO9T3yLtCDXKkMGBHOUHqBkamkpK6jXr9GPn/92l4U0QIIo/mOuI50MPat1EESShc+hyFm6Wx9skjCyVp/9dGnhno4Pc3KfuqknRInh/g8szpdXBVJlda4SEcomvB4xD0K8uaRRFaJGXl7joAyqg4ditqA/rGpMARDRHlGGHfh5zomwe51wTccvlJW/yeXJ8e5T7eW6Qzk/k/dbCC0qc8oYNfUA1Z/WaURF8a5J+hik2H2C+gXdE3pXhPUZ9ykX6E47n051E03zfRn9FR0ASpDTt3UiKnu1eUAURcHphGWY1TdAtCoWc+LliFPLIWJnMpTHLHngT8u8cyuDHJLMX+uNWLsXkcPcoUSRwuuamhrJnFsGcnMHLN7hyG1zOB3+r7eE0JCDnJ9FACFILR4c/yp+PALW2kuh24n5cmJmwZJ0Soo6LE+kZOh6pijQT32PRSpXBC4ZhNQm3kbazYXLWoYNZXYB39cRZ920vU8U+JRgaLTnjJBo0SUBpMMWoRMXxd+Pos3aRmlAUVvOvMsMm0a5h2LEk2Ig6VXHyEVJaR2MYdPW5x8/w8ON9oKpYG5layVyOvWUjKQ7qYV1Mxd1Zhup2ZWU6Kn49kz3vZ0INALxl7c6whjxNayKtPZ0hdpr3S/M9KSarhuAiM9dssaHkVRAPixxZTJJkh6zdViSrd0XzqX8nwutd4QhN3AHcuqxfA6lHZFo9SSwGrGFmQG8wH1IlmZ1ZPVA0yiCFeTNGCQoCkBBlNlZyav2ZimlCvQ6pHwudaVWXtm+1UbeQ35lwh9ERVCBBjVIo39KFUm/HXiOIp5U06aJwjaDFrwTdfhVcYv9YzlDAVzwp0RXa/Spv6holBfbIKDLKgP5Ig2DC8/iyEcWWjIbg1oT8wOBF5nXcTX2fDrKJSEwn1eBu0yBLbth/u8tnm7PstFO/Gd2jfsJwfdUC38WGeA/ZP3lR0VrZp+goSruCNJInEPc8sBaV6/VZ6NjoJo2midoKxMF/gOoermVmU9iep6YB3J6tEfy/L1QCoG8zsA284MaVD5HlQZ423ebN1GzEjV4CoYRfBxPaNUZ0plLusAtHLt64Oq6u6TrO5u7Vh3W1EqkFN3vHKu+B/Cc9t8H/Dp/k8POT6IXE/VdHSrLf0H/y9uKEuNa/ObA87afArjMaBoIvM4bpK//rWU/ddDNheQZS/foJhFak8uAO+4sLNTfCz5yuZzUXsd2G5TBx90xg/M2aCgMuOJ+0jvL0zMKmmwvcSntfMSihV6e9Ha6Aj0iVXpa9QvlkIP30GIF4DWXBbkiqkkN3qxOPmMHXBoSTx6lSV7v0c5g1lcWX7kEqYhDXixeHr4tta8XfrYJEFQcQEXlm5S5BlM47CtQCV7hWXjtoCZXeElVfK9a/76XJOuWfRwW/jPT4akl7lg7oC8evpYHTXWJ+VuxvPMty0Bxxz1l0hQHCzCIH81sZA/U0DMo6FKkEzpDakiLP6LLmo5qG7985cN8VHxV1efuzti2Q2Zaf49X2jGuDQz79isStDWFUm6CPLXs/i4iMnaL21Zc/2k7MnAbhH1zZOKVPWTrmw5sjkt4Yv9W1f3RHldzYCKps8o6x2q7XmdxCb/lX95okzZoOVkZ/IkHuPr0km9USIJtDHV3GTkV2jCLATQ+30cY/gAJZSmGUEXMk1RlNE0LEpk85cHJKwc+EifssPoCbxn78hldLhRbAlCZ//3NOGgElLmB8vxVDk3+uBfl27FwWj5qJGuPa8WUlW29bjp8jrH1ZDHpplVBBpvLyX2n06VZGEK+pZUZUOqTy36jACN5eOT4fD+HmHg3jpKd3KFMcXIHGILusy7U4d4S3+Y/l580kB/sTW4cLyDtCZe5cFiVX060Q4rXWpHiV8iTXkBLxBN5DdWQfCXX37h/Xmgi5xkytmj5Yx2mS9ak/lziuXOah5/SiT/bP4FUtXskEvC5CC/8Km99yA+LCt7X/ykIGtUtrwFUSXaWRrzLeCsHs6M1LxDCy4TyT3SLW3BzZa2OEj1uXYWvymCHT4x6Te5suY84BtdVXtqRpH/15k1OFwuXD9+bv7AnVqT6f79c3Jmdx2tafo41hPm2LgySr1dx0Zat3SyaY26W0xjat3R+0fZ7eeW03S+VxfHHMWerWLZQBr7tLfZxSiOZXX7wKQKqumTbVSrrSdOj6sW+6X9P/ROL8p7eov4otPfYjbluy5AtvT66Ijbp/X636sf6xcvLIBMhD7F0YMMs5b5a8yfpOE4f1vdOgbQMdecOtBee9kVVNP0Xy8hifVrq9UehRa8LpewPYOmK8VgiF2G1zWmRDfuamtc7ZRT3LkuXZGtxIlt7tz+kJyMTRdeC+7Y25O9b2e9vyLOTPueVLF0V+WLtOY+rL5stv1ajbWKJy7YFLxKPMbFJWJzGpfG5tLB2KAO3Zqyl/Jmw63ofRPyqm1vBTXNpQg269bxLmZNJ35k1HSWZpRbXDoS4xRoZU4hopLpyPKm1o7vd1xi/4GH3zSbWY9wJKm5+bNXnHKK2S067i7qS0u/DoVazUdR8BIm9p5q9wnoXSSmHSLCZBf6GSvyfVcuSfjqfdmQbt00EP2lGyc/RMmMFnig+PfDSm6er5AeV9n5RX6ax45ffnHF5nfwUSFcuqry3m9rlNtIs36848WZNAQs1q+R0nus/NYbXyHg64pkmVZrdQa1ZC1e+6Xy/eN39nLjZyOLmaxjgzXz2i5xmPZTxXlr1CwWvus17P7a1Ru6DUdYuLQwgHD62Vcz6VWCMt1Y53fIzKtdOsnqnrHkNZSGt/XrZo98m1q/YRbd+7QJ5WvW9MyCDPxSB1lFKfRqK4qAIsoFzBVdJOE7c2ZHTTUwMSfzEV8KZh58zEFPGEzl21TZVnz/t1+LyDVaWbZTjL4F+COkeCrurn+7vvl6vXdGrkfvycan4lwnfb6qa9rqp6fiDWjf6v+jEvBu9LnTXJpnXsmlwTf9rmgv6I4hyhZ7TJcCMiWUdur5fEnvNGcIpZbGghugy5xa8OIK0T2lFWH47QoKDXcYSp+Odh3vvN15xrsdZxzvOt7ZdRXHzq48umVrxC9nRt//D1BLAwQUAAAACACzmD5Dxycf1sABAAAVAwAAJgAAAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL3B5ZGlzdC5qc29uhVLRitswEPwVoacEDiWXcBQOXK5cSy8vbbj2rYQg25tErSW5q1VyIeTfuyvnIC2Fe7K9szuzs+OT7lwDIYG+V/oZWpcIXZ3JxaBsaFVOoFxQKWZsoFRqFywe1SaiTzfq4GinIpZnzKT0jdJtbLKHQOtgPSQmPukWUoOuF1oR+vjp2+PzYvl98fWLwUT6zFPSLNiWmXI9N/1RuDyQbS3Z9R4wXaZnZipQEwPZhkTgx0lj7Mq4zbwICg7euq4wot1sLDWx8y5s4/5hK4hpotdXugsb1GPE1qYm6vOKkS0EQEvMxnAtp1kfdgCdGk3N7NZMxzJOwGWE39khvK5y9aV9bH5VFXebW2mv2Y+3L/LaH2W2qmZmbu6kkIMjKc2qamruuH9V1kjZe764LLE8srmgDmj7HlAyULQD9dnRU67Vh+VitCPq7yeTFvbQRe4xwznF7GQ/Lxv3GH9CQ+uM3RDOUxwuILOJhy8J9EeDYFsW4ECTibgtOWEOb/lVo4vj8X8tC1xMj/9yLeXie6zFNrwQWllLQFH+R0g+GElq9J7FmG9gQ0fg+84S8B8kGGclUQ23vPqLpubdEEkRGjiL1Or8B1BLAwQUAAAACACzmD5DpfomWhAAAAAOAAAAKAAAAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL3RvcF9sZXZlbC50eHQrSS0uKeZKzyzJKE0y5gIAUEsDBBQAAAAIALOYPkOFog2xXgAAAG4AAAAgAAAAZ2l0aHViMy5weS0wLjcuMS5kaXN0LWluZm8vV0hFRUwLz0hNzdENSy0qzszPs1Iw1DPgck/NSy1KLMkvslJISsksLokvB6lR0DDQMwJKa3IF5eeX6HoW6waUFqXmZCZZKZQUlaZyhSSmWykUVBrp5uXnpeom5lXCRIwRIlwAUEsDBBQAAAAIALOYPkNR7Iu7JRgAANpKAAAjAAAAZ2l0aHViMy5weS0wLjcuMS5kaXN0LWluZm8vTUVUQURBVEGtXG132siS/s6v6J3snOAcEGA7ycR3MyfEJjE7ju0FPLn5ZARqQGMhsWrJhMyZ/e37VHVLaoHwy9zrc+8Yo+7qqup6eaq6lS8ycT03cZu/y1j5UXgiDp127dJdyhMx95NFOjlyVpta/rTtvHU6tWG6XLrx5kRcb5JFFIp17K5WMhazKBbJQorPfnKeTkT3ul9fJMnqpNXy5L0MIoxxNFVnGi1b90cHtfNoKZsrd471aKjCWLPuauPE0vVAz4umyoniea2bYrn4RPTdUJxGseeqaWS+bMql6wdgOnZnMzeZRsHSD+fR/Yc5fU/L1S78qQwVFhpIz1dJ7E/SBEIJN/REqqTwQ6GiNJ5K/mbihxCRRFqqhliDJwHp6HeUJqI2kP+b+rFUzTOQOhEx/pQqUaL+6/uOc+hAsq0RaewncrkK3ERCozSujXHtg9p1HN37Hsb1viexeyIS0NmevIymd6L+HqTbTufgH0LSUPH+vXhJo19uD59gV5fu90fHrTb0NREGx87rxwmnoZ/Qg0Oa03ZeVzJTW0aeP/OnLmm3IdxYCmz8kmZ6YqWl9WAnbsLGMouCIFpjs8Q0Cj2fJimeVFvK5KRW6zhbG6ZENMt2ahp5UixTCBFDZuwgUXQn0T09Wm1if77AZoVRgr1v4KGvRABSRMFeLfS2WMF608D1lzDY2uEuA1jIso+MAcjmpWDq386DMILV4AnpUoaJmxluCzYZ4VEsljCs2HcDVaiYjZbm2cw7tSNHjPBlCCcnHphb9iHQ2AjwCfshhwA/kZChF8VwDjwF3WWUSKHFhK3XPKx4j3EzPNGCqWiWrGnzMkdRKzklY8Asn/wnJjMItUEoxfzURuf9oRhefRp97Q56Ap+vB1e/9896Z+LjNzE674nuzej8aiDG4+4Qj1++FN3LM/z/m+j983rQGw4FHtb6X64v+pgDIoPu5ajfGzZE//L04uasf/m5IT7ejMTl1Uhc9L/0Rxg2umow7WxarZgnrj6JL73B6Tn+7H7sX/RH33jFT/3RJa32Cct1xXV3MOqf3lx0B+L6ZnB9NQSfYL921h+eXnT7X3pnDtbHmqL3e+9yJIbn3YsLW5yPPTDT/XjR0wQhzll/0DsdNSDLZfYREkAT4OOiIYbXvdM+fej9sweuu4NvDZL89Opy2PufGwzCQ3HW/dL9DBlq9UeEh5JPbwa9L8QbBB7efByO+qObUU98vro60zod9ga/9097w3+Ii6sh6+Vm2GtgjVGXlwYNKAWPSZybYZ/V078c9QaDm+tR/+ryQNTOr75CAWCzi7lnrMirSxYXurgafCOqpAfWc0N8Pe/h+wGpDoKNBl1WyHA06J+O7HFYcXQ1GIlCTHHZ+3zR/9y7PO3R0ysi87U/7B1gX/pDGgCaNVr4axer3rDYtB/gS3+0zLDBuyb6n0T37Pc+MW4G17DTw76xCtbb6blROkz5TKpp7K8STpaOI/wlpbaTmrB+sjwXu2s7Gyofqerej1N1eNwqcm+WOltMSrXmi6NmEM0jZxXOc7L5h2KegDe6CDDLVSwXyHtwVMTiaYLfwUZk+djjuMMRHPmUQpqPpypxJ4EsqGb53Y2j1ISpIsWLOvK4s8vKUEoBjWKTvjkxwh2BAzfciJ8mSOt3CHA/ienCDSFTxeR+CB6CgONc/mXT+tmdYmm5pO7/FCt/hQjKBG1QszP6TK4Q7mQ49aV64qLNPPPfCjHZiN9kGEpE3YH0kx/WqHL2v6WhJRCzQxi2c5uR3oZGbC53eqWYFmplI0vTy2tWEinZnDV+l5/TKDQpxDK7h3VzHUgXmYNAHJvMmP25j1gEXxzfiiyZVWw/sW+Pfpx5y2EmQTTJvcamQma4u9YIirOF+j/9szvwW5SKKTYtTkMBrVPSHY9t22rGbA3ASySWcpLvyXhMSTQbwDk8I1ck+omEb0gGfvQn/ET52IcNyC/dO/2g6cmVGo+RUhLybJXO4TgEqDbgyosKspyGgRdcAdUkqRsgheNTxJqmxI8tCaVO7hOZsUZJ3ID3hHEsnkLOiq1pIlogpwNssBV/JhD0Ucbhwo29xBpFkJVHfPHh5jIQnyIYuzVgCoAUI6TxoEsw8BGwfSEDgIpqg8jWrTSGOfiYZGy0sqGl+dmCej6mh9Kb5GsyFYKTrWxcqzSb5Mln0h/b1UlLhi3yHZW0dvk3tce25+wO/MLYmbQxPANM5Fm31foIsnrm7/rGBVI7oMMu9d53F/ZXEQSrozxDTGjhlm1oSbYsDYU9vk2jc2XurfcsjfqIy9+dRbIMXhD9ptzm8Pnu3Lec0rMiv0az244spDN3KjLMvqzzSFwojX0hGHvbnv70hfJ5FXN0aby1ixWasDKRqNumc1CdCAAjxBWDnOo8uSdVfpIIA7OYLCbiipuzQmGdyAmJi/gXiiGWuLuCG84QInPkwDmOiyVLAxT/qG5ZuPeWe4n+TEdGXwU+FFQm6HMMBTCayTjOalEarmAFWEpwM4G4tBYq+PwQ+MAwVMNxX6FY9JvhBVVYRLUdK6p+77ua4IFda3kwh2mCIM9VmrVOLmXLBHn+jIXYeMhUfC3b2lcLnV2mQYoyWBHKI3wnqKOzx/MKKXL/U6SbyOiGo0fBAvZjLr3WQ6gp/3AOhUTxpnXKqA4YNX/yfvtndzI3lk7EYbtz1Gy/ax619xlWtWl1Pa9w4g2Z0DbigqJcDLoZ9Efma05yiLYwAmhWoNZWChGr5F9WeLMKbzbIROMhkFkvkOK4ZZGtWBX3YP/+dxgbyt4UI+MN5XpwsHKpvh6PKbgBswWADFjiOkXgGGRdpWmUxqC6oXrd4u5DHM1lvEgrVxvIJbUgxuMsGYKwSzUB93wsZdnEP0gFm5V3yp08KsKLznHHkmPma9/p3ZM22aW8SKrwJWLnd/KVaoP8t6JUsqJ2ZkWvm513z7MiSAd99Uk6ZxpESo7HjfyLWKJeCukbKpmyb2Ez/jwkYFbvG62031SETW2i4zHQBnCRjgH+DzYnjRE5Fo5NWcW2qL9nNKKfhnJN1pLYJmAaOFSH/dfDvdZWRKu2XjAHTTdslpj4dXxbueGGa2TmRN7O/MCoJF155S88GUjrC4vD8dgnsDjNCogovlXkR4gwU6UnmwHLpZ/cconqJ5t9VDwswuUOTJcsmvdiLeVdsMlIwKDDxNbqQK4ihEYEJ3xrK2/yBzzjAbm1mPkyWkj8uUTlFXmqWIGyIoVnct7HiPrqNsf+Npc3in300fkLoCStt4lLJko24YIjGTNDtrgOK22FWEK1QxVJ6gSSBbtJGnM7cDw+j6I7R3o+qXCBiKGrdA/DQm5uwrEROlaRDze3n1uKxbdrGQQOxc+T3SRaaaIfJu9ezw7fddzjt+9eH3deH7tv3F+m3tvp4eG7N1PPc99N3nTanTfHVWKMcxihPQisU6kWItlnzUxX90OwT0BzSzcEwo8bDOsaFoP7YBZ+OFEbfvUq9QOiOl+cbA+ln1S8xyMHa8f1l3YIe1kRHtrOmyL9HTfbb56f/uATbgDH4ewUuBMZlPNGN5B/wIzjSHxGMfhD1D+42Tdz+mIPV22Lq9fP52o8VlGc5B4ElMlGvm2y5d1zlHTj6eKWdKfM3FIsqB4ek93vsXPjekWgMeG1oDVHRFKgqJIsUS6lqw8bUHCYDgvlOouTP6jxT9670NhH1w4miBPXtKCrq3oK4/5+v176ob9EtQ7cNKfxdbZM8Ge+cOYyucBHsibD8suD8bgy1QxkE+WTG/o/NHohvEp1uism4EDUhysYikhXgjWGtNvQKV1/1IpYbVgA1xZ3hgTEpw3UYYDyVDppLiMvDahqohpmIxRWTTZOJVunKIZItPEYyDuWalEfxak80IDHtbZCJTEdMJjt7bMOI8YvU+poADRbTK2j+E7Rhhmc45HXV6sZSdLYgBXDKUa406lcJSYOS4BeWiueM+Qj0nhQsj9jd9ukvKhy3S9UohXSRdMkmrqFTxQGaIUWa9QEKoeqVys4ksUF1SqkzaVUijrDZM26GIQUV3o2tmNDHaFwDlxbH+HDHWLCGt/usRuGjPd86CPLiHomrjfDq1/etDuVMmqTKmvG+KO2lfIj8uz8+Y57VxBxRNfEb6WTv63R8mp6Syvjxc7a1bmEkdyprricHAOsKddFcayNjLWdAPdrZl+qco3wcJKCT/uE+wrbowNAEXFNjSAA5MGFQB4m2b04HGaIr0JhPeS2eBX7DApg7I1S/P8tJsiFVT4TuET49yJfLZGlJ2kcwkIqLWIoqRcWZMWRZpiwC/Hgx7rFgc1Qpp1I5w1unJ09jsfv31ft73+8505mKJYR4ufUJcrct1z7qHoYoLKMaehjr4VvHRtTy1FbB823sRzHpQbV9haV4XlXH61S/0AflM5TKBWaojpmuUz1UQffAdCr2TAmq/H0iSkrgba5Scep8ClSBTceoAc6CDbHshM6+GR5iKxHB9NBqWehRyygRWoL3SMPkz1jvEd7jUwgvQono/P2oywbHz27uNFJBuUKJaPM0AoDw/5ZuHFq8CwJ7oaIrx+SlUwqGrPE1GHBVPvweUwNk2hl1ZCe5AN92vvJJgEyNXqOJeBpqLcfsPfNsR5IVkQVqRIv3h5W85aDqsPmYed5vJ1HCYra7+SYuuBdLyTlKXLDvLTl3XfpkCPQJ+pKVpwxgJOCj85ecFfFRafd/lnUqeF8oCv3rD29b49Npsj7+W4Yoh6aSu+W8pR7m4P3vVDEppDfUIB8JmtjR7Zx85MAtL9kqiYG7hvFsNmEyadhZ/3zQiigWJH4+A81Byps1SzgZOjjgGZ9pWDRvfja/TY07T/xuTfKjvXYgxHusOMbxFIBICIDH/BxL1GGNDlhpsjnpaDJMdEVVL+BnkqnC11N+TO6dbGwu9Z7fl7YBVcR6+jOBhe9wp27FJIfZraCLIfGNTIHzXxJ56RSwyGd/Txt9I+UpvvshkHwhE4DxFd96wehToNrXxXNVyrYvKjSfP5Vo/Ito2IMgMCtIUC9095rUiQHDaLjNL+qxntBJ28qSWezv7UwvAhQ873v0K9KLrrGepQkfUJD2Bne8SgECJ5Tr5c0R0OoORRnAZyOMbJyndxBlXpGxrYpttNGwEKmCskboYyu6EDYMWDffL0Jwxah0Ds/GVccQe3uOZd6nE4BClC4VXeUkLZt/1YO9T3yLtCd3KgMGBHOUFrAyFRSUtdRr14hn796ZQtFtADCaL4jLiMdjH0rdRCH0oXPYYgRna1PFkk42eqv3vvUUA/n2V1I7qSd0EoOrfOIdLq4KpIqybhKJyia8HjCPQry5olEVokZeXuOgDKqDh2K2oB+2VQYgiGiPMKMu/JzHRNjt7rgG49fKqv/k/OT49yHW8t0BnL7p242ENrUZxSwa+oBq7+s0ogL49wTdLHJMPsJ9Au6pnRvCOoz7tKvUBz3vhzqpptm+iN6KroAlSGnaWrEVPfqcoCoiwPTCMsxqm4BaNSs50XrkCeWwkRO5aEVseeBPy2tmV0Z5JZi/lxrxNi9jh7kCqUVLbiqoa2ZxLFlIjNzzO4dhtQyu9d3gCsMomASfJDrowAoGCHhzfGn4sMvbKW5HLqflCdnbhokRaugoMf6RE6GqmOOBs3Y91CkckHgmk1AbebtyGwuWjQwai6xD/60ij7tpOt5psSjAkWnPWWCRokoDSYeNAuZvj77+SzepHWUBhS96cyzyLRpmHcsSjTBDkSvPkIqSkjtYg6ftjj5/tcPdtoKpYG5lWyVyNvWUjKQ/q4VNMxd1Zhup2ZWU6Kn49kj3vZwINACYy9udYQxbGtelels6Yu0F7rfGWlONVw3gZEeu2UNT6IoAPzYY8pkE8S9XtValG7pPnUu5fmca70hCLuBO5VVwrAcSruiUWqJYbVgCzKD+YB6lWyM9GT1AJMowtUsDRgkaEqAwVTZmclbNqYp5Qq0eiR8rnVhZM9sv2ojL8H/GqEvokKIAKNapbEfpcqEv14cRzFvynH7GEGbQQv+0nV4lfFLPWO9QMGccGdE16u0qX+oKNQXm+AgK+oDOaILw8vPYghHFhqyWwPaE7MDgVdZF/FVNvwyCiWhcJ/FoF0Gw7b9cJ/XNm/XZ75oJ75T+4b9pN4P1cqPdQZ4cfyusqOiVTNMkHAVdySJJe5h7jkgzeu3yrPRSRDNW51jlJXpCn+Dqaa5VdlMoqYe2ESyuvensnw9kIrB/A7AvjNDGlS+B1XGeLs3W/cRM1y1uApGEXzUzCg1mVJ5lW0AWin79qCquvs4q7s7z6y7rSgVyLk73TgX/Ivw3D7fB3y6/dNDjg8i11MNHd0aa//O/4sbylLj2vzmgLM1n8J4DCiayDyOm+Svvy1l/+2QzQVk2ct3KGaR2pMrwDsu7OwUH0u+svlY1N4GtvvUwQed8R2vbFBQeeGZe0/vL8yMlDTYFvFh7TyFYoXeniQbHYE+IJW+Rv1kLvTwZzDxBNCa84JcMZfkRk9mJ5/xDBxaYo9eZcne71HOaBFXlh85h2lIA57Mnh6+rzVvlz42SRBUXMCFpZsUeQbTOGwvUMleYdm5LWBmV3hJFX9v2z8/1qRrFz3cDv73N0PS01wwd0CWnj5WR43tSbmb8Tzz156AY476SyQoDhZhkP80sZA/U0DMo6FKkEzpDakiLP6LLmo5qG798x877KPir64+n++IZTfkRfO/c0GzhUsz847NpgRtXZGkqyB/PYuPi5is/dKWNddPyp4M7BZR3zypSFV/05UtRzanJXyxf690D5TX1QtQ0fQJZb1DtT3LScvk3/I3D5QpO7Sc7Eye2GN8XTqpN0okhnammpuM/ApNmIUAer+PYwwfoITSNCPoQqYpijKaZokS2fzlAQkrBz7Sp+wwegLv2TtyGR1uFFuM0Nn/LU2oV0LK/GA5nivnSh/869KtOBgtHzXStefNSqrKth43XV7luBr82DSzikDj7bXE/tOpkixMQd+SqmxIDalFnxGgsXx8Mh7f3iIM3FpH6U6uMKYYmUNsQZd5n9Uh3tMfpp8nnzTQT2wNLhyvnjbEyzxYbKpPJ7phpUs9k+OncFMW4AmsifzGKgj+9NNPvD93dJGTTDl7tF7QLvNFazJ/TrHcWc3jT4nkn+2/QKp6OeSSMKnnFz6199bjg7KyX4i/ycgWlT1vQVSxdprGfAs4q4czIzXv0GKVmeQe6Z624G5LW9RTfa6dxW+KYAcPTPpNbqw5d/iLrqo9NKPI/9uLtThcrlw/fmz+yJ1bk+n+/WN8ZncdrWn6ONYT5ti4Mkq92cZGWrd0smmNulnNY2rd0ftH2e1neuv9e3VxzFHs0SqWDaT1gvY2uxjFsaxpH5hUQTV9so1qtfPA6XGVsF+6/03v9KK8p7eIP/eGe8ymfNcFyJZeH51w+7TZ/LX6sX7xwgLIROhjHN3JMGuZv8L8WRpO87fVrWMAHXPNqQPttZddQTVN/+0SkpZ+ZbXao9CC1+USdmDQdCUbDLHL8LrBlOjGXWNrVTvlFHeuS1dkK3Filzu3PyQnY9OF14w79vZk79tZ76+IU9O+J1Ws3U35Iq25D6svm+2/VmNJ8cAFm2Kt0hrT4hKxOY1LY3PpYGpQh25N2aK83nEret+E/8GIPW8Ftc2lCDbrztFzzJpO/Mio6SzNKLe4dCSmKdDKkkJE5aITy5s6z3y/4xz7Dzz8ut3OeoQTSc3Nv3vFKaeY3aLj7qK+tPTzWKjNchIFT1nE3lPtPgG9i8S0Q0SY7EI/Y0W+78olCV+9LxvStZsGYrh24+SHKJnRCg8Uf39QuZrnK6THTXZ+kZ/mseOXX1yx16t/UAiXrqq899uZ5DbSbh498+IM/Ssh5jVSeo+V33rjKwR8XZEs02qtLqCWrMVrv1T+4uitLW78aGQxk3VssGZe2iUO036oOO9M2oXgz72GPdy6ekO34QgLlwQDCKevfbWQXiUo0411fofMvNqlk6zuGUuWoTS8q183u+fb1PoNs+jWp00oX7OmZxZk4Jc6yCpKoVdbUQQUUS5gLugiCd+ZMztqqoGZOZmP+FIwr8HHHPSEwVS+TZVtxXe//FxErsnGsp1i9DXAHyHFE3Fz+dvl1dfL2im5Hr0nG5+IM530+aquaaufnIjXoH2t/6ESrN0acqe5NM+8kkuDr4Z90V3RHUOULfaYPgVkSijd1PP5kt5JviCUWhqL1QBdltSCFxeI7ilJdJL9G0nPGEqfDp873nnz7Blvnznj6LnjnedKceQ8d41+2RrxzanR9/8DUEsDBBQAAAAIALOYPkO1QxFBDgsAAIoTAAAhAAAAZ2l0aHViMy5weS0wLjcuMS5kaXN0LWluZm8vUkVDT1JEfZfHlqNak4XnvVa/iajCm0EPJISQsMKbCQsPEt6jp//Jezs7UWZ1TcgcaH3Eidjs2GeI+6H/PWxPL82HbAx+Neuhz3wYw/9HE/oamdAEPmcoAJ3IxBAe+slkNQZM42ekGfhAkVHQ4F19QBAUAv/7v4YvXFUPeZKH/pDXVb+jsjodoGN5086hViyo45CCBcAaONfYKtkPsgdqZfTwcQmYAwLCyBu0rKO42NOWG0dJWas2CL6yQSxgecIat0yLszkYiiRAQHXFc70TFeYAQxj5SUvyZRi7eI/q0yq1zITHaq28LGSseYBMoYQozwikPxw/6EWeBVoPmcIDBuJvdTVj8VYWOPXO7XiEVAefavtlCagmcqwgC/fXpWXbRMbuzjhivb70BxTHqE/YOORvnNV/TJepuy71AJe8q60cHz4nK1pC1rAUupgm+1I+uOj4um3NQoi3ovxxyPawAA0r6JiqM4JBCoKuF0F0EUJc/deotLqtEWfc93NFY5j6AJEE9g5r8h3qfFrE181S5pWTwsC48+TFXa8uHIRpcDnzxmscC5dTwGlwDhiKwm+ofujGcNhXZkQTFmXFdH/MtuRBpE7aaRKWctgaqiHrAj5dAnQyV9YWDzABoZ84z8urfPC8HQolzozSPMjrSfMBT7+VFoBxdDwqsfosMUlsOMtlkUwbL8bhXbB534/xP02ru/wVe3XzIV2/8PqwbuLdK+pScxvDvfYuwRSQ8lwcnSSDWDFnWQtH+0xmOsKw/msqmQMEo+9K6eKm3h/dwYZ5XrXX5XpVRga/1uw9BzOFtV88OqBqlTGcDoNzXxLhASXgL6n8Q6u7dA8DKsIHaym9eSd2Dq+6g7rEFRxwrwm0V+xa6lXEGneeJVM8QBACvzfgu/gqHk7TY7ZkGi0SFxLpnmtsC1mmXpexsrlnoeuuq51W0rwdIATFfnZzTytFQ5H55UkhyQXCeq0LKowUV1yRn/du9sRnMSgJJ66gsakPhGDyDZfm/ZtilhSIhGPRUIvmqeESXU7LUUdg6UmEFHFup7szjKGlQgypHHAUhL7Bhh1quJ7gmMKDmnO9+XSDFtkvyGkCxxOYo6seX8JM81HrYgmbhZAI+t6zPu72dUl5IsVsxOsSIwqSx6HmtXslHkBaYq7N62WhaYVgj0mg9QeSIt61EU9x9XbKkbiKTKANORHYy5Afn7HGn6EYMrhmgh1rhSlZWwm1Ga10c+CPz/9fE0c2BgD+In5Bv6KtcUBeJfVv68owwidZxC7R06Jr8Tne0YJMR9cWJ5FAhfMVjGak4ZNrdq/njk3JTSngX8Eiox/PR/34yfbWzdcChbaANdNKhJKaLAAzzqFyHpJN3S5zj6P06wXqlANEQTj8V7rK0LJ6Phz++qMzo9Hq7a7fZOlX1w+flcz+M3jdaLtu2dU6QRcmL3xvvHVjEPkh4DonoOjn2c2bbbQQieHYX1/SrB///3r0dfX5gmcKwIJ874o1MgpGCOBaANk+B12vk2qQk7oi5UJd9CneORAk9Vf8UDdesUmg+DUs/3cCKsrzEzBWYyg2OMY2A2I7BmPR40owpNhgTElOLuI/8z48fPji//J/f/d+e8XPABtbd0Gd/bBzZ+JMVo+b68fPVHk2gAVS5mqrT2maNyURX434/UOU5cKfu9NL9JsVz25iYjppqeFY5g30tc6uKQ2/XKkPWO5IHjCE/BLl7x8J46WDaIGNGBTLZBCBZxsvIYnEJYeObSa4nlPN4zHwjjPkczM/ivhq4O//L16QauTzSupQkI00cEqLQfVgL15rT+tDxBvpyp79KodVh5u3zYRDX8Tv9of7HW+VgCh027ISvYhYxj4/0/ykAyeXov02d45uSxRLamyGBe9q+54GWhGdO8qsee9YjD4FXbCqpaTnAzScQDLVLFLadYwqis82GSIUBO+K+uYvNRGRw1BT6dFLraVe6K4pDTNy7L5MB9afKd4FfR99gNBz0wOG7lB/WJZ6pqOqpbBGe8I7l4E5wp0u55vO5/xwvjTyBKIcdzXG1kI/RvnFiuKw7vyhfqvNxRcSj1knLzkYdE3k/AReEC0fZUl6XDHMuKs3Jh0Ar23SA4yiX6by+2ciYBq9RpUugBYJDe9uQDesQxYzOIt4xvLHIN3Ef9LuvjqTW/AByTeR7TixLlyruB0Mwky5AXSwwPMnZ1JYhJsHC0iPi4gdIWeEU+aAk/huiEWc+uG6QzUx6nbgJSZPWBAOJqb6ZdU3utkR43yVC/iGjXJulhIH1Qcch/Ev1I/UWkc9YVfr9VrXD47Uee/iMVqF8N61n64Q6WA+ek70oQ3NdBMESe6O957DcOyMPj2aETRgQdUrTZ6elaFoj9eRjobLMMWE9Bp9x3TjzWoRZGfkv79FB7cNbsFsbVEJq8IlsxFUW5lAP6qtLtiPkBRIWL529AzbW0kEgsD7jn9ssLAuy80pdkghdYBxLuntJFbNG1IKCbSf2BxmRkfltC0xh1kpK4tkaD5QCPkdmG3PuttPIH86cxBBDAjRbpoAlalFL8cIgAeVaNOlxjgCFOjJyUMJ3RYLAn0nJnmxz3EnR8aTBTInWBDRO/88RS+0rm1rBniCW41H0Pe3sjcXvdqODCLod9zHc4ebHwPbXjGPHZmTAJzKJH9OrEIPNQ1YSxohTG17bSDniDYfCGrvF//i/vB90kEEg33FzZ1JRL4UUIWrlPczFryms+krKYzALqPQD5TaogmFfBH/TV///tnxurh9Eklup4SzzQpa5T6Z1tbAzY4vPCr24qA4g3VS9dVmRCC6CxSfxJ9TlicVhy4O00fAnUTqRTf4V92bSkwl2AoCdOubCXEGZVsFDxSI/yAWfrCtvF0cU54c+mj72ifaCJel5IFfhPUxXxKDxlag4eYrl8mLZBjgJkQQ+gH8Qx9FZjluV4xLqbSv8lGtgpUQyTlWiUczuBchp8SE1Dt/0Yv0QILwD2S5CWcTY7Xv5QuqqanSFIyd0c5HTc9F9WpuNM259uVHuBkx6og5z47dHAom0R/Qfxbr/q7HPzWUYIGojbJkmaL7emxRKhcAUxLuy0tFMNq8twP3mpzt4Piuk//cKf4wGnXC4m5VI9mF0RNwY8918Gwl1z8+6mMVuBBEQ1EZXUyE+bgc4+R34sdz30WHhM65fOaMDEHZkwetUHQUaSx/uFxMpxxG2IxGvpAPLyVAEvxjhW/ubHdgUgN+10FIhWt2rGHDI3JcfWCmvgJXp1QFhsIjNCi+b4xPYDV8SycgmFAUyIiZkJGgJ5/WktFldpHHhCf4O1BE69AJZmsp8HYzxSHkOzKr6+f+o7aZVOcnIrS5tCvVM3SqBXhOJCdO/DZmG5t12A7TJq/fEjiGwd9xfxBjUNkP5wFnozpeUANjTBhfg9nD8q5G0CMI9Atfu5ipVuY2Z4r6TozquSpqP9p/1tg9cYTti+hVVoXzJVP92cACo7+dUjfvJrsmOYdz4PqOHmAc+jGXwU/3l46iGVNXeDU0xiVqd7nzzfGkAqJbmVKRIap0z7XSkvBxs0XqZ33bkBu/y7eQvF94EMR1NZ76zfJY9GPmA0ZY1NbtdlIeVtSQ0kMj3ZDXINLYLvgw9h3aD/4wvoUzA599B3zKj9xTLIMCWUl3IIzEnsb5Vr3gPiJVIXgRmnDcchDy48hB51dhtr9Q6oaGoZaHc8d4OldcfOpulOglIbCGkzbbcYvTY3nMwmQ+kOgfC3y7n4IeiswpUOWYVXS5Sh2zuY1GNKup8XEXq3imei2d+dMmwy3ybbz/AFBLAQIUAxQAAAAIADSXPkONiblWuBEAAIKCAAAUAAAAAAAAAAAAAACkgQAAAAB0ZXN0cy90ZXN0X2dpdGh1Yi5weVBLAQIUAxQAAAAIANqZMkNPV8f9zgIAAM8LAAAbAAAAAAAAAAAAAACkgeoRAAB0ZXN0cy90ZXN0X25vdGlmaWNhdGlvbnMucHlQSwECFAMUAAAACADamTJD+cYV1p4CAABuCAAAFAAAAAAAAAAAAAAApIHxFAAAdGVzdHMvdGVzdF9tb2RlbHMucHlQSwECFAMUAAAACABtoyNDiWjw6vkAAAD6AQAAEQAAAAAAAAAAAAAApIHBFwAAdGVzdHMvZml4dHVyZXMucHlQSwECFAMUAAAACADamTJDqNgwEUIEAAAzEgAAEwAAAAAAAAAAAAAApIHpGAAAdGVzdHMvdGVzdF9wdWxscy5weVBLAQIUAxQAAAAIADSXPkNoxivX5AMAAN0LAAAOAAAAAAAAAAAAAACkgVwdAAB0ZXN0cy91dGlscy5weVBLAQIUAxQAAAAIANqZMkPatWq6QAIAAFMHAAATAAAAAAAAAAAAAACkgWwhAAB0ZXN0cy90ZXN0X2F1dGhzLnB5UEsBAhQDFAAAAAgAh7XWQhmPByEtBAAAQhUAABEAAAAAAAAAAAAAAKSB3SMAAHRlc3RzL3Rlc3RfYXBpLnB5UEsBAhQDFAAAAAgA2pkyQ7QgaEKdAgAAmgoAABUAAAAAAAAAAAAAAKSBOSgAAHRlc3RzL3Rlc3Rfc3RydWN0cy5weVBLAQIUAxQAAAAIAIe11kIAAAAAAgAAAAAAAAARAAAAAAAAAAAAAACkgQkrAAB0ZXN0cy9fX2luaXRfXy5weVBLAQIUAxQAAAAIANqZMkNMlb3MvAEAAN4EAAAsAAAAAAAAAAAAAACkgTorAAB0ZXN0cy90ZXN0X2lzc3VlX2F1dGhvcml6ZV9vcHRpb25hbF9zY29wZS5weVBLAQIUAxQAAAAIANqZMkPikikgWhwAAJu4AAATAAAAAAAAAAAAAACkgUAtAAB0ZXN0cy90ZXN0X3JlcG9zLnB5UEsBAhQDFAAAAAgA2pkyQxlCrU5aBgAAOCwAABIAAAAAAAAAAAAAAKSBy0kAAHRlc3RzL3Rlc3Rfb3Jncy5weVBLAQIUAxQAAAAIAG2jI0PL4EsAfAEAAEEFAAATAAAAAAAAAAAAAACkgVVQAAB0ZXN0cy90ZXN0X3V0aWxzLnB5UEsBAhQDFAAAAAgA2pkyQxb264+VBwAAkCcAABQAAAAAAAAAAAAAAKSBAlIAAHRlc3RzL3Rlc3RfaXNzdWVzLnB5UEsBAhQDFAAAAAgA2pkyQ8FaZVzsBAAAARkAABMAAAAAAAAAAAAAAKSByVkAAHRlc3RzL3Rlc3RfZ2lzdHMucHlQSwECFAMUAAAACADamTJDYaka3OQCAAASCwAAEQAAAAAAAAAAAAAApIHmXgAAdGVzdHMvdGVzdF9naXQucHlQSwECFAMUAAAACADamTJDK4aMZdUGAAAQIwAAEwAAAAAAAAAAAAAApIH5YQAAdGVzdHMvdGVzdF91c2Vycy5weVBLAQIUAxQAAAAIANqZMkNGccaBRwMAAAkNAAAUAAAAAAAAAAAAAACkgf9oAAB0ZXN0cy90ZXN0X2V2ZW50cy5weVBLAQIUAxQAAAAIAG2jI0OcuQUE+wMAAC8NAAAQAAAAAAAAAAAAAACkgXhsAABnaXRodWIzL2F1dGhzLnB5UEsBAhQDFAAAAAgAfZg+Q0zi/B/MBQAACxUAABEAAAAAAAAAAAAAAKSBoXAAAGdpdGh1YjMvZXZlbnRzLnB5UEsBAhQDFAAAAAgA2pkyQw1X45kwIgAAa7sAABEAAAAAAAAAAAAAAKSBnHYAAGdpdGh1YjMvZ2l0aHViLnB5UEsBAhQDFAAAAAgAjrXWQg++fzqiBQAAVRUAABgAAAAAAAAAAAAAAKSB+5gAAGdpdGh1YjMvbm90aWZpY2F0aW9ucy5weVBLAQIUAxQAAAAIAG2jI0Oi6PERzwEAAAUEAAAQAAAAAAAAAAAAAACkgdOeAABnaXRodWIzL3V0aWxzLnB5UEsBAhQDFAAAAAgA2pkyQ73wA4W/DAAAWDYAABAAAAAAAAAAAAAAAKSB0KAAAGdpdGh1YjMvcHVsbHMucHlQSwECFAMUAAAACABtoyNDmg6Kg9sMAADOOAAAEAAAAAAAAAAAAAAApIG9rQAAZ2l0aHViMy91c2Vycy5weVBLAQIUAxQAAAAIAIWYPkOZqSJPLAEAABoCAAATAAAAAAAAAAAAAACkgca6AABnaXRodWIzL19faW5pdF9fLnB5UEsBAhQDFAAAAAgAbaMjQxtbZ3ZiAwAAiAkAABUAAAAAAAAAAAAAAKSBI7wAAGdpdGh1YjMvZGVjb3JhdG9ycy5weVBLAQIUAxQAAAAIANqZMkOjFt/WMAQAAMALAAASAAAAAAAAAAAAAACkgbi/AABnaXRodWIzL3N0cnVjdHMucHlQSwECFAMUAAAACABtoyNDA4G9gHgHAADVGgAADgAAAAAAAAAAAAAApIEYxAAAZ2l0aHViMy9naXQucHlQSwECFAMUAAAACACOtdZCOLuwWkoGAADiGQAAEQAAAAAAAAAAAAAApIG8ywAAZ2l0aHViMy9sZWdhY3kucHlQSwECFAMUAAAACABtoyNDA3kpKcIPAABANgAAEQAAAAAAAAAAAAAApIE10gAAZ2l0aHViMy9tb2RlbHMucHlQSwECFAMUAAAACABtoyNDmKj/g44LAAD+MwAADgAAAAAAAAAAAAAApIEm4gAAZ2l0aHViMy9hcGkucHlQSwECFAMUAAAACABtoyNDKvGfoMMMAAC0QwAADwAAAAAAAAAAAAAApIHg7QAAZ2l0aHViMy9vcmdzLnB5UEsBAhQDFAAAAAgAbaMjQ7HF7AvHAQAAqgMAABgAAAAAAAAAAAAAAKSB0PoAAGdpdGh1YjMvZ2lzdHMvY29tbWVudC5weVBLAQIUAxQAAAAIAG2jI0M5hhZvwwIAAIsHAAAYAAAAAAAAAAAAAACkgc38AABnaXRodWIzL2dpc3RzL2hpc3RvcnkucHlQSwECFAMUAAAACABtoyNDYuNAjIkBAAAKBAAAFQAAAAAAAAAAAAAApIHG/wAAZ2l0aHViMy9naXN0cy9maWxlLnB5UEsBAhQDFAAAAAgAbaMjQ05vii+ICAAA+R4AABUAAAAAAAAAAAAAAKSBggEBAGdpdGh1YjMvZ2lzdHMvZ2lzdC5weVBLAQIUAxQAAAAIAI611kJ6g6BWqgAAACUBAAAZAAAAAAAAAAAAAACkgT0KAQBnaXRodWIzL2dpc3RzL19faW5pdF9fLnB5UEsBAhQDFAAAAAgA2pkyQ01AsBgTCwAAxSgAABcAAAAAAAAAAAAAAKSBHgsBAGdpdGh1YjMvaXNzdWVzL2lzc3VlLnB5UEsBAhQDFAAAAAgAbaMjQxc71v22AQAAigMAABkAAAAAAAAAAAAAAKSBZhYBAGdpdGh1YjMvaXNzdWVzL2NvbW1lbnQucHlQSwECFAMUAAAACACOtdZCE6UwOXwCAAClBgAAFwAAAAAAAAAAAAAApIFTGAEAZ2l0aHViMy9pc3N1ZXMvbGFiZWwucHlQSwECFAMUAAAACABtoyND4TO7ymMBAAAiAwAAGgAAAAAAAAAAAAAApIEEGwEAZ2l0aHViMy9pc3N1ZXMvX19pbml0X18ucHlQSwECFAMUAAAACACOtdZCSke/xlcEAADUDAAAGwAAAAAAAAAAAAAApIGfHAEAZ2l0aHViMy9pc3N1ZXMvbWlsZXN0b25lLnB5UEsBAhQDFAAAAAgAjrXWQmkN0fm9AgAA5gYAABcAAAAAAAAAAAAAAKSBLyEBAGdpdGh1YjMvaXNzdWVzL2V2ZW50LnB5UEsBAhQDFAAAAAgAjrXWQgA3VLAJAwAAeAgAABgAAAAAAAAAAAAAAKSBISQBAGdpdGh1YjMvcmVwb3MvY29tbWVudC5weVBLAQIUAxQAAAAIAG2jI0Nl9wsJCzMAAJYUAQAVAAAAAAAAAAAAAACkgWAnAQBnaXRodWIzL3JlcG9zL3JlcG8ucHlQSwECFAMUAAAACACOtdZCXBqJsgoDAACICQAAFwAAAAAAAAAAAAAApIGeWgEAZ2l0aHViMy9yZXBvcy9jb21taXQucHlQSwECFAMUAAAACABtoyND+akbcIwGAADtFQAAGQAAAAAAAAAAAAAApIHdXQEAZ2l0aHViMy9yZXBvcy9jb250ZW50cy5weVBLAQIUAxQAAAAIAI611kIWe9MwgwQAAOANAAAVAAAAAAAAAAAAAACkgaBkAQBnaXRodWIzL3JlcG9zL2hvb2sucHlQSwECFAMUAAAACACOtdZCStsGq44AAADHAAAAGQAAAAAAAAAAAAAApIFWaQEAZ2l0aHViMy9yZXBvcy9fX2luaXRfXy5weVBLAQIUAxQAAAAIAI611kLjZpHS5AMAADgKAAAZAAAAAAAAAAAAAACkgRtqAQBnaXRodWIzL3JlcG9zL2Rvd25sb2FkLnB5UEsBAhQDFAAAAAgAjrXWQo8UDcXAAQAA5wMAABQAAAAAAAAAAAAAAKSBNm4BAGdpdGh1YjMvcmVwb3MvdGFnLnB5UEsBAhQDFAAAAAgAjrXWQhidKUx7AwAApQoAABsAAAAAAAAAAAAAAKSBKHABAGdpdGh1YjMvcmVwb3MvY29tcGFyaXNvbi5weVBLAQIUAxQAAAAIAI611kLiJpm6NQIAAJwFAAAXAAAAAAAAAAAAAACkgdxzAQBnaXRodWIzL3JlcG9zL3N0YXR1cy5weVBLAQIUAxQAAAAIAG2jI0NYjldIbwEAAE0DAAAXAAAAAAAAAAAAAACkgUZ2AQBnaXRodWIzL3JlcG9zL2JyYW5jaC5weVBLAQIUAxQAAAAIAG2jI0MiTP/4YgIAAHMFAAAWAAAAAAAAAAAAAACkgep3AQBnaXRodWIzL3JlcG9zL3N0YXRzLnB5UEsBAhQDFAAAAAgAs5g+Q8EfbAg/FwAAhUgAACoAAAAAAAAAAAAAAKSBgHoBAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL0RFU0NSSVBUSU9OLnJzdFBLAQIUAxQAAAAIALOYPkPHJx/WwAEAABUDAAAmAAAAAAAAAAAAAACkgQeSAQBnaXRodWIzLnB5LTAuNy4xLmRpc3QtaW5mby9weWRpc3QuanNvblBLAQIUAxQAAAAIALOYPkOl+iZaEAAAAA4AAAAoAAAAAAAAAAAAAACkgQuUAQBnaXRodWIzLnB5LTAuNy4xLmRpc3QtaW5mby90b3BfbGV2ZWwudHh0UEsBAhQDFAAAAAgAs5g+Q4WiDbFeAAAAbgAAACAAAAAAAAAAAAAAAKSBYZQBAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL1dIRUVMUEsBAhQDFAAAAAgAs5g+Q1Hsi7slGAAA2koAACMAAAAAAAAAAAAAAKSB/ZQBAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL01FVEFEQVRBUEsBAhQDFAAAAAgAs5g+Q7VDEUEOCwAAihMAACEAAAAAAAAAAAAAAKSBY60BAGdpdGh1YjMucHktMC43LjEuZGlzdC1pbmZvL1JFQ09SRFBLBQYAAAAAPwA/AM4QAACwuAEAAAA=",
++ "encoding": null
++ },
++ "headers": {
++ "accept-ranges": [
++ "bytes"
++ ],
++ "cache-control": [
++ "max-age=31557600"
++ ],
++ "content-disposition": [
++ "attachment; filename=github3.py-0.7.1-py2.py3-none-any.whl"
++ ],
++ "content-length": [
++ "117140"
++ ],
++ "content-type": [
++ "application/octet-stream"
++ ],
++ "date": [
++ "Thu, 12 Mar 2015 13:22:35 GMT"
++ ],
++ "etag": [
++ "\"6550854f02f7bf10b944070b84f38313\""
++ ],
++ "last-modified": [
++ "Fri, 15 Nov 2013 22:35:23 GMT"
++ ],
++ "server": [
++ "AmazonS3"
++ ],
++ "x-amz-id-2": [
++ "9+TuHhbd7y2BUJaEV+mFpaDgjl1g9uSAPiZxwc6b2cYydhlhZSyKSuB7PQyiPBPD"
++ ],
++ "x-amz-meta-surrogate-control": [
++ "max-age=31557600"
++ ],
++ "x-amz-meta-surrogate-key": [
++ "repository-3710711 user-240830"
++ ],
++ "x-amz-request-id": [
++ "4B4BFE6BF5135B8D"
++ ]
++ },
++ "status": {
++ "code": 200,
++ "message": "OK"
++ },
++ "url": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"
++ }
++ }
++ ],
++ "recorded_with": "betamax/0.4.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/stream_response_without_content_length_to_file.json b/tests/cassettes/stream_response_without_content_length_to_file.json
+index f2bf898..75944d0 100644
+--- a/tests/cassettes/stream_response_without_content_length_to_file.json
++++ b/tests/cassettes/stream_response_without_content_length_to_file.json
+@@ -1 +1,174 @@
+-{"recorded_with": "betamax/0.4.1", "http_interactions": [{"request": {"uri": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944", "method": "GET", "headers": {"Accept": ["application/octet-stream"], "Accept-Encoding": ["gzip, deflate"], "Connection": ["keep-alive"], "User-Agent": ["python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"]}, "body": {"base64_string": "", "encoding": "utf-8"}}, "response": {"status": {"code": 302, "message": "Found"}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944", "headers": {"access-control-allow-credentials": ["true"], "x-xss-protection": ["1; mode=block"], "vary": ["Accept-Encoding"], "location": ["https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"], "x-content-type-options": ["nosniff"], "content-security-policy": ["default-src 'none'"], "x-ratelimit-limit": ["60"], "status": ["302 Found"], "x-frame-options": ["deny"], "x-served-by": ["8dd185e423974a7e13abbbe6e060031e"], "server": ["GitHub.com"], "access-control-allow-origin": ["*"], "strict-transport-security": ["max-age=31536000; includeSubdomains; preload"], "x-github-request-id": ["48A0C951:54E7:48B5311:55019319"], "date": ["Thu, 12 Mar 2015 13:22:33 GMT"], "access-control-expose-headers": ["ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"], "x-ratelimit-remaining": ["58"], "content-type": ["text/html;charset=utf-8"], "x-ratelimit-reset": ["1426170017"]}, "body": {"base64_string": "", "encoding": "utf-8"}}, "recorded_at": "2015-03-12T13:22:33"}, {"request": {"uri": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D", "method": "GET", "headers": {"Accept": ["application/octet-stream"], "Accept-Encoding": ["gzip, deflate"], "Connection": ["keep-alive"], "User-Agent": ["python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"]}, "body": {"base64_string": "", "encoding": "utf-8"}}, "response": {"status": {"code": 200, "message": "OK"}, "url": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D", "headers": {"accept-ranges": ["bytes"], "content-disposition": ["attachment; filename=github3.py-0.7.1-py2.py3-none-any.whl"], "x-amz-id-2": ["9+TuHhbd7y2BUJaEV+mFpaDgjl1g9uSAPiZxwc6b2cYydhlhZSyKSuB7PQyiPBPD"], "x-amz-meta-surrogate-key": ["repository-3710711 user-240830"], "x-amz-request-id": ["4B4BFE6BF5135B8D"], "last-modified": ["Fri, 15 Nov 2013 22:35:23 GMT"], "x-amz-meta-surrogate-control": ["max-age=31557600"], "etag": ["\"6550854f02f7bf10b944070b84f38313\""], "date": ["Thu, 12 Mar 2015 13:22:35 GMT"], "cache-control": ["max-age=31557600"], "content-type": ["application/octet-stream"], "server": ["AmazonS3"]}, "body": {"base64_string": "", "encoding": null}}, "recorded_at": "2015-03-12T13:22:34"}]}
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2015-03-12T13:22:33",
++ "request": {
++ "body": {
++ "base64_string": "",
++ "encoding": "utf-8"
++ },
++ "headers": {
++ "Accept": [
++ "application/octet-stream"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"
++ ]
++ },
++ "method": "GET",
++ "uri": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944"
++ },
++ "response": {
++ "body": {
++ "base64_string": "",
++ "encoding": "utf-8"
++ },
++ "headers": {
++ "access-control-allow-credentials": [
++ "true"
++ ],
++ "access-control-allow-origin": [
++ "*"
++ ],
++ "access-control-expose-headers": [
++ "ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"
++ ],
++ "content-security-policy": [
++ "default-src 'none'"
++ ],
++ "content-type": [
++ "text/html;charset=utf-8"
++ ],
++ "date": [
++ "Thu, 12 Mar 2015 13:22:33 GMT"
++ ],
++ "location": [
++ "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"
++ ],
++ "server": [
++ "GitHub.com"
++ ],
++ "status": [
++ "302 Found"
++ ],
++ "strict-transport-security": [
++ "max-age=31536000; includeSubdomains; preload"
++ ],
++ "vary": [
++ "Accept-Encoding"
++ ],
++ "x-content-type-options": [
++ "nosniff"
++ ],
++ "x-frame-options": [
++ "deny"
++ ],
++ "x-github-request-id": [
++ "48A0C951:54E7:48B5311:55019319"
++ ],
++ "x-ratelimit-limit": [
++ "60"
++ ],
++ "x-ratelimit-remaining": [
++ "58"
++ ],
++ "x-ratelimit-reset": [
++ "1426170017"
++ ],
++ "x-served-by": [
++ "8dd185e423974a7e13abbbe6e060031e"
++ ],
++ "x-xss-protection": [
++ "1; mode=block"
++ ]
++ },
++ "status": {
++ "code": 302,
++ "message": "Found"
++ },
++ "url": "https://api.github.com/repos/sigmavirus24/github3.py/releases/assets/37944"
++ }
++ },
++ {
++ "recorded_at": "2015-03-12T13:22:34",
++ "request": {
++ "body": {
++ "base64_string": "",
++ "encoding": "utf-8"
++ },
++ "headers": {
++ "Accept": [
++ "application/octet-stream"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.5.3 CPython/2.7.9 Darwin/14.1.0"
++ ]
++ },
++ "method": "GET",
++ "uri": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"
++ },
++ "response": {
++ "body": {
++ "base64_string": "",
++ "encoding": null
++ },
++ "headers": {
++ "accept-ranges": [
++ "bytes"
++ ],
++ "cache-control": [
++ "max-age=31557600"
++ ],
++ "content-disposition": [
++ "attachment; filename=github3.py-0.7.1-py2.py3-none-any.whl"
++ ],
++ "content-type": [
++ "application/octet-stream"
++ ],
++ "date": [
++ "Thu, 12 Mar 2015 13:22:35 GMT"
++ ],
++ "etag": [
++ "\"6550854f02f7bf10b944070b84f38313\""
++ ],
++ "last-modified": [
++ "Fri, 15 Nov 2013 22:35:23 GMT"
++ ],
++ "server": [
++ "AmazonS3"
++ ],
++ "x-amz-id-2": [
++ "9+TuHhbd7y2BUJaEV+mFpaDgjl1g9uSAPiZxwc6b2cYydhlhZSyKSuB7PQyiPBPD"
++ ],
++ "x-amz-meta-surrogate-control": [
++ "max-age=31557600"
++ ],
++ "x-amz-meta-surrogate-key": [
++ "repository-3710711 user-240830"
++ ],
++ "x-amz-request-id": [
++ "4B4BFE6BF5135B8D"
++ ]
++ },
++ "status": {
++ "code": 200,
++ "message": "OK"
++ },
++ "url": "https://s3.amazonaws.com/github-cloud/releases/3710711/365425c2-4e46-11e3-86fb-bb0d50a886e7.whl?response-content-disposition=attachment%3B%20filename%3Dgithub3.py-0.7.1-py2.py3-none-any.whl&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1426166613&Signature=78anFgNgXLm3TIbo%2FbTEEk7m%2F34%3D"
++ }
++ }
++ ],
++ "recorded_with": "betamax/0.4.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/test_x509_adapter_der.json b/tests/cassettes/test_x509_adapter_der.json
+index 0f4072a..8fd5c0c 100644
+--- a/tests/cassettes/test_x509_adapter_der.json
++++ b/tests/cassettes/test_x509_adapter_der.json
+@@ -1 +1,68 @@
+-{"http_interactions": [{"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": ["python-requests/2.21.0"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "Connection": ["keep-alive"]}, "method": "GET", "uri": "https://pkiprojecttest01.dev.labs.internal/"}, "response": {"body": {"encoding": "ISO-8859-1", "base64_string": "H4sIAAAAAAAAA7NRdPF3DokMcFXIKMnNseOygVJJ+SmVdlxArqFdSGpxiY0+kAHkFoB5CsGlycmpxcU2+gUgQX2IYqAasBEAYvDs5FMAAAA=", "string": ""}, "headers": {"Server": ["nginx/1.10.3 (Ubuntu)"], "Date": ["Thu, 20 Dec 2018 20:02:30 GMT"], "Content-Type": ["text/html"], "Last-Modified": ["Mon, 19 Nov 2018 20:48:30 GMT"], "Transfer-Encoding": ["chunked"], "Connection": ["keep-alive"], "ETag": ["W/\"5bf3219e-53\""], "Content-Encoding": ["gzip"]}, "status": {"code": 200, "message": "OK"}, "url": "https://pkiprojecttest01.dev.labs.internal/"}, "recorded_at": "2018-12-20T20:02:30"}], "recorded_with": "betamax/0.8.1"}
+\ No newline at end of file
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2018-12-20T20:02:30",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.21.0"
++ ]
++ },
++ "method": "GET",
++ "uri": "https://pkiprojecttest01.dev.labs.internal/"
++ },
++ "response": {
++ "body": {
++ "base64_string": "H4sIAAAAAAAAA7NRdPF3DokMcFXIKMnNseOygVJJ+SmVdlxArqFdSGpxiY0+kAHkFoB5CsGlycmpxcU2+gUgQX2IYqAasBEAYvDs5FMAAAA=",
++ "encoding": "ISO-8859-1",
++ "string": ""
++ },
++ "headers": {
++ "Connection": [
++ "keep-alive"
++ ],
++ "Content-Encoding": [
++ "gzip"
++ ],
++ "Content-Type": [
++ "text/html"
++ ],
++ "Date": [
++ "Thu, 20 Dec 2018 20:02:30 GMT"
++ ],
++ "ETag": [
++ "W/\"5bf3219e-53\""
++ ],
++ "Last-Modified": [
++ "Mon, 19 Nov 2018 20:48:30 GMT"
++ ],
++ "Server": [
++ "nginx/1.10.3 (Ubuntu)"
++ ],
++ "Transfer-Encoding": [
++ "chunked"
++ ]
++ },
++ "status": {
++ "code": 200,
++ "message": "OK"
++ },
++ "url": "https://pkiprojecttest01.dev.labs.internal/"
++ }
++ }
++ ],
++ "recorded_with": "betamax/0.8.1"
++}
+\ No newline at end of file
+diff --git a/tests/cassettes/test_x509_adapter_pem.json b/tests/cassettes/test_x509_adapter_pem.json
+index 0f4072a..8fd5c0c 100644
+--- a/tests/cassettes/test_x509_adapter_pem.json
++++ b/tests/cassettes/test_x509_adapter_pem.json
+@@ -1 +1,68 @@
+-{"http_interactions": [{"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": ["python-requests/2.21.0"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "Connection": ["keep-alive"]}, "method": "GET", "uri": "https://pkiprojecttest01.dev.labs.internal/"}, "response": {"body": {"encoding": "ISO-8859-1", "base64_string": "H4sIAAAAAAAAA7NRdPF3DokMcFXIKMnNseOygVJJ+SmVdlxArqFdSGpxiY0+kAHkFoB5CsGlycmpxcU2+gUgQX2IYqAasBEAYvDs5FMAAAA=", "string": ""}, "headers": {"Server": ["nginx/1.10.3 (Ubuntu)"], "Date": ["Thu, 20 Dec 2018 20:02:30 GMT"], "Content-Type": ["text/html"], "Last-Modified": ["Mon, 19 Nov 2018 20:48:30 GMT"], "Transfer-Encoding": ["chunked"], "Connection": ["keep-alive"], "ETag": ["W/\"5bf3219e-53\""], "Content-Encoding": ["gzip"]}, "status": {"code": 200, "message": "OK"}, "url": "https://pkiprojecttest01.dev.labs.internal/"}, "recorded_at": "2018-12-20T20:02:30"}], "recorded_with": "betamax/0.8.1"}
+\ No newline at end of file
++{
++ "http_interactions": [
++ {
++ "recorded_at": "2018-12-20T20:02:30",
++ "request": {
++ "body": {
++ "encoding": "utf-8",
++ "string": ""
++ },
++ "headers": {
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.21.0"
++ ]
++ },
++ "method": "GET",
++ "uri": "https://pkiprojecttest01.dev.labs.internal/"
++ },
++ "response": {
++ "body": {
++ "base64_string": "H4sIAAAAAAAAA7NRdPF3DokMcFXIKMnNseOygVJJ+SmVdlxArqFdSGpxiY0+kAHkFoB5CsGlycmpxcU2+gUgQX2IYqAasBEAYvDs5FMAAAA=",
++ "encoding": "ISO-8859-1",
++ "string": ""
++ },
++ "headers": {
++ "Connection": [
++ "keep-alive"
++ ],
++ "Content-Encoding": [
++ "gzip"
++ ],
++ "Content-Type": [
++ "text/html"
++ ],
++ "Date": [
++ "Thu, 20 Dec 2018 20:02:30 GMT"
++ ],
++ "ETag": [
++ "W/\"5bf3219e-53\""
++ ],
++ "Last-Modified": [
++ "Mon, 19 Nov 2018 20:48:30 GMT"
++ ],
++ "Server": [
++ "nginx/1.10.3 (Ubuntu)"
++ ],
++ "Transfer-Encoding": [
++ "chunked"
++ ]
++ },
++ "status": {
++ "code": 200,
++ "message": "OK"
++ },
++ "url": "https://pkiprojecttest01.dev.labs.internal/"
++ }
++ }
++ ],
++ "recorded_with": "betamax/0.8.1"
++}
+\ No newline at end of file
diff --git a/meta-python/recipes-devtools/python/python3-requests-toolbelt/720240501dca0b4eacc3295665d7ced8719e11d2.patch b/meta-python/recipes-devtools/python/python3-requests-toolbelt/720240501dca0b4eacc3295665d7ced8719e11d2.patch
new file mode 100644
index 0000000000..0439b09829
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-requests-toolbelt/720240501dca0b4eacc3295665d7ced8719e11d2.patch
@@ -0,0 +1,546 @@
+From 720240501dca0b4eacc3295665d7ced8719e11d2 Mon Sep 17 00:00:00 2001
+From: Quentin Pradet <quentin.pradet@gmail.com>
+Date: Fri, 28 Apr 2023 23:28:43 +0400
+Subject: [PATCH] Test urllib3 2.0
+
+Upstream-Status: Submitted [https://github.com/requests/toolbelt/pull/356]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../redirect_request_for_dump_all.json | 302 +++++++++++++-----
+ tests/cassettes/simple_get_request.json | 16 +-
+ tox.ini | 11 +-
+ 3 files changed, 239 insertions(+), 90 deletions(-)
+
+diff --git a/tests/cassettes/redirect_request_for_dump_all.json b/tests/cassettes/redirect_request_for_dump_all.json
+index f713ff3..dc8fefe 100644
+--- a/tests/cassettes/redirect_request_for_dump_all.json
++++ b/tests/cassettes/redirect_request_for_dump_all.json
+@@ -1,17 +1,25 @@
+ {
+ "http_interactions": [
+ {
+- "recorded_at": "2015-11-14T22:53:20",
++ "recorded_at": "2023-04-28T18:04:50",
+ "request": {
+ "body": {
+ "encoding": "utf-8",
+ "string": ""
+ },
+ "headers": {
+- "Accept": "*/*",
+- "Accept-Encoding": "gzip, deflate",
+- "Connection": "keep-alive",
+- "User-Agent": "python-requests/2.8.1"
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.28.1"
++ ]
+ },
+ "method": "GET",
+ "uri": "https://httpbin.org/redirect/5"
+@@ -22,14 +30,30 @@
+ "string": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>Redirecting...</title>\n<h1>Redirecting...</h1>\n<p>You should be redirected automatically to target URL: <a href=\"/relative-redirect/4\">/relative-redirect/4</a>. If not click the link."
+ },
+ "headers": {
+- "Access-Control-Allow-Credentials": "true",
+- "Access-Control-Allow-Origin": "*",
+- "Connection": "keep-alive",
+- "Content-Length": "247",
+- "Content-Type": "text/html; charset=utf-8",
+- "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
+- "Location": "/relative-redirect/4",
+- "Server": "nginx"
++ "Access-Control-Allow-Credentials": [
++ "true"
++ ],
++ "Access-Control-Allow-Origin": [
++ "*"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "Content-Length": [
++ "247"
++ ],
++ "Content-Type": [
++ "text/html; charset=utf-8"
++ ],
++ "Date": [
++ "Fri, 28 Apr 2023 18:04:50 GMT"
++ ],
++ "Location": [
++ "/relative-redirect/4"
++ ],
++ "Server": [
++ "gunicorn/19.9.0"
++ ]
+ },
+ "status": {
+ "code": 302,
+@@ -39,17 +63,25 @@
+ }
+ },
+ {
+- "recorded_at": "2015-11-14T22:53:20",
++ "recorded_at": "2023-04-28T18:04:52",
+ "request": {
+ "body": {
+ "encoding": "utf-8",
+ "string": ""
+ },
+ "headers": {
+- "Accept": "*/*",
+- "Accept-Encoding": "gzip, deflate",
+- "Connection": "keep-alive",
+- "User-Agent": "python-requests/2.8.1"
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.28.1"
++ ]
+ },
+ "method": "GET",
+ "uri": "https://httpbin.org/relative-redirect/4"
+@@ -60,14 +92,30 @@
+ "string": ""
+ },
+ "headers": {
+- "Access-Control-Allow-Credentials": "true",
+- "Access-Control-Allow-Origin": "*",
+- "Connection": "keep-alive",
+- "Content-Length": "0",
+- "Content-Type": "text/html; charset=utf-8",
+- "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
+- "Location": "/relative-redirect/3",
+- "Server": "nginx"
++ "Access-Control-Allow-Credentials": [
++ "true"
++ ],
++ "Access-Control-Allow-Origin": [
++ "*"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "Content-Length": [
++ "0"
++ ],
++ "Content-Type": [
++ "text/html; charset=utf-8"
++ ],
++ "Date": [
++ "Fri, 28 Apr 2023 18:04:52 GMT"
++ ],
++ "Location": [
++ "/relative-redirect/3"
++ ],
++ "Server": [
++ "gunicorn/19.9.0"
++ ]
+ },
+ "status": {
+ "code": 302,
+@@ -77,17 +125,25 @@
+ }
+ },
+ {
+- "recorded_at": "2015-11-14T22:53:20",
++ "recorded_at": "2023-04-28T18:04:53",
+ "request": {
+ "body": {
+ "encoding": "utf-8",
+ "string": ""
+ },
+ "headers": {
+- "Accept": "*/*",
+- "Accept-Encoding": "gzip, deflate",
+- "Connection": "keep-alive",
+- "User-Agent": "python-requests/2.8.1"
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.28.1"
++ ]
+ },
+ "method": "GET",
+ "uri": "https://httpbin.org/relative-redirect/3"
+@@ -98,14 +154,30 @@
+ "string": ""
+ },
+ "headers": {
+- "Access-Control-Allow-Credentials": "true",
+- "Access-Control-Allow-Origin": "*",
+- "Connection": "keep-alive",
+- "Content-Length": "0",
+- "Content-Type": "text/html; charset=utf-8",
+- "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
+- "Location": "/relative-redirect/2",
+- "Server": "nginx"
++ "Access-Control-Allow-Credentials": [
++ "true"
++ ],
++ "Access-Control-Allow-Origin": [
++ "*"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "Content-Length": [
++ "0"
++ ],
++ "Content-Type": [
++ "text/html; charset=utf-8"
++ ],
++ "Date": [
++ "Fri, 28 Apr 2023 18:04:53 GMT"
++ ],
++ "Location": [
++ "/relative-redirect/2"
++ ],
++ "Server": [
++ "gunicorn/19.9.0"
++ ]
+ },
+ "status": {
+ "code": 302,
+@@ -115,17 +187,25 @@
+ }
+ },
+ {
+- "recorded_at": "2015-11-14T22:53:20",
++ "recorded_at": "2023-04-28T18:04:55",
+ "request": {
+ "body": {
+ "encoding": "utf-8",
+ "string": ""
+ },
+ "headers": {
+- "Accept": "*/*",
+- "Accept-Encoding": "gzip, deflate",
+- "Connection": "keep-alive",
+- "User-Agent": "python-requests/2.8.1"
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.28.1"
++ ]
+ },
+ "method": "GET",
+ "uri": "https://httpbin.org/relative-redirect/2"
+@@ -136,14 +216,30 @@
+ "string": ""
+ },
+ "headers": {
+- "Access-Control-Allow-Credentials": "true",
+- "Access-Control-Allow-Origin": "*",
+- "Connection": "keep-alive",
+- "Content-Length": "0",
+- "Content-Type": "text/html; charset=utf-8",
+- "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
+- "Location": "/relative-redirect/1",
+- "Server": "nginx"
++ "Access-Control-Allow-Credentials": [
++ "true"
++ ],
++ "Access-Control-Allow-Origin": [
++ "*"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "Content-Length": [
++ "0"
++ ],
++ "Content-Type": [
++ "text/html; charset=utf-8"
++ ],
++ "Date": [
++ "Fri, 28 Apr 2023 18:04:55 GMT"
++ ],
++ "Location": [
++ "/relative-redirect/1"
++ ],
++ "Server": [
++ "gunicorn/19.9.0"
++ ]
+ },
+ "status": {
+ "code": 302,
+@@ -153,17 +249,25 @@
+ }
+ },
+ {
+- "recorded_at": "2015-11-14T22:53:20",
++ "recorded_at": "2023-04-28T18:04:56",
+ "request": {
+ "body": {
+ "encoding": "utf-8",
+ "string": ""
+ },
+ "headers": {
+- "Accept": "*/*",
+- "Accept-Encoding": "gzip, deflate",
+- "Connection": "keep-alive",
+- "User-Agent": "python-requests/2.8.1"
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.28.1"
++ ]
+ },
+ "method": "GET",
+ "uri": "https://httpbin.org/relative-redirect/1"
+@@ -174,14 +278,30 @@
+ "string": ""
+ },
+ "headers": {
+- "Access-Control-Allow-Credentials": "true",
+- "Access-Control-Allow-Origin": "*",
+- "Connection": "keep-alive",
+- "Content-Length": "0",
+- "Content-Type": "text/html; charset=utf-8",
+- "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
+- "Location": "/get",
+- "Server": "nginx"
++ "Access-Control-Allow-Credentials": [
++ "true"
++ ],
++ "Access-Control-Allow-Origin": [
++ "*"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "Content-Length": [
++ "0"
++ ],
++ "Content-Type": [
++ "text/html; charset=utf-8"
++ ],
++ "Date": [
++ "Fri, 28 Apr 2023 18:04:56 GMT"
++ ],
++ "Location": [
++ "/get"
++ ],
++ "Server": [
++ "gunicorn/19.9.0"
++ ]
+ },
+ "status": {
+ "code": 302,
+@@ -191,34 +311,56 @@
+ }
+ },
+ {
+- "recorded_at": "2015-11-14T22:53:20",
++ "recorded_at": "2023-04-28T18:04:58",
+ "request": {
+ "body": {
+ "encoding": "utf-8",
+ "string": ""
+ },
+ "headers": {
+- "Accept": "*/*",
+- "Accept-Encoding": "gzip, deflate",
+- "Connection": "keep-alive",
+- "User-Agent": "python-requests/2.8.1"
++ "Accept": [
++ "*/*"
++ ],
++ "Accept-Encoding": [
++ "gzip, deflate"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "User-Agent": [
++ "python-requests/2.28.1"
++ ]
+ },
+ "method": "GET",
+ "uri": "https://httpbin.org/get"
+ },
+ "response": {
+ "body": {
+- "encoding": null,
+- "string": "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\": \"gzip, deflate\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"python-requests/2.8.1\"\n }, \n \"origin\": \"<IPADDR>\", \n \"url\": \"https://httpbin.org/get\"\n}\n"
++ "encoding": "utf-8",
++ "string": "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\": \"gzip, deflate\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"python-requests/2.28.1\", \n \"X-Amzn-Trace-Id\": \"Root=1-644c0ac8-450daa2735c478ca518c5c8d\"\n }, \n \"origin\": \"83.198.52.66\", \n \"url\": \"https://httpbin.org/get\"\n}\n"
+ },
+ "headers": {
+- "Access-Control-Allow-Credentials": "true",
+- "Access-Control-Allow-Origin": "*",
+- "Connection": "keep-alive",
+- "Content-Length": "239",
+- "Content-Type": "application/json",
+- "Date": "Sat, 14 Nov 2015 22:53:18 GMT",
+- "Server": "nginx"
++ "Access-Control-Allow-Credentials": [
++ "true"
++ ],
++ "Access-Control-Allow-Origin": [
++ "*"
++ ],
++ "Connection": [
++ "keep-alive"
++ ],
++ "Content-Length": [
++ "306"
++ ],
++ "Content-Type": [
++ "application/json"
++ ],
++ "Date": [
++ "Fri, 28 Apr 2023 18:04:58 GMT"
++ ],
++ "Server": [
++ "gunicorn/19.9.0"
++ ]
+ },
+ "status": {
+ "code": 200,
+@@ -228,5 +370,5 @@
+ }
+ }
+ ],
+- "recorded_with": "betamax/0.5.1"
++ "recorded_with": "betamax/0.8.2"
+ }
+\ No newline at end of file
+diff --git a/tests/cassettes/simple_get_request.json b/tests/cassettes/simple_get_request.json
+index 68378cd..a97bcf1 100644
+--- a/tests/cassettes/simple_get_request.json
++++ b/tests/cassettes/simple_get_request.json
+@@ -1,7 +1,7 @@
+ {
+ "http_interactions": [
+ {
+- "recorded_at": "2015-11-14T22:33:32",
++ "recorded_at": "2023-04-28T18:04:48",
+ "request": {
+ "body": {
+ "encoding": "utf-8",
+@@ -18,7 +18,7 @@
+ "keep-alive"
+ ],
+ "User-Agent": [
+- "python-requests/2.8.1"
++ "python-requests/2.28.1"
+ ]
+ },
+ "method": "GET",
+@@ -26,8 +26,8 @@
+ },
+ "response": {
+ "body": {
+- "encoding": null,
+- "string": "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\": \"gzip, deflate\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"python-requests/2.8.1\"\n }, \n \"origin\": \"<IPADDR>\", \n \"url\": \"https://httpbin.org/get\"\n}\n"
++ "encoding": "utf-8",
++ "string": "{\n \"args\": {}, \n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\": \"gzip, deflate\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\": \"python-requests/2.28.1\", \n \"X-Amzn-Trace-Id\": \"Root=1-644c0ac0-4986bed42b965a007af785e1\"\n }, \n \"origin\": \"83.198.52.66\", \n \"url\": \"https://httpbin.org/get\"\n}\n"
+ },
+ "headers": {
+ "Access-Control-Allow-Credentials": [
+@@ -40,16 +40,16 @@
+ "keep-alive"
+ ],
+ "Content-Length": [
+- "239"
++ "306"
+ ],
+ "Content-Type": [
+ "application/json"
+ ],
+ "Date": [
+- "Sat, 14 Nov 2015 22:33:30 GMT"
++ "Fri, 28 Apr 2023 18:04:48 GMT"
+ ],
+ "Server": [
+- "nginx"
++ "gunicorn/19.9.0"
+ ]
+ },
+ "status": {
+@@ -60,5 +60,5 @@
+ }
+ }
+ ],
+- "recorded_with": "betamax/0.5.1"
++ "recorded_with": "betamax/0.8.2"
+ }
+\ No newline at end of file
+diff --git a/tox.ini b/tox.ini
+index 64b6ab3..e27c275 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -1,5 +1,5 @@
+ [tox]
+-envlist = py{27,37,38,39,310,311,py,py3},py{27,37}-flake8,noopenssl,docstrings
++envlist = py{27,37,38,39,310,311,py,py3},py{27,37}-flake8,noopenssl,docstrings,urllib3-2.0
+
+ [gh-actions]
+ python =
+@@ -8,12 +8,13 @@ python =
+ 3.8: py38
+ 3.9: py39
+ 3.10: py310
+- 3.11: py311
++ 3.11: py311, urllib3-2.0
+
+ [testenv]
+ pip_pre = False
+ deps =
+ requests{env:REQUESTS_VERSION:>=2.0.1,<3.0.0}
++ urllib3<2.0.0
+ pytest
+ mock;python_version<"3.3"
+ pyopenssl
+@@ -34,6 +35,12 @@ deps =
+ commands =
+ pytest -W error::DeprecationWarning {posargs}
+
++[testenv:urllib3-2.0]
++basepython = python3.11
++commands =
++ pip install -U urllib3>=2.0.0
++ pytest -W error::DeprecationWarning {posargs}
++
+ [testenv:py27-flake8]
+ basepython = python2.7
+ deps =
diff --git a/meta-python/recipes-devtools/python/python3-requests-toolbelt/run-ptest b/meta-python/recipes-devtools/python/python3-requests-toolbelt/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-requests-toolbelt/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-requests-toolbelt/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-requests-toolbelt_0.9.1.bb b/meta-python/recipes-devtools/python/python3-requests-toolbelt_0.9.1.bb
deleted file mode 100644
index 366f41ca81..0000000000
--- a/meta-python/recipes-devtools/python/python3-requests-toolbelt_0.9.1.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-DESCRIPTION = "A utility belt for advanced users of python-requests."
-HOMEPAGE = "https://toolbelt.readthedocs.org"
-AUTHOR = "Ian Cordasco, Cory Benfield"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=71760e0f1dda8cff91b0bc9246caf571"
-
-SRC_URI = "file://run-ptest \
- "
-
-SRC_URI[md5sum] = "b1509735c4b4cf95df2619facbc3672e"
-SRC_URI[sha256sum] = "968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0"
-
-inherit pypi setuptools3 ptest
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-requests (>=2.0.1) \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-betamax \
- ${PYTHON_PN}-mock \
- ${PYTHON_PN}-multiprocessing \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
- cp -rf ${S}/setup.py ${D}${PTEST_PATH}
- # remove test test_multipart_encoder.py as it fails,
- # downloaded file is not supported
- rm -f ${D}${PTEST_PATH}/tests/test_multipart_encoder.py
-}
diff --git a/meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb b/meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb
new file mode 100644
index 0000000000..9cbe4927a2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "A utility belt for advanced users of python-requests."
+HOMEPAGE = "https://toolbelt.readthedocs.org"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6f14302a4b4099009ab38b4dde5f1075"
+
+SRC_URI = "file://run-ptest \
+ file://090856f4159c40a2927fb88546419f2e1697ad5f.patch \
+ file://720240501dca0b4eacc3295665d7ced8719e11d2.patch \
+ "
+
+SRC_URI[sha256sum] = "7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"
+
+inherit pypi setuptools3 ptest
+
+RDEPENDS:${PN} += " \
+ python3-requests (>=2.0.1) \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-betamax \
+ python3-mock \
+ python3-multiprocessing \
+ python3-pytest \
+ python3-trustme \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+ cp -rf ${S}/setup.py ${D}${PTEST_PATH}
+ # remove test test_multipart_encoder.py as it fails,
+ # downloaded file is not supported
+ rm -f ${D}${PTEST_PATH}/tests/test_multipart_encoder.py
+}
diff --git a/meta-python/recipes-devtools/python/python3-responses_0.25.0.bb b/meta-python/recipes-devtools/python/python3-responses_0.25.0.bb
new file mode 100644
index 0000000000..f4b59c7506
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-responses_0.25.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "A utility library for mocking out the requests Python library."
+HOMEPAGE = "https://github.com/getsentry/responses"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0e601511a8517f4daf688a8eb95be7a2"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "01ae6a02b4f34e39bffceb0fc6786b67a25eae919c6368d05eabc8d9576c2a66"
+
+RDEPENDS:${PN} += " \
+ python3-mock \
+ python3-pyyaml \
+ python3-requests \
+ python3-urllib3 \
+"
diff --git a/meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch b/meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch
deleted file mode 100644
index 643d296394..0000000000
--- a/meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 5a2db801c6520be296cee9cba0e0e4ffac68430c Mon Sep 17 00:00:00 2001
-From: Bartosz Golaszewski <brgl@bgdev.pl>
-Date: Wed, 11 May 2022 15:11:19 +0200
-Subject: [PATCH] setup: don't use setuptools-markdown
-
-This project is deprecated and irrelevant for the functionality of
-pyrlp. We don't support it in meta-python so just drop it from the
-dependencies.
-
-Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
----
- setup.py | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 1055fb1..55fca24 100755
---- a/setup.py
-+++ b/setup.py
-@@ -46,13 +46,11 @@ setup(
- # *IMPORTANT*: Don't manually change the version here. See README for more.
- version='3.0.0',
- description="A package for Recursive Length Prefix encoding and decoding",
-- long_description_markdown_filename='README.md',
- author="jnnk",
- author_email='jnnknnj@gmail.com',
- url='https://github.com/ethereum/pyrlp',
- packages=find_packages(exclude=["tests", "tests.*"]),
- include_package_data=True,
-- setup_requires=['setuptools-markdown'],
- install_requires=[
- "eth-utils>=2.0.0,<3",
- ],
---
-2.34.1
-
diff --git a/meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb b/meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb
deleted file mode 100644
index e747ae33ba..0000000000
--- a/meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "A Python implementation of Recursive Length Prefix encoding (RLP)."
-HOMEPAGE = "https://github.com/ethereum/pyrlp"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=00854fa80a84236706b11f47f23e61e7"
-
-SRC_URI[sha256sum] = "63b0465d2948cd9f01de449d7adfb92d207c1aef3982f20310f8009be4a507e8"
-SRC_URI += "file://0001-setup-don-t-use-setuptools-markdown.patch"
-
-inherit pypi setuptools3
-
-DEPENDS += "python3-pip-native"
-
-RDEPENDS:${PN} += "python3-eth-utils"
diff --git a/meta-python/recipes-devtools/python/python3-rlp_4.0.0.bb b/meta-python/recipes-devtools/python/python3-rlp_4.0.0.bb
new file mode 100644
index 0000000000..7df8ac07c5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-rlp_4.0.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "A Python implementation of Recursive Length Prefix encoding (RLP)."
+HOMEPAGE = "https://github.com/ethereum/pyrlp"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=00854fa80a84236706b11f47f23e61e7"
+
+SRC_URI[sha256sum] = "61a5541f86e4684ab145cb849a5929d2ced8222930a570b3941cf4af16b72a78"
+
+inherit pypi setuptools3
+
+DEPENDS += "python3-pip-native"
+
+RDEPENDS:${PN} += " \
+ python3-eth-utils \
+ python3-typing-extensions \
+"
diff --git a/meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.4.3.bb b/meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.4.3.bb
index 4ad5c3601d..0f34a1366d 100644
--- a/meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.4.3.bb
+++ b/meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.4.3.bb
@@ -10,8 +10,6 @@ PYPI_PACKAGE = "robotframework-seriallibrary"
inherit pypi setuptools3
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-pyserial \
- ${PYTHON_PN}-robotframework \
+ python3-pyserial \
+ python3-robotframework \
"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-robotframework_5.0.1.bb b/meta-python/recipes-devtools/python/python3-robotframework_5.0.1.bb
deleted file mode 100644
index 49c97ad102..0000000000
--- a/meta-python/recipes-devtools/python/python3-robotframework_5.0.1.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "A Python generic test automation framework"
-DESCRIPTION = "Generic open source test atomation framework for acceptance\
-testing and acceptance test-driven development (ATDD). It has easy-to-use\
-tabular test data syntax and it utilizes the keyword-driven testing approach.\
-Its testing capabilities can be extended by test libraries implemented either\
-with Python or Java, and users can create new higher-level keywords from\
-existing ones using the same syntax that is used for creating test cases."
-HOMEPAGE = "http://robotframework.org"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE_EXT = "zip"
-
-SRC_URI[sha256sum] = "cf5dc59777ed9d8c3e1e91fb4403454890242867735681f22f4f22dbb2a20fc8"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-xml \
- ${PYTHON_PN}-difflib \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-html \
- ${PYTHON_PN}-docutils \
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-profile \
-"
diff --git a/meta-python/recipes-devtools/python/python3-robotframework_7.0.bb b/meta-python/recipes-devtools/python/python3-robotframework_7.0.bb
new file mode 100644
index 0000000000..beb71e6a18
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-robotframework_7.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "A Python generic test automation framework"
+DESCRIPTION = "Generic open source test atomation framework for acceptance\
+testing and acceptance test-driven development (ATDD). It has easy-to-use\
+tabular test data syntax and it utilizes the keyword-driven testing approach.\
+Its testing capabilities can be extended by test libraries implemented either\
+with Python or Java, and users can create new higher-level keywords from\
+existing ones using the same syntax that is used for creating test cases."
+HOMEPAGE = "http://robotframework.org"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE_EXT = "zip"
+
+SRC_URI[sha256sum] = "04623f758346c917db182e17591ffa474090560c02ed5a64343902e72b7b4bd5"
+
+RDEPENDS:${PN} += " \
+ python3-shell \
+ python3-pprint \
+ python3-xml \
+ python3-difflib \
+ python3-threading \
+ python3-html \
+ python3-docutils \
+ python3-ctypes \
+ python3-logging \
+ python3-numbers \
+ python3-profile \
+"
diff --git a/meta-python/recipes-devtools/python/python3-rsa_4.9.bb b/meta-python/recipes-devtools/python/python3-rsa_4.9.bb
index ed5018f49e..c27cd1d68a 100644
--- a/meta-python/recipes-devtools/python/python3-rsa_4.9.bb
+++ b/meta-python/recipes-devtools/python/python3-rsa_4.9.bb
@@ -1,6 +1,5 @@
SUMMARY = "Pure-Python RSA implementation"
SECTION = "devel/python"
-AUTHOR = "Sybren A. Stuvel"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c403f6882d4f97a9cd927df987d55634"
@@ -27,14 +26,14 @@ ALTERNATIVE_PRIORITY = "30"
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-crypt \
- ${PYTHON_PN}-doctest \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-math \
- ${PYTHON_PN}-multiprocessing \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-pickle \
+ python3-compression \
+ python3-crypt \
+ python3-doctest \
+ python3-logging \
+ python3-math \
+ python3-multiprocessing \
+ python3-netclient \
+ python3-pickle \
"
-RDEPENDS:${PN} += "${PYTHON_PN}-pyasn1"
+RDEPENDS:${PN} += "python3-pyasn1"
diff --git a/meta-python/recipes-devtools/python/python3-schedule_1.2.1.bb b/meta-python/recipes-devtools/python/python3-schedule_1.2.1.bb
new file mode 100644
index 0000000000..6ebde30e61
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-schedule_1.2.1.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Job scheduling for humans"
+HOMEPAGE = "https://github.com/dbader/schedule"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=6400f153491d45ea3459761627ca24b2"
+
+SRC_URI[sha256sum] = "843bc0538b99c93f02b8b50e3e39886c06f2d003b24f48e1aa4cadfa3f341279"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-datetime python3-logging python3-math"
diff --git a/meta-python/recipes-devtools/python/python3-schedutils_0.6.bb b/meta-python/recipes-devtools/python/python3-schedutils_0.6.bb
new file mode 100644
index 0000000000..50868b9c40
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-schedutils_0.6.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Python interface for the Linux scheduler functions etc."
+HOMEPAGE = "https://git.kernel.org/pub/scm/libs/python/python-schedutils/python-schedutils.git/"
+SECTION = "devel/python"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+SRC_URI = "git://git.kernel.org/pub/scm/libs/python/python-schedutils/python-schedutils.git;branch=main"
+SRCREV = "46469f425f9844f355f6496785ee1ce993b58747"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-scikit-build_0.17.6.bb b/meta-python/recipes-devtools/python/python3-scikit-build_0.17.6.bb
new file mode 100644
index 0000000000..dde0941ef1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-scikit-build_0.17.6.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Improved build system generator for Python C/C++/Fortran/Cython extensions"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7c96d2b08b3cec6d3c67fb864d1fd8cc"
+
+DEPENDS = "python3-hatch-vcs-native python3-hatch-fancy-pypi-readme-native"
+
+PYPI_PACKAGE = "scikit_build"
+
+inherit pypi python_hatchling
+
+SRC_URI[sha256sum] = "b51a51a36b37c42650994b5047912f59b22e3210b23e321f287611f9ef6e5c9d"
+
+RDEPENDS:${PN} = " \
+ python3-distro \
+ python3-packaging \
+ python3-setuptools \
+ python3-typing-extensions \
+ python3-wheel \
+ cmake \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-screeninfo_0.8.1.bb b/meta-python/recipes-devtools/python/python3-screeninfo_0.8.1.bb
new file mode 100644
index 0000000000..19ac3f67f0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-screeninfo_0.8.1.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Fetch location and size of physical screens."
+HOMEPAGE = "https://github.com/rr-/screeninfo"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=a23813181e06852d377bc25ae5563a97"
+
+PYPI_PACKAGE = "screeninfo"
+
+SRC_URI[sha256sum] = "9983076bcc7e34402a1a9e4d7dabf3729411fd2abb3f3b4be7eba73519cd2ed1"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-profile \
+"
diff --git a/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch b/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch
index d535e43261..3678d46cf6 100644
--- a/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch
+++ b/meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch
@@ -1,4 +1,4 @@
-From d8db473ce9346cd6254c90e13ac45b3bbde494c4 Mon Sep 17 00:00:00 2001
+From 47ede0950740e8919c28774840e77f223d5f3124 Mon Sep 17 00:00:00 2001
From: Derek Straka <derek@asterius.io>
Date: Sun, 11 Mar 2018 19:55:38 -0400
Subject: [PATCH] py-scrypt: remove the hard coded include paths
@@ -11,16 +11,14 @@ Signed-off-by: Derek Straka <derek@asterius.io>
1 file changed, 1 deletion(-)
diff --git a/setup.py b/setup.py
-index e36adc4..2ebfbf1 100644
+index 419a982..3f1fe52 100644
--- a/setup.py
+++ b/setup.py
-@@ -24,7 +24,6 @@ if sys.platform.startswith('linux'):
- ('HAVE_SYS_SYSINFO_H', '1'),
- ('_FILE_OFFSET_BITS', '64')]
+@@ -26,7 +26,6 @@ if sys.platform.startswith('linux'):
+ ('_FILE_OFFSET_BITS', '64'),
+ ]
libraries = ['crypto', 'rt']
- includes = ['/usr/local/include', '/usr/include']
CFLAGS.append('-O2')
- elif sys.platform.startswith('win32'):
- define_macros = [('inline', '__inline')]
---
-2.7.4
+ elif sys.platform.startswith('win32') and os.environ.get('MSYSTEM'):
+ msys2_env = os.getenv('MSYSTEM')
diff --git a/meta-python/recipes-devtools/python/python3-scrypt/run-ptest b/meta-python/recipes-devtools/python/python3-scrypt/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-scrypt/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-scrypt/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb b/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb
deleted file mode 100644
index c386932683..0000000000
--- a/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "Bindings for the scrypt key derivation function library"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=05b5ac2824a7ae7489193b0f6a6f2cd1"
-HOMEPAGE="https://github.com/holgern/py-scrypt"
-
-SRC_URI += "file://0001-py-scrypt-remove-the-hard-coded-include-paths.patch"
-
-SRC_URI[sha256sum] = "0d226c1c6744fb2e308b391410669b1df5cfe82637ffcb5ed489bf82b2d2eb78"
-
-inherit pypi ptest setuptools3 dos2unix
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-ctypes \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/scrypt/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-python/recipes-devtools/python/python3-scrypt_0.8.24.bb b/meta-python/recipes-devtools/python/python3-scrypt_0.8.24.bb
new file mode 100644
index 0000000000..94c83e4952
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-scrypt_0.8.24.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "Bindings for the scrypt key derivation function library"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=05b5ac2824a7ae7489193b0f6a6f2cd1"
+HOMEPAGE="https://github.com/holgern/py-scrypt"
+
+SRC_URI += "file://0001-py-scrypt-remove-the-hard-coded-include-paths.patch"
+
+SRC_URI[sha256sum] = "98ffde45e4a95461d73ded54ba7a26857679920d4f8ff320f6f7ade6e29531bd"
+
+inherit pypi ptest setuptools3 dos2unix
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/scrypt/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-sdbus_0.11.1.bb b/meta-python/recipes-devtools/python/python3-sdbus_0.11.1.bb
new file mode 100644
index 0000000000..26bc71762e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sdbus_0.11.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Modern Python library for the systemd D-Bus"
+HOMEPAGE = "https://python-sdbus.readthedocs.io/en/latest/"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e77986dc8e2ee22d44a7c863e96852ae"
+
+SRC_URI[sha256sum] = "adb97718ce996bb308520682c50b1a13e606d65a6edb1c1967a15d2e570cb3b7"
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+DEPENDS += "systemd"
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-numbers \
+ python3-core \
+"
+
+inherit pypi setuptools3 features_check pkgconfig
diff --git a/meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb b/meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb
index dc1961ac30..ebf000135a 100644
--- a/meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb
+++ b/meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb
@@ -17,3 +17,5 @@ SRC_URI[sha256sum] = "73977fc746b36cc41184dd43c3fe81323e7b8b06c2bb0826c4f59a20c5
SRC_URI += "file://0001-setup.py-switch-to-setuptools.patch"
inherit setuptools3 pypi
+
+RDEPENDS:${PN} += "python3-io"
diff --git a/meta-python/recipes-devtools/python/python3-semver/run-ptest b/meta-python/recipes-devtools/python/python3-semver/run-ptest
index 43c03b594b..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-semver/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-semver/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO test_semver.py --disable-warnings| sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-semver_2.13.0.bb b/meta-python/recipes-devtools/python/python3-semver_2.13.0.bb
deleted file mode 100644
index b47bcae008..0000000000
--- a/meta-python/recipes-devtools/python/python3-semver_2.13.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "Python module for Semantic Versioning"
-HOMEPAGE = "https://github.com/k-bx/python-semver"
-BUGTRACKER = "https://github.com/k-bx/python-semver/issues"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
-
-SRC_URI[md5sum] = "e98b5fb283ea84daa5195087de83ebf1"
-SRC_URI[sha256sum] = "fa0fe2722ee1c3f57eac478820c3a5ae2f624af8264cbdf9000c980ff7f75e3f"
-
-inherit pypi setuptools3 ptest
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- cp -f ${S}/test_semver.py ${D}${PTEST_PATH}/
-}
diff --git a/meta-python/recipes-devtools/python/python3-semver_3.0.2.bb b/meta-python/recipes-devtools/python/python3-semver_3.0.2.bb
new file mode 100644
index 0000000000..25222bb5ff
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-semver_3.0.2.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Python module for Semantic Versioning"
+HOMEPAGE = "https://github.com/python-semver/python-semver"
+BUGTRACKER = "https://github.com/python-semver/python-semver"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d9da679db3bdce30a1b4328d5c474f98"
+
+SRC_URI[sha256sum] = "6253adb39c70f6e51afed2fa7152bcd414c411286088fb4b9effb133885ab4cc"
+
+inherit pypi python_setuptools_build_meta ptest
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+DEPENDS += " python3-setuptools-scm-native"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ cp -rf ${S}/tests ${D}${PTEST_PATH}/
+}
diff --git a/meta-python/recipes-devtools/python/python3-sentry-sdk_1.44.0.bb b/meta-python/recipes-devtools/python/python3-sentry-sdk_1.44.0.bb
new file mode 100644
index 0000000000..1b371ef01a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sentry-sdk_1.44.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "The new Python SDK for Sentry.io"
+DESCRIPTION = "This is the next line of the Python SDK \
+for Sentry, intended to replace the raven package on PyPI."
+HOMEPAGE = "https://github.com/getsentry/sentry-python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=03dc788d9a9486be5e6a1d99c2c1ce3a"
+
+RDEPENDS:${PN} += "\
+ python3-urllib3 \
+ python3-core \
+ python3-json \
+ python3-logging \
+ python3-threading \
+ python3-compression \
+ python3-datetime \
+"
+
+SRC_URI[sha256sum] = "f7125a9235795811962d52ff796dc032cd1d0dd98b59beaced8380371cd9c13c"
+
+PYPI_PACKAGE = "sentry-sdk"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.12.bb b/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.12.bb
deleted file mode 100644
index 36e48f97a2..0000000000
--- a/meta-python/recipes-devtools/python/python3-sentry-sdk_1.5.12.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "The new Python SDK for Sentry.io"
-DESCRIPTION = "This is the next line of the Python SDK \
-for Sentry, intended to replace the raven package on PyPI."
-HOMEPAGE = "https://github.com/getsentry/sentry-python"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0c79f8d3c91fc847350efd28bfe0a341"
-
-RDEPENDS:${PN} += "python3-urllib3"
-
-SRC_URI[sha256sum] = "259535ba66933eacf85ab46524188c84dcb4c39f40348455ce15e2c0aca68863"
-
-PYPI_PACKAGE = "sentry-sdk"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-serpent/run-ptest b/meta-python/recipes-devtools/python/python3-serpent/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-serpent/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-serpent/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-serpent_1.41.bb b/meta-python/recipes-devtools/python/python3-serpent_1.41.bb
index 480e3ab388..941b5ee0f3 100644
--- a/meta-python/recipes-devtools/python/python3-serpent_1.41.bb
+++ b/meta-python/recipes-devtools/python/python3-serpent_1.41.bb
@@ -11,8 +11,9 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-pytz \
+ python3-pytest \
+ python3-pytz \
+ python3-unittest-automake-output \
"
do_install_ptest() {
@@ -21,6 +22,6 @@ do_install_ptest() {
}
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
-"
+ python3-netclient \
+ python3-numbers \
+"
diff --git a/meta-python/recipes-devtools/python/python3-service-identity/run-ptest b/meta-python/recipes-devtools/python/python3-service-identity/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-service-identity/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-service-identity_21.1.0.bb b/meta-python/recipes-devtools/python/python3-service-identity_21.1.0.bb
new file mode 100644
index 0000000000..006fae290d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-service-identity_21.1.0.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "The tools for verifying whether a certificate is valid for the intended purposes."
+HOMEPAGE = "https://pypi.org/project/service-identity"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8a0f079f4e6a215d6bd6f9d97cab4d5f"
+
+SRC_URI[md5sum] = "5e5c195d8fcedc72f9068be2ad9b5a13"
+SRC_URI[sha256sum] = "6e6c6086ca271dc11b033d17c3a8bea9f24ebff920c587da090afc9519419d34"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+ python3-attr \
+ python3-cryptography \
+ python3-pyasn1-modules \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+ python3-pyopenssl \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+ cp -rf ${S}/setup.py ${D}${PTEST_PATH}
+}
diff --git a/meta-python/recipes-devtools/python/python3-setuptools-scm-git-archive_1.1.bb b/meta-python/recipes-devtools/python/python3-setuptools-scm-git-archive_1.1.bb
deleted file mode 100644
index 472c4eb1c8..0000000000
--- a/meta-python/recipes-devtools/python/python3-setuptools-scm-git-archive_1.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "setuptools_scm plugin for git archives"
-HOMEPAGE = "https://pypi.org/project/setuptools-scm-git-archive/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=838c366f69b72c5df05c96dff79b35f2"
-
-SRC_URI[sha256sum] = "6026f61089b73fa1b5ee737e95314f41cb512609b393530385ed281d0b46c062"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "setuptools_scm_git_archive"
-PYPI_SRC_URI = "https://files.pythonhosted.org/packages/7e/2c/0c15b29a1b5940250bfdc4a4f53272e35cd7cf8a34159291b6b4ec9eb291/${PYPI_ARCHIVE_NAME}"
-
-DEPENDS += "python3-setuptools-scm-native"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-sh_1.14.3.bb b/meta-python/recipes-devtools/python/python3-sh_1.14.3.bb
deleted file mode 100644
index 317f648dcd..0000000000
--- a/meta-python/recipes-devtools/python/python3-sh_1.14.3.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Python subprocess replacement"
-HOMEPAGE = "https://github.com/amoffat/sh"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5317094292296f03405f59ae5f6544b6"
-
-SRC_URI[sha256sum] = "e4045b6c732d9ce75d571c79f5ac2234edd9ae4f5fa9d59b09705082bdca18c7"
-
-PYPI_PACKAGE = "sh"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-resource \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-terminal \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-unixadmin \
- ${PYTHON_PN}-fcntl \
-"
diff --git a/meta-python/recipes-devtools/python/python3-sh_2.0.6.bb b/meta-python/recipes-devtools/python/python3-sh_2.0.6.bb
new file mode 100644
index 0000000000..cbe000e31c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sh_2.0.6.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Python subprocess replacement"
+HOMEPAGE = "https://github.com/amoffat/sh"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5317094292296f03405f59ae5f6544b6"
+
+SRC_URI[sha256sum] = "9b2998f313f201c777e2c0061f0b1367497097ef13388595be147e2a00bf7ba1"
+
+PYPI_PACKAGE = "sh"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-codecs \
+ python3-compression \
+ python3-core \
+ python3-io \
+ python3-logging \
+ python3-resource \
+ python3-shell \
+ python3-terminal \
+ python3-threading \
+ python3-unixadmin \
+ python3-fcntl \
+"
diff --git a/meta-python/recipes-devtools/python/python3-shellingham_1.5.4.bb b/meta-python/recipes-devtools/python/python3-shellingham_1.5.4.bb
new file mode 100644
index 0000000000..e519e8e229
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-shellingham_1.5.4.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Tool to Detect Surrounding Shell"
+SECTION = "devel/python"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=78e1c0248051c32a38a7f820c30bd7a5"
+
+SRC_URI[sha256sum] = "8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-simpleeval/no-build.patch b/meta-python/recipes-devtools/python/python3-simpleeval/no-build.patch
deleted file mode 100644
index b090755f8a..0000000000
--- a/meta-python/recipes-devtools/python/python3-simpleeval/no-build.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Upstream-Status: Submitted [https://github.com/danthedeckie/simpleeval/pull/119]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From 08bc99211aec32882d5f1c83896eb5d72b9fb125 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Mon, 23 May 2022 11:35:00 +0100
-Subject: [PATCH] pyproject.toml: remove build as a build-dependency
-
-pypa/build is one possible build tool, but not the only build tool. Forcing build to be present as a build dependency is meaningless: either the user is using build so obviously have build, or are using something else so having build is irrelevant.
----
- pyproject.toml | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pyproject.toml b/pyproject.toml
-index 052a55a..416482b 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -1,5 +1,5 @@
- [build-system]
--requires = ["setuptools>=30.3.0", "wheel", "build"]
-+requires = ["setuptools>=30.3.0", "wheel"]
- build-backend = "setuptools.build_meta"
-
- [tool.black]
diff --git a/meta-python/recipes-devtools/python/python3-simpleeval/run-ptest b/meta-python/recipes-devtools/python/python3-simpleeval/run-ptest
index 3385d68939..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-simpleeval/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-simpleeval/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb b/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb
deleted file mode 100644
index c9cf33d023..0000000000
--- a/meta-python/recipes-devtools/python/python3-simpleeval_0.9.12.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "A simple, safe single expression evaluator library"
-HOMEPAGE = "https://pypi.org/project/simpleeval/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=dc9277482effe59b734b004cbcc1fee7"
-
-SRC_URI[sha256sum] = "3e0be507486d4e21cf9d08847c7e57dd61a1603950399985f7c5a0be7fd33e36"
-
-inherit pypi python_setuptools_build_meta ptest
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
- file://no-build.patch \
- file://run-ptest \
-"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-math \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- cp -f ${S}/test_simpleeval.py ${D}${PTEST_PATH}/
-}
diff --git a/meta-python/recipes-devtools/python/python3-simpleeval_0.9.13.bb b/meta-python/recipes-devtools/python/python3-simpleeval_0.9.13.bb
new file mode 100644
index 0000000000..af2c4a1e2e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-simpleeval_0.9.13.bb
@@ -0,0 +1,25 @@
+SUMMARY = "A simple, safe single expression evaluator library"
+HOMEPAGE = "https://pypi.org/project/simpleeval/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=dc9277482effe59b734b004cbcc1fee7"
+
+SRC_URI[sha256sum] = "4a30f9cc01825fe4c719c785e3762623e350c4840d5e6855c2a8496baaa65fac"
+
+inherit pypi python_setuptools_build_meta ptest
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += "file://run-ptest"
+
+RDEPENDS:${PN} += " \
+ python3-math \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ cp -f ${S}/test_simpleeval.py ${D}${PTEST_PATH}/
+}
diff --git a/meta-python/recipes-devtools/python/python3-simplejson_3.17.6.bb b/meta-python/recipes-devtools/python/python3-simplejson_3.17.6.bb
deleted file mode 100644
index b836f97fe0..0000000000
--- a/meta-python/recipes-devtools/python/python3-simplejson_3.17.6.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Simple, fast, extensible JSON encoder/decoder for Python"
-HOMEPAGE = "http://cheeseshop.python.org/pypi/simplejson"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c6338d7abd321c0b50a2a547e441c52e"
-
-SRC_URI[sha256sum] = "cf98038d2abf63a1ada5730e91e84c642ba6c225b0198c3684151b1f80c5f8a6"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-numbers \
-"
-
-PACKAGES =+ "${PN}-tests"
-RDEPENDS:${PN}-tests = "${PN} ${PYTHON_PN}-unittest"
-FILES:${PN}-tests+= " \
- ${PYTHON_SITEPACKAGES_DIR}/simplejson/tests \
- ${PYTHON_SITEPACKAGES_DIR}/simplejson/tool.py* \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-simplejson_3.19.2.bb b/meta-python/recipes-devtools/python/python3-simplejson_3.19.2.bb
new file mode 100644
index 0000000000..cc5b1bc90a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-simplejson_3.19.2.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Simple, fast, extensible JSON encoder/decoder for Python"
+HOMEPAGE = "http://cheeseshop.python.org/pypi/simplejson"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c6338d7abd321c0b50a2a547e441c52e"
+
+SRC_URI[sha256sum] = "9eb442a2442ce417801c912df68e1f6ccfcd41577ae7274953ab3ad24ef7d82c"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-io \
+ python3-netserver \
+ python3-numbers \
+"
+
+PACKAGES =+ "${PN}-tests"
+RDEPENDS:${PN}-tests = "${PN} python3-unittest"
+FILES:${PN}-tests+= " \
+ ${PYTHON_SITEPACKAGES_DIR}/simplejson/tests \
+ ${PYTHON_SITEPACKAGES_DIR}/simplejson/tool.py* \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch b/meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch
index b0e9d2215f..7080047b79 100644
--- a/meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch
+++ b/meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch
@@ -9,6 +9,8 @@ the collections module in Python 3.10.
https://docs.python.org/3.10/whatsnew/changelog.html#python-3-10-0-alpha-5
https://bugs.python.org/issue37324
---
+Upstream-Status: Pending
+
slip/dbus/polkit.py | 6 +++---
slip/util/hookable.py | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb b/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
index ae4e6f72da..b6680568b4 100644
--- a/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
+++ b/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
@@ -27,11 +27,10 @@ do_compile:prepend() {
}
RDEPENDS:${PN} += "\
- ${PYTHON_PN}-six \
+ python3-six \
"
# http://errors.yoctoproject.org/Errors/Details/184713/
# python-native/python: can't open file 'setup.py': [Errno 2] No such file or directory
CLEANBROKEN = "1"
inherit setuptools3
-PIP_INSTALL_PACKAGE = "slip"
diff --git a/meta-python/recipes-devtools/python/python3-smbus2_0.4.2.bb b/meta-python/recipes-devtools/python/python3-smbus2_0.4.2.bb
deleted file mode 100644
index f22a402df1..0000000000
--- a/meta-python/recipes-devtools/python/python3-smbus2_0.4.2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Drop-in replacement for smbus-cffi/smbus-python in pure Python"
-DESCRIPTION = "smbus2 is a drop-in replacement for smbus-cffi/smbus-python in pure Python"
-HOMEPAGE = "https://github.com/kplindegaard/smbus2"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "634541ed794068a822fe7499f1577468b9d4641b68dd9bfb6d0eb7270f4d2a32"
-
-CLEANBROKEN = "1"
-
-PYPI_PACKAGE = "smbus2"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-fcntl \
-"
diff --git a/meta-python/recipes-devtools/python/python3-smbus2_0.4.3.bb b/meta-python/recipes-devtools/python/python3-smbus2_0.4.3.bb
new file mode 100644
index 0000000000..b54cdb005f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-smbus2_0.4.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Drop-in replacement for smbus-cffi/smbus-python in pure Python"
+DESCRIPTION = "smbus2 is a drop-in replacement for smbus-cffi/smbus-python in pure Python"
+HOMEPAGE = "https://github.com/kplindegaard/smbus2"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "36f2288a8e1a363cb7a7b2244ec98d880eb5a728a2494ac9c71e9de7bf6a803a"
+
+CLEANBROKEN = "1"
+
+PYPI_PACKAGE = "smbus2"
+
+RDEPENDS:${PN} += "\
+ python3-ctypes \
+ python3-fcntl \
+"
diff --git a/meta-python/recipes-devtools/python/python3-smpplib/run-ptest b/meta-python/recipes-devtools/python/python3-smpplib/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-smpplib/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-smpplib/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-smpplib_2.2.1.bb b/meta-python/recipes-devtools/python/python3-smpplib_2.2.1.bb
deleted file mode 100644
index be0bafd33f..0000000000
--- a/meta-python/recipes-devtools/python/python3-smpplib_2.2.1.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "SMPP library for python"
-SECTION = "devel/python"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://README.md;md5=8b4e2ac8cf248f7b991784f88b630852"
-
-PYPI_PACKAGE = "smpplib"
-SRC_URI[sha256sum] = "c0b01947b47e404f42ccb59e906b6e4eb507963c971d59b44350db0f29c76166"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-six \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-unittest \
- ${PYTHON_PN}-profile \
- ${PYTHON_PN}-mock \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/smpplib/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-python/recipes-devtools/python/python3-smpplib_2.2.3.bb b/meta-python/recipes-devtools/python/python3-smpplib_2.2.3.bb
new file mode 100644
index 0000000000..7979f04c5b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-smpplib_2.2.3.bb
@@ -0,0 +1,31 @@
+SUMMARY = "SMPP library for python"
+SECTION = "devel/python"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://README.md;md5=8b4e2ac8cf248f7b991784f88b630852"
+
+PYPI_PACKAGE = "smpplib"
+SRC_URI[sha256sum] = "5215a95b0538d26f189600e0982b31da8281f7453cd6e2862c5b21e3e1002331"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+ python3-logging \
+ python3-six \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-mock \
+ python3-profile \
+ python3-pytest \
+ python3-unittest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/smpplib/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-snagboot_1.2.bb b/meta-python/recipes-devtools/python/python3-snagboot_1.2.bb
new file mode 100644
index 0000000000..57a3280de4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-snagboot_1.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Snagboot intends to be an open-source replacement vendor-specific tools used to recover and/or reflash embedded platforms."
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI[sha256sum] = "3d5cdd5ffe7355deba27657e6f45d45538a398f92215d219a8cfd6e716f67c34"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += " \
+ bash \
+ python3-fcntl \
+ python3-pyusb \
+ python3-pyyaml \
+ python3-setuptools \
+ python3-six \
+"
+
+do_install:append() {
+ install -D -m 0644 ${S}/src/snagrecover/50-snagboot.rules ${D}${sysconfdir}/udev/rules.d/50-snagboot.rules
+}
diff --git a/meta-python/recipes-devtools/python/python3-snappy_0.6.1.bb b/meta-python/recipes-devtools/python/python3-snappy_0.6.1.bb
index 8a30f7cb78..bd0979d0b4 100644
--- a/meta-python/recipes-devtools/python/python3-snappy_0.6.1.bb
+++ b/meta-python/recipes-devtools/python/python3-snappy_0.6.1.bb
@@ -11,5 +11,3 @@ inherit pypi setuptools3
PYPI_PACKAGE = "python-snappy"
RDEPENDS:${PN} += "snappy"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-sniffio_1.3.0.bb b/meta-python/recipes-devtools/python/python3-sniffio_1.3.0.bb
new file mode 100644
index 0000000000..448ac34f54
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sniffio_1.3.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Sniff out which async library your code is running under"
+SECTION = "devel/python"
+LICENSE = "MIT | Apache-2.0"
+LIC_FILES_CHKSUM = "\
+ file://LICENSE;md5=fa7b86389e58dd4087a8d2b833e5fe96 \
+ file://LICENSE.MIT;md5=e62ba5042d5983462ad229f5aec1576c \
+ file://LICENSE.APACHE2;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"
diff --git a/meta-python/recipes-devtools/python/python3-socketio_5.11.2.bb b/meta-python/recipes-devtools/python/python3-socketio_5.11.2.bb
new file mode 100644
index 0000000000..4251a81d6c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-socketio_5.11.2.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Socket.IO server"
+HOMEPAGE = "https://github.com/miguelgrinberg/python-socketio/"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=42d0a9e728978f0eeb759c3be91536b8"
+
+inherit pypi python_setuptools_build_meta
+
+PYPI_PACKAGE = "python-socketio"
+
+SRC_URI[sha256sum] = "ae6a1de5c5209ca859dc574dccc8931c4be17ee003e74ce3b8d1306162bb4a37"
+
+PACKAGECONFIG ?= "asyncio_client client"
+PACKAGECONFIG[asyncio_client] = ",,,python3-aiohttp python3-websockets"
+PACKAGECONFIG[client] = ",,,python3-requests python3-websocket-client"
+
+RDEPENDS:${PN} += "\
+ python3-engineio \
+ python3-logging \
+ python3-math \
+ python3-pickle \
+ python3-json \
+ python3-threading \
+ python3-six \
+ python3-attrs \
+ python3-bidict \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-socketio_5.7.1.bb b/meta-python/recipes-devtools/python/python3-socketio_5.7.1.bb
deleted file mode 100644
index f71d4dad64..0000000000
--- a/meta-python/recipes-devtools/python/python3-socketio_5.7.1.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Socket.IO server"
-HOMEPAGE = "https://github.com/miguelgrinberg/python-socketio/"
-SECTION = "devel/python"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=42d0a9e728978f0eeb759c3be91536b8"
-
-inherit pypi python_setuptools_build_meta
-
-PYPI_PACKAGE = "python-socketio"
-
-SRC_URI[sha256sum] = "5011a0cd2545c954d7df09eef7489ec424c93b001cc146599cd72f1dd20f0d46"
-
-PACKAGECONFIG ?= "asyncio_client client"
-PACKAGECONFIG[asyncio_client] = ",,,${PYTHON_PN}-aiohttp ${PYTHON_PN}-websockets"
-PACKAGECONFIG[client] = ",,,${PYTHON_PN}-requests ${PYTHON_PN}-websocket-client"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-engineio \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-math \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-attrs \
- ${PYTHON_PN}-bidict \
- "
diff --git a/meta-python/recipes-devtools/python/python3-socksio/0001-Unpin-flit-core-dependency.patch b/meta-python/recipes-devtools/python/python3-socksio/0001-Unpin-flit-core-dependency.patch
new file mode 100644
index 0000000000..75be61fc4f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-socksio/0001-Unpin-flit-core-dependency.patch
@@ -0,0 +1,21 @@
+From 5c50fd76e7459bb822ff8f712172a78e21b8dd04 Mon Sep 17 00:00:00 2001
+From: Theodore Ni <3806110+tjni@users.noreply.github.com>
+Date: Sun, 13 Aug 2023 09:21:49 -0700
+Subject: [PATCH] Unpin flit-core dependency
+
+Upstream-Status: Submitted [https://github.com/sethmlarson/socksio/pull/61]
+---
+ pyproject.toml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 2d6c5a3..60c63ea 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,5 +1,5 @@
+ [build-system]
+-requires = ["flit_core >=2,<3"]
++requires = ["flit_core >=2"]
+ build-backend = "flit_core.buildapi"
+
+ [tool.flit.metadata]
diff --git a/meta-python/recipes-devtools/python/python3-socksio_1.0.0.bb b/meta-python/recipes-devtools/python/python3-socksio_1.0.0.bb
new file mode 100644
index 0000000000..4353a52ee1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-socksio_1.0.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Sans-I/O implementation of SOCKS4, SOCKS4A, and SOCKS5."
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0b4dda8edb09eec767aaded3cbf8f6b1"
+
+inherit pypi python_flit_core
+
+SRC_URI += "file://0001-Unpin-flit-core-dependency.patch"
+
+SRC_URI[sha256sum] = "f88beb3da5b5c38b9890469de67d0cb0f9d494b78b106ca1845f96c10b91c4ac"
diff --git a/meta-python/recipes-devtools/python/python3-soupsieve/run-ptest b/meta-python/recipes-devtools/python/python3-soupsieve/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-soupsieve/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-soupsieve/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-soupsieve_2.3.2.post1.bb b/meta-python/recipes-devtools/python/python3-soupsieve_2.3.2.post1.bb
deleted file mode 100644
index 99b6f7c04b..0000000000
--- a/meta-python/recipes-devtools/python/python3-soupsieve_2.3.2.post1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "CSS selector library for python-beautifulsoup4"
-HOMEPAGE = "https://github.com/facelessuser/soupsieve"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c7a2acf04248c0d02dac4c82ee8a7f56"
-
-SRC_URI[sha256sum] = "fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"
-
-inherit pypi python_hatchling python_setuptools_build_meta ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-beautifulsoup4 \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-beautifulsoup4 \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-soupsieve_2.5.bb b/meta-python/recipes-devtools/python/python3-soupsieve_2.5.bb
new file mode 100644
index 0000000000..d26a13dfbd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-soupsieve_2.5.bb
@@ -0,0 +1,26 @@
+SUMMARY = "CSS selector library for python-beautifulsoup4"
+HOMEPAGE = "https://github.com/facelessuser/soupsieve"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=520586fa71ed2cbda50b4a8c89621e09"
+
+SRC_URI[sha256sum] = "5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"
+
+inherit pypi python_hatchling python_setuptools_build_meta ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-beautifulsoup4 \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-spidev_3.5.bb b/meta-python/recipes-devtools/python/python3-spidev_3.5.bb
deleted file mode 100644
index ca5a1eb523..0000000000
--- a/meta-python/recipes-devtools/python/python3-spidev_3.5.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Python bindings for Linux SPI access through spidev"
-DESCRIPTION = "This project contains a python module for interfacing with SPI\
-devices from user space via the spidev linux kernel driver.\
-This is a modified version of the code originally found\
-[here](http://elk.informatik.fh-augsburg.de/da/da-49/trees/pyap7k/lang/py-spi)\
-All code is GPLv2 licensed unless explicitly stated otherwise."
-HOMEPAGE = "http://github.com/doceme/py-spidev"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-SRCNAME = "spidev"
-
-SRC_URI[md5sum] = "7007e4fff2750025e233d8dfe46be670"
-SRC_URI[sha256sum] = "8a7f5c289f161ea2ac4697fa8a10918232c990678dd0053084b3c43b1363910d"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-spidev_3.6.bb b/meta-python/recipes-devtools/python/python3-spidev_3.6.bb
new file mode 100644
index 0000000000..e3fdc435ac
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-spidev_3.6.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Python bindings for Linux SPI access through spidev"
+DESCRIPTION = "This project contains a python module for interfacing with SPI\
+devices from user space via the spidev linux kernel driver.\
+This is a modified version of the code originally found\
+[here](http://elk.informatik.fh-augsburg.de/da/da-49/trees/pyap7k/lang/py-spi)\
+All code is GPLv2 licensed unless explicitly stated otherwise."
+HOMEPAGE = "http://github.com/doceme/py-spidev"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+SRCNAME = "spidev"
+
+SRC_URI[sha256sum] = "14dbc37594a4aaef85403ab617985d3c3ef464d62bc9b769ef552db53701115b"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.41.bb b/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.41.bb
deleted file mode 100644
index 5b93458792..0000000000
--- a/meta-python/recipes-devtools/python/python3-sqlalchemy_1.4.41.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \
-application developers the full power and flexibility of SQL"
-HOMEPAGE = "http://www.sqlalchemy.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f4001d1ca15b69d096fa1b4fd1bdce79"
-
-SRC_URI[sha256sum] = "0292f70d1797e3c54e862e6f30ae474014648bc9c723e14a2fda730adb0a9791"
-
-PYPI_PACKAGE = "SQLAlchemy"
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-compression \
- ${PYTHON_PN}-profile \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.29.bb b/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.29.bb
new file mode 100644
index 0000000000..e646bd0d9c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.29.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Python SQL toolkit and Object Relational Mapper that gives \
+application developers the full power and flexibility of SQL"
+HOMEPAGE = "http://www.sqlalchemy.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c78b979ae6c20775a28a287d32092cbb"
+
+SRC_URI[sha256sum] = "bd9566b8e58cabd700bc367b60e90d9349cd16f0984973f98a9a09f9c64e86f0"
+
+PYPI_PACKAGE = "SQLAlchemy"
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-compression \
+ python3-json \
+ python3-logging \
+ python3-netclient \
+ python3-numbers \
+ python3-pickle \
+ python3-profile \
+ python3-threading \
+ python3-typing-extensions \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-sqlparse/0001-sqlparse-change-shebang-to-python3.patch b/meta-python/recipes-devtools/python/python3-sqlparse/0001-sqlparse-change-shebang-to-python3.patch
index 94121340d5..0c9f29a6b8 100644
--- a/meta-python/recipes-devtools/python/python3-sqlparse/0001-sqlparse-change-shebang-to-python3.patch
+++ b/meta-python/recipes-devtools/python/python3-sqlparse/0001-sqlparse-change-shebang-to-python3.patch
@@ -1,4 +1,4 @@
-From 7fd00ab8c1b663052d57e735b6b956d5c92fbaed Mon Sep 17 00:00:00 2001
+From f236a30dc8528b6f114201580f1efdcc1c447d43 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Mon, 9 Mar 2020 13:10:37 +0800
Subject: [PATCH] sqlparse: change shebang to python3
@@ -12,80 +12,10 @@ dropped.
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
- 0001-sqlparse-change-shebang-to-python3.patch | 51 +++++++++++++++++++
- setup.py | 2 +-
- sqlparse/__main__.py | 2 +-
- sqlparse/cli.py | 2 +-
- 4 files changed, 54 insertions(+), 3 deletions(-)
- create mode 100644 0001-sqlparse-change-shebang-to-python3.patch
+ sqlparse/__main__.py | 2 +-
+ sqlparse/cli.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
-diff --git a/0001-sqlparse-change-shebang-to-python3.patch b/0001-sqlparse-change-shebang-to-python3.patch
-new file mode 100644
-index 0000000..ad6c50f
---- /dev/null
-+++ b/0001-sqlparse-change-shebang-to-python3.patch
-@@ -0,0 +1,51 @@
-+From 10c9d3341d64d697f678a64ae707f6bda21565bb Mon Sep 17 00:00:00 2001
-+From: Changqing Li <changqing.li@windriver.com>
-+Date: Mon, 9 Mar 2020 13:10:37 +0800
-+Subject: [PATCH] sqlparse: change shebang to python3
-+
-+Upstream-Status: Pending
-+
-+Don't send upstream since upstream still support python2,
-+we can only make this change after python2 is offcially
-+dropped.
-+
-+Signed-off-by: Changqing Li <changqing.li@windriver.com>
-+---
-+ setup.py | 2 +-
-+ sqlparse/__main__.py | 2 +-
-+ sqlparse/cli.py | 2 +-
-+ 3 files changed, 3 insertions(+), 3 deletions(-)
-+
-+diff --git a/setup.py b/setup.py
-+index 345d0ce..ce3abc3 100644
-+--- a/setup.py
-++++ b/setup.py
-+@@ -1,4 +1,4 @@
-+-#!/usr/bin/env python
-++#!/usr/bin/env python3
-+ # -*- coding: utf-8 -*-
-+ #
-+ # Copyright (C) 2009-2018 the sqlparse authors and contributors
-+diff --git a/sqlparse/__main__.py b/sqlparse/__main__.py
-+index 867d75d..dd0c074 100644
-+--- a/sqlparse/__main__.py
-++++ b/sqlparse/__main__.py
-+@@ -1,4 +1,4 @@
-+-#!/usr/bin/env python
-++#!/usr/bin/env python3
-+ # -*- coding: utf-8 -*-
-+ #
-+ # Copyright (C) 2009-2018 the sqlparse authors and contributors
-+diff --git a/sqlparse/cli.py b/sqlparse/cli.py
-+index 25555a5..8bf050a 100755
-+--- a/sqlparse/cli.py
-++++ b/sqlparse/cli.py
-+@@ -1,4 +1,4 @@
-+-#!/usr/bin/env python
-++#!/usr/bin/env python3
-+ # -*- coding: utf-8 -*-
-+ #
-+ # Copyright (C) 2009-2018 the sqlparse authors and contributors
-+--
-+2.7.4
-+
-diff --git a/setup.py b/setup.py
-index ede0aff..dc6a323 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- #
- # Copyright (C) 2009-2020 the sqlparse authors and contributors
- # <see AUTHORS file>
diff --git a/sqlparse/__main__.py b/sqlparse/__main__.py
index 2bf2513..6a3a115 100644
--- a/sqlparse/__main__.py
@@ -107,5 +37,5 @@ index 7a8aacb..9c727e8 100755
# Copyright (C) 2009-2020 the sqlparse authors and contributors
# <see AUTHORS file>
--
-2.17.1
+2.41.0
diff --git a/meta-python/recipes-devtools/python/python3-sqlparse/run-ptest b/meta-python/recipes-devtools/python/python3-sqlparse/run-ptest
index 3385d68939..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-sqlparse/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-sqlparse/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-sqlparse_0.4.3.bb b/meta-python/recipes-devtools/python/python3-sqlparse_0.4.3.bb
deleted file mode 100644
index c952c71d0b..0000000000
--- a/meta-python/recipes-devtools/python/python3-sqlparse_0.4.3.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-DESCRIPTION = "Non-validating SQL parser module"
-HOMEPAGE = "http://pypi.python.org/pypi/sqlparse"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2b136f573f5386001ea3b7b9016222fc"
-
-SRC_URI += "file://0001-sqlparse-change-shebang-to-python3.patch \
- file://run-ptest \
- "
-
-SRC_URI[sha256sum] = "69ca804846bb114d2ec380e4360a8a340db83f0ccf3afceeb1404df028f57268"
-
-export BUILD_SYS
-export HOST_SYS
-
-inherit pypi ptest setuptools3
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-unixadmin \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-sqlparse_0.4.4.bb b/meta-python/recipes-devtools/python/python3-sqlparse_0.4.4.bb
new file mode 100644
index 0000000000..c04971ee8f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sqlparse_0.4.4.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Non-validating SQL parser module"
+HOMEPAGE = "http://pypi.python.org/pypi/sqlparse"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2b136f573f5386001ea3b7b9016222fc"
+
+SRC_URI += "file://0001-sqlparse-change-shebang-to-python3.patch \
+ file://run-ptest \
+ "
+
+SRC_URI[sha256sum] = "d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c"
+
+export BUILD_SYS
+export HOST_SYS
+
+inherit pypi ptest python_flit_core
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+ python3-unixadmin \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-sqlsoup_0.9.1.bb b/meta-python/recipes-devtools/python/python3-sqlsoup_0.9.1.bb
index 592ba72043..e7f329e9bb 100644
--- a/meta-python/recipes-devtools/python/python3-sqlsoup_0.9.1.bb
+++ b/meta-python/recipes-devtools/python/python3-sqlsoup_0.9.1.bb
@@ -7,3 +7,5 @@ PYPI_PACKAGE = "sqlsoup"
SRC_URI[sha256sum] = "2fafb7732a663dcd59b37e64d1c94d5fb20d4fad32cd8ee260aa1cd9a10340d6"
inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-sqlalchemy"
diff --git a/meta-python/recipes-devtools/python/python3-stack-data_0.6.3.bb b/meta-python/recipes-devtools/python/python3-stack-data_0.6.3.bb
new file mode 100644
index 0000000000..55ddff383f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-stack-data_0.6.3.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Extract data from python stack frames and tracebacks for informative displays"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a3d6c15f7859ae235a78f2758e5a48cf"
+
+DEPENDS = "python3-setuptools-scm-native"
+
+PYPI_PACKAGE = "stack_data"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"
+
+RDEPENDS:${PN} = " \
+ python3-asttokens \
+ python3-executing \
+ python3-html \
+ python3-logging \
+ python3-pure-eval \
+"
diff --git a/meta-python/recipes-devtools/python/python3-stevedore_4.0.0.bb b/meta-python/recipes-devtools/python/python3-stevedore_4.0.0.bb
deleted file mode 100644
index 46c6d831aa..0000000000
--- a/meta-python/recipes-devtools/python/python3-stevedore_4.0.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "Manage dynamic plugins for Python applications"
-HOMEPAGE = "https://docs.openstack.org/stevedore/latest/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI[sha256sum] = "f82cc99a1ff552310d19c379827c2c64dd9f85a38bcd5559db2470161867b786"
-
-DEPENDS += "${PYTHON_PN}-pbr-native"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "${PYTHON_PN}-pbr ${PYTHON_PN}-six"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-stevedore_5.1.0.bb b/meta-python/recipes-devtools/python/python3-stevedore_5.1.0.bb
new file mode 100644
index 0000000000..ce71796339
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-stevedore_5.1.0.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Manage dynamic plugins for Python applications"
+HOMEPAGE = "https://docs.openstack.org/stevedore/latest/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "a54534acf9b89bc7ed264807013b505bf07f74dbe4bcfa37d32bd063870b087c"
+
+DEPENDS += "python3-pbr-native"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-pbr python3-six"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-stopit/LICENSE b/meta-python/recipes-devtools/python/python3-stopit/LICENSE
new file mode 100644
index 0000000000..0b9a5bec37
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-stopit/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 Gilles Lenfant
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE. \ No newline at end of file
diff --git a/meta-python/recipes-devtools/python/python3-stopit_1.1.2.bb b/meta-python/recipes-devtools/python/python3-stopit_1.1.2.bb
new file mode 100644
index 0000000000..e119a0f11a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-stopit_1.1.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Raise asynchronous exceptions in other threads, control the timeout of blocks or callables with two context managers and two decorators."
+HOMEPAGE = "https://pypi.org/project/stopit/"
+SECTION = "devel/python"
+
+SRC_URI += " file://LICENSE "
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=497c556f42b1355b64190da2f3d88f93"
+
+SRC_URI[sha256sum] = "f7f39c583fd92027bd9d06127b259aee7a5b7945c1f1fa56263811e1e766996d"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-setuptools \
+ "
+
+BBCLASSEXTEND = "native nativesdk" \ No newline at end of file
diff --git a/meta-python/recipes-devtools/python/python3-strenum/0001-patch-versioneer-for-python-3.12-compatibility.patch b/meta-python/recipes-devtools/python/python3-strenum/0001-patch-versioneer-for-python-3.12-compatibility.patch
new file mode 100644
index 0000000000..cdf3f1acb7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-strenum/0001-patch-versioneer-for-python-3.12-compatibility.patch
@@ -0,0 +1,37 @@
+From 3a71c9bc3747201e5bebe0e80b98ac6219209875 Mon Sep 17 00:00:00 2001
+From: alperak <alperyasinak1@gmail.com>
+Date: Thu, 8 Feb 2024 14:09:32 +0300
+Subject: [PATCH] Patch versioneer for Python 3.12 compatibility
+
+AttributeError: 'ConfigParser' object has no attribute 'readfp'. Did you mean: 'read'?
+AttributeError: module 'configparser' has no attribute 'SafeConfigParser'. Did you mean: 'RawConfigParser'?
+
+readfp and SafeConfigParser has been deprecated since Python 3.2 and removed in Python 3.12 (due October 2023). Use read_file and ConfigParser instead.
+
+https://docs.python.org/3/whatsnew/3.12.html#configparser
+
+Upstream-Status: Submitted [https://github.com/irgeek/StrEnum/pull/34]
+Signed-off-by: alperak <alperyasinak1@gmail.com>
+---
+ versioneer.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/versioneer.py b/versioneer.py
+index 64fea1c..3aa5da3 100644
+--- a/versioneer.py
++++ b/versioneer.py
+@@ -339,9 +339,9 @@ def get_config_from_root(root):
+ # configparser.NoOptionError (if it lacks "VCS="). See the docstring at
+ # the top of versioneer.py for instructions on writing your setup.cfg .
+ setup_cfg = os.path.join(root, "setup.cfg")
+- parser = configparser.SafeConfigParser()
++ parser = configparser.ConfigParser()
+ with open(setup_cfg, "r") as f:
+- parser.readfp(f)
++ parser.read_file(f)
+ VCS = parser.get("versioneer", "VCS") # mandatory
+
+ def get(parser, name):
+--
+2.25.1
+
diff --git a/meta-python/recipes-devtools/python/python3-strenum_0.4.15.bb b/meta-python/recipes-devtools/python/python3-strenum_0.4.15.bb
new file mode 100644
index 0000000000..cbe7fcc215
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-strenum_0.4.15.bb
@@ -0,0 +1,14 @@
+SUMMARY = "An Enum that inherits from str"
+HOMEPAGE = "https://github.com/irgeek/StrEnum"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ba0eb3de1df70bde0ed48488cfd81269"
+
+SRC_URI += "file://0001-patch-versioneer-for-python-3.12-compatibility.patch"
+
+DEPENDS = "python3-pytest-runner-native"
+
+SRC_URI[sha256sum] = "878fb5ab705442070e4dd1929bb5e2249511c0bcf2b0eeacf3bcd80875c82eff"
+
+PYPI_PACKAGE = "StrEnum"
+
+inherit pypi python_setuptools_build_meta
diff --git a/meta-python/recipes-devtools/python/python3-supervisor_4.2.4.bb b/meta-python/recipes-devtools/python/python3-supervisor_4.2.4.bb
deleted file mode 100644
index d677075570..0000000000
--- a/meta-python/recipes-devtools/python/python3-supervisor_4.2.4.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Supervisor: A Process Control System"
-DESCRIPTION = "\
-Supervisor is a client/server system that allows its users \
-to monitorand control a number of processes on UNIX-like \
-operating systems."
-HOMEPAGE = "https://github.com/Supervisor/supervisor"
-LICENSE = "BSD-4-Clause"
-LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=5b4e3a2172bba4c47cded5885e7e507e"
-
-SRC_URI[sha256sum] = "40dc582ce1eec631c3df79420b187a6da276bbd68a4ec0a8f1f123ea616b97a2"
-
-PYPI_PACKAGE = "supervisor"
-inherit pypi systemd setuptools3
-RDEPENDS:${PN} = "\
- python3-meld3 \
- python3-io \
- python3-xmlrpc \
- python3-resource \
- python3-setuptools \
- python3-smtpd \
-"
-
-SRC_URI += "file://supervisord.conf \
- file://supervisor.service \
- "
-SYSTEMD_SERVICE:${PN} = "supervisor.service"
-
-do_install:append() {
- install -d ${D}${sysconfdir}/supervisor
- install -d ${D}${systemd_system_unitdir}
-
- install -m 0644 ${WORKDIR}/supervisord.conf ${D}${sysconfdir}/supervisor
- install -m 0644 ${WORKDIR}/supervisor.service ${D}${systemd_system_unitdir}
-}
diff --git a/meta-python/recipes-devtools/python/python3-supervisor_4.2.5.bb b/meta-python/recipes-devtools/python/python3-supervisor_4.2.5.bb
new file mode 100644
index 0000000000..06b08e78a3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-supervisor_4.2.5.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Supervisor: A Process Control System"
+DESCRIPTION = "\
+Supervisor is a client/server system that allows its users \
+to monitorand control a number of processes on UNIX-like \
+operating systems."
+HOMEPAGE = "https://github.com/Supervisor/supervisor"
+LICENSE = "BSD-4-Clause"
+LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=5b4e3a2172bba4c47cded5885e7e507e"
+
+SRC_URI[sha256sum] = "34761bae1a23c58192281a5115fb07fbf22c9b0133c08166beffc70fed3ebc12"
+
+PYPI_PACKAGE = "supervisor"
+inherit pypi systemd setuptools3
+RDEPENDS:${PN} = "\
+ python3-meld3 \
+ python3-io \
+ python3-xmlrpc \
+ python3-resource \
+ python3-setuptools \
+"
+
+SRC_URI += "file://supervisord.conf \
+ file://supervisor.service \
+ "
+SYSTEMD_SERVICE:${PN} = "supervisor.service"
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/supervisor
+ install -d ${D}${systemd_system_unitdir}
+
+ install -m 0644 ${WORKDIR}/supervisord.conf ${D}${sysconfdir}/supervisor
+ install -m 0644 ${WORKDIR}/supervisor.service ${D}${systemd_system_unitdir}
+}
diff --git a/meta-python/recipes-devtools/python/python3-sympy_1.11.1.bb b/meta-python/recipes-devtools/python/python3-sympy_1.11.1.bb
deleted file mode 100644
index 4e32936384..0000000000
--- a/meta-python/recipes-devtools/python/python3-sympy_1.11.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Computer algebra system (CAS) in Python"
-HOMEPAGE = "https://pypi.org/project/sympy/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9f6c7fdc2d69e31ad7abaea029c8ac16"
-
-SRC_URI[sha256sum] = "e32380dce63cb7c0108ed525570092fd45168bdae2faa17e528221ef72e88658"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "python3-mpmath"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-sympy_1.12.bb b/meta-python/recipes-devtools/python/python3-sympy_1.12.bb
new file mode 100644
index 0000000000..088dda3a2a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sympy_1.12.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Computer algebra system (CAS) in Python"
+HOMEPAGE = "https://pypi.org/project/sympy/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ea48085d7dff75b49271b25447e8cdca"
+
+SRC_URI[sha256sum] = "ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-misc \
+ python3-mpmath \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-systemd/0001-Provide-implementation-of-strndupa-for-musl.patch b/meta-python/recipes-devtools/python/python3-systemd/0001-Provide-implementation-of-strndupa-for-musl.patch
index d7085a8565..d7085a8565 100644
--- a/meta-python/recipes-devtools/python/python-systemd/0001-Provide-implementation-of-strndupa-for-musl.patch
+++ b/meta-python/recipes-devtools/python/python3-systemd/0001-Provide-implementation-of-strndupa-for-musl.patch
diff --git a/meta-python/recipes-devtools/python/python3-systemd_234.bb b/meta-python/recipes-devtools/python/python3-systemd_234.bb
deleted file mode 100644
index 10614fe374..0000000000
--- a/meta-python/recipes-devtools/python/python3-systemd_234.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Python interface for libsystemd"
-HOMEPAGE = "https://github.com/systemd/python-systemd"
-LICENSE = "LGPL-2.1-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fbd65380cdd255951079008b364516c"
-
-PYPI_PACKAGE = "systemd-python"
-DEPENDS += "systemd (<=234)"
-RDEPENDS:${PN} += "systemd ${PYTHON_PN}-syslog ${PYTHON_PN}-logging python3-syslog"
-REQUIRED_DISTRO_FEATURES = "systemd"
-inherit pypi features_check pkgconfig setuptools3
-
-SRC_URI[md5sum] = "5071ea5bcb976186e92a3f5e75df221d"
-SRC_URI[sha256sum] = "fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895db83e7"
-
-# allow for common patches for python- and python3-systemd
-FILESEXTRAPATHS:prepend := "${THISDIR}/python-systemd:"
-
-SRC_URI += " \
- file://endian.patch \
- file://0002-setup.py-switch-from-distutils-to-setuptools.patch \
-"
-
-SRC_URI:append:libc-musl = " file://0001-Provide-implementation-of-strndupa-for-musl.patch"
diff --git a/meta-python/recipes-devtools/python/python3-systemd_235.bb b/meta-python/recipes-devtools/python/python3-systemd_235.bb
new file mode 100644
index 0000000000..7a7d5a5053
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-systemd_235.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Python interface for libsystemd"
+HOMEPAGE = "https://github.com/systemd/python-systemd"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fbd65380cdd255951079008b364516c"
+
+PYPI_PACKAGE = "systemd-python"
+DEPENDS += "systemd (<=235)"
+RDEPENDS:${PN} += "systemd python3-syslog python3-logging python3-syslog"
+REQUIRED_DISTRO_FEATURES = "systemd"
+inherit pypi features_check pkgconfig setuptools3
+SRC_URI:append:libc-musl = " file://0001-Provide-implementation-of-strndupa-for-musl.patch"
+SRC_URI[sha256sum] = "4e57f39797fd5d9e2d22b8806a252d7c0106c936039d1e71c8c6b8008e695c0a"
diff --git a/meta-python/recipes-devtools/python/python3-tabulate_0.8.10.bb b/meta-python/recipes-devtools/python/python3-tabulate_0.8.10.bb
deleted file mode 100644
index 222e6e7bb4..0000000000
--- a/meta-python/recipes-devtools/python/python3-tabulate_0.8.10.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Pretty-print tabular data"
-HOMEPAGE = "https://github.com/astanin/python-tabulate"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6ad1430c0c4824ec6a5dbb9754b011d7"
-
-SRC_URI[sha256sum] = "6c57f3f3dd7ac2782770155f3adb2db0b1a269637e42f27599925e64b114f519"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-tabulate_0.9.0.bb b/meta-python/recipes-devtools/python/python3-tabulate_0.9.0.bb
new file mode 100644
index 0000000000..75e97355f5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tabulate_0.9.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Pretty-print tabular data"
+HOMEPAGE = "https://github.com/astanin/python-tabulate"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6ad1430c0c4824ec6a5dbb9754b011d7"
+
+SRC_URI[sha256sum] = "0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += " \
+ python3-setuptools-scm-native \
+ python3-toml-native \
+"
+
+RDEPENDS:${PN} += " \
+ python3-html \
+ python3-core \
+ python3-io \
+ python3-math \
+ python3-profile \
+"
diff --git a/meta-python/recipes-devtools/python/python3-telnetlib3_2.0.4.bb b/meta-python/recipes-devtools/python/python3-telnetlib3_2.0.4.bb
new file mode 100644
index 0000000000..c1e7c8e1f7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-telnetlib3_2.0.4.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Telnet server and client library based on asyncio"
+HOMEPAGE = "https://github.com/jquast/telnetlib3"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fc2166986ad8169d334a342e0d8db8e0"
+
+SRC_URI[md5sum] = "2dfac7e10ed63c408da50ea712415f87"
+SRC_URI[sha256sum] = "dbcbc16456a0e03a62431be7cfefff00515ab2f4ce2afbaf0d3a0e51a98c948d"
+
+PYPI_PACKAGE = "telnetlib3"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+ python3-asyncio \
+"
diff --git a/meta-python/recipes-devtools/python/python3-term_2.4.bb b/meta-python/recipes-devtools/python/python3-term_2.4.bb
deleted file mode 100644
index bc6a4c3df6..0000000000
--- a/meta-python/recipes-devtools/python/python3-term_2.4.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "An enhanced version of the tty module"
-SECTION = "devel/python"
-LICENSE = "Python-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d90e2d280a4836c607520383d1639be1"
-
-SRC_URI[sha256sum] = "2cca4cf5f83035ca12627c4bbeff2891ad4711666247a790fd8200d73f38c3f0"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-io \
-"
diff --git a/meta-python/recipes-devtools/python/python3-term_2.5.bb b/meta-python/recipes-devtools/python/python3-term_2.5.bb
new file mode 100644
index 0000000000..7d508ad809
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-term_2.5.bb
@@ -0,0 +1,12 @@
+SUMMARY = "An enhanced version of the tty module"
+SECTION = "devel/python"
+LICENSE = "Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d90e2d280a4836c607520383d1639be1"
+
+SRC_URI[sha256sum] = "846fda941dbb8a7c9f246e99bf5ee731910fc4a4cc54b7e36457c133c9f6b78b"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+ python3-io \
+"
diff --git a/meta-python/recipes-devtools/python/python3-termcolor_2.0.1.bb b/meta-python/recipes-devtools/python/python3-termcolor_2.0.1.bb
deleted file mode 100644
index 47f7938f16..0000000000
--- a/meta-python/recipes-devtools/python/python3-termcolor_2.0.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "ANSII Color formatting for output in terminal"
-HOMEPAGE = "https://pypi.python.org/pypi/termcolor"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=e5f5f7c9b280511f124dba5dda3d180e"
-
-inherit pypi python_setuptools_build_meta
-
-SRC_URI[sha256sum] = "6b2cf769e93364a2676e1de56a7c0cff2cf5bd07f37e9cc80b0dd6320ebfe388"
-
-DEPENDS += " \
- ${PYTHON_PN}-toml-native \
- ${PYTHON_PN}-hatch-vcs-native \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-termcolor_2.4.0.bb b/meta-python/recipes-devtools/python/python3-termcolor_2.4.0.bb
new file mode 100644
index 0000000000..ea6b683991
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-termcolor_2.4.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "ANSII Color formatting for output in terminal"
+HOMEPAGE = "https://pypi.python.org/pypi/termcolor"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=e5f5f7c9b280511f124dba5dda3d180e"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "aab9e56047c8ac41ed798fa36d892a37aca6b3e9159f3e0c24bc64a9b3ac7b7a"
+
+DEPENDS += " \
+ python3-toml-native \
+ python3-hatch-vcs-native \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-texttable_1.6.4.bb b/meta-python/recipes-devtools/python/python3-texttable_1.6.4.bb
deleted file mode 100644
index 6916a72d34..0000000000
--- a/meta-python/recipes-devtools/python/python3-texttable_1.6.4.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "module for creating simple ASCII tables"
-HOMEPAGE = "https://github.com/foutaise/texttable/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7a97cdac2d9679ffdcfef3dc036d24f6"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "42ee7b9e15f7b225747c3fa08f43c5d6c83bc899f80ff9bae9319334824076e9"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-texttable_1.7.0.bb b/meta-python/recipes-devtools/python/python3-texttable_1.7.0.bb
new file mode 100644
index 0000000000..56448f738e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-texttable_1.7.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "module for creating simple ASCII tables"
+HOMEPAGE = "https://github.com/foutaise/texttable/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7a97cdac2d9679ffdcfef3dc036d24f6"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "2d2068fb55115807d3ac77a4ca68fa48803e84ebb0ee2340f858107a36522638"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-tomli-w/run-ptest b/meta-python/recipes-devtools/python/python3-tomli-w/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tomli-w/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-tomli-w_1.0.0.bb b/meta-python/recipes-devtools/python/python3-tomli-w_1.0.0.bb
new file mode 100644
index 0000000000..8a8a48467d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tomli-w_1.0.0.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Tomli-W is a Python library for writing TOML. It is a write-only counterpart to Tomli, which is a read-only TOML parser."
+HOMEPAGE = "https://github.com/hukkin/tomli-w"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5"
+
+SRCREV = "19099125f32e7c491603e393263754262b356956"
+PYPI_SRC_URI = "git://github.com/hukkin/tomli-w.git;protocol=https;branch=master"
+
+inherit pypi python_flit_core ptest
+
+S = "${WORKDIR}/git"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-tomli \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ install -d ${D}${PTEST_PATH}/benchmark
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+ cp -rf ${S}/benchmark/* ${D}${PTEST_PATH}/benchmark/
+}
+
+RDEPENDS:${PN} += " \
+ python3-datetime \
+ python3-numbers \
+ python3-stringold \
+"
diff --git a/meta-python/recipes-devtools/python/python3-tomlkit/run-ptest b/meta-python/recipes-devtools/python/python3-tomlkit/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tomlkit/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-tomlkit_0.12.3.bb b/meta-python/recipes-devtools/python/python3-tomlkit_0.12.3.bb
new file mode 100644
index 0000000000..d4162a110b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tomlkit_0.12.3.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Style preserving TOML library"
+HOMEPAGE = "https://pypi.org/project/tomlkit/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=31aac0dbc1babd278d5386dadb7f8e82"
+
+SRC_URI[sha256sum] = "75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4"
+
+inherit pypi python_poetry_core ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+ python3-datetime \
+ python3-profile \
+ python3-stringold \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-poetry-core \
+ python3-pytest \
+ python3-pyyaml \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-toolz_0.12.0.bb b/meta-python/recipes-devtools/python/python3-toolz_0.12.0.bb
deleted file mode 100644
index 4025fa3e0e..0000000000
--- a/meta-python/recipes-devtools/python/python3-toolz_0.12.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "A set of utility functions for iterators, functions, and dictionaries."
-HOMEPAGE = "https://github.com/pytoolz/toolz"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ca09cab178326d18433aae982d1edf5d"
-
-SRC_URI[sha256sum] = "88c570861c440ee3f2f6037c4654613228ff40c93a6c25e0eba70d17282c6194"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- python3-json \
- python3-math \
-"
diff --git a/meta-python/recipes-devtools/python/python3-toolz_0.12.1.bb b/meta-python/recipes-devtools/python/python3-toolz_0.12.1.bb
new file mode 100644
index 0000000000..f1763ee518
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-toolz_0.12.1.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A set of utility functions for iterators, functions, and dictionaries."
+HOMEPAGE = "https://github.com/pytoolz/toolz"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ca09cab178326d18433aae982d1edf5d"
+
+SRC_URI[sha256sum] = "ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-json \
+ python3-math \
+"
diff --git a/meta-python/recipes-devtools/python/python3-tornado_6.2.bb b/meta-python/recipes-devtools/python/python3-tornado_6.2.bb
deleted file mode 100644
index d94fd39273..0000000000
--- a/meta-python/recipes-devtools/python/python3-tornado_6.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed."
-DESCRIPTION = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. \
-By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long \
-polling, WebSockets, and other applications that require a long-lived connection to each user."
-HOMEPAGE = "http://www.tornadoweb.org/en/stable/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI[sha256sum] = "9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"
-
-inherit pypi setuptools3
-
-# Requires _compression which is currently located in misc
-RDEPENDS:${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-numbers ${PYTHON_PN}-email \
- ${PYTHON_PN}-pkgutil ${PYTHON_PN}-html ${PYTHON_PN}-json ${PYTHON_PN}-certifi ${PYTHON_PN}-threading \
- ${PYTHON_PN}-ctypes ${PYTHON_PN}-misc"
-
-RDEPENDS:${PN}-test += "${PN} ${PYTHON_PN}-unittest"
-
-PACKAGES =+ "\
- ${PN}-test \
-"
-
-FILES:${PN}-test = " \
- ${libdir}/${PYTHON_DIR}/site-packages/*/test \
- ${libdir}/${PYTHON_DIR}/site-packages/*/testing.py* \
-"
diff --git a/meta-python/recipes-devtools/python/python3-tornado_6.4.bb b/meta-python/recipes-devtools/python/python3-tornado_6.4.bb
new file mode 100644
index 0000000000..b01c1cec2a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tornado_6.4.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed."
+DESCRIPTION = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. \
+By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long \
+polling, WebSockets, and other applications that require a long-lived connection to each user."
+HOMEPAGE = "http://www.tornadoweb.org/en/stable/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"
+
+inherit pypi setuptools3
+
+# Requires _compression which is currently located in misc
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-certifi \
+ python3-compression \
+ python3-ctypes \
+ python3-email \
+ python3-html \
+ python3-json \
+ python3-misc \
+ python3-multiprocessing \
+ python3-numbers \
+ python3-pkgutil \
+ python3-pycurl \
+ python3-threading \
+ python3-unittest \
+"
+
+RDEPENDS:${PN}-test += "python3-unittest"
+
+PACKAGES =+ "\
+ ${PN}-test \
+"
+
+FILES:${PN}-test = " \
+ ${PYTHON_SITEPACKAGES_DIR}/*/test \
+"
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-tox_4.14.2.bb b/meta-python/recipes-devtools/python/python3-tox_4.14.2.bb
new file mode 100644
index 0000000000..f451de3218
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tox_4.14.2.bb
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: MIT
+# Copyright (C) 2023 iris-GmbH infrared & intelligent sensors
+
+SUMMARY = "Automate and standardize testing in Python. It is part of a larger vision of easing the packaging, testing and release process of Python software (alongside pytest and devpi)."
+HOMEPAGE = "http://tox.readthedocs.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=11610a9d8fd95649cf8159be12b98cb7"
+
+SRC_URI[sha256sum] = "0defb44f6dafd911b61788325741cc6b2e12ea71f987ac025ad4d649f1f1a104"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_hatchling
+
+DEPENDS += "\
+ python3-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += "\
+ python3-cachetools \
+ python3-chardet \
+ python3-colorama \
+ python3-filelock \
+ python3-packaging \
+ python3-platformdirs \
+ python3-pluggy \
+ python3-pyproject-api \
+ python3-tomli \
+ python3-virtualenv \
+"
+
+# Install all built-in python3 modules, as the software tested with tox might
+# depend on it. Tox will attempt to install all required dependencies
+# in a virtualenv using pip, but this obviously does not include the built-in modules.
+RDEPENDS:${PN} += "python3-modules"
diff --git a/meta-python/recipes-devtools/python/python3-tqdm_4.64.0.bb b/meta-python/recipes-devtools/python/python3-tqdm_4.64.0.bb
deleted file mode 100644
index 3cb45f1a6e..0000000000
--- a/meta-python/recipes-devtools/python/python3-tqdm_4.64.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Fast, Extensible Progress Meter"
-HOMEPAGE = "http://tqdm.github.io/"
-SECTION = "devel/python"
-
-LICENSE = "MIT & MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=1672e2674934fd93a31c09cf17f34100"
-
-SRC_URI[sha256sum] = "40be55d30e200777a307a7585aee69e4eabb46b4ec6a4b4a5f2d9f11e7d5408d"
-
-inherit pypi python_setuptools_build_meta
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-RDEPENDS:${PN} += " \
- python3-logging \
- python3-numbers \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-tqdm_4.66.2.bb b/meta-python/recipes-devtools/python/python3-tqdm_4.66.2.bb
new file mode 100644
index 0000000000..77d26f54b2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tqdm_4.66.2.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Fast, Extensible Progress Meter"
+HOMEPAGE = "http://tqdm.github.io/"
+SECTION = "devel/python"
+
+LICENSE = "MIT & MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=42dfa9e8c616dbc295df3f58d756b2a1"
+
+SRC_URI[sha256sum] = "6cd52cdf0fef0e0f543299cfc96fec90d7b8a7e88745f411ec33eb44d5ed3531"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+ python3-logging \
+ python3-numbers \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-trafaret-config_2.0.2.bb b/meta-python/recipes-devtools/python/python3-trafaret-config_2.0.2.bb
index 5c5754740b..eee9ab88ba 100644
--- a/meta-python/recipes-devtools/python/python3-trafaret-config_2.0.2.bb
+++ b/meta-python/recipes-devtools/python/python3-trafaret-config_2.0.2.bb
@@ -8,8 +8,8 @@ SRC_URI[sha256sum] = "440b6b49e5e975f9a640a2519abb2feddd96eb2aeb1715f87f947a7a07
inherit pypi setuptools3
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-trafaret \
- ${PYTHON_PN}-pyyaml \
+ python3-trafaret \
+ python3-pyyaml \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-trafaret_2.1.1.bb b/meta-python/recipes-devtools/python/python3-trafaret_2.1.1.bb
index 97c56abde4..5b24206a27 100644
--- a/meta-python/recipes-devtools/python/python3-trafaret_2.1.1.bb
+++ b/meta-python/recipes-devtools/python/python3-trafaret_2.1.1.bb
@@ -8,9 +8,9 @@ SRC_URI[sha256sum] = "d9d00800318fbd343fdfb3353e947b2ebb5557159c844696c5ac24846f
inherit pypi setuptools3
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-urllib3 \
+ python3-datetime \
+ python3-numbers \
+ python3-urllib3 \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-traitlets/run-ptest b/meta-python/recipes-devtools/python/python3-traitlets/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-traitlets/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-traitlets_5.14.2.bb b/meta-python/recipes-devtools/python/python3-traitlets_5.14.2.bb
new file mode 100644
index 0000000000..af5a2f3fbf
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-traitlets_5.14.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Traitlets Python config system"
+HOMEPAGE = "https://github.com/ipython/traitlets"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=13bed0ee6f46a6f6dbf1f9f9572f250a"
+
+SRC_URI[sha256sum] = "8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9"
+
+inherit pypi python_hatchling ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-argcomplete \
+ bash \
+ python3-mypy \
+ python3-pytest \
+ python3-pytest-mock \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-traitlets_5.4.0.bb b/meta-python/recipes-devtools/python/python3-traitlets_5.4.0.bb
deleted file mode 100644
index 84f9727dd6..0000000000
--- a/meta-python/recipes-devtools/python/python3-traitlets_5.4.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Traitlets Python config system"
-HOMEPAGE = "http://ipython.org"
-AUTHOR = "IPython Development Team <ipython-dev@scipy.org>"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING.md;md5=9c125dfc5ff5364d40b5f56f02cd9de3"
-
-SRC_URI[sha256sum] = "3f2c4e435e271592fe4390f1746ea56836e3a080f84e7833f0f801d9613fec39"
-
-inherit pypi python_hatchling
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-ipython-genutils \
- ${PYTHON_PN}-decorator \
-"
diff --git a/meta-python/recipes-devtools/python/python3-trustme/run-ptest b/meta-python/recipes-devtools/python/python3-trustme/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-trustme/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-trustme_1.1.0.bb b/meta-python/recipes-devtools/python/python3-trustme_1.1.0.bb
new file mode 100644
index 0000000000..21161a0e0f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-trustme_1.1.0.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "A utility provides a fake certificate authority (CA)"
+HOMEPAGE = "https://pypi.org/project/trustme"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d5a7af1a4b73e57431e25d15a2da745a"
+
+SRC_URI[sha256sum] = "5375ad7fb427074bec956592e0d4ee2a4cf4da68934e1ba4bcf4217126bc45e6"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+ python3-cryptography \
+ python3-datetime \
+ python3-idna \
+ python3-io \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pyopenssl \
+ python3-pyasn1-modules \
+ python3-pytest \
+ python3-service-identity \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+ cp -rf ${S}/setup.py ${D}${PTEST_PATH}
+}
diff --git a/meta-python/recipes-devtools/python/python3-twine_4.0.1.bb b/meta-python/recipes-devtools/python/python3-twine_4.0.1.bb
deleted file mode 100644
index 0178dde738..0000000000
--- a/meta-python/recipes-devtools/python/python3-twine_4.0.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "Utilities for interacting with PyPI"
-HOMEPAGE = "https://twine.readthedocs.io/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a3d1106b253a8d50dd82a4202a045b4c"
-
-SRC_URI[sha256sum] = "96b1cf12f7ae611a4a40b6ae8e9570215daff0611828f5fe1f37a16255ab24a0"
-
-inherit pypi python_setuptools_build_meta
-
-DEPENDS += "\
- ${PYTHON_PN}-setuptools-scm-native \
-"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-importlib-metadata \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-twine_5.0.0.bb b/meta-python/recipes-devtools/python/python3-twine_5.0.0.bb
new file mode 100644
index 0000000000..cb45074811
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-twine_5.0.0.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Utilities for interacting with PyPI"
+HOMEPAGE = "https://twine.readthedocs.io/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a3d1106b253a8d50dd82a4202a045b4c"
+
+SRC_URI[sha256sum] = "89b0cc7d370a4b66421cc6102f269aa910fe0f1861c124f573cf2ddedbc10cf4"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "\
+ python3-setuptools-scm-native \
+"
+
+RDEPENDS:${PN} += " \
+ python3-importlib-metadata \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-twisted_22.10.0.bb b/meta-python/recipes-devtools/python/python3-twisted_22.10.0.bb
new file mode 100644
index 0000000000..20b9ce2541
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-twisted_22.10.0.bb
@@ -0,0 +1,201 @@
+DESCRIPTION = "Twisted is an event-driven networking framework written in Python and licensed under the LGPL. \
+Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols \
+(including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more."
+HOMEPAGE = "http://www.twistedmatrix.com"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0f8d67f84b6e178c92d471011b2245fc"
+
+SRC_URI[sha256sum] = "32acbd40a94f5f46e7b42c109bfae2b302250945561783a8b7a059048f2d4d31"
+
+PYPI_PACKAGE = "Twisted"
+
+inherit pypi python_setuptools_build_meta
+
+do_install:append() {
+ # remove some useless files before packaging
+ find ${D} \( -name "*.bat" -o -name "*.c" -o -name "*.h" \) -exec rm -f {} \;
+}
+
+PACKAGES += "\
+ ${PN}-zsh \
+ ${PN}-test \
+ ${PN}-protocols \
+ ${PN}-conch \
+ ${PN}-mail \
+ ${PN}-names \
+ ${PN}-news \
+ ${PN}-runner \
+ ${PN}-web \
+ ${PN}-words \
+ ${PN}-flow \
+ ${PN}-pair \
+ ${PN}-core \
+"
+
+DEPENDS += " \
+ python3-incremental-native \
+"
+
+RDEPENDS:${PN} = "\
+ ${PN}-core \
+ ${PN}-conch \
+ ${PN}-mail \
+ ${PN}-names \
+ ${PN}-pair \
+ ${PN}-protocols \
+ ${PN}-runner \
+ ${PN}-web \
+ ${PN}-words \
+ ${PN}-zsh \
+"
+
+RDEPENDS:${PN}-core = "python3-appdirs \
+ python3-asyncio \
+ python3-automat \
+ python3-constantly \
+ python3-core \
+ python3-debugger \
+ python3-hyperlink \
+ python3-incremental \
+ python3-pyhamcrest \
+ python3-pyserial \
+ python3-typing-extensions \
+ python3-unixadmin \
+ python3-zopeinterface \
+"
+RDEPENDS:${PN}-test = "${PN}"
+RDEPENDS:${PN}-conch = "${PN}-core ${PN}-protocols python3-bcrypt python3-cryptography python3-pyasn1 python3-pickle"
+RDEPENDS:${PN}-mail = "${PN}-core ${PN}-protocols"
+RDEPENDS:${PN}-names = "${PN}-core"
+RDEPENDS:${PN}-news = "${PN}-core ${PN}-protocols"
+RDEPENDS:${PN}-runner = "${PN}-core ${PN}-protocols"
+RDEPENDS:${PN}-web += "${PN}-core ${PN}-protocols"
+RDEPENDS:${PN}-words += "${PN}-core"
+RDEPENDS:${PN}-flow += "${PN}-core"
+RDEPENDS:${PN}-pair += "${PN}-core"
+
+FILES:${PN} = "${PYTHON_SITEPACKAGES_DIR}/${PYPI_PACKAGE}-${PV}.dist-info/*"
+
+FILES:${PN}-test = " \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/test \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/*/test \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/protocols/haproxy/test/ \
+"
+
+FILES:${PN}-protocols = " \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/protocols/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/protocols/gps/ \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/protocols/mice/ \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/protocols/haproxy \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/protocols/__pycache__/*pyc \
+"
+
+FILES:${PN}-zsh = " \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/python/twisted-completion.zsh \
+"
+
+FILES:${PN}-conch = " \
+ ${bindir}/ckeygen \
+ ${bindir}/tkconch \
+ ${bindir}/conch \
+ ${bindir}/cftp \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/twisted_conch.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_conch*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/conch \
+"
+
+FILES:${PN}-core = " \
+ ${bindir}/twist \
+ ${bindir}/twistd \
+ ${bindir}/trial \
+ ${bindir}/pyhtmlizer \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/application \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/cred \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/enterprise \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/internet \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/persisted \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/protocols \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/scripts \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/spread \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/tap \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/trial \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/python/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/*.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/Twisted*egg-info \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/logger \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/_threads \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/positioning \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/py.typed \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/__pycache__/*pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/python/__pycache__/*pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/__init__*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/cred_anonymous*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/cred_file*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/cred_memory*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/cred_sshkeys*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/cred_unix*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_core*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_ftp*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_inet*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_portforward*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_reactors*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_socks*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_trial*.pyc \
+"
+
+FILES:${PN}-mail = " \
+ ${bindir}/mailmail \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/twisted_mail.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_mail*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/mail \
+"
+
+FILES:${PN}-names = " \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/twisted_names.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_names*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/names \
+"
+
+FILES:${PN}-news = " \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/twisted_news.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_news*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/news \
+"
+
+FILES:${PN}-runner = " \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/twisted_runner.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_runner*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/runner \
+"
+
+FILES:${PN}-web = " \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/twisted_web.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_web*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/web \
+"
+
+FILES:${PN}-words = " \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/twisted_words.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_words*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/words \
+"
+
+FILES:${PN}-flow = " \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/twisted_flow.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_flow*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/flow \
+"
+
+FILES:${PN}-pair = " \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/twisted_pair.py* \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/plugins/__pycache__/twisted_pair*.pyc \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/pair \
+"
+
+FILES:${PN}-doc += " \
+ ${PYTHON_SITEPACKAGES_DIR}/twisted/python/_pydoctortemplates \
+"
+
diff --git a/meta-python/recipes-devtools/python/python3-twisted_22.8.0.bb b/meta-python/recipes-devtools/python/python3-twisted_22.8.0.bb
deleted file mode 100644
index f40c5f080b..0000000000
--- a/meta-python/recipes-devtools/python/python3-twisted_22.8.0.bb
+++ /dev/null
@@ -1,310 +0,0 @@
-DESCRIPTION = "Twisted is an event-driven networking framework written in Python and licensed under the LGPL. \
-Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols \
-(including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more."
-HOMEPAGE = "http://www.twistedmatrix.com"
-
-#twisted/topfiles/NEWS:655: - Relicensed: Now under the MIT license, rather than LGPL.
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0f8d67f84b6e178c92d471011b2245fc"
-
-SRC_URI[sha256sum] = "e5b60de39f2d1da153fbe1874d885fe3fcbdb21fcc446fa759a53e8fc3513bed"
-
-PYPI_PACKAGE = "Twisted"
-
-inherit pypi python_setuptools_build_meta
-
-do_install:append() {
- # remove some useless files before packaging
- find ${D} \( -name "*.bat" -o -name "*.c" -o -name "*.h" \) -exec rm -f {} \;
-}
-
-PACKAGES += "\
- ${PN}-zsh \
- ${PN}-test \
- ${PN}-protocols \
- ${PN}-conch \
- ${PN}-mail \
- ${PN}-names \
- ${PN}-news \
- ${PN}-runner \
- ${PN}-web \
- ${PN}-words \
- ${PN}-flow \
- ${PN}-pair \
- ${PN}-core \
-"
-
-PACKAGES =+ "\
- ${PN}-bin \
-"
-
-DEPENDS += " \
- ${PYTHON_PN}-incremental-native \
-"
-
-RDEPENDS:${PN} = "\
- ${PN}-bin \
- ${PN}-core \
- ${PN}-conch \
- ${PN}-mail \
- ${PN}-names \
- ${PN}-pair \
- ${PN}-protocols \
- ${PN}-runner \
- ${PN}-web \
- ${PN}-words \
- ${PN}-zsh \
-"
-
-RDEPENDS:${PN}-core = "${PYTHON_PN}-appdirs \
- ${PYTHON_PN}-automat \
- ${PYTHON_PN}-constantly \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-debugger \
- ${PYTHON_PN}-hyperlink \
- ${PYTHON_PN}-incremental \
- ${PYTHON_PN}-pyhamcrest \
- ${PYTHON_PN}-pyserial \
- ${PYTHON_PN}-unixadmin \
- ${PYTHON_PN}-zopeinterface \
-"
-RDEPENDS:${PN}-test = "${PN}"
-RDEPENDS:${PN}-conch = "${PN}-core ${PN}-protocols ${PYTHON_PN}-bcrypt ${PYTHON_PN}-cryptography ${PYTHON_PN}-pyasn1 ${PYTHON_PN}-pickle"
-RDEPENDS:${PN}-mail = "${PN}-core ${PN}-protocols"
-RDEPENDS:${PN}-names = "${PN}-core"
-RDEPENDS:${PN}-news = "${PN}-core ${PN}-protocols"
-RDEPENDS:${PN}-runner = "${PN}-core ${PN}-protocols"
-RDEPENDS:${PN}-web += "${PN}-core ${PN}-protocols"
-RDEPENDS:${PN}-words += "${PN}-core"
-RDEPENDS:${PN}-flow += "${PN}-core"
-RDEPENDS:${PN}-pair += "${PN}-core"
-
-FILES:${PN} = "${PYTHON_SITEPACKAGES_DIR}/${PYPI_PACKAGE}-${PV}.dist-info/*"
-
-FILES:${PN}-test = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/test \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/test \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/haproxy/test/ \
-"
-
-FILES:${PN}-protocols = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/*.py* \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/gps/ \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/mice/ \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/haproxy \
-"
-
-FILES:${PN}-zsh = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zsh \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zshcomp.* \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/twisted-completion.zsh \
-"
-
-FILES:${PN}-conch = " \
- ${bindir}/ckeygen \
- ${bindir}/tkconch \
- ${bindir}/conch \
- ${bindir}/conchftp \
- ${bindir}/cftp \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_conch.py* \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/conch \
-"
-
-FILES:${PN}-core = " \
-${bindir}/manhole \
-${bindir}/mktap \
-${bindir}/twistd \
-${bindir}/tap2deb \
-${bindir}/tap2rpm \
-${bindir}/tapconvert \
-${bindir}/tkmktap \
-${bindir}/trial \
-${bindir}/easy_install* \
-${bindir}/pyhtmlizer \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/*.so \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__init__.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/notestplugin.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/testplugin.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_ftp.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_inet.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_manhole.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_portforward.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_socks.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_telnet.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_trial.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/dropin.cache \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/application \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/cred \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/enterprise \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/internet \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/manhole \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/manhole \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/persisted \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols\
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python\
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/timeoutqueue.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/filepath.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dxprofile.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/plugin.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/htmlizer.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/__init__.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dispatch.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/hook.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/threadpool.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/otp.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/usage.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/roots.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/versions.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/urlpath.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/util.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/components.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/logfile.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/runtime.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/reflect.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/context.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/threadable.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/rebuild.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/failure.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/lockfile.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/formmethod.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/finalize.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/win32.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/dist.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/shortcut.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zipstream.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/release.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/syslog.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/log.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/compat.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/zshcomp.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/procutils.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/text.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/_twisted_zsh_stub \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/scripts/ \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/spread/ \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/tap/ \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/trial/ \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/__init__.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/_version.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/copyright.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/im.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/python/*.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/*.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/topfiles \
-${libdir}/${PYTHON_DIR}/site-packages/Twisted*egg-info \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/logger/ \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/_threads/ \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/positioning/ \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/py.typed \
-"
-
-FILES:${PN}-mail = " \
-${bindir}/mailmail \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_mail.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/mail \
-"
-
-FILES:${PN}-names = " \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_names.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/names \
-"
-
-FILES:${PN}-news = " \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_news.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/news \
-"
-
-FILES:${PN}-runner = " \
-${libdir}/site-packages/twisted/runner/portmap.so \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/runner\
-"
-
-FILES:${PN}-web = " \
-${bindir}/websetroot \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_web.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/web\
-"
-
-FILES:${PN}-words = " \
-${bindir}/im \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_words.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/words\
-"
-
-FILES:${PN}-flow = " \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_flow.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/flow \"
-
-FILES:${PN}-pair = " \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/twisted_pair.py* \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/pair \
-"
-
-FILES:${PN}-doc += " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/_pydoctortemplates/ \
-"
-
-FILES:${PN}-core:append = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/__pycache__ \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/__pycache__/*pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/__init__*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/notestplugin*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/testplugin*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_ftp*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_inet*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_manhole*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_portforward*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_socks*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_telnet*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_trial*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_core*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_qtstub*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_reactors*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/cred*.pyc \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/dropin*.cache \
-"
-
-FILES:${PN}-names:append = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_names*.pyc \
-"
-
-FILES:${PN}-news:append = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_news*.pyc \
-"
-
-FILES:${PN}-protocols:append = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/protocols/__pycache__/*pyc \
-"
-
-FILES:${PN}-conch:append = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_conch*.pyc \
-"
-
-FILES:${PN}-lore:append = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_lore*.pyc \
-"
-FILES:${PN}-mail:append = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_mail*.pyc \
-"
-
-FILES:${PN}-web:append = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_web*.pyc \
-"
-
-FILES:${PN}-words:append = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_words*.pyc \
-"
-
-FILES:${PN}-flow:append = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_flow*.pyc \
-"
-
-FILES:${PN}-pair:append = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_pair*.pyc \
-"
-
-FILES:${PN}-runner:append = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/plugins/__pycache__/twisted_runner*.pyc \
-"
diff --git a/meta-python/recipes-devtools/python/python3-twitter_4.10.1.bb b/meta-python/recipes-devtools/python/python3-twitter_4.10.1.bb
deleted file mode 100644
index b283aef568..0000000000
--- a/meta-python/recipes-devtools/python/python3-twitter_4.10.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Twitter for Python"
-DESCRIPTION = "Python module to support twitter API"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=9;endline=9;md5=8227180126797a0148f94f483f3e1489"
-
-SRC_URI[sha256sum] = "310193775d7fc381abd6f37021a9af27f7e9edfcce5ec51bd73ea5f30c21fa61"
-
-PYPI_PACKAGE = "tweepy"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-pip \
- ${PYTHON_PN}-pysocks \
- ${PYTHON_PN}-requests \
- ${PYTHON_PN}-requests-oauthlib \
- ${PYTHON_PN}-six \
-"
diff --git a/meta-python/recipes-devtools/python/python3-twitter_4.14.0.bb b/meta-python/recipes-devtools/python/python3-twitter_4.14.0.bb
new file mode 100644
index 0000000000..23ea996258
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-twitter_4.14.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Twitter for Python"
+DESCRIPTION = "Python module to support twitter API"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=9;endline=9;md5=8227180126797a0148f94f483f3e1489"
+
+SRC_URI[sha256sum] = "1f9f1707d6972de6cff6c5fd90dfe6a449cd2e0d70bd40043ffab01e07a06c8c"
+
+PYPI_PACKAGE = "tweepy"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-pip \
+ python3-pysocks \
+ python3-requests \
+ python3-requests-oauthlib \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb b/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb
index f45772d507..a8ad4bbdfb 100644
--- a/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb
+++ b/meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb
@@ -15,3 +15,5 @@ SRC_URI[sha256sum] = "b09d8bb50d33b23ff34cafb1f9209f858f752935c6a5c901efb92a41ac
inherit pypi setuptools3
BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += "python3-ctypes"
diff --git a/meta-python/recipes-devtools/python/python3-txaio_22.2.1.bb b/meta-python/recipes-devtools/python/python3-txaio_22.2.1.bb
deleted file mode 100644
index e2102695ec..0000000000
--- a/meta-python/recipes-devtools/python/python3-txaio_22.2.1.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "Compatibility API between asyncio/Twisted/Trollius"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=97c0bda20ad1d845c6369c0e47a1cd98"
-
-SRC_URI[sha256sum] = "2e4582b70f04b2345908254684a984206c0d9b50e3074a24a4c55aba21d24d01"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-twisted \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-txaio_23.1.1.bb b/meta-python/recipes-devtools/python/python3-txaio_23.1.1.bb
new file mode 100644
index 0000000000..b14e353818
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-txaio_23.1.1.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Compatibility API between asyncio/Twisted/Trollius"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3e2c2c2cc2915edc5321b0e6b1d3f5f8"
+
+SRC_URI[sha256sum] = "f9a9216e976e5e3246dfd112ad7ad55ca915606b60b84a757ac769bd404ff704"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-twisted \
+"
diff --git a/meta-python/recipes-devtools/python/python3-txdbus_1.1.2.bb b/meta-python/recipes-devtools/python/python3-txdbus_1.1.2.bb
index a117f17202..d579ca0441 100644
--- a/meta-python/recipes-devtools/python/python3-txdbus_1.1.2.bb
+++ b/meta-python/recipes-devtools/python/python3-txdbus_1.1.2.bb
@@ -1,5 +1,4 @@
SUMMARY = "A native Python implementation of the DBus protocol for Twisted applications."
-AUTHOR = "Tom Cocagne"
HOMEPAGE = "https://pypi.org/project/txdbus/"
SECTION = "devel/python"
LICENSE = "MIT"
diff --git a/meta-python/recipes-devtools/python/python3-typed-ast_1.5.4.bb b/meta-python/recipes-devtools/python/python3-typed-ast_1.5.4.bb
deleted file mode 100644
index e6c1746a8a..0000000000
--- a/meta-python/recipes-devtools/python/python3-typed-ast_1.5.4.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Modified fork of CPython's ast module that parses `# type:` comments"
-HOMEPAGE = "https://github.com/python/typed_ast"
-LICENSE = "Apache-2.0 & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=97f1494e93daf66a5df47118407a4c4f"
-
-PYPI_PACKAGE = "typed_ast"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-typeguard/run-ptest b/meta-python/recipes-devtools/python/python3-typeguard/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-typeguard/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-typeguard/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-typeguard_2.13.3.bb b/meta-python/recipes-devtools/python/python3-typeguard_2.13.3.bb
deleted file mode 100644
index e9fce61452..0000000000
--- a/meta-python/recipes-devtools/python/python3-typeguard_2.13.3.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Run-time type checker for Python"
-HOMEPAGE = "https://pypi.org/project/typeguard/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53"
-
-SRC_URI[sha256sum] = "00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4"
-
-inherit pypi python_setuptools_build_meta ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-typing-extensions \
- ${PYTHON_PN}-unixadmin \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-DEPENDS += "\
- python3-distutils-extra-native \
- python3-setuptools-scm-native \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-typeguard_4.2.1.bb b/meta-python/recipes-devtools/python/python3-typeguard_4.2.1.bb
new file mode 100644
index 0000000000..e0e84df28a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-typeguard_4.2.1.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Run-time type checker for Python"
+HOMEPAGE = "https://pypi.org/project/typeguard/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53"
+
+SRC_URI[sha256sum] = "c556a1b95948230510070ca53fa0341fb0964611bd05d598d87fb52115d65fee"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+ python3-core \
+ python3-compression \
+ python3-unittest \
+ python3-typing-extensions \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-typing-extensions \
+ python3-unittest-automake-output \
+ python3-unixadmin \
+ python3-mypy \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+DEPENDS += "\
+ python3-distutils-extra-native \
+ python3-setuptools-scm-native \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240316.bb b/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240316.bb
new file mode 100644
index 0000000000..c6f15696e9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-types-psutil_5.9.5.20240316.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Typing stubs for psutil"
+HOMEPAGE = "https://github.com/python/typeshed"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=ef4dc1e740f5c928f1608a4a9c7b578e"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "5636f5714bb930c64bb34c4d47a59dc92f9d610b778b5364a31daa5584944848"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.9.0.20240316.bb b/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.9.0.20240316.bb
new file mode 100644
index 0000000000..4b786066f7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-types-python-dateutil_2.9.0.20240316.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Typing stubs for python-dateutil"
+HOMEPAGE = "https://github.com/python/typeshed"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=ef4dc1e740f5c928f1608a4a9c7b578e"
+
+SRC_URI[sha256sum] = "5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-types-setuptools_69.0.0.20240125.bb b/meta-python/recipes-devtools/python/python3-types-setuptools_69.0.0.20240125.bb
new file mode 100644
index 0000000000..7e15dcb13a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-types-setuptools_69.0.0.20240125.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Typing stubs for setuptools"
+HOMEPAGE = "https://github.com/python/typeshed"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=ef4dc1e740f5c928f1608a4a9c7b578e"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "22ad498cb585b22ce8c97ada1fccdf294a2e0dd7dc984a28535a84ea82f45b3f"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-tzlocal_4.2.bb b/meta-python/recipes-devtools/python/python3-tzlocal_4.2.bb
deleted file mode 100644
index b9307f100f..0000000000
--- a/meta-python/recipes-devtools/python/python3-tzlocal_4.2.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Library to return tzinfo with the local timezone information"
-HOMEPAGE = "https://pypi.org/project/tzlocal/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=57e0bd61643d81d05683cdce65b11d10"
-
-SRC_URI[sha256sum] = "ee5842fa3a795f023514ac2d801c4a81d1743bbe642e3940143326b3a00addd7"
-
-inherit pypi python_setuptools_build_meta
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-pytz-deprecation-shim \
- ${PYTHON_PN}-datetime \
-"
diff --git a/meta-python/recipes-devtools/python/python3-tzlocal_5.2.bb b/meta-python/recipes-devtools/python/python3-tzlocal_5.2.bb
new file mode 100644
index 0000000000..da58964f2c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tzlocal_5.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Library to return tzinfo with the local timezone information"
+HOMEPAGE = "https://pypi.org/project/tzlocal/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=57e0bd61643d81d05683cdce65b11d10"
+
+SRC_URI[sha256sum] = "8d399205578f1a9342816409cc1e46a93ebd5755e39ea2d85334bea911bf0e6e"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += " \
+ python3-datetime \
+ python3-logging \
+ python3-zoneinfo \
+"
diff --git a/meta-python/recipes-devtools/python/python3-u-msgpack-python/run-ptest b/meta-python/recipes-devtools/python/python3-u-msgpack-python/run-ptest
index 7110f6bc40..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-u-msgpack-python/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-u-msgpack-python/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO test_umsgpack.py| sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-u-msgpack-python_2.7.1.bb b/meta-python/recipes-devtools/python/python3-u-msgpack-python_2.7.1.bb
deleted file mode 100644
index 3f26ba011c..0000000000
--- a/meta-python/recipes-devtools/python/python3-u-msgpack-python_2.7.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "A portable, lightweight MessagePack serializer and deserializer written in pure Python."
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9eb4691bcb66360acee473a8cf75f594"
-
-SRC_URI[md5sum] = "8691cea6bc7b44bce6e2115260a54323"
-SRC_URI[sha256sum] = "b7e7d433cab77171a4c752875d91836f3040306bab5063fb6dbe11f64ea69551"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- cp -f ${S}/test_umsgpack.py ${D}${PTEST_PATH}/
-}
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-datetime \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-u-msgpack-python_2.8.0.bb b/meta-python/recipes-devtools/python/python3-u-msgpack-python_2.8.0.bb
new file mode 100644
index 0000000000..6cde243fe8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-u-msgpack-python_2.8.0.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "A portable, lightweight MessagePack serializer and deserializer written in pure Python."
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=17df11353545c53a2df0ce7655859306"
+
+SRC_URI[sha256sum] = "b801a83d6ed75e6df41e44518b4f2a9c221dc2da4bcd5380e3a0feda520bc61a"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ cp -f ${S}/test_umsgpack.py ${D}${PTEST_PATH}/
+}
+
+RDEPENDS:${PN} += " \
+ python3-datetime \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-uefi-firmware_1.11.bb b/meta-python/recipes-devtools/python/python3-uefi-firmware_1.11.bb
new file mode 100644
index 0000000000..67e668ac69
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-uefi-firmware_1.11.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Various data structures and parsing tools for UEFI firmware."
+DESCRIPTION = "This package contains Python UEFI firmware parser tool. The \
+UEFI firmware parser is a simple module and set of scripts for parsing, \
+extracting, and recreating UEFI firmware volumes. This includes parsing \
+modules for BIOS, OptionROM, Intel ME and other formats too."
+HOMEPAGE = "https://github.com/theopolis/uefi-firmware-parser"
+LICENSE = "BSD-2-Clause & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://setup.py;md5=5a59066a8676f17262ef7e691f8ef253"
+
+SRC_URI = "git://github.com/theopolis/uefi-firmware-parser;protocol=https;branch=master"
+
+SRCREV = "f289219b99eb525cbc58e4dc2b07df3811f92ef7"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-uinput/0001-Deal-with-64bit-time_t-default-on-32bit-architecture.patch b/meta-python/recipes-devtools/python/python3-uinput/0001-Deal-with-64bit-time_t-default-on-32bit-architecture.patch
deleted file mode 100644
index 4095fc9095..0000000000
--- a/meta-python/recipes-devtools/python/python3-uinput/0001-Deal-with-64bit-time_t-default-on-32bit-architecture.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 69adf9e32f5b11e15c0cbe17f9331c77fed65bf8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 28 May 2022 15:50:50 -0700
-Subject: [PATCH] Deal with 64bit time_t default on 32bit architectures
-
-Deal with Y2K38 concerns related to Linux input events on more recent
-kernels and libcs on 32-bit systems
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libsuinput/src/suinput.c | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/libsuinput/src/suinput.c b/libsuinput/src/suinput.c
-index 8d5fb71..13ff16a 100644
---- a/libsuinput/src/suinput.c
-+++ b/libsuinput/src/suinput.c
-@@ -45,11 +45,20 @@ int suinput_emit(int uinput_fd, uint16_t ev_type, uint16_t ev_code,
- struct input_event event;
-
- memset(&event, 0, sizeof(event));
-- gettimeofday(&event.time, 0);
- event.type = ev_type;
- event.code = ev_code;
- event.value = ev_value;
-
-+/* attempt to deal with 64-bit time keeping on recent 32-bit systems */
-+#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64))
-+ gettimeofday(&event.time, 0);
-+#else
-+ struct timeval now;
-+ memset(&now, 0, sizeof(now));
-+ gettimeofday(&now, 0);
-+ event.input_event_sec = now.tv_sec;
-+ event.input_event_usec = now.tv_usec;
-+#endif
- return suinput_write_event(uinput_fd, &event);
- }
-
---
-2.36.1
-
diff --git a/meta-python/recipes-devtools/python/python3-uinput/0001-setup-use-setuptools-instead-of-distutils.patch b/meta-python/recipes-devtools/python/python3-uinput/0001-setup-use-setuptools-instead-of-distutils.patch
deleted file mode 100644
index 54a3c18676..0000000000
--- a/meta-python/recipes-devtools/python/python3-uinput/0001-setup-use-setuptools-instead-of-distutils.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 7a4dde83a9584adb42c7f810d882b1fbf5767e2c Mon Sep 17 00:00:00 2001
-From: Bartosz Golaszewski <brgl@bgdev.pl>
-Date: Tue, 24 May 2022 21:43:35 +0200
-Subject: [PATCH] setup: use setuptools instead of distutils
-
-The latter is deprecated, use setuptools instead.
-
-Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 3fa3343..4900b8b 100644
---- a/setup.py
-+++ b/setup.py
-@@ -3,7 +3,7 @@
- import errno
- import subprocess
-
--from distutils.core import setup, Extension
-+from setuptools import setup, Extension
-
- libudev_so = "libudev.so.1"
-
---
-2.34.1
-
diff --git a/meta-python/recipes-devtools/python/python3-uinput_0.11.2.bb b/meta-python/recipes-devtools/python/python3-uinput_0.11.2.bb
deleted file mode 100644
index ef466539bd..0000000000
--- a/meta-python/recipes-devtools/python/python3-uinput_0.11.2.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Python interface to Linux uinput kernel module."
-HOMEPAGE = "https://pypi.org/project/python-uinput/"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
-
-SRC_URI += "file://0001-setup-use-setuptools-instead-of-distutils.patch \
- file://0001-Deal-with-64bit-time_t-default-on-32bit-architecture.patch \
-"
-SRC_URI[sha256sum] = "99392b676c77b5795b86b7d75274db33fe754fd1e06fb3d58b167c797dc47f0c"
-
-PYPI_PACKAGE = "python-uinput"
-
-inherit pypi setuptools3
-
-DEPENDS += "udev"
-RDEPENDS:${PN} += " \
- python3-ctypes \
- python3-distutils \
-"
-RRECOMMENDS:${PN} += "kernel-module-uinput"
diff --git a/meta-python/recipes-devtools/python/python3-ujson/0001-setup.py-Do-not-strip-debugging-symbols.patch b/meta-python/recipes-devtools/python/python3-ujson/0001-setup.py-Do-not-strip-debugging-symbols.patch
index 42cd99a895..8ba8ada556 100644
--- a/meta-python/recipes-devtools/python/python3-ujson/0001-setup.py-Do-not-strip-debugging-symbols.patch
+++ b/meta-python/recipes-devtools/python/python3-ujson/0001-setup.py-Do-not-strip-debugging-symbols.patch
@@ -8,6 +8,8 @@ bitbake build errors related to already-stripped.
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
+Upstream-Status: Pending
+
setup.py | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/meta-python/recipes-devtools/python/python3-ujson/run-ptest b/meta-python/recipes-devtools/python/python3-ujson/run-ptest
index b1539453a6..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-ujson/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-ujson/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-python3 tests/test_ujson.py
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-ujson_5.5.0.bb b/meta-python/recipes-devtools/python/python3-ujson_5.5.0.bb
deleted file mode 100644
index 9f080eb278..0000000000
--- a/meta-python/recipes-devtools/python/python3-ujson_5.5.0.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Ultra fast JSON encoder and decoder for Python"
-DESCRIPTION = "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 2.5+ and 3."
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e0039a83d8a99726b5418f0b03302d0a"
-
-SRC_URI[sha256sum] = "b25077a971c7da47bd6846a912a747f6963776d90720c88603b1b55d81790780"
-
-inherit pypi ptest setuptools3
-
-SRC_URI += " \
- file://run-ptest \
- file://0001-setup.py-Do-not-strip-debugging-symbols.patch \
-"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-numbers \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-pytz \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-ujson_5.9.0.bb b/meta-python/recipes-devtools/python/python3-ujson_5.9.0.bb
new file mode 100644
index 0000000000..b5f6be9f27
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ujson_5.9.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Ultra fast JSON encoder and decoder for Python"
+DESCRIPTION = "UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 2.5+ and 3."
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e0039a83d8a99726b5418f0b03302d0a"
+
+SRC_URI[sha256sum] = "89cc92e73d5501b8a7f48575eeb14ad27156ad092c2e9fc7e3cf949f07e75532"
+
+inherit pypi ptest setuptools3
+
+SRC_URI += " \
+ file://run-ptest \
+ file://0001-setup.py-Do-not-strip-debugging-symbols.patch \
+"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} += "\
+ python3-datetime \
+ python3-numbers \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-json \
+ python3-pytest \
+ python3-pytz \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-unidiff/run-ptest b/meta-python/recipes-devtools/python/python3-unidiff/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-unidiff/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-unidiff/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-unidiff_0.7.4.bb b/meta-python/recipes-devtools/python/python3-unidiff_0.7.4.bb
deleted file mode 100644
index 3f6d2850fd..0000000000
--- a/meta-python/recipes-devtools/python/python3-unidiff_0.7.4.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Unified diff parsing/metadata extraction library"
-HOMEPAGE = "http://github.com/matiasb/python-unidiff"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4c434b08ef42fea235bb019b5e5a97b3"
-
-SRC_URI[sha256sum] = "2bbcbc986e1fb97f04b1d7b864aa6002ab02f4d8a996bf03aa6e5a81447d1fc5"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-io \
-"
diff --git a/meta-python/recipes-devtools/python/python3-unidiff_0.7.5.bb b/meta-python/recipes-devtools/python/python3-unidiff_0.7.5.bb
new file mode 100644
index 0000000000..d77252beac
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-unidiff_0.7.5.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Unified diff parsing/metadata extraction library"
+HOMEPAGE = "http://github.com/matiasb/python-unidiff"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4c434b08ef42fea235bb019b5e5a97b3"
+
+SRC_URI[sha256sum] = "2e5f0162052248946b9f0970a40e9e124236bf86c82b70821143a6fc1dea2574"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-codecs \
+ python3-io \
+"
diff --git a/meta-python/recipes-devtools/python/python3-unoconv_0.9.0.bb b/meta-python/recipes-devtools/python/python3-unoconv_0.9.0.bb
new file mode 100644
index 0000000000..8bfb8a6deb
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-unoconv_0.9.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Universal Office Converter - Office document conversion"
+HOMEPAGE = "https://github.com/unoconv/unoconv"
+LICENSE = "GPL-2.0-only"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI[sha256sum] = "308ebfd98e67d898834876348b27caf41470cd853fbe2681cc7dacd8fd5e6031"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE="unoconv"
+
+RDEPENDS:${PN} += "\
+ python3-setuptools \
+ python3-core \
+ python3-shell \
+"
+
+do_install:append() {
+ sed -i -e 's:^#!/usr/bin/env python$:#!/usr/bin/env python3:' ${D}/usr/bin/unoconv
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-uritemplate/run-ptest b/meta-python/recipes-devtools/python/python3-uritemplate/run-ptest
index b63c4de0d9..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-uritemplate/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-uritemplate/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb b/meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb
index eaf8bda846..e741b6268d 100644
--- a/meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb
+++ b/meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb
@@ -2,7 +2,6 @@
# https://git.yoctoproject.org/cgit/cgit.cgi/meta-cloud-services/tree/meta-openstack/recipes-devtools/python/python3-uritemplate_3.0.0.bb?h=master
SUMMARY = "Simple python library to deal with URI Templates."
-AUTHOR = "Ian Cordasco"
LICENSE = "Apache-2.0 | BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0f6d769bdcfacac3c1a1ffa568937fe0"
@@ -15,7 +14,8 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-uswid_0.4.7.bb b/meta-python/recipes-devtools/python/python3-uswid_0.4.7.bb
new file mode 100644
index 0000000000..4499edb216
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-uswid_0.4.7.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A pure-python library for embedding CoSWID data"
+HOMEPAGE = "https://github.com/hughsie/python-uswid"
+SECTION = "devel/python"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=40d2542b8c43a3ec2b7f5da31a697b88"
+
+SRC_URI[sha256sum] = "de15c2421bedaa5f54606558700c1f628f07d73da49ec69d1888214ac52c49e6"
+
+inherit setuptools3 python3native pypi
+
+DEPENDS += " python3-cbor2 python3-lxml python3-pefile"
+RDEPENDS:${PN} += " \
+ python3-cbor2 \
+ python3-json \
+ python3-lxml \
+ python3-netclient \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-validators/run-ptest b/meta-python/recipes-devtools/python/python3-validators/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-validators/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-validators_0.24.0.bb b/meta-python/recipes-devtools/python/python3-validators_0.24.0.bb
new file mode 100644
index 0000000000..78261dd67f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-validators_0.24.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Python Data Validation for Humans"
+HOMEPAGE = "https://python-validators.github.io/validators"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b3fb4b9e6db86c69a33d5e3ee013ab59"
+SRC_URI[sha256sum] = "cd23defb36de42d14e7559cf0757f761bb46b10d9de2998e6ef805f769d859e3"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-crypt \
+ python3-datetime \
+ python3-netclient \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-versioneer_0.29.bb b/meta-python/recipes-devtools/python/python3-versioneer_0.29.bb
new file mode 100644
index 0000000000..bdfbfd1be1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-versioneer_0.29.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Easy VCS-based management of project version strings"
+HOMEPAGE = "https://github.com/python-versioneer/python-versioneer"
+SECTION = "devel/python"
+
+LICENSE = "Unlicense"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f4c62131f879a8445e16a7f265aea635"
+
+SRC_URI[sha256sum] = "5ab283b9857211d61b53318b7c792cf68e798e765ee17c27ade9f6c924235731"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += "\
+ python3-json \
+ python3-netclient \
+ python3-tomllib \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb b/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb
index ea40d5f6bb..02639b5900 100644
--- a/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb
+++ b/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb
@@ -8,3 +8,5 @@ SRC_URI[md5sum] = "602b7db8eea30dd29a1d451997adf251"
SRC_URI[sha256sum] = "a969332887a18a9c98b0df0ea4d4ca75972f24ca94f06fb87d591377e83414f6"
inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-setuptools"
diff --git a/meta-python/recipes-devtools/python/python3-virtualenv_20.25.0.bb b/meta-python/recipes-devtools/python/python3-virtualenv_20.25.0.bb
new file mode 100644
index 0000000000..1858fee25a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-virtualenv_20.25.0.bb
@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: MIT
+# Copyright (C) 2023 iris-GmbH infrared & intelligent sensors
+
+SUMMARY = "A tool for creating isolated virtual python environments."
+HOMEPAGE = "https://github.com/pypa/virtualenv"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0ce089158cf60a8ab6abb452b6405538"
+
+SRC_URI[sha256sum] = "bf51c0d9c7dd63ea8e44086fa1e4fb1093a31e963b86959257378aef020e1f1b"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_hatchling
+
+DEPENDS += "\
+ python3-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += " \
+ python3-distlib \
+ python3-filelock \
+ python3-platformdirs \
+"
diff --git a/meta-python/recipes-devtools/python/python3-waitress_2.1.2.bb b/meta-python/recipes-devtools/python/python3-waitress_2.1.2.bb
deleted file mode 100644
index 061586b5df..0000000000
--- a/meta-python/recipes-devtools/python/python3-waitress_2.1.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A WSGI server for Python"
-DESCRIPTION = "Waitress is meant to be a production-quality pure-Python WSGI \
- server with very acceptable performance."
-HOMEPAGE = "https://github.com/Pylons/waitress"
-SECTION = "devel/python"
-LICENSE = "ZPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=78ccb3640dc841e1baecb3e27a6966b2"
-
-RDEPENDS:${PN} += " \
- python3-logging \
-"
-
-SRC_URI[sha256sum] = "780a4082c5fbc0fde6a2fcfe5e26e6efc1e8f425730863c04085769781f51eba"
-
-inherit python_setuptools_build_meta pypi
diff --git a/meta-python/recipes-devtools/python/python3-waitress_3.0.0.bb b/meta-python/recipes-devtools/python/python3-waitress_3.0.0.bb
new file mode 100644
index 0000000000..7470fc02a0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-waitress_3.0.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A WSGI server for Python"
+DESCRIPTION = "Waitress is meant to be a production-quality pure-Python WSGI \
+ server with very acceptable performance."
+HOMEPAGE = "https://github.com/Pylons/waitress"
+SECTION = "devel/python"
+LICENSE = "ZPL-2.1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=78ccb3640dc841e1baecb3e27a6966b2"
+
+RDEPENDS:${PN} += " \
+ python3-logging \
+"
+
+SRC_URI[sha256sum] = "005da479b04134cdd9dd602d1ee7c49d79de0537610d653674cc6cbde222b8a1"
+
+inherit python_setuptools_build_meta pypi
diff --git a/meta-python/recipes-devtools/python/python3-wand_0.6.13.bb b/meta-python/recipes-devtools/python/python3-wand_0.6.13.bb
new file mode 100644
index 0000000000..85e05ad97b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-wand_0.6.13.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Ctypes-based simple MagickWand API binding for Python"
+HOMEPAGE = "https://docs.wand-py.org/"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0bf19e5c00d047fee994ae332db3aab6"
+
+SRC_URI[sha256sum] = "f5013484eaf7a20eb22d1821aaefe60b50cc329722372b5f8565d46d4aaafcca"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE="Wand"
+
+FILES:${PN}-doc += "${datadir}/README.rst"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-watchdog_2.1.9.bb b/meta-python/recipes-devtools/python/python3-watchdog_2.1.9.bb
deleted file mode 100644
index 8c7c6dd476..0000000000
--- a/meta-python/recipes-devtools/python/python3-watchdog_2.1.9.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Filesystem events monitoring"
-DEPENDS = "${PYTHON_PN}-argh"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI[sha256sum] = "43ce20ebb36a51f21fa376f76d1d4692452b2527ccd601950d69ed36b9e21609"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = " \
- ${PYTHON_PN}-argh \
- ${PYTHON_PN}-pathtools3 \
- ${PYTHON_PN}-pyyaml \
- ${PYTHON_PN}-requests \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-watchdog_4.0.0.bb b/meta-python/recipes-devtools/python/python3-watchdog_4.0.0.bb
new file mode 100644
index 0000000000..9e36264d62
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-watchdog_4.0.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Filesystem events monitoring"
+DEPENDS = "python3-argh"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "e3e7065cbdabe6183ab82199d7a4f6b3ba0a438c5a512a68559846ccb76a78ec"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = " \
+ python3-argh \
+ python3-pathtools3 \
+ python3-pyyaml \
+ python3-requests \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-watchdogdev_1.0.0.bb b/meta-python/recipes-devtools/python/python3-watchdogdev_1.0.0.bb
new file mode 100644
index 0000000000..3acb366c1d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-watchdogdev_1.0.0.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Linux watchdog device API for Python."
+HOMEPAGE = "https://github.com/timka/watchdogdev"
+SECTION = "devel/python"
+LICENSE = "Python-2.0"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=47;endline=47;md5=ad880087bee2eb64e368954eb7b99bfd"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "776ba57a07aef0084466493f40ce20814a29f8914a10ef8177317d02559fd017"
diff --git a/meta-python/recipes-devtools/python/python3-web3_5.31.0.bb b/meta-python/recipes-devtools/python/python3-web3_5.31.0.bb
deleted file mode 100644
index 435eb1d065..0000000000
--- a/meta-python/recipes-devtools/python/python3-web3_5.31.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A Python library for interacting with Ethereum."
-HOMEPAGE = "https://github.com/ethereum/web3.py"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1dc2732bdc5e50382737979791cbb3b7"
-
-SRC_URI[sha256sum] = "ef0ad5c62958fe18202bacfa1f216a57d97a8abdecc68f87946c02b38aaab34e"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- python3-aiohttp \
- python3-distutils \
- python3-eth-account \
- python3-idna \
- python3-lru-dict \
- python3-requests \
- python3-setuptools \
- python3-websockets \
-"
diff --git a/meta-python/recipes-devtools/python/python3-web3_6.16.0.bb b/meta-python/recipes-devtools/python/python3-web3_6.16.0.bb
new file mode 100644
index 0000000000..01738f22c5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-web3_6.16.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "A Python library for interacting with Ethereum."
+HOMEPAGE = "https://github.com/ethereum/web3.py"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=373fede350846fdffd23648fba504635"
+
+SRC_URI[sha256sum] = "b10c93476c106acc44b8428e47c61c385b7d0885e82cdc24049d27f521833552"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-aiohttp \
+ python3-eth-abi \
+ python3-eth-account \
+ python3-eth-hash \
+ python3-eth-typing \
+ python3-eth-utils \
+ python3-hexbytes \
+ python3-jsonschema \
+ python3-protobuf \
+ python3-pydantic \
+ python3-requests \
+ python3-typing-extensions \
+ python3-websockets \
+ python3-pyunormalize \
+"
diff --git a/meta-python/recipes-devtools/python/python3-webargs_8.4.0.bb b/meta-python/recipes-devtools/python/python3-webargs_8.4.0.bb
new file mode 100644
index 0000000000..78af013320
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-webargs_8.4.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Declarative parsing and validation of HTTP request objects, with built-in support for popular web frameworks."
+HOMEPAGE = "https://github.com/marshmallow-code/webargs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dfbd4ae0074716275fc229c775723e8f"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "ea99368214a4ce613924be99d71db58c269631e95eff4fa09b7354e52dc006a5"
+
+RDEPENDS:${PN} += "\
+ python3-marshmallow \
+ python3-packaging \
+ python3-core \
+ python3-json \
+ python3-asyncio \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-webencodings_0.5.1.bb b/meta-python/recipes-devtools/python/python3-webencodings_0.5.1.bb
index ab33ce66e8..cedc790815 100644
--- a/meta-python/recipes-devtools/python/python3-webencodings_0.5.1.bb
+++ b/meta-python/recipes-devtools/python/python3-webencodings_0.5.1.bb
@@ -8,8 +8,8 @@ SRC_URI[sha256sum] = "b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab1674858
inherit pypi setuptools3
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-json \
+ python3-codecs \
+ python3-json \
"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-websocket-client_1.4.1.bb b/meta-python/recipes-devtools/python/python3-websocket-client_1.4.1.bb
deleted file mode 100644
index 39c5921c93..0000000000
--- a/meta-python/recipes-devtools/python/python3-websocket-client_1.4.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "websocket client for python"
-DESCRIPTION = "\
-websocket-client module is WebSocket client for python. \
-This provide the low level APIs for WebSocket. All APIs \
-are the synchronous functions."
-HOMEPAGE = "https://github.com/websocket-client/websocket-client"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b969e9612325987c823fc0737063ebc8"
-
-SRC_URI[sha256sum] = "f9611eb65c8241a67fb373bef040b3cf8ad377a9f6546a12b620b6511e8ea9ef"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-logging \
-"
diff --git a/meta-python/recipes-devtools/python/python3-websocket-client_1.7.0.bb b/meta-python/recipes-devtools/python/python3-websocket-client_1.7.0.bb
new file mode 100644
index 0000000000..fc73f1b0a5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-websocket-client_1.7.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "websocket client for python"
+DESCRIPTION = "\
+websocket-client module is WebSocket client for python. \
+This provide the low level APIs for WebSocket. All APIs \
+are the synchronous functions."
+HOMEPAGE = "https://github.com/websocket-client/websocket-client"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6eae3bb7247ccb2c3a087ea8de759c01"
+
+SRC_URI[sha256sum] = "10e511ea3a8c744631d3bd77e61eb17ed09304c413ad42cf6ddfa4c7787e8fe6"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+ python3-six \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-websockets_10.3.bb b/meta-python/recipes-devtools/python/python3-websockets_10.3.bb
deleted file mode 100644
index 64b96d3ed7..0000000000
--- a/meta-python/recipes-devtools/python/python3-websockets_10.3.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "An implementation of the WebSocket Protocol (RFC 6455)"
-HOMEPAGE = "https://github.com/aaugustin/websockets"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=78c2cc91e172ca96d6f8e4a76c739ec6"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "fc06cc8073c8e87072138ba1e431300e2d408f054b27047d047b549455066ff4"
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-asyncio \
-"
diff --git a/meta-python/recipes-devtools/python/python3-werkzeug_2.2.2.bb b/meta-python/recipes-devtools/python/python3-werkzeug_2.2.2.bb
deleted file mode 100644
index 92302f9cd7..0000000000
--- a/meta-python/recipes-devtools/python/python3-werkzeug_2.2.2.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "The Swiss Army knife of Python web development"
-DESCRIPTION = "\
-Werkzeug started as simple collection of various utilities for WSGI \
-applications and has become one of the most advanced WSGI utility modules. \
-It includes a powerful debugger, full featured request and response objects, \
-HTTP utilities to handle entity tags, cache control headers, HTTP dates, \
-cookie handling, file uploads, a powerful URL routing system and a bunch \
-of community contributed addon modules."
-HOMEPAGE = "http://werkzeug.pocoo.org/"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462"
-
-PYPI_PACKAGE = "Werkzeug"
-
-SRC_URI[sha256sum] = "7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f"
-
-inherit pypi setuptools3
-
-CLEANBROKEN = "1"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-difflib \
- ${PYTHON_PN}-email \
- ${PYTHON_PN}-html \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-pkgutil \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-simplejson \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-unixadmin \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-profile \
- ${PYTHON_PN}-markupsafe \
-"
diff --git a/meta-python/recipes-devtools/python/python3-werkzeug_3.0.1.bb b/meta-python/recipes-devtools/python/python3-werkzeug_3.0.1.bb
new file mode 100644
index 0000000000..f8d2769b41
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-werkzeug_3.0.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "The comprehensive WSGI web application library"
+DESCRIPTION = "\
+Werkzeug started as simple collection of various utilities for WSGI \
+applications and has become one of the most advanced WSGI utility modules. \
+It includes a powerful debugger, full featured request and response objects, \
+HTTP utilities to handle entity tags, cache control headers, HTTP dates, \
+cookie handling, file uploads, a powerful URL routing system and a bunch \
+of community contributed addon modules."
+HOMEPAGE = "https://werkzeug.palletsprojects.com"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462"
+
+SRC_URI[sha256sum] = "507e811ecea72b18a404947aded4b3390e1db8f826b494d76550ef45bb3b1dcc"
+
+inherit pypi python_flit_core
+
+RDEPENDS:${PN} += " \
+ python3-markupsafe \
+ python3-logging \
+ python3-profile \
+ python3-compression \
+ python3-json \
+"
diff --git a/meta-python/recipes-devtools/python/python3-whitenoise_6.6.0.bb b/meta-python/recipes-devtools/python/python3-whitenoise_6.6.0.bb
new file mode 100644
index 0000000000..352a53769a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-whitenoise_6.6.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Radically simplified static file serving for WSGI applications"
+AUTHOR = "David Evans <d@evans.io>"
+HOMEPAGE = "https://whitenoise.evans.io"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aba4901cc64e401cea5a267eac2a2e1e"
+
+PYPI_PACKAGE = "whitenoise"
+
+SRC_URI[sha256sum] = "8998f7370973447fac1e8ef6e8ded2c5209a7b1f67c1012866dbcd09681c3251"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN}:append = " \
+ python3-brotli \
+ python3-coverage \
+ python3-django \
+ python3-pytest \
+ python3-requests \
+"
diff --git a/meta-python/recipes-devtools/python/python3-whoosh/0001-Mark-non-determinstic-test_minimize_dfa-test-as-XFAI.patch b/meta-python/recipes-devtools/python/python3-whoosh/0001-Mark-non-determinstic-test_minimize_dfa-test-as-XFAI.patch
new file mode 100644
index 0000000000..91fea24524
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-whoosh/0001-Mark-non-determinstic-test_minimize_dfa-test-as-XFAI.patch
@@ -0,0 +1,29 @@
+From ede95a4f4487b4fc3cad8452ae388376966fca0e Mon Sep 17 00:00:00 2001
+From: Chris Lamb <lamby@debian.org>
+Date: Fri, 5 Apr 2019 15:48:23 +0200
+Subject: [PATCH] Mark non-determinstic test_minimize_dfa test as XFAIL
+
+Sourced from Debian [1]
+[1] https://sources.debian.org/src/python-whoosh/2.7.4%2Bgit6-g9134ad92-8/debian/patches/0003-Mark-non-determinstic-test_minimize_dfa-test-as-XFAI.patch/
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/test_automata.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/test_automata.py b/tests/test_automata.py
+index daab96c..7031dc3 100644
+--- a/tests/test_automata.py
++++ b/tests/test_automata.py
+@@ -327,6 +327,7 @@ def test_regular():
+ assert not ex.accept("bc")
+
+
++@pytest.mark.xfail(strict=False)
+ def test_minimize_dfa():
+ # Example from www.cs.odu.edu/~toida/nerzic/390teched/regular/fa/min-fa.html
+
+--
+2.44.0
+
diff --git a/meta-python/recipes-devtools/python/python3-whoosh/run-ptest b/meta-python/recipes-devtools/python/python3-whoosh/run-ptest
index 3385d68939..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-whoosh/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-whoosh/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb b/meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb
index ed2a6d423f..406de2e525 100644
--- a/meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb
+++ b/meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb
@@ -7,6 +7,8 @@ Whoosh works can be extended or replaced to meet your needs exactly."
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=05303186defc6141143629961c7c8a60"
+SRC_URI += "file://0001-Mark-non-determinstic-test_minimize_dfa-test-as-XFAI.patch"
+
SRC_URI[md5sum] = "893433e9c0525ac043df33e6e04caab2"
SRC_URI[sha256sum] = "e0857375f63e9041e03fedd5b7541f97cf78917ac1b6b06c1fcc9b45375dda69"
@@ -16,13 +18,13 @@ PYPI_PACKAGE_EXT = "zip"
inherit ptest pypi setuptools3
RDEPENDS:${PN} += " \
- ${PYTHON_PN}-email \
- ${PYTHON_PN}-multiprocessing \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-stringold \
+ python3-email \
+ python3-multiprocessing \
+ python3-netclient \
+ python3-numbers \
+ python3-pickle \
+ python3-shell \
+ python3-stringold \
"
SRC_URI += " \
@@ -30,8 +32,9 @@ SRC_URI += " \
"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-fcntl \
+ python3-fcntl \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-wpa-supplicant_0.2.bb b/meta-python/recipes-devtools/python/python3-wpa-supplicant_0.2.bb
index 5ac7786ad3..b9c62ced78 100644
--- a/meta-python/recipes-devtools/python/python3-wpa-supplicant_0.2.bb
+++ b/meta-python/recipes-devtools/python/python3-wpa-supplicant_0.2.bb
@@ -10,6 +10,8 @@ SRC_URI[sha256sum] = "3ad0f40a696763bb0f4d4dec5b51f6b53ccfeb7c16ebb5897349303045
SRC_URI += "file://0001-cli-drop-the-second-argument-from-click.argument-dec.patch"
PYPI_PACKAGE = "wpa_supplicant"
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/wpa_supplicant"
+UPSTREAM_CHECK_REGEX = "/wpa_supplicant/(?P<pver>(\d+[\.\-_]*)+)"
inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-wrapt/run-ptest b/meta-python/recipes-devtools/python/python3-wrapt/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-wrapt/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-wrapt_1.14.1.bb b/meta-python/recipes-devtools/python/python3-wrapt_1.14.1.bb
deleted file mode 100644
index 54bf1ee99a..0000000000
--- a/meta-python/recipes-devtools/python/python3-wrapt_1.14.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "A Python module for decorators, wrappers and monkey patching."
-HOMEPAGE = "http://wrapt.readthedocs.org/"
-LICENSE = "BSD-2-Clause"
-SECTION = "devel/python"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7a4e084dbc322d180bc74f26cdf8236e"
-
-SRC_URI[sha256sum] = "380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN}:class-target += "\
- ${PYTHON_PN}-stringold \
- ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-wrapt_1.16.0.bb b/meta-python/recipes-devtools/python/python3-wrapt_1.16.0.bb
new file mode 100644
index 0000000000..056323cd39
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-wrapt_1.16.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "A Python module for decorators, wrappers and monkey patching."
+HOMEPAGE = "http://wrapt.readthedocs.org/"
+LICENSE = "BSD-2-Clause"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dc34cbad60bc961452eb7ade801d25f7"
+
+SRC_URI[sha256sum] = "5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN}:class-target += "\
+ python3-stringold \
+ python3-threading \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-wsproto/run-ptest b/meta-python/recipes-devtools/python/python3-wsproto/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-wsproto/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-wsproto_1.2.0.bb b/meta-python/recipes-devtools/python/python3-wsproto_1.2.0.bb
new file mode 100644
index 0000000000..09f5565a94
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-wsproto_1.2.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "WebSockets state-machine based protocol implementation"
+HOMEPAGE = "https://github.com/python-hyper/wsproto/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=69fabf732409f4ac61875827b258caaf"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI[sha256sum] = "ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/test/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += " \
+ python3-h11 \
+ python3-netclient \
+"
diff --git a/meta-python/recipes-devtools/python/python3-wtforms_3.0.1.bb b/meta-python/recipes-devtools/python/python3-wtforms_3.0.1.bb
deleted file mode 100644
index 36a0191dc9..0000000000
--- a/meta-python/recipes-devtools/python/python3-wtforms_3.0.1.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "A flexible forms validation and rendering library for python web development."
-HOMEPAGE = "https://pypi.python.org/pypi/WTForms"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=53dbfa56f61b90215a9f8f0d527c043d"
-
-SRC_URI[sha256sum] = "6b351bbb12dd58af57ffef05bc78425d08d1914e0fd68ee14143b7ade023c5bc"
-
-PYPI_PACKAGE = "WTForms"
-
-inherit pypi setuptools3
-
-DEPENDS += "\
- ${PYTHON_PN}-pip-native \
- ${PYTHON_PN}-babel-native \
- "
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-markupsafe \
- "
diff --git a/meta-python/recipes-devtools/python/python3-wtforms_3.1.2.bb b/meta-python/recipes-devtools/python/python3-wtforms_3.1.2.bb
new file mode 100644
index 0000000000..b3ba14ff7f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-wtforms_3.1.2.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "A flexible forms validation and rendering library for python web development."
+HOMEPAGE = "https://pypi.python.org/pypi/WTForms"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=17ed54aa95f4a6cd0d7a4747d14b64d0"
+
+SRC_URI[sha256sum] = "f8d76180d7239c94c6322f7990ae1216dae3659b7aa1cee94b6318bdffb474b9"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/WTForms"
+UPSTREAM_CHECK_REGEX = "/WTForms/(?P<pver>(\d+[\.\-_]*)+)"
+
+inherit pypi python_hatchling
+
+DEPENDS += "\
+ python3-pip-native \
+ python3-babel-native \
+ "
+
+RDEPENDS:${PN} += "\
+ python3-netserver \
+ python3-numbers \
+ python3-markupsafe \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-xlrd/run-ptest b/meta-python/recipes-devtools/python/python3-xlrd/run-ptest
index 3385d68939..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-xlrd/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-xlrd/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb b/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
index da0dc26715..aedf483bef 100644
--- a/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
+++ b/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
@@ -17,13 +17,18 @@ SRCREV = "b8d573e11ec149da695d695c81a156232b89a949"
S = "${WORKDIR}/git"
inherit ptest setuptools3
-PIP_INSTALL_PACKAGE = "xlrd"
-PIP_INSTALL_DIST_PATH = "${S}/dist"
-RDEPENDS:${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell"
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-io \
+ python3-mmap \
+ python3-pprint \
+ python3-shell \
+"
RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
+ python3-pytest \
+ python3-unittest-automake-output \
"
do_install_ptest() {
diff --git a/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.3.bb b/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.3.bb
deleted file mode 100644
index 0f8dd35e0f..0000000000
--- a/meta-python/recipes-devtools/python/python3-xlsxwriter_3.0.3.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Python 2 and 3 compatibility library"
-HOMEPAGE = "https://xlsxwriter.readthedocs.io"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2b9a26d1a52d2c66df334bbdad23896a"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "XlsxWriter"
-
-RDEPENDS:${PN} += " \
- python3-crypt \
- python3-datetime \
- python3-compression \
- python3-numbers \
- python3-io \
-"
-
-SRC_URI[sha256sum] = "e89f4a1d2fa2c9ea15cde77de95cd3fd8b0345d0efb3964623f395c8c4988b7f"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.9.bb b/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.9.bb
new file mode 100644
index 0000000000..ee7dab35cb
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.9.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Python 2 and 3 compatibility library"
+HOMEPAGE = "https://xlsxwriter.readthedocs.io"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=12d9fac1f0049be71ab5aa4a78da02b0"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "XlsxWriter"
+
+RDEPENDS:${PN} += " \
+ python3-crypt \
+ python3-datetime \
+ python3-compression \
+ python3-numbers \
+ python3-io \
+"
+
+SRC_URI[sha256sum] = "de810bf328c6a4550f4ffd6b0b34972aeb7ffcf40f3d285a0413734f9b63a929"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb b/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb
deleted file mode 100644
index e81e4dabee..0000000000
--- a/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "unittest-based test runner with Ant/JUnit like XML reporting"
-HOMEPAGE = "https://github.com/pycontribs/xmlrunner"
-LICENSE = "LGPL-3.0-only"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=fa964f202b6ae067ed5828fe43c77c1a"
-
-SRC_URI[md5sum] = "7b0b152ed2d278516aedbc0cac22dfb3"
-SRC_URI[sha256sum] = "5a6113d049eca7646111ee657266966e5bbfb0b5ceb2e83ee0772e16d7110f39"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-xmlschema_2.1.0.bb b/meta-python/recipes-devtools/python/python3-xmlschema_2.1.0.bb
deleted file mode 100644
index d7988b8761..0000000000
--- a/meta-python/recipes-devtools/python/python3-xmlschema_2.1.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "The xmlschema library is an implementation of XML Schema for Python (supports Python 3.6+)."
-HOMEPAGE = "https://github.com/sissaschool/xmlschema"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0ab20f8e337bea2e6874f372edfd12c0"
-
-SRC_URI[sha256sum] = "e7f70c305e0def2a2293ab7110827086c477ab3c6f8757d2acb3ccbfa6b425a4"
-
-PYPI_PACKAGE = "xmlschema"
-inherit pypi setuptools3
-
-DEPENDS += "\
- ${PYTHON_PN}-elementpath-native \
-"
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-elementpath \
- ${PYTHON_PN}-modules \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-xmlschema_3.0.1.bb b/meta-python/recipes-devtools/python/python3-xmlschema_3.0.1.bb
new file mode 100644
index 0000000000..97dc683785
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xmlschema_3.0.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "The xmlschema library is an implementation of XML Schema for Python (supports Python 3.6+)."
+HOMEPAGE = "https://github.com/sissaschool/xmlschema"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=26aa26eda991a3a2b61c11b62d3fda65"
+
+SRC_URI[sha256sum] = "bb24a5f4738e49d85d9eb03a2b5af26bbbbfdb055517ad953d98925094b8c026"
+
+PYPI_PACKAGE = "xmlschema"
+inherit pypi setuptools3
+
+DEPENDS += "\
+ python3-elementpath-native \
+"
+
+RDEPENDS:${PN} += "\
+ python3-elementpath \
+ python3-modules \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-xmltodict/run-ptest b/meta-python/recipes-devtools/python/python3-xmltodict/run-ptest
deleted file mode 100644
index 3385d68939..0000000000
--- a/meta-python/recipes-devtools/python/python3-xmltodict/run-ptest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta-python/recipes-devtools/python/python3-xmltodict_0.12.0.bb b/meta-python/recipes-devtools/python/python3-xmltodict_0.12.0.bb
deleted file mode 100644
index 1d871b2d35..0000000000
--- a/meta-python/recipes-devtools/python/python3-xmltodict_0.12.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Makes working with XML feel like you are working with JSON"
-AUTHOR = "Martin Blech"
-HOMEPAGE = "https://github.com/martinblech/xmltodict"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=01441d50dc74476db58a41ac10cb9fa2"
-
-SRC_URI[md5sum] = "ddb2bd078cef4f7e3021a578034ad941"
-SRC_URI[sha256sum] = "50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21"
-
-PYPI_PACKAGE = "xmltodict"
-
-inherit pypi setuptools3 ptest
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-python/recipes-devtools/python/python3-xmodem_0.4.6.bb b/meta-python/recipes-devtools/python/python3-xmodem_0.4.6.bb
deleted file mode 100644
index 6df392e2d6..0000000000
--- a/meta-python/recipes-devtools/python/python3-xmodem_0.4.6.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "XMODEM protocol implementation"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-SRC_URI[sha256sum] = "089737298f5738eabc43f2519efdc80b402693768f16383f7013b9e6f8f279d7"
-
-inherit pypi setuptools3
-
-do_install:append() {
- install -d ${D}${docdir}/${PN}
- mv ${D}/usr/doc/* ${D}${docdir}/${PN}/
- rmdir ${D}/usr/doc
-}
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-logging \
-"
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-xmodem_0.4.7.bb b/meta-python/recipes-devtools/python/python3-xmodem_0.4.7.bb
new file mode 100644
index 0000000000..482f0c641b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xmodem_0.4.7.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "XMODEM protocol implementation"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+SRC_URI[sha256sum] = "2f1068aa8676f0d1d112498b5786c4f8ea4f89d8f25d07d3a0f293cd21db1c35"
+
+inherit pypi setuptools3
+
+do_install:append() {
+ install -d ${D}${docdir}/${PN}
+ mv ${D}/usr/doc/* ${D}${docdir}/${PN}/
+ rmdir ${D}/usr/doc
+}
+
+RDEPENDS:${PN} += " \
+ python3-logging \
+"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-xstatic-font-awesome_4.7.0.0.bb b/meta-python/recipes-devtools/python/python3-xstatic-font-awesome_4.7.0.0.bb
deleted file mode 100644
index ccd1cd787d..0000000000
--- a/meta-python/recipes-devtools/python/python3-xstatic-font-awesome_4.7.0.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "Font Awesome icons packaged for setuptools (easy_install) / pip."
-HOMEPAGE = "https://pypi.python.org/pypi/XStatic-Font-Awesome"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=313d021898694cd2b0ea6508bdfe51a2"
-
-PYPI_PACKAGE = "XStatic-Font-Awesome"
-
-SRC_URI[md5sum] = "141a0e9a7e21e82f922573a00ae0c166"
-SRC_URI[sha256sum] = "e01fb480caaa7c7963dcb3328a4700e631bef6070db0e8b685816d220e685f6c"
-
-DEPENDS += " \
- ${PYTHON_PN}-xstatic \
- ${PYTHON_PN}-pip \
-"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-xstatic-font-awesome_6.2.1.1.bb b/meta-python/recipes-devtools/python/python3-xstatic-font-awesome_6.2.1.1.bb
new file mode 100644
index 0000000000..f4a51f318e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xstatic-font-awesome_6.2.1.1.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Font Awesome icons packaged for setuptools (easy_install) / pip."
+HOMEPAGE = "https://pypi.python.org/pypi/XStatic-Font-Awesome"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=f1a2fe131dcb2fc6243c26cf05ecdb36"
+
+PYPI_PACKAGE = "XStatic-Font-Awesome"
+
+SRC_URI[sha256sum] = "f075871096128638f2e1539020d8227754c3d885dd68e7ee6de9a01235076828"
+
+DEPENDS += " \
+ python3-xstatic \
+ python3-pip \
+"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-xstatic_1.0.2.bb b/meta-python/recipes-devtools/python/python3-xstatic_1.0.2.bb
deleted file mode 100644
index 8de3959450..0000000000
--- a/meta-python/recipes-devtools/python/python3-xstatic_1.0.2.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "XStatic base package with minimal support code"
-HOMEPAGE = "https://pypi.python.org/pypi/XStatic"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://README.txt;md5=1418684272f85f400cebf1b1a255c5cd"
-
-PYPI_PACKAGE = "XStatic"
-
-SRC_URI[md5sum] = "dea172b7b14b0dbcd5ed63075221af4b"
-SRC_URI[sha256sum] = "80b78dfe37bce6dee4343d64c65375a80bcf399b46dd47c0c7d56161568a23a8"
-
-DEPENDS += " \
- ${PYTHON_PN}-pip \
-"
-
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-xstatic_1.0.3.bb b/meta-python/recipes-devtools/python/python3-xstatic_1.0.3.bb
new file mode 100644
index 0000000000..22bfa365ff
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xstatic_1.0.3.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "XStatic base package with minimal support code"
+HOMEPAGE = "https://pypi.python.org/pypi/XStatic"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.txt;md5=1418684272f85f400cebf1b1a255c5cd"
+
+PYPI_PACKAGE = "XStatic"
+
+SRC_URI[sha256sum] = "402544cc9e179489441054f09c807804e115ea246907de87c0355fb4f5a31268"
+
+DEPENDS += " \
+ python3-pip \
+"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-xxhash/run-ptest b/meta-python/recipes-devtools/python/python3-xxhash/run-ptest
index e398fa8ca0..72c918c1a1 100644
--- a/meta-python/recipes-devtools/python/python3-xxhash/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-xxhash/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest tests/test.py -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake tests/test.py
diff --git a/meta-python/recipes-devtools/python/python3-xxhash_3.0.0.bb b/meta-python/recipes-devtools/python/python3-xxhash_3.0.0.bb
deleted file mode 100644
index ca8ed3b01e..0000000000
--- a/meta-python/recipes-devtools/python/python3-xxhash_3.0.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "xxhash is a Python binding for the xxHash library by Yann Collet."
-SECTION = "devel/python"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3a9dab7f159514231249aa3e108ab26b"
-
-SRC_URI[sha256sum] = "30b2d97aaf11fb122023f6b44ebb97c6955e9e00d7461a96415ca030b5ceb9c7"
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-inherit pypi setuptools3 ptest
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-python/recipes-devtools/python/python3-xxhash_3.4.1.bb b/meta-python/recipes-devtools/python/python3-xxhash_3.4.1.bb
new file mode 100644
index 0000000000..be9ce005ea
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xxhash_3.4.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "xxhash is a Python binding for the xxHash library by Yann Collet."
+SECTION = "devel/python"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3a9dab7f159514231249aa3e108ab26b"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+SRC_URI[sha256sum] = "0379d6cf1ff987cd421609a264ce025e74f346e3e145dd106c0cc2e3ec3f99a9"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+inherit pypi python_setuptools_build_meta ptest
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb b/meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb
deleted file mode 100644
index 0deb1b7dd4..0000000000
--- a/meta-python/recipes-devtools/python/python3-yamlloader_1.1.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Ordered YAML loader and dumper for PyYAML."
-HOMEPAGE = "https://github.com/Phynix/yamlloader"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6831ef36faa29329bce2420c5356f97e"
-
-SRC_URI[sha256sum] = "8a297c7a197683ba02e5e2b882ffd6c6180d01bdefb534b69cd3962df020bfe6"
-
-inherit pypi python_setuptools_build_meta
-
-RDEPENDS:${PN}:class-target += "\
- ${PYTHON_PN}-pyyaml \
-"
diff --git a/meta-python/recipes-devtools/python/python3-yamlloader_1.3.2.bb b/meta-python/recipes-devtools/python/python3-yamlloader_1.3.2.bb
new file mode 100644
index 0000000000..93c58c11ca
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-yamlloader_1.3.2.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Ordered YAML loader and dumper for PyYAML."
+HOMEPAGE = "https://github.com/Phynix/yamlloader"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6831ef36faa29329bce2420c5356f97e"
+
+SRC_URI[sha256sum] = "7dbd98421d8090c521655f1b06ca030067f29df5253a8878126bce3a90f56817"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN}:class-target += "\
+ python3-pyyaml \
+"
diff --git a/meta-python/recipes-devtools/python/python3-yappi/0001-Fix-imports-for-ptests.patch b/meta-python/recipes-devtools/python/python3-yappi/0001-Fix-imports-for-ptests.patch
deleted file mode 100644
index fa58897e68..0000000000
--- a/meta-python/recipes-devtools/python/python3-yappi/0001-Fix-imports-for-ptests.patch
+++ /dev/null
@@ -1,3905 +0,0 @@
-From 0dedc1c573ddc4e87475eb03c64555cd54a72e92 Mon Sep 17 00:00:00 2001
-From: Trevor Gamblin <trevor.gamblin@windriver.com>
-Date: Mon, 7 Jun 2021 09:40:20 -0400
-Subject: [PATCH] Fix imports for tests
-
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
----
- tests/test_asyncio.py | 2 +-
- tests/test_asyncio_context_vars.py | 2 +-
- tests/test_functionality.py | 2 +-
- tests/test_gevent.py | 2 +-
- tests/test_hooks.py | 2 +-
- tests/test_tags.py | 2 +-
- 6 files changed, 6 insertions(+), 6 deletions(-)
-
---- a/tests/test_asyncio.py
-+++ b/tests/test_asyncio.py
-@@ -2,7 +2,7 @@ import unittest
- import yappi
- import asyncio
- import threading
--from utils import YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io
-+from .utils import YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io
-
-
- @asyncio.coroutine
---- a/tests/test_asyncio_context_vars.py
-+++ b/tests/test_asyncio_context_vars.py
-@@ -5,7 +5,7 @@ import contextvars
- import functools
- import time
- import os
--import utils
-+import tests.utils as utils
- import yappi
-
- async_context_id = contextvars.ContextVar('async_context_id')
---- a/tests/test_functionality.py
-+++ b/tests/test_functionality.py
-@@ -1,1916 +1,1916 @@
--import os
--import sys
--import time
--import threading
--import unittest
--import yappi
--import _yappi
--import utils
--import multiprocessing # added to fix http://bugs.python.org/issue15881 for > Py2.6
--import subprocess
--
--_counter = 0
--
--
--class BasicUsage(utils.YappiUnitTestCase):
--
-- def test_callback_function_int_return_overflow(self):
-- # this test is just here to check if any errors are generated, as the err
-- # is printed in C side, I did not include it here. THere are ways to test
-- # this deterministically, I did not bother
-- import ctypes
--
-- def _unsigned_overflow_margin():
-- return 2**(ctypes.sizeof(ctypes.c_void_p) * 8) - 1
--
-- def foo():
-- pass
--
-- #with utils.captured_output() as (out, err):
-- yappi.set_context_id_callback(_unsigned_overflow_margin)
-- yappi.set_tag_callback(_unsigned_overflow_margin)
-- yappi.start()
-- foo()
--
-- def test_issue60(self):
--
-- def foo():
-- buf = bytearray()
-- buf += b't' * 200
-- view = memoryview(buf)[10:]
-- view = view.tobytes()
-- del buf[:10] # this throws exception
-- return view
--
-- yappi.start(builtins=True)
-- foo()
-- self.assertTrue(
-- len(
-- yappi.get_func_stats(
-- filter_callback=lambda x: yappi.
-- func_matches(x, [memoryview.tobytes])
-- )
-- ) > 0
-- )
-- yappi.stop()
--
-- def test_issue54(self):
--
-- def _tag_cbk():
-- global _counter
-- _counter += 1
-- return _counter
--
-- def a():
-- pass
--
-- def b():
-- pass
--
-- yappi.set_tag_callback(_tag_cbk)
-- yappi.start()
-- a()
-- a()
-- a()
-- yappi.stop()
-- stats = yappi.get_func_stats()
-- self.assertEqual(stats.pop().ncall, 3) # aggregated if no tag is given
-- stats = yappi.get_func_stats(tag=1)
--
-- for i in range(1, 3):
-- stats = yappi.get_func_stats(tag=i)
-- stats = yappi.get_func_stats(
-- tag=i, filter_callback=lambda x: yappi.func_matches(x, [a])
-- )
--
-- stat = stats.pop()
-- self.assertEqual(stat.ncall, 1)
--
-- yappi.set_tag_callback(None)
-- yappi.clear_stats()
-- yappi.start()
-- b()
-- b()
-- stats = yappi.get_func_stats()
-- self.assertEqual(len(stats), 1)
-- stat = stats.pop()
-- self.assertEqual(stat.ncall, 2)
--
-- def test_filter(self):
--
-- def a():
-- pass
--
-- def b():
-- a()
--
-- def c():
-- b()
--
-- _TCOUNT = 5
--
-- ts = []
-- yappi.start()
-- for i in range(_TCOUNT):
-- t = threading.Thread(target=c)
-- t.start()
-- ts.append(t)
--
-- for t in ts:
-- t.join()
--
-- yappi.stop()
--
-- ctx_ids = []
-- for tstat in yappi.get_thread_stats():
-- if tstat.name == '_MainThread':
-- main_ctx_id = tstat.id
-- else:
-- ctx_ids.append(tstat.id)
--
-- fstats = yappi.get_func_stats(filter={"ctx_id": 9})
-- self.assertTrue(fstats.empty())
-- fstats = yappi.get_func_stats(
-- filter={
-- "ctx_id": main_ctx_id,
-- "name": "c"
-- }
-- ) # main thread
-- self.assertTrue(fstats.empty())
--
-- for i in ctx_ids:
-- fstats = yappi.get_func_stats(
-- filter={
-- "ctx_id": i,
-- "name": "a",
-- "ncall": 1
-- }
-- )
-- self.assertEqual(fstats.pop().ncall, 1)
-- fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "b"})
-- self.assertEqual(fstats.pop().ncall, 1)
-- fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "c"})
-- self.assertEqual(fstats.pop().ncall, 1)
--
-- yappi.clear_stats()
-- yappi.start(builtins=True)
-- time.sleep(0.1)
-- yappi.stop()
-- fstats = yappi.get_func_stats(filter={"module": "time"})
-- self.assertEqual(len(fstats), 1)
--
-- # invalid filters`
-- self.assertRaises(
-- Exception, yappi.get_func_stats, filter={'tag': "sss"}
-- )
-- self.assertRaises(
-- Exception, yappi.get_func_stats, filter={'ctx_id': "None"}
-- )
--
-- def test_filter_callback(self):
--
-- def a():
-- time.sleep(0.1)
--
-- def b():
-- a()
--
-- def c():
-- pass
--
-- def d():
-- pass
--
-- yappi.set_clock_type("wall")
-- yappi.start(builtins=True)
-- a()
-- b()
-- c()
-- d()
-- stats = yappi.get_func_stats(
-- filter_callback=lambda x: yappi.func_matches(x, [a, b])
-- )
-- #stats.print_all()
-- r1 = '''
-- tests/test_functionality.py:98 a 2 0.000000 0.200350 0.100175
-- tests/test_functionality.py:101 b 1 0.000000 0.120000 0.100197
-- '''
-- self.assert_traces_almost_equal(r1, stats)
-- self.assertEqual(len(stats), 2)
-- stats = yappi.get_func_stats(
-- filter_callback=lambda x: yappi.
-- module_matches(x, [sys.modules[__name__]])
-- )
-- r1 = '''
-- tests/test_functionality.py:98 a 2 0.000000 0.230130 0.115065
-- tests/test_functionality.py:101 b 1 0.000000 0.120000 0.109011
-- tests/test_functionality.py:104 c 1 0.000000 0.000002 0.000002
-- tests/test_functionality.py:107 d 1 0.000000 0.000001 0.000001
-- '''
-- self.assert_traces_almost_equal(r1, stats)
-- self.assertEqual(len(stats), 4)
--
-- stats = yappi.get_func_stats(
-- filter_callback=lambda x: yappi.func_matches(x, [time.sleep])
-- )
-- self.assertEqual(len(stats), 1)
-- r1 = '''
-- time.sleep 2 0.206804 0.220000 0.103402
-- '''
-- self.assert_traces_almost_equal(r1, stats)
--
-- def test_print_formatting(self):
--
-- def a():
-- pass
--
-- def b():
-- a()
--
-- func_cols = {
-- 1: ("name", 48),
-- 0: ("ncall", 5),
-- 2: ("tsub", 8),
-- }
-- thread_cols = {
-- 1: ("name", 48),
-- 0: ("ttot", 8),
-- }
--
-- yappi.start()
-- a()
-- b()
-- yappi.stop()
-- fs = yappi.get_func_stats()
-- cs = fs[1].children
-- ts = yappi.get_thread_stats()
-- #fs.print_all(out=sys.stderr, columns={1:("name", 70), })
-- #cs.print_all(out=sys.stderr, columns=func_cols)
-- #ts.print_all(out=sys.stderr, columns=thread_cols)
-- #cs.print_all(out=sys.stderr, columns={})
--
-- self.assertRaises(
-- yappi.YappiError, fs.print_all, columns={1: ("namee", 9)}
-- )
-- self.assertRaises(
-- yappi.YappiError, cs.print_all, columns={1: ("dd", 0)}
-- )
-- self.assertRaises(
-- yappi.YappiError, ts.print_all, columns={1: ("tidd", 0)}
-- )
--
-- def test_get_clock(self):
-- yappi.set_clock_type('cpu')
-- self.assertEqual('cpu', yappi.get_clock_type())
-- clock_info = yappi.get_clock_info()
-- self.assertTrue('api' in clock_info)
-- self.assertTrue('resolution' in clock_info)
--
-- yappi.set_clock_type('wall')
-- self.assertEqual('wall', yappi.get_clock_type())
--
-- t0 = yappi.get_clock_time()
-- time.sleep(0.1)
-- duration = yappi.get_clock_time() - t0
-- self.assertTrue(0.05 < duration < 0.3)
--
-- def test_profile_decorator(self):
--
-- def aggregate(func, stats):
-- fname = "tests/%s.profile" % (func.__name__)
-- try:
-- stats.add(fname)
-- except IOError:
-- pass
-- stats.save(fname)
-- raise Exception("messing around")
--
-- @yappi.profile(return_callback=aggregate)
-- def a(x, y):
-- if x + y == 25:
-- raise Exception("")
-- return x + y
--
-- def b():
-- pass
--
-- try:
-- os.remove(
-- "tests/a.profile"
-- ) # remove the one from prev test, if available
-- except:
-- pass
--
-- # global profile is on to mess things up
-- yappi.start()
-- b()
--
-- # assert functionality and call function at same time
-- try:
-- self.assertEqual(a(1, 2), 3)
-- except:
-- pass
-- try:
-- self.assertEqual(a(2, 5), 7)
-- except:
-- pass
-- try:
-- a(4, 21)
-- except:
-- pass
-- stats = yappi.get_func_stats().add("tests/a.profile")
-- fsa = utils.find_stat_by_name(stats, 'a')
-- self.assertEqual(fsa.ncall, 3)
-- self.assertEqual(len(stats), 1) # b() should be cleared out.
--
-- @yappi.profile(return_callback=aggregate)
-- def count_down_rec(n):
-- if n == 0:
-- return
-- count_down_rec(n - 1)
--
-- try:
-- os.remove(
-- "tests/count_down_rec.profile"
-- ) # remove the one from prev test, if available
-- except:
-- pass
--
-- try:
-- count_down_rec(4)
-- except:
-- pass
-- try:
-- count_down_rec(3)
-- except:
-- pass
--
-- stats = yappi.YFuncStats("tests/count_down_rec.profile")
-- fsrec = utils.find_stat_by_name(stats, 'count_down_rec')
-- self.assertEqual(fsrec.ncall, 9)
-- self.assertEqual(fsrec.nactualcall, 2)
--
-- def test_strip_dirs(self):
--
-- def a():
-- pass
--
-- stats = utils.run_and_get_func_stats(a, )
-- stats.strip_dirs()
-- fsa = utils.find_stat_by_name(stats, "a")
-- self.assertEqual(fsa.module, os.path.basename(fsa.module))
--
-- @unittest.skipIf(os.name == "nt", "do not run on Windows")
-- def test_run_as_script(self):
-- import re
-- p = subprocess.Popen(
-- ['yappi', os.path.join('./tests', 'run_as_script.py')],
-- stdout=subprocess.PIPE
-- )
-- out, err = p.communicate()
-- self.assertEqual(p.returncode, 0)
-- func_stats, thread_stats = re.split(
-- b'name\\s+id\\s+tid\\s+ttot\\s+scnt\\s*\n', out
-- )
-- self.assertTrue(b'FancyThread' in thread_stats)
--
-- def test_yappi_overhead(self):
-- LOOP_COUNT = 100000
--
-- def a():
-- pass
--
-- def b():
-- for i in range(LOOP_COUNT):
-- a()
--
-- t0 = time.time()
-- yappi.start()
-- b()
-- yappi.stop()
-- time_with_yappi = time.time() - t0
-- t0 = time.time()
-- b()
-- time_without_yappi = time.time() - t0
-- if time_without_yappi == 0:
-- time_without_yappi = 0.000001
--
-- # in latest v0.82, I calculated this as close to "7.0" in my machine.
-- # however, %83 of this overhead is coming from tickcount(). The other %17
-- # seems to have been evenly distributed to the internal bookkeeping
-- # structures/algorithms which seems acceptable. Note that our test only
-- # tests one function being profiled at-a-time in a short interval.
-- # profiling high number of functions in a small time
-- # is a different beast, (which is pretty unlikely in most applications)
-- # So as a conclusion: I cannot see any optimization window for Yappi that
-- # is worth implementing as we will only optimize %17 of the time.
-- sys.stderr.write("\r\nYappi puts %0.1f times overhead to the profiled application in average.\r\n" % \
-- (time_with_yappi / time_without_yappi))
--
-- def test_clear_stats_while_running(self):
--
-- def a():
-- pass
--
-- yappi.start()
-- a()
-- yappi.clear_stats()
-- a()
-- stats = yappi.get_func_stats()
-- fsa = utils.find_stat_by_name(stats, 'a')
-- self.assertEqual(fsa.ncall, 1)
--
-- def test_generator(self):
--
-- def _gen(n):
-- while (n > 0):
-- yield n
-- n -= 1
--
-- yappi.start()
-- for x in _gen(5):
-- pass
-- self.assertTrue(
-- yappi.convert2pstats(yappi.get_func_stats()) is not None
-- )
--
-- def test_slice_child_stats_and_strip_dirs(self):
--
-- def b():
-- for i in range(10000000):
-- pass
--
-- def a():
-- b()
--
-- yappi.start(builtins=True)
-- a()
-- stats = yappi.get_func_stats()
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- self.assertTrue(fsa.children[0:1] is not None)
-- prev_afullname = fsa.full_name
-- prev_bchildfullname = fsa.children[fsb].full_name
-- stats.strip_dirs()
-- self.assertTrue(len(prev_afullname) > len(fsa.full_name))
-- self.assertTrue(
-- len(prev_bchildfullname) > len(fsa.children[fsb].full_name)
-- )
--
-- def test_children_stat_functions(self):
-- _timings = {"a_1": 5, "b_1": 3, "c_1": 1}
-- _yappi._set_test_timings(_timings)
--
-- def b():
-- pass
--
-- def c():
-- pass
--
-- def a():
-- b()
-- c()
--
-- yappi.start()
-- a()
-- b() # non-child call
-- c() # non-child call
-- stats = yappi.get_func_stats()
-- fsa = utils.find_stat_by_name(stats, 'a')
-- childs_of_a = fsa.children.get().sort("tavg", "desc")
-- prev_item = None
-- for item in childs_of_a:
-- if prev_item:
-- self.assertTrue(prev_item.tavg > item.tavg)
-- prev_item = item
-- childs_of_a.sort("name", "desc")
-- prev_item = None
-- for item in childs_of_a:
-- if prev_item:
-- self.assertTrue(prev_item.name > item.name)
-- prev_item = item
-- childs_of_a.clear()
-- self.assertTrue(childs_of_a.empty())
--
-- def test_no_stats_different_clock_type_load(self):
--
-- def a():
-- pass
--
-- yappi.start()
-- a()
-- yappi.stop()
-- yappi.get_func_stats().save("tests/ystats1.ys")
-- yappi.clear_stats()
-- yappi.set_clock_type("WALL")
-- yappi.start()
-- yappi.stop()
-- stats = yappi.get_func_stats().add("tests/ystats1.ys")
-- fsa = utils.find_stat_by_name(stats, 'a')
-- self.assertTrue(fsa is not None)
--
-- def test_subsequent_profile(self):
-- _timings = {"a_1": 1, "b_1": 1}
-- _yappi._set_test_timings(_timings)
--
-- def a():
-- pass
--
-- def b():
-- pass
--
-- yappi.start()
-- a()
-- yappi.stop()
-- yappi.start()
-- b()
-- yappi.stop()
-- stats = yappi.get_func_stats()
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- self.assertTrue(fsa is not None)
-- self.assertTrue(fsb is not None)
-- self.assertEqual(fsa.ttot, 1)
-- self.assertEqual(fsb.ttot, 1)
--
-- def test_lambda(self):
-- f = lambda: time.sleep(0.3)
-- yappi.set_clock_type("wall")
-- yappi.start()
-- f()
-- stats = yappi.get_func_stats()
-- fsa = utils.find_stat_by_name(stats, '<lambda>')
-- self.assertTrue(fsa.ttot > 0.1)
--
-- def test_module_stress(self):
-- self.assertEqual(yappi.is_running(), False)
--
-- yappi.start()
-- yappi.clear_stats()
-- self.assertRaises(_yappi.error, yappi.set_clock_type, "wall")
--
-- yappi.stop()
-- yappi.clear_stats()
-- yappi.set_clock_type("cpu")
-- self.assertRaises(yappi.YappiError, yappi.set_clock_type, "dummy")
-- self.assertEqual(yappi.is_running(), False)
-- yappi.clear_stats()
-- yappi.clear_stats()
--
-- def test_stat_sorting(self):
-- _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1}
-- _yappi._set_test_timings(_timings)
--
-- self._ncall = 1
--
-- def a():
-- b()
--
-- def b():
-- if self._ncall == 2:
-- return
-- self._ncall += 1
-- a()
--
-- stats = utils.run_and_get_func_stats(a)
-- stats = stats.sort("totaltime", "desc")
-- prev_stat = None
-- for stat in stats:
-- if prev_stat:
-- self.assertTrue(prev_stat.ttot >= stat.ttot)
-- prev_stat = stat
-- stats = stats.sort("totaltime", "asc")
-- prev_stat = None
-- for stat in stats:
-- if prev_stat:
-- self.assertTrue(prev_stat.ttot <= stat.ttot)
-- prev_stat = stat
-- stats = stats.sort("avgtime", "asc")
-- prev_stat = None
-- for stat in stats:
-- if prev_stat:
-- self.assertTrue(prev_stat.tavg <= stat.tavg)
-- prev_stat = stat
-- stats = stats.sort("name", "asc")
-- prev_stat = None
-- for stat in stats:
-- if prev_stat:
-- self.assertTrue(prev_stat.name <= stat.name)
-- prev_stat = stat
-- stats = stats.sort("subtime", "asc")
-- prev_stat = None
-- for stat in stats:
-- if prev_stat:
-- self.assertTrue(prev_stat.tsub <= stat.tsub)
-- prev_stat = stat
--
-- self.assertRaises(
-- yappi.YappiError, stats.sort, "invalid_func_sorttype_arg"
-- )
-- self.assertRaises(
-- yappi.YappiError, stats.sort, "totaltime",
-- "invalid_func_sortorder_arg"
-- )
--
-- def test_start_flags(self):
-- self.assertEqual(_yappi._get_start_flags(), None)
-- yappi.start()
--
-- def a():
-- pass
--
-- a()
-- self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0)
-- self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1)
-- self.assertEqual(len(yappi.get_thread_stats()), 1)
--
-- def test_builtin_profiling(self):
--
-- def a():
-- time.sleep(0.4) # is a builtin function
--
-- yappi.set_clock_type('wall')
--
-- yappi.start(builtins=True)
-- a()
-- stats = yappi.get_func_stats()
-- fsa = utils.find_stat_by_name(stats, 'sleep')
-- self.assertTrue(fsa is not None)
-- self.assertTrue(fsa.ttot > 0.3)
-- yappi.stop()
-- yappi.clear_stats()
--
-- def a():
-- pass
--
-- yappi.start()
-- t = threading.Thread(target=a)
-- t.start()
-- t.join()
-- stats = yappi.get_func_stats()
--
-- def test_singlethread_profiling(self):
-- yappi.set_clock_type('wall')
--
-- def a():
-- time.sleep(0.2)
--
-- class Worker1(threading.Thread):
--
-- def a(self):
-- time.sleep(0.3)
--
-- def run(self):
-- self.a()
--
-- yappi.start(profile_threads=False)
--
-- c = Worker1()
-- c.start()
-- c.join()
-- a()
-- stats = yappi.get_func_stats()
-- fsa1 = utils.find_stat_by_name(stats, 'Worker1.a')
-- fsa2 = utils.find_stat_by_name(stats, 'a')
-- self.assertTrue(fsa1 is None)
-- self.assertTrue(fsa2 is not None)
-- self.assertTrue(fsa2.ttot > 0.1)
--
-- def test_run(self):
--
-- def profiled():
-- pass
--
-- yappi.clear_stats()
-- try:
-- with yappi.run():
-- profiled()
-- stats = yappi.get_func_stats()
-- finally:
-- yappi.clear_stats()
--
-- self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled'))
--
-- def test_run_recursive(self):
--
-- def profiled():
-- pass
--
-- def not_profiled():
-- pass
--
-- yappi.clear_stats()
-- try:
-- with yappi.run():
-- with yappi.run():
-- profiled()
-- # Profiling stopped here
-- not_profiled()
-- stats = yappi.get_func_stats()
-- finally:
-- yappi.clear_stats()
--
-- self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled'))
-- self.assertIsNone(utils.find_stat_by_name(stats, 'not_profiled'))
--
--
--class StatSaveScenarios(utils.YappiUnitTestCase):
--
-- def test_pstats_conversion(self):
--
-- def pstat_id(fs):
-- return (fs.module, fs.lineno, fs.name)
--
-- def a():
-- d()
--
-- def b():
-- d()
--
-- def c():
-- pass
--
-- def d():
-- pass
--
-- _timings = {"a_1": 12, "b_1": 7, "c_1": 5, "d_1": 2}
-- _yappi._set_test_timings(_timings)
-- stats = utils.run_and_get_func_stats(a, )
-- stats.strip_dirs()
-- stats.save("tests/a1.pstats", type="pstat")
-- fsa_pid = pstat_id(utils.find_stat_by_name(stats, "a"))
-- fsd_pid = pstat_id(utils.find_stat_by_name(stats, "d"))
-- yappi.clear_stats()
-- _yappi._set_test_timings(_timings)
-- stats = utils.run_and_get_func_stats(a, )
-- stats.strip_dirs()
-- stats.save("tests/a2.pstats", type="pstat")
-- yappi.clear_stats()
-- _yappi._set_test_timings(_timings)
-- stats = utils.run_and_get_func_stats(b, )
-- stats.strip_dirs()
-- stats.save("tests/b1.pstats", type="pstat")
-- fsb_pid = pstat_id(utils.find_stat_by_name(stats, "b"))
-- yappi.clear_stats()
-- _yappi._set_test_timings(_timings)
-- stats = utils.run_and_get_func_stats(c, )
-- stats.strip_dirs()
-- stats.save("tests/c1.pstats", type="pstat")
-- fsc_pid = pstat_id(utils.find_stat_by_name(stats, "c"))
--
-- # merge saved stats and check pstats values are correct
-- import pstats
-- p = pstats.Stats(
-- 'tests/a1.pstats', 'tests/a2.pstats', 'tests/b1.pstats',
-- 'tests/c1.pstats'
-- )
-- p.strip_dirs()
-- # ct = ttot, tt = tsub
-- (cc, nc, tt, ct, callers) = p.stats[fsa_pid]
-- self.assertEqual(cc, nc, 2)
-- self.assertEqual(tt, 20)
-- self.assertEqual(ct, 24)
-- (cc, nc, tt, ct, callers) = p.stats[fsd_pid]
-- self.assertEqual(cc, nc, 3)
-- self.assertEqual(tt, 6)
-- self.assertEqual(ct, 6)
-- self.assertEqual(len(callers), 2)
-- (cc, nc, tt, ct) = callers[fsa_pid]
-- self.assertEqual(cc, nc, 2)
-- self.assertEqual(tt, 4)
-- self.assertEqual(ct, 4)
-- (cc, nc, tt, ct) = callers[fsb_pid]
-- self.assertEqual(cc, nc, 1)
-- self.assertEqual(tt, 2)
-- self.assertEqual(ct, 2)
--
-- def test_merge_stats(self):
-- _timings = {
-- "a_1": 15,
-- "b_1": 14,
-- "c_1": 12,
-- "d_1": 10,
-- "e_1": 9,
-- "f_1": 7,
-- "g_1": 6,
-- "h_1": 5,
-- "i_1": 1
-- }
-- _yappi._set_test_timings(_timings)
--
-- def a():
-- b()
--
-- def b():
-- c()
--
-- def c():
-- d()
--
-- def d():
-- e()
--
-- def e():
-- f()
--
-- def f():
-- g()
--
-- def g():
-- h()
--
-- def h():
-- i()
--
-- def i():
-- pass
--
-- yappi.start()
-- a()
-- a()
-- yappi.stop()
-- stats = yappi.get_func_stats()
-- self.assertRaises(
-- NotImplementedError, stats.save, "", "INVALID_SAVE_TYPE"
-- )
-- stats.save("tests/ystats2.ys")
-- yappi.clear_stats()
-- _yappi._set_test_timings(_timings)
-- yappi.start()
-- a()
-- stats = yappi.get_func_stats().add("tests/ystats2.ys")
-- fsa = utils.find_stat_by_name(stats, "a")
-- fsb = utils.find_stat_by_name(stats, "b")
-- fsc = utils.find_stat_by_name(stats, "c")
-- fsd = utils.find_stat_by_name(stats, "d")
-- fse = utils.find_stat_by_name(stats, "e")
-- fsf = utils.find_stat_by_name(stats, "f")
-- fsg = utils.find_stat_by_name(stats, "g")
-- fsh = utils.find_stat_by_name(stats, "h")
-- fsi = utils.find_stat_by_name(stats, "i")
-- self.assertEqual(fsa.ttot, 45)
-- self.assertEqual(fsa.ncall, 3)
-- self.assertEqual(fsa.nactualcall, 3)
-- self.assertEqual(fsa.tsub, 3)
-- self.assertEqual(fsa.children[fsb].ttot, fsb.ttot)
-- self.assertEqual(fsa.children[fsb].tsub, fsb.tsub)
-- self.assertEqual(fsb.children[fsc].ttot, fsc.ttot)
-- self.assertEqual(fsb.children[fsc].tsub, fsc.tsub)
-- self.assertEqual(fsc.tsub, 6)
-- self.assertEqual(fsc.children[fsd].ttot, fsd.ttot)
-- self.assertEqual(fsc.children[fsd].tsub, fsd.tsub)
-- self.assertEqual(fsd.children[fse].ttot, fse.ttot)
-- self.assertEqual(fsd.children[fse].tsub, fse.tsub)
-- self.assertEqual(fse.children[fsf].ttot, fsf.ttot)
-- self.assertEqual(fse.children[fsf].tsub, fsf.tsub)
-- self.assertEqual(fsf.children[fsg].ttot, fsg.ttot)
-- self.assertEqual(fsf.children[fsg].tsub, fsg.tsub)
-- self.assertEqual(fsg.ttot, 18)
-- self.assertEqual(fsg.tsub, 3)
-- self.assertEqual(fsg.children[fsh].ttot, fsh.ttot)
-- self.assertEqual(fsg.children[fsh].tsub, fsh.tsub)
-- self.assertEqual(fsh.ttot, 15)
-- self.assertEqual(fsh.tsub, 12)
-- self.assertEqual(fsh.tavg, 5)
-- self.assertEqual(fsh.children[fsi].ttot, fsi.ttot)
-- self.assertEqual(fsh.children[fsi].tsub, fsi.tsub)
-- #stats.debug_print()
--
-- def test_merge_multithreaded_stats(self):
-- import _yappi
-- timings = {"a_1": 2, "b_1": 1}
-- _yappi._set_test_timings(timings)
--
-- def a():
-- pass
--
-- def b():
-- pass
--
-- yappi.start()
-- t = threading.Thread(target=a)
-- t.start()
-- t.join()
-- t = threading.Thread(target=b)
-- t.start()
-- t.join()
-- yappi.get_func_stats().save("tests/ystats1.ys")
-- yappi.clear_stats()
-- _yappi._set_test_timings(timings)
-- self.assertEqual(len(yappi.get_func_stats()), 0)
-- self.assertEqual(len(yappi.get_thread_stats()), 1)
-- t = threading.Thread(target=a)
-- t.start()
-- t.join()
--
-- self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0)
-- self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1)
-- yappi.get_func_stats().save("tests/ystats2.ys")
--
-- stats = yappi.YFuncStats([
-- "tests/ystats1.ys",
-- "tests/ystats2.ys",
-- ])
-- fsa = utils.find_stat_by_name(stats, "a")
-- fsb = utils.find_stat_by_name(stats, "b")
-- self.assertEqual(fsa.ncall, 2)
-- self.assertEqual(fsb.ncall, 1)
-- self.assertEqual(fsa.tsub, fsa.ttot, 4)
-- self.assertEqual(fsb.tsub, fsb.ttot, 1)
--
-- def test_merge_load_different_clock_types(self):
-- yappi.start(builtins=True)
--
-- def a():
-- b()
--
-- def b():
-- c()
--
-- def c():
-- pass
--
-- t = threading.Thread(target=a)
-- t.start()
-- t.join()
-- yappi.get_func_stats().sort("name", "asc").save("tests/ystats1.ys")
-- yappi.stop()
-- yappi.clear_stats()
-- yappi.start(builtins=False)
-- t = threading.Thread(target=a)
-- t.start()
-- t.join()
-- yappi.get_func_stats().save("tests/ystats2.ys")
-- yappi.stop()
-- self.assertRaises(_yappi.error, yappi.set_clock_type, "wall")
-- yappi.clear_stats()
-- yappi.set_clock_type("wall")
-- yappi.start()
-- t = threading.Thread(target=a)
-- t.start()
-- t.join()
-- yappi.get_func_stats().save("tests/ystats3.ys")
-- self.assertRaises(
-- yappi.YappiError,
-- yappi.YFuncStats().add("tests/ystats1.ys").add, "tests/ystats3.ys"
-- )
-- stats = yappi.YFuncStats(["tests/ystats1.ys",
-- "tests/ystats2.ys"]).sort("name")
-- fsa = utils.find_stat_by_name(stats, "a")
-- fsb = utils.find_stat_by_name(stats, "b")
-- fsc = utils.find_stat_by_name(stats, "c")
-- self.assertEqual(fsa.ncall, 2)
-- self.assertEqual(fsa.ncall, fsb.ncall, fsc.ncall)
--
-- def test_merge_aabab_aabbc(self):
-- _timings = {
-- "a_1": 15,
-- "a_2": 14,
-- "b_1": 12,
-- "a_3": 10,
-- "b_2": 9,
-- "c_1": 4
-- }
-- _yappi._set_test_timings(_timings)
--
-- def a():
-- if self._ncall == 1:
-- self._ncall += 1
-- a()
-- elif self._ncall == 5:
-- self._ncall += 1
-- a()
-- else:
-- b()
--
-- def b():
-- if self._ncall == 2:
-- self._ncall += 1
-- a()
-- elif self._ncall == 6:
-- self._ncall += 1
-- b()
-- elif self._ncall == 7:
-- c()
-- else:
-- return
--
-- def c():
-- pass
--
-- self._ncall = 1
-- stats = utils.run_and_get_func_stats(a, )
-- stats.save("tests/ystats1.ys")
-- yappi.clear_stats()
-- _yappi._set_test_timings(_timings)
-- #stats.print_all()
--
-- self._ncall = 5
-- stats = utils.run_and_get_func_stats(a, )
-- stats.save("tests/ystats2.ys")
--
-- #stats.print_all()
--
-- def a(): # same name but another function(code object)
-- pass
--
-- yappi.start()
-- a()
-- stats = yappi.get_func_stats().add(
-- ["tests/ystats1.ys", "tests/ystats2.ys"]
-- )
-- #stats.print_all()
-- self.assertEqual(len(stats), 4)
--
-- fsa = None
-- for stat in stats:
-- if stat.name == "a" and stat.ttot == 45:
-- fsa = stat
-- break
-- self.assertTrue(fsa is not None)
--
-- self.assertEqual(fsa.ncall, 7)
-- self.assertEqual(fsa.nactualcall, 3)
-- self.assertEqual(fsa.ttot, 45)
-- self.assertEqual(fsa.tsub, 10)
-- fsb = utils.find_stat_by_name(stats, "b")
-- fsc = utils.find_stat_by_name(stats, "c")
-- self.assertEqual(fsb.ncall, 6)
-- self.assertEqual(fsb.nactualcall, 3)
-- self.assertEqual(fsb.ttot, 36)
-- self.assertEqual(fsb.tsub, 27)
-- self.assertEqual(fsb.tavg, 6)
-- self.assertEqual(fsc.ttot, 8)
-- self.assertEqual(fsc.tsub, 8)
-- self.assertEqual(fsc.tavg, 4)
-- self.assertEqual(fsc.nactualcall, fsc.ncall, 2)
--
--
--class MultithreadedScenarios(utils.YappiUnitTestCase):
--
-- def test_issue_32(self):
-- '''
-- Start yappi from different thread and we get Internal Error(15) as
-- the current_ctx_id() called while enumerating the threads in start()
-- and as it does not swap to the enumerated ThreadState* the THreadState_GetDict()
-- returns wrong object and thus sets an invalid id for the _ctx structure.
--
-- When this issue happens multiple Threads have same tid as the internal ts_ptr
-- will be same for different contexts. So, let's see if that happens
-- '''
--
-- def foo():
-- time.sleep(0.2)
--
-- def bar():
-- time.sleep(0.1)
--
-- def thread_func():
-- yappi.set_clock_type("wall")
-- yappi.start()
--
-- bar()
--
-- t = threading.Thread(target=thread_func)
-- t.start()
-- t.join()
--
-- foo()
--
-- yappi.stop()
--
-- thread_ids = set()
-- for tstat in yappi.get_thread_stats():
-- self.assertTrue(tstat.tid not in thread_ids)
-- thread_ids.add(tstat.tid)
--
-- def test_subsequent_profile(self):
-- WORKER_COUNT = 5
--
-- def a():
-- pass
--
-- def b():
-- pass
--
-- def c():
-- pass
--
-- _timings = {
-- "a_1": 3,
-- "b_1": 2,
-- "c_1": 1,
-- }
--
-- yappi.start()
--
-- def g():
-- pass
--
-- g()
-- yappi.stop()
-- yappi.clear_stats()
-- _yappi._set_test_timings(_timings)
-- yappi.start()
--
-- _dummy = []
-- for i in range(WORKER_COUNT):
-- t = threading.Thread(target=a)
-- t.start()
-- t.join()
-- for i in range(WORKER_COUNT):
-- t = threading.Thread(target=b)
-- t.start()
-- _dummy.append(t)
-- t.join()
-- for i in range(WORKER_COUNT):
-- t = threading.Thread(target=a)
-- t.start()
-- t.join()
-- for i in range(WORKER_COUNT):
-- t = threading.Thread(target=c)
-- t.start()
-- t.join()
-- yappi.stop()
-- yappi.start()
--
-- def f():
-- pass
--
-- f()
-- stats = yappi.get_func_stats()
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- fsc = utils.find_stat_by_name(stats, 'c')
-- self.assertEqual(fsa.ncall, 10)
-- self.assertEqual(fsb.ncall, 5)
-- self.assertEqual(fsc.ncall, 5)
-- self.assertEqual(fsa.ttot, fsa.tsub, 30)
-- self.assertEqual(fsb.ttot, fsb.tsub, 10)
-- self.assertEqual(fsc.ttot, fsc.tsub, 5)
--
-- # MACOSx optimizes by only creating one worker thread
-- self.assertTrue(len(yappi.get_thread_stats()) >= 2)
--
-- def test_basic(self):
-- yappi.set_clock_type('wall')
--
-- def dummy():
-- pass
--
-- def a():
-- time.sleep(0.2)
--
-- class Worker1(threading.Thread):
--
-- def a(self):
-- time.sleep(0.3)
--
-- def run(self):
-- self.a()
--
-- yappi.start(builtins=False, profile_threads=True)
--
-- c = Worker1()
-- c.start()
-- c.join()
-- a()
-- stats = yappi.get_func_stats()
-- fsa1 = utils.find_stat_by_name(stats, 'Worker1.a')
-- fsa2 = utils.find_stat_by_name(stats, 'a')
-- self.assertTrue(fsa1 is not None)
-- self.assertTrue(fsa2 is not None)
-- self.assertTrue(fsa1.ttot > 0.2)
-- self.assertTrue(fsa2.ttot > 0.1)
-- tstats = yappi.get_thread_stats()
-- self.assertEqual(len(tstats), 2)
-- tsa = utils.find_stat_by_name(tstats, 'Worker1')
-- tsm = utils.find_stat_by_name(tstats, '_MainThread')
-- dummy() # call dummy to force ctx name to be retrieved again.
-- self.assertTrue(tsa is not None)
-- # TODO: I put dummy() to fix below, remove the comments after a while.
-- self.assertTrue( # FIX: I see this fails sometimes?
-- tsm is not None,
-- 'Could not find "_MainThread". Found: %s' % (', '.join(utils.get_stat_names(tstats))))
--
-- def test_ctx_stats(self):
-- from threading import Thread
-- DUMMY_WORKER_COUNT = 5
-- yappi.start()
--
-- class DummyThread(Thread):
-- pass
--
-- def dummy():
-- pass
--
-- def dummy_worker():
-- pass
--
-- for i in range(DUMMY_WORKER_COUNT):
-- t = DummyThread(target=dummy_worker)
-- t.start()
-- t.join()
-- yappi.stop()
-- stats = yappi.get_thread_stats()
-- tsa = utils.find_stat_by_name(stats, "DummyThread")
-- self.assertTrue(tsa is not None)
-- yappi.clear_stats()
-- time.sleep(1.0)
-- _timings = {
-- "a_1": 6,
-- "b_1": 5,
-- "c_1": 3,
-- "d_1": 1,
-- "a_2": 4,
-- "b_2": 3,
-- "c_2": 2,
-- "d_2": 1
-- }
-- _yappi._set_test_timings(_timings)
--
-- class Thread1(Thread):
-- pass
--
-- class Thread2(Thread):
-- pass
--
-- def a():
-- b()
--
-- def b():
-- c()
--
-- def c():
-- d()
--
-- def d():
-- time.sleep(0.6)
--
-- yappi.set_clock_type("wall")
-- yappi.start()
-- t1 = Thread1(target=a)
-- t1.start()
-- t2 = Thread2(target=a)
-- t2.start()
-- t1.join()
-- t2.join()
-- stats = yappi.get_thread_stats()
--
-- # the fist clear_stats clears the context table?
-- tsa = utils.find_stat_by_name(stats, "DummyThread")
-- self.assertTrue(tsa is None)
--
-- tst1 = utils.find_stat_by_name(stats, "Thread1")
-- tst2 = utils.find_stat_by_name(stats, "Thread2")
-- tsmain = utils.find_stat_by_name(stats, "_MainThread")
-- dummy() # call dummy to force ctx name to be retrieved again.
-- self.assertTrue(len(stats) == 3)
-- self.assertTrue(tst1 is not None)
-- self.assertTrue(tst2 is not None)
-- # TODO: I put dummy() to fix below, remove the comments after a while.
-- self.assertTrue( # FIX: I see this fails sometimes
-- tsmain is not None,
-- 'Could not find "_MainThread". Found: %s' % (', '.join(utils.get_stat_names(stats))))
-- self.assertTrue(1.0 > tst2.ttot >= 0.5)
-- self.assertTrue(1.0 > tst1.ttot >= 0.5)
--
-- # test sorting of the ctx stats
-- stats = stats.sort("totaltime", "desc")
-- prev_stat = None
-- for stat in stats:
-- if prev_stat:
-- self.assertTrue(prev_stat.ttot >= stat.ttot)
-- prev_stat = stat
-- stats = stats.sort("totaltime", "asc")
-- prev_stat = None
-- for stat in stats:
-- if prev_stat:
-- self.assertTrue(prev_stat.ttot <= stat.ttot)
-- prev_stat = stat
-- stats = stats.sort("schedcount", "desc")
-- prev_stat = None
-- for stat in stats:
-- if prev_stat:
-- self.assertTrue(prev_stat.sched_count >= stat.sched_count)
-- prev_stat = stat
-- stats = stats.sort("name", "desc")
-- prev_stat = None
-- for stat in stats:
-- if prev_stat:
-- self.assertTrue(prev_stat.name.lower() >= stat.name.lower())
-- prev_stat = stat
-- self.assertRaises(
-- yappi.YappiError, stats.sort, "invalid_thread_sorttype_arg"
-- )
-- self.assertRaises(
-- yappi.YappiError, stats.sort, "invalid_thread_sortorder_arg"
-- )
--
-- def test_ctx_stats_cpu(self):
--
-- def get_thread_name():
-- try:
-- return threading.current_thread().name
-- except AttributeError:
-- return "Anonymous"
--
-- def burn_cpu(sec):
-- t0 = yappi.get_clock_time()
-- elapsed = 0
-- while (elapsed < sec):
-- for _ in range(1000):
-- pass
-- elapsed = yappi.get_clock_time() - t0
--
-- def test():
--
-- ts = []
-- for i in (0.01, 0.05, 0.1):
-- t = threading.Thread(target=burn_cpu, args=(i, ))
-- t.name = "burn_cpu-%s" % str(i)
-- t.start()
-- ts.append(t)
-- for t in ts:
-- t.join()
--
-- yappi.set_clock_type("cpu")
-- yappi.set_context_name_callback(get_thread_name)
--
-- yappi.start()
--
-- test()
--
-- yappi.stop()
--
-- tstats = yappi.get_thread_stats()
-- r1 = '''
-- burn_cpu-0.1 3 123145356058624 0.100105 8
-- burn_cpu-0.05 2 123145361313792 0.050149 8
-- burn_cpu-0.01 1 123145356058624 0.010127 2
-- MainThread 0 4321620864 0.001632 6
-- '''
-- self.assert_ctx_stats_almost_equal(r1, tstats)
--
-- def test_producer_consumer_with_queues(self):
-- # we currently just stress yappi, no functionality test is done here.
-- yappi.start()
-- if utils.is_py3x():
-- from queue import Queue
-- else:
-- from Queue import Queue
-- from threading import Thread
-- WORKER_THREAD_COUNT = 50
-- WORK_ITEM_COUNT = 2000
--
-- def worker():
-- while True:
-- item = q.get()
-- # do the work with item
-- q.task_done()
--
-- q = Queue()
-- for i in range(WORKER_THREAD_COUNT):
-- t = Thread(target=worker)
-- t.daemon = True
-- t.start()
--
-- for item in range(WORK_ITEM_COUNT):
-- q.put(item)
-- q.join() # block until all tasks are done
-- #yappi.get_func_stats().sort("callcount").print_all()
-- yappi.stop()
--
-- def test_temporary_lock_waiting(self):
-- yappi.start()
-- _lock = threading.Lock()
--
-- def worker():
-- _lock.acquire()
-- try:
-- time.sleep(1.0)
-- finally:
-- _lock.release()
--
-- t1 = threading.Thread(target=worker)
-- t2 = threading.Thread(target=worker)
-- t1.start()
-- t2.start()
-- t1.join()
-- t2.join()
-- #yappi.get_func_stats().sort("callcount").print_all()
-- yappi.stop()
--
-- @unittest.skipIf(os.name != "posix", "requires Posix compliant OS")
-- def test_signals_with_blocking_calls(self):
-- import signal, os, time
--
-- # just to verify if signal is handled correctly and stats/yappi are not corrupted.
-- def handler(signum, frame):
-- raise Exception("Signal handler executed!")
--
-- yappi.start()
-- signal.signal(signal.SIGALRM, handler)
-- signal.alarm(1)
-- self.assertRaises(Exception, time.sleep, 2)
-- stats = yappi.get_func_stats()
-- fsh = utils.find_stat_by_name(stats, "handler")
-- self.assertTrue(fsh is not None)
--
-- @unittest.skipIf(not sys.version_info >= (3, 2), "requires Python 3.2")
-- def test_concurrent_futures(self):
-- yappi.start()
-- from concurrent.futures import ThreadPoolExecutor
-- with ThreadPoolExecutor(max_workers=5) as executor:
-- f = executor.submit(pow, 5, 2)
-- self.assertEqual(f.result(), 25)
-- time.sleep(1.0)
-- yappi.stop()
--
-- @unittest.skipIf(not sys.version_info >= (3, 2), "requires Python 3.2")
-- def test_barrier(self):
-- yappi.start()
-- b = threading.Barrier(2, timeout=1)
--
-- def worker():
-- try:
-- b.wait()
-- except threading.BrokenBarrierError:
-- pass
-- except Exception:
-- raise Exception("BrokenBarrierError not raised")
--
-- t1 = threading.Thread(target=worker)
-- t1.start()
-- #b.wait()
-- t1.join()
-- yappi.stop()
--
--
--class NonRecursiveFunctions(utils.YappiUnitTestCase):
--
-- def test_abcd(self):
-- _timings = {"a_1": 6, "b_1": 5, "c_1": 3, "d_1": 1}
-- _yappi._set_test_timings(_timings)
--
-- def a():
-- b()
--
-- def b():
-- c()
--
-- def c():
-- d()
--
-- def d():
-- pass
--
-- stats = utils.run_and_get_func_stats(a)
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- fsc = utils.find_stat_by_name(stats, 'c')
-- fsd = utils.find_stat_by_name(stats, 'd')
-- cfsab = fsa.children[fsb]
-- cfsbc = fsb.children[fsc]
-- cfscd = fsc.children[fsd]
--
-- self.assertEqual(fsa.ttot, 6)
-- self.assertEqual(fsa.tsub, 1)
-- self.assertEqual(fsb.ttot, 5)
-- self.assertEqual(fsb.tsub, 2)
-- self.assertEqual(fsc.ttot, 3)
-- self.assertEqual(fsc.tsub, 2)
-- self.assertEqual(fsd.ttot, 1)
-- self.assertEqual(fsd.tsub, 1)
-- self.assertEqual(cfsab.ttot, 5)
-- self.assertEqual(cfsab.tsub, 2)
-- self.assertEqual(cfsbc.ttot, 3)
-- self.assertEqual(cfsbc.tsub, 2)
-- self.assertEqual(cfscd.ttot, 1)
-- self.assertEqual(cfscd.tsub, 1)
--
-- def test_stop_in_middle(self):
-- _timings = {"a_1": 6, "b_1": 4}
-- _yappi._set_test_timings(_timings)
--
-- def a():
-- b()
-- yappi.stop()
--
-- def b():
-- time.sleep(0.2)
--
-- yappi.start()
-- a()
-- stats = yappi.get_func_stats()
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
--
-- self.assertEqual(fsa.ncall, 1)
-- self.assertEqual(fsa.nactualcall, 0)
-- self.assertEqual(fsa.ttot, 0) # no call_leave called
-- self.assertEqual(fsa.tsub, 0) # no call_leave called
-- self.assertEqual(fsb.ttot, 4)
--
--
--class RecursiveFunctions(utils.YappiUnitTestCase):
--
-- def test_fibonacci(self):
--
-- def fib(n):
-- if n > 1:
-- return fib(n - 1) + fib(n - 2)
-- else:
-- return n
--
-- stats = utils.run_and_get_func_stats(fib, 22)
-- fs = utils.find_stat_by_name(stats, 'fib')
-- self.assertEqual(fs.ncall, 57313)
-- self.assertEqual(fs.ttot, fs.tsub)
--
-- def test_abcadc(self):
-- _timings = {
-- "a_1": 20,
-- "b_1": 19,
-- "c_1": 17,
-- "a_2": 13,
-- "d_1": 12,
-- "c_2": 10,
-- "a_3": 5
-- }
-- _yappi._set_test_timings(_timings)
--
-- def a(n):
-- if n == 3:
-- return
-- if n == 1 + 1:
-- d(n)
-- else:
-- b(n)
--
-- def b(n):
-- c(n)
--
-- def c(n):
-- a(n + 1)
--
-- def d(n):
-- c(n)
--
-- stats = utils.run_and_get_func_stats(a, 1)
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- fsc = utils.find_stat_by_name(stats, 'c')
-- fsd = utils.find_stat_by_name(stats, 'd')
-- self.assertEqual(fsa.ncall, 3)
-- self.assertEqual(fsa.nactualcall, 1)
-- self.assertEqual(fsa.ttot, 20)
-- self.assertEqual(fsa.tsub, 7)
-- self.assertEqual(fsb.ttot, 19)
-- self.assertEqual(fsb.tsub, 2)
-- self.assertEqual(fsc.ttot, 17)
-- self.assertEqual(fsc.tsub, 9)
-- self.assertEqual(fsd.ttot, 12)
-- self.assertEqual(fsd.tsub, 2)
-- cfsca = fsc.children[fsa]
-- self.assertEqual(cfsca.nactualcall, 0)
-- self.assertEqual(cfsca.ncall, 2)
-- self.assertEqual(cfsca.ttot, 13)
-- self.assertEqual(cfsca.tsub, 6)
--
-- def test_aaaa(self):
-- _timings = {"d_1": 9, "d_2": 7, "d_3": 3, "d_4": 2}
-- _yappi._set_test_timings(_timings)
--
-- def d(n):
-- if n == 3:
-- return
-- d(n + 1)
--
-- stats = utils.run_and_get_func_stats(d, 0)
-- fsd = utils.find_stat_by_name(stats, 'd')
-- self.assertEqual(fsd.ncall, 4)
-- self.assertEqual(fsd.nactualcall, 1)
-- self.assertEqual(fsd.ttot, 9)
-- self.assertEqual(fsd.tsub, 9)
-- cfsdd = fsd.children[fsd]
-- self.assertEqual(cfsdd.ttot, 7)
-- self.assertEqual(cfsdd.tsub, 7)
-- self.assertEqual(cfsdd.ncall, 3)
-- self.assertEqual(cfsdd.nactualcall, 0)
--
-- def test_abcabc(self):
-- _timings = {
-- "a_1": 20,
-- "b_1": 19,
-- "c_1": 17,
-- "a_2": 13,
-- "b_2": 11,
-- "c_2": 9,
-- "a_3": 6
-- }
-- _yappi._set_test_timings(_timings)
--
-- def a(n):
-- if n == 3:
-- return
-- else:
-- b(n)
--
-- def b(n):
-- c(n)
--
-- def c(n):
-- a(n + 1)
--
-- stats = utils.run_and_get_func_stats(a, 1)
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- fsc = utils.find_stat_by_name(stats, 'c')
-- self.assertEqual(fsa.ncall, 3)
-- self.assertEqual(fsa.nactualcall, 1)
-- self.assertEqual(fsa.ttot, 20)
-- self.assertEqual(fsa.tsub, 9)
-- self.assertEqual(fsb.ttot, 19)
-- self.assertEqual(fsb.tsub, 4)
-- self.assertEqual(fsc.ttot, 17)
-- self.assertEqual(fsc.tsub, 7)
-- cfsab = fsa.children[fsb]
-- cfsbc = fsb.children[fsc]
-- cfsca = fsc.children[fsa]
-- self.assertEqual(cfsab.ttot, 19)
-- self.assertEqual(cfsab.tsub, 4)
-- self.assertEqual(cfsbc.ttot, 17)
-- self.assertEqual(cfsbc.tsub, 7)
-- self.assertEqual(cfsca.ttot, 13)
-- self.assertEqual(cfsca.tsub, 8)
--
-- def test_abcbca(self):
-- _timings = {"a_1": 10, "b_1": 9, "c_1": 7, "b_2": 4, "c_2": 2, "a_2": 1}
-- _yappi._set_test_timings(_timings)
-- self._ncall = 1
--
-- def a():
-- if self._ncall == 1:
-- b()
-- else:
-- return
--
-- def b():
-- c()
--
-- def c():
-- if self._ncall == 1:
-- self._ncall += 1
-- b()
-- else:
-- a()
--
-- stats = utils.run_and_get_func_stats(a)
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- fsc = utils.find_stat_by_name(stats, 'c')
-- cfsab = fsa.children[fsb]
-- cfsbc = fsb.children[fsc]
-- cfsca = fsc.children[fsa]
-- self.assertEqual(fsa.ttot, 10)
-- self.assertEqual(fsa.tsub, 2)
-- self.assertEqual(fsb.ttot, 9)
-- self.assertEqual(fsb.tsub, 4)
-- self.assertEqual(fsc.ttot, 7)
-- self.assertEqual(fsc.tsub, 4)
-- self.assertEqual(cfsab.ttot, 9)
-- self.assertEqual(cfsab.tsub, 2)
-- self.assertEqual(cfsbc.ttot, 7)
-- self.assertEqual(cfsbc.tsub, 4)
-- self.assertEqual(cfsca.ttot, 1)
-- self.assertEqual(cfsca.tsub, 1)
-- self.assertEqual(cfsca.ncall, 1)
-- self.assertEqual(cfsca.nactualcall, 0)
--
-- def test_aabccb(self):
-- _timings = {
-- "a_1": 13,
-- "a_2": 11,
-- "b_1": 9,
-- "c_1": 5,
-- "c_2": 3,
-- "b_2": 1
-- }
-- _yappi._set_test_timings(_timings)
-- self._ncall = 1
--
-- def a():
-- if self._ncall == 1:
-- self._ncall += 1
-- a()
-- else:
-- b()
--
-- def b():
-- if self._ncall == 3:
-- return
-- else:
-- c()
--
-- def c():
-- if self._ncall == 2:
-- self._ncall += 1
-- c()
-- else:
-- b()
--
-- stats = utils.run_and_get_func_stats(a)
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- fsc = utils.find_stat_by_name(stats, 'c')
-- cfsaa = fsa.children[fsa.index]
-- cfsab = fsa.children[fsb]
-- cfsbc = fsb.children[fsc.full_name]
-- cfscc = fsc.children[fsc]
-- cfscb = fsc.children[fsb]
-- self.assertEqual(fsb.ttot, 9)
-- self.assertEqual(fsb.tsub, 5)
-- self.assertEqual(cfsbc.ttot, 5)
-- self.assertEqual(cfsbc.tsub, 2)
-- self.assertEqual(fsa.ttot, 13)
-- self.assertEqual(fsa.tsub, 4)
-- self.assertEqual(cfsab.ttot, 9)
-- self.assertEqual(cfsab.tsub, 4)
-- self.assertEqual(cfsaa.ttot, 11)
-- self.assertEqual(cfsaa.tsub, 2)
-- self.assertEqual(fsc.ttot, 5)
-- self.assertEqual(fsc.tsub, 4)
--
-- def test_abaa(self):
-- _timings = {"a_1": 13, "b_1": 10, "a_2": 9, "a_3": 5}
-- _yappi._set_test_timings(_timings)
--
-- self._ncall = 1
--
-- def a():
-- if self._ncall == 1:
-- b()
-- elif self._ncall == 2:
-- self._ncall += 1
-- a()
-- else:
-- return
--
-- def b():
-- self._ncall += 1
-- a()
--
-- stats = utils.run_and_get_func_stats(a)
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- cfsaa = fsa.children[fsa]
-- cfsba = fsb.children[fsa]
-- self.assertEqual(fsb.ttot, 10)
-- self.assertEqual(fsb.tsub, 1)
-- self.assertEqual(fsa.ttot, 13)
-- self.assertEqual(fsa.tsub, 12)
-- self.assertEqual(cfsaa.ttot, 5)
-- self.assertEqual(cfsaa.tsub, 5)
-- self.assertEqual(cfsba.ttot, 9)
-- self.assertEqual(cfsba.tsub, 4)
--
-- def test_aabb(self):
-- _timings = {"a_1": 13, "a_2": 10, "b_1": 9, "b_2": 5}
-- _yappi._set_test_timings(_timings)
--
-- self._ncall = 1
--
-- def a():
-- if self._ncall == 1:
-- self._ncall += 1
-- a()
-- elif self._ncall == 2:
-- b()
-- else:
-- return
--
-- def b():
-- if self._ncall == 2:
-- self._ncall += 1
-- b()
-- else:
-- return
--
-- stats = utils.run_and_get_func_stats(a)
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- cfsaa = fsa.children[fsa]
-- cfsab = fsa.children[fsb]
-- cfsbb = fsb.children[fsb]
-- self.assertEqual(fsa.ttot, 13)
-- self.assertEqual(fsa.tsub, 4)
-- self.assertEqual(fsb.ttot, 9)
-- self.assertEqual(fsb.tsub, 9)
-- self.assertEqual(cfsaa.ttot, 10)
-- self.assertEqual(cfsaa.tsub, 1)
-- self.assertEqual(cfsab.ttot, 9)
-- self.assertEqual(cfsab.tsub, 4)
-- self.assertEqual(cfsbb.ttot, 5)
-- self.assertEqual(cfsbb.tsub, 5)
--
-- def test_abbb(self):
-- _timings = {"a_1": 13, "b_1": 10, "b_2": 6, "b_3": 1}
-- _yappi._set_test_timings(_timings)
--
-- self._ncall = 1
--
-- def a():
-- if self._ncall == 1:
-- b()
--
-- def b():
-- if self._ncall == 3:
-- return
-- self._ncall += 1
-- b()
--
-- stats = utils.run_and_get_func_stats(a)
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- cfsab = fsa.children[fsb]
-- cfsbb = fsb.children[fsb]
-- self.assertEqual(fsa.ttot, 13)
-- self.assertEqual(fsa.tsub, 3)
-- self.assertEqual(fsb.ttot, 10)
-- self.assertEqual(fsb.tsub, 10)
-- self.assertEqual(fsb.ncall, 3)
-- self.assertEqual(fsb.nactualcall, 1)
-- self.assertEqual(cfsab.ttot, 10)
-- self.assertEqual(cfsab.tsub, 4)
-- self.assertEqual(cfsbb.ttot, 6)
-- self.assertEqual(cfsbb.tsub, 6)
-- self.assertEqual(cfsbb.nactualcall, 0)
-- self.assertEqual(cfsbb.ncall, 2)
--
-- def test_aaab(self):
-- _timings = {"a_1": 13, "a_2": 10, "a_3": 6, "b_1": 1}
-- _yappi._set_test_timings(_timings)
--
-- self._ncall = 1
--
-- def a():
-- if self._ncall == 3:
-- b()
-- return
-- self._ncall += 1
-- a()
--
-- def b():
-- return
--
-- stats = utils.run_and_get_func_stats(a)
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- cfsaa = fsa.children[fsa]
-- cfsab = fsa.children[fsb]
-- self.assertEqual(fsa.ttot, 13)
-- self.assertEqual(fsa.tsub, 12)
-- self.assertEqual(fsb.ttot, 1)
-- self.assertEqual(fsb.tsub, 1)
-- self.assertEqual(cfsaa.ttot, 10)
-- self.assertEqual(cfsaa.tsub, 9)
-- self.assertEqual(cfsab.ttot, 1)
-- self.assertEqual(cfsab.tsub, 1)
--
-- def test_abab(self):
-- _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1}
-- _yappi._set_test_timings(_timings)
--
-- self._ncall = 1
--
-- def a():
-- b()
--
-- def b():
-- if self._ncall == 2:
-- return
-- self._ncall += 1
-- a()
--
-- stats = utils.run_and_get_func_stats(a)
-- fsa = utils.find_stat_by_name(stats, 'a')
-- fsb = utils.find_stat_by_name(stats, 'b')
-- cfsab = fsa.children[fsb]
-- cfsba = fsb.children[fsa]
-- self.assertEqual(fsa.ttot, 13)
-- self.assertEqual(fsa.tsub, 8)
-- self.assertEqual(fsb.ttot, 10)
-- self.assertEqual(fsb.tsub, 5)
-- self.assertEqual(cfsab.ttot, 10)
-- self.assertEqual(cfsab.tsub, 5)
-- self.assertEqual(cfsab.ncall, 2)
-- self.assertEqual(cfsab.nactualcall, 1)
-- self.assertEqual(cfsba.ttot, 6)
-- self.assertEqual(cfsba.tsub, 5)
--
--
--if __name__ == '__main__':
-- # import sys;sys.argv = ['', 'BasicUsage.test_run_as_script']
-- # import sys;sys.argv = ['', 'MultithreadedScenarios.test_subsequent_profile']
-- unittest.main()
-+import os
-+import sys
-+import time
-+import threading
-+import unittest
-+import yappi
-+import _yappi
-+import tests.utils as utils
-+import multiprocessing # added to fix http://bugs.python.org/issue15881 for > Py2.6
-+import subprocess
-+
-+_counter = 0
-+
-+
-+class BasicUsage(utils.YappiUnitTestCase):
-+
-+ def test_callback_function_int_return_overflow(self):
-+ # this test is just here to check if any errors are generated, as the err
-+ # is printed in C side, I did not include it here. THere are ways to test
-+ # this deterministically, I did not bother
-+ import ctypes
-+
-+ def _unsigned_overflow_margin():
-+ return 2**(ctypes.sizeof(ctypes.c_void_p) * 8) - 1
-+
-+ def foo():
-+ pass
-+
-+ #with utils.captured_output() as (out, err):
-+ yappi.set_context_id_callback(_unsigned_overflow_margin)
-+ yappi.set_tag_callback(_unsigned_overflow_margin)
-+ yappi.start()
-+ foo()
-+
-+ def test_issue60(self):
-+
-+ def foo():
-+ buf = bytearray()
-+ buf += b't' * 200
-+ view = memoryview(buf)[10:]
-+ view = view.tobytes()
-+ del buf[:10] # this throws exception
-+ return view
-+
-+ yappi.start(builtins=True)
-+ foo()
-+ self.assertTrue(
-+ len(
-+ yappi.get_func_stats(
-+ filter_callback=lambda x: yappi.
-+ func_matches(x, [memoryview.tobytes])
-+ )
-+ ) > 0
-+ )
-+ yappi.stop()
-+
-+ def test_issue54(self):
-+
-+ def _tag_cbk():
-+ global _counter
-+ _counter += 1
-+ return _counter
-+
-+ def a():
-+ pass
-+
-+ def b():
-+ pass
-+
-+ yappi.set_tag_callback(_tag_cbk)
-+ yappi.start()
-+ a()
-+ a()
-+ a()
-+ yappi.stop()
-+ stats = yappi.get_func_stats()
-+ self.assertEqual(stats.pop().ncall, 3) # aggregated if no tag is given
-+ stats = yappi.get_func_stats(tag=1)
-+
-+ for i in range(1, 3):
-+ stats = yappi.get_func_stats(tag=i)
-+ stats = yappi.get_func_stats(
-+ tag=i, filter_callback=lambda x: yappi.func_matches(x, [a])
-+ )
-+
-+ stat = stats.pop()
-+ self.assertEqual(stat.ncall, 1)
-+
-+ yappi.set_tag_callback(None)
-+ yappi.clear_stats()
-+ yappi.start()
-+ b()
-+ b()
-+ stats = yappi.get_func_stats()
-+ self.assertEqual(len(stats), 1)
-+ stat = stats.pop()
-+ self.assertEqual(stat.ncall, 2)
-+
-+ def test_filter(self):
-+
-+ def a():
-+ pass
-+
-+ def b():
-+ a()
-+
-+ def c():
-+ b()
-+
-+ _TCOUNT = 5
-+
-+ ts = []
-+ yappi.start()
-+ for i in range(_TCOUNT):
-+ t = threading.Thread(target=c)
-+ t.start()
-+ ts.append(t)
-+
-+ for t in ts:
-+ t.join()
-+
-+ yappi.stop()
-+
-+ ctx_ids = []
-+ for tstat in yappi.get_thread_stats():
-+ if tstat.name == '_MainThread':
-+ main_ctx_id = tstat.id
-+ else:
-+ ctx_ids.append(tstat.id)
-+
-+ fstats = yappi.get_func_stats(filter={"ctx_id": 9})
-+ self.assertTrue(fstats.empty())
-+ fstats = yappi.get_func_stats(
-+ filter={
-+ "ctx_id": main_ctx_id,
-+ "name": "c"
-+ }
-+ ) # main thread
-+ self.assertTrue(fstats.empty())
-+
-+ for i in ctx_ids:
-+ fstats = yappi.get_func_stats(
-+ filter={
-+ "ctx_id": i,
-+ "name": "a",
-+ "ncall": 1
-+ }
-+ )
-+ self.assertEqual(fstats.pop().ncall, 1)
-+ fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "b"})
-+ self.assertEqual(fstats.pop().ncall, 1)
-+ fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "c"})
-+ self.assertEqual(fstats.pop().ncall, 1)
-+
-+ yappi.clear_stats()
-+ yappi.start(builtins=True)
-+ time.sleep(0.1)
-+ yappi.stop()
-+ fstats = yappi.get_func_stats(filter={"module": "time"})
-+ self.assertEqual(len(fstats), 1)
-+
-+ # invalid filters`
-+ self.assertRaises(
-+ Exception, yappi.get_func_stats, filter={'tag': "sss"}
-+ )
-+ self.assertRaises(
-+ Exception, yappi.get_func_stats, filter={'ctx_id': "None"}
-+ )
-+
-+ def test_filter_callback(self):
-+
-+ def a():
-+ time.sleep(0.1)
-+
-+ def b():
-+ a()
-+
-+ def c():
-+ pass
-+
-+ def d():
-+ pass
-+
-+ yappi.set_clock_type("wall")
-+ yappi.start(builtins=True)
-+ a()
-+ b()
-+ c()
-+ d()
-+ stats = yappi.get_func_stats(
-+ filter_callback=lambda x: yappi.func_matches(x, [a, b])
-+ )
-+ #stats.print_all()
-+ r1 = '''
-+ tests/test_functionality.py:98 a 2 0.000000 0.200350 0.100175
-+ tests/test_functionality.py:101 b 1 0.000000 0.120000 0.100197
-+ '''
-+ self.assert_traces_almost_equal(r1, stats)
-+ self.assertEqual(len(stats), 2)
-+ stats = yappi.get_func_stats(
-+ filter_callback=lambda x: yappi.
-+ module_matches(x, [sys.modules[__name__]])
-+ )
-+ r1 = '''
-+ tests/test_functionality.py:98 a 2 0.000000 0.230130 0.115065
-+ tests/test_functionality.py:101 b 1 0.000000 0.120000 0.109011
-+ tests/test_functionality.py:104 c 1 0.000000 0.000002 0.000002
-+ tests/test_functionality.py:107 d 1 0.000000 0.000001 0.000001
-+ '''
-+ self.assert_traces_almost_equal(r1, stats)
-+ self.assertEqual(len(stats), 4)
-+
-+ stats = yappi.get_func_stats(
-+ filter_callback=lambda x: yappi.func_matches(x, [time.sleep])
-+ )
-+ self.assertEqual(len(stats), 1)
-+ r1 = '''
-+ time.sleep 2 0.206804 0.220000 0.103402
-+ '''
-+ self.assert_traces_almost_equal(r1, stats)
-+
-+ def test_print_formatting(self):
-+
-+ def a():
-+ pass
-+
-+ def b():
-+ a()
-+
-+ func_cols = {
-+ 1: ("name", 48),
-+ 0: ("ncall", 5),
-+ 2: ("tsub", 8),
-+ }
-+ thread_cols = {
-+ 1: ("name", 48),
-+ 0: ("ttot", 8),
-+ }
-+
-+ yappi.start()
-+ a()
-+ b()
-+ yappi.stop()
-+ fs = yappi.get_func_stats()
-+ cs = fs[1].children
-+ ts = yappi.get_thread_stats()
-+ #fs.print_all(out=sys.stderr, columns={1:("name", 70), })
-+ #cs.print_all(out=sys.stderr, columns=func_cols)
-+ #ts.print_all(out=sys.stderr, columns=thread_cols)
-+ #cs.print_all(out=sys.stderr, columns={})
-+
-+ self.assertRaises(
-+ yappi.YappiError, fs.print_all, columns={1: ("namee", 9)}
-+ )
-+ self.assertRaises(
-+ yappi.YappiError, cs.print_all, columns={1: ("dd", 0)}
-+ )
-+ self.assertRaises(
-+ yappi.YappiError, ts.print_all, columns={1: ("tidd", 0)}
-+ )
-+
-+ def test_get_clock(self):
-+ yappi.set_clock_type('cpu')
-+ self.assertEqual('cpu', yappi.get_clock_type())
-+ clock_info = yappi.get_clock_info()
-+ self.assertTrue('api' in clock_info)
-+ self.assertTrue('resolution' in clock_info)
-+
-+ yappi.set_clock_type('wall')
-+ self.assertEqual('wall', yappi.get_clock_type())
-+
-+ t0 = yappi.get_clock_time()
-+ time.sleep(0.1)
-+ duration = yappi.get_clock_time() - t0
-+ self.assertTrue(0.05 < duration < 0.3)
-+
-+ def test_profile_decorator(self):
-+
-+ def aggregate(func, stats):
-+ fname = "tests/%s.profile" % (func.__name__)
-+ try:
-+ stats.add(fname)
-+ except IOError:
-+ pass
-+ stats.save(fname)
-+ raise Exception("messing around")
-+
-+ @yappi.profile(return_callback=aggregate)
-+ def a(x, y):
-+ if x + y == 25:
-+ raise Exception("")
-+ return x + y
-+
-+ def b():
-+ pass
-+
-+ try:
-+ os.remove(
-+ "tests/a.profile"
-+ ) # remove the one from prev test, if available
-+ except:
-+ pass
-+
-+ # global profile is on to mess things up
-+ yappi.start()
-+ b()
-+
-+ # assert functionality and call function at same time
-+ try:
-+ self.assertEqual(a(1, 2), 3)
-+ except:
-+ pass
-+ try:
-+ self.assertEqual(a(2, 5), 7)
-+ except:
-+ pass
-+ try:
-+ a(4, 21)
-+ except:
-+ pass
-+ stats = yappi.get_func_stats().add("tests/a.profile")
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ self.assertEqual(fsa.ncall, 3)
-+ self.assertEqual(len(stats), 1) # b() should be cleared out.
-+
-+ @yappi.profile(return_callback=aggregate)
-+ def count_down_rec(n):
-+ if n == 0:
-+ return
-+ count_down_rec(n - 1)
-+
-+ try:
-+ os.remove(
-+ "tests/count_down_rec.profile"
-+ ) # remove the one from prev test, if available
-+ except:
-+ pass
-+
-+ try:
-+ count_down_rec(4)
-+ except:
-+ pass
-+ try:
-+ count_down_rec(3)
-+ except:
-+ pass
-+
-+ stats = yappi.YFuncStats("tests/count_down_rec.profile")
-+ fsrec = utils.find_stat_by_name(stats, 'count_down_rec')
-+ self.assertEqual(fsrec.ncall, 9)
-+ self.assertEqual(fsrec.nactualcall, 2)
-+
-+ def test_strip_dirs(self):
-+
-+ def a():
-+ pass
-+
-+ stats = utils.run_and_get_func_stats(a, )
-+ stats.strip_dirs()
-+ fsa = utils.find_stat_by_name(stats, "a")
-+ self.assertEqual(fsa.module, os.path.basename(fsa.module))
-+
-+ @unittest.skipIf(os.name == "nt", "do not run on Windows")
-+ def test_run_as_script(self):
-+ import re
-+ p = subprocess.Popen(
-+ ['yappi', os.path.join('./tests', 'run_as_script.py')],
-+ stdout=subprocess.PIPE
-+ )
-+ out, err = p.communicate()
-+ self.assertEqual(p.returncode, 0)
-+ func_stats, thread_stats = re.split(
-+ b'name\\s+id\\s+tid\\s+ttot\\s+scnt\\s*\n', out
-+ )
-+ self.assertTrue(b'FancyThread' in thread_stats)
-+
-+ def test_yappi_overhead(self):
-+ LOOP_COUNT = 100000
-+
-+ def a():
-+ pass
-+
-+ def b():
-+ for i in range(LOOP_COUNT):
-+ a()
-+
-+ t0 = time.time()
-+ yappi.start()
-+ b()
-+ yappi.stop()
-+ time_with_yappi = time.time() - t0
-+ t0 = time.time()
-+ b()
-+ time_without_yappi = time.time() - t0
-+ if time_without_yappi == 0:
-+ time_without_yappi = 0.000001
-+
-+ # in latest v0.82, I calculated this as close to "7.0" in my machine.
-+ # however, %83 of this overhead is coming from tickcount(). The other %17
-+ # seems to have been evenly distributed to the internal bookkeeping
-+ # structures/algorithms which seems acceptable. Note that our test only
-+ # tests one function being profiled at-a-time in a short interval.
-+ # profiling high number of functions in a small time
-+ # is a different beast, (which is pretty unlikely in most applications)
-+ # So as a conclusion: I cannot see any optimization window for Yappi that
-+ # is worth implementing as we will only optimize %17 of the time.
-+ sys.stderr.write("\r\nYappi puts %0.1f times overhead to the profiled application in average.\r\n" % \
-+ (time_with_yappi / time_without_yappi))
-+
-+ def test_clear_stats_while_running(self):
-+
-+ def a():
-+ pass
-+
-+ yappi.start()
-+ a()
-+ yappi.clear_stats()
-+ a()
-+ stats = yappi.get_func_stats()
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ self.assertEqual(fsa.ncall, 1)
-+
-+ def test_generator(self):
-+
-+ def _gen(n):
-+ while (n > 0):
-+ yield n
-+ n -= 1
-+
-+ yappi.start()
-+ for x in _gen(5):
-+ pass
-+ self.assertTrue(
-+ yappi.convert2pstats(yappi.get_func_stats()) is not None
-+ )
-+
-+ def test_slice_child_stats_and_strip_dirs(self):
-+
-+ def b():
-+ for i in range(10000000):
-+ pass
-+
-+ def a():
-+ b()
-+
-+ yappi.start(builtins=True)
-+ a()
-+ stats = yappi.get_func_stats()
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ self.assertTrue(fsa.children[0:1] is not None)
-+ prev_afullname = fsa.full_name
-+ prev_bchildfullname = fsa.children[fsb].full_name
-+ stats.strip_dirs()
-+ self.assertTrue(len(prev_afullname) > len(fsa.full_name))
-+ self.assertTrue(
-+ len(prev_bchildfullname) > len(fsa.children[fsb].full_name)
-+ )
-+
-+ def test_children_stat_functions(self):
-+ _timings = {"a_1": 5, "b_1": 3, "c_1": 1}
-+ _yappi._set_test_timings(_timings)
-+
-+ def b():
-+ pass
-+
-+ def c():
-+ pass
-+
-+ def a():
-+ b()
-+ c()
-+
-+ yappi.start()
-+ a()
-+ b() # non-child call
-+ c() # non-child call
-+ stats = yappi.get_func_stats()
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ childs_of_a = fsa.children.get().sort("tavg", "desc")
-+ prev_item = None
-+ for item in childs_of_a:
-+ if prev_item:
-+ self.assertTrue(prev_item.tavg > item.tavg)
-+ prev_item = item
-+ childs_of_a.sort("name", "desc")
-+ prev_item = None
-+ for item in childs_of_a:
-+ if prev_item:
-+ self.assertTrue(prev_item.name > item.name)
-+ prev_item = item
-+ childs_of_a.clear()
-+ self.assertTrue(childs_of_a.empty())
-+
-+ def test_no_stats_different_clock_type_load(self):
-+
-+ def a():
-+ pass
-+
-+ yappi.start()
-+ a()
-+ yappi.stop()
-+ yappi.get_func_stats().save("tests/ystats1.ys")
-+ yappi.clear_stats()
-+ yappi.set_clock_type("WALL")
-+ yappi.start()
-+ yappi.stop()
-+ stats = yappi.get_func_stats().add("tests/ystats1.ys")
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ self.assertTrue(fsa is not None)
-+
-+ def test_subsequent_profile(self):
-+ _timings = {"a_1": 1, "b_1": 1}
-+ _yappi._set_test_timings(_timings)
-+
-+ def a():
-+ pass
-+
-+ def b():
-+ pass
-+
-+ yappi.start()
-+ a()
-+ yappi.stop()
-+ yappi.start()
-+ b()
-+ yappi.stop()
-+ stats = yappi.get_func_stats()
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ self.assertTrue(fsa is not None)
-+ self.assertTrue(fsb is not None)
-+ self.assertEqual(fsa.ttot, 1)
-+ self.assertEqual(fsb.ttot, 1)
-+
-+ def test_lambda(self):
-+ f = lambda: time.sleep(0.3)
-+ yappi.set_clock_type("wall")
-+ yappi.start()
-+ f()
-+ stats = yappi.get_func_stats()
-+ fsa = utils.find_stat_by_name(stats, '<lambda>')
-+ self.assertTrue(fsa.ttot > 0.1)
-+
-+ def test_module_stress(self):
-+ self.assertEqual(yappi.is_running(), False)
-+
-+ yappi.start()
-+ yappi.clear_stats()
-+ self.assertRaises(_yappi.error, yappi.set_clock_type, "wall")
-+
-+ yappi.stop()
-+ yappi.clear_stats()
-+ yappi.set_clock_type("cpu")
-+ self.assertRaises(yappi.YappiError, yappi.set_clock_type, "dummy")
-+ self.assertEqual(yappi.is_running(), False)
-+ yappi.clear_stats()
-+ yappi.clear_stats()
-+
-+ def test_stat_sorting(self):
-+ _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1}
-+ _yappi._set_test_timings(_timings)
-+
-+ self._ncall = 1
-+
-+ def a():
-+ b()
-+
-+ def b():
-+ if self._ncall == 2:
-+ return
-+ self._ncall += 1
-+ a()
-+
-+ stats = utils.run_and_get_func_stats(a)
-+ stats = stats.sort("totaltime", "desc")
-+ prev_stat = None
-+ for stat in stats:
-+ if prev_stat:
-+ self.assertTrue(prev_stat.ttot >= stat.ttot)
-+ prev_stat = stat
-+ stats = stats.sort("totaltime", "asc")
-+ prev_stat = None
-+ for stat in stats:
-+ if prev_stat:
-+ self.assertTrue(prev_stat.ttot <= stat.ttot)
-+ prev_stat = stat
-+ stats = stats.sort("avgtime", "asc")
-+ prev_stat = None
-+ for stat in stats:
-+ if prev_stat:
-+ self.assertTrue(prev_stat.tavg <= stat.tavg)
-+ prev_stat = stat
-+ stats = stats.sort("name", "asc")
-+ prev_stat = None
-+ for stat in stats:
-+ if prev_stat:
-+ self.assertTrue(prev_stat.name <= stat.name)
-+ prev_stat = stat
-+ stats = stats.sort("subtime", "asc")
-+ prev_stat = None
-+ for stat in stats:
-+ if prev_stat:
-+ self.assertTrue(prev_stat.tsub <= stat.tsub)
-+ prev_stat = stat
-+
-+ self.assertRaises(
-+ yappi.YappiError, stats.sort, "invalid_func_sorttype_arg"
-+ )
-+ self.assertRaises(
-+ yappi.YappiError, stats.sort, "totaltime",
-+ "invalid_func_sortorder_arg"
-+ )
-+
-+ def test_start_flags(self):
-+ self.assertEqual(_yappi._get_start_flags(), None)
-+ yappi.start()
-+
-+ def a():
-+ pass
-+
-+ a()
-+ self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0)
-+ self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1)
-+ self.assertEqual(len(yappi.get_thread_stats()), 1)
-+
-+ def test_builtin_profiling(self):
-+
-+ def a():
-+ time.sleep(0.4) # is a builtin function
-+
-+ yappi.set_clock_type('wall')
-+
-+ yappi.start(builtins=True)
-+ a()
-+ stats = yappi.get_func_stats()
-+ fsa = utils.find_stat_by_name(stats, 'sleep')
-+ self.assertTrue(fsa is not None)
-+ self.assertTrue(fsa.ttot > 0.3)
-+ yappi.stop()
-+ yappi.clear_stats()
-+
-+ def a():
-+ pass
-+
-+ yappi.start()
-+ t = threading.Thread(target=a)
-+ t.start()
-+ t.join()
-+ stats = yappi.get_func_stats()
-+
-+ def test_singlethread_profiling(self):
-+ yappi.set_clock_type('wall')
-+
-+ def a():
-+ time.sleep(0.2)
-+
-+ class Worker1(threading.Thread):
-+
-+ def a(self):
-+ time.sleep(0.3)
-+
-+ def run(self):
-+ self.a()
-+
-+ yappi.start(profile_threads=False)
-+
-+ c = Worker1()
-+ c.start()
-+ c.join()
-+ a()
-+ stats = yappi.get_func_stats()
-+ fsa1 = utils.find_stat_by_name(stats, 'Worker1.a')
-+ fsa2 = utils.find_stat_by_name(stats, 'a')
-+ self.assertTrue(fsa1 is None)
-+ self.assertTrue(fsa2 is not None)
-+ self.assertTrue(fsa2.ttot > 0.1)
-+
-+ def test_run(self):
-+
-+ def profiled():
-+ pass
-+
-+ yappi.clear_stats()
-+ try:
-+ with yappi.run():
-+ profiled()
-+ stats = yappi.get_func_stats()
-+ finally:
-+ yappi.clear_stats()
-+
-+ self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled'))
-+
-+ def test_run_recursive(self):
-+
-+ def profiled():
-+ pass
-+
-+ def not_profiled():
-+ pass
-+
-+ yappi.clear_stats()
-+ try:
-+ with yappi.run():
-+ with yappi.run():
-+ profiled()
-+ # Profiling stopped here
-+ not_profiled()
-+ stats = yappi.get_func_stats()
-+ finally:
-+ yappi.clear_stats()
-+
-+ self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled'))
-+ self.assertIsNone(utils.find_stat_by_name(stats, 'not_profiled'))
-+
-+
-+class StatSaveScenarios(utils.YappiUnitTestCase):
-+
-+ def test_pstats_conversion(self):
-+
-+ def pstat_id(fs):
-+ return (fs.module, fs.lineno, fs.name)
-+
-+ def a():
-+ d()
-+
-+ def b():
-+ d()
-+
-+ def c():
-+ pass
-+
-+ def d():
-+ pass
-+
-+ _timings = {"a_1": 12, "b_1": 7, "c_1": 5, "d_1": 2}
-+ _yappi._set_test_timings(_timings)
-+ stats = utils.run_and_get_func_stats(a, )
-+ stats.strip_dirs()
-+ stats.save("tests/a1.pstats", type="pstat")
-+ fsa_pid = pstat_id(utils.find_stat_by_name(stats, "a"))
-+ fsd_pid = pstat_id(utils.find_stat_by_name(stats, "d"))
-+ yappi.clear_stats()
-+ _yappi._set_test_timings(_timings)
-+ stats = utils.run_and_get_func_stats(a, )
-+ stats.strip_dirs()
-+ stats.save("tests/a2.pstats", type="pstat")
-+ yappi.clear_stats()
-+ _yappi._set_test_timings(_timings)
-+ stats = utils.run_and_get_func_stats(b, )
-+ stats.strip_dirs()
-+ stats.save("tests/b1.pstats", type="pstat")
-+ fsb_pid = pstat_id(utils.find_stat_by_name(stats, "b"))
-+ yappi.clear_stats()
-+ _yappi._set_test_timings(_timings)
-+ stats = utils.run_and_get_func_stats(c, )
-+ stats.strip_dirs()
-+ stats.save("tests/c1.pstats", type="pstat")
-+ fsc_pid = pstat_id(utils.find_stat_by_name(stats, "c"))
-+
-+ # merge saved stats and check pstats values are correct
-+ import pstats
-+ p = pstats.Stats(
-+ 'tests/a1.pstats', 'tests/a2.pstats', 'tests/b1.pstats',
-+ 'tests/c1.pstats'
-+ )
-+ p.strip_dirs()
-+ # ct = ttot, tt = tsub
-+ (cc, nc, tt, ct, callers) = p.stats[fsa_pid]
-+ self.assertEqual(cc, nc, 2)
-+ self.assertEqual(tt, 20)
-+ self.assertEqual(ct, 24)
-+ (cc, nc, tt, ct, callers) = p.stats[fsd_pid]
-+ self.assertEqual(cc, nc, 3)
-+ self.assertEqual(tt, 6)
-+ self.assertEqual(ct, 6)
-+ self.assertEqual(len(callers), 2)
-+ (cc, nc, tt, ct) = callers[fsa_pid]
-+ self.assertEqual(cc, nc, 2)
-+ self.assertEqual(tt, 4)
-+ self.assertEqual(ct, 4)
-+ (cc, nc, tt, ct) = callers[fsb_pid]
-+ self.assertEqual(cc, nc, 1)
-+ self.assertEqual(tt, 2)
-+ self.assertEqual(ct, 2)
-+
-+ def test_merge_stats(self):
-+ _timings = {
-+ "a_1": 15,
-+ "b_1": 14,
-+ "c_1": 12,
-+ "d_1": 10,
-+ "e_1": 9,
-+ "f_1": 7,
-+ "g_1": 6,
-+ "h_1": 5,
-+ "i_1": 1
-+ }
-+ _yappi._set_test_timings(_timings)
-+
-+ def a():
-+ b()
-+
-+ def b():
-+ c()
-+
-+ def c():
-+ d()
-+
-+ def d():
-+ e()
-+
-+ def e():
-+ f()
-+
-+ def f():
-+ g()
-+
-+ def g():
-+ h()
-+
-+ def h():
-+ i()
-+
-+ def i():
-+ pass
-+
-+ yappi.start()
-+ a()
-+ a()
-+ yappi.stop()
-+ stats = yappi.get_func_stats()
-+ self.assertRaises(
-+ NotImplementedError, stats.save, "", "INVALID_SAVE_TYPE"
-+ )
-+ stats.save("tests/ystats2.ys")
-+ yappi.clear_stats()
-+ _yappi._set_test_timings(_timings)
-+ yappi.start()
-+ a()
-+ stats = yappi.get_func_stats().add("tests/ystats2.ys")
-+ fsa = utils.find_stat_by_name(stats, "a")
-+ fsb = utils.find_stat_by_name(stats, "b")
-+ fsc = utils.find_stat_by_name(stats, "c")
-+ fsd = utils.find_stat_by_name(stats, "d")
-+ fse = utils.find_stat_by_name(stats, "e")
-+ fsf = utils.find_stat_by_name(stats, "f")
-+ fsg = utils.find_stat_by_name(stats, "g")
-+ fsh = utils.find_stat_by_name(stats, "h")
-+ fsi = utils.find_stat_by_name(stats, "i")
-+ self.assertEqual(fsa.ttot, 45)
-+ self.assertEqual(fsa.ncall, 3)
-+ self.assertEqual(fsa.nactualcall, 3)
-+ self.assertEqual(fsa.tsub, 3)
-+ self.assertEqual(fsa.children[fsb].ttot, fsb.ttot)
-+ self.assertEqual(fsa.children[fsb].tsub, fsb.tsub)
-+ self.assertEqual(fsb.children[fsc].ttot, fsc.ttot)
-+ self.assertEqual(fsb.children[fsc].tsub, fsc.tsub)
-+ self.assertEqual(fsc.tsub, 6)
-+ self.assertEqual(fsc.children[fsd].ttot, fsd.ttot)
-+ self.assertEqual(fsc.children[fsd].tsub, fsd.tsub)
-+ self.assertEqual(fsd.children[fse].ttot, fse.ttot)
-+ self.assertEqual(fsd.children[fse].tsub, fse.tsub)
-+ self.assertEqual(fse.children[fsf].ttot, fsf.ttot)
-+ self.assertEqual(fse.children[fsf].tsub, fsf.tsub)
-+ self.assertEqual(fsf.children[fsg].ttot, fsg.ttot)
-+ self.assertEqual(fsf.children[fsg].tsub, fsg.tsub)
-+ self.assertEqual(fsg.ttot, 18)
-+ self.assertEqual(fsg.tsub, 3)
-+ self.assertEqual(fsg.children[fsh].ttot, fsh.ttot)
-+ self.assertEqual(fsg.children[fsh].tsub, fsh.tsub)
-+ self.assertEqual(fsh.ttot, 15)
-+ self.assertEqual(fsh.tsub, 12)
-+ self.assertEqual(fsh.tavg, 5)
-+ self.assertEqual(fsh.children[fsi].ttot, fsi.ttot)
-+ self.assertEqual(fsh.children[fsi].tsub, fsi.tsub)
-+ #stats.debug_print()
-+
-+ def test_merge_multithreaded_stats(self):
-+ import _yappi
-+ timings = {"a_1": 2, "b_1": 1}
-+ _yappi._set_test_timings(timings)
-+
-+ def a():
-+ pass
-+
-+ def b():
-+ pass
-+
-+ yappi.start()
-+ t = threading.Thread(target=a)
-+ t.start()
-+ t.join()
-+ t = threading.Thread(target=b)
-+ t.start()
-+ t.join()
-+ yappi.get_func_stats().save("tests/ystats1.ys")
-+ yappi.clear_stats()
-+ _yappi._set_test_timings(timings)
-+ self.assertEqual(len(yappi.get_func_stats()), 0)
-+ self.assertEqual(len(yappi.get_thread_stats()), 1)
-+ t = threading.Thread(target=a)
-+ t.start()
-+ t.join()
-+
-+ self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0)
-+ self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1)
-+ yappi.get_func_stats().save("tests/ystats2.ys")
-+
-+ stats = yappi.YFuncStats([
-+ "tests/ystats1.ys",
-+ "tests/ystats2.ys",
-+ ])
-+ fsa = utils.find_stat_by_name(stats, "a")
-+ fsb = utils.find_stat_by_name(stats, "b")
-+ self.assertEqual(fsa.ncall, 2)
-+ self.assertEqual(fsb.ncall, 1)
-+ self.assertEqual(fsa.tsub, fsa.ttot, 4)
-+ self.assertEqual(fsb.tsub, fsb.ttot, 1)
-+
-+ def test_merge_load_different_clock_types(self):
-+ yappi.start(builtins=True)
-+
-+ def a():
-+ b()
-+
-+ def b():
-+ c()
-+
-+ def c():
-+ pass
-+
-+ t = threading.Thread(target=a)
-+ t.start()
-+ t.join()
-+ yappi.get_func_stats().sort("name", "asc").save("tests/ystats1.ys")
-+ yappi.stop()
-+ yappi.clear_stats()
-+ yappi.start(builtins=False)
-+ t = threading.Thread(target=a)
-+ t.start()
-+ t.join()
-+ yappi.get_func_stats().save("tests/ystats2.ys")
-+ yappi.stop()
-+ self.assertRaises(_yappi.error, yappi.set_clock_type, "wall")
-+ yappi.clear_stats()
-+ yappi.set_clock_type("wall")
-+ yappi.start()
-+ t = threading.Thread(target=a)
-+ t.start()
-+ t.join()
-+ yappi.get_func_stats().save("tests/ystats3.ys")
-+ self.assertRaises(
-+ yappi.YappiError,
-+ yappi.YFuncStats().add("tests/ystats1.ys").add, "tests/ystats3.ys"
-+ )
-+ stats = yappi.YFuncStats(["tests/ystats1.ys",
-+ "tests/ystats2.ys"]).sort("name")
-+ fsa = utils.find_stat_by_name(stats, "a")
-+ fsb = utils.find_stat_by_name(stats, "b")
-+ fsc = utils.find_stat_by_name(stats, "c")
-+ self.assertEqual(fsa.ncall, 2)
-+ self.assertEqual(fsa.ncall, fsb.ncall, fsc.ncall)
-+
-+ def test_merge_aabab_aabbc(self):
-+ _timings = {
-+ "a_1": 15,
-+ "a_2": 14,
-+ "b_1": 12,
-+ "a_3": 10,
-+ "b_2": 9,
-+ "c_1": 4
-+ }
-+ _yappi._set_test_timings(_timings)
-+
-+ def a():
-+ if self._ncall == 1:
-+ self._ncall += 1
-+ a()
-+ elif self._ncall == 5:
-+ self._ncall += 1
-+ a()
-+ else:
-+ b()
-+
-+ def b():
-+ if self._ncall == 2:
-+ self._ncall += 1
-+ a()
-+ elif self._ncall == 6:
-+ self._ncall += 1
-+ b()
-+ elif self._ncall == 7:
-+ c()
-+ else:
-+ return
-+
-+ def c():
-+ pass
-+
-+ self._ncall = 1
-+ stats = utils.run_and_get_func_stats(a, )
-+ stats.save("tests/ystats1.ys")
-+ yappi.clear_stats()
-+ _yappi._set_test_timings(_timings)
-+ #stats.print_all()
-+
-+ self._ncall = 5
-+ stats = utils.run_and_get_func_stats(a, )
-+ stats.save("tests/ystats2.ys")
-+
-+ #stats.print_all()
-+
-+ def a(): # same name but another function(code object)
-+ pass
-+
-+ yappi.start()
-+ a()
-+ stats = yappi.get_func_stats().add(
-+ ["tests/ystats1.ys", "tests/ystats2.ys"]
-+ )
-+ #stats.print_all()
-+ self.assertEqual(len(stats), 4)
-+
-+ fsa = None
-+ for stat in stats:
-+ if stat.name == "a" and stat.ttot == 45:
-+ fsa = stat
-+ break
-+ self.assertTrue(fsa is not None)
-+
-+ self.assertEqual(fsa.ncall, 7)
-+ self.assertEqual(fsa.nactualcall, 3)
-+ self.assertEqual(fsa.ttot, 45)
-+ self.assertEqual(fsa.tsub, 10)
-+ fsb = utils.find_stat_by_name(stats, "b")
-+ fsc = utils.find_stat_by_name(stats, "c")
-+ self.assertEqual(fsb.ncall, 6)
-+ self.assertEqual(fsb.nactualcall, 3)
-+ self.assertEqual(fsb.ttot, 36)
-+ self.assertEqual(fsb.tsub, 27)
-+ self.assertEqual(fsb.tavg, 6)
-+ self.assertEqual(fsc.ttot, 8)
-+ self.assertEqual(fsc.tsub, 8)
-+ self.assertEqual(fsc.tavg, 4)
-+ self.assertEqual(fsc.nactualcall, fsc.ncall, 2)
-+
-+
-+class MultithreadedScenarios(utils.YappiUnitTestCase):
-+
-+ def test_issue_32(self):
-+ '''
-+ Start yappi from different thread and we get Internal Error(15) as
-+ the current_ctx_id() called while enumerating the threads in start()
-+ and as it does not swap to the enumerated ThreadState* the THreadState_GetDict()
-+ returns wrong object and thus sets an invalid id for the _ctx structure.
-+
-+ When this issue happens multiple Threads have same tid as the internal ts_ptr
-+ will be same for different contexts. So, let's see if that happens
-+ '''
-+
-+ def foo():
-+ time.sleep(0.2)
-+
-+ def bar():
-+ time.sleep(0.1)
-+
-+ def thread_func():
-+ yappi.set_clock_type("wall")
-+ yappi.start()
-+
-+ bar()
-+
-+ t = threading.Thread(target=thread_func)
-+ t.start()
-+ t.join()
-+
-+ foo()
-+
-+ yappi.stop()
-+
-+ thread_ids = set()
-+ for tstat in yappi.get_thread_stats():
-+ self.assertTrue(tstat.tid not in thread_ids)
-+ thread_ids.add(tstat.tid)
-+
-+ def test_subsequent_profile(self):
-+ WORKER_COUNT = 5
-+
-+ def a():
-+ pass
-+
-+ def b():
-+ pass
-+
-+ def c():
-+ pass
-+
-+ _timings = {
-+ "a_1": 3,
-+ "b_1": 2,
-+ "c_1": 1,
-+ }
-+
-+ yappi.start()
-+
-+ def g():
-+ pass
-+
-+ g()
-+ yappi.stop()
-+ yappi.clear_stats()
-+ _yappi._set_test_timings(_timings)
-+ yappi.start()
-+
-+ _dummy = []
-+ for i in range(WORKER_COUNT):
-+ t = threading.Thread(target=a)
-+ t.start()
-+ t.join()
-+ for i in range(WORKER_COUNT):
-+ t = threading.Thread(target=b)
-+ t.start()
-+ _dummy.append(t)
-+ t.join()
-+ for i in range(WORKER_COUNT):
-+ t = threading.Thread(target=a)
-+ t.start()
-+ t.join()
-+ for i in range(WORKER_COUNT):
-+ t = threading.Thread(target=c)
-+ t.start()
-+ t.join()
-+ yappi.stop()
-+ yappi.start()
-+
-+ def f():
-+ pass
-+
-+ f()
-+ stats = yappi.get_func_stats()
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ fsc = utils.find_stat_by_name(stats, 'c')
-+ self.assertEqual(fsa.ncall, 10)
-+ self.assertEqual(fsb.ncall, 5)
-+ self.assertEqual(fsc.ncall, 5)
-+ self.assertEqual(fsa.ttot, fsa.tsub, 30)
-+ self.assertEqual(fsb.ttot, fsb.tsub, 10)
-+ self.assertEqual(fsc.ttot, fsc.tsub, 5)
-+
-+ # MACOSx optimizes by only creating one worker thread
-+ self.assertTrue(len(yappi.get_thread_stats()) >= 2)
-+
-+ def test_basic(self):
-+ yappi.set_clock_type('wall')
-+
-+ def dummy():
-+ pass
-+
-+ def a():
-+ time.sleep(0.2)
-+
-+ class Worker1(threading.Thread):
-+
-+ def a(self):
-+ time.sleep(0.3)
-+
-+ def run(self):
-+ self.a()
-+
-+ yappi.start(builtins=False, profile_threads=True)
-+
-+ c = Worker1()
-+ c.start()
-+ c.join()
-+ a()
-+ stats = yappi.get_func_stats()
-+ fsa1 = utils.find_stat_by_name(stats, 'Worker1.a')
-+ fsa2 = utils.find_stat_by_name(stats, 'a')
-+ self.assertTrue(fsa1 is not None)
-+ self.assertTrue(fsa2 is not None)
-+ self.assertTrue(fsa1.ttot > 0.2)
-+ self.assertTrue(fsa2.ttot > 0.1)
-+ tstats = yappi.get_thread_stats()
-+ self.assertEqual(len(tstats), 2)
-+ tsa = utils.find_stat_by_name(tstats, 'Worker1')
-+ tsm = utils.find_stat_by_name(tstats, '_MainThread')
-+ dummy() # call dummy to force ctx name to be retrieved again.
-+ self.assertTrue(tsa is not None)
-+ # TODO: I put dummy() to fix below, remove the comments after a while.
-+ self.assertTrue( # FIX: I see this fails sometimes?
-+ tsm is not None,
-+ 'Could not find "_MainThread". Found: %s' % (', '.join(utils.get_stat_names(tstats))))
-+
-+ def test_ctx_stats(self):
-+ from threading import Thread
-+ DUMMY_WORKER_COUNT = 5
-+ yappi.start()
-+
-+ class DummyThread(Thread):
-+ pass
-+
-+ def dummy():
-+ pass
-+
-+ def dummy_worker():
-+ pass
-+
-+ for i in range(DUMMY_WORKER_COUNT):
-+ t = DummyThread(target=dummy_worker)
-+ t.start()
-+ t.join()
-+ yappi.stop()
-+ stats = yappi.get_thread_stats()
-+ tsa = utils.find_stat_by_name(stats, "DummyThread")
-+ self.assertTrue(tsa is not None)
-+ yappi.clear_stats()
-+ time.sleep(1.0)
-+ _timings = {
-+ "a_1": 6,
-+ "b_1": 5,
-+ "c_1": 3,
-+ "d_1": 1,
-+ "a_2": 4,
-+ "b_2": 3,
-+ "c_2": 2,
-+ "d_2": 1
-+ }
-+ _yappi._set_test_timings(_timings)
-+
-+ class Thread1(Thread):
-+ pass
-+
-+ class Thread2(Thread):
-+ pass
-+
-+ def a():
-+ b()
-+
-+ def b():
-+ c()
-+
-+ def c():
-+ d()
-+
-+ def d():
-+ time.sleep(0.6)
-+
-+ yappi.set_clock_type("wall")
-+ yappi.start()
-+ t1 = Thread1(target=a)
-+ t1.start()
-+ t2 = Thread2(target=a)
-+ t2.start()
-+ t1.join()
-+ t2.join()
-+ stats = yappi.get_thread_stats()
-+
-+ # the fist clear_stats clears the context table?
-+ tsa = utils.find_stat_by_name(stats, "DummyThread")
-+ self.assertTrue(tsa is None)
-+
-+ tst1 = utils.find_stat_by_name(stats, "Thread1")
-+ tst2 = utils.find_stat_by_name(stats, "Thread2")
-+ tsmain = utils.find_stat_by_name(stats, "_MainThread")
-+ dummy() # call dummy to force ctx name to be retrieved again.
-+ self.assertTrue(len(stats) == 3)
-+ self.assertTrue(tst1 is not None)
-+ self.assertTrue(tst2 is not None)
-+ # TODO: I put dummy() to fix below, remove the comments after a while.
-+ self.assertTrue( # FIX: I see this fails sometimes
-+ tsmain is not None,
-+ 'Could not find "_MainThread". Found: %s' % (', '.join(utils.get_stat_names(stats))))
-+ self.assertTrue(1.0 > tst2.ttot >= 0.5)
-+ self.assertTrue(1.0 > tst1.ttot >= 0.5)
-+
-+ # test sorting of the ctx stats
-+ stats = stats.sort("totaltime", "desc")
-+ prev_stat = None
-+ for stat in stats:
-+ if prev_stat:
-+ self.assertTrue(prev_stat.ttot >= stat.ttot)
-+ prev_stat = stat
-+ stats = stats.sort("totaltime", "asc")
-+ prev_stat = None
-+ for stat in stats:
-+ if prev_stat:
-+ self.assertTrue(prev_stat.ttot <= stat.ttot)
-+ prev_stat = stat
-+ stats = stats.sort("schedcount", "desc")
-+ prev_stat = None
-+ for stat in stats:
-+ if prev_stat:
-+ self.assertTrue(prev_stat.sched_count >= stat.sched_count)
-+ prev_stat = stat
-+ stats = stats.sort("name", "desc")
-+ prev_stat = None
-+ for stat in stats:
-+ if prev_stat:
-+ self.assertTrue(prev_stat.name.lower() >= stat.name.lower())
-+ prev_stat = stat
-+ self.assertRaises(
-+ yappi.YappiError, stats.sort, "invalid_thread_sorttype_arg"
-+ )
-+ self.assertRaises(
-+ yappi.YappiError, stats.sort, "invalid_thread_sortorder_arg"
-+ )
-+
-+ def test_ctx_stats_cpu(self):
-+
-+ def get_thread_name():
-+ try:
-+ return threading.current_thread().name
-+ except AttributeError:
-+ return "Anonymous"
-+
-+ def burn_cpu(sec):
-+ t0 = yappi.get_clock_time()
-+ elapsed = 0
-+ while (elapsed < sec):
-+ for _ in range(1000):
-+ pass
-+ elapsed = yappi.get_clock_time() - t0
-+
-+ def test():
-+
-+ ts = []
-+ for i in (0.01, 0.05, 0.1):
-+ t = threading.Thread(target=burn_cpu, args=(i, ))
-+ t.name = "burn_cpu-%s" % str(i)
-+ t.start()
-+ ts.append(t)
-+ for t in ts:
-+ t.join()
-+
-+ yappi.set_clock_type("cpu")
-+ yappi.set_context_name_callback(get_thread_name)
-+
-+ yappi.start()
-+
-+ test()
-+
-+ yappi.stop()
-+
-+ tstats = yappi.get_thread_stats()
-+ r1 = '''
-+ burn_cpu-0.1 3 123145356058624 0.100105 8
-+ burn_cpu-0.05 2 123145361313792 0.050149 8
-+ burn_cpu-0.01 1 123145356058624 0.010127 2
-+ MainThread 0 4321620864 0.001632 6
-+ '''
-+ self.assert_ctx_stats_almost_equal(r1, tstats)
-+
-+ def test_producer_consumer_with_queues(self):
-+ # we currently just stress yappi, no functionality test is done here.
-+ yappi.start()
-+ if utils.is_py3x():
-+ from queue import Queue
-+ else:
-+ from Queue import Queue
-+ from threading import Thread
-+ WORKER_THREAD_COUNT = 50
-+ WORK_ITEM_COUNT = 2000
-+
-+ def worker():
-+ while True:
-+ item = q.get()
-+ # do the work with item
-+ q.task_done()
-+
-+ q = Queue()
-+ for i in range(WORKER_THREAD_COUNT):
-+ t = Thread(target=worker)
-+ t.daemon = True
-+ t.start()
-+
-+ for item in range(WORK_ITEM_COUNT):
-+ q.put(item)
-+ q.join() # block until all tasks are done
-+ #yappi.get_func_stats().sort("callcount").print_all()
-+ yappi.stop()
-+
-+ def test_temporary_lock_waiting(self):
-+ yappi.start()
-+ _lock = threading.Lock()
-+
-+ def worker():
-+ _lock.acquire()
-+ try:
-+ time.sleep(1.0)
-+ finally:
-+ _lock.release()
-+
-+ t1 = threading.Thread(target=worker)
-+ t2 = threading.Thread(target=worker)
-+ t1.start()
-+ t2.start()
-+ t1.join()
-+ t2.join()
-+ #yappi.get_func_stats().sort("callcount").print_all()
-+ yappi.stop()
-+
-+ @unittest.skipIf(os.name != "posix", "requires Posix compliant OS")
-+ def test_signals_with_blocking_calls(self):
-+ import signal, os, time
-+
-+ # just to verify if signal is handled correctly and stats/yappi are not corrupted.
-+ def handler(signum, frame):
-+ raise Exception("Signal handler executed!")
-+
-+ yappi.start()
-+ signal.signal(signal.SIGALRM, handler)
-+ signal.alarm(1)
-+ self.assertRaises(Exception, time.sleep, 2)
-+ stats = yappi.get_func_stats()
-+ fsh = utils.find_stat_by_name(stats, "handler")
-+ self.assertTrue(fsh is not None)
-+
-+ @unittest.skipIf(not sys.version_info >= (3, 2), "requires Python 3.2")
-+ def test_concurrent_futures(self):
-+ yappi.start()
-+ from concurrent.futures import ThreadPoolExecutor
-+ with ThreadPoolExecutor(max_workers=5) as executor:
-+ f = executor.submit(pow, 5, 2)
-+ self.assertEqual(f.result(), 25)
-+ time.sleep(1.0)
-+ yappi.stop()
-+
-+ @unittest.skipIf(not sys.version_info >= (3, 2), "requires Python 3.2")
-+ def test_barrier(self):
-+ yappi.start()
-+ b = threading.Barrier(2, timeout=1)
-+
-+ def worker():
-+ try:
-+ b.wait()
-+ except threading.BrokenBarrierError:
-+ pass
-+ except Exception:
-+ raise Exception("BrokenBarrierError not raised")
-+
-+ t1 = threading.Thread(target=worker)
-+ t1.start()
-+ #b.wait()
-+ t1.join()
-+ yappi.stop()
-+
-+
-+class NonRecursiveFunctions(utils.YappiUnitTestCase):
-+
-+ def test_abcd(self):
-+ _timings = {"a_1": 6, "b_1": 5, "c_1": 3, "d_1": 1}
-+ _yappi._set_test_timings(_timings)
-+
-+ def a():
-+ b()
-+
-+ def b():
-+ c()
-+
-+ def c():
-+ d()
-+
-+ def d():
-+ pass
-+
-+ stats = utils.run_and_get_func_stats(a)
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ fsc = utils.find_stat_by_name(stats, 'c')
-+ fsd = utils.find_stat_by_name(stats, 'd')
-+ cfsab = fsa.children[fsb]
-+ cfsbc = fsb.children[fsc]
-+ cfscd = fsc.children[fsd]
-+
-+ self.assertEqual(fsa.ttot, 6)
-+ self.assertEqual(fsa.tsub, 1)
-+ self.assertEqual(fsb.ttot, 5)
-+ self.assertEqual(fsb.tsub, 2)
-+ self.assertEqual(fsc.ttot, 3)
-+ self.assertEqual(fsc.tsub, 2)
-+ self.assertEqual(fsd.ttot, 1)
-+ self.assertEqual(fsd.tsub, 1)
-+ self.assertEqual(cfsab.ttot, 5)
-+ self.assertEqual(cfsab.tsub, 2)
-+ self.assertEqual(cfsbc.ttot, 3)
-+ self.assertEqual(cfsbc.tsub, 2)
-+ self.assertEqual(cfscd.ttot, 1)
-+ self.assertEqual(cfscd.tsub, 1)
-+
-+ def test_stop_in_middle(self):
-+ _timings = {"a_1": 6, "b_1": 4}
-+ _yappi._set_test_timings(_timings)
-+
-+ def a():
-+ b()
-+ yappi.stop()
-+
-+ def b():
-+ time.sleep(0.2)
-+
-+ yappi.start()
-+ a()
-+ stats = yappi.get_func_stats()
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+
-+ self.assertEqual(fsa.ncall, 1)
-+ self.assertEqual(fsa.nactualcall, 0)
-+ self.assertEqual(fsa.ttot, 0) # no call_leave called
-+ self.assertEqual(fsa.tsub, 0) # no call_leave called
-+ self.assertEqual(fsb.ttot, 4)
-+
-+
-+class RecursiveFunctions(utils.YappiUnitTestCase):
-+
-+ def test_fibonacci(self):
-+
-+ def fib(n):
-+ if n > 1:
-+ return fib(n - 1) + fib(n - 2)
-+ else:
-+ return n
-+
-+ stats = utils.run_and_get_func_stats(fib, 22)
-+ fs = utils.find_stat_by_name(stats, 'fib')
-+ self.assertEqual(fs.ncall, 57313)
-+ self.assertEqual(fs.ttot, fs.tsub)
-+
-+ def test_abcadc(self):
-+ _timings = {
-+ "a_1": 20,
-+ "b_1": 19,
-+ "c_1": 17,
-+ "a_2": 13,
-+ "d_1": 12,
-+ "c_2": 10,
-+ "a_3": 5
-+ }
-+ _yappi._set_test_timings(_timings)
-+
-+ def a(n):
-+ if n == 3:
-+ return
-+ if n == 1 + 1:
-+ d(n)
-+ else:
-+ b(n)
-+
-+ def b(n):
-+ c(n)
-+
-+ def c(n):
-+ a(n + 1)
-+
-+ def d(n):
-+ c(n)
-+
-+ stats = utils.run_and_get_func_stats(a, 1)
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ fsc = utils.find_stat_by_name(stats, 'c')
-+ fsd = utils.find_stat_by_name(stats, 'd')
-+ self.assertEqual(fsa.ncall, 3)
-+ self.assertEqual(fsa.nactualcall, 1)
-+ self.assertEqual(fsa.ttot, 20)
-+ self.assertEqual(fsa.tsub, 7)
-+ self.assertEqual(fsb.ttot, 19)
-+ self.assertEqual(fsb.tsub, 2)
-+ self.assertEqual(fsc.ttot, 17)
-+ self.assertEqual(fsc.tsub, 9)
-+ self.assertEqual(fsd.ttot, 12)
-+ self.assertEqual(fsd.tsub, 2)
-+ cfsca = fsc.children[fsa]
-+ self.assertEqual(cfsca.nactualcall, 0)
-+ self.assertEqual(cfsca.ncall, 2)
-+ self.assertEqual(cfsca.ttot, 13)
-+ self.assertEqual(cfsca.tsub, 6)
-+
-+ def test_aaaa(self):
-+ _timings = {"d_1": 9, "d_2": 7, "d_3": 3, "d_4": 2}
-+ _yappi._set_test_timings(_timings)
-+
-+ def d(n):
-+ if n == 3:
-+ return
-+ d(n + 1)
-+
-+ stats = utils.run_and_get_func_stats(d, 0)
-+ fsd = utils.find_stat_by_name(stats, 'd')
-+ self.assertEqual(fsd.ncall, 4)
-+ self.assertEqual(fsd.nactualcall, 1)
-+ self.assertEqual(fsd.ttot, 9)
-+ self.assertEqual(fsd.tsub, 9)
-+ cfsdd = fsd.children[fsd]
-+ self.assertEqual(cfsdd.ttot, 7)
-+ self.assertEqual(cfsdd.tsub, 7)
-+ self.assertEqual(cfsdd.ncall, 3)
-+ self.assertEqual(cfsdd.nactualcall, 0)
-+
-+ def test_abcabc(self):
-+ _timings = {
-+ "a_1": 20,
-+ "b_1": 19,
-+ "c_1": 17,
-+ "a_2": 13,
-+ "b_2": 11,
-+ "c_2": 9,
-+ "a_3": 6
-+ }
-+ _yappi._set_test_timings(_timings)
-+
-+ def a(n):
-+ if n == 3:
-+ return
-+ else:
-+ b(n)
-+
-+ def b(n):
-+ c(n)
-+
-+ def c(n):
-+ a(n + 1)
-+
-+ stats = utils.run_and_get_func_stats(a, 1)
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ fsc = utils.find_stat_by_name(stats, 'c')
-+ self.assertEqual(fsa.ncall, 3)
-+ self.assertEqual(fsa.nactualcall, 1)
-+ self.assertEqual(fsa.ttot, 20)
-+ self.assertEqual(fsa.tsub, 9)
-+ self.assertEqual(fsb.ttot, 19)
-+ self.assertEqual(fsb.tsub, 4)
-+ self.assertEqual(fsc.ttot, 17)
-+ self.assertEqual(fsc.tsub, 7)
-+ cfsab = fsa.children[fsb]
-+ cfsbc = fsb.children[fsc]
-+ cfsca = fsc.children[fsa]
-+ self.assertEqual(cfsab.ttot, 19)
-+ self.assertEqual(cfsab.tsub, 4)
-+ self.assertEqual(cfsbc.ttot, 17)
-+ self.assertEqual(cfsbc.tsub, 7)
-+ self.assertEqual(cfsca.ttot, 13)
-+ self.assertEqual(cfsca.tsub, 8)
-+
-+ def test_abcbca(self):
-+ _timings = {"a_1": 10, "b_1": 9, "c_1": 7, "b_2": 4, "c_2": 2, "a_2": 1}
-+ _yappi._set_test_timings(_timings)
-+ self._ncall = 1
-+
-+ def a():
-+ if self._ncall == 1:
-+ b()
-+ else:
-+ return
-+
-+ def b():
-+ c()
-+
-+ def c():
-+ if self._ncall == 1:
-+ self._ncall += 1
-+ b()
-+ else:
-+ a()
-+
-+ stats = utils.run_and_get_func_stats(a)
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ fsc = utils.find_stat_by_name(stats, 'c')
-+ cfsab = fsa.children[fsb]
-+ cfsbc = fsb.children[fsc]
-+ cfsca = fsc.children[fsa]
-+ self.assertEqual(fsa.ttot, 10)
-+ self.assertEqual(fsa.tsub, 2)
-+ self.assertEqual(fsb.ttot, 9)
-+ self.assertEqual(fsb.tsub, 4)
-+ self.assertEqual(fsc.ttot, 7)
-+ self.assertEqual(fsc.tsub, 4)
-+ self.assertEqual(cfsab.ttot, 9)
-+ self.assertEqual(cfsab.tsub, 2)
-+ self.assertEqual(cfsbc.ttot, 7)
-+ self.assertEqual(cfsbc.tsub, 4)
-+ self.assertEqual(cfsca.ttot, 1)
-+ self.assertEqual(cfsca.tsub, 1)
-+ self.assertEqual(cfsca.ncall, 1)
-+ self.assertEqual(cfsca.nactualcall, 0)
-+
-+ def test_aabccb(self):
-+ _timings = {
-+ "a_1": 13,
-+ "a_2": 11,
-+ "b_1": 9,
-+ "c_1": 5,
-+ "c_2": 3,
-+ "b_2": 1
-+ }
-+ _yappi._set_test_timings(_timings)
-+ self._ncall = 1
-+
-+ def a():
-+ if self._ncall == 1:
-+ self._ncall += 1
-+ a()
-+ else:
-+ b()
-+
-+ def b():
-+ if self._ncall == 3:
-+ return
-+ else:
-+ c()
-+
-+ def c():
-+ if self._ncall == 2:
-+ self._ncall += 1
-+ c()
-+ else:
-+ b()
-+
-+ stats = utils.run_and_get_func_stats(a)
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ fsc = utils.find_stat_by_name(stats, 'c')
-+ cfsaa = fsa.children[fsa.index]
-+ cfsab = fsa.children[fsb]
-+ cfsbc = fsb.children[fsc.full_name]
-+ cfscc = fsc.children[fsc]
-+ cfscb = fsc.children[fsb]
-+ self.assertEqual(fsb.ttot, 9)
-+ self.assertEqual(fsb.tsub, 5)
-+ self.assertEqual(cfsbc.ttot, 5)
-+ self.assertEqual(cfsbc.tsub, 2)
-+ self.assertEqual(fsa.ttot, 13)
-+ self.assertEqual(fsa.tsub, 4)
-+ self.assertEqual(cfsab.ttot, 9)
-+ self.assertEqual(cfsab.tsub, 4)
-+ self.assertEqual(cfsaa.ttot, 11)
-+ self.assertEqual(cfsaa.tsub, 2)
-+ self.assertEqual(fsc.ttot, 5)
-+ self.assertEqual(fsc.tsub, 4)
-+
-+ def test_abaa(self):
-+ _timings = {"a_1": 13, "b_1": 10, "a_2": 9, "a_3": 5}
-+ _yappi._set_test_timings(_timings)
-+
-+ self._ncall = 1
-+
-+ def a():
-+ if self._ncall == 1:
-+ b()
-+ elif self._ncall == 2:
-+ self._ncall += 1
-+ a()
-+ else:
-+ return
-+
-+ def b():
-+ self._ncall += 1
-+ a()
-+
-+ stats = utils.run_and_get_func_stats(a)
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ cfsaa = fsa.children[fsa]
-+ cfsba = fsb.children[fsa]
-+ self.assertEqual(fsb.ttot, 10)
-+ self.assertEqual(fsb.tsub, 1)
-+ self.assertEqual(fsa.ttot, 13)
-+ self.assertEqual(fsa.tsub, 12)
-+ self.assertEqual(cfsaa.ttot, 5)
-+ self.assertEqual(cfsaa.tsub, 5)
-+ self.assertEqual(cfsba.ttot, 9)
-+ self.assertEqual(cfsba.tsub, 4)
-+
-+ def test_aabb(self):
-+ _timings = {"a_1": 13, "a_2": 10, "b_1": 9, "b_2": 5}
-+ _yappi._set_test_timings(_timings)
-+
-+ self._ncall = 1
-+
-+ def a():
-+ if self._ncall == 1:
-+ self._ncall += 1
-+ a()
-+ elif self._ncall == 2:
-+ b()
-+ else:
-+ return
-+
-+ def b():
-+ if self._ncall == 2:
-+ self._ncall += 1
-+ b()
-+ else:
-+ return
-+
-+ stats = utils.run_and_get_func_stats(a)
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ cfsaa = fsa.children[fsa]
-+ cfsab = fsa.children[fsb]
-+ cfsbb = fsb.children[fsb]
-+ self.assertEqual(fsa.ttot, 13)
-+ self.assertEqual(fsa.tsub, 4)
-+ self.assertEqual(fsb.ttot, 9)
-+ self.assertEqual(fsb.tsub, 9)
-+ self.assertEqual(cfsaa.ttot, 10)
-+ self.assertEqual(cfsaa.tsub, 1)
-+ self.assertEqual(cfsab.ttot, 9)
-+ self.assertEqual(cfsab.tsub, 4)
-+ self.assertEqual(cfsbb.ttot, 5)
-+ self.assertEqual(cfsbb.tsub, 5)
-+
-+ def test_abbb(self):
-+ _timings = {"a_1": 13, "b_1": 10, "b_2": 6, "b_3": 1}
-+ _yappi._set_test_timings(_timings)
-+
-+ self._ncall = 1
-+
-+ def a():
-+ if self._ncall == 1:
-+ b()
-+
-+ def b():
-+ if self._ncall == 3:
-+ return
-+ self._ncall += 1
-+ b()
-+
-+ stats = utils.run_and_get_func_stats(a)
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ cfsab = fsa.children[fsb]
-+ cfsbb = fsb.children[fsb]
-+ self.assertEqual(fsa.ttot, 13)
-+ self.assertEqual(fsa.tsub, 3)
-+ self.assertEqual(fsb.ttot, 10)
-+ self.assertEqual(fsb.tsub, 10)
-+ self.assertEqual(fsb.ncall, 3)
-+ self.assertEqual(fsb.nactualcall, 1)
-+ self.assertEqual(cfsab.ttot, 10)
-+ self.assertEqual(cfsab.tsub, 4)
-+ self.assertEqual(cfsbb.ttot, 6)
-+ self.assertEqual(cfsbb.tsub, 6)
-+ self.assertEqual(cfsbb.nactualcall, 0)
-+ self.assertEqual(cfsbb.ncall, 2)
-+
-+ def test_aaab(self):
-+ _timings = {"a_1": 13, "a_2": 10, "a_3": 6, "b_1": 1}
-+ _yappi._set_test_timings(_timings)
-+
-+ self._ncall = 1
-+
-+ def a():
-+ if self._ncall == 3:
-+ b()
-+ return
-+ self._ncall += 1
-+ a()
-+
-+ def b():
-+ return
-+
-+ stats = utils.run_and_get_func_stats(a)
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ cfsaa = fsa.children[fsa]
-+ cfsab = fsa.children[fsb]
-+ self.assertEqual(fsa.ttot, 13)
-+ self.assertEqual(fsa.tsub, 12)
-+ self.assertEqual(fsb.ttot, 1)
-+ self.assertEqual(fsb.tsub, 1)
-+ self.assertEqual(cfsaa.ttot, 10)
-+ self.assertEqual(cfsaa.tsub, 9)
-+ self.assertEqual(cfsab.ttot, 1)
-+ self.assertEqual(cfsab.tsub, 1)
-+
-+ def test_abab(self):
-+ _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1}
-+ _yappi._set_test_timings(_timings)
-+
-+ self._ncall = 1
-+
-+ def a():
-+ b()
-+
-+ def b():
-+ if self._ncall == 2:
-+ return
-+ self._ncall += 1
-+ a()
-+
-+ stats = utils.run_and_get_func_stats(a)
-+ fsa = utils.find_stat_by_name(stats, 'a')
-+ fsb = utils.find_stat_by_name(stats, 'b')
-+ cfsab = fsa.children[fsb]
-+ cfsba = fsb.children[fsa]
-+ self.assertEqual(fsa.ttot, 13)
-+ self.assertEqual(fsa.tsub, 8)
-+ self.assertEqual(fsb.ttot, 10)
-+ self.assertEqual(fsb.tsub, 5)
-+ self.assertEqual(cfsab.ttot, 10)
-+ self.assertEqual(cfsab.tsub, 5)
-+ self.assertEqual(cfsab.ncall, 2)
-+ self.assertEqual(cfsab.nactualcall, 1)
-+ self.assertEqual(cfsba.ttot, 6)
-+ self.assertEqual(cfsba.tsub, 5)
-+
-+
-+if __name__ == '__main__':
-+ # import sys;sys.argv = ['', 'BasicUsage.test_run_as_script']
-+ # import sys;sys.argv = ['', 'MultithreadedScenarios.test_subsequent_profile']
-+ unittest.main()
---- a/tests/test_gevent.py
-+++ b/tests/test_gevent.py
-@@ -4,7 +4,7 @@ import yappi
- import gevent
- from gevent.event import Event
- import threading
--from utils import (
-+from .utils import (
- YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io,
- burn_io_gevent
- )
---- a/tests/test_hooks.py
-+++ b/tests/test_hooks.py
-@@ -5,7 +5,7 @@ import unittest
- import time
-
- import yappi
--import utils
-+import tests.utils as utils
-
-
- def a():
---- a/tests/test_tags.py
-+++ b/tests/test_tags.py
-@@ -2,7 +2,7 @@ import unittest
- import yappi
- import threading
- import time
--from utils import YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io
-+from .utils import YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io
-
-
- class MultiThreadTests(YappiUnitTestCase):
diff --git a/meta-python/recipes-devtools/python/python3-yappi/0001-test_functionality-convert-line-endings-to-Unix.patch b/meta-python/recipes-devtools/python/python3-yappi/0001-test_functionality-convert-line-endings-to-Unix.patch
new file mode 100644
index 0000000000..70d4607c29
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-yappi/0001-test_functionality-convert-line-endings-to-Unix.patch
@@ -0,0 +1,3845 @@
+From 0136ca731cba8b056b3f2ff0e7df3953b94f1e87 Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Sun, 24 Dec 2023 09:41:57 -0800
+Subject: [PATCH 1/2] test_functionality: convert line endings to Unix
+
+Convert the Windows line endings with dos2unix to be like the
+other files in tests/*
+
+Upstream-Status: Submitted [https://github.com/sumerc/yappi/pull/164]
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ tests/test_functionality.py | 3822 +++++++++++++++++------------------
+ 1 file changed, 1911 insertions(+), 1911 deletions(-)
+
+diff --git a/tests/test_functionality.py b/tests/test_functionality.py
+index 0e99c47..38bbe67 100644
+--- a/tests/test_functionality.py
++++ b/tests/test_functionality.py
+@@ -1,1911 +1,1911 @@
+-import os
+-import sys
+-import time
+-import threading
+-import unittest
+-import yappi
+-import _yappi
+-import utils
+-import multiprocessing
+-import subprocess
+-
+-_counter = 0
+-
+-
+-class BasicUsage(utils.YappiUnitTestCase):
+-
+- def test_callback_function_int_return_overflow(self):
+- # this test is just here to check if any errors are generated, as the err
+- # is printed in C side, I did not include it here. THere are ways to test
+- # this deterministically, I did not bother
+- import ctypes
+-
+- def _unsigned_overflow_margin():
+- return 2**(ctypes.sizeof(ctypes.c_void_p) * 8) - 1
+-
+- def foo():
+- pass
+-
+- #with utils.captured_output() as (out, err):
+- yappi.set_context_id_callback(_unsigned_overflow_margin)
+- yappi.set_tag_callback(_unsigned_overflow_margin)
+- yappi.start()
+- foo()
+-
+- def test_issue60(self):
+-
+- def foo():
+- buf = bytearray()
+- buf += b't' * 200
+- view = memoryview(buf)[10:]
+- view = view.tobytes()
+- del buf[:10] # this throws exception
+- return view
+-
+- yappi.start(builtins=True)
+- foo()
+- self.assertTrue(
+- len(
+- yappi.get_func_stats(
+- filter_callback=lambda x: yappi.
+- func_matches(x, [memoryview.tobytes])
+- )
+- ) > 0
+- )
+- yappi.stop()
+-
+- def test_issue54(self):
+-
+- def _tag_cbk():
+- global _counter
+- _counter += 1
+- return _counter
+-
+- def a():
+- pass
+-
+- def b():
+- pass
+-
+- yappi.set_tag_callback(_tag_cbk)
+- yappi.start()
+- a()
+- a()
+- a()
+- yappi.stop()
+- stats = yappi.get_func_stats()
+- self.assertEqual(stats.pop().ncall, 3) # aggregated if no tag is given
+- stats = yappi.get_func_stats(tag=1)
+-
+- for i in range(1, 3):
+- stats = yappi.get_func_stats(tag=i)
+- stats = yappi.get_func_stats(
+- tag=i, filter_callback=lambda x: yappi.func_matches(x, [a])
+- )
+-
+- stat = stats.pop()
+- self.assertEqual(stat.ncall, 1)
+-
+- yappi.set_tag_callback(None)
+- yappi.clear_stats()
+- yappi.start()
+- b()
+- b()
+- stats = yappi.get_func_stats()
+- self.assertEqual(len(stats), 1)
+- stat = stats.pop()
+- self.assertEqual(stat.ncall, 2)
+-
+- def test_filter(self):
+-
+- def a():
+- pass
+-
+- def b():
+- a()
+-
+- def c():
+- b()
+-
+- _TCOUNT = 5
+-
+- ts = []
+- yappi.start()
+- for i in range(_TCOUNT):
+- t = threading.Thread(target=c)
+- t.start()
+- ts.append(t)
+-
+- for t in ts:
+- t.join()
+-
+- yappi.stop()
+-
+- ctx_ids = []
+- for tstat in yappi.get_thread_stats():
+- if tstat.name == '_MainThread':
+- main_ctx_id = tstat.id
+- else:
+- ctx_ids.append(tstat.id)
+-
+- fstats = yappi.get_func_stats(filter={"ctx_id": 9})
+- self.assertTrue(fstats.empty())
+- fstats = yappi.get_func_stats(
+- filter={
+- "ctx_id": main_ctx_id,
+- "name": "c"
+- }
+- ) # main thread
+- self.assertTrue(fstats.empty())
+-
+- for i in ctx_ids:
+- fstats = yappi.get_func_stats(
+- filter={
+- "ctx_id": i,
+- "name": "a",
+- "ncall": 1
+- }
+- )
+- self.assertEqual(fstats.pop().ncall, 1)
+- fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "b"})
+- self.assertEqual(fstats.pop().ncall, 1)
+- fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "c"})
+- self.assertEqual(fstats.pop().ncall, 1)
+-
+- yappi.clear_stats()
+- yappi.start(builtins=True)
+- time.sleep(0.1)
+- yappi.stop()
+- fstats = yappi.get_func_stats(filter={"module": "time"})
+- self.assertEqual(len(fstats), 1)
+-
+- # invalid filters`
+- self.assertRaises(
+- Exception, yappi.get_func_stats, filter={'tag': "sss"}
+- )
+- self.assertRaises(
+- Exception, yappi.get_func_stats, filter={'ctx_id': "None"}
+- )
+-
+- def test_filter_callback(self):
+-
+- def a():
+- time.sleep(0.1)
+-
+- def b():
+- a()
+-
+- def c():
+- pass
+-
+- def d():
+- pass
+-
+- yappi.set_clock_type("wall")
+- yappi.start(builtins=True)
+- a()
+- b()
+- c()
+- d()
+- stats = yappi.get_func_stats(
+- filter_callback=lambda x: yappi.func_matches(x, [a, b])
+- )
+- #stats.print_all()
+- r1 = '''
+- tests/test_functionality.py:98 a 2 0.000000 0.200350 0.100175
+- tests/test_functionality.py:101 b 1 0.000000 0.120000 0.100197
+- '''
+- self.assert_traces_almost_equal(r1, stats)
+- self.assertEqual(len(stats), 2)
+- stats = yappi.get_func_stats(
+- filter_callback=lambda x: yappi.
+- module_matches(x, [sys.modules[__name__]])
+- )
+- r1 = '''
+- tests/test_functionality.py:98 a 2 0.000000 0.230130 0.115065
+- tests/test_functionality.py:101 b 1 0.000000 0.120000 0.109011
+- tests/test_functionality.py:104 c 1 0.000000 0.000002 0.000002
+- tests/test_functionality.py:107 d 1 0.000000 0.000001 0.000001
+- '''
+- self.assert_traces_almost_equal(r1, stats)
+- self.assertEqual(len(stats), 4)
+-
+- stats = yappi.get_func_stats(
+- filter_callback=lambda x: yappi.func_matches(x, [time.sleep])
+- )
+- self.assertEqual(len(stats), 1)
+- r1 = '''
+- time.sleep 2 0.206804 0.220000 0.103402
+- '''
+- self.assert_traces_almost_equal(r1, stats)
+-
+- def test_print_formatting(self):
+-
+- def a():
+- pass
+-
+- def b():
+- a()
+-
+- func_cols = {
+- 1: ("name", 48),
+- 0: ("ncall", 5),
+- 2: ("tsub", 8),
+- }
+- thread_cols = {
+- 1: ("name", 48),
+- 0: ("ttot", 8),
+- }
+-
+- yappi.start()
+- a()
+- b()
+- yappi.stop()
+- fs = yappi.get_func_stats()
+- cs = fs[1].children
+- ts = yappi.get_thread_stats()
+- #fs.print_all(out=sys.stderr, columns={1:("name", 70), })
+- #cs.print_all(out=sys.stderr, columns=func_cols)
+- #ts.print_all(out=sys.stderr, columns=thread_cols)
+- #cs.print_all(out=sys.stderr, columns={})
+-
+- self.assertRaises(
+- yappi.YappiError, fs.print_all, columns={1: ("namee", 9)}
+- )
+- self.assertRaises(
+- yappi.YappiError, cs.print_all, columns={1: ("dd", 0)}
+- )
+- self.assertRaises(
+- yappi.YappiError, ts.print_all, columns={1: ("tidd", 0)}
+- )
+-
+- def test_get_clock(self):
+- yappi.set_clock_type('cpu')
+- self.assertEqual('cpu', yappi.get_clock_type())
+- clock_info = yappi.get_clock_info()
+- self.assertTrue('api' in clock_info)
+- self.assertTrue('resolution' in clock_info)
+-
+- yappi.set_clock_type('wall')
+- self.assertEqual('wall', yappi.get_clock_type())
+-
+- t0 = yappi.get_clock_time()
+- time.sleep(0.1)
+- duration = yappi.get_clock_time() - t0
+- self.assertTrue(0.05 < duration < 0.3)
+-
+- def test_profile_decorator(self):
+-
+- def aggregate(func, stats):
+- fname = f"tests/{func.__name__}.profile"
+- try:
+- stats.add(fname)
+- except OSError:
+- pass
+- stats.save(fname)
+- raise Exception("messing around")
+-
+- @yappi.profile(return_callback=aggregate)
+- def a(x, y):
+- if x + y == 25:
+- raise Exception("")
+- return x + y
+-
+- def b():
+- pass
+-
+- try:
+- os.remove(
+- "tests/a.profile"
+- ) # remove the one from prev test, if available
+- except:
+- pass
+-
+- # global profile is on to mess things up
+- yappi.start()
+- b()
+-
+- # assert functionality and call function at same time
+- try:
+- self.assertEqual(a(1, 2), 3)
+- except:
+- pass
+- try:
+- self.assertEqual(a(2, 5), 7)
+- except:
+- pass
+- try:
+- a(4, 21)
+- except:
+- pass
+- stats = yappi.get_func_stats().add("tests/a.profile")
+- fsa = utils.find_stat_by_name(stats, 'a')
+- self.assertEqual(fsa.ncall, 3)
+- self.assertEqual(len(stats), 1) # b() should be cleared out.
+-
+- @yappi.profile(return_callback=aggregate)
+- def count_down_rec(n):
+- if n == 0:
+- return
+- count_down_rec(n - 1)
+-
+- try:
+- os.remove(
+- "tests/count_down_rec.profile"
+- ) # remove the one from prev test, if available
+- except:
+- pass
+-
+- try:
+- count_down_rec(4)
+- except:
+- pass
+- try:
+- count_down_rec(3)
+- except:
+- pass
+-
+- stats = yappi.YFuncStats("tests/count_down_rec.profile")
+- fsrec = utils.find_stat_by_name(stats, 'count_down_rec')
+- self.assertEqual(fsrec.ncall, 9)
+- self.assertEqual(fsrec.nactualcall, 2)
+-
+- def test_strip_dirs(self):
+-
+- def a():
+- pass
+-
+- stats = utils.run_and_get_func_stats(a, )
+- stats.strip_dirs()
+- fsa = utils.find_stat_by_name(stats, "a")
+- self.assertEqual(fsa.module, os.path.basename(fsa.module))
+-
+- @unittest.skipIf(os.name == "nt", "do not run on Windows")
+- def test_run_as_script(self):
+- import re
+- p = subprocess.Popen(
+- ['yappi', os.path.join('./tests', 'run_as_script.py')],
+- stdout=subprocess.PIPE
+- )
+- out, err = p.communicate()
+- self.assertEqual(p.returncode, 0)
+- func_stats, thread_stats = re.split(
+- b'name\\s+id\\s+tid\\s+ttot\\s+scnt\\s*\n', out
+- )
+- self.assertTrue(b'FancyThread' in thread_stats)
+-
+- def test_yappi_overhead(self):
+- LOOP_COUNT = 100000
+-
+- def a():
+- pass
+-
+- def b():
+- for i in range(LOOP_COUNT):
+- a()
+-
+- t0 = time.time()
+- yappi.start()
+- b()
+- yappi.stop()
+- time_with_yappi = time.time() - t0
+- t0 = time.time()
+- b()
+- time_without_yappi = time.time() - t0
+- if time_without_yappi == 0:
+- time_without_yappi = 0.000001
+-
+- # in latest v0.82, I calculated this as close to "7.0" in my machine.
+- # however, %83 of this overhead is coming from tickcount(). The other %17
+- # seems to have been evenly distributed to the internal bookkeeping
+- # structures/algorithms which seems acceptable. Note that our test only
+- # tests one function being profiled at-a-time in a short interval.
+- # profiling high number of functions in a small time
+- # is a different beast, (which is pretty unlikely in most applications)
+- # So as a conclusion: I cannot see any optimization window for Yappi that
+- # is worth implementing as we will only optimize %17 of the time.
+- sys.stderr.write("\r\nYappi puts %0.1f times overhead to the profiled application in average.\r\n" % \
+- (time_with_yappi / time_without_yappi))
+-
+- def test_clear_stats_while_running(self):
+-
+- def a():
+- pass
+-
+- yappi.start()
+- a()
+- yappi.clear_stats()
+- a()
+- stats = yappi.get_func_stats()
+- fsa = utils.find_stat_by_name(stats, 'a')
+- self.assertEqual(fsa.ncall, 1)
+-
+- def test_generator(self):
+-
+- def _gen(n):
+- while (n > 0):
+- yield n
+- n -= 1
+-
+- yappi.start()
+- for x in _gen(5):
+- pass
+- self.assertTrue(
+- yappi.convert2pstats(yappi.get_func_stats()) is not None
+- )
+-
+- def test_slice_child_stats_and_strip_dirs(self):
+-
+- def b():
+- for i in range(10000000):
+- pass
+-
+- def a():
+- b()
+-
+- yappi.start(builtins=True)
+- a()
+- stats = yappi.get_func_stats()
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- self.assertTrue(fsa.children[0:1] is not None)
+- prev_afullname = fsa.full_name
+- prev_bchildfullname = fsa.children[fsb].full_name
+- stats.strip_dirs()
+- self.assertTrue(len(prev_afullname) > len(fsa.full_name))
+- self.assertTrue(
+- len(prev_bchildfullname) > len(fsa.children[fsb].full_name)
+- )
+-
+- def test_children_stat_functions(self):
+- _timings = {"a_1": 5, "b_1": 3, "c_1": 1}
+- _yappi._set_test_timings(_timings)
+-
+- def b():
+- pass
+-
+- def c():
+- pass
+-
+- def a():
+- b()
+- c()
+-
+- yappi.start()
+- a()
+- b() # non-child call
+- c() # non-child call
+- stats = yappi.get_func_stats()
+- fsa = utils.find_stat_by_name(stats, 'a')
+- childs_of_a = fsa.children.get().sort("tavg", "desc")
+- prev_item = None
+- for item in childs_of_a:
+- if prev_item:
+- self.assertTrue(prev_item.tavg > item.tavg)
+- prev_item = item
+- childs_of_a.sort("name", "desc")
+- prev_item = None
+- for item in childs_of_a:
+- if prev_item:
+- self.assertTrue(prev_item.name > item.name)
+- prev_item = item
+- childs_of_a.clear()
+- self.assertTrue(childs_of_a.empty())
+-
+- def test_no_stats_different_clock_type_load(self):
+-
+- def a():
+- pass
+-
+- yappi.start()
+- a()
+- yappi.stop()
+- yappi.get_func_stats().save("tests/ystats1.ys")
+- yappi.clear_stats()
+- yappi.set_clock_type("WALL")
+- yappi.start()
+- yappi.stop()
+- stats = yappi.get_func_stats().add("tests/ystats1.ys")
+- fsa = utils.find_stat_by_name(stats, 'a')
+- self.assertTrue(fsa is not None)
+-
+- def test_subsequent_profile(self):
+- _timings = {"a_1": 1, "b_1": 1}
+- _yappi._set_test_timings(_timings)
+-
+- def a():
+- pass
+-
+- def b():
+- pass
+-
+- yappi.start()
+- a()
+- yappi.stop()
+- yappi.start()
+- b()
+- yappi.stop()
+- stats = yappi.get_func_stats()
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- self.assertTrue(fsa is not None)
+- self.assertTrue(fsb is not None)
+- self.assertEqual(fsa.ttot, 1)
+- self.assertEqual(fsb.ttot, 1)
+-
+- def test_lambda(self):
+- f = lambda: time.sleep(0.3)
+- yappi.set_clock_type("wall")
+- yappi.start()
+- f()
+- stats = yappi.get_func_stats()
+- fsa = utils.find_stat_by_name(stats, '<lambda>')
+- self.assertTrue(fsa.ttot > 0.1)
+-
+- def test_module_stress(self):
+- self.assertEqual(yappi.is_running(), False)
+-
+- yappi.start()
+- yappi.clear_stats()
+- self.assertRaises(_yappi.error, yappi.set_clock_type, "wall")
+-
+- yappi.stop()
+- yappi.clear_stats()
+- yappi.set_clock_type("cpu")
+- self.assertRaises(yappi.YappiError, yappi.set_clock_type, "dummy")
+- self.assertEqual(yappi.is_running(), False)
+- yappi.clear_stats()
+- yappi.clear_stats()
+-
+- def test_stat_sorting(self):
+- _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1}
+- _yappi._set_test_timings(_timings)
+-
+- self._ncall = 1
+-
+- def a():
+- b()
+-
+- def b():
+- if self._ncall == 2:
+- return
+- self._ncall += 1
+- a()
+-
+- stats = utils.run_and_get_func_stats(a)
+- stats = stats.sort("totaltime", "desc")
+- prev_stat = None
+- for stat in stats:
+- if prev_stat:
+- self.assertTrue(prev_stat.ttot >= stat.ttot)
+- prev_stat = stat
+- stats = stats.sort("totaltime", "asc")
+- prev_stat = None
+- for stat in stats:
+- if prev_stat:
+- self.assertTrue(prev_stat.ttot <= stat.ttot)
+- prev_stat = stat
+- stats = stats.sort("avgtime", "asc")
+- prev_stat = None
+- for stat in stats:
+- if prev_stat:
+- self.assertTrue(prev_stat.tavg <= stat.tavg)
+- prev_stat = stat
+- stats = stats.sort("name", "asc")
+- prev_stat = None
+- for stat in stats:
+- if prev_stat:
+- self.assertTrue(prev_stat.name <= stat.name)
+- prev_stat = stat
+- stats = stats.sort("subtime", "asc")
+- prev_stat = None
+- for stat in stats:
+- if prev_stat:
+- self.assertTrue(prev_stat.tsub <= stat.tsub)
+- prev_stat = stat
+-
+- self.assertRaises(
+- yappi.YappiError, stats.sort, "invalid_func_sorttype_arg"
+- )
+- self.assertRaises(
+- yappi.YappiError, stats.sort, "totaltime",
+- "invalid_func_sortorder_arg"
+- )
+-
+- def test_start_flags(self):
+- self.assertEqual(_yappi._get_start_flags(), None)
+- yappi.start()
+-
+- def a():
+- pass
+-
+- a()
+- self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0)
+- self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1)
+- self.assertEqual(len(yappi.get_thread_stats()), 1)
+-
+- def test_builtin_profiling(self):
+-
+- def a():
+- time.sleep(0.4) # is a builtin function
+-
+- yappi.set_clock_type('wall')
+-
+- yappi.start(builtins=True)
+- a()
+- stats = yappi.get_func_stats()
+- fsa = utils.find_stat_by_name(stats, 'sleep')
+- self.assertTrue(fsa is not None)
+- self.assertTrue(fsa.ttot > 0.3)
+- yappi.stop()
+- yappi.clear_stats()
+-
+- def a():
+- pass
+-
+- yappi.start()
+- t = threading.Thread(target=a)
+- t.start()
+- t.join()
+- stats = yappi.get_func_stats()
+-
+- def test_singlethread_profiling(self):
+- yappi.set_clock_type('wall')
+-
+- def a():
+- time.sleep(0.2)
+-
+- class Worker1(threading.Thread):
+-
+- def a(self):
+- time.sleep(0.3)
+-
+- def run(self):
+- self.a()
+-
+- yappi.start(profile_threads=False)
+-
+- c = Worker1()
+- c.start()
+- c.join()
+- a()
+- stats = yappi.get_func_stats()
+- fsa1 = utils.find_stat_by_name(stats, 'Worker1.a')
+- fsa2 = utils.find_stat_by_name(stats, 'a')
+- self.assertTrue(fsa1 is None)
+- self.assertTrue(fsa2 is not None)
+- self.assertTrue(fsa2.ttot > 0.1)
+-
+- def test_run(self):
+-
+- def profiled():
+- pass
+-
+- yappi.clear_stats()
+- try:
+- with yappi.run():
+- profiled()
+- stats = yappi.get_func_stats()
+- finally:
+- yappi.clear_stats()
+-
+- self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled'))
+-
+- def test_run_recursive(self):
+-
+- def profiled():
+- pass
+-
+- def not_profiled():
+- pass
+-
+- yappi.clear_stats()
+- try:
+- with yappi.run():
+- with yappi.run():
+- profiled()
+- # Profiling stopped here
+- not_profiled()
+- stats = yappi.get_func_stats()
+- finally:
+- yappi.clear_stats()
+-
+- self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled'))
+- self.assertIsNone(utils.find_stat_by_name(stats, 'not_profiled'))
+-
+-
+-class StatSaveScenarios(utils.YappiUnitTestCase):
+-
+- def test_pstats_conversion(self):
+-
+- def pstat_id(fs):
+- return (fs.module, fs.lineno, fs.name)
+-
+- def a():
+- d()
+-
+- def b():
+- d()
+-
+- def c():
+- pass
+-
+- def d():
+- pass
+-
+- _timings = {"a_1": 12, "b_1": 7, "c_1": 5, "d_1": 2}
+- _yappi._set_test_timings(_timings)
+- stats = utils.run_and_get_func_stats(a, )
+- stats.strip_dirs()
+- stats.save("tests/a1.pstats", type="pstat")
+- fsa_pid = pstat_id(utils.find_stat_by_name(stats, "a"))
+- fsd_pid = pstat_id(utils.find_stat_by_name(stats, "d"))
+- yappi.clear_stats()
+- _yappi._set_test_timings(_timings)
+- stats = utils.run_and_get_func_stats(a, )
+- stats.strip_dirs()
+- stats.save("tests/a2.pstats", type="pstat")
+- yappi.clear_stats()
+- _yappi._set_test_timings(_timings)
+- stats = utils.run_and_get_func_stats(b, )
+- stats.strip_dirs()
+- stats.save("tests/b1.pstats", type="pstat")
+- fsb_pid = pstat_id(utils.find_stat_by_name(stats, "b"))
+- yappi.clear_stats()
+- _yappi._set_test_timings(_timings)
+- stats = utils.run_and_get_func_stats(c, )
+- stats.strip_dirs()
+- stats.save("tests/c1.pstats", type="pstat")
+- fsc_pid = pstat_id(utils.find_stat_by_name(stats, "c"))
+-
+- # merge saved stats and check pstats values are correct
+- import pstats
+- p = pstats.Stats(
+- 'tests/a1.pstats', 'tests/a2.pstats', 'tests/b1.pstats',
+- 'tests/c1.pstats'
+- )
+- p.strip_dirs()
+- # ct = ttot, tt = tsub
+- (cc, nc, tt, ct, callers) = p.stats[fsa_pid]
+- self.assertEqual(cc, nc, 2)
+- self.assertEqual(tt, 20)
+- self.assertEqual(ct, 24)
+- (cc, nc, tt, ct, callers) = p.stats[fsd_pid]
+- self.assertEqual(cc, nc, 3)
+- self.assertEqual(tt, 6)
+- self.assertEqual(ct, 6)
+- self.assertEqual(len(callers), 2)
+- (cc, nc, tt, ct) = callers[fsa_pid]
+- self.assertEqual(cc, nc, 2)
+- self.assertEqual(tt, 4)
+- self.assertEqual(ct, 4)
+- (cc, nc, tt, ct) = callers[fsb_pid]
+- self.assertEqual(cc, nc, 1)
+- self.assertEqual(tt, 2)
+- self.assertEqual(ct, 2)
+-
+- def test_merge_stats(self):
+- _timings = {
+- "a_1": 15,
+- "b_1": 14,
+- "c_1": 12,
+- "d_1": 10,
+- "e_1": 9,
+- "f_1": 7,
+- "g_1": 6,
+- "h_1": 5,
+- "i_1": 1
+- }
+- _yappi._set_test_timings(_timings)
+-
+- def a():
+- b()
+-
+- def b():
+- c()
+-
+- def c():
+- d()
+-
+- def d():
+- e()
+-
+- def e():
+- f()
+-
+- def f():
+- g()
+-
+- def g():
+- h()
+-
+- def h():
+- i()
+-
+- def i():
+- pass
+-
+- yappi.start()
+- a()
+- a()
+- yappi.stop()
+- stats = yappi.get_func_stats()
+- self.assertRaises(
+- NotImplementedError, stats.save, "", "INVALID_SAVE_TYPE"
+- )
+- stats.save("tests/ystats2.ys")
+- yappi.clear_stats()
+- _yappi._set_test_timings(_timings)
+- yappi.start()
+- a()
+- stats = yappi.get_func_stats().add("tests/ystats2.ys")
+- fsa = utils.find_stat_by_name(stats, "a")
+- fsb = utils.find_stat_by_name(stats, "b")
+- fsc = utils.find_stat_by_name(stats, "c")
+- fsd = utils.find_stat_by_name(stats, "d")
+- fse = utils.find_stat_by_name(stats, "e")
+- fsf = utils.find_stat_by_name(stats, "f")
+- fsg = utils.find_stat_by_name(stats, "g")
+- fsh = utils.find_stat_by_name(stats, "h")
+- fsi = utils.find_stat_by_name(stats, "i")
+- self.assertEqual(fsa.ttot, 45)
+- self.assertEqual(fsa.ncall, 3)
+- self.assertEqual(fsa.nactualcall, 3)
+- self.assertEqual(fsa.tsub, 3)
+- self.assertEqual(fsa.children[fsb].ttot, fsb.ttot)
+- self.assertEqual(fsa.children[fsb].tsub, fsb.tsub)
+- self.assertEqual(fsb.children[fsc].ttot, fsc.ttot)
+- self.assertEqual(fsb.children[fsc].tsub, fsc.tsub)
+- self.assertEqual(fsc.tsub, 6)
+- self.assertEqual(fsc.children[fsd].ttot, fsd.ttot)
+- self.assertEqual(fsc.children[fsd].tsub, fsd.tsub)
+- self.assertEqual(fsd.children[fse].ttot, fse.ttot)
+- self.assertEqual(fsd.children[fse].tsub, fse.tsub)
+- self.assertEqual(fse.children[fsf].ttot, fsf.ttot)
+- self.assertEqual(fse.children[fsf].tsub, fsf.tsub)
+- self.assertEqual(fsf.children[fsg].ttot, fsg.ttot)
+- self.assertEqual(fsf.children[fsg].tsub, fsg.tsub)
+- self.assertEqual(fsg.ttot, 18)
+- self.assertEqual(fsg.tsub, 3)
+- self.assertEqual(fsg.children[fsh].ttot, fsh.ttot)
+- self.assertEqual(fsg.children[fsh].tsub, fsh.tsub)
+- self.assertEqual(fsh.ttot, 15)
+- self.assertEqual(fsh.tsub, 12)
+- self.assertEqual(fsh.tavg, 5)
+- self.assertEqual(fsh.children[fsi].ttot, fsi.ttot)
+- self.assertEqual(fsh.children[fsi].tsub, fsi.tsub)
+- #stats.debug_print()
+-
+- def test_merge_multithreaded_stats(self):
+- import _yappi
+- timings = {"a_1": 2, "b_1": 1}
+- _yappi._set_test_timings(timings)
+-
+- def a():
+- pass
+-
+- def b():
+- pass
+-
+- yappi.start()
+- t = threading.Thread(target=a)
+- t.start()
+- t.join()
+- t = threading.Thread(target=b)
+- t.start()
+- t.join()
+- yappi.get_func_stats().save("tests/ystats1.ys")
+- yappi.clear_stats()
+- _yappi._set_test_timings(timings)
+- self.assertEqual(len(yappi.get_func_stats()), 0)
+- self.assertEqual(len(yappi.get_thread_stats()), 1)
+- t = threading.Thread(target=a)
+- t.start()
+- t.join()
+-
+- self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0)
+- self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1)
+- yappi.get_func_stats().save("tests/ystats2.ys")
+-
+- stats = yappi.YFuncStats([
+- "tests/ystats1.ys",
+- "tests/ystats2.ys",
+- ])
+- fsa = utils.find_stat_by_name(stats, "a")
+- fsb = utils.find_stat_by_name(stats, "b")
+- self.assertEqual(fsa.ncall, 2)
+- self.assertEqual(fsb.ncall, 1)
+- self.assertEqual(fsa.tsub, fsa.ttot, 4)
+- self.assertEqual(fsb.tsub, fsb.ttot, 1)
+-
+- def test_merge_load_different_clock_types(self):
+- yappi.start(builtins=True)
+-
+- def a():
+- b()
+-
+- def b():
+- c()
+-
+- def c():
+- pass
+-
+- t = threading.Thread(target=a)
+- t.start()
+- t.join()
+- yappi.get_func_stats().sort("name", "asc").save("tests/ystats1.ys")
+- yappi.stop()
+- yappi.clear_stats()
+- yappi.start(builtins=False)
+- t = threading.Thread(target=a)
+- t.start()
+- t.join()
+- yappi.get_func_stats().save("tests/ystats2.ys")
+- yappi.stop()
+- self.assertRaises(_yappi.error, yappi.set_clock_type, "wall")
+- yappi.clear_stats()
+- yappi.set_clock_type("wall")
+- yappi.start()
+- t = threading.Thread(target=a)
+- t.start()
+- t.join()
+- yappi.get_func_stats().save("tests/ystats3.ys")
+- self.assertRaises(
+- yappi.YappiError,
+- yappi.YFuncStats().add("tests/ystats1.ys").add, "tests/ystats3.ys"
+- )
+- stats = yappi.YFuncStats(["tests/ystats1.ys",
+- "tests/ystats2.ys"]).sort("name")
+- fsa = utils.find_stat_by_name(stats, "a")
+- fsb = utils.find_stat_by_name(stats, "b")
+- fsc = utils.find_stat_by_name(stats, "c")
+- self.assertEqual(fsa.ncall, 2)
+- self.assertEqual(fsa.ncall, fsb.ncall, fsc.ncall)
+-
+- def test_merge_aabab_aabbc(self):
+- _timings = {
+- "a_1": 15,
+- "a_2": 14,
+- "b_1": 12,
+- "a_3": 10,
+- "b_2": 9,
+- "c_1": 4
+- }
+- _yappi._set_test_timings(_timings)
+-
+- def a():
+- if self._ncall == 1:
+- self._ncall += 1
+- a()
+- elif self._ncall == 5:
+- self._ncall += 1
+- a()
+- else:
+- b()
+-
+- def b():
+- if self._ncall == 2:
+- self._ncall += 1
+- a()
+- elif self._ncall == 6:
+- self._ncall += 1
+- b()
+- elif self._ncall == 7:
+- c()
+- else:
+- return
+-
+- def c():
+- pass
+-
+- self._ncall = 1
+- stats = utils.run_and_get_func_stats(a, )
+- stats.save("tests/ystats1.ys")
+- yappi.clear_stats()
+- _yappi._set_test_timings(_timings)
+- #stats.print_all()
+-
+- self._ncall = 5
+- stats = utils.run_and_get_func_stats(a, )
+- stats.save("tests/ystats2.ys")
+-
+- #stats.print_all()
+-
+- def a(): # same name but another function(code object)
+- pass
+-
+- yappi.start()
+- a()
+- stats = yappi.get_func_stats().add(
+- ["tests/ystats1.ys", "tests/ystats2.ys"]
+- )
+- #stats.print_all()
+- self.assertEqual(len(stats), 4)
+-
+- fsa = None
+- for stat in stats:
+- if stat.name == "a" and stat.ttot == 45:
+- fsa = stat
+- break
+- self.assertTrue(fsa is not None)
+-
+- self.assertEqual(fsa.ncall, 7)
+- self.assertEqual(fsa.nactualcall, 3)
+- self.assertEqual(fsa.ttot, 45)
+- self.assertEqual(fsa.tsub, 10)
+- fsb = utils.find_stat_by_name(stats, "b")
+- fsc = utils.find_stat_by_name(stats, "c")
+- self.assertEqual(fsb.ncall, 6)
+- self.assertEqual(fsb.nactualcall, 3)
+- self.assertEqual(fsb.ttot, 36)
+- self.assertEqual(fsb.tsub, 27)
+- self.assertEqual(fsb.tavg, 6)
+- self.assertEqual(fsc.ttot, 8)
+- self.assertEqual(fsc.tsub, 8)
+- self.assertEqual(fsc.tavg, 4)
+- self.assertEqual(fsc.nactualcall, fsc.ncall, 2)
+-
+-
+-class MultithreadedScenarios(utils.YappiUnitTestCase):
+-
+- def test_issue_32(self):
+- '''
+- Start yappi from different thread and we get Internal Error(15) as
+- the current_ctx_id() called while enumerating the threads in start()
+- and as it does not swap to the enumerated ThreadState* the THreadState_GetDict()
+- returns wrong object and thus sets an invalid id for the _ctx structure.
+-
+- When this issue happens multiple Threads have same tid as the internal ts_ptr
+- will be same for different contexts. So, let's see if that happens
+- '''
+-
+- def foo():
+- time.sleep(0.2)
+-
+- def bar():
+- time.sleep(0.1)
+-
+- def thread_func():
+- yappi.set_clock_type("wall")
+- yappi.start()
+-
+- bar()
+-
+- t = threading.Thread(target=thread_func)
+- t.start()
+- t.join()
+-
+- foo()
+-
+- yappi.stop()
+-
+- thread_ids = set()
+- for tstat in yappi.get_thread_stats():
+- self.assertTrue(tstat.tid not in thread_ids)
+- thread_ids.add(tstat.tid)
+-
+- def test_subsequent_profile(self):
+- WORKER_COUNT = 5
+-
+- def a():
+- pass
+-
+- def b():
+- pass
+-
+- def c():
+- pass
+-
+- _timings = {
+- "a_1": 3,
+- "b_1": 2,
+- "c_1": 1,
+- }
+-
+- yappi.start()
+-
+- def g():
+- pass
+-
+- g()
+- yappi.stop()
+- yappi.clear_stats()
+- _yappi._set_test_timings(_timings)
+- yappi.start()
+-
+- _dummy = []
+- for i in range(WORKER_COUNT):
+- t = threading.Thread(target=a)
+- t.start()
+- t.join()
+- for i in range(WORKER_COUNT):
+- t = threading.Thread(target=b)
+- t.start()
+- _dummy.append(t)
+- t.join()
+- for i in range(WORKER_COUNT):
+- t = threading.Thread(target=a)
+- t.start()
+- t.join()
+- for i in range(WORKER_COUNT):
+- t = threading.Thread(target=c)
+- t.start()
+- t.join()
+- yappi.stop()
+- yappi.start()
+-
+- def f():
+- pass
+-
+- f()
+- stats = yappi.get_func_stats()
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- fsc = utils.find_stat_by_name(stats, 'c')
+- self.assertEqual(fsa.ncall, 10)
+- self.assertEqual(fsb.ncall, 5)
+- self.assertEqual(fsc.ncall, 5)
+- self.assertEqual(fsa.ttot, fsa.tsub, 30)
+- self.assertEqual(fsb.ttot, fsb.tsub, 10)
+- self.assertEqual(fsc.ttot, fsc.tsub, 5)
+-
+- # MACOSx optimizes by only creating one worker thread
+- self.assertTrue(len(yappi.get_thread_stats()) >= 2)
+-
+- def test_basic(self):
+- yappi.set_clock_type('wall')
+-
+- def dummy():
+- pass
+-
+- def a():
+- time.sleep(0.2)
+-
+- class Worker1(threading.Thread):
+-
+- def a(self):
+- time.sleep(0.3)
+-
+- def run(self):
+- self.a()
+-
+- yappi.start(builtins=False, profile_threads=True)
+-
+- c = Worker1()
+- c.start()
+- c.join()
+- a()
+- stats = yappi.get_func_stats()
+- fsa1 = utils.find_stat_by_name(stats, 'Worker1.a')
+- fsa2 = utils.find_stat_by_name(stats, 'a')
+- self.assertTrue(fsa1 is not None)
+- self.assertTrue(fsa2 is not None)
+- self.assertTrue(fsa1.ttot > 0.2)
+- self.assertTrue(fsa2.ttot > 0.1)
+- tstats = yappi.get_thread_stats()
+- self.assertEqual(len(tstats), 2)
+- tsa = utils.find_stat_by_name(tstats, 'Worker1')
+- tsm = utils.find_stat_by_name(tstats, '_MainThread')
+- dummy() # call dummy to force ctx name to be retrieved again.
+- self.assertTrue(tsa is not None)
+- # TODO: I put dummy() to fix below, remove the comments after a while.
+- self.assertTrue( # FIX: I see this fails sometimes?
+- tsm is not None,
+- f"Could not find \"_MainThread\". Found: {', '.join(utils.get_stat_names(tstats))}")
+-
+- def test_ctx_stats(self):
+- from threading import Thread
+- DUMMY_WORKER_COUNT = 5
+- yappi.start()
+-
+- class DummyThread(Thread):
+- pass
+-
+- def dummy():
+- pass
+-
+- def dummy_worker():
+- pass
+-
+- for i in range(DUMMY_WORKER_COUNT):
+- t = DummyThread(target=dummy_worker)
+- t.start()
+- t.join()
+- yappi.stop()
+- stats = yappi.get_thread_stats()
+- tsa = utils.find_stat_by_name(stats, "DummyThread")
+- self.assertTrue(tsa is not None)
+- yappi.clear_stats()
+- time.sleep(1.0)
+- _timings = {
+- "a_1": 6,
+- "b_1": 5,
+- "c_1": 3,
+- "d_1": 1,
+- "a_2": 4,
+- "b_2": 3,
+- "c_2": 2,
+- "d_2": 1
+- }
+- _yappi._set_test_timings(_timings)
+-
+- class Thread1(Thread):
+- pass
+-
+- class Thread2(Thread):
+- pass
+-
+- def a():
+- b()
+-
+- def b():
+- c()
+-
+- def c():
+- d()
+-
+- def d():
+- time.sleep(0.6)
+-
+- yappi.set_clock_type("wall")
+- yappi.start()
+- t1 = Thread1(target=a)
+- t1.start()
+- t2 = Thread2(target=a)
+- t2.start()
+- t1.join()
+- t2.join()
+- stats = yappi.get_thread_stats()
+-
+- # the fist clear_stats clears the context table?
+- tsa = utils.find_stat_by_name(stats, "DummyThread")
+- self.assertTrue(tsa is None)
+-
+- tst1 = utils.find_stat_by_name(stats, "Thread1")
+- tst2 = utils.find_stat_by_name(stats, "Thread2")
+- tsmain = utils.find_stat_by_name(stats, "_MainThread")
+- dummy() # call dummy to force ctx name to be retrieved again.
+- self.assertTrue(len(stats) == 3)
+- self.assertTrue(tst1 is not None)
+- self.assertTrue(tst2 is not None)
+- # TODO: I put dummy() to fix below, remove the comments after a while.
+- self.assertTrue( # FIX: I see this fails sometimes
+- tsmain is not None,
+- f"Could not find \"_MainThread\". Found: {', '.join(utils.get_stat_names(stats))}")
+- self.assertTrue(1.0 > tst2.ttot >= 0.5)
+- self.assertTrue(1.0 > tst1.ttot >= 0.5)
+-
+- # test sorting of the ctx stats
+- stats = stats.sort("totaltime", "desc")
+- prev_stat = None
+- for stat in stats:
+- if prev_stat:
+- self.assertTrue(prev_stat.ttot >= stat.ttot)
+- prev_stat = stat
+- stats = stats.sort("totaltime", "asc")
+- prev_stat = None
+- for stat in stats:
+- if prev_stat:
+- self.assertTrue(prev_stat.ttot <= stat.ttot)
+- prev_stat = stat
+- stats = stats.sort("schedcount", "desc")
+- prev_stat = None
+- for stat in stats:
+- if prev_stat:
+- self.assertTrue(prev_stat.sched_count >= stat.sched_count)
+- prev_stat = stat
+- stats = stats.sort("name", "desc")
+- prev_stat = None
+- for stat in stats:
+- if prev_stat:
+- self.assertTrue(prev_stat.name.lower() >= stat.name.lower())
+- prev_stat = stat
+- self.assertRaises(
+- yappi.YappiError, stats.sort, "invalid_thread_sorttype_arg"
+- )
+- self.assertRaises(
+- yappi.YappiError, stats.sort, "invalid_thread_sortorder_arg"
+- )
+-
+- def test_ctx_stats_cpu(self):
+-
+- def get_thread_name():
+- try:
+- return threading.current_thread().name
+- except AttributeError:
+- return "Anonymous"
+-
+- def burn_cpu(sec):
+- t0 = yappi.get_clock_time()
+- elapsed = 0
+- while (elapsed < sec):
+- for _ in range(1000):
+- pass
+- elapsed = yappi.get_clock_time() - t0
+-
+- def test():
+-
+- ts = []
+- for i in (0.01, 0.05, 0.1):
+- t = threading.Thread(target=burn_cpu, args=(i, ))
+- t.name = f"burn_cpu-{str(i)}"
+- t.start()
+- ts.append(t)
+- for t in ts:
+- t.join()
+-
+- yappi.set_clock_type("cpu")
+- yappi.set_context_name_callback(get_thread_name)
+-
+- yappi.start()
+-
+- test()
+-
+- yappi.stop()
+-
+- tstats = yappi.get_thread_stats()
+- r1 = '''
+- burn_cpu-0.1 3 123145356058624 0.100105 8
+- burn_cpu-0.05 2 123145361313792 0.050149 8
+- burn_cpu-0.01 1 123145356058624 0.010127 2
+- MainThread 0 4321620864 0.001632 6
+- '''
+- self.assert_ctx_stats_almost_equal(r1, tstats)
+-
+- def test_producer_consumer_with_queues(self):
+- # we currently just stress yappi, no functionality test is done here.
+- yappi.start()
+- from queue import Queue
+- from threading import Thread
+- WORKER_THREAD_COUNT = 50
+- WORK_ITEM_COUNT = 2000
+-
+- def worker():
+- while True:
+- item = q.get()
+- # do the work with item
+- q.task_done()
+-
+- q = Queue()
+- for i in range(WORKER_THREAD_COUNT):
+- t = Thread(target=worker)
+- t.daemon = True
+- t.start()
+-
+- for item in range(WORK_ITEM_COUNT):
+- q.put(item)
+- q.join() # block until all tasks are done
+- #yappi.get_func_stats().sort("callcount").print_all()
+- yappi.stop()
+-
+- def test_temporary_lock_waiting(self):
+- yappi.start()
+- _lock = threading.Lock()
+-
+- def worker():
+- _lock.acquire()
+- try:
+- time.sleep(1.0)
+- finally:
+- _lock.release()
+-
+- t1 = threading.Thread(target=worker)
+- t2 = threading.Thread(target=worker)
+- t1.start()
+- t2.start()
+- t1.join()
+- t2.join()
+- #yappi.get_func_stats().sort("callcount").print_all()
+- yappi.stop()
+-
+- @unittest.skipIf(os.name != "posix", "requires Posix compliant OS")
+- def test_signals_with_blocking_calls(self):
+- import signal, os, time
+-
+- # just to verify if signal is handled correctly and stats/yappi are not corrupted.
+- def handler(signum, frame):
+- raise Exception("Signal handler executed!")
+-
+- yappi.start()
+- signal.signal(signal.SIGALRM, handler)
+- signal.alarm(1)
+- self.assertRaises(Exception, time.sleep, 2)
+- stats = yappi.get_func_stats()
+- fsh = utils.find_stat_by_name(stats, "handler")
+- self.assertTrue(fsh is not None)
+-
+- def test_concurrent_futures(self):
+- yappi.start()
+- from concurrent.futures import ThreadPoolExecutor
+- with ThreadPoolExecutor(max_workers=5) as executor:
+- f = executor.submit(pow, 5, 2)
+- self.assertEqual(f.result(), 25)
+- time.sleep(1.0)
+- yappi.stop()
+-
+- def test_barrier(self):
+- yappi.start()
+- b = threading.Barrier(2, timeout=1)
+-
+- def worker():
+- try:
+- b.wait()
+- except threading.BrokenBarrierError:
+- pass
+- except Exception:
+- raise Exception("BrokenBarrierError not raised")
+-
+- t1 = threading.Thread(target=worker)
+- t1.start()
+- #b.wait()
+- t1.join()
+- yappi.stop()
+-
+-
+-class NonRecursiveFunctions(utils.YappiUnitTestCase):
+-
+- def test_abcd(self):
+- _timings = {"a_1": 6, "b_1": 5, "c_1": 3, "d_1": 1}
+- _yappi._set_test_timings(_timings)
+-
+- def a():
+- b()
+-
+- def b():
+- c()
+-
+- def c():
+- d()
+-
+- def d():
+- pass
+-
+- stats = utils.run_and_get_func_stats(a)
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- fsc = utils.find_stat_by_name(stats, 'c')
+- fsd = utils.find_stat_by_name(stats, 'd')
+- cfsab = fsa.children[fsb]
+- cfsbc = fsb.children[fsc]
+- cfscd = fsc.children[fsd]
+-
+- self.assertEqual(fsa.ttot, 6)
+- self.assertEqual(fsa.tsub, 1)
+- self.assertEqual(fsb.ttot, 5)
+- self.assertEqual(fsb.tsub, 2)
+- self.assertEqual(fsc.ttot, 3)
+- self.assertEqual(fsc.tsub, 2)
+- self.assertEqual(fsd.ttot, 1)
+- self.assertEqual(fsd.tsub, 1)
+- self.assertEqual(cfsab.ttot, 5)
+- self.assertEqual(cfsab.tsub, 2)
+- self.assertEqual(cfsbc.ttot, 3)
+- self.assertEqual(cfsbc.tsub, 2)
+- self.assertEqual(cfscd.ttot, 1)
+- self.assertEqual(cfscd.tsub, 1)
+-
+- def test_stop_in_middle(self):
+- _timings = {"a_1": 6, "b_1": 4}
+- _yappi._set_test_timings(_timings)
+-
+- def a():
+- b()
+- yappi.stop()
+-
+- def b():
+- time.sleep(0.2)
+-
+- yappi.start()
+- a()
+- stats = yappi.get_func_stats()
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+-
+- self.assertEqual(fsa.ncall, 1)
+- self.assertEqual(fsa.nactualcall, 0)
+- self.assertEqual(fsa.ttot, 0) # no call_leave called
+- self.assertEqual(fsa.tsub, 0) # no call_leave called
+- self.assertEqual(fsb.ttot, 4)
+-
+-
+-class RecursiveFunctions(utils.YappiUnitTestCase):
+-
+- def test_fibonacci(self):
+-
+- def fib(n):
+- if n > 1:
+- return fib(n - 1) + fib(n - 2)
+- else:
+- return n
+-
+- stats = utils.run_and_get_func_stats(fib, 22)
+- fs = utils.find_stat_by_name(stats, 'fib')
+- self.assertEqual(fs.ncall, 57313)
+- self.assertEqual(fs.ttot, fs.tsub)
+-
+- def test_abcadc(self):
+- _timings = {
+- "a_1": 20,
+- "b_1": 19,
+- "c_1": 17,
+- "a_2": 13,
+- "d_1": 12,
+- "c_2": 10,
+- "a_3": 5
+- }
+- _yappi._set_test_timings(_timings)
+-
+- def a(n):
+- if n == 3:
+- return
+- if n == 1 + 1:
+- d(n)
+- else:
+- b(n)
+-
+- def b(n):
+- c(n)
+-
+- def c(n):
+- a(n + 1)
+-
+- def d(n):
+- c(n)
+-
+- stats = utils.run_and_get_func_stats(a, 1)
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- fsc = utils.find_stat_by_name(stats, 'c')
+- fsd = utils.find_stat_by_name(stats, 'd')
+- self.assertEqual(fsa.ncall, 3)
+- self.assertEqual(fsa.nactualcall, 1)
+- self.assertEqual(fsa.ttot, 20)
+- self.assertEqual(fsa.tsub, 7)
+- self.assertEqual(fsb.ttot, 19)
+- self.assertEqual(fsb.tsub, 2)
+- self.assertEqual(fsc.ttot, 17)
+- self.assertEqual(fsc.tsub, 9)
+- self.assertEqual(fsd.ttot, 12)
+- self.assertEqual(fsd.tsub, 2)
+- cfsca = fsc.children[fsa]
+- self.assertEqual(cfsca.nactualcall, 0)
+- self.assertEqual(cfsca.ncall, 2)
+- self.assertEqual(cfsca.ttot, 13)
+- self.assertEqual(cfsca.tsub, 6)
+-
+- def test_aaaa(self):
+- _timings = {"d_1": 9, "d_2": 7, "d_3": 3, "d_4": 2}
+- _yappi._set_test_timings(_timings)
+-
+- def d(n):
+- if n == 3:
+- return
+- d(n + 1)
+-
+- stats = utils.run_and_get_func_stats(d, 0)
+- fsd = utils.find_stat_by_name(stats, 'd')
+- self.assertEqual(fsd.ncall, 4)
+- self.assertEqual(fsd.nactualcall, 1)
+- self.assertEqual(fsd.ttot, 9)
+- self.assertEqual(fsd.tsub, 9)
+- cfsdd = fsd.children[fsd]
+- self.assertEqual(cfsdd.ttot, 7)
+- self.assertEqual(cfsdd.tsub, 7)
+- self.assertEqual(cfsdd.ncall, 3)
+- self.assertEqual(cfsdd.nactualcall, 0)
+-
+- def test_abcabc(self):
+- _timings = {
+- "a_1": 20,
+- "b_1": 19,
+- "c_1": 17,
+- "a_2": 13,
+- "b_2": 11,
+- "c_2": 9,
+- "a_3": 6
+- }
+- _yappi._set_test_timings(_timings)
+-
+- def a(n):
+- if n == 3:
+- return
+- else:
+- b(n)
+-
+- def b(n):
+- c(n)
+-
+- def c(n):
+- a(n + 1)
+-
+- stats = utils.run_and_get_func_stats(a, 1)
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- fsc = utils.find_stat_by_name(stats, 'c')
+- self.assertEqual(fsa.ncall, 3)
+- self.assertEqual(fsa.nactualcall, 1)
+- self.assertEqual(fsa.ttot, 20)
+- self.assertEqual(fsa.tsub, 9)
+- self.assertEqual(fsb.ttot, 19)
+- self.assertEqual(fsb.tsub, 4)
+- self.assertEqual(fsc.ttot, 17)
+- self.assertEqual(fsc.tsub, 7)
+- cfsab = fsa.children[fsb]
+- cfsbc = fsb.children[fsc]
+- cfsca = fsc.children[fsa]
+- self.assertEqual(cfsab.ttot, 19)
+- self.assertEqual(cfsab.tsub, 4)
+- self.assertEqual(cfsbc.ttot, 17)
+- self.assertEqual(cfsbc.tsub, 7)
+- self.assertEqual(cfsca.ttot, 13)
+- self.assertEqual(cfsca.tsub, 8)
+-
+- def test_abcbca(self):
+- _timings = {"a_1": 10, "b_1": 9, "c_1": 7, "b_2": 4, "c_2": 2, "a_2": 1}
+- _yappi._set_test_timings(_timings)
+- self._ncall = 1
+-
+- def a():
+- if self._ncall == 1:
+- b()
+- else:
+- return
+-
+- def b():
+- c()
+-
+- def c():
+- if self._ncall == 1:
+- self._ncall += 1
+- b()
+- else:
+- a()
+-
+- stats = utils.run_and_get_func_stats(a)
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- fsc = utils.find_stat_by_name(stats, 'c')
+- cfsab = fsa.children[fsb]
+- cfsbc = fsb.children[fsc]
+- cfsca = fsc.children[fsa]
+- self.assertEqual(fsa.ttot, 10)
+- self.assertEqual(fsa.tsub, 2)
+- self.assertEqual(fsb.ttot, 9)
+- self.assertEqual(fsb.tsub, 4)
+- self.assertEqual(fsc.ttot, 7)
+- self.assertEqual(fsc.tsub, 4)
+- self.assertEqual(cfsab.ttot, 9)
+- self.assertEqual(cfsab.tsub, 2)
+- self.assertEqual(cfsbc.ttot, 7)
+- self.assertEqual(cfsbc.tsub, 4)
+- self.assertEqual(cfsca.ttot, 1)
+- self.assertEqual(cfsca.tsub, 1)
+- self.assertEqual(cfsca.ncall, 1)
+- self.assertEqual(cfsca.nactualcall, 0)
+-
+- def test_aabccb(self):
+- _timings = {
+- "a_1": 13,
+- "a_2": 11,
+- "b_1": 9,
+- "c_1": 5,
+- "c_2": 3,
+- "b_2": 1
+- }
+- _yappi._set_test_timings(_timings)
+- self._ncall = 1
+-
+- def a():
+- if self._ncall == 1:
+- self._ncall += 1
+- a()
+- else:
+- b()
+-
+- def b():
+- if self._ncall == 3:
+- return
+- else:
+- c()
+-
+- def c():
+- if self._ncall == 2:
+- self._ncall += 1
+- c()
+- else:
+- b()
+-
+- stats = utils.run_and_get_func_stats(a)
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- fsc = utils.find_stat_by_name(stats, 'c')
+- cfsaa = fsa.children[fsa.index]
+- cfsab = fsa.children[fsb]
+- cfsbc = fsb.children[fsc.full_name]
+- cfscc = fsc.children[fsc]
+- cfscb = fsc.children[fsb]
+- self.assertEqual(fsb.ttot, 9)
+- self.assertEqual(fsb.tsub, 5)
+- self.assertEqual(cfsbc.ttot, 5)
+- self.assertEqual(cfsbc.tsub, 2)
+- self.assertEqual(fsa.ttot, 13)
+- self.assertEqual(fsa.tsub, 4)
+- self.assertEqual(cfsab.ttot, 9)
+- self.assertEqual(cfsab.tsub, 4)
+- self.assertEqual(cfsaa.ttot, 11)
+- self.assertEqual(cfsaa.tsub, 2)
+- self.assertEqual(fsc.ttot, 5)
+- self.assertEqual(fsc.tsub, 4)
+-
+- def test_abaa(self):
+- _timings = {"a_1": 13, "b_1": 10, "a_2": 9, "a_3": 5}
+- _yappi._set_test_timings(_timings)
+-
+- self._ncall = 1
+-
+- def a():
+- if self._ncall == 1:
+- b()
+- elif self._ncall == 2:
+- self._ncall += 1
+- a()
+- else:
+- return
+-
+- def b():
+- self._ncall += 1
+- a()
+-
+- stats = utils.run_and_get_func_stats(a)
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- cfsaa = fsa.children[fsa]
+- cfsba = fsb.children[fsa]
+- self.assertEqual(fsb.ttot, 10)
+- self.assertEqual(fsb.tsub, 1)
+- self.assertEqual(fsa.ttot, 13)
+- self.assertEqual(fsa.tsub, 12)
+- self.assertEqual(cfsaa.ttot, 5)
+- self.assertEqual(cfsaa.tsub, 5)
+- self.assertEqual(cfsba.ttot, 9)
+- self.assertEqual(cfsba.tsub, 4)
+-
+- def test_aabb(self):
+- _timings = {"a_1": 13, "a_2": 10, "b_1": 9, "b_2": 5}
+- _yappi._set_test_timings(_timings)
+-
+- self._ncall = 1
+-
+- def a():
+- if self._ncall == 1:
+- self._ncall += 1
+- a()
+- elif self._ncall == 2:
+- b()
+- else:
+- return
+-
+- def b():
+- if self._ncall == 2:
+- self._ncall += 1
+- b()
+- else:
+- return
+-
+- stats = utils.run_and_get_func_stats(a)
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- cfsaa = fsa.children[fsa]
+- cfsab = fsa.children[fsb]
+- cfsbb = fsb.children[fsb]
+- self.assertEqual(fsa.ttot, 13)
+- self.assertEqual(fsa.tsub, 4)
+- self.assertEqual(fsb.ttot, 9)
+- self.assertEqual(fsb.tsub, 9)
+- self.assertEqual(cfsaa.ttot, 10)
+- self.assertEqual(cfsaa.tsub, 1)
+- self.assertEqual(cfsab.ttot, 9)
+- self.assertEqual(cfsab.tsub, 4)
+- self.assertEqual(cfsbb.ttot, 5)
+- self.assertEqual(cfsbb.tsub, 5)
+-
+- def test_abbb(self):
+- _timings = {"a_1": 13, "b_1": 10, "b_2": 6, "b_3": 1}
+- _yappi._set_test_timings(_timings)
+-
+- self._ncall = 1
+-
+- def a():
+- if self._ncall == 1:
+- b()
+-
+- def b():
+- if self._ncall == 3:
+- return
+- self._ncall += 1
+- b()
+-
+- stats = utils.run_and_get_func_stats(a)
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- cfsab = fsa.children[fsb]
+- cfsbb = fsb.children[fsb]
+- self.assertEqual(fsa.ttot, 13)
+- self.assertEqual(fsa.tsub, 3)
+- self.assertEqual(fsb.ttot, 10)
+- self.assertEqual(fsb.tsub, 10)
+- self.assertEqual(fsb.ncall, 3)
+- self.assertEqual(fsb.nactualcall, 1)
+- self.assertEqual(cfsab.ttot, 10)
+- self.assertEqual(cfsab.tsub, 4)
+- self.assertEqual(cfsbb.ttot, 6)
+- self.assertEqual(cfsbb.tsub, 6)
+- self.assertEqual(cfsbb.nactualcall, 0)
+- self.assertEqual(cfsbb.ncall, 2)
+-
+- def test_aaab(self):
+- _timings = {"a_1": 13, "a_2": 10, "a_3": 6, "b_1": 1}
+- _yappi._set_test_timings(_timings)
+-
+- self._ncall = 1
+-
+- def a():
+- if self._ncall == 3:
+- b()
+- return
+- self._ncall += 1
+- a()
+-
+- def b():
+- return
+-
+- stats = utils.run_and_get_func_stats(a)
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- cfsaa = fsa.children[fsa]
+- cfsab = fsa.children[fsb]
+- self.assertEqual(fsa.ttot, 13)
+- self.assertEqual(fsa.tsub, 12)
+- self.assertEqual(fsb.ttot, 1)
+- self.assertEqual(fsb.tsub, 1)
+- self.assertEqual(cfsaa.ttot, 10)
+- self.assertEqual(cfsaa.tsub, 9)
+- self.assertEqual(cfsab.ttot, 1)
+- self.assertEqual(cfsab.tsub, 1)
+-
+- def test_abab(self):
+- _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1}
+- _yappi._set_test_timings(_timings)
+-
+- self._ncall = 1
+-
+- def a():
+- b()
+-
+- def b():
+- if self._ncall == 2:
+- return
+- self._ncall += 1
+- a()
+-
+- stats = utils.run_and_get_func_stats(a)
+- fsa = utils.find_stat_by_name(stats, 'a')
+- fsb = utils.find_stat_by_name(stats, 'b')
+- cfsab = fsa.children[fsb]
+- cfsba = fsb.children[fsa]
+- self.assertEqual(fsa.ttot, 13)
+- self.assertEqual(fsa.tsub, 8)
+- self.assertEqual(fsb.ttot, 10)
+- self.assertEqual(fsb.tsub, 5)
+- self.assertEqual(cfsab.ttot, 10)
+- self.assertEqual(cfsab.tsub, 5)
+- self.assertEqual(cfsab.ncall, 2)
+- self.assertEqual(cfsab.nactualcall, 1)
+- self.assertEqual(cfsba.ttot, 6)
+- self.assertEqual(cfsba.tsub, 5)
+-
+-
+-if __name__ == '__main__':
+- # import sys;sys.argv = ['', 'BasicUsage.test_run_as_script']
+- # import sys;sys.argv = ['', 'MultithreadedScenarios.test_subsequent_profile']
+- unittest.main()
++import os
++import sys
++import time
++import threading
++import unittest
++import yappi
++import _yappi
++import utils
++import multiprocessing
++import subprocess
++
++_counter = 0
++
++
++class BasicUsage(utils.YappiUnitTestCase):
++
++ def test_callback_function_int_return_overflow(self):
++ # this test is just here to check if any errors are generated, as the err
++ # is printed in C side, I did not include it here. THere are ways to test
++ # this deterministically, I did not bother
++ import ctypes
++
++ def _unsigned_overflow_margin():
++ return 2**(ctypes.sizeof(ctypes.c_void_p) * 8) - 1
++
++ def foo():
++ pass
++
++ #with utils.captured_output() as (out, err):
++ yappi.set_context_id_callback(_unsigned_overflow_margin)
++ yappi.set_tag_callback(_unsigned_overflow_margin)
++ yappi.start()
++ foo()
++
++ def test_issue60(self):
++
++ def foo():
++ buf = bytearray()
++ buf += b't' * 200
++ view = memoryview(buf)[10:]
++ view = view.tobytes()
++ del buf[:10] # this throws exception
++ return view
++
++ yappi.start(builtins=True)
++ foo()
++ self.assertTrue(
++ len(
++ yappi.get_func_stats(
++ filter_callback=lambda x: yappi.
++ func_matches(x, [memoryview.tobytes])
++ )
++ ) > 0
++ )
++ yappi.stop()
++
++ def test_issue54(self):
++
++ def _tag_cbk():
++ global _counter
++ _counter += 1
++ return _counter
++
++ def a():
++ pass
++
++ def b():
++ pass
++
++ yappi.set_tag_callback(_tag_cbk)
++ yappi.start()
++ a()
++ a()
++ a()
++ yappi.stop()
++ stats = yappi.get_func_stats()
++ self.assertEqual(stats.pop().ncall, 3) # aggregated if no tag is given
++ stats = yappi.get_func_stats(tag=1)
++
++ for i in range(1, 3):
++ stats = yappi.get_func_stats(tag=i)
++ stats = yappi.get_func_stats(
++ tag=i, filter_callback=lambda x: yappi.func_matches(x, [a])
++ )
++
++ stat = stats.pop()
++ self.assertEqual(stat.ncall, 1)
++
++ yappi.set_tag_callback(None)
++ yappi.clear_stats()
++ yappi.start()
++ b()
++ b()
++ stats = yappi.get_func_stats()
++ self.assertEqual(len(stats), 1)
++ stat = stats.pop()
++ self.assertEqual(stat.ncall, 2)
++
++ def test_filter(self):
++
++ def a():
++ pass
++
++ def b():
++ a()
++
++ def c():
++ b()
++
++ _TCOUNT = 5
++
++ ts = []
++ yappi.start()
++ for i in range(_TCOUNT):
++ t = threading.Thread(target=c)
++ t.start()
++ ts.append(t)
++
++ for t in ts:
++ t.join()
++
++ yappi.stop()
++
++ ctx_ids = []
++ for tstat in yappi.get_thread_stats():
++ if tstat.name == '_MainThread':
++ main_ctx_id = tstat.id
++ else:
++ ctx_ids.append(tstat.id)
++
++ fstats = yappi.get_func_stats(filter={"ctx_id": 9})
++ self.assertTrue(fstats.empty())
++ fstats = yappi.get_func_stats(
++ filter={
++ "ctx_id": main_ctx_id,
++ "name": "c"
++ }
++ ) # main thread
++ self.assertTrue(fstats.empty())
++
++ for i in ctx_ids:
++ fstats = yappi.get_func_stats(
++ filter={
++ "ctx_id": i,
++ "name": "a",
++ "ncall": 1
++ }
++ )
++ self.assertEqual(fstats.pop().ncall, 1)
++ fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "b"})
++ self.assertEqual(fstats.pop().ncall, 1)
++ fstats = yappi.get_func_stats(filter={"ctx_id": i, "name": "c"})
++ self.assertEqual(fstats.pop().ncall, 1)
++
++ yappi.clear_stats()
++ yappi.start(builtins=True)
++ time.sleep(0.1)
++ yappi.stop()
++ fstats = yappi.get_func_stats(filter={"module": "time"})
++ self.assertEqual(len(fstats), 1)
++
++ # invalid filters`
++ self.assertRaises(
++ Exception, yappi.get_func_stats, filter={'tag': "sss"}
++ )
++ self.assertRaises(
++ Exception, yappi.get_func_stats, filter={'ctx_id': "None"}
++ )
++
++ def test_filter_callback(self):
++
++ def a():
++ time.sleep(0.1)
++
++ def b():
++ a()
++
++ def c():
++ pass
++
++ def d():
++ pass
++
++ yappi.set_clock_type("wall")
++ yappi.start(builtins=True)
++ a()
++ b()
++ c()
++ d()
++ stats = yappi.get_func_stats(
++ filter_callback=lambda x: yappi.func_matches(x, [a, b])
++ )
++ #stats.print_all()
++ r1 = '''
++ tests/test_functionality.py:98 a 2 0.000000 0.200350 0.100175
++ tests/test_functionality.py:101 b 1 0.000000 0.120000 0.100197
++ '''
++ self.assert_traces_almost_equal(r1, stats)
++ self.assertEqual(len(stats), 2)
++ stats = yappi.get_func_stats(
++ filter_callback=lambda x: yappi.
++ module_matches(x, [sys.modules[__name__]])
++ )
++ r1 = '''
++ tests/test_functionality.py:98 a 2 0.000000 0.230130 0.115065
++ tests/test_functionality.py:101 b 1 0.000000 0.120000 0.109011
++ tests/test_functionality.py:104 c 1 0.000000 0.000002 0.000002
++ tests/test_functionality.py:107 d 1 0.000000 0.000001 0.000001
++ '''
++ self.assert_traces_almost_equal(r1, stats)
++ self.assertEqual(len(stats), 4)
++
++ stats = yappi.get_func_stats(
++ filter_callback=lambda x: yappi.func_matches(x, [time.sleep])
++ )
++ self.assertEqual(len(stats), 1)
++ r1 = '''
++ time.sleep 2 0.206804 0.220000 0.103402
++ '''
++ self.assert_traces_almost_equal(r1, stats)
++
++ def test_print_formatting(self):
++
++ def a():
++ pass
++
++ def b():
++ a()
++
++ func_cols = {
++ 1: ("name", 48),
++ 0: ("ncall", 5),
++ 2: ("tsub", 8),
++ }
++ thread_cols = {
++ 1: ("name", 48),
++ 0: ("ttot", 8),
++ }
++
++ yappi.start()
++ a()
++ b()
++ yappi.stop()
++ fs = yappi.get_func_stats()
++ cs = fs[1].children
++ ts = yappi.get_thread_stats()
++ #fs.print_all(out=sys.stderr, columns={1:("name", 70), })
++ #cs.print_all(out=sys.stderr, columns=func_cols)
++ #ts.print_all(out=sys.stderr, columns=thread_cols)
++ #cs.print_all(out=sys.stderr, columns={})
++
++ self.assertRaises(
++ yappi.YappiError, fs.print_all, columns={1: ("namee", 9)}
++ )
++ self.assertRaises(
++ yappi.YappiError, cs.print_all, columns={1: ("dd", 0)}
++ )
++ self.assertRaises(
++ yappi.YappiError, ts.print_all, columns={1: ("tidd", 0)}
++ )
++
++ def test_get_clock(self):
++ yappi.set_clock_type('cpu')
++ self.assertEqual('cpu', yappi.get_clock_type())
++ clock_info = yappi.get_clock_info()
++ self.assertTrue('api' in clock_info)
++ self.assertTrue('resolution' in clock_info)
++
++ yappi.set_clock_type('wall')
++ self.assertEqual('wall', yappi.get_clock_type())
++
++ t0 = yappi.get_clock_time()
++ time.sleep(0.1)
++ duration = yappi.get_clock_time() - t0
++ self.assertTrue(0.05 < duration < 0.3)
++
++ def test_profile_decorator(self):
++
++ def aggregate(func, stats):
++ fname = f"tests/{func.__name__}.profile"
++ try:
++ stats.add(fname)
++ except OSError:
++ pass
++ stats.save(fname)
++ raise Exception("messing around")
++
++ @yappi.profile(return_callback=aggregate)
++ def a(x, y):
++ if x + y == 25:
++ raise Exception("")
++ return x + y
++
++ def b():
++ pass
++
++ try:
++ os.remove(
++ "tests/a.profile"
++ ) # remove the one from prev test, if available
++ except:
++ pass
++
++ # global profile is on to mess things up
++ yappi.start()
++ b()
++
++ # assert functionality and call function at same time
++ try:
++ self.assertEqual(a(1, 2), 3)
++ except:
++ pass
++ try:
++ self.assertEqual(a(2, 5), 7)
++ except:
++ pass
++ try:
++ a(4, 21)
++ except:
++ pass
++ stats = yappi.get_func_stats().add("tests/a.profile")
++ fsa = utils.find_stat_by_name(stats, 'a')
++ self.assertEqual(fsa.ncall, 3)
++ self.assertEqual(len(stats), 1) # b() should be cleared out.
++
++ @yappi.profile(return_callback=aggregate)
++ def count_down_rec(n):
++ if n == 0:
++ return
++ count_down_rec(n - 1)
++
++ try:
++ os.remove(
++ "tests/count_down_rec.profile"
++ ) # remove the one from prev test, if available
++ except:
++ pass
++
++ try:
++ count_down_rec(4)
++ except:
++ pass
++ try:
++ count_down_rec(3)
++ except:
++ pass
++
++ stats = yappi.YFuncStats("tests/count_down_rec.profile")
++ fsrec = utils.find_stat_by_name(stats, 'count_down_rec')
++ self.assertEqual(fsrec.ncall, 9)
++ self.assertEqual(fsrec.nactualcall, 2)
++
++ def test_strip_dirs(self):
++
++ def a():
++ pass
++
++ stats = utils.run_and_get_func_stats(a, )
++ stats.strip_dirs()
++ fsa = utils.find_stat_by_name(stats, "a")
++ self.assertEqual(fsa.module, os.path.basename(fsa.module))
++
++ @unittest.skipIf(os.name == "nt", "do not run on Windows")
++ def test_run_as_script(self):
++ import re
++ p = subprocess.Popen(
++ ['yappi', os.path.join('./tests', 'run_as_script.py')],
++ stdout=subprocess.PIPE
++ )
++ out, err = p.communicate()
++ self.assertEqual(p.returncode, 0)
++ func_stats, thread_stats = re.split(
++ b'name\\s+id\\s+tid\\s+ttot\\s+scnt\\s*\n', out
++ )
++ self.assertTrue(b'FancyThread' in thread_stats)
++
++ def test_yappi_overhead(self):
++ LOOP_COUNT = 100000
++
++ def a():
++ pass
++
++ def b():
++ for i in range(LOOP_COUNT):
++ a()
++
++ t0 = time.time()
++ yappi.start()
++ b()
++ yappi.stop()
++ time_with_yappi = time.time() - t0
++ t0 = time.time()
++ b()
++ time_without_yappi = time.time() - t0
++ if time_without_yappi == 0:
++ time_without_yappi = 0.000001
++
++ # in latest v0.82, I calculated this as close to "7.0" in my machine.
++ # however, %83 of this overhead is coming from tickcount(). The other %17
++ # seems to have been evenly distributed to the internal bookkeeping
++ # structures/algorithms which seems acceptable. Note that our test only
++ # tests one function being profiled at-a-time in a short interval.
++ # profiling high number of functions in a small time
++ # is a different beast, (which is pretty unlikely in most applications)
++ # So as a conclusion: I cannot see any optimization window for Yappi that
++ # is worth implementing as we will only optimize %17 of the time.
++ sys.stderr.write("\r\nYappi puts %0.1f times overhead to the profiled application in average.\r\n" % \
++ (time_with_yappi / time_without_yappi))
++
++ def test_clear_stats_while_running(self):
++
++ def a():
++ pass
++
++ yappi.start()
++ a()
++ yappi.clear_stats()
++ a()
++ stats = yappi.get_func_stats()
++ fsa = utils.find_stat_by_name(stats, 'a')
++ self.assertEqual(fsa.ncall, 1)
++
++ def test_generator(self):
++
++ def _gen(n):
++ while (n > 0):
++ yield n
++ n -= 1
++
++ yappi.start()
++ for x in _gen(5):
++ pass
++ self.assertTrue(
++ yappi.convert2pstats(yappi.get_func_stats()) is not None
++ )
++
++ def test_slice_child_stats_and_strip_dirs(self):
++
++ def b():
++ for i in range(10000000):
++ pass
++
++ def a():
++ b()
++
++ yappi.start(builtins=True)
++ a()
++ stats = yappi.get_func_stats()
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ self.assertTrue(fsa.children[0:1] is not None)
++ prev_afullname = fsa.full_name
++ prev_bchildfullname = fsa.children[fsb].full_name
++ stats.strip_dirs()
++ self.assertTrue(len(prev_afullname) > len(fsa.full_name))
++ self.assertTrue(
++ len(prev_bchildfullname) > len(fsa.children[fsb].full_name)
++ )
++
++ def test_children_stat_functions(self):
++ _timings = {"a_1": 5, "b_1": 3, "c_1": 1}
++ _yappi._set_test_timings(_timings)
++
++ def b():
++ pass
++
++ def c():
++ pass
++
++ def a():
++ b()
++ c()
++
++ yappi.start()
++ a()
++ b() # non-child call
++ c() # non-child call
++ stats = yappi.get_func_stats()
++ fsa = utils.find_stat_by_name(stats, 'a')
++ childs_of_a = fsa.children.get().sort("tavg", "desc")
++ prev_item = None
++ for item in childs_of_a:
++ if prev_item:
++ self.assertTrue(prev_item.tavg > item.tavg)
++ prev_item = item
++ childs_of_a.sort("name", "desc")
++ prev_item = None
++ for item in childs_of_a:
++ if prev_item:
++ self.assertTrue(prev_item.name > item.name)
++ prev_item = item
++ childs_of_a.clear()
++ self.assertTrue(childs_of_a.empty())
++
++ def test_no_stats_different_clock_type_load(self):
++
++ def a():
++ pass
++
++ yappi.start()
++ a()
++ yappi.stop()
++ yappi.get_func_stats().save("tests/ystats1.ys")
++ yappi.clear_stats()
++ yappi.set_clock_type("WALL")
++ yappi.start()
++ yappi.stop()
++ stats = yappi.get_func_stats().add("tests/ystats1.ys")
++ fsa = utils.find_stat_by_name(stats, 'a')
++ self.assertTrue(fsa is not None)
++
++ def test_subsequent_profile(self):
++ _timings = {"a_1": 1, "b_1": 1}
++ _yappi._set_test_timings(_timings)
++
++ def a():
++ pass
++
++ def b():
++ pass
++
++ yappi.start()
++ a()
++ yappi.stop()
++ yappi.start()
++ b()
++ yappi.stop()
++ stats = yappi.get_func_stats()
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ self.assertTrue(fsa is not None)
++ self.assertTrue(fsb is not None)
++ self.assertEqual(fsa.ttot, 1)
++ self.assertEqual(fsb.ttot, 1)
++
++ def test_lambda(self):
++ f = lambda: time.sleep(0.3)
++ yappi.set_clock_type("wall")
++ yappi.start()
++ f()
++ stats = yappi.get_func_stats()
++ fsa = utils.find_stat_by_name(stats, '<lambda>')
++ self.assertTrue(fsa.ttot > 0.1)
++
++ def test_module_stress(self):
++ self.assertEqual(yappi.is_running(), False)
++
++ yappi.start()
++ yappi.clear_stats()
++ self.assertRaises(_yappi.error, yappi.set_clock_type, "wall")
++
++ yappi.stop()
++ yappi.clear_stats()
++ yappi.set_clock_type("cpu")
++ self.assertRaises(yappi.YappiError, yappi.set_clock_type, "dummy")
++ self.assertEqual(yappi.is_running(), False)
++ yappi.clear_stats()
++ yappi.clear_stats()
++
++ def test_stat_sorting(self):
++ _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1}
++ _yappi._set_test_timings(_timings)
++
++ self._ncall = 1
++
++ def a():
++ b()
++
++ def b():
++ if self._ncall == 2:
++ return
++ self._ncall += 1
++ a()
++
++ stats = utils.run_and_get_func_stats(a)
++ stats = stats.sort("totaltime", "desc")
++ prev_stat = None
++ for stat in stats:
++ if prev_stat:
++ self.assertTrue(prev_stat.ttot >= stat.ttot)
++ prev_stat = stat
++ stats = stats.sort("totaltime", "asc")
++ prev_stat = None
++ for stat in stats:
++ if prev_stat:
++ self.assertTrue(prev_stat.ttot <= stat.ttot)
++ prev_stat = stat
++ stats = stats.sort("avgtime", "asc")
++ prev_stat = None
++ for stat in stats:
++ if prev_stat:
++ self.assertTrue(prev_stat.tavg <= stat.tavg)
++ prev_stat = stat
++ stats = stats.sort("name", "asc")
++ prev_stat = None
++ for stat in stats:
++ if prev_stat:
++ self.assertTrue(prev_stat.name <= stat.name)
++ prev_stat = stat
++ stats = stats.sort("subtime", "asc")
++ prev_stat = None
++ for stat in stats:
++ if prev_stat:
++ self.assertTrue(prev_stat.tsub <= stat.tsub)
++ prev_stat = stat
++
++ self.assertRaises(
++ yappi.YappiError, stats.sort, "invalid_func_sorttype_arg"
++ )
++ self.assertRaises(
++ yappi.YappiError, stats.sort, "totaltime",
++ "invalid_func_sortorder_arg"
++ )
++
++ def test_start_flags(self):
++ self.assertEqual(_yappi._get_start_flags(), None)
++ yappi.start()
++
++ def a():
++ pass
++
++ a()
++ self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0)
++ self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1)
++ self.assertEqual(len(yappi.get_thread_stats()), 1)
++
++ def test_builtin_profiling(self):
++
++ def a():
++ time.sleep(0.4) # is a builtin function
++
++ yappi.set_clock_type('wall')
++
++ yappi.start(builtins=True)
++ a()
++ stats = yappi.get_func_stats()
++ fsa = utils.find_stat_by_name(stats, 'sleep')
++ self.assertTrue(fsa is not None)
++ self.assertTrue(fsa.ttot > 0.3)
++ yappi.stop()
++ yappi.clear_stats()
++
++ def a():
++ pass
++
++ yappi.start()
++ t = threading.Thread(target=a)
++ t.start()
++ t.join()
++ stats = yappi.get_func_stats()
++
++ def test_singlethread_profiling(self):
++ yappi.set_clock_type('wall')
++
++ def a():
++ time.sleep(0.2)
++
++ class Worker1(threading.Thread):
++
++ def a(self):
++ time.sleep(0.3)
++
++ def run(self):
++ self.a()
++
++ yappi.start(profile_threads=False)
++
++ c = Worker1()
++ c.start()
++ c.join()
++ a()
++ stats = yappi.get_func_stats()
++ fsa1 = utils.find_stat_by_name(stats, 'Worker1.a')
++ fsa2 = utils.find_stat_by_name(stats, 'a')
++ self.assertTrue(fsa1 is None)
++ self.assertTrue(fsa2 is not None)
++ self.assertTrue(fsa2.ttot > 0.1)
++
++ def test_run(self):
++
++ def profiled():
++ pass
++
++ yappi.clear_stats()
++ try:
++ with yappi.run():
++ profiled()
++ stats = yappi.get_func_stats()
++ finally:
++ yappi.clear_stats()
++
++ self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled'))
++
++ def test_run_recursive(self):
++
++ def profiled():
++ pass
++
++ def not_profiled():
++ pass
++
++ yappi.clear_stats()
++ try:
++ with yappi.run():
++ with yappi.run():
++ profiled()
++ # Profiling stopped here
++ not_profiled()
++ stats = yappi.get_func_stats()
++ finally:
++ yappi.clear_stats()
++
++ self.assertIsNotNone(utils.find_stat_by_name(stats, 'profiled'))
++ self.assertIsNone(utils.find_stat_by_name(stats, 'not_profiled'))
++
++
++class StatSaveScenarios(utils.YappiUnitTestCase):
++
++ def test_pstats_conversion(self):
++
++ def pstat_id(fs):
++ return (fs.module, fs.lineno, fs.name)
++
++ def a():
++ d()
++
++ def b():
++ d()
++
++ def c():
++ pass
++
++ def d():
++ pass
++
++ _timings = {"a_1": 12, "b_1": 7, "c_1": 5, "d_1": 2}
++ _yappi._set_test_timings(_timings)
++ stats = utils.run_and_get_func_stats(a, )
++ stats.strip_dirs()
++ stats.save("tests/a1.pstats", type="pstat")
++ fsa_pid = pstat_id(utils.find_stat_by_name(stats, "a"))
++ fsd_pid = pstat_id(utils.find_stat_by_name(stats, "d"))
++ yappi.clear_stats()
++ _yappi._set_test_timings(_timings)
++ stats = utils.run_and_get_func_stats(a, )
++ stats.strip_dirs()
++ stats.save("tests/a2.pstats", type="pstat")
++ yappi.clear_stats()
++ _yappi._set_test_timings(_timings)
++ stats = utils.run_and_get_func_stats(b, )
++ stats.strip_dirs()
++ stats.save("tests/b1.pstats", type="pstat")
++ fsb_pid = pstat_id(utils.find_stat_by_name(stats, "b"))
++ yappi.clear_stats()
++ _yappi._set_test_timings(_timings)
++ stats = utils.run_and_get_func_stats(c, )
++ stats.strip_dirs()
++ stats.save("tests/c1.pstats", type="pstat")
++ fsc_pid = pstat_id(utils.find_stat_by_name(stats, "c"))
++
++ # merge saved stats and check pstats values are correct
++ import pstats
++ p = pstats.Stats(
++ 'tests/a1.pstats', 'tests/a2.pstats', 'tests/b1.pstats',
++ 'tests/c1.pstats'
++ )
++ p.strip_dirs()
++ # ct = ttot, tt = tsub
++ (cc, nc, tt, ct, callers) = p.stats[fsa_pid]
++ self.assertEqual(cc, nc, 2)
++ self.assertEqual(tt, 20)
++ self.assertEqual(ct, 24)
++ (cc, nc, tt, ct, callers) = p.stats[fsd_pid]
++ self.assertEqual(cc, nc, 3)
++ self.assertEqual(tt, 6)
++ self.assertEqual(ct, 6)
++ self.assertEqual(len(callers), 2)
++ (cc, nc, tt, ct) = callers[fsa_pid]
++ self.assertEqual(cc, nc, 2)
++ self.assertEqual(tt, 4)
++ self.assertEqual(ct, 4)
++ (cc, nc, tt, ct) = callers[fsb_pid]
++ self.assertEqual(cc, nc, 1)
++ self.assertEqual(tt, 2)
++ self.assertEqual(ct, 2)
++
++ def test_merge_stats(self):
++ _timings = {
++ "a_1": 15,
++ "b_1": 14,
++ "c_1": 12,
++ "d_1": 10,
++ "e_1": 9,
++ "f_1": 7,
++ "g_1": 6,
++ "h_1": 5,
++ "i_1": 1
++ }
++ _yappi._set_test_timings(_timings)
++
++ def a():
++ b()
++
++ def b():
++ c()
++
++ def c():
++ d()
++
++ def d():
++ e()
++
++ def e():
++ f()
++
++ def f():
++ g()
++
++ def g():
++ h()
++
++ def h():
++ i()
++
++ def i():
++ pass
++
++ yappi.start()
++ a()
++ a()
++ yappi.stop()
++ stats = yappi.get_func_stats()
++ self.assertRaises(
++ NotImplementedError, stats.save, "", "INVALID_SAVE_TYPE"
++ )
++ stats.save("tests/ystats2.ys")
++ yappi.clear_stats()
++ _yappi._set_test_timings(_timings)
++ yappi.start()
++ a()
++ stats = yappi.get_func_stats().add("tests/ystats2.ys")
++ fsa = utils.find_stat_by_name(stats, "a")
++ fsb = utils.find_stat_by_name(stats, "b")
++ fsc = utils.find_stat_by_name(stats, "c")
++ fsd = utils.find_stat_by_name(stats, "d")
++ fse = utils.find_stat_by_name(stats, "e")
++ fsf = utils.find_stat_by_name(stats, "f")
++ fsg = utils.find_stat_by_name(stats, "g")
++ fsh = utils.find_stat_by_name(stats, "h")
++ fsi = utils.find_stat_by_name(stats, "i")
++ self.assertEqual(fsa.ttot, 45)
++ self.assertEqual(fsa.ncall, 3)
++ self.assertEqual(fsa.nactualcall, 3)
++ self.assertEqual(fsa.tsub, 3)
++ self.assertEqual(fsa.children[fsb].ttot, fsb.ttot)
++ self.assertEqual(fsa.children[fsb].tsub, fsb.tsub)
++ self.assertEqual(fsb.children[fsc].ttot, fsc.ttot)
++ self.assertEqual(fsb.children[fsc].tsub, fsc.tsub)
++ self.assertEqual(fsc.tsub, 6)
++ self.assertEqual(fsc.children[fsd].ttot, fsd.ttot)
++ self.assertEqual(fsc.children[fsd].tsub, fsd.tsub)
++ self.assertEqual(fsd.children[fse].ttot, fse.ttot)
++ self.assertEqual(fsd.children[fse].tsub, fse.tsub)
++ self.assertEqual(fse.children[fsf].ttot, fsf.ttot)
++ self.assertEqual(fse.children[fsf].tsub, fsf.tsub)
++ self.assertEqual(fsf.children[fsg].ttot, fsg.ttot)
++ self.assertEqual(fsf.children[fsg].tsub, fsg.tsub)
++ self.assertEqual(fsg.ttot, 18)
++ self.assertEqual(fsg.tsub, 3)
++ self.assertEqual(fsg.children[fsh].ttot, fsh.ttot)
++ self.assertEqual(fsg.children[fsh].tsub, fsh.tsub)
++ self.assertEqual(fsh.ttot, 15)
++ self.assertEqual(fsh.tsub, 12)
++ self.assertEqual(fsh.tavg, 5)
++ self.assertEqual(fsh.children[fsi].ttot, fsi.ttot)
++ self.assertEqual(fsh.children[fsi].tsub, fsi.tsub)
++ #stats.debug_print()
++
++ def test_merge_multithreaded_stats(self):
++ import _yappi
++ timings = {"a_1": 2, "b_1": 1}
++ _yappi._set_test_timings(timings)
++
++ def a():
++ pass
++
++ def b():
++ pass
++
++ yappi.start()
++ t = threading.Thread(target=a)
++ t.start()
++ t.join()
++ t = threading.Thread(target=b)
++ t.start()
++ t.join()
++ yappi.get_func_stats().save("tests/ystats1.ys")
++ yappi.clear_stats()
++ _yappi._set_test_timings(timings)
++ self.assertEqual(len(yappi.get_func_stats()), 0)
++ self.assertEqual(len(yappi.get_thread_stats()), 1)
++ t = threading.Thread(target=a)
++ t.start()
++ t.join()
++
++ self.assertEqual(_yappi._get_start_flags()["profile_builtins"], 0)
++ self.assertEqual(_yappi._get_start_flags()["profile_multicontext"], 1)
++ yappi.get_func_stats().save("tests/ystats2.ys")
++
++ stats = yappi.YFuncStats([
++ "tests/ystats1.ys",
++ "tests/ystats2.ys",
++ ])
++ fsa = utils.find_stat_by_name(stats, "a")
++ fsb = utils.find_stat_by_name(stats, "b")
++ self.assertEqual(fsa.ncall, 2)
++ self.assertEqual(fsb.ncall, 1)
++ self.assertEqual(fsa.tsub, fsa.ttot, 4)
++ self.assertEqual(fsb.tsub, fsb.ttot, 1)
++
++ def test_merge_load_different_clock_types(self):
++ yappi.start(builtins=True)
++
++ def a():
++ b()
++
++ def b():
++ c()
++
++ def c():
++ pass
++
++ t = threading.Thread(target=a)
++ t.start()
++ t.join()
++ yappi.get_func_stats().sort("name", "asc").save("tests/ystats1.ys")
++ yappi.stop()
++ yappi.clear_stats()
++ yappi.start(builtins=False)
++ t = threading.Thread(target=a)
++ t.start()
++ t.join()
++ yappi.get_func_stats().save("tests/ystats2.ys")
++ yappi.stop()
++ self.assertRaises(_yappi.error, yappi.set_clock_type, "wall")
++ yappi.clear_stats()
++ yappi.set_clock_type("wall")
++ yappi.start()
++ t = threading.Thread(target=a)
++ t.start()
++ t.join()
++ yappi.get_func_stats().save("tests/ystats3.ys")
++ self.assertRaises(
++ yappi.YappiError,
++ yappi.YFuncStats().add("tests/ystats1.ys").add, "tests/ystats3.ys"
++ )
++ stats = yappi.YFuncStats(["tests/ystats1.ys",
++ "tests/ystats2.ys"]).sort("name")
++ fsa = utils.find_stat_by_name(stats, "a")
++ fsb = utils.find_stat_by_name(stats, "b")
++ fsc = utils.find_stat_by_name(stats, "c")
++ self.assertEqual(fsa.ncall, 2)
++ self.assertEqual(fsa.ncall, fsb.ncall, fsc.ncall)
++
++ def test_merge_aabab_aabbc(self):
++ _timings = {
++ "a_1": 15,
++ "a_2": 14,
++ "b_1": 12,
++ "a_3": 10,
++ "b_2": 9,
++ "c_1": 4
++ }
++ _yappi._set_test_timings(_timings)
++
++ def a():
++ if self._ncall == 1:
++ self._ncall += 1
++ a()
++ elif self._ncall == 5:
++ self._ncall += 1
++ a()
++ else:
++ b()
++
++ def b():
++ if self._ncall == 2:
++ self._ncall += 1
++ a()
++ elif self._ncall == 6:
++ self._ncall += 1
++ b()
++ elif self._ncall == 7:
++ c()
++ else:
++ return
++
++ def c():
++ pass
++
++ self._ncall = 1
++ stats = utils.run_and_get_func_stats(a, )
++ stats.save("tests/ystats1.ys")
++ yappi.clear_stats()
++ _yappi._set_test_timings(_timings)
++ #stats.print_all()
++
++ self._ncall = 5
++ stats = utils.run_and_get_func_stats(a, )
++ stats.save("tests/ystats2.ys")
++
++ #stats.print_all()
++
++ def a(): # same name but another function(code object)
++ pass
++
++ yappi.start()
++ a()
++ stats = yappi.get_func_stats().add(
++ ["tests/ystats1.ys", "tests/ystats2.ys"]
++ )
++ #stats.print_all()
++ self.assertEqual(len(stats), 4)
++
++ fsa = None
++ for stat in stats:
++ if stat.name == "a" and stat.ttot == 45:
++ fsa = stat
++ break
++ self.assertTrue(fsa is not None)
++
++ self.assertEqual(fsa.ncall, 7)
++ self.assertEqual(fsa.nactualcall, 3)
++ self.assertEqual(fsa.ttot, 45)
++ self.assertEqual(fsa.tsub, 10)
++ fsb = utils.find_stat_by_name(stats, "b")
++ fsc = utils.find_stat_by_name(stats, "c")
++ self.assertEqual(fsb.ncall, 6)
++ self.assertEqual(fsb.nactualcall, 3)
++ self.assertEqual(fsb.ttot, 36)
++ self.assertEqual(fsb.tsub, 27)
++ self.assertEqual(fsb.tavg, 6)
++ self.assertEqual(fsc.ttot, 8)
++ self.assertEqual(fsc.tsub, 8)
++ self.assertEqual(fsc.tavg, 4)
++ self.assertEqual(fsc.nactualcall, fsc.ncall, 2)
++
++
++class MultithreadedScenarios(utils.YappiUnitTestCase):
++
++ def test_issue_32(self):
++ '''
++ Start yappi from different thread and we get Internal Error(15) as
++ the current_ctx_id() called while enumerating the threads in start()
++ and as it does not swap to the enumerated ThreadState* the THreadState_GetDict()
++ returns wrong object and thus sets an invalid id for the _ctx structure.
++
++ When this issue happens multiple Threads have same tid as the internal ts_ptr
++ will be same for different contexts. So, let's see if that happens
++ '''
++
++ def foo():
++ time.sleep(0.2)
++
++ def bar():
++ time.sleep(0.1)
++
++ def thread_func():
++ yappi.set_clock_type("wall")
++ yappi.start()
++
++ bar()
++
++ t = threading.Thread(target=thread_func)
++ t.start()
++ t.join()
++
++ foo()
++
++ yappi.stop()
++
++ thread_ids = set()
++ for tstat in yappi.get_thread_stats():
++ self.assertTrue(tstat.tid not in thread_ids)
++ thread_ids.add(tstat.tid)
++
++ def test_subsequent_profile(self):
++ WORKER_COUNT = 5
++
++ def a():
++ pass
++
++ def b():
++ pass
++
++ def c():
++ pass
++
++ _timings = {
++ "a_1": 3,
++ "b_1": 2,
++ "c_1": 1,
++ }
++
++ yappi.start()
++
++ def g():
++ pass
++
++ g()
++ yappi.stop()
++ yappi.clear_stats()
++ _yappi._set_test_timings(_timings)
++ yappi.start()
++
++ _dummy = []
++ for i in range(WORKER_COUNT):
++ t = threading.Thread(target=a)
++ t.start()
++ t.join()
++ for i in range(WORKER_COUNT):
++ t = threading.Thread(target=b)
++ t.start()
++ _dummy.append(t)
++ t.join()
++ for i in range(WORKER_COUNT):
++ t = threading.Thread(target=a)
++ t.start()
++ t.join()
++ for i in range(WORKER_COUNT):
++ t = threading.Thread(target=c)
++ t.start()
++ t.join()
++ yappi.stop()
++ yappi.start()
++
++ def f():
++ pass
++
++ f()
++ stats = yappi.get_func_stats()
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ fsc = utils.find_stat_by_name(stats, 'c')
++ self.assertEqual(fsa.ncall, 10)
++ self.assertEqual(fsb.ncall, 5)
++ self.assertEqual(fsc.ncall, 5)
++ self.assertEqual(fsa.ttot, fsa.tsub, 30)
++ self.assertEqual(fsb.ttot, fsb.tsub, 10)
++ self.assertEqual(fsc.ttot, fsc.tsub, 5)
++
++ # MACOSx optimizes by only creating one worker thread
++ self.assertTrue(len(yappi.get_thread_stats()) >= 2)
++
++ def test_basic(self):
++ yappi.set_clock_type('wall')
++
++ def dummy():
++ pass
++
++ def a():
++ time.sleep(0.2)
++
++ class Worker1(threading.Thread):
++
++ def a(self):
++ time.sleep(0.3)
++
++ def run(self):
++ self.a()
++
++ yappi.start(builtins=False, profile_threads=True)
++
++ c = Worker1()
++ c.start()
++ c.join()
++ a()
++ stats = yappi.get_func_stats()
++ fsa1 = utils.find_stat_by_name(stats, 'Worker1.a')
++ fsa2 = utils.find_stat_by_name(stats, 'a')
++ self.assertTrue(fsa1 is not None)
++ self.assertTrue(fsa2 is not None)
++ self.assertTrue(fsa1.ttot > 0.2)
++ self.assertTrue(fsa2.ttot > 0.1)
++ tstats = yappi.get_thread_stats()
++ self.assertEqual(len(tstats), 2)
++ tsa = utils.find_stat_by_name(tstats, 'Worker1')
++ tsm = utils.find_stat_by_name(tstats, '_MainThread')
++ dummy() # call dummy to force ctx name to be retrieved again.
++ self.assertTrue(tsa is not None)
++ # TODO: I put dummy() to fix below, remove the comments after a while.
++ self.assertTrue( # FIX: I see this fails sometimes?
++ tsm is not None,
++ f"Could not find \"_MainThread\". Found: {', '.join(utils.get_stat_names(tstats))}")
++
++ def test_ctx_stats(self):
++ from threading import Thread
++ DUMMY_WORKER_COUNT = 5
++ yappi.start()
++
++ class DummyThread(Thread):
++ pass
++
++ def dummy():
++ pass
++
++ def dummy_worker():
++ pass
++
++ for i in range(DUMMY_WORKER_COUNT):
++ t = DummyThread(target=dummy_worker)
++ t.start()
++ t.join()
++ yappi.stop()
++ stats = yappi.get_thread_stats()
++ tsa = utils.find_stat_by_name(stats, "DummyThread")
++ self.assertTrue(tsa is not None)
++ yappi.clear_stats()
++ time.sleep(1.0)
++ _timings = {
++ "a_1": 6,
++ "b_1": 5,
++ "c_1": 3,
++ "d_1": 1,
++ "a_2": 4,
++ "b_2": 3,
++ "c_2": 2,
++ "d_2": 1
++ }
++ _yappi._set_test_timings(_timings)
++
++ class Thread1(Thread):
++ pass
++
++ class Thread2(Thread):
++ pass
++
++ def a():
++ b()
++
++ def b():
++ c()
++
++ def c():
++ d()
++
++ def d():
++ time.sleep(0.6)
++
++ yappi.set_clock_type("wall")
++ yappi.start()
++ t1 = Thread1(target=a)
++ t1.start()
++ t2 = Thread2(target=a)
++ t2.start()
++ t1.join()
++ t2.join()
++ stats = yappi.get_thread_stats()
++
++ # the fist clear_stats clears the context table?
++ tsa = utils.find_stat_by_name(stats, "DummyThread")
++ self.assertTrue(tsa is None)
++
++ tst1 = utils.find_stat_by_name(stats, "Thread1")
++ tst2 = utils.find_stat_by_name(stats, "Thread2")
++ tsmain = utils.find_stat_by_name(stats, "_MainThread")
++ dummy() # call dummy to force ctx name to be retrieved again.
++ self.assertTrue(len(stats) == 3)
++ self.assertTrue(tst1 is not None)
++ self.assertTrue(tst2 is not None)
++ # TODO: I put dummy() to fix below, remove the comments after a while.
++ self.assertTrue( # FIX: I see this fails sometimes
++ tsmain is not None,
++ f"Could not find \"_MainThread\". Found: {', '.join(utils.get_stat_names(stats))}")
++ self.assertTrue(1.0 > tst2.ttot >= 0.5)
++ self.assertTrue(1.0 > tst1.ttot >= 0.5)
++
++ # test sorting of the ctx stats
++ stats = stats.sort("totaltime", "desc")
++ prev_stat = None
++ for stat in stats:
++ if prev_stat:
++ self.assertTrue(prev_stat.ttot >= stat.ttot)
++ prev_stat = stat
++ stats = stats.sort("totaltime", "asc")
++ prev_stat = None
++ for stat in stats:
++ if prev_stat:
++ self.assertTrue(prev_stat.ttot <= stat.ttot)
++ prev_stat = stat
++ stats = stats.sort("schedcount", "desc")
++ prev_stat = None
++ for stat in stats:
++ if prev_stat:
++ self.assertTrue(prev_stat.sched_count >= stat.sched_count)
++ prev_stat = stat
++ stats = stats.sort("name", "desc")
++ prev_stat = None
++ for stat in stats:
++ if prev_stat:
++ self.assertTrue(prev_stat.name.lower() >= stat.name.lower())
++ prev_stat = stat
++ self.assertRaises(
++ yappi.YappiError, stats.sort, "invalid_thread_sorttype_arg"
++ )
++ self.assertRaises(
++ yappi.YappiError, stats.sort, "invalid_thread_sortorder_arg"
++ )
++
++ def test_ctx_stats_cpu(self):
++
++ def get_thread_name():
++ try:
++ return threading.current_thread().name
++ except AttributeError:
++ return "Anonymous"
++
++ def burn_cpu(sec):
++ t0 = yappi.get_clock_time()
++ elapsed = 0
++ while (elapsed < sec):
++ for _ in range(1000):
++ pass
++ elapsed = yappi.get_clock_time() - t0
++
++ def test():
++
++ ts = []
++ for i in (0.01, 0.05, 0.1):
++ t = threading.Thread(target=burn_cpu, args=(i, ))
++ t.name = f"burn_cpu-{str(i)}"
++ t.start()
++ ts.append(t)
++ for t in ts:
++ t.join()
++
++ yappi.set_clock_type("cpu")
++ yappi.set_context_name_callback(get_thread_name)
++
++ yappi.start()
++
++ test()
++
++ yappi.stop()
++
++ tstats = yappi.get_thread_stats()
++ r1 = '''
++ burn_cpu-0.1 3 123145356058624 0.100105 8
++ burn_cpu-0.05 2 123145361313792 0.050149 8
++ burn_cpu-0.01 1 123145356058624 0.010127 2
++ MainThread 0 4321620864 0.001632 6
++ '''
++ self.assert_ctx_stats_almost_equal(r1, tstats)
++
++ def test_producer_consumer_with_queues(self):
++ # we currently just stress yappi, no functionality test is done here.
++ yappi.start()
++ from queue import Queue
++ from threading import Thread
++ WORKER_THREAD_COUNT = 50
++ WORK_ITEM_COUNT = 2000
++
++ def worker():
++ while True:
++ item = q.get()
++ # do the work with item
++ q.task_done()
++
++ q = Queue()
++ for i in range(WORKER_THREAD_COUNT):
++ t = Thread(target=worker)
++ t.daemon = True
++ t.start()
++
++ for item in range(WORK_ITEM_COUNT):
++ q.put(item)
++ q.join() # block until all tasks are done
++ #yappi.get_func_stats().sort("callcount").print_all()
++ yappi.stop()
++
++ def test_temporary_lock_waiting(self):
++ yappi.start()
++ _lock = threading.Lock()
++
++ def worker():
++ _lock.acquire()
++ try:
++ time.sleep(1.0)
++ finally:
++ _lock.release()
++
++ t1 = threading.Thread(target=worker)
++ t2 = threading.Thread(target=worker)
++ t1.start()
++ t2.start()
++ t1.join()
++ t2.join()
++ #yappi.get_func_stats().sort("callcount").print_all()
++ yappi.stop()
++
++ @unittest.skipIf(os.name != "posix", "requires Posix compliant OS")
++ def test_signals_with_blocking_calls(self):
++ import signal, os, time
++
++ # just to verify if signal is handled correctly and stats/yappi are not corrupted.
++ def handler(signum, frame):
++ raise Exception("Signal handler executed!")
++
++ yappi.start()
++ signal.signal(signal.SIGALRM, handler)
++ signal.alarm(1)
++ self.assertRaises(Exception, time.sleep, 2)
++ stats = yappi.get_func_stats()
++ fsh = utils.find_stat_by_name(stats, "handler")
++ self.assertTrue(fsh is not None)
++
++ def test_concurrent_futures(self):
++ yappi.start()
++ from concurrent.futures import ThreadPoolExecutor
++ with ThreadPoolExecutor(max_workers=5) as executor:
++ f = executor.submit(pow, 5, 2)
++ self.assertEqual(f.result(), 25)
++ time.sleep(1.0)
++ yappi.stop()
++
++ def test_barrier(self):
++ yappi.start()
++ b = threading.Barrier(2, timeout=1)
++
++ def worker():
++ try:
++ b.wait()
++ except threading.BrokenBarrierError:
++ pass
++ except Exception:
++ raise Exception("BrokenBarrierError not raised")
++
++ t1 = threading.Thread(target=worker)
++ t1.start()
++ #b.wait()
++ t1.join()
++ yappi.stop()
++
++
++class NonRecursiveFunctions(utils.YappiUnitTestCase):
++
++ def test_abcd(self):
++ _timings = {"a_1": 6, "b_1": 5, "c_1": 3, "d_1": 1}
++ _yappi._set_test_timings(_timings)
++
++ def a():
++ b()
++
++ def b():
++ c()
++
++ def c():
++ d()
++
++ def d():
++ pass
++
++ stats = utils.run_and_get_func_stats(a)
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ fsc = utils.find_stat_by_name(stats, 'c')
++ fsd = utils.find_stat_by_name(stats, 'd')
++ cfsab = fsa.children[fsb]
++ cfsbc = fsb.children[fsc]
++ cfscd = fsc.children[fsd]
++
++ self.assertEqual(fsa.ttot, 6)
++ self.assertEqual(fsa.tsub, 1)
++ self.assertEqual(fsb.ttot, 5)
++ self.assertEqual(fsb.tsub, 2)
++ self.assertEqual(fsc.ttot, 3)
++ self.assertEqual(fsc.tsub, 2)
++ self.assertEqual(fsd.ttot, 1)
++ self.assertEqual(fsd.tsub, 1)
++ self.assertEqual(cfsab.ttot, 5)
++ self.assertEqual(cfsab.tsub, 2)
++ self.assertEqual(cfsbc.ttot, 3)
++ self.assertEqual(cfsbc.tsub, 2)
++ self.assertEqual(cfscd.ttot, 1)
++ self.assertEqual(cfscd.tsub, 1)
++
++ def test_stop_in_middle(self):
++ _timings = {"a_1": 6, "b_1": 4}
++ _yappi._set_test_timings(_timings)
++
++ def a():
++ b()
++ yappi.stop()
++
++ def b():
++ time.sleep(0.2)
++
++ yappi.start()
++ a()
++ stats = yappi.get_func_stats()
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++
++ self.assertEqual(fsa.ncall, 1)
++ self.assertEqual(fsa.nactualcall, 0)
++ self.assertEqual(fsa.ttot, 0) # no call_leave called
++ self.assertEqual(fsa.tsub, 0) # no call_leave called
++ self.assertEqual(fsb.ttot, 4)
++
++
++class RecursiveFunctions(utils.YappiUnitTestCase):
++
++ def test_fibonacci(self):
++
++ def fib(n):
++ if n > 1:
++ return fib(n - 1) + fib(n - 2)
++ else:
++ return n
++
++ stats = utils.run_and_get_func_stats(fib, 22)
++ fs = utils.find_stat_by_name(stats, 'fib')
++ self.assertEqual(fs.ncall, 57313)
++ self.assertEqual(fs.ttot, fs.tsub)
++
++ def test_abcadc(self):
++ _timings = {
++ "a_1": 20,
++ "b_1": 19,
++ "c_1": 17,
++ "a_2": 13,
++ "d_1": 12,
++ "c_2": 10,
++ "a_3": 5
++ }
++ _yappi._set_test_timings(_timings)
++
++ def a(n):
++ if n == 3:
++ return
++ if n == 1 + 1:
++ d(n)
++ else:
++ b(n)
++
++ def b(n):
++ c(n)
++
++ def c(n):
++ a(n + 1)
++
++ def d(n):
++ c(n)
++
++ stats = utils.run_and_get_func_stats(a, 1)
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ fsc = utils.find_stat_by_name(stats, 'c')
++ fsd = utils.find_stat_by_name(stats, 'd')
++ self.assertEqual(fsa.ncall, 3)
++ self.assertEqual(fsa.nactualcall, 1)
++ self.assertEqual(fsa.ttot, 20)
++ self.assertEqual(fsa.tsub, 7)
++ self.assertEqual(fsb.ttot, 19)
++ self.assertEqual(fsb.tsub, 2)
++ self.assertEqual(fsc.ttot, 17)
++ self.assertEqual(fsc.tsub, 9)
++ self.assertEqual(fsd.ttot, 12)
++ self.assertEqual(fsd.tsub, 2)
++ cfsca = fsc.children[fsa]
++ self.assertEqual(cfsca.nactualcall, 0)
++ self.assertEqual(cfsca.ncall, 2)
++ self.assertEqual(cfsca.ttot, 13)
++ self.assertEqual(cfsca.tsub, 6)
++
++ def test_aaaa(self):
++ _timings = {"d_1": 9, "d_2": 7, "d_3": 3, "d_4": 2}
++ _yappi._set_test_timings(_timings)
++
++ def d(n):
++ if n == 3:
++ return
++ d(n + 1)
++
++ stats = utils.run_and_get_func_stats(d, 0)
++ fsd = utils.find_stat_by_name(stats, 'd')
++ self.assertEqual(fsd.ncall, 4)
++ self.assertEqual(fsd.nactualcall, 1)
++ self.assertEqual(fsd.ttot, 9)
++ self.assertEqual(fsd.tsub, 9)
++ cfsdd = fsd.children[fsd]
++ self.assertEqual(cfsdd.ttot, 7)
++ self.assertEqual(cfsdd.tsub, 7)
++ self.assertEqual(cfsdd.ncall, 3)
++ self.assertEqual(cfsdd.nactualcall, 0)
++
++ def test_abcabc(self):
++ _timings = {
++ "a_1": 20,
++ "b_1": 19,
++ "c_1": 17,
++ "a_2": 13,
++ "b_2": 11,
++ "c_2": 9,
++ "a_3": 6
++ }
++ _yappi._set_test_timings(_timings)
++
++ def a(n):
++ if n == 3:
++ return
++ else:
++ b(n)
++
++ def b(n):
++ c(n)
++
++ def c(n):
++ a(n + 1)
++
++ stats = utils.run_and_get_func_stats(a, 1)
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ fsc = utils.find_stat_by_name(stats, 'c')
++ self.assertEqual(fsa.ncall, 3)
++ self.assertEqual(fsa.nactualcall, 1)
++ self.assertEqual(fsa.ttot, 20)
++ self.assertEqual(fsa.tsub, 9)
++ self.assertEqual(fsb.ttot, 19)
++ self.assertEqual(fsb.tsub, 4)
++ self.assertEqual(fsc.ttot, 17)
++ self.assertEqual(fsc.tsub, 7)
++ cfsab = fsa.children[fsb]
++ cfsbc = fsb.children[fsc]
++ cfsca = fsc.children[fsa]
++ self.assertEqual(cfsab.ttot, 19)
++ self.assertEqual(cfsab.tsub, 4)
++ self.assertEqual(cfsbc.ttot, 17)
++ self.assertEqual(cfsbc.tsub, 7)
++ self.assertEqual(cfsca.ttot, 13)
++ self.assertEqual(cfsca.tsub, 8)
++
++ def test_abcbca(self):
++ _timings = {"a_1": 10, "b_1": 9, "c_1": 7, "b_2": 4, "c_2": 2, "a_2": 1}
++ _yappi._set_test_timings(_timings)
++ self._ncall = 1
++
++ def a():
++ if self._ncall == 1:
++ b()
++ else:
++ return
++
++ def b():
++ c()
++
++ def c():
++ if self._ncall == 1:
++ self._ncall += 1
++ b()
++ else:
++ a()
++
++ stats = utils.run_and_get_func_stats(a)
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ fsc = utils.find_stat_by_name(stats, 'c')
++ cfsab = fsa.children[fsb]
++ cfsbc = fsb.children[fsc]
++ cfsca = fsc.children[fsa]
++ self.assertEqual(fsa.ttot, 10)
++ self.assertEqual(fsa.tsub, 2)
++ self.assertEqual(fsb.ttot, 9)
++ self.assertEqual(fsb.tsub, 4)
++ self.assertEqual(fsc.ttot, 7)
++ self.assertEqual(fsc.tsub, 4)
++ self.assertEqual(cfsab.ttot, 9)
++ self.assertEqual(cfsab.tsub, 2)
++ self.assertEqual(cfsbc.ttot, 7)
++ self.assertEqual(cfsbc.tsub, 4)
++ self.assertEqual(cfsca.ttot, 1)
++ self.assertEqual(cfsca.tsub, 1)
++ self.assertEqual(cfsca.ncall, 1)
++ self.assertEqual(cfsca.nactualcall, 0)
++
++ def test_aabccb(self):
++ _timings = {
++ "a_1": 13,
++ "a_2": 11,
++ "b_1": 9,
++ "c_1": 5,
++ "c_2": 3,
++ "b_2": 1
++ }
++ _yappi._set_test_timings(_timings)
++ self._ncall = 1
++
++ def a():
++ if self._ncall == 1:
++ self._ncall += 1
++ a()
++ else:
++ b()
++
++ def b():
++ if self._ncall == 3:
++ return
++ else:
++ c()
++
++ def c():
++ if self._ncall == 2:
++ self._ncall += 1
++ c()
++ else:
++ b()
++
++ stats = utils.run_and_get_func_stats(a)
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ fsc = utils.find_stat_by_name(stats, 'c')
++ cfsaa = fsa.children[fsa.index]
++ cfsab = fsa.children[fsb]
++ cfsbc = fsb.children[fsc.full_name]
++ cfscc = fsc.children[fsc]
++ cfscb = fsc.children[fsb]
++ self.assertEqual(fsb.ttot, 9)
++ self.assertEqual(fsb.tsub, 5)
++ self.assertEqual(cfsbc.ttot, 5)
++ self.assertEqual(cfsbc.tsub, 2)
++ self.assertEqual(fsa.ttot, 13)
++ self.assertEqual(fsa.tsub, 4)
++ self.assertEqual(cfsab.ttot, 9)
++ self.assertEqual(cfsab.tsub, 4)
++ self.assertEqual(cfsaa.ttot, 11)
++ self.assertEqual(cfsaa.tsub, 2)
++ self.assertEqual(fsc.ttot, 5)
++ self.assertEqual(fsc.tsub, 4)
++
++ def test_abaa(self):
++ _timings = {"a_1": 13, "b_1": 10, "a_2": 9, "a_3": 5}
++ _yappi._set_test_timings(_timings)
++
++ self._ncall = 1
++
++ def a():
++ if self._ncall == 1:
++ b()
++ elif self._ncall == 2:
++ self._ncall += 1
++ a()
++ else:
++ return
++
++ def b():
++ self._ncall += 1
++ a()
++
++ stats = utils.run_and_get_func_stats(a)
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ cfsaa = fsa.children[fsa]
++ cfsba = fsb.children[fsa]
++ self.assertEqual(fsb.ttot, 10)
++ self.assertEqual(fsb.tsub, 1)
++ self.assertEqual(fsa.ttot, 13)
++ self.assertEqual(fsa.tsub, 12)
++ self.assertEqual(cfsaa.ttot, 5)
++ self.assertEqual(cfsaa.tsub, 5)
++ self.assertEqual(cfsba.ttot, 9)
++ self.assertEqual(cfsba.tsub, 4)
++
++ def test_aabb(self):
++ _timings = {"a_1": 13, "a_2": 10, "b_1": 9, "b_2": 5}
++ _yappi._set_test_timings(_timings)
++
++ self._ncall = 1
++
++ def a():
++ if self._ncall == 1:
++ self._ncall += 1
++ a()
++ elif self._ncall == 2:
++ b()
++ else:
++ return
++
++ def b():
++ if self._ncall == 2:
++ self._ncall += 1
++ b()
++ else:
++ return
++
++ stats = utils.run_and_get_func_stats(a)
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ cfsaa = fsa.children[fsa]
++ cfsab = fsa.children[fsb]
++ cfsbb = fsb.children[fsb]
++ self.assertEqual(fsa.ttot, 13)
++ self.assertEqual(fsa.tsub, 4)
++ self.assertEqual(fsb.ttot, 9)
++ self.assertEqual(fsb.tsub, 9)
++ self.assertEqual(cfsaa.ttot, 10)
++ self.assertEqual(cfsaa.tsub, 1)
++ self.assertEqual(cfsab.ttot, 9)
++ self.assertEqual(cfsab.tsub, 4)
++ self.assertEqual(cfsbb.ttot, 5)
++ self.assertEqual(cfsbb.tsub, 5)
++
++ def test_abbb(self):
++ _timings = {"a_1": 13, "b_1": 10, "b_2": 6, "b_3": 1}
++ _yappi._set_test_timings(_timings)
++
++ self._ncall = 1
++
++ def a():
++ if self._ncall == 1:
++ b()
++
++ def b():
++ if self._ncall == 3:
++ return
++ self._ncall += 1
++ b()
++
++ stats = utils.run_and_get_func_stats(a)
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ cfsab = fsa.children[fsb]
++ cfsbb = fsb.children[fsb]
++ self.assertEqual(fsa.ttot, 13)
++ self.assertEqual(fsa.tsub, 3)
++ self.assertEqual(fsb.ttot, 10)
++ self.assertEqual(fsb.tsub, 10)
++ self.assertEqual(fsb.ncall, 3)
++ self.assertEqual(fsb.nactualcall, 1)
++ self.assertEqual(cfsab.ttot, 10)
++ self.assertEqual(cfsab.tsub, 4)
++ self.assertEqual(cfsbb.ttot, 6)
++ self.assertEqual(cfsbb.tsub, 6)
++ self.assertEqual(cfsbb.nactualcall, 0)
++ self.assertEqual(cfsbb.ncall, 2)
++
++ def test_aaab(self):
++ _timings = {"a_1": 13, "a_2": 10, "a_3": 6, "b_1": 1}
++ _yappi._set_test_timings(_timings)
++
++ self._ncall = 1
++
++ def a():
++ if self._ncall == 3:
++ b()
++ return
++ self._ncall += 1
++ a()
++
++ def b():
++ return
++
++ stats = utils.run_and_get_func_stats(a)
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ cfsaa = fsa.children[fsa]
++ cfsab = fsa.children[fsb]
++ self.assertEqual(fsa.ttot, 13)
++ self.assertEqual(fsa.tsub, 12)
++ self.assertEqual(fsb.ttot, 1)
++ self.assertEqual(fsb.tsub, 1)
++ self.assertEqual(cfsaa.ttot, 10)
++ self.assertEqual(cfsaa.tsub, 9)
++ self.assertEqual(cfsab.ttot, 1)
++ self.assertEqual(cfsab.tsub, 1)
++
++ def test_abab(self):
++ _timings = {"a_1": 13, "b_1": 10, "a_2": 6, "b_2": 1}
++ _yappi._set_test_timings(_timings)
++
++ self._ncall = 1
++
++ def a():
++ b()
++
++ def b():
++ if self._ncall == 2:
++ return
++ self._ncall += 1
++ a()
++
++ stats = utils.run_and_get_func_stats(a)
++ fsa = utils.find_stat_by_name(stats, 'a')
++ fsb = utils.find_stat_by_name(stats, 'b')
++ cfsab = fsa.children[fsb]
++ cfsba = fsb.children[fsa]
++ self.assertEqual(fsa.ttot, 13)
++ self.assertEqual(fsa.tsub, 8)
++ self.assertEqual(fsb.ttot, 10)
++ self.assertEqual(fsb.tsub, 5)
++ self.assertEqual(cfsab.ttot, 10)
++ self.assertEqual(cfsab.tsub, 5)
++ self.assertEqual(cfsab.ncall, 2)
++ self.assertEqual(cfsab.nactualcall, 1)
++ self.assertEqual(cfsba.ttot, 6)
++ self.assertEqual(cfsba.tsub, 5)
++
++
++if __name__ == '__main__':
++ # import sys;sys.argv = ['', 'BasicUsage.test_run_as_script']
++ # import sys;sys.argv = ['', 'MultithreadedScenarios.test_subsequent_profile']
++ unittest.main()
+--
+2.34.1
+
diff --git a/meta-python/recipes-devtools/python/python3-yappi/0002-Fix-import-of-tests.utils-to-enable-pytest.patch b/meta-python/recipes-devtools/python/python3-yappi/0002-Fix-import-of-tests.utils-to-enable-pytest.patch
new file mode 100644
index 0000000000..96dd024125
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-yappi/0002-Fix-import-of-tests.utils-to-enable-pytest.patch
@@ -0,0 +1,101 @@
+From 28eac38566327091221aabbc164ea8e433c66e7e Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Sun, 24 Dec 2023 09:27:50 -0800
+Subject: [PATCH 2/2] Fix import of tests.utils to enable pytest
+
+Running the test cases with pytest leads to importlib errors
+because the "utils" module cannot be found.
+
+Upstream-Status: Submitted [https://github.com/sumerc/yappi/pull/164]
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ tests/test_asyncio.py | 2 +-
+ tests/test_asyncio_context_vars.py | 2 +-
+ tests/test_functionality.py | 2 +-
+ tests/test_gevent.py | 2 +-
+ tests/test_hooks.py | 2 +-
+ tests/test_tags.py | 2 +-
+ 6 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/tests/test_asyncio.py b/tests/test_asyncio.py
+index 8e9e631..bb36f4a 100644
+--- a/tests/test_asyncio.py
++++ b/tests/test_asyncio.py
+@@ -2,7 +2,7 @@ import unittest
+ import yappi
+ import asyncio
+ import threading
+-from utils import YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io
++from tests.utils import YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io
+
+
+ async def async_sleep(sec):
+diff --git a/tests/test_asyncio_context_vars.py b/tests/test_asyncio_context_vars.py
+index 5bd750c..9a253c0 100644
+--- a/tests/test_asyncio_context_vars.py
++++ b/tests/test_asyncio_context_vars.py
+@@ -5,7 +5,7 @@ import contextvars
+ import functools
+ import time
+ import os
+-import utils
++import tests.utils as utils
+ import yappi
+
+ async_context_id = contextvars.ContextVar('async_context_id')
+diff --git a/tests/test_functionality.py b/tests/test_functionality.py
+index 38bbe67..8098f17 100644
+--- a/tests/test_functionality.py
++++ b/tests/test_functionality.py
+@@ -5,7 +5,7 @@ import threading
+ import unittest
+ import yappi
+ import _yappi
+-import utils
++import tests.utils as utils
+ import multiprocessing
+ import subprocess
+
+diff --git a/tests/test_gevent.py b/tests/test_gevent.py
+index ed9e6ae..502af5f 100644
+--- a/tests/test_gevent.py
++++ b/tests/test_gevent.py
+@@ -2,7 +2,7 @@ import unittest
+ import _yappi
+ import yappi
+ import threading
+-from utils import (
++from tests.utils import (
+ YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io, burn_io_gevent
+ )
+
+diff --git a/tests/test_hooks.py b/tests/test_hooks.py
+index 297c643..8c387fc 100644
+--- a/tests/test_hooks.py
++++ b/tests/test_hooks.py
+@@ -5,7 +5,7 @@ import unittest
+ import time
+
+ import yappi
+-import utils
++import tests.utils as utils
+
+
+ def a():
+diff --git a/tests/test_tags.py b/tests/test_tags.py
+index b0b531d..b5a4016 100644
+--- a/tests/test_tags.py
++++ b/tests/test_tags.py
+@@ -2,7 +2,7 @@ import unittest
+ import yappi
+ import threading
+ import time
+-from utils import YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io
++from tests.utils import YappiUnitTestCase, find_stat_by_name, burn_cpu, burn_io
+
+
+ class MultiThreadTests(YappiUnitTestCase):
+--
+2.34.1
+
diff --git a/meta-python/recipes-devtools/python/python3-yappi/run-ptest b/meta-python/recipes-devtools/python/python3-yappi/run-ptest
index 3385d68939..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-yappi/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-yappi/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-yappi_1.3.6.bb b/meta-python/recipes-devtools/python/python3-yappi_1.3.6.bb
deleted file mode 100644
index 2f24443194..0000000000
--- a/meta-python/recipes-devtools/python/python3-yappi_1.3.6.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Yet Another Python Profiler"
-HOMEPAGE = "https://github.com/sumerc/yappi"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=71c208c9a4fd864385eb69ad4caa3bee"
-
-SRC_URI[sha256sum] = "0a73c608a2603570a020a32d4369ba744012bc5267f37e5bd8026fb491abba56"
-
-SRC_URI += " \
- file://run-ptest \
- file://0001-Fix-imports-for-ptests.patch \
-"
-
-inherit pypi setuptools3 ptest
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-threading \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-gevent \
- ${PYTHON_PN}-multiprocessing \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-profile \
- ${PYTHON_PN}-zopeinterface \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
- cp -f ${S}/yappi/yappi.py ${D}/${PTEST_PATH}/
-}
diff --git a/meta-python/recipes-devtools/python/python3-yappi_1.6.0.bb b/meta-python/recipes-devtools/python/python3-yappi_1.6.0.bb
new file mode 100644
index 0000000000..4349cab1e7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-yappi_1.6.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Yet Another Python Profiler"
+HOMEPAGE = "https://github.com/sumerc/yappi"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=71c208c9a4fd864385eb69ad4caa3bee"
+
+SRC_URI[sha256sum] = "a9aaf72009d8c03067294151ee0470ac7a6dfa7b33baab40b198d6c1ef00430a"
+
+SRC_URI += " \
+ file://run-ptest \
+ file://0001-test_functionality-convert-line-endings-to-Unix.patch \
+ file://0002-Fix-import-of-tests.utils-to-enable-pytest.patch \
+"
+
+inherit pypi python_setuptools_build_meta ptest
+
+RDEPENDS:${PN} += "\
+ python3-datetime \
+ python3-pickle \
+ python3-threading \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-gevent \
+ python3-multiprocessing \
+ python3-pytest \
+ python3-profile \
+ python3-unittest-automake-output \
+ python3-zopeinterface \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests ${D}${PTEST_PATH}
+ cp -f ${S}/run_tests.py ${D}${PTEST_PATH}
+}
+
diff --git a/meta-python/recipes-devtools/python/python3-yarl/run-ptest b/meta-python/recipes-devtools/python/python3-yarl/run-ptest
index 3385d68939..8d2017d39c 100644
--- a/meta-python/recipes-devtools/python/python3-yarl/run-ptest
+++ b/meta-python/recipes-devtools/python/python3-yarl/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest --automake
diff --git a/meta-python/recipes-devtools/python/python3-yarl_1.8.1.bb b/meta-python/recipes-devtools/python/python3-yarl_1.8.1.bb
deleted file mode 100644
index 66ee46b446..0000000000
--- a/meta-python/recipes-devtools/python/python3-yarl_1.8.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "The module provides handy URL class for url parsing and changing"
-HOMEPAGE = "https://github.com/aio-libs/yarl/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e581798a7b985311f29fa3e163ea27ae"
-
-SRC_URI[sha256sum] = "af887845b8c2e060eb5605ff72b6f2dd2aab7a761379373fd89d314f4752abbf"
-
-SRC_URI += "file://run-ptest"
-
-PYPI_PACKAGE = "yarl"
-
-inherit pypi ptest setuptools3
-
-RDEPENDS:${PN} = "\
- ${PYTHON_PN}-multidict \
- ${PYTHON_PN}-idna \
- ${PYTHON_PN}-io \
-"
-
-RDEPENDS:${PN}-ptest += " \
- ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
-}
diff --git a/meta-python/recipes-devtools/python/python3-yarl_1.9.4.bb b/meta-python/recipes-devtools/python/python3-yarl_1.9.4.bb
new file mode 100644
index 0000000000..29897b7f1c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-yarl_1.9.4.bb
@@ -0,0 +1,33 @@
+SUMMARY = "The module provides handy URL class for url parsing and changing"
+HOMEPAGE = "https://github.com/aio-libs/yarl/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"
+
+SRC_URI += "file://run-ptest"
+
+PYPI_PACKAGE = "yarl"
+
+inherit pypi ptest python_setuptools_build_meta
+
+DEPENDS += " \
+ python3-expandvars-native \
+ python3-cython-native \
+"
+
+RDEPENDS:${PN} = "\
+ python3-multidict \
+ python3-idna \
+ python3-io \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+ python3-unittest-automake-output \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
diff --git a/meta-python/recipes-devtools/python/python3-zeroconf_0.132.0.bb b/meta-python/recipes-devtools/python/python3-zeroconf_0.132.0.bb
new file mode 100644
index 0000000000..ea8ef1cb92
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-zeroconf_0.132.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible)"
+HOMEPAGE = "https://github.com/jstasiak/python-zeroconf"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=6517bdc8f2416f27ab725d4702f7aac3"
+
+SRC_URI[sha256sum] = "e2dddb9b8e6a9de3c43f943d8547300e6bd49b2043fd719ae830cfe0f2908a5c"
+
+DEPENDS += "python3-cython-native"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} += " \
+ python3-ifaddr (>=0.1.7) \
+ python3-async-timeout \
+"
diff --git a/meta-python/recipes-devtools/python/python3-zeroconf_0.39.1.bb b/meta-python/recipes-devtools/python/python3-zeroconf_0.39.1.bb
deleted file mode 100644
index 6f442481f0..0000000000
--- a/meta-python/recipes-devtools/python/python3-zeroconf_0.39.1.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible)"
-HOMEPAGE = "https://github.com/jstasiak/python-zeroconf"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bb705b228ea4a14ea2728215b780d80"
-
-SRC_URI[sha256sum] = "b83cff68a0c8dcd2705b5e792796239accba2bfddb09bc8d05badc642f64e7f6"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-ifaddr \
- ${PYTHON_PN}-asyncio \
- ${PYTHON_PN}-async-timeout \
-"
diff --git a/meta-python/recipes-devtools/python/python3-zopeevent_5.0.bb b/meta-python/recipes-devtools/python/python3-zopeevent_5.0.bb
new file mode 100644
index 0000000000..4d914c63e9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-zopeevent_5.0.bb
@@ -0,0 +1,10 @@
+DESCRIPTION = "The zope.event package provides a simple event system"
+
+LICENSE = "ZPL-2.1"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=72092419572155ddc2d4fb7631c63dd3"
+
+SRC_URI[sha256sum] = "bac440d8d9891b4068e2b5a2c5e2c9765a9df762944bda6955f96bb9b91e67cd"
+
+PYPI_PACKAGE = "zope.event"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-zopeinterface_5.4.0.bb b/meta-python/recipes-devtools/python/python3-zopeinterface_5.4.0.bb
deleted file mode 100644
index b048c80e13..0000000000
--- a/meta-python/recipes-devtools/python/python3-zopeinterface_5.4.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Interface definitions for Zope products"
-LICENSE = "ZPL-2.1"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e54fd776274c1b7423ec128974bd9d46"
-
-PYPI_PACKAGE = "zope.interface"
-
-inherit pypi setuptools3
-SRC_URI[sha256sum] = "5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e"
-
-PACKAGES =. "${PN}-test "
-
-RPROVIDES:${PN} += "zope-interfaces"
-
-RDEPENDS:${PN}:class-target += "${PYTHON_PN}-datetime"
-RDEPENDS:${PN}-test += "python3-unittest python3-doctest"
-
-FILES:${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*.egg/*/*/.debug"
-FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/zope/interface/*.c"
-FILES:${PN}-doc += "${PYTHON_SITEPACKAGES_DIR}/zope/interface/*.txt"
-FILES:${PN}-test += " \
- ${PYTHON_SITEPACKAGES_DIR}/zope/interface/tests \
- ${PYTHON_SITEPACKAGES_DIR}/zope/interface/common/tests \
-"
diff --git a/meta-python/recipes-devtools/python/python3-zopeinterface_6.2.bb b/meta-python/recipes-devtools/python/python3-zopeinterface_6.2.bb
new file mode 100644
index 0000000000..70a634a49b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-zopeinterface_6.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Interface definitions for Zope products"
+LICENSE = "ZPL-2.1"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e54fd776274c1b7423ec128974bd9d46"
+
+PYPI_PACKAGE = "zope.interface"
+
+inherit pypi setuptools3
+SRC_URI[sha256sum] = "3b6c62813c63c543a06394a636978b22dffa8c5410affc9331ce6cdb5bfa8565"
+
+PACKAGES =. "${PN}-test "
+
+RPROVIDES:${PN} += "zope-interfaces"
+
+RDEPENDS:${PN}:class-target += "python3-datetime"
+RDEPENDS:${PN}-test += "python3-unittest python3-doctest"
+
+FILES:${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/*.egg/*/*/.debug"
+FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/zope/interface/*.c"
+FILES:${PN}-doc += "${PYTHON_SITEPACKAGES_DIR}/zope/interface/*.txt"
+FILES:${PN}-test += " \
+ ${PYTHON_SITEPACKAGES_DIR}/zope/interface/tests \
+ ${PYTHON_SITEPACKAGES_DIR}/zope/interface/common/tests \
+"
diff --git a/meta-python/recipes-devtools/python/tftpy_0.8.2.bb b/meta-python/recipes-devtools/python/tftpy_0.8.2.bb
new file mode 100644
index 0000000000..c1b3234f72
--- /dev/null
+++ b/meta-python/recipes-devtools/python/tftpy_0.8.2.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Tftpy is a TFTP library for the Python programming language. It includes client and server classes, with sample implementations."
+DESCRIPTION = "Tftpy is a TFTP library for the Python programming language. It \
+includes client and server classes, with sample implementations. Hooks are \
+included for easy inclusion in a UI for populating progress indicators. It \
+supports RFCs 1350, 2347, 2348 and the tsize option from RFC 2349."
+
+HOMEPAGE = "https://github.com/msoulier/tftpy"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=22770e72ae03c61f5bcc4e333b61368d"
+
+SRC_URI[sha256sum] = "e1d1a680efd88eba176b351175844253067392a9b0f8b81588e3ff2b9e7bbb5b"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python3-attrdict3/python3-attrdict3_2.0.2.bb b/meta-python/recipes-devtools/python3-attrdict3/python3-attrdict3_2.0.2.bb
new file mode 100644
index 0000000000..ee099c7ac9
--- /dev/null
+++ b/meta-python/recipes-devtools/python3-attrdict3/python3-attrdict3_2.0.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "AttrDict is an MIT-licensed library that provides mapping objects that allow their elements to be accessed both as keys and as attributes"
+HOMEPAGE = "https://pypi.org/project/attrdict3/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2b37be7e71ebfc92a94bfacf6b20a1cc"
+
+DEPENDS = ""
+
+SRC_URI[sha256sum] = "004c171ca1120cc1755701db99d7fa4944afb1e68950434efdaa542513335fe8"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
+
+RDEPENDS:${PN} += "python3-six"
diff --git a/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.1.0.bb b/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.1.0.bb
new file mode 100644
index 0000000000..482155856a
--- /dev/null
+++ b/meta-python/recipes-devtools/python3-gspread/python3-gspread_6.1.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Google Spreadsheets Python API"
+HOMEPAGE = "https://github.com/burnash/gspread"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9488e21983675fa56dc05af558b83e2f"
+
+SRC_URI[sha256sum] = "576b72b628b251d2ee41e02b982d3c714d511d2a5aa3a88e587ed9efc4d6e752"
+
+RDEPENDS:${PN} = " \
+ python3-google-auth \
+ python3-google-auth-oauthlib \
+ python3-strenum \
+ "
+
+inherit pypi python_flit_core
diff --git a/meta-python/recipes-devtools/python3-piccata/python3-piccata_2.0.3.bb b/meta-python/recipes-devtools/python3-piccata/python3-piccata_2.0.3.bb
new file mode 100644
index 0000000000..fadcc32c24
--- /dev/null
+++ b/meta-python/recipes-devtools/python3-piccata/python3-piccata_2.0.3.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Python CoAP Toolkit"
+HOMEPAGE = "https://github.com/NordicSemiconductor/piccata"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e664eb75e2791c2e505e6e1c274e6d4f"
+
+SRCREV = "218d310e3d840715b1c8e67cefd5b6d71a2d7a1a"
+SRC_URI = "git://github.com/NordicSemiconductor/piccata.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+RDEPENDS:${PN} += "python3-core python3-datetime python3-io python3-logging python3-math"
diff --git a/meta-python/recipes-devtools/python3-reedsolo/python3-reedsolo_2.0.13.bb b/meta-python/recipes-devtools/python3-reedsolo/python3-reedsolo_2.0.13.bb
new file mode 100644
index 0000000000..bb5b973d86
--- /dev/null
+++ b/meta-python/recipes-devtools/python3-reedsolo/python3-reedsolo_2.0.13.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Pure-Python Reed Solomon encoder/decoder"
+HOMEPAGE = "https://github.com/tomerfiliba/reedsolomon"
+LICENSE = "MIT-0 | Unlicense"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ffde61aeb8917e70e0257e0a4b6d103c"
+
+SRC_URI[sha256sum] = "71b4121c6860a55899435c552051a19d5f023c50358be4b1c0fa0c6e2f4ac717"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-core"
diff --git a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch
deleted file mode 100644
index 6be56cb908..0000000000
--- a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch
+++ /dev/null
@@ -1,861 +0,0 @@
-Upstream-Status: Backport [https://github.com/wxWidgets/Phoenix/commit/b40ab0f8]
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-From b40ab0f806bdf7aa0c0a51a8c4876ac47754515d Mon Sep 17 00:00:00 2001
-From: Scott Talbert <swt@techie.net>
-Date: Thu, 7 Oct 2021 17:53:05 -0400
-Subject: [PATCH] Update Cython version to fix NanoSVG issues with Python 3.10
-
----
- requirements/devel.txt | 2 +-
- wx/svg/_nanosvg.c | 554 ++++++++++++++++++++++++++---------------
- 2 files changed, 359 insertions(+), 197 deletions(-)
-
-diff --git a/requirements/devel.txt b/requirements/devel.txt
-index 1d427be0..18164bdc 100644
---- a/requirements/devel.txt
-+++ b/requirements/devel.txt
-@@ -9,7 +9,7 @@ wheel
- twine
- requests
- requests[security]
--cython==0.29.21
-+cython==0.29.24
- pytest
- pytest-xdist
- pytest-forked
-diff --git a/wx/svg/_nanosvg.c b/wx/svg/_nanosvg.c
-index d8f1e158..fd4a5a67 100644
---- a/wx/svg/_nanosvg.c
-+++ b/wx/svg/_nanosvg.c
-@@ -1,4 +1,4 @@
--/* Generated by Cython 0.29.21 */
-+/* Generated by Cython 0.29.24 */
-
- /* BEGIN: Cython Metadata
- {
-@@ -33,15 +33,17 @@
- }
- END: Cython Metadata */
-
-+#ifndef PY_SSIZE_T_CLEAN
- #define PY_SSIZE_T_CLEAN
-+#endif /* PY_SSIZE_T_CLEAN */
- #include "Python.h"
- #ifndef Py_PYTHON_H
- #error Python headers needed to compile C extensions, please install development version of Python.
- #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
- #error Cython requires Python 2.6+ or Python 3.3+.
- #else
--#define CYTHON_ABI "0_29_21"
--#define CYTHON_HEX_VERSION 0x001D15F0
-+#define CYTHON_ABI "0_29_24"
-+#define CYTHON_HEX_VERSION 0x001D18F0
- #define CYTHON_FUTURE_DIVISION 0
- #include <stddef.h>
- #ifndef offsetof
-@@ -459,8 +461,12 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
- #endif
- #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
- #define CYTHON_PEP393_ENABLED 1
-+ #if defined(PyUnicode_IS_READY)
- #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\
- 0 : _PyUnicode_Ready((PyObject *)(op)))
-+ #else
-+ #define __Pyx_PyUnicode_READY(op) (0)
-+ #endif
- #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u)
- #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
- #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u)
-@@ -469,7 +475,11 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
- #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
- #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch)
- #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
-+ #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
-+ #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
-+ #else
- #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
-+ #endif
- #else
- #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u))
- #endif
-@@ -1736,33 +1746,38 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
- static void __Pyx_AddTraceback(const char *funcname, int c_line,
- int py_line, const char *filename);
-
-+/* GCCDiagnostics.proto */
-+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
-+#define __Pyx_HAS_GCC_DIAGNOSTIC
-+#endif
-+
- /* CIntToPy.proto */
- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
-
-+/* CIntFromPy.proto */
-+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
-+
- /* CIntToPy.proto */
- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
-
- /* CIntToPy.proto */
- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value);
-
-+/* CIntFromPy.proto */
-+static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *);
-+
- /* CIntToPy.proto */
- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value);
-
-+/* CIntFromPy.proto */
-+static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
-+
- /* CIntToPy.proto */
- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGpaintType(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType value);
-
- /* CIntToPy.proto */
- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value);
-
--/* CIntFromPy.proto */
--static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
--
--/* CIntFromPy.proto */
--static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *);
--
--/* CIntFromPy.proto */
--static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
--
- /* CIntToPy.proto */
- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGfillRule(enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule value);
-
-@@ -1844,6 +1859,7 @@ typedef struct {
- PyObject *gi_qualname;
- PyObject *gi_modulename;
- PyObject *gi_code;
-+ PyObject *gi_frame;
- int resume_label;
- char is_running;
- } __pyx_CoroutineObject;
-@@ -14641,11 +14657,9 @@ if (!__Pyx_RefNanny) {
- #endif
- /*--- Library function declarations ---*/
- /*--- Threads initialization code ---*/
-- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
-- #ifdef WITH_THREAD /* Python build with threading support? */
-+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
- PyEval_InitThreads();
- #endif
-- #endif
- /*--- Module creation code ---*/
- #if CYTHON_PEP489_MULTI_PHASE_INIT
- __pyx_m = __pyx_pyinit_module;
-@@ -16766,7 +16780,7 @@ invalid_keyword:
- #if CYTHON_COMPILING_IN_CPYTHON
- static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
- PyObject *result;
-- ternaryfunc call = func->ob_type->tp_call;
-+ ternaryfunc call = Py_TYPE(func)->tp_call;
- if (unlikely(!call))
- return PyObject_Call(func, arg, kw);
- if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
-@@ -17149,7 +17163,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec
- if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
- return __Pyx_PyObject_CallMethO(func, arg);
- #if CYTHON_FAST_PYCCALL
-- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) {
-+ } else if (__Pyx_PyFastCFunction_Check(func)) {
- return __Pyx_PyCFunction_FastCall(func, &arg, 1);
- #endif
- }
-@@ -18800,7 +18814,8 @@ static PyObject *
- __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
- {
- #if PY_MAJOR_VERSION >= 3
-- return PyUnicode_FromString(m->func.m_ml->ml_name);
-+ Py_INCREF(m->func_qualname);
-+ return m->func_qualname;
- #else
- return PyString_FromString(m->func.m_ml->ml_name);
- #endif
-@@ -19443,37 +19458,6 @@ bad:
- Py_XDECREF(py_frame);
- }
-
--/* CIntToPy */
--static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
-- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
-- const int is_unsigned = neg_one > const_zero;
-- if (is_unsigned) {
-- if (sizeof(long) < sizeof(long)) {
-- return PyInt_FromLong((long) value);
-- } else if (sizeof(long) <= sizeof(unsigned long)) {
-- return PyLong_FromUnsignedLong((unsigned long) value);
--#ifdef HAVE_LONG_LONG
-- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
-- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
--#endif
-- }
-- } else {
-- if (sizeof(long) <= sizeof(long)) {
-- return PyInt_FromLong((long) value);
--#ifdef HAVE_LONG_LONG
-- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
-- return PyLong_FromLongLong((PY_LONG_LONG) value);
--#endif
-- }
-- }
-- {
-- int one = 1; int little = (int)*(unsigned char *)&one;
-- unsigned char *bytes = (unsigned char *)&value;
-- return _PyLong_FromByteArray(bytes, sizeof(long),
-- little, !is_unsigned);
-- }
--}
--
- /* CIntFromPyVerify */
- #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
- __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
-@@ -19497,148 +19481,31 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
- }
-
- /* CIntToPy */
--static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
-- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
-- const int is_unsigned = neg_one > const_zero;
-- if (is_unsigned) {
-- if (sizeof(int) < sizeof(long)) {
-- return PyInt_FromLong((long) value);
-- } else if (sizeof(int) <= sizeof(unsigned long)) {
-- return PyLong_FromUnsignedLong((unsigned long) value);
--#ifdef HAVE_LONG_LONG
-- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
-- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
--#endif
-- }
-- } else {
-- if (sizeof(int) <= sizeof(long)) {
-- return PyInt_FromLong((long) value);
--#ifdef HAVE_LONG_LONG
-- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
-- return PyLong_FromLongLong((PY_LONG_LONG) value);
--#endif
-- }
-- }
-- {
-- int one = 1; int little = (int)*(unsigned char *)&one;
-- unsigned char *bytes = (unsigned char *)&value;
-- return _PyLong_FromByteArray(bytes, sizeof(int),
-- little, !is_unsigned);
-- }
--}
--
--/* CIntToPy */
--static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value) {
-- const char neg_one = (char) ((char) 0 - (char) 1), const_zero = (char) 0;
-- const int is_unsigned = neg_one > const_zero;
-- if (is_unsigned) {
-- if (sizeof(char) < sizeof(long)) {
-- return PyInt_FromLong((long) value);
-- } else if (sizeof(char) <= sizeof(unsigned long)) {
-- return PyLong_FromUnsignedLong((unsigned long) value);
--#ifdef HAVE_LONG_LONG
-- } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) {
-- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
--#endif
-- }
-- } else {
-- if (sizeof(char) <= sizeof(long)) {
-- return PyInt_FromLong((long) value);
--#ifdef HAVE_LONG_LONG
-- } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) {
-- return PyLong_FromLongLong((PY_LONG_LONG) value);
--#endif
-- }
-- }
-- {
-- int one = 1; int little = (int)*(unsigned char *)&one;
-- unsigned char *bytes = (unsigned char *)&value;
-- return _PyLong_FromByteArray(bytes, sizeof(char),
-- little, !is_unsigned);
-- }
--}
--
--/* CIntToPy */
--static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) {
-- const unsigned char neg_one = (unsigned char) ((unsigned char) 0 - (unsigned char) 1), const_zero = (unsigned char) 0;
-- const int is_unsigned = neg_one > const_zero;
-- if (is_unsigned) {
-- if (sizeof(unsigned char) < sizeof(long)) {
-- return PyInt_FromLong((long) value);
-- } else if (sizeof(unsigned char) <= sizeof(unsigned long)) {
-- return PyLong_FromUnsignedLong((unsigned long) value);
--#ifdef HAVE_LONG_LONG
-- } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) {
-- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
--#endif
-- }
-- } else {
-- if (sizeof(unsigned char) <= sizeof(long)) {
-- return PyInt_FromLong((long) value);
--#ifdef HAVE_LONG_LONG
-- } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) {
-- return PyLong_FromLongLong((PY_LONG_LONG) value);
--#endif
-- }
-- }
-- {
-- int one = 1; int little = (int)*(unsigned char *)&one;
-- unsigned char *bytes = (unsigned char *)&value;
-- return _PyLong_FromByteArray(bytes, sizeof(unsigned char),
-- little, !is_unsigned);
-- }
--}
--
--/* CIntToPy */
--static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGpaintType(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType value) {
-- const enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) 0;
-- const int is_unsigned = neg_one > const_zero;
-- if (is_unsigned) {
-- if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) < sizeof(long)) {
-- return PyInt_FromLong((long) value);
-- } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(unsigned long)) {
-- return PyLong_FromUnsignedLong((unsigned long) value);
--#ifdef HAVE_LONG_LONG
-- } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(unsigned PY_LONG_LONG)) {
-- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
-+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
- #endif
-- }
-- } else {
-- if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(long)) {
-- return PyInt_FromLong((long) value);
--#ifdef HAVE_LONG_LONG
-- } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(PY_LONG_LONG)) {
-- return PyLong_FromLongLong((PY_LONG_LONG) value);
-+ const long neg_one = (long) -1, const_zero = (long) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
- #endif
-- }
-- }
-- {
-- int one = 1; int little = (int)*(unsigned char *)&one;
-- unsigned char *bytes = (unsigned char *)&value;
-- return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType),
-- little, !is_unsigned);
-- }
--}
--
--/* CIntToPy */
--static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) {
-- const unsigned int neg_one = (unsigned int) ((unsigned int) 0 - (unsigned int) 1), const_zero = (unsigned int) 0;
- const int is_unsigned = neg_one > const_zero;
- if (is_unsigned) {
-- if (sizeof(unsigned int) < sizeof(long)) {
-+ if (sizeof(long) < sizeof(long)) {
- return PyInt_FromLong((long) value);
-- } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
-+ } else if (sizeof(long) <= sizeof(unsigned long)) {
- return PyLong_FromUnsignedLong((unsigned long) value);
- #ifdef HAVE_LONG_LONG
-- } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
-+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
- #endif
- }
- } else {
-- if (sizeof(unsigned int) <= sizeof(long)) {
-+ if (sizeof(long) <= sizeof(long)) {
- return PyInt_FromLong((long) value);
- #ifdef HAVE_LONG_LONG
-- } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
-+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
- return PyLong_FromLongLong((PY_LONG_LONG) value);
- #endif
- }
-@@ -19646,14 +19513,21 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value)
- {
- int one = 1; int little = (int)*(unsigned char *)&one;
- unsigned char *bytes = (unsigned char *)&value;
-- return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
-+ return _PyLong_FromByteArray(bytes, sizeof(long),
- little, !is_unsigned);
- }
- }
-
- /* CIntFromPy */
- static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
-- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const int neg_one = (int) -1, const_zero = (int) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
- const int is_unsigned = neg_one > const_zero;
- #if PY_MAJOR_VERSION < 3
- if (likely(PyInt_Check(x))) {
-@@ -19840,9 +19714,92 @@ raise_neg_overflow:
- return (int) -1;
- }
-
-+/* CIntToPy */
-+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const int neg_one = (int) -1, const_zero = (int) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
-+ const int is_unsigned = neg_one > const_zero;
-+ if (is_unsigned) {
-+ if (sizeof(int) < sizeof(long)) {
-+ return PyInt_FromLong((long) value);
-+ } else if (sizeof(int) <= sizeof(unsigned long)) {
-+ return PyLong_FromUnsignedLong((unsigned long) value);
-+#ifdef HAVE_LONG_LONG
-+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
-+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
-+#endif
-+ }
-+ } else {
-+ if (sizeof(int) <= sizeof(long)) {
-+ return PyInt_FromLong((long) value);
-+#ifdef HAVE_LONG_LONG
-+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
-+ return PyLong_FromLongLong((PY_LONG_LONG) value);
-+#endif
-+ }
-+ }
-+ {
-+ int one = 1; int little = (int)*(unsigned char *)&one;
-+ unsigned char *bytes = (unsigned char *)&value;
-+ return _PyLong_FromByteArray(bytes, sizeof(int),
-+ little, !is_unsigned);
-+ }
-+}
-+
-+/* CIntToPy */
-+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_char(char value) {
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const char neg_one = (char) -1, const_zero = (char) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
-+ const int is_unsigned = neg_one > const_zero;
-+ if (is_unsigned) {
-+ if (sizeof(char) < sizeof(long)) {
-+ return PyInt_FromLong((long) value);
-+ } else if (sizeof(char) <= sizeof(unsigned long)) {
-+ return PyLong_FromUnsignedLong((unsigned long) value);
-+#ifdef HAVE_LONG_LONG
-+ } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) {
-+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
-+#endif
-+ }
-+ } else {
-+ if (sizeof(char) <= sizeof(long)) {
-+ return PyInt_FromLong((long) value);
-+#ifdef HAVE_LONG_LONG
-+ } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) {
-+ return PyLong_FromLongLong((PY_LONG_LONG) value);
-+#endif
-+ }
-+ }
-+ {
-+ int one = 1; int little = (int)*(unsigned char *)&one;
-+ unsigned char *bytes = (unsigned char *)&value;
-+ return _PyLong_FromByteArray(bytes, sizeof(char),
-+ little, !is_unsigned);
-+ }
-+}
-+
- /* CIntFromPy */
- static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) {
-- const char neg_one = (char) ((char) 0 - (char) 1), const_zero = (char) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const char neg_one = (char) -1, const_zero = (char) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
- const int is_unsigned = neg_one > const_zero;
- #if PY_MAJOR_VERSION < 3
- if (likely(PyInt_Check(x))) {
-@@ -20029,9 +19986,54 @@ raise_neg_overflow:
- return (char) -1;
- }
-
-+/* CIntToPy */
-+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) {
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const unsigned char neg_one = (unsigned char) -1, const_zero = (unsigned char) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
-+ const int is_unsigned = neg_one > const_zero;
-+ if (is_unsigned) {
-+ if (sizeof(unsigned char) < sizeof(long)) {
-+ return PyInt_FromLong((long) value);
-+ } else if (sizeof(unsigned char) <= sizeof(unsigned long)) {
-+ return PyLong_FromUnsignedLong((unsigned long) value);
-+#ifdef HAVE_LONG_LONG
-+ } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) {
-+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
-+#endif
-+ }
-+ } else {
-+ if (sizeof(unsigned char) <= sizeof(long)) {
-+ return PyInt_FromLong((long) value);
-+#ifdef HAVE_LONG_LONG
-+ } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) {
-+ return PyLong_FromLongLong((PY_LONG_LONG) value);
-+#endif
-+ }
-+ }
-+ {
-+ int one = 1; int little = (int)*(unsigned char *)&one;
-+ unsigned char *bytes = (unsigned char *)&value;
-+ return _PyLong_FromByteArray(bytes, sizeof(unsigned char),
-+ little, !is_unsigned);
-+ }
-+}
-+
- /* CIntFromPy */
- static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
-- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const long neg_one = (long) -1, const_zero = (long) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
- const int is_unsigned = neg_one > const_zero;
- #if PY_MAJOR_VERSION < 3
- if (likely(PyInt_Check(x))) {
-@@ -20218,9 +20220,92 @@ raise_neg_overflow:
- return (long) -1;
- }
-
-+/* CIntToPy */
-+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGpaintType(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType value) {
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
-+ const int is_unsigned = neg_one > const_zero;
-+ if (is_unsigned) {
-+ if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) < sizeof(long)) {
-+ return PyInt_FromLong((long) value);
-+ } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(unsigned long)) {
-+ return PyLong_FromUnsignedLong((unsigned long) value);
-+#ifdef HAVE_LONG_LONG
-+ } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(unsigned PY_LONG_LONG)) {
-+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
-+#endif
-+ }
-+ } else {
-+ if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(long)) {
-+ return PyInt_FromLong((long) value);
-+#ifdef HAVE_LONG_LONG
-+ } else if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType) <= sizeof(PY_LONG_LONG)) {
-+ return PyLong_FromLongLong((PY_LONG_LONG) value);
-+#endif
-+ }
-+ }
-+ {
-+ int one = 1; int little = (int)*(unsigned char *)&one;
-+ unsigned char *bytes = (unsigned char *)&value;
-+ return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGpaintType),
-+ little, !is_unsigned);
-+ }
-+}
-+
-+/* CIntToPy */
-+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) {
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
-+ const int is_unsigned = neg_one > const_zero;
-+ if (is_unsigned) {
-+ if (sizeof(unsigned int) < sizeof(long)) {
-+ return PyInt_FromLong((long) value);
-+ } else if (sizeof(unsigned int) <= sizeof(unsigned long)) {
-+ return PyLong_FromUnsignedLong((unsigned long) value);
-+#ifdef HAVE_LONG_LONG
-+ } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
-+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
-+#endif
-+ }
-+ } else {
-+ if (sizeof(unsigned int) <= sizeof(long)) {
-+ return PyInt_FromLong((long) value);
-+#ifdef HAVE_LONG_LONG
-+ } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
-+ return PyLong_FromLongLong((PY_LONG_LONG) value);
-+#endif
-+ }
-+ }
-+ {
-+ int one = 1; int little = (int)*(unsigned char *)&one;
-+ unsigned char *bytes = (unsigned char *)&value;
-+ return _PyLong_FromByteArray(bytes, sizeof(unsigned int),
-+ little, !is_unsigned);
-+ }
-+}
-+
- /* CIntToPy */
- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGfillRule(enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule value) {
-- const enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
- const int is_unsigned = neg_one > const_zero;
- if (is_unsigned) {
- if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGfillRule) < sizeof(long)) {
-@@ -20251,7 +20336,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg
-
- /* CIntToPy */
- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGflags(enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags value) {
-- const enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
- const int is_unsigned = neg_one > const_zero;
- if (is_unsigned) {
- if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGflags) < sizeof(long)) {
-@@ -20282,7 +20374,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg
-
- /* CIntToPy */
- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGlineCap(enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap value) {
-- const enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
- const int is_unsigned = neg_one > const_zero;
- if (is_unsigned) {
- if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineCap) < sizeof(long)) {
-@@ -20313,7 +20412,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg
-
- /* CIntToPy */
- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin(enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin value) {
-- const enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
- const int is_unsigned = neg_one > const_zero;
- if (is_unsigned) {
- if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGlineJoin) < sizeof(long)) {
-@@ -20344,7 +20450,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg
-
- /* CIntToPy */
- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_2wx_3svg_8_nanosvg_SVGspreadType(enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType value) {
-- const enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) ((enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) 0 - (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) 1), const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-+ const enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType neg_one = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) -1, const_zero = (enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) 0;
-+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
-+#pragma GCC diagnostic pop
-+#endif
- const int is_unsigned = neg_one > const_zero;
- if (is_unsigned) {
- if (sizeof(enum __pyx_t_2wx_3svg_8_nanosvg_SVGspreadType) < sizeof(long)) {
-@@ -20907,6 +21020,30 @@ PyObject *__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject* gen, PyObject *re
- }
- return retval;
- }
-+#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
-+static CYTHON_INLINE
-+PyObject *__Pyx_PyGen_Send(PyGenObject *gen, PyObject *arg) {
-+#if PY_VERSION_HEX <= 0x030A00A1
-+ return _PyGen_Send(gen, arg);
-+#else
-+ PyObject *result;
-+ if (PyIter_Send((PyObject*)gen, arg ? arg : Py_None, &result) == PYGEN_RETURN) {
-+ if (PyAsyncGen_CheckExact(gen)) {
-+ assert(result == Py_None);
-+ PyErr_SetNone(PyExc_StopAsyncIteration);
-+ }
-+ else if (result == Py_None) {
-+ PyErr_SetNone(PyExc_StopIteration);
-+ }
-+ else {
-+ _PyGen_SetStopIterationValue(result);
-+ }
-+ Py_CLEAR(result);
-+ }
-+ return result;
-+#endif
-+}
-+#endif
- static CYTHON_INLINE
- PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) {
- PyObject *ret;
-@@ -20943,12 +21080,12 @@ static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
- #endif
- #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
- if (PyGen_CheckExact(yf)) {
-- ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
-+ ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
- } else
- #endif
- #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
- if (PyCoro_CheckExact(yf)) {
-- ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
-+ ret = __Pyx_PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
- } else
- #endif
- {
-@@ -21032,7 +21169,7 @@ static PyObject *__Pyx_Generator_Next(PyObject *self) {
- #endif
- #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
- if (PyGen_CheckExact(yf)) {
-- ret = _PyGen_Send((PyGenObject*)yf, NULL);
-+ ret = __Pyx_PyGen_Send((PyGenObject*)yf, NULL);
- } else
- #endif
- #ifdef __Pyx_Coroutine_USED
-@@ -21192,6 +21329,7 @@ static int __Pyx_Coroutine_clear(PyObject *self) {
- }
- #endif
- Py_CLEAR(gen->gi_code);
-+ Py_CLEAR(gen->gi_frame);
- Py_CLEAR(gen->gi_name);
- Py_CLEAR(gen->gi_qualname);
- Py_CLEAR(gen->gi_modulename);
-@@ -21208,7 +21346,7 @@ static void __Pyx_Coroutine_dealloc(PyObject *self) {
- if (PyObject_CallFinalizerFromDealloc(self))
- #else
- Py_TYPE(gen)->tp_del(self);
-- if (self->ob_refcnt > 0)
-+ if (Py_REFCNT(self) > 0)
- #endif
- {
- return;
-@@ -21235,7 +21373,7 @@ static void __Pyx_Coroutine_del(PyObject *self) {
- }
- #if !CYTHON_USE_TP_FINALIZE
- assert(self->ob_refcnt == 0);
-- self->ob_refcnt = 1;
-+ __Pyx_SET_REFCNT(self, 1);
- #endif
- __Pyx_PyThreadState_assign
- __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
-@@ -21302,17 +21440,17 @@ static void __Pyx_Coroutine_del(PyObject *self) {
- }
- __Pyx_ErrRestore(error_type, error_value, error_traceback);
- #if !CYTHON_USE_TP_FINALIZE
-- assert(self->ob_refcnt > 0);
-+ assert(Py_REFCNT(self) > 0);
- if (--self->ob_refcnt == 0) {
- return;
- }
- {
-- Py_ssize_t refcnt = self->ob_refcnt;
-+ Py_ssize_t refcnt = Py_REFCNT(self);
- _Py_NewReference(self);
-- self->ob_refcnt = refcnt;
-+ __Pyx_SET_REFCNT(self, refcnt);
- }
- #if CYTHON_COMPILING_IN_CPYTHON
-- assert(PyType_IS_GC(self->ob_type) &&
-+ assert(PyType_IS_GC(Py_TYPE(self)) &&
- _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
- _Py_DEC_REFTOTAL;
- #endif
-@@ -21378,6 +21516,27 @@ __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHO
- Py_XDECREF(tmp);
- return 0;
- }
-+static PyObject *
-+__Pyx_Coroutine_get_frame(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
-+{
-+ PyObject *frame = self->gi_frame;
-+ if (!frame) {
-+ if (unlikely(!self->gi_code)) {
-+ Py_RETURN_NONE;
-+ }
-+ frame = (PyObject *) PyFrame_New(
-+ PyThreadState_Get(), /*PyThreadState *tstate,*/
-+ (PyCodeObject*) self->gi_code, /*PyCodeObject *code,*/
-+ __pyx_d, /*PyObject *globals,*/
-+ 0 /*PyObject *locals*/
-+ );
-+ if (unlikely(!frame))
-+ return NULL;
-+ self->gi_frame = frame;
-+ }
-+ Py_INCREF(frame);
-+ return frame;
-+}
- static __pyx_CoroutineObject *__Pyx__Coroutine_New(
- PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
- PyObject *name, PyObject *qualname, PyObject *module_name) {
-@@ -21411,6 +21570,7 @@ static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
- gen->gi_modulename = module_name;
- Py_XINCREF(code);
- gen->gi_code = code;
-+ gen->gi_frame = NULL;
- PyObject_GC_Track(gen);
- return gen;
- }
-@@ -21534,6 +21694,8 @@ static PyGetSetDef __pyx_Generator_getsets[] = {
- (char*) PyDoc_STR("name of the generator"), 0},
- {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
- (char*) PyDoc_STR("qualified name of the generator"), 0},
-+ {(char *) "gi_frame", (getter)__Pyx_Coroutine_get_frame, NULL,
-+ (char*) PyDoc_STR("Frame of the generator"), 0},
- {0, 0, 0, 0, 0}
- };
- static PyTypeObject __pyx_GeneratorType_type = {
---
-2.33.0
-
diff --git a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-sip-Conditionally-use-GetAssertStackTrace-under-USE_.patch b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-sip-Conditionally-use-GetAssertStackTrace-under-USE_.patch
new file mode 100644
index 0000000000..f8a3061ae0
--- /dev/null
+++ b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-sip-Conditionally-use-GetAssertStackTrace-under-USE_.patch
@@ -0,0 +1,32 @@
+From b9f95c06b2e7a525f4f93d705976882e8dcba6ab Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 20 Dec 2022 09:46:31 -0800
+Subject: [PATCH] sip: Conditionally use GetAssertStackTrace under
+ USE_STACKWALKER
+
+Musl eg. does not implement stack walker ( backtrace ) therefore it gets
+disabled for wxwidgets on those systems. This needs to be checked before using
+GetAssertStackTrace()
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sip/cpp/sip_corewxAppTraits.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/sip/cpp/sip_corewxAppTraits.cpp b/sip/cpp/sip_corewxAppTraits.cpp
+index 9c9f9d5b..1d2d2f90 100644
+--- a/sip/cpp/sip_corewxAppTraits.cpp
++++ b/sip/cpp/sip_corewxAppTraits.cpp
+@@ -471,7 +471,11 @@ static PyObject *meth_wxAppTraits_GetAssertStackTrace(PyObject *sipSelf, PyObjec
+ PyErr_Clear();
+
+ Py_BEGIN_ALLOW_THREADS
++#if wxUSE_STACKWALKER
+ sipRes = new ::wxString((sipSelfWasArg ? sipCpp-> ::wxAppTraits::GetAssertStackTrace() : sipCpp->GetAssertStackTrace()));
++#else
++ sipRes = new ::wxString("");
++#endif
+ Py_END_ALLOW_THREADS
+
+ if (PyErr_Occurred())
diff --git a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/not-overwrite-cflags-cxxflags.patch b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/not-overwrite-cflags-cxxflags.patch
new file mode 100644
index 0000000000..67f7949b38
--- /dev/null
+++ b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/not-overwrite-cflags-cxxflags.patch
@@ -0,0 +1,28 @@
+Not overwrite CFLAGS and CXXFLAGS. It also avoid buildpaths qa issue:
+
+ WARNING: python3-wxgtk4-4.2.0-r0 do_package_qa: QA Issue: File
+ /usr/lib64/python3.11/site-packages/wx/.debug/_xml.cpython-311-aarch64-linux-gnu.so
+ in package python3-wxgtk4-dbg contains reference to TMPDIR [buildpaths]
+
+Upstream-Status: Pending [oe specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ wscript | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/wscript b/wscript
+index 067b307..50d96d1 100644
+--- a/wscript
++++ b/wscript
+@@ -195,8 +195,8 @@ def configure(conf):
+ cfg.finishSetup(conf.env.wx_config, conf.env.debug,
+ 'mingw32' if isWindows and not conf.env.use_msvc else None)
+
+- conf.env.CFLAGS = cfg.cflags[:]
+- conf.env.CXXFLAGS = cfg.cxxflags[:]
++ #conf.env.CFLAGS = cfg.cflags[:]
++ #conf.env.CXXFLAGS = cfg.cxxflags[:]
+ conf.env.CFLAGS_WX = list()
+ conf.env.CXXFLAGS_WX = list()
+ conf.env.CFLAGS_WXPY = list()
diff --git a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/sip-fix-override-functions.patch b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/sip-fix-override-functions.patch
deleted file mode 100644
index 51b9a462b1..0000000000
--- a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/sip-fix-override-functions.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-It fails to compile with errors:
-
-| ../../../../sip/cpp/sip_gridwxGridEvent.cpp:35:9: error: 'int sipwxGridEvent::GetRow()'
- marked 'override', but does not override
-| 35 | int GetRow() SIP_OVERRIDE;
-| | ^~~~~~
-| ../../../../sip/cpp/sip_gridwxGridEvent.cpp:36:9: error: 'int sipwxGridEvent::GetCol()'
- marked 'override', but does not over ride
-| 36 | int GetCol() SIP_OVERRIDE;
-| | ^~~~~~
-
-Make these functions non-override.
-
-Upstream-Status: Pending
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
- sip/cpp/sip_gridwxGridEvent.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sip/cpp/sip_gridwxGridEvent.cpp b/sip/cpp/sip_gridwxGridEvent.cpp
-index 0830b677..314aec94 100644
---- a/sip/cpp/sip_gridwxGridEvent.cpp
-+++ b/sip/cpp/sip_gridwxGridEvent.cpp
-@@ -32,8 +32,8 @@ public:
- * this class.
- */
- protected:
-- int GetRow() SIP_OVERRIDE;
-- int GetCol() SIP_OVERRIDE;
-+ int GetRow() ;
-+ int GetCol() ;
- ::wxEvent* Clone() const SIP_OVERRIDE;
- ::wxEventCategory GetEventCategory() const SIP_OVERRIDE;
-
diff --git a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb
deleted file mode 100644
index 4d739b86f7..0000000000
--- a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.1.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-DESCRIPTION = "Python3 interface to the wxWidgets Cross-platform C++ GUI toolkit."
-HOMEPAGE = "http://www.wxpython.org"
-
-LICENSE = "WXwindows"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fce1d18e2d633d41786c0a8dfbc80917"
-
-DEPENDS = "wxwidgets-native wxwidgets"
-
-PYPI_PACKAGE = "wxPython"
-
-SRC_URI += "file://add-back-option-build-base.patch \
- file://wxgtk-fixup-build-scripts.patch \
- file://sip-fix-override-functions.patch \
- file://0001-Update-Cython-version-to-fix-NanoSVG-issues-with-Pyt.patch \
- "
-SRC_URI[sha256sum] = "00e5e3180ac7f2852f342ad341d57c44e7e4326de0b550b9a5c4a8361b6c3528"
-
-S = "${WORKDIR}/wxPython-${PV}"
-
-inherit pypi setuptools3 pkgconfig features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-export WX_CONFIG = "'${RECIPE_SYSROOT_NATIVE}${bindir}/wx-config --prefix=${STAGING_EXECPREFIXDIR} --baselib=${baselib}'"
-
-RDEPENDS:${PN} = "\
- python3-difflib \
- python3-image \
- python3-numpy \
- python3-pillow \
- python3-pprint \
- python3-pycairo \
- python3-six \
- python3-xml \
-"
diff --git a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.2.1.bb b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.2.1.bb
new file mode 100644
index 0000000000..fb011cb71b
--- /dev/null
+++ b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.2.1.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "Python3 interface to the wxWidgets Cross-platform C++ GUI toolkit."
+HOMEPAGE = "http://www.wxpython.org"
+
+LICENSE = "LGPL-2.0-only & WXwindows"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=bdabf9e11191e2b9d3b6aef5f338ec00"
+
+DEPENDS = "python3-attrdict3-native python3-six-native wxwidgets-native \
+ wxwidgets \
+ "
+
+PYPI_PACKAGE = "wxPython"
+
+SRC_URI += "file://add-back-option-build-base.patch \
+ file://wxgtk-fixup-build-scripts.patch \
+ file://not-overwrite-cflags-cxxflags.patch \
+ file://0001-sip-Conditionally-use-GetAssertStackTrace-under-USE_.patch \
+ "
+SRC_URI[sha256sum] = "e48de211a6606bf072ec3fa778771d6b746c00b7f4b970eb58728ddf56d13d5c"
+
+S = "${WORKDIR}/wxPython-${PV}"
+
+inherit pypi setuptools3 pkgconfig features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+export WX_CONFIG = "'${RECIPE_SYSROOT_NATIVE}${bindir}/wx-config --prefix=${STAGING_EXECPREFIXDIR} --baselib=${baselib}'"
+
+RDEPENDS:${PN} = "\
+ python3-difflib \
+ python3-image \
+ python3-numpy \
+ python3-pillow \
+ python3-pip \
+ python3-pprint \
+ python3-pycairo \
+ python3-six \
+ python3-xml \
+"
diff --git a/meta-python/recipes-devtools/python3_oauth2client/python3-oauth2client_4.1.3.bb b/meta-python/recipes-devtools/python3_oauth2client/python3-oauth2client_4.1.3.bb
new file mode 100644
index 0000000000..d87e289c5f
--- /dev/null
+++ b/meta-python/recipes-devtools/python3_oauth2client/python3-oauth2client_4.1.3.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "OAuth 2.0 client library"
+
+HOMEPAGE = "http://github.com/google/oauth2client/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=038e1390e94fe637991fa5569daa62bc"
+
+inherit pypi
+
+SRC_URI[sha256sum] = "d486741e451287f69568a4d26d70d9acd73a2bbfa275746c535b4209891cccc6"
+
+RDEPENDS:${PN} += " \
+ python3-httplib2 \
+ python3-pyasn1 \
+ python3-pyasn1-modules \
+ python3-rsa \
+ python3-six \
+ "
+
+inherit setuptools3
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch
index 5b388599bf..d277e8b0f7 100644
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch
@@ -1,4 +1,4 @@
-From 713cf821ebe17f9e1771502a85e0905ea04dafae Mon Sep 17 00:00:00 2001
+From 8a18a6c1dea7cce6669d0eeb4230e85aa88d8e44 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Fri, 23 Nov 2018 17:03:58 +0800
Subject: [PATCH 02/11] run_program support timeout
@@ -7,14 +7,14 @@ Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
- blivet/util.py | 70 ++++++++++++++++++++++++++++++++++------------------------
+ blivet/util.py | 70 +++++++++++++++++++++++++++++---------------------
1 file changed, 41 insertions(+), 29 deletions(-)
diff --git a/blivet/util.py b/blivet/util.py
-index 4eac8b9..4f05076 100644
+index f8a8f88..a5da7b6 100644
--- a/blivet/util.py
+++ b/blivet/util.py
-@@ -158,6 +158,30 @@ class Path(str):
+@@ -171,6 +171,30 @@ class Path(str):
def __hash__(self):
return self._path.__hash__()
@@ -45,7 +45,7 @@ index 4eac8b9..4f05076 100644
def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=False, binary_output=False):
if env_prune is None:
-@@ -180,35 +204,23 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -193,35 +217,23 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
stderr_dir = subprocess.STDOUT
else:
stderr_dir = subprocess.PIPE
@@ -98,6 +98,3 @@ index 4eac8b9..4f05076 100644
def run_program(*args, **kwargs):
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch
index 861b2cdd46..8ab65a3e22 100644
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch
@@ -1,4 +1,4 @@
-From 5d5436dfa3bdde7b4e87ce5a40cbc724199847d6 Mon Sep 17 00:00:00 2001
+From 112b825541f498762f373cfc9918e444dda74095 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Mon, 8 May 2017 16:18:02 +0800
Subject: [PATCH 03/11] support infinit timeout
@@ -11,10 +11,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/blivet/util.py b/blivet/util.py
-index 4f05076..7e89949 100644
+index a5da7b6..58117ae 100644
--- a/blivet/util.py
+++ b/blivet/util.py
-@@ -158,6 +158,7 @@ class Path(str):
+@@ -171,6 +171,7 @@ class Path(str):
def __hash__(self):
return self._path.__hash__()
@@ -22,7 +22,7 @@ index 4f05076..7e89949 100644
def timeout_command(argv, timeout, *args, **kwargs):
"""call shell-command and either return its output or kill it
if it doesn't normally exit within timeout seconds and return None"""
-@@ -169,7 +170,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
+@@ -182,7 +183,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
while proc.poll() is None:
time.sleep(0.1)
now = datetime.datetime.now()
@@ -31,7 +31,7 @@ index 4f05076..7e89949 100644
os.kill(proc.pid, signal.SIGKILL)
os.waitpid(-1, os.WNOHANG)
program_log.debug("%d seconds timeout" % timeout)
-@@ -183,7 +184,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
+@@ -196,7 +197,7 @@ def timeout_command(argv, timeout, *args, **kwargs):
program_log.debug("Return code: %d", proc.returncode)
return (proc.returncode, proc.stdout.read())
@@ -40,7 +40,7 @@ index 4f05076..7e89949 100644
if env_prune is None:
env_prune = []
-@@ -192,7 +193,10 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -205,7 +206,10 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
os.chroot(root)
with program_log_lock: # pylint: disable=not-context-manager
@@ -52,7 +52,7 @@ index 4f05076..7e89949 100644
env = os.environ.copy()
env.update({"LC_ALL": "C",
-@@ -205,7 +209,7 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -218,7 +222,7 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
else:
stderr_dir = subprocess.PIPE
@@ -61,6 +61,3 @@ index 4f05076..7e89949 100644
stdin=stdin,
stdout=subprocess.PIPE,
stderr=stderr_dir,
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0004-fix-new.roots-object-is-not-iterable.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0004-fix-new.roots-object-is-not-iterable.patch
deleted file mode 100644
index 526a3b1fb2..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0004-fix-new.roots-object-is-not-iterable.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 3bb8d08bdec2f79bb13c0a44b81718d26e5bdabc Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 16:30:20 +0800
-Subject: [PATCH 04/11] fix new.roots object is not iterable
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/blivet.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/blivet.py b/blivet/blivet.py
-index ea08837..91c92b2 100644
---- a/blivet/blivet.py
-+++ b/blivet/blivet.py
-@@ -1206,7 +1206,7 @@ class Blivet(object):
- p = partition.disk.format.parted_disk.getPartitionByPath(partition.path)
- partition.parted_partition = p
-
-- for root in new.roots:
-+ for root in new.roots or []:
- root.swaps = [new.devicetree.get_device_by_id(d.id, hidden=True) for d in root.swaps]
- root.swaps = [s for s in root.swaps if s]
-
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch
index 9c5d53b430..795e4f1206 100644
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch
@@ -1,4 +1,4 @@
-From f783b9b00da5df176fcd7927b752f574ca6db319 Mon Sep 17 00:00:00 2001
+From c645c83628b2290855cbd225e13c038ab75a7f74 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Fri, 26 Aug 2016 02:02:49 -0400
Subject: [PATCH 05/11] fix incorrect timeout while system time changed
@@ -22,10 +22,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/blivet/util.py b/blivet/util.py
-index 7e89949..5571e73 100644
+index 58117ae..5bc5804 100644
--- a/blivet/util.py
+++ b/blivet/util.py
-@@ -163,14 +163,14 @@ def timeout_command(argv, timeout, *args, **kwargs):
+@@ -176,14 +176,14 @@ def timeout_command(argv, timeout, *args, **kwargs):
"""call shell-command and either return its output or kill it
if it doesn't normally exit within timeout seconds and return None"""
import subprocess, datetime, os, time, signal
@@ -43,6 +43,3 @@ index 7e89949..5571e73 100644
os.kill(proc.pid, signal.SIGKILL)
os.waitpid(-1, os.WNOHANG)
program_log.debug("%d seconds timeout" % timeout)
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
index 2e53a64777..6c53f03db1 100644
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
@@ -1,7 +1,7 @@
-From 8932ae933f2b6acf5e98c9956beff69ae430eed2 Mon Sep 17 00:00:00 2001
+From b55b1023f8f1ad3121928eb9d0ee9902f5474752 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Mon, 8 May 2017 16:33:15 +0800
-Subject: [PATCH 06/11] tweak btrfs packages
+Subject: [PATCH] tweak btrfs packages
In oe-cre/yocto, we name btrfs package with btrfs-tools,
rather than btrfs-progs.
@@ -15,10 +15,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/blivet/devices/btrfs.py b/blivet/devices/btrfs.py
-index cada940..7e4d4b8 100644
+index c446e7e..37c183e 100644
--- a/blivet/devices/btrfs.py
+++ b/blivet/devices/btrfs.py
-@@ -55,7 +55,7 @@ class BTRFSDevice(StorageDevice):
+@@ -58,7 +58,7 @@ class BTRFSDevice(StorageDevice):
""" Base class for BTRFS volume and sub-volume devices. """
_type = "btrfs"
@@ -28,10 +28,10 @@ index cada940..7e4d4b8 100644
def __init__(self, *args, **kwargs):
diff --git a/blivet/formats/fs.py b/blivet/formats/fs.py
-index 81e367f..55e5d57 100644
+index 1e102b6..f16941e 100644
--- a/blivet/formats/fs.py
+++ b/blivet/formats/fs.py
-@@ -926,7 +926,7 @@ class BTRFS(FS):
+@@ -1050,7 +1050,7 @@ class BTRFS(FS):
_formattable = True
_linux_native = True
_supported = True
@@ -40,6 +40,3 @@ index 81e367f..55e5d57 100644
_min_size = Size("256 MiB")
_max_size = Size("16 EiB")
_mkfs_class = fsmkfs.BTRFSMkfs
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
index b2606d7699..809f4e1584 100644
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
@@ -1,4 +1,4 @@
-From f53481dc4a56b8a996628733553e080bb0aafdd7 Mon Sep 17 00:00:00 2001
+From f159d71d742ace5640c7810bcc27365f8fde95a3 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Fri, 23 Nov 2018 17:07:22 +0800
Subject: [PATCH 07/11] invoking mount with infinite timeout
@@ -14,10 +14,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/blivet/util.py b/blivet/util.py
-index 5571e73..02c8033 100644
+index 5bc5804..9de77e1 100644
--- a/blivet/util.py
+++ b/blivet/util.py
-@@ -258,7 +258,7 @@ def mount(device, mountpoint, fstype, options=None):
+@@ -271,7 +271,7 @@ def mount(device, mountpoint, fstype, options=None):
makedirs(mountpoint)
argv = ["mount", "-t", fstype, "-o", options, device, mountpoint]
@@ -26,6 +26,3 @@ index 5571e73..02c8033 100644
def umount(mountpoint):
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
index 1e8bcac47e..d3ab8f8526 100644
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
@@ -1,4 +1,4 @@
-From 12e2579333258d1a690f8718e91b0f217078e886 Mon Sep 17 00:00:00 2001
+From 6a85945c060154581f5a129a6a946258bf9333c4 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Mon, 8 May 2017 03:54:12 -0400
Subject: [PATCH 08/11] use oe variable to replace hardcoded dir
@@ -15,10 +15,10 @@ Signed-off-by: Kai Kang <kai.kang@windriver.com>
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/setup.py b/setup.py
-index b745a79..b5b4258 100644
+index e6bb3f3..700085b 100644
--- a/setup.py
+++ b/setup.py
-@@ -61,10 +61,10 @@ class blivet_sdist(sdist):
+@@ -73,10 +73,10 @@ class blivet_sdist(sdist):
data_files = [
@@ -33,6 +33,3 @@ index b745a79..b5b4258 100644
]
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch
index c441acd173..394a818aa2 100644
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch
@@ -1,4 +1,4 @@
-From 33844f6773a676bd57240954e402ae9a843663a4 Mon Sep 17 00:00:00 2001
+From abadd821acffd5dbc870f86dad3c3a6bf3f2f74f Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Fri, 16 Jun 2017 15:43:00 +0800
Subject: [PATCH 10/11] invoking mkfs with infinite timeout
@@ -18,10 +18,10 @@ Signed-off-by: Kai Kang <kai.kang@windriver.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/blivet/tasks/fsmkfs.py b/blivet/tasks/fsmkfs.py
-index e4a6aaa8..9730f7e5 100644
+index e9daa9e..2174cc3 100644
--- a/blivet/tasks/fsmkfs.py
+++ b/blivet/tasks/fsmkfs.py
-@@ -203,7 +203,7 @@ class FSMkfs(task.BasicApplication, FSMkfsTask):
+@@ -207,7 +207,7 @@ class FSMkfs(task.BasicApplication, FSMkfsTask):
options = options or []
cmd = self._mkfs_command(options, label, set_uuid, nodiscard)
try:
@@ -30,6 +30,3 @@ index e4a6aaa8..9730f7e5 100644
except OSError as e:
raise FSError(e)
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch
index 13c2933f0a..ea4cffa9b3 100644
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch
@@ -1,7 +1,7 @@
-From 21ca2b859a49e96a230d55a7866dfc7ed5d1366c Mon Sep 17 00:00:00 2001
+From 5ee527fab06f9d33b162a6cd0c068d7b3ac2ecb0 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Tue, 6 Mar 2018 17:28:56 +0800
-Subject: [PATCH 11/11] invoking dd with infinite timeout
+Subject: [PATCH] invoking dd with infinite timeout
This large timeout is needed when running on machines with
lots of disks, or with slow disks.
@@ -14,10 +14,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/blivet/devices/partition.py b/blivet/devices/partition.py
-index 623e1c9..141d8ad 100644
+index 2d67be8..a4cf9a0 100644
--- a/blivet/devices/partition.py
+++ b/blivet/devices/partition.py
-@@ -618,7 +618,7 @@ class PartitionDevice(StorageDevice):
+@@ -677,7 +677,7 @@ class PartitionDevice(StorageDevice):
cmd = ["dd", "if=/dev/zero", "of=%s" % device, "bs=%d" % bs,
"seek=%d" % start, "count=%d" % count]
try:
@@ -26,6 +26,3 @@ index 623e1c9..141d8ad 100644
except OSError as e:
log.error(str(e))
finally:
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.3.bb b/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.3.bb
deleted file mode 100644
index bd57604f26..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.3.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-DESCRIPTION = "A python module for system storage configuration"
-HOMEPAGE = "http://fedoraproject.org/wiki/blivet"
-LICENSE = "LGPL-2.0-or-later"
-SECTION = "devel/python"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI += "\
- file://0002-run_program-support-timeout.patch \
- file://0003-support-infinit-timeout.patch \
- file://0004-fix-new.roots-object-is-not-iterable.patch \
- file://0005-fix-incorrect-timeout-while-system-time-changed.patch \
- file://0006-tweak-btrfs-packages.patch \
- file://0007-invoking-mount-with-infinite-timeout.patch \
- file://0008-use-oe-variable-to-replace-hardcoded-dir.patch \
- file://0009-invoking-fsck-with-infinite-timeout.patch \
- file://0010-invoking-mkfs-with-infinite-timeout.patch \
- file://0011-invoking-dd-with-infinite-timeout.patch \
-"
-SRC_URI[sha256sum] = "1b05b77f3ee35d82c7a577a168c9ba0204d3e9a87eb1975e5f9af47700eeff48"
-
-inherit pypi features_check systemd setuptools3_legacy
-
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-RDEPENDS:${PN} += "python3-pykickstart python3-pyudev \
- parted python3-pyparted multipath-tools \
- lsof cryptsetup libblockdev \
- libbytesize \
-"
-
-FILES:${PN} += " \
- ${datadir}/dbus-1/system-services \
-"
-
-SYSTEMD_AUTO_ENABLE = "disable"
-SYSTEMD_SERVICE:${PN} = "blivet.service"
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet_3.9.2.bb b/meta-python/recipes-extended/python-blivet/python3-blivet_3.9.2.bb
new file mode 100644
index 0000000000..f0ce981480
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet_3.9.2.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "A python module for system storage configuration"
+HOMEPAGE = "http://fedoraproject.org/wiki/blivet"
+LICENSE = "LGPL-2.0-or-later"
+SECTION = "devel/python"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI += "\
+ file://0002-run_program-support-timeout.patch \
+ file://0003-support-infinit-timeout.patch \
+ file://0005-fix-incorrect-timeout-while-system-time-changed.patch \
+ file://0006-tweak-btrfs-packages.patch \
+ file://0007-invoking-mount-with-infinite-timeout.patch \
+ file://0008-use-oe-variable-to-replace-hardcoded-dir.patch \
+ file://0009-invoking-fsck-with-infinite-timeout.patch \
+ file://0010-invoking-mkfs-with-infinite-timeout.patch \
+ file://0011-invoking-dd-with-infinite-timeout.patch \
+"
+SRC_URI[sha256sum] = "9d97e37ebba01db28a1e6155cbd71c54fb55e9c2be5921982dc85bed316d8cfe"
+
+inherit pypi features_check systemd setuptools3_legacy
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+RDEPENDS:${PN} += "python3-pykickstart python3-pyudev \
+ parted python3-pyparted multipath-tools \
+ lsof cryptsetup libblockdev \
+ libbytesize \
+"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1/system-services \
+"
+
+SYSTEMD_AUTO_ENABLE = "disable"
+SYSTEMD_SERVICE:${PN} = "blivet.service"
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Use-setuptools-instead-of-distutils-in-setup.py.patch b/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Use-setuptools-instead-of-distutils-in-setup.py.patch
deleted file mode 100644
index c88912bfa0..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Use-setuptools-instead-of-distutils-in-setup.py.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 54014061be2fed20d6c35aba9719ea70a9fea9ea Mon Sep 17 00:00:00 2001
-From: Vojtech Trefny <vtrefny@redhat.com>
-Date: Wed, 1 Sep 2021 08:59:19 +0200
-Subject: [PATCH] Use setuptools instead of distutils in setup.py
-
-The distutils module is deprecated and will be removed in Python
-3.12.
-
-Upstream-Status: Backport [https://github.com/kraj/blivet-gui/commit/54014061be2fed20d6c35aba9719ea70a9fea9ea]
----
- setup.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index aa8ef57..77849a1 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1,7 +1,7 @@
- from __future__ import print_function
-
--from distutils.core import setup
--from distutils.command.sdist import sdist
-+from setuptools import setup
-+from setuptools.command.sdist import sdist
- import glob
- import sys
-
---
-2.35.1
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivetgui/0002-Use-symbolic-list-add-and-edit-icons.patch b/meta-python/recipes-extended/python-blivet/python3-blivetgui/0002-Use-symbolic-list-add-and-edit-icons.patch
deleted file mode 100644
index 3a95859ad7..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivetgui/0002-Use-symbolic-list-add-and-edit-icons.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-Upstream-Status: Backport [https://github.com/storaged-project/blivet-gui/commit/eb8ec968]
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-From eb8ec968d1ee8b4b710568b1eb8536296f90751e Mon Sep 17 00:00:00 2001
-From: Adam Williamson <awilliam@redhat.com>
-Date: Thu, 17 Feb 2022 11:16:22 -0800
-Subject: [PATCH] Use symbolic list-add and edit- icons (Adwaita dropped old
- ones)
-
-adwaita-icon-theme 42 no longer includes the non-symbolic icons
-for these names. The choices are to switch to symbolic ones or
-carry the non-symbolic ones downstream.
-
-Signed-off-by: Adam Williamson <awilliam@redhat.com>
----
- blivetgui/list_actions.py | 8 ++++----
- blivetgui/processing_window.py | 6 +++---
- 2 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/blivetgui/list_actions.py b/blivetgui/list_actions.py
-index b7c1f9c..5388feb 100644
---- a/blivetgui/list_actions.py
-+++ b/blivetgui/list_actions.py
-@@ -48,10 +48,10 @@ def __init__(self, blivet_gui):
- self.blivet_gui = blivet_gui
-
- icon_theme = Gtk.IconTheme.get_default() # pylint: disable=no-value-for-parameter
-- icon_add = Gtk.IconTheme.load_icon(icon_theme, "list-add", 16, 0)
-- icon_delete = Gtk.IconTheme.load_icon(icon_theme, "edit-delete", 16, 0)
-- icon_edit = Gtk.IconTheme.load_icon(icon_theme, "edit-select-all", 16, 0)
-- icon_misc = Gtk.IconTheme.load_icon(icon_theme, "edit-paste", 16, 0)
-+ icon_add = Gtk.IconTheme.load_icon(icon_theme, "list-add-symbolic", 16, 0)
-+ icon_delete = Gtk.IconTheme.load_icon(icon_theme, "edit-delete-symbolic", 16, 0)
-+ icon_edit = Gtk.IconTheme.load_icon(icon_theme, "edit-select-all-symbolic", 16, 0)
-+ icon_misc = Gtk.IconTheme.load_icon(icon_theme, "edit-paste-symbolic", 16, 0)
-
- self.action_icons = {"add": icon_add, "delete": icon_delete, "edit": icon_edit,
- "misc": icon_misc}
-diff --git a/blivetgui/processing_window.py b/blivetgui/processing_window.py
-index c400f90..a020ae8 100644
---- a/blivetgui/processing_window.py
-+++ b/blivetgui/processing_window.py
-@@ -93,9 +93,9 @@ def add_action_view(self):
- """
-
- icon_theme = Gtk.IconTheme.get_default() # pylint: disable=no-value-for-parameter
-- icon_add = Gtk.IconTheme.load_icon(icon_theme, "list-add", 16, 0)
-- icon_delete = Gtk.IconTheme.load_icon(icon_theme, "edit-delete", 16, 0)
-- icon_edit = Gtk.IconTheme.load_icon(icon_theme, "edit-select-all", 16, 0)
-+ icon_add = Gtk.IconTheme.load_icon(icon_theme, "list-add-symbolic", 16, 0)
-+ icon_delete = Gtk.IconTheme.load_icon(icon_theme, "edit-delete-symbolic", 16, 0)
-+ icon_edit = Gtk.IconTheme.load_icon(icon_theme, "edit-select-all-symbolic", 16, 0)
-
- actions_list = Gtk.ListStore(GdkPixbuf.Pixbuf, str, GdkPixbuf.Pixbuf)
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.3.0.bb b/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.3.0.bb
deleted file mode 100644
index 29e7a267d2..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.3.0.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-DESCRIPTION = "GUI tool for storage configuration using blivet library"
-HOMEPAGE = "https://github.com/rhinstaller/blivet-gui"
-LICENSE = "GPL-2.0-or-later"
-SECTION = "devel/python"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "42512ee48494cee71febf04078d9774f0146a085"
-SRC_URI = "git://github.com/storaged-project/blivet-gui.git;branch=master;protocol=https \
- file://0001-Use-setuptools-instead-of-distutils-in-setup.py.patch \
- file://0002-Use-symbolic-list-add-and-edit-icons.patch \
- "
-
-inherit features_check
-REQUIRED_DISTRO_FEATURES = "x11 systemd"
-
-inherit setuptools3_legacy python3native
-
-PIP_INSTALL_PACKAGE = "blivet_gui"
-
-RDEPENDS:${PN} = "python3-pygobject python3 \
- python3-blivet gtk+3 \
- python3-pid libreport \
-"
-
-FILES:${PN} += " \
- ${datadir}/* \
- "
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.5.0.bb b/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.5.0.bb
new file mode 100644
index 0000000000..124f36c6e0
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.5.0.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "GUI tool for storage configuration using blivet library"
+HOMEPAGE = "https://github.com/rhinstaller/blivet-gui"
+LICENSE = "GPL-2.0-or-later"
+SECTION = "devel/python"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://github.com/storaged-project/blivet-gui.git;branch=main;protocol=https"
+SRCREV = "626b44610a30ad26734dd20642538caab5a9178a"
+
+S = "${WORKDIR}/git"
+
+inherit features_check setuptools3
+REQUIRED_DISTRO_FEATURES = "x11 systemd gobject-introspection-data"
+
+RDEPENDS:${PN} = "python3-pygobject python3 \
+ python3-blivet gtk+3 \
+ python3-pid libreport \
+"
+
+FILES:${PN} += "${datadir}/*"
diff --git a/meta-python/recipes-extended/python-cson/python3-cson/0001-setup.py-Do-not-poke-at-git-describe-to-find-version.patch b/meta-python/recipes-extended/python-cson/python3-cson/0001-setup.py-Do-not-poke-at-git-describe-to-find-version.patch
new file mode 100644
index 0000000000..dc3f8657ec
--- /dev/null
+++ b/meta-python/recipes-extended/python-cson/python3-cson/0001-setup.py-Do-not-poke-at-git-describe-to-find-version.patch
@@ -0,0 +1,40 @@
+From 0d0ffab004306b1379f247016200ade381d1d181 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 8 Feb 2023 23:03:47 -0800
+Subject: [PATCH] setup.py: Do not poke at git describe to find version
+
+OE uses git snapshot and git describe --tags will emit a string which is
+not PEP440 compliant version scheme. setuptools 67+ is strict about it
+and fails to build. Therefore inject a static version.py from OE
+environment and use that for version number based on PV
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ setup.py | 10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index a77138f..df675cd 100644
+--- a/setup.py
++++ b/setup.py
+@@ -28,14 +28,8 @@ def main():
+ # Also, when git is not available (PyPi package), use stored version.py.
+ version_py = os.path.join(os.path.dirname(__file__), 'version.py')
+
+- try:
+- if sys.version_info < (2, 7) or (3,) <= sys.version_info < (3, 2):
+- version_git = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE).communicate()[0]
+- else:
+- version_git = subprocess.check_output(["git", "describe", "--tags"]).rstrip()
+- except:
+- with open(version_py, 'r') as fh:
+- version_git = open(version_py).read().strip().split('=')[-1].replace('"','')
++ with open(version_py, 'r') as fh:
++ version_git = open(version_py).read().strip().split('=')[-1].replace('"','')
+
+ version_msg = "# Do not edit this file, pipeline versioning is governed by git tags"
+ with open(version_py, 'w') as fh:
+--
+2.39.1
+
diff --git a/meta-python/recipes-extended/python-cson/python3-cson_git.bb b/meta-python/recipes-extended/python-cson/python3-cson_git.bb
index c4fcc61ec0..489733c767 100644
--- a/meta-python/recipes-extended/python-cson/python3-cson_git.bb
+++ b/meta-python/recipes-extended/python-cson/python3-cson_git.bb
@@ -7,17 +7,20 @@ LICENSE = "MIT"
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE;md5=7709d2635e63ab96973055a23c2a4cac"
-SRCREV = "f3f2898c44bb16b951d3e9f2fbf6d1c4158edda2"
-SRC_URI = "git://github.com/gt3389b/python-cson.git;branch=master;protocol=https"
+PV = "1.0.9+1.0.10"
+SRCREV = "69090778bccc5ed124342ba288597fbb2bfa9f39"
+SRC_URI = "git://github.com/gt3389b/python-cson.git;branch=master;protocol=https \
+ file://0001-setup.py-Do-not-poke-at-git-describe-to-find-version.patch"
S = "${WORKDIR}/git"
-RDEPENDS:${PN}:class-native = ""
-DEPENDS:append:class-native = " python-native "
+RDEPENDS:${PN} = "python3-json"
inherit setuptools3
-PIP_INSTALL_PACKAGE = "python_cson"
+do_configure:prepend() {
+ echo "__version__=${PV}" > ${S}/version.py
+}
BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-extended/python-meh/python3-meh/0001-setup.py-switch-from-distutils-to-setuptools.patch b/meta-python/recipes-extended/python-meh/python3-meh/0001-setup.py-switch-from-distutils-to-setuptools.patch
deleted file mode 100644
index 2eb6be5a18..0000000000
--- a/meta-python/recipes-extended/python-meh/python3-meh/0001-setup.py-switch-from-distutils-to-setuptools.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 034ac41561409ffc7836683331b6b94a641436e4 Mon Sep 17 00:00:00 2001
-From: Tim Orling <tim.orling@konsulko.com>
-Date: Mon, 28 Feb 2022 09:41:02 -0800
-Subject: [PATCH] setup.py: switch from distutils to setuptools
-
-In Python 3.10 'distutils' is deprecated with removal slated for Python
-3.12. Switch from 'distutils.core' to 'setuptools'.
-
-This also allows for a 'wheel' binary archive format to be built with
-'setup.py bdist_wheel'.
-
-Upstream-Status: Backport [cf9eafdd165347f86bb4a2534c41fd805db52322]
-
-Signed-off-by: Tim Orling <tim.orling@konsulko.com>
-
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 9c12180..3ba5195 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1,6 +1,6 @@
- #!/usr/bin/python3
-
--from distutils.core import setup
-+from setuptools import setup
-
- setup(name='python-meh', version='0.50.1',
- description='Python module for handling exceptions',
diff --git a/meta-python/recipes-extended/python-meh/python3-meh_0.50.1.bb b/meta-python/recipes-extended/python-meh/python3-meh_0.50.1.bb
deleted file mode 100644
index 1d9af438da..0000000000
--- a/meta-python/recipes-extended/python-meh/python3-meh_0.50.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "A python library for handling exceptions"
-DESCRIPTION = "The python-meh package is a python library for handling, saving, and reporting \
-exceptions."
-HOMEPAGE = "https://github.com/rhinstaller/python-meh"
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit setuptools3_legacy
-
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=rhel9-branch \
- file://0001-setup.py-switch-from-distutils-to-setuptools.patch \
- "
-SRCREV = "c321ce22950aff76611a3c6beffa02b5ea3adbed"
-
-FILES:${PN} += "${datadir}/python-meh"
diff --git a/meta-python/recipes-extended/python-meh/python3-meh_0.51.bb b/meta-python/recipes-extended/python-meh/python3-meh_0.51.bb
new file mode 100644
index 0000000000..e83514af1b
--- /dev/null
+++ b/meta-python/recipes-extended/python-meh/python3-meh_0.51.bb
@@ -0,0 +1,16 @@
+SUMMARY = "A python library for handling exceptions"
+DESCRIPTION = "The python-meh package is a python library for handling, saving, and reporting \
+exceptions."
+HOMEPAGE = "https://github.com/rhinstaller/python-meh"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit setuptools3_legacy
+
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=master"
+
+SRCREV = "eb5d4adc3b838704b6a68f0f77ada2063a11ab1b"
+
+FILES:${PN} += "${datadir}/python-meh"
diff --git a/meta-python/recipes-extended/python-pyephem/python3-pyephem/0001-Don-t-set-tp_print-on-Python-3.patch b/meta-python/recipes-extended/python-pyephem/python3-pyephem/0001-Don-t-set-tp_print-on-Python-3.patch
deleted file mode 100644
index a84d852fb0..0000000000
--- a/meta-python/recipes-extended/python-pyephem/python3-pyephem/0001-Don-t-set-tp_print-on-Python-3.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 866f7560034e8b7a604432611b3cb2c92e76def9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 28 Aug 2022 11:03:39 -0700
-Subject: [PATCH] Don't set tp_print on Python 3.
-
-In 3.8 it produces a compilation warning, in earlier versions it is ignored.
-
-Upstream-Status: Submitted [https://github.com/brandon-rhodes/pyephem/pull/245]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- extensions/_libastro.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/extensions/_libastro.c b/extensions/_libastro.c
-index ce07d93..c9ef1e6 100644
---- a/extensions/_libastro.c
-+++ b/extensions/_libastro.c
-@@ -372,7 +372,11 @@ static PyTypeObject AngleType = {
- sizeof(AngleObject),
- 0,
- 0, /* tp_dealloc */
-+#if PY_MAJOR_VERSION < 3
- Angle_print, /* tp_print */
-+#else
-+ 0, /* reserved in 3.x */
-+#endif
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_compare */
-@@ -669,7 +673,11 @@ static PyTypeObject DateType = {
- sizeof(PyFloatObject),
- 0,
- 0, /* tp_dealloc */
-+#if PY_MAJOR_VERSION < 3
- Date_print, /* tp_print */
-+#else
-+ 0, /* tp_print slot is reserved and unused in Python 3 */
-+#endif
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_compare */
---
-2.37.2
-
diff --git a/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.3.bb b/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.3.bb
deleted file mode 100644
index 8c4f0eb405..0000000000
--- a/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.3.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "PyEphem astronomical calculations"
-HOMEPAGE = "http://rhodesmill.org/pyephem/"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9c930b395b435b00bb13ec83b0c99f40"
-
-SRC_URI += "file://0001-Don-t-set-tp_print-on-Python-3.patch"
-SRC_URI[sha256sum] = "7fa18685981ba528edd504052a9d5212a09aa5bf15c11a734edc6a86e8a8b56a"
-
-PYPI_PACKAGE = "ephem"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-math \
- "
diff --git a/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.5.bb b/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.5.bb
new file mode 100644
index 0000000000..8c9262afb8
--- /dev/null
+++ b/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.5.bb
@@ -0,0 +1,16 @@
+SUMMARY = "PyEphem astronomical calculations"
+HOMEPAGE = "http://rhodesmill.org/pyephem/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9c930b395b435b00bb13ec83b0c99f40"
+
+SRC_URI[sha256sum] = "0c64a8aa401574c75942045b9af70d1656e14c5366151c0cbb400cbeedc2362a"
+
+PYPI_PACKAGE = "ephem"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-datetime \
+ python3-math \
+ "
diff --git a/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch b/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch
index 5f95d74bf1..309a00122a 100644
--- a/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch
+++ b/meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch
@@ -9,18 +9,17 @@ we support basic/digest authentication.
Add KickstartAuthError to report authentication failure,
which the invoker could parse this specific error.
-Upstream-Status: inappropriate [oe specific]
+Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
---
pykickstart/errors.py | 17 +++++++++++++++++
- pykickstart/load.py | 34 ++++++++++++++++++++++++++++------
+ pykickstart/load.py | 32 +++++++++++++++++++++++++++-----
pykickstart/parser.py | 4 ++--
- 3 files changed, 47 insertions(+), 8 deletions(-)
+ 3 files changed, 46 insertions(+), 7 deletions(-)
diff --git a/pykickstart/errors.py b/pykickstart/errors.py
-index 8294f59a..3d20bf82 100644
+index 8294f59..3d20bf8 100644
--- a/pykickstart/errors.py
+++ b/pykickstart/errors.py
@@ -32,6 +32,9 @@ This module exports several exception classes:
@@ -52,16 +51,15 @@ index 8294f59a..3d20bf82 100644
+ def __str__(self):
+ return self.value
diff --git a/pykickstart/load.py b/pykickstart/load.py
-index 30e2fcfa..b984876d 100644
+index eb76b65..f51cf08 100644
--- a/pykickstart/load.py
+++ b/pykickstart/load.py
-@@ -18,9 +18,12 @@
+@@ -18,9 +18,11 @@
# with the express permission of Red Hat, Inc.
#
import requests
+from requests.auth import HTTPDigestAuth
+from requests.auth import HTTPBasicAuth
-+
import shutil
-from pykickstart.errors import KickstartError
@@ -69,7 +67,7 @@ index 30e2fcfa..b984876d 100644
from pykickstart.i18n import _
from requests.exceptions import SSLError, RequestException
-@@ -28,7 +31,7 @@ _is_url = lambda location: '://' in location # RFC 3986
+@@ -28,7 +30,7 @@ is_url = lambda location: '://' in location # RFC 3986
SSL_VERIFY = True
@@ -78,21 +76,20 @@ index 30e2fcfa..b984876d 100644
'''Load a destination URL or file into a string.
Type of input is inferred automatically.
-@@ -39,7 +42,7 @@ def load_to_str(location):
+@@ -39,7 +41,7 @@ def load_to_str(location):
Raises: KickstartError on error reading'''
- if _is_url(location):
+ if is_url(location):
- return _load_url(location)
+ return _load_url(location, user=user, passwd=passwd)
else:
return _load_file(location)
-@@ -69,11 +72,30 @@ def load_to_file(location, destination):
+@@ -69,11 +71,31 @@ def load_to_file(location, destination):
_copy_file(location, destination)
return destination
-def _load_url(location):
-- '''Load a location (URL or filename) and return contents as string'''
+def _get_auth(location, user=None, passwd=None):
+
+ auth = None
@@ -101,7 +98,7 @@ index 30e2fcfa..b984876d 100644
+ if user is None or passwd is None:
+ log.info("Require Authentication")
+ raise KickstartAuthError("Require Authentication.\nAppend 'ksuser=<username> kspasswd=<password>' to boot command")
-
++
+ reasons = request.headers.get("WWW-Authenticate", "").split()
+ if reasons:
+ auth_type = reasons[0]
@@ -113,8 +110,9 @@ index 30e2fcfa..b984876d 100644
+ return auth
+
+def _load_url(location, user=None, passwd=None):
-+ '''Load a location (URL or filename) and return contents as string'''
+ '''Load a location (URL or filename) and return contents as string'''
+ auth = _get_auth(location, user=user, passwd=passwd)
+
try:
- request = requests.get(location, verify=SSL_VERIFY)
+ request = requests.get(location, verify=SSL_VERIFY, auth=auth)
@@ -122,10 +120,10 @@ index 30e2fcfa..b984876d 100644
raise KickstartError(_('Error securely accessing URL "%s"') % location + ': {e}'.format(e=str(e)))
except RequestException as e:
diff --git a/pykickstart/parser.py b/pykickstart/parser.py
-index b23e54f1..e10f06b5 100644
+index 7edf8aa..46c5299 100644
--- a/pykickstart/parser.py
+++ b/pykickstart/parser.py
-@@ -796,7 +796,7 @@ class KickstartParser(object):
+@@ -790,7 +790,7 @@ class KickstartParser(object):
i = PutBackIterator(s.splitlines(True) + [""])
self._stateMachine(i)
@@ -134,7 +132,7 @@ index b23e54f1..e10f06b5 100644
"""Process a kickstart file, given by the filename f."""
if reset:
self._reset()
-@@ -817,7 +817,7 @@ class KickstartParser(object):
+@@ -811,7 +811,7 @@ class KickstartParser(object):
self.currentdir[self._includeDepth] = cd
try:
@@ -143,3 +141,6 @@ index b23e54f1..e10f06b5 100644
except KickstartError as e:
raise KickstartError(_("Unable to open input kickstart file: %s") % str(e), lineno=0)
+--
+2.34.1
+
diff --git a/meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch b/meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch
index 4a001f3386..f5483db825 100644
--- a/meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch
+++ b/meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch
@@ -1,7 +1,7 @@
From 62fdead139edb0f29b2f222efcb8f39be15b057e Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Mon, 30 Jul 2018 15:47:13 +0800
-Subject: [PATCH 2/4] pykickstart/parser.py: add lock for readKickstart and
+Subject: [PATCH 2/4] pykickstart/parser.py: add lock for readKickstart and
support https without certification
- Add lock for readKickstart to fix race issue
@@ -9,18 +9,21 @@ Subject: [PATCH 2/4] pykickstart/parser.py: add lock for readKickstart and
- Support to download kickstart file through https without certification
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
+Upstream-Status: Pending
+
pykickstart/load.py | 2 +-
pykickstart/parser.py | 18 ++++++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/pykickstart/load.py b/pykickstart/load.py
-index c6f013f..7adb751 100644
+index 8da8051..e856c8d 100644
--- a/pykickstart/load.py
+++ b/pykickstart/load.py
-@@ -30,7 +30,7 @@ from requests.exceptions import SSLError, RequestException
+@@ -32,7 +32,7 @@ log = logging.getLogger("anaconda.main")
- _is_url = lambda location: '://' in location # RFC 3986
+ is_url = lambda location: '://' in location # RFC 3986
-SSL_VERIFY = True
+SSL_VERIFY = False
@@ -28,10 +31,10 @@ index c6f013f..7adb751 100644
def load_to_str(location, user=None, passwd=None):
'''Load a destination URL or file into a string.
diff --git a/pykickstart/parser.py b/pykickstart/parser.py
-index e44099b..e68174d 100644
+index b95ba90..a55a9a3 100644
--- a/pykickstart/parser.py
+++ b/pykickstart/parser.py
-@@ -55,6 +55,20 @@ from pykickstart.i18n import _
+@@ -51,6 +51,20 @@ from pykickstart.i18n import _
STATE_END = "end"
STATE_COMMANDS = "commands"
@@ -52,7 +55,7 @@ index e44099b..e68174d 100644
def _preprocessStateMachine(lineIter):
l = None
lineno = 0
-@@ -788,6 +802,10 @@ class KickstartParser(object):
+@@ -791,6 +805,10 @@ class KickstartParser(object):
self._stateMachine(i)
def readKickstart(self, f, reset=True, username=None, password=None):
@@ -64,5 +67,5 @@ index e44099b..e68174d 100644
if reset:
self._reset()
--
-2.7.4
+2.34.1
diff --git a/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch b/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch
index 7ab7346860..6242e23b9c 100644
--- a/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch
+++ b/meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch
@@ -6,7 +6,7 @@ Subject: [PATCH 3/4] comment out sections shutdown and environment in
Both of them is disabled by default.
-Upstream-Status: Inappropriate[oe specific]
+Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
diff --git a/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch b/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch
index bf5a197230..abe2c87e00 100644
--- a/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch
+++ b/meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch
@@ -8,22 +8,21 @@ network, it failed and wait 300s to break, we should retry
to invoke request with timeout explicitly. So if it the
network is up, the fetch works.
-Upstream-Status: inappropriate [oe specific]
+Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
---
pykickstart/load.py | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/pykickstart/load.py b/pykickstart/load.py
-index f75fe5d3..a8f3ed1d 100644
+index 58faba6..e856c8d 100644
--- a/pykickstart/load.py
+++ b/pykickstart/load.py
-@@ -21,12 +21,16 @@ import requests
+@@ -20,12 +20,16 @@
+ import requests
from requests.auth import HTTPDigestAuth
from requests.auth import HTTPBasicAuth
-
+import time
import shutil
@@ -34,10 +33,10 @@ index f75fe5d3..a8f3ed1d 100644
+import logging
+log = logging.getLogger("anaconda.main")
+
- _is_url = lambda location: '://' in location # RFC 3986
+ is_url = lambda location: '://' in location # RFC 3986
SSL_VERIFY = False
-@@ -72,6 +76,29 @@ def load_to_file(location, destination):
+@@ -71,6 +75,29 @@ def load_to_file(location, destination):
_copy_file(location, destination)
return destination
@@ -67,7 +66,7 @@ index f75fe5d3..a8f3ed1d 100644
def _get_auth(location, user=None, passwd=None):
auth = None
-@@ -93,6 +120,10 @@ def _get_auth(location, user=None, passwd=None):
+@@ -92,6 +119,10 @@ def _get_auth(location, user=None, passwd=None):
def _load_url(location, user=None, passwd=None):
'''Load a location (URL or filename) and return contents as string'''
@@ -76,5 +75,8 @@ index f75fe5d3..a8f3ed1d 100644
+ raise KickstartError(_("Connection %s failed" % location))
+
auth = _get_auth(location, user=user, passwd=passwd)
+
try:
- request = requests.get(location, verify=SSL_VERIFY, auth=auth)
+--
+2.34.1
+
diff --git a/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.34.bb b/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.34.bb
deleted file mode 100644
index 6bf9ada581..0000000000
--- a/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.34.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "A python library for manipulating kickstart files"
-HOMEPAGE = "http://fedoraproject.org/wiki/pykickstart"
-LICENSE = "GPL-2.0-or-later"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
-
-DEPENDS = "python3"
-RDEPENDS:${PN} = "python3 \
- python3-requests \
- python3-six \
-"
-
-S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/rhinstaller/pykickstart.git;protocol=https;branch=master \
- file://0001-support-authentication-for-kickstart.patch \
- file://0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch \
- file://0003-comment-out-sections-shutdown-and-environment-in-gen.patch \
- file://0004-load.py-retry-to-invoke-request-with-timeout.patch \
- "
-SRCREV = "bfd836cfdd8439d984595aca015811ed5c6be733"
-
-UPSTREAM_CHECK_GITTAGREGEX = "r(?P<pver>\d+(\.\d+)+(-\d+)*)"
-
-inherit setuptools3
-PIP_INSTALL_PACKAGE = "pykickstart"
-PIP_INSTALL_DIST_PATH = "${S}/dist"
diff --git a/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.48.bb b/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.48.bb
new file mode 100644
index 0000000000..953068f7c3
--- /dev/null
+++ b/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.48.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "A python library for manipulating kickstart files"
+HOMEPAGE = "http://fedoraproject.org/wiki/pykickstart"
+LICENSE = "GPL-2.0-or-later"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
+
+DEPENDS = "python3"
+RDEPENDS:${PN} = "python3 \
+ python3-requests \
+ python3-six \
+"
+
+S = "${WORKDIR}/git"
+SRC_URI = "git://github.com/rhinstaller/pykickstart.git;protocol=https;branch=master \
+ file://0001-support-authentication-for-kickstart.patch \
+ file://0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch \
+ file://0003-comment-out-sections-shutdown-and-environment-in-gen.patch \
+ file://0004-load.py-retry-to-invoke-request-with-timeout.patch \
+ "
+SRCREV = "fa6c80c0e5c6bee29d089899a10d26e6f7f8afd8"
+
+UPSTREAM_CHECK_GITTAGREGEX = "r(?P<pver>\d+(\.\d+)+(-\d+)*)"
+
+inherit setuptools3
diff --git a/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.12.0.bb b/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.12.0.bb
index 9dd362766d..7a0d3987d2 100644
--- a/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.12.0.bb
+++ b/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.12.0.bb
@@ -17,7 +17,10 @@ DEPENDS += "parted"
RDEPENDS:${PN}:class-target += " \
parted (>= 2.3) \
- python3-stringold python3-codecs python3-math \
+ python3-codecs \
+ python3-math \
+ python3-numbers \
+ python3-stringold \
"
RDEPENDS:${PN}:class-native = ""
diff --git a/meta-python/recipes-extended/python-rich/python3-rich_13.7.0.bb b/meta-python/recipes-extended/python-rich/python3-rich_13.7.0.bb
new file mode 100644
index 0000000000..959f0d51aa
--- /dev/null
+++ b/meta-python/recipes-extended/python-rich/python3-rich_13.7.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Rich is a Python library for rich text and beautiful formatting in the terminal"
+DESCRIPTION = "The Rich API makes it easy to add color and style to terminal output. \
+Rich can also render pretty tables, progress bars, markdown, syntax highlighted source code, \
+tracebacks, and more."
+HOMEPAGE="https://github.com/Textualize/rich"
+SECTION = "devel/python"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b5f0b94fbc94f5ad9ae4efcf8a778303"
+
+SRC_URI[sha256sum] = "5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} = "python3-pygments"
diff --git a/meta-python/recipes-extended/python3-portalocker/python3-portalocker/run-ptest b/meta-python/recipes-extended/python3-portalocker/python3-portalocker/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-extended/python3-portalocker/python3-portalocker/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.5.1.bb b/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.5.1.bb
deleted file mode 100644
index 55037d1ebd..0000000000
--- a/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.5.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Cross-platform locking library"
-DESCRIPTION = "Portalocker is a library to provide an easy API to file locking"
-LICENSE = "PSF-2.0"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f9273424c73af966635d66eb53487e14"
-
-SRC_URI[sha256sum] = "ae8e9cc2660da04bf41fa1a0eef7e300bb5e4a5869adfb1a6d8551632b559b2b"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS:${PN} += " \
- ${PYTHON_PN}-fcntl \
- ${PYTHON_PN}-logging \
-"
diff --git a/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.8.2.bb b/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.8.2.bb
new file mode 100644
index 0000000000..c45a3fcda2
--- /dev/null
+++ b/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.8.2.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Cross-platform locking library"
+DESCRIPTION = "Portalocker is a library to provide an easy API to file locking"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=152634da660a374ca18c0734ed07c63c"
+
+SRC_URI[sha256sum] = "2b035aa7828e46c58e9b31390ee1f169b98e1066ab10b9a6a861fe7e25ee4f33"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-multiprocessing \
+ python3-pytest \
+ python3-redis \
+ python3-unittest-automake-output \
+ redis \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/portalocker_tests/* ${D}${PTEST_PATH}/tests/
+ rm -rf ${D}${PTEST_PATH}/tests/test_combined.py
+}
+
+RDEPENDS:${PN} += " \
+ python3-fcntl \
+ python3-logging \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.bb b/meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.bb
deleted file mode 100644
index fde1029c74..0000000000
--- a/meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "pydot is is an interface to Graphviz."
-HOMEPAGE = "https://github.com/pydot/pydot"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3f6fa041dfcc7ff7747cfceaa34a3180"
-
-SRC_URI[sha256sum] = "248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "graphviz python3-pyparsing"
diff --git a/meta-python/recipes-extended/python3-pydot/python3-pydot_2.0.0.bb b/meta-python/recipes-extended/python3-pydot/python3-pydot_2.0.0.bb
new file mode 100644
index 0000000000..f0a6abd733
--- /dev/null
+++ b/meta-python/recipes-extended/python3-pydot/python3-pydot_2.0.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "pydot is is an interface to Graphviz."
+HOMEPAGE = "https://github.com/pydot/pydot"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3f6fa041dfcc7ff7747cfceaa34a3180"
+
+SRC_URI[sha256sum] = "60246af215123fa062f21cd791be67dda23a6f280df09f68919e637a1e4f3235"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "graphviz python3-pyparsing"
diff --git a/meta-python/recipes-extended/pywbem/python3-pywbem_1.4.1.bb b/meta-python/recipes-extended/pywbem/python3-pywbem_1.4.1.bb
deleted file mode 100644
index 210d64320e..0000000000
--- a/meta-python/recipes-extended/pywbem/python3-pywbem_1.4.1.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "Python WBEM Client and Provider Interface"
-DESCRIPTION = "\
-A Python library for making CIM (Common Information Model) operations over \
-HTTP using the WBEM CIM-XML protocol. It is based on the idea that a good \
-WBEM client should be easy to use and not necessarily require a large amount \
-of programming knowledge. It is suitable for a large range of tasks from \
-simply poking around to writing web and GUI applications. \
-\
-WBEM, or Web Based Enterprise Management is a manageability protocol, like \
-SNMP, standardised by the Distributed Management Task Force (DMTF) available \
-at http://www.dmtf.org/standards/wbem. \
-\
-It also provides a Python provider interface, and is the fastest and easiest \
-way to write providers on the planet."
-HOMEPAGE = "http://pywbem.github.io"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fbc093901857fcd118f065f900982c24"
-
-SRC_URI[sha256sum] = "ad8bbbe4ab7e795722c0f27f2656c92fc673a7e06a14cd151a50f0306454d17e"
-
-inherit pypi setuptools3 update-alternatives
-
-DEPENDS += " \
- ${PYTHON_PN}-ply-native \
- ${PYTHON_PN}-pyyaml-native \
- ${PYTHON_PN}-six-native \
- ${PYTHON_PN}-wheel-native \
-"
-
-RDEPENDS:${PN}:class-target += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-ply \
- ${PYTHON_PN}-pyyaml \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-stringold \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-unixadmin \
- ${PYTHON_PN}-xml \
- ${PYTHON_PN}-nocasedict \
- ${PYTHON_PN}-nocaselist \
- ${PYTHON_PN}-yamlloader \
-"
-
-ALTERNATIVE:${PN} = "mof_compiler"
-ALTERNATIVE_TARGET[mof_compiler] = "${bindir}/mof_compiler"
-
-ALTERNATIVE_PRIORITY = "60"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-extended/pywbem/python3-pywbem_1.6.3.bb b/meta-python/recipes-extended/pywbem/python3-pywbem_1.6.3.bb
new file mode 100644
index 0000000000..7d1ff28589
--- /dev/null
+++ b/meta-python/recipes-extended/pywbem/python3-pywbem_1.6.3.bb
@@ -0,0 +1,51 @@
+SUMMARY = "Python WBEM Client and Provider Interface"
+DESCRIPTION = "\
+A Python library for making CIM (Common Information Model) operations over \
+HTTP using the WBEM CIM-XML protocol. It is based on the idea that a good \
+WBEM client should be easy to use and not necessarily require a large amount \
+of programming knowledge. It is suitable for a large range of tasks from \
+simply poking around to writing web and GUI applications. \
+\
+WBEM, or Web Based Enterprise Management is a manageability protocol, like \
+SNMP, standardised by the Distributed Management Task Force (DMTF) available \
+at http://www.dmtf.org/standards/wbem. \
+\
+It also provides a Python provider interface, and is the fastest and easiest \
+way to write providers on the planet."
+HOMEPAGE = "http://pywbem.github.io"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fbc093901857fcd118f065f900982c24"
+
+SRC_URI[sha256sum] = "78df30dee98c508620b599b8951f322a81c6c0a9d7b78ffe5e017b9417cd97b9"
+
+inherit pypi setuptools3 update-alternatives
+
+DEPENDS += " \
+ python3-ply-native \
+ python3-pyyaml-native \
+ python3-six-native \
+ python3-wheel-native \
+"
+
+RDEPENDS:${PN} += "\
+ python3-datetime \
+ python3-io \
+ python3-logging \
+ python3-netclient \
+ python3-nocasedict \
+ python3-nocaselist \
+ python3-ply \
+ python3-pyyaml \
+ python3-requests \
+ python3-six \
+ python3-stringold \
+ python3-threading \
+ python3-unixadmin \
+ python3-xml \
+ python3-yamlloader \
+"
+
+ALTERNATIVE:${PN} = "mof_compiler"
+ALTERNATIVE_TARGET[mof_compiler] = "${bindir}/mof_compiler"
+
+ALTERNATIVE_PRIORITY = "60"
diff --git a/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.0.0.bb b/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.0.0.bb
deleted file mode 100644
index 3a9f0ad6fd..0000000000
--- a/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.0.0.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "A set of tools using pywbem"
-DESCRIPTION = "A set of tools using pywbem to communicate with WBEM servers"
-HOMEPAGE = "https://pywbemtools.readthedocs.io/en/stable/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa"
-
-SRC_URI[sha256sum] = "0af7e067e0c0ba32cc19c2c2dc67875c591b806c4b49480ebe46e37bfb399684"
-
-inherit pypi setuptools3
-
-DEPENDS += " \
- ${PYTHON_PN}-pyyaml-native \
- ${PYTHON_PN}-pywbem-native \
- ${PYTHON_PN}-six-native \
- ${PYTHON_PN}-click-native \
-"
-
-RDEPENDS:${PN}:class-target += "\
- ${PYTHON_PN}-ply \
- ${PYTHON_PN}-pyyaml \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-pywbem \
- ${PYTHON_PN}-click \
- ${PYTHON_PN}-requests \
- ${PYTHON_PN}-prompt-toolkit \
- ${PYTHON_PN}-mock \
- ${PYTHON_PN}-packaging \
- ${PYTHON_PN}-nocasedict \
- ${PYTHON_PN}-yamlloader \
- ${PYTHON_PN}-click-repl \
- ${PYTHON_PN}-click-spinner \
- ${PYTHON_PN}-asciitree \
- ${PYTHON_PN}-tabulate \
- ${PYTHON_PN}-pydicti \
- ${PYTHON_PN}-nocaselist \
- ${PYTHON_PN}-custom-inherit \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.1.bb b/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.1.bb
new file mode 100644
index 0000000000..c0a5368d11
--- /dev/null
+++ b/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.1.bb
@@ -0,0 +1,32 @@
+SUMMARY = "A set of tools using pywbem"
+DESCRIPTION = "A set of tools using pywbem to communicate with WBEM servers"
+HOMEPAGE = "https://pywbemtools.readthedocs.io/en/stable/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa"
+
+SRC_URI[sha256sum] = "d2ad6c383490ddb3bbb0f737d23a07c7e8c345df65f8309bc554d8455cc913dc"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN}:class-target += "\
+ python3-ply \
+ python3-pyyaml \
+ python3-six \
+ python3-pywbem \
+ python3-click \
+ python3-requests \
+ python3-prompt-toolkit \
+ python3-mock \
+ python3-packaging \
+ python3-nocasedict \
+ python3-yamlloader \
+ python3-click-repl \
+ python3-click-spinner \
+ python3-asciitree \
+ python3-tabulate \
+ python3-pydicti \
+ python3-nocaselist \
+ python3-custom-inherit \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-extended/send2trash/python3-send2trash_1.8.0.bb b/meta-python/recipes-extended/send2trash/python3-send2trash_1.8.0.bb
deleted file mode 100644
index 963351a2e2..0000000000
--- a/meta-python/recipes-extended/send2trash/python3-send2trash_1.8.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Send file to trash natively under Mac OS X, Windows and Linux"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a02659c2d5f4cc626e4dcf6504b865eb"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "d2c24762fd3759860a0aff155e45871447ea58d2be6bdd39b5c8f966a0c99c2d"
-
-PYPI_PACKAGE = "Send2Trash"
diff --git a/meta-python/recipes-extended/send2trash/python3-send2trash_1.8.2.bb b/meta-python/recipes-extended/send2trash/python3-send2trash_1.8.2.bb
new file mode 100644
index 0000000000..eac89e6297
--- /dev/null
+++ b/meta-python/recipes-extended/send2trash/python3-send2trash_1.8.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Send file to trash natively under Mac OS X, Windows and Linux"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a02659c2d5f4cc626e4dcf6504b865eb"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312"
+
+PYPI_PACKAGE = "Send2Trash"
+
+RDEPENDS:${PN} += "\
+ python3-io \
+ python3-datetime \
+"
diff --git a/meta-python/recipes-extended/tuna/tuna_0.19.bb b/meta-python/recipes-extended/tuna/tuna_0.19.bb
new file mode 100644
index 0000000000..ea0f157921
--- /dev/null
+++ b/meta-python/recipes-extended/tuna/tuna_0.19.bb
@@ -0,0 +1,24 @@
+SUMMARY = "cui/gui tool for tuning of running processes"
+HOMEPAGE = "https://rt.wiki.kernel.org/index.php/Tuna"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/tuna/tuna.git;branch=main"
+
+SRCREV = "b972b8ce386c29bcbcd45029a617db3db9e5b6ca"
+
+S = "${WORKDIR}/git"
+
+RDEPENDS:${PN} += " \
+ python3-io \
+ python3-linux-procfs \
+ python3-logging \
+ python3-six \
+ "
+
+inherit setuptools3
+
+do_install:append() {
+ install -m 0755 -d ${D}${bindir}
+ install -m 0755 ${S}/tuna-cmd.py ${D}${bindir}/tuna
+}
diff --git a/meta-python/recipes-networking/python/python3-ldap_3.4.3.bb b/meta-python/recipes-networking/python/python3-ldap_3.4.3.bb
deleted file mode 100644
index f2c0d2ee13..0000000000
--- a/meta-python/recipes-networking/python/python3-ldap_3.4.3.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Provides a wrapper in Python to LDAP"
-DESCRIPTION = "This module provides access to the LDAP \
-(Lightweight Directory Access Protocol) through Python operations \
-instead of C API. The module mainly acts as a wrapper for the \
-OpenLDAP 2.x libraries. Errors will appear as exceptions."
-HOMEPAGE = "http://www.python-ldap.org/"
-LICENSE = "PSF-2.0"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=36ce9d726d0321b73c1521704d07db1b"
-
-DEPENDS = "python3 openldap cyrus-sasl"
-
-PYPI_PACKAGE = "python-ldap"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "ab26c519a0ef2a443a2a10391fa3c5cb52d7871323399db949ebfaa9f25ee2a0"
-
-do_configure:prepend() {
- sed -i -e 's:^library_dirs =.*::' \
- -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' \
- -e 's/= ldap_r/= ldap/g' ${S}/setup.cfg
-}
-
-RDEPENDS:${PN} = " \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-pyasn1 \
- ${PYTHON_PN}-pyasn1-modules \
-"
diff --git a/meta-python/recipes-networking/python/python3-ldap_3.4.4.bb b/meta-python/recipes-networking/python/python3-ldap_3.4.4.bb
new file mode 100644
index 0000000000..6caf5f37ce
--- /dev/null
+++ b/meta-python/recipes-networking/python/python3-ldap_3.4.4.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Provides a wrapper in Python to LDAP"
+DESCRIPTION = "This module provides access to the LDAP \
+(Lightweight Directory Access Protocol) through Python operations \
+instead of C API. The module mainly acts as a wrapper for the \
+OpenLDAP 2.x libraries. Errors will appear as exceptions."
+HOMEPAGE = "http://www.python-ldap.org/"
+LICENSE = "PSF-2.0"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=36ce9d726d0321b73c1521704d07db1b"
+
+DEPENDS = "python3 openldap cyrus-sasl"
+
+PYPI_PACKAGE = "python-ldap"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "7edb0accec4e037797705f3a05cbf36a9fde50d08c8f67f2aef99a2628fab828"
+
+do_configure:prepend() {
+ sed -i -e 's:^library_dirs =.*::' \
+ -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' \
+ -e 's/= ldap_r/= ldap/g' ${S}/setup.cfg
+}
+
+RDEPENDS:${PN} = " \
+ python3-pprint \
+ python3-pyasn1 \
+ python3-pyasn1-modules \
+ python3-threading \
+ python3-unittest \
+"
diff --git a/meta-webserver/README b/meta-webserver/README
deleted file mode 100644
index d23f6cc65c..0000000000
--- a/meta-webserver/README
+++ /dev/null
@@ -1,66 +0,0 @@
-meta-webserver
-==============
-
-This layer provides support for building web servers, web-based
-applications and related software.
-
-
-
-Dependencies
-------------
-
-This layer depends on:
-
-URI: git://git.openembedded.org/openembedded-core
-subdirectory: meta
-branch: master
-
-For some recipes, the meta-oe layer is required:
-
-URI: git://git.openembedded.org/meta-openembedded
-subdirectory: meta-oe
-branch: master
-
-
-
-Layout
-------
-
-recipes-httpd/ Web servers
-recipes-php/ PHP applications
-recipes-support/ Miscellaneous support recipes
-recipes-webadmin/ Standalone web administration interfaces
-
-
-Notes
------
-
-* This layer used to provide a modphp recipe that built mod_php, but
- this is now built as part of the php recipe in meta-oe. However, since
- apache2 is required to build mod_php, and apache2 recipe is in this
- layer and recipes in meta-oe can't depend on it, mod_php is not built
- by default. If you do wish to use mod_php, you need to add "apache2"
- to the PACKAGECONFIG value for the php recipe in order to enable it.
- See here for info on how to do that:
-
- http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-PACKAGECONFIG
-
-
-Maintenance
------------
-
-Send patches / pull requests to openembedded-devel@lists.openembedded.org
-with '[meta-webserver]' in the subject.
-
-Layer maintainer: Derek Straka <derek@asterius.io>
-
-
-License
--------
-
-All metadata is MIT licensed unless otherwise stated. Source code included
-in tree for individual recipes is under the LICENSE stated in each recipe
-(.bb file) unless otherwise stated.
-
-This README document is Copyright (C) 2012 Intel Corporation.
-
diff --git a/meta-webserver/README.md b/meta-webserver/README.md
new file mode 100644
index 0000000000..d1b743887c
--- /dev/null
+++ b/meta-webserver/README.md
@@ -0,0 +1,66 @@
+meta-webserver
+==============
+
+This layer provides support for building web servers, web-based
+applications and related software.
+
+
+
+Dependencies
+------------
+
+This layer depends on:
+
+URI: git://git.openembedded.org/openembedded-core
+subdirectory: meta
+branch: master
+
+For some recipes, the meta-oe layer is required:
+
+URI: git://git.openembedded.org/meta-openembedded
+subdirectory: meta-oe
+branch: master
+
+
+
+Layout
+------
+
+* recipes-httpd/ Web servers
+* recipes-php/ PHP applications
+* recipes-support/ Miscellaneous support recipes
+* recipes-webadmin/ Standalone web administration interfaces
+
+
+Notes
+-----
+
+* This layer used to provide a modphp recipe that built mod_php, but
+ this is now built as part of the php recipe in meta-oe. However, since
+ apache2 is required to build mod_php, and apache2 recipe is in this
+ layer and recipes in meta-oe can't depend on it, mod_php is not built
+ by default. If you do wish to use mod_php, you need to add "apache2"
+ to the PACKAGECONFIG value for the php recipe in order to enable it.
+ See here for info on how to do that:
+
+ http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-PACKAGECONFIG
+
+
+Maintenance
+-----------
+
+Send patches / pull requests to openembedded-devel@lists.openembedded.org
+with '[meta-webserver]' in the subject.
+
+Layer maintainer: Derek Straka <derek@asterius.io>
+
+
+License
+-------
+
+All metadata is MIT licensed unless otherwise stated. Source code included
+in tree for individual recipes is under the LICENSE stated in each recipe
+(.bb file) unless otherwise stated.
+
+This README document is Copyright (C) 2012 Intel Corporation.
+
diff --git a/meta-webserver/conf/layer.conf b/meta-webserver/conf/layer.conf
index bfcd9681c0..c0896f1a2d 100644
--- a/meta-webserver/conf/layer.conf
+++ b/meta-webserver/conf/layer.conf
@@ -17,7 +17,7 @@ LAYERVERSION_webserver = "1"
LAYERDEPENDS_webserver = "core openembedded-layer"
-LAYERSERIES_COMPAT_webserver = "kirkstone langdale"
+LAYERSERIES_COMPAT_webserver = "scarthgap"
LICENSE_PATH += "${LAYERDIR}/licenses"
diff --git a/meta-webserver/files/static-group-meta-webserver b/meta-webserver/files/static-group-meta-webserver
new file mode 100644
index 0000000000..811980c05d
--- /dev/null
+++ b/meta-webserver/files/static-group-meta-webserver
@@ -0,0 +1 @@
+netdata:x:691
diff --git a/meta-webserver/files/static-passwd-meta-webserver b/meta-webserver/files/static-passwd-meta-webserver
new file mode 100644
index 0000000000..231d458ab5
--- /dev/null
+++ b/meta-webserver/files/static-passwd-meta-webserver
@@ -0,0 +1,2 @@
+www:x:690:nogroup::/:/bin/nologin
+netdata:x:691:691::/:/bin/nologin
diff --git a/meta-webserver/recipes-core/images/meta-webserver-image-all.bb b/meta-webserver/recipes-core/images/meta-webserver-image-all.bb
new file mode 100644
index 0000000000..9d2badc236
--- /dev/null
+++ b/meta-webserver/recipes-core/images/meta-webserver-image-all.bb
@@ -0,0 +1,3 @@
+require recipes-core/images/core-image-base.bb
+
+IMAGE_INSTALL += "packagegroup-meta-webserver"
diff --git a/meta-webserver/recipes-core/images/meta-webserver-image-base.bb b/meta-webserver/recipes-core/images/meta-webserver-image-base.bb
deleted file mode 100644
index a4ce10f674..0000000000
--- a/meta-webserver/recipes-core/images/meta-webserver-image-base.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-SUMMARY = "meta-webserver build test image"
-
-IMAGE_INSTALL = "packagegroup-core-boot"
-
-LICENSE = "MIT"
-
-inherit core-image
diff --git a/meta-webserver/recipes-core/images/meta-webserver-image.bb b/meta-webserver/recipes-core/images/meta-webserver-image.bb
deleted file mode 100644
index ce4f8a0387..0000000000
--- a/meta-webserver/recipes-core/images/meta-webserver-image.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require meta-webserver-image-base.bb
-
-IMAGE_INSTALL += "packagegroup-meta-webserver"
diff --git a/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb b/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb
index 040788609e..4dbf595c19 100644
--- a/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb
+++ b/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb
@@ -15,7 +15,7 @@ SRC_URI = "git://github.com/jchampio/apache-websocket.git;branch=master;protocol
SRCREV = "0ee34c77fc78ff08fd548706300b80a7bc7874e4"
-PV = "0.1.2+git${SRCPV}"
+PV = "0.1.2+git"
S = "${WORKDIR}/git"
diff --git a/meta-webserver/recipes-httpd/apache-mod/mod-dnssd_0.6.bb b/meta-webserver/recipes-httpd/apache-mod/mod-dnssd_0.6.bb
new file mode 100644
index 0000000000..5fac0a6ed4
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache-mod/mod-dnssd_0.6.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Avahi Module for Apache2."
+HOMEPAGE = "https://0pointer.de/lennart/projects/mod_dnssd/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+DEPENDS = "apache2 avahi"
+
+SRC_URI = "git://git.0pointer.de/mod_dnssd;protocol=git;branch=master"
+SRCREV = "be2fb9f6158f800685de7a1bc01c39b6cf1fa12c"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF = "--disable-lynx"
+
+inherit autotools pkgconfig
+
+do_install() {
+ install -Dm755 ${S}/src/.libs/mod_dnssd.so ${D}${libexecdir}/apache2/modules/mod_dnssd.so
+}
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2_2.4.54.bb b/meta-webserver/recipes-httpd/apache2/apache2_2.4.54.bb
deleted file mode 100644
index 4f30eca59e..0000000000
--- a/meta-webserver/recipes-httpd/apache2/apache2_2.4.54.bb
+++ /dev/null
@@ -1,237 +0,0 @@
-DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \
-extensible web server."
-SUMMARY = "Apache HTTP Server"
-HOMEPAGE = "http://httpd.apache.org/"
-SECTION = "net"
-LICENSE = "Apache-2.0"
-
-SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
- file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
- file://0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch \
- file://0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch \
- file://0004-apache2-log-the-SELinux-context-at-startup.patch \
- file://0005-replace-lynx-to-curl-in-apachectl-script.patch \
- file://0006-apache2-fix-the-race-issue-of-parallel-installation.patch \
- file://0007-apache2-allow-to-disable-selinux-support.patch \
- file://0008-Fix-perl-install-directory-to-usr-bin.patch \
- file://0009-support-apxs.in-force-destdir-to-be-empty-string.patch \
- file://0001-make_exports.awk-not-expose-the-path.patch \
- "
-
-SRC_URI:append:class-target = " \
- file://0010-apache2-do-not-use-relative-path-for-gen_test_char.patch \
- file://init \
- file://apache2-volatile.conf \
- file://apache2.service \
- file://volatiles.04_apache2 \
- "
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bddeddfac80b2c9a882241d008bb41c3"
-SRC_URI[sha256sum] = "eb397feeefccaf254f8d45de3768d9d68e8e73851c49afd5b7176d1ecf80c340"
-
-S = "${WORKDIR}/httpd-${PV}"
-
-inherit autotools update-rc.d pkgconfig systemd update-alternatives
-
-DEPENDS = "openssl expat pcre apr apr-util apache2-native "
-
-CVE_PRODUCT = "http_server"
-
-SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
-PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux"
-PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap"
-PACKAGECONFIG[zlib] = "--enable-deflate,,zlib,zlib"
-
-CFLAGS:append = " -DPATH_MAX=4096"
-
-EXTRA_OECONF:class-target = "\
- --enable-layout=Debian \
- --prefix=${base_prefix} \
- --exec_prefix=${exec_prefix} \
- --includedir=${includedir}/${BPN} \
- --sysconfdir=${sysconfdir}/${BPN} \
- --datadir=${datadir}/${BPN} \
- --libdir=${libdir} \
- --libexecdir=${libexecdir}/${BPN}/modules \
- --localstatedir=${localstatedir} \
- --enable-ssl \
- --with-dbm=sdbm \
- --with-gdbm=no \
- --with-ndbm=no \
- --with-berkeley-db=no \
- --enable-info \
- --enable-rewrite \
- --enable-mpms-shared \
- ap_cv_void_ptr_lt_long=no \
- ac_cv_have_threadsafe_pollset=no \
- "
-
-EXTRA_OECONF:class-native = "\
- --prefix=${prefix} \
- --includedir=${includedir}/${BPN} \
- --sysconfdir=${sysconfdir}/${BPN} \
- --datadir=${datadir}/${BPN} \
- --libdir=${libdir} \
- --libexecdir=${libdir}/${BPN}/modules \
- --localstatedir=${localstatedir} \
- "
-
-do_configure:prepend() {
- sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libexecdir}/cgi-bin:g' ${S}/config.layout
-}
-
-do_install:append:class-target() {
- install -d ${D}/${sysconfdir}/init.d
-
- cat ${WORKDIR}/init | \
- sed -e 's,/usr/sbin/,${sbindir}/,g' \
- -e 's,/usr/bin/,${bindir}/,g' \
- -e 's,/usr/lib/,${libdir}/,g' \
- -e 's,/etc/,${sysconfdir}/,g' \
- -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${BPN}
-
- chmod 755 ${D}/${sysconfdir}/init.d/${BPN}
-
- # Remove the goofy original files...
- rm -rf ${D}/${sysconfdir}/${BPN}/original
-
- install -d ${D}${sysconfdir}/${BPN}/conf.d
- install -d ${D}${sysconfdir}/${BPN}/modules.d
-
- # Ensure configuration file pulls in conf.d and modules.d
- printf "\nIncludeOptional ${sysconfdir}/${BPN}/conf.d/*.conf" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
- printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.load" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
- printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.conf\n\n" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
-
- # Match with that is in init script
- printf "\nPidFile /run/httpd.pid" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
-
- # Set 'ServerName' to fix error messages when restart apache service
- sed -i 's/^#ServerName www.example.com/ServerName localhost/' ${D}/${sysconfdir}/${BPN}/httpd.conf
-
- sed -i 's/^ServerRoot/#ServerRoot/' ${D}/${sysconfdir}/${BPN}/httpd.conf
-
- sed -i -e 's,${STAGING_DIR_TARGET},,g' \
- -e 's,${DEBUG_PREFIX_MAP},,g' \
- -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-ffile-prefix-map[^ ]*,,g' \
- -e 's,${HOSTTOOLS_DIR}/,,g' \
- -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
- -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${datadir}/apache2/build/config_vars.mk
-
- sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
- -e 's,${DEBUG_PREFIX_MAP},,g' \
- -e 's,${RECIPE_SYSROOT},,g' \
- -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g' \
- -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
- -e 's,".*/configure","configure",g' ${D}${datadir}/apache2/build/config.nice
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d/
- install -m 0644 ${WORKDIR}/apache2-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/apache2.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/apache2.service
- sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/apache2.service
- elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 0644 ${WORKDIR}/volatiles.04_apache2 ${D}${sysconfdir}/default/volatiles/04_apache2
- fi
-
- rm -rf ${D}${localstatedir} ${D}${sbindir}/envvars*
- chown -R root:root ${D}
-}
-
-do_install:append:class-native() {
- install -d ${D}${bindir} ${D}${libdir}
- install -m 755 server/gen_test_char ${D}${bindir}
-}
-
-SYSROOT_PREPROCESS_FUNCS:append:class-target = " apache_sysroot_preprocess"
-
-apache_sysroot_preprocess() {
- install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}
- install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts}
- install -d ${SYSROOT_DESTDIR}${sbindir}
- install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir}
- sed -i 's!my $installbuilddir = .*!my $installbuilddir = "${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs
-
- sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
- sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
-}
-
-# Implications - used by update-rc.d scripts
-INITSCRIPT_NAME = "apache2"
-INITSCRIPT_PARAMS = "defaults 91 20"
-
-SYSTEMD_SERVICE:${PN} = "apache2.service"
-SYSTEMD_AUTO_ENABLE:${PN} = "enable"
-
-ALTERNATIVE:${PN}-doc = "htpasswd.1"
-ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
-
-PACKAGES = "${PN}-utils ${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}"
-
-CONFFILES:${PN} = "${sysconfdir}/${BPN}/httpd.conf \
- ${sysconfdir}/${BPN}/magic \
- ${sysconfdir}/${BPN}/mime.types \
- ${sysconfdir}/${BPN}/extra/*"
-
-FILES:${PN}-utils = "${bindir}/ab \
- ${bindir}/htdbm \
- ${bindir}/htdigest \
- ${bindir}/htpasswd \
- ${bindir}/logresolve \
- ${bindir}/httxt2dbm \
- ${sbindir}/htcacheclean \
- ${sbindir}/fcgistarter \
- ${sbindir}/checkgid \
- ${sbindir}/rotatelogs \
- "
-
-# We override here rather than append so that .so links are
-# included in the runtime package rather than here (-dev)
-# and to get build, icons, error into the -dev package
-FILES:${PN}-dev = "${datadir}/${BPN}/build \
- ${datadir}/${BPN}/icons \
- ${datadir}/${BPN}/error \
- ${includedir}/${BPN} \
- ${bindir}/apxs \
- "
-
-# Add the manual to -doc
-FILES:${PN}-doc += " ${datadir}/${BPN}/manual"
-
-FILES:${PN}-scripts += "${bindir}/dbmmanage"
-
-# Override this too - here is the default, less datadir
-FILES:${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir} \
- ${sysconfdir} ${libdir}/${BPN}"
-
-# We want htdocs and cgi-bin to go with the binary
-FILES:${PN} += "${datadir}/${BPN}/ ${libdir}/cgi-bin"
-
-FILES:${PN}-dbg += "${libdir}/${BPN}/modules/.debug"
-
-RDEPENDS:${PN} += "openssl libgcc ${PN}-utils"
-RDEPENDS:${PN}-scripts += "perl ${PN}"
-RDEPENDS:${PN}-dev = "perl"
-
-BBCLASSEXTEND = "native"
-
-pkg_postinst:${PN}() {
- if [ -z "$D" ]; then
- if type systemd-tmpfiles >/dev/null; then
- systemd-tmpfiles --create
- elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
- ${sysconfdir}/init.d/populate-volatile.sh update
- fi
- fi
-}
diff --git a/meta-webserver/recipes-httpd/apache2/apache2_2.4.58.bb b/meta-webserver/recipes-httpd/apache2/apache2_2.4.58.bb
new file mode 100644
index 0000000000..a6cdfd1659
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2_2.4.58.bb
@@ -0,0 +1,238 @@
+DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \
+extensible web server."
+SUMMARY = "Apache HTTP Server"
+HOMEPAGE = "http://httpd.apache.org/"
+SECTION = "net"
+LICENSE = "Apache-2.0"
+
+SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
+ file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
+ file://0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch \
+ file://0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch \
+ file://0004-apache2-log-the-SELinux-context-at-startup.patch \
+ file://0005-replace-lynx-to-curl-in-apachectl-script.patch \
+ file://0006-apache2-fix-the-race-issue-of-parallel-installation.patch \
+ file://0007-apache2-allow-to-disable-selinux-support.patch \
+ file://0008-Fix-perl-install-directory-to-usr-bin.patch \
+ file://0009-support-apxs.in-force-destdir-to-be-empty-string.patch \
+ file://0001-make_exports.awk-not-expose-the-path.patch \
+ "
+
+SRC_URI:append:class-target = " \
+ file://0010-apache2-do-not-use-relative-path-for-gen_test_char.patch \
+ file://init \
+ file://apache2-volatile.conf \
+ file://apache2.service \
+ file://volatiles.04_apache2 \
+ "
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bddeddfac80b2c9a882241d008bb41c3"
+SRC_URI[sha256sum] = "fa16d72a078210a54c47dd5bef2f8b9b8a01d94909a51453956b3ec6442ea4c5"
+
+S = "${WORKDIR}/httpd-${PV}"
+
+inherit autotools update-rc.d pkgconfig systemd update-alternatives
+
+DEPENDS = "openssl expat pcre apr apr-util apache2-native "
+
+CVE_PRODUCT = "apache:http_server"
+
+SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux"
+PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap"
+PACKAGECONFIG[zlib] = "--enable-deflate,,zlib,zlib"
+
+CFLAGS:append = " -DPATH_MAX=4096"
+
+EXTRA_OECONF:class-target = "\
+ --enable-layout=Debian \
+ --prefix=${base_prefix} \
+ --exec_prefix=${exec_prefix} \
+ --includedir=${includedir}/${BPN} \
+ --sysconfdir=${sysconfdir}/${BPN} \
+ --datadir=${datadir}/${BPN} \
+ --libdir=${libdir} \
+ --libexecdir=${libexecdir}/${BPN}/modules \
+ --localstatedir=${localstatedir} \
+ --enable-ssl \
+ --with-dbm=sdbm \
+ --with-gdbm=no \
+ --with-ndbm=no \
+ --with-berkeley-db=no \
+ --enable-info \
+ --enable-rewrite \
+ --with-mpm=prefork \
+ --enable-mpms-shared \
+ ap_cv_void_ptr_lt_long=no \
+ ac_cv_have_threadsafe_pollset=no \
+ "
+
+EXTRA_OECONF:class-native = "\
+ --prefix=${prefix} \
+ --includedir=${includedir}/${BPN} \
+ --sysconfdir=${sysconfdir}/${BPN} \
+ --datadir=${datadir}/${BPN} \
+ --libdir=${libdir} \
+ --libexecdir=${libdir}/${BPN}/modules \
+ --localstatedir=${localstatedir} \
+ "
+
+do_configure:prepend() {
+ sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libexecdir}/cgi-bin:g' ${S}/config.layout
+}
+
+do_install:append:class-target() {
+ install -d ${D}/${sysconfdir}/init.d
+
+ cat ${WORKDIR}/init | \
+ sed -e 's,/usr/sbin/,${sbindir}/,g' \
+ -e 's,/usr/bin/,${bindir}/,g' \
+ -e 's,/usr/lib/,${libdir}/,g' \
+ -e 's,/etc/,${sysconfdir}/,g' \
+ -e 's,/usr/,${prefix}/,g' > ${D}/${sysconfdir}/init.d/${BPN}
+
+ chmod 755 ${D}/${sysconfdir}/init.d/${BPN}
+
+ # Remove the goofy original files...
+ rm -rf ${D}/${sysconfdir}/${BPN}/original
+
+ install -d ${D}${sysconfdir}/${BPN}/conf.d
+ install -d ${D}${sysconfdir}/${BPN}/modules.d
+
+ # Ensure configuration file pulls in conf.d and modules.d
+ printf "\nIncludeOptional ${sysconfdir}/${BPN}/conf.d/*.conf" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
+ printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.load" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
+ printf "\nIncludeOptional ${sysconfdir}/${BPN}/modules.d/*.conf\n\n" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
+
+ # Match with that is in init script
+ printf "\nPidFile /run/httpd.pid" >> ${D}/${sysconfdir}/${BPN}/httpd.conf
+
+ # Set 'ServerName' to fix error messages when restart apache service
+ sed -i 's/^#ServerName www.example.com/ServerName localhost/' ${D}/${sysconfdir}/${BPN}/httpd.conf
+
+ sed -i 's/^ServerRoot/#ServerRoot/' ${D}/${sysconfdir}/${BPN}/httpd.conf
+
+ sed -i -e 's,${STAGING_DIR_TARGET},,g' \
+ -e 's,${DEBUG_PREFIX_MAP},,g' \
+ -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-ffile-prefix-map[^ ]*,,g' \
+ -e 's,${HOSTTOOLS_DIR}/,,g' \
+ -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
+ -e 's,APU_CONFIG = .*,APU_CONFIG = ,g' ${D}${datadir}/apache2/build/config_vars.mk
+
+ sed -i -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \
+ -e 's,${DEBUG_PREFIX_MAP},,g' \
+ -e 's,${RECIPE_SYSROOT},,g' \
+ -e 's,-fdebug-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g; s,-fmacro-prefix-map[^ ]*,,g' \
+ -e 's,APU_INCLUDEDIR = .*,APU_INCLUDEDIR = ,g' \
+ -e 's,".*/configure","configure",g' ${D}${datadir}/apache2/build/config.nice
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d/
+ install -m 0644 ${WORKDIR}/apache2-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/apache2.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/apache2.service
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/apache2.service
+ elif ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/volatiles.04_apache2 ${D}${sysconfdir}/default/volatiles/04_apache2
+ fi
+
+ rm -rf ${D}${localstatedir} ${D}${sbindir}/envvars*
+ chown -R root:root ${D}
+}
+
+do_install:append:class-native() {
+ install -d ${D}${bindir} ${D}${libdir}
+ install -m 755 server/gen_test_char ${D}${bindir}
+}
+
+SYSROOT_PREPROCESS_FUNCS:append:class-target = " apache_sysroot_preprocess"
+
+apache_sysroot_preprocess() {
+ install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}
+ install -m 755 ${D}${bindir}/apxs ${SYSROOT_DESTDIR}${bindir_crossscripts}
+ install -d ${SYSROOT_DESTDIR}${sbindir}
+ install -m 755 ${D}${sbindir}/apachectl ${SYSROOT_DESTDIR}${sbindir}
+ sed -i 's!my $installbuilddir = .*!my $installbuilddir = "${STAGING_DIR_HOST}/${datadir}/${BPN}/build";!' ${SYSROOT_DESTDIR}${bindir_crossscripts}/apxs
+
+ sed -i 's!^APR_CONFIG = .*!APR_CONFIG = ${STAGING_BINDIR_CROSS}/apr-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!^APU_CONFIG = .*!APU_CONFIG = ${STAGING_BINDIR_CROSS}/apu-1-config!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!^includedir = .*!includedir = ${STAGING_INCDIR}/apache2!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!^CFLAGS = -I[^ ]*!CFLAGS = -I${STAGING_INCDIR}/openssl!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!^EXTRA_LDFLAGS = .*!EXTRA_LDFLAGS = -L${STAGING_LIBDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!^EXTRA_INCLUDES = .*!EXTRA_INCLUDES = -I$(includedir) -I. -I${STAGING_INCDIR}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+ sed -i 's!--sysroot=[^ ]*!--sysroot=${STAGING_DIR_HOST}!' ${SYSROOT_DESTDIR}${datadir}/${BPN}/build/config_vars.mk
+}
+
+# Implications - used by update-rc.d scripts
+INITSCRIPT_NAME = "apache2"
+INITSCRIPT_PARAMS = "defaults 91 20"
+
+SYSTEMD_SERVICE:${PN} = "apache2.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
+
+ALTERNATIVE:${PN}-doc = "htpasswd.1"
+ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
+
+PACKAGES = "${PN}-utils ${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}"
+
+CONFFILES:${PN} = "${sysconfdir}/${BPN}/httpd.conf \
+ ${sysconfdir}/${BPN}/magic \
+ ${sysconfdir}/${BPN}/mime.types \
+ ${sysconfdir}/${BPN}/extra/*"
+
+FILES:${PN}-utils = "${bindir}/ab \
+ ${bindir}/htdbm \
+ ${bindir}/htdigest \
+ ${bindir}/htpasswd \
+ ${bindir}/logresolve \
+ ${bindir}/httxt2dbm \
+ ${sbindir}/htcacheclean \
+ ${sbindir}/fcgistarter \
+ ${sbindir}/checkgid \
+ ${sbindir}/rotatelogs \
+ "
+
+# We override here rather than append so that .so links are
+# included in the runtime package rather than here (-dev)
+# and to get build, icons, error into the -dev package
+FILES:${PN}-dev = "${datadir}/${BPN}/build \
+ ${datadir}/${BPN}/icons \
+ ${datadir}/${BPN}/error \
+ ${includedir}/${BPN} \
+ ${bindir}/apxs \
+ "
+
+# Add the manual to -doc
+FILES:${PN}-doc += " ${datadir}/${BPN}/manual"
+
+FILES:${PN}-scripts += "${bindir}/dbmmanage"
+
+# Override this too - here is the default, less datadir
+FILES:${PN} = "${bindir} ${sbindir} ${libexecdir} ${libdir} \
+ ${sysconfdir} ${libdir}/${BPN}"
+
+# We want htdocs and cgi-bin to go with the binary
+FILES:${PN} += "${datadir}/${BPN}/ ${libdir}/cgi-bin"
+
+FILES:${PN}-dbg += "${libdir}/${BPN}/modules/.debug"
+
+RDEPENDS:${PN} += "openssl libgcc ${PN}-utils"
+RDEPENDS:${PN}-scripts += "perl ${PN}"
+RDEPENDS:${PN}-dev = "perl"
+
+BBCLASSEXTEND = "native"
+
+pkg_postinst:${PN}() {
+ if [ -z "$D" ]; then
+ if type systemd-tmpfiles >/dev/null; then
+ systemd-tmpfiles --create
+ elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+ ${sysconfdir}/init.d/populate-volatile.sh update
+ fi
+ fi
+}
diff --git a/meta-webserver/recipes-httpd/apache2/files/apache2-volatile.conf b/meta-webserver/recipes-httpd/apache2/files/apache2-volatile.conf
index ff2c587046..0852a8859a 100644
--- a/meta-webserver/recipes-httpd/apache2/files/apache2-volatile.conf
+++ b/meta-webserver/recipes-httpd/apache2/files/apache2-volatile.conf
@@ -1,2 +1,2 @@
-d /var/run/apache2 0755 root root -
+d /run/apache2 0755 root root -
d /var/log/apache2 0755 root root -
diff --git a/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch
index f3be7c6e52..b16060f2a1 100644
--- a/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch
+++ b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch
@@ -7,6 +7,7 @@ Fixes errors like
| Makefile.am: error: required file './README' not found
| Makefile.am: error: required file './ChangeLog' not found
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure.ac | 2 +-
diff --git a/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch
index d4c0b6e8c6..1d6a2182bd 100644
--- a/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch
+++ b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-make-Do-not-build-po-files.patch
@@ -5,6 +5,7 @@ Subject: [PATCH] make: Do not build po files
Target fails to build
+Upstream-Status: Inappropriate [Cross-compile specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Makefile.am | 2 +-
diff --git a/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb b/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
index 7100ef4341..7763a31881 100644
--- a/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
+++ b/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "unzip-native libpcre openssl mysql5 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
SRCREV = "9a75e65b876bcc376cb6b379dca1f7ce4a055c59"
-PV = "1.2.104+git${SRCPV}"
+PV = "1.2.104+git"
SRC_URI = "git://github.com/cherokee/webserver;branch=master;protocol=https \
file://cherokee.init \
file://cherokee.service \
@@ -75,3 +75,5 @@ python() {
if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
}
+
+CVE_PRODUCT += "cherokee_web_server"
diff --git a/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch b/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch
deleted file mode 100644
index 7a229513b6..0000000000
--- a/meta-webserver/recipes-httpd/monkey/files/0001-configure-Respect-LIBS-variable-from-env.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From b0526a9b5325bd4758dad8d14efd85c98ef2ebff Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 14 Jul 2017 18:25:23 -0700
-Subject: [PATCH] configure: Respect LIBS variable from env
-
-For musl we need to pass -lexecinfo from env
-this change accomodates that
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure b/configure
-index 4286c34..f1c65db 100755
---- a/configure
-+++ b/configure
-@@ -620,7 +620,7 @@ LIBDEFS = -DSHAREDLIB -fPIC \$(DEFS)
- INCDIR = ./include
- LDFLAGS = $LDFLAGS
- DESTDIR = ../bin/monkey
--LIBS = -ldl $libs
-+LIBS = -ldl $libs ${LIBS}
- OBJ = monkey.o mk_method.o mk_mimetype.o mk_vhost.o mk_request.o \\
- mk_header.o mk_config.o mk_signals.o \\
- mk_user.o mk_utils.o mk_epoll.o mk_scheduler.o \\
---
-2.13.3
-
diff --git a/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb b/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb
index 5b7e32733c..ee5dc16198 100644
--- a/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb
+++ b/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb
@@ -7,12 +7,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
SECTION = "net"
-SRC_URI = "http://monkey-project.com/releases/1.6/monkey-${PV}.tar.gz \
+SRC_URI = "git://github.com/monkey/monkey;branch=1.6;protocol=https \
file://0001-fastcgi-Use-value-instead-of-address-of-sin6_port.patch \
file://monkey.service \
file://monkey.init"
-SRC_URI[sha256sum] = "f1122e89cda627123286542b0a18fcaa131cbe9d4f5dd897d9455157289148fb"
+SRCREV = "7999b487fded645381d387ec0e057e92407b0d2c"
+S = "${WORKDIR}/git"
UPSTREAM_CHECK_URI = "https://github.com/monkey/monkey/releases"
UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+).tar.gz"
@@ -38,6 +39,10 @@ inherit cmake pkgconfig update-rc.d systemd
OECMAKE_GENERATOR = "Unix Makefiles"
+do_configure:append() {
+ sed -i -e 's|${STAGING_BINDIR_TOOLCHAIN}/||g' ${S}/include/monkey/mk_env.h
+}
+
do_install:append() {
rmdir ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/run ${D}${localstatedir}/log
rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
diff --git a/meta-webserver/recipes-httpd/nginx/files/0001-configure-libxslt-conf.patch b/meta-webserver/recipes-httpd/nginx/files/0001-configure-libxslt-conf.patch
new file mode 100644
index 0000000000..7ba2a1fb85
--- /dev/null
+++ b/meta-webserver/recipes-httpd/nginx/files/0001-configure-libxslt-conf.patch
@@ -0,0 +1,39 @@
+From 0c3c669464a514cf8d0cac08282ecb2b486f440f Mon Sep 17 00:00:00 2001
+From: Joe Slater <joe.slater@windriver.com>
+Date: Tue, 3 Oct 2023 19:21:17 +0000
+Subject: [PATCH] configure: libxslt conf
+
+Modify to find libxslt related include files under sysroot.
+
+Upstream-Status: Pending
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+---
+ auto/lib/libxslt/conf | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/auto/lib/libxslt/conf b/auto/lib/libxslt/conf
+index 3063ac7..eb77886 100644
+--- a/auto/lib/libxslt/conf
++++ b/auto/lib/libxslt/conf
+@@ -12,7 +12,7 @@
+ #include <libxslt/xsltInternals.h>
+ #include <libxslt/transform.h>
+ #include <libxslt/xsltutils.h>"
+- ngx_feature_path="/usr/include/libxml2"
++ ngx_feature_path="=/usr/include/libxml2"
+ ngx_feature_libs="-lxml2 -lxslt"
+ ngx_feature_test="xmlParserCtxtPtr ctxt = NULL;
+ xsltStylesheetPtr sheet = NULL;
+@@ -100,7 +100,7 @@ fi
+ ngx_feature_name=NGX_HAVE_EXSLT
+ ngx_feature_run=no
+ ngx_feature_incs="#include <libexslt/exslt.h>"
+- ngx_feature_path="/usr/include/libxml2"
++ ngx_feature_path="=/usr/include/libxml2"
+ ngx_feature_libs="-lexslt"
+ ngx_feature_test="exsltRegisterAll();"
+ . auto/feature
+--
+2.35.5
+
diff --git a/meta-webserver/recipes-httpd/nginx/files/CVE-2021-3618.patch b/meta-webserver/recipes-httpd/nginx/files/CVE-2021-3618.patch
deleted file mode 100644
index be42a1ed5e..0000000000
--- a/meta-webserver/recipes-httpd/nginx/files/CVE-2021-3618.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 6dafcdebde58577f4fcb190be46a0eb910cf1b96 Mon Sep 17 00:00:00 2001
-From: Maxim Dounin <mdounin@mdounin.ru>
-Date: Wed, 19 May 2021 03:13:31 +0300
-Subject: [PATCH 1/1] Mail: max_errors directive.
-
-Similarly to smtpd_hard_error_limit in Postfix and smtp_max_unknown_commands
-in Exim, specifies the number of errors after which the connection is closed.
---- end of original header ---
-
-CVE: CVE-2021-3618
-
-Upstream-Status: Backport
- https://github.com/nginx/nginx.git
- commit 173f16f736c10eae46cd15dd861b04b82d91a37a
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
----
- src/mail/ngx_mail.h | 3 +++
- src/mail/ngx_mail_core_module.c | 10 ++++++++++
- src/mail/ngx_mail_handler.c | 15 ++++++++++++++-
- 3 files changed, 27 insertions(+), 1 deletion(-)
-
-diff --git a/src/mail/ngx_mail.h b/src/mail/ngx_mail.h
-index b865a3b9..76cae37a 100644
---- a/src/mail/ngx_mail.h
-+++ b/src/mail/ngx_mail.h
-@@ -115,6 +115,8 @@ typedef struct {
- ngx_msec_t timeout;
- ngx_msec_t resolver_timeout;
-
-+ ngx_uint_t max_errors;
-+
- ngx_str_t server_name;
-
- u_char *file_name;
-@@ -231,6 +233,7 @@ typedef struct {
- ngx_uint_t command;
- ngx_array_t args;
-
-+ ngx_uint_t errors;
- ngx_uint_t login_attempt;
-
- /* used to parse POP3/IMAP/SMTP command */
-diff --git a/src/mail/ngx_mail_core_module.c b/src/mail/ngx_mail_core_module.c
-index 40831242..115671ca 100644
---- a/src/mail/ngx_mail_core_module.c
-+++ b/src/mail/ngx_mail_core_module.c
-@@ -85,6 +85,13 @@ static ngx_command_t ngx_mail_core_commands[] = {
- offsetof(ngx_mail_core_srv_conf_t, resolver_timeout),
- NULL },
-
-+ { ngx_string("max_errors"),
-+ NGX_MAIL_MAIN_CONF|NGX_MAIL_SRV_CONF|NGX_CONF_TAKE1,
-+ ngx_conf_set_num_slot,
-+ NGX_MAIL_SRV_CONF_OFFSET,
-+ offsetof(ngx_mail_core_srv_conf_t, max_errors),
-+ NULL },
-+
- ngx_null_command
- };
-
-@@ -163,6 +170,8 @@ ngx_mail_core_create_srv_conf(ngx_conf_t *cf)
- cscf->timeout = NGX_CONF_UNSET_MSEC;
- cscf->resolver_timeout = NGX_CONF_UNSET_MSEC;
-
-+ cscf->max_errors = NGX_CONF_UNSET_UINT;
-+
- cscf->resolver = NGX_CONF_UNSET_PTR;
-
- cscf->file_name = cf->conf_file->file.name.data;
-@@ -182,6 +191,7 @@ ngx_mail_core_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
- ngx_conf_merge_msec_value(conf->resolver_timeout, prev->resolver_timeout,
- 30000);
-
-+ ngx_conf_merge_uint_value(conf->max_errors, prev->max_errors, 5);
-
- ngx_conf_merge_str_value(conf->server_name, prev->server_name, "");
-
-diff --git a/src/mail/ngx_mail_handler.c b/src/mail/ngx_mail_handler.c
-index 0aaa0e78..71b81512 100644
---- a/src/mail/ngx_mail_handler.c
-+++ b/src/mail/ngx_mail_handler.c
-@@ -871,7 +871,20 @@ ngx_mail_read_command(ngx_mail_session_t *s, ngx_connection_t *c)
- return NGX_MAIL_PARSE_INVALID_COMMAND;
- }
-
-- if (rc == NGX_IMAP_NEXT || rc == NGX_MAIL_PARSE_INVALID_COMMAND) {
-+ if (rc == NGX_MAIL_PARSE_INVALID_COMMAND) {
-+
-+ s->errors++;
-+
-+ if (s->errors >= cscf->max_errors) {
-+ ngx_log_error(NGX_LOG_INFO, c->log, 0,
-+ "client sent too many invalid commands");
-+ s->quit = 1;
-+ }
-+
-+ return rc;
-+ }
-+
-+ if (rc == NGX_IMAP_NEXT) {
- return rc;
- }
-
---
-2.25.1
-
diff --git a/meta-webserver/recipes-httpd/nginx/files/CVE-2023-44487.patch b/meta-webserver/recipes-httpd/nginx/files/CVE-2023-44487.patch
new file mode 100644
index 0000000000..2fc6a60f6f
--- /dev/null
+++ b/meta-webserver/recipes-httpd/nginx/files/CVE-2023-44487.patch
@@ -0,0 +1,78 @@
+From 6ceef192e7af1c507826ac38a2d43f08bf265fb9 Mon Sep 17 00:00:00 2001
+From: Maxim Dounin <mdounin@mdounin.ru>
+Date: Wed, 10 Jan 2024 18:52:11 +0000
+Subject: [PATCH] HTTP/2: per-iteration stream handling limit.
+
+To ensure that attempts to flood servers with many streams are detected
+early, a limit of no more than 2 * max_concurrent_streams new streams per one
+event loop iteration was introduced. This limit is applied even if
+max_concurrent_streams is not yet reached - for example, if corresponding
+streams are handled synchronously or reset.
+
+Further, refused streams are now limited to maximum of max_concurrent_streams
+and 100, similarly to priority_limit initial value, providing some tolerance
+to clients trying to open several streams at the connection start, yet
+low tolerance to flooding attempts.
+
+Upstream-Status: Backport [https://github.com/nginx/nginx/commit/6ceef192e7af1c507826ac38a2d43f08bf265fb9]
+CVE: CVE-2023-44487
+
+Signed-off-by: alperak <alperyasinak1@gmail.com>
+---
+ src/http/v2/ngx_http_v2.c | 15 +++++++++++++++
+ src/http/v2/ngx_http_v2.h | 2 ++
+ 2 files changed, 17 insertions(+)
+
+diff --git a/src/http/v2/ngx_http_v2.c b/src/http/v2/ngx_http_v2.c
+index ea3f27c..1116e56 100644
+--- a/src/http/v2/ngx_http_v2.c
++++ b/src/http/v2/ngx_http_v2.c
+@@ -361,6 +361,7 @@ ngx_http_v2_read_handler(ngx_event_t *rev)
+ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0, "http2 read handler");
+
+ h2c->blocked = 1;
++ h2c->new_streams = 0;
+
+ if (c->close) {
+ c->close = 0;
+@@ -1321,6 +1322,14 @@ ngx_http_v2_state_headers(ngx_http_v2_connection_t *h2c, u_char *pos,
+ goto rst_stream;
+ }
+
++ if (h2c->new_streams++ >= 2 * h2scf->concurrent_streams) {
++ ngx_log_error(NGX_LOG_INFO, h2c->connection->log, 0,
++ "client sent too many streams at once");
++
++ status = NGX_HTTP_V2_REFUSED_STREAM;
++ goto rst_stream;
++ }
++
+ if (!h2c->settings_ack
+ && !(h2c->state.flags & NGX_HTTP_V2_END_STREAM_FLAG)
+ && h2scf->preread_size < NGX_HTTP_V2_DEFAULT_WINDOW)
+@@ -1386,6 +1395,12 @@ ngx_http_v2_state_headers(ngx_http_v2_connection_t *h2c, u_char *pos,
+
+ rst_stream:
+
++ if (h2c->refused_streams++ > ngx_max(h2scf->concurrent_streams, 100)) {
++ ngx_log_error(NGX_LOG_INFO, h2c->connection->log, 0,
++ "client sent too many refused streams");
++ return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_NO_ERROR);
++ }
++
+ if (ngx_http_v2_send_rst_stream(h2c, h2c->state.sid, status) != NGX_OK) {
+ return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_INTERNAL_ERROR);
+ }
+diff --git a/src/http/v2/ngx_http_v2.h b/src/http/v2/ngx_http_v2.h
+index 4e25293..b9daf92 100644
+--- a/src/http/v2/ngx_http_v2.h
++++ b/src/http/v2/ngx_http_v2.h
+@@ -124,6 +124,8 @@ struct ngx_http_v2_connection_s {
+ ngx_uint_t processing;
+ ngx_uint_t frames;
+ ngx_uint_t idle;
++ ngx_uint_t new_streams;
++ ngx_uint_t refused_streams;
+ ngx_uint_t priority_limit;
+
+ ngx_uint_t pushing;
diff --git a/meta-webserver/recipes-httpd/nginx/nginx.inc b/meta-webserver/recipes-httpd/nginx/nginx.inc
index dfced33300..83ae90c40c 100644
--- a/meta-webserver/recipes-httpd/nginx/nginx.inc
+++ b/meta-webserver/recipes-httpd/nginx/nginx.inc
@@ -22,6 +22,7 @@ SRC_URI = " \
file://nginx-volatile.conf \
file://nginx.service \
file://nginx-fix-pidfile.patch \
+ file://0001-configure-libxslt-conf.patch \
"
inherit siteinfo update-rc.d useradd systemd
@@ -37,12 +38,18 @@ NGINX_USER ?= "www"
EXTRA_OECONF = ""
DISABLE_STATIC = ""
-PACKAGECONFIG ??= "ssl"
+PACKAGECONFIG ??= "ssl ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
PACKAGECONFIG[gunzip] = "--with-http_gunzip_module,,"
PACKAGECONFIG[http2] = "--with-http_v2_module,,"
PACKAGECONFIG[ssl] = "--with-http_ssl_module,,openssl"
PACKAGECONFIG[http-auth-request] = "--with-http_auth_request_module,,"
+PACKAGECONFIG[ipv6] = "--with-ipv6,,"
+PACKAGECONFIG[webdav] = "--with-http_dav_module,,"
+PACKAGECONFIG[stream] = "--with-stream,,"
+PACKAGECONFIG[http-sub-module] = "--with-http_sub_module,,"
+
+PACKAGECONFIG[xslt] = "--with-http_xslt_module,,libxslt"
do_configure () {
if [ "${SITEINFO_BITS}" = "64" ]; then
@@ -146,7 +153,7 @@ do_install () {
pkg_postinst:${PN} () {
if [ -z "$D" ]; then
- if type systemd-tmpfiles >/dev/null; then
+ if type systemd-tmpfiles >/dev/null 2>&1; then
systemd-tmpfiles --create
elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
${sysconfdir}/init.d/populate-volatile.sh update
@@ -179,4 +186,5 @@ USERADD_PARAM:${PN} = " \
--system --no-create-home \
--home ${NGINX_WWWDIR} \
--groups www-data \
+ --shell ${base_sbindir}/nologin \
--user-group ${NGINX_USER}"
diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.20.1.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.20.1.bb
deleted file mode 100644
index d686c627f2..0000000000
--- a/meta-webserver/recipes-httpd/nginx/nginx_1.20.1.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require nginx.inc
-
-SRC_URI += "file://CVE-2021-3618.patch"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=206629dc7c7b3e87acb31162363ae505"
-
-SRC_URI[md5sum] = "8ca6edd5076bdfad30a69c9c9b41cc68"
-SRC_URI[sha256sum] = "e462e11533d5c30baa05df7652160ff5979591d291736cfa5edb9fd2edb48c49"
-
diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.21.1.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.21.1.bb
deleted file mode 100644
index b69fd7dab0..0000000000
--- a/meta-webserver/recipes-httpd/nginx/nginx_1.21.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require nginx.inc
-
-# 1.20.x branch is the current stable branch, the recommended default
-# 1.21.x is the current mainline branches containing all new features
-DEFAULT_PREFERENCE = "-1"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=206629dc7c7b3e87acb31162363ae505"
-
-SRC_URI[md5sum] = "7dce9e2136ec32dfd823736e871815b1"
-SRC_URI[sha256sum] = "68ba0311342115163a0354cad34f90c05a7e8bf689dc498abf07899eda155560"
diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.24.0.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.24.0.bb
new file mode 100644
index 0000000000..e5666f6fe6
--- /dev/null
+++ b/meta-webserver/recipes-httpd/nginx/nginx_1.24.0.bb
@@ -0,0 +1,8 @@
+require nginx.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=175abb631c799f54573dc481454c8632"
+
+SRC_URI:append = " file://CVE-2023-44487.patch"
+
+SRC_URI[sha256sum] = "77a2541637b92a621e3ee76776c8b7b40cf6d707e69ba53a940283e30ff2f55d"
+
diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.25.3.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.25.3.bb
new file mode 100644
index 0000000000..d0371dd3cc
--- /dev/null
+++ b/meta-webserver/recipes-httpd/nginx/nginx_1.25.3.bb
@@ -0,0 +1,10 @@
+require nginx.inc
+
+# 1.24.x branch is the current stable branch, the recommended default
+# 1.25.x is the current mainline branches containing all new features
+DEFAULT_PREFERENCE = "-1"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=79ad2eb837299421c4435dedc8897b3d"
+
+SRC_URI[sha256sum] = "64c5b975ca287939e828303fa857d22f142b251f17808dfe41733512d9cded86"
+
diff --git a/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.2.0.bb b/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.2.0.bb
deleted file mode 100644
index 45de455643..0000000000
--- a/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.2.0.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Web-based MySQL administration interface"
-HOMEPAGE = "http://www.phpmyadmin.net"
-# Main code is GPLv2, vendor/tecnickcom/tcpdf is under LGPLv3, js/jquery is under MIT
-LICENSE = "GPL-2.0-only & LGPL-3.0-only & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://vendor/tecnickcom/tcpdf/LICENSE.TXT;md5=dd6470bbcd3436ca317f82d34abaf688 \
- file://js/vendor/jquery/MIT-LICENSE.txt;md5=de877aa6d744cc160ff41c26a8e4811f \
-"
-
-SRC_URI = "https://files.phpmyadmin.net/phpMyAdmin/${PV}/phpMyAdmin-${PV}-all-languages.tar.xz \
- file://apache.conf \
-"
-
-SRC_URI[sha256sum] = "66da31ca295f06182ac3f2e6e96057dc824c459baedf4b29de6ed0d3be039230"
-
-UPSTREAM_CHECK_URI = "https://www.phpmyadmin.net/downloads/"
-UPSTREAM_CHECK_REGEX = "phpMyAdmin-(?P<pver>\d+(\.\d+)+)-all-languages.tar.xz"
-
-S = "${WORKDIR}/phpMyAdmin-${PV}-all-languages"
-
-inherit allarch
-
-do_install() {
- install -d ${D}${datadir}/${BPN}
- cp -R --no-dereference --preserve=mode,links -v * ${D}${datadir}/${BPN}
- chown -R root:root ${D}${datadir}/${BPN}
- # Don't install patches to target
- rm -rf ${D}${datadir}/${BPN}/patches
-
- install -d ${D}${sysconfdir}/apache2/conf.d
- install -m 0644 ${WORKDIR}/apache.conf ${D}${sysconfdir}/apache2/conf.d/phpmyadmin.conf
-
- # Remove a few scripts that explicitly require bash (!)
- rm -f ${D}${datadir}/phpmyadmin/libraries/transformations/*.sh
-}
-
-FILES:${PN} = "${datadir}/${BPN} \
- ${sysconfdir}/apache2/conf.d"
-
-RDEPENDS:${PN} += "bash php-cli"
diff --git a/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.2.1.bb b/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.2.1.bb
new file mode 100644
index 0000000000..34b710e885
--- /dev/null
+++ b/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.2.1.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Web-based MySQL administration interface"
+HOMEPAGE = "http://www.phpmyadmin.net"
+# Main code is GPLv2, vendor/tecnickcom/tcpdf is under LGPLv3, js/jquery is under MIT
+LICENSE = "GPL-2.0-only & LGPL-3.0-only & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://vendor/tecnickcom/tcpdf/LICENSE.TXT;md5=d0ff7e060074497f34481cf574e8a581 \
+ file://js/vendor/jquery/MIT-LICENSE.txt;md5=de877aa6d744cc160ff41c26a8e4811f \
+"
+
+SRC_URI = "https://files.phpmyadmin.net/phpMyAdmin/${PV}/phpMyAdmin-${PV}-all-languages.tar.xz \
+ file://apache.conf \
+"
+
+SRC_URI[sha256sum] = "373f9599dfbd96d6fe75316d5dad189e68c305f297edf42377db9dd6b41b2557"
+
+UPSTREAM_CHECK_URI = "https://www.phpmyadmin.net/downloads/"
+UPSTREAM_CHECK_REGEX = "phpMyAdmin-(?P<pver>\d+(\.\d+)+)-all-languages.tar.xz"
+
+S = "${WORKDIR}/phpMyAdmin-${PV}-all-languages"
+
+inherit allarch
+
+do_install() {
+ install -d ${D}${datadir}/${BPN}
+ cp -R --no-dereference --preserve=mode,links -v * ${D}${datadir}/${BPN}
+ chown -R root:root ${D}${datadir}/${BPN}
+ # Don't install patches to target
+ rm -rf ${D}${datadir}/${BPN}/patches
+
+ install -d ${D}${sysconfdir}/apache2/conf.d
+ install -m 0644 ${WORKDIR}/apache.conf ${D}${sysconfdir}/apache2/conf.d/phpmyadmin.conf
+
+ # Remove a few scripts that explicitly require bash (!)
+ rm -f ${D}${datadir}/phpmyadmin/libraries/transformations/*.sh
+}
+
+FILES:${PN} = "${datadir}/${BPN} \
+ ${sysconfdir}/apache2/conf.d"
+
+RDEPENDS:${PN} += "bash php-cli"
diff --git a/meta-webserver/recipes-php/xdebug/xdebug_3.1.1.bb b/meta-webserver/recipes-php/xdebug/xdebug_3.1.1.bb
deleted file mode 100644
index 580ae7e89a..0000000000
--- a/meta-webserver/recipes-php/xdebug/xdebug_3.1.1.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Debugging and profiling extension for PHP"
-LICENSE = "Xdebug"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=92d94a330d34ee6edc2638450736f119"
-
-DEPENDS = "php re2c-native"
-
-SRC_URI = "http://xdebug.org/files/xdebug-${PV}.tgz"
-
-SRC_URI[sha256sum] = "9be3ae0fdb4dc4a4c68084626cddc56f12396487e309a8c8dd318f0f900d1a68"
-
-UPSTREAM_CHECK_REGEX = "xdebug-(?P<pver>\d+(\.\d+)+)\.tgz"
-
-inherit autotools
-
-EXTRA_OECONF += "--enable-xdebug -with-php-config=${STAGING_BINDIR_CROSS}/php-config"
-
-do_configure() {
- cd ${S}
- ${STAGING_BINDIR_CROSS}/phpize
- cd ${B}
-
- # Running autoreconf as autotools_do_configure would do here
- # breaks the libtool configuration resulting in a failure later
- # in do_compile. It's possible this may be fixable, however the
- # easiest course of action for the moment is to avoid doing that.
- oe_runconf
-}
-
-do_install() {
- oe_runmake install INSTALL_ROOT=${D}
-}
-
-FILES:${PN} += "${libdir}/php*/extensions/*/*.so"
-FILES:${PN}-dbg += "${libdir}/php*/extensions/*/.debug"
diff --git a/meta-webserver/recipes-php/xdebug/xdebug_3.2.2.bb b/meta-webserver/recipes-php/xdebug/xdebug_3.2.2.bb
new file mode 100644
index 0000000000..8ad588d291
--- /dev/null
+++ b/meta-webserver/recipes-php/xdebug/xdebug_3.2.2.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Debugging and profiling extension for PHP"
+LICENSE = "Xdebug"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=92d94a330d34ee6edc2638450736f119"
+
+DEPENDS = "php re2c-native"
+
+SRC_URI = "http://xdebug.org/files/xdebug-${PV}.tgz"
+
+SRC_URI[sha256sum] = "f48777371f90cbb315ea4ea082a1ede6765bcfb35d7d6356ab8f71fd6dfcc157"
+
+UPSTREAM_CHECK_REGEX = "xdebug-(?P<pver>\d+(\.\d+)+)\.tgz"
+
+inherit autotools
+
+EXTRA_OECONF += "--enable-xdebug -with-php-config=${STAGING_BINDIR_CROSS}/php-config"
+
+do_configure() {
+ cd ${S}
+ ${STAGING_BINDIR_CROSS}/phpize
+ cd ${B}
+
+ # Running autoreconf as autotools_do_configure would do here
+ # breaks the libtool configuration resulting in a failure later
+ # in do_compile. It's possible this may be fixable, however the
+ # easiest course of action for the moment is to avoid doing that.
+ oe_runconf
+}
+
+do_install() {
+ oe_runmake install INSTALL_ROOT=${D}
+}
+
+FILES:${PN} += "${libdir}/php*/extensions/*/*.so"
+FILES:${PN}-dbg += "${libdir}/php*/extensions/*/.debug"
diff --git a/meta-webserver/recipes-support/fcgiwrap/fcgiwrap/0001-Fix-implicit-fallthrough-warning.patch b/meta-webserver/recipes-support/fcgiwrap/fcgiwrap/0001-Fix-implicit-fallthrough-warning.patch
index d05abd25ca..e160b8644a 100644
--- a/meta-webserver/recipes-support/fcgiwrap/fcgiwrap/0001-Fix-implicit-fallthrough-warning.patch
+++ b/meta-webserver/recipes-support/fcgiwrap/fcgiwrap/0001-Fix-implicit-fallthrough-warning.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix implicit fallthrough warning
Fixes a warning about an implicit fall through in a case statement
(-Werror=implicit-fallthrough) with newer versions of GCC
-Upstream-status: Submitted [https://github.com/gnosek/fcgiwrap/pull/54]
+Upstream-Status: Submitted [https://github.com/gnosek/fcgiwrap/pull/54]
Signed-off-by: Joshua Watt <Joshua.Watt@garmin.com>
---
configure.ac | 3 +
diff --git a/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi-1.6.4/fix_configure_ipv6_test.patch b/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi-1.6.4/fix_configure_ipv6_test.patch
deleted file mode 100644
index 9409dd2b15..0000000000
--- a/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi-1.6.4/fix_configure_ipv6_test.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Testing for IPv6 support got broken by configure.ac changes in 1.6.4
-As a temp workaround, revert back to the 1.6.3 version.
-
-Upstream-Status: Pending
-
---- spawn-fcgi-1.6.4/configure.ac
-+++ spawn-fcgi-1.6.3/configure.ac
-@@ -66,8 +47,8 @@
- # Check for IPv6 support
-
- AC_ARG_ENABLE(ipv6,
-- AC_HELP_STRING([--disable-ipv6],[disable IPv6 support]),
-- [case "${enableval}" in
-+ AC_HELP_STRING([--disable-ipv6],[disable IPv6 support]),
-+ [case "${enableval}" in
- yes) ipv6=true ;;
- no) ipv6=false ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --enable-ipv6) ;;
-@@ -75,13 +56,10 @@
-
- if test x$ipv6 = xtrue; then
- AC_CACHE_CHECK([for IPv6 support], ac_cv_ipv6_support,
-- [AC_TRY_LINK([[
--#include <sys/types.h>
-+ [AC_TRY_LINK([ #include <sys/types.h>
- #include <sys/socket.h>
--#include <netinet/in.h>
-- ]], [[
--struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;
-- ]], [ac_cv_ipv6_support=yes], [ac_cv_ipv6_support=no])])
-+#include <netinet/in.h>], [struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0; ],
-+ [ac_cv_ipv6_support=yes], [ac_cv_ipv6_support=no])])
-
- if test "$ac_cv_ipv6_support" = yes; then
- AC_DEFINE(HAVE_IPV6,1,[Whether to enable IPv6 support])
diff --git a/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb b/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb
deleted file mode 100644
index 808d4528c1..0000000000
--- a/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "spawn-fcgi is used to spawn FastCGI applications"
-HOMEPAGE = "http://redmine.lighttpd.net/projects/spawn-fcgi"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579"
-
-SRC_URI = "http://download.lighttpd.net/spawn-fcgi/releases-1.6.x/spawn-fcgi-${PV}.tar.gz \
- file://fix_configure_ipv6_test.patch"
-
-SRC_URI[md5sum] = "e970de4efe8045c01dd76280f39901aa"
-SRC_URI[sha256sum] = "ab327462cb99894a3699f874425a421d934f957cb24221f00bb888108d9dd09e"
-
-inherit autotools
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.5.bb b/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.5.bb
new file mode 100644
index 0000000000..307919f775
--- /dev/null
+++ b/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.5.bb
@@ -0,0 +1,14 @@
+SUMMARY = "spawn-fcgi is used to spawn FastCGI applications"
+HOMEPAGE = "http://redmine.lighttpd.net/projects/spawn-fcgi"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579"
+
+SRC_URI = "http://download.lighttpd.net/spawn-fcgi/releases-1.6.x/spawn-fcgi-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "a72d7bf7fb6d1a0acda89c93d4f060bf77a2dba97ddcfecd00f11e708f592c40"
+
+inherit autotools
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-webserver/recipes-webadmin/cockpit/cockpit_276.bb b/meta-webserver/recipes-webadmin/cockpit/cockpit_276.bb
deleted file mode 100644
index 93198e3569..0000000000
--- a/meta-webserver/recipes-webadmin/cockpit/cockpit_276.bb
+++ /dev/null
@@ -1,194 +0,0 @@
-SUMMARY = "Admin interface for Linux machines"
-DESCRIPTION = "Cockpit makes it easy to administer your GNU/Linux servers via a web browser"
-
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI += " \
- https://github.com/cockpit-project/cockpit/releases/download/${PV}/cockpit-${PV}.tar.xz \
- file://0001-remove-tests-dep-on-gobject-intro.patch \
- file://0002-fix-makefile-use-copy-rule-for-unmodified-files.patch \
- file://0001-Warn-not-error-if-xsltproc-is-not-found.patch \
- file://cockpit.pam \
- "
-SRC_URI[sha256sum] = "dde91a157ee8514112334653fa2775a99d71bd1b604067a48eaf7411114d19de"
-
-inherit gettext pkgconfig autotools systemd features_check
-
-DEPENDS += "glib-2.0-native intltool-native gnutls virtual/gettext json-glib krb5 libpam systemd"
-
-COMPATIBLE_HOST:libc-musl = "null"
-
-RDEPENDS:${PN} += "glib-networking"
-
-REQUIRED_DISTRO_FEATURES = "systemd pam"
-
-COCKPIT_USER_GROUP ?= "root"
-COCKPIT_WS_USER_GROUP ?= "${COCKPIT_USER_GROUP}"
-
-EXTRA_AUTORECONF = "-I tools"
-EXTRA_OECONF = " \
- --with-cockpit-user=${COCKPIT_USER_GROUP} \
- --with-cockpit-group=${COCKPIT_USER_GROUP} \
- --with-admin-group=${COCKPIT_USER_GROUP} \
- --with-cockpit-ws-instance-user=${COCKPIT_WS_USER_GROUP} \
- --with-cockpit-ws-instance-group=${COCKPIT_WS_USER_GROUP} \
- --disable-doc \
- --with-systemdunitdir=${systemd_system_unitdir} \
-"
-
-PACKAGECONFIG ??= " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \
-"
-
-PACKAGECONFIG[pcp] = "--enable-pcp,--disable-pcp,pcp"
-PACKAGECONFIG[dashboard] = "--enable-ssh,--disable-ssh,libssh"
-PACKAGECONFIG[storaged] = ",,,udisks2"
-PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit"
-
-PACKAGES =+ " \
- ${PN}-pcp \
- ${PN}-realmd \
- ${PN}-tuned \
- ${PN}-shell \
- ${PN}-systemd \
- ${PN}-users \
- ${PN}-kdump \
- ${PN}-sosreport \
- ${PN}-storaged \
- ${PN}-networkmanager \
- ${PN}-machines \
- ${PN}-selinux \
- ${PN}-playground \
- ${PN}-docker \
- ${PN}-dashboard \
- ${PN}-bridge \
- ${PN}-ws \
- ${PN}-desktop \
-"
-SYSTEMD_PACKAGES = "${PN}-ws"
-
-FILES:${PN}-pcp = " \
- ${libexecdir}/cockpit-pcp \
- ${datadir}/cockpit/pcp \
- ${localstatedir}/lib/pcp/config/pmlogconf/tools/cockpit \
-"
-FILES:${PN}-realmd = "${datadir}/cockpit/realmd"
-FILES:${PN}-tuned = "${datadir}/cockpit/tuned"
-FILES:${PN}-shell = "${datadir}/cockpit/shell"
-FILES:${PN}-systemd = "${datadir}/cockpit/systemd"
-FILES:${PN}-users = "${datadir}/cockpit/users"
-FILES:${PN}-kdump = " \
- ${datadir}/cockpit/kdump \
- ${datadir}/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml \
-"
-FILES:${PN}-sosreport = " \
- ${datadir}/cockpit/sosreport \
- ${datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml \
- ${datadir}/pixmaps/cockpit-sosreport.png \
-"
-FILES:${PN}-storaged = " \
- ${datadir}/cockpit/storaged \
- ${datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml \
-"
-
-FILES:${PN}-networkmanager = "${datadir}/cockpit/networkmanager"
-RDEPENDS:${PN}-networkmanager = "networkmanager"
-
-FILES:${PN}-machines = " \
- ${datadir}/cockpit/machines \
- ${datadir}/metainfo/org.cockpit-project.cockpit-machines.metainfo.xml \
-"
-FILES:${PN}-selinux = " \
- ${datadir}/cockpit/selinux \
- ${datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml \
-"
-FILES:${PN}-playground = "${datadir}/cockpit/playground"
-FILES:${PN}-docker = " \
- ${datadir}/cockpit/docker \
- ${datadir}/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml \
-"
-FILES:${PN}-dashboard = "${datadir}/cockpit/dashboard"
-ALLOW_EMPTY:${PN}-dashboard = "1"
-
-FILES:${PN}-bridge = " \
- ${bindir}/cockpit-bridge \
- ${libexec}/cockpit-askpass \
-"
-RDEPENDS:${PN}-bridge = ""
-
-FILES:${PN}-desktop = "${libexecdir}/cockpit-desktop"
-RDEPENDS:${PN}-desktop += "bash"
-
-FILES:${PN}-ws = " \
- ${sysconfdir}/cockpit/ws-certs.d \
- ${sysconfdir}/pam.d/cockpit \
- ${sysconfdir}/issue.d/cockpit.issue \
- ${sysconfdir}/motd.d/cockpit \
- ${datadir}/cockpit/motd/update-motd \
- ${datadir}/cockpit/motd/inactive.motd \
- ${systemd_system_unitdir}/cockpit.service \
- ${systemd_system_unitdir}/cockpit-motd.service \
- ${systemd_system_unitdir}/cockpit.socket \
- ${systemd_system_unitdir}/cockpit-wsinstance-http.socket \
- ${systemd_system_unitdir}/cockpit-wsinstance-http.service \
- ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.socket \
- ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.service \
- ${systemd_system_unitdir}/cockpit-wsinstance-https-factory.socket \
- ${systemd_system_unitdir}/cockpit-wsinstance-https-factory@.service \
- ${systemd_system_unitdir}/cockpit-wsinstance-https@.socket \
- ${systemd_system_unitdir}/cockpit-wsinstance-https@.service \
- ${systemd_system_unitdir}/system-cockpithttps.slice \
- ${libdir}/tmpfiles.d/cockpit-tempfiles.conf \
- ${sbindir}/remotectl \
- ${libdir}/security/pam_ssh_add.so \
- ${libdir}/security/pam_cockpit_cert.so \
- ${libexecdir}/cockpit-ws \
- ${libexecdir}/cockpit-wsinstance-factory \
- ${libexecdir}/cockpit-tls \
- ${libexecdir}/cockpit-session \
- ${localstatedir}/lib/cockpit \
- ${datadir}/cockpit/static \
- ${datadir}/cockpit/branding \
-"
-CONFFILES:${PN}-ws += " \
- ${sysconfdir}/issue.d/cockpit.issue \
- ${sysconfdir}/motd.d/cockpit \
-"
-RDEPENDS:${PN}-ws += "openssl-bin"
-SYSTEMD_SERVICE:${PN}-ws = "cockpit.socket"
-
-FILES:${PN} += " \
- ${datadir}/cockpit/base1 \
- ${sysconfdir}/cockpit/machines.d \
- ${datadir}/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy \
- ${datadir}/cockpit/ssh \
- ${libexecdir}/cockpit-ssh \
- ${datadir}/cockpit \
- ${datadir}/metainfo/cockpit.appdata.xml \
- ${datadir}/pixmaps/cockpit.png \
- ${nonarch_libdir}/tmpfiles.d \
- ${nonarch_libdir}/firewalld \
-"
-RDEPENDS:${PN} += "${PN}-bridge"
-# Needs bash for /usr/libexec/cockpit-certificate-helper
-RDEPENDS:${PN} += "bash"
-
-do_install:append() {
- pkgdatadir=${datadir}/cockpit
-
- chmod 4750 ${D}${libexecdir}/cockpit-session
-
- install -d "${D}${sysconfdir}/pam.d"
- install -p -m 0644 ${WORKDIR}/cockpit.pam ${D}${sysconfdir}/pam.d/cockpit
-
- # provided by firewalld
- rm -rf ${D}${libdir}/firewalld
-
- if ! ${@bb.utils.contains('PACKAGECONFIG', 'storaged', 'true', 'false', d)}; then
- for filename in ${FILES:${PN}-storaged}
- do
- rm -rf ${D}$filename
- done
- fi
-}
diff --git a/meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb b/meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb
new file mode 100644
index 0000000000..df7f47a118
--- /dev/null
+++ b/meta-webserver/recipes-webadmin/cockpit/cockpit_304.bb
@@ -0,0 +1,207 @@
+SUMMARY = "Admin interface for Linux machines"
+DESCRIPTION = "Cockpit makes it easy to administer your GNU/Linux servers via a web browser"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI += " \
+ https://github.com/cockpit-project/cockpit/releases/download/${PV}/cockpit-${PV}.tar.xz \
+ file://0001-Warn-not-error-if-xsltproc-is-not-found.patch \
+ file://cockpit.pam \
+ "
+SRC_URI[sha256sum] = "a87d090c930e2058bb3e970ca7f2bafe678687966b5c0b8b42a802977e391ce9"
+
+inherit gettext pkgconfig autotools systemd features_check
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'old-bridge', '', 'python3targetconfig', d)}
+
+DEPENDS += "glib-2.0-native intltool-native gnutls virtual/gettext json-glib krb5 libpam systemd python3-setuptools-native"
+DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'old-bridge', '', 'python3-pip-native', d)}"
+
+COMPATIBLE_HOST:libc-musl = "null"
+
+RDEPENDS:${PN} += "glib-networking"
+
+REQUIRED_DISTRO_FEATURES = "systemd pam"
+
+COCKPIT_USER_GROUP ?= "root"
+COCKPIT_WS_USER_GROUP ?= "${COCKPIT_USER_GROUP}"
+
+EXTRA_AUTORECONF = "-I tools"
+EXTRA_OECONF = " \
+ --with-cockpit-user=${COCKPIT_USER_GROUP} \
+ --with-cockpit-group=${COCKPIT_USER_GROUP} \
+ --with-admin-group=${COCKPIT_USER_GROUP} \
+ --with-cockpit-ws-instance-user=${COCKPIT_WS_USER_GROUP} \
+ --with-cockpit-ws-instance-group=${COCKPIT_WS_USER_GROUP} \
+ --disable-doc \
+ --with-systemdunitdir=${systemd_system_unitdir} \
+"
+
+PACKAGECONFIG ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \
+ old-bridge \
+"
+
+PACKAGECONFIG[pcp] = "--enable-pcp,--disable-pcp,pcp"
+PACKAGECONFIG[dashboard] = "--enable-ssh,--disable-ssh,libssh"
+PACKAGECONFIG[storaged] = ",,,udisks2"
+PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit"
+PACKAGECONFIG[old-bridge] = "--enable-old-bridge"
+
+PACKAGES =+ " \
+ ${PN}-pcp \
+ ${PN}-realmd \
+ ${PN}-tuned \
+ ${PN}-shell \
+ ${PN}-systemd \
+ ${PN}-users \
+ ${PN}-kdump \
+ ${PN}-sosreport \
+ ${PN}-storaged \
+ ${PN}-networkmanager \
+ ${PN}-machines \
+ ${PN}-selinux \
+ ${PN}-playground \
+ ${PN}-docker \
+ ${PN}-dashboard \
+ ${PN}-packagekit \
+ ${PN}-apps \
+ ${PN}-bridge \
+ ${PN}-ws \
+ ${PN}-desktop \
+"
+SYSTEMD_PACKAGES = "${PN}-ws"
+
+FILES:${PN}-pcp = " \
+ ${libexecdir}/cockpit-pcp \
+ ${datadir}/cockpit/pcp \
+ ${localstatedir}/lib/pcp/config/pmlogconf/tools/cockpit \
+"
+FILES:${PN}-realmd = "${datadir}/cockpit/realmd"
+FILES:${PN}-tuned = "${datadir}/cockpit/tuned"
+FILES:${PN}-shell = "${datadir}/cockpit/shell"
+FILES:${PN}-systemd = "${datadir}/cockpit/systemd"
+FILES:${PN}-users = "${datadir}/cockpit/users"
+FILES:${PN}-kdump = " \
+ ${datadir}/cockpit/kdump \
+ ${datadir}/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml \
+"
+FILES:${PN}-sosreport = " \
+ ${datadir}/cockpit/sosreport \
+ ${datadir}/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml \
+ ${datadir}/pixmaps/cockpit-sosreport.png \
+"
+FILES:${PN}-storaged = " \
+ ${datadir}/cockpit/storaged \
+ ${datadir}/metainfo/org.cockpit-project.cockpit-storaged.metainfo.xml \
+"
+
+FILES:${PN}-networkmanager = " \
+ ${datadir}/cockpit/networkmanager \
+ ${datadir}/metainfo/org.cockpit-project.cockpit-networkmanager.metainfo.xml \
+"
+RDEPENDS:${PN}-networkmanager = "networkmanager"
+
+FILES:${PN}-machines = " \
+ ${datadir}/cockpit/machines \
+ ${datadir}/metainfo/org.cockpit-project.cockpit-machines.metainfo.xml \
+"
+FILES:${PN}-selinux = " \
+ ${datadir}/cockpit/selinux \
+ ${datadir}/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml \
+"
+FILES:${PN}-playground = "${datadir}/cockpit/playground"
+FILES:${PN}-docker = " \
+ ${datadir}/cockpit/docker \
+ ${datadir}/metainfo/org.cockpit-project.cockpit-docker.metainfo.xml \
+"
+FILES:${PN}-dashboard = "${datadir}/cockpit/dashboard"
+ALLOW_EMPTY:${PN}-dashboard = "1"
+
+FILES:${PN}-packagekit = "${datadir}/cockpit/packagekit"
+FILES:${PN}-apps = "${datadir}/cockpit/apps"
+
+FILES:${PN}-bridge = " \
+ ${bindir}/cockpit-bridge \
+ ${libexecdir}/cockpit-askpass \
+ ${PYTHON_SITEPACKAGES_DIR} \
+"
+RDEPENDS:${PN}-bridge = "${@bb.utils.contains('PACKAGECONFIG', 'old-bridge', '', 'python3', d)}"
+
+FILES:${PN}-desktop = "${libexecdir}/cockpit-desktop"
+RDEPENDS:${PN}-desktop += "bash"
+
+FILES:${PN}-ws = " \
+ ${sysconfdir}/cockpit/ws-certs.d \
+ ${sysconfdir}/pam.d/cockpit \
+ ${sysconfdir}/issue.d/cockpit.issue \
+ ${sysconfdir}/motd.d/cockpit \
+ ${datadir}/cockpit/motd/update-motd \
+ ${datadir}/cockpit/motd/inactive.motd \
+ ${systemd_system_unitdir}/cockpit.service \
+ ${systemd_system_unitdir}/cockpit-motd.service \
+ ${systemd_system_unitdir}/cockpit.socket \
+ ${systemd_system_unitdir}/cockpit-session.socket \
+ ${systemd_system_unitdir}/cockpit-session@.service \
+ ${systemd_system_unitdir}/cockpit-wsinstance-http.socket \
+ ${systemd_system_unitdir}/cockpit-wsinstance-http.service \
+ ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.socket \
+ ${systemd_system_unitdir}/cockpit-wsinstance-http-redirect.service \
+ ${systemd_system_unitdir}/cockpit-wsinstance-https-factory.socket \
+ ${systemd_system_unitdir}/cockpit-wsinstance-https-factory@.service \
+ ${systemd_system_unitdir}/cockpit-wsinstance-https@.socket \
+ ${systemd_system_unitdir}/cockpit-wsinstance-https@.service \
+ ${systemd_system_unitdir}/system-cockpithttps.slice \
+ ${libdir}/tmpfiles.d/cockpit-tempfiles.conf \
+ ${sbindir}/remotectl \
+ ${libdir}/security/pam_ssh_add.so \
+ ${libdir}/security/pam_cockpit_cert.so \
+ ${libexecdir}/cockpit-ws \
+ ${libexecdir}/cockpit-wsinstance-factory \
+ ${libexecdir}/cockpit-tls \
+ ${libexecdir}/cockpit-session \
+ ${localstatedir}/lib/cockpit \
+ ${datadir}/cockpit/static \
+ ${datadir}/cockpit/branding \
+"
+CONFFILES:${PN}-ws += " \
+ ${sysconfdir}/issue.d/cockpit.issue \
+ ${sysconfdir}/motd.d/cockpit \
+"
+RDEPENDS:${PN}-ws += "openssl-bin"
+SYSTEMD_SERVICE:${PN}-ws = "cockpit.socket"
+
+FILES:${PN} += " \
+ ${datadir}/cockpit/base1 \
+ ${sysconfdir}/cockpit/machines.d \
+ ${datadir}/polkit-1/actions/org.cockpit-project.cockpit-bridge.policy \
+ ${datadir}/cockpit/ssh \
+ ${libexecdir}/cockpit-ssh \
+ ${datadir}/cockpit \
+ ${datadir}/metainfo/cockpit.appdata.xml \
+ ${datadir}/pixmaps/cockpit.png \
+ ${nonarch_libdir}/tmpfiles.d \
+ ${nonarch_libdir}/firewalld \
+"
+RDEPENDS:${PN} += "${PN}-bridge"
+# Needs bash for /usr/libexec/cockpit-certificate-helper
+RDEPENDS:${PN} += "bash"
+
+do_install:append() {
+ pkgdatadir=${datadir}/cockpit
+
+ chmod 4750 ${D}${libexecdir}/cockpit-session
+
+ install -d "${D}${sysconfdir}/pam.d"
+ install -p -m 0644 ${WORKDIR}/cockpit.pam ${D}${sysconfdir}/pam.d/cockpit
+
+ # provided by firewalld
+ rm -rf ${D}${libdir}/firewalld
+
+ if ! ${@bb.utils.contains('PACKAGECONFIG', 'storaged', 'true', 'false', d)}; then
+ for filename in ${FILES:${PN}-storaged}
+ do
+ rm -rf ${D}$filename
+ done
+ fi
+}
diff --git a/meta-webserver/recipes-webadmin/cockpit/files/0001-Warn-not-error-if-xsltproc-is-not-found.patch b/meta-webserver/recipes-webadmin/cockpit/files/0001-Warn-not-error-if-xsltproc-is-not-found.patch
index b3b0988b12..db583cfd29 100644
--- a/meta-webserver/recipes-webadmin/cockpit/files/0001-Warn-not-error-if-xsltproc-is-not-found.patch
+++ b/meta-webserver/recipes-webadmin/cockpit/files/0001-Warn-not-error-if-xsltproc-is-not-found.patch
@@ -1,27 +1,25 @@
-From 588bb5cb248aaeaf0fea33084229c99ad1574291 Mon Sep 17 00:00:00 2001
+From 7c1f95995ce9180221bac03b7b1e1696b8a79de7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 7 Sep 2022 11:12:28 -0700
Subject: [PATCH] Warn not error if xsltproc is not found
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index 7659f41..537203e 100644
+index 6896c19..2a1fb52 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -177,7 +177,7 @@ AC_SUBST([systemdunitdir], [$systemdunitdir])
+@@ -182,7 +182,7 @@ AC_SUBST([systemdunitdir], [$systemdunitdir])
# package as xgettext, and we find them by PATH, so just check for the one.
- AC_PATH_PROG([XGETTEXT], [xsltproc], [no])
+ AC_PATH_PROG([XGETTEXT], [xgettext], [no])
if test "$XGETTEXT" = "no"; then
- AC_MSG_ERROR([Please install gettext tools])
+ AC_MSG_WARN([Please install gettext tools])
fi
# ssh-add
---
-2.37.3
-
diff --git a/meta-webserver/recipes-webadmin/cockpit/files/0001-remove-tests-dep-on-gobject-intro.patch b/meta-webserver/recipes-webadmin/cockpit/files/0001-remove-tests-dep-on-gobject-intro.patch
deleted file mode 100644
index 8f70fe9434..0000000000
--- a/meta-webserver/recipes-webadmin/cockpit/files/0001-remove-tests-dep-on-gobject-intro.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 788aace494f79e8201b18ebcdf1592b5030c5295 Mon Sep 17 00:00:00 2001
-From: Adrian Freihofer <adrian.freihofer@siemens.com>
-Date: Wed, 4 Dec 2019 17:23:46 +0100
-Subject: [PATCH] remove tests dep on gobject-intro
-
----
- src/ws/Makefile-ws.am | 54 ---------------------------------------------------
- 1 file changed, 54 deletions(-)
-
---- a/src/ws/Makefile-ws.am
-+++ b/src/ws/Makefile-ws.am
-@@ -58,46 +58,6 @@ pam_cockpit_cert_so_LDFLAGS = -shared
- pam_cockpit_cert_so_SOURCES = src/ws/pam_cockpit_cert.c
-
- # -----------------------------------------------------------------------------
--# test-server: server for running the html/browser unit tests against
--
--check_PROGRAMS += test-server
--
--test_server_CPPFLAGS = $(libcockpit_ws_a_CPPFLAGS) $(TEST_CPP)
--test_server_LDADD = $(libcockpit_ws_a_LIBS) $(TEST_LIBS)
--
--test_server_SOURCES = \
-- src/ws/mock-service.c \
-- src/ws/mock-service.h \
-- src/ws/test-server.c \
-- $(NULL)
--
--test_server_CPPFLAGS += -I$(top_builddir)/src/ws
--nodist_test_server_SOURCES = $(GDBUS_CODEGEN_GENERATED)
--
--BUILT_SOURCES += $(GDBUS_CODEGEN_GENERATED)
--CLEANFILES += $(GDBUS_CODEGEN_GENERATED)
--GDBUS_CODEGEN_GENERATED = \
-- src/ws/mock-dbus-tests.h \
-- src/ws/mock-dbus-tests.c \
-- $(NULL)
--
--EXTRA_DIST += $(GDBUS_CODEGEN_XML)
--GDBUS_CODEGEN_XML = $(srcdir)/src/ws/com.redhat.Cockpit.DBusTests.xml
--
--GDBUS_CODEGEN_INVOCATION = \
-- $(AM_V_GEN) gdbus-codegen \
-- --interface-prefix com.redhat.Cockpit.DBusTests \
-- --c-namespace Test \
-- --c-generate-object-manager \
-- $(NULL)
--
--src/ws/mock-dbus-tests.h: $(GDBUS_CODEGEN_XML)
-- $(GDBUS_CODEGEN_INVOCATION) --header --output $@ $<
--
--src/ws/mock-dbus-tests.c: $(GDBUS_CODEGEN_XML)
-- $(GDBUS_CODEGEN_INVOCATION) --body --output $@ $<
--
--# -----------------------------------------------------------------------------
- # Unit tests
-
- check_SCRIPTS += src/ws/mock-cat-with-init
diff --git a/meta-webserver/recipes-webadmin/cockpit/files/0002-fix-makefile-use-copy-rule-for-unmodified-files.patch b/meta-webserver/recipes-webadmin/cockpit/files/0002-fix-makefile-use-copy-rule-for-unmodified-files.patch
deleted file mode 100644
index 48702c3d1e..0000000000
--- a/meta-webserver/recipes-webadmin/cockpit/files/0002-fix-makefile-use-copy-rule-for-unmodified-files.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 1edf0756bf4fd002f5b60cf2b86d4b97a00aff20 Mon Sep 17 00:00:00 2001
-From: Michael Haener <michael.haener@siemens.com>
-Date: Wed, 25 Mar 2020 08:32:07 +0100
-Subject: [PATCH] fix(makefile): use copy rule for unmodified files
-
----
- pkg/Makefile.am | 27 +++++++++++++++++++++++++++
- 1 file changed, 27 insertions(+)
-
---- a/pkg/Makefile.am
-+++ b/pkg/Makefile.am
-@@ -7,6 +7,33 @@ TESTS += $(pkg_TESTS)
- %.metainfo.xml: %.metainfo.xml.in
- $(AM_V_GEN) mkdir -p $(dir $@) && msgfmt --xml -d $(top_srcdir)/po --template $< --output $@
-
-+dist/playground/hammer.gif: pkg/playground/hammer.gif
-+ $(COPY_RULE)
-+
-+dist/sosreport/sosreport.png: pkg/sosreport/sosreport.png
-+ $(COPY_RULE)
-+
-+dist/apps/default.png: pkg/apps/default.png
-+ $(COPY_RULE)
-+
-+dist/storaged/images/storage-array.png: pkg/storaged/images/storage-array.png
-+ $(COPY_RULE)
-+
-+dist/storaged/images/storage-disk.png: pkg/storaged/images/storage-disk.png
-+ $(COPY_RULE)
-+
-+dist/shell/images/server-error.png: pkg/shell/images/server-error.png
-+ $(COPY_RULE)
-+
-+dist/shell/images/server-large.png: pkg/shell/images/server-large.png
-+ $(COPY_RULE)
-+
-+dist/shell/images/server-small.png: pkg/shell/images/server-small.png
-+ $(COPY_RULE)
-+
-+dist/shell/index.html: pkg/shell/index.html
-+ $(COPY_RULE)
-+
- metainfodir = ${datarootdir}/metainfo
- nodist_metainfo_DATA = \
- pkg/sosreport/org.cockpit-project.cockpit-sosreport.metainfo.xml \
diff --git a/meta-webserver/recipes-webadmin/netdata/netdata/netdata.service b/meta-webserver/recipes-webadmin/netdata/netdata/netdata.service
index ca13f72871..f4911f3b6e 100644
--- a/meta-webserver/recipes-webadmin/netdata/netdata/netdata.service
+++ b/meta-webserver/recipes-webadmin/netdata/netdata/netdata.service
@@ -7,7 +7,7 @@ After=network.target
[Service]
Type=simple
ExecStartPre=/bin/mkdir -p /var/log/netdata
-ExecStartPre=/bin/chown -R netdata.netdata /var/log/netdata
+ExecStartPre=/bin/chown -R netdata:netdata /var/log/netdata
ExecStart=/usr/sbin/netdata -D -u netdata
diff --git a/meta-webserver/recipes-webadmin/netdata/netdata_1.36.1.bb b/meta-webserver/recipes-webadmin/netdata/netdata_1.36.1.bb
deleted file mode 100644
index 52d99e7704..0000000000
--- a/meta-webserver/recipes-webadmin/netdata/netdata_1.36.1.bb
+++ /dev/null
@@ -1,82 +0,0 @@
-SUMMARY = "Real-time performance monitoring"
-DESCRIPTION = "Netdata is high-fidelity infrastructure monitoring and troubleshooting. \
- Open-source, free, preconfigured, opinionated, and always real-time."
-HOMEPAGE = "https://github.com/netdata/netdata/"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fc9b848046ef54b5eaee6071947abd24"
-
-DEPENDS += "libuv util-linux zlib"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BPN}-v${PV}.tar.gz \
-"
-SRC_URI[sha256sum] = "f4a1233112b55e07e2862ffda0416255f0aa4c8e2b16929b76fa7ad6b69fd931"
-
-# default netdata.conf for netdata configuration
-SRC_URI += "file://netdata.conf"
-
-# file for providing systemd service support
-SRC_URI += "file://netdata.service"
-
-UPSTREAM_CHECK_URI = "https://github.com/netdata/netdata/releases"
-
-S = "${WORKDIR}/${BPN}-v${PV}"
-
-# Stop sending anonymous statistics to Google Analytics
-NETDATA_ANONYMOUS ??= "enabled"
-
-inherit pkgconfig autotools-brokensep useradd systemd
-
-LIBS:toolchain-clang:x86 = "-latomic"
-LIBS:riscv64 = "-latomic"
-LIBS:riscv32 = "-latomic"
-LIBS:mips = "-latomic"
-export LIBS
-
-#systemd
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE:${PN} = "netdata.service"
-SYSTEMD_AUTO_ENABLE:${PN} = "enable"
-
-#User specific
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--system --no-create-home --home-dir ${localstatedir}/run/netdata --user-group netdata"
-
-PACKAGECONFIG ??= "https"
-PACKAGECONFIG[cloud] = "--enable-cloud, --disable-cloud, json-c"
-PACKAGECONFIG[compression] = "--enable-compression, --disable-compression, lz4"
-PACKAGECONFIG[https] = "--enable-https, --disable-https, openssl"
-
-# ebpf doesn't compile (or detect) the cross compilation well
-EXTRA_OECONF += "--disable-ebpf"
-
-do_install:append() {
- #set S UID for plugins
- chmod 4755 ${D}${libexecdir}/netdata/plugins.d/apps.plugin
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- # Install systemd unit files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/netdata.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@@datadir,${datadir_native},g' ${D}${systemd_unitdir}/system/netdata.service
- fi
-
- # Install default netdata.conf
- install -d ${D}${sysconfdir}/netdata
- install -m 0644 ${WORKDIR}/netdata.conf ${D}${sysconfdir}/netdata/
- sed -i -e 's,@@sysconfdir,${sysconfdir},g' ${D}${sysconfdir}/netdata/netdata.conf
- sed -i -e 's,@@libdir,${libexecdir},g' ${D}${sysconfdir}/netdata/netdata.conf
- sed -i -e 's,@@datadir,${datadir},g' ${D}${sysconfdir}/netdata/netdata.conf
-
- if [ "${NETDATA_ANONYMOUS}" = "enabled" ]; then
- touch ${D}${sysconfdir}/netdata/.opt-out-from-anonymous-statistics
- fi
-
- install --group netdata --owner netdata --directory ${D}${localstatedir}/cache/netdata
- install --group netdata --owner netdata --directory ${D}${localstatedir}/lib/netdata
-
- chown -R netdata:netdata ${D}${datadir}/netdata/web
-}
-
-FILES:${PN} += "${localstatedir}/cache/netdata/ ${localstatedir}/lib/netdata/"
-
-RDEPENDS:${PN} = "bash zlib"
diff --git a/meta-webserver/recipes-webadmin/netdata/netdata_1.44.3.bb b/meta-webserver/recipes-webadmin/netdata/netdata_1.44.3.bb
new file mode 100644
index 0000000000..700c6b2346
--- /dev/null
+++ b/meta-webserver/recipes-webadmin/netdata/netdata_1.44.3.bb
@@ -0,0 +1,81 @@
+SUMMARY = "Real-time performance monitoring"
+DESCRIPTION = "Netdata is high-fidelity infrastructure monitoring and troubleshooting. \
+ Open-source, free, preconfigured, opinionated, and always real-time."
+HOMEPAGE = "https://github.com/netdata/netdata/"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fc9b848046ef54b5eaee6071947abd24"
+
+DEPENDS += "json-c libuv libyaml util-linux zlib "
+
+SRC_URI = "\
+ https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BPN}-v${PV}.tar.gz \
+ file://netdata.conf \
+ file://netdata.service \
+"
+
+SRC_URI[sha256sum] = "50df30a9aaf60d550eb8e607230d982827e04194f7df3eba0e83ff7919270ad2"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/tags"
+UPSTREAM_CHECK_REGEX = "${BPN}/releases/tag/v(?P<pver>\d+(?:\.\d+)*)"
+
+S = "${WORKDIR}/${BPN}-v${PV}"
+
+# Stop sending anonymous statistics to Google Analytics
+NETDATA_ANONYMOUS ??= "enabled"
+
+inherit pkgconfig autotools-brokensep useradd systemd
+
+LIBS:toolchain-clang:x86 = "-latomic"
+LIBS:riscv64 = "-latomic"
+LIBS:riscv32 = "-latomic"
+LIBS:mips = "-latomic"
+export LIBS
+
+#systemd
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "netdata.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
+
+#User specific
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --home-dir ${localstatedir}/run/netdata --user-group netdata"
+
+PACKAGECONFIG ??= "openssl"
+PACKAGECONFIG[cloud] = "--enable-cloud, --disable-cloud,"
+PACKAGECONFIG[lz4] = "--enable-lz4, --disable-lz4, lz4"
+PACKAGECONFIG[openssl] = "--enable-openssl, --disable-openssl, openssl"
+
+# ebpf doesn't compile (or detect) the cross compilation well
+EXTRA_OECONF += "--disable-ebpf"
+
+do_install:append() {
+ #set S UID for plugins
+ chmod 4755 ${D}${libexecdir}/netdata/plugins.d/apps.plugin
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ # Install systemd unit files
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/netdata.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@@datadir,${datadir_native},g' ${D}${systemd_unitdir}/system/netdata.service
+ fi
+
+ # Install default netdata.conf
+ install -d ${D}${sysconfdir}/netdata
+ install -m 0644 ${WORKDIR}/netdata.conf ${D}${sysconfdir}/netdata/
+ sed -i -e 's,@@sysconfdir,${sysconfdir},g' ${D}${sysconfdir}/netdata/netdata.conf
+ sed -i -e 's,@@libdir,${libexecdir},g' ${D}${sysconfdir}/netdata/netdata.conf
+ sed -i -e 's,@@datadir,${datadir},g' ${D}${sysconfdir}/netdata/netdata.conf
+
+ if [ "${NETDATA_ANONYMOUS}" = "enabled" ]; then
+ touch ${D}${sysconfdir}/netdata/.opt-out-from-anonymous-statistics
+ fi
+
+ install --group netdata --owner netdata --directory ${D}${localstatedir}/cache/netdata
+ install --group netdata --owner netdata --directory ${D}${localstatedir}/lib/netdata
+
+ chown -R netdata:netdata ${D}${datadir}/netdata/web
+}
+
+FILES:${PN} += "${localstatedir}/cache/netdata/ ${localstatedir}/lib/netdata/"
+
+RDEPENDS:${PN} = "bash python3-core zlib"
diff --git a/meta-webserver/recipes-webadmin/webmin/files/disable-version-check.patch b/meta-webserver/recipes-webadmin/webmin/files/disable-version-check.patch
index 9aad894e0c..1ca26ca0dd 100644
--- a/meta-webserver/recipes-webadmin/webmin/files/disable-version-check.patch
+++ b/meta-webserver/recipes-webadmin/webmin/files/disable-version-check.patch
@@ -3,7 +3,7 @@ Disable OS version check in status screen
The code is not able to accurately detect the correct distro/version at
the moment.
-Upstream-status: Inappropriate
+Upstream-Status: Inappropriate
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
diff --git a/meta-webserver/recipes-webadmin/webmin/files/init-exclude.patch b/meta-webserver/recipes-webadmin/webmin/files/init-exclude.patch
index 4212917f6e..489318b4bd 100644
--- a/meta-webserver/recipes-webadmin/webmin/files/init-exclude.patch
+++ b/meta-webserver/recipes-webadmin/webmin/files/init-exclude.patch
@@ -1,11 +1,11 @@
-# Hack in support for an "exclude" config option for the init module, so
-# we can hide certain system services that shouldn't really be configurable
-# via the web interface
-#
-# Upstream-status: Pending
-#
-# Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-# Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Hack in support for an "exclude" config option for the init module, so
+we can hide certain system services that shouldn't really be configurable
+via the web interface
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
---
init/index.cgi | 27 ++++++++++++++-------------
init/init-lib.pl | 5 +++--
diff --git a/meta-webserver/recipes-webadmin/webmin/files/media-tomb.patch b/meta-webserver/recipes-webadmin/webmin/files/media-tomb.patch
index 46f3109796..dfc962bfb7 100644
--- a/meta-webserver/recipes-webadmin/webmin/files/media-tomb.patch
+++ b/meta-webserver/recipes-webadmin/webmin/files/media-tomb.patch
@@ -1,3 +1,7 @@
+add mediatomb support
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
diff -Nru webmin-1.570.bak/mediatomb/index.cgi webmin-1.570/mediatomb/index.cgi
--- webmin-1.570.bak/mediatomb/index.cgi 1969-12-31 16:00:00.000000000 -0800
+++ webmin-1.570/mediatomb/index.cgi 2011-10-26 10:00:05.992522036 -0700
diff --git a/meta-webserver/recipes-webadmin/webmin/files/mount-excludefs.patch b/meta-webserver/recipes-webadmin/webmin/files/mount-excludefs.patch
index 8cb74c4b13..787bd8c69b 100644
--- a/meta-webserver/recipes-webadmin/webmin/files/mount-excludefs.patch
+++ b/meta-webserver/recipes-webadmin/webmin/files/mount-excludefs.patch
@@ -6,7 +6,7 @@ since these shouldn't be modified from the web interface.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-Upstream-status: Pending
+Upstream-Status: Pending
--- webmin-1.570.orig/mount/index.cgi
+++ webmin-1.570/mount/index.cgi
diff --git a/meta-webserver/recipes-webadmin/webmin/files/mysql-config-fix.patch b/meta-webserver/recipes-webadmin/webmin/files/mysql-config-fix.patch
index 2cbc627076..c6c1f0df79 100644
--- a/meta-webserver/recipes-webadmin/webmin/files/mysql-config-fix.patch
+++ b/meta-webserver/recipes-webadmin/webmin/files/mysql-config-fix.patch
@@ -3,7 +3,7 @@ From: Diego Rondini <diego.ml@zoho.com>
Date: Thu, 18 Feb 2016 15:44:06 +0100
Subject: [PATCH] Adjust Mysql config defaults
-Upstream-status: Inappropriate [configuration]
+Upstream-Status: Inappropriate [configuration]
Signed-off-by: Diego Rondini <diego.ml@zoho.com>
---
diff --git a/meta-webserver/recipes-webadmin/webmin/files/net-generic.patch b/meta-webserver/recipes-webadmin/webmin/files/net-generic.patch
index 5549392851..6ae3dced72 100644
--- a/meta-webserver/recipes-webadmin/webmin/files/net-generic.patch
+++ b/meta-webserver/recipes-webadmin/webmin/files/net-generic.patch
@@ -1,8 +1,8 @@
-# Add support for configuring network interfaces on a generic linux system
-#
-# Upstream-status: Not appropriate [config]
-#
-# Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+Add support for configuring network interfaces on a generic linux system
+
+Upstream-Status: Inappropriate [config]
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Index: webmin-1.850/net/module.info
===================================================================
--- webmin-1.850.orig/net/module.info
diff --git a/meta-webserver/recipes-webadmin/webmin/files/proftpd-config-fix.patch b/meta-webserver/recipes-webadmin/webmin/files/proftpd-config-fix.patch
index 492a652d48..4e78ff4c22 100644
--- a/meta-webserver/recipes-webadmin/webmin/files/proftpd-config-fix.patch
+++ b/meta-webserver/recipes-webadmin/webmin/files/proftpd-config-fix.patch
@@ -1,4 +1,4 @@
-Upstream-status: Inappropriate [configuration]
+Upstream-Status: Inappropriate [configuration]
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
diff --git a/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch b/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch
index d957f4a3bc..358e53ab8c 100644
--- a/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch
+++ b/meta-webserver/recipes-webadmin/webmin/files/remove-startup-option.patch
@@ -1,9 +1,9 @@
-# Remove "start on boot" option from webmin configuration, as
-# end-users should not need to configure this from the web interface
-#
-# Upstream-status: Inappropriate
-#
-# Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+Remove "start on boot" option from webmin configuration, as
+end-users should not need to configure this from the web interface
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
--- webmin-1.570.orig/webmin/index.cgi
+++ webmin-1.570/webmin/index.cgi
@@ -79,20 +79,6 @@ print &ui_buttons_start();
diff --git a/meta-webserver/recipes-webadmin/webmin/files/samba-config-fix.patch b/meta-webserver/recipes-webadmin/webmin/files/samba-config-fix.patch
index 46645ac30e..d9ea2d145e 100644
--- a/meta-webserver/recipes-webadmin/webmin/files/samba-config-fix.patch
+++ b/meta-webserver/recipes-webadmin/webmin/files/samba-config-fix.patch
@@ -1,4 +1,4 @@
-Upstream-status: Inappropriate [configuration]
+Upstream-Status: Inappropriate [configuration]
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
diff --git a/meta-xfce/README b/meta-xfce/README.md
index 3d6158628f..3d6158628f 100644
--- a/meta-xfce/README
+++ b/meta-xfce/README.md
diff --git a/meta-xfce/conf/layer.conf b/meta-xfce/conf/layer.conf
index 5785421aa8..944bd57d1f 100644
--- a/meta-xfce/conf/layer.conf
+++ b/meta-xfce/conf/layer.conf
@@ -19,7 +19,7 @@ LAYERDEPENDS_xfce-layer += "multimedia-layer"
LAYERDEPENDS_xfce-layer += "meta-python"
LAYERDEPENDS_xfce-layer += "networking-layer"
-LAYERSERIES_COMPAT_xfce-layer = "kirkstone langdale"
+LAYERSERIES_COMPAT_xfce-layer = "scarthgap"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "\
openzone->gdk-pixbuf \
diff --git a/meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb b/meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb
deleted file mode 100644
index 8fe879b816..0000000000
--- a/meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Catfish is a handy file searching tool for linux and unix"
-SECTION = "x11/application"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
-
-inherit xfce-app python_setuptools_build_meta gtk-icon-cache mime-xdg
-
-DEPENDS += "python3-distutils-extra-native"
-
-SRC_URI[sha256sum] = "e9a99a62d10981391508dd43f3cbfa2d50a69bd6b7d1eeef7d30ba4c673dcfda"
-
-FILES:${PN} += "${datadir}/metainfo"
-
-RDEPENDS:${PN} += "python3-pygobject python3-dbus"
-
-do_install:append() {
- #
- # Until catfish upstream figures out a way to overcome this buildpath issue, we need to do such adjustments here.
- #
- sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' ${D}${datadir}/applications/org.xfce.Catfish.desktop
- sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' ${D}${PYTHON_SITEPACKAGES_DIR}/catfish_lib/catfishconfig.py
- rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/catfish_lib/__pycache__/catfishconfig.*.pyc
-}
diff --git a/meta-xfce/recipes-apps/catfish/catfish_4.18.0.bb b/meta-xfce/recipes-apps/catfish/catfish_4.18.0.bb
new file mode 100644
index 0000000000..6b93928721
--- /dev/null
+++ b/meta-xfce/recipes-apps/catfish/catfish_4.18.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Catfish is a handy file searching tool for linux and unix"
+SECTION = "x11/application"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
+
+inherit xfce-app python_setuptools_build_meta gtk-icon-cache mime-xdg features_check
+
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+
+DEPENDS += "python3-distutils-extra-native"
+
+SRC_URI[sha256sum] = "fdae9b73cc754a50716bb04b958aa31dbd7e94047068b7207f2ae313a7d58b99"
+
+FILES:${PN} += "${datadir}/metainfo"
+
+RDEPENDS:${PN} += "python3-pygobject python3-dbus"
+
+do_install:append() {
+ #
+ # Until catfish upstream figures out a way to overcome this buildpath issue, we need to do such adjustments here.
+ #
+ sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' ${D}${datadir}/applications/org.xfce.Catfish.desktop
+ sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' ${D}${PYTHON_SITEPACKAGES_DIR}/catfish_lib/catfishconfig.py
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/catfish_lib/__pycache__/catfishconfig.*.pyc
+}
diff --git a/meta-xfce/recipes-apps/gigolo/gigolo_0.5.2.bb b/meta-xfce/recipes-apps/gigolo/gigolo_0.5.2.bb
deleted file mode 100644
index 6b845ea613..0000000000
--- a/meta-xfce/recipes-apps/gigolo/gigolo_0.5.2.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Gigolo is a frontend to easily manage connections to remote filesystems using GIO/GVfs"
-SECTION = "x11/application"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "gtk+3 intltool-native xfce4-dev-tools-native"
-
-inherit xfce-app
-
-SRC_URI[sha256sum] = "e34a1aa0755f9f6c234c7d24b23a6cecd6ef50741d79da3bb6f698a2281dbbc3"
diff --git a/meta-xfce/recipes-apps/gigolo/gigolo_0.5.3.bb b/meta-xfce/recipes-apps/gigolo/gigolo_0.5.3.bb
new file mode 100644
index 0000000000..4692f18294
--- /dev/null
+++ b/meta-xfce/recipes-apps/gigolo/gigolo_0.5.3.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Gigolo is a frontend to easily manage connections to remote filesystems using GIO/GVfs"
+SECTION = "x11/application"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "gtk+3 intltool-native xfce4-dev-tools-native"
+
+inherit xfce-app
+
+SRC_URI[sha256sum] = "d25984f65744665e2433335249f9547a38cead45440027af0c397ebf254d2fd0"
diff --git a/meta-xfce/recipes-apps/menulibre/menulibre_2.2.3.bb b/meta-xfce/recipes-apps/menulibre/menulibre_2.2.3.bb
deleted file mode 100644
index 65aa7a53e2..0000000000
--- a/meta-xfce/recipes-apps/menulibre/menulibre_2.2.3.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-DESCRIPTION = "An advanced menu editor"
-HOMEPAGE = "https://bluesabre.org/menulibre/"
-SECTION = "x11/graphics"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = " \
- python3-distutils-extra-native \
- intltool-native \
-"
-
-inherit setuptools3_legacy gtk-icon-cache features_check
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "git://github.com/bluesabre/menulibre.git;protocol=https;branch=master"
-SRCREV = "86ee9ad7568128fe9555e54799933b2d3762331a"
-S = "${WORKDIR}/git"
-
-do_compile[noexec] = "1"
-
-do_install:append() {
- sed -i 's:${D}::g' ${D}${datadir}/applications/menulibre.desktop
- sed -i 's:share/share:share:g' ${D}${PYTHON_SITEPACKAGES_DIR}/menulibre_lib/menulibreconfig.py
-}
-
-FILES:${PN} += " \
- ${datadir}/applications \
- ${datadir}/metainfo \
- ${datadir}/icons \
-"
-
-RDEPENDS:${PN} += " \
- gtk+3 \
- gtksourceview3 \
- python3-pygobject \
- gnome-menus \
- python3-unixadmin \
- python3-psutil \
-"
diff --git a/meta-xfce/recipes-apps/menulibre/menulibre_2.3.2.bb b/meta-xfce/recipes-apps/menulibre/menulibre_2.3.2.bb
new file mode 100644
index 0000000000..7491b509cc
--- /dev/null
+++ b/meta-xfce/recipes-apps/menulibre/menulibre_2.3.2.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "An advanced menu editor"
+HOMEPAGE = "https://bluesabre.org/menulibre/"
+SECTION = "x11/graphics"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = " \
+ python3-distutils-extra-native \
+ intltool-native \
+"
+
+inherit setuptools3_legacy gtk-icon-cache features_check
+REQUIRED_DISTRO_FEATURES = "x11 gobject-introspection-data"
+
+SRC_URI = "git://github.com/bluesabre/menulibre.git;protocol=https;branch=master"
+SRCREV = "94bef4060714fa65c7246c25b87410b52a149f94"
+S = "${WORKDIR}/git"
+
+do_compile[noexec] = "1"
+
+do_install:append() {
+ sed -i 's:${D}::g' ${D}${datadir}/applications/menulibre.desktop
+ sed -i 's:share/share:share:g' ${D}${PYTHON_SITEPACKAGES_DIR}/menulibre_lib/menulibreconfig.py
+}
+
+FILES:${PN} += " \
+ ${datadir}/applications \
+ ${datadir}/metainfo \
+ ${datadir}/icons \
+"
+
+RDEPENDS:${PN} += " \
+ gtk+3 \
+ gtksourceview3 \
+ python3-pygobject \
+ gnome-menus \
+ python3-unixadmin \
+ python3-psutil \
+"
diff --git a/meta-xfce/recipes-apps/mousepad/mousepad_0.5.9.bb b/meta-xfce/recipes-apps/mousepad/mousepad_0.5.9.bb
deleted file mode 100644
index 1be015bfbb..0000000000
--- a/meta-xfce/recipes-apps/mousepad/mousepad_0.5.9.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "A simple text editor for Xfce"
-SECTION = "x11/application"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "gtk+3 gtksourceview4 xfconf xfce4-dev-tools-native"
-
-inherit xfce-app gsettings mime-xdg
-
-SRC_URI[sha256sum] = "f108a8c167ec5727266ab67666f10dbd60e972d56ea03944302fdabb2167f473"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[spell] = "--enable-plugin-gspell,--disable-plugin-gspell,gspell"
-
-FILES:${PN} += " \
- ${datadir}/glib-2.0/schemas \
- ${datadir}/metainfo \
- ${datadir}/polkit-1 \
-"
diff --git a/meta-xfce/recipes-apps/mousepad/mousepad_0.6.1.bb b/meta-xfce/recipes-apps/mousepad/mousepad_0.6.1.bb
new file mode 100644
index 0000000000..dc75a4b220
--- /dev/null
+++ b/meta-xfce/recipes-apps/mousepad/mousepad_0.6.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A simple text editor for Xfce"
+SECTION = "x11/application"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "gtk+3 gtksourceview4 xfconf xfce4-dev-tools-native"
+
+inherit xfce-app gsettings mime-xdg
+
+SRC_URI[sha256sum] = "560c5436c7bc7de33fbf3e9f6cc545280772ad898dfb73257d86533880ffff36"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[spell] = "--enable-plugin-gspell,--disable-plugin-gspell,gspell"
+
+FILES:${PN} += " \
+ ${datadir}/glib-2.0/schemas \
+ ${datadir}/metainfo \
+ ${datadir}/polkit-1 \
+"
diff --git a/meta-xfce/recipes-apps/orage/orage_4.16.0.bb b/meta-xfce/recipes-apps/orage/orage_4.16.0.bb
deleted file mode 100644
index d10cdaac49..0000000000
--- a/meta-xfce/recipes-apps/orage/orage_4.16.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Xfce Calender"
-SECTION = "x11/application"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "gtk+ xfce4-panel libical popt"
-
-inherit xfce-app mime-xdg
-
-SRC_URI[sha256sum] = "26111a3b6a2007c82f1e0a1e0591b774a0b132f3a7f1cde53d9be661b2f11700"
-
-PACKAGECONFIG ??= "notify"
-PACKAGECONFIG[notify] = "--enable-libnotify,--disable-libnotify,libnotify"
-
-PACKAGES =+ "xfce4-orageclock-plugin"
-FILES:${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/metainfo \
-"
-FILES:xfce4-orageclock-plugin = "${libdir}/xfce4/panel/plugins/*.so ${datadir}/xfce4/panel/plugins"
-FILES:${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la"
diff --git a/meta-xfce/recipes-apps/orage/orage_4.18.0.bb b/meta-xfce/recipes-apps/orage/orage_4.18.0.bb
new file mode 100644
index 0000000000..83a65885ac
--- /dev/null
+++ b/meta-xfce/recipes-apps/orage/orage_4.18.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Xfce Calender"
+SECTION = "x11/application"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "gtk+ xfce4-panel libical popt"
+
+inherit xfce-app mime-xdg
+
+SRC_URI[sha256sum] = "6313b49b26cfa39fc5e99468f3fbcfe0fa1c0f3f74273f03674f1a7d6141a3ec"
+
+PACKAGECONFIG ??= "notify"
+PACKAGECONFIG[notify] = "--enable-libnotify,--disable-libnotify,libnotify"
+
+PACKAGES =+ "xfce4-orageclock-plugin"
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+"
+FILES:xfce4-orageclock-plugin = "${libdir}/xfce4/panel/plugins/*.so ${datadir}/xfce4/panel/plugins"
+FILES:${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la"
diff --git a/meta-xfce/recipes-apps/ristretto/ristretto_0.12.2.bb b/meta-xfce/recipes-apps/ristretto/ristretto_0.12.2.bb
deleted file mode 100644
index 66836422ed..0000000000
--- a/meta-xfce/recipes-apps/ristretto/ristretto_0.12.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Tiny image-viewer"
-HOMEPAGE = "https://docs.xfce.org/apps/ristretto/start"
-SECTION = "x11/application"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=35d145429ad3cbf5308d1dc93f66376b"
-
-DEPENDS = "exo libexif libxfce4ui libxfce4util xfconf cairo file"
-
-inherit xfce-app mime-xdg
-
-RRECOMMENDS:${PN} += "tumbler"
-
-SRC_URI[sha256sum] = "0eee869922ec00a253dafa446c2aad2a2f98e07e1db7262e8337ce9ec2dad969"
-
-FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-xfce/recipes-apps/ristretto/ristretto_0.13.1.bb b/meta-xfce/recipes-apps/ristretto/ristretto_0.13.1.bb
new file mode 100644
index 0000000000..dcae982cee
--- /dev/null
+++ b/meta-xfce/recipes-apps/ristretto/ristretto_0.13.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Tiny image-viewer"
+HOMEPAGE = "https://docs.xfce.org/apps/ristretto/start"
+SECTION = "x11/application"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=35d145429ad3cbf5308d1dc93f66376b"
+
+DEPENDS = "exo libexif libxfce4ui libxfce4util xfconf cairo file glib-2.0-native python3-packaging-native"
+
+inherit xfce-app mime-xdg python3native
+
+RRECOMMENDS:${PN} += "tumbler"
+
+SRC_URI[sha256sum] = "d71affbf15245067124725b153c908a53208c4ca1ba2d4df1ec5a1308d53791e"
+
+FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-xfce/recipes-apps/xarchiver/xarchiver_0.5.4.21.bb b/meta-xfce/recipes-apps/xarchiver/xarchiver_0.5.4.21.bb
new file mode 100644
index 0000000000..abb5c14e64
--- /dev/null
+++ b/meta-xfce/recipes-apps/xarchiver/xarchiver_0.5.4.21.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Lightweight, desktop independent GTK+ archive manager"
+HOMEPAGE = "http://xarchiver.sourceforge.net"
+SECTION = "x11"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "gtk+3 glib-2.0 xfce4-dev-tools-native intltool-native"
+
+SRC_URI = "git://github.com/ib/xarchiver.git;branch=master;protocol=https"
+SRCREV = "55f923ebc623bcc8f53368543847350a23688189"
+
+S = "${WORKDIR}/git"
+
+inherit gettext pkgconfig autotools gtk-icon-cache features_check mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+# install tap files for thunar-archive-plugin in ${libdir}/thunar-archive-plugin
+EXTRA_OECONF += "--libexecdir=${libdir}"
+
+EXTRA_OECONF += " \
+ --enable-maintainer-mode \
+ --disable-doc \
+"
+
+do_configure:prepend() {
+ touch ${S}/NEWS ${S}/AUTHORS
+}
+
+FILES:${PN} += "${libdir}/thunar-archive-plugin"
+
+RRECOMMENDS:${PN} = "lzop zip tar bzip2 unzip xz p7zip"
diff --git a/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb b/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb
deleted file mode 100644
index ea7e8005ef..0000000000
--- a/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Lightweight, desktop independent GTK+ archive manager"
-HOMEPAGE = "http://xarchiver.sourceforge.net"
-SECTION = "x11"
-
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "gtk+3 glib-2.0 xfce4-dev-tools-native intltool-native"
-
-SRC_URI = "git://github.com/ib/xarchiver.git;branch=master;protocol=https"
-SRCREV = "2f6c91e756678f0723305d8636e8e393c1eef32c"
-PV = "0.5.4.17"
-S = "${WORKDIR}/git"
-
-inherit gettext pkgconfig autotools gtk-icon-cache features_check mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-# install tap files for thunar-archive-plugin in ${libdir}/thunar-archive-plugin
-EXTRA_OECONF += "--libexecdir=${libdir}"
-
-EXTRA_OECONF += " \
- --enable-maintainer-mode \
- --disable-doc \
-"
-
-do_configure:prepend() {
- touch ${S}/NEWS ${S}/AUTHORS
-}
-
-FILES:${PN} += "${libdir}/thunar-archive-plugin"
-
-RRECOMMENDS:${PN} = "lzop zip tar bzip2 unzip xz p7zip"
diff --git a/meta-xfce/recipes-apps/xfce4-notifyd/files/xfce4-notifyd-get-var-abs-path.patch b/meta-xfce/recipes-apps/xfce4-notifyd/files/xfce4-notifyd-get-var-abs-path.patch
new file mode 100644
index 0000000000..719267fd16
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-notifyd/files/xfce4-notifyd-get-var-abs-path.patch
@@ -0,0 +1,41 @@
+Native pkg_config only return basename of the variable queried. Invoke `which`
+to get the absolute path.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0f49e2b..a589147 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -116,7 +116,7 @@ AC_MSG_CHECKING([for gdbus-codegen])
+ if test x"$GDBUS_CODEGEN" = x""; then
+ GDBUS_CODEGEN=`$PKG_CONFIG --variable=gdbus_codegen gio-2.0`
+ fi
+-if test -x "$GDBUS_CODEGEN"; then
++if test -x "$(which $GDBUS_CODEGEN)"; then
+ AC_MSG_RESULT([$GDBUS_CODEGEN])
+ else
+ AC_MSG_ERROR([could not find gdbus-codegen in \$PATH. You can run
+@@ -129,7 +129,7 @@ AC_MSG_CHECKING([for glib-compile-resources])
+ if test x"$GLIB_COMPILE_RESOURCES" = x""; then
+ GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable=glib_compile_resources gio-2.0`
+ fi
+-if test -x "$GLIB_COMPILE_RESOURCES"; then
++if test -x "$(which $GLIB_COMPILE_RESOURCES)"; then
+ AC_MSG_RESULT([$GLIB_COMPILE_RESOURCES])
+ else
+ AC_MSG_ERROR([could not find glib-compile-resources in \$PATH. You can run
+@@ -142,7 +142,7 @@ AC_MSG_CHECKING([for glib-genmarshal])
+ if test x"$GLIB_GENMARSHAL" = x""; then
+ GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
+ fi
+-if test -x "$GLIB_GENMARSHAL"; then
++if test -x "$(which $GLIB_GENMARSHAL)"; then
+ AC_MSG_RESULT([$GLIB_GENMARSHAL])
+ else
+ AC_MSG_ERROR([could not find glib-genmarshal in \$PATH. You can run
diff --git a/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.6.3.bb b/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.6.3.bb
deleted file mode 100644
index 6086608110..0000000000
--- a/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.6.3.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Easily themable notification daemon with transparency effects"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-notifyd"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = " \
- dbus \
- dbus-glib \
- libnotify \
- libxfce4util \
- libxfce4ui \
- xfconf \
- xfce4-panel \
-"
-
-inherit xfce-app
-
-SRC_URI[sha256sum] = "56a9f895aed460042f2abe09bb1a899e29b7c7d5a76ecac63dead3ced990859f"
-
-# Avoid trouble with other desktops e.g KDE which also ships dbus service named
-# org.freedesktop.Notifications
-EXTRA_OECONF = "--disable-dbus-start-daemon"
-
-do_compile:prepend() {
- mkdir -p xfce4-notifyd xfce4-notifyd-config
-}
-
-FILES:${PN} += " \
- ${systemd_user_unitdir} \
- ${datadir}/xfce4 \
- ${datadir}/themes \
- ${datadir}/dbus-1 \
- ${libdir}/xfce4 \
-"
diff --git a/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb b/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb
new file mode 100644
index 0000000000..96cfd32f7b
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Easily themable notification daemon with transparency effects"
+HOMEPAGE = "https://docs.xfce.org/apps/notifyd/start"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = " \
+ glib-2.0-native \
+ libnotify \
+ libxfce4util \
+ libxfce4ui \
+ xfconf \
+ xfce4-panel \
+ python3-packaging-native \
+"
+
+inherit xfce-app
+inherit python3native
+
+SRC_URI:append = " file://xfce4-notifyd-get-var-abs-path.patch"
+
+SRC_URI[sha256sum] = "e3a28adb08daa1411135142a0d421e4d6050c4035a4e513a673a59460ff2ae84"
+
+# Avoid trouble with other desktops e.g KDE which also ships dbus service named
+# org.freedesktop.Notifications
+EXTRA_OECONF = "--disable-dbus-start-daemon"
+
+do_compile:prepend() {
+ mkdir -p xfce4-notifyd xfce4-notifyd-config
+}
+
+FILES:${PN} += " \
+ ${systemd_user_unitdir} \
+ ${datadir}/xfce4 \
+ ${datadir}/themes \
+ ${datadir}/dbus-1 \
+ ${libdir}/xfce4 \
+"
diff --git a/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles/not-create-link-to-locale.patch b/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles/not-create-link-to-locale.patch
deleted file mode 100644
index b5421f6f74..0000000000
--- a/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles/not-create-link-to-locale.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-It is useless to create a link to $(PREFIX)/share/locale that there is no
-reference to $(PREFIX)/share/$(APPNAME)/locale in source code.
-
-Upstream-Status: Submitted [https://bugzilla.xfce.org/show_bug.cgi?id=16693]
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
- Makefile.in.in | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/Makefile.in.in b/Makefile.in.in
-index c0ce866..c2f26fe 100644
---- a/Makefile.in.in
-+++ b/Makefile.in.in
-@@ -70,7 +70,6 @@ install: all xfce4-panel-profiles.1
- install data/metainfo/*.xml $(DESTDIR)/$(PREFIX)/share/metainfo
-
- cp -rf locale $(DESTDIR)/$(PREFIX)/share
-- ln -sf $(PREFIX)/share/locale $(DESTDIR)/$(PREFIX)/share/$(APPNAME)/locale
-
- install -d $(DESTDIR)/$(MANDIR)/man1
- install xfce4-panel-profiles.1 $(DESTDIR)/$(MANDIR)/man1
diff --git a/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.13.bb b/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.13.bb
deleted file mode 100644
index ab1b827266..0000000000
--- a/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.13.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Backup, restore, import, and export panel layouts"
-SECTION = "x11/application"
-LICENSE = "GPL-3.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-inherit python3native gettext gtk-icon-cache features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-DEPENDS += "intltool-native"
-
-SRC_URI = "http://archive.xfce.org/src/apps/${BPN}/1.0/${BP}.tar.bz2 \
- file://not-create-link-to-locale.patch \
- "
-SRC_URI[sha256sum] = "bc387c13f94109422dc72b0fcb919b0dc11619ba589d03e492252b0d2513b170"
-
-do_configure() {
- # special configure - no autotools...
- ./configure --prefix=${prefix}
-}
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install
- sed -i 's:${PYTHON}:python3:g' ${D}${bindir}/xfce4-panel-profiles
-}
-
-FILES:${PN} += "${datadir}/metainfo"
-
-RDEPENDS:${PN} += "python3-pygobject python3-pexpect"
diff --git a/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.14.bb b/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.14.bb
new file mode 100644
index 0000000000..38f6eb6ebc
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.14.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Backup, restore, import, and export panel layouts"
+SECTION = "x11/application"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+inherit python3native gettext gtk-icon-cache features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 gobject-introspection-data"
+
+DEPENDS += "intltool-native"
+
+SRC_URI = "http://archive.xfce.org/src/apps/${BPN}/1.0/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "6d08354e8c44d4b0370150809c1ed601d09c8b488b68986477260609a78be3f9"
+
+do_configure() {
+ # special configure - no autotools...
+ ./configure --prefix=${prefix}
+}
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+ sed -i 's:${PYTHON}:python3:g' ${D}${bindir}/xfce4-panel-profiles
+}
+
+FILES:${PN} += "${datadir}/metainfo"
+
+RDEPENDS:${PN} += "python3-pygobject python3-pexpect"
diff --git a/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver/fix-cross-compile.patch b/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver/fix-cross-compile.patch
index f726064e21..eabcaaae69 100644
--- a/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver/fix-cross-compile.patch
+++ b/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver/fix-cross-compile.patch
@@ -6,11 +6,15 @@ Upstream-Status: Inappropriate [cross compile specific]
Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ configure.ac | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
diff --git a/configure.ac b/configure.ac
-index f0ec537..05c393d 100644
+index 6f149bb..3890677 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -230,9 +230,9 @@ dnl ---------------------------------------------------------------------------
+@@ -237,9 +237,9 @@ dnl ---------------------------------------------------------------------------
#
AC_DEFUN([AC_CHECK_X_HEADER], [
ac_save_CPPFLAGS="$CPPFLAGS"
@@ -23,7 +27,7 @@ index f0ec537..05c393d 100644
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
AC_CHECK_HEADER([$1],[$2],[$3],[$4])
CPPFLAGS="$ac_save_CPPFLAGS"])
-@@ -241,9 +241,9 @@ AC_DEFUN([AC_CHECK_X_HEADER], [
+@@ -248,9 +248,9 @@ AC_DEFUN([AC_CHECK_X_HEADER], [
#
AC_DEFUN([AC_TRY_X_COMPILE], [
ac_save_CPPFLAGS="$CPPFLAGS"
@@ -34,9 +38,9 @@ index f0ec537..05c393d 100644
+# CPPFLAGS="$CPPFLAGS -I$includedir"
+# fi
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
- AC_TRY_COMPILE([$1], [$2], [$3], [$4])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4])
CPPFLAGS="$ac_save_CPPFLAGS"])
-@@ -257,15 +257,15 @@ AC_DEFUN([AC_CHECK_X_LIB], [
+@@ -264,15 +264,15 @@ AC_DEFUN([AC_CHECK_X_LIB], [
ac_save_LDFLAGS="$LDFLAGS"
# ac_save_LIBS="$LIBS"
diff --git a/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.16.0.bb b/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.16.0.bb
deleted file mode 100644
index 685c4c1f65..0000000000
--- a/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.16.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Xfce screensaver Application"
-DESCRIPTION = "Xfce screensaver is a screen saver and locker that aims to have simple, sane, secure defaults and be well integrated with the desktop."
-HOMEPAGE = "https://git.xfce.org/apps/xfce4-screensaver/about/"
-SECTION = "x11/application"
-
-LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later "
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
- "
-
-DEPENDS = "dbus-glib garcon gtk+3 libxklavier libxscrnsaver virtual/libx11 xfconf libwnck3"
-
-inherit xfce-app
-
-SRC_URI:append = " file://fix-cross-compile.patch"
-SRC_URI[sha256sum] = "6d4d143e3e62db679ce83ce7da97903390773ee0a8ceb05ff4c3dac36616268d"
-
-do_install:append() {
- install -D -m 0644 ${S}/data/xfce4-screensaver.common-auth ${D}${sysconfdir}/pam.d/xfce4-screensaver
-}
-
-FILES:${PN} += "${datadir}/dbus-1 ${datadir}/desktop-directories"
-
-RDEPENDS:${PN} += "python3-core"
diff --git a/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.18.1.bb b/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.18.1.bb
new file mode 100644
index 0000000000..2c5cba0d8f
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver_4.18.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Xfce screensaver Application"
+DESCRIPTION = "Xfce screensaver is a screen saver and locker that aims to have simple, sane, secure defaults and be well integrated with the desktop."
+HOMEPAGE = "https://git.xfce.org/apps/xfce4-screensaver/about/"
+SECTION = "x11/application"
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later "
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
+ "
+
+DEPENDS = "dbus-glib garcon gtk+3 libxklavier libxscrnsaver virtual/libx11 xfconf libwnck3"
+
+inherit xfce-app
+
+SRC_URI:append = " file://fix-cross-compile.patch"
+SRC_URI[sha256sum] = "b731e8abd68a18cc5d3b523351aa8f9f293c9f63290c1781c9155259deb04a5c"
+
+do_install:append() {
+ install -D -m 0644 ${S}/data/xfce4-screensaver.common-auth ${D}${sysconfdir}/pam.d/xfce4-screensaver
+}
+
+FILES:${PN} += "${datadir}/dbus-1 ${datadir}/desktop-directories"
+
+RDEPENDS:${PN} += "python3-core"
diff --git a/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.10.4.bb b/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.10.4.bb
new file mode 100644
index 0000000000..7c2ecd30d4
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.10.4.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Application to take screenshots"
+HOMEPAGE = "https://docs.xfce.org/apps/xfce4-screenshooter/start"
+SECTION = "x11/application"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+3 glib-2.0 libsoup-2.4 exo libxfixes xext virtual/libx11 libxml-parser-perl-native"
+
+inherit xfce-app perlnative
+
+SRC_URI[sha256sum] = "a2f199687e54e16a936d5636d660d42b6b9a5d548cdd0f04bd69213554806494"
+
+do_compile:prepend() {
+ mkdir -p lib
+ mkdir -p src panel-plugin
+}
+
+FILES:${PN} += " \
+ ${datadir}/metainfo \
+ ${datadir}/xfce4/panel/plugins \
+ ${libdir}/xfce4/panel/plugins \
+"
diff --git a/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.10.bb b/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.10.bb
deleted file mode 100644
index bb44ec7829..0000000000
--- a/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.10.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Application to take screenshots"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-screenshooter"
-SECTION = "x11/application"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855"
-DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+3 glib-2.0 libsoup-2.4 exo libxfixes xext virtual/libx11 libxml-parser-perl-native"
-
-inherit xfce-app perlnative
-
-SRC_URI[sha256sum] = "04b4178527f5b98cfe76ae427e95581067edf262a530639d332f6db9a68292d7"
-
-do_compile:prepend() {
- mkdir -p lib
- mkdir -p src panel-plugin
-}
-
-FILES:${PN} += " \
- ${datadir}/metainfo \
- ${datadir}/xfce4/panel/plugins \
- ${libdir}/xfce4/panel/plugins \
-"
diff --git a/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.2.bb b/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.2.bb
deleted file mode 100644
index a3d10cd256..0000000000
--- a/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.2.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Easy to use task manager"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-app
-
-DEPENDS += "gtk+3 cairo libwnck libxfce4ui libxmu xfce4-dev-tools-native"
-
-SRC_URI[sha256sum] = "bd25143f47a29000b4148874863dffa521b1a37cb01dbc026f423ea3160f9a35"
diff --git a/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.6.bb b/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.6.bb
new file mode 100644
index 0000000000..4eddc9fcfc
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.6.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Easy to use task manager"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-app
+
+DEPENDS += "gtk+3 cairo libwnck libxfce4ui libxmu xfce4-dev-tools-native"
+
+SRC_URI[sha256sum] = "20979000761a41faed4f7f63f27bd18bb36fb27db4f7ecc8784a460701fb4abb"
diff --git a/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.0.bb b/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.0.bb
deleted file mode 100644
index 85b0812ed5..0000000000
--- a/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Terminal emulator for the Xfce desktop environment"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "glib-2.0 gtk+3 vte libxfce4ui gtk-doc-native"
-
-inherit xfce-app
-
-FILES:${PN} += " \
- ${datadir}/xfce4 \
- ${datadir}/gnome-control-center \
-"
-
-SRC_URI[sha256sum] = "593b6a7bd9b18851e51854e075990109b7896a22713b5dd8b913b23f21db6576"
-
-RRECOMMENDS:${PN} += "vte-prompt"
diff --git a/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.4.bb b/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.4.bb
new file mode 100644
index 0000000000..edb0c614ec
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.4.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Terminal emulator for the Xfce desktop environment"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "glib-2.0 gtk+3 vte libxfce4ui gtk-doc-native"
+
+inherit xfce-app
+
+FILES:${PN} += " \
+ ${datadir}/xfce4 \
+ ${datadir}/gnome-control-center \
+"
+
+SRC_URI[sha256sum] = "78e55957af7c6fc1f283e90be33988661593a4da98383da1b0b54fdf6554baf4"
+
+RRECOMMENDS:${PN} += "vte-prompt"
diff --git a/meta-xfce/recipes-extended/imsettings/imsettings_1.8.3.bb b/meta-xfce/recipes-extended/imsettings/imsettings_1.8.3.bb
index cdf4557cd3..21e9b3908f 100644
--- a/meta-xfce/recipes-extended/imsettings/imsettings_1.8.3.bb
+++ b/meta-xfce/recipes-extended/imsettings/imsettings_1.8.3.bb
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
inherit autotools gtk-doc gobject-introspection gettext features_check
-DEPENDS = "gtk+3 libnotify"
+DEPENDS = "autoconf-archive-native gtk+3 libnotify"
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-xfce/recipes-multimedia/parole/parole_4.16.0.bb b/meta-xfce/recipes-multimedia/parole/parole_4.16.0.bb
deleted file mode 100644
index 545ab816e1..0000000000
--- a/meta-xfce/recipes-multimedia/parole/parole_4.16.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-DESCRIPTION = "Parole is a modern simple media player based on the GStreamer framework"
-HOMEPAGE = "https://docs.xfce.org/apps/parole/start"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit xfce-app gtk-doc mime mime-xdg
-
-DEPENDS += " \
- dbus-glib \
- xfce4-dev-tools-native \
- libxfce4util \
- libxfce4ui \
- xfconf \
- \
- gstreamer1.0-plugins-base \
- taglib \
-"
-
-SRC_URI[sha256sum] = "0d305ad8ccd3974d6b632f74325b1b8a39304c905c6b405b70f52c4cfd55a7e7"
-
-RDEPENDS:${PN} += "gstreamer1.0-plugins-good"
-
-EXTRA_OECONF = "--disable-gtk-doc"
-
-PACKAGECONFIG ??= "notify"
-PACKAGECONFIG[clutter] = "--enable-clutter, --disable-clutter, clutter"
-PACKAGECONFIG[notify] = "--enable-notify-plugin, --disable-notify-plugin, libnotify"
-
-FILES:${PN} += " \
- ${datadir}/metainfo \
- ${libdir}/parole-0/*.so \
-"
diff --git a/meta-xfce/recipes-multimedia/parole/parole_4.18.0.bb b/meta-xfce/recipes-multimedia/parole/parole_4.18.0.bb
new file mode 100644
index 0000000000..e2c7a012c7
--- /dev/null
+++ b/meta-xfce/recipes-multimedia/parole/parole_4.18.0.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "Parole is a modern simple media player based on the GStreamer framework"
+HOMEPAGE = "https://docs.xfce.org/apps/parole/start"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+inherit xfce-app gtk-doc mime mime-xdg
+
+DEPENDS += " \
+ dbus-glib \
+ xfce4-dev-tools-native \
+ libxfce4util \
+ libxfce4ui \
+ xfconf \
+ \
+ gstreamer1.0-plugins-base \
+ taglib \
+"
+
+SRC_URI[sha256sum] = "bbe52fbc4d3abe30f6c79fc7ac57bd9de9cf74ce1a79b508a1d7de83dc4f3771"
+
+RDEPENDS:${PN} += "gstreamer1.0-plugins-good"
+
+EXTRA_OECONF = "--disable-gtk-doc DATADIRNAME=share"
+
+PACKAGECONFIG ??= "notify"
+PACKAGECONFIG[clutter] = "--enable-clutter, --disable-clutter, clutter"
+PACKAGECONFIG[notify] = "--enable-notify-plugin, --disable-notify-plugin, libnotify"
+
+FILES:${PN} += " \
+ ${datadir}/metainfo \
+ ${libdir}/parole-0/*.so \
+"
diff --git a/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.2.bb b/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.2.bb
deleted file mode 100644
index 4a7ed93ebc..0000000000
--- a/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Simple client plugin for Music Player Daemon"
-HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-mpc-plugin"
-SECTION = "x11/application"
-LICENSE = "0BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3604d987e6dfdfc672c754d08953b0e0"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "libmpd"
-
-# While this item does not require it, it depends on mpd which does
-LICENSE_FLAGS = "commercial"
-
-# for now we recommend our own mpd-server
-RRECOMMENDS:${PN} = "mpd"
-
-SRC_URI[md5sum] = "26a1e8658df2b51967dc2250e23f467d"
-SRC_URI[sha256sum] = "eefe78b7b6b95312b3a52814b7f632dc92970c1b3e9535de616315749bf67760"
diff --git a/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.3.bb b/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.3.bb
new file mode 100644
index 0000000000..cd868c243b
--- /dev/null
+++ b/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.3.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Simple client plugin for Music Player Daemon"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-mpc-plugin"
+SECTION = "x11/application"
+LICENSE = "0BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3604d987e6dfdfc672c754d08953b0e0"
+
+inherit xfce-panel-plugin
+
+DEPENDS += "libmpd"
+
+# While this item does not require it, it depends on mpd which does
+LICENSE_FLAGS = "commercial"
+
+# for now we recommend our own mpd-server
+RRECOMMENDS:${PN} = "mpd"
+
+SRC_URI[sha256sum] = "0467fb4d1acd982d3c3e0b89cb41019946850524ff19ed0f658a8d56c7b7664d"
diff --git a/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.0.bb b/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.0.bb
deleted file mode 100644
index b8521ba95e..0000000000
--- a/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Music Player Daemon (MPD) client written in GTK+"
-HOMEPAGE = "https://goodies.xfce.org/projects/applications/xfmpc"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "libxfce4util libxfce4ui libmpd vala-native"
-
-# While this item does not require it, it depends on mpd which does
-LICENSE_FLAGS = "commercial"
-
-# for now we recommend our own mpd-server
-RRECOMMENDS:${PN} = "mpd"
-
-inherit xfce-app
-
-SRC_URI[md5sum] = "e6ff8563f159d1e727d656fb88964998"
-SRC_URI[sha256sum] = "c76e2a88dc3e1d345da7a5c68fa39981494c2b40033748efcac54411c9e65689"
diff --git a/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.1.bb b/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.1.bb
new file mode 100644
index 0000000000..1e02bbe54f
--- /dev/null
+++ b/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Music Player Daemon (MPD) client written in GTK+"
+HOMEPAGE = "https://goodies.xfce.org/projects/applications/xfmpc"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "libxfce4util libxfce4ui libmpd vala-native"
+
+# While this item does not require it, it depends on mpd which does
+LICENSE_FLAGS = "commercial"
+
+# for now we recommend our own mpd-server
+RRECOMMENDS:${PN} = "mpd"
+
+inherit xfce-app
+
+SRC_URI[sha256sum] = "4867d5dd100fa42ab39ebde6c784ec21ee31717f1adb3f4da070dafb3848d96d"
diff --git a/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.4.bb b/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.4.bb
deleted file mode 100644
index 0f8489b18c..0000000000
--- a/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.4.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "A battery monitor panel plugin for Xfce4, compatible with APM and ACP"
-HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-battery-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-SRC_URI[sha256sum] = "107df2a837156c010e1eab5430bab90c77f0a3dc699b5937678c8a9c5e64c222"
diff --git a/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.5.bb b/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.5.bb
new file mode 100644
index 0000000000..ce119bb6da
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.5.bb
@@ -0,0 +1,8 @@
+SUMMARY = "A battery monitor panel plugin for Xfce4, compatible with APM and ACP"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-battery-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "752233bfb320ee1e26104a656cbb868299f562733063e2b9a18f0966585ce213"
diff --git a/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.7.1.bb b/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.7.1.bb
deleted file mode 100644
index 8fd2bd0d29..0000000000
--- a/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.7.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "A calculator plugin for the Xfce panel"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-calculator-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=909430f63fddd63f120ba29e8979f65c"
-
-inherit xfce-panel-plugin gtk-icon-cache
-
-SRC_URI[sha256sum] = "e4016a03c3ef4ebddd97e4135f5e304f80677033c98e19644b9989ec6f5ada81"
diff --git a/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.7.2.bb b/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.7.2.bb
new file mode 100644
index 0000000000..0c464930e1
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.7.2.bb
@@ -0,0 +1,8 @@
+SUMMARY = "A calculator plugin for the Xfce panel"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-calculator-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=909430f63fddd63f120ba29e8979f65c"
+
+inherit xfce-panel-plugin gtk-icon-cache
+
+SRC_URI[sha256sum] = "d1f622bea41a90c1686bf9f13c488ab28e995e2762b84712dea9027e0c94028b"
diff --git a/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.7.bb b/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.7.bb
deleted file mode 100644
index c98fe4a5c3..0000000000
--- a/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.7.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Panel plugin to display frequency of all cpus"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-cpufreq-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1f6f1c0be32491a0c8d2915607a28f36"
-
-inherit xfce-panel-plugin
-
-SRC_URI[sha256sum] = "5ad4fb6150f51917b2a8af65926c6e4e83340827835782a14844c6b88dbcc58c"
diff --git a/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.8.bb b/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.8.bb
new file mode 100644
index 0000000000..8ddf48d6ef
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.8.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Panel plugin to display frequency of all cpus"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-cpufreq-plugin"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1f6f1c0be32491a0c8d2915607a28f36"
+
+inherit xfce-panel-plugin perlnative
+
+SRC_URI[sha256sum] = "07e458d9f4725e572001fb7eb66b9e931792311146e0f75ad5d87b9ae19573e9"
diff --git a/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.6.bb b/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.6.bb
deleted file mode 100644
index a9ac08989e..0000000000
--- a/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.6.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Panel plugin with graphical representation of the cpu frequency"
-HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-cpugraph-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=415654f59d8fa70fe4eac2c3f86c8f5e"
-
-inherit xfce-panel-plugin
-
-SRC_URI[sha256sum] = "773246f57c1824a85468d4119c17aeb07170ed1ebace8fa406c7fbcf5b47af99"
diff --git a/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.8.bb b/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.8.bb
new file mode 100644
index 0000000000..8e58175615
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.8.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Panel plugin with graphical representation of the cpu frequency"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-cpugraph-plugin"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=415654f59d8fa70fe4eac2c3f86c8f5e"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "bfb438ce21f37d57241b2596d72aa4bf47587cd5a8833fc30a9599616f75d4bf"
diff --git a/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.1.bb b/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.1.bb
deleted file mode 100644
index c029ac1c0f..0000000000
--- a/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Panel plugin displaying date and time and a calendar when left-clicked"
-HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-datetime-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit xfce-panel-plugin
-
-SRC_URI[sha256sum] = "e9f6f15be29ceb5c45718006b46dbd19b89981617d0768b2ef942b5a70af2540"
diff --git a/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.3.bb b/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.3.bb
new file mode 100644
index 0000000000..f292a6deaf
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.3.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Panel plugin displaying date and time and a calendar when left-clicked"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-datetime-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "6b2eeb79fb586868737426cbd2a4cd43c7f8c58507d8a2f578e0150187cc00b0"
diff --git a/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.2.bb b/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.2.bb
deleted file mode 100644
index 5585a4f0aa..0000000000
--- a/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.2.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-DESCRIPTION = "The FSGuard panel plugin checks free space on a chosen mount point frequently and displays a message when a limit is reached"
-HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-fsguard-plugin"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3434d79d62df09abf5f78bb76d6cd21b"
-
-inherit xfce-panel-plugin
-
-SRC_URI[sha256sum] = "67d8e6a219a7117c59693adbc59c39a6eba31e3f18a5499189ef4ef28b554105"
diff --git a/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.3.bb b/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.3.bb
new file mode 100644
index 0000000000..380d2e19e3
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.3.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "The FSGuard panel plugin checks free space on a chosen mount point frequently and displays a message when a limit is reached"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-fsguard-plugin"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3434d79d62df09abf5f78bb76d6cd21b"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "84ef8bb4752292d64c0ef101badf7b14448790bfa0a85de644dbfa22986ec258"
diff --git a/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.1.1.bb b/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.1.1.bb
deleted file mode 100644
index d792bc047b..0000000000
--- a/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.1.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-DESCRIPTION = "This plugin cyclically spawns the indicated script/program, captures its output (stdout) and displays the resulting string into the panel."
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin"
-LICENSE = "LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=68ad62c64cc6c620126241fd429e68fe"
-
-inherit xfce-panel-plugin
-
-SRC_URI[sha256sum] = "b2119fd0ff19fa293b97ec97b0de8e241799e08b86218515167c568bd9b50135"
diff --git a/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.2.0.bb b/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.2.0.bb
new file mode 100644
index 0000000000..31ad5e7ced
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.2.0.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "This plugin cyclically spawns the indicated script/program, captures its output (stdout) and displays the resulting string into the panel."
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4b54a1fd55a448865a0b32d41598759d"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "948d08ee5f2140847f109b531bc1d4cc6268496913ea7600d3c5ad89025a0362"
diff --git a/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.3.0.bb b/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.3.0.bb
deleted file mode 100644
index a5c98efc1c..0000000000
--- a/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.3.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Multi-protocol, multi-mailbox mail watcher for the Xfce4 panel"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-mailwatch-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "gnutls"
-
-SRC_URI[sha256sum] = "20f91ebefd2880b27f421f773115b3740f67de2bf60feace3841bfd1a09cbe2e"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.3.1.bb b/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.3.1.bb
new file mode 100644
index 0000000000..6ea260765f
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.3.1.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Multi-protocol, multi-mailbox mail watcher for the Xfce4 panel"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-mailwatch-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin
+
+DEPENDS += "gnutls"
+
+SRC_URI[sha256sum] = "054964e9fe4ca668486400991ce1ea01d07aac7ba235f4b14d4a8f7d9800046a"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch b/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch
index d81f702891..64f06cebb5 100644
--- a/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch
+++ b/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch
@@ -9,6 +9,7 @@ plugin
Makes it compile/build with musl
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Patch Reworked for xfce4-mount-plugin 0.6.4->1.1.2
diff --git a/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.4.0.bb b/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.4.0.bb
deleted file mode 100644
index 834f5cfaae..0000000000
--- a/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.4.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Panel plugin displaying current load of the network interfaces"
-HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=35a7203c41b86d15546dddc05995f97f"
-
-inherit xfce-panel-plugin
-
-SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2"
-SRC_URI[sha256sum] = "6c76260e101790754dd93255ec979accd97d21a21da85d8edcd6c7b01ddcd70c"
diff --git a/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.4.1.bb b/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.4.1.bb
new file mode 100644
index 0000000000..c30f17a7d4
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.4.1.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Panel plugin displaying current load of the network interfaces"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2b6065ae7d3696cdad6869dd8627a9fe"
+
+inherit xfce-panel-plugin
+
+SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2"
+SRC_URI[sha256sum] = "9fac3a3ad52e18584bfb127cd1721d56de1004b9fdd140915fded89704ccb44e"
diff --git a/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.10.0.bb b/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.10.0.bb
new file mode 100644
index 0000000000..8c9768b1e3
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.10.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Notes plugin for the Xfce Panel"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-notes-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin
+
+DEPENDS += "gtk+3 libxfce4ui xfce4-panel xfconf"
+
+SRC_URI[sha256sum] = "2ee4406042edd352a91e166c83b60d13220ef04dce3fa6b9e0eb13636d636929"
diff --git a/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.9.0.bb b/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.9.0.bb
deleted file mode 100644
index dc0fc2c60e..0000000000
--- a/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.9.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Notes plugin for the Xfce Panel"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-notes-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "gtk+3 libxfce4ui xfce4-panel xfconf"
-
-SRC_URI[sha256sum] = "13f909c948b639f96de64cf793eb74cb1779589201d3933eff214ee8f35ab088"
diff --git a/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.1.bb b/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.1.bb
deleted file mode 100644
index e8e133035d..0000000000
--- a/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Menu for quick access to folders, documents and removable media"
-DESCRIPTION = "Panel plugin displaying menu with quick access to folders, documents and removable media"
-HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-places-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b6952d9a47fc2ad0f315510e1290455f"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "bde92cbd08f129d517524784e5060816"
-SRC_URI[sha256sum] = "f211219f03c9260f624370e18c79e4176c9d35a8247158e77e5d811327610ab2"
-
-PACKAGECONFIG ??= "notify"
-PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify"
diff --git a/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.3.bb b/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.3.bb
new file mode 100644
index 0000000000..6400e0d3e4
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.3.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Menu for quick access to folders, documents and removable media"
+DESCRIPTION = "Panel plugin displaying menu with quick access to folders, documents and removable media"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-places-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b6952d9a47fc2ad0f315510e1290455f"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "f11d0e6d03f22ab02c2e6b507d365b5a918532e8819e50647ee1860eca60c743"
+
+PACKAGECONFIG ??= "notify"
+PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify"
diff --git a/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.3.bb b/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.3.bb
deleted file mode 100644
index 5168efe1fe..0000000000
--- a/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.3.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Pulseaudio mixer for the xfce panel"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f5eac6bb0d6ec0dc655e417781d4015f"
-
-inherit xfce-panel-plugin features_check
-
-REQUIRED_DISTRO_FEATURES = "pulseaudio x11"
-
-DEPENDS += "dbus-glib pulseaudio"
-
-SRC_URI[md5sum] = "3d86032acb9364d47e0a144350c63e1a"
-SRC_URI[sha256sum] = "5a518237e2137341d8ca6584938950525e20c28a0177e30ecaea3ba8e7a2615b"
-
-PACKAGECONFIG ??= "libnotify"
-PACKAGECONFIG[libnotify] = "--enable-libnotify,--disable-libnotify,libnotify"
-
-RRECOMMENDS:${PN} = "pavucontrol"
diff --git a/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.8.bb b/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.8.bb
new file mode 100644
index 0000000000..c01b4966f0
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.8.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Pulseaudio mixer for the xfce panel"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f5eac6bb0d6ec0dc655e417781d4015f"
+
+inherit xfce-panel-plugin features_check
+
+REQUIRED_DISTRO_FEATURES = "pulseaudio x11"
+
+DEPENDS += "dbus-glib pulseaudio"
+
+SRC_URI[sha256sum] = "bd742b207c39c221e91c57c9c9be2839eb802d1b1ee01a02b7427cd02d3f0348"
+
+PACKAGECONFIG ??= "libnotify"
+PACKAGECONFIG[libnotify] = "--enable-libnotify,--disable-libnotify,libnotify"
+
+RRECOMMENDS:${PN} = "pavucontrol"
diff --git a/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.4.3.bb b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.4.3.bb
deleted file mode 100644
index 13933b6cd9..0000000000
--- a/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.4.3.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Sensors plugin for the Xfce Panel"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b94789bed9aec03b9656a9cc5398c706"
-
-inherit xfce-panel-plugin
-
-SRC_URI[sha256sum] = "171c0235f70c65f0ffee587e960d9da79b284855df22130239eac26272ec06c9"
-SRC_URI += "file://0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch"
-
-EXTRA_OECONF = " \
- --disable-procacpi \
- --disable-xnvctrl \
-"
-
-do_configure:prepend() {
- sed -i 's:LIBSENSORS_CFLAGS=.*:LIBSENSORS_CFLAGS=-I${STAGING_INCDIR}:g' ${S}/configure.ac
-}
-
-PACKAGECONFIG ??= "libnotify"
-PACKAGECONFIG[libsensors] = "--enable-libsensors,--disable-libsensors, lmsensors"
-PACKAGECONFIG[hddtemp] = "--enable-hddtemp,--disable-hddtemp, hddtemp"
-PACKAGECONFIG[netcat] = "--enable-netcat,--disable-netcat, netcat"
-PACKAGECONFIG[libnotify] = "--enable-notification,--disable-notification, libnotify"
-
-FILES_SOLIBSDEV = "${libdir}/xfce4/modules/lib*${SOLIBSDEV}"
diff --git a/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.4.4.bb b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.4.4.bb
new file mode 100644
index 0000000000..eb1165c578
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.4.4.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Sensors plugin for the Xfce Panel"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin
+
+SRC_URI += "file://0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch"
+SRC_URI[sha256sum] = "6c1605a738e5df40e084d08ac93f962cd445093396de1e9bfadc7ab4588c36b6"
+
+EXTRA_OECONF = " \
+ --disable-procacpi \
+ --disable-xnvctrl \
+"
+
+LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=bfd', '', d)}"
+
+do_configure:prepend() {
+ sed -i 's:LIBSENSORS_CFLAGS=.*:LIBSENSORS_CFLAGS=-I${STAGING_INCDIR}:g' ${S}/configure.ac
+}
+
+PACKAGECONFIG ??= "libnotify"
+PACKAGECONFIG[libsensors] = "--enable-libsensors,--disable-libsensors, lmsensors"
+PACKAGECONFIG[hddtemp] = "--enable-hddtemp,--disable-hddtemp, hddtemp"
+PACKAGECONFIG[netcat] = "--enable-netcat,--disable-netcat, netcat"
+PACKAGECONFIG[libnotify] = "--enable-notification,--disable-notification, libnotify"
+
+FILES_SOLIBSDEV = "${libdir}/xfce4/modules/lib*${SOLIBSDEV}"
diff --git a/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin/convert-gulong.patch b/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin/convert-gulong.patch
new file mode 100644
index 0000000000..30897caab3
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin/convert-gulong.patch
@@ -0,0 +1,39 @@
+Fix build on 32bit architectures
+
+It fails with errors like
+| ../../xfce4-systemload-plugin-1.3.2/panel-plugin/network.cc:126:13: error: no matching function for call to 'read_netload_libgtop'
+| 126 | if (read_netload_libgtop (&bytes[1]) != 0)
+| | ^~~~~~~~~~~~~~~~~~~~
+| ../../xfce4-systemload-plugin-1.3.2/panel-plugin/network.cc:42:1: note: candidate function not viable: no known conversion from 'guint64 *' (aka 'unsigned long long *') to 'gulong *' (aka 'unsigne
+d long *') for 1st argument
+| 42 | read_netload_libgtop (gulong *bytes)
+| | ^ ~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/panel-plugin/network.cc
++++ b/panel-plugin/network.cc
+@@ -114,6 +114,7 @@ read_netload_proc (gulong *bytes)
+ gint
+ read_netload (gulong *net, gulong *NTotal)
+ {
++ gulong tbytes[2];
+ static guint64 bytes[2];
+ static gint64 time[2];
+
+@@ -122,10 +123,12 @@ read_netload (gulong *net, gulong *NTota
+
+ time[1] = g_get_monotonic_time ();
+
+- if (read_netload_proc (&bytes[1]) != 0)
+- if (read_netload_libgtop (&bytes[1]) != 0)
++ if (read_netload_proc (&tbytes[1]) != 0)
++ if (read_netload_libgtop (&tbytes[1]) != 0)
+ return -1;
+
++ bytes[0] = tbytes[0];
++ bytes[1] = tbytes[1];
+ if (time[0] != 0 && G_LIKELY (time[1] > time[0]) && G_LIKELY (bytes[1] >= bytes[0]))
+ {
+ guint64 diff_bits = 8 * (bytes[1] - bytes[0]);
diff --git a/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.3.1.bb b/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.3.1.bb
deleted file mode 100644
index 151ce3849c..0000000000
--- a/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.3.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "Panel plugin displaying current CPU load, the memory in use, the swap space and the system uptime"
-HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-systemload-plugin"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9acb172a93ff6c43cce2aff790a8aef8"
-
-inherit xfce-panel-plugin
-
-PACKAGECONFIG ?= "network power"
-PACKAGECONFIG[power] = ",,upower"
-PACKAGECONFIG[network] = ",,libgtop"
-
-SRC_URI[sha256sum] = "56d1007801d52d7c2b5a13bb54745f6d7f06fda28b49ce936145633068817652"
diff --git a/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.3.2.bb b/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.3.2.bb
new file mode 100644
index 0000000000..e7a3e9936e
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.3.2.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Panel plugin displaying current CPU load, the memory in use, the swap space and the system uptime"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-systemload-plugin"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9acb172a93ff6c43cce2aff790a8aef8"
+
+inherit xfce-panel-plugin
+
+PACKAGECONFIG ?= "network power"
+PACKAGECONFIG[power] = ",,upower"
+PACKAGECONFIG[network] = ",,libgtop"
+
+SRC_URI += "file://convert-gulong.patch"
+SRC_URI[sha256sum] = "bb303fc3020e053ad1fa0b8fcbf0d7681c5563bb8f649357d6a95a577802b072"
diff --git a/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.2.bb b/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.2.bb
deleted file mode 100644
index 5b7f62471d..0000000000
--- a/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.2.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "This plugin makes it possible to take periodical breaks"
-HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-time-out-plugin"
-SECTION = "x11/application"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit xfce-panel-plugin
-
-SRC_URI[sha256sum] = "3dd8eba694ff3ba5c25bd7f5cd70dc22175fb2c0a759213f05ab8f0e629d82d4"
diff --git a/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.3.bb b/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.3.bb
new file mode 100644
index 0000000000..9fa287a1ca
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.3.bb
@@ -0,0 +1,9 @@
+SUMMARY = "This plugin makes it possible to take periodical breaks"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-time-out-plugin"
+SECTION = "x11/application"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "5a1ca36361e95ec718bbd887ea5be6a270ab458d1c2d672186721522a7228ee8"
diff --git a/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.1.bb b/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.1.bb
deleted file mode 100644
index 1231e084cd..0000000000
--- a/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "XFCE panel plugin to generate alarm messages"
-DESCRIPTION = "This is a simple plugin that lets the user run an alarm at a specified time or at the end of a specified countdown period"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-timer-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ae39271267fd63eb7619432ff24e7ff1"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "e0df5b6be30993719d084fc4f78a6218"
-SRC_URI[sha256sum] = "4b52d2911b1949e945971be6533155ee6ba99c77078eac7fd43b0f2aeca824e3"
diff --git a/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.2.bb b/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.2.bb
new file mode 100644
index 0000000000..33b60438d1
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.2.bb
@@ -0,0 +1,9 @@
+SUMMARY = "XFCE panel plugin to generate alarm messages"
+DESCRIPTION = "This is a simple plugin that lets the user run an alarm at a specified time or at the end of a specified countdown period"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-timer-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f1c52159bdaebd029cb11927cbe709e4"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "feb3b8c2d39505e816683540a3226bd7bda870ccbcb4c7d0f6abfeeff5c58b7d"
diff --git a/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.1.bb b/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.1.bb
deleted file mode 100644
index 21bbda331a..0000000000
--- a/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Verve panel plugin is a comfortable command line plugin for the Xfce panel"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-verve-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-SRC_URI[sha256sum] = "ebda5e5eb62d6e42afdc6f121d2f1cbd4d9d3c2b16a5e3ed8192b1b224b8f825"
diff --git a/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.3.bb b/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.3.bb
new file mode 100644
index 0000000000..9dcaae8ceb
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.3.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Verve panel plugin is a comfortable command line plugin for the Xfce panel"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-verve-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "e1bf121f1bf9cf2a199bf5c0f3aa802f503df9bea50724741e7a92fe6d9fe09e"
+DEPENDS += "libpcre"
diff --git a/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.2.bb b/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.2.bb
deleted file mode 100644
index c52b35d02f..0000000000
--- a/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.2.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Panel plugin displaying stats from a wireless lan interface"
-HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-wavelan-plugin"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e1e5872df9c5cf1a23f16493d9104920"
-
-inherit xfce-panel-plugin
-
-SRC_URI[sha256sum] = "ea7aa36650c596b1a29567d100776c68ed732aaf0f48c92245c4466058b5481d"
diff --git a/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.3.bb b/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.3.bb
new file mode 100644
index 0000000000..530f52425a
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.3.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Panel plugin displaying stats from a wireless lan interface"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-wavelan-plugin"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e1e5872df9c5cf1a23f16493d9104920"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "61c0c2f56cb70872d403b770dd76349df9ff24c0dbe905ee1b4f913c34d8f72b"
diff --git a/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.11.0.bb b/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.11.0.bb
deleted file mode 100644
index ede98e9926..0000000000
--- a/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.11.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Panel plugin to display current temperature and weather condition"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "libsoup-2.4 dbus-glib upower"
-
-SRC_URI[sha256sum] = "e3242ea951d51bc0fded1d02a4f1f662bec16a1fb10c855f71bda6541a1153fc"
-
-FILES:${PN} += "${datadir}/xfce4/weather"
diff --git a/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.11.1.bb b/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.11.1.bb
new file mode 100644
index 0000000000..858bd5459b
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.11.1.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Panel plugin to display current temperature and weather condition"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin
+
+DEPENDS += "libsoup-2.4 dbus-glib upower"
+
+SRC_URI[sha256sum] = "a45146f9a0dcdc95d191c09c64ad279ae289cf8f811c4433e08e31a656845239"
+
+FILES:${PN} += "${datadir}/xfce4/weather"
diff --git a/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.7.1.bb b/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.7.1.bb
index 6621099cbd..3dfc76f246 100644
--- a/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.7.1.bb
+++ b/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.7.1.bb
@@ -6,5 +6,3 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
inherit xfce-panel-plugin cmake
SRC_URI[sha256sum] = "04ae0c1764a0d5ec70f18a760d998a2109bb6724f048554d7d6999d9072ca63e"
-
-RRECOMMENDS:${PN} += "menulibre"
diff --git a/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.4.0.bb b/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.4.0.bb
deleted file mode 100644
index 0a1098db56..0000000000
--- a/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.4.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "Thunar Archive Plugin allows you to create and extract archive files using file context menus in Thunar"
-HOMEPAGE = "http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
-
-inherit thunar-plugin
-
-SRC_URI[md5sum] = "0a7738a3a5f84bf218ece3ffb5241c63"
-SRC_URI[sha256sum] = "bf82fa86a388124eb3c4854249c30712b2922e61789607268ee14548549b3115"
-
-# install tap files in ${libdir}/thunar-archive-plugin
-EXTRA_OECONF += "--libexecdir=${libdir}"
diff --git a/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.5.2.bb b/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.5.2.bb
new file mode 100644
index 0000000000..91b3efa83e
--- /dev/null
+++ b/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.5.2.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "Thunar Archive Plugin allows you to create and extract archive files using file context menus in Thunar"
+HOMEPAGE = "http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4cf66a4984120007c9881cc871cf49db"
+
+inherit thunar-plugin
+
+SRC_URI[sha256sum] = "6379f877bcfc0ea85db9f43723b6fb317893050c712bd03c2ae3232fb9d5ade3"
+
+# install tap files in ${libdir}/thunar-archive-plugin
+EXTRA_OECONF += "--libexecdir=${libdir}"
diff --git a/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.3.0.bb b/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.3.0.bb
deleted file mode 100644
index 06695f694c..0000000000
--- a/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.3.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Adds ID3/OGG tag support to the Thunar bulk rename dialog"
-HOMEPAGE = "http://thunar.xfce.org"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit thunar-plugin
-
-DEPENDS += "taglib"
-
-SRC_URI[md5sum] = "5e332113e4b0e548ee7abd87629667f7"
-SRC_URI[sha256sum] = "e265c4415abac40337cc5566c6f706efcf0be4e97723abe22ba8b874c93a591b"
diff --git a/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.4.0.bb b/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.4.0.bb
new file mode 100644
index 0000000000..00afa2bbb2
--- /dev/null
+++ b/meta-xfce/recipes-thunar-plugins/media-tags/thunar-media-tags-plugin_0.4.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Adds ID3/OGG tag support to the Thunar bulk rename dialog"
+HOMEPAGE = "https://docs.xfce.org/xfce/thunar/media-tags"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit thunar-plugin
+
+DEPENDS += "taglib"
+
+SRC_URI[sha256sum] = "9592111e11699e449c1fbd5f72d1633ef39b00f17a988cd251ba228dab4fc90a"
diff --git a/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.1.bb b/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.1.bb
deleted file mode 100644
index fb7589637d..0000000000
--- a/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Quickly share a folder using Samba from Thunar"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit thunar-plugin features_check
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-REQUIRED_DISTRO_FEATURES = "pam"
-
-SRC_URI[md5sum] = "0884855d60cf1031b9013b6f5b125372"
-SRC_URI[sha256sum] = "dc1d8c7caa727e76d033d4653dc0742613f57a1711d0050900659c90a84452a0"
-
-RDEPENDS:${PN} += "samba-server"
diff --git a/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.2.bb b/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.2.bb
new file mode 100644
index 0000000000..065e89254b
--- /dev/null
+++ b/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.2.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Quickly share a folder using Samba from Thunar"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+inherit thunar-plugin features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "pam"
+
+SRC_URI[sha256sum] = "1009d5e6c91534fa49a69090c53c54ab9da2e0428d08d8e687528f63a4ac3f07"
+
+RDEPENDS:${PN} += "samba-server"
diff --git a/meta-xfce/recipes-xfce/exo/exo/configure.patch b/meta-xfce/recipes-xfce/exo/exo/configure.patch
deleted file mode 100644
index 89cc1f3874..0000000000
--- a/meta-xfce/recipes-xfce/exo/exo/configure.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 13a74582ffd7f81dbd66a7296fc76007718e9d4d Mon Sep 17 00:00:00 2001
-From: Andreas Mueller <schnitzeltony@gmx.de>
-Date: Mon, 1 Aug 2011 17:16:29 +0200
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
-
----
- configure.ac | 34 ++++++++++++++++++----------------
- 1 file changed, 18 insertions(+), 16 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 0de5ceb..3f92d1b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -143,22 +143,24 @@ AC_FUNC_MMAP()
- dnl ***************************************
- dnl *** Check for strftime() extensions ***
- dnl ***************************************
--AC_TRY_RUN([
-- #include <string.h>
-- #include <time.h>
-- int
-- main (int argc, char **argv)
-- {
-- struct tm tm;
-- char buffer[16];
-- tm.tm_year = 81;
-- if (strftime (buffer, 16, "%EY", &tm) == 4 && strcmp (buffer, "1981") == 0)
-- return 0;
-- return 1;
-- }
--], [
-- AC_DEFINE([HAVE_STRFTIME_EXTENSION], 1, [Define if strftime supports %E and %O modifiers.])
--])
-+dnl grrrr... this doesn't work for cross compiling, define it for OE
-+AC_DEFINE([HAVE_STRFTIME_EXTENSION], 1, [Define if strftime supports %E and %O modifiers.])
-+dnl AC_TRY_RUN([
-+dnl #include <string.h>
-+dnl #include <time.h>
-+dnl int
-+dnl main (int argc, char **argv)
-+dnl {
-+dnl struct tm tm;
-+dnl char buffer[16];
-+dnl tm.tm_year = 81;
-+dnl if (strftime (buffer, 16, "%EY", &tm) == 4 && strcmp (buffer, "1981") == 0)
-+dnl return 0;
-+dnl return 1;
-+dnl }
-+dnl ], [
-+dnl AC_DEFINE([HAVE_STRFTIME_EXTENSION], 1, [Define if strftime supports %E and %O modifiers.])
-+dnl ])
-
- dnl ******************************
- dnl *** Check for i18n support ***
diff --git a/meta-xfce/recipes-xfce/exo/exo/exo-no-tests-0.8.patch b/meta-xfce/recipes-xfce/exo/exo/exo-no-tests-0.8.patch
index 348e147cf9..c5e7a097f0 100644
--- a/meta-xfce/recipes-xfce/exo/exo/exo-no-tests-0.8.patch
+++ b/meta-xfce/recipes-xfce/exo/exo/exo-no-tests-0.8.patch
@@ -10,17 +10,20 @@ Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+Rebase for xfce4 4.18.0.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
Makefile.am | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/Makefile.am b/Makefile.am
-index 226e79d..62ad18d 100644
+index 513ac36..c395272 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -9,8 +9,7 @@ SUBDIRS = \
+@@ -6,8 +6,7 @@ SUBDIRS = \
+ exo-open \
docs \
- icons \
pixmaps \
- po \
- tests
diff --git a/meta-xfce/recipes-xfce/exo/exo/reduce-build-to-exo-csource-only.patch b/meta-xfce/recipes-xfce/exo/exo/reduce-build-to-exo-csource-only.patch
deleted file mode 100644
index 8c950299f7..0000000000
--- a/meta-xfce/recipes-xfce/exo/exo/reduce-build-to-exo-csource-only.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From e710d8d4a3e3480416826c70d56ea3d2598a77e4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Sat, 4 May 2019 14:50:11 +0200
-Subject: [PATCH] reduce build to exo-csource only
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-exo-csource creates c-header files from glade resource output files. When
-building xfce-packages from git instead of tarball this exo-csource-native is
-required.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
-
----
- Makefile.am | 10 +---------
- configure.ac | 20 --------------------
- 2 files changed, 1 insertion(+), 29 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 62ad18d..8934f1f 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,15 +1,7 @@
- ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
-
- SUBDIRS = \
-- exo \
-- exo-csource \
-- exo-desktop-item-edit \
-- exo-helper \
-- exo-open \
-- docs \
-- icons \
-- pixmaps \
-- po
-+ exo-csource
-
- distclean-local:
- rm -rf *.cache *~
-diff --git a/configure.ac b/configure.ac
-index 4e4eb5e..237184c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -120,15 +120,6 @@ AC_PROG_CC()
- AM_PROG_CC_C_O()
- AC_PROG_INSTALL()
- IT_PROG_INTLTOOL([intltool_minimum_version], [no-xml])
--AC_CHECK_PROGS([PERL], [perl5 perl])
--
--dnl ***************************************
--dnl *** Check for required Perl modules ***
--dnl ***************************************
--AC_PROG_PERL_MODULES([URI::Escape URI::file URI::URL], [],
--[
-- AC_MSG_ERROR([Atleast one of the required Perl modules (URI::Escape, URI::file and URI::URL) was not found on your system])
--])
-
- dnl ***************************************
- dnl *** Check for standard header files ***
-@@ -175,12 +166,6 @@ dnl ***********************************
- dnl *** Check for required packages ***
- dnl ***********************************
- XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.42.0])
--XDT_CHECK_PACKAGE([GIO], [gio-2.0], [2.42.0])
--XDT_CHECK_PACKAGE([GTK3], [gtk+-3.0], [3.22.0])
--XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.42.0])
--XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.12.0])
--XDT_CHECK_PACKAGE([LIBXFCE4UI2], [libxfce4ui-2], [4.12.0])
--XDT_CHECK_OPTIONAL_PACKAGE([GIO_UNIX], [gio-unix-2.0], [2.42.0], [gio-unix], [GIO-Unix features])
-
- dnl ***********************************************************
- dnl *** Optional support for a GTK+2 version of the library ***
-@@ -190,11 +175,6 @@ XDT_CHECK_OPTIONAL_PACKAGE([GTK2],
- [GTK+ 2 support])
- AM_CONDITIONAL([ENABLE_GTK2_LIBRARY], [test "x$GTK2_FOUND" = "xyes"])
-
--dnl *********************
--dnl *** Check for X11 ***
--dnl *********************
--XDT_CHECK_LIBX11_REQUIRE()
--
- dnl *************************
- dnl *** Check for gtk-doc ***
- dnl *************************
---
-2.20.1
-
diff --git a/meta-xfce/recipes-xfce/exo/exo_4.16.4.bb b/meta-xfce/recipes-xfce/exo/exo_4.16.4.bb
deleted file mode 100644
index 01c3bff062..0000000000
--- a/meta-xfce/recipes-xfce/exo/exo_4.16.4.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "Application library for the Xfce desktop environment"
-SECTION = "x11"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "gtk+3 libxfce4ui liburi-perl-native cairo"
-
-inherit xfce perlnative gtk-doc features_check mime-xdg
-
-# xfce4 depends on libwnck3, gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
-# cairo would at least needed to be built with xlib.
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-# SRC_URI must follow inherited one
-SRC_URI += " \
- file://exo-no-tests-0.8.patch \
- file://configure.patch \
-"
-
-SRC_URI[sha256sum] = "82a50c67e78f1e5c420b7615515bcca759b86eeab99224ab8eca4306b89d2eca"
-
-# Note: python bindings did not work in oe-dev and are about to be moved to
-# pyxfce see http://comments.gmane.org/gmane.comp.desktop.xfce.devel.version4/19560
-FILES:${PN} += " \
- ${datadir}/xfce4/ \
- ${libdir}/xfce4/exo* \
-"
diff --git a/meta-xfce/recipes-xfce/exo/exo_4.19.0.bb b/meta-xfce/recipes-xfce/exo/exo_4.19.0.bb
new file mode 100644
index 0000000000..48044240a8
--- /dev/null
+++ b/meta-xfce/recipes-xfce/exo/exo_4.19.0.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Application library for the Xfce desktop environment"
+SECTION = "x11"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "gtk+3 libxfce4ui liburi-perl-native cairo"
+
+inherit xfce perlnative gtk-doc features_check mime-xdg
+
+# xfce4 depends on libwnck3, gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
+# cairo would at least needed to be built with xlib.
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+# SRC_URI must follow inherited one
+SRC_URI += " \
+ file://exo-no-tests-0.8.patch \
+"
+
+SRC_URI[sha256sum] = "a0124108c197efcc576a6deeface381416dc7137b6a7e7dfa3060fad62509fb7"
+
+# Note: python bindings did not work in oe-dev and are about to be moved to
+# pyxfce see http://comments.gmane.org/gmane.comp.desktop.xfce.devel.version4/19560
+FILES:${PN} += " \
+ ${datadir}/xfce4/ \
+ ${libdir}/xfce4/exo* \
+"
diff --git a/meta-xfce/recipes-xfce/garcon/garcon_4.16.1.bb b/meta-xfce/recipes-xfce/garcon/garcon_4.16.1.bb
deleted file mode 100644
index 14f0c4a64d..0000000000
--- a/meta-xfce/recipes-xfce/garcon/garcon_4.16.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "Xfce Menu Library"
-SECTION = "x11/libs"
-LICENSE = "LGPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=04a01abcbdabffae1ca26335a293276b"
-DEPENDS = "xfce4-dev-tools-native libxfce4ui intltool-native"
-
-inherit xfce gtk-doc gobject-introspection features_check
-
-# xfce4 depends on libwnck3, gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
-# cairo would at least needed to be built with xlib.
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI += "file://0001-xfce-applications.menu-don-t-bloat-settings-menu-by-.patch"
-SRC_URI[sha256sum] = "84914927a2c1fda167f67af26a6640630a744a22940df508aa6c752cdbd3d21d"
-
-EXTRA_OECONF = "--disable-gtk-doc"
-
-do_compile:prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/garcon/.libs"
-}
-
-FILES:${PN} += "${datadir}/desktop-directories"
diff --git a/meta-xfce/recipes-xfce/garcon/garcon_4.19.0.bb b/meta-xfce/recipes-xfce/garcon/garcon_4.19.0.bb
new file mode 100644
index 0000000000..321f645b01
--- /dev/null
+++ b/meta-xfce/recipes-xfce/garcon/garcon_4.19.0.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Xfce Menu Library"
+SECTION = "x11/libs"
+LICENSE = "LGPL-2.0-only & GFDL-1.1-no-invariants-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=04a01abcbdabffae1ca26335a293276b"
+DEPENDS = "xfce4-dev-tools-native libxfce4ui intltool-native"
+
+inherit xfce gtk-doc gobject-introspection features_check
+
+# xfce4 depends on libwnck3, gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
+# cairo would at least needed to be built with xlib.
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI += "file://0001-xfce-applications.menu-don-t-bloat-settings-menu-by-.patch"
+SRC_URI[sha256sum] = "e692f0d02294984c6b787e810a187c753a16f06ca87c68c0bb3de364ea3f6b0c"
+
+EXTRA_OECONF = "--disable-gtk-doc"
+
+do_compile:prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/garcon/.libs"
+}
+
+FILES:${PN} += "${datadir}/desktop-directories"
diff --git a/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui/0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch b/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui/0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch
index 616142761e..53ba873746 100644
--- a/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui/0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch
+++ b/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui/0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch
@@ -11,15 +11,15 @@ Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
- libxfce4kbd-private/xfce4-keyboard-shortcuts.xml | 4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
+ libxfce4kbd-private/xfce4-keyboard-shortcuts.xml | 4 ++++
+ 1 file changed, 4 insertions(+)
diff --git a/libxfce4kbd-private/xfce4-keyboard-shortcuts.xml b/libxfce4kbd-private/xfce4-keyboard-shortcuts.xml
-index 723a10d..e6502f3 100644
+index 32901e3..8189c4c 100644
--- a/libxfce4kbd-private/xfce4-keyboard-shortcuts.xml
+++ b/libxfce4kbd-private/xfce4-keyboard-shortcuts.xml
-@@ -75,4 +75,8 @@
- <property name="<Super>KP_Next" type="string" value="tile_down_right_key"/>
+@@ -96,4 +96,8 @@
+ <property name="&lt;Super&gt;KP_Next" type="string" value="tile_down_right_key"/>
</property>
</property>
+ <property name="providers" type="array">
diff --git a/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.16.1.bb b/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.16.1.bb
deleted file mode 100644
index bb45ee6f43..0000000000
--- a/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.16.1.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Xfce4 Widget library and X Window System interaction"
-SECTION = "x11/libs"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
-DEPENDS = "intltool-native perl-native gtk+3 libxfce4util xfce4-dev-tools xfconf"
-
-inherit xfce gtk-doc gobject-introspection features_check
-
-# xfce4 depends on libwnck3. gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
-# cairo would at least needed to be built with xlib.
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-# TODO: Check if 0001-... can go
-SRC_URI += "file://0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch"
-SRC_URI[sha256sum] = "d96946ae5af6bf078dda415419e0021909f763ee0020b42f3e26f603e51585f6"
-
-EXTRA_OECONF += "--with-vendor-info=${DISTRO}"
-EXTRA_OECONF += "--disable-vala"
-
-PACKAGECONFIG ??= " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
-"
-PACKAGECONFIG[gladeui2] = "--enable-gladeui2,--disable-gladeui2,glade"
-PACKAGECONFIG[x11] = "--enable-startup-notification,--disable-startup-notification,libepoxy libice libsm startup-notification"
-
-
-PACKAGES += "${PN}-glade"
-FILES:${PN}-glade = " \
- ${libdir}/glade \
- ${datadir}/glade \
-"
diff --git a/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.19.3.bb b/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.19.3.bb
new file mode 100644
index 0000000000..e53d01d00c
--- /dev/null
+++ b/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.19.3.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Xfce4 Widget library and X Window System interaction"
+SECTION = "x11/libs"
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4cf66a4984120007c9881cc871cf49db"
+DEPENDS = "intltool-native perl-native gtk+3 libxfce4util xfce4-dev-tools xfconf"
+
+inherit xfce gtk-doc gobject-introspection features_check
+
+# xfce4 depends on libwnck3. gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
+# cairo would at least needed to be built with xlib.
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+# TODO: Check if 0001-... can go
+SRC_URI += "file://0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch"
+SRC_URI[sha256sum] = "16815eef494ba9bac9c854e95c205c0bc5568c8022c31604348f9edadb02f227"
+
+EXTRA_OECONF += "--with-vendor-info=${DISTRO}"
+EXTRA_OECONF += "--disable-vala"
+
+PACKAGECONFIG ??= " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl','x11', "", d)} \
+"
+PACKAGECONFIG[gladeui2] = "--enable-gladeui2,--disable-gladeui2,glade"
+PACKAGECONFIG[x11] = "--enable-startup-notification,--disable-startup-notification,libepoxy libice libsm startup-notification"
+
+
+PACKAGES += "${PN}-glade"
+FILES:${PN}-glade = " \
+ ${libdir}/glade \
+ ${datadir}/glade \
+"
diff --git a/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.16.0.bb b/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.16.0.bb
deleted file mode 100644
index 6824ac67e3..0000000000
--- a/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.16.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Basic utility library for Xfce4"
-SECTION = "x11/libs"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
-DEPENDS = "intltool-native xfce4-dev-tools-native glib-2.0"
-
-inherit xfce gtk-doc gobject-introspection vala
-
-SRC_URI[sha256sum] = "60598d745d1fc81ff5ad3cecc3a8d1b85990dd22023e7743f55abd87d8b55b83"
diff --git a/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.19.2.bb b/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.19.2.bb
new file mode 100644
index 0000000000..b54501cac2
--- /dev/null
+++ b/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.19.2.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Basic utility library for Xfce4"
+SECTION = "x11/libs"
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4cf66a4984120007c9881cc871cf49db"
+DEPENDS = "intltool-native xfce4-dev-tools-native glib-2.0"
+
+inherit xfce gtk-doc gobject-introspection vala
+
+SRC_URI[sha256sum] = "d4c7eb021d1c9408190bcfb92c7ce26f51e994674ac3c3b8a119270c1e900ac4"
diff --git a/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb b/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb
index c56af6f382..c4b7b34cec 100644
--- a/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb
+++ b/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb
@@ -1,6 +1,5 @@
SUMMARY = "All packages required for a base installation of XFCE"
SECTION = "x11/wm"
-PR = "r5"
# librsvg-gtk gets debian renamed to librsvg-2-gtk
PACKAGE_ARCH = "${TUNE_PKGARCH}"
diff --git a/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb b/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb
index 64f8863116..f2e04f7932 100644
--- a/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb
+++ b/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb
@@ -1,7 +1,6 @@
SUMMARY = "All packages for full XFCE installation"
SECTION = "x11/wm"
-PR = "r10"
inherit packagegroup features_check
@@ -50,7 +49,7 @@ RRECOMMENDS:${PN} = " \
xfce4-verve-plugin \
\
${@bb.utils.contains('DISTRO_FEATURES','polkit','xfce-polkit','',d)} \
- ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth", "blueman", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth gobject-introspection", "blueman", "", d)} \
\
thunar-media-tags-plugin \
thunar-archive-plugin \
@@ -63,6 +62,6 @@ RRECOMMENDS:${PN} = " \
xfce4-taskmanager \
gigolo \
mousepad \
- catfish \
- xfce4-panel-profiles \
+ ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "catfish", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "xfce4-panel-profiles", "", d)} \
"
diff --git a/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_4.16.0.bb b/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_4.16.0.bb
deleted file mode 100644
index 4b72d3a790..0000000000
--- a/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_4.16.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Automatic management of removable drives and media for thunar"
-SECTION = "x11"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "exo libnotify libgudev"
-
-inherit xfce features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[sha256sum] = "d2c0e719b242b7fd3db70bc6678a2df1abf2cfaa899b775a1591a5efa08a547d"
-
-PACKAGECONFIG ??= "notify"
-PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify"
-
-RDEPENDS:${PN} = "eject"
diff --git a/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_4.18.0.bb b/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_4.18.0.bb
new file mode 100644
index 0000000000..a136ba0545
--- /dev/null
+++ b/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_4.18.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Automatic management of removable drives and media for thunar"
+SECTION = "x11"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "exo libnotify libgudev"
+
+inherit xfce features_check perlnative
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[sha256sum] = "93b75c7ffbe246a21f4190295acc148e184be8df397e431b258d0d676e87fc65"
+
+PACKAGECONFIG ??= "notify"
+PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify"
+
+RDEPENDS:${PN} = "eject"
diff --git a/meta-xfce/recipes-xfce/thunar/thunar_4.16.9.bb b/meta-xfce/recipes-xfce/thunar/thunar_4.16.9.bb
deleted file mode 100644
index d3702c83c3..0000000000
--- a/meta-xfce/recipes-xfce/thunar/thunar_4.16.9.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "File manager for the Xfce Desktop Environment"
-SECTION = "x11"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "libxml-parser-perl-native exo gdk-pixbuf libxfce4ui libnotify xfce4-panel udev"
-
-inherit xfce gobject-introspection features_check mime-xdg perlnative
-
-# xfce4 depends on libwnck3, gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
-# cairo would at least needed to be built with xlib.
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[sha256sum] = "520bf318eef8bc792db38ae4af343b648f87d4b8d66f5b5d6f092e15264ee5af"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre"
-PACKAGECONFIG[x11] = ",,libsm startup-notification"
-
-FILES:${PN} += " \
- ${libdir}/thunarx-3/* \
- ${libdir}/xfce4/panel/plugins/* \
- ${libdir}/Thunar/[Tt]hunar* \
- ${systemd_user_unitdir} \
- ${datadir}/dbus-1 \
- ${datadir}/metainfo \
- ${datadir}/polkit-1 \
- ${datadir}/Thunar \
- ${datadir}/xfce4/panel/plugins/* \
-"
-
-RRECOMMENDS:${PN} = "gvfs gvfsd-trash"
diff --git a/meta-xfce/recipes-xfce/thunar/thunar_4.19.0.bb b/meta-xfce/recipes-xfce/thunar/thunar_4.19.0.bb
new file mode 100644
index 0000000000..e4d8b7b4de
--- /dev/null
+++ b/meta-xfce/recipes-xfce/thunar/thunar_4.19.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "File manager for the Xfce Desktop Environment"
+SECTION = "x11"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "libxml-parser-perl-native exo gdk-pixbuf libxfce4ui libnotify xfce4-panel udev"
+
+inherit xfce gobject-introspection features_check mime-xdg perlnative gtk-doc
+
+# xfce4 depends on libwnck3, gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
+# cairo would at least needed to be built with xlib.
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI[sha256sum] = "684f1422c4d92b00db477ecaa2a0ed38ce688e2a567e5d70b7cf66fc6dd6fd18"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG[pcre] = "--enable-pcre2,--disable-pcre2,libpcre2"
+PACKAGECONFIG[x11] = ",,libsm startup-notification"
+
+FILES:${PN} += " \
+ ${libdir}/thunarx-3/* \
+ ${libdir}/xfce4/panel/plugins/* \
+ ${libdir}/Thunar/[Tt]hunar* \
+ ${systemd_user_unitdir} \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${datadir}/polkit-1 \
+ ${datadir}/Thunar \
+ ${datadir}/xfce4/panel/plugins/* \
+"
+
+RRECOMMENDS:${PN} = " \
+ gvfs \
+ gvfsd-trash \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'dbus', 'tumbler', '', d)} \
+"
diff --git a/meta-xfce/recipes-xfce/tumbler/tumbler_4.16.0.bb b/meta-xfce/recipes-xfce/tumbler/tumbler_4.16.0.bb
deleted file mode 100644
index 6a583ade73..0000000000
--- a/meta-xfce/recipes-xfce/tumbler/tumbler_4.16.0.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-DESCRIPTION = "Thumbnail service implementing the thumbnail management D-Bus specification"
-SECTION = "x11/libs"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "freetype gdk-pixbuf poppler curl xfce4-dev-tools-native libxml2 libgsf"
-
-inherit xfce gtk-doc
-
-SRC_URI[sha256sum] = "9b0b7fed0c64041733d490b1b307297984629d0dd85369749617a8766850af66"
-
-INSANE_SKIP:${PN} = "dev-so"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gstreamer-thumbnailer] = "--enable-gstreamer-thumbnailer,--disable-gstreamer-thumbnailer,gstreamer1.0 gstreamer1.0-plugins-base"
-
-do_install:append() {
- # Makefile seems to race on creation of symlink. So ensure creation here
- # until fixed properly
- ln -sf tumbler-xdg-cache.so ${D}${libdir}/tumbler-1/plugins/cache/tumbler-cache-plugin.so
-}
-
-FILES:${PN} += "${datadir}/dbus-1/services \
- ${libdir}/tumbler-1/tumblerd \
- ${libdir}/tumbler-1/plugins/*.so \
- ${libdir}/tumbler-1/plugins/cache/*.so \
-"
-
-FILES:${PN}-dev += "${libdir}/tumbler-1/plugins/*.la \
- ${libdir}/tumbler-1/plugins/cache/*.la \
-"
diff --git a/meta-xfce/recipes-xfce/tumbler/tumbler_4.18.0.bb b/meta-xfce/recipes-xfce/tumbler/tumbler_4.18.0.bb
new file mode 100644
index 0000000000..0472d4885f
--- /dev/null
+++ b/meta-xfce/recipes-xfce/tumbler/tumbler_4.18.0.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "Thumbnail service implementing the thumbnail management D-Bus specification"
+SECTION = "x11/libs"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "freetype gdk-pixbuf poppler curl xfce4-dev-tools-native libxml2 libgsf libxfce4util"
+
+inherit xfce gtk-doc systemd
+
+SRC_URI[sha256sum] = "4087f3af4ef31271d3f315421a2f1fe67e4fda7ad60bbab1f073627914dfcf00"
+
+INSANE_SKIP:${PN} = "dev-so"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gstreamer-thumbnailer] = "--enable-gstreamer-thumbnailer,--disable-gstreamer-thumbnailer,gstreamer1.0 gstreamer1.0-plugins-base"
+
+do_install:append() {
+ # Makefile seems to race on creation of symlink. So ensure creation here
+ # until fixed properly
+ ln -sf tumbler-xdg-cache.so ${D}${libdir}/tumbler-1/plugins/cache/tumbler-cache-plugin.so
+}
+
+FILES:${PN} += "${datadir}/dbus-1/services \
+ ${libdir}/tumbler-1/tumblerd \
+ ${libdir}/tumbler-1/plugins/*.so \
+ ${libdir}/tumbler-1/plugins/cache/*.so \
+ ${systemd_user_unitdir}/tumblerd.service \
+"
+
+FILES:${PN}-dev += "${libdir}/tumbler-1/plugins/*.la \
+ ${libdir}/tumbler-1/plugins/cache/*.la \
+"
diff --git a/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.16.1.bb b/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.16.1.bb
deleted file mode 100644
index 18d9fedfce..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.16.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "Xfce4 Application Finder"
-SECTION = "x11"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "glib-2.0 gtk+3 libxfce4util libxfce4ui garcon xfconf"
-
-inherit xfce features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[sha256sum] = "bfe3e9bd92695014ee74a2fbb7f5fd1b4c29cf043c4a11598b8958324c81e7ec"
-
-FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.19.1.bb b/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.19.1.bb
new file mode 100644
index 0000000000..0fea41c773
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.19.1.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "Xfce4 Application Finder"
+SECTION = "x11"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "glib-2.0 gtk+3 libxfce4util libxfce4ui garcon xfconf"
+
+inherit xfce features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[sha256sum] = "d8bd2a1dd9d193eb25e8e5e68b1beae3578a46d1c5eeee30bec7dabbf4330648"
+
+FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.16.0.bb b/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.16.0.bb
deleted file mode 100644
index 586a77efc6..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.16.0.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Xfce4 development tools"
-HOMEPAGE = "http://www.xfce.org"
-SECTION = "x11/libs"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
-
-DEPENDS = "glib-2.0"
-DEPENDS:append:class-target = " ${BPN}-native"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native"
-
-SRC_URI = "http://archive.xfce.org/src/xfce/${BPN}/${@'${PV}'[0:4]}/${BPN}-${PV}.tar.bz2 \
- file://0001-m4macros-Check-for-a-function-provided-by-libX11-in-.patch \
- "
-SRC_URI:append:class-target = " file://0001-Run-native-xdt-csource-on-tests.patch"
-SRC_URI[sha256sum] = "f50b3070e66f3ebdf331744dd1ec5e1af5de333965d491e15ce05545e8eb4f04"
-
-do_install:append() {
- install -d ${D}${datadir}/aclocal
- install -m 644 ${S}/m4macros/*.m4 ${D}${datadir}/aclocal/
-}
-
-FILES:${PN} += "${datadir}/xfce4/dev-tools/m4macros/*.m4"
-
-RDEPENDS:${PN} = "bash"
diff --git a/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.18.0.bb b/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.18.0.bb
new file mode 100644
index 0000000000..6ca18b8b33
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.18.0.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Xfce4 development tools"
+HOMEPAGE = "http://www.xfce.org"
+SECTION = "x11/libs"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "glib-2.0"
+DEPENDS:append:class-target = " ${BPN}-native"
+
+SRC_URI = "http://archive.xfce.org/src/xfce/${BPN}/${@'${PV}'[0:4]}/${BPN}-${PV}.tar.bz2 \
+ file://0001-m4macros-Check-for-a-function-provided-by-libX11-in-.patch \
+ "
+SRC_URI:append:class-target = " file://0001-Run-native-xdt-csource-on-tests.patch"
+SRC_URI[sha256sum] = "eedb4fc955f0e3459c46864ff98579295db2b900743e0ff69cad5970ba76be37"
+
+inherit autotools pkgconfig
+
+do_install:append() {
+ install -d ${D}${datadir}/aclocal
+ install -m 644 ${S}/m4macros/*.m4 ${D}${datadir}/aclocal/
+}
+
+FILES:${PN} += "${datadir}/xfce4/dev-tools/m4macros/*.m4"
+
+RDEPENDS:${PN} = "bash"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-xfce/recipes-xfce/xfce4-panel/files/0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch b/meta-xfce/recipes-xfce/xfce4-panel/files/0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch
index 1adb14552d..154f72d186 100644
--- a/meta-xfce/recipes-xfce/xfce4-panel/files/0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch
+++ b/meta-xfce/recipes-xfce/xfce4-panel/files/0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch
@@ -13,15 +13,19 @@ Content-Transfer-Encoding: 8bit
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+
+Rebase for xfce4-panel 4.18.3.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
plugins/windowmenu/windowmenu.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/plugins/windowmenu/windowmenu.c b/plugins/windowmenu/windowmenu.c
-index f47e993e..061d6544 100644
+index be7dea4..2f432b0 100644
--- a/plugins/windowmenu/windowmenu.c
+++ b/plugins/windowmenu/windowmenu.c
-@@ -251,7 +251,7 @@ window_menu_plugin_init (WindowMenuPlugin *plugin)
+@@ -262,7 +262,7 @@ window_menu_plugin_init (WindowMenuPlugin *plugin)
g_signal_connect (G_OBJECT (plugin->button), "toggled",
G_CALLBACK (window_menu_plugin_menu), plugin);
@@ -29,17 +33,15 @@ index f47e993e..061d6544 100644
+ plugin->icon = gtk_image_new_from_icon_name (NULL, GTK_ICON_SIZE_BUTTON);
gtk_container_add (GTK_CONTAINER (plugin->button), plugin->icon);
gtk_widget_show (plugin->icon);
- }
-@@ -640,7 +640,7 @@ window_menu_plugin_active_window_changed (WnckScreen *screen,
+
+@@ -695,19 +695,19 @@ window_menu_plugin_active_window_changed (WnckScreen *screen,
/* skip 'fake' windows */
type = wnck_window_get_window_type (window);
if (type == WNCK_WINDOW_DESKTOP || type == WNCK_WINDOW_DOCK)
- goto show_desktop_icon;
+ goto show_no_icon;
- /* get the window icon and set the tooltip */
- gtk_widget_set_tooltip_text (GTK_WIDGET (icon),
-@@ -660,12 +660,12 @@ window_menu_plugin_active_window_changed (WnckScreen *screen,
+ window_menu_plugin_set_icon (plugin, window);
}
else
{
@@ -47,6 +49,7 @@ index f47e993e..061d6544 100644
+ show_no_icon:
/* desktop is shown right now */
+ icon_size = xfce_panel_plugin_get_icon_size (XFCE_PANEL_PLUGIN (plugin));
- gtk_image_set_from_icon_name (GTK_IMAGE (icon), "user-desktop", icon_size);
+ gtk_image_set_from_icon_name (GTK_IMAGE (icon), NULL, icon_size);
gtk_image_set_pixel_size (GTK_IMAGE (icon), icon_size);
diff --git a/meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch b/meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch
index b06e26e91d..66a33c722a 100644
--- a/meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch
+++ b/meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch
@@ -9,15 +9,19 @@ so use lxdm to replace dm-tool
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Rebase for xfce4-panel 4.18.3.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
plugins/actions/actions.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/plugins/actions/actions.c b/plugins/actions/actions.c
-index 474798e..63eb41d 100644
+index e1f1fa7..440f430 100644
--- a/plugins/actions/actions.c
+++ b/plugins/actions/actions.c
-@@ -905,12 +905,12 @@ actions_plugin_actions_allowed (void)
+@@ -977,12 +977,12 @@ actions_plugin_actions_allowed (void)
GError *error = NULL;
/* check for commands we use */
@@ -32,7 +36,7 @@ index 474798e..63eb41d 100644
g_free (path);
path = g_find_program_in_path ("gdmflexiserver");
if (path != NULL)
-@@ -1027,9 +1027,9 @@ actions_plugin_action_activate (GtkWidget *widget,
+@@ -1099,9 +1099,9 @@ actions_plugin_action_activate (GtkWidget *widget,
break;
case ACTION_TYPE_SWITCH_USER:
diff --git a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.16.3.bb b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.16.3.bb
deleted file mode 100644
index 46d26159ae..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.16.3.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Xfce4 Panel"
-SECTION = "x11"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=26a8bd75d8f8498bdbbe64a27791d4ee"
-DEPENDS = "garcon exo gtk+3 cairo virtual/libx11 libxml2 libwnck3 vala-native"
-
-inherit xfce gtk-doc gobject-introspection features_check mime-xdg
-
-# xfce4 depends on libwnck3, gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
-# cairo would at least needed to be built with xlib.
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-SRC_URI[sha256sum] = "5934eaed8a76da52c29b734ccd79600255420333dd6ebd8fd9f066379af1e092"
-SRC_URI += " \
- file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \
- file://0002-use-lxdm-to-replace-dm-tool.patch \
-"
-
-EXTRA_OECONF += "--disable-vala"
-
-python populate_packages:prepend() {
- plugin_dir = d.expand('${libdir}/xfce4/panel/plugins/')
- plugin_name = d.expand('${PN}-plugin-%s')
- do_split_packages(d, plugin_dir, r'^lib(.*)\.so$', plugin_name,
- '${PN} plugin for %s', extra_depends='', prepend=True,
- aux_files_pattern=['${datadir}/xfce4/panel/plugins/%s.desktop',
- '${sysconfdir}/xdg/xfce/panel/%s-*',
- '${datadir}/icons/hicolor/48x48/apps/*-%s.png',
- '${bindir}/*%s*'])
-}
-
-PACKAGES_DYNAMIC += "^${PN}-plugin-.*"
-
-PACKAGES =+ "${PN}-gtk3"
-
-FILES:${PN} += "${libdir}/xfce4/panel/migrate \
- ${libdir}/xfce4/panel/wrapper-1.0"
-
-FILES:${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la"
-
-FILES:${PN}-gtk3 = " \
- ${libdir}/libxfce4panel-2.0${SOLIBS} \
- ${libdir}/xfce4/panel/wrapper-2.0 \
-"
diff --git a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.18.3.bb b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.18.3.bb
new file mode 100644
index 0000000000..7e70754431
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.18.3.bb
@@ -0,0 +1,44 @@
+SUMMARY = "Xfce4 Panel"
+SECTION = "x11"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=26a8bd75d8f8498bdbbe64a27791d4ee"
+DEPENDS = "garcon exo gtk+3 cairo virtual/libx11 libxml2 libwnck3 vala-native"
+
+inherit xfce gtk-doc gobject-introspection features_check mime-xdg
+
+# xfce4 depends on libwnck3, gtk+3 and libepoxy need to be built with x11 PACKAGECONFIG.
+# cairo would at least needed to be built with xlib.
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI += " \
+ file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \
+ file://0002-use-lxdm-to-replace-dm-tool.patch \
+"
+SRC_URI[sha256sum] = "4ae0b8615c9811194bbda0172a63567ed7fdb5519ea48f7a4637f4e6e5365e1b"
+
+EXTRA_OECONF += "--disable-vala"
+
+python populate_packages:prepend() {
+ plugin_dir = d.expand('${libdir}/xfce4/panel/plugins/')
+ plugin_name = d.expand('${PN}-plugin-%s')
+ do_split_packages(d, plugin_dir, r'^lib(.*)\.so$', plugin_name,
+ '${PN} plugin for %s', extra_depends='', prepend=True,
+ aux_files_pattern=['${datadir}/xfce4/panel/plugins/%s.desktop',
+ '${sysconfdir}/xdg/xfce/panel/%s-*',
+ '${datadir}/icons/hicolor/48x48/apps/*-%s.png',
+ '${bindir}/*%s*'])
+}
+
+PACKAGES_DYNAMIC += "^${PN}-plugin-.*"
+
+PACKAGES =+ "${PN}-gtk3"
+
+FILES:${PN} += "${libdir}/xfce4/panel/migrate \
+ ${libdir}/xfce4/panel/wrapper-1.0"
+
+FILES:${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la"
+
+FILES:${PN}-gtk3 = " \
+ ${libdir}/libxfce4panel-2.0${SOLIBS} \
+ ${libdir}/xfce4/panel/wrapper-2.0 \
+"
diff --git a/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.16.0.bb b/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.16.0.bb
deleted file mode 100644
index 34de7a7086..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.16.0.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Power manager for the Xfce desktop environment"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-power-manager"
-SECTION = "x11"
-
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit xfce features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-DEPENDS += "libnotify libxrandr virtual/libx11 libxext xfce4-panel upower libxscrnsaver"
-
-SRC_URI[sha256sum] = "eb9c587c01b502fa45a32e7fc2aba98fa6d8391475133883654f77e562c43bf3"
-
-EXTRA_OECONF = " \
- --enable-network-manager \
- --enable-panel-plugins \
-"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)}"
-PACKAGECONFIG[polkit] = "--enable-polkit, --disable-polkit, polkit"
-
-PACKAGES += "xfce4-powermanager-plugin"
-
-FILES:${PN} += " \
- ${datadir}/polkit-1 \
- ${datadir}/metainfo \
-"
-
-FILES:xfce4-powermanager-plugin = " \
- ${libdir}/xfce4 \
- ${datadir}/xfce4 \
-"
-
-RDEPENDS:xfce4-powermanager-plugin = "${PN}"
-RDEPENDS:${PN} = "networkmanager ${@bb.utils.contains('DISTRO_FEATURES','systemd','','consolekit',d)}"
-
-# xfce4-brightness-plugin was replaced by xfce4-powermanager-plugin
-RPROVIDES:xfce4-powermanager-plugin += "xfce4-brightness-plugin"
-RREPLACES:xfce4-powermanager-plugin += "xfce4-brightness-plugin"
-RCONFLICTS:xfce4-powermanager-plugin += "xfce4-brightness-plugin"
diff --git a/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.18.1.bb b/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.18.1.bb
new file mode 100644
index 0000000000..f7f72356d8
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_4.18.1.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Power manager for the Xfce desktop environment"
+HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-power-manager"
+SECTION = "x11"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+inherit xfce features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+DEPENDS += "libnotify libxrandr virtual/libx11 libxext xfce4-panel upower libxscrnsaver"
+
+SRC_URI[sha256sum] = "6b08b10c4cb7516377dbd32c6cc2296a9faf47022c555f11e75b38fde14aff03"
+
+EXTRA_OECONF = " \
+ --enable-network-manager \
+ --enable-panel-plugins \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)}"
+PACKAGECONFIG[polkit] = "--enable-polkit, --disable-polkit, polkit"
+
+PACKAGES += "xfce4-powermanager-plugin"
+
+FILES:${PN} += " \
+ ${datadir}/polkit-1 \
+ ${datadir}/metainfo \
+"
+
+FILES:xfce4-powermanager-plugin = " \
+ ${libdir}/xfce4 \
+ ${datadir}/xfce4 \
+"
+
+RDEPENDS:xfce4-powermanager-plugin = "${PN}"
+RDEPENDS:${PN} = "networkmanager ${@bb.utils.contains('DISTRO_FEATURES','systemd','','consolekit',d)}"
+
+# xfce4-brightness-plugin was replaced by xfce4-powermanager-plugin
+RPROVIDES:xfce4-powermanager-plugin += "xfce4-brightness-plugin"
+RREPLACES:xfce4-powermanager-plugin += "xfce4-brightness-plugin"
+RCONFLICTS:xfce4-powermanager-plugin += "xfce4-brightness-plugin"
diff --git a/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.16.0.bb b/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.16.0.bb
deleted file mode 100644
index e6613b8ee9..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.16.0.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "xfce4-session is a session manager for Xfce 4 Desktop Environment"
-SECTION = "x11"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
-
-DEPENDS = "libwnck3 libsm libxfce4ui virtual/libx11"
-
-inherit xfce update-alternatives features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)}"
-PACKAGECONFIG[polkit] = "--enable-polkit, --disable-polkit, polkit"
-
-SRC_URI += "file://0001-configure.in-hard-code-path-to-iceauth.patch"
-SRC_URI[sha256sum] = "22f273f212481d71e0b5618c62710cd85f69aea74f5ea5c0093f7918b07d17b7"
-
-ALTERNATIVE:${PN} = "x-session-manager"
-ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/xfce4-session"
-ALTERNATIVE_PRIORITY_${PN} = "150"
-
-FILES:${PN} += " \
- ${libdir}/xfce4/*/*/*.so \
- ${libdir}/xfce4/session/*-*-* \
- ${datadir}/xsessions \
- ${datadir}/themes/Default/balou/* \
- ${datadir}/polkit-1 \
-"
-
-RDEPENDS:${PN} = " \
- dbus-x11 \
- iceauth \
- netbase \
- upower \
- xinit \
- xrdb \
-"
diff --git a/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.18.2.bb b/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.18.2.bb
new file mode 100644
index 0000000000..4021243e41
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.18.2.bb
@@ -0,0 +1,37 @@
+SUMMARY = "xfce4-session is a session manager for Xfce 4 Desktop Environment"
+SECTION = "x11"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "libwnck3 libsm libxfce4ui virtual/libx11"
+
+inherit xfce update-alternatives features_check
+
+SRC_URI += "file://0001-configure.in-hard-code-path-to-iceauth.patch"
+SRC_URI[sha256sum] = "01ff7fe8d4c2091adefc2925c6b7bb93152ba0732e95c9b9e64d8207fdbdeb8a"
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)}"
+PACKAGECONFIG[polkit] = "--enable-polkit, --disable-polkit, polkit"
+
+ALTERNATIVE:${PN} = "x-session-manager"
+ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/xfce4-session"
+ALTERNATIVE_PRIORITY_${PN} = "150"
+
+FILES:${PN} += " \
+ ${libdir}/xfce4/*/*/*.so \
+ ${libdir}/xfce4/session/*-*-* \
+ ${datadir}/xsessions \
+ ${datadir}/themes/Default/balou/* \
+ ${datadir}/polkit-1 \
+"
+
+RDEPENDS:${PN} = " \
+ dbus-x11 \
+ iceauth \
+ netbase \
+ upower \
+ xinit \
+ xrdb \
+"
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch b/meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch
index 0463d2ebdb..3a4c00913f 100644
--- a/meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch
+++ b/meta-xfce/recipes-xfce/xfce4-settings/files/0001-xsettings.xml-Set-default-themes.patch
@@ -6,7 +6,7 @@ MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Upstram status: Inappropriate [configuration]
+Upstream-Status: Inappropriate [configuration]
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
@@ -22,11 +22,11 @@ Signed-off-by: Kai Kang <kai.kang@windriver.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/xfsettingsd/xsettings.xml b/xfsettingsd/xsettings.xml
-index 65ba1ee..9efb3cd 100644
+index d8fe2ac..0f5246b 100644
--- a/xfsettingsd/xsettings.xml
+++ b/xfsettingsd/xsettings.xml
-@@ -1,8 +1,8 @@
- <?xml version="1.0" encoding="UTF-8"?>
+@@ -6,8 +6,8 @@
+
<channel name="xsettings" version="1.0">
<property name="Net" type="empty">
- <property name="ThemeName" type="empty"/>
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.16.2.bb b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.16.2.bb
deleted file mode 100644
index aa4265f7b0..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.16.2.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Xfce4 settings"
-SECTION = "x11/wm"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "exo garcon libxi virtual/libx11 xrandr libxcursor libxklavier upower"
-
-inherit xfce features_check mime-xdg
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI += "file://0001-xsettings.xml-Set-default-themes.patch"
-SRC_URI[sha256sum] = "4dd7cb420860535e687f673c0b5c0274e0d2fb67181281d4b85be9197da03d7e"
-
-EXTRA_OECONF += "--enable-maintainer-mode --disable-debug"
-
-PACKAGECONFIG ??= " \
- notify \
- ${@bb.utils.contains('DISTRO_FEATURES','alsa','sound-setter', bb.utils.contains('DISTRO_FEATURES','pulseaudio','sound-setter','',d),d)} \
-"
-PACKAGECONFIG[notify] = "--enable-libnotify,--disable-libnotify,libnotify"
-PACKAGECONFIG[sound-setter] = "--enable-sound-settings, --disable-sound-settings, libcanberra, libcanberra-gtk2 sound-theme-freedesktop"
-
-FILES:${PN} += " \
- ${libdir}/xfce4 \
- ${datadir}/xfce4 \
-"
-
-RRECOMMENDS:${PN} += "adwaita-icon-theme"
-RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','alsa','libcanberra-alsa','',d)}"
-RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','pulseaudio','libcanberra-pulse','',d)}"
-RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','xfce4-datetime-setter','',d)}"
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.18.2.bb b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.18.2.bb
new file mode 100644
index 0000000000..0a182273bb
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.18.2.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Xfce4 settings"
+SECTION = "x11/wm"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "exo garcon libxi virtual/libx11 xrandr libxcursor libxklavier upower"
+
+inherit xfce features_check mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += "file://0001-xsettings.xml-Set-default-themes.patch"
+SRC_URI[sha256sum] = "4661361087faae57efb49741ffcf90bf9078760e163bbdef63b924083bdc4f22"
+
+EXTRA_OECONF += "--enable-maintainer-mode --disable-debug"
+
+PACKAGECONFIG ??= " \
+ notify \
+ ${@bb.utils.contains('DISTRO_FEATURES','alsa','sound-setter', bb.utils.contains('DISTRO_FEATURES','pulseaudio','sound-setter','',d),d)} \
+"
+PACKAGECONFIG[notify] = "--enable-libnotify,--disable-libnotify,libnotify"
+PACKAGECONFIG[sound-setter] = "--enable-sound-settings, --disable-sound-settings, libcanberra, libcanberra-gtk2 sound-theme-freedesktop"
+
+FILES:${PN} += " \
+ ${libdir}/xfce4 \
+ ${datadir}/xfce4 \
+"
+
+RRECOMMENDS:${PN} += "adwaita-icon-theme"
+RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','alsa','libcanberra-alsa','',d)}"
+RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','pulseaudio','libcanberra-pulse','',d)}"
+RRECOMMENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','xfce4-datetime-setter','',d)}"
diff --git a/meta-xfce/recipes-xfce/xfconf/xfconf_4.16.0.bb b/meta-xfce/recipes-xfce/xfconf/xfconf_4.16.0.bb
deleted file mode 100644
index be742192b1..0000000000
--- a/meta-xfce/recipes-xfce/xfconf/xfconf_4.16.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Xfce configuration daemon and utilities"
-SECTION = "x11/wm"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-DEPENDS = "libxfce4util perl intltool-native xfce4-dev-tools-native"
-
-inherit xfce gtk-doc gobject-introspection bash-completion vala
-
-EXTRA_OECONF += "PERL=${STAGING_DIR_TARGET}/usr/bin/perl"
-
-SRC_URI[sha256sum] = "652a119007c67d9ba6c0bc7a740c923d33f32d03dc76dfc7ba682584e72a5425"
-
-FILES:${PN} += "${libdir}/xfce4/xfconf/xfconfd \
- ${libdir}/gio/modules/libxfconfgsettingsbackend.so \
- ${datadir}/dbus-1/services/org.xfce.Xfconf.service"
-
-FILES:${PN}-dev += "${libdir}/gio/modules/libxfconfgsettingsbackend.la"
-
-PACKAGECONFIG[gsettings-backend] = "--enable-gsettings-backend,--disable-gsettings-backend,"
diff --git a/meta-xfce/recipes-xfce/xfconf/xfconf_4.18.0.bb b/meta-xfce/recipes-xfce/xfconf/xfconf_4.18.0.bb
new file mode 100644
index 0000000000..f5c598b8df
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfconf/xfconf_4.18.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Xfce configuration daemon and utilities"
+SECTION = "x11/wm"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+DEPENDS = "libxfce4util perl intltool-native xfce4-dev-tools-native"
+
+inherit xfce gtk-doc gobject-introspection bash-completion vala
+
+EXTRA_OECONF += "PERL=${STAGING_DIR_TARGET}/usr/bin/perl"
+
+SRC_URI[sha256sum] = "2e8c50160bf800a807aea094fc9dad81f9f361f42db56607508ed5b4855d2906"
+
+FILES:${PN} += "${libdir}/xfce4/xfconf/xfconfd \
+ ${libdir}/gio/modules/libxfconfgsettingsbackend.so \
+ ${datadir}/dbus-1/services/org.xfce.Xfconf.service"
+
+FILES:${PN}-dev += "${libdir}/gio/modules/libxfconfgsettingsbackend.la"
+
+PACKAGECONFIG[gsettings-backend] = "--enable-gsettings-backend,--disable-gsettings-backend,"
diff --git a/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.16.0.bb b/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.16.0.bb
deleted file mode 100644
index 4a1ece8bef..0000000000
--- a/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.16.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Xfce4 Desktop Manager"
-SECTION = "x11/base"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "libxfce4ui libwnck thunar garcon exo"
-
-inherit xfce features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[sha256sum] = "934ba5affecff21e62d9fac1dd50c50cd94b3a807fefa5f5bff59f3d6f155bae"
-
-PACKAGECONFIG ??= "notify"
-PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify"
-
-FILES:${PN} += "${datadir}/backgrounds"
diff --git a/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.18.1.bb b/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.18.1.bb
new file mode 100644
index 0000000000..f4d5fef8e4
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.18.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Xfce4 Desktop Manager"
+SECTION = "x11/base"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = " \
+ cairo \
+ exo \
+ garcon \
+ glib-2.0 \
+ gtk+3 \
+ intltool \
+ libwnck3 \
+ libxfce4ui \
+ libxfce4util \
+ thunar \
+ xfconf \
+"
+
+inherit xfce features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[sha256sum] = "ef9268190c25877e22a9ff5aa31cc8ede120239cb0dfca080c174e7eed4ff756"
+
+PACKAGECONFIG ??= "notify"
+PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify"
+
+FILES:${PN} += "${datadir}/backgrounds"
diff --git a/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.16.1.bb b/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.16.1.bb
deleted file mode 100644
index a32bad47ed..0000000000
--- a/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.16.1.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-DESCRIPTION = "Xfce4 Window Manager"
-SECTION = "x11/wm"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855"
-DEPENDS = "virtual/libx11 libxfce4ui libwnck3 libxinerama"
-
-inherit xfce update-alternatives features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[sha256sum] = "b5b24ca04bd73c642db0a4b4df81d262381d758f01b51108257d48b391b8718c"
-
-PACKAGECONFIG ?= " \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'epoxy', '', d)} \
- xpresent \
- startup-notification \
-"
-
-PACKAGECONFIG[epoxy] = "--enable-epoxy,--disable-epoxy,libepoxy"
-PACKAGECONFIG[xpresent] = "--enable-xpresent,--disable-xpresent,libxpresent"
-PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
-
-python populate_packages:prepend () {
- themedir = d.expand('${datadir}/themes')
- do_split_packages(d, themedir, '^(.*)', 'xfwm4-theme-%s', 'XFWM4 theme %s', allow_dirs=True)
-}
-
-PACKAGES_DYNAMIC += "^xfwm4-theme-.*"
-
-ALTERNATIVE:${PN} = "x-window-manager"
-ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/xfwm4"
-ALTERNATIVE_PRIORITY[x-window-manager] = "30"
-
-RDEPENDS:${PN} = "xfwm4-theme-default"
-FILES:${PN} += "${libdir}/xfce4/xfwm4/helper-dialog \
- ${datadir}/xfwm4/defaults \
-"
diff --git a/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.18.0.bb b/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.18.0.bb
new file mode 100644
index 0000000000..839f1c8704
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.18.0.bb
@@ -0,0 +1,37 @@
+DESCRIPTION = "Xfce4 Window Manager"
+SECTION = "x11/wm"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855"
+DEPENDS = "virtual/libx11 libxfce4ui libwnck3 libxinerama"
+
+inherit xfce update-alternatives features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[sha256sum] = "92cd1b889bb25cb4bc06c1c6736c238d96e79c1e706b9f77fad0a89d6e5fc13f"
+
+PACKAGECONFIG ?= " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'epoxy', '', d)} \
+ xpresent \
+ startup-notification \
+"
+
+PACKAGECONFIG[epoxy] = "--enable-epoxy,--disable-epoxy,libepoxy"
+PACKAGECONFIG[xpresent] = "--enable-xpresent,--disable-xpresent,libxpresent"
+PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
+
+python populate_packages:prepend () {
+ themedir = d.expand('${datadir}/themes')
+ do_split_packages(d, themedir, '^(.*)', 'xfwm4-theme-%s', 'XFWM4 theme %s', allow_dirs=True)
+}
+
+PACKAGES_DYNAMIC += "^xfwm4-theme-.*"
+
+ALTERNATIVE:${PN} = "x-window-manager"
+ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/xfwm4"
+ALTERNATIVE_PRIORITY[x-window-manager] = "30"
+
+RDEPENDS:${PN} = "xfwm4-theme-default"
+FILES:${PN} += "${libdir}/xfce4/xfwm4/helper-dialog \
+ ${datadir}/xfwm4/defaults \
+"